smcdel (empty) → 1.0.0
raw patch · 52 files changed
+6633/−0 lines, 52 filesdep +HasCacBDDdep +QuickCheckdep +ansi-terminalsetup-changed
Dependencies added: HasCacBDD, QuickCheck, ansi-terminal, array, base, containers, criterion, cudd, directory, file-embed, filepath, graphviz, hspec, js-jquery, lens, process, scotty, smcdel, tagged, template-haskell, temporary, text, time
Files
- Examples/DiningCryptographers.smcdel.txt +29/−0
- Examples/DrinkingLogicians.smcdel.txt +26/−0
- Examples/MuddyChildren.smcdel.txt +30/−0
- LICENSE +340/−0
- README.md +107/−0
- Setup.hs +2/−0
- bench/diningcrypto.hs +54/−0
- bench/muddychildren.hs +107/−0
- bench/sumandproduct.hs +66/−0
- exec/smcdel-web.hs +96/−0
- exec/smcdel.hs +103/−0
- smcdel.cabal +169/−0
- src/SMCDEL/Examples.hs +56/−0
- src/SMCDEL/Examples/CoinFlip.hs +30/−0
- src/SMCDEL/Examples/DiningCrypto.hs +91/−0
- src/SMCDEL/Examples/DrinkLogic.hs +20/−0
- src/SMCDEL/Examples/GossipKw.hs +81/−0
- src/SMCDEL/Examples/GossipS5.hs +89/−0
- src/SMCDEL/Examples/MuddyChildren.hs +55/−0
- src/SMCDEL/Examples/Prisoners.hs +115/−0
- src/SMCDEL/Examples/RussianCards.hs +241/−0
- src/SMCDEL/Examples/SallyAnne.hs +63/−0
- src/SMCDEL/Examples/SumAndProduct.hs +62/−0
- src/SMCDEL/Examples/WhatSum.hs +53/−0
- src/SMCDEL/Explicit/DEMO_S5.hs +159/−0
- src/SMCDEL/Explicit/K.hs +190/−0
- src/SMCDEL/Explicit/K/Change.hs +133/−0
- src/SMCDEL/Explicit/S5.hs +226/−0
- src/SMCDEL/Internal/Help.hs +102/−0
- src/SMCDEL/Internal/Lex.x +54/−0
- src/SMCDEL/Internal/MyHaskCUDD.hs +91/−0
- src/SMCDEL/Internal/Parse.y +108/−0
- src/SMCDEL/Internal/TexDisplay.hs +131/−0
- src/SMCDEL/Internal/Token.hs +37/−0
- src/SMCDEL/Language.hs +386/−0
- src/SMCDEL/Other/BDD2Form.hs +20/−0
- src/SMCDEL/Other/MCTRIANGLE.hs +58/−0
- src/SMCDEL/Other/Planning.hs +26/−0
- src/SMCDEL/Symbolic/K.hs +307/−0
- src/SMCDEL/Symbolic/K/Change.hs +197/−0
- src/SMCDEL/Symbolic/S5.hs +265/−0
- src/SMCDEL/Symbolic/S5/Change.hs +113/−0
- src/SMCDEL/Symbolic/S5_CUDD.hs +85/−0
- src/SMCDEL/Translations/K.hs +40/−0
- src/SMCDEL/Translations/K/Change.hs +48/−0
- src/SMCDEL/Translations/S5.hs +168/−0
- stack.yaml +12/−0
- static/index.html +127/−0
- static/viz-lite.js +1175/−0
- test/Examples.hs +117/−0
- test/NonS5.hs +70/−0
- test/Translations.hs +103/−0
+ Examples/DiningCryptographers.smcdel.txt view
@@ -0,0 +1,29 @@+-- Three Dining Cryptographers in SMCDEL++VARS 0, -- the NSA paid+ 1,2,3, -- cryptographer i paid+ 4,5,6 -- shared bits/coins++-- exactly one cryptographer or the NSA paid+LAW AND ( OR (0,1,2,3), ~(0&1), ~(0&2), ~(0&3), ~(1&2), ~(1&3), ~(2&3) )++OBS alice: 1, 4,5+ bob : 2, 4, 6+ carol: 3, 5,6++VALID? (alice,bob,carol) comknow that (OR (0,1,2,3))++VALID? alice knows whether 1++VALID?+ [?! XOR (1, 4, 5)] -- After everyone announces the+ [?! XOR (2, 4, 6)] -- XOR of whether they paid and+ [?! XOR (3, 5, 6)] -- the coins they see ...+ AND (+ -- if the NSA paid this is common knowledge:+ 0 -> (alice,bob,carol) comknow that 0,+ -- if one of the agents paid, the others don't know that:+ 1 -> AND (~ bob knows that 1, ~ carol knows that 1),+ 2 -> AND (~ alice knows that 2, ~ carol knows that 2),+ 3 -> AND (~ alice knows that 3, ~ bob knows that 3)+ )
+ Examples/DrinkingLogicians.smcdel.txt view
@@ -0,0 +1,26 @@+-- Three Drinking Logicians, see http://spikedmath.com/445.html++VARS 1,2,3++LAW Top++OBS a: 1+ b: 2+ c: 3++VALID?+ [ ! ~ a knows whether (1 & 2 & 3) ]+ (a,b,c) comknow that 1+++VALID?+ [ ! ~ a knows whether (1 & 2 & 3) ]+ [ ! ~ b knows whether (1 & 2 & 3) ]+ c knows whether (1 & 2 & 3)++VALID?+ ( < ! ~ a knows whether (1 & 2 & 3) >+ < ! ~ b knows whether (1 & 2 & 3) >+ < ! c knows that (1 & 2 & 3) > Top )+ iff+ (1 & 2 & 3)
+ Examples/MuddyChildren.smcdel.txt view
@@ -0,0 +1,30 @@+-- Three Muddy Children in SMCDEL+VARS 1,2,3+LAW Top+OBS alice: 2,3+ bob: 1,3+ carol: 1,2++VALID?+ ( ~ (alice knows whether 1)+ & ~ (bob knows whether 2)+ & ~ (carol knows whether 3) )++WHERE?+ ~ (1|2|3)++WHERE?+ < ! (1|2|3) >+ ( (alice knows whether 1)+ | (bob knows whether 2)+ | (carol knows whether 3) )++VALID?+ [ ! (1|2|3) ]+ [ ! ( (~ (alice knows whether 1))+ & (~ (bob knows whether 2))+ & (~ (carol knows whether 3)) ) ]+ [ ! ( (~ (alice knows whether 1))+ & (~ (bob knows whether 2))+ & (~ (carol knows whether 3)) ) ]+ (1 & 2 & 3)
+ LICENSE view
@@ -0,0 +1,340 @@+GNU GENERAL PUBLIC LICENSE+ Version 2, June 1991++ Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA+ Everyone is permitted to copy and distribute verbatim copies+ of this license document, but changing it is not allowed.++ Preamble++ The licenses for most software are designed to take away your+freedom to share and change it. By contrast, the GNU General Public+License is intended to guarantee your freedom to share and change free+software--to make sure the software is free for all its users. This+General Public License applies to most of the Free Software+Foundation's software and to any other program whose authors commit to+using it. (Some other Free Software Foundation software is covered by+the GNU Lesser General Public License instead.) You can apply it to+your programs, too.++ When we speak of free software, we are referring to freedom, not+price. Our General Public Licenses are designed to make sure that you+have the freedom to distribute copies of free software (and charge for+this service if you wish), that you receive source code or can get it+if you want it, that you can change the software or use pieces of it+in new free programs; and that you know you can do these things.++ To protect your rights, we need to make restrictions that forbid+anyone to deny you these rights or to ask you to surrender the rights.+These restrictions translate to certain responsibilities for you if you+distribute copies of the software, or if you modify it.++ For example, if you distribute copies of such a program, whether+gratis or for a fee, you must give the recipients all the rights that+you have. You must make sure that they, too, receive or can get the+source code. And you must show them these terms so they know their+rights.++ We protect your rights with two steps: (1) copyright the software, and+(2) offer you this license which gives you legal permission to copy,+distribute and/or modify the software.++ Also, for each author's protection and ours, we want to make certain+that everyone understands that there is no warranty for this free+software. If the software is modified by someone else and passed on, we+want its recipients to know that what they have is not the original, so+that any problems introduced by others will not reflect on the original+authors' reputations.++ Finally, any free program is threatened constantly by software+patents. We wish to avoid the danger that redistributors of a free+program will individually obtain patent licenses, in effect making the+program proprietary. To prevent this, we have made it clear that any+patent must be licensed for everyone's free use or not licensed at all.++ The precise terms and conditions for copying, distribution and+modification follow.++ GNU GENERAL PUBLIC LICENSE+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION++ 0. This License applies to any program or other work which contains+a notice placed by the copyright holder saying it may be distributed+under the terms of this General Public License. The "Program", below,+refers to any such program or work, and a "work based on the Program"+means either the Program or any derivative work under copyright law:+that is to say, a work containing the Program or a portion of it,+either verbatim or with modifications and/or translated into another+language. (Hereinafter, translation is included without limitation in+the term "modification".) Each licensee is addressed as "you".++Activities other than copying, distribution and modification are not+covered by this License; they are outside its scope. The act of+running the Program is not restricted, and the output from the Program+is covered only if its contents constitute a work based on the+Program (independent of having been made by running the Program).+Whether that is true depends on what the Program does.++ 1. You may copy and distribute verbatim copies of the Program's+source code as you receive it, in any medium, provided that you+conspicuously and appropriately publish on each copy an appropriate+copyright notice and disclaimer of warranty; keep intact all the+notices that refer to this License and to the absence of any warranty;+and give any other recipients of the Program a copy of this License+along with the Program.++You may charge a fee for the physical act of transferring a copy, and+you may at your option offer warranty protection in exchange for a fee.++ 2. You may modify your copy or copies of the Program or any portion+of it, thus forming a work based on the Program, and copy and+distribute such modifications or work under the terms of Section 1+above, provided that you also meet all of these conditions:++ a) You must cause the modified files to carry prominent notices+ stating that you changed the files and the date of any change.++ b) You must cause any work that you distribute or publish, that in+ whole or in part contains or is derived from the Program or any+ part thereof, to be licensed as a whole at no charge to all third+ parties under the terms of this License.++ c) If the modified program normally reads commands interactively+ when run, you must cause it, when started running for such+ interactive use in the most ordinary way, to print or display an+ announcement including an appropriate copyright notice and a+ notice that there is no warranty (or else, saying that you provide+ a warranty) and that users may redistribute the program under+ these conditions, and telling the user how to view a copy of this+ License. (Exception: if the Program itself is interactive but+ does not normally print such an announcement, your work based on+ the Program is not required to print an announcement.)++These requirements apply to the modified work as a whole. If+identifiable sections of that work are not derived from the Program,+and can be reasonably considered independent and separate works in+themselves, then this License, and its terms, do not apply to those+sections when you distribute them as separate works. But when you+distribute the same sections as part of a whole which is a work based+on the Program, the distribution of the whole must be on the terms of+this License, whose permissions for other licensees extend to the+entire whole, and thus to each and every part regardless of who wrote it.++Thus, it is not the intent of this section to claim rights or contest+your rights to work written entirely by you; rather, the intent is to+exercise the right to control the distribution of derivative or+collective works based on the Program.++In addition, mere aggregation of another work not based on the Program+with the Program (or with a work based on the Program) on a volume of+a storage or distribution medium does not bring the other work under+the scope of this License.++ 3. You may copy and distribute the Program (or a work based on it,+under Section 2) in object code or executable form under the terms of+Sections 1 and 2 above provided that you also do one of the following:++ a) Accompany it with the complete corresponding machine-readable+ source code, which must be distributed under the terms of Sections+ 1 and 2 above on a medium customarily used for software interchange; or,++ b) Accompany it with a written offer, valid for at least three+ years, to give any third party, for a charge no more than your+ cost of physically performing source distribution, a complete+ machine-readable copy of the corresponding source code, to be+ distributed under the terms of Sections 1 and 2 above on a medium+ customarily used for software interchange; or,++ c) Accompany it with the information you received as to the offer+ to distribute corresponding source code. (This alternative is+ allowed only for noncommercial distribution and only if you+ received the program in object code or executable form with such+ an offer, in accord with Subsection b above.)++The source code for a work means the preferred form of the work for+making modifications to it. For an executable work, complete source+code means all the source code for all modules it contains, plus any+associated interface definition files, plus the scripts used to+control compilation and installation of the executable. However, as a+special exception, the source code distributed need not include+anything that is normally distributed (in either source or binary+form) with the major components (compiler, kernel, and so on) of the+operating system on which the executable runs, unless that component+itself accompanies the executable.++If distribution of executable or object code is made by offering+access to copy from a designated place, then offering equivalent+access to copy the source code from the same place counts as+distribution of the source code, even though third parties are not+compelled to copy the source along with the object code.++ 4. You may not copy, modify, sublicense, or distribute the Program+except as expressly provided under this License. Any attempt+otherwise to copy, modify, sublicense or distribute the Program is+void, and will automatically terminate your rights under this License.+However, parties who have received copies, or rights, from you under+this License will not have their licenses terminated so long as such+parties remain in full compliance.++ 5. You are not required to accept this License, since you have not+signed it. However, nothing else grants you permission to modify or+distribute the Program or its derivative works. These actions are+prohibited by law if you do not accept this License. Therefore, by+modifying or distributing the Program (or any work based on the+Program), you indicate your acceptance of this License to do so, and+all its terms and conditions for copying, distributing or modifying+the Program or works based on it.++ 6. Each time you redistribute the Program (or any work based on the+Program), the recipient automatically receives a license from the+original licensor to copy, distribute or modify the Program subject to+these terms and conditions. You may not impose any further+restrictions on the recipients' exercise of the rights granted herein.+You are not responsible for enforcing compliance by third parties to+this License.++ 7. If, as a consequence of a court judgment or allegation of patent+infringement or for any other reason (not limited to patent issues),+conditions are imposed on you (whether by court order, agreement or+otherwise) that contradict the conditions of this License, they do not+excuse you from the conditions of this License. If you cannot+distribute so as to satisfy simultaneously your obligations under this+License and any other pertinent obligations, then as a consequence you+may not distribute the Program at all. For example, if a patent+license would not permit royalty-free redistribution of the Program by+all those who receive copies directly or indirectly through you, then+the only way you could satisfy both it and this License would be to+refrain entirely from distribution of the Program.++If any portion of this section is held invalid or unenforceable under+any particular circumstance, the balance of the section is intended to+apply and the section as a whole is intended to apply in other+circumstances.++It is not the purpose of this section to induce you to infringe any+patents or other property right claims or to contest validity of any+such claims; this section has the sole purpose of protecting the+integrity of the free software distribution system, which is+implemented by public license practices. Many people have made+generous contributions to the wide range of software distributed+through that system in reliance on consistent application of that+system; it is up to the author/donor to decide if he or she is willing+to distribute software through any other system and a licensee cannot+impose that choice.++This section is intended to make thoroughly clear what is believed to+be a consequence of the rest of this License.++ 8. If the distribution and/or use of the Program is restricted in+certain countries either by patents or by copyrighted interfaces, the+original copyright holder who places the Program under this License+may add an explicit geographical distribution limitation excluding+those countries, so that distribution is permitted only in or among+countries not thus excluded. In such case, this License incorporates+the limitation as if written in the body of this License.++ 9. The Free Software Foundation may publish revised and/or new versions+of the General Public License from time to time. Such new versions will+be similar in spirit to the present version, but may differ in detail to+address new problems or concerns.++Each version is given a distinguishing version number. If the Program+specifies a version number of this License which applies to it and "any+later version", you have the option of following the terms and conditions+either of that version or of any later version published by the Free+Software Foundation. If the Program does not specify a version number of+this License, you may choose any version ever published by the Free Software+Foundation.++ 10. If you wish to incorporate parts of the Program into other free+programs whose distribution conditions are different, write to the author+to ask for permission. For software which is copyrighted by the Free+Software Foundation, write to the Free Software Foundation; we sometimes+make exceptions for this. Our decision will be guided by the two goals+of preserving the free status of all derivatives of our free software and+of promoting the sharing and reuse of software generally.++ NO WARRANTY++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,+REPAIR OR CORRECTION.++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE+POSSIBILITY OF SUCH DAMAGES.++ END OF TERMS AND CONDITIONS++ How to Apply These Terms to Your New Programs++ If you develop a new program, and you want it to be of the greatest+possible use to the public, the best way to achieve this is to make it+free software which everyone can redistribute and change under these terms.++ To do so, attach the following notices to the program. It is safest+to attach them to the start of each source file to most effectively+convey the exclusion of warranty; and each file should have at least+the "copyright" line and a pointer to where the full notice is found.++ {description}+ Copyright (C) {year} {fullname}++ This program is free software; you can redistribute it and/or modify+ it under the terms of the GNU General Public License as published by+ the Free Software Foundation; either version 2 of the License, or+ (at your option) any later version.++ This program is distributed in the hope that it will be useful,+ but WITHOUT ANY WARRANTY; without even the implied warranty of+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the+ GNU General Public License for more details.++ You should have received a copy of the GNU General Public License along+ with this program; if not, write to the Free Software Foundation, Inc.,+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.++Also add information on how to contact you by electronic and paper mail.++If the program is interactive, make it output a short notice like this+when it starts in an interactive mode:++ Gnomovision version 69, Copyright (C) year name of author+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.+ This is free software, and you are welcome to redistribute it+ under certain conditions; type `show c' for details.++The hypothetical commands `show w' and `show c' should show the appropriate+parts of the General Public License. Of course, the commands you use may+be called something other than `show w' and `show c'; they could even be+mouse-clicks or menu items--whatever suits your program.++You should also get your employer (if you work as a programmer) or your+school, if any, to sign a "copyright disclaimer" for the program, if+necessary. Here is a sample; alter the names:++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program+ `Gnomovision' (which makes passes at compilers) written by James Hacker.++ {signature of Ty Coon}, 1 April 1989+ Ty Coon, President of Vice++This General Public License does not permit incorporating your program into+proprietary programs. If your program is a subroutine library, you may+consider it more useful to permit linking proprietary applications with the+library. If this is what you want to do, use the GNU Lesser General+Public License instead of this License.+
+ README.md view
@@ -0,0 +1,107 @@+# SMCDEL++[](https://github.com/jrclogic/SMCDEL/releases)+[](https://travis-ci.org/jrclogic/SMCDEL)++A symbolic model checker for Dynamic Epistemic Logic.++You can find a complete literate Haskell documentation in the file+[SMCDEL.pdf](https://github.com/jrclogic/SMCDEL/raw/master/SMCDEL.pdf).++## References++[Johan van Benthem, Jan van Eijck, Malvin Gattinger, and Kaile Su:+*Symbolic Model Checking for Dynamic Epistemic Logic.*+In: Proceedings of The Fifth International Conference on Logic, Rationality and Interaction (LORI-V),+2015](https://doi.org/10.1007/978-3-662-48561-3_30).++[Johan van Benthem, Jan van Eijck, Malvin Gattinger, and Kaile Su:+*Symbolic Model Checking for Dynamic Epistemic Logic --- S5 and Beyond.*+Journal of Logic and Computation,+2017](https://homepages.cwi.nl/~jve/papers/16/pdfs/2016-05-23-del-bdd-lori-journal.pdf).++[Malvin Gattinger:+*Towards Symbolic Factual Change in DEL.*+ESSLLI 2017 student session,+2017](https://w4eg.de/malvin/illc/2017-07-symbolicfactualchange.pdf).++## Online++You can try SMCDEL online here: https://w4eg.de/malvin/illc/smcdelweb/+++## Dependencies++- [graphviz](http://graphviz.org/)+- [dot2tex](https://github.com/kjellmf/dot2tex)++On Debian, just do `sudo apt install graphviz dot2tex`.+++## Basic usage++1) Use *stack* from https://www.stackage.org++- `stack build` will compile everything. This might fail if one of+ the BDD packages written in C and C++ is missing. In this case,+ install those manually and then try `stack build` again.++- `stack install` will put two executables `smcdel` and `smcdel-web`+ into ~/.local/bin which should be in your `PATH` variable.++2) Create a text file which describes the knowledge structure and+the formulas you want to check for truth or validity:++ ```+ -- Three Muddy Children in SMCDEL+ VARS 1,2,3+ LAW Top+ OBS alice: 2,3+ bob: 1,3+ carol: 1,2+ WHERE?+ [ ! (1|2|3) ] alices knows whether 1+ VALID?+ [ ! (1|2|3) ]+ [ ! ((~ (alice knows whether 1)) & (~ (bob knows whether 2)) & (~ (carol knows whether 3))) ]+ [ ! ((~ (alice knows whether 1)) & (~ (bob knows whether 2)) & (~ (carol knows whether 3))) ]+ (alice,bob,carol) comknow that (1 & 2 & 3)+ ```++3) Run "smcdel textfile" resulting in:++ ```+ >> smcdel MuddyShort.smcdel.txt+ SMCDEL 1.0 by Malvin Gattinger -- https://github.com/jrclogic/SMCDEL++ At which states is ... true?+ []+ [1]++ Is ... valid on the given structure?+ True+ ```++More example files are in the folder [Examples](https://github.com/jrclogic/SMCDEL/tree/master/Examples).+++## Advanced usage++To deal with more complex models and formulas, use SMCDEL as a Haskell module.++Examples can be found in `Examples.hs` and the `Bench` folder.+++## Used BDD packages++SMCDEL can be used with different BDD packages. To compile and+run the benchmarks you will have to install all of them.++- [Data.HasCacBDD](https://github.com/m4lvin/HasCacBDD) which runs CacBDD from <http://kailesu.net/CacBDD/>+- [Cudd](https://github.com/davidcock/cudd) ([with some patches](https://github.com/m4lvin/cudd))+++## Experimental Stuff++`SMCDEL.Other.NonS5` implements general knowledge structures. They are+equivalent to Kripke models which are not based on equivalence relations.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ bench/diningcrypto.hs view
@@ -0,0 +1,54 @@+module Main (main) where+import Control.Monad (when)+import Data.Time (diffUTCTime,getCurrentTime,NominalDiffTime)+import System.Environment (getArgs)+import System.IO (hSetBuffering,BufferMode(NoBuffering),stdout)+import Text.Printf+import SMCDEL.Language+import SMCDEL.Symbolic.S5+import SMCDEL.Examples.DiningCrypto++benchDcCheckForm :: Int -> Form+benchDcCheckForm n =+ PubAnnounceW (Xor [genDcReveal n i | i<-[1..n] ]) $+ -- pubAnnounceWhetherStack [ genDcReveal n i | i<-[1..n] ] $ -- slow!+ Impl (Neg (PrpF $ P 1)) $+ Disj [ K "1" (Conj [Neg $ PrpF $ P k | k <- [1..n] ])+ , Conj [ K "1" (Disj [ PrpF $ P k | k <- [2..n] ])+ , Conj [ Neg $ K "1" (PrpF $ P k) | k <- [2..n] ] ] ]++benchDcValid :: Int -> Bool+benchDcValid n = validViaBdd (genDcKnsInit n) (benchDcCheckForm n)++dcTimeThis :: Int -> IO NominalDiffTime+dcTimeThis n = do+ start <- getCurrentTime+ let mykns@(KnS props _ _) = genDcKnsInit n+ putStr $ show (length props) ++ "\t"+ putStr $ show (length $ show mykns) ++ "\t"+ putStr $ show (length $ show $ benchDcCheckForm n) ++ "\t"+ if benchDcValid n then do+ end <- getCurrentTime+ return (end `diffUTCTime` start)+ else+ error "Wrong result."++mainLoop :: [Int] -> Int -> IO ()+mainLoop [] _ = putStrLn ""+mainLoop (n:ns) limit = do+ putStr $ show n ++ "\t"+ result <- dcTimeThis n+ printf "%.4f\n" (realToFrac result :: Double)+ when (result <= fromIntegral limit) $ mainLoop ns limit++main :: IO ()+main = do+ args <- getArgs+ hSetBuffering stdout NoBuffering+ limit <- case args of+ [aInteger] | [(n,_)] <- reads aInteger -> return n+ _ -> do+ putStrLn "No maximum runtime given, defaulting to one second."+ return 1+ putStrLn $ "n" ++ "\tn(prps)"++ "\tsz(KNS)"++ "\tsz(frm)" ++ "\ttime"+ mainLoop (3:4:(5 : map (10*) [1..])) limit
+ bench/muddychildren.hs view
@@ -0,0 +1,107 @@+module Main where+import Criterion.Main+import Data.Function+import Data.List+import Data.Ord (comparing)+import SMCDEL.Language+import SMCDEL.Examples.MuddyChildren+import SMCDEL.Internal.Help (apply)+import qualified SMCDEL.Explicit.DEMO_S5 as DEMO_S5+import qualified SMCDEL.Explicit.S5+import qualified SMCDEL.Symbolic.S5+import qualified SMCDEL.Symbolic.S5_CUDD+import qualified SMCDEL.Translations.S5+import qualified SMCDEL.Translations.K+import qualified SMCDEL.Other.MCTRIANGLE+import qualified SMCDEL.Symbolic.K+import qualified SMCDEL.Explicit.K++checkForm :: Int -> Int -> Form+checkForm n 0 = nobodyknows n+checkForm n k = PubAnnounce (nobodyknows n) (checkForm n (k-1))++findNumberWith :: (Int -> Int -> a, a -> Form -> Bool) -> Int -> Int -> Int+findNumberWith (start,evalfunction) n m = k where+ k | loop 0 == (m-1) = m-1+ | otherwise = error $ "wrong Muddy Children result: " ++ show (loop 0)+ loop count = if evalfunction (start n m) (PubAnnounce (father n) (checkForm n count))+ then loop (count+1)+ else count++mudPs :: Int -> [Prp]+mudPs n = [P 1 .. P n]++findNumberCacBDD :: Int -> Int -> Int+findNumberCacBDD = findNumberWith (cacMudScnInit,SMCDEL.Symbolic.S5.evalViaBdd) where+ cacMudScnInit n m = ( SMCDEL.Symbolic.S5.KnS (mudPs n) (SMCDEL.Symbolic.S5.boolBddOf Top) [ (show i,delete (P i) (mudPs n)) | i <- [1..n] ], mudPs m )++findNumberCUDD :: Int -> Int -> Int+findNumberCUDD = findNumberWith (cuddMudScnInit,SMCDEL.Symbolic.S5_CUDD.evalViaBdd) where+ cuddMudScnInit n m = ( SMCDEL.Symbolic.S5_CUDD.KnS (mudPs n) (SMCDEL.Symbolic.S5_CUDD.boolBddOf Top) [ (show i,delete (P i) (mudPs n)) | i <- [1..n] ], mudPs m )++findNumberTrans :: Int -> Int -> Int+findNumberTrans = findNumberWith (start,SMCDEL.Symbolic.S5.evalViaBdd) where+ start n m = SMCDEL.Translations.S5.kripkeToKns $ mudKrpInit n m++mudKrpInit :: Int -> Int -> SMCDEL.Explicit.S5.PointedModelS5+mudKrpInit n m = (SMCDEL.Explicit.S5.KrMS5 ws rel val, cur) where+ ws = [0..(2^n-1)]+ rel = [ (show i, erelFor i) | i <- [1..n] ] where+ erelFor i = sort $ map sort $+ groupBy ((==) `on` setForAt i) $+ sortBy (comparing (setForAt i)) ws+ setForAt i s = delete (P i) $ setAt s+ setAt s = map fst $ filter snd (apply val s)+ val = zip ws table+ ((cur,_):_) = filter (\(_,ass)-> sort (map fst $ filter snd ass) == [P 1..P m]) val+ table = foldl buildTable [[]] [P k | k<- [1..n]]+ buildTable partrows p = [ (p,v):pr | v <-[True,False], pr<-partrows ]++findNumberNonS5 :: Int -> Int -> Int+findNumberNonS5 = findNumberWith (mudBelScnInit, SMCDEL.Symbolic.K.evalViaBdd)++findNumberNonS5Trans :: Int -> Int -> Int+findNumberNonS5Trans = findNumberWith (start,SMCDEL.Symbolic.K.evalViaBdd) where+ start n m = SMCDEL.Translations.K.kripkeToBls $ SMCDEL.Explicit.K.mudGenKrpInit n m++mudDemoKrpInit :: Int -> Int -> DEMO_S5.EpistM [Bool]+mudDemoKrpInit n m = DEMO_S5.Mo states agents [] rels points where+ states = DEMO_S5.bTables n+ agents = map DEMO_S5.Ag [1..n]+ rels = [(DEMO_S5.Ag i, [[tab1++[True]++tab2,tab1++[False]++tab2] |+ tab1 <- DEMO_S5.bTables (i-1),+ tab2 <- DEMO_S5.bTables (n-i) ]) | i <- [1..n] ]+ points = [replicate (n-m) False ++ replicate m True]++findNumberDemoS5 :: Int -> Int -> Int+findNumberDemoS5 n m = findNumberDemoLoop n m 0 start where+ start = DEMO_S5.updPa (mudDemoKrpInit n m) (DEMO_S5.fatherN n)++findNumberDemoLoop :: Int -> Int -> Int -> DEMO_S5.EpistM [Bool] -> Int+findNumberDemoLoop n m count curMod =+ if DEMO_S5.isTrue curMod (DEMO_S5.dont n)+ then findNumberDemoLoop n m (count+1) (DEMO_S5.updPa curMod (DEMO_S5.dont n))+ else count++findNumberTriangle :: Int -> Int -> Int+findNumberTriangle n m = findNumberTriangleLoop 0 start where+ start = SMCDEL.Other.MCTRIANGLE.update (SMCDEL.Other.MCTRIANGLE.mcModel (n-m,m)) (SMCDEL.Other.MCTRIANGLE.Qf SMCDEL.Other.MCTRIANGLE.some)++findNumberTriangleLoop :: Int -> SMCDEL.Other.MCTRIANGLE.McModel -> Int+findNumberTriangleLoop count curMod =+ if SMCDEL.Other.MCTRIANGLE.eval curMod SMCDEL.Other.MCTRIANGLE.nobodyknows+ then findNumberTriangleLoop (count+1) (SMCDEL.Other.MCTRIANGLE.update curMod SMCDEL.Other.MCTRIANGLE.nobodyknows)+ else count++main :: IO ()+main = defaultMain (map mybench+ [ ("Triangle" , findNumberTriangle , [7..40] )+ , ("CacBDD" , findNumberCacBDD , [3..40] )+ , ("CUDD" , findNumberCUDD , [3..40] )+ , ("NonS5" , findNumberNonS5 , [3..12] )+ , ("DEMOS5" , findNumberDemoS5 , [3..12] )+ , ("Trans" , findNumberTrans , [3..12] )+ , ("NonS5Trans", findNumberNonS5Trans, [3..11] ) ])+ where+ mybench (name,f,range) = bgroup name $ map (run f) range+ run f k = bench (show k) $ whnf (\n -> f n n) k
+ bench/sumandproduct.hs view
@@ -0,0 +1,66 @@+module Main (main) where+import Criterion.Main+import Data.List (groupBy,sortBy)+import Data.Time (getCurrentTime, diffUTCTime)+import System.Environment (getArgs)+import SMCDEL.Explicit.DEMO_S5+import SMCDEL.Examples.SumAndProduct+import SMCDEL.Symbolic.S5++--possible pairs 1<x<y, x+y<=100+alice, bob :: Agent+(alice,bob) = (Ag 0,Ag 1)++--initial pointed epistemic model+msnp :: EpistM (Int,Int)+msnp = Mo pairs [alice,bob] [] rels pairs where+ rels = [ (alice,partWith (+)) , (bob,partWith (*)) ]+ partWith op = groupBy (\(x,y) (x',y') -> op x y == op x' y') $+ sortBy (\(x,y) (x',y') -> compare (op x y) (op x' y')) pairs++fmrs1e, fmrp2e, fmrs3e :: Form (Int,Int)++--Sum says: I knew that you didn't know the two numbers.+fmrs1e = Kn alice (Conj [Disj[Ng (Info p),+ Ng (Kn bob (Info p))]| p <- pairs])++--Product says: Now I know the two numbers+fmrp2e = Conj [ Disj[Ng (Info p),+ Kn bob (Info p) ] | p <- pairs]++--Sum says: Now I know the two numbers too+fmrs3e = Conj [ Disj[Ng (Info p),+ Kn alice (Info p) ] | p <- pairs]++main :: IO ()+main = do+ args <- getArgs+ if args == ["checkingOnly"]+ then do+ putStrLn "Benchmarking only the checking, without model generation."+ benchCheckingOnly+ else do+ putStrLn "Benchmarking the complete run."+ benchAllOnce++benchAllOnce :: IO ()+benchAllOnce = do+ putStrLn "*** Running DEMO_S5 ***"+ start <- getCurrentTime+ print $ updsPa msnp [fmrs1e, fmrp2e, fmrs3e]+ end <- getCurrentTime+ putStrLn $ "This took " ++ show (end `diffUTCTime` start) ++ " seconds.\n"++ putStrLn "*** Running SMCDEL ***"+ start2 <- getCurrentTime+ mapM_ (putStrLn . sapExplainState) sapSolutions+ end2 <- getCurrentTime+ putStrLn $ "This took " ++ show (end2 `diffUTCTime` start2) ++ " seconds.\n"++benchCheckingOnly :: IO ()+benchCheckingOnly = defaultMain [+ bgroup "checkingOnly"+ [ bench "DEMO-S5" $ nf (show . updsPa msnp) [fmrs1e, fmrp2e, fmrs3e]+ , bench "SMCDEL" $ nf (sapExplainState . head . whereViaBdd sapKnStruct) sapProtocol+ ]+ ]
+ exec/smcdel-web.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE OverloadedStrings, TemplateHaskell #-}++module Main where++import Prelude+import Control.Monad.IO.Class (liftIO)+import Control.Arrow+import Data.FileEmbed+import Data.List (intercalate)+import Data.Version (showVersion)+import Paths_smcdel (version)+import Web.Scotty+import qualified Data.Text as T+import qualified Data.Text.Encoding as E+import qualified Data.Text.Lazy as TL+import SMCDEL.Internal.Lex+import SMCDEL.Internal.Parse+import SMCDEL.Symbolic.S5+import SMCDEL.Internal.TexDisplay+import SMCDEL.Translations.S5+import SMCDEL.Language+import Data.HasCacBDD.Visuals (svgGraph)+import qualified Language.Javascript.JQuery as JQuery+import Language.Haskell.TH.Syntax++main :: IO ()+main = do+ putStrLn $ "SMCDEL " ++ showVersion version+ putStrLn "Please open this link: http://localhost:3000/index.html"+ scotty 3000 $ do+ get "" $ redirect "index.html"+ get "/" $ redirect "index.html"+ get "/index.html" . html . TL.fromStrict $ embeddedFile "index.html"+ get "/jquery.js" . html . TL.fromStrict $ embeddedFile "jquery.js"+ get "/viz-lite.js" . html . TL.fromStrict $ embeddedFile "viz-lite.js"+ get "/getExample" $ do+ this <- param "filename"+ html . TL.fromStrict $ embeddedFile this+ post "/check" $ do+ smcinput <- param "smcinput"+ let (CheckInput vocabInts lawform obs jobs) = parse $ alexScanTokens smcinput+ let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)+ knstring <- liftIO $ showStructure mykns+ let results = concatMap (\j -> "<p>" ++ doJobWeb mykns j ++ "</p>") jobs+ html $ mconcat+ [ TL.pack knstring+ , "<hr />\n"+ , TL.pack results ]+ post "/knsToKripke" $ do+ smcinput <- param "smcinput"+ let (CheckInput vocabInts lawform obs _) = parse $ alexScanTokens smcinput+ let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)+ _ <- liftIO $ showStructure mykns -- this moves parse errors to scotty+ if numberOfStates mykns > 32+ then html . TL.pack $ "Sorry, I will not draw " ++ show (numberOfStates mykns) ++ " states!"+ else do+ let (myKripke, _) = knsToKripke (mykns, head $ statesOf mykns) -- ignore actual world+ html $ TL.concat+ [ TL.pack "<div id='here'></div>"+ , TL.pack "<script>document.getElementById('here').innerHTML += Viz('"+ , textDot myKripke+ , TL.pack "');</script>" ]++doJobWeb :: KnowStruct -> Job -> String+doJobWeb mykns (ValidQ f) = unlines+ [ "\\( \\mathcal{F} "+ , if validViaBdd mykns f then "\\vDash" else "\\not\\vDash"+ , (texForm.simplify) f+ , "\\)" ]+doJobWeb mykns (WhereQ f) = unlines+ [ "At which states is \\("+ , (texForm.simplify) f+ , "\\) true?<br /> \\("+ , intercalate "," $ map tex (whereViaBdd mykns f)+ , "\\)" ]++showStructure :: KnowStruct -> IO String+showStructure (KnS props lawbdd obs) = do+ svgString <- svgGraph lawbdd+ return $ "$$ \\mathcal{F} = \\left( \n"+ ++ tex props ++ ", "+ ++ " \\begin{array}{l} {"++ " \\href{javascript:toggleLaw()}{\\theta} " ++"} \\end{array}\n "+ ++ ", \\begin{array}{l}\n"+ ++ intercalate " \\\\\n " (map (\(i,os) -> ("O_{"++i++"}=" ++ tex os)) obs)+ ++ "\\end{array}\n"+ ++ " \\right) $$ \n <div class='lawbdd' style='display:none;'> where \\(\\theta\\) is this BDD:<br /><p align='center'>" ++ svgString ++ "</p></div>"++embeddedFile :: String -> T.Text+embeddedFile s = case s of+ "index.html" -> E.decodeUtf8 $(embedFile "static/index.html")+ "viz-lite.js" -> E.decodeUtf8 $(embedFile "static/viz-lite.js")+ "jquery.js" -> E.decodeUtf8 $(embedFile =<< runIO JQuery.file)+ "MuddyChildren" -> E.decodeUtf8 $(embedFile "Examples/MuddyChildren.smcdel.txt")+ "DiningCryptographers" -> E.decodeUtf8 $(embedFile "Examples/DiningCryptographers.smcdel.txt")+ "DrinkingLogicians" -> E.decodeUtf8 $(embedFile "Examples/DrinkingLogicians.smcdel.txt")+ _ -> error "File not found."
+ exec/smcdel.hs view
@@ -0,0 +1,103 @@+module Main where++import Control.Arrow (second)+import Control.Monad (when,unless)+import Data.List (intercalate)+import Data.Version (showVersion)+import Paths_smcdel (version)+import System.Console.ANSI+import System.Directory (getTemporaryDirectory)+import System.Environment (getArgs,getProgName)+import System.Exit (exitFailure)+import System.Process (system)+import System.FilePath.Posix (takeBaseName)+import System.IO (Handle,hClose,hPutStrLn,stderr,stdout,openTempFile)+import SMCDEL.Internal.Lex+import SMCDEL.Internal.Parse+import SMCDEL.Internal.TexDisplay+import SMCDEL.Language+import SMCDEL.Symbolic.S5++main :: IO ()+main = do+ (input,options) <- getInputAndSettings+ let showMode = "-show" `elem` options+ let texMode = "-tex" `elem` options || showMode+ tmpdir <- getTemporaryDirectory+ (texFilePath,texFileHandle) <- openTempFile tmpdir "smcdel.tex"+ let outHandle = if showMode then texFileHandle else stdout+ unless texMode $ putStrLn infoline+ when texMode $ hPutStrLn outHandle texPrelude+ let (CheckInput vocabInts lawform obs jobs) = parse $ alexScanTokens input+ let mykns = KnS (map P vocabInts) (boolBddOf lawform) (map (second (map P)) obs)+ when texMode $+ hPutStrLn outHandle $ unlines+ [ "\\section{Given Knowledge Structure}", "\\[ (\\mathcal{F},s) = (" ++ tex ((mykns,[])::KnowScene) ++ ") \\]", "\\section{Results}" ]+ mapM_ (doJob outHandle texMode mykns) jobs+ when texMode $ hPutStrLn outHandle texEnd+ when showMode $ do+ hClose outHandle+ let command = "cd /tmp && pdflatex -interaction=nonstopmode " ++ takeBaseName texFilePath ++ ".tex > " ++ takeBaseName texFilePath ++ ".pdflatex.log && xdg-open "++ takeBaseName texFilePath ++ ".pdf"+ putStrLn $ "Now running: " ++ command+ _ <- system command+ return ()+ putStrLn "\nDoei!"++doJob :: Handle -> Bool -> KnowStruct -> Job -> IO ()+doJob outHandle True mykns (ValidQ f) = do+ hPutStrLn outHandle $ "Is $" ++ texForm (simplify f) ++ "$ valid on $\\mathcal{F}$?"+ hPutStrLn outHandle (show (validViaBdd mykns f) ++ "\n\n")+doJob outHandle False mykns (ValidQ f) = do+ hPutStrLn outHandle $ "Is " ++ ppForm f ++ " valid on the given structure?"+ vividPutStrLn (show (validViaBdd mykns f) ++ "\n")+doJob outHandle True mykns (WhereQ f) = do+ hPutStrLn outHandle $ "At which states is $" ++ texForm (simplify f) ++ "$ true? $"+ let states = map tex (whereViaBdd mykns f)+ hPutStrLn outHandle $ intercalate "," states+ hPutStrLn outHandle "$\n"+doJob outHandle False mykns (WhereQ f) = do+ hPutStrLn outHandle $ "At which states is " ++ ppForm f ++ " true?"+ mapM_ (vividPutStrLn.show.map(\(P n) -> n)) (whereViaBdd mykns f)+ putStr "\n"++getInputAndSettings :: IO (String,[String])+getInputAndSettings = do+ args <- getArgs+ case args of+ ("-":options) -> do+ input <- getContents+ return (input,options)+ (filename:options) -> do+ input <- readFile filename+ return (input,options)+ _ -> do+ name <- getProgName+ mapM_ (hPutStrLn stderr)+ [ infoline+ , "usage: " ++ name ++ " <filename> {options}"+ , " (use filename - for STDIN)\n"+ , " -tex generate LaTeX code\n"+ , " -show write to /tmp, generate PDF and show it (implies -tex)\n" ]+ exitFailure++vividPutStrLn :: String -> IO ()+vividPutStrLn s = do+ setSGR [SetColor Foreground Vivid White]+ putStrLn s+ setSGR []++infoline :: String+infoline = "SMCDEL " ++ showVersion version ++ " -- https://github.com/jrclogic/SMCDEL\n"++texPrelude, texEnd :: String+texPrelude = unlines [ "\\documentclass[a4paper,12pt]{article}",+ "\\usepackage{amsmath,amssymb,tikz,graphicx,color,etex,datetime,setspace,latexsym}",+ "\\usepackage[margin=2cm]{geometry}",+ "\\usepackage[T1]{fontenc}", "\\parindent0cm", "\\parskip1em",+ "\\usepackage{hyperref}",+ "\\hypersetup{pdfborder={0 0 0}}",+ "\\title{Results}",+ "\\author{\\href{https://github.com/jrclogic/SMCDEL}{SMCDEL}}",+ "\\begin{document}",+ "\\maketitle" ]+texEnd = "\\end{document}"
+ smcdel.cabal view
@@ -0,0 +1,169 @@+name: smcdel+version: 1.0.0+synopsis: Symbolic Model Checking for Dynamic Epistemic Logic+description: See README.md and SMCDEL.pdf for references and documentation.+homepage: https://github.com/jrclogic/SMCDEL+license: GPL-2+license-file: LICENSE+author: Malvin Gattinger+maintainer: malvin@w4eg.eu+category: Logic+build-type: Simple+cabal-version: >=1.23+extra-source-files: README.md+ stack.yaml+ static/index.html+ static/viz-lite.js+ Examples/DiningCryptographers.smcdel.txt+ Examples/MuddyChildren.smcdel.txt+ Examples/DrinkingLogicians.smcdel.txt++Library+ ghc-options: -Wall+ default-language: Haskell2010+ hs-source-dirs: src+ exposed-modules: SMCDEL.Examples+ SMCDEL.Examples.CoinFlip+ SMCDEL.Examples.DiningCrypto+ SMCDEL.Examples.DrinkLogic+ SMCDEL.Examples.GossipKw+ SMCDEL.Examples.GossipS5+ SMCDEL.Examples.MuddyChildren+ SMCDEL.Examples.Prisoners+ SMCDEL.Examples.RussianCards+ SMCDEL.Examples.SallyAnne+ SMCDEL.Examples.SumAndProduct+ SMCDEL.Examples.WhatSum+ SMCDEL.Explicit.DEMO_S5+ SMCDEL.Explicit.K+ SMCDEL.Explicit.K.Change+ SMCDEL.Explicit.S5+ SMCDEL.Internal.Help+ SMCDEL.Internal.Lex+ SMCDEL.Internal.MyHaskCUDD+ SMCDEL.Internal.Parse+ SMCDEL.Internal.TexDisplay+ SMCDEL.Internal.Token+ SMCDEL.Language+ SMCDEL.Other.BDD2Form+ SMCDEL.Other.MCTRIANGLE+ SMCDEL.Other.Planning+ SMCDEL.Symbolic.K+ SMCDEL.Symbolic.K.Change+ SMCDEL.Symbolic.S5+ SMCDEL.Symbolic.S5_CUDD+ SMCDEL.Symbolic.S5.Change+ SMCDEL.Translations.K+ SMCDEL.Translations.K.Change+ SMCDEL.Translations.S5+ build-depends: base >= 4.8 && < 5,+ array,+ containers,+ cudd == 0.1.0.0,+ graphviz,+ HasCacBDD == 0.1.0.0,+ lens,+ process,+ QuickCheck,+ tagged,+ temporary,+ text,+ time++Executable smcdel+ ghc-options: -Wall+ default-language: Haskell2010+ main-is: exec/smcdel.hs+ other-modules: Paths_smcdel+ build-tools: alex, happy+ build-depends: base >= 4.8 && < 5,+ ansi-terminal,+ directory,+ filepath,+ process,+ smcdel++Executable smcdel-web+ ghc-options: -Wall+ default-language: Haskell2010+ main-is: exec/smcdel-web.hs+ other-modules: Paths_smcdel+ build-tools: alex, happy+ build-depends: base >= 4.8 && < 5,+ file-embed,+ scotty,+ HasCacBDD,+ js-jquery >= 3,+ smcdel,+ template-haskell,+ text++Test-Suite translations+ ghc-options: -Wall+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: Translations.hs+ type: exitcode-stdio-1.0+ build-depends: base >= 4.8 && < 5,+ hspec,+ QuickCheck,+ smcdel++Test-Suite examples+ ghc-options: -Wall+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: Examples.hs+ type: exitcode-stdio-1.0+ build-depends: base >= 4.8 && < 5,+ hspec,+ QuickCheck,+ smcdel++Test-Suite nonS5+ ghc-options: -Wall+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: NonS5.hs+ type: exitcode-stdio-1.0+ build-depends: base >= 4.8 && < 5,+ containers,+ hspec,+ QuickCheck,+ smcdel++Benchmark bench-diningcrypto+ ghc-options: -Wall+ default-language: Haskell2010+ hs-source-dirs: bench+ main-is: diningcrypto.hs+ type: exitcode-stdio-1.0+ build-depends: base >= 4.8 && < 5,+ smcdel,+ time++Benchmark bench-sumandproduct+ ghc-options: -Wall+ default-language: Haskell2010+ hs-source-dirs: bench+ main-is: sumandproduct.hs+ type: exitcode-stdio-1.0+ build-depends: base >= 4.8 && < 5,+ criterion,+ smcdel,+ time++Benchmark bench-muddychildren+ ghc-options: -Wall+ default-language: Haskell2010+ hs-source-dirs: bench+ main-is: muddychildren.hs+ type: exitcode-stdio-1.0+ build-depends: base >= 4.8 && < 5,+ containers,+ smcdel,+ criterion++source-repository head+ type: git+ location: https://github.com/jrclogic/SMCDEL.git
+ src/SMCDEL/Examples.hs view
@@ -0,0 +1,56 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Examples where+import Data.List ((\\),sort)+import SMCDEL.Language+import SMCDEL.Symbolic.S5+import SMCDEL.Explicit.S5+import SMCDEL.Translations.S5++modelA :: PointedModelS5+modelA = (KrMS5 [0,1] [(alice,[[0,1]]),(bob,[[0],[1]])] [ (0,[(P 0,True)]), (1,[(P 0,False)]) ], 0)++modelB :: PointedModelS5+modelB =+ (KrMS5+ [0,1,2]+ [(alice,[[0,1,2]]),(bob,[[0],[1,2]])]+ [ (0,[(P 0,True)]), (1,[(P 0,True)]), (2,[(P 0,False)]) ]+ , 0)++knsA, knsB :: KnowScene+knsA = kripkeToKns modelA+knsB = kripkeToKns modelB++redundantModel :: PointedModelS5+redundantModel = (KrMS5 [0,1,2] [(alice,[[0,1,2]]),(bob,[[0,1],[2]])] [ (0,[(P 0,True)]), (1,[(P 0,True)]), (2,[(P 0,False)]) ], 0)++myKNS :: KnowScene+myKNS = kripkeToKns redundantModel++minimizedModel :: PointedModelS5+minimizedModel = knsToKripke myKNS++pubAnnounceAction :: [Agent] -> Form -> PointedActionModel+pubAnnounceAction ags f = (ActM [0] [(0,f)] [ (i,[[0]]) | i <- ags ], 0)++examplePaAction :: PointedActionModel+examplePaAction = pubAnnounceAction [alice,bob] (PrpF (P 0))++groupAnnounceAction :: [Agent] -> [Agent] -> Form -> PointedActionModel+groupAnnounceAction everyone listeners f = (ActM [0,1] [(0,f),(1,Neg f)] actrel, 0)+ where actrel = sort $ [ (i,[[0],[1]]) | i <- listeners ]+ ++ [ (i,[[0 , 1]]) | i <- everyone \\ listeners ]++exampleGroupAnnounceAction :: PointedActionModel+exampleGroupAnnounceAction = groupAnnounceAction [alice, bob] [alice] (PrpF (P 0))++eGrAnLaw :: Form+exampleGrAnnEvent :: Event+exampleGrAnnEvent@(KnT _ eGrAnLaw _, _) = actionToEvent exampleGroupAnnounceAction++actionOne :: PointedActionModel+actionOne = (ActM [0,1] [(0,p),(1, Disj [q, Neg q])] [("Alice",[[0],[1]]), ("Bob",[[0,1]])], 0) where (p,q) = (PrpF $ P 0, PrpF $ P 1)++actionTwo :: PointedActionModel+actionTwo = (ActM [0,1,2] [(0,p),(1,q),(2,Neg q)] [("Alice",[[0],[1,2]]), ("Bob",[[0,1,2]]) ], 0) where (p,q) = (PrpF $ P 0, PrpF $ P 1)
+ src/SMCDEL/Examples/CoinFlip.hs view
@@ -0,0 +1,30 @@+module SMCDEL.Examples.CoinFlip where++import Data.Map.Strict (fromList)+import Data.List ((\\))++import SMCDEL.Language+import SMCDEL.Symbolic.S5 (boolBddOf)+import SMCDEL.Symbolic.K+import SMCDEL.Symbolic.K.Change++coinStart :: BelScene+coinStart = (BlS [P 0] law obs, actual) where+ law = boolBddOf (PrpF $ P 0)+ obs = fromList [ ("a", allsamebdd [P 0]), ("b", allsamebdd [P 0]) ]+ actual = [P 0]++flipRandomAndShowTo :: [Agent] -> Prp -> Agent -> Event+flipRandomAndShowTo everyone p i = (Trf [q] eventlaw [p] changelaw obs, [q]) where+ q = freshp [p]+ eventlaw = Top+ changelaw = fromList [ (p, boolBddOf $ PrpF q) ]+ obs = fromList $+ (i, allsamebdd [q]) :+ [ (j,totalRelBdd) | j <- everyone \\ [i] ]++coinFlip :: Event+coinFlip = flipRandomAndShowTo ["a","b"] (P 0) "b"++coinResult :: BelScene+coinResult = coinStart `transform` coinFlip
+ src/SMCDEL/Examples/DiningCrypto.hs view
@@ -0,0 +1,91 @@+module SMCDEL.Examples.DiningCrypto where++import Data.List (delete)++import SMCDEL.Language+import SMCDEL.Symbolic.S5++dcScnInit :: Int -> (Bool,Bool,Bool) -> KnowScene+dcScnInit payer (b1,b2,b3) = ( KnS props law obs , truths ) where+ props = [ P 0 -- The NSA paid+ , P 1 -- Alice paid+ , P 2 -- Bob paid+ , P 3 -- Charlie paid+ , P 4 -- shared bit of Alice and Bob+ , P 5 -- shared bit of Alice and Charlie+ , P 6 ] -- shared bit of Bob and Charlie+ law = boolBddOf $ Conj [ someonepaid, notwopaid ]+ obs = [ (show (1::Int),[P 1, P 4, P 5])+ , (show (2::Int),[P 2, P 4, P 6])+ , (show (3::Int),[P 3, P 5, P 6]) ]+ truths = [ P payer ] ++ [ P 4 | b1 ] ++ [ P 5 | b2 ] ++ [ P 6 | b3 ]++dcScn1 :: KnowScene+dcScn1 = dcScnInit 1 (True,True,False)++someonepaid, notwopaid :: Form+someonepaid = Disj (map (PrpF . P) [0..3])+notwopaid = Conj [ Neg $ Conj [ PrpF $ P x, PrpF $ P y ] | x<-[0..3], y<-[(x+1)..3] ]++reveal :: Int -> Form+reveal 1 = Xor (map PrpF [P 1, P 4, P 5])+reveal 2 = Xor (map PrpF [P 2, P 4, P 6])+reveal _ = Xor (map PrpF [P 3, P 5, P 6])++dcScn2 :: KnowScene+dcScn2 = pubAnnounceOnScn dcScn1 (Conj [reveal 1, reveal 2, reveal 3])++everyoneKnowsWhetherNSApaid :: Form+everyoneKnowsWhetherNSApaid = Conj [ Kw (show i) (PrpF $ P 0) | i <- [1..3]::[Int] ]++nobodyknowsWhoPaid :: Form+nobodyknowsWhoPaid = Conj+ [ Impl (PrpF (P 1)) (Conj [Neg $ K "2" (PrpF $ P 1), Neg $ K "3" (PrpF $ P 1) ])+ , Impl (PrpF (P 2)) (Conj [Neg $ K "1" (PrpF $ P 2), Neg $ K "3" (PrpF $ P 2) ])+ , Impl (PrpF (P 3)) (Conj [Neg $ K "1" (PrpF $ P 3), Neg $ K "2" (PrpF $ P 3) ]) ]++dcCheckForm :: Form+dcCheckForm = PubAnnounceW (reveal 1) $ PubAnnounceW (reveal 2) $ PubAnnounceW (reveal 3) $+ Conj [ everyoneKnowsWhetherNSApaid, nobodyknowsWhoPaid ]++dcValid :: Bool+dcValid = validViaBdd dcStruct dcCheckForm where (dcStruct,_) = dcScn1++genDcSomeonepaid :: Int -> Form+genDcSomeonepaid n = Disj (map (PrpF . P) [0..n])++genDcNotwopaid :: Int -> Form+genDcNotwopaid n = Conj [ Neg $ Conj [ PrpF $ P x, PrpF $ P y ] | x<-[0..n], y<-[(x+1)..n] ]++-- | Initial structure for Dining Cryptographers (complete graph!)+genDcKnsInit :: Int -> KnowStruct+genDcKnsInit n = KnS props law obs where+ props = [ P 0 ] -- The NSA paid+ ++ [ (P 1) .. (P n) ] -- agent i paid+ ++ sharedbits+ law = boolBddOf $ Conj [genDcSomeonepaid n, genDcNotwopaid n]+ obs = [ (show i, obsfor i) | i<-[1..n] ]+ sharedbitLabels = [ [k,l] | k <- [1..n], l <- [1..n], k<l ] -- n(n-1)/2 shared bits+ sharedbitRel = zip sharedbitLabels [ (P $ n+1) .. ]+ sharedbits = map snd sharedbitRel+ obsfor i = P i : map snd (filter (\(label,_) -> i `elem` label) sharedbitRel)++genDcEveryoneKnowsWhetherNSApaid :: Int -> Form+genDcEveryoneKnowsWhetherNSApaid n = Conj [ Kw (show i) (PrpF $ P 0) | i <- [1..n] ]++genDcReveal :: Int -> Int -> Form+genDcReveal n i = Xor (map PrpF ps) where+ (KnS _ _ obs) = genDcKnsInit n+ (Just ps) = lookup (show i) obs++genDcNobodyknowsWhoPaid :: Int -> Form+genDcNobodyknowsWhoPaid n =+ Conj [ Impl (PrpF (P i)) (Conj [Neg $ K (show k) (PrpF $ P i) | k <- delete i [1..n] ]) | i <- [1..n] ]++genDcCheckForm :: Int -> Form+genDcCheckForm n =+ pubAnnounceWhetherStack [ genDcReveal n i | i<-[1..n] ] $+ Conj [ genDcEveryoneKnowsWhetherNSApaid n, genDcNobodyknowsWhoPaid n ]++genDcValid :: Int -> Bool+genDcValid n = validViaBdd (genDcKnsInit n) (genDcCheckForm n)
+ src/SMCDEL/Examples/DrinkLogic.hs view
@@ -0,0 +1,20 @@+module SMCDEL.Examples.DrinkLogic where++import SMCDEL.Language+import SMCDEL.Symbolic.S5++thirstyScene :: Int -> KnowScene+thirstyScene n = (KnS [P 1..P n] (boolBddOf Top) [ (show i,[P i]) | i <- [1..n] ], [P 1..P n])++myThirstyScene :: KnowScene+myThirstyScene = thirstyScene 3++thirstyF :: Int -> Form+thirstyF n = Conj [ Conj [ doesNotKnow k | k <- [1..n] ]+ , pubAnnounceStack [ doesNotKnow i | i<-[1..(n-1)] ] $ K (show n) allWantBeer ]+ where+ allWantBeer = Conj [ PrpF $ P k | k <- [1..n] ]+ doesNotKnow i = Neg $ Kw (show i) allWantBeer++thirstyCheck :: Int -> Bool+thirstyCheck n = evalViaBdd (thirstyScene n) (thirstyF n)
+ src/SMCDEL/Examples/GossipKw.hs view
@@ -0,0 +1,81 @@+module SMCDEL.Examples.GossipKw where++import SMCDEL.Language+import SMCDEL.Symbolic.S5 (boolBddOf)+import SMCDEL.Symbolic.K++import Control.Arrow ((&&&))+import Data.HasCacBDD hiding (Top)+import Data.Map.Strict (Map,fromList)+import Data.List ((\\),sort)++n :: Int+n = 4++gossipInit :: BelScene+gossipInit = (BlS vocab law obs, actual) where+ vocab = map P [1..n]+ law = boolBddOf Top+ obs = fromList [ (show i, allsamebdd [P i]) | i <- [1..n] ]+ actual = vocab++willExchangeT :: (Int,Int) -> Int -> Form+willExchangeT (a,b) k | k `elem` [a,b] = PrpF (P k)+ | otherwise = Disj [ K (show i) $ PrpF (P k) | i <- [a,b] ]++call :: (Int,Int) -> [Int] -> GenEvent+call (a,b) secSetT = (BlT vocplus lawplus obsplus, actualSet) where+ vocplus = sort $ map inCall [1..n] ++ map inSecT [1..n]+ inCall k = P (100+k) -- k participates in the call+ inSecT k = P (200+(k*2)) -- secret k is being exchanged (as true)+ lawplus = simplify $ Disj [ Conj [ thisCallHappens i j, theseSecretsAreExchanged i j ] | i <- [1..n], j <- [1..n], i < j ] where+ thisCallHappens i j = Conj $ map (PrpF . inCall) [i,j] ++ map (Neg . PrpF . inCall) ([1..n] \\ [i,j])+ -- lnsPreCondition i j = Neg $ K (show i) (PrpF $ P j)+ theseSecretsAreExchanged i j = simplify $ Conj+ [ PrpF (inSecT k) `Equi` willExchangeT (i,j) k | k <- [1..n] ]+ obsplus :: Map Agent RelBDD+ obsplus = fromList $ map (show &&& obsfor) [1..n] where+ obsfor i = con <$> allsamebdd [ inCall i ]+ <*> (imp <$> (mvBdd . boolBddOf . PrpF $ inCall i)+ <*> allsamebdd (sort $ map inCall [1..n] ++ map inSecT [1..n]))++ actualSet = [inCall a, inCall b] ++ map inSecT secSetT++toBeExchangedT :: BelScene -> (Int,Int) -> [Int]+toBeExchangedT scn (a,b) = filter (evalViaBdd scn . willExchangeT (a,b)) [1..n]++doCall :: BelScene -> (Int,Int) -> BelScene+doCall start (a,b) = cleanupObsLaw $ belTransform start (call (a,b) (toBeExchangedT start (a,b)))++doCalls :: BelScene -> [(Int,Int)] -> BelScene+doCalls = foldl doCall++expert :: Int -> Form+expert k = Conj [ K (show k) $ PrpF (P i) | i <- [1..n] ]++allExperts :: Form+allExperts = Conj $ map expert [1..n]++whoKnowsWhat :: BelScene -> [(Int,[Int])]+whoKnowsWhat scn = [ (k, filter (knownBy k) [1..n]) | k <- [1..n] ] where+ knownBy k i = evalViaBdd scn (K (show k) $ PrpF (P i))++-- What do agents know, and what do they know about each others knowledge?+whoKnowsMeta :: BelScene -> [(Int,[(Int,String)])]+whoKnowsMeta scn = [ (k, map (meta k) [1..n] ) | k <- [1..n] ] where+ meta x y = (y, map (knowsAbout x y) [1..n])+ knowsAbout x y i+ | evalViaBdd scn (K (show x) $ PrpF (P i) `Impl` K (show y) (PrpF (P i))) = 'Y'+ | evalViaBdd scn (Neg $ K (show x) $ Neg $ K (show y) $ PrpF (P i)) = '?'+ | evalViaBdd scn (K (show x) $ Neg $ K (show y) $ PrpF (P i)) = '_'+ | otherwise = 'E'++after :: [(Int,Int)] -> BelScene+after = doCalls gossipInit++succeeds :: [(Int,Int)] -> Bool+succeeds sequ = evalViaBdd (after sequ) allExperts++allSequs :: Int -> [ [(Int,Int)] ]+allSequs 0 = [ [] ]+allSequs l = [ (i,j):rest | rest <- allSequs (l-1), i <- [1..n], j <- [1..n], i < j ]
+ src/SMCDEL/Examples/GossipS5.hs view
@@ -0,0 +1,89 @@+module SMCDEL.Examples.GossipS5 where++import SMCDEL.Language+import SMCDEL.Symbolic.S5 hiding (Event)+import SMCDEL.Symbolic.S5.Change+import Data.Map.Strict (fromList,keys)+import Data.List ((\\))++gossipers :: Int -> [Int]+gossipers n = [0..(n-1)]++hasSof :: Int -> Int -> Int -> Prp+hasSof n a b | a == b = error "Let's not even talk about that."+ | otherwise = toEnum (n * a + b)++has :: Int -> Int -> Int -> Form+has n a b = PrpF (hasSof n a b)++expert :: Int -> Int -> Form+expert n a = Conj [ PrpF (hasSof n a b) | b <- gossipers n, a /= b ]++allExperts :: Int -> Form+allExperts n = Conj [ expert n a | a <- gossipers n ]++gossipInit :: Int -> KnowScene+gossipInit n = (KnS vocab law obs, actual) where+ vocab = [ hasSof n i j | i <- gossipers n, j <- gossipers n, i /= j ]+ law = boolBddOf $ Conj [ Neg $ PrpF $ hasSof n i j+ | i <- gossipers n, j <- gossipers n, i /= j]+ obs = [ (show i, []) | i <- gossipers n ]+ actual = [ ]++thisCallProp :: (Int,Int) -> Prp+thisCallProp (i,j) | i < j = P (100 + 10*i + j)+ | otherwise = error $ "wrong call: " ++ show (i,j)++call :: Int -> (Int,Int) -> Event+call n (a,b) = (callTrf n, [thisCallProp (a,b)])++callTrf :: Int -> KnowChange+callTrf n = CTrf eventprops eventlaw changeprops changelaws eventobs where+ thisCallHappens (i,j) = PrpF $ thisCallProp (i,j)+ isInCallForm k = Disj $ [ thisCallHappens (i,k) | i <- gossipers n \\ [k], i < k ]+ ++ [ thisCallHappens (k,j) | j <- gossipers n \\ [k], k < j ]+ allCalls = [ (i,j) | i <- gossipers n, j <- gossipers n, i < j ]+ eventprops = map thisCallProp allCalls+ eventlaw = simplify $+ Conj [ Disj (map thisCallHappens allCalls)+ -- some call must happen, but never two at the same time:+ , Neg $ Disj [ Conj [thisCallHappens c1, thisCallHappens c2]+ | c1 <- allCalls, c2 <- allCalls \\ [c1] ] ]+ callPropsWith k = [ thisCallProp (i,k) | i <- gossipers n, i < k ]+ ++ [ thisCallProp (k,j) | j <- gossipers n, k < j ]+ eventobs = fromList [(show k, callPropsWith k) | k <- gossipers n]+ changeprops = keys changelaws+ changelaws = fromList+ [(hasSof n i j, boolBddOf $ -- after a call, i has the secret of j iff+ Disj [ has n i j -- i already knew j, or+ , Conj (map isInCallForm [i,j]) -- i and j are both in the call or+ , Conj [ isInCallForm i -- i is in the call and there is some k in+ , Disj [ Conj [ isInCallForm k, has n k j ] -- the call who knew j+ | k <- gossipers n \\ [j] ] ]+ ])+ | i <- gossipers n, j <- gossipers n, i /= j ]++doCall :: KnowScene -> (Int,Int) -> KnowScene+doCall start (a,b) = knowChange start (call (length $ agentsOf start) (a,b)) -- TODO optimize here!++after :: Int -> [(Int,Int)] -> KnowScene+after n = foldl doCall (gossipInit n)++isSuccess :: Int -> [(Int,Int)] -> Bool+isSuccess n cs = evalViaBdd (after n cs) (allExperts n)++whoKnowsMeta :: KnowScene -> [(Int,[(Int,String)])]+whoKnowsMeta scn = [ (k, map (meta k) [0..maxid] ) | k <- [0..maxid] ] where+ n = length (agentsOf scn)+ maxid = n - 1+ meta x y = (y, map (knowsAbout x y) [0..maxid])+ knowsAbout x y i+ | y == i = 'X'+ | evalViaBdd scn ( K (show x) $ PrpF (hasSof n y i)) = 'Y'+ | evalViaBdd scn (Neg $ K (show x) $ Neg $ PrpF (hasSof n y i)) = '?'+ | evalViaBdd scn ( K (show x) $ Neg $ PrpF (hasSof n y i)) = '_'+ | otherwise = 'E'++allSequs :: Int -> Int -> [ [(Int,Int)] ]+allSequs _ 0 = [ [] ]+allSequs n l = [ (i,j):rest | rest <- allSequs n (l-1), i <- gossipers n, j <- gossipers n, i < j ]
+ src/SMCDEL/Examples/MuddyChildren.hs view
@@ -0,0 +1,55 @@+module SMCDEL.Examples.MuddyChildren where++import Data.List+import Data.Map.Strict (fromList)++import SMCDEL.Language+import SMCDEL.Symbolic.S5+import qualified SMCDEL.Symbolic.K++mudScnInit :: Int -> Int -> KnowScene+mudScnInit n m = (KnS vocab law obs, actual) where+ vocab = [P 1 .. P n]+ law = boolBddOf Top+ obs = [ (show i, delete (P i) vocab) | i <- [1..n] ]+ actual = [P 1 .. P m]++myMudScnInit :: KnowScene+myMudScnInit = mudScnInit 3 3++knows :: Int -> Form+knows i = Kw (show i) (PrpF $ P i)++nobodyknows :: Int -> Form+nobodyknows n = Conj [ Neg $ knows i | i <- [1..n] ]++father :: Int -> Form+father n = Disj (map PrpF [P 1 .. P n])+mudScn0 :: KnowScene+mudScn0 = pubAnnounceOnScn myMudScnInit (father 3)++mudScn1 :: KnowScene+mudScn1 = pubAnnounceOnScn mudScn0 (nobodyknows 3)++mudScn2 :: KnowScene+mudKns2 :: KnowStruct+mudScn2@(mudKns2,_) = pubAnnounceOnScn mudScn1 (nobodyknows 3)++empty :: Int -> KnowScene+empty n = (KnS [] (boolBddOf Top) obs,[]) where+ obs = [ (show i, []) | i <- [1..n] ]++buildMC :: Int -> Int -> Event+buildMC n m = (KnT vocab Top obs, map P [1..m]) where+ obs = [ (show i, delete (P i) vocab) | i <- [1..n] ]+ vocab = map P [1..n]++mudBelScnInit :: Int -> Int -> SMCDEL.Symbolic.K.BelScene+mudBelScnInit n m = (SMCDEL.Symbolic.K.BlS vocab law obs, actual) where+ vocab = [P 1 .. P n]+ law = boolBddOf Top+ obs = fromList [(show i, SMCDEL.Symbolic.K.allsamebdd $ delete (P i) vocab) | i <- [1..n]]+ actual = [P 1 .. P m]++myMudBelScnInit :: SMCDEL.Symbolic.K.BelScene+myMudBelScnInit = mudBelScnInit 3 3
+ src/SMCDEL/Examples/Prisoners.hs view
@@ -0,0 +1,115 @@+module SMCDEL.Examples.Prisoners where++import Data.HasCacBDD hiding (Top,Bot)+import Data.Map.Strict (fromList)++import SMCDEL.Explicit.K+import SMCDEL.Explicit.K.Change+import SMCDEL.Internal.TexDisplay+import SMCDEL.Language+import SMCDEL.Symbolic.K+import SMCDEL.Symbolic.K.Change+import SMCDEL.Symbolic.S5 (boolBddOf)++-- P 0 -- light is on+-- P i -- agent i has been in the room (and switched on the light)+-- agents: 1 is the counter, 2 and 3 are the others++prisonExpStart :: KripkeModel+prisonExpStart =+ KrM $ fromList [ (1, (fromList [(P 0,False),(P 1,False),(P 2,False),(P 3,False)], fromList [("1",[1])])) ]++prisonGoal :: Form+prisonGoal = Disj [ K i everyoneWasInTheRoom | i <- ["1"] ] where+ everyoneWasInTheRoom = Conj [ PrpF $ P k | k <- [1,2,3] ]++prisonAction :: ChangeModel+prisonAction = ChM $ fromList actions where+ p = PrpF (P 0)+ [p2,p3] = map (PrpF . P) [2,3]+ actions =+ [ (1, Ch p (fromList [(P 0, Bot), (P 1, Top) ]) (fromList [("1",[1 ])]))+ , (2, Ch (Neg p) (fromList [ (P 1, Top) ]) (fromList [("1",[2 ])]))+ , (3, Ch Top (fromList [(P 0, p2 `Impl` p), (P 2, p `Impl` p2)]) (fromList [("1",[3,4,5])])) -- interview 2+ , (4, Ch Top (fromList [(P 0, p3 `Impl` p), (P 3, p `Impl` p3)]) (fromList [("1",[3,4,5])])) -- interview 3+ -- , (5, Ch Top (fromList [ ]) (fromList [("1",[3,4,5])])) -- nothing happens, ignored for now+ ]++prisonInterview :: Integer -> MultipointedChangeModel+prisonInterview 1 = (prisonAction, [1,2])+prisonInterview 2 = (prisonAction, [3])+prisonInterview 3 = (prisonAction, [4])+prisonInterview _ = undefined++newtype KripkeStory = KrpStory (PointedModel,[MultipointedChangeModel])++endOfStory :: KripkeStory -> PointedModel+endOfStory (KrpStory (start,actions)) = foldl productChangeMulti start actions++instance TexAble KripkeStory where+ tex (KrpStory (start,actions)) = adjust (tex start) ++ loop start actions where+ adjust thing = "\\raisebox{-.5\\height}{\\begin{adjustbox}{max height=4cm, max width=7cm}" ++ thing ++ "\\end{adjustbox}}"+ loop _ [] = ""+ loop current (a:as) =+ let+ new = generatedSubmodel $ current `productChangeMulti` a+ in+ " \\times " ++ adjust (tex a) ++ " = " ++ adjust (tex new) ++ "\\] \\[ " ++ loop new as++prisonExp :: KripkeStory+prisonExp = KrpStory ((prisonExpStart,1), map prisonInterview [2,1,3,1])++prisonExpResult :: PointedModel+prisonExpResult = endOfStory prisonExp++prisonSymStart :: BelScene+prisonSymStart = (BlS (map P [0..3]) law obs, actual) where+ law = boolBddOf (Conj [ Neg $ PrpF $ P k | k <- [0..3]])+ -- Light off, nobody has been in the room, this is common knowledge.+ obs = fromList [ ("1", pure top), ("2", pure top), ("3", pure top) ]+ actual = []++prisonSymInterview :: Int -> MultiEvent+prisonSymInterview 1 = (prisonSymEvent, [undefined])+prisonSymInterview 2 = (prisonSymEvent, [undefined])+prisonSymInterview 3 = (prisonSymEvent, [undefined])+prisonSymInterview _ = undefined++prisonSymEvent :: Transformer+prisonSymEvent = Trf -- agent 1 is interviewd+ (map P [7,8,9]) -- distinguish six events using fresh variables:+ -- p7 iff the light was on+ -- p8 p9 - interview 1+ -- p8 - interview 2+ -- p9 - interview 3+ -- - forbid!+ (PrpF (P 7) `Equi` PrpF (P 0)) -- p7 hapens iff light is on aka p0+ [P 0, P 1, P 2, P 3] -- light might be turned off and visits of agents recorded+ (fromList [ (P 0, boolBddOf $ Conj [PrpF (P 7) `Impl` Bot, Neg (PrpF (P 7)) `Impl` PrpF (P 0)])+ , (P 1, top) ]) -- changelaw++ (fromList+ -- agent 1 observes whether (p8 && p9) and if true, observes p7+ [("1", allsamebdd [P 7])+ ,("2", pure top),("3", pure top)])++prisonSymEvent' :: Transformer+prisonSymEvent' = Trf -- agent 2 or 3 is interviewd+ [P 7] Top -- p7 iff interviewee is 2+ [P 0, P 2, P 3] -- light p0 might be turned on and visits of 2 and 3 recorded+ (fromList [ (P 0, boolBddOf $ Conj+ [ PrpF (P 7) `Impl` (PrpF (P 2) `Impl` PrpF (P 0))+ , Neg (PrpF (P 7)) `Impl` (PrpF (P 3) `Impl` PrpF (P 0)) ] )+ , (P 2, boolBddOf $ Conj+ [ PrpF (P 7) `Impl` (PrpF (P 0) `Impl` PrpF (P 2))+ , Neg (PrpF (P 7)) `Impl` PrpF (P 2) ] )+ , (P 3, boolBddOf $ Conj+ [ Neg (PrpF (P 7)) `Impl` (PrpF (P 0) `Impl` PrpF (P 3))+ , PrpF (P 7) `Impl` PrpF (P 3) ] )+ ]) -- changelaw+ (fromList [("1", pure top), ("2", allsamebdd [P 7]), ("3", allsamebdd [P 7])]) -- agent 2 and 3 observe++type Story = (BelScene,[MultiEvent])++prisonSym :: Story+prisonSym = (prisonSymStart, map prisonSymInterview [2,1,3,1])
+ src/SMCDEL/Examples/RussianCards.hs view
@@ -0,0 +1,241 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Examples.RussianCards where++import Control.Monad (replicateM)+import Data.List (delete,intersect,nub,sort)+import Data.Map.Strict (fromList)+import Data.HasCacBDD hiding (Top,Bot)++import SMCDEL.Language+import SMCDEL.Other.Planning+import SMCDEL.Symbolic.S5+import qualified SMCDEL.Symbolic.K as K++rcPlayers :: [Agent]+rcPlayers = [alice,bob,carol]++rcNumOf :: Agent -> Int+rcNumOf "Alice" = 0+rcNumOf "Bob" = 1+rcNumOf "Carol" = 2+rcNumOf _ = error "Unknown Agent"++rcCards :: [Int]+rcCards = [0..6]++rcProps :: [Prp]+rcProps = [ P k | k <-[0..((length rcPlayers * length rcCards)-1)] ]++hasCard :: Agent -> Int -> Form+hasCard i n = PrpF (P (3 * n + rcNumOf i))++-- use this in ppFormWith+rcExplain :: Prp -> String+rcExplain (P k) = show (rcPlayers !! i) ++ " `hasCard` " ++ show n where (n,i) = divMod k 3++allCardsGiven, allCardsUnique :: Form+allCardsGiven = Conj [ Disj [ i `hasCard` n | i <- rcPlayers ] | n <- rcCards ]+allCardsUnique = Conj [ Neg $ isDouble n | n <- rcCards ] where+ isDouble n = Disj [ Conj [ x `hasCard` n, y `hasCard` n ] | x <- rcPlayers, y <- rcPlayers, x < y ]++distribute331 :: Form+distribute331 = Conj [ aliceAtLeastThree, bobAtLeastThree, carolAtLeastOne ] where+ aliceAtLeastThree = Disj [ Conj (map (alice `hasCard`) [x, y, z]) | x<-rcCards, y<-rcCards, z<-rcCards, x/=y, x/=z, y/=z ]+ bobAtLeastThree = Disj [ Conj (map (bob `hasCard`) [x, y, z]) | x<-rcCards, y<-rcCards, z<-rcCards, x/=y, x/=z, y/=z ]+ carolAtLeastOne = Disj [ carol `hasCard` k | k<-[0..6] ]++rusSCN :: KnowScene+rusKNS :: KnowStruct+rusSCN@(rusKNS,_) = (KnS rcProps law [ (i, obs i) | i <- rcPlayers ], defaultDeal) where+ law = boolBddOf $ Conj [ allCardsGiven, allCardsUnique, distribute331 ]+ obs i = [ P (3 * k + rcNumOf i) | k<-[0..6] ]+ defaultDeal = [P 0,P 3,P 6,P 10,P 13,P 16,P 20]++aAnnounce :: Form+aAnnounce = K alice $ Disj [ Conj (map (alice `hasCard`) hand) |+ hand <- [ [0,1,2], [0,3,4], [0,5,6], [1,3,5], [2,4,6] ] ]++bAnnounce :: Form+bAnnounce = K bob (carol `hasCard` 6)++aKnowsBs, bKnowsAs, cIgnorant :: Form+aKnowsBs = Conj [ alice `Kw` (bob `hasCard` k) | k<-rcCards ]+bKnowsAs = Conj [ bob `Kw` (alice `hasCard` k) | k<-rcCards ]+cIgnorant = Conj $ concat [ [ Neg $ K carol $ alice `hasCard` i+ , Neg $ K carol $ bob `hasCard` i ] | i<-rcCards ]++rcCheck :: Int -> Form+rcCheck 0 = aAnnounce++rcCheck 1 = PubAnnounce aAnnounce bKnowsAs+rcCheck 2 = PubAnnounce aAnnounce (Ck [alice,bob] bKnowsAs)++rcCheck 3 = PubAnnounce aAnnounce (K bob (PrpF (P 20)))++rcCheck 4 = PubAnnounce aAnnounce (Ck [alice,bob,carol] cIgnorant)++rcCheck 5 = PubAnnounce aAnnounce (PubAnnounce bAnnounce (Ck [alice,bob] aKnowsBs))+rcCheck 6 = PubAnnounce aAnnounce (PubAnnounce bAnnounce (Ck [alice,bob] bKnowsAs))+rcCheck _ = PubAnnounce aAnnounce (PubAnnounce bAnnounce (Ck rcPlayers cIgnorant))++rcAllChecks :: Bool+rcAllChecks = evalViaBdd rusSCN (Conj (map rcCheck [0..7]))++checkSet :: [[Int]] -> Bool+checkSet set = all (evalViaBdd rusSCN) fs where+ aliceSays = K alice (Disj [ Conj $ map (alice `hasCard`) h | h <- set ])+ bobSays = K bob (carol `hasCard` 6)+ fs = [ aliceSays+ , PubAnnounce aliceSays bKnowsAs+ , PubAnnounce aliceSays (Ck [alice,bob] bKnowsAs)+ , PubAnnounce aliceSays (Ck [alice,bob,carol] cIgnorant)+ , PubAnnounce aliceSays (PubAnnounce bobSays (Ck [alice,bob] $ Conj [aKnowsBs, bKnowsAs]))+ , PubAnnounce aliceSays (PubAnnounce bobSays (Ck rcPlayers cIgnorant)) ]++possibleHands :: [[Int]]+possibleHands = [ [x,y,z] | x <- rcCards, y <- rcCards, z <-rcCards, x < y, y < z ]++pickHands :: [ [Int] ] -> Int -> [ [ [Int] ] ]+pickHands _ 0 = [ [ [ ] ] ]+pickHands unused 1 = [ [h] | h <- unused ]+pickHands unused n = concat [ [ h:hs | hs <- pickHands (myfilter h unused) (n-1) ] | h <- unused ] where+ myfilter h = filter (\xs -> length (h `intersect` xs) < 2 && h < xs)++allHandLists :: [ [ [Int] ] ]+allHandLists = concatMap (pickHands possibleHands) [5,6,7]++pickHandsNaive :: [ [Int] ] -> Int -> [ [ [Int] ] ]+pickHandsNaive _ 0 = [ [ [ ] ] ]+pickHandsNaive unused 1 = [ [h] | h <- unused ]+pickHandsNaive unused n = concat [ [ h:hs | hs <- pickHandsNaive (myfilter h unused) (n-1) ] | h <- unused ] where+ myfilter h = filter (\xs -> h < xs)++alicesActions :: [[[Int]]]+alicesActions = pickHandsNaive (delete [0,1,2] possibleHands) 4++alicesForms :: [Form]+alicesForms = map translate alicesActions++translate :: [[Int]] -> Form+translate set = Disj [ Conj $ map (alice `hasCard`) h | h <- [0,1,2]:set ]++bobsForms :: [Form]+bobsForms = [carol `hasCard` n | n <- reverse [0..6]] -- FIXME relax!++allPlans :: [(Form,Form)]+allPlans = [ (a,b) | a <- alicesForms, b <- bobsForms ]++testPlan :: (Form,Form) -> Bool+testPlan (aSays,bSays) = all (evalViaBdd rusSCN) fs where+ fs = [ aSays+ , PubAnnounce aSays bKnowsAs+ , PubAnnounce aSays (Ck [alice,bob] bKnowsAs)+ , PubAnnounce aSays (Ck [alice,bob,carol] cIgnorant)+ , PubAnnounce aSays bSays+ , PubAnnounce aSays (PubAnnounce bSays (Ck [alice,bob] $ Conj [aKnowsBs, bKnowsAs]))+ , PubAnnounce aSays (PubAnnounce bSays (Ck [alice,bob,carol] cIgnorant)) ]++rcSolutions :: [(Form, Form)]+rcSolutions = filter testPlan allPlans++type RusCardProblem = (Int,Int,Int)++distribute :: RusCardProblem -> Form+distribute (na,nb,nc) = Conj [ alice `hasAtLeast` na, bob `hasAtLeast` nb, carol `hasAtLeast` nc ] where+ n = na + nb + nc+ hasAtLeast :: Agent -> Int -> Form+ hasAtLeast _ 0 = Top+ hasAtLeast i 1 = Disj [ i `hasCard` k | k <- nCards n ]+ hasAtLeast i 2 = Disj [ Conj (map (i `hasCard`) [x, y]) | x <- nCards n, y <- nCards n, x/=y ]+ hasAtLeast i 3 = Disj [ Conj (map (i `hasCard`) [x, y, z]) | x<-nCards n, y<-nCards n, z<-nCards n, x/=y, x/=z, y/=z ]+ hasAtLeast i k = Disj [ Conj (map (i `hasCard`) set) | set <- sets ] where+ sets = filter alldiff $ nub $ map sort $ replicateM k (nCards n) where+ alldiff [] = True+ alldiff (x:xs) = x `notElem` xs && alldiff xs++nCards :: Int -> [Int]+nCards n = [0..(n-1)]++nCardsGiven, nCardsUnique :: Int -> Form+nCardsGiven n = Conj [ Disj [ i `hasCard` k | i <- rcPlayers ] | k <- nCards n ]+nCardsUnique n = Conj [ Neg $ isDouble k | k <- nCards n ] where+ isDouble k = Disj [ Conj [ x `hasCard` k, y `hasCard` k ] | x <- rcPlayers, y <- rcPlayers, x/=y, x < y ]++rusSCNfor :: RusCardProblem -> KnowScene+rusSCNfor (na,nb,nc) = (KnS props law [ (i, obs i) | i <- rcPlayers ], defaultDeal) where+ n = na + nb + nc+ props = [ P k | k <-[0..((length rcPlayers * n)-1)] ]+ law = boolBddOf $ Conj [ nCardsGiven n, nCardsUnique n, distribute (na,nb,nc) ]+ obs i = [ P (3 * k + rcNumOf i) | k<-[0..6] ]+ defaultDeal = [ let (PrpF p) = i `hasCard` k in p | i <- rcPlayers, k <- cardsFor i ]+ cardsFor "Alice" = [0..(na-1)]+ cardsFor "Bob" = [na..(na+nb-1)]+ cardsFor "Carol" = [(na+nb)..(na+nb+nc-1)]+ cardsFor _ = error "Who is that?"++-- the plan for (3,3,1)+basicPlan :: OfflinePlan+basicPlan =+ [ (aAnnounce, Conj [ bKnowsAs, Ck [alice,bob] bKnowsAs, Ck [alice,bob,carol] cIgnorant ] )+ , (bAnnounce, Conj [ aKnowsBs, Ck [alice,bob] aKnowsBs, Ck rcPlayers cIgnorant ] ) ]++possibleHandsN :: Int -> Int -> [[Int]]+possibleHandsN n na = filter alldiff $ nub $ map sort $ replicateM na (nCards n) where+ alldiff [] = True+ alldiff (x:xs) = x `notElem` xs && alldiff xs++allHandListsN :: Int -> Int -> [ [ [Int] ] ]+allHandListsN n na = concatMap (pickHands (possibleHandsN n na)) [5,6,7] -- FIXME how to adapt the number of hands for larger n?++aKnowsBsN, bKnowsAsN, cIgnorantN :: Int -> Form+aKnowsBsN n = Conj [ alice `Kw` (bob `hasCard` k) | k <- nCards n ]+bKnowsAsN n = Conj [ bob `Kw` (alice `hasCard` k) | k <- nCards n ]+cIgnorantN n = Conj $ concat [ [ Neg $ K carol $ alice `hasCard` i+ , Neg $ K carol $ bob `hasCard` i ] | i <- nCards n ]++checkSetFor :: RusCardProblem -> [[Int]] -> Bool+checkSetFor (na,nb,nc) set = plan `succeedsOn` rusSCNfor (na,nb,nc) where+ n = na + nb + nc+ aliceSays = K alice (Disj [ Conj $ map (alice `hasCard`) h | h <- set ])+ bobSays = K bob (carol `hasCard` last (nCards n))+ plan =+ [ (aliceSays, Conj [ bKnowsAsN n, Ck [alice,bob] (bKnowsAsN n), Ck [alice,bob,carol] (cIgnorantN n) ] )+ , (bobSays , Conj [ Ck [alice,bob] $ Conj [aKnowsBsN n, bKnowsAsN n], Ck rcPlayers (cIgnorantN n) ] )+ ]++checkHandsFor :: RusCardProblem -> [ ( [[Int]], Bool) ]+checkHandsFor (na,nb,nc) = map (\hs -> (hs, checkSetFor (na,nb,nc) hs)) (allHandListsN n na) where+ n = na + nb + nc++allCasesUpTo :: Int -> [RusCardProblem]+allCasesUpTo bound = [ (na,nb,nc) | na <- [1..bound]+ , nb <- [1..(bound-na)]+ , nc <- [1..(bound-(na+nb))]+ -- these restrictions are only proven+ -- for two announcement plans!+ , nc < (na - 1)+ , nc < nb ]+++dontChange :: [Form] -> K.RelBDD+dontChange fs = conSet <$> sequence [ equ <$> K.mvBdd b <*> K.cpBdd b | b <- map boolBddOf fs ]++noDoubles :: Int -> Form+noDoubles n = Conj [ notDOuble k | k <- nCards n ] where+ notDOuble k = Neg $ Conj [alice `hasCard` k, bob `hasCard` k]++rusBelScnfor :: RusCardProblem -> K.BelScene+rusBelScnfor (na,nb,nc) = (K.BlS props law (fromList [ (i, obsbdd i) | i <- rcPlayers ]), defaultDeal) where+ n = na + nb + nc+ props = [ P k | k <-[0..((2 * n)-1)] ]+ law = boolBddOf $ Conj [ noDoubles n, distribute (na,nb,nc) ]+ obsbdd "Alice" = dontChange [ PrpF (P $ 2*k) | k <- [0..(n-1)] ]+ obsbdd "Bob" = dontChange [ PrpF (P $ (2*k) + 1) | k <- [0..(n-1)] ]+ obsbdd "Carol" = dontChange [ Disj [PrpF (P $ 2*k), PrpF (P $ (2*k) + 1)] | k <- [0..(n-1)] ]+ obsbdd _ = error "Unkown Agent"+ defaultDeal = [ let (PrpF p) = i `hasCard` k in p | i <- [alice,bob], k <- cardsFor i ] where+ cardsFor "Alice" = [0..(na-1)]+ cardsFor "Bob" = [na..(na+nb-1)]+ cardsFor "Carol" = [(na+nb)..(na+nb+nc-1)]+ cardsFor _ = error "Unkown Agent"
+ src/SMCDEL/Examples/SallyAnne.hs view
@@ -0,0 +1,63 @@+module SMCDEL.Examples.SallyAnne where++import Data.Map.Strict (fromList)++import SMCDEL.Language+import SMCDEL.Symbolic.K+import SMCDEL.Symbolic.K.Change+import SMCDEL.Symbolic.S5 (boolBddOf)++pp, qq, tt :: Prp+pp = P 0+tt = P 1+qq = P 7 -- this number should not matter!++sallyInit :: BelScene+sallyInit = (BlS [pp, tt] law obs, actual) where+ law = boolBddOf $ Conj [PrpF pp, Neg (PrpF tt)]+ obs = fromList [ ("Sally", totalRelBdd), ("Anne", totalRelBdd) ]+ actual = [pp]++sallyPutsMarbleInBasket :: Event+sallyPutsMarbleInBasket = (Trf [] Top [tt]+ (fromList [ (tt,boolBddOf Top) ])+ (fromList [ (i,totalRelBdd) | i <- ["Anne","Sally"] ]), [])++sallyIntermediate1 :: BelScene+sallyIntermediate1 = sallyInit `transform` sallyPutsMarbleInBasket++sallyLeaves :: Event+sallyLeaves = (Trf [] Top [pp]+ (fromList [ (pp,boolBddOf Bot) ])+ (fromList [ (i,totalRelBdd) | i <- ["Anne","Sally"] ]), [])++sallyIntermediate2 :: BelScene+sallyIntermediate2 = sallyIntermediate1 `transform` sallyLeaves++annePutsMarbleInBox :: Event+annePutsMarbleInBox = (Trf [qq] Top [tt]+ (fromList [ (tt,boolBddOf $ Conj [Neg (PrpF qq) `Impl` PrpF tt, PrpF qq `Impl` Bot]) ])+ (fromList [ ("Anne", allsamebdd [qq]), ("Sally", cpBdd $ boolBddOf $ Neg (PrpF qq)) ]), [qq])++sallyIntermediate3 :: BelScene+sallyIntermediate3 = sallyIntermediate2 `transform` annePutsMarbleInBox++sallyComesBack :: Event+sallyComesBack = (Trf [] Top [pp]+ (fromList [ (pp,boolBddOf Top) ])+ (fromList [ (i,totalRelBdd) | i <- ["Anne","Sally"] ]), [])++sallyIntermediate4 :: BelScene+sallyIntermediate4 = sallyIntermediate3 `transform` sallyComesBack++sallyFinal :: BelScene+sallyFinal = sallyInit+ `transform` sallyPutsMarbleInBasket+ `transform` sallyLeaves+ `transform` annePutsMarbleInBox+ `transform` sallyComesBack++sallyFinalCheck :: (Bool,Bool)+sallyFinalCheck =+ ( SMCDEL.Symbolic.K.evalViaBdd sallyFinal (K "Sally" (PrpF tt))+ , sallyIntermediate4 == sallyFinal )
+ src/SMCDEL/Examples/SumAndProduct.hs view
@@ -0,0 +1,62 @@+module SMCDEL.Examples.SumAndProduct where++import Data.List+import Data.Maybe++import SMCDEL.Language+import SMCDEL.Internal.Help+import SMCDEL.Symbolic.S5++-- possible pairs 1<x<y, x+y<=100+pairs :: [(Int, Int)]+pairs = [(x,y) | x<-[2..100], y<-[2..100], x<y, x+y<=100]++-- 7 propositions to label [2..100], because 2^6 = 64 < 100 < 128 = 2^7+xProps, yProps, sProps, pProps :: [Prp]+xProps = [(P 1)..(P 7)]+yProps = [(P 8)..(P 14)]+sProps = [(P 15)..(P 21)]+-- 12 propositions for the product, because 2^11 = 2048 < 2500 < 4096 = 2^12+pProps = [(P 22)..(P 33)]++sapAllProps :: [Prp]+sapAllProps = sort $ xProps ++ yProps ++ sProps ++ pProps++xIs, yIs, sIs, pIs :: Int -> Form+xIs n = booloutofForm (powerset xProps !! n) xProps+yIs n = booloutofForm (powerset yProps !! n) yProps+sIs n = booloutofForm (powerset sProps !! n) sProps+pIs n = booloutofForm (powerset pProps !! n) pProps++xyAre :: (Int,Int) -> Form+xyAre (n,m) = Conj [ xIs n, yIs m ]++sapKnStruct :: KnowStruct+sapKnStruct = KnS sapAllProps law obs where+ law = boolBddOf $ Disj [ Conj [ xyAre (x,y), sIs (x+y), pIs (x*y) ] | (x,y) <- pairs ]+ obs = [ (alice, sProps), (bob, pProps) ]++sapKnows :: Agent -> Form+sapKnows i = Disj [ K i (xyAre p) | p <- pairs ]++sapForm1, sapForm2, sapForm3 :: Form+sapForm1 = K alice $ Neg (sapKnows bob) -- Sum: I knew that you didn't know the numbers.+sapForm2 = sapKnows bob -- Product: Now I know the two numbers+sapForm3 = sapKnows alice -- Sum: Now I know the two numbers too++sapProtocol :: Form+sapProtocol = Conj [ sapForm1+ , PubAnnounce sapForm1 sapForm2+ , PubAnnounce sapForm1 (PubAnnounce sapForm2 sapForm3) ]++sapSolutions :: [[Prp]]+sapSolutions = SMCDEL.Symbolic.S5.whereViaBdd sapKnStruct sapProtocol++sapExplainState :: [Prp] -> String+sapExplainState truths = concat+ [ "x = ", explain xProps, ", y = ", explain yProps, ", x+y = ", explain sProps+ , " and x*y = ", explain pProps ] where explain = show . nmbr truths++nmbr :: [Prp] -> [Prp] -> Int+nmbr truths set = fromMaybe (error "Value not found") $+ elemIndex (set `intersect` truths) (powerset set)
+ src/SMCDEL/Examples/WhatSum.hs view
@@ -0,0 +1,53 @@+module SMCDEL.Examples.WhatSum where++import SMCDEL.Examples.SumAndProduct (nmbr)+import SMCDEL.Language+import SMCDEL.Internal.Help+import SMCDEL.Symbolic.S5++wsBound :: Int+wsBound = 50++wsTriples :: [ (Int,Int,Int) ]+wsTriples = filter+ ( \(x,y,z) -> x+y==z || x+z==y || y+z==x )+ [ (x,y,z) | x <- [1..wsBound], y <- [1..wsBound], z <- [1..wsBound] ]++aProps,bProps,cProps :: [Prp]+(aProps,bProps,cProps) = ([(P 1)..(P k)],[(P $ k+1)..(P l)],[(P $ l+1)..(P m)]) where+ [k,l,m] = map (wsAmount*) [1,2,3]+ wsAmount = ceiling (logBase 2 (fromIntegral wsBound) :: Double)++aIs, bIs, cIs :: Int -> Form+aIs n = booloutofForm (powerset aProps !! n) aProps+bIs n = booloutofForm (powerset bProps !! n) bProps+cIs n = booloutofForm (powerset cProps !! n) cProps++wsKnStruct :: KnowStruct+wsKnStruct = KnS wsAllProps law obs where+ wsAllProps = aProps++bProps++cProps+ law = boolBddOf $ Disj [ Conj [ aIs x, bIs y, cIs z ] | (x,y,z) <- wsTriples ]+ obs = [ (alice, bProps++cProps), (bob, aProps++cProps), (carol, aProps++bProps) ]++wsKnowSelfA,wsKnowSelfB,wsKnowSelfC :: Form+wsKnowSelfA = Disj [ K alice $ aIs x | x <- [1..wsBound] ]+wsKnowSelfB = Disj [ K bob $ bIs x | x <- [1..wsBound] ]+wsKnowSelfC = Disj [ K carol $ cIs x | x <- [1..wsBound] ]++pubAnnounceSeq :: [Form] -> KnowStruct -> KnowStruct+pubAnnounceSeq [] = id+pubAnnounceSeq (f:fs) = \kns -> pubAnnounceSeq fs (pubAnnounce kns f)++wsResult :: KnowStruct+wsResult =+ pubAnnounceSeq+ [ Neg wsKnowSelfA, Neg wsKnowSelfB, Neg wsKnowSelfC ]+ wsKnStruct++wsSolutions :: [State]+wsSolutions = statesOf wsResult++wsExplainState :: [Prp] -> [(Char,Int)]+wsExplainState truths =+ [ ('a', explain aProps), ('b', explain bProps), ('c', explain cProps) ] where+ explain = nmbr truths
+ src/SMCDEL/Explicit/DEMO_S5.hs view
@@ -0,0 +1,159 @@+-- Note: This is a slightly modified version of DEMO-S5 by Jan van Eijck+-- which can be found at http://homepages.cwi.nl/~jve/software/demo_s5/+module SMCDEL.Explicit.DEMO_S5 where+import Control.Arrow (first,second)+import Data.List (sortBy)+import SMCDEL.Internal.Help (apply,restrict,Erel,bl)++newtype Agent = Ag Int deriving (Eq,Ord,Show)++data Prp = P Int | Q Int | R Int | S Int deriving (Eq,Ord)+instance Show Prp where+ show (P 0) = "p"; show (P i) = "p" ++ show i+ show (Q 0) = "q"; show (Q i) = "q" ++ show i+ show (R 0) = "r"; show (R i) = "r" ++ show i+ show (S 0) = "s"; show (S i) = "s" ++ show i++data EpistM state = Mo+ [state]+ [Agent]+ [(state,[Prp])]+ [(Agent,Erel state)]+ [state] deriving (Eq,Show)++rel :: Show a => Agent -> EpistM a -> Erel a+rel ag (Mo _ _ _ rels _) = apply rels ag++initM :: (Num state, Enum state) =>+ [Agent] -> [Prp] -> EpistM state+initM ags props = Mo worlds ags val accs points+ where+ worlds = [0..(2^k-1)]+ k = length props+ val = zip worlds (sortL (powerList props))+ accs = [ (ag,[worlds]) | ag <- ags ]+ points = worlds++powerList :: [a] -> [[a]]+powerList [] = [[]]+powerList (x:xs) =+ powerList xs ++ map (x:) (powerList xs)++sortL :: Ord a => [[a]] -> [[a]]+sortL = sortBy+ (\ xs ys -> if length xs < length ys+ then LT+ else if length xs > length ys+ then GT+ else compare xs ys)++data Form a = Top+ | Info a+ | Prp Prp+ | Ng (Form a)+ | Conj [Form a]+ | Disj [Form a]+ | Kn Agent (Form a)+ deriving (Eq,Ord,Show)++impl :: Form a -> Form a -> Form a+impl form1 form2 = Disj [Ng form1, form2]++isTrueAt :: Show state => Ord state =>+ EpistM state -> state -> Form state -> Bool+isTrueAt _ _ Top = True+isTrueAt _ w (Info x) = w == x+isTrueAt+ (Mo _ _ val _ _) w (Prp p) = let+ props = apply val w+ in+ elem p props+isTrueAt m w (Ng f) = not (isTrueAt m w f)+isTrueAt m w (Conj fs) = all (isTrueAt m w) fs+isTrueAt m w (Disj fs) = any (isTrueAt m w) fs+isTrueAt m w (Kn ag f) = let+ r = rel ag m+ b = bl r w+ in+ all (flip (isTrueAt m) f) b++isTrue :: Show a => Ord a => EpistM a -> Form a -> Bool+isTrue m@(Mo _ _ _ _ points) f =+ all (\w -> isTrueAt m w f) points++updPa :: Show state => Ord state =>+ EpistM state -> Form state -> EpistM state+updPa m@(Mo states agents val rels actual) f = Mo states' agents val' rels' actual'+ where+ states' = [ s | s <- states, isTrueAt m s f ]+ val' = [ (s, ps) | (s,ps) <- val, s `elem` states' ]+ rels' = [(ag,restrict states' r) | (ag,r) <- rels ]+ actual' = [ s | s <- actual, s `elem` states' ]++updsPa :: Show state => Ord state =>+ EpistM state -> [Form state] -> EpistM state+updsPa = foldl updPa++sub :: Show a => [(Prp,Form a)] -> Prp -> Form a+sub subst p =+ if p `elem` map fst subst+ then apply subst p+ else Prp p++updPc :: Show state => Ord state => [Prp] -> EpistM state+ -> [(Prp,Form state)] -> EpistM state+updPc ps m@(Mo states agents _ rels actual) sb =+ Mo states agents val' rels actual+ where+ val' = [ (s, [p | p <- ps, isTrueAt m s (sub sb p)])+ | s <- states ]++updsPc :: Show state => Ord state => [Prp] -> EpistM state+ -> [[(Prp,Form state)]] -> EpistM state+updsPc ps = foldl (updPc ps)++updPi :: (state -> state) -> EpistM state -> EpistM state+updPi f (Mo states agents val rels actual) =+ Mo+ (map f states)+ agents+ (map (first f) val)+ (map (second (map (map f))) rels)+ (map f actual)++bTables :: Int -> [[Bool]]+bTables 0 = [[]]+bTables n = map (True:) (bTables (n-1))+ ++ map (False:) (bTables (n-1))++initN :: Int -> EpistM [Bool]+initN n = Mo states agents [] rels points where+ states = bTables n+ agents = map Ag [1..n]+ rels = [(Ag i, [[tab1++[True]++tab2,tab1++[False]++tab2] |+ tab1 <- bTables (i-1),+ tab2 <- bTables (n-i) ]) | i <- [1..n] ]+ points = [False: replicate (n-1) True]++fatherN :: Int -> Form [Bool]+fatherN n = Ng (Info (replicate n False))++kn :: Int -> Int -> Form [Bool]+kn n i = Disj [Kn (Ag i) (Disj [Info (tab1++[True]++tab2) |+ tab1 <- bTables (i-1),+ tab2 <- bTables (n-i) ]),+ Kn (Ag i) (Disj [Info (tab1++[False]++tab2) |+ tab1 <- bTables (i-1),+ tab2 <- bTables (n-i) ])]++dont :: Int -> Form [Bool]+dont n = Conj [Ng (kn n i) | i <- [1..n] ]++knowN :: Int -> Form [Bool]+knowN n = Conj [kn n i | i <- [2..n] ]++solveN :: Int -> EpistM [Bool]+solveN n = updsPa (initN n) (f:istatements ++ [knowN n])+ where+ f = fatherN n+ istatements = replicate (n-2) (dont n)
+ src/SMCDEL/Explicit/K.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Explicit.K where++import Control.Arrow ((&&&))+import Data.GraphViz+import Data.List (nub,sort,(\\),delete,elemIndex)+import Data.Map.Strict (Map,fromList,elems,(!),mapMaybeWithKey)+import qualified Data.Map.Strict++import SMCDEL.Language+import SMCDEL.Explicit.S5 (World,HasWorlds,worldsOf,Action)+import SMCDEL.Internal.Help (alleqWith,lfp,seteq)+import SMCDEL.Internal.TexDisplay++newtype KripkeModel = KrM (Map World (Map Prp Bool, Map Agent [World]))+ deriving (Eq,Ord,Show)++type PointedModel = (KripkeModel, World)++distinctVal :: KripkeModel -> Bool+distinctVal (KrM m) = Data.Map.Strict.size m == length (nub (map fst (elems m)))++instance HasWorlds KripkeModel where+ worldsOf (KrM m) = Data.Map.Strict.keys m++instance HasVocab KripkeModel where+ vocabOf (KrM m) = Data.Map.Strict.keys $ fst (head (Data.Map.Strict.elems m))++instance HasAgents KripkeModel where+ agentsOf (KrM m) = Data.Map.Strict.keys $ snd (head (Data.Map.Strict.elems m))++instance HasWorlds PointedModel where worldsOf = worldsOf . fst+instance HasVocab PointedModel where vocabOf = vocabOf . fst+instance HasAgents PointedModel where agentsOf = agentsOf . fst++relOfIn :: Agent -> KripkeModel -> Map World [World]+relOfIn i (KrM m) = Data.Map.Strict.map (\x -> snd x ! i) m++truthsInAt :: KripkeModel -> World -> [Prp]+truthsInAt (KrM m) w = Data.Map.Strict.keys (Data.Map.Strict.filter id (fst (m ! w)))++instance KripkeLike KripkeModel where+ directed = const True+ getNodes m = map (show . fromEnum &&& labelOf) (worldsOf m) where+ labelOf w = "$" ++ tex (truthsInAt m w) ++ "$"+ getEdges m =+ concat [ [ (a, show $ fromEnum w, show $ fromEnum v) | v <- relOfIn a m ! w ] | w <- worldsOf m, a <- agentsOf m ]+ getActuals = const []++instance KripkeLike PointedModel where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals = return . show . fromEnum . snd++instance TexAble KripkeModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot++instance TexAble PointedModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot++exampleModel :: KripkeModel+exampleModel = KrM $ fromList+ [ (1, (fromList [(P 0,True ),(P 1,True )], fromList [(alice,[1]), (bob,[1])] ) )+ , (2, (fromList [(P 0,False),(P 1,True )], fromList [(alice,[1]), (bob,[2])] ) ) ]++examplePointedModel :: PointedModel+examplePointedModel = (exampleModel,1)++eval :: PointedModel -> Form -> Bool+eval _ Top = True+eval _ Bot = False+eval (m,w) (PrpF p) = p `elem` truthsInAt m w+eval pm (Neg f) = not $ eval pm f+eval pm (Conj fs) = all (eval pm) fs+eval pm (Disj fs) = any (eval pm) fs+eval pm (Xor fs) = odd $ length (filter id $ map (eval pm) fs)+eval pm (Impl f g) = not (eval pm f) || eval pm g+eval pm (Equi f g) = eval pm f == eval pm g+eval pm (Forall ps f) = eval pm (foldl singleForall f ps) where+ singleForall g p = Conj [ substit p Top g, substit p Bot g ]+eval pm (Exists ps f) = eval pm (foldl singleExists f ps) where+ singleExists g p = Disj [ substit p Top g, substit p Bot g ]+eval (KrM m,w) (K i f) = all (\w' -> eval (KrM m,w') f) (snd (m ! w) ! i)+eval (KrM m,w) (Kw i f) = alleqWith (\w' -> eval (KrM m,w') f) (snd (m ! w) ! i)+eval (m,w) (Ck ags form) = all (\w' -> eval (m,w') form) (groupRel m ags w)+eval (m,w) (Ckw ags form) = alleqWith (\w' -> eval (m,w') form) (groupRel m ags w)+eval (m,w) (PubAnnounce f g) = not (eval (m,w) f) || eval (pubAnnounceNonS5 m f,w) g+eval (m,w) (PubAnnounceW f g) = eval (pubAnnounceNonS5 m aform, w) g where+ aform | eval (m,w) f = f+ | otherwise = Neg f+eval (m,w) (Announce listeners f g) = not (eval (m,w) f) || eval newm g where+ newm = (m,w) `productUpdate` announceActionNonS5 (agentsOf m) listeners f+eval (m,w) (AnnounceW listeners f g) = eval newm g where+ newm = (m,w) `productUpdate` announceActionNonS5 (agentsOf m) listeners aform+ aform | eval (m,w) f = f+ | otherwise = Neg f++groupRel :: KripkeModel -> [Agent] -> World -> [World]+groupRel (KrM m) ags w = lfp extend (oneStepReachFrom w) where+ oneStepReachFrom x = concat [ snd (m ! x) ! a | a <- ags ]+ extend xs = sort . nub $ xs ++ concatMap oneStepReachFrom xs++pubAnnounceNonS5 :: KripkeModel -> Form -> KripkeModel+pubAnnounceNonS5 (KrM m) f = KrM newm where+ newm = mapMaybeWithKey isin m+ isin w' (v,rs) | eval (KrM m,w') f = Just (v,Data.Map.Strict.map newr rs)+ | otherwise = Nothing+ newr = filter (`elem` Data.Map.Strict.keys newm)++announceActionNonS5 :: [Agent] -> [Agent] -> Form -> PointedActionModel+announceActionNonS5 everyone listeners f = (AM am, 1) where+ am = fromList+ [ (1, (f , fromList $ [(i,[1]) | i <- listeners] ++ [(i,[2]) | i <- everyone \\ listeners]))+ , (2, (Top, fromList [(i,[2]) | i <- everyone]) ) ]++mudGenKrpInit :: Int -> Int -> PointedModel+mudGenKrpInit n m = (KrM $ fromList wlist, cur) where+ wlist = [ (w, (fromList (vals !! w), fromList $ relFor w)) | w <- ws ]+ ws = [0..(2^n-1)]+ vals = map sort (foldl buildTable [[]] [P k | k<- [1..n]])+ buildTable partrows p = [ (p,v):pr | v <-[True,False], pr <- partrows ]+ relFor w = [ (show i, seesFrom i w) | i <- [1..n] ]+ seesFrom i w = filter (\v -> samefor i (vals !! w) (vals !! v)) ws+ samefor i ps qs = seteq (delete (P i) (map fst $ filter snd ps)) (delete (P i) (map fst $ filter snd qs))+ (Just cur) = elemIndex curVal vals+ curVal = sort $ [(p,True) | p <- [P 1 .. P m]] ++ [(p,True) | p <- [P (m+1) .. P n]]++myMudGenKrpInit :: PointedModel+myMudGenKrpInit = mudGenKrpInit 3 3++generatedSubmodel :: PointedModel -> PointedModel+generatedSubmodel (KrM m, cur) = (KrM newm, cur) where+ newm = mapMaybeWithKey isin m+ isin w' (v,rs) | w' `elem` reachable = Just (v, Data.Map.Strict.map newr rs)+ | otherwise = Nothing+ newr = filter (`elem` Data.Map.Strict.keys newm)+ reachable = lfp follow [cur] where+ follow xs = sort . nub $ concat [ snd (m ! x) ! a | x <- xs, a <- agentsOf (KrM m) ]++newtype ActionModel = AM (Map Action (Form, Map Agent [Action]))+ deriving (Eq,Ord,Show)+type PointedActionModel = (ActionModel, Action)++eventsOf :: ActionModel -> [Action]+eventsOf (AM am) = Data.Map.Strict.keys am++instance HasAgents ActionModel where+ agentsOf (AM am) = Data.Map.Strict.keys $ snd (head (Data.Map.Strict.elems am))++relOfInAM :: Agent -> ActionModel -> Map Action [Action]+relOfInAM i (AM am) = Data.Map.Strict.map (\x -> snd x ! i) am++instance KripkeLike PointedActionModel where+ directed = const True+ getNodes (AM am, _) = map (show &&& labelOf) (eventsOf (AM am)) where+ labelOf a = "$" ++ tex (fst $ am ! a) ++ "$"+ getEdges (AM am, _) = concat [ [ (a,show w,show v) | v <- relOfInAM a (AM am) ! w ] | w <- eventsOf (AM am), a <- agentsOf (AM am) ]+ getActuals (_, cur) = [show cur]+ nodeAts _ True = [shape BoxShape, style solid]+ nodeAts _ False = [shape BoxShape, style dashed]++instance TexAble PointedActionModel where tex = tex.ViaDot++productUpdate :: PointedModel -> PointedActionModel -> PointedModel+productUpdate (KrM m, oldcur) (AM am, act)+ | agentsOf (KrM m) /= agentsOf (AM am) = error "productUpdate failed: Agents of KrM and GAM are not the same!"+ | not $ eval (KrM m, oldcur) (fst $ am ! act) = error "productUpdate failed: Actual precondition is false!"+ | otherwise = (KrM $ fromList (map annotate statePairs), newcur) where+ statePairs = zip [ (s, a) | s <- worldsOf (KrM m), a <- eventsOf (AM am), eval (KrM m, s) (fst $ am ! a) ] [0..]+ annotate ((s,a),news) = (news , (fst $ m ! s, fromList (map reachFor (agentsOf (KrM m))))) where+ reachFor i = (i, [ news' | ((s',a'),news') <- statePairs, s' `elem` snd (m ! s) ! i, a' `elem` snd (am ! a) ! i ])+ (Just newcur) = lookup (oldcur,act) statePairs++-- Privately tell alice that P 0, while bob thinks nothing happens.+exampleGenActM :: ActionModel+exampleGenActM = AM $ fromList+ [ (1, (PrpF (P 0), fromList [(alice,[1]), (bob,[2])] ) )+ , (2, (Top , fromList [(alice,[2]), (bob,[2])] ) ) ]++examplePointedActM :: PointedActionModel+examplePointedActM = (exampleGenActM,1)++exampleResult :: PointedModel+exampleResult = productUpdate examplePointedModel examplePointedActM
+ src/SMCDEL/Explicit/K/Change.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Explicit.K.Change where++import Control.Arrow ((&&&))+import Control.Monad+import Data.List (delete,intercalate)+import qualified Data.Map.Strict as M+import Data.Map.Strict ((!),fromList)+import Test.QuickCheck++import SMCDEL.Explicit.K+import SMCDEL.Explicit.S5 (World)+import SMCDEL.Internal.TexDisplay+import SMCDEL.Language++type PostCondition = M.Map Prp Form++type Action = Int++data Change = Ch {pre :: Form, post :: PostCondition, rel :: M.Map Agent [Action]}+ deriving (Eq,Ord,Show)++-- | Extend `post` to all propositions+safepost :: Change -> Prp -> Form+safepost ch p | p `elem` M.keys (post ch) = post ch ! p+ | otherwise = PrpF p++newtype ChangeModel = ChM (M.Map Action Change)+ deriving (Eq,Ord,Show)+type PointedChangeModel = (ChangeModel, Action)++type MultipointedChangeModel = (ChangeModel, [Action])++instance HasAgents ChangeModel where+ agentsOf (ChM cm) = M.keys $ rel (head (M.elems cm))++instance HasAgents PointedChangeModel where+ agentsOf = agentsOf . fst++instance HasPrecondition PointedChangeModel where+ preOf (ChM cm, actual) = pre (cm ! actual)++productChangeWithMap :: KripkeModel -> ChangeModel -> (KripkeModel, M.Map (World, Action) World)+productChangeWithMap (KrM m) (ChM cm)+ | agentsOf (KrM m) /= agentsOf (ChM cm) = error "productChange failed: agentsOf differs!"+ | otherwise = (KrM $ fromList (map annotate statePairs), fromList statePairs) where+ statePairs = zip (concat [ [ (s, a) | eval (KrM m, s) (pre $ cm ! a) ] | s <- M.keys m, a <- M.keys cm ]) [0..]+ annotate ((s,a),news) = (news , (newval, fromList (map reachFor (agentsOf (KrM m))))) where+ newval = M.mapWithKey applyPC (fst $ m ! s)+ applyPC p oldbit+ | p `elem` M.keys (post (cm ! a)) = eval (KrM m,s) (post (cm ! a) ! p)+ | otherwise = oldbit+ reachFor i = (i, [ news' | ((s',a'),news') <- statePairs, s' `elem` snd (m ! s) ! i, a' `elem` rel (cm ! a) ! i ])++productChange :: PointedModel -> PointedChangeModel -> PointedModel+productChange (m, cur) (ChM cm, act)+ | not $ eval (m, cur) (pre $ cm ! act) = error "productChange failed: false actual precondition!"+ | otherwise = (newm, newcur) where+ (newm, stateMap) = productChangeWithMap m (ChM cm)+ newcur = stateMap ! (cur,act)++productChangePointless :: KripkeModel -> ChangeModel -> KripkeModel+productChangePointless (KrM m) (ChM cm) = fst $ productChangeWithMap (KrM m) (ChM cm)++productChangeMulti :: PointedModel -> MultipointedChangeModel -> PointedModel+productChangeMulti pm (ChM cm, as) = productChange pm (ChM cm, a) where+ [a] = filter (\x -> eval pm (pre $ cm ! x)) as++publicMakeFalseChM :: [Agent] -> Prp -> PointedChangeModel+publicMakeFalseChM ags p = (ChM $ fromList [ (1::Action, Ch myPre myPost myRel) ], 0) where+ myPre = Top+ myPost = fromList [(p,Bot)]+ myRel = fromList [(i,[1]) | i <- ags]++instance Arbitrary ChangeModel where+ arbitrary = do+ let allactions = [0..3]+ [BF f, BF g, BF h, BF l] <- replicateM 4 (sized $ randomboolformWith [P 0 .. P 4])+ let myPres = map simplify [f,g,h,l]+ myPosts <- mapM (\_ -> do+ proptochange <- elements [P 0 .. P 4]+ postconcon <- elements $ [Top,Bot] ++ map PrpF [P 0 .. P 4]+ return $ fromList [ (proptochange, postconcon) ]+ ) allactions+ myRels <- mapM (\k -> do+ reachList <- sublistOf allactions+ return $ fromList $ ("0",[k]) : [(show i,reachList) | i <- [1..5::Int]]+ ) allactions+ return $ ChM $ fromList+ [ (k::Action, Ch (myPres !! k) (myPosts !! k) (myRels !! k)) | k <- allactions ]+ shrink (ChM cm) = [ ChM $ removeFromRels k $ M.delete k cm | k <- M.keys cm, k /= 0 ] where+ removeFromRels = M.map . removeFrom where+ removeFrom k c = c { rel = M.map (delete k) (rel c) }++instance KripkeLike ChangeModel where+ directed = const True+ getNodes (ChM cm) = map (show &&& labelOf) (M.keys cm) where+ labelOf a = concat+ [ "$\\begin{array}{c} ? " , tex (pre (cm ! a)) , "\\\\"+ , intercalate "\\\\" (map showPost (M.toList $ post (cm ! a)))+ , "\\end{array}$" ]+ showPost (p,f) = tex p ++ " := " ++ tex f+ getEdges (ChM cm) =+ concat [ [ (i, show a, show b) | b <- rel (cm ! a) ! i ] | a <- M.keys cm, i <- agentsOf (ChM cm) ]+ getActuals = const [ ]++instance TexAble ChangeModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot++instance KripkeLike PointedChangeModel where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals (_, a) = [show a]++instance TexAble PointedChangeModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot++instance KripkeLike MultipointedChangeModel where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals (_, as) = map show as++instance TexAble MultipointedChangeModel where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot
+ src/SMCDEL/Explicit/S5.hs view
@@ -0,0 +1,226 @@+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, FlexibleContexts #-}++module SMCDEL.Explicit.S5 where+import Control.Arrow (second,(&&&))+import Data.GraphViz+import Data.List+import SMCDEL.Language+import SMCDEL.Internal.TexDisplay+import SMCDEL.Internal.Help (alleqWith,fusion,apply,(!),lfp)+import Test.QuickCheck++type World = Int++class HasWorlds a where+ worldsOf :: a -> [World]++type Partition = [[World]]+type Assignment = [(Prp,Bool)]++data KripkeModelS5 = KrMS5 [World] [(Agent,Partition)] [(World,Assignment)] deriving (Eq,Ord,Show)+type PointedModelS5 = (KripkeModelS5,World)++instance HasAgents KripkeModelS5 where+ agentsOf (KrMS5 _ rel _) = map fst rel++instance HasAgents PointedModelS5 where+ agentsOf = agentsOf . fst++instance HasVocab KripkeModelS5 where+ vocabOf (KrMS5 _ _ val) = map fst $ snd (head val)++instance HasVocab PointedModelS5 where+ vocabOf = vocabOf . fst++instance HasWorlds KripkeModelS5 where+ worldsOf (KrMS5 ws _ _) = ws++instance HasWorlds PointedModelS5 where+ worldsOf = worldsOf . fst++newtype PropList = PropList [Prp]++withoutWorld :: KripkeModelS5 -> World -> KripkeModelS5+withoutWorld (KrMS5 worlds parts val) w = KrMS5+ (delete w worlds)+ (map (second (filter (/=[]) . map (delete w))) parts)+ (filter ((/=w).fst) val)++withoutProps :: KripkeModelS5 -> [Prp] -> KripkeModelS5+withoutProps (KrMS5 worlds parts val) dropProps = KrMS5+ worlds+ parts+ (map (second $ filter ((`notElem` dropProps) . fst)) val)++instance Arbitrary PropList where+ arbitrary = do+ moreprops <- sublistOf (map P [1..10])+ return $ PropList $ P 0 : moreprops++randomPartFor :: [World] -> Gen Partition+randomPartFor worlds = do+ indices <- infiniteListOf $ choose (1, length worlds)+ let pairs = zip worlds indices+ let parts = [ sort $ map fst $ filter ((==k).snd) pairs | k <- [1 .. (length worlds)] ]+ return $ sort $ filter (/=[]) parts++instance Arbitrary KripkeModelS5 where+ arbitrary = do+ let agents = map show [1..(5::Int)]+ let props = map P [0..4]+ worlds <- sort . nub <$> listOf1 (elements [0..8])+ val <- mapM (\w -> do+ randomAssignment <- zip props <$> infiniteListOf (choose (True,False))+ return (w,randomAssignment)+ ) worlds+ parts <- mapM (\i -> do+ randomPartition <- randomPartFor worlds+ return (i,randomPartition)+ ) agents+ return $ KrMS5 worlds parts val+ shrink m@(KrMS5 worlds _ _) =+ [ m `withoutWorld` w | w <- worlds, length worlds > 1 ]++eval :: PointedModelS5 -> Form -> Bool+eval _ Top = True+eval _ Bot = False+eval (KrMS5 _ _ val, cur) (PrpF p) = apply (apply val cur) p+eval pm (Neg form) = not $ eval pm form+eval pm (Conj forms) = all (eval pm) forms+eval pm (Disj forms) = any (eval pm) forms+eval pm (Xor forms) = odd $ length (filter id $ map (eval pm) forms)+eval pm (Impl f g) = not (eval pm f) || eval pm g+eval pm (Equi f g) = eval pm f == eval pm g+eval pm (Forall ps f) = eval pm (foldl singleForall f ps) where+ singleForall g p = Conj [ substit p Top g, substit p Bot g ]+eval pm (Exists ps f) = eval pm (foldl singleExists f ps) where+ singleExists g p = Disj [ substit p Top g, substit p Bot g ]+eval (m@(KrMS5 _ rel _),w) (K ag form) = all (\w' -> eval (m,w') form) vs where+ vs = concat $ filter (elem w) (apply rel ag)+eval (m@(KrMS5 _ rel _),w) (Kw ag form) = alleqWith (\w' -> eval (m,w') form) vs where+ vs = concat $ filter (elem w) (apply rel ag)+eval (m@(KrMS5 _ rel _),w) (Ck ags form) = all (\w' -> eval (m,w') form) vs where+ vs = concat $ filter (elem w) ckrel+ ckrel = fusion $ concat [ apply rel i | i <- ags ]+eval (m@(KrMS5 _ rel _),w) (Ckw ags form) = alleqWith (\w' -> eval (m,w') form) vs where+ vs = concat $ filter (elem w) ckrel+ ckrel = fusion $ concat [ apply rel i | i <- ags ]+eval pm (PubAnnounce form1 form2) =+ not (eval pm form1) || eval (pubAnnounce pm form1) form2+eval pm (PubAnnounceW form1 form2) =+ if eval pm form1+ then eval (pubAnnounce pm form1) form2+ else eval (pubAnnounce pm (Neg form1)) form2+eval pm (Announce ags form1 form2) =+ not (eval pm form1) || eval (announce pm ags form1) form2+eval pm (AnnounceW ags form1 form2) =+ if eval pm form1+ then eval (announce pm ags form1) form2+ else eval (announce pm ags (Neg form1)) form2++valid :: KripkeModelS5 -> Form -> Bool+valid m@(KrMS5 worlds _ _) f = all (\w -> eval (m,w) f) worlds++pubAnnounce :: PointedModelS5 -> Form -> PointedModelS5+pubAnnounce pm@(m@(KrMS5 sts rel val), cur) form =+ if eval pm form then (KrMS5 newsts newrel newval, cur)+ else error "pubAnnounce failed: Liar!"+ where+ newsts = filter (\s -> eval (m,s) form) sts+ newrel = map (second relfil) rel+ relfil = filter ([]/=) . map (filter (`elem` newsts))+ newval = filter (\p -> fst p `elem` newsts) val++announce :: PointedModelS5 -> [Agent] -> Form -> PointedModelS5+announce pm@(m@(KrMS5 sts rel val), cur) ags form =+ if eval pm form then (KrMS5 sts newrel val, cur)+ else error "announce failed: Liar!"+ where+ split ws = map sort.(\(x,y) -> [x,y]) $ partition (\s -> eval (m,s) form) ws+ newrel = map nrel rel+ nrel (i,ri) | i `elem` ags = (i,filter ([]/=) (concatMap split ri))+ | otherwise = (i,ri)++instance KripkeLike KripkeModelS5 where+ directed = const False+ getNodes (KrMS5 ws _ val) = map (show &&& labelOf) ws where+ labelOf w = tex $ apply val w+ getEdges (KrMS5 _ rel _) =+ nub [ (a,show x,show y) | a <- map fst rel, part <- apply rel a, x <- part, y <- part, x < y ]++instance KripkeLike PointedModelS5 where+ directed = directed . fst+ getNodes = getNodes . fst+ getEdges = getEdges . fst+ getActuals (_, cur) = [show cur]++instance TexAble PointedModelS5 where+ tex = tex.ViaDot+ texTo = texTo.ViaDot+ texDocumentTo = texDocumentTo.ViaDot++type Bisimulation = [(World,World)]++checkBisim :: Bisimulation -> KripkeModelS5 -> KripkeModelS5 -> Bool+checkBisim [] _ _ = False+checkBisim z m1@(KrMS5 _ rel1 val1) m2@(KrMS5 _ rel2 val2) =+ all (\(w1,w2) -> val1 ! w1 == val2 ! w2) z -- same props+ && and [ any (\v2 -> (v1,v2) `elem` z) (concat $ filter (elem w2) (rel2 ! ag)) -- forth+ | (w1,w2) <- z, ag <- agentsOf m1, v1 <- concat $ filter (elem w1) (rel1 ! ag) ]+ && and [ any (\v1 -> (v1,v2) `elem` z) (concat $ filter (elem w1) (rel1 ! ag)) -- back+ | (w1,w2) <- z, ag <- agentsOf m2, v2 <- concat $ filter (elem w2) (rel2 ! ag) ]++generatedSubmodel :: PointedModelS5 -> PointedModelS5+generatedSubmodel (KrMS5 _ rel val, cur) = (KrMS5 newWorlds newrel newval, cur) where+ newWorlds :: [World]+ newWorlds = lfp follow [cur] where+ follow xs = sort . nub $ concat [ part | (_,parts) <- rel, part <- parts, any (`elem` part) xs ]+ newrel = map (second $ filter (any (`elem` newWorlds))) rel+ newval = filter (\p -> fst p `elem` newWorlds) val++type Action = Int+data ActionModel = ActM [Action] [(Action,Form)] [(Agent,Partition)]+ deriving (Eq,Ord,Show)+type PointedActionModel = (ActionModel,Action)++instance KripkeLike PointedActionModel where+ directed = const False+ getNodes (ActM as actval _, _) = map (show &&& labelOf) as where+ labelOf w = " $ ? " ++ tex (apply actval w) ++ " $ "+ getEdges (ActM _ _ rel, _) =+ nub [ (a, show x, show y) | a <- map fst rel, part <- apply rel a, x <- part, y <- part, x < y ]+ getActuals (ActM {}, cur) = [show cur]+ nodeAts _ True = [shape BoxShape, style solid]+ nodeAts _ False = [shape BoxShape, style dashed]++instance TexAble PointedActionModel where tex = tex.ViaDot++instance Arbitrary ActionModel where+ arbitrary = do+ f <- arbitrary+ g <- arbitrary+ h <- arbitrary+ return $+ ActM [0..3] [(0,Top),(1,f),(2,g),(3,h)] ( ("0",[[0],[1],[2],[3]]):[(show k,[[0..3::Int]]) | k<-[1..5::Int] ])++productUpdate :: PointedModelS5 -> PointedActionModel -> PointedModelS5+productUpdate pm@(m@(KrMS5 oldWorlds oldrel oldval), oldcur) (ActM actions precon actrel, faction) =+ let+ startcount = maximum oldWorlds + 1+ copiesOf (s,a) = [ (s, a, a * startcount + s) | eval (m, s) (apply precon a) ]+ newWorldsTriples = concat [ copiesOf (s,a) | s <- oldWorlds, a <- actions ]+ newWorlds = map (\(_,_,x) -> x) newWorldsTriples+ newval = map (\(s,_,t) -> (t, apply oldval s)) newWorldsTriples+ listFor ag = cartProd (apply oldrel ag) (apply actrel ag)+ newPartsFor ag = [ cartProd as bs | (as,bs) <- listFor ag ]+ translSingle pair = filter (`elem` newWorlds) $ map (\(_,_,x) -> x) $ copiesOf pair+ transEqClass = concatMap translSingle+ nTransPartsFor ag = filter (\x-> x/=[]) $ map transEqClass (newPartsFor ag)+ newrel = [ (a, nTransPartsFor a) | a <- map fst oldrel ]+ ((_,_,newcur):_) = copiesOf (oldcur,faction)+ factTest = apply precon faction+ cartProd xs ys = [ (x,y) | x <- xs, y <- ys ]+ in case ( map fst oldrel == map fst actrel, eval pm factTest ) of+ (False, _) -> error "productUpdate failed: Agents of KrMS5 and ActM are not the same!"+ (_, False) -> error "productUpdate failed: Actual precondition is false!"+ _ -> (KrMS5 newWorlds newrel newval, newcur)
+ src/SMCDEL/Internal/Help.hs view
@@ -0,0 +1,102 @@+module SMCDEL.Internal.Help (+ alleq,alleqWith,anydiff,anydiffWith,alldiff,+ apply,applyPartial,(!),(!=),+ powerset,restrict,rtc,tc,Erel,bl,fusion,seteq,subseteq,lfp+ ) where+import Data.List (nub,union,sort,foldl',(\\))++type Rel a b = [(a,b)]+type Erel a = [[a]]++alleq :: Eq a => [a] -> Bool+alleq = alleqWith id++alleqWith :: Eq b => (a -> b) -> [a] -> Bool+alleqWith _ [] = True+alleqWith f (x:xs) = all (f x ==) (map f xs)++anydiff :: Eq a => [a] -> Bool+anydiff = anydiffWith id++anydiffWith :: Eq b => (a -> b) -> [a] -> Bool+anydiffWith _ [] = False+anydiffWith f (x:xs) = any (f x /=) (map f xs)++alldiff :: Eq a => [a] -> Bool+alldiff [] = True+alldiff (x:xs) = notElem x xs && alldiff xs++apply :: Show a => Show b => Eq a => Rel a b -> a -> b+apply rel left = case lookup left rel of+ Nothing -> error ("apply: Relation " ++ show rel ++ " not defined at " ++ show left)+ (Just this) -> this++(!) :: Show a => Show b => Eq a => Rel a b -> a -> b+(!) = apply++applyPartial :: Eq a => [(a,a)] -> a -> a+applyPartial rel left = case lookup left rel of+ Nothing -> left+ (Just this) -> this++(!=) :: Eq a => [(a,a)] -> a -> a+(!=) = applyPartial++powerset :: [a] -> [[a]]+powerset [] = [[]]+powerset (x:xs) = map (x:) pxs ++ pxs where pxs = powerset xs++concatRel :: Eq a => Rel a a -> Rel a a -> Rel a a+concatRel r s = nub [ (x,z) | (x,y) <- r, (w,z) <- s, y == w ]++lfp :: Eq a => (a -> a) -> a -> a+lfp f x | x == f x = x+ | otherwise = lfp f (f x)++dom :: Eq a => Rel a a -> [a]+dom r = nub (foldr (\ (x,y) -> ([x,y]++)) [] r)++restrict :: Ord a => [a] -> Erel a -> Erel a+restrict domain = nub . filter (/= []) . map (filter (`elem` domain))++rtc :: Eq a => Rel a a -> Rel a a+rtc r = lfp (\ s -> s `union` concatRel r s) [(x,x) | x <- dom r ]++tc :: Eq a => Rel a a -> Rel a a+tc r = lfp (\ s -> s `union` concatRel r s) r++merge :: Ord a => [a] -> [a] -> [a]+merge xs [] = xs+merge [] ys = ys+merge (x:xs) (y:ys) = case compare x y of+ EQ -> x : merge xs ys+ LT -> x : merge xs (y:ys)+ GT -> y : merge (x:xs) ys++mergeL :: Ord a => [[a]] -> [a]+mergeL = foldl' merge []++overlap :: Ord a => [a] -> [a] -> Bool+overlap [] _ = False+overlap _ [] = False+overlap (x:xs) (y:ys) = case compare x y of+ EQ -> True+ LT -> overlap xs (y:ys)+ GT -> overlap (x:xs) ys++bl :: Eq a => Erel a -> a -> [a]+bl r x = head (filter (elem x) r)++fusion :: Ord a => [[a]] -> Erel a+fusion [] = []+fusion (b:bs) = let+ cs = filter (overlap b) bs+ xs = mergeL (b:cs)+ ds = filter (overlap xs) bs+ in if cs == ds then xs : fusion (bs \\ cs) else fusion (xs : bs)++seteq :: Ord a => [a] -> [a] -> Bool+seteq as bs = sort as == sort bs++subseteq :: Eq a => [a] -> [a] -> Bool+subseteq xs ys = all (`elem` ys) xs
+ src/SMCDEL/Internal/Lex.x view
@@ -0,0 +1,54 @@+{+{-# OPTIONS_GHC -w #-}+module SMCDEL.Internal.Lex where+import SMCDEL.Internal.Token+}++%wrapper "posn"++$dig = 0-9 -- digits+$alf = [a-zA-Z] -- alphabetic characters++tokens :-+ -- ignore whitespace and comments:+ $white+ ;+ "--".* ;+ -- keywords and punctuation:+ "VARS" { \ p _ -> TokenVARS p }+ "LAW" { \ p _ -> TokenLAW p }+ "OBS" { \ p _ -> TokenOBS p }+ "VALID?" { \ p _ -> TokenVALIDQ p }+ "WHERE?" { \ p _ -> TokenWHEREQ p }+ ":" { \ p _ -> TokenColon p }+ "," { \ p _ -> TokenComma p }+ "(" { \ p _ -> TokenOB p }+ ")" { \ p _ -> TokenCB p }+ "[" { \ p _ -> TokenCOB p }+ "]" { \ p _ -> TokenCCB p }+ "<" { \ p _ -> TokenLA p }+ ">" { \ p _ -> TokenRA p }+ "!" { \ p _ -> TokenExclam p }+ "?" { \ p _ -> TokenQuestm p }+ -- DEL Formulas:+ "Top" { \ p _ -> TokenTop p }+ "Bot" { \ p _ -> TokenBot p }+ "~" { \ p _ -> TokenNeg p }+ "Not" { \ p _ -> TokenNeg p }+ "not" { \ p _ -> TokenNeg p }+ "&" { \ p _ -> TokenBinCon p }+ "|" { \ p _ -> TokenBinDis p }+ "->" { \ p _ -> TokenImpl p }+ "iff" { \ p _ -> TokenEqui p }+ "AND" { \ p _ -> TokenCon p }+ "OR" { \ p _ -> TokenDis p }+ "XOR" { \ p _ -> TokenXor p }+ "ForAll" { \ p _ -> TokenForall p }+ "Forall" { \ p _ -> TokenForall p }+ "Exists" { \ p _ -> TokenExists p }+ "knows whether" { \ p _ -> TokenInfixKnowWhether p }+ "knows that" { \ p _ -> TokenInfixKnowThat p }+ "comknow whether" { \ p _ -> TokenInfixCKnowWhether p }+ "comknow that" { \ p _ -> TokenInfixCKnowThat p }+ -- Integers and Strings:+ $dig+ { \ p s -> TokenInt (read s) p }+ $alf [$alf $dig]* { \ p s -> TokenStr s p }
+ src/SMCDEL/Internal/MyHaskCUDD.hs view
@@ -0,0 +1,91 @@+module SMCDEL.Internal.MyHaskCUDD (+ -- * Types+ Bdd,+ -- * Creation of new BDDs+ top, bot, var,+ -- * Combination and Manipulation of BDDs+ neg, con, dis, imp, equ, xor, conSet, disSet, xorSet,+ exists, forall, forallSet, existsSet,+ restrict, restrictSet,+ ifthenelse,+ gfp+) where++import qualified Cudd.Cudd++type Bdd = Cudd.Cudd.DdNode++manager :: Cudd.Cudd.DdManager+manager = Cudd.Cudd.cuddInit++top :: Bdd+top = Cudd.Cudd.cuddReadOne manager++bot :: Bdd+bot = Cudd.Cudd.cuddReadLogicZero manager++var :: Int -> Bdd+var = Cudd.Cudd.cuddBddIthVar manager++neg :: Bdd -> Bdd+neg = Cudd.Cudd.cuddNot manager++xor :: Bdd -> Bdd -> Bdd+xor = Cudd.Cudd.cuddBddXor manager++exists :: Int -> Bdd -> Bdd+exists n b = Cudd.Cudd.cuddBddExistAbstract manager b (Cudd.Cudd.cuddIndicesToCube manager [n])++forall :: Int -> Bdd -> Bdd+forall n b = Cudd.Cudd.cuddBddUnivAbstract manager b (Cudd.Cudd.cuddIndicesToCube manager [n])++existsSet :: [Int] -> Bdd -> Bdd+existsSet [] b = b+existsSet ns b = Cudd.Cudd.cuddBddExistAbstract manager b (Cudd.Cudd.cuddIndicesToCube manager ns)++forallSet :: [Int] -> Bdd -> Bdd+forallSet [] b = b+forallSet ns b = Cudd.Cudd.cuddBddUnivAbstract manager b (Cudd.Cudd.cuddIndicesToCube manager ns)++equ :: Bdd -> Bdd -> Bdd+equ a b = con (imp a b) (imp b a)++imp :: Bdd -> Bdd -> Bdd+imp b1 b2 = Cudd.Cudd.cuddBddIte manager b1 b2 top++ifthenelse :: Bdd -> Bdd -> Bdd -> Bdd+ifthenelse = Cudd.Cudd.cuddBddIte manager++con :: Bdd -> Bdd -> Bdd+con = Cudd.Cudd.cuddBddAnd manager++dis :: Bdd -> Bdd -> Bdd+dis = Cudd.Cudd.cuddBddOr manager++conSet :: [Bdd] -> Bdd+conSet [] = top+conSet (b:bs) = foldl con b bs++disSet :: [Bdd] -> Bdd+disSet [] = bot+disSet (b:bs) = foldl dis b bs++xorSet :: [Bdd] -> Bdd+xorSet [] = bot+xorSet (b:bs) = foldl xor b bs++gfp :: (Bdd -> Bdd) -> Bdd+gfp operator = gfpLoop top where+ gfpLoop :: Bdd -> Bdd+ gfpLoop current =+ if current == operator current+ then current+ else gfpLoop (operator current)++restrict :: Bdd -> (Int,Bool) -> Bdd+restrict b (n,bit) = Cudd.Cudd.cuddBddLICompaction manager b res where+ res = if bit then var n else neg (var n)++restrictSet :: Bdd -> [(Int,Bool)] -> Bdd+restrictSet b bits = Cudd.Cudd.cuddBddLICompaction manager b res where+ res = conSet $ map (\(n,bit) -> if bit then var n else neg (var n)) bits
+ src/SMCDEL/Internal/Parse.y view
@@ -0,0 +1,108 @@+{+{-# OPTIONS_GHC -w #-}+module SMCDEL.Internal.Parse where+import SMCDEL.Internal.Token+import SMCDEL.Internal.Lex+import SMCDEL.Language+}++%name parse CheckInput+%tokentype { Token AlexPosn }+%error { parseError }++%token+ VARS { TokenVARS _ }+ LAW { TokenLAW _ }+ OBS { TokenOBS _ }+ VALIDQ { TokenVALIDQ _ }+ WHEREQ { TokenWHEREQ _ }+ COLON { TokenColon _ }+ COMMA { TokenComma _ }+ TOP { TokenTop _ }+ BOT { TokenBot _ }+ '(' { TokenOB _ }+ ')' { TokenCB _ }+ '[' { TokenCOB _ }+ ']' { TokenCCB _ }+ '<' { TokenLA _ }+ '>' { TokenRA _ }+ '!' { TokenExclam _ }+ '?' { TokenQuestm _ }+ '&' { TokenBinCon _ }+ '|' { TokenBinDis _ }+ '~' { TokenNeg _ }+ '->' { TokenImpl _ }+ CON { TokenCon _ }+ DIS { TokenDis _ }+ XOR { TokenXor _ }+ STR { TokenStr $$ _ }+ INT { TokenInt $$ _ }+ 'iff' { TokenEqui _ }+ KNOWSTHAT { TokenInfixKnowThat _ }+ KNOWSWHETHER { TokenInfixKnowWhether _ }+ CKNOWTHAT { TokenInfixCKnowThat _ }+ CKNOWWHETHER { TokenInfixCKnowWhether _ }+ 'Forall' { TokenForall _ }+ 'Exists' { TokenExists _ }++%left '&'+%left '|'+%nonassoc '~'++%%++CheckInput : VARS IntList LAW Form OBS ObserveSpec JobList { CheckInput $2 $4 $6 $7 }+ | VARS IntList LAW Form OBS ObserveSpec { CheckInput $2 $4 $6 [] }+IntList : INT { [$1] }+ | INT COMMA IntList { $1:$3 }+Form : TOP { Top }+ | BOT { Bot }+ | '(' Form ')' { $2 }+ | '~' Form { Neg $2 }+ | CON '(' FormList ')' { Conj $3 }+ | Form '&' Form { Conj [$1,$3] }+ | Form '|' Form { Disj [$1,$3] }+ | Form '->' Form { Impl $1 $3 }+ | DIS '(' FormList ')' { Disj $3 }+ | XOR '(' FormList ')' { Xor $3 }+ | Form 'iff' Form { Equi $1 $3 }+ | INT { PrpF (P $1) }+ | String KNOWSTHAT Form { K $1 $3 }+ | String KNOWSWHETHER Form { Kw $1 $3 }+ | StringList CKNOWTHAT Form { Ck $1 $3 }+ | StringList CKNOWWHETHER Form { Ckw $1 $3 }+ | '(' StringList ')' CKNOWTHAT Form { Ck $2 $5 }+ | '(' StringList ')' CKNOWWHETHER Form { Ckw $2 $5 }+ | '[' '!' Form ']' Form { PubAnnounce $3 $5 }+ | '[' '?' '!' Form ']' Form { PubAnnounceW $4 $6 }+ | '<' '!' Form '>' Form { Neg (PubAnnounce $3 (Neg $5)) }+ | '<' '?' '!' Form '>' Form { Neg (PubAnnounceW $4 (Neg $6)) }+ -- announcements to a group:+ | '[' StringList '!' Form ']' Form { Announce $2 $4 $6 }+ | '[' StringList '?' '!' Form ']' Form { AnnounceW $2 $5 $7 }+ | '<' StringList '!' Form '>' Form { Neg (Announce $2 $4 (Neg $6)) }+ | '<' StringList '?' '!' Form '>' Form { Neg (AnnounceW $2 $5 (Neg $7)) }+ -- boolean quantifiers:+ | 'Forall' IntList Form { Forall (map P $2) $3 }+ | 'Exists' IntList Form { Exists (map P $2) $3 }+FormList : Form { [$1] } | Form COMMA FormList { $1:$3 }+String : STR { $1 }+StringList : String { [$1] } | String COMMA StringList { $1:$3 }+ObserveLine : STR COLON IntList { ($1,$3) }+ObserveSpec : ObserveLine { [$1] } | ObserveLine ObserveSpec { $1:$2 }+JobList : Job { [$1] } | Job JobList { $1:$2 }+Job : VALIDQ Form { ValidQ $2 } | WHEREQ Form { WhereQ $2 }++{+data CheckInput = CheckInput [Int] Form [(String,[Int])] JobList deriving (Show,Eq,Ord)+data Job = ValidQ Form | WhereQ Form deriving (Show,Eq,Ord)+type JobList = [Job]+type IntList = [Int]+type FormList = [Form]+type ObserveLine = (String,IntList)+type ObserveSpec = [ObserveLine]++parseError :: [Token AlexPosn] -> a+parseError (t:ts) = error ("Parse error in line " ++ show lin ++ ", column " ++ show col)+ where (AlexPn abs lin col) = apn t+}
+ src/SMCDEL/Internal/TexDisplay.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE FlexibleInstances, UndecidableInstances, MultiParamTypeClasses, AllowAmbiguousTypes, OverloadedStrings #-}++module SMCDEL.Internal.TexDisplay where+import Control.Monad+import Data.List+import qualified Data.Text.Lazy as T+import System.IO+import System.IO.Temp+import System.IO.Unsafe+import System.Process+import Data.GraphViz+import Data.GraphViz.Types.Generalised+import Data.GraphViz.Types.Monadic+import Data.Time.Clock.POSIX++begintab, endtab, newline :: String+begintab = "\\\\begin{tabular}{c}"+endtab = "\\\\end{tabular}"+newline = " \\\\\\\\[0pt] "++removeDoubleSpaces :: String -> String+removeDoubleSpaces (' ':' ':rest) = removeDoubleSpaces (' ':rest)+removeDoubleSpaces (x : xs ) = x : removeDoubleSpaces xs+removeDoubleSpaces [ ] = [ ]++class TexAble a where+ tex :: a -> String+ texTo :: a -> String -> IO ()+ texTo x filename = writeFile (filename++".tex") (tex x)+ texDocumentTo :: a -> String -> IO ()+ texDocumentTo x filename =+ writeFile (filename++".tex") (pre ++ tex x ++ post) where+ pre = concat [ "\\documentclass{standalone}"+ , "\\usepackage[utf8]{inputenc}"+ , "\\usepackage{tikz,fontenc,graphicx}"+ , "\\usepackage[pdftex]{hyperref}"+ , "\\hypersetup{pdfborder={0 0 0},breaklinks=true}"+ , "\\begin{document}"+ ]+ post= "\\end{document}"+ pdfTo :: a -> String -> IO ()+ pdfTo x filename = do+ texDocumentTo x filename+ runAndWait $ "cd " ++ filename ++ "/../; /usr/bin/pdflatex -interaction=nonstopmode "++filename++".tex"+ disp :: a -> IO ()+ disp x = withSystemTempDirectory "smcdel" $ \tmpdir -> do+ ts <- round <$> getPOSIXTime+ let filename = tmpdir ++ "/disp-" ++ show (ts :: Int)+ pdfTo x filename+ runIgnoreAndWait $ "/usr/bin/okular " ++ filename ++ ".pdf"+ svgViaTex :: a -> String+ svgViaTex x = unsafePerformIO $ withSystemTempDirectory "smcdel" $ \tmpdir -> do+ ts <- round <$> getPOSIXTime+ let filename = tmpdir ++ "/svgViaTex-" ++ show (ts :: Int)+ pdfTo x filename+ runAndWait $ "pdftocairo -nocrop -svg "++filename++".pdf "++filename++".svg"+ readFile (filename ++ ".svg")++instance TexAble String where+ tex i = " \\text{" ++ i ++ "} "++instance TexAble Int where+ tex = show++-- | TeXing assignments as sets+instance TexAble a => TexAble [(a,Bool)] where+ tex ass = case filter snd ass of+ [] -> ""+ ps -> "$" ++ intercalate "," (map (tex.fst) ps) ++ "$"++runAndWait :: String -> IO ()+runAndWait command = do+ (_inp,_out,err,pid) <- runInteractiveCommand command+ _ <- waitForProcess pid+ hGetContents err >>= (\x -> unless (null x) (putStrLn x))+ return ()++runIgnoreAndWait :: String -> IO ()+runIgnoreAndWait command = do+ (_inp,_out,_err,pid) <- runInteractiveCommand command+ _ <- waitForProcess pid+ return ()++class KripkeLike a where+ getNodes :: a -> [(String,String)] -- nid,nlabel+ getEdges :: a -> [(String,String,String)] -- elabel,from,to+ getActuals :: a -> [String] -- nid+ getActuals = const []+ directed :: a -> Bool+ directed = const True+ nodeAts :: a -> Bool -> Attributes+ nodeAts _ True = [shape DoubleCircle]+ nodeAts _ False = [shape Circle]+ toGraph :: a -> Data.GraphViz.Types.Generalised.DotGraph String+ toGraph x = (if directed x then digraph' else graph') $ do+ let nodes = getNodes x+ let actuals = filter (\n -> fst n `elem` getActuals x) nodes+ mapM_+ (\(nid,nlabel) -> node nid (toLabel nlabel : nodeAts x True))+ actuals+ mapM_+ (\(nid,nlabel) -> node nid (toLabel nlabel : nodeAts x False))+ (nodes \\ actuals)+ mapM_+ (\(elabel,from,to) -> edge from to [toLabel elabel])+ (getEdges x)+ dispDot :: a -> IO ()+ dispDot x = runGraphvizCanvas Dot (toGraph x) Xlib+ textDot :: a -> T.Text+ textDot = T.intercalate " " . T.lines . printDotGraph . toGraph+ svg :: a -> String+ svg x = unsafePerformIO $+ withSystemTempDirectory "smcdel" $ \tmpdir -> do+ _ <- runGraphvizCommand Dot (toGraph x) Svg (tmpdir ++ "/temp.svg")+ readFile (tmpdir ++ "/temp.svg")++newtype ViaDot a = ViaDot a+ deriving (Eq,Ord,Show)++instance (Ord a, Show a, KripkeLike a) => TexAble (ViaDot a) where+ tex (ViaDot x) = unsafePerformIO $+ withSystemTempDirectory "smcdel" $ \tmpdir -> do+ _ <- runGraphviz (toGraph x) DotOutput (tmpdir ++ "/temp.dot")+ runAndWait $ "dot2tex --figonly -ftikz -traw -p --autosize -w --usepdflatex "++tmpdir++"/temp.dot | sed '/^$/d' > "++tmpdir++"/temp.tex;"+ readFile (tmpdir ++ "/temp.tex")+ texTo (ViaDot x) filename = do+ _ <- runGraphviz (toGraph x) DotOutput (filename ++ ".dot")+ runAndWait $ "dot2tex --figonly -ftikz -traw -p --autosize -w --usepdflatex "++filename++".dot | sed '/^$/d' > "++filename++".tex;"+ texDocumentTo (ViaDot x) filename = do+ _ <- runGraphviz (toGraph x) DotOutput (filename ++ ".dot")+ runAndWait $ "dot2tex -ftikz -traw -p --autosize -w --usepdflatex "++filename++".dot -o "++filename++".tex;"
+ src/SMCDEL/Internal/Token.hs view
@@ -0,0 +1,37 @@+module SMCDEL.Internal.Token where+data Token a -- == AlexPn+ = TokenVARS {apn :: a}+ | TokenLAW {apn :: a}+ | TokenOBS {apn :: a}+ | TokenVALIDQ {apn :: a}+ | TokenWHEREQ {apn :: a}+ | TokenColon {apn :: a}+ | TokenComma {apn :: a}+ | TokenStr {fooS::String, apn :: a}+ | TokenInt {fooI::Int, apn :: a}+ | TokenTop {apn :: a}+ | TokenBot {apn :: a}+ | TokenPrp {apn :: a}+ | TokenNeg {apn :: a}+ | TokenOB {apn :: a}+ | TokenCB {apn :: a}+ | TokenCOB {apn :: a}+ | TokenCCB {apn :: a}+ | TokenLA {apn :: a}+ | TokenRA {apn :: a}+ | TokenExclam {apn :: a}+ | TokenQuestm {apn :: a}+ | TokenBinCon {apn :: a}+ | TokenBinDis {apn :: a}+ | TokenCon {apn :: a}+ | TokenDis {apn :: a}+ | TokenXor {apn :: a}+ | TokenImpl {apn :: a}+ | TokenEqui {apn :: a}+ | TokenForall {apn :: a}+ | TokenExists {apn :: a}+ | TokenInfixKnowWhether {apn :: a}+ | TokenInfixKnowThat {apn :: a}+ | TokenInfixCKnowWhether {apn :: a}+ | TokenInfixCKnowThat {apn :: a}+ deriving (Eq,Show)
+ src/SMCDEL/Language.hs view
@@ -0,0 +1,386 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Language where+import Data.List (nub,intercalate,(\\))+import Data.Maybe (fromMaybe)+import Test.QuickCheck+import SMCDEL.Internal.TexDisplay++newtype Prp = P Int deriving (Eq,Ord,Show)++instance Enum Prp where+ toEnum = P+ fromEnum (P n) = n++instance Arbitrary Prp where+ arbitrary = P <$> choose (0,4)++freshp :: [Prp] -> Prp+freshp [] = P 1+freshp prps = P (maximum (map fromEnum prps) + 1)++class HasVocab a where+ vocabOf :: a -> [Prp]++type Agent = String++alice,bob,carol :: Agent+alice = "Alice"+bob = "Bob"+carol = "Carol"++newtype AgAgent = Ag Agent deriving (Eq,Ord,Show)++instance Arbitrary AgAgent where+ arbitrary = oneof $ map (pure . Ag . show) [1..(5::Integer)]++class HasAgents a where+ agentsOf :: a -> [Agent]++newtype Group = Group [Agent] deriving (Eq,Ord,Show)++-- generate a non-empty group of up to 5 agents+instance Arbitrary Group where+ arbitrary = fmap (Group.("1":)) $ sublistOf $ map show [2..(5::Integer)]++data Form+ = Top -- ^ True Constant+ | Bot -- ^ False Constant+ | PrpF Prp -- ^ Atomic Proposition+ | Neg Form -- ^ Negation+ | Conj [Form] -- ^ Conjunction+ | Disj [Form] -- ^ Disjunction+ | Xor [Form] -- ^ n-ary X-OR+ | Impl Form Form -- ^ Implication+ | Equi Form Form -- ^ Bi-Implication+ | Forall [Prp] Form -- ^ Boolean Universal Quantification+ | Exists [Prp] Form -- ^ Boolean Existential Quantification+ | K Agent Form -- ^ Knowing that+ | Ck [Agent] Form -- ^ Common knowing that+ | Kw Agent Form -- ^ Knowing whether+ | Ckw [Agent] Form -- ^ Common knowing whether+ | PubAnnounce Form Form -- ^ Public announcement that+ | PubAnnounceW Form Form -- ^ Public announcement whether+ | Announce [Agent] Form Form -- ^ (Semi-)Private announcement that+ | AnnounceW [Agent] Form Form -- ^ (Semi-)Private announcement whether+ deriving (Eq,Ord,Show)++class Semantics a where+ isTrue :: a -> Form -> Bool++class HasPrecondition a where+ preOf :: a -> Form++showSet :: Show a => [a] -> String+showSet xs = intercalate "," (map show xs)++-- | Pretty print a formula, possibly with a translation for atoms:+ppForm :: Form -> String+ppForm = ppFormWith (\(P n) -> show n)++ppFormWith :: (Prp -> String)-> Form -> String+ppFormWith _ Top = "T"+ppFormWith _ Bot = "F"+ppFormWith trans (PrpF p) = trans p+ppFormWith trans (Neg f) = "~" ++ ppFormWith trans f+ppFormWith trans (Conj fs) = "(" ++ intercalate " & " (map (ppFormWith trans) fs) ++ ")"+ppFormWith trans (Disj fs) = "(" ++ intercalate " | " (map (ppFormWith trans) fs) ++ ")"+ppFormWith trans (Xor fs) = "XOR{" ++ intercalate "," (map (ppFormWith trans) fs) ++ "}"+ppFormWith trans (Impl f g) = "(" ++ ppFormWith trans f ++ "->" ++ ppFormWith trans g ++ ")"+ppFormWith trans (Equi f g) = ppFormWith trans f ++ "=" ++ ppFormWith trans g+ppFormWith trans (Forall ps f) = "Forall {" ++ showSet ps ++ "}: " ++ ppFormWith trans f+ppFormWith trans (Exists ps f) = "Exists {" ++ showSet ps ++ "}: " ++ ppFormWith trans f+ppFormWith trans (K i f) = "K " ++ i ++ " " ++ ppFormWith trans f+ppFormWith trans (Ck is f) = "Ck " ++ intercalate "," is ++ " " ++ ppFormWith trans f+ppFormWith trans (Kw i f) = "Kw " ++ i ++ " " ++ ppFormWith trans f+ppFormWith trans (Ckw is f) = "Ckw " ++ intercalate "," is ++ " " ++ ppFormWith trans f+ppFormWith trans (PubAnnounce f g) = "[! " ++ ppFormWith trans f ++ "] " ++ ppFormWith trans g+ppFormWith trans (PubAnnounceW f g) = "[?! " ++ ppFormWith trans f ++ "] " ++ ppFormWith trans g+ppFormWith trans (Announce is f g) = "[" ++ intercalate ", " is ++ " ! " ++ ppFormWith trans f ++ "]" ++ ppFormWith trans g+ppFormWith trans (AnnounceW is f g) = "[" ++ intercalate ", " is ++ " ?! " ++ ppFormWith trans f ++ "]" ++ ppFormWith trans g++pubAnnounceStack :: [Form] -> Form -> Form+pubAnnounceStack = flip $ foldr PubAnnounce++pubAnnounceWhetherStack :: [Form] -> Form -> Form+pubAnnounceWhetherStack = flip $ foldr PubAnnounceW++booloutofForm :: [Prp] -> [Prp] -> Form+booloutofForm ps qs = Conj $ [ PrpF p | p <- ps ] ++ [ Neg $ PrpF r | r <- qs \\ ps ]++subformulas :: Form -> [Form]+subformulas Top = [Top]+subformulas Bot = [Bot]+subformulas (PrpF p) = [PrpF p]+subformulas (Neg f) = Neg f : subformulas f+subformulas (Conj fs) = Conj fs : nub (concatMap subformulas fs)+subformulas (Disj fs) = Disj fs : nub (concatMap subformulas fs)+subformulas (Xor fs) = Xor fs : nub (concatMap subformulas fs)+subformulas (Impl f g) = Impl f g : nub (concatMap subformulas [f,g])+subformulas (Equi f g) = Equi f g : nub (concatMap subformulas [f,g])+subformulas (Forall ps f) = Forall ps f : subformulas f+subformulas (Exists ps f) = Exists ps f : subformulas f+subformulas (K i f) = K i f : subformulas f+subformulas (Ck is f) = Ck is f : subformulas f+subformulas (Kw i f) = Kw i f : subformulas f+subformulas (Ckw is f) = Ckw is f : subformulas f+subformulas (PubAnnounce f g) = PubAnnounce f g : nub (subformulas f ++ subformulas g)+subformulas (PubAnnounceW f g) = PubAnnounceW f g : nub (subformulas f ++ subformulas g)+subformulas (Announce is f g) = Announce is f g : nub (subformulas f ++ subformulas g)+subformulas (AnnounceW is f g) = AnnounceW is f g : nub (subformulas f ++ subformulas g)++shrinkform :: Form -> [Form]+shrinkform f | f == simplify f = subformulas f \\ [f]+ | otherwise = let g = simplify f in subformulas g \\ [g]++substit :: Prp -> Form -> Form -> Form+substit _ _ Top = Top+substit _ _ Bot = Bot+substit q psi (PrpF p) = if p==q then psi else PrpF p+substit q psi (Neg form) = Neg (substit q psi form)+substit q psi (Conj forms) = Conj (map (substit q psi) forms)+substit q psi (Disj forms) = Disj (map (substit q psi) forms)+substit q psi (Xor forms) = Xor (map (substit q psi) forms)+substit q psi (Impl f g) = Impl (substit q psi f) (substit q psi g)+substit q psi (Equi f g) = Equi (substit q psi f) (substit q psi g)+substit q psi (Forall ps f) = if q `elem` ps+ then error ("substit failed: Substituens "++ show q ++ " in 'Forall " ++ show ps ++ " " ++ show f)+ else Forall ps (substit q psi f)+substit q psi (Exists ps f) = if q `elem` ps+ then error ("substit failed: Substituens " ++ show q ++ " in 'Exists " ++ show ps ++ " " ++ show f)+ else Exists ps (substit q psi f)+substit q psi (K i f) = K i (substit q psi f)+substit q psi (Kw i f) = Kw i (substit q psi f)+substit q psi (Ck ags f) = Ck ags (substit q psi f)+substit q psi (Ckw ags f) = Ckw ags (substit q psi f)+substit q psi (PubAnnounce f g) = PubAnnounce (substit q psi f) (substit q psi g)+substit q psi (PubAnnounceW f g) = PubAnnounceW (substit q psi f) (substit q psi g)+substit q psi (Announce ags f g) = Announce ags (substit q psi f) (substit q psi g)+substit q psi (AnnounceW ags f g) = AnnounceW ags (substit q psi f) (substit q psi g)++substitSet :: [(Prp,Form)] -> Form -> Form+substitSet [] f = f+substitSet ((q,psi):rest) f = substitSet rest (substit q psi f)++substitOutOf :: [Prp] -> [Prp] -> Form -> Form+substitOutOf truths allps = substitSet $ [(p,Top) | p <- truths] ++ [(p,Bot) | p <- allps \\ truths]++replPsInP :: [(Prp,Prp)] -> Prp -> Prp+replPsInP repl p = fromMaybe p (lookup p repl)++replPsInF :: [(Prp,Prp)] -> Form -> Form+replPsInF _ Top = Top+replPsInF _ Bot = Bot+replPsInF repl (PrpF p) = PrpF $ replPsInP repl p+replPsInF repl (Neg f) = Neg $ replPsInF repl f+replPsInF repl (Conj fs) = Conj $ map (replPsInF repl) fs+replPsInF repl (Disj fs) = Disj $ map (replPsInF repl) fs+replPsInF repl (Xor fs) = Xor $ map (replPsInF repl) fs+replPsInF repl (Impl f g) = Impl (replPsInF repl f) (replPsInF repl g)+replPsInF repl (Equi f g) = Equi (replPsInF repl f) (replPsInF repl g)+replPsInF repl (Forall ps f) = Forall (map (replPsInP repl) ps) (replPsInF repl f)+replPsInF repl (Exists ps f) = Exists (map (replPsInP repl) ps) (replPsInF repl f)+replPsInF repl (K i f) = K i (replPsInF repl f)+replPsInF repl (Kw i f) = Kw i (replPsInF repl f)+replPsInF repl (Ck ags f) = Ck ags (replPsInF repl f)+replPsInF repl (Ckw ags f) = Ckw ags (replPsInF repl f)+replPsInF repl (PubAnnounce f g) = PubAnnounce (replPsInF repl f) (replPsInF repl g)+replPsInF repl (PubAnnounceW f g) = PubAnnounceW (replPsInF repl f) (replPsInF repl g)+replPsInF repl (Announce ags f g) = Announce ags (replPsInF repl f) (replPsInF repl g)+replPsInF repl (AnnounceW ags f g) = AnnounceW ags (replPsInF repl f) (replPsInF repl g)++propsInForm :: Form -> [Prp]+propsInForm Top = []+propsInForm Bot = []+propsInForm (PrpF p) = [p]+propsInForm (Neg f) = propsInForm f+propsInForm (Conj fs) = nub $ concatMap propsInForm fs+propsInForm (Disj fs) = nub $ concatMap propsInForm fs+propsInForm (Xor fs) = nub $ concatMap propsInForm fs+propsInForm (Impl f g) = nub $ concatMap propsInForm [f,g]+propsInForm (Equi f g) = nub $ concatMap propsInForm [f,g]+propsInForm (Forall ps f) = nub $ ps ++ propsInForm f+propsInForm (Exists ps f) = nub $ ps ++ propsInForm f+propsInForm (K _ f) = propsInForm f+propsInForm (Kw _ f) = propsInForm f+propsInForm (Ck _ f) = propsInForm f+propsInForm (Ckw _ f) = propsInForm f+propsInForm (Announce _ f g) = nub $ propsInForm f ++ propsInForm g+propsInForm (AnnounceW _ f g) = nub $ propsInForm f ++ propsInForm g+propsInForm (PubAnnounce f g) = nub $ propsInForm f ++ propsInForm g+propsInForm (PubAnnounceW f g) = nub $ propsInForm f ++ propsInForm g++propsInForms :: [Form] -> [Prp]+propsInForms fs = nub $ concatMap propsInForm fs++instance TexAble Prp where+ tex (P 0) = " p "+ tex (P n) = " p_{" ++ show n ++ "} "++instance TexAble [Prp] where+ tex [] = " \\varnothing "+ tex ps = "\\{" ++ intercalate "," (map tex ps) ++ "\\}"++simplify :: Form -> Form+simplify f = if simStep f == f then f else simplify (simStep f)++simStep :: Form -> Form+simStep Top = Top+simStep Bot = Bot+simStep (PrpF p) = PrpF p+simStep (Neg Top) = Bot+simStep (Neg Bot) = Top+simStep (Neg (Neg f)) = simStep f+simStep (Neg f) = Neg $ simStep f+simStep (Conj []) = Top+simStep (Conj [f]) = simStep f+simStep (Conj fs) | Bot `elem` fs = Bot+ | or [ Neg f `elem` fs | f <- fs ] = Bot+ | otherwise = Conj (nub $ concatMap unpack fs) where+ unpack Top = []+ unpack (Conj subfs) = map simStep $ filter (Top /=) subfs+ unpack f = [simStep f]+simStep (Disj []) = Bot+simStep (Disj [f]) = simStep f+simStep (Disj fs) | Top `elem` fs = Top+ | or [ Neg f `elem` fs | f <- fs ] = Top+ | otherwise = Disj (nub $ concatMap unpack fs) where+ unpack Bot = []+ unpack (Disj subfs) = map simStep $ filter (Bot /=) subfs+ unpack f = [simStep f]+simStep (Xor []) = Bot+simStep (Xor [Bot]) = Bot+simStep (Xor [f]) = simStep f+simStep (Xor fs) = Xor (map simStep $ filter (Bot /=) fs)+simStep (Impl Bot _) = Top+simStep (Impl _ Top) = Top+simStep (Impl Top f) = simStep f+simStep (Impl f Bot) = Neg (simStep f)+simStep (Impl f g) | f==g = Top+ | otherwise = Impl (simStep f) (simStep g)+simStep (Equi Top f) = simStep f+simStep (Equi Bot f) = Neg (simStep f)+simStep (Equi f Top) = simStep f+simStep (Equi f Bot) = Neg (simStep f)+simStep (Equi f g) | f==g = Top+ | otherwise = Equi (simStep f) (simStep g)+simStep (Forall ps f) = Forall ps (simStep f)+simStep (Exists ps f) = Exists ps (simStep f)+simStep (K a f) = K a (simStep f)+simStep (Kw a f) = Kw a (simStep f)+simStep (Ck _ Top) = Top+simStep (Ck _ Bot) = Bot+simStep (Ck ags f) = Ck ags (simStep f)+simStep (Ckw _ Top) = Top+simStep (Ckw _ Bot) = Top+simStep (Ckw ags f) = Ckw ags (simStep f)+simStep (PubAnnounce Top f) = simStep f+simStep (PubAnnounce Bot _) = Top+simStep (PubAnnounce f g) = PubAnnounce (simStep f) (simStep g)+simStep (PubAnnounceW f g) = PubAnnounceW (simStep f) (simStep g)+simStep (Announce ags f g) = Announce ags (simStep f) (simStep g)+simStep (AnnounceW ags f g) = AnnounceW ags (simStep f) (simStep g)++texForm :: Form -> String+texForm Top = "\\top "+texForm Bot = "\\bot "+texForm (PrpF p) = tex p+texForm (Neg (PubAnnounce f (Neg g))) = "\\langle !" ++ texForm f ++ " \\rangle " ++ texForm g+texForm (Neg f) = "\\lnot " ++ texForm f+texForm (Conj []) = "\\top "+texForm (Conj [f]) = texForm f+texForm (Conj [f,g]) = " ( " ++ texForm f ++ " \\land " ++ texForm g ++" ) "+texForm (Conj fs) = "\\bigwedge \\{\n" ++ intercalate "," (map texForm fs) ++" \\} "+texForm (Disj []) = "\\bot "+texForm (Disj [f]) = texForm f+texForm (Disj [f,g]) = " ( " ++ texForm f ++ " \\lor "++ texForm g ++ " ) "+texForm (Disj fs) = "\\bigvee \\{\n " ++ intercalate "," (map texForm fs) ++ " \\} "+texForm (Xor []) = "\\bot "+texForm (Xor [f]) = texForm f+texForm (Xor [f,g]) = " ( " ++ texForm f ++ " \\oplus " ++ texForm g ++ " ) "+texForm (Xor fs) = "\\bigoplus \\{\n" ++ intercalate "," (map texForm fs) ++ " \\} "+texForm (Equi f g) = " ( "++ texForm f ++" \\leftrightarrow "++ texForm g ++" ) "+texForm (Impl f g) = " ( "++ texForm f ++" \\rightarrow "++ texForm g ++" ) "+texForm (Forall ps f) = " \\forall " ++ tex ps ++ " " ++ texForm f+texForm (Exists ps f) = " \\exists " ++ tex ps ++ " " ++ texForm f+texForm (K i f) = "K_{\\text{" ++ i ++ "}} " ++ texForm f+texForm (Kw i f) = "K^?_{\\text{" ++ i ++ "}} " ++ texForm f+texForm (Ck ags f) = "Ck_{\\{\n" ++ intercalate "," ags ++ "\n\\}} " ++ texForm f+texForm (Ckw ags f) = "Ck^?_{\\{\n" ++ intercalate "," ags ++ "\n\\}} " ++ texForm f+texForm (PubAnnounce f g) = "[!" ++ texForm f ++ "] " ++ texForm g+texForm (PubAnnounceW f g) = "[?!" ++ texForm f ++ "] " ++ texForm g+texForm (Announce ags f g) = "[" ++ intercalate "," ags ++ "!" ++ texForm f ++ "] " ++ texForm g+texForm (AnnounceW ags f g) = "[" ++ intercalate "," ags ++ "?!" ++ texForm f ++ "] " ++ texForm g++instance TexAble Form where+ tex = removeDoubleSpaces . texForm++testForm :: Form+testForm = Forall [P 3] $+ Equi+ (Disj [ Bot, PrpF $ P 3, Bot ])+ (Conj [ Top+ , Xor [Top,Kw alice (PrpF (P 4))]+ , AnnounceW [alice,bob] (PrpF (P 5)) (Kw bob $ PrpF (P 5)) ])++newtype BF = BF Form deriving (Show)++instance Arbitrary BF where+ arbitrary = sized $ randomboolformWith [P 1 .. P 100]+ shrink (BF f) = map BF $ shrinkform f++randomboolformWith :: [Prp] -> Int -> Gen BF+randomboolformWith allprops sz = BF <$> bf' sz where+ bf' 0 = PrpF <$> elements allprops+ bf' n = oneof [ pure SMCDEL.Language.Top+ , pure SMCDEL.Language.Bot+ , PrpF <$> elements allprops+ , Neg <$> st+ , (\x y -> Conj [x,y]) <$> st <*> st+ , (\x y z -> Conj [x,y,z]) <$> st <*> st <*> st+ , (\x y -> Disj [x,y]) <$> st <*> st+ , (\x y z -> Disj [x,y,z]) <$> st <*> st <*> st+ , Impl <$> st <*> st+ , Equi <$> st <*> st+ , (\x -> Xor [x]) <$> st+ , (\x y -> Xor [x,y]) <$> st <*> st+ , (\x y z -> Xor [x,y,z]) <$> st <*> st <*> st+ -- , (\p f -> Exists [p] f) <$> elements allprops <*> st+ -- , (\p f -> Forall [p] f) <$> elements allprops <*> st+ ]+ where+ st = bf' (n `div` 3)++instance Arbitrary Form where+ arbitrary = sized form where+ form 0 = oneof [ pure Top+ , pure Bot+ , PrpF <$> arbitrary ]+ form n = oneof [ pure SMCDEL.Language.Top+ , pure SMCDEL.Language.Bot+ , PrpF <$> arbitrary+ , Neg <$> form n'+ , Conj <$> listOf (form n')+ , Disj <$> listOf (form n')+ , Xor <$> listOf (form n')+ , Impl <$> form n' <*> form n'+ , Equi <$> form n' <*> form n'+ , K <$> arbitraryAg <*> form n'+ , Ck <$> arbitraryAgs <*> form n'+ , Kw <$> arbitraryAg <*> form n'+ , Ckw <$> arbitraryAgs <*> form n'+ , PubAnnounce <$> form n' <*> form n'+ , PubAnnounceW <$> form n' <*> form n'+ , Announce <$> arbitraryAgs <*> form n' <*> form n'+ , AnnounceW <$> arbitraryAgs <*> form n' <*> form n' ]+ where+ n' = n `div` 5+ arbitraryAg = (\(Ag i) -> i) <$> arbitrary+ arbitraryAgs = sublistOf (map show [1..(5::Integer)]) `suchThat` (not . null)+ shrink = shrinkform++newtype SimplifiedForm = SF Form deriving (Eq,Ord,Show)++instance Arbitrary SimplifiedForm where+ arbitrary = SF . simplify <$> arbitrary+ shrink (SF f) = nub $ map (SF . simplify) (shrinkform f)
+ src/SMCDEL/Other/BDD2Form.hs view
@@ -0,0 +1,20 @@+module SMCDEL.Other.BDD2Form where+import Data.HasCacBDD+import SMCDEL.Language hiding (Bot,Top)+import qualified SMCDEL.Language (Form(Bot,Top))++formOf :: Bdd -> Form+formOf = simplify . formOfTree . unravel++formOfTree :: BddTree -> Form+formOfTree Bot = SMCDEL.Language.Bot+formOfTree Top = SMCDEL.Language.Top+formOfTree (Var n Top Bot) = PrpF (P n)+formOfTree (Var n Bot Top) = Neg $ PrpF (P n)+formOfTree (Var n Top right) = Disj [ PrpF (P n), formOfTree right ]+formOfTree (Var n Bot right) = Conj [ Neg $ PrpF (P n), formOfTree right ]+formOfTree (Var n left Top) = Disj [ Neg $ PrpF (P n), formOfTree left ]+formOfTree (Var n left Bot) = Conj [ PrpF (P n), formOfTree left ]+formOfTree (Var n left right) =+ Disj [ Conj [ PrpF (P n), formOfTree left ] ,+ Conj [ Neg $ PrpF (P n), formOfTree right ] ]
+ src/SMCDEL/Other/MCTRIANGLE.hs view
@@ -0,0 +1,58 @@+module SMCDEL.Other.MCTRIANGLE where++data Kind = Muddy | Clean+type State = (Int,Int)+data McModel = McM [State] [State] State deriving Show++mcModel :: State -> McModel+mcModel cur@(c,m) = McM ostates fstates cur where+ total = c + m+ ostates = [ ((total-1)-m',m') | m'<-[0..(total-1)] ] -- observational states+ fstates = [ (total-m', m') | m'<-[0..total ] ] -- factual states++posFrom :: McModel -> State -> [State]+posFrom (McM _ fstates _) (oc,om) = filter (`elem` fstates) [ (oc+1,om), (oc,om+1) ]++obsFor :: McModel -> Kind -> State+obsFor (McM _ _ (curc,curm)) Clean = (curc-1,curm)+obsFor (McM _ _ (curc,curm)) Muddy = (curc,curm-1)++posFor :: McModel -> Kind -> [State]+posFor m status = posFrom m $ obsFor m status++type Quantifier = State -> Bool++some :: Quantifier+some (_,b) = b > 0++data McFormula = Neg McFormula -- negations+ | Conj [McFormula] -- conjunctions+ | Qf Quantifier -- quantifiers+ | KnowSelf Kind -- all b agents DO know their status+ | NotKnowSelf Kind -- all b agents DON'T know their status++nobodyknows,everyoneKnows :: McFormula+nobodyknows = Conj [ NotKnowSelf Clean, NotKnowSelf Muddy ]+everyoneKnows = Conj [ KnowSelf Clean, KnowSelf Muddy ]++eval :: McModel -> McFormula -> Bool+eval m (Neg f) = not $ eval m f+eval m (Conj fs) = all (eval m) fs+eval (McM _ _ s) (Qf q) = q s+eval m@(McM _ _ (_,curm)) (KnowSelf Muddy) = curm==0 || length (posFor m Muddy) == 1+eval m@(McM _ _ (curc,_)) (KnowSelf Clean) = curc==0 || length (posFor m Clean) == 1+eval m@(McM _ _ (_,curm)) (NotKnowSelf Muddy) = curm==0 || length (posFor m Muddy) == 2+eval m@(McM _ _ (curc,_)) (NotKnowSelf Clean) = curc==0 || length (posFor m Clean) == 2++update :: McModel -> McFormula -> McModel+update (McM ostates fstates cur) f =+ McM ostates' fstates' cur where+ fstates' = filter (\s -> eval (McM ostates fstates s) f) fstates+ ostates' = filter (not . null . posFrom (McM [] fstates' cur)) ostates++step :: State -> Int -> McModel+step s 0 = update (mcModel s) (Qf some)+step s n = update (step s (n-1)) nobodyknows++showme :: State -> IO ()+showme s@(_,m) = mapM_ (\n -> putStrLn $ show n ++ ": " ++ show (step s n)) [0..(m-1)]
+ src/SMCDEL/Other/Planning.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, AllowAmbiguousTypes #-}++module SMCDEL.Other.Planning where++import SMCDEL.Language++type OfflinePlan = [(Form,Form)] -- list of (announcement,goal) tuples++class Plan a where+ succeeds :: a -> Form++instance Plan OfflinePlan where+ succeeds [] = Top+ succeeds ((step,goal):rest) =+ Conj [step, PubAnnounce step goal, PubAnnounce step (succeeds rest)]++succeedsOn :: (Semantics o, Plan a) => a -> o -> Bool+succeedsOn plan start = isTrue start (succeeds plan)++data OnlinePlan = Stop | DoAnnounce Form OnlinePlan | IfThenElse Form OnlinePlan OnlinePlan++instance Plan OnlinePlan where+ succeeds Stop = Top+ succeeds (DoAnnounce step next) = Conj [step, PubAnnounce step (succeeds next)]+ succeeds (IfThenElse check planA planB) =+ Conj [ check `Impl` succeeds planA, Neg check `Impl` succeeds planB ]
+ src/SMCDEL/Symbolic/K.hs view
@@ -0,0 +1,307 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, TypeOperators #-}++module SMCDEL.Symbolic.K where++import Data.Tagged++import Control.Arrow ((&&&),(***),first)+import Data.HasCacBDD hiding (Top,Bot)+import Data.List (intercalate,sort)+import Data.Map.Strict (Map,fromList,toList,elems,(!))+import qualified Data.Map.Strict++import SMCDEL.Language+import SMCDEL.Symbolic.S5 (KnowScene,State,texBDD,boolBddOf,texBddWith)+import SMCDEL.Explicit.S5 (PointedModelS5,KripkeModelS5(KrMS5),World)+import SMCDEL.Explicit.K+import SMCDEL.Translations.S5+import SMCDEL.Internal.Help (apply,lfp)+import SMCDEL.Internal.TexDisplay++problemPM :: PointedModelS5+problemPM = ( KrMS5 [0,1,2,3] [ (alice,[[0],[1,2,3]]), (bob,[[0,1,2],[3]]) ]+ [ (0,[(P 1,True ),(P 2,True )]), (1,[(P 1,True ),(P 2,False)])+ , (2,[(P 1,False),(P 2,True )]), (3,[(P 1,False),(P 2,False)]) ], 1::World )++problemKNS :: KnowScene+problemKNS = kripkeToKns problemPM++mvP, cpP :: Prp -> Prp+mvP (P n) = P (2*n) -- represent p in the double vocabulary+cpP (P n) = P ((2*n) + 1) -- represent p' in the double vocabulary++unmvcpP :: Prp -> Prp+unmvcpP (P m) | even m = P $ m `div` 2+ | otherwise = P $ (m-1) `div` 2++mv, cp :: [Prp] -> [Prp]+mv = map mvP+cp = map cpP++unmv, uncp :: [Prp] -> [Prp]+unmv = map f where -- Go from p in double vocabulary to p in single vocabulary:+ f (P m) | odd m = error "unmv failed: Number is odd!"+ | otherwise = P $ m `div` 2+uncp = map f where -- Go from p' in double vocabulary to p in single vocabulary:+ f (P m) | even m = error "uncp failed: Number is even!"+ | otherwise = P $ (m-1) `div` 2++data Dubbel+type RelBDD = Tagged Dubbel Bdd++totalRelBdd, emptyRelBdd :: RelBDD+totalRelBdd = pure $ boolBddOf Top+emptyRelBdd = pure $ boolBddOf Bot++allsamebdd :: [Prp] -> RelBDD+allsamebdd ps = pure $ conSet [boolBddOf $ PrpF p `Equi` PrpF p' | (p,p') <- zip (mv ps) (cp ps)]++class TagBdd a where+ tagBddEval :: [Prp] -> Tagged a Bdd -> Bool+ tagBddEval truths querybdd = evaluateFun (untag querybdd) (\n -> P n `elem` truths)++instance TagBdd Dubbel++cpBdd :: Bdd -> RelBDD+cpBdd b = pure $ case maxVarOf b of+ Nothing -> b+ Just m -> relabel [ (n, (2*n) + 1) | n <- [0..m] ] b++mvBdd :: Bdd -> RelBDD+mvBdd b = pure $ case maxVarOf b of+ Nothing -> b+ Just m -> relabel [ (n, 2*n) | n <- [0..m] ] b++unmvBdd :: RelBDD -> Bdd+unmvBdd (Tagged b) = case maxVarOf b of+ Nothing -> b+ Just m -> relabel [ (2 * n, n) | n <- [0..m] ] b++propRel2bdd :: [Prp] -> Map State [State] -> RelBDD+propRel2bdd props rel = pure $ disSet (elems $ Data.Map.Strict.mapWithKey linkbdd rel) where+ linkbdd here theres =+ con (booloutof (mv here) (mv props))+ (disSet [ booloutof (cp there) (cp props) | there <- theres ] )++samplerel :: Map State [State]+samplerel = fromList [+ ( [] , [ [],[P 1],[P 2],[P 1, P 2] ] ),+ ( [P 1] , [ [P 1], [P 1, P 2] ] ),+ ( [P 2] , [ [P 2], [P 1, P 2] ] ),+ ( [P 1, P 2], [ [P 1, P 2] ] ) ]++relBddOfIn :: Agent -> KripkeModel -> RelBDD+relBddOfIn i (KrM m)+ | not (distinctVal (KrM m)) = error "m does not have distinct valuations."+ | otherwise = pure $ disSet (elems $ Data.Map.Strict.map linkbdd m) where+ linkbdd (mapPropBool,mapAgentReach) =+ con+ (booloutof (mv here) (mv props))+ (disSet [ booloutof (cp there) (cp props) | there<-theres ] )+ where+ props = Data.Map.Strict.keys mapPropBool+ here = Data.Map.Strict.keys (Data.Map.Strict.filter id mapPropBool)+ theres = map (truthsInAt (KrM m)) (mapAgentReach ! i)++data BelStruct = BlS [Prp] -- vocabulary+ Bdd -- state law+ (Map Agent RelBDD) -- observation laws+ deriving (Eq,Show)++type BelScene = (BelStruct,State)++instance HasVocab BelStruct where+ vocabOf (BlS voc _ _) = voc++instance HasVocab BelScene where+ vocabOf = vocabOf . fst++instance HasAgents BelStruct where+ agentsOf (BlS _ _ obdds) = Data.Map.Strict.keys obdds++instance HasAgents BelScene where+ agentsOf = agentsOf . fst++bddOf :: BelStruct -> Form -> Bdd+bddOf _ Top = top+bddOf _ Bot = bot+bddOf _ (PrpF (P n)) = var n+bddOf kns (Neg form) = neg $ bddOf kns form+bddOf kns (Conj forms) = conSet $ map (bddOf kns) forms+bddOf kns (Disj forms) = disSet $ map (bddOf kns) forms+bddOf kns (Xor forms) = xorSet $ map (bddOf kns) forms+bddOf kns (Impl f g) = imp (bddOf kns f) (bddOf kns g)+bddOf kns (Equi f g) = equ (bddOf kns f) (bddOf kns g)+bddOf kns (Forall ps f) = forallSet (map fromEnum ps) (bddOf kns f)+bddOf kns (Exists ps f) = existsSet (map fromEnum ps) (bddOf kns f)++bddOf kns@(BlS allprops lawbdd obdds) (K i form) = unmvBdd result where+ result = forallSet ps' <$> (imp <$> cpBdd lawbdd <*> (imp <$> omegai <*> cpBdd (bddOf kns form)))+ ps' = map fromEnum $ cp allprops+ omegai = obdds ! i++bddOf kns@(BlS allprops lawbdd obdds) (Kw i form) = unmvBdd result where+ result = dis <$> part form <*> part (Neg form)+ part f = forallSet ps' <$> (imp <$> cpBdd lawbdd <*> (imp <$> omegai <*> cpBdd (bddOf kns f)))+ ps' = map fromEnum $ cp allprops+ omegai = obdds ! i++bddOf kns@(BlS voc lawbdd obdds) (Ck ags form) = lfp lambda top where+ ps' = map fromEnum $ cp voc+ lambda :: Bdd -> Bdd+ lambda z = unmvBdd $+ forallSet ps' <$>+ (imp <$> cpBdd lawbdd <*>+ (imp <$> (disSet <$> sequence [obdds ! i | i <- ags]) <*>+ cpBdd (con (bddOf kns form) z)))++bddOf kns (Ckw ags form) = dis (bddOf kns (Ck ags form)) (bddOf kns (Ck ags (Neg form)))++bddOf kns (PubAnnounce f g) =+ imp (bddOf kns f) (bddOf (pubAnnounce kns f) g)+bddOf kns (PubAnnounceW f g) =+ ifthenelse (bddOf kns f)+ (bddOf (pubAnnounce kns f ) g)+ (bddOf (pubAnnounce kns (Neg f)) g)++bddOf kns@(BlS props _ _) (Announce ags f g) =+ imp (bddOf kns f) (restrict bdd2 (k,True)) where+ bdd2 = bddOf (announce kns ags f) g+ (P k) = freshp props++bddOf kns@(BlS props _ _) (AnnounceW ags f g) =+ ifthenelse (bddOf kns f) bdd2a bdd2b where+ bdd2a = restrict (bddOf (announce kns ags f ) g) (k,True)+ bdd2b = restrict (bddOf (announce kns ags (Neg f)) g) (k,True)+ (P k) = freshp props++validViaBdd :: BelStruct -> Form -> Bool+validViaBdd kns@(BlS _ lawbdd _) f = top == imp lawbdd (bddOf kns f)++evalViaBdd :: BelScene -> Form -> Bool+evalViaBdd (kns@(BlS allprops _ _),s) f = let+ bdd = bddOf kns f+ b = restrictSet bdd list+ list = [ (n, P n `elem` s) | (P n) <- allprops ]+ in+ case (b==top,b==bot) of+ (True,_) -> True+ (_,True) -> False+ _ -> error $ "evalViaBdd failed: Composite BDD leftover!\n"+ ++ " kns: " ++ show kns ++ "\n"+ ++ " s: " ++ show s ++ "\n"+ ++ " form: " ++ show f ++ "\n"+ ++ " bdd: " ++ show bdd ++ "\n"+ ++ " list: " ++ show list ++ "\n"+ ++ " b: " ++ show b ++ "\n"++pubAnnounce :: BelStruct -> Form -> BelStruct+pubAnnounce kns@(BlS allprops lawbdd obs) f =+ BlS allprops (con lawbdd (bddOf kns f)) obs++pubAnnounceOnScn :: BelScene -> Form -> BelScene+pubAnnounceOnScn (kns,s) psi = if evalViaBdd (kns,s) psi+ then (pubAnnounce kns psi,s)+ else error "Liar!"++announce :: BelStruct -> [Agent] -> Form -> BelStruct+announce kns@(BlS props lawbdd obdds) ags psi = BlS newprops newlawbdd newobdds where+ (P k) = freshp props+ newprops = sort $ P k : props+ newlawbdd = con lawbdd (imp (var k) (bddOf kns psi))+ newobdds = Data.Map.Strict.mapWithKey newOfor obdds+ newOfor i oi | i `elem` ags = con <$> oi <*> (equ <$> mvBdd (var k) <*> cpBdd (var k))+ | otherwise = con <$> oi <*> (neg <$> cpBdd (var k)) -- p_psi'++statesOf :: BelStruct -> [State]+statesOf (BlS allprops lawbdd _) = map (sort.getTrues) prpsats where+ bddvars = map fromEnum allprops+ bddsats = allSatsWith bddvars lawbdd+ prpsats = map (map (first toEnum)) bddsats+ getTrues = map fst . filter snd++texRelBDD :: RelBDD -> String+texRelBDD (Tagged b) = texBddWith texRelProp b where+ texRelProp n+ | even n = show (n `div` 2)+ | otherwise = show ((n - 1) `div` 2) ++ "'"++bddprefix, bddsuffix :: String+bddprefix = "\\begin{array}{l} \\scalebox{0.3}{"+bddsuffix = "} \\end{array} \n"++instance TexAble BelStruct where+ tex (BlS props lawbdd obdds) = concat+ [ " \\left( \n"+ , tex props, ", "+ , bddprefix, texBDD lawbdd, bddsuffix+ , ", "+ , intercalate ", " obddstrings+ , " \\right) \n"+ ] where+ obddstrings = map (bddstring . (fst &&& (texRelBDD . snd))) (toList obdds)+ bddstring (i,os) = "\\Omega_{\\text{" ++ i ++ "}} = " ++ bddprefix ++ os ++ bddsuffix++instance TexAble BelScene where+ tex (kns, state) = concat+ [ " \\left( \n", tex kns, ", ", tex state, " \\right) \n" ]++cleanupObsLaw :: BelScene -> BelScene+cleanupObsLaw (BlS vocab law obs, s) = (BlS vocab law newobs, s) where+ newobs = Data.Map.Strict.map optimize obs+ optimize relbdd = restrictLaw <$> relbdd <*> (con <$> cpBdd law <*> mvBdd law)++determinedVocabOf :: BelStruct -> [Prp]+determinedVocabOf strct = filter (\p -> validViaBdd strct (PrpF p) || validViaBdd strct (Neg $ PrpF p)) (vocabOf strct)++nonobsVocabOf :: BelStruct -> [Prp]+nonobsVocabOf (BlS vocab _law obs) = filter (`notElem` usedVars) vocab where+ usedVars =+ map unmvcpP+ $ sort+ $ concatMap (map P . Data.HasCacBDD.allVarsOf . untag . snd)+ $ Data.Map.Strict.toList obs++data BelTransf = BlT [Prp] Form (Map Agent RelBDD) deriving (Eq,Show)+type GenEvent = (BelTransf,State)++belTransform :: BelScene -> GenEvent -> BelScene+belTransform (kns@(BlS props lawbdd obdds),s) (BlT addprops addlaw eventObs, eventFacts) =+ (BlS (props ++ map snd shiftrel) newlawbdd newobs, sort $ s ++ shiftedEventFacts) where+ shiftrel = zip addprops [(freshp props)..]+ doubleShiftrel = map (mvP *** mvP) shiftrel ++ map (cpP *** cpP) shiftrel+ doubleShiftrelVars = sort $ map (fromEnum *** fromEnum) doubleShiftrel+ shiftEventObsBDD o = relabel doubleShiftrelVars <$> o+ newobs = fromList [ (i , con <$> (obdds ! i) <*> shiftEventObsBDD (eventObs ! i)) | i <- Data.Map.Strict.keys obdds ]+ shiftaddlaw = replPsInF shiftrel addlaw+ newlawbdd = con lawbdd (bddOf kns shiftaddlaw)+ shiftedEventFacts = map (apply shiftrel) eventFacts++instance TexAble BelTransf where+ tex (BlT addprops addlaw eventObs) = concat+ [ " \\left( \n"+ , tex addprops, ", "+ , tex addlaw , ", "+ , intercalate ", " eobddstrings+ , " \\right) \n"+ ] where+ eobddstrings = map (bddstring . (fst &&& (texRelBDD . snd))) (toList eventObs)+ bddstring (i,os) = "\\Omega^+_{\\text{" ++ i ++ "}} = " ++ bddprefix ++ os ++ bddsuffix++instance TexAble GenEvent where+ tex (blt, eventFacts) = concat+ [ " \\left( \n", tex blt, ", ", tex eventFacts, " \\right) \n" ]++exampleStart :: BelScene+exampleStart = (BlS [P 0] law obs, actual) where+ law = boolBddOf Top+ obs = fromList [ ("1", mvBdd $ boolBddOf Top), ("2", allsamebdd [P 0]) ]+ actual = [P 0]++exampleEvent :: GenEvent+exampleEvent = (BlT [P 1] addlaw eventObs, [P 1]) where+ addlaw = PrpF (P 1) `Impl` PrpF (P 0)+ eventObs = fromList [ ("1", allsamebdd [P 1]), ("2", cpBdd . boolBddOf $ Neg (PrpF $ P 1)) ]++exampleBlTresult :: BelScene+exampleBlTresult = belTransform exampleStart exampleEvent
+ src/SMCDEL/Symbolic/K/Change.hs view
@@ -0,0 +1,197 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Symbolic.K.Change where++import Control.Arrow ((&&&))+import Control.Lens (over,both)+import Data.HasCacBDD hiding (Top,Bot)+import Data.List ((\\),intersect,intercalate,sort)+import qualified Data.Map.Strict as M+import Data.Map.Strict ((!),fromList,toList)++import SMCDEL.Internal.Help (apply,powerset)+import SMCDEL.Internal.TexDisplay+import SMCDEL.Language+import SMCDEL.Translations.S5 (booloutof)+import SMCDEL.Other.BDD2Form+import SMCDEL.Symbolic.K+import SMCDEL.Symbolic.S5 (bddEval,boolBddOf,State)++data Transformer = Trf+ [Prp] -- addprops+ Form -- event law+ [Prp] -- changeprops, modified subset+ (M.Map Prp Bdd) -- changelaw+ (M.Map Agent RelBDD) -- eventObs+ deriving (Eq,Show)++instance HasAgents Transformer where+ agentsOf (Trf _ _ _ _ obdds) = M.keys obdds++type Event = (Transformer,State)++instance HasPrecondition Event where+ preOf (Trf addprops addlaw _ _ _, x) = simplify $ substitOutOf x addprops addlaw++type MultiEvent = (Transformer,[State])++instance TexAble Transformer where+ tex (Trf addprops addlaw changeprops changelaw eventObs) = concat+ [ " \\left( \n"+ , tex addprops, ", "+ , tex addlaw, ", "+ , tex changeprops, ", "+ , intercalate ", " $ map snd . toList $ M.mapWithKey texChange changelaw, ", "+ , intercalate ", " eobddstrings+ , " \\right) \n"+ ] where+ texChange prop changebdd = tex prop ++ " := " ++ tex (formOf changebdd)+ eobddstrings = map (bddstring . (fst &&& (texRelBDD . snd))) (toList eventObs)+ bddstring (i,os) = "\\Omega^+_{\\text{" ++ i ++ "}} = " ++ bddprefix ++ os ++ bddsuffix++instance TexAble Event where+ tex (trf, eventFacts) = concat+ [ " \\left( \n", tex trf, ", ", tex eventFacts, " \\right) \n" ]++transform :: BelScene -> Event -> BelScene+transform (kns@(BlS props law obdds),s) (Trf addprops addlaw changeprops changelaw eventObs, eventFacts) =+ (BlS newprops newlaw newobs, news) where+ -- PART 1: SHIFTING addprops to ensure props and newprops are disjoint+ shiftaddprops = [(freshp props)..]+ shiftrel = sort $ zip addprops shiftaddprops+ relabelWith r = relabel (sort $ map (over both fromEnum) r)+ -- apply the shifting to addlaw and changelaw:+ addlawShifted = replPsInF shiftrel addlaw+ changelawShifted = M.map (relabelWith shiftrel) changelaw+ -- to apply the shifting to eventObs we need shiftrel for the double vocabulary:+ shiftrelMVCP = sort $ zip (mv addprops) (mv shiftaddprops)+ ++ zip (cp addprops) (cp shiftaddprops)+ eventObsShifted = M.map (fmap $ relabelWith shiftrelMVCP) eventObs+ -- the actual event:+ x = map (apply shiftrel) eventFacts+ -- PART 2: COPYING the modified propositions+ copychangeprops = [(freshp $ props ++ map snd shiftrel)..]+ copyrel = zip changeprops copychangeprops+ copyrelMVCP = sort $ zip (mv changeprops) (mv copychangeprops)+ -- PART 3: actual transformation+ newprops = sort $ props ++ map snd shiftrel ++ map snd copyrel+ newlaw = conSet $ relabelWith copyrel (con law (bddOf kns addlawShifted))+ : [var (fromEnum q) `equ` relabelWith copyrel (changelawShifted ! q) | q <- changeprops]+ newobs = M.mapWithKey (\i oldobs -> con <$> (relabelWith copyrelMVCP <$> oldobs) <*> (eventObsShifted ! i)) obdds+ news | bddEval (s ++ x) (con law (bddOf kns addlawShifted)) = sort $ concat+ [ s \\ changeprops+ , map (apply copyrel) $ s `intersect` changeprops+ , x+ , filter (\ p -> bddEval (s ++ x) (changelawShifted ! p)) changeprops ]+ | otherwise = error "Transformer is not applicable!"++transformMulti :: BelScene -> MultiEvent -> BelScene+transformMulti (kns,s) (trf@(Trf addprops addlaw _ _ _), eventsFacts) =+ transform (kns,s) (trf,selectedEventFacts) where+ possible :: State -> Bool+ possible eventFact = evalViaBdd (kns,s) (substitSet subs addlaw) where+ subs = [ (p, if p `elem` eventFact then Top else Bot) | p <- addprops ]+ selectedEventFacts :: State+ [selectedEventFacts] = filter possible eventsFacts++publicMakeFalse :: [Agent] -> Prp -> Event+publicMakeFalse agents p = (Trf [] Top [p] changelaw eventobs, []) where+ changelaw = fromList [ (p,boolBddOf Bot) ]+ eventobs = fromList [ (i,totalRelBdd) | i <- agents ]++myEvent :: Event+myEvent = publicMakeFalse (agentsOf $ fst SMCDEL.Symbolic.K.exampleStart) (P 0)++tResult :: BelScene+tResult = SMCDEL.Symbolic.K.exampleStart `transform` myEvent++flipOverAndShowTo :: [Agent] -> Prp -> Agent -> Event+flipOverAndShowTo everyone p i = (Trf [q] eventlaw [p] changelaw eventobs, [q]) where+ q = freshp [p]+ eventlaw = PrpF q `Equi` PrpF p+ changelaw = fromList [ (p, boolBddOf . Neg . PrpF $ p) ]+ eventobs = fromList $ (i, allsamebdd [q])+ : [ (j,totalRelBdd) | j <- everyone \\ [i] ]++myOtherEvent :: Event+myOtherEvent = flipOverAndShowTo ["1","2"] (P 0) "1"++tResult2 :: BelScene+tResult2 = SMCDEL.Symbolic.K.exampleStart `transform` myOtherEvent++trfPost :: Event -> Prp -> Bdd+trfPost (Trf addprops _ _ changelaw _, x) p+ | p `elem` M.keys changelaw = restrictLaw (changelaw ! p) (booloutof x addprops)+ | otherwise = boolBddOf $ PrpF p++reduce :: Event -> Form -> Maybe Form+reduce _ Top = Just Top+reduce e Bot = Just $ Neg $ preOf e+reduce e (PrpF p) = Impl (preOf e) <$> Just (formOf $ trfPost e p)+reduce e (Neg f) = Impl (preOf e) <$> (Neg <$> reduce e f)+reduce e (Conj fs) = Conj <$> mapM (reduce e) fs+reduce e (Disj fs) = Disj <$> mapM (reduce e) fs+reduce e (Xor fs) = Impl (preOf e) <$> (Xor <$> mapM (reduce e) fs)+reduce e (Impl f1 f2) = Impl <$> reduce e f1 <*> reduce e f2+reduce e (Equi f1 f2) = Equi <$> reduce e f1 <*> reduce e f2+reduce _ (Forall _ _) = Nothing+reduce _ (Exists _ _) = Nothing+reduce e@(t@(Trf addprops _ _ _ eventObs), x) (K a f) =+ Impl (preOf e) <$> (Conj <$> sequence+ [ K a <$> reduce (t,y) f | y <- powerset addprops -- FIXME is this a bit much?+ , tagBddEval (mv x ++ cp y) (eventObs ! a)+ ])+reduce e (Kw a f) = reduce e (Disj [K a f, K a (Neg f)])+reduce _ Ck {} = Nothing+reduce _ Ckw {} = Nothing+reduce _ PubAnnounce {} = Nothing+reduce _ PubAnnounceW {} = Nothing+reduce _ Announce {} = Nothing+reduce _ AnnounceW {} = Nothing++bddReduce :: BelScene -> Event -> Form -> Bdd+bddReduce scn@(oldBls,_) event@(Trf addprops _ changeprops changelaw _, eventFacts) f =+ let+ -- same as in 'transform', to ensure props and addprops are disjoint+ shiftaddprops = [(freshp $ vocabOf scn)..]+ shiftrel = sort $ zip addprops shiftaddprops+ relabelWith r = relabel (sort $ map (over both fromEnum) r)+ -- apply the shifting to addlaw and changelaw:+ changelawShifted = M.map (relabelWith shiftrel) changelaw+ (newBlS,_) = transform scn event+ -- the actual event, shifted+ actualAss = [ (shifted, P orig `elem` eventFacts) | (P orig, P shifted) <- shiftrel ]+ postconrel = [ (n, changelawShifted ! P n) | (P n) <- changeprops ]+ -- reversing V° to V+ copychangeprops = [(freshp $ vocabOf scn ++ map snd shiftrel)..]+ copyrelInverse = zip copychangeprops changeprops+ in+ imp (bddOf oldBls (preOf event)) $ -- 0. check if precondition holds+ relabelWith copyrelInverse $ -- 4. changepropscopies -> original changeprops+ (`restrictSet` actualAss) $ -- 3. restrict to actual event x outof V++ bddSubstitSimul postconrel $ -- 2. replace changeprops with postconditions+ bddOf newBlS f -- 1. boolean equivalent wrt new structure++evalViaBddReduce :: BelScene -> Event -> Form -> Bool+evalViaBddReduce (kns,s) event f = evaluateFun (bddReduce (kns,s) event f) (\n -> P n `elem` s)++-- replace variable n with a BDD psi in BDD b+bddSubstit :: Int -> Bdd -> Bdd -> Bdd+bddSubstit n psi b =+ case firstVarOf b of+ Nothing -> b+ Just k -> case compare n k of+ LT -> b+ EQ -> ifthenelse psi (thenOf b) (elseOf b)+ GT -> ifthenelse (var k) (bddSubstit n psi (thenOf b)) (bddSubstit n psi (elseOf b))++-- *simultaneous* substitution of BDDs for variables+-- (not the same as folding bddSubstit)+bddSubstitSimul :: [(Int,Bdd)] -> Bdd -> Bdd+bddSubstitSimul [] b = b+bddSubstitSimul repls b =+ case firstVarOf b of+ Nothing -> b+ Just k -> case lookup k repls of+ Nothing -> ifthenelse (var k) (bddSubstitSimul repls $ thenOf b) (bddSubstitSimul repls $ elseOf b)+ Just psi -> ifthenelse psi (bddSubstitSimul repls $ thenOf b) (bddSubstitSimul repls $ elseOf b)
+ src/SMCDEL/Symbolic/S5.hs view
@@ -0,0 +1,265 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Symbolic.S5 where+import Control.Arrow (first)+import Data.HasCacBDD hiding (Top,Bot)+import Data.HasCacBDD.Visuals+import Data.List (sort,intercalate,(\\))+import System.IO (hPutStr, hGetContents, hClose)+import System.IO.Unsafe (unsafePerformIO)+import System.Process (runInteractiveCommand)+import SMCDEL.Internal.Help (alleqWith,apply,(!),rtc,seteq,powerset)+import SMCDEL.Language+import SMCDEL.Internal.TexDisplay++boolBddOf :: Form -> Bdd+boolBddOf Top = top+boolBddOf Bot = bot+boolBddOf (PrpF (P n)) = var n+boolBddOf (Neg form) = neg$ boolBddOf form+boolBddOf (Conj forms) = conSet $ map boolBddOf forms+boolBddOf (Disj forms) = disSet $ map boolBddOf forms+boolBddOf (Xor forms) = xorSet $ map boolBddOf forms+boolBddOf (Impl f g) = imp (boolBddOf f) (boolBddOf g)+boolBddOf (Equi f g) = equ (boolBddOf f) (boolBddOf g)+boolBddOf (Forall ps f) = forallSet (map fromEnum ps) (boolBddOf f)+boolBddOf (Exists ps f) = existsSet (map fromEnum ps) (boolBddOf f)+boolBddOf _ = error "boolBddOf failed: Not a boolean formula."++boolEvalViaBdd :: [Prp] -> Form -> Bool+boolEvalViaBdd truths = bddEval truths . boolBddOf++bddEval :: [Prp] -> Bdd -> Bool+bddEval truths querybdd = evaluateFun querybdd (\n -> P n `elem` truths)++data KnowStruct = KnS [Prp] -- vocabulary+ Bdd -- state law+ [(Agent,[Prp])] -- observational variables+ deriving (Eq,Show)++type State = [Prp]++type KnowScene = (KnowStruct,State)++statesOf :: KnowStruct -> [State]+statesOf (KnS props lawbdd _) = map (sort.translate) resultlists where+ resultlists :: [[(Prp, Bool)]]+ resultlists = map (map (first toEnum)) $ allSatsWith (map fromEnum props) lawbdd+ translate l = map fst (filter snd l)++instance HasAgents KnowStruct where+ agentsOf (KnS _ _ obs)= map fst obs++instance HasVocab KnowStruct where+ vocabOf (KnS props _ _) = props++instance HasAgents KnowScene where agentsOf = agentsOf . fst+instance HasVocab KnowScene where vocabOf = vocabOf . fst++numberOfStates :: KnowStruct -> Int+numberOfStates (KnS props lawbdd _) = satCountWith (map fromEnum props) lawbdd++restrictState :: State -> [Prp] -> State+restrictState s props = filter (`elem` props) s++shareknow :: KnowStruct -> [[Prp]] -> [(State,State)]+shareknow kns sets = filter rel [ (s,t) | s <- statesOf kns, t <- statesOf kns ] where+ rel (x,y) = or [ seteq (restrictState x set) (restrictState y set) | set <- sets ]++comknow :: KnowStruct -> [Agent] -> [(State,State)]+comknow kns@(KnS _ _ obs) ags = rtc $ shareknow kns (map (apply obs) ags)++eval :: KnowScene -> Form -> Bool+eval _ Top = True+eval _ Bot = False+eval (_,s) (PrpF p) = p `elem` s+eval (kns,s) (Neg form) = not $ eval (kns,s) form+eval (kns,s) (Conj forms) = all (eval (kns,s)) forms+eval (kns,s) (Disj forms) = any (eval (kns,s)) forms+eval (kns,s) (Xor forms) = odd $ length (filter id $ map (eval (kns,s)) forms)+eval scn (Impl f g) = not (eval scn f) || eval scn g+eval scn (Equi f g) = eval scn f == eval scn g+eval scn (Forall ps f) = eval scn (foldl singleForall f ps) where+ singleForall g p = Conj [ substit p Top g, substit p Bot g ]+eval scn (Exists ps f) = eval scn (foldl singleExists f ps) where+ singleExists g p = Disj [ substit p Top g, substit p Bot g ]+eval (kns@(KnS _ _ obs),s) (K i form) = all (\s' -> eval (kns,s') form) theres where+ theres = filter (\s' -> seteq (restrictState s' oi) (restrictState s oi)) (statesOf kns)+ oi = apply obs i+eval (kns@(KnS _ _ obs),s) (Kw i form) = alleqWith (\s' -> eval (kns,s') form) theres where+ theres = filter (\s' -> seteq (restrictState s' oi) (restrictState s oi)) (statesOf kns)+ oi = apply obs i+eval (kns,s) (Ck ags form) = all (\s' -> eval (kns,s') form) theres where+ theres = [ s' | (s0,s') <- comknow kns ags, s0 == s ]+eval (kns,s) (Ckw ags form) = alleqWith (\s' -> eval (kns,s') form) theres where+ theres = [ s' | (s0,s') <- comknow kns ags, s0 == s ]+eval scn (PubAnnounce form1 form2) =+ not (eval scn form1) || eval (pubAnnounceOnScn scn form1) form2+eval (kns,s) (PubAnnounceW form1 form2) =+ if eval (kns, s) form1+ then eval (pubAnnounce kns form1, s) form2+ else eval (pubAnnounce kns (Neg form1), s) form2+eval scn (Announce ags form1 form2) =+ not (eval scn form1) || eval (announceOnScn scn ags form1) form2+eval scn (AnnounceW ags form1 form2) =+ if eval scn form1+ then eval (announceOnScn scn ags form1 ) form2+ else eval (announceOnScn scn ags (Neg form1)) form2++pubAnnounce :: KnowStruct -> Form -> KnowStruct+pubAnnounce kns@(KnS props lawbdd obs) psi = KnS props newlawbdd obs where+ newlawbdd = con lawbdd (bddOf kns psi)++pubAnnounceOnScn :: KnowScene -> Form -> KnowScene+pubAnnounceOnScn (kns,s) psi+ | eval (kns,s) psi = (pubAnnounce kns psi,s)+ | otherwise = error "Liar!"++announce :: KnowStruct -> [Agent] -> Form -> KnowStruct+announce kns@(KnS props lawbdd obs) ags psi = KnS newprops newlawbdd newobs where+ proppsi@(P k) = freshp props+ newprops = proppsi:props+ newlawbdd = con lawbdd (equ (var k) (bddOf kns psi))+ newobs = [(i, apply obs i ++ [proppsi | i `elem` ags]) | i <- map fst obs]++announceOnScn :: KnowScene -> [Agent] -> Form -> KnowScene+announceOnScn (kns@(KnS props _ _),s) ags psi+ | eval (kns,s) psi = (announce kns ags psi, sort $ freshp props : s)+ | otherwise = error "Liar!"++bddOf :: KnowStruct -> Form -> Bdd+bddOf _ Top = top+bddOf _ Bot = bot+bddOf _ (PrpF (P n)) = var n+bddOf kns (Neg form) = neg $ bddOf kns form+bddOf kns (Conj forms) = conSet $ map (bddOf kns) forms+bddOf kns (Disj forms) = disSet $ map (bddOf kns) forms+bddOf kns (Xor forms) = xorSet $ map (bddOf kns) forms+bddOf kns (Impl f g) = imp (bddOf kns f) (bddOf kns g)+bddOf kns (Equi f g) = equ (bddOf kns f) (bddOf kns g)+bddOf kns (Forall ps f) = forallSet (map fromEnum ps) (bddOf kns f)+bddOf kns (Exists ps f) = existsSet (map fromEnum ps) (bddOf kns f)+bddOf kns@(KnS allprops lawbdd obs) (K i form) =+ forallSet otherps (imp lawbdd (bddOf kns form)) where+ otherps = map (\(P n) -> n) $ allprops \\ apply obs i+bddOf kns@(KnS allprops lawbdd obs) (Kw i form) =+ disSet [ forallSet otherps (imp lawbdd (bddOf kns f)) | f <- [form, Neg form] ] where+ otherps = map (\(P n) -> n) $ allprops \\ apply obs i+bddOf kns@(KnS allprops lawbdd obs) (Ck ags form) = gfp lambda where+ lambda z = conSet $ bddOf kns form : [ forallSet (otherps i) (imp lawbdd z) | i <- ags ]+ otherps i = map (\(P n) -> n) $ allprops \\ apply obs i+bddOf kns (Ckw ags form) = dis (bddOf kns (Ck ags form)) (bddOf kns (Ck ags (Neg form)))+bddOf kns@(KnS props _ _) (Announce ags form1 form2) =+ imp (bddOf kns form1) (restrict bdd2 (k,True)) where+ bdd2 = bddOf (announce kns ags form1) form2+ (P k) = freshp props+bddOf kns@(KnS props _ _) (AnnounceW ags form1 form2) =+ ifthenelse (bddOf kns form1) bdd2a bdd2b where+ bdd2a = restrict (bddOf (announce kns ags form1) form2) (k,True)+ bdd2b = restrict (bddOf (announce kns ags form1) form2) (k,False)+ (P k) = freshp props+bddOf kns (PubAnnounce form1 form2) =+ imp (bddOf kns form1) (bddOf (pubAnnounce kns form1) form2)+bddOf kns (PubAnnounceW form1 form2) =+ ifthenelse (bddOf kns form1) newform2a newform2b where+ newform2a = bddOf (pubAnnounce kns form1) form2+ newform2b = bddOf (pubAnnounce kns (Neg form1)) form2++evalViaBdd :: KnowScene -> Form -> Bool+evalViaBdd (kns,s) f = evaluateFun (bddOf kns f) (\n -> P n `elem` s)++instance Semantics KnowScene where+ isTrue = evalViaBdd++validViaBdd :: KnowStruct -> Form -> Bool+validViaBdd kns@(KnS _ lawbdd _) f = top == lawbdd `imp` bddOf kns f++whereViaBdd :: KnowStruct -> Form -> [State]+whereViaBdd kns@(KnS props lawbdd _) f =+ map (sort . map (toEnum . fst) . filter snd) $+ allSatsWith (map fromEnum props) $ con lawbdd (bddOf kns f)++data KnowTransf = KnT [Prp] Form [(Agent,[Prp])] deriving (Show)+type Event = (KnowTransf,State)++knowTransform :: KnowScene -> Event -> KnowScene+knowTransform (kns@(KnS props lawbdd obs),s) (KnT addprops addlaw eventobs, eventfacts) =+ (KnS (props ++ map snd shiftrel) newlawbdd newobs, s++shifteventfacts) where+ shiftrel = zip addprops [(freshp props)..]+ newobs = [ (i , sort $ apply obs i ++ map (apply shiftrel) (apply eventobs i)) | i <- map fst obs ]+ shiftaddlaw = replPsInF shiftrel addlaw+ newlawbdd = con lawbdd (bddOf kns shiftaddlaw)+ shifteventfacts = map (apply shiftrel) eventfacts++texBddWith :: (Int -> String) -> Bdd -> String+texBddWith myShow b = unsafePerformIO $ do+ (i,o,_,_) <- runInteractiveCommand "dot2tex --figpreamble=\"\\huge\" --figonly -traw"+ hPutStr i (genGraphWith myShow b ++ "\n")+ hClose i+ hGetContents o++texBDD :: Bdd -> String+texBDD = texBddWith show++instance TexAble KnowStruct where+ tex (KnS props lawbdd obs) = concat+ [ " \\left( \n"+ , tex props ++ ", "+ , " \\begin{array}{l} \\scalebox{0.4}{"+ , texBDD lawbdd+ , "} \\end{array}\n "+ , ", \\begin{array}{l}\n"+ , intercalate " \\\\\n " (map (\(_,os) -> (tex os)) obs)+ , "\\end{array}\n"+ , " \\right)" ]++instance TexAble KnowScene where+ tex (kns, state) = tex kns ++ " , " ++ tex state++instance TexAble Event where+ tex (KnT props changelaw obs, actual) = concat+ [ " \\left( \n"+ , tex props ++ ", "+ , tex changelaw, "\n "+ , ", \\begin{array}{l}\n"+ , intercalate " \\\\\n " (map (\(_,os) -> (tex os)) obs)+ , "\\end{array}\n"+ , " \\right) , "+ , tex actual ]++pre :: Event -> Form+pre (KnT addprops changelaw _, x) = substitOutOf x addprops changelaw++reduce :: Event -> Form -> Maybe Form+reduce _ Top = Just Top+reduce e Bot = pure $ Neg (pre e)+reduce e (PrpF p) = Impl (pre e) <$> Just (PrpF p)+reduce e (Neg f) = Impl (pre e) <$> (Neg <$> reduce e f)+reduce e (Conj fs) = Conj <$> mapM (reduce e) fs+reduce e (Disj fs) = Disj <$> mapM (reduce e) fs+reduce e (Xor fs) = Impl (pre e) <$> (Xor <$> mapM (reduce e) fs)+reduce e (Impl f1 f2) = Impl <$> reduce e f1 <*> reduce e f2+reduce e (Equi f1 f2) = Equi <$> reduce e f1 <*> reduce e f2+reduce _ (Forall _ _) = Nothing+reduce _ (Exists _ _) = Nothing+reduce e@(t@(KnT addprops _ obs), x) (K a f) =+ Impl (pre e) <$> (Conj <$> sequence+ [ K a <$> reduce (t,y) f | y <- powerset addprops -- FIXME is this a bit much?+ , seteq (restrictState x (obs ! a)) (restrictState y (obs ! a))+ ])+reduce e (Kw a f) = reduce e (Disj [K a f, K a (Neg f)])+reduce _ Ck {} = Nothing+reduce _ Ckw {} = Nothing+reduce _ PubAnnounce {} = Nothing+reduce _ PubAnnounceW {} = Nothing+reduce _ Announce {} = Nothing+reduce _ AnnounceW {} = Nothing++bddReduce :: KnowScene -> Event -> Form -> Bdd+bddReduce scn event f = restrictSet (bddOf newKns f) actualAss where+ (newKns,_) = knowTransform scn event+ (KnT eventprops _ _, actual) = event+ actualAss = [(k, P k `elem` actual) | (P k) <- eventprops]++evalViaBddReduce :: KnowScene -> Event -> Form -> Bool+evalViaBddReduce (kns,s) event f = evaluateFun (bddReduce (kns,s) event f) (\n -> P n `elem` s)
+ src/SMCDEL/Symbolic/S5/Change.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Symbolic.S5.Change where++import Control.Lens (over,both)+import Data.HasCacBDD hiding (Top,Bot)+import Data.List+import qualified Data.Map.Strict as M+import Data.Map.Strict ((!))++import SMCDEL.Language+import SMCDEL.Internal.TexDisplay+import SMCDEL.Other.BDD2Form+import SMCDEL.Internal.Help (apply,applyPartial)+import SMCDEL.Symbolic.S5 hiding (Event)++data KnowChange = CTrf+ [Prp] -- addprops+ Form -- event law+ [Prp] -- changeprops, modified subset+ (M.Map Prp Bdd) -- changelaw+ (M.Map Agent [Prp]) -- eventObs+ deriving (Show)++instance HasAgents KnowChange where+ agentsOf (CTrf _ _ _ _ obdds) = M.keys obdds++type Event = (KnowChange,State)++instance HasAgents Event where+ agentsOf = agentsOf . fst++type MultiEvent = (KnowChange,[State])++instance TexAble KnowChange where+ tex (CTrf addprops addlaw changeprops changelaw eventObs) = concat+ [ " \\left( \n"+ , tex addprops, ", \\ "+ , tex addlaw, ", \\ "+ , tex changeprops, ", \\ "+ , intercalate ", " $ map snd . M.toList $ M.mapWithKey texChange changelaw+ , ", \\ \\begin{array}{l}\n"+ , intercalate " \\\\\n " (map (\(_,os) -> (tex os)) (M.toList eventObs))+ , "\\end{array}\n"+ , " \\right) \n"+ ] where+ texChange prop changebdd = tex prop ++ " := " ++ tex (formOf changebdd)++instance TexAble Event where+ tex (trf, eventFacts) = concat+ [ " \\left( \n", tex trf, ", \\ ", tex eventFacts, " \\right) \n" ]++knowChange :: KnowScene -> Event -> KnowScene+knowChange (kns@(KnS props law obs),s) (CTrf addprops addlaw changeprops changelaw eventObs, eventFacts) =+ (KnS newprops newlaw newobs, news) where+ relabelWith r = relabel (sort $ map (over both fromEnum) r)+ -- PART 1: SHIFTING addprops to ensure props and newprops are disjoint+ shiftrel = sort $ zip addprops [(freshp props)..]+ shiftaddprops = map snd shiftrel+ -- apply the shifting to addlaw, changelaw and eventObs:+ addlawShifted = replPsInF shiftrel addlaw+ changelawShifted = M.map (relabelWith shiftrel) changelaw+ eventObsShifted = M.map (map (apply shiftrel)) eventObs+ -- the actual event:+ x = map (apply shiftrel) eventFacts+ -- PART 2: COPYING the modified propositions+ copyrel = zip changeprops [(freshp $ props ++ shiftaddprops)..]+ copychangeprops = map snd copyrel+ newprops = sort $ props ++ shiftaddprops ++ copychangeprops -- V ∪ V⁺ ∪ V°+ newlaw = conSet $ relabelWith copyrel (con law (bddOf kns addlawShifted))+ : [var (fromEnum q) `equ` relabelWith copyrel (changelawShifted ! q) | q <- changeprops]+ newobs = [ (i , sort $ map (applyPartial copyrel) (apply obs i) ++ eventObsShifted ! i) | i <- map fst obs ]+ news | bddEval (s ++ x) (con law (bddOf kns addlawShifted)) = sort $ concat+ [ s \\ changeprops+ , map (apply copyrel) $ s `intersect` changeprops+ , x+ , filter (\ p -> bddEval (s ++ x) (changelawShifted ! p)) changeprops ]+ | otherwise = error "Transformer is not applicable!"++myStart :: KnowScene+myStart = (KnS [P 0] (boolBddOf Top) [("Alice",[]),("Bob",[P 0])],[P 0])++publicMakeFalse :: [Agent] -> Prp -> Event+publicMakeFalse agents p = (CTrf [] Top [p] mychangelaw myobs, []) where+ mychangelaw = M.fromList [ (p,boolBddOf Bot) ]+ myobs = M.fromList [ (i,[]) | i <- agents ]++myEvent :: Event+myEvent = publicMakeFalse (agentsOf myStart) (P 0)++myResult :: KnowScene+myResult = myStart `knowChange` myEvent++exampleStart :: KnowScene+exampleStart = (KnS [P 0] (boolBddOf Top) [("Alice",[]),("Bob",[P 0])],[P 0])++makeFalseShowTo :: [Agent] -> Prp -> [Agent] -> Event+makeFalseShowTo agents p intheknow = (CTrf [P 99] Top [p] examplechangelaw exampleobs, []) where+ examplechangelaw = M.fromList [ (p,boolBddOf $ PrpF (P 99)) ]+ exampleobs = M.fromList $ [ (i,[P 99]) | i <- intheknow ]+ ++ [ (i,[ ]) | i <- agents \\ intheknow ]++exampleEvent :: Event+exampleEvent = makeFalseShowTo (agentsOf exampleStart) (P 0) ["Bob"]++exampleResult :: KnowScene+exampleResult = exampleStart `knowChange` exampleEvent++thirdEvent :: Event+thirdEvent = makeFalseShowTo (agentsOf exampleStart) (P 0) ["Alice"]++thirdResult :: KnowScene+thirdResult = exampleStart `knowChange` thirdEvent
+ src/SMCDEL/Symbolic/S5_CUDD.hs view
@@ -0,0 +1,85 @@+module SMCDEL.Symbolic.S5_CUDD where++import SMCDEL.Internal.MyHaskCUDD+import Data.List ((\\))+import SMCDEL.Internal.Help (apply)+import SMCDEL.Language++boolBddOf :: Form -> Bdd+boolBddOf Top = top+boolBddOf Bot = bot+boolBddOf (PrpF (P n)) = var n+boolBddOf (Neg form) = neg$ boolBddOf form+boolBddOf (Conj forms) = conSet $ map boolBddOf forms+boolBddOf (Disj forms) = disSet $ map boolBddOf forms+boolBddOf (Impl f g) = imp (boolBddOf f) (boolBddOf g)+boolBddOf (Equi f g) = equ (boolBddOf f) (boolBddOf g)+boolBddOf (Forall ps f) = boolBddOf (foldl singleForall f ps) where+ singleForall g p = Conj [ substit p Top g, substit p Bot g ]+boolBddOf (Exists ps f) = boolBddOf (foldl singleExists f ps) where+ singleExists g p = Disj [ substit p Top g, substit p Bot g ]+boolBddOf _ = error "boolBddOf failed: Not a boolean formula."++data KnowStruct = KnS [Prp] Bdd [(Agent,[Prp])] deriving (Eq,Show)+type KnState = [Prp]+type Scenario = (KnowStruct,KnState)++pubAnnounce :: KnowStruct -> Form -> KnowStruct+pubAnnounce kns@(KnS props lawbdd obs) psi = KnS props newlawbdd obs where+ newlawbdd = con lawbdd (bddOf kns psi)++announce :: KnowStruct -> [Agent] -> Form -> KnowStruct+announce kns@(KnS props lawbdd obs) ags psi = KnS newprops newlawbdd newobs where+ proppsi@(P k) = freshp props+ newprops = proppsi:props+ newlawbdd = con lawbdd (equ (var k) (bddOf kns psi))+ newobs = [(i, apply obs i ++ [proppsi | i `elem` ags]) | i <- map fst obs]++bddOf :: KnowStruct -> Form -> Bdd+bddOf _ Top = top+bddOf _ Bot = bot+bddOf _ (PrpF (P n)) = var n+bddOf kns (Neg form) = neg $ bddOf kns form+bddOf kns (Conj forms) = conSet $ map (bddOf kns) forms+bddOf kns (Disj forms) = disSet $ map (bddOf kns) forms+bddOf kns (Xor forms) = xorSet $ map (bddOf kns) forms+bddOf kns (Impl f g) = imp (bddOf kns f) (bddOf kns g)+bddOf kns (Equi f g) = equ (bddOf kns f) (bddOf kns g)+bddOf kns (Forall ps f) = forallSet (map fromEnum ps) (bddOf kns f)+bddOf kns (Exists ps f) = existsSet (map fromEnum ps) (bddOf kns f)+bddOf kns@(KnS allprops lawbdd obs) (K i form) =+ forallSet otherps (imp lawbdd (bddOf kns form)) where+ otherps = map (\(P n) -> n) $ allprops \\ apply obs i+bddOf kns@(KnS allprops lawbdd obs) (Kw i form) =+ disSet [ forallSet otherps (imp lawbdd (bddOf kns f)) | f <- [form, Neg form] ] where+ otherps = map (\(P n) -> n) $ allprops \\ apply obs i+bddOf kns@(KnS allprops lawbdd obs) (Ck ags form) = gfp lambda where+ lambda z = conSet $ bddOf kns form : [ forallSet (otherps i) (imp lawbdd z) | i <- ags ]+ otherps i = map (\(P n) -> n) $ allprops \\ apply obs i+bddOf kns (Ckw ags form) = dis (bddOf kns (Ck ags form)) (bddOf kns (Ck ags (Neg form)))+bddOf kns@(KnS props _ _) (Announce ags form1 form2) =+ imp (bddOf kns form1) (restrict bdd2 (k,True)) where+ bdd2 = bddOf (announce kns ags form1) form2+ (P k) = freshp props+bddOf kns@(KnS props _ _) (AnnounceW ags form1 form2) =+ ifthenelse (bddOf kns form1) bdd2a bdd2b where+ bdd2a = restrict (bddOf (announce kns ags form1) form2) (k,True)+ bdd2b = restrict (bddOf (announce kns ags form1) form2) (k,False)+ (P k) = freshp props+bddOf kns (PubAnnounce form1 form2) = imp (bddOf kns form1) newform2 where+ newform2 = bddOf (pubAnnounce kns form1) form2+bddOf kns (PubAnnounceW form1 form2) =+ ifthenelse (bddOf kns form1) newform2a newform2b where+ newform2a = bddOf (pubAnnounce kns form1) form2+ newform2b = bddOf (pubAnnounce kns (Neg form1)) form2++evalViaBdd :: Scenario -> Form -> Bool+evalViaBdd (kns@(KnS allprops _ _),s) f = bool where+ bool | b==top = True+ | b==bot = False+ | otherwise = error ("evalViaBdd failed: BDD leftover:\n" ++ show b)+ b = restrictSet (bddOf kns f) list+ list = [ (n, P n `elem` s) | (P n) <- allprops ]++validViaBdd :: KnowStruct -> Form -> Bool+validViaBdd kns@(KnS _ lawbdd _) f = top == lawbdd `imp` bddOf kns f
+ src/SMCDEL/Translations/K.hs view
@@ -0,0 +1,40 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, TypeOperators #-}++module SMCDEL.Translations.K where++import Data.HasCacBDD hiding (Top,Bot)+import Data.Map.Strict (Map,fromList,(!))++import SMCDEL.Language+import SMCDEL.Symbolic.S5 (State)+import SMCDEL.Explicit.S5 (worldsOf)++import SMCDEL.Symbolic.K+import SMCDEL.Explicit.K+import SMCDEL.Translations.S5 (booloutof)+import SMCDEL.Internal.Help (apply)++blsToKripke :: BelScene -> PointedModel+blsToKripke (f@(BlS _ _ obdds), curs) = (m, cur) where+ links = zip (statesOf f) [0..]+ m = KrM $ fromList+ [ (w, ( fromList [(p, p `elem` s) | p <- vocabOf f]+ , fromList [(a, map (apply links) $ reachFromFor s a) | a <- agentsOf f] ) )+ | (s,w) <- links ]+ reachFromFor s a = filter (\t -> tagBddEval (mv s ++ cp t) (obdds ! a)) (statesOf f)+ (Just cur) = lookup curs links++kripkeToBls :: PointedModel -> BelScene+kripkeToBls (m, cur) = (BlS vocab lawbdd obdds, truthsInAt m cur) where+ vocab = vocabOf m+ lawbdd = disSet [ booloutof (truthsInAt m w) vocab | w <- worldsOf m ]+ obdds :: Map Agent RelBDD+ obdds = fromList [ (i, restrictLaw <$> relBddOfIn i m <*> (con <$> mvBdd lawbdd <*> cpBdd lawbdd)) | i <- agents ]+ agents = agentsOf m++exampleBelScn :: BelScene+exampleBelScn = kripkeToBls examplePointedModel++exampleBelStruct :: BelStruct+exampleBelState :: State+(exampleBelStruct,exampleBelState) = exampleBelScn
+ src/SMCDEL/Translations/K/Change.hs view
@@ -0,0 +1,48 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}++module SMCDEL.Translations.K.Change where++import Data.HasCacBDD hiding (Top,Bot)+import Data.List ((\\),nub,sort)+import qualified Data.Map.Strict as M+import Data.Map.Strict ((!),fromList)++import SMCDEL.Explicit.K.Change+import SMCDEL.Internal.Help (apply,powerset)+import SMCDEL.Language+import SMCDEL.Translations.S5 (booloutof)+import SMCDEL.Other.BDD2Form+import SMCDEL.Symbolic.K+import SMCDEL.Symbolic.K.Change+import SMCDEL.Symbolic.S5 (boolBddOf)++actionToEvent :: PointedChangeModel -> Event+actionToEvent (ChM chm, faction) = (Trf addprops addlaw changeprops changelaw eventObs, efacts) where+ actions = M.keys chm+ (P fstnewp) = freshp $ concatMap -- avoid props in pre and postconditions+ (\c -> propsInForms (pre c : M.elems (post c)) ++ M.keys (post c)) (M.elems chm)+ addprops = [P fstnewp..P maxactprop] -- new props to distinguish all actions+ maxactprop = fstnewp + ceiling (logBase 2 (fromIntegral $ length actions) :: Float) - 1+ ell = apply $ zip actions (powerset addprops) -- injectively label actions with sets of propositions+ addlaw = simplify $ Disj [ Conj [ booloutofForm (ell a) addprops, pre $ chm ! a ] | a <- actions ]+ changeprops = sort $ nub $ concatMap M.keys . M.elems $ M.map post chm -- propositions to be changed+ changelaw = M.fromList [ (p, changeFor p) | p <- changeprops ] -- encode postconditions+ changeFor p = disSet [ booloutof (ell k) addprops `con` boolBddOf (safepost (chm ! k) p) | k <- actions ]+ eventObs = M.fromList [ (i, obsLawFor i) | i <- agentsOf (ChM chm) ]+ obsLawFor i = pure $ disSet (M.elems $ M.mapWithKey (link i) chm)+ link i k ch = booloutof (mv $ ell k) (mv addprops) `con` -- encode relations+ disSet [ booloutof (cp $ ell there) (cp addprops) | there <- rel ch ! i ]+ efacts = ell faction++eventToAction' :: Event -> PointedChangeModel+eventToAction' (t@(Trf addprops addlaw changeprops changelaw eventObs), efacts) = (ChM chm, faction) where+ actlist = zip (powerset addprops) [0..]+ chm = fromList [ (a, Ch (preFor ps) (postFor ps) (relFor ps)) | (ps,a) <- actlist ]+ preFor ps = simplify $+ substitSet (zip ps (repeat Top) ++ zip (addprops \\ ps) (repeat Bot)) addlaw+ postFor ps = fromList+ [ (q, formOf $ restrictSet (changelaw ! q) [(p, P p `elem` ps) | (P p) <- addprops]) | q <- changeprops ]+ relFor ps = fromList [(i,rFor i) | i <- agentsOf t] where+ rFor i = concatMap (\(qs,b) -> [ b | tagBddEval (mv ps ++ cp qs) (eventObs ! i) ]) actlist+ faction = apply actlist efacts+
+ src/SMCDEL/Translations/S5.hs view
@@ -0,0 +1,168 @@+module SMCDEL.Translations.S5 where++import Control.Arrow (second)+import Data.List (groupBy,sort,(\\),elemIndex,intersect,nub)+import Data.Maybe (listToMaybe)+import SMCDEL.Language+import SMCDEL.Symbolic.S5+import SMCDEL.Explicit.S5+import SMCDEL.Internal.Help (anydiffWith,alldiff,alleqWith,apply,powerset,(!),seteq,subseteq)++import Data.HasCacBDD hiding (Top,Bot)++type StateMap = World -> State++equivalentWith :: PointedModelS5 -> KnowScene -> StateMap -> Bool+equivalentWith (KrMS5 ws rel val, actw) (kns@(KnS _ _ obs), curs) g =+ c1 && c2 && c3 && g actw == curs where+ c1 = all (\l -> knsLink l == kriLink l) linkSet where+ linkSet = nub [ (i,w1,w2) | w1 <- ws, w2 <- ws, w1 <= w2, i <- map fst rel ]+ knsLink (i,w1,w2) = let oi = obs ! i in (g w1 `intersect` oi) `seteq` (g w2 `intersect` oi)+ kriLink (i,w1,w2) = any (\p -> w1 `elem` p && w2 `elem` p) (rel ! i)+ c2 = and [ (p `elem` g w) == ((val ! w) ! p) | w <- ws, p <- map fst (snd $ head val) ]+ c3 = statesOf kns `seteq` nub (map g ws)++findStateMap :: PointedModelS5 -> KnowScene -> Maybe StateMap+findStateMap pm@(KrMS5 _ _ val, w) scn@(kns, s)+ | vocabOf pm `subseteq` vocabOf kns = listToMaybe goodMaps+ | otherwise = error "vocabOf pm not subseteq vocabOf kns"+ where+ extraProps = vocabOf kns \\ vocabOf pm+ allFuncs :: Eq a => [a] -> [b] -> [a -> b]+ allFuncs [] _ = [ const undefined ]+ allFuncs (x:xs) ys = [ \a -> if a == x then y else f a | y <- ys, f <- allFuncs xs ys ]+ allMaps, goodMaps :: [StateMap]+ baseMap = map fst . filter snd . (val !)+ allMaps = [ \v -> baseMap v ++ restf v | restf <- allFuncs (worldsOf pm) (powerset extraProps) ]+ goodMaps = filter (\g -> g w == s && equivalentWith pm scn g) allMaps++knsToKripke :: KnowScene -> PointedModelS5+knsToKripke = fst . knsToKripkeWithG++knsToKripkeWithG :: KnowScene -> (PointedModelS5, StateMap)+knsToKripkeWithG (kns@(KnS ps _ obs),curs) =+ if curs `elem` statesOf kns+ then ((KrMS5 worlds rel val, cur) , g)+ else error "knsToKripke failed: Invalid state."+ where+ lav = zip (statesOf kns) [0..(length (statesOf kns)-1)]+ val = map ( \(s,n) -> (n,state2kripkeass s) ) lav where+ state2kripkeass s = map (\p -> (p, p `elem` s)) ps+ rel = [(i,rfor i) | i <- map fst obs]+ rfor i = map (map snd) (groupBy ( \ (x,_) (y,_) -> x==y ) (sort pairs)) where+ pairs = map (\s -> (restrictState s (obs ! i), lav ! s)) (statesOf kns)+ worlds = map snd lav+ cur = lav ! curs+ g w = statesOf kns !! w++kripkeToKns :: PointedModelS5 -> KnowScene+kripkeToKns = fst . kripkeToKnsWithG++kripkeToKnsWithG :: PointedModelS5 -> (KnowScene, StateMap)+kripkeToKnsWithG (KrMS5 worlds rel val, cur) = ((KnS ps law obs, curs), g) where+ v = map fst (val ! cur)+ ags = map fst rel+ newpstart = fromEnum $ freshp v -- start counting new propositions here+ amount i = ceiling (logBase 2 (fromIntegral $ length (rel ! i)) :: Float) -- = |O_i|+ newpstep = maximum [ amount i | i <- ags ]+ newps i = map (\k -> P (newpstart + (newpstep * inum) +k)) [0..(amount i - 1)] -- O_i+ where (Just inum) = elemIndex i (map fst rel)+ copyrel i = zip (rel ! i) (powerset (newps i)) -- label equiv.classes with P(O_i)+ gag i w = snd $ head $ filter (\(ws,_) -> elem w ws) (copyrel i)+ g w = filter (apply (val ! w)) v ++ concat [ gag i w | i <- ags ]+ ps = v ++ concat [ newps i | i <- ags ]+ law = disSet [ booloutof (g w) ps | w <- worlds ]+ obs = [ (i,newps i) | i<- ags ]+ curs = sort $ g cur++booloutof :: [Prp] -> [Prp] -> Bdd+booloutof ps qs = conSet $+ [ var n | (P n) <- ps ] +++ [ neg $ var n | (P n) <- qs \\ ps ]++uniqueVals :: KripkeModelS5 -> Bool+uniqueVals (KrMS5 _ _ val) = alldiff (map snd val)++-- | Get lists of variables which agent i does (not) observe+-- in model m. This does *not* preserve all information, i.e.+-- does not characterize every possible S5 relation!+obsnobs :: KripkeModelS5 -> Agent -> ([Prp],[Prp])+obsnobs m@(KrMS5 _ rel val) i = (obs,nobs) where+ propsets = map (map (map fst . filter snd . apply val)) (apply rel i)+ obs = filter (\p -> all (alleqWith (elem p)) propsets) (vocabOf m)+ nobs = filter (\p -> any (anydiffWith (elem p)) propsets) (vocabOf m)++-- | Test if all relations can be described using observariables.+descableRels :: KripkeModelS5 -> Bool+descableRels m@(KrMS5 ws rel val) = all descable (map fst rel) where+ wpairs = [ (v,w) | v <- ws, w <- ws ]+ descable i = cover && correct where+ (obs,nobs) = obsnobs m i+ cover = sort (vocabOf m) == sort (obs ++ nobs) -- implies disjointness+ correct = all (\pair -> oldrel pair == newrel pair) wpairs+ oldrel (v,w) = v `elem` head (filter (elem w) (apply rel i))+ newrel (v,w) = (factsAt v `intersect` obs) == (factsAt w `intersect` obs)+ factsAt w = map fst $ filter snd $ apply val w++-- | Try to find an equivalent knowledge structure without+-- additional propositions. Will succeed iff valuations are+-- unique and relations can be described using observariables.+smartKripkeToKns :: PointedModelS5 -> Maybe KnowScene+smartKripkeToKns (m, cur) =+ if uniqueVals m && descableRels m+ then Just (smartKripkeToKnsWithoutChecks (m, cur))+ else Nothing++smartKripkeToKnsWithoutChecks :: PointedModelS5 -> KnowScene+smartKripkeToKnsWithoutChecks (m@(KrMS5 worlds rel val), cur) =+ (KnS ps law obs, curs) where+ ps = vocabOf m+ g w = filter (apply (apply val w)) ps+ law = disSet [ booloutof (g w) ps | w <- worlds ]+ obs = map (\(i,_) -> (i,obsOf i) ) rel+ obsOf = fst.obsnobs m+ curs = map fst $ filter snd $ apply val cur++actionToEvent :: PointedActionModel -> Event+actionToEvent (ActM actions precon actrel, faction) = (KnT eprops elaw eobs, efacts) where+ ags = map fst actrel+ eprops = actionprops ++ actrelprops+ (P fstnewp) = freshp $ propsInForms (map snd precon)+ actionprops = [P fstnewp..P maxactprop] -- new props to distinguish all actions+ maxactprop = fstnewp + ceiling (logBase 2 (fromIntegral $ length actions) :: Float) -1+ copyactprops = zip actions (powerset actionprops)+ ell = apply copyactprops -- label actions with subsets of actionprops+ happens a = booloutofForm (ell a) actionprops -- boolean formula to say that a happens+ actform = Disj [ Conj [ happens a, apply precon a ] | a <- actions ] -- connect new propositions to preconditions+ actrelprops = concat [ newps i | i <- ags ] -- new props to distinguish actions for i+ actrelpstart = maxactprop + 1+ newps i = map (\k -> P (actrelpstart + (newpstep * inum) +k)) [0..(amount i - 1)]+ where (Just inum) = elemIndex i (map fst actrel)+ amount i = ceiling (logBase 2 (fromIntegral $ length (apply actrel i)) :: Float)+ newpstep = maximum [ amount i | i <- ags ]+ copyactrel i = zip (apply actrel i) (powerset (newps i)) -- label equclasses-of-actions with subsets-of-newps+ actrelfs i = [ Equi (booloutofForm (apply (copyactrel i) as) (newps i)) (Disj (map happens as)) | as <- apply actrel i ]+ actrelforms = concatMap actrelfs ags+ factsFor i = snd $ head $ filter (\(as,_) -> elem faction as) (copyactrel i)+ efacts = apply copyactprops faction ++ concatMap factsFor ags+ elaw = simplify $ Conj (actform : actrelforms)+ eobs = [ (i,newps i) | i<- ags ]++eventToAction' :: Event -> PointedActionModel+eventToAction' (KnT eprops eform eobs, efacts) = (ActM actions precon actrel, faction) where+ actions = [0..(2 ^ length eprops - 1)]+ actlist = zip (powerset eprops) actions+ precon = [ (a, simplify $ preFor ps) | (ps,a) <- actlist ] where+ preFor ps = substitSet (zip ps (repeat Top) ++ zip (eprops\\ps) (repeat Bot)) eform+ actrel = [(i,rFor i) | i <- map fst eobs] where+ rFor i = map (map snd) (groupBy ( \ (x,_) (y,_) -> x==y ) (pairs i))+ pairs i = sort $ map (\(set,a) -> (restrictState set $ apply eobs i,a)) actlist+ faction = apply actlist efacts++eventToAction :: Event -> PointedActionModel+eventToAction (KnT eprops eform eobs, efacts) = (ActM actions precon actrel, faction) where+ (ActM _ precon' actrel', faction) = eventToAction' (KnT eprops eform eobs, efacts)+ precon = filter (\(_,f) -> f/=Bot) precon' -- remove actions w/ contradictory precon+ actions = map fst precon+ actrel = map (second fltr) actrel'+ fltr r = filter ([]/=) $ map (filter (`elem` actions)) r
+ stack.yaml view
@@ -0,0 +1,12 @@+resolver: lts-10.5++packages:+- '.'+- location:+ git: https://github.com/m4lvin/cudd.git+ commit: cc794dd2c7d9f6b6cc9560226a4fb9cbe5c4454c+ extra-dep: true+- location:+ git: https://github.com/m4lvin/HasCacBDD.git+ commit: 23405da09876356569fbbb4f150e33199e5546f9+ extra-dep: true
+ static/index.html view
@@ -0,0 +1,127 @@+<!DOCTYPE html>+<html lang="en">+<head>+<title>SMCDEL web</title>+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />+<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" />+<style type="text/css">+body {+ height:100%;+ font-family: sans-serif; color:#333;+ min-width:500px;+}+a {+ color:brown;+ text-decoration:none;+}+a:hover {+ color: #666;+ text-decoration:underline;+}+#left, #right {+ float:left;+ padding:2px;+ margin:2px;+ width:48%;+ border:1px solid #666;+}+textarea, #output {+ width:100%;+ margin:0px;+ padding:0px;+ min-height:400px;+ height:100%;+ border:none;+ box-sizing:border-box;+ overflow-y:scroll;+}+.expbut {+ padding:5px;+ margin:0px;+}+#runbutton, #kripkebutton {+ font-weight:bold;+ padding:3px;+ margin:0px;+}+#output svg {+ max-width: 100%;+ height: auto;+}+</style>+</head>+<body>+<h1>SMCDEL web</h1>+<p>This is the web interface of <a href="https://github.com/jrclogic/SMCDEL">SMCDEL</a>, a symbolic model checker for Dynamic Epistemic Logic.+See <a href="https://homepages.cwi.nl/~jve/papers/16/pdfs/2016-05-23-del-bdd-lori-journal.pdf">this paper</a>+and <a href="https://github.com/jrclogic/SMCDEL/raw/master/SMCDEL.pdf">this technical report</a> for more information.</p>+<div id="menubar">+ Load Examples:+ <input type="button" class="expbut" value="MuddyChildren" />+ <input type="button" class="expbut" value="DrinkingLogicians" />+ <input type="button" class="expbut" value="DiningCryptographers" />+ or enter your own code on the left side, then+ <input id="runbutton" type="submit" value="Run SMCDEL!" onclick="myRequest('check');" />+ or+ <input id="kripkebutton" type="submit" value="Show Kripke!" onclick="myRequest('knsToKripke');" />+</div>+<div id="left">+ <textarea name="smcinput" id="smcinput" placeholder="Enter your code here."></textarea>+</div>+<div id="right">+ <div id="output"></div>+</div>+<script src="viz-lite.js"></script>+<script src="jquery.js"></script>+<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>+<script type="text/x-mathjax-config">+ MathJax.Hub.Config({+ "HTML-CSS": { linebreaks: { automatic: true } },+ SVG: { linebreaks: { automatic: true } }+ });+</script>+<script>+ "use strict";+ $(document).ready(function(){+ $('.expbut').click(function() {+ $('#smcinput').val('... loading ...');+ $.get("getExample?filename=" + $(this).val(),+ function(data) {+ $('#smcinput').val(data);+ });+ });+ });+ function myRequest (url) {+ $('#output').val('... running ...');+ $.ajax({+ type: "POST",+ url: url,+ data: { "smcinput": $('#smcinput').val() },+ success:+ function(data,textStatus,jqXHR) {+ $('#output').html(data);+ MathJax.Hub.Queue(["Typeset",MathJax.Hub]);+ },+ error:+ function(jqXHR,textStatus,errorThrown) {+ $('#output').html(jqXHR.responseText);+ }+ });+ }+ function toggleLaw() {+ $('.lawbdd').fadeToggle();+ }+</script>+<p style="clear:both; padding-top:1em; color:#666;">+ Made by <a href="https://w4eg.de/malvin/">Malvin Gattinger</a>.+ Using+ <a href="https://www.haskell.org/alex/">alex</a>,+ <a href="https://www.haskell.org/happy/">happy</a>,+ <a href="https://www.haskell.org/">haskell</a>,+ <a href="https://mathjax.org/">MathJax</a>,+ <a href="https://github.com/scotty-web/scotty">scotty</a>,+ <a href="https://www.haskellstack.org/">stack</a>,+ and more awesome free software.+</p>+</body>+</html>
+ static/viz-lite.js view
@@ -0,0 +1,1175 @@+/*+Viz.js+Copyright (c) 2014-2017 Michael Daines+Licensed under MIT license++This distribution contains other software in object code form:++Graphviz+Licensed under Eclipse Public License - v 1.0+http://www.graphviz.org++zlib+Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler+http://www.zlib.net/zlib_license.html+*/+(function(global) {+var Module = function(Module) {+ Module = Module || {};++var e;e||(e=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var aa={},l;for(l in e)e.hasOwnProperty(l)&&(aa[l]=e[l]);var ba="object"===typeof window,ca="function"===typeof importScripts,da="object"===typeof process&&"function"===typeof require&&!ba&&!ca,fa=!ba&&!da&&!ca;+if(da){e.print||(e.print=function(a){process.stdout.write(a+"\n")});e.printErr||(e.printErr=function(a){process.stderr.write(a+"\n")});var ga=require("fs"),ha=require("path");e.read=function(a,b){a=ha.normalize(a);var c=ga.readFileSync(a);c||a==ha.resolve(a)||(a=path.join(__dirname,"..","src",a),c=ga.readFileSync(a));c&&!b&&(c=c.toString());return c};e.readBinary=function(a){a=e.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};e.load=function(a){ia(read(a))};e.thisProgram||(e.thisProgram=+1<process.argv.length?process.argv[1].replace(/\\/g,"/"):"unknown-program");e.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=e);process.on("uncaughtException",function(a){if(!(a instanceof ja))throw a;});e.inspect=function(){return"[Emscripten Module object]"}}else if(fa)e.print||(e.print=print),"undefined"!=typeof printErr&&(e.printErr=printErr),e.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)";},e.readBinary=function(a){if("function"===+typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?e.arguments=scriptArgs:"undefined"!=typeof arguments&&(e.arguments=arguments),eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else if(ba||ca)e.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},"undefined"!=typeof arguments&&(e.arguments=arguments),"undefined"!==+typeof console?(e.print||(e.print=function(a){console.log(a)}),e.printErr||(e.printErr=function(a){console.log(a)})):e.print||(e.print=function(){}),ca&&(e.load=importScripts),"undefined"===typeof e.setWindowTitle&&(e.setWindowTitle=function(a){document.title=a});else throw"Unknown runtime environment. Where are we?";function ia(a){eval.call(null,a)}!e.load&&e.read&&(e.load=function(a){ia(e.read(a))});e.print||(e.print=function(){});e.printErr||(e.printErr=e.print);e.arguments||(e.arguments=[]);+e.thisProgram||(e.thisProgram="./this.program");e.print=e.print;e.X=e.printErr;e.preRun=[];e.postRun=[];for(l in aa)aa.hasOwnProperty(l)&&(e[l]=aa[l]);+var n={lb:function(a){ka=a},Za:function(){return ka},ya:function(){return m},ja:function(a){m=a},Ma:function(a){switch(a){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:return"*"===a[a.length-1]?n.K:"i"===a[0]?(a=parseInt(a.substr(1)),assert(0===a%8),a/8):0}},Ya:function(a){return Math.max(n.Ma(a),n.K)},pd:16,Ld:function(a,b){"double"===b||"i64"===b?a&7&&(assert(4===(a&7)),a+=4):assert(0===(a&3));return a},+xd:function(a,b,c){return c||"i64"!=a&&"double"!=a?a?Math.min(b||(a?n.Ya(a):0),n.K):Math.min(b,8):8},N:function(a,b,c){return c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),e["dynCall_"+a].apply(null,c)):e["dynCall_"+a].call(null,b)},ea:[],Ra:function(a){for(var b=0;b<n.ea.length;b++)if(!n.ea[b])return n.ea[b]=a,2*(1+b);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";},ib:function(a){n.ea[(a-2)/2]=null},Q:function(a){n.Q.wa||+(n.Q.wa={});n.Q.wa[a]||(n.Q.wa[a]=1,e.X(a))},qa:{},Ad:function(a,b){assert(b);n.qa[b]||(n.qa[b]={});var c=n.qa[b];c[a]||(c[a]=function(){return n.N(b,a,arguments)});return c[a]},yd:function(){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";},ia:function(a){var b=m;m=m+a|0;m=m+15&-16;return b},mb:function(a){var b=la;la=la+a|0;la=la+15&-16;return b},ba:function(a){var b=q;q=q+a|0;q=q+15&-16;if(a=q>=ma)v("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "++ma+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 "),a=!0;return a?(q=b,0):b},na:function(a,b){return Math.ceil(a/(b?b:16))*(b?b:16)},Id:function(a,b,c){return c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296*+(b|0)},q:8,K:4,qd:0};n.addFunction=n.Ra;+n.removeFunction=n.ib;var w=!1,na,oa,ka;function assert(a,b){a||v("Assertion failed: "+b)}function pa(a){var b=e["_"+a];if(!b)try{b=eval("_"+a)}catch(c){}assert(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}var ra;+(function(){var a={stackSave:function(){n.ya()},stackRestore:function(){n.ja()},arrayToC:function(a){for(var b=n.ia(a.length),c=b,d=0;d<a.length;d++)x[c++>>0]=a[d];return b},stringToC:function(a){var b=0;null!==a&&void 0!==a&&0!==a&&(b=n.ia((a.length<<2)+1),sa(a,b));return b}},b={string:a.stringToC,array:a.arrayToC};ra=function(a,c,d,h,u){a=pa(a);var p=[],t=0;if(h)for(var r=0;r<h.length;r++){var A=b[d[r]];A?(0===t&&(t=n.ya()),p[r]=A(h[r])):p[r]=h[r]}d=a.apply(null,p);"string"===c&&(d=y(d));if(0!==+t){if(u&&u.async){EmterpreterAsync.rd.push(function(){n.ja(t)});return}n.ja(t)}return d};var c=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,d;for(d in a)a.hasOwnProperty(d)&&a[d].toString().match(c).slice(1)})();e.ccall=ra;+function ta(a){var b;b="i32";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return x[a>>0];case "i8":return x[a>>0];case "i16":return ua[a>>1];case "i32":return z[a>>2];case "i64":return z[a>>2];case "float":return va[a>>2];case "double":return wa[a>>3];default:v("invalid type for setValue: "+b)}return null}+function B(a,b,c,d){var f,g;"number"===typeof a?(f=!0,g=a):(f=!1,g=a.length);var k="string"===typeof b?b:null;c=4==c?d:[xa,n.ia,n.mb,n.ba][void 0===c?2:c](Math.max(g,k?1:b.length));if(f){d=c;assert(0==(c&3));for(a=c+(g&-4);d<a;d+=4)z[d>>2]=0;for(a=c+g;d<a;)x[d++>>0]=0;return c}if("i8"===k)return a.subarray||a.slice?E.set(a,c):E.set(new Uint8Array(a),c),c;d=0;for(var h,u;d<g;){var p=a[d];"function"===typeof p&&(p=n.Bd(p));f=k||b[d];if(0===f)d++;else{"i64"==f&&(f="i32");var t=c+d,r=f,r=r||"i8";"*"===+r.charAt(r.length-1)&&(r="i32");switch(r){case "i1":x[t>>0]=p;break;case "i8":x[t>>0]=p;break;case "i16":ua[t>>1]=p;break;case "i32":z[t>>2]=p;break;case "i64":oa=[p>>>0,(na=p,1<=+ya(na)?0<na?(za(+Aa(na/4294967296),4294967295)|0)>>>0:~~+Ba((na-+(~~na>>>0))/4294967296)>>>0:0)];z[t>>2]=oa[0];z[t+4>>2]=oa[1];break;case "float":va[t>>2]=p;break;case "double":wa[t>>3]=p;break;default:v("invalid type for setValue: "+r)}u!==f&&(h=n.Ma(f),u=f);d+=h}}return c}+function y(a,b){if(0===b||!a)return"";for(var c=0,d,f=0;;){d=E[a+f>>0];c|=d;if(0==d&&!b)break;f++;if(b&&f==b)break}b||(b=f);d="";if(128>c){for(;0<b;)c=String.fromCharCode.apply(String,E.subarray(a,a+Math.min(b,1024))),d=d?d+c:c,a+=1024,b-=1024;return d}return e.UTF8ToString(a)}e.Pointer_stringify=y;+function Ca(a,b){for(var c,d,f,g,k,h,u="";;){c=a[b++];if(!c)return u;c&128?(d=a[b++]&63,192==(c&224)?u+=String.fromCharCode((c&31)<<6|d):(f=a[b++]&63,224==(c&240)?c=(c&15)<<12|d<<6|f:(g=a[b++]&63,240==(c&248)?c=(c&7)<<18|d<<12|f<<6|g:(k=a[b++]&63,248==(c&252)?c=(c&3)<<24|d<<18|f<<12|g<<6|k:(h=a[b++]&63,c=(c&1)<<30|d<<24|f<<18|g<<12|k<<6|h))),65536>c?u+=String.fromCharCode(c):(c-=65536,u+=String.fromCharCode(55296|c>>10,56320|c&1023)))):u+=String.fromCharCode(c)}}+e.UTF8ToString=function(a){return Ca(E,a)};+function Da(a){function b(c,d,f){d=d||Infinity;var g="",k=[],r;if("N"===a[h]){h++;"K"===a[h]&&h++;for(r=[];"E"!==a[h];)if("S"===a[h]){h++;var D=a.indexOf("_",h);r.push(p[a.substring(h,D)||0]||"?");h=D+1}else if("C"===a[h])r.push(r[r.length-1]),h+=2;else{var D=parseInt(a.substr(h)),V=D.toString().length;if(!D||!V){h--;break}var Fb=a.substr(h+V,D);r.push(Fb);p.push(Fb);h+=V+D}h++;r=r.join("::");d--;if(0===d)return c?[r]:r}else if(("K"===a[h]||t&&"L"===a[h])&&h++,D=parseInt(a.substr(h)))V=D.toString().length,+r=a.substr(h+V,D),h+=V+D;t=!1;"I"===a[h]?(h++,D=b(!0),V=b(!0,1,!0),g+=V[0]+" "+r+"<"+D.join(", ")+">"):g=r;a:for(;h<a.length&&0<d--;)if(r=a[h++],r in u)k.push(u[r]);else switch(r){case "P":k.push(b(!0,1,!0)[0]+"*");break;case "R":k.push(b(!0,1,!0)[0]+"&");break;case "L":h++;D=a.indexOf("E",h)-h;k.push(a.substr(h,D));h+=D+2;break;case "A":D=parseInt(a.substr(h));h+=D.toString().length;if("_"!==a[h])throw"?";h++;k.push(b(!0,1,!0)[0]+" ["+D+"]");break;case "E":break a;default:g+="?"+r;break a}f||1!==+k.length||"void"!==k[0]||(k=[]);return c?(g&&k.push(g+"?"),k):g+("("+k.join(", ")+")")}var c=!!e.___cxa_demangle;if(c)try{var d=xa(a.length);sa(a.substr(1),d);var f=xa(4),g=e.___cxa_demangle(d,0,0,f);if(0===ta(f)&&g)return y(g)}catch(k){}finally{d&&Ea(d),f&&Ea(f),g&&Ea(g)}var h=3,u={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},+p=[],t=!0,d=a;try{if("Object._main"==a||"_main"==a)return"main()";"number"===typeof a&&(a=y(a));if("_"!==a[0]||"_"!==a[1]||"Z"!==a[2])return a;switch(a[3]){case "n":return"operator new()";case "d":return"operator delete()"}d=b()}catch(r){d+="?"}0<=d.indexOf("?")&&!c&&n.Q("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return d}+function Fa(){return Ga().replace(/__Z[\w\d_]+/g,function(a){var b=Da(a);return a===b?a:a+" ["+b+"]"})}function Ga(){var a=Error();if(!a.stack){try{throw Error(0);}catch(b){a=b}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}function Ha(){var a=q;0<a%4096&&(a+=4096-a%4096);return a}for(var x,E,ua,Ia,z,Ja,va,wa,Ka=0,la=0,La=0,m=0,Ma=0,Oa=0,q=0,Pa=e.TOTAL_STACK||5242880,ma=e.TOTAL_MEMORY||16777216,G=65536;G<ma||G<2*Pa;)G=16777216>G?2*G:G+16777216;G!==ma&&(ma=G);+assert("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var buffer;buffer=new ArrayBuffer(ma);x=new Int8Array(buffer);ua=new Int16Array(buffer);z=new Int32Array(buffer);E=new Uint8Array(buffer);Ia=new Uint16Array(buffer);Ja=new Uint32Array(buffer);va=new Float32Array(buffer);wa=new Float64Array(buffer);z[0]=255;assert(255===E[0]&&0===E[3],"Typed arrays 2 must be run on a little-endian system");+e.HEAP=void 0;e.buffer=buffer;e.HEAP8=x;e.HEAP16=ua;e.HEAP32=z;e.HEAPU8=E;e.HEAPU16=Ia;e.HEAPU32=Ja;e.HEAPF32=va;e.HEAPF64=wa;function Qa(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.Va;"number"===typeof c?void 0===b.aa?n.N("v",c):n.N("vi",c,[b.aa]):c(void 0===b.aa?null:b.aa)}}}var Ra=[],Sa=[],Ta=[],H=[],Ua=[],Va=!1;function Wa(){var a=e.preRun.shift();Ra.unshift(a)}+function Xa(a,b){for(var c=0,d=0;d<a.length;++d){var f=a.charCodeAt(d);55296<=f&&57343>=f&&(f=65536+((f&1023)<<10)|a.charCodeAt(++d)&1023);127>=f?++c:c=2047>=f?c+2:65535>=f?c+3:2097151>=f?c+4:67108863>=f?c+5:c+6}c=Array(c+1);var g=c.length,d=0;if(0<g){for(var f=d,g=d+g-1,k=0;k<a.length;++k){var h=a.charCodeAt(k);55296<=h&&57343>=h&&(h=65536+((h&1023)<<10)|a.charCodeAt(++k)&1023);if(127>=h){if(d>=g)break;c[d++]=h}else{if(2047>=h){if(d+1>=g)break;c[d++]=192|h>>6}else{if(65535>=h){if(d+2>=g)break;c[d++]=+224|h>>12}else{if(2097151>=h){if(d+3>=g)break;c[d++]=240|h>>18}else{if(67108863>=h){if(d+4>=g)break;c[d++]=248|h>>24}else{if(d+5>=g)break;c[d++]=252|h>>30;c[d++]=128|h>>24&63}c[d++]=128|h>>18&63}c[d++]=128|h>>12&63}c[d++]=128|h>>6&63}c[d++]=128|h&63}}c[d]=0;d=d-f}else d=0;b&&(c.length=d);return c}function sa(a,b){for(var c=Xa(a,void 0),d=0;d<c.length;)x[b+d>>0]=c[d],d+=1}+Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16)*d+c*(b>>>16)<<16)|0});Math.Cd=Math.imul;Math.clz32||(Math.clz32=function(a){a=a>>>0;for(var b=0;32>b;b++)if(a&1<<31-b)return b;return 32});Math.td=Math.clz32;var ya=Math.abs,Ya=Math.cos,Za=Math.sin,$a=Math.tan,ab=Math.acos,bb=Math.atan,cb=Math.atan2,db=Math.exp,eb=Math.sqrt,Ba=Math.ceil,Aa=Math.floor,fb=Math.pow,za=Math.min;e.preloadedImages={};e.preloadedAudios={};Ka=8;la=Ka+175728;Sa.push();+B([0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,32,193,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,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,+0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,32,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,2,16,0,0,0,0,0,0,0,0,0,0,0,0,16,64,232,174,0,0,8,0,0,0,1,0,0,0,0,0,0,0,2,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,150,64,0,0,0,0,0,128,150,64,4,144,195,0,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,32,3,2,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,66,64,0,0,0,0,0,0,66,64,0,0,0,0,0,32,131,64,0,0,0,0,0,192,136,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,64,0,0,0,0,0,0,66,64,0,0,0,0,0,32,131,64,0,0,0,0,0,192,136,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,176,193,0,0,0,0,0,0,0,0,0,0,0,16,64,180,181,0,0,147,0,0,0,1,0,0,0,0,0,0,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,16,0,2,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,0,176,193,0,0,0,0,0,0,0,0,0,0,0,0,0,172,185,0,0,16,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,64,0,0,0,0,0,0,88,64,64,32,62,3,0,0,0,0,0,0,0,0,0,0,16,64,180,186,+0,0,122,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,64,0,0,0,0,0,0,82,64],"i8",4,n.q);+B([1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,240,63,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,2,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,4,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,51,51,51,51,51,51,243,63,5,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,154,153,153,153,153,153,233,63,6,0,0,0,0,0,0,+0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,240,63,7,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,224,63,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,51,51,51,51,51,211,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,4,0,0,0,0,0,0,0,0,0,0,0,0,128,70,64,0,0,0,0,0,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,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154,153,153,153,153,153,217,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,51,51,51,51,51,227,63,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123,+20,174,71,225,122,228,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,4,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,1,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,26,176,216,0,0,1,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,3,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,0,0,0,0,0,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,4,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,154,153,153,153,153,153,217,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,128,102,64,123,20,174,71,225,122,228,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,128,70,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,8,0,0,0,0,0,0,0,1,0,0,0,1,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,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,+0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,+1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,4,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,191,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,+0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,+63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,37,117,2,154,8,27,218,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,44,212,154,230,29,167,234,63,106,222,113,138,142,228,232,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,93,220,70,3,120,11,226,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,208,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,+63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,93,220,70,3,120,11,226,63,93,220,70,3,120,11,226,63,93,220,70,3,120,11,226,63,13,113,172,139,219,104,220,63,100,93,220,70,3,120,237,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,210,111,95,7,206,25,231,63,120,11,36,40,126,140,227,63,181,21,251,203,238,201,225,63,210,111,95,7,206,25,231,63,210,111,95,7,206,+25,231,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,210,111,95,7,206,25,231,63,120,11,36,40,126,140,227,63,196,66,173,105,222,113,236,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,181,21,251,203,238,201,225,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,181,21,251,203,238,201,225,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,134,56,214,197,109,52,238,63,210,111,95,7,206,25,231,63,210,111,95,7,206,25,231,63,120,11,36,40,126,+140,227,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,166,10,70,37,117,2,222,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,106,222,113,138,142,228,232,63,0,0,0,+0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,13,113,172,139,219,104,220,63,244,108,86,125,174,182,222,63,17,54,60,189,82,150,201,63,244,108,86,125,174,182,222,63,59,1,77,132,13,79,225,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,+0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,+63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,62,232,217,172,250,92,197,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,130,115,70,148,246,6,199,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,208,63,0,0,+0,0,0,0,208,63,7,240,22,72,80,252,220,63,162,180,55,248,194,100,214,63,88,168,53,205,59,78,213,63,13,113,172,139,219,104,220,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,208,63,13,113,172,139,219,104,220,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,+0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,208,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,196,66,+173,105,222,113,236,63,0,0,0,0,0,0,208,63,127,217,61,121,88,168,209,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,196,66,173,105,222,113,236,63,19,242,65,207,102,213,211,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,16,122,54,171,62,87,229,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,+63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,0,0,0,0,0,0,208,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,+27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,+63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,+97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,+218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,+227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,+124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,+81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,+50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,+27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,+63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,+97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,+218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,+227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,124,97,50,227,63,81,218,27,+124,97,50,227,63,81,218,27,124,97,50,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,+209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,+188,227,20,29,201,209,63,244,108,86,125,174,182,214,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,196,66,173,105,222,113,236,63,16,122,54,171,62,87,229,63,245,219,215,129,115,70,204,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,136,133,90,211,188,227,216,63,1,77,132,13,79,175,226,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,+238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,1,77,132,13,79,175,226,63,1,77,132,13,79,175,226,63,1,77,132,13,79,175,226,63,181,21,251,203,238,201,225,63,204,93,75,200,7,61,240,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,210,111,95,7,206,25,231,63,210,+111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,106,222,113,138,142,228,232,63,210,111,95,7,206,25,231,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,224,63,16,122,54,171,62,87,229,63,181,21,251,203,238,201,225,63,44,212,154,230,29,167,234,63,210,111,95,7,206,25,231,63,106,222,113,138,142,228,232,63,16,122,54,171,62,87,229,63,106,222,113,138,142,228,232,63,210,111,95,7,206,25,231,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,210,111,95,7,206,25,231,63,16,122,+54,171,62,87,229,63,134,56,214,197,109,52,238,63,16,122,54,171,62,87,229,63,16,122,54,171,62,87,229,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,166,10,70,37,117,2,222,63,181,21,251,203,238,201,225,63,72,191,125,29,56,103,204,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,224,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,181,+21,251,203,238,201,225,63,72,191,125,29,56,103,204,63,72,191,125,29,56,103,204,63,0,0,0,0,0,0,224,63,72,191,125,29,56,103,204,63,44,212,154,230,29,167,234,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,224,63,210,111,95,7,206,25,231,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,2,154,8,27,158,+94,213,63,224,190,14,156,51,162,208,63,2,154,8,27,158,94,213,63,1,77,132,13,79,175,226,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,+227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,+201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,62,232,217,172,250,92,197,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,29,56,103,68,105,111,200,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,224,63,0,0,0,0,0,0,224,63,211,188,227,20,29,201,+209,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,181,21,251,203,238,201,225,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,231,29,167,232,72,46,225,63,162,180,55,248,194,100,214,63,72,191,125,29,56,103,204,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,181,21,251,203,238,201,225,63,0,0,0,0,0,0,240,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,+88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,211,188,227,20,29,201,209,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,88,168,53,205,59,78,213,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,+20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,0,0,0,0,0,0,240,63,211,188,227,20,29,201,209,63,234,149,178,12,113,172,215,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,+211,188,227,20,29,201,209,63,181,21,251,203,238,201,225,63,106,222,113,138,142,228,232,63,0,0,0,0,0,0,240,63,152,221,147,135,133,90,215,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,196,66,173,105,222,113,236,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,72,191,125,29,+56,103,204,63,120,11,36,40,126,140,227,63,134,56,214,197,109,52,238,63,120,11,36,40,126,140,227,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,211,188,227,20,29,201,209,63,81,160,79,228,73,210,14,64,180,200,118,190,159,58,53,192,58,34,223,165,212,37,213,191,243,130,62,71,154,46,138,63,159,229,121,112,119,214,249,191,126,253,16,27,44,156,230,63,150,236,216,8,196,235,204,63,205,206,162,119,42,224,208,63,176,227,191,64,16,32,237,191,173,161,212,94,68,219,216,+63,59,161,124,230,81,150,118,63,211,110,112,249,122,132,123,63,129,204,206,162,119,42,228,191,209,173,215,244,160,160,200,63,106,223,55,25,176,63,132,63,190,202,144,25,94,255,132,63,28,150,6,126,84,195,196,191,165,73,41,232,246,226,35,64,169,217,3,173,192,144,193,63,8,196,144,65,147,105,137,63,250,68,158,36,93,51,208,191,1,240,153,54,45,194,94,63,13,156,125,47,207,148,151,63,137,181,248,20,0,227,137,63,229,169,88,70,52,203,177,191,143,0,201,207,161,103,166,191,92,181,198,251,204,180,136,63,77,164,+143,84,58,179,144,63,230,199,4,161,97,214,160,191,199,105,103,28,19,247,130,191,42,127,107,229,45,112,92,191,228,87,98,84,8,154,117,63,209,241,135,85,114,4,183,63,149,212,9,104,34,60,51,192,100,35,16,175,235,119,16,192,167,33,170,240,103,120,199,63,218,255,0,107,213,174,193,63,78,40,68,192,33,84,247,191,170,72,133,177,133,32,245,63,157,104,87,33,229,39,246,63,77,46,198,192,58,142,205,63,89,107,40,181,23,209,220,191,3,63,170,97,191,39,204,63,166,71,83,61,153,127,218,63,182,129,59,80,167,60,174,63,+81,76,222,0,51,223,185,191,245,118,149,255,218,11,166,63,212,165,53,188,15,246,148,63,31,173,32,188,44,220,144,63,40,44,241,128,178,201,35,64,35,90,225,76,2,138,183,63,72,163,101,81,150,41,127,63,187,180,134,247,193,158,147,63,23,168,123,83,71,125,160,191,33,43,174,224,109,148,139,63,51,115,220,132,214,30,181,191,160,120,132,137,245,252,143,63,105,53,36,238,177,244,145,191,184,205,51,122,94,191,106,63,146,62,173,162,63,52,205,191,126,176,231,198,79,62,152,191,7,35,155,80,45,199,164,63,62,24,194,123,+88,185,145,191,45,124,125,173,75,141,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,0,0,0,64,251,33,249,63,0,0,0,0,45,68,116,62,0,0,0,128,152,70,248,60,0,0,0,96,81,204,120,59,0,0,0,128,131,27,240,57,0,0,0,64,32,37,122,56,0,0,0,128,34,130,227,54,0,0,0,0,29,243,105,53,0,0,0,0,176,126,1,0,4,169,0,0,3,0,0,0,240,170,0,0,3,0,0,0,192,174,0,0,3,0,0,0,64,175,0,0,3,0,0,0,236,176,0,0,3,0,0,0,112,177,0,0,3,0,0,0,140,181,0,+0,3,0,0,0,124,173,0,0,3,0,0,0,168,184,0,0,3,0,0,0,116,185,0,0,3,0,0,0,68,189,0,0,3,0,0,0,140,186,0,0,0,0,0,0,180,170,0,0,0,0,0,0,152,174,0,0,0,0,0,0,24,175,0,0,0,0,0,0,196,176,0,0,0,0,0,0,72,177,0,0,0,0,0,0,100,181,0,0,0,0,0,0,24,173,0,0,0,0,0,0,128,184,0,0,0,0,0,0,76,185,0,0,0,0,0,0,28,189,0,0,0,0,0,0,100,186,0,0,4,0,0,0,144,190,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2],"i8",4,n.q+33336);+B([1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,86,225,1,0,1,0,0,0,196,169,0,0,8,0,0,0,4,0,0,0,44,131,1,0,1,0,0,0,60,170,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,190,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,198,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,1,0,0,0,205,126,1,0,1,0,0,0,0,0,0,0,72,0,0,0,2,0,+0,0,215,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,3,0,0,0,225,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,4,0,0,0,239,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,5,0,0,0,249,126,1,0,1,0,0,0,0,0,0,0,128,0,0,0,6,0,0,0,6,127,1,0,1,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,172,0,0,36,172,0,0,52,172,0,0,68,172,0,0,84,172,0,0,100,172,0,0,116,172,0,0,132,172,0,0,36,172,0,0,36,172,0,0,100,172,0,0,100,172,0,0,0,0,0,0,31,0,0,0,63,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,204,127,1,0,1,0,0,0,160,172,0,0,24,1,0,0,1,0,0,0,209,127,1,0,1,0,0,0,160,172,0,0,24,1,0,0,2,0,0,0,215,127,1,0,1,0,0,0,160,172,0,0,24,1,0,0,3,0,0,0,224,127,1,0,1,0,0,0,160,172,0,0,24,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,127,1,0,1,0,0,0,0,0,0,0,112,1,0,0,1,0,0,0,244,127,1,0,1,0,0,0,0,0,0,0,112,1,0,0,2,0,0,0,255,127,1,0,1,0,0,0,0,0,0,0,56,1,0,0,3,0,0,0,13,128,1,0,1,0,0,0,0,0,0,0,56,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,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,12,0,0,0,13,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,1,0,0,0,6,0,0,0,2,0,0,0,2,0,0,0,7,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,49,131,1,0,1,0,0,0,32,174,0,0,168,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,131,1,0,1,0,0,0,+0,0,0,0,200,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,115,2,0,7,93,2,0,152,94,2,0,216,100,2,0,207,107,2,0,14,112,2,0,142,115,2,0,159,115,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,117,131,1,0,1,0,0,0,204,175,0,0,0,2,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,121,131,1,0,1,0,0,0,0,0,0,0,32,2,0,0,2,0,0,0,131,131,1,0,1,0,0,0,0,0,0,0,88,2,0,0,0,0,0,0,140,131,1,0,1,0,0,0,0,0,0,0,88,2,0,0,3,0,0,0,149,131,1,0,1,0,0,0,0,0,0,0,88,2,0,0,0,0,0,0,159,131,1,0,1,0,0,0,0,0,0,0,32,2,0,0,3,0,0,0,+171,131,1,0,1,0,0,0,0,0,0,0,32,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,9,0,0,0,3,0,0,0,3,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,236,132,1,0,255,255,255,255,76,176,0,0,144,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,239,132,1,0,255,255,255,255,0,0,0,0,176,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,115,2,0,7,93,2,0,216,100,2,0,152,94,2,0,14,112,2,0,207,107,2,0,159,115,2,0,142,115,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,159,234,1,0,1,0,0,0,192,177,0,0,232,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+1,194,1,0,1,0,0,0,0,0,0,0,8,3,0,0,1,0,0,0,165,134,1,0,1,0,0,0,0,0,0,0,8,3,0,0,2,0,0,0,250,193,1,0,1,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,12,0,0,0,5,0,0,0,4,0,0,0,13,0,0,0,5,0,0,0,3,0,0,0,0,0,0,0,164,138,1,0,178,138,1,0,200,138,1,0,41,129,2,0,214,138,1,0,229,138,1,0,234,138,+1,0,8,139,1,0,41,129,2,0,26,139,1,0,74,139,1,0,41,129,2,0,104,139,1,0,144,139,1,0,158,139,1,0,205,139,1,0,1,140,1,0,18,140,1,0,55,140,1,0,90,140,1,0,96,140,1,0,124,140,1,0,153,140,1,0,180,140,1,0,213,140,1,0,239,140,1,0,17,141,1,0,48,141,1,0,86,141,1,0,110,141,1,0,142,141,1,0,171,141,1,0,207,141,1,0,219,141,1,0,41,129,2,0,230,141,1,0,12,142,1,0,48,142,1,0,86,142,1,0,41,129,2,0,140,142,1,0,164,142,1,0,177,142,1,0,224,142,1,0,219,141,1,0,41,129,2,0,237,142,1,0,246,142,1,0,23,143,1,0,82,143,1,0,157,+143,1,0,241,143,1,0,19,144,1,0,40,144,1,0,63,144,1,0,85,144,1,0,109,144,1,0,41,129,2,0,131,144,1,0,158,144,1,0,194,144,1,0,230,144,1,0,11,145,1,0,41,129,2,0,44,145,1,0,70,145,1,0,88,145,1,0,101,145,1,0,114,145,1,0,134,145,1,0,149,145,1,0,157,145,1,0,178,145,1,0,192,145,1,0,254,145,1,0,9,146,1,0,219,141,1,0,41,129,2,0,15,146,1,0,27,146,1,0,42,146,1,0,90,140,1,0,41,129,2,0,61,146,1,0,102,146,1,0,132,146,1,0,148,146,1,0,165,146,1,0,172,146,1,0,187,146,1,0,203,146,1,0,15,147,1,0,22,147,1,0,90,140,1,0,+41,129,2,0,32,147,1,0,76,147,1,0,87,147,1,0,96,147,1,0,105,147,1,0,122,147,1,0,139,147,1,0,159,147,1,0,219,141,1,0,41,129,2,0,171,147,1,0,187,147,1,0,201,147,1,0,215,147,1,0,228,147,1,0,241,147,1,0,7,148,1,0,16,148,1,0,31,148,1,0,44,148,1,0,61,148,1,0,219,141,1,0,41,129,2,0,72,148,1,0,103,148,1,0,41,129,2,0,121,148,1,0,136,148,1,0,184,148,1,0,194,148,1,0,207,148,1,0,220,148,1,0,233,148,1,0,246,148,1,0,249,148,1,0,41,129,2,0,253,148,1,0,41,129,2,0,32,149,1,0,81,149,1,0,128,149,1,0,151,149,1,0,178,+149,1,0,205,149,1,0,219,141,1,0,41,129,2,0,233,149,1,0,41,129,2,0,17,150,1,0,29,150,1,0,48,150,1,0,67,150,1,0,88,150,1,0,109,150,1,0,113,150,1,0,90,140,1,0,41,129,2,0,125,150,1,0,41,129,2,0,141,150,1,0,155,150,1,0,167,150,1,0,180,150,1,0,212,150,1,0,234,150,1,0,41,129,2,0,254,150,1,0,71,151,1,0,141,151,1,0,189,151,1,0,240,151,1,0,247,151,1,0,30,152,1,0,69,152,1,0,41,129,2,0,74,152,1,0,0,0,0,0,35,0,0,0,0,0,0,0,36,0,0,0,37,0,0,0,6,0,0,0,38,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,42,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,4,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,15,0,0,0,7,0,0,0,5,0,0,0,16,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,162,234,1,0,1,0,0,0,236,180,0,0,120,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,194,1,0,1,0,0,0,0,0,0,0,152,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,92,2,0,41,92,2,0,249,160,1,0,110,92,2,0,169,92,2,0,203,92,2,0,209,92,2,0,234,115,2,0,248,92,2,0,7,93,2,0,36,93,2,0,47,93,2,0,81,93,2,0,135,93,2,0,189,93,2,0,248,93,2,0,46,94,+2,0,80,94,2,0,95,94,2,0,144,94,2,0,152,94,2,0,190,152,1,0,199,152,1,0,181,94,2,0,208,152,1,0,255,94,2,0,217,152,1,0,9,95,2,0,226,152,1,0,19,95,2,0,98,95,2,0,157,95,2,0,238,152,1,0,216,95,2,0,227,95,2,0,40,96,2,0,54,96,2,0,128,96,2,0,142,96,2,0,156,96,2,0,167,96,2,0,216,96,2,0,24,97,2,0,32,97,2,0,40,97,2,0,99,97,2,0,153,97,2,0,165,97,2,0,254,160,1,0,177,97,2,0,187,97,2,0,198,97,2,0,227,97,2,0,25,98,2,0,216,100,2,0,250,100,2,0,6,101,2,0,197,103,2,0,246,103,2,0,34,104,2,0,88,104,2,0,101,104,2,0,135,+104,2,0,169,104,2,0,178,104,2,0,252,104,2,0,6,105,2,0,75,105,2,0,129,105,2,0,140,105,2,0,17,106,2,0,38,106,2,0,246,152,1,0,48,106,2,0,58,106,2,0,112,106,2,0,176,106,2,0,190,106,2,0,18,107,2,0,33,107,2,0,48,107,2,0,127,107,2,0,6,161,1,0,191,107,2,0,201,107,2,0,207,107,2,0,251,107,2,0,34,108,2,0,51,108,2,0,62,108,2,0,131,108,2,0,200,108,2,0,215,108,2,0,231,108,2,0,249,108,2,0,9,109,2,0,25,109,2,0,38,109,2,0,48,109,2,0,102,109,2,0,111,109,2,0,175,109,2,0,194,109,2,0,11,161,1,0,202,109,2,0,0,110,2,0,+39,110,2,0,93,110,2,0,132,110,2,0,146,110,2,0,200,110,2,0,18,111,2,0,92,111,2,0,103,111,2,0,157,111,2,0,162,111,2,0,191,111,2,0,220,111,2,0,231,111,2,0,14,112,2,0,38,112,2,0,92,112,2,0,146,112,2,0,158,112,2,0,197,112,2,0,208,112,2,0,1,113,2,0,50,113,2,0,54,173,1,0,89,113,2,0,133,113,2,0,187,113,2,0,241,113,2,0,251,113,2,0,24,114,2,0,88,114,2,0,142,114,2,0,17,161,1,0,166,114,2,0,210,114,2,0,249,114,2,0,47,115,2,0,108,115,2,0,142,115,2,0,148,115,2,0,159,115,2,0,198,115,2,0,0,0,0,0,0,0,0,0,48,0,0,0,+0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,18,0,0,0,8,0,0,0,6,0,0,0,19,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,138,159,1,0,1,0,0,0,8,184,0,0,208,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,159,1,0,1,0,0,0,0,0,0,0,240,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,53,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,55,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,21,0,0,0,9,0,0,0,7,0,0,0,22,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,237,160,1,0,1,0,0,0,212,184,0,0,40,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,160,1,0,1,0,0,0,0,0,0,0,72,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,249,160,1,0,234,115,2,0,7,93,2,0,254,160,1,0,25,98,2,0,216,100,2,0,6,161,1,0,251,107,2,0,175,109,2,0,11,161,1,0,231,111,2,0,14,112,+2,0,54,173,1,0,17,161,1,0,142,115,2,0,159,115,2,0,56,0,0,0,0,0,0,0,57,0,0,0,58,0,0,0,10,0,0,0,59,0,0,0,60,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,24,0,0,0,11,0,0,0,8,0,0,0,25,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,192,171,1,0,1,0,0,0,236,185,0,0,128,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,196,171,1,0,1,0,0,0,0,0,0,0,160,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,92,2,0,204,171,+1,0,234,115,2,0,7,93,2,0,36,93,2,0,215,171,1,0,221,171,1,0,232,171,1,0,239,171,1,0,47,93,2,0,135,93,2,0,247,171,1,0,253,171,1,0,8,172,1,0,46,94,2,0,80,94,2,0,152,94,2,0,15,172,1,0,255,94,2,0,19,95,2,0,157,95,2,0,25,172,1,0,40,96,2,0,54,96,2,0,128,96,2,0,36,172,1,0,142,96,2,0,44,172,1,0,53,172,1,0,67,172,1,0,77,172,1,0,99,97,2,0,86,172,1,0,165,97,2,0,198,97,2,0,227,97,2,0,92,172,1,0,42,98,2,0,85,98,2,0,126,98,2,0,161,98,2,0,202,98,2,0,237,98,2,0,22,99,2,0,57,99,2,0,98,99,2,0,133,99,2,0,174,99,2,0,+209,99,2,0,250,99,2,0,29,100,2,0,70,100,2,0,105,100,2,0,146,100,2,0,181,100,2,0,216,100,2,0,99,172,1,0,250,100,2,0,111,172,1,0,34,104,2,0,135,104,2,0,75,105,2,0,124,172,1,0,48,107,2,0,137,172,1,0,191,107,2,0,207,107,2,0,147,172,1,0,251,107,2,0,34,108,2,0,51,108,2,0,162,172,1,0,180,172,1,0,62,108,2,0,200,108,2,0,215,108,2,0,231,108,2,0,249,108,2,0,9,109,2,0,196,172,1,0,207,172,1,0,218,172,1,0,25,109,2,0,175,109,2,0,180,109,2,0,223,172,1,0,232,172,1,0,241,172,1,0,1,173,1,0,8,173,1,0,0,110,2,0,39,110,+2,0,93,110,2,0,146,110,2,0,162,111,2,0,191,111,2,0,16,173,1,0,14,112,2,0,23,173,1,0,158,112,2,0,32,173,1,0,208,112,2,0,40,173,1,0,50,113,2,0,54,173,1,0,89,113,2,0,133,113,2,0,61,173,1,0,24,114,2,0,88,114,2,0,71,173,1,0,142,114,2,0,166,114,2,0,249,114,2,0,81,173,1,0,95,173,1,0,47,115,2,0,54,115,2,0,108,115,2,0,142,115,2,0,159,115,2,0,198,115,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,0,0,0,69,0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,27,0,0,0,12,0,0,0,9,0,0,0,28,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,199,182,1,0,255,255,255,255,164,188,0,0,216,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,203,182,1,0,255,255,255,255,0,0,0,0,248,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,66,0,0,4,254,1,0,65,73,0,0,222,253,1,0,65,82,0,0,177,253,1,0,65,88,0,0,25,254,1,0,66,32,0,0,85,0,2,0,66,73,0,0,102,0,2,0,67,66,0,0,158,254,1,0,67,79,0,0,140,254,1,0,67,88,0,0,171,254,1,0,+72,32,0,0,207,254,1,0,72,66,0,0,217,254,1,0,72,73,0,0,101,255,1,0,72,88,0,0,232,254,1,0,72,98,0,0,25,255,1,0,72,105,0,0,76,255,1,0,72,114,0,0,254,254,1,0,72,120,0,0,47,255,1,0,73,32,0,0,119,0,2,0,75,66,0,0,48,254,1,0,75,73,0,0,120,254,1,0,75,82,0,0,100,254,1,0,75,88,0,0,81,254,1,0,78,66,0,0,119,255,1,0,78,73,0,0,190,255,1,0,78,82,0,0,214,255,1,0,78,88,0,0,162,255,1,0,80,65,0,0,55,0,2,0,80,66,0,0,243,255,1,0,80,73,0,0,39,0,2,0,80,88,0,0,19,0,2,0,82,32,0,0,24,2,2,0,83,32,0,0,70,0,2,0,90,68,0,0,180,+0,2,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,15,0,0,0,122,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,16,0,0,0,130,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,17,0,0,0,138,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,17,0,0,0,147,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,17,0,0,0,155,193,1,0,1,0,0,0,120,194,0,0,0,0,0,0,19,0,0,0,163,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,20,0,0,0,171,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,21,0,0,0,179,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,21,0,0,0,188,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,21,0,0,+0,196,193,1,0,1,0,0,0,124,194,0,0,0,0,0,0,22,0,0,0,204,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,23,0,0,0,213,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,24,0,0,0,222,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,24,0,0,0,232,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,24,0,0,0,241,193,1,0,1,0,0,0,128,194,0,0,0,0,0,0,25,0,0,0,250,193,1,0,1,0,0,0,132,194,0,0,0,0,0,0,25,0,0,0,1,194,1,0,1,0,0,0,132,194,0,0,0,0,0,0,26,0,0,0,7,194,1,0,1,0,0,0,136,194,0,0,0,0,0,0,10,0,0,0,16,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,11,0,0,0,24,194,1,0,1,0,+0,0,140,194,0,0,0,0,0,0,12,0,0,0,32,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,12,0,0,0,41,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,12,0,0,0,49,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,14,0,0,0,57,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,14,0,0,0,64,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,13,0,0,0,72,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,5,0,0,0,80,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,6,0,0,0,88,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,7,0,0,0,96,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,7,0,0,0,105,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,+7,0,0,0,113,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,9,0,0,0,121,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,9,0,0,0,128,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,8,0,0,0,136,194,1,0,1,0,0,0,140,194,0,0,0,0,0,0,0,0,0,0,144,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,1,0,0,0,153,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,2,0,0,0,162,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,2,0,0,0,172,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,2,0,0,0,181,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,4,0,0,0,190,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,4,0,0,0,198,194,1,0,1,+0,0,0,144,194,0,0,0,0,0,0,3,0,0,0,207,194,1,0,1,0,0,0,144,194,0,0,0,0,0,0,18,0,0,0,216,194,1,0,1,0,0,0,120,194,0,0,0,0,0,0,27,0,0,0,224,194,1,0,1,0,0,0,148,194,0,0,0,0,0,0,28,0,0,0,232,194,1,0,1,0,0,0,148,194,0,0,0,0,0,0,29,0,0,0,240,194,1,0,1,0,0,0,148,194,0,0,0,0,0,0,29,0,0,0,249,194,1,0,1,0,0,0,148,194,0,0,0,0,0,0,29,0,0,0,1,195,1,0,1,0,0,0,148,194,0,0,0,0,0,0,30,0,0,0,9,195,1,0,1,0,0,0,152,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,+0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,116,198,1,0,164,194,0,0,1,0,0,0,192,194,0,0,0,0,0,0,0,0,0,0,72,0,0,0,73,0,0,0,1,0,0,0,0,0,0,0,86,225,1,0,0,0,0,0,180,194,0,0,188,194,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,24,1,0,0,48,1,0,0,176,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,31,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,205,206,1,0,210,206,1,0,214,206,1,0,221,206,1,0,225,206,1,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,64,0,0,0,104,196,0,0,136,196,0,0,144,196,0,0,2,0,0,0,4,0,0,0,124,196,0,0,2,0,0,0,4,0,0,0,2,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,214,211,1,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,0,0,0,11,0,0,0,8,0,0,0,10,0,0,0,56,198,0,0,188,197,0,0,32,198,0,0,0,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,22,0,0,0,6,0,0,0,74,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,+3,0,0,0,9,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,11,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,35,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,255,255,255,255,0,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,2,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,4,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,10,+0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,1,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,19,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,1,0,0,0,30,0,0,0,1,0,0,0,1,0,0,0,19,0,0,0,1,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,19,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,+19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,39,0,0,0,40,0,0,0,41,0,0,0,19,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,+0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,46,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,47,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,+19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,48,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,1,0,0,0,5,0,0,0,1,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,+6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,218,219,1,0,227,219,1,0,234,219,1,0,0,0,0,0,0,0,0,0,248,219,1,0,254,+13,2,0,51,15,2,0,255,219,1,0,6,220,1,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,0,0,0,0,0,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,164,221,1,0,8,0,0,0,3,0,0,0,173,221,1,0,177,221,1,0,11,0,0,0,6,0,0,0,159,234,1,0,189,221,1,0,2,0,0,0,1,0,0,0,192,221,1,0,196,221,1,0,4,0,0,0,2,0,0,0,201,221,1,0,205,221,1,0,4,0,0,0,4,0,0,0,210,221,1,0,215,221,1,0,5,0,0,0,5,0,0,0,221,221,1,0,225,221,1,0,4,0,0,0,7,0,0,0,230,221,1,0,234,221,1,0,5,0,0,0,9,0,0,0,240,221,+1,0,244,221,1,0,4,0,0,0,10,0,0,0,249,221,1,0,254,221,1,0,4,0,0,0,12,0,0,0,3,222,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,231,1,0,0,0,0,0,1,0,0,+0,36,231,1,0,1,0,0,0,0,0,0,0,193,13,2,0,1,0,0,0,1,0,0,0,189,109,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,225,1,0,49,0,0,0,0,0,0,0,0,0,0,0,84,3,2,0,16,0,0,0,68,122,2,0,128,0,0,0,120,225,1,0,64,0,0,0,129,248,1,0,16,0,0,0,122,225,1,0,64,0,0,0,0,0,0,0,0,0,0,0,70,225,1,0,1,0,0,0,77,225,1,0,2,0,0,0,82,225,1,0,3,0,0,0,133,248,1,0,4,0,0,0,192,248,1,0,5,0,0,0,86,225,1,0,6,0,0,0,189,109,2,0,8,0,0,0,90,225,1,0,33,0,0,0,94,225,1,0,34,0,0,0,98,225,1,0,34,0,0,0,102,225,1,0,1,0,0,0,107,225,1,0,7,0,0,0,113,+225,1,0,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,230,1,0,15,230,1,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,156,234,1,0,159,234,1,0,162,234,1],"i8",4,n.q+43580);+B([1,0,0,0,2,0,0,0,255,255,255,255,127,234,1,0,133,234,1,0,189,109,2,0,0,0,0,0,100,0,0,0,101,0,0,0,102,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,39,0,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,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,133,248,1,0,0,216,0,0,216,131,0,0,0,0,0,0,137,248,1,0,0,216,0,0,8,132,0,0,0,0,0,0,16,2,2,0,0,216,0,0,56,+132,0,0,0,0,0,0,145,248,1,0,0,216,0,0,56,132,0,0,0,0,0,0,150,248,1,0,0,216,0,0,104,132,0,0,0,0,0,0,157,248,1,0,24,216,0,0,104,132,0,0,0,0,0,0,163,248,1,0,0,216,0,0,152,132,0,0,0,0,0,0,167,248,1,0,0,216,0,0,200,132,0,0,0,0,0,0,189,109,2,0,0,216,0,0,248,132,0,0,0,0,0,0,176,248,1,0,0,216,0,0,248,132,0,0,0,0,0,0,186,248,1,0,0,216,0,0,40,133,0,0,0,0,0,0,192,248,1,0,0,216,0,0,88,133,0,0,0,0,0,0,200,248,1,0,0,216,0,0,136,133,0,0,0,0,0,0,210,248,1,0,0,216,0,0,184,133,0,0,0,0,0,0,224,248,1,0,0,216,0,0,232,+133,0,0,0,0,0,0,230,248,1,0,0,216,0,0,24,134,0,0,0,0,0,0,239,248,1,0,0,216,0,0,72,134,0,0,0,0,0,0,247,248,1,0,0,216,0,0,120,134,0,0,0,0,0,0,0,249,1,0,0,216,0,0,168,134,0,0,0,0,0,0,8,249,1,0,0,216,0,0,216,134,0,0,0,0,0,0,13,249,1,0,0,216,0,0,8,135,0,0,0,0,0,0,17,249,1,0,0,216,0,0,56,135,0,0,0,0,0,0,24,249,1,0,0,216,0,0,104,135,0,0,0,0,0,0,30,249,1,0,0,216,0,0,152,135,0,0,0,0,0,0,40,249,1,0,48,216,0,0,200,135,0,0,0,0,0,0,49,249,1,0,0,216,0,0,216,131,0,0,0,0,0,0,54,249,1,0,0,216,0,0,216,131,0,0,0,0,+0,0,64,249,1,0,0,216,0,0,248,135,0,0,0,0,0,0,71,249,1,0,0,216,0,0,40,136,0,0,0,0,0,0,84,249,1,0,0,216,0,0,88,136,0,0,0,0,0,0,98,249,1,0,0,216,0,0,136,136,0,0,0,0,0,0,112,249,1,0,0,216,0,0,184,136,0,0,0,0,0,0,124,249,1,0,0,216,0,0,232,136,0,0,0,0,0,0,137,249,1,0,0,216,0,0,24,137,0,0,0,0,0,0,146,249,1,0,0,216,0,0,72,137,0,0,0,0,0,0,156,249,1,0,0,216,0,0,120,137,0,0,0,0,0,0,165,249,1,0,0,216,0,0,168,137,0,0,0,0,0,0,173,249,1,0,0,216,0,0,216,137,0,0,0,0,0,0,181,249,1,0,0,216,0,0,8,138,0,0,0,0,0,0,190,+249,1,0,0,216,0,0,56,138,0,0,0,0,0,0,194,249,1,0,0,216,0,0,104,138,0,0,0,0,0,0,205,249,1,0,0,216,0,0,152,138,0,0,0,0,0,0,209,249,1,0,0,216,0,0,200,138,0,0,0,0,0,0,219,249,1,0,0,216,0,0,248,138,0,0,0,0,0,0,228,249,1,0,0,216,0,0,40,139,0,0,0,0,0,0,236,249,1,0,0,216,0,0,88,139,0,0,0,0,0,0,249,249,1,0,0,216,0,0,136,139,0,0,0,0,0,0,5,250,1,0,0,216,0,0,184,139,0,0,0,0,0,0,16,250,1,0,0,216,0,0,232,139,0,0,0,0,0,0,32,250,1,0,0,216,0,0,24,140,0,0,0,0,0,0,46,250,1,0,0,216,0,0,72,140,0,0,0,0,0,0,61,250,1,0,+0,216,0,0,120,140,0,0,0,0,0,0,71,250,1,0,0,216,0,0,168,140,0,0,0,0,0,0,80,250,1,0,0,216,0,0,216,140,0,0,0,0,0,0,90,250,1,0,0,216,0,0,8,141,0,0,0,0,0,0,100,250,1,0,0,216,0,0,56,141,0,0,0,0,0,0,107,250,1,0,0,216,0,0,104,141,0,0,0,0,0,0,114,250,1,0,0,216,0,0,152,141,0,0,0,0,0,0,124,250,1,0,72,216,0,0,0,0,0,0,0,0,0,0,131,250,1,0,72,216,0,0,0,0,0,0,0,0,0,0,84,248,1,0,96,216,0,0,0,0,0,0,0,0,0,0,139,250,1,0,120,216,0,0,200,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,248,1,0,129,248,1,0,126,122,2,+0,131,248,1,0,0,0,0,0,0,0,0,0,0,0,0,0,75,0,0,0,76,0,0,0,23,0,0,0,4,0,0,0,2,0,0,0,12,0,0,0,77,0,0,0,76,0,0,0,23,0,0,0,5,0,0,0,0,0,0,0,13,0,0,0,75,0,0,0,76,0,0,0,23,0,0,0,4,0,0,0,2,0,0,0,12,0,0,0,78,0,0,0,79,0,0,0,24,0,0,0,6,0,0,0,3,0,0,0,14,0,0,0,80,0,0,0,81,0,0,0,23,0,0,0,7,0,0,0,0,0,0,0,15,0,0,0,75,0,0,0,76,0,0,0,23,0,0,0,8,0,0,0,2,0,0,0,12,0,0,0,16,0,0,0,17,0,0,0,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,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,251,1,0,+148,251,1,0,0,0,0,0,0,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,31,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,38,0,0,0,41,0,0,0,42,0,0,0,43,0,0,0,44,0,0,0,45,0,0,0,46,0,0,0,47,0,0,0,48,0,0,0,51,0,0,0,52,0,0,0,53,0,0,0,54,0,0,0,55,0,0,0,56,0,0,0,57,0,0,0,58,0,0,0,61,0,0,0,62,0,0,0,63,0,0,0,64,0,0,0,65,0,0,0,66,0,0,0,67,0,0,0,68,0,0,0,71,0,0,0,72,0,0,0,73,0,0,0,74,0,0,0,75,0,+0,0,76,0,0,0,77,0,0,0,78,0,0,0,81,0,0,0,82,0,0,0,83,0,0,0,84,0,0,0,85,0,0,0,86,0,0,0,87,0,0,0,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,177,253,1,0,193,253,1,0,206,253,1,0,0,0,0,0,0,0,0,0,4,0,0,0,211,253,1,0,0,0,0,0,0,0,0,0,222,253,1,0,193,253,1,0,206,253,1,0,0,0,0,0,245,253,1,0,5,0,0,0,211,253,1,0,0,0,0,0,253,253,1,0,4,254,1,0,193,253,1,0,20,254,1,0,0,0,0,0,0,0,0,0,6,0,0,0,211,253,1,0,42,13,2,0,0,0,0,0,25,254,1,0,193,253,1,0,20,254,1,0,0,0,0,0,245,253,+1,0,7,0,0,0,211,253,1,0,42,13,2,0,253,253,1,0,48,254,1,0,61,254,1,0,20,254,1,0,0,0,0,0,0,0,0,0,10,0,0,0,75,254,1,0,42,13,2,0,0,0,0,0,81,254,1,0,61,254,1,0,20,254,1,0,0,0,0,0,253,253,1,0,11,0,0,0,75,254,1,0,42,13,2,0,253,253,1,0,100,254,1,0,61,254,1,0,114,254,1,0,0,0,0,0,0,0,0,0,8,0,0,0,75,254,1,0,0,0,0,0,0,0,0,0,120,254,1,0,61,254,1,0,114,254,1,0,0,0,0,0,253,253,1,0,9,0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,140,254,1,0,140,254,1,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,148,254,1,0,0,0,0,0,0,0,0,0,158,254,+1,0,140,254,1,0,42,13,2,0,0,0,0,0,0,0,0,0,14,0,0,0,148,254,1,0,42,13,2,0,0,0,0,0,171,254,1,0,140,254,1,0,42,13,2,0,0,0,0,0,245,253,1,0,15,0,0,0,148,254,1,0,42,13,2,0,253,253,1,0,191,254,1,0,140,254,1,0,0,0,0,0,0,0,0,0,245,253,1,0,13,0,0,0,148,254,1,0,0,0,0,0,253,253,1,0,207,254,1,0,207,254,1,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,211,253,1,0,0,0,0,0,0,0,0,0,217,254,1,0,207,254,1,0,42,13,2,0,0,0,0,0,0,0,0,0,18,0,0,0,211,253,1,0,42,13,2,0,0,0,0,0,232,254,1,0,207,254,1,0,42,13,2,0,0,0,0,0,245,253,1,0,19,+0,0,0,211,253,1,0,42,13,2,0,253,253,1,0,254,254,1,0,207,254,1,0,0,0,0,0,15,255,1,0,0,0,0,0,20,0,0,0,211,253,1,0,0,0,0,0,0,0,0,0,25,255,1,0,207,254,1,0,42,13,2,0,15,255,1,0,0,0,0,0,22,0,0,0,211,253,1,0,42,13,2,0,0,0,0,0,47,255,1,0,207,254,1,0,42,13,2,0,15,255,1,0,245,253,1,0,23,0,0,0,211,253,1,0,42,13,2,0,253,253,1,0,76,255,1,0,207,254,1,0,0,0,0,0,15,255,1,0,245,253,1,0,21,0,0,0,211,253,1,0,0,0,0,0,253,253,1,0,101,255,1,0,207,254,1,0,0,0,0,0,0,0,0,0,245,253,1,0,17,0,0,0,211,253,1,0,0,0,0,0,253,253,+1,0,119,255,1,0,141,255,1,0,42,13,2,0,0,0,0,0,0,0,0,0,26,0,0,0,75,254,1,0,42,13,2,0,0,0,0,0,162,255,1,0,141,255,1,0,42,13,2,0,0,0,0,0,253,253,1,0,27,0,0,0,75,254,1,0,42,13,2,0,253,253,1,0,190,255,1,0,141,255,1,0,0,0,0,0,0,0,0,0,253,253,1,0,25,0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,214,255,1,0,141,255,1,0,237,255,1,0,0,0,0,0,0,0,0,0,24,0,0,0,75,254,1,0,0,0,0,0,0,0,0,0,243,255,1,0,1,0,2,0,42,13,2,0,0,0,0,0,0,0,0,0,30,0,0,0,75,254,1,0,42,13,2,0,0,0,0,0,19,0,2,0,1,0,2,0,42,13,2,0,0,0,0,0,253,253,1,0,31,+0,0,0,75,254,1,0,42,13,2,0,253,253,1,0,39,0,2,0,1,0,2,0,0,0,0,0,0,0,0,0,253,253,1,0,29,0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,55,0,2,0,1,0,2,0,237,255,1,0,0,0,0,0,0,0,0,0,28,0,0,0,75,254,1,0,0,0,0,0,0,0,0,0,70,0,2,0,70,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,77,0,2,0,0,0,0,0,0,0,0,0,85,0,2,0,96,0,2,0,42,13,2,0,0,0,0,0,0,0,0,0,2,0,0,0,75,254,1,0,42,13,2,0,0,0,0,0,102,0,2,0,96,0,2,0,42,13,2,0,0,0,0,0,253,253,1,0,3,0,0,0,75,254,1,0,42,13,2,0,253,253,1,0,119,0,2,0,96,0,2,0,0,0,0,0,0,0,0,0,253,253,1,0,1,+0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,24,2,2,0,96,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,254,1,0,0,0,0,0,0,0,0,0,132,0,2,0,158,0,2,0,173,0,2,0,0,0,0,0,253,253,1,0,33,0,0,0,75,254,1,0,0,0,0,0,253,253,1,0,180,0,2,0,193,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,34,0,0,0,77,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,161,3,2,0,198,0,0,0,167,3,2,0,193,0,0,0,174,3,2,0,194,0,0,0,180,3,+2,0,192,0,0,0,187,3,2,0,145,3,0,0,193,3,2,0,197,0,0,0,199,3,2,0,195,0,0,0,206,3,2,0,196,0,0,0,211,3,2,0,146,3,0,0,216,3,2,0,199,0,0,0,223,3,2,0,167,3,0,0,227,3,2,0,33,32,0,0,234,3,2,0,148,3,0,0,240,3,2,0,208,0,0,0,244,3,2,0,201,0,0,0,251,3,2,0,202,0,0,0,1,4,2,0,200,0,0,0,8,4,2,0,149,3,0,0,16,4,2,0,151,3,0,0,20,4,2,0,203,0,0,0,25,4,2,0,147,3,0,0,31,4,2,0,205,0,0,0,38,4,2,0,206,0,0,0,44,4,2,0,204,0,0,0,51,4,2,0,153,3,0,0,56,4,2,0,207,0,0,0,61,4,2,0,154,3,0,0,67,4,2,0,155,3,0,0,74,4,2,0,156,3,0,0,77,+4,2,0,209,0,0,0,84,4,2,0,157,3,0,0,87,4,2,0,82,1,0,0,93,4,2,0,211,0,0,0,100,4,2,0,212,0,0,0,106,4,2,0,210,0,0,0,113,4,2,0,169,3,0,0,119,4,2,0,159,3,0,0,127,4,2,0,216,0,0,0,134,4,2,0,213,0,0,0,141,4,2,0,214,0,0,0,146,4,2,0,166,3,0,0,150,4,2,0,160,3,0,0,153,4,2,0,51,32,0,0,159,4,2,0,168,3,0,0,163,4,2,0,161,3,0,0,167,4,2,0,96,1,0,0,174,4,2,0,163,3,0,0,180,4,2,0,222,0,0,0,186,4,2,0,164,3,0,0,190,4,2,0,152,3,0,0,196,4,2,0,218,0,0,0,203,4,2,0,219,0,0,0,209,4,2,0,217,0,0,0,216,4,2,0,165,3,0,0,224,4,2,0,+220,0,0,0,229,4,2,0,158,3,0,0,232,4,2,0,221,0,0,0,239,4,2,0,120,1,0,0,244,4,2,0,150,3,0,0,249,4,2,0,225,0,0,0,0,5,2,0,226,0,0,0,6,5,2,0,180,0,0,0,12,5,2,0,230,0,0,0,18,5,2,0,224,0,0,0,25,5,2,0,53,33,0,0,33,5,2,0,177,3,0,0,39,5,2,0,38,0,0,0,43,5,2,0,39,34,0,0,47,5,2,0,32,34,0,0,51,5,2,0,229,0,0,0,57,5,2,0,72,34,0,0,63,5,2,0,227,0,0,0,70,5,2,0,228,0,0,0,75,5,2,0,30,32,0,0,81,5,2,0,178,3,0,0,86,5,2,0,166,0,0,0,93,5,2,0,34,32,0,0,98,5,2,0,41,34,0,0,102,5,2,0,231,0,0,0,109,5,2,0,184,0,0,0,115,5,2,0,162,+0,0,0,120,5,2,0,199,3,0,0,124,5,2,0,198,2,0,0,129,5,2,0,99,38,0,0,135,5,2,0,69,34,0,0,140,5,2,0,169,0,0,0,145,5,2,0,181,33,0,0,151,5,2,0,42,34,0,0,155,5,2,0,164,0,0,0,162,5,2,0,211,33,0,0,167,5,2,0,32,32,0,0,174,5,2,0,147,33,0,0,179,5,2,0,176,0,0,0,183,5,2,0,180,3,0,0,189,5,2,0,102,38,0,0,195,5,2,0,247,0,0,0,202,5,2,0,233,0,0,0,209,5,2,0,234,0,0,0,215,5,2,0,232,0,0,0,222,5,2,0,5,34,0,0,228,5,2,0,3,32,0,0,233,5,2,0,2,32,0,0,238,5,2,0,181,3,0,0,246,5,2,0,97,34,0,0,252,5,2,0,183,3,0,0,0,6,2,0,240,0,+0,0,4,6,2,0,235,0,0,0,9,6,2,0,172,32,0,0,14,6,2,0,3,34,0,0,20,6,2,0,146,1,0,0,25,6,2,0,0,34,0,0,32,6,2,0,189,0,0,0,39,6,2,0,188,0,0,0,46,6,2,0,190,0,0,0,53,6,2,0,68,32,0,0,59,6,2,0,179,3,0,0,65,6,2,0,101,34,0,0,68,6,2,0,62,0,0,0,71,6,2,0,212,33,0,0,76,6,2,0,148,33,0,0,81,6,2,0,101,38,0,0,88,6,2,0,38,32,0,0,95,6,2,0,237,0,0,0,102,6,2,0,238,0,0,0,108,6,2,0,161,0,0,0,114,6,2,0,236,0,0,0,121,6,2,0,17,33,0,0,127,6,2,0,30,34,0,0,133,6,2,0,43,34,0,0,137,6,2,0,185,3,0,0,142,6,2,0,191,0,0,0,149,6,2,0,8,34,+0,0,154,6,2,0,239,0,0,0,159,6,2,0,186,3,0,0,165,6,2,0,208,33,0,0,170,6,2,0,187,3,0,0,177,6,2,0,41,35,0,0,182,6,2,0,171,0,0,0,188,6,2,0,144,33,0,0,193,6,2,0,8,35,0,0,199,6,2,0,28,32,0,0,205,6,2,0,100,34,0,0,208,6,2,0,10,35,0,0,215,6,2,0,23,34,0,0,222,6,2,0,202,37,0,0,226,6,2,0,14,32,0,0,230,6,2,0,57,32,0,0,237,6,2,0,24,32,0,0,243,6,2,0,60,0,0,0,246,6,2,0,175,0,0,0,251,6,2,0,20,32,0,0,1,7,2,0,181,0,0,0,7,7,2,0,183,0,0,0,202,14,2,0,18,34,0,0,14,7,2,0,188,3,0,0,17,7,2,0,7,34,0,0,23,7,2,0,160,0,0,0,28,+7,2,0,19,32,0,0,34,7,2,0,96,34,0,0,37,7,2,0,11,34,0,0,40,7,2,0,172,0,0,0,44,7,2,0,9,34,0,0,50,7,2,0,132,34,0,0,55,7,2,0,241,0,0,0,62,7,2,0,189,3,0,0,65,7,2,0,243,0,0,0,72,7,2,0,244,0,0,0,78,7,2,0,83,1,0,0,84,7,2,0,242,0,0,0,91,7,2,0,62,32,0,0,97,7,2,0,201,3,0,0,103,7,2,0,191,3,0,0,111,7,2,0,149,34,0,0,117,7,2,0,40,34,0,0,120,7,2,0,170,0,0,0,125,7,2,0,186,0,0,0,130,7,2,0,248,0,0,0,137,7,2,0,245,0,0,0,144,7,2,0,151,34,0,0,151,7,2,0,246,0,0,0,156,7,2,0,182,0,0,0,161,7,2,0,2,34,0,0,166,7,2,0,48,32,0,+0,173,7,2,0,165,34,0,0,178,7,2,0,198,3,0,0,182,7,2,0,192,3,0,0,185,7,2,0,214,3,0,0,189,7,2,0,177,0,0,0,196,7,2,0,163,0,0,0,202,7,2,0,50,32,0,0,208,7,2,0,15,34,0,0,213,7,2,0,29,34,0,0,218,7,2,0,200,3,0,0,222,7,2,0,34,0,0,0,227,7,2,0,210,33,0,0,232,7,2,0,26,34,0,0,238,7,2,0,42,35,0,0,243,7,2,0,187,0,0,0,249,7,2,0,146,33,0,0,254,7,2,0,9,35,0,0,4,8,2,0,29,32,0,0,10,8,2,0,28,33,0,0,15,8,2,0,174,0,0,0,19,8,2,0,11,35,0,0,26,8,2,0,193,3,0,0,30,8,2,0,15,32,0,0,34,8,2,0,58,32,0,0,41,8,2,0,25,32,0,0,47,8,2,+0,26,32,0,0,53,8,2,0,97,1,0,0,60,8,2,0,197,34,0,0,65,8,2,0,167,0,0,0,70,8,2,0,173,0,0,0,74,8,2,0,195,3,0,0,80,8,2,0,194,3,0,0,87,8,2,0,60,34,0,0,91,8,2,0,96,38,0,0,98,8,2,0,130,34,0,0,102,8,2,0,134,34,0,0,107,8,2,0,17,34,0,0,111,8,2,0,131,34,0,0,115,8,2,0,185,0,0,0,120,8,2,0,178,0,0,0,125,8,2,0,179,0,0,0,130,8,2,0,135,34,0,0,135,8,2,0,223,0,0,0,141,8,2,0,196,3,0,0,145,8,2,0,52,34,0,0,152,8,2,0,184,3,0,0,158,8,2,0,209,3,0,0,167,8,2,0,9,32,0,0,174,8,2,0,254,0,0,0,180,8,2,0,220,2,0,0,186,8,2,0,215,0,+0,0,192,8,2,0,34,33,0,0,198,8,2,0,209,33,0,0,203,8,2,0,250,0,0,0,210,8,2,0,145,33,0,0,215,8,2,0,251,0,0,0,221,8,2,0,249,0,0,0,228,8,2,0,168,0,0,0,232,8,2,0,210,3,0,0,238,8,2,0,197,3,0,0,246,8,2,0,252,0,0,0,251,8,2,0,24,33,0,0,2,9,2,0,190,3,0,0,5,9,2,0,253,0,0,0,12,9,2,0,165,0,0,0,16,9,2,0,255,0,0,0,21,9,2,0,182,3,0,0,26,9,2,0,13,32,0,0,30,9,2,0,12,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,42,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,1,1,0,0,8,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,43,0,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,138,14,2,0,7,0,0,0,140,14,2,0,8,0,0,0,145,14,2,0,8,0,0,0,153,14,2,0,9,0,0,0,159,14,2,0,9,0,0,0,168,14,2,0,10,0,0,0,171,14,+2,0,10,0,0,0,177,14,2,0,11,0,0,0,182,14,2,0,11,0,0,0,190,14,2,0,12,0,0,0,195,14,2,0,12,0,0,0,202,14,2,0,13,0,0,0,208,14,2,0,13,0,0,0,220,14,2,0,14,0,0,0,14,0,0,0,82,0,0,0,44,0,0,0,45,0,0,0,20,0,0,0,46,0,0,0,83,0,0,0,47,0,0,0,21,0,0,0,48,0,0,0,8,0,0,0,4,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,16,2,0,85,93,201,127,201,127,255,0,78,16,2,0,187,45,212,190,174,212,255,0,89,16,2,0,20,119,253,253,192,134,255,0,100,16,2,0,85,+93,201,127,201,127,255,0,111,16,2,0,187,45,212,190,174,212,255,0,122,16,2,0,20,119,253,253,192,134,255,0,133,16,2,0,42,102,255,255,255,153,255,0,144,16,2,0,85,93,201,127,201,127,255,0,155,16,2,0,187,45,212,190,174,212,255,0,166,16,2,0,20,119,253,253,192,134,255,0,177,16,2,0,42,102,255,255,255,153,255,0,188,16,2,0,151,173,176,56,108,176,255,0,199,16,2,0,85,93,201,127,201,127,255,0,210,16,2,0,187,45,212,190,174,212,255,0,221,16,2,0,20,119,253,253,192,134,255,0,232,16,2,0,42,102,255,255,255,153,255,+0,243,16,2,0,151,173,176,56,108,176,255,0,254,16,2,0,232,252,240,240,2,127,255,0,9,17,2,0,85,93,201,127,201,127,255,0,20,17,2,0,187,45,212,190,174,212,255,0,31,17,2,0,20,119,253,253,192,134,255,0,42,17,2,0,42,102,255,255,255,153,255,0,53,17,2,0,151,173,176,56,108,176,255,0,64,17,2,0,232,252,240,240,2,127,255,0,75,17,2,0,17,224,191,191,91,23,255,0,86,17,2,0,85,93,201,127,201,127,255,0,97,17,2,0,187,45,212,190,174,212,255,0,108,17,2,0,20,119,253,253,192,134,255,0,119,17,2,0,42,102,255,255,255,153,255,+0,130,17,2,0,151,173,176,56,108,176,255,0,141,17,2,0,232,252,240,240,2,127,255,0,152,17,2,0,17,224,191,191,91,23,255,0,163,17,2,0,0,0,102,102,102,102,255,0,174,17,2,0,147,25,247,222,235,247,255,0,184,17,2,0,142,75,225,158,202,225,255,0,194,17,2,0,145,188,189,49,130,189,255,0,204,17,2,0,159,16,255,239,243,255,255,0,214,17,2,0,143,46,231,189,215,231,255,0,224,17,2,0,143,127,214,107,174,214,255,0,234,17,2,0,147,208,181,33,113,181,255,0,244,17,2,0,159,16,255,239,243,255,255,0,254,17,2,0,143,46,231,189,+215,231,255,0,8,18,2,0,143,127,214,107,174,214,255,0,18,18,2,0,145,188,189,49,130,189,255,0,28,18,2,0,149,241,156,8,81,156,255,0,38,18,2,0,159,16,255,239,243,255,255,0,48,18,2,0,148,43,239,198,219,239,255,0,58,18,2,0,142,75,225,158,202,225,255,0,68,18,2,0,143,127,214,107,174,214,255,0,78,18,2,0,145,188,189,49,130,189,255,0,88,18,2,0,149,241,156,8,81,156,255,0,98,18,2,0,159,16,255,239,243,255,255,0,108,18,2,0,148,43,239,198,219,239,255,0,118,18,2,0,142,75,225,158,202,225,255,0,128,18,2,0,143,127,214,+107,174,214,255,0,138,18,2,0,144,169,198,66,146,198,255,0,148,18,2,0,147,208,181,33,113,181,255,0,158,18,2,0,151,241,148,8,69,148,255,0,168,18,2,0,148,8,255,247,251,255,255,0,178,18,2,0,147,25,247,222,235,247,255,0,188,18,2,0,148,43,239,198,219,239,255,0,198,18,2,0,142,75,225,158,202,225,255,0,208,18,2,0,143,127,214,107,174,214,255,0,218,18,2,0,144,169,198,66,146,198,255,0,228,18,2,0,147,208,181,33,113,181,255,0,238,18,2,0,151,241,148,8,69,148,255,0,248,18,2,0,148,8,255,247,251,255,255,0,2,19,2,0,+147,25,247,222,235,247,255,0,12,19,2,0,148,43,239,198,219,239,255,0,22,19,2,0,142,75,225,158,202,225,255,0,32,19,2,0,143,127,214,107,174,214,255,0,42,19,2,0,144,169,198,66,146,198,255,0,52,19,2,0,147,208,181,33,113,181,255,0,62,19,2,0,149,241,156,8,81,156,255,0,72,19,2,0,152,235,107,8,48,107,255,0,82,19,2,0,23,239,84,84,48,5,255,0,92,19,2,0,119,255,60,0,60,48,255,0,103,19,2,0,23,236,140,140,81,10,255,0,113,19,2,0,24,194,191,191,129,45,255,0,123,19,2,0,29,112,223,223,194,125,255,0,133,19,2,0,30,52,+246,246,232,195,255,0,143,19,2,0,121,38,234,199,234,229,255,0,153,19,2,0,120,95,205,128,205,193,255,0,163,19,2,0,124,165,151,53,151,143,255,0,173,19,2,0,124,252,102,1,102,94,255,0,183,19,2,0,23,239,84,84,48,5,255,0,193,19,2,0,124,252,102,1,102,94,255,0,204,19,2,0,119,255,60,0,60,48,255,0,215,19,2,0,23,236,140,140,81,10,255,0,225,19,2,0,24,194,191,191,129,45,255,0,235,19,2,0,29,112,223,223,194,125,255,0,245,19,2,0,30,52,246,246,232,195,255,0,255,19,2,0,0,0,245,245,245,245,255,0,9,20,2,0,121,38,234,+199,234,229,255,0,19,20,2,0,120,95,205,128,205,193,255,0,29,20,2,0,124,165,151,53,151,143,255,0,39,20,2,0,28,135,216,216,179,101,255,0,48,20,2,0,0,0,245,245,245,245,255,0,57,20,2,0,123,127,180,90,180,172,255,0,66,20,2,0,21,215,166,166,97,26,255,0,75,20,2,0,29,112,223,223,194,125,255,0,84,20,2,0,120,95,205,128,205,193,255,0,93,20,2,0,121,253,133,1,133,113,255,0,102,20,2,0,21,215,166,166,97,26,255,0,111,20,2,0,29,112,223,223,194,125,255,0,120,20,2,0,0,0,245,245,245,245,255,0,129,20,2,0,120,95,205,128,+205,193,255,0,138,20,2,0,121,253,133,1,133,113,255,0,147,20,2,0,23,236,140,140,81,10,255,0,156,20,2,0,28,135,216,216,179,101,255,0,165,20,2,0,30,52,246,246,232,195,255,0,174,20,2,0,121,38,234,199,234,229,255,0,183,20,2,0,123,127,180,90,180,172,255,0,192,20,2,0,124,252,102,1,102,94,255,0,201,20,2,0,23,236,140,140,81,10,255,0,210,20,2,0,28,135,216,216,179,101,255,0,219,20,2,0,30,52,246,246,232,195,255,0,228,20,2,0,0,0,245,245,245,245,255,0,237,20,2,0,121,38,234,199,234,229,255,0,246,20,2,0,123,127,+180,90,180,172,255,0,255,20,2,0,124,252,102,1,102,94,255,0,8,21,2,0,23,236,140,140,81,10,255,0,17,21,2,0,24,194,191,191,129,45,255,0,26,21,2,0,29,112,223,223,194,125,255,0,35,21,2,0,30,52,246,246,232,195,255,0,44,21,2,0,121,38,234,199,234,229,255,0,53,21,2,0,120,95,205,128,205,193,255,0,62,21,2,0,124,165,151,53,151,143,255,0,71,21,2,0,124,252,102,1,102,94,255,0,80,21,2,0,23,236,140,140,81,10,255,0,89,21,2,0,24,194,191,191,129,45,255,0,98,21,2,0,29,112,223,223,194,125,255,0,107,21,2,0,30,52,246,246,+232,195,255,0,116,21,2,0,0,0,245,245,245,245,255,0,125,21,2,0,121,38,234,199,234,229,255,0,134,21,2,0,120,95,205,128,205,193,255,0,143,21,2,0,124,165,151,53,151,143,255,0,152,21,2,0,124,252,102,1,102,94,255,0,161,21,2,0,135,20,249,229,245,249,255,0,170,21,2,0,117,74,216,153,216,201,255,0,179,21,2,0,103,185,162,44,162,95,255,0,188,21,2,0,136,14,251,237,248,251,255,0,197,21,2,0,127,54,226,178,226,226,255,0,206,21,2,0,113,120,194,102,194,164,255,0,215,21,2,0,98,190,139,35,139,69,255,0,224,21,2,0,136,+14,251,237,248,251,255,0,233,21,2,0,127,54,226,178,226,226,255,0,242,21,2,0,113,120,194,102,194,164,255,0,251,21,2,0,103,185,162,44,162,95,255,0,4,22,2,0,102,255,109,0,109,44,255,0,13,22,2,0,136,14,251,237,248,251,255,0,22,22,2,0,119,34,236,204,236,230,255,0,31,22,2,0,117,74,216,153,216,201,255,0,40,22,2,0,113,120,194,102,194,164,255,0,49,22,2,0,103,185,162,44,162,95,255,0,58,22,2,0,102,255,109,0,109,44,255,0,67,22,2,0,136,14,251,237,248,251,255,0,76,22,2,0,119,34,236,204,236,230,255,0,85,22,2,0,+117,74,216,153,216,201,255,0,94,22,2,0,113,120,194,102,194,164,255,0,103,22,2,0,105,159,174,65,174,118,255,0,112,22,2,0,98,190,139,35,139,69,255,0,121,22,2,0,102,255,88,0,88,36,255,0,130,22,2,0,134,6,253,247,252,253,255,0,139,22,2,0,135,20,249,229,245,249,255,0,148,22,2,0,119,34,236,204,236,230,255,0,157,22,2,0,117,74,216,153,216,201,255,0,166,22,2,0,113,120,194,102,194,164,255,0,175,22,2,0,105,159,174,65,174,118,255,0,184,22,2,0,98,190,139,35,139,69,255,0,193,22,2,0,102,255,88,0,88,36,255,0,202,+22,2,0,134,6,253,247,252,253,255,0,211,22,2,0,135,20,249,229,245,249,255,0,220,22,2,0,119,34,236,204,236,230,255,0,229,22,2,0,117,74,216,153,216,201,255,0,238,22,2,0,113,120,194,102,194,164,255,0,247,22,2,0,105,159,174,65,174,118,255,0,0,23,2,0,98,190,139,35,139,69,255,0,9,23,2,0,102,255,109,0,109,44,255,0,18,23,2,0,101,255,68,0,68,27,255,0,27,23,2,0,144,20,244,224,236,244,255,0,36,23,2,0,148,70,218,158,188,218,255,0,45,23,2,0,196,123,167,136,86,167,255,0,54,23,2,0,136,14,251,237,248,251,255,0,63,+23,2,0,146,53,227,179,205,227,255,0,72,23,2,0,162,74,198,140,150,198,255,0,81,23,2,0,202,149,157,136,65,157,255,0,90,23,2,0,136,14,251,237,248,251,255,0,99,23,2,0,146,53,227,179,205,227,255,0,108,23,2,0,162,74,198,140,150,198,255,0,117,23,2,0,196,123,167,136,86,167,255,0,126,23,2,0,214,225,129,129,15,124,255,0,135,23,2,0,136,14,251,237,248,251,255,0,144,23,2,0,148,43,230,191,211,230,255,0,153,23,2,0,148,70,218,158,188,218,255,0,162,23,2,0,162,74,198,140,150,198,255,0,171,23,2,0,196,123,167,136,86,+167,255,0,180,23,2,0,214,225,129,129,15,124,255,0,189,23,2,0,136,14,251,237,248,251,255,0,198,23,2,0,148,43,230,191,211,230,255,0,207,23,2,0,148,70,218,158,188,218,255,0,216,23,2,0,162,74,198,140,150,198,255,0,225,23,2,0,190,100,177,140,107,177,255,0,234,23,2,0,202,149,157,136,65,157,255,0,243,23,2,0,213,252,110,110,1,107,255,0,252,23,2,0,134,6,253,247,252,253,255,0,5,24,2,0,144,20,244,224,236,244,255,0,14,24,2,0,148,43,230,191,211,230,255,0,23,24,2,0,148,70,218,158,188,218,255,0,32,24,2,0,162,74,+198,140,150,198,255,0,41,24,2,0,190,100,177,140,107,177,255,0,50,24,2,0,202,149,157,136,65,157,255,0,59,24,2,0,213,252,110,110,1,107,255,0,68,24,2,0,134,6,253,247,252,253,255,0,77,24,2,0,144,20,244,224,236,244,255,0,86,24,2,0,148,43,230,191,211,230,255,0,95,24,2,0,148,70,218,158,188,218,255,0,104,24,2,0,162,74,198,140,150,198,255,0,113,24,2,0,190,100,177,140,107,177,255,0,122,24,2,0,202,149,157,136,65,157,255,0,131,24,2,0,214,225,129,129,15,124,255,0,140,24,2,0,213,255,77,77,0,75,255,0,149,24,2,0,+114,211,158,27,158,119,255,0,159,24,2,0,18,252,217,217,95,2,255,0,169,24,2,0,173,95,179,117,112,179,255,0,179,24,2,0,114,211,158,27,158,119,255,0,189,24,2,0,18,252,217,217,95,2,255,0,199,24,2,0,173,95,179,117,112,179,255,0,209,24,2,0,233,209,231,231,41,138,255,0,219,24,2,0,114,211,158,27,158,119,255,0,229,24,2,0,18,252,217,217,95,2,255,0,239,24,2,0,173,95,179,117,112,179,255,0,249,24,2,0,233,209,231,231,41,138,255,0,3,25,2,0,62,208,166,102,166,30,255,0,13,25,2,0,114,211,158,27,158,119,255,0,23,25,+2,0,18,252,217,217,95,2,255,0,33,25,2,0,173,95,179,117,112,179,255,0,43,25,2,0,233,209,231,231,41,138,255,0,53,25,2,0,62,208,166,102,166,30,255,0,63,25,2,0,31,252,230,230,171,2,255,0,73,25,2,0,114,211,158,27,158,119,255,0,83,25,2,0,18,252,217,217,95,2,255,0,93,25,2,0,173,95,179,117,112,179,255,0,103,25,2,0,233,209,231,231,41,138,255,0,113,25,2,0,62,208,166,102,166,30,255,0,123,25,2,0,31,252,230,230,171,2,255,0,133,25,2,0,27,210,166,166,118,29,255,0,143,25,2,0,114,211,158,27,158,119,255,0,153,25,2,+0,18,252,217,217,95,2,255,0,163,25,2,0,173,95,179,117,112,179,255,0,173,25,2,0,233,209,231,231,41,138,255,0,183,25,2,0,62,208,166,102,166,30,255,0,193,25,2,0,31,252,230,230,171,2,255,0,203,25,2,0,27,210,166,166,118,29,255,0,213,25,2,0,0,0,102,102,102,102,255,0,223,25,2,0,76,25,243,224,243,219,255,0,232,25,2,0,95,61,221,168,221,181,255,0,241,25,2,0,140,170,202,67,162,202,255,0,250,25,2,0,65,17,249,240,249,232,255,0,3,26,2,0,87,46,228,186,228,188,255,0,12,26,2,0,123,101,204,123,204,196,255,0,21,26,+2,0,141,197,190,43,140,190,255,0,30,26,2,0,65,17,249,240,249,232,255,0,39,26,2,0,87,46,228,186,228,188,255,0,48,26,2,0,123,101,204,123,204,196,255,0,57,26,2,0,140,170,202,67,162,202,255,0,66,26,2,0,145,243,172,8,104,172,255,0,75,26,2,0,65,17,249,240,249,232,255,0,84,26,2,0,77,41,235,204,235,197,255,0,93,26,2,0,95,61,221,168,221,181,255,0,102,26,2,0,123,101,204,123,204,196,255,0,111,26,2,0,140,170,202,67,162,202,255,0,120,26,2,0,145,243,172,8,104,172,255,0,129,26,2,0,65,17,249,240,249,232,255,0,138,+26,2,0,77,41,235,204,235,197,255,0,147,26,2,0,95,61,221,168,221,181,255,0,156,26,2,0,123,101,204,123,204,196,255,0,165,26,2,0,137,160,211,78,179,211,255,0,174,26,2,0,141,197,190,43,140,190,255,0,183,26,2,0,147,242,158,8,88,158,255,0,192,26,2,0,60,12,252,247,252,240,255,0,201,26,2,0,76,25,243,224,243,219,255,0,210,26,2,0,77,41,235,204,235,197,255,0,219,26,2,0,95,61,221,168,221,181,255,0,228,26,2,0,123,101,204,123,204,196,255,0,237,26,2,0,137,160,211,78,179,211,255,0,246,26,2,0,141,197,190,43,140,190,+255,0,255,26,2,0,147,242,158,8,88,158,255,0,8,27,2,0,60,12,252,247,252,240,255,0,17,27,2,0,76,25,243,224,243,219,255,0,26,27,2,0,77,41,235,204,235,197,255,0,35,27,2,0,95,61,221,168,221,181,255,0,44,27,2,0,123,101,204,123,204,196,255,0,53,27,2,0,137,160,211,78,179,211,255,0,62,27,2,0,141,197,190,43,140,190,255,0,71,27,2,0,145,243,172,8,104,172,255,0,80,27,2,0,150,239,129,8,64,129,255,0,89,27,2,0,74,21,245,229,245,224,255,0,100,27,2,0,80,72,217,161,217,155,255,0,111,27,2,0,98,178,163,49,163,84,255,+0,122,27,2,0,73,15,248,237,248,233,255,0,133,27,2,0,78,54,228,186,228,179,255,0,144,27,2,0,86,104,196,116,196,118,255,0,155,27,2,0,98,190,139,35,139,69,255,0,166,27,2,0,73,15,248,237,248,233,255,0,177,27,2,0,78,54,228,186,228,179,255,0,188,27,2,0,86,104,196,116,196,118,255,0,199,27,2,0,98,178,163,49,163,84,255,0,210,27,2,0,102,255,109,0,109,44,255,0,221,27,2,0,73,15,248,237,248,233,255,0,232,27,2,0,77,44,233,199,233,192,255,0,243,27,2,0,80,72,217,161,217,155,255,0,254,27,2,0,86,104,196,116,196,118,+255,0,9,28,2,0,98,178,163,49,163,84,255,0,20,28,2,0,102,255,109,0,109,44,255,0,31,28,2,0,73,15,248,237,248,233,255,0,42,28,2,0,77,44,233,199,233,192,255,0,53,28,2,0,80,72,217,161,217,155,255,0,64,28,2,0,86,104,196,116,196,118,255,0,75,28,2,0,96,158,171,65,171,93,255,0,86,28,2,0,98,190,139,35,139,69,255,0,97,28,2,0,108,255,90,0,90,50,255,0,108,28,2,0,72,7,252,247,252,245,255,0,119,28,2,0,74,21,245,229,245,224,255,0,130,28,2,0,77,44,233,199,233,192,255,0,141,28,2,0,80,72,217,161,217,155,255,0,152,28,+2,0,86,104,196,116,196,118,255,0,163,28,2,0,96,158,171,65,171,93,255,0,174,28,2,0,98,190,139,35,139,69,255,0,185,28,2,0,108,255,90,0,90,50,255,0,196,28,2,0,72,7,252,247,252,245,255,0,207,28,2,0,74,21,245,229,245,224,255,0,218,28,2,0,77,44,233,199,233,192,255,0,229,28,2,0,80,72,217,161,217,155,255,0,240,28,2,0,86,104,196,116,196,118,255,0,251,28,2,0,96,158,171,65,171,93,255,0,6,29,2,0,98,190,139,35,139,69,255,0,17,29,2,0,102,255,109,0,109,44,255,0,28,29,2,0,101,255,68,0,68,27,255,0,39,29,2,0,0,0,240,+240,240,240,255,0,49,29,2,0,0,0,189,189,189,189,255,0,59,29,2,0,0,0,99,99,99,99,255,0,69,29,2,0,0,0,247,247,247,247,255,0,79,29,2,0,0,0,204,204,204,204,255,0,89,29,2,0,0,0,150,150,150,150,255,0,99,29,2,0,0,0,82,82,82,82,255,0,109,29,2,0,0,0,247,247,247,247,255,0,119,29,2,0,0,0,204,204,204,204,255,0,129,29,2,0,0,0,150,150,150,150,255,0,139,29,2,0,0,0,99,99,99,99,255,0,149,29,2,0,0,0,37,37,37,37,255,0,159,29,2,0,0,0,247,247,247,247,255,0,169,29,2,0,0,0,217,217,217,217,255,0,179,29,2,0,0,0,189,189,189,+189,255,0,189,29,2,0,0,0,150,150,150,150,255,0,199,29,2,0,0,0,99,99,99,99,255,0,209,29,2,0,0,0,37,37,37,37,255,0,219,29,2,0,0,0,247,247,247,247,255,0,229,29,2,0,0,0,217,217,217,217,255,0,239,29,2,0,0,0,189,189,189,189,255,0,249,29,2,0,0,0,150,150,150,150,255,0,3,30,2,0,0,0,115,115,115,115,255,0,13,30,2,0,0,0,82,82,82,82,255,0,23,30,2,0,0,0,37,37,37,37,255,0,33,30,2,0,0,0,255,255,255,255,255,0,43,30,2,0,0,0,240,240,240,240,255,0,53,30,2,0,0,0,217,217,217,217,255,0,63,30,2,0,0,0,189,189,189,189,255,+0,73,30,2,0,0,0,150,150,150,150,255,0,83,30,2],"i8",4,n.q+53824);+B([115,115,115,115,255,0,93,30,2,0,0,0,82,82,82,82,255,0,103,30,2,0,0,0,37,37,37,37,255,0,113,30,2,0,0,0,255,255,255,255,255,0,123,30,2,0,0,0,240,240,240,240,255,0,133,30,2,0,0,0,217,217,217,217,255,0,143,30,2,0,0,0,189,189,189,189,255,0,153,30,2,0,0,0,150,150,150,150,255,0,163,30,2,0,0,0,115,115,115,115,255,0,173,30,2,0,0,0,82,82,82,82,255,0,183,30,2,0,0,0,37,37,37,37,255,0,193,30,2,0,0,0,0,0,0,0,255,0,203,30,2,0,21,48,254,254,230,206,255,0,215,30,2,0,19,147,253,253,174,107,255,0,227,30,2,0,14,240,+230,230,85,13,255,0,239,30,2,0,19,32,254,254,237,222,255,0,251,30,2,0,20,120,253,253,190,133,255,0,7,31,2,0,17,194,253,253,141,60,255,0,19,31,2,0,13,253,217,217,71,1,255,0,31,31,2,0,19,32,254,254,237,222,255,0,43,31,2,0,20,120,253,253,190,133,255,0,55,31,2,0,17,194,253,253,141,60,255,0,67,31,2,0,14,240,230,230,85,13,255,0,79,31,2,0,13,250,166,166,54,3,255,0,91,31,2,0,19,32,254,254,237,222,255,0,103,31,2,0,21,91,253,253,208,162,255,0,115,31,2,0,19,147,253,253,174,107,255,0,127,31,2,0,17,194,253,253,+141,60,255,0,139,31,2,0,14,240,230,230,85,13,255,0,151,31,2,0,13,250,166,166,54,3,255,0,163,31,2,0,19,32,254,254,237,222,255,0,175,31,2,0,21,91,253,253,208,162,255,0,187,31,2,0,19,147,253,253,174,107,255,0,199,31,2,0,17,194,253,253,141,60,255,0,211,31,2,0,16,234,241,241,105,19,255,0,223,31,2,0,13,253,217,217,72,1,255,0,235,31,2,0,12,247,140,140,45,4,255,0,247,31,2,0,21,20,255,255,245,235,255,0,3,32,2,0,21,48,254,254,230,206,255,0,15,32,2,0,21,91,253,253,208,162,255,0,27,32,2,0,19,147,253,253,174,+107,255,0,39,32,2,0,17,194,253,253,141,60,255,0,51,32,2,0,16,234,241,241,105,19,255,0,63,32,2,0,13,253,217,217,72,1,255,0,75,32,2,0,12,247,140,140,45,4,255,0,87,32,2,0,21,20,255,255,245,235,255,0,99,32,2,0,21,48,254,254,230,206,255,0,111,32,2,0,21,91,253,253,208,162,255,0,123,32,2,0,19,147,253,253,174,107,255,0,135,32,2,0,17,194,253,253,141,60,255,0,147,32,2,0,16,234,241,241,105,19,255,0,159,32,2,0,13,253,217,217,72,1,255,0,171,32,2,0,13,250,166,166,54,3,255,0,183,32,2,0,12,246,127,127,39,4,255,0,+195,32,2,0,25,54,254,254,232,200,255,0,204,32,2,0,19,121,253,253,187,132,255,0,213,32,2,0,5,197,227,227,74,51,255,0,222,32,2,0,26,37,254,254,240,217,255,0,231,32,2,0,24,115,253,253,204,138,255,0,240,32,2,0,13,164,252,252,141,89,255,0,249,32,2,0,3,218,215,215,48,31,255,0,2,33,2,0,26,37,254,254,240,217,255,0,11,33,2,0,24,115,253,253,204,138,255,0,20,33,2,0,13,164,252,252,141,89,255,0,29,33,2,0,5,197,227,227,74,51,255,0,38,33,2,0,0,255,179,179,0,0,255,0,47,33,2,0,26,37,254,254,240,217,255,0,56,33,2,+0,24,95,253,253,212,158,255,0,65,33,2,0,19,121,253,253,187,132,255,0,74,33,2,0,13,164,252,252,141,89,255,0,83,33,2,0,5,197,227,227,74,51,255,0,92,33,2,0,0,255,179,179,0,0,255,0,101,33,2,0,26,37,254,254,240,217,255,0,110,33,2,0,24,95,253,253,212,158,255,0,119,33,2,0,19,121,253,253,187,132,255,0,128,33,2,0,13,164,252,252,141,89,255,0,137,33,2,0,7,178,239,239,101,72,255,0,146,33,2,0,3,218,215,215,48,31,255,0,155,33,2,0,0,255,153,153,0,0,255,0,164,33,2,0,24,18,255,255,247,236,255,0,173,33,2,0,25,54,254,+254,232,200,255,0,182,33,2,0,24,95,253,253,212,158,255,0,191,33,2,0,19,121,253,253,187,132,255,0,200,33,2,0,13,164,252,252,141,89,255,0,209,33,2,0,7,178,239,239,101,72,255,0,218,33,2,0,3,218,215,215,48,31,255,0,227,33,2,0,0,255,153,153,0,0,255,0,236,33,2,0,24,18,255,255,247,236,255,0,245,33,2,0,25,54,254,254,232,200,255,0,254,33,2,0,24,95,253,253,212,158,255,0,7,34,2,0,19,121,253,253,187,132,255,0,16,34,2,0,13,164,252,252,141,89,255,0,25,34,2,0,7,178,239,239,101,72,255,0,34,34,2,0,3,218,215,215,48,+31,255,0,43,34,2,0,0,255,179,179,0,0,255,0,52,34,2,0,0,255,127,127,0,0,255,0,61,34,2,0,142,68,227,166,206,227,255,0,73,34,2,0,190,153,154,106,61,154,255,0,86,34,2,0,144,211,180,31,120,180,255,0,98,34,2,0,65,97,223,178,223,138,255,0,110,34,2,0,82,184,160,51,160,44,255,0,122,34,2,0,0,99,251,251,154,153,255,0,134,34,2,0,254,225,227,227,26,28,255,0,146,34,2,0,23,143,253,253,191,111,255,0,158,34,2,0,21,255,255,255,127,0,255,0,170,34,2,0,198,42,214,202,178,214,255,0,182,34,2,0,142,68,227,166,206,227,255,+0,194,34,2,0,190,153,154,106,61,154,255,0,207,34,2,0,42,102,255,255,255,153,255,0,220,34,2,0,144,211,180,31,120,180,255,0,232,34,2,0,65,97,223,178,223,138,255,0,244,34,2,0,82,184,160,51,160,44,255,0,0,35,2,0,0,99,251,251,154,153,255,0,12,35,2,0,254,225,227,227,26,28,255,0,24,35,2,0,23,143,253,253,191,111,255,0,36,35,2,0,21,255,255,255,127,0,255,0,48,35,2,0,198,42,214,202,178,214,255,0,60,35,2,0,142,68,227,166,206,227,255,0,72,35,2,0,190,153,154,106,61,154,255,0,85,35,2,0,42,102,255,255,255,153,255,+0,98,35,2,0,15,197,177,177,89,40,255,0,111,35,2,0,144,211,180,31,120,180,255,0,123,35,2,0,65,97,223,178,223,138,255,0,135,35,2,0,82,184,160,51,160,44,255,0,147,35,2,0,0,99,251,251,154,153,255,0,159,35,2,0,254,225,227,227,26,28,255,0,171,35,2,0,23,143,253,253,191,111,255,0,183,35,2,0,21,255,255,255,127,0,255,0,195,35,2,0,198,42,214,202,178,214,255,0,207,35,2,0,142,68,227,166,206,227,255,0,218,35,2,0,144,211,180,31,120,180,255,0,229,35,2,0,65,97,223,178,223,138,255,0,240,35,2,0,142,68,227,166,206,227,+255,0,251,35,2,0,144,211,180,31,120,180,255,0,6,36,2,0,65,97,223,178,223,138,255,0,17,36,2,0,82,184,160,51,160,44,255,0,28,36,2,0,142,68,227,166,206,227,255,0,39,36,2,0,144,211,180,31,120,180,255,0,50,36,2,0,65,97,223,178,223,138,255,0,61,36,2,0,82,184,160,51,160,44,255,0,72,36,2,0,0,99,251,251,154,153,255,0,83,36,2,0,142,68,227,166,206,227,255,0,94,36,2,0,144,211,180,31,120,180,255,0,105,36,2,0,65,97,223,178,223,138,255,0,116,36,2,0,82,184,160,51,160,44,255,0,127,36,2,0,0,99,251,251,154,153,255,+0,138,36,2,0,254,225,227,227,26,28,255,0,149,36,2,0,142,68,227,166,206,227,255,0,160,36,2,0,144,211,180,31,120,180,255,0,171,36,2,0,65,97,223,178,223,138,255,0,182,36,2,0,82,184,160,51,160,44,255,0,193,36,2,0,0,99,251,251,154,153,255,0,204,36,2,0,254,225,227,227,26,28,255,0,215,36,2,0,23,143,253,253,191,111,255,0,226,36,2,0,142,68,227,166,206,227,255,0,237,36,2,0,144,211,180,31,120,180,255,0,248,36,2,0,65,97,223,178,223,138,255,0,3,37,2,0,82,184,160,51,160,44,255,0,14,37,2,0,0,99,251,251,154,153,+255,0,25,37,2,0,254,225,227,227,26,28,255,0,36,37,2,0,23,143,253,253,191,111,255,0,47,37,2,0,21,255,255,255,127,0,255,0,58,37,2,0,142,68,227,166,206,227,255,0,69,37,2,0,144,211,180,31,120,180,255,0,80,37,2,0,65,97,223,178,223,138,255,0,91,37,2,0,82,184,160,51,160,44,255,0,102,37,2,0,0,99,251,251,154,153,255,0,113,37,2,0,254,225,227,227,26,28,255,0,124,37,2,0,23,143,253,253,191,111,255,0,135,37,2,0,21,255,255,255,127,0,255,0,146,37,2,0,198,42,214,202,178,214,255,0,157,37,2,0,3,78,251,251,180,174,255,+0,169,37,2,0,146,53,227,179,205,227,255,0,181,37,2,0,77,41,235,204,235,197,255,0,193,37,2,0,3,78,251,251,180,174,255,0,205,37,2,0,146,53,227,179,205,227,255,0,217,37,2,0,77,41,235,204,235,197,255,0,229,37,2,0,202,27,228,222,203,228,255,0,241,37,2,0,3,78,251,251,180,174,255,0,253,37,2,0,146,53,227,179,205,227,255,0,9,38,2,0,77,41,235,204,235,197,255,0,21,38,2,0,202,27,228,222,203,228,255,0,33,38,2,0,24,88,254,254,217,166,255,0,45,38,2,0,3,78,251,251,180,174,255,0,57,38,2,0,146,53,227,179,205,227,255,+0,69,38,2,0,77,41,235,204,235,197,255,0,81,38,2,0,202,27,228,222,203,228,255,0,93,38,2,0,24,88,254,254,217,166,255,0,105,38,2,0,42,50,255,255,255,204,255,0,117,38,2,0,3,78,251,251,180,174,255,0,129,38,2,0,146,53,227,179,205,227,255,0,141,38,2,0,77,41,235,204,235,197,255,0,153,38,2,0,202,27,228,222,203,228,255,0,165,38,2,0,24,88,254,254,217,166,255,0,177,38,2,0,42,50,255,255,255,204,255,0,189,38,2,0,28,44,229,229,216,189,255,0,201,38,2,0,3,78,251,251,180,174,255,0,213,38,2,0,146,53,227,179,205,227,+255,0,225,38,2,0,77,41,235,204,235,197,255,0,237,38,2,0,202,27,228,222,203,228,255,0,249,38,2,0,24,88,254,254,217,166,255,0,5,39,2,0,42,50,255,255,255,204,255,0,17,39,2,0,28,44,229,229,216,189,255,0,29,39,2,0,233,35,253,253,218,236,255,0,41,39,2,0,3,78,251,251,180,174,255,0,53,39,2,0,146,53,227,179,205,227,255,0,65,39,2,0,77,41,235,204,235,197,255,0,77,39,2,0,202,27,228,222,203,228,255,0,89,39,2,0,24,88,254,254,217,166,255,0,101,39,2,0,42,50,255,255,255,204,255,0,113,39,2,0,28,44,229,229,216,189,+255,0,125,39,2,0,233,35,253,253,218,236,255,0,137,39,2,0,0,0,242,242,242,242,255,0,149,39,2,0,108,53,226,179,226,205,255,0,161,39,2,0,17,81,253,253,205,172,255,0,173,39,2,0,155,31,232,203,213,232,255,0,185,39,2,0,108,53,226,179,226,205,255,0,197,39,2,0,17,81,253,253,205,172,255,0,209,39,2,0,155,31,232,203,213,232,255,0,221,39,2,0,228,43,244,244,202,228,255,0,233,39,2,0,108,53,226,179,226,205,255,0,245,39,2,0,17,81,253,253,205,172,255,0,1,40,2,0,155,31,232,203,213,232,255,0,13,40,2,0,228,43,244,244,+202,228,255,0,25,40,2,0,56,45,245,230,245,201,255,0,37,40,2,0,108,53,226,179,226,205,255,0,49,40,2,0,17,81,253,253,205,172,255,0,61,40,2,0,155,31,232,203,213,232,255,0,73,40,2,0,228,43,244,244,202,228,255,0,85,40,2,0,56,45,245,230,245,201,255,0,97,40,2,0,35,81,255,255,242,174,255,0,109,40,2,0,108,53,226,179,226,205,255,0,121,40,2,0,17,81,253,253,205,172,255,0,133,40,2,0,155,31,232,203,213,232,255,0,145,40,2,0,228,43,244,244,202,228,255,0,157,40,2,0,56,45,245,230,245,201,255,0,169,40,2,0,35,81,255,+255,242,174,255,0,181,40,2,0,25,39,241,241,226,204,255,0,193,40,2,0,108,53,226,179,226,205,255,0,205,40,2,0,17,81,253,253,205,172,255,0,217,40,2,0,155,31,232,203,213,232,255,0,229,40,2,0,228,43,244,244,202,228,255,0,241,40,2,0,56,45,245,230,245,201,255,0,253,40,2,0,35,81,255,255,242,174,255,0,9,41,2,0,25,39,241,241,226,204,255,0,21,41,2,0,0,0,204,204,204,204,255,0,33,41,2,0,230,253,142,142,1,82,255,0,43,41,2,0,77,191,100,39,100,25,255,0,54,41,2,0,230,220,197,197,27,125,255,0,64,41,2,0,232,118,222,+222,119,174,255,0,74,41,2,0,229,62,241,241,182,218,255,0,84,41,2,0,233,29,253,253,224,239,255,0,94,41,2,0,59,38,245,230,245,208,255,0,104,41,2,0,61,103,225,184,225,134,255,0,114,41,2,0,63,166,188,127,188,65,255,0,124,41,2,0,68,197,146,77,146,33,255,0,134,41,2,0,230,253,142,142,1,82,255,0,144,41,2,0,68,197,146,77,146,33,255,0,155,41,2,0,77,191,100,39,100,25,255,0,166,41,2,0,230,220,197,197,27,125,255,0,176,41,2,0,232,118,222,222,119,174,255,0,186,41,2,0,229,62,241,241,182,218,255,0,196,41,2,0,233,+29,253,253,224,239,255,0,206,41,2,0,0,0,247,247,247,247,255,0,216,41,2,0,59,38,245,230,245,208,255,0,226,41,2,0,61,103,225,184,225,134,255,0,236,41,2,0,63,166,188,127,188,65,255,0,246,41,2,0,231,76,233,233,163,201,255,0,255,41,2,0,0,0,247,247,247,247,255,0,8,42,2,0,63,129,215,161,215,106,255,0,17,42,2,0,228,220,208,208,28,139,255,0,26,42,2,0,229,62,241,241,182,218,255,0,35,42,2,0,61,103,225,184,225,134,255,0,44,42,2,0,72,198,172,77,172,38,255,0,53,42,2,0,228,220,208,208,28,139,255,0,62,42,2,0,229,+62,241,241,182,218,255,0,71,42,2,0,0,0,247,247,247,247,255,0,80,42,2,0,61,103,225,184,225,134,255,0,89,42,2,0,72,198,172,77,172,38,255,0,98,42,2,0,230,220,197,197,27,125,255,0,107,42,2,0,231,76,233,233,163,201,255,0,116,42,2,0,233,29,253,253,224,239,255,0,125,42,2,0,59,38,245,230,245,208,255,0,134,42,2,0,63,129,215,161,215,106,255,0,143,42,2,0,68,197,146,77,146,33,255,0,152,42,2,0,230,220,197,197,27,125,255,0,161,42,2,0,231,76,233,233,163,201,255,0,170,42,2,0,233,29,253,253,224,239,255,0,179,42,2,+0,0,0,247,247,247,247,255,0,188,42,2,0,59,38,245,230,245,208,255,0,197,42,2,0,63,129,215,161,215,106,255,0,206,42,2,0,68,197,146,77,146,33,255,0,215,42,2,0,230,220,197,197,27,125,255,0,224,42,2,0,232,118,222,222,119,174,255,0,233,42,2,0,229,62,241,241,182,218,255,0,242,42,2,0,233,29,253,253,224,239,255,0,251,42,2,0,59,38,245,230,245,208,255,0,4,43,2,0,61,103,225,184,225,134,255,0,13,43,2,0,63,166,188,127,188,65,255,0,22,43,2,0,68,197,146,77,146,33,255,0,31,43,2,0,230,220,197,197,27,125,255,0,40,43,+2,0,232,118,222,222,119,174,255,0,49,43,2,0,229,62,241,241,182,218,255,0,58,43,2,0,233,29,253,253,224,239,255,0,67,43,2,0,0,0,247,247,247,247,255,0,76,43,2,0,59,38,245,230,245,208,255,0,85,43,2,0,61,103,225,184,225,134,255,0,94,43,2,0,63,166,188,127,188,65,255,0,103,43,2,0,68,197,146,77,146,33,255,0,112,43,2,0,206,255,75,64,0,75,255,0,122,43,2,0,101,255,68,0,68,27,255,0,133,43,2,0,206,173,131,118,42,131,255,0,143,43,2,0,199,87,171,153,112,171,255,0,153,43,2,0,199,51,207,194,165,207,255,0,163,43,2,+0,210,21,232,231,212,232,255,0,173,43,2,0,76,30,240,217,240,211,255,0,183,43,2,0,80,68,219,166,219,160,255,0,193,43,2,0,88,123,174,90,174,97,255,0,203,43,2,0,97,197,120,27,120,55,255,0,213,43,2,0,206,255,75,64,0,75,255,0,223,43,2,0,97,197,120,27,120,55,255,0,234,43,2,0,101,255,68,0,68,27,255,0,245,43,2,0,206,173,131,118,42,131,255,0,255,43,2,0,199,87,171,153,112,171,255,0,9,44,2,0,199,51,207,194,165,207,255,0,19,44,2,0,210,21,232,231,212,232,255,0,29,44,2,0,0,0,247,247,247,247,255,0,39,44,2,0,76,+30,240,217,240,211,255,0,49,44,2,0,80,68,219,166,219,160,255,0,59,44,2,0,88,123,174,90,174,97,255,0,69,44,2,0,196,70,195,175,141,195,255,0,78,44,2,0,0,0,247,247,247,247,255,0,87,44,2,0,82,90,191,127,191,123,255,0,96,44,2,0,201,168,148,123,50,148,255,0,105,44,2,0,199,51,207,194,165,207,255,0,114,44,2,0,80,68,219,166,219,160,255,0,123,44,2,0,102,255,136,0,136,55,255,0,132,44,2,0,201,168,148,123,50,148,255,0,141,44,2,0,199,51,207,194,165,207,255,0,150,44,2,0,0,0,247,247,247,247,255,0,159,44,2,0,80,68,+219,166,219,160,255,0,168,44,2,0,102,255,136,0,136,55,255,0,177,44,2,0,206,173,131,118,42,131,255,0,186,44,2,0,196,70,195,175,141,195,255,0,195,44,2,0,210,21,232,231,212,232,255,0,204,44,2,0,76,30,240,217,240,211,255,0,213,44,2,0,82,90,191,127,191,123,255,0,222,44,2,0,97,197,120,27,120,55,255,0,231,44,2,0,206,173,131,118,42,131,255,0,240,44,2,0,196,70,195,175,141,195,255,0,249,44,2,0,210,21,232,231,212,232,255,0,2,45,2,0,0,0,247,247,247,247,255,0,11,45,2,0,76,30,240,217,240,211,255,0,20,45,2,0,82,+90,191,127,191,123,255,0,29,45,2,0,97,197,120,27,120,55,255,0,38,45,2,0,206,173,131,118,42,131,255,0,47,45,2,0,199,87,171,153,112,171,255,0,56,45,2,0,199,51,207,194,165,207,255,0,65,45,2,0,210,21,232,231,212,232,255,0,74,45,2,0,76,30,240,217,240,211,255,0,83,45,2,0,80,68,219,166,219,160,255,0,92,45,2,0,88,123,174,90,174,97,255,0,101,45,2,0,97,197,120,27,120,55,255,0,110,45,2,0,206,173,131,118,42,131,255,0,119,45,2,0,199,87,171,153,112,171,255,0,128,45,2,0,199,51,207,194,165,207,255,0,137,45,2,0,210,+21,232,231,212,232,255,0,146,45,2,0,0,0,247,247,247,247,255,0,155,45,2,0,76,30,240,217,240,211,255,0,164,45,2,0,80,68,219,166,219,160,255,0,173,45,2,0,88,123,174,90,174,97,255,0,182,45,2,0,97,197,120,27,120,55,255,0,191,45,2,0,189,11,242,236,231,242,255,0,200,45,2,0,151,61,219,166,189,219,255,0,209,45,2,0,141,197,190,43,140,190,255,0,218,45,2,0,185,8,246,241,238,246,255,0,227,45,2,0,155,40,225,189,201,225,255,0,236,45,2,0,145,112,207,116,169,207,255,0,245,45,2,0,143,247,176,5,112,176,255,0,254,45,+2,0,185,8,246,241,238,246,255,0,7,46,2,0,155,40,225,189,201,225,255,0,16,46,2,0,145,112,207,116,169,207,255,0,25,46,2,0,141,197,190,43,140,190,255,0,34,46,2,0,143,247,141,4,90,141,255,0,43,46,2,0,185,8,246,241,238,246,255,0,52,46,2,0,168,24,230,208,209,230,255,0,61,46,2,0,151,61,219,166,189,219,255,0,70,46,2,0,145,112,207,116,169,207,255,0,79,46,2,0,141,197,190,43,140,190,255,0,88,46,2,0,143,247,141,4,90,141,255,0,97,46,2,0,185,8,246,241,238,246,255,0,106,46,2,0,168,24,230,208,209,230,255,0,115,46,+2,0,151,61,219,166,189,219,255,0,124,46,2,0,145,112,207,116,169,207,255,0,133,46,2,0,142,183,192,54,144,192,255,0,142,46,2,0,143,247,176,5,112,176,255,0,151,46,2,0,143,248,123,3,78,123,255,0,160,46,2,0,233,8,255,255,247,251,255,0,169,46,2,0,189,11,242,236,231,242,255,0,178,46,2,0,168,24,230,208,209,230,255,0,187,46,2,0,151,61,219,166,189,219,255,0,196,46,2,0,145,112,207,116,169,207,255,0,205,46,2,0,142,183,192,54,144,192,255,0,214,46,2,0,143,247,176,5,112,176,255,0,223,46,2,0,143,248,123,3,78,123,+255,0,232,46,2,0,233,8,255,255,247,251,255,0,241,46,2,0,189,11,242,236,231,242,255,0,250,46,2,0,168,24,230,208,209,230,255,0,3,47,2,0,151,61,219,166,189,219,255,0,12,47,2,0,145,112,207,116,169,207,255,0,21,47,2,0,142,183,192,54,144,192,255,0,30,47,2,0,143,247,176,5,112,176,255,0,39,47,2,0,143,247,141,4,90,141,255,0,48,47,2,0,143,249,88,2,56,88,255,0,57,47,2,0,200,14,240,236,226,240,255,0,68,47,2,0,151,61,219,166,189,219,255,0,79,47,2,0,130,208,153,28,144,153,255,0,90,47,2,0,207,8,247,246,239,247,+255,0,101,47,2,0,155,40,225,189,201,225,255,0,112,47,2,0,143,128,207,103,169,207,255,0,123,47,2,0,130,251,138,2,129,138,255,0,134,47,2,0,207,8,247,246,239,247,255,0,145,47,2,0,155,40,225,189,201,225,255,0,156,47,2,0,143,128,207,103,169,207,255,0,167,47,2,0,130,208,153,28,144,153,255,0,178,47,2,0,119,252,108,1,108,89,255,0,189,47,2,0,207,8,247,246,239,247,255,0,200,47,2,0,168,24,230,208,209,230,255,0,211,47,2,0,151,61,219,166,189,219,255,0,222,47,2,0,143,128,207,103,169,207,255,0,233,47,2,0,130,208,+153,28,144,153,255,0,244,47,2,0,119,252,108,1,108,89,255,0,255,47,2,0,207,8,247,246,239,247,255,0,10,48,2,0,168,24,230,208,209,230,255,0,21,48,2,0,151,61,219,166,189,219,255,0,32,48,2,0,143,128,207,103,169,207,255,0,43,48,2,0,142,183,192,54,144,192,255,0,54,48,2,0,130,251,138,2,129,138,255,0,65,48,2,0,118,252,100,1,100,80,255,0,76,48,2,0,233,8,255,255,247,251,255,0,87,48,2,0,200,14,240,236,226,240,255,0,98,48,2,0,168,24,230,208,209,230,255,0,109,48,2,0,151,61,219,166,189,219,255,0,120,48,2,0,143,+128,207,103,169,207,255,0,131,48,2,0,142,183,192,54,144,192,255,0,142,48,2,0,130,251,138,2,129,138,255,0,153,48,2,0,118,252,100,1,100,80,255,0,164,48,2,0,233,8,255,255,247,251,255,0,175,48,2,0,200,14,240,236,226,240,255,0,186,48,2,0,168,24,230,208,209,230,255,0,197,48,2,0,151,61,219,166,189,219,255,0,208,48,2,0,143,128,207,103,169,207,255,0,219,48,2,0,142,183,192,54,144,192,255,0,230,48,2,0,130,251,138,2,129,138,255,0,241,48,2,0,119,252,108,1,108,89,255,0,252,48,2,0,117,251,70,1,70,54,255,0,7,49,+2,0,18,238,127,127,59,8,255,0,17,49,2,0,195,255,75,45,0,75,255,0,28,49,2,0,20,246,179,179,88,6,255,0,38,49,2,0,22,232,224,224,130,20,255,0,48,49,2,0,23,155,253,253,184,99,255,0,58,49,2,0,24,72,254,254,224,182,255,0,68,49,2,0,165,20,235,216,218,235,255,0,78,49,2,0,177,47,210,178,171,210,255,0,88,49,2,0,179,84,172,128,115,172,255,0,98,49,2,0,189,181,136,84,39,136,255,0,108,49,2,0,18,238,127,127,59,8,255,0,118,49,2,0,189,181,136,84,39,136,255,0,129,49,2,0,195,255,75,45,0,75,255,0,140,49,2,0,20,246,179,+179,88,6,255,0,150,49,2,0,22,232,224,224,130,20,255,0,160,49,2,0,23,155,253,253,184,99,255,0,170,49,2,0,24,72,254,254,224,182,255,0,180,49,2,0,0,0,247,247,247,247,255,0,190,49,2,0,165,20,235,216,218,235,255,0,200,49,2,0,177,47,210,178,171,210,255,0,210,49,2,0,179,84,172,128,115,172,255,0,220,49,2,0,23,187,241,241,163,64,255,0,229,49,2,0,0,0,247,247,247,247,255,0,238,49,2,0,178,69,195,153,142,195,255,0,247,49,2,0,17,253,230,230,97,1,255,0,0,50,2,0,23,155,253,253,184,99,255,0,9,50,2,0,177,47,210,178,+171,210,255,0,18,50,2,0,185,155,153,94,60,153,255,0,27,50,2,0,17,253,230,230,97,1,255,0,36,50,2,0,23,155,253,253,184,99,255,0,45,50,2,0,0,0,247,247,247,247,255,0,54,50,2,0,177,47,210,178,171,210,255,0,63,50,2,0,185,155,153,94,60,153,255,0,72,50,2,0,20,246,179,179,88,6,255,0,81,50,2,0,23,187,241,241,163,64,255,0,90,50,2,0,24,72,254,254,224,182,255,0,99,50,2,0,165,20,235,216,218,235,255,0,108,50,2,0,178,69,195,153,142,195,255,0,117,50,2,0,189,181,136,84,39,136,255,0,126,50,2,0,20,246,179,179,88,6,255,+0,135,50,2,0,23,187,241,241,163,64,255,0,144,50,2,0,24,72,254,254,224,182,255,0,153,50,2,0,0,0,247,247,247,247,255,0,162,50,2,0,165,20,235,216,218,235,255,0,171,50,2,0,178,69,195,153,142,195,255,0,180,50,2,0,189,181,136,84,39,136,255,0,189,50,2,0,20,246,179,179,88,6,255,0,198,50,2,0,22,232,224,224,130,20,255,0,207,50,2,0,23,155,253,253,184,99,255,0,216,50,2,0,24,72,254,254,224,182,255,0,225,50,2,0,165,20,235,216,218,235,255,0,234,50,2,0,177,47,210,178,171,210,255,0,243,50,2,0,179,84,172,128,115,172,+255,0,252,50,2,0,189,181,136,84,39,136,255,0,5,51,2,0,20,246,179,179,88,6,255,0,14,51,2,0,22,232,224,224,130,20,255,0,23,51,2,0,23,155,253,253,184,99,255,0,32,51,2,0,24,72,254,254,224,182,255,0,41,51,2,0,0,0,247,247,247,247,255,0,50,51,2,0,165,20,235,216,218,235,255,0,59,51,2,0,177,47,210,178,171,210,255,0,68,51,2,0,179,84,172,128,115,172,255,0,77,51,2,0,189,181,136,84,39,136,255,0,86,51,2,0,188,14,239,231,225,239,255,0,95,51,2,0,214,67,201,201,148,199,255,0,104,51,2,0,234,222,221,221,28,119,255,+0,113,51,2,0,185,8,246,241,238,246,255,0,122,51,2,0,211,41,216,215,181,216,255,0,131,51,2,0,228,139,223,223,101,176,255,0,140,51,2,0,239,232,206,206,18,86,255,0,149,51,2,0,185,8,246,241,238,246,255,0,158,51,2,0,211,41,216,215,181,216,255,0,167,51,2,0,228,139,223,223,101,176,255,0,176,51,2,0,234,222,221,221,28,119,255,0,185,51,2,0,236,255,152,152,0,67,255,0,194,51,2,0,185,8,246,241,238,246,255,0,203,51,2,0,204,38,218,212,185,218,255,0,212,51,2,0,214,67,201,201,148,199,255,0,221,51,2,0,228,139,223,+223,101,176,255,0,230,51,2,0,234,222,221,221,28,119,255,0,239,51,2,0,236,255,152,152,0,67,255,0,248,51,2,0,185,8,246,241,238,246,255,0,1,52,2,0,204,38,218,212,185,218,255,0,10,52,2,0,214,67,201,201,148,199,255,0,19,52,2,0,228,139,223,223,101,176,255,0,28,52,2,0,233,209,231,231,41,138,255,0,37,52,2,0,239,232,206,206,18,86,255,0,46,52,2,0,236,255,145,145,0,63,255,0,55,52,2,0,195,5,249,247,244,249,255,0,64,52,2,0,188,14,239,231,225,239,255,0,73,52,2,0,204,38,218,212,185,218,255,0,82,52,2,0,214,67,201,+201,148,199,255,0,91,52,2,0,228,139,223,223,101,176,255,0,100,52,2,0,233,209,231,231,41,138,255,0,109,52,2,0,239,232,206,206,18,86,255,0,118,52,2,0,236,255,145,145,0,63,255,0,127,52,2,0,195,5,249,247,244,249,255,0,136,52,2,0,188,14,239,231,225,239,255,0,145,52,2,0,204,38,218,212,185,218,255,0,154,52,2,0,214,67,201,201,148,199,255,0,163,52,2,0,228,139,223,223,101,176,255,0,172,52,2,0,233,209,231,231,41,138,255,0,181,52,2,0,239,232,206,206,18,86,255,0,190,52,2,0,236,255,152,152,0,67,255,0,199,52,2,+0,242,255,103,103,0,31,255,0,208,52,2,0,180,8,245,239,237,245,255,0,220,52,2,0,168,37,220,188,189,220,255,0,232,52,2,0,176,100,177,117,107,177,255,0,244,52,2,0,182,7,247,242,240,247,255,0,0,53,2,0,173,28,226,203,201,226,255,0,12,53,2,0,173,58,200,158,154,200,255,0,24,53,2,0,182,128,163,106,81,163,255,0,36,53,2,0,182,7,247,242,240,247,255,0,48,53,2,0,173,28,226,203,201,226,255,0,60,53,2,0,173,58,200,158,154,200,255,0,72,53,2,0,176,100,177,117,107,177,255,0,84,53,2,0,188,185,143,84,39,143,255,0,96,+53,2,0,182,7,247,242,240,247,255,0,108,53,2,0,170,18,235,218,218,235,255,0,120,53,2,0,168,37,220,188,189,220,255,0,132,53,2,0,173,58,200,158,154,200,255,0,144,53,2,0,176,100,177,117,107,177,255,0,156,53,2,0,188,185,143,84,39,143,255,0,168,53,2,0,182,7,247,242,240,247,255,0,180,53,2,0,170,18,235,218,218,235,255,0,192,53,2,0,168,37,220,188,189,220,255,0,204,53,2,0,173,58,200,158,154,200,255,0,216,53,2,0,172,83,186,128,125,186,255,0,228,53,2,0,182,128,163,106,81,163,255,0,240,53,2,0,190,216,134,74,20,+134,255,0,252,53,2,0,191,2,253,252,251,253,255,0,8,54,2,0,180,8,245,239,237,245,255,0,20,54,2,0,170,18,235,218,218,235,255,0,32,54,2,0,168,37,220,188,189,220,255,0,44,54,2,0,173,58,200,158,154,200,255,0,56,54,2,0,172,83,186,128,125,186,255,0,68,54,2,0,182,128,163,106,81,163,255,0,80,54,2,0,190,216,134,74,20,134,255,0,92,54,2,0,191,2,253,252,251,253,255,0,104,54,2,0,180,8,245,239,237,245,255,0,116,54,2,0,170,18,235,218,218,235,255,0,128,54,2,0,168,37,220,188,189,220,255,0,140,54,2,0,173,58,200,158,+154,200,255,0,152,54,2,0,172,83,186,128,125,186,255,0,164,54,2,0,182,128,163,106,81,163,255,0,176,54,2,0,188,185,143,84,39,143,255,0,188,54,2,0,191,255,125,63,0,125,255,0,200,54,2,0,242,255,103,103,0,31,255,0,210,54,2,0,150,241,97,5,48,97,255,0,221,54,2,0,249,220,178,178,24,43,255,0,231,54,2,0,5,163,214,214,96,77,255,0,241,54,2,0,13,119,244,244,165,130,255,0,251,54,2,0,15,54,253,253,219,199,255,0,5,55,2,0,142,32,240,209,229,240,255,0,15,55,2,0,141,87,222,146,197,222,255,0,25,55,2,0,143,167,195,67,+147,195,255,0,35,55,2,0,148,206,172,33,102,172,255,0,45,55,2,0,242,255,103,103,0,31,255,0,55,55,2,0,148,206,172,33,102,172,255,0,66,55,2,0,150,241,97,5,48,97,255,0,77,55,2,0,249,220,178,178,24,43,255,0,87,55,2,0,5,163,214,214,96,77,255,0,97,55,2,0,13,119,244,244,165,130,255,0,107,55,2,0,15,54,253,253,219,199,255,0,117,55,2,0,0,0,247,247,247,247,255,0,127,55,2,0,142,32,240,209,229,240,255,0,137,55,2,0,141,87,222,146,197,222,255,0,147,55,2,0,143,167,195,67,147,195,255,0,157,55,2,0,12,150,239,239,138,+98,255,0,166,55,2,0,0,0,247,247,247,247,255,0,175,55,2,0,143,128,207,103,169,207,255,0,184,55,2,0,248,255,202,202,0,32,255,0,193,55,2,0,13,119,244,244,165,130,255,0,202,55,2,0,141,87,222,146,197,222,255,0,211,55,2,0,143,247,176,5,113,176,255,0,220,55,2,0,248,255,202,202,0,32,255,0,229,55,2,0,13,119,244,244,165,130,255,0,238,55,2,0,0,0,247,247,247,247,255,0,247,55,2,0,141,87,222,146,197,222,255,0,0,56,2,0,143,247,176,5,113,176,255,0,9,56,2,0,249,220,178,178,24,43,255,0,18,56,2,0,12,150,239,239,138,+98,255,0,27,56,2,0,15,54,253,253,219,199,255,0,36,56,2,0,142,32,240,209,229,240,255,0,45,56,2,0,143,128,207,103,169,207,255,0,54,56,2,0,148,206,172,33,102,172,255,0,63,56,2,0,249,220,178,178,24,43,255,0,72,56,2,0,12,150,239,239,138,98,255,0,81,56,2,0,15,54,253,253,219,199,255,0,90,56,2,0,0,0,247,247,247,247,255,0,99,56,2,0,142,32,240,209,229,240,255,0,108,56,2,0,143,128,207,103,169,207,255,0,117,56,2,0,148,206,172,33,102,172,255,0,126,56,2,0,249,220,178,178,24,43,255,0,135,56,2,0,5,163,214,214,96,+77,255,0,144,56,2,0,13,119,244,244,165,130,255,0,153,56,2,0,15,54,253,253,219,199,255,0,162,56,2,0,142,32,240,209,229,240,255,0,171,56,2,0,141,87,222,146,197,222,255,0,180,56,2,0,143,167,195,67,147,195,255,0,189,56,2,0,148,206,172,33,102,172,255,0,198,56,2,0,249,220,178,178,24,43,255,0,207,56,2,0,5,163,214,214,96,77,255,0,216,56,2,0,13,119,244,244,165,130,255,0,225,56,2,0,15,54,253,253,219,199,255,0,234,56,2,0,0,0,247,247,247,247,255,0,243,56,2,0,142,32,240,209,229,240,255,0,252,56,2,0,141,87,222,+146,197,222,255,0,5,57,2,0,143,167,195,67,147,195,255,0,14,57,2,0,148,206,172,33,102,172,255,0,23,57,2,0,242,255,103,103,0,31,255,0,33,57,2,0,0,0,26,26,26,26,255,0,44,57,2,0,249,220,178,178,24,43,255,0,54,57,2,0,5,163,214,214,96,77,255,0,64,57,2,0,13,119,244,244,165,130,255,0,74,57,2,0,15,54,253,253,219,199,255,0,84,57,2,0,0,0,224,224,224,224,255,0,94,57,2,0,0,0,186,186,186,186,255,0,104,57,2,0,0,0,135,135,135,135,255,0,114,57,2,0,0,0,77,77,77,77,255,0,124,57,2,0,242,255,103,103,0,31,255,0,134,57,+2,0,0,0,77,77,77,77,255,0,145,57,2,0,0,0,26,26,26,26,255,0,156,57,2,0,249,220,178,178,24,43,255,0,166,57,2,0,5,163,214,214,96,77,255,0,176,57,2,0,13,119,244,244,165,130,255,0,186,57,2,0,15,54,253,253,219,199,255,0,196,57,2,0,0,0,255,255,255,255,255,0,206,57,2,0,0,0,224,224,224,224,255,0,216,57,2,0,0,0,186,186,186,186,255,0,226,57,2,0,0,0,135,135,135,135,255,0,236,57,2,0,12,150,239,239,138,98,255,0,245,57,2,0,0,0,255,255,255,255,255,0,254,57,2,0,0,0,153,153,153,153,255,0,7,58,2,0,248,255,202,202,0,+32,255,0,16,58,2,0,13,119,244,244,165,130,255,0,25,58,2,0,0,0,186,186,186,186,255,0,34,58,2,0,0,0,64,64,64,64,255,0,43,58,2,0,248,255,202,202,0,32,255,0,52,58,2,0,13,119,244,244,165,130,255,0,61,58,2,0,0,0,255,255,255,255,255,0,70,58,2,0,0,0,186,186,186,186,255,0,79,58,2,0,0,0,64,64,64,64,255,0,88,58,2,0,249,220,178,178,24,43,255,0,97,58,2,0,12,150,239,239,138,98,255,0,106,58,2,0,15,54,253,253,219,199,255,0,115,58,2,0,0,0,224,224,224,224,255,0,124,58,2,0,0,0,153,153,153,153,255,0,133,58,2,0,0,0,77,+77,77,77,255,0,142,58,2,0,249,220,178,178,24,43,255,0,151,58,2,0,12,150,239,239,138,98,255,0,160,58,2,0,15,54,253,253,219,199,255,0,169,58,2,0,0,0,255,255,255,255,255,0,178,58,2,0,0,0,224,224,224,224,255,0,187,58,2,0,0,0,153,153,153,153,255,0,196,58,2,0,0,0,77,77,77,77,255,0,205,58,2,0,249,220,178,178,24,43,255,0,214,58,2,0,5,163,214,214,96,77,255,0,223,58,2,0,13,119,244,244,165,130,255,0,232,58,2,0,15,54,253,253,219,199,255,0,241,58,2,0,0,0,224,224,224,224,255,0,250,58,2,0,0,0,186,186,186,186,255,+0,3,59,2,0,0,0,135,135,135,135,255,0,12,59,2,0,0,0,77,77,77,77,255,0,21,59,2,0,249,220,178,178,24,43,255,0,30,59,2,0,5,163,214,214,96,77,255,0,39,59,2,0,13,119,244,244,165,130,255,0,48,59,2,0,15,54,253,253,219,199,255,0,57,59,2,0,0,0,255,255,255,255,255,0,66,59,2,0,0,0,224,224,224,224,255,0,75,59,2,0,0,0,186,186,186,186,255,0,84,59,2,0,0,0,135,135,135,135,255,0,93,59,2,0,0,0,77,77,77,77,255,0,102,59,2,0,3,32,253,253,224,221,255,0,111,59,2,0,244,92,250,250,159,181,255,0,120,59,2,0,227,220,197,197,+27,138,255,0,129,59,2,0,13,28,254,254,235,226,255,0,138,59,2,0,252,72,251,251,180,185,255,0,147,59,2,0,238,147,247,247,104,161,255,0,156,59,2,0,224,253,174,174,1,126,255,0,165,59,2,0,13,28,254,254,235,226,255,0,174,59,2,0,252,72,251,251,180,185,255,0,183,59,2,0,238,147,247,247,104,161,255,0,192,59,2,0,227,220,197,197,27,138,255,0,201,59,2,0,213,252,122,122,1,119,255,0,210,59,2,0,13,28,254,254,235,226,255,0,219,59,2,0,3,60,252,252,197,192,255,0,228,59,2,0,244,92,250,250,159,181,255,0,237,59,2,0,238,+147,247,247,104,161,255,0,246,59,2,0,227,220,197,197,27,138,255,0,255,59,2,0,213,252,122,122,1,119,255,0,8,60,2,0,13,28,254,254,235,226,255,0,17,60,2,0,3,60,252,252,197,192,255,0,26,60,2,0,244,92,250,250,159,181,255,0,35,60,2,0,238,147,247,247,104,161,255,0,44,60,2,0,230,195,221,221,52,151,255,0,53,60,2,0,224,253,174,174,1,126,255,0,62,60,2,0,213,252,122,122,1,119,255,0,71,60,2,0,14,12,255,255,247,243,255,0,80,60,2,0,3,32,253,253,224,221,255,0,89,60,2,0,3,60,252,252,197,192,255,0,98,60,2,0,244,92,+250,250,159,181,255,0,107,60,2,0,238,147,247,247,104,161,255,0,116,60,2,0,230,195,221,221,52,151,255,0,125,60,2,0,224,253,174,174,1,126,255,0,134,60,2,0,213,252,122,122,1,119,255,0,143,60,2,0,14,12,255,255,247,243,255,0,152,60,2,0,3,32,253,253,224,221,255,0,161,60,2,0,3,60,252,252,197,192,255,0,170,60,2,0,244,92,250,250,159,181,255,0,179,60,2,0,238,147,247,247,104,161,255,0,188,60,2,0,230,195,221,221,52,151,255,0,197,60,2,0,224,253,174,174,1,126,255,0,206,60,2,0,213,252,122,122,1,119,255,0,215,60,+2,0,199,255,106,73,0,106,255,0,224,60,2,0,245,255,165,165,0,38,255,0,236,60,2,0,167,171,149,49,54,149,255,0,249,60,2,0,2,208,215,215,48,39,255,0,5,61,2,0,10,184,244,244,109,67,255,0,17,61,2,0,20,157,253,253,174,97,255,0,29,61,2,0,30,110,254,254,224,144,255,0,41,61,2,0,136,24,248,224,243,248,255,0,53,61,2,0,138,67,233,171,217,233,255,0,65,61,2,0,143,113,209,116,173,209,255,0,77,61,2,0,151,157,180,69,117,180,255,0,89,61,2,0,245,255,165,165,0,38,255,0,101,61,2,0,151,157,180,69,117,180,255,0,114,61,2,+0,167,171,149,49,54,149,255,0,127,61,2,0,2,208,215,215,48,39,255,0,139,61,2,0,10,184,244,244,109,67,255,0,151,61,2,0,20,157,253,253,174,97,255,0,163,61,2,0,30,110,254,254,224,144,255,0,175,61,2,0,42,64,255,255,255,191,255,0,187,61,2,0,136,24,248,224,243,248,255,0,199,61,2,0,138,67,233,171,217,233,255,0,211,61,2,0,143,113,209,116,173,209,255,0,223,61,2,0,13,164,252,252,141,89,255,0,234,61,2,0,42,64,255,255,255,191,255,0,245,61,2,0,143,86,219,145,191,219,255,0,0,62,2,0,254,225,215,215,25,28,255,0,11,+62,2,0,20,157,253,253,174,97,255,0,22,62,2,0,138,67,233,171,217,233,255,0,33,62,2,0,145,193,182,44,123,182,255,0,44,62,2,0,254,225,215,215,25,28,255,0,55,62,2,0,20,157,253,253,174,97,255,0,66,62,2,0,42,64,255,255,255,191,255,0,77,62,2,0,138,67,233,171,217,233,255,0,88,62,2,0,145,193,182,44,123,182,255,0,99,62,2,0,2,208,215,215,48,39,255,0,110,62,2,0,13,164,252,252,141,89,255,0,121,62,2,0,30,110,254,254,224,144,255,0,132,62,2,0,136,24,248,224,243,248,255,0,143,62,2,0,143,86,219,145,191,219,255,0,154,+62,2,0,151,157,180,69,117,180,255,0,165,62,2,0,2,208,215,215,48,39,255,0,176,62,2,0,13,164,252,252,141,89,255,0,187,62,2,0,30,110,254,254,224,144,255,0,198,62,2,0,42,64,255,255,255,191,255,0,209,62,2,0,136,24,248,224,243,248,255,0,220,62,2,0,143,86,219,145,191,219,255,0,231,62,2,0,151,157,180,69,117,180,255,0,242,62,2,0,2,208,215,215,48,39,255,0,253,62,2,0,10,184,244,244,109,67,255,0,8,63,2,0,20,157,253,253,174,97,255,0,19,63,2,0,30,110,254,254,224,144,255,0,30,63,2,0,136,24,248,224,243,248,255,0,+41,63,2,0,138,67,233,171,217,233,255,0,52,63,2,0,143,113,209,116,173,209,255,0,63,63,2,0,151,157,180,69,117,180,255,0,74,63,2,0,2,208,215,215,48,39,255,0,85,63,2,0,10,184,244,244,109,67,255,0,96,63,2,0,20,157,253,253,174,97,255,0,107,63,2,0,30,110,254,254,224,144,255,0,118,63,2,0,42,64,255,255,255,191,255,0,129,63,2,0,136,24,248,224,243,248,255,0,140,63,2,0,138,67,233,171,217,233,255,0,151,63,2,0,143,113,209,116,173,209,255,0,162,63,2,0,151,157,180,69,117,180,255,0,173,63,2,0,245,255,165,165,0,38,+255,0,185,63,2,0,107,255,104,0,104,55,255,0,198,63,2,0,2,208,215,215,48,39,255,0,210,63,2,0,10,184,244,244,109,67,255,0,222,63,2,0,20,157,253,253,174,97,255,0,234,63,2,0,31,115,254,254,224,139,255,0,246,63,2,0,51,106,239,217,239,139,255,0,2,64,2,0,62,130,217,166,217,106,255,0,14,64,2,0,83,121,189,102,189,99,255,0,26,64,2,0,103,211,152,26,152,80,255,0,38,64,2,0,245,255,165,165,0,38,255,0,50,64,2,0,103,211,152,26,152,80,255,0,63,64,2,0,107,255,104,0,104,55,255,0,76,64,2,0,2,208,215,215,48,39,255,0,+88,64,2,0,10,184,244,244,109,67,255,0,100,64,2,0,20,157,253,253,174,97,255,0,112,64,2,0,31,115,254,254,224,139,255,0,124,64,2,0,42,64,255,255,255,191,255,0,136,64,2,0,51,106,239,217,239,139,255,0,148,64,2,0,62,130,217,166,217,106],"i8",4,n.q+64066);+B([255,0,160,64,2,0,83,121,189,102,189,99,255,0,172,64,2,0,13,164,252,252,141,89,255,0,183,64,2,0,42,64,255,255,255,191,255,0,194,64,2,0,66,136,207,145,207,96,255,0,205,64,2,0,254,225,215,215,25,28,255,0,216,64,2,0,20,157,253,253,174,97,255,0,227,64,2,0,62,130,217,166,217,106,255,0,238,64,2,0,98,210,150,26,150,65,255,0,249,64,2,0,254,225,215,215,25,28,255,0,4,65,2,0,20,157,253,253,174,97,255,0,15,65,2,0,42,64,255,255,255,191,255,0,26,65,2,0,62,130,217,166,217,106,255,0,37,65,2,0,98,210,150,26,150,+65,255,0,48,65,2,0,2,208,215,215,48,39,255,0,59,65,2,0,13,164,252,252,141,89,255,0,70,65,2,0,31,115,254,254,224,139,255,0,81,65,2,0,51,106,239,217,239,139,255,0,92,65,2,0,66,136,207,145,207,96,255,0,103,65,2,0,103,211,152,26,152,80,255,0,114,65,2,0,2,208,215,215,48,39,255,0,125,65,2,0,13,164,252,252,141,89,255,0,136,65,2,0,31,115,254,254,224,139,255,0,147,65,2,0,42,64,255,255,255,191,255,0,158,65,2,0,51,106,239,217,239,139,255,0,169,65,2,0,66,136,207,145,207,96,255,0,180,65,2,0,103,211,152,26,152,+80,255,0,191,65,2,0,2,208,215,215,48,39,255,0,202,65,2,0,10,184,244,244,109,67,255,0,213,65,2,0,20,157,253,253,174,97,255,0,224,65,2,0,31,115,254,254,224,139,255,0,235,65,2,0,51,106,239,217,239,139,255,0,246,65,2,0,62,130,217,166,217,106,255,0,1,66,2,0,83,121,189,102,189,99,255,0,12,66,2,0,103,211,152,26,152,80,255,0,23,66,2,0,2,208,215,215,48,39,255,0,34,66,2,0,10,184,244,244,109,67,255,0,45,66,2,0,20,157,253,253,174,97,255,0,56,66,2,0,31,115,254,254,224,139,255,0,67,66,2,0,42,64,255,255,255,191,+255,0,78,66,2,0,51,106,239,217,239,139,255,0,89,66,2,0,62,130,217,166,217,106,255,0,100,66,2,0,83,121,189,102,189,99,255,0,111,66,2,0,103,211,152,26,152,80,255,0,122,66,2,0,13,44,254,254,224,210,255,0,131,66,2,0,9,139,252,252,146,114,255,0,140,66,2,0,1,211,222,222,45,38,255,0,149,66,2,0,13,37,254,254,229,217,255,0,158,66,2,0,11,108,252,252,174,145,255,0,167,66,2,0,7,179,251,251,106,74,255,0,176,66,2,0,253,224,203,203,24,29,255,0,185,66,2,0,13,37,254,254,229,217,255,0,194,66,2,0,11,108,252,252,174,+145,255,0,203,66,2,0,7,179,251,251,106,74,255,0,212,66,2,0,1,211,222,222,45,38,255,0,221,66,2,0,253,231,165,165,15,21,255,0,230,66,2,0,13,37,254,254,229,217,255,0,239,66,2,0,12,92,252,252,187,161,255,0,248,66,2,0,9,139,252,252,146,114,255,0,1,67,2,0,7,179,251,251,106,74,255,0,10,67,2,0,1,211,222,222,45,38,255,0,19,67,2,0,253,231,165,165,15,21,255,0,28,67,2,0,13,37,254,254,229,217,255,0,37,67,2,0,12,92,252,252,187,161,255,0,46,67,2,0,9,139,252,252,146,114,255,0,55,67,2,0,7,179,251,251,106,74,255,0,+64,67,2,0,3,208,239,239,59,44,255,0,73,67,2,0,253,224,203,203,24,29,255,0,82,67,2,0,251,255,153,153,0,13,255,0,91,67,2,0,14,15,255,255,245,240,255,0,100,67,2,0,13,44,254,254,224,210,255,0,109,67,2,0,12,92,252,252,187,161,255,0,118,67,2,0,9,139,252,252,146,114,255,0,127,67,2,0,7,179,251,251,106,74,255,0,136,67,2,0,3,208,239,239,59,44,255,0,145,67,2,0,253,224,203,203,24,29,255,0,154,67,2,0,251,255,153,153,0,13,255,0,163,67,2,0,14,15,255,255,245,240,255,0,172,67,2,0,13,44,254,254,224,210,255,0,181,67,+2,0,12,92,252,252,187,161,255,0,190,67,2,0,9,139,252,252,146,114,255,0,199,67,2,0,7,179,251,251,106,74,255,0,208,67,2,0,3,208,239,239,59,44,255,0,217,67,2,0,253,224,203,203,24,29,255,0,226,67,2,0,253,231,165,165,15,21,255,0,235,67,2,0,249,255,103,103,0,13,255,0,244,67,2,0,254,225,228,228,26,28,255,0,253,67,2,0,146,178,184,55,126,184,255,0,6,68,2,0,83,147,175,77,175,74,255,0,15,68,2,0,254,225,228,228,26,28,255,0,24,68,2,0,146,178,184,55,126,184,255,0,33,68,2,0,83,147,175,77,175,74,255,0,42,68,2,0,+207,132,163,152,78,163,255,0,51,68,2,0,254,225,228,228,26,28,255,0,60,68,2,0,146,178,184,55,126,184,255,0,69,68,2,0,83,147,175,77,175,74,255,0,78,68,2,0,207,132,163,152,78,163,255,0,87,68,2,0,21,255,255,255,127,0,255,0,96,68,2,0,254,225,228,228,26,28,255,0,105,68,2,0,146,178,184,55,126,184,255,0,114,68,2,0,83,147,175,77,175,74,255,0,123,68,2,0,207,132,163,152,78,163,255,0,132,68,2,0,21,255,255,255,127,0,255,0,141,68,2,0,42,204,255,255,255,51,255,0,150,68,2,0,254,225,228,228,26,28,255,0,159,68,2,0,+146,178,184,55,126,184,255,0,168,68,2,0,83,147,175,77,175,74,255,0,177,68,2,0,207,132,163,152,78,163,255,0,186,68,2,0,21,255,255,255,127,0,255,0,195,68,2,0,42,204,255,255,255,51,255,0,204,68,2,0,15,193,166,166,86,40,255,0,213,68,2,0,254,225,228,228,26,28,255,0,222,68,2,0,146,178,184,55,126,184,255,0,231,68,2,0,83,147,175,77,175,74,255,0,240,68,2,0,207,132,163,152,78,163,255,0,249,68,2,0,21,255,255,255,127,0,255,0,2,69,2,0,42,204,255,255,255,51,255,0,11,69,2,0,15,193,166,166,86,40,255,0,20,69,2,0,+232,121,247,247,129,191,255,0,29,69,2,0,254,225,228,228,26,28,255,0,38,69,2,0,146,178,184,55,126,184,255,0,47,69,2,0,83,147,175,77,175,74,255,0,56,69,2,0,207,132,163,152,78,163,255,0,65,69,2,0,21,255,255,255,127,0,255,0,74,69,2,0,42,204,255,255,255,51,255,0,83,69,2,0,15,193,166,166,86,40,255,0,92,69,2,0,232,121,247,247,129,191,255,0,101,69,2,0,0,0,153,153,153,153,255,0,110,69,2,0,114,120,194,102,194,165,255,0,119,69,2,0,11,155,252,252,141,98,255,0,128,69,2,0,156,77,203,141,160,203,255,0,137,69,2,+0,114,120,194,102,194,165,255,0,146,69,2,0,11,155,252,252,141,98,255,0,155,69,2,0,156,77,203,141,160,203,255,0,164,69,2,0,228,102,231,231,138,195,255,0,173,69,2,0,114,120,194,102,194,165,255,0,182,69,2,0,11,155,252,252,141,98,255,0,191,69,2,0,156,77,203,141,160,203,255,0,200,69,2,0,228,102,231,231,138,195,255,0,209,69,2,0,58,155,216,166,216,84,255,0,218,69,2,0,114,120,194,102,194,165,255,0,227,69,2,0,11,155,252,252,141,98,255,0,236,69,2,0,156,77,203,141,160,203,255,0,245,69,2,0,228,102,231,231,138,+195,255,0,254,69,2,0,58,155,216,166,216,84,255,0,7,70,2,0,34,208,255,255,217,47,255,0,16,70,2,0,114,120,194,102,194,165,255,0,25,70,2,0,11,155,252,252,141,98,255,0,34,70,2,0,156,77,203,141,160,203,255,0,43,70,2,0,228,102,231,231,138,195,255,0,52,70,2,0,58,155,216,166,216,84,255,0,61,70,2,0,34,208,255,255,217,47,255,0,70,70,2,0,25,90,229,229,196,148,255,0,79,70,2,0,114,120,194,102,194,165,255,0,88,70,2,0,11,155,252,252,141,98,255,0,97,70,2,0,156,77,203,141,160,203,255,0,106,70,2,0,228,102,231,231,+138,195,255,0,115,70,2,0,58,155,216,166,216,84,255,0,124,70,2,0,34,208,255,255,217,47,255,0,133,70,2,0,25,90,229,229,196,148,255,0,142,70,2,0,0,0,179,179,179,179,255,0,151,70,2,0,120,84,211,141,211,199,255,0,161,70,2,0,211,82,189,188,128,189,255,0,172,70,2,0,42,76,255,255,255,179,255,0,182,70,2,0,175,37,218,190,186,218,255,0,192,70,2,0,4,139,251,251,128,114,255,0,202,70,2,0,144,100,211,128,177,211,255,0,212,70,2,0,22,156,253,253,180,98,255,0,222,70,2,0,58,134,222,179,222,105,255,0,232,70,2,0,233,+47,252,252,205,229,255,0,242,70,2,0,0,0,217,217,217,217,255,0,252,70,2,0,120,84,211,141,211,199,255,0,6,71,2,0,211,82,189,188,128,189,255,0,17,71,2,0,77,41,235,204,235,197,255,0,28,71,2,0,42,76,255,255,255,179,255,0,38,71,2,0,175,37,218,190,186,218,255,0,48,71,2,0,4,139,251,251,128,114,255,0,58,71,2,0,144,100,211,128,177,211,255,0,68,71,2,0,22,156,253,253,180,98,255,0,78,71,2,0,58,134,222,179,222,105,255,0,88,71,2,0,233,47,252,252,205,229,255,0,98,71,2,0,0,0,217,217,217,217,255,0,108,71,2,0,120,84,+211,141,211,199,255,0,118,71,2,0,211,82,189,188,128,189,255,0,129,71,2,0,77,41,235,204,235,197,255,0,140,71,2,0,37,144,255,255,237,111,255,0,151,71,2,0,42,76,255,255,255,179,255,0,161,71,2,0,175,37,218,190,186,218,255,0,171,71,2,0,4,139,251,251,128,114,255,0,181,71,2,0,144,100,211,128,177,211,255,0,191,71,2,0,22,156,253,253,180,98,255,0,201,71,2,0,58,134,222,179,222,105,255,0,211,71,2,0,233,47,252,252,205,229,255,0,221,71,2,0,0,0,217,217,217,217,255,0,231,71,2,0,120,84,211,141,211,199,255,0,240,71,+2,0,42,76,255,255,255,179,255,0,249,71,2,0,175,37,218,190,186,218,255,0,2,72,2,0,120,84,211,141,211,199,255,0,11,72,2,0,42,76,255,255,255,179,255,0,20,72,2,0,175,37,218,190,186,218,255,0,29,72,2,0,4,139,251,251,128,114,255,0,38,72,2,0,120,84,211,141,211,199,255,0,47,72,2,0,42,76,255,255,255,179,255,0,56,72,2,0,175,37,218,190,186,218,255,0,65,72,2,0,4,139,251,251,128,114,255,0,74,72,2,0,144,100,211,128,177,211,255,0,83,72,2,0,120,84,211,141,211,199,255,0,92,72,2,0,42,76,255,255,255,179,255,0,101,72,+2,0,175,37,218,190,186,218,255,0,110,72,2,0,4,139,251,251,128,114,255,0,119,72,2,0,144,100,211,128,177,211,255,0,128,72,2,0,22,156,253,253,180,98,255,0,137,72,2,0,120,84,211,141,211,199,255,0,146,72,2,0,42,76,255,255,255,179,255,0,155,72,2,0,175,37,218,190,186,218,255,0,164,72,2,0,4,139,251,251,128,114,255,0,173,72,2,0,144,100,211,128,177,211,255,0,182,72,2,0,22,156,253,253,180,98,255,0,191,72,2,0,58,134,222,179,222,105,255,0,200,72,2,0,120,84,211,141,211,199,255,0,209,72,2,0,42,76,255,255,255,179,+255,0,218,72,2,0,175,37,218,190,186,218,255,0,227,72,2,0,4,139,251,251,128,114,255,0,236,72,2,0,144,100,211,128,177,211,255,0,245,72,2,0,22,156,253,253,180,98,255,0,254,72,2,0,58,134,222,179,222,105,255,0,7,73,2,0,233,47,252,252,205,229,255,0,16,73,2,0,120,84,211,141,211,199,255,0,25,73,2,0,42,76,255,255,255,179,255,0,34,73,2,0,175,37,218,190,186,218,255,0,43,73,2,0,4,139,251,251,128,114,255,0,52,73,2,0,144,100,211,128,177,211,255,0,61,73,2,0,22,156,253,253,180,98,255,0,70,73,2,0,58,134,222,179,222,+105,255,0,79,73,2,0,233,47,252,252,205,229,255,0,88,73,2,0,0,0,217,217,217,217,255,0,97,73,2,0,237,253,158,158,1,66,255,0,111,73,2,0,177,130,162,94,79,162,255,0,126,73,2,0,250,180,213,213,62,79,255,0,140,73,2,0,10,184,244,244,109,67,255,0,154,73,2,0,20,157,253,253,174,97,255,0,168,73,2,0,31,115,254,254,224,139,255,0,182,73,2,0,49,96,245,230,245,152,255,0,196,73,2,0,79,65,221,171,221,164,255,0,210,73,2,0,114,120,194,102,194,165,255,0,224,73,2,0,143,187,189,50,136,189,255,0,238,73,2,0,237,253,158,158,+1,66,255,0,252,73,2,0,143,187,189,50,136,189,255,0,11,74,2,0,177,130,162,94,79,162,255,0,26,74,2,0,250,180,213,213,62,79,255,0,40,74,2,0,10,184,244,244,109,67,255,0,54,74,2,0,20,157,253,253,174,97,255,0,68,74,2,0,31,115,254,254,224,139,255,0,82,74,2,0,42,64,255,255,255,191,255,0,96,74,2,0,49,96,245,230,245,152,255,0,110,74,2,0,79,65,221,171,221,164,255,0,124,74,2,0,114,120,194,102,194,165,255,0,138,74,2,0,13,164,252,252,141,89,255,0,151,74,2,0,42,64,255,255,255,191,255,0,164,74,2,0,81,77,213,153,+213,148,255,0,177,74,2,0,254,225,215,215,25,28,255,0,190,74,2,0,20,157,253,253,174,97,255,0,203,74,2,0,79,65,221,171,221,164,255,0,216,74,2,0,143,196,186,43,131,186,255,0,229,74,2,0,254,225,215,215,25,28,255,0,242,74,2,0,20,157,253,253,174,97,255,0,255,74,2,0,42,64,255,255,255,191,255,0,12,75,2,0,79,65,221,171,221,164,255,0,25,75,2,0,143,196,186,43,131,186,255,0,38,75,2,0,250,180,213,213,62,79,255,0,51,75,2,0,13,164,252,252,141,89,255,0,64,75,2,0,31,115,254,254,224,139,255,0,77,75,2,0,49,96,245,230,+245,152,255,0,90,75,2,0,81,77,213,153,213,148,255,0,103,75,2,0,143,187,189,50,136,189,255,0,116,75,2,0,250,180,213,213,62,79,255,0,129,75,2,0,13,164,252,252,141,89,255,0,142,75,2,0,31,115,254,254,224,139,255,0,155,75,2,0,42,64,255,255,255,191,255,0,168,75,2,0,49,96,245,230,245,152,255,0,181,75,2,0,81,77,213,153,213,148,255,0,194,75,2,0,143,187,189,50,136,189,255,0,207,75,2,0,250,180,213,213,62,79,255,0,220,75,2,0,10,184,244,244,109,67,255,0,233,75,2,0,20,157,253,253,174,97,255,0,246,75,2,0,31,115,+254,254,224,139,255,0,3,76,2,0,49,96,245,230,245,152,255,0,16,76,2,0,79,65,221,171,221,164,255,0,29,76,2,0,114,120,194,102,194,165,255,0,42,76,2,0,143,187,189,50,136,189,255,0,55,76,2,0,250,180,213,213,62,79,255,0,68,76,2,0,10,184,244,244,109,67,255,0,81,76,2,0,20,157,253,253,174,97,255,0,94,76,2,0,31,115,254,254,224,139,255,0,107,76,2,0,42,64,255,255,255,191,255,0,120,76,2,0,49,96,245,230,245,152,255,0,133,76,2,0,79,65,221,171,221,164,255,0,146,76,2,0,114,120,194,102,194,165,255,0,159,76,2,0,143,+187,189,50,136,189,255,0,172,76,2,0,147,15,255,240,248,255,255,0,187,76,2,0,24,35,250,250,235,215,255,0,205,76,2,0,127,255,255,0,255,255,255,0,215,76,2,0,113,128,255,127,255,212,255,0,231,76,2,0,127,15,255,240,255,255,255,0,242,76,2,0,42,26,245,245,245,220,255,0,253,76,2,0,23,58,255,255,228,196,255,0,9,77,2,0,0,0,0,0,0,0,255,0,20,77,2,0,25,49,255,255,235,205,255,0,40,77,2,0,170,255,255,0,0,255,255,0,50,77,2,0,192,206,226,138,43,226,255,0,66,77,2,0,0,190,165,165,42,42,255,0,77,77,2,0,23,99,222,222,+184,135,255,0,92,77,2,0,128,103,160,95,158,160,255,0,107,77,2,0,63,255,255,127,255,0,255,0,123,77,2,0,17,218,210,210,105,30,255,0,138,77,2,0,11,175,255,255,127,80,255,0,149,77,2,0,154,147,237,100,149,237,255,0,169,77,2,0,33,34,255,255,248,220,255,0,183,77,2,0,246,231,220,220,20,60,255,0,196,77,2,0,127,255,255,0,255,255,255,0,206,77,2,0,170,255,139,0,0,139,255,0,220,77,2,0,127,255,139,0,139,139,255,0,234,77,2,0,30,239,184,184,134,11,255,0,253,77,2,0,0,0,169,169,169,169,255,0,11,78,2,0,85,255,100,0,+100,0,255,0,26,78,2,0,0,0,169,169,169,169,255,0,40,78,2,0,39,110,189,189,183,107,255,0,55,78,2,0,212,255,139,139,0,139,255,0,72,78,2,0,58,142,107,85,107,47,255,0,92,78,2,0,23,255,255,255,140,0,255,0,108,78,2,0,198,192,204,153,50,204,255,0,124,78,2,0,0,255,139,139,0,0,255,0,137,78,2,0,10,121,233,233,150,122,255,0,153,78,2,0,85,61,188,143,188,143,255,0,171,78,2,0,175,143,139,72,61,139,255,0,190,78,2,0,127,103,79,47,79,79,255,0,209,78,2,0,127,103,79,47,79,79,255,0,228,78,2,0,128,255,209,0,206,209,255,+0,247,78,2,0,199,255,211,148,0,211,255,0,7,79,2,0,232,235,255,255,20,147,255,0,21,79,2,0,138,255,255,0,191,255,255,0,38,79,2,0,0,0,105,105,105,105,255,0,51,79,2,0,0,0,105,105,105,105,255,0,64,79,2,0,148,225,255,30,144,255,255,0,80,79,2,0,0,206,178,178,34,34,255,0,95,79,2,0,28,15,255,255,250,240,255,0,112,79,2,0,85,192,139,34,139,34,255,0,129,79,2,0,212,255,255,255,0,255,255,0,142,79,2,0,0,0,220,220,220,220,255,0,157,79,2,0,170,7,255,248,248,255,255,0,173,79,2,0,35,255,255,255,215,0,255,0,183,79,2,+0,30,217,218,218,165,32,255,0,198,79,2,0,0,0,128,128,128,128,255,0,208,79,2,0,85,255,128,0,128,0,255,0,219,79,2,0,59,208,255,173,255,47,255,0,236,79,2,0,0,0,128,128,128,128,255,0,246,79,2,0,85,15,255,240,255,240,255,0,4,80,2,0,233,150,255,255,105,180,255,0,17,80,2,0,0,140,205,205,92,92,255,0,32,80,2,0,194,255,130,75,0,130,255,0,44,80,2,0,42,15,255,255,255,240,255,0,55,80,2,0,38,106,240,240,230,140,255,0,66,80,2,0,170,20,250,230,230,250,255,0,80,80,2,0,240,15,255,255,240,245,255,0,99,80,2,0,64,255,+252,124,252,0,255,0,114,80,2,0,38,49,255,255,250,205,255,0,132,80,2,0,137,63,230,173,216,230,255,0,147,80,2,0,0,119,240,240,128,128,255,0,163,80,2,0,127,31,255,224,255,255,255,0,178,80,2,0,42,40,250,250,250,210,255,0,204,80,2,0,0,0,211,211,211,211,255,0,219,80,2,0,85,100,238,144,238,144,255,0,235,80,2,0,0,0,211,211,211,211,255,0,250,80,2,0,248,73,255,255,182,193,255,0,9,81,2,0,12,132,255,255,160,122,255,0,26,81,2,0,125,209,178,32,178,170,255,0,45,81,2,0,143,117,250,135,206,250,255,0,63,81,2,0,148,+56,153,119,136,153,255,0,83,81,2,0,148,56,153,119,136,153,255,0,103,81,2,0,151,52,222,176,196,222,255,0,123,81,2,0,42,31,255,255,255,224,255,0,140,81,2,0,85,255,255,0,255,0,255,0,150,81,2,0,85,192,205,50,205,50,255,0,165,81,2,0,21,20,250,250,240,230,255,0,176,81,2,0,212,255,255,255,0,255,255,0,189,81,2,0,0,255,128,128,0,0,255,0,201,81,2,0,113,128,205,102,205,170,255,0,223,81,2,0,170,255,205,0,0,205,255,0,239,81,2,0,204,152,211,186,85,211,255,0,1,82,2,0,183,124,219,147,112,219,255,0,19,82,2,0,103,+169,179,60,179,113,255,0,39,82,2,0,176,143,238,123,104,238,255,0,60,82,2,0,111,255,250,0,250,154,255,0,83,82,2,0,125,167,209,72,209,204,255,0,104,82,2,0,228,228,199,199,21,133,255,0,125,82,2,0,170,198,112,25,25,112,255,0,143,82,2,0,106,9,255,245,255,250,255,0,158,82,2,0,4,30,255,255,228,225,255,0,173,82,2,0,26,73,255,255,228,181,255,0,187,82,2,0,25,81,255,255,222,173,255,0,204,82,2,0,170,255,128,0,0,128,255,0,214,82,2,0,27,23,253,253,245,230,255,0,227,82,2,0,42,255,128,128,128,0,255,0,238,82,2,0,+56,192,142,107,142,35,255,0,253,82,2,0,27,255,255,255,165,0,255,0,9,83,2,0,11,255,255,255,69,0,255,0,24,83,2,0,214,123,218,218,112,214,255,0,36,83,2,0,38,72,238,238,232,170,255,0,55,83,2,0,85,100,251,152,251,152,255,0,70,83,2,0,127,67,238,175,238,238,255,0,89,83,2,0,241,124,219,219,112,147,255,0,108,83,2,0,26,41,255,255,239,213,255,0,124,83,2,0,20,70,255,255,218,185,255,0,139,83,2,0,20,176,205,205,133,63,255,0,149,83,2,0,247,63,255,255,192,203,255,0,159,83,2,0,212,70,221,221,160,221,255,0,169,83,+2,0,132,59,230,176,224,230,255,0,185,83,2,0,212,255,128,128,0,128,255,0,197,83,2,0,0,255,255,255,0,0,255,0,206,83,2,0,0,61,188,188,143,143,255,0,221,83,2,0,159,181,225,65,105,225,255,0,236,83,2,0,17,220,139,139,69,19,255,0,253,83,2,0,4,138,250,250,128,114,255,0,9,84,2,0,19,154,244,244,164,96,255,0,25,84,2,0,103,170,139,46,139,87,255,0,39,84,2,0,17,16,255,255,245,238,255,0,53,84,2,0,13,183,160,160,82,45,255,0,65,84,2,0,0,0,192,192,192,192,255,0,77,84,2,0,139,108,235,135,206,235,255,0,90,84,2,0,175,+143,205,106,90,205,255,0,105,84,2,0,148,56,144,112,128,144,255,0,120,84,2,0,148,56,144,112,128,144,255,0,135,84,2,0,0,5,255,255,250,250,255,0,145,84,2,0,106,255,255,0,255,127,255,0,162,84,2,0,146,155,180,70,130,180,255,0,177,84,2,0,24,84,210,210,180,140,255,0,186,84,2,0,127,255,128,0,128,128,255,0,196,84,2,0,212,29,216,216,191,216,255,0,209,84,2,0,6,184,255,255,99,71,255,0,221,84,2,0,123,182,224,64,224,208,255,0,236,84,2,0,212,115,238,238,130,238,255,0,248,84,2,0,27,68,245,245,222,179,255,0,3,85,+2,0,0,0,255,255,255,255,255,0,14,85,2,0,0,0,245,245,245,245,255,0,30,85,2,0,42,255,255,255,255,0,255,0,42,85,2,0,56,192,205,154,205,50,255,0,59,85,2,0,45,67,252,247,252,185,255,0,68,85,2,0,68,91,221,173,221,142,255,0,77,85,2,0,98,178,163,49,163,84,255,0,86,85,2,0,42,50,255,255,255,204,255,0,95,85,2,0,62,85,230,194,230,153,255,0,104,85,2,0,85,100,198,120,198,121,255,0,113,85,2,0,99,187,132,35,132,67,255,0,122,85,2,0,42,50,255,255,255,204,255,0,131,85,2,0,62,85,230,194,230,153,255,0,140,85,2,0,85,100,+198,120,198,121,255,0,149,85,2,0,98,178,163,49,163,84,255,0,158,85,2,0,107,255,104,0,104,55,255,0,167,85,2,0,42,50,255,255,255,204,255,0,176,85,2,0,55,81,240,217,240,163,255,0,185,85,2,0,68,91,221,173,221,142,255,0,194,85,2,0,85,100,198,120,198,121,255,0,203,85,2,0,98,178,163,49,163,84,255,0,212,85,2,0,107,255,104,0,104,55,255,0,221,85,2,0,42,50,255,255,255,204,255,0,230,85,2,0,55,81,240,217,240,163,255,0,239,85,2,0,68,91,221,173,221,142,255,0,248,85,2,0,85,100,198,120,198,121,255,0,1,86,2,0,96,158,+171,65,171,93,255,0,10,86,2,0,99,187,132,35,132,67,255,0,19,86,2,0,108,255,90,0,90,50,255,0,28,86,2,0,42,25,255,255,255,229,255,0,37,86,2,0,45,67,252,247,252,185,255,0,46,86,2,0,55,81,240,217,240,163,255,0,55,86,2,0,68,91,221,173,221,142,255,0,64,86,2,0,85,100,198,120,198,121,255,0,73,86,2,0,96,158,171,65,171,93,255,0,82,86,2,0,99,187,132,35,132,67,255,0,91,86,2,0,108,255,90,0,90,50,255,0,100,86,2,0,42,25,255,255,255,229,255,0,109,86,2,0,45,67,252,247,252,185,255,0,118,86,2,0,55,81,240,217,240,163,+255,0,127,86,2,0,68,91,221,173,221,142,255,0,136,86,2,0,85,100,198,120,198,121,255,0,145,86,2,0,96,158,171,65,171,93,255,0,154,86,2,0,99,187,132,35,132,67,255,0,163,86,2,0,107,255,104,0,104,55,255,0,172,86,2,0,110,255,69,0,69,41,255,0,181,86,2,0,49,73,248,237,248,177,255,0,192,86,2,0,117,97,205,127,205,187,255,0,203,86,2,0,144,194,184,44,127,184,255,0,214,86,2,0,42,50,255,255,255,204,255,0,225,86,2,0,99,66,218,161,218,180,255,0,236,86,2,0,132,170,196,65,182,196,255,0,247,86,2,0,150,203,168,34,94,+168,255,0,2,87,2,0,42,50,255,255,255,204,255,0,13,87,2,0,99,66,218,161,218,180,255,0,24,87,2,0,132,170,196,65,182,196,255,0,35,87,2,0,144,194,184,44,127,184,255,0,46,87,2,0,164,191,148,37,52,148,255,0,57,87,2,0,42,50,255,255,255,204,255,0,68,87,2,0,69,58,233,199,233,180,255,0,79,87,2,0,117,97,205,127,205,187,255,0,90,87,2,0,132,170,196,65,182,196,255,0,101,87,2,0,144,194,184,44,127,184,255,0,112,87,2,0,164,191,148,37,52,148,255,0,123,87,2,0,42,50,255,255,255,204,255,0,134,87,2,0,69,58,233,199,233,+180,255,0,145,87,2,0,117,97,205,127,205,187,255,0,156,87,2,0,132,170,196,65,182,196,255,0,167,87,2,0,139,216,192,29,145,192,255,0,178,87,2,0,150,203,168,34,94,168,255,0,189,87,2,0,158,231,132,12,44,132,255,0,200,87,2,0,42,38,255,255,255,217,255,0,211,87,2,0,49,73,248,237,248,177,255,0,222,87,2,0,69,58,233,199,233,180,255,0,233,87,2,0,117,97,205,127,205,187,255,0,244,87,2,0,132,170,196,65,182,196,255,0,255,87,2,0,139,216,192,29,145,192,255,0,10,88,2,0,150,203,168,34,94,168,255,0,21,88,2,0,158,231,+132,12,44,132,255,0,32,88,2,0,42,38,255,255,255,217,255,0,43,88,2,0,49,73,248,237,248,177,255,0,54,88,2,0,69,58,233,199,233,180,255,0,65,88,2,0,117,97,205,127,205,187,255,0,76,88,2,0,132,170,196,65,182,196,255,0,87,88,2,0,139,216,192,29,145,192,255,0,98,88,2,0,150,203,168,34,94,168,255,0,109,88,2,0,164,191,148,37,52,148,255,0,120,88,2,0,158,231,88,8,29,88,255,0,131,88,2,0,37,66,255,255,247,188,255,0,142,88,2,0,28,175,254,254,196,79,255,0,153,88,2,0,16,238,217,217,95,14,255,0,164,88,2,0,42,42,255,+255,255,212,255,0,175,88,2,0,28,112,254,254,217,142,255,0,186,88,2,0,22,213,254,254,153,41,255,0,197,88,2,0,15,252,204,204,76,2,255,0,208,88,2,0,42,42,255,255,255,212,255,0,219,88,2,0,28,112,254,254,217,142,255,0,230,88,2,0,22,213,254,254,153,41,255,0,241,88,2,0,16,238,217,217,95,14,255,0,252,88,2,0,13,248,153,153,52,4,255,0,7,89,2,0,42,42,255,255,255,212,255,0,18,89,2,0,31,109,254,254,227,145,255,0,29,89,2,0,28,175,254,254,196,79,255,0,40,89,2,0,22,213,254,254,153,41,255,0,51,89,2,0,16,238,217,217,+95,14,255,0,62,89,2,0,13,248,153,153,52,4,255,0,73,89,2,0,42,42,255,255,255,212,255,0,84,89,2,0,31,109,254,254,227,145,255,0,95,89,2,0,28,175,254,254,196,79,255,0,106,89,2,0,22,213,254,254,153,41,255,0,117,89,2,0,18,233,236,236,112,20,255,0,128,89,2,0,15,252,204,204,76,2,255,0,139,89,2,0,12,247,140,140,45,4,255,0,150,89,2,0,42,25,255,255,255,229,255,0,161,89,2,0,37,66,255,255,247,188,255,0,172,89,2,0,31,109,254,254,227,145,255,0,183,89,2,0,28,175,254,254,196,79,255,0,194,89,2,0,22,213,254,254,153,+41,255,0,205,89,2,0,18,233,236,236,112,20,255,0,216,89,2,0,15,252,204,204,76,2,255,0,227,89,2,0,12,247,140,140,45,4,255,0,238,89,2,0,42,25,255,255,255,229,255,0,249,89,2,0,37,66,255,255,247,188,255,0,4,90,2,0,31,109,254,254,227,145,255,0,15,90,2,0,28,175,254,254,196,79,255,0,26,90,2,0,22,213,254,254,153,41,255,0,37,90,2,0,18,233,236,236,112,20,255,0,48,90,2,0,15,252,204,204,76,2,255,0,59,90,2,0,13,248,153,153,52,4,255,0,70,90,2,0,13,240,102,102,37,6,255,0,81,90,2,0,34,95,255,255,237,160,255,0,92,+90,2,0,24,178,254,254,178,76,255,0,103,90,2,0,5,221,240,240,59,32,255,0,114,90,2,0,42,77,255,255,255,178,255,0,125,90,2,0,29,162,254,254,204,92,255,0,136,90,2,0,17,194,253,253,141,60,255,0,147,90,2,0,254,225,227,227,26,28,255,0,158,90,2,0,42,77,255,255,255,178,255,0,169,90,2,0,29,162,254,254,204,92,255,0,180,90,2,0,17,194,253,253,141,60,255,0,191,90,2,0,5,221,240,240,59,32,255,0,202,90,2,0,246,255,189,189,0,38,255,0,213,90,2,0,42,77,255,255,255,178,255,0,224,90,2,0,30,136,254,254,217,118,255,0,235,+90,2,0,24,178,254,254,178,76,255,0,246,90,2,0,17,194,253,253,141,60,255,0,1,91,2,0,5,221,240,240,59,32,255,0,12,91,2,0,246,255,189,189,0,38,255,0,23,91,2,0,42,77,255,255,255,178,255,0,34,91,2,0,30,136,254,254,217,118,255,0,45,91,2,0,24,178,254,254,178,76,255,0,56,91,2,0,17,194,253,253,141,60,255,0,67,91,2,0,7,212,252,252,78,42,255,0,78,91,2,0,254,225,227,227,26,28,255,0,89,91,2,0,245,255,177,177,0,38,255,0,100,91,2,0,42,50,255,255,255,204,255,0,111,91,2,0,34,95,255,255,237,160,255,0,122,91,2,0,30,+136,254,254,217,118,255,0,133,91,2,0,24,178,254,254,178,76,255,0,144,91,2,0,17,194,253,253,141,60,255,0,155,91,2,0,7,212,252,252,78,42,255,0,166,91,2,0,254,225,227,227,26,28,255,0,177,91,2,0,245,255,177,177,0,38,255,0,188,91,2,0,42,50,255,255,255,204,255,0,199,91,2,0,34,95,255,255,237,160,255,0,210,91,2,0,30,136,254,254,217,118,255,0,221,91,2,0,24,178,254,254,178,76,255,0,232,91,2,0,17,194,253,253,141,60,255,0,243,91,2,0,7,212,252,252,78,42,255,0,254,91,2,0,254,225,227,227,26,28,255,0,9,92,2,0,246,+255,189,189,0,38,255,0,20,92,2,0,242,255,128,128,0,38,255,0,31,92,2,0,147,15,255,240,248,255,255,0,41,92,2,0,24,35,250,250,235,215,255,0,54,92,2,0,23,36,255,255,239,219,255,0,68,92,2,0,23,36,238,238,223,204,255,0,82,92,2,0,23,36,205,205,192,176,255,0,96,92,2,0,24,34,139,139,131,120,255,0,110,92,2,0,113,128,255,127,255,212,255,0,121,92,2,0,113,128,255,127,255,212,255,0,133,92,2,0,113,128,238,118,238,198,255,0,145,92,2,0,113,128,205,102,205,170,255,0,157,92,2,0,113,128,139,69,139,116,255,0,169,92,2,+0,127,15,255,240,255,255,255,0,175,92,2,0,127,15,255,240,255,255,255,0,182,92,2,0,127,15,238,224,238,238,255,0,189,92,2,0,127,14,205,193,205,205,255,0,196,92,2,0,127,14,139,131,139,139,255,0,203,92,2,0,42,26,245,245,245,220,255,0,209,92,2,0,23,58,255,255,228,196,255,0,216,92,2,0,23,58,255,255,228,196,255,0,224,92,2,0,23,58,238,238,213,183,255,0,232,92,2,0,22,58,205,205,183,158,255,0,240,92,2,0,23,58,139,139,125,107,255,0,234,115,2,0,0,0,0,0,0,0,255,0,248,92,2,0,25,49,255,255,235,205,255,0,7,93,2,+0,170,255,255,0,0,255,255,0,12,93,2,0,170,255,255,0,0,255,255,0,18,93,2,0,170,255,238,0,0,238,255,0,24,93,2,0,170,255,205,0,0,205,255,0,30,93,2,0,170,255,139,0,0,139,255,0,36,93,2,0,192,206,226,138,43,226,255,0,47,93,2,0,0,190,165,165,42,42,255,0,53,93,2,0,0,191,255,255,64,64,255,0,60,93,2,0,0,191,238,238,59,59,255,0,67,93,2,0,0,191,205,205,51,51,255,0,74,93,2,0,0,190,139,139,35,35,255,0,81,93,2,0,23,99,222,222,184,135,255,0,91,93,2,0,23,100,255,255,211,155,255,0,102,93,2,0,23,99,238,238,197,145,+255,0,113,93,2,0,23,99,205,205,170,125,255,0,124,93,2,0,23,99,139,139,115,85,255,0,135,93,2,0,128,103,160,95,158,160,255,0,145,93,2,0,131,103,255,152,245,255,255,0,156,93,2,0,131,102,238,142,229,238,255,0,167,93,2,0,131,103,205,122,197,205,255,0,178,93,2,0,131,102,139,83,134,139,255,0,189,93,2,0,63,255,255,127,255,0,255,0,200,93,2,0,63,255,255,127,255,0,255,0,212,93,2,0,63,255,238,118,238,0,255,0,224,93,2,0,63,255,205,102,205,0,255,0,236,93,2,0,63,255,139,69,139,0,255,0,248,93,2,0,17,218,210,210,+105,30,255,0,2,94,2,0,17,219,255,255,127,36,255,0,13,94,2,0,17,219,238,238,118,33,255,0,24,94,2,0,17,218,205,205,102,29,255,0,35,94,2,0,17,220,139,139,69,19,255,0,46,94,2,0,11,175,255,255,127,80,255,0,52,94,2,0,7,169,255,255,114,86,255,0,59,94,2,0,6,169,238,238,106,80,255,0,66,94,2,0,6,169,205,205,91,69,255,0,73,94,2,0,6,168,139,139,62,47,255,0,80,94,2,0,154,147,237,100,149,237,255,0,95,94,2,0,33,34,255,255,248,220,255,0,104,94,2,0,33,34,255,255,248,220,255,0,114,94,2,0,34,35,238,238,232,205,255,+0,124,94,2,0,34,34,205,205,200,177,255,0,134,94,2,0,35,34,139,139,136,120,255,0,144,94,2,0,246,231,220,220,20,60,255,0,152,94,2,0,127,255,255,0,255,255,255,0,157,94,2,0,127,255,255,0,255,255,255,0,163,94,2,0,127,255,238,0,238,238,255,0,169,94,2,0,127,255,205,0,205,205,255,0,175,94,2,0,127,255,139,0,139,139,255,0,181,94,2,0,30,239,184,184,134,11,255,0,195,94,2,0,30,240,255,255,185,15,255,0,210,94,2,0,30,240,238,238,173,14,255,0,225,94,2,0,30,240,205,205,149,12,255,0,240,94,2,0,30,240,139,139,101,8,+255,0,255,94,2,0,85,255,100,0,100,0,255,0,9,95,2,0,39,110,189,189,183,107,255,0,19,95,2,0,58,142,107,85,107,47,255,0,34,95,2,0,58,143,255,202,255,112,255,0,50,95,2,0,58,143,238,188,238,104,255,0,66,95,2,0,58,143,205,162,205,90,255,0,82,95,2,0,58,143,139,110,139,61,255,0,98,95,2,0,23,255,255,255,140,0,255,0,109,95,2,0,21,255,255,255,127,0,255,0,121,95,2,0,21,255,238,238,118,0,255,0,133,95,2,0,21,255,205,205,102,0,255,0,145,95,2,0,21,255,139,139,69,0,255,0,157,95,2,0,198,192,204,153,50,204,255,0,168,+95,2,0,198,193,255,191,62,255,255,0,180,95,2,0,198,192,238,178,58,238,255,0,192,95,2,0,198,192,205,154,50,205,255,0,204,95,2,0,198,192,139,104,34,139,255,0,216,95,2,0,10,121,233,233,150,122,255,0,227,95,2,0,85,61,188,143,188,143,255,0,240,95,2,0,85,62,255,193,255,193,255,0,254,95,2,0,85,62,238,180,238,180,255,0,12,96,2,0,85,62,205,155,205,155,255,0,26,96,2,0,85,62,139,105,139,105,255,0,40,96,2,0,175,143,139,72,61,139,255,0,54,96,2,0,127,103,79,47,79,79,255,0,68,96,2,0,127,104,255,151,255,255,255,+0,83,96,2,0,127,103,238,141,238,238,255,0,98,96,2,0,127,104,205,121,205,205,255,0,113,96,2,0,127,104,139,82,139,139,255,0,128,96,2,0,127,103,79,47,79,79,255,0,142,96,2,0,128,255,209,0,206,209,255,0,156,96,2,0,199,255,211,148,0,211,255,0,167,96,2,0,232,235,255,255,20,147,255,0,176,96,2,0,232,235,255,255,20,147,255,0,186,96,2,0,232,235,238,238,18,137,255,0,196,96,2,0,232,235,205,205,16,118,255,0,206,96,2,0,231,236,139,139,10,80,255,0,216,96,2,0,138,255,255,0,191,255,255,0,228,96,2,0,138,255,255,0,191,+255,255,0,241,96,2,0,138,255,238,0,178,238,255,0,254,96,2,0,138,255,205,0,154,205,255,0,11,97,2,0,138,255,139,0,104,139,255,0,24,97,2,0,0,0,105,105,105,105,255,0,32,97,2,0,0,0,105,105,105,105,255,0,40,97,2,0,148,225,255,30,144,255,255,0,51,97,2,0,148,225,255,30,144,255,255,0,63,97,2,0,148,225,238,28,134,238,255,0,75,97,2,0,148,225,205,24,116,205,255,0,87,97,2,0,148,225,139,16,78,139,255,0,99,97,2,0,0,206,178,178,34,34,255,0,109,97,2,0,0,207,255,255,48,48,255,0,120,97,2,0,0,207,238,238,44,44,255,0,+131,97,2,0,0,207,205,205,38,38,255,0,142,97,2,0,0,207,139,139,26,26,255,0,153,97,2,0,28,15,255,255,250,240,255,0,165,97,2,0,85,192,139,34,139,34,255,0,177,97,2,0,0,0,220,220,220,220,255,0,187,97,2,0,170,7,255,248,248,255,255,0,198,97,2,0,35,255,255,255,215,0,255,0,203,97,2,0,35,255,255,255,215,0,255,0,209,97,2,0,35,255,238,238,201,0,255,0,215,97,2,0,35,255,205,205,173,0,255,0,221,97,2,0,35,255,139,139,117,0,255,0,227,97,2,0,30,217,218,218,165,32,255,0,237,97,2,0,30,218,255,255,193,37,255,0,248,97,+2,0,30,218,238,238,180,34,255,0,3,98,2,0,30,218,205,205,155,29,255,0,14,98,2,0,30,218,139,139,105,20,255,0,25,98,2,0,0,0,192,192,192,192,255,0,30,98,2,0,0,0,0,0,0,0,255,0,36,98,2,0,0,0,3,3,3,3,255,0,42,98,2,0,0,0,26,26,26,26,255,0,49,98,2,0,0,0,255,255,255,255,255,0,57,98,2,0,0,0,28,28,28,28,255,0,64,98,2,0,0,0,31,31,31,31,255,0,71,98,2,0,0,0,33,33,33,33,255,0,78,98,2,0,0,0,36,36,36,36,255,0,85,98,2,0,0,0,38,38,38,38,255,0,92,98,2,0,0,0,41,41,41,41,255,0,99,98,2,0,0,0,43,43,43,43,255,0,106,98,2,0,+0,0,46,46,46,46,255,0,113,98,2,0,0,0,48,48,48,48,255,0,120,98,2,0,0,0,5,5,5,5,255,0,126,98,2,0,0,0,51,51,51,51,255,0,133,98,2,0,0,0,54,54,54,54,255,0,140,98,2,0,0,0,56,56,56,56,255,0,147,98,2,0,0,0,59,59,59,59,255,0,154,98,2,0,0,0,61,61,61,61,255,0,161,98,2,0,0,0,64,64,64,64,255,0,168,98,2,0,0,0,66,66,66,66,255,0,175,98,2,0,0,0,69,69,69,69,255,0,182,98,2,0,0,0,71,71,71,71,255,0,189,98,2,0,0,0,74,74,74,74,255,0,196,98,2,0,0,0,8,8,8,8,255,0,202,98,2,0,0,0,77,77,77,77,255,0,209,98,2,0,0,0,79,79,79,79,+255,0,216,98,2,0,0,0,82,82,82,82,255,0,223,98,2,0,0,0,84,84,84,84,255,0,230,98,2,0,0,0,87,87,87,87,255,0,237,98,2,0,0,0,89,89,89,89,255,0,244,98,2,0,0,0,92,92,92,92,255,0,251,98,2,0,0,0,94,94,94,94,255,0,2,99,2,0,0,0,97,97,97,97,255,0,9,99,2,0,0,0,99,99,99,99,255,0,16,99,2,0,0,0,10,10,10,10,255,0,22,99,2,0,0,0,102,102,102,102,255,0,29,99,2,0,0,0,105,105,105,105,255,0,36,99,2,0,0,0,107,107,107,107,255,0,43,99,2,0,0,0,110,110,110,110,255,0,50,99,2,0,0,0,112,112,112,112,255,0,57,99,2,0,0,0,115,115,115,+115,255,0,64,99,2,0,0,0,117,117,117,117,255,0,71,99,2,0,0,0,120,120,120,120,255,0,78,99,2,0,0,0,122,122,122,122,255,0,85,99,2,0,0,0,125,125,125,125,255,0,92,99,2,0,0,0,13,13,13,13,255,0,98,99,2,0,0,0,127,127,127,127,255,0,105,99,2,0,0,0,130,130,130,130,255,0,112,99,2,0,0,0,133,133,133,133,255,0,119,99,2,0,0,0,135,135,135,135,255,0,126,99,2,0,0,0,138,138,138,138,255,0,133,99,2,0,0,0,140,140,140,140,255,0,140,99,2,0,0,0,143,143,143,143,255,0,147,99,2,0,0,0,145,145,145,145,255,0,154,99,2,0,0,0,148,148,+148,148,255,0,161,99,2,0,0,0,150,150,150,150,255,0,168,99,2,0,0,0,15,15,15,15,255,0,174,99,2,0,0,0,153,153,153,153,255,0,181,99,2,0,0,0,156,156,156,156,255,0,188,99,2,0,0,0,158,158,158,158,255,0,195,99,2,0,0,0,161,161,161,161,255,0,202,99,2,0,0,0,163,163,163,163,255,0,209,99,2,0,0,0,166,166,166,166,255,0,216,99,2,0,0,0,168,168,168,168,255,0,223,99,2,0,0,0,171,171,171,171,255,0,230,99,2,0,0,0,173,173,173,173,255,0,237,99,2,0,0,0,176,176,176,176,255,0,244,99,2,0,0,0,18,18,18,18,255,0,250,99,2,0,0,0,+179,179,179,179,255,0,1,100,2,0,0,0,181,181,181,181,255,0,8,100,2,0,0,0,184,184,184,184,255,0,15,100,2,0,0,0,186,186,186,186,255,0,22,100,2,0,0,0,189,189,189,189,255,0,29,100,2,0,0,0,191,191,191,191,255,0,36,100,2,0,0,0,194,194,194,194,255,0,43,100,2,0,0,0,196,196,196,196,255,0,50,100,2,0,0,0,199,199,199,199,255,0,57,100,2,0,0,0,201,201,201,201,255,0,64,100,2,0,0,0,20,20,20,20,255,0,70,100,2,0,0,0,204,204,204,204,255,0,77,100,2,0,0,0,207,207,207,207,255,0,84,100,2,0,0,0,209,209,209,209,255,0,91,100,+2,0,0,0,212,212,212,212,255,0,98,100,2,0,0,0,214,214,214,214,255,0,105,100,2,0,0,0,217,217,217,217,255,0,112,100,2,0,0,0,219,219,219,219,255,0,119,100,2,0,0,0,222,222,222,222,255,0,126,100,2,0,0,0,224,224,224,224,255,0,133,100,2,0,0,0,227,227,227,227,255,0,140,100,2,0,0,0,23,23,23,23,255,0,146,100,2,0,0,0,229,229,229,229,255,0,153,100,2,0,0,0,232,232,232,232,255,0,160,100,2,0,0,0,235,235,235,235,255,0,167,100],"i8",4,n.q+74306);+B([2,0,0,0,237,237,237,237,255,0,174,100,2,0,0,0,240,240,240,240,255,0,181,100,2,0,0,0,242,242,242,242,255,0,188,100,2,0,0,0,245,245,245,245,255,0,195,100,2,0,0,0,247,247,247,247,255,0,202,100,2,0,0,0,250,250,250,250,255,0,209,100,2,0,0,0,252,252,252,252,255,0,216,100,2,0,85,255,255,0,255,0,255,0,222,100,2,0,85,255,255,0,255,0,255,0,229,100,2,0,85,255,238,0,238,0,255,0,236,100,2,0,85,255,205,0,205,0,255,0,243,100,2,0,85,255,139,0,139,0,255,0,250,100,2,0,59,208,255,173,255,47,255,0,6,101,2,0,0,0,192,+192,192,192,255,0,11,101,2,0,0,0,0,0,0,0,255,0,17,101,2,0,0,0,3,3,3,3,255,0,23,101,2,0,0,0,26,26,26,26,255,0,30,101,2,0,0,0,255,255,255,255,255,0,38,101,2,0,0,0,28,28,28,28,255,0,45,101,2,0,0,0,31,31,31,31,255,0,52,101,2,0,0,0,33,33,33,33,255,0,59,101,2,0,0,0,36,36,36,36,255,0,66,101,2,0,0,0,38,38,38,38,255,0,73,101,2,0,0,0,41,41,41,41,255,0,80,101,2,0,0,0,43,43,43,43,255,0,87,101,2,0,0,0,46,46,46,46,255,0,94,101,2,0,0,0,48,48,48,48,255,0,101,101,2,0,0,0,5,5,5,5,255,0,107,101,2,0,0,0,51,51,51,51,+255,0,114,101,2,0,0,0,54,54,54,54,255,0,121,101,2,0,0,0,56,56,56,56,255,0,128,101,2,0,0,0,59,59,59,59,255,0,135,101,2,0,0,0,61,61,61,61,255,0,142,101,2,0,0,0,64,64,64,64,255,0,149,101,2,0,0,0,66,66,66,66,255,0,156,101,2,0,0,0,69,69,69,69,255,0,163,101,2,0,0,0,71,71,71,71,255,0,170,101,2,0,0,0,74,74,74,74,255,0,177,101,2,0,0,0,8,8,8,8,255,0,183,101,2,0,0,0,77,77,77,77,255,0,190,101,2,0,0,0,79,79,79,79,255,0,197,101,2,0,0,0,82,82,82,82,255,0,204,101,2,0,0,0,84,84,84,84,255,0,211,101,2,0,0,0,87,87,87,+87,255,0,218,101,2,0,0,0,89,89,89,89,255,0,225,101,2,0,0,0,92,92,92,92,255,0,232,101,2,0,0,0,94,94,94,94,255,0,239,101,2,0,0,0,97,97,97,97,255,0,246,101,2,0,0,0,99,99,99,99,255,0,253,101,2,0,0,0,10,10,10,10,255,0,3,102,2,0,0,0,102,102,102,102,255,0,10,102,2,0,0,0,105,105,105,105,255,0,17,102,2,0,0,0,107,107,107,107,255,0,24,102,2,0,0,0,110,110,110,110,255,0,31,102,2,0,0,0,112,112,112,112,255,0,38,102,2,0,0,0,115,115,115,115,255,0,45,102,2,0,0,0,117,117,117,117,255,0,52,102,2,0,0,0,120,120,120,120,+255,0,59,102,2,0,0,0,122,122,122,122,255,0,66,102,2,0,0,0,125,125,125,125,255,0,73,102,2,0,0,0,13,13,13,13,255,0,79,102,2,0,0,0,127,127,127,127,255,0,86,102,2,0,0,0,130,130,130,130,255,0,93,102,2,0,0,0,133,133,133,133,255,0,100,102,2,0,0,0,135,135,135,135,255,0,107,102,2,0,0,0,138,138,138,138,255,0,114,102,2,0,0,0,140,140,140,140,255,0,121,102,2,0,0,0,143,143,143,143,255,0,128,102,2,0,0,0,145,145,145,145,255,0,135,102,2,0,0,0,148,148,148,148,255,0,142,102,2,0,0,0,150,150,150,150,255,0,149,102,2,0,+0,0,15,15,15,15,255,0,155,102,2,0,0,0,153,153,153,153,255,0,162,102,2,0,0,0,156,156,156,156,255,0,169,102,2,0,0,0,158,158,158,158,255,0,176,102,2,0,0,0,161,161,161,161,255,0,183,102,2,0,0,0,163,163,163,163,255,0,190,102,2,0,0,0,166,166,166,166,255,0,197,102,2,0,0,0,168,168,168,168,255,0,204,102,2,0,0,0,171,171,171,171,255,0,211,102,2,0,0,0,173,173,173,173,255,0,218,102,2,0,0,0,176,176,176,176,255,0,225,102,2,0,0,0,18,18,18,18,255,0,231,102,2,0,0,0,179,179,179,179,255,0,238,102,2,0,0,0,181,181,181,+181,255,0,245,102,2,0,0,0,184,184,184,184,255,0,252,102,2,0,0,0,186,186,186,186,255,0,3,103,2,0,0,0,189,189,189,189,255,0,10,103,2,0,0,0,191,191,191,191,255,0,17,103,2,0,0,0,194,194,194,194,255,0,24,103,2,0,0,0,196,196,196,196,255,0,31,103,2,0,0,0,199,199,199,199,255,0,38,103,2,0,0,0,201,201,201,201,255,0,45,103,2,0,0,0,20,20,20,20,255,0,51,103,2,0,0,0,204,204,204,204,255,0,58,103,2,0,0,0,207,207,207,207,255,0,65,103,2,0,0,0,209,209,209,209,255,0,72,103,2,0,0,0,212,212,212,212,255,0,79,103,2,0,0,+0,214,214,214,214,255,0,86,103,2,0,0,0,217,217,217,217,255,0,93,103,2,0,0,0,219,219,219,219,255,0,100,103,2,0,0,0,222,222,222,222,255,0,107,103,2,0,0,0,224,224,224,224,255,0,114,103,2,0,0,0,227,227,227,227,255,0,121,103,2,0,0,0,23,23,23,23,255,0,127,103,2,0,0,0,229,229,229,229,255,0,134,103,2,0,0,0,232,232,232,232,255,0,141,103,2,0,0,0,235,235,235,235,255,0,148,103,2,0,0,0,237,237,237,237,255,0,155,103,2,0,0,0,240,240,240,240,255,0,162,103,2,0,0,0,242,242,242,242,255,0,169,103,2,0,0,0,245,245,245,+245,255,0,176,103,2,0,0,0,247,247,247,247,255,0,183,103,2,0,0,0,250,250,250,250,255,0,190,103,2,0,0,0,252,252,252,252,255,0,197,103,2,0,85,15,255,240,255,240,255,0,206,103,2,0,85,15,255,240,255,240,255,0,216,103,2,0,85,15,238,224,238,224,255,0,226,103,2,0,85,14,205,193,205,193,255,0,236,103,2,0,85,14,139,131,139,131,255,0,246,103,2,0,233,150,255,255,105,180,255,0,254,103,2,0,234,145,255,255,110,180,255,0,7,104,2,0,235,141,238,238,106,167,255,0,16,104,2,0,236,135,205,205,96,144,255,0,25,104,2,0,234,+148,139,139,58,98,255,0,34,104,2,0,0,140,205,205,92,92,255,0,44,104,2,0,0,148,255,255,106,106,255,0,55,104,2,0,0,148,238,238,99,99,255,0,66,104,2,0,0,149,205,205,85,85,255,0,77,104,2,0,0,148,139,139,58,58,255,0,88,104,2,0,194,255,130,75,0,130,255,0,95,104,2,0,42,0,255,255,255,254,0,0,101,104,2,0,42,15,255,255,255,240,255,0,107,104,2,0,42,15,255,255,255,240,255,0,114,104,2,0,42,15,238,238,238,224,255,0,121,104,2,0,42,14,205,205,205,193,255,0,128,104,2,0,42,14,139,139,139,131,255,0,135,104,2,0,38,106,+240,240,230,140,255,0,141,104,2,0,39,112,255,255,246,143,255,0,148,104,2,0,39,112,238,238,230,133,255,0,155,104,2,0,39,111,205,205,198,115,255,0,162,104,2,0,39,111,139,139,134,78,255,0,169,104,2,0,170,20,250,230,230,250,255,0,178,104,2,0,240,15,255,255,240,245,255,0,192,104,2,0,240,15,255,255,240,245,255,0,207,104,2,0,239,15,238,238,224,229,255,0,222,104,2,0,240,14,205,205,193,197,255,0,237,104,2,0,239,14,139,139,131,134,255,0,252,104,2,0,64,255,252,124,252,0,255,0,6,105,2,0,38,49,255,255,250,205,+255,0,19,105,2,0,38,49,255,255,250,205,255,0,33,105,2,0,37,50,238,238,233,191,255,0,47,105,2,0,38,49,205,205,201,165,255,0,61,105,2,0,39,49,139,139,137,112,255,0,75,105,2,0,137,63,230,173,216,230,255,0,85,105,2,0,138,64,255,191,239,255,255,0,96,105,2,0,138,64,238,178,223,238,255,0,107,105,2,0,138,63,205,154,192,205,255,0,118,105,2,0,137,64,139,104,131,139,255,0,129,105,2,0,0,119,240,240,128,128,255,0,140,105,2,0,127,31,255,224,255,255,255,0,150,105,2,0,127,31,255,224,255,255,255,0,161,105,2,0,127,+31,238,209,238,238,255,0,172,105,2,0,127,31,205,180,205,205,255,0,183,105,2,0,127,31,139,122,139,139,255,0,194,105,2,0,35,115,238,238,221,130,255,0,209,105,2,0,35,116,255,255,236,139,255,0,225,105,2,0,35,115,238,238,220,130,255,0,241,105,2,0,35,115,205,205,190,112,255,0,1,106,2,0,35,115,139,139,129,76,255,0,17,106,2,0,42,40,250,250,250,210,255,0,38,106,2,0,0,0,211,211,211,211,255,0,48,106,2,0,0,0,211,211,211,211,255,0,58,106,2,0,248,73,255,255,182,193,255,0,68,106,2,0,249,81,255,255,174,185,255,0,+79,106,2,0,248,81,238,238,162,173,255,0,90,106,2,0,249,80,205,205,140,149,255,0,101,106,2,0,249,80,139,139,95,101,255,0,112,106,2,0,12,132,255,255,160,122,255,0,124,106,2,0,12,132,255,255,160,122,255,0,137,106,2,0,11,132,238,238,149,114,255,0,150,106,2,0,12,133,205,205,129,98,255,0,163,106,2,0,12,133,139,139,87,66,255,0,176,106,2,0,125,209,178,32,178,170,255,0,190,106,2,0,143,117,250,135,206,250,255,0,203,106,2,0,143,79,255,176,226,255,255,0,217,106,2,0,143,79,238,164,211,238,255,0,231,106,2,0,142,+79,205,141,182,205,255,0,245,106,2,0,143,78,139,96,123,139,255,0,3,107,2,0,175,143,255,132,112,255,255,0,18,107,2,0,148,56,153,119,136,153,255,0,33,107,2,0,148,56,153,119,136,153,255,0,48,107,2,0,151,52,222,176,196,222,255,0,63,107,2,0,151,53,255,202,225,255,255,0,79,107,2,0,151,53,238,188,210,238,255,0,95,107,2,0,151,53,205,162,181,205,255,0,111,107,2,0,150,53,139,110,123,139,255,0,127,107,2,0,42,31,255,255,255,224,255,0,139,107,2,0,42,31,255,255,255,224,255,0,152,107,2,0,42,31,238,238,238,209,255,+0,165,107,2,0,42,31,205,205,205,180,255,0,178,107,2,0,42,31,139,139,139,122,255,0,191,107,2,0,85,192,205,50,205,50,255,0,201,107,2,0,21,20,250,250,240,230,255,0,207,107,2,0,212,255,255,255,0,255,255,0,215,107,2,0,212,255,255,255,0,255,255,0,224,107,2,0,212,255,238,238,0,238,255,0,233,107,2,0,212,255,205,205,0,205,255,0,242,107,2,0,212,255,139,139,0,139,255,0,251,107,2,0,239,185,176,176,48,96,255,0,2,108,2,0,228,203,255,255,52,179,255,0,10,108,2,0,228,203,238,238,48,167,255,0,18,108,2,0,228,204,205,+205,41,144,255,0,26,108,2,0,228,203,139,139,28,98,255,0,34,108,2,0,113,128,205,102,205,170,255,0,51,108,2,0,170,255,205,0,0,205,255,0,62,108,2,0,204,152,211,186,85,211,255,0,75,108,2,0,203,153,255,224,102,255,255,0,89,108,2,0,203,153,238,209,95,238,255,0,103,108,2,0,203,153,205,180,82,205,255,0,117,108,2,0,203,154,139,122,55,139,255,0,131,108,2,0,183,124,219,147,112,219,255,0,144,108,2,0,183,125,255,171,130,255,255,0,158,108,2,0,183,125,238,159,121,238,255,0,172,108,2,0,183,125,205,137,104,205,255,+0,186,108,2,0,183,124,139,93,71,139,255,0,200,108,2,0,103,169,179,60,179,113,255,0,215,108,2,0,176,143,238,123,104,238,255,0,231,108,2,0,111,255,250,0,250,154,255,0,249,108,2,0,125,167,209,72,209,204,255,0,9,109,2,0,228,228,199,199,21,133,255,0,25,109,2,0,170,198,112,25,25,112,255,0,38,109,2,0,106,9,255,245,255,250,255,0,48,109,2,0,4,30,255,255,228,225,255,0,58,109,2,0,4,30,255,255,228,225,255,0,69,109,2,0,4,30,238,238,213,210,255,0,80,109,2,0,3,29,205,205,183,181,255,0,91,109,2,0,5,29,139,139,125,+123,255,0,102,109,2,0,26,73,255,255,228,181,255,0,111,109,2,0,25,81,255,255,222,173,255,0,123,109,2,0,25,81,255,255,222,173,255,0,136,109,2,0,25,82,238,238,207,161,255,0,149,109,2,0,25,82,205,205,179,139,255,0,162,109,2,0,25,82,139,139,121,94,255,0,175,109,2,0,170,255,128,0,0,128,255,0,180,109,2,0,170,255,128,0,0,128,255,0,189,109,2,0,42,0,255,255,255,254,0,0,194,109,2,0,27,23,253,253,245,230,255,0,202,109,2,0,56,192,142,107,142,35,255,0,212,109,2,0,56,193,255,192,255,62,255,0,223,109,2,0,56,192,+238,179,238,58,255,0,234,109,2,0,56,192,205,154,205,50,255,0,245,109,2,0,56,192,139,105,139,34,255,0,0,110,2,0,27,255,255,255,165,0,255,0,7,110,2,0,27,255,255,255,165,0,255,0,15,110,2,0,27,255,238,238,154,0,255,0,23,110,2,0,27,255,205,205,133,0,255,0,31,110,2,0,27,255,139,139,90,0,255,0,39,110,2,0,11,255,255,255,69,0,255,0,49,110,2,0,11,255,255,255,69,0,255,0,60,110,2,0,11,255,238,238,64,0,255,0,71,110,2,0,11,255,205,205,55,0,255,0,82,110,2,0,11,255,139,139,37,0,255,0,93,110,2,0,214,123,218,218,112,+214,255,0,100,110,2,0,214,124,255,255,131,250,255,0,108,110,2,0,214,124,238,238,122,233,255,0,116,110,2,0,214,124,205,205,105,201,255,0,124,110,2,0,213,124,139,139,71,137,255,0,132,110,2,0,38,72,238,238,232,170,255,0,146,110,2,0,85,100,251,152,251,152,255,0,156,110,2,0,85,101,255,154,255,154,255,0,167,110,2,0,85,100,238,144,238,144,255,0,178,110,2,0,85,100,205,124,205,124,255,0,189,110,2,0,85,100,139,84,139,84,255,0,200,110,2,0,127,67,238,175,238,238,255,0,214,110,2,0,127,68,255,187,255,255,255,0,+229,110,2,0,127,68,238,174,238,238,255,0,244,110,2,0,127,68,205,150,205,205,255,0,3,111,2,0,127,67,139,102,139,139,255,0,18,111,2,0,241,124,219,219,112,147,255,0,32,111,2,0,241,125,255,255,130,171,255,0,47,111,2,0,241,125,238,238,121,159,255,0,62,111,2,0,241,125,205,205,104,137,255,0,77,111,2,0,241,124,139,139,71,93,255,0,92,111,2,0,26,41,255,255,239,213,255,0,103,111,2,0,20,70,255,255,218,185,255,0,113,111,2,0,20,70,255,255,218,185,255,0,124,111,2,0,19,69,238,238,203,173,255,0,135,111,2,0,19,69,+205,205,175,149,255,0,146,111,2,0,20,69,139,139,119,101,255,0,157,111,2,0,20,176,205,205,133,63,255,0,162,111,2,0,247,63,255,255,192,203,255,0,167,111,2,0,245,73,255,255,181,197,255,0,173,111,2,0,245,73,238,238,169,184,255,0,179,111,2,0,245,74,205,205,145,158,255,0,185,111,2,0,245,73,139,139,99,108,255,0,191,111,2,0,212,70,221,221,160,221,255,0,196,111,2,0,212,68,255,255,187,255,255,0,202,111,2,0,212,68,238,238,174,238,255,0,208,111,2,0,212,68,205,205,150,205,255,0,214,111,2,0,212,67,139,139,102,+139,255,0,220,111,2,0,132,59,230,176,224,230,255,0,231,111,2,0,196,221,240,160,32,240,255,0,238,111,2,0,191,207,255,155,48,255,255,0,246,111,2,0,192,207,238,145,44,238,255,0,254,111,2,0,192,207,205,125,38,205,255,0,6,112,2,0,192,207,139,85,26,139,255,0,14,112,2,0,0,255,255,255,0,0,255,0,18,112,2,0,0,255,255,255,0,0,255,0,23,112,2,0,0,255,238,238,0,0,255,0,28,112,2,0,0,255,205,205,0,0,255,0,33,112,2,0,0,255,139,139,0,0,255,0,38,112,2,0,0,61,188,188,143,143,255,0,48,112,2,0,0,62,255,255,193,193,255,+0,59,112,2,0,0,62,238,238,180,180,255,0,70,112,2,0,0,62,205,205,155,155,255,0,81,112,2,0,0,62,139,139,105,105,255,0,92,112,2,0,159,181,225,65,105,225,255,0,102,112,2,0,159,183,255,72,118,255,255,0,113,112,2,0,159,183,238,67,110,238,255,0,124,112,2,0,159,182,205,58,95,205,255,0,135,112,2,0,159,183,139,39,64,139,255,0,146,112,2,0,17,220,139,139,69,19,255,0,158,112,2,0,4,138,250,250,128,114,255,0,165,112,2,0,9,150,255,255,140,105,255,0,173,112,2,0,9,150,238,238,130,98,255,0,181,112,2,0,9,150,205,205,+112,84,255,0,189,112,2,0,9,150,139,139,76,57,255,0,197,112,2,0,19,154,244,244,164,96,255,0,208,112,2,0,103,170,139,46,139,87,255,0,217,112,2,0,103,171,255,84,255,159,255,0,227,112,2,0,103,171,238,78,238,148,255,0,237,112,2,0,103,171,205,67,205,128,255,0,247,112,2,0,103,170,139,46,139,87,255,0,1,113,2,0,17,16,255,255,245,238,255,0,10,113,2,0,17,16,255,255,245,238,255,0,20,113,2,0,18,17,238,238,229,222,255,0,30,113,2,0,18,17,205,205,197,191,255,0,40,113,2,0,18,16,139,139,134,130,255,0,50,113,2,0,13,+183,160,160,82,45,255,0,57,113,2,0,13,184,255,255,130,71,255,0,65,113,2,0,13,184,238,238,121,66,255,0,73,113,2,0,13,184,205,205,104,57,255,0,81,113,2,0,13,185,139,139,71,38,255,0,89,113,2,0,139,108,235,135,206,235,255,0,97,113,2,0,144,120,255,135,206,255,255,0,106,113,2,0,144,120,238,126,192,238,255,0,115,113,2,0,144,120,205,108,166,205,255,0,124,113,2,0,145,119,139,74,112,139,255,0,133,113,2,0,175,143,205,106,90,205,255,0,143,113,2,0,175,144,255,131,111,255,255,0,154,113,2,0,175,144,238,122,103,+238,255,0,165,113,2,0,175,144,205,105,89,205,255,0,176,113,2,0,175,144,139,71,60,139,255,0,187,113,2,0,148,56,144,112,128,144,255,0,197,113,2,0,149,56,255,198,226,255,255,0,208,113,2,0,149,56,238,185,211,238,255,0,219,113,2,0,148,57,205,159,182,205,255,0,230,113,2,0,149,56,139,108,123,139,255,0,241,113,2,0,148,56,144,112,128,144,255,0,251,113,2,0,0,5,255,255,250,250,255,0,0,114,2,0,0,5,255,255,250,250,255,0,6,114,2,0,0,5,238,238,233,233,255,0,12,114,2,0,0,4,205,205,201,201,255,0,18,114,2,0,0,3,139,+139,137,137,255,0,24,114,2,0,106,255,255,0,255,127,255,0,36,114,2,0,106,255,255,0,255,127,255,0,49,114,2,0,106,255,238,0,238,118,255,0,62,114,2,0,106,255,205,0,205,102,255,0,75,114,2,0,106,255,139,0,139,69,255,0,88,114,2,0,146,155,180,70,130,180,255,0,98,114,2,0,146,156,255,99,184,255,255,0,109,114,2,0,146,156,238,92,172,238,255,0,120,114,2,0,146,156,205,79,148,205,255,0,131,114,2,0,147,155,139,54,100,139,255,0,142,114,2,0,24,84,210,210,180,140,255,0,146,114,2,0,20,176,255,255,165,79,255,0,151,114,+2,0,20,176,238,238,154,73,255,0,156,114,2,0,20,176,205,205,133,63,255,0,161,114,2,0,20,176,139,139,90,43,255,0,166,114,2,0,212,29,216,216,191,216,255,0,174,114,2,0,212,30,255,255,225,255,255,0,183,114,2,0,212,30,238,238,210,238,255,0,192,114,2,0,212,29,205,205,181,205,255,0,201,114,2,0,212,29,139,139,123,139,255,0,210,114,2,0,6,184,255,255,99,71,255,0,217,114,2,0,6,184,255,255,99,71,255,0,225,114,2,0,6,184,238,238,92,66,255,0,233,114,2,0,6,184,205,205,79,57,255,0,241,114,2,0,6,185,139,139,54,38,255,+0,252,117,2,0,42,0,255,255,255,254,0,0,249,114,2,0,123,182,224,64,224,208,255,0,3,115,2,0,129,255,255,0,245,255,255,0,14,115,2,0,129,255,238,0,229,238,255,0,25,115,2,0,129,255,205,0,197,205,255,0,36,115,2,0,129,255,139,0,134,139,255,0,47,115,2,0,212,115,238,238,130,238,255,0,54,115,2,0,227,215,208,208,32,144,255,0,64,115,2,0,235,193,255,255,62,150,255,0,75,115,2,0,235,192,238,238,58,140,255,0,86,115,2,0,235,192,205,205,50,120,255,0,97,115,2,0,235,192,139,139,34,82,255,0,108,115,2,0,27,68,245,245,+222,179,255,0,114,115,2,0,27,69,255,255,231,186,255,0,121,115,2,0,27,68,238,238,216,174,255,0,128,115,2,0,27,68,205,205,186,150,255,0,135,115,2,0,27,67,139,139,126,102,255,0,142,115,2,0,0,0,255,255,255,255,255,0,148,115,2,0,0,0,245,245,245,245,255,0,159,115,2,0,42,255,255,255,255,0,255,0,166,115,2,0,42,255,255,255,255,0,255,0,174,115,2,0,42,255,238,238,238,0,255,0,182,115,2,0,42,255,205,205,205,0,255,0,190,115,2,0,42,255,139,139,139,0,255,0,198,115,2,0,56,192,205,154,205,50,255,0,0,0,0,0,0,0,0,0,+0,0,0,0,153,120,2,0,154,117,2,0,156,117,2,0,158,117,2,0,160,117,2,0,162,117,2,0,164,117,2,0,166,117,2,0,168,117,2,0,170,117,2,0,172,117,2,0,175,117,2,0,178,117,2,0,181,117,2,0,184,117,2,0,187,117,2,0,190,117,2,0,193,117,2,0,196,117,2,0,199,117,2,0,202,117,2,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,49,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,119,2,0,90,120,2,0,8,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,+0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,192,3,0,0,192,4,0,0,192,5,0,0,192,6,0,0,192,7,0,0,+192,8,0,0,192,9,0,0,192,10,0,0,192,11,0,0,192,12,0,0,192,13,0,0,192,14,0,0,192,15,0,0,192,16,0,0,192,17,0,0,192,18,0,0,192,19,0,0,192,20,0,0,192,21,0,0,192,22,0,0,192,23,0,0,192,24,0,0,192,25,0,0,192,26,0,0,192,27,0,0,192,28,0,0,192,29,0,0,192,30,0,0,192,31,0,0,192,0,0,0,179,1,0,0,195,2,0,0,195,3,0,0,195,4,0,0,195,5,0,0,195,6,0,0,195,7,0,0,195,8,0,0,195,9,0,0,195,10,0,0,195,11,0,0,195,12,0,0,195,13,0,0,211,14,0,0,195,15,0,0,195,0,0,12,187,1,0,12,195,2,0,12,195,3,0,12,195,4,0,12,211,76,100,1,0,188,+100,1,0,44,101,1,0,44,101,1,0,32,0,0,0,9,0,0,0,10,0,0,0,13,0,0,0,11,0,0,0,12,0,0,0,133,0,0,0,0,32,0,0,1,32,0,0,2,32,0,0,3,32,0,0,4,32,0,0,5,32,0,0,6,32,0,0,8,32,0,0,9,32,0,0,10,32,0,0,40,32,0,0,41,32,0,0,95,32,0,0,0,48,0,0,0,0,0,0,0,0,0,0,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5,3,0,0,0,4,0,0,0,4,0,0,0,6,0,0,0,131,249,162,0,68,78,110,0,252,41,21,0,209,87,39,0,221,52,245,0,98,219,192,0,60,153,149,0,65,144,67,0,99,81,254,0,187,222,171,0,183,97,197,0,58,+110,36,0,210,77,66,0,73,6,224,0,9,234,46,0,28,146,209,0,235,29,254,0,41,177,28,0,232,62,167,0,245,53,130,0,68,187,46,0,156,233,132,0,180,38,112,0,65,126,95,0,214,145,57,0,83,131,57,0,156,244,57,0,139,95,132,0,40,249,189,0,248,31,59,0,222,255,151,0,15,152,5,0,17,47,239,0,10,90,139,0,109,31,109,0,207,126,54,0,9,203,39,0,70,79,183,0,158,102,63,0,45,234,95,0,186,39,117,0,229,235,199,0,61,123,241,0,247,57,7,0,146,82,138,0,251,107,234,0,31,177,95,0,8,93,141,0,48,3,86,0,123,252,70,0,240,171,107,0,32,188,+207,0,54,244,154,0,227,169,29,0,94,97,145,0,8,27,230,0,133,153,101,0,160,20,95,0,141,64,104,0,128,216,255,0,39,115,77,0,6,6,49,0,202,86,21,0,201,168,115,0,123,226,96,0,107,140,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,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,5,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,7,0,0,0,8,0,0,0,248,171,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,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,9,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,8,0,0,0,240,167,2,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,5,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,8,0,+0,0,232,163,2,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,116,0,0,0,14,174,2,0,110,0,0,0,16,174,2,0,114,0,0,0,18,174,2,0,102,0,0,0,20,174,2,0,97,0,0,0,22,174,2,0,101,0,0,0,24,174,2,0,119,0,0,0,26,174,2,0,87,0,0,0,39,174,2,0,115,0,0,0,53,174,2,0,83,0,0,0,65,174,2,0,100,0,0,0,78,174,2,0,68,0,0,0,90,174,2],"i8",4,n.q+84546);+B([4,0,4,0,27,0,27,0,32,0,32,0,35,0,33,0,10,0,2,0,22,0,9,0,33,0,33,0,33,0,21,0,28,0,1,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,8,0,4,0,5,0,27,0,2,0,23,0,27,0,32,0,31,0,30,0,29,0,9,0,19,0,0,0,21,0,18,0,21,0,3,0,7,0,21,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,20,0,8,0,4,0,5,0,5,0,6,0,27,0,26,0,24,0,25,0,32,0,7,0,21,0,20,0,20,0,20,0,20,0,20,0,20,0,11,0,20,0,13,0,20,0,12,0,20,0,20,0,20,0,14,0,20,0,20,0,20,0,16,0,20,0,15,0,20,0,17,0,0,0,0,0,0,0,174,0,46,0,47,0,51,0,53,0,48,0,55,0,170,0,219,0,219,0,219,0,+219,0,0,0,61,0,135,0,55,0,55,0,219,0,219,0,0,0,40,0,53,0,46,0,50,0,47,0,98,0,0,0,0,0,71,0,0,0,0,0,219,0,81,0,0,0,219,0,219,0,219,0,0,0,219,0,132,0,85,0,219,0,130,0,219,0,0,0,129,0,219,0,0,0,62,0,66,0,65,0,72,0,68,0,82,0,91,0,0,0,0,0,94,0,95,0,219,0,0,0,219,0,219,0,219,0,0,0,0,0,123,0,73,0,87,0,82,0,90,0,90,0,93,0,0,0,95,0,0,0,95,0,0,0,101,0,93,0,95,0,0,0,93,0,110,0,106,0,0,0,105,0,0,0,110,0,0,0,219,0,147,0,154,0,161,0,168,0,171,0,112,0,177,0,184,0,191,0,198,0,205,0,211,0,0,0,1,0,1,0,1,0,1,0,1,0,1,+0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,4,0,7,0,3,0,4,0,5,0,5,0,6,0,6,0,8,0,7,0,7,0,17,0,22,0,18,0,17,0,18,0,8,0,8,0,15,0,15,0,23,0,15,0,24,0,15,0,25,0,26,0,26,0,30,0,22,0,52,0,30,0,5,0,50,0,6,0,34,0,34,0,51,0,23,0,24,0,53,0,25,0,26,0,26,0,42,0,54,0,42,0,52,0,55,0,50,0,69,0,59,0,60,0,51,0,59,0,60,0,70,0,53,0,71,0,72,0,76,0,54,0,34,0,73,0,74,0,55,0,69,0,78,0,80,0,98,+0,81,0,82,0,84,0,70,0,71,0,85,0,72,0,76,0,86,0,73,0,74,0,88,0,90,0,78,0,68,0,80,0,81,0,82,0,84,0,56,0,47,0,44,0,85,0,41,0,86,0,27,0,16,0,88,0,90,0,93,0,93,0,93,0,93,0,93,0,93,0,93,0,94,0,94,0,94,0,94,0,94,0,94,0,94,0,95,0,95,0,95,0,95,0,95,0,95,0,95,0,96,0,9,0,96,0,96,0,96,0,96,0,96,0,97,0,97,0,99,0,2,0,99,0,99,0,99,0,99,0,99,0,100,0,0,0,100,0,0,0,100,0,100,0,100,0,101,0,0,0,101,0,101,0,101,0,101,0,101,0,102,0,102,0,0,0,102,0,102,0,102,0,102,0,103,0,0,0,103,0,103,0,103,0,103,0,104,0,0,0,104,0,104,+0,104,0,104,0,104,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,0,0,92,0,1,0,93,0,93,0,94,0,94,0,95,0,95,0,92,0,92,0,92,0,92,0,92,0,96,0,92,0,92,0,92,0,97,0,92,0,92,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,99,0,100,0,101,0,102,0,102,0,92,0,92,0,103,0,92,0,92,0,92,0,96,0,92,0,92,0,97,0,92,0,97,0,92,0,104,+0,97,0,92,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,99,0,100,0,101,0,101,0,92,0,102,0,92,0,92,0,92,0,103,0,104,0,97,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,98,0,0,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,0,0,10,0,11,0,12,0,13,0,14,0,10,0,15,0,16,0,17,0,18,0,19,0,10,0,20,0,21,0,21,0,21,0,22,0,23,0,21,0,24,0,21,0,21,0,25,0,21,0,21,0,21,0,26,0,21,0,21,0,10,0,21,0,21,0,21,0,22,0,23,0,24,0,21,0,21,0,25,0,21,0,+21,0,21,0,26,0,21,0,21,0,21,0,21,0,27,0,12,0,12,0,36,0,30,0,30,0,32,0,33,0,32,0,33,0,36,0,37,0,38,0,45,0,50,0,47,0,46,0,42,0,37,0,38,0,40,0,41,0,51,0,42,0,52,0,43,0,53,0,54,0,55,0,60,0,50,0,71,0,61,0,34,0,69,0,34,0,63,0,64,0,70,0,51,0,52,0,72,0,53,0,54,0,55,0,47,0,73,0,42,0,71,0,74,0,69,0,76,0,92,0,60,0,70,0,92,0,61,0,77,0,72,0,78,0,79,0,82,0,73,0,65,0,80,0,81,0,74,0,76,0,83,0,84,0,49,0,85,0,86,0,87,0,77,0,78,0,88,0,79,0,82,0,89,0,80,0,81,0,90,0,91,0,83,0,68,0,84,0,85,0,86,0,87,0,75,0,68,0,44,0,88,+0,44,0,89,0,56,0,44,0,90,0,91,0,29,0,29,0,29,0,29,0,29,0,29,0,29,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,35,0,35,0,35,0,35,0,35,0,35,0,35,0,39,0,92,0,39,0,39,0,39,0,39,0,39,0,48,0,48,0,57,0,28,0,57,0,57,0,57,0,57,0,57,0,58,0,92,0,58,0,92,0,58,0,58,0,58,0,59,0,92,0,59,0,59,0,59,0,59,0,59,0,62,0,62,0,92,0,62,0,62,0,62,0,62,0,66,0,92,0,66,0,66,0,66,0,66,0,67,0,92,0,67,0,67,0,67,0,67,0,67,0,9,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,+92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,92,0,8,0,174,255,209,0,10,0,174,255,174,255,11,0,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,5,0,209,0,174,255,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,174,255,251,255,174,255,14,0,236,255,174,255,174,255,174,255,174,255,209,0,209,0,209,0,209,0,209,0,13,0,37,0,12,0,66,0,16,0,80,0,19,0,109,0,123,0,20,0,152,0,15,0,166,0,195,0,174,255,174,255,174,255,+174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,23,0,174,255,119,0,174,255,7,0,46,0,174,255,38,0,174,255,23,0,17,0,35,0,174,255,13,0,174,255,174,255,174,255,174,255,58,0,174,255,174,255,53,0,174,255,174,255,174,255,40,0,174,255,7,0,174,255,59,0,69,0,174,255,72,0,174,255,174,255,174,255,174,255,174,255,174,255,174,255,252,255,232,0,246,255,255,255,26,0,0,0,39,0,1,0,50,0,174,255,174,+255,2,0,36,0,3,0,47,0,174,255,174,255,174,255,174,255,174,255,254,255,148,0,174,255,9,0,27,0,174,255,188,255,174,255,174,255,175,255,174,255,174,255,174,255,174,255,174,255,174,255,174,255,0,0,0,0,0,0,109,230,236,222,5,0,11,0,0,0,0,0,0,0,73,0,49,1,83,0,127,1,48,1,105,0,120,1,255,0,129,1,83,2,130,1,131,1,132,1,133,1,134,1,84,2,135,1,136,1,137,1,86,2,138,1,87,2,139,1,140,1,142,1,221,1,143,1,89,2,144,1,91,2,145,1,146,1,147,1,96,2,148,1,99,2,150,1,105,2,151,1,104,2,152,1,153,1,156,1,111,2,157,1,114,2,+159,1,117,2,166,1,128,2,167,1,168,1,169,1,131,2,172,1,173,1,174,1,136,2,175,1,176,1,177,1,138,2,178,1,139,2,183,1,146,2,184,1,185,1,188,1,189,1,196,1,198,1,196,1,197,1,197,1,198,1,199,1,201,1,199,1,200,1,200,1,201,1,202,1,204,1,202,1,203,1,203,1,204,1,241,1,243,1,241,1,242,1,242,1,243,1,244,1,245,1,246,1,149,1,247,1,191,1,32,2,158,1,134,3,172,3,136,3,173,3,137,3,174,3,138,3,175,3,140,3,204,3,142,3,205,3,143,3,206,3,153,3,69,3,153,3,190,31,163,3,194,3,247,3,248,3,250,3,251,3,96,30,155,30,223,0,223,+0,158,30,223,0,89,31,81,31,91,31,83,31,93,31,85,31,95,31,87,31,188,31,179,31,204,31,195,31,236,31,229,31,252,31,243,31,58,2,101,44,59,2,60,2,61,2,154,1,62,2,102,44,65,2,66,2,67,2,128,1,68,2,137,2,69,2,140,2,244,3,184,3,249,3,242,3,253,3,123,3,254,3,124,3,255,3,125,3,192,4,207,4,38,33,201,3,42,33,107,0,43,33,229,0,50,33,78,33,131,33,132,33,96,44,97,44,98,44,107,2,99,44,125,29,100,44,125,2,109,44,81,2,110,44,113,2,111,44,80,2,112,44,82,2,114,44,115,44,117,44,118,44,126,44,63,2,127,44,64,2,242,44,243,+44,125,167,121,29,139,167,140,167,141,167,101,2,170,167,102,2,199,16,39,45,205,16,45,45,118,3,119,3,156,3,181,0,146,3,208,3,152,3,209,3,166,3,213,3,160,3,214,3,154,3,240,3,161,3,241,3,149,3,245,3,207,3,215,3,0,0,0,0,65,0,32,26,192,0,32,31,0,1,1,47,50,1,1,5,57,1,1,15,74,1,1,45,121,1,1,5,112,3,1,3,145,3,32,17,163,3,32,9,0,4,80,16,16,4,32,32,96,4,1,33,138,4,1,53,193,4,1,13,208,4,1,63,20,5,1,19,49,5,48,38,160,1,1,5,179,1,1,3,205,1,1,15,222,1,1,17,248,1,1,39,34,2,1,17,216,3,1,23,0,30,1,149,160,30,1,95,+8,31,248,8,24,31,248,6,40,31,248,8,56,31,248,8,72,31,248,6,104,31,248,8,136,31,248,8,152,31,248,8,168,31,248,8,184,31,248,2,186,31,182,2,200,31,170,4,216,31,248,2,218,31,156,2,232,31,248,2,234,31,144,2,248,31,128,2,250,31,130,2,70,2,1,9,16,5,1,3,96,33,16,16,0,44,48,47,103,44,1,5,128,44,1,99,235,44,1,3,64,166,1,45,128,166,1,23,34,167,1,13,50,167,1,61,121,167,1,3,126,167,1,9,144,167,1,3,160,167,1,9,33,255,32,26,0,0,0,0,99,111,114,101,0,73,32,0,37,46,48,50,102,0,100,111,116,58,100,111,116,0,103,118,+58,100,111,116,0,99,97,110,111,110,58,100,111,116,0,112,108,97,105,110,58,100,111,116,0,112,108,97,105,110,45,101,120,116,58,100,111,116,0,120,100,111,116,58,120,100,111,116,0,120,100,111,116,49,46,50,58,120,100,111,116,0,120,100,111,116,49,46,52,58,120,100,111,116,0,0,0,0,0,0,0,0,0,0,0,32,37,100,32,0,35,37,48,50,120,37,48,50,120,37,48,50,120,37,48,50,120,0,115,101,116,108,105,110,101,119,105,100,116,104,40,0,37,46,51,102,0,83,32,0,67,32,0,50,32,0,37,46,48,51,102,0,69,32,0,101,32,0,70,32,0,116,32,+37,117,32,0,84,32,0,120,100,111,116,118,101,114,115,105,111,110,0,49,46,52,0,49,46,50,0,49,46,55,0,95,108,100,114,97,119,95,0,95,104,100,114,97,119,95,0,95,116,100,114,97,119,95,0,95,104,108,100,114,97,119,95,0,95,116,108,100,114,97,119,95,0,120,100,111,116,32,118,101,114,115,105,111,110,32,34,37,115,34,32,116,111,111,32,108,111,110,103,0,37,115,37,100,32,45,0,106,115,111,110,0,106,115,111,110,48,0,100,111,116,95,106,115,111,110,0,120,100,111,116,95,106,115,111,110,0,106,115,111,110,58,106,115,111,+110,0,106,115,111,110,48,58,106,115,111,110,0,100,111,116,95,106,115,111,110,58,106,115,111,110,0,120,100,111,116,95,106,115,111,110,58,106,115,111,110,0,32,32,0,34,110,97,109,101,34,58,32,34,37,115,34,0,34,100,105,114,101,99,116,101,100,34,58,32,37,115,44,10,0,34,115,116,114,105,99,116,34,58,32,37,115,0,34,95,115,117,98,103,114,97,112,104,95,99,110,116,34,58,32,37,100,0,34,95,103,118,105,100,34,58,32,37,100,0,34,111,98,106,101,99,116,115,34,58,32,91,10,0,34,115,117,98,103,114,97,112,104,115,34,58,+32,91,10,0,34,110,111,100,101,115,34,58,32,91,10,0,34,95,103,118,105,100,34,58,32,37,100,44,10,0,34,101,100,103,101,115,34,58,32,91,10,0,34,116,97,105,108,34,58,32,37,100,44,10,0,34,104,101,97,100,34,58,32,37,100,0,34,37,115,34,58,32,0,100,114,97,119,95,0,108,100,114,97,119,95,0,104,100,114,97,119,95,0,116,100,114,97,119,95,0,104,108,100,114,97,119,95,0,116,108,100,114,97,119,95,0,67,111,117,108,100,32,110,111,116,32,112,97,114,115,101,32,120,100,111,116,32,34,37,115,34,10,0,91,10,0,34,111,112,34,+58,32,34,37,99,34,44,10,0,34,114,101,99,116,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,10,0,34,111,112,34,58,32,34,76,34,44,10,0,34,111,112,34,58,32,34,84,34,44,10,0,34,112,116,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,97,108,105,103,110,34,58,32,34,37,99,34,44,10,0,34,119,105,100,116,104,34,58,32,37,46,48,51,102,44,10,0,34,116,101,120,116,34,58,32,34,37,115,34,10,0,34,103,114,97,100,34,58,32,34,110,111,110,101,34,44,10,0,34,99,111,108,+111,114,34,58,32,34,37,115,34,10,0,34,103,114,97,100,34,58,32,34,108,105,110,101,97,114,34,44,10,0,34,112,48,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,112,49,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,103,114,97,100,34,58,32,34,114,97,100,105,97,108,34,44,10,0,34,112,48,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,112,49,34,58,32,91,37,46,48,51,102,44,37,46,48,51,102,44,37,46,48,51,102,93,44,10,0,34,111,112,34,58,32,34,70,34,+44,10,0,34,115,105,122,101,34,58,32,37,46,48,51,102,44,10,0,34,102,97,99,101,34,58,32,34,37,115,34,10,0,34,111,112,34,58,32,34,83,34,44,10,0,34,115,116,121,108,101,34,58,32,34,37,115,34,10,0,34,111,112,34,58,32,34,116,34,44,10,0,34,102,111,110,116,99,104,97,114,34,58,32,37,100,10,0,34,37,115,34,0,34,115,116,111,112,115,34,58,32,91,0,123,34,102,114,97,99,34,58,32,37,46,48,51,102,44,32,34,99,111,108,111,114,34,58,32,34,37,115,34,125,0,93,10,0,34,112,111,105,110,116,115,34,58,32,91,0,91,37,46,48,51,+102,44,37,46,48,51,102,93,0,92,34,0,92,47,0,92,98,0,92,102,0,92,110,0,92,114,0,92,116,0,68,117,112,108,105,99,97,116,101,32,99,108,117,115,116,101,114,32,110,97,109,101,32,34,37,115,34,10,0,120,100,111,116,0,102,105,103,0,102,105,103,58,102,105,103,0,110,32,62,61,32,52,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,102,105,103,46,99,0,102,105,103,95,98,101,122,105,101,114,0,102,105,103,95,114,101,115,111,108,118,101,95,99,111,108,111,114,0,109,97,112,0,105,115,109,97,112,58,109,97,112,0,99,+109,97,112,58,109,97,112,0,105,109,97,112,58,109,97,112,0,99,109,97,112,120,58,109,97,112,0,105,109,97,112,95,110,112,58,109,97,112,0,99,109,97,112,120,95,110,112,58,109,97,112,0,114,101,99,116,32,37,115,32,37,100,44,37,100,32,37,100,44,37,100,10,0,99,105,114,99,108,101,32,37,115,32,37,100,44,37,100,44,37,100,10,0,112,111,108,121,32,37,115,0,32,37,100,44,37,100,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,109,97,112,46,99,0,109,97,112,95,111,117,116,112,117,116,95,115,104,97,112,101,0,114,+101,99,116,97,110,103,108,101,32,40,37,100,44,37,100,41,32,40,37,100,44,37,100,41,32,37,115,32,37,115,10,0,60,97,114,101,97,32,115,104,97,112,101,61,34,99,105,114,99,108,101,34,0,60,97,114,101,97,32,115,104,97,112,101,61,34,114,101,99,116,34,0,60,97,114,101,97,32,115,104,97,112,101,61,34,112,111,108,121,34,0,32,104,114,101,102,61,34,0,32,116,105,116,108,101,61,34,0,32,97,108,116,61,34,34,0,32,99,111,111,114,100,115,61,34,0,37,100,44,37,100,44,37,100,0,37,100,44,37,100,44,37,100,44,37,100,0,37,100,+44,37,100,0,44,37,100,44,37,100,0,34,62,10,0,60,47,109,97,112,62,10,0,98,97,115,101,32,114,101,102,101,114,101,114,10,0,100,101,102,97,117,108,116,32,0,60,109,97,112,32,105,100,61,34,0,34,32,110,97,109,101,61,34,0,109,112,0,109,112,58,109,112,0,35,32,37,115,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,+37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,51,102,32,37,100,32,37,46,52,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,100,32,37,100,32,35,37,48,50,120,37,48,50,120,37,48,50,120,10,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,109,112,46,99,0,109,112,95,114,101,115,111,108,118,101,95,99,111,108,111,114,0,37,100,32,+37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,46,52,102,32,37,100,32,37,46,49,102,32,37,46,49,102,32,37,100,32,37,100,32,37,115,92,48,48,49,10,0,35,32,101,110,100,32,111,102,32,70,73,71,32,102,105,108,101,10,0,35,70,73,71,32,51,46,50,10,0,35,32,71,101,110,101,114,97,116,101,100,32,98,121,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,35,32,84,105,116,108,101,58,32,37,115,10,0,35,32,80,97,103,101,115,58,32,37,100,10,0,80,111,114,116,114,97,105,116,10,+0,67,101,110,116,101,114,10,0,73,110,99,104,101,115,10,0,76,101,116,116,101,114,10,0,49,48,48,46,48,48,10,0,83,105,110,103,108,101,10,0,45,50,10,0,49,50,48,48,0,32,50,10,0,112,115,50,58,112,115,0,32,93,32,32,37,100,32,116,114,117,101,32,37,115,10,0,32,93,32,32,37,100,32,102,97,108,115,101,32,37,115,10,0,32,115,101,116,108,105,110,101,119,105,100,116,104,10,0,37,115,32,0,115,101,116,104,115,98,0,37,46,53,103,32,37,46,53,103,32,37,46,53,103,32,37,115,99,111,108,111,114,10,0,37,32,0,110,101,119,112,+97,116,104,32,0,32,109,111,118,101,116,111,10,0,32,108,105,110,101,116,111,10,0,115,116,114,111,107,101,10,0,32,99,117,114,118,101,116,111,10,0,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,0,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,0,32,101,108,108,105,112,115,101,95,112,97,116,104,32,102,105,108,108,10,0,32,101,108,108,105,112,115,101,95,112,97,116,104,32,115,116,114,111,107,101,10,0,32,47,37,115,32,115,101,116,95,102,111,110,116,10,0,32,109,111,118,101,116,111,+32,0,32,37,115,32,97,108,105,103,110,101,100,116,101,120,116,10,0,91,32,47,82,101,99,116,32,91,32,0,32,93,10,0,32,32,47,66,111,114,100,101,114,32,91,32,48,32,48,32,48,32,93,10,32,32,47,65,99,116,105,111,110,32,60,60,32,47,83,117,98,116,121,112,101,32,47,85,82,73,32,47,85,82,73,32,37,115,32,62,62,10,32,32,47,83,117,98,116,121,112,101,32,47,76,105,110,107,10,47,65,78,78,32,112,100,102,109,97,114,107,10,0,103,115,97,118,101,10,0,37,37,32,37,115,10,0,48,32,48,32,48,32,101,100,103,101,99,111,108,111,114,+10,0,101,110,100,112,97,103,101,10,115,104,111,119,112,97,103,101,10,103,114,101,115,116,111,114,101,10,0,37,37,80,97,103,101,84,114,97,105,108,101,114,10,0,37,37,37,37,69,110,100,80,97,103,101,58,32,37,100,10,0,37,37,37,37,80,97,103,101,58,32,37,100,32,37,100,10,0,37,37,37,37,80,97,103,101,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,76,97,110,100,115,99,97,112,101,0,80,111,114,116,114,97,105,116,0,37,37,37,37,80,97,103,101,79,114,105,101,110,116,97,116,+105,111,110,58,32,37,115,10,0,60,60,32,47,80,97,103,101,83,105,122,101,32,91,37,100,32,37,100,93,32,62,62,32,115,101,116,112,97,103,101,100,101,118,105,99,101,10,0,37,100,32,37,100,32,37,100,32,98,101,103,105,110,112,97,103,101,10,0,103,115,97,118,101,10,37,100,32,37,100,32,37,100,32,37,100,32,98,111,120,112,114,105,109,32,99,108,105,112,32,110,101,119,112,97,116,104,10,0,37,103,32,37,103,32,115,101,116,95,115,99,97,108,101,32,37,100,32,114,111,116,97,116,101,32,37,103,32,37,103,32,116,114,97,110,+115,108,97,116,101,10,0,99,97,110,118,97,115,32,115,105,122,101,32,40,37,100,44,37,100,41,32,101,120,99,101,101,100,115,32,80,68,70,32,108,105,109,105,116,32,40,37,100,41,10,9,40,115,117,103,103,101,115,116,32,115,101,116,116,105,110,103,32,97,32,98,111,117,110,100,105,110,103,32,98,111,120,32,115,105,122,101,44,32,115,101,101,32,100,111,116,40,49,41,41,10,0,91,32,47,67,114,111,112,66,111,120,32,91,37,100,32,37,100,32,37,100,32,37,100,93,32,47,80,65,71,69,83,32,112,100,102,109,97,114,107,10,0,37,+100,32,37,100,32,115,101,116,108,97,121,101,114,10,0,0,37,37,37,37,84,105,116,108,101,58,32,37,115,10,0,37,37,80,97,103,101,115,58,32,40,97,116,101,110,100,41,10,0,37,37,80,97,103,101,115,58,32,49,10,0,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,40,97,116,101,110,100,41,10,0,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,37,69,110,100,67,111,109,109,101,110,116,115,10,115,97,118,101,10,0,115,101,116,117,112,76,97,116,105,110,49,10,+0,91,32,123,67,97,116,97,108,111,103,125,32,60,60,32,47,85,82,73,32,60,60,32,47,66,97,115,101,32,37,115,32,62,62,32,62,62,10,47,80,85,84,32,112,100,102,109,97,114,107,10,0,37,37,66,101,103,105,110,80,114,111,108,111,103,0,47,68,111,116,68,105,99,116,32,50,48,48,32,100,105,99,116,32,100,101,102,0,68,111,116,68,105,99,116,32,98,101,103,105,110,0,47,115,101,116,117,112,76,97,116,105,110,49,32,123,0,109,97,114,107,0,47,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,50,53,54,32,97,114,114,97,121,+32,100,101,102,0,32,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,48,0,73,83,79,76,97,116,105,110,49,69,110,99,111,100,105,110,103,32,48,32,50,53,53,32,103,101,116,105,110,116,101,114,118,97,108,32,112,117,116,105,110,116,101,114,118,97,108,0,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,52,53,32,47,104,121,112,104,101,110,32,112,117,116,0,37,32,83,101,116,32,117,112,32,73,83,79,32,76,97,116,105,110,32,49,32,99,104,97,114,97,99,116,101,114,32,101,110,99,111,100,105,110,103,0,47,+115,116,97,114,110,101,116,73,83,79,32,123,0,32,32,32,32,32,32,32,32,100,117,112,32,100,117,112,32,102,105,110,100,102,111,110,116,32,100,117,112,32,108,101,110,103,116,104,32,100,105,99,116,32,98,101,103,105,110,0,32,32,32,32,32,32,32,32,123,32,49,32,105,110,100,101,120,32,47,70,73,68,32,110,101,32,123,32,100,101,102,32,125,123,32,112,111,112,32,112,111,112,32,125,32,105,102,101,108,115,101,0,32,32,32,32,32,32,32,32,125,32,102,111,114,97,108,108,0,32,32,32,32,32,32,32,32,47,69,110,99,111,100,105,+110,103,32,69,110,99,111,100,105,110,103,86,101,99,116,111,114,32,100,101,102,0,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,100,105,99,116,32,101,110,100,32,100,101,102,105,110,101,102,111,110,116,0,125,32,100,101,102,0,47,84,105,109,101,115,45,82,111,109,97,110,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,84,105,109,101,115,45,73,116,97,108,105,99,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,84,105,109,101,115,45,66,111,108,100,32,115,116,97,114,110,101,116,73,+83,79,32,100,101,102,0,47,84,105,109,101,115,45,66,111,108,100,73,116,97,108,105,99,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,66,111,108,100,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,72,101,108,118,101,116,105,99,97,45,+66,111,108,100,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,79,98,108,105,113,117,101,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,66,111,108,100,32,115,116,97,114,110,101,116,73,83,79,32,100,101,102,0,47,67,111,117,114,105,101,114,45,66,111,108,100,79,98,108,105,113,117,101,32,115,116,97,114,110,101,+116,73,83,79,32,100,101,102,0,99,108,101,97,114,116,111,109,97,114,107,0,125,32,98,105,110,100,32,100,101,102,0,37,37,66,101,103,105,110,82,101,115,111,117,114,99,101,58,32,112,114,111,99,115,101,116,32,103,114,97,112,104,118,105,122,32,48,32,48,0,47,99,111,111,114,100,45,102,111,110,116,45,102,97,109,105,108,121,32,47,84,105,109,101,115,45,82,111,109,97,110,32,100,101,102,0,47,100,101,102,97,117,108,116,45,102,111,110,116,45,102,97,109,105,108,121,32,47,84,105,109,101,115,45,82,111,109,97,110,32,+100,101,102,0,47,99,111,111,114,100,102,111,110,116,32,99,111,111,114,100,45,102,111,110,116,45,102,97,109,105,108,121,32,102,105,110,100,102,111,110,116,32,56,32,115,99,97,108,101,102,111,110,116,32,100,101,102,0,47,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,49,46,48,32,100,101,102,0,47,115,101,116,95,115,99,97,108,101,32,123,0,32,32,32,32,32,32,32,100,117,112,32,49,32,101,120,99,104,32,100,105,118,32,47,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,101,120,99,104,32,100,101,102,0,+32,32,32,32,32,32,32,115,99,97,108,101,0,37,32,115,116,121,108,101,115,0,47,115,111,108,105,100,32,123,32,91,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,100,97,115,104,101,100,32,123,32,91,57,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,108,32,100,117,112,32,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,100,111,116,116,101,100,32,123,32,91,49,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,+108,32,54,32,73,110,118,83,99,97,108,101,70,97,99,116,111,114,32,109,117,108,93,32,48,32,115,101,116,100,97,115,104,32,125,32,98,105,110,100,32,100,101,102,0,47,105,110,118,105,115,32,123,47,102,105,108,108,32,123,110,101,119,112,97,116,104,125,32,100,101,102,32,47,115,116,114,111,107,101,32,123,110,101,119,112,97,116,104,125,32,100,101,102,32,47,115,104,111,119,32,123,112,111,112,32,110,101,119,112,97,116,104,125,32,100,101,102,125,32,98,105,110,100,32,100,101,102,0,47,98,111,108,100,32,123,32,50,+32,115,101,116,108,105,110,101,119,105,100,116,104,32,125,32,98,105,110,100,32,100,101,102,0,47,102,105,108,108,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,117,110,102,105,108,108,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,114,111,117,110,100,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,100,105,97,103,111,110,97,108,115,32,123,32,125,32,98,105,110,100,32,100,101,102,0,47,116,97,112,101,114,101,100,32,123,32,125,32,98,105,110,100,32,100,101,102,0,37,+32,104,111,111,107,115,32,102,111,114,32,115,101,116,116,105,110,103,32,99,111,108,111,114,32,0,47,110,111,100,101,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,101,100,103,101,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,103,114,97,112,104,99,111,108,111,114,32,123,32,115,101,116,104,115,98,99,111,108,111,114,32,125,32,98,105,110,100,32,100,101,102,0,47,110,+111,112,99,111,108,111,114,32,123,112,111,112,32,112,111,112,32,112,111,112,125,32,98,105,110,100,32,100,101,102,0,47,98,101,103,105,110,112,97,103,101,32,123,9,37,32,105,32,106,32,110,112,97,103,101,115,0,9,47,110,112,97,103,101,115,32,101,120,99,104,32,100,101,102,0,9,47,106,32,101,120,99,104,32,100,101,102,0,9,47,105,32,101,120,99,104,32,100,101,102,0,9,47,115,116,114,32,49,48,32,115,116,114,105,110,103,32,100,101,102,0,9,110,112,97,103,101,115,32,49,32,103,116,32,123,0,9,9,103,115,97,118,101,+0,9,9,9,99,111,111,114,100,102,111,110,116,32,115,101,116,102,111,110,116,0,9,9,9,48,32,48,32,109,111,118,101,116,111,0,9,9,9,40,92,40,41,32,115,104,111,119,32,105,32,115,116,114,32,99,118,115,32,115,104,111,119,32,40,44,41,32,115,104,111,119,32,106,32,115,116,114,32,99,118,115,32,115,104,111,119,32,40,92,41,41,32,115,104,111,119,0,9,9,103,114,101,115,116,111,114,101,0,9,125,32,105,102,0,47,115,101,116,95,102,111,110,116,32,123,0,9,102,105,110,100,102,111,110,116,32,101,120,99,104,0,9,115,99,97,108,+101,102,111,110,116,32,115,101,116,102,111,110,116,0,37,32,100,114,97,119,32,116,101,120,116,32,102,105,116,116,101,100,32,116,111,32,105,116,115,32,101,120,112,101,99,116,101,100,32,119,105,100,116,104,0,47,97,108,105,103,110,101,100,116,101,120,116,32,123,9,9,9,37,32,119,105,100,116,104,32,116,101,120,116,0,9,47,116,101,120,116,32,101,120,99,104,32,100,101,102,0,9,47,119,105,100,116,104,32,101,120,99,104,32,100,101,102,0,9,103,115,97,118,101,0,9,9,119,105,100,116,104,32,48,32,103,116,32,123,0,9,+9,9,91,93,32,48,32,115,101,116,100,97,115,104,0,9,9,9,116,101,120,116,32,115,116,114,105,110,103,119,105,100,116,104,32,112,111,112,32,119,105,100,116,104,32,101,120,99,104,32,115,117,98,32,116,101,120,116,32,108,101,110,103,116,104,32,100,105,118,32,48,32,116,101,120,116,32,97,115,104,111,119,0,9,9,125,32,105,102,0,9,103,114,101,115,116,111,114,101,0,47,98,111,120,112,114,105,109,32,123,9,9,9,9,37,32,120,99,111,114,110,101,114,32,121,99,111,114,110,101,114,32,120,115,105,122,101,32,121,115,105,122,+101,0,9,9,52,32,50,32,114,111,108,108,0,9,9,109,111,118,101,116,111,0,9,9,50,32,99,111,112,121,0,9,9,101,120,99,104,32,48,32,114,108,105,110,101,116,111,0,9,9,48,32,101,120,99,104,32,114,108,105,110,101,116,111,0,9,9,112,111,112,32,110,101,103,32,48,32,114,108,105,110,101,116,111,0,9,9,99,108,111,115,101,112,97,116,104,0,47,101,108,108,105,112,115,101,95,112,97,116,104,32,123,0,9,47,114,121,32,101,120,99,104,32,100,101,102,0,9,47,114,120,32,101,120,99,104,32,100,101,102,0,9,47,121,32,101,120,99,104,+32,100,101,102,0,9,47,120,32,101,120,99,104,32,100,101,102,0,9,109,97,116,114,105,120,32,99,117,114,114,101,110,116,109,97,116,114,105,120,0,9,110,101,119,112,97,116,104,0,9,120,32,121,32,116,114,97,110,115,108,97,116,101,0,9,114,120,32,114,121,32,115,99,97,108,101,0,9,48,32,48,32,49,32,48,32,51,54,48,32,97,114,99,0,9,115,101,116,109,97,116,114,105,120,0,47,101,110,100,112,97,103,101,32,123,32,115,104,111,119,112,97,103,101,32,125,32,98,105,110,100,32,100,101,102,0,47,115,104,111,119,112,97,103,101,+32,123,32,125,32,100,101,102,0,47,108,97,121,101,114,99,111,108,111,114,115,101,113,0,9,91,9,37,32,108,97,121,101,114,32,99,111,108,111,114,32,115,101,113,117,101,110,99,101,32,45,32,100,97,114,107,101,115,116,32,116,111,32,108,105,103,104,116,101,115,116,0,9,9,91,48,32,48,32,48,93,0,9,9,91,46,50,32,46,56,32,46,56,93,0,9,9,91,46,52,32,46,56,32,46,56,93,0,9,9,91,46,54,32,46,56,32,46,56,93,0,9,9,91,46,56,32,46,56,32,46,56,93,0,9,93,0,100,101,102,0,47,108,97,121,101,114,108,101,110,32,108,97,121,101,+114,99,111,108,111,114,115,101,113,32,108,101,110,103,116,104,32,100,101,102,0,47,115,101,116,108,97,121,101,114,32,123,47,109,97,120,108,97,121,101,114,32,101,120,99,104,32,100,101,102,32,47,99,117,114,108,97,121,101,114,32,101,120,99,104,32,100,101,102,0,9,108,97,121,101,114,99,111,108,111,114,115,101,113,32,99,117,114,108,97,121,101,114,32,49,32,115,117,98,32,108,97,121,101,114,108,101,110,32,109,111,100,32,103,101,116,0,9,97,108,111,97,100,32,112,111,112,32,115,101,116,104,115,98,99,111,108,111,+114,0,9,47,110,111,100,101,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,9,47,101,100,103,101,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,9,47,103,114,97,112,104,99,111,108,111,114,32,123,110,111,112,99,111,108,111,114,125,32,100,101,102,0,47,111,110,108,97,121,101,114,32,123,32,99,117,114,108,97,121,101,114,32,110,101,32,123,105,110,118,105,115,125,32,105,102,32,125,32,100,101,102,0,47,111,110,108,97,121,101,114,115,32,123,0,9,47,+109,121,117,112,112,101,114,32,101,120,99,104,32,100,101,102,0,9,47,109,121,108,111,119,101,114,32,101,120,99,104,32,100,101,102,0,9,99,117,114,108,97,121,101,114,32,109,121,108,111,119,101,114,32,108,116,0,9,99,117,114,108,97,121,101,114,32,109,121,117,112,112,101,114,32,103,116,0,9,111,114,0,9,123,105,110,118,105,115,125,32,105,102,0,47,99,117,114,108,97,121,101,114,32,48,32,100,101,102,0,37,37,69,110,100,82,101,115,111,117,114,99,101,0,37,37,69,110,100,80,114,111,108,111,103,0,37,37,66,101,103,+105,110,83,101,116,117,112,0,49,52,32,100,101,102,97,117,108,116,45,102,111,110,116,45,102,97,109,105,108,121,32,115,101,116,95,102,111,110,116,0,37,32,47,97,114,114,111,119,108,101,110,103,116,104,32,49,48,32,100,101,102,0,37,32,47,97,114,114,111,119,119,105,100,116,104,32,53,32,100,101,102,0,37,32,109,97,107,101,32,115,117,114,101,32,112,100,102,109,97,114,107,32,105,115,32,104,97,114,109,108,101,115,115,32,102,111,114,32,80,83,45,105,110,116,101,114,112,114,101,116,101,114,115,32,111,116,104,101,+114,32,116,104,97,110,32,68,105,115,116,105,108,108,101,114,0,47,112,100,102,109,97,114,107,32,119,104,101,114,101,32,123,112,111,112,125,32,123,117,115,101,114,100,105,99,116,32,47,112,100,102,109,97,114,107,32,47,99,108,101,97,114,116,111,109,97,114,107,32,108,111,97,100,32,112,117,116,125,32,105,102,101,108,115,101,0,37,32,109,97,107,101,32,39,60,60,39,32,97,110,100,32,39,62,62,39,32,115,97,102,101,32,111,110,32,80,83,32,76,101,118,101,108,32,49,32,100,101,118,105,99,101,115,0,47,108,97,110,103,+117,97,103,101,108,101,118,101,108,32,119,104,101,114,101,32,123,112,111,112,32,108,97,110,103,117,97,103,101,108,101,118,101,108,125,123,49,125,32,105,102,101,108,115,101,0,50,32,108,116,32,123,0,32,32,32,32,117,115,101,114,100,105,99,116,32,40,60,60,41,32,99,118,110,32,40,91,41,32,99,118,110,32,108,111,97,100,32,112,117,116,0,32,32,32,32,117,115,101,114,100,105,99,116,32,40,62,62,41,32,99,118,110,32,40,91,41,32,99,118,110,32,108,111,97,100,32,112,117,116,0,125,32,105,102,0,37,37,69,110,100,83,101,+116,117,112,0,37,37,84,114,97,105,108,101,114,10,0,37,37,37,37,80,97,103,101,115,58,32,37,100,10,0,101,110,100,10,114,101,115,116,111,114,101,10,0,37,37,69,79,70,10,0,37,33,80,83,45,65,100,111,98,101,45,51,46,48,0,32,69,80,83,70,45,51,46,48,10,0,37,37,37,37,67,114,101,97,116,111,114,58,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,100,97,114,107,98,108,117,101,0,100,97,114,107,99,121,97,110,0,100,97,114,107,103,114,97,121,0,100,97,114,107,103,114,101,121,0,100,97,114,107,+109,97,103,101,110,116,97,0,100,97,114,107,114,101,100,0,108,105,103,104,116,103,114,101,101,110,0,60,33,45,45,32,0,60,112,111,108,121,108,105,110,101,0,32,112,111,105,110,116,115,61,34,0,34,47,62,10,0,32,102,105,108,108,61,34,0,117,114,108,40,35,108,95,37,100,41,0,117,114,108,40,35,114,95,37,100,41,0,34,32,102,105,108,108,45,111,112,97,99,105,116,121,61,34,37,102,0,34,32,115,116,114,111,107,101,61,34,0,34,32,115,116,114,111,107,101,45,119,105,100,116,104,61,34,0,34,32,115,116,114,111,107,101,45,+100,97,115,104,97,114,114,97,121,61,34,37,115,0,53,44,50,0,49,44,53,0,34,32,115,116,114,111,107,101,45,111,112,97,99,105,116,121,61,34,37,102,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,115,118,103,46,99,0,115,118,103,95,112,114,105,110,116,95,99,111,108,111,114,0,60,112,97,116,104,0,32,105,100,61,34,0,95,112,34,32,0,32,100,61,34,0,37,99,0,60,100,101,102,115,62,10,60,114,97,100,105,97,108,71,114,97,100,105,101,110,116,32,105,100,61,34,114,95,37,100,34,32,99,120,61,34,53,48,37,37,34,32,+99,121,61,34,53,48,37,37,34,32,114,61,34,55,53,37,37,34,32,102,120,61,34,37,100,37,37,34,32,102,121,61,34,37,100,37,37,34,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,48,34,32,115,116,121,108,101,61,34,115,116,111,112,45,99,111,108,111,114,58,0,59,115,116,111,112,45,111,112,97,99,105,116,121,58,0,49,46,0,59,34,47,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,49,34,32,115,116,121,108,101,61,34,115,116,111,112,45,99,111,108,111,114,58,0,59,34,47,62,10,60,47,114,97,100,105,+97,108,71,114,97,100,105,101,110,116,62,10,60,47,100,101,102,115,62,10,0,60,100,101,102,115,62,10,60,108,105,110,101,97,114,71,114,97,100,105,101,110,116,32,105,100,61,34,108,95,37,100,34,32,103,114,97,100,105,101,110,116,85,110,105,116,115,61,34,117,115,101,114,83,112,97,99,101,79,110,85,115,101,34,32,0,120,49,61,34,0,34,32,121,49,61,34,0,34,32,120,50,61,34,0,34,32,121,50,61,34,0,34,32,62,10,0,60,115,116,111,112,32,111,102,102,115,101,116,61,34,37,46,48,51,102,34,32,115,116,121,108,101,61,34,115,+116,111,112,45,99,111,108,111,114,58,0,59,34,47,62,10,60,47,108,105,110,101,97,114,71,114,97,100,105,101,110,116,62,10,60,47,100,101,102,115,62,10,0,60,112,111,108,121,103,111,110,0,60,101,108,108,105,112,115,101,0,32,99,120,61,34,0,34,32,99,121,61,34,0,34,32,114,120,61,34,0,34,32,114,121,61,34,0,60,116,101,120,116,0,32,116,101,120,116,45,97,110,99,104,111,114,61,34,115,116,97,114,116,34,0,32,116,101,120,116,45,97,110,99,104,111,114,61,34,101,110,100,34,0,32,116,101,120,116,45,97,110,99,104,111,114,+61,34,109,105,100,100,108,101,34,0,32,120,61,34,0,34,32,121,61,34,0,32,102,111,110,116,45,102,97,109,105,108,121,61,34,37,115,0,44,37,115,0,32,102,111,110,116,45,119,101,105,103,104,116,61,34,37],"i8",4,n.q+95218);+B([115,34,0,32,102,111,110,116,45,115,116,114,101,116,99,104,61,34,37,115,34,0,32,102,111,110,116,45,115,116,121,108,101,61,34,37,115,34,0,32,102,111,110,116,45,102,97,109,105,108,121,61,34,37,115,34,0,32,102,111,110,116,45,119,101,105,103,104,116,61,34,98,111,108,100,34,0,32,102,111,110,116,45,115,116,121,108,101,61,34,105,116,97,108,105,99,34,0,32,116,101,120,116,45,100,101,99,111,114,97,116,105,111,110,61,34,0,37,115,111,118,101,114,108,105,110,101,0,37,115,108,105,110,101,45,116,104,114,111,117,+103,104,0,32,98,97,115,101,108,105,110,101,45,115,104,105,102,116,61,34,115,117,112,101,114,34,0,32,98,97,115,101,108,105,110,101,45,115,104,105,102,116,61,34,115,117,98,34,0,32,102,111,110,116,45,115,105,122,101,61,34,37,46,50,102,34,0,32,102,105,108,108,61,34,37,115,34,0,32,102,105,108,108,61,34,35,37,48,50,120,37,48,50,120,37,48,50,120,34,0,115,118,103,95,116,101,120,116,115,112,97,110,0,62,0,60,116,101,120,116,80,97,116,104,32,120,108,105,110,107,58,104,114,101,102,61,34,35,37,115,95,112,34,32,+115,116,97,114,116,79,102,102,115,101,116,61,34,53,48,37,37,34,62,0,60,116,115,112,97,110,32,120,61,34,48,34,32,100,121,61,34,0,34,62,0,60,47,116,115,112,97,110,62,60,47,116,101,120,116,80,97,116,104,62,0,60,47,116,101,120,116,62,10,0,60,47,103,62,10,0,60,103,0,32,105,100,61,34,97,95,0,32,120,108,105,110,107,58,104,114,101,102,61,34,0,32,120,108,105,110,107,58,116,105,116,108,101,61,34,0,32,116,97,114,103,101,116,61,34,0,60,116,105,116,108,101,62,0,60,47,116,105,116,108,101,62,10,0,60,103,32,105,+100,61,34,0,95,37,115,0,34,32,99,108,97,115,115,61,34,37,115,0,99,108,97,115,115,0,32,116,114,97,110,115,102,111,114,109,61,34,115,99,97,108,101,40,0,41,32,114,111,116,97,116,101,40,37,100,41,32,116,114,97,110,115,108,97,116,101,40,0,41,34,62,10,0,60,47,115,118,103,62,10,0,60,33,45,45,0,32,80,97,103,101,115,58,32,37,100,32,45,45,62,10,0,60,115,118,103,32,119,105,100,116,104,61,34,37,100,112,116,34,32,104,101,105,103,104,116,61,34,37,100,112,116,34,10,0,32,118,105,101,119,66,111,120,61,34,37,46,50,+102,32,37,46,50,102,32,37,46,50,102,32,37,46,50,102,34,0,32,120,109,108,110,115,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,50,48,48,48,47,115,118,103,34,0,32,120,109,108,110,115,58,120,108,105,110,107,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,49,57,57,57,47,120,108,105,110,107,34,0,60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,32,115,116,97,110,100,97,108,111,110,+101,61,34,110,111,34,63,62,10,0,115,116,121,108,101,115,104,101,101,116,0,60,63,120,109,108,45,115,116,121,108,101,115,104,101,101,116,32,104,114,101,102,61,34,0,34,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,63,62,10,0,60,33,68,79,67,84,89,80,69,32,115,118,103,32,80,85,66,76,73,67,32,34,45,47,47,87,51,67,47,47,68,84,68,32,83,86,71,32,49,46,49,47,47,69,78,34,10,0,32,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,71,114,97,112,104,105,99,115,47,83,86,71,47,49,46,+49,47,68,84,68,47,115,118,103,49,49,46,100,116,100,34,62,10,0,60,33,45,45,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,116,107,0,116,107,58,116,107,0,35,32,0,32,99,114,101,97,116,101,32,108,105,110,101,32,0,32,45,102,105,108,108,32,0,32,45,100,97,115,104,32,53,0,32,45,100,97,115,104,32,50,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,116,107,46,99,0,116,107,103,101,110,95,112,114,105,110,116,95,116,97,103,115,0,103,114,97,112,104,32,108,97,98,101,108,0,32,45,116,97,103,115,32,123,+37,100,37,115,37,112,125,0,116,107,103,101,110,95,112,114,105,110,116,95,99,111,108,111,114,0,36,99,0,32,45,119,105,100,116,104,32,0,32,45,115,109,111,111,116,104,32,98,101,122,105,101,114,32,0,32,99,114,101,97,116,101,32,112,111,108,121,103,111,110,32,0,32,45,111,117,116,108,105,110,101,32,0,32,99,114,101,97,116,101,32,111,118,97,108,32,0,32,99,114,101,97,116,101,32,116,101,120,116,32,0,32,45,116,101,120,116,32,123,0,125,0,32,45,102,111,110,116,32,123,0,32,37,100,125,0,32,45,97,110,99,104,111,114,+32,119,0,32,45,97,110,99,104,111,114,32,101,0,35,0,32,84,105,116,108,101,58,32,0,32,80,97,103,101,115,58,32,37,100,10,0,35,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,41,10,0,69,114,114,111,114,32,100,117,114,105,110,103,32,99,111,110,118,101,114,115,105,111,110,32,116,111,32,34,85,84,70,45,56,34,46,32,32,81,117,105,116,105,110,103,46,10,0,118,109,108,0,118,109,108,58,118,109,108,0,97,113,117,97,0,102,117,99,104,115,105,97,0,108,105,109,101,0,111,108,105,118,101,0,116,101,97,108,0,32,32,32,+32,32,32,60,33,45,45,32,0,32,45,45,62,10,0,32,60,118,58,115,104,97,112,101,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,0,32,119,105,100,116,104,58,32,37,100,59,32,104,101,105,103,104,116,58,32,37,100,34,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,62,0,60,118,58,112,97,116,104,32,118,61,34,0,32,109,32,0,37,46,48,102,44,37,46,48,102,32,0,32,108,32,0,32,101,32,0,34,47,62,0,60,47,118,58,115,104,97,112,101,62,10,0,60,118,58,115,116,114,+111,107,101,32,99,111,108,111,114,61,34,0,34,32,119,101,105,103,104,116,61,34,37,46,48,102,112,116,0,34,32,100,97,115,104,115,116,121,108,101,61,34,100,97,115,104,0,34,32,100,97,115,104,115,116,121,108,101,61,34,100,111,116,0,34,32,47,62,0,35,37,48,50,120,37,48,50,120,37,48,50,120,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,118,109,108,46,99,0,118,109,108,95,112,114,105,110,116,95,99,111,108,111,114,0,32,119,105,100,116,104,58,32,37,100,59,32,104,101,105,103,104,116,58,32,37,100,34,0,32,+62,0,60,118,58,112,97,116,104,32,32,118,61,34,0,109,32,0,37,115,37,46,48,102,44,37,46,48,102,32,0,99,32,0,47,62,60,47,118,58,115,104,97,112,101,62,10,0,32,102,105,108,108,101,100,61,34,116,114,117,101,34,32,102,105,108,108,99,111,108,111,114,61,34,0,34,32,0,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,32,0,37,46,48,102,32,37,46,48,102,32,0,108,32,0,120,32,101,32,34,47,62,0,32,32,60,118,58,111,118,97,108,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,+116,101,59,0,32,108,101,102,116,58,32,37,46,50,102,59,32,116,111,112,58,32,37,46,50,102,59,0,32,119,105,100,116,104,58,32,37,46,50,102,59,32,104,101,105,103,104,116,58,32,37,46,50,102,34,0,60,47,118,58,111,118,97,108,62,10,0,60,118,58,114,101,99,116,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,0,32,115,116,114,111,107,101,100,61,34,102,97,108,115,101,34,32,102,105,108,108,101,100,61,34,102,97,108,115,101,34,62,10,0,60,118,58,116,101,120,116,98,+111,120,32,105,110,115,101,116,61,34,48,44,48,44,48,44,48,34,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,118,45,116,101,120,116,45,119,114,97,112,112,105,110,103,58,39,102,97,108,115,101,39,59,112,97,100,100,105,110,103,58,39,48,39,59,0,102,111,110,116,45,102,97,109,105,108,121,58,32,39,37,115,39,59,0,102,111,110,116,45,119,101,105,103,104,116,58,32,37,115,59,0,102,111,110,116,45,115,116,114,101,116,99,104,58,32,37,115,59,0,102,111,110,116,45,+115,116,121,108,101,58,32,37,115,59,0,32,102,111,110,116,45,115,105,122,101,58,32,37,46,50,102,112,116,59,0,99,111,108,111,114,58,37,115,59,0,99,111,108,111,114,58,35,37,48,50,120,37,48,50,120,37,48,50,120,59,0,118,109,108,95,116,101,120,116,115,112,97,110,0,34,62,60,99,101,110,116,101,114,62,0,60,47,99,101,110,116,101,114,62,60,47,118,58,116,101,120,116,98,111,120,62,10,0,60,47,118,58,114,101,99,116,62,10,0,60,47,97,62,10,0,60,97,0,32,104,114,101,102,61,34,37,115,34,0,32,116,105,116,108,101,61,34,+37,115,34,0,32,116,97,114,103,101,116,61,34,37,115,34,0,62,10,0,60,47,118,58,103,114,111,117,112,62,10,0,60,47,68,73,86,62,10,0,60,68,73,86,32,105,100,61,39,95,86,77,76,50,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,118,105,115,105,98,105,108,105,116,121,58,104,105,100,100,101,110,34,62,10,0,60,33,45,45,32,105,110,115,101,114,116,32,97,110,121,32,111,116,104,101,114,32,104,116,109,108,32,99,111,110,116,101,110,116,32,104,101,114,101,32,45,+45,62,10,0,60,68,73,86,32,105,100,61,39,95,110,111,116,86,77,76,49,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,34,62,10,0,60,33,45,45,32,116,104,105,115,32,115,104,111,117,108,100,32,111,110,108,121,32,100,105,115,112,108,97,121,32,111,110,32,78,79,78,45,73,69,32,98,114,111,119,115,101,114,115,32,45,45,62,10,0,60,72,50,62,83,111,114,114,121,44,32,116,104,105,115,32,100,105,97,103,114,97,109,32,119,105,108,108,32,111,110,108,121,32,100,105,+115,112,108,97,121,32,99,111,114,114,101,99,116,108,121,32,111,110,32,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,32,53,32,40,97,110,100,32,117,112,41,32,98,114,111,119,115,101,114,115,46,60,47,72,50,62,10,0,60,68,73,86,32,105,100,61,39,95,110,111,116,86,77,76,50,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,34,62,10,0,60,33,45,45,32,105,110,115,101,114,116,32,97,110,121,32,111,116,104,101,114,32,78,79,78,45,73,69,32,104,+116,109,108,32,99,111,110,116,101,110,116,32,104,101,114,101,32,45,45,62,10,0,60,47,66,79,68,89,62,10,60,47,72,84,77,76,62,10,0,60,72,69,65,68,62,0,60,77,69,84,65,32,104,116,116,112,45,101,113,117,105,118,61,34,67,111,110,116,101,110,116,45,84,121,112,101,34,32,99,111,110,116,101,110,116,61,34,116,101,120,116,47,104,116,109,108,59,32,99,104,97,114,115,101,116,61,85,84,70,45,56,34,62,10,0,60,84,73,84,76,69,62,0,60,47,84,73,84,76,69,62,0,60,33,45,45,32,80,97,103,101,115,58,32,37,100,32,45,45,62,10,+0,32,32,32,60,83,67,82,73,80,84,32,76,65,78,71,85,65,71,69,61,39,74,97,118,97,115,99,114,105,112,116,39,62,10,0,32,32,32,102,117,110,99,116,105,111,110,32,98,114,111,119,115,101,114,99,104,101,99,107,40,41,10,0,32,32,32,123,10,0,32,32,32,32,32,32,118,97,114,32,117,97,32,61,32,119,105,110,100,111,119,46,110,97,118,105,103,97,116,111,114,46,117,115,101,114,65,103,101,110,116,10,0,32,32,32,32,32,32,118,97,114,32,109,115,105,101,32,61,32,117,97,46,105,110,100,101,120,79,102,32,40,32,39,77,83,73,69,32,+39,32,41,10,0,32,32,32,32,32,32,118,97,114,32,105,101,118,101,114,115,59,10,0,32,32,32,32,32,32,118,97,114,32,105,116,101,109,59,10,0,32,32,32,32,32,32,118,97,114,32,86,77,76,121,101,115,61,110,101,119,32,65,114,114,97,121,40,39,95,86,77,76,49,95,39,44,39,95,86,77,76,50,95,39,41,59,10,0,32,32,32,32,32,32,118,97,114,32,86,77,76,110,111,61,110,101,119,32,65,114,114,97,121,40,39,95,110,111,116,86,77,76,49,95,39,44,39,95,110,111,116,86,77,76,50,95,39,41,59,10,0,32,32,32,32,32,32,105,102,32,40,32,109,+115,105,101,32,62,32,48,32,41,123,32,32,32,32,32,32,47,47,32,73,102,32,73,110,116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,44,32,114,101,116,117,114,110,32,118,101,114,115,105,111,110,32,110,117,109,98,101,114,10,0,32,32,32,32,32,32,32,32,32,105,101,118,101,114,115,61,32,112,97,114,115,101,73,110,116,32,40,117,97,46,115,117,98,115,116,114,105,110,103,32,40,109,115,105,101,43,53,44,32,117,97,46,105,110,100,101,120,79,102,32,40,39,46,39,44,32,109,115,105,101,32,41,41,41,10,0,32,32,32,32,+32,32,125,10,0,32,32,32,32,32,32,105,102,32,40,105,101,118,101,114,115,62,61,53,41,123,10,0,32,32,32,32,32,32,32,102,111,114,32,40,120,32,105,110,32,86,77,76,121,101,115,41,123,10,0,32,32,32,32,32,32,32,32,32,105,116,101,109,32,61,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,86,77,76,121,101,115,91,120,93,41,59,10,0,32,32,32,32,32,32,32,32,32,105,102,32,40,105,116,101,109,41,32,123,10,0,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,46,115,116,121,+108,101,46,118,105,115,105,98,105,108,105,116,121,61,39,118,105,115,105,98,108,101,39,59,10,0,32,32,32,32,32,32,32,32,32,125,10,0,32,32,32,32,32,32,32,125,10,0,32,32,32,32,32,32,32,102,111,114,32,40,120,32,105,110,32,86,77,76,110,111,41,123,10,0,32,32,32,32,32,32,32,32,32,105,116,101,109,32,61,32,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,86,77,76,110,111,91,120,93,41,59,10,0,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,46,115,116,121,108,101,46,+118,105,115,105,98,105,108,105,116,121,61,39,104,105,100,100,101,110,39,59,10,0,32,32,32,32,32,125,101,108,115,101,123,10,0,32,32,32,32,32,125,10,0,32,32,32,125,10,0,32,32,32,60,47,83,67,82,73,80,84,62,10,0,60,47,72,69,65,68,62,0,60,66,79,68,89,32,111,110,108,111,97,100,61,39,98,114,111,119,115,101,114,99,104,101,99,107,40,41,59,39,62,10,0,60,68,73,86,32,105,100,61,39,95,86,77,76,49,95,39,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,32,100,105,+115,112,108,97,121,58,105,110,108,105,110,101,59,32,118,105,115,105,98,105,108,105,116,121,58,104,105,100,100,101,110,0,32,119,105,100,116,104,58,32,37,100,112,116,59,32,104,101,105,103,104,116,58,32,37,100,112,116,34,62,10,0,60,83,84,89,76,69,62,10,0,118,92,58,42,32,123,32,98,101,104,97,118,105,111,114,58,32,117,114,108,40,35,100,101,102,97,117,108,116,35,86,77,76,41,59,100,105,115,112,108,97,121,58,105,110,108,105,110,101,45,98,108,111,99,107,125,10,0,60,47,83,84,89,76,69,62,10,0,60,120,109,108,+58,110,97,109,101,115,112,97,99,101,32,110,115,61,34,117,114,110,58,115,99,104,101,109,97,115,45,109,105,99,114,111,115,111,102,116,45,99,111,109,58,118,109,108,34,32,112,114,101,102,105,120,61,34,118,34,32,47,62,10,0,32,60,118,58,103,114,111,117,112,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,32,0,32,119,105,100,116,104,58,32,37,100,112,116,59,32,104,101,105,103,104,116,58,32,37,100,112,116,34,0,32,99,111,111,114,100,111,114,105,103,105,110,61,+34,48,44,48,34,32,99,111,111,114,100,115,105,122,101,61,34,37,100,44,37,100,34,32,62,0,60,72,84,77,76,62,10,0,10,60,33,45,45,32,71,101,110,101,114,97,116,101,100,32,98,121,32,0,32,118,101,114,115,105,111,110,32,0,32,40,0,41,10,45,45,62,10,0,112,111,118,32,114,101,110,100,101,114,101,114,58,101,108,32,45,32,37,115,10,0,112,111,118,0,112,111,118,58,112,111,118,0,98,97,107,101,114,115,99,104,111,99,0,98,114,97,115,115,0,98,114,105,103,104,116,103,111,108,100,0,98,114,111,110,122,101,0,98,114,111,110,+122,101,50,0,99,108,101,97,114,0,99,111,111,108,99,111,112,112,101,114,0,99,111,112,112,101,114,0,100,97,114,107,98,114,111,119,110,0,100,97,114,107,112,117,114,112,108,101,0,100,97,114,107,116,97,110,0,100,97,114,107,119,111,111,100,0,100,107,103,114,101,101,110,99,111,112,112,101,114,0,100,117,115,116,121,114,111,115,101,0,102,101,108,100,115,112,97,114,0,102,108,101,115,104,0,103,114,97,121,48,53,0,103,114,101,101,110,99,111,112,112,101,114,0,104,117,110,116,101,114,115,103,114,101,101,110,0,108,+105,103,104,116,95,112,117,114,112,108,101,0,108,105,103,104,116,119,111,111,100,0,109,97,110,100,97,114,105,110,111,114,97,110,103,101,0,109,101,100,105,117,109,102,111,114,101,115,116,103,114,101,101,110,0,109,101,100,105,117,109,103,111,108,100,101,110,114,111,100,0,109,101,100,105,117,109,119,111,111,100,0,109,101,100,95,112,117,114,112,108,101,0,109,105,99,97,0,110,101,111,110,98,108,117,101,0,110,101,111,110,112,105,110,107,0,110,101,119,109,105,100,110,105,103,104,116,98,108,117,101,0,110,+101,119,116,97,110,0,111,108,100,103,111,108,100,0,113,117,97,114,116,122,0,114,105,99,104,98,108,117,101,0,115,99,97,114,108,101,116,0,115,101,109,105,83,119,101,101,116,67,104,111,99,0,115,105,108,118,101,114,0,115,112,105,99,121,112,105,110,107,0,115,117,109,109,101,114,115,107,121,0,118,101,114,121,100,97,114,107,98,114,111,119,110,0,118,101,114,121,95,108,105,103,104,116,95,112,117,114,112,108,101,0,47,47,42,42,42,32,99,111,109,109,101,110,116,58,32,37,115,10,0,47,47,42,42,42,32,112,111,108,+121,108,105,110,101,10,0,115,99,97,108,101,32,32,32,32,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,114,111,116,97,116,101,32,32,32,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,116,114,97,110,115,108,97,116,101,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,10,0,115,112,104,101,114,101,95,115,119,101,101,112,32,123,10,32,32,32,32,37,115,10,32,32,32,32,37,100,44,10,0,108,105,110,101,97,114,95,115,112,108,105,110,101,0,60,37,57,+46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,44,32,37,46,51,102,10,0,37,115,32,32,32,32,37,115,0,32,32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,48,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,37,115,37,115,0,37,115,32,116,114,97,110,115,109,105,116,32,37,46,51,102,0,82,101,100,0,71,114,101,101,110,0,66,108,117,101,0,114,103,98,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,32,116,114,97,110,115,109,105,116,32,37,+46,51,102,0,111,111,112,115,44,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,99,111,108,111,114,32,116,121,112,101,61,37,100,32,37,115,10,0,103,118,114,101,110,100,101,114,95,99,111,114,101,95,112,111,118,46,99,0,112,111,118,95,99,111,108,111,114,95,97,115,95,115,116,114,0,112,105,103,109,101,110,116,32,123,32,99,111,108,111,114,32,37,115,32,125,10,0,47,47,42,42,42,32,98,101,122,105,101,114,10,0,98,95,115,112,108,105,110,101,0,32,32,32,32,32,+32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,48,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,112,111,108,121,103,111,110,10,0,32,32,32,32,116,111,108,101,114,97,110,99,101,32,48,46,49,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,112,111,108,121,103,111,110,32,123,32,37,100,44,10,0,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,0,37,115,10,32,32,32,32,37,115,0,10,32,+32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,101,108,108,105,112,115,101,10,0,116,111,114,117,115,32,123,32,37,46,51,102,44,32,37,46,51,102,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,115,112,104,101,114,101,32,123,60,37,57,46,51,102,44,32,37,57,46,51,102,44,32,37,57,46,51,102,62,44,32,49,46,48,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,47,47,42,42,42,32,+116,101,120,116,115,112,97,110,58,32,37,115,44,32,102,111,110,116,115,105,122,101,32,61,32,37,46,51,102,44,32,102,111,110,116,110,97,109,101,32,61,32,37,115,10,0,115,99,97,108,101,32,37,46,51,102,10,0,116,101,120,116,32,123,10,32,32,32,32,116,116,102,32,34,37,115,34,44,10,32,32,32,32,34,37,115,34,44,32,37,46,51,102,44,32,37,46,51,102,10,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,32,32,32,32,37,115,125,10,0,32,32,32,32,110,111,95,115,104,97,100,111,119,10,0,47,47,42,+42,42,32,101,110,100,95,101,100,103,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,101,100,103,101,10,0,47,47,42,42,42,32,101,110,100,95,110,111,100,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,110,111,100,101,58,32,37,115,10,0,47,47,42,42,42,32,101,110,100,95,99,108,117,115,116,101,114,10,0,47,47,42,42,42,32,98,101,103,105,110,95,99,108,117,115,116,101,114,10,0,47,47,42,42,42,32,101,110,100,95,112,97,103,101,10,0,47,47,42,42,42,32,98,101,103,105,110,95,112,97,103,101,10,0,47,47,42,42,42,32,+101,110,100,95,108,97,121,101,114,10,0,47,47,42,42,42,32,98,101,103,105,110,95,108,97,121,101,114,58,32,37,115,44,32,37,100,47,37,100,10,0,47,47,42,42,42,32,101,110,100,95,103,114,97,112,104,10,0,47,47,42,42,42,32,98,101,103,105,110,95,103,114,97,112,104,32,37,115,10,0,99,97,109,101,114,97,32,123,32,108,111,99,97,116,105,111,110,32,60,37,46,51,102,32,44,32,37,46,51,102,32,44,32,37,46,51,102,62,10,32,32,32,32,32,32,32,32,32,108,111,111,107,95,97,116,32,32,60,37,46,51,102,32,44,32,37,46,51,102,32,44,+32,37,46,51,102,62,10,32,32,32,32,32,32,32,32,32,114,105,103,104,116,32,120,32,42,32,105,109,97,103,101,95,119,105,100,116,104,32,47,32,105,109,97,103,101,95,104,101,105,103,104,116,10,32,32,32,32,32,32,32,32,32,97,110,103,108,101,32,37,46,51,102,10,125,10,0,47,47,115,107,121,10,112,108,97,110,101,32,123,32,60,48,44,32,49,44,32,48,62,44,32,49,32,104,111,108,108,111,119,10,32,32,32,32,116,101,120,116,117,114,101,32,123,10,32,32,32,32,32,32,32,32,112,105,103,109,101,110,116,32,123,32,98,111,122,111,+32,116,117,114,98,117,108,101,110,99,101,32,48,46,57,53,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,108,111,114,95,109,97,112,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,48,48,32,114,103,98,32,60,48,46,48,53,44,32,48,46,50,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,53,48,32,114,103,98,32,60,48,46,48,53,44,32,48,46,50,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,55,53,32,114,103,98,32,60,+49,46,48,48,44,32,49,46,48,48,44,32,49,46,48,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,48,46,55,53,32,114,103,98,32,60,48,46,50,53,44,32,48,46,50,53,44,32,48,46,50,53,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,91,49,46,48,48,32,114,103,98,32,60,48,46,53,48,44,32,48,46,53,48,44,32,48,46,53,48,62,93,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,115,99,97,108,101,32,60,49,46,48,48,44,32,49,46,48,48,44,32,49,46,53,48,62,32,42,32,50,+46,53,48,10,32,32,32,32,32,32,32,32,32,32,32,32,116,114,97,110,115,108,97,116,101,32,60,48,46,48,48,44,32,48,46,48,48,44,32,48,46,48,48,62,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,102,105,110,105,115,104,32,123,32,97,109,98,105,101,110,116,32,49,32,100,105,102,102,117,115,101,32,48,32,125,10,32,32,32,32,125,10,32,32,32,32,115,99,97,108,101,32,49,48,48,48,48,10,125,10,47,47,109,105,115,116,10,102,111,103,32,123,32,102,111,103,95,116,121,112,101,32,50,10,32,32,32,32,100,105,115,116,+97,110,99,101,32,53,48,10,32,32,32,32,99,111,108,111,114,32,114,103,98,32,60,49,46,48,48,44,32,49,46,48,48,44,32,49,46,48,48,62,32,42,32,48,46,55,53,10,32,32,32,32,102,111,103,95,111,102,102,115,101,116,32,48,46,49,48,10,32,32,32,32,102,111,103,95,97,108,116,32,49,46,53,48,10,32,32,32,32,116,117,114,98,117,108,101,110,99,101,32,49,46,55,53,10,125,10,47,47,103,110,100,10,112,108,97,110,101,32,123,32,60,48,46,48,48,44,32,49,46,48,48,44,32,48,46,48,48,62,44,32,48,10,32,32,32,32,116,101,120,116,117,114,+101,32,123,10,32,32,32,32,32,32,32,32,112,105,103,109,101,110,116,123,32,99,111,108,111,114,32,114,103,98,32,60,48,46,50,53,44,32,48,46,52,53,44,32,48,46,48,48,62,32,125,10,32,32,32,32,32,32,32,32,110,111,114,109,97,108,32,123,32,98,117,109,112,115,32,48,46,55,53,32,115,99,97,108,101,32,48,46,48,49,32,125,10,32,32,32,32,32,32,32,32,102,105,110,105,115,104,32,123,32,112,104,111,110,103,32,48,46,49,48,32,125,10,32,32,32,32,125,10,125,10,0,108,105,103,104,116,95,115,111,117,114,99,101,32,123,32,60,49,+53,48,48,44,51,48,48,48,44,45,50,53,48,48,62,32,99,111,108,111,114,32,87,104,105,116,101,32,125,10,0,35,118,101,114,115,105,111,110,32,51,46,54,59,10,0,103,108,111,98,97,108,95,115,101,116,116,105,110,103,115,32,123,32,97,115,115,117,109,101,100,95,103,97,109,109,97,32,49,46,48,32,125,10,0,35,100,101,102,97,117,108,116,32,123,32,102,105,110,105,115,104,32,123,32,97,109,98,105,101,110,116,32,48,46,49,32,100,105,102,102,117,115,101,32,48,46,57,32,125,32,125,10,0,35,105,110,99,108,117,100,101,32,34,+99,111,108,111,114,115,46,105,110,99,34,10,35,105,110,99,108,117,100,101,32,34,116,101,120,116,117,114,101,115,46,105,110,99,34,10,35,105,110,99,108,117,100,101,32,34,115,104,97,112,101,115,46,105,110,99,34,10,0,35,100,101,99,108,97,114,101,32,37,115,32,61,32,37,115,59,10,0,66,108,97,99,107,0,87,104,105,116,101,0,112,105,99,0,112,105,99,58,112,105,99,0,37,115,32,37,115,10,0,46,92,34,32,0,32,37,100,32,37,100,0,32,37,115,10,0,32,37,100,0,102,105,108,108,32,0,101,108,108,105,112,115,101,32,97,116,116,+114,115,37,100,32,37,115,119,105,100,32,37,46,53,102,32,104,116,32,37,46,53,102,32,97,116,32,40,37,46,53,102,44,37,46,53,102,41,59,10,0,37,115,37,115,32,105,115,32,110,111,116,32,97,32,116,114,111,102,102,32,102,111,110,116,10,0,100,111,116,32,112,105,99,32,112,108,117,103,105,110,58,32,0,82,0,46,102,116,32,37,115,10,0,46,112,115,32,37,100,42,92,110,40,83,70,117,47,37,46,48,102,117,10,0,37,48,51,111,0,34,37,115,34,32,97,116,32,40,37,46,53,102,44,37,46,53,102,41,59,10,0,93,10,46,80,69,10,0,37,115,+37,115,32,117,110,115,117,112,112,111,114,116,101,100,10,0,114,111,116,97,116,105,111,110,0,46,80,83,32,37,46,53,102,32,37,46,53,102,10,0,37,115,32,116,111,32,99,104,97,110,103,101,32,100,114,97,119,105,110,103,32,115,105,122,101,44,32,109,117,108,116,105,112,108,121,32,116,104,101,32,119,105,100,116,104,32,97,110,100,32,104,101,105,103,104,116,32,111,110,32,116,104,101,32,46,80,83,32,108,105,110,101,32,97,98,111,118,101,32,97,110,100,32,116,104,101,32,110,117,109,98,101,114,32,111,110,32,116,104,+101,32,116,119,111,32,108,105,110,101,115,32,98,101,108,111,119,32,40,114,111,117,110,100,101,100,32,116,111,32,116,104,101,32,110,101,97,114,101,115,116,32,105,110,116,101,103,101,114,41,32,98,121,32,97,32,115,99,97,108,101,32,102,97,99,116,111,114,10,0,46,110,114,32,83,70,32,37,46,48,102,10,115,99,97,108,101,116,104,105,99,107,110,101,115,115,32,61,32,37,46,48,102,10,0,37,115,32,100,111,110,39,116,32,99,104,97,110,103,101,32,97,110,121,116,104,105,110,103,32,98,101,108,111,119,32,116,104,105,115,+32,108,105,110,101,32,105,110,32,116,104,105,115,32,100,114,97,119,105,110,103,10,0,37,115,32,110,111,110,45,102,97,116,97,108,32,114,117,110,45,116,105,109,101,32,112,105,99,32,118,101,114,115,105,111,110,32,100,101,116,101,114,109,105,110,97,116,105,111,110,44,32,118,101,114,115,105,111,110,32,50,10,0,98,111,120,114,97,100,61,50,46,48,32,37,115,32,119,105,108,108,32,98,101,32,114,101,115,101,116,32,116,111,32,48,46,48,32,98,121,32,103,112,105,99,32,111,110,108,121,10,0,115,99,97,108,101,61,49,46,+48,32,37,115,32,114,101,113,117,105,114,101,100,32,102,111,114,32,99,111,109,112,97,114,105,115,111,110,115,10,0,37,115,32,98,111,120,114,97,100,32,105,115,32,110,111,119,32,48,46,48,32,105,110,32,103,112,105,99,44,32,101,108,115,101,32,105,116,32,114,101,109,97,105,110,115,32,50,46,48,10,0,37,115,32,100,97,115,104,119,105,100,32,105,115,32,48,46,49,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,44,32,48,46,48,53,32,105,110,32,68,87,66,32,50,32,97,110,100,32,105,110,32,103,112,105,99,10,+0,37,115,32,102,105,108,108,118,97,108,32,105,115,32,48,46,51,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,32,40,102,105,108,108,32,48,32,109,101,97,110,115,32,98,108,97,99,107,41,44,32,48,46,53,32,105,110,32,103,112,105,99,32,40,102,105,108,108,32,48,32,109,101,97,110,115,32,119,104,105,116,101,41,44,32,117,110,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,10,0,37,115,32,102,105,108,108,32,104,97,115,32,110,111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,44,+32,103,112,105,99,32,99,97,110,32,117,115,101,32,102,105,108,108,32,111,114,32,102,105,108,108,101,100,44,32,49,48,116,104,32,69,100,105,116,105,111,110,32,117,115,101,115,32,102,105,108,108,32,111,110,108,121,10,0,37,115,32,68,87,66,32,50,32,100,111,101,115,110,39,116,32,117,115,101,32,102,105,108,108,32,97,110,100,32,100,111,101,115,110,39,116,32,100,101,102,105,110,101,32,102,105,108,108,118,97,108,10,0,37,115,32,114,101,115,101,116,32,119,111,114,107,115,32,105,110,32,103,112,105,99,32,97,110,+100,32,49,48,116,104,32,101,100,105,116,105,111,110,44,32,98,117,116,32,105,115,110,39,116,32,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,10,0,37,115,32,68,87,66,32,50,32,99,111,109,112,97,116,105,98,105,108,105,116,121,32,100,101,102,105,110,105,116,105,111,110,115,10,0,105,102,32,98,111,120,114,97,100,32,62,32,49,46,48,32,38,38,32,100,97,115,104,119,105,100,32,60,32,48,46,48,55,53,32,116,104,101,110,32,88,10,9,102,105,108,108,118,97,108,32,61,32,49,59,10,9,100,101,102,105,110,101,32,+102,105,108,108,32,89,32,89,59,10,9,100,101,102,105,110,101,32,115,111,108,105,100,32,89,32,89,59,10,9,100,101,102,105,110,101,32,114,101,115,101,116,32,89,32,115,99,97,108,101,61,49,46,48,32,89,59,10,88,10,0,114,101,115,101,116,32,37,115,32,115,101,116,32,116,111,32,107,110,111,119,110,32,115,116,97,116,101,10,0,37,115,32,71,78,85,32,112,105,99,32,118,115,46,32,49,48,116,104,32,69,100,105,116,105,111,110,32,100,92,40,101,39,116,101,110,116,101,10,0,105,102,32,102,105,108,108,118,97,108,32,62,32,+48,46,52,32,116,104,101,110,32,88,10,9,100,101,102,105,110,101,32,115,101,116,102,105,108,108,118,97,108,32,89,32,102,105,108,108,118,97,108,32,61,32,49,32,45,32,89,59,10,9,100,101,102,105,110,101,32,98,111,108,100,32,89,32,116,104,105,99,107,110,101,115,115,32,50,32,89,59,10,0,9,37,115,32,105,102,32,121,111,117,32,117,115,101,32,103,112,105,99,32,97,110,100,32,105,116,32,98,97,114,102,115,32,111,110,32,101,110,99,111,117,110,116,101,114,105,110,103,32,34,115,111,108,105,100,34,44,10,0,9,37,115,9,+105,110,115,116,97,108,108,32,97,32,109,111,114,101,32,114,101,99,101,110,116,32,118,101,114,115,105,111,110,32,111,102,32,103,112,105,99,32,111,114,32,115,119,105,116,99,104,32,116,111,32,68,87,66,32,111,114,32,49,48,116,104,32,69,100,105,116,105,111,110,32,112,105,99,59,10,0,9,37,115,9,115,111,114,114,121,44,32,116,104,101,32,103,114,111,102,102,32,102,111,108,107,115,32,99,104,97,110,103,101,100,32,103,112,105,99,59,32,115,101,110,100,32,97,110,121,32,99,111,109,112,108,97,105,110,116,32,116,111,+32,116,104,101,109,59,10,0,88,32,101,108,115,101,32,90,10,9,100,101,102,105,110,101,32,115,101,116,102,105,108,108,118,97,108,32,89,32,102,105,108,108,118,97,108,32,61,32,89,59,10,9,100,101,102,105,110,101,32,98,111,108,100,32,89,32,89,59,10,9,100,101,102,105,110,101,32,102,105,108,108,101,100,32,89,32,102,105,108,108,32,89,59,10,90,10,0,37,115,32,97,114,114,111,119,104,101,97,100,32,104,97,115,32,110,111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,44,32,97,114,114,111,119,104,101,+97,100,32,61,32,55,32,109,97,107,101,115,32,102,105,108,108,101,100,32,97,114,114,111,119,104,101,97,100,115,32,105,110,32,103,112,105,99,32,97,110,100,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,37,115,32,97,114,114,111,119,104,101,97,100,32,105,115,32,117,110,100,101,102,105,110,101,100,32,105,110,32,68,87,66,32,50,44,32,105,110,105,116,105,97,108,108,121,32,49,32,105,110,32,103,112,105,99,44,32,50,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,97,114,114,111,+119,104,101,97,100,32,61,32,55,32,37,115,32,110,111,116,32,117,115,101,100,32,98,121,32,103,114,97,112,104,118,105,122,10,0,37,115,32,71,78,85,32,112,105,99,32,115,117,112,112,111,114,116,115,32,97,32,98,111,120,114,97,100,32,118,97,114,105,97,98,108,101,32,116,111,32,100,114,97,119,32,98,111,120,101,115,32,119,105,116,104,32,114,111,117,110,100,101,100,32,99,111,114,110,101,114,115,59,32,68,87,66,32,97,110,100,32,49,48,116,104,32,69,100,46,32,100,111,32,110,111,116,10,0,98,111,120,114,97,100,32,+61,32,48,32,37,115,32,110,111,32,114,111,117,110,100,101,100,32,99,111,114,110,101,114,115,32,105,110,32,103,114,97,112,104,118,105,122,10,0,37,115,32,71,78,85,32,112,105,99,32,115,117,112,112,111,114,116,115,32,97,32,108,105,110,101,116,104,105,99,107,32,118,97,114,105,97,98,108,101,32,116,111,32,115,101,116,32,108,105,110,101,32,116,104,105,99,107,110,101,115,115,59,32,68,87,66,32,97,110,100,32,49,48,116,104,32,69,100,46,32,100,111,32,110,111,116,10,0,108,105,110,101,116,104,105,99,107,32,61,32,+48,59,32,111,108,100,108,105,110,101,116,104,105,99,107,32,61,32,108,105,110,101,116,104,105,99,107,10,0,37,115,32,46,80,83,32,119,47,111,32,97,114,103,115,32,99,97,117,115,101,115,32,71,78,85,32,112,105,99,32,116,111,32,115,99,97,108,101,32,100,114,97,119,105,110,103,32,116,111,32,102,105,116,32,56,46,53,120,49,49,32,112,97,112,101,114,59,32,68,87,66,32,100,111,101,115,32,110,111,116,10,0,37,115,32,109,97,120,112,115,104,116,32,97,110,100,32,109,97,120,112,115,119,105,100,32,104,97,118,101,32,110,+111,32,109,101,97,110,105,110,103,32,105,110,32,68,87,66,32,50,46,48,44,32,115,101,116,32,112,97,103,101,32,98,111,117,110,100,97,114,105,101,115,32,105,110,32,103,112,105,99,32,97,110,100,32,105,110,32,49,48,116,104,32,69,100,105,116,105,111,110,10,0,37,115,32,109,97,120,112,115,104,116,32,97,110,100,32,109,97,120,112,115,119,105,100,32,97,114,101,32,112,114,101,100,101,102,105,110,101,100,32,116,111,32,49,49,46,48,32,97,110,100,32,56,46,53,32,105,110,32,103,112,105,99,10,0,109,97,120,112,115,104,+116,32,61,32,37,102,10,109,97,120,112,115,119,105,100,32,61,32,37,102,10,0,68,111,116,58,32,91,10,0,100,101,102,105,110,101,32,97,116,116,114,115,48,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,117,110,102,105,108,108,101,100,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,114,111,117,110,100,101,100,32,37,37,32,37,37,59,32,100,101,102,105,110,101,32,100,105,97,103,111,110,97,108,115,32,37,37,32,37,37,10,0,37,115,32,114,101,115,116,111,114,101,32,112,111,105,110,116,32,115,105,122,101,32,+97,110,100,32,102,111,110,116,10,46,112,115,32,92,110,40,46,83,10,46,102,116,32,92,110,40,68,70,10,0,37,115,32,67,114,101,97,116,111,114,58,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,10,0,37,115,32,84,105,116,108,101,58,32,37,115,10,0,37,115,32,115,97,118,101,32,112,111,105,110,116,32,115,105,122,101,32,97,110,100,32,102,111,110,116,10,46,110,114,32,46,83,32,92,110,40,46,115,10,46,110,114,32,68,70,32,92,110,40,46,102,10,0,112,110,103,58,115,118,103,0,103,105,102,58,115,118,+103,0,106,112,101,103,58,115,118,103,0,106,112,101,58,115,118,103,0,106,112,103,58,115,118,103,0,112,110,103,58,102,105,103,0,103,105,102,58,102,105,103,0,106,112,101,103,58,102,105,103,0,106,112,101,58,102,105,103,0,106,112,103,58,102,105,103,0,112,110,103,58,118,114,109,108,0,103,105,102,58,118,114,109,108,0,106,112,101,103,58,118,114,109,108,0,106,112,101,58,118,114,109,108,0,106,112,103,58,118,114,109,108,0,101,112,115,58,112,115,0,112,115,58,112,115,0,40,108,105,98,41,58,112,115,0,112,110,103,+58,109,97,112,0,103,105,102,58,109,97,112,0,106,112,101,103,58,109,97,112,0,106,112,101,58,109,97,112,0,106,112,103,58,109,97,112,0,112,115,58,109,97,112,0,101,112,115,58,109,97,112,0,115,118,103,58,109,97,112,0,112,110,103,58,100,111,116,0,103,105,102,58,100,111,116,0,106,112,101,103,58,100,111,116,0,106,112,101,58,100,111,116,0,106,112,103,58,100,111,116,0,112,115,58,100,111,116,0,101,112,115,58,100,111,116,0,115,118,103,58,100,111,116,0,112,110,103,58,120,100,111,116,0,103,105,102,58,120,100,111,+116,0,106,112,101,103,58,120,100,111,116,0,106,112,101,58,120,100,111,116,0,106,112,103,58,120,100,111,116,0,112,115,58,120,100,111,116,0,101,112,115,58,120,100,111,116,0,115,118,103,58,120,100,111,116,0,115,118,103,58,115,118,103,0,112,110,103,58,118,109,108,0,103,105,102,58,118,109,108,0,106,112,101,103,58,118,109,108,0,106,112,101,58,118,109,108,0,106,112,103,58,118,109,108,0,103,105,102,58,116,107,0,105,109,97,103,101,32,99,114,101,97,116,101,32,112,104,111,116,111,32,34,112,104,111,116,111,95,+37,115,34,32,45,102,105,108,101,32,34,37,115,34,10,0,36,99,32,99,114,101,97,116,101,32,105,109,97,103,101,32,37,46,50,102,32,37,46,50,102,32,45,105,109,97,103,101,32,34,112,104,111,116,111,95,37,115,34,10,0,60,118,58,105,109,97,103,101,32,115,114,99,61,34,37,115,34,32,115,116,121,108,101,61,34,32,112,111,115,105,116,105,111,110,58,97,98,115,111,108,117,116,101,59,32,119,105,100,116,104,58,37,46,50,102,59,32,104,101,105,103,104,116,58,37,46,50,102,59,32,108,101,102,116,58,37,46,50,102,32,59,32,116,+111,112,58,37,46,50,102,34,0,32,47,62,10,0,103,118,108,111,97,100,105,109,97,103,101,95,99,111,114,101,46,99,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,112,115,108,105,98,0,91,32,0,37,103,32,37,103,32],"i8",4,n.q+105458);+B([93,32,32,37,100,32,116,114,117,101,32,37,115,10,0,93,32,32,37,100,32,102,97,108,115,101,32,37,115,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,112,115,0,103,115,97,118,101,32,37,103,32,37,103,32,116,114,97,110,115,108,97,116,101,32,110,101,119,112,97,116,104,10,0,117,115,101,114,95,115,104,97,112,101,95,37,100,10,0,103,114,101,115,116,111,114,101,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,118,114,109,108,0,83,104,97,112,101,32,123,10,0,32,32,97,112,112,101,97,114,+97,110,99,101,32,65,112,112,101,97,114,97,110,99,101,32,123,10,0,32,32,32,32,109,97,116,101,114,105,97,108,32,77,97,116,101,114,105,97,108,32,123,10,0,32,32,32,32,32,32,97,109,98,105,101,110,116,73,110,116,101,110,115,105,116,121,32,48,46,51,51,10,0,32,32,32,32,32,32,32,32,100,105,102,102,117,115,101,67,111,108,111,114,32,49,32,49,32,49,10,0,32,32,32,32,125,10,0,32,32,32,32,116,101,120,116,117,114,101,32,73,109,97,103,101,84,101,120,116,117,114,101,32,123,32,117,114,108,32,34,37,115,34,32,125,10,+0,32,32,125,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,102,105,103,0,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,46,49,102,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,32,37,100,32,37,115,10,0,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,32,37,100,10,0,99,111,114,101,95,108,111,97,100,105,109,97,103,101,95,115,118,103,0,60,105,109,97,103,101,32,120,108,105,110,107,58,104,+114,101,102,61,34,0,34,32,119,105,100,116,104,61,34,37,103,112,120,34,32,104,101,105,103,104,116,61,34,37,103,112,120,34,32,112,114,101,115,101,114,118,101,65,115,112,101,99,116,82,97,116,105,111,61,34,120,77,105,100,89,77,105,100,32,109,101,101,116,34,32,120,61,34,37,103,34,32,121,61,34,37,103,34,0,32,116,114,97,110,115,102,111,114,109,61,34,114,111,116,97,116,101,40,37,100,32,37,103,32,37,103,41,34,0,34,32,119,105,100,116,104,61,34,37,103,112,120,34,32,104,101,105,103,104,116,61,34,37,103,112,120,+34,32,112,114,101,115,101,114,118,101,65,115,112,101,99,116,82,97,116,105,111,61,34,120,77,105,110,89,77,105,110,32,109,101,101,116,34,32,120,61,34,37,103,34,32,121,61,34,37,103,34,0,47,62,10,0,100,111,116,95,108,97,121,111,117,116,0,112,104,97,115,101,0,100,111,116,32,100,111,101,115,32,110,111,116,32,115,117,112,112,111,114,116,32,116,104,101,32,97,115,112,101,99,116,32,97,116,116,114,105,98,117,116,101,32,102,111,114,32,100,105,115,99,111,110,110,101,99,116,101,100,32,103,114,97,112,104,115,32,+111,114,32,103,114,97,112,104,115,32,119,105,116,104,32,99,108,117,115,116,101,114,115,10,0,118,32,61,61,32,110,0,100,111,116,105,110,105,116,46,99,0,114,101,109,111,118,101,95,102,114,111,109,95,114,97,110,107,0,99,111,109,112,111,117,110,100,0,111,114,100,101,114,0,101,100,103,101,32,108,97,98,101,108,115,32,119,105,116,104,32,115,112,108,105,110,101,115,61,99,117,114,118,101,100,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,105,110,32,100,111,116,32,45,32,117,115,101,32,120,108,97,98,+101,108,115,10,0,40,108,32,61,32,69,68,95,108,97,98,101,108,40,102,101,41,41,0,100,111,116,115,112,108,105,110,101,115,46,99,0,115,101,116,69,100,103,101,76,97,98,101,108,80,111,115,0,69,68,95,108,97,98,101,108,40,102,101,41,0,95,100,111,116,95,115,112,108,105,110,101,115,0,102,108,97,116,32,101,100,103,101,32,98,101,116,119,101,101,110,32,97,100,106,97,99,101,110,116,32,110,111,100,101,115,32,111,110,101,32,111,102,32,119,104,105,99,104,32,104,97,115,32,97,32,114,101,99,111,114,100,32,115,104,97,+112,101,32,45,32,114,101,112,108,97,99,101,32,114,101,99,111,114,100,115,32,119,105,116,104,32,72,84,77,76,45,108,105,107,101,32,108,97,98,101,108,115,10,0,32,32,69,100,103,101,32,37,115,32,37,115,32,37,115,10,0,97,117,120,103,0,108,97,98,101,108,95,102,108,111,97,116,0,102,105,120,101,100,0,120,120,120,0,49,48,48,48,48,0,123,37,115,125,0,101,32,33,61,32,78,85,76,76,0,102,97,115,116,103,114,46,99,0,100,101,108,101,116,101,95,102,97,115,116,95,101,100,103,101,0,110,32,33,61,32,78,68,95,110,101,120,+116,40,110,41,0,102,97,115,116,95,110,111,100,101,0,117,32,33,61,32,118,0,102,97,115,116,95,110,111,100,101,97,112,112,0,78,68,95,110,101,120,116,40,118,41,32,61,61,32,78,85,76,76,0,102,105,110,100,95,102,97,115,116,95,110,111,100,101,40,103,44,32,110,41,0,100,101,108,101,116,101,95,102,97,115,116,95,110,111,100,101,0,100,101,108,101,116,101,95,102,108,97,116,95,101,100,103,101,0,109,101,114,103,101,95,111,110,101,119,97,121,32,103,108,105,116,99,104,10,0,109,101,114,103,101,95,111,110,101,119,97,+121,0,108,103,0,105,110,102,111,0,99,111,109,112,0,99,110,116,32,61,61,32,115,122,0,109,105,110,99,114,111,115,115,46,99,0,102,105,120,76,97,98,101,108,79,114,100,101,114,0,0,109,99,108,105,109,105,116,0,109,101,114,103,101,50,58,32,103,114,97,112,104,32,37,115,44,32,114,97,110,107,32,37,100,32,104,97,115,32,111,110,108,121,32,37,100,32,60,32,37,100,32,110,111,100,101,115,10,0,114,101,109,105,110,99,114,111,115,115,0,109,105,110,99,114,111,115,115,32,37,115,58,32,37,100,32,99,114,111,115,115,105,+110,103,115,44,32,37,46,50,102,32,115,101,99,115,46,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,37,115,32,37,115,32,114,97,110,107,32,37,100,32,105,32,61,32,37,100,32,97,110,32,61,32,48,10,0,71,68,95,114,97,110,107,40,103,41,91,114,93,46,110,32,60,61,32,71,68,95,114,97,110,107,40,103,41,91,114,93,46,97,110,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,+32,37,100,58,32,78,68,95,111,114,100,101,114,40,37,115,41,32,91,37,100,93,32,62,32,71,68,95,114,97,110,107,40,82,111,111,116,41,91,37,100,93,46,97,110,32,91,37,100,93,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,114,97,110,107,32,37,100,32,110,111,116,32,105,110,32,114,97,110,107,32,114,97,110,103,101,32,91,37,100,44,37,100,93,10,0,105,110,115,116,97,108,108,95,105,110,95,114,97,110,107,44,32,108,105,110,101,32,37,100,58,32,71,68,95,114,97,110,+107,40,103,41,91,37,100,93,46,118,32,43,32,78,68,95,111,114,100,101,114,40,37,115,41,32,91,37,100,93,32,62,32,71,68,95,114,97,110,107,40,103,41,91,37,100,93,46,97,118,32,43,32,71,68,95,114,97,110,107,40,82,111,111,116,41,91,37,100,93,46,97,110,32,91,37,100,93,10,0,115,117,114,112,114,105,115,101,10,0,78,68,95,111,114,100,101,114,40,118,41,32,60,32,78,68,95,111,114,100,101,114,40,119,41,0,116,114,97,110,115,112,111,115,101,95,115,116,101,112,0,118,0,110,101,105,103,104,98,111,114,0,40,114,118,32,61,+61,32,48,41,32,124,124,32,40,78,68,95,111,114,100,101,114,40,114,118,41,45,78,68,95,111,114,100,101,114,40,118,41,41,42,100,105,114,32,62,32,48,0,99,111,110,115,116,114,97,105,110,105,110,103,95,102,108,97,116,95,101,100,103,101,40,103,44,118,44,101,41,32,61,61,32,70,65,76,83,69,0,102,108,97,116,95,114,101,111,114,100,101,114,0,78,68,95,114,97,110,107,40,118,41,32,61,61,32,114,0,112,111,115,116,111,114,100,101,114,0,102,108,97,116,105,110,100,101,120,40,97,103,104,101,97,100,40,101,41,41,32,60,32,+77,45,62,110,114,111,119,115,0,102,108,97,116,95,115,101,97,114,99,104,0,102,108,97,116,105,110,100,101,120,40,97,103,116,97,105,108,40,101,41,41,32,60,32,77,45,62,110,99,111,108,115,0,109,105,110,99,114,111,115,115,58,32,112,97,115,115,32,37,100,32,105,116,101,114,32,37,100,32,116,114,121,105,110,103,32,37,100,32,99,117,114,95,99,114,111,115,115,32,37,100,32,98,101,115,116,95,99,114,111,115,115,32,37,100,10,0,98,97,108,97,110,99,101,0,111,117,116,0,111,114,100,101,114,105,110,103,32,39,37,115,39,+32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,46,10,0,111,114,100,101,114,105,110,103,32,39,37,115,39,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,32,102,111,114,32,110,111,100,101,32,39,37,115,39,46,10,0,95,110,101,119,95,114,97,110,107,0,69,100,103,101,32,108,101,110,103,116,104,32,37,102,32,108,97,114,103,101,114,32,116,104,97,110,32,109,97,120,105,109,117,109,32,37,117,32,97,108,108,111,119,101,100,46,10,67,104,101,99,107,32,102,111,114,32,111,118,101,114,119,105,100,101,+32,110,111,100,101,40,115,41,46,10,0,104,112,0,112,111,115,105,116,105,111,110,46,99,0,99,111,110,110,101,99,116,71,114,97,112,104,0,114,97,110,107,40,103,44,32,50,44,32,110,115,105,116,101,114,50,40,103,41,41,32,61,61,32,48,0,100,111,116,95,112,111,115,105,116,105,111,110,0,65,82,61,37,48,46,52,108,102,9,32,65,114,101,97,61,32,37,48,46,52,108,102,9,0,68,117,109,109,121,61,37,100,10,0,71,111,105,110,103,32,116,111,32,97,112,112,108,121,32,97,110,111,116,104,101,114,32,101,120,112,97,110,115,105,111,+110,46,10,0,110,101,120,116,35,105,116,101,114,61,37,100,10,0,110,115,108,105,109,105,116,0,99,111,110,116,97,105,110,95,110,111,100,101,115,32,99,108,117,115,116,32,37,115,32,114,97,110,107,32,37,100,32,109,105,115,115,105,110,103,32,110,111,100,101,10,0,110,115,108,105,109,105,116,49,0,110,101,119,114,97,110,107,0,108,101,118,101,108,32,97,115,115,105,103,110,109,101,110,116,32,99,111,110,115,116,114,97,105,110,116,115,0,108,101,118,101,108,32,103,114,97,112,104,32,114,101,99,0,99,111,109,112,97,+99,116,0,95,119,101,97,107,95,37,100,0,127,114,111,111,116,0,77,97,120,114,97,110,107,32,61,32,37,100,44,32,109,105,110,114,97,110,107,32,61,32,37,100,10,0,108,101,97,100,101,114,32,33,61,32,78,85,76,76,0,114,97,110,107,46,99,0,99,108,117,115,116,101,114,95,108,101,97,100,101,114,0,40,78,68,95,85,70,95,115,105,122,101,40,110,41,32,60,61,32,49,41,32,124,124,32,40,110,32,61,61,32,108,101,97,100,101,114,41,0,97,103,104,101,97,100,40,101,41,32,61,61,32,85,70,95,102,105,110,100,40,97,103,104,101,97,100,+40,101,41,41,0,109,105,110,109,97,120,95,101,100,103,101,115,0,97,103,116,97,105,108,40,101,41,32,61,61,32,85,70,95,102,105,110,100,40,97,103,116,97,105,108,40,101,41,41,0,114,97,110,107,0,115,97,109,101,0,109,105,110,0,115,111,117,114,99,101,0,109,97,120,0,115,105,110,107,0,127,116,111,112,0,127,98,111,116,0,114,97,110,107,105,110,103,58,32,102,97,105,108,117,114,101,32,116,111,32,99,114,101,97,116,101,32,115,116,114,111,110,103,32,99,111,110,115,116,114,97,105,110,116,32,101,100,103,101,32,98,101,+116,119,101,101,110,32,110,111,100,101,115,32,37,115,32,97,110,100,32,37,115,10,0,108,101,118,101,108,32,101,100,103,101,32,114,101,99,0,108,101,118,101,108,32,110,111,100,101,32,114,101,99,0,115,97,109,101,104,101,97,100,0,115,97,109,101,116,97,105,108,0,116,111,111,32,109,97,110,121,32,40,62,32,37,100,41,32,115,97,109,101,123,104,101,97,100,44,116,97,105,108,125,32,103,114,111,117,112,115,32,102,111,114,32,110,111,100,101,32,37,115,10,0,99,111,109,98,105,65,82,32,61,32,37,108,102,10,0,37,108,102,+44,37,100,0,116,104,101,32,97,115,112,101,99,116,32,97,116,116,114,105,98,117,116,101,32,104,97,115,32,98,101,101,110,32,100,105,115,97,98,108,101,100,32,100,117,101,32,116,111,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,102,108,97,119,115,32,45,32,97,116,116,114,105,98,117,116,101,32,105,103,110,111,114,101,100,46,10,0,69,68,95,116,111,95,118,105,114,116,40,101,41,32,61,61,32,78,85,76,76,0,99,108,97,115,115,50,46,99,0,109,101,114,103,101,95,99,104,97,105,110,0,69,68,95,116,111,95,+118,105,114,116,40,111,114,105,103,41,32,61,61,32,78,85,76,76,0,109,97,107,101,95,99,104,97,105,110,0,69,68,95,116,111,95,118,105,114,116,40,111,114,105,103,41,32,33,61,32,78,85,76,76,0,37,115,32,119,97,115,32,97,108,114,101,97,100,121,32,105,110,32,97,32,114,97,110,107,115,101,116,44,32,100,101,108,101,116,101,100,32,102,114,111,109,32,99,108,117,115,116,101,114,32,37,115,10,0,78,68,95,114,97,110,107,40,102,114,111,109,41,32,60,32,78,68,95,114,97,110,107,40,116,111,41,0,99,108,117,115,116,101,114,+46,99,0,109,97,112,95,112,97,116,104,0,108,104,101,97,100,0,108,116,97,105,108,0,37,115,32,45,62,32,37,115,58,32,115,112,108,105,110,101,32,115,105,122,101,32,62,32,49,32,110,111,116,32,115,117,112,112,111,114,116,101,100,10,0,37,115,32,45,62,32,37,115,58,32,104,101,97,100,32,110,111,116,32,105,110,115,105,100,101,32,104,101,97,100,32,99,108,117,115,116,101,114,32,37,115,10,0,37,115,32,45,62,32,37,115,58,32,116,97,105,108,32,105,115,32,105,110,115,105,100,101,32,104,101,97,100,32,99,108,117,115,116,+101,114,32,37,115,10,0,98,101,122,45,62,115,102,108,97,103,0,99,111,109,112,111,117,110,100,46,99,0,109,97,107,101,67,111,109,112,111,117,110,100,69,100,103,101,0,98,101,122,45,62,101,102,108,97,103,0,37,115,32,45,62,32,37,115,58,32,116,97,105,108,32,110,111,116,32,105,110,115,105,100,101,32,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,10,0,37,115,32,45,62,32,37,115,58,32,104,101,97,100,32,105,115,32,105,110,115,105,100,101,32,116,97,105,108,32,99,108,117,115,116,101,114,32,37,115,10,0,+40,37,46,53,103,44,37,46,53,103,41,0,115,101,103,109,101,110,116,32,91,37,115,44,37,115,93,32,100,111,101,115,32,110,111,116,32,105,110,116,101,114,115,101,99,116,32,98,111,120,32,108,108,61,37,115,44,117,114,61,37,115,10,0,98,111,120,73,110,116,101,114,115,101,99,116,102,0,99,108,117,115,116,101,114,32,110,97,109,101,100,32,37,115,32,110,111,116,32,102,111,117,110,100,10,0,99,111,110,99,101,110,116,114,97,116,101,61,116,114,117,101,32,109,97,121,32,110,111,116,32,119,111,114,107,32,99,111,114,114,+101,99,116,108,121,46,10,0,114,101,98,117,105,108,116,100,95,118,108,105,115,116,115,58,32,114,97,110,107,32,108,101,97,100,32,37,115,32,110,111,116,32,105,110,32,111,114,100,101,114,32,37,100,32,111,102,32,114,97,110,107,32,37,100,10,0,100,101,103,101,110,101,114,97,116,101,32,99,111,110,99,101,110,116,114,97,116,101,100,32,114,97,110,107,32,37,115,44,37,100,10,0,78,68,95,105,110,40,114,105,103,104,116,41,46,115,105,122,101,32,43,32,78,68,95,111,117,116,40,114,105,103,104,116,41,46,115,105,122,101,+32,61,61,32,48,0,99,111,110,99,46,99,0,109,101,114,103,101,118,105,114,116,117,97,108,0,0,100,111,116,58,32,79,117,116,32,111,102,32,109,101,109,111,114,121,10,0,71,68,95,109,105,110,114,97,110,107,40,103,41,32,61,61,32,48,0,102,108,97,116,46,99,0,97,98,111,109,105,110,97,116,105,111,110,0,78,68,95,111,117,116,40,118,41,46,115,105,122,101,32,61,61,32,50,0,115,101,116,98,111,117,110,100,115,0,117,115,101,114,111,117,116,58,32,99,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,+101,109,111,114,121,10,0,69,114,114,111,114,0,87,97,114,110,105,110,103,0,37,115,58,32,0,95,65,71,95,100,97,116,97,100,105,99,116,0,97,103,100,105,99,116,111,102,58,32,117,110,107,110,111,119,110,32,107,105,110,100,32,37,100,10,0,95,65,71,95,115,116,114,100,97,116,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,99,37,108,100,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,117,114,101,0,97,103,100,101,108,101,116,101,32,111,110,32,119,114,+111,110,103,32,103,114,97,112,104,0,97,103,100,101,108,101,116,101,32,111,110,32,98,97,100,32,111,98,106,101,99,116,0,97,103,114,97,112,104,111,102,32,97,32,98,97,100,32,111,98,106,101,99,116,0,97,103,114,111,111,116,32,111,102,32,97,32,98,97,100,32,111,98,106,101,99,116,0,95,65,71,95,112,101,110,100,105,110,103,0,97,103,114,101,99,111,114,100,95,99,97,108,108,98,97,99,107,32,111,102,32,97,32,98,97,100,32,111,98,106,101,99,116,0,112,101,110,100,32,100,105,99,116,111,102,32,97,32,98,97,100,32,111,+98,106,101,99,116,0,109,111,118,101,32,116,111,32,102,114,111,110,116,32,108,111,99,107,32,105,110,99,111,110,115,105,115,116,101,110,99,121,0,0,108,105,110,101,0,37,100,32,37,49,91,34,93,37,110,0,105,110,112,117,116,0,115,121,110,116,97,120,32,97,109,98,105,103,117,105,116,121,32,45,32,98,97,100,108,121,32,100,101,108,105,109,105,116,101,100,32,110,117,109,98,101,114,32,39,0,39,32,105,110,32,108,105,110,101,32,37,100,32,111,102,32,0,32,115,112,108,105,116,115,32,105,110,116,111,32,116,119,111,32,+116,111,107,101,110,115,10,0,37,115,0,92,92,0,102,97,116,97,108,32,102,108,101,120,32,115,99,97,110,110,101,114,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,45,45,101,110,100,32,111,102,32,98,117,102,102,101,114,32,109,105,115,115,101,100,0,102,97,116,97,108,32,101,114,114,111,114,32,45,32,115,99,97,110,110,101,114,32,105,110,112,117,116,32,98,117,102,102,101,114,32,111,118,101,114,102,108,111,119,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,101,109,111,114,121,32,105,+110,32,97,97,103,95,103,101,116,95,110,101,120,116,95,98,117,102,102,101,114,40,41,0,102,97,116,97,108,32,102,108,101,120,32,115,99,97,110,110,101,114,32,105,110,116,101,114,110,97,108,32,101,114,114,111,114,45,45,110,111,32,97,99,116,105,111,110,32,102,111,117,110,100,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,101,109,111,114,121,32,105,110,32,97,97,103,95,99,114,101,97,116,101,95,98,117,102,102,101,114,40,41,0,58,32,0,32,105,110,32,108,105,110,101,32,37,100,0,32,110,101,97,114,+32,39,0,32,115,99,97,110,110,105,110,103,32,97,32,113,117,111,116,101,100,32,115,116,114,105,110,103,32,40,109,105,115,115,105,110,103,32,101,110,100,113,117,111,116,101,63,32,108,111,110,103,101,114,32,116,104,97,110,32,37,100,63,41,0,10,83,116,114,105,110,103,32,115,116,97,114,116,105,110,103,58,34,0,32,115,99,97,110,110,105,110,103,32,97,32,72,84,77,76,32,115,116,114,105,110,103,32,40,109,105,115,115,105,110,103,32,39,62,39,63,32,98,97,100,32,110,101,115,116,105,110,103,63,32,108,111,110,103,101,+114,32,116,104,97,110,32,37,100,63,41,0,10,83,116,114,105,110,103,32,115,116,97,114,116,105,110,103,58,60,0,32,115,99,97,110,110,105,110,103,32,97,32,47,42,46,46,46,42,47,32,99,111,109,109,101,110,116,32,40,109,105,115,115,105,110,103,32,39,42,47,63,32,108,111,110,103,101,114,32,116,104,97,110,32,37,100,63,41,0,102,108,101,120,32,115,99,97,110,110,101,114,32,112,117,115,104,45,98,97,99,107,32,111,118,101,114,102,108,111,119,0,37,115,10,0,111,117,116,32,111,102,32,100,121,110,97,109,105,99,32,109,+101,109,111,114,121,32,105,110,32,97,97,103,101,110,115,117,114,101,95,98,117,102,102,101,114,95,115,116,97,99,107,40,41,0,108,105,110,101,108,101,110,103,116,104,0,59,10,0,32,91,107,101,121,61,0,93,0,32,91,0,44,10,0,61,0,95,37,108,100,95,83,85,83,80,69,67,84,0,100,105,0,115,116,114,105,99,116,32,0,123,10,0,93,59,10,0,34,34,0,115,116,114,105,99,116,0,97,103,97,112,112,108,121,58,32,117,110,107,110,111,119,110,32,111,98,106,101,99,116,32,116,121,112,101,32,37,100,10,0,18,238,238,20,9,3,238,254,238,+238,238,1,238,238,238,1,238,238,10,254,238,19,25,21,238,19,1,238,238,238,238,11,17,238,238,238,238,238,238,238,238,238,1,238,238,22,9,1,1,29,15,23,238,238,26,23,27,238,238,28,238,238,238,238,1,25,251,238,238,238,1,238,16,238,238,30,238,238,238,238,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,23,17,2,2,2,2,2,2,2,2,2,2,2,2,2,18,16,2,19,2,2,22,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,20,2,21,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,+14,2,15,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,3,4,5,6,7,8,9,10,11,12,13,11,3,4,5,15,7,3,12,13,6,12,13,14,12,13,26,21,22,0,1,0,3,7,14,6,15,8,12,13,18,19,42,16,17,9,16,47,48,17,50,23,19,13,20,18,46,18,20,65,19,50,19,44,64,42,66,25,44,66,70,34,12,13,14,35,15,9,16,17,10,16,17,201,+16,17,45,69,70,252,1,6,246,15,7,246,36,2,16,17,47,48,54,77,78,40,38,59,60,42,54,49,57,61,63,47,58,64,216,68,48,62,37,55,67,53,75,43,56,73,76,0,3,9,0,0,0,1,14,2,11,12,8,35,36,37,54,59,61,0,13,16,18,27,22,28,18,39,50,34,23,51,30,60,6,7,53,5,15,17,20,24,41,0,19,41,0,0,0,0,0,55,21,40,29,30,0,33,38,52,31,48,62,25,44,0,27,0,32,26,42,0,43,58,46,47,0,49,56,57,45,0,2,2,1,0,3,3,1,0,1,0,1,1,1,0,2,1,1,0,2,2,3,1,1,0,0,5,0,1,3,1,3,5,3,1,1,1,1,2,0,1,0,4,2,0,2,1,1,3,2,1,0,3,2,1,0,1,1,0,1,1,1,3,107,101,121,0,0,24,+25,25,25,26,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,36,36,38,39,37,37,40,40,41,41,41,42,42,43,43,43,44,44,45,45,46,47,47,48,49,49,50,51,52,54,53,55,55,55,56,56,56,57,57,58,58,238,238,255,238,238,238,238,238,238,31,32,238,0,239,238,238,238,12,238,238,238,8,13,238,238,238,248,238,238,238,238,238,238,245,238,255,3,8,4,33,5,11,18,19,39,20,21,22,41,50,65,23,24,25,26,44,51,52,66,71,72,27,74,28,29,46,30,79,31,32,97,116,116,114,105,98,117,116,101,32,109,97,99,114,111,115,32,110,111,116,32,105,109,+112,108,101,109,101,110,116,101,100,0,37,115,58,37,115,0,46,37,100,0,110,111,110,97,109,101,46,103,118,0,67,111,117,108,100,32,110,111,116,32,111,112,101,110,32,34,37,115,34,32,102,111,114,32,119,114,105,116,105,110,103,32,58,32,37,115,10,0,78,111,32,108,105,98,122,32,115,117,112,112,111,114,116,46,10,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,102,97,105,108,117,114,101,10,0,103,118,119,114,105,116,101,95,110,111,95,122,32,112,114,111,98,108,101,109,32,37,100,10,0,78,111,+32,108,105,98,122,32,115,117,112,112,111,114,116,10,0,103,118,112,114,105,110,116,102,58,32,37,115,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,46,57,57,0,103,114,97,112,104,118,105,122,0,50,46,52,48,46,49,0,50,48,49,54,49,50,50,53,46,48,51,48,52,0,114,101,110,100,101,114,0,100,101,118,105,99,101,0,108,111,97,100,105,109,97,103,101,0,100,121,110,97,109,105,99,32,108,111,97,100,105,110,103,32,110,111,116,32,97,118,97,105,108,97,98,108,101,10,0,85,115,+105,110,103,32,37,115,58,32,37,115,58,37,115,10,0,103,118,117,115,101,114,115,104,97,112,101,46,99,0,103,118,117,115,101,114,115,104,97,112,101,95,102,105,110,100,0,103,118,117,115,101,114,115,104,97,112,101,95,102,105,108,101,95,97,99,99,101,115,115,0,70,105,108,101,110,97,109,101,32,34,37,115,34,32,105,115,32,117,110,115,97,102,101,10,0,37,115,32,119,104,105,108,101,32,111,112,101,110,105,110,103,32,37,115,10,0,117,115,45,62,102,0,103,118,117,115,101,114,115,104,97,112,101,95,111,112,101,110,0,+60,115,118,103,0,87,69,66,80,0,119,101,98,112,0,40,108,105,98,41,0,34,37,115,34,32,119,97,115,32,110,111,116,32,102,111,117,110,100,32,97,115,32,97,32,102,105,108,101,32,111,114,32,97,115,32,97,32,115,104,97,112,101,32,108,105,98,114,97,114,121,32,109,101,109,98,101,114,10,0,1,208,209,210,211,212,213,214,215,216,217,0,37,37,66,111,117,110,100,105,110,103,66,111,120,58,0,40,91,97,45,122,93,91,97,45,122,65,45,90,93,42,41,61,34,40,91,94,34,93,42,41,34,0,99,97,110,110,111,116,32,99,111,109,112,105,108,+101,32,114,101,103,117,108,97,114,32,101,120,112,114,101,115,115,105,111,110,32,37,115,0,37,108,102,37,50,115,0,112,116,0,118,105,101,119,66,111,120,0,37,108,102,32,37,108,102,32,37,108,102,32,37,108,102,0,47,77,101,100,105,97,66,111,120,0,105,110,0,112,120,0,112,99,0,34,0,99,109,0,109,109,0,137,80,78,71,13,10,26,10,0,112,110,103,0,37,33,80,83,45,65,100,111,98,101,45,0,66,77,0,98,109,112,0,71,73,70,56,0,103,105,102,0,255,216,255,224,0,106,112,101,103,0,37,80,68,70,45,0,112,100,102,0,197,208,211,198,+0,101,112,115,0,60,63,120,109,108,0,120,109,108,0,82,73,70,70,0,114,105,102,102,0,0,0,1,0,0,105,99,111,0,37,100,32,37,100,32,37,100,32,37,100,0,76,97,121,111,117,116,32,119,97,115,32,110,111,116,32,100,111,110,101,10,0,102,97,105,108,117,114,101,32,109,97,108,108,111,99,39,105,110,103,32,102,111,114,32,114,101,115,117,108,116,32,115,116,114,105,110,103,0,111,114,105,103,0,111,112,0,99,99,111,109,112,115,46,99,0,109,97,112,67,108,117,115,116,0,99,99,103,114,97,112,104,105,110,102,111,0,99,99,103,110,+111,100,101,105,110,102,111,0,100,103,0,40,37,52,108,100,41,32,37,55,108,100,32,110,111,100,101,115,32,37,55,108,100,32,101,100,103,101,115,10,0,32,32,32,32,32,32,32,37,55,100,32,110,111,100,101,115,32,37,55,100,32,101,100,103,101,115,32,37,55,108,100,32,99,111,109,112,111,110,101,110,116,115,32,37,115,10,0,69,114,114,111,114,58,32,110,111,100,101,32,34,37,115,34,32,98,101,108,111,110,103,115,32,116,111,32,116,119,111,32,110,111,110,45,110,101,115,116,101,100,32,99,108,117,115,116,101,114,115,32,+34,37,115,34,32,97,110,100,32,34,37,115,34,10,0,103,99,58,32,79,117,116,32,111,102,32,109,101,109,111,114,121,10,0,95,99,99,95,0,98,98,91,37,115,93,32,37,46,53,103,32,37,46,53,103,32,37,46,53,103,32,37,46,53,103,10,0,115,116,101,112,32,115,105,122,101,32,61,32,37,100,10,0,37,115,32,110,111,46,32,99,101,108,108,115,32,37,100,32,87,32,37,100,32,72,32,37,100,10,0,32,32,37,100,32,37,100,32,99,101,108,108,10,0,99,99,32,40,37,100,32,99,101,108,108,115,41,32,97,116,32,40,37,100,44,37,100,41,10,0,112,111,+115,91,37,100,93,32,37,100,32,37,100,10,0,115,111,114,116,118,0,112,105,110,102,111,0,112,97,99,107,46,99,0,103,101,116,80,97,99,107,73,110,102,111,0,32,32,109,97,114,103,105,110,32,37,100,10,0,112,97,99,107,109,111,100,101,0,112,97,114,115,101,80,97,99,107,77,111,100,101,73,110,102,111,0,97,114,114,97,121,0,97,115,112,101,99,116,0,37,102,0,112,97,99,107,32,105,110,102,111,58,10,0,117,110,100,101,102,105,110,101,100,0,32,32,109,111,100,101,32,32,32,37,115,10,0,32,32,97,115,112,101,99,116,32,37,102,+10,0,32,32,115,105,122,101,32,32,32,37,100,10,0,32,32,102,108,97,103,115,32,32,37,100,10,0,112,97,99,107,0,114,111,119,32,109,97,106,111,114,0,99,111,108,117,109,110,32,109,97,106,111,114,0,97,114,114,97,121,32,112,97,99,107,105,110,103,58,32,37,115,32,37,100,32,114,111,119,115,32,37,100,32,99,111,108,117,109,110,115,10,0,99,99,32,40,37,100,32,99,101,108,108,115,41,32,97,116,32,40,37,100,44,37,100,41,32,40,37,100,44,37,100,41,10,0,108,105,98,112,97,99,107,58,32,100,105,115,99,32,61,32,37,102,32,40,+32,60,32,48,41,10,0,80,97,99,107,105,110,103,58,32,99,111,109,112,117,116,101,32,103,114,105,100,32,115,105,122,101,10,0,97,32,37,102,32,98,32,37,102,32,99,32,37,102,32,100,32,37,102,32,114,32,37,102,10,0,114,111,111,116,32,37,100,32,40,37,102,41,32,37,100,32,40,37,102,41,10,0,32,114,49,32,37,102,32,114,50,32,37,102,10,0,65,114,114,111,119,32,116,121,112,101,32,34,37,115,34,32,117,110,107,110,111,119,110,32,45,32,105,103,110,111,114,105,110,103,10,0,110,111,114,109,97,108,0,99,114,111,119,0,116,101,+101,0,100,111,116,0,105,110,118,0,118,101,101,0,112,101,110,0,109,112,116,121,0,99,117,114,118,101,0,105,99,117,114,118,101,0,108,0,104,97,108,102,0,105,110,118,101,109,112,116,121,0,95,98,97,99,107,103,114,111,117,110,100,0,95,100,114,97,119,95,0,67,111,117,108,100,32,110,111,116,32,112,97,114,115,101,32,34,95,98,97,99,107,103,114,111,117,110,100,34,32,97,116,116,114,105,98,117,116,101,32,105,110,32,103,114,97,112,104,32,37,115,10,0,32,32,34,37,115,34,10,0,110,111,32,109,101,109,111,114,121,32,102,+114,111,109,32,122,109,97,108,108,111,99,40,41,10,0,111,98,106,0,101,109,105,116,46,99,0,112,111,112,95,111,98,106,95,115,116,97,116,101,0,99,108,117,115,116,0,37,108,100,0,98,103,99,111,108,111,114,0,108,97,121,101,114,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,105,110,32,37,115,32,111,117,116,112,117,116,10,0,99,111,108,111,114,115,99,104,101,109,101,0,103,114,97,100,105,101,110,116,32,112,101,110,32,99,111,108,111,114,115,32,110,111,116,32,121,101,116,32,115,117,112,112,111,114,+116,101,100,46,10,0,73,109,97,103,101,115,32,117,110,115,117,112,112,111,114,116,101,100,32,105,110,32,34,98,97,99,107,103,114,111,117,110,100,34,32,97,116,116,114,105,98,117,116,101,10,0,105,110,32,99,108,117,115,116,101,114,32,37,115,10,0,77,111,114,101,32,116,104,97,110,32,50,32,99,111,108,111,114,115,32,115,112,101,99,105,102,105,101,100,32,102,111,114,32,97,32,103,114,97,100,105,101,110,116,32,45,32,105,103,110,111,114,105,110,103,32,114,101,109,97,105,110,105,110,103,10,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,101,115,116,105,110,103,32,110,111,116,32,97,108,108,111,119,101,100,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,117,110,109,97,116,99,104,101,100,32,39,41,39,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,116,114,117,110,99,97,116,105,110,103,+32,115,116,121,108,101,32,39,37,115,39,10,0,117,110,109,97,116,99,104,101,100,32,39,40,39,32,105,110,32,115,116,121,108,101,58,32,37,115,10,0,67,0,76,97,121,111,117,116,32,119,97,115,32,110,111,116,32,100,111,110,101,46,32,32,77,105,115,115,105,110,103,32,108,97,121,111,117,116,32,112,108,117,103,105,110,115,63,32,10,0,103,118,82,101,110,100,101,114,74,111,98,115,32,37,115,58,32,37,46,50,102,32,115,101,99,115,46,10,0,115,112,108,45,62,115,105,122,101,32,62,32,48,0,105,110,105,116,95,115,112,108,105,+110,101,115,95,98,98,0,112,97,100,0,66,76,0,112,97,103,101,100,105,114,0,108,97,121,101,114,115,0,108,97,121,101,114,115,101,112,0,58,9,32,0,108,97,121,101,114,108,105,115,116,115,101,112,0,44,0,84,104,101,32,99,104,97,114,97,99,116,101,114,32,39,37,99,39,32,97,112,112,101,97,114,115,32,105,110,32,98,111,116,104,32,116,104,101,32,108,97,121,101,114,115,101,112,32,97,110,100,32,108,97,121,101,114,108,105,115,116,115,101,112,32,97,116,116,114,105,98,117,116,101,115,32,45,32,108,97,121,101,114,108,105,+115,116,115,101,112,32,105,103,110,111,114,101,100,46,10,0,108,97,121,101,114,115,101,108,101,99,116,0,84,104,101,32,108,97,121,101,114,115,101,108,101,99,116,32,97,116,116,114,105,98,117,116,101,32,34,37,115,34,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,97,110,121,32,108,97,121,101,114,32,115,112,101,99,105,102,101,100,32,98,121,32,116,104,101,32,108,97,121,101,114,115,32,97,116,116,114,105,98,117,116,101,32,45,32,105,103,110,111,114,101,100,46,10,0,108,97,121,111,117,116,32,119,97,+115,32,110,111,116,32,100,111,110,101,10,0,114,101,110,100,101,114,101,114,32,102,111,114,32,37,115,32,105,115,32,117,110,97,118,97,105,108,97,98,108,101,10,0,111,117,116,112,117,116,111,114,100,101,114,0,111,100,101,115,102,105,114,115,116,0,100,103,101,115,102,105,114,115,116,0,118,105,101,119,112,111,114,116,0,37,108,102,44,37,108,102,44,37,108,102,44,39,37,91,94,39,93,39,0,37,108,102,44,37,108,102,44,37,108,102,44,37,91,94,44,93,37,115,0,37,108,102,44,37,108,102,44,37,108,102,44,37,108,102,44,+37,108,102,0,112,97,103,101,100,105,114,61,37,115,32,105,103,110,111,114,101,100,10,0,115,111,108,105,100,0,0,115,101,116,108,105,110,101,119,105,100,116,104,0,49,0,0,98,122,46,115,105,122,101,32,62,32,48,0,98,101,122,105,101,114,95,98,98,0,98,122,46,115,105,122,101,32,37,32,51,32,61,61,32,49,0,97,108,108,0,108,97,98,101,108,97,108,105,103,110,101,100,0,101,100,103,101,104,114,101,102,0,101,100,103,101,85,82,76,0,108,97,98,101,108,104,114,101,102,0,108,97,98,101,108,85,82,76,0,116,97,105,108,104,+114,101,102,0,116,97,105,108,85,82,76,0,104,101,97,100,104,114,101,102,0,104,101,97,100,85,82,76,0,116,97,114,103,101,116,0,101,100,103,101,116,97,114,103,101,116,0,108,97,98,101,108,116,97,114,103,101,116,0,116,97,105,108,116,97,114,103,101,116,0,104,101,97,100,116,97,114,103,101,116,0,101,100,103,101,116,111,111,108,116,105,112,0,108,97,98,101,108,116,111,111,108,116,105,112,0,116,97,105,108,116,111,111,108,116,105,112,0,104,101,97,100,116,111,111,108,116,105,112,0,32,45,62,32,0,32,45,45,32,0,105,+110,32,101,100,103,101,32,37,115,37,115,37,115,10,0,102,111,114,119,97,114,100,0,98,97,99,107,0,101,109,105,116,95,101,100,103,101,95,108,97,98,101,108,0,37,115,45,37,115,0,84,111,116,97,108,32,115,105,122,101,32,62,32,49,32,105,110,32,34,37,115,34,32,99,111,108,111,114,32,115,112,101,99,32,0,73,108,108,101,103,97,108,32,108,101,110,103,116,104,32,118,97,108,117,101,32,105,110,32,34,37,115,34,32,99,111,108,111,114,32,97,116,116,114,105,98,117,116,101,32,0,112,97,103,101,37,100,44,37,100,95,0,0,0,+108,97,98,101,108,0,37,108,102,0,102,111,110,116,112,97,116,104,0,68,79,84,70,79,78,84,80,65,84,72,0,71,68,70,79,78,84,80,65,84,72,0,99,104,97,114,115,101,116,0,117,116,102,45,56,0,108,97,116,105,110,45,49,0,108,97,116,105,110,49,0,108,49,0,73,83,79,45,56,56,53,57,45,49,0,73,83,79,95,56,56,53,57,45,49,0,73,83,79,56,56,53,57,45,49,0,73,83,79,45,73,82,45,49,48,48,0,98,105,103,45,53,0,98,105,103,53,0,117,116,102,56,0,85,110,115,117,112,112,111,114,116,101,100,32,99,104,97,114,115,101,116,32,34,37,115,+34,32,45,32,97,115,115,117,109,105,110,103,32,117,116,102,45,56,10,0,105,109,97,103,101,112,97,116,104,0,113,117,97,110,116,117,109,0,114,97,110,107,100,105,114,0,76,82,0,66,84,0,82,76,0,110,111,100,101,115,101,112,0,114,97,110,107,115,101,112,0,101,113,117,97,108,108,121,0,115,104,111,119,98,111,120,101,115,0,102,111,110,116,110,97,109,101,115,0,114,97,116,105,111,0,97,117,116,111,0,99,111,109,112,114,101,115,115,0,101,120,112,97,110,100,0,102,105,108,108,0,115,105,122,101,0,112,97,103,101,0,99,+101,110,116,101,114,0,114,111,116,97,116,101,0,111,114,105,101,110,116,97,116,105,111,110,0,108,97,110,100,115,99,97,112,101,0,99,108,117,115,116,101,114,114,97,110,107,0,99,111,110,99,101,110,116,114,97,116,101,0,100,112,105,0,114,101,115,111,108,117,116,105,111,110,0,111,114,100,101,114,105,110,103,0,103,114,97,100,105,101,110,116,97,110,103,108,101,0,102,105,108,108,99,111,108,111,114,0,115,116,121,108,101,0,102,111,110,116,115,105,122,101,0,102,111,110,116,110,97,109,101,0,102,111,110,116,99,+111,108,111,114,0,120,108,97,98,101,108,0,112,101,110,119,105,100,116,104,0,115,105,100,101,115,0,112,101,114,105,112,104,101,114,105,101,115,0,115,107,101,119,0,100,105,115,116,111,114,116,105,111,110,0,102,105,120,101,100,115,105,122,101,0,110,111,106,117,115,116,105,102,121,0,108,97,121,101,114,0,103,114,111,117,112,0,99,111,109,109,101,110,116,0,118,101,114,116,105,99,101,115,0,122,0,119,101,105,103,104,116,0,108,97,98,101,108,102,108,111,97,116,0,100,105,114,0,97,114,114,111,119,104,101,97,100,+0,97,114,114,111,119,116,97,105,108,0,104,101,97,100,108,97,98,101,108,0,116,97,105,108,108,97,98,101,108,0,108,97,98,101,108,102,111,110,116,115,105,122,101,0,108,97,98,101,108,102,111,110,116,110,97,109,101,0,108,97,98,101,108,102,111,110,116,99,111,108,111,114,0,108,97,98,101,108,100,105,115,116,97,110,99,101,0,108,97,98,101,108,97,110,103,108,101,0,109,105,110,108,101,110,0,100,101,99,111,114,97,116,101,0,97,114,114,111,119,115,105,122,101,0,99,111,110,115,116,114,97,105,110,116,0,116,97,105,+108,99,108,105,112,0,104,101,97,100,99,108,105,112,0,105,100,0,108,97,98,101,108,106,117,115,116,0,108,111,99,97,108,0,103,108,111,98,97,108,0,37,108,102,44,37,108,102,37,99,0,37,108,102,37,99,0,103,100,0,112,115,0,115,118,103,0,105,110,32,108,97,98,101,108,32,111,102,32,103,114,97,112,104,32,37,115,10,0,105,110,32,108,97,98,101,108,32,111,102,32,110,111,100,101,32,37,115,10,0,105,110,32,108,97,98,101,108,32,111,102,32,101,100,103,101,32,37,115,32,37,115,32,37,115,10,0,107,105,110,100,32,61,61,32,+76,84,95,78,79,78,69,0,108,97,98,101,108,115,46,99,0,109,97,107,101,95,108,97,98,101,108,0,38,35,49,51,59,0,38,35,49,48,59,0,38,113,117,111,116,59,0,38,35,49,54,48,59,0,38,97,109,112,59,0,38,35,51,57,59,0,38,35,52,53,59,0,38,103,116,59,0,38,108,116,59,0,92,76,0,92,71,0,92,69,0,92,72,0,92,84,0,37,115,32,37,100,32,110,111,100,101,115,32,37,100,32,101,100,103,101,115,32,109,97,120,105,116,101,114,61,37,100,32,98,97,108,97,110,99,101,61,37,100,10,0,110,101,116,119,111,114,107,32,115,105,109,112,108,101,+120,58,32,0,116,114,111,117,98,108,101,32,105,110,32,105,110,105,116,95,114,97,110,107,10,0,9,37,115,32,37,100,10,0,33,84,82,69,69,95,69,68,71,69,40,101,41,0,110,115,46,99,0,109,101,114,103,101,95,116,114,101,101,115,0,40,114,48,45,62,104,101,97,112,95,105,110,100,101,120,32,62,32,45,49,41,32,124,124,32,40,114,49,45,62,104,101,97,112,95,105,110,100,101,120,32,62],"i8",4,n.q+115698);+B([32,45,49,41,0,83,84,115,101,116,85,110,105,111,110,0,114,45,62,104,101,97,112,95,105,110,100,101,120,32,62,61,32,48,0,84,114,101,101,95,101,100,103,101,46,115,105,122,101,32,61,61,32,78,95,110,111,100,101,115,32,45,32,49,0,102,101,97,115,105,98,108,101,95,116,114,101,101,0,117,112,100,97,116,101,58,32,109,105,115,109,97,116,99,104,101,100,32,108,99,97,32,105,110,32,116,114,101,101,117,112,100,97,116,101,115,10,0,37,100,32,0,37,115,37,100,32,110,111,100,101,115,32,37,100,32,101,100,103,101,115,+32,37,100,32,105,116,101,114,32,37,46,50,102,32,115,101,99,10,0,115,101,97,114,99,104,115,105,122,101,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,109,105,115,115,105,110,103,32,116,114,101,101,32,101,100,103,101,10,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,101,109,112,116,121,32,111,117,116,101,100,103,101,32,108,105,115,116,10,0,97,100,100,95,116,114,101,101,95,101,100,103,101,58,32,101,109,112,116,121,32,105,110,101,100,103,101,32,108,105,115,116,10,0,103,114,97,112,+104,32,0,37,46,53,103,0,32,0,0,0,110,111,100,101,32,0,115,116,111,112,10,0,112,111,115,0,114,101,99,116,115,0,120,108,112,0,108,112,0,104,101,97,100,95,108,112,0,116,97,105,108,95,108,112,0,108,119,105,100,116,104,0,108,104,101,105,103,104,116,0,98,98,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,0,44,37,46,53,103,0,37,46,53,103,44,37,46,53,103,0,115,97,109,112,108,101,112,111,105,110,116,115,0,37,46,53,103,32,37,46,53,103,0,115,44,37,46,53,103,44,37,46,53,103,32,0,101,44,37,46,53,103,44,37,46,53,+103,32,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,44,37,46,53,103,0,37,46,50,102,0,37,46,53,103,44,37,46,53,103,44,37,46,53,103,44,37,46,53,103,32,0,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,116,97,105,108,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,+101,32,119,105,116,104,32,104,101,97,100,32,108,97,98,101,108,32,37,115,0,110,111,32,112,111,115,105,116,105,111,110,32,102,111,114,32,101,100,103,101,32,119,105,116,104,32,120,108,97,98,101,108,32,37,115,0,102,111,114,99,101,108,97,98,101,108,115,0,37,100,32,111,98,106,115,32,37,100,32,120,108,97,98,101,108,115,32,102,111,114,99,101,61,37,100,32,98,98,61,40,37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,10,0,111,98,106,101,99,116,115,10,0,32,91,37,100,93,32,40,+37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,37,112,32,34,37,115,34,10,0,120,108,97,98,101,108,115,10,0,32,91,37,100,93,32,37,112,32,115,101,116,32,37,100,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,40,37,46,48,50,102,44,37,46,48,50,102,41,32,37,115,10,0,37,100,32,111,117,116,32,111,102,32,37,100,32,108,97,98,101,108,115,32,112,111,115,105,116,105,111,110,101,100,46,10,0,37,100,32,111,117,116,32,111,102,32,37,100,32,101,120,116,101,114,105,111,114,32,108,+97,98,101,108,115,32,112,111,115,105,116,105,111,110,101,100,46,10,0,108,111,115,116,32,37,115,32,37,115,32,101,100,103,101,10,0,47,112,97,116,104,98,111,120,32,123,10,32,32,32,32,47,88,32,101,120,99,104,32,110,101,103,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,89,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,110,101,103,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,37,46,53,103,+32,115,117,98,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,0,47,112,97,116,104,98,111,120,32,123,10,32,32,32,32,47,89,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,+32,47,88,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,37,46,53,103,32,115,117,98,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,32,32,99,108,+111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,32,125,32,100,101,102,10,47,100,98,103,115,116,97,114,116,32,123,32,103,115,97,118,101,32,37,46,53,103,32,37,46,53,103,32,116,114,97,110,115,108,97,116,101,32,125,32,100,101,102,10,47,97,114,114,111,119,108,101,110,103,116,104,32,49,48,32,100,101,102,10,47,97,114,114,111,119,119,105,100,116,104,32,97,114,114,111,119,108,101,110,103,116,104,32,50,32,100,105,118,32,100,101,102,10,47,97,114,114,111,119,104,101,97,100,32,123,10,32,32,32,32,103,+115,97,118,101,10,32,32,32,32,114,111,116,97,116,101,10,32,32,32,32,99,117,114,114,101,110,116,112,111,105,110,116,10,32,32,32,32,110,101,119,112,97,116,104,10,32,32,32,32,109,111,118,101,116,111,10,32,32,32,32,97,114,114,111,119,108,101,110,103,116,104,32,97,114,114,111,119,119,105,100,116,104,32,50,32,100,105,118,32,114,108,105,110,101,116,111,10,32,32,32,32,48,32,97,114,114,111,119,119,105,100,116,104,32,110,101,103,32,114,108,105,110,101,116,111,10,32,32,32,32,99,108,111,115,101,112,97,116,104,+32,102,105,108,108,10,32,32,32,32,103,114,101,115,116,111,114,101,10,125,32,98,105,110,100,32,100,101,102,10,47,109,97,107,101,97,114,114,111,119,32,123,10,32,32,32,32,99,117,114,114,101,110,116,112,111,105,110,116,32,101,120,99,104,32,112,111,112,32,115,117,98,32,101,120,99,104,32,99,117,114,114,101,110,116,112,111,105,110,116,32,112,111,112,32,115,117,98,32,97,116,97,110,10,32,32,32,32,97,114,114,111,119,104,101,97,100,10,125,32,98,105,110,100,32,100,101,102,10,47,112,111,105,110,116,32,123,32,+32,32,32,110,101,119,112,97,116,104,32,32,32,32,50,32,48,32,51,54,48,32,97,114,99,32,102,105,108,108,125,32,100,101,102,47,109,97,107,101,118,101,99,32,123,10,32,32,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,32,32,110,101,119,112,97,116,104,32,120,32,121,32,109,111,118,101,116,111,10,32,32,32,32,88,32,89,32,108,105,110,101,116,+111,32,115,116,114,111,107,101,10,32,32,32,32,88,32,89,32,109,111,118,101,116,111,10,32,32,32,32,120,32,121,32,109,97,107,101,97,114,114,111,119,10,125,32,100,101,102,10,0,99,111,117,108,100,110,39,116,32,111,112,101,110,32,101,112,115,102,32,102,105,108,101,32,37,115,10,0,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,0,114,101,97,100,0,66,111,117,110,100,105,110,103,66,111,120,32,110,111,116,32,102,111,117,110,100,32,105,110,32,101,112,115,102,32,+102,105,108,101,32,37,115,10,0,115,104,97,112,101,102,105,108,101,32,110,111,116,32,115,101,116,32,111,114,32,110,111,116,32,102,111,117,110,100,32,102,111,114,32,101,112,115,102,32,110,111,100,101,32,37,115,10,0,99,97,110,39,116,32,102,105,110,100,32,108,105,98,114,97,114,121,32,102,105,108,101,32,37,115,10,0,99,97,110,39,116,32,111,112,101,110,32,108,105,98,114,97,114,121,32,102,105,108,101,32,37,115,10,0,69,79,70,0,66,69,71,73,78,0,69,78,68,0,84,82,65,73,76,69,82,0,47,117,115,101,114,95,115,104,+97,112,101,95,37,100,32,123,10,0,37,37,66,101,103,105,110,68,111,99,117,109,101,110,116,58,10,0,37,37,69,110,100,68,111,99,117,109,101,110,116,10,0,125,32,98,105,110,100,32,100,101,102,10,0,85,84,70,45,56,32,105,110,112,117,116,32,117,115,101,115,32,110,111,110,45,76,97,116,105,110,49,32,99,104,97,114,97,99,116,101,114,115,32,119,104,105,99,104,32,99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,100,32,98,121,32,116,104,105,115,32,80,111,115,116,83,99,114,105,112,116,32,100,114,105,118,101,+114,10,0,114,111,117,116,101,115,112,108,105,110,101,115,105,110,105,116,58,32,99,97,110,110,111,116,32,97,108,108,111,99,97,116,101,32,112,115,10,0,114,111,117,116,101,115,112,108,105,110,101,115,58,32,37,100,32,101,100,103,101,115,44,32,37,100,32,98,111,120,101,115,32,37,46,50,102,32,115,101,99,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,99,97,110,110,111,116,32,102,105,110,100,32,78,79,82,77,65,76,32,101,100,103,101,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,+32,98,111,120,32,48,32,104,97,115,32,76,76,32,99,111,111,114,100,32,62,32,85,82,32,99,111,111,114,100,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,98,111,120,32,37,100,32,104,97,115,32,76,76,32,99,111,111,114,100,32,62,32,85,82,32,99,111,111,114,100,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,98,111,120,101,115,32,37,100,32,97,110,100,32,37,100,32,100,111,110,39,116,32,116,111,117,99,104,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,115,116,97,114,116,32,112,111,114,+116,32,110,111,116,32,105,110,32,102,105,114,115,116,32,98,111,120,10,0,105,110,32,99,104,101,99,107,112,97,116,104,44,32,101,110,100,32,112,111,114,116,32,110,111,116,32,105,110,32,108,97,115,116,32,98,111,120,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,105,108,108,101,103,97,108,32,118,97,108,117,101,115,32,111,102,32,112,114,101,118,32,37,100,32,97,110,100,32,110,101,120,116,32,37,100,44,32,108,105,110,101,32,37,100,10,0,105,110,32,114,111,117,116,101,115,112,108,105,+110,101,115,44,32,101,100,103,101,32,105,115,32,97,32,108,111,111,112,32,97,116,32,37,115,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,80,115,104,111,114,116,101,115,116,112,97,116,104,32,102,97,105,108,101,100,10,0,105,110,32,114,111,117,116,101,115,112,108,105,110,101,115,44,32,80,114,111,117,116,101,115,112,108,105,110,101,32,102,97,105,108,101,100,10,0,85,110,97,98,108,101,32,116,111,32,114,101,99,108,97,105,109,32,98,111,120,32,115,112,97,99,101,32,105,110,32,115,112,+108,105,110,101,32,114,111,117,116,105,110,103,32,102,111,114,32,101,100,103,101,32,34,37,115,34,32,45,62,32,34,37,115,34,46,32,83,111,109,101,116,104,105,110,103,32,105,115,32,112,114,111,98,97,98,108,121,32,115,101,114,105,111,117,115,108,121,32,119,114,111,110,103,46,10,0,37,100,32,98,111,120,101,115,58,10,0,37,100,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,40,37,46,53,103,44,32,37,46,53,103,41,10,0,99,111,110,115,116,114,97,105,110,101,100,0,110,111,116,32,99,111,110,115,116,114,97,105,110,+101,100,0,115,116,97,114,116,32,112,111,114,116,58,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,116,97,110,103,101,110,116,32,97,110,103,108,101,58,32,37,46,53,103,44,32,37,115,10,0,101,110,100,32,112,111,114,116,58,32,40,37,46,53,103,44,32,37,46,53,103,41,44,32,116,97,110,103,101,110,116,32,97,110,103,108,101,58,32,37,46,53,103,44,32,37,115,10,0,99,97,110,110,111,116,32,114,101,45,97,108,108,111,99,97,116,101,32,112,115,10,0,115,105,100,101,115,32,61,61,32,52,0,115,104,97,112,101,115,46,99,0,114,+111,117,110,100,95,99,111,114,110,101,114,115,0,115,104,97,112,101,102,105,108,101,0,101,112,115,102,0,99,117,115,116,111,109,0,117,115,105,110,103,32,37,115,32,102,111,114,32,117,110,107,110,111,119,110,32,115,104,97,112,101,32,37,115,10,0,115,0,101,0,119,0,98,111,120,0,112,111,108,121,103,111,110,0,111,118,97,108,0,99,105,114,99,108,101,0,112,111,105,110,116,0,101,103,103,0,116,114,105,97,110,103,108,101,0,112,108,97,105,110,116,101,120,116,0,112,108,97,105,110,0,100,105,97,109,111,110,100,0,116,+114,97,112,101,122,105,117,109,0,112,97,114,97,108,108,101,108,111,103,114,97,109,0,104,111,117,115,101,0,112,101,110,116,97,103,111,110,0,104,101,120,97,103,111,110,0,115,101,112,116,97,103,111,110,0,111,99,116,97,103,111,110,0,110,111,116,101,0,116,97,98,0,102,111,108,100,101,114,0,98,111,120,51,100,0,99,111,109,112,111,110,101,110,116,0,99,121,108,105,110,100,101,114,0,114,101,99,116,0,114,101,99,116,97,110,103,108,101,0,115,113,117,97,114,101,0,100,111,117,98,108,101,99,105,114,99,108,101,0,100,+111,117,98,108,101,111,99,116,97,103,111,110,0,116,114,105,112,108,101,111,99,116,97,103,111,110,0,105,110,118,116,114,105,97,110,103,108,101,0,105,110,118,116,114,97,112,101,122,105,117,109,0,105,110,118,104,111,117,115,101,0,117,110,100,101,114,108,105,110,101,0,77,100,105,97,109,111,110,100,0,77,115,113,117,97,114,101,0,77,99,105,114,99,108,101,0,112,114,111,109,111,116,101,114,0,99,100,115,0,116,101,114,109,105,110,97,116,111,114,0,117,116,114,0,105,110,115,117,108,97,116,111,114,0,114,105,98,+111,115,105,116,101,0,114,110,97,115,116,97,98,0,112,114,111,116,101,97,115,101,115,105,116,101,0,112,114,111,116,101,105,110,115,116,97,98,0,112,114,105,109,101,114,115,105,116,101,0,114,101,115,116,114,105,99,116,105,111,110,115,105,116,101,0,102,105,118,101,112,111,118,101,114,104,97,110,103,0,116,104,114,101,101,112,111,118,101,114,104,97,110,103,0,110,111,118,101,114,104,97,110,103,0,97,115,115,101,109,98,108,121,0,115,105,103,110,97,116,117,114,101,0,114,112,114,111,109,111,116,101,114,0,108,+97,114,114,111,119,0,114,97,114,114,111,119,0,108,112,114,111,109,111,116,101,114,0,114,101,99,111,114,100,0,77,114,101,99,111,114,100,0,115,116,97,114,0,35,56,48,56,48,56,48,0,35,102,99,102,99,102,99,0,35,51,48,51,48,51,48,0,35,101,56,101,56,101,56,0,35,101,48,101,48,101,48,0,35,102,48,102,48,102,48,0,35,49,48,49,48,49,48,0,35,102,56,102,56,102,56,0,105,110,32,110,111,100,101,32,37,115,10,0,114,111,117,110,100,101,100,0,100,105,97,103,111,110,97,108,115,0,114,97,100,105,97,108,0,115,116,114,105,+112,101,100,0,119,101,100,103,101,100,0,95,0,110,111,100,101,32,37,115,44,32,112,111,114,116,32,37,115,44,32,117,110,114,101,99,111,103,110,105,122,101,100,32,99,111,109,112,97,115,115,32,112,111,105,110,116,32,39,37,115,39,32,45,32,105,103,110,111,114,101,100,10,0,110,111,100,101,32,37,115,44,32,112,111,114,116,32,37,115,32,117,110,114,101,99,111,103,110,105,122,101,100,10,0,37,46,53,103,32,37,46,53,103,32,116,114,97,110,115,108,97,116,101,32,110,101,119,112,97,116,104,32,117,115,101,114,95,115,+104,97,112,101,95,37,100,10,0,105,110,118,105,115,0,0,102,105,108,108,101,100,0,0,98,97,100,32,108,97,98,101,108,32,102,111,114,109,97,116,32,37,115,10,0,92,78,0,109,97,114,103,105,110,0,37,108,102,44,37,108,102,0,114,101,103,117,108,97,114,0,60,110,105,108,62,0,78,111,32,111,114,32,105,109,112,114,111,112,101,114,32,115,104,97,112,101,102,105,108,101,61,34,37,115,34,32,102,111,114,32,110,111,100,101,32,34,37,115,34,10,0,78,111,32,111,114,32,105,109,112,114,111,112,101,114,32,105,109,97,103,101,61,+34,37,115,34,32,102,111,114,32,110,111,100,101,32,34,37,115,34,10,0,108,97,98,101,108,108,111,99,0,115,104,97,112,101,0,110,111,100,101,32,39,37,115,39,44,32,103,114,97,112,104,32,39,37,115,39,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,108,97,98,101,108,10,0,115,112,108,105,110,101,115,46,99,0,98,101,103,105,110,112,97,116,104,0,80,45,62,101,110,100,46,116,104,101,116,97,32,60,32,50,32,42,32,77,95,80,73,0,101,110,100,112,97,116,104,0,109,97,107,101,83,101,108,102,69,+100,103,101,0,112,111,108,121,108,105,110,101,77,105,100,112,111,105,110,116,0,103,101,116,115,112,108,105,110,101,112,111,105,110,116,115,58,32,110,111,32,115,112,108,105,110,101,32,112,111,105,110,116,115,32,97,118,97,105,108,97,98,108,101,32,102,111,114,32,101,100,103,101,32,40,37,115,44,37,115,41,10,0,115,112,97,110,45,62,102,111,110,116,0,116,101,120,116,115,112,97,110,46,99,0,116,101,120,116,115,112,97,110,95,115,105,122,101,0,102,111,110,116,45,62,110,97,109,101,0,99,111,117,114,0,97,114,105,+97,108,0,104,101,108,118,101,116,105,99,97,0,91,105,110,116,101,114,110,97,108,32,116,105,109,101,115,93,0,91,105,110,116,101,114,110,97,108,32,99,111,117,114,105,101,114,93,0,91,105,110,116,101,114,110,97,108,32,97,114,105,97,108,93,0,102,111,110,116,110,97,109,101,58,32,34,37,115,34,32,114,101,115,111,108,118,101,100,32,116,111,58,32,37,115,10,0,102,111,110,116,110,97,109,101,58,32,117,110,97,98,108,101,32,116,111,32,114,101,115,111,108,118,101,32,34,37,115,34,10,0,65,118,97,110,116,71,97,114,100,+101,45,66,111,111,107,0,85,82,87,32,71,111,116,104,105,99,32,76,0,98,111,111,107,0,115,97,110,115,45,83,101,114,105,102,0,65,118,97,110,116,71,97,114,100,101,45,66,111,111,107,79,98,108,105,113,117,101,0,111,98,108,105,113,117,101,0,105,116,97,108,105,99,0,65,118,97,110,116,71,97,114,100,101,45,68,101,109,105,0,100,101,109,105,0,65,118,97,110,116,71,97,114,100,101,45,68,101,109,105,79,98,108,105,113,117,101,0,66,111,111,107,109,97,110,45,68,101,109,105,0,85,82,87,32,66,111,111,107,109,97,110,32,76,+0,115,101,114,105,102,0,66,111,111,107,109,97,110,45,68,101,109,105,73,116,97,108,105,99,0,66,111,111,107,109,97,110,45,76,105,103,104,116,0,108,105,103,104,116,0,66,111,111,107,109,97,110,45,76,105,103,104,116,73,116,97,108,105,99,0,67,111,117,114,105,101,114,0,109,111,110,111,115,112,97,99,101,0,67,111,117,114,105,101,114,45,66,111,108,100,0,67,111,117,114,105,101,114,45,66,111,108,100,79,98,108,105,113,117,101,0,67,111,117,114,105,101,114,45,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,+99,97,0,72,101,108,118,101,116,105,99,97,45,66,111,108,100,0,72,101,108,118,101,116,105,99,97,45,66,111,108,100,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,0,99,111,110,100,101,110,115,101,100,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,66,111,108,100,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,66,111,108,100,79,98,108,105,113,117,101,0,72,101,108,118,101,116,105,99,97,45,78,97,114,114,111,119,45,79,98,108,105,113,117,+101,0,72,101,108,118,101,116,105,99,97,45,79,98,108,105,113,117,101,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,66,111,108,100,0,67,101,110,116,117,114,121,32,83,99,104,111,111,108,98,111,111,107,32,76,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,66,111,108,100,73,116,97,108,105,99,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,73,116,97,108,105,99,0,78,101,119,67,101,110,116,117,114,121,83,99,104,108,98,107,45,82,111,109,97,110,0,114,111,109,+97,110,0,80,97,108,97,116,105,110,111,45,66,111,108,100,0,80,97,108,97,116,105,110,111,32,76,105,110,111,116,121,112,101,0,80,97,108,97,116,105,110,111,45,66,111,108,100,73,116,97,108,105,99,0,80,97,108,97,116,105,110,111,45,73,116,97,108,105,99,0,80,97,108,97,116,105,110,111,45,82,111,109,97,110,0,83,121,109,98,111,108,0,102,97,110,116,97,115,121,0,84,105,109,101,115,45,66,111,108,100,0,84,105,109,101,115,0,84,105,109,101,115,45,66,111,108,100,73,116,97,108,105,99,0,84,105,109,101,115,45,73,116,+97,108,105,99,0,90,97,112,102,67,104,97,110,99,101,114,121,45,77,101,100,105,117,109,73,116,97,108,105,99,0,85,82,87,32,67,104,97,110,99,101,114,121,32,76,0,109,101,100,105,117,109,0,90,97,112,102,68,105,110,103,98,97,116,115,0,68,105,110,103,98,97,116,115,0,117,116,105,108,115,46,99,0,117,32,61,61,32,85,70,95,102,105,110,100,40,117,41,0,85,70,95,115,101,116,110,97,109,101,0,1,102,105,108,101,32,108,111,97,100,105,110,103,32,105,115,32,100,105,115,97,98,108,101,100,32,98,101,99,97,117,115,101,32,+116,104,101,32,101,110,118,105,114,111,110,109,101,110,116,32,99,111,110,116,97,105,110,115,32,83,69,82,86,69,82,95,78,65,77,69,61,34,37,115,34,10,97,110,100,32,116,104,101,32,71,86,95,70,73,76,69,95,80,65,84,72,32,118,97,114,105,97,98,108,101,32,105,115,32,117,110,115,101,116,32,111,114,32,101,109,112,116,121,46,10,0,80,97,116,104,32,112,114,111,118,105,100,101,100,32,116,111,32,102,105,108,101,58,32,34,37,115,34,32,104,97,115,32,98,101,101,110,32,105,103,110,111,114,101,100,32,98,101,99,97,117,+115,101,32,102,105,108,101,115,32,97,114,101,32,111,110,108,121,32,112,101,114,109,105,116,116,101,100,32,116,111,32,98,101,32,108,111,97,100,101,100,32,102,114,111,109,32,116,104,101,32,100,105,114,101,99,116,111,114,105,101,115,32,105,110,32,34,37,115,34,32,119,104,101,110,32,114,117,110,110,105,110,103,32,105,110,32,97,110,32,104,116,116,112,32,115,101,114,118,101,114,46,10,0,110,111,0,116,114,117,101,0,121,101,115,0,101,108,108,105,112,115,101,0,84,105,109,101,115,45,82,111,109,97,110,0,99,108,+117,115,116,101,114,0,95,95,99,108,117,115,116,101,114,110,111,100,101,115,0,0,85,84,70,56,32,99,111,100,101,115,32,62,32,52,32,98,121,116,101,115,32,97,114,101,32,110,111,116,32,99,117,114,114,101,110,116,108,121,32,115,117,112,112,111,114,116,101,100,32,40,103,114,97,112,104,32,37,115,41,32,45,32,116,114,101,97,116,101,100,32,97,115,32,76,97,116,105,110,45,49,46,32,80,101,114,104,97,112,115,32,34,45,71,99,104,97,114,115,101,116,61,108,97,116,105,110,49,34,32,105,115,32,110,101,101,100,101,100,63,+10,0,73,110,118,97,108,105,100,32,37,100,45,98,121,116,101,32,85,84,70,56,32,102,111,117,110,100,32,105,110,32,105,110,112,117,116,32,111,102,32,103,114,97,112,104,32,37,115,32,45,32,116,114,101,97,116,101,100,32,97,115,32,76,97,116,105,110,45,49,46,32,80,101,114,104,97,112,115,32,34,45,71,99,104,97,114,115,101,116,61,108,97,116,105,110,49,34,32,105,115,32,110,101,101,100,101,100,63,10,0,98,122,46,115,105,122,101,0,111,118,101,114,108,97,112,95,98,101,122,105,101,114,0,117,114,118,101,100,0,111,109,+112,111,117,110,100,0,97,108,115,101,0,105,110,101,0,111,110,101,0,111,0,114,116,104,111,0,111,108,121,108,105,110,101,0,112,108,105,110,101,0,114,117,101,0,101,115,0,85,110,107,110,111,119,110,32,34,115,112,108,105,110,101,115,34,32,118,97,108,117,101,58,32,34,37,115,34,32,45,32,105,103,110,111,114,101,100,10,0,115,112,108,105,110,101,115,0,65,69,108,105,103,0,65,97,99,117,116,101,0,65,99,105,114,99,0,65,103,114,97,118,101,0,65,108,112,104,97,0,65,114,105,110,103,0,65,116,105,108,100,101,0,65,117,+109,108,0,66,101,116,97,0,67,99,101,100,105,108,0,67,104,105,0,68,97,103,103,101,114,0,68,101,108,116,97,0,69,84,72,0,69,97,99,117,116,101,0,69,99,105,114,99,0,69,103,114,97,118,101,0,69,112,115,105,108,111,110,0,69,116,97,0,69,117,109,108,0,71,97,109,109,97,0,73,97,99,117,116,101,0,73,99,105,114,99,0,73,103,114,97,118,101,0,73,111,116,97,0,73,117,109,108,0,75,97,112,112,97,0,76,97,109,98,100,97,0,77,117,0,78,116,105,108,100,101,0,78,117,0,79,69,108,105,103,0,79,97,99,117,116,101,0,79,99,105,114,+99,0,79,103,114,97,118,101,0,79,109,101,103,97,0,79,109,105,99,114,111,110,0,79,115,108,97,115,104,0,79,116,105,108,100,101,0,79,117,109,108,0,80,104,105,0,80,105,0,80,114,105,109,101,0,80,115,105,0,82,104,111,0,83,99,97,114,111,110,0,83,105,103,109,97,0,84,72,79,82,78,0,84,97,117,0,84,104,101,116,97,0,85,97,99,117,116,101,0,85,99,105,114,99,0,85,103,114,97,118,101,0,85,112,115,105,108,111,110,0,85,117,109,108,0,88,105,0,89,97,99,117,116,101,0,89,117,109,108,0,90,101,116,97,0,97,97,99,117,116,101,+0,97,99,105,114,99,0,97,99,117,116,101,0,97,101,108,105,103,0,97,103,114,97,118,101,0,97,108,101,102,115,121,109,0,97,108,112,104,97,0,97,109,112,0,97,110,100,0,97,110,103,0,97,114,105,110,103,0,97,115,121,109,112,0,97,116,105,108,100,101,0,97,117,109,108,0,98,100,113,117,111,0,98,101,116,97,0,98,114,118,98,97,114,0,98,117,108,108,0,99,97,112,0,99,99,101,100,105,108,0,99,101,100,105,108,0,99,101,110,116,0,99,104,105,0,99,105,114,99,0,99,108,117,98,115,0,99,111,110,103,0,99,111,112,121,0,99,114,97,+114,114,0,99,117,112,0,99,117,114,114,101,110,0,100,65,114,114,0,100,97,103,103,101,114,0,100,97,114,114,0,100,101,103,0,100,101,108,116,97,0,100,105,97,109,115,0,100,105,118,105,100,101,0,101,97,99,117,116,101,0,101,99,105,114,99,0,101,103,114,97,118,101,0,101,109,112,116,121,0,101,109,115,112,0,101,110,115,112,0,101,112,115,105,108,111,110,0,101,113,117,105,118,0,101,116,97,0,101,116,104,0,101,117,109,108,0,101,117,114,111,0,101,120,105,115,116,0,102,110,111,102,0,102,111,114,97,108,108,0,102,114,+97,99,49,50,0,102,114,97,99,49,52,0,102,114,97,99,51,52,0,102,114,97,115,108,0,103,97,109,109,97,0,103,101,0,103,116,0,104,65,114,114,0,104,97,114,114,0,104,101,97,114,116,115,0,104,101,108,108,105,112,0,105,97,99,117,116,101,0,105,99,105,114,99,0,105,101,120,99,108,0,105,103,114,97,118,101,0,105,109,97,103,101,0,105,110,102,105,110,0,105,110,116,0,105,111,116,97,0,105,113,117,101,115,116,0,105,115,105,110,0,105,117,109,108,0,107,97,112,112,97,0,108,65,114,114,0,108,97,109,98,100,97,0,108,97,110,+103,0,108,97,113,117,111,0,108,97,114,114,0,108,99,101,105,108,0,108,100,113,117,111,0,108,101,0,108,102,108,111,111,114,0,108,111,119,97,115,116,0,108,111,122,0,108,114,109,0,108,115,97,113,117,111,0,108,115,113,117,111,0,108,116,0,109,97,99,114,0,109,100,97,115,104,0,109,105,99,114,111,0,109,105,100,100,111,116,0,109,117,0,110,97,98,108,97,0,110,98,115,112,0,110,100,97,115,104,0,110,101,0,110,105,0,110,111,116,0,110,111,116,105,110,0,110,115,117,98,0,110,116,105,108,100,101,0,110,117,0,111,97,99,+117,116,101,0,111,99,105,114,99,0,111,101,108,105,103,0,111,103,114,97,118,101,0,111,108,105,110,101,0,111,109,101,103,97,0,111,109,105,99,114,111,110,0,111,112,108,117,115,0,111,114,0,111,114,100,102,0,111,114,100,109,0,111,115,108,97,115,104,0,111,116,105,108,100,101,0,111,116,105,109,101,115,0,111,117,109,108,0,112,97,114,97,0,112,97,114,116,0,112,101,114,109,105,108,0,112,101,114,112,0,112,104,105,0,112,105,0,112,105,118,0,112,108,117,115,109,110,0,112,111,117,110,100,0,112,114,105,109,101,0,+112,114,111,100,0,112,114,111,112,0,112,115,105,0,113,117,111,116,0,114,65,114,114,0,114,97,100,105,99,0,114,97,110,103,0,114,97,113,117,111,0,114,97,114,114,0,114,99,101,105,108,0,114,100,113,117,111,0,114,101,97,108,0,114,101,103,0,114,102,108,111,111,114,0,114,104,111,0,114,108,109,0,114,115,97,113,117,111,0,114,115,113,117,111,0,115,98,113,117,111,0,115,99,97,114,111,110,0,115,100,111,116,0,115,101,99,116,0,115,104,121,0,115,105,103,109,97,0,115,105,103,109,97,102,0,115,105,109,0,115,112,97,100,+101,115,0,115,117,98,0,115,117,98,101,0,115,117,109,0,115,117,112,0,115,117,112,49,0,115,117,112,50,0,115,117,112,51,0,115,117,112,101,0,115,122,108,105,103,0,116,97,117,0,116,104,101,114,101,52,0,116,104,101,116,97,0,116,104,101,116,97,115,121,109,0,116,104,105,110,115,112,0,116,104,111,114,110,0,116,105,108,100,101,0,116,105,109,101,115,0,116,114,97,100,101,0,117,65,114,114,0,117,97,99,117,116,101,0,117,97,114,114,0,117,99,105,114,99,0,117,103,114,97,118,101,0,117,109,108,0,117,112,115,105,104,+0,117,112,115,105,108,111,110,0,117,117,109,108,0,119,101,105,101,114,112,0,120,105,0,121,97,99,117,116,101,0,121,101,110,0,121,117,109,108,0,122,101,116,97,0,122,119,106,0,122,119,110,106,0,109,97,112,78,0,84,119,111,32,99,108,117,115,116,101,114,115,32,110,97,109,101,100,32,37,115,32,45,32,116,104,101,32,115,101,99,111,110,100,32,119,105,108,108,32,98,101,32,105,103,110,111,114,101,100,10,0,37,115,37,115,37,115,0,47,0,58,0,111,100,98,0,79,114,116,104,111,103,111,110,97,108,32,101,100,103,101,115,+32,100,111,32,110,111,116,32,99,117,114,114,101,110,116,108,121,32,104,97,110,100,108,101,32,101,100,103,101,32,108,97,98,101,108,115,46,32,84,114,121,32,117,115,105,110,103,32,120,108,97,98,101,108,115,46,10,0,37,37,33,80,83,45,65,100,111,98,101,45,50,46,48,10,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,40,97,116,101,110,100,41,10,47,112,111,105,110,116,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,+97,116,104,10,32,32,88,32,89,32,51,32,48,32,51,54,48,32,97,114,99,32,102,105,108,108,10,125,32,100,101,102,10,47,99,101,108,108,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,+10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,47,110,111,100,101,32,123,10,32,47,117,32,101,120,99,104,32,100,101,102,10,32,47,114,32,101,120,99,104,32,100,101,102,10,32,47,100,32,101,120,99,104,32,100,101,102,10,32,47,108,32,101,120,99,104,32,100,101,102,10,32,110,101,119,112,97,116,104,32,108,32,100,32,109,111,118,101,116,111,10,32,114,32,100,32,108,105,110,101,116,111,32,114,32,117,32,108,105,110,101,+116,111,32,108,32,117,32,108,105,110,101,116,111,10,32,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,125,32,100,101,102,10,10,0,37,100,32,37,100,32,116,114,97,110,115,108,97,116,101,10,0,110,101,119,112,97,116,104,32,37,100,32,37,100,32,109,111,118,101,116,111,10,0,37,100,32,37,100,32,108,105,110,101,116,111,10,0,37,100,32,37,100,32,108,105,110,101,116,111,32,115,116,114,111,107,101,10,0,48,46,56,32,48,46,56,32,48,46,56,32,115,101,116,114,103,98,99,111,108,111,114,10,0,115,104,111,119,112,+97,103,101,10,37,37,37,37,84,114,97,105,108,101,114,10,37,37,37,37,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,111,114,116,104,111,32,37,115,32,37,115,10,0,99,104,97,110,110,101,108,32,37,100,32,40,37,102,44,37,102,41,10,0,32,45,62,10,0,32,32,32,32,32,0,66,95,82,73,71,72,84,0,66,95,68,79,87,78,0,66,95,76,69,70,84,0,66,95,85,80,0,66,95,78,79,68,69,0,40,40,37,102,44,37,102,41,44,40,37,102,44,37,102,41,41,32,37,115,32,37,115,0,115,101,103,0,111,114,116,104,+111,46,99,0,110,101,120,116,95,115,101,103,0,100,101,99,105,100,101,95,112,111,105,110,116,0,105,110,99,111,109,112,97,114,97,98,108,101,32,115,101,103,109,101,110,116,115,32,33,33,32,45,45,32,65,98,111,114,116,105,110,103,10,0,115,49,45,62,99,111,109,109,95,99,111,111,114,100,61,61,115,50,45,62,99,111,109,109,95,99,111,111,114,100,0,105,115,95,112,97,114,97,108,108,101,108,0,99,104,97,110,105,0,99,104,97,110,83,101,97,114,99,104,0,99,112,0,103,114,97,112,104,32,71,32,123,10,0,32,110,111,100,101,+91,115,104,97,112,101,61,112,111,105,110,116,93,10,0,32,32,37,100,32,91,112,111,115,61,34,37,100,44,37,100,34,93,10,0,32,32,37,100,32,45,45,32,37,100,91,108,101,110,61,34,37,102,34,93,10,0,125,10,0,115,111,108,105,100,0,105,110,118,105,115,105,98,108,101,0,98,111,108,100,0,115,101,116,108,105,110,101,119,105,100,116,104,0,102,105,108,108,101,100,0,117,110,102,105,108,108,101,100,0,116,97,112,101,114,101,100,0,103,118,114,101,110,100,101,114,95,115,101,116,95,115,116,121,108,101,58,32,117,110,115,+117,112,112,111,114,116,101,100,32,115,116,121,108,101,32,37,115,32,45,32,105,103,110,111,114,105,110,103,10,0,103,118,114,101,110,100,101,114,46,99,0,103,118,114,101,110,100,101,114,95,117,115,101,114,115,104,97,112,101,0,110,97,109,101,0,110,97,109,101,91,48,93,0,119,105,100,116,104,0,104,101,105,103,104,116,0,98,111,116,104,0,99,111,108,111,114,32,37,115,0,37,115,32,105,115,32,110,111,116,32,97,32,107,110,111,119,110,32,99,111,108,111,114,46,10,0,101,114,114,111,114,32,105,110,32,99,111,108,120,+108,97,116,101,40,41,10,0,108,97,121,111,117,116,0,76,97,121,111,117,116,32,116,121,112,101,58,32,34,37,115,34,32,110,111,116,32,114,101,99,111,103,110,105,122,101,100,46,32,85,115,101,32,111,110,101,32,111,102,58,37,115,10,0,106,111,98,0,103,118,108,111,97,100,105,109,97,103,101,46,99,0,103,118,108,111,97,100,105,109,97,103,101,0,117,115,0,117,115,45,62,110,97,109,101,0,117,115,45,62,110,97,109,101,91,48,93,0,78,111,32,108,111,97,100,105,109,97,103,101,32,112,108,117,103,105,110,32,102,111,114,32,+34,37,115,34,10,0,81,0,76,101,102,116,0,75,80,95,76,101,102,116,0,82,105,103,104,116,0,75,80,95,82,105,103,104,116,0,85,112,0,75,80,95,85,112,0,68,111,119,110,0,75,80,95,68,111,119,110,0,112,108,117,115,0,75,80,95,65,100,100,0,109,105,110,117,115,0,75,80,95,83,117,98,116,114,97,99,116,0,70,0,116,111,111,108,116,105,112,0,110,111,100,101,0,104,114,101,102,0,85,82,76,0,101,100,103,101,0,116,97,105,108,112,111,114,116,0,104,101,97,100,112,111,114,116,0,107,101,121,0,100,105,103,114,97,112,104,0,103,+114,97,112,104,0,115,117,98,103,114,97,112,104,0,95,76,84,88,95,108,105,98,114,97,114,121,0,116,101,120,116,108,97,121,111,117,116,0,111,117,116,32,111,102,32,109,101,109,111,114,121,10,0,114,101,99,116,46,98,111,117,110,100,97,114,121,91,50,93,32,60,32,73,78,84,95,77,65,88,0,120,108,97,98,101,108,115,46,99,0,111,98,106,112,108,112,109,107,115,0,114,101,99,116,46,98,111,117,110,100,97,114,121,91,51,93,32,60,32,73,78,84,95,77,65,88,0,118,112,0,120,108,104,100,120,117,110,108,111,97,100,0,115,105,122,+101,61,61,102,114,101,101,100,0,111,98,106,112,45,62,108,98,108,0,120,108,105,110,116,101,114,115,101,99,116,105,111,110,115,0,111,98,106,112,49,45,62,115,122,46,120,32,61,61,32,48,32,38,38,32,111,98,106,112,49,45,62,115,122,46,121,32,61,61,32,48,0,108,98,108,101,110,99,108,111,115,105,110,103,0,108,112,32,33,61,32,99,108,112,0,103,101,116,105,110,116,114,115,120,105,0,35,37,50,120,37,50,120,37,50,120,37,50,120,0,37,108,102,37,108,102,37,108,102,0,108,97,99,107,0,104,105,116,101,0,105,103,104,116,+103,114,101,121,0,88,49,49,47,0,47,97,99,99,101,110,116,51,47,49,0,47,97,99,99,101,110,116,51,47,50,0,47,97,99,99,101,110,116,51,47,51,0,47,97,99,99,101,110,116,52,47,49,0,47,97,99,99,101,110,116,52,47,50,0,47,97,99,99,101,110,116,52,47,51,0,47,97,99,99,101,110,116,52,47,52,0,47,97,99,99,101,110,116,53,47,49,0,47,97,99,99,101,110,116,53,47,50,0,47,97,99,99,101,110,116,53,47,51,0,47,97,99,99,101,110,116,53,47,52,0,47,97,99,99,101,110,116,53,47,53,0,47,97,99,99,101,110,116,54,47,49,0,47,97,99,99,101,+110,116,54,47,50,0,47,97,99,99,101,110,116,54,47,51,0,47,97,99,99,101,110,116,54,47,52,0,47,97,99,99,101,110,116,54,47,53,0,47,97,99,99,101,110,116,54,47,54,0,47,97,99,99,101,110,116,55,47,49,0,47,97,99,99,101,110,116,55,47,50,0,47,97,99,99,101,110,116,55,47,51,0,47,97,99,99,101,110,116,55,47,52,0,47,97,99,99,101,110,116,55,47,53,0,47,97,99,99,101,110,116,55,47,54,0,47,97,99,99,101,110,116,55,47,55,0,47,97,99,99,101,110,116,56,47,49,0,47,97,99,99,101,110,116,56,47,50,0,47,97,99,99,101,110,116,56,+47,51,0,47,97,99,99,101,110,116,56,47,52,0,47,97,99,99,101,110,116,56,47,53,0,47,97,99,99,101,110,116,56,47,54,0,47,97,99,99,101,110,116,56,47,55,0,47,97,99,99,101,110,116,56,47,56,0,47,98,108,117,101,115,51,47,49,0,47,98,108,117,101,115,51,47,50,0,47,98,108,117,101,115,51,47,51,0,47,98,108,117,101,115,52,47,49,0,47,98,108,117,101,115,52,47,50,0,47,98,108,117,101,115,52,47,51,0,47,98,108,117,101,115,52,47,52,0,47,98,108,117,101,115,53,47,49,0,47,98,108,117,101,115,53,47,50,0,47,98,108,117,101,115,+53,47,51,0,47,98,108,117,101,115,53,47,52,0,47,98,108,117,101,115,53,47,53,0,47,98,108,117,101,115,54,47,49,0,47,98,108,117,101,115,54,47,50,0,47,98,108,117,101,115,54,47,51,0,47,98,108,117,101,115,54,47,52,0,47,98,108,117,101,115,54,47,53,0,47,98,108,117,101,115,54,47,54,0,47,98,108,117,101,115,55,47,49,0,47,98,108,117,101,115,55,47,50,0,47,98,108,117,101,115,55,47,51,0,47,98,108,117,101,115,55,47,52,0,47,98,108,117,101,115,55,47,53,0,47,98,108,117,101,115,55,47,54,0,47,98,108,117,101,115,55,47,+55,0,47,98,108,117,101,115,56,47,49,0,47,98,108,117,101,115,56,47,50,0,47,98,108,117,101,115,56,47,51,0,47,98,108,117,101,115,56,47,52,0,47,98,108,117,101,115,56,47,53,0,47,98,108,117,101,115,56,47,54,0,47,98,108,117,101,115,56,47,55,0,47,98,108,117,101,115,56,47,56,0,47,98,108,117,101,115,57,47,49,0,47,98,108,117,101,115,57,47,50,0,47,98,108,117,101,115,57,47,51,0,47,98,108,117,101,115,57,47,52,0,47,98,108,117,101,115,57,47,53,0,47,98,108,117,101,115,57,47,54,0,47,98,108,117,101,115,57,47,55,0,47,+98,108,117,101,115,57,47,56,0,47,98,108,117,101,115,57,47,57,0,47,98,114,98,103,49,48,47,49,0,47,98,114,98,103,49,48,47,49,48,0,47,98,114,98,103,49,48,47,50,0,47,98,114,98,103,49,48,47,51,0,47,98,114,98,103,49,48,47,52,0,47,98,114,98,103,49,48,47,53,0,47,98,114,98,103,49,48,47,54,0,47,98,114,98,103,49,48,47,55,0,47,98,114,98,103,49,48,47,56,0,47,98,114,98,103,49,48,47,57,0,47,98,114,98,103,49,49,47,49,0,47,98,114,98,103,49,49,47,49,48,0,47,98,114,98,103,49,49,47,49,49,0,47,98,114,98,103,49,49,47,+50,0,47,98,114,98,103,49,49,47,51,0,47,98,114,98,103,49,49,47,52,0,47,98,114,98,103],"i8",4,n.q+125938);+B([49,49,47,53,0,47,98,114,98,103,49,49,47,54,0,47,98,114,98,103,49,49,47,55,0,47,98,114,98,103,49,49,47,56,0,47,98,114,98,103,49,49,47,57,0,47,98,114,98,103,51,47,49,0,47,98,114,98,103,51,47,50,0,47,98,114,98,103,51,47,51,0,47,98,114,98,103,52,47,49,0,47,98,114,98,103,52,47,50,0,47,98,114,98,103,52,47,51,0,47,98,114,98,103,52,47,52,0,47,98,114,98,103,53,47,49,0,47,98,114,98,103,53,47,50,0,47,98,114,98,103,53,47,51,0,47,98,114,98,103,53,47,52,0,47,98,114,98,103,53,47,53,0,47,98,114,98,103,54,47,49,+0,47,98,114,98,103,54,47,50,0,47,98,114,98,103,54,47,51,0,47,98,114,98,103,54,47,52,0,47,98,114,98,103,54,47,53,0,47,98,114,98,103,54,47,54,0,47,98,114,98,103,55,47,49,0,47,98,114,98,103,55,47,50,0,47,98,114,98,103,55,47,51,0,47,98,114,98,103,55,47,52,0,47,98,114,98,103,55,47,53,0,47,98,114,98,103,55,47,54,0,47,98,114,98,103,55,47,55,0,47,98,114,98,103,56,47,49,0,47,98,114,98,103,56,47,50,0,47,98,114,98,103,56,47,51,0,47,98,114,98,103,56,47,52,0,47,98,114,98,103,56,47,53,0,47,98,114,98,103,56,47,+54,0,47,98,114,98,103,56,47,55,0,47,98,114,98,103,56,47,56,0,47,98,114,98,103,57,47,49,0,47,98,114,98,103,57,47,50,0,47,98,114,98,103,57,47,51,0,47,98,114,98,103,57,47,52,0,47,98,114,98,103,57,47,53,0,47,98,114,98,103,57,47,54,0,47,98,114,98,103,57,47,55,0,47,98,114,98,103,57,47,56,0,47,98,114,98,103,57,47,57,0,47,98,117,103,110,51,47,49,0,47,98,117,103,110,51,47,50,0,47,98,117,103,110,51,47,51,0,47,98,117,103,110,52,47,49,0,47,98,117,103,110,52,47,50,0,47,98,117,103,110,52,47,51,0,47,98,117,103,+110,52,47,52,0,47,98,117,103,110,53,47,49,0,47,98,117,103,110,53,47,50,0,47,98,117,103,110,53,47,51,0,47,98,117,103,110,53,47,52,0,47,98,117,103,110,53,47,53,0,47,98,117,103,110,54,47,49,0,47,98,117,103,110,54,47,50,0,47,98,117,103,110,54,47,51,0,47,98,117,103,110,54,47,52,0,47,98,117,103,110,54,47,53,0,47,98,117,103,110,54,47,54,0,47,98,117,103,110,55,47,49,0,47,98,117,103,110,55,47,50,0,47,98,117,103,110,55,47,51,0,47,98,117,103,110,55,47,52,0,47,98,117,103,110,55,47,53,0,47,98,117,103,110,55,47,+54,0,47,98,117,103,110,55,47,55,0,47,98,117,103,110,56,47,49,0,47,98,117,103,110,56,47,50,0,47,98,117,103,110,56,47,51,0,47,98,117,103,110,56,47,52,0,47,98,117,103,110,56,47,53,0,47,98,117,103,110,56,47,54,0,47,98,117,103,110,56,47,55,0,47,98,117,103,110,56,47,56,0,47,98,117,103,110,57,47,49,0,47,98,117,103,110,57,47,50,0,47,98,117,103,110,57,47,51,0,47,98,117,103,110,57,47,52,0,47,98,117,103,110,57,47,53,0,47,98,117,103,110,57,47,54,0,47,98,117,103,110,57,47,55,0,47,98,117,103,110,57,47,56,0,47,+98,117,103,110,57,47,57,0,47,98,117,112,117,51,47,49,0,47,98,117,112,117,51,47,50,0,47,98,117,112,117,51,47,51,0,47,98,117,112,117,52,47,49,0,47,98,117,112,117,52,47,50,0,47,98,117,112,117,52,47,51,0,47,98,117,112,117,52,47,52,0,47,98,117,112,117,53,47,49,0,47,98,117,112,117,53,47,50,0,47,98,117,112,117,53,47,51,0,47,98,117,112,117,53,47,52,0,47,98,117,112,117,53,47,53,0,47,98,117,112,117,54,47,49,0,47,98,117,112,117,54,47,50,0,47,98,117,112,117,54,47,51,0,47,98,117,112,117,54,47,52,0,47,98,117,112,+117,54,47,53,0,47,98,117,112,117,54,47,54,0,47,98,117,112,117,55,47,49,0,47,98,117,112,117,55,47,50,0,47,98,117,112,117,55,47,51,0,47,98,117,112,117,55,47,52,0,47,98,117,112,117,55,47,53,0,47,98,117,112,117,55,47,54,0,47,98,117,112,117,55,47,55,0,47,98,117,112,117,56,47,49,0,47,98,117,112,117,56,47,50,0,47,98,117,112,117,56,47,51,0,47,98,117,112,117,56,47,52,0,47,98,117,112,117,56,47,53,0,47,98,117,112,117,56,47,54,0,47,98,117,112,117,56,47,55,0,47,98,117,112,117,56,47,56,0,47,98,117,112,117,57,47,+49,0,47,98,117,112,117,57,47,50,0,47,98,117,112,117,57,47,51,0,47,98,117,112,117,57,47,52,0,47,98,117,112,117,57,47,53,0,47,98,117,112,117,57,47,54,0,47,98,117,112,117,57,47,55,0,47,98,117,112,117,57,47,56,0,47,98,117,112,117,57,47,57,0,47,100,97,114,107,50,51,47,49,0,47,100,97,114,107,50,51,47,50,0,47,100,97,114,107,50,51,47,51,0,47,100,97,114,107,50,52,47,49,0,47,100,97,114,107,50,52,47,50,0,47,100,97,114,107,50,52,47,51,0,47,100,97,114,107,50,52,47,52,0,47,100,97,114,107,50,53,47,49,0,47,100,97,+114,107,50,53,47,50,0,47,100,97,114,107,50,53,47,51,0,47,100,97,114,107,50,53,47,52,0,47,100,97,114,107,50,53,47,53,0,47,100,97,114,107,50,54,47,49,0,47,100,97,114,107,50,54,47,50,0,47,100,97,114,107,50,54,47,51,0,47,100,97,114,107,50,54,47,52,0,47,100,97,114,107,50,54,47,53,0,47,100,97,114,107,50,54,47,54,0,47,100,97,114,107,50,55,47,49,0,47,100,97,114,107,50,55,47,50,0,47,100,97,114,107,50,55,47,51,0,47,100,97,114,107,50,55,47,52,0,47,100,97,114,107,50,55,47,53,0,47,100,97,114,107,50,55,47,54,0,+47,100,97,114,107,50,55,47,55,0,47,100,97,114,107,50,56,47,49,0,47,100,97,114,107,50,56,47,50,0,47,100,97,114,107,50,56,47,51,0,47,100,97,114,107,50,56,47,52,0,47,100,97,114,107,50,56,47,53,0,47,100,97,114,107,50,56,47,54,0,47,100,97,114,107,50,56,47,55,0,47,100,97,114,107,50,56,47,56,0,47,103,110,98,117,51,47,49,0,47,103,110,98,117,51,47,50,0,47,103,110,98,117,51,47,51,0,47,103,110,98,117,52,47,49,0,47,103,110,98,117,52,47,50,0,47,103,110,98,117,52,47,51,0,47,103,110,98,117,52,47,52,0,47,103,110,+98,117,53,47,49,0,47,103,110,98,117,53,47,50,0,47,103,110,98,117,53,47,51,0,47,103,110,98,117,53,47,52,0,47,103,110,98,117,53,47,53,0,47,103,110,98,117,54,47,49,0,47,103,110,98,117,54,47,50,0,47,103,110,98,117,54,47,51,0,47,103,110,98,117,54,47,52,0,47,103,110,98,117,54,47,53,0,47,103,110,98,117,54,47,54,0,47,103,110,98,117,55,47,49,0,47,103,110,98,117,55,47,50,0,47,103,110,98,117,55,47,51,0,47,103,110,98,117,55,47,52,0,47,103,110,98,117,55,47,53,0,47,103,110,98,117,55,47,54,0,47,103,110,98,117,55,+47,55,0,47,103,110,98,117,56,47,49,0,47,103,110,98,117,56,47,50,0,47,103,110,98,117,56,47,51,0,47,103,110,98,117,56,47,52,0,47,103,110,98,117,56,47,53,0,47,103,110,98,117,56,47,54,0,47,103,110,98,117,56,47,55,0,47,103,110,98,117,56,47,56,0,47,103,110,98,117,57,47,49,0,47,103,110,98,117,57,47,50,0,47,103,110,98,117,57,47,51,0,47,103,110,98,117,57,47,52,0,47,103,110,98,117,57,47,53,0,47,103,110,98,117,57,47,54,0,47,103,110,98,117,57,47,55,0,47,103,110,98,117,57,47,56,0,47,103,110,98,117,57,47,57,0,+47,103,114,101,101,110,115,51,47,49,0,47,103,114,101,101,110,115,51,47,50,0,47,103,114,101,101,110,115,51,47,51,0,47,103,114,101,101,110,115,52,47,49,0,47,103,114,101,101,110,115,52,47,50,0,47,103,114,101,101,110,115,52,47,51,0,47,103,114,101,101,110,115,52,47,52,0,47,103,114,101,101,110,115,53,47,49,0,47,103,114,101,101,110,115,53,47,50,0,47,103,114,101,101,110,115,53,47,51,0,47,103,114,101,101,110,115,53,47,52,0,47,103,114,101,101,110,115,53,47,53,0,47,103,114,101,101,110,115,54,47,49,0,47,103,+114,101,101,110,115,54,47,50,0,47,103,114,101,101,110,115,54,47,51,0,47,103,114,101,101,110,115,54,47,52,0,47,103,114,101,101,110,115,54,47,53,0,47,103,114,101,101,110,115,54,47,54,0,47,103,114,101,101,110,115,55,47,49,0,47,103,114,101,101,110,115,55,47,50,0,47,103,114,101,101,110,115,55,47,51,0,47,103,114,101,101,110,115,55,47,52,0,47,103,114,101,101,110,115,55,47,53,0,47,103,114,101,101,110,115,55,47,54,0,47,103,114,101,101,110,115,55,47,55,0,47,103,114,101,101,110,115,56,47,49,0,47,103,114,101,+101,110,115,56,47,50,0,47,103,114,101,101,110,115,56,47,51,0,47,103,114,101,101,110,115,56,47,52,0,47,103,114,101,101,110,115,56,47,53,0,47,103,114,101,101,110,115,56,47,54,0,47,103,114,101,101,110,115,56,47,55,0,47,103,114,101,101,110,115,56,47,56,0,47,103,114,101,101,110,115,57,47,49,0,47,103,114,101,101,110,115,57,47,50,0,47,103,114,101,101,110,115,57,47,51,0,47,103,114,101,101,110,115,57,47,52,0,47,103,114,101,101,110,115,57,47,53,0,47,103,114,101,101,110,115,57,47,54,0,47,103,114,101,101,110,+115,57,47,55,0,47,103,114,101,101,110,115,57,47,56,0,47,103,114,101,101,110,115,57,47,57,0,47,103,114,101,121,115,51,47,49,0,47,103,114,101,121,115,51,47,50,0,47,103,114,101,121,115,51,47,51,0,47,103,114,101,121,115,52,47,49,0,47,103,114,101,121,115,52,47,50,0,47,103,114,101,121,115,52,47,51,0,47,103,114,101,121,115,52,47,52,0,47,103,114,101,121,115,53,47,49,0,47,103,114,101,121,115,53,47,50,0,47,103,114,101,121,115,53,47,51,0,47,103,114,101,121,115,53,47,52,0,47,103,114,101,121,115,53,47,53,0,47,+103,114,101,121,115,54,47,49,0,47,103,114,101,121,115,54,47,50,0,47,103,114,101,121,115,54,47,51,0,47,103,114,101,121,115,54,47,52,0,47,103,114,101,121,115,54,47,53,0,47,103,114,101,121,115,54,47,54,0,47,103,114,101,121,115,55,47,49,0,47,103,114,101,121,115,55,47,50,0,47,103,114,101,121,115,55,47,51,0,47,103,114,101,121,115,55,47,52,0,47,103,114,101,121,115,55,47,53,0,47,103,114,101,121,115,55,47,54,0,47,103,114,101,121,115,55,47,55,0,47,103,114,101,121,115,56,47,49,0,47,103,114,101,121,115,56,47,+50,0,47,103,114,101,121,115,56,47,51,0,47,103,114,101,121,115,56,47,52,0,47,103,114,101,121,115,56,47,53,0,47,103,114,101,121,115,56,47,54,0,47,103,114,101,121,115,56,47,55,0,47,103,114,101,121,115,56,47,56,0,47,103,114,101,121,115,57,47,49,0,47,103,114,101,121,115,57,47,50,0,47,103,114,101,121,115,57,47,51,0,47,103,114,101,121,115,57,47,52,0,47,103,114,101,121,115,57,47,53,0,47,103,114,101,121,115,57,47,54,0,47,103,114,101,121,115,57,47,55,0,47,103,114,101,121,115,57,47,56,0,47,103,114,101,121,115,+57,47,57,0,47,111,114,97,110,103,101,115,51,47,49,0,47,111,114,97,110,103,101,115,51,47,50,0,47,111,114,97,110,103,101,115,51,47,51,0,47,111,114,97,110,103,101,115,52,47,49,0,47,111,114,97,110,103,101,115,52,47,50,0,47,111,114,97,110,103,101,115,52,47,51,0,47,111,114,97,110,103,101,115,52,47,52,0,47,111,114,97,110,103,101,115,53,47,49,0,47,111,114,97,110,103,101,115,53,47,50,0,47,111,114,97,110,103,101,115,53,47,51,0,47,111,114,97,110,103,101,115,53,47,52,0,47,111,114,97,110,103,101,115,53,47,53,+0,47,111,114,97,110,103,101,115,54,47,49,0,47,111,114,97,110,103,101,115,54,47,50,0,47,111,114,97,110,103,101,115,54,47,51,0,47,111,114,97,110,103,101,115,54,47,52,0,47,111,114,97,110,103,101,115,54,47,53,0,47,111,114,97,110,103,101,115,54,47,54,0,47,111,114,97,110,103,101,115,55,47,49,0,47,111,114,97,110,103,101,115,55,47,50,0,47,111,114,97,110,103,101,115,55,47,51,0,47,111,114,97,110,103,101,115,55,47,52,0,47,111,114,97,110,103,101,115,55,47,53,0,47,111,114,97,110,103,101,115,55,47,54,0,47,111,+114,97,110,103,101,115,55,47,55,0,47,111,114,97,110,103,101,115,56,47,49,0,47,111,114,97,110,103,101,115,56,47,50,0,47,111,114,97,110,103,101,115,56,47,51,0,47,111,114,97,110,103,101,115,56,47,52,0,47,111,114,97,110,103,101,115,56,47,53,0,47,111,114,97,110,103,101,115,56,47,54,0,47,111,114,97,110,103,101,115,56,47,55,0,47,111,114,97,110,103,101,115,56,47,56,0,47,111,114,97,110,103,101,115,57,47,49,0,47,111,114,97,110,103,101,115,57,47,50,0,47,111,114,97,110,103,101,115,57,47,51,0,47,111,114,97,110,+103,101,115,57,47,52,0,47,111,114,97,110,103,101,115,57,47,53,0,47,111,114,97,110,103,101,115,57,47,54,0,47,111,114,97,110,103,101,115,57,47,55,0,47,111,114,97,110,103,101,115,57,47,56,0,47,111,114,97,110,103,101,115,57,47,57,0,47,111,114,114,100,51,47,49,0,47,111,114,114,100,51,47,50,0,47,111,114,114,100,51,47,51,0,47,111,114,114,100,52,47,49,0,47,111,114,114,100,52,47,50,0,47,111,114,114,100,52,47,51,0,47,111,114,114,100,52,47,52,0,47,111,114,114,100,53,47,49,0,47,111,114,114,100,53,47,50,0,47,+111,114,114,100,53,47,51,0,47,111,114,114,100,53,47,52,0,47,111,114,114,100,53,47,53,0,47,111,114,114,100,54,47,49,0,47,111,114,114,100,54,47,50,0,47,111,114,114,100,54,47,51,0,47,111,114,114,100,54,47,52,0,47,111,114,114,100,54,47,53,0,47,111,114,114,100,54,47,54,0,47,111,114,114,100,55,47,49,0,47,111,114,114,100,55,47,50,0,47,111,114,114,100,55,47,51,0,47,111,114,114,100,55,47,52,0,47,111,114,114,100,55,47,53,0,47,111,114,114,100,55,47,54,0,47,111,114,114,100,55,47,55,0,47,111,114,114,100,56,47,+49,0,47,111,114,114,100,56,47,50,0,47,111,114,114,100,56,47,51,0,47,111,114,114,100,56,47,52,0,47,111,114,114,100,56,47,53,0,47,111,114,114,100,56,47,54,0,47,111,114,114,100,56,47,55,0,47,111,114,114,100,56,47,56,0,47,111,114,114,100,57,47,49,0,47,111,114,114,100,57,47,50,0,47,111,114,114,100,57,47,51,0,47,111,114,114,100,57,47,52,0,47,111,114,114,100,57,47,53,0,47,111,114,114,100,57,47,54,0,47,111,114,114,100,57,47,55,0,47,111,114,114,100,57,47,56,0,47,111,114,114,100,57,47,57,0,47,112,97,105,114,+101,100,49,48,47,49,0,47,112,97,105,114,101,100,49,48,47,49,48,0,47,112,97,105,114,101,100,49,48,47,50,0,47,112,97,105,114,101,100,49,48,47,51,0,47,112,97,105,114,101,100,49,48,47,52,0,47,112,97,105,114,101,100,49,48,47,53,0,47,112,97,105,114,101,100,49,48,47,54,0,47,112,97,105,114,101,100,49,48,47,55,0,47,112,97,105,114,101,100,49,48,47,56,0,47,112,97,105,114,101,100,49,48,47,57,0,47,112,97,105,114,101,100,49,49,47,49,0,47,112,97,105,114,101,100,49,49,47,49,48,0,47,112,97,105,114,101,100,49,49,47,+49,49,0,47,112,97,105,114,101,100,49,49,47,50,0,47,112,97,105,114,101,100,49,49,47,51,0,47,112,97,105,114,101,100,49,49,47,52,0,47,112,97,105,114,101,100,49,49,47,53,0,47,112,97,105,114,101,100,49,49,47,54,0,47,112,97,105,114,101,100,49,49,47,55,0,47,112,97,105,114,101,100,49,49,47,56,0,47,112,97,105,114,101,100,49,49,47,57,0,47,112,97,105,114,101,100,49,50,47,49,0,47,112,97,105,114,101,100,49,50,47,49,48,0,47,112,97,105,114,101,100,49,50,47,49,49,0,47,112,97,105,114,101,100,49,50,47,49,50,0,47,112,+97,105,114,101,100,49,50,47,50,0,47,112,97,105,114,101,100,49,50,47,51,0,47,112,97,105,114,101,100,49,50,47,52,0,47,112,97,105,114,101,100,49,50,47,53,0,47,112,97,105,114,101,100,49,50,47,54,0,47,112,97,105,114,101,100,49,50,47,55,0,47,112,97,105,114,101,100,49,50,47,56,0,47,112,97,105,114,101,100,49,50,47,57,0,47,112,97,105,114,101,100,51,47,49,0,47,112,97,105,114,101,100,51,47,50,0,47,112,97,105,114,101,100,51,47,51,0,47,112,97,105,114,101,100,52,47,49,0,47,112,97,105,114,101,100,52,47,50,0,47,+112,97,105,114,101,100,52,47,51,0,47,112,97,105,114,101,100,52,47,52,0,47,112,97,105,114,101,100,53,47,49,0,47,112,97,105,114,101,100,53,47,50,0,47,112,97,105,114,101,100,53,47,51,0,47,112,97,105,114,101,100,53,47,52,0,47,112,97,105,114,101,100,53,47,53,0,47,112,97,105,114,101,100,54,47,49,0,47,112,97,105,114,101,100,54,47,50,0,47,112,97,105,114,101,100,54,47,51,0,47,112,97,105,114,101,100,54,47,52,0,47,112,97,105,114,101,100,54,47,53,0,47,112,97,105,114,101,100,54,47,54,0,47,112,97,105,114,101,100,+55,47,49,0,47,112,97,105,114,101,100,55,47,50,0,47,112,97,105,114,101,100,55,47,51,0,47,112,97,105,114,101,100,55,47,52,0,47,112,97,105,114,101,100,55,47,53,0,47,112,97,105,114,101,100,55,47,54,0,47,112,97,105,114,101,100,55,47,55,0,47,112,97,105,114,101,100,56,47,49,0,47,112,97,105,114,101,100,56,47,50,0,47,112,97,105,114,101,100,56,47,51,0,47,112,97,105,114,101,100,56,47,52,0,47,112,97,105,114,101,100,56,47,53,0,47,112,97,105,114,101,100,56,47,54,0,47,112,97,105,114,101,100,56,47,55,0,47,112,97,+105,114,101,100,56,47,56,0,47,112,97,105,114,101,100,57,47,49,0,47,112,97,105,114,101,100,57,47,50,0,47,112,97,105,114,101,100,57,47,51,0,47,112,97,105,114,101,100,57,47,52,0,47,112,97,105,114,101,100,57,47,53,0,47,112,97,105,114,101,100,57,47,54,0,47,112,97,105,114,101,100,57,47,55,0,47,112,97,105,114,101,100,57,47,56,0,47,112,97,105,114,101,100,57,47,57,0,47,112,97,115,116,101,108,49,51,47,49,0,47,112,97,115,116,101,108,49,51,47,50,0,47,112,97,115,116,101,108,49,51,47,51,0,47,112,97,115,116,101,+108,49,52,47,49,0,47,112,97,115,116,101,108,49,52,47,50,0,47,112,97,115,116,101,108,49,52,47,51,0,47,112,97,115,116,101,108,49,52,47,52,0,47,112,97,115,116,101,108,49,53,47,49,0,47,112,97,115,116,101,108,49,53,47,50,0,47,112,97,115,116,101,108,49,53,47,51,0,47,112,97,115,116,101,108,49,53,47,52,0,47,112,97,115,116,101,108,49,53,47,53,0,47,112,97,115,116,101,108,49,54,47,49,0,47,112,97,115,116,101,108,49,54,47,50,0,47,112,97,115,116,101,108,49,54,47,51,0,47,112,97,115,116,101,108,49,54,47,52,0,47,+112,97,115,116,101,108,49,54,47,53,0,47,112,97,115,116,101,108,49,54,47,54,0,47,112,97,115,116,101,108,49,55,47,49,0,47,112,97,115,116,101,108,49,55,47,50,0,47,112,97,115,116,101,108,49,55,47,51,0,47,112,97,115,116,101,108,49,55,47,52,0,47,112,97,115,116,101,108,49,55,47,53,0,47,112,97,115,116,101,108,49,55,47,54,0,47,112,97,115,116,101,108,49,55,47,55,0,47,112,97,115,116,101,108,49,56,47,49,0,47,112,97,115,116,101,108,49,56,47,50,0,47,112,97,115,116,101,108,49,56,47,51,0,47,112,97,115,116,101,108,+49,56,47,52,0,47,112,97,115,116,101,108,49,56,47,53,0,47,112,97,115,116,101,108,49,56,47,54,0,47,112,97,115,116,101,108,49,56,47,55,0,47,112,97,115,116,101,108,49,56,47,56,0,47,112,97,115,116,101,108,49,57,47,49,0,47,112,97,115,116,101,108,49,57,47,50,0,47,112,97,115,116,101,108,49,57,47,51,0,47,112,97,115,116,101,108,49,57,47,52,0,47,112,97,115,116,101,108,49,57,47,53,0,47,112,97,115,116,101,108,49,57,47,54,0,47,112,97,115,116,101,108,49,57,47,55,0,47,112,97,115,116,101,108,49,57,47,56,0,47,112,+97,115,116,101,108,49,57,47,57,0,47,112,97,115,116,101,108,50,51,47,49,0,47,112,97,115,116,101,108,50,51,47,50,0,47,112,97,115,116,101,108,50,51,47,51,0,47,112,97,115,116,101,108,50,52,47,49,0,47,112,97,115,116,101,108,50,52,47,50,0,47,112,97,115,116,101,108,50,52,47,51,0,47,112,97,115,116,101,108,50,52,47,52,0,47,112,97,115,116,101,108,50,53,47,49,0,47,112,97,115,116,101,108,50,53,47,50,0,47,112,97,115,116,101,108,50,53,47,51,0,47,112,97,115,116,101,108,50,53,47,52,0,47,112,97,115,116,101,108,50,+53,47,53,0,47,112,97,115,116,101,108,50,54,47,49,0,47,112,97,115,116,101,108,50,54,47,50,0,47,112,97,115,116,101,108,50,54,47,51,0,47,112,97,115,116,101,108,50,54,47,52,0,47,112,97,115,116,101,108,50,54,47,53,0,47,112,97,115,116,101,108,50,54,47,54,0,47,112,97,115,116,101,108,50,55,47,49,0,47,112,97,115,116,101,108,50,55,47,50,0,47,112,97,115,116,101,108,50,55,47,51,0,47,112,97,115,116,101,108,50,55,47,52,0,47,112,97,115,116,101,108,50,55,47,53,0,47,112,97,115,116,101,108,50,55,47,54,0,47,112,97,+115,116,101,108,50,55,47,55,0,47,112,97,115,116,101,108,50,56,47,49,0,47,112,97,115,116,101,108,50,56,47,50,0,47,112,97,115,116,101,108,50,56,47,51,0,47,112,97,115,116,101,108,50,56,47,52,0,47,112,97,115,116,101,108,50,56,47,53,0,47,112,97,115,116,101,108,50,56,47,54,0,47,112,97,115,116,101,108,50,56,47,55,0,47,112,97,115,116,101,108,50,56,47,56,0,47,112,105,121,103,49,48,47,49,0,47,112,105,121,103,49,48,47,49,48,0,47,112,105,121,103,49,48,47,50,0,47,112,105,121,103,49,48,47,51,0,47,112,105,121,103,+49,48,47,52,0,47,112,105,121,103,49,48,47,53,0,47,112,105,121,103,49,48,47,54,0,47,112,105,121,103,49,48,47,55,0,47,112,105,121,103,49,48,47,56,0,47,112,105,121,103,49,48,47,57,0,47,112,105,121,103,49,49,47,49,0,47,112,105,121,103,49,49,47,49,48,0,47,112,105,121,103,49,49,47,49,49,0,47,112,105,121,103,49,49,47,50,0,47,112,105,121,103,49,49,47,51,0,47,112,105,121,103,49,49,47,52,0,47,112,105,121,103,49,49,47,53,0,47,112,105,121,103,49,49,47,54,0,47,112,105,121,103,49,49,47,55,0,47,112,105,121,103,+49,49,47,56,0,47,112,105,121,103,49,49,47,57,0,47,112,105,121,103,51,47,49,0,47,112,105,121,103,51,47,50,0,47,112,105,121,103,51,47,51,0,47,112,105,121,103,52,47,49,0,47,112,105,121,103,52,47,50,0,47,112,105,121,103,52,47,51,0,47,112,105,121,103,52,47,52,0,47,112,105,121,103,53,47,49,0,47,112,105,121,103,53,47,50,0,47,112,105,121,103,53,47,51,0,47,112,105,121,103,53,47,52,0,47,112,105,121,103,53,47,53,0,47,112,105,121,103,54,47,49,0,47,112,105,121,103,54,47,50,0,47,112,105,121,103,54,47,51,0,47,112,+105,121,103,54,47,52,0,47,112,105,121,103,54,47,53,0,47,112,105,121,103,54,47,54,0,47,112,105,121,103,55,47,49,0,47,112,105,121,103,55,47,50,0,47,112,105,121,103,55,47,51,0,47,112,105,121,103,55,47,52,0,47,112,105,121,103,55,47,53,0,47,112,105,121,103,55,47,54,0,47,112,105,121,103,55,47,55,0,47,112,105,121,103,56,47,49,0,47,112,105,121,103,56,47,50,0,47,112,105,121,103,56,47,51,0,47,112,105,121,103,56,47,52,0,47,112,105,121,103,56,47,53,0,47,112,105,121,103,56,47,54,0,47,112,105,121,103,56,47,55,+0,47,112,105,121,103,56,47,56,0,47,112,105,121,103,57,47,49,0,47,112,105,121,103,57,47,50,0,47,112,105,121,103,57,47,51,0,47,112,105,121,103,57,47,52,0,47,112,105,121,103,57,47,53,0,47,112,105,121,103,57,47,54,0,47,112,105,121,103,57,47,55,0,47,112,105,121,103,57,47,56,0,47,112,105,121,103,57,47,57,0,47,112,114,103,110,49,48,47,49,0,47,112,114,103,110,49,48,47,49,48,0,47,112,114,103,110,49,48,47,50,0,47,112,114,103,110,49,48,47,51,0,47,112,114,103,110,49,48,47,52,0,47,112,114,103,110,49,48,47,53,+0,47,112,114,103,110,49,48,47,54,0,47,112,114,103,110,49,48,47,55,0,47,112,114,103,110,49,48,47,56,0,47,112,114,103,110,49,48,47,57,0,47,112,114,103,110,49,49,47,49,0,47,112,114,103,110,49,49,47,49,48,0,47,112,114,103,110,49,49,47,49,49,0,47,112,114,103,110,49,49,47,50,0,47,112,114,103,110,49,49,47,51,0,47,112,114,103,110,49,49,47,52,0,47,112,114,103,110,49,49,47,53,0,47,112,114,103,110,49,49,47,54,0,47,112,114,103,110,49,49,47,55,0,47,112,114,103,110,49,49,47,56,0,47,112,114,103,110,49,49,47,57,+0,47,112,114,103,110,51,47,49,0,47,112,114,103,110,51,47,50,0,47,112,114,103,110,51,47,51,0,47,112,114,103,110,52,47,49,0,47,112,114,103,110,52,47,50,0,47,112,114,103,110,52,47,51,0,47,112,114,103,110,52,47,52,0,47,112,114,103,110,53,47,49,0,47,112,114,103,110,53,47,50,0,47,112,114,103,110,53,47,51,0,47,112,114,103,110,53,47,52,0,47,112,114,103,110,53,47,53,0,47,112,114,103,110,54,47,49,0,47,112,114,103,110,54,47,50,0,47,112,114,103,110,54,47,51,0,47,112,114,103,110,54,47,52,0,47,112,114,103,110,+54,47,53,0,47,112,114,103,110,54,47,54,0,47,112,114,103,110,55,47,49,0,47,112,114,103,110,55,47,50,0,47,112,114,103,110,55,47,51,0,47,112,114,103,110,55,47,52,0,47,112,114,103,110,55,47,53,0,47,112,114,103,110,55,47,54,0,47,112,114,103,110,55,47,55,0,47,112,114,103,110,56,47,49,0,47,112,114,103,110,56,47,50,0,47,112,114,103,110,56,47,51,0,47,112,114,103,110,56,47,52,0,47,112,114,103,110,56,47,53,0,47,112,114,103,110,56,47,54,0,47,112,114,103,110,56,47,55,0,47,112,114,103,110,56,47,56,0,47,112,114,+103,110,57,47,49,0,47,112,114,103,110,57,47,50,0,47,112,114,103,110,57,47,51,0,47,112,114,103,110,57,47,52,0,47,112,114,103,110,57,47,53,0,47,112,114,103,110,57,47,54,0,47,112,114,103,110,57,47,55,0,47,112,114,103,110,57,47,56,0,47,112,114,103,110,57,47,57,0,47,112,117,98,117,51,47,49,0,47,112,117,98,117,51,47,50,0,47,112,117,98,117,51,47,51,0,47,112,117,98,117,52,47,49,0,47,112,117,98,117,52,47,50,0,47,112,117,98,117,52,47,51,0,47,112,117,98,117,52,47,52,0,47,112,117,98,117,53,47,49,0,47,112,117,+98,117,53,47,50,0,47,112,117,98,117,53,47,51,0,47,112,117,98,117,53,47,52,0,47,112,117,98,117,53,47,53,0,47,112,117,98,117,54,47,49,0,47,112,117,98,117,54,47,50,0,47,112,117,98,117,54,47,51,0,47,112,117,98,117,54,47,52,0,47,112,117,98,117,54,47,53,0,47,112,117,98,117,54,47,54,0,47,112,117,98,117,55,47,49,0,47,112,117,98,117,55,47,50,0,47,112,117,98,117,55,47,51,0,47,112,117,98,117,55,47,52,0,47,112,117,98,117,55,47,53,0,47,112,117,98,117,55,47,54,0,47,112,117,98,117,55,47,55,0,47,112,117,98,117,56,+47,49,0,47,112,117,98,117,56,47,50,0,47,112,117,98,117,56,47,51,0,47,112,117,98,117,56,47,52,0,47,112,117,98,117,56,47,53,0,47,112,117,98,117,56,47,54,0,47,112,117,98,117,56,47,55,0,47,112,117,98,117,56,47,56,0,47,112,117,98,117,57,47,49,0,47,112,117,98,117,57,47,50,0,47,112,117,98,117,57,47,51,0,47,112,117,98,117,57,47,52,0,47,112,117,98,117,57,47,53,0,47,112,117,98,117,57,47,54,0,47,112,117,98,117,57,47,55,0,47,112,117,98,117,57,47,56,0,47,112,117,98,117,57,47,57,0,47,112,117,98,117,103,110,51,+47,49,0,47,112,117,98,117,103,110,51,47,50,0,47,112,117,98,117,103,110,51,47,51,0,47,112,117,98,117,103,110,52,47,49,0,47,112,117,98,117,103,110,52,47,50,0,47,112,117,98,117,103,110,52,47,51,0,47,112,117,98,117,103,110,52,47,52,0,47,112,117,98,117,103,110,53,47,49,0,47,112,117,98,117,103,110,53,47,50,0,47,112,117,98,117,103,110,53,47,51,0,47,112,117,98,117,103,110,53,47,52,0,47,112,117,98,117,103,110,53,47,53,0,47,112,117,98,117,103,110,54,47,49,0,47,112,117,98,117,103,110,54,47,50,0,47,112,117,98,+117,103,110,54,47,51,0,47,112,117,98,117,103,110,54,47,52,0,47,112,117,98,117,103,110,54,47,53,0,47,112,117,98,117,103,110,54,47,54,0,47,112,117,98,117,103,110,55,47,49,0,47,112,117,98,117,103,110,55,47,50,0,47,112,117,98,117,103,110,55,47,51,0,47,112,117,98,117,103,110,55,47,52,0,47,112,117,98,117,103,110,55,47,53,0,47,112,117,98,117,103,110,55,47,54,0,47,112,117,98,117,103,110,55,47,55,0,47,112,117,98,117,103,110,56,47,49,0,47,112,117,98,117,103,110,56,47,50,0,47,112,117,98,117,103,110,56,47,51,+0,47,112,117,98,117,103,110,56,47,52,0,47,112,117,98,117,103,110,56,47,53,0,47,112,117,98,117,103,110,56,47,54,0,47,112,117,98,117,103,110,56,47,55,0,47,112,117,98,117,103,110,56,47,56,0,47,112,117,98,117,103,110,57,47,49,0,47,112,117,98,117,103,110,57,47,50,0,47,112,117,98,117,103,110,57,47,51,0,47,112,117,98,117,103,110,57,47,52,0,47,112,117,98,117,103,110,57,47,53,0,47,112,117,98,117,103,110,57,47,54,0,47,112,117,98,117,103,110,57,47,55,0,47,112,117,98,117,103,110,57,47,56,0,47,112,117,98,117,+103,110,57,47,57,0,47,112,117,111,114,49,48,47,49,0,47,112,117,111,114,49,48,47,49,48,0,47,112,117,111,114,49,48,47,50,0,47,112,117,111,114,49,48,47,51,0,47,112,117,111,114,49,48,47,52,0,47,112,117,111,114,49,48,47,53,0,47,112,117,111,114,49,48,47,54,0,47,112,117,111,114,49,48,47,55,0,47,112,117,111,114,49,48,47,56,0,47,112,117,111,114,49,48,47,57,0,47,112,117,111,114,49,49,47,49,0,47,112,117,111,114,49,49,47,49,48,0,47,112,117,111,114,49,49,47,49,49,0,47,112,117,111,114,49,49,47,50,0,47,112,117,+111,114,49,49,47,51,0,47,112,117,111,114,49,49,47,52,0,47,112,117,111,114,49,49,47,53,0,47,112,117,111,114,49,49,47,54,0,47,112,117,111,114,49,49,47,55,0,47,112,117,111,114,49,49,47,56,0,47,112,117,111,114,49,49,47,57,0,47,112,117,111,114,51,47,49,0,47,112,117,111,114,51,47,50,0,47,112,117,111,114,51,47,51,0,47,112,117,111,114,52,47,49,0,47,112,117,111,114,52,47,50,0,47,112,117,111,114,52,47,51,0,47,112,117,111,114,52,47,52,0,47,112,117,111,114,53,47,49,0,47,112,117,111,114,53,47,50,0,47,112,117,+111,114,53,47,51,0,47,112,117,111,114,53,47,52,0,47,112,117,111,114,53,47,53,0,47,112,117,111,114,54,47,49,0,47,112,117,111,114,54,47,50,0,47,112,117,111,114,54,47,51,0,47,112,117,111,114,54,47,52,0,47,112,117,111,114,54,47,53,0,47,112,117,111,114,54,47,54,0,47,112,117,111,114,55,47,49,0,47,112,117,111,114,55,47,50,0,47,112,117,111,114,55,47,51,0,47,112,117,111,114,55,47,52,0,47,112,117,111,114,55,47,53,0,47,112,117,111,114,55,47,54,0,47,112,117,111,114,55,47,55,0,47,112,117,111,114,56,47,49,0,47,+112,117,111,114,56,47,50,0,47,112,117,111,114,56,47,51,0,47,112,117,111,114,56,47,52,0,47,112,117,111,114,56,47,53,0,47,112,117,111,114,56,47,54,0,47,112,117,111,114,56,47,55,0,47,112,117,111,114,56,47,56,0,47,112,117,111,114,57,47,49,0,47,112,117,111,114,57,47,50,0,47,112,117,111,114,57,47,51,0,47,112,117,111,114,57,47,52,0,47,112,117,111,114,57,47,53,0,47,112,117,111,114,57,47,54,0,47,112,117,111,114,57,47,55,0,47,112,117,111,114,57,47,56,0,47,112,117,111,114,57,47,57,0,47,112,117,114,100,51,47,+49,0,47,112,117,114,100,51,47,50,0,47,112,117,114,100,51,47,51,0,47,112,117,114,100,52,47,49,0,47,112,117,114,100,52,47,50,0,47,112,117,114,100,52,47,51,0,47,112,117,114,100,52,47,52,0,47,112,117,114,100,53,47,49,0,47,112,117,114,100,53,47,50,0,47,112,117,114,100,53,47,51,0,47,112,117,114,100,53,47,52,0,47,112,117,114,100,53,47,53,0,47,112,117,114,100,54,47,49,0,47,112,117,114,100,54,47,50,0,47,112,117,114,100,54,47,51,0,47,112,117,114,100,54,47,52,0,47,112,117,114,100,54,47,53,0,47,112,117,114,100,+54,47,54,0,47,112,117,114,100,55,47,49,0,47,112,117,114,100,55,47,50,0,47,112,117,114,100,55,47,51,0,47,112,117,114,100,55,47,52,0,47,112,117,114,100,55,47,53,0,47,112,117,114,100,55,47,54,0,47,112,117,114,100,55,47,55,0,47,112,117,114,100,56,47,49,0,47,112,117,114,100,56,47,50,0,47,112,117,114,100,56,47,51,0,47,112,117,114,100,56,47,52,0,47,112,117,114,100,56,47,53,0,47,112,117,114,100,56,47,54,0,47,112,117,114,100,56,47,55,0,47,112,117,114,100,56,47,56,0,47,112,117,114,100,57,47,49,0,47,112,117,+114,100,57,47,50,0,47,112,117,114,100,57,47,51,0,47,112,117,114,100,57,47,52,0,47,112,117,114,100,57,47,53,0,47,112,117,114,100,57,47,54,0,47,112,117,114,100,57,47,55,0,47,112,117,114,100,57,47,56,0,47,112,117,114,100,57,47,57,0,47,112,117,114,112,108,101,115,51,47,49,0,47,112,117,114,112,108,101,115,51,47,50,0,47,112,117,114,112,108,101,115,51,47,51,0,47,112,117,114,112,108,101,115,52,47,49,0,47,112,117,114,112,108,101,115,52,47,50,0,47,112,117,114,112,108,101,115,52,47,51,0,47,112,117,114,112,108,+101,115,52,47,52,0,47,112,117,114,112,108,101,115,53,47,49,0,47,112,117,114,112,108,101,115,53,47,50,0,47,112,117,114,112,108,101,115,53,47,51,0,47,112,117,114,112,108,101,115,53,47,52,0,47,112,117,114,112,108,101,115,53,47,53,0,47,112,117,114,112,108,101,115,54,47,49,0,47,112,117,114,112,108,101,115,54,47,50,0,47,112,117,114,112,108,101,115,54,47,51,0,47,112,117,114,112,108,101,115,54,47,52,0,47,112,117,114,112,108,101,115,54,47,53,0,47,112,117,114,112,108,101,115,54,47,54,0,47,112,117,114,112,108,+101,115,55,47,49,0,47,112,117,114,112,108,101,115,55,47,50,0,47,112,117,114,112,108,101,115,55,47,51,0,47,112,117,114,112,108,101,115,55,47,52,0,47,112,117,114,112,108,101,115,55,47,53,0,47,112,117,114,112,108,101,115,55,47,54,0,47,112,117,114,112,108,101,115,55,47,55,0,47,112,117,114,112,108,101,115,56,47,49,0,47,112,117,114,112,108,101,115,56,47,50,0,47,112,117,114,112,108,101,115,56,47,51,0,47,112,117,114,112,108,101,115,56,47,52,0,47,112,117,114,112,108,101,115,56,47,53,0,47,112,117,114,112,108,+101,115,56,47,54,0,47,112,117,114,112,108,101,115,56,47,55,0,47,112,117,114,112,108,101,115,56,47,56,0,47,112,117,114,112,108,101,115,57,47,49,0,47,112,117,114,112,108,101,115,57,47,50,0,47,112,117,114,112,108,101,115,57,47,51,0,47,112,117,114,112,108,101,115,57,47,52,0,47,112,117,114,112,108,101,115,57,47,53,0,47,112,117,114,112,108,101,115,57,47,54,0,47,112,117,114,112,108,101,115,57,47,55,0,47,112,117,114,112,108,101,115,57,47,56,0,47,112,117,114,112,108,101,115,57,47,57,0,47,114,100,98,117,49,+48,47,49,0,47,114,100,98,117,49,48,47,49,48,0,47,114,100,98,117,49,48,47,50,0,47,114,100,98,117,49,48,47,51,0,47,114,100,98,117,49,48,47,52,0,47,114,100,98,117,49,48,47,53,0,47,114,100,98,117,49,48,47,54,0,47,114,100,98,117,49,48,47,55,0,47,114,100,98,117,49,48,47,56,0,47,114,100,98,117,49,48,47,57,0,47,114,100,98,117,49,49,47,49,0,47,114,100,98,117,49,49,47,49,48,0,47,114,100,98,117,49,49,47,49,49,0,47,114,100,98,117,49,49,47,50,0,47,114,100,98,117,49,49,47,51,0,47,114,100,98,117,49,49,47,52,0,47,+114,100,98,117,49,49,47,53,0,47,114,100,98,117,49,49,47,54,0,47,114,100,98,117,49,49,47,55,0,47,114,100,98,117,49,49,47,56,0,47,114,100,98,117,49,49,47,57,0,47,114,100,98,117,51,47,49,0,47,114,100,98,117,51,47,50,0,47,114,100,98,117,51,47,51,0,47,114,100,98,117,52,47,49,0,47,114,100,98,117,52,47,50,0,47,114,100,98,117,52,47,51,0,47,114,100,98,117,52,47,52,0,47,114,100,98,117,53,47,49,0,47,114,100,98,117,53,47,50,0,47,114,100,98,117,53,47,51,0,47,114,100,98,117,53,47,52,0,47,114,100,98,117,53,47,53,+0,47,114,100,98,117,54,47,49,0,47,114,100,98,117,54,47,50,0,47,114,100,98,117,54,47,51,0,47,114,100,98,117,54,47,52,0,47,114,100,98,117,54,47,53,0,47,114,100,98,117,54,47,54,0,47,114,100,98,117,55,47,49,0,47,114,100,98,117,55,47,50,0,47,114,100,98,117,55,47,51,0,47,114,100,98,117,55,47,52,0,47,114,100,98,117,55,47,53,0,47,114,100,98,117,55,47,54,0,47,114,100,98,117,55,47,55,0,47,114,100,98,117,56,47,49,0,47,114,100,98,117,56,47,50,0,47,114,100,98,117,56,47,51,0,47,114,100,98,117,56,47,52,0,47,114,+100,98,117,56,47,53,0,47,114,100,98,117,56,47,54,0,47,114,100,98,117,56,47,55,0,47,114,100,98,117,56,47,56,0,47,114,100,98,117,57,47,49,0,47,114,100,98,117,57,47,50,0,47,114,100,98,117,57,47,51,0,47,114,100,98,117,57,47,52,0,47,114,100,98,117,57,47,53,0,47,114,100,98,117,57,47,54,0,47,114,100,98,117,57,47,55,0,47,114,100,98,117,57,47,56,0,47,114,100,98,117,57,47,57,0,47,114,100,103,121,49,48,47,49,0,47,114,100,103,121,49,48,47,49,48,0,47,114,100,103,121,49,48,47,50,0,47,114,100,103,121,49,48,47,51,+0,47,114,100,103,121,49,48,47,52,0,47,114,100,103,121,49,48,47,53,0,47,114,100,103,121,49,48,47,54,0,47,114,100,103,121,49,48,47,55,0,47,114,100,103,121,49,48,47,56,0,47,114,100,103,121,49,48,47,57,0,47,114,100,103,121,49,49,47,49,0,47,114,100,103,121,49,49,47,49,48,0,47,114,100,103,121,49,49,47,49,49,0,47,114,100,103,121,49,49,47,50,0,47,114,100,103,121,49,49,47,51,0,47,114,100,103,121,49,49,47,52,0,47,114,100,103,121,49,49,47,53,0,47,114,100,103,121,49,49,47,54,0,47,114,100,103,121,49,49,47,55,+0,47,114,100,103,121,49,49,47,56,0,47,114,100,103,121,49,49,47,57,0,47,114,100,103,121,51,47,49,0,47,114,100,103,121,51,47,50,0,47,114,100,103,121,51,47,51,0,47,114,100,103,121,52,47,49,0,47,114,100,103,121,52,47,50,0,47,114,100,103,121,52,47,51,0,47,114,100,103,121,52,47,52,0,47,114,100,103,121,53,47,49,0,47,114,100,103,121,53,47,50,0,47,114,100,103,121,53,47,51,0,47,114,100,103,121,53,47,52,0,47,114,100,103,121,53,47,53,0,47,114,100,103,121,54,47,49,0,47,114,100,103,121,54,47,50,0,47,114,100,103,+121,54,47,51,0,47,114,100,103,121,54,47,52,0,47,114,100,103,121,54,47,53,0,47,114,100,103,121,54,47,54,0,47,114,100,103,121,55,47,49,0,47,114,100,103,121,55,47,50,0,47,114,100,103,121,55,47,51,0,47,114,100,103,121,55,47,52,0,47,114,100,103,121,55,47,53,0,47,114,100,103,121,55,47,54,0,47,114,100,103,121,55,47,55,0,47,114,100,103,121,56,47,49,0,47,114,100,103,121,56,47,50,0,47,114,100,103,121,56,47,51,0,47,114,100,103,121,56,47,52,0,47,114,100,103,121,56,47,53,0,47,114,100,103,121,56,47,54,0,47,114,+100,103,121,56,47,55,0,47,114,100,103,121,56,47,56,0,47,114,100,103,121,57,47,49,0,47,114,100,103,121,57,47,50,0,47,114,100,103,121,57,47,51,0,47,114,100,103,121,57,47,52,0,47,114,100,103,121,57,47,53,0,47,114,100,103,121,57,47,54,0,47,114,100,103,121,57,47,55,0,47,114,100,103,121,57,47,56,0,47,114,100,103,121,57,47,57,0,47,114,100,112,117,51,47,49,0,47,114,100,112,117,51,47,50,0,47,114,100,112,117,51,47,51,0,47,114,100,112,117,52,47,49,0,47,114,100,112,117,52,47,50,0,47,114,100,112,117,52,47,51,+0,47,114,100,112,117,52,47,52,0,47,114,100,112,117,53,47,49,0,47,114,100,112,117,53,47,50,0,47,114,100,112,117,53,47,51,0,47,114,100,112,117,53,47,52,0,47,114,100,112,117,53,47,53,0,47,114,100,112,117,54,47,49,0,47,114,100,112,117,54,47,50,0,47,114,100,112,117,54,47,51,0,47,114,100,112,117,54,47,52,0,47,114,100,112],"i8",4,n.q+136178);+B([117,54,47,53,0,47,114,100,112,117,54,47,54,0,47,114,100,112,117,55,47,49,0,47,114,100,112,117,55,47,50,0,47,114,100,112,117,55,47,51,0,47,114,100,112,117,55,47,52,0,47,114,100,112,117,55,47,53,0,47,114,100,112,117,55,47,54,0,47,114,100,112,117,55,47,55,0,47,114,100,112,117,56,47,49,0,47,114,100,112,117,56,47,50,0,47,114,100,112,117,56,47,51,0,47,114,100,112,117,56,47,52,0,47,114,100,112,117,56,47,53,0,47,114,100,112,117,56,47,54,0,47,114,100,112,117,56,47,55,0,47,114,100,112,117,56,47,56,0,47,+114,100,112,117,57,47,49,0,47,114,100,112,117,57,47,50,0,47,114,100,112,117,57,47,51,0,47,114,100,112,117,57,47,52,0,47,114,100,112,117,57,47,53,0,47,114,100,112,117,57,47,54,0,47,114,100,112,117,57,47,55,0,47,114,100,112,117,57,47,56,0,47,114,100,112,117,57,47,57,0,47,114,100,121,108,98,117,49,48,47,49,0,47,114,100,121,108,98,117,49,48,47,49,48,0,47,114,100,121,108,98,117,49,48,47,50,0,47,114,100,121,108,98,117,49,48,47,51,0,47,114,100,121,108,98,117,49,48,47,52,0,47,114,100,121,108,98,117,49,48,+47,53,0,47,114,100,121,108,98,117,49,48,47,54,0,47,114,100,121,108,98,117,49,48,47,55,0,47,114,100,121,108,98,117,49,48,47,56,0,47,114,100,121,108,98,117,49,48,47,57,0,47,114,100,121,108,98,117,49,49,47,49,0,47,114,100,121,108,98,117,49,49,47,49,48,0,47,114,100,121,108,98,117,49,49,47,49,49,0,47,114,100,121,108,98,117,49,49,47,50,0,47,114,100,121,108,98,117,49,49,47,51,0,47,114,100,121,108,98,117,49,49,47,52,0,47,114,100,121,108,98,117,49,49,47,53,0,47,114,100,121,108,98,117,49,49,47,54,0,47,114,+100,121,108,98,117,49,49,47,55,0,47,114,100,121,108,98,117,49,49,47,56,0,47,114,100,121,108,98,117,49,49,47,57,0,47,114,100,121,108,98,117,51,47,49,0,47,114,100,121,108,98,117,51,47,50,0,47,114,100,121,108,98,117,51,47,51,0,47,114,100,121,108,98,117,52,47,49,0,47,114,100,121,108,98,117,52,47,50,0,47,114,100,121,108,98,117,52,47,51,0,47,114,100,121,108,98,117,52,47,52,0,47,114,100,121,108,98,117,53,47,49,0,47,114,100,121,108,98,117,53,47,50,0,47,114,100,121,108,98,117,53,47,51,0,47,114,100,121,108,+98,117,53,47,52,0,47,114,100,121,108,98,117,53,47,53,0,47,114,100,121,108,98,117,54,47,49,0,47,114,100,121,108,98,117,54,47,50,0,47,114,100,121,108,98,117,54,47,51,0,47,114,100,121,108,98,117,54,47,52,0,47,114,100,121,108,98,117,54,47,53,0,47,114,100,121,108,98,117,54,47,54,0,47,114,100,121,108,98,117,55,47,49,0,47,114,100,121,108,98,117,55,47,50,0,47,114,100,121,108,98,117,55,47,51,0,47,114,100,121,108,98,117,55,47,52,0,47,114,100,121,108,98,117,55,47,53,0,47,114,100,121,108,98,117,55,47,54,0,47,+114,100,121,108,98,117,55,47,55,0,47,114,100,121,108,98,117,56,47,49,0,47,114,100,121,108,98,117,56,47,50,0,47,114,100,121,108,98,117,56,47,51,0,47,114,100,121,108,98,117,56,47,52,0,47,114,100,121,108,98,117,56,47,53,0,47,114,100,121,108,98,117,56,47,54,0,47,114,100,121,108,98,117,56,47,55,0,47,114,100,121,108,98,117,56,47,56,0,47,114,100,121,108,98,117,57,47,49,0,47,114,100,121,108,98,117,57,47,50,0,47,114,100,121,108,98,117,57,47,51,0,47,114,100,121,108,98,117,57,47,52,0,47,114,100,121,108,98,117,+57,47,53,0,47,114,100,121,108,98,117,57,47,54,0,47,114,100,121,108,98,117,57,47,55,0,47,114,100,121,108,98,117,57,47,56,0,47,114,100,121,108,98,117,57,47,57,0,47,114,100,121,108,103,110,49,48,47,49,0,47,114,100,121,108,103,110,49,48,47,49,48,0,47,114,100,121,108,103,110,49,48,47,50,0,47,114,100,121,108,103,110,49,48,47,51,0,47,114,100,121,108,103,110,49,48,47,52,0,47,114,100,121,108,103,110,49,48,47,53,0,47,114,100,121,108,103,110,49,48,47,54,0,47,114,100,121,108,103,110,49,48,47,55,0,47,114,100,+121,108,103,110,49,48,47,56,0,47,114,100,121,108,103,110,49,48,47,57,0,47,114,100,121,108,103,110,49,49,47,49,0,47,114,100,121,108,103,110,49,49,47,49,48,0,47,114,100,121,108,103,110,49,49,47,49,49,0,47,114,100,121,108,103,110,49,49,47,50,0,47,114,100,121,108,103,110,49,49,47,51,0,47,114,100,121,108,103,110,49,49,47,52,0,47,114,100,121,108,103,110,49,49,47,53,0,47,114,100,121,108,103,110,49,49,47,54,0,47,114,100,121,108,103,110,49,49,47,55,0,47,114,100,121,108,103,110,49,49,47,56,0,47,114,100,121,+108,103,110,49,49,47,57,0,47,114,100,121,108,103,110,51,47,49,0,47,114,100,121,108,103,110,51,47,50,0,47,114,100,121,108,103,110,51,47,51,0,47,114,100,121,108,103,110,52,47,49,0,47,114,100,121,108,103,110,52,47,50,0,47,114,100,121,108,103,110,52,47,51,0,47,114,100,121,108,103,110,52,47,52,0,47,114,100,121,108,103,110,53,47,49,0,47,114,100,121,108,103,110,53,47,50,0,47,114,100,121,108,103,110,53,47,51,0,47,114,100,121,108,103,110,53,47,52,0,47,114,100,121,108,103,110,53,47,53,0,47,114,100,121,108,+103,110,54,47,49,0,47,114,100,121,108,103,110,54,47,50,0,47,114,100,121,108,103,110,54,47,51,0,47,114,100,121,108,103,110,54,47,52,0,47,114,100,121,108,103,110,54,47,53,0,47,114,100,121,108,103,110,54,47,54,0,47,114,100,121,108,103,110,55,47,49,0,47,114,100,121,108,103,110,55,47,50,0,47,114,100,121,108,103,110,55,47,51,0,47,114,100,121,108,103,110,55,47,52,0,47,114,100,121,108,103,110,55,47,53,0,47,114,100,121,108,103,110,55,47,54,0,47,114,100,121,108,103,110,55,47,55,0,47,114,100,121,108,103,110,+56,47,49,0,47,114,100,121,108,103,110,56,47,50,0,47,114,100,121,108,103,110,56,47,51,0,47,114,100,121,108,103,110,56,47,52,0,47,114,100,121,108,103,110,56,47,53,0,47,114,100,121,108,103,110,56,47,54,0,47,114,100,121,108,103,110,56,47,55,0,47,114,100,121,108,103,110,56,47,56,0,47,114,100,121,108,103,110,57,47,49,0,47,114,100,121,108,103,110,57,47,50,0,47,114,100,121,108,103,110,57,47,51,0,47,114,100,121,108,103,110,57,47,52,0,47,114,100,121,108,103,110,57,47,53,0,47,114,100,121,108,103,110,57,47,54,+0,47,114,100,121,108,103,110,57,47,55,0,47,114,100,121,108,103,110,57,47,56,0,47,114,100,121,108,103,110,57,47,57,0,47,114,101,100,115,51,47,49,0,47,114,101,100,115,51,47,50,0,47,114,101,100,115,51,47,51,0,47,114,101,100,115,52,47,49,0,47,114,101,100,115,52,47,50,0,47,114,101,100,115,52,47,51,0,47,114,101,100,115,52,47,52,0,47,114,101,100,115,53,47,49,0,47,114,101,100,115,53,47,50,0,47,114,101,100,115,53,47,51,0,47,114,101,100,115,53,47,52,0,47,114,101,100,115,53,47,53,0,47,114,101,100,115,54,47,+49,0,47,114,101,100,115,54,47,50,0,47,114,101,100,115,54,47,51,0,47,114,101,100,115,54,47,52,0,47,114,101,100,115,54,47,53,0,47,114,101,100,115,54,47,54,0,47,114,101,100,115,55,47,49,0,47,114,101,100,115,55,47,50,0,47,114,101,100,115,55,47,51,0,47,114,101,100,115,55,47,52,0,47,114,101,100,115,55,47,53,0,47,114,101,100,115,55,47,54,0,47,114,101,100,115,55,47,55,0,47,114,101,100,115,56,47,49,0,47,114,101,100,115,56,47,50,0,47,114,101,100,115,56,47,51,0,47,114,101,100,115,56,47,52,0,47,114,101,100,115,+56,47,53,0,47,114,101,100,115,56,47,54,0,47,114,101,100,115,56,47,55,0,47,114,101,100,115,56,47,56,0,47,114,101,100,115,57,47,49,0,47,114,101,100,115,57,47,50,0,47,114,101,100,115,57,47,51,0,47,114,101,100,115,57,47,52,0,47,114,101,100,115,57,47,53,0,47,114,101,100,115,57,47,54,0,47,114,101,100,115,57,47,55,0,47,114,101,100,115,57,47,56,0,47,114,101,100,115,57,47,57,0,47,115,101,116,49,51,47,49,0,47,115,101,116,49,51,47,50,0,47,115,101,116,49,51,47,51,0,47,115,101,116,49,52,47,49,0,47,115,101,116,+49,52,47,50,0,47,115,101,116,49,52,47,51,0,47,115,101,116,49,52,47,52,0,47,115,101,116,49,53,47,49,0,47,115,101,116,49,53,47,50,0,47,115,101,116,49,53,47,51,0,47,115,101,116,49,53,47,52,0,47,115,101,116,49,53,47,53,0,47,115,101,116,49,54,47,49,0,47,115,101,116,49,54,47,50,0,47,115,101,116,49,54,47,51,0,47,115,101,116,49,54,47,52,0,47,115,101,116,49,54,47,53,0,47,115,101,116,49,54,47,54,0,47,115,101,116,49,55,47,49,0,47,115,101,116,49,55,47,50,0,47,115,101,116,49,55,47,51,0,47,115,101,116,49,55,47,+52,0,47,115,101,116,49,55,47,53,0,47,115,101,116,49,55,47,54,0,47,115,101,116,49,55,47,55,0,47,115,101,116,49,56,47,49,0,47,115,101,116,49,56,47,50,0,47,115,101,116,49,56,47,51,0,47,115,101,116,49,56,47,52,0,47,115,101,116,49,56,47,53,0,47,115,101,116,49,56,47,54,0,47,115,101,116,49,56,47,55,0,47,115,101,116,49,56,47,56,0,47,115,101,116,49,57,47,49,0,47,115,101,116,49,57,47,50,0,47,115,101,116,49,57,47,51,0,47,115,101,116,49,57,47,52,0,47,115,101,116,49,57,47,53,0,47,115,101,116,49,57,47,54,0,47,+115,101,116,49,57,47,55,0,47,115,101,116,49,57,47,56,0,47,115,101,116,49,57,47,57,0,47,115,101,116,50,51,47,49,0,47,115,101,116,50,51,47,50,0,47,115,101,116,50,51,47,51,0,47,115,101,116,50,52,47,49,0,47,115,101,116,50,52,47,50,0,47,115,101,116,50,52,47,51,0,47,115,101,116,50,52,47,52,0,47,115,101,116,50,53,47,49,0,47,115,101,116,50,53,47,50,0,47,115,101,116,50,53,47,51,0,47,115,101,116,50,53,47,52,0,47,115,101,116,50,53,47,53,0,47,115,101,116,50,54,47,49,0,47,115,101,116,50,54,47,50,0,47,115,101,+116,50,54,47,51,0,47,115,101,116,50,54,47,52,0,47,115,101,116,50,54,47,53,0,47,115,101,116,50,54,47,54,0,47,115,101,116,50,55,47,49,0,47,115,101,116,50,55,47,50,0,47,115,101,116,50,55,47,51,0,47,115,101,116,50,55,47,52,0,47,115,101,116,50,55,47,53,0,47,115,101,116,50,55,47,54,0,47,115,101,116,50,55,47,55,0,47,115,101,116,50,56,47,49,0,47,115,101,116,50,56,47,50,0,47,115,101,116,50,56,47,51,0,47,115,101,116,50,56,47,52,0,47,115,101,116,50,56,47,53,0,47,115,101,116,50,56,47,54,0,47,115,101,116,50,56,+47,55,0,47,115,101,116,50,56,47,56,0,47,115,101,116,51,49,48,47,49,0,47,115,101,116,51,49,48,47,49,48,0,47,115,101,116,51,49,48,47,50,0,47,115,101,116,51,49,48,47,51,0,47,115,101,116,51,49,48,47,52,0,47,115,101,116,51,49,48,47,53,0,47,115,101,116,51,49,48,47,54,0,47,115,101,116,51,49,48,47,55,0,47,115,101,116,51,49,48,47,56,0,47,115,101,116,51,49,48,47,57,0,47,115,101,116,51,49,49,47,49,0,47,115,101,116,51,49,49,47,49,48,0,47,115,101,116,51,49,49,47,49,49,0,47,115,101,116,51,49,49,47,50,0,47,115,+101,116,51,49,49,47,51,0,47,115,101,116,51,49,49,47,52,0,47,115,101,116,51,49,49,47,53,0,47,115,101,116,51,49,49,47,54,0,47,115,101,116,51,49,49,47,55,0,47,115,101,116,51,49,49,47,56,0,47,115,101,116,51,49,49,47,57,0,47,115,101,116,51,49,50,47,49,0,47,115,101,116,51,49,50,47,49,48,0,47,115,101,116,51,49,50,47,49,49,0,47,115,101,116,51,49,50,47,49,50,0,47,115,101,116,51,49,50,47,50,0,47,115,101,116,51,49,50,47,51,0,47,115,101,116,51,49,50,47,52,0,47,115,101,116,51,49,50,47,53,0,47,115,101,116,51,49,+50,47,54,0,47,115,101,116,51,49,50,47,55,0,47,115,101,116,51,49,50,47,56,0,47,115,101,116,51,49,50,47,57,0,47,115,101,116,51,51,47,49,0,47,115,101,116,51,51,47,50,0,47,115,101,116,51,51,47,51,0,47,115,101,116,51,52,47,49,0,47,115,101,116,51,52,47,50,0,47,115,101,116,51,52,47,51,0,47,115,101,116,51,52,47,52,0,47,115,101,116,51,53,47,49,0,47,115,101,116,51,53,47,50,0,47,115,101,116,51,53,47,51,0,47,115,101,116,51,53,47,52,0,47,115,101,116,51,53,47,53,0,47,115,101,116,51,54,47,49,0,47,115,101,116,51,+54,47,50,0,47,115,101,116,51,54,47,51,0,47,115,101,116,51,54,47,52,0,47,115,101,116,51,54,47,53,0,47,115,101,116,51,54,47,54,0,47,115,101,116,51,55,47,49,0,47,115,101,116,51,55,47,50,0,47,115,101,116,51,55,47,51,0,47,115,101,116,51,55,47,52,0,47,115,101,116,51,55,47,53,0,47,115,101,116,51,55,47,54,0,47,115,101,116,51,55,47,55,0,47,115,101,116,51,56,47,49,0,47,115,101,116,51,56,47,50,0,47,115,101,116,51,56,47,51,0,47,115,101,116,51,56,47,52,0,47,115,101,116,51,56,47,53,0,47,115,101,116,51,56,47,54,+0,47,115,101,116,51,56,47,55,0,47,115,101,116,51,56,47,56,0,47,115,101,116,51,57,47,49,0,47,115,101,116,51,57,47,50,0,47,115,101,116,51,57,47,51,0,47,115,101,116,51,57,47,52,0,47,115,101,116,51,57,47,53,0,47,115,101,116,51,57,47,54,0,47,115,101,116,51,57,47,55,0,47,115,101,116,51,57,47,56,0,47,115,101,116,51,57,47,57,0,47,115,112,101,99,116,114,97,108,49,48,47,49,0,47,115,112,101,99,116,114,97,108,49,48,47,49,48,0,47,115,112,101,99,116,114,97,108,49,48,47,50,0,47,115,112,101,99,116,114,97,108,49,+48,47,51,0,47,115,112,101,99,116,114,97,108,49,48,47,52,0,47,115,112,101,99,116,114,97,108,49,48,47,53,0,47,115,112,101,99,116,114,97,108,49,48,47,54,0,47,115,112,101,99,116,114,97,108,49,48,47,55,0,47,115,112,101,99,116,114,97,108,49,48,47,56,0,47,115,112,101,99,116,114,97,108,49,48,47,57,0,47,115,112,101,99,116,114,97,108,49,49,47,49,0,47,115,112,101,99,116,114,97,108,49,49,47,49,48,0,47,115,112,101,99,116,114,97,108,49,49,47,49,49,0,47,115,112,101,99,116,114,97,108,49,49,47,50,0,47,115,112,101,+99,116,114,97,108,49,49,47,51,0,47,115,112,101,99,116,114,97,108,49,49,47,52,0,47,115,112,101,99,116,114,97,108,49,49,47,53,0,47,115,112,101,99,116,114,97,108,49,49,47,54,0,47,115,112,101,99,116,114,97,108,49,49,47,55,0,47,115,112,101,99,116,114,97,108,49,49,47,56,0,47,115,112,101,99,116,114,97,108,49,49,47,57,0,47,115,112,101,99,116,114,97,108,51,47,49,0,47,115,112,101,99,116,114,97,108,51,47,50,0,47,115,112,101,99,116,114,97,108,51,47,51,0,47,115,112,101,99,116,114,97,108,52,47,49,0,47,115,112,+101,99,116,114,97,108,52,47,50,0,47,115,112,101,99,116,114,97,108,52,47,51,0,47,115,112,101,99,116,114,97,108,52,47,52,0,47,115,112,101,99,116,114,97,108,53,47,49,0,47,115,112,101,99,116,114,97,108,53,47,50,0,47,115,112,101,99,116,114,97,108,53,47,51,0,47,115,112,101,99,116,114,97,108,53,47,52,0,47,115,112,101,99,116,114,97,108,53,47,53,0,47,115,112,101,99,116,114,97,108,54,47,49,0,47,115,112,101,99,116,114,97,108,54,47,50,0,47,115,112,101,99,116,114,97,108,54,47,51,0,47,115,112,101,99,116,114,97,+108,54,47,52,0,47,115,112,101,99,116,114,97,108,54,47,53,0,47,115,112,101,99,116,114,97,108,54,47,54,0,47,115,112,101,99,116,114,97,108,55,47,49,0,47,115,112,101,99,116,114,97,108,55,47,50,0,47,115,112,101,99,116,114,97,108,55,47,51,0,47,115,112,101,99,116,114,97,108,55,47,52,0,47,115,112,101,99,116,114,97,108,55,47,53,0,47,115,112,101,99,116,114,97,108,55,47,54,0,47,115,112,101,99,116,114,97,108,55,47,55,0,47,115,112,101,99,116,114,97,108,56,47,49,0,47,115,112,101,99,116,114,97,108,56,47,50,0,47,+115,112,101,99,116,114,97,108,56,47,51,0,47,115,112,101,99,116,114,97,108,56,47,52,0,47,115,112,101,99,116,114,97,108,56,47,53,0,47,115,112,101,99,116,114,97,108,56,47,54,0,47,115,112,101,99,116,114,97,108,56,47,55,0,47,115,112,101,99,116,114,97,108,56,47,56,0,47,115,112,101,99,116,114,97,108,57,47,49,0,47,115,112,101,99,116,114,97,108,57,47,50,0,47,115,112,101,99,116,114,97,108,57,47,51,0,47,115,112,101,99,116,114,97,108,57,47,52,0,47,115,112,101,99,116,114,97,108,57,47,53,0,47,115,112,101,99,116,+114,97,108,57,47,54,0,47,115,112,101,99,116,114,97,108,57,47,55,0,47,115,112,101,99,116,114,97,108,57,47,56,0,47,115,112,101,99,116,114,97,108,57,47,57,0,47,115,118,103,47,97,108,105,99,101,98,108,117,101,0,47,115,118,103,47,97,110,116,105,113,117,101,119,104,105,116,101,0,47,115,118,103,47,97,113,117,97,0,47,115,118,103,47,97,113,117,97,109,97,114,105,110,101,0,47,115,118,103,47,97,122,117,114,101,0,47,115,118,103,47,98,101,105,103,101,0,47,115,118,103,47,98,105,115,113,117,101,0,47,115,118,103,+47,98,108,97,99,107,0,47,115,118,103,47,98,108,97,110,99,104,101,100,97,108,109,111,110,100,0,47,115,118,103,47,98,108,117,101,0,47,115,118,103,47,98,108,117,101,118,105,111,108,101,116,0,47,115,118,103,47,98,114,111,119,110,0,47,115,118,103,47,98,117,114,108,121,119,111,111,100,0,47,115,118,103,47,99,97,100,101,116,98,108,117,101,0,47,115,118,103,47,99,104,97,114,116,114,101,117,115,101,0,47,115,118,103,47,99,104,111,99,111,108,97,116,101,0,47,115,118,103,47,99,111,114,97,108,0,47,115,118,103,47,+99,111,114,110,102,108,111,119,101,114,98,108,117,101,0,47,115,118,103,47,99,111,114,110,115,105,108,107,0,47,115,118,103,47,99,114,105,109,115,111,110,0,47,115,118,103,47,99,121,97,110,0,47,115,118,103,47,100,97,114,107,98,108,117,101,0,47,115,118,103,47,100,97,114,107,99,121,97,110,0,47,115,118,103,47,100,97,114,107,103,111,108,100,101,110,114,111,100,0,47,115,118,103,47,100,97,114,107,103,114,97,121,0,47,115,118,103,47,100,97,114,107,103,114,101,101,110,0,47,115,118,103,47,100,97,114,107,103,114,+101,121,0,47,115,118,103,47,100,97,114,107,107,104,97,107,105,0,47,115,118,103,47,100,97,114,107,109,97,103,101,110,116,97,0,47,115,118,103,47,100,97,114,107,111,108,105,118,101,103,114,101,101,110,0,47,115,118,103,47,100,97,114,107,111,114,97,110,103,101,0,47,115,118,103,47,100,97,114,107,111,114,99,104,105,100,0,47,115,118,103,47,100,97,114,107,114,101,100,0,47,115,118,103,47,100,97,114,107,115,97,108,109,111,110,0,47,115,118,103,47,100,97,114,107,115,101,97,103,114,101,101,110,0,47,115,118,103,+47,100,97,114,107,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,100,97,114,107,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,100,97,114,107,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,100,97,114,107,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,100,97,114,107,118,105,111,108,101,116,0,47,115,118,103,47,100,101,101,112,112,105,110,107,0,47,115,118,103,47,100,101,101,112,115,107,121,98,108,117,101,0,47,115,118,103,47,100,105,109,103,114,97,121,0,47,115,118,103,47,+100,105,109,103,114,101,121,0,47,115,118,103,47,100,111,100,103,101,114,98,108,117,101,0,47,115,118,103,47,102,105,114,101,98,114,105,99,107,0,47,115,118,103,47,102,108,111,114,97,108,119,104,105,116,101,0,47,115,118,103,47,102,111,114,101,115,116,103,114,101,101,110,0,47,115,118,103,47,102,117,99,104,115,105,97,0,47,115,118,103,47,103,97,105,110,115,98,111,114,111,0,47,115,118,103,47,103,104,111,115,116,119,104,105,116,101,0,47,115,118,103,47,103,111,108,100,0,47,115,118,103,47,103,111,108,100,101,+110,114,111,100,0,47,115,118,103,47,103,114,97,121,0,47,115,118,103,47,103,114,101,101,110,0,47,115,118,103,47,103,114,101,101,110,121,101,108,108,111,119,0,47,115,118,103,47,103,114,101,121,0,47,115,118,103,47,104,111,110,101,121,100,101,119,0,47,115,118,103,47,104,111,116,112,105,110,107,0,47,115,118,103,47,105,110,100,105,97,110,114,101,100,0,47,115,118,103,47,105,110,100,105,103,111,0,47,115,118,103,47,105,118,111,114,121,0,47,115,118,103,47,107,104,97,107,105,0,47,115,118,103,47,108,97,118,101,+110,100,101,114,0,47,115,118,103,47,108,97,118,101,110,100,101,114,98,108,117,115,104,0,47,115,118,103,47,108,97,119,110,103,114,101,101,110,0,47,115,118,103,47,108,101,109,111,110,99,104,105,102,102,111,110,0,47,115,118,103,47,108,105,103,104,116,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,99,111,114,97,108,0,47,115,118,103,47,108,105,103,104,116,99,121,97,110,0,47,115,118,103,47,108,105,103,104,116,103,111,108,100,101,110,114,111,100,121,101,108,108,111,119,0,47,115,118,103,47,108,105,+103,104,116,103,114,97,121,0,47,115,118,103,47,108,105,103,104,116,103,114,101,101,110,0,47,115,118,103,47,108,105,103,104,116,103,114,101,121,0,47,115,118,103,47,108,105,103,104,116,112,105,110,107,0,47,115,118,103,47,108,105,103,104,116,115,97,108,109,111,110,0,47,115,118,103,47,108,105,103,104,116,115,101,97,103,114,101,101,110,0,47,115,118,103,47,108,105,103,104,116,115,107,121,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,108,105,+103,104,116,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,108,105,103,104,116,115,116,101,101,108,98,108,117,101,0,47,115,118,103,47,108,105,103,104,116,121,101,108,108,111,119,0,47,115,118,103,47,108,105,109,101,0,47,115,118,103,47,108,105,109,101,103,114,101,101,110,0,47,115,118,103,47,108,105,110,101,110,0,47,115,118,103,47,109,97,103,101,110,116,97,0,47,115,118,103,47,109,97,114,111,111,110,0,47,115,118,103,47,109,101,100,105,117,109,97,113,117,97,109,97,114,105,110,101,0,47,115,118,+103,47,109,101,100,105,117,109,98,108,117,101,0,47,115,118,103,47,109,101,100,105,117,109,111,114,99,104,105,100,0,47,115,118,103,47,109,101,100,105,117,109,112,117,114,112,108,101,0,47,115,118,103,47,109,101,100,105,117,109,115,101,97,103,114,101,101,110,0,47,115,118,103,47,109,101,100,105,117,109,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,109,101,100,105,117,109,115,112,114,105,110,103,103,114,101,101,110,0,47,115,118,103,47,109,101,100,105,117,109,116,117,114,113,117,111,105,115,101,+0,47,115,118,103,47,109,101,100,105,117,109,118,105,111,108,101,116,114,101,100,0,47,115,118,103,47,109,105,100,110,105,103,104,116,98,108,117,101,0,47,115,118,103,47,109,105,110,116,99,114,101,97,109,0,47,115,118,103,47,109,105,115,116,121,114,111,115,101,0,47,115,118,103,47,109,111,99,99,97,115,105,110,0,47,115,118,103,47,110,97,118,97,106,111,119,104,105,116,101,0,47,115,118,103,47,110,97,118,121,0,47,115,118,103,47,111,108,100,108,97,99,101,0,47,115,118,103,47,111,108,105,118,101,0,47,115,118,+103,47,111,108,105,118,101,100,114,97,98,0,47,115,118,103,47,111,114,97,110,103,101,0,47,115,118,103,47,111,114,97,110,103,101,114,101,100,0,47,115,118,103,47,111,114,99,104,105,100,0,47,115,118,103,47,112,97,108,101,103,111,108,100,101,110,114,111,100,0,47,115,118,103,47,112,97,108,101,103,114,101,101,110,0,47,115,118,103,47,112,97,108,101,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,112,97,108,101,118,105,111,108,101,116,114,101,100,0,47,115,118,103,47,112,97,112,97,121,97,119,104,105,+112,0,47,115,118,103,47,112,101,97,99,104,112,117,102,102,0,47,115,118,103,47,112,101,114,117,0,47,115,118,103,47,112,105,110,107,0,47,115,118,103,47,112,108,117,109,0,47,115,118,103,47,112,111,119,100,101,114,98,108,117,101,0,47,115,118,103,47,112,117,114,112,108,101,0,47,115,118,103,47,114,101,100,0,47,115,118,103,47,114,111,115,121,98,114,111,119,110,0,47,115,118,103,47,114,111,121,97,108,98,108,117,101,0,47,115,118,103,47,115,97,100,100,108,101,98,114,111,119,110,0,47,115,118,103,47,115,97,108,+109,111,110,0,47,115,118,103,47,115,97,110,100,121,98,114,111,119,110,0,47,115,118,103,47,115,101,97,103,114,101,101,110,0,47,115,118,103,47,115,101,97,115,104,101,108,108,0,47,115,118,103,47,115,105,101,110,110,97,0,47,115,118,103,47,115,105,108,118,101,114,0,47,115,118,103,47,115,107,121,98,108,117,101,0,47,115,118,103,47,115,108,97,116,101,98,108,117,101,0,47,115,118,103,47,115,108,97,116,101,103,114,97,121,0,47,115,118,103,47,115,108,97,116,101,103,114,101,121,0,47,115,118,103,47,115,110,111,+119,0,47,115,118,103,47,115,112,114,105,110,103,103,114,101,101,110,0,47,115,118,103,47,115,116,101,101,108,98,108,117,101,0,47,115,118,103,47,116,97,110,0,47,115,118,103,47,116,101,97,108,0,47,115,118,103,47,116,104,105,115,116,108,101,0,47,115,118,103,47,116,111,109,97,116,111,0,47,115,118,103,47,116,117,114,113,117,111,105,115,101,0,47,115,118,103,47,118,105,111,108,101,116,0,47,115,118,103,47,119,104,101,97,116,0,47,115,118,103,47,119,104,105,116,101,0,47,115,118,103,47,119,104,105,116,101,115,+109,111,107,101,0,47,115,118,103,47,121,101,108,108,111,119,0,47,115,118,103,47,121,101,108,108,111,119,103,114,101,101,110,0,47,121,108,103,110,51,47,49,0,47,121,108,103,110,51,47,50,0,47,121,108,103,110,51,47,51,0,47,121,108,103,110,52,47,49,0,47,121,108,103,110,52,47,50,0,47,121,108,103,110,52,47,51,0,47,121,108,103,110,52,47,52,0,47,121,108,103,110,53,47,49,0,47,121,108,103,110,53,47,50,0,47,121,108,103,110,53,47,51,0,47,121,108,103,110,53,47,52,0,47,121,108,103,110,53,47,53,0,47,121,108,103,+110,54,47,49,0,47,121,108,103,110,54,47,50,0,47,121,108,103,110,54,47,51,0,47,121,108,103,110,54,47,52,0,47,121,108,103,110,54,47,53,0,47,121,108,103,110,54,47,54,0,47,121,108,103,110,55,47,49,0,47,121,108,103,110,55,47,50,0,47,121,108,103,110,55,47,51,0,47,121,108,103,110,55,47,52,0,47,121,108,103,110,55,47,53,0,47,121,108,103,110,55,47,54,0,47,121,108,103,110,55,47,55,0,47,121,108,103,110,56,47,49,0,47,121,108,103,110,56,47,50,0,47,121,108,103,110,56,47,51,0,47,121,108,103,110,56,47,52,0,47,121,+108,103,110,56,47,53,0,47,121,108,103,110,56,47,54,0,47,121,108,103,110,56,47,55,0,47,121,108,103,110,56,47,56,0,47,121,108,103,110,57,47,49,0,47,121,108,103,110,57,47,50,0,47,121,108,103,110,57,47,51,0,47,121,108,103,110,57,47,52,0,47,121,108,103,110,57,47,53,0,47,121,108,103,110,57,47,54,0,47,121,108,103,110,57,47,55,0,47,121,108,103,110,57,47,56,0,47,121,108,103,110,57,47,57,0,47,121,108,103,110,98,117,51,47,49,0,47,121,108,103,110,98,117,51,47,50,0,47,121,108,103,110,98,117,51,47,51,0,47,121,+108,103,110,98,117,52,47,49,0,47,121,108,103,110,98,117,52,47,50,0,47,121,108,103,110,98,117,52,47,51,0,47,121,108,103,110,98,117,52,47,52,0,47,121,108,103,110,98,117,53,47,49,0,47,121,108,103,110,98,117,53,47,50,0,47,121,108,103,110,98,117,53,47,51,0,47,121,108,103,110,98,117,53,47,52,0,47,121,108,103,110,98,117,53,47,53,0,47,121,108,103,110,98,117,54,47,49,0,47,121,108,103,110,98,117,54,47,50,0,47,121,108,103,110,98,117,54,47,51,0,47,121,108,103,110,98,117,54,47,52,0,47,121,108,103,110,98,117,54,+47,53,0,47,121,108,103,110,98,117,54,47,54,0,47,121,108,103,110,98,117,55,47,49,0,47,121,108,103,110,98,117,55,47,50,0,47,121,108,103,110,98,117,55,47,51,0,47,121,108,103,110,98,117,55,47,52,0,47,121,108,103,110,98,117,55,47,53,0,47,121,108,103,110,98,117,55,47,54,0,47,121,108,103,110,98,117,55,47,55,0,47,121,108,103,110,98,117,56,47,49,0,47,121,108,103,110,98,117,56,47,50,0,47,121,108,103,110,98,117,56,47,51,0,47,121,108,103,110,98,117,56,47,52,0,47,121,108,103,110,98,117,56,47,53,0,47,121,108,103,+110,98,117,56,47,54,0,47,121,108,103,110,98,117,56,47,55,0,47,121,108,103,110,98,117,56,47,56,0,47,121,108,103,110,98,117,57,47,49,0,47,121,108,103,110,98,117,57,47,50,0,47,121,108,103,110,98,117,57,47,51,0,47,121,108,103,110,98,117,57,47,52,0,47,121,108,103,110,98,117,57,47,53,0,47,121,108,103,110,98,117,57,47,54,0,47,121,108,103,110,98,117,57,47,55,0,47,121,108,103,110,98,117,57,47,56,0,47,121,108,103,110,98,117,57,47,57,0,47,121,108,111,114,98,114,51,47,49,0,47,121,108,111,114,98,114,51,47,50,+0,47,121,108,111,114,98,114,51,47,51,0,47,121,108,111,114,98,114,52,47,49,0,47,121,108,111,114,98,114,52,47,50,0,47,121,108,111,114,98,114,52,47,51,0,47,121,108,111,114,98,114,52,47,52,0,47,121,108,111,114,98,114,53,47,49,0,47,121,108,111,114,98,114,53,47,50,0,47,121,108,111,114,98,114,53,47,51,0,47,121,108,111,114,98,114,53,47,52,0,47,121,108,111,114,98,114,53,47,53,0,47,121,108,111,114,98,114,54,47,49,0,47,121,108,111,114,98,114,54,47,50,0,47,121,108,111,114,98,114,54,47,51,0,47,121,108,111,114,+98,114,54,47,52,0,47,121,108,111,114,98,114,54,47,53,0,47,121,108,111,114,98,114,54,47,54,0,47,121,108,111,114,98,114,55,47,49,0,47,121,108,111,114,98,114,55,47,50,0,47,121,108,111,114,98,114,55,47,51,0,47,121,108,111,114,98,114,55,47,52,0,47,121,108,111,114,98,114,55,47,53,0,47,121,108,111,114,98,114,55,47,54,0,47,121,108,111,114,98,114,55,47,55,0,47,121,108,111,114,98,114,56,47,49,0,47,121,108,111,114,98,114,56,47,50,0,47,121,108,111,114,98,114,56,47,51,0,47,121,108,111,114,98,114,56,47,52,0,47,+121,108,111,114,98,114,56,47,53,0,47,121,108,111,114,98,114,56,47,54,0,47,121,108,111,114,98,114,56,47,55,0,47,121,108,111,114,98,114,56,47,56,0,47,121,108,111,114,98,114,57,47,49,0,47,121,108,111,114,98,114,57,47,50,0,47,121,108,111,114,98,114,57,47,51,0,47,121,108,111,114,98,114,57,47,52,0,47,121,108,111,114,98,114,57,47,53,0,47,121,108,111,114,98,114,57,47,54,0,47,121,108,111,114,98,114,57,47,55,0,47,121,108,111,114,98,114,57,47,56,0,47,121,108,111,114,98,114,57,47,57,0,47,121,108,111,114,114,+100,51,47,49,0,47,121,108,111,114,114,100,51,47,50,0,47,121,108,111,114,114,100,51,47,51,0,47,121,108,111,114,114,100,52,47,49,0,47,121,108,111,114,114,100,52,47,50,0,47,121,108,111,114,114,100,52,47,51,0,47,121,108,111,114,114,100,52,47,52,0,47,121,108,111,114,114,100,53,47,49,0,47,121,108,111,114,114,100,53,47,50,0,47,121,108,111,114,114,100,53,47,51,0,47,121,108,111,114,114,100,53,47,52,0,47,121,108,111,114,114,100,53,47,53,0,47,121,108,111,114,114,100,54,47,49,0,47,121,108,111,114,114,100,54,+47,50,0,47,121,108,111,114,114,100,54,47,51,0,47,121,108,111,114,114,100,54,47,52,0,47,121,108,111,114,114,100,54,47,53,0,47,121,108,111,114,114,100,54,47,54,0,47,121,108,111,114,114,100,55,47,49,0,47,121,108,111,114,114,100,55,47,50,0,47,121,108,111,114,114,100,55,47,51,0,47,121,108,111,114,114,100,55,47,52,0,47,121,108,111,114,114,100,55,47,53,0,47,121,108,111,114,114,100,55,47,54,0,47,121,108,111,114,114,100,55,47,55,0,47,121,108,111,114,114,100,56,47,49,0,47,121,108,111,114,114,100,56,47,50,0,+47,121,108,111,114,114,100,56,47,51,0,47,121,108,111,114,114,100,56,47,52,0,47,121,108,111,114,114,100,56,47,53,0,47,121,108,111,114,114,100,56,47,54,0,47,121,108,111,114,114,100,56,47,55,0,47,121,108,111,114,114,100,56,47,56,0,47,121,108,111,114,114,100,57,47,49,0,47,121,108,111,114,114,100,57,47,50,0,47,121,108,111,114,114,100,57,47,51,0,47,121,108,111,114,114,100,57,47,52,0,47,121,108,111,114,114,100,57,47,53,0,47,121,108,111,114,114,100,57,47,54,0,47,121,108,111,114,114,100,57,47,55,0,47,121,+108,111,114,114,100,57,47,56,0,47,121,108,111,114,114,100,57,47,57,0,97,108,105,99,101,98,108,117,101,0,97,110,116,105,113,117,101,119,104,105,116,101,0,97,110,116,105,113,117,101,119,104,105,116,101,49,0,97,110,116,105,113,117,101,119,104,105,116,101,50,0,97,110,116,105,113,117,101,119,104,105,116,101,51,0,97,110,116,105,113,117,101,119,104,105,116,101,52,0,97,113,117,97,109,97,114,105,110,101,0,97,113,117,97,109,97,114,105,110,101,49,0,97,113,117,97,109,97,114,105,110,101,50,0,97,113,117,97,109,+97,114,105,110,101,51,0,97,113,117,97,109,97,114,105,110,101,52,0,97,122,117,114,101,0,97,122,117,114,101,49,0,97,122,117,114,101,50,0,97,122,117,114,101,51,0,97,122,117,114,101,52,0,98,101,105,103,101,0,98,105,115,113,117,101,0,98,105,115,113,117,101,49,0,98,105,115,113,117,101,50,0,98,105,115,113,117,101,51,0,98,105,115,113,117,101,52,0,98,108,97,110,99,104,101,100,97,108,109,111,110,100,0,98,108,117,101,0,98,108,117,101,49,0,98,108,117,101,50,0,98,108,117,101,51,0,98,108,117,101,52,0,98,108,117,+101,118,105,111,108,101,116,0,98,114,111,119,110,0,98,114,111,119,110,49,0,98,114,111,119,110,50,0,98,114,111,119,110,51,0,98,114,111,119,110,52,0,98,117,114,108,121,119,111,111,100,0,98,117,114,108,121,119,111,111,100,49,0,98,117,114,108,121,119,111,111,100,50,0,98,117,114,108,121,119,111,111,100,51,0,98,117,114,108,121,119,111,111,100,52,0,99,97,100,101,116,98,108,117,101,0,99,97,100,101,116,98,108,117,101,49,0,99,97,100,101,116,98,108,117,101,50,0,99,97,100,101,116,98,108,117,101,51,0,99,97,100,+101,116,98,108,117,101,52,0,99,104,97,114,116,114,101,117,115,101,0,99,104,97,114,116,114,101,117,115,101,49,0,99,104,97,114,116,114,101,117,115,101,50,0,99,104,97,114,116,114,101,117,115,101,51,0,99,104,97,114,116,114,101,117,115,101,52,0,99,104,111,99,111,108,97,116,101,0,99,104,111,99,111,108,97,116,101,49,0,99,104,111,99,111,108,97,116,101,50,0,99,104,111,99,111,108,97,116,101,51,0,99,104,111,99,111,108,97,116,101,52,0,99,111,114,97,108,0,99,111,114,97,108,49,0,99,111,114,97,108,50,0,99,111,114,+97,108,51,0,99,111,114,97,108,52,0,99,111,114,110,102,108,111,119,101,114,98,108,117,101,0,99,111,114,110,115,105,108,107,0,99,111,114,110,115,105,108,107,49,0,99,111,114,110,115,105,108,107,50,0,99,111,114,110,115,105,108,107,51,0,99,111,114,110,115,105,108,107,52,0,99,114,105,109,115,111,110,0,99,121,97,110,0,99,121,97,110,49,0,99,121,97,110,50,0,99,121,97,110,51,0,99,121,97,110,52,0,100,97,114,107,103,111,108,100,101,110,114,111,100,0,100,97,114,107,103,111,108,100,101,110,114,111,100,49,0,100,+97,114,107,103,111,108,100,101,110,114,111,100,50,0,100,97,114,107,103,111,108,100,101,110,114,111,100,51,0,100,97,114,107,103,111,108,100,101,110,114,111,100,52,0,100,97,114,107,103,114,101,101,110,0,100,97,114,107,107,104,97,107,105,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,49,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,50,0,100,97,114,107,111,108,105,118,101,103,114,101,101,110,51,0,100,97,114,107,111,108,105,+118,101,103,114,101,101,110,52,0,100,97,114,107,111,114,97,110,103,101,0,100,97,114,107,111,114,97,110,103,101,49,0,100,97,114,107,111,114,97,110,103,101,50,0,100,97,114,107,111,114,97,110,103,101,51,0,100,97,114,107,111,114,97,110,103,101,52,0,100,97,114,107,111,114,99,104,105,100,0,100,97,114,107,111,114,99,104,105,100,49,0,100,97,114,107,111,114,99,104,105,100,50,0,100,97,114,107,111,114,99,104,105,100,51,0,100,97,114,107,111,114,99,104,105,100,52,0,100,97,114,107,115,97,108,109,111,110,0,100,+97,114,107,115,101,97,103,114,101,101,110,0,100,97,114,107,115,101,97,103,114,101,101,110,49,0,100,97,114,107,115,101,97,103,114,101,101,110,50,0,100,97,114,107,115,101,97,103,114,101,101,110,51,0,100,97,114,107,115,101,97,103,114,101,101,110,52,0,100,97,114,107,115,108,97,116,101,98,108,117,101,0,100,97,114,107,115,108,97,116,101,103,114,97,121,0,100,97,114,107,115,108,97,116,101,103,114,97,121,49,0,100,97,114,107,115,108,97,116,101,103,114,97,121,50,0,100,97,114,107,115,108,97,116,101,103,114,97,+121,51,0,100,97,114,107,115,108,97,116,101,103,114,97,121,52,0,100,97,114,107,115,108,97,116,101,103,114,101,121,0,100,97,114,107,116,117,114,113,117,111,105,115,101,0,100,97,114,107,118,105,111,108,101,116,0,100,101,101,112,112,105,110,107,0,100,101,101,112,112,105,110,107,49,0,100,101,101,112,112,105,110,107,50,0,100,101,101,112,112,105,110,107,51,0,100,101,101,112,112,105,110,107,52,0,100,101,101,112,115,107,121,98,108,117,101,0,100,101,101,112,115,107,121,98,108,117,101,49,0,100,101,101,112,115,+107,121,98,108,117,101,50,0,100,101,101,112,115,107,121,98,108,117,101,51,0,100,101,101,112,115,107,121,98,108,117,101,52,0,100,105,109,103,114,97,121,0,100,105,109,103,114,101,121,0,100,111,100,103,101,114,98,108,117,101,0,100,111,100,103,101,114,98,108,117,101,49,0,100,111,100,103,101,114,98,108,117,101,50,0,100,111,100,103,101,114,98,108,117,101,51,0,100,111,100,103,101,114,98,108,117,101,52,0,102,105,114,101,98,114,105,99,107,0,102,105,114,101,98,114,105,99,107,49,0,102,105,114,101,98,114,105,+99,107,50,0,102,105,114,101,98,114,105,99,107,51,0,102,105,114,101,98,114,105,99,107,52,0,102,108,111,114,97,108,119,104,105,116,101,0,102,111,114,101,115,116,103,114,101,101,110,0,103,97,105,110,115,98,111,114,111,0,103,104,111,115,116,119,104,105,116,101,0,103,111,108,100,0,103,111,108,100,49,0,103,111,108,100,50,0,103,111,108,100,51,0,103,111,108,100,52,0,103,111,108,100,101,110,114,111,100,0,103,111,108,100,101,110,114,111,100,49,0,103,111,108,100,101,110,114,111,100,50,0,103,111,108,100,101,+110,114,111,100,51,0,103,111,108,100,101,110,114,111,100,52,0,103,114,97,121,0,103,114,97,121,48,0,103,114,97,121,49,0,103,114,97,121,49,48,0,103,114,97,121,49,48,48,0,103,114,97,121,49,49,0,103,114,97,121,49,50,0,103,114,97,121,49,51,0,103,114,97,121,49,52,0,103,114,97,121,49,53,0,103,114,97,121,49,54,0,103,114,97,121,49,55,0,103,114,97,121,49,56,0,103,114,97,121,49,57,0,103,114,97,121,50,0,103,114,97,121,50,48,0,103,114,97,121,50,49,0,103,114,97,121,50,50,0,103,114,97,121,50,51,0,103,114,97,121,+50,52,0,103,114,97,121,50,53,0,103,114,97,121,50,54,0,103,114,97,121,50,55,0,103,114,97,121,50,56,0,103,114,97,121,50,57,0,103,114,97,121,51,0,103,114,97,121,51,48,0,103,114,97,121,51,49,0,103,114,97,121,51,50,0,103,114,97,121,51,51,0,103,114,97,121,51,52,0,103,114,97,121,51,53,0,103,114,97,121,51,54,0,103,114,97,121,51,55,0,103,114,97,121,51,56,0,103,114,97,121,51,57,0,103,114,97,121,52,0,103,114,97,121,52,48,0,103,114,97,121,52,49,0,103,114,97,121,52,50,0,103,114,97,121,52,51,0,103,114,97,121,52,+52,0,103,114,97,121,52,53,0,103,114,97,121,52,54,0,103,114,97,121,52,55,0,103,114,97,121,52,56,0,103,114,97,121,52,57,0,103,114,97,121,53,0,103,114,97,121,53,48,0,103,114,97,121,53,49,0,103,114,97,121,53,50,0,103,114,97,121,53,51,0,103,114,97,121,53,52,0,103,114,97,121,53,53,0,103,114,97,121,53,54,0,103,114,97,121,53,55,0,103,114,97,121,53,56,0,103,114,97,121,53,57,0,103,114,97,121,54,0,103,114,97,121,54,48,0,103,114,97,121,54,49,0,103,114,97,121,54,50,0,103,114,97,121,54,51,0,103,114,97,121,54,52,+0,103,114,97,121,54,53,0,103,114,97,121,54,54,0,103,114,97,121,54,55,0,103,114,97,121,54,56,0,103,114,97,121,54,57,0,103,114,97,121,55],"i8",4,n.q+146418);+B([103,114,97,121,55,48,0,103,114,97,121,55,49,0,103,114,97,121,55,50,0,103,114,97,121,55,51,0,103,114,97,121,55,52,0,103,114,97,121,55,53,0,103,114,97,121,55,54,0,103,114,97,121,55,55,0,103,114,97,121,55,56,0,103,114,97,121,55,57,0,103,114,97,121,56,0,103,114,97,121,56,48,0,103,114,97,121,56,49,0,103,114,97,121,56,50,0,103,114,97,121,56,51,0,103,114,97,121,56,52,0,103,114,97,121,56,53,0,103,114,97,121,56,54,0,103,114,97,121,56,55,0,103,114,97,121,56,56,0,103,114,97,121,56,57,0,103,114,97,121,57,+0,103,114,97,121,57,48,0,103,114,97,121,57,49,0,103,114,97,121,57,50,0,103,114,97,121,57,51,0,103,114,97,121,57,52,0,103,114,97,121,57,53,0,103,114,97,121,57,54,0,103,114,97,121,57,55,0,103,114,97,121,57,56,0,103,114,97,121,57,57,0,103,114,101,101,110,0,103,114,101,101,110,49,0,103,114,101,101,110,50,0,103,114,101,101,110,51,0,103,114,101,101,110,52,0,103,114,101,101,110,121,101,108,108,111,119,0,103,114,101,121,0,103,114,101,121,48,0,103,114,101,121,49,0,103,114,101,121,49,48,0,103,114,101,121,49,+48,48,0,103,114,101,121,49,49,0,103,114,101,121,49,50,0,103,114,101,121,49,51,0,103,114,101,121,49,52,0,103,114,101,121,49,53,0,103,114,101,121,49,54,0,103,114,101,121,49,55,0,103,114,101,121,49,56,0,103,114,101,121,49,57,0,103,114,101,121,50,0,103,114,101,121,50,48,0,103,114,101,121,50,49,0,103,114,101,121,50,50,0,103,114,101,121,50,51,0,103,114,101,121,50,52,0,103,114,101,121,50,53,0,103,114,101,121,50,54,0,103,114,101,121,50,55,0,103,114,101,121,50,56,0,103,114,101,121,50,57,0,103,114,101,121,+51,0,103,114,101,121,51,48,0,103,114,101,121,51,49,0,103,114,101,121,51,50,0,103,114,101,121,51,51,0,103,114,101,121,51,52,0,103,114,101,121,51,53,0,103,114,101,121,51,54,0,103,114,101,121,51,55,0,103,114,101,121,51,56,0,103,114,101,121,51,57,0,103,114,101,121,52,0,103,114,101,121,52,48,0,103,114,101,121,52,49,0,103,114,101,121,52,50,0,103,114,101,121,52,51,0,103,114,101,121,52,52,0,103,114,101,121,52,53,0,103,114,101,121,52,54,0,103,114,101,121,52,55,0,103,114,101,121,52,56,0,103,114,101,121,52,+57,0,103,114,101,121,53,0,103,114,101,121,53,48,0,103,114,101,121,53,49,0,103,114,101,121,53,50,0,103,114,101,121,53,51,0,103,114,101,121,53,52,0,103,114,101,121,53,53,0,103,114,101,121,53,54,0,103,114,101,121,53,55,0,103,114,101,121,53,56,0,103,114,101,121,53,57,0,103,114,101,121,54,0,103,114,101,121,54,48,0,103,114,101,121,54,49,0,103,114,101,121,54,50,0,103,114,101,121,54,51,0,103,114,101,121,54,52,0,103,114,101,121,54,53,0,103,114,101,121,54,54,0,103,114,101,121,54,55,0,103,114,101,121,54,56,+0,103,114,101,121,54,57,0,103,114,101,121,55,0,103,114,101,121,55,48,0,103,114,101,121,55,49,0,103,114,101,121,55,50,0,103,114,101,121,55,51,0,103,114,101,121,55,52,0,103,114,101,121,55,53,0,103,114,101,121,55,54,0,103,114,101,121,55,55,0,103,114,101,121,55,56,0,103,114,101,121,55,57,0,103,114,101,121,56,0,103,114,101,121,56,48,0,103,114,101,121,56,49,0,103,114,101,121,56,50,0,103,114,101,121,56,51,0,103,114,101,121,56,52,0,103,114,101,121,56,53,0,103,114,101,121,56,54,0,103,114,101,121,56,55,0,103,+114,101,121,56,56,0,103,114,101,121,56,57,0,103,114,101,121,57,0,103,114,101,121,57,48,0,103,114,101,121,57,49,0,103,114,101,121,57,50,0,103,114,101,121,57,51,0,103,114,101,121,57,52,0,103,114,101,121,57,53,0,103,114,101,121,57,54,0,103,114,101,121,57,55,0,103,114,101,121,57,56,0,103,114,101,121,57,57,0,104,111,110,101,121,100,101,119,0,104,111,110,101,121,100,101,119,49,0,104,111,110,101,121,100,101,119,50,0,104,111,110,101,121,100,101,119,51,0,104,111,110,101,121,100,101,119,52,0,104,111,116,112,+105,110,107,0,104,111,116,112,105,110,107,49,0,104,111,116,112,105,110,107,50,0,104,111,116,112,105,110,107,51,0,104,111,116,112,105,110,107,52,0,105,110,100,105,97,110,114,101,100,0,105,110,100,105,97,110,114,101,100,49,0,105,110,100,105,97,110,114,101,100,50,0,105,110,100,105,97,110,114,101,100,51,0,105,110,100,105,97,110,114,101,100,52,0,105,110,100,105,103,111,0,105,110,118,105,115,0,105,118,111,114,121,0,105,118,111,114,121,49,0,105,118,111,114,121,50,0,105,118,111,114,121,51,0,105,118,111,114,+121,52,0,107,104,97,107,105,0,107,104,97,107,105,49,0,107,104,97,107,105,50,0,107,104,97,107,105,51,0,107,104,97,107,105,52,0,108,97,118,101,110,100,101,114,0,108,97,118,101,110,100,101,114,98,108,117,115,104,0,108,97,118,101,110,100,101,114,98,108,117,115,104,49,0,108,97,118,101,110,100,101,114,98,108,117,115,104,50,0,108,97,118,101,110,100,101,114,98,108,117,115,104,51,0,108,97,118,101,110,100,101,114,98,108,117,115,104,52,0,108,97,119,110,103,114,101,101,110,0,108,101,109,111,110,99,104,105,102,+102,111,110,0,108,101,109,111,110,99,104,105,102,102,111,110,49,0,108,101,109,111,110,99,104,105,102,102,111,110,50,0,108,101,109,111,110,99,104,105,102,102,111,110,51,0,108,101,109,111,110,99,104,105,102,102,111,110,52,0,108,105,103,104,116,98,108,117,101,0,108,105,103,104,116,98,108,117,101,49,0,108,105,103,104,116,98,108,117,101,50,0,108,105,103,104,116,98,108,117,101,51,0,108,105,103,104,116,98,108,117,101,52,0,108,105,103,104,116,99,111,114,97,108,0,108,105,103,104,116,99,121,97,110,0,108,105,+103,104,116,99,121,97,110,49,0,108,105,103,104,116,99,121,97,110,50,0,108,105,103,104,116,99,121,97,110,51,0,108,105,103,104,116,99,121,97,110,52,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,49,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,50,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,51,0,108,105,103,104,116,103,111,108,100,101,110,114,111,100,52,0,108,105,103,104,116,103,111,108,100,101,110,114,111,+100,121,101,108,108,111,119,0,108,105,103,104,116,103,114,97,121,0,108,105,103,104,116,103,114,101,121,0,108,105,103,104,116,112,105,110,107,0,108,105,103,104,116,112,105,110,107,49,0,108,105,103,104,116,112,105,110,107,50,0,108,105,103,104,116,112,105,110,107,51,0,108,105,103,104,116,112,105,110,107,52,0,108,105,103,104,116,115,97,108,109,111,110,0,108,105,103,104,116,115,97,108,109,111,110,49,0,108,105,103,104,116,115,97,108,109,111,110,50,0,108,105,103,104,116,115,97,108,109,111,110,51,0,108,105,+103,104,116,115,97,108,109,111,110,52,0,108,105,103,104,116,115,101,97,103,114,101,101,110,0,108,105,103,104,116,115,107,121,98,108,117,101,0,108,105,103,104,116,115,107,121,98,108,117,101,49,0,108,105,103,104,116,115,107,121,98,108,117,101,50,0,108,105,103,104,116,115,107,121,98,108,117,101,51,0,108,105,103,104,116,115,107,121,98,108,117,101,52,0,108,105,103,104,116,115,108,97,116,101,98,108,117,101,0,108,105,103,104,116,115,108,97,116,101,103,114,97,121,0,108,105,103,104,116,115,108,97,116,101,+103,114,101,121,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,49,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,50,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,51,0,108,105,103,104,116,115,116,101,101,108,98,108,117,101,52,0,108,105,103,104,116,121,101,108,108,111,119,0,108,105,103,104,116,121,101,108,108,111,119,49,0,108,105,103,104,116,121,101,108,108,111,119,50,0,108,105,103,104,116,121,101,108,108,111,119,+51,0,108,105,103,104,116,121,101,108,108,111,119,52,0,108,105,109,101,103,114,101,101,110,0,108,105,110,101,110,0,109,97,103,101,110,116,97,0,109,97,103,101,110,116,97,49,0,109,97,103,101,110,116,97,50,0,109,97,103,101,110,116,97,51,0,109,97,103,101,110,116,97,52,0,109,97,114,111,111,110,0,109,97,114,111,111,110,49,0,109,97,114,111,111,110,50,0,109,97,114,111,111,110,51,0,109,97,114,111,111,110,52,0,109,101,100,105,117,109,97,113,117,97,109,97,114,105,110,101,0,109,101,100,105,117,109,98,108,117,+101,0,109,101,100,105,117,109,111,114,99,104,105,100,0,109,101,100,105,117,109,111,114,99,104,105,100,49,0,109,101,100,105,117,109,111,114,99,104,105,100,50,0,109,101,100,105,117,109,111,114,99,104,105,100,51,0,109,101,100,105,117,109,111,114,99,104,105,100,52,0,109,101,100,105,117,109,112,117,114,112,108,101,0,109,101,100,105,117,109,112,117,114,112,108,101,49,0,109,101,100,105,117,109,112,117,114,112,108,101,50,0,109,101,100,105,117,109,112,117,114,112,108,101,51,0,109,101,100,105,117,109,112,117,+114,112,108,101,52,0,109,101,100,105,117,109,115,101,97,103,114,101,101,110,0,109,101,100,105,117,109,115,108,97,116,101,98,108,117,101,0,109,101,100,105,117,109,115,112,114,105,110,103,103,114,101,101,110,0,109,101,100,105,117,109,116,117,114,113,117,111,105,115,101,0,109,101,100,105,117,109,118,105,111,108,101,116,114,101,100,0,109,105,100,110,105,103,104,116,98,108,117,101,0,109,105,110,116,99,114,101,97,109,0,109,105,115,116,121,114,111,115,101,0,109,105,115,116,121,114,111,115,101,49,0,109,105,+115,116,121,114,111,115,101,50,0,109,105,115,116,121,114,111,115,101,51,0,109,105,115,116,121,114,111,115,101,52,0,109,111,99,99,97,115,105,110,0,110,97,118,97,106,111,119,104,105,116,101,0,110,97,118,97,106,111,119,104,105,116,101,49,0,110,97,118,97,106,111,119,104,105,116,101,50,0,110,97,118,97,106,111,119,104,105,116,101,51,0,110,97,118,97,106,111,119,104,105,116,101,52,0,110,97,118,121,0,110,97,118,121,98,108,117,101,0,110,111,110,101,0,111,108,100,108,97,99,101,0,111,108,105,118,101,100,114,+97,98,0,111,108,105,118,101,100,114,97,98,49,0,111,108,105,118,101,100,114,97,98,50,0,111,108,105,118,101,100,114,97,98,51,0,111,108,105,118,101,100,114,97,98,52,0,111,114,97,110,103,101,0,111,114,97,110,103,101,49,0,111,114,97,110,103,101,50,0,111,114,97,110,103,101,51,0,111,114,97,110,103,101,52,0,111,114,97,110,103,101,114,101,100,0,111,114,97,110,103,101,114,101,100,49,0,111,114,97,110,103,101,114,101,100,50,0,111,114,97,110,103,101,114,101,100,51,0,111,114,97,110,103,101,114,101,100,52,0,111,+114,99,104,105,100,0,111,114,99,104,105,100,49,0,111,114,99,104,105,100,50,0,111,114,99,104,105,100,51,0,111,114,99,104,105,100,52,0,112,97,108,101,103,111,108,100,101,110,114,111,100,0,112,97,108,101,103,114,101,101,110,0,112,97,108,101,103,114,101,101,110,49,0,112,97,108,101,103,114,101,101,110,50,0,112,97,108,101,103,114,101,101,110,51,0,112,97,108,101,103,114,101,101,110,52,0,112,97,108,101,116,117,114,113,117,111,105,115,101,0,112,97,108,101,116,117,114,113,117,111,105,115,101,49,0,112,97,108,+101,116,117,114,113,117,111,105,115,101,50,0,112,97,108,101,116,117,114,113,117,111,105,115,101,51,0,112,97,108,101,116,117,114,113,117,111,105,115,101,52,0,112,97,108,101,118,105,111,108,101,116,114,101,100,0,112,97,108,101,118,105,111,108,101,116,114,101,100,49,0,112,97,108,101,118,105,111,108,101,116,114,101,100,50,0,112,97,108,101,118,105,111,108,101,116,114,101,100,51,0,112,97,108,101,118,105,111,108,101,116,114,101,100,52,0,112,97,112,97,121,97,119,104,105,112,0,112,101,97,99,104,112,117,102,+102,0,112,101,97,99,104,112,117,102,102,49,0,112,101,97,99,104,112,117,102,102,50,0,112,101,97,99,104,112,117,102,102,51,0,112,101,97,99,104,112,117,102,102,52,0,112,101,114,117,0,112,105,110,107,0,112,105,110,107,49,0,112,105,110,107,50,0,112,105,110,107,51,0,112,105,110,107,52,0,112,108,117,109,0,112,108,117,109,49,0,112,108,117,109,50,0,112,108,117,109,51,0,112,108,117,109,52,0,112,111,119,100,101,114,98,108,117,101,0,112,117,114,112,108,101,0,112,117,114,112,108,101,49,0,112,117,114,112,108,101,+50,0,112,117,114,112,108,101,51,0,112,117,114,112,108,101,52,0,114,101,100,0,114,101,100,49,0,114,101,100,50,0,114,101,100,51,0,114,101,100,52,0,114,111,115,121,98,114,111,119,110,0,114,111,115,121,98,114,111,119,110,49,0,114,111,115,121,98,114,111,119,110,50,0,114,111,115,121,98,114,111,119,110,51,0,114,111,115,121,98,114,111,119,110,52,0,114,111,121,97,108,98,108,117,101,0,114,111,121,97,108,98,108,117,101,49,0,114,111,121,97,108,98,108,117,101,50,0,114,111,121,97,108,98,108,117,101,51,0,114,111,+121,97,108,98,108,117,101,52,0,115,97,100,100,108,101,98,114,111,119,110,0,115,97,108,109,111,110,0,115,97,108,109,111,110,49,0,115,97,108,109,111,110,50,0,115,97,108,109,111,110,51,0,115,97,108,109,111,110,52,0,115,97,110,100,121,98,114,111,119,110,0,115,101,97,103,114,101,101,110,0,115,101,97,103,114,101,101,110,49,0,115,101,97,103,114,101,101,110,50,0,115,101,97,103,114,101,101,110,51,0,115,101,97,103,114,101,101,110,52,0,115,101,97,115,104,101,108,108,0,115,101,97,115,104,101,108,108,49,0,115,+101,97,115,104,101,108,108,50,0,115,101,97,115,104,101,108,108,51,0,115,101,97,115,104,101,108,108,52,0,115,105,101,110,110,97,0,115,105,101,110,110,97,49,0,115,105,101,110,110,97,50,0,115,105,101,110,110,97,51,0,115,105,101,110,110,97,52,0,115,107,121,98,108,117,101,0,115,107,121,98,108,117,101,49,0,115,107,121,98,108,117,101,50,0,115,107,121,98,108,117,101,51,0,115,107,121,98,108,117,101,52,0,115,108,97,116,101,98,108,117,101,0,115,108,97,116,101,98,108,117,101,49,0,115,108,97,116,101,98,108,117,+101,50,0,115,108,97,116,101,98,108,117,101,51,0,115,108,97,116,101,98,108,117,101,52,0,115,108,97,116,101,103,114,97,121,0,115,108,97,116,101,103,114,97,121,49,0,115,108,97,116,101,103,114,97,121,50,0,115,108,97,116,101,103,114,97,121,51,0,115,108,97,116,101,103,114,97,121,52,0,115,108,97,116,101,103,114,101,121,0,115,110,111,119,0,115,110,111,119,49,0,115,110,111,119,50,0,115,110,111,119,51,0,115,110,111,119,52,0,115,112,114,105,110,103,103,114,101,101,110,0,115,112,114,105,110,103,103,114,101,101,+110,49,0,115,112,114,105,110,103,103,114,101,101,110,50,0,115,112,114,105,110,103,103,114,101,101,110,51,0,115,112,114,105,110,103,103,114,101,101,110,52,0,115,116,101,101,108,98,108,117,101,0,115,116,101,101,108,98,108,117,101,49,0,115,116,101,101,108,98,108,117,101,50,0,115,116,101,101,108,98,108,117,101,51,0,115,116,101,101,108,98,108,117,101,52,0,116,97,110,0,116,97,110,49,0,116,97,110,50,0,116,97,110,51,0,116,97,110,52,0,116,104,105,115,116,108,101,0,116,104,105,115,116,108,101,49,0,116,104,+105,115,116,108,101,50,0,116,104,105,115,116,108,101,51,0,116,104,105,115,116,108,101,52,0,116,111,109,97,116,111,0,116,111,109,97,116,111,49,0,116,111,109,97,116,111,50,0,116,111,109,97,116,111,51,0,116,111,109,97,116,111,52,0,116,117,114,113,117,111,105,115,101,0,116,117,114,113,117,111,105,115,101,49,0,116,117,114,113,117,111,105,115,101,50,0,116,117,114,113,117,111,105,115,101,51,0,116,117,114,113,117,111,105,115,101,52,0,118,105,111,108,101,116,0,118,105,111,108,101,116,114,101,100,0,118,105,+111,108,101,116,114,101,100,49,0,118,105,111,108,101,116,114,101,100,50,0,118,105,111,108,101,116,114,101,100,51,0,118,105,111,108,101,116,114,101,100,52,0,119,104,101,97,116,0,119,104,101,97,116,49,0,119,104,101,97,116,50,0,119,104,101,97,116,51,0,119,104,101,97,116,52,0,119,104,105,116,101,0,119,104,105,116,101,115,109,111,107,101,0,121,101,108,108,111,119,0,121,101,108,108,111,119,49,0,121,101,108,108,111,119,50,0,121,101,108,108,111,119,51,0,121,101,108,108,111,119,52,0,121,101,108,108,111,119,+103,114,101,101,110,0,47,37,115,47,37,115,0,105,109,97,103,101,115,99,97,108,101,0,102,97,108,115,101,0,98,108,97,99,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,100,0,65,103,110,111,100,101,105,110,102,111,95,116,0,114,111,119,103,0,99,111,108,103,0,65,103,114,97,112,104,105,110,102,111,95,116,0,45,62,0,45,45,0,60,84,65,66,76,69,62,0,+100,101,108,120,32,62,61,32,48,0,104,116,109,108,116,97,98,108,101,46,99,0,112,111,115,95,104,116,109,108,95,116,98,108,0,100,101,108,121,32,62,61,32,48,0,116,97,98,108,101,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,99,111,110,116,101,110,116,10,0,102,105,120,101,100,32,116,97,98,108,101,32,115,105,122,101,32,119,105,116,104,32,117,110,115,112,101,99,105,102,105,101,100,32,119,105,100,116,104,32,111,114,32,104,101,105,103,104,116,10,0,78,111,32,111,114,32,105,109,112,+114,111,112,101,114,32,105,109,97,103,101,32,102,105,108,101,61,34,37,115,34,10,0,99,101,108,108,32,115,105,122,101,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,99,111,110,116,101,110,116,10,0,102,105,120,101,100,32,99,101,108,108,32,115,105,122,101,32,119,105,116,104,32,117,110,115,112,101,99,105,102,105,101,100,32,119,105,100,116,104,32,111,114,32,104,101,105,103,104,116,10,0,112,101,110,99,111,108,111,114,0,99,111,108,111,114,0,65,103,101,100,103,101,105,110,102,111,95,116,0,49,0,50,+0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,49,48,0,49,49,0,49,50,0,49,51,0,49,52,0,49,53,0,49,54,0,49,55,0,49,56,0,49,57,0,50,48,0,99,112,45,62,115,114,99,0,101,109,105,116,95,104,116,109,108,95,105,109,103,0,99,112,45,62,115,114,99,91,48,93,0,100,97,115,104,101,100,0,100,111,116,116,101,100,0,116,114,97,110,115,112,97,114,101,110,116,0,95,37,100,0,102,80,81,46,99,0,80,81,99,104,101,99,107,0,72,101,97,112,32,111,118,101,114,102,108,111,119,10,0,37,37,37,37,80,97,103,101,58,32,49,32,49,10,37,37,37,37,80,+97,103,101,66,111,117,110,100,105,110,103,66,111,120,58,32,37,100,32,37,100,32,37,100,32,37,100,10,0,37,102,32,37,102,32,116,114,97,110,115,108,97,116,101,10,0,48,32,48,32,49,32,115,101,116,114,103,98,99,111,108,111,114,10,0,37,102,32,37,102,32,37,102,32,37,102,32,110,111,100,101,10,0,48,32,48,32,48,32,115,101,116,114,103,98,99,111,108,111,114,10,0,37,102,32,37,102,32,37,102,32,37,102,32,99,101,108,108,10,0,49,32,48,32,48,32,115,101,116,114,103,98,99,111,108,111,114,10,0,102,97,105,108,101,100,32,+97,116,32,110,111,100,101,32,37,100,91,48,93,10,0,110,112,45,62,99,101,108,108,115,91,48,93,0,109,97,122,101,46,99,0,99,104,107,83,103,114,97,112,104,0,102,97,105,108,101,100,32,97,116,32,110,111,100,101,32,37,100,91,49,93,10,0,110,112,45,62,99,101,108,108,115,91,49,93,0,37,33,80,83,45,65,100,111,98,101,45,50,46,48,10,47,110,111,100,101,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,100,101,102,10,32,32,47,+120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,102,105,108,108,10,125,32,100,101,102,10,47,99,101,108,108,32,123,10,32,32,47,89,32,101,120,99,104,32,100,101,102,10,32,32,47,88,32,101,120,99,104,32,100,101,102,10,32,32,47,121,32,101,120,99,104,32,+100,101,102,10,32,32,47,120,32,101,120,99,104,32,100,101,102,10,32,32,110,101,119,112,97,116,104,10,32,32,120,32,121,32,109,111,118,101,116,111,10,32,32,120,32,89,32,108,105,110,101,116,111,10,32,32,88,32,89,32,108,105,110,101,116,111,10,32,32,88,32,121,32,108,105,110,101,116,111,10,32,32,99,108,111,115,101,112,97,116,104,32,115,116,114,111,107,101,10,125,32,100,101,102,10,0,115,104,111,119,112,97,103,101,10,0,100,105,116,101,109,115,0,102,105,110,100,83,86,101,114,116,0,117,110,101,120,112,101,99,+116,101,100,32,99,97,115,101,32,105,110,32,108,111,99,97,116,101,95,101,110,100,112,111,105,110,116,10,0,48,0,116,114,97,112,101,122,111,105,100,46,99,0,108,111,99,97,116,101,95,101,110,100,112,111,105,110,116,0,97,100,100,95,115,101,103,109,101,110,116,58,32,101,114,114,111,114,10,0,110,101,119,116,114,97,112,58,32,84,114,97,112,101,122,111,105,100,45,116,97,98,108,101,32,111,118,101,114,102,108,111,119,32,37,100,10,0,110,101,119,116,114,97,112,0,110,101,119,110,111,100,101,58,32,81,117,101,114,+121,45,116,97,98,108,101,32,111,118,101,114,102,108,111,119,10,0,110,101,119,110,111,100,101,0,105,110,100,101,120,46,99,0,82,84,114,101,101,83,101,97,114,99,104,0,110,45,62,108,101,118,101,108,32,62,61,32,48,0,82,84,114,101,101,73,110,115,101,114,116,0,108,101,118,101,108,32,62,61,32,48,32,38,38,32,108,101,118,101,108,32,60,61,32,40,42,110,41,45,62,108,101,118,101,108,0,114,45,62,98,111,117,110,100,97,114,121,91,105,93,32,60,61,32,114,45,62,98,111,117,110,100,97,114,121,91,78,85,77,68,73,77,83,32,+43,32,105,93,0,114,32,38,38,32,110,32,38,38,32,110,101,119,0,82,84,114,101,101,73,110,115,101,114,116,50,0,108,101,118,101,108,32,62,61,32,48,32,38,38,32,108,101,118,101,108,32,60,61,32,110,45,62,108,101,118,101,108,0,70,65,76,83,69,0,110,111,100,101,46,99,0,78,111,100,101,67,111,118,101,114,0,114,32,38,38,32,110,0,80,105,99,107,66,114,97,110,99,104,0,65,100,100,66,114,97,110,99,104,0,105,32,60,32,78,79,68,69,67,65,82,68,0,110,101,119,0,110,32,38,38,32,105,32,62,61,32,48,32,38,38,32,105,32,60,32,+78,79,68,69,67,65,82,68,0,68,105,115,99,111,110,66,114,97,110,99,104,0,114,0,114,101,99,116,97,110,103,108,101,46,99,0,82,101,99,116,65,114,101,97,0,114,32,38,38,32,114,114,0,67,111,109,98,105,110,101,82,101,99,116,0,114,32,38,38,32,115,0,79,118,101,114,108,97,112,0,110,0,115,112,108,105,116,46,113,46,99,0,83,112,108,105,116,78,111,100,101,0,98,0,110,45,62,98,114,97,110,99,104,91,105,93,46,99,104,105,108,100,0,71,101,116,66,114,97,110,99,104,101,115,0,114,116,112,45,62,115,112,108,105,116,46,80,97,+114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,48,93,32,43,32,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,49,93,32,61,61,32,78,79,68,69,67,65,82,68,32,43,32,49,0,77,101,116,104,111,100,90,101,114,111,0,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,48,93,32,62,61,32,114,116,112,45,62,77,105,110,70,105,108,108,32,38,38,32,114,116,112,45,62,115,112,+108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,99,111,117,110,116,91,49,93,32,62,61,32,114,116,112,45,62,77,105,110,70,105,108,108,0,113,0,76,111,97,100,78,111,100,101,115,0,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,112,97,114,116,105,116,105,111,110,91,105,93,32,61,61,32,48,32,124,124,32,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,112,97,114,116,105,116,105,111,110,91,105,93,32,61,61,+32,49,0,110,45,62,99,111,117,110,116,32,43,32,40,42,110,110,41,45,62,99,111,117,110,116,32,61,61,32,78,79,68,69,67,65,82,68,32,43,32,49,0,33,114,116,112,45,62,115,112,108,105,116,46,80,97,114,116,105,116,105,111,110,115,91,48,93,46,116,97,107,101,110,91,105,93,0,67,108,97,115,115,105,102,121,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,2,2,2,2,2,2,16,12,89,1,0,31,80,8,3,7,18,19,20,87,22,23,8,11,105,12,31,10,5,12,14,41,+17,43,15,45,16,47,48,32,50,6,52,53,27,28,29,30,11,12,33,34,35,36,37,38,39,40,12,24,25,23,4,10,27,28,26,32,42,10,33,34,35,36,37,38,39,40,12,10,14,83,10,44,88,49,88,88,88,88,88,88,12,27,28,15,46,88,51,33,34,35,36,37,38,39,40,27,28,255,83,255,255,33,34,35,36,37,38,39,40,12,255,255,5,255,255,255,9,20,255,255,255,255,255,12,27,28,255,16,21,22,33,34,35,36,37,38,39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,12,255,18,19,20,17,22,23,255,255,255,255,255,255,12,27,28,255,255,255,18,33,34,35,36,37,38,+39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,12,255,255,255,255,255,255,19,255,255,255,255,255,255,12,27,28,255,255,255,255,33,34,35,36,37,38,39,40,27,28,255,255,255,255,33,34,35,36,37,38,39,40,18,19,20,21,22,23,24,25,255,255,255,255,255,255,255,255,255,35,36,37,38,39,27,18,19,20,22,23,34,54,104,1,31,56,86,33,32,2,27,27,27,94,27,27,55,57,112,54,210,194,79,4,60,34,71,34,63,34,68,34,34,88,34,101,34,34,5,6,95,96,57,4,7,8,9,10,11,12,13,14,4,102,103,93,106,109,5,6,111,88,59,113,7,8,9,10,11,12,13,+14,4,114,60,91,115,62,97,70,27,18,19,20,22,23,4,5,6,63,65,98,73,7,8,9,10,11,12,13,14,5,6,0,92,0,0,7,8,9,10,11,12,13,14,4,0,0,79,0,0,0,83,66,0,0,0,0,0,4,5,6,0,68,84,85,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,4,0,42,44,46,71,49,51,0,0,0,0,0,0,4,5,6,0,0,0,74,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,4,0,0,0,0,0,0,76,0,0,0,0,0,0,4,5,6,0,0,0,0,7,8,9,10,11,12,13,14,5,6,0,0,0,0,7,8,9,10,11,12,13,14,41,43,45,47,48,50,52,53,0,0,0,0,0,0,0,0,0,41,43,45,48,50,0,4,47,0,36,35,0,18,20,+22,26,28,30,32,24,0,5,7,47,47,47,0,47,47,0,0,9,8,40,0,0,1,34,2,6,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,37,3,38,19,10,41,21,11,42,23,14,45,25,17,27,12,43,29,13,44,31,15,33,16,0,51,0,48,0,47,67,0,49,0,47,0,53,46,39,66,50,65,0,58,56,0,60,52,69,0,54,0,64,0,0,63,0,68,55,59,57,61,0,2,3,3,1,1,2,1,1,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,0,6,1,3,3,3,3,3,1,0,1,2,3,0,4,1,2,3,0,4,0,4,0,4,0,3,2,1,2,1,2,1,83,121,110,116,97,120,32,101,114,114,111,114,58,32,110,111,110,45,115,112,97,99,101,32,+115,116,114,105,110,103,32,117,115,101,100,32,98,101,102,111,114,101,32,60,84,65,66,76,69,62,0,83,121,110,116,97,120,32,101,114,114,111,114,58,32,110,111,110,45,115,112,97,99,101,32,115,116,114,105,110,103,32,117,115,101,100,32,97,102,116,101,114,32,60,47,84,65,66,76,69,62,0,0,41,42,42,42,43,44,44,45,45,45,45,45,45,45,45,45,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,62,63,63,65,64,66,66,66,66,66,66,67,67,68,68,68,70,69,71,71,71,73,72,74,72,75,72,76,72,77,77,78,78,79,79,255,3,15,16,17,35,+58,36,61,37,64,21,67,38,69,39,72,24,75,25,77,26,40,28,78,29,30,80,81,82,89,90,108,107,110,99,100,87,105,115,121,110,116,97,120,32,101,114,114,111,114,0,109,101,109,111,114,121,32,101,120,104,97,117,115,116,101,100,0,0,0,37,115,32,105,110,32,108,105,110,101,32,37,100,32,10,0,78,111,116,32,98,117,105,108,116,32,119,105,116,104,32,108,105,98,101,120,112,97,116,46,32,84,97,98,108,101,32,102,111,114,109,97,116,116,105,110,103,32,105,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,46,10,0,114,111,+117,116,101,46,99,0,108,105,98,112,97,116,104,47,37,115,58,37,100,58,32,37,115,10,0,115,104,111,114,116,101,115,116,46,99,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,112,110,108,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,112,110,108,112,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,112,110,108,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,112,110,108,112,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,100,113,46,112,110,108,115,0,99,97,110,+110,111,116,32,114,101,97,108,108,111,99,32,100,113,46,112,110,108,115,0,116,114,105,97,110,103,117,108,97,116,105,111,110,32,102,97,105,108,101,100,0,115,111,117,114,99,101,32,112,111,105,110,116,32,110,111,116,32,105,110,32,97,110,121,32,116,114,105,97,110,103,108,101,0,100,101,115,116,105,110,97,116,105,111,110,32,112,111,105,110,116,32,110,111,116,32,105,110,32,97,110,121,32,116,114,105,97,110,103,108,101,0,99,97,110,110,111,116,32,102,105,110,100,32,116,114,105,97,110,103,108,101,32,112,97,116,+104,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,111,112,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,111,112,115,0,99,97,110,110,111,116,32,109,97,108,108,111,99,32,116,114,105,115,0,99,97,110,110,111,116,32,114,101,97,108,108,111,99,32,116,114,105,115,0,18,17,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,17,34,35,36,17,37,38,39,40,41,42,43,44,17,45,46,47,16,16,48,16,16,16,16,16,16,16,49,50,51,16,52,53,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,+17,17,54,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,55,17,17,17,17,56,17,57,58,59,60,61,62,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,63,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,+16,16,16,16,16,16,16,17,64,65,17,66,67,68,69,70,71,72,73,16,16,16,74,75,76,77,78,16,16,16,79,80,16,16,16,16,81,16,16,16,16,16,16,16,16,16,17,17,17,82,83,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,84,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,85,16,16,16,16,86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,+16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,87,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,88,89,90,91,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,92,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,+0,0,0,0,0,0,0,0,254,255,255,7,254,255,255,7,0,0,0,0,0,4,32,4,255,255,127,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,195,255,3,0,31,80,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,223,60,64,215,255,255,251,255,255,255,255,255,255,255,255,255,191,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,254,255,255,255,127,2,254,255,255,255,255,0,+0,0,0,0,255,191,182,0,255,255,255,7,7,0,0,0,255,7,255,255,255,255,255,255,255,254,255,195,255,255,255,255,255,255,255,255,255,255,255,255,239,31,254,225,255,159,0,0,255,255,255,255,255,255,0,224,255,255,255,255,255,255,255,255,255,255,255,255,3,0,255,255,255,255,255,7,48,4,255,255,255,252,255,31,0,0,255,255,255,1,0,0,0,0,0,0,0,0,253,31,0,0,0,0,0,0,240,3,255,127,255,255,255,255,255,255,255,239,255,223,225,255,207,255,254,254,238,159,249,255,255,253,197,227,159,89,128,176,207,255,3,0,238,135,249,255,+255,253,109,195,135,25,2,94,192,255,63,0,238,191,251,255,255,253,237,227,191,27,1,0,207,255,0,0,238,159,249,255,255,253,237,227,159,25,192,176,207,255,2,0,236,199,61,214,24,199,255,195,199,29,129,0,192,255,0,0,238,223,253,255,255,253,239,227,223,29,96,3,207,255,0,0,236,223,253,255,255,253,239,227,223,29,96,64,207,255,6,0,236,223,253,255,255,255,255,231,223,93,128,0,207,255,0,252,236,255,127,252,255,255,251,47,127,128,95,255,0,0,12,0,254,255,255,255,255,127,255,7,63,32,255,3,0,0,0,0,150,37,240,254,+174,236,255,59,95,32,255,243,0,0,0,0,1,0,0,0,255,3,0,0,255,254,255,255,255,31,254,255,3,255,255,254,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,249,255,3,255,255,231,193,255,255,127,64,255,51,255,255,255,255,191,32,255,255,255,255,255,247,255,255,255,255,255,255,255,255,255,61,127,61,255,255,255,255,255,61,255,255,255,255,61,127,61,255,127,255,255,255,255,255,255,255,61,255,255,255,255,255,255,255,255,135,0,0,0,0,255,255,0,0,255,255,255,255,255,255,255,255,255,255,31,0,254,255,255,+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,159,255,255,254,255,255,7,255,255,255,255,255,255,255,255,255,199,1,0,255,223,15,0,255,255,15,0,255,255,15,0,255,223,13,0,255,255,255,255,255,255,207,255,255,1,128,16,255,3,0,0,0,0,255,3,255,255,255,255,255,255,255,255,255,255,255,0,255,255,255,255,255,7,255,255,255,255,255,255,255,255,63,0,255,255,255,31,255,15,255,1,192,255,255,255,+255,63,31,0,255,255,255,255,255,15,255,255,255,3,255,3,0,0,0,0,255,255,255,15,255,255,255,255,255,255,255,127,254,255,31,0,255,3,255,3,128,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,239,255,239,15,255,3,0,0,0,0,255,255,255,255,255,243,255,255,255,255,255,255,191,255,3,0,255,255,255,255,255,255,63,0,255,227,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,222,111,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,255,255,63,63,255,255,+255,255,63,63,255,170,255,255,255,63,255,255,255,255,255,255,223,95,220,31,207,15,255,31,220,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,128,0,0,255,31,0,0,0,0,0,0,0,0,0,0,0,0,132,252,47,62,80,189,255,243,224,67,0,0,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,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,255,255,255,255,255,255,3,0,0,255,255,255,255,255,127,255,255,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,120,12,0,255,255,255,255,191,32,255,255,255,255,255,255,+255,128,0,0,255,255,127,0,127,127,127,127,127,127,127,127,255,255,255,255,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,254,3,62,31,254,255,255,255,255,255,255,255,255,255,127,224,254,255,255,255,255,255,255,255,255,255,255,247,224,255,255,255,255,63,254,255,255,255,255,255,255,255,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,255,255,255,255,255,63,255,31,255,255,255,15,0,0,255,255,255,255,255,127,240,143,255,255,255,128,255,255,255,255,255,255,255,255,255,255,0,0,0,0,128,255,252,255,255,255,255,255,255,255,255,255,255,255,255,121,15,0,255,7,0,0,0,0,0,0,0,0,0,255,187,247,255,255,255,0,0,0,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,+15,0,255,3,0,0,252,8,255,255,255,255,255,7,255,255,255,255,7,0,255,255,255,31,255,255,255,255,255,255,247,255,0,128,255,3,0,0,0,0,255,255,255,255,255,255,127,0,255,63,255,3,255,255,127,4,255,255,255,255,255,255,255,127,5,0,0,56,255,255,60,0,126,126,126,0,127,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,7,255,3,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,127,248,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,255,+63,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,0,127,0,248,224,255,253,127,95,219,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,248,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,255,255,255,255,255,255,255,255,252,255,255,255,255,255,255,0,0,0,0,0,255,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,31,0,0,255,3,254,255,255,7,254,255,255,7,192,255,255,255,255,255,255,255,255,255,255,127,252,252,252,28,0,0,0,0,+255,239,255,255,127,255,255,183,255,63,255,63,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,255,255,255,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,31,255,255,255,255,255,255,1,0,0,0,0,0,255,255,255,127,0,0,255,255,255,7,0,0,0,0,0,0,255,255,255,63,255,255,255,255,15,255,62],"i8",4,n.q+156658);+B([255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,3,0,0,0,0,0,0,0,0,0,0,63,253,255,255,255,255,191,145,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,63,0,255,255,255,3,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,192,0,0,0,0,0,0,0,0,111,240,239,254,255,255,15,0,0,0,0,0,255,255,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,255,63,0,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,1,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,192,255,0,0,252,255,255,255,255,255,255,1,0,0,255,255,255,1,255,3,255,255,255,255,255,255,199,255,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,30,0,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,63,0,255,3,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,+255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,31,0,255,255,255,255,255,127,0,0,248,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,255,255,255,223,100,222,255,235,239,255,255,255,255,255,255,255,191,231,223,223,255,255,255,123,95,252,253,255,255,255,255,255,+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,255,255,255,253,255,255,247,255,255,255,247,255,255,223,255,255,255,223,255,255,127,255,255,255,127,255,255,255,253,255,255,255,253,255,255,247,207,255,255,255,255,255,255,239,255,255,255,150,254,247,10,132,234,150,170,150,247,247,94,255,251,255,15,238,251,255,15,0,0,0,0,0,0,0,0,97,108,110,117,109,0,97,108,112,104,97,0,98,108,97,110,107,0,99,110,116,114,+108,0,100,105,103,105,116,0,103,114,97,112,104,0,108,111,119,101,114,0,112,114,105,110,116,0,112,117,110,99,116,0,115,112,97,99,101,0,117,112,112,101,114,0,120,100,105,103,105,116,0,18,16,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,16,16,34,35,16,36,37,38,39,40,41,42,43,16,44,45,46,17,47,48,17,17,49,17,17,17,50,51,52,53,54,55,56,57,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,58,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,+16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,59,16,60,61,62,63,64,65,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,66,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,67,16,16,68,16,69,70,71,16,72,16,73,16,16,16,16,74,75,76,77,16,16,78,16,79,80,+16,16,16,16,81,16,16,16,16,16,16,16,16,16,16,16,16,16,82,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,83,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,+16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,84,85,86,87,16,16,88,89,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,90,16,91,92,93,94,95,96,97,98,16,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,254,255,0,252,1,0,0,248,1,0,0,120,0,0,0,0,255,251,223,251,0,0,128,0,0,0,128,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,252,255,224,175,255,255,255,255,255,255,255,255,255,255,223,255,255,255,255,255,32,64,176,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,134,254,255,255,255,0,64,73,0,0,0,0,0,24,0,223,255,0,200,0,0,0,0,0,0,0,1,0,60,0,0,0,0,0,0,0,0,0,0,0,0,16,224,1,30,0,96,255,191,0,0,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,207,3,0,0,0,3,0,32,255,127,0,0,0,78,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,0,0,16,0,32,30,0,48,0,1,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,252,15,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,3,0,0,0,0,0,0,0,0,16,0,32,0,0,0,0,253,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,255,7,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,255,0,0,0,0,0,0,0,16,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,63,2,0,0,0,0,0,0,0,0,0,4,0,0,0,0,16,0,0,0,0,0,0,128,0,128,192,223,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,254,255,255,255,0,252,255,255,0,0,0,0,0,0,0,0,252,+0,0,0,0,0,0,192,255,223,255,7,0,0,0,0,0,0,0,0,0,0,128,6,0,252,0,0,24,62,0,0,128,191,0,204,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,96,255,255,255,31,0,0,255,3,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,1,0,0,24,0,0,0,0,0,0,0,0,0,56,0,0,0,0,16,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,254,127,47,0,0,255,3,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,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,49,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,196,255,255,255,255,0,0,0,192,0,0,0,0,0,0,0,0,1,0,224,159,0,0,0,0,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,0,252,255,255,255,31,0,0,0,0,0,12,0,0,0,0,0,0,64,0,12,240,0,0,0,0,0,0,192,248,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,255,0,255,255,255,33,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,127,0,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,3,224,0,224,0,224,0,96,128,248,255,255,255,252,255,255,255,255,255,127,31,252,241,127,255,127,0,0,255,255,+255,3,0,0,255,255,255,255,1,0,123,3,208,193,175,66,0,12,31,188,255,255,0,0,0,0,0,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,127,0,0,0,255,7,0,0,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,252,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,+255,255,255,255,255,255,255,31,255,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,135,3,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,127,255,15,0,0,0,0,0,0,0,0,255,255,255,251,255,255,255,255,255,255,255,255,255,255,15,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,255,15,30,255,255,255,1,252,193,224,0,0,0,0,0,0,0,0,0,0,0,30,1,0,0,+0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0,255,255,255,255,15,0,0,0,255,255,255,127,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,127,0,0,0,0,0,0,192,0,224,0,0,0,0,0,0,0,0,0,0,0,128,15,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,255,127,0,3,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,68,8,0,0,0,15,255,3,0,0,0,0,0,0,240,0,0,0,0,0,0,0,0,0,16,192,0,0,255,255,3,7,0,0,0,0,0,248,0,0,0,0,8,128,0,0,0,0,0,0,0,0,0,0,8,0,255,63,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,128,11,0,0,0,0,0,0,0,128,2,0,0,192,0,0,67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252,255,3,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,255,255,255,3,127,0,255,255,255,255,247,255,127,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,254,255,0,252,1,0,0,248,1,0,0,248,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,127,0,48,135,255,255,255,255,255,143,255,0,0,0,0,0,0,224,255,255,7,255,15,0,0,0,0,0,0,255,255,255,255,255,63,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,143,0,0,0,128,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,255,0,255,1,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,0,0,0,255,0,0,0,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,255,255,255,127,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,63,252,255,63,0,0,0,3,0,0,0,0,0,0,254,3,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225,1,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,255,255,255,255,127,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,63,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,127,0,255,255,3,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,8,0,0,0,8,0,0,32,0,0,0,32,0,0,128,0,0,0,128,0,0,0,2,0,0,0,2,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,255,255,255,255,255,15,255,255,255,255,255,255,255,255,255,255,255,255,15,0,255,127,254,127,254,255,254,255,0,0,0,0,255,7,255,255,255,127,255,255,255,255,255,255,255,15,255,255,255,255,255,7,0,0,0,0,0,0,0,0,192,255,255,255,7,0,255,255,255,255,255,7,255,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,+0,0,0,0,0,255,255,255,255,1,0,191,255,255,255,255,255,255,255,255,31,255,255,15,0,255,255,255,255,223,7,0,0,255,255,1,0,255,255,255,255,255,255,255,127,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,30,255,255,255,255,255,255,255,63,15,0,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,255,255,255,255,255,255,255,255,225,255,0,0,0,0,0,0,255,255,255,255,255,255,255,255,63,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,15,0,0,0,+0,0,0,0,0,0,0,0,0,0,0,0,0,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,105,110,102,105,110,105,116,121,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,4,7,3,6,5,0,47,112,114,111,99,47,115,101,108,102,47,102,100,47,0,67,46,85,84,70,45,56,0,114,119,97,0,119,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,116,+109,112,0,47,116,109,112,47,116,37,120,45,37,120],"i8",4,n.q+166901);+B([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,+48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,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,46,0,9,0,10,0,13,0,12,0,7,0,27,0,91,91,58,97,108,110,117,109,58,93,95,93,0,91,94,91,58,97,108,110,117,109,58,93,95,93,0,91,91,58,115,112,97,99,101,58,93,93,0,91,94,91,58,115,112,97,99,101,58,93,93,0,91,91,58,100,105,103,105,116,58,93,93,0,91,94,91,58,100,105,103,105,116,58,93,93,0],"i8",4,n.q++175088);var gb=n.na(B(12,"i8",2),8);assert(0==gb%8);e._i64Subtract=hb;var ib=ya;e._i64Add=jb;+var I={J:1,H:2,$c:3,Xb:4,Y:5,Da:6,qb:7,uc:8,S:9,Eb:10,za:11,ld:11,Ba:12,R:13,Qb:14,Gc:15,ka:16,Aa:17,md:18,Z:19,ma:20,M:21,p:22,pc:23,Qa:24,T:25,hd:26,Rb:27,Cc:28,$:29,Xc:30,ic:31,Qc:32,Nb:33,Uc:34,yc:42,Ub:43,Fb:44,$b:45,ac:46,bc:47,hc:48,jd:49,sc:50,Zb:51,Kb:35,vc:37,wb:52,zb:53,nd:54,qc:55,Ab:56,Bb:57,Lb:35,Cb:59,Ec:60,tc:61,dd:62,Dc:63,zc:64,Ac:65,Wc:66,wc:67,tb:68,ad:69,Gb:70,Rc:71,kc:72,Ob:73,yb:74,Lc:76,xb:77,Vc:78,cc:79,dc:80,gc:81,fc:82,ec:83,Fc:38,Ca:39,lc:36,la:40,Mc:95,Pc:96,Jb:104,rc:105,+ub:97,Tc:91,Jc:88,Bc:92,Yc:108,Ib:111,rb:98,Hb:103,oc:101,mc:100,ed:110,Sb:112,Tb:113,Wb:115,vb:114,Mb:89,jc:90,Sc:93,Zc:94,sb:99,nc:102,Yb:106,Hc:107,gd:109,kd:87,Pb:122,bd:116,Kc:95,xc:123,Vb:84,Nc:75,Db:125,Ic:131,Oc:130,cd:86},kb={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",+13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",+35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",+54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",+75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",+92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",+109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function lb(a){e.___errno_location&&(z[e.___errno_location()>>2]=a);return a}+function mb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function nb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=mb(a.split("/").filter(function(a){return!!a}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}+function ob(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function pb(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}function qb(){var a=Array.prototype.slice.call(arguments,0);return nb(a.join("/"))}function rb(a,b){return nb(a+"/"+b)}+function sb(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:"/";if("string"!==typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=mb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var tb=[];function ub(a,b){tb[a]={input:[],output:[],P:b};vb(a,wb)}+var wb={open:function(a){var b=tb[a.g.rdev];if(!b)throw new J(I.Z);a.tty=b;a.seekable=!1},close:function(a){a.tty.P.flush(a.tty)},flush:function(a){a.tty.P.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.P.Na)throw new J(I.Da);for(var f=0,g=0;g<d;g++){var k;try{k=a.tty.P.Na(a.tty)}catch(h){throw new J(I.Y);}if(void 0===k&&0===f)throw new J(I.za);if(null===k||void 0===k)break;f++;b[c+g]=k}f&&(a.g.timestamp=Date.now());return f},write:function(a,b,c,d){if(!a.tty||!a.tty.P.ta)throw new J(I.Da);+for(var f=0;f<d;f++)try{a.tty.P.ta(a.tty,b[c+f])}catch(g){throw new J(I.Y);}d&&(a.g.timestamp=Date.now());return f}},xb={Na:function(a){if(!a.input.length){var b=null;if(da){var c=new Buffer(256),d=0,f=process.stdin.fd,g=!1;try{f=fs.openSync("/dev/stdin","r"),g=!0}catch(k){}d=fs.readSync(f,c,0,256,null);g&&fs.closeSync(f);0<d?b=c.slice(0,d).toString("utf-8"):b=null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&+(b=readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=Xa(b,!0)}return a.input.shift()},ta:function(a,b){null===b||10===b?(e.print(Ca(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(e.print(Ca(a.output,0)),a.output=[])}},yb={ta:function(a,b){null===b||10===b?(e.printErr(Ca(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(e.printErr(Ca(a.output,0)),a.output=[])}},K={G:null,A:function(){return K.createNode(null,+"/",16895,0)},createNode:function(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new J(I.J);K.G||(K.G={dir:{g:{D:K.k.D,F:K.k.F,lookup:K.k.lookup,U:K.k.U,rename:K.k.rename,unlink:K.k.unlink,rmdir:K.k.rmdir,readdir:K.k.readdir,symlink:K.k.symlink},stream:{I:K.n.I}},file:{g:{D:K.k.D,F:K.k.F},stream:{I:K.n.I,read:K.n.read,write:K.n.write,Ea:K.n.Ea,ga:K.n.ga,ha:K.n.ha}},link:{g:{D:K.k.D,F:K.k.F,readlink:K.k.readlink},stream:{}},Ga:{g:{D:K.k.D,F:K.k.F},stream:zb}});c=Ab(a,b,c,d);L(c.mode)?(c.k=K.G.dir.g,+c.n=K.G.dir.stream,c.e={}):32768===(c.mode&61440)?(c.k=K.G.file.g,c.n=K.G.file.stream,c.o=0,c.e=null):40960===(c.mode&61440)?(c.k=K.G.link.g,c.n=K.G.link.stream):8192===(c.mode&61440)&&(c.k=K.G.Ga.g,c.n=K.G.Ga.stream);c.timestamp=Date.now();a&&(a.e[b]=c);return c},Xa:function(a){if(a.e&&a.e.subarray){for(var b=[],c=0;c<a.o;++c)b.push(a.e[c]);return b}return a.e},zd:function(a){return a.e?a.e.subarray?a.e.subarray(0,a.o):new Uint8Array(a.e):new Uint8Array},Ia:function(a,b){a.e&&a.e.subarray&&b>a.e.length&&+(a.e=K.Xa(a),a.o=a.e.length);if(!a.e||a.e.subarray){var c=a.e?a.e.buffer.byteLength:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)|0),0!=c&&(b=Math.max(b,256)),c=a.e,a.e=new Uint8Array(b),0<a.o&&a.e.set(c.subarray(0,a.o),0))}else for(!a.e&&0<b&&(a.e=[]);a.e.length<b;)a.e.push(0)},jb:function(a,b){if(a.o!=b)if(0==b)a.e=null,a.o=0;else{if(!a.e||a.e.subarray){var c=a.e;a.e=new Uint8Array(new ArrayBuffer(b));c&&a.e.set(c.subarray(0,Math.min(b,a.o)))}else if(a.e||(a.e=[]),a.e.length>b)a.e.length=b;else for(;a.e.length<+b;)a.e.push(0);a.o=b}},k:{D:function(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;L(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.o:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.timestamp);b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.L=4096;b.blocks=Math.ceil(b.size/b.L);return b},F:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==+b.size&&K.jb(a,b.size)},lookup:function(){throw Bb[I.H];},U:function(a,b,c,d){return K.createNode(a,b,c,d)},rename:function(a,b,c){if(L(a.mode)){var d;try{d=Cb(b,c)}catch(f){}if(d)for(var g in d.e)throw new J(I.Ca);}delete a.parent.e[a.name];a.name=c;b.e[c]=a;a.parent=b},unlink:function(a,b){delete a.e[b]},rmdir:function(a,b){var c=Cb(a,b),d;for(d in c.e)throw new J(I.Ca);delete a.e[b]},readdir:function(a){var b=[".",".."],c;for(c in a.e)a.e.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,+b,c){a=K.createNode(a,b,41471,0);a.link=c;return a},readlink:function(a){if(40960!==(a.mode&61440))throw new J(I.p);return a.link}},n:{read:function(a,b,c,d,f){var g=a.g.e;if(f>=a.g.o)return 0;a=Math.min(a.g.o-f,d);assert(0<=a);if(8<a&&g.subarray)b.set(g.subarray(f,f+a),c);else for(d=0;d<a;d++)b[c+d]=g[f+d];return a},write:function(a,b,c,d,f,g){if(!d)return 0;a=a.g;a.timestamp=Date.now();if(b.subarray&&(!a.e||a.e.subarray)){if(g)return a.e=b.subarray(c,c+d),a.o=d;if(0===a.o&&0===f)return a.e=new Uint8Array(b.subarray(c,+c+d)),a.o=d;if(f+d<=a.o)return a.e.set(b.subarray(c,c+d),f),d}K.Ia(a,f+d);if(a.e.subarray&&b.subarray)a.e.set(b.subarray(c,c+d),f);else for(g=0;g<d;g++)a.e[f+g]=b[c+g];a.o=Math.max(a.o,f+d);return d},I:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.g.mode&61440)&&(b+=a.g.o);if(0>b)throw new J(I.p);return b},Ea:function(a,b,c){K.Ia(a.g,b+c);a.g.o=Math.max(a.g.o,b+c)},ga:function(a,b,c,d,f,g,k){if(32768!==(a.g.mode&61440))throw new J(I.Z);c=a.g.e;if(k&2||c.buffer!==b&&c.buffer!==b.buffer){if(0<+f||f+d<a.g.o)c.subarray?c=c.subarray(f,f+d):c=Array.prototype.slice.call(c,f,f+d);a=!0;d=xa(d);if(!d)throw new J(I.Ba);b.set(c,d)}else a=!1,d=c.byteOffset;return{gb:d,oa:a}},ha:function(a,b,c,d,f){if(32768!==(a.g.mode&61440))throw new J(I.Z);if(f&2)return 0;K.n.write(a,b,0,d,c,!1);return 0}}},M={fa:!1,nb:function(){M.fa=!!process.platform.match(/^win/)},A:function(a){assert(da);return M.createNode(null,"/",M.La(a.sa.root),0)},createNode:function(a,b,c){if(!L(c)&&32768!==(c&61440)&&40960!==(c&61440))throw new J(I.p);+a=Ab(a,b,c);a.k=M.k;a.n=M.n;return a},La:function(a){var b;try{b=fs.lstatSync(a),M.fa&&(b.mode=b.mode|(b.mode&146)>>1)}catch(c){if(!c.code)throw c;throw new J(I[c.code]);}return b.mode},B:function(a){for(var b=[];a.parent!==a;)b.push(a.name),a=a.parent;b.push(a.A.sa.root);b.reverse();return qb.apply(null,b)},Ja:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",+4096:"rs",4098:"rs+"},Ua:function(a){a&=-32769;if(a in M.Ja)return M.Ja[a];throw new J(I.p);},k:{D:function(a){a=M.B(a);var b;try{b=fs.lstatSync(a)}catch(c){if(!c.code)throw c;throw new J(I[c.code]);}M.fa&&!b.L&&(b.L=4096);M.fa&&!b.blocks&&(b.blocks=(b.size+b.L-1)/b.L|0);return{dev:b.dev,ino:b.ino,mode:b.mode,nlink:b.nlink,uid:b.uid,gid:b.gid,rdev:b.rdev,size:b.size,atime:b.atime,mtime:b.mtime,ctime:b.ctime,L:b.L,blocks:b.blocks}},F:function(a,b){var c=M.B(a);try{void 0!==b.mode&&(fs.chmodSync(c,+b.mode),a.mode=b.mode),void 0!==b.size&&fs.truncateSync(c,b.size)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);}},lookup:function(a,b){var c=rb(M.B(a),b),c=M.La(c);return M.createNode(a,b,c)},U:function(a,b,c,d){a=M.createNode(a,b,c,d);b=M.B(a);try{L(a.mode)?fs.mkdirSync(b,a.mode):fs.writeFileSync(b,"",{mode:a.mode})}catch(f){if(!f.code)throw f;throw new J(I[f.code]);}return a},rename:function(a,b,c){a=M.B(a);b=rb(M.B(b),c);try{fs.renameSync(a,b)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);+}},unlink:function(a,b){var c=rb(M.B(a),b);try{fs.unlinkSync(c)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);}},rmdir:function(a,b){var c=rb(M.B(a),b);try{fs.rmdirSync(c)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);}},readdir:function(a){a=M.B(a);try{return fs.readdirSync(a)}catch(b){if(!b.code)throw b;throw new J(I[b.code]);}},symlink:function(a,b,c){a=rb(M.B(a),b);try{fs.symlinkSync(c,a)}catch(d){if(!d.code)throw d;throw new J(I[d.code]);}},readlink:function(a){var b=M.B(a);try{return b=+fs.readlinkSync(b),b=Db.relative(Db.resolve(a.A.sa.root),b)}catch(c){if(!c.code)throw c;throw new J(I[c.code]);}}},n:{open:function(a){var b=M.B(a.g);try{32768===(a.g.mode&61440)&&(a.W=fs.openSync(b,M.Ua(a.flags)))}catch(c){if(!c.code)throw c;throw new J(I[c.code]);}},close:function(a){try{32768===(a.g.mode&61440)&&a.W&&fs.closeSync(a.W)}catch(b){if(!b.code)throw b;throw new J(I[b.code]);}},read:function(a,b,c,d,f){if(0===d)return 0;var g=new Buffer(d),k;try{k=fs.readSync(a.W,g,0,d,f)}catch(h){throw new J(I[h.code]);+}if(0<k)for(a=0;a<k;a++)b[c+a]=g[a];return k},write:function(a,b,c,d,f){b=new Buffer(b.subarray(c,c+d));var g;try{g=fs.writeSync(a.W,b,0,d,f)}catch(k){throw new J(I[k.code]);}return g},I:function(a,b,c){if(1===c)b+=a.position;else if(2===c&&32768===(a.g.mode&61440))try{b+=fs.fstatSync(a.W).size}catch(d){throw new J(I[d.code]);}if(0>b)throw new J(I.p);return b}}};B(1,"i32*",2);B(1,"i32*",2);B(1,"i32*",2);var Eb=null,Gb=[null],N=[],Hb=1,O=null,Ib=!0,P={},J=null,Bb={};+function Q(a,b){a=sb("/",a);b=b||{};if(!a)return{path:"",g:null};var c={Ka:!0,ua:0},d;for(d in c)void 0===b[d]&&(b[d]=c[d]);if(8<b.ua)throw new J(I.la);var c=mb(a.split("/").filter(function(a){return!!a}),!1),f=Eb;d="/";for(var g=0;g<c.length;g++){var k=g===c.length-1;if(k&&b.parent)break;f=Cb(f,c[g]);d=rb(d,c[g]);f.V&&(!k||k&&b.Ka)&&(f=f.V.root);if(!k||b.da)for(k=0;40960===(f.mode&61440);)if(f=Jb(d),d=sb(ob(d),f),f=Q(d,{ua:b.ua}).g,40<k++)throw new J(I.la);}return{path:d,g:f}}+function Kb(a){for(var b;;){if(a===a.parent)return a=a.A.Oa,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}}function Lb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%O.length}function Mb(a){var b=Lb(a.parent.id,a.name);a.O=O[b];O[b]=a}function Cb(a,b){var c;if(c=(c=Nb(a,"x"))?c:a.k.lookup?0:I.R)throw new J(c,a);for(c=O[Lb(a.id,b)];c;c=c.O){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.k.lookup(a,b)}+function Ab(a,b,c,d){Ob||(Ob=function(a,b,c,d){a||(a=this);this.parent=a;this.A=a.A;this.V=null;this.id=Hb++;this.name=b;this.mode=c;this.k={};this.n={};this.rdev=d},Ob.prototype={},Object.defineProperties(Ob.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Fd:{get:function(){return L(this.mode)}},Ed:{get:function(){return 8192===(this.mode&+61440)}}}));a=new Ob(a,b,c,d);Mb(a);return a}function L(a){return 16384===(a&61440)}var Pb={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218};function Nb(a,b){if(Ib)return 0;if(-1===b.indexOf("r")||a.mode&292){if(-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73))return I.R}else return I.R;return 0}function Qb(a,b){try{return Cb(a,b),I.Aa}catch(c){}return Nb(a,"wx")}+function Rb(a){var b;b=4096;for(a=a||0;a<=b;a++)if(!N[a])return a;throw new J(I.Qa);}function Sb(a,b){Tb||(Tb=function(){},Tb.prototype={},Object.defineProperties(Tb.prototype,{object:{get:function(){return this.g},set:function(a){this.g=a}},Gd:{get:function(){return 1!==(this.flags&2097155)}},Hd:{get:function(){return 0!==(this.flags&2097155)}},Dd:{get:function(){return this.flags&1024}}}));var c=new Tb,d;for(d in a)c[d]=a[d];a=c;c=Rb(b);a.fd=c;return N[c]=a}+var zb={open:function(a){a.n=Gb[a.g.rdev].n;a.n.open&&a.n.open(a)},I:function(){throw new J(I.$);}};function vb(a,b){Gb[a]={n:b}}function Ub(a,b){var c="/"===b,d=!b,f;if(c&&Eb)throw new J(I.ka);if(!c&&!d){f=Q(b,{Ka:!1});b=f.path;f=f.g;if(f.V)throw new J(I.ka);if(!L(f.mode))throw new J(I.ma);}var d={type:a,sa:{},Oa:b,fb:[]},g=a.A(d);g.A=d;d.root=g;c?Eb=g:f&&(f.V=d,f.A&&f.A.fb.push(d))}+function Vb(a,b,c){var d=Q(a,{parent:!0}).g;a=pb(a);if(!a||"."===a||".."===a)throw new J(I.p);var f=Qb(d,a);if(f)throw new J(f);if(!d.k.U)throw new J(I.J);return d.k.U(d,a,b,c)}function R(a){var b;b=(void 0!==b?b:511)&1023;b|=16384;Vb(a,b,0)}function Wb(a,b,c){"undefined"===typeof c&&(c=b,b=438);Vb(a,b|8192,c)}function Xb(a,b){if(!sb(a))throw new J(I.H);var c=Q(b,{parent:!0}).g;if(!c)throw new J(I.H);var d=pb(b),f=Qb(c,d);if(f)throw new J(f);if(!c.k.symlink)throw new J(I.J);c.k.symlink(c,d,a)}+function Jb(a){a=Q(a).g;if(!a)throw new J(I.H);if(!a.k.readlink)throw new J(I.p);return sb(Kb(a.parent),a.k.readlink(a))}+function Yb(a,b,c,d){if(""===a)throw new J(I.H);if("string"===typeof b){var f=Pb[b];if("undefined"===typeof f)throw Error("Unknown file open mode: "+b);b=f}c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;var g;if("object"===typeof a)g=a;else{a=nb(a);try{g=Q(a,{da:!(b&131072)}).g}catch(k){}}f=!1;if(b&64)if(g){if(b&128)throw new J(I.Aa);}else g=Vb(a,c,0),f=!0;if(!g)throw new J(I.H);8192===(g.mode&61440)&&(b&=-513);if(b&65536&&!L(g.mode))throw new J(I.ma);if(!f&&(g?40960===(g.mode&61440)?c=I.la:L(g.mode)&&+(0!==(b&2097155)||b&512)?c=I.M:(c=["r","w","rw"][b&3],b&512&&(c+="w"),c=Nb(g,c)):c=I.H,c))throw new J(c);if(b&512){c=g;var h;"string"===typeof c?h=Q(c,{da:!0}).g:h=c;if(!h.k.F)throw new J(I.J);if(L(h.mode))throw new J(I.M);if(32768!==(h.mode&61440))throw new J(I.p);if(c=Nb(h,"w"))throw new J(c);h.k.F(h,{size:0,timestamp:Date.now()})}b&=-641;d=Sb({g:g,path:Kb(g),flags:b,seekable:!0,position:0,n:g.n,ob:[],error:!1},d);d.n.open&&d.n.open(d);!e.logReadFiles||b&1||(Zb||(Zb={}),a in Zb||(Zb[a]=1,e.printErr("read file: "++a)));try{P.onOpenFile&&(g=0,1!==(b&2097155)&&(g|=1),0!==(b&2097155)&&(g|=2),P.onOpenFile(a,g))}catch(u){console.log("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+u.message)}return d}function $b(a){a.ra&&(a.ra=null);try{a.n.close&&a.n.close(a)}catch(b){throw b;}finally{N[a.fd]=null}}function ac(a,b,c){if(!a.seekable||!a.n.I)throw new J(I.$);a.position=a.n.I(a,b,c);a.ob=[]}+function bc(){J||(J=function(a,b){this.g=b;this.kb=function(a){this.u=a;for(var b in I)if(I[b]===a){this.code=b;break}};this.kb(a);this.message=kb[a]},J.prototype=Error(),J.prototype.constructor=J,[I.H].forEach(function(a){Bb[a]=new J(a);Bb[a].stack="<generic error, no stack>"}))}var cc;function dc(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}+function ec(a,b,c){a=rb("/dev",a);var d=dc(!!b,!!c);fc||(fc=64);var f=fc++<<8|0;vb(f,{open:function(a){a.seekable=!1},close:function(){c&&c.buffer&&c.buffer.length&&c(10)},read:function(a,c,d,f){for(var p=0,t=0;t<f;t++){var r;try{r=b()}catch(A){throw new J(I.Y);}if(void 0===r&&0===p)throw new J(I.za);if(null===r||void 0===r)break;p++;c[d+t]=r}p&&(a.g.timestamp=Date.now());return p},write:function(a,b,d,f){for(var p=0;p<f;p++)try{c(b[d+p])}catch(t){throw new J(I.Y);}f&&(a.g.timestamp=Date.now());return p}});+Wb(a,d,f)}var fc,S={},Ob,Tb,Zb,gc={};+function hc(a,b){try{var c,d=Q(a,{da:!0}).g;if(!d)throw new J(I.H);if(!d.k.D)throw new J(I.J);c=d.k.D(d)}catch(f){if(f&&f.g&&nb(a)!==nb(Kb(f.g)))return-I.ma;throw f;}z[b>>2]=c.dev;z[b+4>>2]=0;z[b+8>>2]=c.ino;z[b+12>>2]=c.mode;z[b+16>>2]=c.nlink;z[b+20>>2]=c.uid;z[b+24>>2]=c.gid;z[b+28>>2]=c.rdev;z[b+32>>2]=0;z[b+36>>2]=c.size;z[b+40>>2]=4096;z[b+44>>2]=c.blocks;z[b+48>>2]=c.atime.getTime()/1E3|0;z[b+52>>2]=0;z[b+56>>2]=c.mtime.getTime()/1E3|0;z[b+60>>2]=0;z[b+64>>2]=c.ctime.getTime()/1E3|0;z[b+68>>+2]=0;z[b+72>>2]=c.ino;return 0}var T=0;function W(){T+=4;return z[T-4>>2]}function ic(){var a;a=W();a=N[a];if(!a)throw new J(I.S);return a}function jc(){throw"bad";}e._realloc=jc;e._saveSetjmp=kc;function lc(a){e.exit(a)}e._bitshift64Lshr=mc;function nc(a,b){H.push(function(){n.N("vi",a,[b])});nc.level=H.length}e._testSetjmp=oc;function pc(a,b){X.setThrew(a,b||1);throw"longjmp";}var qc=B(1,"i32*",2);+function rc(a){var b,c;rc.C?(c=z[qc>>2],b=z[c>>2]):(rc.C=!0,Y.USER=Y.LOGNAME="web_user",Y.PATH="/",Y.PWD="/",Y.HOME="/home/web_user",Y.LANG="C",Y._=e.thisProgram,b=B(1024,"i8",2),c=B(256,"i8*",2),z[c>>2]=b,z[qc>>2]=c);var d=[],f=0,g;for(g in a)if("string"===typeof a[g]){var k=g+"="+a[g];d.push(k);f+=k.length}if(1024<f)throw Error("Environment size exceeded TOTAL_ENV_SIZE!");for(a=0;a<d.length;a++){f=k=d[a];g=b;for(var h=0;h<f.length;++h)x[g++>>0]=f.charCodeAt(h);x[g>>0]=0;z[c+4*a>>2]=b;b+=k.length++1}z[c+4*d.length>>2]=0}var Y={};function sc(a){if(0===a)return 0;a=y(a);if(!Y.hasOwnProperty(a))return 0;sc.C&&Ea(sc.C);sc.C=B(Xa(Y[a]),"i8",0);return sc.C}e._memcpy=tc;function uc(a){uc.bb||(q=Ha(),uc.bb=!0,assert(n.ba),uc.Wa=n.ba,n.ba=function(){v("cannot dynamically allocate, sbrk now has control")});var b=q;return 0==a||uc.Wa(a)?b:4294967295}e._memmove=vc;e._memset=wc;e._bitshift64Shl=xc;var yc=ya,zc=Aa;+function Ac(a,b){Bc=a;Cc=b;if(!Dc)return 1;if(0==a)Z=function(){setTimeout(Ec,b)},Fc="timeout";else if(1==a)Z=function(){Gc(Ec)},Fc="rAF";else if(2==a){if(!window.setImmediate){var c=[];window.addEventListener("message",function(a){a.source===window&&"__emcc"===a.data&&(a.stopPropagation(),c.shift()())},!0);window.setImmediate=function(a){c.push(a);window.postMessage("__emcc","*")}}Z=function(){window.setImmediate(Ec)};Fc="immediate"}return 0}+function Hc(a,b,c,d,f){e.noExitRuntime=!0;assert(!Dc,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Dc=a;Ic=d;var g=Jc;Ec=function(){if(!w)if(0<Kc.length){var b=Date.now(),c=Kc.shift();c.Va(c.aa);if(Lc){var f=Lc,p=0==f%1?f-1:Math.floor(f);Lc=c.ud?p:(8*f+(p+.5))/9}console.log('main loop blocker "'+c.name+'" took '+(Date.now()-b)+" ms");Mc();setTimeout(Ec,0)}else g<+Jc||(Nc=Nc+1|0,1==Bc&&1<Cc&&0!=Nc%Cc?Z():("timeout"===Fc&&e.pa&&(e.X("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Fc=""),Oc(function(){"undefined"!==typeof d?n.N("vi",a,[d]):n.N("v",a)}),g<Jc||("object"===typeof SDL&&SDL.audio&&SDL.audio.hb&&SDL.audio.hb(),Z())))};f||(b&&0<b?Ac(0,1E3/b):Ac(1,1),Z());if(c)throw"SimulateInfiniteLoop";+}var Z=null,Fc="",Jc=0,Dc=null,Ic=0,Bc=0,Cc=0,Nc=0,Kc=[];function Mc(){if(e.setStatus){var a=e.statusMessage||"Please wait...",b=Lc,c=Pc.wd;b?b<c?e.setStatus(a+" ("+(c-b)+"/"+c+")"):e.setStatus(a):e.setStatus("")}}function Oc(a){if(!(w||e.preMainLoop&&!1===e.preMainLoop())){try{a()}catch(b){if(b instanceof ja)return;b&&"object"===typeof b&&b.stack&&e.X("exception thrown: "+[b,b.stack]);throw b;}e.postMainLoop&&e.postMainLoop()}}var Pc={},Ec,Lc,Qc=!1,Rc=!1,Sc=[];+function Tc(){function a(){Rc=document.pointerLockElement===c||document.mozPointerLockElement===c||document.webkitPointerLockElement===c||document.msPointerLockElement===c}e.preloadPlugins||(e.preloadPlugins=[]);if(!Uc){Uc=!0;try{Vc=!0}catch(b){Vc=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Wc="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:Vc?null:console.log("warning: no BlobBuilder");Xc="undefined"!=+typeof window?window.URL?window.URL:window.webkitURL:void 0;e.Pa||"undefined"!==typeof Xc||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),e.Pa=!0);e.preloadPlugins.push({canHandle:function(a){return!e.Pa&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},handle:function(a,b,c,k){var h=null;if(Vc)try{h=new Blob([a],{type:Yc(b)}),h.size!==a.length&&(h=new Blob([(new Uint8Array(a)).buffer],{type:Yc(b)}))}catch(u){n.Q("Blob constructor present but fails: "++u+"; falling back to blob builder")}h||(h=new Wc,h.append((new Uint8Array(a)).buffer),h=h.getBlob());var p=Xc.createObjectURL(h),t=new Image;t.onload=function(){assert(t.complete,"Image "+b+" could not be decoded");var h=document.createElement("canvas");h.width=t.width;h.height=t.height;h.getContext("2d").drawImage(t,0,0);e.preloadedImages[b]=h;Xc.revokeObjectURL(p);c&&c(a)};t.onerror=function(){console.log("Image "+p+" could not be decoded");k&&k()};t.src=p}});e.preloadPlugins.push({canHandle:function(a){return!e.Kd&&+a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(a,b,c,k){function h(h){p||(p=!0,e.preloadedAudios[b]=h,c&&c(a))}function u(){p||(p=!0,e.preloadedAudios[b]=new Audio,k&&k())}var p=!1;if(Vc){try{var t=new Blob([a],{type:Yc(b)})}catch(r){return u()}var t=Xc.createObjectURL(t),A=new Audio;A.addEventListener("canplaythrough",function(){h(A)},!1);A.onerror=function(){if(!p){console.log("warning: browser could not fully decode audio "+b+", trying slower base64 approach");for(var c="",g=0,k=0,+r=0;r<a.length;r++)for(g=g<<8|a[r],k+=8;6<=k;)var t=g>>k-6&63,k=k-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[t];2==k?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(g&3)<<4],c+="=="):4==k&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(g&15)<<2],c+="=");A.src="data:audio/x-"+b.substr(-3)+";base64,"+c;h(A)}};A.src=t;Zc(function(){h(A)})}else return u()}});var c=e.canvas;c&&(c.va=c.requestPointerLock||c.mozRequestPointerLock||+c.webkitRequestPointerLock||c.msRequestPointerLock||function(){},c.Ha=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},c.Ha=c.Ha.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),e.elementPointerLock&&c.addEventListener("click",function(a){!Rc&&+c.va&&(c.va(),a.preventDefault())},!1))}}function $c(a,b,c,d){if(b&&e.pa&&a==e.canvas)return e.pa;var f,g;if(b){g={antialias:!1,alpha:!1};if(d)for(var k in d)g[k]=d[k];if(g=GL.createContext(a,g))f=GL.getContext(g).od;a.style.backgroundColor="black"}else f=a.getContext("2d");if(!f)return null;c&&(b||assert("undefined"===typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),e.pa=f,b&&GL.Jd(g),e.Md=b,Sc.forEach(function(a){a()}),Tc());return f}+var ad=!1,bd=void 0,cd=void 0;+function dd(a,b,c){function d(){Qc=!1;var a=f.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a?(f.Fa=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},+f.Fa=f.Fa.bind(document),bd&&f.va(),Qc=!0,cd&&ed()):(a.parentNode.insertBefore(f,a),a.parentNode.removeChild(a),cd&&fd());if(e.onFullScreen)e.onFullScreen(Qc);gd(f)}bd=a;cd=b;hd=c;"undefined"===typeof bd&&(bd=!0);"undefined"===typeof cd&&(cd=!1);"undefined"===typeof hd&&(hd=null);var f=e.canvas;ad||(ad=!0,document.addEventListener("fullscreenchange",d,!1),document.addEventListener("mozfullscreenchange",d,!1),document.addEventListener("webkitfullscreenchange",d,!1),document.addEventListener("MSFullscreenChange",+d,!1));var g=document.createElement("div");f.parentNode.insertBefore(g,f);g.appendChild(f);g.C=g.requestFullScreen||g.mozRequestFullScreen||g.msRequestFullscreen||(g.webkitRequestFullScreen?function(){g.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null);c?g.C({Nd:c}):g.C()}var id=0;function jd(a){var b=Date.now();if(0===id)id=b+1E3/60;else for(;b+2>=id;)id+=1E3/60;b=Math.max(id-b,0);setTimeout(a,b)}+function Gc(a){"undefined"===typeof window?jd(a):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||jd),window.requestAnimationFrame(a))}function Zc(a){e.noExitRuntime=!0;setTimeout(function(){w||a()},1E4)}+function Yc(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}var kd=[];function ld(){var a=e.canvas;kd.forEach(function(b){b(a.width,a.height)})}function ed(){if("undefined"!=typeof SDL){var a=Ja[SDL.screen+0*n.K>>2];z[SDL.screen+0*n.K>>2]=a|8388608}ld()}function fd(){if("undefined"!=typeof SDL){var a=Ja[SDL.screen+0*n.K>>2];z[SDL.screen+0*n.K>>2]=a&-8388609}ld()}+function gd(a,b,c){b&&c?(a.pb=b,a.$a=c):(b=a.pb,c=a.$a);var d=b,f=c;e.forcedAspectRatio&&0<e.forcedAspectRatio&&(d/f<e.forcedAspectRatio?d=Math.round(f*e.forcedAspectRatio):f=Math.round(d/e.forcedAspectRatio));if((document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===+a.parentNode&&"undefined"!=typeof screen)var g=Math.min(screen.width/d,screen.height/f),d=Math.round(d*g),f=Math.round(f*g);cd?(a.width!=d&&(a.width=d),a.height!=f&&(a.height=f),"undefined"!=typeof a.style&&(a.style.removeProperty("width"),a.style.removeProperty("height"))):(a.width!=b&&(a.width=b),a.height!=c&&(a.height=c),"undefined"!=typeof a.style&&(d!=b||f!=c?(a.style.setProperty("width",d+"px","important"),a.style.setProperty("height",f+"px","important")):(a.style.removeProperty("width"),a.style.removeProperty("height"))))}+var Uc,Vc,Wc,Xc,hd,md=Ba;bc();O=Array(4096);Ub(K,"/");R("/tmp");R("/home");R("/home/web_user");+(function(){R("/dev");vb(259,{read:function(){return 0},write:function(a,b,f,g){return g}});Wb("/dev/null",259);ub(1280,xb);ub(1536,yb);Wb("/dev/tty",1280);Wb("/dev/tty1",1536);var a;if("undefined"!==typeof crypto){var b=new Uint8Array(1);a=function(){crypto.getRandomValues(b);return b[0]}}else a=da?function(){return require("crypto").randomBytes(1)[0]}:function(){return 256*Math.random()|0};ec("random",a);ec("urandom",a);R("/dev/shm");R("/dev/shm/tmp")})();R("/proc");R("/proc/self");R("/proc/self/fd");+Ub({A:function(){var a=Ab("/proc/self","fd",16895,73);a.k={lookup:function(a,c){var d=N[+c];if(!d)throw new J(I.S);var f={parent:null,A:{Oa:"fake"},k:{readlink:function(){return d.path}}};return f.parent=f}};return a}},"/proc/self/fd");+Sa.unshift(function(){if(!e.noFSInit&&!cc){assert(!cc,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");cc=!0;bc();e.stdin=e.stdin;e.stdout=e.stdout;e.stderr=e.stderr;e.stdin?ec("stdin",e.stdin):Xb("/dev/tty","/dev/stdin");e.stdout?ec("stdout",null,e.stdout):Xb("/dev/tty","/dev/stdout");e.stderr?ec("stderr",null,e.stderr):Xb("/dev/tty1","/dev/stderr");var a=Yb("/dev/stdin",+"r");assert(0===a.fd,"invalid handle for stdin ("+a.fd+")");a=Yb("/dev/stdout","w");assert(1===a.fd,"invalid handle for stdout ("+a.fd+")");a=Yb("/dev/stderr","w");assert(2===a.fd,"invalid handle for stderr ("+a.fd+")")}});Ta.push(function(){Ib=!1});H.push(function(){cc=!1;var a=e._fflush;a&&a(0);for(a=0;a<N.length;a++){var b=N[a];b&&$b(b)}});Sa.unshift(function(){});H.push(function(){});if(da){var fs=require("fs"),Db=require("path");M.nb()}rc(Y);e.requestFullScreen=function(a,b,c){dd(a,b,c)};+e.requestAnimationFrame=function(a){Gc(a)};e.setCanvasSize=function(a,b,c){gd(e.canvas,a,b);c||ld()};e.pauseMainLoop=function(){Z=null;Jc++};e.resumeMainLoop=function(){Jc++;var a=Bc,b=Cc,c=Dc;Dc=null;Hc(c,0,!1,Ic,!0);Ac(a,b);Z()};e.getUserMedia=function(){window.C||(window.C=navigator.getUserMedia||navigator.mozGetUserMedia);window.C(void 0)};e.createContext=function(a,b,c,d){return $c(a,b,c,d)};La=m=n.na(la);Ma=La+Pa;Oa=q=n.na(Ma);assert(Oa<ma,"TOTAL_MEMORY not big enough for stack");+var nd=B([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",3);e.Sa={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity};+e.Ta={abort:v,assert:assert,invoke_iiii:function(a,b,c,d){try{return e.dynCall_iiii(a,b,c,d)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;X.setThrew(1,0)}},invoke_viiiiii:function(a,b,c,d,f,g,k){try{e.dynCall_viiiiii(a,b,c,d,f,g,k)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;X.setThrew(1,0)}},invoke_d:function(a){try{return e.dynCall_d(a)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;X.setThrew(1,0)}},invoke_viiiii:function(a,b,c,d,f,g){try{e.dynCall_viiiii(a,b,c,d,f,+g)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;X.setThrew(1,0)}},invoke_i:function(a){try{return e.dynCall_i(a)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;X.setThrew(1,0)}},invoke_vi:function(a,b){try{e.dynCall_vi(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;X.setThrew(1,0)}},invoke_dd:function(a,b){try{return e.dynCall_dd(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;X.setThrew(1,0)}},invoke_vii:function(a,b,c){try{e.dynCall_vii(a,b,c)}catch(d){if("number"!==+typeof d&&"longjmp"!==d)throw d;X.setThrew(1,0)}},invoke_iiiiiii:function(a,b,c,d,f,g,k){try{return e.dynCall_iiiiiii(a,b,c,d,f,g,k)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;X.setThrew(1,0)}},invoke_viiiddi:function(a,b,c,d,f,g,k){try{e.dynCall_viiiddi(a,b,c,d,f,g,k)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;X.setThrew(1,0)}},invoke_ii:function(a,b){try{return e.dynCall_ii(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;X.setThrew(1,0)}},invoke_dddd:function(a,+b,c,d){try{return e.dynCall_dddd(a,b,c,d)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;X.setThrew(1,0)}},invoke_viii:function(a,b,c,d){try{e.dynCall_viii(a,b,c,d)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;X.setThrew(1,0)}},invoke_v:function(a){try{e.dynCall_v(a)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;X.setThrew(1,0)}},invoke_viid:function(a,b,c,d){try{e.dynCall_viid(a,b,c,d)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;X.setThrew(1,0)}},invoke_iiiii:function(a,+b,c,d,f){try{return e.dynCall_iiiii(a,b,c,d,f)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;X.setThrew(1,0)}},invoke_viiii:function(a,b,c,d,f){try{e.dynCall_viiii(a,b,c,d,f)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;X.setThrew(1,0)}},invoke_iii:function(a,b,c){try{return e.dynCall_iii(a,b,c)}catch(d){if("number"!==typeof d&&"longjmp"!==d)throw d;X.setThrew(1,0)}},invoke_iiiid:function(a,b,c,d,f){try{return e.dynCall_iiiid(a,b,c,d,f)}catch(g){if("number"!==typeof g&&"longjmp"!==+g)throw g;X.setThrew(1,0)}},invoke_iiiiii:function(a,b,c,d,f,g){try{return e.dynCall_iiiiii(a,b,c,d,f,g)}catch(k){if("number"!==typeof k&&"longjmp"!==k)throw k;X.setThrew(1,0)}},_pthread_cleanup_pop:function(){assert(nc.level==H.length,"cannot pop if something else added meanwhile!");H.pop();nc.level=H.length},_fabs:yc,_sin:Za,_exp:db,_llvm_pow_f64:fb,_acos:ab,_pthread_cleanup_push:nc,_abort:function(){e.abort()},_atan2:cb,___setErrNo:lb,_setenv:function(a,b,c){if(0===a)return lb(I.p),-1;a=y(a);b=+y(b);if(""===a||-1!==a.indexOf("="))return lb(I.p),-1;if(Y.hasOwnProperty(a)&&!c)return 0;Y[a]=b;rc(Y);return 0},___assert_fail:function(a,b,c,d){w=!0;throw"Assertion failed: "+y(a)+", at: "+[b?y(b):"unknown filename",c,d?y(d):"unknown function"]+" at "+Fa();},___buildEnvironment:rc,_longjmp:pc,___syscall91:function(a,b){T=b;try{var c=W(),d=W(),f=gc[c];if(!f)return 0;if(d===f.cb){var g=N[f.fd],k=f.flags,h=new Uint8Array(E.subarray(c,c+d));g&&g.n.ha&&g.n.ha(g,h,0,d,k);gc[c]=null;f.oa&&Ea(f.eb)}return 0}catch(u){return"undefined"!==+typeof S&&u instanceof J||v(u),-u.u}},_times:function(a){0!==a&&wc(a,0,16);return 0},_emscripten_set_main_loop_timing:Ac,_fabsf:ib,_sbrk:uc,___syscall192:function(a,b){T=b;try{var c=W(),d=W(),f=W(),g=W(),k=W(),h=W(),h=h<<12,u,p=!1;if(-1===k){u=xa(d);if(!u)return-I.Ba;wc(u,0,d);p=!0}else{var t=N[k];if(!t)return-I.S;var r,A=E;if(1===(t.flags&2097155))throw new J(I.R);if(!t.n.ga)throw new J(I.Z);r=t.n.ga(t,A,c,d,h,f,g);u=r.gb;p=r.oa}gc[u]={eb:u,cb:d,oa:p,fd:k,flags:g};return u}catch(F){return"undefined"!==+typeof S&&F instanceof J||v(F),-F.u}},___syscall197:function(a,b){T=b;try{var c=ic(),d=W();return hc(c.path,d)}catch(f){return"undefined"!==typeof S&&f instanceof J||v(f),-f.u}},___syscall195:function(a,b){T=b;try{var c=y(W()),d=W();return hc(c,d)}catch(f){return"undefined"!==typeof S&&f instanceof J||v(f),-f.u}},_sysconf:function(a){switch(a){case 30:return 4096;case 85:return G/4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;+case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;+case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}lb(I.p);return-1},+_emscripten_memcpy_big:function(a,b,c){E.set(E.subarray(b,b+c),a);return a},___syscall221:function(a,b){T=b;try{var c=ic();switch(W()){case 0:var d=W();return 0>d?-I.p:Yb(c.path,c.flags,0,d).fd;case 1:case 2:return 0;case 3:return c.flags;case 4:return d=W(),c.flags|=d,0;case 12:case 12:return d=W(),ua[d+0>>1]=2,0;case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-I.p;case 9:return lb(I.p),-1;default:return-I.p}}catch(f){return"undefined"!==typeof S&&f instanceof J||v(f),-f.u}},_atanf:bb,+_cos:Ya,_pthread_self:function(){return 0},_getenv:sc,_sqrt:eb,___syscall33:function(a,b){T=b;try{var c=y(W()),d;var f=W();if(f&-8)d=-I.p;else{var g;g=Q(c,{da:!0}).g;c="";f&4&&(c+="r");f&2&&(c+="w");f&1&&(c+="x");d=c&&Nb(g,c)?-I.R:0}return d}catch(k){return"undefined"!==typeof S&&k instanceof J||v(k),-k.u}},___syscall54:function(a,b){T=b;try{var c=ic(),d=W();switch(d){case 21505:return c.tty?0:-I.T;case 21506:return c.tty?0:-I.T;case 21519:if(!c.tty)return-I.T;var f=W();return z[f>>2]=0;case 21520:return c.tty?+-I.p:-I.T;case 21531:f=W();if(!c.n.ab)throw new J(I.T);return c.n.ab(c,d,f);default:v("bad ioctl syscall "+d)}}catch(g){return"undefined"!==typeof S&&g instanceof J||v(g),-g.u}},___unlock:function(){},_emscripten_set_main_loop:Hc,___syscall10:function(a,b){T=b;try{var c=y(W()),d=Q(c,{parent:!0}).g,f=pb(c),g=Cb(d,f),k;a:{var h;try{h=Cb(d,f)}catch(u){k=u.u;break a}var p=Nb(d,"wx");k=p?p:L(h.mode)?I.M:0}if(k)throw k===I.M&&(k=I.J),new J(k);if(!d.k.unlink)throw new J(I.J);if(g.V)throw new J(I.ka);try{P.willDeletePath&&+P.willDeletePath(c)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+c+"') threw an exception: "+t.message)}d.k.unlink(d,f);var r=Lb(g.parent.id,g.name);if(O[r]===g)O[r]=g.O;else for(var A=O[r];A;){if(A.O===g){A.O=g.O;break}A=A.O}try{if(P.onDeletePath)P.onDeletePath(c)}catch(F){console.log("FS.trackingDelegate['onDeletePath']('"+c+"') threw an exception: "+F.message)}return 0}catch(U){return"undefined"!==typeof S&&U instanceof J||v(U),-U.u}},___syscall5:function(a,b){T=b;try{var c=y(W()),+d=W(),f=W();return Yb(c,d,f).fd}catch(g){return"undefined"!==typeof S&&g instanceof J||v(g),-g.u}},_tan:$a,__exit:lc,___lock:function(){},___syscall6:function(a,b){T=b;try{var c=ic();$b(c);return 0}catch(d){return"undefined"!==typeof S&&d instanceof J||v(d),-d.u}},___syscall265:function(a,b){T=b;return 0},___syscall145:function(a,b){T=b;try{var c=ic(),d=W(),f;a:{for(var g=W(),k=0,h=0;h<g;h++){var u=z[d+(8*h+4)>>2],p,t=c,r=z[d+8*h>>2],A=u,F=void 0,U=x;if(0>A||0>F)throw new J(I.p);if(1===(t.flags&2097155))throw new J(I.S);+if(L(t.g.mode))throw new J(I.M);if(!t.n.read)throw new J(I.p);var qa=!0;if("undefined"===typeof F)F=t.position,qa=!1;else if(!t.seekable)throw new J(I.$);var Na=t.n.read(t,U,r,A,F);qa||(t.position+=Na);p=Na;if(0>p){f=-1;break a}k+=p;if(p<u)break}f=k}return f}catch(ea){return"undefined"!==typeof S&&ea instanceof J||v(ea),-ea.u}},_time:function(a){var b=Date.now()/1E3|0;a&&(z[a>>2]=b);return b},_emscripten_longjmp:function(a,b){pc(a,b)},_ceil:md,___syscall140:function(a,b){T=b;try{var c=ic(),d=W(),+f=W(),g=W(),k=W();assert(0===d);ac(c,f,k);z[g>>2]=c.position;c.ra&&0===f&&0===k&&(c.ra=null);return 0}catch(h){return"undefined"!==typeof S&&h instanceof J||v(h),-h.u}},_llvm_trap:function(){v("trap!")},_exit:function(a){lc(a)},_floor:zc,___syscall146:function(a,b){T=b;try{var c=ic(),d=W(),f;a:{for(var g=W(),k=0,h=0;h<g;h++){var u,p=c,t=z[d+8*h>>2],r=z[d+(8*h+4)>>2],A=x,F=void 0;if(0>r||0>F)throw new J(I.p);if(0===(p.flags&2097155))throw new J(I.S);if(L(p.g.mode))throw new J(I.M);if(!p.n.write)throw new J(I.p);+p.flags&1024&&ac(p,0,2);var U=!0;if("undefined"===typeof F)F=p.position,U=!1;else if(!p.seekable)throw new J(I.$);var qa=p.n.write(p,A,t,r,F,void 0);U||(p.position+=qa);try{if(p.path&&P.onWriteToFile)P.onWriteToFile(p.path)}catch(Na){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+Na.message)}u=qa;if(0>u){f=-1;break a}k+=u}f=k}return f}catch(ea){return"undefined"!==typeof S&&ea instanceof J||v(ea),-ea.u}},STACKTOP:m,STACK_MAX:Ma,tempDoublePtr:gb,ABORT:w,cttz_i8:nd};+// EMSCRIPTEN_START_ASM+var X=(function(global,env,buffer) {+"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=global.Math.floor;var N=global.Math.abs;var O=global.Math.sqrt;var P=global.Math.pow;var Q=global.Math.cos;var R=global.Math.sin;var S=global.Math.tan;var T=global.Math.acos;var U=global.Math.asin;var V=global.Math.atan;var W=global.Math.atan2;var X=global.Math.exp;var Y=global.Math.log;var Z=global.Math.ceil;var _=global.Math.imul;var $=global.Math.min;var aa=global.Math.clz32;var ba=env.abort;var ca=env.assert;var da=env.invoke_iiii;var ea=env.invoke_viiiiii;var fa=env.invoke_d;var ga=env.invoke_viiiii;var ha=env.invoke_i;var ia=env.invoke_vi;var ja=env.invoke_dd;var ka=env.invoke_vii;var la=env.invoke_iiiiiii;var ma=env.invoke_viiiddi;var na=env.invoke_ii;var oa=env.invoke_dddd;var pa=env.invoke_viii;var qa=env.invoke_v;var ra=env.invoke_viid;var sa=env.invoke_iiiii;var ta=env.invoke_viiii;var ua=env.invoke_iii;var va=env.invoke_iiiid;var wa=env.invoke_iiiiii;var xa=env._pthread_cleanup_pop;var ya=env._fabs;var za=env._sin;var Aa=env._exp;var Ba=env._llvm_pow_f64;var Ca=env._acos;var Da=env._pthread_cleanup_push;var Ea=env._abort;var Fa=env._atan2;var Ga=env.___setErrNo;var Ha=env._setenv;var Ia=env.___assert_fail;var Ja=env.___buildEnvironment;var Ka=env._longjmp;var La=env.___syscall91;var Ma=env._times;var Na=env._emscripten_set_main_loop_timing;var Oa=env._fabsf;var Pa=env._sbrk;var Qa=env.___syscall192;var Ra=env.___syscall197;var Sa=env.___syscall195;var Ta=env._sysconf;var Ua=env._emscripten_memcpy_big;var Va=env.___syscall221;var Wa=env._atanf;var Xa=env._cos;var Ya=env._pthread_self;var Za=env._getenv;var _a=env._sqrt;var $a=env.___syscall33;var ab=env.___syscall54;var bb=env.___unlock;var cb=env._emscripten_set_main_loop;var db=env.___syscall10;var eb=env.___syscall5;var fb=env._tan;var gb=env.__exit;var hb=env.___lock;var ib=env.___syscall6;var jb=env.___syscall265;var kb=env.___syscall145;var lb=env._time;var mb=env._emscripten_longjmp;var nb=env._ceil;var ob=env.___syscall140;var pb=env._llvm_trap;var qb=env._exit;var rb=env._floor;var sb=env.___syscall146;var tb=0.0;+// EMSCRIPTEN_START_FUNCS+function ov(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+16|0;j=v;switch(e|0){case 1:{c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];wv(b,j);j=b+580|0;e=c[j>>2]|0;a:do if(e)switch(rl(e)|0){case 0:{u=(c[e+16>>2]|0)+112|0;a[u>>0]=(d[u>>0]|0)&249|4;break a}case 1:{u=(c[e+16>>2]|0)+117|0;a[u>>0]=(d[u>>0]|0)&249|4;break a}case 2:{u=(c[e+16>>2]|0)+115|0;a[u>>0]=(d[u>>0]|0)&249|4;break a}default:break a}while(0);u=b+588|0;e=c[u>>2]|0;if(e){pB(e);c[u>>2]=0}t=c[b+576>>2]|0;c[j>>2]=t;b:do if(t)switch(rl(t)|0){case 0:{u=(c[t+16>>2]|0)+112|0;a[u>>0]=d[u>>0]|0|2;yv(b,t);break b}case 1:{n=(c[t+16>>2]|0)+117|0;a[n>>0]=d[n>>0]|0|2;n=b+592|0;qn(n,0,134886);qn(n,1,ok(t)|0);c[b+596>>2]=2;n=b+604|0;o=hl(gl(t)|0)|0;e=sj(o,1,0)|0;if(!e)e=2;else{j=e;m=2;while(1){qn(n,m,c[j+8>>2]|0);e=m+2|0;qn(n,m|1,Aj(t,j)|0);j=sj(o,1,j)|0;if(!j)break;else m=e}}c[b+608>>2]=e;e=rj(gl(t)|0,1,134891,0)|0;if(!e){e=rj(gl(t)|0,1,134896,0)|0;if(!e)break b}c[u>>2]=Up(Aj(t,e)|0,t)|0;break b}case 2:{q=(c[t+16>>2]|0)+115|0;a[q>>0]=d[q>>0]|0|2;q=b+592|0;qn(q,0,134900);r=t+48|0;qn(q,1,ok(c[((c[t>>2]&3|0)==3?t:r)+40>>2]|0)|0);r=(hk(gl(c[((c[t>>2]&3|0)==3?t:r)+40>>2]|0)|0)|0)!=0;qn(q,3,r?160891:160894);r=t+-48|0;qn(q,4,ok(c[((c[t>>2]&3|0)==2?t:r)+40>>2]|0)|0);c[b+596>>2]=7;o=b+604|0;p=hl(gl(c[((c[t>>2]&3|0)==2?t:r)+40>>2]|0)|0)|0;e=sj(p,2,0)|0;c:do if(!e)e=7;else{j=e;n=7;while(1){while(1){e=j+8|0;m=c[e>>2]|0;if(!(lA(m,134905)|0)){s=20;break}if(!(lA(m,134914)|0)){s=22;break}if(lA(m,134923)|0)break;qn(q,6,Aj(t,j)|0);j=sj(p,2,j)|0;if(!j){e=n;break c}}if((s|0)==20){s=0;qn(q,2,Aj(t,j)|0)}else if((s|0)==22){s=0;qn(q,5,Aj(t,j)|0)}qn(o,n,c[e>>2]|0);e=n+2|0;qn(o,n+1|0,Aj(t,j)|0);j=sj(p,2,j)|0;if(!j)break;else n=e}}while(0);c[b+608>>2]=e;e=rj(gl(c[((c[t>>2]&3|0)==2?t:r)+40>>2]|0)|0,2,134891,0)|0;if(!e){e=rj(gl(c[((c[t>>2]&3|0)==2?t:r)+40>>2]|0)|0,2,134896,0)|0;if(!e)break b}c[u>>2]=Up(Aj(t,e)|0,t)|0;break b}default:break b}while(0);a[b+538>>0]=1;a[b+541>>0]=1;a[b+537>>0]=1;break}case 2:{a[b+538>>0]=1;a[b+541>>0]=2;a[b+537>>0]=1;break}case 3:{c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];wv(b,j);a[b+538>>0]=1;a[b+541>>0]=3;a[b+537>>0]=1;break}case 4:{a[b+536>>0]=0;g=+h[f>>3];e=c[b+448>>2]|0;if(!(c[b+360>>2]|0)){u=b+352|0;l=+h[u>>3];t=b+336|0;h[t>>3]=(g-+(e>>>0)*.5)*.10000000000000009/(l*+h[b+520>>3])+ +h[t>>3];e=b+344|0;h[e>>3]=(+h[f+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(l*+h[b+528>>3])+ +h[e>>3];e=u;g=l}else{u=b+352|0;l=+h[u>>3];t=b+336|0;h[t>>3]=+h[t>>3]-(+h[f+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(l*+h[b+528>>3]);t=b+344|0;h[t>>3]=(g-+(e>>>0)*.5)*.10000000000000009/(l*+h[b+520>>3])+ +h[t>>3];e=u;g=l}h[e>>3]=g*1.1;a[b+537>>0]=1;break}case 5:{a[b+536>>0]=0;e=b+352|0;g=+h[e>>3]/1.1;h[e>>3]=g;k=+h[f>>3];e=c[b+448>>2]|0;l=+h[b+520>>3];if(!(c[b+360>>2]|0)){u=b+336|0;h[u>>3]=+h[u>>3]-(k-+(e>>>0)*.5)*.10000000000000009/(g*l);u=b+344|0;h[u>>3]=+h[u>>3]-(+h[f+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(g*+h[b+528>>3])}else{u=b+336|0;h[u>>3]=(+h[f+8>>3]-+((c[b+452>>2]|0)>>>0)*.5)*.10000000000000009/(g*+h[b+528>>3])+ +h[u>>3];u=b+344|0;h[u>>3]=+h[u>>3]-(k-+(e>>>0)*.5)*.10000000000000009/(g*l)}a[b+537>>0]=1;break}default:{}}b=b+560|0;c[b>>2]=c[f>>2];c[b+4>>2]=c[f+4>>2];c[b+8>>2]=c[f+8>>2];c[b+12>>2]=c[f+12>>2];i=v;return}function pv(b,c,d){b=b|0;c=c|0;d=d|0;a[b+538>>0]=0;a[b+541>>0]=0;return}function qv(b,e){b=b|0;e=e|0;var f=0.0,g=0,j=0,k=0.0,l=0.0,m=0;m=i;i=i+16|0;g=m;j=b+560|0;l=(+h[e>>3]-+h[j>>3])/+h[b+520>>3];k=(+h[e+8>>3]-+h[b+568>>3])/+h[b+528>>3];if(!(+N(+l)<.0001?+N(+k)<.0001:0)){switch(d[b+541>>0]|0|0){case 0:{c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];wv(b,g);break}case 2:{f=+h[b+352>>3];if(!(c[b+360>>2]|0)){g=b+336|0;h[g>>3]=+h[g>>3]-l/f;g=b+344|0;h[g>>3]=+h[g>>3]-k/f}else{g=b+336|0;h[g>>3]=+h[g>>3]-k/f;g=b+344|0;h[g>>3]=l/f+ +h[g>>3]}a[b+537>>0]=1;break}default:{}}c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2]}i=m;return}function rv(a,b,c){a=a|0;b=b|0;c=c|0;return}function sv(a){a=a|0;return}function tv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=c[b>>2]|0;if(d){d=Az(d,162372)|0;if(d){j=Mm(d,0)|0;uz(d)|0;f=5}}else{j=Mm(c[22668]|0,0)|0;f=5}if((f|0)==5?(j|0)!=0:0){g=i+168|0;d=c[g>>2]|0;if(d){f=c[i+172>>2]|0;if((f|0)!=0?(h=c[f+4>>2]|0,(h|0)!=0):0){zb[h&127](d);d=c[g>>2]|0}Np(d);dk(c[g>>2]|0)|0}zl(j,0,160878,280,1);zl(j,1,160855,304,1);zl(j,2,161165,176,1);c[g>>2]=j;c[(c[j+16>>2]|0)+144>>2]=i;if((Jn(i,j,e)|0)!=-1){c[b+580>>2]=0;c[b+576>>2]=0;a[b+537>>0]=1}}return}function uv(a,b){a=a|0;b=b|0;a=c[a>>2]|0;Jn(a,c[a+168>>2]|0,b)|0;return}function vv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c[a>>2]|0;e=h+160|0;f=c[e>>2]|0;if((f|0)!=0?(c[h+164>>2]|0)==0:0){i=h+192|0;g=c[i>>2]|0;c[e>>2]=0;c[i>>2]=0;e=f}else{g=0;e=0}Ln(h,c[h+168>>2]|0,b,d)|0;if(e){i=c[a>>2]|0;c[i+160>>2]=e;c[i+192>>2]=g}return}function wv(b,e){b=b|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0;s=i;i=i+64|0;q=s+32|0;k=s;o=+h[e>>3];l=+h[e+8>>3];p=+h[b+352>>3];m=+h[b+520>>3];j=+h[b+528>>3];if(!(c[b+360>>2]|0)){n=l/(p*j);j=o/(p*m)}else{n=-o/(p*m);j=l/(p*j)}m=j-+h[b+504>>3];o=n-+h[b+512>>3];p=1.0/p;e=c[(c[b>>2]|0)+168>>2]|0;h[k>>3]=m-p;h[k+8>>3]=o-p;h[k+16>>3]=m+p;h[k+24>>3]=o+p;f=Rk(e)|0;a:do if(!f)r=10;else b:while(1){g=Lj(e,f)|0;if(g)do{c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[q+16>>2]=c[k+16>>2];c[q+20>>2]=c[k+20>>2];c[q+24>>2]=c[k+24>>2];c[q+28>>2]=c[k+28>>2];if((kt(g,q)|0)<<24>>24){e=g;break b}g=Nj(e,g)|0}while((g|0)!=0);f=Sk(e,f)|0;if(!f){r=10;break a}}while(0);c:do if((r|0)==10){f=Tk(e)|0;d:do if(f){while(1){c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[q+16>>2]=c[k+16>>2];c[q+20>>2]=c[k+20>>2];c[q+24>>2]=c[k+24>>2];c[q+28>>2]=c[k+28>>2];if((it(f,q)|0)<<24>>24){e=f;break}f=Uk(e,f)|0;if(!f)break d}break c}while(0);c[q>>2]=c[k>>2];c[q+4>>2]=c[k+4>>2];c[q+8>>2]=c[k+8>>2];c[q+12>>2]=c[k+12>>2];c[q+16>>2]=c[k+16>>2];c[q+20>>2]=c[k+20>>2];c[q+24>>2]=c[k+24>>2];c[q+28>>2]=c[k+28>>2];f=xv(e,q)|0;if(!f)break;else{e=f;break}}while(0);g=b+576|0;f=c[g>>2]|0;if((e|0)!=(f|0)){e:do if(f)switch(rl(f)|0){case 0:{r=(c[f+16>>2]|0)+112|0;a[r>>0]=(d[r>>0]|0)&254;break e}case 1:{r=(c[f+16>>2]|0)+117|0;a[r>>0]=(d[r>>0]|0)&254;break e}case 2:{r=(c[f+16>>2]|0)+115|0;a[r>>0]=(d[r>>0]|0)&254;break e}default:break e}while(0);k=b+584|0;c[k>>2]=0;c[g>>2]=e;f:do if(e)switch(rl(e)|0){case 0:{f=(c[e+16>>2]|0)+112|0;a[f>>0]=d[f>>0]|0|1;f=rj(e,0,134878,0)|0;if(!f)break f;c[k>>2]=Up(Aj(e,f)|0,e)|0;break f}case 1:{f=(c[e+16>>2]|0)+117|0;a[f>>0]=d[f>>0]|0|1;f=rj(gl(e)|0,1,134878,0)|0;if(!f)break f;c[k>>2]=Up(Aj(e,f)|0,e)|0;break f}case 2:{f=(c[e+16>>2]|0)+115|0;a[f>>0]=d[f>>0]|0|1;f=rj(gl(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0,2,134878,0)|0;if(!f)break f;c[k>>2]=Up(Aj(e,f)|0,e)|0;break f}default:break f}while(0);a[b+537>>0]=1}i=s;return}function xv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0;m=i;i=i+32|0;j=m;f=c[a+16>>2]|0;g=c[f+180>>2]|0;a:do if((g|0)<1)l=5;else{e=c[f+184>>2]|0;k=1;while(1){d=c[e+(k<<2)>>2]|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];c[j+16>>2]=c[b+16>>2];c[j+20>>2]=c[b+20>>2];c[j+24>>2]=c[b+24>>2];c[j+28>>2]=c[b+28>>2];d=xv(d,j)|0;if(d)break a;if((k|0)<(g|0))k=k+1|0;else{l=5;break}}}while(0);do if((l|0)==5){o=+h[f+24>>3];n=+h[f+40>>3];if(((+h[b+16>>3]>=+h[f+16>>3]?+h[f+32>>3]>=+h[b>>3]:0)?+h[b+24>>3]>=o:0)?n>=+h[b+8>>3]:0){d=a;break}d=0}while(0);i=m;return d|0}function yv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=a+592|0;do if((hl(b)|0)==(b|0))if(!(hk(b)|0)){qn(d,0,134935);break}else{qn(d,0,134927);break}else qn(d,0,134941);while(0);qn(d,1,ok(b)|0);c[a+596>>2]=2;g=a+604|0;d=sj(b,0,0)|0;if(!d)d=2;else{e=d;f=2;while(1){qn(g,f,c[e+8>>2]|0);qn(g,f+1|0,Aj(b,e)|0);d=f+3|0;qn(g,f+2|0,0);e=sj(b,0,e)|0;if(!e)break;else f=d}}c[a+608>>2]=d;d=rj(b,0,134891,0)|0;if(!d){d=rj(b,0,134896,0)|0;if(d)h=10}else h=10;if((h|0)==10)c[a+588>>2]=Up(Aj(b,d)|0,b)|0;return}function zv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[d>>2]|0;g=aq(12)|0;if(!b)b=0;else b=oA(b)|0;c[g+4>>2]=b;c[g+8>>2]=oA(e)|0;e=a+100|0;c[g>>2]=c[e>>2];c[e>>2]=g;e=c[d+4>>2]|0;b=c[e+4>>2]|0;if(b)while(1){d=c[b+4>>2]|0;if(d){f=0;do{sn(a,c[e>>2]|0,d,c[b+(f*20|0)+8>>2]|0,g,b+(f*20|0)|0)|0;f=f+1|0;d=c[b+(f*20|0)+4>>2]|0}while((d|0)!=0)}b=c[e+12>>2]|0;if(!b)break;else e=e+8|0}return}function Av(b,d){b=b|0;d=d|0;var e=0;d=c[b+32>>2]|0;if((d|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0)do{if((a[e>>0]|0)==103?(wA(e,134950)|0)!=0:0)zv(b,0,c[d+4>>2]|0);d=d+8|0;e=c[d>>2]|0}while((e|0)!=0);a[b+44>>0]=0;Bv(b)|0;vs(b)|0;return}function Bv(a){a=a|0;var b=0;b=tn(a,2,134963)|0;if(!b)b=999;else{c[a+148>>2]=c[(c[b+16>>2]|0)+12>>2];b=300}return b|0}function Cv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[a+148>>2]|0;if((a|0)!=0?(e=c[a>>2]|0,(e|0)!=0):0)a=Lb[e&63](b,d)|0;else a=0;return a|0}function Dv(a){a=a|0;var b=0.0,d=0.0,e=0,f=0;a=c[a+16>>2]|0;d=+h[a+16>>3];b=+h[a+24>>3];a=~~(d>b?d:b)>>>0;if(!a)a=0;else{f=a>>>0>65535;a=f?a>>>16:a;f=f?16:0;e=a>>>0>255;a=e?a>>>8:a;f=e?f|8:f;e=a>>>0>15;a=e?a>>>4:a;f=e?f|4:f;e=a>>>0>3;a=(e?f|2:f)+1+((e?a>>>2:a)>>>0>1&1)|0}return a|0}function Ev(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0,I=0,J=0,K=0,L=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,_=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,Ja=0,Ka=0;Ka=i;i=i+432|0;Ha=Ka+384|0;va=Ka+352|0;wa=Ka+320|0;za=Ka+288|0;Aa=Ka+256|0;Ba=Ka+224|0;Ca=Ka+192|0;Da=Ka+160|0;Ea=Ka+128|0;Fa=Ka+96|0;Ga=Ka+64|0;xa=Ka+32|0;ya=Ka;l=$p(28)|0;ua=Vi(59580,c[12574]|0)|0;k=l+20|0;c[k>>2]=ua;do if(ua){ua=$w()|0;c[l+24>>2]=ua;if(!ua){Mz(134974,14,1,c[22667]|0)|0;Ja=6;break}else{c[l>>2]=b;c[l+4>>2]=d;c[l+8>>2]=e;c[l+12>>2]=f;c[l+16>>2]=g;break}}else{Mz(134974,14,1,c[22667]|0)|0;Ja=6}while(0);if((Ja|0)==6){k=c[k>>2]|0;if(k)Pi(k)|0;k=c[l+24>>2]|0;if(k)ax(k)|0;pB(l);l=0}u=Dv(l)|0;v=l+4|0;a:do if((c[v>>2]|0)>0){w=(u|0)>0;n=l+20|0;y=0;while(1){x=$p(32)|0;e=c[l>>2]|0;c[x+28>>2]=e+(y*40|0);k=c[e+(y*40|0)+32>>2]|0;if(!k){p=0.0;q=0.0}else{p=+h[k>>3];q=+h[k+8>>3]}E=+h[e+(y*40|0)>>3];m=~~+M(+(E-p));o=+h[e+(y*40|0)+8>>3];s=~~+M(+(o-q));f=~~+Z(+(p+(E+ +h[e+(y*40|0)+16>>3])));if((f|0)==2147483647){Ja=18;break}e=~~+Z(+(q+(o+ +h[e+(y*40|0)+24>>3])));if((e|0)==2147483647){Ja=20;break}c[x+12>>2]=m;c[x+16>>2]=s;c[x+20>>2]=f;c[x+24>>2]=e;if(w){t=u;k=0;r=((f-m|0)/2|0)+m|0;m=((e-s|0)/2|0)+s|0;while(1){ua=t;t=t+-1|0;f=r>>>t&1;ta=m>>>t&1;k=f<<1|k<<2|ta^f;ta=ta+-1|0;e=ta&(m^r);f=ta&0-f;if((ua|0)<=1)break;else{r=e^r^f;m=e^m^f}}}else k=0;c[x+8>>2]=k;ua=c[n>>2]|0;y=y+1|0;if(!(ub[c[ua>>2]&31](ua,x,1)|0)){j=-1;break a}if((y|0)>=(c[v>>2]|0)){Ja=25;break a}}if((Ja|0)==18)Ia(134989,135016,264,135026);else if((Ja|0)==20)Ia(135036,135016,266,135026)}else{n=l+20|0;Ja=25}while(0);if((Ja|0)==25){j=c[n>>2]|0;j=ub[c[j>>2]&31](j,0,128)|0;if(j){k=l+24|0;do{ua=c[k>>2]|0;cx(ua,j+12|0,c[j+28>>2]|0,ua,0)|0;ua=c[n>>2]|0;j=ub[c[ua>>2]&31](ua,j,8)|0}while((j|0)!=0)}m=Xi(c[n>>2]|0)|0;b:do if(!(Xi(c[n>>2]|0)|0))z=0;else{j=0;while(1){f=c[n>>2]|0;k=c[(c[f+8>>2]|0)+4>>2]|0;if(!k)break;e=c[(c[f+4>>2]|0)+8>>2]|0;if((e|0)<0)k=c[k+8>>2]|0;else k=k+(0-e)|0;if(!k)break;ub[c[f>>2]&31](f,k,4096)|0;pB(k);j=j+1|0;if(!(Xi(c[n>>2]|0)|0)){z=j;break b}}Ia(135063,135016,616,135066)}while(0);if((m|0)!=(z|0))Ia(135078,135016,623,135066);j=Pi(c[n>>2]|0)|0;if((j|0)>=0){if((d|0)>0){sa=va+8|0;ta=va+16|0;ua=va+24|0;y=g+32|0;z=wa+8|0;g=wa+16|0;F=wa+24|0;G=za+8|0;H=za+16|0;I=za+24|0;J=Aa+8|0;K=Aa+16|0;L=Aa+24|0;N=Ba+8|0;O=Ba+16|0;P=Ba+24|0;Q=Ca+8|0;R=Ca+16|0;S=Ca+24|0;T=Da+8|0;U=Da+16|0;V=Da+24|0;W=Ea+8|0;X=Ea+16|0;Y=Ea+24|0;_=Ha+24|0;$=Ha+28|0;aa=Ha+32|0;ba=Ha+12|0;ca=Ha+8|0;da=Ha+4|0;ea=Ha+20|0;fa=xa+8|0;ga=xa+16|0;ha=xa+24|0;ia=ya+8|0;ja=ya+16|0;ka=ya+24|0;la=Fa+8|0;ma=Fa+16|0;na=Fa+24|0;oa=Ga+8|0;pa=Ga+16|0;qa=Ga+24|0;ra=0;j=0;do{x=b+(ra*40|0)+32|0;m=c[x>>2]|0;do if(m){v=b+(ra*40|0)|0;o=+h[m>>3];r=b+(ra*40|0)+16|0;D=(o*2.0+ +h[r>>3])*.125;s=m+8|0;w=b+(ra*40|0)+24|0;p=+h[w>>3];E=(+h[s>>3]*2.0+p)*.5;k=Ha;e=k+36|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(e|0));n=m+16|0;h[n>>3]=+h[v>>3]-o;t=b+(ra*40|0)+8|0;u=m+24|0;h[u>>3]=p+ +h[t>>3];Fv(va,l,v,Ha);k=c[va>>2]|0;p=+h[sa>>3];q=+h[ta>>3];o=+h[ua>>3];c:do if(k){h[u>>3]=+h[t>>3];Fv(wa,l,v,Ha);e=c[wa>>2]|0;C=+h[z>>3];A=+h[g>>3];B=+h[F>>3];if(e){if(C<p){o=B;q=A;k=e;p=C}h[u>>3]=+h[t>>3]-+h[s>>3];Fv(za,l,v,Ha);e=c[za>>2]|0;C=+h[G>>3];A=+h[H>>3];B=+h[I>>3];if(e){if(C<p){o=B;q=A;k=e;p=C}h[n>>3]=+h[v>>3];h[u>>3]=+h[t>>3]+ +h[w>>3];Fv(Aa,l,v,Ha);e=c[Aa>>2]|0;C=+h[J>>3];A=+h[K>>3];B=+h[L>>3];if(!e){k=0;p=C;q=A;o=B}else{if(C<p){o=B;q=A;k=e;p=C}h[u>>3]=+h[t>>3]-+h[s>>3];Fv(Ba,l,v,Ha);e=c[Ba>>2]|0;C=+h[N>>3];A=+h[O>>3];B=+h[P>>3];if(!e){k=0;p=C;q=A;o=B;break}if(C<p){o=B;q=A;k=e;p=C}h[n>>3]=+h[v>>3]+ +h[r>>3];h[u>>3]=+h[t>>3]+ +h[w>>3];Fv(Ca,l,v,Ha);e=c[Ca>>2]|0;C=+h[Q>>3];A=+h[R>>3];B=+h[S>>3];if(!e){k=0;p=C;q=A;o=B;break}if(C<p){o=B;q=A;k=e;p=C}h[u>>3]=+h[t>>3];Fv(Da,l,v,Ha);e=c[Da>>2]|0;C=+h[T>>3];A=+h[U>>3];B=+h[V>>3];if(!e){k=0;p=C;q=A;o=B;break}if(C<p){o=B;q=A;p=C}else e=k;h[u>>3]=+h[t>>3]-+h[s>>3];Fv(Ea,l,v,Ha);k=c[Ea>>2]|0;C=+h[W>>3];A=+h[X>>3];B=+h[Y>>3];if(!k){k=0;p=C;q=A;o=B;break}if(C<p){o=B;q=A;p=C}else k=e;e=(c[$>>2]|0)==0&(c[aa>>2]|0)==0;do if(!(c[_>>2]|0)){if(!e){Ja=73;break}if((c[ba>>2]|0)==0&(c[Ha>>2]|0)==0)C=q;else Ja=68}else if(e)Ja=68;else Ja=73;while(0);do if((Ja|0)==68){Ja=0;C=+h[v>>3];B=C-+h[m>>3];h[n>>3]=B;h[u>>3]=+h[t>>3]+ +h[w>>3];if(!(B<=C+ +h[r>>3])){Ja=73;break}else{C=o;B=q;A=p}while(1){Fv(Fa,l,v,Ha);e=c[Fa>>2]|0;p=+h[la>>3];q=+h[ma>>3];o=+h[na>>3];if(!e){k=0;break c}if(p<A)k=e;else{o=C;q=B;p=A}C=D+ +h[n>>3];h[n>>3]=C;if(!(C<=+h[v>>3]+ +h[r>>3])){Ja=73;break}else{C=o;B=q;A=p}}}while(0);do if((Ja|0)==73){Ja=0;if(!((c[ba>>2]|0)==0&(c[Ha>>2]|0)==0)){C=q;break}h[n>>3]=+h[v>>3]-+h[m>>3];C=+h[t>>3];B=C+ +h[w>>3];h[u>>3]=B;if(!(B>=C-+h[s>>3])){C=q;break}else{C=o;e=k;B=p}while(1){Fv(Ga,l,v,Ha);k=c[Ga>>2]|0;p=+h[oa>>3];A=+h[pa>>3];o=+h[qa>>3];if(!k){k=0;q=A;break c}if(p<B)q=A;else{o=C;k=e;p=B}C=+h[u>>3]-E;h[u>>3]=C;if(!(C>=+h[t>>3]-+h[s>>3])){C=q;break}else{C=o;e=k;B=p}}}while(0);q=+h[v>>3];A=q+ +h[r>>3];h[n>>3]=A;B=+h[t>>3]-+h[s>>3];h[u>>3]=B;e=c[da>>2]|0;do if(!(c[ca>>2]|0)){f=c[Ha>>2]|0;if(!((e|0)==0&(f|0)==0))break;if((c[ea>>2]|0)==0&(c[aa>>2]|0)==0){q=C;break c}else{e=0;f=0}}else f=c[Ha>>2]|0;while(0);do if((f|0)==0&(e|0)==0){h[n>>3]=A;h[u>>3]=B;if(!(A>=q-+h[m>>3]))break;else B=o;while(1){Fv(xa,l,v,Ha);e=c[xa>>2]|0;A=+h[fa>>3];q=+h[ga>>3];o=+h[ha>>3];if(!e){k=0;p=A;break c}if(A<p){C=q;k=e;p=A}else o=B;B=+h[n>>3]-D;h[n>>3]=B;q=+h[v>>3];if(!(B>=q-+h[m>>3]))break;else B=o}}while(0);if(!((c[ea>>2]|0)==0&(c[aa>>2]|0)==0)){q=C;break}h[n>>3]=q+ +h[r>>3];D=+h[t>>3];B=D-+h[s>>3];h[u>>3]=B;if(!(B<=D+ +h[w>>3])){q=C;break}else{e=k;B=p}while(1){Fv(ya,l,v,Ha);k=c[ya>>2]|0;p=+h[ia>>3];q=+h[ja>>3];A=+h[ka>>3];if(!k){k=0;o=A;break c}if(p<B)o=A;else{q=C;k=e;p=B}D=E+ +h[u>>3];h[u>>3]=D;if(!(D<=+h[t>>3]+ +h[w>>3]))break;else{C=q;e=k;B=p}}}}else{k=0;p=C;q=A;o=B}}else{k=0;p=C;q=A;o=B}}else k=0;while(0);if(!k){a[(c[x>>2]|0)+36>>0]=1;break}if(p==0.0){x=c[x>>2]|0;h[x+16>>3]=q;h[x+24>>3]=o;a[x+36>>0]=1;break}if((a[y>>0]|0)==1){x=c[x>>2]|0;h[x+16>>3]=q;h[x+24>>3]=o;a[x+36>>0]=1}else j=1}while(0);ra=ra+1|0}while((ra|0)<(d|0))}else j=0;ax(c[l+24>>2]|0)|0;pB(l)}}i=Ka;return j|0}function Fv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,j=0,k=0,l=0,m=0.0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0.0;G=i;i=i+64|0;E=G+48|0;C=G+32|0;D=G+16|0;F=G;n=c[e+32>>2]|0;if(!n)Ia(135090,135016,382,135100);q=n+16|0;c[F>>2]=c[q>>2];c[F+4>>2]=c[q+4>>2];c[F+8>>2]=c[q+8>>2];c[F+12>>2]=c[q+12>>2];q=c[d+4>>2]|0;a:do if((q|0)>0){r=c[d>>2]|0;s=n+16|0;t=n+24|0;o=n+8|0;k=0;u=0;b:while(1){do if((r+(u*40|0)|0)!=(e|0)){g=+h[r+(u*40|0)+16>>3];if(g>0.0?+h[r+(u*40|0)+24>>3]>0.0:0)break;if(!(g==0.0))break b;if(!(+h[r+(u*40|0)+24>>3]==0.0))break b;H=+h[r+(u*40|0)>>3];g=+h[s>>3];if((H>g?H<g+ +h[n>>3]:0)?(m=+h[r+(u*40|0)+8>>3],p=+h[t>>3],m>p):0)l=m<p+ +h[o>>3];else l=0;k=(l&1)+k|0}while(0);u=u+1|0;if((u|0)>=(q|0)){j=k;break a}}Ia(135116,135016,219,135153)}else j=0;while(0);p=+h[n+16>>3];c[C>>2]=~~p;H=+h[n+24>>3];c[C+4>>2]=~~H;c[C+8>>2]=~~(p+ +h[n>>3]);c[C+12>>2]=~~(H+ +h[n+8>>3]);y=c[d+24>>2]|0;y=bx(y,c[y>>2]|0,C)|0;if(!y){c[b>>2]=j;h[b+8>>3]=0.0;b=b+16|0;c[b>>2]=c[F>>2];c[b+4>>2]=c[F+4>>2];c[b+8>>2]=c[F+8>>2];c[b+12>>2]=c[F+12>>2]}else{q=D+4|0;r=D+8|0;s=D+12|0;t=E+4|0;u=E+8|0;d=E+12|0;v=E+4|0;w=E+8|0;x=E+12|0;g=0.0;o=y;do{n=c[(c[o+4>>2]|0)+16>>2]|0;if((n|0)!=(e|0)){H=+h[n>>3];c[D>>2]=~~H;m=+h[n+8>>3];c[q>>2]=~~m;c[r>>2]=~~(H+ +h[n+16>>3]);c[s>>2]=~~(m+ +h[n+24>>3]);m=+Hv(C,D);if(m>0.0){l=Iv(e,n)|0;l=f+(((l|0)<0?5:l)<<2)|0;k=c[l>>2]|0;if(k){H=+h[k>>3];c[E>>2]=~~H;p=+h[k+8>>3];c[t>>2]=~~p;c[u>>2]=~~(H+ +h[k+16>>3]);c[d>>2]=~~(p+ +h[k+24>>3]);p=+Hv(C,E);p=p>m?p:0.0;k=c[k+32>>2]|0;if((k|0)!=0?(H=+h[k+16>>3],c[E>>2]=~~H,z=+h[k+24>>3],c[t>>2]=~~z,c[u>>2]=~~(H+ +h[k>>3]),c[d>>2]=~~(z+ +h[k+8>>3]),z=+Hv(C,E),z>m):0)p=z>p?z:p;if(p>0.0)m=p;else c[l>>2]=n}else c[l>>2]=n;j=j+1|0;g=g+m}k=c[n+32>>2]|0;if(((k|0)!=0?(a[k+36>>0]|0)!=0:0)?(H=+h[k+16>>3],c[D>>2]=~~H,A=+h[k+24>>3],c[q>>2]=~~A,c[r>>2]=~~(H+ +h[k>>3]),c[s>>2]=~~(A+ +h[k+8>>3]),A=+Hv(C,D),A>0.0):0){l=Iv(e,n)|0;l=f+(((l|0)<0?5:l)<<2)|0;k=c[l>>2]|0;if(k){H=+h[k>>3];c[E>>2]=~~H;m=+h[k+8>>3];c[v>>2]=~~m;c[w>>2]=~~(H+ +h[k+16>>3]);c[x>>2]=~~(m+ +h[k+24>>3]);m=+Hv(C,E);m=m>A?m:0.0;k=c[k+32>>2]|0;if((k|0)!=0?(H=+h[k+16>>3],c[E>>2]=~~H,B=+h[k+24>>3],c[v>>2]=~~B,c[w>>2]=~~(H+ +h[k>>3]),c[x>>2]=~~(B+ +h[k+8>>3]),B=+Hv(C,E),B>A):0)m=B>m?B:m;if(!(m>0.0)){c[l>>2]=n;m=A}}else{c[l>>2]=n;m=A}j=j+1|0;g=g+m}}o=c[o>>2]|0}while((o|0)!=0);_w(y);c[b>>2]=j;h[b+8>>3]=g;b=b+16|0;c[b>>2]=c[F>>2];c[b+4>>2]=c[F+4>>2];c[b+8>>2]=c[F+8>>2];c[b+12>>2]=c[F+12>>2]}i=G;return}function Gv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;return (c[b>>2]|0)-(c[d>>2]|0)|0}function Hv(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[a+8>>2]|0;i=c[b>>2]|0;if((((e|0)>=(i|0)?(j=c[a>>2]|0,k=c[b+8>>2]|0,(j|0)<=(k|0)):0)?(l=c[a+12>>2]|0,f=c[b+4>>2]|0,(l|0)>=(f|0)):0)?(g=c[a+4>>2]|0,h=c[b+12>>2]|0,(g|0)<=(h|0)):0)d=(+(((e|0)<(k|0)?e:k)|0)-+(((j|0)>(i|0)?j:i)|0))*(+(((l|0)<(h|0)?l:h)|0)-+(((g|0)>(f|0)?g:f)|0));else d=0.0;return +d}function Iv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,i=0.0,j=0.0,k=0.0;e=c[b+32>>2]|0;f=c[d+32>>2]|0;if((e|0)==(f|0))Ia(135166,135016,276,135176);do if((a[e+36>>0]|0)!=0?(a[f+36>>0]|0)!=0:0){j=+h[b>>3];if(j==0.0?+h[b+8>>3]==0.0:0){e=-1;break}k=+h[d>>3];i=+h[d+8>>3];if(!(k==0.0&i==0.0)){g=+h[b+8>>3];if(i<g){if(k<j){e=0;break}e=k>j?2:1;break}e=k<j;if(i>g){if(e){e=6;break}e=k>j?8:7;break}if(!e)if(k>j)e=5;else e=-1;else e=3}else e=-1}else e=-1;while(0);return e|0}function Jv(b){b=b|0;var d=0,e=0,f=0;d=pA(b)|0;if(d>>>0>=(c[14904]|0)>>>0){d=d+11|0;c[14904]=d;d=cq(c[14905]|0,d)|0;c[14905]=d;if(!d)d=0;else e=4}else{d=c[14905]|0;e=4}if((e|0)==4){e=a[b>>0]|0;if(e<<24>>24){f=d;while(1){b=b+1|0;d=e&255;if(_x(d)|0)e=(ny(d)|0)&255;d=f+1|0;a[f>>0]=e;e=a[b>>0]|0;if(!(e<<24>>24))break;else f=d}}a[d>>0]=0;d=c[14905]|0}return d|0}function Kv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.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;I=i;i=i+112|0;y=I+64|0;o=I+48|0;B=I+92|0;C=I+40|0;E=I+32|0;G=I+24|0;D=I+16|0;F=I+8|0;H=I;l=I+88|0;u=I+84|0;v=I+80|0;w=I+76|0;c[e+32>>2]=f;while(1){j=b+1|0;if((a[b>>0]|0)==32)b=j;else{x=j;break}}c[w>>2]=255;j=a[b>>0]|0;a:do if(j<<24>>24==35){c[o>>2]=l;c[o+4>>2]=u;c[o+8>>2]=v;c[o+12>>2]=w;if((Pz(b,135187,o)|0)<=2){j=a[b>>0]|0;z=21;break}switch(f|0){case 0:{t=+((c[l>>2]|0)>>>0)/255.0;h[D>>3]=t;s=+((c[u>>2]|0)>>>0)/255.0;h[F>>3]=s;n=+((c[v>>2]|0)>>>0)/255.0;h[H>>3]=n;p=+((c[w>>2]|0)>>>0)/255.0;g=s<n?s:n;q=s>n?s:n;q=q<t?t:q;g=q-(g>t?t:g);r=q>0.0?g/q:0.0;if(r>0.0){k=(q-t)/g;m=(q-s)/g;g=(q-n)/g;do if(!(q==t)){if(q==s){g=k+2.0-g;break}if(q==n)g=m+4.0-k;else g=0.0}else g=g-m;while(0);g=g*60.0;if(g<0.0)g=g+360.0}else g=0.0;t=g/360.0;h[C>>3]=t;h[G>>3]=q;h[E>>3]=r;h[e>>3]=t;h[e+8>>3]=r;h[e+16>>3]=q;h[e+24>>3]=p;b=0;break a}case 1:{a[e>>0]=c[l>>2];a[e+1>>0]=c[u>>2];a[e+2>>0]=c[v>>2];a[e+3>>0]=c[w>>2];b=0;break a}case 3:{q=+((c[l>>2]|0)>>>0)/255.0;h[D>>3]=q;r=+((c[u>>2]|0)>>>0)/255.0;h[F>>3]=r;s=+((c[v>>2]|0)>>>0)/255.0;h[H>>3]=s;q=1.0-q;r=1.0-r;s=1.0-s;t=q<r?q:r;t=s<t?s:t;a[e>>0]=~~(q-t)*255;a[e+1>>0]=~~(r-t)*255;a[e+2>>0]=~~(s-t)*255;a[e+3>>0]=~~t*255;b=0;break a}case 2:{c[e>>2]=(((c[l>>2]|0)*65535|0)>>>0)/255|0;c[e+4>>2]=(((c[u>>2]|0)*65535|0)>>>0)/255|0;c[e+8>>2]=(((c[v>>2]|0)*65535|0)>>>0)/255|0;c[e+12>>2]=(((c[w>>2]|0)*65535|0)>>>0)/255|0;b=0;break a}case 4:{h[e>>3]=+((c[l>>2]|0)>>>0)/255.0;h[e+8>>3]=+((c[u>>2]|0)>>>0)/255.0;h[e+16>>3]=+((c[v>>2]|0)>>>0)/255.0;h[e+24>>3]=+((c[w>>2]|0)>>>0)/255.0;b=0;break a}default:{b=0;break a}}}else z=21;while(0);b:do if((z|0)==21){if(!(j<<24>>24!=46?((j&255)+-48|0)>>>0>=10:0))z=23;do if((z|0)==23){j=pA(b)|0;if(j>>>0>=(c[14906]|0)>>>0){j=j+11|0;c[14906]=j;j=cq(c[14907]|0,j)|0;c[14907]=j;if(!j){b=-1;break b}else l=b}else{l=b;j=c[14907]|0}c:while(1){o=l+1|0;l=a[l>>0]|0;switch(l<<24>>24){case 0:break c;case 44:{l=32;break}default:{}}a[j>>0]=l;l=o;j=j+1|0}a[j>>0]=0;z=c[14907]|0;c[y>>2]=C;c[y+4>>2]=E;c[y+8>>2]=G;if((Pz(z,135201,y)|0)!=3){j=a[b>>0]|0;break}m=+h[C>>3];m=m<1.0?m:1.0;m=m>0.0?m:0.0;h[C>>3]=m;k=+h[E>>3];k=k<1.0?k:1.0;k=k>0.0?k:0.0;h[E>>3]=k;g=+h[G>>3];g=g<1.0?g:1.0;g=g>0.0?g:0.0;h[G>>3]=g;switch(f|0){case 0:{h[e>>3]=m;h[e+8>>3]=k;h[e+16>>3]=g;h[e+24>>3]=1.0;b=0;break b}case 1:{Mv(m,k,g,D,F,H);a[e>>0]=~~(+h[D>>3]*255.0);a[e+1>>0]=~~(+h[F>>3]*255.0);a[e+2>>0]=~~(+h[H>>3]*255.0);a[e+3>>0]=-1;b=0;break b}case 3:{Mv(m,k,g,D,F,H);q=1.0-+h[D>>3];r=1.0-+h[F>>3];s=1.0-+h[H>>3];t=q<r?q:r;t=s<t?s:t;a[e>>0]=~~(q-t)*255;a[e+1>>0]=~~(r-t)*255;a[e+2>>0]=~~(s-t)*255;a[e+3>>0]=~~t*255;b=0;break b}case 2:{Mv(m,k,g,D,F,H);c[e>>2]=~~(+h[D>>3]*65535.0);c[e+4>>2]=~~(+h[F>>3]*65535.0);c[e+8>>2]=~~(+h[H>>3]*65535.0);c[e+12>>2]=65535;b=0;break b}case 4:{Mv(m,k,g,D,F,H);h[e>>3]=+h[D>>3];h[e+8>>3]=+h[F>>3];h[e+16>>3]=+h[H>>3];h[e+24>>3]=1.0;b=0;break b}default:{b=0;break b}}}while(0);if(((j<<24>>24!=98?!(j<<24>>24==119|(rA(x,135211,4)|0)==0):0)?!(j<<24>>24==108|(rA(x,135216,4)|0)==0):0)?(rA(x,135221,8)|0)!=0:0){do if(j<<24>>24==47){j=jA(x,47)|0;if(!j)b=x;else{if((a[x>>0]|0)!=47){G=(qA(135230,x,4)|0)==0;b=G?j+1|0:b;break}j=c[14908]|0;if(((j|0)!=0?(a[j>>0]|0)!=0:0)?(qA(135230,j,3)|0)!=0:0){b=Nv(j,b+2|0)|0;break}b=b+2|0}}else{j=c[14908]|0;if(((j|0)!=0?(a[j>>0]|0)!=0:0)?(qA(135230,j,3)|0)!=0:0)b=Nv(j,b)|0}while(0);b=Jv(b)|0;c[B>>2]=b;if(!b){b=-1;break}}else c[B>>2]=b;l=c[14909]|0;if(((l|0)!=0?(A=c[l>>2]|0,(a[A>>0]|0)==(a[b>>0]|0)):0)?(lA(A,b)|0)==0:0){j=l;b=l}else{b=Zz(B,59640,2491,12,42)|0;c[14909]=b;if(!b)switch(f|0){case 0:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[e+24>>3]=1.0;b=1;break b}case 1:{a[e+2>>0]=0;a[e+1>>0]=0;a[e>>0]=0;a[e+3>>0]=-1;b=1;break b}case 3:{a[e>>0]=0;a[e+1>>0]=0;a[e+2>>0]=0;a[e+3>>0]=0;b=1;break b}case 2:{c[e+8>>2]=0;c[e+4>>2]=0;c[e>>2]=0;c[e+12>>2]=65535;b=1;break b}case 4:{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;h[e+24>>3]=1.0;b=1;break b}default:{b=1;break b}}else j=b}switch(f|0){case 0:{h[e>>3]=+(d[j+4>>0]|0)/255.0;h[e+8>>3]=+(d[b+5>>0]|0)/255.0;h[e+16>>3]=+(d[b+6>>0]|0)/255.0;h[e+24>>3]=+(d[b+10>>0]|0)/255.0;b=0;break b}case 1:{a[e>>0]=a[j+7>>0]|0;a[e+1>>0]=a[(c[14909]|0)+8>>0]|0;a[e+2>>0]=a[(c[14909]|0)+9>>0]|0;a[e+3>>0]=a[(c[14909]|0)+10>>0]|0;b=0;break b}case 3:{q=+(d[j+7>>0]|0)/255.0;h[D>>3]=q;r=+(d[b+8>>0]|0)/255.0;h[F>>3]=r;s=+(d[b+9>>0]|0)/255.0;h[H>>3]=s;q=1.0-q;r=1.0-r;s=1.0-s;t=q<r?q:r;t=s<t?s:t;a[e>>0]=~~(q-t)*255;a[e+1>>0]=~~(r-t)*255;a[e+2>>0]=~~(s-t)*255;a[e+3>>0]=~~t*255;b=0;break b}case 2:{c[e>>2]=(d[j+7>>0]|0)*257;c[e+4>>2]=(d[b+8>>0]|0)*257;c[e+8>>2]=(d[b+9>>0]|0)*257;c[e+12>>2]=(d[b+10>>0]|0)*257;b=0;break b}case 4:{h[e>>3]=+(d[j+7>>0]|0)/255.0;h[e+8>>3]=+(d[b+8>>0]|0)/255.0;h[e+16>>3]=+(d[b+9>>0]|0)/255.0;h[e+24>>3]=+(d[b+10>>0]|0)/255.0;b=0;break b}default:{b=0;break b}}}while(0);i=I;return b|0}function Lv(a){a=a|0;c[14908]=a;return}function Mv(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var g=0.0,i=0.0,j=0;a:do if(!(b<=0.0)){a=!(a>=1.0)?a*6.0:0.0;j=~~a;a=a-+(j|0);i=(1.0-b)*c;g=(1.0-a*b)*c;a=(1.0-(1.0-a)*b)*c;switch(j|0){case 0:{h[d>>3]=c;h[e>>3]=a;h[f>>3]=i;break a}case 1:{h[d>>3]=g;h[e>>3]=c;h[f>>3]=i;break a}case 2:{h[d>>3]=i;h[e>>3]=c;h[f>>3]=a;break a}case 3:{h[d>>3]=i;h[e>>3]=g;h[f>>3]=c;break a}case 4:{h[d>>3]=a;h[e>>3]=i;h[f>>3]=c;break a}case 5:{h[d>>3]=c;h[e>>3]=i;h[f>>3]=g;break a}default:break a}}else{h[d>>3]=c;h[e>>3]=c;h[f>>3]=c}while(0);return}function Nv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=pA(a)|0;d=(pA(b)|0)+d|0;if((d+3|0)>>>0<(c[22383]|0)>>>0)d=c[22384]|0;else{d=d+13|0;c[22383]=d;d=cq(c[22384]|0,d)|0;c[22384]=d}c[e>>2]=a;c[e+4>>2]=b;Oz(d,160722,e)|0;i=f;return c[22384]|0}function Ov(a,b){a=a|0;b=b|0;return hA(c[a>>2]|0,c[b>>2]|0)|0}function Pv(a,b,d,e,f){a=a|0;b=+b;d=+d;e=+e;f=+f;var g=0.0,i=0.0,j=0.0,k=0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0.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,N=0,P=0,T=0,U=0,V=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0,ka=0.0,la=0.0,ma=0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0;na=+h[a>>3];la=+h[a+8>>3];j=+W(+(+R(+e)/d),+(+Q(+e)/b));fa=+W(+(+R(+f)/d),+(+Q(+f)/b));fa=fa-+M(+((fa-j)/6.283185307179586))*6.283185307179586;ia=+Q(+j);ka=ia*b;ha=+R(+j);ga=ha*d;g=na+ka-ga*0.0;ka=ga+(la+ka*0.0);ga=d/b;ma=$p(8)|0;fa=(f-e>3.141592653589793&fa-j<3.141592653589793?fa+6.283185307179586:fa)-j;t=ga<.25?42616:42872;u=(ga*(ga*.001+4.98)+.207)/(ga+.0067)*b;v=t+8|0;w=t+16|0;x=t+24|0;y=t+32|0;z=t+40|0;A=t+48|0;B=t+56|0;C=t+64|0;D=t+72|0;E=t+80|0;F=t+88|0;G=t+96|0;H=t+104|0;I=t+112|0;J=t+120|0;K=t+128|0;L=t+136|0;N=t+144|0;P=t+152|0;T=t+160|0;U=t+168|0;V=t+176|0;Y=t+184|0;Z=t+192|0;_=t+200|0;$=t+208|0;aa=t+216|0;ba=t+224|0;ca=t+232|0;da=t+240|0;ea=t+248|0;o=fa;a=1;do{if(!(o<=1.5707963267948966))k=0;else{if((a|0)<=0){ja=4;break}r=(+h[w>>3]+ga*(ga*+h[t>>3]+ +h[v>>3]))/(ga+ +h[x>>3]);e=(+h[A>>3]+ga*(ga*+h[y>>3]+ +h[z>>3]))/(ga+ +h[B>>3]);f=(+h[E>>3]+ga*(ga*+h[C>>3]+ +h[D>>3]))/(ga+ +h[F>>3]);i=(+h[I>>3]+ga*(ga*+h[G>>3]+ +h[H>>3]))/(ga+ +h[J>>3]);l=(+h[N>>3]+ga*(ga*+h[K>>3]+ +h[L>>3]))/(ga+ +h[P>>3]);n=(+h[V>>3]+ga*(ga*+h[T>>3]+ +h[U>>3]))/(ga+ +h[Y>>3]);p=(+h[$>>3]+ga*(ga*+h[Z>>3]+ +h[_>>3]))/(ga+ +h[aa>>3]);q=(+h[da>>3]+ga*(ga*+h[ba>>3]+ +h[ca>>3]))/(ga+ +h[ea>>3]);s=j;m=0;do{ra=s;s=o+s;oa=(ra+s)*.5;qa=+Q(+(oa*2.0));pa=+Q(+(oa*4.0));oa=+Q(+(oa*6.0));k=u*+X(+(r+e*qa+f*pa+i*oa+(s-ra)*(l+n*qa+p*pa+q*oa)))<=1.0e-05;m=m+1|0}while((m|0)<(a|0)&k);k=k&1}a=a<<1;o=fa/+(a|0)}while((a|0)<1024&k<<24>>24==0);if((ja|0)==4){a=a<<1;o=fa/+(a|0)}l=ha*b;e=ia*d;c[22385]=100;ea=$p(1600)|0;c[ma>>2]=ea;h[ea>>3]=na;ja=ea+8|0;h[ja>>3]=la;m=ma+4|0;c[m>>2]=1;Qv(ma,+h[ea>>3],+h[ja>>3],g,ka,g,ka);n=+S(+(o*.5));n=+R(+o)*(+O(+(n*(n*3.0)+4.0))+-1.0)/3.0;if((a|0)>0){k=0;i=-l-e*0.0;f=ka;e=e-l*0.0;do{j=o+j;ia=+Q(+j);ka=+R(+j);pa=ia*b;ra=ka*d;ka=ka*b;ia=ia*d;oa=g;g=na+pa-ra*0.0;qa=f;f=ra+(la+pa*0.0);pa=i;i=-ka-ia*0.0;ra=e;e=ia-ka*0.0;Qv(ma,oa+n*pa,qa+n*ra,g-n*i,f-n*e,g,f);k=k+1|0}while((k|0)!=(a|0))}ea=c[ma>>2]|0;qa=+h[ea>>3];ra=+h[ea+8>>3];ja=(c[m>>2]|0)+-1|0;Qv(ma,+h[ea+(ja<<4)>>3],+h[ea+(ja<<4)+8>>3],qa,ra,qa,ra);c[ma>>2]=rB(c[ma>>2]|0,c[m>>2]<<4)|0;c[22385]=0;return ma|0}function Qv(a,b,d,e,f,g,i){a=a|0;b=+b;d=+d;e=+e;f=+f;g=+g;i=+i;var j=0,k=0,l=0,m=0;l=a+4|0;j=c[l>>2]|0;k=c[22385]|0;if((j+3|0)<(k|0))k=c[a>>2]|0;else{c[22385]=k<<1;k=rB(c[a>>2]|0,k<<5)|0;c[a>>2]=k;j=c[l>>2]|0}h[k+(j<<4)>>3]=b;m=j+1|0;h[k+(j<<4)+8>>3]=d;h[k+(m<<4)>>3]=e;a=j+2|0;h[k+(m<<4)+8>>3]=f;h[k+(a<<4)>>3]=g;c[l>>2]=j+3;h[k+(a<<4)+8>>3]=i;return}function Rv(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;o=p;g=To(d)|0;j=c[g>>2]|0;n=c[j+4>>2]|0;c[g+4>>2]=n;c[g+12>>2]=c[j+12>>2];switch(n|0){case 2:{c[g+8>>2]=c[j+8>>2];break}case 0:{c[g+8>>2]=c[j+8>>2];break}case 1:{c[g+8>>2]=c[j+8>>2];break}case 3:{c[g+8>>2]=c[j+8>>2];break}default:{}}c[g+208>>2]=c[j+208>>2];c[g+228>>2]=c[j+228>>2];c[g+244>>2]=c[j+244>>2];n=g+260|0;b[n>>1]=b[n>>1]&-2|b[j+260>>1]&1;l=+h[f+56>>3];k=+h[f+64>>3];switch(a[f+80>>0]|0){case 116:{k=k+(+h[f+48>>3]-+aw(e))*.5+-1.0;break}case 98:{k=k-(+h[f+48>>3]-+aw(e))*.5+-1.0;break}default:{}}h[o>>3]=l;h[o+8>>3]=k;c[o+20>>2]=c[f+8>>2];c[o+16>>2]=c[f+4>>2];h[o+32>>3]=+h[f+16>>3];f=d+16|0;j=zj(c[(c[f>>2]|0)+8>>2]|0,160729)|0;g=o+56|0;c[g>>2]=j;m=o+60|0;c[m>>2]=c[(c[f>>2]|0)+212>>2];n=o+64|0;a[n>>0]=0;if(!((j|0)!=0?(a[j>>0]|0)!=0:0))c[g>>2]=160740;if((a[e+4>>0]|0)==1){g=c[e>>2]|0;Uu(d,c[(c[d>>2]|0)+336>>2]|0);j=c[g+24>>2]|0;if(!j)Ru(d,160746);else Ru(d,j);cw(d,g,o);if(a[n>>0]|0)pB(c[m>>2]|0)}else bw(d,c[e>>2]|0,o);o=c[f>>2]|0;c[o+208>>2]=0;c[o+228>>2]=0;c[o+244>>2]=0;c[o+212>>2]=0;Uo(d);i=p;return}function Sv(a){a=a|0;pB(c[a>>2]|0);pB(c[a+4>>2]|0);pB(c[a+8>>2]|0);pB(c[a+16>>2]|0);pB(c[a+12>>2]|0);pB(c[a+20>>2]|0);pB(c[a+24>>2]|0);return}function Tv(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(a){e=a+4|0;if((b[e>>1]|0)>0){h=0;k=c[a>>2]|0;while(1){g=k+4|0;if((b[g>>1]|0)>0){i=0;j=c[k>>2]|0;while(1){d=c[j>>2]|0;if(d)pB(d);d=c[j+8>>2]|0;if((d|0)!=0?(f=c[j+12>>2]|0,(f|0)!=0):0)zb[f&127](d);i=i+1|0;if((i|0)>=(b[g>>1]|0))break;else j=j+56|0}}h=h+1|0;if((h|0)>=(b[e>>1]|0))break;else k=k+24|0}}d=c[a>>2]|0;if(d)pB(d);pB(a)}return}function Uv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;switch(a[b+4>>0]|0){case 1:{g=c[b>>2]|0;h=g+84|0;if((c[g+100>>2]|0)==-1)Pi(c[h>>2]|0)|0;else{f=c[h>>2]|0;pB(c[g+92>>2]|0);pB(c[g+96>>2]|0);e=c[f>>2]|0;if(e)do{Uv(e+88|0,0);Sv(e);pB(e);f=f+4|0;e=c[f>>2]|0}while((e|0)!=0);pB(c[h>>2]|0)}Sv(g);pB(g);break}case 3:{h=c[b>>2]|0;pB(c[h+32>>2]|0);pB(h);break}default:Tv(c[b>>2]|0)}if(d)pB(b);return}function Vv(b,e,f){b=b|0;e=e|0;f=f|0;var g=0;b=c[(c[(c[b+16>>2]|0)+104>>2]|0)+72>>2]|0;if((a[b+4>>0]|0)!=2?(g=dw(c[b>>2]|0,e)|0,(g|0)!=0):0){c[f>>2]=d[g+35>>0];b=g+48|0}else b=0;return b|0}function Wv(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return 0}function Xv(d){d=d|0;var f=0,g=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=d+92|0;c[s>>2]=$p((c[d+100>>2]<<2)+4|0)|0;r=$p((c[d+104>>2]<<2)+4|0)|0;c[d+96>>2]=r;g=c[d+84>>2]|0;f=c[g>>2]|0;if(f){q=d+32|0;do{l=b[f+82>>1]|0;j=l&65535;i=+h[f+72>>3];if(l<<16>>16==1)m=~~i;else{m=~~((i-+(_((a[q>>0]|0)+-1|0,j+-1|0)|0))/+(j|0));m=(m|0)>1?m:1}o=b[f+80>>1]|0;n=o&65535;i=+h[f+64>>3];if(o<<16>>16==1)p=~~i;else{p=~~((i-+(_((a[q>>0]|0)+-1|0,n+-1|0)|0))/+(n|0));p=(p|0)>1?p:1}d=e[f+86>>1]|0;k=j+d|0;if(l<<16>>16){j=c[s>>2]|0;do{l=j+(d<<2)|0;t=c[l>>2]|0;c[l>>2]=(t|0)>(m|0)?t:m;d=d+1|0}while((d|0)<(k|0))}d=e[f+84>>1]|0;f=n+d|0;if(o<<16>>16)do{t=r+(d<<2)|0;o=c[t>>2]|0;c[t>>2]=(o|0)>(p|0)?o:p;d=d+1|0}while((d|0)<(f|0));g=g+4|0;f=c[g>>2]|0}while((f|0)!=0)}return}function Yv(a,d,f){a=a|0;d=d|0;f=f|0;var g=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;v=i;i=i+48|0;s=v+40|0;r=v+32|0;u=v+24|0;t=v+16|0;q=v+8|0;n=v;p=a+104|0;o=a+100|0;if((c[p>>2]|0)>=0){j=f+16|0;k=0;l=0;while(1){if(k>>>0<21)g=c[89544+(k<<2)>>2]|0;else{c[n>>2]=k;Oz(160752,160852,n)|0;g=160752}m=l;l=Xk(f,g,1)|0;xl(l,160855,304,1)|0;g=l+16|0;c[(c[g>>2]|0)+176>>2]=0;x=$p((c[o>>2]<<2)+4|0)|0;w=c[g>>2]|0;c[w+172>>2]=x;c[w+184>>2]=0;w=$p((c[o>>2]<<2)+4|0)|0;c[(c[g>>2]|0)+180>>2]=w;if(!m)c[(c[j>>2]|0)+192>>2]=l;else c[(c[m+16>>2]|0)+164>>2]=l;if((k|0)>=(c[p>>2]|0))break;else k=k+1|0}}if((c[o>>2]|0)>=0){j=d+16|0;k=0;l=0;while(1){if(k>>>0<21)g=c[89544+(k<<2)>>2]|0;else{c[q>>2]=k;Oz(160752,160852,q)|0;g=160752}m=l;l=Xk(d,g,1)|0;xl(l,160855,304,1)|0;x=l+16|0;c[(c[x>>2]|0)+176>>2]=0;n=$p((c[p>>2]<<2)+4|0)|0;w=c[x>>2]|0;c[w+172>>2]=n;c[w+184>>2]=0;w=$p((c[p>>2]<<2)+4|0)|0;c[(c[x>>2]|0)+180>>2]=w;if(!m)c[(c[j>>2]|0)+192>>2]=l;else c[(c[m+16>>2]|0)+164>>2]=l;if((k|0)>=(c[o>>2]|0))break;else k=k+1|0}}j=c[a+84>>2]|0;g=c[j>>2]|0;if(g)do{l=g+84|0;x=b[l>>1]|0;k=x&65535;if((x&65535)<21)k=c[89544+(k<<2)>>2]|0;else{c[t>>2]=k;Oz(160752,160852,t)|0;k=160752}m=Xk(f,k,0)|0;k=(e[g+80>>1]|0)+(e[l>>1]|0)|0;if(k>>>0<21)k=c[89544+(k<<2)>>2]|0;else{c[u>>2]=k;Oz(160752,160852,u)|0;k=160752}l=Xk(f,k,0)|0;ew(f,m,l,~~+h[g+64>>3]);l=g+86|0;x=b[l>>1]|0;k=x&65535;if((x&65535)<21)k=c[89544+(k<<2)>>2]|0;else{c[r>>2]=k;Oz(160752,160852,r)|0;k=160752}m=Xk(d,k,0)|0;k=(e[g+82>>1]|0)+(e[l>>1]|0)|0;if(k>>>0<21)k=c[89544+(k<<2)>>2]|0;else{c[s>>2]=k;Oz(160752,160852,s)|0;k=160752}x=Xk(d,k,0)|0;ew(d,m,x,~~+h[g+72>>3]);j=j+4|0;g=c[j>>2]|0}while((g|0)!=0);fw(f);fw(d);i=v;return}function Zv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;b=c[(c[(c[(c[b+16>>2]|0)+192>>2]|0)+16>>2]|0)+164>>2]|0;if(b){g=c[a+92>>2]|0;h=0;f=0;while(1){i=c[b+16>>2]|0;e=i+232|0;c[g+(h<<2)>>2]=(c[e>>2]|0)-f;b=c[i+164>>2]|0;if(!b)break;else{h=h+1|0;f=c[e>>2]|0}}}b=c[(c[(c[(c[d+16>>2]|0)+192>>2]|0)+16>>2]|0)+164>>2]|0;if(b){g=c[a+96>>2]|0;h=0;f=0;while(1){i=c[b+16>>2]|0;e=i+232|0;c[g+(h<<2)>>2]=(c[e>>2]|0)-f;b=c[i+164>>2]|0;if(!b)break;else{h=h+1|0;f=c[e>>2]|0}}}return}function _v(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;e=h;c[e>>2]=c[12648];b=c[a+100>>2]|0;if((b|0)!=1?(d=a+104|0,(c[d>>2]|0)!=1):0){c[a+92>>2]=$p((b<<2)+4|0)|0;c[a+96>>2]=$p((c[d>>2]<<2)+4|0)|0;c[f>>2]=c[e>>2];g=ak(160868,f,0)|0;c[f>>2]=c[e>>2];f=ak(160873,f,0)|0;xl(g,160878,280,1)|0;xl(f,160878,280,1)|0;Yv(a,g,f);eq(g,2,2147483647)|0;eq(f,2,2147483647)|0;Zv(a,g,f);b=c[(c[f+16>>2]|0)+192>>2]|0;if(b)do{e=b+16|0;b=c[e>>2]|0;d=c[b+172>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+180>>2]|0;if(d){pB(d);b=c[e>>2]|0}b=c[b+164>>2]|0}while((b|0)!=0);dk(g)|0;dk(f)|0}else Xv(a);i=h;return}function $v(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=i;i=i+256|0;j=p+104|0;o=p+248|0;g=p;k=p+32|0;n=p+232|0;c[k+48>>2]=b;switch(rl(b)|0){case 0:{e=c[b+60>>2]|0;l=k+52|0;c[l>>2]=e;break}case 1:{e=gl(b)|0;l=k+52|0;c[l>>2]=e;break}case 2:{e=gl(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;l=k+52|0;c[l>>2]=e;break}default:{l=k+52|0;e=0}}m=c[e+60>>2]|0;h[k+32>>3]=+h[d+16>>3];c[k+16>>2]=c[d+4>>2];c[k+20>>2]=c[d+8>>2];c[k+40>>2]=0;f=tx(c[d>>2]|0,o,k)|0;if(!f){gj(n,128,j);a[d+82>>0]=0;a:do switch(rl(b)|0){case 0:{jj(n,ok(b)|0)|0;break}case 1:{jj(n,ok(b)|0)|0;break}case 2:{jj(n,ok(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)|0;k=b+-48|0;jj(n,ok(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0)|0;if(!(hk(gl(c[((c[b>>2]&3|0)==2?b:k)+40>>2]|0)|0)|0)){jj(n,160894)|0;break a}else{jj(n,160891)|0;break a}}default:{}}while(0);f=n+4|0;e=c[f>>2]|0;if(e>>>0>=(c[n+8>>2]|0)>>>0){hj(n,1)|0;e=c[f>>2]|0}a[e>>0]=0;e=c[n>>2]|0;c[f>>2]=e;e=oA(e)|0;c[d>>2]=e;if((c[d+12>>2]|0)==1)e=gt(e)|0;else e=ft(e,c[l>>2]|0)|0;pB(c[d>>2]|0);c[d>>2]=e;Pp(c[(c[m+16>>2]|0)+144>>2]|0,d);kj(n);e=c[o>>2]|0}else{e=f+4|0;if((a[e>>0]|0)==1){if((c[(c[f>>2]|0)+24>>2]|0)==0?(gw(b)|0)!=0:0){n=oA(gw(b)|0)|0;c[(c[f>>2]|0)+24>>2]=n}b=hw(m,c[f>>2]|0,0,k)|0;c[o>>2]=c[o>>2]|b;b=c[f>>2]|0;r=+h[b+64>>3]*.5;q=+h[b+72>>3]*.5;h[g>>3]=-r;n=g+8|0;h[n>>3]=-q;l=g+16|0;h[l>>3]=r;m=g+24|0;h[m>>3]=q;c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];c[j+20>>2]=c[g+20>>2];c[j+24>>2]=c[g+24>>2];c[j+28>>2]=c[g+28>>2];iw(b,j,15);h[d+24>>3]=+h[l>>3]-+h[g>>3];h[d+32>>3]=+h[m>>3]-+h[n>>3]}else{jw(c[(c[m+16>>2]|0)+144>>2]|0,c[f>>2]|0,k);n=c[f>>2]|0;q=+h[n+24>>3]*.5;r=+h[n+32>>3]*.5;h[g>>3]=-q;h[g+8>>3]=-r;h[g+16>>3]=q;h[g+24>>3]=r;n=n+8|0;c[n>>2]=c[g>>2];c[n+4>>2]=c[g+4>>2];c[n+8>>2]=c[g+8>>2];c[n+12>>2]=c[g+12>>2];c[n+16>>2]=c[g+16>>2];c[n+20>>2]=c[g+20>>2];c[n+24>>2]=c[g+24>>2];c[n+28>>2]=c[g+28>>2];h[d+24>>3]=q+q;h[d+32>>3]=r+r}c[d+72>>2]=f;if((a[e>>0]|0)==1){pB(c[d>>2]|0);c[d>>2]=oA(160897)|0}e=c[o>>2]|0}i=p;return e|0}function aw(b){b=b|0;var d=0.0;switch(a[b+4>>0]|0){case 1:{b=c[b>>2]|0;d=+h[b+72>>3]-+h[b+56>>3];break}case 3:{b=c[b>>2]|0;d=+h[b+24>>3]-+h[b+8>>3];break}case 2:{b=c[b>>2]|0;d=+h[b+32>>3]-+h[b+16>>3];break}default:d=0.0}return +d}function bw(e,f,g){e=e|0;f=f|0;g=g|0;var j=0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0.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.0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0.0;T=i;i=i+128|0;P=T+104|0;R=T+48|0;Q=T+16|0;O=T;j=b[f+4>>1]|0;if(j<<16>>16>=1){l=+h[f+24>>3];N=+h[f+8>>3];r=(l-N)*.5;N=+h[g>>3]+(l+N)*.5;l=+h[f+32>>3];m=+h[f+16>>3];U=+h[g+8>>3]+(l+m)*.5;L=j<<16>>16;M=c[f>>2]|0;y=a[f+6>>0]|0;J=g+16|0;J=d[J>>0]|d[J+1>>0]<<8|d[J+2>>0]<<16|d[J+3>>0]<<24;K=g+20|0;K=d[K>>0]|d[K+1>>0]<<8|d[K+2>>0]<<16|d[K+3>>0]<<24;s=g+32|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];p=+h[k>>3];s=O;c[s>>2]=0;c[s+4>>2]=0;q=N-r;r=r+N;s=O+8|0;h[s>>3]=U+(l-m)*.5;Ou(e,1);t=Q+16|0;u=Q+4|0;v=Q+24|0;w=R+4|0;x=R+16|0;y=y<<24>>24==0;z=R+24|0;A=R+8|0;B=R+32|0;C=R+40|0;D=R+48|0;E=K;F=Q+8|0;I=0;do{switch(a[M+(I*24|0)+6>>0]|0){case 108:{l=q;break}case 114:{l=r-+h[M+(I*24|0)+8>>3];break}default:l=N-+h[M+(I*24|0)+8>>3]*.5}G=M+(I*24|0)+16|0;h[s>>3]=+h[s>>3]-+h[G>>3];H=M+(I*24|0)+4|0;if((b[H>>1]|0)>0){n=0;o=c[M+(I*24|0)>>2]|0;while(1){g=o+4|0;f=c[g>>2]|0;if(f){U=+h[f+16>>3];h[t>>3]=U>0.0?U:p;j=c[f>>2]|0;if(!j)c[Q>>2]=J;else c[Q>>2]=j;j=c[f+4>>2]|0;if(!j){c[u>>2]=K;j=E}else c[u>>2]=j;f=c[f+24>>2]&127;if(!f)S=18;else f=c[v>>2]&-128|f}else{h[t>>3]=p;c[Q>>2]=J;c[u>>2]=K;j=E;S=18}if((S|0)==18){S=0;f=c[v>>2]&-128}c[v>>2]=f;Ru(e,j);c[R>>2]=c[o>>2];c[w>>2]=Q;h[x>>3]=+h[o+16>>3];if(y)m=1.0;else m=+h[o+24>>3];h[z>>3]=m;c[F>>2]=c[(c[g>>2]|0)+8>>2];c[A>>2]=c[o+8>>2];j=o+32|0;h[B>>3]=+h[j>>3];h[C>>3]=+h[G>>3];a[D>>0]=108;h[O>>3]=l;c[P>>2]=c[O>>2];c[P+4>>2]=c[O+4>>2];c[P+8>>2]=c[O+8>>2];c[P+12>>2]=c[O+12>>2];Qu(e,P,R);n=n+1|0;if((n|0)>=(b[H>>1]|0))break;else{l=l+ +h[j>>3];o=o+56|0}}}I=I+1|0}while((I|0)!=(L|0));Pu(e)}i=T;return}function cw(f,g,j){f=f|0;g=g|0;j=j|0;var k=0,l=0.0,m=0.0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.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.0;ea=i;i=i+352|0;ba=ea+232|0;da=ea+160|0;T=ea+128|0;R=ea+64|0;S=ea+336|0;aa=ea+200|0;ca=ea+296|0;s=ea;t=ea+344|0;X=g+48|0;c[aa>>2]=c[X>>2];c[aa+4>>2]=c[X+4>>2];c[aa+8>>2]=c[X+8>>2];c[aa+12>>2]=c[X+12>>2];c[aa+16>>2]=c[X+16>>2];c[aa+20>>2]=c[X+20>>2];c[aa+24>>2]=c[X+24>>2];c[aa+28>>2]=c[X+28>>2];l=+h[j>>3];X=j+8|0;m=+h[X>>3];U=g+84|0;u=c[U>>2]|0;if(!(c[g>>2]|0))$=(c[g+8>>2]|0)!=0;else $=1;W=g+108|0;k=c[W>>2]|0;if(k)kw(j,k,43160);h[aa>>3]=l+ +h[aa>>3];V=aa+16|0;h[V>>3]=l+ +h[V>>3];V=aa+8|0;h[V>>3]=m+ +h[V>>3];V=aa+24|0;h[V>>3]=m+ +h[V>>3];if($?(c[f+152>>2]&4|0)==0:0){c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];c[ba+16>>2]=c[aa+16>>2];c[ba+20>>2]=c[aa+20>>2];c[ba+24>>2]=c[aa+24>>2];c[ba+28>>2]=c[aa+28>>2];V=mw(f,j,g,ba,ca)|0}else V=0;o=g+42|0;k=e[o>>1]|0;if(!(k&32)){n=c[g+20>>2]|0;if(n){r=nw(f,n,c[g+28>>2]|0,k,t)|0;if(!(b[o>>1]&4)){c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];c[ba+16>>2]=c[aa+16>>2];c[ba+20>>2]=c[aa+20>>2];c[ba+24>>2]=c[aa+24>>2];c[ba+28>>2]=c[aa+28>>2];Xu(f,ba,r)}else{k=a[g+33>>0]|0;c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];c[ba+16>>2]=c[aa+16>>2];c[ba+20>>2]=c[aa+20>>2];c[ba+24>>2]=c[aa+24>>2];c[ba+28>>2]=c[aa+28>>2];c[s>>2]=c[aa>>2];c[s+4>>2]=c[aa+4>>2];c[s+8>>2]=c[aa+8>>2];c[s+12>>2]=c[aa+12>>2];n=s+32|0;Q=ba+16|0;c[n>>2]=c[Q>>2];c[n+4>>2]=c[Q+4>>2];c[n+8>>2]=c[Q+8>>2];c[n+12>>2]=c[Q+12>>2];if((k&255)>1){q=+(k&255|0)*.5;p=q+ +h[s>>3];h[s>>3]=p;Q=s+8|0;m=q+ +h[Q>>3];h[Q>>3]=m;l=+h[n>>3]-q;h[n>>3]=l;Q=s+40|0;q=+h[Q>>3]-q;h[Q>>3]=q}else{l=+h[n>>3];m=+h[s+8>>3];p=+h[s>>3];q=+h[s+40>>3]}h[s+16>>3]=l;h[s+24>>3]=m;h[s+48>>3]=p;h[s+56>>3]=q;jr(f,s,4,4,r)}pB(c[t>>2]|0)}k=c[u>>2]|0;a:do if(k){x=T+16|0;y=T+8|0;z=T+24|0;A=f+152|0;B=ba+8|0;C=ba+32|0;D=ba+40|0;E=ba+16|0;F=ba+24|0;G=ba+48|0;H=ba+56|0;I=j+56|0;J=R+32|0;K=ba+16|0;L=R+8|0;M=R+40|0;N=R+16|0;O=R+24|0;P=R+48|0;Q=R+56|0;b:while(1){t=k+48|0;c[T>>2]=c[t>>2];c[T+4>>2]=c[t+4>>2];c[T+8>>2]=c[t+8>>2];c[T+12>>2]=c[t+12>>2];c[T+16>>2]=c[t+16>>2];c[T+20>>2]=c[t+20>>2];c[T+24>>2]=c[t+24>>2];c[T+28>>2]=c[t+28>>2];l=+h[j>>3];m=+h[X>>3];if(!(c[k>>2]|0))t=(c[k+8>>2]|0)!=0;else t=1;h[T>>3]=l+ +h[T>>3];h[x>>3]=l+ +h[x>>3];h[y>>3]=m+ +h[y>>3];h[z>>3]=m+ +h[z>>3];if(t?(c[A>>2]&4|0)==0:0){c[ba>>2]=c[T>>2];c[ba+4>>2]=c[T+4>>2];c[ba+8>>2]=c[T+8>>2];c[ba+12>>2]=c[T+12>>2];c[ba+16>>2]=c[T+16>>2];c[ba+20>>2]=c[T+20>>2];c[ba+24>>2]=c[T+24>>2];c[ba+28>>2]=c[T+28>>2];s=mw(f,j,k,ba,da)|0}else s=0;r=k+42|0;n=e[r>>1]|0;c:do if(!(n&32)){o=c[k+20>>2]|0;if(o){o=nw(f,o,c[k+28>>2]|0,n,S)|0;if(!(b[r>>1]&4)){c[ba>>2]=c[T>>2];c[ba+4>>2]=c[T+4>>2];c[ba+8>>2]=c[T+8>>2];c[ba+12>>2]=c[T+12>>2];c[ba+16>>2]=c[T+16>>2];c[ba+20>>2]=c[T+20>>2];c[ba+24>>2]=c[T+24>>2];c[ba+28>>2]=c[T+28>>2];Xu(f,ba,o)}else{n=a[k+33>>0]|0;c[ba>>2]=c[T>>2];c[ba+4>>2]=c[T+4>>2];c[ba+8>>2]=c[T+8>>2];c[ba+12>>2]=c[T+12>>2];c[ba+16>>2]=c[T+16>>2];c[ba+20>>2]=c[T+20>>2];c[ba+24>>2]=c[T+24>>2];c[ba+28>>2]=c[T+28>>2];c[R>>2]=c[T>>2];c[R+4>>2]=c[T+4>>2];c[R+8>>2]=c[T+8>>2];c[R+12>>2]=c[T+12>>2];c[J>>2]=c[K>>2];c[J+4>>2]=c[K+4>>2];c[J+8>>2]=c[K+8>>2];c[J+12>>2]=c[K+12>>2];if((n&255)>1){q=+(n&255|0)*.5;p=q+ +h[R>>3];h[R>>3]=p;m=q+ +h[L>>3];h[L>>3]=m;l=+h[J>>3]-q;h[J>>3]=l;q=+h[M>>3]-q;h[M>>3]=q}else{l=+h[J>>3];m=+h[L>>3];p=+h[R>>3];q=+h[M>>3]}h[N>>3]=l;h[O>>3]=m;h[P>>3]=p;h[Q>>3]=q;jr(f,R,4,4,o)}pB(c[S>>2]|0)}if(a[k+33>>0]|0){c[ba>>2]=c[T>>2];c[ba+4>>2]=c[T+4>>2];c[ba+8>>2]=c[T+8>>2];c[ba+12>>2]=c[T+12>>2];c[ba+16>>2]=c[T+16>>2];c[ba+20>>2]=c[T+20>>2];c[ba+24>>2]=c[T+24>>2];c[ba+28>>2]=c[T+28>>2];ow(f,k,ba)}n=k+88|0;switch(a[k+92>>0]|0){case 1:{cw(f,c[n>>2]|0,j);break c}case 3:{o=c[n>>2]|0;v=+h[j>>3];p=+h[o>>3]+v;q=+h[X>>3];w=+h[o+8>>3]+q;v=+h[o+16>>3]+v;q=+h[o+24>>3]+q;h[ba>>3]=v;h[B>>3]=q;h[C>>3]=p;h[D>>3]=w;h[E>>3]=p;h[F>>3]=q;h[G>>3]=v;h[H>>3]=w;n=c[o+36>>2]|0;if(!n)n=c[I>>2]|0;o=c[o+32>>2]|0;if(!o){k=40;break b}if(!(a[o>>0]|0)){k=42;break b}$u(f,o,ba,4,1,n);break c}default:{bw(f,c[n>>2]|0,j);break c}}}while(0);if(s)pw(f,da);if((t?(c[A>>2]&4|0)!=0:0)?(c[ba>>2]=c[T>>2],c[ba+4>>2]=c[T+4>>2],c[ba+8>>2]=c[T+8>>2],c[ba+12>>2]=c[T+12>>2],c[ba+16>>2]=c[T+16>>2],c[ba+20>>2]=c[T+20>>2],c[ba+24>>2]=c[T+24>>2],c[ba+28>>2]=c[T+28>>2],(mw(f,j,k,ba,da)|0)!=0):0)pw(f,da);u=u+4|0;k=c[u>>2]|0;if(!k)break a}if((k|0)==40)Ia(161229,160915,623,161237);else if((k|0)==42)Ia(161251,160915,624,161237)}while(0);k=c[U>>2]|0;av(f,1.0);n=c[k>>2]|0;if(n){x=g+24|0;y=da+8|0;z=da+16|0;A=da+24|0;B=da+8|0;C=da+16|0;D=da+24|0;do{k=k+4|0;t=n+100|0;if(a[t>>0]|0){o=c[x>>2]|0;u=c[k>>2]|0;p=+h[j>>3];m=+h[X>>3];o=(o|0)==0?160746:o;Su(f,o);Ru(f,o);q=p+ +h[n+48>>3];v=p+ +h[n+64>>3];w=m+ +h[n+56>>3];m=m+ +h[n+72>>3];o=a[t>>0]|0;if((o&1)!=0?(Y=c[n+96>>2]|0,((e[n+80>>1]|0)+(e[n+84>>1]|0)|0)<(c[Y+104>>2]|0)):0){o=b[n+86>>1]|0;do if(o<<16>>16){r=a[Y+32>>0]|0;if(((e[n+82>>1]|0)+(o&65535)|0)==(c[Y+100>>2]|0)){U=(r<<24>>24|0)/2|0;o=U+(d[Y+33>>0]|0)|0;s=r;l=w-+(U|0)-+(o&255|0);break}else{s=r;l=w-+((r<<24>>24|0)/2|0|0);o=0;break}}else{s=a[Y+32>>0]|0;o=(s<<24>>24|0)/2|0;l=w-+(o|0);o=o+(d[Y+33>>0]|0)|0}while(0);fa=v+ +((s<<24>>24|0)/2|0|0);h[da>>3]=fa;h[B>>3]=l;h[C>>3]=fa+0.0;h[D>>3]=l+(+(s<<24>>24)+(m+ +(o&255|0)-w));c[ba>>2]=c[da>>2];c[ba+4>>2]=c[da+4>>2];c[ba+8>>2]=c[da+8>>2];c[ba+12>>2]=c[da+12>>2];c[ba+16>>2]=c[da+16>>2];c[ba+20>>2]=c[da+20>>2];c[ba+24>>2]=c[da+24>>2];c[ba+28>>2]=c[da+28>>2];Xu(f,ba,1);o=a[t>>0]|0}if((o&2)!=0?(Z=b[n+86>>1]|0,_=c[n+96>>2]|0,((e[n+82>>1]|0)+(Z&65535)|0)<(c[_+100>>2]|0)):0){o=b[n+84>>1]|0;do if(!(o<<16>>16)){o=a[_+32>>0]|0;U=(o<<24>>24|0)/2|0;s=U+(d[_+33>>0]|0)|0;r=s&255;s=s&255;m=+(U|0);l=q-+(s|0)-m;if((e[n+80>>1]|0)==(c[_+104>>2]|0)){n=s<<1&255;break}if((u|0)!=0?(b[u+86>>1]|0)!=Z<<16>>16:0)n=~~(+(r&255)+(p+ +h[_+64>>3]-(v+m)))&255;else n=r}else{if(((e[n+80>>1]|0)+(o&65535)|0)==(c[_+104>>2]|0)){o=a[_+32>>0]|0;n=(o<<24>>24|0)/2|0;l=q-+(n|0);n=n+(d[_+33>>0]|0)&255;break}n=a[_+32>>0]|0;m=+((n<<24>>24|0)/2|0|0);l=q-m;if((u|0)!=0?(b[u+86>>1]|0)!=Z<<16>>16:0){o=n;n=~~(p+ +h[_+64>>3]-(v+m)+0.0)&255}else{o=n;n=0}}while(0);fa=w-+((o<<24>>24|0)/2|0|0);h[da>>3]=l;h[y>>3]=fa;h[z>>3]=l+(+(o<<24>>24)+(v+ +(n&255|0)-q));h[A>>3]=fa+0.0;c[ba>>2]=c[da>>2];c[ba+4>>2]=c[da+4>>2];c[ba+8>>2]=c[da+8>>2];c[ba+12>>2]=c[da+12>>2];c[ba+16>>2]=c[da+16>>2];c[ba+20>>2]=c[da+20>>2];c[ba+24>>2]=c[da+24>>2];c[ba+28>>2]=c[da+28>>2];Xu(f,ba,1)}}n=c[k>>2]|0}while((n|0)!=0)}if(a[g+33>>0]|0){c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];c[ba+16>>2]=c[aa+16>>2];c[ba+20>>2]=c[aa+20>>2];c[ba+24>>2]=c[aa+24>>2];c[ba+28>>2]=c[aa+28>>2];ow(f,g,ba)}}if(V)pw(f,ca);if(($?(c[f+152>>2]&4|0)!=0:0)?(c[ba>>2]=c[aa>>2],c[ba+4>>2]=c[aa+4>>2],c[ba+8>>2]=c[aa+8>>2],c[ba+12>>2]=c[aa+12>>2],c[ba+16>>2]=c[aa+16>>2],c[ba+20>>2]=c[aa+20>>2],c[ba+24>>2]=c[aa+24>>2],c[ba+28>>2]=c[aa+28>>2],(mw(f,j,g,ba,ca)|0)!=0):0)pw(f,ca);if(c[W>>2]|0){k=c[10790]|0;if(k)c[j+16>>2]=k;k=c[10791]|0;if(k)c[j+20>>2]=k;l=+h[5397];if(l>=0.0)h[j+32>>3]=l}i=ea;return}function dw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=c[b+4>>2]|0;if((f|0)!=0?(hA(f,d)|0)==0:0)e=b;else h=3;a:do if((h|0)==3){b=c[b+84>>2]|0;f=c[b>>2]|0;if(!f)e=0;else{g=b;while(1){g=g+4|0;b=c[f+4>>2]|0;if((b|0)!=0?(hA(b,d)|0)==0:0){e=f;h=8}else h=6;if((h|0)==6?(h=0,(a[f+92>>0]|0)==1):0){e=dw(c[f+88>>2]|0,d)|0;h=8}if((h|0)==8?(0,(e|0)!=0):0)break a;f=c[g>>2]|0;if(!f){e=0;break}}}}while(0);return e|0}function ew(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,i=0;h=Sj(a,d,f,0,0)|0;if(!h){i=Sj(a,d,f,0,1)|0;xl(i,161165,176,1)|0;b[(c[i+16>>2]|0)+170>>1]=g;g=d+16|0;a=c[g>>2]|0;h=c[a+180>>2]|0;a=c[a+184>>2]|0;if(!h)h=aq((a<<2)+8|0)|0;else h=cq(h,(a<<2)+8|0)|0;d=c[g>>2]|0;c[d+180>>2]=h;d=d+184|0;a=c[d>>2]|0;c[d>>2]=a+1;c[h+(a<<2)>>2]=i;g=c[g>>2]|0;c[(c[g+180>>2]|0)+(c[g+184>>2]<<2)>>2]=0;g=f+16|0;a=c[g>>2]|0;h=c[a+172>>2]|0;a=c[a+176>>2]|0;if(!h)h=aq((a<<2)+8|0)|0;else h=cq(h,(a<<2)+8|0)|0;d=c[g>>2]|0;c[d+172>>2]=h;d=d+176|0;f=c[d>>2]|0;c[d>>2]=f+1;c[h+(f<<2)>>2]=i;i=c[g>>2]|0;c[(c[i+172>>2]|0)+(c[i+176>>2]<<2)>>2]=0}else{i=(c[h+16>>2]|0)+170|0;f=e[i>>1]|0;b[i>>1]=(f|0)>(g|0)?f:g}return}function fw(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=c[(c[a+16>>2]|0)+192>>2]|0;d=e+16|0;f=c[(c[d>>2]|0)+164>>2]|0;if(f){h=f;while(1){if(!(Sj(a,e,h,0,0)|0)){g=Sj(a,e,h,0,1)|0;xl(g,161165,176,1)|0;b[(c[g+16>>2]|0)+170>>1]=0;f=c[d>>2]|0;e=c[f+180>>2]|0;f=c[f+184>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;i=c[d>>2]|0;c[i+180>>2]=e;i=i+184|0;f=c[i>>2]|0;c[i>>2]=f+1;c[e+(f<<2)>>2]=g;d=c[d>>2]|0;c[(c[d+180>>2]|0)+(c[d+184>>2]<<2)>>2]=0;d=h+16|0;f=c[d>>2]|0;e=c[f+172>>2]|0;f=c[f+176>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;f=c[d>>2]|0;c[f+172>>2]=e;f=f+176|0;i=c[f>>2]|0;c[f>>2]=i+1;c[e+(i<<2)>>2]=g;i=c[d>>2]|0;c[(c[i+172>>2]|0)+(c[i+176>>2]<<2)>>2]=0}else d=h+16|0;e=c[(c[d>>2]|0)+164>>2]|0;if(!e)break;else{i=h;h=e;e=i}}}return}function gw(b){b=b|0;var c=0,d=0;c=zj(b,161150)|0;if(!((c|0)!=0?(a[c>>0]|0)!=0:0))d=3;do if((d|0)==3){c=zj(b,161159)|0;if((c|0)!=0?(a[c>>0]|0)!=0:0)break;c=0}while(0);return c|0}function hw(f,g,j,k){f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0.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;J=i;i=i+16|0;H=J+8|0;G=J;I=g+108|0;l=c[I>>2]|0;if(l)kw(k,l,43128);c[g+80>>2]=j;p=g+84|0;C=c[p>>2]|0;D=Dq()|0;E=qw()|0;j=Ti(C)|0;if(!j)l=0;else{l=0;o=0;do{n=Ti(c[j+8>>2]|0)|0;if(n)do{l=l+1|0;n=c[n>>2]|0}while((n|0)!=0);o=o+1|0;if(a[j+12>>0]|0)rw(E,o);j=c[j>>2]|0}while((j|0)!=0)}l=$p((l<<2)+4|0)|0;c[p>>2]=l;n=Ti(C)|0;if(!n){j=0;l=0;s=0}else{j=0;r=0;A=0;q=0;while(1){p=Ti(c[n+8>>2]|0)|0;if(!p){o=r;p=q}else{z=A&65535;o=0;s=l;y=r;while(1){x=c[p+8>>2]|0;l=s+4|0;c[s>>2]=x;q=lw(f,x,g,k)|0|q;w=x+80|0;v=b[w>>1]|0;s=(v&65535)+-1|0;if(v<<16>>16){a:while(1){r=s+o|0;while(1){if(Iq(D,r,A)|0){o=r;break}if((r|0)>(o|0))r=r+-1|0;else break a}o=o+1|0}r=b[w>>1]|0;if(!(r<<16>>16))B=16;else{v=x+82|0;t=b[v>>1]|0;s=t;u=o;do{if(!(t<<16>>16))t=0;else{s=A;do{Gq(D,u,s);s=s+1|0;r=b[v>>1]|0}while((s|0)<((r&65535)+A|0));s=r;t=r;r=b[w>>1]|0}u=u+1|0}while((u|0)<((r&65535)+o|0))}}else B=16;if((B|0)==16){B=0;r=0;s=b[x+82>>1]|0}b[x+86>>1]=z;b[x+84>>1]=o;o=(r&65535)+o|0;j=(o|0)>(j|0)?o:j;w=(s&65535)+A|0;r=(w|0)>(y|0)?w:y;if(sw(E,w)|0){y=x+100|0;a[y>>0]=d[y>>0]|2}p=c[p>>2]|0;if(!p){o=r;p=q;break}else{s=l;y=r}}}n=c[n>>2]|0;if(!n){l=o;s=p;break}else{r=o;A=A+1|0;q=p}}}o=g+100|0;c[o>>2]=l;n=g+104|0;c[n>>2]=j;Pi(C)|0;Pi(E)|0;Eq(D);r=g+36|0;l=b[r>>1]|0;if(!(l&128))a[g+32>>0]=2;j=g+33|0;if(!(l&32))a[j>>0]=1;_v(g);p=c[n>>2]|0;E=a[g+32>>0]|0;l=_(E,p+1|0)|0;j=d[j>>0]<<1;l=j+l|0;q=c[o>>2]|0;j=(_(q+1|0,E)|0)+j|0;if((p|0)>0){n=c[g+96>>2]|0;o=0;do{l=(c[n+(o<<2)>>2]|0)+l|0;o=o+1|0}while((o|0)<(p|0))}if((q|0)>0){o=c[g+92>>2]|0;n=0;do{j=(c[o+(n<<2)>>2]|0)+j|0;n=n+1|0}while((n|0)<(q|0))}o=g+38|0;do if(!(b[r>>1]&1))n=s;else{E=b[o>>1]|0;n=E&65535;if(E<<16>>16!=0?(F=b[g+40>>1]|0,F<<16>>16!=0):0){if(!((n|0)<(l|0)|(F&65535|0)<(j|0))){j=0;n=s;l=0;break}dj(0,160950,G)|0;j=0;n=1;l=0;break}dj(0,160984,H)|0;n=1}while(0);H=e[o>>1]|0;h[g+64>>3]=+(((l|0)>(H|0)?l:H)|0);H=e[g+40>>1]|0;h[g+72>>3]=+(((j|0)>(H|0)?j:H)|0);if(c[I>>2]|0){l=c[10782]|0;if(l)c[k+16>>2]=l;l=c[10783]|0;if(l)c[k+20>>2]=l;m=+h[5393];if(m>=0.0)h[k+32>>3]=m}i=J;return n|0}function iw(f,g,j){f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0.0,o=0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.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;M=i;i=i+64|0;L=M+32|0;K=M;A=c[f+84>>2]|0;k=c[f+80>>2]|0;if(((k|0)!=0?(l=c[k+24>>2]|0,(l|0)!=0):0)?(m=f+24|0,(c[m>>2]|0)==0):0)c[m>>2]=oA(l)|0;I=f+48|0;l=g+16|0;p=+h[l>>3];n=+h[g>>3];k=~~(p-n-+(~~+h[f+64>>3]|0));if((k|0)<=-1)Ia(160905,160915,1761,160927);m=g+24|0;r=+h[m>>3];o=g+8|0;s=+h[o>>3];t=+(~~+h[f+72>>3]|0);u=~~(r-s-t);if((u|0)<=-1)Ia(160940,160915,1764,160927);q=e[f+36>>1]|0;a:do if(q&1){b:do if((k|0)>0)switch(q&6|0){case 4:{h[l>>3]=n+t;break b}case 2:{z=+(k|0);h[l>>3]=p+z;n=z+n;h[g>>3]=n;break b}default:{z=+((k|0)/2|0|0);n=n+z;h[g>>3]=n;h[l>>3]=p-z;break b}}while(0);if((u|0)>0)switch(q&24|0){case 16:{r=t+s;h[m>>3]=r;k=0;v=0;break a}case 8:{z=+(u|0);r=z+r;h[m>>3]=r;h[o>>3]=z+s;k=0;v=0;break a}default:{z=+((u|0)/2|0|0);h[o>>3]=s+z;r=r-z;h[m>>3]=r;k=0;v=0;break a}}else{k=0;v=0}}else v=u;while(0);w=f+33|0;G=f+32|0;H=f+104|0;F=c[H>>2]|0;u=(k|0)/(F|0)|0;l=k-(_(u,F)|0)|0;l=~~(+(l|0)+((l|0)>-1?.5:-.5));if((F|0)>=0){k=a[G>>0]|0;m=c[f+96>>2]|0;o=k<<24>>24;q=0;k=~~(+(k<<24>>24)+(n+ +(d[w>>0]|0)));while(1){E=m+(q<<2)|0;F=c[E>>2]|0;c[E>>2]=k;k=k+u+((q|0)<(l|0)&1)+F+o|0;if((q|0)>=(c[H>>2]|0))break;else q=q+1|0}}F=f+100|0;E=c[F>>2]|0;u=(v|0)/(E|0)|0;l=v-(_(u,E)|0)|0;l=~~(+(l|0)+((l|0)>-1?.5:-.5));if((E|0)>=0){k=a[G>>0]|0;m=c[f+92>>2]|0;o=k<<24>>24;q=0;k=~~(r-+(d[w>>0]|0)-+(k<<24>>24));while(1){D=m+(q<<2)|0;E=c[D>>2]|0;c[D>>2]=k;k=k-u+(((q|0)<(l|0))<<31>>31)-E-o|0;if((q|0)>=(c[F>>2]|0))break;else q=q+1|0}}k=c[A>>2]|0;c:do if(k){v=(j|0)==0;w=f+96|0;B=f+92|0;C=K+8|0;D=K+16|0;E=K+24|0;while(1){A=A+4|0;l=b[k+84>>1]|0;if(v){m=b[k+80>>1]|0;o=b[k+86>>1]|0;q=b[k+82>>1]|0;u=0}else{u=l<<16>>16==0?8:0;O=b[k+86>>1]|0;u=O<<16>>16==0?u|4:u;N=b[k+80>>1]|0;P=b[k+82>>1]|0;m=N;o=O;q=P;u=((P&65535)+(O&65535)|0)==(c[F>>2]|0)|(((N&65535)+(l&65535)|0)==(c[H>>2]|0)?u|2:u)}P=l&65535;O=c[w>>2]|0;r=+(c[O+(P<<2)>>2]|0);l=a[G>>0]|0;s=+((c[O+((m&65535)+P<<2)>>2]|0)-l|0);o=o&65535;P=c[B>>2]|0;z=+(c[P+(o<<2)>>2]|0);y=+((c[P+((q&65535)+o<<2)>>2]|0)+l|0);o=u&j;l=k+24|0;if((c[l>>2]|0)==0?(J=c[(c[k+96>>2]|0)+24>>2]|0,(J|0)!=0):0)c[l>>2]=oA(J)|0;q=k+36|0;u=e[q>>1]|0;m=k+64|0;d:do if(u&1){n=+h[m>>3];l=k+72|0;x=+h[l>>3];p=s-r-n;e:do if(p>0.0)switch(u&6|0){case 4:{s=r+n;n=r;break e}case 2:{s=s+p;n=r+p;break e}default:{n=p*.5;s=s-n;n=r+n;break e}}else n=r;while(0);p=z-y-x;if(p>0.0)switch(u&24|0){case 16:{r=n;t=y;n=y+x;break d}case 8:{r=n;t=y+p;n=z+p;break d}default:{x=p*.5;r=n;t=y+x;n=z-x;break d}}else{r=n;t=y;n=z}}else{l=k+72|0;t=y;n=z}while(0);h[k+48>>3]=r;h[k+56>>3]=t;h[m>>3]=s;h[l>>3]=n;a[k+35>>0]=o;y=+(d[k+33>>0]|0);z=+(d[k+34>>0]|0);x=r+y+z;h[K>>3]=x;t=t+y+z;h[C>>3]=t;r=s-y-z;h[D>>3]=r;s=n-y-z;h[E>>3]=s;l=k+88|0;switch(a[k+92>>0]|0){case 1:{P=c[l>>2]|0;c[L>>2]=c[K>>2];c[L+4>>2]=c[K+4>>2];c[L+8>>2]=c[K+8>>2];c[L+12>>2]=c[K+12>>2];c[L+16>>2]=c[K+16>>2];c[L+20>>2]=c[K+20>>2];c[L+24>>2]=c[K+24>>2];c[L+28>>2]=c[K+28>>2];iw(P,L,o);break}case 3:{k=c[l>>2]|0;n=+h[k+24>>3];p=r-x-+h[k+16>>3];f:do if(p>0.0)switch(u&6|0){case 4:{h[D>>3]=r-p;break f}case 2:{h[K>>3]=x+p;break f}default:break f}while(0);n=s-t-n;g:do if(n>0.0)switch(u&24|0){case 16:{h[E>>3]=s-n;break g}case 8:{h[C>>3]=t+n;break g}default:break g}while(0);BB(k|0,K|0,32)|0;break}default:{k=c[l>>2]|0;n=+h[k+32>>3];p=r-x-+h[k+24>>3];h:do if(p>0.0)switch(u&6|0){case 6:break h;case 4:{h[D>>3]=r-p;break h}case 2:{h[K>>3]=x+p;break h}default:{z=p*.5;h[K>>3]=x+z;h[D>>3]=r-z;break h}}while(0);n=s-t-n;i:do if(n>0.0)switch(u&24|0){case 16:{h[E>>3]=s-n;break i}case 8:{h[C>>3]=t+n;break i}default:{z=n*.5;h[C>>3]=t+z;h[E>>3]=s-z;break i}}while(0);k=k+8|0;c[k>>2]=c[K>>2];c[k+4>>2]=c[K+4>>2];c[k+8>>2]=c[K+8>>2];c[k+12>>2]=c[K+12>>2];c[k+16>>2]=c[K+16>>2];c[k+20>>2]=c[K+20>>2];c[k+24>>2]=c[K+24>>2];c[k+28>>2]=c[K+28>>2];q=e[q>>1]&768;q=(q|0)==512?108:(q|0)==256?114:110;k=c[l>>2]|0;l=b[k+4>>1]|0;if(l<<16>>16>0){o=c[k>>2]|0;k=l<<16>>16;m=0;do{l=o+(m*24|0)+6|0;if(!(a[l>>0]|0))a[l>>0]=q;m=m+1|0}while((m|0)!=(k|0))}}}k=c[A>>2]|0;if(!k)break c}}while(0);a[f+35>>0]=j;c[I>>2]=c[g>>2];c[I+4>>2]=c[g+4>>2];c[I+8>>2]=c[g+8>>2];c[I+12>>2]=c[g+12>>2];c[I+16>>2]=c[g+16>>2];c[I+20>>2]=c[g+20>>2];c[I+24>>2]=c[g+24>>2];c[I+28>>2]=c[g+28>>2];i=M;return}function jw(d,e,f){d=d|0;e=e|0;f=f|0;var g=0.0,j=0.0,k=0.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.0,x=0.0,y=0.0,z=0.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.0;Q=i;i=i+112|0;O=Q+48|0;P=Q+16|0;M=Q;c[P>>2]=0;c[P+4>>2]=0;c[P+8>>2]=0;c[P+12>>2]=0;c[P+16>>2]=0;c[P+20>>2]=0;c[P+24>>2]=0;c[P+28>>2]=0;N=e+4|0;l=b[N>>1]|0;u=l<<16>>16>0;if(u){p=f+32|0;q=P+16|0;r=f+16|0;o=c[e>>2]|0;s=l<<16>>16;t=0;n=0;j=-1.0;a:while(1){if((b[o+(t*24|0)+4>>1]|0)>1){m=0;break}m=c[(c[o+(t*24|0)>>2]|0)+4>>2]|0;do if(m){if(c[m+24>>2]&127){m=0;break a}g=+h[m+16>>3];if(!(g>0.0))g=+h[p>>3];h[q>>3]=g;m=c[m>>2]|0;if(!m){m=c[r>>2]|0;c[P>>2]=m;break}else{c[P>>2]=m;break}}else{g=+h[p>>3];h[q>>3]=g;m=c[r>>2]|0;c[P>>2]=m}while(0);if(!(j==-1.0))if(g!=j){m=0;break}else g=j;if(n)if(!(lA(m,n)|0))m=n;else{m=0;break}t=t+1|0;if((t|0)>=(s|0)){m=1;break}else{n=m;j=g}}a[e+6>>0]=m;if(u){r=(m|0)==0;s=f+48|0;t=f+16|0;u=f+32|0;A=P+16|0;B=f+20|0;C=P+4|0;D=f+40|0;E=P+24|0;F=d+144|0;G=O+4|0;H=M+8|0;I=O+16|0;J=O+24|0;K=O+8|0;L=O+12|0;p=f+16|0;l=c[e>>2]|0;z=0.0;q=0;j=0.0;g=0.0;while(1){if((b[l+(q*24|0)+4>>1]|0)>0){m=c[l+(q*24|0)>>2]|0;o=0;y=0.0;v=0.0;k=0.0;x=0.0;while(1){c[O>>2]=Up(c[m+(o*56|0)>>2]|0,c[s>>2]|0)|0;n=(c[e>>2]|0)+(q*24|0)|0;l=c[(c[n>>2]|0)+(o*56|0)+4>>2]|0;do if(l){l=c[l+24>>2]&127;do if(!l){l=c[D>>2]&127;m=c[E>>2]&-128;if(!l){c[E>>2]=m;break}else{c[E>>2]=m|l;break}}else c[E>>2]=c[E>>2]&-128|l;while(0);m=c[(c[n>>2]|0)+(o*56|0)+4>>2]|0;w=+h[m+16>>3];if(!(w>0.0))w=+h[u>>3];h[A>>3]=w;l=c[m>>2]|0;if(!l)c[P>>2]=c[p>>2];else c[P>>2]=l;l=c[m+4>>2]|0;if(!l){c[C>>2]=c[B>>2];break}else{c[C>>2]=l;break}}else{h[A>>3]=+h[u>>3];c[P>>2]=c[t>>2];c[C>>2]=c[B>>2];c[E>>2]=c[E>>2]&-128|c[D>>2]&127}while(0);l=c[F>>2]|0;c[G>>2]=ub[c[l>>2]&31](l,P,1)|0;us(M,d,O);R=+h[M>>3];w=+h[H>>3];pB(c[(c[(c[e>>2]|0)+(q*24|0)>>2]|0)+(o*56|0)>>2]|0);l=c[e>>2]|0;m=c[l+(q*24|0)>>2]|0;c[m+(o*56|0)>>2]=c[O>>2];h[m+(o*56|0)+32>>3]=R;h[m+(o*56|0)+16>>3]=+h[I>>3];h[m+(o*56|0)+24>>3]=+h[J>>3];c[m+(o*56|0)+4>>2]=c[G>>2];c[m+(o*56|0)+8>>2]=c[K>>2];c[m+(o*56|0)+12>>2]=c[L>>2];x=x+R;R=+h[A>>3];v=R>v?R:v;k=w>k?w:k;w=+h[J>>3];w=w>y?w:y;o=o+1|0;if((o|0)>=(b[l+(q*24|0)+4>>1]|0)){n=l;break}else y=w}}else{n=l;w=0.0;v=0.0;k=0.0;x=0.0}h[n+(q*24|0)+8>>3]=x;m=(q|0)==0;do if(r)if(m){w=v-w;h[n+16>>3]=w;break}else{w=g+v-z-w;h[n+(q*24|0)+16>>3]=w;break}else{l=n+(q*24|0)+16|0;if(m){h[l>>3]=v;w=v;v=k;break}else{h[l>>3]=k;w=k;v=k;break}}while(0);j=x>j?x:j;g=g+v;q=q+1|0;l=b[N>>1]|0;if((q|0)>=(l<<16>>16|0))break;else{l=n;z=z+w}}}else{k=0.0;j=0.0;g=0.0}}else{a[e+6>>0]=1;k=0.0;j=0.0;g=0.0}h[e+24>>3]=j;h[e+32>>3]=l<<16>>16==1?k:g;i=Q;return}function kw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,i=0.0,j=0;e=a+16|0;f=c[e>>2]|0;do if(f)if(!(c[b>>2]|0)){c[d>>2]=0;break}else{c[d>>2]=f;c[e>>2]=c[b>>2];break}while(0);f=a+20|0;g=c[f>>2]|0;do if(g){j=b+4|0;e=d+4|0;if(!(c[j>>2]|0)){c[e>>2]=0;break}else{c[e>>2]=g;c[f>>2]=c[j>>2];break}}while(0);g=a+32|0;i=+h[g>>3];do if(i>=0.0){f=b+16|0;e=d+16|0;if(!(+h[f>>3]>=0.0)){h[e>>3]=-1.0;break}else{h[e>>3]=i;h[g>>3]=+h[f>>3];break}}while(0);return}function lw(f,g,j,k){f=f|0;g=g|0;j=j|0;k=k|0;var l=0.0,m=0.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.0;x=i;i=i+32|0;w=x+16|0;v=x+8|0;r=x;o=x+24|0;c[g+96>>2]=j;t=g+36|0;n=b[t>>1]|0;do if(!(n&64))if(!(b[j+36>>1]&64)){a[g+34>>0]=2;break}else{a[g+34>>0]=a[j+34>>0]|0;break}while(0);do if(!(n&32)){n=a[j+88>>0]|0;if(n<<24>>24>-1){a[g+33>>0]=n;break}if(!(b[j+36>>1]&32)){a[g+33>>0]=1;break}else{a[g+33>>0]=a[j+33>>0]|0;break}}while(0);q=g+88|0;s=g+92|0;switch(a[s>>0]|0){case 1:{n=hw(f,c[q>>2]|0,g,k)|0;f=c[q>>2]|0;j=f+64|0;f=f+72|0;break}case 3:{p=c[q>>2]|0;n=k+52|0;j=p+32|0;zn(o,c[n>>2]|0,c[j>>2]|0);f=c[o>>2]|0;k=c[o+4>>2]|0;if((k&f|0)==-1){c[r>>2]=c[j>>2];dj(1,161035,r)|0;m=0.0;l=0.0;n=1}else{a[(c[(c[n>>2]|0)+16>>2]|0)+114>>0]=1;m=+(f|0);l=+(k|0);n=0}c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;h[p+16>>3]=m;h[p+24>>3]=l;f=c[q>>2]|0;j=f+16|0;f=f+24|0;break}default:{jw(c[(c[f+16>>2]|0)+144>>2]|0,c[q>>2]|0,k);f=c[q>>2]|0;j=f+24|0;f=f+32|0;n=0}}l=+((d[g+33>>0]|0)+(d[g+34>>0]|0)<<1|0);m=+h[j>>3]+l;l=+h[f>>3]+l;f=g+38|0;do if(b[t>>1]&1){t=b[f>>1]|0;j=t&65535;if(t<<16>>16!=0?(u=b[g+40>>1]|0,u<<16>>16!=0):0){if(!(+(j|0)<m|+(u&65535|0)<l)){m=0.0;l=0.0;break}if((a[s>>0]|0)==3){m=0.0;l=0.0;break}dj(0,161067,v)|0;n=1;m=0.0;l=0.0;break}dj(0,161100,w)|0;n=1}while(0);y=+(e[f>>1]|0);h[g+64>>3]=m>y?m:y;m=+(e[g+40>>1]|0);h[g+72>>3]=l>m?l:m;i=x;return n|0}function mw(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+224|0;s=u+8|0;l=u;t=u+40|0;k=u+56|0;j=u+88|0;m=c[d+16>>2]|0;p=m+208|0;c[h>>2]=c[p>>2];q=m+228|0;c[h+4>>2]=c[q>>2];r=m+244|0;c[h+8>>2]=c[r>>2];n=m+212|0;c[h+12>>2]=c[n>>2];o=m+260|0;a[h+16>>0]=(b[o>>1]<<15&65535)<<16>>16>>15;h=c[f+16>>2]|0;if((h|0)!=0?(a[h>>0]|0)!=0:0)j=0;else{gj(t,128,j);j=e+60|0;h=c[j>>2]|0;if(!h){h=oA(Wo(d,c[m+8>>2]|0,t)|0)|0;c[j>>2]=h;a[e+64>>0]=1}jj(t,h)|0;j=c[22407]|0;c[22407]=j+1;c[l>>2]=j;Oz(k,161288,l)|0;jj(t,k)|0;j=t+4|0;h=c[j>>2]|0;if(h>>>0>=(c[t+8>>2]|0)>>>0){hj(t,1)|0;h=c[j>>2]|0}a[h>>0]=0;h=c[t>>2]|0;c[j>>2]=h;j=1}h=Vo(d,0,c[f>>2]|0,c[f+12>>2]|0,c[f+8>>2]|0,h,c[m+8>>2]|0)|0;if(j)kj(t);do if(h){if((c[p>>2]|0)==0?(b[o>>1]&1)==0:0)break;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];c[s+12>>2]=c[g+12>>2];c[s+16>>2]=c[g+16>>2];c[s+20>>2]=c[g+20>>2];c[s+24>>2]=c[g+24>>2];c[s+28>>2]=c[g+28>>2];Zo(d,s);Mu(d,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[n>>2]|0)}while(0);i=u;return h|0}function nw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,j=0,k=0;k=i;i=i+16|0;j=k;if(!((cp(b,f,j)|0)<<24>>24)){Su(a,b);f=1}else{Su(a,c[f>>2]|0);f=c[f+4>>2]|0;h=+g[j>>2];if(!f)Tu(a,160746,d,h);else Tu(a,f,d,h);f=e>>>1&1|2}Ru(a,161276);i=k;return f|0}function ow(f,g,j){f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0;t=i;i=i+160|0;r=t+112|0;s=t;l=t+144|0;q=c[g+24>>2]|0;Ru(f,(q|0)==0?160746:q);q=g+42|0;k=b[q>>1]|0;if(!(k&384))Uu(f,c[(c[f>>2]|0)+336>>2]|0);else{c[l+4>>2]=0;c[l>>2]=0;k=k&65535;if(!(k&256)){if(k&128)c[l>>2]=161269}else c[l>>2]=161262;Uu(f,l)}k=g+33|0;av(f,+(d[k>>0]|0));a:do if(!(b[q>>1]&4)){q=(e[g+36>>1]|0)&15360;if(!q){k=a[k>>0]|0;if((k&255)>1){p=+(k&255)*.5;h[j>>3]=p+ +h[j>>3];s=j+8|0;h[s>>3]=p+ +h[s>>3];s=j+16|0;h[s>>3]=+h[s>>3]-p;s=j+24|0;h[s>>3]=+h[s>>3]-p};c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];c[r+16>>2]=c[j+16>>2];c[r+20>>2]=c[j+20>>2];c[r+24>>2]=c[j+24>>2];c[r+28>>2]=c[j+28>>2];Xu(f,r,0);break}g=s+16|0;k=a[k>>0]|0;c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];c[r+16>>2]=c[j+16>>2];c[r+20>>2]=c[j+20>>2];c[r+24>>2]=c[j+24>>2];c[r+28>>2]=c[j+28>>2];c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];c[g+8>>2]=c[j+8>>2];c[g+12>>2]=c[j+12>>2];l=s+48|0;r=r+16|0;c[l>>2]=c[r>>2];c[l+4>>2]=c[r+4>>2];c[l+8>>2]=c[r+8>>2];c[l+12>>2]=c[r+12>>2];if((k&255)>1){p=+(k&255|0)*.5;o=p+ +h[g>>3];h[g>>3]=o;r=s+24|0;n=p+ +h[r>>3];h[r>>3]=n;m=+h[l>>3]-p;h[l>>3]=m;r=s+56|0;p=+h[r>>3]-p;h[r>>3]=p}else{m=+h[l>>3];n=+h[s+24>>3];o=+h[g>>3];p=+h[s+56>>3]}h[s+32>>3]=m;h[s+40>>3]=n;h[s+64>>3]=o;h[s+72>>3]=p;if((q|0)<8192)switch(q|0){case 4096:{Zu(f,s+32|0,2);break a}case 2048:{Zu(f,l,2);break a}case 1024:{r=s+64|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zu(f,s,2);break a}case 6144:{Zu(f,s+32|0,3);break a}case 3072:{s=s+80|0;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];c[s+12>>2]=c[g+12>>2];Zu(f,l,3);break a}case 7168:{r=s+80|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];c[r+12>>2]=c[g+12>>2];Zu(f,s+32|0,4);break a}case 5120:{r=s+64|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zu(f,s,2);Zu(f,s+32|0,2);break a}default:break a}else switch(q|0){case 8192:{Zu(f,g,2);break a}case 12288:{Zu(f,g,3);break a}case 9216:{r=s+64|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zu(f,s,3);break a}case 14336:{Zu(f,g,4);break a}case 11264:{r=s+80|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];c[r+12>>2]=c[g+12>>2];r=s+96|0;s=s+32|0;c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];Zu(f,l,4);break a}case 13312:{r=s+64|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Zu(f,s,4);break a}case 10240:{Zu(f,g,2);Zu(f,l,2);break a}default:break a}}else{l=a[k>>0]|0;c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];c[r+16>>2]=c[j+16>>2];c[r+20>>2]=c[j+20>>2];c[r+24>>2]=c[j+24>>2];c[r+28>>2]=c[j+28>>2];c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];k=s+32|0;r=r+16|0;c[k>>2]=c[r>>2];c[k+4>>2]=c[r+4>>2];c[k+8>>2]=c[r+8>>2];c[k+12>>2]=c[r+12>>2];if((l&255)>1){p=+(l&255|0)*.5;o=p+ +h[s>>3];h[s>>3]=o;r=s+8|0;n=p+ +h[r>>3];h[r>>3]=n;m=+h[k>>3]-p;h[k>>3]=m;r=s+40|0;p=+h[r>>3]-p;h[r>>3]=p}else{m=+h[k>>3];n=+h[s+8>>3];o=+h[s>>3];p=+h[s+40>>3]}h[s+16>>3]=m;h[s+24>>3]=n;h[s+48>>3]=o;h[s+56>>3]=p;jr(f,s,4,4,0)}while(0);i=t;return}function pw(a,e){a=a|0;e=e|0;var f=0,g=0,h=0;h=c[a+16>>2]|0;f=h+208|0;if((c[f>>2]|0)==0?(b[h+260>>1]&1)==0:0)a=0;else{Nu(a);a=c[f>>2]|0}if((a|0)!=(c[e>>2]|0)){pB(a);c[f>>2]=c[e>>2]}a=h+228|0;f=c[a>>2]|0;g=e+4|0;if((f|0)!=(c[g>>2]|0)){pB(f);c[a>>2]=c[g>>2]}a=h+244|0;f=c[a>>2]|0;g=e+8|0;if((f|0)!=(c[g>>2]|0)){pB(f);c[a>>2]=c[g>>2]}a=h+212|0;f=c[a>>2]|0;g=e+12|0;if((f|0)!=(c[g>>2]|0)){pB(f);c[a>>2]=c[g>>2]}h=h+260|0;b[h>>1]=b[h>>1]&-2|(d[e+16>>0]|0)&1;return}function qw(){return Vi(89632,c[12573]|0)|0}function rw(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;ub[c[a>>2]&31](a,e,1)|0;i=d;return}function sw(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;b=(ub[c[a>>2]&31](a,e,512)|0)!=0&1;i=d;return b|0}function tw(a,b,d){a=a|0;b=b|0;d=d|0;d=$p(12)|0;c[d>>2]=c[b>>2];return d|0}function uw(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function vw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=c[b>>2]|0;d=c[d>>2]|0;return ((b|0)>(d|0)?1:((b|0)<(d|0))<<31>>31)|0}function ww(a){a=a|0;var b=0;if(!(c[22417]|0)){b=$p((a<<2)+4|0)|0;c[22417]=b;c[b>>2]=89672;c[22428]=a}c[22429]=0;return}function xw(){pB(c[22417]|0);c[22417]=0;c[22429]=0;return}function yw(){c[22429]=0;return}function zw(){var a=0,b=0,d=0;a=c[22429]|0;a:do if((a|0)>=1){b=c[22417]|0;d=1;while(1){if((c[(c[b+(d<<2)>>2]|0)+4>>2]|0)!=(d|0))break;if((d|0)<(a|0))d=d+1|0;else break a}Ia(161945,161292,59,161298)}while(0);return}function Aw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;d=c[22417]|0;b=d+(a<<2)|0;g=c[b>>2]|0;f=c[g>>2]|0;e=(a|0)/2|0;d=c[d+(e<<2)>>2]|0;if((c[d>>2]|0)<(f|0))while(1){c[b>>2]=d;c[d+4>>2]=a;a=(e|0)/2|0;b=c[22417]|0;d=c[b+(a<<2)>>2]|0;b=b+(e<<2)|0;if((c[d>>2]|0)>=(f|0)){a=e;break}else{h=e;e=a;a=h}}c[b>>2]=g;c[g+4>>2]=a;return}function Bw(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=c[22429]|0;if((b|0)==(c[22428]|0)){dj(1,161306,d)|0;b=1}else{b=b+1|0;c[22429]=b;c[(c[22417]|0)+(b<<2)>>2]=a;Aw(b);zw();b=0}i=d;return b|0}function Cw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=c[22417]|0;i=c[b+(a<<2)>>2]|0;g=c[i>>2]|0;d=c[22429]|0;h=(d|0)/2|0;a:do if((h|0)>=(a|0))while(1){e=a<<1;f=c[b+(e<<2)>>2]|0;if((e|0)<(d|0)){k=e|1;d=c[b+(k<<2)>>2]|0;j=(c[f>>2]|0)<(c[d>>2]|0);e=j?k:e;d=j?d:f}else d=f;if((g|0)>=(c[d>>2]|0))break a;c[b+(a<<2)>>2]=d;c[d+4>>2]=a;b=c[22417]|0;if((e|0)>(h|0)){a=e;break a}a=e;d=c[22429]|0}while(0);c[b+(a<<2)>>2]=i;c[i+4>>2]=a;return}function Dw(){var a=0,b=0,d=0,e=0;b=c[22429]|0;if(!b)a=0;else{e=c[22417]|0;d=e+4|0;a=c[d>>2]|0;c[d>>2]=c[e+(b<<2)>>2];b=b+-1|0;c[22429]=b;if(b)Cw(1);zw()}return a|0}function Ew(a,b){a=a|0;b=b|0;c[a>>2]=b;Aw(c[a+4>>2]|0);zw();return}function Fw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=c[b+16>>2]|0;k=(a[j+((c[e+12>>2]|0)*40|0)+36>>0]|0)!=(a[j+((c[e+16>>2]|0)*40|0)+36>>0]|0);l=~~((+h[d+64>>3]-+h[d+48>>3]+-3.0)*.5);m=~~((+h[d+56>>3]-+h[d+40>>3]+-3.0)*.5);i=(l|0)<(m|0)?l:m;n=c[d+4>>2]|0;a:do if((n|0)>0){b=0;do{f=c[d+8+(b<<2)>>2]|0;if((a[j+((c[f+12>>2]|0)*40|0)+36>>0]|0)==(a[j+((c[f+16>>2]|0)*40|0)+36>>0]|0))break a;g=f+8|0;p=c[g>>2]|0;c[g>>2]=p+1;if((p|0)>=(i|0)){c[g>>2]=0;h[f>>3]=+h[f>>3]+16384.0}b=b+1|0}while((b|0)<(n|0))}else b=0;while(0);if((b|0)<(n|0))do{f=c[d+8+(b<<2)>>2]|0;if(k|(f|0)==(e|0)?(p=(a[j+((c[f+12>>2]|0)*40|0)+36>>0]|0)!=0?l:m,o=f+8|0,i=c[o>>2]|0,c[o>>2]=i+1,(i|0)>=(p|0)):0){c[o>>2]=0;h[f>>3]=+h[f>>3]+16384.0}b=b+1|0}while((b|0)<(n|0));return}function Gw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.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.0,S=0.0,T=0.0,U=0.0;Q=i;i=i+256|0;z=Q+208|0;O=Q+200|0;N=Q+192|0;t=Q+160|0;s=Q+128|0;r=Q+96|0;q=Q+80|0;o=Q+32|0;A=Q+16|0;C=Q;u=Q+240|0;v=Q+48|0;P=$p(28)|0;d=ek(b)|0;B=P+4|0;c[B>>2]=d;d=$p(d*72|0)|0;D=P+12|0;c[D>>2]=d;w=v+8|0;h[w>>3]=1797693134862315708145274.0e284;h[v>>3]=1797693134862315708145274.0e284;y=v+24|0;h[y>>3]=-1797693134862315708145274.0e284;x=v+16|0;h[x>>3]=-1797693134862315708145274.0e284;e=Rk(b)|0;if(!e){g=1797693134862315708145274.0e284;j=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284}else{g=1797693134862315708145274.0e284;j=1797693134862315708145274.0e284;k=-1797693134862315708145274.0e284;l=-1797693134862315708145274.0e284;while(1){E=e+16|0;n=c[E>>2]|0;R=(+h[n+88>>3]+ +h[n+96>>3])*.5;R=R<1.0?1.0:R;p=+h[n+80>>3]*.5;p=p<1.0?1.0:p;U=+h[n+16>>3];T=U-R;R=U+R;U=+h[n+24>>3];S=U-p;p=U+p;h[v>>3]=g<T?g:T;h[w>>3]=j<S?j:S;h[x>>3]=k>R?k:R;h[y>>3]=l>p?l:p;h[d+40>>3]=T;h[d+48>>3]=S;h[d+56>>3]=R;h[d+64>>3]=p;c[d>>2]=c[d>>2]|1;c[(c[E>>2]|0)+112>>2]=d;e=Sk(b,e)|0;if(!e)break;g=+h[v>>3];j=+h[w>>3];k=+h[x>>3];l=+h[y>>3];d=d+72|0}g=+h[v>>3];j=+h[w>>3];k=+h[x>>3];l=+h[y>>3]}h[v>>3]=g+-36.0;h[w>>3]=j+-36.0;h[x>>3]=k+36.0;h[y>>3]=l+36.0;E=c[D>>2]|0;n=c[B>>2]|0;c[z>>2]=c[v>>2];c[z+4>>2]=c[v+4>>2];c[z+8>>2]=c[v+8>>2];c[z+12>>2]=c[v+12>>2];c[z+16>>2]=c[v+16>>2];c[z+20>>2]=c[v+20>>2];c[z+24>>2]=c[v+24>>2];c[z+28>>2]=c[v+28>>2];n=Lw(E,n,u,z)|0;if(c[14794]&1){e=c[D>>2]|0;b=c[B>>2]|0;f=c[u>>2]|0;g=+h[v>>3];j=+h[w>>3];k=+h[x>>3];l=+h[y>>3];m=c[22667]|0;Dz(c[22430]|0,m)|0;c[o>>2]=10;c[o+4>>2]=10;c[o+8>>2]=~~(k+10.0-g);c[o+12>>2]=~~(l+10.0-j);Bz(m,161321,o)|0;h[q>>3]=10.0-g;h[q+8>>3]=10.0-j;Bz(m,161369,q)|0;Mz(161386,18,1,m)|0;if((b|0)>0){d=0;do{S=+h[e+(d*72|0)+48>>3];T=+h[e+(d*72|0)+56>>3];U=+h[e+(d*72|0)+64>>3];h[r>>3]=+h[e+(d*72|0)+40>>3];h[r+8>>3]=S;h[r+16>>3]=T;h[r+24>>3]=U;Bz(m,161405,r)|0;d=d+1|0}while((d|0)!=(b|0))}Mz(161423,18,1,m)|0;if((f|0)>0){d=0;do{S=+h[n+(d<<5)+8>>3];T=+h[n+(d<<5)+16>>3];U=+h[n+(d<<5)+24>>3];h[s>>3]=+h[n+(d<<5)>>3];h[s+8>>3]=S;h[s+16>>3]=T;h[s+24>>3]=U;Bz(m,161442,s)|0;d=d+1|0}while((d|0)!=(f|0))}Mz(161460,18,1,m)|0;h[t>>3]=g;h[t+8>>3]=j;h[t+16>>3]=k;h[t+24>>3]=l;Bz(m,161442,t)|0;Dz(c[22431]|0,m)|0}d=$p((c[u>>2]|0)*72|0)|0;E=P+8|0;c[E>>2]=d;c[P>>2]=c[u>>2];e=c[u>>2]|0;if((e|0)>0?(u=d+40|0,c[u>>2]=c[n>>2],c[u+4>>2]=c[n+4>>2],c[u+8>>2]=c[n+8>>2],c[u+12>>2]=c[n+12>>2],c[u+16>>2]=c[n+16>>2],c[u+20>>2]=c[n+20>>2],c[u+24>>2]=c[n+24>>2],c[u+28>>2]=c[n+28>>2],(e|0)>1):0){d=1;do{u=(c[E>>2]|0)+(d*72|0)+40|0;t=n+(d<<5)|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];c[u+16>>2]=c[t+16>>2];c[u+20>>2]=c[t+20>>2];c[u+24>>2]=c[t+24>>2];c[u+28>>2]=c[t+28>>2];d=d+1|0}while((d|0)<(e|0))}pB(n);p=+h[v>>3];l=+h[w>>3];k=+h[x>>3];j=+h[y>>3];x=c[P>>2]|0;y=nu(x<<2|2)|0;v=Vi(89728,c[12573]|0)|0;w=Vi(89764,c[12573]|0)|0;x=$p(x<<7)|0;d=$p(c[P>>2]<<4)|0;if((c[P>>2]|0)>0){e=A+8|0;o=0;do{b=c[E>>2]|0;f=b+(o*72|0)|0;c[b+(o*72|0)+32>>2]=4;m=b+(o*72|0)+36|0;c[m>>2]=d+(o<<2<<2);n=b+(o*72|0)+40|0;g=+h[b+(o*72|0)+56>>3];if(g<k){h[A>>3]=g;h[e>>3]=+h[b+(o*72|0)+48>>3];c[z>>2]=c[A>>2];c[z+4>>2]=c[A+4>>2];c[z+8>>2]=c[A+8>>2];c[z+12>>2]=c[A+12>>2];u=Iw(y,v,z,x,1)|0;c[u+20>>2]=f;c[c[m>>2]>>2]=u}g=+h[b+(o*72|0)+64>>3];if(g<j){h[A>>3]=+h[n>>3];h[e>>3]=g;c[z>>2]=c[A>>2];c[z+4>>2]=c[A+4>>2];c[z+8>>2]=c[A+8>>2];c[z+12>>2]=c[A+12>>2];u=Iw(y,w,z,x,0)|0;c[u+20>>2]=f;c[(c[m>>2]|0)+4>>2]=u}if(+h[n>>3]>p){c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];c[z+8>>2]=c[n+8>>2];c[z+12>>2]=c[n+12>>2];u=Iw(y,v,z,x,1)|0;c[u+24>>2]=f;c[(c[m>>2]|0)+8>>2]=u}if(+h[b+(o*72|0)+48>>3]>l){c[z>>2]=c[n>>2];c[z+4>>2]=c[n+4>>2];c[z+8>>2]=c[n+8>>2];c[z+12>>2]=c[n+12>>2];u=Iw(y,w,z,x,0)|0;c[u+24>>2]=f;c[(c[m>>2]|0)+12>>2]=u}o=o+1|0}while((o|0)<(c[P>>2]|0))}r=$p(c[y>>2]<<2)|0;if((c[B>>2]|0)>0){s=C+8|0;t=0;d=0;u=0;while(1){n=c[D>>2]|0;o=n+(t*72|0)|0;q=n+(t*72|0)+36|0;c[q>>2]=r+(u<<2);e=n+(t*72|0)+40|0;c[C>>2]=c[e>>2];c[C+4>>2]=c[e+4>>2];c[C+8>>2]=c[e+8>>2];c[C+12>>2]=c[e+12>>2];e=ub[c[w>>2]&31](w,C,512)|0;a:do if(e){b=n+(t*72|0)+56|0;f=n+(t*72|0)+32|0;do{if(!(+h[e+8>>3]<+h[b>>3]))break a;z=c[e>>2]|0;A=c[f>>2]|0;c[f>>2]=A+1;c[(c[q>>2]|0)+(A<<2)>>2]=z;c[(c[e>>2]|0)+24>>2]=o;e=ub[c[w>>2]&31](w,e,8)|0}while((e|0)!=0)}while(0);e=ub[c[v>>2]&31](v,C,512)|0;m=n+(t*72|0)+64|0;b:do if(e){b=n+(t*72|0)+32|0;do{if(!(+h[e+16>>3]<+h[m>>3]))break b;z=c[e>>2]|0;A=c[b>>2]|0;c[b>>2]=A+1;c[(c[q>>2]|0)+(A<<2)>>2]=z;c[(c[e>>2]|0)+24>>2]=o;e=ub[c[v>>2]&31](v,e,8)|0}while((e|0)!=0)}while(0);h[s>>3]=+h[m>>3];e=ub[c[w>>2]&31](w,C,512)|0;b=n+(t*72|0)+56|0;f=n+(t*72|0)+32|0;c:do if(e)do{if(!(+h[e+8>>3]<+h[b>>3]))break c;z=c[e>>2]|0;A=c[f>>2]|0;c[f>>2]=A+1;c[(c[q>>2]|0)+(A<<2)>>2]=z;c[(c[e>>2]|0)+20>>2]=o;e=ub[c[w>>2]&31](w,e,8)|0}while((e|0)!=0);while(0);h[C>>3]=+h[b>>3];h[s>>3]=+h[n+(t*72|0)+48>>3];e=ub[c[v>>2]&31](v,C,512)|0;d:do if(e)do{if(!(+h[e+16>>3]<+h[m>>3]))break d;z=c[e>>2]|0;A=c[f>>2]|0;c[f>>2]=A+1;c[(c[q>>2]|0)+(A<<2)>>2]=z;c[(c[e>>2]|0)+20>>2]=o;e=ub[c[v>>2]&31](v,e,8)|0}while((e|0)!=0);while(0);b=c[f>>2]|0;d=(b|0)>(d|0)?b:d;t=t+1|0;e=c[B>>2]|0;if((t|0)>=(e|0)){r=e;break}else u=b+u|0}if((r|0)>0){n=c[D>>2]|0;q=0;do{o=n+(q*72|0)|0;if((+h[n+(q*72|0)+64>>3]-+h[n+(q*72|0)+48>>3]+-3.0)*.5<2.0?(F=c[n+(q*72|0)+32>>2]|0,(F|0)>0):0){f=c[n+(q*72|0)+36>>2]|0;m=0;do{e=c[f+(m<<2)>>2]|0;e:do if(a[e+36>>0]|0){b=c[e+20>>2]|0;if((b|0)==(o|0)){e=c[e+24>>2]|0;c[e>>2]=c[e>>2]|8;e=c[c[e+36>>2]>>2]|0;if(!e)break;do{e=c[e+24>>2]|0;b=c[e>>2]|0;if(b&1)break e;c[e>>2]=b|8;e=c[c[e+36>>2]>>2]|0}while((e|0)!=0)}else{c[b>>2]=c[b>>2]|8;e=c[(c[b+36>>2]|0)+8>>2]|0;if(!e)break;do{e=c[e+20>>2]|0;b=c[e>>2]|0;if(b&1)break e;c[e>>2]=b|8;e=c[(c[e+36>>2]|0)+8>>2]|0}while((e|0)!=0)}}while(0);m=m+1|0}while((m|0)!=(F|0))}if((+h[n+(q*72|0)+56>>3]-+h[n+(q*72|0)+40>>3]+-3.0)*.5<2.0?(G=c[n+(q*72|0)+32>>2]|0,(G|0)>0):0){f=c[n+(q*72|0)+36>>2]|0;m=0;do{e=c[f+(m<<2)>>2]|0;f:do if(!(a[e+36>>0]|0)){b=c[e+20>>2]|0;if((b|0)==(o|0)){e=c[e+24>>2]|0;c[e>>2]=c[e>>2]|16;e=c[(c[e+36>>2]|0)+4>>2]|0;if(!e)break;do{e=c[e+24>>2]|0;b=c[e>>2]|0;if(b&1)break f;c[e>>2]=b|16;e=c[(c[e+36>>2]|0)+4>>2]|0}while((e|0)!=0)}else{c[b>>2]=c[b>>2]|16;e=c[(c[b+36>>2]|0)+12>>2]|0;if(!e)break;do{e=c[e+20>>2]|0;b=c[e>>2]|0;if(b&1)break f;c[e>>2]=b|16;e=c[(c[e+36>>2]|0)+12>>2]|0}while((e|0)!=0)}}while(0);m=m+1|0}while((m|0)!=(G|0))}q=q+1|0}while((q|0)!=(r|0))}}else d=0;G=c[y>>2]|0;n=y+16|0;F=c[n>>2]|0;c[F+(G*40|0)+32>>2]=G;G=G+1|0;c[F+(G*40|0)+32>>2]=G;mu(y,d);if((c[P>>2]|0)>0){m=0;do{f=c[E>>2]|0;d=f+(m*72|0)|0;j=+h[f+(m*72|0)+56>>3]-+h[f+(m*72|0)+40>>3];k=+h[f+(m*72|0)+64>>3]-+h[f+(m*72|0)+48>>3];g=(j+k)*.5+500.0;if((k+-3.0)*.5<2.0){G=(c[d>>2]&8|0)==0;l=G?16384.0:j;g=G?16384.0:g}else l=j;if((j+-3.0)*.5<2.0){G=(c[d>>2]&16|0)==0;k=G?16384.0:k;g=G?16384.0:g}b=f+(m*72|0)+36|0;d=c[b>>2]|0;e=c[d+8>>2]|0;if((e|0)!=0?(H=c[d+4>>2]|0,(H|0)!=0):0){G=pu(y,e,H,g)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+4>>2]|0;if((e|0)!=0?(I=c[d>>2]|0,(I|0)!=0):0){G=pu(y,e,I,g)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+8>>2]|0;if((e|0)!=0?(J=c[d+12>>2]|0,(J|0)!=0):0){G=pu(y,e,J,g)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+12>>2]|0;if((e|0)!=0?(K=c[d>>2]|0,(K|0)!=0):0){G=pu(y,e,K,g)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+4>>2]|0;if((e|0)!=0?(L=c[d+12>>2]|0,(L|0)!=0):0){G=pu(y,e,L,k)|0;F=f+(m*72|0)+4|0;d=c[F>>2]|0;c[F>>2]=d+1;c[f+(m*72|0)+8+(d<<2)>>2]=G;d=c[b>>2]|0}e=c[d+8>>2]|0;if((e|0)!=0?(M=c[d>>2]|0,(M|0)!=0):0){F=pu(y,e,M,l)|0;D=f+(m*72|0)+4|0;G=c[D>>2]|0;c[D>>2]=G+1;c[f+(m*72|0)+8+(G<<2)>>2]=F}m=m+1|0}while((m|0)<(c[P>>2]|0))}Pi(v)|0;Pi(w)|0;pB(x);g:do if((c[y>>2]|0)>0){b=c[22667]|0;f=0;while(1){d=c[n>>2]|0;e=d+(f*40|0)+20|0;if((c[e>>2]|0)==0?(c[N>>2]=f,Bz(b,161479,N)|0,(c[e>>2]|0)==0):0){d=98;break}d=d+(f*40|0)+24|0;if((c[d>>2]|0)==0?(c[O>>2]=f,Bz(b,161531,O)|0,(c[d>>2]|0)==0):0){d=101;break}f=f+1|0;if((f|0)>=(c[y>>2]|0))break g}if((d|0)==98)Ia(161501,161514,311,161521);else if((d|0)==101)Ia(161553,161514,313,161521)}while(0);ku(y);c[P+16>>2]=y;i=Q;return P|0}function Hw(a){a=a|0;var b=0,d=0;d=a+8|0;pB(c[(c[d>>2]|0)+36>>2]|0);b=a+12|0;pB(c[(c[b>>2]|0)+36>>2]|0);pB(c[d>>2]|0);pB(c[b>>2]|0);qu(c[a+16>>2]|0);Pi(c[a+20>>2]|0)|0;Pi(c[a+24>>2]|0)|0;pB(a);return}function Iw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=ub[c[d>>2]&31](d,e,512)|0;do if(!h){h=ou(b)|0;if(!f)Ia(161892,161514,291,161899);else{b=c[h+32>>2]|0;i=f+(b<<5)|0;f=f+(b<<5)+8|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[i>>2]=h;a[h+36>>0]=g;ub[c[d>>2]&31](d,i,1)|0;break}}else i=h;while(0);return c[i>>2]|0}function Jw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b+8>>3];f=+h[c+8>>3];if(!(e>f))if(!(e<f)){f=+h[b>>3];e=+h[c>>3];if(f>e)a=1;else a=(f<e)<<31>>31}else a=-1;else a=1;return a|0}function Kw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b>>3];f=+h[c>>3];if(!(e>f))if(!(e<f)){f=+h[b+8>>3];e=+h[c+8>>3];if(f>e)a=1;else a=(f<e)<<31>>31}else a=-1;else a=1;return a|0}function Lw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=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.0,x=0.0,y=0.0,z=0.0;u=i;i=i+32|0;m=u;t=b<<2;k=t+4|0;t=t+5|0;s=aq(t*56|0)|0;t=$p(t<<2)|0;n=k*5|1;p=aq(n*72|0)|0;r=n<<5;q=$p(r)|0;r=$p(r)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];Mw(a,b,m,s,0);_y(173);Nw(k,t);Tw(k,s,t,n,p)|0;o=Ow(k,s,p,0,q)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];Mw(a,b,m,s,1);Nw(k,t);Tw(k,s,t,n,p)|0;k=Ow(k,s,p,1,r)|0;n=$p(_(o<<5,k)|0)|0;if((k|0)>0){l=(o|0)>0;e=0;m=0;do{if(l){b=r+(m<<5)|0;f=r+(m<<5)+16|0;g=r+(m<<5)+8|0;j=r+(m<<5)+24|0;a=0;do{z=+h[b>>3];y=+h[q+(a<<5)>>3];y=z>y?z:y;z=+h[f>>3];x=+h[q+(a<<5)+16>>3];x=z<x?z:x;h[n+(e<<5)+16>>3]=x;h[n+(e<<5)>>3]=y;z=+h[g>>3];w=+h[q+(a<<5)+8>>3];w=z>w?z:w;z=+h[j>>3];v=+h[q+(a<<5)+24>>3];v=z<v?z:v;h[n+(e<<5)+24>>3]=v;h[n+(e<<5)+8>>3]=w;e=((y>=x|w>=v)&1^1)+e|0;a=a+1|0}while((a|0)!=(o|0))}m=m+1|0}while((m|0)!=(k|0))}else e=0;o=cq(n,e<<5)|0;pB(s);pB(t);pB(p);pB(q);pB(r);c[d>>2]=e;i=u;return o|0}function Mw(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0.0,j=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+64|0;v=w;j=+h[d>>3];l=+h[d+8>>3];m=+h[d+16>>3];g=+h[d+24>>3];h[v>>3]=j;s=v+8|0;h[s>>3]=l;t=v+32|0;h[t>>3]=m;u=v+40|0;h[u>>3]=g;o=v+16|0;h[o>>3]=m;p=v+24|0;h[p>>3]=l;q=v+48|0;h[q>>3]=j;r=v+56|0;h[r>>3]=g;n=(f|0)==0;if(!n){h[s>>3]=j;l=-l;h[v>>3]=l;h[p>>3]=m;h[o>>3]=l;h[u>>3]=m;m=-g;h[t>>3]=m;h[r>>3]=j;h[q>>3]=m}d=Sw(e,1,v)|0;if((c|0)>0){f=0;do{x=b+(f*72|0)+40|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];g=+h[k>>3];x=b+(f*72|0)+48|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];j=+h[k>>3];x=b+(f*72|0)+56|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];l=+h[k>>3];x=b+(f*72|0)+64|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];m=+h[k>>3];h[v>>3]=g;h[s>>3]=j;h[t>>3]=l;h[u>>3]=m;h[o>>3]=g;h[p>>3]=m;h[q>>3]=l;h[r>>3]=j;if(!n){h[s>>3]=g;j=-j;h[v>>3]=j;h[p>>3]=g;m=-m;h[o>>3]=m;h[u>>3]=l;h[t>>3]=m;h[r>>3]=l;h[q>>3]=j}d=Sw(e,d,v)|0;f=f+1|0}while((f|0)!=(c|0))}i=w;return}function Nw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if((a|0)>=0){d=0;while(1){c[b+(d<<2)>>2]=d;if((d|0)==(a|0))break;else d=d+1|0}if((a|0)>=1){a=a+1|0;e=1;do{d=~~(+(e|0)+ +(a-e|0)*+Yy());if((d|0)!=(e|0)){g=b+(e<<2)|0;f=c[g>>2]|0;d=b+(d<<2)|0;c[g>>2]=c[d>>2];c[d>>2]=f}e=e+1|0}while((e|0)!=(a|0))}}return}function Ow(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0;j=(a*5|0)+1|0;o=$p(j<<2)|0;c[22450]=$p(j<<4)|0;c[22451]=$p((a*56|0)+56|0)|0;n=$p(a<<2)|0;c[22452]=n;if((a|0)>-1){g=0;a:do{i=c[d+(g*72|0)+4>>2]|0;do if((c[d+(g*72|0)+68>>2]|0)!=2?!((i|0)<1?1:(c[d+(g*72|0)>>2]|0)<1):0){if(!((c[d+(g*72|0)+40>>2]|0)<1?(c[d+(g*72|0)+44>>2]|0)<1:0)){if((c[d+(g*72|0)+48>>2]|0)>=1)break;if((c[d+(g*72|0)+52>>2]|0)>=1)break}l=+h[b+(i*56|0)+24>>3];m=+h[b+(i*56|0)+8>>3];if(l>m+1.0e-07)break a;if(!(l<m+-1.0e-07)?+h[b+(i*56|0)+16>>3]>+h[b+(i*56|0)>>3]:0)break a}while(0);g=g+1|0}while((g|0)<(j|0));if((a|0)<1)i=g;else{i=c[22450]|0;j=c[22451]|0;k=1;while(1){c[i+(k<<4)+8>>2]=c[b+(k*56|0)+48>>2];p=b+(k*56|0)+44|0;c[i+(k<<4)+4>>2]=c[p>>2];c[i+(k<<4)>>2]=k;q=j+(k*56|0)|0;r=b+(k*56|0)|0;c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];c[j+(k*56|0)+16>>2]=c[p>>2];c[j+(k*56|0)+32>>2]=k;c[j+(k*56|0)+48>>2]=1;if((k|0)==(a|0)){i=g;break}else k=k+1|0}}}else i=0;c[22453]=a;c[22454]=0;c[n>>2]=1;g=c[d+(i*72|0)+40>>2]|0;if((g|0)<=0){g=c[d+(i*72|0)+48>>2]|0;if((g|0)>0)g=Pw(o,f,0,b,d,0,i,g,e,2)|0;else g=0}else g=Pw(o,f,0,b,d,0,i,g,e,1)|0;pB(o);pB(c[22450]|0);pB(c[22451]|0);pB(c[22452]|0);return g|0}function Pw(a,b,d,e,f,g,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0.0,o=0.0,p=0,q=0.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.0,D=0,E=0,F=0.0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,O=0;a:do if((i|0)>=1){B=(k|0)==0;z=j;A=i;while(1){w=f+(A*72|0)|0;j=a+(A<<2)|0;if(c[j>>2]|0)break a;c[j>>2]=1;u=f+(A*72|0)+8|0;s=f+(A*72|0)+16|0;o=+h[s>>3];v=f+(A*72|0)+24|0;m=f+(A*72|0)+32|0;n=+h[m>>3];if((o>n?(y=c[w>>2]|0,C=+h[e+(y*56|0)>>3],C==+h[e+(y*56|0)+16>>3]):0)?(y=c[f+(A*72|0)+4>>2]|0,F=+h[e+(y*56|0)>>3],F==+h[e+(y*56|0)+16>>3]):0){j=b+(d<<5)|0;if(B){h[j>>3]=C;q=o;o=F}else{h[j>>3]=n;q=-C;n=-F}h[b+(d<<5)+8>>3]=n;h[b+(d<<5)+16>>3]=o;h[b+(d<<5)+24>>3]=q;d=d+1|0}j=f+(A*72|0)+40|0;x=c[j>>2]|0;do if((x|0)<1?(H=f+(A*72|0)+44|0,(c[H>>2]|0)<1):0){j=f+(A*72|0)+48|0;m=f+(A*72|0)+52|0;if((c[j>>2]|0)>0?(I=c[m>>2]|0,(I|0)>0):0){i=c[f+(I*72|0)>>2]|0;l=c[w>>2]|0;if((I|0)==(z|0)){i=Qw(g,l,i)|0;l=1;d=Pw(a,b,d,e,f,g,c[m>>2]|0,A,k,1)|0;break}else{i=Qw(g,i,l)|0;l=1;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,1)|0;j=m;break}}d=Pw(a,b,d,e,f,g,x,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[H>>2]|0,A,k,2)|0;l=1;i=g;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,1)|0;j=m}else O=19;while(0);do if((O|0)==19){O=0;y=f+(A*72|0)+48|0;p=c[y>>2]|0;if((p|0)<1?(J=f+(A*72|0)+52|0,(c[J>>2]|0)<1):0){m=f+(A*72|0)+44|0;if((x|0)>0?(K=c[m>>2]|0,(K|0)>0):0){i=c[f+(A*72|0)+4>>2]|0;l=c[f+(x*72|0)+4>>2]|0;if((K|0)==(z|0)){i=Qw(g,l,i)|0;l=2;d=Pw(a,b,d,e,f,g,c[m>>2]|0,A,k,2)|0;break}else{i=Qw(g,i,l)|0;l=2;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;j=m;break}}d=Pw(a,b,d,e,f,g,x,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[m>>2]|0,A,k,2)|0;l=1;i=g;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;j=J;break}t=f+(A*72|0)+44|0;r=c[t>>2]|0;i=(r|0)>0;if((x|0)>0){if(i){if((p|0)>0?(L=f+(A*72|0)+52|0,M=c[L>>2]|0,(M|0)>0):0){m=c[f+(M*72|0)>>2]|0;i=c[f+(x*72|0)+4>>2]|0;if(!((l|0)==2&(M|0)==(z|0))?!((l|0)==1&(r|0)==(z|0)):0){z=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[t>>2]|0,A,k,2)|0;j=L;break}z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[t>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[L>>2]|0,A,k,1)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;j=y;break}i=c[w>>2]|0;if(+N(+(+h[m>>3]-+h[e+(i*56|0)+24>>3]))<=1.0e-07?+N(+(+h[v>>3]-+h[e+(i*56|0)+16>>3]))<=1.0e-07:0){m=c[f+(x*72|0)+4>>2]|0;i=c[e+(i*56|0)+44>>2]|0;if((l|0)==1&(x|0)==(z|0)){z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,z,c[y>>2]|0,A,k,1)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[t>>2]|0,A,k,2)|0;j=f+(A*72|0)+52|0;break}else{i=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[t>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=2;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;break}}m=c[f+(A*72|0)+4>>2]|0;i=c[f+(x*72|0)+4>>2]|0;if((l|0)==1&(r|0)==(z|0)){z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[t>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;l=2;i=z;d=Pw(a,b,d,e,f,z,c[y>>2]|0,A,k,1)|0;break}else{i=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=2;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;j=t;break}}}else if(!i)break a;if((p|0)>0?(D=f+(A*72|0)+52|0,E=c[D>>2]|0,(E|0)>0):0){m=c[w>>2]|0;if(+N(+(+h[s>>3]-+h[e+(m*56|0)+8>>3]))<=1.0e-07?+N(+(+h[u>>3]-+h[e+(m*56|0)>>3]))<=1.0e-07:0){i=c[f+(E*72|0)>>2]|0;if((l|0)==2&(p|0)==(z|0)){z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;j=D;break}else{i=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[D>>2]|0,A,k,1)|0;l=1;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;j=y;break}}i=c[f+(E*72|0)>>2]|0;m=c[e+((c[f+(A*72|0)+4>>2]|0)*56|0)+44>>2]|0;if((l|0)==2&(E|0)==(z|0)){z=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[D>>2]|0,A,k,1)|0;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;j=y;break}else{i=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=1;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;j=D;break}}n=+h[s>>3];p=c[w>>2]|0;if(((+N(+(n-+h[e+(p*56|0)+8>>3]))<=1.0e-07?+N(+(+h[u>>3]-+h[e+(p*56|0)>>3]))<=1.0e-07:0)?(G=c[f+(A*72|0)+4>>2]|0,+N(+(+h[m>>3]-+h[e+(G*56|0)+8>>3]))<=1.0e-07):0)?+N(+(+h[v>>3]-+h[e+(G*56|0)>>3]))<=1.0e-07:0)if((l|0)==1){z=Qw(g,p,G)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;j=y;break}else{z=Qw(g,G,p)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=2;i=z;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;j=f+(A*72|0)+44|0;break}i=c[f+(A*72|0)+4>>2]|0;if(((+N(+(n-+h[e+(i*56|0)+24>>3]))<=1.0e-07?+N(+(+h[u>>3]-+h[e+(i*56|0)+16>>3]))<=1.0e-07:0)?+N(+(+h[m>>3]-+h[e+(p*56|0)+24>>3]))<=1.0e-07:0)?+N(+(+h[v>>3]-+h[e+(p*56|0)+16>>3]))<=1.0e-07:0){m=c[e+(i*56|0)+44>>2]|0;i=c[e+(p*56|0)+44>>2]|0;if((l|0)==1){z=Qw(g,i,m)|0;d=Pw(a,b,d,e,f,g,c[j>>2]|0,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;l=1;i=z;d=Pw(a,b,d,e,f,z,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;j=y;break}else{z=Qw(g,m,i)|0;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+52>>2]|0,A,k,1)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=2;i=z;d=Pw(a,b,d,e,f,z,c[j>>2]|0,A,k,2)|0;j=f+(A*72|0)+44|0;break}}d=Pw(a,b,d,e,f,g,x,A,k,2)|0;d=Pw(a,b,d,e,f,g,c[y>>2]|0,A,k,1)|0;l=1;i=g;d=Pw(a,b,d,e,f,g,c[f+(A*72|0)+44>>2]|0,A,k,2)|0;j=f+(A*72|0)+52|0}while(0);j=c[j>>2]|0;if((j|0)<1)break;else{z=A;g=i;A=j}}}while(0);return d|0}function Qw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,h=0.0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=(c[22454]|0)+1|0;c[22454]=n;o=c[22451]|0;l=o+(b*56|0)|0;m=o+(d*56|0)|0;g=-4.0;i=0;f=0;while(1){e=c[o+(b*56|0)+16+(i<<2)>>2]|0;if((e|0)>=1?(h=+Rw(l,o+(e*56|0)|0,m),h>g):0){g=h;e=i}else e=f;i=i+1|0;if((i|0)==4){j=e;break}else f=e}g=-4.0;i=0;e=0;do{f=c[o+(d*56|0)+16+(i<<2)>>2]|0;if((f|0)>=1?(k=+Rw(m,o+(f*56|0)|0,l),k>g):0){g=k;e=i}i=i+1|0}while((i|0)!=4);l=c[o+(b*56|0)+32+(j<<2)>>2]|0;i=c[o+(d*56|0)+32+(e<<2)>>2]|0;p=c[22453]|0;m=p+1|0;p=p+2|0;c[22453]=p;s=c[22450]|0;c[s+(m<<4)>>2]=b;c[s+(p<<4)>>2]=d;q=s+(l<<4)+4|0;r=s+(m<<4)+4|0;c[r>>2]=c[q>>2];c[s+(c[q>>2]<<4)+8>>2]=m;c[s+(m<<4)+8>>2]=p;c[s+(p<<4)+4>>2]=m;f=s+(i<<4)+8|0;c[s+(p<<4)+8>>2]=c[f>>2];c[s+(c[f>>2]<<4)+4>>2]=p;c[q>>2]=i;c[f>>2]=l;f=o+(b*56|0)+48|0;q=c[f>>2]|0;i=o+(d*56|0)+48|0;e=c[i>>2]|0;c[o+(b*56|0)+16+(j<<2)>>2]=d;c[o+(b*56|0)+32+(q<<2)>>2]=m;c[o+(b*56|0)+16+(q<<2)>>2]=c[s+(c[r>>2]<<4)>>2];c[o+(d*56|0)+32+(e<<2)>>2]=p;c[o+(d*56|0)+16+(e<<2)>>2]=b;c[f>>2]=(c[f>>2]|0)+1;c[i>>2]=(c[i>>2]|0)+1;d=c[22452]|0;c[d+(a<<2)>>2]=l;c[d+(n<<2)>>2]=m;return n|0}function Rw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0;g=+h[a>>3];i=+h[b>>3]-g;d=+h[a+8>>3];f=+h[b+8>>3]-d;g=+h[c>>3]-g;d=+h[c+8>>3]-d;e=i*g+f*d;if(!(i*d-f*g>=0.0))d=-e/+O(+(i*i+f*f))/+O(+(g*g+d*d))+-2.0;else d=e/+O(+(i*i+f*f))/+O(+(g*g+d*d));return +d}function Sw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=b+3|0;f=b+1|0;g=b+2|0;h=a+(b*56|0)+44|0;i=a+(b*56|0)+48|0;j=a+(e*56|0)+44|0;k=a+(e*56|0)+48|0;l=b;m=0;while(1){do if((l|0)!=(b|0))if((l|0)==(e|0)){c[j>>2]=b;c[k>>2]=g;break}else{c[a+(l*56|0)+44>>2]=l+1;c[a+(l*56|0)+48>>2]=l+-1;break}else{c[h>>2]=f;c[i>>2]=e}while(0);c[a+(l*56|0)+32>>2]=0;o=a+((c[a+(l*56|0)+48>>2]|0)*56|0)+16|0;p=a+(l*56|0)|0;n=d+(m<<4)|0;c[p>>2]=c[n>>2];c[p+4>>2]=c[n+4>>2];c[p+8>>2]=c[n+8>>2];c[p+12>>2]=c[n+12>>2];BB(o|0,n|0,16)|0;m=m+1|0;if((m|0)==4)break;else l=l+1|0}return b+4|0}function Tw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0.0,j=0,k=0.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;c[22455]=e<<1;c[22456]=e;s=$p(e*80|0)|0;c[22457]=1;c[22458]=1;CB(f|0,0,e*72|0)|0;p=c[d+4>>2]|0;r=Uw()|0;c[s+(r*40|0)>>2]=2;q=s+(r*40|0)+8|0;o=b+(p*56|0)|0;n=b+(p*56|0)+16|0;g=b+(p*56|0)+8|0;i=+h[g>>3];j=b+(p*56|0)+24|0;k=+h[j>>3];do if(!(i>k+1.0e-07)){if(!(+N(+(i-k))<=1.0e-07)){c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];c[q+12>>2]=c[n+12>>2];break}if(+h[o>>3]>+h[n>>3]+1.0e-07){c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];break}else{c[q>>2]=c[n>>2];c[q+4>>2]=c[n+4>>2];c[q+8>>2]=c[n+8>>2];c[q+12>>2]=c[n+12>>2];break}}else{c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2]}while(0);l=Uw()|0;c[s+(r*40|0)+36>>2]=l;c[s+(l*40|0)>>2]=3;c[s+(l*40|0)+28>>2]=r;m=Uw()|0;c[s+(r*40|0)+32>>2]=m;c[s+(m*40|0)>>2]=2;e=s+(m*40|0)+8|0;k=+h[g>>3];i=+h[j>>3];do if(!(k<i+-1.0e-07)){if(!(+N(+(k-i))<=1.0e-07)){c[e>>2]=c[n>>2];c[e+4>>2]=c[n+4>>2];c[e+8>>2]=c[n+8>>2];c[e+12>>2]=c[n+12>>2];break}if(+h[o>>3]<+h[n>>3]){c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[e+12>>2]=c[o+12>>2];break}else{c[e>>2]=c[n>>2];c[e+4>>2]=c[n+4>>2];c[e+8>>2]=c[n+8>>2];c[e+12>>2]=c[n+12>>2];break}}else{c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[e+12>>2]=c[o+12>>2]}while(0);c[s+(m*40|0)+28>>2]=r;g=Uw()|0;c[s+(m*40|0)+32>>2]=g;c[s+(g*40|0)>>2]=3;c[s+(g*40|0)+28>>2]=m;j=Uw()|0;c[s+(m*40|0)+36>>2]=j;c[s+(j*40|0)>>2]=1;c[s+(j*40|0)+4>>2]=p;c[s+(j*40|0)+28>>2]=m;o=Uw()|0;c[s+(j*40|0)+32>>2]=o;c[s+(o*40|0)>>2]=3;c[s+(o*40|0)+28>>2]=j;n=Uw()|0;c[s+(j*40|0)+36>>2]=n;c[s+(n*40|0)>>2]=3;c[s+(n*40|0)+28>>2]=j;j=Vw(f)|0;m=Vw(f)|0;t=Vw(f)|0;u=Vw(f)|0;v=f+(j*72|0)+8|0;w=f+(m*72|0)+8|0;x=f+(u*72|0)+24|0;c[x>>2]=c[q>>2];c[x+4>>2]=c[q+4>>2];c[x+8>>2]=c[q+8>>2];c[x+12>>2]=c[q+12>>2];BB(w|0,q|0,16)|0;c[v>>2]=c[w>>2];c[v+4>>2]=c[w+4>>2];c[v+8>>2]=c[w+8>>2];c[v+12>>2]=c[w+12>>2];q=f+(j*72|0)+24|0;v=f+(m*72|0)+24|0;w=f+(t*72|0)+8|0;c[w>>2]=c[e>>2];c[w+4>>2]=c[e+4>>2];c[w+8>>2]=c[e+8>>2];c[w+12>>2]=c[e+12>>2];BB(v|0,e|0,16)|0;c[q>>2]=c[v>>2];c[q+4>>2]=c[v+4>>2];c[q+8>>2]=c[v+8>>2];c[q+12>>2]=c[v+12>>2];h[f+(u*72|0)+16>>3]=1073741824.0;h[f+(u*72|0)+8>>3]=1073741824.0;h[f+(t*72|0)+32>>3]=-1073741824.0;h[f+(t*72|0)+24>>3]=-1073741824.0;c[f+(m*72|0)>>2]=p;c[f+(j*72|0)+4>>2]=p;c[f+(m*72|0)+40>>2]=u;c[f+(j*72|0)+40>>2]=u;c[f+(m*72|0)+48>>2]=t;c[f+(j*72|0)+48>>2]=t;c[f+(t*72|0)+40>>2]=j;c[f+(u*72|0)+48>>2]=j;c[f+(t*72|0)+44>>2]=m;c[f+(u*72|0)+52>>2]=m;c[f+(j*72|0)+56>>2]=o;c[f+(m*72|0)+56>>2]=n;c[f+(t*72|0)+56>>2]=g;c[f+(u*72|0)+56>>2]=l;c[f+(m*72|0)+68>>2]=1;c[f+(j*72|0)+68>>2]=1;c[f+(u*72|0)+68>>2]=1;c[f+(t*72|0)+68>>2]=1;c[s+(l*40|0)+24>>2]=u;c[s+(g*40|0)+24>>2]=t;c[s+(o*40|0)+24>>2]=j;c[s+(n*40|0)+24>>2]=m;c[b+(p*56|0)+32>>2]=1;n=(a|0)<1;m=a+1|0;if(!n){e=1;do{c[b+(e*56|0)+40>>2]=r;c[b+(e*56|0)+36>>2]=r;e=e+1|0}while((e|0)!=(m|0))}k=+(a|0);l=1;e=2;while(1){if(n)g=-1;else{g=0;i=k;while(1){i=+My(i);if(!(i>=1.0))break;else g=g+1|0}}if((l|0)>(g|0))break;g=l+-1|0;if((l|0)>1){j=0;i=k;do{i=+My(i);j=j+1|0}while((j|0)!=(g|0))}else i=k;j=~~+Z(+(k/i));while(1){g=0;i=k;do{i=+My(i);g=g+1|0}while((g|0)!=(l|0));if((j|0)>=(~~+Z(+(k/i))|0))break;Ww(c[d+(e<<2)>>2]|0,b,f,s);j=j+1|0;e=e+1|0}if(!n){g=1;do{if(!(c[b+(g*56|0)+32>>2]|0)){w=b+(g*56|0)|0;v=b+(g*56|0)+16|0;x=b+(g*56|0)+36|0;c[x>>2]=c[f+((Xw(w,v,c[x>>2]|0,b,s)|0)*72|0)+56>>2];x=b+(g*56|0)+40|0;c[x>>2]=c[f+((Xw(v,w,c[x>>2]|0,b,s)|0)*72|0)+56>>2]}g=g+1|0}while((g|0)!=(m|0))}l=l+1|0}if(!n){g=0;i=k;while(1){i=+My(i);if(!(i>=1.0))break;else g=g+1|0}if((g|0)>0){j=0;i=k;do{i=+My(i);j=j+1|0}while((j|0)!=(g|0))}else i=k}else i=k;g=~~+Z(+(k/i));if((g|0)<(a|0)){g=e+a-g|0;do{Ww(c[d+(e<<2)>>2]|0,b,f,s);e=e+1|0}while((e|0)!=(g|0))}pB(s);return c[22457]|0}function Uw(){var a=0;a=c[22458]|0;if((a|0)<(c[22455]|0)){c[22458]=a+1;return a|0}else{Mz(162041,30,1,c[22667]|0)|0;Ia(161945,161947,72,162072)}return 0}function Vw(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e;b=c[22457]|0;if((b|0)<(c[22456]|0)){c[a+(b*72|0)>>2]=-1;c[a+((c[22457]|0)*72|0)+4>>2]=-1;c[a+((c[22457]|0)*72|0)+68>>2]=1;d=c[22457]|0;c[22457]=d+1;i=e;return d|0}else{e=c[22667]|0;c[d>>2]=b;Bz(e,161995,d)|0;Ia(161945,161947,88,162033)}return 0}function Ww(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0.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,O=0,P=0,Q=0,R=0,S=0,T=0.0;S=i;i=i+80|0;P=S+16|0;f=S;v=P;s=b+(a*56|0)|0;u=v+56|0;do{c[v>>2]=c[s>>2];v=v+4|0;s=s+4|0}while((v|0)<(u|0));D=P+16|0;G=P+24|0;n=+h[G>>3];O=P+8|0;o=+h[O>>3];do if(!(n>o+1.0e-07)){if(!(n<o+-1.0e-07)?+h[D>>3]>+h[P>>3]:0){R=4;break}f=c[P+36>>2]|0;if(!(c[b+((c[b+(a*56|0)+48>>2]|0)*56|0)+32>>2]|0)){l=0;R=7}else{f=Xw(P,D,f,b,e)|0;R=20}}else R=4;while(0);if((R|0)==4){c[f>>2]=c[P>>2];c[f+4>>2]=c[P+4>>2];c[f+8>>2]=c[P+8>>2];c[f+12>>2]=c[P+12>>2];c[P>>2]=c[D>>2];c[P+4>>2]=c[D+4>>2];c[P+8>>2]=c[D+8>>2];c[P+12>>2]=c[D+12>>2];c[D>>2]=c[f>>2];c[D+4>>2]=c[f+4>>2];c[D+8>>2]=c[f+8>>2];c[D+12>>2]=c[f+12>>2];C=P+36|0;Q=c[C>>2]|0;R=P+40|0;f=c[R>>2]|0;c[C>>2]=f;c[R>>2]=Q;if(!(c[b+((c[b+(a*56|0)+44>>2]|0)*56|0)+32>>2]|0)){l=1;R=7}else{f=Xw(P,D,f,b,e)|0;R=19}}if((R|0)==7){j=Xw(P,D,f,b,e)|0;k=Vw(d)|0;c[d+(k*72|0)+68>>2]=1;v=d+(k*72|0)|0;s=d+(j*72|0)|0;u=v+72|0;do{c[v>>2]=c[s>>2];v=v+4|0;s=s+4|0}while((v|0)<(u|0));t=+h[O>>3];h[d+(k*72|0)+16>>3]=t;h[d+(j*72|0)+32>>3]=t;t=+h[P>>3];h[d+(k*72|0)+8>>3]=t;h[d+(j*72|0)+24>>3]=t;c[d+(j*72|0)+48>>2]=k;c[d+(j*72|0)+52>>2]=0;c[d+(k*72|0)+40>>2]=j;c[d+(k*72|0)+44>>2]=0;f=c[d+(k*72|0)+48>>2]|0;if((f|0)>0){g=d+(f*72|0)+40|0;if((c[g>>2]|0)==(j|0))c[g>>2]=k;f=d+(f*72|0)+44|0;if((c[f>>2]|0)==(j|0))c[f>>2]=k}f=c[d+(k*72|0)+52>>2]|0;if((f|0)>0){g=d+(f*72|0)+40|0;if((c[g>>2]|0)==(j|0))c[g>>2]=k;f=d+(f*72|0)+44|0;if((c[f>>2]|0)==(j|0))c[f>>2]=k}C=Uw()|0;R=Uw()|0;Q=d+(j*72|0)+56|0;B=c[Q>>2]|0;c[e+(B*40|0)>>2]=2;A=e+(B*40|0)+8|0;c[A>>2]=c[P>>2];c[A+4>>2]=c[P+4>>2];c[A+8>>2]=c[P+8>>2];c[A+12>>2]=c[P+12>>2];c[e+(B*40|0)+4>>2]=a;c[e+(B*40|0)+32>>2]=R;c[e+(B*40|0)+36>>2]=C;c[e+(C*40|0)>>2]=3;c[e+(C*40|0)+24>>2]=j;c[e+(C*40|0)+28>>2]=B;c[e+(R*40|0)>>2]=3;c[e+(R*40|0)+24>>2]=k;c[e+(R*40|0)+28>>2]=B;c[Q>>2]=C;c[d+(k*72|0)+56>>2]=R;if(l){f=k;R=19}else{f=k;R=20}}if((R|0)==19)if(!(c[b+((c[b+(a*56|0)+48>>2]|0)*56|0)+32>>2]|0)){g=1;R=21}else{g=1;R=32}else if((R|0)==20)if(!(c[b+((c[b+(a*56|0)+44>>2]|0)*56|0)+32>>2]|0)){g=0;R=21}else{g=0;R=32}if((R|0)==21){m=Xw(D,P,c[P+40>>2]|0,b,e)|0;l=Vw(d)|0;c[d+(l*72|0)+68>>2]=1;v=d+(l*72|0)|0;s=d+(m*72|0)|0;u=v+72|0;do{c[v>>2]=c[s>>2];v=v+4|0;s=s+4|0}while((v|0)<(u|0));t=+h[G>>3];h[d+(l*72|0)+16>>3]=t;h[d+(m*72|0)+32>>3]=t;t=+h[D>>3];h[d+(l*72|0)+8>>3]=t;h[d+(m*72|0)+24>>3]=t;c[d+(m*72|0)+48>>2]=l;c[d+(m*72|0)+52>>2]=0;c[d+(l*72|0)+40>>2]=m;c[d+(l*72|0)+44>>2]=0;j=c[d+(l*72|0)+48>>2]|0;if((j|0)>0){k=d+(j*72|0)+40|0;if((c[k>>2]|0)==(m|0))c[k>>2]=l;j=d+(j*72|0)+44|0;if((c[j>>2]|0)==(m|0))c[j>>2]=l}j=c[d+(l*72|0)+52>>2]|0;if((j|0)>0){k=d+(j*72|0)+40|0;if((c[k>>2]|0)==(m|0))c[k>>2]=l;j=d+(j*72|0)+44|0;if((c[j>>2]|0)==(m|0))c[j>>2]=l}B=Uw()|0;Q=Uw()|0;C=d+(m*72|0)+56|0;A=c[C>>2]|0;c[e+(A*40|0)>>2]=2;z=e+(A*40|0)+8|0;c[z>>2]=c[D>>2];c[z+4>>2]=c[D+4>>2];c[z+8>>2]=c[D+8>>2];c[z+12>>2]=c[D+12>>2];c[e+(A*40|0)+4>>2]=a;c[e+(A*40|0)+32>>2]=Q;c[e+(A*40|0)+36>>2]=B;c[e+(B*40|0)>>2]=3;c[e+(B*40|0)+24>>2]=m;c[e+(B*40|0)+28>>2]=A;c[e+(Q*40|0)>>2]=3;c[e+(Q*40|0)+24>>2]=l;c[e+(Q*40|0)+28>>2]=A;c[C>>2]=B;c[d+(l*72|0)+56>>2]=Q;Q=f;C=m;f=0}else if((R|0)==32){Q=f;C=Xw(D,P,c[P+40>>2]|0,b,e)|0;f=1}a:do if((Q|0)>0){A=d+(C*72|0)+32|0;B=d+(C*72|0)+24|0;z=(f|0)!=0;y=g?b+(a*56|0)+48|0:b+(a*56|0)+44|0;j=Q;g=0;f=0;b:while(1){k=d+(j*72|0)|0;w=d+(j*72|0)+24|0;x=d+(j*72|0)+32|0;n=+h[x>>3];o=+h[A>>3];if(!(n>o+1.0e-07)){if(n<o+-1.0e-07)break a;if(!(+h[w>>3]>=+h[B>>3]))break a}l=d+(j*72|0)+56|0;v=c[l>>2]|0;q=Uw()|0;r=Uw()|0;c[e+(v*40|0)>>2]=1;c[e+(v*40|0)+4>>2]=a;c[e+(v*40|0)+32>>2]=q;c[e+(v*40|0)+36>>2]=r;c[e+(q*40|0)>>2]=3;c[e+(q*40|0)+24>>2]=j;c[e+(q*40|0)+28>>2]=v;c[e+(r*40|0)>>2]=3;p=Vw(d)|0;c[e+(r*40|0)+24>>2]=p;m=d+(p*72|0)|0;c[d+(p*72|0)+68>>2]=1;c[e+(r*40|0)+28>>2]=v;g=(j|0)==(Q|0)?p:g;if(+N(+(+h[x>>3]-+h[A>>3]))<=1.0e-07?+N(+(+h[w>>3]-+h[B>>3]))<=1.0e-07:0)f=p;v=m;s=k;u=v+72|0;do{c[v>>2]=c[s>>2];v=v+4|0;s=s+4|0}while((v|0)<(u|0));c[l>>2]=q;c[d+(p*72|0)+56>>2]=r;k=d+(j*72|0)+48|0;l=d+(j*72|0)+52|0;q=(c[l>>2]|0)<1;do if((c[k>>2]|0)<1){if(q){R=43;break b}u=d+(j*72|0)+40|0;q=c[u>>2]|0;do if((q|0)>0?(I=d+(j*72|0)+44|0,J=c[I>>2]|0,(J|0)>0):0){q=d+(j*72|0)+60|0;r=c[q>>2]|0;if((r|0)<=0){c[d+(p*72|0)+40>>2]=J;c[d+(p*72|0)+44>>2]=-1;c[I>>2]=-1;c[d+(J*72|0)+48>>2]=p;break}if((c[d+(j*72|0)+64>>2]|0)==1){c[d+(p*72|0)+40>>2]=J;c[I>>2]=-1;c[d+(p*72|0)+44>>2]=r;c[d+((c[u>>2]|0)*72|0)+48>>2]=j;c[d+(J*72|0)+48>>2]=p;c[d+(r*72|0)+48>>2]=p}else{c[d+(p*72|0)+44>>2]=-1;v=d+(p*72|0)+40|0;c[v>>2]=c[I>>2];s=c[u>>2]|0;c[I>>2]=s;c[u>>2]=r;c[d+(r*72|0)+48>>2]=j;c[d+(s*72|0)+48>>2]=j;c[d+((c[v>>2]|0)*72|0)+48>>2]=p}c[d+(p*72|0)+60>>2]=0;c[q>>2]=0}else R=80;while(0);do if((R|0)==80){R=0;r=d+(q*72|0)+48|0;s=c[r>>2]|0;q=d+(q*72|0)+52|0;if((s|0)>0?(c[q>>2]|0)>0:0){q=c[d+(s*72|0)+4>>2]|0;if((q|0)>0?(Yw(q,b,D)|0)==0:0){c[d+(p*72|0)+44>>2]=-1;c[d+(j*72|0)+44>>2]=-1;c[u>>2]=-1;c[d+((c[d+(p*72|0)+40>>2]|0)*72|0)+52>>2]=p;break}c[d+(j*72|0)+44>>2]=-1;c[d+(p*72|0)+44>>2]=-1;c[d+(p*72|0)+40>>2]=-1;c[d+((c[u>>2]|0)*72|0)+48>>2]=j;break}c[r>>2]=j;c[q>>2]=p}while(0);if(+N(+(+h[x>>3]-+h[A>>3]))<=1.0e-07?z&+N(+(+h[w>>3]-+h[B>>3]))<=1.0e-07:0){q=c[y>>2]|0;if((q|0)<=0){R=92;break b}if(!(Yw(q,b,P)|0)){R=92;break b}c[d+((c[l>>2]|0)*72|0)+40>>2]=j;c[d+(p*72|0)+52>>2]=-1;c[d+(p*72|0)+48>>2]=-1;k=c[l>>2]|0;break}k=c[l>>2]|0;l=d+(k*72|0)+40|0;q=c[l>>2]|0;r=d+(k*72|0)+44|0;do if((q|0)>0?(K=c[r>>2]|0,(K|0)>0):0){s=d+(k*72|0)+60|0;if((q|0)==(j|0)){c[s>>2]=K;c[d+(k*72|0)+64>>2]=1;break}else{c[s>>2]=q;c[d+(k*72|0)+64>>2]=2;break}}while(0);c[l>>2]=j;c[r>>2]=p}else{if(!q){t=+h[x>>3];n=+h[O>>3];o=t-n;if(!(+N(+o)<=1.0e-07)){T=+h[P>>3];n=T+o/(+h[G>>3]-n)*(+h[D>>3]-T);if(!(t<t+-1.0e-07))if(t>t+1.0e-07)u=0;else u=n<+h[w>>3]&1;else u=1}else u=+h[w>>3]>+h[P>>3]&1;s=d+(j*72|0)+40|0;l=c[s>>2]|0;do if((l|0)>0?(L=d+(j*72|0)+44|0,M=c[L>>2]|0,(M|0)>0):0){l=d+(j*72|0)+60|0;q=c[l>>2]|0;if((q|0)<=0){c[d+(p*72|0)+40>>2]=M;c[d+(p*72|0)+44>>2]=-1;c[L>>2]=-1;c[d+(M*72|0)+48>>2]=p;break}if((c[d+(j*72|0)+64>>2]|0)==1){c[d+(p*72|0)+40>>2]=M;c[L>>2]=-1;c[d+(p*72|0)+44>>2]=q;c[d+((c[s>>2]|0)*72|0)+48>>2]=j;c[d+(M*72|0)+48>>2]=p;c[d+(q*72|0)+48>>2]=p}else{c[d+(p*72|0)+44>>2]=-1;v=d+(p*72|0)+40|0;c[v>>2]=c[L>>2];r=c[s>>2]|0;c[L>>2]=r;c[s>>2]=q;c[d+(q*72|0)+48>>2]=j;c[d+(r*72|0)+48>>2]=j;c[d+((c[v>>2]|0)*72|0)+48>>2]=p}c[d+(p*72|0)+60>>2]=0;c[l>>2]=0}else R=112;while(0);do if((R|0)==112){R=0;q=d+(l*72|0)+48|0;r=c[q>>2]|0;l=d+(l*72|0)+52|0;if((r|0)>0?(c[l>>2]|0)>0:0){l=c[d+(r*72|0)+4>>2]|0;if((l|0)>0?(Yw(l,b,D)|0)==0:0){c[d+(p*72|0)+44>>2]=-1;c[d+(j*72|0)+44>>2]=-1;c[s>>2]=-1;c[d+((c[d+(p*72|0)+40>>2]|0)*72|0)+52>>2]=p;break}c[d+(j*72|0)+44>>2]=-1;c[d+(p*72|0)+44>>2]=-1;c[d+(p*72|0)+40>>2]=-1;c[d+((c[s>>2]|0)*72|0)+48>>2]=j;break}c[q>>2]=j;c[l>>2]=p}while(0);if(+N(+(+h[x>>3]-+h[A>>3]))<=1.0e-07?z&+N(+(+h[w>>3]-+h[B>>3]))<=1.0e-07:0){l=p;R=121;break b}k=c[k>>2]|0;c[d+(k*72|0)+40>>2]=j;l=d+(k*72|0)+44|0;if(!u){c[l>>2]=-1;k=d+(j*72|0)+52|0;x=c[k>>2]|0;c[d+(x*72|0)+40>>2]=j;c[d+(x*72|0)+44>>2]=p;c[d+(p*72|0)+48>>2]=x;c[d+(p*72|0)+52>>2]=-1;k=c[k>>2]|0;break}else{c[l>>2]=p;x=d+(j*72|0)+52|0;w=c[x>>2]|0;c[d+(w*72|0)+40>>2]=p;c[d+(w*72|0)+44>>2]=-1;c[x>>2]=-1;break}}u=d+(j*72|0)+40|0;q=c[u>>2]|0;do if((q|0)>0?(E=d+(j*72|0)+44|0,F=c[E>>2]|0,(F|0)>0):0){q=d+(j*72|0)+60|0;r=c[q>>2]|0;if((r|0)<=0){c[d+(p*72|0)+40>>2]=F;c[d+(p*72|0)+44>>2]=-1;c[E>>2]=-1;c[d+(F*72|0)+48>>2]=p;break}if((c[d+(j*72|0)+64>>2]|0)==1){c[d+(p*72|0)+40>>2]=F;c[E>>2]=-1;c[d+(p*72|0)+44>>2]=r;c[d+((c[u>>2]|0)*72|0)+48>>2]=j;c[d+(F*72|0)+48>>2]=p;c[d+(r*72|0)+48>>2]=p}else{c[d+(p*72|0)+44>>2]=-1;v=d+(p*72|0)+40|0;c[v>>2]=c[E>>2];s=c[u>>2]|0;c[E>>2]=s;c[u>>2]=r;c[d+(r*72|0)+48>>2]=j;c[d+(s*72|0)+48>>2]=j;c[d+((c[v>>2]|0)*72|0)+48>>2]=p}c[d+(p*72|0)+60>>2]=0;c[q>>2]=0}else R=53;while(0);do if((R|0)==53){R=0;r=d+(q*72|0)+48|0;s=c[r>>2]|0;q=d+(q*72|0)+52|0;if((s|0)>0?(c[q>>2]|0)>0:0){q=c[d+(s*72|0)+4>>2]|0;if((q|0)>0?(Yw(q,b,D)|0)==0:0){c[d+(p*72|0)+44>>2]=-1;c[d+(j*72|0)+44>>2]=-1;c[u>>2]=-1;c[d+((c[d+(p*72|0)+40>>2]|0)*72|0)+52>>2]=p;break}c[d+(j*72|0)+44>>2]=-1;c[d+(p*72|0)+44>>2]=-1;c[d+(p*72|0)+40>>2]=-1;c[d+((c[u>>2]|0)*72|0)+48>>2]=j;break}c[r>>2]=j;c[q>>2]=p}while(0);if(+N(+(+h[x>>3]-+h[A>>3]))<=1.0e-07?z&+N(+(+h[w>>3]-+h[B>>3]))<=1.0e-07:0){q=c[y>>2]|0;if((q|0)<=0){R=65;break b}if(!(Yw(q,b,P)|0)){R=65;break b}c[d+((c[k>>2]|0)*72|0)+40>>2]=j;c[d+(p*72|0)+52>>2]=-1;c[d+(p*72|0)+48>>2]=-1;k=c[k>>2]|0;break}k=c[k>>2]|0;l=d+(k*72|0)+40|0;q=c[l>>2]|0;r=d+(k*72|0)+44|0;do if((q|0)>0?(H=c[r>>2]|0,(H|0)>0):0){s=d+(k*72|0)+60|0;if((q|0)==(j|0)){c[s>>2]=H;c[d+(k*72|0)+64>>2]=1;break}else{c[s>>2]=q;c[d+(k*72|0)+64>>2]=2;break}}while(0);c[l>>2]=j;c[r>>2]=p}while(0);c[m>>2]=a;c[d+(j*72|0)+4>>2]=a;if((k|0)>0)j=k;else break a}if((R|0)==43){Mz(161975,19,1,c[22667]|0)|0;break}else if((R|0)==65){c[d+((c[d+(p*72|0)+48>>2]|0)*72|0)+44>>2]=p;c[l>>2]=-1;c[k>>2]=-1;k=m}else if((R|0)==92){c[d+((c[d+(p*72|0)+52>>2]|0)*72|0)+44>>2]=p;c[l>>2]=-1;c[k>>2]=-1;k=m}else if((R|0)==121){k=c[k>>2]|0;c[d+(k*72|0)+40>>2]=j;c[d+(k*72|0)+44>>2]=-1;k=d+(j*72|0)+52|0;R=c[k>>2]|0;c[d+(R*72|0)+40>>2]=l;c[d+(R*72|0)+44>>2]=-1;c[d+(l*72|0)+48>>2]=R;c[d+(l*72|0)+52>>2]=-1;c[k>>2]=-1;k=m}c[k>>2]=a;c[d+(j*72|0)+4>>2]=a}else{g=0;f=0}while(0);Zw(a,Q,C,1,d,e);Zw(a,g,f,2,d,e);c[b+(a*56|0)+32>>2]=1;i=S;return}function Xw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,i=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0;m=a+8|0;n=b+8|0;a:while(1){b:do switch(c[f+(d*40|0)>>2]|0){case 3:{r=3;break a}case 2:{g=+h[m>>3];i=f+(d*40|0)+8|0;j=+h[f+(d*40|0)+16>>3];k=j+1.0e-07;do if(!(g>k)){l=j+-1.0e-07;if(!(g<l)?+h[a>>3]>+h[i>>3]:0)break;if(+N(+(g-j))<=1.0e-07?(o=+h[i>>3],+N(+(+h[a>>3]-o))<=1.0e-07):0){g=+h[n>>3];do if(!(g>k)){if(!(g<l)?+h[b>>3]>o:0)break;d=f+(d*40|0)+32|0;break b}while(0);d=f+(d*40|0)+36|0;break b}d=f+(d*40|0)+32|0;break b}while(0);d=f+(d*40|0)+36|0;break}case 1:{g=+h[m>>3];i=c[f+(d*40|0)+4>>2]|0;if(+N(+(g-+h[e+(i*56|0)+8>>3]))<=1.0e-07?(p=+h[a>>3],+N(+(p-+h[e+(i*56|0)>>3]))<=1.0e-07):0)j=p;else r=19;do if((r|0)==19){r=0;if(+N(+(g-+h[e+(i*56|0)+24>>3]))<=1.0e-07?(q=+h[a>>3],+N(+(q-+h[e+(i*56|0)+16>>3]))<=1.0e-07):0){j=q;break}if(!(Yw(i,e,a)|0)){d=f+(d*40|0)+36|0;break b}else{d=f+(d*40|0)+32|0;break b}}while(0);if(!(+N(+(g-+h[n>>3]))<=1.0e-07))if(!(Yw(i,e,b)|0)){d=f+(d*40|0)+36|0;break b}else{d=f+(d*40|0)+32|0;break b}else if(+h[b>>3]<j){d=f+(d*40|0)+32|0;break b}else{d=f+(d*40|0)+36|0;break b}}default:{r=31;break a}}while(0);d=c[d>>2]|0}if((r|0)==3)return c[f+(d*40|0)+24>>2]|0;else if((r|0)==31){Mz(161909,35,1,c[22667]|0)|0;Ia(161945,161947,349,161959)}return 0}function Yw(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0,i=0.0,j=0,k=0,l=0.0,m=0.0;k=b+(a*56|0)+16|0;l=+h[b+(a*56|0)+24>>3];g=b+(a*56|0)|0;i=+h[b+(a*56|0)+8>>3];do if(!(l>i+1.0e-07)){if(!(l<i+-1.0e-07)?+h[k>>3]>+h[g>>3]:0){j=4;break}f=+h[c+8>>3];if(+N(+(l-f))<=1.0e-07){d=+h[c>>3]<+h[k>>3]?1.0:-1.0;break}a=!(+N(+(i-f))<=1.0e-07);e=+h[g>>3];d=+h[c>>3];if(a){m=+h[k>>3];d=(f-l)*(e-m)-(i-l)*(d-m);break}else{d=d<e?1.0:-1.0;break}}else j=4;while(0);do if((j|0)==4){f=+h[c+8>>3];if(+N(+(l-f))<=1.0e-07){d=+h[c>>3]<+h[k>>3]?1.0:-1.0;break}j=!(+N(+(i-f))<=1.0e-07);e=+h[g>>3];d=+h[c>>3];if(j){d=(f-i)*(+h[k>>3]-e)-(l-i)*(d-e);break}else{d=d<e?1.0:-1.0;break}}while(0);return d>0.0|0}function Zw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0.0,j=0.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;a:do if((b|0)>0){v=f+(d*72|0)+32|0;u=(e|0)==1;t=f+(d*72|0)+24|0;b:while(1){n=f+(b*72|0)+24|0;o=f+(b*72|0)+32|0;p=f+(b*72|0)+48|0;q=f+(b*72|0)+52|0;r=f+(b*72|0)|0;s=f+(b*72|0)+4|0;m=f+(b*72|0)+56|0;while(1){i=+h[o>>3];j=+h[v>>3];if(!(i>j+1.0e-07)){if(i<j+-1.0e-07)break a;if(!(+h[n>>3]>=+h[t>>3]))break a}e=c[p>>2]|0;d=(e|0)>0;do if(u){if(d?(c[f+(e*72|0)+4>>2]|0)==(a|0):0)break;e=c[q>>2]|0;if((e|0)<=0)break a;if((c[f+(e*72|0)+4>>2]|0)!=(a|0)){b=e;continue b}}else{if(d?(c[f+(e*72|0)>>2]|0)==(a|0):0)break;e=c[q>>2]|0;if((e|0)<=0)break a;if((c[f+(e*72|0)>>2]|0)!=(a|0)){b=e;continue b}}while(0);if((c[r>>2]|0)!=(c[f+(e*72|0)>>2]|0)){b=e;continue b}if((c[s>>2]|0)!=(c[f+(e*72|0)+4>>2]|0)){b=e;continue b}w=c[f+(e*72|0)+56>>2]|0;d=c[g+(w*40|0)+28>>2]|0;k=g+(d*40|0)+32|0;l=c[m>>2]|0;if((c[k>>2]|0)==(w|0))c[k>>2]=l;else c[g+(d*40|0)+36>>2]=l;d=c[f+(e*72|0)+48>>2]|0;c[p>>2]=d;do if((d|0)>0){k=f+(d*72|0)+40|0;if((c[k>>2]|0)==(e|0)){c[k>>2]=b;break}d=f+(d*72|0)+44|0;if((c[d>>2]|0)==(e|0))c[d>>2]=b}while(0);d=c[f+(e*72|0)+52>>2]|0;c[q>>2]=d;do if((d|0)>0){k=f+(d*72|0)+40|0;if((c[k>>2]|0)==(e|0)){c[k>>2]=b;break}d=f+(d*72|0)+44|0;if((c[d>>2]|0)==(e|0))c[d>>2]=b}while(0);w=f+(e*72|0)+24|0;c[n>>2]=c[w>>2];c[n+4>>2]=c[w+4>>2];c[n+8>>2]=c[w+8>>2];c[n+12>>2]=c[w+12>>2];c[f+(e*72|0)+68>>2]=2}}}while(0);return}function _w(a){a=a|0;var b=0;do{b=a;a=c[a>>2]|0;pB(b)}while((a|0)!=0);return}function $w(){var a=0,b=0,d=0;a=$p(1992)|0;if(a){b=fx(a)|0;c[b+4>>2]=0;d=a+1972|0;c[d>>2]=(c[d>>2]|0)+1;c[a>>2]=b}return a|0}function ax(a){a=a|0;dx(a,c[a>>2]|0);pB(c[a>>2]|0);pB(a);return 0}function bx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(!b)Ia(162430,162080,194,162088);e=c[b+4>>2]|0;if((e|0)<=-1)Ia(162100,162080,195,162088);if(!d)Ia(162372,162080,196,162088);i=a+1952|0;c[i>>2]=(c[i>>2]|0)+1;if((e|0)>0){i=0;h=0;while(1){e=b+8+(i*20|0)+16|0;if((c[e>>2]|0)!=0?(px(d,b+8+(i*20|0)|0)|0)!=0:0){e=bx(a,c[e>>2]|0,d)|0;if(h){f=h;while(1){g=c[f>>2]|0;if(!g)break;else f=g}c[f>>2]=e;e=h}}else e=h;i=i+1|0;if((i|0)==64)break;else h=e}}else{g=0;e=0;do{f=b+8+(g*20|0)|0;if((c[b+8+(g*20|0)+16>>2]|0)!=0?(px(d,f)|0)!=0:0){a=$p(8)|0;c[a+4>>2]=f;c[a>>2]=e;e=a}g=g+1|0}while((g|0)!=64)}return e|0}function cx(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+64|0;o=q+52|0;n=q+32|0;h=q+16|0;j=q;c[o>>2]=0;if(!((b|0)!=0&(e|0)!=0))Ia(162286,162080,247,162114);if((f|0)>-1?(l=c[e>>2]|0,(c[l+4>>2]|0)>=(f|0)):0){if((c[b>>2]|0)<=(c[b+8>>2]|0)?(c[b+4>>2]|0)<=(c[b+12>>2]|0):0){k=a+1912|0;g=a+1908|0;m=(c[g>>2]|0)==0;do if(!(c[k>>2]|0)){if(m)p=13}else if(m){p=a+1916|0;c[p>>2]=(c[p>>2]|0)+1;p=13;break}else{m=a+1924|0;c[m>>2]=(c[m>>2]|0)+1;break}while(0);if((p|0)==13){p=a+1964|0;c[p>>2]=(c[p>>2]|0)+1}if(!(ex(a,b,d,l,o,f)|0))g=0;else{do if(c[k>>2]|0)if(!(c[g>>2]|0)){p=a+1944|0;c[p>>2]=(c[p>>2]|0)+1;break}else{p=a+1948|0;c[p>>2]=(c[p>>2]|0)+1;break}while(0);g=fx(a)|0;p=a+1976|0;c[p>>2]=(c[p>>2]|0)+1;p=c[e>>2]|0;c[g+4>>2]=(c[p+4>>2]|0)+1;hx(h,p);c[n>>2]=c[h>>2];c[n+4>>2]=c[h+4>>2];c[n+8>>2]=c[h+8>>2];c[n+12>>2]=c[h+12>>2];p=n+16|0;c[p>>2]=c[e>>2];jx(a,n,g,0)|0;hx(j,c[o>>2]|0);c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];c[n+8>>2]=c[j+8>>2];c[n+12>>2]=c[j+12>>2];c[p>>2]=c[o>>2];jx(a,n,g,0)|0;c[e>>2]=g;g=a+1980|0;c[g>>2]=(c[g>>2]|0)+2;g=1}i=q;return g|0}Ia(162161,162080,250,162114)}Ia(162126,162080,248,162114);return 0}function dx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=a+1980|0;h=a+1912|0;i=a+1936|0;if((c[b+4>>2]|0)>0){f=0;do{d=b+8+(f*20|0)+16|0;e=c[d>>2]|0;if((e|0)!=0?(dx(a,e),pB(c[d>>2]|0),kx(b,f),c[g>>2]=(c[g>>2]|0)+-1,(c[h>>2]|0)!=0):0)c[i>>2]=(c[i>>2]|0)+1;f=f+1|0}while((f|0)!=64)}else{d=0;do{if((c[b+8+(d*20|0)+16>>2]|0)!=0?(kx(b,d),c[g>>2]=(c[g>>2]|0)+-1,(c[h>>2]|0)!=0):0)c[i>>2]=(c[i>>2]|0)+1;d=d+1|0}while((d|0)!=64)}return}function ex(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+80|0;n=p+52|0;o=p+48|0;k=p+32|0;l=p+16|0;m=p;c[o>>2]=0;if(!((b|0)!=0&(e|0)!=0&(f|0)!=0))Ia(162204,162080,311,162218);if((g|0)>-1?(j=c[e+4>>2]|0,(j|0)>=(g|0)):0){do if(c[a+1912>>2]|0)if(!(c[a+1908>>2]|0)){q=a+1944|0;c[q>>2]=(c[q>>2]|0)+1;break}else{q=a+1948|0;c[q>>2]=(c[q>>2]|0)+1;break}while(0);do if((j|0)>(g|0)){j=ix(b,e)|0;h=e+8+(j*20|0)+16|0;j=e+8+(j*20|0)|0;if(!(ex(a,b,d,c[h>>2]|0,o,g)|0)){ox(k,b,j);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[j+12>>2]=c[k+12>>2];h=0;break}else{hx(l,c[h>>2]|0);c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];c[j+8>>2]=c[l+8>>2];c[j+12>>2]=c[l+12>>2];h=c[o>>2]|0;c[n+16>>2]=h;hx(m,h);c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];h=a+1980|0;c[h>>2]=(c[h>>2]|0)+1;h=jx(a,n,e,f)|0;break}}else if((j|0)==(g|0)){c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];c[n+16>>2]=d;h=a+1980|0;c[h>>2]=(c[h>>2]|0)+1;h=jx(a,n,e,f)|0;break}else Ia(162263,162080,341,162218);while(0);i=p;return h|0}Ia(162231,162080,312,162218);return 0}function fx(a){a=a|0;var b=0;a=a+1968|0;c[a>>2]=(c[a>>2]|0)+1;a=oB(1288)|0;c[a>>2]=0;c[a+4>>2]=-1;b=0;do{lx(a+8+(b*20|0)|0);c[a+8+(b*20|0)+16>>2]=0;b=b+1|0}while((b|0)!=64);return a|0}function gx(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=-1;b=0;do{lx(a+8+(b*20|0)|0);c[a+8+(b*20|0)+16>>2]=0;b=b+1|0}while((b|0)!=64);return}function hx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j+16|0;f=j;if(!b)Ia(162430,162269,99,162276);lx(h);d=1;g=0;do{do if(c[b+8+(g*20|0)+16>>2]|0){e=b+8+(g*20|0)|0;if(!d){ox(f,h,e);c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];d=0;break}else{c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];c[h+8>>2]=c[e+8>>2];c[h+12>>2]=c[e+12>>2];d=0;break}}while(0);g=g+1|0}while((g|0)!=64);c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2];i=j;return}function ix(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;m=n+16|0;k=n;if(!((a|0)!=0&(b|0)!=0))Ia(162286,162269,125,162293);d=0;h=0;j=0;g=1;l=0;while(1){if(c[b+8+(l*20|0)+16>>2]|0){f=b+8+(l*20|0)|0;e=nx(f)|0;ox(k,a,f);c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];f=(nx(m)|0)-e|0;if((g|0)!=0|(f|0)<(j|0)){d=l;g=0}else{g=(e|0)<(h|0)&(f|0)==(j|0);d=g?l:d;e=g?e:h;f=g?f:j;g=0}}else{e=h;f=j}l=l+1|0;if((l|0)==64)break;else{h=e;j=f}}i=n;return d|0}function jx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if(!b)Ia(162452,162269,167,162304);if(!d)Ia(162430,162269,168,162304);do if((c[d>>2]|0)<64){e=0;while(1){if(!(c[d+8+(e*20|0)+16>>2]|0)){a=7;break}e=e+1|0;if((e|0)>=64){a=9;break}}if((a|0)==7){f=d+8+(e*20|0)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[d>>2]=(c[d>>2]|0)+1;f=0;break}else if((a|0)==9)Ia(162314,162269,178,162304)}else{do if(c[a+1912>>2]|0)if(!(c[a+1908>>2]|0)){f=a+1944|0;c[f>>2]=(c[f>>2]|0)+1;break}else{f=a+1948|0;c[f>>2]=(c[f>>2]|0)+1;break}while(0);if(!e)Ia(162327,162269,187,162304);qx(a,d,b,e);if(!(c[d+4>>2]|0)){f=a+1972|0;c[f>>2]=(c[f>>2]|0)+1;f=1;break}else{f=a+1976|0;c[f>>2]=(c[f>>2]|0)+1;f=1;break}}while(0);return f|0}function kx(a,b){a=a|0;b=b|0;var d=0;if(!((a|0)!=0&b>>>0<64))Ia(162331,162269,201,162359);d=a+8+(b*20|0)+16|0;if(!(c[d>>2]|0))Ia(162454,162269,202,162359);else{lx(a+8+(b*20|0)|0);c[d>>2]=0;c[a>>2]=(c[a>>2]|0)+-1;return}}function lx(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;return}function mx(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=1;c[d+8>>2]=-1;c[d+12>>2]=0;c[d+4>>2]=0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];i=b;return}function nx(a){a=a|0;var b=0,d=0;if(!a)Ia(162372,162374,128,162386);b=c[a>>2]|0;d=c[a+8>>2]|0;if((d|0)<(b|0))b=0;else{b=_(c[a+12>>2]|0,d-b|0)|0;b=b-(c[a+4>>2]|0)|0}return b|0}function ox(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;if(!((b|0)!=0&(d|0)!=0))Ia(162395,162374,195,162403);e=c[b>>2]|0;f=c[b+8>>2]|0;do if((e|0)<=(f|0)){g=c[d>>2]|0;h=c[d+8>>2]|0;if((g|0)>(h|0)){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];break}else{c[j>>2]=(e|0)<(g|0)?e:g;c[j+8>>2]=(f|0)>(h|0)?f:h;g=c[b+4>>2]|0;h=c[d+4>>2]|0;c[j+4>>2]=(g|0)<(h|0)?g:h;b=c[b+12>>2]|0;d=c[d+12>>2]|0;c[j+12>>2]=(b|0)>(d|0)?b:d;c[a>>2]=c[j>>2];c[a+4>>2]=c[j+4>>2];c[a+8>>2]=c[j+8>>2];c[a+12>>2]=c[j+12>>2];break}}else{c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2]}while(0);i=k;return}function px(a,b){a=a|0;b=b|0;if(!((a|0)!=0&(b|0)!=0))Ia(162415,162374,216,162422);if(((c[a>>2]|0)<=(c[b+8>>2]|0)?(c[b>>2]|0)<=(c[a+8>>2]|0):0)?(c[a+4>>2]|0)<=(c[b+12>>2]|0):0)return (c[b+4>>2]|0)<=(c[a+12>>2]|0)|0;return 0}function qx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=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,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;F=i;i=i+352|0;p=F+80|0;q=F+64|0;o=F+48|0;w=F+32|0;t=F+16|0;u=F;if(!b)Ia(162430,162432,40,162442);if(!d)Ia(162452,162432,41,162442);A=a+1912|0;do if(c[A>>2]|0)if(!(c[a+1908>>2]|0)){C=a+1928|0;c[C>>2]=(c[C>>2]|0)+1;break}else{C=a+1932|0;c[C>>2]=(c[C>>2]|0)+1;break}while(0);B=b+4|0;C=c[B>>2]|0;f=0;do{if(!(c[b+8+(f*20|0)+16>>2]|0)){E=11;break}y=b+8+(f*20|0)|0;z=a+4+(f*20|0)|0;c[z>>2]=c[y>>2];c[z+4>>2]=c[y+4>>2];c[z+8>>2]=c[y+8>>2];c[z+12>>2]=c[y+12>>2];c[z+16>>2]=c[y+16>>2];f=f+1|0}while((f|0)<64);if((E|0)==11)Ia(162454,162432,111,162473);z=a+4|0;f=a+1284|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];c[f+16>>2]=c[d+16>>2];f=a+1304|0;c[f>>2]=c[z>>2];c[f+4>>2]=c[z+4>>2];c[f+8>>2]=c[z+8>>2];c[f+12>>2]=c[z+12>>2];d=1;do{ox(p,f,a+4+(d*20|0)|0);c[f>>2]=c[p>>2];c[f+4>>2]=c[p+4>>2];c[f+8>>2]=c[p+8>>2];c[f+12>>2]=c[p+12>>2];d=d+1|0}while((d|0)!=65);z=a+1320|0;c[z>>2]=nx(f)|0;gx(b);x=a+1848|0;c[x>>2]=0;v=a+1844|0;c[v>>2]=0;r=a+1852|0;y=a+1868|0;mx(p);c[y>>2]=c[p>>2];c[y+4>>2]=c[p+4>>2];c[y+8>>2]=c[p+8>>2];c[y+12>>2]=c[p+12>>2];c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];r=a+1888|0;c[r>>2]=0;s=a+1884|0;c[s>>2]=0;d=0;do{c[a+1584+(d<<2)>>2]=0;c[a+1324+(d<<2)>>2]=-1;d=d+1|0}while((d|0)!=65);d=0;do{c[p+(d<<2)>>2]=nx(a+4+(d*20|0)|0)|0;d=d+1|0}while((d|0)!=65);h=0;f=0;d=0;j=0;do{n=h;h=h+1|0;k=a+4+(n*20|0)|0;l=c[p+(n<<2)>>2]|0;m=h;do{ox(o,k,a+4+(m*20|0)|0);c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];H=(nx(q)|0)-l|0;H=H-(c[p+(m<<2)>>2]|0)|0;G=H>>>0>j>>>0;j=G?H:j;f=G?n:f;d=G?m:d;m=m+1|0}while((m|0)!=65)}while((h|0)!=64);rx(a,f,0);rx(a,d,1);f=c[v>>2]|0;d=c[x>>2]|0;a:do if((d+f|0)<65){m=a+1892|0;n=a+1852|0;h=0;j=0;do{H=65-(c[m>>2]|0)|0;if((f|0)<(H|0)&(d|0)<(H|0)){k=-1;l=0}else break a;while(1){if(!(c[a+1584+(l<<2)>>2]|0)){H=a+4+(l*20|0)|0;ox(t,H,n);c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];d=nx(w)|0;f=c[s>>2]|0;ox(u,H,y);c[w>>2]=c[u>>2];c[w+4>>2]=c[u+4>>2];c[w+8>>2]=c[u+8>>2];c[w+12>>2]=c[u+12>>2];H=nx(w)|0;d=H-(c[r>>2]|0)+(f-d)|0;f=(d|0)>-1?d:0-d|0;d=d>>>31;if((f|0)<=(k|0))if((f|0)==(k|0)){H=(c[a+1844+(d<<2)>>2]|0)<(c[a+1844+(h<<2)>>2]|0);h=H?d:h;d=k;j=H?l:j}else d=k;else{h=d;d=f;j=l}}else d=k;l=l+1|0;if((l|0)==65)break;else k=d}rx(a,j,h);f=c[v>>2]|0;d=c[x>>2]|0}while((d+f|0)<65)}while(0);if((f+d|0)<65){d=(f|0)>=(65-(c[a+1892>>2]|0)|0)&1;f=0;do{if(!(c[a+1584+(f<<2)>>2]|0))rx(a,f,d);f=f+1|0}while((f|0)!=65);f=c[v>>2]|0;d=c[x>>2]|0}if((f+d|0)!=65)Ia(162485,162432,210,162571);H=c[a+1892>>2]|0;if((f|0)<(H|0)|(d|0)<(H|0))Ia(162582,162432,212,162571);d=nx(a+1852|0)|0;d=(nx(y)|0)+d|0;if((c[A>>2]|0)!=0?(d|0)!=0&(c[a+1908>>2]|0)==0:0){H=a+1960|0;g[H>>2]=+((c[z>>2]|0)>>>0)/+(d|0)+ +g[H>>2]}f=fx(a)|0;c[e>>2]=f;c[B>>2]=C;c[f+4>>2]=C;if(!f)Ia(162685,162432,298,162687);else D=0;do{d=c[a+1324+(D<<2)>>2]|0;if(d>>>0>=2){E=47;break}switch(d|0){case 0:{jx(a,a+4+(D*20|0)|0,b,0)|0;break}case 1:{jx(a,a+4+(D*20|0)|0,f,0)|0;break}default:{}}D=D+1|0}while((D|0)<65);if((E|0)==47)Ia(162697,162432,303,162687);if(((c[c[e>>2]>>2]|0)+(c[b>>2]|0)|0)==65){i=F;return}else Ia(162786,162432,86,162442)}function rx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;e=a+1584+(b<<2)|0;if(c[e>>2]|0)Ia(162826,162432,257,162861);c[a+1324+(b<<2)>>2]=d;c[e>>2]=1;f=a+1844+(d<<2)|0;g=a+1852+(d<<4)|0;e=a+4+(b*20|0)|0;if(!(c[f>>2]|0)){c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2]}else{ox(h,e,g);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2]}c[a+1884+(d<<2)>>2]=nx(g)|0;c[f>>2]=(c[f>>2]|0)+1;i=j;return}function sx(){var 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;w=i;i=i+1200|0;u=w+800|0;f=w;c[22459]=0;c[22460]=-2;q=0;l=u;e=u;h=200;m=0;k=f;a:while(1){b[e>>1]=m;if((l+(h+-1<<1)|0)>>>0<=e>>>0){j=e-l>>1;e=j+1|0;if(h>>>0>9999){f=l;v=103;break}g=h<<1;g=g>>>0>1e4?1e4:g;f=oB(g*6|3)|0;if(!f){f=l;v=103;break}AB(f|0,l|0,e<<1|0)|0;h=f+((g>>>1&1073741823)<<2)|0;AB(h|0,k|0,e<<2|0)|0;if((l|0)!=(u|0))pB(l);if((g+-1|0)>(j|0)){t=f;e=f+(j<<1)|0;r=g;s=h;f=h+(j<<2)|0}else{e=1;v=105;break}}else{t=l;r=h;s=k}if((m|0)==31){e=0;f=t;v=104;break}p=b[96898+(m<<1)>>1]|0;j=p<<16>>16;do if(p<<16>>16!=-82){g=c[22460]|0;if((g|0)==-2){g=Hx()|0;c[22460]=g}if((g|0)>=1)if(g>>>0<296)h=d[162870+g>>0]|0;else h=2;else{c[22460]=0;h=0}g=h+j|0;if(g>>>0<=271?(a[163166+g>>0]|0)==(h|0):0){p=a[163438+g>>0]|0;g=p<<24>>24;if(p<<24>>24<1){g=0-g|0;v=23;break}else{c[22460]=-2;f=f+4|0;c[f>>2]=c[22461];j=(q|0)==0?0:q+-1|0;break}}else v=22}else v=22;while(0);if((v|0)==22){v=0;p=a[163710+m>>0]|0;g=p&255;if(!(p<<24>>24)){g=c[22460]|0;b:do switch(q|0){case 0:{c[22459]=(c[22459]|0)+1;Ex(164107);break}case 3:if((g|0)<1)if(!g){e=1;f=t;v=104;break a}else break b;else{c[22460]=-2;break b}default:{}}while(0);if(m)do{if((e|0)==(t|0)){e=1;f=t;v=104;break a}f=f+-4|0;e=e+-2|0}while((b[e>>1]|0)!=0);f=f+4|0;c[f>>2]=c[22461];j=3;g=1}else v=23}do if((v|0)==23){v=0;n=d[163826+g>>0]|0;o=1-n|0;p=f+(o<<2)|0;m=c[p>>2]|0;do switch(g|0){case 4:{f=t;v=26;break a}case 2:{l=c[f+-4>>2]|0;h=$p(8)|0;a[h+4>>0]=2;c[h>>2]=l;c[22462]=h;h=m;break}case 3:{l=c[f+-4>>2]|0;h=$p(8)|0;a[h+4>>0]=1;c[h>>2]=l;c[22462]=h;h=m;break}case 5:{h=vx()|0;break}case 8:{j=c[22463]|0;k=$p(64)|0;l=j+4|0;h=c[l>>2]|0;if(h>>>0>=(c[j+8>>2]|0)>>>0){hj(j,1)|0;h=c[l>>2]|0}a[h>>0]=0;h=c[j>>2]|0;c[l>>2]=h;c[k+8>>2]=oA(h)|0;c[k+12>>2]=c[c[22464]>>2];h=c[22465]|0;ub[c[h>>2]&31](h,k,1)|0;h=m;break}case 9:{wx(c[f>>2]|0);h=m;break}case 18:{xx(c[f>>2]|0);h=m;break}case 19:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 20:{xx(c[f>>2]|0);h=m;break}case 21:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 22:{xx(c[f>>2]|0);h=m;break}case 23:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 24:{xx(c[f>>2]|0);h=m;break}case 25:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 26:{xx(c[f>>2]|0);h=m;break}case 27:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 28:{xx(c[f>>2]|0);h=m;break}case 29:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 30:{xx(c[f>>2]|0);h=m;break}case 31:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 32:{xx(c[f>>2]|0);h=m;break}case 33:{l=c[22464]|0;h=c[l+4>>2]|0;pB(l);c[22464]=h;h=m;break}case 34:{h=c[f+-4>>2]|0;break}case 35:{h=c[f>>2]|0;break}case 38:{h=c[22463]|0;j=c[h+4>>2]|0;if(j>>>0>=(c[h+8>>2]|0)>>>0){hj(h,1)|0;j=c[22463]|0;h=j;j=c[j+4>>2]|0}c[h+4>>2]=j+1;a[j>>0]=0;m=c[22463]|0;h=c[m>>2]|0;c[m+4>>2]=h;while(1){j=a[h>>0]|0;if(!(j<<24>>24))break;if(j<<24>>24==32)h=h+1|0;else{f=t;v=55;break a}}c[(c[f>>2]|0)+80>>2]=c[22466];h=Vi(89868,c[12572]|0)|0;c[(c[f>>2]|0)+84>>2]=h;c[22466]=c[f>>2];c[(c[f>>2]|0)+108>>2]=c[c[22464]>>2];h=c[f>>2]|0;break}case 39:{h=c[22463]|0;j=c[h+4>>2]|0;if(j>>>0>=(c[h+8>>2]|0)>>>0){hj(h,1)|0;j=c[22463]|0;h=j;j=c[j+4>>2]|0}c[h+4>>2]=j+1;a[j>>0]=0;m=c[22463]|0;h=c[m>>2]|0;c[m+4>>2]=h;while(1){j=a[h>>0]|0;if(!(j<<24>>24))break;if(j<<24>>24==32)h=h+1|0;else{f=t;v=62;break a}}h=c[22466]|0;c[22466]=c[h+80>>2];break}case 40:{h=c[f>>2]|0;break}case 41:{h=c[f+-4>>2]|0;break}case 42:{h=c[f+-4>>2]|0;break}case 43:{h=c[f+-4>>2]|0;break}case 44:{h=c[f+-4>>2]|0;break}case 45:{h=c[f+-4>>2]|0;break}case 48:{h=c[f>>2]|0;break}case 49:{h=c[f>>2]|0;break}case 50:{a[(c[f+-8>>2]|0)+12>>0]=1;h=c[f>>2]|0;break}case 51:{l=Vi(89904,c[12572]|0)|0;h=c[22466]|0;j=$p(16)|0;c[j+8>>2]=l;if(a[h+112>>0]&2)a[j+12>>0]=1;h=c[h+84>>2]|0;ub[c[h>>2]&31](h,j,1)|0;h=m;break}case 52:{h=c[(c[22466]|0)+84>>2]|0;h=ub[c[h>>2]&31](h,0,256)|0;break}case 53:{h=c[f>>2]|0;break}case 54:{h=c[f>>2]|0;break}case 55:{h=(c[f+-8>>2]|0)+100|0;a[h>>0]=d[h>>0]|1;h=c[f>>2]|0;break}case 56:{yx(c[f+-4>>2]|0,c[f>>2]|0,1);h=m;break}case 57:{h=c[f+-12>>2]|0;break}case 58:{yx(c[f+-4>>2]|0,c[f>>2]|0,2);h=m;break}case 59:{h=c[f+-12>>2]|0;break}case 60:{yx(c[f+-4>>2]|0,c[f>>2]|0,3);h=m;break}case 61:{h=c[f+-12>>2]|0;break}case 62:{h=c[f>>2]|0;yx(h,vx()|0,2);h=m;break}case 63:{h=c[f+-8>>2]|0;break}case 64:{h=c[f+-4>>2]|0;break}case 65:{h=c[f>>2]|0;break}default:h=m}while(0);e=e+(0-n<<1)|0;f=f+(o<<2)|0;c[p>>2]=h;g=(d[163998+g>>0]|0)+-41|0;p=b[e>>1]|0;h=p+(b[97130+(g<<1)>>1]|0)|0;if(h>>>0<272?(a[163166+h>>0]|0)==(p|0):0){j=q;g=a[163438+h>>0]|0;break}j=q;g=a[164068+g>>0]|0}while(0);q=j;l=t;e=e+2|0;h=r;m=g;k=s}if((v|0)==26){ux();e=1;v=104}else if((v|0)==55){Ex(163896);ux();e=1;v=104}else if((v|0)==62){Ex(163947);ux();e=1;v=104}else if((v|0)==103){Ex(164120);e=2;v=104}if((v|0)==104)if((f|0)!=(u|0))v=105;if((v|0)==105)pB(f);i=w;return e|0}function tx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+160|0;e=f+8|0;g=f;c[g>>2]=0;c[g+4>>2]=0;c[22464]=g;c[22466]=0;c[22462]=0;c[22485]=c[(c[(c[d+52>>2]|0)+16>>2]|0)+144>>2];c[22465]=Vi(89944,c[12572]|0)|0;c[22504]=Vi(89980,c[12572]|0)|0;gj(e,128,f+24|0);c[22463]=e;if(!(Fx(a,e,d)|0)){sx()|0;c[b>>2]=Gx()|0;d=c[22462]|0}else{c[b>>2]=2;d=0}Pi(c[22465]|0)|0;Pi(c[22504]|0)|0;c[22465]=0;c[22504]=0;c[22464]=0;kj(e);i=f;return d|0}function ux(){var a=0,b=0,d=0;a=c[22466]|0;b=c[22462]|0;if(b){Uv(b,1);c[22462]=0}c[22480]=63;if(a)do{b=a;a=c[a+80>>2]|0;Pi(c[b+84>>2]|0)|0;Sv(b);pB(b)}while((a|0)!=0);c[22480]=51;c[22490]=64;b=c[22465]|0;ub[c[b>>2]&31](b,0,64)|0;c[22490]=51;c[22499]=65;b=c[22504]|0;ub[c[b>>2]&31](b,0,64)|0;c[22499]=51;b=c[22464]|0;a=c[b+4>>2]|0;if(a)while(1){pB(b);b=c[a+4>>2]|0;if(!b)break;else{d=a;a=b;b=d}}return}function vx(){var a=0,d=0,e=0,f=0,g=0,h=0;e=c[22504]|0;f=$p(40)|0;if(Xi(c[22465]|0)|0)wx(0);d=Xi(e)|0;b[f+4>>1]=d;if((d|0)!=0?(c[f>>2]=$p(d*24|0)|0,a=ub[c[e>>2]&31](e,0,128)|0,(a|0)!=0):0){d=0;while(1){g=(c[f>>2]|0)+(d*24|0)|0;h=a+8|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];c[g+8>>2]=c[h+8>>2];c[g+12>>2]=c[h+12>>2];c[g+16>>2]=c[h+16>>2];c[g+20>>2]=c[h+20>>2];a=ub[c[e>>2]&31](e,a,8)|0;if(!a){a=e;break}else d=d+1|0}}else a=e;ub[c[a>>2]&31](e,0,64)|0;return f|0}function wx(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=$p(32)|0;j=c[22465]|0;e=Xi(j)|0;k=i+8|0;a[i+14>>0]=d;if(e){b[i+12>>1]=e;c[k>>2]=$p(e*56|0)|0;e=Ti(j)|0;if(e){d=0;while(1){f=(c[k>>2]|0)+(d*56|0)|0;g=e+8|0;h=f+56|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(h|0));e=c[e>>2]|0;if(!e)break;else d=d+1|0}}}else{c[k>>2]=$p(56)|0;b[i+12>>1]=1;h=oA(164137)|0;k=c[k>>2]|0;c[k>>2]=h;c[k+4>>2]=c[c[22464]>>2]}ub[c[j>>2]&31](j,0,64)|0;k=c[22504]|0;ub[c[k>>2]&31](k,i,1)|0;return}function xx(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0,j=0,k=0;k=i;i=i+32|0;j=k;g=$p(8)|0;f=c[c[22464]>>2]|0;c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];c[j+20>>2]=c[a+20>>2];c[j+24>>2]=c[a+24>>2];c[j+28>>2]=c[a+28>>2];if(f){a=j+4|0;if((c[a>>2]|0)==0?(b=c[f+4>>2]|0,(b|0)!=0):0)c[a>>2]=b;a=j+16|0;if(+h[a>>3]<0.0?(d=+h[f+16>>3],d>=0.0):0)h[a>>3]=d;if((c[j>>2]|0)==0?(e=c[f>>2]|0,(e|0)!=0):0)c[j>>2]=e;a=c[f+24>>2]&127;if(a){f=j+24|0;e=c[f>>2]|0;c[f>>2]=e&127|a|e&-128}}f=c[(c[22485]|0)+144>>2]|0;c[g>>2]=ub[c[f>>2]&31](f,j,1)|0;c[g+4>>2]=c[22464];c[22464]=g;i=k;return}function yx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=$p(16)|0;g=c[22466]|0;h=c[g+84>>2]|0;h=c[(ub[c[h>>2]&31](h,0,256)|0)+8>>2]|0;c[f+8>>2]=b;ub[c[h>>2]&31](h,f,1)|0;f=b+88|0;a[b+92>>0]=e;if(a[g+112>>0]&1)a[b+100>>0]=1;switch(e|0){case 2:{c[f>>2]=d;break}case 3:{c[f>>2]=d;break}default:c[f>>2]=d}return}function zx(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function Ax(a,b,d){a=a|0;b=b|0;d=d|0;Pi(c[b+8>>2]|0)|0;pB(b);return}function Bx(b,d,e){b=b|0;d=d|0;e=e|0;b=c[d+8>>2]|0;e=b+88|0;switch(a[b+92>>0]|0){case 1:{e=c[e>>2]|0;Pi(c[e+84>>2]|0)|0;Sv(e);pB(e);break}case 2:{Tv(c[e>>2]|0);break}default:{}}Sv(b);pB(b);pB(d);return}function Cx(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+8>>2]|0;if(a)pB(a);pB(b);return}+function np(f,j){f=f|0;j=j|0;var 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.0,y=0.0,z=0.0,A=0.0,B=0,C=0.0,D=0.0,E=0,F=0.0,G=0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,P=0,S=0,T=0.0,U=0,V=0,X=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;ua=i;i=i+1952|0;ta=ua+1808|0;qa=ua+1008|0;ca=ua+992|0;sa=ua+192|0;ra=ua+144|0;ja=ua+96|0;ka=ua+48|0;ga=ua+1936|0;la=ua;S=qa;N=f+256|0;P=S+32|0;do{a[S>>0]=a[N>>0]|0;S=S+1|0;N=N+1|0}while((S|0)<(P|0));ma=j+16|0;l=c[ma>>2]|0;m=c[l+8>>2]|0;if(((((m|0)!=0?(na=m+16|0,a[k>>0]=a[na>>0],a[k+1>>0]=a[na+1>>0],a[k+2>>0]=a[na+2>>0],a[k+3>>0]=a[na+3>>0],a[k+4>>0]=a[na+4>>0],a[k+5>>0]=a[na+5>>0],a[k+6>>0]=a[na+6>>0],a[k+7>>0]=a[na+7>>0],y=+h[k>>3],na=m+24|0,a[k>>0]=a[na>>0],a[k+1>>0]=a[na+1>>0],a[k+2>>0]=a[na+2>>0],a[k+3>>0]=a[na+3>>0],a[k+4>>0]=a[na+4>>0],a[k+5>>0]=a[na+5>>0],a[k+6>>0]=a[na+6>>0],a[k+7>>0]=a[na+7>>0],fa=+h[k>>3],na=m+32|0,a[k>>0]=a[na>>0],a[k+1>>0]=a[na+1>>0],a[k+2>>0]=a[na+2>>0],a[k+3>>0]=a[na+3>>0],a[k+4>>0]=a[na+4>>0],a[k+5>>0]=a[na+5>>0],a[k+6>>0]=a[na+6>>0],a[k+7>>0]=a[na+7>>0],x=+h[k>>3],fa>=+h[qa>>3]):0)?(na=m+8|0,a[k>>0]=a[na>>0],a[k+1>>0]=a[na+1>>0],a[k+2>>0]=a[na+2>>0],a[k+3>>0]=a[na+3>>0],a[k+4>>0]=a[na+4>>0],a[k+5>>0]=a[na+5>>0],a[k+6>>0]=a[na+6>>0],a[k+7>>0]=a[na+7>>0],+h[qa+16>>3]>=+h[k>>3]):0)?x>=+h[qa+8>>3]:0)?+h[qa+24>>3]>=y:0)na=13;else na=6;do if((na|0)==6){m=c[l+96>>2]|0;if(m){c[ta>>2]=c[qa>>2];c[ta+4>>2]=c[qa+4>>2];c[ta+8>>2]=c[qa+8>>2];c[ta+12>>2]=c[qa+12>>2];c[ta+16>>2]=c[qa+16>>2];c[ta+20>>2]=c[qa+20>>2];c[ta+24>>2]=c[qa+24>>2];c[ta+28>>2]=c[qa+28>>2];if((jt(m,ta)|0)<<24>>24){na=13;break}l=c[ma>>2]|0}l=c[l+108>>2]|0;if(((l|0)!=0?(a[l+81>>0]|0)!=0:0)?(c[ta>>2]=c[qa>>2],c[ta+4>>2]=c[qa+4>>2],c[ta+8>>2]=c[qa+8>>2],c[ta+12>>2]=c[qa+12>>2],c[ta+16>>2]=c[qa+16>>2],c[ta+20>>2]=c[qa+20>>2],c[ta+24>>2]=c[qa+24>>2],c[ta+28>>2]=c[qa+28>>2],(jt(l,ta)|0)<<24>>24!=0):0){na=13;break}}while(0);a:do if((na|0)==13){da=j+-48|0;gl(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0;o=f+156|0;b:do if((c[o>>2]|0)>=2?(n=Is(j,c[13436]|0,164137)|0,p=f+160|0,(op(c[f>>2]|0,c[p>>2]|0,c[o>>2]|0,n)|0)<<24>>24==0):0){if(a[n>>0]|0)break a;l=j+48|0;n=0;while(1){m=c[j>>2]&3;m=Is(c[((n|0)<1?((m|0)==3?j:l):(m|0)==2?j:da)+40>>2]|0,c[13406]|0,164137)|0;if(!(a[m>>0]|0))break b;n=n+1|0;if((op(c[f>>2]|0,c[p>>2]|0,c[o>>2]|0,m)|0)<<24>>24)break b;if((n|0)>=2)break a}}while(0);aa=j+48|0;l=pA(ok(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0)|0;l=oB(l+3+(pA(ok(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0)|0)|0)|0;mA(l,ok(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0)|0;ia=(hk(gl(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0)|0)==0;m=l+(pA(l)|0)|0;if(ia){a[m>>0]=a[160894]|0;a[m+1>>0]=a[160895]|0;a[m+2>>0]=a[160896]|0}else{a[m>>0]=a[160891]|0;a[m+1>>0]=a[160892]|0;a[m+2>>0]=a[160893]|0}iA(l,ok(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0)|0;_u(f,l);pB(l);l=Is(j,c[13437]|0,164137)|0;if(a[l>>0]|0)_u(f,l);l=Is(j,c[13431]|0,164137)|0;if(a[l>>0]|0){dp(l)|0;l=c[13266]|0;if(!l)ia=53064;else{m=53068;while(1){if((a[l>>0]|0)==105?(lA(l,157791)|0)==0:0)break a;l=c[m>>2]|0;if(!l){ia=53064;break}else m=m+4|0}}}else ia=0;ba=f+152|0;Z=c[ba>>2]|0;_=To(f)|0;c[_+4>>2]=3;c[_+8>>2]=j;c[_+12>>2]=9;ha=c[(c[ma>>2]|0)+96>>2]|0;if(((ha|0)!=0?(a[ha+82>>0]|0)==0:0)?(Vs(zj(j,124490)|0,0)|0)<<24>>24!=0:0){ha=_+260|0;b[ha>>1]=b[ha>>1]|512}ha=(ia|0)==0;if(!ha?(c[(c[ma>>2]|0)+8>>2]|0)!=0:0)Uu(f,ia);l=c[13452]|0;if(((l|0)!=0?(q=Aj(j,l)|0,(q|0)!=0):0)?(a[q>>0]|0)!=0:0)av(f,+Hs(j,c[13452]|0,1.0,0.0));do if(Z&16777216)if((e[(c[(gl(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0)+16>>2]|0)+178>>1]|0)>2){fa=+h[(c[(c[(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;h[_+176>>3]=+(~~(fa+(fa>=0.0?.5:-.5))|0);fa=+h[(c[(c[(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)+16>>2]|0)+132>>2]|0)+16>>3]*72.0;h[_+184>>3]=+(~~(fa+(fa>=0.0?.5:-.5))|0);break}else{Y=_+176|0;c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;break}while(0);if(Z&32768){o=c[ma>>2]|0;l=c[o+96>>2]|0;if(!l)l=c[_+192>>2]|0;else{l=c[l>>2]|0;c[_+192>>2]=l}m=_+196|0;c[m>>2]=l;p=_+204|0;c[p>>2]=l;n=_+200|0;c[n>>2]=l;l=c[o+108>>2]|0;if(l)c[m>>2]=c[l>>2];l=c[o+104>>2]|0;if(l)c[n>>2]=c[l>>2];l=c[o+100>>2]|0;if(l)c[p>>2]=c[l>>2]}if(!(Z&65536))n=0;else{gj(ra,128,ta);c[_+212>>2]=Up(Wo(f,j,ra)|0,j)|0;kj(ra);l=zj(j,134891)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=60;else{l=zj(j,134896)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=60;else m=0}if((na|0)==60)m=Up(l,j)|0;l=zj(j,124503)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=65;else na=63;do if((na|0)==63){l=zj(j,124512)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=65;break}if(m)c[_+208>>2]=oA(m)|0}while(0);if((na|0)==65)c[_+208>>2]=Up(l,j)|0;l=zj(j,124520)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=72;else na=70;do if((na|0)==70){l=zj(j,124530)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=72;break}if(m)c[_+216>>2]=oA(m)|0}while(0);if((na|0)==72)c[_+216>>2]=Up(l,j)|0;l=zj(j,124539)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=79;else na=77;do if((na|0)==77){l=zj(j,124548)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=79;break}if(m)c[_+220>>2]=oA(m)|0}while(0);if((na|0)==79){c[_+220>>2]=Up(l,j)|0;na=_+260|0;b[na>>1]=b[na>>1]|128}l=zj(j,124556)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=86;else na=84;do if((na|0)==84){l=zj(j,124565)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=86;break}if(!m)break;c[_+224>>2]=oA(m)|0}while(0);if((na|0)==86){c[_+224>>2]=Up(l,j)|0;Y=_+260|0;b[Y>>1]=b[Y>>1]|256}n=m}c:do if(Z&8388608){l=zj(j,124573)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)m=Up(l,j)|0;else m=0;l=zj(j,124580)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){Y=_+260|0;b[Y>>1]=b[Y>>1]|64;c[_+244>>2]=Up(l,j)|0}else na=97;if((na|0)==97?(m|0)!=0:0)c[_+244>>2]=oA(m)|0;l=zj(j,124591)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)c[_+248>>2]=Up(l,j)|0;else na=102;if((na|0)==102?(m|0)!=0:0)c[_+248>>2]=oA(m)|0;l=zj(j,124603)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){c[_+252>>2]=Up(l,j)|0;Y=_+260|0;b[Y>>1]=b[Y>>1]|16}else na=107;if((na|0)==107?(m|0)!=0:0)c[_+252>>2]=oA(m)|0;l=zj(j,124614)|0;do if(l){if(!(a[l>>0]|0))break;Y=_+260|0;b[Y>>1]=b[Y>>1]|32;c[_+256>>2]=Up(l,j)|0;break c}while(0);if(m)c[_+256>>2]=oA(m)|0;else m=0}else m=0;while(0);d:do if(Z&4194304){l=zj(j,134878)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)na=119;else na=117;do if((na|0)==117){l=zj(j,124625)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){na=119;break}l=c[_+192>>2]|0;if(l)c[_+228>>2]=oA(l)|0}while(0);if((na|0)==119){Y=tp(l,j)|0;c[_+228>>2]=Up(Y,j)|0;pB(Y);Y=_+260|0;b[Y>>1]=b[Y>>1]|1}l=zj(j,124637)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){Y=tp(l,j)|0;c[_+232>>2]=Up(Y,j)|0;pB(Y);Y=_+260|0;b[Y>>1]=b[Y>>1]|8}else na=125;if((na|0)==125?(r=c[_+192>>2]|0,(r|0)!=0):0)c[_+232>>2]=oA(r)|0;l=zj(j,124650)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){Y=tp(l,j)|0;c[_+236>>2]=Up(Y,j)|0;pB(Y);Y=_+260|0;b[Y>>1]=b[Y>>1]|2}else na=130;if((na|0)==130?(s=c[_+200>>2]|0,(s|0)!=0):0)c[_+236>>2]=oA(s)|0;l=zj(j,124662)|0;do if(l){if(!(a[l>>0]|0))break;Y=tp(l,j)|0;c[_+240>>2]=Up(Y,j)|0;pB(Y);Y=_+260|0;b[Y>>1]=b[Y>>1]|4;break d}while(0);l=c[_+204>>2]|0;if(l)c[_+240>>2]=oA(l)|0}while(0);pB(n);pB(m);do if((Z&4259840|0)!=0?($=c[(c[ma>>2]|0)+8>>2]|0,($|0)!=0):0){if(!(c[_+208>>2]|0)){if((Z&524288|0)==0|(c[_+228>>2]|0)==0)break}else if(!(Z&524288))break;F=+h[(c[f+16>>2]|0)+152>>3]*.5;F=F>2.0?F:2.0;S=c[$+4>>2]|0;if((S|0)>0){U=ta+16|0;V=ta+32|0;X=ta+48|0;o=0;p=0;q=0;Y=0;do{m=c[$>>2]|0;l=aq(24)|0;c[l+16>>2]=1;P=(c[m+(Y*48|0)+4>>2]|0)+-1|0;s=(P|0)/3|0;if((P|0)>2){m=m+(Y*48|0)|0;n=0;r=l;do{P=n*3|0;N=c[m>>2]|0;G=N+(P<<4)|0;c[ta>>2]=c[G>>2];c[ta+4>>2]=c[G+4>>2];c[ta+8>>2]=c[G+8>>2];c[ta+12>>2]=c[G+12>>2];G=N+(P+1<<4)|0;c[U>>2]=c[G>>2];c[U+4>>2]=c[G+4>>2];c[U+8>>2]=c[G+8>>2];c[U+12>>2]=c[G+12>>2];G=N+(P+2<<4)|0;c[V>>2]=c[G>>2];c[V+4>>2]=c[G+4>>2];c[V+8>>2]=c[G+8>>2];c[V+12>>2]=c[G+12>>2];P=N+(P+3<<4)|0;c[X>>2]=c[P>>2];c[X+4>>2]=c[P+4>>2];c[X+8>>2]=c[P+8>>2];c[X+12>>2]=c[P+12>>2];r=up(ta,r)|0;n=n+1|0}while((n|0)<(s|0))}if(l){B=0;P=l;m=0;while(1){N=c[P+16>>2]|0;E=qa+(B<<4)|0;G=sa+(B<<4)|0;C=+h[P>>3];D=+h[P+8>>3];do if(m){y=+h[m>>3];x=+h[m+8>>3];if(!N){z=D*2.0-x;A=C*2.0-y;break}else{z=+h[N+8>>3];A=+h[N>>3];break}}else{y=+h[N>>3];x=+h[N+8>>3];z=x;A=y;x=D*2.0-x;y=C*2.0-y}while(0);ea=+W(+(x-D),+(y-C));fa=+W(+(z-D),+(A-C))-ea;fa=ea+(fa>0.0?fa+-6.283185307179586:fa)*.5;ea=F*+Q(+fa);fa=F*+R(+fa);h[E>>3]=C+ea;h[qa+(B<<4)+8>>3]=D+fa;h[G>>3]=C-ea;h[sa+(B<<4)+8>>3]=D-fa;m=B+1|0;w=(N|0)==0;if((m|0)==50|w){u=m<<1;v=u+-1|0;if((o|0)>0){r=p;s=0;n=0;do{n=(c[r+(s<<2)>>2]|0)+n|0;s=s+1|0}while((s|0)!=(o|0));r=(o|0)>1?o:1;t=n}else{r=0;t=0}o=o+1|0;s=cq(p,o<<2)|0;p=s;c[s+(r<<2)>>2]=u;s=cq(q,t+u<<4)|0;q=s;do if((B|0)>-1){r=v+t|0;v=s+(t<<4)|0;c[v>>2]=c[qa>>2];c[v+4>>2]=c[qa+4>>2];c[v+8>>2]=c[qa+8>>2];c[v+12>>2]=c[qa+12>>2];v=s+(r<<4)|0;c[v>>2]=c[sa>>2];c[v+4>>2]=c[sa+4>>2];c[v+8>>2]=c[sa+8>>2];c[v+12>>2]=c[sa+12>>2];if(!B)break;else n=1;do{B=s+(n+t<<4)|0;v=qa+(n<<4)|0;c[B>>2]=c[v>>2];c[B+4>>2]=c[v+4>>2];c[B+8>>2]=c[v+8>>2];c[B+12>>2]=c[v+12>>2];B=s+(r-n<<4)|0;v=sa+(n<<4)|0;c[B>>2]=c[v>>2];c[B+4>>2]=c[v+4>>2];c[B+8>>2]=c[v+8>>2];c[B+12>>2]=c[v+12>>2];n=n+1|0}while((n|0)!=(m|0))}while(0);c[qa>>2]=c[E>>2];c[qa+4>>2]=c[E+4>>2];c[qa+8>>2]=c[E+8>>2];c[qa+12>>2]=c[E+12>>2];c[sa>>2]=c[G>>2];c[sa+4>>2]=c[G+4>>2];c[sa+8>>2]=c[G+8>>2];c[sa+12>>2]=c[G+12>>2];m=1}if(w)break;else{G=P;B=m;P=N;m=G}}do{P=l;l=c[l+16>>2]|0;pB(P)}while((l|0)!=0)}Y=Y+1|0}while((Y|0)!=(S|0))}else{q=0;p=0;o=0}c[_+276>>2]=o;c[_+280>>2]=p;if(!(Z&8192)){if((o|0)>0){m=p;n=0;l=0;do{l=(c[m+(n<<2)>>2]|0)+l|0;n=n+1|0}while((n|0)!=(o|0))}else l=0;$=q;vu(f,$,$,l)|0}c[_+284>>2]=q;c[_+264>>2]=2;c[_+272>>2]=q;c[_+268>>2]=c[p>>2]}while(0);Ku(f,j);l=c[_+208>>2]|0;if(!((l|0)==0?(b[_+260>>1]&1)==0:0))Mu(f,l,c[_+228>>2]|0,c[_+244>>2]|0,c[_+212>>2]|0);Z=f+16|0;ea=+h[(c[Z>>2]|0)+152>>3];Lv(zj(j,123456)|0);e:do if(c[(c[ma>>2]|0)+8>>2]|0){fa=+Hs(j,c[13434]|0,1.0,0.0);n=Is(j,c[13415]|0,164137)|0;U=(ia|0)!=0;f:do if(U){l=c[ia>>2]|0;if(!l){q=0;break}else m=ia;while(1){m=m+4|0;if((a[l>>0]|0)==116?(lA(l,134476)|0)==0:0){q=1;break f}l=c[m>>2]|0;if(!l){q=0;break}}}else q=0;while(0);m=0;l=0;o=n;g:while(1){switch(a[o>>0]|0){case 0:{r=m;break g}case 58:{m=m+1|0;break}case 59:{l=l+1|0;break}default:{}}o=o+1|0}o=(r|0)!=0;do if((l|0)!=0&o){l=hp(n,r+1|0,ga)|0;if((l|0)>1){$=gl(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0;_=ok(c[((c[j>>2]&3|0)==3?j:aa)+40>>2]|0)|0;$=(hk($)|0)!=0;aa=ok(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0;c[ca>>2]=_;c[ca+4>>2]=$?124674:124679;c[ca+8>>2]=aa;dj(3,124684,ca)|0;if((l|0)==2)na=213}else if((l|0)==1)na=213;if((na|0)==213){n=160746;break}m=c[(c[ma>>2]|0)+8>>2]|0;if((c[m+4>>2]|0)>0){t=sa+8|0;u=sa+12|0;v=sa+32|0;w=sa+4|0;B=sa+16|0;E=ja+4|0;G=ka+4|0;l=c[ga>>2]|0;s=l+8|0;n=m;m=0;r=0;do{S=sa;N=(c[n>>2]|0)+(r*48|0)|0;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));n=c[s>>2]|0;o=c[n>>2]|0;h:do if(o){p=1;y=1.0;i:while(1){q=n+4|0;T=+g[q>>2];do if(T<1.0e-05&T>-1.0e-05)x=y;else{Ru(f,o);x=+g[q>>2];y=y-x;m=c[n>>2]|0;if(p){vp(sa,x,ja,ka);la=c[ja>>2]|0;Yu(f,la,c[E>>2]|0,0,0,0);pB(la);if(y<1.0e-05&y>-1.0e-05){na=197;break i}else{p=0;x=y;break}}if(y<1.0e-05&y>-1.0e-05){na=199;break i}S=ra;N=ka;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));x=+g[q>>2];vp(ra,x/(y+x),ja,ka);pB(c[ra>>2]|0);p=c[ja>>2]|0;Yu(f,p,c[E>>2]|0,0,0,0);pB(p);p=0;x=y}while(0);n=n+12|0;o=c[n>>2]|0;if(!o)break h;else y=x}if((na|0)==197){na=0;pB(c[ka>>2]|0);break}else if((na|0)==199){na=0;la=c[ka>>2]|0;Yu(f,la,c[G>>2]|0,0,0,0);pB(la);break}}while(0);if(c[t>>2]|0){Ru(f,c[c[s>>2]>>2]|0);Su(f,c[c[s>>2]>>2]|0);j=c[sa>>2]|0;la=c[t>>2]|0;c[qa>>2]=c[B>>2];c[qa+4>>2]=c[B+4>>2];c[qa+8>>2]=c[B+8>>2];c[qa+12>>2]=c[B+12>>2];c[ta>>2]=c[j>>2];c[ta+4>>2]=c[j+4>>2];c[ta+8>>2]=c[j+8>>2];c[ta+12>>2]=c[j+12>>2];Go(f,2,qa,ta,fa,ea,la)}if(c[u>>2]|0){Ru(f,m);Su(f,m);j=(c[sa>>2]|0)+((c[w>>2]|0)+-1<<4)|0;la=c[u>>2]|0;c[qa>>2]=c[v>>2];c[qa+4>>2]=c[v+4>>2];c[qa+8>>2]=c[v+8>>2];c[qa+12>>2]=c[v+12>>2];c[ta>>2]=c[j>>2];c[ta+4>>2]=c[j+4>>2];c[ta+8>>2]=c[j+8>>2];c[ta+12>>2]=c[j+12>>2];Go(f,3,qa,ta,fa,ea,la)}n=c[(c[ma>>2]|0)+8>>2]|0;o=c[n+4>>2]|0;do if((o|0)>1){if(!(c[t>>2]|0)){if(!(U&(c[u>>2]|0)!=0))break}else if(ha)break;Uu(f,ia);o=c[(c[ma>>2]|0)+8>>2]|0;n=o;o=c[o+4>>2]|0}while(0);r=r+1|0}while((r|0)<(o|0))}else l=c[ga>>2]|0;pB(c[l+4>>2]|0);pB(c[l+8>>2]|0);pB(l);break e}while(0);l=d[(c[ma>>2]|0)+115>>0]|0;do if(!(l&1)){if(l&2){m=c[13419]|0;m=Js(j,m,wp(n,129696)|0)|0;l=Js(j,c[13420]|0,129704)|0;na=223;break}if(l&8){m=c[13423]|0;m=Js(j,m,wp(n,129712)|0)|0;l=Js(j,c[13424]|0,129720)|0;na=223;break}if(!(l&4)){p=Js(j,c[13416]|0,n)|0;m=n;break}else{m=c[13421]|0;m=Js(j,m,wp(n,129728)|0)|0;l=Js(j,c[13422]|0,129736)|0;na=223;break}}else{m=c[13417]|0;m=Js(j,m,wp(n,129680)|0)|0;l=Js(j,c[13418]|0,129688)|0;na=223}while(0);do if((na|0)==223){if((m|0)==(n|0)){p=l;m=n;break}Ru(f,m);p=l}while(0);if((p|0)!=(n|0))Su(f,p);if(q<<24>>24){o=(a[m>>0]|0)==0?160746:m;n=(a[p>>0]|0)==0?160746:p;Ru(f,161276);Su(f,o);S=la;N=c[c[(c[ma>>2]|0)+8>>2]>>2]|0;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));l=c[13430]|0;j:do if(!l)na=234;else{l=Aj(j,l)|0;switch(a[l>>0]|0){case 110:if(!(lA(l,159165)|0)){l=2;break j}else{na=234;break j}case 102:if(!(lA(l,124700)|0)){l=1;break j}else{na=234;break j}case 98:{if(!(lA(l,124708)|0)){l=3;break j}if(!(lA(l,134593)|0)){l=4;break j}else{na=234;break j}}default:{na=234;break j}}}while(0);if((na|0)==234){l=(hk(gl(c[((c[j>>2]&3|0)==2?j:da)+40>>2]|0)|0)|0)!=0;l=l?1:2}l=ps(la,l,ea,0,0)|0;m=l+8|0;Wu(f,c[m>>2]|0,c[l>>2]|0,1);if(l){pB(c[m>>2]|0);pB(l)}Ru(f,o);if((n|0)!=(o|0))Su(f,n);l=c[la+8>>2]|0;if(l){ka=la+16|0;ma=c[la>>2]|0;c[qa>>2]=c[ka>>2];c[qa+4>>2]=c[ka+4>>2];c[qa+8>>2]=c[ka+8>>2];c[qa+12>>2]=c[ka+12>>2];c[ta>>2]=c[ma>>2];c[ta+4>>2]=c[ma+4>>2];c[ta+8>>2]=c[ma+8>>2];c[ta+12>>2]=c[ma+12>>2];Go(f,2,qa,ta,fa,ea,l)}l=c[la+12>>2]|0;if(!l)break;ka=la+32|0;ma=(c[la>>2]|0)+((c[la+4>>2]|0)+-1<<4)|0;c[qa>>2]=c[ka>>2];c[qa+4>>2]=c[ka+4>>2];c[qa+8>>2]=c[ka+8>>2];c[qa+12>>2]=c[ka+12>>2];c[ta>>2]=c[ma>>2];c[ta+4>>2]=c[ma+4>>2];c[ta+8>>2]=c[ma+8>>2];c[ta+12>>2]=c[ma+12>>2];Go(f,3,qa,ta,fa,ea,l);break}l=c[ma>>2]|0;if(!o){do if(!(a[l+115>>0]&3)){if(a[m>>0]|0){Ru(f,m);Su(f,p);break}Ru(f,160746);if(!(a[p>>0]|0)){Su(f,160746);break}else{Su(f,p);break}}while(0);l=c[(c[ma>>2]|0)+8>>2]|0;if((c[l+4>>2]|0)<=0)break;o=la+4|0;p=la+8|0;q=la+12|0;r=la+32|0;s=la+16|0;n=0;while(1){S=la;N=(c[l>>2]|0)+(n*48|0)|0;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));l=c[la>>2]|0;m=c[o>>2]|0;do if(!(c[ba>>2]&16384)){Yu(f,l,m,0,0,0);l=c[p>>2]|0;if(l){ka=c[la>>2]|0;c[qa>>2]=c[s>>2];c[qa+4>>2]=c[s+4>>2];c[qa+8>>2]=c[s+8>>2];c[qa+12>>2]=c[s+12>>2];c[ta>>2]=c[ka>>2];c[ta+4>>2]=c[ka+4>>2];c[ta+8>>2]=c[ka+8>>2];c[ta+12>>2]=c[ka+12>>2];Go(f,2,qa,ta,fa,ea,l)}l=c[q>>2]|0;if(l){ka=(c[la>>2]|0)+((c[o>>2]|0)+-1<<4)|0;c[qa>>2]=c[r>>2];c[qa+4>>2]=c[r+4>>2];c[qa+8>>2]=c[r+8>>2];c[qa+12>>2]=c[r+12>>2];c[ta>>2]=c[ka>>2];c[ta+4>>2]=c[ka+4>>2];c[ta+8>>2]=c[ka+8>>2];c[ta+12>>2]=c[ka+12>>2];Go(f,3,qa,ta,fa,ea,l)}if((c[(c[(c[ma>>2]|0)+8>>2]|0)+4>>2]|0)<=1)break;if(!(c[p>>2]|0)){if(!(U&(c[q>>2]|0)!=0))break}else if(!U)break;Uu(f,ia)}else Yu(f,l,m,c[p>>2]|0,c[q>>2]|0,0);while(0);n=n+1|0;l=c[(c[ma>>2]|0)+8>>2]|0;if((n|0)>=(c[l+4>>2]|0))break e}}G=l+8|0;l=c[G>>2]|0;V=c[l+4>>2]|0;Y=V*48|0;X=oB(Y)|0;Y=oB(Y)|0;T=+(r+2|0)*.5;U=(V|0)>0;k:do if(U){E=la+4|0;A=0.0;z=0.0;n=0;while(1){S=la;N=(c[l>>2]|0)+(n*48|0)|0;P=S+48|0;do{c[S>>2]=c[N>>2];S=S+4|0;N=N+4|0}while((S|0)<(P|0));l=c[E>>2]|0;c[X+(n*48|0)+4>>2]=l;c[Y+(n*48|0)+4>>2]=l;B=l<<4;w=oB(B)|0;c[X+(n*48|0)>>2]=w;B=oB(B)|0;c[Y+(n*48|0)>>2]=B;t=c[la>>2]|0;x=+h[t>>3];y=+h[t+8>>3];if((l|0)>1){u=l+-1|0;v=l+-2|0;v=v-((v>>>0)%3|0)|0;M=x;s=0;while(1){r=s+1|0;J=+h[t+(r<<4)>>3];K=+h[t+(r<<4)+8>>3];if(!s){x=M-J;L=y-K;I=2.0/+O(+(x*x+L*L+.0001));x=x*I;I=L*I}else{x=z-J;L=A-K;I=2.0/+O(+(x*x+L*L+.0001));x=x*I;I=L*I}H=-x;h[w+(s<<4)>>3]=I;h[w+(s<<4)+8>>3]=H;l=s+2|0;z=+h[t+(l<<4)>>3];A=+h[t+(l<<4)+8>>3];q=s;s=s+3|0;x=+h[t+(s<<4)>>3];L=+h[t+(s<<4)+8>>3];o=w+(r<<4)|0;p=w+(l<<4)|0;F=J-z;D=K-A;C=+O(+(F*F+D*D));if(C<.0001){F=M-x;D=y-L;C=+O(+(F*F+D*D+.0001))}C=2.0/C;D=D*C;F=-(F*C);h[p>>3]=D;h[w+(l<<4)+8>>3]=F;c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];h[B+(q<<4)>>3]=M-T*I;h[B+(q<<4)+8>>3]=y-T*H;h[B+(r<<4)>>3]=J-T*+h[o>>3];h[B+(r<<4)+8>>3]=K-T*+h[w+(r<<4)+8>>3];h[B+(l<<4)>>3]=z-T*D;h[B+(l<<4)+8>>3]=A-T*F;if((s|0)>=(u|0)){y=L;break}else{M=x;y=L}}l=v+3|0}else l=0;K=z-x;L=A-y;M=2.0/+O(+(L*L+K*K+.0001));L=L*M;M=-(K*M);h[w+(l<<4)>>3]=L;h[w+(l<<4)+8>>3]=M;h[B+(l<<4)>>3]=x-T*L;h[B+(l<<4)+8>>3]=y-T*M;n=n+1|0;if((n|0)==(V|0))break k;l=c[G>>2]|0}}while(0);u=oA(m)|0;l=xA(u,133477)|0;if(!l){o=m;l=m}else{t=0;o=m;n=m;while(1){l=(a[l>>0]|0)==0?160746:l;do if((l|0)!=(n|0)){if(a[(c[ma>>2]|0)+115>>0]&3){n=l;break}Ru(f,l);Su(f,l);n=l}while(0);s=(t|0)==0?l:o;m=t>>>0<2?l:m;if(U){q=0;do{l=c[Y+(q*48|0)>>2]|0;o=c[X+(q*48|0)>>2]|0;p=c[Y+(q*48|0)+4>>2]|0;if((p|0)>0){r=0;do{ka=l+(r<<4)|0;h[ka>>3]=+h[o+(r<<4)>>3]+ +h[ka>>3];ka=l+(r<<4)+8|0;h[ka>>3]=+h[o+(r<<4)+8>>3]+ +h[ka>>3];r=r+1|0}while((r|0)!=(p|0))}Yu(f,l,p,0,0,0);q=q+1|0}while((q|0)!=(V|0))}l=xA(0,133477)|0;if(!l){o=s;l=m;break}else{t=t+1|0;o=s}}}m=la+8|0;n=c[m>>2]|0;if(!n)n=0;else{do if(!l)l=0;else{if(a[(c[ma>>2]|0)+115>>0]&3)break;Ru(f,l);Su(f,l);n=c[m>>2]|0}while(0);ja=la+16|0;ka=c[la>>2]|0;c[qa>>2]=c[ja>>2];c[qa+4>>2]=c[ja+4>>2];c[qa+8>>2]=c[ja+8>>2];c[qa+12>>2]=c[ja+12>>2];c[ta>>2]=c[ka>>2];c[ta+4>>2]=c[ka+4>>2];c[ta+8>>2]=c[ka+8>>2];c[ta+12>>2]=c[ka+12>>2];Go(f,2,qa,ta,fa,ea,n);n=l}m=la+12|0;l=c[m>>2]|0;if(l){do if((n|0)!=(o|0)){if(a[(c[ma>>2]|0)+115>>0]&3)break;Ru(f,o);Su(f,o);l=c[m>>2]|0}while(0);ka=la+32|0;ma=(c[la>>2]|0)+((c[la+4>>2]|0)+-1<<4)|0;c[qa>>2]=c[ka>>2];c[qa+4>>2]=c[ka+4>>2];c[qa+8>>2]=c[ka+8>>2];c[qa+12>>2]=c[ka+12>>2];c[ta>>2]=c[ma>>2];c[ta+4>>2]=c[ma+4>>2];c[ta+8>>2]=c[ma+8>>2];c[ta+12>>2]=c[ma+12>>2];Go(f,3,qa,ta,fa,ea,l)}pB(u);if(U){l=0;do{pB(c[X+(l*48|0)>>2]|0);pB(c[Y+(l*48|0)>>2]|0);l=l+1|0}while((l|0)!=(V|0))}pB(X);pB(Y)}while(0);G=c[Z>>2]|0;E=c[G+8>>2]|0;v=G+208|0;if(!((c[v>>2]|0)==0?(b[G+260>>1]&1)==0:0))na=301;do if((na|0)==301?(Nu(f),pa=G+276|0,oa=c[pa>>2]|0,(oa|0)!=0):0){u=G+280|0;if((oa|0)<=1)break;t=c[u>>2]|0;l=G+268|0;m=G+284|0;n=G+272|0;o=G+228|0;p=G+244|0;q=G+212|0;r=t;s=1;t=c[t>>2]|0;do{c[l>>2]=c[r+(s<<2)>>2];c[n>>2]=(c[m>>2]|0)+(t<<4);Mu(f,c[v>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0);Nu(f);r=c[u>>2]|0;t=(c[r+(s<<2)>>2]|0)+t|0;s=s+1|0}while((s|0)<(c[pa>>2]|0))}while(0);c[G+268>>2]=0;c[G+272>>2]=0;B=E+16|0;l=c[B>>2]|0;m=c[l+8>>2]|0;if(!m)w=G+260|0;else{oa=c[m>>2]|0;l=c[oa>>2]|0;pa=c[oa+8>>2]|0;na=oa+16|0;c[sa>>2]=c[na>>2];c[sa+4>>2]=c[na+4>>2];c[sa+8>>2]=c[na+8>>2];c[sa+12>>2]=c[na+12>>2];oa=oa+32|0;c[ra>>2]=c[oa>>2];c[ra+4>>2]=c[oa+4>>2];c[ra+8>>2]=c[oa+8>>2];c[ra+12>>2]=c[oa+12>>2];if(!pa){c[qa>>2]=c[l>>2];c[qa+4>>2]=c[l+4>>2];c[qa+8>>2]=c[l+8>>2];c[qa+12>>2]=c[l+12>>2]}else{c[qa>>2]=c[sa>>2];c[qa+4>>2]=c[sa+4>>2];c[qa+8>>2]=c[sa+8>>2];c[qa+12>>2]=c[sa+12>>2]}l=G+260|0;na=b[l>>1]|0;oa=c[G+220>>2]|0;c[ta>>2]=c[qa>>2];c[ta+4>>2]=c[qa+4>>2];c[ta+8>>2]=c[qa+8>>2];c[ta+12>>2]=c[qa+12>>2];Bp(f,ta,(na<<8&65535)<<16>>16>>15&255,oa,(na<<14&65535)<<16>>16>>15&255);na=c[(c[B>>2]|0)+8>>2]|0;oa=(c[na+4>>2]|0)+-1|0;na=c[na>>2]|0;m=c[na+(oa*48|0)>>2]|0;n=c[na+(oa*48|0)+4>>2]|0;pa=c[na+(oa*48|0)+12>>2]|0;ma=na+(oa*48|0)+16|0;c[sa>>2]=c[ma>>2];c[sa+4>>2]=c[ma+4>>2];c[sa+8>>2]=c[ma+8>>2];c[sa+12>>2]=c[ma+12>>2];sa=na+(oa*48|0)+32|0;c[ra>>2]=c[sa>>2];c[ra+4>>2]=c[sa+4>>2];c[ra+8>>2]=c[sa+8>>2];c[ra+12>>2]=c[sa+12>>2];if(!pa){sa=m+(n+-1<<4)|0;c[qa>>2]=c[sa>>2];c[qa+4>>2]=c[sa+4>>2];c[qa+8>>2]=c[sa+8>>2];c[qa+12>>2]=c[sa+12>>2]}else{c[qa>>2]=c[ra>>2];c[qa+4>>2]=c[ra+4>>2];c[qa+8>>2]=c[ra+8>>2];c[qa+12>>2]=c[ra+12>>2]}w=b[l>>1]|0;sa=c[G+224>>2]|0;c[ta>>2]=c[qa>>2];c[ta+4>>2]=c[qa+4>>2];c[ta+8>>2]=c[qa+8>>2];c[ta+12>>2]=c[qa+12>>2];Bp(f,ta,(w<<7&65535)<<16>>16>>15&255,sa,(w<<13&65535)<<16>>16>>15&255);w=l;l=c[B>>2]|0}l=c[l+96>>2]|0;m=(b[w>>1]<<12&65535)<<16>>16>>15<<16>>16;s=G+216|0;n=c[s>>2]|0;t=G+232|0;o=c[t>>2]|0;u=G+248|0;p=c[u>>2]|0;v=G+212|0;q=c[v>>2]|0;if(!((Ls(Is(E,c[13432]|0,160740)|0)|0)<<24>>24))r=0;else r=c[(c[B>>2]|0)+8>>2]|0;Cp(f,l,11,m,n,o,p,q,r);q=c[(c[B>>2]|0)+108>>2]|0;r=(b[w>>1]<<12&65535)<<16>>16>>15<<16>>16;p=c[s>>2]|0;o=c[t>>2]|0;m=c[u>>2]|0;n=c[v>>2]|0;if(!((Ls(Is(E,c[13432]|0,160740)|0)|0)<<24>>24))l=0;else l=c[(c[B>>2]|0)+8>>2]|0;Cp(f,q,11,r,p,o,m,n,l);Cp(f,c[(c[B>>2]|0)+100>>2]|0,7,(b[w>>1]<<13&65535)<<16>>16>>15<<16>>16,c[G+224>>2]|0,c[G+240>>2]|0,c[G+256>>2]|0,c[v>>2]|0,0);Cp(f,c[(c[B>>2]|0)+104>>2]|0,6,(b[w>>1]<<14&65535)<<16>>16>>15<<16>>16,c[G+220>>2]|0,c[G+236>>2]|0,c[G+252>>2]|0,c[v>>2]|0,0);Lu(f);Uo(f)}while(0);i=ua;return}function op(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+160|0;n=q+20|0;m=q+16|0;p=q;c[n>>2]=0;c[m>>2]=0;gj(p,128,q+24|0);jj(p,f)|0;h=p+4|0;f=c[h>>2]|0;if(f>>>0>=(c[p+8>>2]|0)>>>0){hj(p,1)|0;f=c[h>>2]|0}a[f>>0]=0;f=c[p>>2]|0;c[h>>2]=f;k=b+300|0;l=b+296|0;f=yA(f,c[k>>2]|0,n)|0;a:do if(!f)g=0;else{while(1){f=yA(f,c[l>>2]|0,m)|0;h=(f|0)!=0;if(h)j=yA(0,c[l>>2]|0,m)|0;else j=0;switch(((j|0)!=0&1)+(h&1)|0){case 2:{h=rp(b,f,0)|0;f=rp(b,j,e)|0;if((f&h|0)>-1){g=(h|0)>(f|0);g=((g?h:f)|0)>=(d|0)&((g?f:h)|0)<=(d|0);o=11}break}case 1:{g=(rp(b,f,d)|0)==(d|0);o=11;break}default:{}}if((o|0)==11?(o=0,g):0)break;f=yA(0,c[k>>2]|0,n)|0;if(!f){g=0;break a}}g=g&1}while(0);kj(p);i=q;return g|0}function pp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+156|0;a:do if((c[h>>2]|0)>=2?(f=Is(e,c[13406]|0,164137)|0,i=b+160|0,(op(c[b>>2]|0,c[i>>2]|0,c[h>>2]|0,f)|0)<<24>>24==0):0)if(!(a[f>>0]|0))if(Qj(d,e)|0){f=Qj(d,e)|0;if(!f)f=0;else while(1){g=Is(f,c[13436]|0,164137)|0;if(!(a[g>>0]|0)){f=1;break a}if((op(c[b>>2]|0,c[i>>2]|0,c[h>>2]|0,g)|0)<<24>>24){f=1;break a}f=Rj(d,f,e)|0;if(!f){f=0;break}}}else f=1;else f=0;else f=1;while(0);return f|0}function qp(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0.0,m=0,n=0;k=c[b+4>>2]|0;if((k|0)<=0)Ia(124447,123382,3968,124459);if(((k|0)%3|0|0)!=1)Ia(124469,123382,3969,124459);j=c[b>>2]|0;d=+h[j>>3];i=+h[j+8>>3];if((k|0)>1){f=d;g=i;e=d;d=i;b=1;do{n=b+1|0;m=b+2|0;l=(+h[j+(b<<4)>>3]+ +h[j+(n<<4)>>3])*.5;i=(+h[j+(b<<4)+8>>3]+ +h[j+(n<<4)+8>>3])*.5;f=f<l?f:l;g=g<i?g:i;l=e>l?e:l;i=d>i?d:i;e=+h[j+(m<<4)>>3];d=+h[j+(m<<4)+8>>3];f=f<e?f:e;g=g<d?g:d;e=l>e?l:e;d=i>d?i:d;b=b+3|0}while((b|0)<(k|0))}else{f=d;g=i;e=d;d=i}h[a>>3]=f;h[a+8>>3]=g;h[a+16>>3]=e;h[a+24>>3]=d;return}function rp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=a[d>>0]|0;if(h<<24>>24==97){if(lA(d,124486)|0){e=97;f=3}}else{e=h;f=3}a:do if((f|0)==3){b:do if(e<<24>>24){f=d;while(1){f=f+1|0;if(((e&255)+-48|0)>>>0>=10)break;e=a[f>>0]|0;if(!(e<<24>>24))break b}g=c[b+308>>2]|0;if(!g){e=-1;break a}f=c[b+312>>2]|0;if((f|0)<1){e=-1;break a}else e=1;while(1){b=c[g+(e<<2)>>2]|0;if(h<<24>>24==(a[b>>0]|0)?(lA(d,b)|0)==0:0)break a;if((e|0)<(f|0))e=e+1|0;else{e=-1;break a}}}while(0);e=Yz(d)|0}while(0);return e|0}function sp(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function tp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;d=hl(d)|0;if((a[(c[d+16>>2]|0)+115>>0]|0)==1)h=gt(b)|0;else h=ft(b,d)|0;b=h;d=h;a:while(1){g=0;while(1){f=b+1|0;e=a[b>>0]|0;if(!(e<<24>>24))break a;if(g<<24>>24){b=f;f=8;break}if(e<<24>>24==92){b=f;g=1}else{b=f;f=14;break}}b:do if((f|0)==8)switch(e<<24>>24|0){case 108:case 110:{a[d>>0]=10;break b}case 114:{a[d>>0]=13;break b}default:{a[d>>0]=e;break b}}else if((f|0)==14)a[d>>0]=e;while(0);d=d+1|0}a[d>>0]=0;return h|0}function up(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0.0,o=0;k=i;i=i+192|0;j=k+176|0;l=k+160|0;m=k+144|0;g=k+64|0;h=k;f=k+128|0;e=b+48|0;o=b+16|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];c[l+8>>2]=c[e+8>>2];c[l+12>>2]=c[e+12>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];n=+Jp(m,l,j);o=b+32|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];c[l+8>>2]=c[e+8>>2];c[l+12>>2]=c[e+12>>2];c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];if(n<4.0&+Jp(m,l,j)<4.0){h=d+16|0;if((c[h>>2]|0)==1){c[h>>2]=0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2]}g=j;f=g+16|0;do{a[g>>0]=a[e>>0]|0;g=g+1|0;e=e+1|0}while((g|0)<(f|0));e=aq(24)|0;c[e+16>>2]=0;c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];c[h>>2]=e}else{Rs(f,b,3,.5,g,h);e=up(h,up(g,d)|0)|0}i=k;return e|0}function vp(a,b,d,e){a=a|0;b=+b;d=d|0;e=e|0;var f=0,g=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0;q=i;i=i+32|0;o=q;p=c[a+4>>2]|0;f=p+-1|0;m=(f|0)/3|0;if((p+-4|0)>>>0<3){c[d+4>>2]=4;c[d>>2]=$p(64)|0;c[e+4>>2]=4;p=$p(64)|0;c[e>>2]=p;Rs(q+16|0,c[a>>2]|0,3,b,c[d>>2]|0,p)}else{p=$p(m<<3)|0;k=(f|0)>2;a:do if(k){f=0;j=c[a>>2]|0;g=0.0;while(1){u=+h[j+16>>3];s=+h[j>>3]-u;t=+h[j+24>>3];v=+h[j+8>>3]-t;v=+O(+(s*s+v*v));s=+h[j+32>>3];u=u-s;r=+h[j+40>>3];t=t-r;t=v+ +O(+(u*u+t*t));s=s-+h[j+48>>3];r=r-+h[j+56>>3];r=t+ +O(+(s*s+r*r));h[p+(f<<3)>>3]=r;g=g+r;f=f+1|0;if((f|0)>=(m|0))break;else j=j+48|0}b=b*g;if(k){f=0;g=0.0;do{g=g+ +h[p+(f<<3)>>3];if(g>=b)break a;f=f+1|0}while((m|0)>(f|0))}else{f=0;g=0.0}}else{b=b*0.0;f=0;g=0.0}while(0);n=f*3|0;k=n+4|0;l=d+4|0;c[l>>2]=k;c[d>>2]=$p(k<<4)|0;k=((m-f|0)*3|0)+1|0;m=e+4|0;c[m>>2]=k;c[e>>2]=$p(k<<4)|0;if((c[l>>2]|0)>0){j=0;while(1){k=(c[d>>2]|0)+(j<<4)|0;w=(c[a>>2]|0)+(j<<4)|0;c[k>>2]=c[w>>2];c[k+4>>2]=c[w+4>>2];c[k+8>>2]=c[w+8>>2];c[k+12>>2]=c[w+12>>2];k=j+1|0;if((k|0)<(c[l>>2]|0))j=k;else break}j=j+-3|0}else j=-4;if((c[m>>2]|0)>0){k=0;while(1){w=(c[e>>2]|0)+(k<<4)|0;l=(c[a>>2]|0)+(j<<4)|0;c[w>>2]=c[l>>2];c[w+4>>2]=c[l+4>>2];c[w+8>>2]=c[l+8>>2];c[w+12>>2]=c[l+12>>2];k=k+1|0;if((k|0)>=(c[m>>2]|0))break;else j=j+1|0}}v=+h[p+(f<<3)>>3];Rs(o,(c[a>>2]|0)+(n<<4)|0,3,(b-(g-v))/v,(c[d>>2]|0)+(n<<4)|0,c[e>>2]|0);pB(p)}i=q;return}function wp(b,d){b=b|0;d=d|0;var e=0;e=1;a:while(1){switch(a[b>>0]|0){case 0:{b=e;break a}case 58:{e=e+1|0;break}default:{}}b=b+1|0}e=_((pA(d)|0)+1|0,b)|0;if((c[13350]|0)<(e|0)){e=e+10|0;c[13350]=e;e=rB(c[13351]|0,e)|0;c[13351]=e}else e=c[13351]|0;mA(e,d)|0;b=b+-1|0;e=c[13351]|0;if(b)do{e=e+(pA(e)|0)|0;a[e>>0]=58;a[e+1>>0]=0;iA(c[13351]|0,d)|0;b=b+-1|0;e=c[13351]|0}while((b|0)!=0);return e|0}function xp(a,b,c){a=+a;b=+b;c=+c;return +((1.0-a/b)*c*.5)}function yp(a,b,c){a=+a;b=+b;c=+c;return +(c*.5)}function zp(a,b,c){a=+a;b=+b;c=+c;return +(a/b*c*.5)}function Ap(a,b,c){a=+a;b=+b;c=+c;b=a/b;return +((!(b<=.5)?1.0-b:b)*c)}function Bp(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0.0,l=0.0,m=0;j=c[a+16>>2]|0;if(!(e<<24>>24))f=c[j+208>>2]|0;if(!(g<<24>>24==0?((f|0)==0?(b[j+260>>1]&1)==0:0):0))i=5;if((i|0)==5?(k=+h[d>>3],l=+h[d+8>>3],m=c[a+152>>2]|0,(m&4259840|0)!=0):0){e=m&131072;i=e>>>16^2;c[j+264>>2]=i;f=j+268|0;c[f>>2]=i+2;j=j+272|0;pB(c[j>>2]|0);f=$p(c[f>>2]<<4)|0;c[j>>2]=f;h[f>>3]=k+-3.0;h[f+8>>3]=l+-3.0;h[f+16>>3]=k+3.0;h[f+24>>3]=l+3.0;if(!(m&8192))vu(a,f,f,2)|0;if(!e)Fp(f)}return}function Cp(b,d,e,f,g,j,k,l,m){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0;x=i;i=i+96|0;u=x+72|0;p=x+64|0;w=x+16|0;v=x;q=c[b+152>>2]|0;if((d|0)!=0?(a[d+81>>0]|0)!=0:0){if(!l)t=0;else{n=$p((pA(l)|0)+11|0)|0;switch(e|0){case 11:{o=124829;break}case 7:{o=125411;break}case 6:{o=125421;break}default:Ia(161945,123382,2730,124713)}c[p>>2]=l;c[p+4>>2]=o;Oz(n,124729,p)|0;t=n}r=b+16|0;p=(c[r>>2]|0)+12|0;s=c[p>>2]|0;c[p>>2]=e;p=(f|0)!=0|(g|0)!=0;o=(q&4|0)==0;if(p&o){Dp(b,d);Mu(b,g,j,k,t)}Tp(b,e,d);if(m){n=c[d>>2]|0;l=a[n>>0]|0;a:do if(l<<24>>24){while(1){if(!(Zx(l&255)|0))break;n=n+1|0;l=a[n>>0]|0;if(!(l<<24>>24))break a}if(a[n>>0]|0){z=+h[d+24>>3];q=d+56|0;A=z*.5+ +h[q>>3];y=+h[d+64>>3]-+h[d+32>>3]*.5;h[w>>3]=A;h[w+8>>3]=y;h[w+16>>3]=A-z;h[w+24>>3]=y;e=w+32|0;c[u>>2]=c[q>>2];c[u+4>>2]=c[q+4>>2];c[u+8>>2]=c[q+8>>2];c[u+12>>2]=c[q+12>>2];Ws(v,m,u);c[e>>2]=c[v>>2];c[e+4>>2]=c[v+4>>2];c[e+8>>2]=c[v+8>>2];c[e+12>>2]=c[v+12>>2];Uu(b,c[(c[b>>2]|0)+336>>2]|0);Ru(b,c[d+8>>2]|0);Zu(b,w,3)}}while(0)}if(p){if(!o){Dp(b,d);Mu(b,g,j,k,t)}Nu(b)}if(t)pB(t);c[(c[r>>2]|0)+12>>2]=s}i=x;return}function Dp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840){f=e&131072;c[d+264>>2]=f>>>16^2;i=d+268|0;c[i>>2]=(f>>>16^2)+2;j=d+272|0;pB(c[j>>2]|0);d=$p(c[i>>2]<<4)|0;c[j>>2]=d;j=b+56|0;i=b+24|0;h[d>>3]=+h[j>>3]-+h[i>>3]*.5;g=b+64|0;b=b+32|0;h[d+8>>3]=+h[g>>3]-+h[b>>3]*.5;h[d+16>>3]=+h[j>>3]+ +h[i>>3]*.5;h[d+24>>3]=+h[g>>3]+ +h[b>>3]*.5;if(!(e&8192))vu(a,d,d,2)|0;if(!f)Fp(d)}return}function Ep(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0.0,g=0.0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;q=+h[a>>3];r=+h[c>>3];j=!(q>=r);if((!j?q<=+h[c+16>>3]:0)?(e=+h[a+8>>3],e>=+h[c+8>>3]):0)i=e<=+h[c+24>>3];else i=0;e=+h[b>>3];if((e>=r?e<=+h[c+16>>3]:0)?(f=+h[b+8>>3],f>=+h[c+8>>3]):0){d=f<=+h[c+24>>3];if(!(i^d))if(i&d)d=1;else l=11;else d=0}else if(i)d=0;else l=11;a:do if((l|0)==11){p=+h[a+8>>3];do if(q==e){r=+h[c+8>>3];if(!(j|p>=r^+h[b+8>>3]>=r^1)?q<=+h[c+16>>3]:0){d=0;break a}}else{k=+h[b+8>>3];if(p==k){if(!(q>=r^e>=r))break;if(!(p>=+h[c+8>>3]))break;if(!(p<=+h[c+24>>3]))break;else{d=0;break a}}o=(k-p)/(e-q);l=q<e;g=l?q:e;e=l?e:q;f=p+o*(r-q);m=+h[c+8>>3];if(!(!(r>=g)|!(r<=e)|!(f>=m))?f<=+h[c+24>>3]:0){d=0;break a}n=+h[c+16>>3];f=f+o*(n-r);if(f>=m?!(!(n<=e)|(n>=g?!(f<=+h[c+24>>3]):1)):0){d=0;break a}l=p<k;g=l?p:k;f=l?k:p;e=q+(m-p)/o;if(!(!(m<=f)|(!(m>=g)|(!(e>=r)|!(e<=n))))){d=0;break a}p=+h[c+24>>3];q=e+(p-m)/o;if(!(!(p<=f)|(!(p>=g)|(!(q>=r)|!(q<=n))))){d=0;break a}}while(0);d=-1}while(0);return d|0}function Fp(a){a=a|0;var b=0,c=0.0;b=a+16|0;c=+h[b>>3];h[a+32>>3]=c;h[a+48>>3]=c;h[a+40>>3]=+h[a+24>>3];h[a+56>>3]=+h[a+8>>3];h[b>>3]=+h[a>>3];return}function Gp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,j=0,k=0,l=0;l=i;i=i+16|0;j=l;e=+h[b>>3];f=b+8|0;g=+h[f>>3];a:do switch(d|0){case 0:{k=10;break}case 90:{h[b>>3]=g;h[f>>3]=-e;k=10;break}case 180:{h[b>>3]=e;h[f>>3]=-g;k=10;break}case 270:{h[b>>3]=g;h[f>>3]=e;k=10;break}default:{if((d|0)<0){c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Hp(a,j,0-d|0);break a}if((d|0)>360){c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Gp(a,j,(d|0)%360|0);break a}else{c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Kp(a,j,d);break a}}}while(0);if((k|0)==10){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}i=l;return}function Hp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0.0,j=0,k=0,l=0;l=i;i=i+16|0;j=l;e=+h[b>>3];f=b+8|0;g=+h[f>>3];a:do switch(d|0){case 0:{k=10;break}case 90:{h[b>>3]=-g;h[f>>3]=e;k=10;break}case 180:{h[b>>3]=e;h[f>>3]=-g;k=10;break}case 270:{h[b>>3]=g;h[f>>3]=e;k=10;break}default:{if((d|0)<0){c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Gp(a,j,0-d|0);break a}if((d|0)>360){c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Hp(a,j,(d|0)%360|0);break a}else{c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];Kp(a,j,360-d|0);break a}}}while(0);if((k|0)==10){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2]}i=l;return}function Ip(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;g=+h[c>>3];d=+h[c+8>>3];f=+h[b>>3]+d;e=+h[b+24>>3]+g;d=+h[b+16>>3]+d;h[a>>3]=+h[b+8>>3]+g;h[a+8>>3]=f;h[a+16>>3]=e;h[a+24>>3]=d;return}function Jp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;d=+h[a>>3];f=+h[b>>3]-d;g=+h[a+8>>3];e=+h[b+8>>3]-g;d=f*(+h[c+8>>3]-g)-e*(+h[c>>3]-d);d=d*d;if(d<1.0e-10)d=0.0;else d=d/(f*f+e*e);return +d}function Kp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,i=0.0;if((c[13353]|0)!=(d|0)){Py(+(d|0)/6.283185307179586,33648,33656);c[13353]=d}f=+h[b>>3];i=+h[4207];g=+h[b+8>>3];e=+h[4206];h[a>>3]=f*i-g*e;h[a+8>>3]=i*g+f*e;return}function Lp(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;k=p+16|0;g=p+8|0;l=p;e=$p(96)|0;o=b+16|0;c[(c[o>>2]|0)+8>>2]=e;e=zj(b,124839)|0;if(!e){e=Za(124848)|0;if(e)j=3}else j=3;if((j|0)==3)Ha(124860,e|0,1)|0;e=Js(b,rj(b,0,124871,0)|0,124879)|0;if(((((((hA(e,124885)|0)!=0?(hA(e,124893)|0)!=0:0)?(hA(e,124900)|0)!=0:0)?(hA(e,124903)|0)!=0:0)?(hA(e,124914)|0)!=0:0)?(hA(e,124925)|0)!=0:0)?(hA(e,124935)|0)!=0:0)if((hA(e,124946)|0)!=0?(hA(e,124952)|0)!=0:0)if((hA(e,124879)|0)!=0?(hA(e,124957)|0)!=0:0){c[g>>2]=e;dj(0,124962,g)|0;e=0}else e=0;else e=2;else e=1;a[(c[o>>2]|0)+115>>0]=e;if((c[13357]|0)==0?(j=zj(b,125005)|0,c[13356]=j,(j|0)==0):0)c[13356]=c[13355];f=+Hs(b,rj(b,0,125015,0)|0,0.0,0.0);h[c[(c[o>>2]|0)+8>>2]>>3]=f;e=zj(b,125023)|0;a:do if(!e)g=0;else{switch(a[e>>0]|0){case 76:{if(!(lA(e,125031)|0)){g=1;break a}break}case 66:{if(!(lA(e,125034)|0)){g=2;break a}break}case 82:{g=(lA(e,125037)|0)==0;g=g?3:0;break a}default:{g=0;break a}}g=0}while(0);e=g<<2;if(!(d<<24>>24))c[(c[o>>2]|0)+116>>2]=e;else c[(c[o>>2]|0)+116>>2]=e|g;f=+Hs(b,rj(b,0,125040,0)|0,.25,.02);h[l>>3]=f;f=f*72.0;c[(c[o>>2]|0)+248>>2]=~~(f+(f>=0.0?.5:-.5));e=Is(b,rj(b,0,125048,0)|0,0)|0;if(e){c[k>>2]=l;if(Pz(e,124835,k)|0){f=+h[l>>3];if(f<.02){h[l>>3]=.02;f=.02}}else{h[l>>3]=.5;f=.5}if(wA(e,125056)|0)a[(c[o>>2]|0)+276>>0]=1}else{h[l>>3]=.5;f=.5}f=f*72.0;c[(c[o>>2]|0)+252>>2]=~~(f+(f>=0.0?.5:-.5));e=(Gs(b,rj(b,0,125064,0)|0,0,0)|0)&255;a[(c[o>>2]|0)+243>>0]=e;e=Us(Is(b,rj(b,0,125074,0)|0,0)|0,53812,53828)|0;c[(c[o>>2]|0)+244>>2]=e;e=zj(b,125084)|0;b:do if((e|0)!=0?(m=a[e>>0]|0,m<<24>>24!=0):0)switch(m<<24>>24|0){case 97:{if(m<<24>>24!=97)break b;if(lA(e,125090)|0)break b;c[(c[(c[o>>2]|0)+8>>2]|0)+84>>2]=4;break b}case 99:{if(m<<24>>24!=99)break b;if(lA(e,125095)|0)break b;c[(c[(c[o>>2]|0)+8>>2]|0)+84>>2]=3;break b}case 101:{if(m<<24>>24!=101)break b;if(lA(e,125104)|0)break b;c[(c[(c[o>>2]|0)+8>>2]|0)+84>>2]=5;break b}case 102:{if(m<<24>>24!=102)break b;if(lA(e,125111)|0)break b;c[(c[(c[o>>2]|0)+8>>2]|0)+84>>2]=2;break b}default:{f=+Xz(e);if(!(f>0.0))break b;m=c[(c[o>>2]|0)+8>>2]|0;c[m+84>>2]=1;h[m+16>>3]=f;break b}}while(0);m=Op(b,125116,(c[(c[o>>2]|0)+8>>2]|0)+64|0)|0;e=c[(c[o>>2]|0)+8>>2]|0;a[e+80>>0]=m;Op(b,125121,e+48|0)|0;e=Ls(zj(b,125126)|0)|0;a[(c[(c[o>>2]|0)+8>>2]|0)+82>>0]=e;e=zj(b,125133)|0;do if(!e){e=zj(b,125140)|0;if(e){m=a[e>>0]|0;a[(c[(c[o>>2]|0)+8>>2]|0)+81>>0]=m<<24>>24==108?1:m<<24>>24==76&1;break}e=zj(b,125152)|0;if(e){m=Ls(e)|0;a[(c[(c[o>>2]|0)+8>>2]|0)+81>>0]=m}}else{m=(Yz(e)|0)==90&1;a[(c[(c[o>>2]|0)+8>>2]|0)+81>>0]=m}while(0);c[13360]=Us(zj(b,125162)|0,53844,53860)|0;a[124828]=Ls(zj(b,125174)|0)|0;c[13362]=0;c[13363]=0;h[(c[(c[o>>2]|0)+8>>2]|0)+24>>3]=0.0;e=zj(b,125186)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0)j=63;else j=61;if(((j|0)==61?(n=zj(b,125190)|0,(n|0)!=0):0)?(a[n>>0]|0)!=0:0){e=n;j=63}if((j|0)==63){f=+Xz(e);h[(c[(c[o>>2]|0)+8>>2]|0)+24>>3]=f}Mp(b);h[4208]=1.e+37;c[13371]=rj(b,0,125201,0)|0;c[13374]=rj(b,0,125210,0)|0;c[13375]=rj(b,0,129972,0)|0;c[13376]=rj(b,1,134586,0)|0;c[13377]=rj(b,1,134580,0)|0;c[13378]=rj(b,1,130096,0)|0;c[13379]=rj(b,1,161159,0)|0;c[13380]=rj(b,1,125224,0)|0;c[13396]=rj(b,1,125234,0)|0;c[13389]=rj(b,1,125240,0)|0;c[13390]=rj(b,1,125249,0)|0;c[13391]=rj(b,1,125258,0)|0;n=rj(b,1,124829,0)|0;c[13393]=n;if(!n)c[13393]=rj(b,1,124829,129969)|0;c[13394]=rj(b,1,125268,0)|0;c[13397]=rj(b,1,125064,0)|0;c[13411]=rj(b,1,125275,0)|0;c[13400]=rj(b,1,125201,0)|0;c[13392]=rj(b,1,129972,0)|0;c[13398]=rj(b,1,125284,0)|0;c[13399]=rj(b,1,125290,0)|0;c[13402]=rj(b,1,125302,0)|0;c[13401]=rj(b,1,125140,0)|0;c[13403]=rj(b,1,125307,0)|0;c[13404]=rj(b,1,125318,0)|0;c[13405]=rj(b,1,160729,0)|0;c[13395]=rj(b,1,125328,0)|0;c[13406]=rj(b,1,125338,0)|0;c[13407]=rj(b,1,125344,0)|0;c[13408]=rj(b,1,125350,0)|0;c[13409]=rj(b,1,125358,0)|0;c[13410]=rj(b,1,125367,0)|0;c[13412]=rj(b,1,125210,0)|0;c[13413]=rj(b,2,125369,0)|0;c[13415]=rj(b,2,161159,0)|0;c[13416]=rj(b,2,125224,0)|0;c[13425]=rj(b,2,125240,0)|0;c[13426]=rj(b,2,125249,0)|0;c[13427]=rj(b,2,125258,0)|0;c[13428]=rj(b,2,124829,0)|0;c[13429]=rj(b,2,125268,0)|0;c[13438]=rj(b,2,125376,0)|0;c[13430]=rj(b,2,125387,0)|0;c[13441]=rj(b,2,125391,0)|0;c[13442]=rj(b,2,125401,0)|0;c[13443]=rj(b,2,125411,0)|0;c[13444]=rj(b,2,125421,0)|0;c[13445]=rj(b,2,125431,0)|0;c[13446]=rj(b,2,125445,0)|0;c[13447]=rj(b,2,125459,0)|0;c[13448]=rj(b,2,125474,0)|0;c[13449]=rj(b,2,125488,0)|0;c[13414]=rj(b,2,125499,0)|0;c[13433]=rj(b,2,125064,0)|0;c[13431]=rj(b,2,125234,0)|0;c[13432]=rj(b,2,125506,0)|0;c[13434]=rj(b,2,125515,0)|0;c[13435]=rj(b,2,125525,0)|0;c[13436]=rj(b,2,125338,0)|0;c[13437]=rj(b,2,125350,0)|0;c[13450]=rj(b,2,125536,0)|0;c[13451]=rj(b,2,125545,0)|0;c[13452]=rj(b,2,125275,0)|0;e=So(b)|0;c[(c[(c[o>>2]|0)+8>>2]|0)+88>>2]=e;e=zj(b,125554)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){b=Up(e,b)|0;c[(c[(c[o>>2]|0)+8>>2]|0)+92>>2]=b}i=p;return}function Mp(b){b=b|0;var e=0,f=0,g=0.0,i=0.0,j=0;e=zj(b,124829)|0;do if((e|0)!=0?(a[e>>0]|0)!=0:0){f=(c[(c[b+60>>2]|0)+16>>2]|0)+113|0;a[f>>0]=d[f>>0]|8;f=(Ll(e)|0)!=0;i=+Hs(b,rj(b,0,125240,0)|0,14.0,1.0);j=Js(b,rj(b,0,125249,0)|0,131608)|0;e=Qp(b,e,f?2:0,i,j,Js(b,rj(b,0,125258,0)|0,160746)|0)|0;j=b+16|0;c[(c[j>>2]|0)+12>>2]=e;e=zj(b,130087)|0;f=(e|0)!=0;do if((hl(b)|0)==(b|0)){if(f?(a[e>>0]|0)==116:0){e=1;break}e=0}else{if(f?(a[e>>0]|0)==98:0){e=0;break}e=1}while(0);f=zj(b,125557)|0;a:do if(f)switch(a[f>>0]|0){case 108:{e=(e&255|2)&255;break a}case 114:{e=(e&255|4)&255;break a}default:break a}while(0);a[(c[j>>2]|0)+275>>0]=e;if((hl(b)|0)!=(b|0)){e=c[(c[j>>2]|0)+12>>2]|0;g=+h[e+24>>3]+16.0;i=+h[e+32>>3]+8.0;b=(c[(c[(hl(b)|0)+16>>2]|0)+116>>2]&1|0)==0;e=c[j>>2]|0;f=(a[e+275>>0]&1)<<1;if(b){h[e+48+(f<<4)>>3]=g;h[e+48+(f<<4)+8>>3]=i;break}else{b=f^3;h[e+48+(b<<4)>>3]=i;h[e+48+(b<<4)+8>>3]=g;break}}}while(0);return}function Np(a){a=a|0;var b=0,d=0,e=0,f=0;f=a+16|0;b=c[f>>2]|0;d=c[b+8>>2]|0;do if(d){e=c[d+88>>2]|0;if(e){uo(e);b=c[f>>2]|0;d=c[b+8>>2]|0;if(!d)break}d=c[d+92>>2]|0;if(d){pB(d);b=c[f>>2]|0}}while(0);pB(c[b+8>>2]|0);f=c[f>>2]|0;c[f+8>>2]=0;Sp(c[f+12>>2]|0);Al(a,0,160878);return}function Op(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;l=o+32|0;j=o+16|0;m=o+8|0;k=o;n=o+40|0;a[n>>0]=0;b=zj(b,d)|0;do if(b){c[j>>2]=m;c[j+4>>2]=k;c[j+8>>2]=n;j=(Pz(b,125580,j)|0)>1;g=+h[m>>3];f=+h[k>>3];if(j&g>0.0&f>0.0){g=g*72.0;h[e>>3]=+(~~(g+(g>=0.0?.5:-.5))|0);g=f*72.0;h[e+8>>3]=+(~~(g+(g>=0.0?.5:-.5))|0);b=(a[n>>0]|0)==33&1;break}a[n>>0]=0;c[l>>2]=m;c[l+4>>2]=n;l=(Pz(b,125590,l)|0)>0;f=+h[m>>3];if(l&f>0.0){g=f*72.0;g=+(~~(g+(g>=0.0?.5:-.5))|0);h[e>>3]=g;h[e+8>>3]=g;i=o;return (a[n>>0]|0)==33|0}else b=0}else b=0;while(0);i=o;return b|0}function Pp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c[d>>2]|0;l=d+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;if(a[e>>0]|0){h=aq((pA(e)|0)+1|0)|0;a[h>>0]=0;f=a[e>>0]|0;if(f<<24>>24){k=d+12|0;g=e;j=h;e=h;a:while(1){i=e;b:while(1){h=g+1|0;if(!(f<<24>>24==-1|((f&255)<161|(c[k>>2]|0)!=2))){a[i>>0]=f;h=a[h>>0]|0;e=i+2|0;a[i+1>>0]=h;if(!(h<<24>>24)){f=j;break a}else g=g+2|0}else{switch(f<<24>>24){case 92:{f=8;break b}case 10:{g=h;e=i;f=12;break b}default:{}}a[i>>0]=f;e=i+1|0;g=h}f=a[g>>0]|0;if(!(f<<24>>24)){f=j;break a}else i=e}if((f|0)==8){e=a[h>>0]|0;switch(e<<24>>24|0){case 114:case 108:case 110:{e=i+1|0;a[i>>0]=0;Yp(b,d,j,a[h>>0]|0);f=e;break}default:{a[i>>0]=e;f=j;e=i+1|0}}i=f;g=(a[h>>0]|0)==0?h:g+2|0}else if((f|0)==12){h=e+1|0;a[e>>0]=0;Yp(b,d,j,110);i=h;e=h}f=a[g>>0]|0;if(!(f<<24>>24)){f=i;break}else j=i}if((f|0)!=(e|0)){a[e>>0]=0;Yp(b,d,f,110)}}d=d+40|0;c[d>>2]=c[l>>2];c[d+4>>2]=c[l+4>>2];c[d+8>>2]=c[l+8>>2];c[d+12>>2]=c[l+12>>2]}return}function Qp(b,e,f,g,j,k){b=b|0;e=e|0;f=f|0;g=+g;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+32|0;r=u+16|0;q=u+8|0;p=u;t=$p(88)|0;switch(rl(b)|0){case 0:{m=0;s=c[b+60>>2]|0;n=0;o=b;break}case 1:{m=0;s=hl(gl(b)|0)|0;n=b;o=0;break}case 2:{m=b;s=hl(gl(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)|0;n=0;o=0;break}default:{m=0;s=0;n=0;o=0}}c[t+4>>2]=j;c[t+8>>2]=k;h[t+16>>3]=g;l=s+16|0;j=t+12|0;c[j>>2]=d[(c[l>>2]|0)+115>>0];a:do if(f&4){c[t>>2]=oA(e)|0;if(f&2)a[t+82>>0]=1}else switch(f|0){case 2:{c[t>>2]=oA(e)|0;a[t+82>>0]=1;if(!($v(b,t)|0))break a;switch(rl(b)|0){case 0:{c[p>>2]=ok(o)|0;dj(3,125606,p)|0;break a}case 1:{c[q>>2]=ok(n)|0;dj(3,125628,q)|0;break a}case 2:{p=ok(c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0)|0;q=(hk(s)|0)!=0;s=ok(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)|0;c[r>>2]=p;c[r+4>>2]=q?160891:160894;c[r+8>>2]=s;dj(3,125649,r)|0;break a}default:break a}}case 0:{k=Zp(e,b,0)|0;c[t>>2]=k;if((c[j>>2]|0)==1)k=gt(k)|0;else k=ft(k,s)|0;pB(c[t>>2]|0);c[t>>2]=k;Pp(c[(c[l>>2]|0)+144>>2]|0,t);break a}default:Ia(125676,125692,166,125701)}while(0);i=u;return t|0}function Rp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if(a){if((b|0)>0){g=0;h=a;while(1){if((g|0)==0?(d=c[h>>2]|0,(d|0)!=0):0)pB(d);e=c[h+8>>2]|0;if((e|0)!=0?(f=c[h+12>>2]|0,(f|0)!=0):0)zb[f&127](e);g=g+1|0;if((g|0)==(b|0))break;else h=h+56|0}}pB(a)}return}function Sp(d){d=d|0;var e=0;if(d){pB(c[d>>2]|0);e=d+72|0;if(a[d+82>>0]|0){e=c[e>>2]|0;if(e)Uv(e,1)}else Rp(c[e>>2]|0,b[d+76>>1]|0);pB(d)}return}function Tp(d,e,f){d=d|0;e=e|0;f=f|0;var g=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+32|0;s=t+16|0;r=t;k=c[d+16>>2]|0;p=k+12|0;q=c[p>>2]|0;c[p>>2]=e;if(!(a[f+82>>0]|0)){o=f+76|0;if((b[o>>1]|0)>=1){Ou(d,0);Ru(d,c[f+8>>2]|0);switch(a[f+80>>0]|0){case 116:{j=+h[f+64>>3];g=j+ +h[f+48>>3]*.5-+h[f+16>>3];h[r+8>>3]=g;break}case 98:{j=+h[f+64>>3];g=+h[f+32>>3]+(j-+h[f+48>>3]*.5)-+h[f+16>>3];h[r+8>>3]=g;break}default:{j=+h[f+64>>3];g=j+ +h[f+32>>3]*.5-+h[f+16>>3];h[r+8>>3]=g}}if(b[k+260>>1]&512)h[r+8>>3]=g-j;a:do if((b[o>>1]|0)>0){l=f+72|0;m=f+56|0;n=r+8|0;e=f+40|0;k=c[l>>2]|0;f=0;while(1){switch(a[k+(f*56|0)+48>>0]|0){case 108:{h[r>>3]=+h[m>>3]-+h[e>>3]*.5;break}case 114:{h[r>>3]=+h[m>>3]+ +h[e>>3]*.5;break}default:h[r>>3]=+h[m>>3]}c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];Qu(d,s,k+(f*56|0)|0);k=c[l>>2]|0;h[n>>3]=+h[n>>3]-+h[k+(f*56|0)+40>>3];f=f+1|0;if((f|0)>=(b[o>>1]|0))break a}}while(0);Pu(d);c[p>>2]=q}}else{Rv(d,c[f+72>>2]|0,f);c[p>>2]=q}i=t;return}function Up(a,b){a=a|0;b=b|0;return Zp(a,b,1)|0}function Vp(a){a=a|0;return Wp(a,0)|0}function Wp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=c[13469]|0;if(!e){c[13470]=64;e=aq(64)|0;c[13469]=e}a:do if((b|0)!=0?(j=d<<24>>24==0,f=a[b>>0]|0,f<<24>>24!=0):0){i=0;g=0;while(1){d=c[13470]|0;if((i|0)>(d+-8|0)){e=d<<1;c[13470]=e;e=cq(c[13469]|0,e)|0;c[13469]=e;d=a[b>>0]|0;e=e+i|0}else d=f;b:do switch(d<<24>>24){case 38:{if(j?(_p(b)|0)!=0:0)k=17;else{f=5;d=125738}break}case 60:{f=4;d=125761;break}case 62:{f=4;d=125756;break}case 45:{f=5;d=125750;break}default:{if((g|0)!=0&d<<24>>24==32?(a[g>>0]|0)==32:0){f=6;d=125731;break b}switch(d<<24>>24){case 34:{f=6;d=125724;break b}case 39:{f=5;d=125744;break b}case 10:if(j){k=17;break b}else{f=5;d=125718;break b}default:{k=17;break b}}}}while(0);if((k|0)==17){k=0;d=j|d<<24>>24!=13;f=d?1:5;d=d?b:125712}i=f+i|0;g=f;h=e;while(1){g=g+-1|0;a[h>>0]=a[d>>0]|0;if(!g)break;else{h=h+1|0;d=d+1|0}}e=e+f|0;d=b+1|0;f=a[d>>0]|0;if(!(f<<24>>24))break a;else{g=b;b=d}}}while(0);a[e>>0]=0;return c[13469]|0}function Xp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=c[13471]|0;if(!d){c[13472]=64;d=aq(64)|0;c[13471]=d}a:do if((b|0)!=0?(e=a[b>>0]|0,e<<24>>24!=0):0){i=0;while(1){f=c[13472]|0;if((i|0)>(f+-8|0)){d=f<<1;c[13472]=d;d=cq(c[13471]|0,d)|0;c[13471]=d;e=a[b>>0]|0;d=d+i|0}switch(e<<24>>24){case 38:{if(!(_p(b)|0)){f=5;e=125738}else j=12;break}case 60:{f=4;e=125761;break}case 62:{f=4;e=125756;break}case 34:{f=6;e=125724;break}case 39:{f=5;e=125744;break}default:j=12}if((j|0)==12){j=0;f=1;e=b}i=f+i|0;g=f;h=d;while(1){g=g+-1|0;a[h>>0]=a[e>>0]|0;if(!g)break;else{h=h+1|0;e=e+1|0}}d=d+f|0;b=b+1|0;e=a[b>>0]|0;if(!(e<<24>>24))break a}}while(0);a[d>>0]=0;return c[13471]|0}function Yp(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;r=i;i=i+16|0;p=r;q=e+76|0;k=b[q>>1]|0;n=e+72|0;m=c[n>>2]|0;if(!m)o=$p((k*56|0)+112|0)|0;else o=bq(m,k+2|0,56,k+1|0)|0;c[n>>2]=o;k=b[q>>1]|0;m=k<<16>>16;n=o+(m*56|0)|0;c[n>>2]=f;a[o+(m*56|0)+48>>0]=g;if((f|0)!=0?(a[f>>0]|0)!=0:0){c[8418]=c[e+4>>2];h[4211]=+h[e+16>>3];k=c[d+144>>2]|0;c[o+(m*56|0)+4>>2]=ub[c[k>>2]&31](k,33672,1)|0;us(p,d,n);k=b[q>>1]|0;l=+h[p>>3];j=+h[p+8>>3]}else{j=+(~~(+h[e+16>>3]*1.2)|0);h[o+(m*56|0)+40>>3]=j;l=0.0}b[q>>1]=k+1<<16>>16;q=e+24|0;s=+h[q>>3];h[q>>3]=s>l?s:l;e=e+32|0;h[e>>3]=j+ +h[e>>3];i=r;return}function Zp(b,d,e){b=b|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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;switch(rl(d)|0){case 0:{h=ok(d)|0;g=pA(h)|0;f=c[(c[d+16>>2]|0)+12>>2]|0;if(f){f=c[f>>2]|0;if(!b){v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=2;w=f;i=2;j=129969;d=2;q=125778;o=0;r=164137}else{v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=pA(f)|0;w=f;i=2;j=129969;d=2;q=125778;o=0;r=164137}}else{v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=2;w=125766;i=2;j=129969;d=2;q=125778;o=0;r=164137}break}case 1:{h=ok(gl(d)|0)|0;g=pA(h)|0;j=ok(d)|0;i=pA(j)|0;f=c[(c[d+16>>2]|0)+104>>2]|0;if(f){f=c[f>>2]|0;if(!b){v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=2;w=f;d=2;q=125778;o=0;r=164137}else{v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=pA(f)|0;w=f;d=2;q=125778;o=0;r=164137}}else{v=2;y=125772;t=2;x=125775;u=0;m=164137;s=0;n=2;w=125766;d=2;q=125778;o=0;r=164137}break}case 2:{i=d+48|0;h=ok(hl(gl(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0)|0)|0;g=pA(h)|0;q=ok(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0;p=pA(q)|0;f=d+16|0;r=c[(c[f>>2]|0)+52>>2]|0;if(!r)o=0;else o=pA(r)|0;k=ok(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0;f=c[f>>2]|0;m=c[f+92>>2]|0;if(!m)l=0;else l=pA(m)|0;j=pA(k)|0;f=c[f+96>>2]|0;if(f){f=c[f>>2]|0;if(!b)n=2;else n=pA(f)|0}else{n=2;f=125766}y=(hk(hl(gl(c[((c[d>>2]&3|0)==3?d:i)+40>>2]|0)|0)|0)|0)==0;v=p+2+((o|0)!=0?o+1|0:0)+j+((l|0)!=0?l+1|0:0)|0;y=y?160894:160891;t=j;x=k;u=l;s=1;w=f;i=2;j=129969;d=p;break}default:{v=2;y=125772;g=2;h=125769;t=2;x=125775;u=0;m=164137;s=0;n=2;w=125766;i=2;j=129969;d=2;q=125778;o=0;r=164137}}p=(e|0)==0;f=0;k=b;a:while(1){l=k+1|0;switch(a[k>>0]|0){case 0:break a;case 92:break;default:{f=f+1|0;k=l;continue a}}k=k+2|0;switch(a[l>>0]|0){case 71:{f=f+g|0;continue a}case 78:{f=f+i|0;continue a}case 69:{f=f+v|0;continue a}case 72:{f=f+t|0;continue a}case 84:{f=f+d|0;continue a}case 76:{f=f+n|0;continue a}case 92:{if(!p){f=f+1|0;continue a}break}default:{}}f=f+2|0}d=aq(f+1|0)|0;n=(s|0)==0;l=(o|0)==0;k=(u|0)==0;f=d;b:while(1){i=b+1|0;g=a[b>>0]|0;switch(g<<24>>24){case 0:break b;case 92:break;default:{a[f>>0]=g;f=f+1|0;b=i;continue b}}b=b+2|0;g=a[i>>0]|0;switch(g<<24>>24|0){case 71:{e=a[h>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=h;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 78:{e=a[j>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=j;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 69:{if(n){e=f;f=e;continue b}e=a[q>>0]|0;a[f>>0]=e;if(e<<24>>24){g=q;do{g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e}while(e<<24>>24!=0)}if(!l){a[f>>0]=58;g=r;while(1){f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))break;else g=g+1|0}}e=a[y>>0]|0;a[f>>0]=e;if(e<<24>>24){g=y;do{g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e}while(e<<24>>24!=0)}e=a[x>>0]|0;a[f>>0]=e;if(e<<24>>24){g=x;do{g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e}while(e<<24>>24!=0)}if(k)continue b;a[f>>0]=58;g=m;while(1){f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b;else g=g+1|0}}case 84:{e=a[q>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=q;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 72:{e=a[x>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=x;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 76:{e=a[w>>0]|0;a[f>>0]=e;if(!(e<<24>>24)){e=f;f=e;continue b}else g=w;while(1){g=g+1|0;f=f+1|0;e=a[g>>0]|0;a[f>>0]=e;if(!(e<<24>>24))continue b}}case 92:{if(!p){a[f>>0]=92;f=f+1|0;continue b}break}default:{}}a[f>>0]=92;a[f+1>>0]=g;f=f+2|0}a[f>>0]=0;return d|0}function _p(b){b=b|0;var c=0;c=a[b+1>>0]|0;a:do if(c<<24>>24!=35){if(((c&-33)+-65&255)<26){b=b+2|0;while(1){c=a[b>>0]|0;if(((c&-33)+-65&255)<26)b=b+1|0;else break}}}else{c=a[b+2>>0]|0;switch(c<<24>>24){case 88:case 120:break;default:{if((c+-48&255)>=10)break a;b=b+3|0;while(1){c=a[b>>0]|0;if((c+-48&255)<10)b=b+1|0;else break a}}}b=b+3|0;while(1){c=a[b>>0]|0;if((c+-48&255)>=10)switch(c<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break a}b=b+1|0}}while(0);return c<<24>>24==59|0}function $p(a){a=a|0;var b=0;if(!a)a=0;else{b=aq(a)|0;CB(b|0,0,a|0)|0;a=b}return a|0}function aq(a){a=a|0;if(a){a=oB(a)|0;if(!a){Mz(134974,14,1,c[22667]|0)|0;a=0}}else a=0;return a|0}function bq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=rB(a,_(d,b)|0)|0;if(!((b|0)!=0&(a|0)==0)){if(b>>>0>e>>>0)CB(a+(_(e,d)|0)|0,0,_(b-e|0,d)|0)|0}else Mz(134974,14,1,c[22667]|0)|0;return a|0}function cq(a,b){a=a|0;b=b|0;a=rB(a,b)|0;if((b|0)!=0&(a|0)==0)Mz(134974,14,1,c[22667]|0)|0;return a|0}function dq(b,d,f,g){b=b|0;d=d|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,p=0.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,D=0,E=0,F=0;F=i;i=i+96|0;z=F+64|0;y=F+56|0;B=F+48|0;A=F+40|0;v=F+32|0;u=F+24|0;r=F;D=4;E=oB(40)|0;c[E>>2]=0;s=b+16|0;if(a[124827]|0){j=c[(c[s>>2]|0)+192>>2]|0;if(!j){k=0;j=0}else{k=0;l=0;do{l=l+1|0;q=c[j+16>>2]|0;j=c[q+180>>2]|0;if(c[j>>2]|0){m=0;do{k=k+1|0;m=m+1|0}while((c[j+(m<<2)>>2]|0)!=0)}j=c[q+164>>2]|0}while((j|0)!=0);j=l}x=c[22667]|0;n=0;c[r>>2]=125825;c[r+4>>2]=j;c[r+8>>2]=k;c[r+12>>2]=f;c[r+16>>2]=d;da(13,x|0,125781,r|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)!=1){n=0;qa(1);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)!=1)x=9;else{j=C;x=68}}else{j=C;x=68}}else x=9;a:do if((x|0)==9){c[13473]=b;c[13474]=0;c[13475]=0;c[13476]=0;j=c[(c[s>>2]|0)+192>>2]|0;if(!j)j=0;else{q=0;k=0;do{m=c[j+16>>2]|0;a[m+157>>0]=0;q=q+1|0;c[13476]=q;l=c[m+180>>2]|0;if(c[l>>2]|0){j=0;do{k=k+1|0;j=j+1|0}while((c[l+(j<<2)>>2]|0)!=0);c[13475]=k}j=c[m+164>>2]|0}while((j|0)!=0);j=q<<2}k=c[13477]|0;if(!k){n=0;j=na(18,j|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}}else{n=0;j=ua(27,k|0,j|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}}c[13477]=j;c[13478]=0;j=c[13479]|0;if(!j){n=0;j=na(18,c[13476]<<2|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}}else{n=0;j=ua(27,j|0,c[13476]<<2|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}}c[13479]=j;c[13480]=0;j=c[(c[s>>2]|0)+192>>2]|0;if(j){l=1;while(1){b=j+16|0;r=c[b>>2]|0;q=r+292|0;c[q>>2]=0;r=c[r+172>>2]|0;j=c[r>>2]|0;if(!j){m=l;j=0}else{m=j;j=0;while(1){j=j+1|0;c[q>>2]=j;k=c[m+16>>2]|0;c[k+160>>2]=0;c[k+164>>2]=-1;if(!l)k=0;else{w=c[m>>2]&3;k=((c[(c[(c[((w|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((w|0)==3?m:m+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)<(e[k+170>>1]|0)?0:l}m=c[r+(j<<2)>>2]|0;if(!m){m=k;break}else l=k}}n=0;j=na(19,(j<<2)+4|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}k=c[b>>2]|0;c[k+264>>2]=j;c[k+268>>2]=0;j=c[k+180>>2]|0;k=0;do{w=k;k=k+1|0}while((c[j+(w<<2)>>2]|0)!=0);n=0;j=na(19,k<<2|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}w=c[b>>2]|0;c[w+272>>2]=j;c[w+276>>2]=0;j=c[w+164>>2]|0;if(!j)break;else l=m}if(!m){n=0;t=na(20,c[13476]|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}j=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(j){k=j;do{l=k+16|0;j=c[l>>2]|0;if(!(c[j+292>>2]|0)){n=0;ka(24,t|0,k|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break a}j=c[l>>2]|0}k=c[j+164>>2]|0}while((k|0)!=0)}n=0;j=na(21,t|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break}if(!j)j=0;else{m=j;j=0;do{s=m+16|0;l=c[s>>2]|0;b=l+232|0;c[b>>2]=0;j=j+1|0;r=c[l+172>>2]|0;k=c[r>>2]|0;if(k){m=0;q=0;do{w=(e[(c[k+16>>2]|0)+170>>1]|0)+(c[(c[(c[((c[k>>2]&3|0)==3?k:k+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;m=(m|0)>(w|0)?m:w;c[b>>2]=m;q=q+1|0;k=c[r+(q<<2)>>2]|0}while((k|0)!=0)}k=c[c[l+180>>2]>>2]|0;if(k){q=0;do{m=k+-48|0;b=(c[(c[((c[k>>2]&3|0)==2?k:m)+40>>2]|0)+16>>2]|0)+292|0;w=c[b>>2]|0;c[b>>2]=w+-1;if((w|0)<2){n=0;ka(24,t|0,c[((c[k>>2]&3|0)==2?k:m)+40>>2]|0);k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}l=c[s>>2]|0}q=q+1|0;k=c[(c[l+180>>2]|0)+(q<<2)>>2]|0}while((k|0)!=0)}n=0;m=na(21,t|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}}while((m|0)!=0)}if((j|0)!=(c[13476]|0)){n=0;da(11,1,125843,u|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}j=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(j){k=j;do{m=k+16|0;j=c[m>>2]|0;if(c[j+292>>2]|0){n=0;j=na(22,k|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;break a}w=c[(c[m>>2]|0)+292>>2]|0;n=0;c[v>>2]=j;c[v+4>>2]=w;da(11,3,125865,v|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break a}j=c[m>>2]|0}k=c[j+164>>2]|0}while((k|0)!=0)}}n=0;ia(87,t|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}}}if((f|0)<1){n=0;qa(2);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}j=0;break}else{c[13481]=(g|0)>-1?g:30;E=xB(53928,1,E|0,D|0)|0;D=C;n=0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;break}j=0;x=68;break}}while(0);b:do if((x|0)==68){c:while(1){x=0;if(j){j=2;break b}j=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(j)do{w=c[j+16>>2]|0;c[w+280>>2]=0;j=c[w+164>>2]|0}while((j|0)!=0);n=0;w=na(19,c[13476]<<2|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}j=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(!j)k=0;else{k=0;while(1){r=j+16|0;l=c[r>>2]|0;if(!(c[l+280>>2]|0)){n=0;q=na(19,16)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){m=zB(c[l>>2]|0,E|0,D|0)|0;if(!m)Ka(l|0,o|0);C=o}else m=-1;if((m|0)==1){j=C;x=68;continue c}c[q>>2]=j;n=0;j=ua(28,j|0,q|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){m=zB(c[l>>2]|0,E|0,D|0)|0;if(!m)Ka(l|0,o|0);C=o}else m=-1;if((m|0)==1){j=C;x=68;continue c}c[q+4>>2]=j;c[q+12>>2]=q;c[w+(k<<2)>>2]=q;j=c[r>>2]|0;k=k+1|0}else j=l;j=c[j+164>>2]|0;if(!j)break}}n=0;v=na(19,8)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue}c[v>>2]=w;u=v+4|0;c[u>>2]=k;g=(k|0)>0;if(g){j=0;do{c[(c[w+(j<<2)>>2]|0)+8>>2]=j;j=j+1|0}while((j|0)!=(k|0))}d:do if((k|0)>-2){m=(k|0)/2|0;while(1){n=0;ka(25,v|0,m|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}if((m|0)>0)m=m+-1|0;else break}j=c[u>>2]|0;if((j|0)>1){while(1){t=c[v>>2]|0;m=c[t>>2]|0;c[m+8>>2]=-1;j=j+-1|0;c[t>>2]=c[t+(j<<2)>>2];t=c[v>>2]|0;c[(c[t>>2]|0)+8>>2]=0;c[t+(j<<2)>>2]=m;c[u>>2]=j;n=0;ka(25,v|0,0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}n=0;s=da(14,c[m>>2]|0,0,0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}r=s+16|0;if((c[(c[r>>2]|0)+164>>2]|0)>-1){x=90;break}b=s+48|0;n=0;t=na(23,c[((c[s>>2]&3|0)==3?s:b)+40>>2]|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}j=s+-48|0;n=0;q=na(23,c[((c[s>>2]&3|0)==2?s:j)+40>>2]|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){m=zB(c[l>>2]|0,E|0,D|0)|0;if(!m)Ka(l|0,o|0);C=o}else m=-1;if((m|0)==1){j=C;x=68;continue c}m=c[s>>2]&3;j=(c[(c[(c[((m|0)==2?s:j)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?s:b)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[r>>2]|0)+170>>1]|0)|0;if((c[t+8>>2]|0)==-1){n=0;pa(57,c[t>>2]|0,0,j|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}}else{n=0;pa(57,c[q>>2]|0,0,0-j|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}}n=0;ia(88,s|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}b=t;while(1){r=b+12|0;j=c[r>>2]|0;if((j|0)==0|(j|0)==(b|0))break;else b=j}while(1){m=q+12|0;j=c[m>>2]|0;if((j|0)==0|(j|0)==(q|0))break;else q=j}j=c[b+8>>2]|0;if((b|0)!=(q|0)){l=c[q+8>>2]|0;if((j|0)>-1)if((l|0)==-1)j=b;else x=109;else{if((l|0)<=-1){x=106;break}if((j|0)==-1)j=q;else x=109}if((x|0)==109){x=0;j=(c[q+4>>2]|0)<(c[b+4>>2]|0)?b:q}c[m>>2]=j;c[r>>2]=j;c[j+4>>2]=(c[q+4>>2]|0)+(c[b+4>>2]|0);j=c[j+8>>2]|0;if((j|0)<=-1){x=111;break}}n=0;ka(25,v|0,j|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}j=c[u>>2]|0;if((j|0)<=1)break d}if((x|0)==90){n=0;ta(25,125873,125887,463,125892);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue c}else if((x|0)==106){n=0;ta(25,125904,125887,327,125951);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue c}else if((x|0)==111){n=0;ta(25,125962,125887,335,125951);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue c}}}while(0);n=0;ia(89,v|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue}if(g){m=0;while(1){n=0;ia(89,c[w+(m<<2)>>2]|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,E|0,D|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}m=m+1|0;if((m|0)==(k|0))break}}n=0;ia(89,w|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}if((c[13480]|0)!=((c[13476]|0)+-1|0)){n=0;ta(25,125981,125887,523,126011);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue}n=0;da(15,c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0,0,1)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}n=0;ka(26,c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0,0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}w=c[22667]|0;g=0;while(1){s=c[13474]|0;r=c[13480]|0;e:do if((s|0)<(r|0)){b=c[13479]|0;q=s;j=0;k=0;while(1){l=c[b+(q<<2)>>2]|0;m=c[(c[l+16>>2]|0)+160>>2]|0;if((m|0)<0){if(!k)k=l;else k=(c[(c[k+16>>2]|0)+160>>2]|0)>(m|0)?l:k;j=j+1|0;if((j|0)>=(c[13481]|0)){u=k;break e}}q=q+1|0;c[13474]=q;if((q|0)>=(r|0)){x=131;break}}}else{j=0;k=0;x=131}while(0);f:do if((x|0)==131){x=0;if((s|0)>0){c[13474]=0;r=c[13479]|0;q=0;while(1){l=c[r+(q<<2)>>2]|0;m=c[(c[l+16>>2]|0)+160>>2]|0;if((m|0)<0){if(!k)k=l;else k=(c[(c[k+16>>2]|0)+160>>2]|0)>(m|0)?l:k;j=j+1|0;if((j|0)>=(c[13481]|0)){u=k;break f}}q=q+1|0;c[13474]=q;if((q|0)>=(s|0)){u=k;break}}}else u=k}while(0);if(!u)break;n=0;v=na(24,u|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}l=c[v>>2]&3;s=v+-48|0;t=v+48|0;b=v+16|0;l=(c[(c[(c[((l|0)==2?v:s)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((l|0)==3?v:t)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[b>>2]|0)+170>>1]|0)|0;do if((l|0)>0){j=c[u>>2]&3;m=c[((j|0)==3?u:u+48|0)+40>>2]|0;q=c[m+16>>2]|0;if(((c[q+276>>2]|0)+(c[q+268>>2]|0)|0)==1){n=0;ka(27,m|0,l|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}j=c[((j|0)==2?u:u+-48|0)+40>>2]|0;k=c[j+16>>2]|0;if(((c[k+276>>2]|0)+(c[k+268>>2]|0)|0)==1){n=0;ka(27,j|0,0-l|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}if((c[q+288>>2]|0)<(c[k+288>>2]|0)){n=0;ka(27,m|0,l|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}else{n=0;ka(27,j|0,0-l|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}}while(0);m=u+16|0;q=c[(c[m>>2]|0)+160>>2]|0;r=c[v>>2]&3;n=0;r=sa(20,c[((r|0)==3?v:t)+40>>2]|0,c[((r|0)==2?v:s)+40>>2]|0,q|0,1)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}j=c[v>>2]&3;n=0;j=sa(20,c[((j|0)==2?v:s)+40>>2]|0,c[((j|0)==3?v:t)+40>>2]|0,q|0,0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}if((j|0)!=(r|0)){x=155;break}k=c[b>>2]|0;c[k+160>>2]=0-q;l=c[m>>2]|0;c[l+160>>2]=0;l=l+164|0;c[k+164>>2]=c[l>>2];c[(c[13479]|0)+(c[l>>2]<<2)>>2]=v;c[(c[m>>2]|0)+164>>2]=-1;m=(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)+16|0;l=c[m>>2]|0;k=l+276|0;b=c[k>>2]|0;q=b+-1|0;c[k>>2]=q;l=c[l+272>>2]|0;g:do if((b|0)<1)j=0;else{k=0;while(1){if((c[l+(k<<2)>>2]|0)==(u|0)){j=k;break g}j=k+1|0;if((k|0)<(q|0))k=j;else break}}while(0);c[l+(j<<2)>>2]=c[l+(q<<2)>>2];c[(c[(c[m>>2]|0)+272>>2]|0)+(q<<2)>>2]=0;m=(c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)+16|0;l=c[m>>2]|0;k=l+268|0;b=c[k>>2]|0;q=b+-1|0;c[k>>2]=q;l=c[l+264>>2]|0;h:do if((b|0)<1)j=0;else{k=0;while(1){if((c[l+(k<<2)>>2]|0)==(u|0)){j=k;break h}j=k+1|0;if((k|0)<(q|0))k=j;else break}}while(0);c[l+(j<<2)>>2]=c[l+(q<<2)>>2];c[(c[(c[m>>2]|0)+264>>2]|0)+(q<<2)>>2]=0;j=(c[((c[v>>2]&3|0)==3?v:t)+40>>2]|0)+16|0;u=c[j>>2]|0;b=u+276|0;t=c[b>>2]|0;c[b>>2]=t+1;c[(c[u+272>>2]|0)+(t<<2)>>2]=v;j=c[j>>2]|0;c[(c[j+272>>2]|0)+(c[j+276>>2]<<2)>>2]=0;j=(c[((c[v>>2]&3|0)==2?v:s)+40>>2]|0)+16|0;t=c[j>>2]|0;s=t+268|0;u=c[s>>2]|0;c[s>>2]=u+1;c[(c[t+264>>2]|0)+(u<<2)>>2]=v;j=c[j>>2]|0;c[(c[j+264>>2]|0)+(c[j+268>>2]<<2)>>2]=0;j=c[r+16>>2]|0;n=0;da(15,r|0,c[j+280>>2]|0,c[j+284>>2]|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}m=g+1|0;do if((a[124827]|0)!=0&((m|0)%100|0|0)==0){j=(m|0)%1e3|0;if((j|0)==100){n=0;sa(21,125825,17,1,w|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}n=0;c[B>>2]=m;da(13,w|0,126064,B|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}n=0;c[y>>2]=m;da(13,w|0,126064,y|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}if(j)break;n=0;ua(29,10,w|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}}while(0);if((m|0)<(f|0))g=m;else{g=m;break}}if((x|0)==155){n=0;da(11,1,126025,A|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}n=0;ka(28,53928,1);j=n;n=0;if((j|0)!=0&(o|0)!=0){x=zB(c[j>>2]|0,E|0,D|0)|0;if(!x)Ka(j|0,o|0);C=o};j=C;x=68;continue}switch(d|0){case 1:{n=0;qa(3);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}n=0;u=na(19,(c[13521]<<2)+4|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}if((c[13521]|0)>=0){j=0;while(1){c[u+(j<<2)>>2]=0;if((j|0)<(c[13521]|0))j=j+1|0;else break}}k=(c[(c[13473]|0)+16>>2]|0)+192|0;j=c[k>>2]|0;do if(j){do{j=c[j+16>>2]|0;if(!(a[j+156>>0]|0)){x=u+(c[j+232>>2]<<2)|0;c[x>>2]=(c[x>>2]|0)+1}j=c[j+164>>2]|0}while((j|0)!=0);j=c[k>>2]|0;if(!j)break;while(1){t=j+16|0;j=c[t>>2]|0;if(!(a[j+156>>0]|0)){m=c[13521]|0;b=c[j+172>>2]|0;k=c[b>>2]|0;if(!k){s=0;q=0}else{r=0;l=0;q=0;do{x=c[k+16>>2]|0;l=(c[x+156>>2]|0)+l|0;x=(e[x+170>>1]|0)+(c[(c[(c[((c[k>>2]&3|0)==3?k:k+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;q=(q|0)>(x|0)?q:x;r=r+1|0;k=c[b+(r<<2)>>2]|0}while((k|0)!=0);s=l}b=c[j+180>>2]|0;k=c[b>>2]|0;if(!k){r=m;l=0}else{r=0;l=0;do{x=c[k+16>>2]|0;l=(c[x+156>>2]|0)+l|0;x=(c[(c[(c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[x+170>>1]|0)|0;m=(m|0)<(x|0)?m:x;r=r+1|0;k=c[b+(r<<2)>>2]|0}while((k|0)!=0);r=m}k=(q|0)<0?0:q;if((s|0)==(l|0)){if((k|0)<(r|0)){l=k;m=k;while(1){m=m+1|0;k=(c[u+(m<<2)>>2]|0)<(c[u+(l<<2)>>2]|0)?m:l;if((m|0)==(r|0))break;else l=k}}x=j+232|0;v=u+(c[x>>2]<<2)|0;c[v>>2]=(c[v>>2]|0)+-1;v=u+(k<<2)|0;c[v>>2]=(c[v>>2]|0)+1;c[x>>2]=k}k=c[j+264>>2]|0;if(k){n=0;ia(89,k|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}j=c[t>>2]|0}k=c[j+272>>2]|0;if(k){n=0;ia(89,k|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}j=c[t>>2]|0}a[j+157>>0]=0}j=c[j+164>>2]|0;if(!j)break}}while(0);n=0;ia(89,u|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}case 2:{if((c[13480]|0)>0){q=0;while(1){m=c[(c[13479]|0)+(q<<2)>>2]|0;do if(!(c[(c[m+16>>2]|0)+160>>2]|0)){n=0;j=na(24,m|0)|0;k=n;n=0;if((k|0)!=0&(o|0)!=0){l=zB(c[k>>2]|0,E|0,D|0)|0;if(!l)Ka(k|0,o|0);C=o}else l=-1;if((l|0)==1){j=C;x=68;continue c}if(!j)break;k=c[j>>2]&3;k=(c[(c[(c[((k|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((k|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[j+16>>2]|0)+170>>1]|0)|0;if((k|0)<2)break;j=c[m>>2]&3;l=c[((j|0)==3?m:m+48|0)+40>>2]|0;j=c[((j|0)==2?m:m+-48|0)+40>>2]|0;if((c[(c[l+16>>2]|0)+288>>2]|0)<(c[(c[j+16>>2]|0)+288>>2]|0)){n=0;ka(27,l|0,(k|0)/2|0|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}else{n=0;ka(27,j|0,(k|0)/-2|0|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}}while(0);q=q+1|0;if((q|0)>=(c[13480]|0))break}}n=0;qa(2);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}break}default:{n=0;qa(3);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}n=0;qa(2);j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue c}}}if(!(a[124827]|0)){j=0;break b}if((g|0)>99){n=0;ua(29,10,w|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68;continue}}j=c[13476]|0;k=c[13475]|0;n=0;p=+fa(1);l=n;n=0;if((l|0)!=0&(o|0)!=0){m=zB(c[l>>2]|0,E|0,D|0)|0;if(!m)Ka(l|0,o|0);C=o}else m=-1;if((m|0)==1){j=C;x=68;continue}n=0;c[z>>2]=125825;c[z+4>>2]=j;c[z+8>>2]=k;c[z+12>>2]=g;h[z+16>>3]=p;da(13,w|0,126068,z|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,E|0,D|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){j=C;x=68}else break}j=0}while(0);pB(E|0);i=F;return j|0}function eq(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=zj(a,126106)|0;if(!d)d=30;else d=Yz(d)|0;return dq(a,b,c,d)|0}function fq(){var b=0,d=0,e=0;b=c[(c[(c[13473]|0)+16>>2]|0)+192>>2]|0;if(b)do{e=b+16|0;b=c[e>>2]|0;d=c[b+264>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+272>>2]|0;if(d){pB(d);b=c[e>>2]|0}a[b+157>>0]=0;b=c[b+164>>2]|0}while((b|0)!=0);return}function gq(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=a+16|0;f=c[l>>2]|0;c[f+280>>2]=b;a=c[c[f+172>>2]>>2]|0;if(!a)a=1;else{g=a;h=0;a=1;do{d=c[g+16>>2]|0;if(((c[d+164>>2]|0)<=-1?(i=c[g>>2]&3,j=g+48|0,k=c[(c[((i|0)==3?g:j)+40>>2]|0)+16>>2]|0,(c[k+280>>2]|0)==0):0)?((c[(c[(c[((i|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[k+232>>2]|0)|0)==(e[d+170>>1]|0|0):0){lq(g);a=(gq(c[((c[g>>2]&3|0)==3?g:j)+40>>2]|0,b)|0)+a|0;f=c[l>>2]|0}h=h+1|0;g=c[(c[f+172>>2]|0)+(h<<2)>>2]|0}while((g|0)!=0)}d=c[c[f+180>>2]>>2]|0;if(d){h=0;do{g=c[d+16>>2]|0;if(((c[g+164>>2]|0)<=-1?(m=c[d>>2]&3,n=d+-48|0,o=c[(c[((m|0)==2?d:n)+40>>2]|0)+16>>2]|0,(c[o+280>>2]|0)==0):0)?((c[o+232>>2]|0)-(c[(c[(c[((m|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)==(e[g+170>>1]|0|0):0){lq(d);a=(gq(c[((c[d>>2]&3|0)==2?d:n)+40>>2]|0,b)|0)+a|0;f=c[l>>2]|0}h=h+1|0;d=c[(c[f+180>>2]|0)+(h<<2)>>2]|0}while((d|0)!=0)}return a|0}function hq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a>>2]|0;g=c[a+4>>2]|0;while(1){a=b<<1;f=a+2|0;a=a|1;if(!((a|0)<(g|0)?(c[(c[h+(a<<2)>>2]|0)+4>>2]|0)<(c[(c[h+(b<<2)>>2]|0)+4>>2]|0):0))a=b;if((f|0)>=(g|0))break;d=h+(f<<2)|0;e=c[d>>2]|0;if((f|0)==(b|0)?1:(c[e+4>>2]|0)>=(c[(c[h+(a<<2)>>2]|0)+4>>2]|0))break;i=h+(b<<2)|0;a=c[i>>2]|0;c[i>>2]=e;c[d>>2]=a;c[(c[i>>2]|0)+8>>2]=b;c[a+8>>2]=f;b=f}return}function iq(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=jq(a)|0;if(d){k=c[d>>2]&3;if(((c[(c[(c[((k|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((k|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)!=(e[(c[d+16>>2]|0)+170>>1]|0|0))f=3}else{d=0;f=3}if((f|0)==3){k=a+16|0;f=c[k>>2]|0;g=c[c[f+180>>2]>>2]|0;if(g){j=0;do{f=g+16|0;h=g+-48|0;i=c[((c[g>>2]&3|0)==2?g:h)+40>>2]|0;do if((c[(c[f>>2]|0)+164>>2]|0)>-1){if((i|0)!=(b|0))d=iq(i,a,d)|0}else if((jq(i)|0)!=(l|0)){if((d|0)!=0?(m=c[g>>2]&3,i=c[d>>2]&3,((c[(c[(c[((m|0)==2?g:h)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[f>>2]|0)+170>>1]|0)|0)>=((c[(c[(c[((i|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((i|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0)):0)break;d=g}while(0);j=j+1|0;f=c[k>>2]|0;g=c[(c[f+180>>2]|0)+(j<<2)>>2]|0}while((g|0)!=0)}f=c[c[f+172>>2]>>2]|0;if(f){j=0;do{g=f+16|0;h=f+48|0;i=c[((c[f>>2]&3|0)==3?f:h)+40>>2]|0;do if((c[(c[g>>2]|0)+164>>2]|0)>-1){if((i|0)!=(b|0))d=iq(i,a,d)|0}else if((jq(i)|0)!=(l|0)){if((d|0)!=0?(i=c[f>>2]&3,m=c[d>>2]&3,((c[(c[(c[((i|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((i|0)==3?f:h)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[g>>2]|0)+170>>1]|0)|0)>=((c[(c[(c[((m|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((m|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[(c[d+16>>2]|0)+170>>1]|0)|0)):0)break;d=f}while(0);j=j+1|0;f=c[(c[(c[k>>2]|0)+172>>2]|0)+(j<<2)>>2]|0}while((f|0)!=0)}}return d|0}function jq(a){a=a|0;var b=0,d=0;d=c[(c[a+16>>2]|0)+280>>2]|0;b=d+12|0;a=c[b>>2]|0;a:do if((a|0)!=(d|0)&(a|0)!=0)while(1){d=c[a+12>>2]|0;if(!d)break a;c[b>>2]=d;a=c[d+12>>2]|0;if(!((a|0)!=(d|0)&(a|0)!=0)){a=d;break}else b=d+12|0}else a=d;while(0);return a|0}function kq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=a+16|0;f=c[h>>2]|0;e=f+232|0;c[e>>2]=(c[e>>2]|0)+d;e=c[c[f+264>>2]>>2]|0;if(e){g=0;do{e=c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0;if((e|0)!=(b|0)){kq(e,a,d);f=c[h>>2]|0}g=g+1|0;e=c[(c[f+264>>2]|0)+(g<<2)>>2]|0}while((e|0)!=0)}e=c[c[f+272>>2]>>2]|0;if(e){g=0;do{e=c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0;if((e|0)!=(b|0)){kq(e,a,d);f=c[h>>2]|0}g=g+1|0;e=c[(c[f+272>>2]|0)+(g<<2)>>2]|0}while((e|0)!=0)}return}function lq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;d=(c[b+16>>2]|0)+164|0;if((c[d>>2]|0)>-1){dj(1,126117,h)|0;Ka(53928,1)}e=c[13480]|0;c[d>>2]=e;c[13480]=e+1;c[(c[13479]|0)+(e<<2)>>2]=b;e=c[b>>2]|0;g=b+48|0;d=c[((e&3|0)==3?b:g)+40>>2]|0;if(!(a[(c[d+16>>2]|0)+157>>0]|0)){f=c[13478]|0;c[13478]=f+1;c[(c[13477]|0)+(f<<2)>>2]=d;d=c[b>>2]|0}else d=e;f=b+-48|0;e=c[((d&3|0)==2?b:f)+40>>2]|0;if(!(a[(c[e+16>>2]|0)+157>>0]|0)){d=c[13478]|0;c[13478]=d+1;c[(c[13477]|0)+(d<<2)>>2]=e;d=c[b>>2]|0}g=(c[((d&3|0)==3?b:g)+40>>2]|0)+16|0;d=c[g>>2]|0;a[d+157>>0]=1;j=d+276|0;e=c[j>>2]|0;c[j>>2]=e+1;c[(c[d+272>>2]|0)+(e<<2)>>2]=b;e=c[g>>2]|0;c[(c[e+272>>2]|0)+(c[e+276>>2]<<2)>>2]=0;g=c[g>>2]|0;if(!(c[(c[g+180>>2]|0)+((c[g+276>>2]|0)+-1<<2)>>2]|0)){dj(1,126151,h+8|0)|0;Ka(53928,1)}j=(c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0)+16|0;f=c[j>>2]|0;a[f+157>>0]=1;e=f+268|0;g=c[e>>2]|0;c[e>>2]=g+1;c[(c[f+264>>2]|0)+(g<<2)>>2]=b;b=c[j>>2]|0;c[(c[b+264>>2]|0)+(c[b+268>>2]<<2)>>2]=0;j=c[j>>2]|0;if(!(c[(c[j+172>>2]|0)+((c[j+268>>2]|0)+-1<<2)>>2]|0)){dj(1,126186,h+16|0)|0;Ka(53928,1)}else{i=h;return}}function mq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=a+16|0;a=c[g>>2]|0;c[a+280>>2]=b;c[a+284>>2]=d;e=c[c[a+272>>2]>>2]|0;if(e){f=0;do{if((e|0)!=(b|0)){d=mq(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,e,d)|0;a=c[g>>2]|0}f=f+1|0;e=c[(c[a+272>>2]|0)+(f<<2)>>2]|0}while((e|0)!=0)}e=c[c[a+264>>2]>>2]|0;if(e){f=0;do{if((e|0)!=(b|0)){d=mq(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,e,d)|0;a=c[g>>2]|0}f=f+1|0;e=c[(c[a+264>>2]|0)+(f<<2)>>2]|0}while((e|0)!=0)}c[a+288>>2]=d;return d+1|0}function nq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+16|0;d=c[f>>2]|0;a=c[c[d+272>>2]>>2]|0;if(a){e=0;do{if((a|0)!=(b|0)){nq(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0,a);d=c[f>>2]|0}e=e+1|0;a=c[(c[d+272>>2]|0)+(e<<2)>>2]|0}while((a|0)!=0)}a=c[c[d+264>>2]>>2]|0;if(a){e=0;do{if((a|0)!=(b|0)){nq(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0,a);d=c[f>>2]|0}e=e+1|0;a=c[(c[d+264>>2]|0)+(e<<2)>>2]|0}while((a|0)!=0)}if(b){a=c[b>>2]&3;e=c[((a|0)==3?b:b+48|0)+40>>2]|0;d=c[e+16>>2]|0;if((c[d+280>>2]|0)==(b|0))i=1;else{e=c[((a|0)==2?b:b+-48|0)+40>>2]|0;d=c[e+16>>2]|0;i=-1}h=c[d+180>>2]|0;a=c[h>>2]|0;if(!a)a=0;else{f=a;g=0;a=0;do{a=(uq(f,e,i)|0)+a|0;g=g+1|0;f=c[h+(g<<2)>>2]|0}while((f|0)!=0)}g=c[d+172>>2]|0;d=c[g>>2]|0;if(d){f=0;do{a=(uq(d,e,i)|0)+a|0;f=f+1|0;d=c[g+(f<<2)>>2]|0}while((d|0)!=0)}c[(c[b+16>>2]|0)+160>>2]=a}return}function oq(a){a=a|0;var b=0,d=0;b=c[a>>2]&3;d=c[((b|0)==3?a:a+48|0)+40>>2]|0;a=c[((b|0)==2?a:a+-48|0)+40>>2]|0;b=(c[(c[d+16>>2]|0)+288>>2]|0)<(c[(c[a+16>>2]|0)+288>>2]|0);a=b?d:a;c[13523]=0;c[13524]=2147483647;d=c[a+16>>2]|0;c[13525]=c[d+284>>2];c[13526]=c[d+288>>2];if(b)tq(a);else sq(a);return c[13523]|0}function pq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+16|0;a=c[f>>2]|0;d=a+232|0;c[d>>2]=(c[d>>2]|0)-b;d=c[c[a+272>>2]>>2]|0;if(d){e=0;do{if((d|0)!=(c[a+280>>2]|0)){pq(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0,b);a=c[f>>2]|0}e=e+1|0;d=c[(c[a+272>>2]|0)+(e<<2)>>2]|0}while((d|0)!=0)}d=c[c[a+264>>2]>>2]|0;if(d){e=0;do{if((d|0)!=(c[a+280>>2]|0)){pq(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0,b);a=c[f>>2]|0}e=e+1|0;d=c[(c[a+264>>2]|0)+(e<<2)>>2]|0}while((d|0)!=0)}return}function qq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=(e|0)==0&1;h=0-d|0;f=c[(c[b+16>>2]|0)+288>>2]|0;while(1){b=c[a+16>>2]|0;if((c[b+284>>2]|0)<=(f|0)?(f|0)<=(c[b+288>>2]|0):0)break;b=c[b+280>>2]|0;i=b+48|0;j=(c[b+16>>2]|0)+160|0;c[j>>2]=((((a|0)==(c[((c[b>>2]&3|0)==3?b:i)+40>>2]|0)?e:g)|0)==0?h:d)+(c[j>>2]|0);j=c[b>>2]&3;i=c[((j|0)==3?b:i)+40>>2]|0;b=c[((j|0)==2?b:b+-48|0)+40>>2]|0;a=(c[(c[i+16>>2]|0)+288>>2]|0)>(c[(c[b+16>>2]|0)+288>>2]|0)?i:b}return a|0}function rq(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0;c[13522]=2147483647;c[13521]=-2147483647;f=(c[(c[13473]|0)+16>>2]|0)+192|0;e=c[f>>2]|0;if(e){b=2147483647;d=-2147483647;do{e=c[e+16>>2]|0;if(!(a[e+156>>0]|0)){h=e+232|0;i=c[h>>2]|0;b=(b|0)<(i|0)?b:i;c[13522]=b;h=c[h>>2]|0;d=(d|0)>(h|0)?d:h;c[13521]=d}e=c[e+164>>2]|0}while((e|0)!=0);if(b){e=c[f>>2]|0;if(!e)g=9;else{d=e;do{i=c[d+16>>2]|0;h=i+232|0;c[h>>2]=(c[h>>2]|0)-b;d=c[i+164>>2]|0;b=c[13522]|0}while((d|0)!=0);d=c[13521]|0;g=9}}}else{b=2147483647;d=-2147483647;g=9}if((g|0)==9){c[13521]=d-b;c[13522]=0}return}function sq(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0;i=a+16|0;b=c[i>>2]|0;a=c[c[b+180>>2]>>2]|0;if(a){g=0;do{f=c[a+16>>2]|0;if((c[f+164>>2]|0)<0){b=c[a>>2]&3;d=c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;j=c[d+288>>2]|0;if((c[13525]|0)>(j|0)|(j|0)>(c[13526]|0)?(h=(c[d+232>>2]|0)-(c[(c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(e[f+170>>1]|0)|0,(h|0)<(c[13524]|0)|(c[13523]|0)==0):0){c[13523]=a;c[13524]=h}}else{a=c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0;if((c[(c[a+16>>2]|0)+288>>2]|0)<(c[b+288>>2]|0))sq(a)}g=g+1|0;b=c[i>>2]|0;a=c[(c[b+180>>2]|0)+(g<<2)>>2]|0}while((a|0)!=0)}d=c[c[b+264>>2]>>2]|0;a=c[13524]|0;if((d|0)!=0&(a|0)>0){f=0;do{d=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((c[(c[d+16>>2]|0)+288>>2]|0)<(c[b+288>>2]|0)){sq(d);a=c[13524]|0;b=c[i>>2]|0}f=f+1|0;d=c[(c[b+264>>2]|0)+(f<<2)>>2]|0}while((d|0)!=0&(a|0)>0)}return}function tq(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,i=0,j=0;i=a+16|0;b=c[i>>2]|0;a=c[c[b+172>>2]>>2]|0;if(a){g=0;do{f=c[a+16>>2]|0;if((c[f+164>>2]|0)<0){b=c[a>>2]&3;d=c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;j=c[d+288>>2]|0;if((c[13525]|0)>(j|0)|(j|0)>(c[13526]|0)?(h=(c[(c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[d+232>>2]|0)-(e[f+170>>1]|0)|0,(h|0)<(c[13524]|0)|(c[13523]|0)==0):0){c[13523]=a;c[13524]=h}}else{a=c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0;if((c[(c[a+16>>2]|0)+288>>2]|0)<(c[b+288>>2]|0))tq(a)}g=g+1|0;b=c[i>>2]|0;a=c[(c[b+172>>2]|0)+(g<<2)>>2]|0}while((a|0)!=0)}d=c[c[b+272>>2]>>2]|0;a=c[13524]|0;if((d|0)!=0&(a|0)>0){f=0;do{d=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;if((c[(c[d+16>>2]|0)+288>>2]|0)<(c[b+288>>2]|0)){tq(d);a=c[13524]|0;b=c[i>>2]|0}f=f+1|0;d=c[(c[b+272>>2]|0)+(f<<2)>>2]|0}while((d|0)!=0&(a|0)>0)}return}function uq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=c[a>>2]&3;i=(h|0)==3?a:a+48|0;e=c[i+40>>2]|0;if((e|0)==(b|0))e=c[((h|0)==2?a:a+-48|0)+40>>2]|0;g=c[b+16>>2]|0;f=c[(c[e+16>>2]|0)+288>>2]|0;if((c[g+284>>2]|0)<=(f|0)?(f|0)<=(c[g+288>>2]|0):0){e=c[a+16>>2]|0;if((c[e+164>>2]|0)>-1)f=c[e+160>>2]|0;else f=0;g=1;e=f-(c[e+156>>2]|0)|0}else{g=0;e=c[(c[a+16>>2]|0)+156>>2]|0}b=(c[((d|0)>0?((h|0)==2?a:a+-48|0):i)+40>>2]|0)==(b|0)?1:-1;return (((g?b:0-b|0)|0)<0?0-e|0:e)|0}function vq(a){a=+a;return +((c[13364]|0)==0?a:+h[4213]-a)}function wq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=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.0,v=0.0,w=0.0;t=i;i=i+1088|0;q=t+40|0;s=t+32|0;m=t+24|0;n=t+16|0;l=t+8|0;k=t;r=t+56|0;j=c[(c[(c[d+64>>2]|0)+8>>2]|0)+4>>2]|0;c[13527]=j;g=c[d+16>>2]|0;if(c[13364]|0){u=+h[g+40>>3]+ +h[g+24>>3];h[4213]=u;h[4214]=u/72.0}v=+h[g+32>>3];u=+h[g+40>>3];w=+h[b+352>>3];Lb[j&63](e,126220)|0;h[k>>3]=w;Oz(r,126227,k)|0;Lb[c[54108>>2]&63](e,r)|0;Lb[c[54108>>2]&63](e,126232)|0;h[l>>3]=v/72.0;Oz(r,126227,l)|0;Lb[c[54108>>2]&63](e,r)|0;Lb[c[54108>>2]&63](e,126232)|0;h[q>>3]=u/72.0;Oz(r,126227,q)|0;Lb[c[54108>>2]&63](e,r)|0;a[126234]=10;Lb[c[54108>>2]&63](e,126234)|0;g=Rk(d)|0;if(g)do{j=g+16|0;if(!(a[(c[j>>2]|0)+118>>0]|0)){p=nm(ok(g)|0)|0;Lb[c[54108>>2]&63](e,126236)|0;Lb[c[54108>>2]&63](e,p)|0;p=(c[j>>2]|0)+16|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];zq(e,q);if(!(a[(c[(c[j>>2]|0)+104>>2]|0)+82>>0]|0)){o=gl(g)|0;p=Il(o,c[c[(c[j>>2]|0)+104>>2]>>2]|0)|0;b=nm(p)|0;Kl(o,p)|0}else b=nm(Aj(g,c[13393]|0)|0)|0;w=+h[(c[j>>2]|0)+32>>3];Lb[c[54108>>2]&63](e,126232)|0;h[n>>3]=w;Oz(r,126227,n)|0;Lb[c[54108>>2]&63](e,r)|0;w=+h[(c[j>>2]|0)+40>>3];Lb[c[54108>>2]&63](e,126232)|0;h[m>>3]=w;Oz(r,126227,m)|0;Lb[c[54108>>2]&63](e,r)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,b)|0;p=Js(g,c[13396]|0,134426)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,p)|0;j=c[c[(c[j>>2]|0)+8>>2]>>2]|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,j)|0;j=Js(g,c[13379]|0,160746)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,j)|0;j=Js(g,c[13380]|0,164137)|0;if(!(a[j>>0]|0))j=Js(g,c[13379]|0,158256)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,j)|0;a[126234]=10;Lb[c[54108>>2]&63](e,126234)|0}g=Sk(d,g)|0}while((g|0)!=0);g=Rk(d)|0;if(g){p=f<<24>>24==0;do{j=Lj(d,g)|0;if(j)do{if(p){n=164137;f=164137}else{f=zj(j,134905)|0;n=zj(j,134914)|0;n=(n|0)!=0?n:164137;f=(f|0)!=0?f:164137}o=j+16|0;b=c[o>>2]|0;k=c[b+8>>2]|0;if(k){m=c[k+4>>2]|0;if((m|0)>0){k=c[k>>2]|0;l=0;b=0;do{b=(c[k+(l*48|0)+4>>2]|0)+b|0;l=l+1|0}while((l|0)<(m|0))}else b=0;Lb[c[54108>>2]&63](e,134900)|0;Aq(e,c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0,f);Aq(e,c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0,n);Lb[c[54108>>2]&63](e,126232)|0;c[s>>2]=b;Oz(r,160852,s)|0;Lb[c[54108>>2]&63](e,r)|0;b=c[o>>2]|0;k=c[b+8>>2]|0;if((c[k+4>>2]|0)>0){m=0;do{l=c[k>>2]|0;k=c[l+(m*48|0)>>2]|0;l=c[l+(m*48|0)+4>>2]|0;if((l|0)>0){b=0;do{f=k+(b<<4)|0;c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];zq(e,q);b=b+1|0}while((b|0)!=(l|0));b=c[o>>2]|0}m=m+1|0;k=c[b+8>>2]|0}while((m|0)<(c[k+4>>2]|0))}}if(c[b+96>>2]|0){m=gl(c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)|0;n=Il(m,c[c[(c[o>>2]|0)+96>>2]>>2]|0)|0;f=nm(n)|0;Kl(m,n)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,f)|0;o=(c[(c[o>>2]|0)+96>>2]|0)+56|0;c[q>>2]=c[o>>2];c[q+4>>2]=c[o+4>>2];c[q+8>>2]=c[o+8>>2];c[q+12>>2]=c[o+12>>2];zq(e,q)}o=Js(j,c[13431]|0,134426)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,o)|0;o=Js(j,c[13415]|0,160746)|0;Lb[c[54108>>2]&63](e,126232)|0;Lb[c[54108>>2]&63](e,o)|0;a[126234]=10;Lb[c[54108>>2]&63](e,126234)|0;j=Nj(d,j)|0}while((j|0)!=0);g=Sk(d,g)|0}while((g|0)!=0)}Lb[c[54108>>2]&63](e,126242)|0;i=t;return}function xq(d,f,g){d=d|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.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,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;_=i;i=i+2288|0;W=_+208|0;V=_+192|0;U=_+176|0;T=_+160|0;S=_+144|0;P=_+128|0;N=_+112|0;M=_+96|0;L=_+80|0;K=_+64|0;J=_+56|0;I=_+48|0;X=_+32|0;O=_+24|0;H=_;G=_+1264|0;Z=_+224|0;Y=d+16|0;F=(e[(c[Y>>2]|0)+178>>1]|0)>2;ep(1);if(c[13364]|0){C=c[Y>>2]|0;r=+h[C+40>>3]+ +h[C+24>>3];h[4213]=r;h[4214]=r/72.0}gj(Z,1024,_+240|0);et(d,1,126248,164137)|0;et(d,1,126252,164137)|0;c[13377]=et(d,1,134580,164137)|0;c[13376]=et(d,1,134586,164137)|0;et(d,2,126248,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0;if(j&16){et(d,1,126258,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(j&1){et(d,2,126262,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(j&32){et(d,2,126258,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(j&2){et(d,2,126265,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(j&4){et(d,2,126273,164137)|0;j=a[(c[Y>>2]|0)+113>>0]|0}if(!(j&8)){A=0;B=0;C=0}else{B=et(d,0,126262,164137)|0;C=et(d,0,126281,164137)|0;A=et(d,0,126288,164137)|0}z=et(d,0,126296,164137)|0;j=Rk(d)|0;if(!j){k=0;j=0}else{x=Z+4|0;y=Z+8|0;k=0;w=j;j=0;do{v=w+16|0;l=c[v>>2]|0;n=+h[l+16>>3];o=+h[l+24>>3];o=(c[13364]|0)!=0?+h[4213]-o:o;if(F){r=+h[(c[l+132>>2]|0)+16>>3]*72.0;h[H>>3]=n;h[H+8>>3]=o;h[H+16>>3]=r;Oz(G,126299,H)|0;jj(Z,G)|0;if((e[(c[Y>>2]|0)+178>>1]|0)>3){l=3;do{h[O>>3]=+h[(c[(c[v>>2]|0)+132>>2]|0)+(l<<3)>>3]*72.0;Oz(G,126314,O)|0;jj(Z,G)|0;l=l+1|0}while((l|0)<(e[(c[Y>>2]|0)+178>>1]|0))}l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}a[l>>0]=0;u=c[Z>>2]|0;c[x>>2]=u;Bj(w,126248,u)|0;u=w}else{h[X>>3]=n;h[X+8>>3]=o;Oz(G,126320,X)|0;Bj(w,126248,G)|0;u=w}h[I>>3]=+h[(c[v>>2]|0)+80>>3]/72.0;Oz(G,126227,I)|0;Cj(u,c[13376]|0,G)|0;l=c[v>>2]|0;h[J>>3]=(+h[l+88>>3]+ +h[l+96>>3])/72.0;Oz(G,126227,J)|0;Cj(u,c[13377]|0,G)|0;l=c[v>>2]|0;m=c[l+108>>2]|0;if((m|0)!=0?(a[m+81>>0]|0)!=0:0){r=+h[m+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[K>>3]=+h[m+56>>3];h[K+8>>3]=r;Oz(G,126320,K)|0;Bj(u,126258,G)|0;l=c[v>>2]|0}if(lA(c[c[l+8>>2]>>2]|0,129660)|0){if((c[13409]|0)!=0?(lr(w)|0)<<24>>24!=0:0){m=c[(c[v>>2]|0)+12>>2]|0;t=m+8|0;l=c[t>>2]|0;if((l|0)<3){l=zj(u,126330)|0;if(!l)l=8;else{l=Yz(l)|0;l=(l|0)<3?8:l}}p=m+44|0;r=+(l|0);s=0;do{if((s|0)>0){m=c[x>>2]|0;if(m>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;m=c[x>>2]|0}c[x>>2]=m+1;a[m>>0]=32}if((c[t>>2]|0)>2){m=c[p>>2]|0;n=+h[m+(s<<4)+8>>3];if(!(c[13364]|0))n=n/72.0;else n=+h[4214]-n/72.0;h[L>>3]=+h[m+(s<<4)>>3]/72.0;h[L+8>>3]=n;Oz(G,126343,L)|0}else{m=c[v>>2]|0;n=+(s|0)/r*3.141592653589793*2.0;q=+h[m+32>>3]*.5*+Q(+n);o=+h[m+40>>3];if(!(c[13364]|0))n=o*.5*+R(+n);else n=+h[4214]-o*.5*+R(+n);h[M>>3]=q;h[M+8>>3]=n;Oz(G,126343,M)|0}jj(Z,G)|0;s=s+1|0}while((s|0)!=(l|0));m=c[13409]|0;l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}a[l>>0]=0;v=c[Z>>2]|0;c[x>>2]=v;Cj(u,m,v)|0}}else{Bq(w,c[l+12>>2]|0,Z);lj(Z)|0;l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}a[l>>0]=0;v=c[Z>>2]|0;c[x>>2]=v;Bj(u,126252,v)|0}if((c[13362]|0)>0?(D=Lj(d,w)|0,(D|0)!=0):0){u=D;do{t=u+16|0;l=c[t>>2]|0;do if((a[l+112>>0]|0)!=6?(E=c[l+8>>2]|0,(E|0)!=0):0){if((c[E+4>>2]|0)>0){s=0;do{if((s|0)>0){l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}c[x>>2]=l+1;a[l>>0]=59;l=c[t>>2]|0}p=c[l+8>>2]|0;m=c[p>>2]|0;if(c[m+(s*48|0)+8>>2]|0){r=+h[m+(s*48|0)+24>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[N>>3]=+h[m+(s*48|0)+16>>3];h[N+8>>3]=r;Oz(G,126353,N)|0;jj(Z,G)|0;l=c[t>>2]|0;p=c[l+8>>2]|0;m=c[p>>2]|0;j=1}if(c[m+(s*48|0)+12>>2]|0){r=+h[m+(s*48|0)+40>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[P>>3]=+h[m+(s*48|0)+32>>3];h[P+8>>3]=r;Oz(G,126366,P)|0;jj(Z,G)|0;l=c[t>>2]|0;p=c[l+8>>2]|0;m=c[p>>2]|0;k=1}if((c[m+(s*48|0)+4>>2]|0)>0){p=0;do{if((p|0)>0){l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}c[x>>2]=l+1;a[l>>0]=32;l=c[t>>2]|0}l=c[(c[c[l+8>>2]>>2]|0)+(s*48|0)>>2]|0;r=+h[l+(p<<4)+8>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[S>>3]=+h[l+(p<<4)>>3];h[S+8>>3]=r;Oz(G,126320,S)|0;jj(Z,G)|0;p=p+1|0;l=c[t>>2]|0;m=c[l+8>>2]|0}while((p|0)<(c[(c[m>>2]|0)+(s*48|0)+4>>2]|0))}else m=p;s=s+1|0}while((s|0)<(c[m+4>>2]|0))}l=c[x>>2]|0;if(l>>>0>=(c[y>>2]|0)>>>0){hj(Z,1)|0;l=c[x>>2]|0}a[l>>0]=0;l=c[Z>>2]|0;c[x>>2]=l;Bj(u,126248,l)|0;l=c[t>>2]|0;m=c[l+96>>2]|0;if(m){r=+h[m+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[T>>3]=+h[m+56>>3];h[T+8>>3]=r;Oz(G,126320,T)|0;Bj(u,126262,G)|0;l=c[t>>2]|0}m=c[l+108>>2]|0;do if(m){if(!(a[m+81>>0]|0))break;r=+h[m+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[U>>3]=+h[m+56>>3];h[U+8>>3]=r;Oz(G,126320,U)|0;Bj(u,126258,G)|0;l=c[t>>2]|0}while(0);m=c[l+100>>2]|0;if(m){r=+h[m+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[V>>3]=+h[m+56>>3];h[V+8>>3]=r;Oz(G,126320,V)|0;Bj(u,126265,G)|0;l=c[t>>2]|0}l=c[l+104>>2]|0;if(!l)break;r=+h[l+64>>3];r=(c[13364]|0)==0?r:+h[4213]-r;h[W>>3]=+h[l+56>>3];h[W+8>>3]=r;Oz(G,126320,W)|0;Bj(u,126273,G)|0}while(0);u=Nj(d,u)|0}while((u|0)!=0)}w=Sk(d,w)|0}while((w|0)!=0)}Cq(d,z,B,C,A);kj(Z);if(b[(c[Y>>2]|0)+136>>1]&1)ct(d);c[f>>2]=j;c[g>>2]=k;ep(0);i=_;return}function yq(a){a=a|0;var b=0;b=i;i=i+16|0;xq(a,b,b+4|0);i=b;return}function zq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,j=0;d=i;i=i+1040|0;f=d+8|0;j=d;e=d+16|0;g=+h[b>>3]/72.0;Lb[c[54108>>2]&63](a,126232)|0;h[j>>3]=g;Oz(e,126227,j)|0;Lb[c[54108>>2]&63](a,e)|0;g=+h[b+8>>3];g=((c[13364]|0)==0?g:+h[4213]-g)/72.0;Lb[c[54108>>2]&63](a,126232)|0;h[f>>3]=g;Oz(e,126227,f)|0;Lb[c[54108>>2]&63](a,e)|0;i=d;return}function Aq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(!(a[(c[d+16>>2]|0)+118>>0]|0))d=nm(ok(d)|0)|0;else{g=gl(d)|0;f=Il(g,(jA(ok(d)|0,58)|0)+1|0)|0;d=nm(f)|0;Kl(g,f)|0}Lb[c[54108>>2]&63](b,126232)|0;Lb[c[54108>>2]&63](b,d)|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){g=nm(e)|0;Lb[c[54108>>2]&63](b,133477)|0;Lb[c[54108>>2]&63](b,g)|0}return}function Bq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0;o=i;i=i+1056|0;m=o;f=o+32|0;n=b+48|0;e=c[n>>2]|0;if(!e){e=c[a+16>>2]|0;l=+h[e+16>>3];g=+h[b+24>>3];j=+h[e+24>>3];if(!(c[13364]|0)){k=g+j;g=+h[b+40>>3]+j}else{p=+h[4213];k=p-(g+j);g=p-(+h[b+40>>3]+j)}p=+h[b+32>>3]+l;h[m>>3]=+h[b+16>>3]+l;h[m+8>>3]=k;h[m+16>>3]=p;h[m+24>>3]=g;Oz(f,126404,m)|0;jj(d,f)|0;e=c[n>>2]|0}if((e|0)>0){e=b+56|0;f=0;do{Bq(a,c[(c[e>>2]|0)+(f<<2)>>2]|0,d);f=f+1|0}while((f|0)<(c[n>>2]|0))}i=o;return}function Cq(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=i;i=i+1088|0;o=s+56|0;q=s+48|0;p=s+32|0;k=s;n=s+64|0;r=b+16|0;j=c[r>>2]|0;l=+h[j+24>>3];if(!(c[13364]|0))m=+h[j+40>>3];else{m=+h[4213];l=m-l;m=m-+h[j+40>>3]}t=+h[j+32>>3];h[k>>3]=+h[j+16>>3];h[k+8>>3]=l;h[k+16>>3]=t;h[k+24>>3]=m;Oz(n,126379,k)|0;Cj(b,d,n)|0;j=c[r>>2]|0;k=c[j+12>>2]|0;if((k|0)!=0?(a[c[k>>2]>>0]|0)!=0:0){t=+h[k+64>>3];t=(c[13364]|0)==0?t:+h[4213]-t;h[p>>3]=+h[k+56>>3];h[p+8>>3]=t;Oz(n,126320,p)|0;Cj(b,e,n)|0;j=c[(c[r>>2]|0)+12>>2]|0;t=+h[j+32>>3];h[q>>3]=+h[j+24>>3]/72.0;Oz(n,126399,q)|0;Cj(b,f,n)|0;h[o>>3]=t/72.0;Oz(n,126399,o)|0;Cj(b,g,n)|0;j=c[r>>2]|0}if((c[j+180>>2]|0)>=1){k=1;while(1){Cq(c[(c[j+184>>2]|0)+(k<<2)>>2]|0,d,e,f,g);j=c[r>>2]|0;if((k|0)>=(c[j+180>>2]|0))break;else k=k+1|0}}i=s;return}function Dq(){return Vi(54112,c[12573]|0)|0}function Eq(a){a=a|0;Pi(a)|0;return}function Fq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b;f=c[e>>2]|0;e=c[e+4>>2]|0;b=$p(16)|0;d=b+8|0;c[d>>2]=f;c[d+4>>2]=e;if((ub[c[a>>2]&31](a,b,1)|0)!=(b|0))pB(b);return}function Gq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=$p(16)|0;f=e+8|0;c[f>>2]=b;c[f+4>>2]=d;if((ub[c[a>>2]&31](a,e,1)|0)!=(e|0))pB(e);return}function Hq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d;g=b;f=c[g+4>>2]|0;b=e+8|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;b=(ub[c[a>>2]&31](a,e,4)|0)!=0&1;i=d;return b|0}function Iq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f+8>>2]=b;c[f+12>>2]=d;d=(ub[c[a>>2]&31](a,f,4)|0)!=0&1;i=e;return d|0}function Jq(a){a=a|0;return Xi(a)|0}function Kq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=$p((Xi(a)|0)<<3)|0;a=Ti(a)|0;if(a){b=d;while(1){g=a+8|0;f=c[g+4>>2]|0;e=b;c[e>>2]=c[g>>2];c[e+4>>2]=f;a=c[a>>2]|0;if(!a)break;else b=b+8|0}}return d|0}function Lq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b>>2]|0;e=c[d>>2]|0;if((a|0)<=(e|0))if((a|0)>=(e|0)){e=c[b+4>>2]|0;a=c[d+4>>2]|0;if((e|0)>(a|0))a=1;else a=((e|0)<(a|0))<<31>>31}else a=-1;else a=1;return a|0}function Mq(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function Nq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+128|0;n=s+112|0;o=s+48|0;p=s;g=s+80|0;e=s+64|0;f=s+32|0;q=s+16|0;r=b+16|0;b=c[r>>2]|0;m=+h[b+16>>3];j=+h[b+24>>3];k=+h[b+32>>3];l=+h[b+40>>3];if((d+-1|0)>>>0<2){h[p>>3]=m;f=p+8|0;h[f>>3]=l;b=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,b);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];h[f>>3]=+h[f>>3]-+h[4216];c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];f=g+16|0;h[p>>3]=k;b=p+8|0;h[b>>3]=j;t=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,t);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];h[b>>3]=+h[b>>3]-+h[4216];c[e>>2]=c[p>>2];c[e+4>>2]=c[p+4>>2];c[e+8>>2]=c[p+8>>2];c[e+12>>2]=c[p+12>>2];c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2]}else{h[p>>3]=m;t=p+8|0;h[t>>3]=j;e=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,e);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];h[t>>3]=+h[t>>3]-+h[4216];c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];t=g+16|0;h[p>>3]=k;e=p+8|0;h[e>>3]=l;b=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,b);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];h[e>>3]=+h[e>>3]-+h[4216];c[f>>2]=c[p>>2];c[f+4>>2]=c[p+4>>2];c[f+8>>2]=c[p+8>>2];c[f+12>>2]=c[p+12>>2];c[t>>2]=c[f>>2];c[t+4>>2]=c[f+4>>2];c[t+8>>2]=c[f+8>>2];c[t+12>>2]=c[f+12>>2]}b=(c[r>>2]|0)+16|0;c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];c[b+8>>2]=c[g+8>>2];c[b+12>>2]=c[g+12>>2];c[b+16>>2]=c[g+16>>2];c[b+20>>2]=c[g+20>>2];c[b+24>>2]=c[g+24>>2];c[b+28>>2]=c[g+28>>2];b=c[r>>2]|0;e=c[b+12>>2]|0;if(e){b=e+56|0;e=p;f=b;g=e+16|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));t=(c[13537]|0)*90|0;c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];c[n+8>>2]=c[p+8>>2];c[n+12>>2]=c[p+12>>2];Hp(o,n,t);c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[p+8>>2]=c[o+8>>2];c[p+12>>2]=c[o+12>>2];h[p>>3]=+h[p>>3]-+h[4215];t=p+8|0;h[t>>3]=+h[t>>3]-+h[4216];c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];c[b>>2]=c[q>>2];c[b+4>>2]=c[q+4>>2];c[b+8>>2]=c[q+8>>2];c[b+12>>2]=c[q+12>>2];b=c[r>>2]|0}if((c[b+180>>2]|0)>=1){e=1;while(1){Nq(c[(c[b+184>>2]|0)+(e<<2)>>2]|0,d);b=c[r>>2]|0;if((e|0)>=(c[b+180>>2]|0))break;else e=e+1|0}}i=s;return}function Oq(b,f){b=b|0;f=f|0;var g=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.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.0,ga=0.0,ha=0.0;ea=i;i=i+1568|0;aa=ea+536|0;da=ea+488|0;ca=ea+456|0;$=ea+448|0;O=ea+440|0;N=ea+432|0;M=ea+376|0;K=ea+328|0;F=ea+280|0;B=ea+272|0;A=ea+264|0;z=ea+256|0;y=ea+248|0;P=ea+208|0;Q=ea+192|0;S=ea+176|0;T=ea+160|0;U=ea+144|0;V=ea+104|0;W=ea+64|0;Y=ea+48|0;Z=ea+32|0;_=ea+16|0;R=ea;ba=b+16|0;I=(c[ba>>2]|0)+116|0;c[13537]=c[I>>2]&3;I=c[I>>2]&1;a[126425]=I;if(!(I<<24>>24))Pq(b);else Rq(b);I=c[ba>>2]|0;v=e[I+136>>1]&14;I=d[I+113>>0]|0;if(!((I&54|0)==0?(I&1|0)==0|(c[13363]|0)!=0:0)){k=Rk(b)|0;if(!k){m=0;k=0;l=0}else{u=(v|0)==0;n=0;r=0;l=0;while(1){m=c[(c[k+16>>2]|0)+108>>2]|0;do if(m)if(!(a[m+81>>0]|0)){t=r+1|0;break}else{t=r;l=l+1|0;break}else t=r;while(0);m=Lj(b,k)|0;if(!m)m=n;else{do{s=c[m+16>>2]|0;r=c[s+108>>2]|0;do if(r){if(a[r+81>>0]|0){l=l+1|0;break}if(!u)n=((c[s+8>>2]|0)!=0&1)+n|0}while(0);r=c[s+100>>2]|0;do if(r){if(a[r+81>>0]|0){l=l+1|0;break}if(!u)n=((c[s+8>>2]|0)!=0&1)+n|0}while(0);r=c[s+104>>2]|0;do if(r){if(a[r+81>>0]|0){l=l+1|0;break}if(!u)n=((c[s+8>>2]|0)!=0&1)+n|0}while(0);r=c[s+96>>2]|0;do if(r){if(a[r+81>>0]|0){l=l+1|0;break}if(!u)n=((c[s+8>>2]|0)!=0&1)+n|0}while(0);m=Nj(b,m)|0}while((m|0)!=0);m=n}k=Sk(b,k)|0;if(!k){k=t;break}else{n=m;r=t}}}if(!(a[(c[ba>>2]|0)+113>>0]&8))w=0;else w=Sq(b)|0;E=k+m|0;if(E){x=m+l+w+(ek(b)|0)|0;C=$p(x*40|0)|0;D=$p(E*40|0)|0;k=Rk(b)|0;if(!k){p=2147483647.0;g=-2147483647.0;o=-2147483647.0;j=2147483647.0;k=C}else{v=(v|0)==0;p=2147483647.0;j=2147483647.0;o=-2147483647.0;g=-2147483647.0;u=k;k=C;n=D;while(1){m=(a[126425]|0)==0;l=u+16|0;I=c[l>>2]|0;H=I+32|0;I=I+40|0;ga=+h[(m?I:H)>>3]*72.0;ha=+h[(m?H:I)>>3]*72.0;h[k+16>>3]=ha;h[k+24>>3]=ga;I=(c[l>>2]|0)+16|0;c[k>>2]=c[I>>2];c[k+4>>2]=c[I+4>>2];c[k+8>>2]=c[I+8>>2];c[k+12>>2]=c[I+12>>2];fa=+h[k>>3]-ha*.5;h[k>>3]=fa;I=k+8|0;q=+h[I>>3]-ga*.5;h[I>>3]=q;p=p<fa?p:fa;j=j<q?j:q;fa=ha+fa;q=ga+q;o=o>fa?o:fa;g=g>q?g:q;l=c[(c[l>>2]|0)+108>>2]|0;do if(l){if(a[l+81>>0]|0){I=k+40|0;fa=+h[l+24>>3];q=+h[l+32>>3];ga=m?fa:q;fa=m?q:fa;h[k+56>>3]=ga;h[k+64>>3]=fa;H=l+56|0;c[I>>2]=c[H>>2];c[I+4>>2]=c[H+4>>2];c[I+8>>2]=c[H+8>>2];c[I+12>>2]=c[H+12>>2];q=+h[I>>3]-ga*.5;h[I>>3]=q;k=k+48|0;ha=+h[k>>3]-fa*.5;h[k>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;k=I;break}if(m){I=l+24|0;c[n>>2]=c[I>>2];c[n+4>>2]=c[I+4>>2];c[n+8>>2]=c[I+8>>2];c[n+12>>2]=c[I+12>>2]}else{h[n>>3]=+h[l+32>>3];h[n+8>>3]=+h[l+24>>3]}c[n+32>>2]=l;a[n+36>>0]=0;c[k+32>>2]=n;n=n+40|0}while(0);k=k+40|0;l=Lj(b,u)|0;if(!l)l=n;else{t=l;while(1){s=t+16|0;m=c[s>>2]|0;l=c[m+96>>2]|0;a:do if(!l){r=n;J=59}else{do if(!(a[l+81>>0]|0)){if(!v?(c[m+8>>2]|0)!=0:0){is(Q,b,t);c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];J=k+16|0;c[J>>2]=0;c[J+4>>2]=0;c[J+8>>2]=0;c[J+12>>2]=0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];if(!(a[126425]|0)){J=l+24|0;c[n>>2]=c[J>>2];c[n+4>>2]=c[J+4>>2];c[n+8>>2]=c[J+8>>2];c[n+12>>2]=c[J+12>>2]}else{h[n>>3]=+h[l+32>>3];h[n+8>>3]=+h[l+24>>3]}c[n+32>>2]=l;a[n+36>>0]=0;c[k+32>>2]=n;l=n+40|0;break}c[y>>2]=c[l>>2];dj(0,126426,y)|0;l=n;break a}else{J=(a[126425]|0)==0;fa=+h[l+24>>3];q=+h[l+32>>3];ga=J?fa:q;fa=J?q:fa;h[k+16>>3]=ga;h[k+24>>3]=fa;l=l+56|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=+h[k>>3]-ga*.5;h[k>>3]=q;l=k+8|0;ha=+h[l>>3]-fa*.5;h[l>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;l=n}while(0);m=c[s>>2]|0;k=k+40|0;r=l;J=59}while(0);b:do if((J|0)==59){J=0;n=c[m+104>>2]|0;if(n){c:do if(!(a[n+81>>0]|0)){do if(!v){if(!(c[m+8>>2]|0))break;l=ks(t)|0;do if(l){l=c[l>>2]|0;if(!(c[l+8>>2]|0)){I=c[l>>2]|0;c[S>>2]=c[I>>2];c[S+4>>2]=c[I+4>>2];c[S+8>>2]=c[I+8>>2];c[S+12>>2]=c[I+12>>2];break}else{I=l+16|0;c[S>>2]=c[I>>2];c[S+4>>2]=c[I+4>>2];c[S+8>>2]=c[I+8>>2];c[S+12>>2]=c[I+12>>2];break}}else{c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;c[S+12>>2]=0}while(0);c[aa>>2]=c[S>>2];c[aa+4>>2]=c[S+4>>2];c[aa+8>>2]=c[S+8>>2];c[aa+12>>2]=c[S+12>>2];I=k+16|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];if(!(a[126425]|0)){I=n+24|0;c[r>>2]=c[I>>2];c[r+4>>2]=c[I+4>>2];c[r+8>>2]=c[I+8>>2];c[r+12>>2]=c[I+12>>2]}else{h[r>>3]=+h[n+32>>3];h[r+8>>3]=+h[n+24>>3]}c[r+32>>2]=n;a[r+36>>0]=0;c[k+32>>2]=r;l=r+40|0;break c}while(0);c[z>>2]=c[n>>2];dj(0,126461,z)|0;l=r;break b}else{l=(a[126425]|0)==0;fa=+h[n+24>>3];q=+h[n+32>>3];ga=l?fa:q;fa=l?q:fa;h[k+16>>3]=ga;h[k+24>>3]=fa;l=n+56|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=+h[k>>3]-ga*.5;h[k>>3]=q;l=k+8|0;ha=+h[l>>3]-fa*.5;h[l>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;l=r}while(0);m=c[s>>2]|0;k=k+40|0;r=l}n=c[m+100>>2]|0;if(!n)n=r;else{d:do if(!(a[n+81>>0]|0)){do if(!v){if(!(c[m+8>>2]|0))break;l=ks(t)|0;do if(l){m=(c[l+4>>2]|0)+-1|0;l=c[l>>2]|0;if(!(c[l+(m*48|0)+12>>2]|0)){I=(c[l+(m*48|0)>>2]|0)+((c[l+(m*48|0)+4>>2]|0)+-1<<4)|0;c[T>>2]=c[I>>2];c[T+4>>2]=c[I+4>>2];c[T+8>>2]=c[I+8>>2];c[T+12>>2]=c[I+12>>2];break}else{I=l+(m*48|0)+32|0;c[T>>2]=c[I>>2];c[T+4>>2]=c[I+4>>2];c[T+8>>2]=c[I+8>>2];c[T+12>>2]=c[I+12>>2];break}}else{c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;c[T+12>>2]=0}while(0);c[aa>>2]=c[T>>2];c[aa+4>>2]=c[T+4>>2];c[aa+8>>2]=c[T+8>>2];c[aa+12>>2]=c[T+12>>2];I=k+16|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];if(!(a[126425]|0)){I=n+24|0;c[r>>2]=c[I>>2];c[r+4>>2]=c[I+4>>2];c[r+8>>2]=c[I+8>>2];c[r+12>>2]=c[I+12>>2]}else{h[r>>3]=+h[n+32>>3];h[r+8>>3]=+h[n+24>>3]}c[r+32>>2]=n;a[r+36>>0]=0;c[k+32>>2]=r;l=r+40|0;break d}while(0);c[A>>2]=c[n>>2];dj(0,126501,A)|0;l=r;break b}else{l=(a[126425]|0)==0;fa=+h[n+24>>3];q=+h[n+32>>3];ga=l?fa:q;fa=l?q:fa;h[k+16>>3]=ga;h[k+24>>3]=fa;l=n+56|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=+h[k>>3]-ga*.5;h[k>>3]=q;l=k+8|0;ha=+h[l>>3]-fa*.5;h[l>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;l=r}while(0);m=c[s>>2]|0;k=k+40|0;n=l}l=c[m+108>>2]|0;if(!l)l=n;else{e:do if(!(a[l+81>>0]|0)){do if(!v){if(!(c[m+8>>2]|0))break;is(U,b,t);c[aa>>2]=c[U>>2];c[aa+4>>2]=c[U+4>>2];c[aa+8>>2]=c[U+8>>2];c[aa+12>>2]=c[U+12>>2];I=k+16|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;c[k>>2]=c[aa>>2];c[k+4>>2]=c[aa+4>>2];c[k+8>>2]=c[aa+8>>2];c[k+12>>2]=c[aa+12>>2];if(!(a[126425]|0)){I=l+24|0;c[n>>2]=c[I>>2];c[n+4>>2]=c[I+4>>2];c[n+8>>2]=c[I+8>>2];c[n+12>>2]=c[I+12>>2]}else{h[n>>3]=+h[l+32>>3];h[n+8>>3]=+h[l+24>>3]}c[n+32>>2]=l;a[n+36>>0]=0;c[k+32>>2]=n;l=n+40|0;break e}while(0);c[B>>2]=c[l>>2];dj(0,126541,B)|0;l=n;break b}else{I=(a[126425]|0)==0;fa=+h[l+24>>3];q=+h[l+32>>3];ga=I?fa:q;fa=I?q:fa;h[k+16>>3]=ga;h[k+24>>3]=fa;l=l+56|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];q=+h[k>>3]-ga*.5;h[k>>3]=q;l=k+8|0;ha=+h[l>>3]-fa*.5;h[l>>3]=ha;ga=ga+q;fa=fa+ha;p=p<q?p:q;g=g>fa?g:fa;o=o>ga?o:ga;j=j<ha?j:ha;l=n}while(0);k=k+40|0}}while(0);t=Nj(b,t)|0;if(!t)break;else n=l}}u=Sk(b,u)|0;if(!u)break;else n=l}}if(w){h[V>>3]=p;l=V+8|0;h[l>>3]=j;m=V+16|0;h[m>>3]=o;n=V+24|0;h[n>>3]=g;c[V+32>>2]=k;G=aa;H=V;I=G+40|0;do{c[G>>2]=c[H>>2];G=G+4|0;H=H+4|0}while((G|0)<(I|0));Tq(W,b,aa);G=V;H=W;I=G+40|0;do{c[G>>2]=c[H>>2];G=G+4|0;H=H+4|0}while((G|0)<(I|0));p=+h[V>>3];j=+h[l>>3];o=+h[m>>3];g=+h[n>>3]}n=P+32|0;a[n>>0]=Ks(b,rj(b,0,126577,0)|0,1)|0;h[P>>3]=p;m=P+8|0;h[m>>3]=j;l=P+16|0;h[l>>3]=o;k=P+24|0;h[k>>3]=g;Ev(C,x,D,E,P)|0;if((a[124827]|0)!=0?(L=c[22667]|0,I=d[n>>0]|0,q=+h[P>>3],fa=+h[m>>3],ga=+h[l>>3],ha=+h[k>>3],c[F>>2]=x,c[F+4>>2]=E,c[F+8>>2]=I,h[F+16>>3]=q,h[F+24>>3]=fa,h[F+32>>3]=ga,h[F+40>>3]=ha,Bz(L,126589,F)|0,(d[124827]|0)>=2):0){Mz(126649,8,1,L)|0;if((x|0)>0){k=C;n=0;while(1){l=c[k+32>>2]|0;g=+h[k>>3];j=+h[k+8>>3];o=+h[k+16>>3];p=+h[k+24>>3];if(!l)m=164137;else m=c[c[l+32>>2]>>2]|0;c[K>>2]=n;h[K+8>>3]=g;h[K+16>>3]=j;h[K+24>>3]=o;h[K+32>>3]=p;c[K+40>>2]=l;c[K+44>>2]=m;Bz(L,126658,K)|0;n=n+1|0;if((n|0)==(x|0))break;else k=k+40|0}}Mz(126701,8,1,L)|0;if((E|0)>0){k=D;l=0;while(1){J=d[k+36>>0]|0;q=+h[k+16>>3];fa=+h[k+24>>3];ga=+h[k>>3];ha=+h[k+8>>3];K=c[c[k+32>>2]>>2]|0;c[M>>2]=l;c[M+4>>2]=k;c[M+8>>2]=J;h[M+16>>3]=q;h[M+24>>3]=fa;h[M+32>>3]=ga;h[M+40>>3]=ha;c[M+48>>2]=K;Bz(L,126710,M)|0;l=l+1|0;if((l|0)==(E|0)){J=114;break}else k=k+40|0}}else k=0}else J=114;if((J|0)==114)if((E|0)>0){k=0;l=0;m=D;while(1){if(a[m+36>>0]|0){M=c[m+32>>2]|0;a[M+81>>0]=1;ha=+h[m+24>>3]+ +h[m+8>>3]*.5;h[M+56>>3]=+h[m+16>>3]+ +h[m>>3]*.5;h[M+64>>3]=ha;_s(b,M);k=k+1|0}l=l+1|0;if((l|0)==(E|0))break;else m=m+40|0}}else k=0;if(!(a[124827]|0)){if((k|0)!=(E|0)){c[O>>2]=k;c[O+4>>2]=E;dj(0,126791,O)|0}}else{O=c[22667]|0;c[N>>2]=k;c[N+4>>2]=E;Bz(O,126758,N)|0}pB(C);pB(D)}}l=c[ba>>2]|0;n=c[l+12>>2]|0;do if((n|0)!=0?(a[n+81>>0]|0)==0:0){p=+h[n+24>>3]+16.0;q=+h[n+32>>3]+8.0;k=(a[l+275>>0]&1)!=0;if(a[126425]|0){if(k){O=l+32|0;h[O>>3]=q+ +h[O>>3]}else{O=l+16|0;h[O>>3]=+h[O>>3]-q}k=l+40|0;g=+h[k>>3];m=l+24|0;j=+h[m>>3];o=g-j;if(!(p>o))break;ha=(p-o)*.5;h[m>>3]=j-ha;h[k>>3]=ha+g;break}m=(c[13537]|0)==0;do if(k)if(m){O=l+40|0;h[O>>3]=q+ +h[O>>3];break}else{O=l+24|0;h[O>>3]=+h[O>>3]-q;break}else if(m){O=l+24|0;h[O>>3]=+h[O>>3]-q;break}else{O=l+40|0;h[O>>3]=q+ +h[O>>3];break}while(0);k=l+32|0;g=+h[k>>3];m=l+16|0;j=+h[m>>3];o=g-j;if(p>o){ha=(p-o)*.5;h[m>>3]=j-ha;h[k>>3]=ha+g}}else{p=0.0;q=0.0}while(0);if(f){k=c[13537]|0;switch(k|0){case 0:{f=l+16|0;c[8430]=c[f>>2];c[8431]=c[f+4>>2];c[8432]=c[f+8>>2];c[8433]=c[f+12>>2];break}case 1:{ha=+h[l+16>>3];h[4215]=-+h[l+40>>3];h[4216]=ha;break}case 2:{ha=-+h[l+40>>3];h[4215]=+h[l+16>>3];h[4216]=ha;break}case 3:{ha=+h[l+16>>3];h[4215]=+h[l+24>>3];h[4216]=ha;break}default:{}}if(+h[4215]!=0.0|+h[4216]!=0.0|(k|0)!=0){k=Rk(b)|0;if(k){x=Q+8|0;y=Q+8|0;z=Q+8|0;A=Q+8|0;B=Q+8|0;C=Q+8|0;D=Q+8|0;E=Q+8|0;F=Q+8|0;do{if(!(c[13537]|0))n=0;else{qt(k,0);n=c[13537]|0}l=k+16|0;m=(c[l>>2]|0)+16|0;G=Q;H=m;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,n*90|0);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[x>>3]=+h[x>>3]-+h[4216];c[_>>2]=c[Q>>2];c[_+4>>2]=c[Q+4>>2];c[_+8>>2]=c[Q+8>>2];c[_+12>>2]=c[Q+12>>2];c[m>>2]=c[_>>2];c[m+4>>2]=c[_+4>>2];c[m+8>>2]=c[_+8>>2];c[m+12>>2]=c[_+12>>2];l=c[(c[l>>2]|0)+108>>2]|0;if(l){l=l+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[F>>3]=+h[F>>3]-+h[4216];c[R>>2]=c[Q>>2];c[R+4>>2]=c[Q+4>>2];c[R+8>>2]=c[Q+8>>2];c[R+12>>2]=c[Q+12>>2];c[l>>2]=c[R>>2];c[l+4>>2]=c[R+4>>2];c[l+8>>2]=c[R+8>>2];c[l+12>>2]=c[R+12>>2]}if((c[13362]|0)==1?(X=Lj(b,k)|0,(X|0)!=0):0){w=X;do{v=w+16|0;l=c[v>>2]|0;m=c[l+8>>2]|0;do if(!m){if((a[124828]|0)==0?(a[l+112>>0]|0)!=6:0){O=ok(c[((c[w>>2]&3|0)==3?w:w+48|0)+40>>2]|0)|0;f=ok(c[((c[w>>2]&3|0)==2?w:w+-48|0)+40>>2]|0)|0;c[$>>2]=O;c[$+4>>2]=f;dj(1,126833,$)|0}}else{if((c[m+4>>2]|0)>0){u=0;do{t=c[m>>2]|0;l=c[t+(u*48|0)>>2]|0;m=c[t+(u*48|0)+4>>2]|0;n=c[t+(u*48|0)+8>>2]|0;t=c[t+(u*48|0)+12>>2]|0;if((m|0)>0){s=0;do{r=l+(s<<4)|0;G=Q;H=r;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[A>>3]=+h[A>>3]-+h[4216];c[S>>2]=c[Q>>2];c[S+4>>2]=c[Q+4>>2];c[S+8>>2]=c[Q+8>>2];c[S+12>>2]=c[Q+12>>2];c[r>>2]=c[S>>2];c[r+4>>2]=c[S+4>>2];c[r+8>>2]=c[S+8>>2];c[r+12>>2]=c[S+12>>2];s=s+1|0}while((s|0)!=(m|0))}if(n){l=(c[c[(c[v>>2]|0)+8>>2]>>2]|0)+(u*48|0)+16|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[z>>3]=+h[z>>3]-+h[4216];c[T>>2]=c[Q>>2];c[T+4>>2]=c[Q+4>>2];c[T+8>>2]=c[Q+8>>2];c[T+12>>2]=c[Q+12>>2];c[l>>2]=c[T>>2];c[l+4>>2]=c[T+4>>2];c[l+8>>2]=c[T+8>>2];c[l+12>>2]=c[T+12>>2]}if(t){l=(c[c[(c[v>>2]|0)+8>>2]>>2]|0)+(u*48|0)+32|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[y>>3]=+h[y>>3]-+h[4216];c[U>>2]=c[Q>>2];c[U+4>>2]=c[Q+4>>2];c[U+8>>2]=c[Q+8>>2];c[U+12>>2]=c[Q+12>>2];c[l>>2]=c[U>>2];c[l+4>>2]=c[U+4>>2];c[l+8>>2]=c[U+8>>2];c[l+12>>2]=c[U+12>>2]}u=u+1|0;l=c[v>>2]|0;m=c[l+8>>2]|0}while((u|0)<(c[m+4>>2]|0))}m=c[l+96>>2]|0;if(m){l=m+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[E>>3]=+h[E>>3]-+h[4216];c[V>>2]=c[Q>>2];c[V+4>>2]=c[Q+4>>2];c[V+8>>2]=c[Q+8>>2];c[V+12>>2]=c[Q+12>>2];c[l>>2]=c[V>>2];c[l+4>>2]=c[V+4>>2];c[l+8>>2]=c[V+8>>2];c[l+12>>2]=c[V+12>>2];l=c[v>>2]|0}m=c[l+108>>2]|0;if(m){l=m+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[D>>3]=+h[D>>3]-+h[4216];c[W>>2]=c[Q>>2];c[W+4>>2]=c[Q+4>>2];c[W+8>>2]=c[Q+8>>2];c[W+12>>2]=c[Q+12>>2];c[l>>2]=c[W>>2];c[l+4>>2]=c[W+4>>2];c[l+8>>2]=c[W+8>>2];c[l+12>>2]=c[W+12>>2];l=c[v>>2]|0}m=c[l+100>>2]|0;if(m){l=m+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[C>>3]=+h[C>>3]-+h[4216];c[Y>>2]=c[Q>>2];c[Y+4>>2]=c[Q+4>>2];c[Y+8>>2]=c[Q+8>>2];c[Y+12>>2]=c[Q+12>>2];c[l>>2]=c[Y>>2];c[l+4>>2]=c[Y+4>>2];c[l+8>>2]=c[Y+8>>2];c[l+12>>2]=c[Y+12>>2];l=c[v>>2]|0}l=c[l+104>>2]|0;if(!l)break;l=l+56|0;G=Q;H=l;I=G+16|0;do{a[G>>0]=a[H>>0]|0;G=G+1|0;H=H+1|0}while((G|0)<(I|0));f=(c[13537]|0)*90|0;c[aa>>2]=c[Q>>2];c[aa+4>>2]=c[Q+4>>2];c[aa+8>>2]=c[Q+8>>2];c[aa+12>>2]=c[Q+12>>2];Hp(P,aa,f);c[Q>>2]=c[P>>2];c[Q+4>>2]=c[P+4>>2];c[Q+8>>2]=c[P+8>>2];c[Q+12>>2]=c[P+12>>2];h[Q>>3]=+h[Q>>3]-+h[4215];h[B>>3]=+h[B>>3]-+h[4216];c[Z>>2]=c[Q>>2];c[Z+4>>2]=c[Q+4>>2];c[Z+8>>2]=c[Q+8>>2];c[Z+12>>2]=c[Q+12>>2];c[l>>2]=c[Z>>2];c[l+4>>2]=c[Z+4>>2];c[l+8>>2]=c[Z+8>>2];c[l+12>>2]=c[Z+12>>2]}while(0);w=Nj(b,w)|0}while((w|0)!=0)}k=Sk(b,k)|0}while((k|0)!=0)}Nq(b,c[(c[ba>>2]|0)+116>>2]&3)}l=c[ba>>2]|0;n=c[l+12>>2]|0}if((n|0)!=0?(a[n+81>>0]|0)==0:0){m=a[l+275>>0]|0;k=m<<24>>24;do if(!(k&4)){g=+h[l+16>>3];if(!(k&2)){j=(g+ +h[l+32>>3])*.5;break}else{j=p*.5+g;break}}else j=+h[l+32>>3]-p*.5;while(0);if(!(m&1))g=q*.5+ +h[l+24>>3];else g=+h[l+40>>3]-q*.5;h[n+56>>3]=j;h[n+64>>3]=g;a[(c[(c[ba>>2]|0)+12>>2]|0)+81>>0]=1}if(c[13359]|0){if(!(a[126425]|0)){ha=+h[4216];ga=+h[4215];h[da>>3]=ha;h[da+8>>3]=ga;h[da+16>>3]=ha;h[da+24>>3]=ga;h[da+32>>3]=-ga;h[da+40>>3]=-ha;Oz(aa,127065,da)|0}else{ga=+h[4215];ha=+h[4216];h[ca>>3]=ga;h[ca+8>>3]=ha;h[ca+16>>3]=ga;h[ca+24>>3]=ha;Oz(aa,126850,ca)|0}da=oA(aa)|0;c[c[13359]>>2]=da}i=ea;return}function Pq(b){b=b|0;var d=0,e=0.0,f=0,g=0.0,i=0.0,j=0,k=0;f=(hl(b)|0)==(b|0);k=b+16|0;b=c[k>>2]|0;if((!f?(j=c[b+12>>2]|0,(j|0)!=0):0)?(a[j+81>>0]|0)==0:0){f=a[b+275>>0]|0;if(!(f&1)){d=b+48|0;i=+h[b+24>>3]+ +h[b+56>>3]*.5}else{d=b+80|0;i=+h[b+40>>3]-+h[b+88>>3]*.5}g=+h[d>>3];d=f<<24>>24;do if(!(d&4)){e=+h[b+16>>3];if(!(d&2)){e=(e+ +h[b+32>>3])*.5;break}else{e=g*.5+e;break}}else e=+h[b+32>>3]-g*.5;while(0);h[j+56>>3]=e;h[j+64>>3]=i;b=c[k>>2]|0;a[(c[b+12>>2]|0)+81>>0]=1}if((c[b+180>>2]|0)>=1){d=1;while(1){Pq(c[(c[b+184>>2]|0)+(d<<2)>>2]|0);b=c[k>>2]|0;if((d|0)>=(c[b+180>>2]|0))break;else d=d+1|0}}return}function Qq(a){a=a|0;Oq(a,1);return}function Rq(b){b=b|0;var d=0,e=0.0,f=0,g=0.0,i=0.0,j=0,k=0;f=(hl(b)|0)==(b|0);k=b+16|0;b=c[k>>2]|0;if((!f?(j=c[b+12>>2]|0,(j|0)!=0):0)?(a[j+81>>0]|0)==0:0){f=a[b+275>>0]|0;if(!(f&1)){d=b+104|0;i=+h[b+16>>3]+ +h[b+96>>3]*.5}else{d=b+72|0;i=+h[b+32>>3]-+h[b+64>>3]*.5}g=+h[d>>3];d=f<<24>>24;do if(!(d&4)){e=+h[b+40>>3];if(!(d&2)){e=(+h[b+24>>3]+e)*.5;break}else{e=e-g*.5;break}}else e=g*.5+ +h[b+24>>3];while(0);h[j+56>>3]=i;h[j+64>>3]=e;b=c[k>>2]|0;a[(c[b+12>>2]|0)+81>>0]=1}if((c[b+180>>2]|0)>=1){d=1;while(1){Rq(c[(c[b+184>>2]|0)+(d<<2)>>2]|0);b=c[k>>2]|0;if((d|0)>=(c[b+180>>2]|0))break;else d=d+1|0}}return}function Sq(b){b=b|0;var d=0,e=0,f=0,g=0;g=(hl(b)|0)==(b|0);f=b+16|0;d=c[f>>2]|0;if(!g?(e=c[d+12>>2]|0,(e|0)!=0):0)b=(a[e+81>>0]|0)!=0&1;else b=0;if((c[d+180>>2]|0)>=1){e=1;while(1){b=(Sq(c[(c[d+184>>2]|0)+(e<<2)>>2]|0)|0)+b|0;d=c[f>>2]|0;if((e|0)>=(c[d+180>>2]|0))break;else e=e+1|0}}return b|0}function Tq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;q=i;i=i+80|0;p=q+40|0;m=q;n=d+16|0;f=c[n>>2]|0;if((c[f+180>>2]|0)>=1){l=1;while(1){f=c[(c[f+184>>2]|0)+(l<<2)>>2]|0;g=p;j=e;k=g+40|0;do{c[g>>2]=c[j>>2];g=g+4|0;j=j+4|0}while((g|0)<(k|0));Tq(m,f,p);g=e;j=m;k=g+40|0;do{c[g>>2]=c[j>>2];g=g+4|0;j=j+4|0}while((g|0)<(k|0));f=c[n>>2]|0;if((l|0)>=(c[f+180>>2]|0))break;else l=l+1|0}}if(((hl(d)|0)!=(d|0)?(o=c[(c[n>>2]|0)+12>>2]|0,(o|0)!=0):0)?(a[o+81>>0]|0)!=0:0){p=e+32|0;d=c[p>>2]|0;y=+h[e>>3];l=e+8|0;w=+h[l>>3];m=e+16|0;u=+h[m>>3];n=e+24|0;s=+h[n>>3];k=(a[126425]|0)==0;r=+h[o+24>>3];x=+h[o+32>>3];t=k?r:x;r=k?x:r;h[d+16>>3]=t;h[d+24>>3]=r;o=o+56|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];x=+h[d>>3]-t*.5;h[d>>3]=x;o=d+8|0;v=+h[o>>3]-r*.5;h[o>>3]=v;t=t+x;r=r+v;h[e>>3]=y<x?y:x;h[l>>3]=w<v?w:v;h[m>>3]=u>t?u:t;h[n>>3]=s>r?s:r;c[p>>2]=d+40}g=b;j=e;k=g+40|0;do{c[g>>2]=c[j>>2];g=g+4|0;j=j+4|0}while((g|0)<(k|0));i=q;return}function Uq(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+1152|0;d=r+32|0;q=r+24|0;j=r+8|0;e=r;g=r+128|0;n=r+52|0;l=r+48|0;m=r+44|0;o=r+40|0;p=r+36|0;k=Ts(zj(b,129098)|0)|0;if(k){d=c[13538]|0;if(!d){d=Vi(54156,c[12573]|0)|0;c[13538]=d}d=ub[c[d>>2]&31](d,k,512)|0;do if(!d){f=Az(k,162372)|0;if(!f){c[e>>2]=k;dj(0,127860,e)|0;d=0;break}else{e=0;d=0}do{if(!(yz(g,1024,f)|0))break;c[j>>2]=l;c[j+4>>2]=m;c[j+8>>2]=o;c[j+12>>2]=p;s=(Pz(g,127888,j)|0)==4;d=s?1:d;if((a[g>>0]|0)!=37){s=(wA(g,127917)|0)==0;e=s?e:1}}while(!((d|0)!=0&(e|0)!=0));if(!d){c[q>>2]=k;dj(0,127922,q)|0;d=0}else{d=aq(64)|0;c[d+32>>2]=c[l>>2];s=d+36|0;c[s>>2]=c[m>>2];c[d+40>>2]=(c[o>>2]|0)-(c[l>>2]|0);c[s>>2]=(c[p>>2]|0)-(c[m>>2]|0);c[d+8>>2]=k;s=c[13548]|0;c[13548]=s+1;c[d+12>>2]=s;fz(zz(f)|0,n)|0;s=c[n+36>>2]|0;q=aq(s+1|0)|0;c[d+52>>2]=q;Hz(f,0,0)|0;Ez(q,s,1,f)|0;a[q+s>>0]=0;s=c[13538]|0;ub[c[s>>2]&31](s,d,1)|0;a[d+16>>0]=e}uz(f)|0}while(0);if(d){p=c[d+40>>2]|0;q=c[d+44>>2]|0;b=b+16|0;s=c[b>>2]|0;h[s+32>>3]=+(p|0)/72.0;h[s+40>>3]=+(q|0)/72.0;s=$p(12)|0;c[(c[b>>2]|0)+12>>2]=s;c[s>>2]=c[d+12>>2];c[s+4>>2]=((p|0)/-2|0)-(c[d+32>>2]|0);c[s+8>>2]=((q|0)/-2|0)-(c[d+36>>2]|0)}}else{c[d>>2]=ok(b)|0;dj(0,127961,d)|0}i=r;return}function Vq(a){a=a|0;a=c[(c[a+16>>2]|0)+12>>2]|0;if(a)pB(a);return}function Wq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+16|0;o=p+8|0;n=p;m=(d|0)!=0;a:do if(m){j=0;k=1;while(1){h=c[d+(j<<2)>>2]|0;if(!h){l=2;break a}k=(a[h>>0]|0)==0?0:k;if(!(k<<24>>24))break;else j=j+1|0}}else l=2;while(0);if((l|0)==2?(g=c[e>>2]|0,(g|0)!=0):0)do{_m(b,g)|0;_m(b,175632)|0;e=e+4|0;g=c[e>>2]|0}while((g|0)!=0);if(m?(f=c[d>>2]|0,(f|0)!=0):0){h=0;do{do if(a[f>>0]|0){e=Ts(f)|0;if(!e){c[n>>2]=f;dj(0,128010,n)|0;break}g=Az(e,162372)|0;if(!g){c[o>>2]=e;dj(0,128038,o)|0;break}f=Ss(g)|0;if(f)do{_m(b,f)|0;f=Ss(g)|0}while((f|0)!=0);_m(b,175632)|0;uz(g)|0}while(0);h=h+1|0;f=c[d+(h<<2)>>2]|0}while((f|0)!=0)}i=p;return}+function Li(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0;o=d+16|0;f=c[o>>2]|0;e=c[f+192>>2]|0;if(e){do{i=e+16|0;e=c[i>>2]|0;f=c[e+188>>2]|0;if((f|0)!=0?(j=c[f>>2]|0,(j|0)!=0):0){f=j;g=0;do{Mi(f);g=g+1|0;e=c[i>>2]|0;f=c[(c[e+188>>2]|0)+(g<<2)>>2]|0}while((f|0)!=0)}if((c[e+208>>2]|0)>0){g=0;do{f=c[(c[e+204>>2]|0)+(g<<2)>>2]|0;k=c[f>>2]&3;if((c[(c[(c[((k|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)==(c[(c[(c[((k|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)){Mi(f);e=c[i>>2]|0}g=g+1|0}while((g|0)<(c[e+208>>2]|0))}e=c[e+164>>2]|0}while((e|0)!=0);f=c[o>>2]|0}k=c[f+196>>2]|0;if(!((c[k+56>>2]|0)==0?(c[f+180>>2]|0)<=0:0))m=13;a:do if((m|0)==13?(n=c[k+4>>2]|0,l=c[n>>2]|0,(l|0)!=0):0){e=l;j=0;b:while(1){i=c[(c[e+16>>2]|0)+196>>2]|0;e=c[i>>2]|0;if(e){g=0;do{m=c[e+16>>2]|0;if((c[m+96>>2]|0)!=0?(a[m+113>>0]|0)==0:0)break b;g=g+1|0;e=c[i+(g<<2)>>2]|0}while((e|0)!=0)}j=j+1|0;e=c[n+(j<<2)>>2]|0;if(!e)break a}if(b[f+236>>1]|0)Ia(119603,119622,190,119629);e=(b[f+238>>1]|0)+3|0;if(!k)e=aq(e<<6)|0;else e=cq(k,e<<6)|0;e=e+64|0;n=c[o>>2]|0;c[n+196>>2]=e;n=b[n+238>>1]|0;f=n<<16>>16;if(n<<16>>16>-1){do{j=f;f=f+-1|0;i=e+(j<<6)|0;e=e+(f<<6)|0;g=i+64|0;do{c[i>>2]=c[e>>2];i=i+4|0;e=e+4|0}while((i|0)<(g|0));e=c[(c[o>>2]|0)+196>>2]|0}while((j|0)>0);f=-1}c[e+(f<<6)+8>>2]=0;c[e+(f<<6)>>2]=0;l=$p(8)|0;n=c[o>>2]|0;m=c[n+196>>2]|0;c[m+(f<<6)+12>>2]=l;c[m+(f<<6)+4>>2]=l;c[m+(f<<6)+56>>2]=0;h[m+(f<<6)+24>>3]=1.0;h[m+(f<<6)+16>>3]=1.0;h[m+(f<<6)+40>>3]=1.0;h[m+(f<<6)+32>>3]=1.0;n=n+236|0;b[n>>1]=(b[n>>1]|0)+-1<<16>>16}while(0);ug(d);e=c[(c[o>>2]|0)+192>>2]|0;if(e){f=e;e=0;do{m=f+16|0;g=c[m>>2]|0;f=c[g+188>>2]|0;if(f){f=c[f>>2]|0;if(!f)f=g;else{k=0;do{i=c[f+16>>2]|0;j=c[i+96>>2]|0;do if(j){if(!(a[i+113>>0]|0)){Ni(f);g=c[m>>2]|0;e=1;break}if(!(c[(c[o>>2]|0)+116>>2]&1)){h[i+136>>3]=+h[j+24>>3];break}else{h[i+136>>3]=+h[j+32>>3];break}}while(0);k=k+1|0;f=c[(c[g+188>>2]|0)+(k<<2)>>2]|0}while((f|0)!=0);f=g}if((c[f+208>>2]|0)>0){l=0;do{k=c[(c[f+204>>2]|0)+(l<<2)>>2]|0;n=c[k>>2]&3;j=c[((n|0)==3?k:k+48|0)+40>>2]|0;n=c[((n|0)==2?k:k+-48|0)+40>>2]|0;do if(!((j|0)==(n|0)?1:(c[(c[j+16>>2]|0)+232>>2]|0)!=(c[(c[n+16>>2]|0)+232>>2]|0))){i=k;do{g=c[i+16>>2]|0;i=c[g+172>>2]|0}while((i|0)!=0);i=a[g+113>>0]|0;j=c[k+16>>2]|0;a[j+113>>0]=i;j=c[j+96>>2]|0;if(j)if(!(i<<24>>24)){Ni(k);f=c[m>>2]|0;e=1;break}else{q=+h[((c[(c[o>>2]|0)+116>>2]&1|0)==0?j+24|0:j+32|0)>>3];n=g+136|0;p=+h[n>>3];h[n>>3]=q>p?q:p;break}}while(0);l=l+1|0}while((l|0)<(c[f+208>>2]|0))}}else f=g;f=c[f+164>>2]|0}while((f|0)!=0);if(e){rg(d);vg(d)}else e=0}else e=0;return e|0}function Mi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[b>>2]&3;i=c[((d|0)==3?b:b+48|0)+40>>2]|0;e=c[i+16>>2]|0;f=c[e+236>>2]|0;d=c[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;h=(f|0)<(d|0);g=h?d:f;e=c[e+232>>2]|0;e=(c[(c[(wf(i)|0)+16>>2]|0)+196>>2]|0)+(e<<6)+4|0;d=(h?f:d)+1|0;a:do if((d|0)<(g|0)){f=c[e>>2]|0;while(1){e=c[(c[f+(d<<2)>>2]|0)+16>>2]|0;switch(a[e+156>>0]|0){case 0:break a;case 1:{if(c[e+104>>2]|0)break a;break}default:{}}d=d+1|0;if((d|0)>=(g|0))break a}}while(0);if((d|0)==(g|0))do{i=c[b+16>>2]|0;a[i+113>>0]=1;b=c[i+172>>2]|0}while((b|0)!=0);return}function Ni(b){b=b|0;var d=0,e=0,f=0.0,g=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,A=0.0;y=i;i=i+16|0;m=y;s=b+16|0;if(c[(c[s>>2]|0)+96>>2]|0){u=b+48|0;t=wf(c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0)|0;d=c[b>>2]&3;j=c[(c[((d|0)==3?b:u)+40>>2]|0)+16>>2]|0;r=c[j+232>>2]|0;x=r+-1|0;v=t+16|0;o=c[(c[v>>2]|0)+196>>2]|0;k=c[o+(x<<6)+4>>2]|0;o=c[o+(x<<6)>>2]|0;p=m+8|0;c[p>>2]=-1;c[m>>2]=-1;q=m+12|0;c[q>>2]=o;l=m+4|0;c[l>>2]=o;w=b+-48|0;j=c[j+236>>2]|0;d=c[(c[(c[((d|0)==2?b:w)+40>>2]|0)+16>>2]|0)+236>>2]|0;e=(j|0)>(d|0);g=e?j:d;j=e?d:j;d=o;e=-1;n=0;while(1){o=o+-1|0;if((n|0)>(o|0))break;Oi(c[k+(n<<2)>>2]|0,m,j,g);if((n|0)!=(o|0))Oi(c[k+(o<<2)>>2]|0,m,j,g);d=c[l>>2]|0;e=c[m>>2]|0;if((d-e|0)<2)break;else n=n+1|0}if((e|0)>(d|0))d=(c[q>>2]|0)+(c[p>>2]|0)|0;else d=e+d|0;l=(d+1|0)/2|0;d=c[v>>2]|0;g=c[d+196>>2]|0;k=c[g+(x<<6)+4>>2]|0;e=c[k>>2]|0;if(!e)f=+h[(c[(c[c[g+(r<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[g+(r<<6)+24>>3]+ +(c[d+252>>2]|0);else f=+h[(c[e+16>>2]|0)+24>>3]-+h[g+(x<<6)+16>>3];j=~~f;d=c[g+(x<<6)>>2]|0;if(!k)e=aq((d<<2)+8|0)|0;else e=cq(k,(d<<2)+8|0)|0;d=c[(c[v>>2]|0)+196>>2]|0;c[d+(x<<6)+4>>2]=e;d=c[d+(x<<6)>>2]|0;if((d|0)>(l|0))do{q=d;d=d+-1|0;r=c[e+(d<<2)>>2]|0;c[e+(q<<2)>>2]=r;r=(c[r+16>>2]|0)+236|0;c[r>>2]=(c[r>>2]|0)+1}while((d|0)>(l|0));g=lg(t)|0;d=e+(l<<2)|0;c[d>>2]=g;g=c[g+16>>2]|0;c[g+236>>2]=l;c[g+232>>2]=x;g=(c[(c[v>>2]|0)+196>>2]|0)+(x<<6)|0;r=(c[g>>2]|0)+1|0;c[g>>2]=r;c[e+(r<<2)>>2]=0;d=c[d>>2]|0;s=c[(c[s>>2]|0)+96>>2]|0;z=+h[s+24>>3];f=+h[s+32>>3];r=(c[(c[v>>2]|0)+116>>2]&1|0)==0;A=r?f:z;g=d+16|0;e=c[g>>2]|0;h[e+80>>3]=A;t=~~(A*.5);f=(r?z:f)*.5;h[e+96>>3]=f;h[e+88>>3]=f;c[e+104>>2]=s;h[e+24>>3]=+(t+j|0);e=hg(d,c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0,b)|0;e=c[e+16>>2]|0;h[e+16>>3]=-+h[(c[g>>2]|0)+88>>3];h[e+56>>3]=+h[(c[(c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0)+16>>2]|0)+96>>3];a[e+112>>0]=4;d=hg(d,c[((c[b>>2]&3|0)==2?b:w)+40>>2]|0,b)|0;g=c[g>>2]|0;d=c[d+16>>2]|0;h[d+16>>3]=+h[g+96>>3];h[d+56>>3]=+h[(c[(c[((c[b>>2]&3|0)==2?b:w)+40>>2]|0)+16>>2]|0)+88>>3];a[d+112>>0]=4;d=c[(c[v>>2]|0)+196>>2]|0;e=d+(x<<6)+16|0;f=+(t|0);if(+h[e>>3]<f)h[e>>3]=f;d=d+(x<<6)+24|0;if(+h[d>>3]<f)h[d>>3]=f;c[g+112>>2]=b}i=y;return}function Oi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=c[b+16>>2]|0;do if((a[b+156>>0]|0)==1){k=c[b+236>>2]|0;if(c[b+176>>2]|0){j=c[b+180>>2]|0;b=c[j>>2]|0;if(!b)break;else{h=b;i=0;g=0;b=0}do{l=c[(c[(c[((c[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;m=(l|0)>(e|0);g=m?g:1;b=m?((l|0)<(f|0)?b:1):b;i=i+1|0;h=c[j+(i<<2)>>2]|0}while((h|0)!=0);if(g<<24>>24!=0&b<<24>>24==0)c[d>>2]=k+1;if(!(g<<24>>24==0&b<<24>>24!=0))break;c[d+4>>2]=k+-1;break}if((c[b+184>>2]|0)!=2)Ia(119641,119622,63,119661);m=c[b+180>>2]|0;g=c[m>>2]|0;m=c[m+4>>2]|0;g=c[(c[(c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;m=c[(c[(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;l=(g|0)>(m|0);b=l?g:m;g=l?m:g;if((b|0)<=(e|0)){c[d>>2]=k;c[d+8>>2]=k;break}if((g|0)>=(f|0)){c[d+4>>2]=k;c[d+12>>2]=k;break}h=(g|0)<(e|0);i=(b|0)>(f|0);if(!(h&i)){if(!(!h?!((g|0)==(e|0)&(b|0)<(f|0)):0))c[d+8>>2]=k;if(!i?!((b|0)==(f|0)&(g|0)>(e|0)):0)break;c[d+12>>2]=k}}while(0);return}function Pi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;do if((a|0)!=0?(c[a+24>>2]|0)<=0:0){h=c[a+4>>2]|0;g=h+32|0;b=c[g>>2]|0;if(b){b=Jb[b&31](a,2,0,h)|0;if((b|0)<0){b=-1;break}}else b=0;if(c[a+28>>2]|0)$i(a,0)|0;f=(b|0)==0;if(f){ub[c[c[a+16>>2]>>2]&31](a,0,64)|0;if((Xi(a)|0)>0){b=-1;break}d=a+8|0;b=c[d>>2]|0;if((c[b+12>>2]|0)>0){e=a+12|0;Jb[c[e>>2]&31](a,c[b+8>>2]|0,0,h)|0;b=c[d>>2]|0}else e=a+12|0;Jb[c[e>>2]&31](a,b,0,h)|0}b=c[a+20>>2]|0;if(b){if(f&(b|0)==1)Jb[c[a+12>>2]&31](a,a,0,h)|0}else pB(a);b=c[g>>2]|0;if(!b)b=0;else{Jb[b&31](a,6,0,h)|0;b=0}}else b=-1;while(0);return b|0}function Qi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=a+4|0;e=c[f>>2]|0;a:do if(e){if(b){n=c[c[a+16>>2]>>2]|0;h=a+8|0;if(c[c[h>>2]>>2]&4096)Wi(a,0)|0;g=c[e+32>>2]|0;if((g|0)!=0?(Jb[g&31](a,3,b,e)|0)<0:0){e=0;break}c[f>>2]=b;f=c[b+28>>2]|0;c[a+12>>2]=(f|0)==0?19:f;f=c[c[h>>2]>>2]|0;if(!(f&112)){do if(!(f&2))if(!(f&3))if(!(d&1))break;else break a;else if((d&3|0)==3)break a;else break;else if(d&2)break a;while(0);g=Ti(a)|0;f=c[h>>2]|0;m=c[f>>2]|0;c[f>>2]=m&-4097;c[f+4>>2]=0;c[f+16>>2]=0;if((m&3|0)!=0?(i=c[f+8>>2]|0,m=c[f+12>>2]|0,j=i+(m<<2)|0,(m|0)>0):0){m=i+4|0;CB(i|0,0,(j>>>0>m>>>0?j:m)+~i+4&-4|0)|0}if(g){d=(d&2|0)==0;k=b+8|0;l=b+4|0;m=b+24|0;i=g;do{j=i;i=c[i>>2]|0;if(d){f=c[k>>2]|0;if((f|0)<0)f=c[j+8>>2]|0;else f=j+(0-f)|0;h=c[l>>2]|0;f=f+(c[b>>2]|0)|0;if((h|0)<0)f=c[f>>2]|0;g=c[m>>2]|0;if(!g)f=Zi(0,f,h)|0;else f=ub[g&31](a,f,b)|0;c[j+4>>2]=f}ub[n&31](a,j,32)|0}while((i|0)!=0)}}}}else{c[f>>2]=b;e=c[b+28>>2]|0;c[a+12>>2]=(e|0)==0?19:e;e=b}while(0);return e|0}function Ri(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=(c|0)==0;do if(!b)if(d)d=0;else d=oB(c)|0;else if(d){pB(b);d=0;break}else{d=rB(b,c)|0;break}while(0);return d|0}function Si(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+8|0;b=c[e>>2]|0;d=c[b>>2]|0;do if(!(d&12)){if(!(d&3)){a=b+8|0;b=c[a>>2]|0;c[a>>2]=0;break}b=Ti(a)|0;f=c[e>>2]|0;d=c[f+8>>2]|0;f=c[f+12>>2]|0;a=d+(f<<2)|0;if((f|0)>0){f=d+4|0;CB(d|0,0,(a>>>0>f>>>0?a:f)+~d+4&-4|0)|0}}else b=c[b+4>>2]|0;while(0);f=c[e>>2]|0;c[f>>2]=c[f>>2]&-4097;c[f+16>>2]=0;c[f+4>>2]=0;return b|0}function Ti(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+8|0;b=c[g>>2]|0;a=c[b>>2]|0;if(!(a&4096)){do if(!(a&3)){if(a&112){a=c[b+8>>2]|0;break}a=c[b+4>>2]|0;if(!a)a=0;else{b=c[a+4>>2]|0;if(!b){d=c[a>>2]|0;if(!d)break;else{b=a;a=d}}else while(1){c[a+4>>2]=c[b>>2];c[b>>2]=a;d=c[b+4>>2]|0;if(!d)break;else{a=b;b=d}}d=b;do{e=c[a+4>>2]|0;if(!e)d=a;else{while(1){c[a+4>>2]=c[e>>2];c[e>>2]=a;a=c[e+4>>2]|0;if(!a){a=e;break}else{f=e;e=a;a=f}}c[d>>2]=a;d=a}a=c[d>>2]|0}while((a|0)!=0);a=b}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;f=d+(e<<2)|0;if((e|0)>0){b=0;a=0;do{e=c[d>>2]|0;if(e){if(!b){b=e;a=e}else c[b>>2]=e;while(1){e=c[b>>2]|0;if(!e)break;else b=e}c[d>>2]=b}d=d+4|0}while(d>>>0<f>>>0)}else a=0}while(0);g=c[g>>2]|0;c[g+4>>2]=a;c[g>>2]=c[g>>2]|4096}else a=c[b+4>>2]|0;return a|0}function Ui(a,b,d){a=a|0;b=b|0;d=d|0;var 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;r=a+8|0;if(c[c[r>>2]>>2]&4096)Wi(a,0)|0;q=c[a+4>>2]|0;m=c[q>>2]|0;n=c[q+4>>2]|0;p=q+8|0;t=c[p>>2]|0;l=c[q+20>>2]|0;o=a+20|0;h=c[o>>2]&-32769;c[o>>2]=h;a:do if(!b){if(d&384){b=c[r>>2]|0;e=c[b+8>>2]|0;if(!e){e=0;break}if(d&256){e=c[e+4>>2]|0;c[b+4>>2]=e;if(!e){e=0;break}}else c[b+4>>2]=e;if((t|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-t)|0;break}}if(d&4098){e=c[r>>2]|0;if(c[e>>2]&144){e=0;break}e=c[e+8>>2]|0;if(!e){e=0;break}else{g=e;s=88;break}}if(!(d&64))e=0;else{i=q+16|0;e=c[i>>2]|0;b:do if((e|0)!=0|(t|0)<0?(g=c[(c[r>>2]|0)+8>>2]|0,(g|0)!=0):0){j=a+12|0;k=(t|0)<0;h=0-t|0;while(1){b=c[g>>2]|0;if(e){if(k)f=c[g+8>>2]|0;else f=g+h|0;Gb[e&127](a,f,q)}if((c[p>>2]|0)<0)Jb[c[j>>2]&31](a,g,0,q)|0;if(!b)break b;e=c[i>>2]|0;g=b}}while(0);e=c[r>>2]|0;c[e+4>>2]=0;c[e+8>>2]=0;c[(c[r>>2]|0)+16>>2]=0;e=0}}else{if(d&2049){f=q+12|0;e=c[f>>2]|0;g=(d&1|0)==0;if(!(g|(e|0)==0)){e=ub[e&31](a,b,q)|0;if(!e){e=0;break}else b=e}do if((t|0)>-1)g=b+t|0;else{e=Jb[c[a+12>>2]&31](a,0,12,q)|0;if(e){c[e+8>>2]=b;g=e;break}if(!(c[f>>2]|0)){e=0;break a}e=c[q+16>>2]|0;if(g|(e|0)==0){e=0;break a}Gb[e&127](a,b,q);e=0;break a}while(0);f=c[r>>2]|0;e=c[f>>2]|0;do if(!(e&128)){if(!(e&16))if(!(e&32)){s=54;break}else{s=50;break}b=c[f+4>>2]|0;e=(b|0)!=0;if(!(d&8192)){if(!e){s=50;break}if((b|0)==(c[f+8>>2]|0)){s=50;break}a=b+4|0;q=c[a>>2]|0;c[g+4>>2]=q;c[q>>2]=g;c[g>>2]=b;c[a>>2]=g;break}else{if(!e){s=54;break}e=c[b>>2]|0;if(!e){s=54;break}c[g>>2]=e;c[e+4>>2]=g;c[g+4>>2]=b;c[b>>2]=g;break}}else if(!(d&8192))s=50;else s=54;while(0);if((s|0)==50){e=c[f+8>>2]|0;c[g>>2]=e;if(!e)c[g+4>>2]=g;else{a=e+4|0;c[g+4>>2]=c[a>>2];c[a>>2]=g}c[(c[r>>2]|0)+8>>2]=g}else if((s|0)==54){e=f+8|0;b=c[e>>2]|0;if(!b){c[e>>2]=g;c[g+4>>2]=g}else{a=b+4|0;c[c[a>>2]>>2]=g;c[g+4>>2]=c[a>>2];c[a>>2]=g}c[g>>2]=0}e=c[r>>2]|0;b=e+16|0;f=c[b>>2]|0;if((f|0)>-1)c[b>>2]=f+1;c[e+4>>2]=g;if((t|0)<0){e=c[g+8>>2]|0;break}else{e=g+(0-t)|0;break}}g=c[r>>2]|0;do if(!(d&512)){e=c[g+4>>2]|0;if(e){if((t|0)<0)f=c[e+8>>2]|0;else f=e+(0-t)|0;if((f|0)==(b|0)){b=h;break}}b=b+m|0;if((n|0)<0){b=c[b>>2]|0;s=71}else s=71}else s=71;while(0);if((s|0)==71){e=c[g+8>>2]|0;if(!e){e=0;break}g=(t|0)<0;h=(n|0)<0;i=(l|0)==0;j=(n|0)<1;k=0-t|0;while(1){if(g)f=c[e+8>>2]|0;else f=e+k|0;f=f+m|0;if(h)f=c[f>>2]|0;do if(i)if(j){f=lA(b,f)|0;break}else{f=dA(b,f,n)|0;break}else f=Jb[l&31](a,b,f,q)|0;while(0);if(!f)break;e=c[e>>2]|0;if(!e){e=0;break a}}if(!e){e=0;break}b=c[o>>2]|0}c[o>>2]=b|32768;if(!(d&4098)){do if(!(d&8)){b=c[r>>2]|0;if(!(d&16)){c[b+4>>2]=e;break}if((e|0)==(c[b+8>>2]|0)){c[b+4>>2]=0;e=0;break a}else{e=e+4|0;s=112;break}}else{b=c[r>>2]|0;s=112}while(0);if((s|0)==112){e=c[e>>2]|0;c[b+4>>2]=e;if(!e){e=0;break}}if((t|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-t)|0;break}}else{g=e;s=88}}while(0);if((s|0)==88){e=c[g>>2]|0;if(e){c[e+4>>2]=c[g+4>>2];e=c[g>>2]|0}b=(c[r>>2]|0)+8|0;f=c[b>>2]|0;if((g|0)==(f|0)){c[b>>2]=e;e=c[(c[r>>2]|0)+8>>2]|0;if(e)c[e+4>>2]=c[g+4>>2]}else{b=g+4|0;c[c[b>>2]>>2]=e;e=f+4|0;if((g|0)==(c[e>>2]|0))c[e>>2]=c[b>>2]}e=c[r>>2]|0;b=e+4|0;if((g|0)==(c[b>>2]|0))f=c[g>>2]|0;else f=0;c[b>>2]=f;s=e+16|0;c[s>>2]=(c[s>>2]|0)+-1;if((t|0)<0)e=c[g+8>>2]|0;else e=g+(0-t)|0;b=c[q+16>>2]|0;if(!((d&2|0)==0|(b|0)==0))Gb[b&127](a,e,q);if((c[p>>2]|0)<0)Jb[c[a+12>>2]&31](a,g,0,q)|0}return e|0}function Vi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j;a:do if((a|0)!=0&(b|0)!=0?(d=oB(40)|0,(d|0)!=0):0){c[d>>2]=0;c[d+16>>2]=0;c[d+4>>2]=0;Qi(d,a,0)|0;e=d+20|0;h=a+32|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;e=c[h>>2]|0;do if(e){c[f>>2]=0;e=Jb[e&31](d,1,f,a)|0;if((e|0)>=0)if((e|0)>0){e=c[f>>2]|0;if(e)if(!(c[b+4>>2]&c[e>>2])){g=12;break}else break;e=a+28|0;if(!(c[e>>2]|0))g=12;else{pB(d);d=Jb[c[e>>2]&31](0,0,40,a)|0;if(!d){d=0;break a}c[d>>2]=0;c[d+16>>2]=0;c[d+4>>2]=0;Qi(d,a,0)|0;c[d+20>>2]=1;c[d+24>>2]=0;c[d+32>>2]=0;c[d+28>>2]=0;g=11}}else g=11;else g=12}else g=11;while(0);if((g|0)==11){e=Jb[c[d+12>>2]&31](d,0,28,a)|0;c[f>>2]=e;if(!e)g=12;else{c[e>>2]=c[b+4>>2];c[e+4>>2]=0;c[(c[f>>2]|0)+8>>2]=0;e=c[f>>2]|0;f=e+12|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0}}if((g|0)==12){pB(d);d=0;break}c[d+8>>2]=e;c[d>>2]=c[b>>2];c[d+16>>2]=b;e=c[h>>2]|0;if(e)Jb[e&31](d,5,d,a)|0}else d=0;while(0);i=j;return d|0}function Wi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=c[c[a+16>>2]>>2]|0;g=a+8|0;j=c[g>>2]|0;h=c[j>>2]|0;d=h&4096;if(!b)if(!d)b=-1;else{b=c[j+4>>2]|0;e=d;i=5}else if(!(c[j+16>>2]|0)){e=0;i=5}else b=-1;a:do if((i|0)==5){c[j>>2]=h&-4097;if(!(h&3)){d=j+4|0;if(!(h&12)){c[d>>2]=0;c[j+8>>2]=b}else c[d>>2]=b;if(e){b=0;break}c[(c[g>>2]|0)+16>>2]=-1;b=0;break}c[j+4>>2]=0;if(!e){c[j+16>>2]=0;if(!b){b=0;break}while(1){j=b;b=c[b>>2]|0;ub[f&31](a,j,32)|0;if(!b){b=0;break a}}}d=c[j+8>>2]|0;j=c[j+12>>2]|0;f=d+(j<<2)|0;if((j|0)>0){e=d;do{d=c[e>>2]|0;if(d){c[e>>2]=b;b=c[d>>2]|0;c[d>>2]=0}e=e+4|0}while(e>>>0<f>>>0);b=0}else b=0}while(0);return b|0}function Xi(a){a=a|0;var b=0,d=0,e=0;b=a+8|0;d=c[b>>2]|0;if(c[d>>2]&4096){Wi(a,0)|0;d=c[b>>2]|0}e=d+16|0;b=c[e>>2]|0;do if((b|0)<0){a=c[d>>2]|0;if(a&12){b=Yi(c[d+4>>2]|0)|0;c[e>>2]=b;break}if(a&112){d=c[d+8>>2]|0;if(!d)b=0;else{b=0;do{b=b+1|0;d=c[d>>2]|0}while((d|0)!=0)}c[e>>2]=b}}while(0);return b|0}function Yi(a){a=a|0;var b=0;if(!a)return 0;else{b=Yi(c[a+4>>2]|0)|0;return b+1+(Yi(c[a>>2]|0)|0)|0}return 0}function Zi(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;f=c;if((e|0)>=1){g=e+-1|0;h=c+g|0;if((g|0)>0){g=c+2|0;g=(h>>>0>g>>>0?h:g)+~f+2&-2;f=c;do{b=_(((d[f>>0]|0)<<8)+b+(d[f+1>>0]|0)|0,17109811)|0;f=f+2|0}while(f>>>0<h>>>0);c=c+g|0}if(c>>>0<=h>>>0)b=_(((d[c>>0]|0)<<8)+b|0,17109811)|0}else{e=a[c>>0]|0;if(e<<24>>24)do{h=a[c+1>>0]|0;b=_(((e&255)<<8)+b+(h&255)|0,17109811)|0;c=c+(h<<24>>24!=0?2:1)|0;e=a[c>>0]|0}while(e<<24>>24!=0);e=c-f|0}return _(b+e|0,17109811)|0}function _i(a,b,d){a=a|0;b=b|0;d=d|0;var 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,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+128|0;z=G;r=G+8|0;F=a+8|0;e=c[F>>2]|0;if(c[e>>2]&4096){Wi(a,0)|0;e=c[F>>2]|0}D=c[a+4>>2]|0;B=c[D>>2]|0;C=c[D+4>>2]|0;v=D+8|0;E=c[v>>2]|0;A=c[D+20>>2]|0;t=a+20|0;c[t>>2]=c[t>>2]&-32769;f=c[e+4>>2]|0;a:do if(!b)if((d&448|0)==0|(f|0)==0)e=0;else{if(!(d&64)){if(!(d&256)){e=c[f+4>>2]|0;if(!e)e=f;else while(1){c[f+4>>2]=c[e>>2];c[e>>2]=f;f=c[e+4>>2]|0;if(!f)break;else{a=e;e=f;f=a}}}else{e=c[f>>2]|0;if(!e)e=f;else while(1){a=e+4|0;c[f>>2]=c[a>>2];c[a>>2]=f;f=c[e>>2]|0;if(!f)break;else{a=e;e=f;f=a}}}c[(c[F>>2]|0)+4>>2]=e;if((E|0)<0){e=c[e+8>>2]|0;break}else{e=e+(0-E)|0;break}}b=D+16|0;if((c[b>>2]|0)!=0|(E|0)<0){k=a+12|0;l=(E|0)<0;j=0-E|0;while(1){e=f+4|0;g=c[e>>2]|0;if(g){c[e>>2]=c[g>>2];c[g>>2]=f;f=g;continue}h=f;f=c[f>>2]|0;e=c[b>>2]|0;if(e){if(l)g=c[h+8>>2]|0;else g=h+j|0;Gb[e&127](a,g,D)}if((c[v>>2]|0)<0)Jb[c[k>>2]&31](a,h,0,D)|0;if(!f)break}e=c[F>>2]|0}c[e+16>>2]=0;c[e+4>>2]=0;e=0}else{y=a+16|0;u=(d&4098|0)==0;b:do if(!(u|(c[(c[y>>2]|0)+4>>2]|0)!=8)){l=(C|0)<0;e=b+B|0;if(l)e=c[e>>2]|0;g=ub[c[a>>2]&31](a,b,4)|0;if(g){j=(A|0)==0;k=(C|0)<1;while(1){h=g+B|0;if(l)h=c[h>>2]|0;do if(j)if(k){h=lA(e,h)|0;break}else{h=dA(e,h,C)|0;break}else h=Jb[A&31](a,e,h,D)|0;while(0);if(h){w=44;break b}if((g|0)==(b|0))break;g=ub[c[a>>2]&31](a,g,8)|0;if(!g){w=44;break b}}h=c[(c[F>>2]|0)+4>>2]|0;c[z>>2]=c[h+4>>2];c[z+4>>2]=c[h>>2];f=z;w=182}else w=44}else w=44;while(0);c:do if((w|0)==44){do if(!(d&2565)){if(d&32){if((E|0)<0)g=c[b+8>>2]|0;else g=b+(0-E)|0;e=g+B|0;if((C|0)<0)e=c[e>>2]|0;if(!f){j=z;e=b;f=z;w=200;break}else{s=e;e=b;w=63;break}}if(f){if((E|0)<0)e=c[f+8>>2]|0;else e=f+(0-E)|0;if((e|0)!=(b|0)){e=b+B|0;if((C|0)<0){g=b;s=c[e>>2]|0;e=0;w=63}else{g=b;s=e;e=0;w=63}}else{g=b;j=z;e=0;k=z;h=f;w=141}}else{g=b;j=z;e=0;f=z;w=200}}else{if(!(d&512)){e=b+B|0;if((C|0)<0)e=c[e>>2]|0}else e=b;if(!f){g=b;j=z;e=0;f=z;w=200}else{g=b;s=e;e=0;w=63}}while(0);d:do if((w|0)==63){if(((c[(c[y>>2]|0)+4>>2]|0)==4?(q=c[(c[F>>2]|0)+24>>2]|0,!((d&516|0)==0|(q|0)==0)):0)?(p=(q|0)>0,p):0){n=(E|0)<0;j=(C|0)<0;k=(A|0)==0;l=(C|0)<1;o=0-E|0;b=0;m=f;do{if(n)h=c[m+8>>2]|0;else h=m+o|0;h=h+B|0;if(j)h=c[h>>2]|0;do if(k)if(l){h=lA(s,h)|0;break}else{h=dA(s,h,C)|0;break}else h=Jb[A&31](a,s,h,D)|0;while(0);if(!h){e=m;w=81;break}c[r+(b<<2)>>2]=h;m=c[((h|0)<0?m+4|0:m)>>2]|0;b=b+1|0;if(!m){e=0;break a}}while((b|0)<(q|0));if((w|0)==81)if(n){e=c[e+8>>2]|0;break a}else{e=e+o|0;break a}if(p){j=z;b=0;l=z;while(1){do if((c[r+(b<<2)>>2]|0)<0){h=f+4|0;k=c[h>>2]|0;if((c[r+((b|1)<<2)>>2]|0)<0){c[h>>2]=c[k>>2];c[k>>2]=f;c[l+4>>2]=k;f=k;h=k+4|0;break}else{c[j>>2]=k;c[l+4>>2]=f;j=k;h=k;break}}else{h=c[f>>2]|0;if((c[r+((b|1)<<2)>>2]|0)>0){p=h+4|0;c[f>>2]=c[p>>2];c[p>>2]=f;c[j>>2]=h;j=h;f=l;break}else{c[l+4>>2]=h;c[j>>2]=f;j=f;f=h;h=h+4|0;break}}while(0);k=c[h>>2]|0;b=b+2|0;if((b|0)>=(q|0)){h=f;f=k;break}else{l=f;f=k}}}else{j=z;h=z}}else{j=z;h=z}n=(E|0)<0;o=(C|0)<0;p=(A|0)!=0;q=(C|0)<1;r=0-E|0;e:while(1){while(1){if(n)k=c[f+8>>2]|0;else k=f+r|0;k=k+B|0;if(o)k=c[k>>2]|0;do if(!p)if(q){k=lA(s,k)|0;break}else{k=dA(s,k,C)|0;break}else k=Jb[A&31](a,s,k,D)|0;while(0);if(!k)break e;if((k|0)>=0){k=f;break}b=f+4|0;m=c[b>>2]|0;if(!m){w=121;break e}if(n)k=c[m+8>>2]|0;else k=m+r|0;k=k+B|0;if(o)k=c[k>>2]|0;do if(!p)if(q){l=lA(s,k)|0;break}else{l=dA(s,k,C)|0;break}else l=Jb[A&31](a,s,k,D)|0;while(0);if((l|0)>=0){b=m;k=h;h=f;w=118;break}c[b>>2]=c[m>>2];c[m>>2]=f;c[h+4>>2]=m;f=c[m+4>>2]|0;if(!f){f=m;w=200;break d}else h=m}if((w|0)==118){w=0;if(!l){f=b;w=119;break}c[j>>2]=b;c[k+4>>2]=h;f=c[b>>2]|0;if(!f){j=b;f=h;w=200;break d}else{j=b;continue}}l=c[k>>2]|0;if(!l){f=h;h=k;w=139;break}if(n)f=c[l+8>>2]|0;else f=l+r|0;f=f+B|0;if(o)f=c[f>>2]|0;do if(!p)if(q){f=lA(s,f)|0;break}else{f=dA(s,f,C)|0;break}else f=Jb[A&31](a,s,f,D)|0;while(0);if((f|0)>0){f=l+4|0;c[k>>2]=c[f>>2];c[f>>2]=k;c[j>>2]=l;f=c[l>>2]|0;if(!f){j=l;f=h;w=200;break d}else{j=l;continue}}if(!f){f=l;w=137;break}c[h+4>>2]=l;c[j>>2]=k;f=c[l+4>>2]|0;if(!f){j=k;f=l;w=200;break d}else{j=k;h=l}}if((w|0)==119)c[k+4>>2]=h;else if((w|0)==121){c[h+4>>2]=f;w=200;break}else if((w|0)==137){c[j>>2]=k;j=k}else if((w|0)==139){c[j>>2]=h;j=h;w=200;break}if(!f){f=h;w=200}else{k=h;h=f;w=141}}while(0);do if((w|0)==141){c[t>>2]=c[t>>2]|32768;f=h+4|0;c[j>>2]=c[f>>2];c[k+4>>2]=c[h>>2];if(!(d&516)){if(d&8){c[f>>2]=c[z>>2];c[h>>2]=0;c[z>>2]=h;f=k;w=169;break}if(d&16){w=z+4|0;c[h>>2]=c[w>>2];c[f>>2]=0;c[w>>2]=h;f=k;w=177;break}if(!u){f=k;w=182;break c}if(d&2049){if(c[(c[y>>2]|0)+4>>2]&4){e=h;break}c[f>>2]=0;f=z+4|0;c[h>>2]=c[f>>2];c[f>>2]=h;f=k;e=h;w=207;break}if(!(d&32)){e=0;break a}if(!(c[(c[y>>2]|0)+4>>2]&4)){c[e+4>>2]=0;x=z+4|0;c[e>>2]=c[x>>2];c[x>>2]=e;e=(c[F>>2]|0)+16|0;c[e>>2]=(c[e>>2]|0)+1;e=h;break}f=c[D+16>>2]|0;if(f)Gb[f&127](a,g,D);if((c[v>>2]|0)<0){Jb[c[a+12>>2]&31](a,e,0,D)|0;e=h}else e=h}else e=h}else if((w|0)==200){c[f+4>>2]=0;c[j>>2]=0;if(!(d&8))if(!(d&16)){if(d&516)break c;if(!(d&2049)){if(!(d&32)){g=0;break c}x=(c[F>>2]|0)+16|0;c[x>>2]=(c[x>>2]|0)+1}else{e=0;w=207}}else w=177;else w=169}while(0);if((w|0)==169){j=z+4|0;h=c[j>>2]|0;if(!h)break;e=c[h+4>>2]|0;if(!e){f=c[h>>2]|0;e=h}else{f=h;while(1){c[f+4>>2]=c[e>>2];c[e>>2]=f;g=c[e+4>>2]|0;if(!g)break;else{f=e;e=g}}}c[j>>2]=f}else if((w|0)==177){e=c[z>>2]|0;if(!e)break;f=c[e>>2]|0;if(f)while(1){x=f+4|0;c[e>>2]=c[x>>2];c[x>>2]=e;e=c[f>>2]|0;if(!e){e=f;break}else{x=f;f=e;e=x}}c[z>>2]=c[e+4>>2]}else if((w|0)==207){j=D+12|0;h=c[j>>2]|0;k=(d&1|0)==0;if(!(k|(h|0)==0))g=ub[h&31](a,g,D)|0;do if(g){if((E|0)>-1){e=g+E|0;w=217;break}e=Jb[c[a+12>>2]&31](a,0,12,D)|0;if(e){c[e+8>>2]=g;break}if((c[j>>2]|0)!=0?(x=c[D+16>>2]|0,!(k|(x|0)==0)):0){Gb[x&127](a,g,D);w=217}else w=217}else w=217;while(0);if((w|0)==217)if(!e)break;f=(c[F>>2]|0)+16|0;g=c[f>>2]|0;if((g|0)>-1)c[f>>2]=g+1}g=c[z>>2]|0;c[e+4>>2]=g;c[e>>2]=c[z+4>>2];h=g;f:do if(!((d&516|0)==0?1:(c[(c[y>>2]|0)+4>>2]&8|0)==0)){o=(E|0)<0;if(o)f=c[e+8>>2]|0;else f=e+(0-E)|0;p=(C|0)<0;f=f+B|0;if(p)f=c[f>>2]|0;if(g){b=(A|0)==0;m=(C|0)<1;n=0-E|0;l=e+4|0;while(1){g=c[h>>2]|0;if(!g){k=h;j=h}else while(1){d=g+4|0;c[h>>2]=c[d>>2];c[d>>2]=h;h=c[g>>2]|0;if(!h){k=g;j=g;break}else{d=g;g=h;h=d}}c[l>>2]=j;if(o)g=c[j+8>>2]|0;else g=j+n|0;g=g+B|0;if(p)g=c[g>>2]|0;do if(b)if(m){g=lA(f,g)|0;break}else{g=dA(f,g,C)|0;break}else g=Jb[A&31](a,f,g,D)|0;while(0);if(g)break f;c[e+4>>2]=c[j>>2];c[k>>2]=e;l=j+4|0;h=c[l>>2]|0;if(!h){e=j;break}else e=j}}}while(0);c[(c[F>>2]|0)+4>>2]=e;if((E|0)<0){e=c[e+8>>2]|0;break a}else{e=e+(0-E)|0;break a}}while(0);if((w|0)==182){if((E|0)<0)g=c[h+8>>2]|0;else g=h+(0-E)|0;e=c[D+16>>2]|0;if(!((d&2|0)==0|(e|0)==0))Gb[e&127](a,g,D);if((c[v>>2]|0)<0)Jb[c[a+12>>2]&31](a,h,0,D)|0;a=(c[F>>2]|0)+16|0;E=c[a>>2]|0;c[a>>2]=(E|0)<1?-1:E+-1|0}do{e=f+4|0;f=c[e>>2]|0}while((f|0)!=0);c[e>>2]=c[z>>2];c[(c[F>>2]|0)+4>>2]=c[z+4>>2];e=(d&2|0)!=0?g:0}while(0);i=G;return e|0}function $i(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;if(c[c[a+8>>2]>>2]&4096)Wi(a,0)|0;f=(b|0)!=0;a:do if(f){if(c[c[b+8>>2]>>2]&4096)Wi(b,0)|0;if((c[b+16>>2]|0)==(c[a+16>>2]|0)){d=b;while(1){if((d|0)==(a|0)){d=0;break a}d=c[d+28>>2]|0;if(!d){e=9;break}}}else d=0}else e=9;while(0);do if((e|0)==9){e=a+28|0;d=c[e>>2]|0;if(d){g=d+24|0;c[g>>2]=(c[g>>2]|0)+-1}c[a+32>>2]=0;c[e>>2]=0;if(f){c[e>>2]=b;c[a>>2]=12;d=b+24|0;c[d>>2]=(c[d>>2]|0)+1;d=b;break}else{c[a>>2]=c[c[a+16>>2]>>2];break}}while(0);return d|0}function aj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:do if(!(d&99)){if(!(d&516)){h=c[a+16>>2]|0;e=c[h+4>>2]|0;if((d&384|0)!=0&(e&12|0)==0){f=a;i=6}else{if(e&12){if(!(d&408)){e=0;break}n=(d&136|0)!=0;o=(d&272|0)!=0;g=a;l=0;m=0;f=0;while(1){e=ub[c[h>>2]&31](g,b,d)|0;do if(!e){e=l;i=m}else{h=c[g+4>>2]|0;j=c[h+4>>2]|0;k=c[h+20>>2]|0;i=e+(c[h>>2]|0)|0;if((j|0)<0)i=c[i>>2]|0;if(l){do if(!k)if((j|0)<1){h=lA(i,m)|0;break}else{h=dA(i,m,j)|0;break}else h=Jb[k&31](g,i,m,h)|0;while(0);if(!(n&(h|0)<0|o&(h|0)>0)){e=l;i=m;break}}f=g}while(0);g=c[g+28>>2]|0;if(!g)break;h=c[g+16>>2]|0;l=e;m=i}c[a+32>>2]=f;break}if(!(d&24)){e=0;break}k=a+32|0;f=c[k>>2]|0;if(f){e=c[(c[f+4>>2]|0)+8>>2]|0;g=c[(c[f+8>>2]|0)+4>>2]|0;if((e|0)<0)e=c[g+8>>2]|0;else e=g+(0-e)|0;if((e|0)==(b|0))e=b;else i=32}else i=32;if((i|0)==32){e=ub[c[h>>2]&31](a,b,4)|0;b:do if(!e){e=a;while(1){f=c[e+28>>2]|0;if(!f)break;e=ub[c[c[f+16>>2]>>2]&31](f,b,4)|0;if(!e)e=f;else break b}c[k>>2]=0;e=0;break a}else f=a;while(0);c[k>>2]=f}j=(d&8|0)==0;e=ub[c[c[f+16>>2]>>2]&31](f,e,d)|0;while(1){if(e){h=(f|0)==(a|0);i=f+16|0;do{if(h)break a;else g=a;while(1){if(ub[c[c[g+16>>2]>>2]&31](g,e,4)|0)break;g=c[g+28>>2]|0;if((g|0)==(f|0))break a}e=ub[c[c[i>>2]>>2]&31](f,e,d)|0}while((e|0)!=0)}f=c[f+28>>2]|0;c[k>>2]=f;if(!f){e=0;break a}e=c[c[f+16>>2]>>2]|0;if(j){e=ub[e&31](f,0,256)|0;continue}else{e=ub[e&31](f,0,128)|0;continue}}}}else if(!a){f=0;e=0}else{f=a;i=6}c:do if((i|0)==6)while(1){e=ub[c[c[f+16>>2]>>2]&31](f,b,d)|0;if(e)break c;f=c[f+28>>2]|0;if(!f){f=0;e=0;break}else i=6}while(0);c[a+32>>2]=f}else e=ub[c[c[a+16>>2]>>2]&31](a,b,d)|0;while(0);return e|0}function bj(a){a=a|0;var b=0;b=c[12582]|0;c[12582]=a;return b|0}function cj(a){a=a|0;var b=0;b=c[12583]|0;c[12583]=a;return b|0}function dj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=fj(a,b,f)|0;i=e;return d|0}function ej(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;fj(1,a,e)|0;i=d;return}function fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;f=h;g=(a|0)==3;e=g?c[12587]|0:(a|0)==2?1:a;c[12587]=e;j=c[12586]|0;c[12586]=j>>>0>e>>>0?j:e;do if(e>>>0>=(c[12583]|0)>>>0){e=c[12582]|0;if(!e){e=c[22667]|0;if(!g){c[f>>2]=(a|0)==1?119707:119713;Bz(e,119721,f)|0}Sz(e,b,d)|0;e=0;break}if((c[12588]|0)==0?(j=oB(c[12589]|0)|0,c[12588]=j,(j|0)==0):0){Mz(119671,35,1,c[22667]|0)|0;e=0;break}if(!g){Eb[e&31]((a|0)==1?119707:119713)|0;Eb[c[50328>>2]&31](120396)|0}while(1){e=Uz(c[12588]|0,c[12589]|0,b,d)|0;a=c[12589]|0;if((e|0)>-1&(e|0)<(a|0)){a=9;break}g=a<<1;j=e+1|0;j=(g|0)>(j|0)?g:j;c[12589]=j;if(!(rB(c[12588]|0,j)|0)){a=11;break}}if((a|0)==9){Eb[c[50328>>2]&31](c[12588]|0)|0;e=0;break}else if((a|0)==11){Mz(119671,35,1,c[22667]|0)|0;e=0;break}}else{e=c[12584]|0;if(!e){e=Qz()|0;c[12584]=e;if(!e){e=1;break}}if(!g){c[12585]=Kz(e)|0;e=c[12584]|0}Sz(e,b,d)|0;e=0}while(0);i=h;return e|0}function gj(b,d,e){b=b|0;d=d|0;e=e|0;if(!e){e=(d|0)==0?1024:d;c[b+12>>2]=1;d=e;e=oB(e)|0}else c[b+12>>2]=0;c[b>>2]=e;c[b+8>>2]=e+d;c[b+4>>2]=e;a[e>>0]=0;return}function hj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=a+8|0;f=c[a>>2]|0;e=f;g=(c[h>>2]|0)-e|0;d=g<<1;g=g+b|0;d=g>>>0>d>>>0?g:d;g=a+4|0;e=(c[g>>2]|0)-e|0;b=a+12|0;if(!(c[b>>2]|0)){i=oB(d)|0;AB(i|0,f|0,e|0)|0;c[b>>2]=1;b=i}else b=rB(f,d)|0;c[a>>2]=b;c[g>>2]=b+e;c[h>>2]=b+d;return 0}function ij(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=a+4|0;e=c[f>>2]|0;if((e+d|0)>>>0>(c[a+8>>2]|0)>>>0){hj(a,d)|0;e=c[f>>2]|0}AB(e|0,b|0,d|0)|0;c[f>>2]=(c[f>>2]|0)+d;return d|0}function jj(a,b){a=a|0;b=b|0;return ij(a,b,pA(b)|0)|0}function kj(a){a=a|0;if(c[a+12>>2]|0)pB(c[a>>2]|0);return}function lj(a){a=a|0;var b=0,e=0;b=a+4|0;e=c[b>>2]|0;if(e>>>0>(c[a>>2]|0)>>>0){c[b>>2]=e+-1;b=d[e>>0]|0}else b=-1;return b|0}function mj(a,b){a=a|0;b=b|0;var c=0,d=0;c=wl(a,119726,0)|0;if((b|0)!=0&(c|0)==0){d=hl(a)|0;Fm(d,d,86,0,1)|0;c=Rk(d)|0;if(c)do{vj(a,c);b=Lj(d,c)|0;if(b)do{xj(a,b);b=Nj(d,b)|0}while((b|0)!=0);c=Sk(d,c)|0}while((c|0)!=0);c=wl(a,119726,0)|0}return c|0}function nj(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;a=wl(a,119726,0)|0;a:do if(!a)a=0;else switch(b|0){case 0:{a=c[a+16>>2]|0;break a}case 1:{a=c[a+8>>2]|0;break a}case 2:case 3:{a=c[a+12>>2]|0;break a}default:{c[d>>2]=b;dj(1,119739,d)|0;a=0;break a}}while(0);i=e;return a|0}function oj(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=Lk(b,24)|0;a[h+20>>0]=g;c[h+8>>2]=Il(b,d)|0;c[h+12>>2]=Il(b,e)|0;c[h+16>>2]=f;return h|0}function pj(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+32|0;d=e;a=wl(a,c[12599]|0,0)|0;if(!a)a=0;else{a=c[a+8>>2]|0;c[d+8>>2]=b;a=ub[c[a>>2]&31](a,d,4)|0}i=e;return a|0}function qj(a){a=a|0;return wl(a,c[12599]|0,0)|0}function rj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;g=l;if(!a){a=c[12600]|0;if(!a){c[g>>2]=c[12601];k=ak(0,g,0)|0;c[12600]=k}else k=a}else k=a;if(!e){a=nj(k,b)|0;if(!a)a=0;else{c[g+8>>2]=d;a=ub[c[a>>2]&31](a,g,4)|0}}else{h=hl(k)|0;mj(k,1)|0;f=nj(k,b)|0;m=$i(f,0)|0;c[g+8>>2]=d;a=ub[c[f>>2]&31](f,g,4)|0;$i(f,m)|0;a:do if(!a){c[g+8>>2]=d;a=ub[c[f>>2]&31](f,g,4)|0;if(a){a=oj(k,d,e,c[a+16>>2]|0,b)|0;ub[c[f>>2]&31](f,a,1)|0;j=17;break}m=nj(h,b)|0;a=oj(k,d,e,Xi(m)|0,b)|0;ub[c[m>>2]&31](m,a,1)|0;switch(b|0){case 0:{Fm(h,h,52,a,1)|0;j=17;break a}case 1:{f=Rk(h)|0;if(!f)break a;do{Fj(k,f,a);f=Sk(h,f)|0}while((f|0)!=0);j=17;break}case 2:case 3:{f=Rk(h)|0;if(!f)break a;do{g=Lj(h,f)|0;if(g)do{Fj(k,g,a);g=Nj(h,g)|0}while((g|0)!=0);f=Sk(h,f)|0}while((f|0)!=0);j=17;break}default:break a}}else{j=a+12|0;Kl(k,c[j>>2]|0)|0;c[j>>2]=Il(k,e)|0;j=17}while(0);if((j|0)==17)if((b|0)==0&(a|0)!=0)Cj(k,a,e)|0;kl(k,k,a)}i=l;return a|0}function sj(a,b,d){a=a|0;b=b|0;d=d|0;a=nj(a,b)|0;do if(a){b=c[a>>2]|0;if(!d){a=ub[b&31](a,0,128)|0;break}else{a=ub[b&31](a,d,8)|0;break}}else a=0;while(0);return a|0}function tj(b){b=b|0;var d=0,e=0,f=0,g=0;e=b+24|0;a[e>>0]=a[e>>0]|64;e=xl(b,119726,20,0)|0;f=e+8|0;c[f>>2]=im(b,50360,c[12577]|0)|0;g=e+12|0;c[g>>2]=im(b,50360,c[12577]|0)|0;e=e+16|0;c[e>>2]=im(b,50360,c[12577]|0)|0;d=dm(b)|0;if(!d){d=c[12600]|0;if(!((d|0)==0|(d|0)==(b|0))){d=wl(d,119726,0)|0;Gj(c[d+8>>2]|0,c[f>>2]|0,b,1);Gj(c[d+12>>2]|0,c[g>>2]|0,b,2);Gj(c[d+16>>2]|0,c[e>>2]|0,b,0)}}else{d=wl(d,119726,0)|0;$i(c[f>>2]|0,c[d+8>>2]|0)|0;$i(c[g>>2]|0,c[d+12>>2]|0)|0;$i(c[e>>2]|0,c[d+16>>2]|0)|0}g=dm(b)|0;Hj((g|0)==0?b:g,b);return}function uj(a){a=a|0;var b=0;c[12654]=a;b=wl(a,c[12599]|0,0)|0;if(b){Ij(a,b);yl(a,c[b>>2]|0)|0}b=wl(a,119726,0)|0;if(b)if(((km(a,c[b+8>>2]|0)|0)==0?(km(a,c[b+12>>2]|0)|0)==0:0)?(km(a,c[b+16>>2]|0)|0)==0:0){yl(a,c[b>>2]|0)|0;b=0}else b=1;else b=0;return b|0}function vj(a,b){a=a|0;b=b|0;var d=0;d=wl(b,c[12599]|0,0)|0;if(!((d|0)!=0?(c[d+8>>2]|0)!=0:0))Hj(a,b);return}function wj(a){a=a|0;var b=0;b=wl(a,c[12599]|0,0)|0;if(b){Ij(a,b);yl(a,c[12599]|0)|0}return}function xj(a,b){a=a|0;b=b|0;var d=0;d=wl(b,c[12599]|0,0)|0;if(!((d|0)!=0?(c[d+8>>2]|0)!=0:0))Hj(a,b);return}function yj(a){a=a|0;var b=0;b=wl(a,c[12599]|0,0)|0;if(b){Ij(a,b);yl(a,c[12599]|0)|0}return}function zj(a,b){a=a|0;b=b|0;b=pj(a,b)|0;if(!b)b=0;else{a=wl(a,c[12599]|0,0)|0;b=c[(c[a+12>>2]|0)+(c[b+16>>2]<<2)>>2]|0}return b|0}function Aj(a,b){a=a|0;b=b|0;a=wl(a,c[12599]|0,0)|0;return c[(c[a+12>>2]|0)+(c[b+16>>2]<<2)>>2]|0}function Bj(a,b,c){a=a|0;b=b|0;c=c|0;b=pj(a,b)|0;if(!b)b=-1;else{Cj(a,b,c)|0;b=0}return b|0}function Cj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;e=k;f=gl(a)|0;h=wl(a,c[12599]|0,0)|0;j=b+16|0;h=h+12|0;Kl(f,c[(c[h>>2]|0)+(c[j>>2]<<2)>>2]|0)|0;g=Il(f,d)|0;c[(c[h>>2]|0)+(c[j>>2]<<2)>>2]=g;do if(!(c[a>>2]&3)){g=c[(wl(f,119726,0)|0)+16>>2]|0;h=b+8|0;m=c[h>>2]|0;l=$i(g,0)|0;c[e+8>>2]=m;e=ub[c[g>>2]&31](g,e,4)|0;$i(g,l)|0;if(!e){m=oj(f,c[h>>2]|0,d,c[j>>2]|0,c[a>>2]&3)|0;ub[c[g>>2]&31](g,m,1)|0;break}else{m=e+12|0;Kl(f,c[m>>2]|0)|0;c[m>>2]=Il(f,d)|0;break}}while(0);kl(f,a,b);i=k;return 0}function Dj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=gl(a)|0;f=rj(f,c[a>>2]&3,b,0)|0;if(!f){f=gl(a)|0;f=rj(f,c[a>>2]&3,b,e)|0}Cj(a,f,d)|0;return 0}function Ej(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=gl(a)|0;d=c[a>>2]|0;a:do if(((c[b>>2]^d)&3|0)==0?(e=sj(f,d&3,0)|0,(e|0)!=0):0){d=e;while(1){e=pj(b,c[d+8>>2]|0)|0;if(!e){d=1;break a}g=wl(a,c[12599]|0,0)|0;g=c[(c[g+12>>2]|0)+(c[d+16>>2]<<2)>>2]|0;Cj(b,e,g)|0;if(Ll(g)|0){g=wl(b,c[12599]|0,0)|0;Ml(c[(c[g+12>>2]|0)+(c[e+16>>2]<<2)>>2]|0)}d=sj(f,c[a>>2]&3,d)|0;if(!d){d=0;break}}}else d=1;while(0);return d|0}function Fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;b=wl(b,c[12599]|0,0)|0;f=d+16|0;e=c[f>>2]|0;if((e|0)>3){g=c[a+64>>2]|0;b=b+12|0;e=e<<2;c[b>>2]=Jb[c[(c[g>>2]|0)+8>>2]&31](c[g+12>>2]|0,c[b>>2]|0,e,e+4|0)|0}else b=b+12|0;g=Il(a,c[d+12>>2]|0)|0;c[(c[b>>2]|0)+(c[f>>2]<<2)>>2]=g;return}function Gj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=ub[c[b>>2]&31](b,0,128)|0;if(g)do{h=oj(e,c[g+8>>2]|0,c[g+12>>2]|0,c[g+16>>2]|0,f)|0;a[h+22>>0]=a[g+22>>0]|0;a[h+21>>0]=a[g+21>>0]|0;ub[c[d>>2]&31](d,h,1)|0;g=ub[c[b>>2]&31](b,g,8)|0}while((g|0)!=0);return}function Hj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=xl(b,c[12599]|0,16,0)|0;h=nj(a,c[b>>2]&3)|0;f=e+8|0;if((c[f>>2]|0)==0?(d=hl(a)|0,c[f>>2]=nj(d,c[b>>2]&3)|0,d=Kj(b)|0,a=gl(b)|0,g=e+12|0,c[g>>2]=Lk(a,(d|0)<4?16:d<<2)|0,d=ub[c[h>>2]&31](h,0,128)|0,(d|0)!=0):0)do{a=gl(b)|0;a=Il(a,c[d+12>>2]|0)|0;c[(c[g>>2]|0)+(c[d+16>>2]<<2)>>2]=a;d=ub[c[h>>2]&31](h,d,8)|0}while((d|0)!=0);return}function Ij(a,b){a=a|0;b=b|0;var d=0,e=0;e=gl(a)|0;d=Kj(a)|0;a=b+12|0;if((d|0)>0){b=0;do{Kl(e,c[(c[a>>2]|0)+(b<<2)>>2]|0)|0;b=b+1|0}while((b|0)!=(d|0))}Mk(e,c[a>>2]|0);return}function Jj(a,b,d){a=a|0;b=b|0;d=d|0;Kl(c[12654]|0,c[b+8>>2]|0)|0;Kl(c[12654]|0,c[b+12>>2]|0)|0;Mk(c[12654]|0,b);return}function Kj(a){a=a|0;var b=0;b=hl(gl(a)|0)|0;a=nj(b,c[a>>2]&3)|0;if(!a)a=0;else a=Xi(a)|0;return a|0}function Lj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+48|0;d=f;if((c[b+24>>2]|0)!=(a|0)){c[d+16>>2]=b;b=c[a+40>>2]|0;b=ub[c[b>>2]&31](b,d,4)|0;if(!b)b=0;else e=4}else{b=b+28|0;e=4}if((e|0)==4){a=a+44|0;e=b+32|0;Wi(c[a>>2]|0,c[e>>2]|0)|0;b=c[a>>2]|0;b=ub[c[b>>2]&31](b,0,128)|0;c[e>>2]=Si(c[a>>2]|0)|0}i=f;return b|0}function Mj(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;i=i+48|0;d=e;if((c[b+24>>2]|0)==(a|0))a=b+28|0;else{c[d+16>>2]=b;a=c[a+40>>2]|0;a=ub[c[a>>2]&31](a,d,4)|0}i=e;return a|0}function Nj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+48|0;e=g;d=c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0;if((c[d+24>>2]|0)!=(a|0)){c[e+16>>2]=d;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,e,4)|0;if(!d)d=0;else f=4}else{d=d+28|0;f=4}if((f|0)==4){a=a+44|0;f=d+32|0;Wi(c[a>>2]|0,c[f>>2]|0)|0;d=c[a>>2]|0;d=ub[c[d>>2]&31](d,b,8)|0;c[f>>2]=Si(c[a>>2]|0)|0}i=g;return d|0}function Oj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+48|0;d=f;if((c[b+24>>2]|0)!=(a|0)){c[d+16>>2]=b;b=c[a+40>>2]|0;b=ub[c[b>>2]&31](b,d,4)|0;if(!b)b=0;else e=4}else{b=b+28|0;e=4}if((e|0)==4){a=a+44|0;e=b+28|0;Wi(c[a>>2]|0,c[e>>2]|0)|0;b=c[a>>2]|0;b=ub[c[b>>2]&31](b,0,128)|0;c[e>>2]=Si(c[a>>2]|0)|0}i=f;return b|0}function Pj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+48|0;e=g;d=c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0;if((c[d+24>>2]|0)!=(a|0)){c[e+16>>2]=d;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,e,4)|0;if(!d)d=0;else f=4}else{d=d+28|0;f=4}if((f|0)==4){a=a+44|0;f=d+28|0;Wi(c[a>>2]|0,c[f>>2]|0)|0;d=c[a>>2]|0;d=ub[c[d>>2]&31](d,b,8)|0;c[f>>2]=Si(c[a>>2]|0)|0}i=g;return d|0}function Qj(a,b){a=a|0;b=b|0;var c=0;c=Lj(a,b)|0;if(!c)c=Oj(a,b)|0;return c|0}function Rj(a,b,d){a=a|0;b=b|0;d=d|0;a:do if((c[b>>2]&3|0)==2){b=Nj(a,b)|0;if(!b){b=0;do{if(!b)b=Oj(a,d)|0;else b=Pj(a,b)|0;if(!b){b=0;break a}}while((c[b+40>>2]|0)==(d|0))}}else do{b=Pj(a,b)|0;if(!b){b=0;break a}}while((c[b+40>>2]|0)==(d|0));while(0);return b|0}function Sj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+48|0;k=n+24|0;l=n+16|0;j=n;do if(!(lk(a,2,e,l,0)|0)){g=(f|0)==0;if(e)if(g){g=0;break}else{m=16;break}if(!g?(jk(a)|0)==0:0){m=16;break};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;m=7}else{o=j;c[o>>2]=0;c[o+4>>2]=0;o=l;g=c[o+4>>2]|0;m=j+8|0;c[m>>2]=c[o>>2];c[m+4>>2]=g;c[j>>2]=2;m=7}while(0);do if((m|0)==7){c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];g=Yj(a,b,d,k)|0;if(!g){if((ik(a)|0)!=0?(c[k>>2]=c[j>>2],c[k+4>>2]=c[j+4>>2],c[k+8>>2]=c[j+8>>2],c[k+12>>2]=c[j+12>>2],h=Yj(a,d,b,k)|0,(h|0)!=0):0){g=h;break}if(!f)g=0;else{g=hl(a)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];g=Yj(g,b,d,k)|0;if(!g){if(!(ik(a)|0)){m=16;break}g=hl(a)|0;c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];g=Yj(g,d,b,k)|0;if(!g){m=16;break}}_j(a,g)}}}while(0);if((m|0)==16)if((Zj(a,b,d)|0)!=0?(lk(a,2,e,l,1)|0)!=0:0){g=l;g=$j(a,b,d,c[g>>2]|0,c[g+4>>2]|0)|0;pk(a,2,g)}else g=0;i=n;return g|0}function Tj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+48|0;j=k;g=(c[b>>2]&3|0)==3;h=g?b+-48|0:b;g=g?b:b+48|0;d=c[g+40>>2]|0;f=c[h+40>>2]|0;if((c[d+24>>2]|0)==(a|0))d=d+28|0;else{c[j+16>>2]=d;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,j,4)|0}b=a+44|0;l=c[b>>2]|0;e=d+32|0;Wi(l,c[e>>2]|0)|0;ub[c[l>>2]&31](l,h,2)|0;c[e>>2]=Si(l)|0;e=a+48|0;l=c[e>>2]|0;d=d+24|0;Wi(l,c[d>>2]|0)|0;ub[c[l>>2]&31](l,h,2)|0;c[d>>2]=Si(l)|0;if((c[f+24>>2]|0)==(a|0))d=f+28|0;else{c[j+16>>2]=f;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,j,4)|0}l=c[b>>2]|0;a=d+28|0;Wi(l,c[a>>2]|0)|0;ub[c[l>>2]&31](l,g,2)|0;c[a>>2]=Si(l)|0;a=c[e>>2]|0;l=d+20|0;Wi(a,c[l>>2]|0)|0;ub[c[a>>2]&31](a,g,2)|0;c[l>>2]=Si(a)|0;i=k;return}function Uj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e;d=(c[d>>2]&3|0)==2?d:d+-48|0;g=c[d>>2]&3;h=c[((g|0)==3?d:d+48|0)+40>>2]|0;g=c[((g|0)==2?d:d+-48|0)+40>>2]|0;c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];c[f+8>>2]=c[d+8>>2];c[f+12>>2]=c[d+12>>2];if(Yj(b,h,g,f)|0){if((hl(b)|0)==(b|0)){if(a[b+24>>0]&64)yj(d);ml(b,d);Bl(d);h=d+8|0;nk(b,2,c[h>>2]|0,c[h+4>>2]|0)}if(!(Fm(b,d,53,0,0)|0))if((hl(b)|0)==(b|0)){Mk(b,d);d=0}else d=0;else d=-1}else d=-1;i=e;return d|0}function Vj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h;g=Wk(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0,d)|0;f=Wk(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0,d)|0;do if((g|0)!=0&(f|0)!=0){c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];e=Yj(a,g,f,e)|0;f=(e|0)==0;if(!((d|0)!=0&f)){if(f){e=0;break}}else{_j(a,b);e=b}f=c[e>>2]&3;if((f|0)!=(c[b>>2]&3|0))e=(f|0)==3?e+-48|0:e+48|0}else e=0;while(0);i=h;return e|0}function Wj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=(c[b+40>>2]|0)+8|0;f=c[g>>2]|0;g=c[g+4>>2]|0;e=(c[d+40>>2]|0)+8|0;a=c[e>>2]|0;e=c[e+4>>2]|0;do if(!(g>>>0<e>>>0|(g|0)==(e|0)&f>>>0<a>>>0))if(g>>>0>e>>>0|(g|0)==(e|0)&f>>>0>a>>>0)a=1;else{e=b+8|0;a=c[e>>2]|0;e=c[e+4>>2]|0;if(!((a|0)==0&(e|0)==0)?(i=d+8|0,h=c[i>>2]|0,i=c[i+4>>2]|0,!((h|0)==0&(i|0)==0)):0){if(e>>>0<i>>>0|(e|0)==(i|0)&a>>>0<h>>>0){a=-1;break}if(e>>>0>i>>>0|(e|0)==(i|0)&a>>>0>h>>>0){a=1;break}}a=0}else a=-1;while(0);return a|0}function Xj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;a=c[b+40>>2]|0;f=c[d+40>>2]|0;if((a|0)==(f|0)){e=(c[b>>2]|0)>>>4;a=(c[d>>2]|0)>>>4;if(e>>>0>=a>>>0)if(e>>>0>a>>>0)a=1;else g=6;else a=-1}else{e=(c[a>>2]|0)>>>4;a=(c[f>>2]|0)>>>4;if(e>>>0>=a>>>0)if(e>>>0>a>>>0)a=1;else g=6;else a=-1}if((g|0)==6)a=0;return a|0}function Yj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+96|0;f=h+48|0;g=h;do if((b|0)==0|(d|0)==0)d=0;else{c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];c[g+8>>2]=c[e+8>>2];c[g+12>>2]=c[e+12>>2];c[g+40>>2]=b;if((c[d+24>>2]|0)!=(a|0)){c[f+16>>2]=d;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,f,4)|0;if(!d){d=0;break}}else d=d+28|0;f=a+48|0;a=d+20|0;Wi(c[f>>2]|0,c[a>>2]|0)|0;d=c[f>>2]|0;d=ub[c[d>>2]&31](d,g,4)|0;c[a>>2]=Si(c[f>>2]|0)|0}while(0);i=h;return d|0}function Zj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+32|0;g=h+16|0;f=h;if((jk(b)|0)!=0?(c[f>>2]=0,c[f+4>>2]=0,c[f+8>>2]=0,c[f+12>>2]=0,c[g>>2]=c[f>>2],c[g+4>>2]=c[f+4>>2],c[g+8>>2]=c[f+8>>2],c[g+12>>2]=c[f+12>>2],(Yj(b,d,e,g)|0)!=0):0){i=h;return 0}i=h;return (d|0)==(e|0)&(a[b+24>>0]&4)!=0&1^1|0}function _j(a,b){a=a|0;b=b|0;var 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;s=i;i=i+48|0;g=s;q=c[b>>2]&3;p=(q|0)==2?b:b+-48|0;q=(q|0)==3?b:b+48|0;r=c[q+40>>2]|0;h=c[p+40>>2]|0;a:do if(a){j=r+24|0;k=r+28|0;l=h+24|0;m=h+28|0;n=g+16|0;o=g+16|0;do{c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];if(Yj(a,r,h,g)|0)break a;if((c[j>>2]|0)==(a|0))d=k;else{c[o>>2]=r;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,g,4)|0}e=a+44|0;t=c[e>>2]|0;f=d+32|0;Wi(t,c[f>>2]|0)|0;ub[c[t>>2]&31](t,p,1)|0;c[f>>2]=Si(t)|0;f=a+48|0;t=c[f>>2]|0;d=d+24|0;Wi(t,c[d>>2]|0)|0;ub[c[t>>2]&31](t,p,1)|0;c[d>>2]=Si(t)|0;if((c[l>>2]|0)==(a|0))d=m;else{c[n>>2]=h;d=c[a+40>>2]|0;d=ub[c[d>>2]&31](d,g,4)|0}e=c[e>>2]|0;t=d+28|0;Wi(e,c[t>>2]|0)|0;ub[c[e>>2]&31](e,q,1)|0;c[t>>2]=Si(e)|0;f=c[f>>2]|0;t=d+20|0;Wi(f,c[t>>2]|0)|0;ub[c[f>>2]&31](f,q,1)|0;c[t>>2]=Si(f)|0;a=dm(a)|0}while((a|0)!=0)}while(0);i=s;return}function $j(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;Wk(b,d,1)|0;Wk(b,e,1)|0;h=Lk(b,96)|0;i=h+48|0;l=ck(b,2)|0;j=c[i>>2]|0;k=c[h>>2]|0;m=h+8|0;c[m>>2]=f;c[m+4>>2]=g;m=h+56|0;c[m>>2]=f;c[m+4>>2]=g;g=l<<4;c[h>>2]=k&12|g|2;c[i>>2]=j&12|g|3;c[h+88>>2]=d;c[h+40>>2]=e;_j(b,h);if(a[b+24>>0]&64){xl(h,c[12599]|0,16,0)|0;xj(b,h)}il(b,h);return h|0}function ak(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m;f=(e|0)!=0;if(f){g=c[e>>2]|0;g=(g|0)==0?50744:g}else g=50744;h=Eb[c[g>>2]&31](e)|0;j=g+4|0;k=Lb[c[j>>2]&63](h,80)|0;c[k>>2]=g;c[k+12>>2]=h;if(f){f=c[e+4>>2]|0;c[k+4>>2]=(f|0)==0?50620:f;f=c[e+8>>2]|0;f=(f|0)==0?50720:f}else{c[k+4>>2]=50620;f=50720}c[k+8>>2]=f;a[k+52>>0]=1;f=Lb[c[j>>2]&63](h,72)|0;c[f>>2]=c[f>>2]&-4;j=f+64|0;c[j>>2]=k;h=f+24|0;d=c[d>>2]|0;c[h>>2]=d;a[h>>0]=d&255|8;c[f+60>>2]=f;d=Lb[c[c[k+4>>2]>>2]&63](f,e)|0;c[(c[j>>2]|0)+16>>2]=d;if(lk(f,0,b,l,1)|0){d=l;l=c[d+4>>2]|0;b=f+8|0;c[b>>2]=c[d>>2];c[b+4>>2]=l}b=bk(f)|0;pk(b,0,b);i=m;return b|0}function bk(b){b=b|0;var d=0,e=0,f=0;c[b+36>>2]=im(b,50800,c[12577]|0)|0;c[b+40>>2]=im(b,50764,c[12577]|0)|0;d=(hl(b)|0)==(b|0);c[b+44>>2]=im(b,d?50408:50444,c[12577]|0)|0;d=(hl(b)|0)==(b|0);c[b+48>>2]=im(b,d?50480:50516,c[12577]|0)|0;c[b+52>>2]=im(b,50552,c[12577]|0)|0;d=dm(b)|0;if(!((d|0)!=0?(f=(c[d+64>>2]|0)+24|0,e=f,e=wB(c[e>>2]|0,c[e+4>>2]|0,1,0)|0,f,c[f>>2]=e,c[f+4>>2]=C,c[b>>2]=e<<4|c[b>>2]&15,e=c[d+52>>2]|0,ub[c[e>>2]&31](e,b,1)|0,(a[d+24>>0]&64)==0):0))tj(b);il(b,b);return b|0}function ck(a,b){a=a|0;b=b|0;var d=0;d=(c[a+64>>2]|0)+24+(b<<3)|0;b=d;b=wB(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;a=C;c[d>>2]=b;c[d+4>>2]=a;C=a;return b|0}function dk(b){b=b|0;var d=0,e=0,f=0,g=0;f=dm(b)|0;g=(f|0)==0;if(g?(d=b+64|0,(c[(c[c[d>>2]>>2]|0)+16>>2]|0)!=0):0){ml(b,b);g=b+8|0;nk(b,0,c[g>>2]|0,c[g+4>>2]|0);d=c[d>>2]|0;zb[c[(c[d>>2]|0)+16>>2]&127](c[d+12>>2]|0);d=0}else e=4;do if((e|0)==4){d=bm(b)|0;if(d)do{e=d;d=cm(d)|0;dk(e)|0}while((d|0)!=0);d=Rk(b)|0;if(d)do{e=d;d=Sk(b,d)|0;Zk(b,e)|0}while((d|0)!=0);Ck(b);ml(b,b);if(((((km(b,c[b+40>>2]|0)|0)==0?(km(b,c[b+36>>2]|0)|0)==0:0)?(km(b,c[b+48>>2]|0)|0)==0:0)?(km(b,c[b+44>>2]|0)|0)==0:0)?(km(b,c[b+52>>2]|0)|0)==0:0){if((a[b+24>>0]&64)!=0?(uj(b)|0)!=0:0){d=-1;break}Bl(b);e=b+8|0;nk(b,0,c[e>>2]|0,c[e+4>>2]|0);if(!g){em(f,b)|0;Mk(f,b);d=0;break}f=b+64|0;d=c[f>>2]|0;e=c[d+48>>2]|0;if(e)do{pl(b,c[e>>2]|0)|0;d=c[f>>2]|0;e=c[d+48>>2]|0}while((e|0)!=0);zb[c[(c[d+4>>2]|0)+20>>2]&127](c[d+16>>2]|0);if(!(Gl(b)|0)){d=c[f>>2]|0;g=c[d+12>>2]|0;f=(c[d>>2]|0)+12|0;Bb[c[f>>2]&31](g,b);Bb[c[f>>2]&31](g,d);d=0}else d=-1}else d=-1}while(0);return d|0}function ek(a){a=a|0;return Xi(c[a+40>>2]|0)|0}function fk(a){a=a|0;var b=0,c=0;b=Rk(a)|0;if(!b)b=0;else{c=b;b=0;do{b=(gk(a,c,0,1)|0)+b|0;c=Sk(a,c)|0}while((c|0)!=0)}return b|0}function gk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Mj(a,b)|0;if(f){if(!e)b=0;else{g=c[a+44>>2]|0;e=f+32|0;Wi(g,c[e>>2]|0)|0;b=Xi(g)|0;c[e>>2]=Si(g)|0}if(d){a=c[a+44>>2]|0;d=f+28|0;Wi(a,c[d>>2]|0)|0;g=Xi(a)|0;c[d>>2]=Si(a)|0;b=g+b|0}}else b=0;return b|0}function hk(b){b=b|0;return a[b+24>>0]&1|0}function ik(b){b=b|0;return (a[b+24>>0]&1^1)&255|0}function jk(a){a=a|0;return (d[a+24>>0]|0)>>>1&1|0}function kk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=b+8|0;e=d+8|0;e=vB(c[a>>2]|0,c[a+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;return ((e|0)==0?0:e>>31|1)|0}function lk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;i=(e|0)!=0;do if(i){if((a[e>>0]|0)!=37?(h=c[b+64>>2]|0,h=Nb[c[(c[h+4>>2]|0)+4>>2]&3](c[h+16>>2]|0,d,e,f,g)|0,(h|0)!=0):0)break;h=xk(b,d,e,f)|0;if(!h)j=5}else j=5;while(0);if((j|0)==5)if(g){h=c[b+64>>2]|0;h=Nb[c[(c[h+4>>2]|0)+4>>2]&3](c[h+16>>2]|0,d,0,f,g)|0;if(i&(h|0)!=0){j=f;yk(b,d,e,c[j>>2]|0,c[j+4>>2]|0)}}else h=0;return h|0}function mk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[a+64>>2]|0;return Jb[c[(c[a+4>>2]|0)+8>>2]&31](c[a+16>>2]|0,b,d,e)|0}function nk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Ak(a,b,d,e)|0;a=c[a+64>>2]|0;Kb[c[(c[a+4>>2]|0)+12>>2]&31](c[a+16>>2]|0,b,d,e);return}function ok(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;d=gl(a)|0;f=a+8|0;b=f;b=zk(d,c[a>>2]&3,c[b>>2]|0,c[b+4>>2]|0)|0;do if(!b){b=c[d+64>>2]|0;d=c[(c[b+4>>2]|0)+16>>2]|0;if((d|0)!=0?(e=f,e=Jb[d&31](c[b+16>>2]|0,c[a>>2]&3,c[e>>2]|0,c[e+4>>2]|0)|0,(e|0)!=0):0){b=e;break}if((c[a>>2]&3|0)==2)b=0;else{a=f;f=c[a>>2]|0;a=c[a+4>>2]|0;c[g>>2]=37;b=g+8|0;c[b>>2]=f;c[b+4>>2]=a;Oz(119778,119810,g)|0;b=119778}}while(0);i=h;return b|0}function pk(a,b,d){a=a|0;b=b|0;d=d|0;a=c[a+64>>2]|0;Gb[c[(c[a+4>>2]|0)+24>>2]&127](c[a+16>>2]|0,b,d);return}function qk(a,b){a=a|0;b=b|0;return a|0}function rk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;if(!d){b=33344;a=c[b+4>>2]|0;d=e;c[d>>2]=c[b>>2];c[d+4>>2]=a;d=33344;d=wB(c[d>>2]|0,c[d+4>>2]|0,2,0)|0;e=33344;c[e>>2]=d;c[e+4>>2]=C}else{if(!f)f=Hl(a,d)|0;else f=Il(a,d)|0;c[e>>2]=f;c[e+4>>2]=0}return 1}function sk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return 0}function tk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((c&1|0)==0&0==0)Kl(a,c)|0;return}function uk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ((c&1|0)==0&0==0?c:0)|0}function vk(a){a=a|0;return}function wk(a,b,c){a=a|0;b=b|0;c=c|0;return}function xk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j;b=c[(c[a+64>>2]|0)+56+(((b|0)==3?2:b)<<2)>>2]|0;if(((b|0)!=0?(g=Hl(a,d)|0,(g|0)!=0):0)?(c[h+24>>2]=g,f=ub[c[b>>2]&31](b,h,4)|0,(f|0)!=0):0){d=f+16|0;h=c[d+4>>2]|0;b=e;c[b>>2]=c[d>>2];c[b+4>>2]=h;b=1}else b=0;i=j;return b|0}function yk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=Lk(a,32)|0;h=g+16|0;c[h>>2]=e;c[h+4>>2]=f;c[g+24>>2]=Il(a,d)|0;b=(b|0)==3?2:b;d=a+64|0;e=c[d>>2]|0;f=c[e+56+(b<<2)>>2]|0;if(!f){f=im(a,50648,c[12577]|0)|0;c[(c[d>>2]|0)+56+(b<<2)>>2]=f;e=c[d>>2]|0}e=c[e+68+(b<<2)>>2]|0;if(!e){e=im(a,50684,c[12577]|0)|0;c[(c[d>>2]|0)+68+(b<<2)>>2]=e}ub[c[f>>2]&31](f,g,1)|0;ub[c[e>>2]&31](e,g,1)|0;return}function zk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+32|0;g=h;a=c[(c[a+64>>2]|0)+68+(((b|0)==3?2:b)<<2)>>2]|0;if((a|0)!=0?(f=g+16|0,c[f>>2]=d,c[f+4>>2]=e,f=ub[c[a>>2]&31](a,g,4)|0,(f|0)!=0):0)a=c[f+24>>2]|0;else a=0;i=h;return a|0}function Ak(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;b=(b|0)==3?2:b;f=a+64|0;g=c[(c[f>>2]|0)+68+(b<<2)>>2]|0;if((g|0)!=0?(h=j+16|0,c[h>>2]=d,c[h+4>>2]=e,h=ub[c[g>>2]&31](g,j,4)|0,(h|0)!=0):0){j=c[(c[f>>2]|0)+56+(b<<2)>>2]|0;ub[c[j>>2]&31](j,h,2)|0;b=c[(c[f>>2]|0)+68+(b<<2)>>2]|0;ub[c[b>>2]&31](b,h,2)|0;Kl(a,c[h+24>>2]|0)|0;Mk(a,h);b=1}else b=0;i=k;return b|0}function Bk(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;c[12654]=b;f=c[b+64>>2]|0;i=0;do{g=f+56+(i<<2)|0;d=c[g>>2]|0;if((d|0)!=0?(h=ub[c[d>>2]&31](d,0,128)|0,(h|0)!=0):0){d=h;do{j=c[g>>2]|0;e=d;d=ub[c[j>>2]&31](j,d,8)|0;if((a[c[e+24>>2]>>0]|0)==37){j=e+16|0;Ak(b,i,c[j>>2]|0,c[j+4>>2]|0)|0}}while((d|0)!=0)}i=i+1|0}while((i|0)!=3);return}function Ck(a){a=a|0;c[12654]=a;a=a+64|0;Dk((c[a>>2]|0)+56|0);Dk((c[a>>2]|0)+68|0);return}function Dk(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b){Pi(b)|0;c[a>>2]=0}b=a+4|0;d=c[b>>2]|0;if(d){Pi(d)|0;c[b>>2]=0}b=a+8|0;d=c[b>>2]|0;if(d){Pi(d)|0;c[b>>2]=0}return}function Ek(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=b+16|0;a=c[b>>2]|0;b=c[b+4>>2]|0;d=d+16|0;e=c[d>>2]|0;d=c[d+4>>2]|0;return (b>>>0>d>>>0|(b|0)==(d|0)&a>>>0>e>>>0?1:(b>>>0<d>>>0|(b|0)==(d|0)&a>>>0<e>>>0)<<31>>31)|0}function Fk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[b+24>>2]|0;e=c[d+24>>2]|0;return (a>>>0>e>>>0?1:(a>>>0<e>>>0)<<31>>31)|0}function Gk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+32|0;e=b+12|0;d=b;c[12684]=c[12681];c[12685]=c[12682];c[e>>2]=a;c[e+4>>2]=pA(a)|0;c[e+8>>2]=0;c[d>>2]=50744;c[d+4>>2]=50620;c[d+8>>2]=50732;a=Mm(e,d)|0;Ol(0);i=b;return a|0}function Hk(a,b,c){a=a|0;b=b|0;c=c|0;if(!(yz(b,c,a)|0))b=0;else b=pA(b)|0;return b|0}function Ik(a,b){a=a|0;b=b|0;return Dz(b,a)|0}function Jk(a){a=a|0;return wz(a)|0}function Kk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if((e|0)!=0?(h=b+8|0,f=c[h>>2]|0,(f|0)<(c[b+4>>2]|0)):0){i=c[b>>2]|0;g=a[i+f>>0]|0;b=0;f=i+(f+1)|0;while(1){a[d>>0]=g;b=b+1|0;if(!(g<<24>>24!=10&(b|0)<(e|0)))break;g=a[f>>0]|0;if(!(g<<24>>24))break;else{d=d+1|0;f=f+1|0}}c[h>>2]=(c[h>>2]|0)+b}else b=0;return b|0}function Lk(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;a=c[a+64>>2]|0;a=Lb[c[(c[a>>2]|0)+4>>2]&63](c[a+12>>2]|0,b)|0;if(!a)dj(1,119816,d)|0;i=d;return a|0}function Mk(a,b){a=a|0;b=b|0;if(b){a=c[a+64>>2]|0;Bb[c[(c[a>>2]|0)+12>>2]&31](c[a+12>>2]|0,b)}return}function Nk(a){a=a|0;return 0}function Ok(a,b){a=a|0;b=b|0;a=oB(b)|0;CB(a|0,0,b|0)|0;return a|0}function Pk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=rB(b,d)|0;if(d>>>0>c>>>0)CB(a+c|0,0,d-c|0)|0;return a|0}function Qk(a,b){a=a|0;b=b|0;pB(b);return}function Rk(a){a=a|0;a=c[a+36>>2]|0;a=ub[c[a>>2]&31](a,0,128)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function Sk(a,b){a=a|0;b=b|0;var d=0;b=Mj(a,b)|0;if((b|0)!=0?(d=c[a+36>>2]|0,d=ub[c[d>>2]&31](d,b,8)|0,(d|0)!=0):0)b=c[d+16>>2]|0;else b=0;return b|0}function Tk(a){a=a|0;a=c[a+36>>2]|0;a=ub[c[a>>2]&31](a,0,256)|0;if(!a)a=0;else a=c[a+16>>2]|0;return a|0}function Uk(a,b){a=a|0;b=b|0;var d=0;b=Mj(a,b)|0;if((b|0)!=0?(d=c[a+36>>2]|0,d=ub[c[d>>2]&31](d,b,16)|0,(d|0)!=0):0)b=c[d+16>>2]|0;else b=0;return b|0}function Vk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=33360;c[f>>2]=b;c[f+4>>2]=d;c[12713]=33352;f=c[a+40>>2]|0;f=ub[c[f>>2]&31](f,50836,4)|0;if(!f)f=0;else f=c[f+16>>2]|0;do if((e|0)!=0&(f|0)==0){f=hl(a)|0;if(((f|0)!=(a|0)?(g=33360,c[g>>2]=b,c[g+4>>2]=d,c[12713]=33352,g=c[f+40>>2]|0,g=ub[c[g>>2]&31](g,50836,4)|0,(g|0)!=0):0)?(h=c[g+16>>2]|0,(h|0)!=0):0){Wk(a,h,1)|0;f=h;break}if(!(mk(a,1,b,d)|0))f=0;else{f=ck(a,1)|0;f=al(a,b,d,f,C)|0;bl(a,f);cl(a,f)}}while(0);return f|0}function Wk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=hl(a)|0;if((e|0)==(c[b+24>>2]|0)){g=b+8|0;f=c[g+4>>2]|0;e=33360;c[e>>2]=c[g>>2];c[e+4>>2]=f;c[12713]=33352;e=c[a+40>>2]|0;e=ub[c[e>>2]&31](e,50836,4)|0;if(!e)e=0;else e=c[e+16>>2]|0;if((d|0)!=0&(e|0)==0){e=dm(a)|0;if(!e)e=0;else{g=Wk(e,b,d)|0;dl(a,g);return g|0}}}else e=0;return e|0}function Xk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+16|0;k=m;f=hl(a)|0;do if(lk(a,1,b,k,0)|0){o=k;n=c[o+4>>2]|0;g=33360;c[g>>2]=c[o>>2];c[g+4>>2]=n;c[12713]=33352;g=c[a+40>>2]|0;g=ub[c[g>>2]&31](g,50836,4)|0;if((g|0)!=0?(e=c[g+16>>2]|0,(e|0)!=0):0)break;if((!((d|0)==0|(f|0)==(a|0))?(n=k,o=c[n+4>>2]|0,h=33360,c[h>>2]=c[n>>2],c[h+4>>2]=o,c[12713]=33352,h=c[f+40>>2]|0,h=ub[c[h>>2]&31](h,50836,4)|0,(h|0)!=0):0)?(j=c[h+16>>2]|0,(j|0)!=0):0)e=Wk(a,j,1)|0;else l=8}else l=8;while(0);if((l|0)==8)if((d|0)!=0?(lk(a,1,b,k,1)|0)!=0:0){o=k;n=c[o>>2]|0;o=c[o+4>>2]|0;e=ck(a,1)|0;e=al(a,n,o,e,C)|0;bl(a,e);cl(a,e);pk(a,1,e)}else e=0;i=m;return e|0}function Yk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[12722]=b;d=Qj(a,b)|0;if(d)do{e=d;d=Rj(a,d,b)|0;Tj(a,e,0)}while((d|0)!=0);e=c[a+40>>2]|0;ub[c[e>>2]&31](e,50872,2)|0;e=c[a+36>>2]|0;ub[c[e>>2]&31](e,50872,2)|0;return}function Zk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=d+8|0;h=f;g=c[h+4>>2]|0;e=33360;c[e>>2]=c[h>>2];c[e+4>>2]=g;c[12713]=33352;e=c[b+40>>2]|0;e=ub[c[e>>2]&31](e,50836,4)|0;if((e|0)!=0?(c[e+16>>2]|0)!=0:0){if((hl(b)|0)==(b|0)){e=Qj(b,d)|0;if(e)do{h=e;e=Rj(b,e,d)|0;Uj(b,h)|0}while((e|0)!=0);if(a[b+24>>0]&64)wj(d);ml(b,d);Bl(d);h=f;nk(b,1,c[h>>2]|0,c[h+4>>2]|0)}if(!(Fm(b,d,54,0,0)|0))if((hl(b)|0)==(b|0)){Mk(b,d);e=0}else e=0;else e=-1}else e=-1;return e|0}function _k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=(c[b+16>>2]|0)+8|0;a=c[b>>2]|0;b=c[b+4>>2]|0;d=(c[d+16>>2]|0)+8|0;e=c[d>>2]|0;d=c[d+4>>2]|0;return (b>>>0<d>>>0|(b|0)==(d|0)&a>>>0<e>>>0?-1:(b>>>0>d>>>0|(b|0)==(d|0)&a>>>0>e>>>0)&1)|0}function $k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=(c[c[b+16>>2]>>2]|0)>>>4;e=(c[c[d+16>>2]>>2]|0)>>>4;return (a>>>0<e>>>0?-1:a>>>0>e>>>0&1)|0}function al(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;g=Lk(b,64)|0;h=c[g>>2]|0;i=g+8|0;c[i>>2]=d;c[i+4>>2]=e;c[g>>2]=h&12|f<<4|1;c[g+24>>2]=hl(b)|0;if(a[(hl(b)|0)+24>>0]&64)xl(g,c[12599]|0,16,0)|0;return g|0}function bl(a,b){a=a|0;b=b|0;do{dl(a,b);a=dm(a)|0}while((a|0)!=0);return}function cl(b,c){b=b|0;c=c|0;if(a[(hl(b)|0)+24>>0]&64)vj(b,c);il(b,c);return}function dl(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+40|0;Xi(c[d>>2]|0)|0;if((hl(a)|0)==(a|0))e=b+28|0;else e=Lk(a,36)|0;c[e+16>>2]=b;b=c[d>>2]|0;ub[c[b>>2]&31](b,e,1)|0;b=c[a+36>>2]|0;ub[c[b>>2]&31](b,e,1)|0;return}function el(a,b,d){a=a|0;b=b|0;d=d|0;a=c[b+16>>2]|0;if((a+28|0)!=(b|0))Mk(c[a+24>>2]|0,b);return}function fl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+8|0;e=h;d=c[b>>2]|0;do if(!(d&3))if((dm(b)|0)==(a|0)){d=c[b>>2]|0;g=5;break}else{dj(1,119842,e)|0;d=-1;break}else g=5;while(0);a:do if((g|0)==5)switch(d&3|0){case 1:{d=Zk(a,b)|0;break a}case 2:case 3:{d=Uj(a,b)|0;break a}case 0:{d=dk(b)|0;break a}default:{dj(1,119866,f)|0;d=0;break a}}while(0);i=h;return d|0}function gl(a){a=a|0;var b=0;b=i;i=i+16|0;switch(c[a>>2]&3|0){case 2:case 3:{a=c[(c[a+40>>2]|0)+24>>2]|0;break}case 1:{a=c[a+24>>2]|0;break}case 0:break;default:{dj(1,119889,b)|0;a=0}}i=b;return a|0}function hl(a){a=a|0;var b=0;b=i;i=i+16|0;switch(c[a>>2]&3|0){case 2:case 3:{a=c[(c[a+40>>2]|0)+24>>2]|0;break}case 1:{a=c[a+24>>2]|0;break}case 0:{a=c[a+60>>2]|0;break}default:{dj(1,119911,b)|0;a=0}}i=b;return a|0}function il(b,d){b=b|0;d=d|0;var e=0;e=c[b+64>>2]|0;if(!(a[e+52>>0]|0))sl(b,d,100,0);else jl(b,d,c[e+48>>2]|0);return}function jl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a:do if(d){jl(a,b,c[d+8>>2]|0);switch(c[b>>2]&3|0){case 0:{e=c[d>>2]|0;break}case 1:{e=(c[d>>2]|0)+12|0;break}case 2:{e=(c[d>>2]|0)+24|0;break}default:break a}e=c[e>>2]|0;if(e)Gb[e&127](a,b,c[d+4>>2]|0)}while(0);return}function kl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=c[b+64>>2]|0;if(!(a[f+52>>0]|0))sl(b,d,101,e);else ll(b,d,e,c[f+48>>2]|0);return}function ll(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;a:do if(e){ll(a,b,d,c[e+8>>2]|0);switch(c[b>>2]&3|0){case 0:{f=(c[e>>2]|0)+4|0;break}case 1:{f=(c[e>>2]|0)+16|0;break}case 2:{f=(c[e>>2]|0)+28|0;break}default:break a}f=c[f>>2]|0;if(f)Kb[f&31](a,b,c[e+4>>2]|0,d)}while(0);return}function ml(b,d){b=b|0;d=d|0;var e=0;e=c[b+64>>2]|0;if(!(a[e+52>>0]|0))sl(b,d,102,0);else nl(b,d,c[e+48>>2]|0);return}function nl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a:do if(d){nl(a,b,c[d+8>>2]|0);switch(c[b>>2]&3|0){case 0:{e=(c[d>>2]|0)+8|0;break}case 1:{e=(c[d>>2]|0)+20|0;break}case 2:{e=(c[d>>2]|0)+32|0;break}default:break a}e=c[e>>2]|0;if(e)Gb[e&127](a,b,c[d+4>>2]|0)}while(0);return}function ol(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Lk(a,12)|0;c[e>>2]=b;c[e+4>>2]=d;d=(c[a+64>>2]|0)+48|0;c[e+8>>2]=c[d>>2];c[d>>2]=e;return}function pl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=(c[a+64>>2]|0)+48|0;d=c[e>>2]|0;a:do if(!d)d=-1;else{if((c[d>>2]|0)!=(b|0)){while(1){if(!d){d=-1;break a}f=d+8|0;e=c[f>>2]|0;if((c[e>>2]|0)==(b|0))break;else d=e}if(e)c[f>>2]=c[e+8>>2]}else c[e>>2]=c[d+8>>2];Mk(a,d);d=0}while(0);return d|0}function ql(a,b){a=a|0;b=b|0;var d=0;d=hl(a)|0;a:do if((d|0)==(hl(b)|0))switch(c[b>>2]&3|0){case 0:{while(1){if((b|0)==(a|0)){b=1;break a}b=dm(b)|0;if(!b){b=0;break}}break}case 1:{b=b+8|0;b=(Vk(a,c[b>>2]|0,c[b+4>>2]|0,0)|0)!=0&1;break a}default:{b=(Vj(a,b,0)|0)!=0&1;break a}}else b=0;while(0);return b|0}function rl(a){a=a|0;return c[a>>2]&3|0}function sl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+48|0;f=k+32|0;j=k;h=xl(a,119934,44,0)|0;a:do switch(d|0){case 100:{d=tl(h,b,100)|0;f=b+8|0;g=c[f+4>>2]|0;h=j+8|0;c[h>>2]=c[f>>2];c[h+4>>2]=g;if(!(ub[c[d>>2]&31](d,j,4)|0))ul(d,a,b,e)|0;break}case 101:{g=tl(h,b,100)|0;d=b+8|0;m=d;l=c[m+4>>2]|0;f=j+8|0;c[f>>2]=c[m>>2];c[f+4>>2]=l;if((ub[c[g>>2]&31](g,j,4)|0)==0?(m=tl(h,b,102)|0,f=d,g=c[f+4>>2]|0,l=j+8|0,c[l>>2]=c[f>>2],c[l+4>>2]=g,(ub[c[m>>2]&31](m,j,4)|0)==0):0){f=tl(h,b,101)|0;l=d;m=c[l+4>>2]|0;d=j+8|0;c[d>>2]=c[l>>2];c[d+4>>2]=m;d=ub[c[f>>2]&31](f,j,4)|0;if(!d)d=ul(f,a,b,e)|0;d=c[d+24>>2]|0;if(d)do{if((c[d>>2]|0)==(e|0))break a;d=c[d+4>>2]|0}while((d|0)!=0)}break}case 102:{d=tl(h,b,100)|0;g=b+8|0;l=g;m=c[l+4>>2]|0;f=j+8|0;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=ub[c[d>>2]&31](d,j,4)|0;if(f)ub[c[d>>2]&31](d,f,2)|0;f=tl(h,b,101)|0;l=g;m=c[l+4>>2]|0;d=j+8|0;c[d>>2]=c[l>>2];c[d+4>>2]=m;d=ub[c[f>>2]&31](f,j,4)|0;if(d)ub[c[f>>2]&31](f,d,2)|0;d=tl(h,b,102)|0;h=g;l=c[h+4>>2]|0;m=j+8|0;c[m>>2]=c[h>>2];c[m+4>>2]=l;if(!(ub[c[d>>2]&31](d,j,4)|0))ul(d,a,b,e)|0;break}default:dj(1,119946,f)|0}while(0);i=k;return}function tl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g;a:do switch(c[b>>2]&3|0){case 0:switch(d|0){case 100:{d=a+8|0;break a}case 101:{d=a+20|0;break a}case 102:{d=a+32|0;break a}default:{f=14;break a}}case 1:switch(d|0){case 100:{d=a+12|0;break a}case 101:{d=a+24|0;break a}case 102:{d=a+36|0;break a}default:{f=14;break a}}case 2:switch(d|0){case 100:{d=a+16|0;break a}case 101:{d=a+28|0;break a}case 102:{d=a+40|0;break a}default:{f=14;break a}}default:f=14}while(0);if((f|0)==14){dj(1,119980,e)|0;d=0}a=c[d>>2]|0;if(!a){a=gl(b)|0;a=im(a,50908,c[12577]|0)|0;c[d>>2]=a}i=g;return a|0}function ul(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Lk(gl(d)|0,32)|0;c[f+20>>2]=d;h=d+8|0;g=c[h+4>>2]|0;d=f+8|0;c[d>>2]=c[h>>2];c[d+4>>2]=g;c[f+16>>2]=b;if(e){h=Lk(b,8)|0;c[f+24>>2]=h;c[h>>2]=e}ub[c[a>>2]&31](a,f,1)|0;return f|0}function vl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[b+24>>2]|0;d=b+16|0;if(a)do{e=a;a=c[a+4>>2]|0;Mk(c[d>>2]|0,e)}while((a|0)!=0);Mk(c[d>>2]|0,b);return}function wl(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;j=l;f=c[b+16>>2]|0;g=f;while(1){if(!g){f=0;break}h=c[g>>2]|0;if((h|0)==(d|0)){k=7;break}if((a[d>>0]|0)==(a[h>>0]|0)?(lA(d,h)|0)==0:0){k=7;break}g=c[g+4>>2]|0;if((g|0)==(f|0)){f=0;break}}do if((k|0)==7){if(!(c[b>>2]&4)){if((g|0)==(f|0)&(e|0)==0)break;Cl(b,g,e);f=g;break}if(e){if((f|0)!=(g|0)){dj(1,120005,j)|0;f=g}}else f=g}while(0);i=l;return f|0}function xl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=gl(a)|0;f=wl(a,b,0)|0;a:do if((d|0)!=0&(f|0)==0){f=Lk(g,d)|0;c[f>>2]=Il(g,b)|0;switch(c[a>>2]&3|0){case 0:{Dl(a,f);break a}case 1:{Dl(a,f);break a}case 2:case 3:{Dl(a,f);break a}default:break a}}while(0);if(e)wl(a,b,1)|0;return f|0}function yl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=gl(a)|0;e=wl(a,b,0)|0;if(!e)b=-1;else{f=a+16|0;g=c[f>>2]|0;d=g;do{b=d+4|0;d=c[b>>2]|0}while((d|0)!=(e|0));d=e+4|0;c[b>>2]=c[d>>2];b=c[a>>2]|0;switch(b&3|0){case 0:{if((g|0)==(e|0)?(h=c[d>>2]|0,h=(h|0)==(e|0)?0:h,c[f>>2]=h,c[a>>2]=b&-5,(b&2|0)!=0):0){g=a+48|0;c[a+64>>2]=h;c[g>>2]=c[g>>2]&-5}break}case 2:case 3:case 1:{Fm(hl(i)|0,a,55,e,0)|0;break}default:{}}Kl(i,c[e>>2]|0)|0;Mk(i,e);b=0}return b|0}function zl(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;g=(d|0)>-1;h=g?d:0-d|0;switch(b|0){case 0:{xl(a,c,h,e)|0;if(!g?(f=bm(a)|0,(f|0)!=0):0)do{zl(f,0,c,d,e);f=cm(f)|0}while((f|0)!=0);break}case 3:case 2:case 1:{f=Rk(a)|0;if(f){d=(b|0)==1;do{if(!d){g=Lj(a,f)|0;if(g)do{xl(g,c,h,e)|0;g=Nj(a,g)|0}while((g|0)!=0)}else xl(f,c,h,e)|0;f=Sk(a,f)|0}while((f|0)!=0)}break}default:{}}return}function Al(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;switch(b|0){case 0:{Fm(a,a,56,c,1)|0;break}case 3:case 2:case 1:{d=Rk(a)|0;if(d){e=(b|0)==1;do{if(!e){b=Lj(a,d)|0;if(b)do{yl(b,c)|0;b=Nj(a,b)|0}while((b|0)!=0)}else yl(d,c)|0;d=Sk(a,d)|0}while((d|0)!=0)}break}default:{}}return}function Bl(a){a=a|0;var b=0,d=0,e=0;d=gl(a)|0;b=a+16|0;a=c[b>>2]|0;if(a)do{e=a;a=c[a+4>>2]|0;Kl(d,c[e>>2]|0)|0;Mk(d,e)}while((a|0)!=(c[b>>2]|0));c[b>>2]=0;return}function Cl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;c[a+16>>2]=b;e=c[a>>2]|0;d=d<<2&4;c[a>>2]=e&-5|d;if(e&2){a=(e&3|0)==3?a+-48|0:a+48|0;c[a+16>>2]=b;c[a>>2]=c[a>>2]&-5|d}return}function Dl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+16|0;d=c[g>>2]|0;do if(d){e=d+4|0;f=c[e>>2]|0;if((f|0)==(d|0)){c[e>>2]=b;c[b+4>>2]=d;break}else{c[b+4>>2]=f;c[e>>2]=b;break}}else c[b+4>>2]=b;while(0);d=c[a>>2]|0;if((d&4|0)==0?(c[g>>2]=b,c[a>>2]=d&-5,(d&2|0)!=0):0){a=(d&3|0)==3?a+-48|0:a+48|0;c[a+16>>2]=b;c[a>>2]=c[a>>2]&-5}return}function El(a,b,d){a=a|0;b=b|0;d=d|0;if((c[b+16>>2]|0)==(d|0)){a=c[d+4>>2]|0;Cl(b,(a|0)==(d|0)?0:a,0)}return}function Fl(a,b,c){a=a|0;b=b|0;c=c|0;yl(b,c)|0;return}function Gl(a){a=a|0;return km(a,Nl(a)|0)|0}function Hl(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+32|0;e=d;a=Nl(a)|0;c[e+16>>2]=b;a=ub[c[a>>2]&31](a,e,4)|0;if(!a)a=0;else a=c[a+16>>2]|0;i=d;return a|0}function Il(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+32|0;d=f;if(!b)d=0;else{e=Nl(a)|0;c[d+16>>2]=b;d=ub[c[e>>2]&31](e,d,4)|0;if(!d){d=(pA(b)|0)+24|0;if(!a)d=oB(d)|0;else d=Lk(a,d)|0;a=d+8|0;c[a>>2]=1;c[a+4>>2]=0;a=d+20|0;mA(a,b)|0;c[d+16>>2]=a;ub[c[e>>2]&31](e,d,1)|0}else{b=d+8|0;e=b;e=wB(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;c[b>>2]=e;c[b+4>>2]=C}d=c[d+16>>2]|0}i=f;return d|0}function Jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=i;i=i+32|0;d=f;if(!b)d=0;else{e=Nl(a)|0;c[d+16>>2]=b;d=ub[c[e>>2]&31](e,d,4)|0;if(!d){d=(pA(b)|0)+24|0;if(!a)d=oB(d)|0;else d=Lk(a,d)|0;h=33416;g=c[h+4>>2]|0;a=d+8|0;c[a>>2]=c[h>>2]|1;c[a+4>>2]=g;a=d+20|0;mA(a,b)|0;c[d+16>>2]=a;ub[c[e>>2]&31](e,d,1)|0}else{h=d+8|0;g=h;g=wB(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;c[h>>2]=g;c[h+4>>2]=C}d=c[d+16>>2]|0}i=f;return d|0}function Kl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g;if((b|0)!=0?(d=Nl(a)|0,c[f+16>>2]=b,e=ub[c[d>>2]&31](d,f,4)|0,(e|0)!=0):0)if((c[e+16>>2]|0)==(b|0)?(b=e+8|0,h=b,h=wB(c[h>>2]|0,c[h+4>>2]|0,-1,-1)|0,f=C,b,c[b>>2]=h,c[b+4>>2]=f,b=33424,!(((h|0)!=0|(f|0)!=0)&((c[b>>2]|0)!=0|(c[b+4>>2]|0)!=0))):0){jm(a,d,e)|0;d=0}else d=0;else d=-1;i=g;return d|0}function Ll(a){a=a|0;var b=0;if(!a)a=0;else{a=a+-12|0;b=33416;a=c[b>>2]&c[a>>2]}return a|0}function Ml(a){a=a|0;var b=0,d=0,e=0;if(a){d=33416;a=a+-12|0;e=a;b=c[e+4>>2]|c[d+4>>2];c[a>>2]=c[e>>2]|c[d>>2];c[a+4>>2]=b}return}function Nl(a){a=a|0;var b=0,d=0;if(!a)d=50944;else d=(c[a+64>>2]|0)+20|0;b=c[d>>2]|0;if(!b){b=im(a,50948,c[12577]|0)|0;c[d>>2]=b;a=33416;c[a>>2]=-2147483648;c[a+4>>2]=0;a=33424;c[a>>2]=2147483647;c[a+4>>2]=-1}return b|0}function Ol(a){a=a|0;c[12751]=a;c[12750]=1;return}function Pl(a,b){a=a|0;b=b|0;c[12752]=a;c[12753]=b;c[12754]=0;return}function Ql(){var 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,A=0;A=i;i=i+2096|0;x=A+24|0;v=A+16|0;s=A;w=A+1072|0;u=A+48|0;y=A+32|0;if(!(c[12755]|0)){c[12755]=1;if(!(c[12756]|0))c[12756]=1;if(!(c[12746]|0))c[12746]=c[22668];if(!(c[12747]|0))c[12747]=c[22669];e=c[12757]|0;if(!((e|0)!=0?(g=c[12758]|0,f=c[e+(g<<2)>>2]|0,(f|0)!=0):0)){Xl();r=Rl(c[12746]|0,16384)|0;f=c[12758]|0;c[(c[12757]|0)+(f<<2)>>2]=r;r=c[12757]|0;e=r;g=f;f=c[r+(f<<2)>>2]|0}c[12759]=c[f+16>>2];r=c[f+8>>2]|0;c[12760]=r;c[12748]=r;c[12746]=c[c[e+(g<<2)>>2]>>2];a[120038]=a[r>>0]|0}a:while(1){e=c[12760]|0;a[e>>0]=a[120038]|0;f=e;g=(c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]|0)+(c[12756]|0)|0;b:while(1){j=e;while(1){e=c[51044+(d[j>>0]<<2)>>2]|0;if(b[95220+(g<<1)>>1]|0){c[13017]=g;c[13018]=j}c:while(1){h=e&255;while(1){e=(b[95406+(g<<1)>>1]|0)+h|0;if((b[95616+(e<<1)>>1]|0)==(g|0))break c;r=b[96152+(g<<1)>>1]|0;e=r<<16>>16;if(r<<16>>16>92){g=e;break}else g=e}e=c[52076+(h<<2)>>2]|0}g=b[96362+(e<<1)>>1]|0;e=j+1|0;if((b[95406+(g<<1)>>1]|0)==219){r=f;break}else j=e}d:while(1){q=r;e:while(1){f=b[95220+(g<<1)>>1]|0;if(!(f<<16>>16)){f=b[95220+(c[13017]<<1)>>1]|0;o=c[13018]|0}else{f=f<<16>>16;o=e}c[12748]=r;p=o;c[12749]=p-q;a[120038]=a[o>>0]|0;a[o>>0]=0;c[12760]=o;e=f;f:while(1){switch(e|0){case 1:{z=28;break a}case 12:{z=68;break a}case 13:{z=70;break a}case 14:{z=72;break a}case 15:{z=76;break a}case 16:{z=80;break a}case 17:{z=82;break a}case 18:{z=84;break a}case 19:{z=87;break a}case 20:{z=90;break a}case 21:{j=r;h=o;z=94;break a}case 23:{z=112;break a}case 33:{z=150;break a}case 39:case 38:case 37:case 36:{e=0;z=199;break a}case 2:{z=30;break b}case 3:{z=33;break b}case 4:{z=36;break b}case 5:{z=38;break b}case 6:{z=40;break b}case 7:{z=43;break b}case 8:{z=45;break b}case 9:{z=62;break b}case 10:{z=64;break b}case 11:{z=66;break b}case 22:{z=107;break b}case 24:{z=115;break b}case 25:{z=118;break b}case 26:{z=121;break b}case 27:{z=124;break b}case 28:{z=128;break b}case 29:{z=133;break b}case 30:{z=138;break b}case 31:{z=142;break b}case 32:{z=146;break b}case 34:{z=154;break b}case 0:break f;case 35:break;default:{z=198;break a}}g=c[12748]|0;a[o>>0]=a[120038]|0;e=c[12758]|0;f=c[12757]|0;h=c[f+(e<<2)>>2]|0;if(!(c[h+44>>2]|0)){c[12759]=c[h+16>>2];c[h>>2]=c[12746];f=c[12757]|0;c[(c[f+(e<<2)>>2]|0)+44>>2]=1;e=c[12758]|0;h=c[f+(e<<2)>>2]|0}j=c[12760]|0;k=c[12759]|0;l=c[h+4>>2]|0;n=c[12748]|0;m=n;if(j>>>0<=(l+k|0)>>>0){f=n;e=p;break e}if(j>>>0>(l+(k+1)|0)>>>0){z=168;break a}j=j-m|0;if(!(c[h+40>>2]|0)){k=(j|0)==1?1:2;h=m;j=n}else{m=j+-1|0;if((j|0)>1){f=l;h=0;e=n;while(1){a[f>>0]=a[e>>0]|0;h=h+1|0;if((h|0)>=(m|0))break;else{f=f+1|0;e=e+1|0}}f=c[12757]|0;h=c[f+(c[12758]<<2)>>2]|0}if((c[h+44>>2]|0)==2){c[12759]=0;c[h+16>>2]=0}else{f=c[h+12>>2]|0;e=f-m+-1|0;if(!e){k=c[12760]|0;do{e=h+4|0;j=c[e>>2]|0;if(!(c[h+20>>2]|0)){z=179;break a}n=f<<1;f=(n|0)==0?(f>>>3)+f|0:n;c[h+12>>2]=f;f=rB(j,f+2|0)|0;c[e>>2]=f;if(!f){z=181;break a}k=f+(k-j)|0;c[12760]=k;h=c[(c[12757]|0)+(c[12758]<<2)>>2]|0;f=c[h+12>>2]|0;e=f-m+-1|0}while((e|0)==0)}n=ub[c[c[(c[51008>>2]|0)+8>>2]>>2]&31](c[12753]|0,(c[h+4>>2]|0)+m|0,e>>>0>8192?8192:e)|0;c[12759]=n;f=c[12757]|0;c[(c[f+(c[12758]<<2)>>2]|0)+16>>2]=n}do if(!(c[12759]|0))if(!m){Sl(c[12746]|0);f=c[12757]|0;k=1;break}else{c[(c[f+(c[12758]<<2)>>2]|0)+44>>2]=2;k=2;break}else k=0;while(0);e=c[12759]|0;h=e+m|0;f=c[f+(c[12758]<<2)>>2]|0;if(h>>>0>(c[f+12>>2]|0)>>>0){n=rB(c[f+4>>2]|0,h+(e>>>1)|0)|0;e=c[12758]|0;c[(c[(c[12757]|0)+(e<<2)>>2]|0)+4>>2]=n;e=c[(c[(c[12757]|0)+(e<<2)>>2]|0)+4>>2]|0;if(!e){z=192;break a}h=c[12759]|0}else{h=e;e=c[f+4>>2]|0}f=h+m|0;c[12759]=f;a[e+f>>0]=0;a[(c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+4>>2]|0)+((c[12759]|0)+1)>>0]=0;e=c[12758]|0;f=c[12757]|0;j=c[(c[f+(e<<2)>>2]|0)+4>>2]|0;c[12748]=j;h=j}switch(k|0){case 0:{f=j;e=p;z=196;break d}case 2:{z=197;break e}case 1:break;default:continue a}c[12760]=h;e=(((c[12756]|0)+-1|0)/2|0)+36|0}a[o>>0]=a[120038]|0;e=c[13018]|0;g=c[13017]|0}if((z|0)==197){z=0;c[12760]=(c[(c[f+(e<<2)>>2]|0)+4>>2]|0)+(c[12759]|0);g=Zl()|0;r=c[12748]|0;e=c[12760]|0;continue}c[12760]=f+(e-g+-1);g=Zl()|0;if(b[95220+(g<<1)>>1]|0){r=c[12760]|0;c[13017]=g;c[13018]=r}e=(b[95406+(g<<1)>>1]|0)+1|0;if((b[95616+(e<<1)>>1]|0)!=(g|0)){f=g;do{r=b[96152+(f<<1)>>1]|0;f=r<<16>>16;e=(b[95406+(f<<1)>>1]|0)+1|0}while((b[95616+(e<<1)>>1]|0)!=r<<16>>16)}h=b[96362+(e<<1)>>1]|0;f=c[12748]|0;j=c[12760]|0;if(!(h<<16>>16==92|(e|0)==0)){e=j;z=166;break}else{r=f;e=j}}if((z|0)==166){z=0;e=e+1|0;c[12760]=e;g=h<<16>>16;continue}else if((z|0)==196){z=0;c[12760]=f+(e-g+-1);g=Zl()|0;f=c[12748]|0;e=c[12760]|0;continue}}switch(z|0){case 30:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12750]=(c[12750]|0)+1;continue a}case 33:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=3;continue a}case 36:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 38:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 40:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=1;continue a}case 43:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 45:{z=0;e=c[12749]|0;if(!e)f=c[12748]|0;else{f=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1}g=f+1|0;r=(rA(g,120039,4)|0)==0;e=r?5:1;c[s>>2]=u;c[s+4>>2]=y;c[s+8>>2]=w;g=Pz(r?f+5|0:g,120044,s)|0;if((g|0)>0?(c[12750]=(c[u>>2]|0)+-1,(g|0)>1):0){g=f+((c[w>>2]|0)+e)|0;f=g;g:while(1){e=a[f>>0]|0;switch(e<<24>>24){case 0:case 34:break g;default:{}}f=f+1|0}if((f|0)!=(g|0)&e<<24>>24==34){a[f>>0]=0;f=f-g|0;e=c[13068]|0;if((e|0)<(f|0)){if(!e)e=oB(f+1|0)|0;else e=rB(c[13069]|0,f+1|0)|0;c[13069]=e;c[13068]=f}else e=c[13069]|0;mA(e,g)|0;c[12751]=c[13069]}}continue a}case 62:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 64:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 66:{z=0;e=c[12749]|0;if(!e)continue a;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;continue a}case 107:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=5;e=c[13070]|0;if(!e){e=oB(1024)|0;c[13070]=e;c[13071]=e+1024}c[13072]=e;a[e>>0]=0;continue a}case 115:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;Yl(122268);continue a}case 118:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;Yl(120150);continue a}case 121:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12750]=(c[12750]|0)+1;continue a}case 124:{z=0;e=c[12749]|0;if(!e)e=c[12748]|0;else{r=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[r+(e+-1)>>0]|0)==10&1;e=r}Yl(e);continue a}case 128:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=7;c[13073]=1;e=c[13070]|0;if(!e){e=oB(1024)|0;c[13070]=e;c[13071]=e+1024}c[13072]=e;a[e>>0]=0;continue a}case 133:{z=0;e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;r=(c[13073]|0)+-1|0;c[13073]=r;if(!r){z=137;break a}Yl(c[12748]|0);continue a}case 138:{z=0;e=c[12749]|0;if(!e)e=c[12748]|0;else{r=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[r+(e+-1)>>0]|0)==10&1;e=r}c[13073]=(c[13073]|0)+1;Yl(e);continue a}case 142:{z=0;e=c[12749]|0;if(!e)e=c[12748]|0;else{r=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[r+(e+-1)>>0]|0)==10&1;e=r}Yl(e);c[12750]=(c[12750]|0)+1;continue a}case 146:{z=0;e=c[12749]|0;if(!e)e=c[12748]|0;else{r=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[r+(e+-1)>>0]|0)==10&1;e=r}Yl(e);continue a}case 154:{z=0;e=c[12749]|0;if(!e){e=c[12748]|0;f=0}else{f=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[f+(e+-1)>>0]|0)==10&1;e=f;f=c[12749]|0}Mz(e,f,1,c[12747]|0)|0;continue a}}}switch(z|0){case 28:{e=c[12749]|0;if(!e){e=-1;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=-1;z=199}break}case 68:{e=c[12749]|0;if(!e){e=259;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=259;z=199}break}case 70:{e=c[12749]|0;if(!e){e=260;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=260;z=199}break}case 72:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;if(!(c[12754]|0)){c[12754]=258;e=258;z=199}else{e=258;z=199}break}case 76:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;if(!(c[12754]|0)){c[12754]=261;e=261;z=199}else{e=261;z=199}break}case 80:{e=c[12749]|0;if(!e){e=263;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=263;z=199}break}case 82:{e=c[12749]|0;if(!e){e=262;z=199}else{c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=262;z=199}break}case 84:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=(c[12754]|0)==261?264:45;z=199;break}case 87:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;e=(c[12754]|0)==258?264:45;z=199;break}case 90:{e=c[12749]|0;if(!e)e=c[12748]|0;else{z=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[z+(e+-1)>>0]|0)==10&1;e=z}c[13084]=Il(c[12654]|0,e)|0;e=267;z=199;break}case 94:{e=c[12749]|0;if(!e){f=0;e=c[12748]|0}else{s=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[s+(e+-1)>>0]|0)==10&1;f=c[12749]|0;e=s}s=a[e+(f+-1)>>0]|0;g=s<<24>>24==46;h:do if(g|((s&255)+-48|0)>>>0<10){if(g?(t=f+-2|0,(t|0)>-1):0){f=t;while(1){if((a[e+f>>0]|0)==46){z=102;break h}if((f|0)>0)f=f+-1|0;else break}}}else z=102;while(0);if((z|0)==102){f=c[12751]|0;gj(y,1024,w);jj(y,120061)|0;jj(y,c[12748]|0)|0;c[v>>2]=c[12750];Oz(u,120105,v)|0;jj(y,u)|0;jj(y,(f|0)==0?120055:f)|0;jj(y,120122)|0;f=y+4|0;e=c[f>>2]|0;if(e>>>0>=(c[y+8>>2]|0)>>>0){hj(y,1)|0;e=c[f>>2]|0}a[e>>0]=0;z=c[y>>2]|0;c[f>>2]=z;c[x>>2]=z;dj(0,120147,x)|0;kj(y);z=(c[12749]|0)+-1|0;a[h>>0]=a[120038]|0;e=j+z|0;c[12760]=e;c[12748]=j;c[12749]=z;a[120038]=a[e>>0]|0;a[e>>0]=0;c[12760]=e;e=c[12748]|0}c[13084]=Il(c[12654]|0,e)|0;e=267;z=199;break}case 112:{e=c[12749]|0;if(e)c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[(c[12748]|0)+(e+-1)>>0]|0)==10&1;c[12756]=1;c[13084]=Il(c[12654]|0,c[13070]|0)|0;a[c[13070]>>0]=0;e=268;z=199;break}case 137:{c[12756]=1;c[13084]=Jl(c[12654]|0,c[13070]|0)|0;a[c[13070]>>0]=0;e=268;z=199;break}case 150:{e=c[12749]|0;if(!e)e=c[12748]|0;else{z=c[12748]|0;c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]=(a[z+(e+-1)>>0]|0)==10&1;e=z}e=a[e>>0]|0;z=199;break}case 168:{_l(120153);break}case 179:{c[e>>2]=0;z=181;break}case 192:{_l(120253);break}case 198:{_l(120300);break}}if((z|0)==181)_l(120209);else if((z|0)==199){i=A;return e|0}return 0}function Rl(a,b){a=a|0;b=b|0;var d=0;d=oB(48)|0;if(!d)_l(120351);c[d+12>>2]=b;b=oB(b+2|0)|0;c[d+4>>2]=b;if(!b)_l(120351);else{c[d+20>>2]=1;$l(d,a);return d|0}return 0}function Sl(b){b=b|0;var d=0,e=0,f=0;d=c[12757]|0;if((d|0)!=0?(e=c[12758]|0,(c[d+(e<<2)>>2]|0)!=0):0)f=4;else{Xl();d=Rl(c[12746]|0,16384)|0;e=c[12758]|0;c[(c[12757]|0)+(e<<2)>>2]=d;d=c[12757]|0;if(!d)d=0;else f=4}if((f|0)==4)d=c[d+(e<<2)>>2]|0;$l(d,b);b=(c[12757]|0)+(c[12758]<<2)|0;f=c[b>>2]|0;c[12759]=c[f+16>>2];f=c[f+8>>2]|0;c[12760]=f;c[12748]=f;c[12746]=c[c[b>>2]>>2];a[120038]=a[f>>0]|0;return}function Tl(b){b=b|0;var d=0,e=0;if(b){c[b+16>>2]=0;d=b+4|0;a[c[d>>2]>>0]=0;a[(c[d>>2]|0)+1>>0]=0;c[b+8>>2]=c[d>>2];c[b+28>>2]=1;c[b+44>>2]=0;d=c[12757]|0;if(!d)e=0;else e=c[d+(c[12758]<<2)>>2]|0;if((e|0)==(b|0)){e=d+(c[12758]<<2)|0;b=c[e>>2]|0;c[12759]=c[b+16>>2];b=c[b+8>>2]|0;c[12760]=b;c[12748]=b;c[12746]=c[c[e>>2]>>2];a[120038]=a[b>>0]|0}}return}function Ul(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+2112|0;k=m+32|0;j=m+24|0;h=m+16|0;g=m+8|0;f=m;e=m+56|0;l=m+40|0;gj(l,1024,m+1080|0);d=c[12751]|0;if(d){jj(l,d)|0;jj(l,120396)|0}jj(l,b)|0;c[f>>2]=c[12750];Oz(e,120399,f)|0;jj(l,e)|0;a:do if(!(a[c[12748]>>0]|0))switch(((c[12756]|0)+-1|0)/2|0|0){case 2:{c[g>>2]=16384;Oz(e,120419,g)|0;jj(l,e)|0;d=c[13070]|0;if(!(a[d>>0]|0))break a;j=pA(d)|0;jj(l,120481)|0;if((j|0)>80)a[(c[13070]|0)+80>>0]=0;jj(l,c[13070]|0)|0;break a}case 3:{c[h>>2]=16384;Oz(e,120500,h)|0;jj(l,e)|0;d=c[13070]|0;if(!(a[d>>0]|0))break a;j=pA(d)|0;jj(l,120568)|0;if((j|0)>80)a[(c[13070]|0)+80>>0]=0;jj(l,c[13070]|0)|0;break a}case 1:{c[j>>2]=16384;Oz(e,120587,j)|0;jj(l,e)|0;break a}default:break a}else{jj(l,120411)|0;jj(l,c[12748]|0)|0;e=l+4|0;d=c[e>>2]|0;if(d>>>0>=(c[l+8>>2]|0)>>>0){hj(l,1)|0;d=c[e>>2]|0}c[e>>2]=d+1;a[d>>0]=39}while(0);b=l+4|0;d=c[b>>2]|0;e=l+8|0;if(d>>>0>=(c[e>>2]|0)>>>0){hj(l,1)|0;d=c[b>>2]|0}c[b>>2]=d+1;a[d>>0]=10;d=c[b>>2]|0;if(d>>>0>=(c[e>>2]|0)>>>0){hj(l,1)|0;d=c[b>>2]|0}a[d>>0]=0;j=c[l>>2]|0;c[b>>2]=j;c[k>>2]=j;dj(1,120147,k)|0;kj(l);i=m;return}function Vl(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=c[12748]|0;h=c[12760]|0;a[h>>0]=a[120038]|0;g=c[12757]|0;e=c[g+(c[12758]<<2)>>2]|0;b=c[e+4>>2]|0;if(h>>>0<(b+2|0)>>>0){l=(c[12759]|0)+2|0;f=c[e+12>>2]|0;d=b+(f+2)|0;b=b+l|0;if((l|0)>0){do{b=b+-1|0;d=d+-1|0;a[d>>0]=a[b>>0]|0;f=c[12757]|0;e=c[f+(c[12758]<<2)>>2]|0}while(b>>>0>(c[e+4>>2]|0)>>>0);g=f;f=c[e+12>>2]|0}d=d-b|0;b=h+d|0;c[12759]=f;c[e+16>>2]=f;if(b>>>0<((c[(c[g+(c[12758]<<2)>>2]|0)+4>>2]|0)+2|0)>>>0)_l(120646);else{i=j+d|0;k=b}}else{i=j;k=h}l=k+-1|0;a[l>>0]=64;c[12748]=i;a[120038]=a[l>>0]|0;c[12760]=l;return}function Wl(){var a=0;a=c[12757]|0;if(!a)a=0;else a=c[a+(c[12758]<<2)>>2]|0;Tl(a);return}function Xl(){var a=0,b=0,d=0;b=c[12757]|0;do if(!b){a=oB(4)|0;c[12757]=a;if(!a)_l(120682);else{c[a>>2]=0;c[13074]=1;c[12758]=0;break}}else{a=c[13074]|0;if((c[12758]|0)>>>0>=(a+-1|0)>>>0){d=a+8|0;a=rB(b,d<<2)|0;c[12757]=a;if(!a)_l(120682);else{b=a+(c[13074]<<2)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=0;c[13074]=d;break}}}while(0);return}function Yl(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[13072]|0;if(d>>>0>(c[13070]|0)>>>0){d=d+-1|0;c[13072]=d}e=a[b>>0]|0;c[13072]=d+1;a[d>>0]=e;if(e<<24>>24){e=b;do{e=e+1|0;d=c[13072]|0;b=c[13071]|0;if(d>>>0>=b>>>0){h=c[13070]|0;f=h;g=b-f<<1;b=rB(h,g)|0;c[13070]=b;c[13071]=b+g;d=b+(d-f)|0;c[13072]=d}h=a[e>>0]|0;c[13072]=d+1;a[d>>0]=h}while(h<<24>>24!=0)}return}function Zl(){var d=0,e=0,f=0,g=0,h=0;d=(c[(c[(c[12757]|0)+(c[12758]<<2)>>2]|0)+28>>2]|0)+(c[12756]|0)|0;e=c[12748]|0;h=c[12760]|0;if(e>>>0<h>>>0)do{f=a[e>>0]|0;if(!(f<<24>>24))f=1;else f=c[51044+((f&255)<<2)>>2]|0;if(b[95220+(d<<1)>>1]|0){c[13017]=d;c[13018]=e}a:while(1){g=f&255;do{f=(b[95406+(d<<1)>>1]|0)+g|0;if((b[95616+(f<<1)>>1]|0)==(d|0)){d=f;break a}f=b[96152+(d<<1)>>1]|0;d=f<<16>>16}while(f<<16>>16<=92);f=c[52076+(g<<2)>>2]|0}d=b[96362+(d<<1)>>1]|0;e=e+1|0}while(e>>>0<h>>>0);return d|0}function _l(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=c[22667]|0;c[b>>2]=a;Bz(d,120678,b)|0;qb(2)}function $l(a,b){a=a|0;b=b|0;var d=0,e=0;d=qy()|0;e=c[d>>2]|0;Tl(a);c[a>>2]=b;c[a+40>>2]=1;b=c[12757]|0;if(!b)b=0;else b=c[b+(c[12758]<<2)>>2]|0;if((b|0)!=(a|0)){c[a+32>>2]=1;c[a+36>>2]=0}c[a+24>>2]=0;c[d>>2]=e;return}function am(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+80|0;g=h+8|0;f=h;if(!(((b|0)!=0?(lk(a,0,b,f,0)|0)!=0:0)?(k=f,l=c[k>>2]|0,k=c[k+4>>2]|0,e=a+52|0,lm(a,c[e>>2]|0,50552),j=g+8|0,c[j>>2]=l,c[j+4>>2]=k,e=c[e>>2]|0,e=ub[c[e>>2]&31](e,g,4)|0,(e|0)!=0):0))if((d|0)!=0?(lk(a,0,b,f,1)|0)!=0:0){e=f;e=fm(a,c[e>>2]|0,c[e+4>>2]|0)|0;pk(a,0,e)}else e=0;i=h;return e|0}function bm(a){a=a|0;a=c[a+52>>2]|0;return ub[c[a>>2]&31](a,0,128)|0}function cm(a){a=a|0;var b=0;b=c[a+56>>2]|0;if(!b)b=0;else{b=c[b+52>>2]|0;b=ub[c[b>>2]&31](b,a,8)|0}return b|0}function dm(a){a=a|0;return c[a+56>>2]|0}function em(a,b){a=a|0;b=b|0;a=c[a+52>>2]|0;return ub[c[a>>2]&31](a,b,2)|0}function fm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;g=i;i=i+80|0;f=g;h=b+52|0;lm(b,c[h>>2]|0,50552);j=f+8|0;c[j>>2]=d;c[j+4>>2]=e;h=c[h>>2]|0;f=ub[c[h>>2]&31](h,f,4)|0;if(!f){f=Lk(b,72)|0;c[f+64>>2]=c[b+64>>2];j=f+24|0;h=c[b+24>>2]|0;c[j>>2]=h;a[j>>0]=h&255&-9;c[f+56>>2]=b;c[f+60>>2]=c[b+60>>2];j=f+8|0;c[j>>2]=d;c[j+4>>2]=e;f=bk(f)|0}i=g;return f|0}function gm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=c[13075]|0;e=(b|0)!=0;do if(!a)if(e){pB(b);a=0;break}else{a=oB(d)|0;break}else if(e){Mk(a,b);a=0;break}else{a=Lk(a,d)|0;break}while(0);return a|0}function hm(a,b,d){a=a|0;b=b|0;d=d|0;a=c[13075]|0;if(!a)pB(b);else Mk(a,b);return}function im(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=b+28|0;f=c[e>>2]|0;c[e>>2]=2;c[13075]=a;d=Vi(b,d)|0;c[e>>2]=f;c[13075]=0;return d|0}function jm(a,b,d){a=a|0;b=b|0;d=d|0;c[13075]=a;return ub[c[b>>2]&31](b,d,2)|0}function km(a,b){a=a|0;b=b|0;var d=0,e=0;d=(Qi(b,0,0)|0)+28|0;e=c[d>>2]|0;c[d>>2]=2;c[13075]=a;if(!(Pi(b)|0)){c[d>>2]=e;c[13075]=0;d=0}else d=1;return d|0}function lm(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)!=0?(Qi(b,0,0)|0)!=(c|0):0)Qi(b,c,0)|0;return}function mm(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;if(!(Ll(b)|0))c=qm(b,c)|0;else{a[c>>0]=60;d=c+1|0;e=a[b>>0]|0;if(!(e<<24>>24))e=c;else{f=d;while(1){b=b+1|0;a[f>>0]=e;d=f+1|0;e=a[b>>0]|0;if(!(e<<24>>24)){e=f;break}else f=d}}a[d>>0]=62;a[e+2>>0]=0}return c|0}function nm(a){a=a|0;return mm(a,rm(a)|0)|0}function om(a,b){a=a|0;b=b|0;a=bm(a)|0;a:do if(!a)a=0;else while(1){if((sm(a)|0)==0?(Wk(a,b,0)|0)!=0:0){a=1;break a}a=cm(a)|0;if(!a){a=0;break}}while(0);return a|0}function pm(b,d){b=b|0;d=d|0;var e=0,f=0;c[13076]=0;e=zj(b,120732)|0;if(((e|0)!=0?((a[e>>0]|0)+-48|0)>>>0<10:0)?(f=bA(e,0,10)|0,(f|0)==0|(f|0)>59):0)c[13077]=f;tm(b,1);if(((um(b,d,1)|0)!=-1?(vm(b,d)|0)!=-1:0)?(wm(b,d)|0)!=-1:0){c[13077]=128;e=Eb[c[(c[(c[b+64>>2]|0)+8>>2]|0)+8>>2]&31](d)|0}else e=-1;return e|0}function qm(b,d){b=b|0;d=d|0;var 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;do if((b|0)!=0?(a[b>>0]|0)!=0:0){e=d+1|0;a[d>>0]=34;h=a[b>>0]|0;if(h<<24>>24){r=b;o=0;g=0;i=0;j=((h+-45&255)<2|((h&255)+-48|0)>>>0<10)&1;f=0;n=h;while(1){r=r+1|0;h=n&255;a:do if(n<<24>>24==34){a[e>>0]=92;l=i;m=j;f=1;k=e+1|0}else{if(!j){k=n<<24>>24>-1&(n<<24>>24!=95&(Wx(h)|0)==0);l=i;m=0;f=k?1:f;k=e;break}switch(n<<24>>24){case 45:{k=(g|0)==0;l=i;m=k?j:0;f=k?f:1;k=e;break a}case 46:{k=(i|0)==0;l=i+1|0;m=k?j:0;f=k?f:1;k=e;break a}default:{k=(h+-48|0)>>>0<10;l=i;m=k?j:0;f=k?f:1;k=e;break a}}}while(0);e=k+1|0;a[k>>0]=n;j=n;n=a[r>>0]|0;g=g+1|0;b:do if(c[13077]|0){h=n&255;i=n<<24>>24!=0;c:do if(((o|0)!=0&i?(Wx(j<<24>>24)|0)==0:0)?(p=a[k>>0]|0,p<<24>>24>=0):0){switch(p<<24>>24){case 45:case 46:case 92:break c;default:{}}if(!(n<<24>>24>-1&((n+-45&255)>1&(Wx(h)|0)==0))){a[e>>0]=92;a[k+2>>0]=10;h=0;g=0;f=1;e=k+3|0;break b}}while(0);if(!((g|0)<(c[13077]|0)|i^1))if((Wx(a[k>>0]|0)|0)==0?(q=a[k>>0]|0,q<<24>>24>=0):0){switch(q<<24>>24){case 45:case 46:case 92:{h=1;break b}default:{}}if(!(n<<24>>24>-1&((n+-45&255)>1&(Wx(h)|0)==0))){a[e>>0]=92;a[k+2>>0]=10;h=o;g=0;f=1;e=k+3|0}else h=1}else h=1;else h=o}else h=o;while(0);if(!(n<<24>>24))break;else{o=h;i=l;j=m}}a[e>>0]=34;a[e+1>>0]=0;if(f)break;if((g|0)==1?((a[b>>0]|0)+-45&255)<2:0)break}else{a[e>>0]=34;a[d+2>>0]=0}if(((((hA(134886,b)|0)!=0?(hA(134900,b)|0)!=0:0)?(hA(120797,b)|0)!=0:0)?(hA(134935,b)|0)!=0:0)?(hA(134927,b)|0)!=0:0){r=(hA(134941,b)|0)==0;return (r?d:b)|0}}else d=120794;while(0);return d|0}function rm(a){a=a|0;var b=0;b=((pA(a)|0)<<1)+2|0;b=b>>>0>1024?b:1024;a=c[13081]|0;if(b>>>0>(c[13080]|0)>>>0){if(!a)a=oB(b)|0;else a=rB(a,b)|0;c[13081]=a;c[13080]=b}return a|0}function sm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=ok(b)|0;if((g|0)!=0?(a[g>>0]|0)!=37:0)d=0;else e=3;a:do if((e|0)==3){d=qj(b)|0;if(((d|0)!=0?(f=qj(dm(b)|0)|0,(f|0)!=0):0)?(h=Xi(c[(qj(hl(b)|0)|0)+8>>2]|0)|0,(h|0)>0):0){g=c[d+12>>2]|0;d=f+12|0;f=0;do{e=c[g+(f<<2)>>2]|0;if(((e|0)!=0?(i=c[(c[d>>2]|0)+(f<<2)>>2]|0,(i|0)!=0):0)?(lA(e,i)|0)!=0:0){d=0;break a}f=f+1|0}while((f|0)<(h|0))}d=mj(b,0)|0;if(d)if((Xi(c[d+8>>2]|0)|0)>0)d=0;else return (Xi(c[d+12>>2]|0)|0)<1|0;else d=1}while(0);return d|0}function tm(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=c[a>>2]&-9;d=bm(a)|0;if(d)do{tm(d,0);d=cm(d)|0}while((d|0)!=0);if((b|0)!=0?(e=Rk(a)|0,(e|0)!=0):0)do{c[e>>2]=c[e>>2]&-9;d=Lj(a,e)|0;if(d)do{c[d>>2]=c[d>>2]&-9;d=Nj(a,d)|0}while((d|0)!=0);e=Sk(a,e)|0}while((e|0)!=0);return}function um(b,d,e){b=b|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((e|0)==0?(dm(b)|0)!=0:0){l=133218;m=0;j=164137}else{l=(a[b+24>>0]&1)==0?164137:120776;j=(jk(b)|0)==0;c[13078]=rj(b,2,134905,0)|0;c[13079]=rj(b,2,134914,0)|0;m=1;j=j?164137:120779}f=ok(b)|0;if((f|0)!=0?(a[f>>0]|0)!=37:0){k=1;i=126232}else{k=0;f=164137;i=164137}g=c[13076]|0;h=b+64|0;a:do if((g|0)>0)while(1){if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,175630)|0)==-1){f=-1;break a}if((g|0)>1)g=g+-1|0;else{n=10;break}}else n=10;while(0);do if((n|0)==10)if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,j)|0)!=-1){g=(k|0)==0;if(k|m){if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,l)|0)==-1){f=-1;break}if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,126220)|0)==-1){f=-1;break}}if(!g?(n=mm(f,rm(f)|0)|0,(Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,n)|0)==-1):0){f=-1;break}if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,i)|0)!=-1?(Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,120787)|0)!=-1:0){c[13076]=(c[13076]|0)+1;f=mj(b,0)|0;if(f){if((Em(b,d,134935,c[f+16>>2]|0,e)|0)==-1){f=-1;break}if((Em(b,d,134886,c[f+8>>2]|0,e)|0)==-1){f=-1;break}if((Em(b,d,134900,c[f+12>>2]|0,e)|0)==-1){f=-1;break}}c[b>>2]=c[b>>2]|8;f=0}else f=-1}else f=-1;while(0);return f|0}function vm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:do if((xm(a,b)|0)!=-1){d=mj(hl(a)|0,0)|0;e=Rk(a)|0;if(!e)d=0;else{m=(d|0)==0;n=d+12|0;l=d+8|0;while(1){if(ym(a,e,(c[e>>2]|0)>>>4,0)|0){if(m)d=0;else d=c[l>>2]|0;if((zm(e,b,d)|0)==-1){d=-1;break a}}d=Lj(a,e)|0;if(d){g=e;do{h=d+-48|0;f=c[((c[d>>2]&3|0)==2?d:h)+40>>2]|0;if((g|0)!=(f|0)?(ym(a,f,(c[e>>2]|0)>>>4,0)|0)!=0:0){if(m)f=0;else f=c[l>>2]|0;if((zm(c[((c[d>>2]&3|0)==2?d:h)+40>>2]|0,b,f)|0)==-1){d=-1;break a}g=c[((c[d>>2]&3|0)==2?d:h)+40>>2]|0}f=bm(a)|0;b:do if(!f)o=19;else while(1){if((sm(f)|0)==0?(Vj(f,d,0)|0)!=0:0)break b;f=cm(f)|0;if(!f){o=19;break}}while(0);if((o|0)==19){o=0;if(m)j=0;else j=c[n>>2]|0;i=c[d>>2]&3;k=c[((i|0)==3?d:d+48|0)+40>>2]|0;h=c[((i|0)==2?d:h)+40>>2]|0;i=gl(k)|0;f=c[13076]|0;i=i+64|0;if((f|0)>0)while(1){if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){d=-1;break a}if((f|0)>1)f=f+-1|0;else break}if((Am(k,b)|0)==-1){d=-1;break a}if((Bm(d,b,c[13078]|0)|0)==-1){d=-1;break a}k=(hk(gl(k)|0)|0)!=0;if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,k?124674:124679)|0)==-1){d=-1;break a}if((Am(h,b)|0)==-1){d=-1;break a}if((Bm(d,b,c[13079]|0)|0)==-1){d=-1;break a}if(!(c[d>>2]&8)){if((Cm(d,b,j)|0)==-1){d=-1;break a}}else if((Dm(d,b,1)|0)==-1){d=-1;break a}if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,120743)|0)==-1){d=-1;break a}}d=Nj(a,d)|0}while((d|0)!=0)}e=Sk(a,e)|0;if(!e){d=0;break}}}}else d=-1;while(0);return d|0}function wm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=c[13076]|0;d=g+-1|0;c[13076]=d;e=a+64|0;a:do if((g|0)>1){a=d;while(1){if((Lb[c[(c[(c[e>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){a=-1;break a}if((a|0)>1)a=a+-1|0;else{f=4;break}}}else f=4;while(0);if((f|0)==4)a=((Lb[c[(c[(c[e>>2]|0)+8>>2]|0)+4>>2]&63](b,134423)|0)==-1)<<31>>31;return a|0}function xm(a,b){a=a|0;b=b|0;a=bm(a)|0;a:do if(!a)a=0;else while(1){if(!(sm(a)|0)){if((um(a,b,0)|0)==-1){a=-1;break a}if((vm(a,b)|0)==-1){a=-1;break a}if((wm(a,b)|0)==-1){a=-1;break a}}else xm(a,b)|0;a=cm(a)|0;if(!a){a=0;break}}while(0);return a|0}function ym(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if((om(a,b)|0)==0?!(0<e>>>0|(0==(e|0)?(c[b>>2]|0)>>>4>>>0<d>>>0:0)):0){f=Oj(a,b)|0;if(f)do{if(0<e>>>0|(0==(e|0)?(c[c[f+40>>2]>>2]|0)>>>4>>>0<d>>>0:0)){f=0;break a}f=Pj(a,f)|0}while((f|0)!=0);if((Oj(a,b)|0)==0?(Lj(a,b)|0)==0:0){f=1;break}f=qj(b)|0;if((f|0)!=0?(h=f+8|0,g=c[h>>2]|0,g=ub[c[g>>2]&31](g,0,128)|0,(g|0)!=0):0){d=f+12|0;f=g;while(1){if((c[(c[d>>2]|0)+(c[f+16>>2]<<2)>>2]|0)!=(c[f+12>>2]|0)){f=1;break a}g=c[h>>2]|0;f=ub[c[g>>2]&31](g,f,8)|0;if(!f){f=0;break}}}else f=0}else f=0;while(0);return f|0}function zm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=gl(a)|0;e=c[13076]|0;f=f+64|0;a:do if((e|0)>0)while(1){if((Lb[c[(c[(c[f>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){e=-1;break a}if((e|0)>1)e=e+-1|0;else{g=4;break}}else g=4;while(0);do if((g|0)==4)if((Am(a,b)|0)==-1)e=-1;else{if((c[a>>2]&8|0)==0?(Cm(a,b,d)|0)==-1:0){e=-1;break}e=Lb[c[(c[(c[f>>2]|0)+8>>2]|0)+4>>2]&63](b,120743)|0}while(0);return e|0}function Am(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;g=j;f=j+8|0;d=ok(a)|0;e=gl(a)|0;if(!d){k=a+8|0;d=c[k+4>>2]|0;a=g;c[a>>2]=c[k>>2];c[a+4>>2]=d;Oz(f,120763,g)|0;if((Lb[c[(c[(c[e+64>>2]|0)+8>>2]|0)+4>>2]&63](b,f)|0)==-1)d=-1;else h=4}else{k=mm(d,rm(d)|0)|0;if((Lb[c[(c[(c[e+64>>2]|0)+8>>2]|0)+4>>2]&63](b,k)|0)==-1)d=-1;else h=4}if((h|0)==4)d=0;i=j;return d|0}function Bm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;a:do if((e|0)!=0?(f=gl(b)|0,g=Aj(b,e)|0,(a[g>>0]|0)!=0):0){b=f+64|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,133477)|0)==-1)f=-1;else{do if(Ll(g)|0){g=mm(g,rm(g)|0)|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,g)|0)==-1){f=-1;break a}}else{f=jA(g,58)|0;if(!f){g=qm(g,rm(g)|0)|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,g)|0)==-1){f=-1;break a}else break}a[f>>0]=0;g=qm(g,rm(g)|0)|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,g)|0)==-1){f=-1;break a}if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,133477)|0)==-1){f=-1;break a}g=f+1|0;g=qm(g,rm(g)|0)|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,g)|0)==-1){f=-1;break a}a[f>>0]=58}while(0);f=0}}else f=0;while(0);return f|0}function Cm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:do if(!(c[a>>2]&2)){e=0;l=4}else{switch(Dm(a,b,0)|0){case -1:{e=-1;break a}case 0:{e=0;l=4;break a}default:{}}e=1;l=4}while(0);b:do if((l|0)==4){f=qj(a)|0;k=gl(a)|0;if((f|0)!=0?(g=ub[c[d>>2]&31](d,0,128)|0,(g|0)!=0):0){j=f+12|0;i=k+64|0;do{do if(c[a>>2]&2){h=c[13078]|0;if((h|0)!=0?(c[g+16>>2]|0)==(c[h+16>>2]|0):0)break;h=c[13079]|0;if(!((h|0)!=0?(c[g+16>>2]|0)==(c[h+16>>2]|0):0))l=12}else l=12;while(0);if((l|0)==12){l=0;f=g+16|0;if((c[(c[j>>2]|0)+(c[f>>2]<<2)>>2]|0)!=(c[g+12>>2]|0)){h=e+1|0;if(e){if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,120758)|0)==-1){e=-1;break b}e=c[13076]|0;if((e|0)>0)while(1){if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){e=-1;break b}if((e|0)>1)e=e+-1|0;else break}}else{e=c[13076]|0;if((e|0)>0)while(1){if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,175630)|0)==-1){e=-1;break b}if((e|0)>1)e=e+-1|0;else break}if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,120755)|0)==-1){e=-1;break b}c[13076]=(c[13076]|0)+1}e=c[g+8>>2]|0;e=mm(e,rm(e)|0)|0;if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,e)|0)==-1){e=-1;break b}if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,120761)|0)==-1){e=-1;break b}f=c[(c[j>>2]|0)+(c[f>>2]<<2)>>2]|0;f=mm(f,rm(f)|0)|0;if((Lb[c[(c[(c[i>>2]|0)+8>>2]|0)+4>>2]&63](b,f)|0)==-1){e=-1;break b}else e=h}}g=ub[c[d>>2]&31](d,g,8)|0}while((g|0)!=0)}if((e|0)>0){if((Lb[c[(c[(c[k+64>>2]|0)+8>>2]|0)+4>>2]&63](b,120753)|0)==-1){e=-1;break}c[13076]=(c[13076]|0)+-1}c[a>>2]=c[a>>2]|8;e=0}while(0);return e|0}function Dm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=ok(b)|0;b=gl(b)|0;if((f|0)!=0?(a[f>>0]|0)!=0:0){b=b+64|0;if((Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,120746)|0)!=-1?(f=mm(f,rm(f)|0)|0,(Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,f)|0)!=-1):0)if((e|0)!=0?(Lb[c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]&63](d,120753)|0)==-1:0)b=-1;else{b=1;g=7}else b=-1}else{b=0;g=7}return b|0}function Em(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=(g|0)!=0;if(m)n=0;else n=$i(f,0)|0;g=ub[c[f>>2]&31](f,0,128)|0;a:do if(g){k=(n|0)==0;l=b+64|0;h=0;j=g;while(1){i=j+12|0;o=c[i>>2]|0;if((o|0)!=0?(a[o>>0]|0)!=0:0)o=12;else o=7;do if((o|0)==7){o=0;if(!(a[j+22>>0]|0))if(!k){g=ub[c[n>>2]&31](n,j,4)|0;p=c[g+12>>2]|0;if((p|0)!=0?(a[p>>0]|0)!=0:0){o=12;break}if(!(a[g+22>>0]|0))o=12;else g=h}else g=h;else o=12}while(0);if((o|0)==12){o=0;g=h+1|0;if(h){if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,120758)|0)==-1){g=-1;break a}h=c[13076]|0;if((h|0)>0)while(1){if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,175630)|0)==-1){g=-1;break a}if((h|0)>1)h=h+-1|0;else break}}else{h=c[13076]|0;if((h|0)>0)while(1){if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,175630)|0)==-1){g=-1;break a}if((h|0)>1)h=h+-1|0;else break}if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,e)|0)==-1){g=-1;break a}if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,120755)|0)==-1){g=-1;break a}c[13076]=(c[13076]|0)+1}p=c[j+8>>2]|0;p=mm(p,rm(p)|0)|0;if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,p)|0)==-1){g=-1;break a}if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,120761)|0)==-1){g=-1;break a}p=c[i>>2]|0;p=mm(p,rm(p)|0)|0;if((Lb[c[(c[(c[l>>2]|0)+8>>2]|0)+4>>2]&63](d,p)|0)==-1){g=-1;break a}}j=ub[c[f>>2]&31](f,j,8)|0;if(!j)break;else h=g}if((g|0)>0){c[13076]=(c[13076]|0)+-1;h=b+64|0;if((g|0)>1){if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,175632)|0)==-1){g=-1;break}g=c[13076]|0;if((g|0)>0)while(1){if((Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,175630)|0)==-1){g=-1;break a}if((g|0)>1)g=g+-1|0;else break}}g=(Lb[c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]&63](d,120790)|0)==-1;if(m|g)g=g<<31>>31;else o=35}else o=34}else o=34;while(0);if((o|0)==34)if(m)g=0;else o=35;if((o|0)==35){$i(f,n)|0;g=0}return g|0}function Fm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;h=k;g=c[b>>2]&3;switch(g|0){case 0:{h=19;j=5;break}case 1:{h=20;j=5;break}case 3:case 2:{h=21;j=5;break}default:{c[h>>2]=g;dj(1,120804,h)|0;g=-1}}if((j|0)==5){g=Lb[h&63](a,b)|0;if(!g)g=-1;else{Jm(a,g,d,e,h,f);g=0}}i=k;return g|0}function Gm(a,b){a=a|0;b=b|0;if((gl(b)|0)!=(a|0))b=Vj(a,b,0)|0;return b|0}function Hm(a,b){a=a|0;b=b|0;if((gl(b)|0)!=(a|0))b=Wk(a,b,0)|0;return b|0}function Im(a,b){a=a|0;b=b|0;return a|0}function Jm(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;i=(f|0)!=0;if(i)Gb[c&127](a,b,d);g=bm(a)|0;if(g)do{h=Lb[e&63](g,b)|0;if(h)Jm(g,h,c,d,e,f);g=cm(g)|0}while((g|0)!=0);if(!i)Gb[c&127](a,b,d);return}function Km(){var 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,A=0;A=i;i=i+2224|0;w=A+800|0;y=A+1824|0;f=A;c[13082]=0;c[13083]=-2;r=0;l=y;e=y;h=200;m=0;k=f;a:while(1){b[e>>1]=m;if((l+(h+-1<<1)|0)>>>0<=e>>>0){j=e-l>>1;e=j+1|0;if(h>>>0>9999){f=l;z=100;break}g=h<<1;g=g>>>0>1e4?1e4:g;f=oB(g*6|3)|0;if(!f){f=l;z=100;break}AB(f|0,l|0,e<<1|0)|0;h=f+((g>>>1&1073741823)<<2)|0;AB(h|0,k|0,e<<2|0)|0;if((l|0)!=(y|0))pB(l);if((g+-1|0)>(j|0)){u=f;e=f+(j<<1)|0;s=g;t=h;f=h+(j<<2)|0}else{e=1;z=102;break}}else{u=l;s=h;t=k}if((m|0)==6){e=0;f=u;z=101;break}q=a[120837+m>>0]|0;j=q<<24>>24;do if(q<<24>>24!=-18){g=c[13083]|0;if((g|0)==-2){g=Ql()|0;c[13083]=g}if((g|0)>=1)if(g>>>0<269)h=d[120917+g>>0]|0;else h=2;else{c[13083]=0;h=0}g=h+j|0;if(g>>>0<=59?(d[121186+g>>0]|0)==(h|0):0){q=a[121246+g>>0]|0;g=q<<24>>24;if(q<<24>>24<1){g=0-g|0;z=23;break}else{c[13083]=-2;f=f+4|0;c[f>>2]=c[13084];j=(r|0)==0?0:r+-1|0;break}}else z=22}else z=22;while(0);if((z|0)==22){z=0;q=a[121306+m>>0]|0;g=q&255;if(!(q<<24>>24)){g=c[13083]|0;b:do switch(r|0){case 0:{c[13082]=(c[13082]|0)+1;Ul(164107);break}case 3:if((g|0)<1)if(!g){e=1;f=u;z=101;break a}else break b;else{c[13083]=-2;break b}default:{}}while(0);if(m)do{if((e|0)==(u|0)){e=1;f=u;z=101;break a}f=f+-4|0;e=e+-2|0}while((b[e>>1]|0)!=0);f=f+4|0;c[f>>2]=c[13084];j=3;g=1}else z=23}do if((z|0)==23){z=0;o=d[121386+g>>0]|0;p=1-o|0;q=f+(p<<2)|0;n=c[q>>2]|0;c:do switch(g|0){case 2:{Nm();Vl();Bk(c[13085]|0);h=n;break}case 3:{if(!(c[13085]|0))h=n;else{Nm();Vl();Bk(c[13085]|0);dk(c[13085]|0)|0;c[12654]=0;c[13085]=0;h=n}break}case 6:{j=c[f>>2]|0;h=c[13085]|0;if(!h){a[52344]=(c[f+-8>>2]&255)<<1&2|c[f+-4>>2]&1|a[52344]&-12|8;h=c[13087]|0;c[w>>2]=c[13086];h=ak(j,w,h)|0;c[13085]=h}c[12654]=h;l=c[13088]|0;m=Lk(h,36)|0;c[m+32>>2]=l;c[m>>2]=h;c[13088]=m;Kl(0,j)|0;h=n;break}case 7:{h=c[f>>2]|0;break}case 8:{h=0;break}case 9:{h=1;break}case 10:{h=0;break}case 11:{h=0;break}case 12:{h=1;break}case 21:{if(!(c[f+-4>>2]|0)){Om(1);j=c[13088]|0;h=c[j+8>>2]|0;if(!h)h=0;else{do{Rm(c[h+4>>2]|0);h=c[h+12>>2]|0}while((h|0)!=0);h=c[13088]|0;j=h;h=c[h+8>>2]|0}Qm(h);c[j+12>>2]=0;c[j+8>>2]=0;h=c[13088]|0;m=h+24|0;Qm(c[m>>2]|0);c[h+28>>2]=0;c[m>>2]=0;m=c[13088]|0;h=m+16|0;Qm(c[h>>2]|0);c[m+20>>2]=0;c[h>>2]=0;c[(c[13088]|0)+4>>2]=0;h=n;break c}Om(2);h=c[13088]|0;j=c[h+24>>2]|0;if(!j)k=0;else{l=a[121449]|0;k=0;do{if(((c[j>>2]|0)==267?(v=c[j+4>>2]|0,(a[v>>0]|0)==l<<24>>24):0)?(lA(v,121449)|0)==0:0)k=c[j+8>>2]|0;j=c[j+12>>2]|0}while((j|0)!=0)}l=c[h+16>>2]|0;j=l+12|0;m=c[j>>2]|0;if(m){do{h=l+4|0;if((c[l>>2]|0)==262){l=c[h>>2]|0;h=Rk(l)|0;if(h)do{m=Wk(c[c[13088]>>2]|0,h,0)|0;Pm(m,0,c[j>>2]|0,k);h=Sk(l,h)|0}while((h|0)!=0)}else{h=c[h>>2]|0;if((h|0)!=0?(Pm(c[h+4>>2]|0,c[h+8>>2]|0,m,k),x=c[h+12>>2]|0,(x|0)!=0):0){h=x;do{Pm(c[h+4>>2]|0,c[h+8>>2]|0,c[j>>2]|0,k);h=c[h+12>>2]|0}while((h|0)!=0)}}l=c[j>>2]|0;j=l+12|0;m=c[j>>2]|0}while((m|0)!=0);h=c[13088]|0}m=h+8|0;Qm(c[m>>2]|0);c[h+12>>2]=0;c[m>>2]=0;h=c[13088]|0;m=h+16|0;Qm(c[m>>2]|0);c[h+20>>2]=0;c[m>>2]=0;m=c[13088]|0;h=m+24|0;Qm(c[h>>2]|0);c[m+28>>2]=0;c[h>>2]=0;c[(c[13088]|0)+4>>2]=0;h=n;break}case 24:{Sm();h=n;break}case 25:{Sm();h=n;break}case 26:{h=1;break}case 27:{h=0;break}case 30:{Tm(c[f>>2]|0,0,0);h=n;break}case 31:{Tm(c[f+-8>>2]|0,c[f>>2]|0,0);h=n;break}case 32:{Tm(c[f+-16>>2]|0,c[f+-8>>2]|0,c[f>>2]|0);h=n;break}case 33:{Um(c[f+-8>>2]|0,c[f+-4>>2]|0);h=n;break}case 34:{Um(258,0);h=n;break}case 35:{h=258;break}case 36:{h=259;break}case 37:{h=260;break}case 38:{h=c[f+-4>>2]|0;break}case 39:{h=0;break}case 48:{Vm(c[f+-8>>2]|0,c[f>>2]|0);h=n;break}case 49:{Vm(c[f>>2]|0,0);h=n;break}case 51:{h=c[f>>2]|0;k=c[13088]|0;l=am(c[k>>2]|0,h,1)|0;m=Lk(c[13085]|0,36)|0;c[m+32>>2]=k;c[m>>2]=l;c[13088]=m;Kl(c[13085]|0,h)|0;h=n;break}case 52:{l=c[13088]|0;m=c[l>>2]|0;h=c[l+32>>2]|0;Mk(c[13085]|0,l);c[13088]=h;c[h+4>>2]=m;h=n;break}case 53:{h=c[f>>2]|0;break}case 54:{h=0;break}case 55:{h=0;break}case 59:{h=c[f>>2]|0;break}case 60:{h=c[f>>2]|0;break}case 61:{h=c[f>>2]|0;break}case 62:{k=c[f+-8>>2]|0;l=c[f>>2]|0;h=pA(k)|0;h=h+1+(pA(l)|0)|0;if(h>>>0<1025)j=w;else j=oB(h)|0;mA(j,k)|0;iA(j,l)|0;h=Il(c[13085]|0,j)|0;Kl(c[13085]|0,k)|0;Kl(c[13085]|0,l)|0;if((j|0)!=(w|0))pB(j);break}default:h=n}while(0);e=e+(0-o<<1)|0;f=f+(p<<2)|0;c[q>>2]=h;g=(d[121453+g>>0]|0)+-24|0;q=b[e>>1]|0;h=q+(a[121516+g>>0]|0)|0;if(h>>>0<60?(d[121186+h>>0]|0)==(q|0):0){j=r;g=a[121246+h>>0]|0;break}j=r;g=a[121551+g>>0]|0}while(0);r=j;l=u;e=e+2|0;h=s;m=g;k=t}if((z|0)==100){Ul(164120);e=2;z=101}if((z|0)==101)if((f|0)!=(y|0))z=102;if((z|0)==102)pB(f);i=A;return e|0}function Lm(a,b,d){a=a|0;b=b|0;d=d|0;c[12746]=b;c[13085]=a;c[12654]=0;a=(d|0)!=0?d:50604;c[13087]=a;Pl(a,b);Km()|0;b=c[12654]|0;if(!b){Wl();b=c[12654]|0}return b|0}function Mm(a,b){a=a|0;b=b|0;return Lm(0,a,b)|0}function Nm(){var a=0,b=0,d=0;a=c[13088]|0;if(a)do{b=a+8|0;Qm(c[b>>2]|0);c[a+12>>2]=0;c[b>>2]=0;b=c[13088]|0;d=b+24|0;Qm(c[d>>2]|0);c[b+28>>2]=0;c[d>>2]=0;d=c[13088]|0;b=d+16|0;Qm(c[b>>2]|0);c[d+20>>2]=0;c[b>>2]=0;b=c[13088]|0;a=c[b+32>>2]|0;Mk(c[13085]|0,b);c[13088]=a}while((a|0)!=0);return}function Om(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[(c[13088]|0)+24>>2]|0;if(d){g=(b|0)==2;do{e=d+4|0;f=c[e>>2]|0;if(!((g?(a[f>>0]|0)==(a[121449]|0):0)?(lA(f,121449)|0)==0:0)){h=rj(c[c[13088]>>2]|0,b,f,0)|0;c[e>>2]=h;if(!h)c[e>>2]=rj(c[c[13088]>>2]|0,b,f,164137)|0;c[d>>2]=266;Kl(c[13085]|0,f)|0}d=c[d+12>>2]|0}while((d|0)!=0)}return}function Pm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=d+4|0;if((c[d>>2]|0)==262){d=c[f>>2]|0;f=Rk(d)|0;if(f)do{Wm(a,b,Wk(c[c[13088]>>2]|0,f,0)|0,0,e);f=Sk(d,f)|0}while((f|0)!=0)}else{f=c[f>>2]|0;if(f)do{d=Wk(c[c[13088]>>2]|0,c[f+4>>2]|0,0)|0;Wm(a,b,d,c[f+8>>2]|0,e);f=c[f+12>>2]|0}while((f|0)!=0)}return}function Qm(a){a=a|0;var b=0;a:do if(a)while(1){b=a;a=c[a+12>>2]|0;switch(c[b>>2]|0){case 265:{Qm(c[b+4>>2]|0);break}case 266:case 267:{Kl(c[13085]|0,c[b+8>>2]|0)|0;break}default:{}}Mk(c[13085]|0,b);if(!a)break a}while(0);return}function Rm(a){a=a|0;var b=0,d=0;b=c[(c[13088]|0)+24>>2]|0;if(b)do{if((c[b>>2]|0)==266?(d=c[b+4>>2]|0,(d|0)!=0):0)Cj(a,d,c[b+8>>2]|0)|0;b=c[b+12>>2]|0}while((b|0)!=0);return}function Sm(){var a=0,b=0,d=0,e=0;b=c[13088]|0;a=c[b+8>>2]|0;if(!a){a=c[b+4>>2]|0;if(!a){a=b;b=0}else{b=Lk(c[13085]|0,16)|0;c[b>>2]=262;c[b+4>>2]=a;c[b+8>>2]=0;a=c[13088]|0}c[a+4>>2]=0}else{b=Lk(c[13085]|0,16)|0;c[b>>2]=265;c[b+4>>2]=a;c[b+8>>2]=0;c[(c[13088]|0)+12>>2]=0;c[(c[13088]|0)+8>>2]=0}if(b){a=c[13088]|0;d=a+20|0;e=c[d>>2]|0;if(e)c[e+12>>2]=b;c[d>>2]=b;a=a+16|0;if(!(c[a>>2]|0))c[a>>2]=b}return}function Tm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+1040|0;g=j;h=j+8|0;if(!d)e=b;else{e=pA(b)|0;e=e+2+(pA(d)|0)|0;if(e>>>0<1025)f=h;else f=oB(e)|0;c[g>>2]=b;c[g+4>>2]=d;Oz(f,121619,g)|0;e=Il(c[13085]|0,f)|0;Kl(c[13085]|0,b)|0;Kl(c[13085]|0,d)|0;if((f|0)!=(h|0))pB(f)}f=Xk(c[c[13088]>>2]|0,a,1)|0;h=Lk(c[13085]|0,16)|0;c[h>>2]=259;c[h+4>>2]=f;c[h+8>>2]=e;e=c[13088]|0;f=e+12|0;g=c[f>>2]|0;if(g)c[g+12>>2]=h;c[f>>2]=h;e=e+8|0;if(!(c[e>>2]|0))c[e>>2]=h;Kl(c[13085]|0,a)|0;i=j;return}function Um(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;if(d)dj(0,121586,h)|0;d=c[(c[13088]|0)+24>>2]|0;if(d)do{if(!(c[d+8>>2]|0))dj(0,121586,e)|0;d=c[d+12>>2]|0}while((d|0)!=0);g=(b|0)==260?2:(b|0)==259&1;Om(g);d=c[13088]|0;b=c[d+24>>2]|0;if(!b){b=d;d=0}else{do{do if((c[b>>2]|0)!=267){e=c[b+4>>2]|0;f=c[d>>2]|0;if(!((a[e+21>>0]|0)!=0&(f|0)==(c[13085]|0))){e=rj(f,g,c[e+8>>2]|0,c[b+8>>2]|0)|0;d=c[13088]|0;if((c[d>>2]|0)!=(c[13085]|0))break}a[e+22>>0]=1}while(0);b=c[b+12>>2]|0}while((b|0)!=0);b=d;d=c[d+24>>2]|0}Qm(d);c[b+28>>2]=0;c[b+24>>2]=0;i=h;return}function Vm(a,b){a=a|0;b=b|0;var d=0,e=0;e=Lk(c[13085]|0,16)|0;c[e>>2]=267;c[e+4>>2]=a;c[e+8>>2]=b;a=c[13088]|0;b=a+28|0;d=c[b>>2]|0;if(d)c[d+12>>2]=e;c[b>>2]=e;a=a+24|0;if(!(c[a>>2]|0))c[a>>2]=e;return}function Wm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;d=Sj(c[c[13088]>>2]|0,a,d,f,1)|0;if(d){g=c[d>>2]&3;f=c[((g|0)==2?d:d+-48|0)+40>>2]|0;a=(f|0)==(a|0)?(c[((g|0)==3?d:d+48|0)+40>>2]|0)!=(f|0):0;Xm(d,134905,a?e:b);Xm(d,134914,a?b:e);Rm(d)}return}function Xm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d){e=rj(c[c[13088]>>2]|0,2,b,0)|0;if(!e)e=rj(c[c[13088]>>2]|0,2,b,164137)|0;Cj(a,e,d)|0}return}function Ym(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;m=n+16|0;l=n+8|0;g=n;h=n+20|0;d=c[b+76>>2]|0;f=c[b>>2]|0;if((d|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0){zb[e&127](b);j=21}else j=4;do if((j|0)==4)if((c[b+40>>2]|0)==0?(k=b+36|0,(c[k>>2]|0)==0):0){if(!(a[f+13>>0]|0)){e=b+32|0;d=e;e=c[e>>2]|0}else{d=c[b+24>>2]|0;if(!d)a[h>>0]=0;else{c[g>>2]=d+1;Oz(h,121625,g)|0}e=c[b+20>>2]|0;e=(e|0)!=0?e:121629;g=pA(e)|0;d=pA(h)|0;f=b+52|0;d=g+1+d+(pA(c[f>>2]|0)|0)|0;if((c[13089]|0)>>>0<(d+1|0)>>>0){d=d+11|0;c[13089]=d;d=rB(c[13090]|0,d)|0;c[13090]=d}else d=c[13090]|0;mA(d,e)|0;iA(c[13090]|0,h)|0;e=c[13090]|0;e=e+(pA(e)|0)|0;a[e>>0]=46;a[e+1>>0]=0;f=oA(c[f>>2]|0)|0;e=uA(f,58)|0;d=c[13090]|0;if(e)do{iA(d,e+1|0)|0;d=c[13090]|0;d=d+(pA(d)|0)|0;a[d>>0]=46;a[d+1>>0]=0;a[e>>0]=0;e=uA(f,58)|0;d=c[13090]|0}while((e|0)!=0);iA(d,f)|0;pB(f);e=c[13090]|0;d=b+32|0;c[d>>2]=e}if(!e){c[k>>2]=c[22669];j=21;break}h=Az(e,129155)|0;c[k>>2]=h;if(!h){m=c[(c[b+12>>2]|0)+16>>2]|0;b=c[d>>2]|0;d=ry(c[(qy()|0)>>2]|0)|0;c[l>>2]=b;c[l+4>>2]=d;Bb[m&31](121639,l);d=1}else j=21}else j=21;while(0);if((j|0)==21)if(!(c[b+152>>2]&1024))d=0;else{Bb[c[(c[b+12>>2]|0)+16>>2]&31](121677,m);d=1}i=n;return d|0}function Zm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+16|0;n=o+8|0;f=o;a:do if((d|0)!=0&(e|0)!=0){if(c[b+152>>2]&1024){Bb[c[(c[b+12>>2]|0)+16>>2]&31](121677,f);qb(1)}f=c[(c[b>>2]|0)+104>>2]|0;do if(!f){k=b+40|0;j=c[k>>2]|0;if(!j){f=Mz(d,1,e,c[b+36>>2]|0)|0;break}f=b+44|0;h=b+48|0;g=c[h>>2]|0;do if(((c[f>>2]|0)+-1-g|0)>>>0<e>>>0){g=e+4096+g&-4096;c[f>>2]=g;f=rB(j,g)|0;c[k>>2]=f;if(!f){Bb[c[(c[b+12>>2]|0)+16>>2]&31](121695,n);qb(1)}else{l=f;m=c[h>>2]|0;break}}else{l=j;m=g}while(0);AB(l+m|0,d|0,e|0)|0;g=(c[h>>2]|0)+e|0;c[h>>2]=g;a[(c[k>>2]|0)+g>>0]=0;g=e;break a}else f=ub[f&31](b,d,e)|0;while(0);if((f|0)==(e|0))g=e;else{b=c[(c[b+12>>2]|0)+16>>2]|0;c[h>>2]=e;Bb[b&31](121722,h);qb(1)}}else g=0;while(0);i=o;return g|0}function _m(a,b){a=a|0;b=b|0;var c=0;c=pA(b)|0;b=(Zm(a,b,c)|0)==(c|0);return (b?1:-1)|0}function $m(b,c){b=b|0;c=c|0;var d=0,e=0;d=i;i=i+16|0;e=d;a[e>>0]=c;b=(Zm(b,e,1)|0)==1;i=d;return (b?c:-1)|0}function an(b){b=b|0;var d=0;d=c[b+36>>2]|0;if(((d|0)!=0?(a[b+144>>0]|0)==0:0)?(c[(c[b>>2]|0)+104>>2]|0)==0:0)d=wz(d)|0;else d=0;return d|0}function bn(a){a=a|0;var b=0,d=0;b=c[a+76>>2]|0;if((b|0)!=0?(d=c[b+4>>2]|0,(d|0)!=0):0)zb[d&127](a);an(a)|0;return}function cn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;d=c[b+76>>2]|0;if(c[b+152>>2]&1024){Bb[c[(c[b+12>>2]|0)+16>>2]&31](121747,k);qb(1)}if((d|0)!=0?(e=c[d+8>>2]|0,(e|0)!=0):0)zb[e&127](b);else j=6;if((((j|0)==6?(an(b)|0,f=b+32|0,(c[f>>2]|0)!=0):0)?(g=b+36|0,h=c[g>>2]|0,(h|0)!=(c[22669]|0)):0)?(a[b+144>>0]|0)==0:0){if(h){uz(h)|0;c[g>>2]=0}c[f>>2]=0}i=k;return}function dn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+1056|0;f=j;h=j+24|0;g=j+8|0;c[g>>2]=d;e=Uz(h,1024,b,g)|0;if((e|0)>=0){if((e|0)>1023){e=aq(e+1|0)|0;c[g>>2]=d;f=e;e=Vz(e,b,g)|0}else f=h;Zm(a,f,e)|0;if((f|0)!=(h|0))pB(f)}else{c[f>>2]=ry(c[(qy()|0)>>2]|0)|0;dj(1,121764,f)|0}i=j;return}function en(a,b){a=a|0;b=+b;var d=0,e=0,f=0;d=i;i=i+16|0;e=d;f=hn(e,b)|0;Zm(a,f,c[e>>2]|0)|0;i=d;return}function fn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d;f=hn(e,+h[b>>3])|0;Zm(a,f,c[e>>2]|0)|0;Zm(a,126232,1)|0;b=hn(e,+h[b+8>>3])|0;Zm(a,b,c[e>>2]|0)|0;i=d;return}function gn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];fn(a,e);if((d|0)>1){f=1;do{Zm(a,126232,1)|0;h=b+(f<<4)|0;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];c[e+8>>2]=c[h+8>>2];c[e+12>>2]=c[h+12>>2];fn(a,e);f=f+1|0}while((f|0)!=(d|0))}i=g;return}function hn(b,d){b=b|0;d=+d;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;do if(d<-1.0e15){c[b>>2]=19;e=121798}else{if(d>1.0e15){c[b>>2]=18;e=121799;break}d=d*1.0e4;e=~~(d+(d<0.0?-.5:.5));if(!e){c[b>>2]=1;e=161945;break}k=(e|0)<0;h=k?0-e|0:e;j=4;e=121798;g=0;while(1){f=(h|0)%10|0;i=h;h=(h|0)/10|0;if(g<<24>>24==0&(f|0)==0)g=0;else{e=e+-1|0;a[e>>0]=f|48;g=1}if((j|0)==1)if(!(g<<24>>24))g=1;else{e=e+-1|0;a[e>>0]=46;g=1}if(!((i+9|0)>>>0>18|(j|0)>1))break;else j=j+-1|0}if(k){e=e+-1|0;a[e>>0]=45}c[b>>2]=121798-e}while(0);return e|0}function jn(a,b){a=a|0;b=b|0;var d=0;d=$p(392)|0;if(d){c[d>>2]=52364;c[d+16>>2]=22;c[d+32>>2]=a;c[d+36>>2]=b}return d|0}function kn(a){a=a|0;var b=0,d=0,e=0,f=0;b=$p(392)|0;d=b;e=a;f=d+40|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));f=b+60|0;e=a+60|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];f=b+80|0;e=a+80|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];c[f+16>>2]=c[e+16>>2];return b|0}function ln(a){a=a|0;rn(a);pB(a);return}function mn(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+160|0;e=c[d>>2]|0;do if(!e){e=$p(632)|0;c[d>>2]=e;c[a+164>>2]=e;c[13094]=e;d=e}else{d=c[13094]|0;if(!d){c[13094]=e;d=e;break}if(!(c[d+4>>2]|0)){d=$p(632)|0;c[(c[13094]|0)+4>>2]=d;d=c[13094]|0}d=c[d+4>>2]|0;c[13094]=d}while(0);c[d+32>>2]=b;c[c[13094]>>2]=a;return}function nn(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+160|0;e=c[d>>2]|0;do if(!e){e=$p(632)|0;c[d>>2]=e;c[a+164>>2]=e;c[13095]=e;d=e}else{d=c[13095]|0;if(!d){c[13095]=e;d=e;break}if(!(c[d+4>>2]|0)){d=$p(632)|0;c[(c[13095]|0)+4>>2]=d;d=c[13095]|0}d=c[d+4>>2]|0;c[13095]=d}while(0);c[d+52>>2]=b;c[c[13095]>>2]=a;return (tn(a,3,b)|0)!=0|0}function on(a){a=a|0;var b=0;b=c[a+160>>2]|0;c[a+164>>2]=b;return b|0}function pn(a){a=a|0;var b=0,d=0,e=0;a=a+164|0;b=c[a>>2]|0;d=c[b+4>>2]|0;if((d|0)!=0?(e=d+52|0,(c[e>>2]|0)==0):0)c[e>>2]=c[b+52>>2];c[a>>2]=d;return d|0}function qn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+8|0;if((c[e>>2]|0)>(b|0))e=c[a>>2]|0;else{f=b+10|0;c[e>>2]=f;e=cq(c[a>>2]|0,f<<2)|0;c[a>>2]=e}c[e+(b<<2)>>2]=d;return}function rn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+160|0;b=c[g>>2]|0;if(b)do{f=b;b=c[b+4>>2]|0;d=f+604|0;e=c[d>>2]|0;if(e)pB(e);c[d>>2]=0;c[f+612>>2]=0;c[f+608>>2]=0;d=f+592|0;e=c[d>>2]|0;if(e)pB(e);c[d>>2]=0;c[f+600>>2]=0;c[f+596>>2]=0;d=c[f+584>>2]|0;if(d)pB(d);d=c[f+588>>2]|0;if(d)pB(d);pB(f)}while((b|0)!=0);c[13095]=0;c[13094]=0;c[a+192>>2]=0;c[a+164>>2]=0;c[g>>2]=0;c[a+28>>2]=0;return}function sn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;m=i;i=i+128|0;k=m+64|0;l=m;sA(k,e,63)|0;j=jA(k,58)|0;if(j)a[j>>0]=0;j=b+60+(d<<2)|0;d=c[j>>2]|0;a:do if(d){b=j;while(1){sA(l,c[d+4>>2]|0,63)|0;j=jA(l,58)|0;if(j)a[j>>0]=0;d=(lA(k,l)|0)<1;j=c[b>>2]|0;if(d){d=b;break}d=c[j>>2]|0;if(!d)break a;else b=j}if(!j)j=d;else{b=d;while(1){sA(l,c[j+4>>2]|0,63)|0;j=jA(l,58)|0;if(j)a[j>>0]=0;if(lA(k,l)|0){j=b;break a}d=c[b>>2]|0;if((c[d+8>>2]|0)<=(f|0)){j=b;break a}j=c[d>>2]|0;if(!j){j=d;break}else b=d}}}while(0);l=aq(20)|0;c[l>>2]=c[j>>2];c[j>>2]=l;c[l+4>>2]=e;c[l+8>>2]=f;c[l+12>>2]=g;c[l+16>>2]=h;i=m;return 1}function tn(b,d,e){b=b|0;d=d|0;e=e|0;var 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;s=i;i=i+160|0;r=s+8|0;q=s;o=s+88|0;p=s+24|0;n=(d+-3|0)>>>0<2?0:d;sA(o,e,63)|0;e=jA(o,58)|0;if(e){f=e+1|0;a[e>>0]=0;e=jA(f,58)|0;if(!e)m=0;else{a[e>>0]=0;m=e+1|0}}else{f=0;m=0}e=b+60+(d<<2)|0;g=c[e>>2]|0;a:do if(g){j=(f|0)!=0;k=(m|0)==0;l=(n|0)==(d|0);b:while(1){sA(p,c[g+4>>2]|0,63)|0;g=jA(p,58)|0;if(!g)h=0;else{a[g>>0]=0;h=g+1|0}do if(!(lA(p,o)|0)){g=(h|0)!=0;if(j&g?(lA(h,f)|0)!=0:0)break;if(!k?(lA(m,c[(c[(c[e>>2]|0)+12>>2]|0)+8>>2]|0)|0)!=0:0)break;if(l|g^1)break b;if(tn(b,n,h)|0)break b}while(0);e=c[e>>2]|0;g=c[e>>2]|0;if(!g){e=0;break a}}e=c[e>>2]|0;if(e){f=e+16|0;if((c[f>>2]|0)==0?(dj(1,121872,q)|0,(c[f>>2]|0)==0):0){e=0;break}if((c[b+8>>2]|0)>0){q=c[22667]|0;o=c[e+4>>2]|0;p=c[(c[e+12>>2]|0)+8>>2]|0;c[r>>2]=c[52384+(d<<2)>>2];c[r+4>>2]=o;c[r+8>>2]=p;Bz(q,121903,r)|0}}else e=0}else e=0;while(0);c[b+80+(d<<2)>>2]=e;i=s;return e|0}function un(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;do if(!e)e=0;else{if(c[13101]|0){gj(52408,0,0);c[13101]=0}h=oA(e)|0;e=jA(h,58)|0;do if(e){a[e>>0]=0;b=b+60+(d<<2)|0;e=c[b>>2]|0;if(!e){pB(h);e=1;i=19;break}else{d=e;e=1;g=b}do{f=oA(c[d+4>>2]|0)|0;d=jA(f,58)|0;if(d)a[d>>0]=0;if(!((a[h>>0]|0)!=0?(hA(h,f)|0)!=0:0)){e=c[13103]|0;if(e>>>0>=(c[13104]|0)>>>0){hj(52408,1)|0;e=c[13103]|0}c[13103]=e+1;a[e>>0]=32;jj(52408,c[(c[g>>2]|0)+4>>2]|0)|0;e=c[13103]|0;if(e>>>0>=(c[13104]|0)>>>0){hj(52408,1)|0;e=c[13103]|0}c[13103]=e+1;a[e>>0]=58;jj(52408,c[(c[(c[g>>2]|0)+12>>2]|0)+8>>2]|0)|0;e=0}pB(f);g=c[g>>2]|0;d=c[g>>2]|0}while((d|0)!=0);pB(h);if(e<<24>>24)i=19}else{pB(h);e=1;b=b+60+(d<<2)|0;i=19}while(0);if((i|0)==19){d=c[b>>2]|0;if(!d){e=164137;break}else g=0;do{f=g;g=oA(c[d+4>>2]|0)|0;d=jA(g,58)|0;if(d)a[d>>0]=0;if(!((f|0)!=0?(hA(f,g)|0)==0:0)){e=c[13103]|0;if(e>>>0>=(c[13104]|0)>>>0){hj(52408,1)|0;e=c[13103]|0}c[13103]=e+1;a[e>>0]=32;jj(52408,g)|0;e=0}b=c[b>>2]|0;d=c[b>>2]|0}while((d|0)!=0);if(e<<24>>24){e=164137;break}}e=c[13103]|0;if(e>>>0>=(c[13104]|0)>>>0){hj(52408,1)|0;e=c[13103]|0}a[e>>0]=0;e=c[13102]|0;c[13103]=e}while(0);return e|0}function vn(b){b=b|0;var d=0;if(!b)Ia(134567,121920,573,121934);if(!(a[b>>0]|0))Ia(134572,121920,574,121934);d=c[13106]|0;if(!d)d=0;else d=ub[c[d>>2]&31](d,b,512)|0;return d|0}function wn(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+8|0;j=l;if(!b)Ia(134740,121920,589,121951);g=b+8|0;e=c[g>>2]|0;if(!e)Ia(134743,121920,590,121951);if(!(a[e>>0]|0))Ia(134752,121920,591,121951);h=b+20|0;f=c[h>>2]|0;do if(!f){d=Ts(e)|0;if(!d){c[j>>2]=c[g>>2];dj(0,121975,j)|0;d=0;break}j=Az(d,162372)|0;c[h>>2]=j;if(!j){c[k>>2]=ry(c[(qy()|0)>>2]|0)|0;c[k+4>>2]=d;dj(0,122e3,k)|0;d=0;break}d=c[13107]|0;if((d|0)>49){a[b+17>>0]=1;d=1;break}else{c[13107]=d+1;d=1;break}}else{Hz(f,0,0)|0;if(!(c[h>>2]|0))Ia(122021,121920,614,121951);else d=1}while(0);i=l;return d|0}function xn(b){b=b|0;var d=0,e=0;if((a[b+17>>0]|0)!=0?(d=b+20|0,e=c[d>>2]|0,(e|0)!=0):0){uz(e)|0;c[d>>2]=0}return}function yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0.0;if(!b){d=-1;e=-1}else{e=c[b+48>>2]|0;if(!e){f=+h[d>>3];g=+h[d+8>>3]}else{g=+(e|0);h[d+8>>3]=g;h[d>>3]=g;f=g}d=~~(+((c[b+40>>2]|0)*72|0)/f);e=~~(+((c[b+44>>2]|0)*72|0)/g)}c[a>>2]=d;c[a+4>>2]=e;return}+function Xq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[d+52>>2]|0;a:while(1){d=a[e>>0]|0;b:do switch(d<<24>>24){case 0:break a;case 37:{if((a[e+1>>0]|0)==37){d=e+2|0;if((((qA(d,128066,3)|0)!=0?(qA(d,128070,5)|0)!=0:0)?(qA(d,128076,3)|0)!=0:0)?(qA(d,128080,7)|0)!=0:0){d=37;break b}else d=37;c:while(1){switch(d<<24>>24){case 13:{f=e;g=10;break c}case 10:case 0:{f=e;g=12;break c}default:{}}g=e+1|0;d=a[g>>0]|0;e=g}if((g|0)==10){e=f+1|0;if((a[e>>0]|0)==10){e=f+2|0;continue a}}else if((g|0)==12)e=f+1|0;e=d<<24>>24==0?f:e;continue a}else d=37;break}default:{}}while(0);d:while(1){switch(d<<24>>24){case 13:{f=e;g=16;break d}case 10:case 0:{f=e;g=18;break d}default:{}}$m(b,d<<24>>24)|0;g=e+1|0;d=a[g>>0]|0;e=g}if((g|0)==16){g=0;e=f+1|0;if((a[e>>0]|0)==10)d=f+2|0;else g=19}else if((g|0)==18){e=f+1|0;g=19}if((g|0)==19)d=d<<24>>24==0?f:e;$m(b,10)|0;e=d}return}function Yq(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;e=c[13538]|0;if((e|0)!=0?(d=ub[c[e>>2]&31](e,0,128)|0,(d|0)!=0):0)do{if(!(a[d+16>>0]|0)){c[f>>2]=c[d+12>>2];dn(b,128088,f);_m(b,128106)|0;Xq(b,d);_m(b,128124)|0;_m(b,128139)|0}e=c[13538]|0;d=ub[c[e>>2]&31](e,d,8)|0}while((d|0)!=0);i=g;return}function Zq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;a:do switch(d|0){case 0:{f=b;break}case 1:{f=ht(b)|0;break}default:{e=b;d=0;b:while(1){while(1){f=a[e>>0]|0;if(!(f<<24>>24)){e=7;break b}if((f&255)<127)e=e+1|0;else{d=f;break}}if((d&-4)<<24>>24==-64){e=e+2|0;d=1}else{e=9;break}}if((e|0)==7){if((d|0)!=1){f=b;break a}f=ht(b)|0;break a}else if((e|0)==9){if(c[13549]|0){f=b;break a}dj(0,128151,g)|0;c[13549]=1;f=b;break a}}}while(0);if(!(c[13550]|0))gj(54200,0,0);d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}c[13551]=d+1;a[d>>0]=40;e=f;c:while(1){switch(a[e>>0]|0){case 0:break c;case 92:case 41:case 40:{d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}c[13551]=d+1;a[d>>0]=92;break}default:{}}d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}g=a[e>>0]|0;c[13551]=d+1;a[d>>0]=g;e=e+1|0}d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}c[13551]=d+1;a[d>>0]=41;if((f|0)!=(b|0))pB(f);d=c[13551]|0;if(d>>>0>=(c[13552]|0)>>>0){hj(54200,1)|0;d=c[13551]|0}a[d>>0]=0;b=c[13550]|0;c[13551]=b;i=h;return b|0}function _q(a,b,d){a=a|0;b=b|0;d=d|0;pB(c[b+52>>2]|0);return}function $q(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+96|0;l=n+80|0;k=n+72|0;m=n+64|0;g=n+32|0;j=n;h[g>>3]=+h[a>>3];h[g+8>>3]=+h[a+8>>3];h[g+16>>3]=+h[b>>3];h[g+24>>3]=+h[b+8>>3];do if((Lx(d,g,k)|0)>=0){if(!f){a=d+4|0;b=c[a>>2]|0;if((b|0)>(c[13554]|0)){f=c[13555]|0;if(!f)b=aq(b<<5)|0;else b=cq(f,b<<5)|0;c[13555]=b;b=c[a>>2]|0;c[13554]=b}g=c[13555]|0;if((b|0)>0){f=c[d>>2]|0;a=0;do{d=g+(a<<5)|0;o=f+(a<<4)|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];d=g+(a<<5)+16|0;a=a+1|0;o=f+(((a|0)%(b|0)|0)<<4)|0;c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2]}while((a|0)<(b|0))};c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;c[j+24>>2]=0;c[j+28>>2]=0;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];if((Ix(g,b,l,j,m)|0)<0){b=0;break}}else{c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Vx(l,m)}b=m+4|0;if(!(fr(c[b>>2]|0)|0)){g=c[b>>2]|0;b=c[13556]|0;if((g|0)>0){f=c[m>>2]|0;a=0;do{o=b+(a<<4)|0;m=f+(a<<4)|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];a=a+1|0}while((a|0)<(g|0))}c[e>>2]=g}else b=0}else b=0;while(0);i=n;return b|0}function ar(){var b=0,d=0,e=0;d=i;i=i+16|0;b=d;e=c[13557]|0;c[13557]=e+1;do if((e|0)<=0){e=aq(4800)|0;c[13556]=e;if(!e){dj(1,128241,b)|0;b=1;break}c[13558]=300;c[13559]=0;c[13560]=0;if(a[124827]|0){As();b=0}else b=0}else b=0;while(0);i=d;return b|0}function br(){var b=0,d=0,e=0,f=0.0,g=0,j=0;d=i;i=i+16|0;b=d;e=c[13557]|0;c[13557]=e+-1;if((e|0)<=1?(pB(c[13556]|0),(a[124827]|0)!=0):0){e=c[22667]|0;j=c[13559]|0;g=c[13560]|0;f=+Bs();c[b>>2]=j;c[b+4>>2]=g;h[b+8>>3]=f;Bz(e,128279,b)|0}i=d;return}function cr(a,b){a=a|0;b=b|0;return gr(a,b,0)|0}function dr(a,b){a=a|0;b=b|0;return gr(a,b,1)|0}function er(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.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,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,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0.0;$=i;i=i+256|0;Y=$+224|0;W=$+160|0;S=$+80|0;T=$;V=$+144|0;X=$+64|0;Z=$+248|0;U=$+240|0;v=c[d>>2]|0;Q=c[v>>2]&3;q=v+-48|0;N=c[((Q|0)==2?v:q)+40>>2]|0;P=S+16|0;Q=c[(c[((Q|0)==3?v:v+48|0)+40>>2]|0)+16>>2]|0;L=v+16|0;R=c[L>>2]|0;M=R+16|0;a[k>>0]=a[M>>0];a[k+1>>0]=a[M+1>>0];a[k+2>>0]=a[M+2>>0];a[k+3>>0]=a[M+3>>0];a[k+4>>0]=a[M+4>>0];a[k+5>>0]=a[M+5>>0];a[k+6>>0]=a[M+6>>0];a[k+7>>0]=a[M+7>>0];aa=+h[k>>3];R=R+24|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];s=+h[k>>3];R=Q+16|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];r=+h[k>>3];Q=Q+24|0;a[k>>0]=a[Q>>0];a[k+1>>0]=a[Q+1>>0];a[k+2>>0]=a[Q+2>>0];a[k+3>>0]=a[Q+3>>0];a[k+4>>0]=a[Q+4>>0];a[k+5>>0]=a[Q+5>>0];a[k+6>>0]=a[Q+6>>0];a[k+7>>0]=a[Q+7>>0];r=aa+r;s=s+ +h[k>>3];h[S>>3]=r;h[S+8>>3]=s;c[P>>2]=c[S>>2];c[P+4>>2]=c[S+4>>2];c[P+8>>2]=c[S+8>>2];c[P+12>>2]=c[S+12>>2];c[V>>2]=c[S>>2];c[V+4>>2]=c[S+4>>2];c[V+8>>2]=c[S+8>>2];c[V+12>>2]=c[S+12>>2];Q=S+32|0;R=S+48|0;M=c[N+16>>2]|0;L=c[L>>2]|0;K=L+56|0;a[k>>0]=a[K>>0];a[k+1>>0]=a[K+1>>0];a[k+2>>0]=a[K+2>>0];a[k+3>>0]=a[K+3>>0];a[k+4>>0]=a[K+4>>0];a[k+5>>0]=a[K+5>>0];a[k+6>>0]=a[K+6>>0];a[k+7>>0]=a[K+7>>0];aa=+h[k>>3];L=L+64|0;a[k>>0]=a[L>>0];a[k+1>>0]=a[L+1>>0];a[k+2>>0]=a[L+2>>0];a[k+3>>0]=a[L+3>>0];a[k+4>>0]=a[L+4>>0];a[k+5>>0]=a[L+5>>0];a[k+6>>0]=a[L+6>>0];a[k+7>>0]=a[L+7>>0];u=+h[k>>3];L=M+16|0;a[k>>0]=a[L>>0];a[k+1>>0]=a[L+1>>0];a[k+2>>0]=a[L+2>>0];a[k+3>>0]=a[L+3>>0];a[k+4>>0]=a[L+4>>0];a[k+5>>0]=a[L+5>>0];a[k+6>>0]=a[L+6>>0];a[k+7>>0]=a[L+7>>0];t=+h[k>>3];M=M+24|0;a[k>>0]=a[M>>0];a[k+1>>0]=a[M+1>>0];a[k+2>>0]=a[M+2>>0];a[k+3>>0]=a[M+3>>0];a[k+4>>0]=a[M+4>>0];a[k+5>>0]=a[M+5>>0];a[k+6>>0]=a[M+6>>0];a[k+7>>0]=a[M+7>>0];t=aa+t;u=u+ +h[k>>3];h[S+48>>3]=t;h[S+56>>3]=u;c[Q>>2]=c[R>>2];c[Q+4>>2]=c[R+4>>2];c[Q+8>>2]=c[R+8>>2];c[Q+12>>2]=c[R+12>>2];c[X>>2]=c[R>>2];c[X+4>>2]=c[R+4>>2];c[X+8>>2]=c[R+8>>2];c[X+12>>2]=c[R+12>>2];a:do if((e|0)!=1&(a[124828]|0)==0){aa=r-t;j=s-u;l=j*j;if(aa*aa+l<1.0e-06){c[P>>2]=c[S>>2];c[P+4>>2]=c[S+4>>2];c[P+8>>2]=c[S+8>>2];c[P+12>>2]=c[S+12>>2];c[Q>>2]=c[R>>2];c[Q+4>>2]=c[R+4>>2];c[Q+8>>2]=c[R+8>>2];c[Q+12>>2]=c[R+12>>2];j=0.0;l=0.0}else{p=t-r;l=+O(+(p*p+l));M=c[(c[(c[b+60>>2]|0)+16>>2]|0)+248>>2]|0;aa=+((_(M,e+-1|0)|0)/2|0|0);o=j*aa/l;h[P>>3]=r+o;aa=p*aa/l;h[S+24>>3]=s+aa;h[Q>>3]=o+t;h[S+40>>3]=aa+u;aa=+(0-M|0);j=j*aa/l;l=p*aa/l}if((e|0)>0){w=(f|0)==6;x=U+4|0;y=Z+4|0;z=S+24|0;A=S+40|0;B=T+16|0;C=T+32|0;D=T+48|0;E=W+16|0;F=T+16|0;G=W+32|0;H=T+32|0;I=W+48|0;J=T+48|0;K=T+48|0;L=T+32|0;M=T+16|0;q=0;while(1){f=v+-48|0;if((c[((c[v>>2]&3|0)==2?v:f)+40>>2]|0)==(N|0)){c[V>>2]=c[S>>2];c[V+4>>2]=c[S+4>>2];c[V+8>>2]=c[S+8>>2];c[V+12>>2]=c[S+12>>2];c[X>>2]=c[R>>2];c[X+4>>2]=c[R+4>>2];c[X+8>>2]=c[R+8>>2];c[X+12>>2]=c[R+12>>2];c[T>>2]=c[S>>2];c[T+4>>2]=c[S+4>>2];c[T+8>>2]=c[S+8>>2];c[T+12>>2]=c[S+12>>2];c[B>>2]=c[P>>2];c[B+4>>2]=c[P+4>>2];c[B+8>>2]=c[P+8>>2];c[B+12>>2]=c[P+12>>2];c[C>>2]=c[Q>>2];c[C+4>>2]=c[Q+4>>2];c[C+8>>2]=c[Q+8>>2];c[C+12>>2]=c[Q+12>>2];c[D>>2]=c[R>>2];c[D+4>>2]=c[R+4>>2];c[D+8>>2]=c[R+8>>2];c[D+12>>2]=c[R+12>>2]}else{c[V>>2]=c[R>>2];c[V+4>>2]=c[R+4>>2];c[V+8>>2]=c[R+8>>2];c[V+12>>2]=c[R+12>>2];c[X>>2]=c[S>>2];c[X+4>>2]=c[S+4>>2];c[X+8>>2]=c[S+8>>2];c[X+12>>2]=c[S+12>>2];c[K>>2]=c[S>>2];c[K+4>>2]=c[S+4>>2];c[K+8>>2]=c[S+8>>2];c[K+12>>2]=c[S+12>>2];c[L>>2]=c[P>>2];c[L+4>>2]=c[P+4>>2];c[L+8>>2]=c[P+8>>2];c[L+12>>2]=c[P+12>>2];c[M>>2]=c[Q>>2];c[M+4>>2]=c[Q+4>>2];c[M+8>>2]=c[Q+8>>2];c[M+12>>2]=c[Q+12>>2];c[T>>2]=c[R>>2];c[T+4>>2]=c[R+4>>2];c[T+8>>2]=c[R+8>>2];c[T+12>>2]=c[R+12>>2]}if(w){c[x>>2]=4;c[U>>2]=W;c[W>>2]=c[T>>2];c[W+4>>2]=c[T+4>>2];c[W+8>>2]=c[T+8>>2];c[W+12>>2]=c[T+12>>2];c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];c[G>>2]=c[H>>2];c[G+4>>2]=c[H+4>>2];c[G+8>>2]=c[H+8>>2];c[G+12>>2]=c[H+12>>2];c[I>>2]=c[J>>2];c[I+4>>2]=c[J+4>>2];c[I+8>>2]=c[J+8>>2];c[I+12>>2]=c[J+12>>2];c[Y>>2]=c[U>>2];c[Y+4>>2]=c[U+4>>2];Vx(Y,Z);as(v,c[((c[v>>2]&3|0)==2?v:f)+40>>2]|0,c[Z>>2]|0,c[y>>2]|0,g)}else as(v,c[((c[v>>2]&3|0)==2?v:f)+40>>2]|0,T,4,g);c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];js(b,v,W,Y);h[P>>3]=j+ +h[P>>3];h[z>>3]=l+ +h[z>>3];h[Q>>3]=j+ +h[Q>>3];h[A>>3]=l+ +h[A>>3];q=q+1|0;if((q|0)==(e|0))break a;v=c[d+(q<<2)>>2]|0}}}else{if((f|0)==4?(Z=c[b+16>>2]|0,n=(+h[Z+16>>3]+ +h[Z+32>>3])*.5,h[4217]=n,o=(+h[Z+24>>3]+ +h[Z+40>>3])*.5,h[4218]=o,j=(r+t)*.5,l=(s+u)*.5,p=t-r,m=u-s,m=+O(+(p*p+m*m))/5.0,n=n-j,o=o-l,p=+O(+(n*n+o*o)),!(p==0.0)):0){u=j-m*(n/p);aa=l-m*(o/p);h[S+32>>3]=u;h[S+16>>3]=u;h[S+40>>3]=aa;h[S+24>>3]=aa}as(v,c[((c[v>>2]&3|0)==2?v:q)+40>>2]|0,S,4,g);c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];js(b,v,W,Y)}while(0);i=$;return}function fr(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e;b=c[13558]|0;do if((b|0)<(a|0)){b=a+300+b-((a|0)%300|0)|0;a=cq(c[13556]|0,b<<4)|0;c[13556]=a;if(!a){dj(1,129041,d)|0;b=1;break}else{c[13558]=b;b=0;break}}else b=0;while(0);i=e;return b|0}function gr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.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.0,O=0,P=0,S=0.0,T=0.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;ka=i;i=i+208|0;ha=ka+192|0;ja=ka+152|0;aa=ka+144|0;_=ka+136|0;V=ka+128|0;X=ka+112|0;W=ka+96|0;L=ka+88|0;M=ka+80|0;n=ka+72|0;l=ka+64|0;Z=ka+184|0;ga=ka+176|0;ba=ka+168|0;Y=ka+32|0;$=ka;ia=ka+160|0;c[13559]=(c[13559]|0)+1;m=b+80|0;c[13560]=(c[13560]|0)+(c[m>>2]|0);f=c[b+88>>2]|0;a:do if(!f)A=4;else{while(1){g=c[f+16>>2]|0;if(!(a[g+112>>0]|0)){fa=f;break}f=c[g+116>>2]|0;if(!f){A=4;break a}}ea=c[b+84>>2]|0;da=c[m>>2]|0;ca=(da|0)>0;if(ca){l=0;f=0;do{g=ea+(l<<5)|0;w=+h[ea+(l<<5)+8>>3]-+h[ea+(l<<5)+24>>3];if(!((w>=0.0?w:-w)<.01)?(w=+h[g>>3]-+h[ea+(l<<5)+16>>3],!((w>=0.0?w:-w)<.01)):0){if((f|0)!=(l|0)){P=ea+(f<<5)|0;c[P>>2]=c[g>>2];c[P+4>>2]=c[g+4>>2];c[P+8>>2]=c[g+8>>2];c[P+12>>2]=c[g+12>>2];c[P+16>>2]=c[g+16>>2];c[P+20>>2]=c[g+20>>2];c[P+24>>2]=c[g+24>>2];c[P+28>>2]=c[g+28>>2]}f=f+1|0}l=l+1|0}while((l|0)!=(da|0))}else f=0;j=+h[ea>>3];K=ea+16|0;k=+h[K>>3];if(!(j>k)?(U=ea+8|0,s=+h[U>>3],O=ea+24|0,q=+h[O>>3],!(s>q)):0){P=f+-1|0;do if((f|0)>1){J=c[22667]|0;f=0;while(1){A=f;f=f+1|0;E=ea+(f<<5)|0;t=+h[E>>3];F=ea+(f<<5)+16|0;u=+h[F>>3];if(t>u){A=19;break}G=ea+(f<<5)+8|0;v=+h[G>>3];H=ea+(f<<5)+24|0;w=+h[H>>3];if(v>w){A=19;break}I=ea+(A<<5)+16|0;z=k<t;l=z&1;D=ea+(A<<5)|0;x=j>u;m=x&1;C=ea+(A<<5)+24|0;r=q<v;g=r&1;B=ea+(A<<5)+8|0;o=s>w;n=o&1;y=m+l+g+n|0;p=(y|0)>0;if(!((a[124827]|0)==0|p^1)){c[L>>2]=A;c[L+4>>2]=f;Bz(J,128455,L)|0;hr(b)}if(p){do if(!z){if(x){m=~~+h[D>>3];h[D>>3]=+h[F>>3];h[F>>3]=+(m|0);m=0;break}if(r){g=~~+h[C>>3];h[C>>3]=+h[G>>3];h[G>>3]=+(g|0);g=0;break}if(o){n=~~+h[B>>3];h[B>>3]=+h[H>>3];h[H>>3]=+(n|0);n=0}}else{l=~~+h[I>>3];h[I>>3]=+h[E>>3];h[E>>3]=+(l|0);l=0}while(0);p=y+-1|0;if((y|0)>1){o=0;do{do if((l|0)==1){w=+(~~((+h[I>>3]+ +h[E>>3])*.5+.5)|0);h[E>>3]=w;h[I>>3]=w;l=0}else{if((m|0)==1){w=+(~~((+h[D>>3]+ +h[F>>3])*.5+.5)|0);h[F>>3]=w;h[D>>3]=w;m=0;break}if((g|0)==1){w=+(~~((+h[C>>3]+ +h[G>>3])*.5+.5)|0);h[G>>3]=w;h[C>>3]=w;g=0;break}if((n|0)!=1)break;w=+(~~((+h[B>>3]+ +h[H>>3])*.5+.5)|0);h[H>>3]=w;h[B>>3]=w;n=0}while(0);o=o+1|0}while((o|0)<(p|0))}}k=+h[D>>3];g=~~k;j=+h[I>>3];l=~~j;v=+h[E>>3];m=~~v;w=+h[F>>3];n=~~w;do if((l|0)>(m|0)&(n|0)>(g|0)){if(!((m|0)>(g|0)|(n|0)<(g|0))){o=n-g|0;break}if((l|0)<(m|0)|(l|0)>(n|0)){A=l-g|0;o=n-m|0;o=(A|0)<(o|0)?A:o;break}else{o=l-m|0;break}}else o=0;while(0);q=+h[B>>3];g=~~q;s=+h[C>>3];l=~~s;t=+h[G>>3];m=~~t;u=+h[H>>3];n=~~u;do if((l|0)>(m|0)&(n|0)>(g|0)){do if((m|0)>(g|0)|(n|0)<(g|0))if((l|0)<(m|0)|(l|0)>(n|0)){A=l-g|0;g=n-m|0;g=(A|0)<(g|0)?A:g;break}else{g=l-m|0;break}else g=n-g|0;while(0);if((o|0)!=0&(g|0)!=0)if((o|0)<(g|0)){g=j<w;if(j-k>w-v)if(g){h[I>>3]=v;s=t;q=u;j=v;k=w;break}else{h[D>>3]=w;s=t;q=u;j=v;k=w;break}else if(g){h[E>>3]=j;s=t;q=u;k=w;break}else{h[F>>3]=k;s=t;q=u;j=v;break}}else{g=s<u;if(s-q>u-t)if(g){h[C>>3]=t;s=t;q=u;j=v;k=w;break}else{h[B>>3]=u;s=t;q=u;j=v;k=w;break}else if(g){h[G>>3]=s;q=u;j=v;k=w;break}else{h[H>>3]=q;s=t;j=v;k=w;break}}else{s=t;q=u;j=v;k=w}}else{s=t;q=u;j=v;k=w}while(0);if((f|0)>=(P|0)){A=70;break}}if((A|0)==19){c[M>>2]=f;dj(1,128409,M)|0;hr(b);f=0;break a}else if((A|0)==70){j=+h[ea>>3];break}}while(0);k=+h[b>>3];if(!(((!(k<j)?!(k>+h[K>>3]):0)?(N=+h[b+8>>3],!(N<+h[U>>3])):0)?!(N>+h[O>>3]):0)){if(a[124827]|0){Mz(128498,42,1,c[22667]|0)|0;hr(b);k=+h[b>>3];j=+h[ea>>3]}if(k<j){h[b>>3]=j;k=j}j=+h[K>>3];if(k>j)h[b>>3]=j;f=b+8|0;j=+h[f>>3];k=+h[U>>3];if(j<k)h[f>>3]=k;else k=j;j=+h[O>>3];if(k>j)h[f>>3]=j}x=b+40|0;k=+h[x>>3];f=ea+(P<<5)|0;j=+h[f>>3];if(!(((!(k<j)?!(k>+h[ea+(P<<5)+16>>3]):0)?(S=+h[b+48>>3],!(S<+h[ea+(P<<5)+8>>3])):0)?!(S>+h[ea+(P<<5)+24>>3]):0)){if(a[124827]|0){Mz(128541,39,1,c[22667]|0)|0;hr(b);k=+h[x>>3];j=+h[f>>3]}if(k<j)h[x>>3]=j;else j=k;k=+h[ea+(P<<5)+16>>3];if(j>k)h[x>>3]=k;f=b+48|0;j=+h[f>>3];k=+h[ea+(P<<5)+8>>3];if(j<k)h[f>>3]=k;else k=j;j=+h[ea+(P<<5)+24>>3];if(k>j)h[f>>3]=j}g=da<<3;if((g|0)>(c[13561]|0)){f=c[13562]|0;if(!f)f=aq(da<<7)|0;else f=cq(f,da<<7)|0;c[13562]=f;c[13561]=g}if((da|0)>1?(T=+h[U>>3],T>+h[ea+40>>3]):0){U=ea+24|0;S=+h[U>>3];h[U>>3]=-T;h[ea+8>>3]=-S;if((da|0)==1)r=1;else{f=1;do{U=ea+(f<<5)+24|0;T=+h[U>>3];h[U>>3]=-+h[ea+(f<<5)+8>>3];h[ea+(f<<5)+8>>3]=-T;f=f+1|0}while((f|0)!=(da|0));r=1}}else r=0;U=c[fa>>2]&3;y=fa+48|0;f=c[((U|0)==3?fa:y)+40>>2]|0;z=fa+-48|0;if((f|0)==(c[((U|0)==2?fa:z)+40>>2]|0)){c[V>>2]=ok(f)|0;dj(1,128646,V)|0;f=0;break}b:do if(ca){p=da+-1|0;m=c[13562]|0;n=0;l=0;c:while(1){if((n|0)>0)f=+h[ea+(n<<5)+8>>3]>+h[ea+(n+-1<<5)+8>>3]?-1:1;else f=0;if((n|0)<(p|0))g=+h[ea+(n+1<<5)+8>>3]>+h[ea+(n<<5)+8>>3]?1:-1;else g=0;d:do if((f|0)!=(g|0))if((f|0)==1|(g|0)==-1){V=ea+(n<<5)|0;h[m+(l<<4)>>3]=+h[V>>3];f=l+1|0;h[m+(l<<4)+8>>3]=+h[ea+(n<<5)+24>>3];h[m+(f<<4)>>3]=+h[V>>3];h[m+(f<<4)+8>>3]=+h[ea+(n<<5)+8>>3];f=l+2|0;break}else{V=ea+(n<<5)+16|0;h[m+(l<<4)>>3]=+h[V>>3];f=l+1|0;h[m+(l<<4)+8>>3]=+h[ea+(n<<5)+8>>3];h[m+(f<<4)>>3]=+h[V>>3];h[m+(f<<4)+8>>3]=+h[ea+(n<<5)+24>>3];f=l+2|0;break}else{switch(f|0){case -1:{f=l;break d}case 0:break;default:{A=121;break c}}V=ea+(n<<5)|0;h[m+(l<<4)>>3]=+h[V>>3];f=l+1|0;h[m+(l<<4)+8>>3]=+h[ea+(n<<5)+24>>3];h[m+(f<<4)>>3]=+h[V>>3];h[m+(f<<4)+8>>3]=+h[ea+(n<<5)+8>>3];f=l+2|0}while(0);n=n+1|0;if((n|0)>=(da|0))break;else l=f}if((A|0)==121){c[W>>2]=f;c[W+4>>2]=f;c[W+8>>2]=480;dj(1,128581,W)|0;f=0;break a}if(ca){n=c[13562]|0;o=p;m=f;e:while(1){if((o|0)<(p|0))f=+h[ea+(o<<5)+8>>3]>+h[ea+(o+1<<5)+8>>3]?-1:1;else f=0;l=(o|0)>0;if(l)g=+h[ea+(o+-1<<5)+8>>3]>+h[ea+(o<<5)+8>>3]?1:-1;else g=0;f:do if((f|0)!=(g|0))if((f|0)==1|(g|0)==-1){V=ea+(o<<5)|0;h[n+(m<<4)>>3]=+h[V>>3];W=m+1|0;h[n+(m<<4)+8>>3]=+h[ea+(o<<5)+24>>3];h[n+(W<<4)>>3]=+h[V>>3];h[n+(W<<4)+8>>3]=+h[ea+(o<<5)+8>>3];m=m+2|0;break}else{V=ea+(o<<5)+16|0;h[n+(m<<4)>>3]=+h[V>>3];W=m+1|0;h[n+(m<<4)+8>>3]=+h[ea+(o<<5)+8>>3];h[n+(W<<4)>>3]=+h[V>>3];h[n+(W<<4)+8>>3]=+h[ea+(o<<5)+24>>3];m=m+2|0;break}else switch(f|0){case 0:{V=ea+(o<<5)+16|0;h[n+(m<<4)>>3]=+h[V>>3];W=m+1|0;h[n+(m<<4)+8>>3]=+h[ea+(o<<5)+8>>3];h[n+(W<<4)>>3]=+h[V>>3];h[n+(W<<4)+8>>3]=+h[ea+(o<<5)+24>>3];m=m+2|0;break f}case -1:{O=ea+(o<<5)+16|0;h[n+(m<<4)>>3]=+h[O>>3];V=ea+(o<<5)+8|0;U=m+1|0;h[n+(m<<4)+8>>3]=+h[V>>3];h[n+(U<<4)>>3]=+h[O>>3];O=ea+(o<<5)+24|0;P=m+2|0;h[n+(U<<4)+8>>3]=+h[O>>3];U=ea+(o<<5)|0;h[n+(P<<4)>>3]=+h[U>>3];W=m+3|0;h[n+(P<<4)+8>>3]=+h[O>>3];h[n+(W<<4)>>3]=+h[U>>3];h[n+(W<<4)+8>>3]=+h[V>>3];m=m+4|0;break f}default:break e}while(0);if(l)o=o+-1|0;else break b}c[X>>2]=f;c[X+4>>2]=f;c[X+8>>2]=513;dj(1,128581,X)|0;f=0;break a}else m=f}else m=0;while(0);if(r){if(ca){f=0;do{W=ea+(f<<5)+24|0;T=+h[W>>3];X=ea+(f<<5)+8|0;h[W>>3]=-+h[X>>3];h[X>>3]=-T;f=f+1|0}while((f|0)!=(da|0))}if((m|0)>0){f=c[13562]|0;g=0;do{X=f+(g<<4)+8|0;h[X>>3]=-+h[X>>3];g=g+1|0}while((g|0)!=(m|0))}}if(ca){f=0;do{h[ea+(f<<5)>>3]=2147483647.0;h[ea+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}while((f|0)!=(da|0))}c[Z>>2]=c[13562];l=Z+4|0;c[l>>2]=m;h[Y>>3]=+h[b>>3];h[Y+8>>3]=+h[b+8>>3];h[Y+16>>3]=+h[x>>3];h[Y+24>>3]=+h[b+48>>3];if((Lx(Z,Y,ga)|0)<0){dj(1,128685,_)|0;f=0;break}do if(!e){f=c[l>>2]|0;if((f|0)>(c[13554]|0)){g=c[13555]|0;if(!g)f=aq(f<<5)|0;else f=cq(g,f<<5)|0;c[13555]=f;f=c[l>>2]|0;c[13554]=f}if((f|0)>0){g=c[13555]|0;l=c[13562]|0;m=0;do{_=g+(m<<5)|0;e=l+(m<<4)|0;c[_>>2]=c[e>>2];c[_+4>>2]=c[e+4>>2];c[_+8>>2]=c[e+8>>2];c[_+12>>2]=c[e+12>>2];_=g+(m<<5)+16|0;m=m+1|0;e=l+(((m|0)%(f|0)|0)<<4)|0;c[_>>2]=c[e>>2];c[_+4>>2]=c[e+4>>2];c[_+8>>2]=c[e+8>>2];c[_+12>>2]=c[e+12>>2]}while((m|0)<(f|0))}if(!(a[b+29>>0]|0)){j=0.0;k=0.0}else{k=+h[b+16>>3];j=+Q(+k);k=+R(+k)}h[$+8>>3]=k;h[$>>3]=j;if(!(a[b+69>>0]|0)){j=0.0;k=0.0}else{k=+h[b+56>>3];j=-+Q(+k);k=-+R(+k)}h[$+24>>3]=k;h[$+16>>3]=j;b=c[13555]|0;c[ha>>2]=c[ga>>2];c[ha+4>>2]=c[ga+4>>2];if((Ix(b,f,ha,$,ba)|0)>=0)break;dj(1,128724,aa)|0;f=0;break a}else{c[ha>>2]=c[ga>>2];c[ha+4>>2]=c[ga+4>>2];Vx(ha,ba)}while(0);o=ba+4|0;if(fr(c[o>>2]|0)|0){f=0;break}if(ca){f=0;do{h[ea+(f<<5)>>3]=2147483647.0;h[ea+(f<<5)+16>>3]=-2147483648.0;f=f+1|0}while((f|0)!=(da|0))}l=c[o>>2]|0;if((l|0)>0){m=c[13556]|0;f=c[ba>>2]|0;g=0;do{ba=m+(g<<4)|0;aa=f+(g<<4)|0;c[ba>>2]=c[aa>>2];c[ba+4>>2]=c[aa+4>>2];c[ba+8>>2]=c[aa+8>>2];c[ba+12>>2]=c[aa+12>>2];g=g+1|0}while((g|0)<(l|0));m=10;n=0;f=1}else{m=10;n=0;f=1}while(1){ir(ea,da,c[13556]|0,l,m);g:do if(ca){g=0;while(1){if(+h[ea+(g<<5)>>3]==2147483647.0)break;if(+h[ea+(g<<5)+16>>3]==-2147483648.0)break;g=g+1|0;if((g|0)>=(da|0)){l=n;break g}}l=m<<1;m=l;l=(l|0)>(2147483647/(da|0)|0|0)?15:n}else{g=0;l=n}while(0);f=(g|0)==(da|0)?0:f;g=l+1|0;if(!((g|0)<15&f<<24>>24!=0))break;l=c[o>>2]|0;n=g}if(f<<24>>24){ca=ok(c[((c[fa>>2]&3|0)==3?fa:y)+40>>2]|0)|0;fa=ok(c[((c[fa>>2]&3|0)==2?fa:z)+40>>2]|0)|0;c[ja>>2]=ca;c[ja+4>>2]=fa;dj(0,128762,ja)|0;c[ha>>2]=c[ga>>2];c[ha+4>>2]=c[ga+4>>2];Vx(ha,ia);ir(ea,da,c[ia>>2]|0,c[ia+4>>2]|0,10);pB(c[ia>>2]|0)}c[d>>2]=c[o>>2];f=c[13556]|0;break}dj(1,128364,n)|0;hr(b);f=0}while(0);if((A|0)==4){dj(1,128322,l)|0;f=0}i=ka;return f|0}function hr(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0;m=i;i=i+112|0;k=m+80|0;l=m+48|0;j=m+8|0;g=m;d=c[22667]|0;e=b+80|0;c[g>>2]=c[e>>2];Bz(d,128871,g)|0;if((c[e>>2]|0)>0){f=b+84|0;g=0;do{r=c[f>>2]|0;q=+h[r+(g<<5)>>3];p=+h[r+(g<<5)+8>>3];o=+h[r+(g<<5)+16>>3];n=+h[r+(g<<5)+24>>3];c[j>>2]=g;h[j+8>>3]=q;h[j+16>>3]=p;h[j+24>>3]=o;h[j+32>>3]=n;Bz(d,128882,j)|0;g=g+1|0}while((g|0)<(c[e>>2]|0))}q=+h[b+8>>3];p=+h[b+16>>3];r=(a[b+29>>0]|0)!=0?128913:128925;h[l>>3]=+h[b>>3];h[l+8>>3]=q;h[l+16>>3]=p;c[l+24>>2]=r;Bz(d,128941,l)|0;p=+h[b+48>>3];q=+h[b+56>>3];r=(a[b+69>>0]|0)!=0?128913:128925;h[k>>3]=+h[b+40>>3];h[k+8>>3]=p;h[k+16>>3]=q;c[k+24>>2]=r;Bz(d,128992,k)|0;i=m;return}function ir(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,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;s=_(e,b)|0;if((d|0)>3){t=(s|0)<0;u=+(s|0);v=(b|0)>0;w=3;e=0;while(1){if(!t){q=c+(e<<4)|0;r=c+(e<<4)+8|0;p=e+1|0;o=c+(p<<4)|0;p=c+(p<<4)+8|0;g=e+2|0;f=c+(g<<4)|0;g=c+(g<<4)+8|0;i=c+(w<<4)|0;j=c+(w<<4)+8|0;n=0;while(1){z=+(n|0)/u;k=+h[q>>3];l=+h[r>>3];A=+h[o>>3];x=+h[p>>3];B=+h[f>>3];y=+h[g>>3];k=k+z*(A-k);l=l+z*(x-l);A=A+z*(B-A);x=x+z*(y-x);k=k+z*(A-k);l=l+z*(x-l);k=k+z*(A+z*(B+z*(+h[i>>3]-B)-A)-k);l=l+z*(x+z*(y+z*(+h[j>>3]-y)-x)-l);if(v){m=0;do{if(l<=+h[a+(m<<5)+24>>3]+.0001?l>=+h[a+(m<<5)+8>>3]+-.0001:0){e=a+(m<<5)|0;if(+h[e>>3]>k)h[e>>3]=k;e=a+(m<<5)+16|0;if(+h[e>>3]<k)h[e>>3]=k}m=m+1|0}while((m|0)!=(b|0))}if((n|0)==(s|0))break;else n=n+1|0}}e=w+3|0;if((e|0)<(d|0)){r=w;w=e;e=r}else break}}return}function jr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;C=i;i=i+192|0;g=C+80|0;A=C;l=e&2130706432;y=(e&8|0)==0?((l|0)==0?4:l):8;if((y|0)==436207616){w=+h[b+8>>3];w=w+w;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];h[g+16>>3]=+h[b+16>>3];h[g+24>>3]=w-+h[b+24>>3];h[g+32>>3]=+h[b+32>>3];h[g+40>>3]=w-+h[b+40>>3];h[g+48>>3]=+h[b+48>>3];h[g+56>>3]=w-+h[b+56>>3];h[g+64>>3]=+h[b+64>>3];h[g+72>>3]=w-+h[b+72>>3];h[g+80>>3]=+h[b+80>>3];h[g+88>>3]=w-+h[b+88>>3];B=g+96|0;A=b+96|0;c[B>>2]=c[A>>2];c[B+4>>2]=c[A+4>>2];c[B+8>>2]=c[A+8>>2];c[B+12>>2]=c[A+12>>2];Yu(a,b,d,0,0,f&255);Yu(a,g,7,0,0,0)}else{B=$p((d<<6)+64|0)|0;z=(d|0)>0;if(z){g=d+-1|0;j=b+8|0;o=12.0;k=0;do{p=(k|0)<(g|0);x=k;k=k+1|0;v=+h[(p?b+(k<<4)|0:b)>>3]-+h[b+(x<<4)>>3];w=+h[(p?b+(k<<4)+8|0:j)>>3]-+h[b+(x<<4)+8>>3];w=+O(+(v*v+w*w))/3.0;o=o<w?o:w}while((k|0)!=(d|0));if(z){x=d+-1|0;n=(e&2113929216|0)==67108864;p=(y|0)==4;e=(l|0)==16777216;l=b+8|0;k=0;m=0;while(1){v=+h[b+(m<<4)>>3];w=+h[b+(m<<4)+8>>3];if((m|0)<(x|0)){g=m+1|0;j=b+(g<<4)+8|0;g=b+(g<<4)|0}else{j=l;g=b}u=+h[g>>3]-v;s=+h[j>>3]-w;t=o/+O(+(u*u+s*s));t=n?t/3.0:e?t*.5:t;g=k+1|0;if(p){r=t*.5;q=w+s*r;r=v+u*r}else{q=w;r=v}h[B+(k<<4)>>3]=r;h[B+(k<<4)+8>>3]=q;j=k+2|0;h[B+(g<<4)>>3]=v+u*t;h[B+(g<<4)+8>>3]=w+s*t;g=k+3|0;r=1.0-t;h[B+(j<<4)>>3]=v+u*r;h[B+(j<<4)+8>>3]=w+s*r;if(p){t=1.0-t*.5;h[B+(g<<4)>>3]=v+u*t;h[B+(g<<4)+8>>3]=w+s*t;g=k+4|0}m=m+1|0;if((m|0)==(d|0))break;else k=g}}else g=0}else g=0;x=B+(g<<4)|0;c[x>>2]=c[B>>2];c[x+4>>2]=c[B+4>>2];c[x+8>>2]=c[B+8>>2];c[x+12>>2]=c[B+12>>2];x=B+(g+1<<4)|0;e=B+16|0;c[x>>2]=c[e>>2];c[x+4>>2]=c[e+4>>2];c[x+8>>2]=c[e+8>>2];c[x+12>>2]=c[e+12>>2];x=B+(g+2<<4)|0;l=B+32|0;c[x>>2]=c[l>>2];c[x+4>>2]=c[l+4>>2];c[x+8>>2]=c[l+8>>2];c[x+12>>2]=c[l+12>>2];a:do if((y|0)<201326592){if((y|0)>=83886080){if((y|0)<134217728){if((y|0)<100663296){switch(y|0){case 83886080:break;default:break a}if((d|0)==4){d=$p(192)|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];G=d+16|0;n=b+16|0;c[G>>2]=c[n>>2];c[G+4>>2]=c[n+4>>2];c[G+8>>2]=c[n+8>>2];c[G+12>>2]=c[n+12>>2];G=B+48|0;r=+h[G>>3];n=B+64|0;r=r+(+h[n>>3]-r);k=d+32|0;h[k>>3]=r;E=B+56|0;v=+h[E>>3];g=B+72|0;v=v+(+h[g>>3]-v);p=d+40|0;h[p>>3]=v;w=r+(+h[G>>3]-+h[l>>3]);F=d+48|0;h[F>>3]=w;s=v+(+h[E>>3]-+h[B+40>>3]);D=d+56|0;h[D>>3]=s;u=w+(+h[n>>3]-+h[G>>3]);G=d+64|0;h[G>>3]=u;t=s+(+h[g>>3]-+h[E>>3]);E=d+72|0;h[E>>3]=t;g=d+80|0;h[g>>3]=u+(r-w);h[d+88>>3]=t+(v-s);n=B+96|0;s=+h[n>>3];e=B+80|0;s=s+(+h[e>>3]-s);z=d+144|0;h[z>>3]=s;y=B+104|0;v=+h[y>>3];j=B+88|0;v=v+(+h[j>>3]-v);h[d+152>>3]=v;t=s+(+h[n>>3]-+h[B+112>>3]);m=d+128|0;h[m>>3]=t;w=v+(+h[y>>3]-+h[B+120>>3]);x=d+136|0;h[x>>3]=w;r=t+(+h[e>>3]-+h[n>>3]);n=d+112|0;h[n>>3]=r;u=w+(+h[j>>3]-+h[y>>3]);y=d+120|0;h[y>>3]=u;j=d+96|0;h[j>>3]=r+(s-t);e=d+104|0;h[e>>3]=u+(v-w);l=d+160|0;H=b+32|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=d+176|0;b=b+48|0;c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];c[l+12>>2]=c[b+12>>2];Wu(a,d,12,f);c[A>>2]=c[k>>2];c[A+4>>2]=c[k+4>>2];c[A+8>>2]=c[k+8>>2];c[A+12>>2]=c[k+12>>2];w=+h[k>>3];w=w-(+h[F>>3]-w);k=A+16|0;h[k>>3]=w;v=+h[p>>3];v=v-(+h[D>>3]-v);l=A+24|0;h[l>>3]=v;p=A+32|0;h[p>>3]=w+(+h[G>>3]-+h[F>>3]);b=A+40|0;h[b>>3]=v+(+h[E>>3]-+h[D>>3]);f=A+48|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];Zu(a,A,4);c[A>>2]=c[j>>2];c[A+4>>2]=c[j+4>>2];c[A+8>>2]=c[j+8>>2];c[A+12>>2]=c[j+12>>2];v=+h[j>>3];v=v-(+h[n>>3]-v);h[k>>3]=v;w=+h[e>>3];w=w-(+h[y>>3]-w);h[l>>3]=w;h[p>>3]=v+(+h[m>>3]-+h[n>>3]);h[b>>3]=w+(+h[x>>3]-+h[y>>3]);c[f>>2]=c[z>>2];c[f+4>>2]=c[z+4>>2];c[f+8>>2]=c[z+8>>2];c[f+12>>2]=c[z+12>>2];Zu(a,A,4);pB(d);break}else Ia(129064,129075,737,129084)}if((y|0)<117440512){switch(y|0){case 100663296:break;default:break a}D=d+5|0;H=$p(D<<4)|0;E=b+16|0;w=+h[E>>3];u=+h[b>>3]-w;u=u*.125+(w+u*.5);h[H>>3]=u;F=b+40|0;w=+h[F>>3];G=b+24|0;y=B+48|0;z=B+56|0;d=B+72|0;w=w+(+h[G>>3]-w)*.5+(+h[z>>3]-+h[d>>3])*3.0*.5;h[H+8>>3]=w;t=+h[E>>3];v=+h[b>>3]-t;v=t+v*.5-v*.25;h[H+16>>3]=v;h[H+24>>3]=w;h[H+32>>3]=v;t=+h[F>>3];h[H+40>>3]=t+(+h[G>>3]-t)*.5;v=v+(+h[l>>3]-+h[y>>3])*.5;h[H+48>>3]=v;t=+h[F>>3];h[H+56>>3]=t+(+h[G>>3]-t)*.5;h[H+64>>3]=v;v=+h[F>>3];v=v+(+h[G>>3]-v)*.5+(+h[z>>3]-+h[d>>3]);h[H+72>>3]=v;h[H+80>>3]=u;h[H+88>>3]=v;h[H+96>>3]=u;v=v-(+h[z>>3]-+h[d>>3])*.25;h[H+104>>3]=v;h[H+112>>3]=u+(+h[l>>3]-+h[y>>3]);h[H+120>>3]=v+(+h[z>>3]-+h[d>>3])*.5;h[H+128>>3]=+h[H>>3];h[H+136>>3]=w+(+h[z>>3]-+h[d>>3])*.25;Wu(a,H,D,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 117440512:break;default:break a}G=d+1|0;H=$p(G<<4)|0;h[H>>3]=+h[e>>3];E=B+56|0;F=B+72|0;h[H+8>>3]=+h[B+24>>3]-(+h[E>>3]-+h[F>>3])*.5;h[H+16>>3]=+h[B+48>>3];w=+h[E>>3];h[H+24>>3]=w-(w-+h[F>>3])*.5;h[H+32>>3]=+h[b+32>>3];D=b+40|0;h[H+40>>3]=+h[D>>3]+(+h[E>>3]-+h[F>>3])*.5;h[H+48>>3]=+h[e>>3];h[H+56>>3]=+h[D>>3]+(+h[E>>3]-+h[F>>3])*.5;w=+h[b+8>>3];h[H+72>>3]=w-(w-+h[b+56>>3])*.5;h[H+64>>3]=+h[b>>3];Wu(a,H,G,f);pB(H);break}}if((y|0)<167772160)if((y|0)<150994944){switch(y|0){case 134217728:break;default:break a}D=d+4|0;H=$p(D<<4)|0;E=b+16|0;t=+h[E>>3];d=B+48|0;t=t+(+h[b>>3]-t)*.5+(+h[l>>3]-+h[d>>3])*.25;h[H>>3]=t;F=b+40|0;w=+h[F>>3];G=b+24|0;w=w+(+h[G>>3]-w)*.5;h[H+8>>3]=w;h[H+16>>3]=t;y=B+56|0;z=B+72|0;u=w+(+h[y>>3]-+h[z>>3])*.5;h[H+24>>3]=u;t=t+(+h[l>>3]-+h[d>>3])*.5;h[H+32>>3]=t;h[H+40>>3]=u;h[H+48>>3]=t;t=u+(+h[y>>3]-+h[z>>3])*.5;h[H+56>>3]=t;v=+h[E>>3];v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[d>>3])*3.0*.25;h[H+64>>3]=v;h[H+72>>3]=t;h[H+80>>3]=v;h[H+88>>3]=u;v=+h[E>>3];v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[d>>3])*.25;h[H+96>>3]=v;h[H+104>>3]=u;h[H+112>>3]=v;h[H+120>>3]=w;Wu(a,H,D,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 150994944:break;default:break a}D=d+2|0;H=$p(D<<4)|0;E=b+16|0;u=+h[E>>3];d=B+48|0;u=u+(+h[b>>3]-u)*.5+(+h[l>>3]-+h[d>>3])*3.0*.25;h[H>>3]=u;F=b+40|0;w=+h[F>>3];G=b+24|0;w=w+(+h[G>>3]-w)*.5;h[H+8>>3]=w;h[H+16>>3]=u;y=B+56|0;z=B+72|0;u=w+(+h[y>>3]-+h[z>>3])*.25;h[H+24>>3]=u;v=+h[E>>3];h[H+32>>3]=v+(+h[b>>3]-v)*.5+(+h[l>>3]-+h[d>>3])*.25;v=u+(+h[y>>3]-+h[z>>3])*.5;h[H+40>>3]=v;t=+h[E>>3];h[H+48>>3]=t+(+h[b>>3]-t)*.5-(+h[l>>3]-+h[d>>3])*.25;h[H+56>>3]=v;v=+h[E>>3];v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[d>>3])*3.0*.25;h[H+64>>3]=v;h[H+72>>3]=u;h[H+80>>3]=v;h[H+88>>3]=w;Wu(a,H,D,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else if((y|0)<184549376){switch(y|0){case 167772160:break;default:break a}D=d+1|0;H=$p(D<<4)|0;E=b+16|0;u=+h[E>>3];y=B+48|0;u=u+(+h[b>>3]-u)*.5+(+h[l>>3]-+h[y>>3]);h[H>>3]=u;F=b+40|0;w=+h[F>>3];G=b+24|0;z=B+56|0;d=B+72|0;w=w+(+h[G>>3]-w)*.5+(+h[z>>3]-+h[d>>3])*.25;h[H+8>>3]=w;u=u-(+h[l>>3]-+h[y>>3]);h[H+16>>3]=u;h[H+24>>3]=w+(+h[z>>3]-+h[d>>3]);h[H+32>>3]=u;u=w+(+h[z>>3]-+h[d>>3])*.5;h[H+40>>3]=u;t=+h[E>>3];v=+h[b>>3]-t;v=t+v*.5-v*.25;h[H+48>>3]=v;h[H+56>>3]=u;h[H+64>>3]=v;h[H+72>>3]=w;Wu(a,H,D,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 184549376:break;default:break a}F=d+4|0;H=$p(F<<4)|0;D=b+16|0;u=+h[D>>3];v=+h[b>>3]-u;x=B+48|0;v=v*.125+(u+v*.5)+(+h[l>>3]-+h[x>>3])*.5;h[H>>3]=v;z=b+40|0;u=+h[z>>3];d=b+24|0;G=B+56|0;y=B+72|0;u=u+(+h[d>>3]-u)*.5+(+h[G>>3]-+h[y>>3])*.25;h[H+8>>3]=u;t=+h[D>>3];w=+h[b>>3]-t;w=t+w*.5-w*.125;h[H+16>>3]=w;h[H+24>>3]=u;h[H+32>>3]=w;u=u+(+h[G>>3]-+h[y>>3])*.5;h[H+40>>3]=u;w=w-(+h[l>>3]-+h[x>>3])*.5;h[H+48>>3]=w;h[H+56>>3]=u;E=H+64|0;h[E>>3]=w;w=+h[z>>3];w=w+(+h[d>>3]-w)*.5-(+h[G>>3]-+h[y>>3])*.25;h[H+72>>3]=w;u=v-(+h[l>>3]-+h[x>>3])*.5;h[H+80>>3]=u;h[H+88>>3]=w;h[H+96>>3]=u;w=w-(+h[G>>3]-+h[y>>3])*.5;h[H+104>>3]=w;y=H+112|0;h[y>>3]=v;h[H+120>>3]=w;Wu(a,H,F,f);h[A>>3]=+h[D>>3];w=+h[z>>3];f=A+8|0;h[f>>3]=w+(+h[d>>3]-w)*.5;D=A+16|0;h[D>>3]=+h[E>>3];E=b+8|0;F=b+56|0;G=A+24|0;h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);h[A>>3]=+h[y>>3];w=+h[z>>3];h[f>>3]=w+(+h[d>>3]-w)*.5;h[D>>3]=+h[b>>3];h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);pB(H);break}}if((y|0)>=33554432){if((y|0)<50331648){switch(y|0){case 33554432:break;default:break a}g=d+2|0;j=$p(g<<4)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];k=j+16|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];k=B+48|0;F=B+64|0;h[j+32>>3]=+h[l>>3]+(+h[k>>3]-+h[F>>3])/3.0;G=B+56|0;H=B+72|0;h[j+40>>3]=+h[B+40>>3]+(+h[G>>3]-+h[H>>3])/3.0;w=+h[k>>3];h[j+48>>3]=w+(w-+h[F>>3])/3.0;w=+h[G>>3];h[j+56>>3]=w+(w-+h[H>>3])/3.0;if((g|0)>4){e=4;do{H=j+(e<<4)|0;G=b+(e+-2<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];e=e+1|0}while((e|0)!=(g|0))}Wu(a,j,g,f);pB(j);c[A>>2]=c[k>>2];c[A+4>>2]=c[k+4>>2];c[A+8>>2]=c[k+8>>2];c[A+12>>2]=c[k+12>>2];H=A+16|0;c[H>>2]=c[l>>2];c[H+4>>2]=c[l+4>>2];c[H+8>>2]=c[l+8>>2];c[H+12>>2]=c[l+12>>2];Zu(a,A,2);break}if((y|0)>=67108864){switch(y|0){case 67108864:break;default:break a}if((d|0)==4){H=$p(96)|0;c[H>>2]=c[b>>2];c[H+4>>2]=c[b+4>>2];c[H+8>>2]=c[b+8>>2];c[H+12>>2]=c[b+12>>2];E=H+16|0;c[E>>2]=c[l>>2];c[E+4>>2]=c[l+4>>2];c[E+8>>2]=c[l+8>>2];c[E+12>>2]=c[l+12>>2];E=H+32|0;F=B+64|0;c[E>>2]=c[F>>2];c[E+4>>2]=c[F+4>>2];c[E+8>>2]=c[F+8>>2];c[E+12>>2]=c[F+12>>2];E=H+48|0;G=b+32|0;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];c[E+8>>2]=c[G+8>>2];c[E+12>>2]=c[G+12>>2];E=H+64|0;G=B+128|0;c[E>>2]=c[G>>2];c[E+4>>2]=c[G+4>>2];c[E+8>>2]=c[G+8>>2];c[E+12>>2]=c[G+12>>2];E=H+80|0;D=B+160|0;c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];Wu(a,H,6,f);pB(H);h[A>>3]=+h[e>>3]+(+h[B+176>>3]-+h[B>>3]);h[A+8>>3]=+h[B+24>>3]+(+h[B+184>>3]-+h[B+8>>3]);H=A+16|0;c[H>>2]=c[F>>2];c[H+4>>2]=c[F+4>>2];c[H+8>>2]=c[F+8>>2];c[H+12>>2]=c[F+12>>2];Zu(a,A,2);c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];Zu(a,A,2);c[H>>2]=c[B>>2];c[H+4>>2]=c[B+4>>2];c[H+8>>2]=c[B+8>>2];c[H+12>>2]=c[B+12>>2];Zu(a,A,2);break}else Ia(129064,129075,714,129084)}else{switch(y|0){case 50331648:break;default:break a}j=d+3|0;k=$p(j<<4)|0;c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];w=+h[b>>3];h[k+16>>3]=w-(w-+h[e>>3])*.25;H=B+56|0;w=+h[b+8>>3]+(+h[H>>3]-+h[B+72>>3])/3.0;h[k+24>>3]=w;v=+h[b>>3];h[k+32>>3]=v-(v-+h[e>>3])*2.0;h[k+40>>3]=w;w=+h[b>>3];h[k+48>>3]=w-(w-+h[e>>3])*2.25;h[k+56>>3]=+h[H>>3];h[k+64>>3]=+h[B+48>>3];h[k+72>>3]=+h[H>>3];if((j|0)>4){g=4;do{H=k+(g<<4)|0;G=b+(g+-3<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];g=g+1|0}while((g|0)!=(j|0))}Wu(a,k,j,f);pB(k);break}}if((y|0)<8){switch(y|0){case 4:break;default:break a}g=d*96|0;p=aq(g+32|0)|0;if(z){g=p+g|0;j=d*6|0;k=p;e=1;m=0;n=0;while(1){G=n<<2;l=B+(G<<4)|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];c[k+8>>2]=c[l+8>>2];c[k+12>>2]=c[l+12>>2];l=p+(e<<4)|0;H=B+((G|1)<<4)|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=p+(m+2<<4)|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=p+(m+3<<4)|0;H=B+((G|2)<<4)|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=p+(m+4<<4)|0;c[l>>2]=c[H>>2];c[l+4>>2]=c[H+4>>2];c[l+8>>2]=c[H+8>>2];c[l+12>>2]=c[H+12>>2];l=m+6|0;H=p+(m+5<<4)|0;G=B+((G|3)<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];n=n+1|0;if((n|0)==(d|0))break;else{k=p+(l<<4)|0;e=l|1;m=l}}j=j|1}else{j=1;g=p};c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];G=p+(j<<4)|0;H=p+16|0;c[G>>2]=c[H>>2];c[G+4>>2]=c[H+4>>2];c[G+8>>2]=c[H+8>>2];c[G+12>>2]=c[H+12>>2];Yu(a,H,j,0,0,f&255);pB(p);break}if((y|0)<16777216){switch(y|0){case 8:break;default:break a}Wu(a,b,d,f);if(!z)break;g=A+16|0;j=0;do{H=j*3|0;G=B+(H+2<<4)|0;c[A>>2]=c[G>>2];c[A+4>>2]=c[G+4>>2];c[A+8>>2]=c[G+8>>2];c[A+12>>2]=c[G+12>>2];H=B+(H+4<<4)|0;c[g>>2]=c[H>>2];c[g+4>>2]=c[H+4>>2];c[g+8>>2]=c[H+8>>2];c[g+12>>2]=c[H+12>>2];Zu(a,A,2);j=j+1|0}while((j|0)!=(d|0))}else{switch(y|0){case 16777216:break;default:break a}g=d+1|0;j=$p(g<<4)|0;if((d|0)>1){k=1;do{H=j+(k<<4)|0;G=b+(k<<4)|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];k=k+1|0}while((k|0)!=(d|0))}F=d*3|0;G=B+(F+1<<4)|0;c[j>>2]=c[G>>2];c[j+4>>2]=c[G+4>>2];c[j+8>>2]=c[G+8>>2];c[j+12>>2]=c[G+12>>2];E=j+(d<<4)|0;H=B+(F+-1<<4)|0;c[E>>2]=c[H>>2];c[E+4>>2]=c[H+4>>2];c[E+8>>2]=c[H+8>>2];c[E+12>>2]=c[H+12>>2];Wu(a,j,g,f);pB(j);c[A>>2]=c[H>>2];c[A+4>>2]=c[H+4>>2];c[A+8>>2]=c[H+8>>2];c[A+12>>2]=c[H+12>>2];H=A+16|0;c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];G=A+32|0;h[G>>3]=+h[H>>3]+(+h[A>>3]-+h[B+(F<<4)>>3]);h[A+40>>3]=+h[A+24>>3]+(+h[A+8>>3]-+h[B+(F<<4)+8>>3]);Zu(a,H,2);c[H>>2]=c[G>>2];c[H+4>>2]=c[G+4>>2];c[H+8>>2]=c[G+8>>2];c[H+12>>2]=c[G+12>>2];Zu(a,A,2);break}}else if((y|0)<318767104){if((y|0)<251658240){if((y|0)<218103808){switch(y|0){case 201326592:break;default:break a}H=d<<4;x=$p(H)|0;y=b+16|0;w=+h[y>>3];h[x>>3]=w;F=b+40|0;v=+h[F>>3];G=b+24|0;E=B+48|0;z=B+56|0;D=B+72|0;v=v+(+h[G>>3]-v)*.5+(+h[z>>3]-+h[D>>3])*.125;h[x+8>>3]=v;u=w+(+h[l>>3]-+h[E>>3])*2.0;h[x+16>>3]=u;h[x+24>>3]=v;h[x+32>>3]=u;v=v+(+h[z>>3]-+h[D>>3])*.5;h[x+40>>3]=v;h[x+48>>3]=w;h[x+56>>3]=v;Wu(a,x,d,f);pB(x);H=$p(H)|0;v=+h[y>>3]+(+h[l>>3]-+h[E>>3]);h[H>>3]=v;w=+h[F>>3];w=w+(+h[G>>3]-w)*.5-(+h[z>>3]-+h[D>>3])*5.0*.125;h[H+8>>3]=w;u=v+(+h[l>>3]-+h[E>>3]);E=H+16|0;h[E>>3]=u;h[H+24>>3]=w;h[H+32>>3]=u;w=w+(+h[z>>3]-+h[D>>3])*.5;h[H+40>>3]=w;h[H+48>>3]=v;h[H+56>>3]=w;Wu(a,H,d,f);h[A>>3]=+h[E>>3];w=+h[F>>3];h[A+8>>3]=w+(+h[G>>3]-w)*.5;h[A+16>>3]=+h[b>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}if((y|0)<234881024){switch(y|0){case 218103808:break;default:break a}H=d<<4;z=$p(H)|0;w=+h[b>>3];h[z>>3]=w;E=b+40|0;v=+h[E>>3];F=b+24|0;D=B+56|0;G=B+72|0;v=v+(+h[F>>3]-v)*.5+(+h[D>>3]-+h[G>>3])*.125;h[z+8>>3]=v;h[z+16>>3]=w;u=v+(+h[D>>3]-+h[G>>3])*.5;h[z+24>>3]=u;w=w-(+h[D>>3]-+h[G>>3])*2.0;h[z+32>>3]=w;h[z+40>>3]=u;h[z+48>>3]=w;h[z+56>>3]=v;Wu(a,z,d,f);pB(z);H=$p(H)|0;v=+h[b>>3]-(+h[l>>3]-+h[B+48>>3]);h[H>>3]=v;w=+h[E>>3];w=w+(+h[F>>3]-w)*.5-(+h[D>>3]-+h[G>>3])*5.0*.125;h[H+8>>3]=w;h[H+16>>3]=v;u=w+(+h[D>>3]-+h[G>>3])*.5;h[H+24>>3]=u;v=v-(+h[D>>3]-+h[G>>3]);h[H+32>>3]=v;h[H+40>>3]=u;G=H+48|0;h[G>>3]=v;h[H+56>>3]=w;Wu(a,H,d,f);h[A>>3]=+h[b+16>>3];w=+h[E>>3];h[A+8>>3]=w+(+h[F>>3]-w)*.5;h[A+16>>3]=+h[G>>3];h[A+24>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 234881024:break;default:break a}H=d<<4;D=$p(H)|0;p=b+16|0;v=+h[p>>3];x=B+48|0;v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[x>>3])*9.0*.125;h[D>>3]=v;y=b+40|0;w=+h[y>>3];z=b+24|0;F=B+56|0;E=B+72|0;w=w+(+h[z>>3]-w)*.5+(+h[F>>3]-+h[E>>3])*.125;h[D+8>>3]=w;u=v+(+h[l>>3]-+h[x>>3]);h[D+16>>3]=u;h[D+24>>3]=w;h[D+32>>3]=u;w=w+(+h[F>>3]-+h[E>>3])*.5;h[D+40>>3]=w;h[D+48>>3]=v;h[D+56>>3]=w;Wu(a,D,d,f);pB(D);D=$p(H)|0;w=+h[p>>3];w=w+(+h[b>>3]-w)*.5-(+h[l>>3]-+h[x>>3])*9.0*.125;h[D>>3]=w;v=+h[y>>3];v=v+(+h[z>>3]-v)*.5-(+h[F>>3]-+h[E>>3])*5.0*.125;h[D+8>>3]=v;u=w+(+h[l>>3]-+h[x>>3]);h[D+16>>3]=u;h[D+24>>3]=v;h[D+32>>3]=u;v=v+(+h[F>>3]-+h[E>>3])*.5;h[D+40>>3]=v;h[D+48>>3]=w;h[D+56>>3]=v;Wu(a,D,d,f);pB(D);D=$p(H)|0;v=+h[p>>3];v=v+(+h[b>>3]-v)*.5+(+h[l>>3]-+h[x>>3])*.125;h[D>>3]=v;w=+h[y>>3];w=w+(+h[z>>3]-w)*.5-(+h[F>>3]-+h[E>>3])*5.0*.125;h[D+8>>3]=w;u=v+(+h[l>>3]-+h[x>>3]);h[D+16>>3]=u;h[D+24>>3]=w;h[D+32>>3]=u;w=w+(+h[F>>3]-+h[E>>3])*.5;h[D+40>>3]=w;h[D+48>>3]=v;h[D+56>>3]=w;Wu(a,D,d,f);pB(D);H=$p(H)|0;w=+h[p>>3];w=w+(+h[b>>3]-w)*.5+(+h[l>>3]-+h[x>>3])*.125;h[H>>3]=w;v=+h[y>>3];v=v+(+h[z>>3]-v)*.5+(+h[F>>3]-+h[E>>3])*.125;h[H+8>>3]=v;u=w+(+h[l>>3]-+h[x>>3]);D=H+16|0;h[D>>3]=u;h[H+24>>3]=v;h[H+32>>3]=u;v=v+(+h[F>>3]-+h[E>>3])*.5;h[H+40>>3]=v;h[H+48>>3]=w;h[H+56>>3]=v;Wu(a,H,d,f);h[A>>3]=+h[D>>3];v=+h[y>>3];f=A+8|0;h[f>>3]=v+(+h[z>>3]-v)*.5;D=A+16|0;h[D>>3]=+h[b>>3];E=b+8|0;F=b+56|0;G=A+24|0;h[G>>3]=v+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);v=+h[p>>3];h[A>>3]=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[x>>3])*9.0*.125;w=+h[y>>3];h[f>>3]=w+(+h[z>>3]-w)*.5;h[D>>3]=v;h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);pB(H);break}}if((y|0)<285212672)if((y|0)<268435456){switch(y|0){case 251658240:break;default:break a}H=d<<4;G=$p(H)|0;x=b+16|0;w=+h[x>>3];D=B+48|0;w=w+(+h[b>>3]-w)*.5-(+h[l>>3]-+h[D>>3]);h[G>>3]=w;y=b+40|0;v=+h[y>>3];z=b+24|0;F=B+56|0;E=B+72|0;v=v+(+h[z>>3]-v)*.5+(+h[F>>3]-+h[E>>3])*.125;h[G+8>>3]=v;u=w+(+h[l>>3]-+h[D>>3])*2.0;h[G+16>>3]=u;h[G+24>>3]=v;h[G+32>>3]=u;v=v+(+h[F>>3]-+h[E>>3])*.5;h[G+40>>3]=v;h[G+48>>3]=w;h[G+56>>3]=v;Wu(a,G,d,f);pB(G);H=$p(H)|0;v=+h[x>>3];v=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[D>>3]);h[H>>3]=v;w=+h[y>>3];w=w+(+h[z>>3]-w)*.5-(+h[F>>3]-+h[E>>3])*5.0*.125;h[H+8>>3]=w;u=v+(+h[l>>3]-+h[D>>3])*2.0;D=H+16|0;h[D>>3]=u;h[H+24>>3]=w;h[H+32>>3]=u;w=w+(+h[F>>3]-+h[E>>3])*.5;h[H+40>>3]=w;h[H+48>>3]=v;h[H+56>>3]=w;Wu(a,H,d,f);h[A>>3]=+h[D>>3];w=+h[y>>3];f=A+8|0;h[f>>3]=w+(+h[z>>3]-w)*.5;D=A+16|0;h[D>>3]=+h[b>>3];E=b+8|0;F=b+56|0;G=A+24|0;h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);h[A>>3]=+h[x>>3];w=+h[y>>3];h[f>>3]=w+(+h[z>>3]-w)*.5;h[D>>3]=+h[H>>3];h[G>>3]=w+(+h[E>>3]-+h[F>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 268435456:break;default:break a}H=$p(d<<4)|0;h[H>>3]=+h[b>>3];E=B+48|0;y=B+56|0;z=B+72|0;h[H+8>>3]=+h[B+24>>3]-(+h[y>>3]-+h[z>>3])*.5;h[H+16>>3]=+h[E>>3];w=+h[y>>3];h[H+24>>3]=w-(w-+h[z>>3])*.5;h[H+32>>3]=+h[b+32>>3];x=b+40|0;h[H+40>>3]=+h[x>>3]+(+h[y>>3]-+h[z>>3])*.5;h[H+48>>3]=+h[b>>3];h[H+56>>3]=+h[x>>3]+(+h[y>>3]-+h[z>>3])*.5;Wu(a,H,d,f);f=b+16|0;w=+h[f>>3]+(+h[l>>3]-+h[E>>3])*.25;h[A>>3]=w;v=+h[x>>3];d=b+24|0;v=v+(+h[d>>3]-v)*.5+(+h[y>>3]-+h[z>>3])*.125;D=A+8|0;h[D>>3]=v;F=A+16|0;h[F>>3]=w+(+h[l>>3]-+h[E>>3])*.25;G=A+24|0;h[G>>3]=v-(+h[y>>3]-+h[z>>3])*.25;Zu(a,A,2);v=+h[f>>3]+(+h[l>>3]-+h[E>>3])*.25;h[A>>3]=v;w=+h[x>>3];w=w+(+h[d>>3]-w)*.5-(+h[y>>3]-+h[z>>3])*.125;h[D>>3]=w;h[F>>3]=v+(+h[l>>3]-+h[E>>3])*.25;h[G>>3]=w+(+h[y>>3]-+h[z>>3])*.25;Zu(a,A,2);h[A>>3]=+h[f>>3]+(+h[l>>3]-+h[E>>3])*.25;w=+h[x>>3]+(+h[y>>3]-+h[z>>3])*3.0*.25;h[D>>3]=w;h[F>>3]=+h[b>>3]-(+h[l>>3]-+h[E>>3])*.25;h[G>>3]=w;Zu(a,A,2);pB(H);break}else if((y|0)<301989888){switch(y|0){case 285212672:break;default:break a}E=$p(d<<4)|0;x=b+16|0;u=+h[x>>3];D=B+48|0;u=u+(+h[b>>3]-u)*.5+(+h[l>>3]-+h[D>>3])*.5;h[E>>3]=u;y=b+40|0;t=+h[y>>3];z=b+24|0;t=t+(+h[z>>3]-t)*.5+(+h[l>>3]-+h[D>>3])*.5;h[E+8>>3]=t;h[E+16>>3]=u;u=+h[y>>3];w=(+h[l>>3]-+h[D>>3])*.5;u=u+(+h[z>>3]-u)*.5-w;h[E+24>>3]=u;v=+h[x>>3];w=v+(+h[b>>3]-v)*.5-w;h[E+32>>3]=w;h[E+40>>3]=u;h[E+48>>3]=w;h[E+56>>3]=t;Wu(a,E,d,f);pB(E);t=+h[x>>3];t=t+(+h[b>>3]-t)*.5;w=t+(+h[l>>3]-+h[D>>3])*3.0*.25;h[A>>3]=w;u=+h[y>>3];u=u+(+h[z>>3]-u)*.5;v=u+(+h[l>>3]-+h[D>>3])*3.0*.25;f=A+8|0;h[f>>3]=v;E=A+16|0;h[E>>3]=w;w=(+h[l>>3]-+h[D>>3])*3.0*.25;u=u-w;H=A+24|0;h[H>>3]=u;w=t-w;h[A+32>>3]=w;h[A+40>>3]=u;h[A+48>>3]=w;h[A+56>>3]=v;F=A+64|0;c[F>>2]=c[A>>2];c[F+4>>2]=c[A+4>>2];c[F+8>>2]=c[A+8>>2];c[F+12>>2]=c[A+12>>2];Zu(a,A,5);v=+h[x>>3];w=+h[b>>3];h[A>>3]=v+(w-v)*.5+(+h[l>>3]-+h[D>>3])*3.0*.25;v=+h[y>>3];h[f>>3]=v+(+h[z>>3]-v)*.5;h[E>>3]=w;F=b+8|0;G=b+56|0;h[H>>3]=v+(+h[F>>3]-+h[G>>3])*.5;Zu(a,A,2);v=+h[x>>3];h[A>>3]=v;w=+h[y>>3];h[f>>3]=w+(+h[z>>3]-w)*.5;h[E>>3]=v+(+h[b>>3]-v)*.5-(+h[l>>3]-+h[D>>3])*3.0*.25;h[H>>3]=w+(+h[F>>3]-+h[G>>3])*.5;Zu(a,A,2);break}else{switch(y|0){case 301989888:break;default:break a}E=d+12|0;H=$p(E<<4)|0;z=b+16|0;r=+h[z>>3];n=B+48|0;r=r+(+h[b>>3]-r)*.5+(+h[l>>3]-+h[n>>3])*.25;h[H>>3]=r;d=b+40|0;t=+h[d>>3];D=b+24|0;x=B+56|0;y=B+72|0;t=t+(+h[D>>3]-t)*.5+(+h[x>>3]-+h[y>>3])*.5;p=H+8|0;h[p>>3]=t;h[H+16>>3]=r;t=t+(+h[x>>3]-+h[y>>3])*.125;G=H+24|0;h[G>>3]=t;v=r-(+h[l>>3]-+h[n>>3])*.125;F=H+32|0;h[F>>3]=v;s=t+(+h[x>>3]-+h[y>>3])*.125;h[H+40>>3]=s;h[H+48>>3]=r;u=s+(+h[x>>3]-+h[y>>3])*.125;h[H+56>>3]=u;h[H+64>>3]=r;r=u+(+h[x>>3]-+h[y>>3])*.125;h[H+72>>3]=r;h[H+80>>3]=v;h[H+88>>3]=r;v=+h[z>>3];v=v+(+h[b>>3]-v)*.5;h[H+96>>3]=v;h[H+104>>3]=u;w=v-(+h[l>>3]-+h[n>>3])*.125;h[H+112>>3]=w;h[H+120>>3]=r;w=w-(+h[l>>3]-+h[n>>3])*.125;h[H+128>>3]=w;h[H+136>>3]=r;h[H+144>>3]=w;h[H+152>>3]=u;u=w+(+h[l>>3]-+h[n>>3])*.125;h[H+160>>3]=u;h[H+168>>3]=s;h[H+176>>3]=w;h[H+184>>3]=t;h[H+192>>3]=w;w=+h[p>>3];h[H+200>>3]=w;h[H+208>>3]=u;h[H+216>>3]=w;p=H+224|0;h[p>>3]=v;h[H+232>>3]=+h[G>>3];h[H+240>>3]=+h[F>>3];h[H+248>>3]=w;Wu(a,H,E,f);w=+h[p>>3];h[A>>3]=w;v=+h[d>>3];v=v+(+h[D>>3]-v)*.5;E=A+8|0;h[E>>3]=v;F=A+16|0;h[F>>3]=w;G=A+24|0;h[G>>3]=v+(+h[x>>3]-+h[y>>3])*.125;Zu(a,A,2);v=+h[p>>3];h[A>>3]=v;w=+h[d>>3];w=w+(+h[D>>3]-w)*.5+(+h[x>>3]-+h[y>>3])*.25;h[E>>3]=w;h[F>>3]=v;h[G>>3]=w+(+h[x>>3]-+h[y>>3])*.125;Zu(a,A,2);h[A>>3]=+h[z>>3];w=+h[d>>3];h[E>>3]=w+(+h[D>>3]-w)*.5;h[F>>3]=+h[b>>3];h[G>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}}else{if((y|0)<369098752){if((y|0)<335544320){switch(y|0){case 318767104:break;default:break a}E=d+4|0;H=$p(E<<4)|0;z=b+16|0;v=+h[z>>3];F=B+48|0;v=v+(+h[b>>3]-v)*.5+(+h[l>>3]-+h[F>>3])*.125;h[H>>3]=v;d=b+40|0;w=+h[d>>3];D=b+24|0;x=B+56|0;y=B+72|0;w=w+(+h[D>>3]-w)*.5+(+h[x>>3]-+h[y>>3])*.5;h[H+8>>3]=w;s=v+(+h[l>>3]-+h[F>>3])*.125;h[H+16>>3]=s;u=w+(+h[x>>3]-+h[y>>3])*.125;h[H+24>>3]=u;h[H+32>>3]=s;s=u+(+h[x>>3]-+h[y>>3])*.25;h[H+40>>3]=s;h[H+48>>3]=v;t=s+(+h[x>>3]-+h[y>>3])*.125;h[H+56>>3]=t;v=v-(+h[l>>3]-+h[F>>3])*.25;h[H+64>>3]=v;h[H+72>>3]=t;t=v-(+h[l>>3]-+h[F>>3])*.125;h[H+80>>3]=t;h[H+88>>3]=s;h[H+96>>3]=t;h[H+104>>3]=u;h[H+112>>3]=v;h[H+120>>3]=w;Wu(a,H,E,f);w=+h[z>>3];w=w+(+h[b>>3]-w)*.5;h[A>>3]=w;v=+h[d>>3];v=v+(+h[D>>3]-v)*.5;E=A+8|0;h[E>>3]=v;F=A+16|0;h[F>>3]=w;G=A+24|0;h[G>>3]=v+(+h[x>>3]-+h[y>>3])*.125;Zu(a,A,2);v=+h[z>>3];v=v+(+h[b>>3]-v)*.5;h[A>>3]=v;w=+h[d>>3];w=w+(+h[D>>3]-w)*.5+(+h[x>>3]-+h[y>>3])*.25;h[E>>3]=w;h[F>>3]=v;h[G>>3]=w+(+h[x>>3]-+h[y>>3])*.125;Zu(a,A,2);h[A>>3]=+h[z>>3];w=+h[d>>3];h[E>>3]=w+(+h[D>>3]-w)*.5;h[F>>3]=+h[b>>3];h[G>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}if((y|0)<352321536){switch(y|0){case 335544320:break;default:break a}G=d+12|0;H=$p(G<<4)|0;d=b+16|0;r=+h[d>>3];x=B+48|0;r=r+(+h[b>>3]-r)*.5+(+h[l>>3]-+h[x>>3])*.25;h[H>>3]=r;D=b+40|0;t=+h[D>>3];E=b+24|0;n=B+56|0;p=B+72|0;t=t+(+h[E>>3]-t)*.5+(+h[n>>3]-+h[p>>3])*.5;F=H+8|0;h[F>>3]=t;h[H+16>>3]=r;t=t+(+h[n>>3]-+h[p>>3])*.125;y=H+24|0;h[y>>3]=t;v=r-(+h[l>>3]-+h[x>>3])*.125;z=H+32|0;h[z>>3]=v;s=t+(+h[n>>3]-+h[p>>3])*.125;h[H+40>>3]=s;h[H+48>>3]=r;u=s+(+h[n>>3]-+h[p>>3])*.125;h[H+56>>3]=u;h[H+64>>3]=r;r=u+(+h[n>>3]-+h[p>>3])*.125;h[H+72>>3]=r;h[H+80>>3]=v;h[H+88>>3]=r;v=+h[d>>3];v=v+(+h[b>>3]-v)*.5;h[H+96>>3]=v;h[H+104>>3]=u;w=v-(+h[l>>3]-+h[x>>3])*.125;h[H+112>>3]=w;h[H+120>>3]=r;w=w-(+h[l>>3]-+h[x>>3])*.125;h[H+128>>3]=w;h[H+136>>3]=r;h[H+144>>3]=w;h[H+152>>3]=u;u=w+(+h[l>>3]-+h[x>>3])*.125;h[H+160>>3]=u;h[H+168>>3]=s;h[H+176>>3]=w;h[H+184>>3]=t;h[H+192>>3]=w;w=+h[F>>3];h[H+200>>3]=w;h[H+208>>3]=u;h[H+216>>3]=w;F=H+224|0;h[F>>3]=v;h[H+232>>3]=+h[y>>3];h[H+240>>3]=+h[z>>3];h[H+248>>3]=w;Wu(a,H,G,f);c[A>>2]=c[F>>2];c[A+4>>2]=c[F+4>>2];c[A+8>>2]=c[F+8>>2];c[A+12>>2]=c[F+12>>2];F=A+16|0;h[F>>3]=+h[A>>3];w=+h[D>>3];G=A+24|0;h[G>>3]=w+(+h[E>>3]-w)*.5;Zu(a,A,2);h[A>>3]=+h[d>>3];w=+h[D>>3];h[A+8>>3]=w+(+h[E>>3]-w)*.5;h[F>>3]=+h[b>>3];h[G>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}else{switch(y|0){case 352321536:break;default:break a}E=d+4|0;H=$p(E<<4)|0;z=b+16|0;v=+h[z>>3];G=B+48|0;v=v+(+h[b>>3]-v)*.5+(+h[l>>3]-+h[G>>3])*.125;h[H>>3]=v;d=b+40|0;w=+h[d>>3];D=b+24|0;x=B+56|0;y=B+72|0;w=w+(+h[D>>3]-w)*.5+(+h[x>>3]-+h[y>>3])*.5;F=H+8|0;h[F>>3]=w;s=v+(+h[l>>3]-+h[G>>3])*.125;h[H+16>>3]=s;u=w+(+h[x>>3]-+h[y>>3])*.125;h[H+24>>3]=u;h[H+32>>3]=s;s=u+(+h[x>>3]-+h[y>>3])*.25;h[H+40>>3]=s;h[H+48>>3]=v;t=s+(+h[x>>3]-+h[y>>3])*.125;h[H+56>>3]=t;v=v-(+h[l>>3]-+h[G>>3])*.25;h[H+64>>3]=v;h[H+72>>3]=t;t=v-(+h[l>>3]-+h[G>>3])*.125;h[H+80>>3]=t;h[H+88>>3]=s;h[H+96>>3]=t;h[H+104>>3]=u;h[H+112>>3]=v;h[H+120>>3]=w;Wu(a,H,E,f);w=+h[z>>3];w=w+(+h[b>>3]-w)*.5;h[A>>3]=w;E=A+8|0;h[E>>3]=+h[F>>3];F=A+16|0;h[F>>3]=w;w=+h[d>>3];G=A+24|0;h[G>>3]=w+(+h[D>>3]-w)*.5;Zu(a,A,2);h[A>>3]=+h[z>>3];w=+h[d>>3];h[E>>3]=w+(+h[D>>3]-w)*.5;h[F>>3]=+h[b>>3];h[G>>3]=w+(+h[b+8>>3]-+h[b+56>>3])*.5;Zu(a,A,2);pB(H);break}}if((y|0)<402653184)if((y|0)<385875968){switch(y|0){case 369098752:break;default:break a}G=d+5|0;H=$p(G<<4)|0;F=B+48|0;h[H>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;E=B+56|0;D=B+72|0;h[H+8>>3]=+h[B+24>>3]-(+h[E>>3]-+h[D>>3])*.5;h[H+16>>3]=+h[F>>3];w=+h[E>>3];h[H+24>>3]=w-(w-+h[D>>3])*.5;h[H+32>>3]=+h[b+32>>3];d=b+40|0;h[H+40>>3]=+h[d>>3];w=+h[l>>3];h[H+48>>3]=w+(w-+h[F>>3])*.5;h[H+56>>3]=+h[d>>3];w=+h[l>>3];h[H+64>>3]=w+(w-+h[F>>3])*.5;h[H+72>>3]=+h[d>>3]+(+h[E>>3]-+h[D>>3])*.5;h[H+80>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;h[H+88>>3]=+h[d>>3]+(+h[E>>3]-+h[D>>3])*.5;h[H+96>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;D=b+56|0;h[H+104>>3]=+h[D>>3];E=b+8|0;w=+h[E>>3];h[H+120>>3]=w-(w-+h[D>>3])*.5;h[H+112>>3]=+h[b>>3];h[H+136>>3]=+h[E>>3];h[H+128>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;Wu(a,H,G,f);pB(H);break}else{switch(y|0){case 385875968:break;default:break a}G=d+3|0;H=$p(G<<4)|0;F=B+48|0;h[H>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;E=B+56|0;D=B+72|0;h[H+8>>3]=+h[B+24>>3]-(+h[E>>3]-+h[D>>3])*.5;h[H+16>>3]=+h[F>>3];w=+h[E>>3];h[H+24>>3]=w-(w-+h[D>>3])*.5;h[H+32>>3]=+h[b+32>>3];d=b+40|0;h[H+40>>3]=+h[d>>3]+(+h[E>>3]-+h[D>>3])*.5;h[H+48>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;h[H+56>>3]=+h[d>>3]+(+h[E>>3]-+h[D>>3])*.5;h[H+64>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;D=b+56|0;h[H+72>>3]=+h[D>>3];E=b+8|0;w=+h[E>>3];h[H+88>>3]=w-(w-+h[D>>3])*.5;h[H+80>>3]=+h[b>>3];h[H+104>>3]=+h[E>>3];h[H+96>>3]=+h[e>>3]-(+h[l>>3]-+h[F>>3])*.5;Wu(a,H,G,f);pB(H);break}else if((y|0)<419430400){switch(y|0){case 402653184:break;default:break a}G=d+3|0;H=$p(G<<4)|0;h[H>>3]=+h[b>>3];d=b+8|0;D=B+48|0;E=B+56|0;F=B+72|0;h[H+8>>3]=+h[d>>3]-(+h[E>>3]-+h[F>>3])*.5;w=+h[l>>3];h[H+16>>3]=w+(w-+h[D>>3])*.5;h[H+24>>3]=+h[d>>3]-(+h[E>>3]-+h[F>>3])*.5;w=+h[l>>3];h[H+32>>3]=w+(w-+h[D>>3])*.5;h[H+40>>3]=+h[B+40>>3];h[H+48>>3]=+h[b+16>>3];w=+h[b+24>>3];d=b+40|0;h[H+56>>3]=w-(w-+h[d>>3])*.5;w=+h[l>>3];h[H+64>>3]=w+(w-+h[D>>3])*.5;h[H+72>>3]=+h[d>>3];h[H+88>>3]=+h[d>>3]+(+h[E>>3]-+h[F>>3])*.5;w=+h[l>>3];h[H+80>>3]=w+(w-+h[D>>3])*.5;h[H+104>>3]=+h[b+56>>3]+(+h[E>>3]-+h[F>>3])*.5;h[H+96>>3]=+h[b>>3];Wu(a,H,G,f);pB(H);break}else{switch(y|0){case 419430400:break;default:break a}G=d+5|0;H=$p(G<<4)|0;h[H>>3]=+h[b>>3];F=b+8|0;E=B+48|0;d=B+56|0;D=B+72|0;h[H+8>>3]=+h[F>>3]-(+h[d>>3]-+h[D>>3])*.5;w=+h[l>>3];h[H+16>>3]=w+(w-+h[E>>3])*.5;h[H+24>>3]=+h[F>>3]-(+h[d>>3]-+h[D>>3])*.5;w=+h[l>>3];h[H+32>>3]=w+(w-+h[E>>3])*.5;h[H+40>>3]=+h[B+40>>3];h[H+48>>3]=+h[b+16>>3];w=+h[b+24>>3];F=b+40|0;h[H+56>>3]=w-(w-+h[F>>3])*.5;w=+h[l>>3];h[H+64>>3]=w+(w-+h[E>>3])*.5;h[H+72>>3]=+h[F>>3];h[H+88>>3]=+h[F>>3]+(+h[d>>3]-+h[D>>3])*.5;w=+h[l>>3];h[H+80>>3]=w+(w-+h[E>>3])*.5;F=b+56|0;h[H+104>>3]=+h[F>>3]+(+h[d>>3]-+h[D>>3])*.5;h[H+96>>3]=+h[e>>3]-(+h[l>>3]-+h[E>>3])*.5;h[H+112>>3]=+h[e>>3]-(+h[l>>3]-+h[E>>3])*.5;h[H+120>>3]=+h[F>>3];h[H+128>>3]=+h[b+48>>3];h[H+136>>3]=+h[F>>3];Wu(a,H,G,f);pB(H);break}}while(0);pB(B)}i=C;return}function kr(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(a){a=c[c[a+4>>2]>>2]|0;if((a|0)!=75)if((a|0)!=78)if((a|0)==77)a=3;else a=(a|0)==80?4:0;else a=2;else a=1}else a=0;return a|0}function lr(a){a=a|0;a=c[(c[a+16>>2]|0)+8>>2]|0;if(!a)a=0;else a=(c[c[a+4>>2]>>2]|0)==75&1;return a|0}function mr(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=c[13563]|0;a:do if((e|0)!=0?(f=c[13564]|0,(f|0)>0):0){g=a[b>>0]|0;i=0;while(1){d=c[e+(i<<2)>>2]|0;h=c[d>>2]|0;if((a[h>>0]|0)==g<<24>>24?(lA(h,b)|0)==0:0)break a;i=i+1|0;if((i|0)>=(f|0)){d=0;break}}}else d=0;while(0);return d|0}function nr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;do if(!(Ts(zj(d,129098)|0)|0))g=b;else{if((a[b>>0]|0)==101?(lA(b,129108)|0)==0:0){g=b;break}g=129113}while(0);e=a[g>>0]|0;if(e<<24>>24==99?(lA(g,129113)|0)==0:0)f=11;else f=7;a:do if((f|0)==7){b=c[13565]|0;if(!b)f=11;else{d=b;b=54260;while(1){if((a[d>>0]|0)==e<<24>>24?(lA(d,g)|0)==0:0)break a;b=b+16|0;d=c[b>>2]|0;if(!d){f=11;break}}}}while(0);b:do if((f|0)==11){b=mr(g)|0;if(!b){e=c[13564]|0;b=e+1|0;c[13564]=b;d=c[13563]|0;if(!d)b=aq(b<<2)|0;else b=cq(d,b<<2)|0;c[13563]=b;b=$p(16)|0;c[(c[13563]|0)+(e<<2)>>2]=b;c[b>>2]=c[13565];c[b+4>>2]=c[13566];c[b+8>>2]=c[13567];c[b+12>>2]=c[13568];d=oA(g)|0;c[b>>2]=d;do if(!(c[13354]|0)){if((a[g>>0]|0)==99?(lA(g,129113)|0)==0:0)break;c[h>>2]=c[13565];c[h+4>>2]=d;dj(0,129120,h)|0;a[b+12>>0]=0;break b}while(0);a[b+12>>0]=1}}while(0);i=j;return b|0}function or(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,l=0.0,m=0.0,n=0.0,o=0.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.0,H=0.0,I=0;F=i;i=i+48|0;g=F;j=c[(c[(c[(gl(d)|0)+60>>2]|0)+16>>2]|0)+116>>2]&3;p=d+16|0;E=c[p>>2]|0;D=E+16|0;a[k>>0]=a[D>>0];a[k+1>>0]=a[D+1>>0];a[k+2>>0]=a[D+2>>0];a[k+3>>0]=a[D+3>>0];a[k+4>>0]=a[D+4>>0];a[k+5>>0]=a[D+5>>0];a[k+6>>0]=a[D+6>>0];a[k+7>>0]=a[D+7>>0];l=+h[k>>3];E=E+24|0;a[k>>0]=a[E>>0];a[k+1>>0]=a[E+1>>0];a[k+2>>0]=a[E+2>>0];a[k+3>>0]=a[E+3>>0];a[k+4>>0]=a[E+4>>0];a[k+5>>0]=a[E+5>>0];a[k+6>>0]=a[E+6>>0];a[k+7>>0]=a[E+7>>0];m=+h[k>>3];switch(j|0){case 0:{n=l;l=m;break}case 2:{n=l;l=-m;break}case 1:{n=-m;break}case 3:{n=m;break}default:{n=0.0;l=0.0}}E=~~(n+(n>=0.0?.5:-.5));D=~~(l+(l>=0.0?.5:-.5));C=c[e+16>>2]|0;B=C+16|0;a[k>>0]=a[B>>0];a[k+1>>0]=a[B+1>>0];a[k+2>>0]=a[B+2>>0];a[k+3>>0]=a[B+3>>0];a[k+4>>0]=a[B+4>>0];a[k+5>>0]=a[B+5>>0];a[k+6>>0]=a[B+6>>0];a[k+7>>0]=a[B+7>>0];l=+h[k>>3];C=C+24|0;a[k>>0]=a[C>>0];a[k+1>>0]=a[C+1>>0];a[k+2>>0]=a[C+2>>0];a[k+3>>0]=a[C+3>>0];a[k+4>>0]=a[C+4>>0];a[k+5>>0]=a[C+5>>0];a[k+6>>0]=a[C+6>>0];a[k+7>>0]=a[C+7>>0];m=+h[k>>3];switch(j|0){case 0:{n=l;l=m;break}case 2:{n=l;l=-m;break}case 1:{n=-m;break}case 3:{n=m;break}default:{n=0.0;l=0.0}}B=~~(n+(n>=0.0?.5:-.5));z=~~(l+(l>=0.0?.5:-.5));C=f+33|0;e=a[C>>0]|0;A=e&255;switch(e<<24>>24){case 0:case 15:{j=0;break}default:{e=c[f+24>>2]|0;if(!e){y=(c[(c[(gl(d)|0)+16>>2]|0)+116>>2]&1|0)==0;x=c[p>>2]|0;H=+h[x+80>>3]*.5;G=-H;n=+h[x+88>>3];m=-n;o=y?m:G;l=y?n:H;n=y?H:n;m=y?G:m}else{o=+h[e>>3];l=+h[e+16>>3];n=+h[e+24>>3];m=+h[e+8>>3]}x=~~m;y=~~((o+l)*.5);w=~~l;v=~~((m+n)*.5);u=~~n;s=~~o;t=0;r=0;q=0;p=0;e=0;while(1){if(1<<t&A){switch(t|0){case 0:{j=y;p=x;break}case 1:{j=w;p=v;break}case 2:{j=y;p=u;break}case 3:{j=s;p=v;break}default:j=q}q=j+E|0;p=p+D|0;I=q-B|0;j=p-z|0;j=(_(I,I)|0)+(_(j,j)|0)|0;if((e|0)==0|(j|0)<(r|0))e=c[55268+(t<<2)>>2]|0;else j=r}else j=r;t=t+1|0;if((t|0)==4)break;else r=j}j=e;e=a[C>>0]|0}}c[g+36>>2]=c[f+36>>2];tr(d,c[f+24>>2]|0,g,j,e&255,0)|0;e=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(e|0));i=F;return}function pr(){c[13821]=0;c[13822]=0;c[13823]=0;return}function qr(b){b=b|0;var d=0,e=0.0,f=0.0,g=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,P=0,S=0,T=0.0,U=0.0,V=0.0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0.0;ba=i;i=i+128|0;F=ba+96|0;G=ba+88|0;C=ba+80|0;D=ba+72|0;k=ba+64|0;Z=ba+48|0;S=ba+40|0;P=ba+32|0;n=ba+24|0;p=ba+16|0;B=ba+120|0;q=ba+112|0;E=ba;aa=$p(48)|0;$=b+16|0;X=c[(c[(c[$>>2]|0)+8>>2]|0)+8>>2]|0;j=(X|0)==34088;Y=c[X>>2]|0;d=c[X+4>>2]|0;g=c[X+8>>2]|0;l=+h[X+16>>3];o=+h[X+32>>3];m=+h[X+24>>3];Y=(Ls(zj(b,129987)|0)|0)&255|Y;do if(!j){if(!Y){X=c[$>>2]|0;s=+h[X+32>>3]*72.0;e=+h[X+40>>3]*72.0;e=+(~~(e+(e>=0.0?.5:-.5))|0);s=+(~~(s+(s>=0.0?.5:-.5))|0);break}V=+Hs(b,c[13377]|0,0.0,.01);f=+Hs(b,c[13376]|0,0.0,.02);f=(V>f?V:f)*72.0;X=~~(f+(f>=0.0?.5:-.5));f=+(X|0);if((X|0)>0){e=f;s=f}else{X=c[$>>2]|0;e=+h[X+32>>3];s=+h[X+40>>3];s=(e<s?e:s)*72.0;s=+(~~(s+(s>=0.0?.5:-.5))|0);e=s}}else{e=0.0;s=0.0}while(0);X=Gs(b,c[13399]|0,d,0)|0;V=l+ +Hs(b,c[13401]|0,0.0,-360.0);if(!g){T=+Hs(b,c[13402]|0,0.0,-100.0);g=Gs(b,c[13398]|0,4,0)|0;U=+Hs(b,c[13403]|0,0.0,-100.0)}else{U=m;T=o}d=c[(c[$>>2]|0)+104>>2]|0;r=+h[d+24>>3];l=+h[d+32>>3];if(r>0.0)if(j)m=r;else H=11;else if(j|!(l>0.0))m=r;else H=11;do if((H|0)==11){d=zj(b,129972)|0;if(!d){m=r+16.0;l=l+8.0;break}h[p>>3]=0.0;h[n>>3]=0.0;c[k>>2]=n;c[k+4>>2]=p;d=Pz(d,129979,k)|0;f=+h[n>>3];if(f<0.0){h[n>>3]=0.0;f=0.0}m=+h[p>>3];if(m<0.0){h[p>>3]=0.0;m=0.0}if((d|0)<=0){m=r+16.0;l=l+8.0;break}o=f*72.0;o=+(~~(o+(o>=0.0?.5:-.5))<<1|0);f=r+o;if((d|0)>1){M=m*72.0;m=f;l=l+ +(~~(M+(M>=0.0?.5:-.5))<<1|0);break}else{m=f;l=l+o;break}}while(0);r=m-+h[(c[(c[$>>2]|0)+104>>2]|0)+24>>3];f=+h[c[(c[(gl(b)|0)+16>>2]|0)+8>>2]>>3];if(f>0.0){L=f*72.0;L=+(~~(L+(L>=0.0?.5:-.5))|0);n=~~(m/L);p=~~(l/L);M=L*+((L*+(n|0)+1.0e-05<m&1)+n|0);L=L*+((L*+(p|0)+1.0e-05<l&1)+p|0)}else{M=m;L=l}d=c[(c[$>>2]|0)+8>>2]|0;do if(!(a[d+12>>0]|0)){d=zj(b,132729)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){zn(q,gl(b)|0,d);j=c[q>>2]|0;k=c[q+4>>2]|0;if((k&j|0)==-1){j=ok(b)|0;c[C>>2]=d;c[C+4>>2]=j;dj(0,130046,C)|0;j=0;d=0;break}else{a[(c[(gl(b)|0)+16>>2]|0)+114>>0]=1;j=j+2|0;d=k+2|0;break}}else{j=0;d=0}}else{d=c[d>>2]|0;if((a[d>>0]|0)==99?(lA(d,129113)|0)==0:0){d=zj(b,129098)|0;zn(B,gl(b)|0,d);j=c[B>>2]|0;k=c[B+4>>2]|0;if((k&j|0)==-1){j=ok(b)|0;c[D>>2]=(d|0)!=0?d:129995;c[D+4>>2]=j;dj(0,130001,D)|0;j=0;d=0;break}else{a[(c[(gl(b)|0)+16>>2]|0)+114>>0]=1;j=j+2|0;d=k+2|0;break}}else{j=0;d=0}}while(0);o=+(j|0);h[Z>>3]=M>o?M:o;o=+(d|0);C=Z+8|0;h[C>>3]=L>o?L:o;if((g|0)<3)g=U!=0.0|T!=0.0?120:g;d=zj(b,130087)|0;a:do if(!d)H=40;else{d=a[d>>0]|0;switch(d<<24>>24){case 98:case 116:break;default:{H=40;break a}}j=c[$>>2]|0;a[(c[j+104>>2]|0)+80>>0]=d}while(0);if((H|0)==40){j=c[$>>2]|0;a[(c[j+104>>2]|0)+80>>0]=99;d=99}if((g|0)==4?T==0.0&(U==0.0?((~~(V+(V>=0.0?.5:-.5))|0)%90|0|0)==0:0):0)k=1;else H=43;do if((H|0)==43){j=c[(c[(c[j+8>>2]|0)+8>>2]|0)+44>>2]|0;if(j){k=c[j>>2]|0;c[F>>2]=c[Z>>2];c[F+4>>2]=c[Z+4>>2];c[F+8>>2]=c[Z+8>>2];c[F+12>>2]=c[Z+12>>2];Bb[k&31](E,F);c[Z>>2]=c[E>>2];c[Z+4>>2]=c[E+4>>2];c[Z+8>>2]=c[E+8>>2];c[Z+12>>2]=c[E+12>>2];k=0;break}f=+h[C>>3];l=f*1.4142135623730951;if(e>l&d<<24>>24==99){m=f/e;m=+O(+(1.0/(1.0-m*m)));m=m*+h[Z>>3];h[Z>>3]=m}else{m=+h[Z>>3]*1.4142135623730951;h[Z>>3]=m;h[C>>3]=l;f=l}if((g|0)>2){A=+Q(+(3.141592653589793/+(g|0)));h[Z>>3]=m/A;h[C>>3]=f/A;k=0}else k=0}while(0);l=+h[C>>3];d=Is(b,c[13404]|0,160740)|0;if((a[d>>0]|0)==115?(lA(d,130096)|0)==0:0){h[Z>>3]=s;h[C>>3]=e;G=aa+40|0;c[G>>2]=c[G>>2]|2048;f=s}else H=53;do if((H|0)==53){if(!((Ls(d)|0)<<24>>24)){f=+h[Z>>3];f=s>f?s:f;h[Z>>3]=f;A=+h[C>>3];e=e>A?e:A;h[C>>3]=e;break}H=c[(c[$>>2]|0)+104>>2]|0;if(!(!(s<+h[H+24>>3])?!(e<+h[H+32>>3]):0)){F=ok(b)|0;H=ok(gl(b)|0)|0;c[G>>2]=F;c[G+4>>2]=H;dj(0,130102,G)|0}h[Z>>3]=s;h[C>>3]=e;f=s}while(0);if(!Y){A=e;z=f}else{z=+h[C>>3];z=f>z?f:z;h[C>>3]=z;h[Z>>3]=z;A=z}do if(!((Ls(Is(b,c[13395]|0,160740)|0)|0)<<24>>24)){if(k){y=+h[Z>>3];d=c[(c[$>>2]|0)+104>>2]|0;h[d+40>>3]=(M>y?M:y)-r;break}e=+h[C>>3];if(L<e){y=+h[Z>>3]*+O(+(1.0-L*L/(e*e)));d=c[(c[$>>2]|0)+104>>2]|0;h[d+40>>3]=(M>y?M:y)-r;break}else{d=c[(c[$>>2]|0)+104>>2]|0;h[d+40>>3]=M-r;break}}else{d=c[(c[$>>2]|0)+104>>2]|0;h[d+40>>3]=M-r}while(0);B=aa+40|0;if(!(c[B>>2]&2048)){y=+h[C>>3]-l;h[d+48>>3]=L+(L<o?o-L+y:y)}d=(X|0)<1?1:X;if((g|0)<3){d=$p(d<<5)|0;f=+h[Z>>3]*.5;e=+h[C>>3]*.5;h[d>>3]=-f;h[d+8>>3]=-e;h[d+16>>3]=f;h[d+24>>3]=e;if((X|0)>1){g=2;j=1;while(1){f=f+4.0;e=e+4.0;h[d+(g<<4)>>3]=-f;h[d+(g<<4)+8>>3]=-e;S=g|1;h[d+(S<<4)>>3]=f;h[d+(S<<4)+8>>3]=e;j=j+1|0;if((j|0)==(X|0))break;else g=g+2|0}h[Z>>3]=f*2.0;h[C>>3]=e*2.0;g=2}else g=2}else{d=$p(_(d<<4,g)|0)|0;j=c[(c[(c[(c[$>>2]|0)+8>>2]|0)+8>>2]|0)+44>>2]|0;b:do if(!j){o=6.283185307179586/+(g|0);t=o*.5;r=+R(+t);s=+Ky(+N(+U)+ +N(+T),1.0);t=U*1.4142135623730951/+Q(+t);u=T*.5;y=(o+-3.141592653589793)*.5;Py(y,S,P);v=V/180.0*3.141592653589793;w=+h[P>>3]*.5;x=+h[S>>3]*.5;y=y+(3.141592653589793-o)*.5;j=0;f=0.0;e=0.0;while(1){y=o+y;Py(y,S,P);w=w+r*+h[P>>3];x=x+r*+h[S>>3];l=u*x+w*(s+t*x);Py(v+ +W(+x,+l),S,P);l=+Ky(l,x);m=l*+h[P>>3]*+h[Z>>3];l=l*+h[S>>3]*+h[C>>3];ca=+N(+m);f=ca>f?ca:f;ca=+N(+l);e=ca>e?ca:e;h[d+(j<<4)>>3]=m;h[d+(j<<4)+8>>3]=l;j=j+1|0;if(k)break;if((j|0)>=(g|0))break b}ca=-m;h[d+16>>3]=ca;h[d+24>>3]=l;h[d+32>>3]=ca;ca=-l;h[d+40>>3]=ca;h[d+48>>3]=m;h[d+56>>3]=ca}else{Bb[c[j+4>>2]&31](d,Z);f=+h[Z>>3]*.5;e=+h[C>>3]*.5}while(0);y=f*2.0;f=e*2.0;e=z>y?z:y;h[Z>>3]=e;ca=A>f?A:f;h[C>>3]=ca;e=e/y;f=ca/f;q=(g|0)>0;if(q){j=0;do{H=d+(j<<4)|0;b=d+(j<<4)+8|0;ca=f*+h[b>>3];h[H>>3]=e*+h[H>>3];h[b>>3]=ca;j=j+1|0}while((j|0)!=(g|0))}if((X|0)>1?(I=g+-1|0,J=+h[d>>3],K=+h[d+8>>3],q):0){p=(X|0)==2;m=J;o=K;l=+W(+(K-+h[d+(I<<4)+8>>3]),+(J-+h[d+(I<<4)>>3]));k=0;do{n=k;k=k+1|0;I=(k|0)==(g|0)?0:k;K=m;m=+h[d+(I<<4)>>3];ca=o;o=+h[d+(I<<4)+8>>3];J=l;l=+W(+(o-ca),+(m-K));f=(J+3.141592653589793-l)*.5;e=4.0/+R(+f);Py(J-f,S,P);f=e*+h[S>>3];h[S>>3]=f;e=e*+h[P>>3];h[P>>3]=e;e=K+e;f=ca+f;I=g+n|0;h[d+(I<<4)>>3]=e;h[d+(I<<4)+8>>3]=f;if(!p){j=2;do{e=e+ +h[P>>3];f=f+ +h[S>>3];I=(_(j,g)|0)+n|0;h[d+(I<<4)>>3]=e;h[d+(I<<4)+8>>3]=f;j=j+1|0}while((j|0)!=(X|0))}}while((k|0)!=(g|0));if(q){j=_(g,X+-1|0)|0;e=+h[Z>>3];f=+h[C>>3];k=0;do{S=k+j|0;ca=+h[d+(S<<4)+8>>3];K=+N(+(+h[d+(S<<4)>>3]))*2.0;e=K>e?K:e;h[Z>>3]=e;ca=+N(+ca)*2.0;f=ca>f?ca:f;h[C>>3]=f;k=k+1|0}while((k|0)!=(g|0))}}}c[aa>>2]=Y;c[aa+4>>2]=X;c[aa+8>>2]=g;h[aa+16>>3]=V;h[aa+32>>3]=T;h[aa+24>>3]=U;c[aa+44>>2]=d;e=+h[Z>>3];if(!(c[B>>2]&2048)){d=c[$>>2]|0;h[d+32>>3]=e/72.0;h[d+40>>3]=+h[C>>3]/72.0}else{d=c[$>>2]|0;h[d+32>>3]=(M>e?M:e)/72.0;ca=+h[C>>3];h[d+40>>3]=(L>ca?L:ca)/72.0}c[d+12>>2]=aa;i=ba;return}function rr(a){a=a|0;var b=0,d=0,e=0.0,f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0.0;o=i;i=i+80|0;n=o+56|0;f=o+32|0;m=o+40|0;l=o+16|0;d=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]|0)>>>2&1^1;k=a+16|0;g=c[c[(c[k>>2]|0)+104>>2]>>2]|0;c[13880]=g;g=pA(g)|0;g=$p((g|0)>1?g+1|0:2)|0;b=Vr(a,d,1,g)|0;if(!b){c[f>>2]=c[c[(c[k>>2]|0)+104>>2]>>2];dj(1,129948,f)|0;c[13880]=129969;b=Vr(a,d,1,g)|0}pB(g);Wr(o,a,b);d=c[k>>2]|0;j=+h[d+32>>3]*72.0;j=+(~~(j+(j>=0.0?.5:-.5))|0);h[l>>3]=j;e=+h[d+40>>3]*72.0;e=+(~~(e+(e>=0.0?.5:-.5))|0);d=l+8|0;h[d>>3]=e;if(!((Ls(Is(a,c[13404]|0,160740)|0)|0)<<24>>24)){p=+h[b>>3];j=p>j?p:j;h[l>>3]=j;g=b+8|0;p=+h[g>>3];e=p>e?p:e;h[d>>3]=e;d=g}else d=b+8|0;a=(Ls(Is(a,c[13395]|0,160740)|0)|0)&255;c[n>>2]=c[l>>2];c[n+4>>2]=c[l+4>>2];c[n+8>>2]=c[l+8>>2];c[n+12>>2]=c[l+12>>2];Xr(b,n,a);h[m>>3]=j*-.5;h[m+8>>3]=e*.5;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[n+8>>2]=c[m+8>>2];c[n+12>>2]=c[m+12>>2];Yr(b,n,15);n=c[k>>2]|0;h[n+32>>3]=+h[b>>3]/72.0;h[n+40>>3]=(+h[d>>3]+1.0)/72.0;c[n+12>>2]=b;i=o;return}function sr(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,g=0,i=0,j=0,k=0.0,l=0;i=$p(48)|0;j=a+16|0;d=c[(c[(c[(c[j>>2]|0)+8>>2]|0)+8>>2]|0)+4>>2]|0;b=+Hs(a,c[13377]|0,1797693134862315708145274.0e284,0.0);e=+Hs(a,c[13376]|0,1797693134862315708145274.0e284,0.0);b=b<e?b:e;if(e==1797693134862315708145274.0e284&b==1797693134862315708145274.0e284){g=c[j>>2]|0;h[g+40>>3]=.05;h[g+32>>3]=.05;b=3.6}else{b=b>0.0?(b>.0003?b:.0003):b;g=c[j>>2]|0;h[g+40>>3]=b;h[g+32>>3]=b;b=b*72.0}f=Gs(a,c[13399]|0,d,0)|0;g=$p((f|0)<1?32:f<<5)|0;e=b*.5;k=-e;h[g>>3]=k;h[g+8>>3]=k;h[g+16>>3]=e;h[g+24>>3]=e;if((f|0)>1){b=e;d=2;a=1;while(1){b=b+4.0;e=e+4.0;h[g+(d<<4)>>3]=-b;h[g+(d<<4)+8>>3]=-e;l=d|1;h[g+(l<<4)>>3]=b;h[g+(l<<4)+8>>3]=e;a=a+1|0;if((a|0)==(f|0))break;else d=d+2|0}b=b*2.0}c[i>>2]=1;c[i+4>>2]=f;c[i+8>>2]=2;l=i+16|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[i+44>>2]=g;k=b/72.0;l=c[j>>2]|0;h[l+32>>3]=k;h[l+40>>3]=k;c[l+12>>2]=i;return}function tr(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+176|0;C=F+160|0;D=F+144|0;n=F+128|0;o=F+112|0;p=F+96|0;q=F+80|0;s=F+64|0;u=F+48|0;v=F+32|0;w=F+16|0;B=F;if(!d){m=(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1|0)==0;E=c[b+16>>2]|0;k=+h[E+80>>3]*.5;A=+h[E+88>>3];y=m?A:k;A=m?k:A;k=0.0;l=0.0;x=-y;z=A;A=-A;m=0}else{x=+h[d>>3];A=+h[d+8>>3];y=+h[d+16>>3];z=+h[d+24>>3];k=(x+y)*.5;l=(A+z)*.5;m=1}E=D+8|0;h[E>>3]=l;h[D>>3]=k;r=(y>z?y:z)*4.0;a:do if((f|0)!=0?(t=a[f>>0]|0,t<<24>>24!=0):0){f=f+1|0;switch(t<<24>>24|0){case 99:{o=1;p=0;f=0;n=0;g=0;k=0.0;break a}case 101:{if(a[f>>0]|0){o=1;p=0;f=0;n=1;g=0;k=0.0;break a}if(!j)h[D>>3]=y;else{ur(n,j,l,r);c[D>>2]=c[n>>2];c[D+4>>2]=c[n+4>>2];c[D+8>>2]=c[n+8>>2];c[D+12>>2]=c[n+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&2;k=0.0;break a}case 115:{h[E>>3]=A;switch(a[f>>0]|0){case 0:{if(!j)h[D>>3]=k;else{ur(o,j,-r,k);c[D>>2]=c[o>>2];c[D+4>>2]=c[o+4>>2];c[D+8>>2]=c[o+8>>2];c[D+12>>2]=c[o+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&1;k=-1.5707963267948966;break a}case 101:{if(!j)h[D>>3]=y;else{ur(p,j,-r,r);c[D>>2]=c[p>>2];c[D+4>>2]=c[p+4>>2];c[D+8>>2]=c[p+8>>2];c[D+12>>2]=c[p+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&3;k=-.7853981633974483;break a}case 119:{if(!j)h[D>>3]=x;else{A=-r;ur(q,j,A,A);c[D>>2]=c[q>>2];c[D+4>>2]=c[q+4>>2];c[D+8>>2]=c[q+8>>2];c[D+12>>2]=c[q+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&9;k=-2.356194490192345;break a}default:{h[E>>3]=l;o=1;p=0;f=0;n=1;g=0;k=0.0;break a}}}case 119:{if(a[f>>0]|0){o=1;p=0;f=0;n=1;g=0;k=0.0;break a}if(!j)h[D>>3]=x;else{ur(s,j,l,-r);c[D>>2]=c[s>>2];c[D+4>>2]=c[s+4>>2];c[D+8>>2]=c[s+8>>2];c[D+12>>2]=c[s+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&8;k=3.141592653589793;break a}case 110:{h[E>>3]=z;switch(a[f>>0]|0){case 0:{if(!j)h[D>>3]=k;else{ur(u,j,r,k);c[D>>2]=c[u>>2];c[D+4>>2]=c[u+4>>2];c[D+8>>2]=c[u+8>>2];c[D+12>>2]=c[u+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&4;k=1.5707963267948966;break a}case 101:{if(!j)h[D>>3]=y;else{ur(v,j,r,r);c[D>>2]=c[v>>2];c[D+4>>2]=c[v+4>>2];c[D+8>>2]=c[v+8>>2];c[D+12>>2]=c[v+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&6;k=.7853981633974483;break a}case 119:{if(!j)h[D>>3]=x;else{ur(w,j,r,-r);c[D>>2]=c[w>>2];c[D+4>>2]=c[w+4>>2];c[D+8>>2]=c[w+8>>2];c[D+12>>2]=c[w+12>>2]}o=0;p=1;m=1;f=0;n=0;g=g&12;k=2.356194490192345;break a}default:{h[E>>3]=l;o=1;p=0;f=0;n=1;g=0;k=0.0;break a}}}case 95:{o=1;p=0;f=1;n=0;k=0.0;break a}default:{o=1;p=0;f=0;n=1;g=0;k=0.0;break a}}}else{o=1;p=0;f=0;n=0;g=0;k=0.0}while(0);j=(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&3)*90|0;c[C>>2]=c[D>>2];c[C+4>>2]=c[D+4>>2];c[C+8>>2]=c[D+8>>2];c[C+12>>2]=c[D+12>>2];Gp(B,C,j);c[D>>2]=c[B>>2];c[D+4>>2]=c[B+4>>2];c[D+8>>2]=c[B+8>>2];c[D+12>>2]=c[B+12>>2];if(!(f<<24>>24)){b:do switch(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&3|0){case 3:switch(g|0){case 4:{g=2;break b}case 1:{g=8;break b}case 8:{g=1;break b}case 2:{g=4;break b}default:break b}case 2:switch(g|0){case 4:{g=1;break b}case 1:{g=4;break b}default:break b}case 1:switch(g|0){case 4:{g=2;break b}case 1:{g=8;break b}case 8:{g=4;break b}case 2:{g=1;break b}default:break b}default:{}}while(0);a[e+33>>0]=g}else a[e+33>>0]=g;c[e+24>>2]=d;A=+h[D>>3];h[e>>3]=+(~~(A+(A>=0.0?.5:-.5))|0);A=+h[E>>3];h[e+8>>3]=+(~~(A+(A>=0.0?.5:-.5))|0);switch(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&3|0){case 3:{if(!(k==3.141592653589793))if(!(k==2.356194490192345))if(!(k==1.5707963267948966))if(!(k==0.0))if(!(k==-.7853981633974483)){if(k==-1.5707963267948966)k=3.141592653589793}else k=2.356194490192345;else k=1.5707963267948966;else k=0.0;else k=-.7853981633974483;else k=-1.5707963267948966;break}case 2:{k=-k;break}case 1:{k=k+-1.5707963267948966;break}default:{}}h[e+16>>3]=k;l=+h[D>>3];k=+h[E>>3];if(l==0.0&k==0.0)g=-128;else{A=+W(+k,+l)+4.71238898038469;g=~~((!(A>=6.283185307179586)?A:A+-6.283185307179586)*256.0/6.283185307179586)&255}a[e+32>>0]=g;a[e+29>>0]=p;a[e+28>>0]=m;a[e+30>>0]=o;a[e+31>>0]=f;i=F;return n|0}function ur(a,b,d,e){a=a|0;b=b|0;d=+d;e=+e;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+128|0;k=p+112|0;o=p+32|0;f=p+96|0;j=p+16|0;l=p;m=c[b>>2]|0;n=c[(c[(gl(m)|0)+16>>2]|0)+116>>2]&3;h[f>>3]=e;h[f+8>>3]=d;g=(n|0)!=0;if(g){c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];c[k+8>>2]=c[f+8>>2];c[k+12>>2]=c[f+12>>2];Gp(j,k,n*90|0);c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2]}j=o+16|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[o+12>>2]=0;c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];c[j+12>>2]=c[o+12>>2];j=o+48|0;q=o+32|0;c[q>>2]=c[f>>2];c[q+4>>2]=c[f+4>>2];c[q+8>>2]=c[f+8>>2];c[q+12>>2]=c[f+12>>2];c[j>>2]=c[f>>2];c[j+4>>2]=c[f+4>>2];c[j+8>>2]=c[f+8>>2];c[j+12>>2]=c[f+12>>2];Zr(b,c[(c[(c[(c[m+16>>2]|0)+8>>2]|0)+4>>2]|0)+12>>2]|0,o,1);if(g){c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];c[k+12>>2]=c[o+12>>2];Hp(l,k,n*90|0);c[o>>2]=c[l>>2];c[o+4>>2]=c[l+4>>2];c[o+8>>2]=c[l+8>>2];c[o+12>>2]=c[l+12>>2]};c[a>>2]=c[o>>2];c[a+4>>2]=c[o+4>>2];c[a+8>>2]=c[o+8>>2];c[a+12>>2]=c[o+12>>2];i=p;return}function vr(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;d=+h[b>>3]/1.902113032590307;c=+h[b+8>>3]/1.1180339887498947;c=(d>c?d:c)*.9510565162951535*.8090169943749475/.29389262614623657;h[a>>3]=c*2.0*.9510565162951535;h[a+8>>3]=c*1.8090169943749475;return}function wr(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0,g=0.0,i=0,j=0.0,k=0,l=0;d=+h[b>>3];k=b+8|0;e=+h[k>>3];c=e/d;if(!(c>.9510565162951536))if(c<.9510565162951536){j=d;e=d*.9510565162951536}else j=d;else j=e/.9510565162951536;g=j/1.902113032590307;d=g*.9510565162951535*.30901699437494745/.7694208842938134;f=g*.19098300562505266*.5;i=0;c=.3141592653589793;while(1){h[a+(i<<4)>>3]=g*+Q(+c);h[a+(i<<4)+8>>3]=g*+R(+c)-f;c=c+.6283185307179586;l=i|1;h[a+(l<<4)>>3]=d*+Q(+c);h[a+(l<<4)+8>>3]=d*+R(+c)-f;i=i+2|0;if((i|0)>=10)break;else c=c+.6283185307179586}h[b>>3]=j;h[k>>3]=e;return}function xr(a){a=a|0;a=c[(c[a+16>>2]|0)+12>>2]|0;if(a){pB(c[a+44>>2]|0);pB(a)}return}function yr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;o=p+56|0;l=p+40|0;g=p;n=p+72|0;h=p+64|0;if(!(a[e>>0]|0)){g=36360;h=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0))}else{j=(f|0)==0?129796:f;c[n>>2]=15;k=d+16|0;f=c[k>>2]|0;do if(a[(c[f+104>>2]|0)+82>>0]|0){f=Vv(d,e,n)|0;if(!f){f=c[k>>2]|0;m=8;break}if(tr(d,f,g,j,c[n>>2]|0,0)|0){c[l>>2]=ok(d)|0;c[l+4>>2]=e;c[l+8>>2]=j;dj(0,129798,l)|0}}else m=8;while(0);if((m|0)==8){if((c[(c[f+8>>2]|0)+8>>2]|0)==33752)h=0;else{c[h>>2]=d;c[h+4>>2]=0}if(tr(d,0,g,e,c[n>>2]|0,h)|0){c[o>>2]=ok(d)|0;c[o+4>>2]=e;dj(0,129859,o)|0}}c[g+36>>2]=0;h=b+40|0;do{c[b>>2]=c[g>>2];b=b+4|0;g=g+4|0}while((b|0)<(h|0))}i=p;return}function zr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0;m=i;i=i+32|0;d=m+16|0;e=m;a:do if(a){f=c[a+4>>2]|0;a=c[a>>2]|0;n=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];Hp(e,d,n);l=+h[e>>3];k=+h[e+8>>3];if(f){if(!(+h[f>>3]<=l)){a=0;break}if(+h[f+8>>3]<=k?!(l<=+h[f+16>>3]):1){a=0;break}a=k<=+h[f+24>>3]&1;break}if((a|0)==(c[13823]|0))a=c[13864]|0;else{f=c[(c[a+16>>2]|0)+12>>2]|0;c[13865]=f;c[13866]=c[f+44>>2];n=c[f+8>>2]|0;c[13864]=n;f=_((c[f+4>>2]|0)+-1|0,n)|0;c[13867]=(f|0)<0?0:f;c[13823]=a;a=n}if((a|0)>0){b=c[13867]|0;d=c[13866]|0;g=+h[4543];j=+h[4544];e=0;f=0;while(1){n=b+e|0;o=+h[d+(n<<4)>>3];r=+h[d+(n<<4)+8>>3];n=((e+4|0)%(a|0)|0)+b|0;q=-(+h[d+(n<<4)+8>>3]-r);p=+h[d+(n<<4)>>3]-o;o=r*p+o*q;f=((k*p+l*q-o>=0.0^g*q+p*j-o>=0.0)&1)+f|0;e=e+2|0;if((f|0)==2){a=0;break a}if((e|0)>=(a|0)){a=1;break}}}else a=1}else{c[13823]=0;a=0}while(0);i=m;return a|0}function Ar(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;e=c[b+16>>2]|0;if((a[(c[e+104>>2]|0)+82>>0]|0)!=0?(a[e+145>>0]|0)!=0:0)g=Wv(b,d,0,f,g)|0;else g=0;return g|0}function Br(e,f){e=e|0;f=f|0;var j=0,k=0,l=0,m=0.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.0,G=0.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;R=i;i=i+48|0;K=R+24|0;J=R+16|0;E=R+8|0;D=R;Q=R+32|0;n=R+28|0;O=c[e+16>>2]|0;P=O+208|0;j=c[P>>2]|0;if((j|0)==0?(b[O+260>>1]&1)==0:0)N=0;else if(!(c[e+152>>2]&4)){Mu(e,j,c[O+228>>2]|0,c[O+244>>2]|0,c[O+212>>2]|0);N=1}else N=1;L=f+16|0;j=c[L>>2]|0;r=c[j+12>>2]|0;I=c[r+44>>2]|0;M=c[r+8>>2]|0;r=c[r+4>>2]|0;if((c[13862]|0)<(M|0)){j=M+5|0;c[13862]=j;k=c[13863]|0;if(!k)j=aq(j<<4)|0;else j=cq(k,j<<4)|0;c[13863]=j;j=c[L>>2]|0}H=(c[j+104>>2]|0)+56|0;j=j+16|0;c[H>>2]=c[j>>2];c[H+4>>2]=c[j+4>>2];c[H+8>>2]=c[j+8>>2];c[H+12>>2]=c[j+12>>2];H=c[L>>2]|0;F=+h[H+32>>3]*72.0;F=(+h[H+88>>3]+ +h[H+96>>3])/+(~~(F+(F>=0.0?.5:-.5))|0);G=+h[H+40>>3]*72.0;G=+h[H+80>>3]/+(~~(G+(G>=0.0?.5:-.5))|0);H=Cr(e,f)|0;c[Q>>2]=0;j=d[(c[L>>2]|0)+117>>0]|0;do if(!(j&1)){if(j&2){B=Js(f,c[13383]|0,129696)|0;Ru(e,B);Su(e,Js(f,c[13384]|0,129704)|0);k=0;j=1;break}if(j&8){B=Js(f,c[13387]|0,129712)|0;Ru(e,B);Su(e,Js(f,c[13388]|0,129720)|0);k=0;j=1;break}if(j&4){B=Js(f,c[13385]|0,129728)|0;Ru(e,B);Su(e,Js(f,c[13386]|0,129736)|0);k=0;j=1;break}do if(!(H&1))if(!(H&576)){k=0;j=0}else{k=Dr(f,158256)|0;j=1}else{k=Dr(f,158256)|0;if(!((cp(k,Q,n)|0)<<24>>24)){Su(e,k);j=1;break}Su(e,c[Q>>2]|0);j=c[Q+4>>2]|0;l=Gs(f,c[13412]|0,0,0)|0;m=+g[n>>2];if(!j)Tu(e,160746,l,m);else Tu(e,j,l,m);j=(H&2)>>>1|2}while(0);B=Js(f,c[13379]|0,164137)|0;B=(a[B>>0]|0)!=0?B:160746;Ru(e,B)}else{B=Js(f,c[13381]|0,129680)|0;Ru(e,B);Su(e,Js(f,c[13382]|0,129688)|0);k=0;j=1}while(0);l=c[(c[L>>2]|0)+8>>2]|0;if(a[l+12>>0]|0){l=c[l>>2]|0;if((a[l>>0]|0)==99){l=(lA(l,129113)|0)==0;C=31}else{l=1;C=33}}else{l=1;C=31}if((C|0)==31){l=l^1;if((r|0)!=0|j<<24>>24==0|l)C=33;else{Ru(e,161276);l=0;r=1;C=34}}if((C|0)==33)if((r|0)>0)C=34;else{s=l;r=0}if((C|0)==34){u=(M|0)>0;v=(M|0)<3;w=(H&512|0)!=0;x=(H&8|0)==0;y=(H&64|0)==0;z=(H&1024|0)==0;A=(H&2130706444|0)==0;t=0;while(1){if(u){o=_(t,M)|0;q=c[L>>2]|0;n=c[13863]|0;p=q+16|0;q=q+24|0;s=0;do{S=s+o|0;m=+h[I+(S<<4)+8>>3];h[n+(s<<4)>>3]=F*+h[I+(S<<4)>>3]+ +h[p>>3];h[n+(s<<4)+8>>3]=G*m+ +h[q>>3];s=s+1|0}while((s|0)!=(M|0))}do if(v){if(w&(t|0)==0?(jA(k,58)|0)!=0:0)if((Xo(e,c[13863]|0,k)|0)>1){c[D>>2]=ok(f)|0;dj(3,129744,D)|0;j=0}else j=0;Vu(e,c[13863]|0,M,j&255);if(!x)Er(e,f)}else{if(!y){if((t|0)==0?(Yo(e,c[13863]|0,k,1)|0)>1:0){c[E>>2]=ok(f)|0;dj(3,129744,E)|0}Wu(e,c[13863]|0,M,0);break}if(!z){Ru(e,161276);Wu(e,c[13863]|0,M,j&255);Ru(e,B);Zu(e,(c[13863]|0)+32|0,2);break}n=c[13863]|0;j=j&255;if(A){Wu(e,n,M,j);break}else{jr(e,n,M,H,j);break}}while(0);t=t+1|0;if((t|0)==(r|0)){s=l;j=0;break}else j=0}}l=c[(c[L>>2]|0)+8>>2]|0;if(!(a[l+12>>0]|0)){l=zj(f,132729)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){q=l;C=63}}else{l=c[l>>2]|0;if((a[l>>0]|0)==99?(lA(l,129113)|0)==0:0){l=zj(f,129098)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){q=l;C=63}}else{q=l;C=63}}if((C|0)==63){if((M|0)>0){o=c[L>>2]|0;l=c[13863]|0;n=o+16|0;o=o+24|0;p=0;do{m=+h[I+(p<<4)+8>>3];h[l+(p<<4)>>3]=F*+h[I+(p<<4)>>3]+ +h[n>>3];h[l+(p<<4)+8>>3]=G*m+ +h[o>>3];p=p+1|0}while((p|0)!=(M|0))}l=j&255;do if(!(s|j<<24>>24==0)){if((M|0)<3){if((H&512|0)!=0&(r|0)==0?(jA(k,58)|0)!=0:0)if((Xo(e,c[13863]|0,k)|0)>1){c[J>>2]=ok(f)|0;dj(3,129744,J)|0;j=0}else j=0;Vu(e,c[13863]|0,M,j&255);if(!(H&8))break;Er(e,f);break}if(!(H&64)){k=c[13863]|0;if(!(H&12)){Wu(e,k,M,l);break}else{jr(e,k,M,H,l);break}}else{if((Yo(e,c[13863]|0,k,1)|0)>1){c[K>>2]=ok(f)|0;dj(3,129744,K)|0}Wu(e,c[13863]|0,M,0);break}}while(0);S=c[13863]|0;$u(e,q,S,M,j,Is(f,c[13405]|0,160740)|0)}pB(c[Q>>2]|0);Tp(e,10,c[(c[L>>2]|0)+104>>2]|0);if(N){if(c[e+152>>2]&4)Mu(e,c[P>>2]|0,c[O+228>>2]|0,c[O+244>>2]|0,c[O+212>>2]|0);Nu(e)}i=R;return}function Cr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;e=Fr(d,g)|0;if(e)Uu(b,e);e=c[13411]|0;if(((e|0)!=0?(f=Aj(d,e)|0,(f|0)!=0):0)?(a[f>>0]|0)!=0:0)av(b,+Hs(d,c[13411]|0,1.0,0.0));i=h;return c[g>>2]|0}function Dr(b,d){b=b|0;d=d|0;var e=0;e=Js(b,c[13380]|0,164137)|0;if(!(a[e>>0]|0)){b=Js(b,c[13379]|0,164137)|0;return ((a[b>>0]|0)==0?d:b)|0}else return e|0;return 0}function Er(b,d){b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0,l=0.0,m=0.0,n=0.0;e=i;i=i+32|0;f=e;j=c[d+16>>2]|0;g=+h[j+80>>3]*.75*.5;l=+h[j+96>>3]*.6614;d=j+16|0;a[k>>0]=a[d>>0];a[k+1>>0]=a[d+1>>0];a[k+2>>0]=a[d+2>>0];a[k+3>>0]=a[d+3>>0];a[k+4>>0]=a[d+4>>0];a[k+5>>0]=a[d+5>>0];a[k+6>>0]=a[d+6>>0];a[k+7>>0]=a[d+7>>0];m=+h[k>>3];j=j+24|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];m=l+m;n=g+ +h[k>>3];h[f>>3]=m;j=f+8|0;h[j>>3]=n;d=f+24|0;h[d>>3]=n;h[f+16>>3]=m-l*2.0;Zu(b,f,2);g=+h[j>>3]-g*2.0;h[j>>3]=g;h[d>>3]=g;Zu(b,f,2);i=e;return}function Fr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;e=Js(b,c[13396]|0,164137)|0;a:do if(a[e>>0]|0){g=dp(e)|0;e=c[g>>2]|0;if(!e)e=0;else{k=b+16|0;i=e;e=0;j=g;while(1){b:do switch(a[i>>0]|0){case 102:{if(!(lA(i,134460)|0)){e=e|1;f=j+4|0}else n=32;break}case 114:{if(!(lA(i,129756)|0)){f=j;do{o=f;f=f+4|0;i=c[f>>2]|0;c[o>>2]=i}while((i|0)!=0);e=e|4;f=j;break b}if(!(lA(i,129774)|0)){f=j;do{i=f;f=f+4|0;o=c[f>>2]|0;c[i>>2]=o}while((o|0)!=0);e=e|3;f=j}else n=32;break}case 100:{if(!(lA(i,129764)|0)){f=j;do{i=f;f=f+4|0;o=c[f>>2]|0;c[i>>2]=o}while((o|0)!=0);e=e|8;f=j}else n=32;break}case 105:{if(!(lA(i,157791)|0)){e=e|32;f=j+4|0}else n=32;break}case 115:{if((((((lA(i,129781)|0)==0?(l=c[(c[(c[k>>2]|0)+8>>2]|0)+8>>2]|0,(l|0)!=0):0)?(c[l+8>>2]|0)==4:0)?(p=+h[l+16>>3],((~~(p+(p>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+h[l+24>>3]==0.0:0)?+h[l+32>>3]==0.0:0){f=j;do{i=f;f=f+4|0;o=c[f>>2]|0;c[i>>2]=o}while((o|0)!=0);e=e|64;f=j}else n=32;break}case 119:{if(((lA(i,129789)|0)==0?(m=c[(c[(c[k>>2]|0)+8>>2]|0)+8>>2]|0,(m|0)!=0):0)?(c[m+8>>2]|0)<3:0){f=j;do{i=f;f=f+4|0;o=c[f>>2]|0;c[i>>2]=o}while((o|0)!=0);e=e|512;f=j}else n=32;break}default:n=32}while(0);if((n|0)==32){n=0;f=j+4|0}i=c[f>>2]|0;if(!i)break a;else j=f}}}else{e=0;g=0}while(0);f=c[(c[(c[b+16>>2]|0)+8>>2]|0)+8>>2]|0;if(f)e=c[f+40>>2]|e;c[d>>2]=e;return g|0}function Gr(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0.0,g=0.0,j=0,k=0,l=0;e=i;i=i+32|0;l=e+16|0;j=e;a=c[a>>2]|0;k=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];c[l+12>>2]=c[b+12>>2];Hp(j,l,k);d=+h[j>>3];g=+h[j+8>>3];a=c[a+16>>2]|0;f=+h[a+80>>3]*.5;if(!(!(g>=-f)|!(g<=f))?d>=-+h[a+88>>3]:0)a=d<=+h[a+96>>3]&1;else a=0;i=e;return a|0}function Hr(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;n=i;i=i+32|0;m=n;j=c[a+16>>2]|0;k=j+208|0;f=c[k>>2]|0;if(!f)l=(b[j+260>>1]&1)!=0;else l=1;g=d+16|0;d=c[g>>2]|0;e=c[d+12>>2]|0;if(e){if(l?(c[a+152>>2]&4|0)==0:0){Mu(a,f,c[j+228>>2]|0,c[j+244>>2]|0,c[j+212>>2]|0);d=c[g>>2]|0}f=c[a+36>>2]|0;p=+h[d+24>>3]+ +(c[e+8>>2]|0);o=c[e>>2]|0;h[m>>3]=+h[d+16>>3]+ +(c[e+4>>2]|0);h[m+8>>3]=p;c[m+16>>2]=o;Bz(f,129890,m)|0;f=c[g>>2]|0;m=(c[f+104>>2]|0)+56|0;f=f+16|0;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];Tp(a,10,c[(c[g>>2]|0)+104>>2]|0);if(l){if(c[a+152>>2]&4)Mu(a,c[k>>2]|0,c[j+228>>2]|0,c[j+244>>2]|0,c[j+212>>2]|0);Nu(a)}}i=n;return}function Ir(a){a=a|0;Pr(c[(c[a+16>>2]|0)+12>>2]|0);return}function Jr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+64|0;m=n+56|0;l=n+40|0;h=n;if(!(a[f>>0]|0)){h=36360;g=b+40|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(g|0))}else{g=(g|0)==0?129796:g;j=c[(c[e+16>>2]|0)+12>>2]|0;k=Or(j,f)|0;if(!k){if(tr(e,j+16|0,h,f,15,0)|0){c[m>>2]=ok(e)|0;c[m+4>>2]=f;dj(0,129859,m)|0}}else if(tr(e,k+16|0,h,g,d[k+65>>0]|0,0)|0){c[l>>2]=ok(e)|0;c[l+4>>2]=f;c[l+8>>2]=g;dj(0,129798,l)|0}g=b+40|0;do{c[b>>2]=c[h>>2];b=b+4|0;h=h+4|0}while((b|0)<(g|0))}i=n;return}function Kr(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0.0;l=i;i=i+32|0;m=l+16|0;j=l;f=c[a+4>>2]|0;a=c[a>>2]|0;g=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[m>>2]=c[b>>2];c[m+4>>2]=c[b+4>>2];c[m+8>>2]=c[b+8>>2];c[m+12>>2]=c[b+12>>2];Hp(j,m,g);c[b>>2]=c[j>>2];c[b+4>>2]=c[j+4>>2];c[b+8>>2]=c[j+8>>2];c[b+12>>2]=c[j+12>>2];if(!f){f=c[(c[a+16>>2]|0)+12>>2]|0;g=f+16|0;a=f+24|0;j=f+32|0;f=f+40|0}else{g=f;a=f+8|0;j=f+16|0;f=f+24|0}e=+h[a>>3];d=+h[f>>3];n=+h[b>>3];if((+h[g>>3]<=n?n<=+h[j>>3]:0)?(k=+h[b+8>>3],e<=k):0)a=k<=d&1;else a=0;i=l;return a|0}function Lr(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=i;i=i+80|0;s=u+64|0;r=u+32|0;t=u;a:do if(a[d+28>>0]|0){n=+h[d>>3];q=b+16|0;d=c[(c[q>>2]|0)+12>>2]|0;o=d+48|0;if((c[o>>2]|0)>0){p=d+56|0;d=0;while(1){l=(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1|0)==0;m=c[(c[p>>2]|0)+(d<<2)>>2]|0;k=+(~~+h[(l?m+16|0:m+24|0)>>3]|0);if(k<=n?(j=+(~~+h[(l?m+32|0:m+40|0)>>3]|0),n<=j):0)break;d=d+1|0;if((d|0)>=(c[o>>2]|0))break a}if(!(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1)){b=c[q>>2]|0;v=+h[b+16>>3];h[f>>3]=k+v;k=+h[b+24>>3];n=+h[b+80>>3];h[f+8>>3]=k-n*.5;h[f+16>>3]=j+v;j=n}else{p=(c[(c[p>>2]|0)+(d<<2)>>2]|0)+16|0;b=(c[q>>2]|0)+16|0;c[r>>2]=c[p>>2];c[r+4>>2]=c[p+4>>2];c[r+8>>2]=c[p+8>>2];c[r+12>>2]=c[p+12>>2];c[r+16>>2]=c[p+16>>2];c[r+20>>2]=c[p+20>>2];c[r+24>>2]=c[p+24>>2];c[r+28>>2]=c[p+28>>2];c[s>>2]=c[b>>2];c[s+4>>2]=c[b+4>>2];c[s+8>>2]=c[b+8>>2];c[s+12>>2]=c[b+12>>2];Ip(t,r,s);c[f>>2]=c[t>>2];c[f+4>>2]=c[t+4>>2];c[f+8>>2]=c[t+8>>2];c[f+12>>2]=c[t+12>>2];c[f+16>>2]=c[t+16>>2];c[f+20>>2]=c[t+20>>2];c[f+24>>2]=c[t+24>>2];c[f+28>>2]=c[t+28>>2];b=c[q>>2]|0;j=+h[b+80>>3];k=+h[b+24>>3]}h[f+24>>3]=k+j*.5;c[g>>2]=1}}else e=0;while(0);i=u;return e|0}function Mr(d,e){d=d|0;e=e|0;var f=0,j=0,k=0.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.0;x=i;i=i+144|0;s=x+96|0;r=x;q=x+32|0;t=x+136|0;m=x+128|0;u=c[d+16>>2]|0;v=u+208|0;if(!(c[v>>2]|0))w=(b[u+260>>1]&1)!=0;else w=1;n=e+16|0;p=c[n>>2]|0;o=c[p+12>>2]|0;l=o+16|0;c[r>>2]=c[l>>2];c[r+4>>2]=c[l+4>>2];c[r+8>>2]=c[l+8>>2];c[r+12>>2]=c[l+12>>2];c[r+16>>2]=c[l+16>>2];c[r+20>>2]=c[l+20>>2];c[r+24>>2]=c[l+24>>2];c[r+28>>2]=c[l+28>>2];y=+h[p+16>>3];h[r>>3]=y+ +h[r>>3];k=+h[p+24>>3];p=r+8|0;h[p>>3]=k+ +h[p>>3];p=r+16|0;h[p>>3]=y+ +h[p>>3];l=r+24|0;h[l>>3]=k+ +h[l>>3];if(w?(c[d+152>>2]&4|0)==0:0)Mu(d,c[v>>2]|0,c[u+228>>2]|0,c[u+244>>2]|0,c[u+212>>2]|0);f=Cr(d,e)|0;l=Js(e,c[13379]|0,164137)|0;Ru(d,(a[l>>0]|0)!=0?l:160746);c[t>>2]=0;do if(!(f&1))l=0;else{j=Dr(e,158256)|0;if(!((cp(j,t,m)|0)<<24>>24)){Su(d,j);l=1;break}Su(d,c[t>>2]|0);j=c[t+4>>2]|0;l=Gs(e,c[13412]|0,0,0)|0;k=+g[m>>2];if(!j)Tu(d,160746,l,k);else Tu(d,j,l,k);l=f>>>1&1|2}while(0);j=c[c[(c[n>>2]|0)+8>>2]>>2]|0;if((a[j>>0]|0)==77){n=(lA(j,129667)|0)==0;f=n?f|4:f}if(!(f&2130706444)){c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];c[s+16>>2]=c[r+16>>2];c[s+20>>2]=c[r+20>>2];c[s+24>>2]=c[r+24>>2];c[s+28>>2]=c[r+28>>2];Xu(d,s,l)}else{c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];s=q+32|0;c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2];h[q+16>>3]=+h[s>>3];h[q+24>>3]=+h[q+8>>3];h[q+48>>3]=+h[q>>3];h[q+56>>3]=+h[q+40>>3];jr(d,q,4,f,l)}Nr(d,e,o);f=c[t>>2]|0;if(f)pB(f);if(w){if(c[d+152>>2]&4)Mu(d,c[v>>2]|0,c[u+228>>2]|0,c[u+244>>2]|0,c[u+212>>2]|0);Nu(d)}i=x;return}function Nr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+32|0;x=y;f=e+52|0;g=c[f>>2]|0;if(!g)f=d+16|0;else{w=e+32|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];m=+h[k>>3];w=e+40|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];t=+h[k>>3];w=e+16|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];n=+h[k>>3];w=e+24|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];t=(t+ +h[k>>3])*.5;w=d+16|0;v=c[w>>2]|0;u=v+16|0;a[k>>0]=a[u>>0];a[k+1>>0]=a[u+1>>0];a[k+2>>0]=a[u+2>>0];a[k+3>>0]=a[u+3>>0];a[k+4>>0]=a[u+4>>0];a[k+5>>0]=a[u+5>>0];a[k+6>>0]=a[u+6>>0];a[k+7>>0]=a[u+7>>0];s=+h[k>>3];v=v+24|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];t=t+ +h[k>>3];h[g+56>>3]=(m+n)*.5+s;h[g+64>>3]=t;Tp(b,10,c[f>>2]|0);f=Js(d,c[13379]|0,164137)|0;Ru(b,(a[f>>0]|0)!=0?f:160746);f=w}u=c[f>>2]|0;s=+h[u+16>>3];t=+h[u+24>>3];u=e+48|0;if((c[u>>2]|0)>0){v=e+64|0;w=x+16|0;e=e+56|0;o=x+24|0;p=x+8|0;q=x+16|0;r=0;do{if((r|0)>0){f=(c[e>>2]|0)+(r<<2)|0;g=c[f>>2]|0;if(!(a[v>>0]|0)){g=g+32|0;c[w>>2]=c[g>>2];c[w+4>>2]=c[g+4>>2];c[w+8>>2]=c[g+8>>2];c[w+12>>2]=c[g+12>>2];j=+h[(c[f>>2]|0)+16>>3];h[x>>3]=j;n=+h[o>>3];h[p>>3]=n;l=n;m=+h[q>>3]}else{g=g+16|0;c[x>>2]=c[g>>2];c[x+4>>2]=c[g+4>>2];c[x+8>>2]=c[g+8>>2];c[x+12>>2]=c[g+12>>2];m=+h[x>>3];h[q>>3]=m;n=+h[(c[f>>2]|0)+40>>3];h[o>>3]=n;j=m;l=+h[p>>3]}h[x>>3]=s+j;h[p>>3]=t+l;h[q>>3]=s+m;h[o>>3]=t+n;Zu(b,x,2)}Nr(b,d,c[(c[e>>2]|0)+(r<<2)>>2]|0);r=r+1|0}while((r|0)<(c[u>>2]|0))}i=y;return}function Or(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[b+60>>2]|0;if(!(((e|0)!=0?(a[e>>0]|0)==(a[d>>0]|0):0)?(lA(e,d)|0)==0:0))f=4;a:do if((f|0)==4){g=c[b+48>>2]|0;if((g|0)>0){e=c[b+56>>2]|0;f=0;while(1){b=Or(c[e+(f<<2)>>2]|0,d)|0;f=f+1|0;if(b)break a;if((f|0)>=(g|0)){b=0;break}}}else b=0}while(0);return b|0}function Pr(a){a=a|0;var b=0,d=0,e=0;b=a+48|0;d=a+56|0;if((c[b>>2]|0)>0){e=0;do{Pr(c[(c[d>>2]|0)+(e<<2)>>2]|0);e=e+1|0}while((e|0)<(c[b>>2]|0))}pB(c[a+60>>2]|0);Sp(c[a+52>>2]|0);pB(c[d>>2]|0);pB(a);return}function Qr(a,b){a=a|0;b=b|0;var d=0;d=b+8|0;h[d>>3]=+h[d>>3]*1.375;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];return}function Rr(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0;f=+h[b>>3]*.5;m=+h[b+8>>3];i=m*.5;m=m/11.0;h[a>>3]=f;e=i-m;h[a+8>>3]=e;h[a+16>>3]=f;g=i-m*.44821599999999995;h[a+24>>3]=g;j=f*.551784;h[a+32>>3]=j;h[a+40>>3]=i;h[a+48>>3]=0.0;h[a+56>>3]=i;k=f*-.551784;h[a+64>>3]=k;h[a+72>>3]=i;l=-f;h[a+80>>3]=l;h[a+88>>3]=g;d=a+96|0;h[d>>3]=l;h[a+104>>3]=e;b=a+112|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=a+128|0;h[b>>3]=l;h[a+136>>3]=m-i;d=a+144|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];h[a+160>>3]=l;g=-g;h[a+168>>3]=g;h[a+176>>3]=k;i=-i;h[a+184>>3]=i;h[a+192>>3]=0.0;h[a+200>>3]=i;h[a+208>>3]=j;h[a+216>>3]=i;h[a+224>>3]=f;h[a+232>>3]=g;d=a+240|0;h[d>>3]=f;h[a+248>>3]=-e;b=a+256|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];b=a+288|0;d=a+272|0;c[d>>2]=c[a>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[b>>2]=c[a>>2];c[b+4>>2]=c[a+4>>2];c[b+8>>2]=c[a+8>>2];c[b+12>>2]=c[a+12>>2];return}function Sr(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,j=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0.0,w=0,x=0.0,y=0.0,z=0,A=0;w=i;i=i+64|0;j=w+48|0;l=w+32|0;p=w;do if(b){m=c[b+4>>2]|0;r=c[b>>2]|0;t=(c[(c[(gl(r)|0)+16>>2]|0)+116>>2]&3)*90|0;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];Hp(l,j,t);q=+h[l>>3];s=+h[l+8>>3];if(m){if(!(+h[m>>3]<=q)){b=0;break}if(+h[m+8>>3]<=s?!(q<=+h[m+16>>3]):1){b=0;break}b=s<=+h[m+24>>3]&1;break}if((r|0)==(c[13821]|0)){e=+h[4550];f=+h[4551];g=+h[4552]}else{b=r+16|0;d=c[(c[b>>2]|0)+12>>2]|0;c[13870]=d;c[13871]=c[d+44>>2];c[13872]=c[d+8>>2];do if(c[d+40>>2]&2048){Zs(p,d);n=+h[p+16>>3]-+h[p>>3];g=+h[p+24>>3]-+h[p+8>>3];if(!(c[(c[(gl(r)|0)+16>>2]|0)+116>>2]&1)){h[4554]=n;h[4553]=g;f=n;e=g;o=g;g=n;break}else{h[4553]=n;h[4554]=g;f=g;e=n;o=g;g=n;break}}else{t=(c[(c[(gl(r)|0)+16>>2]|0)+116>>2]&1|0)==0;b=c[b>>2]|0;e=+h[b+88>>3]+ +h[b+96>>3];if(t){h[4554]=e;u=+h[b+80>>3];h[4553]=u;f=e;e=u}else{h[4553]=e;f=+h[b+80>>3];h[4554]=f}g=+h[b+32>>3]*72.0;o=+h[b+40>>3]*72.0;o=+(~~(o+(o>=0.0?.5:-.5))|0);g=+(~~(g+(g>=0.0?.5:-.5))|0)}while(0);if(f==0.0){h[4554]=1.0;f=1.0}if(e==0.0){h[4553]=1.0;e=1.0}u=g/f;h[4550]=u;f=o/e;h[4551]=f;g=g*.5;h[4552]=g;h[4555]=o*.5;t=_((c[(c[13870]|0)+4>>2]|0)+-1|0,c[13872]|0)|0;c[13873]=(t|0)<0?0:t;c[13821]=r;e=u}u=q*e;s=s*f;if(!(+N(+u)>g)?(q=+N(+s),v=+h[4555],!(q>v)):0){t=c[13872]|0;if((t|0)<3){b=+Ky(u/g,s/v)<1.0&1;break}b=(c[13874]|0)%(t|0)|0;d=(b+1|0)%(t|0)|0;m=c[13873]|0;r=m+b|0;p=c[13871]|0;e=+h[p+(r<<4)>>3];f=+h[p+(r<<4)+8>>3];r=m+d|0;g=+h[p+(r<<4)>>3];n=+h[p+(r<<4)+8>>3];y=-(n-f);x=g-e;v=f*x+e*y;o=+h[4556];q=+h[4557];if(!(s*x+u*y-v>=0.0^o*y+x*q-v>=0.0)){x=-(q-n);v=o-g;y=n*v+g*x;r=s*v+u*x-y>=0.0^f*v+e*x-y>=0.0;if(!r?(x=-(f-q),v=e-o,y=q*v+o*x,!(s*v+u*x-y>=0.0^n*v+g*x-y>=0.0)):0){b=1;break}else{l=b;j=1}while(1){if(r){b=(l+-1+t|0)%(t|0)|0;d=l}else{b=d;d=(d+1|0)%(t|0)|0}l=m+b|0;z=m+d|0;A=p+(z<<4)|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];x=+h[k>>3];z=p+(z<<4)+8|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=p+(l<<4)|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];y=+h[k>>3];l=p+(l<<4)+8|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];n=+h[k>>3];v=-(v-n);x=x-y;y=n*x+y*v;j=j+1|0;if(s*x+u*v-y>=0.0^o*v+x*q-y>=0.0){d=34;break}if((j|0)>=(t|0)){d=35;break}else l=b}if((d|0)==34){c[13874]=b;b=0;break}else if((d|0)==35){c[13874]=b;b=1;break}}else b=0}else b=0}else{c[13821]=0;b=0}while(0);i=w;return b|0}function Tr(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;g=k+16|0;j=k;if(a){a=c[a>>2]|0;l=(c[(c[(gl(a)|0)+16>>2]|0)+116>>2]&3)*90|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];Hp(j,g,l);f=+h[j>>3];e=+h[j+8>>3];if((a|0)==(c[13822]|0))d=+h[4558];else{j=c[(c[a+16>>2]|0)+12>>2]|0;l=(c[j+4>>2]<<1)+-2|0;d=+h[(c[j+44>>2]|0)+(((l|0)<0?1:l|1)<<4)>>3];h[4558]=d;c[13822]=a}if(!(+N(+f)>d)?!(+N(+e)>d):0)a=+Ky(f,e)<=d&1;else a=0}else{c[13822]=0;a=0}i=k;return a|0}function Ur(e,f){e=e|0;f=f|0;var g=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.0,y=0;w=i;i=i+16|0;k=w;u=c[e+16>>2]|0;v=u+208|0;g=c[v>>2]|0;if((g|0)==0?(b[u+260>>1]&1)==0:0)q=0;else if(!(c[e+152>>2]&4)){Mu(e,g,c[u+228>>2]|0,c[u+244>>2]|0,c[u+212>>2]|0);q=1}else q=1;r=f+16|0;l=c[(c[r>>2]|0)+12>>2]|0;s=c[l+44>>2]|0;t=c[l+8>>2]|0;l=c[l+4>>2]|0;if((c[13875]|0)<(t|0)){g=t+2|0;c[13875]=g;j=c[13876]|0;if(!j)g=aq(g<<4)|0;else g=cq(j,g<<4)|0;c[13876]=g}Fr(f,k)|0;if(!(c[k>>2]&32))Uu(e,55512);else Uu(e,55508);g=c[13411]|0;if(g)av(e,+Hs(f,g,1.0,0.0));g=d[(c[r>>2]|0)+117>>0]|0;do if(!(g&1)){if(g&2){Ru(e,Js(f,c[13383]|0,129696)|0);g=Js(f,c[13384]|0,129704)|0;Su(e,g);break}if(g&8){Ru(e,Js(f,c[13387]|0,129712)|0);g=Js(f,c[13388]|0,129720)|0;Su(e,g);break}if(!(g&4)){g=Dr(f,160746)|0;Su(e,g);p=Js(f,c[13379]|0,164137)|0;Ru(e,(a[p>>0]|0)!=0?p:160746);break}else{Ru(e,Js(f,c[13385]|0,129728)|0);g=Js(f,c[13386]|0,129736)|0;Su(e,g);break}}else{Ru(e,Js(f,c[13381]|0,129680)|0);g=Js(f,c[13382]|0,129688)|0;Su(e,g)}while(0);if(!l)if(!(a[g>>0]|0)){p=1;m=28}else{Ru(e,g);p=1;m=28}else if((l|0)>0){p=l;m=28}if((m|0)==28){m=(t|0)>0;n=1;o=0;while(1){if(m){j=_(o,t)|0;l=c[r>>2]|0;g=c[13876]|0;k=l+16|0;l=l+24|0;f=0;do{y=f+j|0;x=+h[s+(y<<4)+8>>3];h[g+(f<<4)>>3]=+h[s+(y<<4)>>3]+ +h[k>>3];h[g+(f<<4)+8>>3]=x+ +h[l>>3];f=f+1|0}while((f|0)!=(t|0))}else g=c[13876]|0;Vu(e,g,t,n);o=o+1|0;if((o|0)==(p|0))break;else n=0}}if(q){if(c[e+152>>2]&4)Mu(e,c[v>>2]|0,c[u+228>>2]|0,c[u+244>>2]|0,c[u+212>>2]|0);Nu(e)}i=w;return}function Vr(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=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;g=$p(72)|0;n=c[(c[b+16>>2]|0)+104>>2]|0;m=0;i=1;k=c[13880]|0;a:while(1){j=a[k>>0]|0;switch(j<<24>>24){case 0:break a;case 92:{k=k+1|0;j=a[k>>0]|0;switch(j<<24>>24){case 124:case 125:case 123:case 92:{l=m;break}default:C=4}break}default:C=4}if((C|0)==4){C=0;switch(j<<24>>24){case 123:{l=m+1|0;break}case 125:{l=m+-1|0;break}default:{l=m;i=((m|0)==0&j<<24>>24==124&1)+i|0}}if((l|0)<0)break}m=l;k=k+1|0}z=g+56|0;c[z>>2]=$p(i<<2)|0;a[g+64>>0]=d;w=(d|0)==0&1;x=n+82|0;y=f+1|0;t=(e|0)!=0;u=n+16|0;v=n+4|0;r=n+8|0;i=0;k=0;d=0;e=f;n=0;l=0;m=0;j=f;s=0;b:while(1){o=k;p=d;k=0;c:while(1){d=p;d:while(1){p=d;e:while(1){q=k;f:while(1){d=l;g:while(1){if(s){C=82;break b}k=c[13880]|0;l=a[k>>0]|0;if((l+-1&255)<31)do{k=k+1|0;c[13880]=k;l=a[k>>0]|0}while((l+-1&255)<31);switch(l<<24>>24|0){case 92:{C=57;break d}case 0:case 124:case 125:{k=q;break e}case 60:break f;case 62:break g;case 123:break;default:break d}k=k+1|0;c[13880]=k;if(d){i=q;C=35;break b}if(!(a[k>>0]|0)){i=q;C=35;break b}d=Vr(b,w,0,f)|0;c[(c[z>>2]|0)+(i<<2)>>2]=d;if(!d){i=q;C=38;break b}else{i=i+1|0;d=4}}if(a[x>>0]|0)break d;if(!(d&16)){i=q;C=27;break b}if(m>>>0>y>>>0?(A=m+-1|0,(A|0)!=(p|0)):0)k=(a[A>>0]|0)==32?A:m;else k=m;a[k>>0]=0;q=oA(f)|0;c[13880]=(c[13880]|0)+1;l=d&-17;m=k}if(d&6){i=q;C=21;break b}if(a[x>>0]|0)break d;c[13880]=k+1;p=f;l=d|18;m=f;k=q}if(!((d&16|0)==0&(t|l<<24>>24!=0))){i=k;C=41;break b}if(!(d&4)){o=$p(72)|0;c[(c[z>>2]|0)+(i<<2)>>2]=o;i=i+1|0}if(k)c[o+60>>2]=k;if(!(d&5)){a[j>>0]=32;l=d|1;j=j+1|0}else l=d;if(!(l&1))q=j;else{if(j>>>0>y>>>0?(B=j+-1|0,(B|0)!=(e|0)):0)j=(a[B>>0]|0)==32?B:j;a[j>>0]=0;e=oA(f)|0;c[o+52>>2]=Qp(b,e,(a[x>>0]|0)!=0?2:0,+h[u>>3],c[v>>2]|0,c[r>>2]|0)|0;a[o+64>>0]=1;e=f;q=f}j=c[13880]|0;switch(a[j>>0]|0){case 0:{k=o;d=p;j=q;s=1;continue b}case 125:{C=55;break b}default:{}}c[13880]=j+1;d=p;l=0;k=0;j=q}h:do if((C|0)==57){C=0;l=k+1|0;switch(a[l>>0]|0){case 0:break h;case 62:case 60:case 124:case 125:case 123:{c[13880]=l;k=l;break h}case 32:{C=59;break}default:{}}if((C|0)==59?(C=0,(a[x>>0]|0)==0):0){c[13880]=l;k=l;n=1;break}a[j>>0]=92;k=(c[13880]|0)+1|0;c[13880]=k;d=d|9;j=j+1|0}while(0);if((d&4|0)!=0?(a[k>>0]|0)!=32:0){i=q;C=64;break b}if(!(d&24))d=(a[k>>0]|0)==32?d:d|9;if(!(d&8)){if(d&16){k=a[k>>0]|0;l=(n|0)!=0;if(!(l|k<<24>>24!=32))if((m|0)!=(f|0))if((a[m+-1>>0]|0)==32)k=m;else C=78;else k=f;else C=78;if((C|0)==78){C=0;a[m>>0]=k;k=m+1|0}p=l?k+-1|0:p;m=k}}else{k=a[k>>0]|0;l=(n|0)!=0;if(!((!(l|k<<24>>24!=32)?(a[j+-1>>0]|0)==32:0)?(a[x>>0]|0)==0:0)){a[j>>0]=k;j=j+1|0}e=l?j+-1|0:e}k=(c[13880]|0)+1|0;c[13880]=k;if((a[k>>0]|0)<0)l=j;else{l=d;k=q;continue}while(1){c[13880]=k+1;j=l+1|0;a[l>>0]=a[k>>0]|0;k=c[13880]|0;if((a[k>>0]|0)<0)l=j;else{l=d;k=q;continue c}}}}if((C|0)==21){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==27){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==35){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==38){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==41){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==55){c[13880]=j+1;c[g+48>>2]=i}else if((C|0)==64){Pr(g);if(!i)g=0;else{pB(i);g=0}}else if((C|0)==82)c[g+48>>2]=i;return g|0}function Wr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;l=r+32|0;m=r+24|0;o=r+16|0;q=r;j=c[e+52>>2]|0;do if(!j){j=e+48|0;if((c[j>>2]|0)>0){l=e+56|0;m=q+8|0;o=e+64|0;g=0.0;f=0.0;p=0;do{Wr(q,d,c[(c[l>>2]|0)+(p<<2)>>2]|0);k=+h[q>>3];n=+h[m>>3];if(!(a[o>>0]|0)){g=g>k?g:k;f=f+n}else{g=g+k;f=f>n?f:n}p=p+1|0}while((p|0)<(c[j>>2]|0))}else{g=0.0;f=0.0}}else{g=+h[j+24>>3];f=+h[j+32>>3];if(g>0.0|f>0.0){j=zj(d,129972)|0;if(!j){g=g+16.0;f=f+8.0;break}c[l>>2]=m;c[l+4>>2]=o;j=Pz(j,129979,l)|0;if((j|0)<=0){g=g+16.0;f=f+8.0;break}k=+h[m>>3]*72.0;k=+(~~(k+(k>=0.0?.5:-.5))<<1|0);g=g+k;if((j|0)>1){n=+h[o>>3]*72.0;f=f+ +(~~(n+(n>=0.0?.5:-.5))<<1|0);break}else{f=f+k;break}}}while(0);h[e>>3]=g;h[e+8>>3]=f;h[b>>3]=g;h[b+8>>3]=f;i=r;return}function Xr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0;u=i;i=i+32|0;t=u+16|0;s=u;o=+h[d>>3];f=o-+h[b>>3];r=+h[d+8>>3];j=r-+h[b+8>>3];c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];d=c[b+52>>2]|0;if(!((e|0)!=0|(d|0)==0)){n=d+40|0;h[n>>3]=f+ +h[n>>3];n=d+48|0;h[n>>3]=j+ +h[n>>3]}n=b+48|0;d=c[n>>2]|0;a:do if((d|0)!=0?(p=b+64|0,g=a[p>>0]|0,q=(g<<24>>24==0?j:f)/+(d|0),(d|0)>0):0){l=b+56|0;m=s+8|0;d=0;while(1){b=c[(c[l>>2]|0)+(d<<2)>>2]|0;k=d+1|0;d=~~(q*+(k|0))-~~(q*+(d|0))|0;if(!(g<<24>>24)){j=+(d|0)+ +h[b+8>>3];f=o}else{j=r;f=+(d|0)+ +h[b>>3]}h[s>>3]=f;h[m>>3]=j;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];c[t+8>>2]=c[s+8>>2];c[t+12>>2]=c[s+12>>2];Xr(b,t,e);if((k|0)>=(c[n>>2]|0))break a;g=a[p>>0]|0;d=k}}while(0);i=u;return}function Yr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0;q=i;i=i+16|0;p=q;a[b+65>>0]=e;s=+h[d>>3];o=d+8|0;r=+h[o>>3];t=r-+h[b+8>>3];h[b+16>>3]=s;h[b+24>>3]=t;h[b+32>>3]=s+ +h[b>>3];h[b+40>>3]=r;k=c[b+48>>2]|0;l=k+-1|0;if((k|0)>=1){m=(e|0)==0;n=b+56|0;g=b+64|0;j=0;do{do if(!m){b=(j|0)==0;f=(j|0)==(l|0);if(!(a[g>>0]|0))if(b){b=f?15:14;break}else{b=f?11:10;break}else if(b){b=f?15:13;break}else{b=f?7:5;break}}else b=0;while(0);f=c[(c[n>>2]|0)+(j<<2)>>2]|0;c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2];Yr(f,p,b&e);if(!(a[g>>0]|0))h[o>>3]=+h[o>>3]-+h[(c[(c[n>>2]|0)+(j<<2)>>2]|0)+8>>3];else h[d>>3]=+h[d>>3]+ +h[c[(c[n>>2]|0)+(j<<2)>>2]>>3];j=j+1|0}while((j|0)!=(k|0))}i=q;return}function Zr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0,l=0.0,m=0.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;F=i;i=i+192|0;C=F+176|0;E=F+112|0;D=F+48|0;B=F+32|0;A=F+24|0;z=F+16|0;y=F;if(!(e<<24>>24)){k=d+48|0;c[B>>2]=c[k>>2];c[B+4>>2]=c[k+4>>2];c[B+8>>2]=c[k+8>>2];c[B+12>>2]=c[k+12>>2];k=B;u=z;v=E;w=A;x=0}else{c[B>>2]=c[d>>2];c[B+4>>2]=c[d+4>>2];c[B+8>>2]=c[d+8>>2];c[B+12>>2]=c[d+12>>2];k=B;u=A;v=0;w=z;x=E}h[A>>3]=0.0;h[z>>3]=1.0;n=B+8|0;o=D+16|0;p=E+16|0;q=D+32|0;r=E+32|0;s=D+48|0;t=E+48|0;g=1.0;j=0.0;m=+h[B>>3];e=0;while(1){l=+h[n>>3];f=(g+j)*.5;Rs(y,d,3,f,v,x);c[k>>2]=c[y>>2];c[k+4>>2]=c[y+4>>2];c[k+8>>2]=c[y+8>>2];c[k+12>>2]=c[y+12>>2];c[C>>2]=c[B>>2];c[C+4>>2]=c[B+4>>2];c[C+8>>2]=c[B+8>>2];c[C+12>>2]=c[B+12>>2];if(!((Lb[b&63](a,C)|0)<<24>>24)){c[D>>2]=c[E>>2];c[D+4>>2]=c[E+4>>2];c[D+8>>2]=c[E+8>>2];c[D+12>>2]=c[E+12>>2];c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];c[q>>2]=c[r>>2];c[q+4>>2]=c[r+4>>2];c[q+8>>2]=c[r+8>>2];c[q+12>>2]=c[r+12>>2];c[s>>2]=c[t>>2];c[s+4>>2]=c[t+4>>2];c[s+8>>2]=c[t+8>>2];c[s+12>>2]=c[t+12>>2];h[w>>3]=f;e=1}else h[u>>3]=f;f=+h[B>>3];m=m-f;if(!((m>=0.0?m:-m)>.5)?(m=l-+h[n>>3],!((m>=0.0?m:-m)>.5)):0)break;g=+h[z>>3];j=+h[A>>3];m=f}if(!(e<<24>>24)){c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2];D=d+16|0;C=E+16|0;c[D>>2]=c[C>>2];c[D+4>>2]=c[C+4>>2];c[D+8>>2]=c[C+8>>2];c[D+12>>2]=c[C+12>>2];D=d+32|0;C=E+32|0;c[D>>2]=c[C>>2];c[D+4>>2]=c[C+4>>2];c[D+8>>2]=c[C+8>>2];c[D+12>>2]=c[C+12>>2];d=d+48|0;E=E+48|0;c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2]}else{c[d>>2]=c[D>>2];c[d+4>>2]=c[D+4>>2];c[d+8>>2]=c[D+8>>2];c[d+12>>2]=c[D+12>>2];E=d+16|0;C=D+16|0;c[E>>2]=c[C>>2];c[E+4>>2]=c[C+4>>2];c[E+8>>2]=c[C+8>>2];c[E+12>>2]=c[C+12>>2];E=d+32|0;C=D+32|0;c[E>>2]=c[C>>2];c[E+4>>2]=c[C+4>>2];c[E+8>>2]=c[C+8>>2];c[E+12>>2]=c[C+12>>2];d=d+48|0;E=D+48|0;c[d>>2]=c[E>>2];c[d+4>>2]=c[E+4>>2];c[d+8>>2]=c[E+8>>2];c[d+12>>2]=c[E+12>>2]}i=F;return}function _r(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0;m=i;i=i+48|0;k=m+16|0;j=m;l=m+32|0;d=a+16|0;e=c[d>>2]|0;f=c[e+8>>2]|0;if((f|0)!=0?(g=c[(c[f+4>>2]|0)+12>>2]|0,(g|0)!=0):0){c[l>>2]=a;c[l+4>>2]=0;n=+h[e+96>>3];h[j>>3]=+h[b>>3]-+h[e+16>>3];h[j+8>>3]=+h[b+8>>3]-+h[e+24>>3];c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];c[k+8>>2]=c[j+8>>2];c[k+12>>2]=c[j+12>>2];k=Lb[g&63](l,k)|0;h[(c[d>>2]|0)+96>>3]=n;ls(l,a,b,k)}i=m;return}function $r(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+16|0;b=c[e>>2]|0;if(a[b+112>>0]|0)do{e=(c[b+116>>2]|0)+16|0;b=c[e>>2]|0}while((a[b+112>>0]|0)!=0);b=c[b+8>>2]|0;if(!b){b=$p(40)|0;c[(c[e>>2]|0)+8>>2]=b}f=c[b>>2]|0;b=c[b+4>>2]|0;if(!f)b=aq((b*48|0)+48|0)|0;else b=cq(f,(b*48|0)+48|0)|0;f=c[(c[e>>2]|0)+8>>2]|0;c[f>>2]=b;f=f+4|0;e=c[f>>2]|0;c[f>>2]=e+1;f=b+(e*48|0)|0;c[f>>2]=$p(d<<4)|0;c[b+(e*48|0)+4>>2]=d;b=b+(e*48|0)+8|0;e=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));return f|0}function as(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var 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.0,H=0.0;F=i;i=i+96|0;E=F+16|0;B=F+80|0;w=F;x=F+88|0;A=b+48|0;n=c[((c[b>>2]&3|0)==3?b:A)+40>>2]|0;C=gl(n)|0;D=$r(b,f)|0;j=c[b+16>>2]|0;if(!(a[j+112>>0]|0))k=b;else do{k=c[j+116>>2]|0;j=c[k+16>>2]|0}while((a[j+112>>0]|0)!=0);z=g+8|0;if((a[z>>0]|0)==0?(l=c[n+16>>2]|0,m=c[d+16>>2]|0,(c[l+232>>2]|0)==(c[m+232>>2]|0)):0){o=(c[l+236>>2]|0)>(c[m+236>>2]|0);y=o?n:d;n=o?d:n}else y=d;l=a[j+46>>0]|0;m=a[j+86>>0]|0;if((n|0)==(c[((c[k>>2]&3|0)==3?k:k+48|0)+40>>2]|0)){o=m&255;l=l&255;k=j+80|0;j=j+40|0}else{o=l&255;l=m&255;k=j+40|0;j=j+80|0}d=c[k>>2]|0;j=c[j>>2]|0;if(((l|0)!=0?(q=n+16|0,p=c[(c[q>>2]|0)+8>>2]|0,(p|0)!=0):0)?(c[(c[p+4>>2]|0)+12>>2]|0)!=0:0){c[x>>2]=n;c[x+4>>2]=j;j=f+-4|0;l=w+8|0;k=0;while(1){if((k|0)>=(j|0))break;m=k+3|0;p=c[q>>2]|0;h[w>>3]=+h[e+(m<<4)>>3]-+h[p+16>>3];h[l>>3]=+h[e+(m<<4)+8>>3]-+h[p+24>>3];p=c[(c[(c[p+8>>2]|0)+4>>2]|0)+12>>2]|0;c[E>>2]=c[w>>2];c[E+4>>2]=c[w+4>>2];c[E+8>>2]=c[w+8>>2];c[E+12>>2]=c[w+12>>2];if(!((Lb[p&63](x,E)|0)<<24>>24))break;else k=m}ls(x,n,e+(k<<4)|0,1)}else k=0;if(((o|0)!=0?(v=y+16|0,t=c[v>>2]|0,r=c[t+8>>2]|0,(r|0)!=0):0)?(s=c[(c[r+4>>2]|0)+12>>2]|0,(s|0)!=0):0){c[x>>2]=y;c[x+4>>2]=d;m=f+-4|0;a:do if((f|0)>4?(u=w+8|0,h[w>>3]=+h[e+(m<<4)>>3]-+h[t+16>>3],h[u>>3]=+h[e+(m<<4)+8>>3]-+h[t+24>>3],c[E>>2]=c[w>>2],c[E+4>>2]=c[w+4>>2],c[E+8>>2]=c[w+8>>2],c[E+12>>2]=c[w+12>>2],(Lb[s&63](x,E)|0)<<24>>24!=0):0){l=m;while(1){j=l+-3|0;if((l|0)<=3)break a;t=c[v>>2]|0;f=c[(c[(c[t+8>>2]|0)+4>>2]|0)+12>>2]|0;h[w>>3]=+h[e+(j<<4)>>3]-+h[t+16>>3];h[u>>3]=+h[e+(j<<4)+8>>3]-+h[t+24>>3];c[E>>2]=c[w>>2];c[E+4>>2]=c[w+4>>2];c[E+8>>2]=c[w+8>>2];c[E+12>>2]=c[w+12>>2];if(!((Lb[f&63](x,E)|0)<<24>>24))break;else l=j}}else j=m;while(0);ls(x,y,e+(j<<4)|0,0)}else{m=f+-4|0;j=m}while(1){if((k|0)>=(m|0)){m=k;break}l=k+3|0;H=+h[e+(k<<4)>>3]-+h[e+(l<<4)>>3];G=+h[e+(k<<4)+8>>3]-+h[e+(l<<4)+8>>3];if(H*H+G*G<1.0e-06)k=l;else{m=k;break}}b:do if((j|0)>0)while(1){x=j+3|0;G=+h[e+(j<<4)>>3]-+h[e+(x<<4)>>3];H=+h[e+(j<<4)+8>>3]-+h[e+(x<<4)+8>>3];if(!(G*G+H*H<1.0e-06)){r=j;break b}k=j+-3|0;if((j|0)>3)j=k;else{r=k;break}}else r=j;while(0);k=b;while(1){j=c[(c[k+16>>2]|0)+116>>2]|0;if(!j){l=k;break}else k=j}if(!(a[z>>0]|0))k=(Eb[c[g>>2]&31](l)|0)&255;else k=0;Ao(l,E,B);j=g+4|0;if((Eb[c[j>>2]&31](y)|0)<<24>>24)c[B>>2]=0;if((Eb[c[j>>2]&31](c[((c[b>>2]&3|0)==3?b:A)+40>>2]|0)|0)<<24>>24)c[E>>2]=0;if(k){b=c[E>>2]|0;c[E>>2]=c[B>>2];c[B>>2]=b}if(!(a[g+9>>0]|0)){j=c[E>>2]|0;if(!j)k=m;else k=Do(l,e,m,r,D,j)|0;j=c[B>>2]|0;if(j)r=Co(l,e,k,r,D,j)|0}else{j=c[B>>2]|0;k=c[E>>2]|0;if(!(k|j))k=m;else{Eo(l,e,m,r,D,k,j);k=m}}n=r+4|0;c:do if((k|0)<(n|0)){d=r+3|0;o=E+16|0;p=E+32|0;q=E+48|0;j=C+16|0;m=k;while(1){C=(c[D>>2]|0)+(m-k<<4)|0;l=e+(m<<4)|0;c[C>>2]=c[l>>2];c[C+4>>2]=c[l+4>>2];c[C+8>>2]=c[l+8>>2];c[C+12>>2]=c[l+12>>2];c[E>>2]=c[l>>2];c[E+4>>2]=c[l+4>>2];c[E+8>>2]=c[l+8>>2];c[E+12>>2]=c[l+12>>2];l=m+1|0;if((m|0)>=(d|0))break;B=(c[D>>2]|0)+(l-k<<4)|0;C=e+(l<<4)|0;c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];c[B+8>>2]=c[C+8>>2];c[B+12>>2]=c[C+12>>2];c[o>>2]=c[C>>2];c[o+4>>2]=c[C+4>>2];c[o+8>>2]=c[C+8>>2];c[o+12>>2]=c[C+12>>2];C=m+2|0;B=(c[D>>2]|0)+(C-k<<4)|0;C=e+(C<<4)|0;c[B>>2]=c[C>>2];c[B+4>>2]=c[C+4>>2];c[B+8>>2]=c[C+8>>2];c[B+12>>2]=c[C+12>>2];c[p>>2]=c[C>>2];c[p+4>>2]=c[C+4>>2];c[p+8>>2]=c[C+8>>2];c[p+12>>2]=c[C+12>>2];m=m+3|0;C=e+(m<<4)|0;c[q>>2]=c[C>>2];c[q+4>>2]=c[C+4>>2];c[q+8>>2]=c[C+8>>2];c[q+12>>2]=c[C+12>>2];_o((c[j>>2]|0)+16|0,E);if((m|0)>=(n|0))break c}}while(0);c[D+4>>2]=4-k+r;i=F;return}function bs(a,b){a=a|0;b=b|0;var d=0,e=0;if(+h[b>>3]<+h[b+16>>3]?+h[b+8>>3]<+h[b+24>>3]:0){e=a+80|0;d=c[e>>2]|0;c[e>>2]=d+1;a=(c[a+84>>2]|0)+(d<<5)|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];c[a+24>>2]=c[b+24>>2];c[a+28>>2]=c[b+28>>2]}return}function cs(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+48|0;r=A;m=c[d>>2]&3;t=d+48|0;z=c[((m|0)==3?d:t)+40>>2]|0;x=d+16|0;w=c[x>>2]|0;l=w+16|0;if(a[w+47>>0]|0){or(r,z,c[((m|0)==2?d:d+-48|0)+40>>2]|0,l);m=r;r=l+40|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(r|0))}u=z+16|0;m=c[u>>2]|0;l=c[m+8>>2]|0;if(!l)r=0;else r=c[(c[l+4>>2]|0)+16>>2]|0;w=c[x>>2]|0;l=w+16|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];p=+h[k>>3];w=w+24|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];s=+h[k>>3];w=m+16|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];q=+h[k>>3];w=m+24|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];s=s+ +h[k>>3];h[b>>3]=p+q;w=b+8|0;h[w>>3]=s;do if(!(g<<24>>24)){l=c[x>>2]|0;if(!(a[l+45>>0]|0)){a[b+29>>0]=0;break}else{h[b+16>>3]=+h[l+32>>3];a[b+29>>0]=1;break}}else{h[b+16>>3]=+ms(c[((c[d>>2]&3|0)==3?d:t)+40>>2]|0);a[b+29>>0]=1}while(0);c[b+80>>2]=0;c[b+88>>2]=d;g=f+32|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];a:do switch(e|0){case 1:{m=c[u>>2]|0;if((a[m+156>>0]|0)==0?(g=a[(c[x>>2]|0)+49>>0]|0,v=g&255,g<<24>>24!=0):0){o=+h[f>>3];j=+h[f+8>>3];p=+h[f+16>>3];n=+h[f+24>>3];do if(!(v&4)){if(v&1){c[f+48>>2]=1;s=+h[w>>3];h[f+56>>3]=o;h[f+64>>3]=j;h[f+72>>3]=p;h[f+80>>3]=n>s?n:s;c[f+52>>2]=1;break}l=f+48|0;if(!(v&8)){c[l>>2]=2;q=+h[m+24>>3]-+h[m+80>>3]*.5;s=+h[w>>3];h[f+56>>3]=+h[b>>3];h[f+64>>3]=q;h[f+72>>3]=p;h[f+80>>3]=s;c[f+52>>2]=1;break}else{c[l>>2]=8;q=+h[b>>3];p=+h[m+24>>3]-+h[m+80>>3]*.5;s=+h[w>>3];h[f+56>>3]=o;h[f+64>>3]=p;h[f+72>>3]=q;h[f+80>>3]=s;c[f+52>>2]=1;break}}else{c[f+48>>2]=4;if(+h[b>>3]<+h[m+16>>3]){s=o+-1.0;j=+h[w>>3];q=+h[m+24>>3]+ +h[m+80>>3]*.5;q=q+ +((c[(c[(gl(z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[u>>2]|0;n=+h[w+16>>3]-+h[w+88>>3];o=+h[w+24>>3]-+h[w+80>>3]*.5;h[f+56>>3]=s;h[f+64>>3]=j;h[f+72>>3]=p;p=s}else{j=+h[w>>3];n=p+1.0;q=+h[m+24>>3]+ +h[m+80>>3]*.5;q=q+ +((c[(c[(gl(z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[u>>2]|0;p=+h[w+16>>3]+ +h[w+96>>3]+0.0;s=+h[w+24>>3]-+h[w+80>>3]*.5;h[f+56>>3]=o;h[f+64>>3]=j;h[f+72>>3]=n;o=s}h[f+80>>3]=q;h[f+88>>3]=p;h[f+96>>3]=o;h[f+104>>3]=n;h[f+112>>3]=j;c[f+52>>2]=2}while(0);l=c[x>>2]|0;if(a[l+112>>0]|0)do{d=c[l+116>>2]|0;l=c[d+16>>2]|0}while((a[l+112>>0]|0)!=0);if((z|0)==(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)){a[l+46>>0]=0;break a}else{a[l+86>>0]=0;break a}}else{m=1;y=51}break}case 2:{v=a[(c[x>>2]|0)+49>>0]|0;m=v&255;if(!(v<<24>>24))y=50;else{p=+h[f>>3];j=+h[f+8>>3];q=+h[f+16>>3];n=+h[f+24>>3];do if(!(m&4)){if(m&1)if((c[f+48>>2]|0)==4){w=c[u>>2]|0;p=+h[w+24>>3]-+h[w+80>>3]*.5;q=q+1.0;j=+h[b>>3];n=p-+((c[(c[(gl(z)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[u>>2]|0;o=+h[w+16>>3]+ +h[w+96>>3]+0.0;s=+h[w+24>>3]+ +h[w+80>>3]*.5;h[f+56>>3]=j;h[f+64>>3]=n;h[f+72>>3]=q;h[f+80>>3]=p;h[f+88>>3]=o;h[f+96>>3]=p;h[f+104>>3]=q;h[f+112>>3]=s;c[f+52>>2]=2;break}else{s=+h[w>>3];h[f+56>>3]=p;h[f+64>>3]=j;h[f+72>>3]=q;h[f+80>>3]=n>s?n:s;c[f+52>>2]=1;break}s=+h[b>>3];if(!(m&8)){b=c[u>>2]|0;j=+h[b+24>>3];n=+h[b+80>>3]*.5;if((c[f+48>>2]|0)==4){o=j+n;j=+h[w>>3]}else{o=+h[w>>3]+1.0;j=j-n}h[f+56>>3]=s;h[f+64>>3]=j;h[f+72>>3]=q;h[f+80>>3]=o;c[f+52>>2]=1;break}else{b=c[u>>2]|0;j=+h[b+24>>3];n=+h[b+80>>3]*.5;if((c[f+48>>2]|0)==4){o=j+n;j=+h[w>>3]+-1.0}else{o=+h[w>>3]+1.0;j=j-n}h[f+56>>3]=p;h[f+64>>3]=j;h[f+72>>3]=s+1.0;h[f+80>>3]=o;c[f+52>>2]=1;break}}else{s=+h[w>>3];h[f+56>>3]=p;h[f+64>>3]=j<s?j:s;h[f+72>>3]=q;h[f+80>>3]=n;c[f+52>>2]=1}while(0);l=c[x>>2]|0;if(a[l+112>>0]|0)do{d=c[l+116>>2]|0;l=c[d+16>>2]|0}while((a[l+112>>0]|0)!=0);if((z|0)==(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0))a[l+46>>0]=0;else a[l+86>>0]=0;c[f+48>>2]=m}break}default:y=50}while(0);if((y|0)==50){m=c[f+48>>2]|0;y=51}b:do if((y|0)==51){if(r){l=f+56|0;d=f+52|0;m=Nb[r&3](z,(c[x>>2]|0)+16|0,m,l,d)|0;if(m){c[f+48>>2]=m;break}}else{d=f+52|0;l=f+56|0};c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];c[l+8>>2]=c[f+8>>2];c[l+12>>2]=c[f+12>>2];c[l+16>>2]=c[f+16>>2];c[l+20>>2]=c[f+20>>2];c[l+24>>2]=c[f+24>>2];c[l+28>>2]=c[f+28>>2];c[d>>2]=1;switch(e|0){case 8:{Ia(161945,130150,569,130160);break}case 2:{j=+h[w>>3];if((c[f+48>>2]|0)==4){h[f+64>>3]=j;break b}else{h[f+80>>3]=j;break b}}case 1:{h[f+80>>3]=+h[w>>3];c[f+48>>2]=1;break b}default:break b}}while(0);i=A;return}function ds(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+48|0;q=B;m=c[d>>2]&3;t=d+-48|0;A=c[((m|0)==2?d:t)+40>>2]|0;y=d+16|0;w=c[y>>2]|0;l=w+56|0;if(a[w+87>>0]|0){or(q,A,c[((m|0)==3?d:d+48|0)+40>>2]|0,l);m=q;q=l+40|0;do{c[l>>2]=c[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(q|0))}v=A+16|0;m=c[v>>2]|0;l=c[m+8>>2]|0;if(!l)q=0;else q=c[(c[l+4>>2]|0)+16>>2]|0;u=b+40|0;w=c[y>>2]|0;l=w+56|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];p=+h[k>>3];w=w+64|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];s=+h[k>>3];w=m+16|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];r=+h[k>>3];w=m+24|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];s=s+ +h[k>>3];h[b+40>>3]=p+r;w=b+48|0;h[w>>3]=s;do if(!(g<<24>>24)){l=c[y>>2]|0;if(!(a[l+85>>0]|0)){a[b+69>>0]=0;break}else{h[b+56>>3]=+h[l+72>>3];a[b+69>>0]=1;break}}else{s=+ms(c[((c[d>>2]&3|0)==2?d:t)+40>>2]|0)+3.141592653589793;h[b+56>>3]=s;if(s<6.283185307179586){a[b+69>>0]=1;break}else Ia(130170,130150,606,130194)}while(0);g=f+32|0;c[g>>2]=c[u>>2];c[g+4>>2]=c[u+4>>2];c[g+8>>2]=c[u+8>>2];c[g+12>>2]=c[u+12>>2];switch(e|0){case 1:{m=c[v>>2]|0;if((a[m+156>>0]|0)==0?(b=a[(c[y>>2]|0)+89>>0]|0,x=b&255,b<<24>>24!=0):0){n=+h[f>>3];j=+h[f+8>>3];o=+h[f+16>>3];do if(!(x&4)){if(!(x&1)){l=f+48|0;j=+h[u>>3];if(!(x&8)){c[l>>2]=2;s=+h[m+24>>3]+ +h[m+80>>3]*.5;r=+h[w>>3];h[f+56>>3]=j;h[f+64>>3]=r;h[f+72>>3]=o;h[f+80>>3]=s;c[f+52>>2]=1;break}else{c[l>>2]=8;s=+h[m+24>>3]+ +h[m+80>>3]*.5;r=+h[w>>3];h[f+56>>3]=n;h[f+64>>3]=r;h[f+72>>3]=j;h[f+80>>3]=s;c[f+52>>2]=1;break}}c[f+48>>2]=1;if(+h[u>>3]<+h[m+16>>3]){s=n+-1.0;p=+h[w>>3];r=+h[m+24>>3]-+h[m+80>>3]*.5;r=r-+((c[(c[(gl(A)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[v>>2]|0;n=+h[w+16>>3]-+h[w+88>>3];j=+h[w+24>>3]+ +h[w+80>>3]*.5;h[f+56>>3]=s;h[f+64>>3]=r;h[f+72>>3]=o;o=s}else{p=+h[w>>3];s=o+1.0;r=+h[m+24>>3]-+h[m+80>>3]*.5;r=r-+((c[(c[(gl(A)|0)+16>>2]|0)+252>>2]|0)/2|0|0);w=c[v>>2]|0;o=+h[w+16>>3]+ +h[w+96>>3]+0.0;j=+h[w+24>>3]+ +h[w+80>>3]*.5;h[f+56>>3]=n;h[f+64>>3]=r;h[f+72>>3]=s;n=s}h[f+80>>3]=p;h[f+88>>3]=o;h[f+96>>3]=p;h[f+104>>3]=n;h[f+112>>3]=j;c[f+52>>2]=2}else{s=+h[f+24>>3];c[f+48>>2]=4;r=+h[w>>3];h[f+56>>3]=n;h[f+64>>3]=j<r?j:r;h[f+72>>3]=o;h[f+80>>3]=s;c[f+52>>2]=1}while(0);l=c[y>>2]|0;if(a[l+112>>0]|0)do{d=c[l+116>>2]|0;l=c[d+16>>2]|0}while((a[l+112>>0]|0)!=0);if((A|0)==(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0))a[l+86>>0]=0;else a[l+46>>0]=0;c[f+48>>2]=x}else{m=4;z=54}break}case 2:{x=a[(c[y>>2]|0)+89>>0]|0;m=x&255;if(!(x<<24>>24))z=53;else{p=+h[f>>3];j=+h[f+8>>3];r=+h[f+16>>3];n=+h[f+24>>3];do if(!(m&4)){if(m&1)if((c[f+48>>2]|0)==4){o=p+-1.0;x=c[v>>2]|0;p=+h[x+24>>3]-+h[x+80>>3]*.5;n=+h[u>>3];j=p-+((c[(c[(gl(A)|0)+16>>2]|0)+252>>2]|0)/2|0|0);x=c[v>>2]|0;r=+h[x+16>>3]-+h[x+88>>3]+-2.0;s=+h[x+24>>3]+ +h[x+80>>3]*.5;h[f+56>>3]=o;h[f+64>>3]=j;h[f+72>>3]=n;h[f+80>>3]=p;h[f+88>>3]=o;h[f+96>>3]=p;h[f+104>>3]=r;h[f+112>>3]=s;c[f+52>>2]=2;break}else{s=+h[b+8>>3];h[f+56>>3]=p;h[f+64>>3]=j;h[f+72>>3]=r;h[f+80>>3]=n>s?n:s;c[f+52>>2]=1;break}s=+h[u>>3];if(!(m&8)){x=c[v>>2]|0;j=+h[x+24>>3];n=+h[x+80>>3]*.5;if((c[f+48>>2]|0)==4){o=+h[w>>3]+-1.0;j=j+n}else{o=j-n;j=+h[w>>3]}h[f+56>>3]=s+-1.0;h[f+64>>3]=o;h[f+72>>3]=r;h[f+80>>3]=j;c[f+52>>2]=1;break}else{x=c[v>>2]|0;j=+h[x+24>>3];n=+h[x+80>>3]*.5;if((c[f+48>>2]|0)==4){o=+h[w>>3]+-1.0;j=j+n}else{o=j-n;j=+h[w>>3]+1.0}h[f+56>>3]=p;h[f+64>>3]=o;h[f+72>>3]=s+1.0;h[f+80>>3]=j;c[f+52>>2]=1;break}}else{s=+h[w>>3];h[f+56>>3]=p;h[f+64>>3]=j<s?j:s;h[f+72>>3]=r;h[f+80>>3]=n;c[f+52>>2]=1}while(0);l=c[y>>2]|0;if(a[l+112>>0]|0)do{d=c[l+116>>2]|0;l=c[d+16>>2]|0}while((a[l+112>>0]|0)!=0);if((A|0)==(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0))a[l+86>>0]=0;else a[l+46>>0]=0;c[f+48>>2]=m}break}default:z=53}if((z|0)==53){m=c[f+48>>2]|0;z=54}a:do if((z|0)==54){if(q){l=f+56|0;d=f+52|0;m=Nb[q&3](A,(c[y>>2]|0)+56|0,m,l,d)|0;if(m){c[f+48>>2]=m;break}}else{d=f+52|0;l=f+56|0};c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];c[l+8>>2]=c[f+8>>2];c[l+12>>2]=c[f+12>>2];c[l+16>>2]=c[f+16>>2];c[l+20>>2]=c[f+20>>2];c[l+24>>2]=c[f+24>>2];c[l+28>>2]=c[f+28>>2];c[d>>2]=1;switch(e|0){case 8:{Ia(161945,130150,765,130194);break}case 2:{j=+h[w>>3];if((c[f+48>>2]|0)==4){h[f+64>>3]=j;break a}else{h[f+80>>3]=j;break a}}case 1:{h[f+64>>3]=+h[w>>3];c[f+48>>2]=4;break a}default:break a}}while(0);i=B;return}function es(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;d=c[b+16>>2]|0;i=c[d+96>>2]|0;if((a[d+44>>0]|0)==0?(a[d+84>>0]|0)==0:0)j=6;else{e=a[d+49>>0]|0;f=e&255;if(((f&8|0)==0?(g=a[d+89>>0]|0,(g&8)==0):0)?((f&5|0)==0?1:e<<24>>24!=g<<24>>24):0)j=6;else d=0}if((j|0)==6)if(!i)d=18;else{d=(c[(c[(gl(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0;d=~~(+h[(d?i+24|0:i+32|0)>>3]+18.0)}return d|0}+function fs(b,e,f,g,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;j=+j;k=+k;l=l|0;var m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0,U=0,V=0,W=0;V=i;i=i+16e3|0;U=V;u=c[e+(f<<2)>>2]|0;n=c[u+16>>2]|0;if((a[n+44>>0]|0)==0?(a[n+84>>0]|0)==0:0)T=6;else T=3;do if((T|0)==3){b=a[n+49>>0]|0;m=b&255;if(!(m&8)){K=a[n+89>>0]|0;if((K&8)==0?((m&5|0)==0?1:b<<24>>24!=K<<24>>24):0){T=6;break}if(!(a[n+89>>0]&8)){if(m&4){os(e,f,g,j,k,l);break}if(!(m&1))Ia(161945,130150,1231,130202);o=j*.5/+(g|0);K=(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)+16|0;J=c[K>>2]|0;O=+h[J+16>>3];L=+h[J+24>>3];m=c[u+16>>2]|0;M=O+ +h[m+16>>3];N=L+ +h[m+24>>3];O=O+ +h[m+56>>3];P=L+ +h[m+64>>3];b=!(M>=O)?-1:1;s=+h[J+80>>3]*.5;t=(N+s-L)*3.0;r=(P+s-L)*3.0;a:do if((g|0)>0){w=(ns(d[m+49>>0]|0,d[m+89>>0]|0)|0)==67;v=(o>2.0?o:2.0)*+((w?0-b|0:b)|0);w=U+8|0;x=U+16|0;y=U+24|0;z=U+32|0;A=U+40|0;B=(M+O)*.5;C=U+48|0;D=U+56|0;E=U+64|0;F=U+72|0;G=U+80|0;H=U+88|0;I=U+96|0;J=U+104|0;q=0.0;p=s;r=s<r?s:r;n=0;o=s<t?s:t;while(1){m=f+1|0;p=p+k;o=o+k;r=r+k;q=v+q;h[U>>3]=M;h[w>>3]=N;j=M+q;h[x>>3]=j;h[y>>3]=N-o/3.0;S=L-p;h[z>>3]=j;h[A>>3]=S;h[C>>3]=B;h[D>>3]=S;j=O-q;h[E>>3]=j;h[F>>3]=S;h[G>>3]=j;h[H>>3]=P-r/3.0;h[I>>3]=O;h[J>>3]=P;b=u+16|0;if((c[(c[b>>2]|0)+96>>2]|0)!=0?(W=(c[(c[(gl(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,f=c[(c[b>>2]|0)+96>>2]|0,Q=+h[(W?f+32|0:f+24|0)>>3],b=c[K>>2]|0,h[f+64>>3]=+h[b+24>>3]-p-Q*.5,h[f+56>>3]=+h[b+16>>3],a[f+81>>0]=1,Q>k):0)p=p+(Q-k);as(u,c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0,U,7,l);b=n+1|0;if((b|0)==(g|0))break a;f=m;u=c[e+(m<<2)>>2]|0;n=b}}while(0);break}}if((b&2)==0?(a[n+89>>0]&2)==0:0){o=k*.5/+(g|0);o=o>2.0?o:2.0;K=(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)+16|0;J=c[K>>2]|0;L=+h[J+16>>3];P=+h[J+24>>3];W=c[u+16>>2]|0;M=L+ +h[W+16>>3];N=P+ +h[W+24>>3];O=L+ +h[W+56>>3];P=P+ +h[W+64>>3];b=!(N>=P)?-1:1;t=+h[J+88>>3];switch(ns(d[W+49>>0]|0,d[W+89>>0]|0)|0){case 67:case 12:{if(N==P)b=0-b|0;break}default:{}}r=(M+t-L)*3.0;p=(O+t-L)*3.0;b:do if((g|0)>0){v=o*+(b|0);w=U+8|0;x=U+16|0;y=U+24|0;z=U+32|0;A=U+40|0;B=(N+P)*.5;C=U+48|0;D=U+56|0;E=U+64|0;F=U+72|0;G=U+80|0;H=U+88|0;I=U+96|0;J=U+104|0;o=t;q=0.0;s=t<p?t:p;n=0;p=t<r?t:r;while(1){m=f+1|0;o=o+j;p=p+j;r=s+j;q=v+q;h[U>>3]=M;h[w>>3]=N;R=N+q;h[x>>3]=M-p/3.0;h[y>>3]=R;k=L-o;h[z>>3]=k;h[A>>3]=R;h[C>>3]=k;h[D>>3]=B;R=P-q;h[E>>3]=k;h[F>>3]=R;h[G>>3]=O-r/3.0;h[H>>3]=R;h[I>>3]=O;h[J>>3]=P;b=u+16|0;if((c[(c[b>>2]|0)+96>>2]|0)!=0?(f=(c[(c[(gl(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,W=c[(c[b>>2]|0)+96>>2]|0,S=+h[(f?W+24|0:W+32|0)>>3],f=c[K>>2]|0,h[W+56>>3]=+h[f+16>>3]-o-S*.5,h[W+64>>3]=+h[f+24>>3],a[W+81>>0]=1,S>j):0)o=o+(S-j);as(u,c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0,U,7,l);b=n+1|0;if((b|0)==(g|0))break b;f=m;u=c[e+(m<<2)>>2]|0;s=r;n=b}}while(0);break}os(e,f,g,j,k,l)}while(0);if((T|0)==6){o=k*.5/+(g|0);o=o>2.0?o:2.0;K=(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)+16|0;T=c[K>>2]|0;L=+h[T+16>>3];P=+h[T+24>>3];W=c[u+16>>2]|0;M=L+ +h[W+16>>3];N=P+ +h[W+24>>3];O=L+ +h[W+56>>3];P=P+ +h[W+64>>3];b=!(N>=P)?-1:1;t=+h[T+96>>3];switch(ns(d[W+49>>0]|0,d[W+89>>0]|0)|0){case 65:case 32:{if(N==P)b=0-b|0;break}default:{}}p=L+t;r=(p-M)*3.0;p=(p-O)*3.0;c:do if((g|0)>0){v=o*+(b|0);w=U+8|0;x=U+16|0;y=U+24|0;z=U+32|0;A=U+40|0;B=(N+P)*.5;C=U+48|0;D=U+56|0;E=U+64|0;F=U+72|0;G=U+80|0;H=U+88|0;I=U+96|0;J=U+104|0;o=t;q=0.0;s=t<p?t:p;n=0;p=t<r?t:r;while(1){m=f+1|0;o=o+j;p=p+j;r=s+j;q=v+q;h[U>>3]=M;h[w>>3]=N;S=N+q;h[x>>3]=M+p/3.0;h[y>>3]=S;k=L+o;h[z>>3]=k;h[A>>3]=S;h[C>>3]=k;h[D>>3]=B;S=P-q;h[E>>3]=k;h[F>>3]=S;h[G>>3]=O+r/3.0;h[H>>3]=S;h[I>>3]=O;h[J>>3]=P;b=u+16|0;if((c[(c[b>>2]|0)+96>>2]|0)!=0?(T=(c[(c[(gl(c[((c[u>>2]&3|0)==3?u:u+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,W=c[(c[b>>2]|0)+96>>2]|0,R=+h[(T?W+24|0:W+32|0)>>3],T=c[K>>2]|0,h[W+56>>3]=R*.5+(o+ +h[T+16>>3]),h[W+64>>3]=+h[T+24>>3],a[W+81>>0]=1,R>j):0)o=o+(R-j);as(u,c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0,U,7,l);b=n+1|0;if((b|0)==(g|0))break c;f=m;u=c[e+(m<<2)>>2]|0;s=r;n=b}}while(0)}i=V;return}function gs(b){b=b|0;var d=0,e=0;if((c[13449]|0)!=0|(c[13448]|0)!=0){d=b+16|0;e=c[(c[d>>2]|0)+100>>2]|0;if(((e|0)!=0?(a[e+81>>0]|0)==0:0)?(hs(b,1)|0)!=0:0){e=gl(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;_s(e,c[(c[d>>2]|0)+100>>2]|0)}e=c[(c[d>>2]|0)+104>>2]|0;if(((e|0)!=0?(a[e+81>>0]|0)==0:0)?(hs(b,0)|0)!=0:0){e=gl(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;_s(e,c[(c[d>>2]|0)+104>>2]|0)}}return}function hs(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+96|0;o=q+32|0;m=q+16|0;p=q;k=b+16|0;do if((a[(c[k>>2]|0)+112>>0]|0)!=6){e=c[13449]|0;if(!((e|0)!=0?(a[(Aj(b,e)|0)>>0]|0)!=0:0)){e=c[13448]|0;if(!e){e=0;break}if(!(a[(Aj(b,e)|0)>>0]|0)){e=0;break}}e=d<<24>>24==0;n=c[k>>2]|0;n=c[(e?n+104|0:n+100|0)>>2]|0;d=ks(b)|0;if(d){do if(e){e=c[d>>2]|0;if(!(c[e+8>>2]|0)){p=c[e>>2]|0;l=+h[p>>3];g=+h[p+8>>3];c[o>>2]=c[p>>2];c[o+4>>2]=c[p+4>>2];c[o+8>>2]=c[p+8>>2];c[o+12>>2]=c[p+12>>2];p=o+16|0;k=(c[e>>2]|0)+16|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];c[p+12>>2]=c[k+12>>2];p=o+32|0;k=(c[e>>2]|0)+32|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];c[p+12>>2]=c[k+12>>2];p=o+48|0;k=(c[e>>2]|0)+48|0;c[p>>2]=c[k>>2];c[p+4>>2]=c[k+4>>2];c[p+8>>2]=c[k+8>>2];c[p+12>>2]=c[k+12>>2];Rs(m,o,3,.1,0,0);j=+h[m>>3];f=+h[m+8>>3];break}else{p=c[e>>2]|0;l=+h[e+16>>3];g=+h[e+24>>3];j=+h[p>>3];f=+h[p+8>>3];break}}else{k=(c[d+4>>2]|0)+-1|0;d=c[d>>2]|0;e=d+(k*48|0)|0;if(!(c[d+(k*48|0)+12>>2]|0)){k=d+(k*48|0)+4|0;m=c[k>>2]|0;r=m+-1|0;d=c[e>>2]|0;l=+h[d+(r<<4)>>3];g=+h[d+(r<<4)+8>>3];m=d+(m+-4<<4)|0;c[o>>2]=c[m>>2];c[o+4>>2]=c[m+4>>2];c[o+8>>2]=c[m+8>>2];c[o+12>>2]=c[m+12>>2];m=o+16|0;d=(c[e>>2]|0)+((c[k>>2]|0)+-3<<4)|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];m=o+32|0;d=(c[e>>2]|0)+((c[k>>2]|0)+-2<<4)|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];m=o+48|0;k=(c[e>>2]|0)+((c[k>>2]|0)+-1<<4)|0;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];c[m+8>>2]=c[k+8>>2];c[m+12>>2]=c[k+12>>2];Rs(p,o,3,.9,0,0);j=+h[p>>3];f=+h[p+8>>3];break}else{r=(c[d+(k*48|0)+4>>2]|0)+-1|0;p=c[e>>2]|0;l=+h[d+(k*48|0)+32>>3];g=+h[d+(k*48|0)+40>>3];j=+h[p+(r<<4)>>3];f=+h[p+(r<<4)+8>>3];break}}while(0);j=+W(+(f-g),+(j-l));j=j+ +Hs(b,c[13449]|0,-25.0,-180.0)/180.0*3.141592653589793;f=+Hs(b,c[13448]|0,1.0,0.0)*10.0;h[n+56>>3]=l+f*+Q(+j);h[n+64>>3]=g+f*+R(+j);a[n+81>>0]=1;e=1}else e=0}else e=0;while(0);i=q;return e|0}function is(a,b,d){a=a|0;b=b|0;d=d|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0,x=0,y=0.0;w=i;i=i+48|0;r=w+32|0;q=w+16|0;p=w;o=c[(c[d+16>>2]|0)+8>>2]|0;s=c[o>>2]|0;t=c[s>>2]|0;d=(c[s+8>>2]|0)==0;j=+h[(d?t:s+16|0)>>3];k=+h[(d?t+8|0:s+24|0)>>3];t=c[o+4>>2]|0;d=t+-1|0;if(!(c[s+(d*48|0)+12>>2]|0)){x=c[s+(d*48|0)>>2]|0;d=(c[s+(d*48|0)+4>>2]|0)+-1|0;n=x+(d<<4)+8|0;d=x+(d<<4)|0}else{n=s+(d*48|0)+40|0;d=s+(d*48|0)+32|0}g=+h[d>>3];f=+h[n>>3];l=j-g;m=k-f;a:do if(l*l+m*m<1.0e-06){v=j;u=k}else{switch((e[(c[b+16>>2]|0)+136>>1]|0)&14|0){case 4:case 10:{h[q>>3]=(j+g)*.5;h[q+8>>3]=(k+f)*.5;c[r>>2]=c[q>>2];c[r+4>>2]=c[q+4>>2];c[r+8>>2]=c[q+8>>2];c[r+12>>2]=c[q+12>>2];Ws(p,o,r);v=+h[p>>3];u=+h[p+8>>3];break a}default:{}}b:do if((t|0)>0){f=0.0;q=0;do{o=c[s+(q*48|0)>>2]|0;p=c[s+(q*48|0)+4>>2]|0;if((p|0)>3){d=0;n=3;while(1){l=+h[o+(d<<4)>>3]-+h[o+(n<<4)>>3];m=+h[o+(d<<4)+8>>3]-+h[o+(n<<4)+8>>3];f=f+ +O(+(l*l+m*m));n=n+3|0;if((n|0)>=(p|0))break;else d=d+3|0}}q=q+1|0}while((q|0)!=(t|0));f=f*.5;q=0;c:while(1){o=c[s+(q*48|0)>>2]|0;p=c[s+(q*48|0)+4>>2]|0;if((p|0)>3){d=0;n=3;while(1){l=+h[o+(d<<4)>>3];m=+h[o+(d<<4)+8>>3];j=+h[o+(n<<4)>>3];k=+h[o+(n<<4)+8>>3];y=l-j;g=m-k;g=+O(+(y*y+g*g));if(g>=f)break c;f=f-g;n=n+3|0;if((n|0)>=(p|0))break;else d=d+3|0}}q=q+1|0;if((q|0)>=(t|0))break b}u=g-f;v=(f*j+l*u)/g;u=(f*k+m*u)/g;break a}while(0);Ia(162263,130150,1316,130215)}while(0);h[a>>3]=v;h[a+8>>3]=u;i=w;return}function js(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;gs(b);return}function ks(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;e=c[b+16>>2]|0;d=c[e+8>>2]|0;a:do if(!d){while(1){if(!(a[e+112>>0]|0))break;e=c[(c[e+116>>2]|0)+16>>2]|0;d=c[e+8>>2]|0;if(d)break a}e=ok(c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0;d=ok(c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0;c[f>>2]=e;c[f+4>>2]=d;dj(1,130232,f)|0;d=0}while(0);i=g;return d|0}function ls(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0.0,m=0,n=0;n=i;i=i+64|0;m=n;b=b+16|0;f=c[b>>2]|0;l=+h[f+96>>3];g=f+16|0;j=f+24|0;k=0;do{h[m+(k<<4)>>3]=+h[d+(k<<4)>>3]-+h[g>>3];h[m+(k<<4)+8>>3]=+h[d+(k<<4)+8>>3]-+h[j>>3];k=k+1|0}while((k|0)!=4);Zr(a,c[(c[(c[f+8>>2]|0)+4>>2]|0)+12>>2]|0,m,e);b=c[b>>2]|0;f=b+16|0;g=b+24|0;j=0;do{h[d+(j<<4)>>3]=+h[m+(j<<4)>>3]+ +h[f>>3];h[d+(j<<4)+8>>3]=+h[m+(j<<4)+8>>3]+ +h[g>>3];j=j+1|0}while((j|0)!=4);h[b+96>>3]=l;i=n;return}function ms(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,g=0.0,i=0,j=0.0,k=0,l=0,m=0.0,n=0.0;k=c[a+16>>2]|0;f=c[k+172>>2]|0;l=c[f>>2]|0;if(!l){j=0.0;b=0.0}else{e=l;a=0;b=0.0;do{b=b+ +h[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+16>>3];a=a+1|0;e=c[f+(a<<2)>>2]|0}while((e|0)!=0);j=+(a|0)}f=c[k+180>>2]|0;i=c[f>>2]|0;if(!i){g=0.0;d=0.0}else{e=i;a=0;d=0.0;do{d=d+ +h[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+16>>3];a=a+1|0;e=c[f+(a<<2)>>2]|0}while((e|0)!=0);g=+(a|0)}m=+h[k+16>>3];n=+h[k+24>>3];j=+W(+(n-+h[(c[(c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)+16>>2]|0)+24>>3]),+(m-b/j));return +((j+ +W(+(+h[(c[(c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+24>>3]-n),+(d/g-m)))*.5)}function ns(a,b){a=a|0;b=b|0;var d=0;if((b|0)!=12)if((b|0)!=4)if((b|0)!=6)if((b|0)!=2)if((b|0)!=3)if((b|0)!=1)if((b|0)==9)d=6;else d=(b|0)==8?7:-1;else d=5;else d=4;else d=3;else d=2;else d=1;else d=0;if((a|0)!=12)if((a|0)!=4)if((a|0)!=6)if((a|0)!=2)if((a|0)!=3)if((a|0)!=1)if((a|0)==9)b=6;else b=(a|0)==8?7:-1;else b=5;else b=4;else b=3;else b=2;else b=1;else b=0;if((b|d|0)<0)b=0;else b=c[55524+(b<<5)+(d<<2)>>2]|0;return b|0}function os(b,e,f,g,j,k){b=b|0;e=e|0;f=f|0;g=+g;j=+j;k=k|0;var l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0,S=0;R=i;i=i+16e3|0;Q=R;o=c[b+(e<<2)>>2]|0;n=g*.5/+(f|0);n=n>2.0?n:2.0;J=(c[((c[o>>2]&3|0)==3?o:o+48|0)+40>>2]|0)+16|0;l=c[J>>2]|0;g=+h[l+16>>3];K=+h[l+24>>3];I=c[o+16>>2]|0;L=g+ +h[I+16>>3];M=K+ +h[I+24>>3];N=g+ +h[I+56>>3];O=K+ +h[I+64>>3];m=!(L>=N)?-1.0:1.0;s=+h[l+80>>3]*.5;switch(ns(d[I+49>>0]|0,d[I+89>>0]|0)|0){case 15:{g=m*(n+(+h[l+96>>3]-(N-g)));break}case 38:{g=m*(n+(+h[l+88>>3]-(g-N)));break}case 41:{g=m*(n+(+h[l+96>>3]-(L-g)));break}case 48:{g=m*(n+(+h[l+96>>3]-(L-g)));break}case 58:case 57:case 51:case 47:case 37:case 14:{g=m*((+h[l+88>>3]-(g-L)+(+h[l+96>>3]-(N-g)))/3.0);break}case 73:{g=m*(n+(+h[l+88>>3]-(g-L)));break}case 83:{g=m*(+h[l+88>>3]-(g-L));break}case 84:{g=m*(n+(+h[l+88>>3]-(g-L)+(+h[l+96>>3]-(N-g)))*.5);break}case 85:case 75:case 74:{g=m*(n*2.0+(+h[l+88>>3]-(g-L)+(+h[l+96>>3]-(N-g)))*.5);break}default:g=0.0}p=K+s;q=(p-M)*3.0;p=(p-O)*3.0;a:do if((f|0)>0){u=n*m;v=Q+8|0;w=Q+16|0;x=Q+24|0;y=Q+32|0;z=Q+40|0;A=(L+N)*.5;B=Q+48|0;C=Q+56|0;D=Q+64|0;E=Q+72|0;F=Q+80|0;G=Q+88|0;H=Q+96|0;I=Q+104|0;n=g;m=s;p=s<p?s:p;t=0;g=s<q?s:q;while(1){r=e+1|0;m=m+j;g=g+j;p=p+j;n=u+n;h[Q>>3]=L;h[v>>3]=M;s=L+n;h[w>>3]=s;h[x>>3]=M+g/3.0;q=K+m;h[y>>3]=s;h[z>>3]=q;h[B>>3]=A;h[C>>3]=q;s=N-n;h[D>>3]=s;h[E>>3]=q;h[F>>3]=s;h[G>>3]=O+p/3.0;h[H>>3]=N;h[I>>3]=O;l=o+16|0;if((c[(c[l>>2]|0)+96>>2]|0)!=0?(S=(c[(c[(gl(c[((c[o>>2]&3|0)==3?o:o+48|0)+40>>2]|0)|0)+16>>2]|0)+116>>2]&1|0)==0,e=c[(c[l>>2]|0)+96>>2]|0,P=+h[(S?e+32|0:e+24|0)>>3],l=c[J>>2]|0,h[e+64>>3]=P*.5+(m+ +h[l+24>>3]),h[e+56>>3]=+h[l+16>>3],a[e+81>>0]=1,P>j):0)m=m+(P-j);as(o,c[((c[o>>2]&3|0)==2?o:o+-48|0)+40>>2]|0,Q,7,k);l=t+1|0;if((l|0)==(f|0))break a;e=r;o=c[b+(r<<2)>>2]|0;t=l}}while(0);i=R;return}function ps(b,d,e,f,g){b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.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.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0,J=0,K=0,L=0,N=0;L=i;i=i+112|0;z=L+96|0;y=L+80|0;x=L+16|0;v=L;K=$p(12)|0;A=K+4|0;c[A>>2]=0;B=K+8|0;c[B>>2]=2e3;c[K>>2]=$p(128e3)|0;w=c[b+4>>2]|0;t=c[b>>2]|0;c[z>>2]=c[t>>2];c[z+4>>2]=c[t+4>>2];c[z+8>>2]=c[t+8>>2];c[z+12>>2]=c[t+12>>2];qs(K,z,0.0);u=x+48|0;c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];if((w|0)>3){o=x+8|0;p=y+8|0;q=x+16|0;r=x+32|0;s=3;b=0;j=0.0;while(1){c[x>>2]=c[u>>2];c[x+4>>2]=c[u+4>>2];c[x+8>>2]=c[u+8>>2];c[x+12>>2]=c[u+12>>2];J=t+(b+1<<4)|0;c[q>>2]=c[J>>2];c[q+4>>2]=c[J+4>>2];c[q+8>>2]=c[J+8>>2];c[q+12>>2]=c[J+12>>2];J=t+(b+2<<4)|0;c[r>>2]=c[J>>2];c[r+4>>2]=c[J+4>>2];c[r+8>>2]=c[J+8>>2];c[r+12>>2]=c[J+12>>2];b=t+(b+3<<4)|0;c[u>>2]=c[b>>2];c[u+4>>2]=c[b+4>>2];c[u+8>>2]=c[b+8>>2];c[u+12>>2]=c[b+12>>2];k=+h[x>>3];l=+h[o>>3];b=1;do{Rs(v,x,3,+(b|0)/20.0,0,0);c[y>>2]=c[v>>2];c[y+4>>2]=c[v+4>>2];c[y+8>>2]=c[v+8>>2];c[y+12>>2]=c[v+12>>2];G=k;k=+h[y>>3];G=G-k;H=l;l=+h[p>>3];H=H-l;j=j+ +O(+(G*G+H*H));c[z>>2]=c[y>>2];c[z+4>>2]=c[y+4>>2];c[z+8>>2]=c[y+8>>2];c[z+12>>2]=c[y+12>>2];qs(K,z,j);b=b+1|0}while((b|0)!=21);b=s+3|0;if((b|0)<(w|0)){J=s;s=b;b=J}else break}}b=c[A>>2]|0;if((c[B>>2]|0)>(b|0))c[K>>2]=cq(c[K>>2]|0,b<<6)|0;I=c[A>>2]|0;J=c[K>>2]|0;x=I+-1|0;G=+h[J+(x<<6)+16>>3];B=(I|0)>0;if(B){H=+(I|0);y=(g|0)==2;z=(f|0)!=0;A=0;do{j=+(A+-1|0);if(!((A|0)>0&!(j>=H)))j=j-H*+M(+(j/H));b=~~j;o=A;A=A+1|0;j=+(A|0);if(j>=H)j=j-H*+M(+(j/H));N=~~j;p=J+(o<<6)|0;k=+h[p>>3];q=J+(o<<6)+8|0;j=+h[q>>3];r=J+(o<<6)+16|0;F=+h[r>>3];s=J+(o<<6)+24|0;t=J+(o<<6)+32|0;u=J+(o<<6)+40|0;v=J+(o<<6)+48|0;w=J+(o<<6)+56|0;l=+h[J+(N<<6)+8>>3]-j;m=+h[J+(N<<6)>>3]-k;if(!(m==0.0&l==0.0)){l=+W(+l,+m);if(!(l>=0.0))C=l+6.283185307179586;else C=l}else C=0.0;m=+h[J+(b<<6)+8>>3]-j;l=+h[J+(b<<6)>>3]-k;if(!(l==0.0&m==0.0)){l=+W(+m,+l);if(!(l>=0.0))l=l+6.283185307179586}else l=0.0;E=+Fb[d&7](F,G,e);do if(!o){l=C+1.5707963267948966;if(y){b=0;n=l;D=l;m=E;k=k-E*+Q(+C);j=j-E*+R(+C)}else{b=0;n=l;D=l;m=E}}else{if((o|0)==(x|0)){m=l+-1.5707963267948966;if(!y){b=0;n=m;D=m;m=E;break}b=0;n=m;D=m;m=E;k=k-E*+Q(+l);j=j-E*+R(+l);break}n=C-l;n=1.5707963267948966-(n<0.0?n+6.283185307179586:n)*.5;m=+Q(+n);m=m==0.0?0.0:E/m;D=C+1.5707963267948966;C=D+n;if(z|m>E*10.0){n=l+-1.5707963267948966;if(!(!(n<0.0)&!(n>=6.283185307179586)))n=n-+M(+(n/6.283185307179586))*6.283185307179586;if(!(D<0.0)&!(D>=6.283185307179586)){b=1;m=E}else{b=1;D=D-+M(+(D/6.283185307179586))*6.283185307179586;m=E}}else{b=0;n=C;D=C}}while(0);h[p>>3]=k;h[q>>3]=j;h[r>>3]=F;a[s>>0]=108;h[t>>3]=n;h[u>>3]=m;c[v>>2]=b;h[w>>3]=D}while((A|0)!=(I|0));o=$p(12)|0;if(B){b=0;do{k=+h[J+(b<<6)>>3];j=+h[J+(b<<6)+8>>3];n=+h[J+(b<<6)+32>>3];m=+h[J+(b<<6)+40>>3];N=c[J+(b<<6)+48>>2]|0;l=+h[J+(b<<6)+56>>3];rs(o,k+m*+Q(+n),j+m*+R(+n));if(N)ss(k,j,m,1,n,l,f,o);b=b+1|0}while((b|0)!=(I|0))}}else{o=$p(12)|0;n=0.0;m=0.0;k=0.0;j=0.0}p=(g|0)==1;l=n+3.141592653589793;if(p){ts(o,k,j,m,n,l);l=n}else rs(o,k+m*+Q(+l),j+m*+R(+l));b=I+-2|0;if((b|0)>-1)while(1){k=+h[J+(b<<6)>>3];j=+h[J+(b<<6)+8>>3];n=+h[J+(b<<6)+40>>3];N=c[J+(b<<6)+48>>2]|0;l=+h[J+(b<<6)+32>>3]+3.141592653589793;m=+h[J+(b<<6)+56>>3]+3.141592653589793;rs(o,k+n*+Q(+m),j+n*+R(+m));if(N)ss(k,j,n,0,l,m,f,o);if((b|0)>0)b=b+-1|0;else{m=n;break}}if(p)ts(o,k,j,m,l,l+3.141592653589793);pB(c[K>>2]|0);pB(K);i=L;return o|0}function qs(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,i=0;i=a+4|0;e=c[i>>2]|0;f=a+8|0;g=c[f>>2]|0;if((e|0)<(g|0))f=c[a>>2]|0;else{c[f>>2]=g<<1;f=cq(c[a>>2]|0,g<<7)|0;c[a>>2]=f;e=c[i>>2]|0}h[f+(e<<6)>>3]=+h[b>>3];h[f+(e<<6)+8>>3]=+h[b+8>>3];c[i>>2]=e+1;h[f+(e<<6)+16>>3]=d;return}function rs(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0,g=0;f=c[a>>2]|0;e=a+4|0;if((f|0)<(c[e>>2]|0)){g=c[a+8>>2]|0;e=f}else{c[e>>2]=2e3;e=a+8|0;g=cq(c[e>>2]|0,32e3)|0;c[e>>2]=g;e=c[a>>2]|0}c[a>>2]=e+1;h[g+(e<<4)>>3]=b;h[g+(e<<4)+8>>3]=d;return}function ss(a,b,c,d,e,f,g,h){a=+a;b=+b;c=+c;d=d|0;e=+e;f=+f;g=g|0;h=h|0;var i=0.0;d=(d|0)==0;i=d?e:f;do if((g|0)==1){e=(d?f:e)-i;e=!(e<=1.7453292519943296e-03)?e:e+6.283185307179586;if(e<3.141592653589793){ts(h,a,b,c,i+e,i);break}else{rs(h,+Q(+i)*c+a,+R(+i)*c+a);break}}else rs(h,+Q(+i)*c+a,+R(+i)*c+a);while(0);return}function ts(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0,h=0.0;rs(a,+Q(+e)*d+b,+R(+e)*d+c);if(!(d==0.0)){if(f>e)do f=f+-6.283185307179586;while(f>e);f=e-f;if(f>6.283185307179586)do f=f+-6.283185307179586;while(f>6.283185307179586);f=f/19.0;g=1;do{h=e-f*+(g|0);rs(a,+Q(+h)*d+b,+R(+h)*d+c);g=g+1|0}while((g|0)!=20)}return}function us(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;r=s+8|0;q=s;o=s+12|0;c[o>>2]=0;l=e+4|0;p=c[l>>2]|0;if(!p)Ia(130294,130305,203,130316);f=c[p>>2]|0;if(!f)Ia(130330,130305,206,130316);j=p+8|0;if(!(c[j>>2]|0)){g=c[13945]|0;if((g|0)!=0?(hA(g,f)|0)==0:0)f=c[13954]|0;else{pB(g);c[13945]=oA(f)|0;f=Zz(55780,55820,35,36,30)|0;c[13954]=f}c[j>>2]=f}if(!(a[124827]|0))n=0;else{n=(ap(c[p>>2]|0)|0)==0;n=n?0:o}if(!((Cv(d,e,n)|0)<<24>>24)){l=c[l>>2]|0;f=c[l>>2]|0;m=+h[l+16>>3];l=e+32|0;h[l>>3]=0.0;h[e+40>>3]=m*1.2;h[e+16>>3]=0.0;h[e+24>>3]=m*.1;c[e+8>>2]=0;c[e+12>>2]=0;if(qA(f,130341,4)|0)if((qA(f,130346,5)|0)!=0?(qA(f,130352,9)|0)!=0:0){j=36472;f=130362}else{j=40568;f=130398}else{j=38520;f=130379}if(n)c[n>>2]=f;g=c[e>>2]|0;if(g){f=a[g>>0]|0;if(!(f<<24>>24))k=0.0;else{k=0.0;do{g=g+1|0;k=k+ +h[j+((f&255)<<3)>>3];h[l>>3]=k;f=a[g>>0]|0}while(f<<24>>24!=0)}h[l>>3]=m*k}}do if(n){g=c[o>>2]|0;j=c[22667]|0;f=c[p>>2]|0;if(!g){c[r>>2]=f;Bz(j,130447,r)|0;break}else{c[q>>2]=f;c[q+4>>2]=g;Bz(j,130415,q)|0;break}}while(0);r=e+32|0;c[b>>2]=c[r>>2];c[b+4>>2]=c[r+4>>2];c[b+8>>2]=c[r+8>>2];c[b+12>>2]=c[r+12>>2];i=s;return}function vs(a){a=a|0;var b=0;b=a+108|0;c[b>>2]=0;c[a+112>>2]=32;c[a+116>>2]=-1;c[a+120>>2]=16;c[a+124>>2]=58;c[a+128>>2]=22;c[a+132>>2]=0;c[a+136>>2]=0;c[a+140>>2]=0;b=Vi(b,c[12573]|0)|0;c[a+144>>2]=b;return b|0}function ws(a,b){a=a|0;b=b|0;return hA(c[a>>2]|0,c[b>>2]|0)|0}function xs(a,b,d){a=a|0;b=b|0;d=d|0;a=qB(1,32)|0;d=c[b>>2]|0;if(d)c[a>>2]=oA(d)|0;d=c[b+4>>2]|0;if(d)c[a+4>>2]=oA(d)|0;c[a+24>>2]=c[b+24>>2]&127;h[a+16>>3]=+h[b+16>>3];c[a+8>>2]=c[b+8>>2];return a|0}function ys(a,b,d){a=a|0;b=b|0;d=d|0;d=c[b>>2]|0;if(d)pB(d);d=c[b+4>>2]|0;if(d)pB(d);pB(b);return}function zs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0;e=c[b>>2]|0;a=c[d>>2]|0;i=(a|0)==0;if(!e)if(i)j=5;else e=-1;else if(!i){e=lA(e,a)|0;if(!e)j=5}else e=1;do if((j|0)==5){i=c[b+4>>2]|0;e=c[d+4>>2]|0;a=(e|0)==0;if(!i){if(!a){e=-1;break}}else{if(a){e=1;break}e=lA(i,e)|0;if(e)break}e=c[b+24>>2]&127;a=c[d+24>>2]&127;if((e|0)!=(a|0)){e=e-a|0;break}g=+h[b+16>>3];f=+h[d+16>>3];if(g<f)e=-1;else e=g>f&1}while(0);return e|0}function As(){Ma(57080)|0;return}function Bs(){var a=0,b=0;b=i;i=i+16|0;a=b;Ma(a|0)|0;i=b;return +(+((c[a+4>>2]|0)+(c[a>>2]|0)-(c[14270]|0)-(c[14271]|0)|0)/60.0)}function Cs(a){a=a|0;var b=0,d=0;b=$p(16)|0;a=(a|0)<2?2:a;d=$p(a<<2)|0;c[b>>2]=d;c[b+12>>2]=d;c[b+8>>2]=d;c[b+4>>2]=d+(a<<2);return b|0}function Ds(a){a=a|0;pB(c[a>>2]|0);pB(a);return}function Es(a,b){a=a|0;b=b|0;var d=0,e=0;d=a+12|0;e=c[d>>2]|0;c[d>>2]=e+4;c[e>>2]=b;if((c[d>>2]|0)>>>0>=(c[a+4>>2]|0)>>>0)c[d>>2]=c[a>>2];return}function Fs(a){a=a|0;var b=0,d=0,e=0;d=a+8|0;b=c[d>>2]|0;if((b|0)!=(c[a+12>>2]|0)){e=b+4|0;c[d>>2]=e;b=c[b>>2]|0;if(e>>>0>=(c[a+4>>2]|0)>>>0)c[d>>2]=c[a>>2]}else b=0;return b|0}function Gs(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;if((((d|0)!=0?(g=Aj(b,d)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0)?(h=bA(g,j,10)|0,(g|0)!=(c[j>>2]|0)):0)e=(h|0)<(f|0)?f:h;i=k;return e|0}function Hs(b,d,e,f){b=b|0;d=d|0;e=+e;f=+f;var g=0,h=0.0,j=0,k=0;k=i;i=i+16|0;j=k;if((((b|0)!=0&(d|0)!=0?(g=Aj(b,d)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0)?(h=+$z(g,j),(g|0)!=(c[j>>2]|0)):0)e=h<f?f:h;i=k;return +e}function Is(a,b,c){a=a|0;b=b|0;c=c|0;if((a|0)!=0&(b|0)!=0)c=Aj(a,b)|0;return c|0}function Js(b,c,d){b=b|0;c=c|0;d=d|0;if((b|0)!=0&(c|0)!=0)c=Aj(b,c)|0;else c=d;if(!((c|0)!=0?(a[c>>0]|0)!=0:0))c=d;return c|0}function Ks(a,b,c){a=a|0;b=b|0;c=c|0;if(!b)b=c&255;else b=Vs(Aj(a,b)|0,0)|0;return b|0}function Ls(a){a=a|0;return Vs(a,0)|0}function Ms(a){a=a|0;var b=0,d=0,e=0;b=c[a+16>>2]|0;e=b+220|0;d=c[e>>2]|0;if((d|0)!=(a|0)&(d|0)!=0)do{a=c[(c[(c[e>>2]|0)+16>>2]|0)+220>>2]|0;if(!a)a=d;else{c[e>>2]=a;a=c[b+220>>2]|0}b=c[a+16>>2]|0;e=b+220|0;d=c[e>>2]|0}while((d|0)!=(a|0)&(d|0)!=0);return a|0}function Ns(a,b){a=a|0;b=b|0;var d=0,e=0;do if((a|0)!=(b|0)){d=c[a+16>>2]|0;e=d+220|0;if(!(c[e>>2]|0)){c[e>>2]=a;c[d+216>>2]=1}else a=Ms(a)|0;e=c[b+16>>2]|0;d=e+220|0;if(!(c[d>>2]|0)){c[d>>2]=b;c[e+216>>2]=1}else{e=Ms(b)|0;b=e;e=c[e+16>>2]|0}d=c[a+16>>2]|0;if((c[d+120>>2]|0)>(c[e+120>>2]|0)){c[d+220>>2]=b;a=e+216|0;c[a>>2]=(c[a>>2]|0)+(c[d+216>>2]|0);break}else{c[e+220>>2]=a;b=d+216|0;c[b>>2]=(c[b>>2]|0)+(c[e+216>>2]|0);b=a;break}}else b=a;while(0);return b|0}function Os(b){b=b|0;b=c[b+16>>2]|0;c[b+216>>2]=1;c[b+220>>2]=0;a[b+159>>0]=0;return}function Ps(a,b){a=a|0;b=b|0;if((Ms(a)|0)==(a|0)){a=c[a+16>>2]|0;c[a+220>>2]=b;b=(c[b+16>>2]|0)+216|0;c[b>>2]=(c[b>>2]|0)+(c[a+216>>2]|0);return}else Ia(131282,131274,194,131298)}function Qs(a,b){a=a|0;b=b|0;var d=0.0;b=c[(c[b+16>>2]|0)+132>>2]|0;d=+h[b+8>>3]*72.0;h[a>>3]=+h[b>>3]*72.0;h[a+8>>3]=d;return}function Rs(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;g=g|0;var j=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;r=i;i=i+576|0;q=r;p=(d|0)<0;if(!p){j=0;while(1){o=q+(j<<4)|0;n=b+(j<<4)|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];if((j|0)==(d|0))break;else j=j+1|0}if((d|0)>=1){l=1.0-e;j=1;n=d;while(1){if((j|0)<=(d|0)){b=j+-1|0;k=+h[q+(b*96|0)+8>>3];m=+h[q+(b*96|0)>>3];o=0;do{s=o;o=o+1|0;t=m;m=+h[q+(b*96|0)+(o<<4)>>3];h[q+(j*96|0)+(s<<4)>>3]=l*t+m*e;t=k;k=+h[q+(b*96|0)+(o<<4)+8>>3];h[q+(j*96|0)+(s<<4)+8>>3]=l*t+k*e}while((o|0)!=(n|0))}if((j|0)==(d|0))break;else{j=j+1|0;n=n+-1|0}}}}if(!((f|0)==0|p)){b=0;while(1){s=f+(b<<4)|0;o=q+(b*96|0)|0;c[s>>2]=c[o>>2];c[s+4>>2]=c[o+4>>2];c[s+8>>2]=c[o+8>>2];c[s+12>>2]=c[o+12>>2];if((b|0)==(d|0))break;else b=b+1|0}}if(!((g|0)==0|p)){b=0;while(1){s=g+(b<<4)|0;f=q+((d-b|0)*96|0)+(b<<4)|0;c[s>>2]=c[f>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];c[s+12>>2]=c[f+12>>2];if((b|0)==(d|0))break;else b=b+1|0}}s=q+(d*96|0)|0;c[a>>2]=c[s>>2];c[a+4>>2]=c[s+4>>2];c[a+8>>2]=c[s+8>>2];c[a+12>>2]=c[s+12>>2];i=r;return}function Ss(b){b=b|0;var d=0,e=0,f=0,g=0;d=0;do{e=c[14274]|0;if((e-d|0)<1024){f=e+1024|0;c[14274]=f;f=cq(c[14275]|0,f)|0;c[14275]=f;e=c[14274]|0}else f=c[14275]|0;e=yz(f+d|0,e-d|0,b)|0;if(!e){g=6;break}d=(pA(e)|0)+d|0;e=c[14275]|0}while((a[e+(d+-1)>>0]|0)!=10);if((g|0)==6)e=c[14275]|0;return ((d|0)>0?e:0)|0}function Ts(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+8|0;f=h;do if((b|0)!=0?(a[b>>0]|0)!=0:0){e=c[13357]|0;if(!e){d=c[13356]|0;e=c[14277]|0;if((c[14276]|0)==(d|0))d=e;else{if(e){pB(c[e>>2]|0);pB(c[14277]|0);c[14277]=0;d=c[13356]|0}c[14276]=d;if(!d)break;if(!(a[d>>0]|0))break;d=st(d)|0;c[14277]=d}if(!((a[b>>0]|0)!=47&(d|0)!=0))break;b=tt(d,c[14278]|0,b)|0;break}d=c[13355]|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){if(!(c[14276]|0)){c[14277]=st(d)|0;d=c[13355]|0;c[14276]=d}e=uA(b,47)|0;e=(e|0)==0?b:e+1|0;f=uA(e,92)|0;f=(f|0)==0?e:f+1|0;e=uA(f,58)|0;e=(e|0)==0?f:e+1|0;if(!((a[131309]|0)==0|(e|0)==(b|0))){c[g>>2]=b;c[g+4>>2]=d;dj(0,131435,g)|0;a[131309]=0}b=tt(c[14277]|0,c[14278]|0,e)|0;break}if(a[131309]|0){c[f>>2]=e;dj(0,131310,f)|0;a[131309]=0;b=0}else b=0}else b=0;while(0);i=h;return b|0}function Us(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=c[d>>2]|0;a:do if(!f)f=0;else{h=(b|0)==0;g=f;f=0;do{if((!h?(a[b>>0]|0)==(a[g>>0]|0):0)?(lA(b,g)|0)==0:0)break a;f=f+1|0;g=c[d+(f<<2)>>2]|0}while((g|0)!=0)}while(0);return c[e+(f<<2)>>2]|0}function Vs(b,c){b=b|0;c=c|0;var d=0;if((b|0)!=0?(d=a[b>>0]|0,d<<24>>24!=0):0)if((hA(b,160740)|0)!=0?(hA(b,131588)|0)!=0:0)if((hA(b,131591)|0)!=0?(hA(b,131596)|0)!=0:0){if(((d<<24>>24)+-48|0)>>>0<10)c=(Yz(b)|0)&255}else c=1;else c=0;return c|0}function Ws(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0.0;y=i;i=i+80|0;x=y+16|0;w=y;s=c[b+4>>2]|0;t=c[b>>2]|0;v=+h[d>>3];u=d+8|0;f=+h[u>>3];if((s|0)>0){e=1.e+38;d=-1;b=-1;r=0;do{q=c[t+(r*48|0)>>2]|0;p=c[t+(r*48|0)+4>>2]|0;if((p|0)>0){n=0;do{m=+h[q+(n<<4)>>3]-v;o=+h[q+(n<<4)+8>>3]-f;o=m*m+o*o;z=(b|0)==-1|o<e;e=z?o:e;b=z?n:b;d=z?r:d;n=n+1|0}while((n|0)!=(p|0))}r=r+1|0}while((r|0)<(s|0))}else{d=-1;b=-1}z=c[t+(d*48|0)>>2]|0;b=(((b|0)==((c[t+(d*48|0)+4>>2]|0)+-1|0))<<31>>31)+b|0;b=b-((b|0)%3|0)|0;o=+h[z+(b<<4)>>3];h[x>>3]=o;j=+h[z+(b<<4)+8>>3];h[x+8>>3]=j;t=b+1|0;h[x+16>>3]=+h[z+(t<<4)>>3];h[x+24>>3]=+h[z+(t<<4)+8>>3];t=b+2|0;h[x+32>>3]=+h[z+(t<<4)>>3];h[x+40>>3]=+h[z+(t<<4)+8>>3];b=b+3|0;e=+h[z+(b<<4)>>3];h[x+48>>3]=e;g=+h[z+(b<<4)+8>>3];h[x+56>>3]=g;o=o-v;j=j-f;j=o*o+j*j;e=e-v;g=g-f;g=e*e+g*g;Rs(w,x,3,.5,0,0);f=+h[w>>3];b=w+8|0;e=+h[b>>3];a:do if(!(+N(+(j-g))<1.0)){o=+h[u>>3];m=.5;k=1.0;l=0.0;do{if(+N(+(k-l))<1.0e-05)break a;z=j<g;A=f-v;f=e-o;f=A*A+f*f;j=z?j:f;g=z?f:g;l=z?l:m;k=z?m:k;m=(l+k)*.5;Rs(w,x,3,m,0,0);f=+h[w>>3];e=+h[b>>3]}while(!(+N(+(j-g))<1.0))}while(0);h[a>>3]=f;h[a+8>>3]=e;i=y;return}function Xs(b){b=b|0;var e=0,f=0,g=0,i=0,j=0,k=0.0,l=0,m=0;k=+Hs(b,c[13377]|0,.75,.01);l=b+16|0;h[(c[l>>2]|0)+32>>3]=k;k=+Hs(b,c[13376]|0,.5,.02);h[(c[l>>2]|0)+40>>3]=k;e=c[13378]|0;j=(b|0)!=0;if(j&(e|0)!=0){e=Aj(b,e)|0;if(!e)g=4;else g=3}else{e=131600;g=3}if((g|0)==3)if(!(a[e>>0]|0))g=4;if((g|0)==4)e=131600;i=nr(e,b)|0;c[(c[l>>2]|0)+8>>2]=i;i=Aj(b,c[13393]|0)|0;k=+Hs(b,c[13389]|0,14.0,1.0);e=c[13390]|0;if(j&(e|0)!=0){e=Aj(b,e)|0;if(!e)g=8;else g=7}else{e=131608;g=7}if((g|0)==7)if(!(a[e>>0]|0))g=8;if((g|0)==8)e=131608;f=c[13391]|0;if(j&(f|0)!=0){f=Aj(b,f)|0;if(!f)g=12;else g=11}else{f=160746;g=11}if((g|0)==11)if(!(a[f>>0]|0))g=12;if((g|0)==12)f=160746;g=(Ll(i)|0)!=0;j=(kr(b)|0)==2;g=Qp(b,i,(j?4:0)|(g?2:0),k,e,f)|0;c[(c[l>>2]|0)+104>>2]=g;g=c[13394]|0;if(((g|0)!=0?(m=Aj(b,g)|0,(m|0)!=0):0)?(a[m>>0]|0)!=0:0){j=(Ll(m)|0)!=0;m=Qp(b,m,j?2:0,k,e,f)|0;c[(c[l>>2]|0)+108>>2]=m;m=(c[(gl(b)|0)+16>>2]|0)+113|0;a[m>>0]=d[m>>0]|16}j=(Gs(b,c[13397]|0,0,0)|0)&255;m=c[l>>2]|0;a[m+144>>0]=j;zb[c[c[(c[m+8>>2]|0)+4>>2]>>2]&127](b);return}function Ys(b){b=b|0;var e=0,f=0,g=0,j=0,k=0.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;x=i;i=i+112|0;p=x+96|0;r=x+80|0;v=x+40|0;w=x;u=b+48|0;s=gl(c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0)|0;m=p+8|0;c[m>>2]=0;q=r+8|0;c[q>>2]=0;e=c[13428]|0;if(((e|0)!=0?(g=Aj(b,e)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0){ut(b,p);j=(Ll(g)|0)!=0;k=+h[p>>3];f=c[m>>2]|0;e=c[p+12>>2]|0;j=Qp(b,g,j?2:0,k,f,e)|0;l=b+16|0;g=c[l>>2]|0;c[g+96>>2]=j;j=(c[s+16>>2]|0)+113|0;a[j>>0]=d[j>>0]|1;j=c[13438]|0;if(!j)j=160740;else{j=Aj(b,j)|0;g=c[l>>2]|0}a[g+114>>0]=Vs(j,0)|0;l=1}else{e=0;k=0.0;f=0;l=0}g=c[13429]|0;if(((g|0)!=0?(n=Aj(b,g)|0,(n|0)!=0):0)?(a[n>>0]|0)!=0:0){if(!f){ut(b,p);k=+h[p>>3];f=c[m>>2]|0;e=c[p+12>>2]|0}m=(Ll(n)|0)!=0;n=Qp(b,n,m?2:0,k,f,e)|0;c[(c[b+16>>2]|0)+108>>2]=n;n=(c[s+16>>2]|0)+113|0;a[n>>0]=d[n>>0]|32}e=c[13443]|0;if(((e|0)!=0?(o=Aj(b,e)|0,(o|0)!=0):0)?(a[o>>0]|0)!=0:0){vt(b,p,r);n=(Ll(o)|0)!=0;k=+h[r>>3];f=c[q>>2]|0;e=c[r+12>>2]|0;o=Qp(b,o,n?2:0,k,f,e)|0;c[(c[b+16>>2]|0)+100>>2]=o;o=(c[s+16>>2]|0)+113|0;a[o>>0]=d[o>>0]|2}else{e=0;k=0.0;f=0}g=c[13444]|0;if(((g|0)!=0?(t=Aj(b,g)|0,(t|0)!=0):0)?(a[t>>0]|0)!=0:0){if(!f){vt(b,p,r);k=+h[r>>3];f=c[q>>2]|0;e=c[r+12>>2]|0}r=(Ll(t)|0)!=0;t=Qp(b,t,r?2:0,k,f,e)|0;c[(c[b+16>>2]|0)+104>>2]=t;t=(c[s+16>>2]|0)+113|0;a[t>>0]=d[t>>0]|4}e=zj(b,134905)|0;e=(e|0)!=0?e:164137;if(a[e>>0]|0)a[(c[(c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0)+16>>2]|0)+145>>0]=1;j=b+16|0;g=(c[j>>2]|0)+16|0;f=c[((c[b>>2]&3|0)==3?b:u)+40>>2]|0;wt(v,c[(c[(c[(c[f+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,f,e);e=v;f=g+40|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));if((xt(b,c[13450]|0)|0)<<24>>24)a[(c[j>>2]|0)+46>>0]=0;e=zj(b,134914)|0;e=(e|0)!=0?e:164137;if(!(a[e>>0]|0))f=b+-48|0;else{f=b+-48|0;a[(c[(c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0)+16>>2]|0)+145>>0]=1}g=(c[j>>2]|0)+56|0;f=c[((c[b>>2]&3|0)==2?b:f)+40>>2]|0;wt(w,c[(c[(c[(c[f+16>>2]|0)+8>>2]|0)+4>>2]|0)+8>>2]|0,f,e);e=w;f=g+40|0;do{c[g>>2]=c[e>>2];g=g+4|0;e=e+4|0}while((g|0)<(f|0));if((xt(b,c[13451]|0)|0)<<24>>24)a[(c[j>>2]|0)+86>>0]=0;i=x;return l|0}function Zs(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0,k=0,l=0,m=0.0,n=0;l=c[b+8>>2]|0;k=c[b+4>>2]|0;j=c[b+44>>2]|0;k=_((k|0)>1?k+-1|0:0,l)|0;d=+h[j+(k<<4)>>3];i=+h[j+(k<<4)+8>>3];if((l|0)>1){g=d;f=i;e=d;d=i;b=1;do{n=b+k|0;m=+h[j+(n<<4)>>3];g=g<m?g:m;i=+h[j+(n<<4)+8>>3];f=f<i?f:i;e=e>m?e:m;d=d>i?d:i;b=b+1|0}while((b|0)!=(l|0))}else{g=d;f=i;e=d;d=i}h[a>>3]=g;h[a+8>>3]=f;h[a+16>>3]=e;h[a+24>>3]=d;return}function _s(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0,i=0.0,j=0.0,l=0,m=0.0,n=0.0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0.0;b=c[b+16>>2]|0;s=c[b+116>>2]&1;o=b+16|0;a[k>>0]=a[o>>0];a[k+1>>0]=a[o+1>>0];a[k+2>>0]=a[o+2>>0];a[k+3>>0]=a[o+3>>0];a[k+4>>0]=a[o+4>>0];a[k+5>>0]=a[o+5>>0];a[k+6>>0]=a[o+6>>0];a[k+7>>0]=a[o+7>>0];p=+h[k>>3];l=b+24|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];m=+h[k>>3];g=b+32|0;a[k>>0]=a[g>>0];a[k+1>>0]=a[g+1>>0];a[k+2>>0]=a[g+2>>0];a[k+3>>0]=a[g+3>>0];a[k+4>>0]=a[g+4>>0];a[k+5>>0]=a[g+5>>0];a[k+6>>0]=a[g+6>>0];a[k+7>>0]=a[g+7>>0];i=+h[k>>3];b=b+40|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];e=+h[k>>3];t=+h[d+56>>3];r=+h[d+64>>3];s=(s|0)==0;f=+h[d+24>>3];n=+h[d+32>>3];j=(s?f:n)*.5;q=t-j;j=t+j;f=(s?n:f)*.5;n=r-f;f=r+f;h[o>>3]=q<p?q:p;h[l>>3]=n<m?n:m;h[g>>3]=j>i?j:i;h[b>>3]=f>e?f:e;return}function $s(b){b=b|0;var d=0.0,e=0.0,f=0,g=0.0,i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0;if(!((ek(b)|0)==0?(c[(c[b+16>>2]|0)+180>>2]|0)==0:0)){f=Rk(b)|0;s=b+16|0;if(!f){d=-2147483647.0;i=-2147483647.0;g=2147483647.0;e=2147483647.0}else{e=2147483647.0;g=2147483647.0;i=-2147483647.0;d=-2147483647.0;do{j=c[f+16>>2]|0;r=c[j+132>>2]|0;x=+h[r>>3]*72.0;w=+h[r+8>>3]*72.0;t=(+h[j+88>>3]+ +h[j+96>>3])*.5;k=+h[j+80>>3]*.5;v=x-t;u=w-k;t=x+t;k=w+k;e=e<v?e:v;g=g<u?g:u;i=i>t?i:t;d=d>k?d:k;j=c[j+108>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];r=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(r?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(r?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}j=Lj(b,f)|0;if(j){r=j;do{q=c[r+16>>2]|0;j=c[q+8>>2]|0;if(j){p=c[j+4>>2]|0;if((p|0)>0){o=c[j>>2]|0;n=0;do{m=c[o+(n*48|0)+4>>2]|0;if((m|0)>0){l=c[o+(n*48|0)>>2]|0;j=0;do{w=+h[l+(j<<4)>>3];x=+h[l+(j<<4)+8>>3];e=e<w?e:w;g=g<x?g:x;i=i>w?i:w;d=d>x?d:x;j=j+1|0}while((j|0)<(m|0))}n=n+1|0}while((n|0)<(p|0))}j=c[q+96>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];p=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(p?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(p?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}j=c[q+100>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];p=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(p?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(p?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}j=c[q+104>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];p=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(p?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(p?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}j=c[q+108>>2]|0;if((j|0)!=0?(a[j+81>>0]|0)!=0:0){t=+h[j+56>>3];w=+h[j+64>>3];q=(c[(c[s>>2]|0)+116>>2]&1|0)==0;k=+h[j+24>>3];x=+h[j+32>>3];v=(q?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(q?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}}r=Nj(b,r)|0}while((r|0)!=0)}f=Sk(b,f)|0}while((f|0)!=0)}m=c[s>>2]|0;l=c[m+180>>2]|0;if((l|0)>=1){j=c[m+184>>2]|0;f=1;while(1){s=c[(c[j+(f<<2)>>2]|0)+16>>2]|0;u=+h[s+16>>3];v=+h[s+24>>3];w=+h[s+32>>3];x=+h[s+40>>3];e=e<u?e:u;g=g<v?g:v;i=i>w?i:w;d=d>x?d:x;if((f|0)<(l|0))f=f+1|0;else break}}f=c[m+12>>2]|0;if((f|0)!=0?(a[f+81>>0]|0)!=0:0){t=+h[f+56>>3];w=+h[f+64>>3];s=(c[m+116>>2]&1|0)==0;k=+h[f+24>>3];x=+h[f+32>>3];v=(s?k:x)*.5;u=t-v;v=t+v;e=u<e?u:e;i=v>i?v:i;k=(s?x:k)*.5;x=w-k;k=w+k;g=x<g?x:g;if(k>d)d=k}h[m+16>>3]=e;h[m+24>>3]=g;h[m+32>>3]=i;h[m+40>>3]=d}return}function at(a){a=a|0;if((c[a+60>>2]|0)==(a|0))a=1;else a=(qA(ok(a)|0,131620,7)|0)==0;return a&1|0}function bt(a){a=a|0;var b=0;b=Vi(57116,c[12573]|0)|0;yt(a,b);return b|0}function ct(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=am(b,131628,1)|0;xl(h,160878,280,1)|0;d=Rk(b)|0;if(d)do{e=Lj(b,d)|0;if(e)do{g=c[e>>2]&3;f=c[((g|0)==3?e:e+48|0)+40>>2]|0;g=c[((g|0)==2?e:e+-48|0)+40>>2]|0;if(!((a[(c[f+16>>2]|0)+118>>0]|0)==0?(a[(c[g+16>>2]|0)+118>>0]|0)==0:0)){f=At(f,h)|0;f=zt(e,f,At(g,h)|0)|0;g=c[e+16>>2]|0;i=g+8|0;f=c[f+16>>2]|0;c[f+8>>2]=c[i>>2];c[i>>2]=0;i=g+96|0;c[f+96>>2]=c[i>>2];c[i>>2]=0;i=g+108|0;c[f+108>>2]=c[i>>2];c[i>>2]=0;i=g+100|0;c[f+100>>2]=c[i>>2];c[i>>2]=0;g=g+104|0;c[f+104>>2]=c[g>>2];c[g>>2]=0;pt(e)}e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);d=Rk(h)|0;if(d)do{i=d;d=Sk(h,d)|0;dt(i);fl(b,i)|0}while((d|0)!=0);dk(h)|0;return}function dt(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;b=c[e>>2]|0;d=c[b+132>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+8>>2]|0;if(d){zb[c[(c[d+4>>2]|0)+4>>2]&127](a);b=c[e>>2]|0}Sp(c[b+104>>2]|0);Sp(c[(c[e>>2]|0)+108>>2]|0);yl(a,160855)|0;return}function et(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=rj(a,b,c,0)|0;if(!e)e=rj(a,b,c,d)|0;return e|0}function ft(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+1072|0;m=p+8|0;l=p;k=p+32|0;o=p+16|0;c[k>>2]=b;if((c[14792]|0)!=(d|0)){c[14792]=d;a[131643]=0}gj(o,1024,p+40|0);e=b+1|0;c[k>>2]=e;b=a[b>>0]|0;n=o+4|0;j=o+8|0;if(b<<24>>24)do{a:do if((b&255)<192){if(b<<24>>24==38){f=Dt(k)|0;if(!f)b=38;else{if(f>>>0<127){b=f&255;break}b=c[n>>2]|0;e=b>>>0>=(c[j>>2]|0)>>>0;if(f>>>0<2047){if(e){hj(o,1)|0;b=c[n>>2]|0}c[n>>2]=b+1;a[b>>0]=f>>>6|192;b=(f&63|128)&255;break}if(e){hj(o,1)|0;b=c[n>>2]|0}c[n>>2]=b+1;a[b>>0]=f>>>12|224;b=c[n>>2]|0;if(b>>>0>=(c[j>>2]|0)>>>0){hj(o,1)|0;b=c[n>>2]|0}c[n>>2]=b+1;a[b>>0]=f>>>6&63|128;b=(f&63|128)&255}}}else{if((b&255)>=224)if((b&255)>=240)if((b&255)<248)h=3;else{if(!(a[131643]|0)){c[l>>2]=ok(d)|0;dj(0,131644,l)|0;a[131643]=1}b=Ct(b,o)|0;break}else h=2;else h=1;g=0;while(1){if((a[e>>0]&-64)<<24>>24!=-128)break;f=c[n>>2]|0;if(f>>>0>=(c[j>>2]|0)>>>0){hj(o,1)|0;f=c[n>>2]|0}c[n>>2]=f+1;a[f>>0]=b;b=e;e=e+1|0;c[k>>2]=e;b=a[b>>0]|0;g=g+1|0;if((g|0)>=(h|0))break a}if(!(a[131643]|0)){g=ok(d)|0;c[m>>2]=h+1;c[m+4>>2]=g;dj(0,131765,m)|0;a[131643]=1}b=Ct(b,o)|0}while(0);e=c[n>>2]|0;if(e>>>0>=(c[j>>2]|0)>>>0){hj(o,1)|0;e=c[n>>2]|0}c[n>>2]=e+1;a[e>>0]=b;b=c[k>>2]|0;e=b+1|0;c[k>>2]=e;b=a[b>>0]|0}while(b<<24>>24!=0);b=c[n>>2]|0;if(b>>>0>=(c[j>>2]|0)>>>0){hj(o,1)|0;b=c[n>>2]|0}a[b>>0]=0;m=c[o>>2]|0;c[n>>2]=m;n=oA(m)|0;kj(o);i=p;return n|0}function gt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+1056|0;h=l+16|0;k=l;gj(k,1024,l+24|0);c[h>>2]=b+1;b=a[b>>0]|0;j=k+4|0;g=k+8|0;if(b<<24>>24)do{d=b&255;if(b<<24>>24==38){b=Dt(h)|0;if(!b){b=38;f=5}else f=4}else{b=d;f=4}do if((f|0)==4){f=0;if(b>>>0<127)f=5;else{d=c[j>>2]|0;e=d>>>0>=(c[g>>2]|0)>>>0;if(b>>>0<2047){if(e){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>6|192;d=c[j>>2]|0;if(d>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b&63|128;break}if(e){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>12|224;d=c[j>>2]|0;if(d>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b>>>6&63|128;d=c[j>>2]|0;if(d>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b&63|128}}while(0);if((f|0)==5){d=c[j>>2]|0;if(d>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=b}b=c[h>>2]|0;c[h>>2]=b+1;b=a[b>>0]|0}while(b<<24>>24!=0);b=c[j>>2]|0;if(b>>>0>=(c[g>>2]|0)>>>0){hj(k,1)|0;b=c[j>>2]|0}a[b>>0]=0;h=c[k>>2]|0;c[j>>2]=h;j=oA(h)|0;kj(k);i=l;return j|0}function ht(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+1040|0;j=k;gj(j,1024,k+16|0);e=a[b>>0]|0;h=j+4|0;g=j+8|0;if(e<<24>>24){f=e;while(1){e=b+1|0;if((f&255)<127){b=c[h>>2]|0;if(b>>>0>=(c[g>>2]|0)>>>0){hj(j,1)|0;b=c[h>>2]|0}c[h>>2]=b+1;a[b>>0]=f}else{f=((d[e>>0]|0)&63|(f&255)<<6)&255;e=c[h>>2]|0;if(e>>>0>=(c[g>>2]|0)>>>0){hj(j,1)|0;e=c[h>>2]|0}c[h>>2]=e+1;a[e>>0]=f;e=b+2|0}f=a[e>>0]|0;if(!(f<<24>>24))break;else b=e}}e=c[h>>2]|0;if(e>>>0>=(c[g>>2]|0)>>>0){hj(j,1)|0;e=c[h>>2]|0}a[e>>0]=0;g=c[j>>2]|0;c[h>>2]=g;h=oA(g)|0;kj(j);i=k;return h|0}function it(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,j=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0.0;p=i;i=i+48|0;o=p+16|0;m=p+32|0;n=p;f=+h[d+16>>3];e=c[b+16>>2]|0;if(((f>=+h[e+48>>3]?(l=+h[d>>3],+h[e+64>>3]>=l):0)?(g=+h[d+24>>3],g>=+h[e+56>>3]):0)?(j=+h[d+8>>3],+h[e+72>>3]>=j):0){d=e+16|0;a[k>>0]=a[d>>0];a[k+1>>0]=a[d+1>>0];a[k+2>>0]=a[d+2>>0];a[k+3>>0]=a[d+3>>0];a[k+4>>0]=a[d+4>>0];a[k+5>>0]=a[d+5>>0];a[k+6>>0]=a[d+6>>0];a[k+7>>0]=a[d+7>>0];q=+h[k>>3];d=e+24|0;a[k>>0]=a[d>>0];a[k+1>>0]=a[d+1>>0];a[k+2>>0]=a[d+2>>0];a[k+3>>0]=a[d+3>>0];a[k+4>>0]=a[d+4>>0];a[k+5>>0]=a[d+5>>0];a[k+6>>0]=a[d+6>>0];a[k+7>>0]=a[d+7>>0];j=+h[k>>3]-(g+j)*.5;h[n>>3]=q-(l+f)*.5;h[n+8>>3]=j;c[m>>2]=b;c[m+4>>2]=0;e=c[(c[(c[e+8>>2]|0)+4>>2]|0)+12>>2]|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];e=Lb[e&63](m,o)|0}else e=0;i=p;return e|0}function jt(b,c){b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0;g=+h[b+24>>3]*.5;i=+h[b+32>>3]*.5;j=b+56|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];f=+h[k>>3];b=b+64|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];d=+h[k>>3];e=d-i;d=i+d;if((+h[c+16>>3]>=f-g?g+f>=+h[c>>3]:0)?+h[c+24>>3]>=e:0)b=d>=+h[c+8>>3]&1;else b=0;return b|0}function kt(b,d){b=b|0;d=d|0;var e=0,f=0.0,g=0.0,j=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.0,D=0.0,E=0,F=0.0,G=0.0,H=0.0;E=i;i=i+176|0;y=E+144|0;t=E+128|0;s=E+112|0;z=E+96|0;A=E+80|0;x=E+48|0;u=E;v=b+16|0;b=c[v>>2]|0;r=c[b+8>>2]|0;do if((((((r|0)!=0?(q=r+16|0,a[k>>0]=a[q>>0],a[k+1>>0]=a[q+1>>0],a[k+2>>0]=a[q+2>>0],a[k+3>>0]=a[q+3>>0],a[k+4>>0]=a[q+4>>0],a[k+5>>0]=a[q+5>>0],a[k+6>>0]=a[q+6>>0],a[k+7>>0]=a[q+7>>0],g=+h[k>>3],q=r+24|0,a[k>>0]=a[q>>0],a[k+1>>0]=a[q+1>>0],a[k+2>>0]=a[q+2>>0],a[k+3>>0]=a[q+3>>0],a[k+4>>0]=a[q+4>>0],a[k+5>>0]=a[q+5>>0],a[k+6>>0]=a[q+6>>0],a[k+7>>0]=a[q+7>>0],F=+h[k>>3],q=r+32|0,a[k>>0]=a[q>>0],a[k+1>>0]=a[q+1>>0],a[k+2>>0]=a[q+2>>0],a[k+3>>0]=a[q+3>>0],a[k+4>>0]=a[q+4>>0],a[k+5>>0]=a[q+5>>0],a[k+6>>0]=a[q+6>>0],a[k+7>>0]=a[q+7>>0],f=+h[k>>3],F>=+h[d>>3]):0)?(q=r+8|0,a[k>>0]=a[q>>0],a[k+1>>0]=a[q+1>>0],a[k+2>>0]=a[q+2>>0],a[k+3>>0]=a[q+3>>0],a[k+4>>0]=a[q+4>>0],a[k+5>>0]=a[q+5>>0],a[k+6>>0]=a[q+6>>0],a[k+7>>0]=a[q+7>>0],+h[d+16>>3]>=+h[k>>3]):0)?f>=+h[d+8>>3]:0)?+h[d+24>>3]>=g:0)?(w=r+4|0,(c[w>>2]|0)>0):0){l=u+4|0;m=u+8|0;n=u+12|0;o=u+32|0;p=u+16|0;q=0;a:while(1){e=(c[r>>2]|0)+(q*48|0)|0;c[x>>2]=c[d>>2];c[x+4>>2]=c[d+4>>2];c[x+8>>2]=c[d+8>>2];c[x+12>>2]=c[d+12>>2];c[x+16>>2]=c[d+16>>2];c[x+20>>2]=c[d+20>>2];c[x+24>>2]=c[d+24>>2];c[x+28>>2]=c[d+28>>2];b=u;j=b+48|0;do{a[b>>0]=a[e>>0]|0;b=b+1|0;e=e+1|0}while((b|0)<(j|0));b=c[l>>2]|0;if(!b){e=9;break}e=c[u>>2]|0;c[A>>2]=c[e>>2];c[A+4>>2]=c[e+4>>2];c[A+8>>2]=c[e+8>>2];c[A+12>>2]=c[e+12>>2];b:do if((b|0)>1){j=e+16|0;c[z>>2]=c[j>>2];c[z+4>>2]=c[j+4>>2];c[z+8>>2]=c[j+8>>2];c[z+12>>2]=c[j+12>>2];c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];c[t>>2]=c[A>>2];c[t+4>>2]=c[A+4>>2];c[t+8>>2]=c[A+8>>2];c[t+12>>2]=c[A+12>>2];c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[y+16>>2]=c[x+16>>2];c[y+20>>2]=c[x+20>>2];c[y+24>>2]=c[x+24>>2];c[y+28>>2]=c[x+28>>2];if((Ep(s,t,y)|0)==-1)b=1;else{e=18;break a}while(1){c[A>>2]=c[z>>2];c[A+4>>2]=c[z+4>>2];c[A+8>>2]=c[z+8>>2];c[A+12>>2]=c[z+12>>2];b=b+1|0;if((b|0)>=(c[l>>2]|0))break b;j=(c[u>>2]|0)+(b<<4)|0;c[z>>2]=c[j>>2];c[z+4>>2]=c[j+4>>2];c[z+8>>2]=c[j+8>>2];c[z+12>>2]=c[j+12>>2];c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];c[t>>2]=c[A>>2];c[t+4>>2]=c[A+4>>2];c[t+8>>2]=c[A+8>>2];c[t+12>>2]=c[A+12>>2];c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[y+16>>2]=c[x+16>>2];c[y+20>>2]=c[x+20>>2];c[y+24>>2]=c[x+24>>2];c[y+28>>2]=c[x+28>>2];if((Ep(s,t,y)|0)!=-1){e=18;break a}}}while(0);b=c[m>>2]|0;if((b|0)!=0?(j=c[u>>2]|0,c[s>>2]=c[p>>2],c[s+4>>2]=c[p+4>>2],c[s+8>>2]=c[p+8>>2],c[s+12>>2]=c[p+12>>2],c[t>>2]=c[j>>2],c[t+4>>2]=c[j+4>>2],c[t+8>>2]=c[j+8>>2],c[t+12>>2]=c[j+12>>2],c[y>>2]=c[x>>2],c[y+4>>2]=c[x+4>>2],c[y+8>>2]=c[x+8>>2],c[y+12>>2]=c[x+12>>2],c[y+16>>2]=c[x+16>>2],c[y+20>>2]=c[x+20>>2],c[y+24>>2]=c[x+24>>2],c[y+28>>2]=c[x+28>>2],(Et(s,t,b,y)|0)<<24>>24!=0):0){e=18;break}b=c[n>>2]|0;if((b|0)!=0?(j=(c[u>>2]|0)+((c[l>>2]|0)+-1<<4)|0,c[s>>2]=c[o>>2],c[s+4>>2]=c[o+4>>2],c[s+8>>2]=c[o+8>>2],c[s+12>>2]=c[o+12>>2],c[t>>2]=c[j>>2],c[t+4>>2]=c[j+4>>2],c[t+8>>2]=c[j+8>>2],c[t+12>>2]=c[j+12>>2],c[y>>2]=c[x>>2],c[y+4>>2]=c[x+4>>2],c[y+8>>2]=c[x+8>>2],c[y+12>>2]=c[x+12>>2],c[y+16>>2]=c[x+16>>2],c[y+20>>2]=c[x+20>>2],c[y+24>>2]=c[x+24>>2],c[y+28>>2]=c[x+28>>2],(Et(s,t,b,y)|0)<<24>>24!=0):0){e=18;break}q=q+1|0;if((q|0)>=(c[w>>2]|0)){e=20;break}}if((e|0)==9)Ia(131874,131274,1637,131882);else if((e|0)==18){B=1;break}else if((e|0)==20){b=c[v>>2]|0;e=21;break}}else e=21;while(0);do if((e|0)==21){b=c[b+96>>2]|0;if(((b|0)!=0?(g=+h[d>>3],H=+h[d+16>>3],F=+h[d+24>>3],G=+h[b+24>>3]*.5,C=+h[b+32>>3]*.5,B=b+56|0,a[k>>0]=a[B>>0],a[k+1>>0]=a[B+1>>0],a[k+2>>0]=a[B+2>>0],a[k+3>>0]=a[B+3>>0],a[k+4>>0]=a[B+4>>0],a[k+5>>0]=a[B+5>>0],a[k+6>>0]=a[B+6>>0],a[k+7>>0]=a[B+7>>0],f=+h[k>>3],B=b+64|0,a[k>>0]=a[B>>0],a[k+1>>0]=a[B+1>>0],a[k+2>>0]=a[B+2>>0],a[k+3>>0]=a[B+3>>0],a[k+4>>0]=a[B+4>>0],a[k+5>>0]=a[B+5>>0],a[k+6>>0]=a[B+6>>0],a[k+7>>0]=a[B+7>>0],D=+h[k>>3],!(!(H>=f-G)|!(G+f>=g)|!(F>=D-C))):0)?C+D>=+h[d+8>>3]:0){B=1;break}B=0}while(0);i=E;return B|0}function lt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;f=g;a:do if((b|0)!=0?(e=a[b>>0]|0,e<<24>>24!=0):0){do switch(e<<24>>24|0){case 48:{d=2;break a}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{d=10;break a}case 67:case 99:{e=b+1|0;if(!(hA(e,131897)|0)){d=4;break a}if(!(hA(e,131903)|0)){d=12;break a}break}case 70:case 102:{if(!(hA(b+1|0,131911)|0)){d=2;break a}break}case 76:case 108:{if(!(hA(b+1|0,131916)|0)){d=2;break a}break}case 78:case 110:{e=b+1|0;if(!(hA(e,131920)|0)){d=0;break a}if(!(hA(e,131924)|0)){d=2;break a}break}case 79:case 111:{if(!(hA(b+1|0,131926)|0)){d=8;break a}break}case 80:case 112:{if(!(hA(b+1|0,131931)|0)){d=6;break a}break}case 83:case 115:{if(!(hA(b+1|0,131939)|0)){d=10;break a}break}case 84:case 116:{if(!(hA(b+1|0,131945)|0)){d=10;break a}break}case 89:case 121:{if(!(hA(b+1|0,131949)|0)){d=10;break a}break}default:{}}while(0);c[f>>2]=b;dj(0,131952,f)|0}while(0);i=g;return d|0}function mt(d,f){d=d|0;f=f|0;var g=0;g=zj(d,131993)|0;if(g)if(!(a[g>>0]|0))f=0;else f=lt(g,f)|0;d=(c[d+16>>2]|0)+136|0;b[d>>1]=e[d>>1]|f;return}function nt(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0;n=e&1;o=e&2;if((c|0)!=2){f=+h[a>>3];j=+h[a+8>>3];if((c|0)<2){m=f;i=j;g=j}else{k=f;e=1;g=j;i=j;while(1){l=+h[a+(e<<4)>>3];m=+h[a+(e<<4)+8>>3];j=l<f?l:f;g=m<g?m:g;f=l>k?l:k;i=m>i?m:i;e=e+1|0;if((e|0)==(c|0)){m=f;f=j;break}else{k=f;f=j}}}}else{k=+h[a>>3];f=+h[a+16>>3]-k;l=+h[a+8>>3];g=+h[a+24>>3]-l;m=k+f;i=l+g;f=k-f;g=l-g}l=f+(m-f)*.5;k=g+(i-g)*.5;if(!n){i=i-k;j=d;f=+R(+j);j=+Q(+j);if(!o){g=-k-(k-g)*f;f=i*f-k}else{f=i*f;g=k+f;f=k-f}h[b+8>>3]=f;h[b+24>>3]=g;d=(m-l)*j;h[b>>3]=l-d;h[b+16>>3]=l+d}else{m=l-f;d=k-g;d=+O(+(m*m+d*d));h[b+8>>3]=(o|0)==0?-k:k;h[b>>3]=l;h[b+16>>3]=d*.25;h[b+24>>3]=d}return}function ot(a){a=a|0;var b=0,d=0;d=a+16|0;a=c[d>>2]|0;b=c[a+8>>2]|0;if(b){if((c[b+4>>2]|0)>0){a=b;b=0;do{pB(c[(c[a>>2]|0)+(b*48|0)>>2]|0);b=b+1|0;a=c[(c[d>>2]|0)+8>>2]|0}while((b|0)<(c[a+4>>2]|0))}else a=b;pB(c[a>>2]|0);pB(c[(c[d>>2]|0)+8>>2]|0);a=c[d>>2]|0}c[a+8>>2]=0;return}function pt(a){a=a|0;var b=0;b=a+16|0;pB(c[(c[b>>2]|0)+144>>2]|0);ot(a);Sp(c[(c[b>>2]|0)+96>>2]|0);Sp(c[(c[b>>2]|0)+108>>2]|0);Sp(c[(c[b>>2]|0)+100>>2]|0);Sp(c[(c[b>>2]|0)+104>>2]|0);yl(a,161165)|0;return}function qt(a,b){a=a|0;b=b|0;var d=0.0;a=c[a+16>>2]|0;if(!(b<<24>>24)){d=+h[a+32>>3]*72.0*.5;h[a+88>>3]=d;h[a+80>>3]=+h[a+40>>3]*72.0}else{d=+h[a+40>>3]*72.0*.5;h[a+88>>3]=d;h[a+80>>3]=+h[a+32>>3]*72.0}h[a+96>>3]=d;return}function rt(a,b){a=a|0;b=b|0;a=ub[c[a>>2]&31](a,b,512)|0;if(!a)a=0;else a=c[a+12>>2]|0;return a|0}function st(a){a=a|0;var b=0,d=0,e=0,f=0;f=0;e=xA(oA(a)|0,133477)|0;d=0;a=0;while(1){if(!d)d=aq((f<<2)+8|0)|0;else d=cq(d,(f<<2)+8|0)|0;b=f+1|0;c[d+(f<<2)>>2]=e;f=pA(e)|0;a=a>>>0>f>>>0?a:f;e=xA(0,133477)|0;if(!e)break;else f=b}c[d+(b<<2)>>2]=0;c[14278]=a;return d|0}function tt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h+16|0;f=h;e=c[14793]|0;b=rB(e,b+2+(pA(d)|0)|0)|0;c[14793]=b;e=c[a>>2]|0;a:do if(!e)b=0;else{c[f>>2]=e;c[f+4>>2]=133475;c[f+8>>2]=d;Oz(b,133468,f)|0;if(BA(c[14793]|0,4)|0)do{a=a+4|0;b=c[a>>2]|0;if(!b){b=0;break a}f=c[14793]|0;c[g>>2]=b;c[g+4>>2]=133475;c[g+8>>2]=d;Oz(f,133468,g)|0}while((BA(c[14793]|0,4)|0)!=0);b=c[14793]|0}while(0);i=h;return b|0}function ut(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;h[d>>3]=+Hs(b,c[13425]|0,14.0,1.0);e=c[13426]|0;g=(b|0)!=0;if(g&(e|0)!=0){e=Aj(b,e)|0;if(!e)f=4;else f=3}else{e=131608;f=3}if((f|0)==3)if(!(a[e>>0]|0))f=4;if((f|0)==4)e=131608;c[d+8>>2]=e;e=c[13427]|0;if(g&(e|0)!=0){e=Aj(b,e)|0;if(!e)f=8;else f=7}else{e=160746;f=7}if((f|0)==7)if(!(a[e>>0]|0))f=8;if((f|0)==8)e=160746;c[d+12>>2]=e;return}function vt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0;f=d+8|0;if(!(c[f>>2]|0))ut(b,d);h[e>>3]=+Hs(b,c[13445]|0,+h[d>>3],1.0);g=c[13446]|0;i=c[f>>2]|0;j=(b|0)!=0;if(j&(g|0)!=0)f=Aj(b,g)|0;else f=i;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))f=i;c[e+8>>2]=f;f=c[13447]|0;g=c[d+12>>2]|0;if(j&(f|0)!=0)f=Aj(b,f)|0;else f=g;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))f=g;c[e+12>>2]=f;return}function wt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+128|0;l=m+80|0;h=m+40|0;g=m;if((f|0)!=0?(k=jA(f,58)|0,(k|0)!=0):0){a[k>>0]=0;g=k+1|0;Kb[d&31](h,e,f,g);j=l;e=h;d=j+36|0;do{c[j>>2]=c[e>>2];j=j+4|0;e=e+4|0}while((j|0)<(d|0));a[k>>0]=58}else{Kb[d&31](g,e,f,0);j=l;e=g;d=j+36|0;do{c[j>>2]=c[e>>2];j=j+4|0;e=e+4|0}while((j|0)<(d|0));g=f}j=b;e=l;d=j+36|0;do{c[j>>2]=c[e>>2];j=j+4|0;e=e+4|0}while((j|0)<(d|0));c[b+36>>2]=g;i=m;return}function xt(b,c){b=b|0;c=c|0;var d=0;if(((c|0)!=0?(d=Aj(b,c)|0,(d|0)!=0):0)?(a[d>>0]|0)!=0:0)d=(Vs(d,0)|0)<<24>>24==0&1;else d=0;return d|0}function yt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;g=h;f=a+16|0;a=c[f>>2]|0;if((c[a+180>>2]|0)>=1){e=1;while(1){d=c[(c[a+184>>2]|0)+(e<<2)>>2]|0;a=ok(d)|0;if(!(ub[c[b>>2]&31](b,a,512)|0)){j=$p(16)|0;c[j+8>>2]=a;c[j+12>>2]=d;ub[c[b>>2]&31](b,j,1)|0}else{c[g>>2]=a;dj(0,133416,g)|0}yt(d,b);a=c[f>>2]|0;if((e|0)>=(c[a+180>>2]|0))break;else e=e+1|0}}i=h;return}function zt(a,b,c){a=a|0;b=b|0;c=c|0;b=Sj(gl(b)|0,b,c,0,1)|0;xl(b,161165,176,1)|0;Ej(a,b)|0;return b|0}function At(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=gl(b)|0;if(a[(c[b+16>>2]|0)+118>>0]|0){Wk(d,b,1)|0;b=jA(ok(b)|0,58)|0;if(!b)Ia(134567,131274,1225,133411);d=b+1|0;b=Xk(f,d,0)|0;if(!b){b=Xk(f,d,1)|0;xl(b,160855,304,1)|0;d=sj(f,1,0)|0;if(d)do{g=Aj(b,d)|0;e=c[d+12>>2]|0;if((g|0)!=(e|0))Cj(b,d,e)|0;d=sj(f,1,d)|0}while((d|0)!=0)}}return b|0}function Bt(a,b){a=a|0;b=b|0;return lA(c[a>>2]|0,c[b>>2]|0)|0}function Ct(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;k=l;a[k>>0]=b;a[k+1>>0]=0;k=gt(k)|0;b=pA(k)|0;if((b|0)>1){g=d+4|0;h=d+8|0;j=b+-1|0;f=k;while(1){b=b+-1|0;e=c[g>>2]|0;if(e>>>0>=(c[h>>2]|0)>>>0){hj(d,1)|0;e=c[g>>2]|0}m=a[f>>0]|0;c[g>>2]=e+1;a[e>>0]=m;if((b|0)<=1)break;else f=f+1|0}b=k+j|0}else b=k;m=a[b>>0]|0;pB(k);i=l;return m|0}function Dt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;k=l;j=l+8|0;d=c[b>>2]|0;a:do if((a[d>>0]|0)==35){e=a[d+1>>0]|0;b:do if((e&-33)<<24>>24!=88){f=e&255;if((e+-48&255)<10){g=1;e=0;do{e=(e*10|0)+-48+f|0;g=g+1|0;if((g|0)>=8)break b;k=a[d+g>>0]|0;f=k&255}while((k+-48&255)<10)}else{g=1;e=0}}else{h=2;e=0;while(1){g=a[d+h>>0]|0;f=g&255;do if((g+-65&255)<6)f=f+-55|0;else{if((g+-97&255)<6){f=f+-87|0;break}if((g+-48&255)>=10){g=h;break b}f=f+-48|0}while(0);e=f+(e<<4)|0;g=h+1|0;if((g|0)<8)h=g;else break}}while(0);if((f|0)==59)d=d+(g+1)|0;else e=0}else{c[k>>2]=j;f=a[d>>0]|0;c:do switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=1;e=j;break}default:{e=j+1|0;a[j>>0]=f;f=a[d+1>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=2;break c}default:{}}g=j+2|0;a[e>>0]=f;f=a[d+2>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=3;e=g;break c}default:{}}e=j+3|0;a[g>>0]=f;f=a[d+3>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=4;break c}default:{}}g=j+4|0;a[e>>0]=f;f=a[d+4>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=5;e=g;break c}default:{}}e=j+5|0;a[g>>0]=f;f=a[d+5>>0]|0;switch(f<<24>>24){case 0:{e=0;break a}case 59:{h=6;break c}default:{}}g=j+6|0;a[e>>0]=f;e=a[d+6>>0]|0;switch(e<<24>>24){case 0:{e=0;break a}case 59:{h=7;e=g;break c}default:{}}f=j+7|0;a[g>>0]=e;e=a[d+7>>0]|0;switch(e<<24>>24){case 0:{e=0;break a}case 59:{h=8;e=f;break c}default:{}}a[f>>0]=e;e=0;break a}}while(0);a[e>>0]=0;e=Zz(k,57152,252,8,31)|0;if(!e)e=0;else{e=c[e+4>>2]|0;d=d+h|0}}while(0);c[b>>2]=d;i=l;return e|0}function Et(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+160|0;l=m+144|0;k=m+128|0;n=m+96|0;f=m+64|0;g=m+32|0;j=m;o=+h[e+16>>3];c[k>>2]=c[a>>2];c[k+4>>2]=c[a+4>>2];c[k+8>>2]=c[a+8>>2];c[k+12>>2]=c[a+12>>2];c[l>>2]=c[b>>2];c[l+4>>2]=c[b+4>>2];c[l+8>>2]=c[b+8>>2];c[l+12>>2]=c[b+12>>2];Fo(n,k,l,1.0,d);if(((o>=+h[n>>3]?(c[k>>2]=c[a>>2],c[k+4>>2]=c[a+4>>2],c[k+8>>2]=c[a+8>>2],c[k+12>>2]=c[a+12>>2],c[l>>2]=c[b>>2],c[l+4>>2]=c[b+4>>2],c[l+8>>2]=c[b+8>>2],c[l+12>>2]=c[b+12>>2],Fo(f,k,l,1.0,d),+h[f+16>>3]>=+h[e>>3]):0)?(o=+h[e+24>>3],c[k>>2]=c[a>>2],c[k+4>>2]=c[a+4>>2],c[k+8>>2]=c[a+8>>2],c[k+12>>2]=c[a+12>>2],c[l>>2]=c[b>>2],c[l+4>>2]=c[b+4>>2],c[l+8>>2]=c[b+8>>2],c[l+12>>2]=c[b+12>>2],Fo(g,k,l,1.0,d),o>=+h[g+8>>3]):0)?(c[k>>2]=c[a>>2],c[k+4>>2]=c[a+4>>2],c[k+8>>2]=c[a+8>>2],c[k+12>>2]=c[a+12>>2],c[l>>2]=c[b>>2],c[l+4>>2]=c[b+4>>2],c[l+8>>2]=c[b+8>>2],c[l+12>>2]=c[b+12>>2],Fo(j,k,l,1.0,d),+h[j+24>>3]>=+h[e+8>>3]):0)f=1;else f=0;i=m;return f|0}function Ft(a,b,c){a=a|0;b=b|0;c=c|0;pB(b);return}function Gt(e,f){e=e|0;f=f|0;var g=0,j=0,l=0,m=0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=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,ea=0,fa=0,ja=0,la=0,ma=0,oa=0,wa=0,xa=0;xa=i;i=i+240|0;la=xa+216|0;ja=xa+200|0;fa=xa+168|0;ea=xa+160|0;ca=xa+152|0;ba=xa+144|0;aa=xa+112|0;$=xa+104|0;q=xa+96|0;oa=4;ma=oB(40)|0;c[ma>>2]=0;V=xa+224|0;R=xa+80|0;S=xa+64|0;T=xa+48|0;U=xa+32|0;Z=xa+16|0;_=xa;n=0;g=na(25,e|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;a:do if((l|0)!=1){n=0;X=na(18,g<<3|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){if(!(a[124828]|0))Y=0;else{n=0;g=ha(1)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){E=0;F=0;D=0;U=0;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=0;break}Y=g}n=0;g=ua(32,e|0,133479)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)!=1){c[14794]=0;b:do if((g|0)!=0?(m=a[g>>0]|0,m<<24>>24!=0):0){l=g;j=m;g=0;while(1){l=l+1|0;switch(j<<24>>24|0){case 99:{g=g|8;c[14794]=g;break}case 105:{g=g|18;c[14794]=g;break}case 109:{g=g|1;c[14794]=g;break}case 114:{g=g|4;c[14794]=g;break}case 115:{g=g|2;c[14794]=g;break}default:{}}j=a[l>>0]|0;if(!(j<<24>>24))break b}}while(0);if(f){n=0;da(11,0,133483,q|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){E=0;F=0;D=0;U=0;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break}}n=0;W=ua(33,e|0,0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){Q=c[W+16>>2]|0;if(c[14794]&2){n=0;ka(29,c[22667]|0,Q|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break}}n=0;g=na(26,e|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)!=1){if(!g)m=0;else{m=0;do{n=0;j=ua(34,e|0,g|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}if(j){B=j;do{if(!((c[13358]|0)==2?(c[(c[B+16>>2]|0)+8>>2]|0)!=0:0))wa=29;c:do if((wa|0)==29){wa=0;do if(a[124828]|0){x=c[B>>2]&3;l=B+48|0;w=(c[c[((x|0)==3?B:l)+40>>2]>>2]|0)>>>4;j=B+-48|0;x=(c[c[((x|0)==2?B:j)+40>>2]>>2]|0)>>>4;if(w>>>0>x>>>0){n=0;f=da(17,Y|0,x|0,w|0)|0;q=n;n=0;if((q|0)!=0&(o|0)!=0){u=zB(c[q>>2]|0,ma|0,oa|0)|0;if(!u)Ka(q|0,o|0);C=o}else u=-1;if((u|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}if(f)break c;n=0;pa(59,Y|0,x|0,w|0);f=n;n=0;if((f|0)!=0&(o|0)!=0){q=zB(c[f>>2]|0,ma|0,oa|0)|0;if(!q)Ka(f|0,o|0);C=o}else q=-1;if((q|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}break}else{n=0;f=da(17,Y|0,w|0,x|0)|0;q=n;n=0;if((q|0)!=0&(o|0)!=0){u=zB(c[q>>2]|0,ma|0,oa|0)|0;if(!u)Ka(q|0,o|0);C=o}else u=-1;if((u|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}if(f)break c;n=0;pa(59,Y|0,w|0,x|0);f=n;n=0;if((f|0)!=0&(o|0)!=0){q=zB(c[f>>2]|0,ma|0,oa|0)|0;if(!q)Ka(f|0,o|0);C=o}else q=-1;if((q|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}break}}else{l=B+48|0;j=B+-48|0}while(0);c[X+(m<<3)+4>>2]=B;P=c[B>>2]&3;O=c[(c[((P|0)==3?B:l)+40>>2]|0)+16>>2]|0;P=c[(c[((P|0)==2?B:j)+40>>2]|0)+16>>2]|0;z=+h[O+16>>3]-+h[P+16>>3];A=+h[O+24>>3]-+h[P+24>>3];c[X+(m<<3)>>2]=~~(z*z+A*A);m=m+1|0}while(0);n=0;B=ua(35,e|0,B|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}}while((B|0)!=0)}n=0;g=ua(36,e|0,g|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y;break a}}while((g|0)!=0)}n=0;D=na(19,m<<3|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){n=0;ta(26,X|0,m|0,8,37);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){l=c[Q>>2]|0;n=0;ia(90,l+2|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){g=c[Q+16>>2]|0;M=g+(l*40|0)|0;N=g+((l+1|0)*40|0)|0;E=(m|0)>0;if(E){O=c[22667]|0;P=(M|0)==0;I=g+(l*40|0)+8|0;J=R+8|0;K=S+8|0;L=0;do{if((L|0)>0?(c[14794]&16|0)!=0:0){n=0;ka(29,O|0,Q|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}}g=c[X+(L<<3)+4>>2]|0;H=c[g>>2]&3;w=c[(c[(c[((H|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;g=c[(c[(c[((H|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if((w|0)!=(g|0)){n=0;pa(61,Q|0,g|0,N|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}n=0;pa(61,Q|0,w|0,M|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}}else{f=w+32|0;if((c[f>>2]|0)>0){q=w+36|0;u=0;do{l=c[(c[q>>2]|0)+(u<<2)>>2]|0;do if(!(a[l+36>>0]|0)){g=c[l+20>>2]|0;if((g|0)==(w|0)){n=0;pa(60,U|0,l|0,c[l+24>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}n=0;va(1,Q|0,M|0,l|0,0.0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}break}else{n=0;pa(60,U|0,l|0,g|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}n=0;va(1,Q|0,N|0,l|0,0.0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}break}}while(0);u=u+1|0}while((u|0)<(c[f>>2]|0))}c[Q>>2]=(c[Q>>2]|0)+2}n=0;g=da(18,Q|0,N|0,M|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}if(g){F=D;u=W;w=X;q=X;x=0;B=0;e=0;f=Y;wa=245;break a}if(P)g=-112;else{g=M;j=0;do{j=j+1|0;g=c[g+8>>2]|0}while((g|0)!=0);g=(j*56|0)+-112|0}n=0;H=na(19,g|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}q=c[I>>2]|0;f=c[q+8>>2]|0;g=c[q+20>>2]|0;if(c[g>>2]&1)g=c[q+24>>2]|0;n=0;pa(60,R|0,q|0,g|0);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}j=f+8|0;do if(!(c[j>>2]|0)){n=0;j=ua(38,H|0,0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}g=0}else{z=+h[R>>3];A=+h[J>>3];w=g;l=q;p=0.0;r=0.0;u=q;G=0;while(1){g=c[l+20>>2]|0;q=f+20|0;do if((g|0)==(c[q>>2]|0))F=g;else{if((g|0)==(c[f+24>>2]|0)){F=g;break}F=c[l+24>>2]|0}while(0);n=0;pa(62,Q|0,F|0,c[u+12>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}B=u+36|0;g=a[B>>0]|0;e=f+36|0;do if(g<<24>>24==(a[e>>0]|0)){if((c[j>>2]|0)!=(N|0)){t=z;s=A;q=w;g=G;break}n=0;pa(60,S|0,f|0,F|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}g=a[B>>0]|0;t=+h[S>>3];s=+h[K>>3];wa=92}else{t=(+h[F+40>>3]+ +h[F+56>>3])*.5;s=(+h[F+48>>3]+ +h[F+64>>3])*.5;wa=92}while(0);do if((wa|0)==92){wa=0;x=g<<24>>24==0;l=(u|0)==(c[I>>2]|0);if(x){if(!(a[e>>0]|0))g=0;else g=(c[q>>2]|0)==(F|0)?4:2;u=w+48|0;q=F+48|0;w=w+40|0;l=l?0:p>z?4:2}else{if(g<<24>>24==(a[e>>0]|0))g=0;else g=(c[q>>2]|0)==(F|0)?1:3;u=w+40|0;q=F+40|0;w=w+48|0;l=l?0:r>A?1:3}r=+h[q>>3];p=+h[u>>3];y=+h[w>>3];if(p<r){u=0;v=p;p=r;q=l;l=g}else{u=1;v=r;q=g}g=G+1|0;w=H+(G*56|0)|0;a[w>>0]=x&1;a[w+1>>0]=u;x=w+2|0;b[x>>1]=b[V>>1]|0;b[x+2>>1]=b[V+2>>1]|0;b[x+4>>1]=b[V+4>>1]|0;h[w+8>>3]=y;h[w+16>>3]=v;h[w+24>>3]=p;c[w+32>>2]=q;c[w+36>>2]=l;c[w+48>>2]=0;c[w+52>>2]=0;if((a[B>>0]|0)==(a[e>>0]|0)){q=F;p=z;r=A;u=f;break}if((c[j>>2]|0)!=(N|0)){q=F;p=z;r=A;u=f;break}n=0;pa(60,T|0,f|0,F|0);l=n;n=0;if((l|0)!=0&(o|0)!=0){q=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!q)Ka(l|0,o|0);C=o}else q=-1;if((q|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}u=(a[e>>0]|0)==0;q=F+48|0;e=F+40|0;p=+h[(u?q:e)>>3];r=+h[(u?e:q)>>3];q=H+(g*56|0)|0;a[q>>0]=u&1;a[q+1>>0]=1;g=q+2|0;b[g>>1]=b[V>>1]|0;b[g+2>>1]=b[V+2>>1]|0;b[g+4>>1]=b[V+4>>1]|0;h[q+8>>3]=r;h[q+16>>3]=p;h[q+24>>3]=p;c[q+32>>2]=0;c[q+36>>2]=u?(z>t?4:2):A>s?1:3;c[q+48>>2]=0;c[q+52>>2]=0;q=F;p=z;r=A;u=f;g=G+2|0}while(0);l=c[j>>2]|0;j=l+8|0;if(!(c[j>>2]|0))break;else{F=f;z=t;A=s;w=q;f=l;G=g;l=F}}n=0;j=ua(38,H|0,g*56|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}if((g|0)<=0)break;l=g+-1|0;f=0;do{if((f|0)>0)c[j+(f*56|0)+48>>2]=j+((f+-1|0)*56|0);q=f;f=f+1|0;if((q|0)<(l|0))c[j+(q*56|0)+52>>2]=j+(f*56|0)}while((f|0)!=(g|0))}while(0);c[D+(L<<3)>>2]=g;c[D+(L<<3)+4>>2]=j;n=0;ia(91,Q|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y;break a}L=L+1|0}while((L|0)<(m|0))}n=0;qa(4);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){n=0;x=ua(39,59180,c[12573]|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)!=1){g=c[W>>2]|0;if((g|0)>0){w=W+8|0;u=0;do{j=(c[w>>2]|0)+(u*72|0)|0;if(!(c[j>>2]&4)){while(1){f=j+36|0;g=c[(c[f>>2]|0)+8>>2]|0;if(!g)break;g=c[g+20>>2]|0;if(!g)break;if(!(c[g>>2]&1))j=g;else break}n=0;q=na(19,40)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=W;S=Y;break a}c[q+36>>2]=j;h[q+8>>3]=+h[j+40>>3];c[j>>2]=c[j>>2]|4;g=c[c[f>>2]>>2]|0;d:do if(!g)g=j;else{f=j;while(1){l=c[g+24>>2]|0;if(!l){g=f;break d}g=c[l>>2]|0;if(g&1){g=f;break d}c[l>>2]=g|4;g=c[c[l+36>>2]>>2]|0;if(!g){g=l;break}else f=l}}while(0);h[q+16>>3]=+h[g+56>>3];n=0;ra(1,x|0,q|0,+(+h[j+48>>3]));g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=W;S=Y;break a}g=c[W>>2]|0}u=u+1|0}while((u|0)<(g|0))}H=W+20|0;c[H>>2]=x;n=0;x=ua(39,59180,c[12573]|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=H;e=W;S=Y}else{g=c[W>>2]|0;if((g|0)>0){w=W+8|0;u=0;do{j=(c[w>>2]|0)+(u*72|0)|0;if(!(c[j>>2]&2)){while(1){f=j+36|0;g=c[(c[f>>2]|0)+12>>2]|0;if(!g)break;g=c[g+20>>2]|0;if(!g)break;if(!(c[g>>2]&1))j=g;else break}n=0;q=na(19,40)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){l=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!l)Ka(g|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=H;e=W;S=Y;break a}c[q+36>>2]=j;h[q+8>>3]=+h[j+48>>3];c[j>>2]=c[j>>2]|2;g=c[(c[f>>2]|0)+4>>2]|0;e:do if(!g)g=j;else{f=j;while(1){l=c[g+24>>2]|0;if(!l){g=f;break e}g=c[l>>2]|0;if(g&1){g=f;break e}c[l>>2]=g|2;g=c[(c[l+36>>2]|0)+4>>2]|0;if(!g){g=l;break}else f=l}}while(0);h[q+16>>3]=+h[g+64>>3];n=0;ra(1,x|0,q|0,+(+h[j+40>>3]));g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=0;B=H;e=W;S=Y;break a}g=c[W>>2]|0}u=u+1|0}while((u|0)<(g|0))}G=W+24|0;c[G>>2]=x;if(E){B=0;do{u=c[D+(B<<3)>>2]|0;w=c[D+(B<<3)+4>>2]|0;if((u|0)>0){e=0;do{x=w+(e*56|0)|0;if(!(a[x>>0]|0)){n=0;g=ua(40,c[H>>2]|0,x|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break a}}else{n=0;g=ua(40,c[G>>2]|0,x|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break a}}q=g+24|0;f=c[q>>2]|0;j=f+1|0;c[q>>2]=j;c[w+(e*56|0)+40>>2]=f;f=g+28|0;g=c[f>>2]|0;if(!g){n=0;g=na(18,j<<2|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break a}}else{n=0;g=ua(27,g|0,j<<2|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break a}}c[f>>2]=g;c[g+((c[q>>2]|0)+-1<<2)>>2]=x;e=e+1|0}while((e|0)!=(u|0))}B=B+1|0}while((B|0)!=(m|0))}ma=xB(59216,1,ma|0,oa|0)|0;oa=C;n=0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){F=D;U=W;w=X;T=X;g=C;x=G;B=H;e=W;S=Y;break}F=D;U=W;w=X;T=X;g=0;x=G;B=H;e=W;S=Y}}else{F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{E=0;F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{E=0;F=D;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{E=0;F=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;S=Y}}else{E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y}}else{E=0;F=0;D=0;U=W;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y}}else{E=0;F=0;D=0;U=0;w=X;T=X;g=C;x=0;B=0;e=0;m=0;S=Y}}else{E=0;F=0;D=0;U=0;w=0;T=X;g=C;x=0;B=0;e=0;m=0;S=0}}else{E=0;F=0;D=0;U=0;w=0;T=0;g=C;x=0;B=0;e=0;m=0;S=0}while(0);f:while(1){if((wa|0)==245){wa=0;if(a[124828]|0){n=0;ia(95,f|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f;continue}}if(E){l=0;while(1){n=0;ia(89,c[F+(l<<3)+4>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f;continue f}l=l+1|0;if((l|0)==(m|0))break}}n=0;ia(89,D|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f;continue}n=0;ia(96,u|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f;continue}n=0;ia(89,q|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){U=u;T=q;g=C;S=f}else break}if(g){u=U;q=T;f=S;wa=245;continue}n=0;ia(92,c[B>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(92,c[x>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(93,c[B>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(93,c[x>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ka(30,c[B>>2]|0,U|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ka(30,c[x>>2]|0,U|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(94,c[B>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;ia(94,c[x>>2]|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}if(c[14794]&4){K=c[22667]|0;n=0;sa(21,133557,405,1,K|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;c[$>>2]=10;c[$+4>>2]=10;da(13,K|0,133963,$|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}n=0;sa(21,161386,18,1,K|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}g=U+4|0;if((c[g>>2]|0)>0){j=U+12|0;q=0;while(1){l=c[j>>2]|0;y=+h[l+(q*72|0)+48>>3];z=+h[l+(q*72|0)+56>>3];A=+h[l+(q*72|0)+64>>3];n=0;h[aa>>3]=+h[l+(q*72|0)+40>>3];h[aa+8>>3]=y;h[aa+16>>3]=z;h[aa+24>>3]=A;da(13,K|0,161405,aa|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}q=q+1|0;if((q|0)>=(c[g>>2]|0))break}}if(E){s=-1797693134862315708145274.0e284;t=-1797693134862315708145274.0e284;r=1797693134862315708145274.0e284;p=1797693134862315708145274.0e284;J=0;while(1){I=c[w+(J<<3)+4>>2]|0;G=F+(J<<3)|0;G=d[G>>0]|d[G+1>>0]<<8|d[G+2>>0]<<16|d[G+3>>0]<<24;H=F+(J<<3)+4|0;H=d[H>>0]|d[H+1>>0]<<8|d[H+2>>0]<<16|d[H+3>>0]<<24;g=c[(c[(c[((c[I>>2]&3|0)==3?I:I+48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if(!(a[H>>0]|0)){y=+h[g+56>>3];v=+h[g+40>>3];n=0;l=ua(40,c[B>>2]|0,H|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[l+36>>2]|0;A=+h[Y+48>>3];y=(y+v)*.5;v=A+(1.0-+(c[H+44>>2]|0)/+((c[l+24>>2]|0)+1|0))*(+h[Y+64>>3]-A)}else{z=+h[g+64>>3];v=+h[g+48>>3];n=0;g=ua(40,c[x>>2]|0,H|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[g+36>>2]|0;y=+h[Y+40>>3];y=y+ +(c[H+44>>2]|0)/+((c[g+24>>2]|0)+1|0)*(+h[Y+56>>3]-y);v=(z+v)*.5}q=~~v;f=~~y;z=+(f|0);p=p<z?p:z;A=+(q|0);r=r<A?r:A;t=t>z?t:z;s=s>A?s:A;n=0;c[ba>>2]=f;c[ba+4>>2]=q;da(13,K|0,133980,ba|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}if((G|0)>1){u=1;while(1){g=H+(u*56|0)|0;if(!(a[g>>0]|0)){n=0;l=ua(40,c[B>>2]|0,g|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[l+36>>2]|0;A=+h[Y+48>>3];l=~~(A+(1.0-+(c[H+(u*56|0)+44>>2]|0)/+((c[l+24>>2]|0)+1|0))*(+h[Y+64>>3]-A))}else{n=0;g=ua(40,c[x>>2]|0,g|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}f=c[g+36>>2]|0;A=+h[f+40>>3];f=~~(A+ +(c[H+(u*56|0)+44>>2]|0)/+((c[g+24>>2]|0)+1|0)*(+h[f+56>>3]-A));l=q}z=+(f|0);p=p<z?p:z;A=+(l|0);r=r<A?r:A;t=t>z?t:z;s=s>A?s:A;n=0;c[ca>>2]=f;c[ca+4>>2]=l;da(13,K|0,134002,ca|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}u=u+1|0;if((u|0)==(G|0))break;else q=l}z=p;y=r;v=s;f=H+(((G|0)>2?G+-1|0:1)*56|0)|0}else{z=p;y=r;v=s;f=H}g=c[(c[(c[((c[I>>2]&3|0)==2?I:I+-48|0)+40>>2]|0)+16>>2]|0)+112>>2]|0;if(!(a[f>>0]|0)){r=+h[g+56>>3];p=+h[g+40>>3];n=0;l=ua(40,c[B>>2]|0,f|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[l+36>>2]|0;A=+h[Y+48>>3];r=(r+p)*.5;p=A+(1.0-+(c[f+44>>2]|0)/+((c[l+24>>2]|0)+1|0))*(+h[Y+64>>3]-A)}else{s=+h[g+64>>3];p=+h[g+48>>3];n=0;g=ua(40,c[x>>2]|0,f|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[g+36>>2]|0;r=+h[Y+40>>3];r=r+ +(c[f+44>>2]|0)/+((c[g+24>>2]|0)+1|0)*(+h[Y+56>>3]-r);p=(s+p)*.5}g=~~p;Y=~~r;A=+(Y|0);p=z<A?z:A;s=+(g|0);r=y<s?y:s;t=t>A?t:A;s=v>s?v:s;n=0;c[ea>>2]=Y;c[ea+4>>2]=g;da(13,K|0,134016,ea|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}J=J+1|0;if((J|0)==(m|0))break}}else{t=-1797693134862315708145274.0e284;r=1797693134862315708145274.0e284;p=1797693134862315708145274.0e284;s=-1797693134862315708145274.0e284}n=0;sa(21,134037,24,1,K|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}if((c[e>>2]|0)>0){f=U+8|0;l=0;while(1){g=c[f>>2]|0;v=+h[g+(l*72|0)+40>>3];y=+h[g+(l*72|0)+48>>3];z=+h[g+(l*72|0)+56>>3];A=+h[g+(l*72|0)+64>>3];n=0;h[fa>>3]=v;h[fa+8>>3]=y;h[fa+16>>3]=z;h[fa+24>>3]=A;da(13,K|0,161442,fa|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}p=p<v?p:v;r=r<y?r:y;t=t>z?t:z;s=s>A?s:A;l=l+1|0;if((l|0)>=(c[e>>2]|0))break}}n=0;c[ja>>2]=~~(p+10.0);c[ja+4>>2]=~~(r+10.0);c[ja+8>>2]=~~(t+10.0);c[ja+12>>2]=~~(s+10.0);da(13,K|0,134062,ja|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}}if(E){O=Z+8|0;P=_+8|0;Q=c[22667]|0;R=0;g=0;j=0;while(1){L=c[w+(R<<3)+4>>2]|0;I=c[L>>2]&3;J=L+48|0;M=c[(c[((I|0)==3?L:J)+40>>2]|0)+16>>2]|0;q=c[L+16>>2]|0;H=q+16|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];z=+h[k>>3];H=q+24|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];y=+h[k>>3];H=M+16|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];A=+h[k>>3];M=M+24|0;a[k>>0]=a[M>>0];a[k+1>>0]=a[M+1>>0];a[k+2>>0]=a[M+2>>0];a[k+3>>0]=a[M+3>>0];a[k+4>>0]=a[M+4>>0];a[k+5>>0]=a[M+5>>0];a[k+6>>0]=a[M+6>>0];a[k+7>>0]=a[M+7>>0];y=y+ +h[k>>3];h[Z>>3]=z+A;h[O>>3]=y;M=L+-48|0;I=c[(c[((I|0)==2?L:M)+40>>2]|0)+16>>2]|0;H=q+56|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];y=+h[k>>3];q=q+64|0;a[k>>0]=a[q>>0];a[k+1>>0]=a[q+1>>0];a[k+2>>0]=a[q+2>>0];a[k+3>>0]=a[q+3>>0];a[k+4>>0]=a[q+4>>0];a[k+5>>0]=a[q+5>>0];a[k+6>>0]=a[q+6>>0];a[k+7>>0]=a[q+7>>0];A=+h[k>>3];q=I+16|0;a[k>>0]=a[q>>0];a[k+1>>0]=a[q+1>>0];a[k+2>>0]=a[q+2>>0];a[k+3>>0]=a[q+3>>0];a[k+4>>0]=a[q+4>>0];a[k+5>>0]=a[q+5>>0];a[k+6>>0]=a[q+6>>0];a[k+7>>0]=a[q+7>>0];z=+h[k>>3];I=I+24|0;a[k>>0]=a[I>>0];a[k+1>>0]=a[I+1>>0];a[k+2>>0]=a[I+2>>0];a[k+3>>0]=a[I+3>>0];a[k+4>>0]=a[I+4>>0];a[k+5>>0]=a[I+5>>0];a[k+6>>0]=a[I+6>>0];a[k+7>>0]=a[I+7>>0];A=A+ +h[k>>3];h[_>>3]=y+z;h[P>>3]=A;I=c[F+(R<<3)>>2]|0;q=c[F+(R<<3)+4>>2]|0;H=I*3|0;N=H+1|0;if((H|0)<(j|0))K=j;else{if(g){n=0;ia(89,g|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}}n=0;g=na(18,N<<4|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}K=N}if(!(a[q>>0]|0)){n=0;f=ua(40,c[B>>2]|0,q|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[f+36>>2]|0;r=+h[Y+48>>3];p=+h[Z>>3];r=+(~~(r+(1.0-+(c[q+44>>2]|0)/+((c[f+24>>2]|0)+1|0))*(+h[Y+64>>3]-r))|0)}else{n=0;j=ua(40,c[x>>2]|0,q|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[j+36>>2]|0;p=+h[Y+40>>3];p=p+ +(c[q+44>>2]|0)/+((c[j+24>>2]|0)+1|0)*(+h[Y+56>>3]-p);r=+h[O>>3]}Y=g+16|0;h[g+16>>3]=p;h[g+24>>3]=r;c[g>>2]=c[Y>>2];c[g+4>>2]=c[Y+4>>2];c[g+8>>2]=c[Y+8>>2];c[g+12>>2]=c[Y+12>>2];if((I|0)>1){u=1;G=2;while(1){j=q+(u*56|0)|0;if(!(a[j>>0]|0)){n=0;f=ua(40,c[B>>2]|0,j|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[f+36>>2]|0;r=+h[Y+48>>3];r=+(~~(r+(1.0-+(c[q+(u*56|0)+44>>2]|0)/+((c[f+24>>2]|0)+1|0))*(+h[Y+64>>3]-r))|0)}else{n=0;j=ua(40,c[x>>2]|0,j|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[j+36>>2]|0;p=+h[Y+40>>3];p=p+ +(c[q+(u*56|0)+44>>2]|0)/+((c[j+24>>2]|0)+1|0)*(+h[Y+56>>3]-p)}Y=g+(G+2<<4)|0;W=g+(G+1<<4)|0;X=g+(G<<4)|0;h[X>>3]=p;h[g+(G<<4)+8>>3]=r;c[W>>2]=c[X>>2];c[W+4>>2]=c[X+4>>2];c[W+8>>2]=c[X+8>>2];c[W+12>>2]=c[X+12>>2];c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];u=u+1|0;if((u|0)==(I|0))break;else G=G+3|0}u=H+-1|0;q=q+((I+-1|0)*56|0)|0}else u=2;if(!(a[q>>0]|0)){n=0;f=ua(40,c[B>>2]|0,q|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[f+36>>2]|0;p=+h[Y+48>>3];r=+h[_>>3];p=+(~~(p+(1.0-+(c[q+44>>2]|0)/+((c[f+24>>2]|0)+1|0))*(+h[Y+64>>3]-p))|0)}else{n=0;j=ua(40,c[x>>2]|0,q|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}Y=c[j+36>>2]|0;r=+h[Y+40>>3];r=r+ +(c[q+44>>2]|0)/+((c[j+24>>2]|0)+1|0)*(+h[Y+56>>3]-r);p=+h[P>>3]}Y=g+(u<<4)|0;W=u+1|0;X=g+(W<<4)|0;h[X>>3]=r;h[g+(W<<4)+8>>3]=p;c[Y>>2]=c[X>>2];c[Y+4>>2]=c[X+4>>2];c[Y+8>>2]=c[X+8>>2];c[Y+12>>2]=c[X+12>>2];if((d[124827]|0)>1){n=0;q=na(22,c[((c[L>>2]&3|0)==3?L:J)+40>>2]|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}n=0;j=na(22,c[((c[L>>2]&3|0)==2?L:M)+40>>2]|0)|0;l=n;n=0;if((l|0)!=0&(o|0)!=0){f=zB(c[l>>2]|0,ma|0,oa|0)|0;if(!f)Ka(l|0,o|0);C=o}else f=-1;if((f|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}n=0;c[la>>2]=q;c[la+4>>2]=j;da(13,Q|0,134113,la|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}}n=0;ga(7,L|0,c[((c[L>>2]&3|0)==2?L:M)+40>>2]|0,g|0,N|0,59372);j=n;n=0;if((j|0)!=0&(o|0)!=0){l=zB(c[j>>2]|0,ma|0,oa|0)|0;if(!l)Ka(j|0,o|0);C=o}else l=-1;if((l|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue f}R=R+1|0;if((R|0)==(m|0))break;else j=K}}else g=0;n=0;ia(89,g|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ma|0,oa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){L=S;M=m;N=e;O=B;P=x;Q=T;R=w;V=U;W=D;X=F;Y=E;g=C;S=L;m=M;e=N;B=O;x=P;T=Q;w=R;U=V;D=W;F=X;E=Y;continue}u=U;q=T;f=S;wa=245}pB(ma|0);i=xa;return}function Ht(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0;m=i;i=i+32|0;l=m+16|0;k=m;Mz(134350,10,1,a)|0;Mz(134361,19,1,a)|0;if((c[b>>2]|0)>0){g=b+16|0;j=0;do{d=c[g>>2]|0;f=d+(j*40|0)|0;e=c[d+(j*40|0)+20>>2]|0;d=c[d+(j*40|0)+24>>2]|0;do if((e|0)!=(d|0)){e=(c[e>>2]&1|0)==0?e:d;d=c[e+36>>2]|0;if((c[d+4>>2]|0)==(f|0)){f=~~((+h[e+40>>3]+ +h[e+56>>3])*.5);d=~~+h[e+64>>3];break}if((c[d+12>>2]|0)==(f|0)){f=~~((+h[e+40>>3]+ +h[e+56>>3])*.5);d=~~+h[e+48>>3];break}if((c[d+8>>2]|0)==(f|0)){f=~~+h[e+40>>3];d=~~((+h[e+48>>3]+ +h[e+64>>3])*.5);break}if((c[d>>2]|0)==(f|0)){f=~~+h[e+56>>3];d=~~((+h[e+48>>3]+ +h[e+64>>3])*.5)}else{f=0;d=0}}else{f=~~((+h[e+40>>3]+ +h[e+56>>3])*.5);d=~~((+h[e+48>>3]+ +h[e+64>>3])*.5)}while(0);c[k>>2]=j;c[k+4>>2]=f;c[k+8>>2]=d;Bz(a,134381,k)|0;j=j+1|0}while((j|0)<(c[b>>2]|0))}f=b+4|0;if((c[f>>2]|0)>0){d=b+20|0;e=0;do{k=c[d>>2]|0;b=c[k+(e*24|0)+16>>2]|0;n=+h[k+(e*24|0)>>3];c[l>>2]=c[k+(e*24|0)+12>>2];c[l+4>>2]=b;h[l+8>>3]=n;Bz(a,134401,l)|0;e=e+1|0}while((e|0)<(c[f>>2]|0))}Mz(134423,2,1,a)|0;i=m;return}function It(a,b){a=a|0;b=b|0;return (c[a>>2]|0)-(c[b>>2]|0)|0}function Jt(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0,j=0;j=(a[d+36>>0]|0)!=0;i=e+40|0;do if((c[d+24>>2]|0)==(e|0)){g=+h[i>>3];f=+h[e+48>>3];if(j){f=(f+ +h[e+64>>3])*.5;break}else{g=(g+ +h[e+56>>3])*.5;break}}else{g=+h[e+56>>3];f=+h[e+64>>3];if(j){f=(+h[e+48>>3]+f)*.5;break}else{g=(+h[i>>3]+g)*.5;break}}while(0);h[b>>3]=g;h[b+8>>3]=f;return}function Kt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;f=l;g=b+32|0;if((c[g>>2]|0)>0){h=b+36|0;k=0;do{j=c[(c[h>>2]|0)+(k<<2)>>2]|0;e=c[j+20>>2]|0;if((e|0)==(b|0))e=c[j+24>>2]|0;Jt(f,j,e);pu(a,d,j,0.0)|0;k=k+1|0}while((k|0)<(c[g>>2]|0))}c[a>>2]=(c[a>>2]|0)+1;c[d+24>>2]=b;c[d+20>>2]=b;i=l;return}function Lt(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0;g=i;i=i+16|0;f=g;h[f>>3]=d;e=ub[c[a>>2]&31](a,f,512)|0;if(!e){e=$p(24)|0;h[e+8>>3]=+h[f>>3];c[e+16>>2]=Vi(59384,c[12573]|0)|0;ub[c[a>>2]&31](a,e,1)|0}a=c[e+16>>2]|0;ub[c[a>>2]&31](a,b,1)|0;i=g;return}function Mt(a,b){a=a|0;b=b|0;a=ub[c[a>>2]&31](a,b+8|0,512)|0;if(!a)Ia(134330,134219,423,134336);a=c[a+16>>2]|0;a=ub[c[a>>2]&31](a,b+16|0,512)|0;if(!a)Ia(134347,134219,425,134336);else return a|0;return 0}function Nt(a){a=a|0;var b=0;a=Ti(a)|0;if(a)do{b=Ti(c[a+16>>2]|0)|0;if(b)do{c[b+32>>2]=du(c[b+24>>2]|0)|0;b=c[b>>2]|0}while((b|0)!=0);a=c[a>>2]|0}while((a|0)!=0);return}function Ot(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a=Ti(a)|0;if(a)do{b=Ti(c[a+16>>2]|0)|0;if(b)do{h=c[b+24>>2]|0;if((h|0)!=0?(i=c[b+28>>2]|0,j=c[b+32>>2]|0,(h|0)>1):0){g=1;e=0;while(1){d=i+(e<<2)|0;f=g;do{switch(Yt(c[d>>2]|0,c[i+(f<<2)>>2]|0)|0){case 1:{fu(j,e,f);break}case -1:{fu(j,f,e);break}default:{}}f=f+1|0}while((f|0)!=(h|0));d=g+1|0;if((d|0)==(h|0))break;else{e=g;g=d}}}b=c[b>>2]|0}while((b|0)!=0);a=c[a>>2]|0}while((a|0)!=0);return}function Pt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=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;y=i;i=i+16|0;v=y+8|0;w=y;a=Ti(a)|0;if(a){t=v+4|0;u=w+4|0;do{d=Ti(c[a+16>>2]|0)|0;if(d)do{p=c[d+32>>2]|0;q=c[d+28>>2]|0;r=d+24|0;e=c[r>>2]|0;if((e|0)>1){s=1;o=0;while(1){if((s|0)<(e|0)){m=q+(o<<2)|0;n=s;do{a:do if(((hu(p,o,n)|0)==0?(hu(p,n,o)|0)==0:0)?(x=q+(n<<2)|0,(Ut(c[m>>2]|0,c[x>>2]|0)|0)!=0):0){j=c[m>>2]|0;e=c[j+48>>2]|0;k=c[x>>2]|0;f=c[k+48>>2]|0;g=(f|0)==0;if(e)if(g)l=1;else l=+h[e+8>>3]!=+h[f+8>>3]&1;else l=g&1^1;Vt(v,j,k,0,l);e=c[v>>2]|0;k=c[t>>2]|0;f=l^1;Vt(w,c[m>>2]|0,c[x>>2]|0,1,f);g=c[w>>2]|0;j=c[u>>2]|0;switch(k|0){case -1:{Wt(c[x>>2]|0,c[m>>2]|0,l,0,e,b);Wt(c[x>>2]|0,c[m>>2]|0,f,1,g,b);if((j|0)!=1)break a;Xt(c[m>>2]|0,c[x>>2]|0,f,b);break a}case 0:switch(j|0){case -1:{Wt(c[x>>2]|0,c[m>>2]|0,l,0,e,b);Wt(c[x>>2]|0,c[m>>2]|0,f,1,g,b);break a}case 0:{Wt(c[m>>2]|0,c[x>>2]|0,0,l,e,b);Wt(c[m>>2]|0,c[x>>2]|0,1,f,g,b);break a}case 1:{Wt(c[m>>2]|0,c[x>>2]|0,0,l,e,b);Wt(c[m>>2]|0,c[x>>2]|0,1,f,g,b);break a}default:break a}case 1:{Wt(c[m>>2]|0,c[x>>2]|0,0,l,e,b);Wt(c[m>>2]|0,c[x>>2]|0,1,f,g,b);if((j|0)!=-1)break a;Xt(c[m>>2]|0,c[x>>2]|0,f,b);break a}default:break a}}while(0);n=n+1|0;e=c[r>>2]|0}while((n|0)<(e|0))}f=s+1|0;if((f|0)<(e|0)){o=s;s=f}else break}}d=c[d>>2]|0}while((d|0)!=0);a=c[a>>2]|0}while((a|0)!=0)}i=y;return}function Qt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0;p=i;i=i+32|0;o=p;a=Ti(a)|0;if(a){m=c[22667]|0;do{b=Ti(c[a+16>>2]|0)|0;if(b){l=a+8|0;do{k=b+24|0;d=c[k>>2]|0;if(d){if(!((c[14794]&8|0)==0|(d|0)<2)?(r=+h[b+8>>3],q=+h[b+16>>3],c[o>>2]=~~+h[l>>3],h[o+8>>3]=r,h[o+16>>3]=q,Bz(m,134126,o)|0,(c[k>>2]|0)>0):0){d=b+32|0;e=b+28|0;j=0;do{f=c[(c[(c[d>>2]|0)+4>>2]|0)+(j*12|0)+8>>2]|0;if((Xi(f)|0)!=0?(Tt(m,c[(c[e>>2]|0)+(j<<2)>>2]|0),Mz(134146,4,1,m)|0,n=ub[c[f>>2]&31](f,0,128)|0,(n|0)!=0):0){g=n;do{Mz(134151,5,1,m)|0;Tt(m,c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]|0);Cz(10,m)|0;g=ub[c[f>>2]&31](f,g,8)|0}while((g|0)!=0)}j=j+1|0}while((j|0)<(c[k>>2]|0))}d=b+32|0;iu(c[d>>2]|0);g=c[k>>2]|0;if((g|0)>0){d=c[(c[d>>2]|0)+4>>2]|0;e=c[b+28>>2]|0;f=0;do{c[(c[e+(f<<2)>>2]|0)+44>>2]=(c[d+(f*12|0)+4>>2]|0)+1;f=f+1|0}while((f|0)<(g|0))}}b=c[b>>2]|0}while((b|0)!=0)}a=c[a>>2]|0}while((a|0)!=0)}i=p;return}function Rt(a){a=a|0;return 0}function St(a){a=a|0;return 0}function Tt(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,j=0,k=0,l=0,m=0;m=i;i=i+80|0;l=m+40|0;k=m;if(!(a[d>>0]|0)){e=+h[d+16>>3];f=+h[d+8>>3];g=+h[d+24>>3];switch(c[d+32>>2]|0){case 0:{j=134184;break}case 1:{j=134179;break}case 2:{j=134172;break}case 3:{j=134165;break}case 4:{j=134157;break}default:j=0}switch(c[d+36>>2]|0){case 0:{d=134184;break}case 1:{d=134179;break}case 2:{d=134172;break}case 3:{d=134165;break}case 4:{d=134157;break}default:d=0}h[l>>3]=e;h[l+8>>3]=f;h[l+16>>3]=g;h[l+24>>3]=f;c[l+32>>2]=j;c[l+36>>2]=d;Bz(b,134191,l)|0}else{e=+h[d+8>>3];f=+h[d+16>>3];g=+h[d+24>>3];switch(c[d+32>>2]|0){case 0:{j=134184;break}case 1:{j=134179;break}case 2:{j=134172;break}case 3:{j=134165;break}case 4:{j=134157;break}default:j=0}switch(c[d+36>>2]|0){case 0:{d=134184;break}case 1:{d=134179;break}case 2:{d=134172;break}case 3:{d=134165;break}case 4:{d=134157;break}default:d=0}h[k>>3]=e;h[k+8>>3]=f;h[k+16>>3]=e;h[k+24>>3]=g;c[k+32>>2]=j;c[k+36>>2]=d;Bz(b,134191,k)|0}i=m;return}function Ut(a,b){a=a|0;b=b|0;if(!(+h[a+8>>3]==+h[b+8>>3]))Ia(134287,134219,843,134318);if((+h[a+16>>3]==+h[b+16>>3]?+h[a+24>>3]==+h[b+24>>3]:0)?(c[a+32>>2]|0)==(c[b+32>>2]|0):0)a=(c[a+36>>2]|0)==(c[b+36>>2]|0);else a=0;return a&1|0}function Vt(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0;if(!d)Ia(134215,134219,798,134227);j=(f|0)==0;i=(g|0)==0;g=c[(j?d+48|0:d+52|0)>>2]|0;a:do if(g){d=0;while(1){if(!e){d=5;break}e=c[(i?e+48|0:e+52|0)>>2]|0;if(!e){d=9;break}if(!(Ut(g,e)|0)){l=d;d=10;break}d=d+1|0;g=c[(j?g+48|0:g+52|0)>>2]|0;if(!g){m=d;n=0;break a}}if((d|0)==5)Ia(134215,134219,798,134227);else if((d|0)==9)Ia(161945,134219,871,134236);else if((d|0)==10){d=Yt(g,e)|0;k=l+1|0;if((l|0)<0){m=l;n=d;break}f=(f|0)==1;j=1;while(1){if(!g)break;i=g;g=c[(f?g+48|0:g+52|0)>>2]|0;e=+h[g+8>>3]==+h[i+16>>3];do if(!(a[i>>0]|0))if(e){d=(c[i+32>>2]|0)==1?0-d|0:d;break}else{d=(c[i+36>>2]|0)==3?0-d|0:d;break}else if(e){d=(c[i+32>>2]|0)==4?0-d|0:d;break}else{d=(c[i+36>>2]|0)==2?0-d|0:d;break}while(0);if((j|0)>=(k|0)){m=l;n=d;break a}else j=j+1|0}Ia(134215,134219,798,134227)}}else{m=0;n=0}while(0);c[b>>2]=m;c[b+4>>2]=n;return}function Wt(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!(a[b>>0]|0))j=Mt(c[i+20>>2]|0,b)|0;else j=Mt(c[i+24>>2]|0,b)|0;fu(c[j+32>>2]|0,c[b+40>>2]|0,c[d+40>>2]|0);if((g|0)>=1){p=(e|0)==0;n=(f|0)==0;o=i+24|0;m=i+20|0;l=1;while(1){i=b;b=c[(p?b+48|0:b+52|0)>>2]|0;f=d;d=c[(n?d+48|0:d+52|0)>>2]|0;do if(!(a[i>>0]|0)){e=Mt(c[o>>2]|0,b)|0;if(+h[b+8>>3]==+h[i+16>>3]){q=(c[i+32>>2]|0)==1;j=(hu(c[j+32>>2]|0,c[i+40>>2]|0,c[f+40>>2]|0)|0)!=0;k=c[e+32>>2]|0;if(q){f=c[d+40>>2]|0;i=c[b+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}else{f=c[b+40>>2]|0;i=c[d+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}}else{q=(c[i+36>>2]|0)==1;j=(hu(c[j+32>>2]|0,c[i+40>>2]|0,c[f+40>>2]|0)|0)!=0;k=c[e+32>>2]|0;if(q){f=c[b+40>>2]|0;i=c[d+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}else{f=c[d+40>>2]|0;i=c[b+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}}}else{e=Mt(c[m>>2]|0,b)|0;if(+h[b+8>>3]==+h[i+16>>3]){q=(c[i+32>>2]|0)==2;j=(hu(c[j+32>>2]|0,c[i+40>>2]|0,c[f+40>>2]|0)|0)!=0;k=c[e+32>>2]|0;if(q){f=c[b+40>>2]|0;i=c[d+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}else{i=c[d+40>>2]|0;f=c[b+40>>2]|0;if(j){fu(k,i,f);break}else{fu(k,f,i);break}}}else{q=(c[i+36>>2]|0)==2;j=(hu(c[j+32>>2]|0,c[i+40>>2]|0,c[f+40>>2]|0)|0)!=0;k=c[e+32>>2]|0;if(q){f=c[d+40>>2]|0;i=c[b+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}else{f=c[b+40>>2]|0;i=c[d+40>>2]|0;if(j){fu(k,f,i);break}else{fu(k,i,f);break}}}}while(0);if((l|0)==(g|0))break;else{j=e;l=l+1|0}}}return}function Xt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:do if(Ut(b,d)|0){g=(e|0)==0;e=b;while(1){if(!e){e=4;break}if(!d){e=6;break}e=c[e+52>>2]|0;d=c[(g?d+48|0:d+52|0)>>2]|0;if(!(Ut(e,d)|0)){h=e;i=d;break a}}if((e|0)==4)Ia(134215,134219,798,134227);else if((e|0)==6)Ia(134215,134219,798,134227)}else{h=b;i=d}while(0);if(!(a[h>>0]|0))e=Mt(c[f+20>>2]|0,h)|0;else e=Mt(c[f+24>>2]|0,h)|0;gu(c[e+32>>2]|0,c[h+40>>2]|0,c[i+40>>2]|0);return}function Yt(b,c){b=b|0;c=c|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=a[b>>0]|0;if(d<<24>>24==(a[c>>0]|0)?!(+h[b+8>>3]!=+h[c+8>>3]):0){if(!(d<<24>>24))d=Zt(b,c,3,1)|0;else d=Zt(b,c,4,2)|0;i=f;return d|0}dj(1,134249,e)|0;Ka(59216,1);return 0}function Zt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0,l=0.0,m=0.0,n=0,o=0;i=+h[a+24>>3];j=+h[b+16>>3];do if(!(i<j)?(l=+h[a+16>>3],m=+h[b+24>>3],!(l>m)):0){if(j<i&l<j){f=_t(a,b,d,e)|0;break}if(j<l&l<m){f=0-(_t(b,a,d,e)|0)|0;break}if(!(l==j))if(i==j){f=c[a+36>>2]|0;if((f|0)==(c[b+32>>2]|0)){f=0;break}f=(f|0)==(e|0)?1:-1;break}else{f=c[a+32>>2]|0;if((f|0)==(c[b+36>>2]|0)){f=0;break}f=(f|0)==(e|0)?1:-1;break}if(!(i==m))if(i<m){k=(c[a+36>>2]|0)==(d|0);g=c[b+32>>2]|0;f=c[a+32>>2]|0;if((g|0)==(e|0)){f=(e|0)==0;if(f)f=0;else{f=f&1;n=41}}else n=41;if((n|0)==41)f=((g|0)!=0|(f|0)!=(d|0))<<31>>31;return (k?f:0-f|0)|0}else{k=(c[b+36>>2]|0)==(e|0);g=c[a+32>>2]|0;f=c[b+32>>2]|0;if((g|0)==(e|0)){f=(e|0)==0;if(f)f=0;else{f=f&1;n=45}}else n=45;if((n|0)==45)f=((g|0)!=0|(f|0)!=(d|0))<<31>>31;f=k?f:0-f|0;break}o=c[a+32>>2]|0;n=c[b+32>>2]|0;if((o|0)==(n|0)){f=c[b+36>>2]|0;if((c[a+36>>2]|0)==(f|0)){f=0;break}}else f=c[b+36>>2]|0;b=(n|0)==(d|0);if((n|0)==(f|0)){if(b){f=1;break}if((n|0)==(e|0)){f=-1;break}if((o|0)!=(d|0)?(c[a+36>>2]|0)!=(d|0):0){f=1;break}if((o|0)!=(e|0)?(c[a+36>>2]|0)!=(e|0):0){f=-1;break}f=0;break}g=(f|0)==(e|0);if(b&g){f=(c[a+36>>2]|0)==(e|0);if((o|0)==(d|0)){if(!f){f=-1;break}}else if(f){f=1;break}f=0;break}k=(f|0)==(d|0);if((n|0)==(e|0)&k){f=(o|0)==(e|0);if((c[a+36>>2]|0)==(d|0)){if(!f){f=-1;break}}else if(f){f=1;break}f=0;break}if(!n){if(k){f=(o|0)==(d|0)?((c[a+36>>2]|0)==(d|0))<<31>>31:1;break}if(g){f=(o|0)==(e|0)?(c[a+36>>2]|0)==(e|0)&1:-1;break}}g=c[a+36>>2]|0;if(b&(f|0)==0){f=(g|0)==(d|0)?((o|0)==(d|0))<<31>>31:1;break}else{f=(g|0)==(e|0)?(o|0)==(e|0)&1:-1;break}}else f=0;while(0);return f|0}function _t(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0.0,j=0.0,k=0;i=+h[a+24>>3];j=+h[b+24>>3];do if(i<j){f=c[a+36>>2]|0;if((f|0)==(d|0)?(c[b+32>>2]|0)==(e|0):0){f=-1;break}if((f|0)==(e|0)?(c[b+32>>2]|0)==(d|0):0){f=1;break}f=0}else{f=c[b+32>>2]|0;g=(f|0)==(e|0);if(!(i==j)){if(g?(c[b+36>>2]|0)==(e|0):0){f=-1;break}if((f|0)==(d|0)?(c[b+36>>2]|0)==(d|0):0){f=1;break}f=0;break}if(g){g=c[a+36>>2]|0;f=c[b+36>>2]|0;if((g|0)==(e|0)){f=(e|0)==0;if(f){f=0;break}else f=f&1}f=((g|0)!=0|(f|0)!=(d|0))<<31>>31;break}g=c[b+36>>2]|0;f=c[a+36>>2]|0;if((g|0)==(e|0)){f=(e|0)==0;if(f)f=0;else{f=f&1;k=14}}else k=14;if((k|0)==14)f=((g|0)!=0|(f|0)!=(d|0))<<31>>31;f=0-f|0}while(0);return f|0}function $t(a,b,d){a=a|0;b=b|0;d=d|0;eu(c[b+32>>2]|0);pB(c[b+28>>2]|0);pB(b);return}function au(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;e=+h[b>>3];f=+h[c>>3];if(!(e>f))if(e<f)a=!(+h[b+8>>3]>=+h[c+8>>3])<<31>>31;else a=0;else a=!(+h[b+8>>3]<=+h[c+8>>3])&1;return a|0}function bu(a,b,d){a=a|0;b=b|0;d=d|0;Pi(c[b+16>>2]|0)|0;pB(b);return}function cu(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0;f=+h[b>>3];e=+h[c>>3];return (f>e?1:(f<e)<<31>>31)|0}function du(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=$p(8)|0;c[b>>2]=a;d=b+4|0;c[d>>2]=$p(a*12|0)|0;if((a|0)>0){e=0;do{g=qw()|0;f=c[d>>2]|0;c[f+(e*12|0)+8>>2]=g;c[f+(e*12|0)>>2]=0;e=e+1|0}while((e|0)!=(a|0))}return b|0}function eu(a){a=a|0;var b=0,d=0;b=a+4|0;if((c[a>>2]|0)>0){d=0;do{Pi(c[(c[b>>2]|0)+(d*12|0)+8>>2]|0)|0;d=d+1|0}while((d|0)<(c[a>>2]|0))}pB(c[b>>2]|0);pB(a);return}function fu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=c[(c[a+4>>2]|0)+(b*12|0)+8>>2]|0;ub[c[d>>2]&31](d,f,1)|0;i=e;return}function gu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;c[f>>2]=d;a=a+4|0;g=c[(c[a>>2]|0)+(b*12|0)+8>>2]|0;ub[c[g>>2]&31](g,f,2)|0;c[f>>2]=b;d=c[(c[a>>2]|0)+(d*12|0)+8>>2]|0;ub[c[d>>2]&31](d,f,2)|0;i=e;return}function hu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=c[(c[a+4>>2]|0)+(b*12|0)+8>>2]|0;d=(ub[c[d>>2]&31](d,f,512)|0)!=0&1;i=e;return d|0}function iu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=c[a>>2]|0;switch(b|0){case 0:break;case 1:{c[(c[a+4>>2]|0)+4>>2]=0;break}default:{h=$p(8)|0;g=h+4|0;c[g>>2]=$p(b<<2)|0;c[h>>2]=-1;b=c[a>>2]|0;a:do if((b|0)>0){f=a+4|0;e=0;d=0;do{if(!(c[(c[f>>2]|0)+(e*12|0)>>2]|0)){d=ju(a,e,d,h)|0;b=c[a>>2]|0}e=e+1|0}while((e|0)<(b|0));d=c[h>>2]|0;if((d|0)!=-1){b=c[g>>2]|0;a=a+4|0;g=0;while(1){f=c[b+(d<<2)>>2]|0;e=d;d=d+-1|0;c[h>>2]=d;if((f|0)<=-1)break a;c[(c[a>>2]|0)+(f*12|0)+4>>2]=g;if(!e)break;else g=g+1|0}}else i=6}else i=6;while(0);if((i|0)==6)b=c[g>>2]|0;pB(b);pB(h)}}return}function ju(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=a+4|0;f=c[i>>2]|0;j=f+(b*12|0)|0;c[j>>2]=1;f=c[f+(b*12|0)+8>>2]|0;d=d+1|0;g=Ti(f)|0;if(g){h=f+4|0;do{f=c[(c[h>>2]|0)+8>>2]|0;if((f|0)<0)f=c[g+8>>2]|0;else f=g+(0-f)|0;f=c[f>>2]|0;if(!(c[(c[i>>2]|0)+(f*12|0)>>2]|0))d=ju(a,f,d,e)|0;g=c[g>>2]|0}while((g|0)!=0)}c[j>>2]=2;j=(c[e>>2]|0)+1|0;c[e>>2]=j;c[(c[e+4>>2]|0)+(j<<2)>>2]=b;return d+1|0}function ku(a){a=a|0;var d=0,e=0;e=c[a>>2]|0;c[a+8>>2]=e;c[a+12>>2]=c[a+4>>2];if((e|0)>0){a=c[a+16>>2]|0;d=0;do{b[a+(d*40|0)+18>>1]=b[a+(d*40|0)+16>>1]|0;d=d+1|0}while((d|0)<(e|0))}return}function lu(a){a=a|0;var d=0,e=0,f=0,g=0;g=c[a+8>>2]|0;c[a>>2]=g;c[a+4>>2]=c[a+12>>2];if((g|0)>0){d=c[a+16>>2]|0;e=(g|0)>1;f=0;do{b[d+(f*40|0)+16>>1]=b[d+(f*40|0)+18>>1]|0;f=f+1|0}while((f|0)<(g|0));d=e?g:1}else d=0;if((d|0)<(g+2|0)){f=c[a+16>>2]|0;e=g+1|0;while(1){b[f+(d*40|0)+16>>1]=0;if((d|0)<(e|0))d=d+1|0;else break}}return}function mu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=$p(((c[a>>2]|0)*6|0)+(b<<1)<<2)|0;c[a+20>>2]=$p((((c[a>>2]|0)*3|0)+b|0)*24|0)|0;i=c[a>>2]|0;if((i|0)>0){g=c[a+16>>2]|0;d=(i|0)>1?i:1;h=e+(d*24|0)|0;f=0;while(1){c[g+(f*40|0)+28>>2]=e;f=f+1|0;if((f|0)>=(i|0))break;else e=e+24|0}e=h}else d=0;if((d|0)<(i+2|0)){g=c[a+16>>2]|0;f=i+1|0;while(1){c[g+(d*40|0)+28>>2]=e;if((d|0)<(f|0)){e=e+(b<<2)|0;d=d+1|0}else break}}return}function nu(a){a=a|0;var b=0;b=$p(24)|0;c[b>>2]=0;c[b+16>>2]=$p(a*40|0)|0;return b|0}function ou(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=c[a>>2]|0;c[d+(b*40|0)+32>>2]=b;c[a>>2]=b+1;return d+(b*40|0)|0}function pu(a,d,e,f){a=a|0;d=d|0;e=e|0;f=+f;var g=0,i=0,j=0;g=a+4|0;i=c[g>>2]|0;c[g>>2]=i+1;g=c[a+20>>2]|0;a=g+(i*24|0)|0;c[g+(i*24|0)+12>>2]=c[d+32>>2];c[g+(i*24|0)+16>>2]=c[e+32>>2];h[a>>3]=f;c[g+(i*24|0)+8>>2]=0;g=d+16|0;j=b[g>>1]|0;c[(c[d+28>>2]|0)+(j<<16>>16<<2)>>2]=i;b[g>>1]=j+1<<16>>16;d=e+16|0;g=b[d>>1]|0;c[(c[e+28>>2]|0)+(g<<16>>16<<2)>>2]=i;b[d>>1]=g+1<<16>>16;return a|0}function qu(a){a=a|0;var b=0;b=a+16|0;pB(c[(c[b>>2]|0)+28>>2]|0);pB(c[b>>2]|0);pB(c[a+20>>2]|0);pB(a);return}function ru(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f=c[a>>2]|0;if((f|0)>0){g=c[a+16>>2]|0;i=0;do{c[g+(i*40|0)>>2]=-2147483648;i=i+1|0}while((i|0)<(f|0))}yw();a:do if(!(Bw(d)|0)){c[d+8>>2]=0;c[d>>2]=0;f=Dw()|0;if(!f)f=0;else{q=a+20|0;p=a+16|0;while(1){c[f>>2]=0-(c[f>>2]|0);if((f|0)==(e|0)){f=0;break a}j=f+16|0;if((b[j>>1]|0)>0){k=f+28|0;l=f+32|0;o=0;do{g=c[(c[k>>2]|0)+(o<<2)>>2]|0;d=c[q>>2]|0;m=d+(g*24|0)|0;i=c[d+(g*24|0)+12>>2]|0;n=c[p>>2]|0;if((i|0)==(c[l>>2]|0))i=c[d+(g*24|0)+16>>2]|0;g=n+(i*40|0)|0;d=c[g>>2]|0;do if((d|0)<0){a=~~-(+(c[f>>2]|0)+ +h[m>>3]);if((d|0)==-2147483648){c[g>>2]=a;if(Bw(g)|0){f=1;break a}c[n+(i*40|0)+8>>2]=f;c[n+(i*40|0)+12>>2]=m;break}else{if((d|0)>=(a|0))break;Ew(g,a);c[n+(i*40|0)+8>>2]=f;c[n+(i*40|0)+12>>2]=m;break}}while(0);o=o+1|0}while((o|0)<(b[j>>1]|0))}f=Dw()|0;if(!f){f=0;break}}}}else f=1;while(0);return f|0}function su(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]|0;tn(d,3,b)|0;b=c[d+92>>2]|0;do if(b){g=c[b+16>>2]|0;h=c[g+12>>2]|0;c[a+76>>2]=h;f=c[g+16>>2]|0;c[a+84>>2]=f;g=c[g>>2]|0;c[a+80>>2]=g;c[a+88>>2]=c[b+4>>2];e=a+152|0;f=c[e>>2]|c[f>>2];c[e>>2]=f;b=c[d+80>>2]|0;if(!b){c[a+60>>2]=0;b=999;break}d=c[b+16>>2]|0;c[a+60>>2]=c[d+12>>2];i=c[d+16>>2]|0;c[a+68>>2]=i;c[a+72>>2]=c[b+4>>2];c[e>>2]=f|c[i>>2];if(!h){c[a+64>>2]=g;b=300;break}else{c[a+64>>2]=c[d>>2];b=300;break}}else b=999;while(0);return b|0}function tu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if(!(Ym(a)|0))if((b|0)!=0?(d=c[b>>2]|0,(d|0)!=0):0){zb[d&127](a);b=0}else b=0;else b=1;return b|0}function uu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+4>>2]|0,(d|0)!=0):0)zb[d&127](a);c[(c[a>>2]|0)+24>>2]=0;cn(a);return}function vu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0;g=+h[a+504>>3];j=+h[a+512>>3];i=+h[a+352>>3];k=i*+h[a+520>>3];i=i*+h[a+528>>3];f=(e|0)>0;if(!(c[a+360>>2]|0)){if(f){f=0;do{h[d+(f<<4)>>3]=k*(g+ +h[b+(f<<4)>>3]);h[d+(f<<4)+8>>3]=i*(j+ +h[b+(f<<4)+8>>3]);f=f+1|0}while((f|0)!=(e|0))}}else if(f){f=0;do{l=-(k*(j+ +h[b+(f<<4)+8>>3]));h[d+(f<<4)+8>>3]=i*(g+ +h[b+(f<<4)>>3]);h[d+(f<<4)>>3]=l;f=f+1|0}while((f|0)!=(e|0))}return d|0}function wu(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+8>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function xu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+12>>2]|0,(d|0)!=0):0)zb[d&127](a);bn(a);return}function yu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+24>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function zu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+28>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Au(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+16>>2]|0,(d|0)!=0):0){b=c[a+160>>2]|0;Kb[d&31](a,c[(c[(c[a>>2]|0)+308>>2]|0)+(b<<2)>>2]|0,b,c[a+156>>2]|0)}return}function Bu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+20>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Cu(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+32>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Du(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+36>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Eu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+40>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Fu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+44>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Gu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+48>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Hu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+52>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Iu(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+56>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Ju(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+60>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Ku(a,b){a=a|0;b=b|0;var d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+64>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Lu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+68>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Mu(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[a+60>>2]|0;if((g|0)!=0?(h=c[g+72>>2]|0,(h|0)!=0):0)xb[h&7](a,b,d,e,f);return}function Nu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+76>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Ou(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+60>>2]|0;if((d|0)!=0?(e=c[d+80>>2]|0,(e|0)!=0):0)Bb[e&31](a,b);return}function Pu(a){a=a|0;var b=0,d=0;b=c[a+60>>2]|0;if((b|0)!=0?(d=c[b+84>>2]|0,(d|0)!=0):0)zb[d&127](a);return}function Qu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+32|0;q=r+16|0;p=r;n=c[b+60>>2]|0;s=c[e>>2]|0;do if((s|0)!=0?(a[s>>0]|0)!=0:0){s=c[b+16>>2]|0;if((s|0)!=0?(c[s+144>>2]|0)==0:0)break;if(!(c[b+152>>2]&8192)){l=+h[d>>3];f=+h[d+8>>3];g=+h[b+504>>3];j=+h[b+512>>3];m=+h[b+352>>3];if(!(c[b+360>>2]|0)){k=l+g;f=f+j}else{k=-(f+j);f=l+g}l=m*+h[b+528>>3]*f;h[p>>3]=m*+h[b+520>>3]*k;h[p+8>>3]=l}else{c[p>>2]=c[d>>2];c[p+4>>2]=c[d+4>>2];c[p+8>>2]=c[d+8>>2];c[p+12>>2]=c[d+12>>2]}if((n|0)!=0?(o=c[n+88>>2]|0,(o|0)!=0):0){c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];Gb[o&127](b,q,e)}}while(0);i=r;return}function Ru(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=c[b+60>>2]|0;g=(c[b+16>>2]|0)+16|0;i=jA(d,58)|0;h=(i|0)!=0;if(h)a[i>>0]=0;if((e|0)!=0?(bv(c[b+68>>2]|0,d,g),f=c[e+92>>2]|0,(f|0)!=0):0)Bb[f&31](b,g);if(h)a[i>>0]=58;return}function Su(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=c[b+60>>2]|0;g=(c[b+16>>2]|0)+56|0;i=jA(d,58)|0;h=(i|0)!=0;if(h)a[i>>0]=0;if((e|0)!=0?(bv(c[b+68>>2]|0,d,g),f=c[e+92>>2]|0,(f|0)!=0):0)Bb[f&31](b,g);if(h)a[i>>0]=58;return}function Tu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var f=0,h=0,i=0,j=0;f=c[a+60>>2]|0;h=a+16|0;i=(c[h>>2]|0)+96|0;if((f|0)!=0?(bv(c[a+68>>2]|0,b,i),j=c[f+92>>2]|0,(j|0)!=0):0)Bb[j&31](a,i);b=c[h>>2]|0;c[b+136>>2]=d;g[b+140>>2]=e;return}function Uu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;k=m;j=c[b+60>>2]|0;b=c[b+16>>2]|0;c[b+160>>2]=d;a:do if((d|0)!=0&(j|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0){j=b+144|0;g=b+152|0;f=b+148|0;b=e;while(1){d=d+4|0;b:do switch(a[b>>0]|0){case 115:{if(!(lA(b,134426)|0)){c[j>>2]=3;break b}if(!(lA(b,134447)|0)){e=b+1|0;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}h[g>>3]=+Xz(b)}else l=26;break}case 100:{if(!(lA(b,161262)|0)){c[j>>2]=1;break b}if(!(lA(b,161269)|0))c[j>>2]=2;else l=26;break}case 105:{if((lA(b,157791)|0)!=0?(lA(b,134432)|0)!=0:0){l=26;break b}c[j>>2]=0;break}case 98:{if(!(lA(b,134442)|0))h[g>>3]=2.0;else l=26;break}case 102:{if(!(lA(b,134460)|0))c[f>>2]=1;else l=26;break}case 117:{if(!(lA(b,134467)|0))c[f>>2]=0;else l=26;break}case 116:{if(lA(b,134476)|0)l=26;break}default:l=26}while(0);if((l|0)==26){l=0;c[k>>2]=b;dj(0,134484,k)|0}b=c[d>>2]|0;if(!b)break a}}while(0);i=m;return}function Vu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0;g=i;i=i+32|0;f=g;d=c[a+60>>2]|0;if(((d|0)!=0?(j=d+96|0,(c[j>>2]|0)!=0):0)?(c[(c[a+16>>2]|0)+144>>2]|0)!=0:0){d=b+16|0;h[f>>3]=(+h[b>>3]+ +h[d>>3])*.5;h[f+8>>3]=(+h[b+8>>3]+ +h[b+24>>3])*.5;b=f+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];if(!(c[a+152>>2]&8192))vu(a,f,f,2)|0;Gb[c[j>>2]&127](a,f,e)}i=g;return}function Wu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;n=o;f=c[a+60>>2]|0;if(((f|0)!=0?(l=f+100|0,(c[l>>2]|0)!=0):0)?(m=a+16|0,k=c[m>>2]|0,(c[k+144>>2]|0)!=0):0){if(!(e&4))g=0;else{e=e&-5;f=k+16|0;g=n;h=f;j=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));g=f;h=k+56|0;j=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));g=1}if(!(c[a+152>>2]&8192)){if((c[14855]|0)<(d|0)){f=d+10|0;c[14855]=f;f=cq(c[14856]|0,f<<4)|0;c[14856]=f}else f=c[14856]|0;vu(a,b,f,d)|0;Kb[c[l>>2]&31](a,c[14856]|0,d,e)}else Kb[c[l>>2]&31](a,b,d,e);if(g){g=(c[m>>2]|0)+16|0;h=n;j=g+40|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0))}}i=o;return}function Xu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+64|0;f=e;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];g=f+32|0;b=b+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];h[f+16>>3]=+h[f>>3];h[f+24>>3]=+h[f+40>>3];h[f+48>>3]=+h[g>>3];h[f+56>>3]=+h[f+8>>3];Wu(a,f,4,d);i=e;return}function Yu(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=c[a+60>>2]|0;do if(((h|0)!=0?(j=h+104|0,i=c[j>>2]|0,(i|0)!=0):0)?(c[(c[a+16>>2]|0)+144>>2]|0)!=0:0){if(c[a+152>>2]&8192){vb[i&15](a,b,d,e,f,g&255);break}if((c[14855]|0)<(d|0)){h=d+10|0;c[14855]=h;h=cq(c[14856]|0,h<<4)|0;c[14856]=h}else h=c[14856]|0;vu(a,b,h,d)|0;vb[c[j>>2]&15](a,c[14856]|0,d,e,f,g&255)}while(0);return}function Zu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a+60>>2]|0;do if(((e|0)!=0?(g=e+108|0,f=c[g>>2]|0,(f|0)!=0):0)?(c[(c[a+16>>2]|0)+144>>2]|0)!=0:0){if(c[a+152>>2]&8192){Gb[f&127](a,b,d);break}if((c[14855]|0)<(d|0)){e=d+10|0;c[14855]=e;e=cq(c[14856]|0,e<<4)|0;c[14856]=e}else e=c[14856]|0;vu(a,b,e,d)|0;Gb[c[g>>2]&127](a,c[14856]|0,d)}while(0);return}function _u(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+60>>2]|0;if(((d|0)!=0?(e|0)!=0&(a[d>>0]|0)!=0:0)?(f=c[e+112>>2]|0,(f|0)!=0):0)Bb[f&31](b,d);return}function $u(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+80|0;B=C+32|0;A=C;n=C+64|0;y=c[b+60>>2]|0;if(!b)Ia(134710,134537,691,134548);if(!d)Ia(134567,134537,692,134548);if(!(a[d>>0]|0))Ia(134572,134537,693,134548);z=vn(d)|0;if(!z){if((y|0)!=0&(mr(d)|0)!=0?(m=c[y+116>>2]|0,(m|0)!=0):0)xb[m&7](b,d,e,f,g&255)}else{w=b+432|0;c[B>>2]=c[w>>2];c[B+4>>2]=c[w+4>>2];c[B+8>>2]=c[w+8>>2];c[B+12>>2]=c[w+12>>2];yn(n,z,B);w=c[n>>2]|0;v=c[n+4>>2]|0;if(!((w|0)<1&(v|0)<1)){u=A+16|0;c[u>>2]=c[e>>2];c[u+4>>2]=c[e+4>>2];c[u+8>>2]=c[e+8>>2];c[u+12>>2]=c[e+12>>2];c[A>>2]=c[e>>2];c[A+4>>2]=c[e+4>>2];c[A+8>>2]=c[e+8>>2];c[A+12>>2]=c[e+12>>2];if((f|0)>1){n=A+8|0;d=A+24|0;p=+h[u>>3];l=+h[A>>3];k=+h[n>>3];o=+h[d>>3];m=1;do{s=+h[e+(m<<4)>>3];l=l<s?l:s;t=+h[e+(m<<4)+8>>3];k=k<t?k:t;p=p>s?p:s;o=o>t?o:t;m=m+1|0}while((m|0)!=(f|0));h[A>>3]=l;h[n>>3]=k;h[u>>3]=p;h[d>>3]=o;f=A;x=d;e=u}else{m=A+24|0;d=A+8|0;f=A;x=m;n=d;e=u;p=+h[u>>3];l=+h[A>>3];o=+h[m>>3];k=+h[d>>3]}r=p-l;q=o-k;l=+(v|0);k=+(w|0);o=r/k;p=q/l;do if(a[j>>0]|0){if(!(hA(j,134580)|0)){k=k*o;break}if(!(hA(j,134586)|0)){l=l*p;break}if(!(hA(j,134593)|0)){l=l*p;k=k*o;break}if((Ls(j)|0)<<24>>24)if(o<p){l=l*o;k=k*o;break}else{l=l*p;k=k*p;break}}while(0);if(k<r){t=(r-k)*.5;h[f>>3]=t+ +h[f>>3];h[e>>3]=+h[e>>3]-t}if(l<q){t=(q-l)*.5;h[n>>3]=t+ +h[n>>3];h[x>>3]=+h[x>>3]-t}k=+h[f>>3];if(!(c[b+152>>2]&8192)){l=+h[n>>3];q=+h[b+504>>3];r=+h[b+512>>3];t=+h[b+352>>3];s=t*+h[b+520>>3];t=t*+h[b+528>>3];d=(c[b+360>>2]|0)==0;if(d){o=k+q;l=l+r}else{o=-(l+r);l=k+q}k=s*o;h[f>>3]=k;h[n>>3]=t*l;m=A+16|0;l=+h[m>>3];p=+h[x>>3];if(d){o=l+q;l=p+r}else{o=-(p+r);l=l+q}s=s*o;h[m>>3]=s;h[x>>3]=t*l;l=s}else l=+h[e>>3];if(k>l){h[f>>3]=l;h[e>>3]=k}k=+h[n>>3];l=+h[x>>3];if(k>l){h[n>>3]=l;h[x>>3]=k}if(y){y=c[b+72>>2]|0;c[B>>2]=c[A>>2];c[B+4>>2]=c[A+4>>2];c[B+8>>2]=c[A+8>>2];c[B+12>>2]=c[A+12>>2];c[B+16>>2]=c[A+16>>2];c[B+20>>2]=c[A+20>>2];c[B+24>>2]=c[A+24>>2];c[B+28>>2]=c[A+28>>2];ev(b,z,B,g,y)}}}i=C;return}function av(a,b){a=a|0;b=+b;if(c[a+60>>2]|0)h[(c[a+16>>2]|0)+152>>3]=b;return}function bv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;k=l+8|0;j=l;c[d>>2]=b;c[d+32>>2]=5;e=Jv(b)|0;f=c[a+16>>2]|0;if(!((f|0)!=0?(Zz(e,f,c[a+20>>2]|0,4,41)|0)!=0:0))h=3;a:do if((h|0)==3){switch(Kv(b,d,c[a+24>>2]|0)|0){case 0:break a;case 1:break;default:{dj(1,134633,g)|0;break a}}e=aq((pA(b)|0)+16|0)|0;c[j>>2]=b;Oz(e,134598,j)|0;if(ap(e)|0){c[k>>2]=b;dj(0,134607,k)|0}pB(e)}while(0);i=l;return}function cv(a,b){a=a|0;b=b|0;b=tn(a,1,b)|0;if(!b)b=999;else{b=c[b+16>>2]|0;c[a+184>>2]=c[b+4>>2];c[a+172>>2]=c[b+12>>2];c[a+176>>2]=c[b>>2];c[a+180>>2]=c[b+16>>2];b=300}return b|0}function dv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j;xl(b,160878,280,1)|0;g=b+16|0;c[(c[g>>2]|0)+144>>2]=a;if((hl(b)|0)!=(b|0))c[(c[(hl(b)|0)+16>>2]|0)+144>>2]=a;e=zj(b,134654)|0;d=a+172|0;if((e|0)!=0?(c[d>>2]=0,(cv(a,e)|0)==999):0){d=un(a,1,e)|0;c[f>>2]=e;c[f+4>>2]=d;dj(1,134661,f)|0;d=-1}else{e=c[d>>2]|0;if(!e)d=-1;else{ep(1);Lp(b,c[c[a+180>>2]>>2]&1);d=c[(c[g>>2]|0)+8>>2]|0;c[(c[(hl(b)|0)+16>>2]|0)+8>>2]=d;pr();d=c[e>>2]|0;if((d|0)!=0?(zb[d&127](b),h=c[e+4>>2]|0,(h|0)!=0):0)c[(c[g>>2]|0)+148>>2]=h;ep(0);d=0}}i=j;return d|0}function ev(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+176|0;m=n+8|0;k=n;j=n+40|0;if(!b)Ia(134710,134714,52,134728);if(!d)Ia(134740,134714,53,134728);h=c[d+8>>2]|0;if(!h)Ia(134743,134714,54,134728);if(!(a[h>>0]|0))Ia(134752,134714,55,134728);mA(j,c[d+28>>2]|0)|0;h=j+(pA(j)|0)|0;a[h>>0]=58;a[h+1>>0]=0;iA(j,g)|0;h=tn(c[b>>2]|0,4,j)|0;if(!h){c[k>>2]=j;dj(0,134764,k)|0;h=c[b+92>>2]|0}else{k=c[h+16>>2]|0;h=c[k+12>>2]|0;c[b+92>>2]=h;c[b+96>>2]=c[k>>2]}if((h|0)!=0?(l=c[h>>2]|0,(l|0)!=0):0){c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];Kb[l&31](b,d,m,f)}i=n;return}function fv(a){a=a|0;return 1}function gv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+336|0;h[c>>3]=10.0/+h[b+352>>3]+ +h[c>>3];a[b+537>>0]=1;return 0}function hv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+336|0;h[c>>3]=+h[c>>3]-10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function iv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+344|0;h[c>>3]=+h[c>>3]-10.0/+h[b+352>>3];a[b+537>>0]=1;return 0}function jv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+344|0;h[c>>3]=10.0/+h[b+352>>3]+ +h[c>>3];a[b+537>>0]=1;return 0}function kv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+352|0;h[c>>3]=+h[c>>3]*1.1;a[b+537>>0]=1;return 0}function lv(b){b=b|0;var c=0;a[b+536>>0]=0;c=b+352|0;h[c>>3]=+h[c>>3]/1.1;a[b+537>>0]=1;return 0}function mv(b){b=b|0;var d=0,e=0,f=0.0,g=0.0;e=b+536|0;d=(a[e>>0]|0)==0;a[e>>0]=d&1;if(d){d=c[b+448>>2]|0;e=c[b+452>>2]|0;g=+(d>>>0)/+(d|0);f=+(e>>>0)/+(e|0);h[b+352>>3]=g<f?g:f;e=b+336|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;a[b+537>>0]=1}return 0}function nv(b){b=b|0;var e=0,f=0;e=c[(c[b>>2]|0)+168>>2]|0;f=b+580|0;if(!(c[f>>2]|0)){c[f>>2]=e;f=(c[e+16>>2]|0)+112|0;a[f>>0]=d[f>>0]|0|2;yv(b,e)}$o(b,e);a[b+540>>0]=1;return}+function zn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.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.0,M=0,N=0,O=0,P=0;P=i;i=i+2432|0;D=P+2160|0;C=P+2152|0;B=P+2144|0;A=P+2136|0;z=P+2128|0;m=P+2120|0;n=P+2104|0;O=P+2096|0;J=P+2072|0;I=P+2056|0;F=P+1032|0;K=P+8|0;E=P;y=P+2408|0;x=P+2176|0;w=P+2208|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){if(((c[13357]|0)==0?(f=c[13356]|0,(c[13108]|0)!=(f|0)):0)?(c[13108]=f,g=c[13106]|0,(g|0)!=0):0){Pi(g)|0;c[13106]=0}L=+h[(c[(c[d+16>>2]|0)+8>>2]|0)+24>>3];L=!(L>=1.0)?96.0:L;if(!(c[13106]|0))c[13106]=Vi(52436,c[12577]|0)|0;f=vn(e)|0;do if(!f){f=$p(64)|0;if(!f){g=-1;f=-1}else{H=f+8|0;c[H>>2]=Il(0,e)|0;if(!((wn(f)|0)<<24>>24)){An(f);g=-1;f=-1;break}G=f+20|0;g=c[G>>2]|0;if(!g)Ia(122021,121920,653,122027);a:do if((Ez(J,1,20,g)|0)==20){g=0;while(1){if(!(dA(J,c[52472+(g<<4)>>2]|0,c[52472+(g<<4)+4>>2]|0)|0))break;g=g+1|0;if(g>>>0>=10){M=26;break a}}k=f+28|0;c[k>>2]=c[52472+(g<<4)+12>>2];d=c[52472+(g<<4)+8>>2]|0;l=f+24|0;c[l>>2]=d;b:do switch(g|0){case 7:{while(1){if(!(yz(w,200,c[G>>2]|0)|0)){M=24;break}if(!(dA(w,122044,4)|0)){M=21;break}}if((M|0)==21){c[k>>2]=125602;c[l>>2]=8;break b}else if((M|0)==24){g=c[l>>2]|0;M=27;break b}break}case 8:{if(!(dA(J+8|0,122049,4)|0)){c[k>>2]=122054;c[l>>2]=11;M=67}else{g=d;M=27}break}default:{g=d;M=27}}while(0);c:do if((M|0)==27)switch(g|0){case 0:{M=28;break a}case 11:{M=67;break c}case 8:break c;case 2:{c[f+48>>2]=0;Hz(c[G>>2]|0,6,0)|0;if((Bn(c[G>>2]|0,2,J)|0)<<24>>24!=0?(Bn(c[G>>2]|0,2,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}break a}case 3:{c[f+48>>2]=0;Hz(c[G>>2]|0,16,0)|0;if((Cn(c[G>>2]|0,4,J)|0)<<24>>24!=0?(Cn(c[G>>2]|0,4,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}break a}case 1:{c[f+48>>2]=0;Hz(c[G>>2]|0,16,0)|0;if((((Bn(c[G>>2]|0,2,J)|0)<<24>>24!=0?(Bn(c[G>>2]|0,2,I)|0)<<24>>24!=0:0)?(Bn(c[G>>2]|0,2,F)|0)<<24>>24!=0:0)?(Bn(c[G>>2]|0,2,K)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2]<<16|c[I>>2];c[f+44>>2]=c[F>>2]<<16|c[K>>2]}break a}case 4:{c[f+48>>2]=0;d:do if((Cn(c[G>>2]|0,1,J)|0)<<24>>24){while(1){d=c[J>>2]|0;if((d|0)!=255?(jA(122124,d)|0)==0:0){if((d|0)==192){M=48;break}g=c[G>>2]|0;if((d|0)==194){M=53;break}if(!((Cn(g,2,I)|0)<<24>>24))break d;Hz(c[G>>2]|0,(c[I>>2]|0)+-2|0,1)|0}if(!((Cn(c[G>>2]|0,1,J)|0)<<24>>24))break d}if((M|0)==48){if(!((Cn(c[G>>2]|0,3,E)|0)<<24>>24))break;if(!((Cn(c[G>>2]|0,2,F)|0)<<24>>24))break;if(!((Cn(c[G>>2]|0,2,K)|0)<<24>>24))break;c[f+44>>2]=c[F>>2];c[f+40>>2]=c[K>>2];break}else if((M|0)==53){if(!((Cn(g,3,E)|0)<<24>>24))break;if(!((Cn(c[G>>2]|0,2,F)|0)<<24>>24))break;if(!((Cn(c[G>>2]|0,2,K)|0)<<24>>24))break;c[f+44>>2]=c[F>>2];c[f+40>>2]=c[K>>2];break}}while(0);break a}case 6:{c[f+48>>2]=72;Hz(c[G>>2]|0,0,0)|0;e:do if(yz(K,1024,c[G>>2]|0)|0){while(1){g=wA(K,122136)|0;if((g|0)!=0?(c[n>>2]=J,c[n+4>>2]=I,c[n+8>>2]=F,c[n+12>>2]=E,(Pz(g,127888,n)|0)==4):0)break;if(!(yz(K,1024,c[G>>2]|0)|0))break e}J=c[J>>2]|0;c[f+32>>2]=J;K=c[I>>2]|0;c[f+36>>2]=K;c[f+40>>2]=(c[F>>2]|0)-J;c[f+44>>2]=(c[E>>2]|0)-K}while(0);break a}case 5:{c[f+48>>2]=0;Hz(c[G>>2]|0,0,0)|0;d=c[G>>2]|0;do{if(!(yz(F,1024,d)|0)){M=104;break}g=wA(F,122249)|0}while((g|0)==0);if((M|0)==104)break a;k=I+4|0;c[k>>2]=F;c[I>>2]=g+9;l=I+8|0;c[l>>2]=d;En(I);g=c[I>>2]|0;d=a[g>>0]|0;if(!(d<<24>>24)){k=c[k>>2]|0;if(!(yz(k,1024,c[l>>2]|0)|0))d=0;else{c[I>>2]=k;d=a[k>>0]|0;g=k}d=d&255}else d=d<<24>>24;if((((d|0)==91?(c[I>>2]=g+1,Fn(I,K),o=+$z(K,J),(c[J>>2]|0)!=(K|0)):0)?(Fn(I,K),p=+$z(K,J),(c[J>>2]|0)!=(K|0)):0)?(Fn(I,K),q=+$z(K,J),(c[J>>2]|0)!=(K|0)):0){Fn(I,K);j=+$z(K,J);if((c[J>>2]|0)==(K|0))break a;c[f+32>>2]=~~o;c[f+36>>2]=~~p;c[f+40>>2]=~~(q-o);c[f+44>>2]=~~(j-p);break a}break a}case 12:{c[f+48>>2]=0;Hz(c[G>>2]|0,6,0)|0;if((Cn(c[G>>2]|0,1,J)|0)<<24>>24!=0?(Cn(c[G>>2]|0,1,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}break a}default:break a}while(0);if((M|0)==67){c[f+48>>2]=0;Hz(c[G>>2]|0,15,0)|0;K=(xz(c[G>>2]|0)|0)==88;g=c[G>>2]|0;if(K){Hz(g,24,0)|0;if((Bn(c[G>>2]|0,4,J)|0)<<24>>24!=0?(Bn(c[G>>2]|0,4,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}}else{Hz(g,26,0)|0;if((Bn(c[G>>2]|0,2,J)|0)<<24>>24!=0?(Bn(c[G>>2]|0,2,I)|0)<<24>>24!=0:0){c[f+40>>2]=c[J>>2];c[f+44>>2]=c[I>>2]}}break}if(!(c[13158]|0)){if($y(52636,122151,1)|0){c[m>>2]=122151;dj(1,122178,m)|0}c[13158]=52636}Hz(c[G>>2]|0,0,0)|0;f:do if(!(yz(w,200,c[G>>2]|0)|0)){d=0;g=0}else{r=x+12|0;s=x+20|0;t=x+8|0;u=x+16|0;v=x+4|0;d=0;k=0;g=0;l=0;do{if(k<<24>>24==0|l<<24>>24==0)e=w;else break f;g:while(1){m=k;n=l;h:while(1){if(bz(52636,e,4,x,0)|0){k=m;l=n;break g}while(1){a[e+(c[r>>2]|0)>>0]=0;a[e+(c[s>>2]|0)>>0]=0;l=e+(c[t>>2]|0)|0;k=e+(c[u>>2]|0)|0;e=e+((c[v>>2]|0)+1)|0;if(!(lA(l,134580)|0))break;if(!(lA(l,134586)|0)){l=n;break h}if((lA(l,122225)|0)==0?(c[D>>2]=I,c[D+4>>2]=F,c[D+8>>2]=K,c[D+12>>2]=E,(Pz(k,122233,D)|0)==4):0){M=99;break g}if(bz(52636,e,4,x,0)|0){k=m;l=n;break g}}c[z>>2]=J;c[z+4>>2]=y;do if((Pz(k,122215,z)|0)==2){g=Dn(+h[J>>3],y)|0;l=1}else{c[A>>2]=J;if((Pz(k,124835,A)|0)!=1){l=n;break}g=Dn(+h[J>>3],122222)|0;l=1}while(0);if(!(m<<24>>24)){m=0;n=l}else{k=m;break g}}c[B>>2]=J;c[B+4>>2]=y;do if((Pz(k,122215,B)|0)==2){d=Dn(+h[J>>3],y)|0;k=1}else{c[C>>2]=J;if((Pz(k,124835,C)|0)!=1){k=m;break}d=Dn(+h[J>>3],122222)|0;k=1}while(0);if(!(l<<24>>24))l=0;else break}if((M|0)==99){M=0;d=~~(+h[E>>3]-+h[F>>3]+1.0)>>>0;k=1;g=~~(+h[K>>3]-+h[I>>3]+1.0)>>>0;l=1}}while((yz(w,200,c[G>>2]|0)|0)!=0)}while(0);c[f+48>>2]=0;c[f+40>>2]=g;c[f+44>>2]=d}else M=26;while(0);if((M|0)==26){c[f+28>>2]=122059;c[f+24>>2]=0;M=28}if((M|0)==28?(K=mr(c[H>>2]|0)|0,c[f+52>>2]=K,(K|0)==0):0){c[O>>2]=c[H>>2];dj(0,122065,O)|0;An(f);g=-1;f=-1;break}if((a[f+17>>0]|0)!=0?(N=c[G>>2]|0,(N|0)!=0):0){uz(N)|0;c[G>>2]=0}M=c[13106]|0;ub[c[M>>2]&31](M,f,1)|0;M=129}}else if((a[f+17>>0]|0)!=0?(k=f+20|0,l=c[k>>2]|0,(l|0)!=0):0){uz(l)|0;c[k>>2]=0;M=129}else M=129;while(0);if((M|0)==129){g=c[f+48>>2]|0;L=(g|0)==0?L:+(g|0);g=~~(+((c[f+40>>2]|0)*72|0)/L);f=~~(+((c[f+44>>2]|0)*72|0)/L)}c[b>>2]=g;c[b+4>>2]=f}else{c[b>>2]=-1;c[b+4>>2]=-1}i=P;return}function An(a){a=a|0;var b=0;b=c[a+8>>2]|0;if(b)Kl(0,b)|0;pB(a);return}function Bn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[d>>2]=0;a:do if(!b)e=1;else{f=0;while(1){e=xz(a)|0;if(vz(a)|0){e=0;break a}c[d>>2]=c[d>>2]|e<<(f<<3);f=f+1|0;if(f>>>0>=b>>>0){e=1;break}}}while(0);return e|0}function Cn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[d>>2]=0;a:do if(!b)e=1;else{f=0;while(1){e=xz(a)|0;if(vz(a)|0){e=0;break a}c[d>>2]=c[d>>2]<<8|e;f=f+1|0;if(f>>>0>=b>>>0){e=1;break}}}while(0);return e|0}function Dn(a,b){a=+a;b=b|0;do if(!(lA(b,122259)|0)){a=a*72.0;b=~~(a+(a>=0.0?.5:-.5))}else{if(!(lA(b,122262)|0)){a=a*72.0/96.0;b=~~(a+(a>=0.0?.5:-.5));break}if(!(lA(b,122265)|0)){a=a*72.0/6.0;b=~~(a+(a>=0.0?.5:-.5));break}if((lA(b,122222)|0)!=0?(lA(b,122268)|0)!=0:0){if(!(lA(b,122270)|0)){a=a*28.346456664;b=~~(a+(a>=0.0?.5:-.5));break}if(lA(b,122273)|0){b=0;break}a=a*2.8346456663999997;b=~~(a+(a>=0.0?.5:-.5));break}b=~~((a>=0.0?.5:-.5)+a)}while(0);return b|0}function En(b){b=b|0;var d=0;d=c[b>>2]|0;while(1){d=a[d>>0]|0;if(!(d<<24>>24))d=(Gn(b)|0)&255;else d=d<<24>>24;if(!((d&255)<<24>>24))break;if(!(Zx(d&255)|0))break;d=(c[b>>2]|0)+1|0;c[b>>2]=d}return}function Fn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;En(b);f=c[b>>2]|0;e=0;while(1){f=a[f>>0]|0;if(!(f<<24>>24))f=(Gn(b)|0)&255;else f=f<<24>>24;g=f<<24>>24;if(!g)break;if(!((g|0)==46|(g+-48|0)>>>0<10))break;a[d+e>>0]=f;e=e+1|0;f=(c[b>>2]|0)+1|0;c[b>>2]=f;if((e|0)==1023){e=1023;break}}a[d+e>>0]=0;return}function Gn(b){b=b|0;var d=0;d=b+4|0;if(!(yz(c[d>>2]|0,1024,c[b+8>>2]|0)|0))d=0;else{d=c[d>>2]|0;c[b>>2]=d;d=a[d>>0]|0}return d|0}function Hn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=c[b+20>>2]|0;if(a)uz(a)|0;if((c[b+52>>2]|0)!=0?(e=c[b+60>>2]|0,(e|0)!=0):0)zb[e&127](b);pB(b);return}function In(){var a=0;rj(0,1,124829,129969)|0;a=jn(0,1)|0;Av(a,0);return a|0}function Jn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0;p=i;i=i+304|0;o=p+24|0;n=p+8|0;f=p;m=p+40|0;if((cv(b,e)|0)!=999)if((dv(b,d)|0)==-1)e=-1;else{f=c[d+16>>2]|0;g=+h[f+16>>3];j=+h[f+24>>3];k=+h[f+32>>3];l=+h[f+40>>3];if(!(a[(c[f+8>>2]|0)+81>>0]|0)){c[o>>2]=~~(g+(g>=0.0?.5:-.5));c[o+4>>2]=~~(j+(j>=0.0?.5:-.5));c[o+8>>2]=~~(k+(k>=0.0?.5:-.5));c[o+12>>2]=~~(l+(l>=0.0?.5:-.5));Oz(m,122375,o)|0}else{c[n>>2]=~~(j+(j>=0.0?.5:-.5));c[n+4>>2]=~~(g+(g>=0.0?.5:-.5));c[n+8>>2]=~~(l+(l>=0.0?.5:-.5));c[n+12>>2]=~~(k+(k>=0.0?.5:-.5));Oz(m,122375,n)|0}Dj(d,126296,m,164137)|0;e=0}else{o=un(b,1,e)|0;c[f>>2]=e;c[f+4>>2]=o;dj(1,134661,f)|0;e=-1}i=p;return e|0}function Kn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j;f=c[b+60>>2]|0;nn(a,d)|0;b=c[a+164>>2]|0;c[b+56>>2]=su(b,c[b+52>>2]|0)|0;if((xl(f,160878,0,1)|0)!=0?(c[(c[f+16>>2]|0)+8>>2]|0)!=0:0)h=5;else if(!(c[b+152>>2]&67108864)){ej(122387,g);b=-1}else h=5;if((h|0)==5){c[b+36>>2]=e;if(!e){h=b+152|0;c[h>>2]=c[h>>2]|134217728}h=fp(a,f)|0;uu(b);rn(a);b=h}i=j;return b|0}function Ln(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j;f=c[b+60>>2]|0;nn(a,d)|0;b=c[a+164>>2]|0;c[b+56>>2]=su(b,c[b+52>>2]|0)|0;if((xl(f,160878,0,1)|0)!=0?(c[(c[f+16>>2]|0)+8>>2]|0)!=0:0)h=5;else if(!(c[b+152>>2]&67108864)){ej(122387,g);b=-1}else h=5;if((h|0)==5){mn(a,e);h=fp(a,f)|0;uu(b);cn(b);rn(a);b=h}i=j;return b|0}function Mn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;h=m+8|0;g=m;b=c[b+60>>2]|0;nn(a,d)|0;k=c[a+164>>2]|0;c[k+56>>2]=su(k,c[k+52>>2]|0)|0;if((xl(b,160878,0,1)|0)!=0?(c[(c[b+16>>2]|0)+8>>2]|0)!=0:0)l=5;else if(!(c[k+152>>2]&67108864)){ej(122387,g);b=-1}else l=5;do if((l|0)==5){if((e|0)!=0?(j=oB(4096)|0,c[e>>2]=j,(j|0)!=0):0){g=k+40|0;c[g>>2]=j;c[k+44>>2]=4096;d=k+48|0;c[d>>2]=0;b=fp(a,b)|0;uu(k);if(!b){c[e>>2]=c[g>>2];c[f>>2]=c[d>>2]}rn(a);break}dj(1,122408,h)|0;b=-1}while(0);i=m;return b|0}function Nn(a,b){a=a|0;b=b|0;zv(a,0,b);return}function On(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=Rk(a)|0;if(!e)d=0;else{d=0;do{f=Lj(b,e)|0;if(f)do{if(Wk(a,c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0,0)|0){Vj(a,f,1)|0;d=d+1|0}f=Nj(b,f)|0}while((f|0)!=0);e=Sk(a,e)|0}while((e|0)!=0)}return d|0}function Pn(a){a=a|0;a=wl(a,122445,0)|0;if(!a)Ia(122450,122453,529,122462);else return c[a+8>>2]|0;return 0}function Qn(b,d,e){b=b|0;d=d|0;e=e|0;var 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;y=i;i=i+4320|0;f=y+4180|0;w=y+24|0;t=y+8|0;s=y;x=y+4184|0;v=y+4160|0;k=y+48|0;j=y+64|0;l=y+40|0;if(ek(b)|0){zl(b,0,122471,-12,0);zl(b,1,122483,16,0);u=Rn(e,l,x)|0;c[f>>2]=c[12650];r=ak(122495,f,0)|0;Vn(r,b);e=Rk(b)|0;if(e)do{if(!(c[(wl(e,122483,0)|0)+12>>2]|0)){q=Xk(r,ok(e)|0,1)|0;xl(q,122483,16,1)|0;c[(c[q+16>>2]|0)+12>>2]=e;c[(wl(e,122483,0)|0)+12>>2]=q}e=Sk(b,e)|0}while((e|0)!=0);e=Rk(b)|0;if(e)do{h=c[(wl(e,122483,0)|0)+12>>2]|0;f=Lj(b,e)|0;if(f)do{g=c[(wl(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0,122483,0)|0)+12>>2]|0;do if((g|0)!=(h|0))if(g>>>0>h>>>0){Sj(r,h,g,0,1)|0;break}else{Sj(r,g,h,0,1)|0;break}while(0);f=Nj(b,f)|0}while((f|0)!=0);e=Sk(b,e)|0}while((e|0)!=0);q=aq((ek(r)|0)<<2)|0;c[k>>2]=j;c[k+4>>2]=j+4096;c[k+12>>2]=0;c[k+8>>2]=0;c[v>>2]=k;c[v+4>>2]=k;c[v+8>>2]=j;c[v+12>>2]=23;p=v+16|0;c[p>>2]=22;f=Rk(r)|0;a:do if(!f)e=0;else{n=u+(c[l>>2]|0)|0;o=c[22667]|0;g=22;e=0;while(1){if(!(Lb[g&63](f,-1)|0)){c[s>>2]=e;Oz(n,123409,s)|0;k=am(r,u,1)|0;l=am(b,u,1)|0;xl(l,122471,12,0)|0;a[(wl(l,122471,0)|0)+8>>0]=1;m=Tn(r,f,k,v)|0;g=Rk(k)|0;if(g)do{j=c[(c[g+16>>2]|0)+12>>2]|0;if((c[j>>2]&3|0)!=1){h=Rk(j)|0;if(h)do{Wk(l,h,1)|0;h=Sk(j,h)|0}while((h|0)!=0)}else Wk(l,j,1)|0;g=Sk(k,g)|0}while((g|0)!=0);g=On(l,c[l+60>>2]|0)|0;Xn(b,l,0);c[q+(e<<2)>>2]=l;fl(r,k)|0;if(a[124827]|0){c[t>>2]=e;c[t+4>>2]=m;c[t+8>>2]=g;Bz(o,122498,t)|0}e=e+1|0}f=Sk(r,f)|0;if(!f)break a;g=c[p>>2]|0}}while(0);if(a[124827]|0){t=c[22667]|0;o=ek(b)|0;p=fk(b)|0;s=ok(b)|0;c[w>>2]=o;c[w+4>>2]=p;c[w+8>>2]=e;c[w+12>>2]=s;Bz(t,122528,w)|0}dk(r)|0;Al(b,0,122471);Al(b,1,122483);Un(v);f=cq(q,e<<2)|0;if((u|0)!=(x|0))pB(u)}else{f=0;e=0}c[d>>2]=e;i=y;return f|0}function Rn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!b)b=122661;else{f=b;b:while(1){g=f;f=f+1|0;g=a[g>>0]|0;switch(g<<24>>24){case 0:break a;case 95:continue b;default:{}}if(!(Wx(g&255)|0)){b=122661;break a}}}while(0);g=pA(b)|0;f=g+25|0;if((f|0)>=129){e=aq(f)|0;if(!e)e=0;else h=6}else h=6;if((h|0)==6){mA(e,b)|0;c[d>>2]=g}return e|0}function Sn(a,b){a=a|0;b=b|0;Wk(b,a,1)|0;return}function Tn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;Yn(e,b);j=e+8|0;k=e+4|0;l=e+12|0;m=e+16|0;b=0;a:while(1){f=c[j>>2]|0;g=c[k>>2]|0;if((f|0)==(c[g>>2]|0)){if((g|0)==(c[e>>2]|0))break;f=c[g+8>>2]|0;c[k>>2]=f;f=c[f+4>>2]|0;c[j>>2]=f}i=f+-4|0;c[j>>2]=i;i=c[i>>2]|0;if(!i)break;b=b+1|0;f=c[l>>2]|0;if(f)Bb[f&31](i,d);f=Qj(a,i)|0;if(!f)continue;while(1){h=c[f>>2]&3;g=c[((h|0)==3?f:f+48|0)+40>>2]|0;if((g|0)==(i|0))g=c[((h|0)==2?f:f+-48|0)+40>>2]|0;if(!(Lb[c[m>>2]&63](g,-1)|0))Yn(e,g);f=Rj(a,f,i)|0;if(!f)continue a}}return b|0}function Un(a){a=a|0;var b=0;a=c[(c[a>>2]|0)+12>>2]|0;if(a)do{b=a;a=c[a+12>>2]|0;pB(c[b>>2]|0);pB(b)}while((a|0)!=0);return}function Vn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+16|0;g=h;b=bm(b)|0;if(b){f=c[22667]|0;do{if(!(rA(ok(b)|0,131620,7)|0)){e=Xk(a,ok(b)|0,1)|0;xl(e,122483,16,1)|0;c[(c[e+16>>2]|0)+12>>2]=b;d=Rk(b)|0;if(d)do{if(c[(wl(d,122483,0)|0)+12>>2]|0){l=ok(d)|0;k=ok(b)|0;j=ok(c[(wl(d,122483,0)|0)+12>>2]|0)|0;c[g>>2]=l;c[g+4>>2]=k;c[g+8>>2]=j;Bz(f,122575,g)|0}c[(wl(d,122483,0)|0)+12>>2]=e;d=Sk(b,d)|0}while((d|0)!=0)}else Vn(a,b);b=cm(b)|0}while((b|0)!=0)}i=h;return}function Wn(b,d){b=b|0;d=d|0;var e=0;b=(c[b+16>>2]|0)+8|0;e=a[b>>0]|0;if((d|0)>=0)a[b>>0]=d;return e|0}function Xn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;b=bm(b)|0;if(b){i=(e|0)!=0;h=(e|0)==0;do{if(!(a[(wl(b,122471,0)|0)+8>>0]|0)){e=Rk(b)|0;if(!e)e=0;else{f=0;do{g=Xk(d,ok(e)|0,0)|0;if(g){if(!f)f=am(d,ok(b)|0,1)|0;Wk(f,g,1)|0}e=Sk(b,e)|0}while((e|0)!=0);e=f}if(i&(e|0)==0)e=am(d,ok(b)|0,1)|0;if(e){On(e,b)|0;Ej(b,e)|0;if(!(rA(ok(e)|0,131620,7)|0))c[(xl(e,122445,12,0)|0)+8>>2]=b;if(h)f=(rA(ok(b)|0,131620,7)|0)==0;else f=1;Xn(b,e,f&1)}}b=cm(b)|0}while((b|0)!=0)}return}function Yn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+8|0;f=l;g=a+8|0;h=a+4|0;d=c[h>>2]|0;if((c[g>>2]|0)==(c[d+4>>2]|0)){d=c[d+12>>2]|0;do if(!d){e=aq(16)|0;if(!e){dj(1,122642,f)|0;Ka(52668,1)}c[e+8>>2]=c[h>>2];c[e+12>>2]=0;d=aq(4e6)|0;c[e>>2]=d;if(!d){dj(1,122642,k)|0;Ka(52668,1)}else{c[e+4>>2]=d+4e6;c[(c[h>>2]|0)+12>>2]=e;j=e;break}}else j=d;while(0);c[h>>2]=j;c[g>>2]=c[j>>2]}Lb[c[a+16>>2]&63](b,1)|0;k=c[g>>2]|0;c[g>>2]=k+4;c[k>>2]=b;i=l;return}function Zn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0.0;n=+h[a>>3];d=~~(n+(n>=0.0?.5:-.5));n=+h[a+8>>3];a=~~(n+(n>=0.0?.5:-.5));n=+h[b>>3];k=~~(n+(n>=0.0?.5:-.5));n=+h[b+8>>3];g=~~(n+(n>=0.0?.5:-.5));l=k-d|0;i=((l|0)>-1?l:0-l|0)<<1;l=l>>31|1;m=g-a|0;j=((m|0)>-1?m:0-m|0)<<1;m=m>>31|1;Gq(c,d,a);if((i|0)>(j|0)){if((k|0)!=(d|0)){f=0-i|0;e=j-(i>>1)|0;b=a;while(1){a=(e|0)>-1;b=(a?m:0)+b|0;d=d+l|0;Gq(c,d,b);if((d|0)==(k|0))break;else e=e+j+(a?f:0)|0}}}else if((g|0)!=(a|0)){f=0-j|0;e=i-(j>>1)|0;b=a;while(1){a=(e|0)>-1;d=(a?l:0)+d|0;b=b+m|0;Gq(c,d,b);if((b|0)==(g|0))break;else e=e+i+(a?f:0)|0}}return}function _n(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var 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.0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.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,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0.0,ha=0.0;fa=i;i=i+208|0;aa=fa+192|0;U=fa+144|0;q=fa+136|0;ea=fa+120|0;ca=fa+104|0;X=fa+96|0;Y=fa+80|0;w=fa+72|0;v=fa+32|0;V=fa+16|0;W=fa;ba=fa+176|0;p=fa+184|0;do if((b|0)<1)j=0;else{_=g+16|0;if((c[_>>2]|0)>>>0>=4){n=aq(b<<5)|0;j=0;do{da=c[e+(j<<2)>>2]|0;$s(da);ea=n+(j<<5)|0;da=(c[da+16>>2]|0)+16|0;c[ea>>2]=c[da>>2];c[ea+4>>2]=c[da+4>>2];c[ea+8>>2]=c[da+8>>2];c[ea+12>>2]=c[da+12>>2];c[ea+16>>2]=c[da+16>>2];c[ea+20>>2]=c[da+20>>2];c[ea+24>>2]=c[da+24>>2];c[ea+28>>2]=c[da+28>>2];j=j+1|0}while((j|0)!=(b|0));if((c[_>>2]|0)==4){m=g+28|0;if(c[m>>2]&2){j=g+24|0;c[j>>2]=$p(b<<2)|0;l=0;do{k=zj(c[e+(l<<2)>>2]|0,122792)|0;if((k|0)!=0?(c[q>>2]=p,ea=(Pz(k,160852,q)|0)>0,o=c[p>>2]|0,ea&(o|0)>-1):0)c[(c[j>>2]|0)+(l<<2)>>2]=o;l=l+1|0}while((l|0)!=(b|0))}j=mo(b,n,g)|0;if(c[m>>2]&2)pB(c[g+24>>2]|0)}else j=0;pB(n);break}$=c[g+20>>2]|0;t=($|0)==0;da=c[22667]|0;n=0;l=0;m=0;k=0;r=0;u=0;while(1){s=c[e+(u<<2)>>2]|0;$s(s);if(!t?(a[$+u>>0]|0)!=0:0){p=c[s+16>>2]|0;I=+h[p+16>>3];j=~~(I+(I>=0.0?.5:-.5));I=+h[p+24>>3];q=~~(I+(I>=0.0?.5:-.5));I=+h[p+32>>3];o=~~(I+(I>=0.0?.5:-.5));I=+h[p+40>>3];p=~~(I+(I>=0.0?.5:-.5));if(!r){n=j;l=o;m=p;k=q}else{n=(j|0)<(n|0)?j:n;l=(o|0)>(l|0)?o:l;m=(p|0)>(m|0)?p:m;k=(q|0)<(k|0)?q:k}j=r+1|0}else j=r;if((d[124827]|0)>2){T=ok(s)|0;S=c[s+16>>2]|0;ha=+h[S+16>>3];ga=+h[S+24>>3];x=+h[S+32>>3];I=+h[S+40>>3];c[v>>2]=T;h[v+8>>3]=ha;h[v+16>>3]=ga;h[v+24>>3]=x;h[v+32>>3]=I;Bz(da,122666,v)|0}u=u+1|0;if((u|0)==(b|0))break;else r=j}T=aq(b<<5)|0;j=0;do{S=T+(j<<5)|0;R=(c[(c[e+(j<<2)>>2]|0)+16>>2]|0)+16|0;c[S>>2]=c[R>>2];c[S+4>>2]=c[R+4>>2];c[S+8>>2]=c[R+8>>2];c[S+12>>2]=c[R+12>>2];c[S+16>>2]=c[R+16>>2];c[S+20>>2]=c[R+20>>2];c[S+24>>2]=c[R+24>>2];c[S+28>>2]=c[R+28>>2];j=j+1|0}while((j|0)!=(b|0));R=g+8|0;S=ho(b,T,c[R>>2]|0)|0;if(a[124827]|0){c[w>>2]=S;Bz(da,122694,w)|0}if((S|0)>=1){O=($|0)!=0;if(O){N=(n+l|0)/2|0;M=(k+m|0)/2|0}else{N=0;M=0}P=ba+4|0;c[P>>2]=M;c[ba>>2]=N;Q=$p(b<<4)|0;E=g+12|0;F=(f|0)==0;G=V+8|0;H=U+4|0;I=+(S|0);J=W+8|0;L=0;do{C=c[e+(L<<2)>>2]|0;D=Q+(L<<4)|0;c[Q+(L<<4)+12>>2]=L;if((c[_>>2]|0)==3){A=(c[C+16>>2]|0)+16|0;B=c[R>>2]|0;K=ok(C)|0;c[U>>2]=c[A>>2];c[U+4>>2]=c[A+4>>2];c[U+8>>2]=c[A+8>>2];c[U+12>>2]=c[A+12>>2];c[U+16>>2]=c[A+16>>2];c[U+20>>2]=c[A+20>>2];c[U+24>>2]=c[A+24>>2];c[U+28>>2]=c[A+28>>2];c[aa>>2]=c[ba>>2];c[aa+4>>2]=c[ba+4>>2];io(U,D,S,B,aa,K)}else{B=c[R>>2]|0;y=c[E>>2]|0;z=F?C:f;K=Dq()|0;A=C+16|0;g=c[A>>2]|0;ha=+h[g+16>>3];w=N-~~(ha+(ha>=0.0?.5:-.5))|0;ha=+h[g+24>>3];g=M-~~(ha+(ha>=0.0?.5:-.5))|0;if((c[_>>2]|0)!=1){j=Rk(C)|0;if(j){x=+(B|0);do{Qs(W,j);ga=+h[W>>3];ha=+h[J>>3];q=~~(ga+(ga>=0.0?.5:-.5))+w|0;c[U>>2]=q;r=~~(ha+(ha>=0.0?.5:-.5))+g|0;c[H>>2]=r;n=c[j+16>>2]|0;m=~~(x+(+h[n+88>>3]+ +h[n+96>>3])*.5);n=~~(x+ +h[n+80>>3]*.5);k=q-m|0;l=r-n|0;m=m+q|0;n=n+r|0;if((k|0)>-1)k=(k|0)/(S|0)|0;else k=((k+1|0)/(S|0)|0)+-1|0;if((l|0)>-1)p=(l|0)/(S|0)|0;else p=((l+1|0)/(S|0)|0)+-1|0;if((m|0)>-1)o=(m|0)/(S|0)|0;else o=((m+1|0)/(S|0)|0)+-1|0;if((n|0)>-1)n=(n|0)/(S|0)|0;else n=((n+1|0)/(S|0)|0)+-1|0;if((k|0)<=(o|0)){m=(p|0)>(n|0);while(1){if(!m){l=p;while(1){Gq(K,k,l);if((l|0)<(n|0))l=l+1|0;else break}}if((k|0)<(o|0))k=k+1|0;else break}}if((q|0)>-1)k=(q|0)/(S|0)|0;else k=((q+1|0)/(S|0)|0)+-1|0;c[U>>2]=k;if((r|0)>-1)k=(r|0)/(S|0)|0;else k=((r+1|0)/(S|0)|0)+-1|0;c[H>>2]=k;k=Lj(z,j)|0;if(k)do{c[aa>>2]=c[U>>2];c[aa+4>>2]=c[U+4>>2];jo(k,aa,K,w,g,S,y);k=Nj(z,k)|0}while((k|0)!=0);j=Sk(C,j)|0}while((j|0)!=0)}}else{v=aq((ek(C)|0)<<2)|0;j=Rk(C)|0;if(j){k=0;while(1){u=j+16|0;c[v+(k<<2)>>2]=c[(c[u>>2]|0)+112>>2];c[(c[u>>2]|0)+112>>2]=0;j=Sk(C,j)|0;if(!j)break;else k=k+1|0}}j=c[A>>2]|0;if((c[j+180>>2]|0)>=1){r=w-B|0;s=g-B|0;t=w+B|0;u=g+B|0;q=1;while(1){p=c[(c[j+184>>2]|0)+(q<<2)>>2]|0;n=c[p+16>>2]|0;ha=+h[n+16>>3];k=~~(ha+(ha>=0.0?.5:-.5));ha=+h[n+24>>3];l=~~(ha+(ha>=0.0?.5:-.5));ha=+h[n+32>>3];m=~~(ha+(ha>=0.0?.5:-.5));ha=+h[n+40>>3];n=~~(ha+(ha>=0.0?.5:-.5));if((m|0)>(k|0)&(n|0)>(l|0)){j=k+r|0;k=l+s|0;l=t+m|0;m=u+n|0;if((j|0)>-1)j=(j|0)/(S|0)|0;else j=((j+1|0)/(S|0)|0)+-1|0;if((k|0)>-1)o=(k|0)/(S|0)|0;else o=((k+1|0)/(S|0)|0)+-1|0;if((l|0)>-1)n=(l|0)/(S|0)|0;else n=((l+1|0)/(S|0)|0)+-1|0;if((m|0)>-1)m=(m|0)/(S|0)|0;else m=((m+1|0)/(S|0)|0)+-1|0;if((j|0)<=(n|0)){l=(o|0)>(m|0);while(1){if(!l){k=o;while(1){Gq(K,j,k);if((k|0)<(m|0))k=k+1|0;else break}}if((j|0)<(n|0))j=j+1|0;else break}}j=Rk(p)|0;if(j)do{c[(c[j+16>>2]|0)+212>>2]=p;j=Sk(p,j)|0}while((j|0)!=0);j=c[A>>2]|0}if((q|0)<(c[j+180>>2]|0))q=q+1|0;else break}}j=Rk(C)|0;if(j){x=+(B|0);do{Qs(V,j);ga=+h[V>>3];ha=+h[G>>3];q=~~(ga+(ga>=0.0?.5:-.5))+w|0;c[U>>2]=q;r=~~(ha+(ha>=0.0?.5:-.5))+g|0;c[H>>2]=r;l=j+16|0;k=c[l>>2]|0;do if(!(c[k+212>>2]|0)){m=~~(x+(+h[k+88>>3]+ +h[k+96>>3])*.5);n=~~(x+ +h[k+80>>3]*.5);k=q-m|0;l=r-n|0;m=m+q|0;n=n+r|0;if((k|0)>-1)k=(k|0)/(S|0)|0;else k=((k+1|0)/(S|0)|0)+-1|0;if((l|0)>-1)p=(l|0)/(S|0)|0;else p=((l+1|0)/(S|0)|0)+-1|0;if((m|0)>-1)o=(m|0)/(S|0)|0;else o=((m+1|0)/(S|0)|0)+-1|0;if((n|0)>-1)n=(n|0)/(S|0)|0;else n=((n+1|0)/(S|0)|0)+-1|0;if((k|0)<=(o|0)){m=(p|0)>(n|0);while(1){if(!m){l=p;while(1){Gq(K,k,l);if((l|0)<(n|0))l=l+1|0;else break}}if((k|0)<(o|0))k=k+1|0;else break}}if((q|0)>-1)k=(q|0)/(S|0)|0;else k=((q+1|0)/(S|0)|0)+-1|0;c[U>>2]=k;if((r|0)>-1)k=(r|0)/(S|0)|0;else k=((r+1|0)/(S|0)|0)+-1|0;c[H>>2]=k;k=Lj(z,j)|0;if(!k)break;do{c[aa>>2]=c[U>>2];c[aa+4>>2]=c[U+4>>2];jo(k,aa,K,w,g,S,y);k=Nj(z,k)|0}while((k|0)!=0)}else{if((q|0)>-1)k=(q|0)/(S|0)|0;else k=((q+1|0)/(S|0)|0)+-1|0;c[U>>2]=k;if((r|0)>-1)k=(r|0)/(S|0)|0;else k=((r+1|0)/(S|0)|0)+-1|0;c[H>>2]=k;k=Lj(z,j)|0;if(!k)break;do{if((c[(c[l>>2]|0)+212>>2]|0)!=(c[(c[(c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)){c[aa>>2]=c[U>>2];c[aa+4>>2]=c[U+4>>2];jo(k,aa,K,w,g,S,y)}k=Nj(z,k)|0}while((k|0)!=0)}while(0);j=Sk(C,j)|0}while((j|0)!=0)}j=Rk(C)|0;if(j){k=0;while(1){c[(c[j+16>>2]|0)+112>>2]=c[v+(k<<2)>>2];j=Sk(C,j)|0;if(!j)break;else k=k+1|0}}pB(v)}l=Q+(L<<4)+4|0;c[l>>2]=Kq(K)|0;m=Q+(L<<4)+8|0;c[m>>2]=Jq(K)|0;k=c[A>>2]|0;ha=+(B<<1|0);j=~~+Z(+((ha+(+h[k+32>>3]-+h[k+16>>3]))/I));k=~~+Z(+((ha+(+h[k+40>>3]-+h[k+24>>3]))/I));c[D>>2]=k+j;if((d[124827]|0)>2?(C=ok(C)|0,D=c[m>>2]|0,c[Y>>2]=C,c[Y+4>>2]=D,c[Y+8>>2]=j,c[Y+12>>2]=k,Bz(da,122710,Y)|0,(c[m>>2]|0)>0):0){j=0;do{C=c[l>>2]|0;D=c[C+(j<<3)+4>>2]|0;c[X>>2]=c[C+(j<<3)>>2];c[X+4>>2]=D;Bz(da,122737,X)|0;j=j+1|0}while((j|0)<(c[m>>2]|0))}Eq(K)}L=L+1|0}while((L|0)!=(b|0));q=$p(b<<2)|0;j=0;do{c[q+(j<<2)>>2]=Q+(j<<4);j=j+1|0}while((j|0)!=(b|0));_z(q,b,4,23);r=Dq()|0;j=$p(b<<3)|0;if(O){p=0;do{if(a[$+p>>0]|0){m=c[q+(p<<2)>>2]|0;o=c[m+12>>2]|0;e=c[P>>2]|0;k=c[m+4>>2]|0;m=c[m+8>>2]|0;n=j+(o<<3)|0;c[n>>2]=0-(c[ba>>2]|0);o=j+(o<<3)+4|0;c[o>>2]=0-e;if((m|0)>0){l=0;while(1){c[aa>>2]=c[k>>2];c[aa+4>>2]=c[k+4>>2];Fq(r,aa);l=l+1|0;if((l|0)==(m|0))break;else k=k+8|0}}if((d[124827]|0)>1){_=c[n>>2]|0;e=c[o>>2]|0;c[ca>>2]=m;c[ca+4>>2]=_;c[ca+8>>2]=e;Bz(da,122751,ca)|0}}p=p+1|0}while((p|0)!=(b|0));k=0;do{if(!(a[$+k>>0]|0)){ca=c[q+(k<<2)>>2]|0;lo(k,ca,r,j+(c[ca+12>>2]<<3)|0,S,c[R>>2]|0,T)}k=k+1|0}while((k|0)!=(b|0))}else{k=0;do{ca=c[q+(k<<2)>>2]|0;lo(k,ca,r,j+(c[ca+12>>2]<<3)|0,S,c[R>>2]|0,T);k=k+1|0}while((k|0)!=(b|0))}pB(q);k=0;do{pB(c[Q+(k<<4)+4>>2]|0);k=k+1|0}while((k|0)!=(b|0));pB(Q);Eq(r);pB(T);if((d[124827]|0)>1){k=0;do{ba=c[j+(k<<3)>>2]|0;ca=c[j+(k<<3)+4>>2]|0;c[ea>>2]=k;c[ea+4>>2]=ba;c[ea+8>>2]=ca;Bz(da,122777,ea)|0;k=k+1|0}while((k|0)!=(b|0))}}else j=0}while(0);i=fa;return j|0}function $n(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if((a|0)<1)f=(a|0)>-1?a:0-a|0;else{z=(e|0)==0;u=(f|0)==0;y=0;do{v=c[b+(y<<2)>>2]|0;p=z?v:e;w=c[d+(y<<3)>>2]|0;x=c[d+(y<<3)+4>>2]|0;q=+(w|0);r=q/72.0;s=+(x|0);t=s/72.0;f=Rk(v)|0;if(f)do{g=c[f+16>>2]|0;o=c[g+132>>2]|0;h[o>>3]=r+ +h[o>>3];o=o+8|0;h[o>>3]=t+ +h[o>>3];o=g+16|0;h[o>>3]=q+ +h[o>>3];o=g+24|0;h[o>>3]=s+ +h[o>>3];g=c[g+108>>2]|0;if(g){o=g+56|0;h[o>>3]=q+ +h[o>>3];o=g+64|0;h[o>>3]=s+ +h[o>>3]}if(!u?(A=Lj(p,f)|0,(A|0)!=0):0){o=A;do{i=c[o+16>>2]|0;g=c[i+96>>2]|0;if(g){n=g+56|0;h[n>>3]=q+ +h[n>>3];n=g+64|0;h[n>>3]=s+ +h[n>>3]}g=c[i+108>>2]|0;if(g){n=g+56|0;h[n>>3]=q+ +h[n>>3];n=g+64|0;h[n>>3]=s+ +h[n>>3]}g=c[i+100>>2]|0;if(g){n=g+56|0;h[n>>3]=q+ +h[n>>3];n=g+64|0;h[n>>3]=s+ +h[n>>3]}g=c[i+104>>2]|0;if(g){n=g+56|0;h[n>>3]=q+ +h[n>>3];n=g+64|0;h[n>>3]=s+ +h[n>>3]}g=c[i+8>>2]|0;if((g|0)!=0?(B=c[g+4>>2]|0,(B|0)>0):0){g=c[g>>2]|0;m=0;do{i=c[g+(m*48|0)>>2]|0;j=c[g+(m*48|0)+4>>2]|0;k=c[g+(m*48|0)+8>>2]|0;l=c[g+(m*48|0)+12>>2]|0;if((j|0)>0){n=0;do{C=i+(n<<4)|0;h[C>>3]=q+ +h[C>>3];C=i+(n<<4)+8|0;h[C>>3]=s+ +h[C>>3];n=n+1|0}while((n|0)!=(j|0))}if(k){C=g+(m*48|0)+16|0;h[C>>3]=q+ +h[C>>3];C=g+(m*48|0)+24|0;h[C>>3]=s+ +h[C>>3]}if(l){C=g+(m*48|0)+32|0;h[C>>3]=q+ +h[C>>3];C=g+(m*48|0)+40|0;h[C>>3]=s+ +h[C>>3]}m=m+1|0}while((m|0)!=(B|0))}o=Nj(p,o)|0}while((o|0)!=0)}f=Sk(v,f)|0}while((f|0)!=0);no(v,w,x);y=y+1|0}while((y|0)!=(a|0));f=0}return f|0}function ao(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=_n(a,b,d,e)|0;if(!f)f=1;else{d=$n(a,b,f,d,c[e+12>>2]|0)|0;pB(f);f=d}return f|0}function bo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;q=ao(a,b,d,e)|0;if(!q){$s(d);m=c[d+16>>2]|0;n=m+16|0;g=+h[n>>3];o=m+24|0;i=+h[o>>3];p=m+32|0;f=+h[p>>3];m=m+40|0;j=+h[m>>3];if((a|0)>0){l=0;do{e=c[(c[b+(l<<2)>>2]|0)+16>>2]|0;k=c[e+180>>2]|0;if((k|0)>=1){d=c[e+184>>2]|0;e=1;while(1){s=c[(c[d+(e<<2)>>2]|0)+16>>2]|0;r=+h[s+16>>3];g=g<r?g:r;r=+h[s+24>>3];i=i<r?i:r;r=+h[s+32>>3];f=f>r?f:r;r=+h[s+40>>3];j=j>r?j:r;if((e|0)<(k|0))e=e+1|0;else break}}l=l+1|0}while((l|0)!=(a|0))}h[n>>3]=g;h[o>>3]=i;h[p>>3]=f;h[m>>3]=j}return q|0}function co(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;h=i;i=i+16|0;g=h;if(!f)Ia(122798,122804,1400,122811);e=go(b,e,e)|0;c[f+8>>2]=e;if(a[124827]|0){j=c[22667]|0;c[g>>2]=e;Bz(j,122823,g)|0}c[f+12>>2]=0;c[f+20>>2]=0;eo(zj(b,122836)|0,d,f)|0;i=h;return c[f+16>>2]|0}function eo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.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;v=i;i=i+64|0;s=v+40|0;r=v+32|0;u=v+24|0;t=v+16|0;l=v+8|0;n=v;k=v+48|0;m=v+44|0;if(!e)Ia(122798,122804,1292,122845);p=e+28|0;c[p>>2]=0;q=e+16|0;c[q>>2]=d;o=e+4|0;c[o>>2]=0;c[e+24>>2]=0;a:do if((b|0)!=0?(j=a[b>>0]|0,j<<24>>24!=0):0)switch(j<<24>>24|0){case 97:{if(rA(b,122863,5)|0){if(rA(b,122869,6)|0)break a;c[q>>2]=5;c[l>>2]=k;n=(Pz(b+5|0,122876,l)|0)>0;f=+g[k>>2];if(n&f>0.0){g[e>>2]=f;break a}else{g[e>>2]=1.0;break a}}c[q>>2]=4;d=b+5|0;b:do if((a[d>>0]|0)==95){d=b+6|0;j=a[d>>0]|0;if(j<<24>>24){k=0;while(1){switch(j<<24>>24|0){case 99:{k=k|1;c[p>>2]=k;break}case 105:{k=k|64;c[p>>2]=k;break}case 117:{k=k|2;c[p>>2]=k;break}case 116:{k=k|16;c[p>>2]=k;break}case 98:{k=k|32;c[p>>2]=k;break}case 108:{k=k|4;c[p>>2]=k;break}case 114:{k=k|8;c[p>>2]=k;break}default:break b}d=d+1|0;j=a[d>>0]|0;if(!(j<<24>>24))break b}}}while(0);c[n>>2]=m;n=(Pz(d,160852,n)|0)>0;d=c[m>>2]|0;if(!(n&(d|0)>0))break a;c[o>>2]=d;break a}case 99:{if(j<<24>>24!=99)break a;if(lA(b,131620)|0)break a;c[q>>2]=1;break a}case 103:{if(j<<24>>24!=103)break a;if(lA(b,134935)|0)break a;c[q>>2]=3;break a}case 110:{if(j<<24>>24!=110)break a;if(lA(b,134886)|0)break a;c[q>>2]=2;break a}default:break a}while(0);if(a[124827]|0){d=c[22667]|0;Mz(122879,11,1,d)|0;switch(c[q>>2]|0){case 1:{j=131620;break}case 2:{j=134886;break}case 3:{j=134935;break}case 4:{j=122863;break}case 5:{j=122869;break}default:j=122891}c[t>>2]=j;Bz(d,122901,t)|0;if((c[q>>2]|0)==5){h[u>>3]=+g[e>>2];Bz(d,122914,u)|0}c[r>>2]=c[o>>2];Bz(d,122927,r)|0;c[s>>2]=c[p>>2];Bz(d,122940,s)|0}i=v;return c[q>>2]|0}function fo(a,b,c){a=a|0;b=b|0;c=c|0;return eo(zj(a,122836)|0,b,c)|0}function go(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;g=j+4|0;f=zj(b,122953)|0;a:do if(f){c[h>>2]=g;h=(Pz(f,160852,h)|0)==1;b=c[g>>2]|0;if(!(h&(b|0)>-1)){switch(a[f>>0]|0){case 84:case 116:break;default:{b=d;break a}}b=e}}else b=d;while(0);i=j;return b|0}function ho(a,b,e){a=a|0;b=b|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0.0,p=0,q=0,r=0,s=0;s=i;i=i+96|0;q=s+80|0;r=s+48|0;p=s+8|0;n=s;o=+((a*100|0)+-1|0);if((a|0)>0){g=+(e<<1|0);f=0.0;l=0.0;e=0;do{k=g+(+h[b+(e<<5)+16>>3]-+h[b+(e<<5)>>3]);m=g+(+h[b+(e<<5)+24>>3]-+h[b+(e<<5)+8>>3]);f=f-(k+m);l=l-k*m;e=e+1|0}while((e|0)!=(a|0));m=f}else{m=0.0;l=0.0}k=m*m-o*4.0*l;if(!(k<0.0)){f=+O(+k);j=o*2.0;g=(f-m)/j;j=(-m-f)/j;e=~~g;e=(e|0)==0?1:e;if((d[124827]|0)>2){n=c[22667]|0;Mz(123080,27,1,n)|0;h[p>>3]=o;h[p+8>>3]=m;h[p+16>>3]=l;h[p+24>>3]=k;h[p+32>>3]=f;Bz(n,123108,p)|0;c[r>>2]=e;h[r+8>>3]=g;c[r+16>>2]=~~j;h[r+24>>3]=j;Bz(n,123134,r)|0;h[q>>3]=l+(m*g+g*(o*g));h[q+8>>3]=l+(m*j+j*(o*j));Bz(n,123156,q)|0}}else{h[n>>3]=k;dj(1,123053,n)|0;e=-1}i=s;return e|0}function io(a,b,e,f,g,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0;w=i;i=i+32|0;v=w+16|0;t=w;o=+h[a>>3];r=+h[a+8>>3];q=+h[a+16>>3];p=+h[a+24>>3];s=Dq()|0;k=c[g>>2]|0;a=k-f|0;l=c[g+4>>2]|0;g=l-f|0;k=f-~~(o+(o>=0.0?.5:-.5))+k+~~(q+(q>=0.0?.5:-.5))|0;l=f-~~(r+(r>=0.0?.5:-.5))+l+~~(p+(p>=0.0?.5:-.5))|0;if((a|0)>-1)a=(a|0)/(e|0)|0;else a=((a+1|0)/(e|0)|0)+-1|0;if((g|0)>-1)n=(g|0)/(e|0)|0;else n=((g+1|0)/(e|0)|0)+-1|0;if((k|0)>-1)m=(k|0)/(e|0)|0;else m=((k+1|0)/(e|0)|0)+-1|0;if((l|0)>-1)l=(l|0)/(e|0)|0;else l=((l+1|0)/(e|0)|0)+-1|0;if((a|0)<=(m|0)){k=(n|0)>(l|0);while(1){if(!k){g=n;while(1){Gq(s,a,g);if((g|0)<(l|0))g=g+1|0;else break}}if((a|0)<(m|0))a=a+1|0;else break}}l=b+4|0;c[l>>2]=Kq(s)|0;k=Jq(s)|0;m=b+8|0;c[m>>2]=k;y=+(f<<1|0);x=+(e|0);g=~~+Z(+((y+(q-o))/x));a=~~+Z(+((y+(p-r))/x));c[b>>2]=a+g;if((d[124827]|0)>2?(u=c[22667]|0,c[t>>2]=j,c[t+4>>2]=k,c[t+8>>2]=g,c[t+12>>2]=a,Bz(u,122710,t)|0,(c[m>>2]|0)>0):0){a=0;do{j=c[l>>2]|0;t=c[j+(a<<3)+4>>2]|0;c[v>>2]=c[j+(a<<3)>>2];c[v+4>>2]=t;Bz(u,122737,v)|0;a=a+1|0}while((a|0)<(c[m>>2]|0))}Eq(s);i=w;return}function jo(a,b,d,e,f,g,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+112|0;w=z+96|0;y=z+80|0;t=z+16|0;u=z;x=z+64|0;v=z+48|0;n=z+32|0;h[x>>3]=+(c[b>>2]|0);r=x+8|0;h[r>>3]=+(c[b+4>>2]|0);if((j|0)!=0?(s=a+16|0,m=c[(c[s>>2]|0)+8>>2]|0,(m|0)!=0):0){if((c[m+4>>2]|0)>0){q=+(e|0);p=+(f|0);o=+(g|0);b=v+8|0;a=0;do{f=c[m>>2]|0;n=c[f+(a*48|0)>>2]|0;j=c[f+(a*48|0)+4>>2]|0;g=c[f+(a*48|0)+8>>2]|0;e=c[f+(a*48|0)+12>>2]|0;m=f+(a*48|0)+16|0;c[t>>2]=c[m>>2];c[t+4>>2]=c[m+4>>2];c[t+8>>2]=c[m+8>>2];c[t+12>>2]=c[m+12>>2];f=f+(a*48|0)+32|0;c[u>>2]=c[f>>2];c[u+4>>2]=c[f+4>>2];c[u+8>>2]=c[f+8>>2];c[u+12>>2]=c[f+12>>2];if(!g){c[x>>2]=c[n>>2];c[x+4>>2]=c[n+4>>2];c[x+8>>2]=c[n+8>>2];c[x+12>>2]=c[n+12>>2];m=n+16|0;c[v>>2]=c[m>>2];c[v+4>>2]=c[m+4>>2];c[v+8>>2]=c[m+8>>2];c[v+12>>2]=c[m+12>>2];m=2}else{c[x>>2]=c[t>>2];c[x+4>>2]=c[t+4>>2];c[x+8>>2]=c[t+8>>2];c[x+12>>2]=c[t+12>>2];c[v>>2]=c[n>>2];c[v+4>>2]=c[n+4>>2];c[v+8>>2]=c[n+8>>2];c[v+12>>2]=c[n+12>>2];m=1}k=q+ +h[x>>3];h[x>>3]=k;l=p+ +h[r>>3];h[r>>3]=l;if(!(k>=0.0))k=(k+1.0)/o+-1.0;else k=k/o;h[x>>3]=k;if(!(l>=0.0))k=(l+1.0)/o+-1.0;else k=l/o;h[r>>3]=k;k=q+ +h[v>>3];h[v>>3]=k;l=p+ +h[b>>3];h[b>>3]=l;if(!(k>=0.0))k=(k+1.0)/o+-1.0;else k=k/o;h[v>>3]=k;if(!(l>=0.0))k=(l+1.0)/o+-1.0;else k=l/o;h[b>>3]=k;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];Zn(y,w,d);if((m|0)<(j|0))do{c[x>>2]=c[v>>2];c[x+4>>2]=c[v+4>>2];c[x+8>>2]=c[v+8>>2];c[x+12>>2]=c[v+12>>2];g=n+(m<<4)|0;c[v>>2]=c[g>>2];c[v+4>>2]=c[g+4>>2];c[v+8>>2]=c[g+8>>2];c[v+12>>2]=c[g+12>>2];k=q+ +h[v>>3];h[v>>3]=k;l=p+ +h[b>>3];h[b>>3]=l;if(!(k>=0.0))k=(k+1.0)/o+-1.0;else k=k/o;h[v>>3]=k;if(!(l>=0.0))k=(l+1.0)/o+-1.0;else k=l/o;h[b>>3]=k;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];Zn(y,w,d);m=m+1|0}while((m|0)!=(j|0));if(e){c[x>>2]=c[v>>2];c[x+4>>2]=c[v+4>>2];c[x+8>>2]=c[v+8>>2];c[x+12>>2]=c[v+12>>2];c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];k=q+ +h[v>>3];h[v>>3]=k;l=p+ +h[b>>3];h[b>>3]=l;if(!(k>=0.0))k=(k+1.0)/o+-1.0;else k=k/o;h[v>>3]=k;if(!(l>=0.0))k=(l+1.0)/o+-1.0;else k=l/o;h[b>>3]=k;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];Zn(y,w,d)}a=a+1|0;m=c[(c[s>>2]|0)+8>>2]|0}while((a|0)<(c[m+4>>2]|0))}}else{Qs(n,c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0);c[v>>2]=c[n>>2];c[v+4>>2]=c[n+4>>2];c[v+8>>2]=c[n+8>>2];c[v+12>>2]=c[n+12>>2];k=+(e|0)+ +h[v>>3];h[v>>3]=k;m=v+8|0;l=+(f|0)+ +h[m>>3];h[m>>3]=l;if(!(k>=0.0))k=(k+1.0)/+(g|0)+-1.0;else k=k/+(g|0);h[v>>3]=k;if(!(l>=0.0))k=(l+1.0)/+(g|0)+-1.0;else k=l/+(g|0);h[m>>3]=k;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];c[w>>2]=c[v>>2];c[w+4>>2]=c[v+4>>2];c[w+8>>2]=c[v+8>>2];c[w+12>>2]=c[v+12>>2];Zn(y,w,d)}i=z;return}function ko(a,b){a=a|0;b=b|0;return (c[c[b>>2]>>2]|0)-(c[c[a>>2]>>2]|0)|0}function lo(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0,q=0.0,r=0.0;p=c[b+12>>2]|0;j=+h[i+(p<<5)>>3];k=+h[i+(p<<5)+8>>3];l=+h[i+(p<<5)+16>>3];m=+h[i+(p<<5)+24>>3];if(!((a|0)==0?(r=+(g<<1|0),q=+(f|0),(qo((~~+Z(+((r+(l-j))/q))|0)/-2|0,(~~+Z(+((r+(m-k))/q))|0)/-2|0,b,d,e,f,i)|0)!=0):0))n=3;a:do if((n|0)==3?(qo(0,0,b,d,e,f,i)|0)==0:0)if((~~+Z(+(l-j))|0)<(~~+Z(+(m-k))|0)){p=1;while(1){o=0-p|0;g=0;while(1){if(qo(o,g,b,d,e,f,i)|0)break a;a=g+-1|0;if((a|0)>(o|0))g=a;else{n=g;break}}if((p|0)>(o|0)){g=o;do{if(qo(g,a,b,d,e,f,i)|0)break a;g=g+1|0}while((g|0)<(p|0))}else g=o;if((n|0)<=(p|0))do{if(qo(g,a,b,d,e,f,i)|0)break a;a=a+1|0}while((a|0)<(p|0));if((g|0)>(o|0))do{if(qo(g,a,b,d,e,f,i)|0)break a;g=g+-1|0}while((g|0)>(o|0));if((a|0)>0)while(1){if(qo(g,a,b,d,e,f,i)|0)break a;if((a|0)>1)a=a+-1|0;else break}p=p+1|0}}else{p=1;while(1){o=0-p|0;g=0;while(1){if(qo(g,o,b,d,e,f,i)|0)break a;a=g+1|0;if((a|0)<(p|0))g=a;else{n=g;break}}if((p|0)>(o|0)){g=o;do{if(qo(a,g,b,d,e,f,i)|0)break a;g=g+1|0}while((g|0)<(p|0))}else g=o;if((n|0)>=(o|0))do{if(qo(a,g,b,d,e,f,i)|0)break a;a=a+-1|0}while((a|0)>(o|0));if((g|0)>(o|0))do{if(qo(a,g,b,d,e,f,i)|0)break a;g=g+-1|0}while((g|0)>(o|0));if((a|0)<0)while(1){if(qo(a,g,b,d,e,f,i)|0)break a;if((a|0)<-1)a=a+1|0;else break}p=p+1|0}}while(0);return}function mo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0.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;B=i;i=i+16|0;j=B;A=$p(b<<3)|0;g=c[e+4>>2]|0;r=e+28|0;f=(g|0)>0;do if(!(c[r>>2]&1))if(f){z=g;g=(b+-1+g|0)/(g|0)|0;q=1;break}else{g=~~+Z(+(+O(+(+(b|0)))));z=g;g=(b+-1+g|0)/(g|0)|0;q=1;break}else if(f){z=(b+-1+g|0)/(g|0)|0;q=0;break}else{g=~~+Z(+(+O(+(+(b|0)))));z=(b+-1+g|0)/(g|0)|0;q=0;break}while(0);if(a[124827]|0){y=c[22667]|0;c[j>>2]=(q|0)!=0?122958:122968;c[j+4>>2]=g;c[j+8>>2]=z;Bz(y,122981,j)|0}w=$p((z<<3)+8|0)|0;x=$p((g<<3)+8|0)|0;y=$p(b*24|0)|0;p=(b|0)>0;if(p){k=+((c[e+8>>2]|0)>>>0);f=0;j=y;while(1){o=+h[d+(f<<5)+8>>3];n=+h[d+(f<<5)+24>>3];h[j>>3]=+h[d+(f<<5)+16>>3]-+h[d+(f<<5)>>3]+k;h[j+8>>3]=n-o+k;c[j+16>>2]=f;f=f+1|0;if((f|0)==(b|0))break;else j=j+24|0}j=$p(b<<2)|0;if(p){f=0;do{c[j+(f<<2)>>2]=y+(f*24|0);f=f+1|0}while((f|0)!=(b|0));v=j;u=j}else{v=j;u=j}}else{u=$p(b<<2)|0;v=u}f=c[e+24>>2]|0;if(!f){if(!(c[r>>2]&64))_z(v,b,4,25)}else{c[13206]=f;_z(v,b,4,24)}if(p){e=(q|0)==0;f=0;m=0;j=0;do{s=c[u+(m<<2)>>2]|0;t=w+(f<<3)|0;o=+h[t>>3];n=+h[s>>3];h[t>>3]=o>n?o:n;t=x+(j<<3)|0;n=+h[t>>3];o=+h[s+8>>3];h[t>>3]=n>o?n:o;if(e){j=j+1|0;t=(j|0)==(g|0);f=(t&1)+f|0;j=t?0:j}else{f=f+1|0;t=(f|0)==(z|0);f=t?0:f;j=(t&1)+j|0}m=m+1|0}while((m|0)!=(b|0))}if((z|0)>=0){f=0;l=0.0;while(1){t=w+(f<<3)|0;k=+h[t>>3];h[t>>3]=l;if((f|0)==(z|0))break;else{f=f+1|0;l=l+k}}}if((g|0)>0){k=0.0;f=g;do{t=f;f=f+-1|0;o=+h[x+(f<<3)>>3];h[x+(t<<3)>>3]=k;k=k+o}while((t|0)>1)}else k=0.0;h[x>>3]=k;if(p){t=(q|0)==0;r=c[r>>2]|0;m=(r&4|0)==0;p=(r&8|0)==0;q=(r&16|0)==0;r=(r&32|0)==0;f=0;s=0;j=0;do{e=c[(c[u+(s<<2)>>2]|0)+16>>2]|0;k=+h[d+(e<<5)>>3];l=+h[d+(e<<5)+8>>3];n=+h[d+(e<<5)+16>>3];o=+h[d+(e<<5)+24>>3];do if(m)if(p){c[A+(e<<3)>>2]=~~((+h[w+(f<<3)>>3]+ +h[w+(f+1<<3)>>3]-n-k)*.5);break}else{c[A+(e<<3)>>2]=~~(+h[w+(f+1<<3)>>3]-(n-k));break}else c[A+(e<<3)>>2]=~~+h[w+(f<<3)>>3];while(0);do if(q)if(r){c[A+(e<<3)+4>>2]=~~((+h[x+(j<<3)>>3]+ +h[x+(j+1<<3)>>3]-o-l)*.5);break}else{c[A+(e<<3)+4>>2]=~~+h[x+(j+1<<3)>>3];break}else c[A+(e<<3)+4>>2]=~~(+h[x+(j<<3)>>3]-(o-l));while(0);if(t){j=j+1|0;e=(j|0)==(g|0);f=(e&1)+f|0;j=e?0:j}else{f=f+1|0;e=(f|0)==(z|0);f=e?0:f;j=(e&1)+j|0}s=s+1|0}while((s|0)!=(b|0))}pB(y);pB(v);pB(w);pB(x);i=B;return A|0}function no(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0;j=b+16|0;b=c[j>>2]|0;o=b+16|0;m=b+24|0;f=b+32|0;b=b+40|0;g=+(d|0);l=g+ +h[f>>3];i=+(e|0);n=i+ +h[m>>3];k=i+ +h[b>>3];h[o>>3]=g+ +h[o>>3];h[m>>3]=n;h[f>>3]=l;h[b>>3]=k;b=c[j>>2]|0;f=c[b+12>>2]|0;if((f|0)!=0?(a[f+81>>0]|0)!=0:0){o=f+56|0;h[o>>3]=g+ +h[o>>3];o=f+64|0;h[o>>3]=i+ +h[o>>3]}if((c[b+180>>2]|0)>=1){f=1;while(1){no(c[(c[b+184>>2]|0)+(f<<2)>>2]|0,d,e);b=c[j>>2]|0;if((f|0)>=(c[b+180>>2]|0))break;else f=f+1|0}}return}function oo(a,b){a=a|0;b=b|0;var d=0;d=c[13206]|0;a=c[d+(c[(c[a>>2]|0)+16>>2]<<2)>>2]|0;b=c[d+(c[(c[b>>2]|0)+16>>2]<<2)>>2]|0;return ((a|0)>(b|0)?1:((a|0)<(b|0))<<31>>31)|0}function po(a,b){a=a|0;b=b|0;var d=0.0,e=0.0;a=c[a>>2]|0;b=c[b>>2]|0;e=+h[a+8>>3]+ +h[a>>3];d=+h[b+8>>3]+ +h[b>>3];return (e<d?1:(e>d)<<31>>31)|0}function qo(a,b,e,f,g,j,k){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;var 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,A=0.0;v=i;i=i+48|0;t=v+32|0;u=v;s=v+24|0;q=e+4|0;r=c[e+8>>2]|0;o=(r|0)>0;a:do if(o){l=s+4|0;m=c[q>>2]|0;n=0;while(1){w=m;x=c[w>>2]|0;w=c[w+4>>2]|0;y=s;c[y>>2]=x;c[y+4>>2]=w;c[s>>2]=x+a;c[l>>2]=w+b;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];if(Hq(f,t)|0){l=0;break a}n=n+1|0;if((n|0)>=(r|0)){p=5;break}else m=m+8|0}}else p=5;while(0);if((p|0)==5){n=c[e+12>>2]|0;A=+h[k+(n<<5)>>3];z=+h[k+(n<<5)+8>>3];c[g>>2]=(_(j,a)|0)-~~(A+(A>=0.0?.5:-.5));n=g+4|0;c[n>>2]=(_(j,b)|0)-~~(z+(z>=0.0?.5:-.5));if(o){m=s+4|0;l=c[q>>2]|0;k=0;while(1){y=l;x=c[y>>2]|0;y=c[y+4>>2]|0;w=s;c[w>>2]=x;c[w+4>>2]=y;c[s>>2]=x+a;c[m>>2]=y+b;c[t>>2]=c[s>>2];c[t+4>>2]=c[s+4>>2];Fq(f,t);k=k+1|0;if((k|0)==(r|0))break;else l=l+8|0}}if((d[124827]|0)>1){l=c[22667]|0;x=c[g>>2]|0;y=c[n>>2]|0;c[u>>2]=r;c[u+4>>2]=a;c[u+8>>2]=b;c[u+12>>2]=x;c[u+16>>2]=y;Bz(l,123019,u)|0;l=1}else l=1}i=v;return l|0}function ro(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0.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;O=i;i=i+160|0;L=O+148|0;K=O+144|0;J=O+80|0;M=O;do if(b){if(!f){f=qB(1,20)|0;c[f+4>>2]=e>>>0>80?e:80}e=c[f>>2]|0;N=c[f+4>>2]|0;if(!e){g=100;e=qB(100,N)|0}else{g=e+100|0;I=rB(c[f+8>>2]|0,_(g,N)|0)|0;CB(I+(_(N,e)|0)|0,0,N*100|0)|0;e=I}n=M+8|0;o=(d|0)==0;p=M+72|0;q=d+4|0;r=d+8|0;s=J+8|0;t=M+8|0;u=d+24|0;v=M+8|0;w=d+40|0;x=d+20|0;y=d+12|0;z=M+16|0;A=M+24|0;B=M+32|0;C=M+40|0;D=d+16|0;E=M+16|0;F=d+28|0;G=d+32|0;H=d+36|0;I=d+44|0;k=g;a:while(1){while(1){g=b+1|0;if(!(Zx(a[b>>0]|0)|0))break;else b=g}b:do switch(a[b>>0]|0){case 0:{g=11;break a}case 69:{c[M>>2]=0;b=xo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[d>>2];break}case 101:{c[M>>2]=1;b=xo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[d>>2];break}case 80:{c[M>>2]=2;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[q>>2];break}case 112:{c[M>>2]=3;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[q>>2];break}case 98:{c[M>>2]=4;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[r>>2];break}case 66:{c[M>>2]=5;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[r>>2];break}case 99:{b=zo(g,K)|0;if(!b){g=84;break a}m=vo(c[K>>2]|0,J)|0;c[K>>2]=m;if(!m){g=84;break a}if(!(c[J>>2]|0)){c[M>>2]=9;c[t>>2]=c[s>>2];if(o)break b;c[p>>2]=c[u>>2];break b}else{c[M>>2]=14;g=v;l=J;m=g+64|0;do{c[g>>2]=c[l>>2];g=g+4|0;l=l+4|0}while((g|0)<(m|0));if(o)break b;c[p>>2]=c[w>>2];break b}}case 67:{b=zo(g,K)|0;if(!b){g=84;break a}m=vo(c[K>>2]|0,J)|0;c[K>>2]=m;if(!m){g=84;break a}if(!(c[J>>2]|0)){c[M>>2]=8;c[t>>2]=c[s>>2];if(o)break b;c[p>>2]=c[x>>2];break b}else{c[M>>2]=13;g=v;l=J;m=g+64|0;do{c[g>>2]=c[l>>2];g=g+4|0;l=l+4|0}while((g|0)<(m|0));if(o)break b;c[p>>2]=c[w>>2];break b}}case 76:{c[M>>2]=6;b=yo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[y>>2];break}case 84:{c[M>>2]=7;j=+$z(g,L);b=c[L>>2]|0;if((b|0)==(g|0)){g=48;break a}h[n>>3]=j;if(!b){g=84;break a}j=+$z(b,L);g=c[L>>2]|0;if((g|0)==(b|0)){g=51;break a}h[z>>3]=j;if(!g){g=84;break a}b=bA(g,L,10)|0;m=c[L>>2]|0;g=(m|0)==(g|0)?0:m;do if((b|0)>=0)if((b|0)>0){c[A>>2]=2;break}else{c[A>>2]=1;break}else c[A>>2]=0;while(0);if(!g){g=84;break a}j=+$z(g,L);b=c[L>>2]|0;if((b|0)==(g|0)){g=60;break a}h[B>>3]=j;if(!b){g=84;break a}b=zo(b,C)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[D>>2];break}case 70:{c[M>>2]=10;j=+$z(g,L);b=c[L>>2]|0;if((b|0)==(g|0)){g=66;break a}h[n>>3]=j;if(!b){g=84;break a}b=zo(b,E)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[F>>2];break}case 83:{c[M>>2]=11;b=zo(g,n)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[G>>2];break}case 73:{c[M>>2]=12;b=xo(g,n)|0;if(!b){g=84;break a}b=zo(b,C)|0;if(!b){g=84;break a}if(!o)c[p>>2]=c[H>>2];break}case 116:{c[M>>2]=15;c[t>>2]=aA(g,L,10)|0;b=c[L>>2]|0;b=(b|0)==(g|0)?0:b;if(!b){g=84;break a}if(!o)c[p>>2]=c[I>>2];break}default:{g=84;break a}}while(0);g=c[f>>2]|0;if((g|0)==(k|0)){m=k<<1;e=rB(e,_(m,N)|0)|0;g=_(k,N)|0;CB(e+g|0,0,g|0)|0;g=c[f>>2]|0;k=m}g=e+(_(g,N)|0)|0;l=M;m=g+80|0;do{c[g>>2]=c[l>>2];g=g+4|0;l=l+4|0}while((g|0)<(m|0));c[f>>2]=(c[f>>2]|0)+1}if((g|0)==11)b=e;else if((g|0)==48)g=84;else if((g|0)==51)g=84;else if((g|0)==60)g=84;else if((g|0)==66)g=84;if((g|0)==84){b=f+16|0;c[b>>2]=c[b>>2]|1;b=e}e=c[f>>2]|0;if(!e){pB(b);pB(f);f=0;break}else{c[f+8>>2]=rB(b,_(e,N)|0)|0;break}}while(0);i=O;return f|0}function so(a,b,c){a=a|0;b=b|0;c=c|0;return ro(a,b,c,0)|0}function to(a){a=a|0;return ro(a,0,0,0)|0}function uo(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=c[a+12>>2]|0;if(a){f=c[a+8>>2]|0;a:do if((c[a>>2]|0)>0){g=a+4|0;h=(b|0)==0;i=0;while(1){d=_(c[g>>2]|0,i)|0;e=f+d|0;if(!h)zb[b&127](e);switch(c[e>>2]|0){case 3:case 2:{pB(c[f+(d+12)>>2]|0);break}case 5:case 4:{pB(c[f+(d+12)>>2]|0);break}case 6:{pB(c[f+(d+12)>>2]|0);break}case 7:{pB(c[f+(d+40)>>2]|0);break}case 9:case 8:{pB(c[f+(d+8)>>2]|0);break}case 14:case 13:{wo(f+(d+8)|0);break}case 10:{pB(c[f+(d+16)>>2]|0);break}case 11:{pB(c[f+(d+8)>>2]|0);break}case 12:{pB(c[f+(d+40)>>2]|0);break}default:{}}i=i+1|0;if((i|0)>=(c[a>>2]|0))break a}}while(0);pB(f);pB(a)}return}function vo(b,d){b=b|0;d=d|0;var e=0,f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+16|0;r=s;e=a[b>>0]|0;a:do switch(e|0){case 91:{b=b+1|0;c[d>>2]=1;n=d+8|0;f=+$z(b,r);e=c[r>>2]|0;if((e|0)==(b|0)){b=0;break a}h[n>>3]=f;if(e){f=+$z(e,r);l=c[r>>2]|0;if((l|0)==(e|0)){b=0;break a}h[d+16>>3]=f;if(l){f=+$z(l,r);k=c[r>>2]|0;if((k|0)==(l|0)){b=0;break a}h[d+24>>3]=f;if(k){f=+$z(k,r);e=c[r>>2]|0;if((e|0)==(k|0)){b=0;break a}h[d+32>>3]=f;if((e|0)!=0?(o=d+40|0,m=bA(e,r,10)|0,c[o>>2]=m,j=c[r>>2]|0,!((j|0)==(e|0)|(j|0)==0)):0){l=qB(m,8)|0;b:do if((m|0)>0){k=0;while(1){f=+$z(j,r);e=c[r>>2]|0;if((e|0)==(j|0)|(e|0)==0){e=19;break}g[l+(k<<3)>>2]=f;j=zo(e,l+(k<<3)+4|0)|0;k=k+1|0;if(!j){e=21;break}if((k|0)>=(c[o>>2]|0))break b}if((e|0)==19){pB(l);b=0;break a}else if((e|0)==21){pB(l);b=0;break a}}while(0);c[n+36>>2]=l}else b=0}else b=0}else b=0}else b=0;break}case 40:{b=b+1|0;c[d>>2]=2;f=+$z(b,r);e=c[r>>2]|0;if((e|0)==(b|0)){b=0;break a}h[d+8>>3]=f;if(e){f=+$z(e,r);j=c[r>>2]|0;if((j|0)==(e|0)){b=0;break a}h[d+16>>3]=f;if(j){f=+$z(j,r);e=c[r>>2]|0;if((e|0)==(j|0)){b=0;break a}h[d+24>>3]=f;if(e){f=+$z(e,r);j=c[r>>2]|0;if((j|0)==(e|0)){b=0;break a}h[d+32>>3]=f;if(j){f=+$z(j,r);k=c[r>>2]|0;if((k|0)==(j|0)){b=0;break a}h[d+40>>3]=f;if(k){f=+$z(k,r);e=c[r>>2]|0;if((e|0)==(k|0)){b=0;break a}h[d+48>>3]=f;if((e|0)!=0?(q=d+56|0,n=bA(e,r,10)|0,c[q>>2]=n,p=c[r>>2]|0,!((p|0)==(e|0)|(p|0)==0)):0){l=qB(n,8)|0;c:do if((n|0)>0){k=0;j=p;while(1){f=+$z(j,r);e=c[r>>2]|0;if((e|0)==(j|0)|(e|0)==0){e=46;break}g[l+(k<<3)>>2]=f;j=zo(e,l+(k<<3)+4|0)|0;k=k+1|0;if(!j){e=48;break}if((k|0)>=(c[q>>2]|0))break c}if((e|0)==46){pB(l);b=0;break a}else if((e|0)==48){pB(l);b=0;break a}}while(0);c[d+60>>2]=l}else b=0}else b=0}else b=0}else b=0}else b=0}else b=0;break}case 47:case 35:{c[d>>2]=0;c[d+8>>2]=b;break}default:if(!(Wx(e)|0))b=0;else{c[d>>2]=0;c[d+8>>2]=b}}while(0);i=s;return b|0}function wo(a){a=a|0;var b=0,d=0;switch(c[a>>2]|0){case 1:{d=a+40|0;a=a+8+36|0;if((c[d>>2]|0)>0){b=0;do{pB(c[(c[a>>2]|0)+(b<<3)+4>>2]|0);b=b+1|0}while((b|0)<(c[d>>2]|0))}pB(c[a>>2]|0);break}case 2:{d=a+56|0;a=a+60|0;if((c[d>>2]|0)>0){b=0;do{pB(c[(c[a>>2]|0)+(b<<3)+4>>2]|0);b=b+1|0}while((b|0)<(c[d>>2]|0))}pB(c[a>>2]|0);break}default:{}}return}function xo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0;j=i;i=i+16|0;g=j;h[b>>3]=+$z(a,g);d=c[g>>2]|0;if(((d|0)!=(a|0)?(h[b+8>>3]=+$z(d,g),e=c[g>>2]|0,(d|0)!=(e|0)):0)?(h[b+16>>3]=+$z(e,g),f=c[g>>2]|0,(e|0)!=(f|0)):0){h[b+24>>3]=+$z(f,g);d=c[g>>2]|0;d=(f|0)==(d|0)?0:d}else d=0;i=j;return d|0}function yo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0;k=i;i=i+16|0;d=k+4|0;g=k;e=bA(a,d,10)|0;d=c[d>>2]|0;a:do if((d|0)==(a|0)|(d|0)==0)d=0;else{j=qB(e,24)|0;c[b>>2]=e;b:do if((e|0)>0){e=j;f=0;while(1){h[e>>3]=+$z(d,g);a=c[g>>2]|0;if((d|0)==(a|0)){a=5;break}h[e+8>>3]=+$z(a,g);d=c[g>>2]|0;if((a|0)==(d|0)){a=7;break}h[e+16>>3]=0.0;f=f+1|0;if((f|0)>=(c[b>>2]|0))break b;else e=e+24|0}if((a|0)==5){pB(j);d=0;break a}else if((a|0)==7){pB(j);d=0;break a}}while(0);c[b+4>>2]=j}while(0);i=k;return d|0}function zo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;f=bA(b,j,10)|0;j=c[j>>2]|0;b=(j|0)==(b|0)?0:j;a:do if(!((f|0)<1|(b|0)==0)){do{j=a[b>>0]|0;e=j<<24>>24==0;b=b+1|0}while(j<<24>>24!=45&(e^1));if(!e){j=qB(f+1|0,1)|0;b:do if((f|0)>0){h=f;g=j;while(1){f=a[b>>0]|0;if(!(f<<24>>24))break;e=g+1|0;a[g>>0]=f;b=b+1|0;if((h|0)>1){h=h+-1|0;g=e}else break b}pB(j);b=0;break a}else e=j;while(0);a[e>>0]=0;c[d>>2]=j}else b=0}else b=0;while(0);i=k;return b|0}function Ao(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+4|0;j=l;c[d>>2]=0;c[e>>2]=(hk(gl(b)|0)|0)!=0&1;f=c[13430]|0;a:do if(f){f=Aj(b,f)|0;switch(a[f>>0]|0){case 110:{if(!(lA(f,159165)|0))f=52864;else break a;break}case 102:{if(!(lA(f,124700)|0))f=52828;else break a;break}case 98:{if(lA(f,124708)|0)if(!(lA(f,134593)|0))f=52852;else break a;else f=52840;break}default:break a}c[d>>2]=c[f+4>>2];c[e>>2]=c[f+8>>2]}while(0);f=c[13441]|0;if(((f|0)!=0?(c[e>>2]|0)==1:0)?(g=Aj(b,f)|0,(a[g>>0]|0)!=0):0)Ho(g,e);f=c[13442]|0;if(((f|0)!=0?(c[d>>2]|0)==1:0)?(h=Aj(b,f)|0,(a[h>>0]|0)!=0):0)Ho(h,d);if(a[(c[b+16>>2]|0)+153>>0]|0){g=b+-48|0;f=gl(c[((c[b>>2]&3|0)==2?b:g)+40>>2]|0)|0;h=c[b>>2]&3;Ao(Sj(f,c[((h|0)==2?b:g)+40>>2]|0,c[((h|0)==3?b:b+48|0)+40>>2]|0,0,0)|0,k,j);c[e>>2]=c[k>>2]|c[e>>2];c[d>>2]=c[j>>2]|c[d>>2]}i=l;return}function Bo(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0;f=0;d=0.0;do{e=b>>(f<<3)&15;if((e|0)!=1)if((e|0)!=2)if((e|0)!=3)if((e|0)!=4)if((e|0)!=5)if((e|0)!=6)if((e|0)!=7){if((e|0)==8){e=33600;g=3}}else{e=33576;g=3}else{e=33552;g=3}else{e=33528;g=3}else{e=33504;g=3}else{e=33480;g=3}else{e=33456;g=3}else{e=33432;g=3}if((g|0)==3){g=0;d=d+ +h[e+8>>3]}f=f+1|0}while((f|0)!=4);return +(d*10.0*+Hs(a,c[13434]|0,1.0,0.0))}function Co(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0;n=i;i=i+80|0;l=n+72|0;m=n+8|0;k=n;j=+Bo(a,g);j=j*j;h[k>>3]=j;c[f+12>>2]=g;f=f+32|0;a=e+3|0;g=b+(a<<4)|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];if((e|0)>(d|0)?(p=+h[b+(e<<4)>>3]-+h[g>>3],o=+h[b+(e<<4)+8>>3]-+h[b+(a<<4)+8>>3],p*p+o*o<j):0)e=e+-3|0;s=m+48|0;r=b+(e<<4)|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];q=m+32|0;a=b+(e+1<<4)|0;c[q>>2]=c[a>>2];c[q+4>>2]=c[a+4>>2];c[q+8>>2]=c[a+8>>2];c[q+12>>2]=c[a+12>>2];g=m+16|0;d=b+(e+2<<4)|0;c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];c[g+8>>2]=c[d+8>>2];c[g+12>>2]=c[d+12>>2];c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];c[m+8>>2]=c[f+8>>2];c[m+12>>2]=c[f+12>>2];c[l>>2]=m;c[l+4>>2]=k;Zr(l,26,m,1);c[r>>2]=c[s>>2];c[r+4>>2]=c[s+4>>2];c[r+8>>2]=c[s+8>>2];c[r+12>>2]=c[s+12>>2];c[a>>2]=c[q>>2];c[a+4>>2]=c[q+4>>2];c[a+8>>2]=c[q+8>>2];c[a+12>>2]=c[q+12>>2];c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];c[d+8>>2]=c[g+8>>2];c[d+12>>2]=c[g+12>>2];b=b+(e+3<<4)|0;c[b>>2]=c[m>>2];c[b+4>>2]=c[m+4>>2];c[b+8>>2]=c[m+8>>2];c[b+12>>2]=c[m+12>>2];i=n;return e|0}function Do(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0.0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0;o=i;i=i+80|0;l=o+72|0;n=o+8|0;m=o;k=+Bo(a,g);k=k*k;h[m>>3]=k;c[f+8>>2]=g;g=f+16|0;a=b+(d<<4)|0;c[g>>2]=c[a>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];if(!((e|0)>(d|0)?(j=d+3|0,q=+h[a>>3]-+h[b+(j<<4)>>3],p=+h[b+(d<<4)+8>>3]-+h[b+(j<<4)+8>>3],q*q+p*p<k):0))j=d;d=b+(j+3<<4)|0;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];c[n+12>>2]=c[d+12>>2];f=n+16|0;e=b+(j+2<<4)|0;c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];c[f+8>>2]=c[e+8>>2];c[f+12>>2]=c[e+12>>2];r=n+32|0;a=b+(j+1<<4)|0;c[r>>2]=c[a>>2];c[r+4>>2]=c[a+4>>2];c[r+8>>2]=c[a+8>>2];c[r+12>>2]=c[a+12>>2];s=n+48|0;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];c[s+12>>2]=c[g+12>>2];c[l>>2]=s;c[l+4>>2]=m;Zr(l,26,n,0);m=b+(j<<4)|0;c[m>>2]=c[s>>2];c[m+4>>2]=c[s+4>>2];c[m+8>>2]=c[s+8>>2];c[m+12>>2]=c[s+12>>2];c[a>>2]=c[r>>2];c[a+4>>2]=c[r+4>>2];c[a+8>>2]=c[r+8>>2];c[a+12>>2]=c[r+12>>2];c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];c[d>>2]=c[n>>2];c[d+4>>2]=c[n+4>>2];c[d+8>>2]=c[n+8>>2];c[d+12>>2]=c[n+12>>2];i=o;return j|0}function Eo(a,b,d,e,f,g,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0;r=(g|0)!=0;j=(i|0)!=0;if(!((e|0)==(d|0)&(r&j))){if(j){k=+Bo(a,i);l=+h[b+(e<<4)>>3];m=+h[b+(e<<4)+8>>3];q=e+3|0;j=b+(q<<4)|0;n=+h[j>>3];q=b+(q<<4)+8|0;o=+h[q>>3];t=l-n;u=m-o;u=+O(+(t*t+u*u))*.9;k=k>=u?u:k;do if(m==o)if(l<n){p=n-k;k=m;break}else{p=n+k;k=m;break}else if(m<o){p=l;k=o-k;break}else{p=l;k=o+k;break}while(0);v=e+1|0;h[b+(v<<4)>>3]=l;h[b+(v<<4)+8>>3]=m;e=b+(e+2<<4)|0;h[j>>3]=p;h[q>>3]=k;c[e>>2]=c[j>>2];c[e+4>>2]=c[j+4>>2];c[e+8>>2]=c[j+8>>2];c[e+12>>2]=c[j+12>>2];c[f+12>>2]=i;h[f+32>>3]=n;h[f+40>>3]=o}if(r){k=+Bo(a,g);j=b+(d<<4)|0;l=+h[j>>3];m=+h[b+(d<<4)+8>>3];v=d+3|0;n=+h[b+(v<<4)>>3];o=+h[b+(v<<4)+8>>3];t=l-n;u=m-o;u=+O(+(t*t+u*u))*.9;k=k>=u?u:k;do if(m==o)if(l<n){p=l+k;k=m;break}else{p=l-k;k=m;break}else if(m<o){p=l;k=m+k;break}else{p=l;k=m-k;break}while(0);e=d+1|0;v=b+(e<<4)|0;h[v>>3]=p;h[b+(e<<4)+8>>3]=k;c[j>>2]=c[v>>2];c[j+4>>2]=c[v+4>>2];c[j+8>>2]=c[v+8>>2];c[j+12>>2]=c[v+12>>2];v=d+2|0;h[b+(v<<4)>>3]=n;h[b+(v<<4)+8>>3]=o;c[f+8>>2]=g;h[f+16>>3]=l;h[f+24>>3]=m}}else{q=b+(e<<4)|0;s=+h[q>>3];t=+h[b+(e<<4)+8>>3];j=e+3|0;r=b+(j<<4)|0;u=+h[r>>3];j=b+(j<<4)+8|0;p=+h[j>>3];k=+Bo(a,g);o=+Bo(a,i);n=s-u;l=t-p;l=+O(+(n*n+l*l));v=!(k+o>=l);l=l/3.0;k=v?k:l;l=v?o:l;do if(t==p)if(s<u){o=s+k;m=t;n=u-l;k=t;break}else{o=s-k;m=t;n=u+l;k=t;break}else if(t<p){o=s;m=t+k;n=s;k=p-l;break}else{o=s;m=t-k;n=s;k=p+l;break}while(0);d=e+1|0;v=b+(d<<4)|0;h[v>>3]=o;h[b+(d<<4)+8>>3]=m;c[q>>2]=c[v>>2];c[q+4>>2]=c[v+4>>2];c[q+8>>2]=c[v+8>>2];c[q+12>>2]=c[v+12>>2];v=b+(e+2<<4)|0;h[r>>3]=n;h[j>>3]=k;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];c[v+8>>2]=c[r+8>>2];c[v+12>>2]=c[r+12>>2];c[f+12>>2]=i;h[f+32>>3]=s;h[f+40>>3]=t;c[f+8>>2]=g;h[f+16>>3]=u;h[f+24>>3]=p}return}function Fo(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0;m=+h[b>>3];k=+h[c>>3]-m;l=+h[b+8>>3];j=+h[c+8>>3]-l;o=d*10.0/(+O(+(k*k+j*j))+.0001);k=o*(k+(k>=0.0?.0001:-.0001));j=o*(j+(j>=0.0?.0001:-.0001));o=k*.5;n=j*.5;i=m-n;f=l-o;n=m+n;l=o+l;o=k+i;m=j+f;k=k+n;j=j+l;g=o>k?o:k;g=n>g?n:g;d=m>j?m:j;d=l>d?l:d;k=o<k?o:k;k=n<k?n:k;j=m<j?m:j;j=l<j?l:j;h[a>>3]=i<k?i:k;h[a+8>>3]=f<j?f:j;h[a+16>>3]=i>g?i:g;h[a+24>>3]=f>d?f:d;return}function Go(a,b,d,e,f,g,j){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=+g;j=j|0;var 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.0,y=0.0,z=0.0;w=i;i=i+80|0;u=w+64|0;s=w+48|0;t=w+32|0;r=w+16|0;o=w;p=(c[a+16>>2]|0)+12|0;q=c[p>>2]|0;c[p>>2]=b;Uu(a,c[(c[a>>2]|0)+336>>2]|0);av(a,g);z=+h[e>>3]-+h[d>>3];k=e+8|0;x=+h[k>>3]-+h[d+8>>3];y=10.0/(+O(+(z*z+x*x))+.0001);h[e>>3]=y*(z+(z>=0.0?.0001:-.0001));h[k>>3]=y*(x+(x>=0.0?.0001:-.0001));k=t+8|0;l=r+8|0;n=0;do{b=j>>(n<<3);m=b&255;if(!m)break;c[t>>2]=c[e>>2];c[t+4>>2]=c[e+4>>2];c[t+8>>2]=c[e+8>>2];c[t+12>>2]=c[e+12>>2];c[r>>2]=c[d>>2];c[r+4>>2]=c[d+4>>2];c[r+8>>2]=c[d+8>>2];c[r+12>>2]=c[d+12>>2];b=b&15;if((b|0)!=1)if((b|0)!=2)if((b|0)!=3)if((b|0)!=4)if((b|0)!=5)if((b|0)!=6)if((b|0)!=7){if((b|0)==8){b=33600;v=4}}else{b=33576;v=4}else{b=33552;v=4}else{b=33528;v=4}else{b=33504;v=4}else{b=33480;v=4}else{b=33456;v=4}else{b=33432;v=4}if((v|0)==4){v=0;z=+h[b+8>>3]*f;h[t>>3]=+h[t>>3]*z;h[k>>3]=z*+h[k>>3];b=c[b+16>>2]|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];c[u>>2]=c[t>>2];c[u+4>>2]=c[t+4>>2];c[u+8>>2]=c[t+8>>2];c[u+12>>2]=c[t+12>>2];Db[b&15](a,s,u,f,g,m);h[r>>3]=+h[r>>3]+ +h[t>>3];h[l>>3]=+h[l>>3]+ +h[k>>3]};c[o>>2]=c[r>>2];c[o+4>>2]=c[r+4>>2];c[o+8>>2]=c[r+8>>2];c[o+12>>2]=c[r+12>>2];c[d>>2]=c[o>>2];c[d+4>>2]=c[o+4>>2];c[d+8>>2]=c[o+8>>2];c[d+12>>2]=c[o+12>>2];n=n+1|0}while((n|0)<4);c[p>>2]=q;i=w;return}function Ho(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;m=n;k=n+4|0;c[d>>2]=0;a:do if(a[b>>0]|0){l=0;b:while(1){h=(l|0)==3;j=(l|0)==0;while(1){c[k>>2]=0;e=Ro(b,52888,k)|0;if((e|0)==(b|0)){e=b;while(1){f=Ro(e,52904,k)|0;if((e|0)==(f|0))break;else e=f}g=Ro(e,52952,k)|0}else g=e;e=c[k>>2]|0;if((e|0)!=0&(e&15|0)==0){b=g;g=14;break}if(!e)break b;f=(e|0)==8;if(!(h&f)){b=g;g=12;break}if(!(a[g>>0]|0))break a;else b=g}if((g|0)==12){if(j&f)if(!(a[b>>0]|0))break a;else e=8}else if((g|0)==14)e=e|1;c[d>>2]=c[d>>2]|e<<(l<<3);l=l+1|0;if(!((l|0)<4&(a[b>>0]|0)!=0))break a}c[m>>2]=b;dj(0,123170,m)|0}while(0);i=n;return}function Io(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[a>>2]|0;e=+h[b>>3]-+h[f>>3];d=+h[b+8>>3]-+h[f+8>>3];return e*e+d*d<=+h[c[a+4>>2]>>3]|0}function Jo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0,o=0;o=i;i=i+80|0;n=o;l=f>4.0?f*.25*.35:.35;k=+h[d+8>>3];m=l*k;j=+h[d>>3];l=l*j;f=+h[b>>3];j=j+f;e=+h[b+8>>3];k=k+e;d=n+64|0;if(!(g&32)){h[n+64>>3]=j;h[n+72>>3]=k;c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];c[n+8>>2]=c[d+8>>2];c[n+12>>2]=c[d+12>>2];d=n+32|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];f=j;e=k}else{c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[n>>2]=c[b>>2];c[n+4>>2]=c[b+4>>2];c[n+8>>2]=c[b+8>>2];c[n+12>>2]=c[b+12>>2];h[n+32>>3]=j;h[n+40>>3]=k}h[n+16>>3]=m+f;h[n+24>>3]=e-l;h[n+48>>3]=f-m;h[n+56>>3]=l+e;do if(!(g&64))if(!(g&128)){Wu(a,n+16|0,3,g>>>4&1^1);break}else{Wu(a,n+32|0,3,g>>>4&1^1);break}else Wu(a,n,3,g>>>4&1^1);while(0);i=o;return}function Ko(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0,t=0,u=0;u=i;i=i+144|0;t=u;j=e*4.0;r=(g&32|0)==0;j=!(j<f)|r?.45:f/j*.45;if(!(f>1.0)|r)e=0.0;else e=(f+-1.0)*.05/e;o=+h[d+8>>3];q=-o;s=j*q;n=+h[d>>3];p=j*n;q=e*q;m=e*n;f=+h[b>>3];e=n+f;k=+h[b+8>>3];l=o+k;n=f+n*.5;o=o*.5+k;d=t+128|0;if(r){h[t+128>>3]=e;h[t+136>>3]=l;c[t>>2]=c[d>>2];c[t+4>>2]=c[d+4>>2];c[t+8>>2]=c[d+8>>2];c[t+12>>2]=c[d+12>>2];h[t+16>>3]=f-s;h[t+24>>3]=k-p;h[t+32>>3]=n-q;h[t+40>>3]=o-m;h[t+48>>3]=f;h[t+56>>3]=k;r=t+64|0;c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];h[t+80>>3]=f;j=k;e=k}else{c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];h[t+16>>3]=e-s;h[t+24>>3]=l-p;h[t+32>>3]=n-q;h[t+40>>3]=o-m;h[t+48>>3]=e-q;h[t+56>>3]=l-m;h[t+64>>3]=e;h[t+72>>3]=l;h[t+80>>3]=q+e;f=e;j=l;e=m+l}h[t+88>>3]=e;h[t+96>>3]=q+n;h[t+104>>3]=m+o;h[t+112>>3]=s+f;h[t+120>>3]=p+j;do if(!(g&64))if(!(g&128)){Wu(a,t,9,1);break}else{Wu(a,t+48|0,6,1);break}else Wu(a,t,6,1);while(0);i=u;return}function Lo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0.0,w=0.0;u=i;i=i+64|0;t=u;w=+h[d+8>>3];v=+h[d>>3];f=+h[b>>3];q=v+f;j=+h[b+8>>3];r=w+j;s=f+v*.2;e=w*.2+j;f=f+v*.6;j=w*.6+j;h[t>>3]=s-w;d=t+8|0;h[d>>3]=v+e;k=t+16|0;h[k>>3]=w+s;l=t+24|0;h[l>>3]=e-v;m=t+32|0;h[m>>3]=w+f;n=t+40|0;h[n>>3]=j-v;o=t+48|0;h[o>>3]=f-w;p=t+56|0;h[p>>3]=v+j;if(!(g&64)){if(g&128){h[k>>3]=s;h[l>>3]=e;h[m>>3]=f;h[n>>3]=j}}else{h[t>>3]=s;h[d>>3]=e;h[o>>3]=f;h[p>>3]=j}Wu(a,t,4,1);c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];h[k>>3]=q;h[l>>3]=r;Zu(a,t,2);i=u;return}function Mo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0;s=i;i=i+64|0;r=s;j=+h[d+8>>3];u=j*-.4;f=+h[d>>3];t=f*.4;w=+h[b>>3];q=w+f*.8;v=+h[b+8>>3];e=j*.8+v;f=f+w;j=j+v;h[r>>3]=u+w;d=r+8|0;h[d>>3]=t+v;k=r+16|0;h[k>>3]=w-u;l=r+24|0;h[l>>3]=v-t;m=r+32|0;h[m>>3]=q-u;n=r+40|0;h[n>>3]=e-t;o=r+48|0;h[o>>3]=u+q;p=r+56|0;h[p>>3]=t+e;if(!(g&64)){if(g&128){c[k>>2]=c[b>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];h[m>>3]=q;h[n>>3]=e}}else{c[r>>2]=c[b>>2];c[r+4>>2]=c[b+4>>2];c[r+8>>2]=c[b+8>>2];c[r+12>>2]=c[b+12>>2];h[o>>3]=q;h[p>>3]=e}Wu(a,r,4,g>>>4&1^1);h[r>>3]=q;h[d>>3]=e;h[r+16>>3]=f;h[l>>3]=j;Zu(a,r,2);i=s;return}function No(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0;k=i;i=i+80|0;j=k;o=+h[d+8>>3];l=-o/3.0;q=+h[d>>3];f=q/3.0;p=+h[b>>3];m=q*.5+p;n=+h[b+8>>3];e=o*.5+n;d=j+64|0;h[j+64>>3]=q+p;h[j+72>>3]=o+n;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];h[j+16>>3]=l+m;h[j+24>>3]=f+e;d=j+32|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];h[j+48>>3]=m-l;h[j+56>>3]=e-f;do if(!(g&64)){d=g>>>4&1^1;if(!(g&128)){Wu(a,j,4,d);break}else{Wu(a,j,3,d);break}}else Wu(a,d,3,g>>>4&1^1);while(0);i=k;return}function Oo(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=+e;f=f|0;var g=0,j=0,k=0.0;g=i;i=i+32|0;j=g;k=+h[c>>3];e=+h[c+8>>3];d=+O(+(k*k+e*e))*.5;k=k*.5+ +h[b>>3];h[j>>3]=k-d;e=+h[b+8>>3]+e*.5;h[j+8>>3]=e-d;h[j+16>>3]=d+k;h[j+24>>3]=d+e;Vu(a,j,2,f>>>4&1^1);i=g;return}function Po(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+128|0;s=u+64|0;t=u+32|0;q=u+16|0;r=u;l=f>4.0?f*.5*.25:.5;p=+h[b>>3];j=+h[d>>3];e=+h[b+8>>3];m=+h[d+8>>3];f=l*m;l=l*j;c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];h[t+16>>3]=p+j;h[t+24>>3]=e+m;h[s>>3]=l+(p-f);m=f+(l+e);h[s+8>>3]=m;h[s+48>>3]=l+(f+p);e=f+(e-l);h[s+56>>3]=e;j=f*-.95;n=l+(j+p);o=l*4.0/3.0;if(!(g&32)){f=f*4.0/3.0;k=e-f;j=l+(p-j)-o;f=m-f;e=n-o}else{f=f*4.0/3.0;k=f+e;j=o+(l+(p-j));f=m+f;e=o+n}h[s+16>>3]=e;h[s+24>>3]=f;h[s+32>>3]=j;h[s+40>>3]=k;Zu(a,t,2);if(!(g&64)){if(g&128)Rs(r,s,3,.5,s,0)}else Rs(q,s,3,.5,0,s);Yu(a,s,4,0,0,0);i=u;return}function Qo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=+e;f=+f;g=g|0;var j=0;g=i;i=i+32|0;j=g;e=+h[b>>3]+ +h[d>>3];f=+h[b+8>>3]+ +h[d+8>>3];c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];h[j+16>>3]=e;h[j+24>>3]=f;Zu(a,j,2);i=g;return}function Ro(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[b>>2]|0;a:do if(e){f=b;while(1){b=pA(e)|0;if(!(rA(a,e,b)|0)){e=f;break}f=f+8|0;e=c[f>>2]|0;if(!e)break a}c[d>>2]=c[d>>2]|c[e+4>>2];a=a+b|0}while(0);return a|0}function So(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j+8|0;f=j;d=zj(b,123272)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){e=d;h=5}else{d=zj(b,123284)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){e=d;h=5}else d=0}if((h|0)==5){d=so(e,0,120)|0;if(!d){c[f>>2]=ok(b)|0;dj(0,123291,f)|0;c[g>>2]=e;dj(3,123344,g)|0}}i=j;return d|0}function To(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=$p(304)|0;if(!f)dj(1,123352,g)|0;e=a+16|0;a=c[e>>2]|0;c[f>>2]=a;c[e>>2]=f;if(!a){c[f+144>>2]=3;c[f+148>>2]=0;h[f+152>>3]=1.0}else{b=f+16|0;d=a+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));b=f+56|0;d=a+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));c[f+144>>2]=c[a+144>>2];c[f+148>>2]=c[a+148>>2];h[f+152>>3]=+h[a+152>>3];c[f+136>>2]=c[a+136>>2];b=f+96|0;d=a+96|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0))}i=g;return f|0}function Uo(a){a=a|0;var b=0;a=a+16|0;b=c[a>>2]|0;if(!b)Ia(123378,123382,117,123389);else{pB(c[b+212>>2]|0);pB(c[b+208>>2]|0);pB(c[b+216>>2]|0);pB(c[b+220>>2]|0);pB(c[b+224>>2]|0);pB(c[b+228>>2]|0);pB(c[b+232>>2]|0);pB(c[b+236>>2]|0);pB(c[b+240>>2]|0);pB(c[b+244>>2]|0);pB(c[b+248>>2]|0);pB(c[b+252>>2]|0);pB(c[b+256>>2]|0);pB(c[b+272>>2]|0);pB(c[b+284>>2]|0);pB(c[b+280>>2]|0);c[a>>2]=c[b>>2];pB(b);return}}function Vo(d,e,f,g,h,i,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;l=c[d+16>>2]|0;k=c[d+152>>2]|0;if((e|0)!=0&(k&32768|0)!=0)c[l+192>>2]=e;if(((k&65536|0)!=0?(c[l+212>>2]=Up(i,j)|0,(f|0)!=0):0)?(a[f>>0]|0)!=0:0){c[l+208>>2]=Up(f,j)|0;d=1}else d=0;do if(k&4194304){if((g|0)!=0?(a[g>>0]|0)!=0:0){c[l+228>>2]=Up(g,j)|0;d=l+260|0;b[d>>1]=b[d>>1]|1;d=1;break}i=c[l+192>>2]|0;if(i){c[l+228>>2]=oA(i)|0;d=1}}while(0);if((h|0)!=0&(k&8388608|0)!=0?(a[h>>0]|0)!=0:0){c[l+244>>2]=Up(h,j)|0;d=1}return d|0}function Wo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+80|0;j=k;h=k+8|0;g=c[(c[b>>2]|0)+168>>2]|0;f=c[(c[(c[g+16>>2]|0)+8>>2]|0)+92>>2]|0;gp(b,e);b=zj(d,125554)|0;if((b|0)!=0?(a[b>>0]|0)!=0:0){jj(e,b)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){hj(e,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[e>>2]|0;c[f>>2]=b}else{if((g|0)!=(d|0)&(f|0)!=0){jj(e,f)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){hj(e,1)|0;b=c[f>>2]|0}c[f>>2]=b+1;a[b>>0]=95}switch(rl(d)|0){case 0:{f=(c[d>>2]|0)>>>4;b=(g|0)==(d|0)?134935:123403;break}case 1:{f=(c[d>>2]|0)>>>4;b=134886;break}case 2:{f=(c[d>>2]|0)>>>4;b=134900;break}default:{f=0;b=0}}jj(e,b)|0;c[j>>2]=f;Oz(h,123409,j)|0;jj(e,h)|0;f=e+4|0;b=c[f>>2]|0;if(b>>>0>=(c[e+8>>2]|0)>>>0){hj(e,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[e>>2]|0;c[f>>2]=b}i=k;return b|0}function Xo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0.0,r=0,s=0,t=0;t=i;i=i+48|0;s=t+16|0;e=t+32|0;r=t;q=+h[(c[a+16>>2]|0)+152>>3];p=hp(d,0,e)|0;if((p+-1|0)>>>0>=2){f=+h[b+16>>3];m=(+h[b>>3]+f)*.5;h[r>>3]=m;j=+h[b+24>>3];n=(+h[b+8>>3]+j)*.5;h[r+8>>3]=n;m=f-m;n=j-n;o=q>.5;if(o)av(a,.5);k=c[e>>2]|0;l=k+8|0;b=c[l>>2]|0;d=c[b>>2]|0;if(d){f=0.0;do{e=b+4|0;if(!(+g[e>>2]==0.0)){Su(a,d);if(!(c[b+12>>2]|0))j=6.283185307179586;else j=f+ +g[e>>2]*6.283185307179586;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];c[s+12>>2]=c[r+12>>2];e=Pv(s,m,n,f,j)|0;Yu(a,c[e>>2]|0,c[e+4>>2]|0,0,0,1);Ux(e);f=j}b=b+12|0;d=c[b>>2]|0}while((d|0)!=0)}if(o)av(a,q);pB(c[k+4>>2]|0);pB(c[l>>2]|0);pB(k)}i=t;return p|0}function Yo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0,t=0,u=0;u=i;i=i+80|0;f=u+64|0;t=u;s=+h[(c[a+16>>2]|0)+152>>3];r=hp(d,0,f)|0;if((r+-1|0)>>>0>=2){if(!e){c[t>>2]=c[b>>2];c[t+4>>2]=c[b+4>>2];c[t+8>>2]=c[b+8>>2];c[t+12>>2]=c[b+12>>2];q=t+16|0;p=b+16|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];q=t+32|0;p=b+32|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];q=t+48|0;p=b+48|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2]}else{q=b+32|0;c[t>>2]=c[q>>2];c[t+4>>2]=c[q+4>>2];c[t+8>>2]=c[q+8>>2];c[t+12>>2]=c[q+12>>2];q=t+16|0;p=b+48|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2];q=t+32|0;c[q>>2]=c[b>>2];c[q+4>>2]=c[b+4>>2];c[q+8>>2]=c[b+8>>2];c[q+12>>2]=c[b+12>>2];q=t+48|0;p=b+16|0;c[q>>2]=c[p>>2];c[q+4>>2]=c[p+4>>2];c[q+8>>2]=c[p+8>>2];c[q+12>>2]=c[p+12>>2]}m=t+16|0;n=+h[m>>3];j=+h[t>>3];o=n-j;p=t+32|0;h[p>>3]=j;h[m>>3]=j;q=s>.5;if(q)av(a,.5);f=c[f>>2]|0;k=f+8|0;b=c[k>>2]|0;d=c[b>>2]|0;if(d){l=t+48|0;do{e=b+4|0;if(!(+g[e>>2]==0.0)){Su(a,d);if(!(c[b+12>>2]|0))j=n;else j=+h[t>>3]+o*+g[e>>2];h[p>>3]=j;h[m>>3]=j;Wu(a,t,4,1);j=+h[m>>3];h[l>>3]=j;h[t>>3]=j}b=b+12|0;d=c[b>>2]|0}while((d|0)!=0)}if(q)av(a,s);pB(c[f+4>>2]|0);pB(c[k>>2]|0);pB(f)}i=u;return r|0}function Zo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=c[a+16>>2]|0;e=c[a+152>>2]|0;if(e&4259840){f=e&131072;c[d+264>>2]=f>>>16^2;h=d+268|0;c[h>>2]=(f>>>16^2)+2;g=d+272|0;pB(c[g>>2]|0);d=$p(c[h>>2]<<4)|0;c[g>>2]=d;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];g=d+16|0;b=b+16|0;c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];if(!(e&8192))vu(a,d,d,2)|0;if(!f)Fp(d)}return}function _o(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+160|0;g=r+96|0;f=r+32|0;o=r+16|0;j=r;d=+h[b>>3];q=a+16|0;l=+h[q>>3];if(!(((((((((!(d>l)?(m=+h[a>>3],!(d<m)):0)?(n=+h[b+8>>3],e=+h[a+24>>3],!(n>e)):0)?(k=+h[a+8>>3],!(n<k)):0)?(n=+h[b+16>>3],!(n>l|n<m)):0)?(n=+h[b+24>>3],!(n>e|n<k)):0)?(n=+h[b+32>>3],!(n>l|n<m)):0)?(n=+h[b+40>>3],!(n>e|n<k)):0)?(n=+h[b+48>>3],!(n>l|n<m)):0)?(n=+h[b+56>>3],!(n>e|n<k)):0))p=11;do if((p|0)==11){s=b+48|0;p=b+16|0;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];n=+Jp(o,f,g);p=b+32|0;c[o>>2]=c[b>>2];c[o+4>>2]=c[b+4>>2];c[o+8>>2]=c[b+8>>2];c[o+12>>2]=c[b+12>>2];c[f>>2]=c[s>>2];c[f+4>>2]=c[s+4>>2];c[f+8>>2]=c[s+8>>2];c[f+12>>2]=c[s+12>>2];c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];if(!(n<4.0&+Jp(o,f,g)<4.0)){Rs(j,b,3,.5,g,f);_o(a,g);_o(a,f);break}f=a+24|0;g=a+8|0;e=+h[q>>3];j=0;while(1){d=+h[b+(j<<4)>>3];if(!(d>e))if(d<+h[a>>3]){h[a>>3]=d;d=e}else d=e;else h[q>>3]=d;e=+h[b+(j<<4)+8>>3];if(!(e>+h[f>>3])){if(e<+h[g>>3])h[g>>3]=e}else h[f>>3]=e;j=j+1|0;if((j|0)==4)break;else e=d}}while(0);i=r;return}function $o(e,f){e=e|0;f=f|0;var j=0.0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.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,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,U=0,V=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,Wa=0,Xa=0;Wa=i;i=i+240|0;Ra=Wa+32|0;Ua=Wa+24|0;Ta=Wa+16|0;r=Wa+8|0;s=Wa;Sa=Wa+96|0;Oa=Wa+88|0;Pa=Wa+84|0;Qa=Wa+80|0;Na=Wa+104|0;Va=Wa+64|0;Ka=e+152|0;m=c[Ka>>2]|0;La=e+352|0;o=+h[La>>3];x=+h[e+432>>3];n=o*x/72.0;h[e+488>>3]=n;j=+h[e+440>>3];o=o*j/72.0;h[e+496>>3]=o;h[e+520>>3]=x/72.0;j=j/72.0;l=e+528|0;h[l>>3]=j;if(m&4096|c[13364])h[l>>3]=-j;Ia=e+360|0;Fa=(c[Ia>>2]|0)==0;x=+((c[e+448>>2]|0)>>>0);w=+((c[e+452>>2]|0)>>>0);Ja=e+368|0;h[Ja>>3]=(Fa?x:w)/n;Ha=e+376|0;h[Ha>>3]=(Fa?w:x)/o;_u(e,Is(f,rj(f,0,125350,0)|0,164137)|0);Fa=e+160|0;c[Fa>>2]=0;Ga=To(e)|0;c[Ga+4>>2]=0;c[Ga+8>>2]=f;c[Ga+12>>2]=0;Ga=f+16|0;ip(e,c[(c[Ga>>2]|0)+12>>2]|0,f);wu(e,f);if(m&2){Su(e,158256);l=zj(f,123413)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)Su(e,l);l=zj(f,125258)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0)Ru(e,l);jp(e,f);l=Rk(f)|0;if(l)do{m=zj(l,161159)|0;if((m|0)!=0?(a[m>>0]|0)!=0:0)Ru(e,m);m=zj(l,161150)|0;if((m|0)!=0?(a[m>>0]|0)!=0:0)Su(e,m);m=zj(l,125224)|0;do if((m|0)!=0?(a[m>>0]|0)!=0:0){if(!(jA(m,58)|0)){Ru(e,m);break}p=oA(m)|0;m=xA(p,133477)|0;if(m)do{if(a[m>>0]|0)Ru(e,m);m=xA(0,133477)|0}while((m|0)!=0);pB(p)}while(0);m=zj(l,125258)|0;if((m|0)!=0?(a[m>>0]|0)!=0:0)Ru(e,m);m=Lj(f,l)|0;if(m)do{p=zj(m,161159)|0;do if((p|0)!=0?(a[p>>0]|0)!=0:0){if(!(jA(p,58)|0)){Ru(e,p);break}q=oA(p)|0;p=xA(q,133477)|0;if(p)do{if(a[p>>0]|0)Ru(e,p);p=xA(0,133477)|0}while((p|0)!=0);pB(q)}while(0);p=zj(m,125258)|0;if((p|0)!=0?(a[p>>0]|0)!=0:0)Ru(e,p);m=Nj(f,m)|0}while((m|0)!=0);l=Sk(f,l)|0}while((l|0)!=0)}l=Rk(f)|0;if(l)do{a[(c[l+16>>2]|0)+116>>0]=0;l=Sk(f,l)|0}while((l|0)!=0);q=c[e>>2]|0;l=c[q+312>>2]|0;Ea=e+156|0;c[Ea>>2]=l;q=c[q+316>>2]|0;if(!q)if((l|0)>1?(c[Ka>>2]&64|0)==0:0){c[r>>2]=c[e+52>>2];dj(0,123421,r)|0;c[Ea>>2]=1;c[Fa>>2]=1;m=0;Da=55}else{p=1;m=0;Da=54}else{m=q+4|0;if((c[q>>2]|0)>1?(c[Ka>>2]&64|0)==0:0){c[s>>2]=c[e+52>>2];dj(0,123421,s)|0;c[q+8>>2]=(c[Ea>>2]|0)+1;l=c[Ea>>2]|0}p=c[m>>2]|0;m=q+8|0;Da=54}if((Da|0)==54?(c[Fa>>2]=p,(p|0)<=(l|0)):0)Da=55;if((Da|0)==55){G=e+196|0;H=e+172|0;I=e+164|0;J=e+200|0;K=e+168|0;L=e+196|0;M=e+16|0;N=Va+4|0;O=Va+8|0;P=e+164|0;Q=e+320|0;R=e+240|0;S=e+288|0;U=e+328|0;V=e+248|0;X=e+296|0;Y=e+304|0;Z=e+312|0;_=e+12|0;$=e+472|0;aa=e+456|0;ba=e+336|0;ca=e+344|0;da=e+256|0;ea=e+264|0;fa=e+272|0;ga=e+280|0;ha=e+384|0;ia=e+504|0;ja=e+392|0;ka=e+512|0;la=e+256|0;ma=Oa+4|0;na=e+188|0;oa=e+192|0;pa=e+184|0;qa=e+176|0;ra=e+180|0;sa=e+172|0;ta=e+288|0;ua=e+304|0;va=e+504|0;wa=e+456|0;xa=e+476|0;ya=e+460|0;za=e+480|0;Aa=e+464|0;Ba=e+484|0;Ca=e+468|0;while(1){F=c[(c[e>>2]|0)+316>>2]|0;if((c[((F|0)==0?Ea:F)>>2]|0)>1)Au(e);l=H;p=c[l>>2]|0;l=c[l+4>>2]|0;F=G;c[F>>2]=p;c[F+4>>2]=l;a:do if((p|0)>-1?((l|0)>-1?(p|0)<(c[I>>2]|0):0):0)do{if((l|0)>=(c[K>>2]|0))break a;E=c[M>>2]|0;F=c[Ka>>2]|0;if((c[Fa>>2]|0)>1|(p|0)>0){gj(Va,128,Na);p=E+212|0;q=c[p>>2]|0;gp(e,Va);jj(Va,q)|0;l=c[N>>2]|0;if(l>>>0>=(c[O>>2]|0)>>>0){hj(Va,1)|0;l=c[N>>2]|0}a[l>>0]=0;D=c[Va>>2]|0;c[N>>2]=D;c[p>>2]=D}else q=0;Lv(zj(f,123456)|0);C=G;D=c[C>>2]|0;C=c[C+4>>2]|0;p=P;l=c[p>>2]|0;p=c[p+4>>2]|0;r=(c[Ia>>2]|0)==0;j=+((r?D:C)|0);o=+h[Q>>3];v=o*j-+h[R>>3];h[S>>3]=v;n=+((r?C:D)|0);w=+h[U>>3];x=n*w-+h[V>>3];h[X>>3]=x;h[Y>>3]=o+v;h[Z>>3]=w+x;if(!(c[(c[_>>2]|0)+28>>2]|0)){c[$>>2]=c[aa>>2];c[$+4>>2]=c[aa+4>>2];c[$+8>>2]=c[aa+8>>2];c[$+12>>2]=c[aa+12>>2]}else{D=c[$>>2]|0;C=c[wa>>2]|0;c[$>>2]=(D|0)<(C|0)?D:C;C=c[xa>>2]|0;D=c[ya>>2]|0;c[xa>>2]=(C|0)<(D|0)?C:D;D=c[za>>2]|0;C=c[Aa>>2]|0;c[za>>2]=(D|0)>(C|0)?D:C;C=c[Ba>>2]|0;D=c[Ca>>2]|0;c[Ba>>2]=(C|0)>(D|0)?C:D}s=c[Ka>>2]|0;t=+h[ba>>3];x=+h[ca>>3];if(!(s&128)){t=o*(j-+((r?l:p)|0)*.5)+t;x=w*(n-+((r?p:l)|0)*.5)+x;u=x;v=t;t=o+t;o=w+x}else{w=+h[Ja>>3]*.5;o=+h[Ha>>3]*.5;u=x-o;v=t-w;t=t+w;o=x+o}h[da>>3]=v;h[ea>>3]=u;h[fa>>3]=t;h[ga>>3]=o;do if(r){n=+h[La>>3];h[ia>>3]=+h[ha>>3]/n-v;j=+h[ja>>3];if(!(c[13364]|s&4096)){h[ka>>3]=j/n-u;break}else{h[ka>>3]=-o-j/n;break}}else{n=+h[La>>3];h[ka>>3]=-o-+h[ja>>3]/n;j=+h[ha>>3];if(!(c[13364]|s&4096)){h[va>>3]=j/n-v;break}else{h[va>>3]=-t-j/n;break}}while(0);yu(e);Ru(e,160746);Su(e,158256);do if(F&4259840){if((c[E+208>>2]|0)==0?(b[E+260>>1]&1)==0:0)break;do if(!(F&655360)){l=0;p=0}else{D=F&131072;p=D>>>16^2;l=p+2|0;c[E+264>>2]=p;p=$p(l<<4)|0;c[p>>2]=c[ta>>2];c[p+4>>2]=c[ta+4>>2];c[p+8>>2]=c[ta+8>>2];c[p+12>>2]=c[ta+12>>2];C=p+16|0;c[C>>2]=c[ua>>2];c[C+4>>2]=c[ua+4>>2];c[C+8>>2]=c[ua+8>>2];c[C+12>>2]=c[ua+12>>2];if(D)break;Fp(p)}while(0);if(!(F&8192))vu(e,p,p,l)|0;c[E+272>>2]=p;c[E+268>>2]=l}while(0);if((F&32768|0)!=0?(Ma=c[(c[Ga>>2]|0)+12>>2]|0,(Ma|0)!=0):0)c[E+192>>2]=c[Ma>>2];D=(F&4|0)!=0;do if(!D){l=E+208|0;if((c[l>>2]|0)==0?(b[E+260>>1]&1)==0:0)break;c[Ra>>2]=c[la>>2];c[Ra+4>>2]=c[la+4>>2];c[Ra+8>>2]=c[la+8>>2];c[Ra+12>>2]=c[la+12>>2];c[Ra+16>>2]=c[la+16>>2];c[Ra+20>>2]=c[la+20>>2];c[Ra+24>>2]=c[la+24>>2];c[Ra+28>>2]=c[la+28>>2];Zo(e,Ra);Mu(e,c[l>>2]|0,c[E+228>>2]|0,c[E+244>>2]|0,c[E+212>>2]|0)}while(0);l=zj(f,123413)|0;if(!l){r=1;l=160654}else{C=(a[l>>0]|0)==0;r=C&1;l=C?160654:l}s=c[Ka>>2]|0;p=(a[l>>0]|0)==116;do if(s&256){if(!p){p=r;Da=101;break}if(lA(l,161276)|0){p=r;Da=101}}else{if(!p){p=r;Da=101;break}Da=(lA(l,161276)|0)==0;p=Da?1:r;l=Da?160654:l;Da=101}while(0);do if((Da|0)==101){Da=0;if((s&33554432|0)!=0&(p|0)!=0)break;if(!((cp(l,Oa,Pa)|0)<<24>>24)){Su(e,l);Ru(e,161276);c[Ra>>2]=c[la>>2];c[Ra+4>>2]=c[la+4>>2];c[Ra+8>>2]=c[la+8>>2];c[Ra+12>>2]=c[la+12>>2];c[Ra+16>>2]=c[la+16>>2];c[Ra+20>>2]=c[la+20>>2];c[Ra+24>>2]=c[la+24>>2];c[Ra+28>>2]=c[la+28>>2];Xu(e,Ra,1);break}c[Qa>>2]=0;l=c[Oa>>2]|0;Su(e,l);Ru(e,161276);kp(f,Qa)|0;p=c[ma>>2]|0;r=Gs(f,c[13374]|0,0,0)|0;j=+g[Pa>>2];if(!p)Tu(e,160746,r,j);else Tu(e,p,r,j);C=(c[Qa>>2]|0)>>>1&1|2;c[Ra>>2]=c[la>>2];c[Ra+4>>2]=c[la+4>>2];c[Ra+8>>2]=c[la+8>>2];c[Ra+12>>2]=c[la+12>>2];c[Ra+16>>2]=c[la+16>>2];c[Ra+20>>2]=c[la+20>>2];c[Ra+24>>2]=c[la+24>>2];c[Ra+28>>2]=c[la+28>>2];Xu(e,Ra,C);pB(l)}while(0);l=c[Ga>>2]|0;C=c[(c[l+8>>2]|0)+88>>2]|0;if(C){c[Sa>>2]=1e3;l=aq(16e3)|0;do if((c[C>>2]|0)>0){y=1;A=0;s=1;B=c[C+8>>2]|0;p=0;while(1){r=c[B>>2]|0;b:do switch(r|0){case 1:case 0:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}u=+h[B+8>>3];v=+h[B+24>>3];h[l>>3]=u-v;w=+h[B+16>>3];x=+h[B+32>>3];h[l+8>>3]=w-x;h[l+16>>3]=u+v;h[l+24>>3]=w+x;Vu(e,l,2,(r|0)==0?y:0);r=y;break}case 3:case 2:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}r=B+8|0;l=lp(l,Sa,c[r+4>>2]|0,c[r>>2]|0)|0;Wu(e,l,c[r>>2]|0,(c[B>>2]|0)==2?y:0);r=y;break}case 5:case 4:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}r=B+8|0;l=lp(l,Sa,c[r+4>>2]|0,c[r>>2]|0)|0;Yu(e,l,c[r>>2]|0,0,0,(c[B>>2]|0)==4?y&255:0);r=y;break}case 6:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}r=B+8|0;l=lp(l,Sa,c[r+4>>2]|0,c[r>>2]|0)|0;Zu(e,l,c[r>>2]|0);r=y;break}case 7:{a[k>>0]=a[da>>0];a[k+1>>0]=a[da+1>>0];a[k+2>>0]=a[da+2>>0];a[k+3>>0]=a[da+3>>0];a[k+4>>0]=a[da+4>>0];a[k+5>>0]=a[da+5>>0];a[k+6>>0]=a[da+6>>0];a[k+7>>0]=a[da+7>>0];w=+h[k>>3];a[k>>0]=a[ea>>0];a[k+1>>0]=a[ea+1>>0];a[k+2>>0]=a[ea+2>>0];a[k+3>>0]=a[ea+3>>0];a[k+4>>0]=a[ea+4>>0];a[k+5>>0]=a[ea+5>>0];a[k+6>>0]=a[ea+6>>0];a[k+7>>0]=a[ea+7>>0];x=+h[k>>3];a[k>>0]=a[fa>>0];a[k+1>>0]=a[fa+1>>0];a[k+2>>0]=a[fa+2>>0];a[k+3>>0]=a[fa+3>>0];a[k+4>>0]=a[fa+4>>0];a[k+5>>0]=a[fa+5>>0];a[k+6>>0]=a[fa+6>>0];a[k+7>>0]=a[fa+7>>0];t=+h[k>>3];z=B+80|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];u=+h[k>>3];z=B+96|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];v=+h[k>>3];z=B+104|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];if(!(t>=u)|!(v>=w)|!(+h[k>>3]>=x)){r=y;break b}z=B+88|0;a[k>>0]=a[z>>0];a[k+1>>0]=a[z+1>>0];a[k+2>>0]=a[z+2>>0];a[k+3>>0]=a[z+3>>0];a[k+4>>0]=a[z+4>>0];a[k+5>>0]=a[z+5>>0];a[k+6>>0]=a[z+6>>0];a[k+7>>0]=a[z+7>>0];x=+h[k>>3];a[k>>0]=a[ga>>0];a[k+1>>0]=a[ga+1>>0];a[k+2>>0]=a[ga+2>>0];a[k+3>>0]=a[ga+3>>0];a[k+4>>0]=a[ga+4>>0];a[k+5>>0]=a[ga+5>>0];a[k+6>>0]=a[ga+6>>0];a[k+7>>0]=a[ga+7>>0];if(!(+h[k>>3]>=x)){r=y;break b}h[l>>3]=+h[B+8>>3];h[l+8>>3]=+h[B+16>>3];r=c[B+112>>2]|0;c[Ra>>2]=c[l>>2];c[Ra+4>>2]=c[l+4>>2];c[Ra+8>>2]=c[l+8>>2];c[Ra+12>>2]=c[l+12>>2];Qu(e,Ra,r);r=y;break}case 8:{Su(e,c[B+8>>2]|0);r=1;break}case 9:{Ru(e,c[B+8>>2]|0);r=1;break}case 13:{r=B+16|0;if((c[B+8>>2]|0)!=2){y=c[r+36>>2]|0;z=c[y+12>>2]|0;x=+g[y+8>>2];r=~~(+W(+(+h[B+40>>3]-+h[B+24>>3]),+(+h[B+32>>3]-+h[r>>3]))*180.0/3.141592653589793);Su(e,c[y+4>>2]|0);Tu(e,z,r,x);r=2;break b}Xa=c[B+68>>2]|0;y=c[Xa+4>>2]|0;z=c[Xa+12>>2]|0;o=+g[Xa+8>>2];n=+h[B+40>>3];j=+h[r>>3];if(n==j?+h[B+48>>3]==+h[B+24>>3]:0)r=0;else r=~~(+T(+((j-n)/+h[B+32>>3]))*180.0/3.141592653589793);Su(e,y);Tu(e,z,r,o);r=3;break}case 14:{dj(0,123468,Ta)|0;r=y;break}case 12:{if(!s){r=y;s=0;break b}dj(0,123508,Ua)|0;r=y;s=0;break}case 11:{dp(c[B+8>>2]|0)|0;Uu(e,53064);r=y;p=53064;break}default:r=y}while(0);A=A+1|0;if((A|0)>=(c[C>>2]|0))break;else{y=r;B=B+120|0}}if(!p)break;Uu(e,c[(c[e>>2]|0)+336>>2]|0)}while(0);pB(l);l=c[Ga>>2]|0}l=c[l+12>>2]|0;if(l)Tp(e,4,l);if(D){Xa=(c[e>>2]|0)+28|0;c[Xa>>2]=(c[Xa>>2]|0)+1}else{if(!((c[E+208>>2]|0)==0?(b[E+260>>1]&1)==0:0))Nu(e);Xa=(c[e>>2]|0)+28|0;c[Xa>>2]=(c[Xa>>2]|0)+1;bp(e,f,F)}c:do if(!(F&1)){if(F&16){Gu(e);l=Rk(f)|0;if(l)do{p=Lj(f,l)|0;if(p)do{np(e,p);p=Nj(f,p)|0}while((p|0)!=0);l=Sk(f,l)|0}while((l|0)!=0);Hu(e);Eu(e);l=Rk(f)|0;if(l)do{mp(e,l);l=Sk(f,l)|0}while((l|0)!=0);Fu(e);break}if(!(F&8)){l=Rk(f)|0;if(!l)break;while(1){mp(e,l);p=Lj(f,l)|0;if(p)do{mp(e,c[((c[p>>2]&3|0)==2?p:p+-48|0)+40>>2]|0);np(e,p);p=Nj(f,p)|0}while((p|0)!=0);l=Sk(f,l)|0;if(!l)break c}}Eu(e);l=Rk(f)|0;if(l)do{p=c[Ga>>2]|0;d:do if((c[p+180>>2]|0)<1)Da=173;else{r=1;while(1){if(ql(c[(c[p+184>>2]|0)+(r<<2)>>2]|0,l)|0)break d;p=c[Ga>>2]|0;if((r|0)>=(c[p+180>>2]|0)){Da=173;break}else r=r+1|0}}while(0);if((Da|0)==173){Da=0;mp(e,l)}l=Sk(f,l)|0}while((l|0)!=0);Fu(e);Gu(e);l=Rk(f)|0;if(l)do{p=Lj(f,l)|0;if(p)do{r=c[Ga>>2]|0;e:do if((c[r+180>>2]|0)<1)Da=181;else{s=1;while(1){if(ql(c[(c[r+184>>2]|0)+(s<<2)>>2]|0,p)|0)break e;r=c[Ga>>2]|0;if((s|0)>=(c[r+180>>2]|0)){Da=181;break}else s=s+1|0}}while(0);if((Da|0)==181){Da=0;np(e,p)}p=Nj(f,p)|0}while((p|0)!=0);l=Sk(f,l)|0}while((l|0)!=0);Hu(e)}else{Eu(e);l=Rk(f)|0;if(l)do{mp(e,l);l=Sk(f,l)|0}while((l|0)!=0);Fu(e);Gu(e);l=Rk(f)|0;if(l)do{p=Lj(f,l)|0;if(p)do{np(e,p);p=Nj(f,p)|0}while((p|0)!=0);l=Sk(f,l)|0}while((l|0)!=0);Hu(e)}while(0);if(D)bp(e,f,F);zu(e);if(q){kj(Va);c[E+212>>2]=q}p=(d[L>>0]|d[L+1>>0]<<8|d[L+2>>0]<<16|d[L+3>>0]<<24)+(d[na>>0]|d[na+1>>0]<<8|d[na+2>>0]<<16|d[na+3>>0]<<24)|0;l=(d[J>>0]|d[J+1>>0]<<8|d[J+2>>0]<<16|d[J+3>>0]<<24)+(d[oa>>0]|d[oa+1>>0]<<8|d[oa+2>>0]<<16|d[oa+3>>0]<<24)|0;Xa=G;c[Xa>>2]=p;c[Xa+4>>2]=l;do if((p|0)>-1){if(!((l|0)>-1?(p|0)<(c[I>>2]|0):0)){Da=198;break}if((l|0)>=(c[K>>2]|0))Da=198}else Da=198;while(0);if((Da|0)==198){Da=0;q=c[pa>>2]|0;if(!q){l=c[qa>>2]|0;c[J>>2]=l}else{p=c[sa>>2]|0;c[G>>2]=p}p=(d[ra>>0]|d[ra+1>>0]<<8|d[ra+2>>0]<<16|d[ra+3>>0]<<24)+p|0;l=l+q|0;Xa=G;c[Xa>>2]=p;c[Xa+4>>2]=l;if((p|0)<=-1)break a}}while((l|0)>-1?(p|0)<(c[I>>2]|0):0);while(0);Xa=c[(c[e>>2]|0)+316>>2]|0;if((c[((Xa|0)==0?Ea:Xa)>>2]|0)>1)Bu(e);if(!m){p=0;l=(c[Fa>>2]|0)+1|0}else{p=m+4|0;l=c[m>>2]|0}c[Fa>>2]=l;if((l|0)>(c[Ea>>2]|0))break;else m=p}}xu(e);Uo(e);i=Wa;return}function ap(a){a=a|0;var b=0,d=0,e=0;b=c[13330]|0;if(!b){b=Vi(53324,c[12573]|0)|0;c[13330]=b}if(!(ub[c[b>>2]&31](b,a,4)|0)){d=c[13330]|0;e=c[d>>2]|0;b=oA(a)|0;ub[e&31](d,b,1)|0;b=1}else b=0;return b|0}function bp(e,f,j){e=e|0;f=f|0;j=j|0;var 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,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;W=i;i=i+128|0;w=W+72|0;U=W+64|0;T=W+120|0;Q=W;R=W+112|0;S=W+104|0;x=f+16|0;k=c[x>>2]|0;if((c[k+180>>2]|0)>=1){M=e+156|0;N=(j&4|0)!=0;O=e+16|0;P=Q+32|0;y=Q+16|0;z=Q+8|0;B=Q+24|0;C=Q+48|0;E=Q+40|0;F=Q+56|0;G=(j&8|0)==0;H=R+4|0;I=e+160|0;v=1;while(1){u=c[(c[k+184>>2]|0)+(v<<2)>>2]|0;a:do if((c[M>>2]|0)>=2?(K=Is(u,rj(u,0,125338,0)|0,164137)|0,(op(c[e>>2]|0,c[I>>2]|0,c[M>>2]|0,K)|0)<<24>>24==0):0){if((a[K>>0]|0)==0?(L=Rk(u)|0,(L|0)!=0):0){k=L;do{if((pp(e,u,k)|0)<<24>>24){V=9;break a}k=Sk(u,k)|0}while((k|0)!=0)}}else V=9;while(0);if((V|0)==9){V=0;if(N)bp(e,u,j);q=To(e)|0;c[q+4>>2]=1;c[q+8>>2]=u;c[q+12>>2]=1;q=u+16|0;ip(e,c[(c[q>>2]|0)+12>>2]|0,u);Cu(e,u);r=c[O>>2]|0;s=r+208|0;if(!(c[s>>2]|0))t=(b[r+260>>1]&1)!=0;else t=1;Lv(zj(u,123456)|0);if(!(N|t^1)){p=(c[q>>2]|0)+16|0;c[w>>2]=c[p>>2];c[w+4>>2]=c[p+4>>2];c[w+8>>2]=c[p+8>>2];c[w+12>>2]=c[p+12>>2];c[w+16>>2]=c[p+16>>2];c[w+20>>2]=c[p+20>>2];c[w+24>>2]=c[p+24>>2];c[w+28>>2]=c[p+28>>2];Zo(e,w);Mu(e,c[s>>2]|0,c[r+228>>2]|0,c[r+244>>2]|0,c[r+212>>2]|0)}c[T>>2]=0;k=kp(u,T)|0;if(!k)p=0;else{Uu(e,k);p=c[T>>2]&1}k=d[(c[q>>2]|0)+112>>0]|0;do if(!(k&1)){if(k&2){k=Js(u,c[13365]|0,129696)|0;l=Js(u,c[13366]|0,129704)|0;V=34;break}if(k&8){k=Js(u,c[13369]|0,129712)|0;l=Js(u,c[13370]|0,129720)|0;V=34;break}if(k&4){k=Js(u,c[13367]|0,129728)|0;l=Js(u,c[13368]|0,129736)|0;V=34;break}k=zj(u,161159)|0;if(!k)l=0;else l=(a[k>>0]|0)==0?0:k;k=zj(u,161150)|0;if(!k)k=l;else k=(a[k>>0]|0)==0?l:k;m=zj(u,125224)|0;if(m)l=(a[m>>0]|0)==0?l:m;if(!((p|0)!=0&(l|0)!=0)?(A=zj(u,123413)|0,(A|0)!=0):0){o=(a[A>>0]|0)==0;l=o?l:A;if(!o){V=34;break}}k=(k|0)==0?160746:k;l=(l|0)==0?158256:l;c[R>>2]=0;if(!p){o=l;p=0}else{o=l;l=p;V=36}}else{k=Js(u,c[13365]|0,129680)|0;l=Js(u,c[13366]|0,129688)|0;V=34}while(0);if((V|0)==34){c[R>>2]=0;k=(k|0)==0?160746:k;o=(l|0)==0?158256:l;l=1;V=36}do if((V|0)==36){V=0;if(!((cp(o,R,S)|0)<<24>>24)){Su(e,o);p=l;break}Su(e,c[R>>2]|0);l=c[H>>2]|0;m=Gs(u,c[13374]|0,0,0)|0;n=+g[S>>2];if(!l)Tu(e,160746,m,n);else Tu(e,l,m,n);p=(c[T>>2]|0)>>>1&1|2}while(0);l=c[13373]|0;if(((l|0)!=0?(D=Aj(u,l)|0,(D|0)!=0):0)?(a[D>>0]|0)!=0:0)av(e,+Hs(u,c[13373]|0,1.0,0.0));m=c[T>>2]|0;do if(m&4){l=Gs(u,c[13372]|0,1,0)|0;if(l|p){o=(c[q>>2]|0)+16|0;c[Q>>2]=c[o>>2];c[Q+4>>2]=c[o+4>>2];c[Q+8>>2]=c[o+8>>2];c[Q+12>>2]=c[o+12>>2];o=(c[q>>2]|0)+32|0;c[P>>2]=c[o>>2];c[P+4>>2]=c[o+4>>2];c[P+8>>2]=c[o+8>>2];c[P+12>>2]=c[o+12>>2];h[y>>3]=+h[P>>3];h[B>>3]=+h[z>>3];h[C>>3]=+h[Q>>3];h[F>>3]=+h[E>>3];if(!l)Ru(e,161276);else Ru(e,k);jr(e,Q,4,m,p)}}else{if(!(m&64)){if(Gs(u,c[13372]|0,1,0)|0){Ru(e,k);o=(c[q>>2]|0)+16|0;c[w>>2]=c[o>>2];c[w+4>>2]=c[o+4>>2];c[w+8>>2]=c[o+8>>2];c[w+12>>2]=c[o+12>>2];c[w+16>>2]=c[o+16>>2];c[w+20>>2]=c[o+20>>2];c[w+24>>2]=c[o+24>>2];c[w+28>>2]=c[o+28>>2];Xu(e,w,p);break}if(!p)break;Ru(e,161276);o=(c[q>>2]|0)+16|0;c[w>>2]=c[o>>2];c[w+4>>2]=c[o+4>>2];c[w+8>>2]=c[o+8>>2];c[w+12>>2]=c[o+12>>2];c[w+16>>2]=c[o+16>>2];c[w+20>>2]=c[o+20>>2];c[w+24>>2]=c[o+24>>2];c[w+28>>2]=c[o+28>>2];Xu(e,w,p);break}p=(c[q>>2]|0)+16|0;c[Q>>2]=c[p>>2];c[Q+4>>2]=c[p+4>>2];c[Q+8>>2]=c[p+8>>2];c[Q+12>>2]=c[p+12>>2];p=(c[q>>2]|0)+32|0;c[P>>2]=c[p>>2];c[P+4>>2]=c[p+4>>2];c[P+8>>2]=c[p+8>>2];c[P+12>>2]=c[p+12>>2];h[y>>3]=+h[P>>3];h[B>>3]=+h[z>>3];h[C>>3]=+h[Q>>3];h[F>>3]=+h[E>>3];if(!(Gs(u,c[13372]|0,1,0)|0))Ru(e,161276);else Ru(e,k);if((Yo(e,Q,o,0)|0)>1){c[U>>2]=ok(u)|0;dj(3,123554,U)|0}p=(c[q>>2]|0)+16|0;c[w>>2]=c[p>>2];c[w+4>>2]=c[p+4>>2];c[w+8>>2]=c[p+8>>2];c[w+12>>2]=c[p+12>>2];c[w+16>>2]=c[p+16>>2];c[w+20>>2]=c[p+20>>2];c[w+24>>2]=c[p+24>>2];c[w+28>>2]=c[p+28>>2];Xu(e,w,0)}while(0);pB(c[R>>2]|0);k=c[(c[q>>2]|0)+12>>2]|0;if(k)Tp(e,5,k);if(t){if(N){t=(c[q>>2]|0)+16|0;c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];c[w+16>>2]=c[t+16>>2];c[w+20>>2]=c[t+20>>2];c[w+24>>2]=c[t+24>>2];c[w+28>>2]=c[t+28>>2];Zo(e,w);Mu(e,c[s>>2]|0,c[r+228>>2]|0,c[r+244>>2]|0,c[r+212>>2]|0)}Nu(e)}if(!G?(J=Rk(u)|0,(J|0)!=0):0){l=J;do{mp(e,l);k=Lj(u,l)|0;if(k)do{np(e,k);k=Nj(u,k)|0}while((k|0)!=0);l=Sk(u,l)|0}while((l|0)!=0)}Du(e,f);Uo(e);if(!N)bp(e,u,j)}k=c[x>>2]|0;if((v|0)>=(c[k+180>>2]|0))break;else v=v+1|0}}i=W;return}function cp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;h=l;j=l+4|0;c[j>>2]=0;m=(hp(b,0,j)|0)==0;j=c[j>>2]|0;if((m?(f=c[j>>2]|0,(f|0)>=2):0)?(k=j+8|0,(c[c[k>>2]>>2]|0)!=0):0){if((f|0)>2)dj(0,123569,h)|0;m=aq((pA(b)|0)+1|0)|0;c[d>>2]=m;mA(m,c[c[k>>2]>>2]|0)|0;if(!(c[(c[k>>2]|0)+12>>2]|0))c[d+4>>2]=0;else{m=c[d>>2]|0;m=m+((pA(m)|0)+1)|0;c[d+4>>2]=m;mA(m,c[(c[k>>2]|0)+12>>2]|0)|0}f=c[k>>2]|0;do if(!(a[f+8>>0]|0))if(!(a[f+20>>0]|0)){g[e>>2]=0.0;break}else{g[e>>2]=1.0-+g[f+16>>2];break}else c[e>>2]=c[f+4>>2];while(0);pB(c[j+4>>2]|0);pB(c[k>>2]|0);pB(j);f=1}else{c[d>>2]=0;pB(c[j+4>>2]|0);pB(c[j+8>>2]|0);pB(j);f=0}i=l;return f|0}function dp(b){b=b|0;var 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;s=i;i=i+176|0;p=s+24|0;o=s+16|0;n=s+8|0;m=s;q=s+32|0;if(a[123635]|0){gj(53360,128,123636);a[123635]=0}gj(q,128,s+48|0);k=q+4|0;l=q+8|0;e=0;d=0;f=b;a:while(1){g=f;b:while(1){f=a[g>>0]|0;c:do if(!(f<<24>>24))f=0;else while(1){if((Zx(f<<24>>24)|0)==0?(j=a[g>>0]|0,j<<24>>24!=44):0){f=j;break c}g=g+1|0;f=a[g>>0]|0;if(!(f<<24>>24)){f=0;break}}while(0);h=f<<24>>24;switch(h|0){case 0:{r=31;break a}case 41:case 40:break;default:{r=10;break b}}g=g+1|0;switch(h|0){case 41:if(!(d<<24>>24)){r=19;break a}else{d=0;continue b}case 40:if(!(d<<24>>24)){d=1;continue b}else{r=17;break a}default:break b}}d:do if((r|0)==10){r=0;h=f;while(1){switch(h<<24>>24|0){case 0:case 44:case 41:case 40:break d;default:{}}f=c[k>>2]|0;if(f>>>0>=(c[l>>2]|0)>>>0){hj(q,1)|0;f=c[k>>2]|0}c[k>>2]=f+1;a[f>>0]=h;f=g+1|0;h=a[f>>0]|0;g=f}}while(0);if(!(d<<24>>24)){if((e|0)==63){r=22;break}f=c[13341]|0;if(f>>>0>=(c[13342]|0)>>>0){hj(53360,1)|0;f=c[13341]|0}c[13341]=f+1;a[f>>0]=0;c[53064+(e<<2)>>2]=c[13341];e=e+1|0}f=c[k>>2]|0;if(f>>>0>=(c[l>>2]|0)>>>0){hj(q,1)|0;f=c[k>>2]|0}a[f>>0]=0;f=c[q>>2]|0;c[k>>2]=f;jj(53360,f)|0;f=c[13341]|0;if(f>>>0>=(c[13342]|0)>>>0){hj(53360,1)|0;f=c[13341]|0}c[13341]=f+1;a[f>>0]=0;f=g}do if((r|0)==17){c[m>>2]=b;dj(1,123764,m)|0;c[13266]=0;kj(q)}else if((r|0)==19){c[n>>2]=b;dj(1,123798,n)|0;c[13266]=0;kj(q)}else if((r|0)==22){c[o>>2]=b;dj(0,123826,o)|0;c[13329]=0;kj(q)}else if((r|0)==31){if(d<<24>>24){c[p>>2]=b;dj(1,123849,p)|0;c[13266]=0;kj(q);break}c[53064+(e<<2)>>2]=0;kj(q);d=c[13341]|0;if(d>>>0>=(c[13342]|0)>>>0){hj(53360,1)|0;d=c[13341]|0}a[d>>0]=0;c[13341]=c[13340]}while(0);i=s;return 53064}function ep(a){a=a|0;var b=0;b=c[13344]|0;if(!a){if((b|0)>0?(a=b+-1|0,c[13344]=a,(a|0)==0):0)pB(c[13345]|0)}else{c[13344]=b+1;if(!b)c[13345]=oA(yy(1,0)|0)|0}return}function fp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.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,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;ma=i;i=i+432|0;Y=ma+384|0;X=ma+368|0;ga=ma+352|0;fa=ma+344|0;ea=ma+320|0;da=ma+296|0;ca=ma+280|0;la=ma+264|0;ka=ma+256|0;ba=ma+240|0;aa=ma+232|0;W=ma+224|0;V=ma+216|0;T=ma+208|0;R=ma+200|0;f=ma+184|0;e=ma+176|0;$=ma+128|0;ha=ma+96|0;ia=ma+64|0;P=ma+32|0;Q=ma;if(a[124827]|0)As();a:do if((xl(d,160878,0,1)|0)!=0?(Z=d+16|0,(c[(c[Z>>2]|0)+8>>2]|0)!=0):0){e=Rk(d)|0;b:do if(e){y=ha+8|0;z=ha+16|0;A=ha+24|0;B=ia+8|0;C=ia+16|0;D=ia+24|0;E=$+8|0;F=$+12|0;G=$+32|0;H=$+4|0;I=Q+8|0;J=Q+16|0;K=Q+24|0;L=$+16|0;M=P+8|0;N=P+16|0;O=P+24|0;c:while(1){f=c[e+16>>2]|0;s=+h[f+16>>3];h[f+48>>3]=s-+h[f+88>>3];t=+h[f+24>>3];u=+h[f+80>>3]*.5;h[f+56>>3]=t-u;h[f+64>>3]=s+ +h[f+96>>3];h[f+72>>3]=t+u;f=Lj(d,e)|0;if(f)do{x=c[(c[f+16>>2]|0)+8>>2]|0;if(x){w=x+4|0;if((c[w>>2]|0)<=0)break c;g=c[x>>2]|0;j=$;l=g;m=j+48|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));j=Y;l=g;m=j+48|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));qp(ha,Y);n=+h[ha>>3];p=+h[y>>3];o=+h[z>>3];k=+h[A>>3];if((c[w>>2]|0)>0){v=0;do{if((v|0)>0){g=(c[x>>2]|0)+(v*48|0)|0;j=$;l=g;m=j+48|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));j=Y;l=g;m=j+48|0;do{c[j>>2]=c[l>>2];j=j+4|0;l=l+4|0}while((j|0)<(m|0));qp(ia,Y);r=+h[ia>>3];s=+h[B>>3];t=+h[C>>3];u=+h[D>>3];n=n<r?n:r;p=p<s?p:s;o=o>t?o:t;k=k>u?k:u}g=c[E>>2]|0;if(g){m=c[$>>2]|0;c[X>>2]=c[L>>2];c[X+4>>2]=c[L+4>>2];c[X+8>>2]=c[L+8>>2];c[X+12>>2]=c[L+12>>2];c[Y>>2]=c[m>>2];c[Y+4>>2]=c[m+4>>2];c[Y+8>>2]=c[m+8>>2];c[Y+12>>2]=c[m+12>>2];Fo(P,X,Y,1.0,g);r=+h[P>>3];s=+h[M>>3];t=+h[N>>3];u=+h[O>>3];n=n<r?n:r;p=p<s?p:s;o=o>t?o:t;k=k>u?k:u}g=c[F>>2]|0;if(g){m=(c[$>>2]|0)+((c[H>>2]|0)+-1<<4)|0;c[X>>2]=c[G>>2];c[X+4>>2]=c[G+4>>2];c[X+8>>2]=c[G+8>>2];c[X+12>>2]=c[G+12>>2];c[Y>>2]=c[m>>2];c[Y+4>>2]=c[m+4>>2];c[Y+8>>2]=c[m+8>>2];c[Y+12>>2]=c[m+12>>2];Fo(Q,X,Y,1.0,g);r=+h[Q>>3];s=+h[I>>3];t=+h[J>>3];u=+h[K>>3];n=n<r?n:r;p=p<s?p:s;o=o>t?o:t;k=k>u?k:u}v=v+1|0}while((v|0)<(c[w>>2]|0))}h[x+8>>3]=n;h[x+16>>3]=p;h[x+24>>3]=o;h[x+32>>3]=k}f=Nj(d,f)|0}while((f|0)!=0);e=Sk(d,e)|0;if(!e)break b}Ia(123956,123382,3994,123970)}while(0);c[b+168>>2]=d;f=b+293|0;a[f>>0]=0;e=zj(d,129972)|0;if((e|0)!=0?(c[R>>2]=Y,c[R+4>>2]=X,S=Pz(e,129979,R)|0,(S|0)>0):0){u=+h[Y>>3]*72.0;e=b+208|0;h[e>>3]=u;h[b+200>>3]=u;if((S|0)>1)h[e>>3]=+h[X>>3]*72.0;a[f>>0]=1}f=b+292|0;a[f>>0]=0;e=zj(d,123986)|0;if((e|0)!=0?(c[T>>2]=Y,c[T+4>>2]=X,U=Pz(e,129979,T)|0,(U|0)>0):0){u=+h[Y>>3]*72.0;e=b+224|0;h[e>>3]=u;h[b+216>>3]=u;if((U|0)>1)h[e>>3]=+h[X>>3]*72.0;a[f>>0]=1}e=b+294|0;a[e>>0]=0;f=b+232|0;U=(c[(c[Z>>2]|0)+8>>2]|0)+48|0;c[f>>2]=c[U>>2];c[f+4>>2]=c[U+4>>2];c[f+8>>2]=c[U+8>>2];c[f+12>>2]=c[U+12>>2];f=c[(c[Z>>2]|0)+8>>2]|0;if(+h[f+48>>3]>.001?+h[f+56>>3]>.001:0)a[e>>0]=1;c[b+288>>2]=(a[f+81>>0]|0)==0?0:90;e=b+196|0;c[e>>2]=123990;f=zj(d,123993)|0;if((f|0)!=0?(a[f>>0]|0)!=0:0)c[e>>2]=f;j=b+256|0;e=(c[Z>>2]|0)+16|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];c[j+16>>2]=c[e+16>>2];c[j+20>>2]=c[e+20>>2];c[j+24>>2]=c[e+24>>2];c[j+28>>2]=c[e+28>>2];c[13372]=rj(d,0,125290,0)|0;c[13373]=rj(d,0,125275,0)|0;c[b+320>>2]=Js(0,c[13390]|0,131608)|0;h[b+328>>3]=+Hs(0,c[13389]|0,14.0,1.0);c[b+336>>2]=53384;c[b+188>>2]=ok(d)|0;j=b+304|0;e=c[j>>2]|0;if(e){pB(e);c[j>>2]=0}v=b+308|0;e=c[v>>2]|0;if(e){pB(e);c[v>>2]=0}w=b+316|0;e=c[w>>2]|0;if(e){pB(e);c[w>>2]=0}e=zj(d,124001)|0;if(e){g=zj(d,124008)|0;m=b+296|0;c[m>>2]=(g|0)==0?124017:g;g=zj(d,124021)|0;f=b+300|0;g=(g|0)==0?124034:g;c[f>>2]=g;g=tA(c[m>>2]|0,g)|0;if(g){c[V>>2]=a[g>>0];dj(0,124036,V)|0;c[f>>2]=164137}e=oA(e)|0;c[j>>2]=e;e=xA(e,c[m>>2]|0)|0;if(e){f=0;j=0;l=e;while(1){e=f+1|0;if((f|0)<(j|0))g=c[v>>2]|0;else{j=j+128|0;g=c[v>>2]|0;if(!g)g=aq(j<<2)|0;else g=cq(g,j<<2)|0;c[v>>2]=g}c[g+(e<<2)>>2]=l;l=xA(0,c[m>>2]|0)|0;if(!l)break;else f=e}if(e){V=cq(c[v>>2]|0,(e<<2)+8|0)|0;c[v>>2]=V;c[V>>2]=0;c[(c[v>>2]|0)+(f+2<<2)>>2]=0}else e=0}else e=0;m=b+312|0;c[m>>2]=e;l=zj(d,124137)|0;if((l|0)!=0?(a[l>>0]|0)!=0:0){e=aq((c[m>>2]<<2)+8|0)|0;f=c[m>>2]|0;do if((f|0)<1)ja=68;else{g=0;j=1;while(1){if((op(b,j,f,l)|0)<<24>>24){g=g+1|0;c[e+(g<<2)>>2]=j}f=c[m>>2]|0;if((j|0)>=(f|0)){f=g;break}else j=j+1|0}if(!f){ja=68;break}c[e>>2]=f;c[e+(f+1<<2)>>2]=(c[m>>2]|0)+1}while(0);if((ja|0)==68){c[W>>2]=l;dj(0,124149,W)|0;pB(e);e=0}c[w>>2]=e}}else{c[v>>2]=0;c[b+312>>2]=1}ep(1);e=on(b)|0;d:do if(e){F=b+56|0;G=b+184|0;H=b+192|0;I=d+60|0;J=b+28|0;E=e;e:while(1){e=c[F>>2]|0;if(!e){c[E+20>>2]=0;e=0}else{c[E+20>>2]=c[e+8>>2];e=c[e+12>>2]|0}c[E+24>>2]=e;c[E+12>>2]=b;c[E+28>>2]=c[G>>2];c[E+620>>2]=59428;c[E+624>>2]=c[14885];if(!(c[(c[Z>>2]|0)+8>>2]|0)){ja=77;break}e=E+52|0;W=su(E,c[e>>2]|0)|0;g=E+56|0;c[g>>2]=W;switch(W|0){case 999:{ja=80;break e}case 21:{ja=E+152|0;c[ja>>2]=c[ja>>2]|1;break}case 24:{ja=E+152|0;c[ja>>2]=c[ja>>2]|520;break}default:{f=zj(d,124303)|0;f:do if(!f)ja=88;else switch(a[f>>0]|0){case 110:if(!(lA(f+1|0,124315)|0)){f=1;break f}else{ja=88;break f}case 101:if(!(lA(f+1|0,124325)|0)){f=16;break f}else{ja=88;break f}default:{ja=88;break f}}while(0);if((ja|0)==88)f=0;ja=E+152|0;c[ja>>2]=c[ja>>2]|f}}f=c[H>>2]|0;g:do if(!f){c[13349]=0;ja=97}else{do if(c[f+152>>2]&32){if(lA(c[e>>2]|0,c[f+52>>2]|0)|0)break;e=c[13349]|0;if(!e){ja=97;break g}c[e+8>>2]=E;c[E+36>>2]=c[(c[13349]|0)+36>>2];ja=99;break g}while(0);uu(f);c[H>>2]=0;c[J>>2]=0;c[13349]=0;ja=97}while(0);do if((ja|0)==97){ja=0;if(tu(E)|0)break;c[H>>2]=E;ja=99}while(0);if((ja|0)==99){ja=0;c[E+8>>2]=0;c[E+104>>2]=59544;f=c[E>>2]|0;do if(!(a[f+292>>0]|0))if((c[g>>2]|0)==300){u=+h[(c[E+68>>2]|0)+8>>3];h[E+248>>3]=u;h[E+240>>3]=u;break}else{h[E+248>>3]=4.0;h[E+240>>3]=4.0;break}else{W=E+240|0;V=f+216|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2]}while(0);h:do if(!(a[f+293>>0]|0))switch(c[g>>2]|0){case 300:{W=E+416|0;V=(c[E+84>>2]|0)+8|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];break h}case 30:case 21:case 22:case 4:case 3:case 2:{h[E+424>>3]=36.0;h[E+416>>3]=36.0;break h}default:{W=E+416|0;c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;c[W+12>>2]=0;break h}}else{W=E+416|0;V=f+200|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2]}while(0);e=c[f+192>>2]|0;k=+h[(c[(c[Z>>2]|0)+8>>2]|0)+24>>3];i:do if(!(k!=0.0)){do if(e){if(!(a[e+128>>0]|0))break;W=E+432|0;V=e+112|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];break i}while(0);e=E+432|0;if((c[g>>2]|0)==300){W=(c[E+84>>2]|0)+40|0;c[e>>2]=c[W>>2];c[e+4>>2]=c[W+4>>2];c[e+8>>2]=c[W+8>>2];c[e+12>>2]=c[W+12>>2];break}else{h[E+440>>3]=96.0;h[e>>3]=96.0;break}}else{h[E+440>>3]=k;h[E+432>>3]=k}while(0);r=+h[f+272>>3];t=+h[f+280>>3];s=+h[f+256>>3];u=+h[f+264>>3];q=+h[E+240>>3];k=s-q;h[E+208>>3]=k;n=+h[E+248>>3];p=u-n;h[E+216>>3]=p;q=r+q;h[E+224>>3]=q;n=t+n;h[E+232>>3]=n;k=q-k;p=n-p;h[$>>3]=1.0;e=c[(c[Z>>2]|0)+8>>2]|0;n=+h[e+64>>3];do if(n>.001){o=+h[e+72>>3];if(!(o>.001)){q=1.0;n=k;o=p;break}k=k==0.0?n:k;p=p==0.0?o:p;if(!(n<k|o<p)?!(o>p&(n>k&(a[e+80>>0]|0)!=0)):0){q=1.0;n=k;o=p;break}n=n/k;q=o/p;q=n<q?n:q;h[$>>3]=q;n=k;o=p}else{q=1.0;n=k;o=p}while(0);p=(r+s)*.5;h[ha>>3]=p;k=(t+u)*.5;h[ia>>3]=k;D=E+360|0;c[D>>2]=c[f+288>>2];n=q*n;h[Y>>3]=n;o=q*o;h[X>>3]=o;e=zj(d,124335)|0;if(e){f=oB((pA(e)|0)+1|0)|0;g=oB((pA(e)|0)+1|0)|0;c[ca>>2]=Y;c[ca+4>>2]=X;c[ca+8>>2]=$;c[ca+12>>2]=f;do if((Pz(e,124344,ca)|0)==4){e=Xk(c[I>>2]|0,f,0)|0;if(!e)break;W=c[e+16>>2]|0;h[ha>>3]=+h[W+16>>3];h[ia>>3]=+h[W+24>>3]}else{c[da>>2]=Y;c[da+4>>2]=X;c[da+8>>2]=$;c[da+12>>2]=f;c[da+16>>2]=g;if((Pz(e,124364,da)|0)!=4){c[ea>>2]=Y;c[ea+4>>2]=X;c[ea+8>>2]=$;c[ea+12>>2]=ha;c[ea+16>>2]=ia;Pz(e,124384,ea)|0;break}e=Xk(c[I>>2]|0,f,0)|0;if(!e)break;W=c[e+16>>2]|0;h[ha>>3]=+h[W+16>>3];h[ia>>3]=+h[W+24>>3]}while(0);pB(f);pB(g);n=+h[Y>>3];o=+h[X>>3];q=+h[$>>3];p=+h[ha>>3];k=+h[ia>>3]}V=E+368|0;h[V>>3]=n;W=E+376|0;h[W>>3]=o;C=E+352|0;h[C>>3]=q;h[E+336>>3]=p;h[E+344>>3]=k;j=c[E>>2]|0;s=+h[V>>3];q=+h[W>>3];W=(c[D>>2]|0)==0;r=W?q:s;q=W?s:q;s=+h[E+416>>3];t=+h[E+424>>3];do if(!(a[j+294>>0]|0))ja=143;else{if(!(c[E+152>>2]&32)){ja=143;break}o=+h[j+232>>3]-s*2.0;p=+h[j+240>>3]-t*2.0;do if(o<.0001){c[E+164>>2]=1;e=1}else{e=~~(q/o);f=E+164|0;c[f>>2]=e;if(!(q-o*+(e|0)>.0001))break;e=e+1|0;c[f>>2]=e}while(0);do if(p<.0001){c[E+168>>2]=1;f=1}else{f=~~(r/p);g=E+168|0;c[g>>2]=f;if(!(r-p*+(f|0)>.0001))break;f=f+1|0;c[g>>2]=f}while(0);c[E+204>>2]=_(f,e)|0;k=o;n=p;q=q<o?q:o;r=r<p?r:p}while(0);do if((ja|0)==143){ja=0;do if(!(c[E+68>>2]|0)){k=0.0;n=0.0}else{W=c[E+84>>2]|0;k=+h[W+24>>3]-s*2.0;k=k<0.0?0.0:k;n=+h[W+32>>3]-t*2.0;if(!(n<0.0))break;n=0.0}while(0);c[E+204>>2]=1;c[E+168>>2]=1;c[E+164>>2]=1;k=k<q?q:k;if(!(n<r)){f=1;e=1;break}n=r;f=1;e=1}while(0);A=E+432|0;u=(s*2.0+k)*+h[A>>3]/72.0;c[E+448>>2]=~~(u+(u>=0.0?.5:-.5));B=E+440|0;u=(t*2.0+n)*+h[B>>3]/72.0;c[E+452>>2]=~~(u+(u>=0.0?.5:-.5));y=E+188|0;z=E+180|0;l=E+176|0;m=E+172|0;v=j+196|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;switch(a[c[v>>2]>>0]|0){case 84:{c[l>>2]=f+-1;w=0;g=0;j=0;x=-1;break}case 66:{w=0;g=0;j=0;x=1;break}case 76:{w=1;g=0;j=0;x=0;break}case 82:{c[m>>2]=e+-1;w=-1;g=0;j=0;x=0;break}default:{w=0;g=0;j=0;x=0}}W=z;c[W>>2]=w|g;c[W+4>>2]=j|x;switch(a[(c[v>>2]|0)+1>>0]|0){case 84:{c[l>>2]=f+-1;e=0;f=0;g=0;j=-1;break}case 66:{e=0;f=0;g=0;j=1;break}case 76:{e=1;f=0;g=0;j=0;break}case 82:{c[m>>2]=e+-1;e=-1;f=0;g=0;j=0;break}default:{e=0;f=0;g=0;j=0}}W=y;c[W>>2]=e|f;c[W+4>>2]=g|j;W=e+w|0;if(!((((W|0)>-1?W:0-W|0)|0)==1?(W=j+x|0,(((W|0)>-1?W:0-W|0)|0)==1):0)){W=z;c[W>>2]=0;c[W+4>>2]=1;W=y;c[W>>2]=1;c[W+4>>2]=0;c[fa>>2]=c[v>>2];dj(0,124404,fa)|0}do if(!(a[(c[(c[Z>>2]|0)+8>>2]|0)+82>>0]|0)){k=0.0;n=0.0}else{k=k>q?(k-q)*.5:0.0;if(!(n>r)){n=0.0;break}n=(n-r)*.5}while(0);W=(c[D>>2]|0)==0;p=W?r:q;o=W?q:r;u=(W?s:t)+(W?k:n);h[E+384>>3]=u;q=(W?t:s)+(W?n:k);h[E+392>>3]=q;r=o+u;h[E+400>>3]=r;t=p+q;h[E+408>>3]=t;s=+h[C>>3];h[E+320>>3]=o/s;h[E+328>>3]=p/s;s=+h[A>>3];u=u*s/72.0;l=~~(u+(u>=0.0?.5:-.5));m=E+456|0;c[m>>2]=l;u=+h[B>>3];q=q*u/72.0;e=~~(q+(q>=0.0?.5:-.5));c[E+460>>2]=e;s=r*s/72.0;f=~~(s+(s>=0.0?.5:-.5));g=E+464|0;c[g>>2]=f;u=t*u/72.0;j=~~(u+(u>=0.0?.5:-.5));c[E+468>>2]=j;if(!W){W=m;c[W>>2]=e;c[W+4>>2]=l;W=g;c[W>>2]=j;c[W+4>>2]=f}if(!(c[E+152>>2]&128))$o(E,d);c[13349]=E}E=pn(b)|0;if(!E)break d}if((ja|0)==77){dj(1,124250,aa)|0;ep(0);if(!(a[124827]|0)){e=-1;break a}e=c[22667]|0;la=ok(d)|0;u=+Bs();c[ba>>2]=la;h[ba+8>>3]=u;Bz(e,123927,ba)|0;e=-1;break a}else if((ja|0)==80){c[ka>>2]=c[e>>2];dj(1,124271,ka)|0;ep(0);if(!(a[124827]|0)){e=-1;break a}e=c[22667]|0;ka=ok(d)|0;u=+Bs();c[la>>2]=ka;h[la+8>>3]=u;Bz(e,123927,la)|0;e=-1;break a}}while(0);ep(0);if(!(a[124827]|0))e=0;else{e=c[22667]|0;la=ok(d)|0;u=+Bs();c[ga>>2]=la;h[ga+8>>3]=u;Bz(e,123927,ga)|0;e=0}}else ja=5;while(0);if((ja|0)==5){dj(1,123879,e)|0;if(!(a[124827]|0))e=-1;else{e=c[22667]|0;la=ok(d)|0;u=+Bs();c[f>>2]=la;h[f+8>>3]=u;Bz(e,123927,f)|0;e=-1}}i=ma;return e|0}function gp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+144|0;h=j;g=j+8|0;e=c[b+160>>2]|0;if((e|0)>1?(c[b+152>>2]&64|0)!=0:0){jj(d,c[(c[(c[b>>2]|0)+308>>2]|0)+(e<<2)>>2]|0)|0;f=d+4|0;e=c[f>>2]|0;if(e>>>0>=(c[d+8>>2]|0)>>>0){hj(d,1)|0;e=c[f>>2]|0}c[f>>2]=e+1;a[e>>0]=95}f=c[b+196>>2]|0;e=c[b+200>>2]|0;if((f|0)>0|(e|0)>0){c[h>>2]=f;c[h+4>>2]=e;Oz(g,124816,h)|0;jj(d,g)|0}i=j;return}function hp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,h=0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=i;i=i+16|0;r=v+8|0;q=v;p=v+12|0;u=$p(12)|0;h=oA(b)|0;a:do if(!d){d=1;f=h;while(1){switch(a[f>>0]|0){case 0:break a;case 58:{d=d+1|0;break}default:{}}f=f+1|0}}while(0);o=u+4|0;c[o>>2]=h;t=$p((d*12|0)+12|0)|0;l=u+8|0;c[l>>2]=t;d=xA(h,133477)|0;b:do if(d){h=0;k=d;j=1.0;d=0;while(1){f=jA(k,59)|0;if(f){w=f+1|0;a[f>>0]=0;m=+$z(w,p);if(m>=0.0?(c[p>>2]|0)==(w|0):1){s=19;break}}else m=0.0;n=m-j;if(n>0.0)if((c[13352]|0)!=0?!(n<1.0e-05&n>-1.0e-05):0){c[q>>2]=b;dj(0,124735,q)|0;c[13352]=0;d=3;m=j}else m=j;j=j-m;if(m>0.0)a[t+(h*12|0)+8>>0]=1;if(a[k>>0]|0)c[t+(h*12|0)>>2]=k;f=h+1|0;g[t+(h*12|0)+4>>2]=m;if(j<1.0e-05&j>-1.0e-05){s=33;break b}k=xA(0,133477)|0;if(!k)break;else h=f}if((s|0)==19){if(!(c[13352]|0))d=1;else{c[r>>2]=b;dj(1,124770,r)|0;c[13352]=0;d=2}pB(c[o>>2]|0);pB(c[l>>2]|0);pB(u);break}if(j>0.0){l=(h|0)>-1;if(l){h=0;k=0;do{h=(+g[t+(k*12|0)+4>>2]==0.0&1)+h|0;k=k+1|0}while((k|0)!=(f|0));if((h|0)>0)if(l){j=j/+(h|0);k=0;do{h=t+(k*12|0)+4|0;if(+g[h>>2]==0.0)g[h>>2]=j;k=k+1|0}while((k|0)!=(f|0));s=33}else s=33;else s=32}else s=32}else s=33}else{f=0;j=1.0;d=0;s=32}while(0);if((s|0)==32){w=t+((f+-1|0)*12|0)+4|0;g[w>>2]=j+ +g[w>>2];s=33}if((s|0)==33){while(1){h=f+-1|0;if((f|0)<=0)break;if(+g[t+(h*12|0)+4>>2]>0.0)break;else f=h}c[t+(f*12|0)>>2]=0;c[u>>2]=f;c[e>>2]=u}i=v;return d|0}function ip(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+144|0;l=m;f=zj(e,134891)|0;h=zj(e,134878)|0;k=zj(e,124573)|0;gj(l,128,m+16|0);if(!d)j=0;else j=c[d>>2]|0;if(!((f|0)!=0?(a[f>>0]|0)!=0:0))f=zj(e,134896)|0;g=Wo(b,e,l)|0;if(!h)d=0;else d=tp(h,e)|0;Vo(b,j,f,d,k,g,e)|0;pB(d);kj(l);i=m;return}function jp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+16|0;d=c[g>>2]|0;if((c[d+180>>2]|0)>=1){f=1;while(1){e=c[(c[d+184>>2]|0)+(f<<2)>>2]|0;jp(b,e);d=zj(e,161159)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Ru(b,d);d=zj(e,161150)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Ru(b,d);d=zj(e,123413)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Ru(b,d);d=zj(e,125224)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Su(b,d);d=zj(e,125258)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0)Ru(b,d);d=c[g>>2]|0;if((f|0)>=(c[d+180>>2]|0))break;else f=f+1|0}}return}function kp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;b=zj(b,125234)|0;a:do if((b|0)!=0?(a[b>>0]|0)!=0:0){dp(b)|0;b=c[13266]|0;if(!b){b=0;e=53064}else{f=0;e=53064;while(1){while(1){if(!(lA(b,134460)|0)){b=9;break}if(!(lA(b,129774)|0)){b=12;break}if(!(lA(b,129781)|0)){b=15;break}if(!(lA(b,129756)|0)){b=18;break}e=e+4|0;b=c[e>>2]|0;if(!b){b=f;e=53064;break a}}if((b|0)==9){f=f|1;e=e+4|0}else if((b|0)==12){b=e;do{h=b;b=b+4|0;g=c[b>>2]|0;c[h>>2]=g}while((g|0)!=0);f=f|3}else if((b|0)==15){b=e;do{g=b;b=b+4|0;h=c[b>>2]|0;c[g>>2]=h}while((h|0)!=0);f=f|64}else if((b|0)==18){b=e;do{g=b;b=b+4|0;h=c[b>>2]|0;c[g>>2]=h}while((h|0)!=0);f=f|4}b=c[e>>2]|0;if(!b){b=f;e=53064;break}}}}else{b=0;e=0}while(0);c[d>>2]=b;return e|0}function lp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[b>>2]|0;if((f|0)<(e|0)){f=f<<1;f=(f|0)>(e|0)?f:e;a=cq(a,f<<4)|0;c[b>>2]=f}if((e|0)>0){f=0;do{h[a+(f<<4)>>3]=+h[d+(f*24|0)>>3];h[a+(f<<4)+8>>3]=+h[d+(f*24|0)+8>>3];f=f+1|0}while((f|0)!=(e|0))}return a|0}function mp(d,f){d=d|0;f=f|0;var g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0,y=0,z=0,A=0;g=c[d>>2]|0;z=f+16|0;a:do if(((((c[(c[z>>2]|0)+8>>2]|0)!=0?(pp(d,gl(f)|0,f)|0)<<24>>24!=0:0)?(i=d+256|0,a[k>>0]=a[i>>0],a[k+1>>0]=a[i+1>>0],a[k+2>>0]=a[i+2>>0],a[k+3>>0]=a[i+3>>0],a[k+4>>0]=a[i+4>>0],a[k+5>>0]=a[i+5>>0],a[k+6>>0]=a[i+6>>0],a[k+7>>0]=a[i+7>>0],w=+h[k>>3],i=c[z>>2]|0,y=i+64|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],+h[k>>3]>=w):0)?(y=i+56|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],p=+h[k>>3],y=d+280|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],o=+h[k>>3],y=i+72|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],q=+h[k>>3],y=d+272|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],w=+h[k>>3],y=d+264|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],v=+h[k>>3],y=i+48|0,a[k>>0]=a[y>>0],a[k+1>>0]=a[y+1>>0],a[k+2>>0]=a[y+2>>0],a[k+3>>0]=a[y+3>>0],a[k+4>>0]=a[y+4>>0],a[k+5>>0]=a[y+5>>0],a[k+6>>0]=a[y+6>>0],a[k+7>>0]=a[y+7>>0],!(!(o>=p)|(q>=v?!(w>=+h[k>>3]):1))):0)?(j=i+116|0,l=c[g+28>>2]|0,(a[j>>0]|0)!=(l|0)):0){a[j>>0]=l;_u(d,ok(f)|0);g=Is(f,c[13408]|0,164137)|0;if(a[g>>0]|0)_u(d,g);g=Is(f,c[13396]|0,164137)|0;if((a[g>>0]|0)!=0?(dp(g)|0,m=c[13266]|0,(m|0)!=0):0){g=m;i=53068;while(1){if((a[g>>0]|0)==105?(lA(g,157791)|0)==0:0)break a;g=c[i>>2]|0;if(!g)break;else i=i+4|0}}x=c[d+152>>2]|0;y=To(d)|0;c[y+4>>2]=2;c[y+8>>2]=f;c[y+12>>2]=8;do if(x&16777216)if((e[(c[(gl(f)|0)+16>>2]|0)+178>>1]|0)>2){w=+h[(c[(c[z>>2]|0)+132>>2]|0)+16>>3]*72.0;h[y+168>>3]=+(~~(w+(w>=0.0?.5:-.5))|0);break}else{h[y+168>>3]=0.0;break}while(0);ip(d,c[(c[z>>2]|0)+104>>2]|0,f);do if(x&4259840){if((c[y+208>>2]|0)==0?(b[y+260>>1]&1)==0:0)break;l=kr(f)|0;g=c[z>>2]|0;v=+h[g+16>>3];w=+h[g+24>>3];g=Js(f,c[13396]|0,164137)|0;if((a[g>>0]|0)!=0?(dp(g)|0,r=c[13266]|0,(r|0)!=0):0){i=r;j=53064;g=0;do{u=(lA(i,134460)|0)==0;g=u?1:g;j=j+4|0;i=c[j>>2]|0}while((i|0)!=0)}else g=0;b:do if((l&-3|0)==1){s=c[(c[z>>2]|0)+12>>2]|0;m=s+8|0;i=c[m>>2]|0;if((((i|0)==4?(q=+h[s+16>>3],((~~(q+(q>=0.0?.5:-.5))|0)%90|0|0)==0):0)?+h[s+24>>3]==0.0:0)?+h[s+32>>3]==0.0:0)j=(c[s+4>>2]|g|0)!=0;else j=0;if(!((x&524288|0)==0|((s|0)==0|j))){i=(i|0)<3?1:i;l=s+4|0;r=c[l>>2]|0;r=(r|0)>1?r:1;t=c[s+44>>2]|0;j=zj(f,126330)|0;if(!j)j=0;else j=Yz(j)|0;u=(j+-4|0)>>>0>56?20:j;if(!(c[l>>2]|g)){c[y+264>>2]=0;g=$p(32)|0;i=c[z>>2]|0;p=+h[i+88>>3];h[g>>3]=v-p;q=+h[i+80>>3]*.5;h[g+8>>3]=w-q;h[g+16>>3]=v+p;h[g+24>>3]=w+q;i=2;break}g=c[m>>2]|0;do if((g|0)<3){if(!(+h[s+32>>3]==0.0))break;if(!(+h[s+24>>3]==0.0))break;g=y+264|0;if(c[s>>2]|0){c[g>>2]=1;g=$p(32)|0;h[g>>3]=v;h[g+8>>3]=w;i=(r<<1)+-1|0;h[g+16>>3]=v+ +h[t+(i<<4)>>3];h[g+24>>3]=w+ +h[t+(i<<4)+8>>3];i=2;break b}c[g>>2]=2;g=(r<<1)+-1|0;q=+h[t+(g<<4)>>3];n=+h[t+(g<<4)+8>>3];o=6.283185307179586/+(u|0);g=$p(u<<4)|0;if((u|0)>0){i=0;p=0.0}else{i=u;break b}while(1){h[g+(i<<4)>>3]=q*+Q(+p);h[g+(i<<4)+8>>3]=n*+R(+p);i=i+1|0;if((i|0)==(u|0)){i=0;break}else p=o+p}while(1){t=g+(i<<4)|0;h[t>>3]=v+ +h[t>>3];t=g+(i<<4)+8|0;h[t>>3]=w+ +h[t>>3];i=i+1|0;if((i|0)==(u|0)){i=u;break b}}}while(0);m=_(g,r+-1|0)|0;c[y+264>>2]=2;if((g|0)<(u|0)){g=$p(i<<4)|0;if((i|0)>0)j=0;else break;do{u=j+m|0;h[g+(j<<4)>>3]=v+ +h[t+(u<<4)>>3];h[g+(j<<4)+8>>3]=w+ +h[t+(u<<4)+8>>3];j=j+1|0}while((j|0)!=(i|0))}else{i=(g|0)/(u|0)|0;g=$p(u<<4)|0;if((u|0)>0){j=0;l=0}else{i=u;break}while(1){s=j+m|0;h[g+(l<<4)>>3]=v+ +h[t+(s<<4)>>3];h[g+(l<<4)+8>>3]=w+ +h[t+(s<<4)+8>>3];l=l+1|0;if((l|0)==(u|0)){i=u;break}else j=j+i|0}}}else A=47}else A=47;while(0);if((A|0)==47){c[y+264>>2]=0;g=$p(32)|0;i=c[z>>2]|0;h[g>>3]=v-+h[i+88>>3];q=+h[i+80>>3]*.5;h[g+8>>3]=w-q;h[g+16>>3]=v+ +h[i+96>>3];h[g+24>>3]=w+q;i=2}if(!(x&8192))vu(d,g,g,i)|0;c[y+272>>2]=g;c[y+268>>2]=i}while(0);Lv(zj(f,123456)|0);Iu(d,f);Bb[c[(c[(c[(c[z>>2]|0)+8>>2]|0)+4>>2]|0)+20>>2]&31](d,f);g=c[(c[z>>2]|0)+108>>2]|0;if((g|0)!=0?(a[g+81>>0]|0)!=0:0)Tp(d,10,g);Ju(d);Uo(d)}while(0);return}+function Ff(f,g){f=f|0;g=g|0;var j=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.0,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.0,L=0.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,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,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,_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;ub=i;i=i+6112|0;Ua=ub+5904|0;j=ub+5896|0;lb=ub+5200|0;ob=ub+4504|0;jb=ub+3808|0;mb=ub+3696|0;hb=ub+3520|0;eb=ub+2824|0;kb=ub+2128|0;nb=ub+1432|0;ib=ub+736|0;Va=ub+704|0;Wa=ub+672|0;_a=ub+640|0;$a=ub+608|0;ab=ub+576|0;bb=ub+544|0;fb=ub+96|0;gb=ub;tb=ub+6084|0;db=ub+6080|0;cb=f+16|0;qb=e[(c[cb>>2]|0)+136>>1]&14;Xa=fb+16|0;c[Xa>>2]=ub+368;Ya=gb+16|0;c[Ya>>2]=ub+192;do if(qb){Za=(qb|0)==4;do if(Za){Gf(f);if(!(a[(c[(c[f+60>>2]|0)+16>>2]|0)+113>>0]&1))P=19;else{dj(0,116497,j)|0;P=19}}else if((qb|0)==8){Gf(f);if(!(a[(c[(c[f+60>>2]|0)+16>>2]|0)+113>>0]&1)){Gt(f,0);p=0;o=0;break}j=c[(c[cb>>2]|0)+192>>2]|0;a:do if(j){m=j;b:while(1){o=m+16|0;j=c[o>>2]|0;do if((a[j+156>>0]|0)==1){l=c[j+112>>2]|0;if(!l){l=c[j+104>>2]|0;if(!l)break;Hf(m);j=l}else{l=c[(c[l+16>>2]|0)+96>>2]|0;if(!l)break b;pb=l+56|0;j=j+16|0;c[pb>>2]=c[j>>2];c[pb+4>>2]=c[j+4>>2];c[pb+8>>2]=c[j+8>>2];c[pb+12>>2]=c[j+12>>2];a[l+81>>0]=1;j=l}_s(f,j);j=c[o>>2]|0}while(0);m=c[j+164>>2]|0;if(!m)break a}Ia(116565,116584,234,116597)}while(0);Gt(f,1);p=0;o=0}else P=19;while(0);if((P|0)==19){vi(f);if(ar()|0)break;p=$p(96)|0;q=c[(c[cb>>2]|0)+248>>2]|0;c[tb+8>>2]=(q|0)/4|0;Ta=tb+12|0;c[Ta>>2]=q;q=$p(512)|0;O=tb+4|0;c[O>>2]=0;c[tb>>2]=0;j=c[cb>>2]|0;Ra=b[j+236>>1]|0;s=Ra<<16>>16;do if(Ra<<16>>16<=(b[j+238>>1]|0)){r=0;l=0;v=q;u=0;q=0;c:while(1){t=c[j+196>>2]|0;w=c[t+(s<<6)>>2]|0;I=w+q|0;q=c[t+(s<<6)+4>>2]|0;t=c[q>>2]|0;if(t){K=+(l|0);l=c[t+16>>2]|0;L=+h[l+16>>3]-+h[l+88>>3];l=~~(K<L?K:L)}d:do if(w){q=c[q+(w+-1<<2)>>2]|0;if(q){K=+(r|0);r=c[q+16>>2]|0;L=+h[r+16>>3]+ +h[r+96>>3];r=~~(K>L?K:L)}l=l+-16|0;r=r+16|0;if((w|0)>0){w=t;x=v;t=0;while(1){y=w+16|0;j=c[y>>2]|0;q=c[j+112>>2]|0;if(q){q=q+16|0;v=c[(c[q>>2]|0)+96>>2]|0;if(!v){P=30;break c}Ra=v+56|0;j=j+16|0;c[Ra>>2]=c[j>>2];c[Ra+4>>2]=c[j+4>>2];c[Ra+8>>2]=c[j+8>>2];c[Ra+12>>2]=c[j+12>>2];a[(c[(c[q>>2]|0)+96>>2]|0)+81>>0]=1;j=c[y>>2]|0}if(a[j+156>>0]|0)if(!((Eb[c[49900>>2]&31](w)|0)<<24>>24))v=x;else{j=c[y>>2]|0;P=35}else P=35;do if((P|0)==35){P=0;q=c[c[j+180>>2]>>2]|0;e:do if(!q)v=x;else{v=x;w=0;while(1){j=c[q+16>>2]|0;f:do switch(a[j+112>>0]|0){case 6:case 4:break;default:{c[j+164>>2]=81;j=u+1|0;c[v+(u<<2)>>2]=q;if(j&127){u=j;break f}v=cq(v,(u<<2)+516|0)|0;u=j}}while(0);w=w+1|0;j=c[y>>2]|0;q=c[(c[j+180>>2]|0)+(w<<2)>>2]|0;if(!q)break e}}while(0);q=c[j+188>>2]|0;do if(q){q=c[q>>2]|0;if(!q)break;else{w=0;j=u}while(1){If(q,2,0,128);u=j+1|0;c[v+(j<<2)>>2]=q;if(!(u&127))v=cq(v,(j<<2)+516|0)|0;w=w+1|0;j=c[y>>2]|0;q=c[(c[j+188>>2]|0)+(w<<2)>>2]|0;if(!q)break;else j=u}}while(0);q=c[j+204>>2]|0;if(q){if(!(a[j+156>>0]|0)){Qa=j+96|0;L=+h[Qa>>3];Ra=j+240|0;h[Qa>>3]=+h[Ra>>3];h[Ra>>3]=L}j=c[q>>2]|0;if(!j)break;else{q=v;v=0}while(1){If(j,0,0,128);w=u+1|0;c[q+(u<<2)>>2]=j;if(!(w&127))q=cq(q,(u<<2)+516|0)|0;v=v+1|0;j=c[(c[(c[y>>2]|0)+204>>2]|0)+(v<<2)>>2]|0;if(!j){v=q;u=w;break}else u=w}}}while(0);t=t+1|0;j=c[cb>>2]|0;q=c[j+196>>2]|0;if((t|0)>=(c[q+(s<<6)>>2]|0))break d;w=c[(c[q+(s<<6)+4>>2]|0)+(t<<2)>>2]|0;x=v}}}else{r=r+16|0;l=l+-16|0}while(0);q=s+1|0;if((s|0)<(b[j+238>>1]|0)){s=q;q=I}else{s=I;o=v;j=u;P=55;break}}if((P|0)==30)Ia(116613,116584,313,116626);else if((P|0)==55){c[tb>>2]=l;c[O>>2]=r;N=q;Sa=j;M=(s<<5)+11520|0;break}}else{o=q;N=s;Sa=0;M=11520}while(0);_z(o,Sa,4,10);c[p+84>>2]=$p(M)|0;c[tb+16>>2]=$p(N<<5)|0;Ra=(qb|0)==2;if(Ra?(m=c[(c[cb>>2]|0)+192>>2]|0,(m|0)!=0):0)do{l=m+16|0;j=c[l>>2]|0;if((a[j+156>>0]|0)==1?(c[j+104>>2]|0)!=0:0){Hf(m);j=c[l>>2]|0}m=c[j+164>>2]|0}while((m|0)!=0);if((Sa|0)>0){T=eb+16|0;U=(qb|0)==10;V=ob+52|0;W=jb+52|0;X=p+80|0;Y=f+60|0;Z=nb+52|0;$=ib+52|0;aa=mb+16|0;ba=mb+8|0;ca=mb+32|0;da=mb+48|0;ea=mb+64|0;fa=mb+64|0;ga=mb+72|0;ha=mb+80|0;ia=mb+96|0;ja=mb+96|0;ka=mb+104|0;la=lb+52|0;ma=ob+52|0;na=eb+48|0;oa=eb+-48|0;pa=jb+16|0;qa=mb+16|0;ra=hb+16|0;sa=jb+48|0;ta=jb+48|0;ua=mb+48|0;va=mb+48|0;wa=mb+-48|0;xa=jb+-48|0;ya=hb+48|0;za=hb+-48|0;Aa=eb+16|0;Ba=eb+52|0;Ca=kb+52|0;Da=p+56|0;Ea=p+69|0;Fa=p+16|0;Ga=p+29|0;Ha=kb+16|0;Ja=gb+48|0;Ka=gb+-48|0;La=fb+48|0;Ma=fb+-48|0;Na=hb+16|0;Oa=hb+56|0;Pa=hb+112|0;Qa=hb+116|0;S=0;while(1){O=o+(S<<2)|0;N=c[O>>2]|0;m=N;while(1){j=c[m+16>>2]|0;l=c[j+172>>2]|0;if(!l){l=m;break}else m=l}j=c[j+116>>2]|0;if(!j)j=l;else while(1){l=c[(c[j+16>>2]|0)+116>>2]|0;if(!l)break;else j=l}M=N+16|0;l=c[M>>2]|0;if(!(a[l+44>>0]|0)){q=(a[l+84>>0]|0)==0?j:N;l=c[q+16>>2]|0}else q=N;m=q+16|0;if(!(c[l+164>>2]&32))l=q;else{l=c[Xa>>2]|0;AB(l|0,c[m>>2]|0,176)|0;w=fb;x=q;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[Xa>>2]=l;c[((c[fb>>2]&3|0)==3?fb:La)+40>>2]=c[((c[q>>2]&3|0)==2?q:q+-48|0)+40>>2];c[((c[fb>>2]&3|0)==2?fb:Ma)+40>>2]=c[((c[q>>2]&3|0)==3?q:q+48|0)+40>>2];w=l+16|0;x=(c[m>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=l+56|0;x=(c[m>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[l+112>>0]=1;c[l+116>>2]=q;l=fb}m=S+1|0;g:do if((m|0)<(Sa|0)){I=l+16|0;l=1;while(1){v=o+(m<<2)|0;t=c[v>>2]|0;s=t;while(1){q=c[s+16>>2]|0;r=c[q+172>>2]|0;if(!r){r=s;break}else s=r}q=c[q+116>>2]|0;if(!q)q=r;else while(1){r=c[(c[q+16>>2]|0)+116>>2]|0;if(!r)break;else q=r}if((j|0)!=(q|0)){Q=l;R=m;break g}if(!(a[(c[M>>2]|0)+113>>0]|0)){u=t+16|0;q=c[u>>2]|0;if(!(a[q+44>>0]|0)){s=(a[q+84>>0]|0)==0?j:t;q=c[s+16>>2]|0}else s=t;r=s+16|0;if(c[q+164>>2]&32){q=c[Ya>>2]|0;AB(q|0,c[r>>2]|0,176)|0;w=gb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[Ya>>2]=q;c[((c[gb>>2]&3|0)==3?gb:Ja)+40>>2]=c[((c[s>>2]&3|0)==2?s:s+-48|0)+40>>2];c[((c[gb>>2]&3|0)==2?gb:Ka)+40>>2]=c[((c[s>>2]&3|0)==3?s:s+48|0)+40>>2];w=q+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=q+56|0;x=(c[r>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[q+112>>0]=1;c[q+116>>2]=s}s=c[I>>2]|0;R=q+16|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];A=+h[k>>3];R=q+24|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];B=+h[k>>3];R=a[q+44>>0]|0;r=s+16|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];C=+h[k>>3];r=s+24|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];D=+h[k>>3];r=a[s+44>>0]|0;if(!(R<<24>>24))r=r<<24>>24!=0&1;else{if(!(r<<24>>24)){Q=l;R=m;break g}if(~~(C-A)){Q=l;R=m;break g}r=~~(D-B)}if(r){Q=l;R=m;break g}R=q+56|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];C=+h[k>>3];R=q+64|0;a[k>>0]=a[R>>0];a[k+1>>0]=a[R+1>>0];a[k+2>>0]=a[R+2>>0];a[k+3>>0]=a[R+3>>0];a[k+4>>0]=a[R+4>>0];a[k+5>>0]=a[R+5>>0];a[k+6>>0]=a[R+6>>0];a[k+7>>0]=a[R+7>>0];D=+h[k>>3];R=a[q+84>>0]|0;q=s+56|0;a[k>>0]=a[q>>0];a[k+1>>0]=a[q+1>>0];a[k+2>>0]=a[q+2>>0];a[k+3>>0]=a[q+3>>0];a[k+4>>0]=a[q+4>>0];a[k+5>>0]=a[q+5>>0];a[k+6>>0]=a[q+6>>0];a[k+7>>0]=a[q+7>>0];A=+h[k>>3];q=s+64|0;a[k>>0]=a[q>>0];a[k+1>>0]=a[q+1>>0];a[k+2>>0]=a[q+2>>0];a[k+3>>0]=a[q+3>>0];a[k+4>>0]=a[q+4>>0];a[k+5>>0]=a[q+5>>0];a[k+6>>0]=a[q+6>>0];a[k+7>>0]=a[q+7>>0];B=+h[k>>3];q=a[s+84>>0]|0;if(!(R<<24>>24))q=q<<24>>24!=0&1;else{if(!(q<<24>>24)){Q=l;R=m;break g}if(~~(A-C)){Q=l;R=m;break g}q=~~(B-D)}if(q){Q=l;R=m;break g}R=c[M>>2]|0;if((c[R+164>>2]&15|0)==2?(c[R+96>>2]|0)!=(c[(c[u>>2]|0)+96>>2]|0):0){Q=l;R=m;break g}if(c[(c[(c[v>>2]|0)+16>>2]|0)+164>>2]&64){Q=l;R=m;break g}}l=l+1|0;m=m+1|0;if((m|0)>=(Sa|0)){Q=l;R=m;break}}}else{Q=1;R=m}while(0);h:do if(Za){if((Q|0)==1)q=db;else q=$p(Q<<2)|0;m=c[O>>2]|0;while(1){j=c[m+16>>2]|0;l=c[j+172>>2]|0;if(!l){l=m;break}else m=l}j=c[j+116>>2]|0;if(!j)j=l;else while(1){l=c[(c[j+16>>2]|0)+116>>2]|0;if(!l)break;else j=l}c[q>>2]=j;j=(Q|0)>1;if(j)l=1;else{er(f,q,Q,4,49896);break}do{c[q+(l<<2)>>2]=c[o+(l+S<<2)>>2];l=l+1|0}while((l|0)!=(Q|0));er(f,q,Q,4,49896);if(j)pB(q)}else{j=c[N>>2]&3;P=c[((j|0)==3?N:N+48|0)+40>>2]|0;j=c[((j|0)==2?N:N+-48|0)+40>>2]|0;l=c[P+16>>2]|0;q=c[l+232>>2]|0;if((P|0)==(j|0)){m=c[cb>>2]|0;do if((q|0)==(b[m+238>>1]|0))if((q|0)>0){j=~~(+h[(c[(c[c[(c[m+196>>2]|0)+(q+-1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[l+24>>3]);break}else{j=~~+h[l+80>>3];break}else{A=+h[l+24>>3];j=c[m+196>>2]|0;if((q|0)==(b[m+236>>1]|0)){j=~~(A-+h[(c[(c[c[j+(q+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);break}else{P=~~(+h[(c[(c[c[j+(q+-1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-A);j=~~(A-+h[(c[(c[c[j+(q+1<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]);j=(P|0)<(j|0)?P:j;break}}while(0);fs(p,o,S,Q,+(c[Ta>>2]|0),+((j|0)/2|0|0),49896);if((Q|0)>0)l=0;else break;while(1){j=c[(c[(c[o+(l+S<<2)>>2]|0)+16>>2]|0)+96>>2]|0;if(j)_s(f,j);l=l+1|0;if((l|0)==(Q|0))break h}}if((q|0)==(c[(c[j+16>>2]|0)+232>>2]|0)){c[T>>2]=hb;l=c[O>>2]|0;m=l+16|0;j=c[m>>2]|0;q=a[j+113>>0]|0;if(!(c[j+164>>2]&32))u=l;else{AB(hb|0,j|0,176)|0;w=eb;x=l;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[T>>2]=hb;c[((c[eb>>2]&3|0)==3?eb:na)+40>>2]=c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2];c[((c[eb>>2]&3|0)==2?eb:oa)+40>>2]=c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2];w=Na;x=(c[m>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=Oa;x=(c[m>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));a[Pa>>0]=1;c[Qa>>2]=l;u=eb}i:do if((Q|0)>1){j=1;while(1){if(a[(c[(c[o+(j+S<<2)>>2]|0)+16>>2]|0)+113>>0]|0){P=131;break i}j=j+1|0;if((j|0)>=(Q|0)){P=130;break}}}else P=130;while(0);j:do if((P|0)==130){P=0;if(q<<24>>24){P=131;break}q=u+16|0;j=c[q>>2]|0;m=c[j+96>>2]|0;if(m){s=c[u>>2]&3;r=c[((s|0)==3?u:u+48|0)+40>>2]|0;t=u+-48|0;s=c[((s|0)==2?u:t)+40>>2]|0;j=c[j+172>>2]|0;while(1){l=c[(c[j+16>>2]|0)+172>>2]|0;if(!l)break;else j=l}l=m+56|0;m=(c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)+16|0;j=(c[m>>2]|0)+16|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];j=c[q>>2]|0;l=c[j+96>>2]|0;a[l+81>>0]=1;if(!Ra){O=c[m>>2]|0;J=+h[O+16>>3];G=J-+h[O+88>>3];J=J+ +h[O+96>>3];K=+h[O+24>>3];H=K+ +h[O+80>>3]*.5;O=c[r+16>>2]|0;S=c[O+232>>2]|0;Q=c[(c[cb>>2]|0)+196>>2]|0;S=~~(+(~~(K-+h[Q+(S<<6)+16>>3]-+h[O+24>>3]+ +h[Q+(S<<6)+24>>3])|0)/6.0);K=H-((S|0)<5?5.0:+(S|0));Lf(f,tb,p,r,u,lb,1);Lf(f,tb,p,s,u,ob,0);S=c[la>>2]|0;Q=S+-1|0;L=+h[lb+56+(Q<<5)>>3];h[167]=L;h[168]=+h[lb+56+(Q<<5)+24>>3];h[169]=G;h[170]=K;h[171]=L;h[172]=K;Q=(c[ma>>2]|0)+-1|0;L=+h[ob+56+(Q<<5)+16>>3];h[173]=L;h[174]=H;h[175]=J;h[178]=K;h[176]=+h[ob+56+(Q<<5)+24>>3];h[177]=L;if((S|0)>0){j=0;do{S=lb+56+(j<<5)|0;c[Ua>>2]=c[S>>2];c[Ua+4>>2]=c[S+4>>2];c[Ua+8>>2]=c[S+8>>2];c[Ua+12>>2]=c[S+12>>2];c[Ua+16>>2]=c[S+16>>2];c[Ua+20>>2]=c[S+20>>2];c[Ua+24>>2]=c[S+24>>2];c[Ua+28>>2]=c[S+28>>2];bs(p,Ua);j=j+1|0}while((j|0)<(c[la>>2]|0))};c[Ua>>2]=c[334];c[Ua+4>>2]=c[335];c[Ua+8>>2]=c[336];c[Ua+12>>2]=c[337];c[Ua+16>>2]=c[338];c[Ua+20>>2]=c[339];c[Ua+24>>2]=c[340];c[Ua+28>>2]=c[341];bs(p,Ua);c[Ua>>2]=c[342];c[Ua+4>>2]=c[343];c[Ua+8>>2]=c[344];c[Ua+12>>2]=c[345];c[Ua+16>>2]=c[346];c[Ua+20>>2]=c[347];c[Ua+24>>2]=c[348];c[Ua+28>>2]=c[349];bs(p,Ua);c[Ua>>2]=c[350];c[Ua+4>>2]=c[351];c[Ua+8>>2]=c[352];c[Ua+12>>2]=c[353];c[Ua+16>>2]=c[354];c[Ua+20>>2]=c[355];c[Ua+24>>2]=c[356];c[Ua+28>>2]=c[357];bs(p,Ua);j=c[ma>>2]|0;if((j|0)>0)do{S=j;j=j+-1|0;Q=ob+56+(j<<5)|0;c[Ua>>2]=c[Q>>2];c[Ua+4>>2]=c[Q+4>>2];c[Ua+8>>2]=c[Q+8>>2];c[Ua+12>>2]=c[Q+12>>2];c[Ua+16>>2]=c[Q+16>>2];c[Ua+20>>2]=c[Q+20>>2];c[Ua+24>>2]=c[Q+24>>2];c[Ua+28>>2]=c[Q+28>>2];bs(p,Ua)}while((S|0)>1);if(U)l=cr(p,jb)|0;else l=dr(p,jb)|0;j=c[jb>>2]|0;if(j)P=145}else{P=c[r+16>>2]|0;S=j+16|0;a[k>>0]=a[S>>0];a[k+1>>0]=a[S+1>>0];a[k+2>>0]=a[S+2>>0];a[k+3>>0]=a[S+3>>0];a[k+4>>0]=a[S+4>>0];a[k+5>>0]=a[S+5>>0];a[k+6>>0]=a[S+6>>0];a[k+7>>0]=a[S+7>>0];D=+h[k>>3];S=j+24|0;a[k>>0]=a[S>>0];a[k+1>>0]=a[S+1>>0];a[k+2>>0]=a[S+2>>0];a[k+3>>0]=a[S+3>>0];a[k+4>>0]=a[S+4>>0];a[k+5>>0]=a[S+5>>0];a[k+6>>0]=a[S+6>>0];a[k+7>>0]=a[S+7>>0];F=+h[k>>3];S=P+16|0;a[k>>0]=a[S>>0];a[k+1>>0]=a[S+1>>0];a[k+2>>0]=a[S+2>>0];a[k+3>>0]=a[S+3>>0];a[k+4>>0]=a[S+4>>0];a[k+5>>0]=a[S+5>>0];a[k+6>>0]=a[S+6>>0];a[k+7>>0]=a[S+7>>0];E=+h[k>>3];P=P+24|0;a[k>>0]=a[P>>0];a[k+1>>0]=a[P+1>>0];a[k+2>>0]=a[P+2>>0];a[k+3>>0]=a[P+3>>0];a[k+4>>0]=a[P+4>>0];a[k+5>>0]=a[P+5>>0];a[k+6>>0]=a[P+6>>0];a[k+7>>0]=a[P+7>>0];F=F+ +h[k>>3];P=c[s+16>>2]|0;S=j+56|0;a[k>>0]=a[S>>0];a[k+1>>0]=a[S+1>>0];a[k+2>>0]=a[S+2>>0];a[k+3>>0]=a[S+3>>0];a[k+4>>0]=a[S+4>>0];a[k+5>>0]=a[S+5>>0];a[k+6>>0]=a[S+6>>0];a[k+7>>0]=a[S+7>>0];J=+h[k>>3];j=j+64|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];L=+h[k>>3];j=P+16|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];K=+h[k>>3];j=P+24|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];L=L+ +h[k>>3];G=+h[l+56>>3];H=+h[l+64>>3]-+h[l+32>>3]*.5;h[mb>>3]=D+E;h[ba>>3]=F;c[aa>>2]=c[mb>>2];c[aa+4>>2]=c[mb+4>>2];c[aa+8>>2]=c[mb+8>>2];c[aa+12>>2]=c[mb+12>>2];h[fa>>3]=G;h[ga>>3]=H;c[da>>2]=c[ea>>2];c[da+4>>2]=c[ea+4>>2];c[da+8>>2]=c[ea+8>>2];c[da+12>>2]=c[ea+12>>2];c[ca>>2]=c[ea>>2];c[ca+4>>2]=c[ea+4>>2];c[ca+8>>2]=c[ea+8>>2];c[ca+12>>2]=c[ea+12>>2];h[ja>>3]=J+K;h[ka>>3]=L;c[ha>>2]=c[ia>>2];c[ha+4>>2]=c[ia+4>>2];c[ha+8>>2]=c[ia+8>>2];c[ha+12>>2]=c[ia+12>>2];c[jb>>2]=7;j=7;l=mb;P=145}if((P|0)==145){P=0;as(u,c[((c[u>>2]&3|0)==2?u:t)+40>>2]|0,l,j,49896)}break}if(Ra){O=c[u>>2]&3;Mf(c[((O|0)==3?u:u+48|0)+40>>2]|0,c[((O|0)==2?u:u+-48|0)+40>>2]|0,o,S,Q,2);break}l=a[j+49>>0]|0;j=a[j+89>>0]|0;do if(!(l<<24>>24==1&j<<24>>24!=4)){if(l<<24>>24!=4&j<<24>>24==1)break;q=c[u>>2]&3;m=c[((q|0)==3?u:u+48|0)+40>>2]|0;q=c[((q|0)==2?u:u+-48|0)+40>>2]|0;j=c[m+16>>2]|0;l=c[j+232>>2]|0;if((l|0)>0){O=c[(c[cb>>2]|0)+196>>2]|0;N=((d[(c[(c[Y>>2]|0)+16>>2]|0)+113>>0]|-2)^1)+l|0;A=+h[(c[(c[c[O+(N<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[O+(N<<6)+16>>3]-+h[j+24>>3]-+h[O+(l<<6)+24>>3]}else A=+(c[(c[cb>>2]|0)+252>>2]|0);L=+(Q+1|0);B=+(c[Ta>>2]|0)/L;A=A/L;Lf(f,tb,p,m,u,nb,1);Lf(f,tb,p,q,u,ib,0);if((Q|0)>0)q=0;else break j;while(1){m=c[o+(q+S<<2)>>2]|0;O=c[Z>>2]|0;N=O+-1|0;G=+h[nb+56+(N<<5)>>3];H=+h[nb+56+(N<<5)+16>>3];L=+h[nb+56+(N<<5)+24>>3];h[167]=G;h[168]=L;q=q+1|0;J=+(q|0);K=B*J;h[169]=K+H;L=A*J+L;h[170]=L;h[171]=G;h[172]=L;N=(c[$>>2]|0)+-1|0;G=+h[ib+56+(N<<5)+16>>3];h[173]=G;h[174]=A+L;J=+h[ib+56+(N<<5)>>3];H=+h[ib+56+(N<<5)+24>>3];h[177]=G;h[176]=H;h[175]=J-K;h[178]=L;if((O|0)>0){j=0;do{O=nb+56+(j<<5)|0;c[Ua>>2]=c[O>>2];c[Ua+4>>2]=c[O+4>>2];c[Ua+8>>2]=c[O+8>>2];c[Ua+12>>2]=c[O+12>>2];c[Ua+16>>2]=c[O+16>>2];c[Ua+20>>2]=c[O+20>>2];c[Ua+24>>2]=c[O+24>>2];c[Ua+28>>2]=c[O+28>>2];bs(p,Ua);j=j+1|0}while((j|0)<(c[Z>>2]|0))};c[Ua>>2]=c[334];c[Ua+4>>2]=c[335];c[Ua+8>>2]=c[336];c[Ua+12>>2]=c[337];c[Ua+16>>2]=c[338];c[Ua+20>>2]=c[339];c[Ua+24>>2]=c[340];c[Ua+28>>2]=c[341];bs(p,Ua);c[Ua>>2]=c[342];c[Ua+4>>2]=c[343];c[Ua+8>>2]=c[344];c[Ua+12>>2]=c[345];c[Ua+16>>2]=c[346];c[Ua+20>>2]=c[347];c[Ua+24>>2]=c[348];c[Ua+28>>2]=c[349];bs(p,Ua);c[Ua>>2]=c[350];c[Ua+4>>2]=c[351];c[Ua+8>>2]=c[352];c[Ua+12>>2]=c[353];c[Ua+16>>2]=c[354];c[Ua+20>>2]=c[355];c[Ua+24>>2]=c[356];c[Ua+28>>2]=c[357];bs(p,Ua);j=c[$>>2]|0;if((j|0)>0)do{O=j;j=j+-1|0;N=ib+56+(j<<5)|0;c[Ua>>2]=c[N>>2];c[Ua+4>>2]=c[N+4>>2];c[Ua+8>>2]=c[N+8>>2];c[Ua+12>>2]=c[N+12>>2];c[Ua+16>>2]=c[N+16>>2];c[Ua+20>>2]=c[N+20>>2];c[Ua+24>>2]=c[N+24>>2];c[Ua+28>>2]=c[N+28>>2];bs(p,Ua)}while((O|0)>1);if(U)l=cr(p,kb)|0;else l=dr(p,kb)|0;j=c[kb>>2]|0;if(!j)break j;as(m,c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0,l,j,49896);c[X>>2]=0;if((q|0)>=(Q|0))break j}}while(0);r=c[u>>2]&3;q=c[((r|0)==3?u:u+48|0)+40>>2]|0;r=c[((r|0)==2?u:u+-48|0)+40>>2]|0;j=c[q+16>>2]|0;l=c[j+232>>2]|0;m=c[cb>>2]|0;if((l|0)<(b[m+238>>1]|0)){N=c[m+196>>2]|0;O=l+1|0;A=+h[j+24>>3]-+h[N+(l<<6)+32>>3]-(+h[(c[(c[c[N+(O<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[N+(O<<6)+40>>3])}else A=+(c[m+252>>2]|0);L=+(Q+1|0);B=+(c[Ta>>2]|0)/L;A=A/L;Nf(f,tb,p,q,u,ob,1);Nf(f,tb,p,r,u,jb,0);k:do if((Q|0)>0){q=0;do{m=c[o+(q+S<<2)>>2]|0;O=c[V>>2]|0;N=O+-1|0;G=+h[ob+56+(N<<5)>>3];J=+h[ob+56+(N<<5)+8>>3];H=+h[ob+56+(N<<5)+16>>3];h[167]=G;h[170]=J;q=q+1|0;L=+(q|0);K=B*L;h[169]=K+H;L=J-A*L;h[168]=L;h[171]=G;h[174]=L;N=(c[W>>2]|0)+-1|0;G=+h[jb+56+(N<<5)+16>>3];h[173]=G;h[172]=L-A;J=+h[jb+56+(N<<5)>>3];H=+h[jb+56+(N<<5)+8>>3];h[177]=G;h[178]=H;h[175]=J-K;h[176]=L;if((O|0)>0){j=0;do{O=ob+56+(j<<5)|0;c[Ua>>2]=c[O>>2];c[Ua+4>>2]=c[O+4>>2];c[Ua+8>>2]=c[O+8>>2];c[Ua+12>>2]=c[O+12>>2];c[Ua+16>>2]=c[O+16>>2];c[Ua+20>>2]=c[O+20>>2];c[Ua+24>>2]=c[O+24>>2];c[Ua+28>>2]=c[O+28>>2];bs(p,Ua);j=j+1|0}while((j|0)<(c[V>>2]|0))};c[Ua>>2]=c[334];c[Ua+4>>2]=c[335];c[Ua+8>>2]=c[336];c[Ua+12>>2]=c[337];c[Ua+16>>2]=c[338];c[Ua+20>>2]=c[339];c[Ua+24>>2]=c[340];c[Ua+28>>2]=c[341];bs(p,Ua);c[Ua>>2]=c[342];c[Ua+4>>2]=c[343];c[Ua+8>>2]=c[344];c[Ua+12>>2]=c[345];c[Ua+16>>2]=c[346];c[Ua+20>>2]=c[347];c[Ua+24>>2]=c[348];c[Ua+28>>2]=c[349];bs(p,Ua);c[Ua>>2]=c[350];c[Ua+4>>2]=c[351];c[Ua+8>>2]=c[352];c[Ua+12>>2]=c[353];c[Ua+16>>2]=c[354];c[Ua+20>>2]=c[355];c[Ua+24>>2]=c[356];c[Ua+28>>2]=c[357];bs(p,Ua);j=c[W>>2]|0;if((j|0)>0)do{O=j;j=j+-1|0;N=jb+56+(j<<5)|0;c[Ua>>2]=c[N>>2];c[Ua+4>>2]=c[N+4>>2];c[Ua+8>>2]=c[N+8>>2];c[Ua+12>>2]=c[N+12>>2];c[Ua+16>>2]=c[N+16>>2];c[Ua+20>>2]=c[N+20>>2];c[Ua+24>>2]=c[N+24>>2];c[Ua+28>>2]=c[N+28>>2];bs(p,Ua)}while((O|0)>1);if(U)l=cr(p,lb)|0;else l=dr(p,lb)|0;j=c[lb>>2]|0;if(!j)break k;as(m,c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0,l,j,49896);c[X>>2]=0}while((q|0)<(Q|0))}while(0)}while(0);if((P|0)==131)Kf(f,o,S,Q,u,qb);break}c[pa>>2]=Ua;c[qa>>2]=lb;c[ra>>2]=ob;if(!(c[12477]|0)){c[12477]=aq(32e3)|0;c[12478]=aq(32e3)|0;c[12479]=2e3;c[12480]=2e3}s=c[O>>2]|0;P=c[s>>2]&3;m=s+48|0;q=s+-48|0;P=(c[(c[(c[((P|0)==3?s:m)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((P|0)==2?s:q)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0;r=s+16|0;do if((((P|0)>-1?P:0-P|0)|0)>1){AB(Ua|0,c[r>>2]|0,176)|0;w=jb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=sa;x=m;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[pa>>2]=Ua;j=c[r>>2]|0;if(!(c[j+164>>2]&32)){AB(lb|0,j|0,176)|0;w=mb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[qa>>2]=lb;c[((c[jb>>2]&3|0)==3?jb:ta)+40>>2]=c[((c[s>>2]&3|0)==3?s:m)+40>>2];w=ua;x=m;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));m=s}else{l=c[qa>>2]|0;AB(l|0,j|0,176)|0;w=mb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[qa>>2]=l;c[((c[mb>>2]&3|0)==3?mb:va)+40>>2]=c[((c[s>>2]&3|0)==2?s:q)+40>>2];c[((c[mb>>2]&3|0)==2?mb:wa)+40>>2]=c[((c[s>>2]&3|0)==3?s:m)+40>>2];w=l+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=(c[qa>>2]|0)+56|0;x=(c[r>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=c[qa>>2]|0;a[w+112>>0]=1;c[w+116>>2]=s;c[((c[jb>>2]&3|0)==3?jb:ta)+40>>2]=c[((c[s>>2]&3|0)==2?s:q)+40>>2];w=(c[pa>>2]|0)+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));m=s}while(1){j=c[m+16>>2]|0;l=c[j+172>>2]|0;if(!l){l=m;break}else m=l}j=c[j+116>>2]|0;if(!j)j=l;else while(1){l=c[(c[j+16>>2]|0)+116>>2]|0;if(!l)break;else j=l}while(1){l=c[(c[j+16>>2]|0)+172>>2]|0;if(!l)break;else j=l}c[((c[jb>>2]&3|0)==2?jb:xa)+40>>2]=c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2];O=c[pa>>2]|0;a[O+84>>0]=0;a[O+112>>0]=1;N=O+56|0;c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;c[N+12>>2]=0;c[O+116>>2]=s;O=jb;N=1}else{j=c[r>>2]|0;if(!(c[j+164>>2]&32)){O=s;N=0;break}l=c[pa>>2]|0;AB(l|0,j|0,176)|0;w=jb;x=s;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[pa>>2]=l;c[((c[jb>>2]&3|0)==3?jb:ta)+40>>2]=c[((c[s>>2]&3|0)==2?s:q)+40>>2];c[((c[jb>>2]&3|0)==2?jb:xa)+40>>2]=c[((c[s>>2]&3|0)==3?s:m)+40>>2];w=l+16|0;x=(c[r>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=(c[pa>>2]|0)+56|0;x=(c[r>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));O=c[pa>>2]|0;a[O+112>>0]=1;c[O+116>>2]=s;O=jb;N=0}while(0);l:do if(Ra){t=c[12477]|0;l=O+16|0;j=c[l>>2]|0;if(!(a[j+112>>0]|0))m=O;else do{m=c[j+116>>2]|0;l=m+16|0;j=c[l>>2]|0}while((a[j+112>>0]|0)!=0);r=c[m>>2]&3;s=c[((r|0)==2?m:m+-48|0)+40>>2]|0;r=c[((r|0)==3?m:m+48|0)+40>>2]|0;q=c[s+16>>2]|0;m=c[r+16>>2]|0;P=(c[q+232>>2]|0)-(c[m+232>>2]|0)|0;switch(((P|0)>-1?P:0-P|0)|0){case 1:{P=206;break l}case 2:{if(a[(c[(c[Y>>2]|0)+16>>2]|0)+113>>0]&1){P=206;break l}break}default:{}}P=(c[((c[O>>2]&3|0)==3?O:O+48|0)+40>>2]|0)==(r|0);N=j+16|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];G=+h[k>>3];N=j+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];D=+h[k>>3];N=m+16|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];H=+h[k>>3];N=m+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];B=+h[k>>3];N=j+56|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];E=+h[k>>3];N=j+64|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];C=+h[k>>3];N=q+16|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];F=+h[k>>3];N=q+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];A=+h[k>>3];if(P){r=s;L=C+A;J=D+B;K=G+H;E=E+F}else{L=D+B;J=C+A;K=E+F;E=G+H}j=c[j+96>>2]|0;if(!j){l=t+16|0;h[t>>3]=K;h[t+8>>3]=J;c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[l+12>>2]=c[t+12>>2];l=t+48|0;P=t+32|0;h[t+32>>3]=E;h[t+40>>3]=L;c[l>>2]=c[P>>2];c[l+4>>2]=c[P+4>>2];c[l+8>>2]=c[P+8>>2];c[l+12>>2]=c[P+12>>2];l=4;P=270;break}H=+h[j+24>>3];B=+h[j+32>>3];P=(c[(c[(gl(s)|0)+16>>2]|0)+116>>2]&1|0)==0;D=P?B:H;N=c[(c[l>>2]|0)+96>>2]|0;A=+h[N+56>>3];C=+h[N+64>>3];B=(P?H:B)*.5;if((~~((L-J)*(A-K)-(E-K)*(C-J))|0)>0){B=A+B;A=C-D*.5}else{B=A-B;A=C+D*.5}l=t+16|0;h[t>>3]=K;h[t+8>>3]=J;c[l>>2]=c[t>>2];c[l+4>>2]=c[t+4>>2];c[l+8>>2]=c[t+8>>2];c[l+12>>2]=c[t+12>>2];l=t+32|0;N=t+48|0;P=t+64|0;h[t+64>>3]=B;h[t+72>>3]=A;c[N>>2]=c[P>>2];c[N+4>>2]=c[P+4>>2];c[N+8>>2]=c[P+8>>2];c[N+12>>2]=c[P+12>>2];c[l>>2]=c[P>>2];c[l+4>>2]=c[P+4>>2];c[l+8>>2]=c[P+8>>2];c[l+12>>2]=c[P+12>>2];l=t+80|0;P=t+96|0;h[t+96>>3]=E;h[t+104>>3]=L;c[l>>2]=c[P>>2];c[l+4>>2]=c[P+4>>2];c[l+8>>2]=c[P+8>>2];c[l+12>>2]=c[P+12>>2];l=7;P=270}else P=206;while(0);m:do if((P|0)==206){P=0;q=c[O>>2]&3;t=c[((q|0)==3?O:O+48|0)+40>>2]|0;q=c[((q|0)==2?O:O+-48|0)+40>>2]|0;Of(ib,f,tb,t,0,O);c[eb>>2]=c[ib>>2];c[eb+4>>2]=c[ib+4>>2];c[eb+8>>2]=c[ib+8>>2];c[eb+12>>2]=c[ib+12>>2];c[eb+16>>2]=c[ib+16>>2];c[eb+20>>2]=c[ib+20>>2];c[eb+24>>2]=c[ib+24>>2];c[eb+28>>2]=c[ib+28>>2];C=+h[eb>>3];D=+h[Aa>>3];l=t+16|0;j=c[l>>2]|0;do if((a[j+156>>0]|0)==1){if((c[j+176>>2]|0)>1){j=1;break}j=(c[j+184>>2]|0)>1&1}else j=0;while(0);cs(p,O,1,eb,j);j=c[Ba>>2]|0;B=+h[eb+56+(j+-1<<5)+8>>3];M=c[l>>2]|0;A=+h[M+24>>3]-+h[(c[(c[cb>>2]|0)+196>>2]|0)+(c[M+232>>2]<<6)+16>>3];if(C<D&A<B){c[Ba>>2]=j+1;h[eb+56+(j<<5)>>3]=C;h[eb+56+(j<<5)+8>>3]=A;h[eb+56+(j<<5)+16>>3]=D;h[eb+56+(j<<5)+24>>3]=B}m=q;j=m+16|0;n:do if((a[(c[j>>2]|0)+156>>0]|0)==1){l=0;M=O;r=-1;s=0;while(1){I=q;y=0;u=M;w=r;q=0;while(1){if((Eb[c[49900>>2]&31](m)|0)<<24>>24){q=I;r=y;x=M;j=t;break n}x=y|1;v=1336+(y<<5)|0;Pf(Va,tb,f,c[(c[t+16>>2]|0)+232>>2]|0);c[v>>2]=c[Va>>2];c[v+4>>2]=c[Va+4>>2];c[v+8>>2]=c[Va+8>>2];c[v+12>>2]=c[Va+12>>2];c[v+16>>2]=c[Va+16>>2];c[v+20>>2]=c[Va+20>>2];c[v+24>>2]=c[Va+24>>2];c[v+28>>2]=c[Va+28>>2];if(!q){q=c[j>>2]|0;r=c[c[q+180>>2]>>2]|0;r=c[(c[((c[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0)+16>>2]|0;o:do if((a[r+156>>0]|0)==1){s=q+16|0;q=0;do{if((c[r+184>>2]|0)!=1)break o;if((c[r+176>>2]|0)!=1)break o;if(+h[r+16>>3]!=+h[s>>3])break o;q=q+1|0;v=c[c[r+180>>2]>>2]|0;r=c[(c[((c[v>>2]&3|0)==2?v:v+-48|0)+40>>2]|0)+16>>2]|0}while((a[r+156>>0]|0)==1)}else q=0;while(0);v=(q|0)<(((a[(c[(c[Y>>2]|0)+16>>2]|0)+113>>0]&1)<<1)+3|0);w=v?w:1;s=v?q:q+-2|0;v=v&1^1}else v=q;if(!((v|0)==0|(w|0)>0)){q=I;r=x;x=s;break}r=y+2|0;q=1336+(x<<5)|0;Of(Wa,f,tb,m,u,c[c[(c[j>>2]|0)+180>>2]>>2]|0);c[q>>2]=c[Wa>>2];c[q+4>>2]=c[Wa+4>>2];c[q+8>>2]=c[Wa+8>>2];c[q+12>>2]=c[Wa+12>>2];c[q+16>>2]=c[Wa+16>>2];c[q+20>>2]=c[Wa+20>>2];c[q+24>>2]=c[Wa+24>>2];c[q+28>>2]=c[Wa+28>>2];u=c[c[(c[I+16>>2]|0)+180>>2]>>2]|0;q=c[u>>2]&3;t=c[((q|0)==3?u:u+48|0)+40>>2]|0;q=c[((q|0)==2?u:u+-48|0)+40>>2]|0;m=q;j=m+16|0;if((a[(c[j>>2]|0)+156>>0]|0)!=1){x=M;j=t;break n}else{I=q;y=r;w=w+-1|0;q=v}}Of(_a,f,tb,m,u,c[c[(c[j>>2]|0)+180>>2]>>2]|0);c[kb>>2]=c[_a>>2];c[kb+4>>2]=c[_a+4>>2];c[kb+8>>2]=c[_a+8>>2];c[kb+12>>2]=c[_a+12>>2];c[kb+16>>2]=c[_a+16>>2];c[kb+20>>2]=c[_a+20>>2];c[kb+24>>2]=c[_a+24>>2];c[kb+28>>2]=c[_a+28>>2];j=c[(c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)+16>>2]|0;do if((a[j+156>>0]|0)==1){if((c[j+176>>2]|0)>1){j=1;break}j=(c[j+184>>2]|0)>1&1}else j=0;while(0);ds(p,u,1,kb,j);j=c[Ca>>2]|0;I=j+-1|0;v=q+16|0;y=c[v>>2]|0;A=+h[y+24>>3]+ +h[(c[(c[cb>>2]|0)+196>>2]|0)+(c[y+232>>2]<<6)+24>>3];B=+h[kb+56+(I<<5)>>3];C=+h[kb+56+(I<<5)+16>>3];D=+h[kb+56+(I<<5)+24>>3];if(B<C&D<A){c[Ca>>2]=j+1;h[kb+56+(j<<5)>>3]=B;h[kb+56+(j<<5)+8>>3]=D;h[kb+56+(j<<5)+16>>3]=C;h[kb+56+(j<<5)+24>>3]=A}h[Da>>3]=1.5707963267948966;a[Ea>>0]=1;Qf(p,M,u,eb,kb,r);do if(U){m=cr(p,nb)|0;j=c[nb>>2]|0;P=233}else{m=dr(p,nb)|0;j=c[nb>>2]|0;if(!(Ra&(j|0)>4)){P=233;break}s=m+16|0;c[s>>2]=c[m>>2];c[s+4>>2]=c[m+4>>2];c[s+8>>2]=c[m+8>>2];c[s+12>>2]=c[m+12>>2];s=m+32|0;j=m+(j+-1<<4)|0;c[s>>2]=c[j>>2];c[s+4>>2]=c[j+4>>2];c[s+8>>2]=c[j+8>>2];c[s+12>>2]=c[j+12>>2];BB(m+48|0,j|0,16)|0;c[nb>>2]=4;j=4;s=m}while(0);if((P|0)==233){P=0;if(!j)break m;else s=m}m=j+l|0;if((m|0)>(c[12479]|0)){c[12479]=m<<1;t=cq(c[12477]|0,m<<5)|0;c[12477]=t;j=c[nb>>2]|0}else t=c[12477]|0;if((j|0)>0){q=(j|0)>1;m=l;r=0;while(1){I=t+(m<<4)|0;y=s+(r<<4)|0;c[I>>2]=c[y>>2];c[I+4>>2]=c[y+4>>2];c[I+8>>2]=c[y+8>>2];c[I+12>>2]=c[y+12>>2];r=r+1|0;if((r|0)==(j|0))break;else m=m+1|0}l=(q?j:1)+l|0}j=c[c[(c[v>>2]|0)+180>>2]>>2]|0;if(!x)s=j;else{m=x;do{m=m+-1|0;j=c[c[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((m|0)!=0);s=j}r=t+(l<<4)|0;j=t+(l+-1<<4)|0;c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];c[r+12>>2]=c[j+12>>2];r=l+2|0;q=t+(l+1<<4)|0;c[q>>2]=c[j>>2];c[q+4>>2]=c[j+4>>2];c[q+8>>2]=c[j+8>>2];c[q+12>>2]=c[j+12>>2];q=t+(r<<4)|0;t=s+48|0;l=(c[(c[((c[s>>2]&3|0)==3?s:t)+40>>2]|0)+16>>2]|0)+16|0;c[q>>2]=c[l>>2];c[q+4>>2]=c[l+4>>2];c[q+8>>2]=c[l+8>>2];c[q+12>>2]=c[l+12>>2];Rf(M,p);q=c[s>>2]&3;t=c[((q|0)==3?s:t)+40>>2]|0;q=c[((q|0)==2?s:s+-48|0)+40>>2]|0;l=t+16|0;Of($a,f,tb,t,c[c[(c[l>>2]|0)+172>>2]>>2]|0,s);c[eb>>2]=c[$a>>2];c[eb+4>>2]=c[$a+4>>2];c[eb+8>>2]=c[$a+8>>2];c[eb+12>>2]=c[$a+12>>2];c[eb+16>>2]=c[$a+16>>2];c[eb+20>>2]=c[$a+20>>2];c[eb+24>>2]=c[$a+24>>2];c[eb+28>>2]=c[$a+28>>2];j=c[l>>2]|0;do if((a[j+156>>0]|0)==1){if((c[j+176>>2]|0)>1){j=1;break}j=(c[j+184>>2]|0)>1&1}else j=0;while(0);cs(p,s,1,eb,j);j=c[Ba>>2]|0;M=j+-1|0;I=c[l>>2]|0;A=+h[I+24>>3]-+h[(c[(c[cb>>2]|0)+196>>2]|0)+(c[I+232>>2]<<6)+16>>3];B=+h[eb+56+(M<<5)>>3];C=+h[eb+56+(M<<5)+8>>3];D=+h[eb+56+(M<<5)+16>>3];if(A<C&B<D){c[Ba>>2]=j+1;h[eb+56+(j<<5)>>3]=B;h[eb+56+(j<<5)+8>>3]=A;h[eb+56+(j<<5)+16>>3]=D;h[eb+56+(j<<5)+24>>3]=C}h[Fa>>3]=-1.5707963267948966;a[Ga>>0]=1;m=q;j=m+16|0;if((a[(c[j>>2]|0)+156>>0]|0)==1){l=r;M=s;r=w;s=x}else{l=r;r=0;u=s;x=s;j=t;break}}}else{l=0;r=0;u=O;x=O;j=t}while(0);s=r+1|0;v=1336+(r<<5)|0;Pf(ab,tb,f,c[(c[j+16>>2]|0)+232>>2]|0);c[v>>2]=c[ab>>2];c[v+4>>2]=c[ab+4>>2];c[v+8>>2]=c[ab+8>>2];c[v+12>>2]=c[ab+12>>2];c[v+16>>2]=c[ab+16>>2];c[v+20>>2]=c[ab+20>>2];c[v+24>>2]=c[ab+24>>2];c[v+28>>2]=c[ab+28>>2];Of(bb,f,tb,m,u,0);c[kb>>2]=c[bb>>2];c[kb+4>>2]=c[bb+4>>2];c[kb+8>>2]=c[bb+8>>2];c[kb+12>>2]=c[bb+12>>2];c[kb+16>>2]=c[bb+16>>2];c[kb+20>>2]=c[bb+20>>2];c[kb+24>>2]=c[bb+24>>2];c[kb+28>>2]=c[bb+28>>2];C=+h[kb>>3];D=+h[Ha>>3];v=(N|0)!=0;m=v?mb:u;w=u+-48|0;j=c[(c[((c[u>>2]&3|0)==2?u:w)+40>>2]|0)+16>>2]|0;do if((a[j+156>>0]|0)==1){if((c[j+176>>2]|0)>1){j=1;break}j=(c[j+184>>2]|0)>1&1}else j=0;while(0);ds(p,m,1,kb,j);j=c[Ca>>2]|0;B=+h[kb+56+(j+-1<<5)+24>>3];N=c[q+16>>2]|0;A=+h[N+24>>3]+ +h[(c[(c[cb>>2]|0)+196>>2]|0)+(c[N+232>>2]<<6)+24>>3];if(C<D&B<A){c[Ca>>2]=j+1;h[kb+56+(j<<5)>>3]=C;h[kb+56+(j<<5)+8>>3]=B;h[kb+56+(j<<5)+16>>3]=D;h[kb+56+(j<<5)+24>>3]=A}Qf(p,x,u,eb,kb,s);if(U)t=cr(p,nb)|0;else t=dr(p,nb)|0;j=c[nb>>2]|0;if(!(Ra&(j|0)>4)){if(!j)break}else{P=t+16|0;c[P>>2]=c[t>>2];c[P+4>>2]=c[t+4>>2];c[P+8>>2]=c[t+8>>2];c[P+12>>2]=c[t+12>>2];P=t+32|0;j=t+(j+-1<<4)|0;c[P>>2]=c[j>>2];c[P+4>>2]=c[j+4>>2];c[P+8>>2]=c[j+8>>2];c[P+12>>2]=c[j+12>>2];BB(t+48|0,j|0,16)|0;c[nb>>2]=4;j=4}m=j+l|0;if((m|0)>(c[12479]|0)){c[12479]=m<<1;c[12477]=cq(c[12477]|0,m<<5)|0;j=c[nb>>2]|0}if((j|0)>0){q=c[12477]|0;r=(j|0)>1;m=l;s=0;while(1){P=q+(m<<4)|0;N=t+(s<<4)|0;c[P>>2]=c[N>>2];c[P+4>>2]=c[N+4>>2];c[P+8>>2]=c[N+8>>2];c[P+12>>2]=c[N+12>>2];s=s+1|0;if((s|0)==(j|0))break;else m=m+1|0}l=(r?j:1)+l|0}Rf(x,p);if(v)j=(c[mb>>2]&3|0)==2?mb:wa;else j=(c[u>>2]&3|0)==2?u:w;r=c[j+40>>2]|0;P=270}while(0);do if((P|0)==270){if((Q|0)==1){as(O,r,c[12477]|0,l,49896);break}u=l+-1|0;v=(u|0)>1;if(v){A=+((_(c[Ta>>2]|0,Q+-1|0)|0)/2|0|0);j=c[12477]|0;m=1;do{P=j+(m<<4)|0;h[P>>3]=+h[P>>3]-A;m=m+1|0}while((m|0)!=(u|0))}j=c[12479]|0;if((j|0)>(c[12480]|0)){c[12480]=j;m=cq(c[12478]|0,j<<4)|0;c[12478]=m}else m=c[12478]|0;t=(l|0)>0;if(t){j=c[12477]|0;q=0;do{P=m+(q<<4)|0;N=j+(q<<4)|0;c[P>>2]=c[N>>2];c[P+4>>2]=c[N+4>>2];c[P+8>>2]=c[N+8>>2];c[P+12>>2]=c[N+12>>2];q=q+1|0}while((q|0)!=(l|0))}as(O,r,m,l,49896);if((Q|0)<=1)break;A=+(c[Ta>>2]|0);s=1;do{r=c[o+(s+S<<2)>>2]|0;m=r+16|0;j=c[m>>2]|0;if(c[j+164>>2]&32){q=c[ra>>2]|0;AB(q|0,j|0,176)|0;w=hb;x=r;y=w+48|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));c[ra>>2]=q;c[((c[hb>>2]&3|0)==3?hb:ya)+40>>2]=c[((c[r>>2]&3|0)==2?r:r+-48|0)+40>>2];c[((c[hb>>2]&3|0)==2?hb:za)+40>>2]=c[((c[r>>2]&3|0)==3?r:r+48|0)+40>>2];w=q+16|0;x=(c[m>>2]|0)+56|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));w=(c[ra>>2]|0)+56|0;x=(c[m>>2]|0)+16|0;y=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(y|0));P=c[ra>>2]|0;a[P+112>>0]=1;c[P+116>>2]=r;r=hb}if(v){j=c[12477]|0;m=1;do{P=j+(m<<4)|0;h[P>>3]=A+ +h[P>>3];m=m+1|0}while((m|0)!=(u|0))}j=c[12478]|0;if(t){m=c[12477]|0;q=0;do{P=j+(q<<4)|0;O=m+(q<<4)|0;c[P>>2]=c[O>>2];c[P+4>>2]=c[O+4>>2];c[P+8>>2]=c[O+8>>2];c[P+12>>2]=c[O+12>>2];q=q+1|0}while((q|0)!=(l|0))}as(r,c[((c[r>>2]&3|0)==2?r:r+-48|0)+40>>2]|0,j,l,49896);s=s+1|0}while((s|0)!=(Q|0))}while(0)}while(0);if((R|0)<(Sa|0))S=R;else break}}j=c[(c[cb>>2]|0)+192>>2]|0;if(j){m=j;do{l=m+16|0;j=c[l>>2]|0;if((a[j+156>>0]|0)==1?(c[j+104>>2]|0)!=0:0){Hf(m);_s(f,c[(c[l>>2]|0)+104>>2]|0);j=c[l>>2]|0}m=c[j+164>>2]|0}while((m|0)!=0)}if((g|0)!=0?(z=Rk(f)|0,(z|0)!=0):0)do{j=Lj(f,z)|0;if(j)do{if((Eb[c[49896>>2]&31](j)|0)<<24>>24!=0?(pb=c[(c[j+16>>2]|0)+8>>2]|0,(pb|0)!=0):0){x=c[pb+4>>2]|0;y=aq(x*48|0)|0;if((x|0)>0){r=0;t=y;v=(c[pb>>2]|0)+((x+-1|0)*48|0)|0;do{w=v;v=v+-48|0;l=c[w+4>>2]|0;m=aq(l<<4)|0;if((l|0)>0){q=0;s=m;u=(c[w>>2]|0)+(l+-1<<4)|0;while(1){c[s>>2]=c[u>>2];c[s+4>>2]=c[u+4>>2];c[s+8>>2]=c[u+8>>2];c[s+12>>2]=c[u+12>>2];q=q+1|0;if((q|0)==(l|0))break;else{s=s+16|0;u=u+-16|0}}}c[t>>2]=m;c[t+4>>2]=l;c[t+8>>2]=c[w+12>>2];c[t+12>>2]=c[w+8>>2];g=t+16|0;ob=w+32|0;c[g>>2]=c[ob>>2];c[g+4>>2]=c[ob+4>>2];c[g+8>>2]=c[ob+8>>2];c[g+12>>2]=c[ob+12>>2];g=t+32|0;t=t+48|0;ob=w+16|0;c[g>>2]=c[ob>>2];c[g+4>>2]=c[ob+4>>2];c[g+8>>2]=c[ob+8>>2];c[g+12>>2]=c[ob+12>>2];r=r+1|0}while((r|0)!=(x|0));l=0;do{pB(c[(c[pb>>2]|0)+(l*48|0)>>2]|0);l=l+1|0}while((l|0)!=(x|0))}pB(c[pb>>2]|0);c[pb>>2]=y}j=Nj(f,j)|0}while((j|0)!=0);z=Sk(f,z)|0}while((z|0)!=0)}if(((c[13443]|0)!=0|(c[13444]|0)!=0?(c[13449]|0)!=0|(c[13448]|0)!=0:0)?(n=Rk(f)|0,(n|0)!=0):0)do{if((c[13443]|0)!=0?(rb=Oj(f,n)|0,(rb|0)!=0):0){m=rb;do{j=m+-48|0;l=(c[m>>2]&3|0)==2?m:j;if(c[(c[l+16>>2]|0)+100>>2]|0){hs(l,1)|0;_s(f,c[(c[((c[m>>2]&3|0)==2?m:j)+16>>2]|0)+100>>2]|0)}m=Pj(f,m)|0}while((m|0)!=0)}if((c[13444]|0)!=0?(sb=Lj(f,n)|0,(sb|0)!=0):0){l=sb;do{j=l+16|0;if((c[(c[j>>2]|0)+104>>2]|0)!=0?(hs(l,0)|0)!=0:0)_s(f,c[(c[j>>2]|0)+104>>2]|0);l=Nj(f,l)|0}while((l|0)!=0)}n=Sk(f,n)|0}while((n|0)!=0);switch(qb|0){case 4:case 8:break;default:{pB(o);pB(c[p+84>>2]|0);pB(p);pB(c[tb+16>>2]|0);br()}}c[13362]=1;c[13363]=1}while(0);i=ub;return}function Gf(a){a=a|0;var b=0,d=0,e=0.0,f=0;b=Rk(a)|0;if(b)do{d=c[b+16>>2]|0;if(c[d+204>>2]|0){f=d+96|0;e=+h[f>>3];d=d+240|0;h[f>>3]=+h[d>>3];h[d>>3]=e}b=Sk(a,b)|0}while((b|0)!=0);return}function Hf(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;f=b+16|0;d=c[f>>2]|0;if(c[d+176>>2]|0){d=c[d+180>>2]|0;while(1){e=(c[d>>2]|0)+16|0;d=c[e>>2]|0;if(!(a[d+112>>0]|0))break;else d=d+116|0}d=c[d+96>>2]|0;g=+h[d+24>>3];i=+h[d+32>>3];d=(c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1|0)!=0;f=c[f>>2]|0;b=c[(c[e>>2]|0)+96>>2]|0;h[b+56>>3]=+h[f+16>>3]+(d?i:g)*.5;h[b+64>>3]=+h[f+24>>3];a[b+81>>0]=1}return}function If(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;do if(!d){d=c[b>>2]&3;g=c[((d|0)==3?b:b+48|0)+40>>2]|0;d=c[((d|0)==2?b:b+-48|0)+40>>2]|0;if((g|0)!=(d|0)){g=(c[(c[g+16>>2]|0)+232>>2]|0)==(c[(c[d+16>>2]|0)+232>>2]|0)?2:1;break}d=c[b+16>>2]|0;if(!(a[d+44>>0]|0))g=(a[d+84>>0]|0)==0?8:4;else g=4}else g=d;while(0);a:do if(!e)switch(g|0){case 1:{d=c[b>>2]&3;d=(c[(c[(c[((d|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)<(c[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)?16:32;break a}case 2:{d=c[b>>2]&3;d=(c[(c[(c[((d|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)<(c[(c[(c[((d|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)?16:32;break a}default:{d=16;break a}}else d=e;while(0);c[(c[b+16>>2]|0)+164>>2]=g|f|d;return}function Jf(b,d){b=b|0;d=d|0;var e=0.0,f=0.0,g=0.0,j=0.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;F=i;i=i+544|0;x=F+368|0;y=F+96|0;A=F;w=y+16|0;c[w>>2]=x;z=A+16|0;c[z>>2]=F+192;E=c[b>>2]|0;D=c[d>>2]|0;B=E+16|0;u=c[B>>2]|0;v=c[u+164>>2]|0;l=v&15;C=D+16|0;b=c[C>>2]|0;d=c[b+164>>2]&15;do if((d|0)==(l|0)){d=c[u+172>>2]|0;if(!d){l=u;d=E}else while(1){l=c[d+16>>2]|0;m=c[l+172>>2]|0;if(!m)break;else d=m}l=c[l+116>>2]|0;if(l){d=l;while(1){l=c[(c[d+16>>2]|0)+116>>2]|0;if(!l)break;else d=l}}l=c[b+172>>2]|0;if(!l){m=b;l=D}else while(1){m=c[l+16>>2]|0;n=c[m+172>>2]|0;if(!n)break;else l=n}m=c[m+116>>2]|0;if(m){l=m;while(1){m=c[(c[l+16>>2]|0)+116>>2]|0;if(!m)break;else l=m}}s=c[d>>2]|0;n=s&3;m=c[(c[((n|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0;n=c[(c[((n|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0;o=(c[m+232>>2]|0)-(c[n+232>>2]|0)|0;t=c[l>>2]|0;r=t&3;q=c[(c[((r|0)==3?l:l+48|0)+40>>2]|0)+16>>2]|0;r=c[(c[((r|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0;p=(c[q+232>>2]|0)-(c[r+232>>2]|0)|0;o=(o|0)>-1?o:0-o|0;p=(p|0)>-1?p:0-p|0;if((o|0)!=(p|0)){b=o-p|0;break}n=~~(+h[m+16>>3]-+h[n+16>>3]);n=(n|0)>-1?n:0-n|0;m=~~(+h[q+16>>3]-+h[r+16>>3]);m=(m|0)>-1?m:0-m|0;if((n|0)!=(m|0)){b=n-m|0;break}n=s>>>4;m=t>>>4;if((n|0)!=(m|0)){b=n-m|0;break}if(!(a[u+44>>0]|0)){d=(a[u+84>>0]|0)==0?d:E;m=d;d=c[(c[d+16>>2]|0)+164>>2]|0}else{m=E;d=v}n=m+16|0;if(d&32){AB(x|0,c[n>>2]|0,176)|0;o=y;p=m;q=o+48|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));c[w>>2]=x;c[((c[y>>2]&3|0)==3?y:y+48|0)+40>>2]=c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2];c[((c[y>>2]&3|0)==2?y:y+-48|0)+40>>2]=c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2];o=x+16|0;p=(c[n>>2]|0)+56|0;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));b=c[w>>2]|0;o=b+56|0;p=(c[n>>2]|0)+16|0;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));a[b+112>>0]=1;c[b+116>>2]=m;b=c[C>>2]|0;m=y}if(!(a[b+44>>0]|0)){b=(a[b+84>>0]|0)==0?l:D;l=b;b=c[b+16>>2]|0}else l=D;d=l+16|0;if(!(c[b+164>>2]&32))d=b;else{b=c[z>>2]|0;AB(b|0,c[d>>2]|0,176)|0;o=A;p=l;q=o+48|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));c[z>>2]=b;c[((c[A>>2]&3|0)==3?A:A+48|0)+40>>2]=c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2];c[((c[A>>2]&3|0)==2?A:A+-48|0)+40>>2]=c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2];o=b+16|0;p=(c[d>>2]|0)+56|0;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));o=b+56|0;p=(c[d>>2]|0)+16|0;q=o+40|0;do{c[o>>2]=c[p>>2];o=o+4|0;p=p+4|0}while((o|0)<(q|0));a[b+112>>0]=1;c[b+116>>2]=l;d=b}l=c[m+16>>2]|0;A=d+16|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];e=+h[k>>3];A=d+24|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];g=+h[k>>3];A=a[d+44>>0]|0;b=l+16|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];f=+h[k>>3];b=l+24|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];j=+h[k>>3];b=a[l+44>>0]|0;if(!(A<<24>>24))b=b<<24>>24!=0&1;else{if(!(b<<24>>24)){b=-1;break}b=~~(f-e);if(b)break;b=~~(j-g)}if(!b){A=d+56|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];f=+h[k>>3];A=d+64|0;a[k>>0]=a[A>>0];a[k+1>>0]=a[A+1>>0];a[k+2>>0]=a[A+2>>0];a[k+3>>0]=a[A+3>>0];a[k+4>>0]=a[A+4>>0];a[k+5>>0]=a[A+5>>0];a[k+6>>0]=a[A+6>>0];a[k+7>>0]=a[A+7>>0];j=+h[k>>3];A=a[d+84>>0]|0;b=l+56|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];e=+h[k>>3];b=l+64|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0];g=+h[k>>3];b=a[l+84>>0]|0;if(!(A<<24>>24))b=b<<24>>24!=0&1;else{if(!(b<<24>>24)){b=-1;break}b=~~(e-f);if(b)break;b=~~(g-j)}if(!b){d=c[(c[B>>2]|0)+164>>2]&192;b=c[(c[C>>2]|0)+164>>2]&192;if((d|0)==(b|0)){b=((c[E>>2]|0)>>>4)-((c[D>>2]|0)>>>4)|0;break}else{b=d-b|0;break}}}}else b=d-l|0;while(0);i=F;return b|0}function Kf(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0,t=0.0,u=0,v=0.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.0,K=0.0,L=0.0,M=0.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;Ea=i;i=i+336|0;Aa=Ea+248|0;U=Ea+232|0;Z=Ea+216|0;Ca=Ea+200|0;Ba=Ea+192|0;X=Ea+320|0;V=Ea+312|0;W=Ea+32|0;Y=Ea+16|0;T=Ea;ya=c[g>>2]&3;za=c[((ya|0)==3?g:g+48|0)+40>>2]|0;ya=c[((ya|0)==2?g:g+-48|0)+40>>2]|0;a:do if((kr(za)|0)!=2?(kr(ya)|0)!=2:0){G=(f|0)>0;do if(G){m=0;l=0;g=0;do{xa=c[(c[d+(m+e<<2)>>2]|0)+16>>2]|0;l=((c[xa+96>>2]|0)!=0&1)+l|0;if(!((a[xa+44>>0]|0)==0?(a[xa+84>>0]|0)==0:0))g=1;m=m+1|0}while((m|0)!=(f|0));I=l;if(!g){if(!I)break;l=c[d+(e<<2)>>2]|0;S=$p(f<<2)|0;if(G){g=0;do{c[S+(g<<2)>>2]=c[d+(g+e<<2)>>2];g=g+1|0}while((g|0)!=(f|0))}_z(S,f,4,11);P=c[za+16>>2]|0;O=l+16|0;N=c[O>>2]|0;e=N+16|0;a[k>>0]=a[e>>0];a[k+1>>0]=a[e+1>>0];a[k+2>>0]=a[e+2>>0];a[k+3>>0]=a[e+3>>0];a[k+4>>0]=a[e+4>>0];a[k+5>>0]=a[e+5>>0];a[k+6>>0]=a[e+6>>0];a[k+7>>0]=a[e+7>>0];o=+h[k>>3];N=N+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];n=+h[k>>3];N=P+16|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];J=+h[k>>3];N=P+24|0;a[k>>0]=a[N>>0];a[k+1>>0]=a[N+1>>0];a[k+2>>0]=a[N+2>>0];a[k+3>>0]=a[N+3>>0];a[k+4>>0]=a[N+4>>0];a[k+5>>0]=a[N+5>>0];a[k+6>>0]=a[N+6>>0];a[k+7>>0]=a[N+7>>0];J=o+J;n=n+ +h[k>>3];h[Y>>3]=J;N=Y+8|0;h[N>>3]=n;e=c[ya+16>>2]|0;O=c[O>>2]|0;Q=O+56|0;a[k>>0]=a[Q>>0];a[k+1>>0]=a[Q+1>>0];a[k+2>>0]=a[Q+2>>0];a[k+3>>0]=a[Q+3>>0];a[k+4>>0]=a[Q+4>>0];a[k+5>>0]=a[Q+5>>0];a[k+6>>0]=a[Q+6>>0];a[k+7>>0]=a[Q+7>>0];o=+h[k>>3];O=O+64|0;a[k>>0]=a[O>>0];a[k+1>>0]=a[O+1>>0];a[k+2>>0]=a[O+2>>0];a[k+3>>0]=a[O+3>>0];a[k+4>>0]=a[O+4>>0];a[k+5>>0]=a[O+5>>0];a[k+6>>0]=a[O+6>>0];a[k+7>>0]=a[O+7>>0];t=+h[k>>3];O=e+16|0;a[k>>0]=a[O>>0];a[k+1>>0]=a[O+1>>0];a[k+2>>0]=a[O+2>>0];a[k+3>>0]=a[O+3>>0];a[k+4>>0]=a[O+4>>0];a[k+5>>0]=a[O+5>>0];a[k+6>>0]=a[O+6>>0];a[k+7>>0]=a[O+7>>0];K=+h[k>>3];O=e+24|0;a[k>>0]=a[O>>0];a[k+1>>0]=a[O+1>>0];a[k+2>>0]=a[O+2>>0];a[k+3>>0]=a[O+3>>0];a[k+4>>0]=a[O+4>>0];a[k+5>>0]=a[O+5>>0];a[k+6>>0]=a[O+6>>0];a[k+7>>0]=a[O+7>>0];K=o+K;t=t+ +h[k>>3];h[T>>3]=K;O=T+8|0;h[O>>3]=t;J=J+ +h[P+96>>3];K=K-+h[e+88>>3];t=(J+K)*.5;e=c[S>>2]|0;c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];P=W+16|0;c[P>>2]=c[Y>>2];c[P+4>>2]=c[Y+4>>2];c[P+8>>2]=c[Y+8>>2];c[P+12>>2]=c[Y+12>>2];Q=W+32|0;c[Q>>2]=c[T>>2];c[Q+4>>2]=c[T+4>>2];c[Q+8>>2]=c[T+8>>2];c[Q+12>>2]=c[T+12>>2];R=W+48|0;c[R>>2]=c[T>>2];c[R+4>>2]=c[T+4>>2];c[R+8>>2]=c[T+8>>2];c[R+12>>2]=c[T+12>>2];as(e,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,W,4,49896);e=c[(c[e+16>>2]|0)+96>>2]|0;h[e+56>>3]=t;o=+h[e+32>>3];h[e+64>>3]=n+(o+6.0)*.5;a[e+81>>0]=1;n=+h[N>>3]+3.0;o=o+n;M=+h[e+24>>3]*.5;L=t-M;M=t+M;b:do if((I|0)>1){u=W+24|0;w=W+40|0;x=W+56|0;y=W+64|0;z=W+72|0;A=W+80|0;B=W+88|0;C=W+96|0;D=W+104|0;E=W+112|0;F=W+120|0;G=X+4|0;H=(j|0)==6&1;g=1;q=0.0;p=0.0;while(1){s=c[S+(g<<2)>>2]|0;if(!(g&1)){c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];h[P>>3]=L;h[u>>3]=+h[N>>3];h[Q>>3]=L;h[w>>3]=o;h[R>>3]=M;h[x>>3]=o;h[y>>3]=M;r=+h[O>>3];h[z>>3]=r;v=+h[T>>3];h[A>>3]=v;h[B>>3]=r;h[C>>3]=v;v=o+6.0;h[D>>3]=v;h[E>>3]=+h[Y>>3];h[F>>3]=v;v=+h[(c[(c[s+16>>2]|0)+96>>2]|0)+32>>3];r=o+v*.5+6.0;o=o+(v+6.0)}else{l=s+16|0;m=c[(c[l>>2]|0)+96>>2]|0;if((g|0)==1){p=+h[m+24>>3]*.5;q=t+p;p=t-p}n=n-(+h[m+32>>3]+6.0);c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];h[P>>3]=+h[Y>>3];r=n+-6.0;h[u>>3]=r;h[Q>>3]=+h[T>>3];h[w>>3]=r;c[R>>2]=c[T>>2];c[R+4>>2]=c[T+4>>2];c[R+8>>2]=c[T+8>>2];c[R+12>>2]=c[T+12>>2];h[y>>3]=q;h[z>>3]=+h[O>>3];h[A>>3]=q;h[B>>3]=n;h[C>>3]=p;h[D>>3]=n;h[E>>3]=p;h[F>>3]=+h[N>>3];r=n+ +h[(c[(c[l>>2]|0)+96>>2]|0)+32>>3]*.5}c[G>>2]=8;c[X>>2]=W;c[Z>>2]=c[Y>>2];c[Z+4>>2]=c[Y+4>>2];c[Z+8>>2]=c[Y+8>>2];c[Z+12>>2]=c[Y+12>>2];c[U>>2]=c[T>>2];c[U+4>>2]=c[T+4>>2];c[U+8>>2]=c[T+8>>2];c[U+12>>2]=c[T+12>>2];c[Aa>>2]=c[X>>2];c[Aa+4>>2]=c[X+4>>2];l=$q(Z,U,Aa,V,H)|0;m=c[V>>2]|0;if(!m)break b;e=c[(c[s+16>>2]|0)+96>>2]|0;h[e+56>>3]=t;h[e+64>>3]=r;a[e+81>>0]=1;as(s,c[((c[s>>2]&3|0)==2?s:s+-48|0)+40>>2]|0,l,m,49896);g=g+1|0;if((g|0)>=(I|0)){Da=17;break}}}else{g=1;q=0.0;p=0.0;Da=17}while(0);c:do if((Da|0)==17){if((g|0)<(f|0)){w=W+24|0;x=W+40|0;y=W+56|0;z=W+64|0;A=W+72|0;B=W+80|0;C=W+88|0;D=W+96|0;E=W+104|0;F=W+112|0;G=W+120|0;H=X+4|0;u=(j|0)==6&1;v=(J*2.0+K)/3.0;t=(J+K*2.0)/3.0;while(1){s=c[S+(g<<2)>>2]|0;if(!(g&1)){c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];h[P>>3]=L;h[w>>3]=+h[N>>3];h[Q>>3]=L;h[x>>3]=o;h[R>>3]=M;h[y>>3]=o;h[z>>3]=M;r=+h[O>>3];h[A>>3]=r;K=+h[T>>3];h[B>>3]=K;h[C>>3]=r;h[D>>3]=K;K=o+6.0;h[E>>3]=K;h[F>>3]=+h[Y>>3];o=K;r=n;n=K}else{j=(g|0)==1;p=j?v:p;q=j?t:q;r=n+-6.0;c[W>>2]=c[Y>>2];c[W+4>>2]=c[Y+4>>2];c[W+8>>2]=c[Y+8>>2];c[W+12>>2]=c[Y+12>>2];h[P>>3]=+h[Y>>3];n=r+-6.0;h[w>>3]=n;h[Q>>3]=+h[T>>3];h[x>>3]=n;c[R>>2]=c[T>>2];c[R+4>>2]=c[T+4>>2];c[R+8>>2]=c[T+8>>2];c[R+12>>2]=c[T+12>>2];h[z>>3]=q;h[A>>3]=+h[O>>3];h[B>>3]=q;h[C>>3]=r;h[D>>3]=p;h[E>>3]=r;h[F>>3]=p;n=+h[N>>3]}h[G>>3]=n;c[H>>2]=8;c[X>>2]=W;c[Z>>2]=c[Y>>2];c[Z+4>>2]=c[Y+4>>2];c[Z+8>>2]=c[Y+8>>2];c[Z+12>>2]=c[Y+12>>2];c[U>>2]=c[T>>2];c[U+4>>2]=c[T+4>>2];c[U+8>>2]=c[T+8>>2];c[U+12>>2]=c[T+12>>2];c[Aa>>2]=c[X>>2];c[Aa+4>>2]=c[X+4>>2];l=$q(Z,U,Aa,V,u)|0;m=c[V>>2]|0;if(!m)break c;as(s,c[((c[s>>2]&3|0)==2?s:s+-48|0)+40>>2]|0,l,m,49896);g=g+1|0;if((g|0)>=(f|0))break;else n=r}}pB(S)}while(0);break a}va=$p(156)|0;if(!(hk(b)|0)){c[Aa>>2]=c[12649];xa=ak(116762,Aa,0)|0}else{c[Aa>>2]=c[12647];xa=ak(116762,Aa,0)|0}xl(xa,160878,280,1)|0;rj(xa,0,118472,164137)|0;ta=$p(96)|0;C=xa+16|0;g=c[C>>2]|0;c[g+8>>2]=ta;wa=b+16|0;ua=c[wa>>2]|0;sa=c[ua+8>>2]|0;h[ta>>3]=+h[sa>>3];h[ta+24>>3]=+h[sa+24>>3];a[g+115>>0]=a[ua+115>>0]|0;c[g+116>>2]=c[ua+116>>2]&1^1;c[g+248>>2]=c[ua+248>>2];c[g+252>>2]=c[ua+252>>2];g=sj(hl(b)|0,1,0)|0;if(g)do{rj(xa,1,c[g+8>>2]|0,c[g+12>>2]|0)|0;g=sj(hl(b)|0,1,g)|0}while((g|0)!=0);g=sj(hl(b)|0,2,0)|0;if(g)do{rj(xa,2,c[g+8>>2]|0,c[g+12>>2]|0)|0;g=sj(hl(b)|0,2,g)|0}while((g|0)!=0);if(!(rj(xa,2,134914,0)|0))rj(xa,2,134914,164137)|0;if(!(rj(xa,2,134905,0)|0))rj(xa,2,134905,164137)|0;c[va>>2]=c[13435];H=va+4|0;c[H>>2]=c[13439];I=va+8|0;c[I>>2]=c[13440];N=va+12|0;c[N>>2]=c[13413];O=va+16|0;c[O>>2]=c[13414];P=va+20|0;c[P>>2]=c[13427];Q=va+24|0;c[Q>>2]=c[13426];R=va+28|0;c[R>>2]=c[13425];S=va+32|0;c[S>>2]=c[13451];T=va+36|0;c[T>>2]=c[13443];U=va+40|0;c[U>>2]=c[13428];V=va+44|0;c[V>>2]=c[13438];W=va+48|0;c[W>>2]=c[13447];X=va+52|0;c[X>>2]=c[13446];Y=va+56|0;c[Y>>2]=c[13445];Z=va+60|0;c[Z>>2]=c[13450];_=va+64|0;c[_>>2]=c[13444];$=va+68|0;c[$>>2]=c[13429];aa=va+72|0;c[aa>>2]=c[13376];ba=va+76|0;c[ba>>2]=c[13377];ca=va+80|0;c[ca>>2]=c[13378];da=va+84|0;c[da>>2]=c[13396];ea=va+88|0;c[ea>>2]=c[13389];fa=va+92|0;c[fa>>2]=c[13390];ga=va+96|0;c[ga>>2]=c[13391];ha=va+100|0;c[ha>>2]=c[13393];ia=va+104|0;c[ia>>2]=c[13394];ja=va+108|0;c[ja>>2]=c[13397];ka=va+112|0;c[ka>>2]=c[13400];la=va+116|0;c[la>>2]=c[13398];ma=va+120|0;c[ma>>2]=c[13399];na=va+124|0;c[na>>2]=c[13402];oa=va+128|0;c[oa>>2]=c[13401];pa=va+132|0;c[pa>>2]=c[13403];qa=va+136|0;c[qa>>2]=c[13404];ra=va+140|0;c[ra>>2]=c[13395];sa=va+144|0;c[sa>>2]=c[13407];ta=va+152|0;c[ta>>2]=c[13362];ua=va+148|0;c[ua>>2]=c[13371];c[13435]=0;c[13439]=rj(xa,2,118617,0)|0;c[13440]=rj(xa,2,118626,0)|0;F=rj(xa,2,125369,0)|0;c[13413]=F;if(!F)c[13413]=rj(xa,2,125369,164137)|0;c[13414]=0;c[13427]=0;c[13426]=rj(xa,2,125249,0)|0;c[13425]=rj(xa,2,125240,0)|0;c[13451]=rj(xa,2,125545,0)|0;c[13443]=0;c[13428]=rj(xa,2,124829,0)|0;c[13438]=rj(xa,2,116767,0)|0;c[13447]=0;c[13446]=rj(xa,2,125445,0)|0;c[13445]=rj(xa,2,125431,0)|0;c[13450]=rj(xa,2,125536,0)|0;c[13444]=0;c[13429]=0;c[13376]=rj(xa,1,134586,0)|0;c[13377]=rj(xa,1,134580,0)|0;c[13378]=rj(xa,1,130096,0)|0;c[13396]=0;c[13389]=rj(xa,1,125240,0)|0;c[13390]=rj(xa,1,125249,0)|0;c[13391]=0;c[13393]=rj(xa,1,124829,0)|0;c[13394]=0;c[13397]=0;c[13400]=rj(xa,1,125201,0)|0;c[13398]=rj(xa,1,125284,0)|0;c[13399]=rj(xa,1,125290,0)|0;c[13402]=rj(xa,1,125302,0)|0;c[13401]=rj(xa,1,125140,0)|0;c[13403]=rj(xa,1,125307,0)|0;c[13404]=rj(xa,1,116779,0)|0;c[13395]=0;c[13407]=0;c[13371]=rj(xa,0,125201,0)|0;D=am(xa,116785,1)|0;xl(D,160878,280,1)|0;Bj(D,118472,118486)|0;A=~~+h[(c[ya+16>>2]|0)+16>>3];B=~~+h[(c[za+16>>2]|0)+16>>3];w=(c[(c[wa>>2]|0)+116>>2]&1|0)==0;x=w?ya:za;w=w?za:ya;D=Xf(D,w)|0;E=Xf(xa,x)|0;if(G){s=0;u=0;while(1){g=d+(u+e<<2)|0;while(1){m=c[g>>2]|0;g=m+16|0;l=c[g>>2]|0;if(!(a[l+112>>0]|0)){l=g;break}else g=l+116|0}if((c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0)==(w|0))g=Yf(xa,D,E,m)|0;else g=Yf(xa,E,D,m)|0;l=c[l>>2]|0;c[l+120>>2]=g;if(!s)if((a[l+44>>0]|0)==0?(a[l+84>>0]|0)==0:0)c[(c[g+16>>2]|0)+120>>2]=m;else g=0;else g=s;u=u+1|0;if((u|0)==(f|0))break;else s=g}if(g)F=g;else Da=58}else Da=58;if((Da|0)==58)F=Sj(xa,D,E,0,1)|0;Cj(F,c[13413]|0,116789)|0;y=c[C>>2]|0;c[y+144>>2]=c[(c[wa>>2]|0)+144>>2];c[y+188>>2]=xa;mt(xa,j);tf(xa);xh(xa,0);sg(xa,0);bh(xa,0);y=w+16|0;m=c[y>>2]|0;l=c[x+16>>2]|0;z=D+16|0;s=c[z>>2]|0;w=s+16|0;u=c[E+16>>2]|0;x=u+16|0;g=c[(c[C>>2]|0)+192>>2]|0;if(g){p=+(A|0);q=+(~~((+h[w>>3]+ +h[x>>3])*.5)|0);o=+(B|0);n=+(~~((+h[m+16>>3]-+h[m+96>>3]+ +h[l+16>>3]+ +h[l+88>>3])*.5)|0);m=s+24|0;l=u+24|0;do{do if((g|0)!=(D|0))if((g|0)==(E|0)){h[l>>3]=o;h[x>>3]=q;break}else{h[(c[g+16>>2]|0)+24>>3]=n;break}else{h[m>>3]=p;h[w>>3]=q}while(0);g=c[(c[g+16>>2]|0)+164>>2]|0}while((g|0)!=0)}Vh(xa);Ff(xa,0);Qq(xa);l=c[y>>2]|0;g=c[z>>2]|0;n=+h[l+24>>3];if(!(c[(c[wa>>2]|0)+116>>2]&1)){o=n-+h[g+24>>3];g=g+16|0}else{o=n+ +h[g+16>>3];g=g+24|0}n=+h[l+16>>3]-+h[g>>3];if(G){y=Aa+16|0;z=Aa+32|0;A=Aa+48|0;B=Aa+56|0;C=0;do{g=d+(C+e<<2)|0;while(1){m=c[g>>2]|0;g=m+16|0;l=c[g>>2]|0;if(!(a[l+112>>0]|0))break;else g=l+116|0}j=c[l+120>>2]|0;x=j+16|0;l=c[x>>2]|0;do if(!((j|0)==(F|0)&(c[l+120>>2]|0)==0)){u=c[c[l+8>>2]>>2]|0;w=u+4|0;l=$r(m,c[w>>2]|0)|0;c[l+8>>2]=c[u+8>>2];j=c[(c[wa>>2]|0)+116>>2]&1;G=u+16|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];M=+h[k>>3];G=u+24|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];L=+h[k>>3];j=(j|0)==0;h[l+16>>3]=n+(j?M:L);h[l+24>>3]=o+(j?L:-M);c[l+12>>2]=c[u+12>>2];j=c[(c[wa>>2]|0)+116>>2]&1;G=u+32|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];M=+h[k>>3];G=u+40|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];L=+h[k>>3];j=(j|0)==0;h[l+32>>3]=n+(j?M:L);h[l+40>>3]=o+(j?L:-M);d:do if((c[w>>2]|0)>0){s=0;while(1){j=c[l>>2]|0;m=j+(s<<4)|0;E=c[u>>2]|0;G=c[(c[wa>>2]|0)+116>>2]&1;D=E+(s<<4)|0;a[k>>0]=a[D>>0];a[k+1>>0]=a[D+1>>0];a[k+2>>0]=a[D+2>>0];a[k+3>>0]=a[D+3>>0];a[k+4>>0]=a[D+4>>0];a[k+5>>0]=a[D+5>>0];a[k+6>>0]=a[D+6>>0];a[k+7>>0]=a[D+7>>0];M=+h[k>>3];E=E+(s<<4)+8|0;a[k>>0]=a[E>>0];a[k+1>>0]=a[E+1>>0];a[k+2>>0]=a[E+2>>0];a[k+3>>0]=a[E+3>>0];a[k+4>>0]=a[E+4>>0];a[k+5>>0]=a[E+5>>0];a[k+6>>0]=a[E+6>>0];a[k+7>>0]=a[E+7>>0];L=+h[k>>3];G=(G|0)==0;h[m>>3]=n+(G?M:L);h[j+(s<<4)+8>>3]=o+(G?L:-M);c[Aa>>2]=c[m>>2];c[Aa+4>>2]=c[m+4>>2];c[Aa+8>>2]=c[m+8>>2];c[Aa+12>>2]=c[m+12>>2];m=s+1|0;if((m|0)>=(c[w>>2]|0))break;G=c[l>>2]|0;j=G+(m<<4)|0;D=c[u>>2]|0;E=c[(c[wa>>2]|0)+116>>2]&1;Fa=D+(m<<4)|0;a[k>>0]=a[Fa>>0];a[k+1>>0]=a[Fa+1>>0];a[k+2>>0]=a[Fa+2>>0];a[k+3>>0]=a[Fa+3>>0];a[k+4>>0]=a[Fa+4>>0];a[k+5>>0]=a[Fa+5>>0];a[k+6>>0]=a[Fa+6>>0];a[k+7>>0]=a[Fa+7>>0];M=+h[k>>3];D=D+(m<<4)+8|0;a[k>>0]=a[D>>0];a[k+1>>0]=a[D+1>>0];a[k+2>>0]=a[D+2>>0];a[k+3>>0]=a[D+3>>0];a[k+4>>0]=a[D+4>>0];a[k+5>>0]=a[D+5>>0];a[k+6>>0]=a[D+6>>0];a[k+7>>0]=a[D+7>>0];L=+h[k>>3];E=(E|0)==0;h[j>>3]=n+(E?M:L);h[G+(m<<4)+8>>3]=o+(E?L:-M);c[y>>2]=c[j>>2];c[y+4>>2]=c[j+4>>2];c[y+8>>2]=c[j+8>>2];c[y+12>>2]=c[j+12>>2];j=s+2|0;G=c[l>>2]|0;E=G+(j<<4)|0;m=c[u>>2]|0;D=c[(c[wa>>2]|0)+116>>2]&1;Fa=m+(j<<4)|0;a[k>>0]=a[Fa>>0];a[k+1>>0]=a[Fa+1>>0];a[k+2>>0]=a[Fa+2>>0];a[k+3>>0]=a[Fa+3>>0];a[k+4>>0]=a[Fa+4>>0];a[k+5>>0]=a[Fa+5>>0];a[k+6>>0]=a[Fa+6>>0];a[k+7>>0]=a[Fa+7>>0];M=+h[k>>3];m=m+(j<<4)+8|0;a[k>>0]=a[m>>0];a[k+1>>0]=a[m+1>>0];a[k+2>>0]=a[m+2>>0];a[k+3>>0]=a[m+3>>0];a[k+4>>0]=a[m+4>>0];a[k+5>>0]=a[m+5>>0];a[k+6>>0]=a[m+6>>0];a[k+7>>0]=a[m+7>>0];L=+h[k>>3];D=(D|0)==0;h[E>>3]=n+(D?M:L);h[G+(j<<4)+8>>3]=o+(D?L:-M);c[z>>2]=c[E>>2];c[z+4>>2]=c[E+4>>2];c[z+8>>2]=c[E+8>>2];c[z+12>>2]=c[E+12>>2];s=s+3|0;E=c[u>>2]|0;j=c[wa>>2]|0;G=c[j+116>>2]&1;D=E+(s<<4)|0;a[k>>0]=a[D>>0];a[k+1>>0]=a[D+1>>0];a[k+2>>0]=a[D+2>>0];a[k+3>>0]=a[D+3>>0];a[k+4>>0]=a[D+4>>0];a[k+5>>0]=a[D+5>>0];a[k+6>>0]=a[D+6>>0];a[k+7>>0]=a[D+7>>0];M=+h[k>>3];E=E+(s<<4)+8|0;a[k>>0]=a[E>>0];a[k+1>>0]=a[E+1>>0];a[k+2>>0]=a[E+2>>0];a[k+3>>0]=a[E+3>>0];a[k+4>>0]=a[E+4>>0];a[k+5>>0]=a[E+5>>0];a[k+6>>0]=a[E+6>>0];a[k+7>>0]=a[E+7>>0];L=+h[k>>3];G=(G|0)==0;h[A>>3]=n+(G?M:L);h[B>>3]=o+(G?L:-M);_o(j+16|0,Aa);if((s|0)>=(c[w>>2]|0))break d}}while(0);l=c[(c[g>>2]|0)+96>>2]|0;if(!l)break;j=c[(c[x>>2]|0)+96>>2]|0;Fa=c[(c[wa>>2]|0)+116>>2]&1;G=j+56|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];M=+h[k>>3];j=j+64|0;a[k>>0]=a[j>>0];a[k+1>>0]=a[j+1>>0];a[k+2>>0]=a[j+2>>0];a[k+3>>0]=a[j+3>>0];a[k+4>>0]=a[j+4>>0];a[k+5>>0]=a[j+5>>0];a[k+6>>0]=a[j+6>>0];a[k+7>>0]=a[j+7>>0];L=+h[k>>3];Fa=(Fa|0)==0;h[l+56>>3]=n+(Fa?M:L);h[l+64>>3]=o+(Fa?L:-M);Fa=c[(c[g>>2]|0)+96>>2]|0;a[Fa+81>>0]=1;_s(b,Fa)}while(0);C=C+1|0}while((C|0)!=(f|0))}c[13435]=c[va>>2];c[13439]=c[H>>2];c[13440]=c[I>>2];c[13413]=c[N>>2];c[13414]=c[O>>2];c[13427]=c[P>>2];c[13426]=c[Q>>2];c[13425]=c[R>>2];c[13451]=c[S>>2];c[13443]=c[T>>2];c[13428]=c[U>>2];c[13438]=c[V>>2];c[13447]=c[W>>2];c[13446]=c[X>>2];c[13445]=c[Y>>2];c[13450]=c[Z>>2];c[13444]=c[_>>2];c[13429]=c[$>>2];c[13376]=c[aa>>2];c[13377]=c[ba>>2];c[13378]=c[ca>>2];c[13396]=c[da>>2];c[13389]=c[ea>>2];c[13390]=c[fa>>2];c[13391]=c[ga>>2];c[13393]=c[ha>>2];c[13394]=c[ia>>2];c[13397]=c[ja>>2];c[13400]=c[ka>>2];c[13398]=c[la>>2];c[13399]=c[ma>>2];c[13402]=c[na>>2];c[13401]=c[oa>>2];c[13403]=c[pa>>2];c[13404]=c[qa>>2];c[13395]=c[ra>>2];c[13407]=c[sa>>2];c[13371]=c[ua>>2];c[13362]=c[ta>>2];pB(va);uf(xa);dk(xa)|0;break a}while(0);Mf(za,ya,d,e,f,j)}else Da=4;while(0);if((Da|0)==4?(c[12481]|0)==0:0){c[12481]=1;dj(0,116639,Ba)|0;Ba=ok(za)|0;Da=(hk(b)|0)!=0;Fa=ok(ya)|0;c[Ca>>2]=Ba;c[Ca+4>>2]=Da?160891:160894;c[Ca+8>>2]=Fa;dj(3,116745,Ca)|0}i=Ea;return}function Lf(a,b,d,e,f,g,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0;o=i;i=i+32|0;p=o;Of(p,a,b,e,0,f);c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];c[g+16>>2]=c[p+16>>2];c[g+20>>2]=c[p+20>>2];c[g+24>>2]=c[p+24>>2];c[g+28>>2]=c[p+28>>2];m=+h[g>>3];n=+h[g+16>>3];c[g+48>>2]=4;if(!(j<<24>>24))ds(d,f,2,g,0);else cs(d,f,2,g,0);b=g+52|0;d=c[b>>2]|0;l=+h[g+56+(d+-1<<5)+24>>3];p=c[e+16>>2]|0;k=+h[p+24>>3]+ +h[(c[(c[a+16>>2]|0)+196>>2]|0)+(c[p+232>>2]<<6)+24>>3];if(m<n&l<k){c[b>>2]=d+1;h[g+56+(d<<5)>>3]=m;h[g+56+(d<<5)+8>>3]=l;h[g+56+(d<<5)+16>>3]=n;h[g+56+(d<<5)+24>>3]=k}i=o;return}function Mf(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var l=0,m=0.0,n=0,o=0.0,p=0,q=0,r=0.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.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0,O=0;O=i;i=i+160|0;N=O;b=c[b+16>>2]|0;G=c[(c[e+(f<<2)>>2]|0)+16>>2]|0;H=G+16|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];I=+h[k>>3];H=G+24|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];M=+h[k>>3];H=b+16|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];L=+h[k>>3];H=b+24|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];L=I+L;M=M+ +h[k>>3];H=c[d+16>>2]|0;F=G+56|0;a[k>>0]=a[F>>0];a[k+1>>0]=a[F+1>>0];a[k+2>>0]=a[F+2>>0];a[k+3>>0]=a[F+3>>0];a[k+4>>0]=a[F+4>>0];a[k+5>>0]=a[F+5>>0];a[k+6>>0]=a[F+6>>0];a[k+7>>0]=a[F+7>>0];I=+h[k>>3];G=G+64|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];K=+h[k>>3];G=H+16|0;a[k>>0]=a[G>>0];a[k+1>>0]=a[G+1>>0];a[k+2>>0]=a[G+2>>0];a[k+3>>0]=a[G+3>>0];a[k+4>>0]=a[G+4>>0];a[k+5>>0]=a[G+5>>0];a[k+6>>0]=a[G+6>>0];a[k+7>>0]=a[G+7>>0];J=+h[k>>3];H=H+24|0;a[k>>0]=a[H>>0];a[k+1>>0]=a[H+1>>0];a[k+2>>0]=a[H+2>>0];a[k+3>>0]=a[H+3>>0];a[k+4>>0]=a[H+4>>0];a[k+5>>0]=a[H+5>>0];a[k+6>>0]=a[H+6>>0];a[k+7>>0]=a[H+7>>0];J=I+J;K=K+ +h[k>>3];if((g|0)<=1){if((g|0)>0){m=0.0;I=0.0;l=4}}else{I=+h[b+80>>3];m=I*.5;I=I/+(g+-1|0);l=4}if((l|0)==4){l=(j&-9|0)==2;n=N+8|0;o=(L*2.0+J)/3.0;p=N+16|0;q=N+24|0;r=(L+J*2.0)/3.0;s=N+32|0;t=N+40|0;u=N+48|0;v=N+56|0;w=N+64|0;x=N+72|0;y=N+80|0;z=N+88|0;A=N+96|0;B=N+104|0;C=N+112|0;D=N+120|0;E=N+128|0;F=N+136|0;G=N+144|0;H=N+152|0;m=M-m;d=0;while(1){b=c[e+(d+f<<2)>>2]|0;h[N>>3]=L;h[n>>3]=M;if(l){h[p>>3]=o;h[q>>3]=m;h[s>>3]=r;h[t>>3]=m;h[u>>3]=J;h[v>>3]=K;j=4}else{h[p>>3]=L;h[q>>3]=M;h[s>>3]=o;h[t>>3]=m;h[u>>3]=o;h[v>>3]=m;h[w>>3]=o;h[x>>3]=m;h[y>>3]=r;h[z>>3]=m;h[A>>3]=r;h[B>>3]=m;h[C>>3]=r;h[D>>3]=m;h[E>>3]=J;h[F>>3]=K;h[G>>3]=J;h[H>>3]=K;j=10}as(b,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0,N,j,49896);d=d+1|0;if((d|0)==(g|0))break;else m=I+m}}i=O;return}function Nf(a,b,d,e,f,g,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0;o=i;i=i+32|0;p=o;Of(p,a,b,e,0,f);c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];c[g+12>>2]=c[p+12>>2];c[g+16>>2]=c[p+16>>2];c[g+20>>2]=c[p+20>>2];c[g+24>>2]=c[p+24>>2];c[g+28>>2]=c[p+28>>2];m=+h[g>>3];n=+h[g+16>>3];c[g+48>>2]=1;if(!(j<<24>>24))ds(d,f,2,g,0);else cs(d,f,2,g,0);b=g+52|0;d=c[b>>2]|0;l=+h[g+56+(d+-1<<5)+8>>3];p=c[e+16>>2]|0;k=+h[p+24>>3]-+h[(c[(c[a+16>>2]|0)+196>>2]|0)+(c[p+232>>2]<<6)+24>>3];if(m<n&k<l){c[b>>2]=d+1;h[g+56+(d<<5)>>3]=m;h[g+56+(d<<5)+8>>3]=k;h[g+56+(d<<5)+16>>3]=n;h[g+56+(d<<5)+24>>3]=l}i=o;return}function Of(b,d,e,f,g,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;i=i|0;var j=0.0,k=0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0;q=c[f+16>>2]|0;p=+h[q+16>>3];m=p-+h[q+88>>3]+-4.0;l=Uf(d,f,g,i,-1)|0;if(!l){n=~~(m+(m>=0.0?.5:-.5));k=c[e>>2]|0;k=(n|0)<(k|0)?n:k}else{k=Vf(d,f,l)|0;do if(!k){n=c[l+16>>2]|0;j=+h[n+16>>3]+ +h[n+240>>3];if(!(a[n+156>>0]|0)){j=j+ +(c[(c[d+16>>2]|0)+248>>2]|0)*.5;break}else{j=j+ +(c[e+8>>2]|0);break}}else j=+h[(c[k+16>>2]|0)+32>>3]+ +(c[e+8>>2]|0);while(0);o=j<m?j:m;k=~~(o+(o>=0.0?.5:-.5))}o=+(k|0);n=(a[q+156>>0]|0)==1;if(n?(c[q+104>>2]|0)!=0:0)m=p+10.0;else m=p+ +h[q+96>>3]+4.0;l=Uf(d,f,g,i,1)|0;if(!l){f=~~(m+(m>=0.0?.5:-.5));k=c[e+4>>2]|0;k=(f|0)>(k|0)?f:k}else{k=Vf(d,f,l)|0;do if(!k){f=c[l+16>>2]|0;j=+h[f+16>>3]-+h[f+88>>3];if(!(a[f+156>>0]|0)){j=j-+(c[(c[d+16>>2]|0)+248>>2]|0)*.5;break}else{j=j-+(c[e+8>>2]|0);break}}else j=+h[(c[k+16>>2]|0)+16>>3]-+(c[e+8>>2]|0);while(0);m=j>m?j:m;k=~~(m+(m>=0.0?.5:-.5))}j=+(k|0);if(n?(c[q+104>>2]|0)!=0:0){j=j-+h[q+96>>3];if(j<o)j=p}p=+h[q+24>>3];q=c[q+232>>2]|0;d=c[(c[d+16>>2]|0)+196>>2]|0;m=p-+h[d+(q<<6)+16>>3];p=p+ +h[d+(q<<6)+24>>3];h[b>>3]=o;h[b+8>>3]=m;h[b+16>>3]=j;h[b+24>>3]=p;return}function Pf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0;n=c[b+16>>2]|0;k=n+(e<<5)|0;j=+h[k>>3];l=n+(e<<5)+8|0;i=+h[l>>3];m=n+(e<<5)+16|0;g=+h[m>>3];n=n+(e<<5)+24|0;f=+h[n>>3];if(j==g){d=c[(c[d+16>>2]|0)+196>>2]|0;o=e+1|0;j=+(c[b>>2]|0);i=+h[(c[(c[c[d+(o<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[d+(o<<6)+24>>3];g=+(c[b+4>>2]|0);f=+h[(c[(c[c[d+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[d+(e<<6)+16>>3];h[k>>3]=j;h[l>>3]=i;h[m>>3]=g;h[n>>3]=f}h[a>>3]=j;h[a+8>>3]=i;h[a+16>>3]=g;h[a+24>>3]=f;return}function Qf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+32|0;m=r;k=Sf(b,-1)|0;b=Sf(b,1)|0;if(!((k|0)!=0?(ks(k)|0)==0:0))q=3;do if((q|0)==3){if((b|0)!=0?(ks(b)|0)==0:0)break;k=Tf(d,-1)|0;b=Tf(d,1)|0;if((k|0)!=0?(ks(k)|0)==0:0)break;if((b|0)!=0?(ks(b)|0)==0:0)break;b=e+52|0;if((c[b>>2]|0)>0){k=0;do{p=e+56+(k<<5)|0;c[m>>2]=c[p>>2];c[m+4>>2]=c[p+4>>2];c[m+8>>2]=c[p+8>>2];c[m+12>>2]=c[p+12>>2];c[m+16>>2]=c[p+16>>2];c[m+20>>2]=c[p+20>>2];c[m+24>>2]=c[p+24>>2];c[m+28>>2]=c[p+28>>2];bs(a,m);k=k+1|0}while((k|0)<(c[b>>2]|0))}n=a+80|0;d=c[n>>2]|0;o=d+1|0;k=o+g|0;p=k+-3|0;if((g|0)>0){b=0;do{e=1336+(b<<5)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];bs(a,m);b=b+1|0}while((b|0)!=(g|0))}b=c[f+52>>2]|0;if((b|0)>0)do{g=b;b=b+-1|0;e=f+56+(b<<5)|0;c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];c[m+8>>2]=c[e+8>>2];c[m+12>>2]=c[e+12>>2];c[m+16>>2]=c[e+16>>2];c[m+20>>2]=c[e+20>>2];c[m+24>>2]=c[e+24>>2];c[m+28>>2]=c[e+28>>2];bs(a,m)}while((g|0)>1);e=k+-2|0;if((e|0)>=(o|0)){g=c[a+84>>2]|0;do{k=g+(d<<5)|0;l=+h[k>>3];if(!(d-o&1)){b=g+(d<<5)+16|0;j=+h[b>>3];if(l>=j){f=~~((l+j)*.5);h[k>>3]=+(f+-8|0);h[b>>3]=+(f+8|0)}}else{b=g+(d<<5)+16|0;j=+h[b>>3];if(l+16.0>j){f=~~((l+j)*.5);h[k>>3]=+(f+-8|0);h[b>>3]=+(f+8|0)}}d=d+1|0}while((d|0)<(e|0))}b=c[n>>2]|0;if((b|0)>1){n=c[a+84>>2]|0;g=b+-1|0;m=0;do{k=n+(m<<5)|0;d=m;m=m+1|0;e=n+(m<<5)|0;if(!((d|0)<(o|0)|(d|0)>(p|0))?(d-o&1|0)==0:0){j=+h[k>>3]+16.0;b=n+(m<<5)+16|0;if(j>+h[b>>3])h[b>>3]=j;j=+h[n+(d<<5)+16>>3]+-16.0;if(j<+h[e>>3])h[e>>3]=j}else q=31;if(((q|0)==31?(q=0,(d|0)<(p|0)&(m|0)>=(o|0)):0)?(m-o&1|0)==0:0){j=+h[n+(m<<5)+16>>3];if(+h[k>>3]+16.0>j)h[k>>3]=j+-16.0;b=n+(d<<5)+16|0;j=+h[e>>3];if(+h[b>>3]+-16.0<j)h[b>>3]=j+16.0}}while((m|0)!=(g|0))}}while(0);i=r;return}function Rf(b,d){b=b|0;d=d|0;var e=0.0,f=0,g=0.0,i=0,j=0,k=0,l=0,m=0;f=c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0;b=f+16|0;a:do if((a[(c[b>>2]|0)+156>>0]|0)==1){l=d+84|0;k=d+80|0;i=0;d=f;do{if((Eb[c[49900>>2]&31](d)|0)<<24>>24)break a;j=c[k>>2]|0;b:do if((i|0)<(j|0)){f=c[l>>2]|0;e=+h[(c[b>>2]|0)+24>>3];d=i;while(1){if(!(+h[f+(d<<5)+8>>3]>e)){i=d;break b}d=d+1|0;if((d|0)>=(j|0)){i=d;break}}}while(0);if((i|0)>=(j|0))break a;d=c[l>>2]|0;b=c[b>>2]|0;do if(!(+h[d+(i<<5)+24>>3]<+h[b+24>>3])){g=+h[d+(i<<5)>>3];f=~~g;e=+h[d+(i<<5)+16>>3];if(!(c[b+104>>2]|0)){j=~~((g+e)*.5);h[b+16>>3]=+(j|0);h[b+88>>3]=+(j-f|0);h[b+96>>3]=+(~~e-j|0);break}else{d=~~e;j=b+96|0;m=~~(e+ +h[j>>3]);h[b+16>>3]=+(d|0);h[b+88>>3]=+(d-f|0);h[j>>3]=+(m-d|0);break}}while(0);d=c[c[b+180>>2]>>2]|0;d=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;b=d+16|0}while((a[(c[b>>2]|0)+156>>0]|0)==1)}while(0);return}function Sf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]&3;i=c[(c[(c[((d|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+180>>2]|0;e=c[i>>2]|0;if(!e)d=0;else{h=c[(c[(c[((d|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;d=0;g=0;do{f=c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do if((_(f-h|0,b)|0)>=1){a=c[e+16>>2]|0;if(!(c[a+8>>2]|0)){a=c[a+116>>2]|0;if(!a)break;if(!(c[(c[a+16>>2]|0)+8>>2]|0))break}if((d|0)!=0?(_((c[(c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,b)|0)<=0:0)break;d=e}while(0);g=g+1|0;e=c[i+(g<<2)>>2]|0}while((e|0)!=0)}return d|0}function Tf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a>>2]&3;i=c[(c[(c[((d|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+172>>2]|0;e=c[i>>2]|0;if(!e)d=0;else{h=c[(c[(c[((d|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;d=0;g=0;do{f=c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;do if((_(f-h|0,b)|0)>=1){a=c[e+16>>2]|0;if(!(c[a+8>>2]|0)){a=c[a+116>>2]|0;if(!a)break;if(!(c[(c[a+16>>2]|0)+8>>2]|0))break}if((d|0)!=0?(_((c[(c[(c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-f|0,b)|0)<=0:0)break;d=e}while(0);g=g+1|0;e=c[i+(g<<2)>>2]|0}while((e|0)!=0)}return d|0}function Uf(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=c[d+16>>2]|0;h=c[q+232>>2]|0;d=c[(c[b+16>>2]|0)+196>>2]|0;q=c[q+236>>2]|0;b=q+g|0;a:do if((b|0)>-1){p=c[d+(h<<6)>>2]|0;m=d+(h<<6)+4|0;n=(f|0)==0;o=(e|0)!=0;while(1){if((b|0)>=(p|0)){d=0;break a}d=c[(c[m>>2]|0)+(b<<2)>>2]|0;k=c[d+16>>2]|0;switch(a[k+156>>0]|0){case 0:break a;case 1:{if(c[k+104>>2]|0)break a;break}default:{}}l=(c[k+236>>2]|0)>(q|0);if((c[k+184>>2]|0)!=1)break a;b:do if(n)r=17;else{j=0;h=c[c[k+180>>2]>>2]|0;i=f;while(1){h=c[((c[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0;i=c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0;if((h|0)==(i|0)){r=17;break b}h=c[h+16>>2]|0;i=c[i+16>>2]|0;if(l^(c[h+236>>2]|0)>(c[i+236>>2]|0))break b;if((c[h+184>>2]|0)!=1){r=17;break b}if(!(a[h+156>>0]|0)){r=17;break b}if((c[i+184>>2]|0)!=1){r=17;break b}if(!(a[i+156>>0]|0)){r=17;break b}j=j+1|0;if((j|0)>=2){r=17;break}else{h=c[c[h+180>>2]>>2]|0;i=c[c[i+180>>2]>>2]|0}}}while(0);c:do if((r|0)==17){r=0;if(!(o&(c[k+176>>2]|0)==1))break a;j=0;i=c[c[k+172>>2]>>2]|0;h=e;while(1){i=c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0;h=c[((c[h>>2]&3|0)==3?h:h+48|0)+40>>2]|0;if((i|0)==(h|0))break a;i=c[i+16>>2]|0;h=c[h+16>>2]|0;if(l^(c[i+236>>2]|0)>(c[h+236>>2]|0))break c;if((c[i+176>>2]|0)!=1)break a;if(!(a[i+156>>0]|0))break a;if((c[h+176>>2]|0)!=1)break a;if(!(a[h+156>>0]|0))break a;j=j+1|0;if((j|0)>=2)break a;else{i=c[c[i+172>>2]>>2]|0;h=c[c[h+172>>2]>>2]|0}}}while(0);b=b+g|0;if((b|0)<=-1){d=0;break a}}}else d=0;while(0);return d|0}function Vf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,i=0,j=0,k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0;d=c[d+16>>2]|0;if(!(a[d+156>>0]|0)){j=c[d+212>>2]|0;i=j}else{j=c[(c[(c[c[d+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;g=c[j>>2]&3;i=c[(c[(c[((g|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;j=c[(c[(c[((g|0)==3?j:j+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0}g=c[e+16>>2]|0;if(!(a[g+156>>0]|0)){p=c[g+212>>2]|0;p=(p|0)==(b|0)?0:p;return ((p|0)==(i|0)|((p|0)==0|(p|0)==(j|0))?0:p)|0}e=c[(c[(c[c[g+180>>2]>>2]|0)+16>>2]|0)+116>>2]|0;f=c[e>>2]&3;d=c[(c[(c[((f|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;d=(d|0)==(b|0)?0:d;if(!((((!((d|0)==(i|0)|((d|0)==0|(d|0)==(j|0)))?(k=c[d+16>>2]|0,l=+h[g+16>>3],+h[k+16>>3]<=l):0)?l<=+h[k+32>>3]:0)?(m=+h[g+24>>3],+h[k+24>>3]<=m):0)?m<=+h[k+40>>3]:0)){d=c[(c[(c[((f|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0;d=(d|0)==(b|0)?0:d;if(((!((d|0)==(i|0)|((d|0)==0|(d|0)==(j|0)))?(p=c[d+16>>2]|0,n=+h[g+16>>3],+h[p+16>>3]<=n):0)?n<=+h[p+32>>3]:0)?(o=+h[g+24>>3],+h[p+24>>3]<=o):0)d=o<=+h[p+40>>3]?d:0;else d=0}return d|0}function Wf(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,g=0.0,i=0.0;d=c[(c[(c[a>>2]|0)+16>>2]|0)+96>>2]|0;a=c[(c[(c[b>>2]|0)+16>>2]|0)+96>>2]|0;b=(a|0)!=0;if(d)if(b?(e=+h[d+24>>3],f=+h[d+32>>3],g=+h[a+24>>3],i=+h[a+32>>3],!(e>g)):0)if(!(e<g))if(f>i)a=-1;else a=f<i&1;else a=1;else a=-1;else a=b&1;return a|0}function Xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e;a=Xk(a,ok(b)|0,1)|0;xl(a,160855,304,1)|0;Ej(b,a)|0;if((kr(b)|0)==2){f=b+16|0;b=aq((pA(c[c[(c[f>>2]|0)+104>>2]>>2]|0)|0)+3|0)|0;c[d>>2]=c[c[(c[f>>2]|0)+104>>2]>>2];Oz(b,116795,d)|0;Bj(a,124829,b)|0}i=e;return a|0}function Yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=Sj(a,b,c,0,1)|0;xl(b,161165,176,1)|0;Ej(d,b)|0;return b|0}function Zf(a){a=a|0;var b=0,d=0,e=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;d=c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0;e=c[d+232>>2]|0;a=c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;b=c[a+232>>2]|0;if((e|0)<=(b|0))if((e|0)<(b|0))a=1;else a=(c[d+236>>2]|0)<(c[a+236>>2]|0)&1;else a=0;return a|0}function _f(b){b=b|0;b=c[b+16>>2]|0;if((a[b+156>>0]|0)==1)if((c[b+176>>2]|0)>1)b=1;else b=(c[b+184>>2]|0)>1&1;else b=0;return b|0}function $f(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+8|0;f=d;h=(c[a+16>>2]|0)+180|0;g=(c[b+16>>2]|0)+172|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];b=qg(a,f,b,e)|0;i=d;return b|0}function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;e=d+8|0;f=d;h=(c[a+16>>2]|0)+188|0;g=(c[b+16>>2]|0)+196|0;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];b=qg(a,f,b,e)|0;i=d;return b|0}function bg(a){a=a|0;var b=0,d=0,e=0;e=a+48|0;d=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[d+180>>2]|0;d=c[d+184>>2]|0;if(!b)b=aq((d<<2)+8|0)|0;else b=cq(b,(d<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+180>>2]=b;b=(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+184|0;d=c[b>>2]|0;c[b>>2]=d+1;c[(c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+180>>2]|0)+(d<<2)>>2]=a;e=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;c[(c[e+180>>2]|0)+(c[e+184>>2]<<2)>>2]=0;e=a+-48|0;d=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;b=c[d+172>>2]|0;d=c[d+176>>2]|0;if(!b)b=aq((d<<2)+8|0)|0;else b=cq(b,(d<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0)+172>>2]=b;b=(c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0)+176|0;d=c[b>>2]|0;c[b>>2]=d+1;c[(c[(c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0)+172>>2]|0)+(d<<2)>>2]=a;e=c[(c[((c[a>>2]&3|0)==2?a:e)+40>>2]|0)+16>>2]|0;c[(c[e+172>>2]|0)+(c[e+176>>2]<<2)>>2]=0;return a|0}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=a+4|0;g=c[f>>2]|0;a:do if((g|0)>0){h=c[a>>2]|0;e=0;while(1){d=h+(e<<2)|0;if((c[d>>2]|0)==(b|0))break;e=e+1|0;if((e|0)>=(g|0))break a}g=g+-1|0;c[f>>2]=g;c[d>>2]=c[h+(g<<2)>>2];c[(c[a>>2]|0)+(g<<2)>>2]=0}while(0);return}function dg(a){a=a|0;if(!a)Ia(116800,116810,117,116819);else{cg((c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+180|0,a);cg((c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+172|0,a);return}}function eg(a){a=a|0;var b=0,d=0,e=0;e=a+48|0;d=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;b=c[d+204>>2]|0;d=c[d+208>>2]|0;if(!b)b=aq((d<<2)+8|0)|0;else b=cq(b,(d<<2)+8|0)|0;c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+204>>2]=b;b=(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+208|0;d=c[b>>2]|0;c[b>>2]=d+1;c[(c[(c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0)+204>>2]|0)+(d<<2)>>2]=a;a=c[(c[((c[a>>2]&3|0)==3?a:e)+40>>2]|0)+16>>2]|0;c[(c[a+204>>2]|0)+(c[a+208>>2]<<2)>>2]=0;return}function fg(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0;g=f+204|0;f=f+208|0;b=c[f>>2]|0;d=c[g>>2]|0;a:do if((b|0)<=0)if(!d){b=aq((b<<2)+8|0)|0;h=7}else h=5;else{e=0;while(1){if((c[d+(e<<2)>>2]|0)==(a|0))break a;e=e+1|0;if((e|0)>=(b|0)){h=5;break}}}while(0);if((h|0)==5){b=cq(d,(b<<2)+8|0)|0;h=7}if((h|0)==7){c[g>>2]=b;e=c[f>>2]|0;h=e+1|0;c[f>>2]=h;c[b+(e<<2)>>2]=a;c[(c[g>>2]|0)+(h<<2)>>2]=0}return}function gg(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=$p(96)|0;g=m+48|0;c[g>>2]=c[g>>2]|3;c[m>>2]=c[m>>2]&-4|2;h=$p(176)|0;n=m+16|0;c[n>>2]=h;c[((c[m>>2]&3|0)==3?m:g)+40>>2]=d;j=m+-48|0;c[((c[m>>2]&3|0)==2?m:j)+40>>2]=e;a[h+112>>0]=1;if(!f){c[h+156>>2]=1;b[h+154>>1]=1;b[h+168>>1]=1;b[h+170>>1]=1}else{c[m>>2]=c[m>>2]&15|c[f>>2]&-16;c[g>>2]=c[g>>2]&15|c[f>>2]&-16;l=f+16|0;i=c[l>>2]|0;b[h+168>>1]=b[i+168>>1]|0;b[h+154>>1]=b[i+154>>1]|0;c[h+156>>2]=c[i+156>>2];b[h+170>>1]=b[i+170>>1]|0;d=c[((c[m>>2]&3|0)==3?m:g)+40>>2]|0;e=c[f>>2]&3;k=f+48|0;if((d|0)!=(c[((e|0)==3?f:k)+40>>2]|0)){g=f+-48|0;if((d|0)==(c[((e|0)==2?f:g)+40>>2]|0)){h=h+16|0;d=i+56|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}}else{h=h+16|0;d=i+16|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));g=f+-48|0}d=c[((c[m>>2]&3|0)==2?m:j)+40>>2]|0;e=c[f>>2]&3;if((d|0)!=(c[((e|0)==2?f:g)+40>>2]|0)){if((d|0)==(c[((e|0)==3?f:k)+40>>2]|0)){h=(c[n>>2]|0)+56|0;d=(c[l>>2]|0)+16|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}}else{h=(c[n>>2]|0)+56|0;d=(c[l>>2]|0)+56|0;e=h+40|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0))}d=(c[l>>2]|0)+172|0;if(!(c[d>>2]|0))c[d>>2]=m;c[(c[n>>2]|0)+116>>2]=f}return m|0}function hg(a,b,c){a=a|0;b=b|0;c=c|0;return bg(gg(a,b,c)|0)|0}function ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;a=(c[a+16>>2]|0)+192|0;f=c[a>>2]|0;d=c[b+16>>2]|0;c[d+164>>2]=f;e=f;if(f)c[(c[e+16>>2]|0)+168>>2]=b;c[a>>2]=b;c[d+168>>2]=0;if((e|0)==(b|0))Ia(116836,116810,215,116852);else return}function jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;if((a|0)==(b|0))Ia(116862,116810,220,116869);e=c[b+16>>2]|0;d=e+164|0;if(c[d>>2]|0)Ia(116882,116810,221,116869);f=(c[a+16>>2]|0)+164|0;c[d>>2]=c[f>>2];d=c[f>>2]|0;if(d)c[(c[d+16>>2]|0)+168>>2]=b;c[e+168>>2]=a;c[f>>2]=b;return}function kg(a,b){a=a|0;b=b|0;var d=0,e=0;e=(c[a+16>>2]|0)+192|0;a=c[e>>2]|0;if(!((a|0)==0|(a|0)==(b|0)))do a=c[(c[a+16>>2]|0)+164>>2]|0;while(!((a|0)==0|(a|0)==(b|0)));if(!a)Ia(116901,116810,231,116922);a=c[b+16>>2]|0;b=c[a+164>>2]|0;d=b;a=a+168|0;if(b)c[(c[b+16>>2]|0)+168>>2]=c[a>>2];a=c[a>>2]|0;if(!a)c[e>>2]=d;else c[(c[a+16>>2]|0)+164>>2]=d;return}function lg(b){b=b|0;var d=0,e=0,f=0,g=0;d=$p(64)|0;c[d>>2]=c[d>>2]&-4|1;e=d+16|0;c[e>>2]=$p(304)|0;c[d+24>>2]=hl(b)|0;g=c[e>>2]|0;a[g+156>>0]=1;h[g+96>>3]=1.0;h[g+88>>3]=1.0;h[g+80>>3]=1.0;c[g+216>>2]=1;c[g+176>>2]=0;g=$p(20)|0;f=c[e>>2]|0;c[f+172>>2]=g;c[f+184>>2]=0;f=$p(20)|0;c[(c[e>>2]|0)+180>>2]=f;ig(b,d);b=(c[b+16>>2]|0)+232|0;c[b>>2]=(c[b>>2]|0)+1;return d|0}function mg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+48|0;f=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;e=c[f+188>>2]|0;f=c[f+192>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0)+188>>2]=e;e=(c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0)+192|0;f=c[e>>2]|0;c[e>>2]=f+1;c[(c[(c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0)+188>>2]|0)+(f<<2)>>2]=d;g=c[(c[((c[d>>2]&3|0)==3?d:g)+40>>2]|0)+16>>2]|0;c[(c[g+188>>2]|0)+(c[g+192>>2]<<2)>>2]=0;g=d+-48|0;f=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;e=c[f+196>>2]|0;f=c[f+200>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+196>>2]=e;e=(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+200|0;f=c[e>>2]|0;c[e>>2]=f+1;c[(c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+196>>2]|0)+(f<<2)>>2]=d;d=c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0;c[(c[d+196>>2]|0)+(c[d+200>>2]<<2)>>2]=0;a[(c[b+16>>2]|0)+240>>0]=1;a[(c[(wf(b)|0)+16>>2]|0)+240>>0]=1;return}function ng(a){a=a|0;var b=0,d=0;if(!a)Ia(116800,116810,269,116939);b=c[(c[a+16>>2]|0)+116>>2]|0;if((b|0)!=0?(d=(c[b+16>>2]|0)+172|0,(c[d>>2]|0)==(a|0)):0)c[d>>2]=0;cg((c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+188|0,a);cg((c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+196|0,a);return}function og(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=c[a+16>>2]|0;a=j+172|0;f=c[a>>2]|0;a:do if((f|0)==(d|0))dj(0,116956,k)|0;else{if(f)Ia(118798,116810,340,116977);c[a>>2]=d;h=c[d+16>>2]|0;f=h+170|0;a=b[j+170>>1]|0;if((e[f>>1]|0)<(a&65535))b[f>>1]=a;d=j+168|0;g=j+154|0;f=j+156|0;a=h;while(1){j=a+168|0;b[j>>1]=(e[j>>1]|0)+(e[d>>1]|0);j=a+154|0;b[j>>1]=(e[j>>1]|0)+(e[g>>1]|0);j=a+156|0;c[j>>2]=(c[j>>2]|0)+(c[f>>2]|0);a=c[a+172>>2]|0;if(!a)break a;a=c[a+16>>2]|0}}while(0);i=k;return}function pg(d){d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=d+16|0;d=c[m>>2]|0;f=c[d+172>>2]|0;if(f)do{l=f+16|0;j=c[l>>2]|0;i=j+168|0;k=(e[i>>1]|0)-(e[d+168>>1]|0)&65535;b[i>>1]=k;i=j+154|0;b[i>>1]=(e[i>>1]|0)-(e[d+154>>1]|0);i=j+156|0;c[i>>2]=(c[i>>2]|0)-(c[d+156>>2]|0);d=f;f=c[j+172>>2]|0;if(!(k<<16>>16)){g=c[d>>2]|0;k=d+48|0;i=(c[(c[((g&3|0)==3?d:k)+40>>2]|0)+16>>2]|0)+180|0;h=c[c[i>>2]>>2]|0;if(h){j=0;do{if((h|0)==(d|0)){cg(i,d);g=c[d>>2]|0}j=j+1|0;i=(c[(c[((g&3|0)==3?d:k)+40>>2]|0)+16>>2]|0)+180|0;h=c[(c[i>>2]|0)+(j<<2)>>2]|0}while((h|0)!=0)}k=d+-48|0;i=(c[(c[((g&3|0)==2?d:k)+40>>2]|0)+16>>2]|0)+172|0;h=c[c[i>>2]>>2]|0;if(h){j=0;do{if((h|0)==(d|0)){cg(i,d);g=c[d>>2]|0}j=j+1|0;i=(c[(c[((g&3|0)==2?d:k)+40>>2]|0)+16>>2]|0)+172|0;h=c[(c[i>>2]|0)+(j<<2)>>2]|0}while((h|0)!=0)}}a:do if((a[(c[l>>2]|0)+112>>0]|0)==1)do{d=c[(c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0;if((a[d+156>>0]|0)!=1)break a;if((c[d+184>>2]|0)!=1)break a;d=c[c[d+180>>2]>>2]|0;j=c[m>>2]|0;l=c[d+16>>2]|0;k=l+168|0;b[k>>1]=(e[k>>1]|0)-(e[j+168>>1]|0);k=l+154|0;b[k>>1]=(e[k>>1]|0)-(e[j+154>>1]|0);k=l+156|0;c[k>>2]=(c[k>>2]|0)-(c[j+156>>2]|0)}while((a[l+112>>0]|0)==1);while(0);d=c[m>>2]|0}while((f|0)!=0);c[d+172>>2]=0;return}function qg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[b+4>>2]|0;a:do if((f|0)>0?(g=c[e+4>>2]|0,(g|0)>0):0)if((f|0)<(g|0)){b=c[b>>2]|0;f=c[b>>2]|0;if(!f){f=0;break}else g=0;while(1){g=g+1|0;if((c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(d|0))break a;f=c[b+(g<<2)>>2]|0;if(!f){f=0;break}}}else{b=c[e>>2]|0;f=c[b>>2]|0;if(!f){f=0;break}else g=0;while(1){g=g+1|0;if((c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)==(a|0))break a;f=c[b+(g<<2)>>2]|0;if(!f){f=0;break}}}else f=0;while(0);return f|0}function rg(a){a=a|0;var 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;u=i;i=i+1040|0;r=u+4|0;t=u;s=u+8|0;p=a+16|0;a=c[p>>2]|0;d=b[a+236>>1]|0;a:do if(d<<16>>16<=(b[a+238>>1]|0)){o=d<<16>>16;b:while(1){m=c[a+196>>2]|0;h=m+(o<<6)|0;a=c[h>>2]|0;if((a|0)>0){j=m+(o<<6)+4|0;g=0;d=0;do{e=c[(c[j>>2]|0)+(g<<2)>>2]|0;f=e+16|0;if(c[(c[f>>2]|0)+112>>2]|0){if(!d){c[r>>2]=c[12648];d=ak(116990,r,0)|0}c[t>>2]=g;Oz(s,160852,t)|0;a=Xk(d,s,1)|0;xl(a,116993,24,1)|0;n=c[(c[f>>2]|0)+180>>2]|0;l=c[n>>2]|0;l=c[(c[(c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;n=c[n+4>>2]|0;n=c[(c[(c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;k=(l|0)>(n|0);a=c[a+16>>2]|0;c[a+12>>2]=k?n:l;c[a+16>>2]=k?l:n;c[a+20>>2]=e;a=c[h>>2]|0}g=g+1|0}while((g|0)<(a|0));n=d;if(n){if((ek(n)|0)>1?(q=Rk(n)|0,(q|0)!=0):0){a=Sk(n,q)|0;if(!a)a=0;else{e=0;j=q;while(1){h=j+16|0;g=a;do{d=c[g+16>>2]|0;f=c[h>>2]|0;if((c[d+16>>2]|0)>(c[f+12>>2]|0)){if((c[f+16>>2]|0)<=(c[d+12>>2]|0))Sj(n,j,g,0,1)|0}else{Sj(n,g,j,0,1)|0;e=1}g=Sk(n,g)|0}while((g|0)!=0);d=Sk(n,a)|0;if(!d){a=e;break}else{j=a;a=d}}}if(a){j=am(n,116998,1)|0;k=$p((ek(n)|0)<<2)|0;l=$p((ek(n)|0)<<2)|0;a=Rk(n)|0;if(a){h=m+(o<<6)+4|0;g=a;do{if((c[(c[g+16>>2]|0)+8>>2]|0)==0?(gk(n,g,1,1)|0)!=0:0){do if(Dg(n,g,j,l)|0){f=ek(j)|0;a=Rk(j)|0;c:do if(!a)a=0;else{d=0;while(1){while(1){if(!(gk(n,a,1,0)|0))break;a=Sk(j,a)|0;if(!a){a=d;break c}}e=d+1|0;c[k+(d<<2)>>2]=c[(c[a+16>>2]|0)+20>>2];Zk(j,a)|0;a=Lj(n,a)|0;if(a)do{m=a;a=Nj(n,a)|0;Uj(n,m)|0}while((a|0)!=0);a=Rk(j)|0;if(!a){a=e;break}else d=e}}while(0);if((a|0)!=(f|0))break b;_z(l,f,4,12);if((f|0)>0)a=0;else break;do{m=l+(a<<2)|0;e=c[k+(a<<2)>>2]|0;c[(c[e+16>>2]|0)+236>>2]=c[m>>2];c[(c[h>>2]|0)+(c[m>>2]<<2)>>2]=e;a=a+1|0}while((a|0)!=(f|0))}while(0);a=Rk(j)|0;if(a)do{m=a;a=Sk(j,a)|0;Zk(j,m)|0}while((a|0)!=0)}g=Sk(n,g)|0}while((g|0)!=0)}pB(k)}}dk(n)|0}}a=c[p>>2]|0;if((o|0)>=(b[a+238>>1]|0))break a;else o=o+1|0}Ia(117003,117013,265,117024)}while(0);i=u;return}function sg(d,e){d=d|0;e=e|0;var f=0,g=0,j=0.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.0;w=i;i=i+32|0;v=w+16|0;s=w;if(a[124827]|0)As();a[117038]=0;c[12482]=d;f=((fk(wf(d)|0)|0)<<2)+4|0;c[12483]=$p(f)|0;c[12484]=$p(f)|0;c[12485]=8;c[13361]=24;h[4167]=.995;f=zj(d,117039)|0;if((f|0)!=0?(j=+Xz(f),j>0.0):0){x=j*+(c[12485]|0);c[12485]=x<1.0?1:~~x;j=j*+(c[13361]|0);c[13361]=j<1.0?1:~~j}t=d+16|0;f=c[t>>2]|0;if(b[f+136>>1]&16){p=(b[f+238>>1]|0)+2|0;q=$p(p<<2)|0;Fg(d,q,p,0)|0;pB(q)}ni(d);Ji(d,1);xg(d);Gg(d);f=c[t>>2]|0;c[12486]=b[f+236>>1];c[12487]=b[f+238>>1];if((c[f+220>>2]|0)>0){m=0;k=0;do{c[f+192>>2]=c[(c[f+216>>2]|0)+(m<<2)>>2];if((m|0)>0?(n=b[f+236>>1]|0,o=b[f+238>>1]|0,n<<16>>16<=o<<16>>16):0){f=c[f+196>>2]|0;g=o<<16>>16;l=n<<16>>16;while(1){p=f+(l<<6)+4|0;q=f+(l<<6)|0;c[p>>2]=(c[p>>2]|0)+(c[q>>2]<<2);c[q>>2]=0;if((l|0)<(g|0))l=l+1|0;else break}}k=(Hg(d,0,e)|0)+k|0;m=m+1|0;f=c[t>>2]|0;g=f+220|0;l=c[g>>2]|0}while((m|0)<(l|0));p=g;m=l;if((m|0)<2){g=f;r=15}else{n=c[f+216>>2]|0;o=0;l=0;while(1){g=c[n+(o<<2)>>2]|0;if(l)c[(c[l+16>>2]|0)+164>>2]=g;q=c[g+16>>2]|0;c[q+168>>2]=l;l=c[q+164>>2]|0;if(l){g=l;while(1){l=c[(c[g+16>>2]|0)+164>>2]|0;if(!l)break;else g=l}}o=o+1|0;if((o|0)==(m|0))break;else l=g}c[p>>2]=1;c[f+192>>2]=c[n>>2];l=c[12486]&65535;b[f+236>>1]=l;g=c[12487]&65535;b[f+238>>1]=g;q=k}}else{g=f;k=0;r=15}if((r|0)==15){f=g;l=b[g+236>>1]|0;g=b[g+238>>1]|0;q=k}if(l<<16>>16<=g<<16>>16){p=c[22667]|0;o=l<<16>>16;while(1){g=c[f+196>>2]|0;l=c[g+(o<<6)+8>>2]|0;c[g+(o<<6)>>2]=l;m=c[g+(o<<6)+12>>2]|0;c[g+(o<<6)+4>>2]=m;a:do if((l|0)>0){k=0;while(1){n=c[m+(k<<2)>>2]|0;if(!n)break;c[(c[n+16>>2]|0)+236>>2]=k;k=k+1|0;if((k|0)>=(l|0))break a}if(a[124827]|0){g=ok(d)|0;f=c[(c[(c[t>>2]|0)+196>>2]|0)+(o<<6)>>2]|0;c[s>>2]=g;c[s+4>>2]=o;c[s+8>>2]=k;c[s+12>>2]=f;Bz(p,117047,s)|0;f=c[t>>2]|0;g=c[f+196>>2]|0}c[g+(o<<6)>>2]=k}while(0);if((o|0)<(b[f+238>>1]|0))o=o+1|0;else break}}do if((c[f+180>>2]|0)>=1){k=f;l=1;f=q;while(1){g=(Ig(c[(c[k+184>>2]|0)+(l<<2)>>2]|0,e)|0)+f|0;k=c[t>>2]|0;f=c[k+180>>2]|0;if((l|0)>=(f|0))break;else{l=l+1|0;f=g}}if((f|0)>0){f=zj(d,117097)|0;if((f|0)!=0?(Ls(f)|0)<<24>>24==0:0){q=g;break}vi(d);a[117038]=1;q=Hg(d,2,e)|0}else q=g}while(0);f=c[12484]|0;if(f){pB(f);c[12484]=0}f=c[12483]|0;if(f){pB(f);c[12483]=0}f=c[t>>2]|0;if((c[f+180>>2]|0)>=1){g=1;while(1){vg(c[(c[f+184>>2]|0)+(g<<2)>>2]|0);f=c[t>>2]|0;if((g|0)<(c[f+180>>2]|0))g=g+1|0;else break}}g=b[f+236>>1]|0;if(g<<16>>16<=(b[f+238>>1]|0)){k=f;l=f;o=g<<16>>16;while(1){f=c[k+196>>2]|0;if((c[f+(o<<6)>>2]|0)>0){k=l;n=0;do{m=(c[(c[f+(o<<6)+4>>2]|0)+(n<<2)>>2]|0)+16|0;g=c[m>>2]|0;c[g+236>>2]=n;f=c[g+188>>2]|0;if((f|0)!=0?(u=c[f>>2]|0,(u|0)!=0):0){l=u;f=0;do{k=l+16|0;if((a[(c[k>>2]|0)+112>>0]|0)==4){ng(l);pB(c[k>>2]|0);pB(l);g=c[m>>2]|0;f=f+-1|0}f=f+1|0;l=c[(c[g+188>>2]|0)+(f<<2)>>2]|0}while((l|0)!=0);k=c[t>>2]|0}n=n+1|0;f=c[k+196>>2]|0}while((n|0)<(c[f+(o<<6)>>2]|0));g=k}else g=l;f=c[f+(o<<6)+56>>2]|0;if(!f)f=k;else{pB(c[f+8>>2]|0);pB(f);g=c[t>>2]|0;f=g}if((o|0)<(b[f+238>>1]|0)){k=f;l=g;o=o+1|0}else break}}if(a[124827]|0){u=c[22667]|0;d=ok(d)|0;x=+Bs();c[v>>2]=d;c[v+4>>2]=q;h[v+8>>3]=x;Bz(u,117108,v)|0}i=w;return}function tg(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;h=a+16|0;a=c[h>>2]|0;f=c[a+268>>2]|0;if(((f|0)!=0?(g=b[a+236>>1]|0,g<<16>>16<=(b[a+238>>1]|0)):0)?(d=g<<16>>16,c[f+(d<<2)>>2]=c[c[(c[a+196>>2]|0)+(d<<6)+4>>2]>>2],e=c[h>>2]|0,g<<16>>16<(b[e+238>>1]|0)):0)do{d=d+1|0;c[(c[e+268>>2]|0)+(d<<2)>>2]=c[c[(c[e+196>>2]|0)+(d<<6)+4>>2]>>2];e=c[h>>2]|0}while((d|0)<(b[e+238>>1]|0));return}function ug(a){a=a|0;var b=0,d=0;tg(a);d=a+16|0;a=c[d>>2]|0;if((c[a+180>>2]|0)>=1){b=1;while(1){ug(c[(c[a+184>>2]|0)+(b<<2)>>2]|0);a=c[d>>2]|0;if((b|0)>=(c[a+180>>2]|0))break;else b=b+1|0}}return}function vg(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=a+16|0;d=c[g>>2]|0;if((c[d+180>>2]|0)>=1){e=1;while(1){vg(c[(c[d+184>>2]|0)+(e<<2)>>2]|0);d=c[g>>2]|0;if((e|0)<(c[d+180>>2]|0))e=e+1|0;else break}}e=c[d+268>>2]|0;a:do if((e|0)!=0?(f=b[d+236>>1]|0,f<<16>>16<=(b[d+238>>1]|0)):0){f=f<<16>>16;while(1){i=c[e+(f<<2)>>2]|0;h=Jg(a,i,-1)|0;i=Jg(a,i,1)|0;c[(c[(c[g>>2]|0)+268>>2]|0)+(f<<2)>>2]=h;j=c[(c[(c[(wf(a)|0)+16>>2]|0)+196>>2]|0)+(f<<6)+4>>2]|0;h=c[(c[h+16>>2]|0)+236>>2]|0;d=c[g>>2]|0;e=c[d+196>>2]|0;c[e+(f<<6)+4>>2]=j+(h<<2);c[e+(f<<6)>>2]=(c[(c[i+16>>2]|0)+236>>2]|0)+1-h;if((f|0)>=(b[d+238>>1]|0))break a;e=c[d+268>>2]|0;f=f+1|0}}while(0);return}function wg(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c[d>>2]&3;j=c[((g|0)==2?d:d+-48|0)+40>>2]|0;h=c[(c[j+16>>2]|0)+188>>2]|0;a:do if((h|0)!=0?(e=c[h>>2]|0,(e|0)!=0):0){l=d+48|0;i=c[((g|0)==3?d:l)+40>>2]|0;f=0;while(1){f=f+1|0;if((c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)==(i|0))break;e=c[h+(f<<2)>>2]|0;if(!e){m=15;break a}}og(d,e);f=(c[d+16>>2]|0)+172|0;if(!(c[f>>2]|0))c[f>>2]=e;e=c[e+16>>2]|0;if((a[e+112>>0]|0)==4?(k=e+116|0,(c[k>>2]|0)==0):0)c[k>>2]=d;f=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;e=c[f+204>>2]|0;f=c[f+208>>2]|0;if(!e)e=aq((f<<2)+8|0)|0;else e=cq(e,(f<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0)+204>>2]=e;b=(c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0)+208|0;k=c[b>>2]|0;c[b>>2]=k+1;c[(c[(c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0)+204>>2]|0)+(k<<2)>>2]=d;d=c[(c[((c[d>>2]&3|0)==3?d:l)+40>>2]|0)+16>>2]|0;c[(c[d+204>>2]|0)+(c[d+208>>2]<<2)>>2]=0}else m=15;while(0);if((m|0)==15){m=gg(j,c[((g|0)==3?d:d+48|0)+40>>2]|0,d)|0;l=c[d+16>>2]|0;d=c[m+16>>2]|0;a[d+112>>0]=(a[l+112>>0]|0)==4?4:3;c[d+96>>2]=c[l+96>>2];mg(b,m)}return}function xg(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=a+16|0;i=$p((b[(c[h>>2]|0)+238>>1]<<2)+8|0)|0;d=Rk(a)|0;if(d)do{e=i+(c[(c[d+16>>2]|0)+232>>2]<<2)|0;c[e>>2]=(c[e>>2]|0)+1;e=Lj(a,d)|0;if(e)do{j=c[e>>2]&3;f=c[(c[(c[((j|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;j=c[(c[(c[((j|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;k=(f|0)>(j|0);g=k?f:j;f=(k?j:f)+1|0;if((f|0)<(g|0))do{k=i+(f<<2)|0;c[k>>2]=(c[k>>2]|0)+1;f=f+1|0}while((f|0)<(g|0));e=Nj(a,e)|0}while((e|0)!=0);d=Sk(a,d)|0}while((d|0)!=0);d=$p((b[(c[h>>2]|0)+238>>1]<<6)+128|0)|0;k=c[h>>2]|0;c[k+196>>2]=d;e=b[k+236>>1]|0;if(e<<16>>16<=(b[k+238>>1]|0)){e=e<<16>>16;while(1){j=i+(e<<2)|0;k=c[j>>2]|0;c[d+(e<<6)>>2]=k;c[d+(e<<6)+8>>2]=k;j=$p((c[j>>2]<<2)+4|0)|0;k=c[h>>2]|0;d=c[k+196>>2]|0;c[d+(e<<6)+4>>2]=j;c[d+(e<<6)+12>>2]=j;if((e|0)>=(b[k+238>>1]|0))break;else e=e+1|0}}pB(i);return}function yg(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+96|0;o=p+64|0;n=p+48|0;h=p+24|0;f=p;j=d+16|0;k=c[(c[j>>2]|0)+232>>2]|0;l=a+16|0;e=c[(c[l>>2]|0)+196>>2]|0;m=c[e+(k<<6)>>2]|0;do if((c[e+(k<<6)+8>>2]|0)>=1){c[(c[e+(k<<6)+4>>2]|0)+(m<<2)>>2]=d;c[(c[j>>2]|0)+236>>2]=m;e=c[l>>2]|0;f=c[e+196>>2]|0;a=f+(k<<6)|0;g=c[a>>2]|0;c[a>>2]=g+1;if((g|0)>=(c[f+(k<<6)+8>>2]|0))Ia(117202,117013,1346,117238);g=c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]|0;if((m|0)>(g|0)){d=ok(d)|0;n=c[(c[j>>2]|0)+236>>2]|0;o=c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]|0;c[h>>2]=1359;c[h+4>>2]=d;c[h+8>>2]=n;c[h+12>>2]=k;c[h+16>>2]=o;dj(1,117254,h)|0;break}a=b[e+236>>1]|0;e=b[e+238>>1]|0;if((k|0)<(a|0)|(k|0)>(e<<16>>16|0)){c[n>>2]=1364;c[n+4>>2]=k;c[n+8>>2]=a;c[n+12>>2]=e<<16>>16;dj(1,117327,n)|0;break}if(((c[f+(k<<6)+4>>2]|0)+(m<<2)|0)>>>0>((c[f+(k<<6)+12>>2]|0)+(g<<2)|0)>>>0){m=ok(d)|0;n=c[(c[l>>2]|0)+196>>2]|0;d=(c[n+(k<<6)+4>>2]|0)+(c[(c[j>>2]|0)+236>>2]<<2)|0;n=(c[n+(k<<6)+12>>2]|0)+(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(k<<6)+8>>2]<<2)|0;c[o>>2]=1370;c[o+4>>2]=k;c[o+8>>2]=m;c[o+12>>2]=d;c[o+16>>2]=k;c[o+20>>2]=k;c[o+24>>2]=n;dj(1,117388,o)|0}}else{n=ok(a)|0;o=ok(d)|0;c[f>>2]=1339;c[f+4>>2]=n;c[f+8>>2]=o;c[f+12>>2]=k;c[f+16>>2]=m;dj(1,117147,f)|0}while(0);i=p;return}function zg(d,e){d=d|0;e=e|0;var 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;r=i;i=i+16|0;m=r;n=d+16|0;o=Cs(c[(c[n>>2]|0)+232>>2]|0)|0;g=c[n>>2]|0;k=g+192|0;f=c[k>>2]|0;if(f)do{j=c[f+16>>2]|0;a[j+157>>0]=0;f=c[j+164>>2]|0}while((f|0)!=0);h=b[g+236>>1]|0;f=b[g+238>>1]|0;if(h<<16>>16<=f<<16>>16){j=f<<16>>16;g=c[g+196>>2]|0;f=h<<16>>16;while(1){c[g+(f<<6)>>2]=0;if((f|0)<(j|0))f=f+1|0;else break}}f=c[k>>2]|0;if(f){j=(e|0)==0;g=f;do{h=g+16|0;f=c[h>>2]|0;if((c[c[(j?f+172|0:f+180|0)>>2]>>2]|0)==0?(l=f+157|0,(a[l>>0]|0)==0):0){a[l>>0]=1;Es(o,g);f=Fs(o)|0;if(f)do{if((a[(c[f+16>>2]|0)+159>>0]|0)==7)ui(d,f,e,o);else{yg(d,f);Ag(o,f,e)}f=Fs(o)|0}while((f|0)!=0);f=c[h>>2]|0}g=c[f+164>>2]|0}while((g|0)!=0)}if(Fs(o)|0)dj(1,117500,m)|0;f=c[n>>2]|0;g=b[f+236>>1]|0;if(g<<16>>16<=(b[f+238>>1]|0)){l=g<<16>>16;while(1){g=c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0;a[g+(l<<6)+49>>0]=0;if((c[f+116>>2]&1|0)!=0?(p=c[f+196>>2]|0,q=c[p+(l<<6)>>2]|0,(q|0)>0):0){h=c[p+(l<<6)+4>>2]|0;j=q+-1|0;k=(j|0)/2|0;f=0;while(1){v=c[h+(f<<2)>>2]|0;s=c[h+(j-f<<2)>>2]|0;w=c[v+16>>2]|0;e=c[w+232>>2]|0;w=w+236|0;m=c[w>>2]|0;t=s+16|0;u=c[(c[t>>2]|0)+236>>2]|0;c[w>>2]=u;c[(c[g+(e<<6)+4>>2]|0)+(u<<2)>>2]=v;c[(c[t>>2]|0)+236>>2]=m;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(e<<6)+4>>2]|0)+(m<<2)>>2]=s;if((f|0)>=(k|0))break;g=c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0;f=f+1|0}f=c[n>>2]|0}if((l|0)<(b[f+238>>1]|0))l=l+1|0;else break}}if((wf(d)|0)==(d|0)?(Bg(0)|0)>0:0)Kg(d,0);Ds(o);i=r;return}function Ag(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=d+16|0;d=c[i>>2]|0;if(!e){if((c[d+184>>2]|0)>0){h=0;do{e=c[(c[d+180>>2]|0)+(h<<2)>>2]|0;f=e+-48|0;g=(c[(c[((c[e>>2]&3|0)==2?e:f)+40>>2]|0)+16>>2]|0)+157|0;if(!(a[g>>0]|0)){a[g>>0]=1;Es(b,c[((c[e>>2]&3|0)==2?e:f)+40>>2]|0);d=c[i>>2]|0}h=h+1|0}while((h|0)<(c[d+184>>2]|0))}}else if((c[d+176>>2]|0)>0){h=0;do{e=c[(c[d+172>>2]|0)+(h<<2)>>2]|0;f=e+48|0;g=(c[(c[((c[e>>2]&3|0)==3?e:f)+40>>2]|0)+16>>2]|0)+157|0;if(!(a[g>>0]|0)){a[g>>0]=1;Es(b,c[((c[e>>2]&3|0)==3?e:f)+40>>2]|0);d=c[i>>2]|0}h=h+1|0}while((h|0)<(c[d+176>>2]|0))}return}function Bg(d){d=d|0;var 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;y=i;i=i+16|0;w=y;x=(c[12482]|0)+16|0;d=c[x>>2]|0;e=b[d+236>>1]|0;if(e<<16>>16<(b[d+238>>1]|0)){h=d;d=0;v=e<<16>>16;while(1){f=c[h+196>>2]|0;if(!(a[f+(v<<6)+49>>0]|0)){s=c[f+(v<<6)+4>>2]|0;g=v+1|0;e=c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(g<<6)>>2]|0;if((c[12488]|0)>(e|0)){e=h;u=f}else{e=e+1|0;c[12488]=e;f=c[12489]|0;if(!f)e=aq(e<<2)|0;else e=cq(f,e<<2)|0;c[12489]=e;u=c[x>>2]|0;e=u;u=c[u+196>>2]|0}t=u+(g<<6)|0;if((c[t>>2]|0)>0){f=c[12489]|0;h=0;do{c[f+(h<<2)>>2]=0;h=h+1|0}while((h|0)<(c[t>>2]|0))}r=u+(v<<6)|0;f=c[r>>2]|0;if((f|0)>0){l=f;f=0;h=0;q=0;do{p=c[(c[(c[s+(q<<2)>>2]|0)+16>>2]|0)+180>>2]|0;j=c[p>>2]|0;if((h|0)>0){if(j){o=c[12489]|0;m=j;n=0;do{k=c[(c[(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if((k|0)<(h|0)){m=b[(c[m+16>>2]|0)+154>>1]|0;do{k=k+1|0;f=(_(c[o+(k<<2)>>2]|0,m)|0)+f|0}while((k|0)!=(h|0))}n=n+1|0;m=c[p+(n<<2)>>2]|0}while((m|0)!=0);m=23}}else m=23;if((m|0)==23){m=0;if(j){l=c[12489]|0;k=0;do{o=c[(c[(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;h=(o|0)>(h|0)?o:h;o=l+(o<<2)|0;c[o>>2]=(c[o>>2]|0)+(b[(c[j+16>>2]|0)+154>>1]|0);k=k+1|0;j=c[p+(k<<2)>>2]|0}while((j|0)!=0);l=c[r>>2]|0}}q=q+1|0}while((q|0)<(l|0));if((l|0)>0){k=c[u+(v<<6)+4>>2]|0;j=0;do{h=c[(c[k+(j<<2)>>2]|0)+16>>2]|0;if(a[h+145>>0]|0){s=h+180|0;c[w>>2]=c[s>>2];c[w+4>>2]=c[s+4>>2];f=(Lg(w,1)|0)+f|0}j=j+1|0}while((j|0)!=(l|0))}}else f=0;k=c[t>>2]|0;if((k|0)>0){j=c[u+(g<<6)+4>>2]|0;l=0;do{h=c[(c[j+(l<<2)>>2]|0)+16>>2]|0;if(a[h+145>>0]|0){t=h+172|0;c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];f=(Lg(w,-1)|0)+f|0}l=l+1|0}while((l|0)!=(k|0))}c[u+(v<<6)+52>>2]=f;a[u+(v<<6)+49>>0]=1}else{f=c[f+(v<<6)+52>>2]|0;g=v+1|0;e=h}d=f+d|0;if((g|0)<(b[e+238>>1]|0)){h=e;v=g}else break}}else d=0;i=y;return d|0}function Cg(b){b=b|0;var d=0,e=0,f=0;e=c[b>>2]&3;d=c[(c[((e|0)==2?b:b+-48|0)+40>>2]|0)+16>>2]|0;if((a[d+156>>0]|0)==1)f=2;else f=(a[d+160>>0]|0)<2&1;d=c[(c[((e|0)==3?b:b+48|0)+40>>2]|0)+16>>2]|0;if((a[d+156>>0]|0)==1)d=2;else d=(a[d+160>>0]|0)<2&1;b=(c[b+16>>2]|0)+156|0;c[b>>2]=_(c[b>>2]|0,c[49960+(d*12|0)+(f<<2)>>2]|0)|0;return}function Dg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=c[b+16>>2]|0;c[g+8>>2]=1;g=c[(c[(c[g+20>>2]|0)+16>>2]|0)+236>>2]|0;c[e+((ek(d)|0)<<2)>>2]=g;Wk(d,b,1)|0;g=Lj(a,b)|0;if(!g)f=0;else{f=0;do{j=c[g>>2]&3;h=c[((j|0)==2?g:g+-48|0)+40>>2]|0;i=c[h+16>>2]|0;f=((c[(c[(c[i+20>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[(c[(c[((j|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)+f|0;if(!(c[i+8>>2]|0))f=(Dg(a,h,d,e)|0)+f|0;g=Nj(a,g)|0}while((g|0)!=0)}g=Oj(a,b)|0;if(g)do{i=c[g>>2]&3;h=c[((i|0)==3?g:g+48|0)+40>>2]|0;j=c[h+16>>2]|0;f=((c[(c[(c[(c[(c[((i|0)==2?g:g+-48|0)+40>>2]|0)+16>>2]|0)+20>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[j+20>>2]|0)+16>>2]|0)+236>>2]|0)&1)+f|0;if(!(c[j+8>>2]|0))f=(Dg(a,h,d,e)|0)+f|0;g=Pj(a,g)|0}while((g|0)!=0);return f|0}function Eg(a,b){a=a|0;b=b|0;return (c[a>>2]|0)-(c[b>>2]|0)|0}function Fg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0;l=a+16|0;g=c[l>>2]|0;if((c[g+180>>2]|0)>=1){i=1;while(1){f=Fg(c[(c[g+184>>2]|0)+(i<<2)>>2]|0,d,e,f)|0;g=c[l>>2]|0;if((i|0)>=(c[g+180>>2]|0))break;else i=i+1|0}}if((wf(a)|0)!=(a|0)){CB(d|0,0,e<<2|0)|0;g=Rk(a)|0;if(g)do{k=g+16|0;c[d+(c[(c[k>>2]|0)+232>>2]<<2)>>2]=1;i=Lj(a,g)|0;if(i)do{e=c[(c[k>>2]|0)+232>>2]|0;j=i+-48|0;if((e|0)<(c[(c[(c[((c[i>>2]&3|0)==2?i:j)+40>>2]|0)+16>>2]|0)+232>>2]|0))do{e=e+1|0;c[d+(e<<2)>>2]=1}while((e|0)<(c[(c[(c[((c[i>>2]&3|0)==2?i:j)+40>>2]|0)+16>>2]|0)+232>>2]|0));i=Nj(a,i)|0}while((i|0)!=0);g=Sk(a,g)|0}while((g|0)!=0);g=c[l>>2]|0;i=b[g+236>>1]|0;if(i<<16>>16<=(b[g+238>>1]|0)){i=i<<16>>16;while(1){if(!(c[d+(i<<2)>>2]|0)){if(!f)f=am(wf(a)|0,117916,1)|0;g=Xk(f,0,1)|0;xl(g,160855,304,1)|0;k=g+16|0;e=c[k>>2]|0;c[e+232>>2]=i;h[e+96>>3]=.5;h[e+88>>3]=.5;h[e+80>>3]=1.0;c[e+216>>2]=1;c[e+176>>2]=0;e=$p(20)|0;j=c[k>>2]|0;c[j+172>>2]=e;c[j+184>>2]=0;j=$p(20)|0;c[(c[k>>2]|0)+180>>2]=j;Wk(a,g,1)|0;g=c[l>>2]|0}if((i|0)<(b[g+238>>1]|0))i=i+1|0;else break}}}return f|0}function Gg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+8|0;f=h;d=c[13371]|0;a:do if((d|0)!=0|(c[13400]|0)!=0){d=Is(b,d,0)|0;if(d){switch(a[d>>0]|0){case 0:break a;case 111:{if(!(lA(d,117836)|0)){Zg(b,1);break a}break}case 105:{if(!(lA(d,122259)|0)){Zg(b,0);break a}break}default:{}}c[f>>2]=d;dj(1,117840,f)|0;break}d=bm(b)|0;if(d)do{if(!(yh(d)|0))Gg(d);d=cm(d)|0}while((d|0)!=0);if((c[13400]|0)!=0?(e=Rk(b)|0,(e|0)!=0):0)do{d=Is(e,c[13400]|0,0)|0;b:do if(d){switch(a[d>>0]|0){case 0:break b;case 111:{if(!(lA(d,117836)|0)){_g(b,e,1);break b}break}case 105:{if(!(lA(d,122259)|0)){_g(b,e,0);break b}break}default:{}}f=ok(e)|0;c[g>>2]=d;c[g+4>>2]=f;dj(1,117871,g)|0}while(0);e=Sk(b,e)|0}while((e|0)!=0)}while(0);i=h;return}function Hg(e,f,g){e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0.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;N=i;i=i+32|0;L=N;if((f|0)>1){j=Bg(0)|0;Wg(e);if((f|0)<3)x=3;else f=0}else{j=2147483647;x=3}if((x|0)==3){I=e+16|0;J=c[22667]|0;l=j;k=j;H=f;while(1){f=c[13361]|0;if((H|0)<2){f=(f|0)>4?4:f;if((wf(e)|0)==(e|0))zg(e,H);if(!H)Qg(e);Rg(e);k=Bg(0)|0;if((k|0)>(l|0))j=l;else{Wg(e);j=k}}else if((k|0)>(l|0)){Xg(e);j=l;k=l}else{j=l;k=l}a:do if((f|0)>0){G=0;l=0;while(1){if(a[124827]|0){c[L>>2]=H;c[L+4>>2]=G;c[L+8>>2]=l;c[L+12>>2]=k;c[L+16>>2]=j;Bz(J,117764,L)|0}F=l+1|0;if((k|0)==0|(l|0)>=(c[12485]|0))break a;D=((G|0)%4|0|0)<2;C=D&1;l=c[I>>2]|0;k=b[l+236>>1]|0;if(!(G&1)){E=1;m=(k<<16>>16<=(b[(c[(c[12482]|0)+16>>2]|0)+236>>1]|0)&1)+(k<<16>>16)|0;k=b[l+238>>1]|0}else{m=b[l+238>>1]|0;E=-1;m=((m<<16>>16>=(b[(c[(c[12482]|0)+16>>2]|0)+238>>1]|0))<<31>>31)+(m<<16>>16)|0;k=k<<16>>16}A=E+k|0;b:do if((m|0)!=(A|0)){B=(E|0)<0;k=m;while(1){w=c[12484]|0;z=c[l+196>>2]|0;y=c[z+(k<<6)+4>>2]|0;if((c[z+(k<<6)>>2]|0)>0){t=w+4|0;v=0;while(1){s=(c[y+(v<<2)>>2]|0)+16|0;r=c[s>>2]|0;if(B){q=c[r+180>>2]|0;l=c[q>>2]|0;if(!l)x=36;else{m=0;p=0;do{n=c[l+16>>2]|0;if((b[n+154>>1]|0)>0){c[w+(m<<2)>>2]=d[n+88>>0]|c[(c[(c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8;m=m+1|0}p=p+1|0;l=c[q+(p<<2)>>2]|0}while((l|0)!=0);x=35}}else{q=c[r+172>>2]|0;l=c[q>>2]|0;if(!l)x=36;else{m=0;p=0;do{n=c[l+16>>2]|0;if((b[n+154>>1]|0)>0){c[w+(m<<2)>>2]=d[n+48>>0]|c[(c[(c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)+16>>2]|0)+236>>2]<<8;m=m+1|0}p=p+1|0;l=c[q+(p<<2)>>2]|0}while((l|0)!=0);x=35}}c:do if((x|0)==35){x=0;switch(m|0){case 0:{x=36;break c}case 1:{h[r+240>>3]=+(c[w>>2]|0);break c}case 2:{h[r+240>>3]=+(((c[t>>2]|0)+(c[w>>2]|0)|0)/2|0|0);break c}default:{_z(w,m,4,12);l=(m|0)/2|0;if(m&1){h[(c[s>>2]|0)+240>>3]=+(c[w+(l<<2)>>2]|0);break c}p=c[w+(l<<2)>>2]|0;n=(c[w+(m+-1<<2)>>2]|0)-p|0;l=c[w+(l+-1<<2)>>2]|0;m=l-(c[w>>2]|0)|0;if((m|0)==(n|0)){h[(c[s>>2]|0)+240>>3]=+((l+p|0)/2|0|0);break c}else{u=+(((_(m,p)|0)+(_(l,n)|0)|0)/(m+n|0)|0|0);h[(c[s>>2]|0)+240>>3]=u;break c}}}}while(0);if((x|0)==36)h[r+240>>3]=-1.0;v=v+1|0;l=c[(c[I>>2]|0)+196>>2]|0;m=c[l+(k<<6)>>2]|0;if((v|0)>=(m|0)){t=l;v=m;break}}if((v|0)>0){l=0;s=0;do{r=c[(c[y+(s<<2)>>2]|0)+16>>2]|0;if((c[r+184>>2]|0)==0?(c[r+176>>2]|0)==0:0){do if((c[r+200>>2]|0)>0){q=c[r+196>>2]|0;m=c[q>>2]|0;m=c[((c[m>>2]&3|0)==3?m:m+48|0)+40>>2]|0;n=c[q+4>>2]|0;if(n){p=1;do{z=c[((c[n>>2]&3|0)==3?n:n+48|0)+40>>2]|0;m=(c[(c[z+16>>2]|0)+236>>2]|0)>(c[(c[m+16>>2]|0)+236>>2]|0)?z:m;p=p+1|0;n=c[q+(p<<2)>>2]|0}while((n|0)!=0)}o=+h[(c[m+16>>2]|0)+240>>3];if(!(o>=0.0)){m=1;break}h[r+240>>3]=o+1.0;m=0}else{if((c[r+192>>2]|0)<=0){m=1;break}q=c[r+188>>2]|0;m=c[q>>2]|0;m=c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0;n=c[q+4>>2]|0;if(n){p=1;do{z=c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0;m=(c[(c[z+16>>2]|0)+236>>2]|0)<(c[(c[m+16>>2]|0)+236>>2]|0)?z:m;p=p+1|0;n=c[q+(p<<2)>>2]|0}while((n|0)!=0)}o=+h[(c[m+16>>2]|0)+240>>3];if(!(o>0.0)){m=1;break}h[r+240>>3]=o+-1.0;m=0}while(0);l=(m|l&255)&255}s=s+1|0}while((s|0)!=(v|0));z=c[t+(k<<6)+4>>2]|0;w=(l&255|C|0)==0;l=0;y=z+(v<<2)|0;while(1){t=v;v=v+-1|0;d:do if(z>>>0<y>>>0){m=z;while(1){e:while(1){p=c[m>>2]|0;n=c[p+16>>2]|0;u=+h[n+240>>3];if(u<0.0){m=m+4|0;if(m>>>0<y>>>0)continue;else break d}s=0;while(1){r=s<<24>>24==0;while(1){m=m+4|0;if(m>>>0>=y>>>0)break d;if(r){x=67;break}q=c[m>>2]|0;if(!(c[(c[q+16>>2]|0)+212>>2]|0)){r=q;x=69;break}}if((x|0)==67){r=c[m>>2]|0;q=r}else if((x|0)==69)q=r;if(Mg(e,p,q)|0)continue e;r=c[r+16>>2]|0;o=+h[r+240>>3];if(o>=0.0)break;s=(c[r+212>>2]|0)==0?s:1}s=~~u;x=~~o;if((s|0)>(x|0)|D&(s|0)==(x|0))break}s=c[n+232>>2]|0;O=n+236|0;x=c[O>>2]|0;r=q+16|0;n=c[(c[r>>2]|0)+236>>2]|0;c[O>>2]=n;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(s<<6)+4>>2]|0)+(n<<2)>>2]=p;c[(c[r>>2]|0)+236>>2]=x;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(s<<6)+4>>2]|0)+(x<<2)>>2]=q;l=l+1|0}}while(0);if((t|0)<=1)break;else y=w?y+-4|0:y}if((l|0)!=0?(K=c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0,a[K+(k<<6)+49>>0]=0,(k|0)>0):0)a[K+(k+-1<<6)+49>>0]=0}}k=k+E|0;if((k|0)==(A|0))break b;l=c[I>>2]|0}}while(0);Kg(e,C^1);k=Bg(0)|0;if((k|0)>(j|0)){m=j;l=F}else{Wg(e);m=k;l=+(k|0)<+(j|0)*+h[4167]?0:F}G=G+1|0;if((G|0)>=(f|0)){j=m;break}else j=m}}while(0);H=H+1|0;if(!k){k=0;break}if((H|0)>=3)break;else l=j}if((k|0)>(j|0))Xg(e)}if((j|0)>0){Kg(e,0);K=Bg(0)|0}else K=j;f:do if((g|0)!=0&(f|0)>0){I=e+16|0;j=c[I>>2]|0;J=0;g:while(1){k=b[j+238>>1]|0;if(k<<16>>16>=(b[j+236>>1]|0)){n=j;H=k<<16>>16;while(1){k=c[n+196>>2]|0;a[k+(H<<6)+48>>0]=0;l=c[k+(H<<6)>>2]|0;if((l|0)>1){F=(H|0)>0;G=H+1|0;m=k;k=n;E=0;do{r=c[m+(H<<6)+4>>2]|0;A=c[r+(E<<2)>>2]|0;E=E+1|0;B=c[r+(E<<2)>>2]|0;C=A+16|0;v=c[C>>2]|0;w=v+236|0;x=c[w>>2]|0;D=B+16|0;q=c[D>>2]|0;y=c[q+236>>2]|0;if((x|0)>=(y|0))break g;do if(!(Mg(e,A,B)|0)){if(F){n=Ng(A,B)|0;p=Ng(B,A)|0}else{n=0;p=0}if((c[m+(G<<6)>>2]|0)>0){n=(Og(A,B)|0)+n|0;p=(Og(B,A)|0)+p|0}if((p|0)<=(n|0)?(M=a[v+156>>0]|0,M<<24>>24!=(a[q+156>>0]|0)):0){if((l|0)>0){k=0;j=0;m=0;do{O=(a[(c[(c[r+(m<<2)>>2]|0)+16>>2]|0)+156>>0]|0)==0&1;k=(O^1)+k|0;j=O+j|0;m=m+1|0}while((m|0)!=(l|0));m=M<<24>>24==0;m=(j|0)<(k|0)?(m?A:B):m?B:A;k=0;j=0;do{j=(c[r+(k<<2)>>2]|0)==(m|0)?k:j;k=k+1|0}while((k|0)!=(l|0));p=m}else{p=M<<24>>24==0?B:A;j=0}z=(a[(c[p+16>>2]|0)+156>>0]|0)==0&1;h:do if((j|0)>0){m=j;k=0;while(1){n=m;m=m+-1|0;if((a[(c[(c[r+(m<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(z|0)){t=k;break h}k=k+1|0;if((n|0)<=1){t=k;break}}}else t=0;while(0);k=j+1|0;i:do if((k|0)<(l|0)){m=0;while(1){if((a[(c[(c[r+(k<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(z|0)){s=m;break i}m=m+1|0;k=k+1|0;if((k|0)>=(l|0)){s=m;break}}}else s=0;while(0);r=c[v+232>>2]|0;c[w>>2]=y;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(y<<2)>>2]=A;c[(c[D>>2]|0)+236>>2]=x;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(x<<2)>>2]=B;r=c[I>>2]|0;m=c[r+196>>2]|0;l=c[m+(H<<6)>>2]|0;if((l|0)>0){k=c[m+(H<<6)+4>>2]|0;n=0;do{j=(c[k+(n<<2)>>2]|0)==(p|0)?n:j;n=n+1|0}while((n|0)!=(l|0))}j:do if((j|0)>0){n=c[m+(H<<6)+4>>2]|0;p=j;k=0;do{q=p;p=p+-1|0;if((a[(c[(c[n+(p<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(z|0))break j;k=k+1|0}while((q|0)>1)}else k=0;while(0);j=j+1|0;k:do if((j|0)<(l|0)){p=c[m+(H<<6)+4>>2]|0;n=j;j=0;do{if((a[(c[(c[p+(n<<2)>>2]|0)+16>>2]|0)+156>>0]|0)!=(z|0))break k;j=j+1|0;n=n+1|0}while((n|0)<(l|0))}else j=0;while(0);g=k-j|0;O=t-s|0;if((((g|0)>-1?g:0-g|0)|0)<=(((O|0)>-1?O:0-O|0)|0)){j=r;k=r;break}j=c[C>>2]|0;m=c[j+232>>2]|0;j=j+236|0;k=c[j>>2]|0;l=c[(c[D>>2]|0)+236>>2]|0;c[j>>2]=l;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(m<<6)+4>>2]|0)+(l<<2)>>2]=A;c[(c[D>>2]|0)+236>>2]=k;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(m<<6)+4>>2]|0)+(k<<2)>>2]=B;k=c[I>>2]|0;m=c[k+196>>2]|0;l=c[m+(H<<6)>>2]|0;j=k}}while(0)}while((E|0)<(l+-1|0))}else k=n;if((H|0)>(b[k+236>>1]|0)){n=k;H=H+-1|0}else break}}J=J+1|0;if((J|0)>=(f|0))break f}Ia(117510,117013,721,117828)}while(0);i=N;return K|0}function Ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;ri(a);Gg(a);Qg(a);Rg(a);d=Hg(a,2,b)|0;g=a+16|0;e=c[g>>2]|0;if((c[e+180>>2]|0)>=1){f=1;while(1){d=(Ig(c[(c[e+184>>2]|0)+(f<<2)>>2]|0,b)|0)+d|0;e=c[g>>2]|0;if((f|0)>=(c[e+180>>2]|0))break;else f=f+1|0}}tg(a);return d|0}function Jg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;if(!d)Ia(117551,117013,1023,117553);i=(e|0)<0;f=d;while(1){d=c[d+16>>2]|0;h=c[d+236>>2]|0;if(i){if((h|0)<=0){d=14;break}d=(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(c[d+232>>2]<<6)+4>>2]|0)+(h+-1<<2)|0}else d=(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(c[d+232>>2]<<6)+4>>2]|0)+(h+1<<2)|0;d=c[d>>2]|0;if(!d){d=14;break}g=c[d+16>>2]|0;if((_((c[g+236>>2]|0)-h|0,e)|0)<=0){d=10;break}if((a[g+156>>0]|0)==0?(ql(b,d)|0)!=0:0){f=d;continue}h=(Pg(b,d)|0)==0;f=h?f:d}if((d|0)==10)Ia(117562,117013,1029,117553);else if((d|0)==14)return f|0;return 0}function Kg(d,e){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,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=d+16|0;g=c[z>>2]|0;h=b[g+236>>1]|0;k=b[g+238>>1]|0;if(h<<16>>16<=k<<16>>16){i=k<<16>>16;f=c[g+196>>2]|0;j=h<<16>>16;while(1){a[f+(j<<6)+48>>0]=1;if((j|0)<(i|0))j=j+1|0;else break}}y=(e|0)!=0;a:do if(h<<16>>16<=k<<16>>16){b:while(1){f=0;x=h<<16>>16;while(1){i=c[g+196>>2]|0;h=i+(x<<6)+48|0;if(a[h>>0]|0){a[h>>0]=0;h=c[i+(x<<6)>>2]|0;c:do if((h|0)>1){u=(x|0)>0;v=x+1|0;w=x+-1|0;j=h;e=0;h=0;do{t=c[i+(x<<6)+4>>2]|0;l=c[t+(e<<2)>>2]|0;p=c[l+16>>2]|0;s=i+(v<<6)|0;r=j+-1|0;q=p;j=c[p+236>>2]|0;while(1){e=e+1|0;m=l;l=c[t+(e<<2)>>2]|0;k=l+16|0;o=q;q=c[k>>2]|0;p=j;j=c[q+236>>2]|0;if((p|0)>=(j|0))break b;if(!(Mg(d,m,l)|0)){if(u){i=Ng(m,l)|0;n=Ng(l,m)|0}else{i=0;n=0}if((c[s>>2]|0)>0){i=(Og(m,l)|0)+i|0;n=(Og(l,m)|0)+n|0}if((i|0)>(n|0)){g=n;break}if((i|0)==(n|0)&(y&(i|0)>0)){i=n;g=n;break}}if((e|0)>=(r|0))break c}t=c[o+232>>2]|0;c[o+236>>2]=j;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(t<<6)+4>>2]|0)+(j<<2)>>2]=m;c[(c[k>>2]|0)+236>>2]=p;c[(c[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(t<<6)+4>>2]|0)+(p<<2)>>2]=l;h=i-g+h|0;j=c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0;a[j+(x<<6)+49>>0]=0;g=c[z>>2]|0;i=c[g+196>>2]|0;a[i+(x<<6)+48>>0]=1;if((b[g+236>>1]|0)<(x|0)){a[j+(w<<6)+49>>0]=0;a[i+(w<<6)+48>>0]=1}if((b[g+238>>1]|0)>(x|0)){a[j+(v<<6)+49>>0]=0;a[i+(v<<6)+48>>0]=1}j=c[i+(x<<6)>>2]|0}while((e|0)<(j+-1|0))}else h=0;while(0);f=h+f|0}h=b[g+238>>1]|0;if((x|0)<(h<<16>>16|0))x=x+1|0;else break}if((f|0)<=0)break a;f=b[g+236>>1]|0;if(f<<16>>16>h<<16>>16)break a;else h=f}Ia(117510,117013,770,117536)}while(0);return}function Lg(a,d){a=a|0;d=d|0;var e=0,f=0.0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;n=(d|0)>0;m=c[a>>2]|0;d=c[m>>2]|0;a:do if(!d)d=0;else{k=d;d=0;l=0;do{l=l+1|0;e=k;k=c[m+(l<<2)>>2]|0;a=(k|0)==0;if(n){if(a)break a;j=c[(c[(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;g=c[e+16>>2]|0;f=+h[g+16>>3];g=g+154|0;i=k;e=l;do{a=c[i+16>>2]|0;if(+((c[(c[(c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-j|0)*(+h[a+16>>3]-f)<0.0)d=(_(b[a+154>>1]|0,b[g>>1]|0)|0)+d|0;e=e+1|0;i=c[m+(e<<2)>>2]|0}while((i|0)!=0)}else{if(a)break a;j=c[(c[(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;g=c[e+16>>2]|0;f=+h[g+56>>3];g=g+154|0;i=k;e=l;do{a=c[i+16>>2]|0;if(+((c[(c[(c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)-j|0)*(+h[a+56>>3]-f)<0.0)d=(_(b[a+154>>1]|0,b[g>>1]|0)|0)+d|0;e=e+1|0;i=c[m+(e<<2)>>2]|0}while((i|0)!=0)}}while((k|0)!=0)}while(0);return d|0}function Mg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=c[d+16>>2]|0;g=c[j+212>>2]|0;h=c[e+16>>2]|0;i=c[h+212>>2]|0;f=(g|0)!=(i|0);do if(!(a[117038]|0))if((i|0)==0|((g|0)==0|f^1))k=9;else{if((a[j+159>>0]|0)==7?(a[j+156>>0]|0)==1:0){f=0;break}if((a[h+159>>0]|0)==7?(a[h+156>>0]|0)==1:0){f=0;break}f=1}else if(f)f=1;else k=9;while(0);if((k|0)==9){g=c[b+16>>2]|0;f=c[(c[g+196>>2]|0)+(c[j+232>>2]<<6)+56>>2]|0;if(!f)f=0;else{j=(c[g+116>>2]&1|0)==0;k=_(c[f+4>>2]|0,c[(c[(j?d:e)+16>>2]|0)+284>>2]|0)|0;f=a[(c[f+8>>2]|0)+((c[(c[(j?e:d)+16>>2]|0)+284>>2]|0)+k)>>0]|0}}return f|0}function Ng(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[(c[d+16>>2]|0)+172>>2]|0;d=c[e>>2]|0;if(!d)d=0;else{m=c[(c[a+16>>2]|0)+172>>2]|0;k=c[m>>2]|0;l=(k|0)==0;a=d;d=0;do{j=b[(c[a+16>>2]|0)+154>>1]|0;g=c[(c[(c[((c[a>>2]&3|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!l){i=k;f=m;do{a=c[(c[(c[((c[i>>2]&3|0)==3?i:i+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if((a|0)<=(g|0)){if((a|0)==(g|0)?+h[(c[i+16>>2]|0)+16>>3]>+h[(c[(c[e>>2]|0)+16>>2]|0)+16>>3]:0)n=8}else n=8;if((n|0)==8){n=0;d=(_(b[(c[(c[f>>2]|0)+16>>2]|0)+154>>1]|0,j)|0)+d|0}f=f+4|0;i=c[f>>2]|0}while((i|0)!=0)}e=e+4|0;a=c[e>>2]|0}while((a|0)!=0)}return d|0}function Og(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[(c[d+16>>2]|0)+180>>2]|0;d=c[e>>2]|0;if(!d)d=0;else{m=c[(c[a+16>>2]|0)+180>>2]|0;k=c[m>>2]|0;l=(k|0)==0;a=d;d=0;do{j=b[(c[a+16>>2]|0)+154>>1]|0;g=c[(c[(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!l){i=k;f=m;do{a=c[(c[(c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if((a|0)<=(g|0)){if((a|0)==(g|0)?+h[(c[i+16>>2]|0)+56>>3]>+h[(c[(c[e>>2]|0)+16>>2]|0)+56>>3]:0)n=8}else n=8;if((n|0)==8){n=0;d=(_(b[(c[(c[f>>2]|0)+16>>2]|0)+154>>1]|0,j)|0)+d|0}f=f+4|0;i=c[f>>2]|0}while((i|0)!=0)}e=e+4|0;a=c[e>>2]|0}while((a|0)!=0)}return d|0}function Pg(b,d){b=b|0;d=d|0;var e=0,f=0;d=c[d+16>>2]|0;if(((a[d+156>>0]|0)==1?(c[d+176>>2]|0)==1:0)?(c[d+184>>2]|0)==1:0){d=c[d+180>>2]|0;while(1){d=c[d>>2]|0;e=c[d+16>>2]|0;if(!(a[e+112>>0]|0))break;else d=e+116|0}if(ql(b,d)|0)d=1;else f=7}else f=7;if((f|0)==7)d=0;return d|0}function Qg(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=d+16|0;e=c[k>>2]|0;f=b[e+236>>1]|0;if(f<<16>>16<=(b[e+238>>1]|0)){j=f<<16>>16;while(1){f=c[e+196>>2]|0;g=c[f+(j<<6)>>2]|0;if((g|0)>0){h=0;i=0;do{l=c[(c[(c[f+(j<<6)+4>>2]|0)+(i<<2)>>2]|0)+16>>2]|0;a[l+158>>0]=0;a[l+157>>0]=0;c[l+284>>2]=i;if((h|0)==0&(c[l+192>>2]|0)>0){h=$p(12)|0;c[h>>2]=g;c[h+4>>2]=g;c[h+8>>2]=$p(_(g,g)|0)|0;e=c[k>>2]|0;f=c[e+196>>2]|0;c[f+(j<<6)+56>>2]=h;g=c[f+(j<<6)>>2]|0;h=1}i=i+1|0}while((i|0)<(g|0));if((h|0)!=0&(g|0)>0){g=0;do{f=c[(c[f+(j<<6)+4>>2]|0)+(g<<2)>>2]|0;if(!(a[(c[f+16>>2]|0)+157>>0]|0)){Vg(d,f);e=c[k>>2]|0}g=g+1|0;f=c[e+196>>2]|0}while((g|0)<(c[f+(j<<6)>>2]|0))}}if((j|0)<(b[e+238>>1]|0))j=j+1|0;else break}}return}+function Ob(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function Pb(){return i|0}function Qb(a){a=a|0;i=a}function Rb(a,b){a=a|0;b=b|0;i=a;j=b}function Sb(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function Tb(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Ub(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Vb(a){a=a|0;C=a}function Wb(){return C|0}function Xb(a){a=a|0;c[10814]=a;return 0}function Yb(){return c[10814]|0}function Zb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+4|0;g=j;c[h>>2]=0;f=In()|0;Nn(f,43260);Nn(f,49820);cj(1)|0;bj(16)|0;e=Gk(a)|0;if(!e)a=0;else{a=0;do{if(!a){Jn(f,e,d)|0;Mn(f,e,b,h,g)|0}e=Gk(164137)|0;a=c[h>>2]|0}while((e|0)!=0)}i=j;return a|0}function _b(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0.0,l=0,m=0;e=i;i=i+1056|0;m=e+16|0;j=e+8|0;l=e;f=e+32|0;a=a+16|0;g=c[43940+(c[(c[a>>2]|0)+12>>2]<<2)>>2]|0;jj(g,97973)|0;c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];$b(g,m);k=+h[d+16>>3]-+h[d>>3];h[l>>3]=k>-1.0e-08&k<1.0e-08?0.0:k;Oz(f,97976,l)|0;ac(f,1);jj(g,f)|0;k=+h[d+24>>3]-+h[d+8>>3];h[j>>3]=k>-1.0e-08&k<1.0e-08?0.0:k;Oz(f,97976,j)|0;ac(f,1);jj(g,f)|0;bc(c[43940+(c[(c[a>>2]|0)+12>>2]<<2)>>2]|0,164137,c[b+8>>2]|0);i=e;return}function $b(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0.0,g=0;c=i;i=i+1040|0;e=c+8|0;g=c;d=c+16|0;f=+h[b>>3];h[g>>3]=f>-1.0e-08&f<1.0e-08?0.0:f;Oz(d,97976,g)|0;ac(d,1);jj(a,d)|0;f=+vq(+h[b+8>>3]);h[e>>3]=f>-1.0e-08&f<1.0e-08?0.0:f;Oz(d,97976,e)|0;ac(d,1);jj(a,d)|0;i=c;return}function ac(b,c){b=b|0;c=c|0;var d=0,e=0;d=jA(b,46)|0;if(!d){if(c){d=b+(pA(b)|0)|0;e=10}}else{while(1){b=d+1|0;if(!(a[b>>0]|0))break;else d=b}a:while(1){switch(a[d>>0]|0){case 46:{e=5;break a}case 48:break;default:{e=6;break a}}a[d>>0]=0;d=d+-1|0}if((e|0)==5)a[d>>0]=0;else if((e|0)==6)d=d+1|0;if(c)e=10}if((e|0)==10){a[d>>0]=32;a[d+1>>0]=0}return}function bc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+1040|0;h=f;g=f+8|0;j=pA(e)|0;c[h>>2]=d;c[h+4>>2]=j;Oz(g,98245,h)|0;jj(b,g)|0;jj(b,e)|0;e=b+4|0;d=c[e>>2]|0;if(d>>>0>=(c[b+8>>2]|0)>>>0){hj(b,1)|0;d=c[e>>2]|0}c[e>>2]=d+1;a[d>>0]=32;i=f;return}function cc(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+4|0;e=k;j=c[(c[d+16>>2]|0)+8>>2]|0;d=d+64|0;switch(c[d>>2]|0){case 0:{yq(j);break}case 1:{if(b[(c[j+16>>2]|0)+136>>1]&1)ct(j);break}case 4:case 5:case 6:{xq(j,e,f);h=c[e>>2]|0;f=c[f>>2]|0;e=c[d>>2]|0;d=oB(8240)|0;c[10997]=d;a:do switch(e|0){case 6:{b[d+8232>>1]=14;c[d+8236>>2]=98164;break}case 5:{b[d+8232>>1]=12;c[d+8236>>2]=98168;break}default:{d=zj(j,98152)|0;if(((d|0)!=0?(a[d>>0]|0)!=0:0)?(g=rc(d)|0,(g&65535)>10):0){e=c[10997]|0;b[e+8232>>1]=g;c[e+8236>>2]=d;break a}e=rc(98172)|0;g=c[10997]|0;b[g+8232>>1]=e;c[g+8236>>2]=98172}}while(0);e=j+16|0;d=c[e>>2]|0;if(!(c[d+180>>2]|0))c[c[10997]>>2]=0;else{d=et(j,0,123284,164137)|0;c[c[10997]>>2]=d;d=c[e>>2]|0}if(!(a[d+113>>0]&8))c[(c[10997]|0)+4>>2]=0;else{g=et(j,0,98176,164137)|0;c[(c[10997]|0)+4>>2]=g}g=et(j,1,123284,164137)|0;c[(c[10997]|0)+8>>2]=g;g=et(j,1,98176,164137)|0;c[(c[10997]|0)+12>>2]=g;g=et(j,2,123284,164137)|0;c[(c[10997]|0)+16>>2]=g;if(!f)c[(c[10997]|0)+20>>2]=0;else{g=et(j,2,98184,164137)|0;c[(c[10997]|0)+20>>2]=g}if(!h)c[(c[10997]|0)+24>>2]=0;else{h=et(j,2,98192,164137)|0;c[(c[10997]|0)+24>>2]=h}d=a[(c[e>>2]|0)+113>>0]|0;if(!(d&33))c[(c[10997]|0)+28>>2]=0;else{d=et(j,2,98176,164137)|0;c[(c[10997]|0)+28>>2]=d;d=a[(c[e>>2]|0)+113>>0]|0}if(!(d&2))c[(c[10997]|0)+32>>2]=0;else{d=et(j,2,98200,164137)|0;c[(c[10997]|0)+32>>2]=d;d=a[(c[e>>2]|0)+113>>0]|0}if(!(d&4)){c[(c[10997]|0)+36>>2]=0;d=0}else{d=et(j,2,98209,164137)|0;c[(c[10997]|0)+36>>2]=d;d=0}do{gj(44052+(d<<4)|0,1024,(c[10997]|0)+40+(d<<10)|0);d=d+1|0}while((d|0)!=8);break}default:{}}i=k;return}function dc(b){b=b|0;var d=0,e=0,f=0,g=0,i=0,j=0;i=c[(c[b+16>>2]|0)+8>>2]|0;if(!(c[11045]|0)){c[11045]=c[12680];c[11046]=9;c[11047]=17}j=i+64|0;f=(c[j>>2]|0)+8|0;g=c[f>>2]|0;c[f>>2]=44180;switch(c[b+64>>2]|0){case 2:{wq(b,i,b,0);break}case 3:{wq(b,i,b,1);break}case 1:case 0:{if(!(c[b+152>>2]&134217728))pm(i,b)|0;break}case 6:case 5:case 4:{d=c[11014]|0;if((d|0)==(c[11013]|0))e=i;else{e=c[c[10997]>>2]|0;if(!e){d=et(i,0,123284,164137)|0;c[c[10997]>>2]=d;d=c[11014]|0;e=c[c[10997]>>2]|0}if(d>>>0>=(c[11015]|0)>>>0){hj(44052,1)|0;d=c[11014]|0}a[d>>0]=0;f=c[11013]|0;c[11014]=f;Cj(i,e,f)|0;e=i}if(c[(c[i+16>>2]|0)+12>>2]|0){f=c[(c[10997]|0)+4>>2]|0;d=c[11030]|0;if(d>>>0>=(c[11031]|0)>>>0){hj(44116,1)|0;d=c[11030]|0}a[d>>0]=0;d=c[11029]|0;c[11030]=d;Cj(e,f,d)|0}Dj(e,98152,c[(c[10997]|0)+8236>>2]|0,164137)|0;kj(44052);kj(44068);kj(44084);kj(44100);kj(44116);kj(44132);kj(44148);kj(44164);pB(c[10997]|0);h[23]=1.0;h[27]=1.0;c[11001]=0;c[11005]=0;if(!(c[b+152>>2]&134217728))pm(i,b)|0;break}default:{}}c[(c[j>>2]|0)+8>>2]=g;return}function ec(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;d=c[c[10997]>>2]|0;b=c[11018]|0;if(b>>>0>=(c[11019]|0)>>>0){hj(44068,1)|0;b=c[11018]|0}a[b>>0]=0;b=c[11017]|0;c[11018]=b;Cj(e,d,b)|0;if(c[(c[e+16>>2]|0)+12>>2]|0){d=c[(c[10997]|0)+4>>2]|0;b=c[11034]|0;if(b>>>0>=(c[11035]|0)>>>0){hj(44132,1)|0;b=c[11034]|0}a[b>>0]=0;b=c[11033]|0;c[11034]=b;Cj(e,d,b)|0}h[24]=1.0;h[28]=1.0;c[11002]=0;c[11006]=0;return}function fc(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;b=c[11018]|0;if((b|0)!=(c[11017]|0)){d=c[(c[10997]|0)+8>>2]|0;if(b>>>0>=(c[11019]|0)>>>0){hj(44068,1)|0;b=c[11018]|0}a[b>>0]=0;b=c[11017]|0;c[11018]=b;Cj(e,d,b)|0}b=c[11034]|0;if((b|0)!=(c[11033]|0)){d=c[(c[10997]|0)+12>>2]|0;if(b>>>0>=(c[11035]|0)>>>0){hj(44132,1)|0;b=c[11034]|0}a[b>>0]=0;b=c[11033]|0;c[11034]=b;Cj(e,d,b)|0}h[31]=1.0;h[33]=1.0;c[11009]=0;c[11011]=0;return}function gc(b){b=b|0;var d=0,e=0;e=c[(c[b+16>>2]|0)+8>>2]|0;b=c[11018]|0;if((b|0)!=(c[11017]|0)){d=c[(c[10997]|0)+16>>2]|0;if(b>>>0>=(c[11019]|0)>>>0){hj(44068,1)|0;b=c[11018]|0}a[b>>0]=0;b=c[11017]|0;c[11018]=b;Cj(e,d,b)|0}b=c[11022]|0;if((b|0)!=(c[11021]|0)){d=c[(c[10997]|0)+24>>2]|0;if(b>>>0>=(c[11023]|0)>>>0){hj(44084,1)|0;b=c[11022]|0}a[b>>0]=0;b=c[11021]|0;c[11022]=b;Cj(e,d,b)|0}b=c[11026]|0;if((b|0)!=(c[11025]|0)){d=c[(c[10997]|0)+20>>2]|0;if(b>>>0>=(c[11027]|0)>>>0){hj(44100,1)|0;b=c[11026]|0}a[b>>0]=0;b=c[11025]|0;c[11026]=b;Cj(e,d,b)|0}b=c[11034]|0;if((b|0)!=(c[11033]|0)){d=c[(c[10997]|0)+28>>2]|0;if(b>>>0>=(c[11035]|0)>>>0){hj(44132,1)|0;b=c[11034]|0}a[b>>0]=0;b=c[11033]|0;c[11034]=b;Cj(e,d,b)|0}b=c[11038]|0;if((b|0)!=(c[11037]|0)){d=c[(c[10997]|0)+36>>2]|0;if(b>>>0>=(c[11039]|0)>>>0){hj(44148,1)|0;b=c[11038]|0}a[b>>0]=0;b=c[11037]|0;c[11038]=b;Cj(e,d,b)|0}b=c[11042]|0;if((b|0)!=(c[11041]|0)){d=c[(c[10997]|0)+32>>2]|0;if(b>>>0>=(c[11043]|0)>>>0){hj(44164,1)|0;b=c[11042]|0}a[b>>0]=0;b=c[11041]|0;c[11042]=b;Cj(e,d,b)|0}h[32]=1.0;h[34]=1.0;h[25]=1.0;h[26]=1.0;h[29]=1.0;h[30]=1.0;c[11010]=0;c[11012]=0;c[11003]=0;c[11004]=0;c[11007]=0;c[11008]=0;return}function hc(d,e,f){d=d|0;e=e|0;f=f|0;var g=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;u=i;i=i+1072|0;q=u+24|0;t=u+16|0;s=u+8|0;r=u;p=u+40|0;j=d+16|0;k=c[(c[j>>2]|0)+12>>2]|0;l=c[43940+(k<<2)>>2]|0;jj(l,98140)|0;d=f+4|0;v=+h[(c[d>>2]|0)+16>>3];h[q>>3]=v>-1.0e-08&v<1.0e-08?0.0:v;Oz(p,97976,q)|0;ac(p,1);jj(l,p)|0;bc(c[43940+(c[(c[j>>2]|0)+12>>2]<<2)>>2]|0,164137,c[c[d>>2]>>2]|0);nc((c[j>>2]|0)+16|0);bc(c[43940+(c[(c[j>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);m=a[f+48>>0]|0;m=m<<24>>24==108?-1:m<<24>>24==114&1;d=c[d>>2]|0;if(!d)g=0;else g=c[d+24>>2]&127;d=b[(c[10997]|0)+8232>>1]|0;if((d&65535)>14?(n=c[43992+((d&65535)+-15<<2)>>2]&g,o=44004+(k<<2)|0,(c[o>>2]|0)!=(n|0)):0){c[r>>2]=n;Oz(p,98143,r)|0;jj(l,p)|0;c[o>>2]=n}r=e+8|0;h[r>>3]=+h[f+24>>3]+ +h[r>>3];jj(l,98149)|0;c[q>>2]=c[e>>2];c[q+4>>2]=c[e+4>>2];c[q+8>>2]=c[e+8>>2];c[q+12>>2]=c[e+12>>2];$b(l,q);c[s>>2]=m;Oz(p,126064,s)|0;jj(l,p)|0;v=+h[f+32>>3];h[t>>3]=v>-1.0e-08&v<1.0e-08?0.0:v;Oz(p,97976,t)|0;ac(p,1);jj(l,p)|0;bc(c[43940+(c[(c[j>>2]|0)+12>>2]<<2)>>2]|0,164137,c[f>>2]|0);i=u;return}function ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0.0;m=i;i=i+1056|0;g=m+16|0;l=m+8|0;k=m;j=m+32|0;e=a+16|0;f=c[(c[e>>2]|0)+12>>2]|0;mc(a);nc((c[e>>2]|0)+16|0);bc(c[43940+(c[(c[e>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);if(!d){e=c[43940+(f<<2)>>2]|0;jj(e,98137)|0}else{if((d&-2|0)==2)pc(a,d,b,2);else{nc((c[e>>2]|0)+56|0);bc(c[43940+(c[(c[e>>2]|0)+12>>2]<<2)>>2]|0,98122,98067)}e=c[43940+(f<<2)>>2]|0;jj(e,98134)|0};c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];c[g+8>>2]=c[b+8>>2];c[g+12>>2]=c[b+12>>2];$b(e,g);n=+h[b+16>>3]-+h[b>>3];h[k>>3]=n>-1.0e-08&n<1.0e-08?0.0:n;Oz(j,97976,k)|0;ac(j,1);jj(e,j)|0;n=+h[b+24>>3]-+h[b+8>>3];h[l>>3]=n>-1.0e-08&n<1.0e-08?0.0:n;Oz(j,97976,l)|0;ac(j,1);jj(e,j)|0;i=m;return}function jc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;mc(a);f=a+16|0;nc((c[f>>2]|0)+16|0);bc(c[43940+(c[(c[f>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);if(!e)oc(a,112,b,d);else{if((e&-2|0)==2)pc(a,e,b,d);else{nc((c[f>>2]|0)+56|0);bc(c[43940+(c[(c[f>>2]|0)+12>>2]<<2)>>2]|0,98122,98067)}oc(a,80,b,d)}return}function kc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;mc(a);f=a+16|0;nc((c[f>>2]|0)+16|0);bc(c[43940+(c[(c[f>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);if(!g)oc(a,66,b,d);else{if((g&-2|0)==2)pc(a,g,b,d);else{nc((c[f>>2]|0)+56|0);bc(c[43940+(c[(c[f>>2]|0)+12>>2]<<2)>>2]|0,98122,98067)}oc(a,98,b,d)}return}function lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;mc(a);e=a+16|0;nc((c[e>>2]|0)+16|0);bc(c[43940+(c[(c[e>>2]|0)+12>>2]<<2)>>2]|0,107101,98067);oc(a,76,b,d);return}function mc(b){b=b|0;var d=0,e=0.0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+1184|0;g=o;f=o+24|0;m=o+8|0;gj(m,1024,o+152|0);l=b+16|0;b=c[l>>2]|0;e=+h[b+152>>3];d=184+(c[b+12>>2]<<3)|0;if(e!=+h[d>>3]){h[d>>3]=e;jj(m,98100)|0;h[g>>3]=+h[(c[l>>2]|0)+152>>3];Oz(f,98114,g)|0;ac(f,0);jj(m,f)|0;f=m+4|0;b=c[f>>2]|0;d=m+8|0;if(b>>>0>=(c[d>>2]|0)>>>0){hj(m,1)|0;b=c[f>>2]|0}c[f>>2]=b+1;a[b>>0]=41;b=c[f>>2]|0;if(b>>>0>=(c[d>>2]|0)>>>0){hj(m,1)|0;b=c[f>>2]|0}a[b>>0]=0;b=c[m>>2]|0;c[f>>2]=b;bc(c[43940+(c[(c[l>>2]|0)+12>>2]<<2)>>2]|0,98119,b);b=c[l>>2]|0}b=c[b+160>>2]|0;if(b){d=c[b>>2]|0;a:do if(d){j=m+4|0;k=m+8|0;while(1){b=b+4|0;switch(a[d>>0]|0){case 102:{if(lA(d,134460)|0)n=14;break}case 98:{if(lA(d,134442)|0)n=14;break}case 115:{if(lA(d,134447)|0)n=14;break}default:n=14}if((n|0)==14){n=0;jj(m,d)|0;while(1){f=d+1|0;if(!(a[d>>0]|0)){d=f;break}else d=f}if(a[d>>0]|0){f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){hj(m,1)|0;f=c[j>>2]|0}c[j>>2]=f+1;a[f>>0]=40;if(a[d>>0]|0){g=0;while(1){if(g){f=c[j>>2]|0;if(f>>>0>=(c[k>>2]|0)>>>0){hj(m,1)|0;f=c[j>>2]|0}c[j>>2]=f+1;a[f>>0]=44}jj(m,d)|0;f=d;while(1){d=f+1|0;if(!(a[f>>0]|0))break;else f=d}if(!(a[d>>0]|0))break;else g=g+1|0}}d=c[j>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){hj(m,1)|0;d=c[j>>2]|0}c[j>>2]=d+1;a[d>>0]=41}d=c[j>>2]|0;if(d>>>0>=(c[k>>2]|0)>>>0){hj(m,1)|0;d=c[j>>2]|0}a[d>>0]=0;g=c[m>>2]|0;c[j>>2]=g;bc(c[43940+(c[(c[l>>2]|0)+12>>2]<<2)>>2]|0,98119,g)}d=c[b>>2]|0;if(!d)break a}}while(0);kj(m)}i=o;return}function nc(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k+16|0;h=k;e=a[b+3>>0]|0;f=d[b>>0]|0;g=d[b+1>>0]|0;b=d[b+2>>0]|0;if(e<<24>>24==-1){c[h>>2]=f;c[h+4>>2]=g;c[h+8>>2]=b;Oz(98067,106995,h)|0}else{c[j>>2]=f;c[j+4>>2]=g;c[j+8>>2]=b;c[j+12>>2]=e&255;Oz(98067,98082,j)|0}i=k;return}function oc(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+1040|0;k=l;j=l+16|0;h=c[43940+(c[(c[b+16>>2]|0)+12>>2]<<2)>>2]|0;g=h+4|0;b=c[g>>2]|0;if(b>>>0>=(c[h+8>>2]|0)>>>0){hj(h,1)|0;b=c[g>>2]|0}c[g>>2]=b+1;a[b>>0]=d;c[k>>2]=f;Oz(j,98077,k)|0;jj(h,j)|0;if((f|0)>0){b=0;do{d=e+(b<<4)|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];$b(h,k);b=b+1|0}while((b|0)!=(f|0))}i=l;return}function pc(b,d,f,j){b=b|0;d=d|0;f=f|0;j=j|0;var k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.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.0;A=i;i=i+2144|0;v=A+80|0;u=A+72|0;t=A+64|0;z=A+1104|0;q=A+32|0;r=A+16|0;s=A;y=b+16|0;w=c[y>>2]|0;k=+(c[w+136>>2]|0)*3.141592653589793/180.0;if((e[(c[10997]|0)+8232>>1]|0)<14){nc(w+56|0);bc(c[43940+(c[(c[y>>2]|0)+12>>2]<<2)>>2]|0,98122,98067)}else{gj(z,1024,A+1120|0);x=(d|0)==2;if(x){nt(f,q,j,k,2);d=z+4|0;b=c[d>>2]|0;if(b>>>0>=(c[z+8>>2]|0)>>>0){hj(z,1)|0;b=c[d>>2]|0}c[d>>2]=b+1;a[b>>0]=91;c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];c[v+8>>2]=c[q+8>>2];c[v+12>>2]=c[q+12>>2];$b(z,v);u=q+16|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];$b(z,v)}else{nt(f,q,j,0.0,3);p=+h[q+24>>3];n=+h[q>>3];m=+h[q+8>>3];o=p*.25;if(k==0.0){k=m;l=n}else{B=o;l=k;k=m+B*+R(+l);l=n+B*+Q(+l)}h[r>>3]=l;h[r+8>>3]=k;h[s>>3]=n;h[s+8>>3]=m;d=z+4|0;b=c[d>>2]|0;if(b>>>0>=(c[z+8>>2]|0)>>>0){hj(z,1)|0;b=c[d>>2]|0}c[d>>2]=b+1;a[b>>0]=40;c[v>>2]=c[r>>2];c[v+4>>2]=c[r+4>>2];c[v+8>>2]=c[r+8>>2];c[v+12>>2]=c[r+12>>2];$b(z,v);B=o;h[t>>3]=B>-1.0e-08&B<1.0e-08?0.0:B;Oz(v,97976,t)|0;ac(v,1);jj(z,v)|0;c[v>>2]=c[s>>2];c[v+4>>2]=c[s+4>>2];c[v+8>>2]=c[s+8>>2];c[v+12>>2]=c[s+12>>2];$b(z,v);B=p;h[u>>3]=B>-1.0e-08&B<1.0e-08?0.0:B;Oz(v,97976,u)|0;ac(v,1);jj(z,v)|0}jj(z,98125)|0;b=w+140|0;k=+g[b>>2];d=w+56|0;if(k>0.0){qc(z,k,d);qc(z,+g[b>>2],w+96|0)}else{qc(z,0.0,d);qc(z,1.0,w+96|0)}lj(z)|0;j=z+4|0;b=c[j>>2]|0;f=z+8|0;d=b>>>0>=(c[f>>2]|0)>>>0;if(x){if(d){hj(z,1)|0;b=c[j>>2]|0}c[j>>2]=b+1;a[b>>0]=93}else{if(d){hj(z,1)|0;b=c[j>>2]|0}c[j>>2]=b+1;a[b>>0]=41}b=c[j>>2]|0;if(b>>>0>=(c[f>>2]|0)>>>0){hj(z,1)|0;b=c[j>>2]|0}a[b>>0]=0;x=c[z>>2]|0;c[j>>2]=x;bc(c[43940+(c[(c[y>>2]|0)+12>>2]<<2)>>2]|0,98122,x);kj(z)}i=A;return}function qc(a,b,c){a=a|0;b=+b;c=c|0;var d=0,e=0,f=0;d=i;i=i+1040|0;f=d;e=d+8|0;h[f>>3]=b;Oz(e,98128,f)|0;ac(e,1);nc(c);bc(a,e,98067);i=d;return}function rc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+1040|0;g=k;h=k+8|0;d=0;e=b;a:while(1){f=e;while(1){e=f+1|0;f=a[f>>0]|0;if(!(f<<24>>24))break a;if(((f<<24>>24)+-48|0)>>>0<10)break;else f=e}if((d|0)>=1023){j=7;break}a[h+d>>0]=f;d=d+1|0}if((j|0)==7){c[g>>2]=b;dj(0,98218,g)|0}a[h+d>>0]=0;j=(Yz(h)|0)&65535;i=k;return j|0}function sc(a){a=a|0;var b=0;switch(c[a+64>>2]|0){case 0:{b=kn(c[a>>2]|0)|0;Kn(b,c[(c[a+16>>2]|0)+8>>2]|0,99116,0)|0;ln(b);break}case 1:{yq(c[(c[a>>2]|0)+168>>2]|0);break}default:{}}return}function tc(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;e=f;d=c[(c[b+16>>2]|0)+8>>2]|0;if(!(c[11128]|0)){c[11128]=c[12680];c[11129]=9;c[11130]=17}c[(c[d+64>>2]|0)+8>>2]=44512;uc(d,1);c[e>>2]=0;a[e+4>>0]=(a[(c[d+16>>2]|0)+115>>0]|0)==1&1;g=c[b+64>>2]|0;a[e+5>>0]=(g|0)==0?1:(g|0)==3&1;a[e+6>>0]=0;vc(d,b,1,e);i=f;return}function uc(a,b){a=a|0;b=b|0;var d=0,e=0;c[a>>2]=c[a>>2]&-9;d=bm(a)|0;if(d)do{uc(d,0);d=cm(d)|0}while((d|0)!=0);if((b|0)!=0?(e=Rk(a)|0,(e|0)!=0):0)do{c[e>>2]=c[e>>2]&-9;d=Lj(a,e)|0;if(d)do{c[d>>2]=c[d>>2]&-9;d=Nj(a,d)|0}while((d|0)!=0);e=Sk(a,e)|0}while((e|0)!=0);return}function vc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var 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,A=0,B=0,C=0,D=0;D=i;i=i+112|0;B=D+96|0;A=D+88|0;z=D+80|0;y=D+72|0;w=D+64|0;v=D+56|0;u=D+48|0;t=D+40|0;r=D+32|0;s=D+24|0;q=D+16|0;p=D+8|0;o=D;C=(d|0)!=0;if(C){m=Vi(44524,c[12573]|0)|0;zl(a,1,125554,12,0);zl(a,2,125554,12,0);zl(a,0,125554,-12,0);n=wc(a,0,m)|0;f=Rk(a)|0;if(f){h=0;k=0;while(1){if(!(rA(ok(f)|0,131620,7)|0)){j=ok(f)|0;j=ub[c[m>>2]&31](m,j,512)|0;if(!j)j=-1;else j=c[j+12>>2]|0;c[(wl(f,125554,0)|0)+8>>2]=j;l=k}else{c[(wl(f,125554,0)|0)+8>>2]=k+n;l=k+1|0}j=Lj(a,f)|0;if(j){k=h;while(1){h=k+1|0;c[(wl(j,125554,0)|0)+8>>2]=k;j=Nj(a,j)|0;if(!j)break;else k=h}}f=Sk(a,f)|0;if(!f)break;else k=l}}Pi(m)|0;j=n}else j=0;f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120787)|0;h=ok(a)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}c[o>>2]=xc(h,e)|0;dn(b,98335,o);k=(d|0)==0;if(!k){_m(b,120758)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}f=(hk(a)|0)!=0;c[p>>2]=f?131591:160740;dn(b,98348,p);f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}p=(jk(a)|0)!=0;c[q>>2]=p?131591:160740;dn(b,98365,q)}yc(a,b,e);_m(b,120758)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}if(C){c[s>>2]=j;dn(b,98378,s)}else{c[r>>2]=c[(wl(a,125554,0)|0)+8>>2];dn(b,98398,r)}h=bm(a)|0;if(h){_m(b,120758)|0;f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}if(!C){_m(b,98424)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else{f=0;break}}else f=0}else{_m(b,98410)|0;f=0}do{if(!f)f=1;else _m(b,120758)|0;if(C)zc(h,b,e);else{c[t>>2]=c[(wl(h,125554,0)|0)+8>>2];dn(b,160852,t)}h=cm(h)|0}while((h|0)!=0);if(C)f=1;else{c[e>>2]=(c[e>>2]|0)+-1;_m(b,175632)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120753)|0;f=1}}else f=0;h=Rk(a)|0;if(!h){if(C&(f|0)!=0){c[e>>2]=(c[e>>2]|0)+-1;_m(b,175632)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120753)|0}}else{_m(b,120758)|0;if(C)if(!f){f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,98410)|0;j=h;f=0}else{j=h;f=0}else{f=c[e>>2]|0;c[e>>2]=f+1;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,98440)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else{j=h;f=0;break}}else{j=h;f=0}}do{do if(rA(ok(j)|0,131620,7)|0){do if(!f)if(k){f=1;x=74}else f=1;else if(C){_m(b,120758)|0;break}else{_m(b,124034)|0;x=74;break}while(0);if((x|0)==74){x=0;c[w>>2]=c[(wl(j,125554,0)|0)+8>>2];dn(b,160852,w);break}h=c[e>>2]|0;c[e>>2]=h+1;if((h|0)>0)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}_m(b,120787)|0;h=c[e>>2]|0;if((h|0)>0)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}c[u>>2]=c[(wl(j,125554,0)|0)+8>>2];dn(b,98452,u);h=c[e>>2]|0;if((h|0)>0)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}c[v>>2]=xc(ok(j)|0,e)|0;dn(b,98335,v);yc(j,b,e);_m(b,175632)|0;t=c[e>>2]|0;h=t+-1|0;c[e>>2]=h;if((t|0)>1)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}_m(b,106606)|0}while(0);j=Sk(a,j)|0}while((j|0)!=0);c[e>>2]=(c[e>>2]|0)+-1;_m(b,175632)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120753)|0}f=Rk(a)|0;a:do if(f){while(1){if(Lj(a,f)|0)break;f=Sk(a,f)|0;if(!f)break a}_m(b,120758)|0;h=c[e>>2]|0;c[e>>2]=h+1;if((h|0)>0)while(1){_m(b,98332)|0;if((h|0)>1)h=h+-1|0;else break}_m(b,98466)|0;if(!C?(g=c[e>>2]|0,(g|0)>0):0)while(1){_m(b,98332)|0;if((g|0)>1)g=g+-1|0;else break}if(f){g=0;do{h=Lj(a,f)|0;if(h)do{do if(!g)if(k){g=1;x=105}else{g=1;x=94}else if(C){_m(b,120758)|0;x=94;break}else{_m(b,124034)|0;x=105;break}while(0);if((x|0)==94){j=c[e>>2]|0;c[e>>2]=j+1;if((j|0)>0)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}_m(b,120787)|0;j=c[e>>2]|0;if((j|0)>0)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[y>>2]=c[(wl(h,125554,0)|0)+8>>2];dn(b,98452,y);j=c[e>>2]|0;if((j|0)>0)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[z>>2]=c[(wl(c[((c[h>>2]&3|0)==3?h:h+48|0)+40>>2]|0,125554,0)|0)+8>>2];dn(b,98478,z);j=c[e>>2]|0;if((j|0)>0)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[A>>2]=c[(wl(c[((c[h>>2]&3|0)==2?h:h+-48|0)+40>>2]|0,125554,0)|0)+8>>2];dn(b,98491,A);yc(h,b,e);_m(b,175632)|0;x=c[e>>2]|0;j=x+-1|0;c[e>>2]=j;if((x|0)>1)while(1){_m(b,98332)|0;if((j|0)>1)j=j+-1|0;else break}_m(b,106606)|0}else if((x|0)==105){c[B>>2]=c[(wl(h,125554,0)|0)+8>>2];dn(b,160852,B)}h=Nj(a,h)|0}while((h|0)!=0);f=Sk(a,f)|0}while((f|0)!=0)}c[e>>2]=(c[e>>2]|0)+-1;_m(b,175632)|0;f=c[e>>2]|0;if((f|0)>0)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}_m(b,120753)|0}while(0);_m(b,175632)|0;B=c[e>>2]|0;f=B+-1|0;c[e>>2]=f;if((B|0)>1)while(1){_m(b,98332)|0;if((f|0)>1)f=f+-1|0;else break}if(C)_m(b,134423)|0;else _m(b,106606)|0;i=D;return}function wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;do if((hl(a)|0)!=(a|0)){e=b+1|0;c[(wl(a,125554,0)|0)+8>>2]=b;if(!(rA(ok(a)|0,131620,7)|0)){g=ok(a)|0;b=c[(wl(a,125554,0)|0)+8>>2]|0;f=ub[c[d>>2]&31](d,g,512)|0;if(!f){h=qB(1,16)|0;c[h+8>>2]=oA(g)|0;c[h+12>>2]=b;ub[c[d>>2]&31](d,h,1)|0;break}if((c[f+12>>2]|0)!=(b|0)){c[h>>2]=g;dj(0,99087,h)|0}}}else e=b;while(0);b=bm(a)|0;if(b)do{e=wc(b,e,d)|0;b=cm(b)|0}while((b|0)!=0);i=j;return e|0}function xc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=d+4|0;if(a[g>>0]|0)b=gt(b)|0;if(!(c[11140]|0))gj(44560,1024,0);d=a[b>>0]|0;a:do if(d<<24>>24){f=b;while(1){switch(d&255|0){case 34:{jj(44560,99066)|0;break}case 92:{jj(44560,120150)|0;break}case 47:{jj(44560,99069)|0;break}case 8:{jj(44560,99072)|0;break}case 12:{jj(44560,99075)|0;break}case 10:{jj(44560,99078)|0;break}case 13:{jj(44560,99081)|0;break}case 9:{jj(44560,99084)|0;break}default:{e=c[11141]|0;if(e>>>0>=(c[11142]|0)>>>0){hj(44560,1)|0;e=c[11141]|0}c[11141]=e+1;a[e>>0]=d}}f=f+1|0;d=a[f>>0]|0;if(!(d<<24>>24))break a}}while(0);d=c[11141]|0;if(d>>>0>=(c[11142]|0)>>>0){hj(44560,1)|0;d=c[11141]|0}a[d>>0]=0;d=c[11140]|0;c[11141]=d;if(a[g>>0]|0)pB(b);return d|0}function yc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=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,Z=0,_=0,$=0.0,aa=0.0,ba=0.0;_=i;i=i+336|0;Y=_+328|0;X=_+320|0;W=_+312|0;V=_+304|0;U=_+296|0;T=_+288|0;S=_+280|0;R=_+272|0;P=_+248|0;O=_+224|0;N=_+216|0;M=_+200|0;L=_+184|0;K=_+176|0;J=_+168|0;I=_+160|0;H=_+152|0;G=_+144|0;E=_+136|0;D=_+128|0;C=_+120|0;B=_+112|0;A=_+104|0;z=_+88|0;y=_+80|0;x=_+72|0;w=_+64|0;v=_+56|0;Q=_+24|0;F=_+16|0;u=_+8|0;t=_;p=hl(b)|0;q=c[b>>2]&3;f=sj(p,q,0)|0;if(f){s=e+5|0;do{g=Aj(b,f)|0;a:do if(g){if(!(a[g>>0]|0)){g=c[f+8>>2]|0;if((a[g>>0]|0)!=108)break;if(lA(g,124829)|0)break}_m(d,120758)|0;g=c[e>>2]|0;if((g|0)>0)while(1){_m(d,98332)|0;if((g|0)>1)g=g+-1|0;else break}g=f+8|0;c[t>>2]=xc(c[g>>2]|0,e)|0;dn(d,98502,t);b:do if((a[s>>0]|0)!=0?(n=c[g>>2]|0,r=n+1|0,(a[n>>0]|0)==95):0){switch(a[r>>0]|0){case 100:{if(lA(r,98509)|0)break b;break}case 108:{if(lA(r,98515)|0)break b;break}case 104:{if(lA(r,98522)|0){o=lA(r,98536)|0;Z=18}break}case 116:{if(lA(r,98529)|0){o=lA(r,98544)|0;Z=18}break}default:break b}if((Z|0)==18?(Z=0,(o|0)!=0):0)break;g=Aj(b,f)|0;if(!g)break a;if(!(a[g>>0]|0))break a;n=to(g)|0;if(!n){c[u>>2]=g;dj(0,98552,u)|0;break a}_m(d,175632)|0;g=c[e>>2]|0;c[e>>2]=g+1;if((g|0)>0)while(1){_m(d,98332)|0;if((g|0)>1)g=g+-1|0;else break}_m(d,98579)|0;c:do if((c[n>>2]|0)>0){l=n+8|0;m=0;g=0;while(1){if(!g)g=1;else _m(d,120758)|0;k=c[l>>2]|0;j=c[e>>2]|0;c[e>>2]=j+1;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}_m(d,120787)|0;j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}j=c[k+(m*80|0)>>2]|0;d:do switch(j|0){case 1:case 0:{c[F>>2]=(j|0)==0?69:101;dn(d,98582,F);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}ba=+h[k+(m*80|0)+16>>3];aa=+h[k+(m*80|0)+24>>3];$=+h[k+(m*80|0)+32>>3];h[Q>>3]=+h[k+(m*80|0)+8>>3];h[Q+8>>3]=ba;h[Q+16>>3]=aa;h[Q+24>>3]=$;dn(d,98595,Q);break}case 3:case 2:{c[v>>2]=(j|0)==2?80:112;dn(d,98582,v);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Ac(d,k+(m*80|0)+8|0);break}case 5:case 4:{c[w>>2]=(j|0)==4?66:98;dn(d,98582,w);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Ac(d,k+(m*80|0)+8|0);break}case 6:{dn(d,98630,x);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Ac(d,k+(m*80|0)+8|0);break}case 7:{dn(d,98642,y);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}ba=+h[k+(m*80|0)+16>>3];h[z>>3]=+h[k+(m*80|0)+8>>3];h[z+8>>3]=ba;dn(d,98654,z);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}j=c[k+(m*80|0)+24>>2]|0;c[A>>2]=(j|0)==0?108:(j|0)==1?99:114;dn(d,98676,A);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}h[B>>3]=+h[k+(m*80|0)+32>>3];dn(d,98692,B);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[C>>2]=xc(c[k+(m*80|0)+40>>2]|0,e)|0;dn(d,98709,C);break}case 9:case 8:{c[D>>2]=(j|0)==8?67:99;dn(d,98582,D);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}dn(d,98723,E);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[G>>2]=xc(c[k+(m*80|0)+8>>2]|0,e)|0;dn(d,98740,G);break}case 13:case 14:{c[H>>2]=(j|0)==13?67:99;dn(d,98582,H);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}switch(c[k+(m*80|0)+8>>2]|0){case 0:{dn(d,98723,I);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[J>>2]=xc(c[k+(m*80|0)+16>>2]|0,e)|0;dn(d,98740,J);break d}case 1:{dn(d,98755,K);j=c[e>>2]|0;do if((j|0)>0){while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}j=c[e>>2]|0;k=k+(m*80|0)+16|0;if((j|0)<=0)break;while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}}else k=k+(m*80|0)+16|0;while(0);ba=+h[k+8>>3];h[L>>3]=+h[k>>3];h[L+8>>3]=ba;dn(d,98774,L);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}ba=+h[k+24>>3];h[M>>3]=+h[k+16>>3];h[M+8>>3]=ba;dn(d,98796,M);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Bc(d,c[k+32>>2]|0,c[k+36>>2]|0,e);break d}default:{dn(d,98818,N);j=c[e>>2]|0;do if((j|0)>0){while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}j=c[e>>2]|0;if((j|0)<=0)break;while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}}while(0);aa=+h[k+(m*80|0)+24>>3];ba=+h[k+(m*80|0)+32>>3];h[O>>3]=+h[k+(m*80|0)+16>>3];h[O+8>>3]=aa;h[O+16>>3]=ba;dn(d,98837,O);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}aa=+h[k+(m*80|0)+48>>3];ba=+h[k+(m*80|0)+56>>3];h[P>>3]=+h[k+(m*80|0)+40>>3];h[P+8>>3]=aa;h[P+16>>3]=ba;dn(d,98865,P);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}Bc(d,c[k+(m*80|0)+64>>2]|0,c[k+(m*80|0)+68>>2]|0,e);break d}}}case 10:{dn(d,98893,R);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}h[S>>3]=+h[k+(m*80|0)+8>>3];dn(d,98905,S);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[T>>2]=xc(c[k+(m*80|0)+16>>2]|0,e)|0;dn(d,98921,T);break}case 11:{dn(d,98935,U);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[V>>2]=xc(c[k+(m*80|0)+8>>2]|0,e)|0;dn(d,98947,V);break}case 15:{dn(d,98962,W);j=c[e>>2]|0;if((j|0)>0)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}c[X>>2]=c[k+(m*80|0)+8>>2];dn(d,98974,X);break}default:{}}while(0);k=c[e>>2]|0;j=k+-1|0;c[e>>2]=j;if((k|0)>1)while(1){_m(d,98332)|0;if((j|0)>1)j=j+-1|0;else break}_m(d,106606)|0;m=m+1|0;if((m|0)>=(c[n>>2]|0))break c}}while(0);c[e>>2]=(c[e>>2]|0)+-1;_m(d,175632)|0;g=c[e>>2]|0;if((g|0)>0)while(1){_m(d,98332)|0;if((g|0)>1)g=g+-1|0;else break}_m(d,120753)|0;uo(n);break a}while(0);c[Y>>2]=xc(Aj(b,f)|0,e)|0;dn(d,98990,Y)}while(0);f=sj(p,q,f)|0}while((f|0)!=0)}i=_;return}function zc(a,b,c){a=a|0;b=b|0;c=c|0;vc(a,b,0,c);a=bm(a)|0;if(a)do{_m(b,120758)|0;zc(a,b,c);a=cm(a)|0}while((a|0)!=0);return}function Ac(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0.0;k=i;i=i+48|0;j=k+32|0;g=k+16|0;f=k+8|0;e=c[b>>2]|0;b=c[b+4>>2]|0;dn(a,99040,k);if((e|0)>0){d=0;do{if((d|0)>0)dn(a,124034,f);l=+h[b+(d*24|0)+8>>3];h[g>>3]=+h[b+(d*24|0)>>3];h[g+8>>3]=l;dn(a,99052,g);d=d+1|0}while((d|0)!=(e|0))}dn(a,99037,j);i=k;return}function Bc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,j=0,k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+48|0;l=m+32|0;k=m+16|0;j=m+8|0;dn(a,98995,m);if((b|0)>0){f=0;do{if((f|0)>0)dn(a,124034,j);o=+g[d+(f<<3)>>2];n=xc(c[d+(f<<3)+4>>2]|0,e)|0;h[k>>3]=o;c[k+8>>2]=n;dn(a,99006,k);f=f+1|0}while((f|0)!=(b|0))}dn(a,99037,l);i=m;return}function Cc(a,b,d){a=a|0;b=b|0;d=d|0;pB(c[b+8>>2]|0);pB(b);return}function Dc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;i=i+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;_m(a,99871)|0;k=c[c[a+12>>2]>>2]|0;j=c[k+4>>2]|0;h=c[k+8>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=j;c[g+8>>2]=h;dn(a,99881,g);c[e>>2]=ok(c[f+8>>2]|0)|0;dn(a,99916,e);c[d>>2]=_(c[a+168>>2]|0,c[a+164>>2]|0)|0;dn(a,99929,d);_m(a,99942)|0;_m(a,99952)|0;_m(a,99960)|0;_m(a,99968)|0;_m(a,99976)|0;_m(a,99984)|0;_m(a,99992)|0;_m(a,99996)|0;_m(a,100001)|0;i=b;return}function Ec(a){a=a|0;_m(a,99852)|0;return}function Fc(a){a=a|0;c[11202]=2;return}function Gc(a){a=a|0;c[11202]=1;return}function Hc(a){a=a|0;c[11202]=2;return}function Ic(a){a=a|0;c[11202]=0;return}function Jc(a){a=a|0;c[11202]=2;return}function Kc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0.0;v=i;i=i+96|0;u=v+8|0;o=v;s=c[(c[b+16>>2]|0)+16>>2]|0;t=c[11202]|0;f=c[e+4>>2]|0;p=+h[f+16>>3]*+h[b+352>>3];q=(c[b+360>>2]|0)!=0?1.5707963267948966:0.0;j=c[e>>2]|0;r=p*2.0/3.0*+((pA(j)|0)>>>0)*.5;f=c[f+8>>2]|0;if(!f)n=-1;else n=c[f+20>>2]|0;m=a[e+48>>0]|0;m=m<<24>>24==108?0:m<<24>>24==114?2:1;w=+h[d>>3];l=~~(w+(w>=0.0?.5:-.5));w=+h[d+8>>3]+-72.0;k=~~(w+(w>=0.0?.5:-.5));f=c[11204]|0;if(!f){c[11205]=64;f=oB(64)|0;c[11204]=f}e=a[j>>0]|0;if(e<<24>>24){g=0;while(1){j=j+1|0;d=c[11205]|0;if((g|0)>(d+-8|0)){f=d<<1;c[11205]=f;f=rB(c[11204]|0,f)|0;c[11204]=f;f=f+g|0}if(e<<24>>24>-1){if(e<<24>>24==92){a[f>>0]=92;f=f+1|0;d=g+1|0}else d=g;a[f>>0]=e;f=f+1|0;d=d+1|0}else{a[f>>0]=92;c[o>>2]=e&255;Oz(f+1|0,112499,o)|0;f=f+4|0;d=g+4|0}e=a[j>>0]|0;if(!(e<<24>>24))break;else g=d}}a[f>>0]=0;o=c[11204]|0;c[u>>2]=4;c[u+4>>2]=m;c[u+8>>2]=s;c[u+12>>2]=t;c[u+16>>2]=0;c[u+20>>2]=n;h[u+24>>3]=p;h[u+32>>3]=q;c[u+40>>2]=6;h[u+48>>3]=p;h[u+56>>3]=r;c[u+64>>2]=l;c[u+68>>2]=k;c[u+72>>2]=o;dn(b,99797,u);i=v;return}function Lc(e,f){e=e|0;f=f|0;var 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;x=i;i=i+32|0;u=x;w=f+32|0;a:do switch(c[w>>2]|0){case 5:{h=c[f>>2]|0;j=a[h>>0]|0;k=160746;g=0;while(1){if((a[k>>0]|0)==j<<24>>24?(lA(k,h)|0)==0:0)break;g=g+1|0;if((g|0)==8)break a;else k=c[45336+(g<<2)>>2]|0}c[f>>2]=g;break}case 1:{p=a[f>>0]|0;l=p&255;q=f+1|0;r=a[q>>0]|0;m=r&255;s=f+2|0;t=a[s>>0]|0;n=t&255;o=c[11203]|0;do if((o|0)>0){g=0;h=-1;k=195075;while(1){y=(b[92148+(g<<1)>>1]|0)-l|0;z=(b[92660+(g<<1)>>1]|0)-m|0;j=(b[93172+(g<<1)>>1]|0)-n|0;j=(_(z,z)|0)+(_(y,y)|0)+(_(j,j)|0)|0;if((j|0)<(k|0))if(!j)break;else h=g;else j=k;g=g+1|0;if((g|0)<(o|0))k=j;else{v=12;break}}if((v|0)==12){c[11203]=o+1;if((o|0)==256)g=h;else{v=14;break}}g=g+32|0}else{c[11203]=o+1;g=0;v=14}while(0);if((v|0)==14){b[92148+(g<<1)>>1]=p&255;b[92660+(g<<1)>>1]=r&255;b[93172+(g<<1)>>1]=t&255;g=g+32|0;v=d[f>>0]|0;y=d[q>>0]|0;z=d[s>>0]|0;c[u>>2]=0;c[u+4>>2]=g;c[u+8>>2]=v;c[u+12>>2]=y;c[u+16>>2]=z;dn(e,99740,u)}c[f>>2]=g;break}default:Ia(161945,99140,163,99171)}while(0);c[w>>2]=6;i=x;return}function Mc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0;n=i;i=i+96|0;m=n;e=c[a+16>>2]|0;g=~~+h[e+152>>3];j=c[e+16>>2]|0;k=c[e+56>>2]|0;l=c[11202]|0;d=(d|0)!=0?20:-1;switch(c[e+144>>2]|0){case 1:{e=1;f=10.0;break}case 2:{e=2;f=10.0;break}default:{e=0;f=0.0}}t=+h[b>>3];r=~~(t+(t>=0.0?.5:-.5));s=+h[b+8>>3];q=~~(s+(s>=0.0?.5:-.5));p=+h[b+16>>3];t=p-t;o=+h[b+24>>3];s=o-s;c[m>>2]=1;c[m+4>>2]=1;c[m+8>>2]=e;c[m+12>>2]=g;c[m+16>>2]=j;c[m+20>>2]=k;c[m+24>>2]=l;c[m+28>>2]=0;c[m+32>>2]=d;h[m+40>>3]=f;c[m+48>>2]=0;h[m+56>>3]=0.0;c[m+64>>2]=r;c[m+68>>2]=q;c[m+72>>2]=~~(t+(t>=0.0?.5:-.5));c[m+76>>2]=~~(s+(s>=0.0?.5:-.5));c[m+80>>2]=r;c[m+84>>2]=q;c[m+88>>2]=~~(p+(p>=0.0?.5:-.5));c[m+92>>2]=~~(o+(o>=0.0?.5:-.5));dn(a,99675,m);i=n;return}function Nc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;o=p;g=c[a+16>>2]|0;k=~~+h[g+152>>3];l=c[g+16>>2]|0;m=c[g+56>>2]|0;n=c[11202]|0;e=(e|0)!=0?20:-1;f=d+1|0;switch(c[g+144>>2]|0){case 1:{g=1;j=10.0;break}case 2:{g=2;j=10.0;break}default:{g=0;j=0.0}}c[o>>2]=2;c[o+4>>2]=3;c[o+8>>2]=g;c[o+12>>2]=k;c[o+16>>2]=l;c[o+20>>2]=m;c[o+24>>2]=n;c[o+28>>2]=0;c[o+32>>2]=e;h[o+40>>3]=j;c[o+48>>2]=0;c[o+52>>2]=0;c[o+56>>2]=0;c[o+60>>2]=0;c[o+64>>2]=0;c[o+68>>2]=f;dn(a,99579,o);Rc(a,b,d,1);i=p;return}function Oc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var 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.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0;H=i;i=i+176|0;G=H+168|0;E=H+160|0;F=H+96|0;x=H+88|0;e=H+80|0;v=H+16|0;u=H;f=c[a+16>>2]|0;z=~~+h[f+152>>3];C=c[f+16>>2]|0;D=c[11202]|0;if((d|0)<=3)Ia(99133,99140,360,99160);y=oB((d*140|0)+140|0)|0;switch(c[f+144>>2]|0){case 1:{A=1;B=10.0;break}case 2:{A=2;B=10.0;break}default:{A=0;B=0.0}}if(!g){w=-1;s=0;t=4}else{w=20;s=c[f+56>>2]|0;t=5}J=+h[b>>3];g=v+48|0;h[g>>3]=J;I=+h[b+8>>3];j=v+56|0;h[j>>3]=I;c[e>>2]=~~(J+(J>=0.0?.5:-.5));c[e+4>>2]=~~(I+(I>=0.0?.5:-.5));k=u+8|0;r=(((d+-4|0)>>>0)/3|0)*6|0;l=v+16|0;m=v+24|0;n=v+32|0;o=v+40|0;p=v+48|0;q=3;f=y+(Oz(y,112351,e)|0)|0;e=0;while(1){c[v>>2]=c[g>>2];c[v+4>>2]=c[g+4>>2];c[v+8>>2]=c[g+8>>2];c[v+12>>2]=c[g+12>>2];K=e+1|0;h[l>>3]=+h[b+(K<<4)>>3];h[m>>3]=+h[b+(K<<4)+8>>3];K=e+2|0;h[n>>3]=+h[b+(K<<4)>>3];h[o>>3]=+h[b+(K<<4)+8>>3];e=e+3|0;h[p>>3]=+h[b+(e<<4)>>3];h[j>>3]=+h[b+(e<<4)+8>>3];e=1;do{Rs(u,v,3,+(e|0)/6.0,0,0);I=+h[u>>3];J=+h[k>>3];c[x>>2]=~~(I+(I>=0.0?.5:-.5));c[x+4>>2]=~~(J+(J>=0.0?.5:-.5));f=f+(Oz(f,112351,x)|0)|0;e=e+1|0}while((e|0)!=7);e=q+3|0;if((e|0)<(d|0)){K=q;q=e;e=K}else break}g=r+7|0;c[F>>2]=3;c[F+4>>2]=t;c[F+8>>2]=A;c[F+12>>2]=z;c[F+16>>2]=C;c[F+20>>2]=s;c[F+24>>2]=D;c[F+28>>2]=0;c[F+32>>2]=w;h[F+40>>3]=B;c[F+48>>2]=0;c[F+52>>2]=0;c[F+56>>2]=0;c[F+60>>2]=g;dn(a,99630,F);c[E>>2]=y;dn(a,112358,E);pB(y);if((g|0)>0){f=r+6|0;e=0;do{c[G>>2]=((e|0)%(f|0)|0|0)!=0&1;dn(a,112363,G);e=e+1|0}while((e|0)!=(g|0))}_m(a,175632)|0;i=H;return}function Pc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+80|0;l=m;e=c[a+16>>2]|0;g=~~+h[e+152>>3];j=c[e+16>>2]|0;k=c[11202]|0;switch(c[e+144>>2]|0){case 1:{e=1;f=10.0;break}case 2:{e=2;f=10.0;break}default:{e=0;f=0.0}}c[l>>2]=2;c[l+4>>2]=1;c[l+8>>2]=e;c[l+12>>2]=g;c[l+16>>2]=j;c[l+20>>2]=0;c[l+24>>2]=k;c[l+28>>2]=0;c[l+32>>2]=0;h[l+40>>3]=f;c[l+48>>2]=0;c[l+52>>2]=0;c[l+56>>2]=0;c[l+60>>2]=0;c[l+64>>2]=0;c[l+68>>2]=d;dn(a,99579,l);Rc(a,b,d,0);i=m;return}function Qc(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;dn(a,99573,e);i=d;return}function Rc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;j=k+8|0;g=k;if((d|0)>0){f=0;do{m=+h[b+(f<<4)>>3];l=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(l+(l>=0.0?.5:-.5));dn(a,112351,g);f=f+1|0}while((f|0)!=(d|0))}if(e){l=+h[b>>3];m=+h[b+8>>3];c[j>>2]=~~(l+(l>=0.0?.5:-.5));c[j+4>>2]=~~(m+(m>=0.0?.5:-.5));dn(a,112351,j)}_m(a,175632)|0;i=k;return}function Sc(b){b=b|0;var d=0,e=0,f=0;d=c[b+16>>2]|0;switch(c[b+64>>2]|0){case 0:{_m(b,99522)|0;d=d+208|0;e=c[d>>2]|0;if((e|0)!=0?(a[e>>0]|0)!=0:0){_m(b,99536)|0;_m(b,Vp(c[d>>2]|0)|0)|0;_m(b,175632)|0}break}case 1:{e=d+208|0;f=c[e>>2]|0;if((f|0)!=0?(a[f>>0]|0)!=0:0){_m(b,99536)|0;_m(b,Vp(c[e>>2]|0)|0)|0;_m(b,126232)|0;_m(b,Vp(ok(c[d+8>>2]|0)|0)|0)|0;_m(b,175632)|0}break}case 3:{f=Vp(ok(c[d+8>>2]|0)|0)|0;_m(b,99545)|0;_m(b,f)|0;_m(b,99555)|0;_m(b,f)|0;_m(b,99510)|0;break}default:{}}return}function Tc(a){a=a|0;var b=0;b=c[a+16>>2]|0;switch(c[a+64>>2]|0){case 2:{Vc(a,c[b+264>>2]|0,c[b+272>>2]|0,c[b+268>>2]|0,c[b+208>>2]|0,c[b+228>>2]|0,c[b+244>>2]|0,c[b+212>>2]|0);break}case 3:{Vc(a,c[b+264>>2]|0,c[b+272>>2]|0,c[b+268>>2]|0,c[b+208>>2]|0,c[b+228>>2]|0,c[b+244>>2]|0,c[b+212>>2]|0);_m(a,99514)|0;break}default:{}}return}function Uc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=c[a+16>>2]|0;Vc(a,c[g+264>>2]|0,c[g+272>>2]|0,c[g+268>>2]|0,b,d,e,f);return}function Vc(b,d,e,f,g,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;var 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;y=i;i=i+128|0;x=y+120|0;u=y+112|0;t=y+96|0;s=y+80|0;r=y+56|0;w=y+48|0;q=y+40|0;v=y+24|0;p=y;a:do if((e|0)!=0&(f|0)!=0){if((c[11281]|0)<(f|0)){o=f+10|0;c[11281]=o;c[11282]=rB(c[11282]|0,o<<3)|0}o=(f|0)>0;if(o){m=c[11282]|0;n=0;do{z=+h[e+(n<<4)>>3];c[m+(n<<3)>>2]=~~(z+(z>=0.0?.5:-.5));z=+h[e+(n<<4)+8>>3];c[m+(n<<3)+4>>2]=~~(z+(z>=0.0?.5:-.5));n=n+1|0}while((n|0)!=(f|0))}n=b+64|0;m=c[n>>2]|0;e=(g|0)!=0;if(e&(m|0)==0?(a[g>>0]|0)!=0:0)switch(d|0){case 0:{f=c[11282]|0;v=c[f>>2]|0;w=c[f+12>>2]|0;x=c[f+8>>2]|0;f=c[f+4>>2]|0;c[p>>2]=g;c[p+4>>2]=v;c[p+8>>2]=w;c[p+12>>2]=x;c[p+16>>2]=f;dn(b,99256,p);break a}case 1:{f=c[11282]|0;w=c[f>>2]|0;x=c[f+4>>2]|0;f=(c[f+8>>2]|0)-w|0;c[v>>2]=g;c[v+4>>2]=w;c[v+8>>2]=x;c[v+12>>2]=f;dn(b,99277,v);break a}case 2:{c[q>>2]=g;dn(b,99297,q);if(o){m=0;do{v=c[11282]|0;x=c[v+(m<<3)+4>>2]|0;c[w>>2]=c[v+(m<<3)>>2];c[w+4>>2]=x;dn(b,99305,w);m=m+1|0}while((m|0)!=(f|0))}_m(b,175632)|0;break a}default:Ia(161945,99312,63,99332)}if(e&(m|0)==1?(a[g>>0]|0)!=0:0)if(!d){v=c[11282]|0;w=c[v+12>>2]|0;x=c[v+8>>2]|0;f=c[v+4>>2]|0;c[r>>2]=c[v>>2];c[r+4>>2]=w;c[r+8>>2]=x;c[r+12>>2]=f;c[r+16>>2]=g;c[r+20>>2]=j;dn(b,99349,r);break}else Ia(161945,99312,75,99332);if((m&-2|0)==2){switch(d|0){case 1:{_m(b,99382)|0;break}case 0:{_m(b,99403)|0;break}case 2:{_m(b,99422)|0;break}default:Ia(161945,99312,91,99332)}if((l|0)!=0?(a[l>>0]|0)!=0:0){_m(b,104907)|0;_m(b,Xp(l)|0)|0;_m(b,122268)|0}if(e?(a[g>>0]|0)!=0:0){_m(b,99441)|0;_m(b,Xp(g)|0)|0;_m(b,122268)|0}if((k|0)!=0?(a[k>>0]|0)!=0:0){_m(b,105866)|0;_m(b,Vp(k)|0)|0;_m(b,122268)|0}if((j|0)!=0?(a[j>>0]|0)!=0:0){_m(b,99449)|0;_m(b,Vp(j)|0)|0;_m(b,122268)|0}_m(b,99458)|0;_m(b,99466)|0;switch(d|0){case 1:{f=c[11282]|0;w=c[f>>2]|0;x=c[f+4>>2]|0;f=(c[f+8>>2]|0)-w|0;c[s>>2]=w;c[s+4>>2]=x;c[s+8>>2]=f;dn(b,99476,s);break}case 0:{v=c[11282]|0;w=c[v+12>>2]|0;x=c[v+8>>2]|0;f=c[v+4>>2]|0;c[t>>2]=c[v>>2];c[t+4>>2]=w;c[t+8>>2]=x;c[t+12>>2]=f;dn(b,99485,t);break}case 2:{v=c[11282]|0;w=c[v+4>>2]|0;c[u>>2]=c[v>>2];c[u+4>>2]=w;dn(b,99497,u);if((f|0)>1){m=1;do{v=c[11282]|0;w=c[v+(m<<3)+4>>2]|0;c[x>>2]=c[v+(m<<3)>>2];c[x+4>>2]=w;dn(b,99503,x);m=m+1|0}while((m|0)!=(f|0))}break}default:{}}if((c[n>>2]|0)==3){_m(b,104731)|0;break}else{_m(b,99510)|0;break}}}while(0);i=y;return}function Wc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;i=i+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;_m(a,99871)|0;k=c[c[a+12>>2]>>2]|0;j=c[k+4>>2]|0;h=c[k+8>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=j;c[g+8>>2]=h;dn(a,99881,g);c[e>>2]=ok(c[f+8>>2]|0)|0;dn(a,99916,e);c[d>>2]=_(c[a+168>>2]|0,c[a+164>>2]|0)|0;dn(a,99929,d);_m(a,99942)|0;_m(a,99952)|0;_m(a,99960)|0;_m(a,99968)|0;_m(a,99976)|0;_m(a,99984)|0;_m(a,99992)|0;_m(a,99996)|0;_m(a,100001)|0;i=b;return}function Xc(a){a=a|0;_m(a,99852)|0;return}function Yc(a){a=a|0;c[11333]=2;return}function Zc(a){a=a|0;c[11333]=1;return}function _c(a){a=a|0;c[11333]=2;return}function $c(a){a=a|0;c[11333]=0;return}function ad(a){a=a|0;c[11333]=2;return}function bd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0;u=i;i=i+96|0;t=u+8|0;o=u;r=c[(c[b+16>>2]|0)+16>>2]|0;s=c[11333]|0;f=c[e+4>>2]|0;p=+h[f+16>>3]*+h[b+352>>3];q=(c[b+360>>2]|0)!=0?1.5707963267948966:0.0;f=c[f+8>>2]|0;if(!f)m=-1;else m=c[f+20>>2]|0;n=a[e+48>>0]|0;n=n<<24>>24==108?0:n<<24>>24==114?2:1;v=+h[d>>3];l=~~(v+(v>=0.0?.5:-.5));v=+h[d+8>>3];k=~~(v+(v>=0.0?.5:-.5));e=c[e>>2]|0;f=c[11344]|0;if(!f){c[11345]=64;f=oB(64)|0;c[11344]=f}d=a[e>>0]|0;if(d<<24>>24){g=0;j=e;while(1){j=j+1|0;e=c[11345]|0;if((g|0)>(e+-8|0)){f=e<<1;c[11345]=f;f=rB(c[11344]|0,f)|0;c[11344]=f;f=f+g|0}if(d<<24>>24>-1){if(d<<24>>24==92){a[f>>0]=92;f=f+1|0;e=g+1|0}else e=g;a[f>>0]=d;f=f+1|0;e=e+1|0}else{a[f>>0]=92;c[o>>2]=d&255;Oz(f+1|0,112499,o)|0;f=f+4|0;e=g+4|0}d=a[j>>0]|0;if(!(d<<24>>24))break;else g=e}}a[f>>0]=0;o=c[11344]|0;c[t>>2]=4;c[t+4>>2]=n;c[t+8>>2]=r;c[t+12>>2]=s;c[t+16>>2]=0;c[t+20>>2]=m;h[t+24>>3]=p;h[t+32>>3]=q;c[t+40>>2]=4;h[t+48>>3]=0.0;h[t+56>>3]=0.0;c[t+64>>2]=l;c[t+68>>2]=k;c[t+72>>2]=o;dn(b,99797,t);i=u;return}function cd(e,f){e=e|0;f=f|0;var 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;x=i;i=i+32|0;u=x;w=f+32|0;a:do switch(c[w>>2]|0){case 5:{h=c[f>>2]|0;j=a[h>>0]|0;k=160746;g=0;while(1){if((a[k>>0]|0)==j<<24>>24?(lA(k,h)|0)==0:0)break;g=g+1|0;if((g|0)==8)break a;else k=c[45336+(g<<2)>>2]|0}c[f>>2]=g;break}case 1:{p=a[f>>0]|0;l=p&255;q=f+1|0;r=a[q>>0]|0;m=r&255;s=f+2|0;t=a[s>>0]|0;n=t&255;o=c[11343]|0;do if((o|0)>0){g=0;h=-1;k=195075;while(1){y=(b[93684+(g<<1)>>1]|0)-l|0;z=(b[94196+(g<<1)>>1]|0)-m|0;j=(b[94708+(g<<1)>>1]|0)-n|0;j=(_(z,z)|0)+(_(y,y)|0)+(_(j,j)|0)|0;if((j|0)<(k|0))if(!j)break;else h=g;else j=k;g=g+1|0;if((g|0)<(o|0))k=j;else{v=12;break}}if((v|0)==12){c[11343]=o+1;if((o|0)==256)g=h;else{v=14;break}}g=g+32|0}else{c[11343]=o+1;g=0;v=14}while(0);if((v|0)==14){b[93684+(g<<1)>>1]=p&255;b[94196+(g<<1)>>1]=r&255;b[94708+(g<<1)>>1]=t&255;g=g+32|0;v=d[f>>0]|0;y=d[q>>0]|0;z=d[s>>0]|0;c[u>>2]=0;c[u+4>>2]=g;c[u+8>>2]=v;c[u+12>>2]=y;c[u+16>>2]=z;dn(e,99740,u)}c[f>>2]=g;break}case 0:{c[f>>2]=0;break}default:Ia(161945,99761,168,99780)}while(0);c[w>>2]=6;i=x;return}function dd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0;n=i;i=i+96|0;m=n;e=c[a+16>>2]|0;g=~~+h[e+152>>3];j=c[e+16>>2]|0;k=c[e+56>>2]|0;l=c[11333]|0;d=(d|0)!=0?20:-1;switch(c[e+144>>2]|0){case 1:{e=1;f=10.0;break}case 2:{e=2;f=10.0;break}default:{e=0;f=0.0}}t=+h[b>>3];r=~~(t+(t>=0.0?.5:-.5));s=+h[b+8>>3];q=~~(s+(s>=0.0?.5:-.5));p=+h[b+16>>3];t=p-t;o=+h[b+24>>3];s=o-s;c[m>>2]=1;c[m+4>>2]=1;c[m+8>>2]=e;c[m+12>>2]=g;c[m+16>>2]=j;c[m+20>>2]=k;c[m+24>>2]=l;c[m+28>>2]=0;c[m+32>>2]=d;h[m+40>>3]=f;c[m+48>>2]=0;h[m+56>>3]=0.0;c[m+64>>2]=r;c[m+68>>2]=q;c[m+72>>2]=~~(t+(t>=0.0?.5:-.5));c[m+76>>2]=~~(s+(s>=0.0?.5:-.5));c[m+80>>2]=r;c[m+84>>2]=q;c[m+88>>2]=~~(p+(p>=0.0?.5:-.5));c[m+92>>2]=~~(o+(o>=0.0?.5:-.5));dn(a,99675,m);i=n;return}function ed(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;o=p;g=c[a+16>>2]|0;k=~~+h[g+152>>3];l=c[g+16>>2]|0;m=c[g+56>>2]|0;n=c[11333]|0;e=(e|0)!=0?20:-1;f=d+1|0;switch(c[g+144>>2]|0){case 1:{g=1;j=10.0;break}case 2:{g=2;j=10.0;break}default:{g=0;j=0.0}}c[o>>2]=2;c[o+4>>2]=3;c[o+8>>2]=g;c[o+12>>2]=k;c[o+16>>2]=l;c[o+20>>2]=m;c[o+24>>2]=n;c[o+28>>2]=0;c[o+32>>2]=e;h[o+40>>3]=j;c[o+48>>2]=0;c[o+52>>2]=0;c[o+56>>2]=0;c[o+60>>2]=0;c[o+64>>2]=0;c[o+68>>2]=f;dn(a,99579,o);id(a,b,d,1);i=p;return}function fd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var 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.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.0,J=0.0,K=0;H=i;i=i+176|0;G=H+168|0;E=H+160|0;F=H+96|0;x=H+88|0;e=H+80|0;v=H+16|0;u=H;f=c[a+16>>2]|0;z=~~+h[f+152>>3];C=c[f+16>>2]|0;D=c[11333]|0;y=oB((d*140|0)+140|0)|0;switch(c[f+144>>2]|0){case 1:{A=1;B=10.0;break}case 2:{A=2;B=10.0;break}default:{A=0;B=0.0}}if(!g){w=-1;s=0;t=4}else{w=20;s=c[f+56>>2]|0;t=5}J=+h[b>>3];q=v+48|0;h[q>>3]=J;I=+h[b+8>>3];r=v+56|0;h[r>>3]=I;c[e>>2]=~~(J+(J>=0.0?.5:-.5));c[e+4>>2]=~~(I+(I>=0.0?.5:-.5));f=Oz(y,112351,e)|0;if((d|0)>3){g=u+8|0;j=(((d+-4|0)>>>0)/3|0)*6|0;k=v+16|0;l=v+24|0;m=v+32|0;n=v+40|0;o=v+48|0;p=3;f=y+f|0;e=0;while(1){c[v>>2]=c[q>>2];c[v+4>>2]=c[q+4>>2];c[v+8>>2]=c[q+8>>2];c[v+12>>2]=c[q+12>>2];K=e+1|0;h[k>>3]=+h[b+(K<<4)>>3];h[l>>3]=+h[b+(K<<4)+8>>3];K=e+2|0;h[m>>3]=+h[b+(K<<4)>>3];h[n>>3]=+h[b+(K<<4)+8>>3];e=e+3|0;h[o>>3]=+h[b+(e<<4)>>3];h[r>>3]=+h[b+(e<<4)+8>>3];e=1;do{Rs(u,v,3,+(e|0)/6.0,0,0);I=+h[u>>3];J=+h[g>>3];c[x>>2]=~~(I+(I>=0.0?.5:-.5));c[x+4>>2]=~~(J+(J>=0.0?.5:-.5));f=f+(Oz(f,112351,x)|0)|0;e=e+1|0}while((e|0)!=7);e=p+3|0;if((e|0)<(d|0)){K=p;p=e;e=K}else break}g=j+7|0}else g=1;c[F>>2]=3;c[F+4>>2]=t;c[F+8>>2]=A;c[F+12>>2]=z;c[F+16>>2]=C;c[F+20>>2]=s;c[F+24>>2]=D;c[F+28>>2]=0;c[F+32>>2]=w;h[F+40>>3]=B;c[F+48>>2]=0;c[F+52>>2]=0;c[F+56>>2]=0;c[F+60>>2]=g;dn(a,99630,F);c[E>>2]=y;dn(a,112358,E);pB(y);if((g|0)>0){f=g+-1|0;e=0;do{c[G>>2]=((e|0)%(f|0)|0|0)!=0&1;dn(a,112363,G);e=e+1|0}while((e|0)!=(g|0))}_m(a,175632)|0;i=H;return}function gd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+80|0;l=m;e=c[a+16>>2]|0;g=~~+h[e+152>>3];j=c[e+16>>2]|0;k=c[11333]|0;switch(c[e+144>>2]|0){case 1:{e=1;f=10.0;break}case 2:{e=2;f=10.0;break}default:{e=0;f=0.0}}c[l>>2]=2;c[l+4>>2]=1;c[l+8>>2]=e;c[l+12>>2]=g;c[l+16>>2]=j;c[l+20>>2]=0;c[l+24>>2]=k;c[l+28>>2]=0;c[l+32>>2]=0;h[l+40>>3]=f;c[l+48>>2]=0;c[l+52>>2]=0;c[l+56>>2]=0;c[l+60>>2]=0;c[l+64>>2]=0;c[l+68>>2]=d;dn(a,99579,l);id(a,b,d,0);i=m;return}function hd(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;dn(a,99573,e);i=d;return}function id(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;j=k+8|0;g=k;if((d|0)>0){f=0;do{m=+h[b+(f<<4)>>3];l=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(l+(l>=0.0?.5:-.5));dn(a,112351,g);f=f+1|0}while((f|0)!=(d|0))}if(e){l=+h[b>>3];m=+h[b+8>>3];c[j>>2]=~~(l+(l>=0.0?.5:-.5));c[j+4>>2]=~~(m+(m>=0.0?.5:-.5));dn(a,112351,j)}_m(a,175632)|0;i=k;return}function jd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=i;i=i+16|0;b=d;_m(a,104579)|0;if((c[a+64>>2]|0)==2)_m(a,104594)|0;else _m(a,175632)|0;g=c[c[a+12>>2]>>2]|0;f=c[g+4>>2]|0;e=c[g+8>>2]|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;c[b+8>>2]=e;dn(a,104605,b);i=d;return}function kd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+8|0;e=g;_m(a,104533)|0;d=a+64|0;b=a+12|0;if((c[d>>2]|0)!=2){c[e>>2]=c[(c[b>>2]|0)+28>>2];dn(a,104544,e)}if((c[(c[b>>2]|0)+20>>2]|0)==0?(c[d>>2]|0)!=2:0){b=c[a+476>>2]|0;d=c[a+480>>2]|0;e=c[a+484>>2]|0;c[f>>2]=c[a+472>>2];c[f+4>>2]=b;c[f+8>>2]=d;c[f+12>>2]=e;dn(a,100913,f)}_m(a,104559)|0;_m(a,104572)|0;i=g;return}function ld(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+48|0;k=l+24|0;f=l+8|0;d=l;j=l+32|0;g=c[b+16>>2]|0;a[100843]=0;e=b+12|0;h=g+8|0;if(!(c[(c[e>>2]|0)+28>>2]|0)){c[d>>2]=ok(c[h>>2]|0)|0;dn(b,100844,d);d=b+64|0;if((c[d>>2]|0)==2)_m(b,100877)|0;else _m(b,100859)|0;do if(!(c[(c[e>>2]|0)+20>>2]|0))if((c[d>>2]|0)==2){n=c[b+460>>2]|0;m=c[b+464>>2]|0;d=c[b+468>>2]|0;c[f>>2]=c[b+456>>2];c[f+4>>2]=n;c[f+8>>2]=m;c[f+12>>2]=d;dn(b,100913,f);break}else{_m(b,100889)|0;break}while(0);_m(b,100943)|0;Wq(b,c[(c[e>>2]|0)+24>>2]|0,45628);Yq(b);d=c[(c[e>>2]|0)+20>>2]|0;if(d){c[j>>2]=c[d>>2];c[j+4>>2]=0;Wq(b,0,j)}}c[11406]=(a[(c[(c[h>>2]|0)+16>>2]|0)+115>>0]|0)==1?1:-1;if(!(a[100843]|0)){_m(b,100963)|0;a[100843]=1}d=c[g+208>>2]|0;if(d){c[k>>2]=Zq(d,c[11406]|0)|0;dn(b,100976,k)}i=l;return}function md(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;b=i;i=i+16|0;f=b;c[f>>2]=d;c[f+4>>2]=e;dn(a,100827,f);i=b;return}function nd(a){a=a|0;var b=0,d=0,e=0,f=0,g=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.0,v=0.0,w=0.0;s=i;i=i+144|0;r=s+128|0;q=s+112|0;p=s+72|0;o=s+56|0;n=s+40|0;m=s+32|0;e=s+24|0;b=s+8|0;d=s;f=c[a+456>>2]|0;g=c[a+460>>2]|0;j=c[a+464>>2]|0;k=c[a+468>>2]|0;l=a+12|0;t=(c[(c[l>>2]|0)+28>>2]|0)+1|0;c[d>>2]=t;c[d+4>>2]=t;dn(a,100454,d);if(!(c[(c[l>>2]|0)+20>>2]|0)){c[b>>2]=f;c[b+4>>2]=g;c[b+8>>2]=j;c[b+12>>2]=k;dn(a,100471,b)}d=a+360|0;c[e>>2]=(c[d>>2]|0)!=0?100505:100515;dn(a,100524,e);b=a+64|0;if((c[b>>2]|0)==1){c[m>>2]=j;c[m+4>>2]=k;dn(a,100549,m)}m=c[a+200>>2]|0;t=c[a+204>>2]|0;c[n>>2]=c[a+196>>2];c[n+4>>2]=m;c[n+8>>2]=t;dn(a,100588,n);if(!(c[(c[l>>2]|0)+20>>2]|0)){c[o>>2]=f;c[o+4>>2]=g;c[o+8>>2]=j-f;c[o+12>>2]=k-g;dn(a,100608,o)}w=+h[a+496>>3];t=c[d>>2]|0;v=+h[a+504>>3];u=+h[a+512>>3];h[p>>3]=+h[a+488>>3];h[p+8>>3]=w;c[p+16>>2]=t;h[p+24>>3]=v;h[p+32>>3]=u;dn(a,100648,p);if((c[b>>2]|0)==1){if((j|0)>14399|(k|0)>14399){t=c[(c[l>>2]|0)+16>>2]|0;c[q>>2]=j;c[q+4>>2]=k;c[q+8>>2]=14400;Bb[t&31](100691,q)}c[r>>2]=f;c[r+4>>2]=g;c[r+8>>2]=j;c[r+12>>2]=k;dn(a,100786,r)}i=s;return}function od(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e;b=a+12|0;if(c[(c[b>>2]|0)+20>>2]|0){_m(a,100378)|0;Wq(a,0,(c[(c[b>>2]|0)+20>>2]|0)+4|0)}_m(a,100395)|0;_m(a,100422)|0;c[d>>2]=c[(c[b>>2]|0)+28>>2];dn(a,100437,d);i=e;return}function pd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=ok(c[(c[a+16>>2]|0)+8>>2]|0)|0;dn(a,100371,d);_m(a,100364)|0;i=b;return}function qd(a){a=a|0;_m(a,115801)|0;return}function rd(a){a=a|0;_m(a,100364)|0;return}function sd(a){a=a|0;_m(a,115801)|0;return}function td(a){a=a|0;_m(a,100364)|0;return}function ud(a){a=a|0;_m(a,115801)|0;return}function vd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;e=i;i=i+16|0;f=e;if((b|0)!=0?(g=(c[a+16>>2]|0)+272|0,(c[g>>2]|0)!=0):0){_m(a,100260)|0;gn(a,c[g>>2]|0,2);_m(a,100271)|0;c[f>>2]=Zq(b,c[11406]|0)|0;dn(a,100275,f)}i=e;return}function wd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;j=l+8|0;k=l;f=c[b+16>>2]|0;if(!(+h[f+40>>3]<.5)){Dd(b,f+16|0);g=e+4|0;en(b,+h[(c[g>>2]|0)+16>>3]);c[j>>2]=c[c[g>>2]>>2];dn(b,100219,j);g=Zq(c[e>>2]|0,c[11406]|0)|0;switch(a[e+48>>0]|0){case 114:{f=e+32|0;h[d>>3]=+h[d>>3]-+h[f>>3];break}case 108:{f=e+32|0;break}default:{f=e+32|0;h[d>>3]=+h[d>>3]-+h[f>>3]*.5}}m=d+8|0;h[m>>3]=+h[e+24>>3]+ +h[m>>3];c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];fn(b,j);_m(b,100234)|0;en(b,+h[f>>3]);c[k>>2]=g;dn(b,100243,k)}i=l;return}function xd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+32|0;f=g;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];h[f+16>>3]=+h[b+16>>3]-+h[b>>3];h[f+24>>3]=+h[b+24>>3]-+h[b+8>>3];b=a+16|0;if((d|0)!=0?(e=c[b>>2]|0,+h[e+80>>3]>.5):0){Dd(a,e+56|0);gn(a,f,2);_m(a,100177)|0}if(+h[(c[b>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[b>>2]|0)+16|0);gn(a,f,2);_m(a,100197)|0}i=g;return}function yd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0;k=i;i=i+16|0;j=k;g=a+16|0;if((e|0)!=0?(f=c[g>>2]|0,+h[f+80>>3]>.5):0){Dd(a,f+56|0);_m(a,100098)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];fn(a,j);_m(a,100107)|0;if((d|0)>1){f=1;do{e=b+(f<<4)|0;c[j>>2]=c[e>>2];c[j+4>>2]=c[e+4>>2];c[j+8>>2]=c[e+8>>2];c[j+12>>2]=c[e+12>>2];fn(a,j);_m(a,100116)|0;f=f+1|0}while((f|0)!=(d|0))}_m(a,100143)|0}if(+h[(c[g>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[g>>2]|0)+16|0);_m(a,100098)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];fn(a,j);_m(a,100107)|0;if((d|0)>1){f=1;do{g=b+(f<<4)|0;c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];fn(a,j);_m(a,100116)|0;f=f+1|0}while((f|0)!=(d|0))}_m(a,100159)|0}i=k;return}function zd(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0;l=i;i=i+16|0;j=l;e=a+16|0;if((g|0)!=0?(k=c[e>>2]|0,+h[k+80>>3]>.5):0){Dd(a,k+56|0);_m(a,100098)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];fn(a,j);_m(a,100107)|0;if((d|0)>1){f=1;do{gn(a,b+(f<<4)|0,3);_m(a,100133)|0;f=f+3|0}while((f|0)<(d|0))}_m(a,100143)|0}if(+h[(c[e>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[e>>2]|0)+16|0);_m(a,100098)|0;c[j>>2]=c[b>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];fn(a,j);_m(a,100107)|0;if((d|0)>1){f=1;do{gn(a,b+(f<<4)|0,3);_m(a,100133)|0;f=f+3|0}while((f|0)<(d|0))}_m(a,100125)|0}i=l;return}function Ad(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0;g=i;i=i+16|0;f=g;e=a+16|0;if(+h[(c[e>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[e>>2]|0)+16|0);_m(a,100098)|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];fn(a,f);_m(a,100107)|0;if((d|0)>1){e=1;do{j=b+(e<<4)|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];fn(a,f);_m(a,100116)|0;e=e+1|0}while((e|0)!=(d|0))}_m(a,100125)|0}i=g;return}function Bd(a,b){a=a|0;b=b|0;_m(a,100095)|0;_m(a,b)|0;_m(a,175632)|0;return}function Cd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;k=n+16|0;m=n+8|0;l=n;g=a+16|0;if((f|0)!=0?(j=c[g>>2]|0,+h[j+80>>3]>.5):0){Dd(a,j+56|0);_m(a,115696)|0;gn(a,d,e);_m(a,126232)|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];fn(a,k);c[l>>2]=e;c[l+4>>2]=b;dn(a,100012,l)}if(+h[(c[g>>2]|0)+40>>3]>.5){Ed(a);Dd(a,(c[g>>2]|0)+16|0);_m(a,115696)|0;gn(a,d,e);_m(a,126232)|0;c[k>>2]=c[d>>2];c[k+4>>2]=c[d+4>>2];c[k+8>>2]=c[d+8>>2];c[k+12>>2]=c[d+12>>2];fn(a,k);c[m>>2]=e;c[m+4>>2]=b;dn(a,100028,m)}i=n;return}function Dd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0.0,j=0.0;f=i;i=i+32|0;e=f;if(b){switch(c[(c[a+16>>2]|0)+4>>2]|0){case 1:case 0:{d=134935;break}case 2:{d=134886;break}case 3:{d=134900;break}default:d=100064}j=+h[b+8>>3];g=+h[b+16>>3];h[e>>3]=+h[b>>3];h[e+8>>3]=j;h[e+16>>3]=g;c[e+24>>2]=d;dn(a,100071,e)}i=f;return}function Ed(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m+8|0;k=m;j=b+16|0;g=c[j>>2]|0;d=c[g+160>>2]|0;en(b,+h[g+152>>3]);_m(b,100045)|0;if((d|0)!=0?(e=c[d>>2]|0,(e|0)!=0):0){g=e;do{d=d+4|0;if(lA(g,134447)|0){f=g;while(1){e=f+1|0;if(!(a[f>>0]|0))break;else f=e}if(a[e>>0]|0)do{c[k>>2]=e;dn(b,100060,k);f=e;while(1){e=f+1|0;if(!(a[f>>0]|0))break;else f=e}}while((a[e>>0]|0)!=0);if(!(lA(g,157791)|0))h[(c[j>>2]|0)+152>>3]=0.0;c[l>>2]=g;dn(b,120678,l)}g=c[d>>2]|0}while((g|0)!=0)}i=m;return}function Fd(b){b=b|0;var d=0;_m(b,106145)|0;d=zj(c[(c[b>>2]|0)+168>>2]|0,106201)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){_m(b,106212)|0;_m(b,d)|0;_m(b,106236)|0}_m(b,106257)|0;_m(b,106305)|0;_m(b,106359)|0;d=b+12|0;_m(b,Vp(c[c[c[d>>2]>>2]>>2]|0)|0)|0;_m(b,109462)|0;_m(b,Vp(c[(c[c[d>>2]>>2]|0)+4>>2]|0)|0)|0;_m(b,109472)|0;_m(b,Vp(c[(c[c[d>>2]>>2]|0)+8>>2]|0)|0)|0;_m(b,106683)|0;_m(b,106786)|0;return}function Gd(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0.0,l=0.0,m=0.0;j=i;i=i+48|0;g=j+16|0;f=j+8|0;e=j;d=c[b+16>>2]|0;_m(b,105980)|0;d=d+8|0;if(a[(ok(c[d>>2]|0)|0)>>0]|0){_m(b,106646)|0;_m(b,Vp(ok(c[d>>2]|0)|0)|0)|0}c[e>>2]=_(c[b+168>>2]|0,c[b+164>>2]|0)|0;dn(b,105985,e);e=c[b+452>>2]|0;c[f>>2]=c[b+448>>2];c[f+4>>2]=e;dn(b,106001,f);m=+h[b+392>>3];l=+h[b+400>>3];k=+h[b+408>>3];h[g>>3]=+h[b+384>>3];h[g+8>>3]=m;h[g+16>>3]=l;h[g+24>>3]=k;dn(b,106034,g);_m(b,106065)|0;_m(b,106101)|0;_m(b,107669)|0;i=j;return}function Hd(a){a=a|0;_m(a,105972)|0;return}function Id(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;ce(a,b,0,125338,c[(c[a+16>>2]|0)+8>>2]|0);_m(a,107669)|0;return}function Jd(a){a=a|0;_m(a,105820)|0;return}function Kd(b){b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e;g=c[b+16>>2]|0;d=g+8|0;ce(b,c[g+212>>2]|0,0,134935,c[d>>2]|0);_m(b,105924)|0;en(b,+h[b+488>>3]);_m(b,126232)|0;en(b,+h[b+496>>3]);c[f>>2]=0-(c[b+360>>2]|0);dn(b,105943,f);en(b,+h[b+504>>3]);_m(b,126232)|0;en(b,-+h[b+512>>3]);_m(b,105967)|0;if(a[(ok(c[d>>2]|0)|0)>>0]|0){_m(b,105876)|0;_m(b,Vp(ok(c[d>>2]|0)|0)|0)|0;_m(b,105884)|0}i=e;return}function Ld(a){a=a|0;_m(a,105820)|0;return}function Md(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=d+8|0;ce(a,c[d+212>>2]|0,0,131620,c[b>>2]|0);_m(a,107669)|0;_m(a,105876)|0;_m(a,Vp(ok(c[b>>2]|0)|0)|0)|0;_m(a,105884)|0;return}function Nd(a){a=a|0;_m(a,105820)|0;return}function Od(a){a=a|0;var b=0,d=0,e=0;d=c[a+16>>2]|0;b=c[a+160>>2]|0;if((b|0)>1)b=c[(c[(c[a>>2]|0)+308>>2]|0)+(b<<2)>>2]|0;else b=0;e=d+8|0;ce(a,c[d+212>>2]|0,b,134886,c[e>>2]|0);_m(a,107669)|0;_m(a,105876)|0;_m(a,Vp(ok(c[e>>2]|0)|0)|0)|0;_m(a,105884)|0;return}function Pd(a){a=a|0;_m(a,105820)|0;return}function Qd(a){a=a|0;var b=0,d=0;d=c[a+16>>2]|0;b=d+8|0;ce(a,c[d+212>>2]|0,0,134900,c[b>>2]|0);_m(a,107669)|0;_m(a,105876)|0;b=Up(125772,c[b>>2]|0)|0;_m(a,Vp(b)|0)|0;pB(b);_m(a,105884)|0;return}function Rd(a){a=a|0;_m(a,105820)|0;return}function Sd(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;_m(b,105826)|0;if(f){_m(b,105829)|0;_m(b,Vp(f)|0)|0;_m(b,122268)|0}_m(b,105719)|0;_m(b,107630)|0;if((c|0)!=0?(a[c>>0]|0)!=0:0){_m(b,105837)|0;_m(b,c)|0;_m(b,122268)|0}if((d|0)!=0?(a[d>>0]|0)!=0:0){_m(b,105851)|0;_m(b,Wp(d,1)|0)|0;_m(b,122268)|0}if((e|0)!=0?(a[e>>0]|0)!=0:0){_m(b,105866)|0;_m(b,Vp(e)|0)|0;_m(b,122268)|0}_m(b,107669)|0;return}function Td(a){a=a|0;_m(a,107624)|0;_m(a,105820)|0;return}function Ud(e,f,g){e=e|0;f=f|0;g=g|0;var 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.0,J=0,K=0,L=0,M=0;M=i;i=i+176|0;L=M+160|0;K=M+152|0;F=M+136|0;J=M+128|0;E=M+120|0;D=M+112|0;C=M+104|0;B=M+96|0;A=M+88|0;y=M+80|0;w=M+72|0;v=M+64|0;u=M+56|0;t=M+48|0;j=M+40|0;q=M+32|0;s=M+24|0;r=M+16|0;p=M+8|0;o=M;G=c[e+16>>2]|0;_m(e,105351)|0;switch(a[g+48>>0]|0){case 108:{_m(e,105357)|0;break}case 114:{_m(e,105378)|0;break}default:_m(e,105397)|0}H=f+8|0;I=+h[g+24>>3]+ +h[H>>3];h[H>>3]=I;H=G+260|0;if(!(b[H>>1]&512)){_m(e,105419)|0;en(e,+h[f>>3]);_m(e,105424)|0;en(e,-I);_m(e,122268)|0}x=g+4|0;f=c[x>>2]|0;n=c[f+8>>2]|0;if(n){switch(c[(c[(c[(c[e>>2]|0)+168>>2]|0)+16>>2]|0)+244>>2]|0){case 1:{m=n;f=n+16|0;j=n+8|0;break}case 2:{m=n+24|0;f=n+32|0;j=n+28|0;break}default:{m=n+4|0;f=n+16|0;j=n+8|0}}k=c[f>>2]|0;j=c[j>>2]|0;l=c[n+12>>2]|0;c[o>>2]=c[m>>2];dn(e,105430,o);f=c[n+24>>2]|0;if(f){c[p>>2]=f;dn(e,105447,p)}_m(e,122268)|0;if(j){c[r>>2]=j;dn(e,105451,r)}if(l){c[s>>2]=l;dn(e,105469,s)}if(!k)k=0;else{c[q>>2]=k;dn(e,105488,q)}}else{c[j>>2]=c[f>>2];dn(e,105505,j);k=0;j=0}f=c[x>>2]|0;if((f|0)!=0?(z=c[f+24>>2]|0,(z&127|0)!=0):0){if(!((j|0)!=0|(z&1|0)==0))dn(e,105523,t);if(!((k|0)!=0|(z&2|0)==0))dn(e,105543,u);if(z&100){dn(e,105564,v);if(!(z&4))f=0;else{dn(e,129426,w);f=1}if(z&64){c[y>>2]=(f|0)!=0?124034:164137;dn(e,105583,y);f=1}if(z&32){c[A>>2]=(f|0)!=0?124034:164137;dn(e,105594,A)}dn(e,122268,B)}if(z&8)dn(e,105609,C);if(z&16)dn(e,105633,D)}h[E>>3]=+h[(c[x>>2]|0)+16>>3];dn(e,105655,E);f=G+16|0;switch(c[G+48>>2]|0){case 5:{f=c[f>>2]|0;if(hA(f,160746)|0){c[J>>2]=f;dn(e,105673,J)}break}case 1:{E=d[f+1>>0]|0;J=d[f+2>>0]|0;c[F>>2]=d[f>>0];c[F+4>>2]=E;c[F+8>>2]=J;dn(e,105684,F);break}default:Ia(161945,104865,486,105706)}_m(e,105719)|0;if(b[H>>1]&512){c[K>>2]=Vp(c[G+212>>2]|0)|0;dn(e,105721,K);_m(e,105770)|0;en(e,-I);_m(e,105788)|0}_m(e,Wp(c[g>>2]|0,1)|0)|0;if(b[H>>1]&512)dn(e,105791,L);_m(e,105811)|0;i=M;return}function Vd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;switch(c|0){case 2:{d=ae(a,b,2)|0;break}case 3:{d=be(a)|0;break}default:d=0}_m(a,105315)|0;_d(a,c,d);_m(a,105324)|0;en(a,+h[b>>3]);_m(a,105330)|0;d=b+8|0;en(a,-+h[d>>3]);_m(a,105337)|0;en(a,+h[b+16>>3]-+h[b>>3]);_m(a,105344)|0;en(a,+h[b+24>>3]-+h[d>>3]);_m(a,104731)|0;return}function Wd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;switch(d|0){case 2:{e=ae(a,b,c)|0;break}case 3:{e=be(a)|0;break}default:e=0}_m(a,105306)|0;_d(a,d,e);_m(a,104721)|0;if((c|0)>0){d=0;do{en(a,+h[b+(d<<4)>>3]);_m(a,124034)|0;en(a,-+h[b+(d<<4)+8>>3]);_m(a,126232)|0;d=d+1|0}while((d|0)!=(c|0))}en(a,+h[b>>3]);_m(a,124034)|0;en(a,-+h[b+8>>3]);_m(a,104731)|0;return}function Xd(a,d,e,f,g,j){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var k=0,l=0;l=i;i=i+16|0;k=l;g=c[a+16>>2]|0;switch(j|0){case 2:{f=ae(a,d,e)|0;break}case 3:{f=be(a)|0;break}default:f=0}_m(a,104901)|0;if(b[g+260>>1]&512){_m(a,104907)|0;_m(a,Vp(c[g+212>>2]|0)|0)|0;_m(a,104913)|0}_d(a,j,f);_m(a,104918)|0;if((e|0)>0){f=77;j=0;while(1){c[k>>2]=f;dn(a,104923,k);en(a,+h[d+(j<<4)>>3]);_m(a,124034)|0;en(a,-+h[d+(j<<4)+8>>3]);g=j+1|0;if((g|0)==(e|0))break;else{f=(j|0)==0?67:32;j=g}}}_m(a,104731)|0;i=l;return}function Yd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;_m(a,104711)|0;_d(a,0,0);_m(a,104721)|0;if((c|0)>0){d=0;do{en(a,+h[b+(d<<4)>>3]);_m(a,124034)|0;en(a,-+h[b+(d<<4)+8>>3]);_m(a,126232)|0;d=d+1|0}while((d|0)!=(c|0))}_m(a,104731)|0;return}function Zd(a,b){a=a|0;b=b|0;_m(a,104705)|0;_m(a,Vp(b)|0)|0;_m(a,106786)|0;return}function _d(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+96|0;l=q+48|0;p=q+40|0;n=q+32|0;o=q+24|0;k=q+16|0;g=q+8|0;f=q;m=c[b+16>>2]|0;_m(b,104736)|0;a:do switch(d|0){case 2:{c[f>>2]=e;dn(b,104744,f);break}case 3:{c[g>>2]=e;dn(b,104755,g);break}case 0:{_m(b,159165)|0;break}default:{d=m+56|0;f=l;g=d;j=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(j|0));$d(b,l);if((c[m+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:break a;default:{}}h[k>>3]=+(d&255)/255.0;dn(b,104766,k)}}}while(0);_m(b,104785)|0;e=m+16|0;f=l;g=e;j=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(j|0));$d(b,l);d=m+152|0;if(+h[d>>3]!=1.0){_m(b,104796)|0;en(b,+h[d>>3])}switch(c[m+144>>2]|0){case 1:{c[o>>2]=104836;dn(b,104813,o);break}case 2:{c[n>>2]=104840;dn(b,104813,n);break}default:{}}b:do if((c[m+48>>2]|0)==1){d=a[e+3>>0]|0;switch(d<<24>>24){case -1:case 0:break b;default:{}}h[p>>3]=+(d&255)/255.0;dn(b,104844,p)}while(0);_m(b,122268)|0;i=q;return}function $d(b,d){b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;a:do switch(c[d+32>>2]|0){case 5:{_m(b,c[d>>2]|0)|0;break}case 1:if(!(a[d+3>>0]|0)){_m(b,161276)|0;break a}else{d=c[d>>2]|0;c[e>>2]=d&255;c[e+4>>2]=d>>>8&255;c[e+8>>2]=d>>>16&255;dn(b,106995,e);break a}default:Ia(161945,104865,117,104885)}while(0);i=f;return}function ae(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+112|0;o=t+64|0;r=t+56|0;n=t+48|0;m=t+40|0;j=t;l=t+8|0;q=c[11777]|0;c[11777]=q+1;p=c[b+16>>2]|0;f=+(c[p+136>>2]|0)*3.141592653589793/180.0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;nt(d,l,e,f,0);c[o>>2]=q;dn(b,105138,o);_m(b,105203)|0;en(b,+h[l>>3]);_m(b,105208)|0;en(b,+h[l+8>>3]);_m(b,105215)|0;en(b,+h[l+16>>3]);_m(b,105222)|0;en(b,+h[l+24>>3]);_m(b,105229)|0;l=p+140|0;f=+g[l>>2];if(f>0.0){h[j>>3]=f+-.001;dn(b,105234,j)}else _m(b,105010)|0;d=p+56|0;e=o;j=d;k=e+40|0;do{c[e>>2]=c[j>>2];e=e+4|0;j=j+4|0}while((e|0)<(k|0));$d(b,o);_m(b,105046)|0;a:do if((c[p+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{s=7;break a}default:{}}h[m>>3]=+(d&255)/255.0;dn(b,122876,m)}else s=7;while(0);if((s|0)==7)_m(b,105061)|0;_m(b,105064)|0;f=+g[l>>2];if(f>0.0){h[n>>3]=f;dn(b,105234,n)}else _m(b,105070)|0;d=p+96|0;e=o;j=d;k=e+40|0;do{c[e>>2]=c[j>>2];e=e+4|0;j=j+4|0}while((e|0)<(k|0));$d(b,o);_m(b,105046)|0;b:do if((c[p+128>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{s=14;break b}default:{}}h[r>>3]=+(d&255)/255.0;dn(b,122876,r)}else s=14;while(0);if((s|0)==14)_m(b,105061)|0;_m(b,105274)|0;i=t;return q|0}function be(b){b=b|0;var d=0,e=0.0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0;q=i;i=i+64|0;l=q+16|0;o=q+8|0;k=q;n=c[11776]|0;c[11776]=n+1;m=c[b+16>>2]|0;r=+(c[m+136>>2]|0)*3.141592653589793/180.0;e=r;if(r==0.0){f=50;d=50}else{f=~~((+Q(+e)+1.0)*50.0);d=~~((1.0-+R(+e))*50.0)}c[l>>2]=n;c[l+4>>2]=f;c[l+8>>2]=d;dn(b,104926,l);_m(b,105010)|0;d=m+56|0;f=l;g=d;j=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(j|0));$d(b,l);_m(b,105046)|0;a:do if((c[m+88>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{p=6;break a}default:{}}h[k>>3]=+(d&255)/255.0;dn(b,122876,k)}else p=6;while(0);if((p|0)==6)_m(b,105061)|0;_m(b,105064)|0;_m(b,105070)|0;d=m+96|0;f=l;g=d;j=f+40|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(j|0));$d(b,l);_m(b,105046)|0;b:do if((c[m+128>>2]|0)==1){d=a[d+3>>0]|0;switch(d<<24>>24){case -1:case 0:{p=10;break b}default:{}}h[o>>3]=+(d&255)/255.0;dn(b,122876,o)}else p=10;while(0);if((p|0)==10)_m(b,105061)|0;_m(b,105106)|0;i=q;return n|0}function ce(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;k=i;i=i+16|0;j=k+8|0;h=k;_m(b,105894)|0;_m(b,Vp(d)|0)|0;if(e){c[h>>2]=Vp(e)|0;dn(b,105902,h)}c[j>>2]=f;dn(b,105906,j);d=zj(g,105918)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){_m(b,126232)|0;_m(b,Vp(d)|0)|0}_m(b,122268)|0;i=k;return}function de(a){a=a|0;var b=0;_m(a,106667)|0;b=a+12|0;_m(a,c[c[c[b>>2]>>2]>>2]|0)|0;_m(a,109462)|0;_m(a,c[(c[c[b>>2]>>2]|0)+4>>2]|0)|0;_m(a,109472)|0;_m(a,c[(c[c[b>>2]>>2]|0)+8>>2]|0)|0;_m(a,106683)|0;return}function ee(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;e=f;d=c[b+16>>2]|0;_m(b,106644)|0;d=d+8|0;if(a[(ok(c[d>>2]|0)|0)>>0]|0){_m(b,106646)|0;_m(b,ok(c[d>>2]|0)|0)|0}c[e>>2]=_(c[b+168>>2]|0,c[b+164>>2]|0)|0;dn(b,106655,e);c[11828]=0;i=f;return}function fe(a){a=a|0;c[11828]=1;return}function ge(a){a=a|0;c[11828]=-1;return}function he(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;j=n+8|0;m=n;f=c[b+16>>2]|0;if((c[f+144>>2]|0)!=0?(l=e+4|0,k=~~(+h[(c[l>>2]|0)+16>>3]*+h[b+352>>3]),(k|0)!=0):0){ne(b);_m(b,106583)|0;g=d+8|0;h[g>>3]=+h[g>>3]-+(k|0)*.55;c[j>>2]=c[d>>2];c[j+4>>2]=c[d+4>>2];c[j+8>>2]=c[d+8>>2];c[j+12>>2]=c[d+12>>2];fn(b,j);_m(b,106597)|0;_m(b,c[e>>2]|0)|0;_m(b,106606)|0;_m(b,106404)|0;g=j;d=f+16|0;f=g+40|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(f|0));oe(b,j);_m(b,106608)|0;j=c[l>>2]|0;l=c[j+8>>2]|0;l=c[((l|0)==0?j:l+4|0)>>2]|0;_m(b,122268)|0;_m(b,l)|0;_m(b,122268)|0;c[m>>2]=k;dn(b,106617,m);switch(a[e+48>>0]|0){case 108:{_m(b,106622)|0;break}case 114:{_m(b,106633)|0;break}default:{}}pe(b);_m(b,175632)|0}i=n;return}function ie(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0.0,m=0.0,n=0.0;k=i;i=i+48|0;f=k;g=c[a+16>>2]|0;j=g+144|0;if(c[j>>2]|0){n=+h[b>>3];e=b+8|0;m=+h[e>>3];l=+h[b+24>>3]-m;h[b>>3]=n-(+h[b+16>>3]-n);h[e>>3]=m-l;ne(a);_m(a,106569)|0;gn(a,b,2);_m(a,106404)|0;do if(!d)if(!(c[11828]|0)){_m(a,120794)|0;break}else{_m(a,160654)|0;break}else{b=f;d=g+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));oe(a,f)}while(0);if((c[11828]|0)==1)c[11828]=0;_m(a,106515)|0;en(a,+h[g+152>>3]);_m(a,106558)|0;b=f;d=g+16|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));oe(a,f);b=c[j>>2]|0;if((b|0)==1){_m(a,106412)|0;b=c[j>>2]|0}if((b|0)==2)_m(a,106421)|0;pe(a);_m(a,175632)|0}i=k;return}function je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0;k=i;i=i+48|0;f=k;g=c[a+16>>2]|0;j=g+144|0;if(c[j>>2]|0){ne(a);_m(a,106541)|0;gn(a,b,d);_m(a,106404)|0;do if(!e)if(!(c[11828]|0)){_m(a,120794)|0;break}else{_m(a,160654)|0;break}else{b=f;e=g+56|0;d=b+40|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(d|0));oe(a,f)}while(0);if((c[11828]|0)==1)c[11828]=0;_m(a,106515)|0;en(a,+h[g+152>>3]);_m(a,106558)|0;b=f;e=g+16|0;d=b+40|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(d|0));oe(a,f);b=c[j>>2]|0;if((b|0)==1){_m(a,106412)|0;b=c[j>>2]|0}if((b|0)==2)_m(a,106421)|0;pe(a);_m(a,175632)|0}i=k;return}function ke(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0,m=0;m=i;i=i+48|0;j=m;k=c[a+16>>2]|0;l=k+144|0;if(c[l>>2]|0){ne(a);_m(a,106390)|0;gn(a,b,d);_m(a,106404)|0;f=j;e=k+16|0;g=f+40|0;do{c[f>>2]=c[e>>2];f=f+4|0;e=e+4|0}while((f|0)<(g|0));oe(a,j);_m(a,106515)|0;en(a,+h[k+152>>3]);f=c[l>>2]|0;if((f|0)==1){_m(a,106412)|0;f=c[l>>2]|0}if((f|0)==2)_m(a,106421)|0;_m(a,106524)|0;pe(a);_m(a,175632)|0}i=m;return}function le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+48|0;g=j;e=c[a+16>>2]|0;h=e+144|0;if(c[h>>2]|0){ne(a);_m(a,106390)|0;gn(a,b,d);_m(a,106404)|0;f=g;b=e+16|0;d=f+40|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0}while((f|0)<(d|0));oe(a,g);b=c[h>>2]|0;if((b|0)==1){_m(a,106412)|0;b=c[h>>2]|0}if((b|0)==2)_m(a,106421)|0;pe(a);_m(a,175632)|0}i=j;return}function me(a,b){a=a|0;b=b|0;_m(a,106387)|0;_m(a,b)|0;_m(a,175632)|0;return}function ne(b){b=b|0;if(!(a[b+144>>0]|0))_m(b,106512)|0;else _m(b,c[b+148>>2]|0)|0;return}function oe(b,d){b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;a:do switch(c[d+32>>2]|0){case 5:{_m(b,c[d>>2]|0)|0;break}case 1:if(!(a[d+3>>0]|0)){_m(b,120794)|0;break a}else{d=c[d>>2]|0;c[e>>2]=d&255;c[e+4>>2]=d>>>8&255;c[e+8>>2]=d>>>16&255;dn(b,106995,e);break a}default:Ia(161945,106430,49,106494)}while(0);i=f;return}function pe(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;b=c[a+16>>2]|0;switch(c[b+12>>2]|0){case 8:{d=1;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134886;break}case 10:{d=0;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134886;break}case 3:case 2:case 9:{d=1;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134900;break}case 7:case 6:case 11:{d=0;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134900;break}case 0:{d=1;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134935;break}case 4:{d=0;e=c[(c[b+8>>2]|0)+8>>2]|0;f=106466;break}case 1:{d=1;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134935;break}case 5:{d=0;e=c[(c[b+8>>2]|0)+8>>2]|0;f=134935;break}default:Ia(161945,106430,106,106449)}c[g>>2]=d;c[g+4>>2]=f;c[g+8>>2]=e;dn(a,106478,g);i=h;return}function qe(b){b=b|0;var 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;t=i;i=i+16|0;e=t;d=c[11881]|0;if(!d){c[11882]=64;d=aq(64)|0;c[11881]=d}a:do if((b|0)!=0?(q=e+15|0,r=e+14|0,f=a[b>>0]|0,f<<24>>24!=0):0){k=0;e=0;g=0;p=0;m=0;h=0;b:while(1){n=g;j=h;c:while(1){g=c[11882]|0;if((p|0)>(g+-8|0)){d=g<<1;c[11882]=d;d=cq(c[11881]|0,d)|0;c[11881]=d;f=a[b>>0]|0;d=d+p|0}switch(f<<24>>24){case 60:{g=b;h=n;l=4;f=125761;o=39;break c}case 62:{l=4;k=j;f=125756;o=40;break c}case 45:{f=n;g=j;o=38;break c}case 38:{g=a[b+1>>0]|0;d:do if(g<<24>>24!=35){if(((g&-33)+-65&255)<26){h=b+2|0;while(1){g=a[h>>0]|0;if(((g&-33)+-65&255)<26)h=h+1|0;else break}}}else{g=a[b+2>>0]|0;switch(g<<24>>24){case 88:case 120:break;default:{if((g+-48&255)>=10)break d;h=b+3|0;while(1){g=a[h>>0]|0;if((g+-48&255)<10)h=h+1|0;else break d}}}h=b+3|0;while(1){g=a[h>>0]|0;if((g+-48&255)>=10)switch(g<<24>>24){case 65:case 66:case 67:case 68:case 69:case 70:case 97:case 98:case 99:case 100:case 101:case 102:break;default:break d}h=h+1|0}}while(0);if(g<<24>>24!=59){g=b;h=n;l=5;f=125738;o=39;break c}switch(f<<24>>24){case 60:{g=b;h=n;l=4;f=125761;o=39;break c}case 62:{l=4;k=j;f=125756;o=40;break c}case 45:{f=n;g=j;o=38;break c}default:{}}break}default:{}}if(k&f<<24>>24==32?(a[m>>0]|0)==32:0){g=b;h=n;l=6;f=125731;o=39;break}switch(f<<24>>24){case 34:{g=b;h=n;l=6;f=125724;o=39;break c}case 39:{l=5;k=j;f=125744;o=40;break c}default:{}}if(f<<24>>24>=0){g=b;h=n;l=1;f=b;o=39;break}f=f&255;g=127;h=0;while(1){f=f&g;g=g>>>1;if(g>>>0>=f>>>0)break;else h=h+1|0}if((h|0)<=0){e=DB(e|0,n|0,6)|0;e=wB(f&255|0,0,e|0,C|0)|0;f=C;h=j+-1|0;if((j|0)>1)g=f;else{o=33;break}}else{e=f&255;g=0}b=b+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){s=d;break a}else{n=g;j=h}}if((o|0)==33){o=0;a[q>>0]=59;k=e;j=3;n=r;while(1){e=LB(k|0,f|0,10,0)|0;g=n+-1|0;a[n>>0]=e|48;e=KB(k|0,f|0,10,0)|0;m=C;l=j+1|0;if((j|0)>11)break b;if(f>>>0>0|(f|0)==0&k>>>0>9){k=e;f=m;j=l;n=g}else{j=m;f=n;break}}f=f+-2|0;a[g>>0]=35;a[f>>0]=38;if(!l){m=b;g=j;j=p}else{n=j;k=h;o=40}}else if((o|0)==38){n=f;l=5;k=g;f=125750;o=40}else if((o|0)==39){b=g;n=h;k=j;o=40}if((o|0)==40){j=l+p|0;g=l;h=d;while(1){g=g+-1|0;a[h>>0]=a[f>>0]|0;if(!g)break;else{h=h+1|0;f=f+1|0}}m=b;g=n;d=d+l|0;h=k}b=m+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){s=d;break a}else{k=(m|0)!=0;p=j}}Mz(106686,46,1,c[22667]|0)|0;qb(1)}else s=d;while(0);a[s>>0]=0;i=t;return c[11881]|0}function re(a){a=a|0;var b=0;_m(a,109434)|0;_m(a,109442)|0;b=a+12|0;_m(a,qe(c[c[c[b>>2]>>2]>>2]|0)|0)|0;_m(a,109462)|0;_m(a,qe(c[(c[c[b>>2]>>2]|0)+4>>2]|0)|0)|0;_m(a,109472)|0;_m(a,qe(c[(c[c[b>>2]>>2]|0)+8>>2]|0)|0)|0;_m(a,109475)|0;return}function se(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0;k=i;i=i+32|0;j=k+24|0;g=k+16|0;f=k+8|0;e=k;d=c[b+16>>2]|0;c[11879]=~~(+h[b+232>>3]-+h[b+216>>3]);c[11880]=~~(+h[b+224>>3]-+h[b+208>>3]);_m(b,108121)|0;_m(b,108128)|0;d=ok(c[d+8>>2]|0)|0;if(a[d>>0]|0){_m(b,108197)|0;_m(b,qe(d)|0)|0;_m(b,108205)|0}c[e>>2]=_(c[b+168>>2]|0,c[b+164>>2]|0)|0;dn(b,108214,e);_m(b,108234)|0;_m(b,108269)|0;_m(b,108297)|0;_m(b,108303)|0;_m(b,108346)|0;_m(b,108387)|0;_m(b,108406)|0;_m(b,108423)|0;_m(b,108471)|0;_m(b,108524)|0;_m(b,108600)|0;_m(b,108676)|0;_m(b,108685)|0;_m(b,108708)|0;_m(b,108735)|0;_m(b,108788)|0;_m(b,108810)|0;_m(b,108855)|0;_m(b,108867)|0;_m(b,108877)|0;_m(b,108903)|0;_m(b,108788)|0;_m(b,108955)|0;_m(b,108855)|0;_m(b,108867)|0;_m(b,108999)|0;_m(b,108708)|0;_m(b,108735)|0;_m(b,108788)|0;_m(b,108955)|0;_m(b,108855)|0;_m(b,108867)|0;_m(b,108877)|0;_m(b,108903)|0;_m(b,108788)|0;_m(b,108810)|0;_m(b,108855)|0;_m(b,108867)|0;_m(b,109012)|0;_m(b,109020)|0;_m(b,109026)|0;_m(b,109040)|0;_m(b,109048)|0;_m(b,109081)|0;e=(c[11879]|0)+10|0;c[f>>2]=c[11880];c[f+4>>2]=e;dn(b,109158,f);_m(b,109188)|0;_m(b,109197)|0;_m(b,109255)|0;_m(b,109265)|0;_m(b,109330)|0;f=c[11879]|0;c[g>>2]=c[11880];c[g+4>>2]=f;dn(b,109367,g);g=c[11879]|0;c[j>>2]=c[11880];c[j+4>>2]=g;dn(b,109395,j);i=k;return}function te(a){a=a|0;_m(a,107672)|0;_m(a,107684)|0;_m(a,107692)|0;_m(a,107755)|0;_m(a,107684)|0;_m(a,107800)|0;_m(a,107849)|0;_m(a,107903)|0;_m(a,107684)|0;_m(a,108003)|0;_m(a,108052)|0;_m(a,107684)|0;_m(a,108104)|0;return}function ue(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;k=i;i=i+32|0;j=k+16|0;h=k+8|0;g=k;_m(b,107630)|0;if((d|0)!=0?(a[d>>0]|0)!=0:0){c[g>>2]=qe(d)|0;dn(b,107633,g)}if((e|0)!=0?(a[e>>0]|0)!=0:0){c[h>>2]=qe(e)|0;dn(b,107644,h)}if((f|0)!=0?(a[f>>0]|0)!=0:0){c[j>>2]=qe(f)|0;dn(b,107656,j)}_m(b,107669)|0;i=k;return}function ve(a){a=a|0;_m(a,107624)|0;return}function we(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,j=0.0,k=0.0,l=0.0,m=0.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.0,C=0.0,D=0.0;A=i;i=i+112|0;y=A+96|0;z=A+88|0;w=A+80|0;q=A+72|0;v=A+64|0;t=A+56|0;s=A+48|0;r=A+40|0;p=A+24|0;o=A+8|0;n=A;x=c[b+16>>2]|0;switch(a[f+48>>0]|0){case 108:{k=+h[f+32>>3];m=+h[e>>3];break}case 114:{m=+h[f+32>>3];k=m;m=+h[e>>3]-m;break}default:{m=+h[f+32>>3];k=m;m=+h[e>>3]-m*.5}}g=f+40|0;j=+h[g>>3];u=f+4|0;l=+h[(c[u>>2]|0)+16>>3];if(j<l){j=l*1.1+1.0;h[g>>3]=j}D=m+-8.0;C=+((c[11879]|0)>>>0)-+h[e+8>>3];B=l/5.0+(l<12.0?1.4:2.0);l=C-j+B;dn(b,107286,n);h[o>>3]=D;h[o+8>>3]=l;dn(b,107223,o);h[p>>3]=m+k+8.0-D;h[p+8>>3]=C+B-l;dn(b,107247,p);_m(b,107321)|0;_m(b,107355)|0;g=c[u>>2]|0;e=c[g+8>>2]|0;if(e){c[r>>2]=c[e+4>>2];dn(b,107445,r);g=c[e+8>>2]|0;if(g){c[s>>2]=g;dn(b,107464,s)}g=c[e+12>>2]|0;if(g){c[t>>2]=g;dn(b,107481,t)}g=c[e+16>>2]|0;if(g){c[v>>2]=g;dn(b,107499,v)}}else{c[q>>2]=c[g>>2];dn(b,107445,q)}h[w>>3]=+h[(c[u>>2]|0)+16>>3];dn(b,107515,w);g=x+16|0;switch(c[x+48>>2]|0){case 5:{g=c[g>>2]|0;if(hA(g,160746)|0){c[z>>2]=g;dn(b,107535,z)}break}case 1:{x=d[g+1>>0]|0;z=d[g+2>>0]|0;c[y>>2]=d[g>>0];c[y+4>>2]=x;c[y+8>>2]=z;dn(b,107545,y);break}default:Ia(161945,107009,438,107566)}_m(b,107579)|0;_m(b,qe(c[f>>2]|0)|0)|0;_m(b,107590)|0;_m(b,107613)|0;i=A;return}function xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0.0,k=0,l=0.0,m=0.0;e=i;i=i+32|0;f=e+16|0;k=e;_m(a,107187)|0;m=+h[b>>3];j=+h[b+16>>3]-m;l=+h[b+8>>3];g=+h[b+24>>3]-l;l=+((c[11879]|0)>>>0)-(l+g);h[k>>3]=m-j;h[k+8>>3]=l;dn(a,107223,k);h[f>>3]=j*2.0;h[f+8>>3]=g*2.0;dn(a,107247,f);Ee(a,d);_m(a,107069)|0;Ce(a);_m(a,107275)|0;i=e;return}function ye(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;l=m+24|0;k=m+8|0;j=m;_m(a,106792)|0;n=c[11879]|0;c[j>>2]=c[11880];c[j+4>>2]=n;dn(a,107045,j);Ee(a,e);_m(a,107069)|0;Ce(a);_m(a,107072)|0;if((d|0)>0){e=d+-1|0;j=0;do{g=+h[b+(j<<4)>>3];f=+((c[11879]|0)>>>0)-+h[b+(j<<4)+8>>3];if(!j){_m(a,107085)|0;h[k>>3]=g;h[k+8>>3]=f;dn(a,107165,k);_m(a,107176)|0}else{h[l>>3]=g;h[l+8>>3]=f;dn(a,107165,l)}if((j|0)==(e|0))_m(a,107179)|0;j=j+1|0}while((j|0)!=(d|0))}_m(a,106908)|0;i=m;return}function ze(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,k=0,l=0.0,m=0.0;k=i;i=i+32|0;j=k+8|0;e=k;_m(a,106792)|0;f=c[11879]|0;c[e>>2]=c[11880];c[e+4>>2]=f;dn(a,107045,e);Ee(a,g);_m(a,107069)|0;Ce(a);_m(a,107072)|0;if((d|0)>0){e=107085;g=0;while(1){m=+h[b+(g<<4)>>3];l=+((c[11879]|0)>>>0)-+h[b+(g<<4)+8>>3];c[j>>2]=e;h[j+8>>3]=m;h[j+16>>3]=l;dn(a,107088,j);f=g+1|0;if((f|0)==(d|0))break;else{e=(g|0)==0?107101:164137;g=f}}}_m(a,122268)|0;_m(a,107104)|0;i=k;return}function Ae(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0.0;l=i;i=i+48|0;k=l+24|0;j=l+8|0;g=l;_m(a,106792)|0;f=c[11879]|0;c[g>>2]=c[11880];c[g+4>>2]=f;dn(a,106829,g);_m(a,106869)|0;if((d|0)>0){e=d+-1|0;f=b+8|0;g=0;do{if(!g){_m(a,106881)|0;m=+((c[11879]|0)>>>0)-+h[f>>3];h[j>>3]=+h[b>>3];h[j+8>>3]=m;dn(a,106885,j);_m(a,106896)|0}else{m=+((c[11879]|0)>>>0)-+h[b+(g<<4)+8>>3];h[k>>3]=+h[b+(g<<4)>>3];h[k+8>>3]=m;dn(a,106885,k)}if((g|0)==(e|0))_m(a,106900)|0;g=g+1|0}while((g|0)!=(d|0))}_m(a,106904)|0;Ce(a);_m(a,106908)|0;i=l;return}function Be(a,b){a=a|0;b=b|0;_m(a,106774)|0;_m(a,qe(b)|0)|0;_m(a,106786)|0;return}function Ce(a){a=a|0;var b=0.0,d=0,e=0,f=0,g=0,j=0,k=0,l=0;l=i;i=i+48|0;d=l+8|0;k=l;j=c[a+16>>2]|0;_m(a,106920)|0;e=d;f=j+16|0;g=e+40|0;do{c[e>>2]=c[f>>2];e=e+4|0;f=f+4|0}while((e|0)<(g|0));De(a,d);b=+h[j+152>>3];if(b!=1.0){h[k>>3]=b;dn(a,106938,k)}switch(c[j+144>>2]|0){case 1:{_m(a,106955)|0;break}case 2:{_m(a,106973)|0;break}default:{}}_m(a,106990)|0;i=l;return}function De(b,d){b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;a:do switch(c[d+32>>2]|0){case 5:{_m(b,c[d>>2]|0)|0;break}case 1:if(!(a[d+3>>0]|0)){_m(b,159165)|0;break a}else{d=c[d>>2]|0;c[e>>2]=d&255;c[e+4>>2]=d>>>8&255;c[e+8>>2]=d>>>16&255;dn(b,106995,e);break a}default:Ia(161945,107009,94,107029)}while(0);i=f;return}function Ee(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+48|0;f=g;if(!b)_m(a,107148)|0;else{d=c[a+16>>2]|0;_m(a,107118)|0;b=f;d=d+56|0;e=b+40|0;do{c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}while((b|0)<(e|0));De(a,f);_m(a,107145)|0}i=g;return}function Fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+1056|0;h=j;g=j+24|0;f=j+8|0;c[f>>2]=d;e=Uz(g,1024,b,f)|0;do if((e|0)>=0)if((e|0)>1023){e=oB(e+1|0)|0;c[f>>2]=d;Vz(e,b,f)|0;break}else{e=oA(g)|0;break}else{e=c[(c[a+12>>2]|0)+16>>2]|0;c[h>>2]=ry(c[(qy()|0)>>2]|0)|0;Bb[e&31](109482,h);e=oA(164137)|0}while(0);i=j;return e|0}function Ge(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+8|0;e=b;_m(a,112124)|0;_m(a,112139)|0;_m(a,112178)|0;_m(a,112227)|0;c[e>>2]=160746;c[e+4>>2]=112315;dn(a,112296,e);c[d>>2]=160654;c[d+4>>2]=112321;dn(a,112296,d);i=b;return}function He(a){a=a|0;var b=0,d=0,e=0.0,f=0.0,g=0.0,j=0.0,k=0;b=i;i=i+64|0;d=b+8|0;k=b;c[k>>2]=ok(c[(c[a+16>>2]|0)+8>>2]|0)|0;dn(a,111077,k);j=+h[a+368>>3]*.5*+h[a+488>>3];g=+h[a+376>>3]*.5*+h[a+496>>3];e=+N(-500.0);f=+V(+(j/e))*180.0/3.141592653589793*2.0;e=+V(+(g/e))*180.0/3.141592653589793*2.0;h[d>>3]=j;h[d+8>>3]=g;h[d+16>>3]=-500.0;h[d+24>>3]=j;h[d+32>>3]=g;h[d+40>>3]=0.0;h[d+48>>3]=(f>e?f:e)*1.2;dn(a,111099,d);_m(a,111246)|0;_m(a,112076)|0;i=b;return}function Ie(a){a=a|0;_m(a,111060)|0;return}function Je(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0;f=i;i=i+16|0;h=f;c[h>>2]=b;c[h+4>>2]=d;c[h+8>>2]=e;dn(a,111030,h);g[12071]=+(_(d,-10)|0);i=f;return}function Ke(a){a=a|0;_m(a,111013)|0;return}function Le(a){a=a|0;_m(a,110995)|0;return}function Me(a){a=a|0;_m(a,110979)|0;return}function Ne(a){a=a|0;_m(a,110958)|0;g[12071]=+g[12071]+-2.0;return}function Oe(a){a=a|0;_m(a,110939)|0;return}function Pe(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=ok(c[(c[a+16>>2]|0)+8>>2]|0)|0;dn(a,110917,d);i=b;return}function Qe(a){a=a|0;_m(a,110901)|0;return}function Re(a){a=a|0;_m(a,110883)|0;g[12071]=+g[12071]+-5.0;return}function Se(a){a=a|0;_m(a,110867)|0;g[12071]=+g[12071]+5.0;return}function Te(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0;r=i;i=i+144|0;o=r+104|0;q=r+56|0;k=r+32|0;j=r+24|0;n=r;p=e+4|0;m=c[p>>2]|0;f=+h[m+16>>3];m=c[m>>2]|0;c[n>>2]=c[e>>2];h[n+8>>3]=f;c[n+16>>2]=m;dn(b,110713,n);g[12072]=+g[12071]+-9.0;switch(a[e+48>>0]|0){case 108:{f=+h[d>>3];break}case 114:{f=+h[d>>3]-+h[e+32>>3];h[d>>3]=f;break}default:{f=+h[d>>3]-+h[e+32>>3]*.5;h[d>>3]=f}}u=+h[b+488>>3];t=(f+ +h[b+504>>3])*u;s=(+h[d+8>>3]+ +h[b+512>>3])*+h[b+496>>3];h[j>>3]=u*+h[(c[p>>2]|0)+16>>3];n=Fe(b,110765,j)|0;f=+(c[b+360>>2]|0);h[k>>3]=0.0;h[k+8>>3]=0.0;h[k+16>>3]=f;d=Fe(b,110004,k)|0;f=+g[12072];h[o>>3]=t;h[o+8>>3]=s;h[o+16>>3]=f;j=Fe(b,110036,o)|0;k=o;l=(c[b+16>>2]|0)+16|0;m=k+40|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));o=Ze(b,o,0.0)|0;e=c[e>>2]|0;c[q>>2]=c[c[p>>2]>>2];h[q+8>>3]=.25;h[q+16>>3]=0.0;c[q+24>>2]=e;c[q+28>>2]=110852;c[q+32>>2]=n;c[q+36>>2]=d;c[q+40>>2]=j;c[q+44>>2]=o;q=Fe(b,110777,q)|0;_m(b,q)|0;pB(q);pB(d);pB(o);pB(j);pB(n);i=r;return}function Ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=i;i=i+240|0;x=z+192|0;y=z+152|0;t=z+128|0;r=z+104|0;o=z+80|0;n=z+48|0;e=z+24|0;m=z;_m(a,110590)|0;g[12072]=+g[12071]+-6.0;k=+h[b>>3];j=+h[a+488>>3];p=(k+ +h[a+504>>3])*j;l=+h[b+8>>3];A=+h[a+496>>3];q=(l+ +h[a+512>>3])*A;k=j*(+h[b+16>>3]-k);l=A*(+h[b+24>>3]-l);s=a+16|0;A=k+l;j=+h[(c[s>>2]|0)+152>>3]/A*.5*5.0;h[m>>3]=k;h[m+8>>3]=A*.25;h[m+16>>3]=l;b=Fe(a,109972,m)|0;m=a+360|0;A=+(c[m>>2]|0);h[e>>3]=90.0;h[e+8>>3]=0.0;h[e+16>>3]=A;e=Fe(a,110004,e)|0;A=+g[12072];h[x>>3]=p;h[x+8>>3]=q;h[x+16>>3]=A;f=Fe(a,110036,x)|0;u=x;v=(c[s>>2]|0)+16|0;w=u+40|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(w|0));v=Ze(a,x,0.0)|0;h[n>>3]=1.0;h[n+8>>3]=j;c[n+16>>2]=b;c[n+20>>2]=e;c[n+24>>2]=f;c[n+28>>2]=v;w=Fe(a,110605,n)|0;_m(a,w)|0;pB(b);pB(e);pB(f);pB(v);pB(w);if(d){h[o>>3]=k;h[o+8>>3]=l;h[o+16>>3]=1.0;f=Fe(a,109972,o)|0;A=+(c[m>>2]|0);h[r>>3]=0.0;h[r+8>>3]=0.0;h[r+16>>3]=A;e=Fe(a,110004,r)|0;A=+g[12072];h[t>>3]=p;h[t+8>>3]=q;h[t+16>>3]=A;b=Fe(a,110036,t)|0;u=x;v=(c[s>>2]|0)+56|0;w=u+40|0;do{c[u>>2]=c[v>>2];u=u+4|0;v=v+4|0}while((u|0)<(w|0));x=Ze(a,x,0.0)|0;h[y>>3]=0.0;h[y+8>>3]=0.0;h[y+16>>3]=0.0;c[y+24>>2]=f;c[y+28>>2]=e;c[y+32>>2]=b;c[y+36>>2]=x;y=Fe(a,110651,y)|0;_m(a,y)|0;pB(f);pB(e);pB(b);pB(x);pB(y)}i=z;return}function Ve(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=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.0,N=0,O=0.0;L=i;i=i+336|0;B=L+296|0;K=L+288|0;J=L+272|0;I=L+264|0;H=L+240|0;E=L+232|0;A=L+208|0;z=L+184|0;x=L+160|0;w=L+152|0;v=L+136|0;u=L+128|0;t=L+96|0;n=L+88|0;m=L+56|0;f=L+48|0;o=L+24|0;s=L;_m(a,110455)|0;g[12072]=+g[12071]+-2.0;q=a+488|0;r=a+496|0;M=+h[r>>3];h[s>>3]=+h[q>>3];h[s+8>>3]=M;h[s+16>>3]=1.0;s=Fe(a,109972,s)|0;y=a+360|0;M=+(c[y>>2]|0);h[o>>3]=0.0;h[o+8>>3]=0.0;h[o+16>>3]=M;o=Fe(a,110004,o)|0;M=+g[12072]+-2.0;h[B>>3]=0.0;h[B+8>>3]=0.0;h[B+16>>3]=M;p=Fe(a,110036,B)|0;C=a+16|0;j=B;k=(c[C>>2]|0)+16|0;l=j+40|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(l|0));l=Ze(a,B,0.0)|0;c[f>>2]=110099;c[f+4>>2]=d+1;f=Fe(a,110068,f)|0;D=(d|0)>0;F=a+504|0;G=a+512|0;if(D){k=0;while(1){O=+h[b+(k<<4)+8>>3]+ +h[G>>3];M=+h[(c[C>>2]|0)+152>>3];h[m>>3]=+h[b+(k<<4)>>3]+ +h[F>>3];h[m+8>>3]=O;h[m+16>>3]=0.0;h[m+24>>3]=M;N=Fe(a,110113,m)|0;c[n>>2]=f;c[n+4>>2]=N;j=Fe(a,110142,n)|0;pB(N);pB(f);k=k+1|0;if((k|0)==(d|0)){f=j;break}else f=j}}M=+h[b+8>>3]+ +h[G>>3];O=+h[(c[C>>2]|0)+152>>3];h[t>>3]=+h[b>>3]+ +h[F>>3];h[t+8>>3]=M;h[t+16>>3]=0.0;h[t+24>>3]=O;t=Fe(a,110113,t)|0;c[u>>2]=f;c[u+4>>2]=t;N=Fe(a,110142,u)|0;pB(t);pB(f);c[v>>2]=s;c[v+4>>2]=o;c[v+8>>2]=p;c[v+12>>2]=l;v=Fe(a,110470,v)|0;c[w>>2]=N;c[w+4>>2]=v;N=Fe(a,110197,w)|0;pB(v);_m(a,N)|0;pB(s);pB(o);pB(p);pB(l);pB(N);if(e){O=+h[r>>3];h[x>>3]=+h[q>>3];h[x+8>>3]=O;h[x+16>>3]=1.0;o=Fe(a,109972,x)|0;O=+(c[y>>2]|0);h[z>>3]=0.0;h[z+8>>3]=0.0;h[z+16>>3]=O;n=Fe(a,110004,z)|0;O=+g[12072]+-2.0;h[A>>3]=0.0;h[A+8>>3]=0.0;h[A+16>>3]=O;m=Fe(a,110036,A)|0;j=B;k=(c[C>>2]|0)+56|0;l=j+40|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(l|0));l=Ze(a,B,.25)|0;c[E>>2]=d;f=Fe(a,110515,E)|0;if(D){k=0;while(1){O=+h[b+(k<<4)+8>>3]+ +h[G>>3];h[H>>3]=+h[b+(k<<4)>>3]+ +h[F>>3];h[H+8>>3]=O;h[H+16>>3]=0.0;N=Fe(a,110530,H)|0;c[I>>2]=f;c[I+4>>2]=N;j=Fe(a,110552,I)|0;pB(N);pB(f);k=k+1|0;if((k|0)==(d|0)){f=j;break}else f=j}}c[J>>2]=o;c[J+4>>2]=n;c[J+8>>2]=m;c[J+12>>2]=l;J=Fe(a,110562,J)|0;c[K>>2]=f;c[K+4>>2]=J;N=Fe(a,110197,K)|0;pB(J);_m(a,N)|0;pB(o);pB(n);pB(m);pB(l);pB(N)}i=L;return}function We(a,b,d,e,f,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;j=j|0;var 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.0,C=0,D=0.0;A=i;i=i+208|0;f=A+160|0;z=A+152|0;y=A+136|0;u=A+128|0;t=A+96|0;s=A+88|0;r=A+56|0;l=A+48|0;v=A+24|0;x=A;_m(a,110382)|0;g[12072]=+g[12071]+-4.0;B=+h[a+496>>3];h[x>>3]=+h[a+488>>3];h[x+8>>3]=B;h[x+16>>3]=1.0;x=Fe(a,109972,x)|0;B=+(c[a+360>>2]|0);h[v>>3]=0.0;h[v+8>>3]=0.0;h[v+16>>3]=B;v=Fe(a,110004,v)|0;B=+g[12072]+-2.0;h[f>>3]=0.0;h[f+8>>3]=0.0;h[f+16>>3]=B;w=Fe(a,110036,f)|0;q=a+16|0;e=f;j=(c[q>>2]|0)+56|0;k=e+40|0;do{c[e>>2]=c[j>>2];e=e+4|0;j=j+4|0}while((e|0)<(k|0));p=Ze(a,f,0.0)|0;c[l>>2]=110396;c[l+4>>2]=d+2;f=Fe(a,110068,l)|0;if((d|0)>0){l=a+504|0;m=a+512|0;n=d+-1|0;o=0;do{e=b+(o<<4)|0;j=b+(o<<4)+8|0;D=+h[j>>3]+ +h[m>>3];B=+h[(c[q>>2]|0)+152>>3];h[r>>3]=+h[e>>3]+ +h[l>>3];h[r+8>>3]=D;h[r+16>>3]=0.0;h[r+24>>3]=B;C=Fe(a,110113,r)|0;c[s>>2]=f;c[s+4>>2]=C;k=Fe(a,110142,s)|0;pB(C);pB(f);if((o|0)==0|(o|0)==(n|0)){B=+h[j>>3]+ +h[m>>3];D=+h[(c[q>>2]|0)+152>>3];h[t>>3]=+h[e>>3]+ +h[l>>3];h[t+8>>3]=B;h[t+16>>3]=0.0;h[t+24>>3]=D;C=Fe(a,110113,t)|0;c[u>>2]=k;c[u+4>>2]=C;f=Fe(a,110142,u)|0;pB(C);pB(k)}else f=k;o=o+1|0}while((o|0)!=(d|0))}c[y>>2]=x;c[y+4>>2]=v;c[y+8>>2]=w;c[y+12>>2]=p;d=Fe(a,110405,y)|0;c[z>>2]=f;c[z+4>>2]=d;C=Fe(a,110197,z)|0;pB(d);_m(a,C)|0;pB(x);pB(v);pB(w);pB(p);pB(C);i=A;return}function Xe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=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.0,x=0,y=0.0;v=i;i=i+160|0;e=v+120|0;u=v+112|0;t=v+96|0;p=v+88|0;o=v+56|0;l=v+48|0;q=v+24|0;s=v;_m(a,109956)|0;g[12072]=+g[12071]+-6.0;w=+h[a+496>>3];h[s>>3]=+h[a+488>>3];h[s+8>>3]=w;h[s+16>>3]=1.0;s=Fe(a,109972,s)|0;w=+(c[a+360>>2]|0);h[q>>3]=0.0;h[q+8>>3]=0.0;h[q+16>>3]=w;q=Fe(a,110004,q)|0;w=+g[12072];h[e>>3]=0.0;h[e+8>>3]=0.0;h[e+16>>3]=w;r=Fe(a,110036,e)|0;n=a+16|0;f=e;j=(c[n>>2]|0)+16|0;k=f+40|0;do{c[f>>2]=c[j>>2];f=f+4|0;j=j+4|0}while((f|0)<(k|0));m=Ze(a,e,0.0)|0;c[l>>2]=110099;c[l+4>>2]=d;e=Fe(a,110068,l)|0;if((d|0)>0){j=a+504|0;k=a+512|0;l=0;while(1){y=+h[b+(l<<4)+8>>3]+ +h[k>>3];w=+h[(c[n>>2]|0)+152>>3];h[o>>3]=+h[b+(l<<4)>>3]+ +h[j>>3];h[o+8>>3]=y;h[o+16>>3]=0.0;h[o+24>>3]=w;x=Fe(a,110113,o)|0;c[p>>2]=e;c[p+4>>2]=x;f=Fe(a,110142,p)|0;pB(x);pB(e);l=l+1|0;if((l|0)==(d|0)){e=f;break}else e=f}}c[t>>2]=s;c[t+4>>2]=q;c[t+8>>2]=r;c[t+12>>2]=m;t=Fe(a,110151,t)|0;c[u>>2]=e;c[u+4>>2]=t;x=Fe(a,110197,u)|0;pB(t);_m(a,x)|0;pB(s);pB(q);pB(r);pB(m);pB(x);i=v;return}function Ye(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;dn(a,109937,e);i=d;return}function Ze(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+112|0;n=p+104|0;j=p+96|0;g=p+64|0;m=p+48|0;o=p+32|0;l=p+16|0;k=p;e=c[b+32>>2]|0;a:do switch(e|0){case 5:{e=c[b>>2]|0;if(!(lA(e,159758)|0)){c[k>>2]=110219;h[k+8>>3]=d;f=Fe(a,110202,k)|0;break a}if(!(lA(e,156888)|0)){c[l>>2]=110223;h[l+8>>3]=d;f=Fe(a,110202,l)|0;break a}if(!(lA(e,154887)|0)){c[o>>2]=110229;h[o+8>>3]=d;f=Fe(a,110202,o)|0;break a}else{c[m>>2]=e;h[m+8>>3]=d;f=Fe(a,110202,m)|0;break a}}case 1:{f=c[b>>2]|0;h[g>>3]=+(f&255|0)*.00390625;h[g+8>>3]=+(f>>>8&255|0)*.00390625;h[g+16>>3]=+(f>>>16&255|0)*.00390625;h[g+24>>3]=d;f=Fe(a,110234,g)|0;break}default:{o=c[22667]|0;m=c[b>>2]|0;c[j>>2]=e;c[j+4>>2]=m;Bz(o,110273,j)|0;Ia(161945,110323,436,110343)}}while(0);c[n>>2]=f;o=Fe(a,110360,n)|0;pB(f);i=p;return o|0}function _e(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;b=i;i=i+32|0;d=b+24|0;e=b+16|0;g=b;f=c[a+16>>2]|0;h=c[c[a+12>>2]>>2]|0;k=c[h>>2]|0;j=c[h+4>>2]|0;h=c[h+8>>2]|0;c[g>>2]=112346;c[g+4>>2]=k;c[g+8>>2]=j;c[g+12>>2]=h;dn(a,114965,g);f=ok(c[f+8>>2]|0)|0;c[e>>2]=112346;c[e+4>>2]=f;dn(a,114997,e);c[d>>2]=112346;dn(a,115011,d);i=b;return}function $e(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=112346;dn(a,114913,d);i=b;return}function af(a){a=a|0;var b=0.0,d=0.0,e=0.0,f=0,g=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,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=i;i=i+320|0;q=X+304|0;p=X+296|0;W=X+280|0;V=X+272|0;U=X+264|0;S=X+256|0;R=X+248|0;Q=X+240|0;O=X+232|0;N=X+224|0;M=X+216|0;L=X+208|0;K=X+200|0;J=X+192|0;I=X+184|0;H=X+176|0;G=X+168|0;F=X+160|0;E=X+152|0;D=X+144|0;C=X+136|0;B=X+128|0;A=X+120|0;z=X+112|0;y=X+104|0;x=X+96|0;w=X+88|0;v=X+80|0;u=X+72|0;t=X+64|0;s=X+56|0;r=X+48|0;T=X+32|0;o=X+24|0;n=X+8|0;m=X;g=c[a+456>>2]|0;j=c[a+460>>2]|0;k=c[a+464>>2]|0;l=c[a+468>>2]|0;f=a+360|0;a:do if(c[12195]|0){switch(c[f>>2]|0){case 90:case 0:break a;default:{}}c[m>>2]=112451;c[m+4>>2]=112551;dj(0,112533,m)|0;c[12195]=0}while(0);e=(+(l|0)-+(j|0))/72.0;b=(+(k|0)-+(g|0))/72.0;m=(c[f>>2]|0)==90;d=m?e:b;e=m?b:e;h[n>>3]=d;h[n+8>>3]=e;dn(a,112560,n);c[o>>2]=112346;dn(a,112575,o);if(d>0.0){b=+Ly(d);b=b+(3.0-+(~~b|0))}else b=3.0;b=+P(10.0,+b);h[166]=b;h[T>>3]=b;h[T+8>>3]=b;dn(a,112744,T);c[r>>2]=112346;dn(a,112779,r);c[s>>2]=112346;dn(a,112837,s);c[t>>2]=112346;dn(a,112897,t);c[u>>2]=112346;dn(a,112946,u);c[v>>2]=112346;dn(a,112985,v);c[w>>2]=112346;dn(a,113036,w);c[x>>2]=112346;dn(a,113098,x);c[y>>2]=112346;dn(a,113208,y);c[z>>2]=112346;dn(a,113299,z);c[A>>2]=112346;dn(a,113353,A);c[B>>2]=112346;dn(a,113422,B);dn(a,113458,C);c[D>>2]=112346;dn(a,113583,D);c[E>>2]=112346;dn(a,113612,E);dn(a,113652,F);c[G>>2]=112346;dn(a,113745,G);c[H>>2]=112346;dn(a,113804,H);c[I>>2]=112346;dn(a,113885,I);dn(a,113955,J);c[K>>2]=112346;dn(a,114044,K);c[L>>2]=112346;dn(a,114149,L);c[M>>2]=112346;dn(a,114225,M);c[N>>2]=112346;dn(a,114264,N);c[O>>2]=112346;dn(a,114363,O);c[Q>>2]=112346;dn(a,114409,Q);dn(a,114498,R);c[S>>2]=112346;dn(a,114539,S);c[U>>2]=112346;dn(a,114622,U);c[V>>2]=112346;dn(a,114723,V);h[W>>3]=e;h[W+8>>3]=d;dn(a,114787,W);dn(a,114815,p);dn(a,114823,q);i=X;return}function bf(a){a=a|0;var b=0;b=i;i=i+16|0;dn(a,112526,b);i=b;return}function cf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,j=0,k=0,l=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;u=v+40|0;s=v+32|0;q=v+16|0;o=v+8|0;k=v;switch(a[e+48>>0]|0){case 108:{t=d;l=+h[e+32>>3];m=+h[d>>3];break}case 114:{l=+h[e+32>>3];m=+h[d>>3]-l;h[d>>3]=m;t=d;break}default:{l=+h[e+32>>3];m=+h[d>>3]-l*.5;h[d>>3]=m;t=d}}n=e+4|0;j=c[n>>2]|0;f=+h[j+16>>3];r=d+8|0;h[r>>3]=f/216.0+ +h[r>>3];h[t>>3]=l/144.0+m;j=c[j>>2]|0;do if(j){d=c[12123]|0;if((d|0)!=0?(lA(d,j)|0)==0:0)break;else d=48496;while(1){g=c[d+4>>2]|0;if(!g){c[k>>2]=112451;c[k+4>>2]=j;dj(1,112425,k)|0;d=uA(j,45)|0;if(!d){d=112468;break}a[d>>0]=0;d=48496;continue}else{if(!(lA(g,j)|0)){p=11;break}d=d+8|0;continue}}c[o>>2]=d;dn(b,112470,o);c[12123]=c[c[n>>2]>>2];f=+h[(c[n>>2]|0)+16>>3]}while(0);d=~~f;d=(d|0)<1?1:d;if((d|0)!=(c[12192]|0)){m=+h[166];c[q>>2]=d;h[q+8>>3]=m;dn(b,112478,q);c[12192]=d}j=c[e>>2]|0;d=c[12193]|0;if(!d){c[12194]=64;d=oB(64)|0;c[12193]=d}g=a[j>>0]|0;if(g<<24>>24){k=0;n=j;while(1){n=n+1|0;j=c[12194]|0;if((k|0)>(j+-8|0)){d=j<<1;c[12194]=d;d=rB(c[12193]|0,d)|0;c[12193]=d;d=d+k|0}if(g<<24>>24>-1){if(g<<24>>24==92){a[d>>0]=92;d=d+1|0;j=k+1|0}else j=k;a[d>>0]=g;d=d+1|0;j=j+1|0}else{a[d>>0]=92;c[s>>2]=g&255;Oz(d+1|0,112499,s)|0;d=d+4|0;j=k+4|0}g=a[n>>0]|0;if(!(g<<24>>24))break;else k=j}}a[d>>0]=0;l=+h[t>>3];m=+h[r>>3];c[u>>2]=c[12193];h[u+8>>3]=l;h[u+16>>3]=m;dn(b,112504,u);i=v;return}function df(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0,j=0.0,k=0.0,l=0.0;e=i;i=i+48|0;f=e;j=+h[b>>3];l=(+h[b+16>>3]-j)*2.0/72.0;g=+h[b+8>>3];k=(+h[b+24>>3]-g)*2.0/72.0;c[f>>2]=1;c[f+4>>2]=(d|0)!=0?112367:164137;h[f+8>>3]=l;h[f+16>>3]=k;h[f+24>>3]=j/72.0;h[f+32>>3]=g/72.0;dn(a,112373,f);i=e;return}function ef(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;jf(a,b,c,1);return}function ff(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var 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,A=0.0,B=0;y=i;i=i+112|0;x=y+104|0;w=y+96|0;u=y+88|0;f=y+80|0;t=y+16|0;g=y;v=oB((d*140|0)+140|0)|0;A=+h[b>>3];r=t+48|0;h[r>>3]=A;z=+h[b+8>>3];s=t+56|0;h[s>>3]=z;c[f>>2]=~~(A+(A>=0.0?.5:-.5));c[f+4>>2]=~~(z+(z>=0.0?.5:-.5));f=Oz(v,112351,f)|0;if((d|0)>3){j=g+8|0;k=(((d+-4|0)>>>0)/3|0)*6|0;l=t+16|0;m=t+24|0;n=t+32|0;o=t+40|0;p=t+48|0;q=3;f=v+f|0;e=0;while(1){c[t>>2]=c[r>>2];c[t+4>>2]=c[r+4>>2];c[t+8>>2]=c[r+8>>2];c[t+12>>2]=c[r+12>>2];B=e+1|0;h[l>>3]=+h[b+(B<<4)>>3];h[m>>3]=+h[b+(B<<4)+8>>3];B=e+2|0;h[n>>3]=+h[b+(B<<4)>>3];h[o>>3]=+h[b+(B<<4)+8>>3];e=e+3|0;h[p>>3]=+h[b+(e<<4)>>3];h[s>>3]=+h[b+(e<<4)+8>>3];e=1;do{Rs(g,t,3,+(e|0)/6.0,0,0);z=+h[g>>3];A=+h[j>>3];c[u>>2]=~~(z+(z>=0.0?.5:-.5));c[u+4>>2]=~~(A+(A>=0.0?.5:-.5));f=f+(Oz(f,112351,u)|0)|0;e=e+1|0}while((e|0)!=7);e=q+3|0;if((e|0)<(d|0)){B=q;q=e;e=B}else break}g=k+7|0}else g=1;c[w>>2]=v;dn(a,112358,w);pB(v);if((g|0)>0){f=g+-1|0;e=0;do{c[x>>2]=((e|0)%(f|0)|0|0)!=0&1;dn(a,112363,x);e=e+1|0}while((e|0)!=(g|0))}_m(a,175632)|0;i=y;return}function gf(a,b,c){a=a|0;b=b|0;c=c|0;jf(a,b,c,0);return}function hf(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=112346;c[e+4>>2]=b;dn(a,112339,e);i=d;return}function jf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0.0,m=0.0;k=i;i=i+16|0;j=k+8|0;g=k;if((d|0)>0){f=0;do{m=+h[b+(f<<4)>>3];l=+h[b+(f<<4)+8>>3];c[g>>2]=~~(m+(m>=0.0?.5:-.5));c[g+4>>2]=~~(l+(l>=0.0?.5:-.5));dn(a,112351,g);f=f+1|0}while((f|0)!=(d|0))}if(e){l=+h[b>>3];m=+h[b+8>>3];c[j>>2]=~~(l+(l>=0.0?.5:-.5));c[j+4>>2]=~~(m+(m>=0.0?.5:-.5));dn(a,112351,j)}_m(a,175632)|0;i=k;return}function kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return}function lf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,j=0.0,k=0,l=0;e=i;i=i+32|0;f=e+8|0;k=e;b=b+8|0;l=c[b>>2]|0;c[k>>2]=l;c[k+4>>2]=l;dn(a,115472,k);j=(+h[d+16>>3]+ +h[d>>3])*.5;g=(+h[d+24>>3]+ +h[d+8>>3])*.5;c[f>>2]=c[b>>2];h[f+8>>3]=j;h[f+16>>3]=g;dn(a,115514,f);i=e;return}function mf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0.0,j=0.0,k=0.0,l=0.0;e=i;i=i+48|0;f=e;j=+h[d>>3];l=+h[d+16>>3]-j;g=+h[d+24>>3];k=g-+h[d+8>>3];g=+(~~(+h[a+232>>3]-+h[a+216>>3])>>>0)-g;c[f>>2]=c[b+8>>2];h[f+8>>3]=l;h[f+16>>3]=k;h[f+24>>3]=j;h[f+32>>3]=g;dn(a,115559,f);_m(a,115651)|0;i=e;return}function nf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.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;B=i;i=i+256|0;z=B+248|0;y=B+232|0;w=B+216|0;v=B+200|0;u=B+184|0;t=B+168|0;s=B+160|0;r=B+152|0;q=B+136|0;p=B+120|0;A=B+104|0;x=B+88|0;o=B+72|0;n=B+64|0;m=B;if(!a)Ia(134710,115656,212,115675);if(!b)Ia(134740,115656,213,115675);l=b+8|0;if(!(c[l>>2]|0))Ia(134743,115656,214,115675);if(c[b+52>>2]|0){c[m>>2]=c[d>>2];c[m+4>>2]=c[d+4>>2];c[m+8>>2]=c[d+8>>2];c[m+12>>2]=c[d+12>>2];b=m+32|0;d=d+16|0;c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];f=+h[m>>3];h[m+16>>3]=f;g=+h[m+40>>3];h[m+24>>3]=g;j=+h[b>>3];h[m+48>>3]=j;k=+h[m+8>>3];h[m+56>>3]=k;if(e<<24>>24){dn(a,115696,n);h[o>>3]=f;h[o+8>>3]=k;dn(a,115699,o);h[x>>3]=f;h[x+8>>3]=g;dn(a,115699,x);h[A>>3]=j;h[A+8>>3]=g;dn(a,115699,A);h[p>>3]=j;h[p+8>>3]=k;dn(a,115699,p);h[q>>3]=f;h[q+8>>3]=k;dn(a,115699,q);A=c[l>>2]|0;c[r>>2]=4;c[r+4>>2]=A;dn(a,115706,r)}dn(a,115696,s);h[t>>3]=f;h[t+8>>3]=k;dn(a,115699,t);h[u>>3]=f;h[u+8>>3]=g;dn(a,115699,u);h[v>>3]=j;h[v+8>>3]=g;dn(a,115699,v);h[w>>3]=j;h[w+8>>3]=k;dn(a,115699,w);h[y>>3]=f;h[y+8>>3]=k;dn(a,115699,y);A=c[l>>2]|0;c[z>>2]=4;c[z+4>>2]=A;dn(a,115721,z)}i=B;return}function of(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;o=i;i=i+112|0;n=o+24|0;m=o+16|0;l=o;j=o+28|0;if(!b)Ia(134710,115656,153,115737);if(!d)Ia(134740,115656,154,115737);if(!(c[d+8>>2]|0))Ia(134743,115656,155,115737);k=d+52|0;if(c[k>>2]|0){f=d+60|0;g=c[f>>2]|0;if((g|0)==84)g=18;else{zb[g&127](d);c[k>>2]=0;c[f>>2]=0;c[d+56>>2]=0;g=10}}else g=10;do if((g|0)==10){if(!((wn(d)|0)<<24>>24))break;f=zz(c[d+20>>2]|0)|0;if((c[d+24>>2]&-2|0)==6){fz(f,j)|0;j=c[j+36>>2]|0;c[d+56>>2]=j;f=Qy(0,j,1,1,f,0)|0;c[k>>2]=f;a[d+16>>0]=1}else f=c[k>>2]|0;if(f)c[d+60>>2]=84;xn(d);if(c[k>>2]|0)g=18}while(0);if((g|0)==18){p=+h[e+8>>3]-+(c[d+36>>2]|0);h[l>>3]=+h[e>>3]-+(c[d+32>>2]|0);h[l+8>>3]=p;dn(b,115755,l);if(!(a[d+16>>0]|0)){c[m>>2]=c[d+12>>2];dn(b,115786,m)}else Xq(b,d);dn(b,115801,n)}i=o;return}function pf(a){a=a|0;Ry(c[a+52>>2]|0,c[a+56>>2]|0)|0;return}function qf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g+48|0;if(!a)Ia(134710,115656,121,115811);e=c[a+16>>2]|0;if(!e)Ia(123378,115656,123,115811);if(!b)Ia(134740,115656,124,115811);d=b+8|0;if(!(c[d>>2]|0))Ia(134743,115656,125,115811);if(!(c[e+8>>2]|0))Ia(162430,115656,128,115811);else{dn(a,115831,g);dn(a,115840,g+8|0);dn(a,115867,g+16|0);dn(a,115892,g+24|0);dn(a,115921,g+32|0);dn(a,115949,g+40|0);c[f>>2]=c[d>>2];dn(a,115956,f);dn(a,115995,g+56|0);dn(a,134423,g+64|0);i=g;return}}function rf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0.0;j=i;i=i+128|0;g=j+80|0;f=j;if(!a)Ia(134710,115656,97,116e3);if(!b)Ia(134740,115656,98,116e3);e=c[b+8>>2]|0;if(!e)Ia(134743,115656,99,116e3);else{m=+h[d>>3];k=~~(m+(m>=0.0?.5:-.5));m=+h[d+8>>3];b=~~(m+(m>=0.0?.5:-.5));m=+h[d+16>>3];l=~~(m+(m>=0.0?.5:-.5));m=+h[d+24>>3];d=~~(m+(m>=0.0?.5:-.5));c[f>>2]=2;c[f+4>>2]=5;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=-1;c[f+24>>2]=1;c[f+28>>2]=-1;c[f+32>>2]=0;h[f+40>>3]=0.0;c[f+48>>2]=0;c[f+52>>2]=0;c[f+56>>2]=0;c[f+60>>2]=0;c[f+64>>2]=0;c[f+68>>2]=5;c[f+72>>2]=0;c[f+76>>2]=e;dn(a,116019,f);c[g>>2]=k;c[g+4>>2]=b;c[g+8>>2]=k;c[g+12>>2]=d;c[g+16>>2]=l;c[g+20>>2]=d;c[g+24>>2]=l;c[g+28>>2]=b;c[g+32>>2]=k;c[g+36>>2]=b;dn(a,116077,g);i=j;return}}function sf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0.0;p=i;i=i+96|0;o=p+56|0;n=p+32|0;m=p;q=+h[d+16>>3];g=+h[d>>3];l=q-g;j=+h[d+24>>3];f=+h[d+8>>3];k=j-f;g=(q+g-l)*.5;if(!a)Ia(134710,115656,53,116109);if(!b)Ia(134740,115656,54,116109);e=b+8|0;if(!(c[e>>2]|0))Ia(134743,115656,55,116109);_m(a,116128)|0;_m(a,c[e>>2]|0)|0;e=a+360|0;f=-((j+f+k)*.5);if(!(c[e>>2]|0)){h[o>>3]=l;h[o+8>>3]=k;h[o+16>>3]=g;h[o+24>>3]=f;dn(a,116257,o)}else{h[m>>3]=k;h[m+8>>3]=l;h[m+16>>3]=g;h[m+24>>3]=f;dn(a,116148,m);c[n>>2]=c[e>>2];h[n+8>>3]=g;h[n+16>>3]=f;dn(a,116227,n)}_m(a,116336)|0;i=p;return}function tf(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=Rk(d)|0;if(e)do{xl(e,160855,304,1)|0;Xs(e);qt(e,c[(c[(gl(e)|0)+16>>2]|0)+116>>2]&1);i=e+16|0;c[(c[i>>2]|0)+176>>2]=0;h=$p(20)|0;g=c[i>>2]|0;c[g+172>>2]=h;c[g+184>>2]=0;g=$p(20)|0;h=c[i>>2]|0;c[h+180>>2]=g;c[h+200>>2]=0;h=$p(12)|0;g=c[i>>2]|0;c[g+196>>2]=h;c[g+192>>2]=0;g=$p(12)|0;h=c[i>>2]|0;c[h+188>>2]=g;c[h+208>>2]=0;h=$p(12)|0;i=c[i>>2]|0;c[i+204>>2]=h;c[i+216>>2]=1;e=Sk(d,e)|0}while((e|0)!=0);e=Rk(d)|0;if(e)do{f=Lj(d,e)|0;if(f)do{xl(f,161165,176,1)|0;Ys(f)|0;j=Gs(f,c[13413]|0,1,0)|0;g=f+16|0;c[(c[g>>2]|0)+156>>2]=j;j=Is(c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0,c[13407]|0,164137)|0;k=Is(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0,c[13407]|0,164137)|0;h=c[g>>2]|0;i=h+154|0;b[i>>1]=1;b[h+168>>1]=1;if((j|0)==(k|0)&(a[j>>0]|0)!=0){b[i>>1]=1e3;k=h+156|0;c[k>>2]=(c[k>>2]|0)*100}if(ji(f)|0){k=c[g>>2]|0;b[k+154>>1]=0;c[k+156>>2]=0}k=(Gs(f,c[13433]|0,0,0)|0)&255;a[(c[g>>2]|0)+152>>0]=k;k=(Gs(f,c[13414]|0,1,0)|0)&65535;b[(c[g>>2]|0)+170>>1]=k;f=Nj(d,f)|0}while((f|0)!=0);e=Sk(d,e)|0}while((e|0)!=0);return}function uf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[(c[b+16>>2]|0)+192>>2]|0;if(d)do{h=d+16|0;e=c[h>>2]|0;i=d;d=c[e+164>>2]|0;f=c[e+176>>2]|0;if((f|0)>0)do{g=f;f=f+-1|0;e=c[(c[e+172>>2]|0)+(f<<2)>>2]|0;dg(e);pB(c[e+16>>2]|0);pB(e);e=c[h>>2]|0}while((g|0)>1);f=c[e+184>>2]|0;if((f|0)>0){g=f+-1|0;e=c[(c[e+180>>2]|0)+(g<<2)>>2]|0;dg(e);pB(c[e+16>>2]|0);pB(e);if((f|0)>1){e=g;do{g=e;e=e+-1|0;f=c[(c[(c[h>>2]|0)+180>>2]|0)+(e<<2)>>2]|0;dg(f);pB(c[f+16>>2]|0);pB(f)}while((g|0)>1)}e=c[h>>2]|0}if((a[e+156>>0]|0)==1){f=c[e+180>>2]|0;if(f){pB(f);e=c[h>>2]|0}f=c[e+172>>2]|0;if(f){pB(f);e=c[h>>2]|0}pB(e);pB(i)}}while((d|0)!=0);d=Rk(b)|0;if(d)do{e=Lj(b,d)|0;if(e)do{pt(e);e=Nj(b,e)|0}while((e|0)!=0);xf(d);d=Sk(b,d)|0}while((d|0)!=0);yf(b);return}function vf(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;o=p+32|0;g=p;if(ek(b)|0){d=go(b,-1,8)|0;e=fo(b,0,g)|0;co(b,2,8,g)|0;e=(e|0)==0;f=(d|0)<0;if(f&e)zf(b);else{if(e)c[g+16>>2]=3;else d=f?8:d;c[g+8>>2]=d;c[g+20>>2]=0;n=Qn(b,o,0)|0;d=c[o>>2]|0;do if((d|0)!=1){m=b+16|0;if(c[(c[(c[m>>2]|0)+8>>2]|0)+84>>2]|0){zf(b);break}c[g+12>>2]=1;if((d|0)>0){d=0;do{l=c[n+(d<<2)>>2]|0;xl(l,160878,280,1)|0;f=$p(96)|0;k=c[l+16>>2]|0;c[k+8>>2]=f;j=c[m>>2]|0;e=c[j+8>>2]|0;h[f>>3]=+h[e>>3];h[f+24>>3]=+h[e+24>>3];c[k+144>>2]=c[j+144>>2];a[k+115>>0]=a[j+115>>0]|0;c[k+116>>2]=c[j+116>>2];c[k+248>>2]=c[j+248>>2];c[k+252>>2]=c[j+252>>2];c[k+244>>2]=c[j+244>>2];zf(l);d=d+1|0}while((d|0)<(c[o>>2]|0))}e=$p((ek(b)|0)<<4)|0;d=Rk(b)|0;if(d)while(1){l=c[d+16>>2]|0;c[l+132>>2]=e;h[e>>3]=+h[l+16>>3]/72.0;h[e+8>>3]=+h[l+24>>3]/72.0;d=Sk(b,d)|0;if(!d)break;else e=e+16|0}bo(c[o>>2]|0,n,b,g)|0;f=c[(c[(Rk(b)|0)+16>>2]|0)+132>>2]|0;d=Rk(b)|0;if(d){e=f;while(1){l=c[d+16>>2]|0;c[l+132>>2]=0;h[l+16>>3]=+h[e>>3]*72.0;h[l+24>>3]=+h[e+8>>3]*72.0;d=Sk(b,d)|0;if(!d)break;else e=e+16|0}}pB(f);l=c[o>>2]|0;if((l|0)>0){e=0;d=0;do{d=(c[(c[(c[n+(e<<2)>>2]|0)+16>>2]|0)+180>>2]|0)+d|0;e=e+1|0}while((e|0)!=(l|0));e=1}else{e=0;d=0}c[(c[m>>2]|0)+180>>2]=d;k=$p((d<<2)+4|0)|0;c[(c[m>>2]|0)+184>>2]=k;if(e){k=0;d=1;do{j=(c[n+(k<<2)>>2]|0)+16|0;e=c[j>>2]|0;if((c[e+180>>2]|0)>=1){g=1;f=d;while(1){q=Pn(c[(c[e+184>>2]|0)+(g<<2)>>2]|0)|0;d=f+1|0;c[(c[(c[m>>2]|0)+184>>2]|0)+(f<<2)>>2]=q;Af(c[(c[(c[j>>2]|0)+184>>2]|0)+(g<<2)>>2]|0,q);e=c[j>>2]|0;if((g|0)>=(c[e+180>>2]|0))break;else{g=g+1|0;f=d}}}k=k+1|0}while((k|0)!=(l|0))}}else zf(b);while(0);if((c[o>>2]|0)>0){d=0;do{q=n+(d<<2)|0;pB(c[(c[(c[q>>2]|0)+16>>2]|0)+8>>2]|0);yf(c[q>>2]|0);fl(b,c[q>>2]|0)|0;d=d+1|0}while((d|0)<(c[o>>2]|0))}pB(n)}}Qq(b);i=p;return}function wf(a){a=a|0;return c[(c[(hl(a)|0)+16>>2]|0)+188>>2]|0}function xf(a){a=a|0;var b=0,d=0,e=0;e=a+16|0;b=c[e>>2]|0;d=c[b+172>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+180>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+188>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+196>>2]|0;if(d){pB(d);b=c[e>>2]|0}d=c[b+204>>2]|0;if(d){pB(d);b=c[e>>2]|0}Sp(c[b+104>>2]|0);Sp(c[(c[e>>2]|0)+108>>2]|0);b=c[(c[e>>2]|0)+8>>2]|0;if(b)zb[c[(c[b+4>>2]|0)+4>>2]&127](a);yl(a,160855)|0;return}function yf(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;d=bm(a)|0;if(d)do{yf(d);d=cm(d)|0}while((d|0)!=0);if(xl(a,160878,0,1)|0){h=a+16|0;d=c[h>>2]|0;e=c[d+184>>2]|0;if(e){pB(e);d=c[h>>2]|0}e=c[d+268>>2]|0;if(e){pB(e);d=c[h>>2]|0}e=c[d+216>>2]|0;if(e){pB(e);d=c[h>>2]|0}f=c[d+196>>2]|0;do if(f){g=b[d+236>>1]|0;if(g<<16>>16>(b[d+238>>1]|0)){e=g;d=f}else{e=g<<16>>16;pB(c[f+(e<<6)+12>>2]|0);d=c[h>>2]|0;if(g<<16>>16<(b[d+238>>1]|0))do{e=e+1|0;pB(c[(c[d+196>>2]|0)+(e<<6)+12>>2]|0);d=c[h>>2]|0}while((e|0)<(b[d+238>>1]|0));e=b[d+236>>1]|0;d=c[d+196>>2]|0}if(e<<16>>16==-1){pB(d+-64|0);break}else{pB(d);break}}while(0);if((hl(a)|0)!=(a|0)){Sp(c[(c[h>>2]|0)+12>>2]|0);yl(a,160878)|0}}return}function zf(a){a=a|0;var 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;r=i;i=i+48|0;l=r+40|0;k=r;h=Gs(a,rj(a,0,116351,0)|0,-1,1)|0;mt(a,10);d=di(a,k)|0;Bf(a,a);tf(a);e=(h|0)==1;f=k+32|0;g=(h|0)==2;h=(h|0)==3;j=k+28|0;k=k+24|0;while(1){xh(a,d);if(e){j=3;break}if(c[f>>2]|0){dj(0,116357,l)|0;c[k>>2]=0;d=0}sg(a,(d|0)!=0&1);if(g){j=7;break}bh(a,d);if(h){j=9;break}p=(c[j>>2]|0)+-1|0;c[j>>2]=p;if(!((c[k>>2]|0)!=0&(p|0)!=0)){j=11;break}}if((j|0)==3)Cf(a,1);else if((j|0)==7)Cf(a,2);else if((j|0)==9)Cf(a,2);else if((j|0)==11){p=a+16|0;if((b[(c[p>>2]|0)+136>>1]&16)!=0?(q=am(a,117916,0)|0,(q|0)!=0):0){d=Rk(q)|0;a:do if(d){while(1){o=d;d=Sk(q,d)|0;kg(a,o);n=c[(c[o+16>>2]|0)+232>>2]|0;j=c[(c[p>>2]|0)+196>>2]|0;f=j+(n<<6)|0;e=c[f>>2]|0;j=j+(n<<6)+4|0;g=0;l=0;while(1){if((g|0)>=(e|0)){e=l;j=21;break}k=c[j>>2]|0;m=k+(g<<2)|0;l=c[m>>2]|0;h=g+1|0;if((l|0)==(o|0)){l=m;j=17;break}else g=h}if((j|0)==17){if((h|0)<(e|0)){c[l>>2]=c[k+(h<<2)>>2];h=g+2|0;g=c[(c[p>>2]|0)+196>>2]|0;f=g+(n<<6)|0;e=c[f>>2]|0;if((h|0)<(e|0))do{f=c[g+(n<<6)+4>>2]|0;c[f+(h+-1<<2)>>2]=c[f+(h<<2)>>2];h=h+1|0;g=c[(c[p>>2]|0)+196>>2]|0;f=g+(n<<6)|0;e=c[f>>2]|0}while((h|0)<(e|0))}c[f>>2]=e+-1}else if((j|0)==21?(0,(e|0)!=(o|0)):0)break;xf(o);Zk(a,o)|0;if(!d)break a}Ia(116448,116455,248,116465)}while(0);em(a,q)|0}Vh(a);Ef(a);if((Ls(zj(a,116482)|0)|0)<<24>>24)zi(a)}i=r;return}function Af(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;xl(d,160878,280,1)|0;g=d+16|0;d=(c[g>>2]|0)+16|0;f=b+16|0;b=(c[f>>2]|0)+16|0;c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];c[d+8>>2]=c[b+8>>2];c[d+12>>2]=c[b+12>>2];c[d+16>>2]=c[b+16>>2];c[d+20>>2]=c[b+20>>2];c[d+24>>2]=c[b+24>>2];c[d+28>>2]=c[b+28>>2];b=c[f>>2]|0;d=c[g>>2]|0;a[d+275>>0]=a[b+275>>0]|0;d=d+48|0;b=b+48|0;e=d+64|0;do{c[d>>2]=c[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(e|0));e=c[(c[f>>2]|0)+180>>2]|0;c[(c[g>>2]|0)+180>>2]=e;d=$p((e<<2)+4|0)|0;b=c[g>>2]|0;c[b+184>>2]=d;d=c[f>>2]|0;if((e|0)>=1){b=1;while(1){d=Pn(c[(c[d+184>>2]|0)+(b<<2)>>2]|0)|0;c[(c[(c[g>>2]|0)+184>>2]|0)+(b<<2)>>2]=d;Af(c[(c[(c[f>>2]|0)+184>>2]|0)+(b<<2)>>2]|0,d);d=c[f>>2]|0;if((b|0)==(e|0))break;else b=b+1|0}b=c[g>>2]|0}g=d+12|0;c[b+12>>2]=c[g>>2];c[g>>2]=0;return}function Bf(a,b){a=a|0;b=b|0;if((hl(a)|0)!=(a|0))xl(a,160878,280,1)|0;if((a|0)==(b|0))c[(c[(hl(a)|0)+16>>2]|0)+188>>2]=a;a=bm(a)|0;if(a)do{Bf(a,b);a=cm(a)|0}while((a|0)!=0);return}function Cf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+1040|0;m=n+8|0;l=n;k=n+16|0;f=rj(a,1,118472,164137)|0;g=rj(a,1,116491,164137)|0;d=Rk(a)|0;if(d){h=(b|0)>0;e=(b|0)>1;b=d;do{if(h?(j=b+16|0,c[l>>2]=c[(c[j>>2]|0)+232>>2],Oz(k,160852,l)|0,Cj(b,f,k)|0,e):0){c[m>>2]=c[(c[j>>2]|0)+236>>2];Oz(k,160852,m)|0;Cj(b,g,k)|0}b=Sk(a,b)|0}while((b|0)!=0)}i=n;return}function Df(b,c){b=b|0;c=c|0;var d=0;d=a[b+28>>0]|0;if(a[c+28>>0]|0)if(d<<24>>24){d=~~(+h[b>>3]-+h[c>>3]);if(!d)d=~~(+h[b+8>>3]-+h[c+8>>3])}else d=-1;else d=d<<24>>24!=0&1;return d|0}function Ef(a){a=a|0;Ff(a,1);return}+function Rg(d){d=d|0;var 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;p=d+16|0;e=c[p>>2]|0;if((a[e+240>>0]|0)!=0?(f=b[e+236>>1]|0,f<<16>>16<=(b[e+238>>1]|0)):0){o=f<<16>>16;f=0;a:while(1){g=c[e+196>>2]|0;i=c[g+(o<<6)>>2]|0;if(i){e=c[g+(o<<6)+4>>2]|0;n=c[(c[(c[e>>2]|0)+16>>2]|0)+236>>2]|0;if((i|0)>0){g=(i|0)>1;h=0;do{a[(c[(c[e+(h<<2)>>2]|0)+16>>2]|0)+157>>0]=0;h=h+1|0}while((h|0)<(i|0));e=g?i:1}else e=0;if(!f)f=aq((e<<2)+4|0)|0;else f=cq(f,(e<<2)+4|0)|0;e=c[p>>2]|0;g=c[e+196>>2]|0;h=c[g+(o<<6)>>2]|0;if((h|0)>0){i=g;m=0;g=0;do{l=c[(c[i+(o<<6)+4>>2]|0)+(((c[e+116>>2]&1|0)==0?h+~m|0:m)<<2)>>2]|0;k=l+16|0;e=c[k>>2]|0;if((c[e+200>>2]|0)>0){i=0;h=0;do{h=((Sg(d,c[(c[e+196>>2]|0)+(i<<2)>>2]|0)|0)!=0&1)+h|0;i=i+1|0;e=c[k>>2]|0}while((i|0)<(c[e+200>>2]|0));j=h}else j=0;if((c[e+192>>2]|0)>0){i=0;h=0;do{h=((Sg(d,c[(c[e+188>>2]|0)+(i<<2)>>2]|0)|0)!=0&1)+h|0;i=i+1|0;e=c[k>>2]|0}while((i|0)<(c[e+192>>2]|0))}else h=0;if(h|j){if((j|0)==0&(a[e+157>>0]|0)==0)g=(Tg(d,l,f+(g<<2)|0,o)|0)+g|0}else{c[f+(g<<2)>>2]=l;g=g+1|0}m=m+1|0;e=c[p>>2]|0;i=c[e+196>>2]|0;h=c[i+(o<<6)>>2]|0}while((h|0)>(m|0));if(g){if((c[e+116>>2]&1|0)==0?(q=f+(g+-1<<2)|0,f>>>0<q>>>0):0){e=f;g=q;do{m=c[e>>2]|0;c[e>>2]=c[g>>2];c[g>>2]=m;e=e+4|0;g=g+-4|0}while(e>>>0<g>>>0);e=c[p>>2]|0}g=c[e+196>>2]|0;if((c[g+(o<<6)>>2]|0)>0){i=0;while(1){e=c[f+(i<<2)>>2]|0;c[(c[g+(o<<6)+4>>2]|0)+(i<<2)>>2]=e;c[(c[e+16>>2]|0)+236>>2]=i+n;i=i+1|0;e=c[p>>2]|0;h=c[e+196>>2]|0;g=c[h+(o<<6)>>2]|0;if((i|0)>=(g|0))break;else g=h}if((g|0)>0){m=0;do{l=(c[(c[h+(o<<6)+4>>2]|0)+(m<<2)>>2]|0)+16|0;h=c[l>>2]|0;g=c[h+188>>2]|0;if((g|0)!=0?(r=c[g>>2]|0,(r|0)!=0):0){k=r;j=0;do{i=c[k>>2]&3;g=c[(c[(c[((i|0)==2?k:k+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;i=c[(c[(c[((i|0)==3?k:k+48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0;if(!(c[e+116>>2]&1))if((g|0)<(i|0))t=35;else e=j;else if((g|0)>(i|0))t=35;else e=j;if((t|0)==35){t=0;if(Sg(d,k)|0){t=36;break a}ng(k);wg(d,k);h=c[l>>2]|0;e=j+-1|0}j=e+1|0;k=c[(c[h+188>>2]|0)+(j<<2)>>2]|0;e=c[p>>2]|0}while((k|0)!=0)}m=m+1|0;h=c[e+196>>2]|0}while((m|0)<(c[h+(o<<6)>>2]|0))}}}}a[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(o<<6)+49>>0]=0}if((o|0)<(b[e+238>>1]|0))o=o+1|0;else{s=f;break}}if((t|0)==36)Ia(117610,117013,1561,117649);if(s)pB(s)}return}function Sg(a,b){a=a|0;b=b|0;if((c[(c[b+16>>2]|0)+156>>2]|0)!=0?(Ug(a,c[((c[b>>2]&3|0)==3?b:b+48|0)+40>>2]|0)|0)!=0:0)b=(Ug(a,c[((c[b>>2]&3|0)==2?b:b+-48|0)+40>>2]|0)|0)!=0&1;else b=0;return b|0}function Tg(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=d+16|0;h=c[k>>2]|0;a[h+157>>0]=1;if((c[h+192>>2]|0)>0?(g=c[c[h+188>>2]>>2]|0,(g|0)!=0):0){i=g;g=0;j=0;do{if((Sg(b,i)|0)!=0?(l=c[((c[i>>2]&3|0)==2?i:i+-48|0)+40>>2]|0,(a[(c[l+16>>2]|0)+157>>0]|0)==0):0)g=(Tg(b,l,e+(g<<2)|0,f)|0)+g|0;j=j+1|0;h=c[k>>2]|0;i=c[(c[h+188>>2]|0)+(j<<2)>>2]|0}while((i|0)!=0)}else g=0;if((c[h+232>>2]|0)==(f|0)){c[e+(g<<2)>>2]=d;return g+1|0}else Ia(117662,117013,1490,117678);return 0}function Ug(b,d){b=b|0;d=d|0;var e=0;if(!(a[(c[d+16>>2]|0)+156>>0]|0))e=(ql(b,d)|0)!=0;else e=0;return e&1|(Pg(b,d)|0)|0}function Vg(b,d){b=b|0;d=d|0;var 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;m=d+16|0;n=c[m>>2]|0;o=c[(c[(c[b+16>>2]|0)+196>>2]|0)+(c[n+232>>2]<<6)+56>>2]|0;a[n+157>>0]=1;a[n+158>>0]=1;n=(c[(c[(wf(b)|0)+16>>2]|0)+180>>2]|0)>0;d=c[m>>2]|0;e=c[d+188>>2]|0;a:do if((e|0)!=0?(f=c[e>>2]|0,(f|0)!=0):0){k=o+4|0;l=o+8|0;d=0;b:while(1){if(n){if((ql(b,c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)|0)!=0?(ql(b,c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)|0)!=0:0)q=7}else q=7;do if((q|0)==7){q=0;i=f+16|0;if(c[(c[i>>2]|0)+156>>2]|0){e=c[f>>2]&3;h=f+-48|0;r=c[(c[((e|0)==2?f:h)+40>>2]|0)+16>>2]|0;j=c[r+284>>2]|0;g=(j|0)<(c[o>>2]|0);if((a[r+158>>0]|0)==1){if(!g){q=10;break b}e=c[(c[(c[((e|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+284>>2]|0;g=c[k>>2]|0;if((e|0)>=(g|0)){q=12;break b}r=(_(g,j)|0)+e|0;a[(c[l>>2]|0)+r>>0]=1;ng(f);d=d+-1|0;if((a[(c[i>>2]|0)+112>>0]|0)==4)break;wg(b,f);break}else{if(!g){q=16;break b}e=c[(c[(c[((e|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+284>>2]|0;g=c[k>>2]|0;if((e|0)>=(g|0)){q=18;break b}e=(_(g,e)|0)+j|0;a[(c[l>>2]|0)+e>>0]=1;e=c[((c[f>>2]&3|0)==2?f:h)+40>>2]|0;if(a[(c[e+16>>2]|0)+157>>0]|0)break;Vg(b,e);break}}}while(0);d=d+1|0;e=c[m>>2]|0;f=c[(c[e+188>>2]|0)+(d<<2)>>2]|0;if(!f){p=e;break a}}if((q|0)==10)Ia(117688,117013,1251,117720);else if((q|0)==12)Ia(117732,117013,1252,117720);else if((q|0)==16)Ia(117688,117013,1260,117720);else if((q|0)==18)Ia(117732,117013,1261,117720)}else p=d;while(0);a[p+158>>0]=0;return}function Wg(a){a=a|0;var d=0,e=0,f=0,g=0,i=0,j=0;a=c[a+16>>2]|0;e=b[a+236>>1]|0;d=b[a+238>>1]|0;if(e<<16>>16<=d<<16>>16){i=c[a+196>>2]|0;g=d<<16>>16;f=e<<16>>16;while(1){d=c[i+(f<<6)>>2]|0;if((d|0)>0){a=c[i+(f<<6)+4>>2]|0;e=0;do{j=c[(c[a+(e<<2)>>2]|0)+16>>2]|0;h[j+16>>3]=+(c[j+236>>2]|0);e=e+1|0}while((e|0)<(d|0))}if((f|0)<(g|0))f=f+1|0;else break}}return}function Xg(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=d+16|0;e=c[n>>2]|0;m=b[e+236>>1]|0;d=b[e+238>>1]|0;k=m<<16>>16>d<<16>>16;if(!k){l=c[e+196>>2]|0;f=d<<16>>16;j=m<<16>>16;while(1){g=c[l+(j<<6)>>2]|0;if((g|0)>0){d=c[l+(j<<6)+4>>2]|0;i=0;do{o=c[(c[d+(i<<2)>>2]|0)+16>>2]|0;c[o+236>>2]=~~+h[o+16>>3];i=i+1|0}while((i|0)<(g|0))}if((j|0)<(f|0))j=j+1|0;else break}if(!k){d=m<<16>>16;while(1){a[(c[(c[(c[12482]|0)+16>>2]|0)+196>>2]|0)+(d<<6)+49>>0]=0;o=c[e+196>>2]|0;_z(c[o+(d<<6)+4>>2]|0,c[o+(d<<6)>>2]|0,4,13);e=c[n>>2]|0;if((d|0)>=(b[e+238>>1]|0))break;else d=d+1|0}}}return}function Yg(a,b){a=a|0;b=b|0;return (c[(c[(c[a>>2]|0)+16>>2]|0)+236>>2]|0)-(c[(c[(c[b>>2]|0)+16>>2]|0)+236>>2]|0)|0}function Zg(a,b){a=a|0;b=b|0;var c=0;c=Rk(a)|0;if(c)do{_g(a,c,b);c=Sk(a,c)|0}while((c|0)!=0);return}function _g(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=c[12483]|0;h=d+16|0;f=c[h>>2]|0;a:do if(!(c[f+212>>2]|0)){j=(e|0)!=0;if(j){d=c[c[f+180>>2]>>2]|0;if(!d)break;else{g=d;e=f;f=0;d=0}do{if(!($g(g)|0)){c[k+(d<<2)>>2]=g;e=c[h>>2]|0;d=d+1|0}f=f+1|0;g=c[(c[e+180>>2]|0)+(f<<2)>>2]|0}while((g|0)!=0)}else{d=c[c[f+172>>2]>>2]|0;if(!d)break;else{g=d;e=f;f=0;d=0}do{if(!($g(g)|0)){c[k+(d<<2)>>2]=g;e=c[h>>2]|0;d=d+1|0}f=f+1|0;g=c[(c[e+172>>2]|0)+(f<<2)>>2]|0}while((g|0)!=0)}if((d|0)>=2?(c[k+(d<<2)>>2]=0,_z(k,d,4,14),i=c[k+4>>2]|0,(i|0)!=0):0){e=i;i=1;do{g=c[k+(i+-1<<2)>>2]|0;h=c[g>>2]&3;d=c[e>>2]|0;if(j){f=(d&3|0)==2?e:e+-48|0;d=(h|0)==2?g:g+-48|0}else{f=(d&3|0)==3?e:e+48|0;d=(h|0)==3?g:g+48|0}e=c[d+40>>2]|0;d=c[f+40>>2]|0;if(ag(e,d)|0)break a;e=gg(e,d,0)|0;a[(c[e+16>>2]|0)+112>>0]=4;mg(b,e);i=i+1|0;e=c[k+(i<<2)>>2]|0}while((e|0)!=0)}}while(0);return}function $g(a){a=a|0;var b=0;while(1){b=c[(c[a+16>>2]|0)+116>>2]|0;if(!b)break;else a=b}b=c[a>>2]&3;return (c[(c[(c[((b|0)==3?a:a+48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)!=(c[(c[(c[((b|0)==2?a:a+-48|0)+40>>2]|0)+16>>2]|0)+212>>2]|0)|0}function ah(a,b){a=a|0;b=b|0;return ((c[c[a>>2]>>2]|0)>>>4)-((c[c[b>>2]>>2]|0)>>>4)|0}function bh(d,f){d=d|0;f=f|0;var g=0,j=0,k=0,l=0.0,m=0,n=0,o=0.0,p=0.0,q=0,r=0.0,s=0,t=0.0,u=0,v=0.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.0;L=i;i=i+64|0;J=L+40|0;I=L+32|0;H=L+16|0;C=L;B=L+48|0;K=d+16|0;if(c[(c[K>>2]|0)+192>>2]|0){vi(d);eh(d);if(a[124828]|0)Fi(d);g=c[K>>2]|0;j=b[g+236>>1]|0;if(j<<16>>16<=(b[g+238>>1]|0)){u=j<<16>>16;while(1){q=c[g+196>>2]|0;s=c[q+(u<<6)>>2]|0;if((s|0)>0){m=c[q+(u<<6)+4>>2]|0;n=0;j=0;do{k=c[(c[m+(n<<2)>>2]|0)+16>>2]|0;c[k+236>>2]=j;if((a[k+159>>0]|0)==6)k=c[k+216>>2]|0;else k=1;j=k+j|0;n=n+1|0}while((n|0)!=(s|0));m=j}else m=0;if((m|0)>(s|0)){g=c[q+(u<<6)+4>>2]|0;if(!g)g=aq((m<<2)+4|0)|0;else g=cq(g,(m<<2)+4|0)|0;j=c[(c[K>>2]|0)+196>>2]|0;c[j+(u<<6)+4>>2]=g;k=c[j+(u<<6)>>2]|0;if((k|0)>0)do{A=k;k=k+-1|0;j=c[g+(k<<2)>>2]|0;c[g+(c[(c[j+16>>2]|0)+236>>2]<<2)>>2]=j;j=c[(c[K>>2]|0)+196>>2]|0;g=c[j+(u<<6)+4>>2]|0}while((A|0)>1);c[j+(u<<6)>>2]=m;c[g+(m<<2)>>2]=0;g=c[K>>2]|0}if((u|0)<(b[g+238>>1]|0))u=u+1|0;else break}}g=c[g+192>>2]|0;if(g)do{k=g+16|0;g=c[k>>2]|0;j=c[g+224>>2]|0;if(j){fh(d,j);g=c[k>>2]|0}j=c[g+228>>2]|0;if(j){fh(d,j);g=c[k>>2]|0}j=c[g+204>>2]|0;if(j){k=0;while(1)if(!(c[j+(k<<2)>>2]|0))break;else k=k+1|0}g=c[g+164>>2]|0}while((g|0)!=0);if(Li(d)|0)eh(d);g=c[K>>2]|0;j=c[g+192>>2]|0;if(j){g=j;do{n=g+16|0;m=c[n>>2]|0;g=m+172|0;j=c[g+4>>2]|0;m=m+248|0;c[m>>2]=c[g>>2];c[m+4>>2]=j;m=c[n>>2]|0;j=m+180|0;g=c[j+4>>2]|0;m=m+256|0;c[m>>2]=c[j>>2];c[m+4>>2]=g;m=c[n>>2]|0;g=c[m+180>>2]|0;j=0;while(1)if(!(c[g+(j<<2)>>2]|0))break;else j=j+1|0;k=c[m+172>>2]|0;g=0;while(1)if(!(c[k+(g<<2)>>2]|0))break;else g=g+1|0;c[m+176>>2]=0;g=$p((g+j<<2)+16|0)|0;A=c[n>>2]|0;c[A+172>>2]=g;c[A+184>>2]=0;A=$p(16)|0;g=c[n>>2]|0;c[g+180>>2]=A;g=c[g+164>>2]|0}while((g|0)!=0);g=c[K>>2]|0}A=c[g+196>>2]|0;z=(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1)==0;j=c[g+248>>2]|0;c[B>>2]=j;c[B+4>>2]=z?j:5;j=b[g+236>>1]|0;if(j<<16>>16<=(b[g+238>>1]|0)){z=j<<16>>16;while(1){x=A+(z<<6)+4|0;j=c[x>>2]|0;k=c[j>>2]|0;c[(c[k+16>>2]|0)+232>>2]=0;y=A+(z<<6)|0;if((c[y>>2]|0)>0){p=+(c[B+((z&1)<<2)>>2]|0);q=0;o=0.0;while(1){w=k+16|0;g=c[w>>2]|0;l=+h[g+96>>3];h[g+240>>3]=l;if((c[g+208>>2]|0)>0){m=c[c[g+204>>2]>>2]|0;if(!m)m=0;else{n=0;j=0;do{u=c[m>>2]&3;if((c[((u|0)==3?m:m+48|0)+40>>2]|0)==(c[((u|0)==2?m:m+-48|0)+40>>2]|0)){j=(es(m)|0)+j|0;g=c[w>>2]|0}n=n+1|0;m=c[(c[g+204>>2]|0)+(n<<2)>>2]|0}while((m|0)!=0);n=g;m=j;g=n;j=c[x>>2]|0;l=+h[n+96>>3]}l=l+ +(m|0);h[g+96>>3]=l}u=q+1|0;j=c[j+(u<<2)>>2]|0;if(j){g=j+16|0;v=p+(l+ +h[(c[g>>2]|0)+88>>3]);ch(k,j,v,0)|0;s=~~(o+v);c[(c[g>>2]|0)+232>>2]=s;g=c[w>>2]|0;o=+(s|0)}j=c[g+112>>2]|0;if(j){m=c[g+256>>2]|0;n=c[m>>2]|0;m=c[m+4>>2]|0;g=(c[(c[(c[((c[n>>2]&3|0)==2?n:n+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0)>(c[(c[(c[((c[m>>2]&3|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+236>>2]|0);k=g?m:n;m=g?n:m;n=j+16|0;g=c[n>>2]|0;l=+((_(c[(c[K>>2]|0)+248>>2]|0,e[g+170>>1]|0)|0)/2|0|0);s=c[k>>2]&3;j=c[((s|0)==2?k:k+-48|0)+40>>2]|0;k=c[((s|0)==3?k:k+48|0)+40>>2]|0;if(!(gh(k,j)|0))ch(j,k,+(~~(+h[(c[k+16>>2]|0)+88>>3]+(l+ +h[(c[j+16>>2]|0)+96>>3]))|0),c[g+156>>2]|0)|0;g=c[m>>2]&3;j=c[((g|0)==3?m:m+48|0)+40>>2]|0;g=c[((g|0)==2?m:m+-48|0)+40>>2]|0;if(!(gh(g,j)|0))ch(j,g,+(~~(+h[(c[g+16>>2]|0)+88>>3]+(l+ +h[(c[j+16>>2]|0)+96>>3]))|0),c[(c[n>>2]|0)+156>>2]|0)|0}g=c[w>>2]|0;if((c[g+192>>2]|0)>0){s=0;do{n=c[(c[g+188>>2]|0)+(s<<2)>>2]|0;m=c[n>>2]&3;k=c[((m|0)==3?n:n+48|0)+40>>2]|0;m=c[((m|0)==2?n:n+-48|0)+40>>2]|0;q=(c[(c[k+16>>2]|0)+236>>2]|0)<(c[(c[m+16>>2]|0)+236>>2]|0);j=q?k:m;k=q?m:k;l=+h[(c[j+16>>2]|0)+96>>3]+ +h[(c[k+16>>2]|0)+88>>3];n=n+16|0;m=~~(l+ +(_(c[(c[K>>2]|0)+248>>2]|0,e[(c[n>>2]|0)+170>>1]|0)|0));q=$f(j,k)|0;do if(!q){g=c[n>>2]|0;if(c[g+96>>2]|0)break;ch(j,k,+(m|0),c[g+156>>2]|0)|0}else{M=+(m|0);j=c[n>>2]|0;v=+h[j+136>>3];v=l+ +(c[(c[K>>2]|0)+248>>2]|0)+ +(~~(v+(v>=0.0?.5:-.5))|0);g=~~(M>v?M:v);if((g|0)>65535){h[C>>3]=+(g|0);c[C+8>>2]=65535;dj(1,117926,C)|0;j=c[n>>2]|0;g=65535}q=c[q+16>>2]|0;m=q+170|0;n=e[m>>1]|0;b[m>>1]=(n|0)>(g|0)?n:g;q=q+156|0;m=c[q>>2]|0;n=c[j+156>>2]|0;c[q>>2]=(m|0)>(n|0)?m:n}while(0);s=s+1|0;g=c[w>>2]|0}while((s|0)<(c[g+192>>2]|0))}if((u|0)>=(c[y>>2]|0))break;k=c[x>>2]|0;j=k;k=c[k+(u<<2)>>2]|0;q=u}g=c[K>>2]|0}if((z|0)<(b[g+238>>1]|0))z=z+1|0;else break}}j=c[g+192>>2]|0;if(j){g=j;do{m=g+16|0;g=c[m>>2]|0;j=c[g+256>>2]|0;if((j|0)!=0?(D=c[j>>2]|0,(D|0)!=0):0){j=D;k=0;do{x=lg(d)|0;g=x+16|0;a[(c[g>>2]|0)+156>>0]=2;z=j+16|0;A=c[z>>2]|0;B=~~(+h[A+56>>3]-+h[A+16>>3]);y=(B|0)>0;C=y?0:0-B|0;B=y?B:0;y=j+48|0;ch(x,c[((c[j>>2]&3|0)==3?j:y)+40>>2]|0,+(B+1|0),c[A+156>>2]|0)|0;A=j+-48|0;ch(x,c[((c[j>>2]&3|0)==2?j:A)+40>>2]|0,+(C+1|0),c[(c[z>>2]|0)+156>>2]|0)|0;z=c[j>>2]&3;B=(c[(c[(c[((z|0)==3?j:y)+40>>2]|0)+16>>2]|0)+232>>2]|0)-B|0;C=(c[(c[(c[((z|0)==2?j:A)+40>>2]|0)+16>>2]|0)+232>>2]|0)-C|0;c[(c[g>>2]|0)+232>>2]=((B|0)<(C|0)?B:C)+-1;k=k+1|0;g=c[m>>2]|0;j=c[(c[g+256>>2]|0)+(k<<2)>>2]|0}while((j|0)!=0)}g=c[g+164>>2]|0}while((g|0)!=0);g=c[K>>2]|0}if((c[g+180>>2]|0)>0){hh(d);ih(d);jh(d);kh(d);g=c[K>>2]|0}g=c[g+8>>2]|0;if((c[g+84>>2]|0)==3?(r=+h[g+64>>3],t=+h[g+72>>3],!(r*t<=1.0)):0){lh(d);D=c[K>>2]|0;M=(c[D+116>>2]&1|0)==0?r:t;ch(c[D+256>>2]|0,c[D+260>>2]|0,M<65535.0?M:65535.0,1e3)|0}if(eq(d,2,mh(d)|0)|0){g=c[K>>2]|0;k=b[g+236>>1]|0;j=b[g+238>>1]|0;a:do if(k<<16>>16<=j<<16>>16){A=k<<16>>16;b:while(1){z=c[g+196>>2]|0;w=c[z+(A<<6)>>2]|0;c:do if((w|0)>0){y=c[z+(A<<6)+4>>2]|0;x=0;do{k=c[y+(x<<2)>>2]|0;s=c[k+16>>2]|0;u=c[s+256>>2]|0;do if(u){m=c[u>>2]|0;if(!m)break;else q=0;do{n=c[m>>2]&3;if((c[(c[(c[((n|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(A|0))break c;q=q+1|0;if((c[(c[(c[((n|0)==3?m:m+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(A|0))break c;m=c[u+(q<<2)>>2]|0}while((m|0)!=0)}while(0);s=c[s+248>>2]|0;do if(s){m=c[s>>2]|0;if(!m)break;else q=0;do{n=c[m>>2]&3;if((c[(c[(c[((n|0)==3?m:m+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(A|0))break c;q=q+1|0;if((c[(c[(c[((n|0)==2?m:m+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(A|0))break c;m=c[s+(q<<2)>>2]|0}while((m|0)!=0)}while(0);x=x+1|0}while((x|0)<(w|0));if(k){k=c[y>>2]|0;g=c[c[z+(((A|0)<(j<<16>>16|0)?1:-1)+A<<6)+4>>2]>>2]|0;if(!g)break b;D=lg(d)|0;j=D+16|0;a[(c[j>>2]|0)+156>>0]=2;ch(D,k,0.0,0)|0;ch(D,g,0.0,0)|0;D=c[(c[k+16>>2]|0)+232>>2]|0;g=c[(c[g+16>>2]|0)+232>>2]|0;c[(c[j>>2]|0)+232>>2]=(D|0)<(g|0)?D:g;g=c[K>>2]|0;j=b[g+238>>1]|0}}while(0);if((A|0)<(j<<16>>16|0))A=A+1|0;else break a}Ia(118002,118005,111,118016)}while(0);if(eq(d,2,mh(d)|0)|0)Ia(118029,118005,134,118057)}g=c[K>>2]|0;q=c[g+196>>2]|0;j=b[g+236>>1]|0;g=b[g+238>>1]|0;if(j<<16>>16<=g<<16>>16){n=g<<16>>16;k=j<<16>>16;while(1){g=c[q+(k<<6)>>2]|0;if((g|0)>0){j=c[q+(k<<6)+4>>2]|0;m=0;do{C=c[(c[j+(m<<2)>>2]|0)+16>>2]|0;D=C+232|0;h[C+16>>3]=+(c[D>>2]|0);c[D>>2]=k;m=m+1|0}while((m|0)!=(g|0))}if((k|0)<(n|0))k=k+1|0;else break}}nh(d,d);m=c[K>>2]|0;d:do if((b[m+238>>1]|0)>0?(G=c[m+8>>2]|0,E=c[G+84>>2]|0,(E|0)!=0):0){t=+h[m+32>>3];D=~~(t-+h[m+16>>3]);v=+h[m+40>>3];g=~~(v-+h[m+24>>3]);k=(c[m+116>>2]&1|0)==0;j=k?g:D;g=k?D:g;e:do switch(E|0){case 4:{l=+h[G+48>>3];o=+h[G+56>>3];if(l<.001|o<.001)break d;r=+h[G+32>>3];p=+h[G+40>>3];r=l-r-r;l=o-p-p;o=r/t;p=l/v;if(o>=1.0&p>=1.0)break d;p=o<p?o:p;p=p>.5?p:.5;M=l*+Z(+(v*p/l))/v;l=t*(r*+Z(+(t*p/r))/t);h[G+64>>3]=l;h[G+72>>3]=v*M;F=113;break}case 2:{l=+h[G+64>>3];F=113;break}case 5:{l=+h[G+64>>3];if(l<=0.0)break d;o=l/t;l=+h[G+72>>3]/v;if(!(o>1.0&l>1.0))break d;l=o<l?o:l;p=l;break}case 1:{o=+h[G+16>>3];l=+(j|0)/+(g|0);if(l<o){p=1.0;l=o/l;break e}else{p=l/o;l=1.0;break e}}default:break d}while(0);do if((F|0)==113){if(l<=0.0)break d;o=l/+(g|0);l=+h[G+72>>3]/+(j|0);if(o<1.0|l<1.0)if(o<l){p=1.0;l=l/o;break}else{p=o/l;l=1.0;break}else p=o}while(0);o=k?l:p;l=k?p:l;g=c[m+192>>2]|0;if(g)do{G=c[g+16>>2]|0;F=G+16|0;M=l*+h[F>>3];h[F>>3]=+(~~(M+(M>=0.0?.5:-.5))|0);F=G+24|0;M=o*+h[F>>3];h[F>>3]=+(~~(M+(M>=0.0?.5:-.5))|0);g=c[G+164>>2]|0}while((g|0)!=0);oh(d,l,o)}while(0);f:do if(f){G=c[K>>2]|0;l=+h[G+32>>3]-+h[G+16>>3];o=+h[G+40>>3]-+h[G+24>>3];p=l/o;if(a[124827]|0){G=c[22667]|0;h[H>>3]=p;h[H+8>>3]=l*o/1.0e4;Bz(G,118070,H)|0;c[I>>2]=$h(d)|0;Bz(G,118095,I)|0}l=+h[f>>3];do if(p>l*1.1)c[f+24>>2]=~~(l*+((c[f+20>>2]|0)-(c[f+16>>2]|0)|0)/p);else{g=f+24|0;if(!(p<=l*.8)){c[g>>2]=0;break}c[g>>2]=-1;if(!(a[124827]|0))break f;Mz(118105,34,1,c[22667]|0)|0}while(0);if(a[124827]|0){I=c[22667]|0;c[J>>2]=c[f+24>>2];Bz(I,118140,J)|0}}while(0);g=c[(c[K>>2]|0)+192>>2]|0;g:do if(g){do{n=g+16|0;g=c[n>>2]|0;j=c[g+180>>2]|0;k=c[j>>2]|0;if(k){m=0;do{pB(c[k+16>>2]|0);pB(k);m=m+1|0;g=c[n>>2]|0;j=c[g+180>>2]|0;k=c[j+(m<<2)>>2]|0}while((k|0)!=0)}if(j){pB(j);g=c[n>>2]|0}j=c[g+172>>2]|0;if(j){pB(j);g=c[n>>2]|0}J=g+256|0;f=c[J+4>>2]|0;g=g+180|0;c[g>>2]=c[J>>2];c[g+4>>2]=f;g=c[n>>2]|0;f=g+248|0;J=c[f+4>>2]|0;g=g+172|0;c[g>>2]=c[f>>2];c[g+4>>2]=J;g=c[(c[n>>2]|0)+164>>2]|0}while((g|0)!=0);g=c[(c[K>>2]|0)+192>>2]|0;if(g){j=0;do{n=(j|0)==0;m=j+16|0;while(1){k=c[g+16>>2]|0;j=g;g=c[k+164>>2]|0;if((a[k+156>>0]|0)!=2)break;if(n)c[(c[K>>2]|0)+192>>2]=g;else c[(c[m>>2]|0)+164>>2]=g;pB(k);pB(j);if(!g)break g}}while((g|0)!=0)}}while(0);c[(c[(c[(c[K>>2]|0)+192>>2]|0)+16>>2]|0)+168>>2]=0}i=L;return}function ch(a,d,e,f){a=a|0;d=d|0;e=+e;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;j=m;l=$p(96)|0;n=l+48|0;c[n>>2]=c[n>>2]|3;c[l>>2]=c[l>>2]&-4|2;g=$p(176)|0;k=l+16|0;c[k>>2]=g;c[((c[l>>2]&3|0)==3?l:n)+40>>2]=a;c[((c[l>>2]&3|0)==2?l:l+-48|0)+40>>2]=d;if(e>65535.0){h[j>>3]=e;c[j+8>>2]=65535;dj(1,117926,j)|0;e=65535.0;g=c[k>>2]|0}b[g+170>>1]=~~(e+(e>=0.0?.5:-.5));c[g+156>>2]=f;bg(l)|0;i=m;return l|0}function dh(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+16>>2]|0;f=a[e+84>>0]|0;b=c[d+16>>2]|0;do if(f<<24>>24==(a[b+84>>0]|0)){if(+h[e+56>>3]==+h[b+56>>3]){if(!(f<<24>>24==0?1:+h[e+64>>3]==+h[b+64>>3])){b=0;break}}else if(f<<24>>24){b=0;break}if(+h[e+16>>3]==+h[b+16>>3]?+h[e+24>>3]==+h[b+24>>3]:0){b=1;break}b=(a[e+44>>0]|0)==0}else b=0;while(0);return b&1|0}function eh(d){d=d|0;var e=0,f=0,g=0,i=0.0,j=0.0,k=0,l=0.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.0;x=d+16|0;u=c[x>>2]|0;A=c[u+196>>2]|0;e=b[u+236>>1]|0;if(e<<16>>16<=(b[u+238>>1]|0)){u=e<<16>>16;while(1){n=A+(u<<6)|0;if((c[n>>2]|0)>0){o=A+(u<<6)+4|0;p=A+(u<<6)+40|0;q=A+(u<<6)+24|0;r=A+(u<<6)+32|0;s=A+(u<<6)+16|0;t=0;do{m=(c[(c[o>>2]|0)+(t<<2)>>2]|0)+16|0;e=c[m>>2]|0;i=+h[e+80>>3]*.5;g=c[e+204>>2]|0;if((g|0)!=0?(v=c[g>>2]|0,(v|0)!=0):0){k=v;f=0;do{B=c[k>>2]&3;if((c[((B|0)==3?k:k+48|0)+40>>2]|0)==(c[((B|0)==2?k:k+-48|0)+40>>2]|0)?(w=c[(c[k+16>>2]|0)+96>>2]|0,(w|0)!=0):0){l=+h[w+32>>3]*.5;i=i>l?i:l}f=f+1|0;k=c[g+(f<<2)>>2]|0}while((k|0)!=0)}if(+h[p>>3]<i){h[q>>3]=i;h[p>>3]=i}if(+h[r>>3]<i){h[s>>3]=i;h[r>>3]=i}k=c[e+212>>2]|0;if(k){if((k|0)==(d|0))g=0;else{g=Gs(k,c[13375]|0,8,0)|0;e=c[m>>2]|0}f=c[e+232>>2]|0;e=c[k+16>>2]|0;if((f|0)==(b[e+236>>1]|0)){B=e+128|0;j=+h[B>>3];l=i+ +(g|0);h[B>>3]=j>l?j:l}if((f|0)==(b[e+238>>1]|0)){B=e+120|0;j=+h[B>>3];l=i+ +(g|0);h[B>>3]=j>l?j:l}}t=t+1|0}while((t|0)<(c[n>>2]|0))}if((u|0)<(b[(c[x>>2]|0)+238>>1]|0))u=u+1|0;else break}}m=th(d)|0;k=c[x>>2]|0;B=b[k+238>>1]|0;f=B<<16>>16;h[(c[(c[c[A+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=+h[A+(f<<6)+16>>3];e=b[k+236>>1]|0;if(B<<16>>16>e<<16>>16){g=e<<16>>16;l=+(c[k+252>>2]|0);i=0.0;do{e=f;f=f+-1|0;C=+h[A+(e<<6)+40>>3]+ +h[A+(f<<6)+32>>3]+l;j=+h[A+(e<<6)+24>>3]+ +h[A+(f<<6)+16>>3]+8.0;j=C>j?C:j;if((c[A+(f<<6)>>2]|0)>0)h[(c[(c[c[A+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=j+ +h[(c[(c[c[A+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];i=i>j?i:j}while((f|0)>(g|0))}else i=0.0;if((m|0)!=0?(c[k+116>>2]&1|0)!=0:0){uh(d,0);k=c[x>>2]|0;if(a[k+276>>0]|0){B=b[k+238>>1]|0;f=B<<16>>16;e=b[k+236>>1]|0;if(B<<16>>16>e<<16>>16){g=e<<16>>16;e=f;j=+h[(c[(c[c[A+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];i=0.0;do{e=e+-1|0;C=j;j=+h[(c[(c[c[A+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];C=j-C;i=i>C?i:C}while((e|0)>(g|0))}else i=0.0}}if((a[k+276>>0]|0)!=0?(z=b[k+238>>1]|0,y=b[k+236>>1]|0,z<<16>>16>y<<16>>16):0){g=y<<16>>16;e=z<<16>>16;do{f=e;e=e+-1|0;if((c[A+(e<<6)>>2]|0)>0)h[(c[(c[c[A+(e<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]=i+ +h[(c[(c[c[A+(f<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]}while((e|0)>(g|0))}e=c[k+192>>2]|0;if(e)do{B=c[e+16>>2]|0;h[B+24>>3]=+h[(c[(c[c[A+(c[B+232>>2]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3];e=c[B+164>>2]|0}while((e|0)!=0);return}function fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;n=o+32|0;m=o+24|0;d=o+16|0;l=o+8|0;k=o;e=b+16|0;f=c[e>>2]|0;do if((c[f+216>>2]|0)>=2){c[m>>2]=~~(+h[f+16>>3]-+h[f+88>>3]);c[m+4>>2]=~~+h[f+24>>3];c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];rh(d,b,n);g=d;j=c[g+4>>2]|0;d=m;c[d>>2]=c[g>>2];c[d+4>>2]=j;d=c[e>>2]|0;if((c[d+184>>2]|0)>0){k=c[c[d+180>>2]>>2]|0;e=c[d+236>>2]|0;d=Oj(a,c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)|0;if(!d)break;e=e+1|0;do{k=(c[d>>2]&3|0)==2?d:d+-48|0;f=k+48|0;g=c[((c[k>>2]&3|0)==3?k:f)+40>>2]|0;if((g|0)!=(b|0)?(Ms(g)|0)==(b|0):0){f=c[((c[k>>2]&3|0)==3?k:f)+40>>2]|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];sh(l,a,f,n,e);f=l;g=c[f+4>>2]|0;j=m;c[j>>2]=c[f>>2];c[j+4>>2]=g;pg(k);j=k+-48|0;g=c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0;f=c[g+172>>2]|0;g=c[g+176>>2]|0;if(!f)f=aq((g<<2)+8|0)|0;else f=cq(f,(g<<2)+8|0)|0;c[(c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0)+172>>2]=f;f=(c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0)+176|0;g=c[f>>2]|0;c[f>>2]=g+1;c[(c[(c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0)+172>>2]|0)+(g<<2)>>2]=k;k=c[(c[((c[k>>2]&3|0)==2?k:j)+40>>2]|0)+16>>2]|0;c[(c[k+172>>2]|0)+(c[k+176>>2]<<2)>>2]=0;e=e+1|0}d=Pj(a,d)|0}while((d|0)!=0)}else{l=c[c[d+172>>2]>>2]|0;e=c[d+236>>2]|0;d=Lj(a,c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)|0;if(!d)break;e=e+1|0;do{f=d+-48|0;g=c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0;if((g|0)!=(b|0)?(Ms(g)|0)==(b|0):0){f=c[((c[d>>2]&3|0)==2?d:f)+40>>2]|0;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];sh(k,a,f,n,e);f=k;g=c[f+4>>2]|0;j=m;c[j>>2]=c[f>>2];c[j+4>>2]=g;pg(d);j=d+48|0;g=c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0;f=c[g+180>>2]|0;g=c[g+184>>2]|0;if(!f)f=aq((g<<2)+8|0)|0;else f=cq(f,(g<<2)+8|0)|0;c[(c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0)+180>>2]=f;g=(c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0)+184|0;l=c[g>>2]|0;c[g>>2]=l+1;c[(c[(c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0)+180>>2]|0)+(l<<2)>>2]=d;l=c[(c[((c[d>>2]&3|0)==3?d:j)+40>>2]|0)+16>>2]|0;c[(c[l+180>>2]|0)+(c[l+184>>2]<<2)>>2]=0;e=e+1|0}d=Nj(a,d)|0}while((d|0)!=0)}}while(0);i=o;return}function gh(a,b){a=a|0;b=b|0;var d=0,e=0;a:do if((a|0)!=(b|0)){e=c[(c[a+16>>2]|0)+180>>2]|0;a=c[e>>2]|0;if(!a)a=0;else{d=0;while(1){d=d+1|0;if(gh(c[((c[a>>2]&3|0)==2?a:a+-48|0)+40>>2]|0,b)|0){a=1;break a}a=c[e+(d<<2)>>2]|0;if(!a){a=0;break}}}}else a=1;while(0);return a|0}function hh(a){a=a|0;var b=0,d=0;do if((wf(a)|0)!=(a|0)){lh(a);a=a+16|0;b=c[a>>2]|0;b=$f(c[b+256>>2]|0,c[b+260>>2]|0)|0;if(!b){d=c[a>>2]|0;ch(c[d+256>>2]|0,c[d+260>>2]|0,1.0,128)|0;break}else{d=(c[b+16>>2]|0)+156|0;c[d>>2]=(c[d>>2]|0)+128;break}}else a=a+16|0;while(0);b=c[a>>2]|0;if((c[b+180>>2]|0)>=1){d=1;while(1){hh(c[(c[b+184>>2]|0)+(d<<2)>>2]|0);b=c[a>>2]|0;if((d|0)>=(c[b+180>>2]|0))break;else d=d+1|0}}return}function ih(d){d=d|0;var e=0,f=0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0;f=Gs(d,c[13375]|0,8,0)|0;o=d+16|0;e=c[o>>2]|0;g=b[e+236>>1]|0;if(g<<16>>16<=(b[e+238>>1]|0)){l=+(f|0);k=g<<16>>16;while(1){e=c[e+196>>2]|0;a:do if((c[e+(k<<6)>>2]|0)!=0?(m=c[c[e+(k<<6)+4>>2]>>2]|0,(m|0)!=0):0){j=m+16|0;i=c[(c[j>>2]|0)+236>>2]|0;while(1){if((i|0)<=0)break;i=i+-1|0;f=c[(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)+4>>2]|0)+(i<<2)>>2]|0;e=f+16|0;g=c[e>>2]|0;if(!(a[g+156>>0]|0)){e=f;n=11;break}if(qh(d,f)|0){n=10;break}}if((n|0)==10){g=c[e>>2]|0;e=f;n=11}if((n|0)==11){n=0;ch(e,c[(c[o>>2]|0)+256>>2]|0,l+ +h[g+96>>3],0)|0}e=(c[(c[(c[o>>2]|0)+196>>2]|0)+(k<<6)>>2]|0)+(c[(c[j>>2]|0)+236>>2]|0)|0;if((e|0)<(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)>>2]|0)){while(1){f=c[(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)+4>>2]|0)+(e<<2)>>2]|0;i=f+16|0;g=c[i>>2]|0;if(!(a[g+156>>0]|0)){e=f;break}e=e+1|0;if(qh(d,f)|0){e=i;n=16;break}if((e|0)>=(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(k<<6)>>2]|0))break a}if((n|0)==16){n=0;g=c[e>>2]|0;e=f}ch(c[(c[o>>2]|0)+260>>2]|0,e,l+ +h[g+88>>3],0)|0}}while(0);e=c[o>>2]|0;if((k|0)<(b[e+238>>1]|0))k=k+1|0;else break}}if((c[e+180>>2]|0)>=1){f=1;while(1){ih(c[(c[e+184>>2]|0)+(f<<2)>>2]|0);e=c[o>>2]|0;if((f|0)>=(c[e+180>>2]|0))break;else f=f+1|0}}return}function jh(a){a=a|0;var b=0,d=0.0,e=0,f=0,g=0,i=0;b=Gs(a,c[13375]|0,8,0)|0;ph(a);e=a+16|0;a=c[e>>2]|0;if((c[a+180>>2]|0)>=1){d=+(b|0);b=1;while(1){f=c[(c[a+184>>2]|0)+(b<<2)>>2]|0;ph(f);g=c[e>>2]|0;i=f+16|0;ch(c[g+256>>2]|0,c[(c[i>>2]|0)+256>>2]|0,d+ +h[g+96>>3],0)|0;g=c[e>>2]|0;ch(c[(c[i>>2]|0)+260>>2]|0,c[g+260>>2]|0,d+ +h[g+64>>3],0)|0;jh(f);a=c[e>>2]|0;if((b|0)>=(c[a+180>>2]|0))break;else b=b+1|0}}return}function kh(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0;f=Gs(a,c[13375]|0,8,0)|0;m=a+16|0;a=c[m>>2]|0;if((c[a+180>>2]|0)>=1){e=1;while(1){ph(c[(c[a+184>>2]|0)+(e<<2)>>2]|0);a=c[m>>2]|0;d=c[a+180>>2]|0;if((e|0)<(d|0))e=e+1|0;else break}if((d|0)>=1){l=+(f|0);j=1;do{k=j;j=j+1|0;e=c[a+184>>2]|0;f=c[e+(k<<2)>>2]|0;if((k|0)<(d|0)){d=f;i=j;while(1){e=c[e+(i<<2)>>2]|0;f=(b[(c[d+16>>2]|0)+236>>1]|0)>(b[(c[e+16>>2]|0)+236>>1]|0);h=f?e:d;d=f?d:e;e=c[h+16>>2]|0;f=c[d+16>>2]|0;n=b[f+236>>1]|0;g=n<<16>>16;if((b[e+238>>1]|0)>=n<<16>>16){a=(c[(c[(c[c[(c[e+196>>2]|0)+(g<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0)<(c[(c[(c[c[(c[f+196>>2]|0)+(g<<6)+4>>2]>>2]|0)+16>>2]|0)+236>>2]|0);ch(c[(c[(a?h:d)+16>>2]|0)+260>>2]|0,c[(c[(a?d:h)+16>>2]|0)+256>>2]|0,l,0)|0;a=c[m>>2]|0}e=c[a+184>>2]|0;d=c[e+(k<<2)>>2]|0;if((i|0)>=(c[a+180>>2]|0)){a=d;break}else i=i+1|0}}else a=f;kh(a);a=c[m>>2]|0;d=c[a+180>>2]|0}while((k|0)<(d|0))}}return}function lh(a){a=a|0;var d=0,e=0,f=0,g=0.0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+16|0;m=n;d=Gs(a,c[13375]|0,8,0)|0;ph(a);j=a+16|0;e=c[j>>2]|0;k=c[e+256>>2]|0;l=c[e+260>>2]|0;f=b[e+236>>1]|0;if(f<<16>>16<=(b[e+238>>1]|0)){g=+(d|0);f=f<<16>>16;while(1){d=c[e+196>>2]|0;do if(c[d+(f<<6)>>2]|0){d=c[c[d+(f<<6)+4>>2]>>2]|0;if(!d){c[m>>2]=ok(a)|0;c[m+4>>2]=f;dj(1,118162,m)|0;break}else{ch(k,d,g+ +h[(c[d+16>>2]|0)+88>>3]+ +h[e+96>>3],0)|0;e=c[j>>2]|0;d=c[e+196>>2]|0;d=c[(c[d+(f<<6)+4>>2]|0)+((c[d+(f<<6)>>2]|0)+-1<<2)>>2]|0;ch(d,l,g+ +h[(c[d+16>>2]|0)+96>>3]+ +h[e+64>>3],0)|0;break}}while(0);e=c[j>>2]|0;if((f|0)>=(b[e+238>>1]|0))break;else f=f+1|0}}i=n;return}function mh(a){a=a|0;var b=0,c=0.0;b=zj(a,118154)|0;if(!b)b=2147483647;else{c=+Xz(b);b=~~(c*+(ek(a)|0))}return b|0}function nh(d,e){d=d|0;e=e|0;var f=0,g=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0;t=d+16|0;f=c[t>>2]|0;if((c[f+180>>2]|0)>=1){i=1;while(1){nh(c[(c[f+184>>2]|0)+(i<<2)>>2]|0,e);f=c[t>>2]|0;if((i|0)>=(c[f+180>>2]|0))break;else i=i+1|0}}p=(wf(d)|0)==(d|0);s=c[t>>2]|0;if(p){f=b[s+236>>1]|0;i=b[s+238>>1]|0;if(f<<16>>16>i<<16>>16){j=2147483647.0;g=-2147483647.0}else{o=i<<16>>16;n=c[s+196>>2]|0;j=2147483647.0;g=-2147483647.0;p=f<<16>>16;while(1){m=c[n+(p<<6)>>2]|0;if((m|0)!=0?(q=c[n+(p<<6)+4>>2]|0,r=c[q>>2]|0,(r|0)!=0):0){k=c[r+16>>2]|0;d=a[k+156>>0]|0;if((m|0)>1&d<<24>>24!=0){l=1;do{k=c[(c[q+(l<<2)>>2]|0)+16>>2]|0;l=l+1|0;d=a[k+156>>0]|0}while((l|0)<(m|0)&d<<24>>24!=0)}if(!(d<<24>>24)){u=+h[k+16>>3]-+h[k+88>>3];j=j<u?j:u;d=c[(c[q+(m+-1<<2)>>2]|0)+16>>2]|0;if(a[d+156>>0]|0){k=m+-2|0;while(1){d=c[(c[q+(k<<2)>>2]|0)+16>>2]|0;if(!(a[d+156>>0]|0))break;else k=k+-1|0}}u=+h[d+16>>3]+ +h[d+96>>3];g=g>u?g:u}}if((p|0)<(o|0))p=p+1|0;else break}}l=c[s+180>>2]|0;if((l|0)>=1){k=c[s+184>>2]|0;d=1;while(1){r=c[(c[k+(d<<2)>>2]|0)+16>>2]|0;u=+h[r+16>>3]+-8.0;j=j<u?j:u;u=+h[r+32>>3]+8.0;g=g>u?g:u;if((d|0)==(l|0))break;else d=d+1|0}}}else{i=b[s+238>>1]|0;f=b[s+236>>1]|0;j=+(c[(c[(c[s+256>>2]|0)+16>>2]|0)+232>>2]|0);g=+(c[(c[(c[s+260>>2]|0)+16>>2]|0)+232>>2]|0)}e=c[(c[e+16>>2]|0)+196>>2]|0;v=+h[(c[(c[c[e+(i<<16>>16<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[s+120>>3];u=+h[(c[(c[c[e+(f<<16>>16<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]+ +h[s+128>>3];h[s+16>>3]=j;h[s+24>>3]=v;e=c[t>>2]|0;h[e+32>>3]=g;h[e+40>>3]=u;return}function oh(a,b,d){a=a|0;b=+b;d=+d;var e=0,f=0;f=a+16|0;a=c[f>>2]|0;if((c[a+180>>2]|0)>=1){e=1;while(1){oh(c[(c[a+184>>2]|0)+(e<<2)>>2]|0,b,d);a=c[f>>2]|0;if((e|0)<(c[a+180>>2]|0))e=e+1|0;else break}}f=a+16|0;h[f>>3]=+h[f>>3]*b;f=a+24|0;h[f>>3]=+h[f>>3]*d;f=a+32|0;h[f>>3]=+h[f>>3]*b;f=a+40|0;h[f>>3]=+h[f>>3]*d;return}function ph(b){b=b|0;var d=0,e=0,f=0,g=0.0,i=0.0;d=b+16|0;if(!(c[(c[d>>2]|0)+256>>2]|0)){f=lg(wf(b)|0)|0;a[(c[f+16>>2]|0)+156>>0]=2;e=lg(wf(b)|0)|0;a[(c[e+16>>2]|0)+156>>0]=2;if(((c[(c[d>>2]|0)+12>>2]|0)!=0?(wf(b)|0)!=(b|0):0)?(c[(c[(hl(b)|0)+16>>2]|0)+116>>2]&1|0)==0:0){b=c[d>>2]|0;i=+h[b+48>>3];g=+h[b+80>>3];ch(f,e,+(~~(i>g?i:g)|0),0)|0}b=c[d>>2]|0;c[b+256>>2]=f;c[b+260>>2]=e}return}function qh(b,d){b=b|0;d=d|0;var e=0;d=c[d+16>>2]|0;if((a[d+156>>0]|0)==1){d=c[c[d+256>>2]>>2]|0;while(1){e=c[(c[d+16>>2]|0)+116>>2]|0;if(!e)break;else d=e}if(!(ql(b,c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0)|0))d=(ql(b,c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0)|0)==0&1;else d=0}else d=0;return d|0}function rh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0;qt(b,c[(c[(gl(b)|0)+16>>2]|0)+116>>2]&1);e=c[b+16>>2]|0;h[e+24>>3]=+(c[d+4>>2]|0);f=+(c[d>>2]|0)+ +h[e+88>>3];h[e+16>>3]=f;f=f+ +h[e+96>>3];c[d>>2]=~~(f+ +(c[(c[(gl(b)|0)+16>>2]|0)+248>>2]|0));e=d;d=c[e+4>>2]|0;b=a;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function sh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;j=i;i=i+16|0;h=j;b=wf(b)|0;g=Ms(d)|0;if((g|0)!=(d|0))jg(g,d);k=c[d+16>>2]|0;c[k+236>>2]=f;g=c[(c[g+16>>2]|0)+232>>2]|0;c[k+232>>2]=g;c[(c[(c[(c[b+16>>2]|0)+196>>2]|0)+(g<<6)+4>>2]|0)+(f<<2)>>2]=d;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];rh(a,d,h);i=j;return}function th(a){a=a|0;var d=0.0,e=0,f=0.0,g=0,i=0,j=0,k=0.0,l=0,m=0,n=0.0;l=c[(c[(wf(a)|0)+16>>2]|0)+196>>2]|0;if((wf(a)|0)==(a|0))k=8.0;else k=+(Gs(a,c[13375]|0,8,0)|0);m=a+16|0;e=c[m>>2]|0;f=+h[e+120>>3];d=+h[e+128>>3];if((c[e+180>>2]|0)<1)e=0;else{j=1;i=0;while(1){g=c[(c[e+184>>2]|0)+(j<<2)>>2]|0;i=th(g)|0|i;g=c[g+16>>2]|0;e=c[m>>2]|0;if((b[g+238>>1]|0)==(b[e+238>>1]|0)){n=k+ +h[g+120>>3];f=f>n?f:n}if((b[g+236>>1]|0)==(b[e+236>>1]|0)){n=k+ +h[g+128>>3];d=d>n?d:n}if((j|0)>=(c[e+180>>2]|0)){e=i;break}else j=j+1|0}}if((wf(a)|0)!=(a|0)?(c[(c[m>>2]|0)+12>>2]|0)!=0:0)if(!(c[(c[(hl(a)|0)+16>>2]|0)+116>>2]&1)){j=c[m>>2]|0;e=1;f=f+ +h[j+56>>3];d=d+ +h[j+88>>3]}else e=1;j=c[m>>2]|0;h[j+120>>3]=f;h[j+128>>3]=d;if((wf(a)|0)!=(a|0)){a=c[m>>2]|0;m=l+(b[a+236>>1]<<6)+24|0;n=+h[m>>3];h[m>>3]=n>d?n:d;a=l+(b[a+238>>1]<<6)+16|0;n=+h[a>>3];h[a>>3]=n>f?n:f}return e|0}function uh(a,d){a=a|0;d=d|0;var e=0.0,f=0.0,g=0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0.0;v=c[(c[(wf(a)|0)+16>>2]|0)+196>>2]|0;if((wf(a)|0)==(a|0))g=0;else g=Gs(a,c[13375]|0,8,0)|0;w=a+16|0;i=c[w>>2]|0;f=+h[i+120>>3];e=+h[i+128>>3];if((c[i+180>>2]|0)>=1){k=g+d|0;l=+(g|0);j=1;while(1){g=c[(c[i+184>>2]|0)+(j<<2)>>2]|0;uh(g,k);g=c[g+16>>2]|0;i=c[w>>2]|0;if((b[g+238>>1]|0)==(b[i+238>>1]|0)){x=l+ +h[g+120>>3];f=f>x?f:x}if((b[g+236>>1]|0)==(b[i+236>>1]|0)){x=l+ +h[g+128>>3];e=e>x?e:x}if((j|0)<(c[i+180>>2]|0))j=j+1|0;else break}}h[i+120>>3]=f;h[i+128>>3]=e;if(((wf(a)|0)!=(a|0)?(m=c[w>>2]|0,(c[m+12>>2]|0)!=0):0)?(x=+h[m+104>>3],o=+h[m+72>>3],o=(x>o?x:o)-(e+(f+(+h[(c[(c[c[v+(b[m+236>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]-+h[(c[(c[c[v+(b[m+238>>1]<<6)+4>>2]>>2]|0)+16>>2]|0)+24>>3]))),o>0.0):0){r=~~o;n=c[(wf(a)|0)+16>>2]|0;s=c[n+196>>2]|0;t=c[w>>2]|0;k=b[t+238>>1]|0;i=k<<16>>16;m=b[t+236>>1]|0;g=m<<16>>16;p=(r+1|0)/2|0;q=t+120|0;o=+h[q>>3]+ +(p|0);f=+(d|0);j=~~(o-(+h[s+(i<<6)+16>>3]-f));if((j|0)>0){e=+(j|0);if(k<<16>>16>=m<<16>>16)while(1){if((c[s+(i<<6)>>2]|0)>0){d=(c[(c[c[s+(i<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;h[d>>3]=e+ +h[d>>3]}if((i|0)>(g|0))i=i+-1|0;else break}x=+h[t+128>>3];l=x;e=e+(+(r-p|0)+x)-(+h[s+(g<<6)+24>>3]-f)}else{e=+h[t+128>>3];l=e;e=+(r-p|0)+e-(+h[s+(g<<6)+24>>3]-f)}i=~~e;if((i|0)>0?(u=b[n+236>>1]|0,m<<16>>16>u<<16>>16):0){e=+(i|0);i=u<<16>>16;do{g=g+-1|0;if((c[s+(g<<6)>>2]|0)>0){u=(c[(c[c[s+(g<<6)+4>>2]>>2]|0)+16>>2]|0)+24|0;h[u>>3]=e+ +h[u>>3]}}while((g|0)>(i|0))}h[t+128>>3]=+(r-p|0)+l;h[q>>3]=o}if((wf(a)|0)!=(a|0)){w=c[w>>2]|0;a=v+(b[w+236>>1]<<6)+24|0;x=+h[a>>3];o=+h[w+128>>3];h[a>>3]=x>o?x:o;a=v+(b[w+238>>1]<<6)+16|0;o=+h[a>>3];x=+h[w+120>>3];h[a>>3]=o>x?o:x}return}function vh(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+16|0;f=c[i>>2]|0;b[f+236>>1]=32767;b[f+238>>1]=-1;f=Rk(a)|0;e=c[i>>2]|0;if(!f)d=0;else{d=0;do{g=e+238|0;h=c[(c[f+16>>2]|0)+232>>2]|0;if((b[g>>1]|0)<(h|0))b[g>>1]=h;e=e+236|0;if((b[e>>1]|0)>(h|0))b[e>>1]=h;if(!d)d=f;else d=(h|0)<(c[(c[d+16>>2]|0)+232>>2]|0)?f:d;f=Sk(a,f)|0;e=c[i>>2]|0}while((f|0)!=0)}c[e+264>>2]=d;return}function wh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0;b=zj(a,118207)|0;if(!b)f=2147483647;else{g=+Xz(b);f=~~(g*+(ek(a)|0))}e=a+16|0;b=c[e>>2]|0;if((c[b+220>>2]|0)>0){d=0;do{c[b+192>>2]=c[(c[b+216>>2]|0)+(d<<2)>>2];eq(a,(c[b+180>>2]|0)==0&1,f)|0;d=d+1|0;b=c[e>>2]|0}while((d|0)<(c[b+220>>2]|0))}return}function xh(d,f){d=d|0;f=f|0;var 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,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0;F=i;i=i+128|0;x=F+16|0;E=F+8|0;y=F;if(!(zj(d,118216)|0))Ih(d,f);else{C=d+16|0;D=(c[C>>2]|0)+136|0;b[D>>1]=e[D>>1]|16;c[12502]=0;c[x>>2]=c[12648];D=ak(118224,x,0)|0;xl(D,118253,280,1)|0;ol(D,50012,49996);zh(d);g=zj(d,118207)|0;if(!g)B=2147483647;else{G=+Xz(g);B=~~(G*+(ek(d)|0))}Ah(d,0);c[12502]=0;g=Rk(d)|0;if(g)do{if((Bh(g)|0)==(g|0)){v=Ch(D,ok(g)|0)|0;c[(c[g+16>>2]|0)+148>>2]=v}g=Sk(d,g)|0}while((g|0)!=0);g=Rk(d)|0;if(g)do{h=g+16|0;if(!(c[(c[h>>2]|0)+148>>2]|0)){v=c[(c[(Bh(g)|0)+16>>2]|0)+148>>2]|0;c[(c[h>>2]|0)+148>>2]=v}g=Sk(d,g)|0}while((g|0)!=0);g=Rk(d)|0;if(g)do{h=c[(c[g+16>>2]|0)+148>>2]|0;k=Lj(d,g)|0;if(k)do{l=c[13435]|0;if(!((((l|0)!=0?(w=Aj(k,l)|0,(w|0)!=0):0)?(a[w>>0]|0)!=0:0)?(Ls(w)|0)<<24>>24==0:0))z=19;do if((z|0)==19){z=0;t=k+-48|0;v=c[(c[(Bh(c[((c[k>>2]&3|0)==2?k:t)+40>>2]|0)|0)+16>>2]|0)+148>>2]|0;if((h|0)!=(v|0)){s=c[k>>2]&3;u=k+48|0;q=c[((s|0)==3?k:u)+40>>2]|0;r=c[(c[q+16>>2]|0)+212>>2]|0;s=c[(c[(c[((s|0)==2?k:t)+40>>2]|0)+16>>2]|0)+212>>2]|0;if((r|0)!=(s|0)){m=s;l=r;a:while(1){p=c[l+16>>2]|0;o=c[p+204>>2]|0;while(1){n=c[m+16>>2]|0;if((o|0)>=(c[n+204>>2]|0))break;m=c[n+200>>2]|0;if((l|0)==(m|0))break a}l=c[p+200>>2]|0;if((l|0)==(m|0)){l=m;break}}if(!((l|0)==(r|0)|(l|0)==(s|0))){if((Vs(zj(r,118269)|0,0)|0)<<24>>24==0?(Vs(zj(s,118269)|0,0)|0)<<24>>24==0:0){Dh(D,h,v,k);break}l=Oj(D,h)|0;b:do if(!l)z=36;else while(1){u=Lj(D,c[((c[l>>2]&3|0)==3?l:l+48|0)+40>>2]|0)|0;if((u|0)!=0?(c[((c[u>>2]&3|0)==2?u:u+-48|0)+40>>2]|0)==(v|0):0)break b;l=Pj(D,l)|0;if(!l){z=36;break}}while(0);if((z|0)==36){z=0;s=c[12512]|0;c[12512]=s+1;c[y>>2]=s;Oz(x,118277,y)|0;s=Ch(D,x)|0;t=Sj(D,s,h,0,1)|0;v=Sj(D,s,v,0,1)|0;s=c[k+16>>2]|0;u=s+156|0;t=(c[t+16>>2]|0)+156|0;c[t>>2]=(c[t>>2]|0)+((c[u>>2]|0)*1e3|0);v=c[v+16>>2]|0;t=v+170|0;r=b[t>>1]|0;s=b[s+170>>1]|0;b[t>>1]=(r&65535)>(s&65535)?r:s;v=v+156|0;c[v>>2]=(c[v>>2]|0)+(c[u>>2]|0)}break}}s=Bh(q)|0;l=c[k>>2]&3;if((s|0)!=(c[(c[(c[(c[(c[((l|0)==3?k:u)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+212>>2]|0)?(u=Bh(c[((l|0)==2?k:t)+40>>2]|0)|0,(u|0)!=(c[(c[(c[(c[(c[((c[k>>2]&3|0)==2?k:t)+40>>2]|0)+16>>2]|0)+212>>2]|0)+16>>2]|0)+208>>2]|0)):0)l=v;else{l=h;h=v}Dh(D,h,l,k)}}while(0);k=Nj(d,k)|0}while((k|0)!=0);g=Sk(d,g)|0}while((g|0)!=0);Eh(d,D,0,0);g=Rk(D)|0;if(g)do{z=c[g+16>>2]|0;a[z+158>>0]=0;a[z+157>>0]=0;g=Sk(D,g)|0}while((g|0)!=0);g=Rk(D)|0;if(g)do{Fh(D,g);g=Sk(D,g)|0}while((g|0)!=0);g=Rk(D)|0;if(g)do{c[(c[g+16>>2]|0)+128>>2]=0;g=Sk(D,g)|0}while((g|0)!=0);g=Rk(D)|0;if(g){h=0;do{if(!(c[(c[g+16>>2]|0)+128>>2]|0)){h=h+1|0;Gh(D,g,h)}g=Sk(D,g)|0}while((g|0)!=0);if((h|0)>1?(A=Ch(D,118286)|0,j=Rk(D)|0,(j|0)!=0):0){g=1;do{if((c[(c[j+16>>2]|0)+128>>2]|0)==(g|0)){Sj(D,A,j,0,1)|0;g=g+1|0}j=Sk(D,j)|0}while((j|0)!=0);n=h}else n=h}else n=0;g=Rk(D)|0;if(g)do{h=Lj(D,g)|0;if(h){m=g+16|0;do{k=c[m>>2]|0;j=c[k+180>>2]|0;k=c[k+184>>2]|0;if(!j)j=aq((k<<2)+8|0)|0;else j=cq(j,(k<<2)+8|0)|0;k=c[m>>2]|0;c[k+180>>2]=j;k=k+184|0;l=c[k>>2]|0;c[k>>2]=l+1;c[j+(l<<2)>>2]=h;l=c[m>>2]|0;c[(c[l+180>>2]|0)+(c[l+184>>2]<<2)>>2]=0;l=h+-48|0;k=c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0;j=c[k+172>>2]|0;k=c[k+176>>2]|0;if(!j)j=aq((k<<2)+8|0)|0;else j=cq(j,(k<<2)+8|0)|0;c[(c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0)+172>>2]=j;z=(c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0)+176|0;A=c[z>>2]|0;c[z>>2]=A+1;c[(c[(c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0)+172>>2]|0)+(A<<2)>>2]=h;A=c[(c[((c[h>>2]&3|0)==2?h:l)+40>>2]|0)+16>>2]|0;c[(c[A+172>>2]|0)+(c[A+176>>2]<<2)>>2]=0;h=Nj(D,h)|0}while((h|0)!=0)}g=Sk(D,g)|0}while((g|0)!=0);if(f){ci(D);ai(D)}g=zj(d,126106)|0;if(!g)g=-1;else g=Yz(g)|0;dq(D,1,B,g)|0;B=c[C>>2]|0;b[B+236>>1]=32767;b[B+238>>1]=-1;if((n|0)>1){g=$p((n<<2)+4|0)|0;h=1;while(1){c[g+(h<<2)>>2]=32767;if((h|0)==(n|0)){o=g;break}else h=h+1|0}}else o=0;g=Rk(d)|0;if(g){n=(o|0)==0;do{k=c[(c[(c[(Bh(g)|0)+16>>2]|0)+148>>2]|0)+16>>2]|0;l=c[k+232>>2]|0;m=c[g+16>>2]|0;c[m+232>>2]=l;h=c[C>>2]|0;j=h+238|0;if((b[j>>1]|0)<(l|0))b[j>>1]=l;h=h+236|0;if((b[h>>1]|0)>(l|0))b[h>>1]=l;if(!n){B=c[k+128>>2]|0;c[m+128>>2]=B;B=o+(B<<2)|0;f=c[B>>2]|0;c[B>>2]=(f|0)<(l|0)?f:l}g=Sk(d,g)|0}while((g|0)!=0)}l=(o|0)!=0;if(l){g=Rk(d)|0;if(!g)g=1;else{do{B=c[g+16>>2]|0;C=B+232|0;c[C>>2]=(c[C>>2]|0)-(c[o+(c[B+128>>2]<<2)>>2]|0);g=Sk(d,g)|0}while((g|0)!=0);g=1}}else{B=b[(c[C>>2]|0)+236>>1]|0;h=B<<16>>16;if(B<<16>>16>0){g=Rk(d)|0;if(g)do{B=(c[g+16>>2]|0)+232|0;c[B>>2]=(c[B>>2]|0)-h;g=Sk(d,g)|0}while((g|0)!=0);g=c[C>>2]|0;C=g+236|0;b[C>>1]=(e[C>>1]|0)-h;g=g+238|0;b[g>>1]=(e[g>>1]|0)-h;g=0}else g=0}Hh(d,g);g=Rk(D)|0;if(g)do{j=g+16|0;h=c[j>>2]|0;k=c[h+172>>2]|0;if(k){pB(k);h=c[j>>2]|0}h=c[h+180>>2]|0;if(h)pB(h);g=Sk(D,g)|0}while((g|0)!=0);pB(c[(c[(Rk(d)|0)+16>>2]|0)+112>>2]|0);g=Rk(d)|0;if(g)do{c[(c[g+16>>2]|0)+112>>2]=0;g=Sk(d,g)|0}while((g|0)!=0);if(l)pB(o);dk(D)|0}if(a[124827]|0){D=c[22667]|0;C=c[d+16>>2]|0;d=b[C+236>>1]|0;c[E>>2]=b[C+238>>1];c[E+4>>2]=d;Bz(D,118292,E)|0}i=F;return}function yh(a){a=a|0;return (rA(ok(a)|0,131620,7)|0)==0|0}function zh(d){d=d|0;var f=0,g=0,h=0;if(a[(c[(c[d+60>>2]|0)+16>>2]|0)+113>>0]&1){f=Rk(d)|0;if(f)do{g=Lj(d,f)|0;if(g)do{h=(c[g+16>>2]|0)+170|0;b[h>>1]=(e[h>>1]|0)<<1;g=Nj(d,g)|0}while((g|0)!=0);f=Sk(d,f)|0}while((f|0)!=0);h=(c[d+16>>2]|0)+252|0;c[h>>2]=((c[h>>2]|0)+1|0)/2|0}return}function Ah(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(Rk(b)|0){do if(at(b)|0)if(!d){c[(c[b+16>>2]|0)+204>>2]=0;f=b;break}else{f=c[b+16>>2]|0;c[f+204>>2]=(c[(c[d+16>>2]|0)+204>>2]|0)+1;c[f+200>>2]=d;Ph(d,b);Oh(d,b);f=b;break}else f=d;while(0);d=bm(b)|0;if(d)do{Ah(d,f);d=cm(d)|0}while((d|0)!=0);if((at(b)|0)!=0?(e=Rk(b)|0,(e|0)!=0):0)do{d=(c[e+16>>2]|0)+212|0;if(!(c[d>>2]|0))c[d>>2]=b;e=Sk(b,e)|0}while((e|0)!=0);d=zj(b,118472)|0;a:do if((d|0)!=0?(a[d>>0]|0)!=0:0){do if(!(lA(d,118482)|0))d=f+16|0;else{if(!(lA(d,118486)|0)){d=f+16|0;a[(c[d>>2]|0)+241>>0]=1;break}do if(!(lA(d,118493)|0))d=f+16|0;else{if(!(lA(d,118497)|0)){d=f+16|0;a[(c[d>>2]|0)+242>>0]=1;break}if(lA(d,118477)|0)break a;Qh(b)|0;break a}while(0);f=Qh(b)|0;f=Rh(f,c[(c[d>>2]|0)+212>>2]|0)|0;c[(c[d>>2]|0)+212>>2]=f;break a}while(0);f=Qh(b)|0;f=Rh(f,c[(c[d>>2]|0)+208>>2]|0)|0;c[(c[d>>2]|0)+208>>2]=f}while(0);if(((at(b)|0)!=0?(g=b+16|0,h=c[g>>2]|0,i=c[h+208>>2]|0,(i|0)!=0):0)?(i|0)==(c[h+212>>2]|0):0){i=Qh(b)|0;b=c[g>>2]|0;c[b+208>>2]=i;c[b+212>>2]=i}}return}function Bh(a){a=a|0;var b=0,d=0,e=0;b=a+16|0;d=(c[b>>2]|0)+152|0;e=c[d>>2]|0;if(e){if((e|0)!=(a|0)){a=Bh(e)|0;c[(c[b>>2]|0)+152>>2]=a;return a|0}}else c[d>>2]=a;return a|0}function Ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;b=Xk(a,b,1)|0;d=b+16|0;c[(c[d>>2]|0)+176>>2]=0;f=$p(20)|0;e=c[d>>2]|0;c[e+172>>2]=f;c[e+184>>2]=0;e=$p(20)|0;f=c[d>>2]|0;c[f+180>>2]=e;e=c[12502]|0;f=f+168|0;if(!e){c[f>>2]=0;c[(c[a+16>>2]|0)+192>>2]=b}else{c[f>>2]=e;c[(c[(c[12502]|0)+16>>2]|0)+164>>2]=b}c[12502]=b;c[(c[d>>2]|0)+164>>2]=0;return b|0}function Dh(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+16|0;j=l;h=Sj(a,d,f,0,0)|0;if(!h){h=Sj(a,f,d,0,0)|0;if(!h){h=Sj(a,d,f,0,1)|0;if(!h){d=ok(d)|0;g=ok(f)|0;c[j>>2]=d;c[j+4>>2]=g;dj(1,118512,j)|0}else k=4}else k=4}else k=4;if((k|0)==4){g=c[g+16>>2]|0;d=e[g+170>>1]|0;g=c[g+156>>2]|0;k=c[h+16>>2]|0;j=k+170|0;f=e[j>>1]|0;b[j>>1]=f>>>0>d>>>0?f:d;k=k+156|0;c[k>>2]=(c[k>>2]|0)+g}i=l;return}function Eh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if((at(a)|0)!=0?(Vs(zj(a,118269)|0,0)|0)<<24>>24!=0:0){f=Rk(a)|0;if(f){g=f;do{if(!(Oj(a,g)|0)){f=c[(c[(Bh(g)|0)+16>>2]|0)+148>>2]|0;if(!d)d=Ch(b,118502)|0;Sj(b,d,f,0,1)|0}if(!(Lj(a,g)|0)){f=c[(c[(Bh(g)|0)+16>>2]|0)+148>>2]|0;if(!e)e=Ch(b,118507)|0;Sj(b,f,e,0,1)|0}g=Sk(a,g)|0}while((g|0)!=0)}if((e|0)!=0&(d|0)!=0){f=(c[(Sj(b,d,e,0,1)|0)+16>>2]|0)+156|0;c[f>>2]=(c[f>>2]|0)+1e3;f=e}else f=e}else f=e;e=bm(a)|0;if(e)do{Eh(e,b,d,f);e=cm(e)|0}while((e|0)!=0);return}function Fh(d,f){d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=f+16|0;g=c[m>>2]|0;h=g+157|0;if(!(a[h>>0]|0)){a[h>>0]=1;a[g+158>>0]=1;g=Lj(d,f)|0;if(g)do{l=g;g=Nj(d,g)|0;f=c[l>>2]&3;k=l+-48|0;i=c[((f|0)==2?l:k)+40>>2]|0;h=c[i+16>>2]|0;if(!(a[h+158>>0]|0)){if(!(a[h+157>>0]|0))Fh(d,i)}else{j=l+48|0;h=Sj(d,i,c[((f|0)==3?l:j)+40>>2]|0,0,0)|0;if(!h){h=c[l>>2]&3;h=Sj(d,c[((h|0)==2?l:k)+40>>2]|0,c[((h|0)==3?l:j)+40>>2]|0,0,1)|0}j=c[l+16>>2]|0;f=e[j+170>>1]|0;j=c[j+156>>2]|0;k=c[h+16>>2]|0;i=k+170|0;h=e[i>>1]|0;b[i>>1]=h>>>0>f>>>0?h:f;k=k+156|0;c[k>>2]=(c[k>>2]|0)+j;fl(d,l)|0}}while((g|0)!=0);a[(c[m>>2]|0)+158>>0]=0}return}function Gh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=(c[b+16>>2]|0)+128|0;if(!(c[e>>2]|0)){c[e>>2]=d;e=Lj(a,b)|0;if(e)do{Gh(a,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0,d);e=Nj(a,e)|0}while((e|0)!=0);e=Oj(a,b)|0;if(e)do{Gh(a,c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0,d);e=Pj(a,e)|0}while((e|0)!=0)}return}function Hh(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=a+16|0;e=c[i>>2]|0;if((c[e+180>>2]|0)>=1){f=1;while(1){Hh(c[(c[e+184>>2]|0)+(f<<2)>>2]|0,0);e=c[i>>2]|0;if((f|0)<(c[e+180>>2]|0))f=f+1|0;else break}}if((d|0)!=0|(c[e+200>>2]|0)!=0){b[e+236>>1]=32767;b[e+238>>1]=-1;f=Rk(a)|0;if(!f)e=0;else{e=0;do{h=c[(c[f+16>>2]|0)+232>>2]|0;d=c[i>>2]|0;g=d+238|0;if((b[g>>1]|0)<(h|0))b[g>>1]=h;d=d+236|0;if((b[d>>1]|0)>(h|0)){b[d>>1]=h;e=f}f=Sk(a,f)|0}while((f|0)!=0)}c[(c[i>>2]|0)+264>>2]=e}return}function Ih(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+16|0;f=r;zh(d);do if(!e){Jh(d,d);ki(d);Kh(f,d);g=c[f>>2]|0;f=c[f+4>>2]|0;Ji(d,0);m=0;p=d+16|0}else{ci(d);ai(d);Jh(d,d);ki(d);Kh(f,d);g=c[f>>2]|0;f=c[f+4>>2]|0;Ji(d,0);h=d+16|0;p=c[h>>2]|0;if((c[p+220>>2]|0)<=1?(c[p+180>>2]|0)<=0:0){m=e;p=h;break}c[e+32>>2]=1;m=0;p=h}while(0);Zh(d);k=c[p>>2]|0;if(!((c[k+228>>2]|0)==0?(c[k+224>>2]|0)==0:0))j=9;if((j|0)==9?(l=Rk(d)|0,(l|0)!=0):0){k=f&65535;j=g&65535;f=0;h=l;do{if((h|0)==(Ms(h)|0)){g=h+16|0;e=c[g>>2]|0;if((c[e+184>>2]|0)==0?(n=c[(c[p>>2]|0)+228>>2]|0,!((n|0)==0|(h|0)==(n|0))):0){f=hg(h,n,0)|0;e=c[f+16>>2]|0;b[e+170>>1]=k;c[e+156>>2]=0;e=c[g>>2]|0}if((c[e+176>>2]|0)==0?(o=c[(c[p>>2]|0)+224>>2]|0,!((o|0)==0|(h|0)==(o|0))):0){f=hg(o,h,0)|0;l=c[f+16>>2]|0;b[l+170>>1]=j;c[l+156>>2]=0}}h=Sk(d,h)|0}while((h|0)!=0);if(f)Ji(d,0)}k=(m|0)==0;if(k)wh(d);else bi(d,m);f=Rk(d)|0;g=c[p>>2]|0;do if(f){b[g+236>>1]=32767;b[g+238>>1]=-1;do{e=Ms(f)|0;j=c[f+16>>2]|0;g=c[j+232>>2]|0;do if((e|0)!=(f|0)){if(!k)if(!g)g=0;else break;g=g+(c[(c[e+16>>2]|0)+232>>2]|0)|0;c[j+232>>2]=g}while(0);e=c[p>>2]|0;h=e+238|0;if((b[h>>1]|0)<(g|0))b[h>>1]=g;e=e+236|0;if((b[e>>1]|0)>(g|0))b[e>>1]=g;switch(a[j+159>>0]|0){case 6:case 0:break;default:Os(f)}f=Sk(d,f)|0}while((f|0)!=0);if((wf(d)|0)==(d|0)){if((c[13360]|0)!=100){Mh(d);break}f=c[p>>2]|0;if((c[f+180>>2]|0)>=1){g=1;while(1){Lh(c[(c[f+184>>2]|0)+(g<<2)>>2]|0);f=c[p>>2]|0;if((g|0)>=(c[f+180>>2]|0))break;else g=g+1|0}}}}else{b[g+238>>1]=0;b[g+236>>1]=0}while(0);f=c[p>>2]|0;if((c[f+220>>2]|0)>0){k=0;do{g=c[(c[f+216>>2]|0)+(k<<2)>>2]|0;c[f+192>>2]=g;if(g){f=g;do{j=f+16|0;f=c[j>>2]|0;h=f+176|0;g=c[h>>2]|0;if((g|0)>-1){e=f+172|0;f=g;while(1){c[(c[e>>2]|0)+(f<<2)>>2]=0;if((f|0)>0)f=f+-1|0;else break}f=c[j>>2]|0}c[h>>2]=0;h=f+184|0;g=c[h>>2]|0;if((g|0)>-1){e=f+180|0;f=g;while(1){c[(c[e>>2]|0)+(f<<2)>>2]=0;if((f|0)>0)f=f+-1|0;else break}f=c[j>>2]|0}c[h>>2]=0;a[f+157>>0]=0;f=c[f+164>>2]|0}while((f|0)!=0);f=c[p>>2]|0}k=k+1|0}while((k|0)<(c[f+220>>2]|0))}f=Rk(d)|0;if(f)do{g=Lj(d,f)|0;if(g)do{k=g+16|0;e=c[k>>2]|0;l=c[e+172>>2]|0;if((l|0)!=0?(q=l+16|0,(g|0)==(c[(c[q>>2]|0)+116>>2]|0)):0){e=Rk(d)|0;if(e)do{h=Lj(d,e)|0;if(h)do{do if((g|0)!=(h|0)){j=(c[h+16>>2]|0)+172|0;o=c[j>>2]|0;if(!((o|0)!=0&(l|0)==(o|0)))break;c[j>>2]=0}while(0);h=Nj(d,h)|0}while((h|0)!=0);e=Sk(d,e)|0}while((e|0)!=0);pB(c[q>>2]|0);pB(l);e=c[k>>2]|0}c[e+172>>2]=0;g=Nj(d,g)|0}while((g|0)!=0);f=Sk(d,f)|0}while((f|0)!=0);pB(c[(c[p>>2]|0)+216>>2]|0);d=c[p>>2]|0;c[d+216>>2]=0;c[d+220>>2]=0;i=r;return}function Jh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=bm(d)|0;if(d){k=b+16|0;do{if(rA(ok(d)|0,131620,7)|0){e=Us(zj(d,118472)|0,50052,50076)|0;a[(c[d+16>>2]|0)+274>>0]=e;if(!e)Jh(b,d);else l=5}else{e=7;l=5}a:do if((l|0)==5){l=0;if((e|0)==7&(c[13360]|0)==100){Nh(b,d);break}i=Rk(d)|0;if(i){j=e&255;g=i+16|0;a[(c[g>>2]|0)+159>>0]=j;f=Sk(d,i)|0;if(f)do{Ns(i,f)|0;a[(c[f+16>>2]|0)+159>>0]=a[(c[g>>2]|0)+159>>0]|0;f=Sk(d,f)|0}while((f|0)!=0);b:do switch(e|0){case 3:case 2:{f=c[k>>2]|0;g=f+224|0;h=c[g>>2]|0;if(!h){c[g>>2]=i;break b}else{i=Ns(h,i)|0;f=c[k>>2]|0;c[f+224>>2]=i;break b}}case 5:case 4:{f=c[k>>2]|0;g=f+228|0;h=c[g>>2]|0;if(!h){c[g>>2]=i;break b}else{i=Ns(h,i)|0;f=c[k>>2]|0;c[f+228>>2]=i;break b}}default:break a}while(0);switch(e|0){case 3:{a[(c[(c[f+224>>2]|0)+16>>2]|0)+159>>0]=j;break a}case 5:{a[(c[(c[f+228>>2]|0)+16>>2]|0)+159>>0]=j;break a}default:break a}}}while(0);d=cm(d)|0}while((d|0)!=0)}return}function Kh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=d+16|0;e=c[i>>2]|0;d=c[e+228>>2]|0;e=c[e+224>>2]|0;f=(e|0)==0;if(!d)if(f){c[b>>2]=0;c[b+4>>2]=0}else h=5;else if(f)h=6;else h=5;if((h|0)==5){d=Ms(e)|0;e=c[i>>2]|0;c[e+224>>2]=d;d=c[e+228>>2]|0;if(!d){g=0;h=12}else h=6}do if((h|0)==6){d=Ms(d)|0;e=c[i>>2]|0;c[e+228>>2]=d;if(d){f=d+16|0;d=c[f>>2]|0;g=(a[d+159>>0]|0)==5&1;d=c[c[d+180>>2]>>2]|0;if(d){while(1){h=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;if((h|0)!=(Ms(h)|0)){h=9;break}Yh(d);d=c[c[(c[f>>2]|0)+180>>2]>>2]|0;if(!d){h=11;break}}if((h|0)==9)Ia(118395,118335,346,118427);else if((h|0)==11){e=c[i>>2]|0;h=12;break}}else h=12}else{g=0;h=12}}while(0);if((h|0)==12){d=c[e+224>>2]|0;a:do if(d){e=d+16|0;d=c[e>>2]|0;f=(a[d+159>>0]|0)==3&1;d=c[c[d+172>>2]>>2]|0;if(!d)j=f;else{while(1){i=c[((c[d>>2]&3|0)==3?d:d+48|0)+40>>2]|0;if((i|0)!=(Ms(i)|0))break;Yh(d);d=c[c[(c[e>>2]|0)+172>>2]>>2]|0;if(!d){j=f;break a}}Ia(118440,118335,353,118427)}}else j=0;while(0);c[b>>2]=j;c[b+4>>2]=g}return}function Lh(a){a=a|0;var d=0,f=0,g=0;f=a+16|0;a=c[f>>2]|0;g=c[(c[(c[a+264>>2]|0)+16>>2]|0)+232>>2]|0;d=a+236|0;b[d>>1]=(e[d>>1]|0)+g;d=a+238|0;b[d>>1]=(e[d>>1]|0)+g;if((c[a+180>>2]|0)>=1){d=1;while(1){Lh(c[(c[a+184>>2]|0)+(d<<2)>>2]|0);a=c[f>>2]|0;if((d|0)>=(c[a+180>>2]|0))break;else d=d+1|0}}return}function Mh(b){b=b|0;var d=0;d=bm(wf(b)|0)|0;if(d)do{if((a[(c[d+16>>2]|0)+274>>0]|0)==7)Nh(b,d);d=cm(d)|0}while((d|0)!=0);return}function Nh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=d+16|0;f=(c[e>>2]|0)+200|0;a:do if((c[f>>2]|0)==0?(c[f>>2]=b,Oh(b,d),(Rk(d)|0)!=0):0){Ph(b,d);if((c[13360]|0)!=100){vh(d);break}Ih(d,0);g=c[e>>2]|0;e=c[g+192>>2]|0;if(e){f=0;do{b=c[e+16>>2]|0;if(!(c[b+232>>2]|0))f=(a[b+156>>0]|0)==0?e:f;e=c[b+164>>2]|0}while((e|0)!=0);b=f;if(b){c[g+264>>2]=b;e=Rk(d)|0;if(!e)break;while(1){f=e+16|0;if(!((e|0)==(b|0)?1:(c[(c[f>>2]|0)+216>>2]|0)<2))break;Ns(e,b)|0;a[(c[f>>2]|0)+159>>0]=7;e=Sk(d,e)|0;if(!e)break a}Ia(118357,118335,242,118342)}}Ia(118320,118335,238,118342)}while(0);return}function Oh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=Rk(d)|0;if(e){j=b+16|0;do{i=e;e=Sk(d,e)|0;h=i+16|0;if(!(a[(c[h>>2]|0)+159>>0]|0)){f=c[j>>2]|0;b=c[f+180>>2]|0;a:do if((b|0)>1){b=1;while(1){if(ql(c[(c[f+184>>2]|0)+(b<<2)>>2]|0,i)|0){f=b;break}g=b+1|0;f=c[j>>2]|0;b=c[f+180>>2]|0;if((g|0)>=(b|0)){f=g;break a}else b=g}b=c[(c[j>>2]|0)+180>>2]|0}else f=1;while(0);if((f|0)<(b|0))fl(d,i)|0;c[(c[h>>2]|0)+212>>2]=0}else fl(d,i)|0}while((e|0)!=0)}b=Rk(d)|0;if(b)do{e=Lj(wf(d)|0,b)|0;if(e)do{if(ql(d,c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0)Vj(d,e,1)|0;e=Nj(wf(d)|0,e)|0}while((e|0)!=0);b=Sk(d,b)|0}while((b|0)!=0);return}function Ph(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+16|0;d=c[e>>2]|0;g=d+180|0;a=c[g>>2]|0;f=a+1|0;c[g>>2]=f;d=c[d+184>>2]|0;if(!d)a=$p((a<<2)+8|0)|0;else a=bq(d,a+2|0,4,f)|0;c[(c[e>>2]|0)+184>>2]=a;c[a+(f<<2)>>2]=b;Mp(b);return}function Qh(a){a=a|0;var b=0,c=0;c=Rk(a)|0;if(c){b=Bh(c)|0;c=Sk(a,c)|0;if(c)do{Rh(b,c)|0;c=Sk(a,c)|0}while((c|0)!=0)}else b=0;return b|0}function Rh(a,b){a=a|0;b=b|0;if(b){a=Bh(a)|0;c[(c[(Bh(b)|0)+16>>2]|0)+152>>2]=a}return a|0}function Sh(a,b,d){a=a|0;b=b|0;d=d|0;xl(b,118253,c[d>>2]|0,1)|0;return}function Th(a,b,d){a=a|0;b=b|0;d=d|0;xl(b,118602,c[d+4>>2]|0,1)|0;return}function Uh(a,b,d){a=a|0;b=b|0;d=d|0;xl(b,118587,c[d+8>>2]|0,1)|0;return}function Vh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+240|0;n=p+120|0;o=p;c[13439]=rj(b,2,118617,0)|0;l=rj(b,2,118626,0)|0;c[13440]=l;if((l|0)!=0|(c[13439]|0)!=0?(d=Rk(b)|0,(d|0)!=0):0)do{e=Qj(b,d)|0;if(e){f=0;l=0;while(1){g=c[e>>2]|0;j=g&3;h=c[((j|0)==2?e:e+-48|0)+40>>2]|0;k=e+48|0;a:do if((h|0)!=(c[((j|0)==3?e:k)+40>>2]|0)){j=c[13439]|0;do if((h|0)==(d|0)&(j|0)!=0){g=Aj(e,j)|0;if(!(a[g>>0]|0)){g=c[e>>2]|0;break}else{f=Wh(n,f,d,e,g)|0;g=l;break a}}while(0);h=c[13440]|0;if(((h|0)!=0?(c[((g&3|0)==3?e:k)+40>>2]|0)==(d|0):0)?(m=Aj(e,h)|0,(a[m>>0]|0)!=0):0)g=Wh(o,l,d,e,m)|0;else g=l}else g=l;while(0);e=Rj(b,e,d)|0;if(!e){h=g;break}else l=g}if((f|0)>0){g=0;do{e=n+(g*24|0)+4|0;if((c[n+(g*24|0)+8>>2]|0)>1)Xh(d,e);e=c[e>>2]|0;if(e)pB(e);g=g+1|0}while((g|0)!=(f|0))}if((h|0)>0){f=0;do{e=o+(f*24|0)+4|0;if((c[o+(f*24|0)+8>>2]|0)>1)Xh(d,e);e=c[e>>2]|0;if(e)pB(e);f=f+1|0}while((f|0)!=(h|0))}}d=Sk(b,d)|0}while((d|0)!=0);i=p;return}function Wh(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=i;i=i+16|0;n=r;q=r+12|0;p=r+8|0;do if((d|0)>0){m=a[g>>0]|0;k=0;while(1){l=c[b+(k*24|0)>>2]|0;if((a[l>>0]|0)==m<<24>>24?(lA(l,g)|0)==0:0)break;k=k+1|0;if((k|0)>=(d|0)){o=10;break}}if((o|0)==10){if((d|0)<=4){o=12;break}b=ok(e)|0;c[n>>2]=5;c[n+4>>2]=b;dj(1,118635,n)|0;break}g=b+(k*24|0)+4|0;m=c[g>>2]|0;n=b+(k*24|0)+8|0;l=c[n>>2]|0;if(!m)l=aq((l<<2)+8|0)|0;else l=cq(m,(l<<2)+8|0)|0;c[g>>2]=l;m=c[n>>2]|0;o=m+1|0;c[n>>2]=o;c[l+(m<<2)>>2]=f;c[(c[g>>2]|0)+(o<<2)>>2]=0;l=k;o=13}else{k=0;o=12}while(0);if((o|0)==12){t=b+(k*24|0)+8|0;c[t>>2]=0;s=$p(8)|0;n=b+(k*24|0)+4|0;c[n>>2]=s;m=c[t>>2]|0;l=m+1|0;c[t>>2]=l;c[s+(m<<2)>>2]=f;c[(c[n>>2]|0)+(l<<2)>>2]=0;c[b+(k*24|0)>>2]=g;c[b+(k*24|0)+12>>2]=0;h[b+(k*24|0)+16>>3]=0.0;d=d+1|0;l=k;o=13}if((o|0)==13){Ao(f,q,p);k=(c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(e|0)?c[p>>2]|0:c[q>>2]|0;if(k){s=b+(l*24|0)+12|0;t=c[s>>2]|0;c[s>>2]=t+1;if(!t)j=+Bo(f,k);else j=0.0;h[b+(l*24|0)+16>>3]=j}}i=r;return d|0}function Xh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=i;i=i+80|0;y=z+68|0;x=z+64|0;u=z;w=d+4|0;j=c[w>>2]|0;if((j|0)>0){m=c[d>>2]|0;p=b+16|0;t=c[p>>2]|0;r=+h[t+16>>3];q=+h[t+24>>3];s=0;o=0.0;n=0.0;do{f=c[m+(s<<2)>>2]|0;g=c[f>>2]&3;e=c[((g|0)==2?f:f+-48|0)+40>>2]|0;if((e|0)==(b|0))e=c[((g|0)==3?f:f+48|0)+40>>2]|0;v=c[e+16>>2]|0;A=+h[v+16>>3]-r;k=+h[v+24>>3]-q;l=+Ky(A,k);o=o+A/l;n=n+k/l;s=s+1|0}while((s|0)<(j|0));v=p;e=t}else{v=b+16|0;t=c[v>>2]|0;e=t;r=+h[t+16>>3];q=+h[t+24>>3];o=0.0;n=0.0}l=+Ky(o,n);k=+h[e+88>>3]+ +h[e+96>>3];A=+h[e+80>>3];t=k>A+ +(c[(c[(gl(b)|0)+16>>2]|0)+252>>2]|0);e=c[v>>2]|0;if(t)k=+h[e+88>>3]+ +h[e+96>>3];else{k=+h[e+80>>3];k=k+ +(c[(c[(gl(b)|0)+16>>2]|0)+252>>2]|0);e=c[v>>2]|0}A=o/l*k+ +h[e+16>>3];k=n/l*k+ +h[e+24>>3];h[u>>3]=r;t=u+8|0;h[t>>3]=q;h[u+16>>3]=(r*2.0+A)/3.0;h[u+24>>3]=(q*2.0+k)/3.0;h[u+32>>3]=(r+A*2.0)/3.0;h[u+40>>3]=(q+k*2.0)/3.0;h[u+48>>3]=A;h[u+56>>3]=k;_r(b,u);e=c[v>>2]|0;k=+h[u>>3]-+h[e+16>>3];l=+h[t>>3]-+h[e+24>>3];k=+(~~(k+(k>=0.0?.5:-.5))|0);l=+(~~(l+(l>=0.0?.5:-.5))|0);A=+h[e+88>>3];t=~~((A+k)*256.0/(A+ +h[e+96>>3]))&255;if((c[w>>2]|0)>0){s=0;do{e=c[(c[d>>2]|0)+(s<<2)>>2]|0;Ao(e,y,x);if(e)do{p=(e|0)==0;a:do if(!p){m=e;do{f=c[m>>2]|0;j=m+-48|0;if((c[((f&3|0)==2?m:j)+40>>2]|0)==(b|0)){f=c[m+16>>2]|0;h[f+56>>3]=k;h[f+64>>3]=l;h[f+72>>3]=0.0;c[f+80>>2]=0;a[f+84>>0]=1;a[f+85>>0]=0;a[f+86>>0]=0;a[f+87>>0]=0;a[f+88>>0]=t;a[f+89>>0]=0;c[f+92>>2]=0;f=c[m>>2]|0}g=m+16|0;if((c[((f&3|0)==3?m:m+48|0)+40>>2]|0)==(b|0)){u=c[g>>2]|0;h[u+16>>3]=k;h[u+24>>3]=l;h[u+32>>3]=0.0;c[u+40>>2]=0;a[u+44>>0]=1;a[u+45>>0]=0;a[u+46>>0]=0;a[u+47>>0]=0;a[u+48>>0]=t;a[u+49>>0]=0;c[u+52>>2]=0}if((a[(c[g>>2]|0)+112>>0]|0)!=1)break;f=c[(c[((c[m>>2]&3|0)==2?m:j)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break;if((c[f+184>>2]|0)!=1)break;m=c[c[f+180>>2]>>2]|0}while((m|0)!=0);if(!p){m=e;do{f=c[m>>2]|0;if((c[((f&3|0)==2?m:m+-48|0)+40>>2]|0)==(b|0)){f=c[m+16>>2]|0;h[f+56>>3]=k;h[f+64>>3]=l;h[f+72>>3]=0.0;c[f+80>>2]=0;a[f+84>>0]=1;a[f+85>>0]=0;a[f+86>>0]=0;a[f+87>>0]=0;a[f+88>>0]=t;a[f+89>>0]=0;c[f+92>>2]=0;f=c[m>>2]|0}g=m+48|0;j=m+16|0;if((c[((f&3|0)==3?m:g)+40>>2]|0)==(b|0)){u=c[j>>2]|0;h[u+16>>3]=k;h[u+24>>3]=l;h[u+32>>3]=0.0;c[u+40>>2]=0;a[u+44>>0]=1;a[u+45>>0]=0;a[u+46>>0]=0;a[u+47>>0]=0;a[u+48>>0]=t;a[u+49>>0]=0;c[u+52>>2]=0}if((a[(c[j>>2]|0)+112>>0]|0)!=1)break a;f=c[(c[((c[m>>2]&3|0)==3?m:g)+40>>2]|0)+16>>2]|0;if((a[f+156>>0]|0)!=1)break a;if((c[f+176>>2]|0)!=1)break a;m=c[c[f+172>>2]>>2]|0}while((m|0)!=0)}}while(0);e=c[(c[e+16>>2]|0)+172>>2]|0}while((e|0)!=0);s=s+1|0}while((s|0)<(c[w>>2]|0));e=c[v>>2]|0}a[e+145>>0]=1;i=z;return}function Yh(a){a=a|0;var b=0,d=0,e=0;dg(a);b=c[a>>2]&3;d=a+-48|0;e=a+48|0;b=$f(c[((b|0)==2?a:d)+40>>2]|0,c[((b|0)==3?a:e)+40>>2]|0)|0;if(!b){b=c[a>>2]&3;hg(c[((b|0)==2?a:d)+40>>2]|0,c[((b|0)==3?a:e)+40>>2]|0,a)|0}else og(a,b);return}function Zh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=b+16|0;b=c[g>>2]|0;if((c[b+220>>2]|0)>0){f=0;do{d=c[(c[b+216>>2]|0)+(f<<2)>>2]|0;e=b+192|0;c[e>>2]=d;if(d){do{h=c[d+16>>2]|0;a[h+157>>0]=0;d=c[h+164>>2]|0}while((d|0)!=0);d=c[e>>2]|0;if(d){b=d;do{_h(b);b=c[(c[b+16>>2]|0)+164>>2]|0}while((b|0)!=0);b=c[g>>2]|0}}f=f+1|0}while((f|0)<(c[b+220>>2]|0))}return}function _h(b){b=b|0;var d=0,e=0,f=0,g=0;g=b+16|0;b=c[g>>2]|0;d=b+157|0;if(!(a[d>>0]|0)){a[d>>0]=1;a[b+158>>0]=1;d=c[c[b+180>>2]>>2]|0;if(d){f=0;do{b=c[((c[d>>2]&3|0)==2?d:d+-48|0)+40>>2]|0;e=c[b+16>>2]|0;if(!(a[e+158>>0]|0))if(!(a[e+157>>0]|0)){_h(b);b=f}else b=f;else{Yh(d);b=f+-1|0}f=b+1|0;b=c[g>>2]|0;d=c[(c[b+180>>2]|0)+(f<<2)>>2]|0}while((d|0)!=0)}a[b+158>>0]=0}return}function $h(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=Rk(a)|0;if(!d)b=0;else{b=0;do{e=Lj(a,d)|0;if(e)do{g=c[e>>2]&3;f=c[(c[(c[((g|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;g=c[(c[(c[((g|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;if((f|0)!=(g|0)){g=f-g|0;b=b+-1+((g|0)>-1?g:0-g|0)|0}e=Nj(a,e)|0}while((e|0)!=0);d=Sk(a,d)|0}while((d|0)!=0)}return b|0}function ai(b){b=b|0;var d=0,e=0,f=0,g=0;d=Rk(b)|0;if(d)do{e=c[d+16>>2]|0;g=c[e+176>>2]|0;if((g|0)>0){e=c[e+172>>2]|0;f=0;do{a[(c[(c[e+(f<<2)>>2]|0)+16>>2]|0)+112>>0]=0;f=f+1|0}while((f|0)<(g|0))}d=Sk(b,d)|0}while((d|0)!=0);return}function bi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0.0,r=0,s=0,t=0.0,u=0.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,H=0,I=0,J=0;J=i;i=i+16|0;H=J;G=c[d+24>>2]|0;c[12525]=aq((ek(b)|0)*24|0)|0;c[12526]=0;e=Rk(b)|0;if(e)do{c[(c[e+16>>2]|0)+120>>2]=-1;e=Sk(b,e)|0}while((e|0)!=0);e=Rk(b)|0;if(e)do{m=e+16|0;do if(!(c[(c[m>>2]|0)+216>>2]|0)){D=$p(4)|0;F=c[12526]|0;c[(c[12525]|0)+(F*24|0)>>2]=D;c[c[(c[12525]|0)+(F*24|0)>>2]>>2]=e;D=c[12525]|0;c[D+(F*24|0)+4>>2]=1;F=c[m>>2]|0;E=c[12526]|0;h[D+(E*24|0)+8>>3]=+h[F+32>>3];h[D+(E*24|0)+16>>3]=+h[F+40>>3];c[F+120>>2]=E;c[12526]=(c[12526]|0)+1}else{j=Ms(e)|0;l=j+16|0;f=c[l>>2]|0;g=c[f+120>>2]|0;if((g|0)>-1){E=c[12525]|0;D=E+(g*24|0)+4|0;F=c[D>>2]|0;c[D>>2]=F+1;c[(c[E+(g*24|0)>>2]|0)+(F<<2)>>2]=e;F=c[m>>2]|0;E=c[12525]|0;D=E+(g*24|0)+8|0;h[D>>3]=+h[F+32>>3]+ +h[D>>3];E=E+(g*24|0)+16|0;y=+h[E>>3];u=+h[F+40>>3];h[E>>3]=y<u?u:y;c[F+120>>2]=g;break}g=$p(c[f+216>>2]<<2)|0;f=c[12526]|0;c[(c[12525]|0)+(f*24|0)>>2]=g;c[c[(c[12525]|0)+(f*24|0)>>2]>>2]=j;g=c[12525]|0;if((j|0)==(e|0)){c[g+(f*24|0)+4>>2]=1;f=c[l>>2]|0;j=c[12526]|0;h[g+(j*24|0)+8>>3]=+h[f+32>>3];h[g+(j*24|0)+16>>3]=+h[f+40>>3];g=f;f=c[m>>2]|0}else{c[(c[g+(f*24|0)>>2]|0)+4>>2]=e;F=c[12525]|0;c[F+(f*24|0)+4>>2]=2;g=c[l>>2]|0;f=c[m>>2]|0;j=c[12526]|0;h[F+(j*24|0)+8>>3]=+h[g+32>>3]+ +h[f+32>>3];y=+h[g+40>>3];u=+h[f+40>>3];h[F+(j*24|0)+16>>3]=y<u?u:y}c[g+120>>2]=j;c[f+120>>2]=c[12526];c[12526]=(c[12526]|0)+1}while(0);e=Sk(b,e)|0}while((e|0)!=0);C=(G|0)==-1;a:do if(C|(G|0)>0){D=d+8|0;B=C^1;E=b+16|0;F=c[22667]|0;e=0;n=1797693134862315708145274.0e284;while(1){f=Rk(b)|0;if(f)do{c[(c[f+16>>2]|0)+232>>2]=0;f=Sk(b,f)|0}while((f|0)!=0);wh(b);k=+ei(b);h[D>>3]=k;if(a[124827]|0){h[H>>3]=k;Bz(F,118687,H)|0;k=+h[D>>3]}if(!(!(k<=+h[d>>3])&(!(n<=k)|B)))break;c[12527]=$p((ek(b)|0)<<2)|0;if((ek(b)|0)>0){f=0;do{c[(c[12527]|0)+(f<<2)>>2]=f;f=f+1|0}while((f|0)<(ek(b)|0))}fi(b);m=c[12527]|0;_z(m,ek(b)|0,4,15);m=c[12528]|0;l=c[12527]|0;o=c[12529]|0;g=0;while(1){if((g|0)>=(m|0)){f=0;q=0.0;break}f=c[l+(g<<2)>>2]|0;j=g+1|0;if((c[o+(f*40|0)+12>>2]|0)<2)g=j;else{I=26;break}}if((I|0)==26){I=0;if((m|0)>(j|0))q=+h[o+((c[l+(j<<2)>>2]|0)*40|0)+24>>3];else q=0.0}if((g|0)!=(m|0)){_z(c[o+(f*40|0)+4>>2]|0,c[o+(f*40|0)+12>>2]|0,4,16);g=c[12529]|0;n=+h[g+(f*40|0)+24>>3];if(!(!(q<=n*.25)?!(q>=n*3.0*.25):0))q=n*.5;A=c[g+(f*40|0)+12>>2]|0;if((A|0)>0){w=0;x=0;z=0;l=0;y=0.0;while(1){m=c[g+(f*40|0)+8>>2]|0;do if(!(c[m+(z<<2)>>2]|0)){s=c[(c[g+(f*40|0)+4>>2]|0)+(z<<2)>>2]|0;v=s+8|0;n=+h[v>>3];t=n*72.0;j=c[E>>2]|0;u=y>0.0?+(c[j+248>>2]|0):0.0;o=(w|0)!=0;if(!(o&!(y+t+u<=q))){m=o?w:1;j=o?x:s;n=y+(t+u);break}r=x+4|0;o=c[r>>2]|0;if((o|0)>0){p=s+4|0;g=c[p>>2]|0;j=o;m=0;do{if((g|0)>0){j=0;do{a[(c[(hg(c[(c[x>>2]|0)+(m<<2)>>2]|0,c[(c[s>>2]|0)+(j<<2)>>2]|0,0)|0)+16>>2]|0)+112>>0]=1;j=j+1|0;g=c[p>>2]|0}while((j|0)<(g|0));j=c[r>>2]|0}m=m+1|0}while((m|0)<(j|0));g=c[12529]|0;m=c[g+(f*40|0)+8>>2]|0;n=+h[v>>3];j=c[E>>2]|0}c[m+(z<<2)>>2]=1;m=g+(f*40|0)+12|0;c[m>>2]=(c[m>>2]|0)+-1;m=g+(f*40|0)+16|0;c[m>>2]=(c[m>>2]|0)+1;m=g+(f*40|0)+24|0;h[m>>3]=+h[m>>3]-(n*72.0+ +(c[j+248>>2]|0));m=w;j=x;n=y}else{m=w;j=x;l=l+1|0;n=y}while(0);z=z+1|0;if((z|0)>=(l+A|0))break;else{w=m;x=j;y=n}}}}e=e+1|0;if(!(C|(e|0)<(G|0)))break a;else n=k}I=d+20|0;c[d+16>>2]=c[I>>2];c[I>>2]=e}while(0);wh(b);fi(b);e=c[12528]|0;if((e|0)>0){s=c[12529]|0;p=0;r=0;f=0;while(1){g=s+(r*40|0)|0;o=c[s+(r*40|0)+12>>2]|0;j=(p|0)==0;if(o)if(!j)if((o|0)>0?(c[g>>2]|0)>(f|0):0){j=c[s+(r*40|0)+4>>2]|0;m=0;do{e=c[j+(m<<2)>>2]|0;l=c[e+4>>2]|0;if((l|0)>0){e=c[e>>2]|0;g=0;do{I=(c[(c[e+(g<<2)>>2]|0)+16>>2]|0)+232|0;c[I>>2]=(c[I>>2]|0)-p;g=g+1|0}while((g|0)!=(l|0))}m=m+1|0}while((m|0)!=(o|0));e=c[12528]|0;g=p}else g=p;else g=0;else{if(j)f=c[g>>2]|0;g=p+1|0}r=r+1|0;if((r|0)>=(e|0))break;else p=g}}h[d+8>>3]=+ei(b);i=J;return}function ci(a){a=a|0;var b=0;b=Rk(a)|0;if(b)do{c[(c[b+16>>2]|0)+216>>2]=0;b=Sk(a,b)|0}while((b|0)!=0);return}function di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+32|0;f=g+16|0;e=g+8|0;d=g+20|0;c[d>>2]=5;a=zj(a,122869)|0;if((a|0)!=0?(c[e>>2]=g,c[e+4>>2]=d,(Pz(a,118702,e)|0)>=1):0){dj(0,118709,f)|0;c[b+24>>2]=0;c[b+32>>2]=0}else{c[b+24>>2]=0;c[b+32>>2]=0}i=g;return 0}function ei(a){a=a|0;var b=0.0,d=0.0,e=0,f=0,g=0,i=0.0;fi(a);g=c[12528]|0;a=c[a+16>>2]|0;d=+(_(c[a+252>>2]|0,g+-1|0)|0);if((g|0)>0){f=c[12529]|0;a=c[a+248>>2]|0;e=0;b=0.0;do{i=+h[f+(e*40|0)+24>>3]+ +(_(a,c[f+(e*40|0)+16>>2]|0)|0);b=b<i?i:b;d=d+ +h[f+(e*40|0)+32>>3];e=e+1|0}while((e|0)<(g|0))}else b=0.0;return +(b/d)}function fi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0.0,j=0;c[12528]=0;b=c[12529]|0;if(b){if((c[12526]|0)>0){d=0;while(1){e=c[b+(d*40|0)+4>>2]|0;if(e){pB(e);b=c[12529]|0}b=c[b+(d*40|0)+8>>2]|0;if(b)pB(b);d=d+1|0;if((d|0)>=(c[12526]|0))break;b=c[12529]|0}b=c[12529]|0}pB(b)}c[12529]=$p((c[12526]|0)*40|0)|0;b=c[12526]|0;if((b|0)>0){d=0;do{j=$p(b<<2)|0;c[(c[12529]|0)+(d*40|0)+4>>2]=j;j=$p(c[12526]<<2)|0;c[(c[12529]|0)+(d*40|0)+8>>2]=j;j=c[12529]|0;c[j+(d*40|0)>>2]=d;c[j+(d*40|0)+12>>2]=0;c[j+(d*40|0)+16>>2]=0;j=j+(d*40|0)+24|0;d=d+1|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;b=c[12526]|0}while((d|0)<(b|0))}b=Rk(a)|0;if(b)do{d=Lj(a,b)|0;if(d)do{j=c[d>>2]&3;e=(c[(c[(c[((j|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)+1|0;g=d+-48|0;if((e|0)<(c[(c[(c[((j|0)==2?d:g)+40>>2]|0)+16>>2]|0)+232>>2]|0)){f=c[12529]|0;do{j=f+(e*40|0)+16|0;c[j>>2]=(c[j>>2]|0)+1;e=e+1|0}while((e|0)<(c[(c[(c[((c[d>>2]&3|0)==2?d:g)+40>>2]|0)+16>>2]|0)+232>>2]|0))}d=Nj(a,d)|0}while((d|0)!=0);b=Sk(a,b)|0}while((b|0)!=0);if((c[12526]|0)>0){f=a+16|0;j=0;do{g=c[12525]|0;a=(c[c[g+(j*24|0)>>2]>>2]|0)+16|0;b=(c[a>>2]|0)+232|0;d=c[b>>2]|0;if((d|0)>=(c[12528]|0)){c[12528]=d+1;d=c[b>>2]|0}e=c[12529]|0;b=e+(d*40|0)+24|0;i=+h[b>>3];h[b>>3]=i+(+h[g+(j*24|0)+8>>3]*72.0+(i>0.0?+(c[(c[f>>2]|0)+248>>2]|0):0.0));b=e+(d*40|0)+32|0;i=+h[g+(j*24|0)+16>>3]*72.0;if(+h[b>>3]<i)h[b>>3]=i;c[(c[e+(d*40|0)+4>>2]|0)+(c[e+(d*40|0)+12>>2]<<2)>>2]=g+(j*24|0);a=(c[12529]|0)+((c[(c[a>>2]|0)+232>>2]|0)*40|0)+12|0;c[a>>2]=(c[a>>2]|0)+1;j=j+1|0}while((j|0)<(c[12526]|0))}return}function gi(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0;f=c[12529]|0;e=+h[f+((c[b>>2]|0)*40|0)+24>>3];d=+h[f+((c[a>>2]|0)*40|0)+24>>3];return (e>d&1)-(e<d&1)|0}function hi(a,b){a=a|0;b=b|0;a=ii(c[a>>2]|0)|0;b=ii(c[b>>2]|0)|0;return ((b|0)<(a|0)&1)-((b|0)>(a|0)&1)|0}function ii(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=a+4|0;if((c[f>>2]|0)>0){b=0;g=0;do{d=c[(c[a>>2]|0)+(g<<2)>>2]|0;e=gl(d)|0;d=Lj(e,d)|0;if(d)do{b=b+1|0;d=Nj(e,d)|0}while((d|0)!=0);g=g+1|0}while((g|0)<(c[f>>2]|0))}else b=0;return b|0}function ji(b){b=b|0;var d=0,e=0;d=c[13435]|0;if((((d|0)!=0?(e=Aj(b,d)|0,(e|0)!=0):0)?(a[e>>0]|0)!=0:0)?(Ls(e)|0)<<24>>24==0:0)d=1;else d=0;return d|0}function ki(b){b=b|0;var d=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;si(b);d=Rk(b)|0;if(d)do{f=Lj(b,d)|0;if(f)do{j=f+16|0;do if(((c[(c[j>>2]|0)+172>>2]|0)==0?(ji(f)|0)==0:0)?(m=f+48|0,n=Ms(c[((c[f>>2]&3|0)==3?f:m)+40>>2]|0)|0,o=f+-48|0,p=Ms(c[((c[f>>2]&3|0)==2?f:o)+40>>2]|0)|0,(n|0)!=(p|0)):0){if((c[(c[n+16>>2]|0)+212>>2]|0)==0?(c[(c[p+16>>2]|0)+212>>2]|0)==0:0){g=$f(n,p)|0;if(!g){hg(n,p,f)|0;break}else{og(f,g);break}}l=c[f>>2]&3;k=c[((l|0)==3?f:m)+40>>2]|0;l=c[((l|0)==2?f:o)+40>>2]|0;g=c[k+16>>2]|0;h=c[g+212>>2]|0;if(!h)i=0;else i=(c[g+232>>2]|0)-(c[(c[(c[(c[h+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)|0;g=c[l+16>>2]|0;h=c[g+212>>2]|0;if(!h)g=0;else g=(c[g+232>>2]|0)-(c[(c[(c[(c[h+16>>2]|0)+264>>2]|0)+16>>2]|0)+232>>2]|0)|0;i=(e[(c[j>>2]|0)+170>>1]|0)+(i-g)|0;h=(i|0)>0;g=lg(b)|0;a[(c[g+16>>2]|0)+156>>0]=2;q=Ms(k)|0;k=Ms(l)|0;l=ch(g,q,h?0.0:+(0-i|0),(c[(c[j>>2]|0)+156>>2]|0)*10|0)|0;c[(c[(ch(g,k,h?+(i|0):0.0,c[(c[j>>2]|0)+156>>2]|0)|0)+16>>2]|0)+116>>2]=f;c[(c[l+16>>2]|0)+116>>2]=f}while(0);f=Nj(b,f)|0}while((f|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);return}function li(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;n=c[d>>2]&3;i=c[(c[(c[((n|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;n=c[(c[(c[((n|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;n=(i|0)>(n|0)?i:n;i=c[d+16>>2]|0;d=i+172|0;if(c[d>>2]|0)Ia(118798,118820,148,118829);c[d>>2]=f;m=a+16|0;j=(g|0)==0;k=i+154|0;l=i+156|0;i=i+168|0;g=f;do{if(j)d=c[g+16>>2]|0;else{d=c[g+16>>2]|0;f=d+168|0;b[f>>1]=(e[f>>1]|0)+(e[i>>1]|0)}a=d+154|0;b[a>>1]=(e[a>>1]|0)+(e[k>>1]|0);d=d+156|0;c[d>>2]=(c[d>>2]|0)+(c[l>>2]|0);d=g+-48|0;a=c[(c[((c[g>>2]&3|0)==2?g:d)+40>>2]|0)+16>>2]|0;if((c[a+232>>2]|0)==(n|0))break;o=+((c[(c[m>>2]|0)+248>>2]|0)/2|0|0);f=a+88|0;h[f>>3]=o+ +h[f>>3];f=a+96|0;h[f>>3]=o+ +h[f>>3];g=c[c[(c[(c[((c[g>>2]&3|0)==2?g:d)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((g|0)!=0);return}function mi(a,b){a=a|0;b=b|0;var d=0,e=0;if(((((a|0)!=0&(b|0)!=0?(e=c[a>>2]&3,d=c[b>>2]&3,(c[((e|0)==3?a:a+48|0)+40>>2]|0)==(c[((d|0)==3?b:b+48|0)+40>>2]|0)):0)?(c[((e|0)==2?a:a+-48|0)+40>>2]|0)==(c[((d|0)==2?b:b+-48|0)+40>>2]|0):0)?(c[(c[a+16>>2]|0)+96>>2]|0)==(c[(c[b+16>>2]|0)+96>>2]|0):0)?(dh(a,b)|0)!=0:0)d=1;else d=0;return d|0}function ni(b){b=b|0;var 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;q=b+16|0;d=c[q>>2]|0;c[d+192>>2]=0;c[d+232>>2]=0;si(b);d=c[q>>2]|0;if((c[d+180>>2]|0)>=1){e=1;while(1){ti(b,c[(c[d+184>>2]|0)+(e<<2)>>2]|0);d=c[q>>2]|0;if((e|0)>=(c[d+180>>2]|0))break;else e=e+1|0}}d=Rk(b)|0;if(d)do{e=Lj(b,d)|0;if(e)do{f=c[e>>2]|0;g=(c[(c[((f&3|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+160|0;h=a[g>>0]|0;if(h<<24>>24<3){a[g>>0]=h+1<<24>>24;f=c[e>>2]|0}f=(c[(c[((f&3|0)==3?e:e+48|0)+40>>2]|0)+16>>2]|0)+160|0;g=a[f>>0]|0;if(g<<24>>24<3)a[f>>0]=g+1<<24>>24;e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);d=Rk(b)|0;if(d)do{if((c[(c[d+16>>2]|0)+212>>2]|0)==0?(d|0)==(Ms(d)|0):0){ig(b,d);l=(c[q>>2]|0)+232|0;c[l>>2]=(c[l>>2]|0)+1}e=Lj(b,d)|0;if(e){f=0;do{l=e+16|0;h=c[l>>2]|0;a:do if(!(c[h+172>>2]|0)){g=c[e>>2]|0;i=g&3;k=e+48|0;j=c[((i|0)==3?e:k)+40>>2]|0;if((a[(c[j+16>>2]|0)+159>>0]|0)!=7?(n=e+-48|0,o=c[((i|0)==2?e:n)+40>>2]|0,(a[(c[o+16>>2]|0)+159>>0]|0)!=7):0){do if(((f|0)!=0?(m=c[f>>2]&3,(j|0)==(c[((m|0)==3?f:f+48|0)+40>>2]|0)):0)?(o|0)==(c[((m|0)==2?f:f+-48|0)+40>>2]|0):0){if((c[(c[j+16>>2]|0)+232>>2]|0)==(c[(c[o+16>>2]|0)+232>>2]|0)){og(e,f);eg(e);break a}if(!(c[h+96>>2]|0)){h=f+16|0;if(c[(c[h>>2]|0)+96>>2]|0)break;if(!(dh(e,f)|0)){g=c[e>>2]|0;break}if(!(a[124828]|0)){li(b,e,c[(c[h>>2]|0)+172>>2]|0,1);eg(e);break a}else{a[(c[l>>2]|0)+112>>0]=6;break a}}}while(0);j=g&3;g=c[((j|0)==3?e:k)+40>>2]|0;if((g|0)==(c[((j|0)==2?e:n)+40>>2]|0)){eg(e);f=e;break}i=Ms(g)|0;j=Ms(c[((c[e>>2]&3|0)==2?e:n)+40>>2]|0)|0;g=c[e>>2]&3;if((c[((g|0)==3?e:k)+40>>2]|0)!=(i|0))break;if((c[((g|0)==2?e:n)+40>>2]|0)!=(j|0))break;g=c[(c[i+16>>2]|0)+232>>2]|0;h=c[(c[j+16>>2]|0)+232>>2]|0;if((g|0)==(h|0)){mg(b,e);f=e;break}if((h|0)>(g|0)){pi(b,i,j,e);f=e;break}g=Sj(b,j,i,0,0)|0;do if(g){h=c[g>>2]&3;i=c[((h|0)==2?g:g+-48|0)+40>>2]|0;if((i|0)==(c[((c[e>>2]&3|0)==2?e:n)+40>>2]|0))break;j=g+16|0;if(!(c[(c[j>>2]|0)+172>>2]|0))pi(b,c[((h|0)==3?g:g+48|0)+40>>2]|0,i,g);if(c[(c[l>>2]|0)+96>>2]|0)break;if(c[(c[j>>2]|0)+96>>2]|0)break;if(!(dh(e,g)|0))break;if(!(a[124828]|0)){eg(e);li(b,e,c[(c[j>>2]|0)+172>>2]|0,1);break a}else{a[(c[l>>2]|0)+112>>0]=6;a[(c[j>>2]|0)+153>>0]=1;break a}}while(0);f=c[e>>2]&3;pi(b,c[((f|0)==2?e:n)+40>>2]|0,c[((f|0)==3?e:k)+40>>2]|0,e);f=e;break}if(mi(f,e)|0){g=c[(c[f+16>>2]|0)+172>>2]|0;if(g){li(b,e,g,0);eg(e);break}l=c[e>>2]&3;if((c[(c[(c[((l|0)==3?e:k)+40>>2]|0)+16>>2]|0)+232>>2]|0)!=(c[(c[(c[((l|0)==2?e:e+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0))break;og(e,f);eg(e);break}g=oi(c[((c[e>>2]&3|0)==3?e:k)+40>>2]|0)|0;h=oi(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;i=(c[(c[g+16>>2]|0)+232>>2]|0)>(c[(c[h+16>>2]|0)+232>>2]|0);f=i?g:h;g=i?h:g;h=g+16|0;i=f+16|0;if((c[(c[h>>2]|0)+212>>2]|0)!=(c[(c[i>>2]|0)+212>>2]|0)){j=$f(g,f)|0;if(j){li(b,e,j,1);f=e;break}if((c[(c[h>>2]|0)+232>>2]|0)!=(c[(c[i>>2]|0)+232>>2]|0)?(pi(b,g,f,e),p=c[(c[l>>2]|0)+172>>2]|0,(p|0)!=0):0){f=c[(c[i>>2]|0)+232>>2]|0;h=p;while(1){g=h+-48|0;if((c[(c[(c[((c[h>>2]&3|0)==2?h:g)+40>>2]|0)+16>>2]|0)+232>>2]|0)>(f|0)){f=e;break a}a[(c[h+16>>2]|0)+112>>0]=5;h=c[c[(c[(c[((c[h>>2]&3|0)==2?h:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;if(!h){f=e;break}}}else f=e}else f=e}else f=e;while(0);e=Nj(b,e)|0}while((e|0)!=0)}d=Sk(b,d)|0}while((d|0)!=0);if((wf(b)|0)!=(b|0)){d=c[(c[q>>2]|0)+216>>2]|0;if(!d)d=aq(4)|0;else d=cq(d,4)|0;q=c[q>>2]|0;c[q+216>>2]=d;c[d>>2]=c[q+192>>2]}return}function oi(b){b=b|0;var d=0;d=c[b+16>>2]|0;if((a[d+159>>0]|0)==7)d=c[(c[(c[(c[d+212>>2]|0)+16>>2]|0)+268>>2]|0)+(c[d+232>>2]<<2)>>2]|0;else d=Ms(b)|0;return d|0}function pi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;p=f+16|0;g=c[p>>2]|0;if(!(c[g+96>>2]|0))q=-1;else q=((c[(c[e+16>>2]|0)+232>>2]|0)+(c[(c[d+16>>2]|0)+232>>2]|0)|0)/2|0;if(c[g+172>>2]|0)Ia(118841,118820,89,118866);i=c[(c[d+16>>2]|0)+232>>2]|0;n=e+16|0;g=c[(c[n>>2]|0)+232>>2]|0;if((i|0)<(g|0)){o=b+16|0;m=d;while(1){i=i+1|0;if((i|0)<(g|0)){do if((i|0)==(q|0)){g=c[(c[p>>2]|0)+96>>2]|0;k=+h[g+24>>3];l=+h[g+32>>3];g=lg(b)|0;j=g+16|0;c[(c[j>>2]|0)+104>>2]=c[(c[p>>2]|0)+96>>2];r=+(c[(c[(hl(g)|0)+16>>2]|0)+248>>2]|0);d=c[j>>2]|0;h[d+88>>3]=r;if(!(a[(c[p>>2]|0)+114>>0]|0)){s=(c[(c[(hl(b)|0)+16>>2]|0)+116>>2]&1|0)==0;d=c[j>>2]|0;j=d+80|0;if(s){h[j>>3]=l;h[d+96>>3]=k;break}else{h[j>>3]=k;h[d+96>>3]=l;break}}}else{g=lg(b)|0;r=+((c[(c[o>>2]|0)+248>>2]|0)/2|0|0);d=c[g+16>>2]|0;s=d+88|0;h[s>>3]=r+ +h[s>>3];s=d+96|0;h[s>>3]=r+ +h[s>>3]}while(0);c[d+232>>2]=i;d=g}else d=e;Cg(hg(m,d,f)|0);g=c[(c[n>>2]|0)+232>>2]|0;if((i|0)>=(g|0))break;else m=d}if(c[(c[p>>2]|0)+172>>2]|0)return}Ia(118877,118820,103,118866)}function qi(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=wf(a)|0;b=Rk(a)|0;if(b)do{d=Qj(l,b)|0;if(d){k=0;while(1){e=d;d=Rj(l,d,b)|0;do if(!(ql(a,e)|0)){e=(c[e>>2]&3|0)==2?e:e+-48|0;m=(mi(k,e)|0)==0;h=c[e>>2]&3;f=c[((h|0)==3?e:e+48|0)+40>>2]|0;g=c[(c[f+16>>2]|0)+232>>2]|0;h=c[((h|0)==2?e:e+-48|0)+40>>2]|0;i=c[(c[h+16>>2]|0)+232>>2]|0;j=(g|0)==(i|0);if(!m){c[(c[e+16>>2]|0)+172>>2]=j?k:0;f=c[(c[k+16>>2]|0)+172>>2]|0;if(!f){e=k;break}li(a,e,f,0);fg(e);e=k;break}if(!j)if((i|0)>(g|0)){wi(f,h,e);break}else{wi(h,f,e);break}f=ag(f,h)|0;if(!f){mg(l,e);break}if((e|0)!=(f|0)?(fg(e),(c[(c[e+16>>2]|0)+172>>2]|0)==0):0){og(e,f);e=k}else e=k}else e=k;while(0);if(!d)break;else k=e}}b=Sk(a,b)|0}while((b|0)!=0);return}function ri(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;ni(d);n=d+16|0;m=c[n>>2]|0;c[m+220>>2]=1;c[c[m+216>>2]>>2]=c[m+192>>2];xg(d);zg(d,0);m=wf(d)|0;g=c[n>>2]|0;f=b[g+236>>1]|0;e=f<<16>>16;if(f<<16>>16>0){l=m+16|0;a[(c[(c[l>>2]|0)+196>>2]|0)+(e+-1<<6)+49>>0]=0}else l=m+16|0;if(f<<16>>16>(b[g+238>>1]|0)){h=c[l>>2]|0;f=g}else{f=g;while(1){k=c[(c[(c[(c[f+268>>2]|0)+(e<<2)>>2]|0)+16>>2]|0)+236>>2]|0;xi(m,e,k,c[(c[f+196>>2]|0)+(e<<6)>>2]|0);f=c[n>>2]|0;g=c[f+196>>2]|0;h=c[l>>2]|0;if((c[g+(e<<6)>>2]|0)>0){i=0;j=k;while(1){f=c[(c[g+(e<<6)+4>>2]|0)+(i<<2)>>2]|0;c[(c[(c[h+196>>2]|0)+(e<<6)+4>>2]|0)+(j<<2)>>2]=f;h=c[f+16>>2]|0;c[h+236>>2]=j;if((a[h+156>>0]|0)==1)c[f+24>>2]=hl(m)|0;kg(d,f);ig(m,f);h=c[l>>2]|0;f=h+232|0;c[f>>2]=(c[f>>2]|0)+1;i=i+1|0;f=c[n>>2]|0;g=c[f+196>>2]|0;if((i|0)>=(c[g+(e<<6)>>2]|0))break;else j=j+1|0}}j=c[h+196>>2]|0;c[g+(e<<6)+4>>2]=(c[j+(e<<6)+4>>2]|0)+(k<<2);a[j+(e<<6)+49>>0]=0;g=e+1|0;if((e|0)<(b[f+238>>1]|0))e=g;else{e=g;break}}}if((e|0)<(b[h+238>>1]|0))a[(c[h+196>>2]|0)+(e<<6)+49>>0]=0;a[f+272>>0]=1;qi(d);e=c[n>>2]|0;f=b[e+236>>1]|0;if(f<<16>>16<=(b[e+238>>1]|0)){i=f<<16>>16;while(1){g=c[(c[e+268>>2]|0)+(i<<2)>>2]|0;h=g+16|0;e=c[h>>2]|0;f=c[c[e+180>>2]>>2]|0;if(f)do{dg(f);e=c[h>>2]|0;f=c[c[e+180>>2]>>2]|0}while((f|0)!=0);e=c[c[e+172>>2]>>2]|0;if(e)do{dg(e);e=c[c[(c[h>>2]|0)+172>>2]>>2]|0}while((e|0)!=0);kg(wf(d)|0,g);c[(c[(c[n>>2]|0)+268>>2]|0)+(i<<2)>>2]=0;e=c[n>>2]|0;if((i|0)>=(b[e+238>>1]|0))break;else i=i+1|0}}return}function si(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;n=o;d=Rk(b)|0;if(d)do{f=d+16|0;e=c[f>>2]|0;if((a[e+159>>0]|0)==7){Os(d);e=c[f>>2]|0}c[e+212>>2]=0;d=Sk(b,d)|0}while((d|0)!=0);m=b+16|0;d=c[m>>2]|0;if((c[d+180>>2]|0)>=1){l=1;while(1){j=c[(c[d+184>>2]|0)+(l<<2)>>2]|0;d=Rk(j)|0;if(d){k=j+16|0;do{f=d;d=Sk(j,d)|0;e=f+16|0;if(!(a[(c[e>>2]|0)+159>>0]|0)){Ps(f,c[(c[k>>2]|0)+264>>2]|0);e=c[e>>2]|0;c[e+212>>2]=j;a[e+159>>0]=7;e=Lj(j,f)|0;if(e)do{f=c[(c[e+16>>2]|0)+172>>2]|0;a:do if(f)do{g=f+-48|0;h=c[(c[((c[f>>2]&3|0)==2?f:g)+40>>2]|0)+16>>2]|0;if((a[h+156>>0]|0)!=1)break a;c[h+212>>2]=j;f=c[c[(c[(c[((c[f>>2]&3|0)==2?f:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((f|0)!=0);while(0);e=Nj(j,e)|0}while((e|0)!=0)}else{g=ok(f)|0;h=ok(b)|0;c[n>>2]=g;c[n+4>>2]=h;dj(0,118902,n)|0;fl(j,f)|0}}while((d|0)!=0)}d=c[m>>2]|0;if((l|0)>=(c[d+180>>2]|0))break;else l=l+1|0}}i=o;return}function ti(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=e+16|0;f=$p((b[(c[l>>2]|0)+238>>1]<<2)+8|0)|0;k=c[l>>2]|0;c[k+268>>2]=f;f=b[k+236>>1]|0;if(f<<16>>16<=(b[k+238>>1]|0)){h=0;g=f<<16>>16;while(1){f=h;h=lg(d)|0;c[(c[(c[l>>2]|0)+268>>2]|0)+(g<<2)>>2]=h;k=c[h+16>>2]|0;c[k+232>>2]=g;a[k+159>>0]=7;c[k+212>>2]=e;if(f){k=(c[(hg(f,h,0)|0)+16>>2]|0)+154|0;b[k>>1]=(b[k>>1]|0)*1e3}if((g|0)>=(b[(c[l>>2]|0)+238>>1]|0))break;else g=g+1|0}}f=Rk(e)|0;if(f)do{k=(c[(c[(c[l>>2]|0)+268>>2]|0)+(c[(c[f+16>>2]|0)+232>>2]<<2)>>2]|0)+16|0;g=(c[k>>2]|0)+216|0;c[g>>2]=(c[g>>2]|0)+1;g=Lj(e,f)|0;if(g)do{j=c[g>>2]&3;d=c[(c[(c[((j|0)==3?g:g+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0;i=g+-48|0;if((d|0)<(c[(c[(c[((j|0)==2?g:i)+40>>2]|0)+16>>2]|0)+232>>2]|0)){h=(c[(c[c[(c[k>>2]|0)+180>>2]>>2]|0)+16>>2]|0)+168|0;j=b[h>>1]|0;do{j=j+1<<16>>16;b[h>>1]=j;d=d+1|0}while((d|0)<(c[(c[(c[((c[g>>2]&3|0)==2?g:i)+40>>2]|0)+16>>2]|0)+232>>2]|0))}g=Nj(e,g)|0}while((g|0)!=0);f=Sk(e,f)|0}while((f|0)!=0);g=c[l>>2]|0;d=b[g+236>>1]|0;f=b[g+238>>1]|0;if(d<<16>>16<=f<<16>>16){i=f<<16>>16;h=c[g+268>>2]|0;d=d<<16>>16;while(1){f=(c[(c[h+(d<<2)>>2]|0)+16>>2]|0)+216|0;g=c[f>>2]|0;if((g|0)>1)c[f>>2]=g+-1;if((d|0)<(i|0))d=d+1|0;else break}}return}function ui(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;j=(c[(c[e+16>>2]|0)+212>>2]|0)+16|0;e=c[j>>2]|0;k=f+1|0;if((a[e+273>>0]|0)!=(k|0)){i=b[e+236>>1]|0;h=b[e+238>>1]|0;if(i<<16>>16<=h<<16>>16){i=i<<16>>16;while(1){yg(d,c[(c[e+268>>2]|0)+(i<<2)>>2]|0);e=c[j>>2]|0;h=b[e+238>>1]|0;if((i|0)<(h<<16>>16|0))i=i+1|0;else break}i=b[e+236>>1]|0}if(i<<16>>16<=h<<16>>16){h=i<<16>>16;while(1){Ag(g,c[(c[e+268>>2]|0)+(h<<2)>>2]|0,f);e=c[j>>2]|0;if((h|0)<(b[e+238>>1]|0))h=h+1|0;else break}}a[e+273>>0]=k}return}function vi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Rk(b)|0;if(d)do{c[(c[d+16>>2]|0)+212>>2]=0;e=Lj(b,d)|0;if(e)do{f=c[(c[e+16>>2]|0)+172>>2]|0;a:do if(f)do{g=f+-48|0;h=c[(c[((c[f>>2]&3|0)==2?f:g)+40>>2]|0)+16>>2]|0;if((a[h+156>>0]|0)!=1)break a;c[h+212>>2]=0;f=c[c[(c[(c[((c[f>>2]&3|0)==2?f:g)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((f|0)!=0);while(0);e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);yi(b);return}function wi(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=c[d+16>>2]|0;i=c[g+212>>2]|0;if((i|0)!=0?(j=c[i+16>>2]|0,(a[j+272>>0]|0)==0):0)p=c[(c[j+268>>2]|0)+(c[g+232>>2]<<2)>>2]|0;else p=d;g=c[e+16>>2]|0;i=c[g+212>>2]|0;if((i|0)!=0?(k=c[i+16>>2]|0,(a[k+272>>0]|0)==0):0){q=c[(c[k+268>>2]|0)+(c[g+232>>2]<<2)>>2]|0;i=c[q+16>>2]|0}else{i=g;q=e}o=(p|0)==(d|0)&(q|0)==(e|0)?1:5;e=f+16|0;j=(c[e>>2]|0)+172|0;g=c[j>>2]|0;d=p+16|0;k=c[(c[d>>2]|0)+232>>2]|0;n=q+16|0;i=c[i+232>>2]|0;if((i|0)<=(k|0))Ia(118956,118984,81,118994);r=c[g>>2]&3;if(!((c[((r|0)==3?g:g+48|0)+40>>2]|0)==(p|0)?(c[((r|0)==2?g:g+-48|0)+40>>2]|0)==(q|0):0))m=11;a:do if((m|0)==11){if((b[(c[g+16>>2]|0)+168>>1]|0)>1){c[j>>2]=0;if(((i-k|0)==1?(l=$f(p,q)|0,(l|0)!=0):0)?(dh(f,l)|0)!=0:0){og(f,l);if(a[(c[d>>2]|0)+156>>0]|0)break;if(a[(c[n>>2]|0)+156>>0]|0)break;eg(f);break}j=c[(c[d>>2]|0)+232>>2]|0;i=c[(c[n>>2]|0)+232>>2]|0;if((j|0)>=(i|0))break;m=o&255;e=p;while(1){if((j|0)<(i+-1|0)){o=wf(p)|0;d=g+-48|0;k=(c[((c[g>>2]&3|0)==2?g:d)+40>>2]|0)+16|0;l=c[k>>2]|0;r=c[l+232>>2]|0;xi(o,r,c[l+236>>2]|0,2);l=lg(o)|0;k=c[k>>2]|0;i=c[l+16>>2]|0;h[i+88>>3]=+h[k+88>>3];h[i+96>>3]=+h[k+96>>3];c[i+232>>2]=c[k+232>>2];k=(c[k+236>>2]|0)+1|0;c[i+236>>2]=k;c[(c[(c[(c[o+16>>2]|0)+196>>2]|0)+(r<<6)+4>>2]|0)+(k<<2)>>2]=l;k=g}else{k=g;d=g+-48|0;l=q}a[(c[(hg(e,l,f)|0)+16>>2]|0)+112>>0]=m;i=(c[g+16>>2]|0)+168|0;b[i>>1]=(b[i>>1]|0)+-1<<16>>16;j=j+1|0;i=c[(c[n>>2]|0)+232>>2]|0;if((j|0)>=(i|0))break a;else{g=c[c[(c[(c[((c[k>>2]&3|0)==2?g:d)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;e=l}}}do if((i-k|0)==1){g=$f(p,q)|0;if((g|0)!=0?(dh(f,g)|0)!=0:0){c[(c[e>>2]|0)+172>>2]=g;r=c[g+16>>2]|0;a[r+112>>0]=o;r=r+168|0;b[r>>1]=(b[r>>1]|0)+1<<16>>16;if(a[(c[d>>2]|0)+156>>0]|0)break;if(a[(c[n>>2]|0)+156>>0]|0)break;eg(f);break}c[(c[e>>2]|0)+172>>2]=0;g=hg(p,q,f)|0;a[(c[g+16>>2]|0)+112>>0]=o}while(0);j=c[(c[n>>2]|0)+232>>2]|0;if((j-(c[(c[d>>2]|0)+232>>2]|0)|0)>1){i=c[g>>2]|0;if((c[((i&3|0)==3?g:g+48|0)+40>>2]|0)==(p|0))d=j;else{c[(c[e>>2]|0)+172>>2]=0;r=hg(p,c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0,f)|0;c[(c[e>>2]|0)+172>>2]=r;dg(g);i=c[r>>2]|0;d=c[(c[n>>2]|0)+232>>2]|0;g=r}j=i&3;i=c[((j|0)==2?g:g+-48|0)+40>>2]|0;k=c[i+16>>2]|0;if((c[k+232>>2]|0)!=(d|0))do{g=c[c[k+180>>2]>>2]|0;j=c[g>>2]&3;i=c[((j|0)==2?g:g+-48|0)+40>>2]|0;k=c[i+16>>2]|0}while((c[k+232>>2]|0)!=(d|0));if((i|0)!=(q|0)){a[(c[(hg(c[((j|0)==3?g:g+48|0)+40>>2]|0,q,f)|0)+16>>2]|0)+112>>0]=o;dg(g)}}}while(0);return}function xi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;i=a+16|0;a=c[i>>2]|0;f=c[a+196>>2]|0;h=c[f+(b<<6)+4>>2]|0;if((e|0)<1){d=d-e|0;g=d+1|0;f=c[f+(b<<6)>>2]|0;if((g|0)<(f|0)){a=d;while(1){f=c[h+(g<<2)>>2]|0;d=a+e|0;c[(c[f+16>>2]|0)+236>>2]=d;c[h+(d<<2)>>2]=f;d=g+1|0;a=c[i>>2]|0;f=c[(c[a+196>>2]|0)+(b<<6)>>2]|0;if((d|0)<(f|0)){a=g;g=d}else{g=f;break}}}else g=f;f=e+-1|0;d=f+g|0;if((d|0)<(g|0))do{c[h+(d<<2)>>2]=0;d=d+1|0;a=c[i>>2]|0}while((d|0)<(c[(c[a+196>>2]|0)+(b<<6)>>2]|0))}else{a=(c[f+(b<<6)>>2]|0)+-1|0;if((a|0)>(d|0)){f=e+-1|0;do{j=c[h+(a<<2)>>2]|0;g=f+a|0;c[(c[j+16>>2]|0)+236>>2]=g;c[h+(g<<2)>>2]=j;a=a+-1|0}while((a|0)>(d|0))}a=d+1|0;if((a|0)<(e+d|0))CB(h+(a<<2)|0,0,(e<<2)+-4|0)|0;f=e+-1|0;a=c[i>>2]|0}j=(c[a+196>>2]|0)+(b<<6)|0;c[j>>2]=f+(c[j>>2]|0);return}function yi(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=b+16|0;d=c[f>>2]|0;if((c[d+180>>2]|0)>=1){e=1;while(1){yi(c[(c[d+184>>2]|0)+(e<<2)>>2]|0);d=c[f>>2]|0;if((e|0)>=(c[d+180>>2]|0))break;else e=e+1|0}}d=Rk(b)|0;if(d)do{e=(c[d+16>>2]|0)+212|0;if(!(c[e>>2]|0))c[e>>2]=b;e=Lj(b,d)|0;if(e)do{f=c[(c[e+16>>2]|0)+172>>2]|0;a:do if(f)do{g=c[f>>2]|0;i=f+-48|0;h=c[(c[((g&3|0)==2?f:i)+40>>2]|0)+16>>2]|0;if((a[h+156>>0]|0)!=1)break a;h=h+212|0;if(!(c[h>>2]|0)){c[h>>2]=b;g=c[f>>2]|0}f=c[c[(c[(c[((g&3|0)==2?f:i)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0}while((f|0)!=0);while(0);e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0}while((d|0)!=0);return}function zi(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,l=0,m=0.0,n=0.0,o=0.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.0,K=0.0,L=0.0,M=0,N=0,O=0,P=0,Q=0.0,R=0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0.0,ca=0.0;aa=i;i=i+240|0;C=aa+216|0;B=aa+200|0;Y=aa+184|0;X=aa+168|0;_=aa+152|0;Z=aa+136|0;W=aa+128|0;V=aa+64|0;D=aa+48|0;E=aa+32|0;H=aa+16|0;N=aa;O=bt(b)|0;d=Rk(b)|0;a:do if(d){P=D+8|0;R=V+16|0;U=V+32|0;F=V+48|0;G=H+8|0;b:while(1){e=Lj(b,d)|0;if(e)do{f=Ai(zj(e,119003)|0,O)|0;q=Ai(zj(e,119009)|0,O)|0;r=(q|0)!=0;g=(f|0)!=0;do if(g|r?(I=e+16|0,M=c[(c[I>>2]|0)+8>>2]|0,(M|0)!=0):0){if((c[M+4>>2]|0)>1){z=ok(c[((c[e>>2]&3|0)==3?e:e+48|0)+40>>2]|0)|0;A=ok(c[((c[e>>2]&3|0)==2?e:e+-48|0)+40>>2]|0)|0;c[W>>2]=z;c[W+4>>2]=A;dj(0,119015,W)|0;break}z=c[M>>2]|0;j=c[z+4>>2]|0;s=c[e>>2]&3;u=e+-48|0;v=c[((s|0)==2?e:u)+40>>2]|0;w=e+48|0;s=c[((s|0)==3?e:w)+40>>2]|0;A=aq(48)|0;x=z+12|0;c[A+12>>2]=c[x>>2];y=z+8|0;c[A+8>>2]=c[y>>2];do if(g){f=c[f+16>>2]|0;p=f+16|0;t=c[v+16>>2]|0;l=t+16|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];m=+h[k>>3];t=t+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];o=+h[p>>3];if(((o<=m?(Q=+h[f+32>>3],m<=Q):0)?(S=+h[f+24>>3],S<=n):0)?(T=+h[f+40>>3],n<=T):0){f=c[z>>2]|0;a[k>>0]=a[f>>0];a[k+1>>0]=a[f+1>>0];a[k+2>>0]=a[f+2>>0];a[k+3>>0]=a[f+3>>0];a[k+4>>0]=a[f+4>>0];a[k+5>>0]=a[f+5>>0];a[k+6>>0]=a[f+6>>0];a[k+7>>0]=a[f+7>>0];m=+h[k>>3];t=f+8|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];if(!(!(n<=T)|(!(o<=m)|!(m<=Q)|!(S<=n)))){t=c[s+16>>2]|0;l=t+16|0;a[k>>0]=a[l>>0];a[k+1>>0]=a[l+1>>0];a[k+2>>0]=a[l+2>>0];a[k+3>>0]=a[l+3>>0];a[k+4>>0]=a[l+4>>0];a[k+5>>0]=a[l+5>>0];a[k+6>>0]=a[l+6>>0];a[k+7>>0]=a[l+7>>0];m=+h[k>>3];t=t+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];if(!(!(n<=T)|(!(o<=m)|!(m<=Q)|!(S<=n)))){p=ok(c[((c[e>>2]&3|0)==3?e:w)+40>>2]|0)|0;t=ok(c[((c[e>>2]&3|0)==2?e:u)+40>>2]|0)|0;$=zj(e,119003)|0;c[_>>2]=p;c[_+4>>2]=t;c[_+8>>2]=$;dj(0,119099,_)|0;$=33;break}if(!(c[y>>2]|0)){$=20;break b}t=z+16|0;c[B>>2]=c[f>>2];c[B+4>>2]=c[f+4>>2];c[B+8>>2]=c[f+8>>2];c[B+12>>2]=c[f+12>>2];c[C>>2]=c[t>>2];c[C+4>>2]=c[t+4>>2];c[C+8>>2]=c[t+8>>2];c[C+12>>2]=c[t+12>>2];Ci(D,B,C,p);m=+h[D>>3];o=+h[P>>3];f=c[z>>2]|0;h[f+48>>3]=m;h[f+56>>3]=o;f=c[z>>2]|0;p=z+16|0;a[k>>0]=a[p>>0];a[k+1>>0]=a[p+1>>0];a[k+2>>0]=a[p+2>>0];a[k+3>>0]=a[p+3>>0];a[k+4>>0]=a[p+4>>0];a[k+5>>0]=a[p+5>>0];a[k+6>>0]=a[p+6>>0];a[k+7>>0]=a[p+7>>0];n=+h[k>>3];t=z+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];ca=(o+ +h[k>>3])*.5;h[f+16>>3]=(m+n)*.5;h[f+24>>3]=ca;f=c[z>>2]|0;a[k>>0]=a[p>>0];a[k+1>>0]=a[p+1>>0];a[k+2>>0]=a[p+2>>0];a[k+3>>0]=a[p+3>>0];a[k+4>>0]=a[p+4>>0];a[k+5>>0]=a[p+5>>0];a[k+6>>0]=a[p+6>>0];a[k+7>>0]=a[p+7>>0];ca=+h[k>>3];a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];t=f+16|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];ba=+h[k>>3];t=f+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=(n+ +h[k>>3])*.5;h[f>>3]=(ca+ba)*.5;h[f+8>>3]=n;f=c[z>>2]|0;t=f+16|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];n=+h[k>>3];t=f+24|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];o=(o+ +h[k>>3])*.5;h[f+32>>3]=(m+n)*.5;h[f+40>>3]=o;f=c[x>>2]|0;if(!f)f=0;else f=Co(e,c[z>>2]|0,0,0,A,f)|0;t=f+3|0;break}l=j+-1|0;c:do if((j|0)>1){if(!(Bi(f,p)|0))f=0;else{f=0;break}do{f=f+3|0;if((f|0)>=(l|0))break c}while((Bi((c[z>>2]|0)+(f<<4)|0,p)|0)==0)}else f=0;while(0);g=c[x>>2]|0;j=(g|0)!=0;if((f|0)==(l|0)){if(!j){$=28;break b}t=A+32|0;g=z+32|0;j=(c[z>>2]|0)+(l<<4)|0;c[B>>2]=c[g>>2];c[B+4>>2]=c[g+4>>2];c[B+8>>2]=c[g+8>>2];c[B+12>>2]=c[g+12>>2];c[C>>2]=c[j>>2];c[C+4>>2]=c[j+4>>2];c[C+8>>2]=c[j+8>>2];c[C+12>>2]=c[j+12>>2];Ci(E,B,C,p);c[t>>2]=c[E>>2];c[t+4>>2]=c[E+4>>2];c[t+8>>2]=c[E+8>>2];c[t+12>>2]=c[E+12>>2];t=l;break}if(j)f=Co(e,c[z>>2]|0,0,f,A,g)|0;t=f+3|0;break}p=ok(c[((c[e>>2]&3|0)==3?e:w)+40>>2]|0)|0;t=ok(c[((c[e>>2]&3|0)==2?e:u)+40>>2]|0)|0;$=zj(e,119003)|0;c[Z>>2]=p;c[Z+4>>2]=t;c[Z+8>>2]=$;dj(0,119056,Z)|0;$=33}else $=33;while(0);if(($|0)==33){$=0;f=j+-1|0;if(!(c[x>>2]|0))t=f;else{t=A+32|0;p=z+32|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];c[t+12>>2]=c[p+12>>2];t=f}}do if(r){f=c[q+16>>2]|0;p=f+16|0;s=c[s+16>>2]|0;r=s+16|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];m=+h[k>>3];s=s+24|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];n=+h[k>>3];o=+h[p>>3];if(((o<=m?(J=+h[f+32>>3],m<=J):0)?(K=+h[f+24>>3],K<=n):0)?(L=+h[f+40>>3],n<=L):0){g=c[z>>2]|0;s=g+(t<<4)|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];ba=+h[k>>3];s=g+(t<<4)+8|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];ca=+h[k>>3];if(!(!(ca<=L)|(!(o<=ba)|!(ba<=J)|!(K<=ca)))){v=c[v+16>>2]|0;s=v+16|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];ba=+h[k>>3];v=v+24|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];ca=+h[k>>3];if(!(!(ca<=L)|(!(o<=ba)|!(ba<=J)|!(K<=ca)))){w=ok(c[((c[e>>2]&3|0)==3?e:w)+40>>2]|0)|0;x=ok(c[((c[e>>2]&3|0)==2?e:u)+40>>2]|0)|0;$=zj(e,119009)|0;c[Y>>2]=w;c[Y+4>>2]=x;c[Y+8>>2]=$;dj(0,119234,Y)|0;$=59;break}if(!(c[x>>2]|0)){$=46;break b}g=g+(t<<4)|0;v=A+32|0;c[B>>2]=c[g>>2];c[B+4>>2]=c[g+4>>2];c[B+8>>2]=c[g+8>>2];c[B+12>>2]=c[g+12>>2];c[C>>2]=c[v>>2];c[C+4>>2]=c[v+4>>2];c[C+8>>2]=c[v+8>>2];c[C+12>>2]=c[v+12>>2];Ci(H,B,C,p);o=+h[H>>3];ca=+h[G>>3];g=t+-3|0;w=c[z>>2]|0;h[w+(g<<4)>>3]=o;h[w+(g<<4)+8>>3]=ca;w=t+-1|0;f=c[z>>2]|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];ba=+h[k>>3];x=A+40|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];m=(ca+ +h[k>>3])*.5;h[f+(w<<4)>>3]=(o+ba)*.5;h[f+(w<<4)+8>>3]=m;f=c[z>>2]|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];m=+h[k>>3];a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];ba=+h[k>>3];x=f+(w<<4)|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];n=+h[k>>3];x=f+(w<<4)+8|0;a[k>>0]=a[x>>0];a[k+1>>0]=a[x+1>>0];a[k+2>>0]=a[x+2>>0];a[k+3>>0]=a[x+3>>0];a[k+4>>0]=a[x+4>>0];a[k+5>>0]=a[x+5>>0];a[k+6>>0]=a[x+6>>0];a[k+7>>0]=a[x+7>>0];ba=(ba+ +h[k>>3])*.5;h[f+(t<<4)>>3]=(m+n)*.5;h[f+(t<<4)+8>>3]=ba;f=t+-2|0;x=c[z>>2]|0;v=x+(w<<4)|0;a[k>>0]=a[v>>0];a[k+1>>0]=a[v+1>>0];a[k+2>>0]=a[v+2>>0];a[k+3>>0]=a[v+3>>0];a[k+4>>0]=a[v+4>>0];a[k+5>>0]=a[v+5>>0];a[k+6>>0]=a[v+6>>0];a[k+7>>0]=a[v+7>>0];ba=+h[k>>3];w=x+(w<<4)+8|0;a[k>>0]=a[w>>0];a[k+1>>0]=a[w+1>>0];a[k+2>>0]=a[w+2>>0];a[k+3>>0]=a[w+3>>0];a[k+4>>0]=a[w+4>>0];a[k+5>>0]=a[w+5>>0];a[k+6>>0]=a[w+6>>0];a[k+7>>0]=a[w+7>>0];ca=(ca+ +h[k>>3])*.5;h[x+(f<<4)>>3]=(o+ba)*.5;h[x+(f<<4)+8>>3]=ca;f=c[y>>2]|0;if(!f)break;g=Do(e,c[z>>2]|0,g,g,A,f)|0;break}d:do if((t|0)>0){j=t;while(1){g=g+(j<<4)|0;c[V>>2]=c[g>>2];c[V+4>>2]=c[g+4>>2];c[V+8>>2]=c[g+8>>2];c[V+12>>2]=c[g+12>>2];g=j+-1|0;l=(c[z>>2]|0)+(g<<4)|0;c[R>>2]=c[l>>2];c[R+4>>2]=c[l+4>>2];c[R+8>>2]=c[l+8>>2];c[R+12>>2]=c[l+12>>2];l=j+-2|0;f=(c[z>>2]|0)+(l<<4)|0;c[U>>2]=c[f>>2];c[U+4>>2]=c[f+4>>2];c[U+8>>2]=c[f+8>>2];c[U+12>>2]=c[f+12>>2];f=j+-3|0;x=(c[z>>2]|0)+(f<<4)|0;c[F>>2]=c[x>>2];c[F+4>>2]=c[x+4>>2];c[F+8>>2]=c[x+8>>2];c[F+12>>2]=c[x+12>>2];if(Bi(V,p)|0)break;if((j|0)<=3)break d;g=c[z>>2]|0;j=f}x=(c[z>>2]|0)+(j<<4)|0;c[x>>2]=c[V>>2];c[x+4>>2]=c[V+4>>2];c[x+8>>2]=c[V+8>>2];c[x+12>>2]=c[V+12>>2];x=(c[z>>2]|0)+(g<<4)|0;c[x>>2]=c[R>>2];c[x+4>>2]=c[R+4>>2];c[x+8>>2]=c[R+8>>2];c[x+12>>2]=c[R+12>>2];x=(c[z>>2]|0)+(l<<4)|0;c[x>>2]=c[U>>2];c[x+4>>2]=c[U+4>>2];c[x+8>>2]=c[U+8>>2];c[x+12>>2]=c[U+12>>2];f=(c[z>>2]|0)+(f<<4)|0;c[f>>2]=c[F>>2];c[f+4>>2]=c[F+4>>2];c[f+8>>2]=c[F+8>>2];c[f+12>>2]=c[F+12>>2];f=j}else f=t;while(0);if(!f){if(!(c[y>>2]|0)){$=55;break b}g=A+16|0;x=z+16|0;y=c[z>>2]|0;c[B>>2]=c[x>>2];c[B+4>>2]=c[x+4>>2];c[B+8>>2]=c[x+8>>2];c[B+12>>2]=c[x+12>>2];c[C>>2]=c[y>>2];c[C+4>>2]=c[y+4>>2];c[C+8>>2]=c[y+8>>2];c[C+12>>2]=c[y+12>>2];Ci(N,B,C,p);c[g>>2]=c[N>>2];c[g+4>>2]=c[N+4>>2];c[g+8>>2]=c[N+8>>2];c[g+12>>2]=c[N+12>>2];g=0;break}else{g=f+-3|0;f=c[y>>2]|0;if(!f)break;g=Do(e,c[z>>2]|0,g,t+-3|0,A,f)|0;break}}w=ok(c[((c[e>>2]&3|0)==3?e:w)+40>>2]|0)|0;x=ok(c[((c[e>>2]&3|0)==2?e:u)+40>>2]|0)|0;$=zj(e,119009)|0;c[X>>2]=w;c[X+4>>2]=x;c[X+8>>2]=$;dj(0,119191,X)|0;$=59}else $=59;while(0);if(($|0)==59){$=0;if(!(c[y>>2]|0))g=0;else{g=A+16|0;y=z+16|0;c[g>>2]=c[y>>2];c[g+4>>2]=c[y+4>>2];c[g+8>>2]=c[y+8>>2];c[g+12>>2]=c[y+12>>2];g=0}}f=t-g+1|0;l=A+4|0;c[l>>2]=f;f=aq(f<<4)|0;c[A>>2]=f;if((c[l>>2]|0)>0?(y=(c[z>>2]|0)+(g<<4)|0,c[f>>2]=c[y>>2],c[f+4>>2]=c[y+4>>2],c[f+8>>2]=c[y+8>>2],c[f+12>>2]=c[y+12>>2],(c[l>>2]|0)>1):0){j=1;f=g;do{f=f+1|0;y=(c[A>>2]|0)+(j<<4)|0;x=(c[z>>2]|0)+(f<<4)|0;c[y>>2]=c[x>>2];c[y+4>>2]=c[x+4>>2];c[y+8>>2]=c[x+8>>2];c[y+12>>2]=c[x+12>>2];j=j+1|0}while((j|0)<(c[l>>2]|0))}pB(c[z>>2]|0);pB(z);c[c[(c[I>>2]|0)+8>>2]>>2]=A}while(0);e=Nj(b,e)|0}while((e|0)!=0);d=Sk(b,d)|0;if(!d)break a}if(($|0)==20)Ia(119141,119152,369,119163);else if(($|0)==28)Ia(119180,119152,387,119163);else if(($|0)==46)Ia(119180,119152,429,119163);else if(($|0)==55)Ia(119141,119152,452,119163)}while(0);Pi(O)|0;i=aa;return}function Ai(b,d){b=b|0;d=d|0;var e=0,f=0;f=i;i=i+16|0;e=f;if((b|0)!=0?(a[b>>0]|0)!=0:0){d=rt(d,b)|0;if(!d){c[e>>2]=b;dj(0,119354,e)|0;d=0}}else d=0;i=f;return d|0}function Bi(a,b){a=a|0;b=b|0;var d=0.0,e=0.0,f=0,g=0,j=0,k=0,l=0;l=i;i=i+128|0;k=l+64|0;c[k>>2]=c[a>>2];c[k+4>>2]=c[a+4>>2];c[k+8>>2]=c[a+8>>2];c[k+12>>2]=c[a+12>>2];f=k+16|0;j=a+16|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];f=k+32|0;j=a+32|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];f=k+48|0;j=a+48|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];f=b+8|0;j=b+24|0;d=+Di(a,0.0,1.0,+h[b>>3],+h[f>>3],+h[j>>3]);if(d>=0.0&d<2.0)Rs(l+48|0,k,3,d,a,0);else d=2.0;g=b+16|0;e=+Di(a,0.0,d>1.0?1.0:d,+h[g>>3],+h[f>>3],+h[j>>3]);if(e>=0.0&e<d){Rs(l+32|0,k,3,e,a,0);d=e}e=+Ei(a,0.0,d>1.0?1.0:d,+h[f>>3],+h[b>>3],+h[g>>3]);if(e>=0.0&e<d)Rs(l+16|0,k,3,e,a,0);else e=d;d=+Ei(a,0.0,e>1.0?1.0:e,+h[j>>3],+h[b>>3],+h[g>>3]);if(d>=0.0&d<e)Rs(l,k,3,d,a,0);else d=e;i=l;return d<2.0|0}function Ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,g=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+480|0;z=D+64|0;y=D+48|0;B=D+32|0;A=D+16|0;x=D;v=D+380|0;t=D+280|0;u=D+180|0;w=D+80|0;o=+h[b>>3];m=+h[b+8>>3];n=+h[d>>3];j=+h[d+8>>3];k=+h[e>>3];l=+h[e+8>>3];g=+h[e+16>>3];f=+h[e+24>>3];if(n<k?(p=m+ +(~~((m-j)*(k-o)/(o-n))|0),!(!(p>=l)|!(p<=f))):0){h[a>>3]=k;h[a+8>>3]=p}else C=4;do if((C|0)==4){if(n>g?(q=m+ +(~~((m-j)*(g-o)/(o-n))|0),!(!(q>=l)|!(q<=f))):0){h[a>>3]=g;h[a+8>>3]=q;break}if(j<l?(r=o+ +(~~((o-n)*(l-m)/(m-j))|0),!(!(r>=k)|!(r<=g))):0){h[a>>3]=r;h[a+8>>3]=l;break}if(j>f?(s=o+ +(~~((o-n)*(f-m)/(m-j))|0),!(!(s>=k)|!(s<=g))):0){h[a>>3]=s;h[a+8>>3]=f;break}h[x>>3]=o;h[x+8>>3]=m;Oz(v,119276,x)|0;h[A>>3]=n;h[A+8>>3]=j;Oz(t,119276,A)|0;h[B>>3]=k;h[B+8>>3]=l;Oz(u,119276,B)|0;h[y>>3]=g;h[y+8>>3]=f;Oz(w,119276,y)|0;c[z>>2]=v;c[z+4>>2]=t;c[z+8>>2]=u;c[z+12>>2]=w;dj(1,119288,z)|0;Ia(161945,119152,78,119340)}while(0);i=D;return}function Di(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+144|0;k=m+80|0;l=m+16|0;j=m;a:do if(!(b==c)){g=+h[a>>3];p=g<d?-1:g>d&1;g=+h[a+16>>3];o=g<d?-1:g>d&1;g=+h[a+32>>3];n=g<d?-1:g>d&1;g=+h[a+48>>3];switch(((p|0)!=0&(o|0)!=(p|0)&1)+((p|0)==0&1)+((o|0)!=0&(n|0)!=(o|0)&1)+(((n|0)!=0?((g<d?-1:g>d&1)|0)!=(n|0):0)&1)|0){case 0:{b=-1.0;break a}case 1:{if(+N(+(g-d))<=.005){b=+h[a+56>>3];b=!(b>=e)|!(b<=f)?-1.0:c;break a}break}default:{}}Rs(j,a,3,.5,k,l);g=(b+c)*.5;b=+Di(k,b,g,d,e,f);if(!(b>=0.0))b=+Di(l,g,c,d,e,f)}while(0);i=m;return +b}function Ei(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=+d;e=+e;f=+f;var g=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+144|0;k=m+80|0;l=m+16|0;j=m;a:do if(!(b==c)){g=+h[a+8>>3];p=g<d?-1:g>d&1;g=+h[a+24>>3];o=g<d?-1:g>d&1;g=+h[a+40>>3];n=g<d?-1:g>d&1;g=+h[a+56>>3];switch(((p|0)!=0&(o|0)!=(p|0)&1)+((p|0)==0&1)+((o|0)!=0&(n|0)!=(o|0)&1)+(((n|0)!=0?((g<d?-1:g>d&1)|0)!=(n|0):0)&1)|0){case 0:{b=-1.0;break a}case 1:{if(+N(+(g-d))<=.005){b=+h[a+48>>3];b=!(b>=e)|!(b<=f)?-1.0:c;break a}break}default:{}}Rs(j,a,3,.5,k,l);g=(b+c)*.5;b=+Ei(k,b,g,d,e,f);if(!(b>=0.0))b=+Ei(l,g,c,d,e,f)}while(0);i=m;return +b}function Fi(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+96|0;t=z+48|0;s=z+8|0;w=z;y=4;x=oB(40)|0;c[x>>2]=0;v=d+16|0;e=c[v>>2]|0;a:do if(((b[e+238>>1]|0)-(b[e+236>>1]|0)|0)>=2){f=c[e+196>>2]|0;b:do if(c[f+128>>2]|0){q=2;r=1;while(1){if((c[f+(r<<6)>>2]|0)>0){p=0;do{m=(c[(c[f+(r<<6)+4>>2]|0)+(p<<2)>>2]|0)+16|0;l=c[m>>2]|0;if((((a[l+156>>0]|0)==1?(c[l+176>>2]|0)==1:0)?(c[l+184>>2]|0)==1:0)?(c[l+104>>2]|0)==0:0){h=p+1|0;e=c[e+196>>2]|0;c:do if((h|0)<(c[e+(r<<6)>>2]|0)){g=e;f=p;l=h;while(1){k=c[c[(c[m>>2]|0)+172>>2]>>2]|0;e=c[(c[(c[g+(r<<6)+4>>2]|0)+(l<<2)>>2]|0)+16>>2]|0;j=c[c[e+172>>2]>>2]|0;if((a[e+156>>0]|0)!=1){e=l;break c}if((c[e+176>>2]|0)!=1){e=l;break c}if((c[e+184>>2]|0)!=1){e=l;break c}if(c[e+104>>2]|0){e=l;break c}if((c[((c[k>>2]&3|0)==3?k:k+48|0)+40>>2]|0)!=(c[((c[j>>2]&3|0)==3?j:j+48|0)+40>>2]|0)){e=l;break c}n=0;e=ua(17,k|0,j|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){h=zB(c[g>>2]|0,x|0,y|0)|0;if(!h)Ka(g|0,o|0);C=o}else h=-1;if((h|0)==1){e=C;break b}if(!(e<<24>>24)){e=l;break c}e=(c[j+16>>2]|0)+16|0;n=0;j=s;g=(c[k+16>>2]|0)+16|0;h=j+40|0;do{c[j>>2]=c[g>>2];j=j+4|0;g=g+4|0}while((j|0)<(h|0));j=t;g=e;h=j+40|0;do{c[j>>2]=c[g>>2];j=j+4|0;g=g+4|0}while((j|0)<(h|0));e=ua(18,s|0,t|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){h=zB(c[g>>2]|0,x|0,y|0)|0;if(!h)Ka(g|0,o|0);C=o}else h=-1;if((h|0)==1){e=C;break b}if(e){e=l;break c}e=l+1|0;g=c[(c[v>>2]|0)+196>>2]|0;if((e|0)>=(c[g+(r<<6)>>2]|0)){f=l;break}else{f=l;l=e}}}else{f=p;e=h}while(0);if((e-p|0)>1){n=0;ga(6,d|0,r|0,p|0,f|0,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;break b}}}p=p+1|0;e=c[v>>2]|0;f=c[e+196>>2]|0}while((p|0)<(c[f+(r<<6)>>2]|0))}g=q+1|0;if(!(c[f+(g<<6)>>2]|0))break;else{r=q;q=g}}if((q|0)>0)u=25;else u=46}else{q=1;u=25}while(0);d:do if((u|0)==25)while(1){u=0;f=c[e+196>>2]|0;if((c[f+(q<<6)>>2]|0)>0){p=0;do{m=(c[(c[f+(q<<6)+4>>2]|0)+(p<<2)>>2]|0)+16|0;r=c[m>>2]|0;if((((a[r+156>>0]|0)==1?(c[r+184>>2]|0)==1:0)?(c[r+176>>2]|0)==1:0)?(c[r+104>>2]|0)==0:0){h=p+1|0;e=c[e+196>>2]|0;e:do if((h|0)<(c[e+(q<<6)>>2]|0)){g=e;f=p;l=h;while(1){k=c[c[(c[m>>2]|0)+180>>2]>>2]|0;e=c[(c[(c[g+(q<<6)+4>>2]|0)+(l<<2)>>2]|0)+16>>2]|0;j=c[c[e+180>>2]>>2]|0;if((a[e+156>>0]|0)!=1){e=l;break e}if((c[e+184>>2]|0)!=1){e=l;break e}if((c[e+176>>2]|0)!=1){e=l;break e}if(c[e+104>>2]|0){e=l;break e}if((c[((c[k>>2]&3|0)==2?k:k+-48|0)+40>>2]|0)!=(c[((c[j>>2]&3|0)==2?j:j+-48|0)+40>>2]|0)){e=l;break e}n=0;e=ua(17,k|0,j|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){h=zB(c[g>>2]|0,x|0,y|0)|0;if(!h)Ka(g|0,o|0);C=o}else h=-1;if((h|0)==1){e=C;break d}if(!(e<<24>>24)){e=l;break e}e=(c[j+16>>2]|0)+56|0;n=0;j=s;g=(c[k+16>>2]|0)+56|0;h=j+40|0;do{c[j>>2]=c[g>>2];j=j+4|0;g=g+4|0}while((j|0)<(h|0));j=t;g=e;h=j+40|0;do{c[j>>2]=c[g>>2];j=j+4|0;g=g+4|0}while((j|0)<(h|0));e=ua(18,s|0,t|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){h=zB(c[g>>2]|0,x|0,y|0)|0;if(!h)Ka(g|0,o|0);C=o}else h=-1;if((h|0)==1){e=C;break d}if(e){e=l;break e}e=l+1|0;g=c[(c[v>>2]|0)+196>>2]|0;if((e|0)>=(c[g+(q<<6)>>2]|0)){f=l;break}else{f=l;l=e}}}else{f=p;e=h}while(0);if((e-p|0)>1){n=0;ga(6,d|0,q|0,p|0,f|0,0);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;break d}}}p=p+1|0;e=c[v>>2]|0;f=c[e+196>>2]|0}while((p|0)<(c[f+(q<<6)>>2]|0))}if((q|0)>1){q=q+-1|0;u=25}else{u=46;break}}while(0);if((u|0)==46){x=xB(50120,1,x|0,y|0)|0;y=C;n=0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1)e=C;else e=0}f:while(1){if(e){n=0;da(11,3,119382,w|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else break}e=c[v>>2]|0;if((c[e+180>>2]|0)<1)break a;else g=1;while(1){n=0;ia(85,c[(c[e+184>>2]|0)+(g<<2)>>2]|0);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,x|0,y|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue f}e=c[v>>2]|0;if((g|0)>=(c[e+180>>2]|0))break a;else g=g+1|0}}}while(0);pB(x|0);i=z;return}function Gi(b,d){b=b|0;d=d|0;var e=0,f=0;e=c[b+16>>2]|0;if(!(a[e+112>>0]|0))f=b;else{do{b=c[e+116>>2]|0;e=c[b+16>>2]|0}while((a[e+112>>0]|0)!=0);f=b}b=c[d+16>>2]|0;if(a[b+112>>0]|0)do{d=c[b+116>>2]|0;b=c[d+16>>2]|0}while((a[b+112>>0]|0)!=0);if((a[e+153>>0]|0)==0?(a[b+153>>0]|0)==0:0){e=c[d>>2]&3;b=c[f>>2]&3;e=(_((c[(c[(c[((b|0)==3?f:f+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((b|0)==2?f:f+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0,(c[(c[(c[((e|0)==3?d:d+48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)-(c[(c[(c[((e|0)==2?d:d+-48|0)+40>>2]|0)+16>>2]|0)+232>>2]|0)|0)|0)>0&1}else e=0;return e|0}function Hi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|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;v=a+16|0;j=c[(c[v>>2]|0)+196>>2]|0;h=c[j+(b<<6)+4>>2]|0;t=c[h+(d<<2)>>2]|0;g=d+1|0;do if((d|0)<(e|0)){r=(f|0)==1;s=t+16|0;q=g;while(1){p=c[h+(q<<2)>>2]|0;o=p+16|0;h=c[o>>2]|0;if(r){j=c[c[h+180>>2]>>2]|0;if(j)do{k=c[(c[s>>2]|0)+180>>2]|0;f=c[k>>2]|0;n=c[j>>2]|0;a:do if(!f){h=j+-48|0;u=13}else{l=j+-48|0;m=c[((n&3|0)==2?j:l)+40>>2]|0;d=0;while(1){d=d+1|0;if((c[((c[f>>2]&3|0)==2?f:f+-48|0)+40>>2]|0)==(m|0))break a;f=c[k+(d<<2)>>2]|0;if(!f){h=l;u=13;break}}}while(0);if((u|0)==13){u=0;f=hg(t,c[((n&3|0)==2?j:h)+40>>2]|0,j)|0;h=c[o>>2]|0}h=c[c[h+172>>2]>>2]|0;if(h)do{og(h,f);dg(h);h=c[c[(c[o>>2]|0)+172>>2]>>2]|0}while((h|0)!=0);dg(j);h=c[o>>2]|0;j=c[c[h+180>>2]>>2]|0}while((j|0)!=0)}else{j=c[c[h+172>>2]>>2]|0;if(j)do{k=c[(c[s>>2]|0)+172>>2]|0;f=c[k>>2]|0;n=c[j>>2]|0;b:do if(!f){h=j+48|0;u=22}else{l=j+48|0;m=c[((n&3|0)==3?j:l)+40>>2]|0;d=0;while(1){d=d+1|0;if((c[((c[f>>2]&3|0)==3?f:f+48|0)+40>>2]|0)==(m|0))break b;f=c[k+(d<<2)>>2]|0;if(!f){h=l;u=22;break}}}while(0);if((u|0)==22){u=0;f=hg(c[((n&3|0)==3?j:h)+40>>2]|0,t,j)|0;h=c[o>>2]|0}h=c[c[h+180>>2]>>2]|0;if(h)do{og(h,f);dg(h);h=c[c[(c[o>>2]|0)+180>>2]>>2]|0}while((h|0)!=0);dg(j);h=c[o>>2]|0;j=c[c[h+172>>2]>>2]|0}while((j|0)!=0)}if((c[h+176>>2]|0)!=(0-(c[h+184>>2]|0)|0)){u=27;break}kg(a,p);if((q|0)>=(e|0)){u=3;break}h=c[(c[(c[v>>2]|0)+196>>2]|0)+(b<<6)+4>>2]|0;q=q+1|0}if((u|0)==3){i=c[(c[v>>2]|0)+196>>2]|0;break}else if((u|0)==27)Ia(119518,119562,115,119569)}else i=j;while(0);j=e+1|0;h=i+(b<<6)|0;if((j|0)<(c[h>>2]|0))do{h=c[i+(b<<6)+4>>2]|0;i=c[h+(j<<2)>>2]|0;c[h+(g<<2)>>2]=i;c[(c[i+16>>2]|0)+236>>2]=g;g=g+1|0;j=j+1|0;i=c[(c[v>>2]|0)+196>>2]|0;h=i+(b<<6)|0}while((j|0)<(c[h>>2]|0));c[h>>2]=g;c[(c[i+(b<<6)+4>>2]|0)+(g<<2)>>2]=0;return}function Ii(d){d=d|0;var 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;w=i;i=i+32|0;s=w+16|0;u=w;v=d+16|0;f=c[v>>2]|0;g=b[f+236>>1]|0;if(g<<16>>16<=(b[f+238>>1]|0)){g=g<<16>>16;while(1){c[(c[f+268>>2]|0)+(g<<2)>>2]=0;f=c[v>>2]|0;if((g|0)>=(b[f+238>>1]|0))break;else g=g+1|0}}vh(d);f=Rk(d)|0;if(f)do{r=c[f+16>>2]|0;g=(c[(c[v>>2]|0)+268>>2]|0)+(c[r+232>>2]<<2)|0;q=c[g>>2]|0;if(!((q|0)!=0?(c[(c[q+16>>2]|0)+236>>2]|0)<=(c[r+236>>2]|0):0))c[g>>2]=f;g=Lj(d,f)|0;if(g)do{j=g;while(1){h=c[(c[j+16>>2]|0)+172>>2]|0;if(!h)break;else j=h}h=c[j>>2]|0;o=j+-48|0;n=c[((h&3|0)==2?j:o)+40>>2]|0;m=c[n+16>>2]|0;l=c[m+232>>2]|0;k=c[g>>2]|0;r=g+-48|0;if((l|0)<(c[(c[(c[((k&3|0)==2?g:r)+40>>2]|0)+16>>2]|0)+232>>2]|0)){q=j;p=o;o=j;while(1){j=(c[(c[v>>2]|0)+268>>2]|0)+(l<<2)|0;l=c[j>>2]|0;if(!((l|0)!=0?(c[(c[l+16>>2]|0)+236>>2]|0)<=(c[m+236>>2]|0):0)){c[j>>2]=n;k=c[g>>2]|0;h=c[q>>2]|0}o=c[c[(c[(c[((h&3|0)==2?o:p)+40>>2]|0)+16>>2]|0)+180>>2]>>2]|0;h=c[o>>2]|0;p=o+-48|0;n=c[((h&3|0)==2?o:p)+40>>2]|0;m=c[n+16>>2]|0;j=c[m+232>>2]|0;if((j|0)<(c[(c[(c[((k&3|0)==2?g:r)+40>>2]|0)+16>>2]|0)+232>>2]|0)){l=j;q=o}else break}}g=Nj(d,g)|0}while((g|0)!=0);f=Sk(d,f)|0}while((f|0)!=0);f=c[v>>2]|0;g=b[f+236>>1]|0;a:do if(g<<16>>16>(b[f+238>>1]|0))e=f;else{h=f;f=g<<16>>16;while(1){h=c[(c[h+268>>2]|0)+(f<<2)>>2]|0;g=h+16|0;r=c[(c[g>>2]|0)+236>>2]|0;if((c[(c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(f<<6)+4>>2]|0)+(r<<2)>>2]|0)!=(h|0))break;g=c[(c[(c[(wf(d)|0)+16>>2]|0)+196>>2]|0)+(f<<6)+4>>2]|0;r=c[v>>2]|0;g=g+(c[(c[(c[(c[r+268>>2]|0)+(f<<2)>>2]|0)+16>>2]|0)+236>>2]<<2)|0;r=c[r+196>>2]|0;c[r+(f<<6)+4>>2]=g;if((c[r+(f<<6)>>2]|0)>0){g=c[g>>2]|0;b:do if(!g)g=-1;else{k=0;j=-1;while(1){h=c[g+16>>2]|0;c:do if(!(a[h+156>>0]|0))if(!(ql(d,g)|0)){g=j;break b}else h=k;else{g=c[c[h+172>>2]>>2]|0;while(1){if(!g){h=j;break c}h=c[(c[g+16>>2]|0)+116>>2]|0;if(!h)break;else g=h}if(!(ql(d,c[((c[g>>2]&3|0)==3?g:g+48|0)+40>>2]|0)|0))h=j;else{h=(ql(d,c[((c[g>>2]&3|0)==2?g:g+-48|0)+40>>2]|0)|0)==0;h=h?j:k}}while(0);k=k+1|0;g=c[(c[v>>2]|0)+196>>2]|0;if((k|0)>=(c[g+(f<<6)>>2]|0)){g=h;break b}g=c[(c[g+(f<<6)+4>>2]|0)+(k<<2)>>2]|0;if(!g){g=h;break}else j=h}}while(0);if((g|0)==-1)t=35}else t=35;if((t|0)==35){t=0;c[s>>2]=ok(d)|0;c[s+4>>2]=f;dj(0,119482,s)|0;g=-1}h=c[v>>2]|0;c[(c[h+196>>2]|0)+(f<<6)>>2]=g+1;if((f|0)<(b[h+238>>1]|0))f=f+1|0;else{e=h;break a}}s=ok(h)|0;t=c[(c[g>>2]|0)+236>>2]|0;c[u>>2]=s;c[u+4>>2]=t;c[u+8>>2]=f;dj(1,119424,u)|0;Ka(50120,1)}while(0);if((c[e+180>>2]|0)>=1){f=1;while(1){Ii(c[(c[e+184>>2]|0)+(f<<2)>>2]|0);e=c[v>>2]|0;if((f|0)>=(c[e+180>>2]|0))break;else f=f+1|0}}i=w;return}function Ji(b,d){b=b|0;d=d|0;var 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;z=i;i=i+576|0;y=z;w=z+48|0;e=z+32|0;q=z+64|0;c[e>>2]=q;c[e+4>>2]=q+512;c[e+12>>2]=0;c[e+8>>2]=0;c[w>>2]=e;u=w+4|0;c[u>>2]=e;v=w+8|0;c[v>>2]=q;q=(a[119582]|0)+1<<24>>24;a[119582]=q<<24>>24==0?1:q;q=b+16|0;f=c[q>>2]|0;c[f+220>>2]=0;c[f+232>>2]=0;f=Rk(b)|0;if(f){m=(d|0)>0;n=y+8|0;o=y+16|0;p=y+24|0;while(1){if(m?(s=c[f+16>>2]|0,t=c[s+212>>2]|0,(t|0)!=0):0){x=c[(c[(c[t+16>>2]|0)+268>>2]|0)+(c[s+232>>2]<<2)>>2]|0;e=7}else e=6;if((e|0)==6?(e=0,(f|0)==(Ms(f)|0)):0){x=f;e=7}if((e|0)==7?(0,(a[(c[x+16>>2]|0)+157>>0]|0)!=(a[119582]|0)):0){c[(c[q>>2]|0)+192>>2]=0;c[12569]=0;Ki(w,x);a:while(1){e=c[v>>2]|0;d=c[u>>2]|0;if((e|0)==(c[d>>2]|0)){if((d|0)==(c[w>>2]|0))break;e=c[d+8>>2]|0;c[u>>2]=e;e=c[e+4>>2]|0;c[v>>2]=e}l=e+-4|0;c[v>>2]=l;l=c[l>>2]|0;if(!l)break;h=l+16|0;g=c[h>>2]|0;e=g+157|0;d=a[119582]|0;if((a[e>>0]|0)==d<<24>>24)continue;j=c[q>>2]|0;k=j+232|0;c[k>>2]=(c[k>>2]|0)+1;a[e>>0]=d;d=c[12569]|0;e=g+168|0;if(!d){c[e>>2]=0;c[j+192>>2]=l}else{c[e>>2]=d;c[(c[(c[12569]|0)+16>>2]|0)+164>>2]=l}c[12569]=l;h=c[h>>2]|0;c[h+164>>2]=0;g=h+180|0;k=c[g+4>>2]|0;j=y;c[j>>2]=c[g>>2];c[j+4>>2]=k;j=h+172|0;k=c[j+4>>2]|0;g=n;c[g>>2]=c[j>>2];c[g+4>>2]=k;g=h+188|0;k=c[g+4>>2]|0;j=o;c[j>>2]=c[g>>2];c[j+4>>2]=k;h=h+196|0;j=c[h+4>>2]|0;k=p;c[k>>2]=c[h>>2];c[k+4>>2]=j;k=3;while(1){e=c[y+(k<<3)>>2]|0;if((e|0)!=0?(j=c[y+(k<<3)+4>>2]|0,r=j+-1|0,(j|0)>0):0){h=e+(r<<2)|0;j=r;while(1){d=c[h>>2]|0;g=c[d>>2]&3;e=c[((g|0)==2?d:d+-48|0)+40>>2]|0;if((e|0)==(l|0))e=c[((g|0)==3?d:d+48|0)+40>>2]|0;if((a[(c[e+16>>2]|0)+157>>0]|0)!=(a[119582]|0)?(e|0)==(Ms(e)|0):0)Ki(w,e);if((j|0)>0){h=h+-4|0;j=j+-1|0}else break}}if((k|0)>0)k=k+-1|0;else continue a}}d=c[q>>2]|0;l=d+220|0;g=c[l>>2]|0;e=g+1|0;c[l>>2]=e;d=c[d+216>>2]|0;if(!d)e=aq(e<<2)|0;else e=cq(d,e<<2)|0;l=c[q>>2]|0;c[l+216>>2]=e;c[e+(g<<2)>>2]=c[l+192>>2]}f=Sk(b,f)|0;if(!f)break}e=c[w>>2]|0}e=c[e+12>>2]|0;if(e)do{y=e;e=c[e+12>>2]|0;pB(c[y>>2]|0);pB(y)}while((e|0)!=0);i=z;return}function Ki(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;h=l+8|0;g=l;k=b+8|0;f=c[k>>2]|0;j=b+4|0;b=c[j>>2]|0;if((f|0)==(c[b+4>>2]|0)){f=c[b+12>>2]|0;if(!f){f=$p(16)|0;if(!f)dj(1,122642,g)|0;c[f+8>>2]=c[j>>2];c[f+12>>2]=0;b=$p(4e6)|0;c[f>>2]=b;if(!b){dj(1,119583,h)|0;b=c[f>>2]|0}c[f+4>>2]=b+4e6;c[(c[j>>2]|0)+12>>2]=f}c[j>>2]=f;f=c[f>>2]|0;c[k>>2]=f}a[(c[e+16>>2]|0)+157>>0]=(d[119582]|0)+1;c[k>>2]=f+4;c[f>>2]=e;i=l;return}+function Dx(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d+12|0;a=b[h>>1]|0;if(a<<16>>16){i=d+8|0;if(a<<16>>16>0){f=0;g=c[i>>2]|0;while(1){e=c[g>>2]|0;if(e){pB(e);a=b[h>>1]|0}f=f+1|0;if((f|0)>=(a<<16>>16|0))break;else g=g+56|0}}pB(c[i>>2]|0)}pB(d);return}function Ex(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;if(!(a[164138]|0)){a[164138]=1;c[d>>2]=b;c[d+4>>2]=0;dj(1,164139,d)|0;pb()}else{i=e;return}}function Fx(a,b,d){a=a|0;b=b|0;d=d|0;d=i;i=i+16|0;if(!(c[22505]|0)){dj(0,164155,d)|0;c[22505]=(c[22505]|0)+1}i=d;return 1}function Gx(){return 1}function Hx(){return -1}function Ix(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var j=0,l=0.0,m=0,p=0.0,q=0.0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+32|0;w=B+16|0;y=B;z=4;v=oB(40)|0;c[v>>2]=0;x=c[e>>2]|0;u=c[e+4>>2]|0;z=xB(90024,1,v|0,z|0)|0;v=C;n=0;e=n;n=0;if((e|0)!=0&(o|0)!=0){j=zB(c[e>>2]|0,z|0,v|0)|0;if(!j)Ka(e|0,o|0);C=o}else j=-1;if((j|0)==1)e=C;else e=0;while(1){if(e){e=-1;break}a[k>>0]=a[f>>0];a[k+1>>0]=a[f+1>>0];a[k+2>>0]=a[f+2>>0];a[k+3>>0]=a[f+3>>0];a[k+4>>0]=a[f+4>>0];a[k+5>>0]=a[f+5>>0];a[k+6>>0]=a[f+6>>0];a[k+7>>0]=a[f+7>>0];r=+h[k>>3];m=f+8|0;a[k>>0]=a[m>>0];a[k+1>>0]=a[m+1>>0];a[k+2>>0]=a[m+2>>0];a[k+3>>0]=a[m+3>>0];a[k+4>>0]=a[m+4>>0];a[k+5>>0]=a[m+5>>0];a[k+6>>0]=a[m+6>>0];a[k+7>>0]=a[m+7>>0];l=+h[k>>3];p=r*r+l*l;if(p>1.0e-06){n=0;q=+ja(1,+p);e=n;n=0;if((e|0)!=0&(o|0)!=0){j=zB(c[e>>2]|0,z|0,v|0)|0;if(!j)Ka(e|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue}p=r/q;l=l/q}else p=r;h[f>>3]=p;h[m>>3]=l;t=f+16|0;m=f+16|0;a[k>>0]=a[m>>0];a[k+1>>0]=a[m+1>>0];a[k+2>>0]=a[m+2>>0];a[k+3>>0]=a[m+3>>0];a[k+4>>0]=a[m+4>>0];a[k+5>>0]=a[m+5>>0];a[k+6>>0]=a[m+6>>0];a[k+7>>0]=a[m+7>>0];q=+h[k>>3];s=f+24|0;a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];l=+h[k>>3];p=q*q+l*l;if(p>1.0e-06){n=0;r=+ja(1,+p);e=n;n=0;if((e|0)!=0&(o|0)!=0){j=zB(c[e>>2]|0,z|0,v|0)|0;if(!j)Ka(e|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue}p=q/r;l=l/r}else p=q;h[m>>3]=p;h[s>>3]=l;c[22545]=0;n=0;ia(97,4);e=n;n=0;if((e|0)!=0&(o|0)!=0){j=zB(c[e>>2]|0,z|0,v|0)|0;if(!j)Ka(e|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue}e=c[22545]|0;c[22545]=e+1;e=(c[22546]|0)+(e<<4)|0;c[e>>2]=c[x>>2];c[e+4>>2]=c[x+4>>2];c[e+8>>2]=c[x+8>>2];c[e+12>>2]=c[x+12>>2];n=0;c[y>>2]=c[f>>2];c[y+4>>2]=c[f+4>>2];c[y+8>>2]=c[f+8>>2];c[y+12>>2]=c[f+12>>2];c[w>>2]=c[t>>2];c[w+4>>2]=c[t+4>>2];c[w+8>>2]=c[t+8>>2];c[w+12>>2]=c[t+12>>2];e=la(1,b|0,d|0,x|0,u|0,y|0,w|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){m=zB(c[j>>2]|0,z|0,v|0)|0;if(!m)Ka(j|0,o|0);C=o}else m=-1;if((m|0)==1)e=C;else{A=12;break}}if((A|0)==12)if((e|0)==-1)e=-1;else{c[g+4>>2]=c[22545];c[g>>2]=c[22546];e=0}pB(z|0);i=B;return e|0}function Jx(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+32|0;e=f+16|0;d=f;if((c[22549]|0)<(a|0)){b=c[22546]|0;if(!b){e=oB(a<<4)|0;c[22546]=e;if(!e){e=c[22667]|0;c[d>>2]=164216;c[d+4>>2]=531;c[d+8>>2]=164497;Bz(e,164224,d)|0;Ka(90024,1)}}else{d=rB(b,a<<4)|0;c[22546]=d;if(!d){d=c[22667]|0;c[e>>2]=164216;c[e+4>>2]=537;c[e+8>>2]=164515;Bz(d,164224,e)|0;Ka(90024,1)}}c[22549]=a}i=f;return}function Kx(b,d,e,f,g,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;j=j|0;var l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0,G=0,H=0.0,I=0.0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0,Z=0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0.0,ra=0.0;pa=i;i=i+128|0;ma=pa+96|0;oa=pa+72|0;ka=pa+32|0;ja=pa;na=pa+56|0;l=c[22548]|0;do if((c[22547]|0)<(f|0)){if(!l){l=oB(f*40|0)|0;c[22548]=l;if(!l){l=-1;break}}else{l=rB(l,f*40|0)|0;c[22548]=l;if(!l){l=-1;break}}c[22547]=f;la=6}else la=6;while(0);do if((la|0)==6){h[l>>3]=0.0;ca=(f|0)>1;if(ca){m=+h[l>>3];r=1;do{Z=r+-1|0;Y=e+(Z<<4)|0;a[k>>0]=a[Y>>0];a[k+1>>0]=a[Y+1>>0];a[k+2>>0]=a[Y+2>>0];a[k+3>>0]=a[Y+3>>0];a[k+4>>0]=a[Y+4>>0];a[k+5>>0]=a[Y+5>>0];a[k+6>>0]=a[Y+6>>0];a[k+7>>0]=a[Y+7>>0];$=+h[k>>3];Z=e+(Z<<4)+8|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];ba=+h[k>>3];Z=e+(r<<4)|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];aa=+h[k>>3];Z=e+(r<<4)+8|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];aa=$-aa;ba=ba-+h[k>>3];m=m+ +O(+(aa*aa+ba*ba));h[l+(r*40|0)>>3]=m;r=r+1|0}while((r|0)!=(f|0));if(ca){r=l+((f+-1|0)*40|0)|0;s=1;do{Z=l+(s*40|0)|0;h[Z>>3]=+h[Z>>3]/+h[r>>3];s=s+1|0}while((s|0)!=(f|0))}}u=(f|0)>0;a:do if(u){m=+h[g>>3];t=g+8|0;n=+h[t>>3];o=+h[j>>3];s=j+8|0;p=+h[s>>3];r=0;do{aa=+h[l+(r*40|0)>>3];ba=1.0-aa;ba=ba*(aa*3.0*ba);h[l+(r*40|0)+8>>3]=m*ba;h[l+(r*40|0)+16>>3]=n*ba;ba=+h[l+(r*40|0)>>3];ba=(1.0-ba)*(ba*(ba*3.0));h[l+(r*40|0)+24>>3]=o*ba;h[l+(r*40|0)+32>>3]=p*ba;r=r+1|0}while((r|0)!=(f|0));D=+h[j>>3];E=+h[s>>3];B=+h[g>>3];C=+h[t>>3];if(u){a[k>>0]=a[e>>0];a[k+1>>0]=a[e+1>>0];a[k+2>>0]=a[e+2>>0];a[k+3>>0]=a[e+3>>0];a[k+4>>0]=a[e+4>>0];a[k+5>>0]=a[e+5>>0];a[k+6>>0]=a[e+6>>0];a[k+7>>0]=a[e+7>>0];x=+h[k>>3];r=e+8|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];y=+h[k>>3];r=f+-1|0;Z=e+(r<<4)|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];z=+h[k>>3];r=e+(r<<4)+8|0;a[k>>0]=a[r>>0];a[k+1>>0]=a[r+1>>0];a[k+2>>0]=a[r+2>>0];a[k+3>>0]=a[r+3>>0];a[k+4>>0]=a[r+4>>0];a[k+5>>0]=a[r+5>>0];a[k+6>>0]=a[r+6>>0];a[k+7>>0]=a[r+7>>0];A=+h[k>>3];m=x;n=y;w=0.0;v=0.0;q=0.0;r=0;p=0.0;o=0.0;while(1){Z=l+(r*40|0)+8|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];W=+h[k>>3];Z=l+(r*40|0)+16|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];X=+h[k>>3];w=w+(W*W+X*X);Z=l+(r*40|0)+24|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];_=+h[k>>3];Z=l+(r*40|0)+32|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];aa=+h[k>>3];q=q+(W*_+X*aa);v=v+(_*_+aa*aa);$=+h[l+(r*40|0)>>3];ba=1.0-$;V=ba*ba*(ba+$*3.0);ba=$*$*($+ba*3.0);$=m-(x*V+z*ba);ba=n-(y*V+A*ba);p=p+(W*$+X*ba);o=o+(_*$+aa*ba);r=r+1|0;if((r|0)==(f|0)){x=D;y=E;break a}Z=e+(r<<4)|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];m=+h[k>>3];Z=e+(r<<4)+8|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];n=+h[k>>3]}}else{x=D;y=E;w=0.0;v=0.0;q=0.0;p=0.0;o=0.0}}else{B=+h[g>>3];C=+h[g+8>>3];x=+h[j>>3];y=+h[j+8>>3];w=0.0;v=0.0;q=0.0;p=0.0;o=0.0}while(0);m=v*w-q*q;n=m>=0.0?m:-m;if(n>=1.0e-06?(H=(v*p-q*o)/m,I=(w*o-q*p)/m,!(n<1.0e-06|H<=0.0|I<=0.0)):0){P=f+-1|0;N=e+8|0;Y=N;Z=e;_=+h[e>>3];$=+h[N>>3];aa=+h[e+(P<<4)>>3];ba=+h[e+(P<<4)+8>>3];m=H;n=I}else{Y=f+-1|0;Z=e+(Y<<4)|0;a[k>>0]=a[Z>>0];a[k+1>>0]=a[Z+1>>0];a[k+2>>0]=a[Z+2>>0];a[k+3>>0]=a[Z+3>>0];a[k+4>>0]=a[Z+4>>0];a[k+5>>0]=a[Z+5>>0];a[k+6>>0]=a[Z+6>>0];a[k+7>>0]=a[Z+7>>0];aa=+h[k>>3];Y=e+(Y<<4)+8|0;a[k>>0]=a[Y>>0];a[k+1>>0]=a[Y+1>>0];a[k+2>>0]=a[Y+2>>0];a[k+3>>0]=a[Y+3>>0];a[k+4>>0]=a[Y+4>>0];a[k+5>>0]=a[Y+5>>0];a[k+6>>0]=a[Y+6>>0];a[k+7>>0]=a[Y+7>>0];ba=+h[k>>3];a[k>>0]=a[e>>0];a[k+1>>0]=a[e+1>>0];a[k+2>>0]=a[e+2>>0];a[k+3>>0]=a[e+3>>0];a[k+4>>0]=a[e+4>>0];a[k+5>>0]=a[e+5>>0];a[k+6>>0]=a[e+6>>0];a[k+7>>0]=a[e+7>>0];_=+h[k>>3];Y=e+8|0;a[k>>0]=a[Y>>0];a[k+1>>0]=a[Y+1>>0];a[k+2>>0]=a[Y+2>>0];a[k+3>>0]=a[Y+3>>0];a[k+4>>0]=a[Y+4>>0];a[k+5>>0]=a[Y+5>>0];a[k+6>>0]=a[Y+6>>0];a[k+7>>0]=a[Y+7>>0];$=+h[k>>3];m=aa-_;n=ba-$;n=+O(+(m*m+n*n))/3.0;Z=e;m=n}X=B*m;V=C*m;W=x*n;U=y*n;K=(f|0)==2;L=(d|0)>0;M=ma+24|0;N=ma+16|0;P=ma+8|0;Q=_*3.0;R=$*3.0;S=4.0;T=4.0;l=1;b:while(1){p=_+X*S/3.0;o=$+V*S/3.0;n=aa-W*T/3.0;m=ba-U*T/3.0;if(l){C=p-_;D=o-$;E=n-p;H=m-o;I=aa-n;x=ba-m;x=+O(+(C*C+D*D))+0.0+ +O(+(E*E+H*H))+ +O(+(I*I+x*x));if(ca){v=+h[Z>>3];w=+h[Y>>3];l=1;q=0.0;do{H=v;v=+h[e+(l<<4)>>3];H=v-H;I=w;w=+h[e+(l<<4)+8>>3];I=w-I;q=q+ +O(+(H*H+I*I));l=l+1|0}while((l|0)!=(f|0))}else q=0.0;if(x<q+-.001)break}if(!L){la=71;break}y=n*3.0;x=aa+p*3.0-(_+y);y=Q+y-p*6.0;z=(p-_)*3.0;B=m*3.0;A=ba+o*3.0-($+B);B=R+B-o*6.0;C=(o-$)*3.0;J=0;c:while(1){D=+h[b+(J<<5)>>3];E=+h[b+(J<<5)+8>>3];H=+h[b+(J<<5)+16>>3];I=+h[b+(J<<5)+24>>3];v=H-D;w=I-E;d:do if(v==0.0){h[M>>3]=x;h[N>>3]=y;h[P>>3]=z;h[ma>>3]=_-D;G=Sx(ma,oa)|0;if(!(w==0.0)){if((G|0)==4){l=4;break}if((G|0)>0){l=0;r=0}else{l=0;break}while(1){q=+h[oa+(r<<3)>>3];if(q>=0.0&q<=1.0?(h[M>>3]=A,h[N>>3]=B,h[P>>3]=C,h[ma>>3]=$,v=($+q*(C+q*(B+A*q))-E)/w,v>=0.0&v<=1.0):0){h[ja+(l<<3)>>3]=q;l=l+1|0}r=r+1|0;if((r|0)==(G|0))break d}}h[M>>3]=A;h[N>>3]=B;h[P>>3]=C;h[ma>>3]=$-E;F=Sx(ma,ka)|0;l=(F|0)==4;if((G|0)==4){if(l){l=4;break}if((F|0)>0){l=0;r=0}else{l=0;break}while(1){q=+h[ka+(r<<3)>>3];if(q>=0.0&q<=1.0){h[ja+(l<<3)>>3]=q;l=l+1|0}r=r+1|0;if((r|0)==(F|0))break d}}r=(G|0)>0;if(l){if(r){l=0;r=0}else{l=0;break}while(1){q=+h[oa+(r<<3)>>3];if(q>=0.0&q<=1.0){h[ja+(l<<3)>>3]=q;l=l+1|0}r=r+1|0;if((r|0)==(G|0))break d}}if(r){t=(F|0)>0;l=0;u=0;do{if(t){q=+h[oa+(u<<3)>>3];s=!(q<=1.0)|!(q>=0.0);r=0;do{if(!(s|q!=+h[ka+(r<<3)>>3])){h[ja+(l<<3)>>3]=q;l=l+1|0}r=r+1|0}while((r|0)!=(F|0))}u=u+1|0}while((u|0)!=(G|0))}else l=0}else{q=w/v;w=$-_*q;qa=o-p*q;ra=(m-n*q)*3.0;h[M>>3]=ba-aa*q+qa*3.0-(w+ra);h[N>>3]=w*3.0+ra-qa*6.0;h[P>>3]=(qa-w)*3.0;h[ma>>3]=D*q-E+w;r=Sx(ma,oa)|0;if((r|0)!=4)if((r|0)>0){l=0;s=0;do{q=+h[oa+(s<<3)>>3];if(q>=0.0&q<=1.0?(h[M>>3]=x,h[N>>3]=y,h[P>>3]=z,h[ma>>3]=_,ra=(_+q*(z+q*(y+x*q))-D)/v,ra>=0.0&ra<=1.0):0){h[ja+(l<<3)>>3]=q;l=l+1|0}s=s+1|0}while((s|0)!=(r|0))}else l=0;else l=4}while(0);if((l|0)!=4&(l|0)>0){r=0;do{q=+h[ja+(r<<3)>>3];if((!(q<1.0e-06|q>.999999)?(w=q*(q*q),ia=q*3.0,qa=1.0-q,ra=qa*(q*ia),ia=qa*(ia*qa),qa=qa*(qa*qa),ha=aa*w+(n*ra+(_*qa+p*ia)),ia=ba*w+(m*ra+($*qa+o*ia)),qa=ha-D,ra=ia-E,!(qa*qa+ra*ra<.001)):0)?(qa=ha-H,ra=ia-I,!(qa*qa+ra*ra<.001)):0)break c;r=r+1|0}while((r|0)<(l|0))}J=J+1|0;if((J|0)>=(d|0)){la=71;break b}}if(S==0.0&T==0.0){da=p;ea=o;fa=n;ga=m;la=73;break}l=S>.01;S=l?S*.5:0.0;T=l?T*.5:0.0;l=0}if((la|0)==71){Jx((c[22545]|0)+4|0);na=c[22546]|0;l=c[22545]|0;h[na+(l<<4)>>3]=p;e=l+1|0;h[na+(l<<4)+8>>3]=o;h[na+(e<<4)>>3]=n;oa=l+2|0;h[na+(e<<4)+8>>3]=m;h[na+(oa<<4)>>3]=aa;h[na+(oa<<4)+8>>3]=ba;c[22545]=l+3;l=0;break}if((la|0)==73?K:0){Jx((c[22545]|0)+4|0);na=c[22546]|0;l=c[22545]|0;h[na+(l<<4)>>3]=da;e=l+1|0;h[na+(l<<4)+8>>3]=ea;h[na+(e<<4)>>3]=fa;oa=l+2|0;h[na+(e<<4)+8>>3]=ga;h[na+(oa<<4)>>3]=aa;h[na+(oa<<4)+8>>3]=ba;c[22545]=l+3;l=0;break}v=X*.3333333333333333+_;q=V*.3333333333333333+$;p=aa-W*.3333333333333333;m=ba-U*.3333333333333333;r=f+-1|0;if((r|0)>1){s=c[22548]|0;u=1;o=-1.0;l=-1;while(1){ha=+h[s+(u*40|0)>>3];ra=1.0-ha;qa=ra*(ra*ra);ia=ha*3.0;n=ra*(ia*ra);ia=ra*(ha*ia);ha=ha*(ha*ha);t=e+(u<<4)|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];ra=+h[k>>3];t=e+(u<<4)+8|0;a[k>>0]=a[t>>0];a[k+1>>0]=a[t+1>>0];a[k+2>>0]=a[t+2>>0];a[k+3>>0]=a[t+3>>0];a[k+4>>0]=a[t+4>>0];a[k+5>>0]=a[t+5>>0];a[k+6>>0]=a[t+6>>0];a[k+7>>0]=a[t+7>>0];ra=ra-(aa*ha+(p*ia+(_*qa+v*n)));n=+h[k>>3]-(ba*ha+(m*ia+($*qa+q*n)));n=+O(+(ra*ra+n*n));t=n>o;l=t?u:l;u=u+1|0;if((u|0)==(r|0))break;else o=t?n:o}}else l=-1;s=e+(l<<4)|0;la=l+-1|0;ka=e+(la<<4)|0;a[k>>0]=a[ka>>0];a[k+1>>0]=a[ka+1>>0];a[k+2>>0]=a[ka+2>>0];a[k+3>>0]=a[ka+3>>0];a[k+4>>0]=a[ka+4>>0];a[k+5>>0]=a[ka+5>>0];a[k+6>>0]=a[ka+6>>0];a[k+7>>0]=a[ka+7>>0];m=+h[k>>3];la=e+(la<<4)+8|0;a[k>>0]=a[la>>0];a[k+1>>0]=a[la+1>>0];a[k+2>>0]=a[la+2>>0];a[k+3>>0]=a[la+3>>0];a[k+4>>0]=a[la+4>>0];a[k+5>>0]=a[la+5>>0];a[k+6>>0]=a[la+6>>0];a[k+7>>0]=a[la+7>>0];o=+h[k>>3];a[k>>0]=a[s>>0];a[k+1>>0]=a[s+1>>0];a[k+2>>0]=a[s+2>>0];a[k+3>>0]=a[s+3>>0];a[k+4>>0]=a[s+4>>0];a[k+5>>0]=a[s+5>>0];a[k+6>>0]=a[s+6>>0];a[k+7>>0]=a[s+7>>0];p=+h[k>>3];la=e+(l<<4)+8|0;a[k>>0]=a[la>>0];a[k+1>>0]=a[la+1>>0];a[k+2>>0]=a[la+2>>0];a[k+3>>0]=a[la+3>>0];a[k+4>>0]=a[la+4>>0];a[k+5>>0]=a[la+5>>0];a[k+6>>0]=a[la+6>>0];a[k+7>>0]=a[la+7>>0];q=+h[k>>3];m=p-m;o=q-o;n=m*m+o*o;if(n>1.0e-06){ra=+O(+n);m=m/ra;o=o/ra}r=l+1|0;la=e+(r<<4)|0;a[k>>0]=a[la>>0];a[k+1>>0]=a[la+1>>0];a[k+2>>0]=a[la+2>>0];a[k+3>>0]=a[la+3>>0];a[k+4>>0]=a[la+4>>0];a[k+5>>0]=a[la+5>>0];a[k+6>>0]=a[la+6>>0];a[k+7>>0]=a[la+7>>0];n=+h[k>>3];la=e+(r<<4)+8|0;a[k>>0]=a[la>>0];a[k+1>>0]=a[la+1>>0];a[k+2>>0]=a[la+2>>0];a[k+3>>0]=a[la+3>>0];a[k+4>>0]=a[la+4>>0];a[k+5>>0]=a[la+5>>0];a[k+6>>0]=a[la+6>>0];a[k+7>>0]=a[la+7>>0];p=n-p;q=+h[k>>3]-q;n=p*p+q*q;if(n>1.0e-06){ra=+O(+n);n=p/ra;q=q/ra}else n=p;p=m+n;m=o+q;n=m*m+p*p;if(n>1.0e-06){ra=+O(+n);n=p/ra;m=m/ra}else n=p;h[na>>3]=n;h[na+8>>3]=m;c[oa>>2]=c[g>>2];c[oa+4>>2]=c[g+4>>2];c[oa+8>>2]=c[g+8>>2];c[oa+12>>2]=c[g+12>>2];c[ma>>2]=c[na>>2];c[ma+4>>2]=c[na+4>>2];c[ma+8>>2]=c[na+8>>2];c[ma+12>>2]=c[na+12>>2];Kx(b,d,e,r,oa,ma)|0;c[oa>>2]=c[na>>2];c[oa+4>>2]=c[na+4>>2];c[oa+8>>2]=c[na+8>>2];c[oa+12>>2]=c[na+12>>2];c[ma>>2]=c[j>>2];c[ma+4>>2]=c[j+4>>2];c[ma+8>>2]=c[j+8>>2];c[ma+12>>2]=c[j+12>>2];Kx(b,d,s,f-l|0,oa,ma)|0;l=0}while(0);i=pa;return l|0}function Lx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0.0,m=0.0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,D=0.0,E=0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0.0,Q=0.0,R=0,S=0.0,T=0.0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ga=0,ha=0,ja=0;ja=i;i=i+176|0;ea=ja+144|0;ca=ja+128|0;ba=ja+112|0;aa=ja+96|0;$=ja+80|0;_=ja+64|0;Z=ja+48|0;Y=ja+32|0;X=ja+16|0;W=ja;ha=4;fa=oB(40)|0;c[fa>>2]=0;V=ja+160|0;ha=xB(90200,1,fa|0,ha|0)|0;fa=C;n=0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1)e=C;else e=0;a:while(1){if(e){e=-2;break}q=a+4|0;j=c[q>>2]|0;if((c[22589]|0)<(j|0)){e=c[22590]|0;if(!e){n=0;e=na(27,j<<3|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue}c[22590]=e;if(!e){e=c[22667]|0;n=0;c[W>>2]=164243;c[W+4>>2]=523;c[W+8>>2]=164254;da(13,e|0,164224,W|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue}n=0;e=na(27,j<<2|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue}c[22591]=e;if(!e){e=c[22667]|0;n=0;c[X>>2]=164243;c[X+4>>2]=527;c[X+8>>2]=164273;da(13,e|0,164224,X|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue}}else{n=0;e=ua(38,e|0,j<<3|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue}c[22590]=e;if(!e){e=c[22667]|0;n=0;c[Y>>2]=164243;c[Y+4>>2]=533;c[Y+8>>2]=164293;da(13,e|0,164224,Y|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue}n=0;e=ua(38,c[22591]|0,j<<2|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue}c[22591]=e;if(!e){e=c[22667]|0;n=0;c[Z>>2]=164243;c[Z+4>>2]=539;c[Z+8>>2]=164313;da(13,e|0,164224,Z|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue}}c[22589]=j}c[22592]=0;c[22593]=0;e=c[q>>2]|0;k=e<<1;f=c[22594]|0;if((f|0)<(k|0)){f=c[22595]|0;do if(!f){n=0;f=na(27,e<<3|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}c[22595]=f;if(!f){e=c[22667]|0;n=0;c[_>>2]=164243;c[_+4>>2]=573;c[_+8>>2]=164334;da(13,e|0,164224,_|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue a}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue a}}else{n=0;e=ua(38,f|0,e<<3|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue a}c[22595]=e;if(e){e=c[q>>2]|0;break}e=c[22667]|0;n=0;c[$>>2]=164243;c[$+4>>2]=580;c[$+8>>2]=164356;da(13,e|0,164224,$|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue a}n=0;ka(28,90200,1);e=n;n=0;if((e|0)!=0&(o|0)!=0){N=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!N)Ka(e|0,o|0);C=o};e=C;continue a}while(0);c[22594]=k;f=k}p=(f|0)/2|0;c[22596]=p;c[22597]=p+-1;p=(e|0)>0;k=c[a>>2]|0;if(p){f=-1;m=s;j=0;while(1){l=+h[k+(j<<4)>>3];g=m>l;f=g?j:f;j=j+1|0;if((j|0)>=(e|0))break;else m=g?l:m}}else f=-1;H=+h[k+(f<<4)>>3];J=+h[k+(f<<4)+8>>3];N=((f|0)==0?e:f)+-1|0;G=+h[k+(N<<4)>>3];M=(f|0)==(e+-1|0)?0:f+1|0;F=+h[k+(M<<4)>>3];I=+h[k+(M<<4)+8>>3];if(!(G==H&H==F&I>J)?(F-H)*(+h[k+(N<<4)+8>>3]-J)-(G-H)*(I-J)>0.0:0){if(p){f=e;j=0;do{g=c[a>>2]|0;if(!(((j|0)>0?(O=j+-1|0,+h[g+(j<<4)>>3]==+h[g+(O<<4)>>3]):0)?+h[g+(j<<4)+8>>3]==+h[g+(O<<4)+8>>3]:0)){N=c[22592]|0;c[(c[22590]|0)+(N<<3)>>2]=g+(j<<4);M=c[22590]|0;c[M+(N<<3)+4>>2]=M+(((N|0)%(f|0)|0)<<3);c[(c[22591]|0)+(N<<2)>>2]=(c[22590]|0)+(N<<3);c[22592]=N+1;f=c[q>>2]|0}j=j+1|0}while((j|0)<(f|0))}}else ga=40;b:do if((ga|0)==40?(ga=0,p):0){j=e;g=e;while(1){f=g+-1|0;e=c[a>>2]|0;if(!(((g|0)<=(j+-1|0)?+h[e+(f<<4)>>3]==+h[e+(g<<4)>>3]:0)?+h[e+(f<<4)+8>>3]==+h[e+(g<<4)+8>>3]:0)){N=c[22592]|0;c[(c[22590]|0)+(N<<3)>>2]=e+(f<<4);M=c[22590]|0;c[M+(N<<3)+4>>2]=M+(((N|0)%(j|0)|0)<<3);c[(c[22591]|0)+(N<<2)>>2]=(c[22590]|0)+(N<<3);c[22592]=N+1}if((g|0)<=1)break b;j=c[q>>2]|0;g=f}}while(0);N=c[22591]|0;e=c[22592]|0;c:do if((e|0)>3){d:while(1){K=e;e=e+-1|0;L=0;e:while(1){M=L;L=L+1|0;f=(L|0)%(K|0)|0;t=(M+2|0)%(K|0)|0;x=c[c[N+(((M+e|0)%(K|0)|0)<<2)>>2]>>2]|0;u=c[N+(M<<2)>>2]|0;v=c[u>>2]|0;w=c[N+(f<<2)>>2]|0;E=c[w>>2]|0;m=+h[x+8>>3];F=+h[v+8>>3];y=+h[E>>3];G=+h[v>>3];z=y-G;A=+h[E+8>>3];B=A-F;D=+h[x>>3];x=c[N+(t<<2)>>2]|0;E=c[x>>2]|0;H=+h[E+8>>3];I=F-H;J=+h[E>>3];if((m-F)*z-B*(D-G)>0.0){l=G-J;if(I*(D-J)-(m-H)*l>0.0?z*(H-F)-B*(J-G)>0.0:0)ga=60}else{l=G-J;D=I*(y-J)-(A-H)*l;if(D<0.0&!(D>0.0))ga=60}f:do if((ga|0)==60){ga=0;r=0;while(1){g=r;r=r+1|0;j=(r|0)==(K|0)?0:r;g:do if(!((j|0)==(t|0)|((g|0)==(t|0)|((g|0)==(M|0)|(j|0)==(M|0))))){q=c[c[N+(g<<2)>>2]>>2]|0;p=c[c[N+(j<<2)>>2]>>2]|0;m=+h[q>>3];y=+h[q+8>>3];D=I*(m-J)-l*(y-H);j=D>0.0;do if((!(!(D<0.0)&(j^1))?(P=+h[p>>3],Q=+h[p+8>>3],D=I*(P-J)-l*(Q-H),R=D>0.0,!(!(D<0.0)&(R^1))):0)?(S=y-Q,T=m-P,D=(G-P)*S-T*(F-Q),U=D>0.0,!(!(D<0.0)&(U^1))):0){D=(J-P)*S-T*(H-Q);g=D>0.0;if(!(D<0.0)&(g^1))break;if((j^R)&(U^g))break f;else break g}while(0);n=0;g=da(19,v|0,E|0,q|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,ha|0,fa|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){e=C;continue a}if(g)break f;n=0;g=da(19,v|0,E|0,p|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,ha|0,fa|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){e=C;continue a}if(g)break f;n=0;g=da(19,q|0,p|0,v|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,ha|0,fa|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){e=C;continue a}if(g)break f;n=0;g=da(19,q|0,p|0,E|0)|0;j=n;n=0;if((j|0)!=0&(o|0)!=0){k=zB(c[j>>2]|0,ha|0,fa|0)|0;if(!k)Ka(j|0,o|0);C=o}else k=-1;if((k|0)==1){e=C;continue a}if(g)break f}while(0);if((r|0)>=(K|0))break e}}while(0);if((L|0)>=(K|0))break d}n=0;pa(66,u|0,w|0,x|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}if((f|0)<(e|0))do{M=f;f=f+1|0;c[N+(M<<2)>>2]=c[N+(f<<2)>>2]}while((f|0)!=(e|0));if((e|0)<=3){ga=81;break c}}e=c[22667]|0;n=0;c[aa>>2]=164243;c[aa+4>>2]=324;c[aa+8>>2]=164379;da(13,e|0,164224,aa|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue a}}else ga=81;while(0);if((ga|0)==81){ga=0;n=0;pa(66,c[N>>2]|0,c[N+4>>2]|0,c[N+8>>2]|0);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}}E=c[22593]|0;x=(E|0)>0;h:do if(x){u=0;do{v=u;u=u+1|0;f=(u|0)<(E|0);if(f)w=u;else break;do{r=0;do{t=0;do{g=c[22598]|0;j=g+(v*52|0)|0;k=g+(w*52|0)|0;p=c[c[g+(v*52|0)+4+(r<<4)>>2]>>2]|0;q=c[c[g+(w*52|0)+4+(t<<4)>>2]>>2]|0;if((p|0)==(q|0)){e=c[c[g+(w*52|0)+4+(t<<4)+4>>2]>>2]|0;if((c[c[g+(v*52|0)+4+(r<<4)+4>>2]>>2]|0)==(e|0))ga=94;else ga=92}else{e=c[c[g+(w*52|0)+4+(t<<4)+4>>2]>>2]|0;ga=92}if(((ga|0)==92?(ga=0,(p|0)==(e|0)):0)?(c[c[g+(v*52|0)+4+(r<<4)+4>>2]>>2]|0)==(q|0):0)ga=94;if((ga|0)==94){ga=0;c[g+(v*52|0)+4+(r<<4)+12>>2]=k;c[g+(w*52|0)+4+(t<<4)+12>>2]=j}t=t+1|0}while((t|0)!=3);r=r+1|0}while((r|0)!=3);w=w+1|0}while((w|0)!=(E|0))}while(f);if(x){e=0;while(1){n=0;f=ua(43,e|0,b|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}if(f){K=e;break h}e=e+1|0;if((e|0)>=(E|0)){K=e;break}}}else K=0}else K=0;while(0);if((K|0)==(E|0)){e=c[22667]|0;n=0;c[ba>>2]=164243;c[ba+4>>2]=192;c[ba+8>>2]=164400;da(13,e|0,164224,ba|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else{ga=104;break}}L=b+16|0;i:do if(x){e=0;while(1){n=0;f=ua(43,e|0,L|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}if(f)break i;e=e+1|0;if((e|0)>=(E|0))break}}else e=0;while(0);if((e|0)==(E|0)){e=c[22667]|0;n=0;c[ca>>2]=164243;c[ca+4>>2]=200;c[ca+8>>2]=164433;da(13,e|0,164224,ca|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else{ga=110;break}}n=0;f=ua(44,K|0,e|0)|0;g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue}if(!f){e=c[22667]|0;n=0;c[ea>>2]=164243;c[ea+4>>2]=207;c[ea+8>>2]=164471;da(13,e|0,164224,ea|0)|0;e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}n=0;ia(98,2);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else{ga=115;break}}if((K|0)==(e|0)){n=0;ia(98,2);e=n;n=0;if((e|0)!=0&(o|0)!=0){f=zB(c[e>>2]|0,ha|0,fa|0)|0;if(!f)Ka(e|0,o|0);C=o}else f=-1;if((f|0)==1){e=C;continue}else{ga=118;break}}c[V>>2]=b;f=V+4|0;c[f>>2]=0;e=V+8|0;c[e>>2]=L;c[V+12>>2]=0;k=c[22597]|0;g=c[22596]|0;j=c[22595]|0;if((k|0)>=(g|0))c[f>>2]=c[j+(g<<2)>>2];f=g+-1|0;c[22596]=f;c[j+(f<<2)>>2]=V;c[22600]=f;j:do if((K|0)==-1){f=0;g=e}else{x=b+24|0;q=f;t=f;w=K;while(1){v=c[22598]|0;c[v+(w*52|0)>>2]=2;u=v+(w*52|0)+16|0;ga=c[u>>2]|0;if((ga|0)!=0?(c[ga>>2]|0)==1:0){f=0;ga=127}else ga=125;do if((ga|0)==125){ga=0;N=c[v+(w*52|0)+32>>2]|0;if((N|0)!=0?(c[N>>2]|0)==1:0){f=1;ga=127;break}N=c[v+(w*52|0)+48>>2]|0;if((N|0)!=0?(c[N>>2]|0)==1:0){f=2;ga=127;break}g=c[22595]|0;p=c[c[g+(q<<2)>>2]>>2]|0;g=c[g+(k<<2)>>2]|0;N=c[g>>2]|0;I=+h[p+8>>3];J=+h[p>>3];N=(+h[x>>3]-I)*(+h[N>>3]-J)-(+h[N+8>>3]-I)*(+h[L>>3]-J)>0.0;p=N?g:e;g=N?e:g}while(0);do if((ga|0)==127){ga=0;g=c[v+(w*52|0)+4+(f<<4)>>2]|0;j=c[v+(w*52|0)+4+(f<<4)+4>>2]|0;N=c[g>>2]|0;E=c[c[v+(w*52|0)+4+((((f+1|0)>>>0)%3|0)<<4)+4>>2]>>2]|0;M=c[j>>2]|0;I=+h[E+8>>3];J=+h[E>>3];if((+h[N+8>>3]-I)*(+h[M>>3]-J)-(+h[M+8>>3]-I)*(+h[N>>3]-J)>0.0){p=j;break}p=g;g=j}while(0);k:do if((w|0)==(K|0)){f=c[22595]|0;if((k|0)>=(q|0))c[p+4>>2]=c[f+(k<<2)>>2];k=k+1|0;c[22597]=k;c[f+(k<<2)>>2]=p;f=c[22595]|0;if((k|0)>=(q|0))c[g+4>>2]=c[f+(q<<2)>>2];q=q+-1|0;c[22596]=q;c[f+(q<<2)>>2]=g;g=t}else{r=c[22595]|0;do if((c[r+(q<<2)>>2]|0)!=(g|0)){if((c[r+(k<<2)>>2]|0)==(g|0))break;n=0;p=na(28,g|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){j=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!j)Ka(f|0,o|0);C=o}else j=-1;if((j|0)==1){e=C;continue a}c[22596]=p;if((k|0)>=(p|0))c[g+4>>2]=c[r+(p<<2)>>2];f=p+-1|0;c[22596]=f;c[r+(f<<2)>>2]=g;if((p|0)<=(t|0)){q=f;g=t;break k}c[22600]=p;q=f;g=p;break k}while(0);n=0;j=na(28,p|0)|0;f=n;n=0;if((f|0)!=0&(o|0)!=0){g=zB(c[f>>2]|0,ha|0,fa|0)|0;if(!g)Ka(f|0,o|0);C=o}else g=-1;if((g|0)==1){e=C;continue a}c[22597]=j;if((j|0)>=(q|0))c[p+4>>2]=c[r+(j<<2)>>2];k=j+1|0;c[22597]=k;c[r+(k<<2)>>2]=p;if((j|0)>=(t|0)){g=t;break}c[22600]=j;g=j}while(0);f=c[u>>2]|0;if(!((f|0)!=0?(c[f>>2]|0)==1:0))ga=150;do if((ga|0)==150){ga=0;f=c[v+(w*52|0)+32>>2]|0;if((f|0)!=0?(c[f>>2]|0)==1:0)break;f=c[v+(w*52|0)+48>>2]|0;if(!f){f=0;g=e;break j}if((c[f>>2]|0)!=1){f=0;g=e;break j}}while(0);f=f-(c[22598]|0)|0;if((f|0)==-52){f=0;g=e;break}else{t=g;w=(f|0)/52|0}}}while(0);while(1){k=f+1|0;g=c[g+4>>2]|0;if(!g)break;else f=k}n=0;ia(98,k|0);g=n;n=0;if((g|0)!=0&(o|0)!=0){j=zB(c[g>>2]|0,ha|0,fa|0)|0;if(!j)Ka(g|0,o|0);C=o}else j=-1;if((j|0)==1)e=C;else{ga=153;break}}if((ga|0)==104)e=-1;else if((ga|0)==110)e=-1;else if((ga|0)==115){c[d+4>>2]=2;e=c[22599]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];ga=e+16|0;c[ga>>2]=c[L>>2];c[ga+4>>2]=c[L+4>>2];c[ga+8>>2]=c[L+8>>2];c[ga+12>>2]=c[L+12>>2];c[d>>2]=e;e=0}else if((ga|0)==118){c[d+4>>2]=2;e=c[22599]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];ga=e+16|0;c[ga>>2]=c[L>>2];c[ga+4>>2]=c[L+4>>2];c[ga+8>>2]=c[L+8>>2];c[ga+12>>2]=c[L+12>>2];c[d>>2]=e;e=0}else if((ga|0)==153){c[d+4>>2]=k;g=c[22599]|0;j=g;while(1){ga=g+(f<<4)|0;fa=c[e>>2]|0;c[ga>>2]=c[fa>>2];c[ga+4>>2]=c[fa+4>>2];c[ga+8>>2]=c[fa+8>>2];c[ga+12>>2]=c[fa+12>>2];e=c[e+4>>2]|0;if(!e)break;else f=f+-1|0}c[d>>2]=j;e=0}pB(ha|0);i=ja;return e|0}function Mx(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0;k=+h[b>>3];l=+h[a>>3];g=k-l;i=+h[b+8>>3];n=+h[a+8>>3];e=i-n;m=+h[c>>3];f=m-l;j=+h[c+8>>3];d=j-n;i=(n-i)*(m-k)-(l-k)*(j-i);if(!(i>0.0)&!(i<0.0)){if(!(g*f+e*d>=0.0))a=0;else a=f*f+d*d<=g*g+e*e;a=a&1}else a=0;return a|0}function Nx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m+16|0;k=m;h=c[22593]|0;g=c[22602]|0;if((h|0)<(g|0)){f=h;e=c[22598]|0}else{j=g+20|0;g=c[22598]|0;do if(!g){g=oB(j*52|0)|0;c[22598]=g;if(!g){l=c[22667]|0;c[k>>2]=164243;c[k+4>>2]=552;c[k+8>>2]=164534;Bz(l,164224,k)|0;Ka(90200,1)}else{e=g;f=h}}else{g=rB(g,j*52|0)|0;c[22598]=g;if(!g){k=c[22667]|0;c[l>>2]=164243;c[l+4>>2]=558;c[l+8>>2]=164553;Bz(k,164224,l)|0;Ka(90200,1)}else{e=g;f=c[22593]|0;break}}while(0);c[22602]=j}c[22593]=f+1;l=e+(f*52|0)|0;c[l>>2]=0;c[e+(f*52|0)+4>>2]=a;c[e+(f*52|0)+8>>2]=b;c[e+(f*52|0)+16>>2]=0;c[e+(f*52|0)+20>>2]=b;c[e+(f*52|0)+24>>2]=d;c[e+(f*52|0)+32>>2]=0;c[e+(f*52|0)+36>>2]=d;c[e+(f*52|0)+40>>2]=a;c[e+(f*52|0)+48>>2]=0;c[e+(f*52|0)+12>>2]=l;c[e+(f*52|0)+28>>2]=l;c[e+(f*52|0)+44>>2]=l;i=m;return}function Ox(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0,g=0.0,i=0.0,j=0,k=0.0,l=0;f=c[22598]|0;g=+h[b>>3];d=+h[b+8>>3];e=0;b=0;do{j=c[c[f+(a*52|0)+4+(e<<4)>>2]>>2]|0;l=c[c[f+(a*52|0)+4+(e<<4)+4>>2]>>2]|0;k=+h[l+8>>3];i=+h[l>>3];i=(+h[j+8>>3]-k)*(g-i)-(d-k)*(+h[j>>3]-i);b=(i<0.0&!(i>0.0)&1^1)+b|0;e=e+1|0}while((e|0)!=3);return ((b|0)==3|(b|0)==0)&1|0}function Px(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[22598]|0;e=d+(a*52|0)|0;do if(!(c[e>>2]|0)){c[e>>2]=1;if((a|0)==(b|0))d=1;else{e=c[d+(a*52|0)+16>>2]|0;if(e){if(Px((e-d|0)/52|0,b)|0){d=1;break}d=c[22598]|0}e=c[d+(a*52|0)+32>>2]|0;if(e){if(Px((e-d|0)/52|0,b)|0){d=1;break}d=c[22598]|0}e=c[d+(a*52|0)+48>>2]|0;if(e){if(Px((e-d|0)/52|0,b)|0){d=1;break}d=c[22598]|0}c[d+(a*52|0)>>2]=0;d=0}}else d=0;while(0);return d|0}function Qx(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+32|0;e=f+16|0;d=f;if((c[22601]|0)<(a|0)){b=c[22599]|0;if(!b){e=oB(a<<4)|0;c[22599]=e;if(!e){e=c[22667]|0;c[d>>2]=164243;c[d+4>>2]=593;c[d+8>>2]=164497;Bz(e,164224,d)|0;Ka(90200,1)}}else{d=rB(b,a<<4)|0;c[22599]=d;if(!d){d=c[22667]|0;c[e>>2]=164243;c[e+4>>2]=599;c[e+8>>2]=164515;Bz(d,164224,e)|0;Ka(90200,1)}}c[22601]=a}i=f;return}function Rx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,i=0.0,j=0,k=0.0,l=0,m=0;b=c[22600]|0;g=c[22595]|0;e=c[22596]|0;while(1){if((e|0)>=(b|0)){f=4;break}d=e+1|0;j=c[c[g+(d<<2)>>2]>>2]|0;m=c[c[g+(e<<2)>>2]>>2]|0;l=c[a>>2]|0;k=+h[m+8>>3];i=+h[m>>3];if((+h[j+8>>3]-k)*(+h[l>>3]-i)-(+h[l+8>>3]-k)*(+h[j>>3]-i)>0.0){b=e;break}else e=d}a:do if((f|0)==4){e=c[22597]|0;while(1){if((e|0)<=(b|0))break a;d=e+-1|0;m=c[c[g+(d<<2)>>2]>>2]|0;j=c[c[g+(e<<2)>>2]>>2]|0;l=c[a>>2]|0;i=+h[j+8>>3];k=+h[j>>3];k=(+h[m+8>>3]-i)*(+h[l>>3]-k)-(+h[l+8>>3]-i)*(+h[m>>3]-k);if(k<0.0&!(k>0.0)){b=e;break}else e=d}}while(0);return b|0}function Sx(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0.0,f=0.0,g=0.0,i=0.0;c=+h[a+24>>3];if(!(c<1.0e-07&c>-1.0e-07)){g=+h[a+16>>3]/(c*3.0);e=+h[a+8>>3]/c;f=g*g;c=+h[a>>3]/c+(g*2.0*f-g*e);f=e/3.0-f;e=c*c;f=e+f*(f*(f*4.0));if(!(f<0.0)){e=(+O(+f)-c)*.5;i=+Dy(e);c=i+ +Dy(-c-e);h[b>>3]=c;if(f>0.0)a=1;else{i=c*-.5;h[b+16>>3]=i;h[b+8>>3]=i;a=3}}else{i=+W(+(+O(+-f)),+-c);f=+Dy(+O(+(e-f))*.5)*2.0;c=f*+Q(+(i/3.0));h[b>>3]=c;h[b+8>>3]=f*+Q(+((i+3.141592653589793+3.141592653589793)/3.0));h[b+16>>3]=f*+Q(+((i+-3.141592653589793+-3.141592653589793)/3.0));a=3}h[b>>3]=c-g;if((a|0)!=1){d=1;do{h[b+(d<<3)>>3]=+h[b+(d<<3)>>3]-g;d=d+1|0}while((d|0)<(a|0))}}else a=Tx(a,b)|0;return a|0}function Tx(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;c=+h[a+16>>3];do if(c<1.0e-07&c>-1.0e-07){d=+h[a+8>>3];c=+h[a>>3];if(d<1.0e-07&d>-1.0e-07){a=c<1.0e-07&c>-1.0e-07?4:0;break}else{h[b>>3]=-c/d;a=1;break}}else{d=+h[a+8>>3]/(c*2.0);c=d*d-+h[a>>3]/c;if(!(c<0.0))if(c==0.0){h[b>>3]=-d;a=1;break}else{c=+O(+c)-d;h[b>>3]=c;h[b+8>>3]=d*-2.0-c;a=2;break}else a=0}while(0);return a|0}function Ux(a){a=a|0;pB(c[a>>2]|0);pB(a);return}function Vx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=c[a+4>>2]|0;k=(e*3|0)+-2|0;d=c[22604]|0;if((k|0)>(c[22603]|0)){if(!d)d=oB(k<<4)|0;else d=rB(d,k<<4)|0;c[22604]=d;c[22603]=k;j=d;i=d}else{j=d;i=d}h=c[a>>2]|0;c[j>>2]=c[h>>2];c[j+4>>2]=c[h+4>>2];c[j+8>>2]=c[h+8>>2];c[j+12>>2]=c[h+12>>2];BB(j+16|0,h|0,16)|0;d=e+-1|0;if((d|0)>1){a=(d|0)>2?d:2;g=a*3|0;e=1;f=2;while(1){l=j+(f+2<<4)|0;m=j+(f+1<<4)|0;o=j+(f<<4)|0;n=h+(e<<4)|0;c[o>>2]=c[n>>2];c[o+4>>2]=c[n+4>>2];c[o+8>>2]=c[n+8>>2];c[o+12>>2]=c[n+12>>2];BB(m|0,n|0,16)|0;c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[l+12>>2]=c[m+12>>2];e=e+1|0;if((e|0)>=(d|0))break;else f=f+3|0}d=g+-1|0}else{a=1;d=2}n=j+(d<<4)|0;o=h+(a<<4)|0;c[n>>2]=c[o>>2];c[n+4>>2]=c[o+4>>2];c[n+8>>2]=c[o+8>>2];c[n+12>>2]=c[o+12>>2];BB(j+(d+1<<4)|0,o|0,16)|0;c[b+4>>2]=k;c[b>>2]=i;return}function Wx(a){a=a|0;return ((a+-48|0)>>>0<10|(Xx(a)|0)!=0)&1|0}function Xx(a){a=a|0;return ((a|32)+-97|0)>>>0<26|0}function Yx(a){a=a|0;return ((a|0)==32|(a|0)==9)&1|0}function Zx(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function _x(a){a=a|0;return (a+-65|0)>>>0<26|0}function $x(a){a=a|0;if(!(fy(a)|0))a=(ay(a)|0)!=0;else a=1;return a&1|0}function ay(a){a=a|0;if(a>>>0<131072)a=(d[164573+((d[164573+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=a>>>0<196606&1;return a|0}function by(a){a=a|0;return Yx(a)|0}function cy(a){a=a|0;if((a&-2|0)==8232|(a>>>0<32|(a+-127|0)>>>0<33))a=1;else a=(a+-65529|0)>>>0<3;return a&1|0}function dy(a,b){a=a|0;b=b|0;do switch(b|0){case 1:{b=$x(a)|0;break}case 2:{b=ay(a)|0;break}case 3:{b=by(a)|0;break}case 4:{b=cy(a)|0;break}case 5:{b=fy(a)|0;break}case 6:{b=gy(a)|0;break}case 7:{b=hy(a)|0;break}case 8:{b=iy(a)|0;break}case 9:{b=jy(a)|0;break}case 10:{b=ky(a)|0;break}case 11:{b=ly(a)|0;break}case 12:{b=my(a)|0;break}default:b=0}while(0);return b|0}function ey(b){b=b|0;var c=0,d=0,e=0,f=0;d=a[b>>0]|0;e=97;c=1;f=167549;while(1){if(d<<24>>24==e<<24>>24?(lA(b,f)|0)==0:0)break;f=f+6|0;e=a[f>>0]|0;if(!(e<<24>>24)){c=0;break}else c=c+1|0}return c|0}function fy(a){a=a|0;return (a+-48|0)>>>0<10|0}function gy(a){a=a|0;if(!(ky(a)|0))a=(iy(a)|0)!=0;else a=0;return a&1|0}function hy(a){a=a|0;return ((a|0)==223|(oy(a)|0)!=(a|0))&1|0}function iy(a){a=a|0;if(a>>>0>=255)if((a+-57344|0)>>>0<8185|(a>>>0<8232|(a+-8234|0)>>>0<47062))a=1;else return ((a+-65532|0)>>>0>1048579|(a&65534|0)==65534)&1^1|0;else a=(a+1&127)>>>0>32&1;return a|0}function jy(a){a=a|0;if(a>>>0<131072)a=(d[167622+((d[167622+(a>>>8)>>0]|0)<<5|a>>>3&31)>>0]|0)>>>(a&7)&1;else a=0;return a|0}function ky(a){a=a|0;if(!a)a=0;else a=(zA(90684,a)|0)!=0;return a&1|0}function ly(a){a=a|0;return (py(a)|0)!=(a|0)|0}function my(a){a=a|0;if((a+-48|0)>>>0<10)a=1;else a=((a|32)+-97|0)>>>0<6;return a&1|0}function ny(a){a=a|0;var b=0;b=(_x(a)|0)==0;return (b?a:a|32)|0}function oy(a){a=a|0;return CA(a,0)|0}function py(a){a=a|0;return CA(a,1)|0}function qy(){var a=0;if(!(c[22605]|0))a=90772;else a=c[(Ya()|0)+60>>2]|0;return a|0}function ry(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[170790+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=170878;e=5;break}}if((e|0)==2)if(!c)b=170878;else{b=170878;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function sy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;L=i;i=i+512|0;H=L;switch(e|0){case 0:{K=24;J=-149;A=4;break}case 1:{K=53;J=-1074;A=4;break}case 2:{K=53;J=-1074;A=4;break}default:g=0.0}a:do if((A|0)==4){E=b+4|0;D=b+100|0;do{e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0}while((Zx(e)|0)!=0);b:do switch(e|0){case 43:case 45:{h=1-(((e|0)==45&1)<<1)|0;e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;I=h;break b}else{e=wy(b)|0;I=h;break b}}default:I=1}while(0);h=e;e=0;do{if((h|32|0)!=(a[172682+e>>0]|0))break;do if(e>>>0<7){h=c[E>>2]|0;if(h>>>0<(c[D>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0;break}else{h=wy(b)|0;break}}while(0);e=e+1|0}while(e>>>0<8);c:do switch(e|0){case 8:break;case 3:{A=23;break}default:{k=(f|0)!=0;if(k&e>>>0>3)if((e|0)==8)break c;else{A=23;break c}d:do if(!e){e=0;do{if((h|32|0)!=(a[175620+e>>0]|0))break d;do if(e>>>0<2){h=c[E>>2]|0;if(h>>>0<(c[D>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0;break}else{h=wy(b)|0;break}}while(0);e=e+1|0}while(e>>>0<3)}while(0);switch(e|0){case 3:{e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|0)==40)e=1;else{if(!(c[D>>2]|0)){g=r;break a}c[E>>2]=(c[E>>2]|0)+-1;g=r;break a}while(1){h=c[E>>2]|0;if(h>>>0<(c[D>>2]|0)>>>0){c[E>>2]=h+1;h=d[h>>0]|0}else h=wy(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=r;break a}h=(c[D>>2]|0)==0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if(!k){c[(qy()|0)>>2]=22;vy(b,0);g=0.0;break a}if(!e){g=r;break a}while(1){e=e+-1|0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if(!e){g=r;break a}}}case 0:{do if((h|0)==48){e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|32|0)!=120){if(!(c[D>>2]|0)){e=48;break}c[E>>2]=(c[E>>2]|0)+-1;e=48;break}e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=0}else{e=wy(b)|0;k=0}e:while(1){switch(e|0){case 46:{A=74;break e}case 48:break;default:{y=0;l=0;x=0;h=0;n=k;o=0;w=0;m=1.0;k=0;g=0.0;break e}}e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=1;continue}else{e=wy(b)|0;k=1;continue}}if((A|0)==74){e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|0)==48){k=0;h=0;do{e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;k=wB(k|0,h|0,-1,-1)|0;h=C}while((e|0)==48);y=0;l=0;x=k;n=1;o=1;w=0;m=1.0;k=0;g=0.0}else{y=0;l=0;x=0;h=0;n=k;o=1;w=0;m=1.0;k=0;g=0.0}}while(1){u=e+-48|0;p=e|32;if(u>>>0>=10){v=(e|0)==46;if(!(v|(p+-97|0)>>>0<6)){p=x;u=y;break}if(v)if(!o){v=l;h=y;u=y;o=1;p=w;j=m}else{p=x;u=y;e=46;break}else A=86}else A=86;if((A|0)==86){A=0;e=(e|0)>57?p+-87|0:u;do if(!((y|0)<0|(y|0)==0&l>>>0<8)){if((y|0)<0|(y|0)==0&l>>>0<14){t=m*.0625;p=w;j=t;g=g+t*+(e|0);break}if((w|0)!=0|(e|0)==0){p=w;j=m}else{p=1;j=m;g=g+m*.5}}else{p=w;j=m;k=e+(k<<4)|0}while(0);l=wB(l|0,y|0,1,0)|0;v=x;u=C;n=1}e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;y=u;x=v;e=d[e>>0]|0;w=p;m=j;continue}else{y=u;x=v;e=wy(b)|0;w=p;m=j;continue}}if(!n){e=(c[D>>2]|0)==0;if(!e)c[E>>2]=(c[E>>2]|0)+-1;if(f){if(!e?(z=c[E>>2]|0,c[E>>2]=z+-1,(o|0)!=0):0)c[E>>2]=z+-2}else vy(b,0);g=+(I|0)*0.0;break a}n=(o|0)==0;o=n?l:p;n=n?u:h;if((u|0)<0|(u|0)==0&l>>>0<8){h=u;do{k=k<<4;l=wB(l|0,h|0,1,0)|0;h=C}while((h|0)<0|(h|0)==0&l>>>0<8)}if((e|32|0)==112){h=DA(b,f)|0;e=C;if((h|0)==0&(e|0)==-2147483648){if(!f){vy(b,0);g=0.0;break a}if(!(c[D>>2]|0)){h=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;h=0;e=0}}}else if(!(c[D>>2]|0)){h=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;h=0;e=0}H=DB(o|0,n|0,2)|0;H=wB(H|0,C|0,-32,-1)|0;e=wB(H|0,C|0,h|0,e|0)|0;h=C;if(!k){g=+(I|0)*0.0;break a}if((h|0)>0|(h|0)==0&e>>>0>(0-J|0)>>>0){c[(qy()|0)>>2]=34;g=+(I|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break a}H=J+-106|0;G=((H|0)<0)<<31>>31;if((h|0)<(G|0)|(h|0)==(G|0)&e>>>0<H>>>0){c[(qy()|0)>>2]=34;g=+(I|0)*2.2250738585072014e-308*2.2250738585072014e-308;break a}if((k|0)>-1){do{G=!(g>=.5);H=G&1|k<<1;k=H^1;g=g+(G?g:g+-1.0);e=wB(e|0,h|0,-1,-1)|0;h=C}while((H|0)>-1);l=e;m=g}else{l=e;m=g}e=vB(32,0,J|0,((J|0)<0)<<31>>31|0)|0;e=wB(l|0,h|0,e|0,C|0)|0;J=C;if(0>(J|0)|0==(J|0)&K>>>0>e>>>0)if((e|0)<0){e=0;A=127}else A=125;else{e=K;A=125}if((A|0)==125)if((e|0)<53)A=127;else{h=e;j=+(I|0);g=0.0}if((A|0)==127){g=+(I|0);h=e;j=g;g=+Fy(+Ny(1.0,84-e|0),g)}K=(k&1|0)==0&(m!=0.0&(h|0)<32);g=j*(K?0.0:m)+(g+j*+(((K&1)+k|0)>>>0))-g;if(!(g!=0.0))c[(qy()|0)>>2]=34;g=+Oy(g,l);break a}else e=h;while(0);F=J+K|0;G=0-F|0;k=0;f:while(1){switch(e|0){case 46:{A=138;break f}case 48:break;default:{h=0;p=0;o=0;break f}}e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0;k=1;continue}else{e=wy(b)|0;k=1;continue}}if((A|0)==138){e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|0)==48){h=0;e=0;while(1){h=wB(h|0,e|0,-1,-1)|0;k=C;e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;if((e|0)==48)e=k;else{p=k;k=1;o=1;break}}}else{h=0;p=0;o=1}}c[H>>2]=0;n=e+-48|0;l=(e|0)==46;g:do if(l|n>>>0<10){B=H+496|0;y=0;v=0;w=l;A=p;u=k;z=o;k=0;l=0;o=0;h:while(1){do if(w)if(!z){h=y;p=v;z=1}else{p=A;e=y;n=v;break h}else{w=wB(y|0,v|0,1,0)|0;v=C;x=(e|0)!=48;if((l|0)>=125){if(!x){p=A;y=w;break}c[B>>2]=c[B>>2]|1;p=A;y=w;break}p=H+(l<<2)|0;if(k)n=e+-48+((c[p>>2]|0)*10|0)|0;c[p>>2]=n;k=k+1|0;n=(k|0)==9;p=A;y=w;u=1;k=n?0:k;l=(n&1)+l|0;o=x?w:o}while(0);e=c[E>>2]|0;if(e>>>0<(c[D>>2]|0)>>>0){c[E>>2]=e+1;e=d[e>>0]|0}else e=wy(b)|0;n=e+-48|0;w=(e|0)==46;if(!(w|n>>>0<10)){n=z;A=161;break g}else A=p}u=(u|0)!=0;A=169}else{y=0;v=0;u=k;n=o;k=0;l=0;o=0;A=161}while(0);do if((A|0)==161){B=(n|0)==0;h=B?y:h;p=B?v:p;u=(u|0)!=0;if(!((e|32|0)==101&u))if((e|0)>-1){e=y;n=v;A=169;break}else{e=y;n=v;A=171;break}n=DA(b,f)|0;e=C;if((n|0)==0&(e|0)==-2147483648){if(!f){vy(b,0);g=0.0;break}if(!(c[D>>2]|0)){n=0;e=0}else{c[E>>2]=(c[E>>2]|0)+-1;n=0;e=0}}h=wB(n|0,e|0,h|0,p|0)|0;u=y;p=C;n=v;A=173}while(0);if((A|0)==169)if(c[D>>2]|0){c[E>>2]=(c[E>>2]|0)+-1;if(u){u=e;A=173}else A=172}else A=171;if((A|0)==171)if(u){u=e;A=173}else A=172;do if((A|0)==172){c[(qy()|0)>>2]=22;vy(b,0);g=0.0}else if((A|0)==173){e=c[H>>2]|0;if(!e){g=+(I|0)*0.0;break}if(((n|0)<0|(n|0)==0&u>>>0<10)&((h|0)==(u|0)&(p|0)==(n|0))?K>>>0>30|(e>>>K|0)==0:0){g=+(I|0)*+(e>>>0);break}b=(J|0)/-2|0;E=((b|0)<0)<<31>>31;if((p|0)>(E|0)|(p|0)==(E|0)&h>>>0>b>>>0){c[(qy()|0)>>2]=34;g=+(I|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}b=J+-106|0;E=((b|0)<0)<<31>>31;if((p|0)<(E|0)|(p|0)==(E|0)&h>>>0<b>>>0){c[(qy()|0)>>2]=34;g=+(I|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(k){if((k|0)<9){n=H+(l<<2)|0;e=c[n>>2]|0;do{e=e*10|0;k=k+1|0}while((k|0)!=9);c[n>>2]=e}l=l+1|0}if((o|0)<9?(o|0)<=(h|0)&(h|0)<18:0){if((h|0)==9){g=+(I|0)*+((c[H>>2]|0)>>>0);break}if((h|0)<9){g=+(I|0)*+((c[H>>2]|0)>>>0)/+(c[90776+(8-h<<2)>>2]|0);break}b=K+27+(_(h,-3)|0)|0;e=c[H>>2]|0;if((b|0)>30|(e>>>b|0)==0){g=+(I|0)*+(e>>>0)*+(c[90776+(h+-10<<2)>>2]|0);break}}e=(h|0)%9|0;if(!e){k=0;e=0}else{u=(h|0)>-1?e:e+9|0;n=c[90776+(8-u<<2)>>2]|0;if(l){o=1e9/(n|0)|0;k=0;e=0;p=0;do{D=H+(p<<2)|0;E=c[D>>2]|0;b=((E>>>0)/(n>>>0)|0)+e|0;c[D>>2]=b;e=_((E>>>0)%(n>>>0)|0,o)|0;b=(p|0)==(k|0)&(b|0)==0;p=p+1|0;h=b?h+-9|0:h;k=b?p&127:k}while((p|0)!=(l|0));if(e){c[H+(l<<2)>>2]=e;l=l+1|0}}else{k=0;l=0}e=0;h=9-u+h|0}i:while(1){v=(h|0)<18;w=(h|0)==18;x=H+(k<<2)|0;do{if(!v){if(!w)break i;if((c[x>>2]|0)>>>0>=9007199){h=18;break i}}n=0;o=l+127|0;while(1){u=o&127;p=H+(u<<2)|0;o=DB(c[p>>2]|0,0,29)|0;o=wB(o|0,C|0,n|0,0)|0;n=C;if(n>>>0>0|(n|0)==0&o>>>0>1e9){b=KB(o|0,n|0,1e9,0)|0;o=LB(o|0,n|0,1e9,0)|0;n=b}else n=0;c[p>>2]=o;b=(u|0)==(k|0);l=(u|0)!=(l+127&127|0)|b?l:(o|0)==0?u:l;if(b)break;else o=u+-1|0}e=e+-29|0}while((n|0)==0);k=k+127&127;if((k|0)==(l|0)){b=l+127&127;l=H+((l+126&127)<<2)|0;c[l>>2]=c[l>>2]|c[H+(b<<2)>>2];l=b}c[H+(k<<2)>>2]=n;h=h+9|0}j:while(1){y=l+1&127;x=H+((l+127&127)<<2)|0;while(1){v=(h|0)==18;w=(h|0)>27?9:1;u=v^1;while(1){o=k&127;p=(o|0)==(l|0);do if(!p){n=c[H+(o<<2)>>2]|0;if(n>>>0<9007199){A=219;break}if(n>>>0>9007199)break;n=k+1&127;if((n|0)==(l|0)){A=219;break}n=c[H+(n<<2)>>2]|0;if(n>>>0<254740991){A=219;break}if(!(n>>>0>254740991|u)){h=o;break j}}else A=219;while(0);if((A|0)==219?(A=0,v):0){A=220;break j}e=e+w|0;if((k|0)==(l|0))k=l;else break}u=(1<<w)+-1|0;v=1e9>>>w;o=k;n=0;p=k;while(1){E=H+(p<<2)|0;b=c[E>>2]|0;k=(b>>>w)+n|0;c[E>>2]=k;n=_(b&u,v)|0;k=(p|0)==(o|0)&(k|0)==0;p=p+1&127;h=k?h+-9|0:h;k=k?p:o;if((p|0)==(l|0))break;else o=k}if(!n)continue;if((y|0)!=(k|0))break;c[x>>2]=c[x>>2]|1}c[H+(l<<2)>>2]=n;l=y}if((A|0)==220)if(p){c[H+(y+-1<<2)>>2]=0;h=l;l=y}else h=o;g=+((c[H+(h<<2)>>2]|0)>>>0);h=k+1&127;if((h|0)==(l|0)){l=k+2&127;c[H+(l+-1<<2)>>2]=0}t=+(I|0);j=t*(g*1.0e9+ +((c[H+(h<<2)>>2]|0)>>>0));v=e+53|0;p=v-J|0;u=(p|0)<(K|0);h=u&1;o=u?((p|0)<0?0:p):K;if((o|0)<53){M=+Fy(+Ny(1.0,105-o|0),j);m=+Hy(j,+Ny(1.0,53-o|0));q=M;g=m;m=M+(j-m)}else{q=0.0;g=0.0;m=j}n=k+2&127;do if((n|0)==(l|0))j=g;else{n=c[H+(n<<2)>>2]|0;do if(n>>>0>=5e8){if(n>>>0>5e8){g=t*.75+g;break}if((k+3&127|0)==(l|0)){g=t*.5+g;break}else{g=t*.75+g;break}}else{if((n|0)==0?(k+3&127|0)==(l|0):0)break;g=t*.25+g}while(0);if((53-o|0)<=1){j=g;break}if(+Hy(g,1.0)!=0.0){j=g;break}j=g+1.0}while(0);g=m+j-q;do if((v&2147483647|0)>(-2-F|0)){if(+N(+g)>=9007199254740992.0){h=u&(o|0)==(p|0)?0:h;e=e+1|0;g=g*.5}if((e+50|0)<=(G|0)?!(j!=0.0&(h|0)!=0):0)break;c[(qy()|0)>>2]=34}while(0);g=+Oy(g,e)}while(0);break a}default:{if(c[D>>2]|0)c[E>>2]=(c[E>>2]|0)+-1;c[(qy()|0)>>2]=22;vy(b,0);g=0.0;break a}}}}while(0);if((A|0)==23){h=(c[D>>2]|0)==0;if(!h)c[E>>2]=(c[E>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[E>>2]=(c[E>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(I|0)*s}while(0);i=L;return +g}function ty(b,e,f,g,h){b=b|0;e=e|0;f=f|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;a:do if(e>>>0>36){c[(qy()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+100|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0}while((Zx(i)|0)!=0);b:do switch(i|0){case 43:case 45:{j=((i|0)==45)<<31>>31;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0;p=j;break b}else{i=wy(b)|0;p=j;break b}}default:p=0}while(0);j=(e|0)==0;do if((e&-17|0)==0&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;if((i|32|0)!=120)if(j){e=8;n=46;break}else{n=32;break}e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=wy(b)|0;if((d[172691+(i+1)>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){vy(b,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=46}}else{e=j?10:e;if((d[172691+(i+1)>>0]|0)>>>0<e>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;vy(b,0);c[(qy()|0)>>2]=22;h=0;g=0;break a}}while(0);if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;while(1){j=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;i=d[e>>0]|0}else i=wy(b)|0;e=i+-48|0;if(!(e>>>0<10&j>>>0<429496729)){e=j;break}else i=j}j=0}else{e=0;j=0}f=i+-48|0;if(f>>>0<10){while(1){k=JB(e|0,j|0,10,0)|0;l=C;m=((f|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&k>>>0>~f>>>0){k=e;break}e=wB(k|0,l|0,f|0,m|0)|0;j=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;f=i+-48|0;if(!(f>>>0<10&(j>>>0<429496729|(j|0)==429496729&e>>>0<2576980378))){k=e;break}}if(f>>>0>9){i=k;e=p}else{e=10;n=72}}else{i=e;e=p}}else n=46;c:do if((n|0)==46){if(!(e+-1&e)){n=a[172948+((e*23|0)>>>5&7)>>0]|0;j=a[172691+(i+1)>>0]|0;f=j&255;if(f>>>0<e>>>0){i=0;while(1){k=f|i<<n;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;j=a[172691+(i+1)>>0]|0;f=j&255;if(!(k>>>0<134217728&f>>>0<e>>>0))break;else i=k}f=0}else{f=0;k=0}l=yB(-1,-1,n|0)|0;m=C;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break}else i=f;while(1){k=DB(k|0,i|0,n|0)|0;f=C;k=j&255|k;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;j=a[172691+(i+1)>>0]|0;if((j&255)>>>0>=e>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=72;break c}else i=f}}j=a[172691+(i+1)>>0]|0;f=j&255;if(f>>>0<e>>>0){i=0;while(1){k=f+(_(i,e)|0)|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;j=a[172691+(i+1)>>0]|0;f=j&255;if(!(k>>>0<119304647&f>>>0<e>>>0))break;else i=k}f=0}else{k=0;f=0}if((j&255)>>>0<e>>>0){n=KB(-1,-1,e|0,0)|0;o=C;m=f;while(1){if(m>>>0>o>>>0|(m|0)==(o|0)&k>>>0>n>>>0){j=m;n=72;break c}f=JB(k|0,m|0,e|0,0)|0;l=C;j=j&255;if(l>>>0>4294967295|(l|0)==-1&f>>>0>~j>>>0){j=m;n=72;break c}k=wB(j|0,0,f|0,l|0)|0;f=C;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0;j=a[172691+(i+1)>>0]|0;if((j&255)>>>0>=e>>>0){j=f;n=72;break}else m=f}}else{j=f;n=72}}while(0);if((n|0)==72)if((d[172691+(i+1)>>0]|0)>>>0<e>>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=wy(b)|0}while((d[172691+(i+1)>>0]|0)>>>0<e>>>0);c[(qy()|0)>>2]=34;j=h;i=g;e=(g&1|0)==0&0==0?p:0}else{i=k;e=p}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(j>>>0<h>>>0|(j|0)==(h|0)&i>>>0<g>>>0)){if(!((g&1|0)!=0|0!=0|(e|0)!=0)){c[(qy()|0)>>2]=34;g=wB(g|0,h|0,-1,-1)|0;h=C;break}if(j>>>0>h>>>0|(j|0)==(h|0)&i>>>0>g>>>0){c[(qy()|0)>>2]=34;break}}g=((e|0)<0)<<31>>31;g=vB(i^e|0,j^g|0,e|0,g|0)|0;h=C}while(0);C=h;return g|0}function uy(b,c){b=b|0;c=c|0;var d=0,e=0;d=0;while(1){a[b+d>>0]=a[172957+d>>0]|0;if((d|0)==14)break;else d=d+1|0}if(!c){a[b+14>>0]=48;a[b+15>>0]=0}else{d=14;e=c;while(1){d=d+1|0;if(e>>>0<10)break;else e=(e>>>0)/10|0}a[b+d>>0]=0;while(1){d=d+-1|0;a[b+d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}}return}function vy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;c[a+104>>2]=b;d=c[a+4>>2]|0;e=c[a+8>>2]|0;f=e-d|0;c[a+108>>2]=f;if((b|0)!=0&(f|0)>(b|0))c[a+100>>2]=d+b;else c[a+100>>2]=e;return}function wy(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;f=b+104|0;i=c[f>>2]|0;if((i|0)!=0?(c[b+108>>2]|0)>=(i|0):0)j=4;else{e=tz(b)|0;if((e|0)>=0){h=c[f>>2]|0;f=b+8|0;if(h){g=c[f>>2]|0;i=c[b+4>>2]|0;f=g;h=h-(c[b+108>>2]|0)+-1|0;if((f-i|0)>(h|0))c[b+100>>2]=i+h;else j=9}else{g=c[f>>2]|0;f=g;j=9}if((j|0)==9)c[b+100>>2]=f;f=c[b+4>>2]|0;if(g){b=b+108|0;c[b>>2]=g+1-f+(c[b>>2]|0)}f=f+-1|0;if((d[f>>0]|0|0)!=(e|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+100>>2]=0;e=-1}return e|0}function xy(a){a=a|0;if(a>>>0>4294963200){c[(qy()|0)>>2]=0-a;a=-1}return a|0}function yy(a,b){a=a|0;b=b|0;return 172972}function zy(a,b){a=+a;b=+b;var c=0.0,d=0.0,e=0.0,f=0.0;c=a*a;d=c*c;e=c*.5;f=1.0-e;return +(f+(1.0-f-e+(c*(c*(c*(c*2.480158728947673e-05+-.001388888888887411)+.0416666666666666)+d*d*(c*(2.087572321298175e-09-c*1.1359647557788195e-11)+-2.7557314351390663e-07))-a*b)))}function Ay(a,b){a=+a;b=b|0;var d=0,e=0.0,f=0.0,g=0,j=0.0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;l=r+16|0;n=r;h[k>>3]=a;d=c[k>>2]|0;g=c[k+4>>2]|0;o=yB(d|0,g|0,63)|0;q=g&2147483647;do if(q>>>0<1074752123)if((g&1048575|0)!=598523){d=(o|0)!=0;if(q>>>0<1073928573)if(d){j=a+1.5707963267341256;m=j+6.077100506506192e-11;h[b>>3]=m;h[b+8>>3]=j-m+6.077100506506192e-11;d=-1;break}else{j=a+-1.5707963267341256;m=j+-6.077100506506192e-11;h[b>>3]=m;h[b+8>>3]=j-m+-6.077100506506192e-11;d=1;break}else if(d){j=a+3.1415926534682512;m=j+1.2154201013012384e-10;h[b>>3]=m;h[b+8>>3]=j-m+1.2154201013012384e-10;d=-2;break}else{j=a+-3.1415926534682512;m=j+-1.2154201013012384e-10;h[b>>3]=m;h[b+8>>3]=j-m+-1.2154201013012384e-10;d=2;break}}else p=21;else{if(q>>>0>=1075594812){if(q>>>0<1094263291){p=21;break}if(q>>>0>2146435071){m=a-a;h[b+8>>3]=m;h[b>>3]=m;d=0;break}c[k>>2]=d;c[k+4>>2]=g&1048575|1096810496;m=+h[k>>3];j=+(~~m|0);h[l>>3]=j;j=(m-j)*16777216.0;m=+(~~j|0);h[l+8>>3]=m;m=(j-m)*16777216.0;h[l+16>>3]=m;if(m==0.0){d=1;while(1)if(+h[l+(d<<3)>>3]==0.0)d=d+-1|0;else break}else d=2;d=By(l,n,(q>>>20)+-1046|0,d+1|0,1)|0;e=+h[n>>3];a=+h[n+8>>3];if(!o){h[b>>3]=e;h[b+8>>3]=a;break}else{h[b>>3]=-e;h[b+8>>3]=-a;d=0-d|0;break}}if(q>>>0<1075183037){if((q|0)==1074977148){p=21;break}if(!o){j=a+-4.712388980202377;m=j+-1.8231301519518578e-10;h[b>>3]=m;h[b+8>>3]=j-m+-1.8231301519518578e-10;d=3;break}else{j=a+4.712388980202377;m=j+1.8231301519518578e-10;h[b>>3]=m;h[b+8>>3]=j-m+1.8231301519518578e-10;d=-3;break}}else{if((q|0)==1075388923){p=21;break}if(!o){j=a+-6.2831853069365025;m=j+-2.430840202602477e-10;h[b>>3]=m;h[b+8>>3]=j-m+-2.430840202602477e-10;d=4;break}else{j=a+6.2831853069365025;m=j+2.430840202602477e-10;h[b>>3]=m;h[b+8>>3]=j-m+2.430840202602477e-10;d=-4;break}}}while(0);if((p|0)==21){m=a*.6366197723675814+6755399441055744.0+-6755399441055744.0;d=~~m;f=a-m*1.5707963267341256;a=m*6.077100506506192e-11;e=f-a;h[b>>3]=e;h[k>>3]=e;p=yB(c[k>>2]|0,c[k+4>>2]|0,52)|0;g=q>>>20;if((g-(p&2047)|0)>16){a=m*6.077100506303966e-11;j=f-a;a=m*2.0222662487959506e-21-(f-j-a);e=j-a;h[b>>3]=e;h[k>>3]=e;q=yB(c[k>>2]|0,c[k+4>>2]|0,52)|0;if((g-(q&2047)|0)>49){a=m*2.0222662487111665e-21;f=j-a;a=m*8.4784276603689e-32-(j-f-a);e=f-a;h[b>>3]=e}else f=j}h[b+8>>3]=f-e-a}i=r;return d|0}function By(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0.0,j=0.0,k=0.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;E=i;i=i+560|0;B=E+480|0;y=E+320|0;D=E+160|0;C=E;A=c[90808+(f<<2)>>2]|0;q=e+-1|0;x=(d+-3|0)/24|0;x=(x|0)<0?0:x;r=(x*24|0)+24|0;l=d-r|0;if((A+q|0)>=0){m=A+e|0;n=0;o=x-q|0;while(1){if((o|0)<0)g=0.0;else g=+(c[90824+(o<<2)>>2]|0);h[y+(n<<3)>>3]=g;n=n+1|0;if((n|0)==(m|0))break;else o=o+1|0}}o=(e|0)<1;p=0;while(1){if(o)g=0.0;else{m=p+q|0;g=0.0;n=0;do{g=g+ +h[a+(n<<3)>>3]*+h[y+(m-n<<3)>>3];n=n+1|0}while((n|0)!=(e|0))}h[C+(p<<3)>>3]=g;if((p|0)<(A|0))p=p+1|0;else break}t=(l|0)>0;u=24-l|0;v=23-l|0;w=(e|0)<1;s=(r|0)==(d|0);m=A;a:while(1){g=+h[C+(m<<3)>>3];p=(m|0)>0;if(p){n=0;o=m;while(1){k=+(~~(g*5.9604644775390625e-08)|0);c[B+(n<<2)>>2]=~~(g-k*16777216.0);d=o;o=o+-1|0;g=k+ +h[C+(o<<3)>>3];if((d|0)<=1)break;else n=n+1|0}}g=+Ny(g,l);g=g-+M(+(g*.125))*8.0;o=~~g;g=g-+(o|0);do if(!t)if(!s)if(!(g>=.5)){n=0;break}else{n=2;z=20;break}else{n=c[B+(m+-1<<2)>>2]>>23;z=19;break}else{d=B+(m+-1<<2)|0;n=c[d>>2]|0;z=n>>u;n=n-(z<<u)|0;c[d>>2]=n;n=n>>v;o=z+o|0;z=19}while(0);if((z|0)==19){z=0;if((n|0)>0)z=20}if((z|0)==20){z=0;o=o+1|0;if(p){p=0;d=0;do{q=B+(d<<2)|0;r=c[q>>2]|0;if(!p)if(!r)p=0;else{c[q>>2]=16777216-r;p=1}else c[q>>2]=16777215-r;d=d+1|0}while((d|0)!=(m|0))}else p=0;b:do if(t)switch(l|0){case 1:{d=B+(m+-1<<2)|0;c[d>>2]=c[d>>2]&8388607;break b}case 2:{d=B+(m+-1<<2)|0;c[d>>2]=c[d>>2]&4194303;break b}default:break b}while(0);if((n|0)==2){g=1.0-g;if(!p)n=2;else{n=2;g=g-+Ny(1.0,l)}}}if(!(g==0.0)){z=44;break}if((m|0)>(A|0)){q=m;p=0;do{q=q+-1|0;p=c[B+(q<<2)>>2]|p}while((q|0)>(A|0));if(p){z=37;break}else n=1}else n=1;while(1)if(!(c[B+(A-n<<2)>>2]|0))n=n+1|0;else break;p=n+m|0;if((n|0)<=0){m=p;continue}while(1){o=m+1|0;m=m+e|0;h[y+(m<<3)>>3]=+(c[90824+(o+x<<2)>>2]|0);if(w)g=0.0;else{g=0.0;n=0;do{g=g+ +h[a+(n<<3)>>3]*+h[y+(m-n<<3)>>3];n=n+1|0}while((n|0)!=(e|0))}h[C+(o<<3)>>3]=g;if((o|0)<(p|0))m=o;else{m=p;continue a}}}do if((z|0)==37){do{l=l+-24|0;m=m+-1|0}while((c[B+(m<<2)>>2]|0)==0);t=m}else if((z|0)==44){g=+Ny(g,0-l|0);if(!(g>=16777216.0)){c[B+(m<<2)>>2]=~~g;t=m;break}else{z=~~(g*5.9604644775390625e-08);c[B+(m<<2)>>2]=~~(g-+(z|0)*16777216.0);t=m+1|0;c[B+(t<<2)>>2]=z;l=l+24|0;break}}while(0);s=(t|0)>-1;if(s){g=+Ny(1.0,l);l=t;while(1){h[C+(l<<3)>>3]=g*+(c[B+(l<<2)>>2]|0);if((l|0)>0){g=g*5.9604644775390625e-08;l=l+-1|0}else break}if(s){p=~A;r=t;d=-1;while(1){l=0-(d>>>0>p>>>0?d:p)|0;q=t-r|0;g=0.0;m=0;do{g=g+ +h[43192+(m<<3)>>3]*+h[C+(m+r<<3)>>3];m=m+1|0}while((m|0)!=(l|0));h[D+(q<<3)>>3]=g;if((r|0)>0){r=r+-1|0;d=d+-1|0}else break}}}c:do switch(f|0){case 0:{if(s){g=0.0;l=t;while(1){g=g+ +h[D+(l<<3)>>3];if((l|0)>0)l=l+-1|0;else break}}else g=0.0;h[b>>3]=(n|0)==0?g:-g;break}case 2:case 1:{if(s){g=0.0;l=t;while(1){g=g+ +h[D+(l<<3)>>3];if((l|0)>0)l=l+-1|0;else break}}else g=0.0;m=(n|0)==0;h[b>>3]=m?g:-g;g=+h[D>>3]-g;if((t|0)>=1){l=1;while(1){g=g+ +h[D+(l<<3)>>3];if((l|0)==(t|0))break;else l=l+1|0}}h[b+8>>3]=m?g:-g;break}case 3:{if((t|0)>0){g=+h[D+(t<<3)>>3];l=t;do{C=l;l=l+-1|0;f=D+(l<<3)|0;k=+h[f>>3];j=g;g=k+g;h[D+(C<<3)>>3]=j+(k-g);h[f>>3]=g}while((C|0)>1);l=(t|0)>1;if(l){g=+h[D+(t<<3)>>3];m=t;do{f=m;m=m+-1|0;C=D+(m<<3)|0;k=+h[C>>3];j=g;g=k+g;h[D+(f<<3)>>3]=j+(k-g);h[C>>3]=g}while((m|0)>1);if(l){g=0.0;l=t;do{g=g+ +h[D+(l<<3)>>3];l=l+-1|0}while((l|0)>1)}else g=0.0}else g=0.0}else g=0.0;k=+h[D>>3];j=+h[D+8>>3];if(!n){h[b>>3]=k;h[b+8>>3]=j;h[b+16>>3]=g;break c}else{h[b>>3]=-k;h[b+8>>3]=-j;h[b+16>>3]=-g;break c}}default:{}}while(0);i=E;return o&7|0}function Cy(a,b,c){a=+a;b=+b;c=c|0;var d=0.0,e=0.0,f=0.0;d=a*a;e=d*(d*d)*(d*1.58969099521155e-10+-2.5050760253406863e-08)+(d*(d*2.7557313707070068e-06+-1.984126982985795e-04)+.00833333333332249);f=d*a;if(!c)d=f*(d*e+-.16666666666666632)+a;else d=a-(f*.16666666666666632+(d*(b*.5-f*e)-b));return +d}function Dy(a){a=+a;var b=0,d=0,e=0.0,f=0.0;h[k>>3]=a;b=c[k+4>>2]|0;d=b&2147483647;do if(d>>>0>2146435071)a=a+a;else{if(d>>>0<1048576){h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;d=b&2147483647;if(!d)break;d=((d>>>0)/3|0)+696219795|0}else d=((d>>>0)/3|0)+715094163|0;c[k>>2]=0;c[k+4>>2]=d|b&-2147483648;f=+h[k>>3];e=f/a*(f*f);h[k>>3]=f*(e*(e*e)*(e*.14599619288661245+-.758397934778766)+(e*(e*1.6214297201053545+-1.8849797954337717)+1.87595182427177));b=wB(c[k>>2]|0,c[k+4>>2]|0,-2147483648,0)|0;d=C;c[k>>2]=b&-1073741824;c[k+4>>2]=d;e=+h[k>>3];a=a/(e*e);a=e+(a-e)/(a+(e+e))*e}while(0);return +a}function Ey(a,b){a=+a;b=+b;var d=0,e=0;h[k>>3]=a;e=c[k>>2]|0;d=c[k+4>>2]|0;h[k>>3]=b;d=c[k+4>>2]&-2147483648|d&2147483647;c[k>>2]=e;c[k+4>>2]=d;return +(+h[k>>3])}function Fy(a,b){a=+a;b=+b;return +(+Ey(a,b))}function Gy(a,b){a=+a;b=+b;var d=0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0,o=0,p=0,q=0;h[k>>3]=a;d=c[k>>2]|0;m=c[k+4>>2]|0;h[k>>3]=b;n=c[k>>2]|0;o=c[k+4>>2]|0;e=yB(d|0,m|0,52)|0;e=e&2047;j=yB(n|0,o|0,52)|0;j=j&2047;p=m&-2147483648;i=DB(n|0,o|0,1)|0;l=C;a:do if(!((i|0)==0&(l|0)==0)?(g=o&2147483647,!(g>>>0>2146435072|(g|0)==2146435072&n>>>0>0|(e|0)==2047)):0){f=DB(d|0,m|0,1)|0;g=C;if(!(g>>>0>l>>>0|(g|0)==(l|0)&f>>>0>i>>>0))return +((f|0)==(i|0)&(g|0)==(l|0)?a*0.0:a);if(!e){e=DB(d|0,m|0,12)|0;f=C;if((f|0)>-1|(f|0)==-1&e>>>0>4294967295){g=e;e=0;do{e=e+-1|0;g=DB(g|0,f|0,1)|0;f=C}while((f|0)>-1|(f|0)==-1&g>>>0>4294967295)}else e=0;d=DB(d|0,m|0,1-e|0)|0;f=C}else f=m&1048575|1048576;if(!j){g=DB(n|0,o|0,12)|0;i=C;if((i|0)>-1|(i|0)==-1&g>>>0>4294967295){j=0;do{j=j+-1|0;g=DB(g|0,i|0,1)|0;i=C}while((i|0)>-1|(i|0)==-1&g>>>0>4294967295)}else j=0;n=DB(n|0,o|0,1-j|0)|0;m=C}else m=o&1048575|1048576;l=vB(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;b:do if((e|0)>(j|0)){while(1){if(g)if((d|0)==(n|0)&(f|0)==(m|0))break;else{d=l;f=i}d=DB(d|0,f|0,1)|0;f=C;e=e+-1|0;l=vB(d|0,f|0,n|0,m|0)|0;i=C;g=(i|0)>-1|(i|0)==-1&l>>>0>4294967295;if((e|0)<=(j|0))break b}b=a*0.0;break a}while(0);if(g)if((d|0)==(n|0)&(f|0)==(m|0)){b=a*0.0;break}else{f=i;d=l}if(f>>>0<1048576|(f|0)==1048576&d>>>0<0)do{d=DB(d|0,f|0,1)|0;f=C;e=e+-1|0}while(f>>>0<1048576|(f|0)==1048576&d>>>0<0);if((e|0)>0){o=wB(d|0,f|0,0,-1048576)|0;d=C;e=DB(e|0,0,52)|0;d=d|C;e=o|e}else{e=yB(d|0,f|0,1-e|0)|0;d=C}c[k>>2]=e;c[k+4>>2]=d|p;b=+h[k>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function Hy(a,b){a=+a;b=+b;return +(+Gy(a,b))}function Iy(a,b){a=+a;b=b|0;var d=0,e=0,f=0;h[k>>3]=a;d=c[k>>2]|0;e=c[k+4>>2]|0;f=yB(d|0,e|0,52)|0;f=f&2047;switch(f|0){case 0:{if(a!=0.0){a=+Iy(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=f+-1022;c[k>>2]=d;c[k+4>>2]=e&-2146435073|1071644672;a=+h[k>>3]}}return +a}function Jy(a,b){a=+a;b=b|0;return +(+Iy(a,b))}function Ky(a,b){a=+a;b=+b;var d=0.0,e=0,f=0,g=0,i=0,j=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0;h[k>>3]=a;m=c[k>>2]|0;g=c[k+4>>2]|0;h[k>>3]=b;e=c[k>>2]|0;g=g&2147483647;f=c[k+4>>2]&2147483647;i=g>>>0<f>>>0|(g|0)==(f|0)&m>>>0<e>>>0;l=i?e:m;j=i?f:g;e=i?m:e;f=i?g:f;g=yB(l|0,j|0,52)|0;i=yB(e|0,f|0,52)|0;c[k>>2]=l;c[k+4>>2]=j;a=+h[k>>3];c[k>>2]=e;c[k+4>>2]=f;b=+h[k>>3];do if((i|0)!=2047){if(!((e|0)==0&(f|0)==0|(g|0)==2047)){if((g-i|0)>64){a=a+b;break}if(g>>>0<=1533)if(i>>>0<573){a=a*5260135901548373507240989.0e186;b=b*5260135901548373507240989.0e186;d=1.90109156629516e-211}else d=1.0;else{a=a*1.90109156629516e-211;b=b*1.90109156629516e-211;d=5260135901548373507240989.0e186}o=a*134217729.0;o=o+(a-o);n=a-o;a=a*a;q=b*134217729.0;q=q+(b-q);p=b-q;b=b*b;a=d*+O(+(a+(b+(p*p+(q*q-b+q*2.0*p)+(n*n+(o*o-a+o*2.0*n))))))}}else a=b;while(0);return +a}function Ly(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){if((d|0)==0&(b&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;m=+h[k>>3]+-1.0;a=m*(m*.5);j=m/(m+2.0);l=j*j;i=l*l;h[k>>3]=m-a;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=j*(a+(i*(i*(i*.15313837699209373+.22222198432149784)+.3999999999940942)+l*(i*(i*(i*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))+(m-g-a);m=g*.4342944818781689;i=+(d+(f>>>20)|0);l=i*.30102999566361177;j=l+m;a=j+(m+(l-j)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function My(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){if((d|0)==0&(b&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;l=+h[k>>3]+-1.0;a=l*(l*.5);m=l/(l+2.0);i=m*m;j=i*i;h[k>>3]=l-a;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=m*(a+(j*(j*(j*.15313837699209373+.22222198432149784)+.3999999999940942)+i*(j*(j*(j*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))+(l-g-a);l=g*1.4426950407214463;j=+(d+(f>>>20)|0);i=j+l;a=i+(l+(j-i)+(a*1.4426950407214463+(g+a)*1.6751713164886512e-10))}return +a}function Ny(a,b){a=+a;b=b|0;var d=0;if((b|0)>1023){a=a*8988465674311579538646525.0e283;d=b+-1023|0;if((d|0)>1023){d=b+-2046|0;d=(d|0)>1023?1023:d;a=a*8988465674311579538646525.0e283}}else if((b|0)<-1022){a=a*2.2250738585072014e-308;d=b+1022|0;if((d|0)<-1022){d=b+2044|0;d=(d|0)<-1022?-1022:d;a=a*2.2250738585072014e-308}}else d=b;d=DB(d+1023|0,0,52)|0;b=C;c[k>>2]=d;c[k+4>>2]=b;return +(a*+h[k>>3])}function Oy(a,b){a=+a;b=b|0;return +(+Ny(a,b))}function Py(a,b,d){a=+a;b=b|0;d=d|0;var e=0.0,f=0,g=0,j=0,l=0;j=i;i=i+16|0;g=j;h[k>>3]=a;f=c[k+4>>2]&2147483647;a:do if(f>>>0<1072243196)if(f>>>0<1044816030){h[b>>3]=a;h[d>>3]=1.0;break}else{h[b>>3]=+Cy(a,0.0,0);h[d>>3]=+zy(a,0.0);break}else{if(f>>>0>2146435071){e=a-a;h[d>>3]=e;h[b>>3]=e;break}f=Ay(a,g)|0;l=g+8|0;e=+Cy(+h[g>>3],+h[l>>3],1);a=+zy(+h[g>>3],+h[l>>3]);switch(f&3|0){case 0:{h[b>>3]=e;h[d>>3]=a;break a}case 1:{h[b>>3]=a;h[d>>3]=-e;break a}case 2:{h[b>>3]=-e;h[d>>3]=-a;break a}default:{h[b>>3]=-a;h[d>>3]=e;break a}}}while(0);i=j;return}function Qy(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;k=i;i=i+32|0;h=k;do if((g&4095|0)==0&(((g|0)<0)<<31>>31&-4096|0)==0){if(b>>>0>2147483646){c[(qy()|0)>>2]=12;f=-1;break}j=(e&16|0)!=0;if(j)bB(-1);c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=d;c[h+12>>2]=e;c[h+16>>2]=f;c[h+20>>2]=g>>12;f=xy(Qa(192,h|0)|0)|0;if(j)cB()}else{c[(qy()|0)>>2]=22;f=-1}while(0);i=k;return f|0}function Ry(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;bB(-1);c[e>>2]=a;c[e+4>>2]=b;a=xy(La(91,e|0)|0)|0;cB();i=d;return a|0}function Sy(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;g=l;j=(f|0)==0?91088:f;f=c[j>>2]|0;a:do if(!d)if(!f)f=0;else k=15;else{h=(b|0)==0?g:b;if(!e)f=-2;else{if(!f){f=a[d>>0]|0;g=f&255;if(f<<24>>24>-1){c[h>>2]=g;f=f<<24>>24!=0&1;break}f=g+-194|0;if(f>>>0>50){k=15;break}f=c[90464+(f<<2)>>2]|0;g=e+-1|0;if(g){d=d+1|0;k=9}}else{g=e;k=9}b:do if((k|0)==9){b=a[d>>0]|0;m=(b&255)>>>3;if((m+-16|m+(f>>26))>>>0>7){k=15;break a}while(1){d=d+1|0;f=(b&255)+-128|f<<6;g=g+-1|0;if((f|0)>=0)break;if(!g)break b;b=a[d>>0]|0;if((b&-64)<<24>>24!=-128){k=15;break a}}c[j>>2]=0;c[h>>2]=f;f=e-g|0;break a}while(0);c[j>>2]=f;f=-2}}while(0);if((k|0)==15){c[j>>2]=0;c[(qy()|0)>>2]=84;f=-1}i=l;return f|0}function Ty(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0;return a&1|0}function Uy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k;a:do if(!e)g=0;else{do if(f){j=(b|0)==0?g:b;g=a[e>>0]|0;b=g&255;if(g<<24>>24>-1){c[j>>2]=b;g=g<<24>>24!=0&1;break a}g=b+-194|0;if(g>>>0<=50){b=e+1|0;h=c[90464+(g<<2)>>2]|0;if(f>>>0<4?(h&-2147483648>>>((f*6|0)+-6|0)|0)!=0:0)break;g=d[b>>0]|0;f=g>>>3;if((f+-16|f+(h>>26))>>>0<=7){g=g+-128|h<<6;if((g|0)>=0){c[j>>2]=g;g=2;break a}b=d[e+2>>0]|0;if((b&192|0)==128){b=b+-128|g<<6;if((b|0)>=0){c[j>>2]=b;g=3;break a}g=d[e+3>>0]|0;if((g&192|0)==128){c[j>>2]=g+-128|b<<6;g=4;break a}}}}}while(0);c[(qy()|0)>>2]=84;g=-1}while(0);i=k;return g|0}function Vy(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(d>>>0<2048){a[b>>0]=d>>>6|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=d>>>12|224;a[b+1>>0]=d>>>6&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=d>>>18|240;a[b+1>>0]=d>>>12&63|128;a[b+2>>0]=d>>>6&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(qy()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function Wy(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Vy(a,b,0)|0;return a|0}function Xy(a,c){a=a|0;c=c|0;var d=0,f=0,g=0;g=a+2|0;f=a+4|0;d=JB((e[c+2>>1]|0)<<16|(e[c>>1]|0)|0,e[c+4>>1]|0|0,(e[g>>1]|0)<<16|(e[a>>1]|0)|0,e[f>>1]|0|0)|0;c=wB(d|0,C|0,e[c+6>>1]|0|0,0)|0;d=C;b[a>>1]=c;a=yB(c|0,d|0,16)|0;b[g>>1]=a;b[f>>1]=d;C=d&65535;return c|0}function Yy(){var a=0,b=0;b=Xy(97208,97214)|0;b=DB(b|0,C|0,4)|0;a=C|1072693248;c[k>>2]=b;c[k+4>>2]=a;return +(+h[k>>3]+-1.0)}function Zy(a){a=a|0;b[48611]=b[48604]|0;b[48612]=b[48605]|0;b[48613]=b[48606]|0;b[48604]=b[a>>1]|0;b[48605]=b[a+2>>1]|0;b[48606]=b[a+4>>1]|0;return 97222}function _y(a){a=a|0;var c=0,d=0;c=i;i=i+16|0;d=c;b[d>>1]=13070;b[d+2>>1]=a;b[d+4>>1]=a>>>16;Zy(d)|0;i=c;return}function $y(a,b,d){a=a|0;b=b|0;d=d|0;var 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,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+80|0;B=J+68|0;A=J+64|0;C=J+60|0;z=J+56|0;w=J+52|0;u=J+48|0;v=J+44|0;j=J;G=oB(20)|0;a:do if(!G)b=12;else{I=oB(2048)|0;H=G+16|0;c[H>>2]=I;if(!I){pB(G);b=12;break}c[G>>2]=512;c[G+4>>2]=10240;c[G+8>>2]=128;y=G+12|0;c[y>>2]=0;I=cz(0,0)|0;if(!I){pB(c[H>>2]|0);pB(G);b=12;break}e=j;f=e+44|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[j>>2]=I;c[j+4>>2]=G;c[j+12>>2]=b;c[j+36>>2]=d;e=j+28|0;c[e>>2]=-1;b=EA(j)|0;b:do if(!b){h=j+20|0;g=c[h>>2]|0;b=g+-1|0;c[a>>2]=b;x=c[j+8>>2]|0;f=c[e>>2]|0;if((f|0)>-1?(c[j+32>>2]|0)!=0:0){g=0;b=2;f=0;e=0;break}if((f|0)<=(b|0)){e=qB(1,68)|0;if(e){E=f>>>31;c[e+60>>2]=E^1;c[e+64>>2]=c[j+32>>2];c[e+28>>2]=g;if((d&8|0)==0|(E|0)!=1){b=FA(0,G,x,e)|0;if(b){g=0;f=0;break}g=c[e+40>>2]|0;if((g|0)>0){b=(g<<2)+4|0;f=oB(b)|0;if(!f){g=0;b=12;f=0;break}c[e+32>>2]=f;CB(f|0,-1,b|0)|0}else f=0;E=qB(g<<1|1,4)|0;c[e+36>>2]=E;if(!E){g=0;b=12;f=0;break}b=qB(c[h>>2]|0,12)|0;if(!b){g=0;b=12;f=0;break}c[e+16>>2]=b;b=FA(I,G,x,e)|0;if(b){g=0;f=0;break}}else f=0;E=j+24|0;t=c[y>>2]|0;c[C>>2]=0;c[z>>2]=0;c[A>>2]=x;c[B>>2]=c[A>>2];b=GA(G,B)|0;c:do if(!b){c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b){b=c[y>>2]|0;d:do if((b|0)>(t|0)){h=0;s=0;j=0;while(1){q=b+-1|0;c[y>>2]=q;g=c[H>>2]|0;q=c[g+(q<<2)>>2]|0;r=b+-2|0;c[y>>2]=r;r=c[g+(r<<2)>>2]|0;e:do switch(q|0){case 0:{switch(c[r>>2]|0){case 0:{b=c[r+4>>2]|0;r=c[b>>2]|0;if(!((r|0)>-1|(r|0)==-4)){g=s;break e}r=b+8|0;b=(c[r>>2]|0)+h|0;c[r>>2]=b;if((b|0)<=(c[z>>2]|0)){g=s;break e}c[z>>2]=b;g=s;break e}case 3:{g=c[r+4>>2]|0;c[A>>2]=c[g+4>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=c[g>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;break}case 1:{g=c[r+4>>2]|0;c[A>>2]=c[g+4>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=c[g>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;break}case 2:{g=c[r+4>>2]|0;c[A>>2]=h;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=r;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=1;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=c[g>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break d;if((c[g+4>>2]|0)<=1?(c[g+8>>2]|0)<=1:0)b=h;else{c[C>>2]=0;b=0}h=b;g=s+1|0;break e}default:{g=s;break e}}if(!b)g=s;else break d;break}case 1:{p=r+4|0;n=c[p>>2]|0;q=b+-3|0;c[y>>2]=q;q=c[g+(q<<2)>>2]|0;c[C>>2]=q;l=n+4|0;b=c[l>>2]|0;if((b|0)<=1)if((c[n+8>>2]|0)>1){c[w>>2]=0;if((b|0)>0){m=n;D=50}else{m=n;h=q;o=0;D=56}}else h=q;else{c[w>>2]=0;m=n;D=50}f:do if((D|0)==50){D=0;b=HA(I,G,c[m>>2]|0,(b|0)>1?1:2,C,f,u,z)|0;if(!b){k=1;h=q;g=0}else break c;while(1){b=c[u>>2]|0;if(!g)g=b;else g=IA(I,g,b)|0;if(!g){b=12;break c}b=c[l>>2]|0;if((k|0)>=(b|0)){o=g;D=56;break f}h=c[C>>2]|0;k=k+1|0;b=HA(I,G,c[m>>2]|0,(k|0)<(b|0)?1:2,C,f,u,z)|0;if(b)break c}}while(0);if((D|0)==56){D=0;l=n+8|0;g=c[l>>2]|0;do if((g|0)==-1){h=c[C>>2]|0;b=HA(I,G,c[m>>2]|0,0,C,0,w,z)|0;if(b)break c;b=JA(I,c[w>>2]|0,0,-1,0)|0;c[w>>2]=b;if(!b){b=12;break c}}else{if((b|0)<(g|0)){g=0;k=b}else{b=0;break}while(1){h=c[C>>2]|0;b=HA(I,G,c[m>>2]|0,0,C,0,v,z)|0;if(b)break c;if(!g){b=c[v>>2]|0;c[w>>2]=b}else{b=IA(I,c[v>>2]|0,g)|0;c[w>>2]=b}if(!b){b=12;break c}g=KA(I,0,20)|0;if(!g){b=12;break c}n=c[g+4>>2]|0;c[n>>2]=-1;c[n+4>>2]=-1;c[n+8>>2]=-1;b=LA(I,g,b)|0;c[w>>2]=b;k=k+1|0;if(!b){b=12;break c}if((k|0)>=(c[l>>2]|0))break;else g=b}}while(0);c[C>>2]=h;do if(!o)D=71;else{if(!b){b=o;break}b=IA(I,o,b)|0;D=71}while(0);if((D|0)==71){D=0;if(!b){b=12;break c}}c[p>>2]=c[b+4>>2];c[r>>2]=c[b>>2]}g=s+-1|0;b=h-q+j|0;if(!g){c[C>>2]=b;h=b;g=0;j=b}else j=b;break}default:g=s}while(0);b=c[y>>2]|0;if((b|0)<=(t|0)){b=0;break d}else s=g}}else{j=0;b=0}while(0);w=(c[E>>2]|0)+j|0;v=c[z>>2]|0;c[E>>2]=(v|0)>(w|0)?v:w}}while(0);if(!b){b=c[E>>2]|0;c[E>>2]=b+1;f=KA(I,0,20)|0;if((f|0)!=0?(F=c[f+4>>2]|0,c[F>>2]=0,c[F+4>>2]=0,c[F+8>>2]=b,F=IA(I,x,f)|0,(F|0)!=0):0){l=c[y>>2]|0;c[A>>2]=F;c[B>>2]=c[A>>2];b=GA(G,B)|0;g:do if(!b){c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b){b=c[y>>2]|0;h:do if((b|0)>(l|0)){i:while(1){x=b+-1|0;c[y>>2]=x;w=c[H>>2]|0;x=c[w+(x<<2)>>2]|0;k=b+-2|0;c[y>>2]=k;k=c[w+(k<<2)>>2]|0;j:do switch(x|0){case 0:switch(c[k>>2]|0){case 0:{h=c[k+4>>2]|0;g=c[h>>2]|0;if((g|0)==-4){c[k+8>>2]=0;b=h+8|0;x=MA(I,c[b>>2]|0,0,1114111,0,0,-1)|0;c[k+24>>2]=x;if(!x){b=12;break g}x=MA(I,c[b>>2]|0,0,1114111,0,0,c[h+4>>2]|0)|0;c[k+28>>2]=x;if(!x){b=12;break g}else break j}b=k+8|0;if((g|0)<0){c[b>>2]=1;x=NA(I)|0;c[k+24>>2]=x;if(!x){b=12;break g}x=NA(I)|0;c[k+28>>2]=x;if(!x){b=12;break g}else break j}else{c[b>>2]=0;b=h+8|0;f=h+4|0;x=MA(I,c[b>>2]|0,g,c[f>>2]|0,0,0,-1)|0;c[k+24>>2]=x;if(!x){b=12;break g}x=MA(I,c[b>>2]|0,c[h>>2]|0,c[f>>2]|0,c[h+12>>2]|0,c[h+16>>2]|0,-1)|0;c[k+28>>2]=x;if(!x){b=12;break g}else break j}}case 3:{c[A>>2]=k;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=1;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;f=k+4|0;c[A>>2]=c[(c[f>>2]|0)+4>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=c[c[f>>2]>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b)break j;else break g}case 1:{c[A>>2]=k;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=2;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;f=k+4|0;c[A>>2]=c[(c[f>>2]|0)+4>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=c[c[f>>2]>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b)break j;else break g}case 2:{c[A>>2]=k;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=3;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=c[c[k+4>>2]>>2];c[B>>2]=c[A>>2];b=GA(G,B)|0;if(b)break g;c[A>>2]=0;c[B>>2]=c[A>>2];b=GA(G,B)|0;if(!b)break j;else break g}default:break j}case 1:{b=c[k+4>>2]|0;f=c[b>>2]|0;g=b+4|0;h=c[g>>2]|0;if(!(c[f+8>>2]|0))j=(c[h+8>>2]|0)!=0;else j=1;c[k+8>>2]=j&1;x=OA(I,c[f+24>>2]|0,c[h+24>>2]|0,0,0)|0;c[k+24>>2]=x;if(!x){b=12;break g}x=OA(I,c[(c[b>>2]|0)+28>>2]|0,c[(c[g>>2]|0)+28>>2]|0,0,0)|0;c[k+28>>2]=x;if(!x){b=12;break g}break}case 3:{x=c[k+4>>2]|0;b=c[x>>2]|0;do if(!(c[x+4>>2]|0))D=116;else{if(c[b+8>>2]|0){D=116;break}c[k+8>>2]=0}while(0);if((D|0)==116){D=0;c[k+8>>2]=1}c[k+24>>2]=c[b+24>>2];c[k+28>>2]=c[b+28>>2];break}case 2:{h=c[k+4>>2]|0;b=c[h>>2]|0;f=b+8|0;if(!(c[f>>2]|0))g=0;else g=(c[(c[h+4>>2]|0)+8>>2]|0)!=0;c[k+8>>2]=g&1;if(c[f>>2]|0){b=PA(G,b,0,0,C)|0;if(b)break g;f=oB((c[C>>2]<<2)+4|0)|0;if(!f){b=12;break g}c[f>>2]=-1;c[z>>2]=0;b=PA(G,c[h>>2]|0,f,z,0)|0;if(b){D=125;break i}b=h+4|0;x=k+24|0;c[x>>2]=OA(I,c[(c[b>>2]|0)+24>>2]|0,c[(c[h>>2]|0)+24>>2]|0,f,c[z>>2]|0)|0;pB(f);if(!(c[x>>2]|0)){b=12;break g}else g=b}else{c[k+24>>2]=c[b+24>>2];g=h+4|0}b=c[g>>2]|0;if(!(c[b+8>>2]|0)){c[k+28>>2]=c[b+28>>2];break j}b=PA(G,b,0,0,C)|0;if(b)break g;f=oB((c[C>>2]<<2)+4|0)|0;if(!f){b=12;break g}c[f>>2]=-1;c[z>>2]=0;b=PA(G,c[g>>2]|0,f,z,0)|0;if(b){D=132;break i}x=k+28|0;c[x>>2]=OA(I,c[(c[h>>2]|0)+28>>2]|0,c[(c[g>>2]|0)+28>>2]|0,f,c[z>>2]|0)|0;pB(f);if(!(c[x>>2]|0)){b=12;break g}break}default:{}}while(0);b=c[y>>2]|0;if((b|0)<=(l|0))break h}if((D|0)==125){pB(f);break g}else if((D|0)==132){pB(f);break g}}while(0);g=c[E>>2]|0;b=g<<2;r=oB(b)|0;if(!r){g=r;b=12;f=0;break b}f=oB(b)|0;if(!f){g=r;b=12;break b}if((g|0)>0)CB(r|0,0,((g|0)>1?g<<2:4)|0)|0;QA(F,0,r,0)|0;g=c[E>>2]|0;if((g|0)>0){b=0;h=0;do{c[f+(h<<2)>>2]=b;D=r+(h<<2)|0;b=b+1+(c[D>>2]|0)|0;c[D>>2]=0;h=h+1|0}while((h|0)<(g|0));q=b}else q=0;o=qB(q+1|0,32)|0;if(!o){g=r;b=12;break b}c[e>>2]=o;p=e+4|0;c[p>>2]=q;b=QA(F,o,r,f)|0;if(b){g=r;break b}c[e+20>>2]=0;h=F+24|0;b=0;g=c[h>>2]|0;while(1){b=b+1|0;if((c[g>>2]|0)>-1)g=g+32|0;else break}n=qB(b,32)|0;if(!n){g=r;b=12;break b}c[e+8>>2]=n;g=c[h>>2]|0;b=c[g>>2]|0;if((b|0)>-1){h=b;b=0;do{c[n+(b<<5)+8>>2]=o+(c[f+(h<<2)>>2]<<5);c[n+(b<<5)+12>>2]=h;l=n+(b<<5)+16|0;c[l>>2]=0;m=g+12|0;j=c[m>>2]|0;if(j){k=0;while(1){h=k+1|0;if((c[j+(k<<2)>>2]|0)>-1)k=h;else break}h=h<<2;j=oB(h)|0;c[l>>2]=j;if(!j){g=r;b=12;break b}AB(j|0,c[m>>2]|0,h|0)|0}c[n+(b<<5)+20>>2]=c[g+16>>2];b=b+1|0;g=g+32|0;h=c[g>>2]|0}while((h|0)>-1)}else b=0;c[n+(b<<5)+8>>2]=0;c[p>>2]=q;c[e+12>>2]=o+(c[f+(c[c[F+28>>2]>>2]<<2)>>2]<<5);c[e+52>>2]=c[E>>2];c[e+56>>2]=d;dz(I);pB(c[H>>2]|0);pB(G);pB(r);pB(f);c[a+4>>2]=e;b=0;break a}}while(0);g=0;f=0}else{g=0;b=12;f=0}}else{g=0;f=0}}else{g=0;b=12;f=0}}else{g=0;b=6;f=0;e=0}}else{g=0;f=0;e=0}while(0);dz(I);pB(c[H>>2]|0);pB(G);if(g)pB(g);if(f)pB(f);c[a+4>>2]=e;az(a)}while(0);i=J;return b|0}function az(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=c[a+4>>2]|0;if(g){e=g+4|0;a=c[g>>2]|0;if(c[e>>2]|0){d=0;do{if(c[a+(d<<5)+8>>2]|0){b=c[a+(d<<5)+16>>2]|0;if(b){pB(b);a=c[g>>2]|0}b=c[a+(d<<5)+28>>2]|0;if(b){pB(b);a=c[g>>2]|0}}d=d+1|0}while(d>>>0<(c[e>>2]|0)>>>0)}if(a)pB(a);d=g+8|0;a=c[d>>2]|0;if(a){if(c[a+8>>2]|0){while(1){b=c[a+16>>2]|0;if(b)pB(b);if(!(c[a+40>>2]|0))break;else a=a+32|0}a=c[d>>2]|0}pB(a)}e=g+16|0;a=c[e>>2]|0;if(a){f=g+28|0;b=c[f>>2]|0;if(b){d=0;while(1){a=c[a+(d*12|0)+8>>2]|0;if(a){pB(a);b=c[f>>2]|0}d=d+1|0;if(d>>>0>=b>>>0)break;a=c[e>>2]|0}a=c[e>>2]|0}pB(a)}a=c[g+32>>2]|0;if(a)pB(a);a=c[g+20>>2]|0;if(a)pB(a);a=c[g+36>>2]|0;if(a)pB(a);pB(g)}return}function bz(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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,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;X=i;i=i+16|0;R=X;V=c[a+4>>2]|0;W=V+56|0;U=(c[W>>2]&8|0)==0?d:0;M=V+40|0;a=c[M>>2]|0;if((a|0)>0&(U|0)!=0){a=oB(a<<2)|0;if(!a)a=12;else{T=a;S=3}}else{T=0;S=3}if((S|0)==3){if(!(c[V+60>>2]|0)){c[R>>2]=0;k=f&1;P=f&2;j=c[W>>2]&4;if(!T)O=0;else O=c[M>>2]|0;N=O<<2;h=c[V+52>>2]|0;f=h<<3;d=f+8|0;a=N+12+f+(d+(_(N,h)|0)<<1)|0;Q=oB(a)|0;if(!Q){a=12;d=0}else{CB(Q|0,0,a|0)|0;a=Q+N&3;a=((a|0)==0?0:4-a|0)+N|0;m=Q+a|0;a=a+d|0;l=Q+a&3;a=((l|0)==0?0:4-l|0)+a|0;l=Q+a|0;a=a+d|0;M=Q+a&3;a=((M|0)==0?0:4-M|0)+a|0;M=Q+a|0;a=a+f|0;d=Q+a&3;if((h|0)>0){f=O<<3;g=0;a=Q+(((d|0)==0?0:4-d|0)+a)|0;while(1){c[l+(g<<3)+4>>2]=a;c[m+(g<<3)+4>>2]=a+N;g=g+1|0;if((g|0)==(h|0)){a=0;break}else a=a+f|0}do{c[M+(a<<3)>>2]=-1;a=a+1|0}while((a|0)!=(h|0))}a=Uy(R,b,4)|0;if((a|0)<1)if((a|0)<0){d=0;a=1}else{h=1;S=198}else{h=a;S=198}a:do if((S|0)==198){L=V+8|0;K=(j|0)!=0;D=(k|0)!=0;E=(O|0)>0;F=V+12|0;G=V+44|0;H=V+32|0;I=V+36|0;J=(O|0)==0;C=E^1;a=-1;g=0;v=0;f=h;d=0;y=l;w=m;k=m;u=b+h|0;B=Q;while(1){if((a|0)<0){j=c[L>>2]|0;h=j+8|0;b:do if(!(c[h>>2]|0))d=k;else{p=(v|0)!=0;q=(d|0)==95;r=(v|0)==0;t=K&(d|0)==10;s=(D|(v|0)>0)^1;o=k;while(1){c:while(1){n=j+12|0;if((c[M+(c[n>>2]<<3)>>2]|0)>=(v|0)){k=o;break}m=j+20|0;k=c[m>>2]|0;if(!k){m=n;S=233;break}d:do if(t|((k&1|0)==0|s)){if((k&2|0)!=0?(b=c[R>>2]|0,!((b|P|0)==0|K&(b|0)==10)):0)break;do if(k&16){if(q)break d;if($x(d)|0)break d;k=c[R>>2]|0;if((k|0)==95)break;if(!($x(k)|0))break d}while(0);k=c[m>>2]|0;if(k&32){if(q){k=c[R>>2]|0;if((k|0)==95)break}else{b=($x(d)|0)==0;k=c[R>>2]|0;if(b|(k|0)==95)break}if($x(k)|0)break;k=c[m>>2]|0}l=c[R>>2]|0;do if((l|0)!=0&(p&(k&64|0)!=0)){if(q)k=1;else{k=($x(d)|0)!=0;l=c[R>>2]|0}if((l|0)==95)if(k)break d;else break;else if(k^($x(l)|0)!=0)break;else break d}while(0);if(!(c[m>>2]&128)){m=n;S=233;break c}k=c[R>>2]|0;if(r|(k|0)==0)break;if(q)l=1;else{l=($x(d)|0)!=0;k=c[R>>2]|0}if((k|0)==95)if(l){m=n;S=233;break c}else break;else if(l^($x(k)|0)!=0)break;else{m=n;S=233;break c}}while(0);h=j+40|0;if(!(c[h>>2]|0)){d=o;break b}else j=j+32|0}if((S|0)==233){S=0;c[o>>2]=c[h>>2];if(E)CB(c[o+4>>2]|0,-1,N|0)|0;k=c[j+16>>2]|0;do if(k){h=c[k>>2]|0;if((h|0)<=-1)break;l=o+4|0;do{if((h|0)<(O|0))c[(c[l>>2]|0)+(h<<2)>>2]=v;k=k+4|0;h=c[k>>2]|0}while((h|0)>-1)}while(0);h=(c[o>>2]|0)!=(c[F>>2]|0);if(h|C){k=o+4|0;a=h?a:v;g=h?g:1}else{a=o+4|0;g=c[a>>2]|0;h=0;do{c[T+(h<<2)>>2]=c[g+(h<<2)>>2];h=h+1|0}while((h|0)!=(O|0));k=a;a=v;g=1}b=c[m>>2]|0;c[M+(b<<3)>>2]=v;c[M+(b<<3)+4>>2]=k;k=o+8|0}h=j+40|0;if(!(c[h>>2]|0)){d=k;break}else{o=k;j=j+32|0}}}while(0);c[d>>2]=0;d=c[R>>2]|0;if(!d)break}else{if(J)break;d=c[R>>2]|0;if(!((k|0)!=(w|0)&(d|0)!=0))break}z=v+f|0;f=Uy(R,u,4)|0;if((f|0)<1)if((f|0)<0){d=0;a=1;break a}else f=1;A=u+f|0;if((g|0)!=0&(c[G>>2]|0)!=0){if(!(c[w>>2]|0))g=y;else{n=c[I>>2]|0;o=c[n>>2]|0;p=(o|0)>-1;q=w;g=y;do{m=q+4|0;e:do if(p){k=o;l=0;do{j=c[n+((l|1)<<2)>>2]|0;if((k|0)>=(O|0))break e;h=c[m>>2]|0;if((c[h+(j<<2)>>2]|0)==(c[T+(j<<2)>>2]|0)?(c[h+(k<<2)>>2]|0)<(c[T+(k<<2)>>2]|0):0)break e;l=l+2|0;k=c[n+(l<<2)>>2]|0}while((k|0)>-1);j=m;S=262}else{j=m;h=c[m>>2]|0;S=262}while(0);if((S|0)==262){S=0;c[g>>2]=c[q>>2];x=g+4|0;b=c[x>>2]|0;c[x>>2]=h;c[j>>2]=b;g=g+8|0}q=q+8|0}while((c[q>>2]|0)!=0)}c[g>>2]=0;g=0;x=y}else{x=w;w=y}h=c[x>>2]|0;if(!h){h=w;j=B}else{r=(z|0)!=0;s=(d|0)==95;t=(z|0)==0;v=K&(d|0)==10;u=(D|(z|0)>0)^1;q=x;l=w;j=B;while(1){k=h+8|0;if(!(c[k>>2]|0))k=l;else{p=q+4|0;o=l;while(1){f:do if((c[h>>2]|0)>>>0>d>>>0)l=o;else{if((c[h+4>>2]|0)>>>0<d>>>0){l=o;break}n=h+20|0;l=c[n>>2]|0;do if(l){if(!(v|((l&1|0)==0|u))){l=o;break f}if((l&2|0)!=0?(b=c[R>>2]|0,!((b|P|0)==0|K&(b|0)==10)):0){l=o;break f}do if(l&16){if(s){l=o;break f}if($x(d)|0){l=o;break f}l=c[R>>2]|0;if((l|0)==95)break;if(!($x(l)|0)){l=o;break f}}while(0);l=c[n>>2]|0;if(l&32){if(s){l=c[R>>2]|0;if((l|0)==95){l=o;break f}}else{b=($x(d)|0)==0;l=c[R>>2]|0;if(b|(l|0)==95){l=o;break f}}if($x(l)|0){l=o;break f}l=c[n>>2]|0}m=c[R>>2]|0;do if((m|0)!=0&(r&(l&64|0)!=0)){if(s)l=1;else{l=($x(d)|0)!=0;m=c[R>>2]|0}if((m|0)==95)if(l){l=o;break f}else break;else if(l^($x(m)|0)!=0)break;else{l=o;break f}}while(0);do if(c[n>>2]&128){l=c[R>>2]|0;if(t|(l|0)==0){l=o;break f}if(s)m=1;else{m=($x(d)|0)!=0;l=c[R>>2]|0}if((l|0)==95)if(m)break;else{l=o;break f}else if(m^($x(l)|0)!=0){l=o;break f}else break}while(0);l=c[n>>2]|0;do if(l&4){if(c[W>>2]&2)break;if(!(dy(d,c[h+24>>2]|0)|0)){l=o;break f}l=c[n>>2]|0}while(0);do if(l&4){if(!(c[W>>2]&2))break;b=py(d)|0;l=h+24|0;if(dy(b,c[l>>2]|0)|0)break;b=oy(d)|0;if(!(dy(b,c[l>>2]|0)|0)){l=o;break f}}while(0);if(!(c[n>>2]&8))break;if(TA(c[h+28>>2]|0,d,c[W>>2]&2)|0){l=o;break f}}while(0);if(E){l=c[p>>2]|0;m=0;do{c[j+(m<<2)>>2]=c[l+(m<<2)>>2];m=m+1|0}while((m|0)!=(O|0))}m=c[h+16>>2]|0;do if(m){l=c[m>>2]|0;if((l|0)<=-1)break;do{if((l|0)<(O|0))c[j+(l<<2)>>2]=z;m=m+4|0;l=c[m>>2]|0}while((l|0)>-1)}while(0);l=c[h+12>>2]|0;m=M+(l<<3)|0;if((c[m>>2]|0)>=(z|0)){l=c[M+(l<<3)+4>>2]|0;m=c[l>>2]|0;if(!(RA(O,c[H>>2]|0,j,m)|0)){l=o;break}c[l>>2]=j;if((c[k>>2]|0)!=(c[F>>2]|0)){l=o;j=m;break}if(E)a=0;else{a=z;g=1;l=o;j=m;break}while(1){c[T+(a<<2)>>2]=c[j+(a<<2)>>2];a=a+1|0;if((a|0)==(O|0)){a=z;g=1;l=o;j=m;break f}}}b=c[k>>2]|0;c[o>>2]=b;B=o+4|0;k=c[B>>2]|0;c[B>>2]=j;c[m>>2]=z;c[M+(l<<3)+4>>2]=B;do if((b|0)==(c[F>>2]|0)){if((a|0)==-1)if(E)a=0;else{a=z;g=1;break}else{if(!E)break;if((c[j>>2]|0)>(c[T>>2]|0))break;else a=0}do{c[T+(a<<2)>>2]=c[j+(a<<2)>>2];a=a+1|0}while((a|0)!=(O|0));a=z;g=1}while(0);l=o+8|0;j=k}while(0);k=h+40|0;if(!(c[k>>2]|0)){k=l;break}else{o=l;h=h+32|0}}}q=q+8|0;h=c[q>>2]|0;if(!h){h=k;break}else l=k}}c[h>>2]=0;v=z;y=x;k=h;u=A;B=j}d=a;a=a>>>31}while(0);pB(Q)}}else{c[R>>2]=0;k=f&1;K=f&2;d=c[W>>2]&4;L=cz(0,0)|0;g:do if(L){l=ez(L,0,0,0,32)|0;if(!l){dz(L);a=12;d=0;break}c[l+24>>2]=0;c[l+28>>2]=0;j=c[M>>2]|0;if(j){f=oB(j<<2)|0;if(!f){d=0;h=0;a=12;g=0}else S=9}else{f=0;S=9}h:do if((S|0)==9){a=c[V+28>>2]|0;if(a){h=oB(a<<3)|0;if(!h){d=0;a=12;g=0;break}}else h=0;J=V+52|0;a=c[J>>2]|0;if(a){g=oB(a<<2)|0;if(!g){d=0;a=12;break}}else g=0;E=V+8|0;F=V+12|0;G=(T|0)==0;H=(T|0)!=0;I=V+32|0;D=(d|0)!=0;C=(k|0)!=0;x=0;a=-1;d=1;m=-1;n=b;i:while(1){if((j|0)>0){k=0;do{c[f+(k<<2)>>2]=-1;if(!G){c[T+(k<<2)>>2]=-1;j=c[M>>2]|0}k=k+1|0}while((k|0)<(j|0))}j=c[J>>2]|0;if((j|0)>0)CB(g|0,0,((j|0)>1?j<<2:4)|0)|0;B=d+m|0;d=Uy(R,n,4)|0;if((d|0)<1)if((d|0)<0){d=0;a=1;break h}else d=1;n=n+d|0;A=c[R>>2]|0;o=c[E>>2]|0;j=o+8|0;if(c[j>>2]|0){s=(B|0)!=0;t=(x|0)==95;u=(B|0)==0;w=D&(x|0)==10;v=(C|(B|0)>0)^1;k=0;m=0;r=o;while(1){q=r+20|0;o=c[q>>2]|0;j:do if(o){if(!(w|((o&1|0)==0|v)))break;if((o&2|0)!=0?(Q=c[R>>2]|0,!((Q|K|0)==0|D&(Q|0)==10)):0)break;do if(o&16){if(t)break j;if($x(x)|0)break j;o=c[R>>2]|0;if((o|0)==95)break;if(!($x(o)|0))break j}while(0);o=c[q>>2]|0;if(o&32){if(t){o=c[R>>2]|0;if((o|0)==95)break}else{Q=($x(x)|0)==0;o=c[R>>2]|0;if(Q|(o|0)==95)break}if($x(o)|0)break;o=c[q>>2]|0}p=c[R>>2]|0;do if((p|0)!=0&(s&(o&64|0)!=0)){if(t)o=1;else{o=($x(x)|0)!=0;p=c[R>>2]|0}if((p|0)==95)if(o)break j;else break;else if(o^($x(p)|0)!=0)break;else break j}while(0);if(!(c[q>>2]&128)){S=52;break}o=c[R>>2]|0;if(u|(o|0)==0)break;if(t)p=1;else{p=($x(x)|0)!=0;o=c[R>>2]|0}if((o|0)==95)if(p){S=52;break}else break;else if(p^($x(o)|0)!=0)break;else{S=52;break}}else S=52;while(0);do if((S|0)==52){S=0;if(!m){k=c[r+16>>2]|0;m=c[j>>2]|0;break}p=l+28|0;o=c[p>>2]|0;if(!o){o=ez(L,0,0,0,32)|0;if(!o){S=56;break i}c[o+24>>2]=l;c[o+28>>2]=0;Q=ez(L,0,0,0,c[M>>2]<<2)|0;c[o+20>>2]=Q;if(!Q){S=63;break i}c[p>>2]=o;l=o}else l=o;c[l>>2]=B;c[l+4>>2]=n;c[l+8>>2]=c[j>>2];c[l+12>>2]=c[r+12>>2];c[l+16>>2]=c[R>>2];if((c[M>>2]|0)>0){j=c[l+20>>2]|0;o=0;do{c[j+(o<<2)>>2]=c[f+(o<<2)>>2];o=o+1|0}while((o|0)<(c[M>>2]|0))}o=c[r+16>>2]|0;if(!o)break;j=c[o>>2]|0;if((j|0)<=-1)break;p=c[l+20>>2]|0;do{o=o+4|0;c[p+(j<<2)>>2]=B;j=c[o>>2]|0}while((j|0)>-1)}while(0);j=r+40|0;if(!(c[j>>2]|0)){o=l;break}else r=r+32|0}if(k){j=c[k>>2]|0;if((j|0)>-1)do{c[f+(j<<2)>>2]=B;k=k+4|0;j=c[k>>2]|0}while((j|0)>-1)}else k=0;if(!m){l=o;S=173}else{l=B;j=o;o=n}}else{k=0;S=173}k:while(1){if((S|0)==173){S=0;j=c[l+24>>2]|0;if(!j)break;q=c[l+8>>2]|0;if(c[q+20>>2]&256)c[g+(c[l+12>>2]<<2)>>2]=0;p=c[l>>2]|0;r=c[l+4>>2]|0;c[R>>2]=c[l+16>>2];o=c[M>>2]|0;if((o|0)<=0){l=p;m=q;o=r;continue}m=c[l+20>>2]|0;l=0;while(1){c[f+(l<<2)>>2]=c[m+(l<<2)>>2];l=l+1|0;if((l|0)==(o|0)){l=p;m=q;o=r;continue k}}}if((m|0)!=(c[F>>2]|0)){r=d;s=m;while(1){q=s+8|0;do if(!(c[q>>2]|0))S=97;else{if(!(c[s+20>>2]&256)){S=97;break}m=c[s+24>>2]|0;SA(m+1|0,h,c[W>>2]&-9,V,f,l);d=c[h+(m<<3)>>2]|0;m=c[h+(m<<3)+4>>2]|0;p=m-d|0;if(rA(b+d|0,o+-1|0,p)|0){d=r;l=j;S=173;continue k}Q=(m|0)==(d|0);d=Q&1;m=g+(c[s+12>>2]<<2)|0;if(Q?(c[m>>2]|0)!=0:0){d=r;l=j;S=173;continue k}c[m>>2]=d;p=p+-1|0;l=p+l|0;m=c[R>>2]|0;d=Uy(R,o+p|0,4)|0;if((d|0)<1)if((d|0)<0){d=0;a=1;break h}else d=1;p=d+p|0}while(0);do if((S|0)==97){S=0;m=c[R>>2]|0;if(!m){d=r;l=j;S=173;continue k}d=Uy(R,o,4)|0;if((d|0)>=1){p=d;break}if((d|0)<0){d=0;a=1;break h}else{p=1;d=1}}while(0);o=o+p|0;l=l+r|0;if(!(c[q>>2]|0)){l=j;S=173;continue k}v=(l|0)!=0;w=(m|0)==95;x=(l|0)==0;z=D&(m|0)==10;y=(C|(l|0)>0)^1;t=q;u=0;while(1){l:do if((c[s>>2]|0)>>>0>m>>>0)p=u;else{if((c[s+4>>2]|0)>>>0<m>>>0){p=u;break}r=s+20|0;p=c[r>>2]|0;do if(p){if(!(z|((p&1|0)==0|y))){p=u;break l}if((p&2|0)!=0?(Q=c[R>>2]|0,!((Q|K|0)==0|D&(Q|0)==10)):0){p=u;break l}do if(p&16){if(w){p=u;break l}if($x(m)|0){p=u;break l}p=c[R>>2]|0;if((p|0)==95)break;if(!($x(p)|0)){p=u;break l}}while(0);p=c[r>>2]|0;if(p&32){if(w){p=c[R>>2]|0;if((p|0)==95){p=u;break l}}else{Q=($x(m)|0)==0;p=c[R>>2]|0;if(Q|(p|0)==95){p=u;break l}}if($x(p)|0){p=u;break l}p=c[r>>2]|0}q=c[R>>2]|0;do if((q|0)!=0&(v&(p&64|0)!=0)){if(w)p=1;else{p=($x(m)|0)!=0;q=c[R>>2]|0}if((q|0)==95)if(p){p=u;break l}else break;else if(p^($x(q)|0)!=0)break;else{p=u;break l}}while(0);do if(c[r>>2]&128){p=c[R>>2]|0;if(x|(p|0)==0){p=u;break l}if(w)q=1;else{q=($x(m)|0)!=0;p=c[R>>2]|0}if((p|0)==95)if(q)break;else{p=u;break l}else if(q^($x(p)|0)!=0){p=u;break l}else break}while(0);p=c[r>>2]|0;do if(p&4){if(c[W>>2]&2)break;if(!(dy(m,c[s+24>>2]|0)|0)){p=u;break l}p=c[r>>2]|0}while(0);do if(p&4){if(!(c[W>>2]&2))break;Q=py(m)|0;p=s+24|0;if(dy(Q,c[p>>2]|0)|0)break;Q=oy(m)|0;if(!(dy(Q,c[p>>2]|0)|0)){p=u;break l}}while(0);if(!(c[r>>2]&8))break;if(TA(c[s+28>>2]|0,m,c[W>>2]&2)|0){p=u;break l}}while(0);if(!u){p=c[t>>2]|0;k=c[s+16>>2]|0;break}q=j+28|0;p=c[q>>2]|0;if(!p){p=ez(L,0,0,0,32)|0;if(!p){S=146;break i}c[p+24>>2]=j;c[p+28>>2]=0;Q=ez(L,0,0,0,c[M>>2]<<2)|0;c[p+20>>2]=Q;if(!Q){S=153;break i}c[q>>2]=p;j=p}else j=p;c[j>>2]=l;c[j+4>>2]=o;c[j+8>>2]=c[t>>2];c[j+12>>2]=c[s+12>>2];c[j+16>>2]=c[R>>2];if((c[M>>2]|0)>0){p=c[j+20>>2]|0;q=0;do{c[p+(q<<2)>>2]=c[f+(q<<2)>>2];q=q+1|0}while((q|0)<(c[M>>2]|0))}q=c[s+16>>2]|0;if(!q){p=u;break}p=c[q>>2]|0;if((p|0)<=-1){p=u;break}r=c[j+20>>2]|0;do{c[r+(p<<2)>>2]=l;q=q+4|0;p=c[q>>2]|0}while((p|0)>-1);p=u}while(0);t=s+40|0;if(!(c[t>>2]|0)){m=j;break}else{u=p;s=s+32|0}}if(!p){l=m;S=173;continue k}do if(!k)k=0;else{j=c[k>>2]|0;if((j|0)<=-1)break;do{k=k+4|0;c[f+(j<<2)>>2]=l;j=c[k>>2]|0}while((j|0)>-1)}while(0);if((p|0)==(c[F>>2]|0)){j=m;break}else{r=d;j=m;s=p}}}if((a|0)>=(l|0)){if(!(H&(a|0)==(l|0))){l=j;S=173;continue}if(!(RA(c[M>>2]|0,c[I>>2]|0,f,T)|0)){l=j;S=173;continue}}if(G){a=l;l=j;S=173;continue}if((c[M>>2]|0)>0)a=0;else{a=l;l=j;S=173;continue}while(1){c[T+(a<<2)>>2]=c[f+(a<<2)>>2];a=a+1|0;if((a|0)>=(c[M>>2]|0)){a=l;l=j;S=173;continue k}}}if((a|0)>-1|(c[R>>2]|0)==0){S=181;break}c[R>>2]=A;j=c[M>>2]|0;x=A;m=B}if((S|0)==56){dz(L);if(f)pB(f);if(h)pB(h);if(!g){a=12;d=0;break g}pB(g);a=12;d=0;break g}else if((S|0)==63){dz(L);if(f)pB(f);if(h)pB(h);if(!g){a=12;d=0;break g}pB(g);a=12;d=0;break g}else if((S|0)==146){dz(L);if(f)pB(f);if(h)pB(h);if(!g){a=12;d=0;break g}pB(g);a=12;d=0;break g}else if((S|0)==153){dz(L);if(f)pB(f);if(h)pB(h);if(!g){a=12;d=0;break g}pB(g);a=12;d=0;break g}else if((S|0)==181){d=a;a=a>>>31;break}}while(0);dz(L);if(f)pB(f);if(h)pB(h);if(g)pB(g)}else{a=12;d=0}while(0)}if(!a)SA(U,e,c[W>>2]|0,V,T,d);if(T)pB(T)}i=X;return a|0}function cz(a,b){a=a|0;b=b|0;if(!a)b=qB(1,24)|0;else{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0}return b|0}function dz(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(b)do{pB(c[b>>2]|0);d=b;b=c[b+4>>2]|0;pB(d)}while((b|0)!=0);pB(a);return}function ez(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;h=a+16|0;a:do if(!(c[h>>2]|0)){j=a+12|0;g=c[j>>2]|0;do if(g>>>0<f>>>0){if(b)if(!d){c[h>>2]=1;d=0;break a}else{h=a+8|0;c[h>>2]=d;c[j>>2]=1024;g=1024;break}g=f<<3;g=g>>>0>1024?g:1024;i=oB(8)|0;if(!i){c[h>>2]=1;d=0;break a}d=oB(g)|0;c[i>>2]=d;if(!d){pB(i);c[h>>2]=1;d=0;break a}c[i+4>>2]=0;b=a+4|0;h=c[b>>2]|0;if(h)c[h+4>>2]=i;if(!(c[a>>2]|0))c[a>>2]=i;c[b>>2]=i;h=a+8|0;c[h>>2]=d;c[j>>2]=g}else{d=a+8|0;h=d;d=c[d>>2]|0}while(0);b=d+f&3;b=((b|0)==0?0:4-b|0)+f|0;c[h>>2]=d+b;c[j>>2]=g-b;if(e)CB(d|0,0,b|0)|0}else d=0;while(0);return d|0}function fz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+64|0;g=h+16|0;f=h+8|0;d=h;e=h+24|0;c[d>>2]=a;c[d+4>>2]=b;d=Ra(197,d|0)|0;if((d|0)==-9?(c[f>>2]=a,c[f+4>>2]=1,(Va(221,f|0)|0)>=0):0){uy(e,a);c[g>>2]=e;c[g+4>>2]=b;d=xy(Sa(195,g|0)|0)|0}else d=xy(d)|0;i=h;return d|0}function gz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+112|0;n=o+40|0;l=o+24|0;k=o+16|0;g=o;m=o+52|0;f=a[d>>0]|0;if(cA(172980,f<<24>>24,4)|0){e=oB(1144)|0;if(!e)e=0;else{h=e;j=h+112|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(j|0));if(!(jA(d,43)|0))c[e>>2]=f<<24>>24==114?8:4;if(jA(d,101)|0){c[g>>2]=b;c[g+4>>2]=2;c[g+8>>2]=1;Va(221,g|0)|0;f=a[d>>0]|0}if(f<<24>>24==97){c[k>>2]=b;c[k+4>>2]=3;f=Va(221,k|0)|0;if(!(f&1024)){c[l>>2]=b;c[l+4>>2]=4;c[l+8>>2]=f|1024;Va(221,l|0)|0}d=c[e>>2]|128;c[e>>2]=d}else d=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+120;c[e+48>>2]=1024;f=e+75|0;a[f>>0]=-1;if((d&8|0)==0?(c[n>>2]=b,c[n+4>>2]=21505,c[n+8>>2]=m,(ab(54,n|0)|0)==0):0)a[f>>0]=10;c[e+32>>2]=9;c[e+36>>2]=7;c[e+40>>2]=8;c[e+12>>2]=15;if(!(c[22606]|0))c[e+76>>2]=-1;hb(90448);f=c[22611]|0;c[e+56>>2]=f;if(f)c[f+52>>2]=e;c[22611]=e;bb(90448)}}else{c[(qy()|0)>>2]=22;e=0}i=o;return e|0}function hz(b){b=b|0;var c=0,d=0,e=0;d=(jA(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(jA(b,120)|0)==0;d=e?d:d|128;b=(jA(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function iz(a){a=a|0;return 0}function jz(a){a=a|0;return}function kz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;l=m;k=e&255;a[l>>0]=k;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(sz(b)|0)){h=c[g>>2]|0;j=4}else f=-1;else j=4;do if((j|0)==4){g=b+20|0;j=c[g>>2]|0;if(j>>>0<h>>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[g>>2]=j+1;a[j>>0]=k;break}if((ub[c[b+36>>2]&31](b,l,1)|0)==1)f=d[l>>0]|0;else f=-1}while(0);i=m;return f|0}function lz(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=xy(ib(6,d|0)|0)|0;i=b;return a|0}function mz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;h=m+16|0;g=m;f=m+32|0;c[f>>2]=d;j=f+4|0;l=b+48|0;n=c[l>>2]|0;c[j>>2]=e-((n|0)!=0&1);k=b+44|0;c[f+8>>2]=c[k>>2];c[f+12>>2]=n;if(!(c[22605]|0)){c[h>>2]=c[b+60>>2];c[h+4>>2]=f;c[h+8>>2]=2;f=xy(kb(145,h|0)|0)|0}else{Da(99,b|0);c[g>>2]=c[b+60>>2];c[g+4>>2]=f;c[g+8>>2]=2;f=xy(kb(145,g|0)|0)|0;xa(0)}if((f|0)>=1){j=c[j>>2]|0;if(f>>>0>j>>>0){h=c[k>>2]|0;g=b+4|0;c[g>>2]=h;c[b+8>>2]=h+(f-j);if(!(c[l>>2]|0))f=e;else{c[g>>2]=h+1;a[d+(e+-1)>>0]=a[h>>0]|0;f=e}}}else{c[b>>2]=c[b>>2]|f&48^16;c[b+8>>2]=0;c[b+4>>2]=0}i=m;return f|0}function nz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((xy(ob(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function oz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;n=q+16|0;m=q;e=q+32|0;o=a+28|0;f=c[o>>2]|0;c[e>>2]=f;p=a+20|0;f=(c[p>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;k=a+60|0;l=a+44|0;b=2;f=f+d|0;while(1){if(!(c[22605]|0)){c[n>>2]=c[k>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=xy(sb(146,n|0)|0)|0}else{Da(100,a|0);c[m>>2]=c[k>>2];c[m+4>>2]=e;c[m+8>>2]=b;h=xy(sb(146,m|0)|0)|0;xa(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[o>>2]=(c[o>>2]|0)+h;j=g;b=2}else j=g;else{j=c[l>>2]|0;c[o>>2]=j;c[p>>2]=j;j=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=j-h}if((f|0)==6){n=c[l>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=q;return d|0}function pz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g;c[b+36>>2]=7;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,(ab(54,f|0)|0)!=0):0)a[b+75>>0]=-1;f=oz(b,d,e)|0;i=g;return f|0}function qz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=cA(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0<d>>>0?f:d;AB(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function rz(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=b+20|0;e=b+44|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)ub[c[b+36>>2]&31](b,0,0)|0;c[b+16>>2]=0;c[b+28>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(d&20)if(!(d&4))d=-1;else{c[b>>2]=d|32;d=-1}else{d=c[e>>2]|0;c[b+8>>2]=d;c[b+4>>2]=d;d=0}return d|0}function sz(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function tz(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;if((c[a+8>>2]|0)==0?(rz(a)|0)!=0:0)b=-1;else if((ub[c[a+32>>2]&31](a,b,1)|0)==1)b=d[b>>0]|0;else b=-1;i=e;return b|0}function uz(a){a=a|0;var b=0,d=0,e=0;e=(c[a>>2]&1|0)!=0;if(!e){hb(90448);d=c[a+52>>2]|0;b=a+56|0;if(d)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b)c[b+52>>2]=d;if((c[22611]|0)==(a|0))c[22611]=b;bb(90448)}b=wz(a)|0;b=Eb[c[a+12>>2]&31](a)|0|b;d=c[a+92>>2]|0;if(d)pB(d);if(!e)pB(a);return b|0}function vz(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(iz(a)|0)==0;a=(c[a>>2]|0)>>>4&1}else a=(c[a>>2]|0)>>>4&1;return a|0}function wz(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=WA(a)|0;break}d=(iz(a)|0)==0;b=WA(a)|0;if(!d)jz(a)}else{if(!(c[22670]|0))b=0;else b=wz(c[22670]|0)|0;hb(90448);a=c[22611]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=iz(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=WA(a)|0|b;if(d)jz(a);a=c[a+56>>2]|0}while((a|0)!=0);bb(90448)}while(0);return b|0}function xz(a){a=a|0;var b=0,e=0,f=0;if((c[a+76>>2]|0)>=0?(iz(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0}else b=tz(a)|0}else f=3;do if((f|0)==3){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0;break}else{b=tz(a)|0;break}}while(0);return b|0}function yz(b,e,f){b=b|0;e=e|0;f=f|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;if((c[f+76>>2]|0)>-1)o=iz(f)|0;else o=0;g=e+-1|0;if((e|0)<2){p=f+74|0;n=a[p>>0]|0;a[p>>0]=n+255|n;if(o)jz(f);if(!g)a[b>>0]=0;else b=0}else{a:do if(g){m=f+4|0;n=f+8|0;h=b;while(1){i=c[m>>2]|0;q=i;k=(c[n>>2]|0)-q|0;j=cA(i,10,k)|0;r=(j|0)==0;j=r?k:1-q+j|0;q=j>>>0<g>>>0;j=q?j:g;AB(h|0,i|0,j|0)|0;i=c[m>>2]|0;k=i+j|0;c[m>>2]=k;e=h+j|0;l=g-j|0;if(!(r&q)){p=18;break a}if(k>>>0<(c[n>>2]|0)>>>0){j=j+1|0;c[m>>2]=i+j;i=d[k>>0]|0}else{g=tz(f)|0;if((g|0)<0)break;j=j+1|0;i=g}g=l+-1|0;h=h+j|0;a[e>>0]=i;if(!((g|0)!=0&(i&255|0)!=10)){e=h;p=18;break a}}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)p=18;else b=0}else{e=b;p=18}while(0);if((p|0)==18)if(!b)b=0;else a[e>>0]=0;if(o)jz(f)}return b|0}function zz(a){a=a|0;(c[a+76>>2]|0)>-1?(iz(a)|0)!=0:0;return c[a+60>>2]|0}function Az(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g+16|0;e=g;if(cA(172980,a[d>>0]|0,4)|0){h=hz(d)|0|32768;c[e>>2]=b;c[e+4>>2]=h;c[e+8>>2]=438;e=xy(eb(5,e|0)|0)|0;if((e|0)>=0){b=gz(e,d)|0;if(!b){c[f>>2]=e;ib(6,f|0)|0;b=0}}else b=0}else{c[(qy()|0)>>2]=22;b=0}i=g;return b|0}function Bz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Sz(a,b,f)|0;i=e;return d|0}function Cz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((c[d+76>>2]|0)>=0?(iz(d)|0)!=0:0){if((a[d+75>>0]|0)!=(b|0)?(f=d+20|0,g=c[f>>2]|0,g>>>0<(c[d+16>>2]|0)>>>0):0){c[f>>2]=g+1;a[g>>0]=b;e=b&255}else e=kz(d,b)|0;jz(d)}else i=3;do if((i|0)==3){if((a[d+75>>0]|0)!=(b|0)?(h=d+20|0,e=c[h>>2]|0,e>>>0<(c[d+16>>2]|0)>>>0):0){c[h>>2]=e+1;a[e>>0]=b;e=b&255;break}e=kz(d,b)|0}while(0);return e|0}function Dz(a,b){a=a|0;b=b|0;return (Mz(a,pA(a)|0,1,b)|0)+-1|0}function Ez(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;j=_(e,d)|0;if((c[f+76>>2]|0)>-1)k=iz(f)|0;else k=0;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;i=(c[f+8>>2]|0)-h|0;if((i|0)>0){i=i>>>0<j>>>0?i:j;AB(b|0,h|0,i|0)|0;c[g>>2]=h+i;b=b+i|0;g=j-i|0}else g=j;a:do if(!g)l=13;else{i=f+32|0;h=g;while(1){if(rz(f)|0){e=h;break}g=ub[c[i>>2]&31](f,b,h)|0;if((g+1|0)>>>0<2){e=h;break}if((h|0)==(g|0)){l=13;break a}else{b=b+g|0;h=h-g|0}}if(k)jz(f);e=((j-e|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(k)jz(f);return e|0}function Fz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;if((d|0)==1)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)|0;f=a+20|0;e=a+28|0;if((c[f>>2]|0)>>>0>(c[e>>2]|0)>>>0?(ub[c[a+36>>2]&31](a,0,0)|0,(c[f>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[e>>2]=0;c[f>>2]=0;if((ub[c[a+40>>2]&31](a,b,d)|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function Gz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if((c[a+76>>2]|0)>-1){e=(iz(a)|0)==0;b=Fz(a,b,d)|0;if(!e)jz(a)}else b=Fz(a,b,d)|0;return b|0}function Hz(a,b,c){a=a|0;b=b|0;c=c|0;return Gz(a,b,c)|0}function Iz(a){a=a|0;var b=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=ub[c[a+40>>2]&31](a,0,b)|0;if((b|0)>=0)b=b-(c[a+8>>2]|0)+(c[a+4>>2]|0)+(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;return b|0}function Jz(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(iz(a)|0)==0;a=Iz(a)|0}else a=Iz(a)|0;return a|0}function Kz(a){a=a|0;return Jz(a)|0}function Lz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(sz(e)|0)){g=c[f>>2]|0;h=4}else f=0;else h=4;a:do if((h|0)==4){i=e+20|0;h=c[i>>2]|0;if((g-h|0)>>>0<d>>>0){f=ub[c[e+36>>2]&31](e,b,d)|0;break}b:do if((a[e+75>>0]|0)>-1){f=d;while(1){if(!f){g=h;f=0;break b}g=f+-1|0;if((a[b+g>>0]|0)==10)break;else f=g}if((ub[c[e+36>>2]&31](e,b,f)|0)>>>0<f>>>0)break a;d=d-f|0;b=b+f|0;g=c[i>>2]|0}else{g=h;f=0}while(0);AB(g|0,b|0,d|0)|0;c[i>>2]=(c[i>>2]|0)+d;f=f+d|0}while(0);return f|0}function Mz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=_(d,b)|0;if((c[e+76>>2]|0)>-1){g=(iz(e)|0)==0;a=Lz(a,f,e)|0;if(!g)jz(e)}else a=Lz(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function Nz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=i;i=i+16|0;g=f;c[g>>2]=e;e=Uz(a,b,d,g)|0;i=f;return e|0}function Oz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Vz(a,b,f)|0;i=e;return d|0}function Pz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=d;d=Wz(a,b,f)|0;i=e;return d|0}function Qz(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+48|0;g=j+16|0;f=j;d=j+20|0;e=0;while(1){a=Rz(d)|0;if(!a){a=0;break}c[f>>2]=a;c[f+4>>2]=32962;c[f+8>>2]=384;b=xy(eb(5,f|0)|0)|0;e=e+1|0;if((b|0)>-1){h=5;break}if((e|0)>=100){a=0;break}}if((h|0)==5){h=gz(b,172984)|0;c[g>>2]=a;db(10,g|0)|0;a=h}i=j;return a|0}function Rz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+64|0;g=l+32|0;j=l+24|0;h=l+8|0;e=l;k=l+48|0;f=l+40|0;c[k>>2]=(a|0)==0?172987:a;c[e>>2]=173007;c[e+4>>2]=7;if(!($a(33,e|0)|0)){b=f+4|0;d=k;e=0;while(1){c[h>>2]=0;c[h+4>>2]=f;c[h+8>>2]=0;jb(265,h|0)|0;a=c[k>>2]|0;m=c[b>>2]^d^a;n=c[22773]|0;c[22773]=n+1;c[j>>2]=n;c[j+4>>2]=m;Nz(a,20,173012,j)|0;c[g>>2]=c[k>>2];c[g+4>>2]=0;if($a(33,g|0)|0){a=e;break}a=e+1|0;if((e|0)<100)e=a;else break}a=(a|0)>99?0:c[k>>2]|0}else a=0;i=l;return a|0}function Sz(b,d,e){b=b|0;d=d|0;e=e|0;var 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;s=i;i=i+224|0;o=s+80|0;r=s+96|0;q=s;p=s+136|0;f=r;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[o>>2]=c[e>>2];if((XA(0,d,o,q,r)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)m=iz(b)|0;else m=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;e=b+48|0;if(!(c[e>>2]|0)){g=b+44|0;h=c[g>>2]|0;c[g>>2]=p;j=b+28|0;c[j>>2]=p;k=b+20|0;c[k>>2]=p;c[e>>2]=80;l=b+16|0;c[l>>2]=p+80;f=XA(b,d,o,q,r)|0;if(h){ub[c[b+36>>2]&31](b,0,0)|0;f=(c[k>>2]|0)==0?-1:f;c[g>>2]=h;c[e>>2]=0;c[l>>2]=0;c[j>>2]=0;c[k>>2]=0}}else f=XA(b,d,o,q,r)|0;e=c[b>>2]|0;c[b>>2]=e|n;if(m)jz(b);e=(e&32|0)==0?f:-1}i=s;return e|0}+function Tz(e,f,j){e=e|0;f=f|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0.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,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;P=i;i=i+304|0;H=P+16|0;J=P+8|0;I=P+33|0;K=P;y=P+32|0;if((c[e+76>>2]|0)>-1)O=iz(e)|0;else O=0;k=a[f>>0]|0;a:do if(k<<24>>24){L=e+4|0;M=e+100|0;G=e+108|0;z=e+8|0;A=I+10|0;B=I+33|0;D=J+4|0;E=I+46|0;F=I+94|0;m=k;k=0;n=f;s=0;l=0;f=0;b:while(1){c:do if(!(Zx(m&255)|0)){m=(a[n>>0]|0)==37;d:do if(m){q=n+1|0;o=a[q>>0]|0;e:do switch(o<<24>>24){case 37:break d;case 42:{x=0;o=n+2|0;break}default:{o=(o&255)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[H>>2]=c[j>>2];while(1){x=(c[H>>2]|0)+(4-1)&~(4-1);m=c[x>>2]|0;c[H>>2]=x+4;if(o>>>0>1)o=o+-1|0;else break}x=m;o=n+3|0;break e}o=(c[j>>2]|0)+(4-1)&~(4-1);x=c[o>>2]|0;c[j>>2]=o+4;o=q}}while(0);m=a[o>>0]|0;n=m&255;if((n+-48|0)>>>0<10){m=0;while(1){q=(m*10|0)+-48+n|0;o=o+1|0;m=a[o>>0]|0;n=m&255;if((n+-48|0)>>>0>=10)break;else m=q}}else q=0;if(m<<24>>24==109){o=o+1|0;r=a[o>>0]|0;m=(x|0)!=0&1;l=0;f=0}else{r=m;m=0}n=o+1|0;switch(r&255|0){case 104:{w=(a[n>>0]|0)==104;n=w?o+2|0:n;o=w?-2:-1;break}case 108:{w=(a[n>>0]|0)==108;n=w?o+2|0:n;o=w?3:1;break}case 106:{o=3;break}case 116:case 122:{o=1;break}case 76:{o=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{n=o;o=0;break}default:{N=152;break b}}r=d[n>>0]|0;t=(r&47|0)==3;r=t?r|32:r;t=t?1:o;switch(r|0){case 99:{w=s;v=(q|0)<1?1:q;break}case 91:{w=s;v=q;break}case 110:{if(!x){o=s;break c}switch(t|0){case -2:{a[x>>0]=s;o=s;break c}case -1:{b[x>>1]=s;o=s;break c}case 0:{c[x>>2]=s;o=s;break c}case 1:{c[x>>2]=s;o=s;break c}case 3:{o=x;c[o>>2]=s;c[o+4>>2]=((s|0)<0)<<31>>31;o=s;break c}default:{o=s;break c}}}default:{vy(e,0);do{o=c[L>>2]|0;if(o>>>0<(c[M>>2]|0)>>>0){c[L>>2]=o+1;o=d[o>>0]|0}else o=wy(e)|0}while((Zx(o)|0)!=0);o=c[L>>2]|0;if(c[M>>2]|0){o=o+-1|0;c[L>>2]=o}w=(c[G>>2]|0)+s+o-(c[z>>2]|0)|0;v=q}}vy(e,v);o=c[L>>2]|0;q=c[M>>2]|0;if(o>>>0<q>>>0)c[L>>2]=o+1;else{if((wy(e)|0)<0){N=152;break b}q=c[M>>2]|0}if(q)c[L>>2]=(c[L>>2]|0)+-1;f:do switch(r|0){case 91:case 99:case 115:{u=(r|0)==99;g:do if((r&239|0)==99){CB(I|0,-1,257)|0;a[I>>0]=0;if((r|0)==115){a[B>>0]=0;a[A>>0]=0;a[A+1>>0]=0;a[A+2>>0]=0;a[A+3>>0]=0;a[A+4>>0]=0}}else{Q=n+1|0;s=(a[Q>>0]|0)==94;o=s&1;r=s?Q:n;n=s?n+2|0:Q;CB(I|0,s&1|0,257)|0;a[I>>0]=0;switch(a[n>>0]|0){case 45:{s=(o^1)&255;a[E>>0]=s;n=r+2|0;break}case 93:{s=(o^1)&255;a[F>>0]=s;n=r+2|0;break}default:s=(o^1)&255}while(1){o=a[n>>0]|0;h:do switch(o<<24>>24){case 0:{N=152;break b}case 93:break g;case 45:{r=n+1|0;o=a[r>>0]|0;switch(o<<24>>24){case 93:case 0:{o=45;break h}default:{}}n=a[n+-1>>0]|0;if((n&255)<(o&255)){n=n&255;do{n=n+1|0;a[I+n>>0]=s;o=a[r>>0]|0}while((n|0)<(o&255|0));n=r}else n=r;break}default:{}}while(0);a[I+((o&255)+1)>>0]=s;n=n+1|0}}while(0);r=u?v+1|0:31;s=(t|0)==1;t=(m|0)!=0;i:do if(s){if(t){f=oB(r<<2)|0;if(!f){l=0;N=152;break b}}else f=x;c[J>>2]=0;c[D>>2]=0;l=0;j:while(1){q=(f|0)==0;do{k:while(1){o=c[L>>2]|0;if(o>>>0<(c[M>>2]|0)>>>0){c[L>>2]=o+1;o=d[o>>0]|0}else o=wy(e)|0;if(!(a[I+(o+1)>>0]|0))break j;a[y>>0]=o;switch(Sy(K,y,1,J)|0){case -1:{l=0;N=152;break b}case -2:break;default:break k}}if(!q){c[f+(l<<2)>>2]=c[K>>2];l=l+1|0}}while(!(t&(l|0)==(r|0)));l=r<<1|1;o=rB(f,l<<2)|0;if(!o){l=0;N=152;break b}Q=r;r=l;f=o;l=Q}if(!(Ty(J)|0)){l=0;N=152;break b}else{q=l;l=0}}else{if(t){l=oB(r)|0;if(!l){l=0;f=0;N=152;break b}else o=0;while(1){do{f=c[L>>2]|0;if(f>>>0<(c[M>>2]|0)>>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=wy(e)|0;if(!(a[I+(f+1)>>0]|0)){q=o;f=0;break i}a[l+o>>0]=f;o=o+1|0}while((o|0)!=(r|0));f=r<<1|1;o=rB(l,f)|0;if(!o){f=0;N=152;break b}else{Q=r;r=f;l=o;o=Q}}}if(!x){l=q;while(1){f=c[L>>2]|0;if(f>>>0<l>>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=wy(e)|0;if(!(a[I+(f+1)>>0]|0)){q=0;l=0;f=0;break i}l=c[M>>2]|0}}else{l=0;while(1){f=c[L>>2]|0;if(f>>>0<q>>>0){c[L>>2]=f+1;f=d[f>>0]|0}else f=wy(e)|0;if(!(a[I+(f+1)>>0]|0)){q=l;l=x;f=0;break i}a[x+l>>0]=f;q=c[M>>2]|0;l=l+1|0}}}while(0);o=c[L>>2]|0;if(c[M>>2]|0){o=o+-1|0;c[L>>2]=o}o=o-(c[z>>2]|0)+(c[G>>2]|0)|0;if(!o)break b;if(!((o|0)==(v|0)|u^1))break b;do if(t)if(s){c[x>>2]=f;break}else{c[x>>2]=l;break}while(0);if(!u){if(f)c[f+(q<<2)>>2]=0;if(!l){l=0;break f}a[l+q>>0]=0}break}case 120:case 88:case 112:{o=16;N=134;break}case 111:{o=8;N=134;break}case 117:case 100:{o=10;N=134;break}case 105:{o=0;N=134;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{p=+sy(e,t,0);if((c[G>>2]|0)==((c[z>>2]|0)-(c[L>>2]|0)|0))break b;if(x)switch(t|0){case 0:{g[x>>2]=p;break f}case 1:{h[x>>3]=p;break f}case 2:{h[x>>3]=p;break f}default:break f}break}default:{}}while(0);l:do if((N|0)==134){N=0;o=ty(e,o,0,-1,-1)|0;if((c[G>>2]|0)==((c[z>>2]|0)-(c[L>>2]|0)|0))break b;if((x|0)!=0&(r|0)==112){c[x>>2]=o;break}if(x)switch(t|0){case -2:{a[x>>0]=o;break l}case -1:{b[x>>1]=o;break l}case 0:{c[x>>2]=o;break l}case 1:{c[x>>2]=o;break l}case 3:{Q=x;c[Q>>2]=o;c[Q+4>>2]=C;break l}default:break l}}while(0);k=((x|0)!=0&1)+k|0;o=(c[G>>2]|0)+w+(c[L>>2]|0)-(c[z>>2]|0)|0;break c}while(0);n=n+(m&1)|0;vy(e,0);m=c[L>>2]|0;if(m>>>0<(c[M>>2]|0)>>>0){c[L>>2]=m+1;m=d[m>>0]|0}else m=wy(e)|0;if((m|0)!=(d[n>>0]|0)){N=21;break b}o=s+1|0}else{while(1){m=n+1|0;if(!(Zx(d[m>>0]|0)|0))break;else n=m}vy(e,0);do{m=c[L>>2]|0;if(m>>>0<(c[M>>2]|0)>>>0){c[L>>2]=m+1;m=d[m>>0]|0}else m=wy(e)|0}while((Zx(m)|0)!=0);m=c[L>>2]|0;if(c[M>>2]|0){m=m+-1|0;c[L>>2]=m}o=(c[G>>2]|0)+s+m-(c[z>>2]|0)|0}while(0);n=n+1|0;m=a[n>>0]|0;if(!(m<<24>>24))break a;else s=o}if((N|0)==21){if(c[M>>2]|0)c[L>>2]=(c[L>>2]|0)+-1;if((k|0)!=0|(m|0)>-1)break;else{k=0;N=153}}else if((N|0)==152)if(!k){k=m;N=153}if((N|0)==153){m=k;k=-1}if(m){pB(l);pB(f)}}else k=0;while(0);if(O)jz(e);i=P;return k|0}function Uz(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;g=n+112|0;m=n;h=m;j=91096;k=h+112|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));if((d+-1|0)>>>0>2147483646)if(!d){d=1;l=4}else{c[(qy()|0)>>2]=75;d=-1}else{g=b;l=4}if((l|0)==4){l=-2-g|0;l=d>>>0>l>>>0?l:d;c[m+48>>2]=l;b=m+20|0;c[b>>2]=g;c[m+44>>2]=g;d=g+l|0;g=m+16|0;c[g>>2]=d;c[m+28>>2]=d;d=Sz(m,e,f)|0;if(l){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}i=n;return d|0}function Vz(a,b,c){a=a|0;b=b|0;c=c|0;return Uz(a,2147483647,b,c)|0}function Wz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+112|0;e=g;f=e;h=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(h|0));c[e+32>>2]=20;c[e+44>>2]=a;c[e+76>>2]=-1;c[e+84>>2]=a;h=Tz(e,b,d)|0;i=g;return h|0}function Xz(a){a=a|0;return +(+$z(a,0))}function Yz(b){b=b|0;var c=0,d=0,e=0,f=0;while(1){c=b+1|0;if(!(Zx(a[b>>0]|0)|0))break;else b=c}d=a[b>>0]|0;switch(d<<24>>24|0){case 45:{e=1;f=5;break}case 43:{e=0;f=5;break}default:e=0}if((f|0)==5){b=c;d=a[c>>0]|0}c=(d<<24>>24)+-48|0;if(c>>>0<10){d=b;b=0;do{d=d+1|0;b=(b*10|0)-c|0;c=(a[d>>0]|0)+-48|0}while(c>>>0<10)}else b=0;return ((e|0)!=0?b:0-b|0)|0}function Zz(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;a:do if(!c)b=0;else{h=b;while(1){g=c>>>1;b=h+(_(g,d)|0)|0;f=Lb[e&63](a,b)|0;if(!f)break a;if((c|0)==1){b=0;break a}f=(f|0)<0;c=f?g:c-g|0;if(!c){b=0;break}else h=f?h:b}}while(0);return b|0}function _z(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+208|0;o=r+8|0;p=r;f=_(d,b)|0;n=p;c[n>>2]=1;c[n+4>>2]=0;if(f){j=f-d|0;c[o+4>>2]=d;c[o>>2]=d;g=d;b=d;h=2;while(1){b=b+d+g|0;c[o+(h<<2)>>2]=b;if(b>>>0<f>>>0){n=g;g=b;h=h+1|0;b=n}else break}n=0-d|0;k=a+j|0;m=p+4|0;if((j|0)>0){j=k;f=1;h=1;while(1){do if((f&3|0)==3){ZA(a,d,e,h,o);l=c[m>>2]|0;b=l<<30|(c[p>>2]|0)>>>2;c[p>>2]=b;c[m>>2]=l>>>2;h=h+2|0}else{b=h+-1|0;if((c[o+(b<<2)>>2]|0)>>>0<(j-a|0)>>>0)ZA(a,d,e,h,o);else _A(a,d,e,p,h,0,o);if((h|0)==1){b=c[p>>2]|0;c[m>>2]=b>>>31|c[m>>2]<<1;b=b<<1;c[p>>2]=b;h=0;break}if(b>>>0>31){f=c[p>>2]|0;c[m>>2]=f;c[p>>2]=0;b=h+-33|0;g=0}else{f=c[m>>2]|0;g=c[p>>2]|0}c[m>>2]=g>>>(32-b|0)|f<<b;b=g<<b;c[p>>2]=b;h=1}while(0);f=b|1;c[p>>2]=f;b=a+d|0;if(b>>>0>=k>>>0){f=b;break}else a=b}}else{f=a;h=1}_A(f,d,e,p,h,0,o);l=p+4|0;b=c[p>>2]|0;if(!((h|0)==1&(b|0)==1&(c[l>>2]|0)==0)){g=f;while(1){if((h|0)<2){f=b+-1|0;do if(f){if(!(f&1)){j=f;f=0;do{f=f+1|0;j=j>>>1}while((j&1|0)==0);if(!f)q=24}else q=24;if((q|0)==24){q=0;k=c[m>>2]|0;if(!k){f=64;q=30;break}if(!(k&1)){j=k;f=0}else{a=0;j=k;f=0;break}while(1){a=f+1|0;j=j>>>1;if(j&1){j=a;break}else f=a}if(!j){a=0;j=k;f=0;break}else f=f+33|0}if(f>>>0>31)q=30;else{a=f;j=c[m>>2]|0}}else{f=32;q=30}while(0);if((q|0)==30){q=0;b=c[m>>2]|0;c[p>>2]=b;c[m>>2]=0;a=f+-32|0;j=0}c[p>>2]=j<<32-a|b>>>a;c[m>>2]=j>>>a;g=g+n|0;f=f+h|0}else{a=b>>>30;k=a|c[m>>2]<<2;f=h+-2|0;c[p>>2]=(b<<1&2147483646|a<<31)^3;c[m>>2]=k>>>1;_A(g+(0-((c[o+(f<<2)>>2]|0)+d))|0,d,e,p,h+-1|0,1,o);k=c[p>>2]|0;c[m>>2]=k>>>31|c[m>>2]<<1;c[p>>2]=k<<1|1;g=g+n|0;_A(g,d,e,p,f,1,o)}b=c[p>>2]|0;if((f|0)==1&(b|0)==1&(c[l>>2]|0)==0)break;else h=f}}}i=r;return}function $z(a,b){a=a|0;b=b|0;return +(+$A(a,b,1))}function aA(a,b,c){a=a|0;b=b|0;c=c|0;a=aB(a,b,c,-1,0)|0;return a|0}function bA(a,b,c){a=a|0;b=b|0;c=c|0;a=aB(a,b,c,-2147483648,0)|0;return a|0}function cA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else e=0;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)!=g<<24>>24){f=_(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009)break;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break c}}else i=11;while(0);if((i|0)==11)if(!e){e=0;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;b=b+1|0;e=e+-1|0;if(!e){e=0;break}}}}while(0);return ((e|0)!=0?b:0)|0}function dA(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)d=0;else{f=d;e=b;while(1){b=a[e>>0]|0;d=a[c>>0]|0;if(b<<24>>24!=d<<24>>24)break;f=f+-1|0;if(!f){d=0;break a}else{e=e+1|0;c=c+1|0}}d=(b&255)-(d&255)|0}while(0);return d|0}function eA(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;e=c&255;do{if(!d){c=0;break}d=d+-1|0;c=b+d|0}while((a[c>>0]|0)!=e<<24>>24);return c|0}function fA(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009)break;else f=b}}f=8}else f=8;while(0);if((f|0)==8){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function gA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3)do{f=c[d>>2]|0;if((f&-2139062144^-2139062144)&f+-16843009)break b;c[b>>2]=f;e=e+-4|0;d=d+4|0;b=b+4|0}while(e>>>0>3);while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);CB(b|0,0,e|0)|0;return b|0}function hA(b,c){b=b|0;c=c|0;var e=0,f=0,g=0;e=a[b>>0]|0;a:do if(!(e<<24>>24))b=0;else{g=e;f=e&255;while(1){e=a[c>>0]|0;if(!(e<<24>>24)){b=g;break a}if(g<<24>>24!=e<<24>>24?(g=ny(f)|0,(g|0)!=(ny(d[c>>0]|0)|0)):0)break;b=b+1|0;c=c+1|0;e=a[b>>0]|0;if(!(e<<24>>24)){b=0;break a}else{g=e;f=e&255}}b=a[b>>0]|0}while(0);g=ny(b&255)|0;return g-(ny(d[c>>0]|0)|0)|0}function iA(a,b){a=a|0;b=b|0;mA(a+(pA(a)|0)|0,b)|0;return a|0}function jA(b,c){b=b|0;c=c|0;b=kA(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function kA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(pA(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=_(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009)break b;b=b+4|0;e=c[b>>2]|0}while(((e&-2139062144^-2139062144)&e+-16843009|0)==0);while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function lA(b,c){b=b|0;c=c|0;var d=0,e=0;e=a[b>>0]|0;d=a[c>>0]|0;if(e<<24>>24==0?1:e<<24>>24!=d<<24>>24)c=e;else{do{b=b+1|0;c=c+1|0;e=a[b>>0]|0;d=a[c>>0]|0}while(!(e<<24>>24==0?1:e<<24>>24!=d<<24>>24));c=e}return (c&255)-(d&255)|0}function mA(a,b){a=a|0;b=b|0;fA(a,b)|0;return a|0}function nA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+32|0;f=g;e=a[d>>0]|0;if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+28>>2]=0;do{h=f+(((e&255)>>>5&255)<<2)|0;c[h>>2]=c[h>>2]|1<<(e&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);d=a[b>>0]|0;a:do if(!(d<<24>>24))e=b;else{e=b;do{if(c[f+(((d&255)>>>5&255)<<2)>>2]&1<<(d&31))break a;e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0)}while(0);e=e-b|0}else e=(kA(b,e<<24>>24)|0)-b|0;i=g;return e|0}function oA(a){a=a|0;var b=0,c=0;c=(pA(a)|0)+1|0;b=oB(c)|0;if(!b)b=0;else AB(b|0,a|0,c|0)|0;return b|0}function pA(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function qA(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0,h=0;if(!e)c=0;else{f=a[b>>0]|0;a:do if(!(f<<24>>24))b=0;else{h=f;g=f&255;while(1){e=e+-1|0;f=a[c>>0]|0;if(!((e|0)!=0&f<<24>>24!=0)){b=h;break a}if(h<<24>>24!=f<<24>>24?(h=ny(g)|0,(h|0)!=(ny(d[c>>0]|0)|0)):0)break;b=b+1|0;c=c+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){b=0;break a}else{h=f;g=f&255}}b=a[b>>0]|0}while(0);h=ny(b&255)|0;c=h-(ny(d[c>>0]|0)|0)|0}return c|0}function rA(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if(!e)c=0;else{f=a[b>>0]|0;a:do if(!(f<<24>>24))f=0;else while(1){e=e+-1|0;g=a[c>>0]|0;if(!(f<<24>>24==g<<24>>24&((e|0)!=0&g<<24>>24!=0)))break a;b=b+1|0;c=c+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){f=0;break}}while(0);c=(f&255)-(d[c>>0]|0)|0}return c|0}function sA(a,b,c){a=a|0;b=b|0;c=c|0;gA(a,b,c)|0;return a|0}function tA(b,c){b=b|0;c=c|0;b=b+(nA(b,c)|0)|0;return ((a[b>>0]|0)!=0?b:0)|0}function uA(a,b){a=a|0;b=b|0;return eA(a,b,(pA(a)|0)+1|0)|0}function vA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+28>>2]=0;f=a[d>>0]|0;do if(!(f<<24>>24))d=0;else{if(!(a[d+1>>0]|0)){d=b;while(1)if((a[d>>0]|0)==f<<24>>24)d=d+1|0;else break;d=d-b|0;break}else{e=d;d=f}do{f=g+(((d&255)>>>5&255)<<2)|0;c[f>>2]=c[f>>2]|1<<(d&31);e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0);e=a[b>>0]|0;a:do if(!(e<<24>>24))d=b;else{d=b;do{if(!(c[g+(((e&255)>>>5&255)<<2)>>2]&1<<(e&31)))break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}while(0);d=d-b|0}while(0);i=h;return d|0}function wA(b,e){b=b|0;e=e|0;var 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;w=i;i=i+1056|0;u=w+1024|0;v=w;k=a[e>>0]|0;do if(k<<24>>24){t=jA(b,k<<24>>24)|0;if(t){j=a[e+1>>0]|0;if(j<<24>>24){f=t+1|0;m=a[f>>0]|0;if(m<<24>>24){h=a[e+2>>0]|0;if(!(h<<24>>24)){k=j&255|(k&255)<<8;b=m;j=t;g=d[t>>0]<<8|m&255;while(1){h=g&65535;if((h|0)==(k|0)){f=j;break}b=f+1|0;g=a[b>>0]|0;if(!(g<<24>>24)){b=0;break}else{j=f;f=b;b=g;g=g&255|h<<8}}b=b<<24>>24!=0?f:0;break}f=t+2|0;l=a[f>>0]|0;if(l<<24>>24){g=a[e+3>>0]|0;if(!(g<<24>>24)){h=(j&255)<<16|(k&255)<<24|(h&255)<<8;b=(l&255)<<8|(m&255)<<16|d[t>>0]<<24;if((b|0)==(h|0))b=l;else{g=b;do{f=f+1|0;b=a[f>>0]|0;g=(b&255|g)<<8}while(!(b<<24>>24==0|(g|0)==(h|0)))}b=b<<24>>24!=0?f+-2|0:0;break}f=t+3|0;b=a[f>>0]|0;if(b<<24>>24){if(!(a[e+4>>0]|0)){h=(j&255)<<16|(k&255)<<24|(h&255)<<8|g&255;g=(l&255)<<8|(m&255)<<16|b&255|d[t>>0]<<24;if((g|0)!=(h|0))do{f=f+1|0;b=a[f>>0]|0;g=b&255|g<<8}while(!(b<<24>>24==0|(g|0)==(h|0)));b=b<<24>>24!=0?f+-3|0:0;break};c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;b=k;g=0;while(1){if(!(a[t+g>>0]|0)){b=0;break}f=u+(((b&255)>>>5&255)<<2)|0;c[f>>2]=c[f>>2]|1<<(b&31);f=g+1|0;c[v+((b&255)<<2)>>2]=f;b=a[e+f>>0]|0;if(!(b<<24>>24)){n=23;break}else g=f}a:do if((n|0)==23){b:do if(f>>>0>1){h=1;n=-1;b=0;c:while(1){m=1;while(1){d:while(1){j=1;while(1){k=a[e+(j+n)>>0]|0;l=a[e+h>>0]|0;if(k<<24>>24!=l<<24>>24){m=h;j=k;h=l;break d}if((j|0)==(m|0))break;j=j+1|0;h=j+b|0;if(h>>>0>=f>>>0){b=n;p=m;break c}}b=b+m|0;h=b+1|0;if(h>>>0>=f>>>0){b=n;p=m;break c}}k=m-n|0;if((j&255)<=(h&255))break;b=m+1|0;if(b>>>0<f>>>0){h=b;b=m;m=k}else{b=n;p=k;break c}}h=b+2|0;if(h>>>0>=f>>>0){p=1;break}else{n=b;b=b+1|0}}j=1;k=-1;h=0;while(1){l=h;h=1;while(1){o=l;e:while(1){l=1;while(1){n=a[e+(l+k)>>0]|0;m=a[e+j>>0]|0;if(n<<24>>24!=m<<24>>24){l=j;j=o;break e}if((l|0)==(h|0))break;l=l+1|0;j=l+o|0;if(j>>>0>=f>>>0){j=p;break b}}o=o+h|0;j=o+1|0;if(j>>>0>=f>>>0){j=p;break b}}h=l-k|0;if((n&255)>=(m&255)){h=j;break}j=l+1|0;if(j>>>0>=f>>>0){j=p;break b}}j=h+2|0;if(j>>>0>=f>>>0){k=h;j=p;h=1;break}else{k=h;h=h+1|0}}}else{b=-1;k=-1;j=1;h=1}while(0);r=(k+1|0)>>>0>(b+1|0)>>>0;h=r?h:j;r=r?k:b;q=r+1|0;if(!(dA(e,e+h|0,q)|0))s=f-h|0;else{h=f-r+-1|0;s=0;h=(r>>>0>h>>>0?r:h)+1|0}n=f|63;o=(s|0)!=0;p=f-h|0;b=t;m=0;l=t;f:while(1){j=b;do if((l-j|0)>>>0<f>>>0){k=cA(l,0,n)|0;if(k)if((k-j|0)>>>0<f>>>0){b=0;break a}else break;else{k=l+n|0;break}}else k=l;while(0);j=a[b+g>>0]|0;if(!(1<<(j&31)&c[u+(((j&255)>>>5&255)<<2)>>2])){b=b+f|0;m=0;l=k;continue}t=c[v+((j&255)<<2)>>2]|0;j=f-t|0;if((f|0)!=(t|0)){b=b+(o&(m|0)!=0&j>>>0<h>>>0?p:j)|0;m=0;l=k;continue}j=q>>>0>m>>>0?q:m;l=a[e+j>>0]|0;g:do if(!(l<<24>>24))j=q;else{while(1){if(l<<24>>24!=(a[b+j>>0]|0))break;j=j+1|0;l=a[e+j>>0]|0;if(!(l<<24>>24)){j=q;break g}}b=b+(j-r)|0;m=0;l=k;continue f}while(0);do{if(j>>>0<=m>>>0)break a;j=j+-1|0}while((a[e+j>>0]|0)==(a[b+j>>0]|0));b=b+h|0;m=s;l=k}}while(0)}else b=0}else b=0}else b=0}else b=t}else b=0}while(0);i=w;return b|0}function xA(b,d){b=b|0;d=d|0;var e=0,f=0;if(!b){b=c[22802]|0;if(!b)b=0;else{f=b;e=3}}else{f=b;e=3}do if((e|0)==3){e=vA(f,d)|0;b=f+e|0;if(!(a[b>>0]|0)){c[22802]=0;b=0;break}e=(nA(b,d)|0)+e|0;d=f+e|0;c[22802]=d;if(!(a[d>>0]|0)){c[22802]=0;break}else{c[22802]=f+(e+1);a[d>>0]=0;break}}while(0);return b|0}function yA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;if(!b){b=c[e>>2]|0;if(!b)b=0;else{g=b;f=3}}else{g=b;f=3}do if((f|0)==3){f=vA(g,d)|0;b=g+f|0;if(!(a[b>>0]|0)){c[e>>2]=0;b=0;break}f=(nA(b,d)|0)+f|0;d=g+f|0;c[e>>2]=d;if(!(a[d>>0]|0)){c[e>>2]=0;break}else{c[e>>2]=g+(f+1);a[d>>0]=0;break}}while(0);return b|0}function zA(a,b){a=a|0;b=b|0;var d=0;if(!b)a=a+((AA(a)|0)<<2)|0;else{d=a;while(1){a=c[d>>2]|0;if((a|0)==0|(a|0)==(b|0))break;else d=d+4|0}a=(a|0)!=0?d:0}return a|0}function AA(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function BA(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;a=xy($a(33,e|0)|0)|0;i=d;return a|0}function CA(c,f){c=c|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=(f<<1)+-1|0;k=f+-1|0;a:do if(!((c+-43008|0)>>>0<22272|((c+-11776|0)>>>0<30784|((c+-1536|0)>>>0<2560|(ay(c)|0)==0)))){g=(f|0)!=0;if(g&(c+-4256|0)>>>0<46){if((c|0)>4293)switch(c|0){case 4295:case 4301:break;default:break a}c=c+7264|0;break}if((c+-11520|0)>>>0<38&(g^1)){if((c|0)>11557)switch(c|0){case 11559:case 11565:break;default:break a}c=c+-7264|0;break}else j=0;do{i=a[97720+(j<<2)+2>>0]|0;h=i<<24>>24;g=c-(e[97720+(j<<2)>>1]|0)|0;if((g-(h&k)|0)>>>0<(d[97720+(j<<2)+3>>0]|0)>>>0){m=13;break}j=j+1|0}while((j|0)!=61);if((m|0)==13)if(i<<24>>24==1){c=f+c-(g&1)|0;break}else{c=(_(h,l)|0)+c|0;break}i=1-f|0;g=b[97228+(i<<1)>>1]|0;b:do if(g<<16>>16){h=0;while(1){if((g&65535|0)==(c|0)){c=h;break}h=h+1|0;g=b[97228+(h<<2)+(i<<1)>>1]|0;if(!(g<<16>>16))break b}c=e[97228+(c<<2)+(f<<1)>>1]|0;break a}while(0);if((c+-66600+(f*40|0)|0)>>>0<40)c=c+-40+(f*80|0)|0}while(0);return c|0}function DA(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=a+4|0;e=c[i>>2]|0;j=a+100|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0;switch(e|0){case 43:case 45:{f=(e|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0;if((b|0)!=0&(e+-48|0)>>>0>9?(c[j>>2]|0)!=0:0){c[i>>2]=(c[i>>2]|0)+-1;h=f}else h=f;break}default:h=0}if((e+-48|0)>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}else{f=0;do{f=e+-48+(f*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0}while((e+-48|0)>>>0<10&(f|0)<214748364);b=((f|0)<0)<<31>>31;if((e+-48|0)>>>0<10){do{b=JB(f|0,b|0,10,0)|0;f=C;e=wB(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=wB(e|0,C|0,b|0,f|0)|0;b=C;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0}while((e+-48|0)>>>0<10&((b|0)<21474836|(b|0)==21474836&f>>>0<2061584302));g=f}else g=f;if((e+-48|0)>>>0<10)do{e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=wy(a)|0}while((e+-48|0)>>>0<10);if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;a=(h|0)!=0;e=vB(0,0,g|0,b|0)|0;f=a?C:b;e=a?e:g}C=f;return e|0}function EA(b){b=b|0;var 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,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;Y=i;i=i+432|0;Q=Y+272|0;P=Y+264|0;X=Y+260|0;V=Y+320|0;R=Y+256|0;S=Y;W=Y+268|0;T=Y+416|0;U=Y+384|0;G=c[b+4>>2]|0;J=G+12|0;L=c[J>>2]|0;if(!(c[b+40>>2]|0)){I=b+20|0;c[P>>2]=c[I>>2];c[Q>>2]=c[P>>2];GA(G,Q)|0;c[P>>2]=2;c[Q>>2]=c[P>>2];GA(G,Q)|0;c[I>>2]=(c[I>>2]|0)+1}c[P>>2]=0;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;H=b+12|0;I=b+16|0;c[I>>2]=c[H>>2];e=c[J>>2]|0;f=(d|0)==0;a:do if(!((d|0)!=0|f&(e|0)>(L|0)^1)){u=G+16|0;v=b+36|0;w=b+24|0;x=b+20|0;y=b+28|0;z=T+1|0;A=Q+12|0;B=Q+40|0;C=Q+24|0;D=Q+8|0;h=e;g=0;e=0;b:while(1){t=h+-1|0;c[J>>2]=t;d=c[u>>2]|0;c:do switch(c[d+(t<<2)>>2]|0){case 0:{if((c[v>>2]&1|0)!=0?(c[P>>2]=7,c[Q>>2]=c[P>>2],M=GA(G,Q)|0,(M|0)!=0):0){d=M;break c}c[P>>2]=3;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;break}case 3:{c[P>>2]=5;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=4;c[Q>>2]=c[P>>2];d=GA(G,Q)|0}break}case 4:{c[P>>2]=9;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=1;c[Q>>2]=c[P>>2];d=GA(G,Q)|0}break}case 5:{f=c[H>>2]|0;d=a[f>>0]|0;if(d<<24>>24!=0?(N=c[v>>2]&1,O=(N|0)!=0,!(d<<24>>24==124&O)):0){do if(!((e|0)>0&(d<<24>>24==41&O))){if(d<<24>>24==92&(N|0)==0?(a[f+1>>0]|0)==41:0)break;c[P>>2]=5;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=g;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=6;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=4;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;break c}while(0);d=(N|e|0)==0?8:0;e=e+-1|0;if(!N)c[H>>2]=f+2}else d=0;break}case 6:{t=h+-2|0;c[J>>2]=t;g=IA(c[b>>2]|0,c[d+(t<<2)>>2]|0,g)|0;if(!g){d=12;break a}d=0;break}case 7:{d=c[H>>2]|0;switch(a[d>>0]|0){case 124:break;case 41:{c[H>>2]=d+1;d=0;break c}default:{d=0;break c}}c[P>>2]=7;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=g;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=8;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[P>>2]=3;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(!d){c[H>>2]=(c[H>>2]|0)+1;d=0}}}}break}case 8:{t=h+-2|0;c[J>>2]=t;g=LA(c[b>>2]|0,c[d+(t<<2)>>2]|0,g)|0;if(!g){d=12;break a}d=0;break}case 9:{h=c[H>>2]|0;d=a[h>>0]|0;switch(d<<24>>24|0){case 63:case 43:{if(!(c[v>>2]&1)){d=0;break c}else E=38;break}case 42:{E=38;break}case 92:{f=c[v>>2]|0;if(f&1){d=0;break c}d=h+1|0;if((a[d>>0]|0)!=123){d=0;break c}c[H>>2]=d;break}case 123:{f=c[v>>2]|0;if(!(f&1)){d=0;break c}else d=h;break}default:{d=0;break c}}if((E|0)==38){E=0;c[H>>2]=h+1;g=JA(c[b>>2]|0,g,d<<24>>24==43&1,d<<24>>24==63?1:-1,0)|0;if(!g){d=12;break a}c[P>>2]=9;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;break c}m=d+1|0;c[H>>2]=m;h=a[m>>0]|0;if((h+-48&255)<10){d=h<<24>>24;if((d+-48|0)>>>0<10){k=d;h=-1;d=m}else{d=10;break a}while(1){l=((h|0)<0?-48:(h*10|0)+-48|0)+k|0;j=d+1|0;h=a[j>>0]|0;k=h<<24>>24;if((k+-48|0)>>>0>=10)break;else{h=l;d=j}}}else{j=m;l=-1}if(h<<24>>24==44){j=d+2|0;h=a[j>>0]|0;d=h<<24>>24;if((d+-48|0)>>>0<10){k=-1;h=j;while(1){k=((k|0)<0?-48:(k*10|0)+-48|0)+d|0;j=h+1|0;h=a[j>>0]|0;d=h<<24>>24;if((d+-48|0)>>>0>=10){E=50;break}else h=j}}else k=-1}else{k=l;E=50}if((E|0)==50){E=0;if((k|0)>-1?(l|0)>(k|0)|(k|0)>255:0){d=10;break a}}if(!(h<<24>>24)){d=9;break a}if((j|0)==(m|0)){d=10;break a}if(!(f&1)){if(h<<24>>24!=92){d=10;break a}if((a[j+1>>0]|0)!=125){d=10;break a}d=j+2|0}else{if(h<<24>>24!=125){d=10;break a}d=j+1|0}if(k|l){t=(k&l|0)<0;g=JA(c[b>>2]|0,g,t?1:l,t?1:k,0)|0;if(!g){d=12;break a}}else{g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}t=c[g+4>>2]|0;c[t>>2]=-1;c[t+4>>2]=-1;c[t+8>>2]=-1}c[H>>2]=d;c[P>>2]=9;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;break}case 1:{d=c[H>>2]|0;d:do switch(a[d>>0]|0){case 40:{if(c[v>>2]&1)E=67;break}case 91:{f=d+1|0;c[H>>2]=f;t=oB(128)|0;c[R>>2]=t;if(!t){E=72;break b}if((a[f>>0]|0)==94){f=d+2|0;c[H>>2]=f;t=1}else t=0;c[Q>>2]=0;c[P>>2]=32;l=0;e:while(1){switch(a[f>>0]|0){case 0:{s=l;d=7;break e}case 93:{if(f>>>0>(c[H>>2]|0)>>>0){d=l;E=79;break e}break}default:{}}d=Uy(X,f,-1)|0;if((d|0)<0){c[X>>2]=-1;d=1}h=f+d|0;if((a[h>>0]|0)==45?(F=d+1|0,K=f+F|0,(a[K>>0]|0)!=93):0){j=c[X>>2]|0;d=Uy(X,K,-1)|0;if((d|0)<0){c[X>>2]=-1;h=-1;d=1}else h=c[X>>2]|0;f=f+(d+F)|0;if(j>>>0>h>>>0){s=l;d=11;break}else{g=0;E=102}}else{f:do switch(a[f>>0]|0){case 91:{switch(a[f+1>>0]|0){case 61:case 46:{s=l;d=3;break e}case 58:break;default:{d=0;E=97;break f}}d=f+2|0;h=d;while(1){s=a[h>>0]|0;g=s<<24>>24==0;if(s<<24>>24!=58&(g^1))h=h+1|0;else break}if(g){g=0;d=4}else{g=h-f+-2|0;g=(g|0)>63?63:g;sA(V,d,g)|0;a[V+g>>0]=0;d=ey(V)|0;g=d;f=h+2|0;d=(d|0)==0?4:0}k=1114111;j=0;break}case 45:{if((a[f+1>>0]|0)==93){d=0;E=97}else{d=(c[H>>2]|0)==(f|0)?0:11;E=97}break}default:{d=0;E=97}}while(0);if((E|0)==97){E=0;j=c[X>>2]|0;g=0;k=j;f=h}if(d){s=l;break}if(t&(g|0)!=0)if((l|0)>63){h=k;d=12}else{c[S+(l<<2)>>2]=g;l=l+1|0;h=k;d=0}else{h=k;E=102}}if((E|0)==102){E=0;d=mB(c[b>>2]|0,j,h,Q,P,R)|0;if(d){s=l;break}c[(c[(c[(c[R>>2]|0)+((c[Q>>2]|0)+-1<<2)>>2]|0)+4>>2]|0)+12>>2]=g;d=0}if((d|g|0)!=0|(c[v>>2]&2|0)==0)if(!d)continue;else{s=l;break}while(1){if(j>>>0>h>>>0)break;if(!(hy(j)|0)){g=j+1|0;if(ly(j)|0){k=py(j)|0;g:do if(!(ly(g)|0))d=k;else{d=k;while(1){if(g>>>0>h>>>0|(py(g)|0)!=(d+1|0))break g;j=g+1|0;d=py(g)|0;if(!(ly(j)|0)){g=j;break}else g=j}}while(0);d=mB(c[b>>2]|0,k,d,Q,P,R)|0}}else{k=oy(j)|0;d=j+1|0;h:do if(!(hy(d)|0))j=k;else{g=k;while(1){if(d>>>0>h>>>0|(oy(d)|0)!=(g+1|0)){j=g;break h}g=oy(d)|0;d=d+1|0;if(!(hy(d)|0)){j=g;break}}}while(0);g=d;d=mB(c[b>>2]|0,k,j,Q,P,R)|0}if(!d){j=g;d=0}else{s=l;break e}}if(d){s=l;break}}if((E|0)==79){E=0;s=d;f=f+1|0;d=0}r=c[Q>>2]|0;c[H>>2]=f;i:do if(!d){if(t)_z(c[R>>2]|0,r,4,45);if((r|0)>0){n=(s|0)>0;o=s<<2;p=o+4|0;m=c[R>>2]|0;l=0;f=0;q=0;g=0;while(1){d=c[(c[m+(q<<2)>>2]|0)+4>>2]|0;h=c[d>>2]|0;j=d+4|0;k=c[j>>2]|0;do if(t){if((h|0)<(l|0)){h=k+1|0;j=m;h=(h|0)>=(l|0)?h:l;d=0;break}if((h|0)>(f|0)){c[d>>2]=f;c[j>>2]=h+-1}else d=0;f=k+1|0;l=f;E=129}else E=129;while(0);do if((E|0)==129){E=0;if(d){c[d+8>>2]=c[w>>2];if(n){h=ez(c[b>>2]|0,0,0,0,p)|0;d=d+16|0;c[d>>2]=h;if(!h){d=12;break i}AB(h|0,S|0,o|0)|0;c[(c[d>>2]|0)+(s<<2)>>2]=0}else c[d+16>>2]=0;if(!g){g=c[R>>2]|0;j=g;h=l;g=c[g+(q<<2)>>2]|0;d=0;break}else{j=c[R>>2]|0;d=LA(c[b>>2]|0,g,c[j+(q<<2)>>2]|0)|0;h=l;g=d;d=(d|0)==0?12:0;break}}else{j=m;h=l;d=0}}while(0);q=q+1|0;if(!((q|0)<(r|0)&(d|0)==0)){k=g;break}else{m=j;l=h}}}else{f=0;k=0;d=0}if(t&(d|0)==0){d=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(g){j=c[g+4>>2]|0;c[j>>2]=f;c[j+4>>2]=1114111;c[j+8>>2]=d;if((s|0)>0){f=s<<2;h=ez(c[b>>2]|0,0,0,0,f+4|0)|0;d=j+16|0;c[d>>2]=h;if(!h){g=k;d=12;break}AB(h|0,S|0,f|0)|0;c[(c[d>>2]|0)+(s<<2)>>2]=0}else c[j+16>>2]=0;if(!k)d=0;else{d=LA(c[b>>2]|0,k,g)|0;g=d;d=(d|0)==0?12:0}}else{g=k;d=12}}else g=k}else g=0;while(0);pB(c[R>>2]|0);c[w>>2]=(c[w>>2]|0)+1;if(!d){d=0;break c}else break a}case 92:{f=d+1|0;h=a[f>>0]|0;do if(!(c[v>>2]&1))if(h<<24>>24!=40){f=d+1|0;g=a[f>>0]|0;if(g<<24>>24==41){E=210;break d}else{h=g;break}}else{c[H>>2]=f;d=f;E=67;break d}while(0);k=h<<24>>24==0;if(k){d=5;break a}else{g=91552;j=0}do{if((a[91548+(j<<3)>>0]|0)==h<<24>>24)break;j=j+1|0;g=91548+(j<<3)+4|0}while((j|0)!=12);h=c[g>>2]|0;if(h){d=Q;f=b;g=d+40|0;do{c[d>>2]=c[f>>2];d=d+4|0;f=f+4|0}while((d|0)<(g|0));c[A>>2]=h;c[B>>2]=1;d=EA(Q)|0;if(d){E=156;break b}c[H>>2]=(c[H>>2]|0)+2;c[w>>2]=c[C>>2];g=c[D>>2]|0;d=0;break c}if(k){d=5;break a}c[H>>2]=f;f=a[f>>0]|0;j:do switch(f|0){case 98:{g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=-2;c[t+4>>2]=64;c[t+8>>2]=-1}c[H>>2]=(c[H>>2]|0)+1;break}case 66:{g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=-2;c[t+4>>2]=128;c[t+8>>2]=-1}c[H>>2]=(c[H>>2]|0)+1;break}case 60:{g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=-2;c[t+4>>2]=16;c[t+8>>2]=-1}c[H>>2]=(c[H>>2]|0)+1;break}case 62:{g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=-2;c[t+4>>2]=32;c[t+8>>2]=-1}c[H>>2]=(c[H>>2]|0)+1;break}case 120:{f=d+2|0;c[H>>2]=f;f=a[f>>0]|0;if(f<<24>>24==123){d=d+3|0;c[H>>2]=d;g=0;k:while(1){f=a[d>>0]|0;switch(f<<24>>24){case 0:case 125:{f=g;break k}default:{}}if(!(my(f<<24>>24)|0)){d=9;break a}d=c[H>>2]|0;a[U+g>>0]=a[d>>0]|0;f=g+1|0;d=d+1|0;c[H>>2]=d;if(f>>>0>31)break;else g=f}c[H>>2]=d+1;a[U+f>>0]=0;d=bA(U,0,16)|0;f=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=d;c[t+4>>2]=d;c[t+8>>2]=f}c[w>>2]=(c[w>>2]|0)+1;break j}else{a[T>>0]=0;a[T+1>>0]=0;a[T+2>>0]=0;t=(my(f<<24>>24)|0)==0;d=c[H>>2]|0;if(!t){a[T>>0]=a[d>>0]|0;d=d+1|0;c[H>>2]=d}if(my(a[d>>0]|0)|0){t=c[H>>2]|0;a[z>>0]=a[t>>0]|0;c[H>>2]=t+1}d=bA(T,0,16)|0;f=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(!g)g=0;else{t=c[g+4>>2]|0;c[t>>2]=d;c[t+4>>2]=d;c[t+8>>2]=f}c[w>>2]=(c[w>>2]|0)+1;break j}}default:{t=(fy(f)|0)==0;d=c[H>>2]|0;if(t)break d;d=(a[d>>0]|0)+-48|0;f=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}t=c[g+4>>2]|0;c[t>>2]=-4;c[t+4>>2]=d;c[t+8>>2]=f;c[w>>2]=(c[w>>2]|0)+1;t=c[y>>2]|0;c[y>>2]=(d|0)<(t|0)?t:d;c[H>>2]=(c[H>>2]|0)+1;d=0;break c}}while(0);if(!g){d=12;break a}else{d=0;break c}}case 46:{t=(c[v>>2]&4|0)==0;d=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;f=(g|0)==0;if(t){if(f){d=12;break a}t=c[g+4>>2]|0;c[t>>2]=0;c[t+4>>2]=1114111;c[t+8>>2]=d;d=(c[w>>2]|0)+1|0}else{if(f){d=12;break a}f=c[g+4>>2]|0;c[f>>2]=0;c[f+4>>2]=9;c[f+8>>2]=d;d=c[w>>2]|0;f=KA(c[b>>2]|0,0,20)|0;if(!f){d=12;break a}t=c[f+4>>2]|0;c[t>>2]=11;c[t+4>>2]=1114111;c[t+8>>2]=d+1;g=LA(c[b>>2]|0,g,f)|0;if(!g){d=12;break a}d=(c[w>>2]|0)+2|0}c[w>>2]=d;c[H>>2]=(c[H>>2]|0)+1;d=0;break c}case 94:{if(!(c[v>>2]&1)){if((d|0)!=(c[I>>2]|0))break d;c[P>>2]=5;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c}g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}d=c[g+4>>2]|0;c[d>>2]=-2;c[d+4>>2]=1;c[d+8>>2]=-1;c[H>>2]=(c[H>>2]|0)+1;d=0;break c}case 36:{if((c[v>>2]&1|0)==0?(a[d+1>>0]|0)!=0:0)break d;g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}d=c[g+4>>2]|0;c[d>>2]=-2;c[d+4>>2]=2;c[d+8>>2]=-1;c[H>>2]=(c[H>>2]|0)+1;d=0;break c}case 41:{if(e)E=209;break}case 63:case 43:case 123:case 124:case 42:{E=209;break}case 0:{E=210;break}default:{}}while(0);if((E|0)==67){E=0;e=e+1|0;c[H>>2]=d+1;c[P>>2]=c[x>>2];c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=2;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[P>>2]=0;c[Q>>2]=c[P>>2];d=GA(G,Q)|0;if(d)break c;c[x>>2]=(c[x>>2]|0)+1;d=0;break c}else if((E|0)==209){E=0;if(c[v>>2]&1)E=210}if((E|0)==210){E=0;g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}d=c[g+4>>2]|0;c[d>>2]=-1;c[d+4>>2]=-1;c[d+8>>2]=-1;d=0;break c}d=Uy(W,d,-1)|0;if((d|0)<0){c[W>>2]=-1;d=1}do if(c[v>>2]&2){if((ly(c[W>>2]|0)|0)==0?(hy(c[W>>2]|0)|0)==0:0){E=220;break}k=c[b>>2]|0;f=oy(c[W>>2]|0)|0;g=oy(c[W>>2]|0)|0;h=c[w>>2]|0;k=KA(k,0,20)|0;if(!k){d=12;break a}j=c[k+4>>2]|0;c[j>>2]=f;c[j+4>>2]=g;c[j+8>>2]=h;j=c[b>>2]|0;f=py(c[W>>2]|0)|0;g=py(c[W>>2]|0)|0;h=c[w>>2]|0;j=KA(j,0,20)|0;if(!j){d=12;break a}t=c[j+4>>2]|0;c[t>>2]=f;c[t+4>>2]=g;c[t+8>>2]=h;g=LA(c[b>>2]|0,k,j)|0;if(!g){d=12;break a}}else E=220;while(0);if((E|0)==220){E=0;f=c[W>>2]|0;h=c[w>>2]|0;g=KA(c[b>>2]|0,0,20)|0;if(!g){d=12;break a}t=c[g+4>>2]|0;c[t>>2]=f;c[t+4>>2]=f;c[t+8>>2]=h}c[w>>2]=(c[w>>2]|0)+1;c[H>>2]=(c[H>>2]|0)+d;d=0;break}case 2:{h=h+-2|0;c[J>>2]=h;h=c[d+(h<<2)>>2]|0;f=g;if((c[f+12>>2]|0)>-1){d=KA(c[b>>2]|0,0,20)|0;if(!d){d=12;break a}g=c[d+4>>2]|0;c[g>>2]=-1;c[g+4>>2]=-1;c[g+8>>2]=-1;g=IA(c[b>>2]|0,d,f)|0;if(!g){d=12;break a}c[g+16>>2]=c[f+16>>2]}d=g;c[d+12>>2]=h;d=d+16|0;c[d>>2]=(c[d>>2]|0)+1;d=0;break}case 10:{t=h+-2|0;c[J>>2]=t;c[v>>2]=c[d+(t<<2)>>2];d=0;break}default:d=0}while(0);h=c[J>>2]|0;f=(d|0)==0;if((d|0)!=0|f&(h|0)>(L|0)^1){E=229;break a}}if((E|0)==72){d=12;break}else if((E|0)==156)break}else{g=0;e=0;E=229}while(0);if((E|0)==229){e=(e|0)>0;if(e|f^1)d=e?8:d;else c[b+8>>2]=g}i=Y;return d|0}function FA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var 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,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+16|0;C=G+4|0;B=G;z=d+12|0;A=c[z>>2]|0;D=(b|0)==0|(f|0)==0;if(!D){c[f+48>>2]=0;c[c[f+36>>2]>>2]=-1}g=c[f+28>>2]|0;E=oB((g<<3)+8|0)|0;do if(!E)g=12;else{c[E>>2]=-1;F=oB((g<<2)+4|0)|0;if(!F){pB(E);g=12;break}c[F>>2]=-1;h=0;while(1)if(h>>>0>g>>>0)break;else h=h+1|0;c[B>>2]=e;c[C>>2]=c[B>>2];GA(d,C)|0;c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;h=c[z>>2]|0;a:do if((g|0)!=0|(h|0)<=(A|0)){o=-1;h=0;n=0;e=E;m=0}else{v=d+16|0;w=f+32|0;x=f+36|0;y=f+16|0;r=h;t=0;j=-1;u=1;h=0;n=0;e=E;m=0;while(1){s=r+-1|0;c[z>>2]=s;q=c[v>>2]|0;b:do switch(c[q+(s<<2)>>2]|0){case 6:{l=r+-2|0;c[z>>2]=l;l=c[q+(l<<2)>>2]|0;g=0;do{k=e+(g<<2)|0;g=g+1|0}while((c[k>>2]|0)>-1);c[k>>2]=l<<1|1;c[e+(g<<2)>>2]=-1;g=0;while(1)if((c[F+(g<<2)>>2]|0)>-1)g=g+1|0;else break;c[F+(g+-1<<2)>>2]=-1;l=t;k=u;g=0;break}case 0:{r=r+-2|0;c[z>>2]=r;r=c[q+(r<<2)>>2]|0;s=r+12|0;l=c[s>>2]|0;if((l|0)>-1){g=0;do{k=e+(g<<2)|0;g=g+1|0}while((c[k>>2]|0)>-1);c[k>>2]=l<<1;c[e+(g<<2)>>2]=-1;if(!D){g=0;while(1)if((c[F+(g<<2)>>2]|0)>-1)g=g+1|0;else break;k=(c[y>>2]|0)+(l*12|0)+8|0;c[k>>2]=0;if((g|0)>0){g=oB((g<<2)+4|0)|0;if(!g){o=j;g=12;break a}c[k>>2]=g;k=c[F>>2]|0;if((k|0)>-1){l=g;o=0;do{c[l>>2]=k;o=o+1|0;k=c[F+(o<<2)>>2]|0;l=g+(o<<2)|0}while((k|0)>-1);g=l}c[g>>2]=-1}}c[B>>2]=c[s>>2];c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){o=j;break a}c[B>>2]=6;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){o=j;break a}}c:do switch(c[r>>2]|0){case 0:{q=c[c[r+4>>2]>>2]|0;if((q|0)>-1|(q|0)==-4?(c[e>>2]|0)>-1:0){if(D){c[r+20>>2]=1;g=0}else{g=jB(b,r,m)|0;c[(c[w>>2]|0)+(m<<2)>>2]=t;if((j|0)>-1){p=c[x>>2]|0;l=0;while(1){k=p+(l<<2)|0;o=l+1|0;if((c[k>>2]|0)>-1)l=o;else break}c[k>>2]=m;c[p+(o<<2)>>2]=j;c[p+(l+2<<2)>>2]=-1;j=-1;h=h+1|0}kB(e,f,m)}c[e>>2]=-1;q=t;p=u+1|0;n=n+1|0;m=u}else{q=t;p=u;g=0}break}case 1:{l=c[r+4>>2]|0;o=c[l>>2]|0;l=c[l+4>>2]|0;c[B>>2]=r;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=5;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=l;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){k=o+20|0;c[B>>2]=(c[k>>2]|0)+u;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){if((c[k>>2]|0)>0){g=(c[l+20>>2]|0)>0;k=(g&1)+u|0;g=g?u:-1}else{k=u;g=-1}c[B>>2]=g;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=4;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=o;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=0;c[C>>2]=c[B>>2];q=t;p=k;g=GA(d,C)|0}else{q=t;p=k}}else{q=t;p=k}}else{q=t;p=k}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}break}case 2:{k=c[r+4>>2]|0;if(D){if((c[e>>2]|0)>-1)g=1;else g=(a[k+12>>0]&1)!=0;c[B>>2]=g&1;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}}else{c[B>>2]=m;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}c[B>>2]=a[k+12>>0]&1;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}}c[B>>2]=r;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=1;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=c[k>>2];c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){if((c[e>>2]|0)<=-1?(a[k+12>>0]&1)==0:0){q=0;p=u;g=0;break c}if(D)g=0;else{g=jB(b,r,m)|0;c[(c[w>>2]|0)+(m<<2)>>2]=(a[k+12>>0]&1)==0?t:1;if((j|0)>-1){p=c[x>>2]|0;l=0;while(1){k=p+(l<<2)|0;o=l+1|0;if((c[k>>2]|0)>-1)l=o;else break}c[k>>2]=m;c[p+(o<<2)>>2]=j;c[p+(l+2<<2)>>2]=-1;j=-1;h=h+1|0}kB(e,f,m)}c[e>>2]=-1;q=0;p=u+1|0;n=n+1|0;m=u}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}break}case 3:{l=c[r+4>>2]|0;o=c[l>>2]|0;l=c[l+4>>2]|0;k=(c[e>>2]|0)>-1;q=u+1|0;c[B>>2]=k?q:u;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=k?u:m;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=e;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=(c[e>>2]|0)>>>31^1;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=r;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=l;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=o;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=3;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=l;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(!g){c[B>>2]=2;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}c[B>>2]=o;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}c[B>>2]=0;c[C>>2]=c[B>>2];g=GA(d,C)|0;if(g){q=t;p=u;break c}if((c[e>>2]|0)>-1){if(D)g=0;else{g=jB(b,r,m)|0;c[(c[w>>2]|0)+(m<<2)>>2]=t;if((j|0)>-1){p=c[x>>2]|0;l=0;while(1){k=p+(l<<2)|0;o=l+1|0;if((c[k>>2]|0)>-1)l=o;else break}c[k>>2]=m;c[p+(o<<2)>>2]=j;c[p+(l+2<<2)>>2]=-1;j=-1;h=h+1|0}kB(e,f,m)}c[e>>2]=-1;k=q;n=n+1|0;m=u}else{k=u;g=0}if((c[r+16>>2]|0)<=0){q=t;p=k;break c}q=t;p=k+2|0;m=k+1|0}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}}else{q=t;p=u}break}default:{q=t;p=u;g=0}}while(0);o=c[s>>2]|0;if((o|0)>-1){k=0;do{l=F+(k<<2)|0;k=k+1|0}while((c[l>>2]|0)>-1);c[l>>2]=o;c[F+(k<<2)>>2]=-1;l=q;k=p}else{l=q;k=p}break}case 1:{g=r+-2|0;c[z>>2]=g;g=c[q+(g<<2)>>2]|0;if(D){l=c[(c[c[g+4>>2]>>2]|0)+20>>2]|0;j=r+-3|0;c[z>>2]=j;c[g+20>>2]=(c[q+(j<<2)>>2]|0)+l;l=t;j=-1;k=u;g=0;break b}else{g=r+-3|0;c[z>>2]=g;g=c[q+(g<<2)>>2]|0;k=r+-4|0;c[z>>2]=k;g=(g|0)==0;l=g&1;j=g?j:c[q+(k<<2)>>2]|0;k=u;g=0;break b}}case 4:{u=r+-2|0;c[z>>2]=u;u=c[q+(u<<2)>>2]|0;k=r+-3|0;c[z>>2]=k;l=t;k=c[q+(k<<2)>>2]|0;g=0;m=(u|0)>-1?u:m;break}case 5:{g=r+-2|0;c[z>>2]=g;g=c[q+(g<<2)>>2]|0;if(D){l=c[g+4>>2]|0;c[g+20>>2]=(c[(c[l+4>>2]|0)+20>>2]|0)+(c[(c[l>>2]|0)+20>>2]|0);l=t;k=u;g=0}else{l=t;k=u;g=0}break}case 2:{while(1)if((c[e>>2]|0)>-1)e=e+4|0;else{l=t;k=u;g=0;break}break}case 3:{o=c[q+(r+-2<<2)>>2]|0;p=c[q+(r+-3<<2)>>2]|0;g=c[q+(r+-4<<2)>>2]|0;e=r+-5|0;c[z>>2]=e;if(D){t=c[g+4>>2]|0;l=c[g+16>>2]|0;c[g+20>>2]=(c[(c[t>>2]|0)+20>>2]|0)+(c[q+(e<<2)>>2]|0)+(c[(c[t+4>>2]|0)+20>>2]|0)+((l|0)>0?2:0)}else l=c[g+16>>2]|0;e=c[q+(r+-6<<2)>>2]|0;k=r+-7|0;c[z>>2]=k;k=c[q+(k<<2)>>2]|0;g=r+-8|0;c[z>>2]=g;g=c[q+(g<<2)>>2]|0;if((l|0)>0){if(D)g=0;else{lB(b,o,k)|0;c[(c[w>>2]|0)+(k<<2)>>2]=1;t=lB(b,p,g)|0;c[(c[w>>2]|0)+(g<<2)>>2]=1;g=t}l=1;k=u;n=n+2|0}else{l=1;k=u;g=0}break}default:{l=t;k=u;g=0}}while(0);r=c[z>>2]|0;if((g|0)!=0|(r|0)<=(A|0)){o=j;break a}else{t=l;u=k}}}while(0);if(!D?(kB(e,f,m),(o|0)>-1):0){l=c[f+36>>2]|0;j=0;while(1){e=l+(j<<2)|0;k=j+1|0;if((c[e>>2]|0)>-1)j=k;else break}c[e>>2]=m;c[l+(k<<2)>>2]=o;c[l+(j+2<<2)>>2]=-1;h=h+1|0}c[f+48>>2]=n;c[f+40>>2]=n;c[f+44>>2]=h;pB(E);pB(F)}while(0);i=G;return g|0}function GA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l;d=a+12|0;e=c[d>>2]|0;h=c[a>>2]|0;if((e|0)>=(h|0)){d=c[a+4>>2]|0;if((h|0)<(d|0)?(f=(c[a+8>>2]|0)+h|0,f=(f|0)>(d|0)?d:f,g=a+16|0,j=rB(c[g>>2]|0,f<<2)|0,(j|0)!=0):0){c[a>>2]=f;c[g>>2]=j;c[k>>2]=c[b>>2];GA(a,k)|0;d=0}else d=12}else{c[(c[a+16>>2]|0)+(e<<2)>>2]=c[b>>2];c[d>>2]=(c[d>>2]|0)+1;d=0}i=l;return d|0}function HA(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var 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;y=i;i=i+16|0;x=y+4|0;w=y;u=d+12|0;v=c[u>>2]|0;c[w>>2]=e;c[x>>2]=c[w>>2];GA(d,x)|0;c[w>>2]=0;c[x>>2]=c[w>>2];e=GA(d,x)|0;a:do if(!e){s=d+16|0;t=(f&1|0)==0;r=(f&2|0)!=0;o=1;q=0;f=j;while(1){e=c[u>>2]|0;if((e|0)>(v|0))j=f;else{f=q;e=0;break a}b:while(1){f=c[s>>2]|0;c:while(1){p=e+-1|0;c[u>>2]=p;switch(c[f+(p<<2)>>2]|0){case 1:{m=7;break c}case 0:{e=e+-2|0;c[u>>2]=e;e=c[f+(e<<2)>>2]|0;switch(c[e>>2]|0){case 0:{p=j;m=10;break b}case 3:{m=21;break b}case 1:{m=28;break b}case 2:{m=35;break c}default:{}}break}default:{}}e=c[u>>2]|0;if((e|0)<=(v|0)){f=q;e=0;break a}}if((m|0)==7){p=e+-2|0;c[u>>2]=p;f=c[f+(p<<2)>>2]|0}else if((m|0)==35){f=c[e+4>>2]|0;c[w>>2]=c[f>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}e=JA(b,c[f>>2]|0,c[f+4>>2]|0,c[f+8>>2]|0,a[f+12>>0]&1)|0;c[j>>2]=e;if(!e){f=q;e=12;break a}f=c[e+4>>2]|0}e=c[u>>2]|0;if((e|0)<=(v|0)){f=q;e=0;break a}else j=f}if((m|0)==10){n=c[e+4>>2]|0;l=c[n+8>>2]|0;f=c[n>>2]|0;e=c[n+4>>2]|0;if(!((f|0)>-1|(f|0)==-4))if(t|(f|0)!=-3)if((f|0)==-3)if(r&(o|0)!=0){c[h+(e<<2)>>2]=1;o=0;m=-3;f=q}else{m=-3;f=q}else{m=f;f=q}else{e=-1;m=-1;f=q;l=-1}else{m=f;f=q+1|0;l=(c[g>>2]|0)+l|0}j=KA(b,0,20)|0;if(!j){c[p>>2]=0;e=12}else{q=j+4|0;z=c[q>>2]|0;c[z>>2]=m;c[z+4>>2]=e;c[z+8>>2]=l;c[p>>2]=j;e=c[q>>2]|0;c[e+12>>2]=c[n+12>>2];c[e+16>>2]=c[n+16>>2];e=0}if((l|0)>(c[k>>2]|0)){c[k>>2]=l;l=o;j=p}else{l=o;j=p}}else if((m|0)==21){l=c[e+4>>2]|0;f=l+4|0;e=LA(b,c[l>>2]|0,c[f>>2]|0)|0;c[j>>2]=e;if(!e){f=q;e=12;break a}j=c[e+4>>2]|0;c[w>>2]=c[f>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=j+4;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=1;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=c[l>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];l=o;f=q;e=GA(d,x)|0}else if((m|0)==28){l=c[e+4>>2]|0;f=l+4|0;e=IA(b,c[l>>2]|0,c[f>>2]|0)|0;c[j>>2]=e;if(!e){f=q;e=12;break a}m=c[e+4>>2]|0;c[m>>2]=0;j=m+4|0;c[j>>2]=0;c[w>>2]=c[f>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=j;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=1;c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=c[l>>2];c[x>>2]=c[w>>2];e=GA(d,x)|0;if(e){f=q;break a}c[w>>2]=0;c[x>>2]=c[w>>2];l=o;f=q;j=m;e=GA(d,x)|0}if(!e){o=l;q=f;f=j}else break}}else f=0;while(0);c[g>>2]=(c[g>>2]|0)+f;i=y;return e|0}function IA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=KA(a,1,8)|0;if(!a)a=0;else{e=c[a+4>>2]|0;c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=(c[d+16>>2]|0)+(c[b+16>>2]|0)}return a|0}function JA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;b=KA(b,2,16)|0;if(!b)b=0;else{h=c[b+4>>2]|0;c[h>>2]=d;c[h+4>>2]=e;c[h+8>>2]=f;e=h+12|0;a[e>>0]=a[e>>0]&-2|g&1;c[b+16>>2]=c[d+16>>2]}return b|0}function KA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=ez(a,0,0,1,32)|0;if((e|0)!=0?(d=ez(a,0,0,1,d)|0,c[e+4>>2]=d,(d|0)!=0):0){c[e>>2]=b;c[e+8>>2]=-1;c[e+12>>2]=-1}else e=0;return e|0}function LA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=KA(a,3,8)|0;if(!a)a=0;else{e=c[a+4>>2]|0;c[e>>2]=b;c[e+4>>2]=d;c[a+16>>2]=(c[d+16>>2]|0)+(c[b+16>>2]|0)}return a|0}function MA(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;a=ez(a,0,0,1,64)|0;if(!a)a=0;else{c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=e;c[a+20>>2]=f;c[a+24>>2]=g;c[a+28>>2]=h;c[a+32>>2]=-1;c[a+36>>2]=-1;c[a+40>>2]=-1}return a|0}function NA(a){a=a|0;a=ez(a,0,0,1,32)|0;if(!a)a=0;else{c[a>>2]=-1;c[a+4>>2]=-1;c[a+8>>2]=-1}return a|0}function OA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=(e|0)==0;if(o)n=0;else{g=0;while(1)if((c[e+(g<<2)>>2]|0)>-1)g=g+1|0;else{n=g;break}}g=0;while(1)if((c[b+(g<<5)>>2]|0)>-1)g=g+1|0;else break;h=0;while(1)if((c[d+(h<<5)>>2]|0)>-1)h=h+1|0;else break;g=ez(a,0,0,1,(h+g<<5)+32|0)|0;a:do if(!g)g=0;else{h=c[b>>2]|0;if((h|0)>-1){m=(n|0)>0;i=0;while(1){c[g+(i<<5)>>2]=h;c[g+(i<<5)+4>>2]=c[b+(i<<5)+4>>2];c[g+(i<<5)+8>>2]=c[b+(i<<5)+8>>2];c[g+(i<<5)+16>>2]=c[b+(i<<5)+16>>2]|f;c[g+(i<<5)+20>>2]=c[b+(i<<5)+20>>2];c[g+(i<<5)+24>>2]=c[b+(i<<5)+24>>2];c[g+(i<<5)+28>>2]=c[b+(i<<5)+28>>2];k=b+(i<<5)+12|0;j=c[k>>2]|0;h=(j|0)==0;if(o&h)c[g+(i<<5)+12>>2]=0;else{if(h)h=0;else{h=0;while(1)if((c[j+(h<<2)>>2]|0)>-1)h=h+1|0;else break}l=ez(a,0,0,0,(h+n<<2)+4|0)|0;if(!l){g=0;break a}if((h|0)>0){j=c[k>>2]|0;k=0;do{c[l+(k<<2)>>2]=c[j+(k<<2)>>2];k=k+1|0}while((k|0)!=(h|0))}else h=0;if(m){j=0;do{c[l+(j+h<<2)>>2]=c[e+(j<<2)>>2];j=j+1|0}while((j|0)!=(n|0));j=n}else j=0;c[l+(j+h<<2)>>2]=-1;c[g+(i<<5)+12>>2]=l}i=i+1|0;h=c[b+(i<<5)>>2]|0;if((h|0)<=-1){n=i;break}}}else n=0;i=c[d>>2]|0;h=g+(n<<5)|0;if((i|0)>-1){l=n;m=0;do{c[h>>2]=i;c[g+(l<<5)+4>>2]=c[d+(m<<5)+4>>2];c[g+(l<<5)+8>>2]=c[d+(m<<5)+8>>2];c[g+(l<<5)+16>>2]=c[d+(m<<5)+16>>2];c[g+(l<<5)+20>>2]=c[d+(m<<5)+20>>2];c[g+(l<<5)+24>>2]=c[d+(m<<5)+24>>2];c[g+(l<<5)+28>>2]=c[d+(m<<5)+28>>2];j=d+(m<<5)+12|0;i=c[j>>2]|0;if(!i)c[g+(l<<5)+12>>2]=0;else{h=0;while(1)if((c[i+(h<<2)>>2]|0)>-1)h=h+1|0;else break;k=ez(a,0,0,0,(h<<2)+4|0)|0;if(!k){g=0;break a}if((h|0)>0){i=c[j>>2]|0;j=0;do{c[k+(j<<2)>>2]=c[i+(j<<2)>>2];j=j+1|0}while((j|0)!=(h|0))}else h=0;c[k+(h<<2)>>2]=-1;c[g+(l<<5)+12>>2]=k}m=m+1|0;i=c[d+(m<<5)>>2]|0;l=m+n|0;h=g+(l<<5)|0}while((i|0)>-1)}c[h>>2]=-1}while(0);return g|0}function PA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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;u=i;i=i+16|0;s=u+4|0;t=u;p=a+12|0;q=c[p>>2]|0;r=(f|0)!=0;if(r)c[f>>2]=0;c[t>>2]=b;c[s>>2]=c[t>>2];b=GA(a,s)|0;a:do if(!b){k=a+16|0;l=(d|0)==0;m=(e|0)==0;b=c[p>>2]|0;if((b|0)>(q|0))while(1){b=b+-1|0;c[p>>2]=b;b=c[(c[k>>2]|0)+(b<<2)>>2]|0;b:do switch(c[b>>2]|0){case 0:{b=c[b+4>>2]|0;switch(c[b>>2]|0){case -3:break;case -2:{if(m)break b;c[e>>2]=c[e>>2]|c[b+4>>2];break b}default:break b}j=c[b+4>>2]|0;if((j|0)>-1){c:do if(!l){b=c[d>>2]|0;d:do if((b|0)>-1){g=d;h=0;while(1){if((b|0)==(j|0)){b=h;break}h=h+1|0;g=d+(h<<2)|0;b=c[g>>2]|0;if((b|0)<=-1){b=h;break d}}if((j|0)>=0)break c}else{g=d;b=0}while(0);c[g>>2]=j;c[d+(b+1<<2)>>2]=-1}while(0);if(r)c[f>>2]=(c[f>>2]|0)+1}break}case 3:{b=c[b+4>>2]|0;g=c[b>>2]|0;if(c[g+8>>2]|0){c[t>>2]=g;c[s>>2]=c[t>>2];n=GA(a,s)|0;o=6;break b}b=c[b+4>>2]|0;if(c[b+8>>2]|0){c[t>>2]=b;c[s>>2]=c[t>>2];n=GA(a,s)|0;o=6}break}case 1:{g=c[b+4>>2]|0;c[t>>2]=c[g>>2];c[s>>2]=c[t>>2];b=GA(a,s)|0;if(b)break a;c[t>>2]=c[g+4>>2];c[s>>2]=c[t>>2];n=GA(a,s)|0;o=6;break}case 2:{b=c[c[b+4>>2]>>2]|0;if(c[b+8>>2]|0){c[t>>2]=b;c[s>>2]=c[t>>2];n=GA(a,s)|0;o=6}break}default:{}}while(0);if((o|0)==6?(o=0,(n|0)!=0):0){b=n;break a}b=c[p>>2]|0;if((b|0)<=(q|0)){b=0;break a}}else b=0}while(0);i=u;return b|0}function QA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:while(1){switch(c[a>>2]|0){case 2:{a=c[a+4>>2]|0;if((c[a+8>>2]|0)==-1?(h=c[a>>2]|0,h=iB(c[h+28>>2]|0,c[h+24>>2]|0,b,d,e)|0,(h|0)!=0):0){a=h;break a}break}case 3:{f=c[a+4>>2]|0;a=QA(c[f>>2]|0,b,d,e)|0;if(a)break a;a=f+4|0;break}case 1:{f=c[a+4>>2]|0;g=f+4|0;a=iB(c[(c[f>>2]|0)+28>>2]|0,c[(c[g>>2]|0)+24>>2]|0,b,d,e)|0;if(a)break a;a=QA(c[f>>2]|0,b,d,e)|0;if(!a)a=g;else break a;break}default:{a=0;break a}}a=c[a>>2]|0}return a|0}function RA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if((a|0)>0){h=0;while(1){f=c[d+(h<<2)>>2]|0;g=c[e+(h<<2)>>2]|0;if(!(c[b+(h<<2)>>2]|0)){if((f|0)<(g|0)){f=1;break a}if((f|0)>(g|0)){f=0;break a}}else{if((f|0)>(g|0)){f=1;break a}if((f|0)<(g|0)){f=0;break a}}h=h+1|0;if((h|0)>=(a|0)){f=0;break}}}else f=0;while(0);return f|0}function SA(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((d&8|0)==0&(g|0)>-1){n=c[e+16>>2]|0;l=e+28|0;d=c[l>>2]|0;m=(a|0)!=0;if(m&(d|0)!=0){j=e+48|0;k=0;do{d=c[n+(k*12|0)>>2]|0;if((d|0)==(c[j>>2]|0))i=g;else i=c[f+(d<<2)>>2]|0;h=b+(k<<3)|0;c[h>>2]=i;d=c[n+(k*12|0)+4>>2]|0;if((d|0)==(c[j>>2]|0))e=g;else e=c[f+(d<<2)>>2]|0;d=b+(k<<3)+4|0;c[d>>2]=e;if((i|0)==-1|(e|0)==-1){c[d>>2]=-1;c[h>>2]=-1}k=k+1|0;d=c[l>>2]|0}while(k>>>0<a>>>0&k>>>0<d>>>0);g=d}else g=d;if(m&(g|0)!=0){d=0;do{h=b+(d<<3)+4|0;i=c[n+(d*12|0)+8>>2]|0;if((i|0)!=0?(o=c[i>>2]|0,(o|0)>-1):0){j=b+(d<<3)|0;k=o;e=c[j>>2]|0;l=0;do{if(!((e|0)>=(c[b+(k<<3)>>2]|0)?(c[h>>2]|0)<=(c[b+(k<<3)+4>>2]|0):0)){c[h>>2]=-1;c[j>>2]=-1;e=-1}l=l+1|0;k=c[i+(l<<2)>>2]|0}while((k|0)>-1)}d=d+1|0}while(d>>>0<a>>>0&d>>>0<g>>>0)}else d=0}else d=0;if(d>>>0<a>>>0)do{c[b+(d<<3)>>2]=-1;c[b+(d<<3)+4>>2]=-1;d=d+1|0}while((d|0)!=(a|0));return}function TA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[a>>2]|0;a:do if(!e)e=0;else{f=(d|0)==0;d=a;while(1){if(f){if(dy(b,e)|0){e=1;break a}}else{a=oy(b)|0;if(dy(a,c[d>>2]|0)|0){e=1;break a}a=py(b)|0;if(dy(a,c[d>>2]|0)|0){e=1;break a}}d=d+4|0;e=c[d>>2]|0;if(!e){e=0;break}}}while(0);return e|0}function UA(a){a=a|0;if(!(c[a+68>>2]|0))jz(a);return}function VA(a){a=a|0;if(!(c[a+68>>2]|0))jz(a);return}function WA(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(ub[c[a+36>>2]&31](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0<f>>>0)ub[c[a+40>>2]&31](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function XA(e,f,g,j,l){e=e|0;f=f|0;g=g|0;j=j|0;l=l|0;var m=0,n=0,o=0,p=0,q=0.0,r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=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,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;ha=i;i=i+624|0;ca=ha+24|0;ea=ha+16|0;da=ha+588|0;Y=ha+576|0;ba=ha;V=ha+536|0;ga=ha+8|0;fa=ha+528|0;M=(e|0)!=0;N=V+40|0;U=N;V=V+39|0;W=ga+4|0;X=Y+12|0;Y=Y+11|0;Z=da;$=X;aa=$-Z|0;O=-2-Z|0;P=$+2|0;Q=ca+288|0;R=da+9|0;S=R;T=da+8|0;m=0;w=f;n=0;f=0;a:while(1){do if((m|0)>-1)if((n|0)>(2147483647-m|0)){c[(qy()|0)>>2]=75;m=-1;break}else{m=n+m|0;break}while(0);n=a[w>>0]|0;if(!(n<<24>>24)){L=245;break}else o=w;b:while(1){switch(n<<24>>24){case 37:{n=o;L=9;break b}case 0:{n=o;break b}default:{}}K=o+1|0;n=a[K>>0]|0;o=K}c:do if((L|0)==9)while(1){L=0;if((a[n+1>>0]|0)!=37)break c;o=o+1|0;n=n+2|0;if((a[n>>0]|0)==37)L=9;else break}while(0);y=o-w|0;if(M?(c[e>>2]&32|0)==0:0)Lz(w,y,e)|0;if((o|0)!=(w|0)){w=n;n=y;continue}r=n+1|0;o=a[r>>0]|0;p=(o<<24>>24)+-48|0;if(p>>>0<10){K=(a[n+2>>0]|0)==36;r=K?n+3|0:r;o=a[r>>0]|0;u=K?p:-1;f=K?1:f}else u=-1;n=o<<24>>24;d:do if((n&-32|0)==32){p=0;while(1){if(!(1<<n+-32&75913)){s=p;n=r;break d}p=1<<(o<<24>>24)+-32|p;r=r+1|0;o=a[r>>0]|0;n=o<<24>>24;if((n&-32|0)!=32){s=p;n=r;break}}}else{s=0;n=r}while(0);do if(o<<24>>24==42){p=n+1|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+2>>0]|0)==36:0){c[l+(o<<2)>>2]=10;f=1;n=n+3|0;o=c[j+((a[p>>0]|0)+-48<<3)>>2]|0}else{if(f){m=-1;break a}if(!M){x=s;n=p;f=0;K=0;break}f=(c[g>>2]|0)+(4-1)&~(4-1);o=c[f>>2]|0;c[g>>2]=f+4;f=0;n=p}if((o|0)<0){x=s|8192;K=0-o|0}else{x=s;K=o}}else{p=(o<<24>>24)+-48|0;if(p>>>0<10){o=0;do{o=(o*10|0)+p|0;n=n+1|0;p=(a[n>>0]|0)+-48|0}while(p>>>0<10);if((o|0)<0){m=-1;break a}else{x=s;K=o}}else{x=s;K=0}}while(0);e:do if((a[n>>0]|0)==46){p=n+1|0;o=a[p>>0]|0;if(o<<24>>24!=42){r=(o<<24>>24)+-48|0;if(r>>>0<10){n=p;o=0}else{n=p;r=0;break}while(1){o=(o*10|0)+r|0;n=n+1|0;r=(a[n>>0]|0)+-48|0;if(r>>>0>=10){r=o;break e}}}p=n+2|0;o=(a[p>>0]|0)+-48|0;if(o>>>0<10?(a[n+3>>0]|0)==36:0){c[l+(o<<2)>>2]=10;n=n+4|0;r=c[j+((a[p>>0]|0)+-48<<3)>>2]|0;break}if(f){m=-1;break a}if(M){n=(c[g>>2]|0)+(4-1)&~(4-1);r=c[n>>2]|0;c[g>>2]=n+4;n=p}else{n=p;r=0}}else r=-1;while(0);t=0;while(1){o=(a[n>>0]|0)+-65|0;if(o>>>0>57){m=-1;break a}p=n+1|0;o=a[175096+(t*58|0)+o>>0]|0;s=o&255;if((s+-1|0)>>>0<8){n=p;t=s}else{J=p;break}}if(!(o<<24>>24)){m=-1;break}p=(u|0)>-1;do if(o<<24>>24==19)if(p){m=-1;break a}else L=52;else{if(p){c[l+(u<<2)>>2]=s;H=j+(u<<3)|0;I=c[H+4>>2]|0;L=ba;c[L>>2]=c[H>>2];c[L+4>>2]=I;L=52;break}if(!M){m=0;break a}fB(ba,s,g)}while(0);if((L|0)==52?(L=0,!M):0){w=J;n=y;continue}u=a[n>>0]|0;u=(t|0)!=0&(u&15|0)==3?u&-33:u;p=x&-65537;I=(x&8192|0)==0?x:p;f:do switch(u|0){case 110:switch(t|0){case 0:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 1:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 2:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}case 3:{b[c[ba>>2]>>1]=m;w=J;n=y;continue a}case 4:{a[c[ba>>2]>>0]=m;w=J;n=y;continue a}case 6:{c[c[ba>>2]>>2]=m;w=J;n=y;continue a}case 7:{w=c[ba>>2]|0;c[w>>2]=m;c[w+4>>2]=((m|0)<0)<<31>>31;w=J;n=y;continue a}default:{w=J;n=y;continue a}}case 112:{t=I|8;r=r>>>0>8?r:8;u=120;L=64;break}case 88:case 120:{t=I;L=64;break}case 111:{p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;if((o|0)==0&(p|0)==0)n=N;else{n=N;do{n=n+-1|0;a[n>>0]=o&7|48;o=yB(o|0,p|0,3)|0;p=C}while(!((o|0)==0&(p|0)==0))}if(!(I&8)){o=I;t=0;s=175576;L=77}else{t=U-n+1|0;o=I;r=(r|0)<(t|0)?t:r;t=0;s=175576;L=77}break}case 105:case 100:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;if((o|0)<0){n=vB(0,0,n|0,o|0)|0;o=C;p=ba;c[p>>2]=n;c[p+4>>2]=o;p=1;s=175576;L=76;break f}if(!(I&2048)){s=I&1;p=s;s=(s|0)==0?175576:175578;L=76}else{p=1;s=175577;L=76}break}case 117:{o=ba;n=c[o>>2]|0;o=c[o+4>>2]|0;p=0;s=175576;L=76;break}case 99:{a[V>>0]=c[ba>>2];w=V;o=1;t=0;u=175576;n=N;break}case 109:{n=ry(c[(qy()|0)>>2]|0)|0;L=82;break}case 115:{n=c[ba>>2]|0;n=(n|0)!=0?n:175586;L=82;break}case 67:{c[ga>>2]=c[ba>>2];c[W>>2]=0;c[ba>>2]=ga;r=-1;L=86;break}case 83:{if(!r){hB(e,32,K,0,I);n=0;L=98}else L=86;break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{q=+h[ba>>3];c[ea>>2]=0;h[k>>3]=q;if((c[k+4>>2]|0)>=0)if(!(I&2048)){H=I&1;G=H;H=(H|0)==0?175594:175599}else{G=1;H=175596}else{q=-q;G=1;H=175593}h[k>>3]=q;F=c[k+4>>2]&2146435072;do if(F>>>0<2146435072|(F|0)==2146435072&0<0){v=+Jy(q,ea)*2.0;o=v!=0.0;if(o)c[ea>>2]=(c[ea>>2]|0)+-1;D=u|32;if((D|0)==97){w=u&32;y=(w|0)==0?H:H+9|0;x=G|2;n=12-r|0;do if(!(r>>>0>11|(n|0)==0)){q=8.0;do{n=n+-1|0;q=q*16.0}while((n|0)!=0);if((a[y>>0]|0)==45){q=-(q+(-v-q));break}else{q=v+q-q;break}}else q=v;while(0);o=c[ea>>2]|0;n=(o|0)<0?0-o|0:o;n=gB(n,((n|0)<0)<<31>>31,X)|0;if((n|0)==(X|0)){a[Y>>0]=48;n=Y}a[n+-1>>0]=(o>>31&2)+43;t=n+-2|0;a[t>>0]=u+15;s=(r|0)<1;p=(I&8|0)==0;o=da;while(1){H=~~q;n=o+1|0;a[o>>0]=d[175560+H>>0]|w;q=(q-+(H|0))*16.0;do if((n-Z|0)==1){if(p&(s&q==0.0))break;a[n>>0]=46;n=o+2|0}while(0);if(!(q!=0.0))break;else o=n}r=(r|0)!=0&(O+n|0)<(r|0)?P+r-t|0:aa-t+n|0;p=r+x|0;hB(e,32,K,p,I);if(!(c[e>>2]&32))Lz(y,x,e)|0;hB(e,48,K,p,I^65536);n=n-Z|0;if(!(c[e>>2]&32))Lz(da,n,e)|0;o=$-t|0;hB(e,48,r-(n+o)|0,0,0);if(!(c[e>>2]&32))Lz(t,o,e)|0;hB(e,32,K,p,I^8192);n=(p|0)<(K|0)?K:p;break}n=(r|0)<0?6:r;if(o){o=(c[ea>>2]|0)+-28|0;c[ea>>2]=o;q=v*268435456.0}else{q=v;o=c[ea>>2]|0}F=(o|0)<0?ca:Q;E=F;o=F;do{B=~~q>>>0;c[o>>2]=B;o=o+4|0;q=(q-+(B>>>0))*1.0e9}while(q!=0.0);p=o;o=c[ea>>2]|0;if((o|0)>0){s=F;while(1){t=(o|0)>29?29:o;r=p+-4|0;do if(r>>>0<s>>>0)r=s;else{o=0;do{B=DB(c[r>>2]|0,0,t|0)|0;B=wB(B|0,C|0,o|0,0)|0;o=C;A=LB(B|0,o|0,1e9,0)|0;c[r>>2]=A;o=KB(B|0,o|0,1e9,0)|0;r=r+-4|0}while(r>>>0>=s>>>0);if(!o){r=s;break}r=s+-4|0;c[r>>2]=o}while(0);while(1){if(p>>>0<=r>>>0)break;o=p+-4|0;if(!(c[o>>2]|0))p=o;else break}o=(c[ea>>2]|0)-t|0;c[ea>>2]=o;if((o|0)>0)s=r;else break}}else r=F;if((o|0)<0){y=((n+25|0)/9|0)+1|0;z=(D|0)==102;w=r;while(1){x=0-o|0;x=(x|0)>9?9:x;do if(w>>>0<p>>>0){o=(1<<x)+-1|0;s=1e9>>>x;r=0;t=w;do{B=c[t>>2]|0;c[t>>2]=(B>>>x)+r;r=_(B&o,s)|0;t=t+4|0}while(t>>>0<p>>>0);o=(c[w>>2]|0)==0?w+4|0:w;if(!r){r=o;break}c[p>>2]=r;r=o;p=p+4|0}else r=(c[w>>2]|0)==0?w+4|0:w;while(0);o=z?F:r;p=(p-o>>2|0)>(y|0)?o+(y<<2)|0:p;o=(c[ea>>2]|0)+x|0;c[ea>>2]=o;if((o|0)>=0){w=r;break}else w=r}}else w=r;do if(w>>>0<p>>>0){o=(E-w>>2)*9|0;s=c[w>>2]|0;if(s>>>0<10)break;else r=10;do{r=r*10|0;o=o+1|0}while(s>>>0>=r>>>0)}else o=0;while(0);A=(D|0)==103;B=(n|0)!=0;r=n-((D|0)!=102?o:0)+((B&A)<<31>>31)|0;if((r|0)<(((p-E>>2)*9|0)+-9|0)){t=r+9216|0;z=(t|0)/9|0;r=F+(z+-1023<<2)|0;t=((t|0)%9|0)+1|0;if((t|0)<9){s=10;do{s=s*10|0;t=t+1|0}while((t|0)!=9)}else s=10;x=c[r>>2]|0;y=(x>>>0)%(s>>>0)|0;if((y|0)==0?(F+(z+-1022<<2)|0)==(p|0):0)s=w;else L=163;do if((L|0)==163){L=0;v=(((x>>>0)/(s>>>0)|0)&1|0)==0?9007199254740992.0:9007199254740994.0;t=(s|0)/2|0;do if(y>>>0<t>>>0)q=.5;else{if((y|0)==(t|0)?(F+(z+-1022<<2)|0)==(p|0):0){q=1.0;break}q=1.5}while(0);do if(G){if((a[H>>0]|0)!=45)break;v=-v;q=-q}while(0);t=x-y|0;c[r>>2]=t;if(!(v+q!=v)){s=w;break}D=t+s|0;c[r>>2]=D;if(D>>>0>999999999){o=w;while(1){s=r+-4|0;c[r>>2]=0;if(s>>>0<o>>>0){o=o+-4|0;c[o>>2]=0}D=(c[s>>2]|0)+1|0;c[s>>2]=D;if(D>>>0>999999999)r=s;else{w=o;r=s;break}}}o=(E-w>>2)*9|0;t=c[w>>2]|0;if(t>>>0<10){s=w;break}else s=10;do{s=s*10|0;o=o+1|0}while(t>>>0>=s>>>0);s=w}while(0);D=r+4|0;w=s;p=p>>>0>D>>>0?D:p}y=0-o|0;while(1){if(p>>>0<=w>>>0){z=0;D=p;break}r=p+-4|0;if(!(c[r>>2]|0))p=r;else{z=1;D=p;break}}do if(A){n=(B&1^1)+n|0;if((n|0)>(o|0)&(o|0)>-5){u=u+-1|0;n=n+-1-o|0}else{u=u+-2|0;n=n+-1|0}p=I&8;if(p)break;do if(z){p=c[D+-4>>2]|0;if(!p){r=9;break}if(!((p>>>0)%10|0)){s=10;r=0}else{r=0;break}do{s=s*10|0;r=r+1|0}while(((p>>>0)%(s>>>0)|0|0)==0)}else r=9;while(0);p=((D-E>>2)*9|0)+-9|0;if((u|32|0)==102){p=p-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}else{p=p+o-r|0;p=(p|0)<0?0:p;n=(n|0)<(p|0)?n:p;p=0;break}}else p=I&8;while(0);x=n|p;s=(x|0)!=0&1;t=(u|32|0)==102;if(t){o=(o|0)>0?o:0;u=0}else{r=(o|0)<0?y:o;r=gB(r,((r|0)<0)<<31>>31,X)|0;if(($-r|0)<2)do{r=r+-1|0;a[r>>0]=48}while(($-r|0)<2);a[r+-1>>0]=(o>>31&2)+43;E=r+-2|0;a[E>>0]=u;o=$-E|0;u=E}y=G+1+n+s+o|0;hB(e,32,K,y,I);if(!(c[e>>2]&32))Lz(H,G,e)|0;hB(e,48,K,y,I^65536);do if(t){r=w>>>0>F>>>0?F:w;o=r;do{p=gB(c[o>>2]|0,0,R)|0;do if((o|0)==(r|0)){if((p|0)!=(R|0))break;a[T>>0]=48;p=T}else{if(p>>>0<=da>>>0)break;do{p=p+-1|0;a[p>>0]=48}while(p>>>0>da>>>0)}while(0);if(!(c[e>>2]&32))Lz(p,S-p|0,e)|0;o=o+4|0}while(o>>>0<=F>>>0);do if(x){if(c[e>>2]&32)break;Lz(175628,1,e)|0}while(0);if((n|0)>0&o>>>0<D>>>0){p=o;while(1){o=gB(c[p>>2]|0,0,R)|0;if(o>>>0>da>>>0)do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0);if(!(c[e>>2]&32))Lz(o,(n|0)>9?9:n,e)|0;p=p+4|0;o=n+-9|0;if(!((n|0)>9&p>>>0<D>>>0)){n=o;break}else n=o}}hB(e,48,n+9|0,9,0)}else{t=z?D:w+4|0;if((n|0)>-1){s=(p|0)==0;r=w;do{o=gB(c[r>>2]|0,0,R)|0;if((o|0)==(R|0)){a[T>>0]=48;o=T}do if((r|0)==(w|0)){p=o+1|0;if(!(c[e>>2]&32))Lz(o,1,e)|0;if(s&(n|0)<1){o=p;break}if(c[e>>2]&32){o=p;break}Lz(175628,1,e)|0;o=p}else{if(o>>>0<=da>>>0)break;do{o=o+-1|0;a[o>>0]=48}while(o>>>0>da>>>0)}while(0);p=S-o|0;if(!(c[e>>2]&32))Lz(o,(n|0)>(p|0)?p:n,e)|0;n=n-p|0;r=r+4|0}while(r>>>0<t>>>0&(n|0)>-1)}hB(e,48,n+18|0,18,0);if(c[e>>2]&32)break;Lz(u,$-u|0,e)|0}while(0);hB(e,32,K,y,I^8192);n=(y|0)<(K|0)?K:y}else{t=(u&32|0)!=0;s=q!=q|0.0!=0.0;o=s?0:G;r=o+3|0;hB(e,32,K,r,p);n=c[e>>2]|0;if(!(n&32)){Lz(H,o,e)|0;n=c[e>>2]|0}if(!(n&32))Lz(s?(t?175620:175624):t?175612:175616,3,e)|0;hB(e,32,K,r,I^8192);n=(r|0)<(K|0)?K:r}while(0);w=J;continue a}default:{p=I;o=r;t=0;u=175576;n=N}}while(0);g:do if((L|0)==64){p=ba;o=c[p>>2]|0;p=c[p+4>>2]|0;s=u&32;if(!((o|0)==0&(p|0)==0)){n=N;do{n=n+-1|0;a[n>>0]=d[175560+(o&15)>>0]|s;o=yB(o|0,p|0,4)|0;p=C}while(!((o|0)==0&(p|0)==0));L=ba;if((t&8|0)==0|(c[L>>2]|0)==0&(c[L+4>>2]|0)==0){o=t;t=0;s=175576;L=77}else{o=t;t=2;s=175576+(u>>4)|0;L=77}}else{n=N;o=t;t=0;s=175576;L=77}}else if((L|0)==76){n=gB(n,o,N)|0;o=I;t=p;L=77}else if((L|0)==82){L=0;I=cA(n,0,r)|0;H=(I|0)==0;w=n;o=H?r:I-n|0;t=0;u=175576;n=H?n+r|0:I}else if((L|0)==86){L=0;o=0;n=0;s=c[ba>>2]|0;while(1){p=c[s>>2]|0;if(!p)break;n=Wy(fa,p)|0;if((n|0)<0|n>>>0>(r-o|0)>>>0)break;o=n+o|0;if(r>>>0>o>>>0)s=s+4|0;else break}if((n|0)<0){m=-1;break a}hB(e,32,K,o,I);if(!o){n=0;L=98}else{p=0;r=c[ba>>2]|0;while(1){n=c[r>>2]|0;if(!n){n=o;L=98;break g}n=Wy(fa,n)|0;p=n+p|0;if((p|0)>(o|0)){n=o;L=98;break g}if(!(c[e>>2]&32))Lz(fa,n,e)|0;if(p>>>0>=o>>>0){n=o;L=98;break}else r=r+4|0}}}while(0);if((L|0)==98){L=0;hB(e,32,K,n,I^8192);w=J;n=(K|0)>(n|0)?K:n;continue}if((L|0)==77){L=0;p=(r|0)>-1?o&-65537:o;o=ba;o=(c[o>>2]|0)!=0|(c[o+4>>2]|0)!=0;if((r|0)!=0|o){o=(o&1^1)+(U-n)|0;w=n;o=(r|0)>(o|0)?r:o;u=s;n=N}else{w=N;o=0;u=s;n=N}}s=n-w|0;o=(o|0)<(s|0)?s:o;r=t+o|0;n=(K|0)<(r|0)?r:K;hB(e,32,n,r,p);if(!(c[e>>2]&32))Lz(u,t,e)|0;hB(e,48,n,r,p^65536);hB(e,48,o,s,0);if(!(c[e>>2]&32))Lz(w,s,e)|0;hB(e,32,n,r,p^8192);w=J}h:do if((L|0)==245)if(!e)if(f){m=1;while(1){f=c[l+(m<<2)>>2]|0;if(!f)break;fB(j+(m<<3)|0,f,g);m=m+1|0;if((m|0)>=10){m=1;break h}}if((m|0)<10)while(1){if(c[l+(m<<2)>>2]|0){m=-1;break h}m=m+1|0;if((m|0)>=10){m=1;break}}else m=1}else m=0;while(0);i=ha;return m|0}function YA(a,b,c){a=a|0;b=b|0;c=c|0;return qz(a,b,c)|0}function ZA(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+240|0;o=p;c[o>>2]=a;a:do if((e|0)>1){n=0-b|0;g=e;h=a;k=a;l=1;while(1){a=h+n|0;m=g+-2|0;j=h+(0-((c[f+(m<<2)>>2]|0)+b))|0;if((Lb[d&63](k,j)|0)>-1?(Lb[d&63](k,a)|0)>-1:0){e=l;break a}e=l+1|0;h=o+(l<<2)|0;if((Lb[d&63](j,a)|0)>-1){c[h>>2]=j;a=j;g=g+-1|0}else{c[h>>2]=a;g=m}if((g|0)<=1)break a;h=a;k=c[o>>2]|0;l=e}}else e=1;while(0);dB(b,o,e);i=p;return}function _A(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+240|0;p=r;k=c[e>>2]|0;e=c[e+4>>2]|0;c[p>>2]=a;o=0-b|0;a:do if((e|0)!=0|(k|0)!=1?(j=a+(0-(c[h+(f<<2)>>2]|0))|0,(Lb[d&63](j,a)|0)>=1):0){g=(g|0)==0;n=j;l=k;m=e;j=1;while(1){if(g&(f|0)>1){e=c[h+(f+-2<<2)>>2]|0;if((Lb[d&63](a+o|0,n)|0)>-1){g=f;e=j;q=20;break a}if((Lb[d&63](a+(0-(e+b))|0,n)|0)>-1){g=f;e=j;q=20;break a}}e=j+1|0;c[p+(j<<2)>>2]=n;g=l+-1|0;do if(g){if(!(g&1)){a=g;g=0;do{g=g+1|0;a=a>>>1}while((a&1|0)==0);if(!g)q=11}else q=11;if((q|0)==11){q=0;if(!m){g=64;q=16;break}if(!(m&1)){a=m;g=0}else{k=0;a=l;j=m;g=0;break}while(1){j=g+1|0;a=a>>>1;if(a&1){a=j;break}else g=j}if(!a){k=0;a=l;j=m;g=0;break}else g=g+33|0}if(g>>>0>31)q=16;else{k=g;a=l;j=m}}else{g=32;q=16}while(0);if((q|0)==16){q=0;k=g+-32|0;a=m;j=0}l=j<<32-k|a>>>k;m=j>>>k;g=g+f|0;if(!((m|0)!=0|(l|0)!=1)){a=n;q=20;break a}a=n+(0-(c[h+(g<<2)>>2]|0))|0;if((Lb[d&63](a,c[p>>2]|0)|0)<1){a=n;f=g;g=0;q=19;break}else{k=n;f=g;g=1;n=a;j=e;a=k}}}else{e=1;q=19}while(0);if((q|0)==19?(g|0)==0:0){g=f;q=20}if((q|0)==20){dB(b,p,e);ZA(a,b,d,g,h)}i=r;return}function $A(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,j=0;j=i;i=i+112|0;h=j;f=h;g=f+112|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));f=h+4|0;c[f>>2]=a;g=h+8|0;c[g>>2]=-1;c[h+44>>2]=a;c[h+76>>2]=-1;vy(h,0);e=+sy(h,d,1);d=(c[f>>2]|0)-(c[g>>2]|0)+(c[h+108>>2]|0)|0;if(b)c[b>>2]=(d|0)!=0?a+d|0:a;i=j;return +e}function aB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+112|0;j=k;c[j>>2]=0;g=j+4|0;c[g>>2]=a;c[j+44>>2]=a;h=j+8|0;c[h>>2]=(a|0)<0?-1:a+2147483647|0;c[j+76>>2]=-1;vy(j,0);e=ty(j,d,1,e,f)|0;if(b)c[b>>2]=a+((c[g>>2]|0)+(c[j+108>>2]|0)-(c[h>>2]|0));i=k;return e|0}function bB(a){a=a|0;return}function cB(){return}function dB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,(a|0)!=0):0)while(1){f=a>>>0>256?256:a;AB(e|0,c[b>>2]|0,f|0)|0;e=0;do{j=b+(e<<2)|0;e=e+1|0;AB(c[j>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[j>>2]=(c[j>>2]|0)+f}while((e|0)!=(d|0));if((a|0)==(f|0))break a;a=a-f|0;e=c[g>>2]|0}while(0);i=h;return}function eB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;AB(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function fB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;break a}case 11:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;e=a;c[e>>2]=b;c[e+4>>2]=0;break a}case 12:{e=(c[d>>2]|0)+(8-1)&~(8-1);b=e;f=c[b>>2]|0;b=c[b+4>>2]|0;c[d>>2]=e+8;e=a;c[e>>2]=f;c[e+4>>2]=b;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&65535)<<16>>16;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;e=(e&255)<<24>>24;f=a;c[f>>2]=e;c[f+4>>2]=((e|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);e=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=e&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}case 18:{f=(c[d>>2]|0)+(8-1)&~(8-1);g=+h[f>>3];c[d>>2]=f+8;h[a>>3]=g;break a}default:break a}while(0);while(0);return}function gB(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)while(1){e=LB(b|0,c|0,10,0)|0;d=d+-1|0;a[d>>0]=e|48;e=KB(b|0,c|0,10,0)|0;if(c>>>0>9|(c|0)==9&b>>>0>4294967295){b=e;c=C}else{b=e;break}}if(b)while(1){d=d+-1|0;a[d>>0]=(b>>>0)%10|0|48;if(b>>>0<10)break;else b=(b>>>0)/10|0}return d|0}function hB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+256|0;h=j;do if((d|0)>(e|0)&(f&73728|0)==0){f=d-e|0;CB(h|0,b|0,(f>>>0>256?256:f)|0)|0;b=c[a>>2]|0;g=(b&32|0)==0;if(f>>>0>255){e=d-e|0;do{if(g){Lz(h,256,a)|0;b=c[a>>2]|0}f=f+-256|0;g=(b&32|0)==0}while(f>>>0>255);if(g)f=e&255;else break}else if(!g)break;Lz(h,f,a)|0}while(0);i=j;return}function iB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|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;g=c[a>>2]|0;h=(g|0)>-1;a:do if(!d)if(h){j=b+32|0;i=a;h=a;while(1){if((c[b>>2]|0)>-1?(z=e+(g<<2)|0,c[z>>2]=(c[z>>2]|0)+1,(c[j>>2]|0)>-1):0){g=j;do{z=e+(c[i>>2]<<2)|0;c[z>>2]=(c[z>>2]|0)+1;g=g+32|0}while((c[g>>2]|0)>-1)}h=h+32|0;g=c[h>>2]|0;if((g|0)>-1)i=h;else{g=0;break}}}else g=0;else if(h){w=a;t=a;while(1){g=c[b>>2]|0;b:do if((g|0)>-1){s=t+4|0;u=t+8|0;v=t+16|0;o=t+20|0;p=t+24|0;q=t+28|0;r=t+12|0;h=b;i=-1;while(1){while(1){if((g|0)!=(i|0)){n=g;break}h=h+32|0;g=c[h>>2]|0;if((g|0)<=-1)break b}i=d+(c[f+(c[w>>2]<<2)>>2]<<5)|0;while(1){g=i+8|0;if(!(c[g>>2]|0)){k=i;break}else i=i+32|0}c[k+40>>2]=0;c[k>>2]=c[s>>2];c[k+4>>2]=c[u>>2];c[g>>2]=d+(c[f+(n<<2)>>2]<<5);c[k+12>>2]=n;g=c[o>>2]|0;i=c[h+16>>2]|c[v>>2]|((g|0)!=0?4:0)|((c[p>>2]|0)!=0?8:0);j=k+20|0;c[j>>2]=i;a=c[q>>2]|0;if((a|0)>-1){c[j>>2]=i|256;g=a}c[k+24>>2]=g;i=c[p>>2]|0;if(!i)c[k+28>>2]=0;else{j=0;while(1){g=j+1|0;if(!(c[i+(j<<2)>>2]|0))break;else j=g}g=oB(g<<2)|0;c[k+28>>2]=g;if(!g){g=12;break a}e=c[p>>2]|0;i=c[e>>2]|0;if(i){j=g;a=0;do{c[j>>2]=i;a=a+1|0;i=c[e+(a<<2)>>2]|0;j=g+(a<<2)|0}while((i|0)!=0);g=j}c[g>>2]=0}g=c[r>>2]|0;if(!g)i=0;else{i=0;while(1)if((c[g+(i<<2)>>2]|0)>-1)i=i+1|0;else break}e=h+12|0;g=c[e>>2]|0;if(!g)j=0;else{j=0;while(1)if((c[g+(j<<2)>>2]|0)>-1)j=j+1|0;else break}a=k+16|0;g=c[a>>2]|0;if(g)pB(g);c[a>>2]=0;g=j+i|0;if((g|0)>0){m=oB((g<<2)+4|0)|0;c[a>>2]=m;if(!m){g=12;break a}j=c[r>>2]|0;if((j|0)!=0?(y=c[j>>2]|0,(y|0)>-1):0){i=y;g=0;do{c[m+(g<<2)>>2]=i;g=g+1|0;i=c[j+(g<<2)>>2]|0}while((i|0)>-1)}else g=0;a=c[e>>2]|0;if((a|0)!=0?(x=c[a>>2]|0,(x|0)>-1):0){e=(g|0)>0;k=x;l=0;i=g;while(1){c:do if(e){j=0;while(1){if((c[m+(j<<2)>>2]|0)==(k|0))break c;j=j+1|0;if((j|0)>=(g|0)){z=39;break}}}else z=39;while(0);if((z|0)==39){z=0;c[m+(i<<2)>>2]=k;i=i+1|0}l=l+1|0;k=c[a+(l<<2)>>2]|0;if((k|0)<=-1){g=i;break}}}c[m+(g<<2)>>2]=-1}h=h+32|0;g=c[h>>2]|0;if((g|0)>-1)i=n;else break}}while(0);g=t+32|0;if((c[g>>2]|0)>-1){w=g;t=g}else{g=0;break}}}else g=0;while(0);return g|0}function jB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=ez(a,0,0,0,8)|0;do if(f){e=KA(a,0,20)|0;if(!e){c[f>>2]=0;e=12;break}g=c[e+4>>2]|0;c[g>>2]=-3;c[g+4>>2]=d;c[g+8>>2]=-1;c[f>>2]=e;e=ez(a,0,0,0,32)|0;c[f+4>>2]=e;if(e){g=b+4|0;c[e+4>>2]=c[g>>2];c[e>>2]=c[b>>2];c[e+8>>2]=-1;c[e+12>>2]=-1;c[e+24>>2]=0;c[e+28>>2]=0;c[e+20>>2]=0;c[g>>2]=f;c[b>>2]=1;e=0}else e=12}else e=12;while(0);return e|0}function kB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a>>2]|0;if((e|0)>-1){g=c[b+16>>2]|0;f=0;do{b=(e|0)/2|0;if(!(e&1))c[g+(b*12|0)>>2]=d;else c[g+(b*12|0)+4>>2]=d;f=f+1|0;e=c[a+(f<<2)>>2]|0}while((e|0)>-1)}c[a>>2]=-1;return}function lB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=ez(a,0,0,0,8)|0;do if(f){e=KA(a,0,20)|0;if(!e){c[f+4>>2]=0;e=12;break}g=c[e+4>>2]|0;c[g>>2]=-3;c[g+4>>2]=d;c[g+8>>2]=-1;c[f+4>>2]=e;e=ez(a,0,0,0,32)|0;c[f>>2]=e;if(e){g=b+4|0;c[e+4>>2]=c[g>>2];c[e>>2]=c[b>>2];c[e+8>>2]=-1;c[e+12>>2]=-1;c[e+24>>2]=0;c[e+28>>2]=0;c[e+20>>2]=0;c[g>>2]=f;c[b>>2]=1;e=0}else e=12}else e=12;while(0);return e|0}function mB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;i=c[g>>2]|0;h=c[f>>2]|0;if((c[e>>2]|0)>=(h|0))if((h|0)<=1024?(c[f>>2]=h<<1,j=rB(i,h<<3)|0,(j|0)!=0):0){c[g>>2]=j;i=j;k=5}else h=12;else k=5;if((k|0)==5){h=KA(a,0,20)|0;if(!h)h=0;else{k=c[h+4>>2]|0;c[k>>2]=b;c[k+4>>2]=d;c[k+8>>2]=-1}k=c[e>>2]|0;c[i+(k<<2)>>2]=h;c[e>>2]=k+1;h=(h|0)==0?12:0}return h|0}function nB(a,b){a=a|0;b=b|0;a=c[c[(c[a>>2]|0)+4>>2]>>2]|0;b=c[c[(c[b>>2]|0)+4>>2]>>2]|0;return ((a|0)<(b|0)?-1:(a|0)>(b|0)&1)|0}function oB(a){a=a|0;var b=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,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;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;i=c[22913]|0;d=i>>>a;if(d&3){a=(d&1^1)+a|0;e=a<<1;d=91692+(e<<2)|0;e=91692+(e+2<<2)|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[22917]|0)>>>0)Ea();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else Ea()}else c[22913]=i&~(1<<a);while(0);M=a<<3;c[f+4>>2]=M|3;M=f+(M|4)|0;c[M>>2]=c[M>>2]|1;M=g;return M|0}h=c[22915]|0;if(o>>>0>h>>>0){if(d){e=2<<a;e=d<<a&(e|0-e);e=(e&0-e)+-1|0;j=e>>>12&16;e=e>>>j;f=e>>>5&8;e=e>>>f;g=e>>>2&4;e=e>>>g;d=e>>>1&2;e=e>>>d;a=e>>>1&1;a=(f|j|g|d|a)+(e>>>a)|0;e=a<<1;d=91692+(e<<2)|0;e=91692+(e+2<<2)|0;g=c[e>>2]|0;j=g+8|0;f=c[j>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[22917]|0)>>>0)Ea();b=f+12|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;c[e>>2]=f;k=c[22915]|0;break}else Ea()}else{c[22913]=i&~(1<<a);k=h}while(0);M=a<<3;h=M-o|0;c[g+4>>2]=o|3;i=g+o|0;c[g+(o|4)>>2]=h|1;c[g+M>>2]=h;if(k){f=c[22918]|0;d=k>>>3;b=d<<1;e=91692+(b<<2)|0;a=c[22913]|0;d=1<<d;if(a&d){a=91692+(b+2<<2)|0;b=c[a>>2]|0;if(b>>>0<(c[22917]|0)>>>0)Ea();else{l=a;m=b}}else{c[22913]=a|d;l=91692+(b+2<<2)|0;m=e}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=e}c[22915]=h;c[22918]=i;M=j;return M|0}a=c[22914]|0;if(a){d=(a&0-a)+-1|0;L=d>>>12&16;d=d>>>L;K=d>>>5&8;d=d>>>K;M=d>>>2&4;d=d>>>M;a=d>>>1&2;d=d>>>a;e=d>>>1&1;e=c[91956+((K|L|M|a|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;a=e;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b){j=d;break}}a=(c[b+4>>2]&-8)-o|0;M=a>>>0<d>>>0;d=M?a:d;a=b;e=M?b:e}g=c[22917]|0;if(e>>>0<g>>>0)Ea();i=e+o|0;if(e>>>0>=i>>>0)Ea();h=c[e+24>>2]|0;d=c[e+12>>2]|0;do if((d|0)==(e|0)){a=e+20|0;b=c[a>>2]|0;if(!b){a=e+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;f=c[d>>2]|0;if(f){b=f;a=d;continue}d=b+16|0;f=c[d>>2]|0;if(!f)break;else{b=f;a=d}}if(a>>>0<g>>>0)Ea();else{c[a>>2]=0;n=b;break}}else{f=c[e+8>>2]|0;if(f>>>0<g>>>0)Ea();b=f+12|0;if((c[b>>2]|0)!=(e|0))Ea();a=d+8|0;if((c[a>>2]|0)==(e|0)){c[b>>2]=d;c[a>>2]=f;n=d;break}else Ea()}while(0);do if(h){b=c[e+28>>2]|0;a=91956+(b<<2)|0;if((e|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[22914]=c[22914]&~(1<<b);break}}else{if(h>>>0<(c[22917]|0)>>>0)Ea();b=h+16|0;if((c[b>>2]|0)==(e|0))c[b>>2]=n;else c[h+20>>2]=n;if(!n)break}a=c[22917]|0;if(n>>>0<a>>>0)Ea();c[n+24>>2]=h;b=c[e+16>>2]|0;do if(b)if(b>>>0<a>>>0)Ea();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[e+20>>2]|0;if(b)if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(j>>>0<16){M=j+o|0;c[e+4>>2]=M|3;M=e+(M+4)|0;c[M>>2]=c[M>>2]|1}else{c[e+4>>2]=o|3;c[e+(o|4)>>2]=j|1;c[e+(j+o)>>2]=j;b=c[22915]|0;if(b){g=c[22918]|0;d=b>>>3;b=d<<1;f=91692+(b<<2)|0;a=c[22913]|0;d=1<<d;if(a&d){b=91692+(b+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[22917]|0)>>>0)Ea();else{p=b;q=a}}else{c[22913]=a|d;p=91692+(b+2<<2)|0;q=f}c[p>>2]=g;c[q+12>>2]=g;c[g+8>>2]=q;c[g+12>>2]=f}c[22915]=j;c[22918]=i}M=e+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=c[22914]|0;if(l){d=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)k=31;else{q=(a+1048320|0)>>>16&8;v=a<<q;p=(v+520192|0)>>>16&4;v=v<<p;k=(v+245760|0)>>>16&2;k=14-(p|q|k)+(v<<k>>>15)|0;k=m>>>(k+7|0)&1|k<<1}else k=0;a=c[91956+(k<<2)>>2]|0;a:do if(!a){f=0;a=0;v=86}else{h=d;f=0;i=m<<((k|0)==31?0:25-(k>>>1)|0);j=a;a=0;while(1){g=c[j+4>>2]&-8;d=g-m|0;if(d>>>0<h>>>0)if((g|0)==(m|0)){g=j;a=j;v=90;break a}else a=j;else d=h;v=c[j+20>>2]|0;j=c[j+16+(i>>>31<<2)>>2]|0;f=(v|0)==0|(v|0)==(j|0)?f:v;if(!j){v=86;break}else{h=d;i=i<<1}}}while(0);if((v|0)==86){if((f|0)==0&(a|0)==0){a=2<<k;a=l&(a|0-a);if(!a){q=m;break}a=(a&0-a)+-1|0;n=a>>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;f=a>>>1&1;f=c[91956+((l|n|p|q|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;j=a}else{g=f;v=90}}if((v|0)==90)while(1){v=0;q=(c[g+4>>2]&-8)-m|0;f=q>>>0<d>>>0;d=f?q:d;a=f?g:a;f=c[g+16>>2]|0;if(f){g=f;v=90;continue}g=c[g+20>>2]|0;if(!g){i=d;j=a;break}else v=90}if((j|0)!=0?i>>>0<((c[22915]|0)-m|0)>>>0:0){f=c[22917]|0;if(j>>>0<f>>>0)Ea();h=j+m|0;if(j>>>0>=h>>>0)Ea();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){o=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)Ea();else{c[a>>2]=0;o=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)Ea();b=e+12|0;if((c[b>>2]|0)!=(j|0))Ea();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;o=d;break}else Ea()}while(0);do if(g){b=c[j+28>>2]|0;a=91956+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=o;if(!o){c[22914]=c[22914]&~(1<<b);break}}else{if(g>>>0<(c[22917]|0)>>>0)Ea();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=o;else c[g+20>>2]=o;if(!o)break}a=c[22917]|0;if(o>>>0<a>>>0)Ea();c[o+24>>2]=g;b=c[j+16>>2]|0;do if(b)if(b>>>0<a>>>0)Ea();else{c[o+16>>2]=b;c[b+24>>2]=o;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[o+20>>2]=b;c[b+24>>2]=o;break}}while(0);b:do if(i>>>0>=16){c[j+4>>2]=m|3;c[j+(m|4)>>2]=i|1;c[j+(i+m)>>2]=i;b=i>>>3;if(i>>>0<256){a=b<<1;e=91692+(a<<2)|0;d=c[22913]|0;b=1<<b;if(d&b){b=91692+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[22917]|0)>>>0)Ea();else{s=b;t=a}}else{c[22913]=d|b;s=91692+(a+2<<2)|0;t=e}c[s>>2]=h;c[t+12>>2]=h;c[j+(m+8)>>2]=t;c[j+(m+12)>>2]=e;break}b=i>>>8;if(b)if(i>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<<L;K=(M+520192|0)>>>16&4;M=M<<K;e=(M+245760|0)>>>16&2;e=14-(K|L|e)+(M<<e>>>15)|0;e=i>>>(e+7|0)&1|e<<1}else e=0;b=91956+(e<<2)|0;c[j+(m+28)>>2]=e;c[j+(m+20)>>2]=0;c[j+(m+16)>>2]=0;a=c[22914]|0;d=1<<e;if(!(a&d)){c[22914]=a|d;c[b>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(i|0)){y=d;break c}else{e=e<<1;b=d}}if(a>>>0<(c[22917]|0)>>>0)Ea();else{c[a>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break b}}else y=b;while(0);b=y+8|0;a=c[b>>2]|0;M=c[22917]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[j+(m+8)>>2]=a;c[j+(m+12)>>2]=y;c[j+(m+24)>>2]=0;break}else Ea()}else{M=i+m|0;c[j+4>>2]=M|3;M=j+(M+4)|0;c[M>>2]=c[M>>2]|1}while(0);M=j+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);d=c[22915]|0;if(d>>>0>=q>>>0){b=d-q|0;a=c[22918]|0;if(b>>>0>15){c[22918]=a+q;c[22915]=b;c[a+(q+4)>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=q|3}else{c[22915]=0;c[22918]=0;c[a+4>>2]=d|3;M=a+(d+4)|0;c[M>>2]=c[M>>2]|1}M=a+8|0;return M|0}a=c[22916]|0;if(a>>>0>q>>>0){L=a-q|0;c[22916]=L;M=c[22919]|0;c[22919]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(c[23031]|0)){a=Ta(30)|0;if(!(a+-1&a)){c[23033]=a;c[23032]=a;c[23034]=-1;c[23035]=-1;c[23036]=0;c[23024]=0;c[23031]=(lb(0)|0)&-16^1431655768;break}else Ea()}while(0);j=q+48|0;i=c[23033]|0;k=q+47|0;h=i+k|0;i=0-i|0;l=h&i;if(l>>>0<=q>>>0){M=0;return M|0}a=c[23023]|0;if((a|0)!=0?(t=c[23021]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(c[23024]&4)){a=c[22919]|0;e:do if(a){f=92100;while(1){d=c[f>>2]|0;if(d>>>0<=a>>>0?(r=f+4|0,(d+(c[r>>2]|0)|0)>>>0>a>>>0):0){g=f;a=r;break}f=c[f+8>>2]|0;if(!f){v=174;break e}}d=h-(c[22916]|0)&i;if(d>>>0<2147483647){f=Pa(d|0)|0;y=(f|0)==((c[g>>2]|0)+(c[a>>2]|0)|0);a=y?d:0;if(y){if((f|0)!=(-1|0)){w=f;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){g=Pa(0)|0;if((g|0)!=(-1|0)){a=g;d=c[23032]|0;f=d+-1|0;if(!(f&a))d=l;else d=l-a+(f+a&0-d)|0;a=c[23021]|0;f=a+d|0;if(d>>>0>q>>>0&d>>>0<2147483647){y=c[23023]|0;if((y|0)!=0?f>>>0<=a>>>0|f>>>0>y>>>0:0){a=0;break}f=Pa(d|0)|0;y=(f|0)==(g|0);a=y?d:0;if(y){w=g;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){g=0-d|0;do if(j>>>0>d>>>0&(d>>>0<2147483647&(f|0)!=(-1|0))?(u=c[23033]|0,u=k-d+u&0-u,u>>>0<2147483647):0)if((Pa(u|0)|0)==(-1|0)){Pa(g|0)|0;break f}else{d=u+d|0;break}while(0);if((f|0)!=(-1|0)){w=f;p=d;v=194;break d}}while(0);c[23024]=c[23024]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=Pa(l|0)|0,x=Pa(0)|0,w>>>0<x>>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(c[23021]|0)+p|0;c[23021]=a;if(a>>>0>(c[23022]|0)>>>0)c[23022]=a;h=c[22919]|0;g:do if(h){g=92100;do{a=c[g>>2]|0;d=g+4|0;f=c[d>>2]|0;if((w|0)==(a+f|0)){B=a;C=d;D=f;E=g;v=204;break}g=c[g+8>>2]|0}while((g|0)!=0);if(((v|0)==204?(c[E+12>>2]&8|0)==0:0)?h>>>0<w>>>0&h>>>0>=B>>>0:0){c[C>>2]=D+p;M=(c[22916]|0)+p|0;L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;c[22919]=h+L;c[22916]=K;c[h+(L+4)>>2]=K|1;c[h+(M+4)>>2]=40;c[22920]=c[23035];break}a=c[22917]|0;if(w>>>0<a>>>0){c[22917]=w;a=w}d=w+p|0;g=92100;while(1){if((c[g>>2]|0)==(d|0)){f=g;d=g;v=212;break}g=c[g+8>>2]|0;if(!g){d=92100;break}}if((v|0)==212)if(!(c[d+12>>2]&8)){c[f>>2]=w;n=d+4|0;c[n>>2]=(c[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;k=w+(p+8)|0;k=(k&7|0)==0?0:0-k&7;b=w+(k+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;c[w+(n+4)>>2]=q|3;h:do if((b|0)!=(h|0)){if((b|0)==(c[22918]|0)){M=(c[22915]|0)+l|0;c[22915]=M;c[22918]=o;c[w+(m+4)>>2]=M|1;c[w+(M+m)>>2]=M;break}i=p+4|0;d=c[w+(i+k)>>2]|0;if((d&3|0)==1){j=d&-8;g=d>>>3;i:do if(d>>>0>=256){h=c[w+((k|24)+p)>>2]|0;e=c[w+(p+12+k)>>2]|0;do if((e|0)==(b|0)){f=k|16;e=w+(i+f)|0;d=c[e>>2]|0;if(!d){e=w+(f+p)|0;d=c[e>>2]|0;if(!d){J=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<a>>>0)Ea();else{c[e>>2]=0;J=d;break}}else{f=c[w+((k|8)+p)>>2]|0;if(f>>>0<a>>>0)Ea();a=f+12|0;if((c[a>>2]|0)!=(b|0))Ea();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;J=e;break}else Ea()}while(0);if(!h)break;a=c[w+(p+28+k)>>2]|0;d=91956+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(h>>>0<(c[22917]|0)>>>0)Ea();a=h+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=J;else c[h+20>>2]=J;if(!J)break i}else{c[d>>2]=J;if(J)break;c[22914]=c[22914]&~(1<<a);break i}while(0);d=c[22917]|0;if(J>>>0<d>>>0)Ea();c[J+24>>2]=h;b=k|16;a=c[w+(b+p)>>2]|0;do if(a)if(a>>>0<d>>>0)Ea();else{c[J+16>>2]=a;c[a+24>>2]=J;break}while(0);b=c[w+(i+b)>>2]|0;if(!b)break;if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{e=c[w+((k|8)+p)>>2]|0;f=c[w+(p+12+k)>>2]|0;d=91692+(g<<1<<2)|0;do if((e|0)!=(d|0)){if(e>>>0<a>>>0)Ea();if((c[e+12>>2]|0)==(b|0))break;Ea()}while(0);if((f|0)==(e|0)){c[22913]=c[22913]&~(1<<g);break}do if((f|0)==(d|0))F=f+8|0;else{if(f>>>0<a>>>0)Ea();a=f+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}Ea()}while(0);c[e+12>>2]=f;c[F>>2]=e}while(0);b=w+((j|k)+p)|0;f=j+l|0}else f=l;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[w+(m+4)>>2]=f|1;c[w+(f+m)>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;e=91692+(a<<2)|0;d=c[22913]|0;b=1<<b;do if(!(d&b)){c[22913]=d|b;K=91692+(a+2<<2)|0;L=e}else{b=91692+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0>=(c[22917]|0)>>>0){K=b;L=a;break}Ea()}while(0);c[K>>2]=o;c[L+12>>2]=o;c[w+(m+8)>>2]=L;c[w+(m+12)>>2]=e;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}K=(b+1048320|0)>>>16&8;L=b<<K;J=(L+520192|0)>>>16&4;L=L<<J;e=(L+245760|0)>>>16&2;e=14-(J|K|e)+(L<<e>>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=91956+(e<<2)|0;c[w+(m+28)>>2]=e;c[w+(m+20)>>2]=0;c[w+(m+16)>>2]=0;a=c[22914]|0;d=1<<e;if(!(a&d)){c[22914]=a|d;c[b>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break}b=c[b>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(f|0)){M=d;break j}else{e=e<<1;b=d}}if(a>>>0<(c[22917]|0)>>>0)Ea();else{c[a>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=c[b>>2]|0;L=c[22917]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){c[a+12>>2]=o;c[b>>2]=o;c[w+(m+8)>>2]=a;c[w+(m+12)>>2]=M;c[w+(m+24)>>2]=0;break}else Ea()}else{M=(c[22916]|0)+l|0;c[22916]=M;c[22919]=o;c[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else d=92100;while(1){a=c[d>>2]|0;if(a>>>0<=h>>>0?(b=c[d+4>>2]|0,e=a+b|0,e>>>0>h>>>0):0)break;d=c[d+8>>2]|0}f=a+(b+-39)|0;a=a+(b+-47+((f&7|0)==0?0:0-f&7))|0;f=h+16|0;a=a>>>0<f>>>0?h:a;b=a+8|0;d=w+8|0;d=(d&7|0)==0?0:0-d&7;M=p+-40-d|0;c[22919]=w+d;c[22916]=M;c[w+(d+4)>>2]=M|1;c[w+(p+-36)>>2]=40;c[22920]=c[23035];d=a+4|0;c[d>>2]=27;c[b>>2]=c[23025];c[b+4>>2]=c[23026];c[b+8>>2]=c[23027];c[b+12>>2]=c[23028];c[23025]=w;c[23026]=p;c[23028]=0;c[23027]=b;b=a+28|0;c[b>>2]=7;if((a+32|0)>>>0<e>>>0)do{M=b;b=b+4|0;c[b>>2]=7}while((M+8|0)>>>0<e>>>0);if((a|0)!=(h|0)){g=a-h|0;c[d>>2]=c[d>>2]&-2;c[h+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){a=b<<1;e=91692+(a<<2)|0;d=c[22913]|0;b=1<<b;if(d&b){b=91692+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[22917]|0)>>>0)Ea();else{G=b;H=a}}else{c[22913]=d|b;G=91692+(a+2<<2)|0;H=e}c[G>>2]=h;c[H+12>>2]=h;c[h+8>>2]=H;c[h+12>>2]=e;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<<L;K=(M+520192|0)>>>16&4;M=M<<K;e=(M+245760|0)>>>16&2;e=14-(K|L|e)+(M<<e>>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=91956+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[f>>2]=0;b=c[22914]|0;a=1<<e;if(!(b&a)){c[22914]=b|a;c[d>>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}b=c[d>>2]|0;k:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(g|0)){I=d;break k}else{e=e<<1;b=d}}if(a>>>0<(c[22917]|0)>>>0)Ea();else{c[a>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;break g}}else I=b;while(0);b=I+8|0;a=c[b>>2]|0;M=c[22917]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=I;c[h+24>>2]=0;break}else Ea()}}else{M=c[22917]|0;if((M|0)==0|w>>>0<M>>>0)c[22917]=w;c[23025]=w;c[23026]=p;c[23028]=0;c[22922]=c[23031];c[22921]=-1;b=0;do{M=b<<1;L=91692+(M<<2)|0;c[91692+(M+3<<2)>>2]=L;c[91692+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;c[22919]=w+M;c[22916]=L;c[w+(M+4)>>2]=L|1;c[w+(p+-36)>>2]=40;c[22920]=c[23035]}while(0);b=c[22916]|0;if(b>>>0>q>>>0){L=b-q|0;c[22916]=L;M=c[22919]|0;c[22919]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}}c[(qy()|0)>>2]=12;M=0;return M|0}function pB(a){a=a|0;var b=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;if(!a)return;b=a+-8|0;i=c[22917]|0;if(b>>>0<i>>>0)Ea();d=c[a+-4>>2]|0;e=d&3;if((e|0)==1)Ea();o=d&-8;q=a+(o+-8)|0;do if(!(d&1)){b=c[b>>2]|0;if(!e)return;j=-8-b|0;l=a+j|0;m=b+o|0;if(l>>>0<i>>>0)Ea();if((l|0)==(c[22918]|0)){b=a+(o+-4)|0;d=c[b>>2]|0;if((d&3|0)!=3){u=l;g=m;break}c[22915]=m;c[b>>2]=d&-2;c[a+(j+4)>>2]=m|1;c[q>>2]=m;return}f=b>>>3;if(b>>>0<256){e=c[a+(j+8)>>2]|0;d=c[a+(j+12)>>2]|0;b=91692+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<i>>>0)Ea();if((c[e+12>>2]|0)!=(l|0))Ea()}if((d|0)==(e|0)){c[22913]=c[22913]&~(1<<f);u=l;g=m;break}if((d|0)!=(b|0)){if(d>>>0<i>>>0)Ea();b=d+8|0;if((c[b>>2]|0)==(l|0))h=b;else Ea()}else h=d+8|0;c[e+12>>2]=d;c[h>>2]=e;u=l;g=m;break}h=c[a+(j+24)>>2]|0;e=c[a+(j+12)>>2]|0;do if((e|0)==(l|0)){d=a+(j+20)|0;b=c[d>>2]|0;if(!b){d=a+(j+16)|0;b=c[d>>2]|0;if(!b){k=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<i>>>0)Ea();else{c[d>>2]=0;k=b;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0<i>>>0)Ea();b=f+12|0;if((c[b>>2]|0)!=(l|0))Ea();d=e+8|0;if((c[d>>2]|0)==(l|0)){c[b>>2]=e;c[d>>2]=f;k=e;break}else Ea()}while(0);if(h){b=c[a+(j+28)>>2]|0;d=91956+(b<<2)|0;if((l|0)==(c[d>>2]|0)){c[d>>2]=k;if(!k){c[22914]=c[22914]&~(1<<b);u=l;g=m;break}}else{if(h>>>0<(c[22917]|0)>>>0)Ea();b=h+16|0;if((c[b>>2]|0)==(l|0))c[b>>2]=k;else c[h+20>>2]=k;if(!k){u=l;g=m;break}}d=c[22917]|0;if(k>>>0<d>>>0)Ea();c[k+24>>2]=h;b=c[a+(j+16)>>2]|0;do if(b)if(b>>>0<d>>>0)Ea();else{c[k+16>>2]=b;c[b+24>>2]=k;break}while(0);b=c[a+(j+20)>>2]|0;if(b)if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[k+20>>2]=b;c[b+24>>2]=k;u=l;g=m;break}else{u=l;g=m}}else{u=l;g=m}}else{u=b;g=o}while(0);if(u>>>0>=q>>>0)Ea();b=a+(o+-4)|0;d=c[b>>2]|0;if(!(d&1))Ea();if(!(d&2)){if((q|0)==(c[22919]|0)){t=(c[22916]|0)+g|0;c[22916]=t;c[22919]=u;c[u+4>>2]=t|1;if((u|0)!=(c[22918]|0))return;c[22918]=0;c[22915]=0;return}if((q|0)==(c[22918]|0)){t=(c[22915]|0)+g|0;c[22915]=t;c[22918]=u;c[u+4>>2]=t|1;c[u+t>>2]=t;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=c[a+(o+16)>>2]|0;b=c[a+(o|4)>>2]|0;do if((b|0)==(q|0)){d=a+(o+12)|0;b=c[d>>2]|0;if(!b){d=a+(o+8)|0;b=c[d>>2]|0;if(!b){p=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[d>>2]=0;p=b;break}}else{d=c[a+o>>2]|0;if(d>>>0<(c[22917]|0)>>>0)Ea();e=d+12|0;if((c[e>>2]|0)!=(q|0))Ea();f=b+8|0;if((c[f>>2]|0)==(q|0)){c[e>>2]=b;c[f>>2]=d;p=b;break}else Ea()}while(0);if(h){b=c[a+(o+20)>>2]|0;d=91956+(b<<2)|0;if((q|0)==(c[d>>2]|0)){c[d>>2]=p;if(!p){c[22914]=c[22914]&~(1<<b);break}}else{if(h>>>0<(c[22917]|0)>>>0)Ea();b=h+16|0;if((c[b>>2]|0)==(q|0))c[b>>2]=p;else c[h+20>>2]=p;if(!p)break}d=c[22917]|0;if(p>>>0<d>>>0)Ea();c[p+24>>2]=h;b=c[a+(o+8)>>2]|0;do if(b)if(b>>>0<d>>>0)Ea();else{c[p+16>>2]=b;c[b+24>>2]=p;break}while(0);b=c[a+(o+12)>>2]|0;if(b)if(b>>>0<(c[22917]|0)>>>0)Ea();else{c[p+20>>2]=b;c[b+24>>2]=p;break}}}else{e=c[a+o>>2]|0;d=c[a+(o|4)>>2]|0;b=91692+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<(c[22917]|0)>>>0)Ea();if((c[e+12>>2]|0)!=(q|0))Ea()}if((d|0)==(e|0)){c[22913]=c[22913]&~(1<<f);break}if((d|0)!=(b|0)){if(d>>>0<(c[22917]|0)>>>0)Ea();b=d+8|0;if((c[b>>2]|0)==(q|0))n=b;else Ea()}else n=d+8|0;c[e+12>>2]=d;c[n>>2]=e}while(0);c[u+4>>2]=g|1;c[u+g>>2]=g;if((u|0)==(c[22918]|0)){c[22915]=g;return}}else{c[b>>2]=d&-2;c[u+4>>2]=g|1;c[u+g>>2]=g}b=g>>>3;if(g>>>0<256){d=b<<1;f=91692+(d<<2)|0;e=c[22913]|0;b=1<<b;if(e&b){b=91692+(d+2<<2)|0;d=c[b>>2]|0;if(d>>>0<(c[22917]|0)>>>0)Ea();else{r=b;s=d}}else{c[22913]=e|b;r=91692+(d+2<<2)|0;s=f}c[r>>2]=u;c[s+12>>2]=u;c[u+8>>2]=s;c[u+12>>2]=f;return}b=g>>>8;if(b)if(g>>>0>16777215)f=31;else{r=(b+1048320|0)>>>16&8;s=b<<r;q=(s+520192|0)>>>16&4;s=s<<q;f=(s+245760|0)>>>16&2;f=14-(q|r|f)+(s<<f>>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;b=91956+(f<<2)|0;c[u+28>>2]=f;c[u+20>>2]=0;c[u+16>>2]=0;d=c[22914]|0;e=1<<f;a:do if(d&e){b=c[b>>2]|0;b:do if((c[b+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=b+16+(f>>>31<<2)|0;e=c[d>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(g|0)){t=e;break b}else{f=f<<1;b=e}}if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[d>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;d=c[b>>2]|0;s=c[22917]|0;if(d>>>0>=s>>>0&t>>>0>=s>>>0){c[d+12>>2]=u;c[b>>2]=u;c[u+8>>2]=d;c[u+12>>2]=t;c[u+24>>2]=0;break}else Ea()}else{c[22914]=d|e;c[b>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u}while(0);u=(c[22921]|0)+-1|0;c[22921]=u;if(!u)b=92108;else return;while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[22921]=-1;return}function qB(a,b){a=a|0;b=b|0;var d=0;if(a){d=_(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;b=oB(d)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;CB(b|0,0,d|0)|0;return b|0}function rB(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=oB(b)|0;return a|0}if(b>>>0>4294967231){c[(qy()|0)>>2]=12;a=0;return a|0}d=sB(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d){a=d+8|0;return a|0}d=oB(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;AB(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;pB(a);a=d;return a|0}function sB(a,b){a=a|0;b=b|0;var 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;o=a+4|0;p=c[o>>2]|0;j=p&-8;l=a+j|0;i=c[22917]|0;d=p&3;if(!((d|0)!=1&a>>>0>=i>>>0&a>>>0<l>>>0))Ea();e=a+(j|4)|0;f=c[e>>2]|0;if(!(f&1))Ea();if(!d){if(b>>>0<256){a=0;return a|0}if(j>>>0>=(b+4|0)>>>0?(j-b|0)>>>0<=c[23033]<<1>>>0:0)return a|0;a=0;return a|0}if(j>>>0>=b>>>0){d=j-b|0;if(d>>>0<=15)return a|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|3;c[e>>2]=c[e>>2]|1;tB(a+b|0,d);return a|0}if((l|0)==(c[22919]|0)){d=(c[22916]|0)+j|0;if(d>>>0<=b>>>0){a=0;return a|0}n=d-b|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|1;c[22919]=a+b;c[22916]=n;return a|0}if((l|0)==(c[22918]|0)){e=(c[22915]|0)+j|0;if(e>>>0<b>>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|1;c[a+e>>2]=d;e=a+(e+4)|0;c[e>>2]=c[e>>2]&-2;e=a+b|0}else{c[o>>2]=p&1|e|2;e=a+(e+4)|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[22915]=d;c[22918]=e;return a|0}if(f&2){a=0;return a|0}m=(f&-8)+j|0;if(m>>>0<b>>>0){a=0;return a|0}n=m-b|0;g=f>>>3;do if(f>>>0>=256){h=c[a+(j+24)>>2]|0;g=c[a+(j+12)>>2]|0;do if((g|0)==(l|0)){e=a+(j+20)|0;d=c[e>>2]|0;if(!d){e=a+(j+16)|0;d=c[e>>2]|0;if(!d){k=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)Ea();else{c[e>>2]=0;k=d;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0<i>>>0)Ea();d=f+12|0;if((c[d>>2]|0)!=(l|0))Ea();e=g+8|0;if((c[e>>2]|0)==(l|0)){c[d>>2]=g;c[e>>2]=f;k=g;break}else Ea()}while(0);if(h){d=c[a+(j+28)>>2]|0;e=91956+(d<<2)|0;if((l|0)==(c[e>>2]|0)){c[e>>2]=k;if(!k){c[22914]=c[22914]&~(1<<d);break}}else{if(h>>>0<(c[22917]|0)>>>0)Ea();d=h+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=k;else c[h+20>>2]=k;if(!k)break}e=c[22917]|0;if(k>>>0<e>>>0)Ea();c[k+24>>2]=h;d=c[a+(j+16)>>2]|0;do if(d)if(d>>>0<e>>>0)Ea();else{c[k+16>>2]=d;c[d+24>>2]=k;break}while(0);d=c[a+(j+20)>>2]|0;if(d)if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[k+20>>2]=d;c[d+24>>2]=k;break}}}else{f=c[a+(j+8)>>2]|0;e=c[a+(j+12)>>2]|0;d=91692+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<i>>>0)Ea();if((c[f+12>>2]|0)!=(l|0))Ea()}if((e|0)==(f|0)){c[22913]=c[22913]&~(1<<g);break}if((e|0)!=(d|0)){if(e>>>0<i>>>0)Ea();d=e+8|0;if((c[d>>2]|0)==(l|0))h=d;else Ea()}else h=e+8|0;c[f+12>>2]=e;c[h>>2]=f}while(0);if(n>>>0<16){c[o>>2]=m|p&1|2;b=a+(m|4)|0;c[b>>2]=c[b>>2]|1;return a|0}else{c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|3;p=a+(m|4)|0;c[p>>2]=c[p>>2]|1;tB(a+b|0,n);return a|0}return 0}function tB(a,b){a=a|0;b=b|0;var 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;q=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){k=c[a>>2]|0;if(!(d&3))return;n=a+(0-k)|0;m=k+b|0;j=c[22917]|0;if(n>>>0<j>>>0)Ea();if((n|0)==(c[22918]|0)){e=a+(b+4)|0;d=c[e>>2]|0;if((d&3|0)!=3){t=n;h=m;break}c[22915]=m;c[e>>2]=d&-2;c[a+(4-k)>>2]=m|1;c[q>>2]=m;return}g=k>>>3;if(k>>>0<256){f=c[a+(8-k)>>2]|0;e=c[a+(12-k)>>2]|0;d=91692+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<j>>>0)Ea();if((c[f+12>>2]|0)!=(n|0))Ea()}if((e|0)==(f|0)){c[22913]=c[22913]&~(1<<g);t=n;h=m;break}if((e|0)!=(d|0)){if(e>>>0<j>>>0)Ea();d=e+8|0;if((c[d>>2]|0)==(n|0))i=d;else Ea()}else i=e+8|0;c[f+12>>2]=e;c[i>>2]=f;t=n;h=m;break}i=c[a+(24-k)>>2]|0;f=c[a+(12-k)>>2]|0;do if((f|0)==(n|0)){f=16-k|0;e=a+(f+4)|0;d=c[e>>2]|0;if(!d){e=a+f|0;d=c[e>>2]|0;if(!d){l=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<j>>>0)Ea();else{c[e>>2]=0;l=d;break}}else{g=c[a+(8-k)>>2]|0;if(g>>>0<j>>>0)Ea();d=g+12|0;if((c[d>>2]|0)!=(n|0))Ea();e=f+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=f;c[e>>2]=g;l=f;break}else Ea()}while(0);if(i){d=c[a+(28-k)>>2]|0;e=91956+(d<<2)|0;if((n|0)==(c[e>>2]|0)){c[e>>2]=l;if(!l){c[22914]=c[22914]&~(1<<d);t=n;h=m;break}}else{if(i>>>0<(c[22917]|0)>>>0)Ea();d=i+16|0;if((c[d>>2]|0)==(n|0))c[d>>2]=l;else c[i+20>>2]=l;if(!l){t=n;h=m;break}}f=c[22917]|0;if(l>>>0<f>>>0)Ea();c[l+24>>2]=i;d=16-k|0;e=c[a+d>>2]|0;do if(e)if(e>>>0<f>>>0)Ea();else{c[l+16>>2]=e;c[e+24>>2]=l;break}while(0);d=c[a+(d+4)>>2]|0;if(d)if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[l+20>>2]=d;c[d+24>>2]=l;t=n;h=m;break}else{t=n;h=m}}else{t=n;h=m}}else{t=a;h=b}while(0);j=c[22917]|0;if(q>>>0<j>>>0)Ea();d=a+(b+4)|0;e=c[d>>2]|0;if(!(e&2)){if((q|0)==(c[22919]|0)){s=(c[22916]|0)+h|0;c[22916]=s;c[22919]=t;c[t+4>>2]=s|1;if((t|0)!=(c[22918]|0))return;c[22918]=0;c[22915]=0;return}if((q|0)==(c[22918]|0)){s=(c[22915]|0)+h|0;c[22915]=s;c[22918]=t;c[t+4>>2]=s|1;c[t+s>>2]=s;return}h=(e&-8)+h|0;g=e>>>3;do if(e>>>0>=256){i=c[a+(b+24)>>2]|0;f=c[a+(b+12)>>2]|0;do if((f|0)==(q|0)){e=a+(b+20)|0;d=c[e>>2]|0;if(!d){e=a+(b+16)|0;d=c[e>>2]|0;if(!d){p=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<j>>>0)Ea();else{c[e>>2]=0;p=d;break}}else{g=c[a+(b+8)>>2]|0;if(g>>>0<j>>>0)Ea();d=g+12|0;if((c[d>>2]|0)!=(q|0))Ea();e=f+8|0;if((c[e>>2]|0)==(q|0)){c[d>>2]=f;c[e>>2]=g;p=f;break}else Ea()}while(0);if(i){d=c[a+(b+28)>>2]|0;e=91956+(d<<2)|0;if((q|0)==(c[e>>2]|0)){c[e>>2]=p;if(!p){c[22914]=c[22914]&~(1<<d);break}}else{if(i>>>0<(c[22917]|0)>>>0)Ea();d=i+16|0;if((c[d>>2]|0)==(q|0))c[d>>2]=p;else c[i+20>>2]=p;if(!p)break}e=c[22917]|0;if(p>>>0<e>>>0)Ea();c[p+24>>2]=i;d=c[a+(b+16)>>2]|0;do if(d)if(d>>>0<e>>>0)Ea();else{c[p+16>>2]=d;c[d+24>>2]=p;break}while(0);d=c[a+(b+20)>>2]|0;if(d)if(d>>>0<(c[22917]|0)>>>0)Ea();else{c[p+20>>2]=d;c[d+24>>2]=p;break}}}else{f=c[a+(b+8)>>2]|0;e=c[a+(b+12)>>2]|0;d=91692+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<j>>>0)Ea();if((c[f+12>>2]|0)!=(q|0))Ea()}if((e|0)==(f|0)){c[22913]=c[22913]&~(1<<g);break}if((e|0)!=(d|0)){if(e>>>0<j>>>0)Ea();d=e+8|0;if((c[d>>2]|0)==(q|0))o=d;else Ea()}else o=e+8|0;c[f+12>>2]=e;c[o>>2]=f}while(0);c[t+4>>2]=h|1;c[t+h>>2]=h;if((t|0)==(c[22918]|0)){c[22915]=h;return}}else{c[d>>2]=e&-2;c[t+4>>2]=h|1;c[t+h>>2]=h}d=h>>>3;if(h>>>0<256){e=d<<1;g=91692+(e<<2)|0;f=c[22913]|0;d=1<<d;if(f&d){d=91692+(e+2<<2)|0;e=c[d>>2]|0;if(e>>>0<(c[22917]|0)>>>0)Ea();else{r=d;s=e}}else{c[22913]=f|d;r=91692+(e+2<<2)|0;s=g}c[r>>2]=t;c[s+12>>2]=t;c[t+8>>2]=s;c[t+12>>2]=g;return}d=h>>>8;if(d)if(h>>>0>16777215)g=31;else{r=(d+1048320|0)>>>16&8;s=d<<r;q=(s+520192|0)>>>16&4;s=s<<q;g=(s+245760|0)>>>16&2;g=14-(q|r|g)+(s<<g>>>15)|0;g=h>>>(g+7|0)&1|g<<1}else g=0;d=91956+(g<<2)|0;c[t+28>>2]=g;c[t+20>>2]=0;c[t+16>>2]=0;e=c[22914]|0;f=1<<g;if(!(e&f)){c[22914]=e|f;c[d>>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}d=c[d>>2]|0;a:do if((c[d+4>>2]&-8|0)!=(h|0)){g=h<<((g|0)==31?0:25-(g>>>1)|0);while(1){e=d+16+(g>>>31<<2)|0;f=c[e>>2]|0;if(!f)break;if((c[f+4>>2]&-8|0)==(h|0)){d=f;break a}else{g=g<<1;d=f}}if(e>>>0<(c[22917]|0)>>>0)Ea();c[e>>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}while(0);e=d+8|0;f=c[e>>2]|0;s=c[22917]|0;if(!(f>>>0>=s>>>0&d>>>0>=s>>>0))Ea();c[f+12>>2]=t;c[e>>2]=t;c[t+8>>2]=f;c[t+12>>2]=d;c[t+24>>2]=0;return}function uB(){}function vB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (C=d,a-c>>>0|0)|0}function wB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function xB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;p=p+1|0;c[a>>2]=p;while((f|0)<(e|0)){if(!(c[d+(f<<3)>>2]|0)){c[d+(f<<3)>>2]=p;c[d+((f<<3)+4)>>2]=b;c[d+((f<<3)+8)>>2]=0;C=e;return d|0}f=f+1|0}e=e*2|0;d=rB(d|0,8*(e+1|0)|0)|0;d=xB(a|0,b|0,d|0,e|0)|0;C=e;return d|0}function yB(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=0;return b>>>c-32|0}function zB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while((f|0)<(d|0)){e=c[b+(f<<3)>>2]|0;if(!e)break;if((e|0)==(a|0))return c[b+((f<<3)+4)>>2]|0;f=f+1|0}return 0}function AB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return Ua(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function BB(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else AB(b,c,d)|0;return b|0}function CB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function DB(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}C=a<<c-32;return 0}function EB(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=(b|0)<0?-1:0;return b>>c-32|0}function FB(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return (a[m+(b>>>24)>>0]|0)+24|0}function GB(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return (C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function HB(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;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=vB(j^a,i^b,j,i)|0;g=C;a=f^j;b=e^i;return vB((MB(h,g,vB(f^c,e^d,f,e)|0,C,0)|0)^a,C^b,a,b)|0}function IB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=vB(h^a,g^b,h,g)|0;b=C;MB(a,b,vB(l^d,k^e,l,k)|0,C,j)|0;e=vB(c[j>>2]^h,c[j+4>>2]^g,h,g)|0;d=C;i=f;return (C=d,e)|0}+function JB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=GB(e,f)|0;a=C;return (C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function KB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return MB(a,b,c,d,0)|0}function LB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;MB(a,b,d,e,f)|0;i=g;return (C=c[f+4>>2]|0,c[f>>2]|0)|0}function MB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (C=n,f)|0}else{if(!g){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return (C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (C=n,f)|0}g=h-1|0;if(g&h){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (C=o,p)|0}else{p=FB(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (C=o,p)|0}}else{if(g){if(f){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (C=o,p)|0}if(!l){if(f){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (C=o,p)|0}g=i-1|0;if(!(g&i)){if(f){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((FB(i|0)|0)>>>0);return (C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return (C=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=wB(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;vB(k,d,e,n)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=vB(e,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (C=o,p)|0}function NB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ub[a&31](b|0,c|0,d|0)|0}function OB(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;vb[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function PB(a){a=a|0;return +wb[a&1]()}function QB(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;xb[a&7](b|0,c|0,d|0,e|0,f|0)}function RB(a){a=a|0;return yb[a&1]()|0}function SB(a,b){a=a|0;b=b|0;zb[a&127](b|0)}function TB(a,b){a=a|0;b=+b;return +Ab[a&1](+b)}function UB(a,b,c){a=a|0;b=b|0;c=c|0;Bb[a&31](b|0,c|0)}function VB(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Cb[a&1](b|0,c|0,d|0,e|0,f|0,g|0)|0}function WB(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;g=g|0;Db[a&15](b|0,c|0,d|0,+e,+f,g|0)}function XB(a,b){a=a|0;b=b|0;return Eb[a&31](b|0)|0}function YB(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;return +Fb[a&7](+b,+c,+d)}function ZB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Gb[a&127](b|0,c|0,d|0)}function _B(a){a=a|0;Hb[a&7]()}function $B(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;Ib[a&1](b|0,c|0,+d)}function aC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Jb[a&31](b|0,c|0,d|0,e|0)|0}function bC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Kb[a&31](b|0,c|0,d|0,e|0)}function cC(a,b,c){a=a|0;b=b|0;c=c|0;return Lb[a&63](b|0,c|0)|0}function dC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;return Mb[a&1](b|0,c|0,d|0,+e)|0}function eC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Nb[a&3](b|0,c|0,d|0,e|0,f|0)|0}function fC(a,b,c){a=a|0;b=b|0;c=c|0;ba(0);return 0}function gC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(1)}function hC(){ba(2);return 0.0}function iC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(3)}function jC(){ba(4);return 0}function kC(a){a=a|0;ba(5)}function lC(a){a=+a;ba(6);return 0.0}function mC(a){a=+a;return +_a(+a)}function nC(a,b){a=a|0;b=b|0;ba(7)}function oC(a,b){a=a|0;b=b|0;mb(a|0,b|0)}function pC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(8);return 0}function qC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=+d;e=+e;f=f|0;ba(9)}function rC(a){a=a|0;ba(10);return 0}function sC(a,b,c){a=+a;b=+b;c=+c;ba(11);return 0.0}function tC(a,b,c){a=a|0;b=b|0;c=c|0;ba(12)}function uC(){ba(13)}function vC(a,b,c){a=a|0;b=b|0;c=+c;ba(14)}function wC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(15);return 0}function xC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(16)}function yC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ia(a|0,b|0,c|0,d|0)}function zC(a,b){a=a|0;b=b|0;ba(17);return 0}function AC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;ba(18);return 0}function BC(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(19);return 0}++// EMSCRIPTEN_END_FUNCS+var ub=[fC,Ui,_i,Hk,Kk,tw,eB,oz,nz,mz,pz,dj,aj,Bz,iq,mq,xs,Iq,ru,Mx,YA,fC,fC,fC,fC,fC,fC,fC,fC,fC,fC,fC];var vb=[gC,kc,Oc,fd,zd,Xd,ke,ze,We,ff,gC,gC,gC,gC,gC,gC];var wb=[hC,Bs];var xb=[iC,Uc,vd,Cd,Sd,ue,Hi,as];var yb=[jC,Dq];var zb=[kC,cc,dc,ec,fc,gc,sc,tc,Dc,Ec,Fc,Gc,Hc,Ic,Jc,Sc,Tc,Wc,Xc,Yc,Zc,_c,$c,ad,jd,kd,ld,nd,od,pd,qd,rd,sd,td,ud,Fd,Gd,Hd,Jd,Kd,Ld,Md,Nd,Od,Pd,Qd,Rd,Td,de,ee,fe,ge,re,se,te,ve,Ge,He,Ie,Ke,Le,Me,Ne,Oe,Pe,Qe,Re,Se,_e,$e,af,bf,vf,uf,vk,qr,xr,sr,rr,Ir,Uq,Vq,nv,sv,pf,Ii,tj,Ds,lq,pB,ww,lu,Nt,Ot,Qt,Eq,Hw,Jx,Qx,UA,VA,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC,kC];var Ab=[lC,mC];var Bb=[nC,Lc,Qc,cd,hd,Bd,Zd,me,Be,Ye,hf,Qk,Br,Ur,Mr,Hr,vr,wr,Qr,Rr,qv,uv,ej,Sn,Es,hq,nq,pq,oC,Ht,Pt,nC];var Cb=[pC,Kx];var Db=[qC,Jo,Ko,Lo,Mo,No,Oo,Po,Qo,qC,qC,qC,qC,qC,qC,qC];var Eb=[rC,Zf,_f,Jk,Nk,Rt,St,fv,gv,hv,iv,jv,kv,lv,mv,lz,Xb,an,aq,$p,Cs,Fs,ok,jq,oq,fk,Rk,oB,Rx,rC,rC,rC];var Fb=[sC,xp,yp,zp,Ap,sC,sC,sC];var Gb=[tC,hc,ic,lc,Cc,Kc,Mc,Pc,bd,dd,gd,wd,xd,Ad,Ud,Vd,Yd,he,ie,le,we,xe,Ae,Te,Ue,Xe,cf,df,gf,Sh,Th,Uh,Jj,wk,el,vl,hm,Hn,sp,Mq,_q,Ft,bu,$t,ov,pv,rv,tv,vv,uw,Ax,zx,Fj,Tj,Yk,El,Fl,kq,ys,Gq,Jt,Kt,Fw,Bx,Cx,Dx,Nx,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC,tC];var Hb=[uC,As,fq,rq,xw,uC,uC,uC];var Ib=[vC,Lt];var Jb=[wC,Xj,gm,Wj,kk,sk,uk,Fk,Ek,Pk,_k,$k,Lq,cu,au,Gv,vw,Kw,Jw,Ri,qq,Mz,zs,wC,wC,wC,wC,wC,wC,wC,wC,wC];var Kb=[xC,jc,Nc,ed,md,yd,Id,Wd,je,ye,Je,Ve,ef,sf,rf,qf,of,nf,kf,_b,mf,lf,tk,yr,Jr,yC,_z,xC,xC,xC,xC,xC];var Lb=[zC,qk,Ik,Ok,Sr,Tr,Kr,Gr,zr,_m,Jf,Wf,Eg,Yg,ah,gi,hi,Gi,Df,Im,Hm,Gm,Wn,ko,oo,po,Io,cq,gq,Cz,ws,Bt,zj,Gw,Lj,Nj,Sk,It,rB,Vi,Mt,lA,Ov,Ox,Px,nB,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC,zC];var Mb=[AC,pu];var Nb=[BC,rk,Ar,Lr];return{_saveSetjmp:xB,_vizRenderFromString:Zb,_i64Subtract:vB,_fflush:wz,_realloc:rB,_dtextract:Si,_memmove:BB,_dtopen:Vi,_vizLastErrorMessage:Yb,_memset:CB,_malloc:oB,_i64Add:wB,_memcpy:AB,_bitshift64Shl:DB,_bitshift64Lshr:yB,_free:pB,_dtdisc:Qi,___errno_location:qy,_testSetjmp:zB,runPostSets:uB,stackAlloc:Ob,stackSave:Pb,stackRestore:Qb,establishStackSpace:Rb,setThrew:Sb,setTempRet0:Vb,getTempRet0:Wb,dynCall_iiii:NB,dynCall_viiiiii:OB,dynCall_d:PB,dynCall_viiiii:QB,dynCall_i:RB,dynCall_vi:SB,dynCall_dd:TB,dynCall_vii:UB,dynCall_iiiiiii:VB,dynCall_viiiddi:WB,dynCall_ii:XB,dynCall_dddd:YB,dynCall_viii:ZB,dynCall_v:_B,dynCall_viid:$B,dynCall_iiiii:aC,dynCall_viiii:bC,dynCall_iii:cC,dynCall_iiiid:dC,dynCall_iiiiii:eC}})+++// EMSCRIPTEN_END_ASM+(e.Sa,e.Ta,buffer);e._vizRenderFromString=X._vizRenderFromString;var kc=e._saveSetjmp=X._saveSetjmp;e._fflush=X._fflush;var wc=e._memset=X._memset,jc=e._realloc=X._realloc;e._dtextract=X._dtextract;var vc=e._memmove=X._memmove;e._dtopen=X._dtopen;var hb=e._i64Subtract=X._i64Subtract,oc=e._testSetjmp=X._testSetjmp;e._vizLastErrorMessage=X._vizLastErrorMessage;var xa=e._malloc=X._malloc,jb=e._i64Add=X._i64Add,tc=e._memcpy=X._memcpy;+e.runPostSets=X.runPostSets;var mc=e._bitshift64Lshr=X._bitshift64Lshr,Ea=e._free=X._free;e._dtdisc=X._dtdisc;e.___errno_location=X.___errno_location;var xc=e._bitshift64Shl=X._bitshift64Shl;e.dynCall_iiii=X.dynCall_iiii;e.dynCall_viiiiii=X.dynCall_viiiiii;e.dynCall_d=X.dynCall_d;e.dynCall_viiiii=X.dynCall_viiiii;e.dynCall_i=X.dynCall_i;e.dynCall_vi=X.dynCall_vi;e.dynCall_dd=X.dynCall_dd;e.dynCall_vii=X.dynCall_vii;e.dynCall_iiiiiii=X.dynCall_iiiiiii;e.dynCall_viiiddi=X.dynCall_viiiddi;+e.dynCall_ii=X.dynCall_ii;e.dynCall_dddd=X.dynCall_dddd;e.dynCall_viii=X.dynCall_viii;e.dynCall_v=X.dynCall_v;e.dynCall_viid=X.dynCall_viid;e.dynCall_iiiii=X.dynCall_iiiii;e.dynCall_viiii=X.dynCall_viiii;e.dynCall_iii=X.dynCall_iii;e.dynCall_iiiid=X.dynCall_iiiid;e.dynCall_iiiiii=X.dynCall_iiiiii;n.ia=X.stackAlloc;n.ya=X.stackSave;n.ja=X.stackRestore;n.vd=X.establishStackSpace;n.lb=X.setTempRet0;n.Za=X.getTempRet0;+function ja(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}ja.prototype=Error();ja.prototype.constructor=ja;var od=null;+e.callMain=e.sd=function(a){function b(){for(var a=0;3>a;a++)d.push(0)}assert(!0,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(0==Ra.length,"cannot call main when preRun functions remain to be called");a=a||[];Va||(Va=!0,Qa(Sa));var c=a.length+1,d=[B(Xa(e.thisProgram),"i8",0)];b();for(var f=0;f<c-1;f+=1)d.push(B(Xa(a[f]),"i8",0)),b();d.push(0);d=B(d,"i32",0);try{var g=e._main(c,d,0);pd(g,!0)}catch(k){if(!(k instanceof ja))if("SimulateInfiniteLoop"==k)e.noExitRuntime=+!0;else throw k&&"object"===typeof k&&k.stack&&e.X("exception thrown: "+[k,k.stack]),k;}finally{}};+function qd(a){function b(){if(!e.calledRun&&(e.calledRun=!0,!w)){Va||(Va=!0,Qa(Sa));Qa(Ta);if(e.onRuntimeInitialized)e.onRuntimeInitialized();e._main&&rd&&e.callMain(a);if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var b=e.postRun.shift();Ua.unshift(b)}Qa(Ua)}}a=a||e.arguments;null===od&&(od=Date.now());if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)Wa();Qa(Ra);e.calledRun||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},+1);b()},1)):b())}e.run=e.run=qd;function pd(a,b){if(!b||!e.noExitRuntime){if(!e.noExitRuntime&&(w=!0,m=void 0,Qa(H),e.onExit))e.onExit(a);da?(process.stdout.once("drain",function(){process.exit(a)}),console.log(" "),setTimeout(function(){process.exit(a)},500)):fa&&"function"===typeof quit&&quit(a);throw new ja(a);}}e.exit=e.exit=pd;var sd=[];+function v(a){void 0!==a?(e.print(a),e.X(a),a=JSON.stringify(a)):a="";w=!0;var b="abort("+a+") at "+Fa()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";sd&&sd.forEach(function(c){b=c(b,a)});throw b;}e.abort=e.abort=v;if(e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();var rd=!0;e.noInitialRun&&(rd=!1);qd();+++ return Module;+};+ function Viz(src) {+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];+ var format = options.format === undefined ? "svg" : options.format;+ var engine = options.engine === undefined ? "dot" : options.engine;+ var scale = options.scale;+ var totalMemory = options.totalMemory;+ + if (format == "png-image-element") {+ return Viz.svgXmlToPngImageElement(render(src, "svg", engine, totalMemory), scale);+ } else {+ return render(src, format, engine, totalMemory);+ }+ }+ + function render(src, format, engine, totalMemory) {+ var graphviz = Module({ TOTAL_MEMORY: totalMemory });+ + var resultPointer = graphviz["ccall"]("vizRenderFromString", "number", ["string", "string", "string"], [src, format, engine]);+ var resultString = graphviz["Pointer_stringify"](resultPointer);++ var errorMessagePointer = graphviz["ccall"]("vizLastErrorMessage", "number", [], []);+ var errorMessageString = graphviz["Pointer_stringify"](errorMessagePointer);+ + if (errorMessageString != "") {+ throw new Error(errorMessageString);+ }+ + return resultString;+ }+ + Viz.svgXmlToPngImageElement = function(svgXml, scale, callback) {+ if (scale === undefined) {+ if ("devicePixelRatio" in window && window.devicePixelRatio > 1) {+ scale = window.devicePixelRatio;+ } else {+ scale = 1;+ }+ }+ + var pngImage = new Image();+ + if (typeof fabric === "object" && fabric.loadSVGFromString) {+ try {+ fabric.loadSVGFromString(svgXml, function(objects, options) {+ // If there's something wrong with the SVG, Fabric may return an empty array of objects. Graphviz appears to give us at least one <g> element back even given an empty graph, so we will assume an error in this case.+ if (objects.length == 0) {+ if (callback !== undefined) {+ callback(new Error("Error loading SVG with Fabric"));+ return;+ } else {+ throw new Error("Error loading SVG with Fabric");+ }+ }+ + var element = document.createElement("canvas");+ element.width = options.width;+ element.height = options.height;+ + var canvas = new fabric.Canvas(element, { enableRetinaScaling: false });+ var obj = fabric.util.groupSVGElements(objects, options);+ canvas.add(obj).renderAll();+ + pngImage.src = canvas.toDataURL({ multiplier: scale });+ pngImage.width = options.width;+ pngImage.height = options.height;+ + if (callback !== undefined) {+ callback(null, pngImage);+ }+ });+ } catch (e) {+ if (callback !== undefined) {+ callback(e);+ } else {+ throw e;+ }+ }+ } else {+ var svgImage = new Image();++ svgImage.onload = function() {+ var canvas = document.createElement("canvas");+ canvas.width = svgImage.width * scale;+ canvas.height = svgImage.height * scale;++ var context = canvas.getContext("2d");+ context.drawImage(svgImage, 0, 0, canvas.width, canvas.height);++ pngImage.src = canvas.toDataURL("image/png");+ pngImage.width = svgImage.width;+ pngImage.height = svgImage.height;+ + if (callback !== undefined) {+ callback(null, pngImage);+ }+ }+ + svgImage.onerror = function(e) {+ if (callback !== undefined) {+ callback(e);+ }+ }+ + svgImage.src = "data:image/svg+xml;base64," + btoa(svgXml);+ }+ + if (callback === undefined) {+ return pngImage;+ }+ }+ + Viz.svgXmlToPngBase64 = function(svgXml, scale, callback) {+ Viz.svgXmlToPngImageElement(svgXml, scale, function(err, image) {+ if (err) {+ callback(err);+ } else {+ callback(null, image.src.slice("data:image/png;base64,".length));+ }+ });+ }+ + if (typeof module === "object" && module.exports) {+ module.exports = Viz;+ } else {+ global.Viz = Viz;+ }+ +})(this);
+ test/Examples.hs view
@@ -0,0 +1,117 @@+module Main where++import Data.List+import Test.Hspec+import Test.Hspec.QuickCheck+import SMCDEL.Examples+import SMCDEL.Examples.DiningCrypto+import SMCDEL.Examples.DrinkLogic+import SMCDEL.Examples.MuddyChildren+import SMCDEL.Examples.RussianCards+import SMCDEL.Examples.SumAndProduct+import SMCDEL.Examples.WhatSum+import SMCDEL.Internal.TexDisplay+import SMCDEL.Language+import SMCDEL.Other.BDD2Form+import SMCDEL.Symbolic.S5+import SMCDEL.Translations.S5+import qualified SMCDEL.Explicit.S5 as Exp+import qualified SMCDEL.Symbolic.K as SymK+import qualified SMCDEL.Explicit.K as ExpK++main :: IO ()+main = hspec $ do+ describe "SMCDEL.Language" $ do+ prop "freshp returns a fresh proposition" $+ \props -> freshp props `notElem` props+ prop "simplifying a boolean formula yields something equivalent" $+ \(BF bf) -> boolBddOf bf == boolBddOf (simplify bf)+ prop "simplifying a boolean formula only removes propositions" $+ \(BF bf) -> all (`elem` propsInForm bf) (propsInForm (simplify bf))+ prop "list of subformulas is already nubbed" $+ \f -> nub (subformulas f) == subformulas f+ prop "formulas are identical iff their show strings are" $+ \f g -> ((f::Form) == g) == (show f == show g)+ prop "boolean formulas with same prettyprint are equivalent" $+ \(BF bf) (BF bg) -> (ppForm bf /= ppForm bg) || boolBddOf bf == boolBddOf bg+ prop "boolean formulas with same LaTeX are equivalent" $+ \(BF bf) (BF bg) -> (tex bf /= tex bg) || boolBddOf bf == boolBddOf bg+ it "we can LaTeX the testForm" $ tex testForm == intercalate "\n"+ [ " \\forall \\{ p_{3} \\} ( \\bigvee \\{"+ , " \\bot , p_{3} ,\\bot \\} \\leftrightarrow \\bigwedge \\{"+ , "\\top , ( \\top \\oplus K^?_{\\text{Alice}} p_{4} ) ,[Alice,Bob?! p_{5} ] K^?_{\\text{Bob}} p_{5} \\} ) " ]+ describe "SMCDEL.Symbolic.S5" $+ prop "boolEvalViaBdd agrees on simplified formulas" $+ \(BF bf) props -> let truths = nub props in+ boolEvalViaBdd truths bf == boolEvalViaBdd truths (simplify bf)+ describe "SMCDEL.Other.BDD2Form" $ do+ prop "boolBddOf . formOf . boolBddOf == boolBddOf" $+ \(BF bf) -> (boolBddOf . formOf . boolBddOf) bf == boolBddOf bf+ prop "boolBddOf . formOf == id" $+ \b -> b == boolBddOf (formOf b)+ prop "boolBddOf (Equi bf (formOf (boolBddOf bf))) == boolBddOf Top" $+ \(BF bf) -> boolBddOf (Equi bf (formOf (boolBddOf bf))) == boolBddOf Top+ describe "SMCDEL.Explicit.S5" $+ prop "generatedSubmodel preserves truth" $+ \m f -> Exp.eval (m, head $ Exp.worldsOf m) f == Exp.eval (Exp.generatedSubmodel (m, head $ Exp.worldsOf m)) f+ describe "SMCDEL.Examples" $ do+ it "modelA: bob knows p, alice does not" $+ Exp.eval modelA $ Conj [K bob (PrpF (P 0)), Neg $ K alice (PrpF (P 0))]+ it "modelB: bob knows p, alice does not know whether he knows whether p" $+ Exp.eval modelB $ Conj [K bob (PrpF (P 0)), Neg $ Kw alice (Kw bob (PrpF (P 0)))]+ it "knsA has two states while knsB has three" $+ [2,3] == map (length . statesOf . fst) [knsA,knsB]+ it "redundantModel and minimizedModel are bisimilar" $+ Exp.checkBisim+ [(0,0),(1,0),(2,1)]+ (fst redundantModel)+ (fst minimizedModel `Exp.withoutProps` [P 2])+ it "findStateMap works for modelB and knsB" $+ let (Just g) = findStateMap modelB knsB in equivalentWith modelB knsB g+ it "findStateMap works for redundantModel and myKNS" $+ let (Just g) = findStateMap redundantModel myKNS in equivalentWith redundantModel myKNS g+ it "findStateMap works for minimizedModel and myKNS" $+ let (Just g) = findStateMap minimizedModel myKNS in equivalentWith minimizedModel myKNS g+ it "Three Muddy Children" $+ evalViaBdd mudScn0 (nobodyknows 3) &&+ evalViaBdd mudScn1 (nobodyknows 3) &&+ evalViaBdd mudScn2 (Conj [knows i | i <- [1..3]]) &&+ length (SMCDEL.Symbolic.S5.statesOf mudKns2) == 1+ it "Thirsty Logicians: valid for up to 10 agents" $+ all thirstyCheck [3..10]+ it "Dining Crypto: valid for up to 9 agents" $+ dcValid && all genDcValid [3..9]+ it "Dining Crypto, dcScn2: Only Alice knows that she paid:" $+ evalViaBdd dcScn2 $+ Conj [K "1" (PrpF (P 1)), Neg $ K "2" (PrpF (P 1)), Neg $ K "3" (PrpF (P 1))]+ it "Russian Cards: all checks"+ SMCDEL.Examples.RussianCards.rcAllChecks+ it "Russian Cards: 102 solutions" $+ length (filter checkSet allHandLists) == 102+ it "Sum and Product: There is exactly one solution." $+ length sapSolutions == 1+ it "Sum and Product: (4,13) is a solution." $+ validViaBdd sapKnStruct (Impl (Conj [xIs 4, yIs 13]) sapProtocol)+ it "Sum and Product: (4,13) is the only solution." $+ validViaBdd sapKnStruct (Impl sapProtocol (Conj [xIs 4, yIs 13]))+ it "What Sum: There are 330 solutions." $+ length SMCDEL.Examples.WhatSum.wsSolutions == 330+ let ags = map show [1::Int,2,3]+ describe "SMCDEL.Explicit.K" $ do+ it "3MC genKrp: Top is Ck and Bot is not Ck" $+ ExpK.eval ExpK.myMudGenKrpInit $ Conj [Ck ags Top, Neg (Ck ags Bot)]+ it "3MC genKrp: It is not common knowledge that someone is muddy" $+ ExpK.eval ExpK.myMudGenKrpInit $+ Neg $ Ck (map show [1::Int,2,3]) $ Disj (map (PrpF . P) [1,2,3])+ it "3MC genKrp: after announcing makes it common knowledge that someone is muddy" $+ ExpK.eval ExpK.myMudGenKrpInit $+ PubAnnounce (Disj (map (PrpF . P) [1,2,3])) $ Ck (map show [1::Int,2,3]) $ Disj (map (PrpF . P) [1,2,3])+ describe "SMCDEL.Symbolic.K" $ do+ it "3MC genScn: Top is Ck and Bot is not Ck" $+ SymK.evalViaBdd SMCDEL.Examples.MuddyChildren.myMudBelScnInit $ Conj [Ck ags Top, Neg (Ck ags Bot)]+ it "3MC genScn: It is not common knowledge that someone is muddy" $+ SymK.evalViaBdd SMCDEL.Examples.MuddyChildren.myMudBelScnInit $+ Neg $ Ck (map show [1::Int,2,3]) $ Disj (map (PrpF . P) [1,2,3])+ it "3MC genScn: after announcing makes it common knowledge that someone is muddy" $+ SymK.evalViaBdd SMCDEL.Examples.MuddyChildren.myMudBelScnInit $+ PubAnnounce (Disj (map (PrpF . P) [1,2,3])) $ Ck (map show [1::Int,2,3]) $ Disj (map (PrpF . P) [1,2,3])
+ test/NonS5.hs view
@@ -0,0 +1,70 @@+module Main where++import Test.Hspec+import Test.Hspec.QuickCheck+import SMCDEL.Internal.Help (alleq)+import SMCDEL.Language+import SMCDEL.Symbolic.S5 (boolBddOf)+import SMCDEL.Explicit.K as ExpK+import SMCDEL.Symbolic.K as SymK+import SMCDEL.Translations.K as TransK+import SMCDEL.Explicit.K.Change+import SMCDEL.Symbolic.K.Change+import SMCDEL.Translations.K.Change+import Data.Map.Strict (fromList)+import Data.List (sort)++main :: IO ()+main = hspec $ do+ describe "SMCDEL.Symbolic.K" $+ prop "semantic equivalence" $ alleq . semanticEquivTest+ describe "SMCDEL.Other.Change" $+ prop "single change" $ \ a f -> alleq $ singleChangeTest a f++myMod :: ExpK.PointedModel+myMod = (ExpK.KrM $ fromList wlist, 0) where+ wlist = [ (w, (fromList val, fromList $ relFor val)) | (val,w) <- wvals ]+ vals = map sort (foldl buildTable [[]] [P 0 .. P 4])+ wvals = zip vals [0..]+ buildTable partrows p = [ (p,v):pr | v <-[True,False], pr <- partrows ]+ relFor val = [ (show i, map snd $ seesFrom i val) | i <- [0..5::Int] ]+ seesFrom i val = filter (\(val',_) -> samefor i val val') wvals+ samefor 0 ps qs = ps == qs -- knows everything+ samefor 1 _ _ = False -- insane+ samefor _ _ _ = True++myScn :: SymK.BelScene+myScn =+ let allprops = [P 0 .. P 4]+ in (SymK.BlS allprops+ (boolBddOf Top)+ (fromList $ ("0", SymK.allsamebdd allprops) -- knows everything+ : ("1", SymK.emptyRelBdd) -- insane+ : [(show i, SymK.totalRelBdd) | i<-[2..5::Int]])+ , allprops)++semanticEquivTest :: SimplifiedForm -> [Bool]+semanticEquivTest (SF f) =+ [ ExpK.eval myMod f -- evaluate directly on Kripke+ , SymK.evalViaBdd myScn f -- evaluate equivalent BDD on BlS+ , ExpK.eval (TransK.blsToKripke myScn) f -- evaluate on corresponding Kripke+ , SymK.evalViaBdd (TransK.kripkeToBls myMod) f -- evaluate on corresponding BlS+ ]++singleChangeTest :: ChangeModel -> SimplifiedForm -> [Bool]+singleChangeTest myact (SF f) =+ [ not (ExpK.eval myMod (preOf (myact,0::Action)))+ || ExpK.eval (productChange myMod (myact,0) ) f+ , not (SymK.evalViaBdd (kripkeToBls myMod) (preOf (actionToEvent (myact,0))))+ || SymK.evalViaBdd (transform (kripkeToBls myMod) (actionToEvent (myact,0))) f+ , not (ExpK.eval myMod (preOf (eventToAction' (actionToEvent (myact,0)))))+ || ExpK.eval (productChange myMod (eventToAction' (actionToEvent (myact,0)))) f+ , not (ExpK.eval (blsToKripke myScn) (preOf (eventToAction' (actionToEvent (myact,0)))))+ || ExpK.eval (productChange (blsToKripke myScn) (eventToAction' (actionToEvent (myact,0)))) f+ , not (SymK.evalViaBdd myScn (preOf (actionToEvent (myact,0))))+ || SymK.evalViaBdd (transform myScn (actionToEvent (myact,0)) ) f+ ]+ ++ case SMCDEL.Symbolic.K.Change.reduce (actionToEvent (myact,0)) f of+ Nothing -> []+ Just g -> pure $ SymK.evalViaBdd (kripkeToBls myMod) (simplify g)+ ++ [ SMCDEL.Symbolic.K.Change.evalViaBddReduce myScn (actionToEvent (myact,0)) f ]
+ test/Translations.hs view
@@ -0,0 +1,103 @@+module Main where++import Data.List (sort)+import Test.Hspec+import Test.Hspec.QuickCheck+import SMCDEL.Internal.Help (alleq)+import SMCDEL.Language+import SMCDEL.Symbolic.S5 as Sym+import SMCDEL.Explicit.S5 as Exp+import SMCDEL.Translations.S5+import SMCDEL.Examples++main :: IO ()+main = hspec $+ describe "SMCDEL.Translations" $ do+ prop "semantic equivalence" semanticEquivTest+ prop "semantic validity" semanticValidTest+ prop "lemma equivalence Kripke" lemmaEquivTestKr+ prop "number of states" numOfStatesTest+ prop "public announcement" pubAnnounceTest+ prop "group announcement" (\sf gl sg -> alleq $ announceTest sf gl sg)+ prop "single action" (\am f -> alleq $ singleActionTest am f)++mymodel :: PointedModelS5+mymodel = (KrMS5 ws rel val, 0) where+ buildTable partrows p = [ (p,v):pr | v <- [True,False], pr <- partrows ]+ table = foldl buildTable [[]] [P 0 .. P 4]+ val = zip [0..] (map sort table)+ ws = map fst val+ rel = ("0", map (:[]) ws) : [ (show i,[ws]) | i <- [1..5::Int] ]++myscn :: KnowScene+myscn = (KnS ps (boolBddOf Top) (("0",ps):[(show i,[]) | i<-[1..5::Int]]) , ps)+ where ps = [P 0 .. P 4]++semanticEquivTest :: Form -> Bool+semanticEquivTest f = alleq+ [ Exp.eval mymodel f -- evaluate directly on Kripke+ , Sym.eval myscn (simplify f) -- evaluate directly on KNS (slow!)+ , Sym.evalViaBdd myscn f -- evaluate equivalent BDD on KNS+ , Exp.eval (knsToKripke myscn) f -- evaluate on corresponding Kripke+ , Sym.evalViaBdd (kripkeToKns mymodel) f -- evaluate on corresponding KNS+ ]++semanticValidTest :: Form -> Bool+semanticValidTest f = alleq+ [ Exp.valid (fst mymodel) f -- evaluate directly on Kripke+ , Sym.validViaBdd (fst myscn) f -- evaluate equivalent BDD on KNS+ , Exp.valid (fst $ knsToKripke myscn) f -- evaluate on corresponding Kripke+ , Sym.validViaBdd (fst $ kripkeToKns mymodel) f -- evaluate on corresponding KNS+ , Sym.whereViaBdd (fst $ kripkeToKns mymodel) f == Sym.statesOf (fst $ kripkeToKns mymodel)+ ]++numOfStatesTest :: KripkeModelS5 -> Bool+numOfStatesTest m@(KrMS5 oldws _ _) = numberOfStates kns == length news where+ scn@(kns, _) = kripkeToKns (m, head oldws)+ (KrMS5 news _ _, _) = knsToKripke scn++lemmaEquivTestKr :: KripkeModelS5 -> Bool+lemmaEquivTestKr m@(KrMS5 ws _ _) = equivalentWith pm kns g where+ pm = (m, head ws)+ (kns,g) = kripkeToKnsWithG pm++lemmaEquivTestKns :: KnowStruct -> Bool+lemmaEquivTestKns kns = equivalentWith pm scn g where+ scn = (kns, head $ statesOf kns)+ (pm,g) = knsToKripkeWithG scn++pubAnnounceTest :: Prp -> SimplifiedForm -> Bool+pubAnnounceTest prp (SF g) = alleq+ [ Exp.eval mymodel (PubAnnounce f g)+ , Sym.eval (kripkeToKns mymodel) (PubAnnounce f g)+ , Sym.evalViaBdd (kripkeToKns mymodel) (PubAnnounce f g)+ , Sym.eval (knowTransform (kripkeToKns mymodel) (actionToEvent (pubAnnounceAction (agentsOf mymodel) f))) g+ ] where+ f = PrpF prp++announceTest :: SimplifiedForm -> Group -> SimplifiedForm -> [Bool]+announceTest (SF f) (Group listeners) (SF g) =+ [ Exp.eval mymodel (Announce listeners f g) -- directly on Kripke+ , let -- apply action model to Kripke+ precon = Exp.eval mymodel f+ action = groupAnnounceAction (agentsOf mymodel) listeners f+ newModel = productUpdate mymodel action+ in not precon || Exp.eval newModel g+ , Sym.eval (kripkeToKns mymodel) (Announce listeners f g) -- on equivalent kns+ , Sym.evalViaBdd (kripkeToKns mymodel) (Announce listeners f g) -- BDD on equivalent kns+ , let -- apply equivalent transformer to equivalent kns+ precon = Sym.eval (kripkeToKns mymodel) f+ equiTrf = actionToEvent (groupAnnounceAction (agentsOf mymodel) listeners f)+ newKns = knowTransform (kripkeToKns mymodel) equiTrf+ in not precon || Sym.eval newKns g+ ]++singleActionTest :: ActionModel -> Form -> [Bool]+singleActionTest myact f = [a,b,c,d,e] where+ a = Exp.eval (productUpdate mymodel (myact,0)) f+ b = Sym.evalViaBdd (knowTransform (kripkeToKns mymodel) (actionToEvent (myact,0))) f+ c = Exp.eval (productUpdate mymodel (eventToAction (actionToEvent (myact,0)))) f+ d = case reduce (actionToEvent (myact,0)) f of+ Nothing -> c+ Just g -> Sym.evalViaBdd (kripkeToKns mymodel) g+ e = Sym.evalViaBddReduce (kripkeToKns mymodel) (actionToEvent (myact,0)) f