2021-07-21 23:11:13 +08:00

3054 lines
964 KiB
JavaScript

window.Physics3D=function(A,e){var r=window.Physics3D={};return r.then=(A=>{A(r)}),function(A,e,r){var i=e.getWorldTransform,f=e.setWorldTransform;window.atob||(window.atob=function(A){var e=String(A).replace(/[=]+$/,"");if(e.length%4==1)throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,i,f=0,t=0,n="";i=e.charAt(t++);~i&&(r=f%4?64*r+i:i,f++%4)?n+=String.fromCharCode(255&r>>(-2*f&6)):0)i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(i);return n});var t=new ArrayBuffer(8),n=new Int32Array(t),a=new Float32Array(t),o=new Float64Array(t);function c(A){return n[A]}function b(A,e){n[A]=e}function l(){return o[0]}function u(A){o[0]=A}function s(A){a[0]=A}function k(){return a[0]}var v=new ArrayBuffer(A),d=function(A){var e=new Uint8Array(A);return function(A,r){var i,f;if("undefined"==typeof Buffer)for(i=atob(r),f=0;f<i.length;f++)e[A+f]=i.charCodeAt(f);else for(i=Buffer.from(r,"base64"),f=0;f<i.length;f++)e[A+f]=i[f]}}(v);d(2848,"BQ=="),d(2860,"AQ=="),d(2880,"AgAAAAMAAAAMBA=="),d(2904,"AgAAAAAAAAD/////"),d(2960,"GwAAABwAAAAdAAAAHgAAAArXozwBAAAAbxKDOgEAAACIAQAAiQEAAAAAAEA="),d(3008,"IAs="),d(3025,"GRJEOwI/LEcUPTMwChsGRktFNw9JDhcDQB08KzYfSi0cASAlKSEIDBUWIi4QOD4LNDEYL0EJOREjQzJCOgUEJignDSoeNQcaSBMkTP8AAFN1Y2Nlc3MASWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBRdW90YSBleGNlZWRlZABNdWx0aWhvcCBhdHRlbXB0ZWQAQ2FwYWJpbGl0aWVzIGluc3VmZmljaWVudABObyBlcnJvciBpbmZvcm1hdGlvbgAALSsgICAwWDB4AChudWxsKQ=="),d(4704,"GQAKABkZGQAAAAAFAAAAAAAACQAAAAAL"),d(4736,"GQARChkZGQMKBwABGwkLGAAACQYLAAALAAYZAAAAGRkZ"),d(4785,"Dg=="),d(4794,"GQAKDRkZGQANAAACAAkOAAAACQAOAAAO"),d(4843,"DA=="),d(4855,"EwAAAAATAAAAAAkMAAAAAAAMAAAM"),d(4901,"EA=="),d(4913,"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"),d(4959,"Eg=="),d(4971,"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"),d(5026,"GgAAABoaGgAAAAAAAAk="),d(5075,"FA=="),d(5087,"FwAAAAAXAAAAAAkUAAAAAAAUAAAU"),d(5133,"Fg=="),d(5145,"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAABTdXBwb3J0IGZvciBmb3JtYXR0aW5nIGxvbmcgZG91YmxlIHZhbHVlcyBpcyBjdXJyZW50bHkgZGlzYWJsZWQuClRvIGVuYWJsZSBpdCwgYWRkIC1sYy1wcmludHNjYW4tbG9uZy1kb3VibGUgdG8gdGhlIGxpbmsgY29tbWFuZC4K"),d(5312,"MDEyMzQ1Njc4OUFCQ0RFRi0wWCswWCAwWC0weCsweCAweABpbmYASU5GAG5hbgBOQU4ALgAKAFB1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxsZWQhAFN0OXR5cGVfaW5mbwAAAJQVAAAVFQAATjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAAAAAvBUAACwVAAAkFQAATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAAAAvBUAAFwVAABQFQAAAAAAAIAVAAAEAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAAAAAAAEFgAABQAAAA4AAAAIAAAACQAAAAoAAAAPAAAAEAAAABEAAABOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UAAAAAvBUAANwVAACAFQAAAAAAAGAWAAAGAAAAEgAAAAgAAAAJAAAACgAAABMAAAAUAAAAFQAAAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAAAC8FQAAOBYAAIAVAAAAAAAA3BYAABYAAAAXAAAAGAAAABgAAAAYAAAAAAAAAOQWAAAZAAAAGgAAABgAAAAYAAAAGAAAADMwYnRBY3RpdmF0aW5nQ29sbGlzaW9uQWxnb3JpdGhtADIwYnRDb2xsaXNpb25BbGdvcml0aG0AlBUAAMUWAAC8FQAApBYAANwWAABidENvbGxpc2lvblNoYXBlRGF0YQAxNmJ0Q29sbGlzaW9uU2hhcGUAlBUAAAUXAAAAAAAAlBcAAB8AAAAgAAAAGAAAACEAAAAiAAAAIwAAABgAAAAYAAAAGAAAABgAAAAkAAAAGAAAABgAAAAlAAAAJgAAACcAAAAYAAAAGAAAACgAAAAYAAAAGAAAABgAAAAYAAAAMTNidENvbnZleFNoYXBlALwVAACEFwAAGBcAAAAAAADgGAAAHwAAACkAAAAqAAAAIQAAACIAAAAjAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAAJwAAADQAAAA1AAAAKAAAADYAAAA3AAAAOAAAADk="),d(6153,"GQAAHwAAADoAAAAqAAAAIQAAACIAAAAjAAAAKwAAACwAAAAtAAAAOwAAAC8AAAAwAAAAMQAAADIAAAAzAAAAJwAAADQAAAA1AAAAKAAAADYAAAA3AAAAOAAAADkAAAAAAAAAIBkAAB8AAAA8AAAAKgAAACEAAAAiAAAAIwAAACsAAAAsAAAALQAAAD0AAAAvAAAAMAAAADEAAAAyAAAAMwAAACcAAAA0AAAANQAAACgAAAA2AAAANwAAADgAAAA5AAAAMTRidENhcHN1bGVTaGFwZQAAAAC8FQAAzBgAAIAbAAAxNWJ0Q2Fwc3VsZVNoYXBlWAAAALwVAADsGAAA4BgAADE1YnRDYXBzdWxlU2hhcGVaAAAAvBUAAAwZAADgGAAAQ2Fwc3VsZVNoYXBlAGJ0Q2Fwc3VsZVNoYXBlRGF0YQBDYXBzdWxlWABDYXBzdWxlWgAAAAAAAACcGgAAHwAAAD4AAAA/AAAAIQAAACIAAAAjAAAAQAAAACwAAABBAAAAQgAAAEMAAABEAAAAMQAAAEUAAABGAAAAJwAAAEcAAABIAAAAKAAAAEkAAAA3AAAAOAAAADkAAAAAAAAAuBoAAB8AAABKAAAAPwAAACEAAAAiAAAAIwAAAEAAAAAsAAAAQQAAAEsAAABMAAAARAAAADEAAABFAAAARgAAACcAAABHAAAASAAAACgAAABJAAAANwAAADgAAAA5AAAAAAAAANQaAAAfAAAATQAAAD8AAAAhAAAAIgAAACMAAABAAAAALAAAAEEAAABOAAAATwAAAEQAAAAxAAAARQAAAEYAAAAnAAAARwAAAEgAAAAoAAAASQAAADcAAAA4AAAAOQAAADExYnRDb25lU2hhcGUAAAC8FQAAjBoAAIAbAAAxMmJ0Q29uZVNoYXBlWgAAvBUAAKgaAACcGgAAMTJidENvbmVTaGFwZVgAALwVAADEGgAAnBoAAENvbmUAYnRDb25lU2hhcGVEYXRhAENvbmVaAENvbmVY"),d(6920,"gBsAAB8AAABQAAAAPwAAACEAAAAiAAAAIwAAAFEAAAAsAAAAGAAAABgAAAAkAAAARAAAADEAAABSAAAAUwAAACcAAAA0AAAAGAAAACgAAAAYAAAANwAAADgAAAA5AAAAMjFidENvbnZleEludGVybmFsU2hhcGUAvBUAAGgbAACUFwAAAAAAALQbAABUAAAAVQAAADE4YnRDb252ZXhQb2x5aGVkcm9uAAAAAJQVAACcGwAAAAAAAOAcAABWAAAAVwAAAD8AAAAhAAAAIgAAACMAAABRAAAALAAAAFgAAAAYAAAAJAAAAEQAAAAxAAAAUgAAAFMAAAAnAAAANAAAAFkAAAAoAAAAWgAAADcAAAA4AAAAOQAAAFsAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAAAAAABQdAABWAAAAXAAAAF0AAAAhAAAAIgAAACMAAABeAAAALAAAAFgAAAAYAAAAJAAAAEQAAAAxAAAAUgAAAFMAAAAnAAAANAAAAFkAAAAoAAAAWgAAADcAAAA4AAAAOQAAAFsAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAMjNidFBvbHloZWRyYWxDb252ZXhTaGFwZQAAALwVAADEHAAAgBsAADM0YnRQb2x5aGVkcmFsQ29udmV4QWFiYkNhY2hpbmdTaGFwZQAAAAC8FQAA7BwAAOAcAAAAAAAAvB0AAFYAAABfAAAAYAAAACEAAAAiAAAAIwAAAF4AAAAsAAAAWAAAAGEAAAAkAAAARAAAADEAAABSAAAAUwAAACcAAAA0AAAAWQAAACgAAABaAAAANwAAADgAAAA5AAAAWwAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAMTZidEJVX1NpbXBsZXgxdG80AAC8FQAAqB0AABQdAAABAAAAAwAAAAYAAAAxOGJ0VHJpYW5nbGVDYWxsYmFjawAAAACUFQAA1B0AADMxYnRJbnRlcm5hbFRyaWFuZ2xlSW5kZXhDYWxsYmFjawAAAJQVAAD0HQAAAAAAAIgeAABqAAAAawAAAGwAAABtAAAAbgAAADE2YnRNYW5pZm9sZFJlc3VsdABOMzZidERpc2NyZXRlQ29sbGlzaW9uRGV0ZWN0b3JJbnRlcmZhY2U2UmVzdWx0RQAAlBUAAE8eAAC8FQAAPB4AAIAeAAAxMmJ0RGlzcGF0Y2hlcgAAlBUAAJQeAAAAAAAADB8AAHAAAABxAAAAcgAAAHMAAAB0AAAAdQAAAHYAAAB3AAAAeAAAAHkAAAB6AAAAewAAAHwAAAB9AAAAfgAAAH8AAAAyMWJ0Q29sbGlzaW9uRGlzcGF0Y2hlcgC8FQAA9B4AAKQeAAAAAAAAZB8AAIAAAACBAAAAggAAADIzYnRDb2xsaXNpb25QYWlyQ2FsbGJhY2sAMTdidE92ZXJsYXBDYWxsYmFjawAAAJQVAABGHwAAvBUAACwfAABcHwAAAAAAAKwfAACDAAAAhAAAAIUAAACGAAAAhwAAADI3YnRHSW1wYWN0Q29sbGlzaW9uQWxnb3JpdGhtAAAAvBUAAIwfAADkFgAAAAAAAHQgAABWAAAAiAAAAIkAAAAhAAAAIgAAACMAAABRAAAALAAAAIoAAACLAAAAJAAAAEQAAAAxAAAAUgAAAFMAAAAnAAAANAAAAIwAAAAoAAAAjQAAADcAAACOAAAAjwAAAFsAAACQAAAAkQAAAJIAAACTAAAAlAAAAJUAAACWAAAAlwAAADE3YnRUcmlhbmdsZVNoYXBlRXgAMTVidFRyaWFuZ2xlU2hhcGUAAAC8FQAAVCAAAOAcAAC8FQAAQCAAAGggAABUcmlhbmdsZQBidENvbnZleEludGVybmFsU2hhcGVEYXRhAAAAAAAARCEAAFYAAACYAAAAYAAAACEAAAAiAAAAIwAAAF4AAAAsAAAAWAAAAGEAAAAkAAAARAAAADEAAABSAAAAUwAAACcAAAA0AAAAWQAAACgAAABaAAAANwAAADgAAAA5AAAAWwAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAMjBidFRldHJhaGVkcm9uU2hhcGVFeAAAvBUAACwhAAC8HQAAYnRCVV9TaW1wbGV4MXRvNA=="),d(8552,"pCEAAJkAAACaAAAAmwAAAE4xOEdJTV9TaGFwZVJldHJpZXZlcjE5Q2hpbGRTaGFwZVJldHJpZXZlckUAlBUAAHghAAAAAAAA8CEAAJwAAACaAAAAnQAAAE4xOEdJTV9TaGFwZVJldHJpZXZlcjIyVHJpYW5nbGVTaGFwZVJldHJpZXZlckUAALwVAADAIQAApCEAAAAAAAA8IgAAngAAAJoAAACfAAAATjE4R0lNX1NoYXBlUmV0cmlldmVyMTlUZXRyYVNoYXBlUmV0cmlldmVyRQC8FQAAECIAAKQhAAAAAAAAeCIAAKAAAAChAAAAogAAADI1YnRHSW1wYWN0VHJpYW5nbGVDYWxsYmFjawC8FQAAXCIAAOwdAAAAAAAA8CIAAKMAAACkAAAApQAAAE4yN2J0R0ltcGFjdENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAMzBidENvbGxpc2lvbkFsZ29yaXRobUNyZWF0ZUZ1bmMAAAAAlBUAAMQiAAC8FQAAmCIAAOgiAAAAAAAAUCMAAKYAAACnAAAAqAAAAKkAAACqAAAAqwAAAKwAAABidENvbGxpc2lvbk9iamVjdEZsb2F0RGF0YQAxN2J0Q29sbGlzaW9uT2JqZWN0AACUFQAAOyMAAAAAAADwIwAAVgAAAK0AAACuAAAAIQAAACIAAAAjAAAArwAAACwAAACwAAAAsQAAACQAAACyAAAAMQAAAFIAAABTAAAAJwAAALMAAAC0AAAAKAAAALUAAAA3AAAAtgAAALcAAABbAAAAuAAAALkAAAC6AAAAuwAAALwAAAC9AAAAvgAAAL8AAAAxMGJ0Qm94U2hhcGUAAAAAvBUAAOAjAADgHAAAQm94AAAAgD8AAIC/"),d(9250,"gD8AAIC/"),d(9282,"gD8AAIC/"),d(9296,"AQAAAAIAAAAAAAAAAQAAAAIAAAADAAAABAAAAAQAAAAFAAAABgAAAAEAAAACAAAAAwAAAAMAAAAEAAAABQAAAAYAAAAHAAAABQAAAAYAAAAHAAAABwAAAAAAAAD0JQAAHwAAAMAAAADBAAAAIQAAACIAAAAjAAAAwgAAACwAAADDAAAAxAAAAMUAAADGAAAAMQAAAMcAAADIAAAAJwAAAMkAAADKAAAAKAAAAMsAAAA3AAAAOAAAADkAAADMAAAAAAAAABQmAAAfAAAAzQAAAMEAAAAhAAAAIgAAACMAAADCAAAALAAAAMMAAADOAAAAxQAAAMYAAAAxAAAAxwAAAMgAAAAnAAAAyQAAAM8AAAAoAAAA0AAAADcAAAA4AAAAOQAAANEAAAAAAAAANCYAAB8AAADSAAAAwQAAACEAAAAiAAAAIwAAAMIAAAAsAAAAwwAAANMAAADFAAAAxgAAADEAAADHAAAAyAAAACcAAADJAAAA1AAAACgAAADVAAAANwAAADgAAAA5AAAA1gAAADE1YnRDeWxpbmRlclNoYXBlAAAAvBUAAOAlAACAGwAAMTZidEN5bGluZGVyU2hhcGVYAAC8FQAAACYAAPQlAAAxNmJ0Q3lsaW5kZXJTaGFwZVoAALwVAAAgJgAA9CUAAEN5bGluZGVyWQBidEN5bGluZGVyU2hhcGVEYXRhAEN5bGluZGVyWABDeWxpbmRlcloAAAAAAAAA6CYAAB8AAADXAAAA2AAAACEAAAAiAAAAIwAAAFEAAAAsAAAA2QAAANoAAAAkAAAA2wAAANwAAABSAAAAUwAAACcAAADdAAAA3gAAACgAAADfAAAANwAAADgAAAA5AAAAMTNidFNwaGVyZVNoYXBlALwVAADYJgAAgBsAAFNQSEVSRQAAAAAAAJgnAADgAAAA4QAAAOIAAABaTjIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZTE0cGVyZm9ybVJheWNhc3RFUDE4YnRUcmlhbmdsZUNhbGxiYWNrUks5YnRWZWN0b3IzUzRfRTIxTXlOb2RlT3ZlcmxhcENhbGxiYWNrADIxYnROb2RlT3ZlcmxhcENhbGxiYWNrAJQVAAB4JwAAvBUAABAnAACQJwAAAAAAACwoAADgAAAA4wAAAOQAAABaTjIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZTE3cGVyZm9ybUNvbnZleGNhc3RFUDE4YnRUcmlhbmdsZUNhbGxiYWNrUks5YnRWZWN0b3IzUzRfUzRfUzRfRTIxTXlOb2RlT3ZlcmxhcENhbGxiYWNrAAAAALwVAAC4JwAAkCcAAAAAAACYKAAA5QAAAOYAAAAYAAAAIQAAACIAAAAjAAAAGAAAABgAAAAYAAAAGAAAACQAAADnAAAA6AAAACUAAAAmAAAAJwAAABgAAAAxNGJ0Q29uY2F2ZVNoYXBlAAAAALwVAACEKAAAGBcAAAAAAAAIKQAA6QAAAOoAAADrAAAAIQAAACIAAAAjAAAA7AAAAO0AAADuAAAA7wAAACQAAADnAAAA6AAAAPAAAADxAAAAJwAAAPIAAAAxOGJ0U3RhdGljUGxhbmVTaGFwZQAAAAC8FQAA8CgAAJgoAABTVEFUSUNQTEFORQBidFN0YXRpY1BsYW5lU2hhcGVEYXRhAAAAAAAAMCoAAPMAAAD0AAAA9QAAACEAAAAiAAAAIwAAAPYAAAD3AAAA+AAAAPkAAAAkAAAA+gAAAPsAAAAlAAAAJgAAACcAAAD8AAAA/QAAAP4AAAD/AAAAAAEAAAEBAAACAQAAAwEAAAQBAAAFAQAABgEAAAcBAAAIAQAACQEAAAoBAAALAQAADAEAAA0BAAAOAQAADwEAABABAABidEdJbXBhY3RNZXNoU2hhcGVEYXRhADIzYnRHSW1wYWN0U2hhcGVJbnRlcmZhY2UAAAAAvBUAAOspAACYKAAAMjJidEdJbXBhY3RNZXNoU2hhcGVQYXJ0AAAAALwVAAAUKgAACCoAAAAAAADwKgAAEQEAABIBAAD1AAAAIQAAACIAAAAjAAAAEwEAABQBAAAVAQAAFgEAACQAAAAXAQAA6AAAABgBAAAZAQAAJwAAABoBAAAbAQAAHAEAAP8AAAAdAQAAHgEAAB8BAAAgAQAAIQEAACIBAAAjAQAAJAEAACUBAAAmAQAAJwEAACgBAAApAQAAKgEAACsBAAAsAQAALQEAADE4YnRHSW1wYWN0TWVzaFNoYXBlAAAAALwVAADYKgAACCoAAAAAAAAIKgAALgEAAC8BAAD1AAAAIQAAACIAAAAjAAAAMAEAABQBAAAYAAAAGAAAACQAAAAxAQAA6AAAACUAAAAmAAAAJwAAADIBAAD9AAAA/gAAAP8AAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAADMBAAA0AQAACgEAABgAAAAYAAAAGAAAABgAAAAPAQAANQEAAAAAAAAQLAAANgEAADcBAAA4AQAAOQEAADoBAAA7AQAATjIyYnRHSW1wYWN0TWVzaFNoYXBlUGFydDIzVHJpbWVzaFByaW1pdGl2ZU1hbmFnZXJFADIyYnRQcmltaXRpdmVNYW5hZ2VyQmFzZQAAAACUFQAA7CsAALwVAAC4KwAACCwAAEdJbXBhY3RNZXNoU2hhcGVQYXJ0AEdJbXBhY3RNZXNoAE42YnREYnZ0OElDb2xsaWRlRQCUFQAAPSw="),d(11360,"AwAAAAQAAAAEAAAABgAAAIP5ogBETm4A/CkVANFXJwDdNPUAYtvAADyZlQBBkEMAY1H+ALveqwC3YcUAOm4kANJNQgBJBuAACeouAByS0QDrHf4AKbEcAOg+pwD1NYIARLsuAJzphAC0JnAAQX5fANaROQBTgzkAnPQ5AItfhAAo+b0A+B87AN7/lwAPmAUAES/vAApaiwBtH20Az342AAnLJwBGT7cAnmY/AC3qXwC6J3UA5evHAD178QD3OQcAklKKAPtr6gAfsV8ACF2NADADVgB7/EYA8KtrACC8zwA29JoA46kdAF5hkQAIG+YAhZllAKAUXwCNQGgAgNj/ACdzTQAGBjEAylYVAMmocwB74mAAa4zAABnERwDNZ8MACejcAFmDKgCLdsQAphyWAESv3QAZV9EApT4FAAUH/wAzfj8AwjLoAJhP3gC7fTIAJj3DAB5r7wCf+F4ANR86AH/yygDxhx0AfJAhAGokfADVbvoAMC13ABU7QwC1FMYAwxmdAK3EwgAsTUEADABdAIZ9RgDjcS0Am8aaADNiAAC00nwAtKeXADdV1QDXPvYAoxAYAE12/ABknSoAcNerAGN8+AB6sFcAFxXnAMBJVgA71tkAp4Q4ACQjywDWincAWlQjAAAfuQDxChsAGc7fAJ8x/wBmHmoAmVdhAKz7RwB+f9gAImW3ADLoiQDmv2AA78TNAGw2CQBdP9QAFt7XAFg73gDem5IA0iIoACiG6ADiWE0AxsoyAAjjFgDgfcsAF8BQAPMdpwAY4FsALhM0AIMSYgCDSAEA9Y5bAK2wfwAe6fIASEpDABBn0wCq3dgArl9CAGphzgAKKKQA05m0AAam8gBcd38Ao8KDAGE8iACKc3gAr4xaAG/XvQAtpmMA9L/LAI2B7wAmwWcAVcpFAMrZNgAoqNIAwmGNABLJdwAEJhQAEkabAMRZxADIxUQATbKRAAAX8wDUQ60AKUnlAP3VEAAAvvwAHpTMAHDO7gATPvUA7PGAALPnwwDH+CgAkwWUAMFxPgAuCbMAC0XzAIgSnACrIHsALrWfAEeSwgB7Mi8ADFVtAHKnkABr5x8AMcuWAHkWSgBBeeIA9N+JAOiUlwDi5oQAmTGXAIjtawBfXzYAu/0OAEiatABnpGwAcXJCAI1dMgCfFbgAvOUJAI0xJQD3dDkAMAUcAA0MAQBLCGgALO5YAEeqkAB05wIAvdYkAPd9pgBuSHIAnxbvAI6UpgC0kfYA0VNRAM8K8gAgmDMA9Ut+ALJjaADdPl8AQF0DAIWJfwBVUikAN2TAAG3YEAAySDIAW0x1AE5x1ABFVG4ACwnBACr1aQAUZtUAJwedAF0EUAC0O9sA6nbFAIf5FwBJa30AHSe6AJZpKQDGzKwArRRUAJDiagCI2YkALHJQAASkvgB3B5QA8zBwAAD8JwDqcagAZsJJAGTgPQCX3YMAoz+XAEOU/QANhowAMUHeAJI5nQDdcIwAF7fnAAjfOwAVNysAXICgAFqAkwAQEZIAD+jYAGyArwDb/0sAOJAPAFkYdgBipRUAYcu7AMeJuQAQQL0A0vIEAEl1JwDrtvYA2yK7AAoUqgCJJi8AZIN2AAk7MwAOlBoAUTqqAB2jwgCv7a4AXCYSAG3CTQAtepwAwFaXAAM/gwAJ8PYAK0CMAG0xmQA5tAcADCAVANjDWwD1ksQAxq1LAE7KpQCnN80A5qk2AKuSlADdQmgAGWPeAHaM7wBoi1IA/Ns3AK6hqwDfFTEAAK6hAAz72gBkTWYA7QW3ACllMABXVr8AR/86AGr5uQB1vvMAKJPfAKuAMABmjPYABMsVAPoiBgDZ5B0APbOkAFcbjwA2zQkATkLpABO+pAAzI7UA8KoaAE9lqADSwaUACz8PAFt4zQAj+XYAe4sEAIkXcgDGplMAb27iAO/rAACbSlgAxNq3AKpmugB2z88A0QIdALHxLQCMmcEAw613AIZI2gD3XaAAxoD0AKzwLwDd7JoAP1y8ANDebQCQxx8AKtu2AKMlOgAAr5oArVOTALZXBAApLbQAS4B+ANoHpwB2qg4Ae1mhABYSKgDcty0A+uX9AInb/gCJvv0A5HZsAAap/AA+gHAAhW4VAP2H/wAoPgcAYWczACoYhgBNveoAs+evAI9tbgCVZzkAMb9bAITXSAAw3xYAxy1DACVhNQDJcM4AMMu4AL9s/QCkAKIABWzkAFrdoAAhb0cAYhLSALlchABwYUkAa1bgAJlSAQBQVTcAHtW3ADPxxAATbl8AXTDkAIUuqQAdssMAoTI2AAi3pADqsdQAFvchAI9p5AAn/3cADAOAAI1ALQBPzaAAIKWZALOi0wAvXQoAtPlCABHaywB9vtAAm9vBAKsXvQDKooEACGpcAC5VFwAnAFUAfxTwAOEHhgAUC2QAlkGNAIe+3gDa/SoAayW2AHuJNAAF8/4Aub+eAGhqTwBKKqgAT8RaAC34vADXWpgA9MeVAA1NjQAgOqYApFdfABQ/sQCAOJUAzCABAHHdhgDJ3rYAv2D1AE1lEQABB2sAjLCsALLA0ABRVUgAHvsOAJVywwCjBjsAwEA1AAbcewDgRcwATin6ANbKyADo80EAfGTeAJtk2ADZvjEApJfDAHdY1ABp48UA8NoTALo6PABGGEYAVXVfANK99QBuksYArC5dAA5E7QAcPkIAYcSHACn96QDn1vMAInzKAG+RNQAI4MUA/9eNAG5q4gCw/cYAkwjBAHxddABrrbIAzW6dAD5yewDGEWoA98+pAClz3wC1yboAtwBRAOKyDQB0uiQA5X1gAHTYigANFSwAgRgMAH5mlAABKRYAn3p2AP39vgBWRe8A2X42AOzZEwCLurkAxJf8ADGoJwDxbsMAlMU2ANioVgC0qLUAz8wOABKJLQBvVzQALFaJAJnO4wDWILkAa16qAD4qnAARX8wA/QtKAOH0+wCOO20A4oYsAOnUhAD8tKkA7+7RAC41yQAvOWEAOCFEABvZyACB/AoA+0pqAC8c2ABTtIQATpmMAFQizAAqVdwAwMbWAAsZlgAacLgAaZVkACZaYAA/Uu4AfxEPAPS1EQD8y/UANLwtADS87gDoXcwA3V5gAGeOmwCSM+8AyRe4AGFYmwDhV7wAUYPGANg+EADdcUgALRzdAK8YoQAhLEYAWfPXANl6mACeVMAAT4b6AFYG/ADlea4AiSI2ADitIgBnk9wAVeiqAIImOADK55sAUQ2kAJkzsQCp1w4AaQVIAGWy8AB/iKcAiEyXAPnRNgAhkrMAe4JKAJjPIQBAn9wA3EdVAOF0OgBn60IA/p3fAF7UXwB7Z6QAuqx6AFX2ogAriCMAQbpVAFluCAAhKoYAOUeDAInj5gDlntQASftAAP9W6QAcD8oAxVmKAJT6KwDTwcUAD8XPANtargBHxYYAhUNiACGGOwAseZQAEGGHACpMewCALBoAQ78SAIgmkAB4PIkAqMTkAOXbewDEOsIAJvTqAPdnigANkr8AZaMrAD2TsQC9fAsApFHcACfdYwBp4d0AmpQZAKgplQBozigACe20AESfIABOmMoAcIJjAH58IwAPuTIAp/WOABRW5wAh8QgAtZ0qAG9+TQClGVEAtfmrAILf1gCW3WEAFjYCAMQ6nwCDoqEAcu1tADmNegCCuKkAazJcAEYnWwAANO0A0gB3APz0VQABWU0A4HGA"),d(14147,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNQAAAAAQOAAAPAEAAD0BAAA+AQAAIQAAACIAAAAjAAAAPwEAAEABAABBAQAAQgEAACQAAABDAQAARAEAAEUBAABGAQAAJwAAAEcBAABIAQAAYnRDb21wb3VuZFNoYXBlQ2hpbGREYXRhAGJ0Q29tcG91bmRTaGFwZURhdGEAMTVidENvbXBvdW5kU2hhcGUAALwVAAD9NwAAGBcAAENvbXBvdW5kAGJ0SW50SW5kZXhEYXRhAGJ0U2hvcnRJbnRJbmRleFRyaXBsZXREYXRhAGJ0Q2hhckluZGV4VHJpcGxldERhdGEAYnRWZWN0b3IzRmxvYXREYXRhAGJ0VmVjdG9yM0RvdWJsZURhdGEAYnRNZXNoUGFydERhdGEAYnRTdHJpZGluZ01lc2hJbnRlcmZhY2VEYXRhADIzYnRTdHJpZGluZ01lc2hJbnRlcmZhY2UAAACUFQAAuDgAAAAAAABAOQAASQEAAEoBAABLAQAATAEAAE0BAABOAQAATwEAAFABAABRAQAAUgEAAFMBAABUAQAAVQEAAFYBAABXAQAAMjZidFRyaWFuZ2xlSW5kZXhWZXJ0ZXhBcnJheQAAAAC8FQAAIDkAANQ4AAAAAAAApDkAAFgBAABZAQAASwEAAEwBAABNAQAATgEAAE8BAABQAQAAWgEAAFsBAABTAQAAVAEAAFUBAABWAQAAVwEAADE0YnRUcmlhbmdsZU1lc2gAAAAAvBUAAJA5AABAOQAAAQAAAAIAAAAAAAAAAgAAAAAAAAABAAAAAAAAACg6AABeAQAAXwEAAGABAAAzMGJ0R2prRXBhUGVuZXRyYXRpb25EZXB0aFNvbHZlcgAzMGJ0Q29udmV4UGVuZXRyYXRpb25EZXB0aFNvbHZlcgAAAJQVAAD9OQAAvBUAANw5AAAgOgAAAAAAAIw6AABhAQAAYgEAAGMBAAAxN2J0R2prUGFpckRldGVjdG9yADM2YnREaXNjcmV0ZUNvbGxpc2lvbkRldGVjdG9ySW50ZXJmYWNlAACUFQAAXDoAALwVAABIOgAAhDoAAAAAAADQOgAAXgEAAGQBAABlAQAAMzNidE1pbmtvd3NraVBlbmV0cmF0aW9uRGVwdGhTb2x2ZXIAvBUAAKw6AAAgOgAAAAAAAKQ7AABqAAAAZgEAAGcBAABoAQAAaQEAAFpOMzNidE1pbmtvd3NraVBlbmV0cmF0aW9uRGVwdGhTb2x2ZXIxMmNhbGNQZW5EZXB0aEVSMjJidFZvcm9ub2lTaW1wbGV4U29sdmVyUEsxM2J0Q29udmV4U2hhcGVTNF9SSzExYnRUcmFuc2Zvcm1TN19SOWJ0VmVjdG9yM1M5X1M5X1AxMmJ0SURlYnVnRHJhd0UyMGJ0SW50ZXJtZWRpYXRlUmVzdWx0AAC8FQAA+DoAAIAeAAAxMmJ0Q29udmV4Q2FzdAAAlBUAALA7AAAAAAAA8DsAAGoBAABrAQAAbAEAADE1YnRHamtDb252ZXhDYXN0AAAAvBUAANw7AADAOwAAAAAAACw8AABqAAAAbQEAAG4BAABvAQAAcAEAADE2YnRQb2ludENvbGxlY3RvcgAAvBUAABg8AACAHgAAAAAAAJA8AABxAQAAcgEAAHMBAAAAAAAAuDwAAHQBAAB1AQAAdgEAAHcBAAB4AQAATjIzYnRDb252ZXhDb252ZXhBbGdvcml0aG0xMENyZWF0ZUZ1bmNFALwVAABoPAAA6CIAADIzYnRDb252ZXhDb252ZXhBbGdvcml0aG0AAAC8FQAAnDwAAOQWAAAAAAAAaD0AAGoAAAB5AQAAegEAAHsBAAB8AQAAWk4yM2J0Q29udmV4Q29udmV4QWxnb3JpdGhtMTZwcm9jZXNzQ29sbGlzaW9uRVBLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJTMl9SSzE2YnREaXNwYXRjaGVySW5mb1AxNmJ0TWFuaWZvbGRSZXN1bHRFMTNidER1bW15UmVzdWx0AAAAALwVAADgPAAAgB4AAAAAAAAgPgAAagAAAH0BAAB+AQAAfwEAAIABAABaTjIzYnRDb252ZXhDb252ZXhBbGdvcml0aG0xNnByb2Nlc3NDb2xsaXNpb25FUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclMyX1JLMTZidERpc3BhdGNoZXJJbmZvUDE2YnRNYW5pZm9sZFJlc3VsdEUyMWJ0V2l0aG91dE1hcmdpblJlc3VsdAAAAAC8FQAAkD0AAIAeAAAAAAAAZD4AAGoAAACBAQAAbAAAAG0AAACCAQAAMjRidFBlcnR1cmJlZENvbnRhY3RSZXN1bHQAALwVAABIPgAAiB4AAAAAAACsPgAAgwEAAIQBAACFAQAAhgEAAIcBAABOMTJidENvbnZleENhc3QxMENhc3RSZXN1bHRFAAAAAJQVAACMPgAAAAAAAOQ+AABqAQAAigEAAIsBAAAyMmJ0U3Vic2ltcGxleENvbnZleENhc3QAAAAAvBUAAMg+AADAOwAAAAAAAKQ/AACMAQAAjQEAAI4BAACPAQAAkAEAAAAAAADMPwAAkQEAAJIBAACTAQAAYnRDb252ZXhUcmlhbmdsZUNhbGxiYWNrOjpwcm9jZXNzVHJpYW5nbGUAYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtOjpwcm9jZXNzQ29sbGlzaW9uADMzYnRDb252ZXhDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtAAAAvBUAAH4/AADkFgAAMjRidENvbnZleFRyaWFuZ2xlQ2FsbGJhY2sAALwVAACwPwAA7B0AAAAAAABoIAAAVgAAAJQBAACVAQAAIQAAACIAAAAjAAAAUQAAACwAAACKAAAAiwAAACQAAABEAAAAMQAAAFIAAABTAAAAJwAAADQAAACMAAAAKAAAAI0AAAA3AAAAjgAAAI8AAABbAAAAkAAAAJEAAACSAAAAkwAAAJQAAACVAAAAlgAAAJcAAAAAAAAAFEEAAKAAAACWAQAAlwEAAFpOMzNidENvbnZleENvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0yMWNhbGN1bGF0ZVRpbWVPZkltcGFjdEVQMTdidENvbGxpc2lvbk9iamVjdFMxX1JLMTZidERpc3BhdGNoZXJJbmZvUDE2YnRNYW5pZm9sZFJlc3VsdEUzMUxvY2FsVHJpYW5nbGVTcGhlcmVDYXN0Q2FsbGJhY2sAAAC8FQAAdEAAAOwdAABwcm9jZXNzVHJpYW5nbGUAAAAAAGxBAACYAQAAmQEAAJoBAACbAQAAnAEAADI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobQAAvBUAAExBAADkFgAAAAAAALhBAACdAQAAngEAAJ8BAACgAQAAoQEAAKIBAACjAQAAMjJidENvbXBvdW5kTGVhZkNhbGxiYWNrAAAAALwVAACcQQAAUCwAAAAAAAD8QQAApAEAAKUBAACmAQAApwEAAKgBAAAyM2J0SGFzaGVkU2ltcGxlUGFpckNhY2hlAAAAlBUAAOBBAAAAAAAASEIAAKkBAACqAQAAqwEAAKwBAACtAQAAMzZidENvbXBvdW5kQ29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0AALwVAAAgQgAAbEEAAAAAAACcQgAAnQEAAK4BAACvAQAAsAEAAKEBAACiAQAAowEAADMwYnRDb21wb3VuZENvbXBvdW5kTGVhZkNhbGxiYWNrAAAAALwVAAB4QgAAUCwAAGJ0Q29tcG91bmRDb21wb3VuZExlYWZDYWxsYmFjazo6UHJvY2VzcwAAAAAAAEMAABYAAACxAQAAsgEAALMBAAC0AQAAMTZidEVtcHR5QWxnb3JpdGhtAAC8FQAA7EIAANwWAAAAAAAATEMAALUBAAC2AQAAtwEAALgBAAC5AQAAMzJidFNwaGVyZVNwaGVyZUNvbGxpc2lvbkFsZ29yaXRobQAAvBUAAChDAADkFgAAAAAAAIhDAABhAQAAugEAALsBAAAyMlNwaGVyZVRyaWFuZ2xlRGV0ZWN0b3IAAAAAvBUAAGxDAACEOgAAAAAAANhDAAC8AQAAvQEAAL4BAAC/AQAAwAEAADM0YnRTcGhlcmVUcmlhbmdsZUNvbGxpc2lvbkFsZ29yaXRobQAAAAC8FQAAsEMAAOQW"),d(17392,"OGPtPtoPST9emHs/2g/JP2k3rDFoISIztA8UM2ghojPbD0k/2w9Jv+TLFkDkyxbAAAAAAAAAAIDbD0lA2w9JwAAAAABYRAAAYQEAAMEBAADCAQAAMTZidEJveEJveERldGVjdG9yAAC8FQAAREQAAIQ6AAAAAAAAoEQAAMMBAADEAQAAxQEAAMYBAADHAQAAMjZidEJveEJveENvbGxpc2lvbkFsZ29yaXRobQAAAAC8FQAAgEQAAOQWAAAAAAAA7EQAAMgBAADJAQAAygEAAMsBAADMAQAAMzFidENvbnZleFBsYW5lQ29sbGlzaW9uQWxnb3JpdGhtAAAAvBUAAMhEAADcFgAAAAAAAGBFAADNAQAAzgEAAM8BAADQAQAA0QEAANIBAAAzMWJ0RGVmYXVsdENvbGxpc2lvbkNvbmZpZ3VyYXRpb24AMjRidENvbGxpc2lvbkNvbmZpZ3VyYXRpb24AAAAAlBUAADpFAAC8FQAAGEUAAFhFAAAAAAAAtEUAAKMAAADTAQAA1AEAAE4zM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAAAC8FQAAgEUAAOgiAAAAAAAAEEYAAKMAAADVAQAA1gEAAE4zM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTE3U3dhcHBlZENyZWF0ZUZ1bmNFAAAAALwVAADURQAA6CIAAAAAAABgRgAAowAAANcBAADYAQAATjI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAAAAAvBUAADBGAADoIgAAAAAAALhGAACjAAAA2QEAANoBAABOMzZidENvbXBvdW5kQ29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAAAAALwVAACARgAA6CIAAAAAAAAMRwAAowAAANsBAADcAQAATjI4YnRDb21wb3VuZENvbGxpc2lvbkFsZ29yaXRobTE3U3dhcHBlZENyZWF0ZUZ1bmNFALwVAADYRgAA6CIAAAAAAABQRwAAowAAAN0BAADeAQAATjE2YnRFbXB0eUFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAAAAAvBUAACxHAADoIgAAAAAAAKRHAACjAAAA3wEAAOABAABOMzJidFNwaGVyZVNwaGVyZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAAAAAvBUAAHBHAADoIgAAAAAAAPhHAACjAAAA4QEAAOIBAABOMzRidFNwaGVyZVRyaWFuZ2xlQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQAAvBUAAMRHAADoIgAAAAAAAERIAACjAAAA4wEAAOQBAABOMjZidEJveEJveENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAALwVAAAYSAAA6CIAAAAAAACUSAAAowAAAOUBAADmAQAATjMxYnRDb252ZXhQbGFuZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAvBUAAGRIAADoIgAAAAAAAGxJAADnAQAA6AEAAOkBAADqAQAA6wEAAOwBAADtAQAA7gEAAO8BAADwAQAA8QEAAPIBAADzAQAA9AEAAPUBAAD2AQAA9wEAAGJ0SGFzaGVkT3ZlcmxhcHBpbmdQYWlyQ2FjaGU6OnByb2Nlc3NBbGxPdmVybGFwcGluZ1BhaXJzADI4YnRIYXNoZWRPdmVybGFwcGluZ1BhaXJDYWNoZQAyMmJ0T3ZlcmxhcHBpbmdQYWlyQ2FjaGUAAAAAvBUAAERJAADUYgAAvBUAACVJAABgSQAAAAAAAPxJAACAAAAA+AEAAPkBAABaTjI4YnRIYXNoZWRPdmVybGFwcGluZ1BhaXJDYWNoZTE5Y2xlYW5Qcm94eUZyb21QYWlyc0VQMTdidEJyb2FkcGhhc2VQcm94eVAxMmJ0RGlzcGF0Y2hlckUxN0NsZWFuUGFpckNhbGxiYWNrAAAAvBUAAIxJAABcHwAAAAAAAKBKAACAAAAA+gEAAPsBAABaTjI4YnRIYXNoZWRPdmVybGFwcGluZ1BhaXJDYWNoZTM3cmVtb3ZlT3ZlcmxhcHBpbmdQYWlyc0NvbnRhaW5pbmdQcm94eUVQMTdidEJyb2FkcGhhc2VQcm94eVAxMmJ0RGlzcGF0Y2hlckUxOFJlbW92ZVBhaXJDYWxsYmFjawAAAAC8FQAAHEoAAFwfAAAAAAAAIEsAAPwBAAD9AQAA/gEAAP8BAAAAAgAAAQIAAAICAAADAgAABAIAAAUCAAAGAgAABwIAAAgCAAAJAgAAMTZidERidnRCcm9hZHBoYXNlADIxYnRCcm9hZHBoYXNlSW50ZXJmYWNlAACUFQAA/0oAALwVAADsSgAAGEsAAAAAAABoSwAAnQEAAAoCAAALAgAADAIAAKEBAACiAQAAowEAADE4YnREYnZ0VHJlZUNvbGxpZGVyAAAAALwVAABQSwAAUCwAAAAAAACwSwAAnQEAAA0CAACfAQAADgIAAKEBAACiAQAAowEAADE5QnJvYWRwaGFzZVJheVRlc3RlcgAAALwVAACYSwAAUCwAAAAAAAD4SwAAnQEAAA8CAACfAQAAEAIAAKEBAACiAQAAowEAADIwQnJvYWRwaGFzZUFhYmJUZXN0ZXIAALwVAADgSwAAUCwAAAAAAAC+8/h57GH2PxkwllvG/t6/PYivSu1x9T+k/NQyaAvbv7AQ8PA5lfQ/e7cfCotB17+FA7iwlcnzP3vPbRrpndO/pWSIDBkN8z8xtvLzmx3Qv6COC3siXvI/8Ho7Gx18yb8/NBpKSrvxP588r5Pj+cK/uuWK8Fgj8T9cjXi/y2C5v6cAmUE/lfA/zl9Htp1vqr8AAAAAAADwPw=="),d(19624,"rEea/Yxg7j899SSfyjizP6BqAh+zpOw/upE4VKl2xD/m/GpXNiDrP9LkxEoLhM4/LaqhY9HC6T8cZcbwRQbUP+1BeAPmhug/+J8bLJyO2D9iSFP13GfnP8x7sU6k4Nw/C25JyRZ20j96xnWgaRnXv926p2wKx94/yPa+SEcV578ruCplRxX3PwAAAAAAAPA/dIUV07DZ7z8PiflsWLXvP1FbEtABk+8/e1F9PLhy7z+quWgxh1TvPzhidW56OO8/4d4f9Z0e7z8VtzEK/gbvP8upOjen8e4/IjQSTKbe7j8tiWFgCM7uPycqNtXav+4/gk+dViu07j8pVEjdB6vuP4VVOrB+pO4/zTt/Zp6g7j90X+zodZ/uP4cB63MUoe4/E85MmYml7j/boCpC5azuP+XFzbA3t+4/kPCjgpHE7j9dJT6yA9XuP63TWpmf6O4/R1778nb/7j+cUoXdmxnvP2mQ79wgN+8/h6T73BhY7z9fm3szl3zvP9qQpKKvpO8/QEVuW3bQ7z8AAAAAAADoQpQjkUv4aqw/88T6UM6/zj/WUgz/Qi7mPwAAAAAAADhD/oIrZUcVR0CUI5FL+Gq8PvPE+lDOvy4/1lIM/0Iulj8AAAAAwE4AABECAAASAgAAqAAAAKkAAAATAgAAFAIAABUCAABidFJpZ2lkQm9keUZsb2F0RGF0YQAxMWJ0UmlnaWRCb2R5AAC8FQAAsU4AAFAjAAAAAAAAmE8AABkCAAAaAgAAGwIAABwCAAAdAgAAHgIAAB8CAAAgAgAAIQIAACICAAAjAgAAJAIAACUCAABzb2x2ZUdyb3VwQ2FjaGVGcmllbmRseVNldHVwAHNvbHZlR3JvdXBDYWNoZUZyaWVuZGx5SXRlcmF0aW9ucwBzb2x2ZUdyb3VwADM1YnRTZXF1ZW50aWFsSW1wdWxzZUNvbnN0cmFpbnRTb2x2ZXIAMThidENvbnN0cmFpbnRTb2x2ZXIAAAAAlBUAAHhPAAC8FQAAUk8AAJBPAAAAAAAA2E8AAGoBAAAmAgAAJwIAADI3YnRDb250aW51b3VzQ29udmV4Q29sbGlzaW9uAAAAvBUAALhPAADAOwAAAAAAADBQAACgAAAAKAIAACkCAAAYAAAAAAAAAFxQAACgAAAAKgIAACsCAAAYAAAAMjVidFRyaWFuZ2xlUmF5Y2FzdENhbGxiYWNrALwVAAAUUAAA7B0AADI4YnRUcmlhbmdsZUNvbnZleGNhc3RDYWxsYmFjawAAvBUAADxQAADsHQAAAAAAAPxRAAAsAgAALQIAAC4CAAAvAgAAMAIAADECAAAyAgAAMwIAADQCAAA1AgAANgIAADcCAAA4AgAAT3ZlcmZsb3cgaW4gQUFCQiwgb2JqZWN0IHJlbW92ZWQgZnJvbSBzaW11bGF0aW9uAElmIHlvdSBjYW4gcmVwcm9kdWNlIHRoaXMsIHBsZWFzZSBlbWFpbCBidWdzQGNvbnRpbnVvdXNwaHlzaWNzLmNvbQoAUGxlYXNlIGluY2x1ZGUgYWJvdmUgaW5mb3JtYXRpb24sIHlvdXIgUGxhdGZvcm0sIHZlcnNpb24gb2YgT1MuCgBUaGFua3MuCgB1cGRhdGVBYWJicwBjYWxjdWxhdGVPdmVybGFwcGluZ1BhaXJzAHBlcmZvcm1EaXNjcmV0ZUNvbGxpc2lvbkRldGVjdGlvbgBkaXNwYXRjaEFsbENvbGxpc2lvblBhaXJzAGNvbnZleFN3ZWVwQ29tcG91bmQAY29udmV4U3dlZXBUZXN0ADE2YnRDb2xsaXNpb25Xb3JsZACUFQAA6VEAAAAAAACwUgAAoAAAADkCAAApAgAAOgIAAFpOMTZidENvbGxpc2lvbldvcmxkMjFyYXlUZXN0U2luZ2xlSW50ZXJuYWxFUksxMWJ0VHJhbnNmb3JtUzJfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18xN1JheVJlc3VsdENhbGxiYWNrRUUyOUJyaWRnZVRyaWFuZ2xlUmF5Y2FzdENhbGxiYWNrAAC8FQAAHFIAADBQAAAAAAAAbFMAAKAAAAA7AgAAKQIAADwCAABaTjE2YnRDb2xsaXNpb25Xb3JsZDIxcmF5VGVzdFNpbmdsZUludGVybmFsRVJLMTFidFRyYW5zZm9ybVMyX1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMTdSYXlSZXN1bHRDYWxsYmFja0VFMjlCcmlkZ2VUcmlhbmdsZVJheWNhc3RDYWxsYmFja18wAAAAALwVAADUUgAAMFAAAAAAAAAcVAAAnQEAAD0CAACfAQAAPgIAAKEBAACiAQAAowEAAFpOMTZidENvbGxpc2lvbldvcmxkMjFyYXlUZXN0U2luZ2xlSW50ZXJuYWxFUksxMWJ0VHJhbnNmb3JtUzJfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18xN1JheVJlc3VsdENhbGxiYWNrRUU5UmF5VGVzdGVyAAAAvBUAAJxTAABQLAAAAAAAAMhUAAA/AgAAQAIAAEECAABCAgAAWk4xNmJ0Q29sbGlzaW9uV29ybGQyMXJheVRlc3RTaW5nbGVJbnRlcm5hbEVSSzExYnRUcmFuc2Zvcm1TMl9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzE3UmF5UmVzdWx0Q2FsbGJhY2tFRTE1TG9jYWxJbmZvQWRkZXIyAAAAALwVAABAVAAAPGEAAAAAAACcVQAAoAAAAEMCAAArAgAARAIAAFpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFMzJCcmlkZ2VUcmlhbmdsZUNvbnZleGNhc3RDYWxsYmFjawAAvBUAAOxUAABcUAAAAAAAAHRWAACgAAAARQIAACsCAABGAgAAWk4xNmJ0Q29sbGlzaW9uV29ybGQyNW9iamVjdFF1ZXJ5U2luZ2xlSW50ZXJuYWxFUEsxM2J0Q29udmV4U2hhcGVSSzExYnRUcmFuc2Zvcm1TNV9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzIwQ29udmV4UmVzdWx0Q2FsbGJhY2tFZkUzMkJyaWRnZVRyaWFuZ2xlQ29udmV4Y2FzdENhbGxiYWNrXzAAAAAAvBUAAMBVAABcUAAAAAAAAExXAACdAQAARwIAAJ8BAABIAgAAoQEAAKIBAACjAQAAWk4xNmJ0Q29sbGlzaW9uV29ybGQyNW9iamVjdFF1ZXJ5U2luZ2xlSW50ZXJuYWxFUEsxM2J0Q29udmV4U2hhcGVSSzExYnRUcmFuc2Zvcm1TNV9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzIwQ29udmV4UmVzdWx0Q2FsbGJhY2tFZkUyMmJ0Q29tcG91bmRMZWFmQ2FsbGJhY2sAAAAAvBUAAKRWAABQLAAAAAAAAFBYAABJAgAASgIAAEsCAABMAgAAWlpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFTjIyYnRDb21wb3VuZExlYWZDYWxsYmFjazEyUHJvY2Vzc0NoaWxkRWlTNV9QSzE2YnRDb2xsaXNpb25TaGFwZUUxNExvY2FsSW5mb0FkZGVyAAC8FQAAcFcAABxiAAAAAAAA0FgAAE0CAABOAgAATwIAADE5YnRTaW5nbGVSYXlDYWxsYmFjawAyM2J0QnJvYWRwaGFzZVJheUNhbGxiYWNrADI0YnRCcm9hZHBoYXNlQWFiYkNhbGxiYWNrAACUFQAAoFgAALwVAACGWAAAvFgAALwVAABwWAAAxFgAAAAAAAAIWQAATQIAAFACAABRAgAAMjFidFNpbmdsZVN3ZWVwQ2FsbGJhY2sAvBUAAPBYAADEWAAAAAAAAFRZAABSAgAAUwIAAFQCAABVAgAA/P///1RZAABWAgAAVwIAAFgCAAAxN0RlYnVnRHJhd2NhbGxiYWNrABgWAABAWQAAAAAAAAIAAADsHQAAAgAAABgeAAACBAAAAAAAANRZAABZAgAAWgIAAFsCAABcAgAAaXNsYW5kVW5pb25GaW5kQW5kUXVpY2tTb3J0AHByb2Nlc3NJc2xhbmRzADI1YnRTaW11bGF0aW9uSXNsYW5kTWFuYWdlcgAAlBUAALdZAAAAAAAAWFoAAF0CAABeAgAAXwIAAGACAAAYAAAAGAAAAGECAAAYAAAAGAAAAGICAABjAgAAYnRUeXBlZENvbnN0cmFpbnRGbG9hdERhdGEAMTdidFR5cGVkQ29uc3RyYWludAAxM2J0VHlwZWRPYmplY3QAAJQVAAA/WgAAGBYAACtaAAAAAAAAAQAAAFBaAAACBAAAAAAAAMRcAABkAgAAZQIAAC4CAAAvAgAAMAIAADECAABmAgAAMwIAADQCAABnAgAAaAIAADcCAABpAgAAagIAAGsCAABsAgAAbQIAAG4CAABvAgAAcAIAAHECAAByAgAAcwIAAHQCAAB1AgAAdgIAAHcCAAB4AgAAeQIAAHoCAAB7AgAAfAIAAH0CAAB+AgAAfwIAAIACAACBAgAAggIAAIMCAACEAgAAhQIAAIYCAACHAgAAiAIAAIkCAACKAgAAiwIAAGRlYnVnRHJhd1dvcmxkAGludGVybmFsU2luZ2xlU3RlcFNpbXVsYXRpb24AdXBkYXRlQWN0aW9ucwB1cGRhdGVBY3RpdmF0aW9uU3RhdGUAc29sdmVDb25zdHJhaW50cwBjYWxjdWxhdGVTaW11bGF0aW9uSXNsYW5kcwBwcmVkaWN0aXZlIGNvbnZleFN3ZWVwVGVzdAByZWxlYXNlIHByZWRpY3RpdmUgY29udGFjdCBtYW5pZm9sZHMAY3JlYXRlUHJlZGljdGl2ZUNvbnRhY3RzAENDRCBtb3Rpb24gY2xhbXBpbmcAaW50ZWdyYXRlVHJhbnNmb3JtcwBhcHBseSBzcGVjdWxhdGl2ZSBjb250YWN0IHJlc3RpdHV0aW9uAHByZWRpY3RVbmNvbnN0cmFpbnRNb3Rpb24AYnREeW5hbWljc1dvcmxkRmxvYXREYXRhADIzYnREaXNjcmV0ZUR5bmFtaWNzV29ybGQAMTVidER5bmFtaWNzV29ybGQAAAC8FQAApFwAAPxRAAC8FQAAilwAALhcAAAAAAAAOF0AAIwCAACNAgAAjgIAADI3SW5wbGFjZVNvbHZlcklzbGFuZENhbGxiYWNrAE4yNWJ0U2ltdWxhdGlvbklzbGFuZE1hbmFnZXIxNElzbGFuZENhbGxiYWNrRQCUFQAAAl0AALwVAADkXAAAMF0AAAAAAACEXQAASQIAAI8CAACQAgAAkQIAADM0YnRDbG9zZXN0Tm90TWVDb252ZXhSZXN1bHRDYWxsYmFjawAAAAC8FQAAXF0AACRiAAAAAAAA+F0AAJICAACTAgAAqAAAAKkAAACqAAAAqwAAAKwAAACUAgAAlQIAAAAAAAAgXgAAlgIAAJcCAACoAAAAqQAAAKoAAACrAAAArAAAAJgCAACZAgAAMTNidEdob3N0T2JqZWN0ALwVAADoXQAAUCMAADI0YnRQYWlyQ2FjaGluZ0dob3N0T2JqZWN0AAC8FQAABF4AAPhdAAAAAAAA7F4AAJoCAACbAgAAnAIAAJ0CAACeAgAAnwIAAKACAAChAgAAogIAAKMCAACkAgAApQIAAKYCAACnAgAAqAIAAKkCAACqAgAAqwIAAKwCAAAzMGJ0S2luZW1hdGljQ2hhcmFjdGVyQ29udHJvbGxlcgAzMGJ0Q2hhcmFjdGVyQ29udHJvbGxlckludGVyZmFjZQAxN2J0QWN0aW9uSW50ZXJmYWNlAAAAlBUAAMJeAAC8FQAAoV4AANheAAC8FQAAgF4AAOBeAAAAAAAAQF8AAEkCAACtAgAArgIAAK8CAAA0M2J0S2luZW1hdGljQ2xvc2VzdE5vdE1lQ29udmV4UmVzdWx0Q2FsbGJhY2sAAAC8FQAAEF8AACRiAAAAAAAAsF8AAF0CAACwAgAAsQIAAGACAACyAgAAswIAAGECAAC0AgAAtQIAALYCAAC3AgAAAAAAAAEAAAACAAAAMzBidEdlbmVyaWM2RG9mU3ByaW5nMkNvbnN0cmFpbnQAAAAAvBUAAIxfAABYWgAAAgAAAAEAAAACAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAAAAAAB"),d(24564,"AQAAAAEAAAACAAAAAgAAAAAAAABMYAAAuAIAALkCAACxAgAAYAIAALICAACzAgAAYQIAALQCAAC1AgAAtgIAALcCAAAxN2J0Rml4ZWRDb25zdHJhaW50ALwVAAA4YAAAsF8AAGJ0R2VuZXJpYzZEb2ZTcHJpbmcyQ29uc3RyYWludERhdGEAAAAAAADAYAAAugIAALsCAAC8AgAAvQIAADE1TGF5YU1vdGlvblN0YXRlADEzYnRNb3Rpb25TdGF0ZQAAAJQVAACmYAAAvBUAAJRgAAC4YAAAAAAAAERhAAA/AgAAvgIAAL8CAADAAgAATjE2YnRDb2xsaXNpb25Xb3JsZDI0Q2xvc2VzdFJheVJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMTdSYXlSZXN1bHRDYWxsYmFja0UAAJQVAAATYQAAvBUAAORgAAA8YQAAAAAAAJhhAADBAgAAwgIAAL8CAADDAgAATjE2YnRDb2xsaXNpb25Xb3JsZDI0QWxsSGl0c1JheVJlc3VsdENhbGxiYWNrRQAAvBUAAGhhAAA8YQAAAAAAACRiAABJAgAAxAIAAK4CAADFAgAATjE2YnRDb2xsaXNpb25Xb3JsZDI3Q2xvc2VzdENvbnZleFJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMjBDb252ZXhSZXN1bHRDYWxsYmFja0UAAAAAlBUAAO5hAAC8FQAAvGEAABxiAAAAAAAAeGIAAMYCAADHAgAArgIAAMgCAABOMTZidENvbGxpc2lvbldvcmxkMjNBbGxDb252ZXhSZXN1bHRDYWxsYmFja0UAAAC8FQAASGIAABxiAAAAAAAA3GIAAMkCAADKAgAAywIAAMwCAADNAgAAMTlidEdob3N0UGFpckNhbGxiYWNrADI1YnRPdmVybGFwcGluZ1BhaXJDYWxsYmFjawAAAJQVAAC2YgAAvBUAAKBiAADUYg==");var C=function(A,e,r){var i=e.memory,f=new A.Int8Array(r),t=new A.Int16Array(r),a=new A.Int32Array(r),o=new A.Uint8Array(r),v=new A.Uint16Array(r),d=new A.Uint32Array(r),C=new A.Float32Array(r),g=new A.Float64Array(r),B=A.Math.imul,_=A.Math.fround,m=A.Math.abs,R=A.Math.clz32,Q=A.Math.min,h=A.Math.max,G=A.Math.floor,y=(A.Math.ceil,A.Math.sqrt),p=e.abort,F=(A.NaN,A.Infinity),W=e.fd_close,w=e.fd_write,D=e.getWorldTransform,E=e.setWorldTransform,Z=e.fd_seek,Y=90864,V=0;function N(A,e,r){var i,f=0;return i=Y-16|0,Y=i,f=-1,(0|r)<=-1?a[256]=28:(A=0|w(0|A,0|e,0|r,i+12|0),A?a[256]=A:f=a[i+12>>2]),Y=i+16|0,f}function I(A){var e=0;return e=a[A+60>>2],a[A+60>>2]=e+-1|e,e=a[A>>2],8&e?(a[A>>2]=32|e,-1):(a[A+4>>2]=0,a[A+8>>2]=0,e=a[A+40>>2],a[A+24>>2]=e,a[A+20>>2]=e,a[A+16>>2]=e+a[A+44>>2],0)}function J(A,e,r){var i=0,t=0,n=0,c=0,b=0,l=0,u=0;A:if(!r|!(3&e))i=r;else for(;;){if(f[0|A]=o[0|e],i=r+-1|0,A=A+1|0,e=e+1|0,1==(0|r))break A;if(r=i,!(3&e))break}r=3&A;A:{if(!r){if(i>>>0<16)r=i;else for(r=i+-16|0;a[A>>2]=a[e>>2],a[A+4>>2]=a[e+4>>2],a[A+8>>2]=a[e+8>>2],a[A+12>>2]=a[e+12>>2],A=A+16|0,e=e+16|0,i=i+-16|0,i>>>0>15;);if(8&r&&(i=a[e+4>>2],a[A>>2]=a[e>>2],a[A+4>>2]=i,e=e+8|0,A=A+8|0),4&r&&(a[A>>2]=a[e>>2],e=e+4|0,A=A+4|0),2&r&&(f[0|A]=o[0|e],f[A+1|0]=o[e+1|0],e=e+2|0,A=A+2|0),!(1&r))break A;return void(f[0|A]=o[0|e])}e:if(!(i>>>0<32||(r=r+-1|0,r>>>0>2))){switch(r-1|0){default:for(f[A+1|0]=o[e+1|0],t=a[e>>2],f[0|A]=t,f[A+2|0]=o[e+2|0],b=i+-3|0,l=A+3|0,u=i+-20&-16,r=0;A=r+l|0,c=e+r|0,n=a[c+4>>2],a[A>>2]=n<<8|t>>>24,t=a[c+8>>2],a[A+4>>2]=t<<8|n>>>24,n=a[c+12>>2],a[A+8>>2]=n<<8|t>>>24,t=a[c+16>>2],a[A+12>>2]=t<<8|n>>>24,r=r+16|0,b=b+-16|0,b>>>0>16;);A=r+l|0,e=3+(e+r|0)|0,i=(i-u|0)-19|0;break e;case 0:for(t=a[e>>2],f[0|A]=t,f[A+1|0]=o[e+1|0],b=i+-2|0,l=A+2|0,u=i+-20&-16,r=0;A=r+l|0,c=e+r|0,n=a[c+4>>2],a[A>>2]=n<<16|t>>>16,t=a[c+8>>2],a[A+4>>2]=t<<16|n>>>16,n=a[c+12>>2],a[A+8>>2]=n<<16|t>>>16,t=a[c+16>>2],a[A+12>>2]=t<<16|n>>>16,r=r+16|0,b=b+-16|0,b>>>0>17;);A=r+l|0,e=2+(e+r|0)|0,i=(i-u|0)-18|0;break e;case 1:}for(t=a[e>>2],f[0|A]=t,b=i+-1|0,l=A+1|0,u=i+-20&-16,r=0;A=r+l|0,c=e+r|0,n=a[c+4>>2],a[A>>2]=n<<24|t>>>8,t=a[c+8>>2],a[A+4>>2]=t<<24|n>>>8,n=a[c+12>>2],a[A+8>>2]=n<<24|t>>>8,t=a[c+16>>2],a[A+12>>2]=t<<24|n>>>8,r=r+16|0,b=b+-16|0,b>>>0>18;);A=r+l|0,e=1+(e+r|0)|0,i=(i-u|0)-17|0}16&i&&(r=o[0|e]|o[e+1|0]<<8,f[0|A]=r,f[A+1|0]=r>>>8,f[A+2|0]=o[e+2|0],f[A+3|0]=o[e+3|0],f[A+4|0]=o[e+4|0],f[A+5|0]=o[e+5|0],f[A+6|0]=o[e+6|0],f[A+7|0]=o[e+7|0],f[A+8|0]=o[e+8|0],f[A+9|0]=o[e+9|0],f[A+10|0]=o[e+10|0],f[A+11|0]=o[e+11|0],f[A+12|0]=o[e+12|0],f[A+13|0]=o[e+13|0],f[A+14|0]=o[e+14|0],f[A+15|0]=o[e+15|0],e=e+16|0,A=A+16|0),8&i&&(f[0|A]=o[0|e],f[A+1|0]=o[e+1|0],f[A+2|0]=o[e+2|0],f[A+3|0]=o[e+3|0],f[A+4|0]=o[e+4|0],f[A+5|0]=o[e+5|0],f[A+6|0]=o[e+6|0],f[A+7|0]=o[e+7|0],e=e+8|0,A=A+8|0),4&i&&(f[0|A]=o[0|e],f[A+1|0]=o[e+1|0],f[A+2|0]=o[e+2|0],f[A+3|0]=o[e+3|0],e=e+4|0,A=A+4|0),2&i&&(f[0|A]=o[0|e],f[A+1|0]=o[e+1|0],e=e+2|0,A=A+2|0),1&i&&(f[0|A]=o[0|e])}}function x(A,e,r){var i=0,f=0,t=0,n=0,c=0;i=a[r+16>>2];A:{if(!i){if(I(r))break A;i=a[r+16>>2]}if(t=a[r+20>>2],i-t>>>0<e>>>0)return void Qt[a[r+32>>2]](r,A,e);e:if(!(a[r+64>>2]<0)){for(i=A;;){if((0|e)==(0|f))break e;if(f=f+1|0,c=e+i|0,n=i+-1|0,i=n,10==o[c+-1|0])break}if(i=A,A=1+(e-f|0)|0,Qt[a[r+32>>2]](r,i,A)>>>0<A>>>0)break A;A=1+(e+n|0)|0,t=a[r+20>>2],e=f+-1|0}J(t,A,e),a[r+20>>2]=a[r+20>>2]+e}}function U(A){var e=0,r=0,i=0;a[265]||(a[265]=1036);A:{e:{for(;;){if((0|A)!=o[e+3024|0]){if(r=77,e=e+1|0,77!=(0|e))continue;break e}break}if(r=e,!e){A=3104;break A}}for(e=3104;i=o[0|e],A=e+1|0,e=A,i||(e=A,r=r+-1|0,r););}return A}function M(A,e){var r=0,i=0;i=0!=(0|e);A:{e:{r:if(e)if(3&A)for(;;){if(!o[0|A]){r=e;break e}if(i=1!=(0|e),r=e+-1|0,A=A+1|0,1==(0|e))break r;if(e=r,!(3&A))break}else r=e;else r=e;if(!i)break A}e:if(!(!o[0|A]|r>>>0<4))for(;;){if(e=a[A>>2],(-1^e)&e+-16843009&-2139062144)break e;if(A=A+4|0,r=r+-4|0,!(r>>>0>3))break}if(r)for(;;){if(!o[0|A])return A;if(A=A+1|0,r=r+-1|0,!r)break}}return 0}function S(A,e){return A?function(A,e){if(A){if(e>>>0<=127)return f[0|A]=e,1;A:{if(!a[259]){if(57216!=(-128&e))break A;return f[0|A]=e,1}if(e>>>0<=2047)return f[A+1|0]=63&e|128,f[0|A]=e>>>6|192,2;if(!(57344!=(-8192&e)&&e>>>0>=55296))return f[A+2|0]=63&e|128,f[0|A]=e>>>12|224,f[A+1|0]=e>>>6&63|128,3;if(e+-65536>>>0<=1048575)return f[A+3|0]=63&e|128,f[0|A]=e>>>18|240,f[A+2|0]=e>>>6&63|128,f[A+1|0]=e>>>12&63|128,4}a[256]=25,A=-1}else A=1;return A}(A,e):0}function X(A,e,r){var i=0,t=0,n=0,o=0;if(r&&(f[0|A]=e,i=A+r|0,f[i+-1|0]=e,!(r>>>0<3||(f[A+2|0]=e,f[A+1|0]=e,f[i+-3|0]=e,f[i+-2|0]=e,r>>>0<7||(f[A+3|0]=e,f[i+-4|0]=e,r>>>0<9||(i=0-A&3,t=i+A|0,e=B(255&e,16843009),a[t>>2]=e,r=r-i&-4,i=r+t|0,a[i+-4>>2]=e,r>>>0<9||(a[t+8>>2]=e,a[t+4>>2]=e,a[i+-8>>2]=e,a[i+-12>>2]=e,r>>>0<25||(a[t+24>>2]=e,a[t+20>>2]=e,a[t+16>>2]=e,a[t+12>>2]=e,a[i+-16>>2]=e,a[i+-20>>2]=e,a[i+-24>>2]=e,a[i+-28>>2]=e,o=4&t|24,r=r-o|0,r>>>0<32))))))))for(i=e,n=e,e=t+o|0;a[e>>2]=n,a[e+4>>2]=i,t=e+24|0,a[t>>2]=n,a[t+4>>2]=i,t=e+16|0,a[t>>2]=n,a[t+4>>2]=i,t=e+8|0,a[t>>2]=n,a[t+4>>2]=i,e=e+32|0,r=r+-32|0,r>>>0>31;);return A}function T(A,e){var r,i,f=0;if(u(+A),f=0|c(1),r=0|c(0),i=f,f=f>>>20&2047,2047!=(0|f)){if(!f)return 0==A?(a[e>>2]=0,A):(A=T(0x10000000000000000*A,e),a[e>>2]=a[e>>2]+-64,A);a[e>>2]=f+-1022,b(0,0|r),b(1,-2146435073&i|1071644672),A=+l()}return A}function j(A,e,r){var i,f=0,t=0;if(i=Y-208|0,Y=i,a[i+204>>2]=r,f=i+192|0,a[f>>2]=0,a[f+4>>2]=0,f=i+184|0,a[f>>2]=0,a[f+4>>2]=0,f=i+176|0,a[f>>2]=0,a[f+4>>2]=0,a[i+168>>2]=0,a[i+172>>2]=0,a[i+160>>2]=0,a[i+164>>2]=0,a[i+200>>2]=r,(0|O(0,e,i+200|0,i+80|0,i+160|0))>=0){t=a[A>>2],a[A+60>>2]<=0&&(a[A>>2]=-33&t);A:{e:{if(a[A+44>>2]){if(f=0,a[A+16>>2])break e}else a[A+44>>2]=80,a[A+24>>2]=0,a[A+16>>2]=0,a[A+20>>2]=0,f=a[A+40>>2],a[A+40>>2]=i;if(r=-1,I(A))break A}r=O(A,e,i+200|0,i+80|0,i+160|0)}f&&(Qt[a[A+32>>2]](A,0,0),a[A+44>>2]=0,a[A+40>>2]=f,a[A+24>>2]=0,a[A+16>>2]=0,a[A+20>>2]=0,r=0),a[A>>2]=a[A>>2]|32&t}Y=i+208|0}function O(A,e,r,i,n){var b,l,s,k,v,d,C,_,R,Q=0,h=0,G=0,y=0,p=0,W=0,w=0,D=0,E=0,Z=0,N=0,I=0,J=0,j=0,O=0,z=0,P=0,K=0,L=0,q=0,$=0,AA=0,eA=0,rA=0,iA=0,fA=0,tA=0,nA=0,aA=0,oA=0;b=Y-880|0,Y=b,d=b+336|8,C=b+55|0,_=-338-b|0,k=b+336|9,R=b+656|0,s=b+336|0,v=0-(b+336|0)|0,l=b+56|0;A:{e:{r:for(;;){i:if(y=e,!((0|Q)>(2147483647-K|0))){K=Q+K|0;f:{t:{n:{if(Q=o[0|y],Q)for(;;){a:{h=255&Q;o:if(h){if(37!=(0|h))break a;for(h=e,Q=h;;){if(37!=o[Q+1|0]){e=Q;break o}if(h=h+1|0,G=o[Q+2|0],e=Q+2|0,Q=e,37!=(0|G))break}}else h=e;if(Q=h-y|0,P=2147483647-K|0,(0|Q)>(0|P))break i;if(!A|32&o[0|A]||x(y,Q,A),Q)continue r;Q=e+1|0,W=f[e+1|0],h=W+-48|0,Z=-1,h>>>0>9||(G=36==o[e+2|0],Q=G?e+3|0:Q,AA=G?1:AA,W=f[(G?3:1)+e|0],Z=G?h:-1),p=0,e=W+-32|0;o:if(!(e>>>0>31)&&(e=1<<e,75913&e))for(G=Q+1|0;;){if(p|=e,Q=G,W=f[0|Q],e=W+-32|0,e>>>0>=32)break o;if(G=Q+1|0,e=1<<e,!(75913&e))break}o:if(42!=(0|W))if(N=0,G=W+-48|0,G>>>0>9)w=Q;else{for(e=0;N=-1,h=f[Q+1|0],w=Q+1|0,Q=w,e>>>0<=214748364&&(e=B(e,10),N=(0|G)>(2147483647-e|0)?-1:e+G|0),e=N,G=h+-48|0,G>>>0<10;);if((0|N)<0)break i}else{if(e=f[Q+1|0]+-48|0,36!=o[Q+2|0]|e>>>0>9){if(AA)break n;if(w=Q+1|0,!A){AA=0,N=0;break o}e=a[r>>2],a[r>>2]=e+4,AA=0,N=a[e>>2]}else a[(e<<2)+n>>2]=10,w=Q+3|0,AA=1,N=a[((f[Q+1|0]<<3)+i|0)-384>>2];if((0|N)>-1)break o;N=0-N|0,p|=8192}if(Q=0,W=-1,46==o[0|w])if(h=f[w+1|0],42!=(0|h))if(e=w+1|0,E=h+-48|0,E>>>0>9)D=1,W=0;else for(w=0,G=e;W=-1,w>>>0<=214748364&&(e=B(w,10),W=(0|E)>(2147483647-e|0)?-1:e+E|0),D=1,h=f[G+1|0],e=G+1|0,G=e,w=W,E=h+-48|0,E>>>0<10;);else{if(e=f[w+2|0]+-48|0,36!=o[w+3|0]|e>>>0>9){if(AA)break n;e=w+2|0,W=0,A&&(h=a[r>>2],a[r>>2]=h+4,W=a[h>>2])}else a[(e<<2)+n>>2]=10,e=w+4|0,W=a[((f[w+2|0]<<3)+i|0)-384>>2];D=(-1^W)>>>31}else e=w,D=0;for(;;){if(G=Q,h=f[0|e]+-65|0,h>>>0>57)break n;if(e=e+1|0,Q=o[4704+(h+B(G,58)|0)|0],!(Q+-1>>>0<8))break}if(!Q)break n;o:{c:{b:{if(27==(0|Q)){if((0|Z)<=-1)break b;break n}if((0|Z)<0)break c;a[(Z<<2)+n>>2]=Q,Q=(Z<<3)+i|0,h=a[Q+4>>2],a[b+56>>2]=a[Q>>2],a[b+60>>2]=h}if(Q=0,!A)continue r;break o}if(!A){K=0;break A}H(b+56|0,Q,r)}h=-65537&p,Z=8192&p?h:p;o:{c:{b:if(Q=f[e+-1|0],q=G&&3==(15&Q)?-33&Q:Q,Q=q+-65|0,!(Q>>>0>55)){l:{u:{s:{k:{v:{d:{C:{g:{B:{_:{m:{R:switch(Q-1|0){case 51:E=0,p=a[b+56>>2],Q=a[b+60>>2],O=4678;break m;case 44:if(Q=0,h=255&G,h>>>0>7)continue r;switch(h-1|0){default:case 0:a[a[b+56>>2]>>2]=K;continue r;case 1:h=a[b+56>>2],a[h>>2]=K,a[h+4>>2]=K>>31;continue r;case 2:t[a[b+56>>2]>>1]=K;continue r;case 3:f[a[b+56>>2]]=K;continue r;case 5:a[a[b+56>>2]>>2]=K;continue r;case 4:continue r;case 6:}h=a[b+56>>2],a[h>>2]=K,a[h+4>>2]=K>>31;continue r;case 46:W=W>>>0>8?W:8,Z|=8,q=120;case 22:case 54:if(E=0,O=4678,h=a[b+60>>2],Q=h,p=a[b+56>>2],!(Q|p)){y=l;break _}for(h=32&q,y=l;y=y+-1|0,f[0|y]=h|o[5312+(15&p)|0],p=(15&Q)<<28|p>>>4,Q>>>=4,p|Q;);if(!(8&Z)|!(a[b+56>>2]|a[b+60>>2]))break _;O=4678+(q>>4)|0,E=2;break _;case 45:if(y=l,h=a[b+60>>2],Q=h,p=a[b+56>>2],Q|p)for(;y=y+-1|0,f[0|y]=7&p|48,p=(7&Q)<<29|p>>>3,Q>>>=3,p|Q;);if(E=0,O=4678,!(8&Z))break _;h=l-y|0,W=(0|W)>(0|h)?W:h+1|0;break _;case 0:case 2:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 18:case 19:case 20:case 21:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 32:case 38:case 40:case 41:case 42:case 47:case 48:case 50:case 52:case 53:break b;case 1:break k;case 17:break v;case 49:break C;case 43:break g;case 33:break B;case 34:case 39:break R;default:break l}h=a[b+60>>2],Q=h,p=a[b+56>>2],(0|Q)>-1||(0|Q)>=-1&&!(p>>>0<=4294967295)?2048&Z?(E=1,O=4679):(E=1&Z,O=E?4680:4678):(Q=0-((0<p>>>0)+Q|0)|0,p=0-p|0,a[b+56>>2]=p,a[b+60>>2]=Q,E=1,O=4678)}if(1==(0|Q)&p>>>0>=0|Q>>>0>1)for(y=l;h=mt(p,Q,10),w=V,G=w,y=y+-1|0,iA=y,fA=p-_t(h,G,10,0)|48,f[0|iA]=fA,w=9==(0|Q)&p>>>0>4294967295|Q>>>0>9,p=h,Q=G,w;);else h=p,y=l;if(Q=h,Q)for(;y=y+-1|0,h=(Q>>>0)/10|0,f[0|y]=Q-B(h,10)|48,G=Q>>>0>9,Q=h,G;);}if((0|W)<0&&D)break i;if(Z=D?-65537&Z:Z,Q=a[b+56>>2],h=a[b+60>>2],!(!!(Q|h)|W)){y=l,Q=y,W=0;break f}h=!(Q|h)+(l-y|0)|0,W=(0|W)>(0|h)?W:h;break c}f[b+55|0]=a[b+56>>2],E=0,O=4678,W=1,y=C,Q=l,Z=h;break f}y=U(a[256]);break d}Q=a[b+56>>2],y=Q||4688}if(E=0,G=(0|W)<0?2147483647:W,Q=M(y,G),G=Q?Q-y|0:G,Q=G+y|0,O=4678,(0|W)<=-1)break o;Z=h,W=G;break f}if(y=a[b+56>>2],h=y,W)break s;Q=0;break u}a[b+12>>2]=0,a[b+8>>2]=a[b+56>>2],a[b+56>>2]=b+8,W=-1,h=b+8|0}y=h,Q=0,h=y;s:{for(;;){if(G=a[h>>2],!G)break s;if(p=S(b+4|0,G),G=(0|p)<0,!(G|p>>>0>W-Q>>>0)){if(h=h+4|0,Q=Q+p|0,W>>>0>Q>>>0)continue;break s}break}if(G)break e}if((0|Q)<0)break i}w=73728&Z;u:if(!(w|(0|N)<=(0|Q))){if(E=N-Q|0,G=E>>>0<256,X(b- -64|0,32,G?E:256),W=a[A>>2],h=32&W,G){if(h)break u}else{for(h=!h,G=E;1&h&&(x(b- -64|0,256,A),W=a[A>>2]),p=32&W,h=!p,G=G+-256|0,G>>>0>255;);if(p)break u;E&=255}x(b- -64|0,E,A)}u:if(Q)for(h=0;;){if(G=a[y>>2],!G)break u;if(G=S(b+4|0,G),h=G+h|0,h>>>0>Q>>>0)break u;if(32&o[0|A]||x(b+4|0,G,A),y=y+4|0,!(h>>>0<Q>>>0))break}u:if(!(8192!=(0|w)|(0|N)<=(0|Q))){if(p=N-Q|0,G=p>>>0<256,X(b- -64|0,32,G?p:256),y=a[A>>2],h=32&y,G){if(h)break u}else{for(h=!h,G=p;1&h&&(x(b- -64|0,256,A),y=a[A>>2]),w=32&y,h=!w,G=G+-256|0,G>>>0>255;);if(w)break u;p&=255}x(b- -64|0,p,A)}Q=(0|N)>(0|Q)?N:Q;continue r}if(D&&(0|W)<=-1)break i;I=g[b+56>>3],a[b+364>>2]=0,u(+I),h=0|c(1),iA=1,nA=c(0)>>>0<=4294967295?0:1,aA=0,oA=(0|h)>=-1,fA=oA?nA:aA,tA=(0|h)>-1,(tA?iA:fA)?2048&Z?($=1,eA=5331):($=1&Z,eA=$?5334:5329):(I=-I,$=1,eA=5328),L=m(I);l:if(L!=F&L==L)if(L=T(I,b+364|0),I=L+L,0!=I&&(a[b+364>>2]=a[b+364>>2]+-1),z=32|q,97!=(0|z)){for(h=(0|W)<0,0!=I?(y=a[b+364>>2]+-28|0,a[b+364>>2]=y,I*=268435456):y=a[b+364>>2],D=h?6:W,P=(0|y)<0?b+368|0:R,G=P;h=I<4294967296&I>=0?~~I>>>0:0,a[G>>2]=h,G=G+4|0,I=1e9*(I-+(h>>>0)),0!=I;);if((0|y)<1)Q=G,h=P;else for(h=P;;){if(E=(0|y)<29?y:29,Q=G+-4|0,!(Q>>>0<h>>>0)){for(W=E,p=0;y=Q,J=a[Q>>2],j=31&W,32<=(63&W)>>>0?(w=J<<j,j=0):(w=(1<<j)-1&J>>>32-j,j=J<<j),J=j+p|0,p=mt(J,J>>>0<p>>>0?w+1|0:w,1e9),iA=y,fA=J-_t(p,V,1e9,0)|0,a[iA>>2]=fA,Q=Q+-4|0,Q>>>0>=h>>>0;);p&&(h=h+-4|0,a[h>>2]=p)}for(;Q=G,Q>>>0>h>>>0&&(G=Q+-4|0,!a[G>>2]););if(y=a[b+364>>2]-E|0,a[b+364>>2]=y,G=Q,!((0|y)>0))break}if((0|y)<=-1)for(E=1+((D+25>>>0)/9|0)|0;;){if(G=0-y|0,J=(0|G)<9?G:9,h>>>0>=Q>>>0)h=a[h>>2]?h:h+4|0;else{for(W=1e9>>>J,w=-1<<J^-1,y=0,G=h;p=a[G>>2],a[G>>2]=y+(p>>>J),y=B(W,p&w),G=G+4|0,G>>>0<Q>>>0;);h=a[h>>2]?h:h+4|0,y&&(a[Q>>2]=y,Q=Q+4|0)}if(y=J+a[b+364>>2]|0,a[b+364>>2]=y,G=102==(0|z)?P:h,Q=Q-G>>2>(0|E)?G+(E<<2)|0:Q,!((0|y)<0))break}if(G=0,!(h>>>0>=Q>>>0||(G=B(P-h>>2,9),p=a[h>>2],p>>>0<10)))for(y=10;G=G+1|0,y=B(y,10),p>>>0>=y>>>0;);if(j=102==(0|z)?0:G,z=103==(0|z),J=z&0!=(0|D),y=(D-j|0)-J|0,(0|y)<(B(Q-P>>2,9)+-9|0)){if(W=y+9216|0,w=(0|W)/9|0,E=P+(w<<2)|0,p=E+-4092|0,y=10,w=B(w,9),(1+(W-w|0)|0)<=8)for(W=((J+(w+j|0)|0)-D|0)-9208|0;y=B(y,10),W=W+-1|0,W;);if(J=a[p>>2],w=(J>>>0)/(y>>>0)|0,W=p+4|0,j=J-B(y,w)|0,(j||(0|Q)!=(0|W))&&(!(1&w)&&(I=9007199254740992,!(1&f[p+-4|0])|1e9!=(0|y)|p>>>0<=h>>>0)||(I=9007199254740994),L=.5,w=y>>>1,j>>>0>=w>>>0&&(L=(0|Q)==(0|W)&&(0|w)==(0|j)?1:1.5),!$|45!=o[0|eA]||(I=-I,L=-L),w=J-j|0,a[p>>2]=w,I+L!=I)){if(G=y+w|0,a[p>>2]=G,G>>>0>=1e9){for(G=E+-4096|0;a[G+4>>2]=0,G>>>0<h>>>0&&(h=h+-4|0,a[h>>2]=0),y=a[G>>2]+1|0,a[G>>2]=y,G=G+-4|0,y>>>0>999999999;);p=G+4|0}if(G=B(P-h>>2,9),w=a[h>>2],!(w>>>0<10))for(y=10;G=G+1|0,y=B(y,10),w>>>0>=y>>>0;);}y=p+4|0,Q=Q>>>0>y>>>0?y:Q}u:{for(;;){if(W=Q,j=0,Q>>>0<=h>>>0)break u;if(Q=W+-4|0,a[Q>>2])break}j=1}if(z){if(y=D||1,Q=(0|y)>(0|G)&(0|G)>-5,D=(Q?-1^G:-1)+y|0,q=(Q?-1:-2)+q|0,E=8&Z,!E){if(Q=9,j&&(p=a[W+-4>>2],p&&(Q=0,!((p>>>0)%10))))for(y=10;Q=Q+1|0,y=B(y,10),!((p>>>0)%(y>>>0)););y=B(W-P>>2,9)+-9|0,102!=(32|q)?(E=0,Q=(G+y|0)-Q|0,Q=(0|Q)>0?Q:0,D=(0|D)<(0|Q)?D:Q):(E=0,Q=y-Q|0,Q=(0|Q)>0?Q:0,D=(0|D)<(0|Q)?D:Q)}}else E=8&Z;if(Q=-1,z=D|E,!((0|D)>(0|(z?2147483645:2147483646)))){if(O=1+((0!=(0|z))+D|0)|0,J=102!=(32|q),J){if(y=s,Q=G>>31,Q^=Q+G,Q)for(;y=y+-1|0,p=(Q>>>0)/10|0,f[0|y]=Q-B(p,10)|48,w=Q>>>0>9,Q=p,w;);if((s-y|0)<=1){for(Q=y+-1|0;f[0|Q]=48,p=s-Q|0,y=Q+-1|0,Q=y,(0|p)<2;);y=y+1|0}if(rA=y+-2|0,f[0|rA]=q,Q=-1,f[y+-1|0]=(0|G)<0?45:43,G=s-rA|0,(0|G)>(2147483647-O|0))break l}else{if((0|G)>(2147483647-O|0))break l;G=(0|G)>0?G:0}if(G=G+O|0,!((0|G)>(2147483647^$))){Z&=73728,O=G+$|0;u:if(!(Z|(0|N)<=(0|O))){if(w=N-O|0,G=w>>>0<256,X(b- -64|0,32,G?w:256),y=a[A>>2],Q=32&y,G){if(Q)break u}else{for(Q=!Q,G=w;1&Q&&(x(b- -64|0,256,A),y=a[A>>2]),p=32&y,Q=!p,G=G+-256|0,G>>>0>255;);if(p)break u;w&=255}x(b- -64|0,w,A)}32&o[0|A]||x(eA,$,A);u:if(!(65536!=(0|Z)|(0|N)<=(0|O))){if(w=N-O|0,G=w>>>0<256,X(b- -64|0,48,G?w:256),y=a[A>>2],Q=32&y,G){if(Q)break u}else{for(Q=!Q,G=w;1&Q&&(x(b- -64|0,256,A),y=a[A>>2]),p=32&y,Q=!p,G=G+-256|0,G>>>0>255;);if(p)break u;w&=255}x(b- -64|0,w,A)}u:if(J){s:if(!((0|D)<=-1)){for(W=j?W:h+4|0,p=h;;){y=k,Q=a[p>>2];k:{if(Q){for(G=0;y=(Q>>>0)/10|0,f[344+(G+b|0)|0]=Q-B(y,10)|48,G=G+-1|0,w=Q>>>0>9,Q=y,w;);if(y=345+(G+b|0)|0,G)break k}y=y+-1|0,f[0|y]=48}k:if((0|h)==(0|p))32&o[0|A]||x(y,1,A),y=y+1|0,32&o[0|A]|((0|D)<1?!E:0)||x(5363,1,A);else{if(y>>>0<=b+336>>>0)break k;for(X(b+336|0,48,y+v|0);y=y+-1|0,y>>>0>b+336>>>0;);}if(Q=k-y|0,32&o[0|A]||x(y,(0|D)>(0|Q)?Q:D,A),p=p+4|0,D=D-Q|0,!((0|D)>-1&&p>>>0<W>>>0))break}if(!((0|D)<1)){if(h=D>>>0<256,X(b- -64|0,48,h?D:256),G=a[A>>2],Q=32&G,h){if(Q)break s}else{for(Q=!Q,h=D;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break s;D&=255}x(b- -64|0,D,A)}}32&o[0|A]||x(rA,s-rA|0,A)}else{for(w=h>>>0>P>>>0?P:h,p=w;;){if(Q=a[p>>2],Q)for(h=0;G=(Q>>>0)/10|0,f[h+d|0]=Q-B(G,10)|48,h=h+-1|0,y=Q>>>0>9,Q=G,y;);else h=0;Q=h+k|0;s:if((0|p)==(0|w))h||(Q=Q+-1|0,f[0|Q]=48);else{if(Q>>>0<=b+336>>>0)break s;X(b+336|0,48,h+9|0),Q=b+336|0}if(32&o[0|A]||x(Q,k-Q|0,A),p=p+4|0,!(p>>>0<=P>>>0))break}!z|32&o[0|A]||x(5363,1,A);s:if(!((0|D)<1|p>>>0>=W>>>0))for(;;){Q=k,h=a[p>>2];k:{if(h){for(;Q=Q+-1|0,G=(h>>>0)/10|0,f[0|Q]=h-B(G,10)|48,y=h>>>0>9,h=G,y;);if(Q>>>0<=b+336>>>0)break k}for(X(b+336|0,48,Q+v|0);Q=Q+-1|0,Q>>>0>b+336>>>0;);}if(32&o[0|A]||x(Q,(0|D)<9?D:9,A),D=D+-9|0,(0|D)<1)break s;if(p=p+4|0,!(p>>>0<W>>>0))break}if((0|D)<1)break u;if(h=D>>>0<256,X(b- -64|0,48,h?D:256),G=a[A>>2],Q=32&G,h){if(Q)break u}else{for(Q=!Q,h=D;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break u;D&=255}x(b- -64|0,D,A)}u:if(!(8192!=(0|Z)|(0|N)<=(0|O))){if(W=N-O|0,Q=W>>>0<256,X(b- -64|0,32,Q?W:256),G=a[A>>2],h=32&G,Q){if(h)break u}else{for(Q=!h,h=W;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break u;W&=255}x(b- -64|0,W,A)}Q=(0|N)>(0|O)?N:O}}}else{if(p=32&q,J=p?eA+9|0:eA,!(!(12-W)|W>>>0>11)){for(Q=W+-12|0,L=16;L*=16,h=Q+1|0,G=h>>>0>=Q>>>0,Q=h,G;);I=45!=o[0|J]?I+L-L:-(L+(-I-L))}G=s,w=a[b+364>>2],h=w>>31,Q=h^h+w;u:{if(Q){for(h=0;G=(Q>>>0)/10|0,f[335+(h+b|0)|0]=Q-B(G,10)|48,h=h+-1|0,y=Q>>>0>9,Q=G,y;);if(G=336+(h+b|0)|0,h)break u}G=G+-1|0,f[0|G]=48}for(E=2|$,P=G+-2|0,f[0|P]=q+15,f[G+-1|0]=(0|w)<0?45:43,y=8&Z,h=b+336|0;Q=h,G=m(I)<2147483648?~~I:-2147483648,f[0|Q]=p|o[G+5312|0],h=Q+1|0,I=16*(I-+(0|G)),1!=(h-(b+336|0)|0)|(0==I?!((0|W)>0|y):0)||(f[Q+1|0]=46,h=Q+2|0),0!=I;);if(Q=-1,w=s-P|0,G=w+E|0,(2147483645-G|0)<(0|W))break l;D=73728&Z,z=h-(b+336|0)|0,p=W&&(h+_|0)<(0|W)?W+2|0:z,W=p+G|0;u:if(!(D|(0|N)<=(0|W))){if(Z=N-W|0,Q=Z>>>0<256,X(b- -64|0,32,Q?Z:256),G=a[A>>2],h=32&G,Q){if(h)break u}else{for(Q=!h,h=Z;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break u;Z&=255}x(b- -64|0,Z,A)}32&o[0|A]||x(J,E,A);u:if(!(65536!=(0|D)|(0|N)<=(0|W))){if(E=N-W|0,Q=E>>>0<256,X(b- -64|0,48,Q?E:256),G=a[A>>2],h=32&G,Q){if(h)break u}else{for(Q=!h,h=E;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break u;E&=255}x(b- -64|0,E,A)}32&o[0|A]||x(b+336|0,z,A),p=p-z|0;u:if(!((0|p)<1)){if(h=p>>>0<256,X(b- -64|0,48,h?p:256),G=a[A>>2],Q=32&G,h){if(Q)break u}else{for(Q=!Q,h=p;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break u;p&=255}x(b- -64|0,p,A)}32&o[0|A]||x(P,w,A);u:if(!(8192!=(0|D)|(0|N)<=(0|W))){if(p=N-W|0,Q=p>>>0<256,X(b- -64|0,32,Q?p:256),G=a[A>>2],h=32&G,Q){if(h)break u}else{for(Q=!h,h=p;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break u;p&=255}x(b- -64|0,p,A)}Q=(0|N)>(0|W)?N:W}else{w=$+3|0;u:if(!(8192&Z|(0|N)<=(0|w))){if(p=N-w|0,Q=p>>>0<256,X(b- -64|0,32,Q?p:256),G=a[A>>2],h=32&G,Q){if(h)break u}else{for(Q=!h,h=p;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break u;p&=255}x(b- -64|0,p,A)}h=a[A>>2],32&h||(x(eA,$,A),h=a[A>>2]),32&h||(h=(32&q)>>>5,x(I!=I?h?5355:5359:h?5347:5351,3,A));u:if(!(8192!=(73728&Z)|(0|N)<=(0|w))){if(p=N-w|0,Q=p>>>0<256,X(b- -64|0,32,Q?p:256),G=a[A>>2],h=32&G,Q){if(h)break u}else{for(Q=!h,h=p;1&Q&&(x(b- -64|0,256,A),G=a[A>>2]),y=32&G,Q=!y,h=h+-256|0,h>>>0>255;);if(y)break u;p&=255}x(b- -64|0,p,A)}Q=(0|N)>(0|w)?N:w}if((0|Q)>=0)continue r;break i}E=0,O=4678}Q=l;break f}if(Z=h,W=G,!o[0|Q])break f;break i}Q=o[e+1|0],e=e+1|0}if(A)break A;if(!AA){K=0;break A}if(A=a[n+4>>2],e=1,A&&(H(i+8|0,A,r),A=a[n+8>>2],e=2,A&&(H(i+16|0,A,r),A=a[n+12>>2],e=3,A&&(H(i+24|0,A,r),A=a[n+16>>2],e=4,A&&(H(i+32|0,A,r),A=a[n+20>>2],e=5,A&&(H(i+40|0,A,r),A=a[n+24>>2],e=6,A&&(H(i+48|0,A,r),A=a[n+28>>2],e=7,A&&(H(i+56|0,A,r),A=a[n+32>>2],e=8,A)))))))){if(H(i- -64|0,A,r),A=a[n+36>>2],A)break t;e=9}for(e<<=2;;){if(a[e+n>>2])break n;if(e=e+4|0,40==(0|e))break}K=1;break A}a[256]=28;break e}H(i+72|0,A,r),K=1;break A}if(z=Q-y|0,J=(0|W)<(0|z)?z:W,!((0|J)>(2147483647-E|0)||(j=E+J|0,Q=(0|N)<(0|j)?j:N,(0|Q)>(0|P)))){Z&=73728;f:if(!(Z|(0|j)>=(0|N))){if(D=Q-j|0,G=D>>>0<256,X(b- -64|0,32,G?D:256),p=a[A>>2],h=32&p,G){if(h)break f}else{for(h=!h,G=D;1&h&&(x(b- -64|0,256,A),p=a[A>>2]),w=32&p,h=!w,G=G+-256|0,G>>>0>255;);if(w)break f;D&=255}x(b- -64|0,D,A)}32&o[0|A]||x(O,E,A);f:if(!(65536!=(0|Z)|(0|j)>=(0|N))){if(E=Q-j|0,G=E>>>0<256,X(b- -64|0,48,G?E:256),p=a[A>>2],h=32&p,G){if(h)break f}else{for(h=!h,G=E;1&h&&(x(b- -64|0,256,A),p=a[A>>2]),w=32&p,h=!w,G=G+-256|0,G>>>0>255;);if(w)break f;E&=255}x(b- -64|0,E,A)}f:if(!((0|z)>=(0|W))){if(w=J-z|0,G=w>>>0<256,X(b- -64|0,48,G?w:256),W=a[A>>2],h=32&W,G){if(h)break f}else{for(h=!h,G=w;1&h&&(x(b- -64|0,256,A),W=a[A>>2]),p=32&W,h=!p,G=G+-256|0,G>>>0>255;);if(p)break f;w&=255}x(b- -64|0,w,A)}if(32&o[0|A]||x(y,z,A),8192!=(0|Z)|(0|j)>=(0|N))continue;if(W=Q-j|0,G=W>>>0<256,X(b- -64|0,32,G?W:256),y=a[A>>2],h=32&y,G){if(h)continue}else{for(h=!h,G=W;1&h&&(x(b- -64|0,256,A),y=a[A>>2]),p=32&y,h=!p,G=G+-256|0,G>>>0>255;);if(p)continue;W&=255}x(b- -64|0,W,A);continue}}break}a[256]=61}K=-1}return Y=b+880|0,K}function H(A,e,r){A:{e:{r:{i:{f:{if(e=e+-9|0,e>>>0<=17){switch(e-1|0){case 5:e=a[r>>2],a[r>>2]=e+4,e=t[e>>1],a[A>>2]=e;break e;case 6:e=a[r>>2],a[r>>2]=e+4,a[A>>2]=v[e>>1];break A;case 7:e=a[r>>2],a[r>>2]=e+4,e=f[0|e],a[A>>2]=e;break e;case 8:e=a[r>>2],a[r>>2]=e+4,a[A>>2]=o[0|e];break A;case 16:A=function(){var A=0,e=0,r=0;t:{n:{a:if(A=5168,3&A){if(!o[5168])return 0;for(A=5169;;){if(!(3&A))break a;if(e=o[0|A],r=A+1|0,A=r,!e)break}break n}for(A=A+-4|0;A=A+4|0,e=a[A>>2],!((-1^e)&e+-16843009&-2139062144););if(!(255&e))return A-5168|0;for(;r=o[A+1|0],e=A+1|0,A=e,r;);break t}e=r+-1|0}return e-5168|0}(),function(A){var e,r=0,i=0,f=0,t=0,n=0,c=0,b=0;n=5168,e=A,r=a[716];t:{if(!r){if(r=0,I(2848))break t;r=a[716]}if(f=a[717],r-f>>>0<e>>>0)r=0|Qt[a[720]](2848,5168,e);else{i=e;n:if(!(a[728]<0)){for(c=e+5168|0,r=0;;){if(i=e,!(r+e))break n;if(b=r+c|0,i=r+-1|0,r=i,10==o[b+-1|0])break}if(t=1+(e+i|0)|0,r=0|Qt[a[720]](2848,5168,t),r>>>0<t>>>0)break t;n=1+(i+c|0)|0,f=a[717],i^=-1}r=i,J(f,n,r),a[717]=a[717]+r,r=r+t|0}}}(A),p();case 0:case 3:case 13:break f;case 1:case 4:case 10:case 14:break i;case 2:case 9:case 11:case 12:case 15:break r}e=a[r>>2],a[r>>2]=e+4,a[A>>2]=a[e>>2]}return}e=a[r>>2],a[r>>2]=e+4,e=a[e>>2],a[A>>2]=e;break e}e=a[r>>2],a[r>>2]=e+4,a[A>>2]=a[e>>2];break A}return e=a[r>>2]+7&-8,a[r>>2]=e+8,r=a[e+4>>2],a[A>>2]=a[e>>2],void(a[A+4>>2]=r)}return void(a[A+4>>2]=e>>31)}a[A+4>>2]=0}function z(){var A;A=Y-16|0,Y=A,a[A+12>>2]=5367,a[A+8>>2]=0,j(a[752],a[A+12>>2],a[A+8>>2]),function(A){var e;e=Y-16|0,Y=e,a[e+12>>2]=0,j(A,5365,0),Y=e+16|0}(a[752]),p()}function P(e){return e?65535&e|(0|e)<=-1?void p():(e=function(e){e|=0;var n=0|ht(),c=n+e|0;if(n<c&&c<65536){var b=new ArrayBuffer(B(c,65536)),l=new A.Int8Array(b);l.set(f),f=l,f=new A.Int8Array(b),t=new A.Int16Array(b),a=new A.Int32Array(b),o=new A.Uint8Array(b),v=new A.Uint16Array(b),d=new A.Uint32Array(b),C=new A.Float32Array(b),g=new A.Float64Array(b),r=b,i.buffer=b}return n}(e>>>16),-1==(0|e)?(a[256]=48,-1):e<<16):ht()<<16}function K(A){var e,r=0,i=0,f=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0;if(e=Y-16|0,Y=e,!(a[272]||(r=P(0)-90864|0,r>>>0<89))){for(i=a[384],i||(a[387]=-1,a[388]=-1,a[385]=65536,a[386]=65536,i=e+8&-16^1431655768,a[384]=i,a[389]=0,a[377]=0),a[379]=r,a[378]=90864,a[270]=90864,a[275]=i,a[274]=-1;i=f+1104|0,a[f+1112>>2]=i,a[f+1116>>2]=i,f=f+8|0,256!=(0|f););i=r+-64|0,a[22719]=1|i,a[273]=a[388],a[272]=90872,a[269]=i,a[r+90812>>2]=56}A:{e:{r:{i:{f:{t:{n:{a:{o:{c:{b:{if(A>>>0<=236){if(n=a[266],b=A>>>0<11?16:A+19&-16,A=b>>>3,r=n>>>A,3&r){r=1^(A|1&r),t=r<<3,A=a[t+1112>>2],f=A+8|0,i=a[A+8>>2],t=t+1104|0,(0|i)!=(0|t)?(a[t+8>>2]=i,a[i+12>>2]=t):(k=1064,v=Rt(r)&n,a[k>>2]=v),r<<=3,a[A+4>>2]=3|r,A=A+r|0,a[A+4>>2]=1|a[A+4>>2];break A}if(l=a[268],b>>>0<=l>>>0)break b;if(r){r<<=A,A=2<<A,A=r&(0-A|A),A=(0-A&A)-1|0,r=A>>>12&16,i=r,A>>>=r,r=A>>>5&8,i|=r,A>>>=r,r=A>>>2&4,i|=r,A>>>=r,r=A>>>1&2,i|=r,A>>>=r,r=A>>>1&1,r=(i|r)+(A>>>r)|0,f=r<<3,A=a[f+1112>>2],i=a[A+8>>2],f=f+1104|0,(0|i)!=(0|f)?(a[f+8>>2]=i,a[i+12>>2]=f):(n=Rt(r)&n,a[266]=n),f=A+8|0,a[A+4>>2]=3|b,r<<=3,i=r-b|0,a[A+r>>2]=i,b=A+b|0,a[b+4>>2]=1|i,l&&(t=l>>>3,A=1104+(t<<3)|0,r=a[271],t=1<<t,t&n?t=a[A+8>>2]:(a[266]=t|n,t=A),a[t+12>>2]=r,a[A+8>>2]=r,a[r+12>>2]=A,a[r+8>>2]=t),a[271]=b,a[268]=i;break A}if(s=a[267],!s)break b;for(A=(s&0-s)-1|0,r=A>>>12&16,i=r,A>>>=r,r=A>>>5&8,i|=r,A>>>=r,r=A>>>2&4,i|=r,A>>>=r,r=A>>>1&2,i|=r,A>>>=r,r=A>>>1&1,r=a[1368+((i|r)+(A>>>r)<<2)>>2],i=(-8&a[r+4>>2])-b|0,A=r;f=a[A+16>>2],f||(f=a[A+20>>2],f);)t=(-8&a[f+4>>2])-b|0,A=t>>>0<i>>>0,i=A?t:i,r=A?f:r,A=f;if(u=a[r+24>>2],t=a[r+12>>2],(0|r)!=(0|t)){A=a[r+8>>2],d[270],a[t+8>>2]=A,a[A+12>>2]=t;break e}if(A=r+20|0,f=a[A>>2],!f){if(f=a[r+16>>2],!f)break c;A=r+16|0}for(;c=A,t=f,A=f+20|0,f=a[A>>2],f||(A=t+16|0,f=a[t+16>>2],f););a[c>>2]=0;break e}if(b=-1,!(A>>>0>4294967231)&&(A=A+19|0,b=-16&A,l=a[267],l)){A>>>=8,c=0,A&&(c=31,b>>>0>16777215||(i=A+1048320>>>16&8,r=A<<i,A=r+520192>>>16&4,f=r<<A,r=f+245760>>>16&2,A=(f<<r>>>15)-(r|A|i)|0,c=28+(A<<1|b>>>A+21&1)|0)),A=0-b|0,i=a[1368+(c<<2)>>2];l:{u:{if(i)for(r=b<<(31==(0|c)?0:25-(c>>>1)|0),f=0;;){if(n=(-8&a[i+4>>2])-b|0,!(n>>>0>=A>>>0||(t=i,A=n,A))){A=0,f=i;break u}if(n=a[i+20>>2],i=a[16+((r>>>29&4)+i|0)>>2],f=n?(0|n)==(0|i)?f:n:f,r<<=0!=(0|i),!i)break}else f=0;if(!(f|t)){if(r=2<<c,r=(0-r|r)&l,!r)break b;r=(r&0-r)-1|0,i=r>>>12&16,f=i,r>>>=i,i=r>>>5&8,f|=i,r>>>=i,i=r>>>2&4,f|=i,r>>>=i,i=r>>>1&2,f|=i,r>>>=i,i=r>>>1&1,f=a[1368+((f|i)+(r>>>i)<<2)>>2]}if(!f)break l}for(;n=(-8&a[f+4>>2])-b|0,r=n>>>0<A>>>0,A=r?n:A,t=r?f:t,i=a[f+16>>2],i||(i=a[f+20>>2]),f=i,f;);}if(!(!t|A>>>0>=a[268]-b>>>0)){if(c=a[t+24>>2],r=a[t+12>>2],(0|r)!=(0|t)){i=a[t+8>>2],d[270],a[r+8>>2]=i,a[i+12>>2]=r;break r}if(i=t+20|0,f=a[i>>2],!f){if(f=a[t+16>>2],!f)break o;i=t+16|0}for(;n=i,r=f,i=r+20|0,f=a[i>>2],f||(i=r+16|0,f=a[r+16>>2],f););a[n>>2]=0;break r}}}if(r=a[268],r>>>0>=b>>>0){A=a[271],i=r-b|0,i>>>0>=16?(f=A+b|0,a[f+4>>2]=1|i,a[268]=i,a[271]=f,a[A+r>>2]=i,a[A+4>>2]=3|b):(a[A+4>>2]=3|r,r=A+r|0,a[r+4>>2]=1|a[r+4>>2],a[271]=0,a[268]=0),f=A+8|0;break A}if(r=a[269],r>>>0>b>>>0){A=a[272],i=A+b|0,r=r-b|0,a[i+4>>2]=1|r,a[269]=r,a[272]=i,a[A+4>>2]=3|b,f=A+8|0;break A}if(f=0,a[384]?i=a[386]:(a[387]=-1,a[388]=-1,a[385]=65536,a[386]=65536,a[384]=e+12&-16^1431655768,a[389]=0,a[377]=0,i=65536),t=b+71|0,n=i+t|0,c=0-i|0,A=n&c,A>>>0<=b>>>0){a[256]=48;break A}if(i=a[376],i&&(f=a[374],l=f+A|0,!(l>>>0<=i>>>0&&l>>>0>f>>>0))){f=0,a[256]=48;break A}if(4&o[1508])break t;b:{l:{if(i=a[272],i)for(f=1512;;){if(l=a[f>>2],l+a[f+4>>2]>>>0>i>>>0&&l>>>0<=i>>>0)break l;if(f=a[f+8>>2],!f)break}if(r=P(0),-1==(0|r))break n;if(n=A,i=a[385],f=i+-1|0,f&r&&(n=(A-r|0)+(r+f&0-i)|0),n>>>0<=b>>>0|n>>>0>2147483646)break n;if(i=a[376],i&&(f=a[374],c=f+n|0,c>>>0<=f>>>0|c>>>0>i>>>0))break n;if(f=P(n),(0|r)!=(0|f))break b;break f}if(n=c&n-r,n>>>0>2147483646)break n;if(r=P(n),(0|r)==(a[f>>2]+a[f+4>>2]|0))break a;f=r}if(r=f,!(b+72>>>0<=n>>>0|n>>>0>2147483646|-1==(0|r))){if(i=a[386],i=i+(t-n|0)&0-i,i>>>0>2147483646)break f;if(-1!=(0|P(i))){n=i+n|0;break f}P(0-n|0);break n}if(-1!=(0|r))break f;break n}t=0;break e}r=0;break r}if(-1!=(0|r))break f}a[377]=4|a[377]}if(A>>>0>2147483646)break i;if(r=P(A),A=P(0),r>>>0>=A>>>0|-1==(0|r)|-1==(0|A))break i;if(n=A-r|0,n>>>0<=b+56>>>0)break i}A=a[374]+n|0,a[374]=A,A>>>0>d[375]&&(a[375]=A);f:{t:{n:{if(i=a[272],i){for(f=1512;;){if(A=a[f>>2],t=a[f+4>>2],(A+t|0)==(0|r))break n;if(f=a[f+8>>2],!f)break}break t}for(A=a[270],r>>>0>=A>>>0&&A||(a[270]=r),f=0,a[379]=n,a[378]=r,a[274]=-1,a[275]=a[384],a[381]=0;A=f+1104|0,a[f+1112>>2]=A,a[f+1116>>2]=A,f=f+8|0,256!=(0|f););A=r+8&15?-8-r&15:0,i=A+r|0,f=n+-56|0,A=f-A|0,a[i+4>>2]=1|A,a[273]=a[388],a[269]=A,a[272]=i,a[4+(r+f|0)>>2]=56;break f}if(!(8&o[f+12|0]|r>>>0<=i>>>0|A>>>0>i>>>0)){A=i+8&15?-8-i&15:0,r=A+i|0,c=a[269]+n|0,A=c-A|0,a[r+4>>2]=1|A,a[f+4>>2]=t+n,a[273]=a[388],a[269]=A,a[272]=r,a[4+(i+c|0)>>2]=56;break f}}t=a[270],r>>>0<t>>>0&&(a[270]=r,t=r),A=r+n|0,f=1512;t:{n:{a:{o:{c:{b:{for(;;){if(a[f>>2]!=(0|A)){if(f=a[f+8>>2],f)continue;break b}break}if(!(8&o[f+12|0]))break c}for(f=1512;;){if(A=a[f>>2],A>>>0<=i>>>0&&(t=A+a[f+4>>2]|0,t>>>0>i>>>0))break o;f=a[f+8>>2]}}if(a[f>>2]=r,a[f+4>>2]=a[f+4>>2]+n,u=(r+8&15?-8-r&15:0)+r|0,a[u+4>>2]=3|b,r=A+(A+8&15?-8-A&15:0)|0,f=(r-u|0)-b|0,c=b+u|0,(0|r)==(0|i)){a[272]=c,A=a[269]+f|0,a[269]=A,a[c+4>>2]=1|A;break n}if((0|r)==a[271]){a[271]=c,A=a[268]+f|0,a[268]=A,a[c+4>>2]=1|A,a[A+c>>2]=A;break n}if(i=a[r+4>>2],1==(3&i)){s=-8&i;c:if(i>>>0<=255){if(A=a[r+12>>2],t=a[r+8>>2],i>>>=3,b=1104+(i<<3)|0,(0|A)==(0|t)){k=1064,v=a[266]&Rt(i),a[k>>2]=v;break c}a[A+8>>2]=t,a[t+12>>2]=A}else{if(l=a[r+24>>2],n=a[r+12>>2],(0|n)==(0|r))if(i=r+20|0,b=a[i>>2],b||(i=r+16|0,b=a[i>>2],b)){for(;A=i,n=b,i=n+20|0,b=a[i>>2],b||(i=n+16|0,b=a[n+16>>2],b););a[A>>2]=0}else n=0;else A=a[r+8>>2],a[n+8>>2]=A,a[A+12>>2]=n;if(l){A=a[r+28>>2],i=1368+(A<<2)|0;b:{if((0|r)==a[i>>2]){if(a[i>>2]=n,n)break b;k=1068,v=a[267]&Rt(A),a[k>>2]=v;break c}if(a[l+(a[l+16>>2]==(0|r)?16:20)>>2]=n,!n)break c}a[n+24>>2]=l,A=a[r+16>>2],A&&(a[n+16>>2]=A,a[A+24>>2]=n),A=a[r+20>>2],A&&(a[n+20>>2]=A,a[A+24>>2]=n)}}f=f+s|0,r=r+s|0}if(a[r+4>>2]=-2&a[r+4>>2],a[f+c>>2]=f,a[c+4>>2]=1|f,f>>>0<=255){r=f>>>3,A=1104+(r<<3)|0,i=a[266],r=1<<r,i&r?i=a[A+8>>2]:(a[266]=r|i,i=A),a[i+12>>2]=c,a[A+8>>2]=c,a[c+12>>2]=A,a[c+8>>2]=i;break n}if(n=c,A=f>>>8,i=0,A&&(i=31,f>>>0>16777215||(i=A+1048320>>>16&8,r=A<<i,A=r+520192>>>16&4,t=r<<A,r=t+245760>>>16&2,A=(t<<r>>>15)-(r|A|i)|0,i=28+(A<<1|f>>>A+21&1)|0)),a[n+28>>2]=i,a[c+16>>2]=0,a[c+20>>2]=0,A=1368+(i<<2)|0,r=a[267],t=1<<i,!(r&t)){a[A>>2]=c,a[267]=r|t,a[c+24>>2]=A,a[c+8>>2]=c,a[c+12>>2]=c;break n}for(i=f<<(31==(0|i)?0:25-(i>>>1)|0),r=a[A>>2];;){if(A=r,(-8&a[A+4>>2])==(0|f))break a;if(r=i>>>29,i<<=1,t=16+(A+(4&r)|0)|0,r=a[t>>2],!r)break}a[t>>2]=c,a[c+24>>2]=A,a[c+12>>2]=c,a[c+8>>2]=c;break n}for(A=r+8&15?-8-r&15:0,f=A+r|0,c=n+-56|0,l=c-A|0,a[f+4>>2]=1|l,a[4+(r+c|0)>>2]=56,A=(t+(t+-55&15?55-t&15:0)|0)-63|0,A=A>>>0<i+16>>>0?i:A,a[A+4>>2]=35,a[273]=a[388],a[269]=l,a[272]=f,c=a[381],f=A+16|0,a[f>>2]=a[380],a[f+4>>2]=c,f=a[379],a[A+8>>2]=a[378],a[A+12>>2]=f,a[380]=A+8,a[379]=n,a[378]=r,a[381]=0,f=A+36|0;a[f>>2]=7,f=f+4|0,f>>>0<t>>>0;);if((0|A)==(0|i))break f;if(a[A+4>>2]=-2&a[A+4>>2],t=A-i|0,a[A>>2]=t,a[i+4>>2]=1|t,t>>>0<=255){A=t>>>3,r=1104+(A<<3)|0,f=a[266],A=1<<A,f&A?A=a[r+8>>2]:(a[266]=A|f,A=r),a[A+12>>2]=i,a[r+8>>2]=i,a[i+12>>2]=r,a[i+8>>2]=A;break f}if(a[i+16>>2]=0,a[i+20>>2]=0,c=i+28|0,A=t>>>8,f=0,A&&(f=31,t>>>0>16777215||(f=A+1048320>>>16&8,r=A<<f,A=r+520192>>>16&4,n=r<<A,r=n+245760>>>16&2,A=(n<<r>>>15)-(r|A|f)|0,f=28+(A<<1|t>>>A+21&1)|0)),a[c>>2]=f,A=1368+(f<<2)|0,r=a[267],n=1<<f,!(r&n)){a[A>>2]=i,a[267]=r|n,a[i+24>>2]=A,a[i+8>>2]=i,a[i+12>>2]=i;break f}for(f=t<<(31==(0|f)?0:25-(f>>>1)|0),r=a[A>>2];;){if(A=r,(0|t)==(-8&a[A+4>>2]))break t;if(r=f>>>29,f<<=1,n=16+(A+(4&r)|0)|0,r=a[n>>2],!r)break}a[n>>2]=i,a[i+24>>2]=A,a[i+12>>2]=i,a[i+8>>2]=i;break f}r=a[A+8>>2],a[A+8>>2]=c,a[r+12>>2]=c,a[c+24>>2]=0,a[c+8>>2]=r,a[c+12>>2]=A}f=u+8|0;break A}r=a[A+8>>2],a[A+8>>2]=i,a[r+12>>2]=i,a[i+24>>2]=0,a[i+8>>2]=r,a[i+12>>2]=A}if(r=a[269],!(r>>>0<=b>>>0)){A=a[272],i=A+b|0,r=r-b|0,a[i+4>>2]=1|r,a[269]=r,a[272]=i,a[A+4>>2]=3|b,f=A+8|0;break A}}f=0,a[256]=48;break A}r:if(c){i=a[t+28>>2],f=1368+(i<<2)|0;i:{if((0|t)==a[f>>2]){if(a[f>>2]=r,r)break i;l=Rt(i)&l,a[267]=l;break r}if(a[c+(a[c+16>>2]==(0|t)?16:20)>>2]=r,!r)break r}a[r+24>>2]=c,i=a[t+16>>2],i&&(a[r+16>>2]=i,a[i+24>>2]=r),i=a[t+20>>2],i&&(a[r+20>>2]=i,a[i+24>>2]=r)}r:if(A>>>0<=15)A=A+b|0,a[t+4>>2]=3|A,A=A+t|0,a[A+4>>2]=1|a[A+4>>2];else if(n=t+b|0,a[n+4>>2]=1|A,a[t+4>>2]=3|b,a[A+n>>2]=A,A>>>0<=255)r=A>>>3,A=1104+(r<<3)|0,i=a[266],r=1<<r,i&r?i=a[A+8>>2]:(a[266]=r|i,i=A),a[i+12>>2]=n,a[A+8>>2]=n,a[n+12>>2]=A,a[n+8>>2]=i;else if(c=n,r=A>>>8,f=0,r&&(f=31,A>>>0>16777215||(f=r+1048320>>>16&8,i=r<<f,r=i+520192>>>16&4,b=i<<r,i=b+245760>>>16&2,r=(b<<i>>>15)-(i|r|f)|0,f=28+(r<<1|A>>>r+21&1)|0)),a[c+28>>2]=f,a[n+16>>2]=0,a[n+20>>2]=0,r=1368+(f<<2)|0,i=1<<f,i&l){f=A<<(31==(0|f)?0:25-(f>>>1)|0),b=a[r>>2];i:{for(;;){if(r=b,(-8&a[r+4>>2])==(0|A))break i;if(i=f>>>29,f<<=1,i=16+(r+(4&i)|0)|0,b=a[i>>2],!b)break}a[i>>2]=n,a[n+24>>2]=r,a[n+12>>2]=n,a[n+8>>2]=n;break r}A=a[r+8>>2],a[r+8>>2]=n,a[A+12>>2]=n,a[n+24>>2]=0,a[n+8>>2]=A,a[n+12>>2]=r}else a[r>>2]=n,a[267]=i|l,a[n+24>>2]=r,a[n+8>>2]=n,a[n+12>>2]=n;f=t+8|0;break A}e:if(u){A=a[r+28>>2],f=1368+(A<<2)|0;r:{if((0|r)==a[f>>2]){if(a[f>>2]=t,t)break r;k=1068,v=Rt(A)&s,a[k>>2]=v;break e}if(a[(a[u+16>>2]==(0|r)?16:20)+u>>2]=t,!t)break e}a[t+24>>2]=u,A=a[r+16>>2],A&&(a[t+16>>2]=A,a[A+24>>2]=t),A=a[r+20>>2],A&&(a[t+20>>2]=A,a[A+24>>2]=t)}i>>>0<=15?(A=i+b|0,a[r+4>>2]=3|A,A=A+r|0,a[A+4>>2]=1|a[A+4>>2]):(c=r+b|0,a[c+4>>2]=1|i,a[r+4>>2]=3|b,a[i+c>>2]=i,l&&(t=l>>>3,A=1104+(t<<3)|0,f=a[271],t=1<<t,t&n?t=a[A+8>>2]:(a[266]=t|n,t=A),a[t+12>>2]=f,a[A+8>>2]=f,a[f+12>>2]=A,a[f+8>>2]=t),a[271]=c,a[268]=i),f=r+8|0}return Y=e+16|0,f}function L(A){var e=0,r=0,i=0,f=0,t=0,n=0,o=0,c=0,b=0;A:if(A){i=A+-8|0,r=a[A+-4>>2],A=-8&r,t=i+A|0;e:if(!(1&r)){if(!(3&r))break A;if(e=a[i>>2],i=i-e|0,f=a[270],i>>>0<f>>>0)break A;if(A=A+e|0,(0|i)==a[271]){if(r=a[t+4>>2],3==(3&r))return a[t+4>>2]=-2&r,a[268]=A,a[A+i>>2]=A,void(a[i+4>>2]=1|A)}else{if(e>>>0<=255){if(r=a[i+12>>2],f=a[i+8>>2],e>>>=3,n=1104+(e<<3)|0,(0|r)==(0|f)){c=1064,b=a[266]&Rt(e),a[c>>2]=b;break e}a[r+8>>2]=f,a[f+12>>2]=r;break e}if(o=a[i+24>>2],r=a[i+12>>2],(0|i)==(0|r))if(e=i+20|0,f=a[e>>2],f||(e=i+16|0,f=a[e>>2],f)){for(;n=e,r=f,e=r+20|0,f=a[e>>2],f||(e=r+16|0,f=a[r+16>>2],f););a[n>>2]=0}else r=0;else e=a[i+8>>2],a[r+8>>2]=e,a[e+12>>2]=r;if(!o)break e;e=a[i+28>>2],f=1368+(e<<2)|0;r:{if((0|i)==a[f>>2]){if(a[f>>2]=r,r)break r;c=1068,b=a[267]&Rt(e),a[c>>2]=b;break e}if(a[o+(a[o+16>>2]==(0|i)?16:20)>>2]=r,!r)break e}if(a[r+24>>2]=o,e=a[i+16>>2],e&&(a[r+16>>2]=e,a[e+24>>2]=r),e=a[i+20>>2],!e)break e;a[r+20>>2]=e,a[e+24>>2]=r}}if(!(t>>>0<=i>>>0)&&(r=a[t+4>>2],1&r)){e:{if(!(2&r)){if(a[272]==(0|t)){if(a[272]=i,A=a[269]+A|0,a[269]=A,a[i+4>>2]=1|A,a[271]!=(0|i))break A;return a[268]=0,void(a[271]=0)}if(a[271]==(0|t))return a[271]=i,A=a[268]+A|0,a[268]=A,a[i+4>>2]=1|A,void(a[A+i>>2]=A);A=(-8&r)+A|0;r:if(r>>>0<=255){if(e=a[t+12>>2],f=a[t+8>>2],r>>>=3,n=1104+(r<<3)|0,(0|e)==(0|f)){c=1064,b=a[266]&Rt(r),a[c>>2]=b;break r}a[e+8>>2]=f,a[f+12>>2]=e}else{if(o=a[t+24>>2],r=a[t+12>>2],(0|r)==(0|t))if(e=t+20|0,f=a[e>>2],f||(e=t+16|0,f=a[e>>2],f)){for(;n=e,r=f,e=r+20|0,f=a[e>>2],f||(e=r+16|0,f=a[r+16>>2],f););a[n>>2]=0}else r=0;else e=a[t+8>>2],d[270],a[r+8>>2]=e,a[e+12>>2]=r;if(o){e=a[t+28>>2],f=1368+(e<<2)|0;i:{if(a[f>>2]==(0|t)){if(a[f>>2]=r,r)break i;c=1068,b=a[267]&Rt(e),a[c>>2]=b;break r}if(a[o+((0|t)==a[o+16>>2]?16:20)>>2]=r,!r)break r}a[r+24>>2]=o,e=a[t+16>>2],e&&(a[r+16>>2]=e,a[e+24>>2]=r),e=a[t+20>>2],e&&(a[r+20>>2]=e,a[e+24>>2]=r)}}if(a[A+i>>2]=A,a[i+4>>2]=1|A,a[271]!=(0|i))break e;return void(a[268]=A)}a[t+4>>2]=-2&r,a[A+i>>2]=A,a[i+4>>2]=1|A}if(A>>>0<=255)return r=A>>>3,A=1104+(r<<3)|0,e=a[266],r=1<<r,e&r?e=a[A+8>>2]:(a[266]=r|e,e=A),a[e+12>>2]=i,a[A+8>>2]=i,a[i+12>>2]=A,void(a[i+8>>2]=e);a[i+16>>2]=0,a[i+20>>2]=0,t=i+28|0,r=A>>>8,e=0,r&&(e=31,A>>>0>16777215||(f=r+1048320>>>16&8,e=r<<f,r=e+520192>>>16&4,n=e<<r,e=n+245760>>>16&2,r=(n<<e>>>15)-(e|r|f)|0,e=28+(r<<1|A>>>r+21&1)|0)),a[t>>2]=e,r=1368+(e<<2)|0,f=a[267],n=1<<e;e:if(f&n){e=A<<(31==(0|e)?0:25-(e>>>1)|0),r=a[r>>2];r:{for(;;){if(f=r,(-8&a[r+4>>2])==(0|A))break r;if(r=e>>>29,e<<=1,n=16+(f+(4&r)|0)|0,r=a[n>>2],!r)break}a[n>>2]=i,a[i+12>>2]=i,a[i+24>>2]=f,a[i+8>>2]=i;break e}A=a[f+8>>2],a[f+8>>2]=i,a[A+12>>2]=i,a[i+24>>2]=0,a[i+8>>2]=A,a[i+12>>2]=f}else a[r>>2]=i,a[267]=f|n,a[i+24>>2]=r,a[i+8>>2]=i,a[i+12>>2]=i;if(A=a[274]+-1|0,a[274]=A,!A){for(i=1520;A=a[i>>2],i=A+8|0,A;);a[274]=-1}}}}function q(A){var e;for(e=Y-16|0,Y=e,a[e+12>>2]=A,a[e+12>>2]||(a[e+12>>2]=1);A=K(a[e+12>>2]),a[e+8>>2]=A,!A&&(A=Y-16|0,a[A+12>>2]=1560,a[A+8>>2]=2,a[e+4>>2]=a[a[A+12>>2]>>2],a[e+4>>2]);)Qt[a[e+4>>2]]();return Y=e+16|0,a[e+8>>2]}function $(A){var e;e=Y-16|0,Y=e,a[e+12>>2]=A,L(a[e+12>>2]),Y=e+16|0}function AA(A,e){var r=0,i=0;r=o[0|A],i=o[0|e];A:if(!(!r|(0|i)!=(0|r)))for(A=A+1|0,e=e+1|0;;){if(i=o[0|e],r=o[0|A],!r)break A;if(A=A+1|0,e=e+1|0,(0|r)!=(0|i))break}return r-i|0}function eA(A){A|=0,a[12+(Y-16|0)>>2]=A}function rA(A){var e;return A|=0,e=Y-16|0,Y=e,a[e+12>>2]=A,A=a[e+12>>2],function(A){var e;e=Y-16|0,Y=e,a[e+12>>2]=A,a[12+(Y-16|0)>>2]=a[e+12>>2],Y=e+16|0}(A),Y=e+16|0,0|A}function iA(A){var e;return A|=0,e=Y-16|0,Y=e,a[e+12>>2]=A,A=a[e+12>>2],rA(A),Y=e+16|0,0|A}function fA(A,e,r){var i,t=0,n=0;return i=Y-16|0,Y=i,a[i+8>>2]=A,a[i+4>>2]=e,f[i+3|0]=r,1&f[i+3|0]?(A=1,e=i,a[i+8>>2]!=a[i+4>>2]&&(A=!AA(tA(a[i+8>>2]),tA(a[i+4>>2]))),f[e+15|0]=A):(t=i,n=1&function(A,e){var r=0;return r=Y-16|0,Y=r,a[r+4>>2]=A,a[r>>2]=e,A=a[a[r>>2]+4>>2],a[r+12>>2]=a[a[r+4>>2]+4>>2],a[r+8>>2]=A,A=1,a[r+12>>2]!=a[r+8>>2]&&(A=!AA(a[r+12>>2],a[r+8>>2])),Y=r+16|0,A}(a[i+8>>2],a[i+4>>2]),f[t+15|0]=n),Y=i+16|0,1&f[i+15|0]}function tA(A){var e;return e=Y-16|0,a[e+8>>2]=A,a[e+12>>2]=a[a[e+8>>2]+4>>2],a[e+12>>2]}function nA(A,e,r,i){var t;t=Y-16|0,a[t+12>>2]=A,a[t+8>>2]=e,a[t+4>>2]=r,a[t>>2]=i,a[a[t+8>>2]+16>>2]?a[a[t+8>>2]+16>>2]!=a[t+4>>2]?(A=a[t+8>>2],a[A+36>>2]=a[A+36>>2]+1,a[a[t+8>>2]+24>>2]=2,f[a[t+8>>2]+54|0]=1):2==a[a[t+8>>2]+24>>2]&&(a[a[t+8>>2]+24>>2]=a[t>>2]):(a[a[t+8>>2]+16>>2]=a[t+4>>2],a[a[t+8>>2]+24>>2]=a[t>>2],a[a[t+8>>2]+36>>2]=1)}function aA(A,e,r,i){var f,t;f=Y-32|0,Y=f,a[f+28>>2]=A,a[f+24>>2]=e,a[f+20>>2]=r,a[f+16>>2]=i,A=a[f+28>>2],a[f+12>>2]=0,a[f+20>>2]&&(a[f+12>>2]=a[A+4>>2]>>8,1&a[A+4>>2]&&(a[f+8>>2]=a[a[f+20>>2]>>2],a[f+12>>2]=a[a[f+8>>2]+a[f+12>>2]>>2])),e=a[A>>2],r=e,i=a[f+24>>2],t=a[f+20>>2]+a[f+12>>2]|0,A=2&a[A+4>>2]?a[f+16>>2]:2,Qt[a[a[e>>2]+28>>2]](r,i,t,A),Y=f+32|0}function oA(A,e,r,i,t){var n;n=Y-32|0,a[n+28>>2]=A,a[n+24>>2]=e,a[n+20>>2]=r,a[n+16>>2]=i,a[n+12>>2]=t,f[a[n+24>>2]+53|0]=1,a[n+16>>2]==a[a[n+24>>2]+4>>2]&&(f[a[n+24>>2]+52|0]=1,a[a[n+24>>2]+16>>2]?a[a[n+24>>2]+16>>2]!=a[n+20>>2]?(A=a[n+24>>2],a[A+36>>2]=a[A+36>>2]+1,f[a[n+24>>2]+54|0]=1):(2==a[a[n+24>>2]+24>>2]&&(a[a[n+24>>2]+24>>2]=a[n+12>>2]),1!=a[a[n+24>>2]+48>>2]|1!=a[a[n+24>>2]+24>>2]||(f[a[n+24>>2]+54|0]=1)):(a[a[n+24>>2]+16>>2]=a[n+20>>2],a[a[n+24>>2]+24>>2]=a[n+12>>2],a[a[n+24>>2]+36>>2]=1,1!=a[a[n+24>>2]+48>>2]|1!=a[a[n+24>>2]+24>>2]||(f[a[n+24>>2]+54|0]=1)))}function cA(A,e,r,i){var f;f=Y-16|0,a[f+12>>2]=A,a[f+8>>2]=e,a[f+4>>2]=r,a[f>>2]=i,a[f+4>>2]==a[a[f+8>>2]+4>>2]&&1!=a[a[f+8>>2]+28>>2]&&(a[a[f+8>>2]+28>>2]=a[f>>2])}function bA(A,e,r,i,t,n){var o;o=Y-32|0,Y=o,a[o+28>>2]=A,a[o+24>>2]=e,a[o+20>>2]=r,a[o+16>>2]=i,a[o+12>>2]=t,f[o+11|0]=n,A=a[o+28>>2],a[o+4>>2]=a[A+4>>2]>>8,1&a[A+4>>2]&&(a[o>>2]=a[a[o+16>>2]>>2],a[o+4>>2]=a[a[o>>2]+a[o+4>>2]>>2]),e=a[A>>2],r=e,i=a[o+24>>2],t=a[o+20>>2],n=a[o+16>>2]+a[o+4>>2]|0,A=2&a[A+4>>2]?a[o+12>>2]:2,Qt[a[a[e>>2]+20>>2]](r,i,t,n,A,1&f[o+11|0]),Y=o+32|0}function lA(A,e,r,i,t){var n;n=Y-32|0,Y=n,a[n+28>>2]=A,a[n+24>>2]=e,a[n+20>>2]=r,a[n+16>>2]=i,f[n+15|0]=t,A=a[n+28>>2],a[n+8>>2]=a[A+4>>2]>>8,1&a[A+4>>2]&&(a[n+4>>2]=a[a[n+20>>2]>>2],a[n+8>>2]=a[a[n+4>>2]+a[n+8>>2]>>2]),e=a[A>>2],r=e,i=a[n+24>>2],t=a[n+20>>2]+a[n+8>>2]|0,A=2&a[A+4>>2]?a[n+16>>2]:2,Qt[a[a[e>>2]+24>>2]](r,i,t,A,1&f[n+15|0]),Y=n+32|0}function uA(A,e){a[A>>2]=5748,a[A+4>>2]=a[e>>2]}function sA(A){return A|=0,0|A}function kA(A){p()}function vA(A,e){uA(A,e),a[A>>2]=5776}function dA(A){return a[391]=a[391]+1,0|Qt[a[740]](A,16)}function CA(A){A&&(a[392]=a[392]+1,Qt[a[741]](A))}function gA(A,e,r,i){var f,n,o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=0,k=0,v=_(0),d=0,g=_(0),m=0,R=_(0),Q=_(0),h=0,G=_(0),y=0;if(f=Y-32|0,Y=f,n=a[A>>2],a[A>>2]=n+1,s=i-r|0,1!=(0|s)){if(y=function(A,e,r,i){var f,t,n=0,o=0,c=0,b=0,l=0,u=0,s=_(0),k=0,v=0,d=0,g=_(0),m=_(0),R=_(0),Q=0,h=0,G=0,y=0,p=0,F=0,W=0,w=0;if(f=Y+-64|0,o=f+24|0,a[o>>2]=0,a[o+4>>2]=0,a[f+16>>2]=0,a[f+20>>2]=0,n=(0|r)<=(0|e),!n){for(u=r-e|0,o=24+(a[A+12>>2]+B(e,36)|0)|0;s=_(_(_(C[o+-4>>2]+C[o+-20>>2])*_(.5))+s),g=_(_(_(C[o+-8>>2]+C[o+-24>>2])*_(.5))+g),m=_(_(_(C[o>>2]+C[o+-16>>2])*_(.5))+m),o=o+36|0,u=u+-1|0,u;);C[f+24>>2]=m,C[f+20>>2]=s,C[f+16>>2]=g}if(t=r-e|0,R=_(_(1)/_(0|t)),C[f+24>>2]=R*m,C[f+20>>2]=R*s,C[f+16>>2]=R*g,o=e,!n)for(i<<=2,s=C[i+(f+16|0)>>2],u=B(e,36)+16|0,p=i+f|0,k=f+48|0,i=t;a[f+12>>2]=0,l=a[A+12>>2],n=l+u|0,b=n+8|0,C[f+8>>2]=_(C[b>>2]+C[n+-8>>2])*_(.5),C[f+4>>2]=_(C[n+4>>2]+C[n+-12>>2])*_(.5),c=n+-16|0,C[f>>2]=_(C[n>>2]+C[c>>2])*_(.5),C[p>>2]>s&&(F=a[c>>2],W=a[c+4>>2],y=B(o,36),l=l+y|0,Q=a[l+4>>2],a[c>>2]=a[l>>2],a[c+4>>2]=Q,w=a[n>>2],Q=a[n+4>>2],v=l+16|0,h=a[v+4>>2],a[n>>2]=a[v>>2],a[n+4>>2]=h,v=a[b>>2],h=a[b+4>>2],d=l+24|0,G=a[d+4>>2],a[b>>2]=a[d>>2],a[b+4>>2]=G,n=n+16|0,b=a[n>>2],a[n>>2]=a[l+32>>2],n=c+8|0,d=a[n>>2],G=a[n+4>>2],c=l+8|0,l=a[c+4>>2],a[n>>2]=a[c>>2],a[n+4>>2]=l,a[k>>2]=w,a[k+4>>2]=Q,n=k+8|0,a[n>>2]=v,a[n+4>>2]=h,c=f+40|0,n=c,a[n>>2]=d,a[n+4>>2]=G,n=a[A+12>>2]+y|0,a[n+32>>2]=b,a[f+32>>2]=F,a[f+36>>2]=W,b=a[f+36>>2],a[n>>2]=a[f+32>>2],a[n+4>>2]=b,b=a[c+4>>2],l=n+8|0,a[l>>2]=a[c>>2],a[l+4>>2]=b,c=a[k+4>>2],b=n+16|0,a[b>>2]=a[k>>2],a[b+4>>2]=c,c=f+56|0,b=a[c+4>>2],n=n+24|0,a[n>>2]=a[c>>2],a[n+4>>2]=b,o=o+1|0),u=u+36|0,i=i+-1|0,i;);return A=(0|t)/3|0,(0|o)<((-1^A)+r|0)&&(0|o)>(A+e|0)||(o=(t>>1)+e|0),o}(e,r,i,function(A,e,r){var i,f=0,t=_(0),n=_(0),o=_(0),c=_(0),b=0,l=_(0),u=_(0),s=_(0),k=_(0);i=r-e|0;A:{e:{if((0|r)<=(0|e))o=_(0|i);else{for(f=24+(a[A+12>>2]+B(e,36)|0)|0,b=i;t=_(t+_(_(C[f+-4>>2]+C[f+-20>>2])*_(.5))),u=_(u+_(_(C[f+-8>>2]+C[f+-24>>2])*_(.5))),n=_(n+_(_(C[f>>2]+C[f+-16>>2])*_(.5))),f=f+36|0,b=b+-1|0,b;);if(o=_(0|i),(0|r)>(0|e))break e}n=_(0),t=_(0);break A}for(c=_(_(1)/o),s=_(c*n),k=_(c*t),u=_(c*u),b=r-e|0,f=24+(a[A+12>>2]+B(e,36)|0)|0,t=_(0),n=_(0),c=_(0);l=n,n=_(_(_(C[f+-4>>2]+C[f+-20>>2])*_(.5))-k),n=_(l+_(n*n)),l=c,c=_(_(_(C[f+-8>>2]+C[f+-24>>2])*_(.5))-u),c=_(l+_(c*c)),l=t,t=_(_(_(C[f>>2]+C[f+-16>>2])*_(.5))-s),t=_(l+_(t*t)),f=f+36|0,b=b+-1|0,b;);}return o=_(_(1)/_(o+_(-1))),n=_(o*n),t=_(o*t),o=_(o*c),o<n?n<t?2:1:(o<t)<<1}(e,r,i)),a[f+24>>2]=-8388609,a[f+16>>2]=-8388609,a[f+20>>2]=-8388609,a[f+8>>2]=2139095039,a[f>>2]=2139095039,a[f+4>>2]=2139095039,(0|i)<=(0|r))o=_(3.4028234663852886e38),c=_(-3.4028234663852886e38),u=_(-3.4028234663852886e38),l=_(-3.4028234663852886e38),g=_(3.4028234663852886e38),v=_(3.4028234663852886e38);else for(h=f+16|0,k=16+(a[e+12>>2]+B(r,36)|0)|0,o=_(3.4028234663852886e38),c=_(-3.4028234663852886e38),u=_(-3.4028234663852886e38),l=_(-3.4028234663852886e38),g=_(3.4028234663852886e38),v=_(3.4028234663852886e38);m=k+-16|0,b=C[m>>2],v=v>b?b:v,C[f>>2]=v,d=g>C[k+-12>>2]?m:f,g=C[d+4>>2],a[f+4>>2]=a[d+4>>2],m=o>C[k+-8>>2]?m:f,o=C[m+8>>2],a[f+8>>2]=a[m+8>>2],b=C[k>>2],l=l<b?b:l,C[f+16>>2]=l,m=u<C[k+4>>2]?k:h,u=C[m+4>>2],a[f+20>>2]=a[m+4>>2],m=c<C[k+8>>2]?k:h,c=C[m+8>>2],a[f+24>>2]=a[m+8>>2],k=k+36|0,s=s+-1|0,s;);m=n<<4,h=A+16|0,k=m+a[h>>2]|0,s=k,Q=C[A+56>>2],R=C[A+40>>2],b=C[A+24>>2],l=l<b?b:l,l=_(_(Q*_((R<l?R:l)-b))+_(.5)),d=l<_(4294967296)&l>=_(0)?~~l>>>0:0,t[s+6>>1]=d,s=k,l=v<b?b:v,l=_(_(_((R<l?R:l)-b)*Q)+_(.5)),d=l<_(4294967296)&l>=_(0)?~~l>>>0:0,t[s>>1]=d,s=k+10|0,R=C[A- -64>>2],v=C[A+48>>2],l=C[A+32>>2],c=c<l?l:c,c=_(_(R*_((v<c?v:c)-l))+_(.5)),d=c<_(4294967296)&c>=_(0)?~~c>>>0:0,t[s>>1]=d,s=k+8|0,Q=C[A+60>>2],b=C[A+44>>2],c=C[A+28>>2],u=u<c?c:u,u=_(_(Q*_((b<u?b:u)-c))+_(.5)),d=u<_(4294967296)&u>=_(0)?~~u>>>0:0,t[s>>1]=d,s=k,o=o<l?l:o,o=_(_(_((v<o?v:o)-l)*R)+_(.5)),d=o<_(4294967296)&o>=_(0)?~~o>>>0:0,t[s+4>>1]=d,o=g<c?c:g,o=_(_(_((b<o?b:o)-c)*Q)+_(.5)),s=o<_(4294967296)&o>=_(0)?~~o>>>0:0,t[k+2>>1]=s,gA(A,e,r,y),gA(A,e,y,i),a[12+(m+a[h>>2]|0)>>2]=n-a[A>>2]}else g=C[A+48>>2],o=C[A+32>>2],e=a[e+12>>2]+B(r,36)|0,c=C[e+8>>2],c=c<o?o:c,R=C[A- -64>>2],c=_(_(_((g<c?g:c)-o)*R)+_(.5)),s=c<_(4294967296)&c>=_(0)?~~c>>>0:0,b=C[e>>2],u=C[e+4>>2],r=a[A+16>>2]+(n<<4)|0,t[r+4>>1]=s,i=r,l=C[A+44>>2],c=C[A+28>>2],u=u<c?c:u,Q=C[A+60>>2],u=_(_(_((l<u?l:u)-c)*Q)+_(.5)),k=u<_(4294967296)&u>=_(0)?~~u>>>0:0,t[i+2>>1]=k,i=r,v=C[A+40>>2],u=C[A+24>>2],b=b<u?u:b,G=C[A+56>>2],b=_(_(_((v<b?v:b)-u)*G)+_(.5)),A=b<_(4294967296)&b>=_(0)?~~b>>>0:0,t[i>>1]=A,b=C[e+24>>2],b=b<o?o:b,o=_(_(R*_((g<b?g:b)-o))+_(.5)),s=o<_(4294967296)&o>=_(0)?~~o>>>0:0,o=C[e+16>>2],g=C[e+20>>2],t[r+10>>1]=s,A=r+8|0,g=g<c?c:g,c=_(_(Q*_((l<g?l:g)-c))+_(.5)),i=c<_(4294967296)&c>=_(0)?~~c>>>0:0,t[A>>1]=i,A=r,o=o<u?u:o,o=_(_(G*_((v<o?v:o)-u))+_(.5)),i=o<_(4294967296)&o>=_(0)?~~o>>>0:0,t[A+6>>1]=i,a[r+12>>2]=a[e+32>>2];Y=f+32|0}function BA(A,e){var r,i,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0;if(r=Y-16|0,Y=r,function(A,e){var r,i,f=0,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=0,k=0,v=0;if(r=Y-32|0,a[r+24>>2]=-8388609,a[r+16>>2]=-8388609,a[r+20>>2]=-8388609,a[r+8>>2]=2139095039,a[r>>2]=2139095039,a[r+4>>2]=2139095039,i=a[e+4>>2],(0|i)<1)o=_(3.4028234663852886e38),c=_(-3.4028234663852886e38),b=_(-3.4028234663852886e38),t=_(-3.4028234663852886e38),l=_(3.4028234663852886e38),n=_(3.4028234663852886e38);else for(s=r+16|0,e=a[e+12>>2]+16|0,o=_(3.4028234663852886e38),c=_(-3.4028234663852886e38),b=_(-3.4028234663852886e38),t=_(-3.4028234663852886e38),l=_(3.4028234663852886e38),n=_(3.4028234663852886e38);f=e+-16|0,u=C[f>>2],n=n>u?u:n,C[r>>2]=n,k=l>C[e+-12>>2]?f:r,l=C[k+4>>2],a[r+4>>2]=a[k+4>>2],f=o>C[e+-8>>2]?f:r,o=C[f+8>>2],a[r+8>>2]=a[f+8>>2],u=C[e>>2],t=t<u?u:t,C[r+16>>2]=t,f=b<C[e+4>>2]?e:s,b=C[f+4>>2],a[r+20>>2]=a[f+4>>2],f=c<C[e+8>>2]?e:s,c=C[f+8>>2],a[r+24>>2]=a[f+8>>2],e=e+36|0,v=v+1|0,(0|v)<(0|i););a[A+68>>2]=0,a[A+52>>2]=0,c=_(c+_(1)),C[A+48>>2]=c,b=_(b+_(1)),C[A+44>>2]=b,t=_(t+_(1)),C[A+40>>2]=t,a[A+36>>2]=0,o=_(o-_(1)),C[A+32>>2]=o,l=_(l-_(1)),C[A+28>>2]=l,n=_(n-_(1)),C[A+24>>2]=n,C[A- -64>>2]=_(65535)/_(c-o),C[A+60>>2]=_(65535)/_(b-l),C[A+56>>2]=_(65535)/_(t-n)}(A,e),a[A>>2]=0,t=a[A+8>>2],c=a[e+4>>2],i=c<<1,(0|t)<(0|i)){if(a[A+12>>2]<(0|i)){if(c?(k=dA(c<<5),n=a[A+8>>2]):n=t,(0|n)>=1)for(;u=a[A+16>>2]+b|0,s=a[u+4>>2],l=b+k|0,a[l>>2]=a[u>>2],a[l+4>>2]=s,u=u+8|0,s=a[u+4>>2],l=l+8|0,a[l>>2]=a[u>>2],a[l+4>>2]=s,b=b+16|0,n=n+-1|0,n;);n=a[A+16>>2],n&&(o[A+20|0]&&CA(n),a[A+16>>2]=0),a[A+16>>2]=k,a[A+12>>2]=i,f[A+20|0]=1}for(b=t<<4,n=t-(c<<1)|0;c=a[r+4>>2],t=a[A+16>>2]+b|0,a[t>>2]=a[r>>2],a[t+4>>2]=c,a[t+8>>2]=a[r+8>>2],a[t+12>>2]=0,b=b+16|0,t=n+1|0,c=t>>>0>=n>>>0,n=t,c;);c=a[e+4>>2]}a[A+8>>2]=i,gA(A,e,0,c),Y=r+16|0}function _A(A,e,r){var i,t=_(0),n=_(0),c=_(0),b=_(0),l=0,u=0,s=_(0),k=0,d=0,g=0,B=0,m=0,R=0,Q=_(0),h=0,G=_(0),y=0,p=0,F=0,W=0,w=0,D=0,E=0;if(Q=C[A- -64>>2],c=C[A+48>>2],t=C[A+32>>2],n=C[e+24>>2],n=n<t?t:n,n=_(_(Q*_((c<n?c:n)-t))+_(.5)),h=n<_(4294967296)&n>=_(0)?~~n>>>0:0,G=C[A+60>>2],s=C[A+44>>2],n=C[A+28>>2],b=C[e+20>>2],b=b<n?n:b,b=_(_(G*_((s<b?s:b)-n))+_(.5)),y=b<_(4294967296)&b>=_(0)?~~b>>>0:0,b=C[e+8>>2],b=b<t?t:b,t=_(_(_((c<b?c:b)-t)*Q)+_(.5)),d=t<_(4294967296)&t>=_(0)?~~t>>>0:0,t=C[e+4>>2],t=t<n?n:t,t=_(_(_((s<t?s:t)-n)*G)+_(.5)),p=t<_(4294967296)&t>=_(0)?~~t>>>0:0,s=C[A+56>>2],n=C[A+40>>2],t=C[A+24>>2],c=C[e+16>>2],c=c<t?t:c,c=_(_(s*_((n<c?n:c)-t))+_(.5)),F=c<_(4294967296)&c>=_(0)?~~c>>>0:0,c=C[e>>2],c=c<t?t:c,t=_(_(_((n<c?n:c)-t)*s)+_(.5)),W=t<_(4294967296)&t>=_(0)?~~t>>>0:0,i=a[A>>2],(0|i)>=1)for(e=0;;){if(w=e<<4,l=w+a[A+16>>2]|0,v[l+4>>1]<=h>>>0&&!(v[l>>1]>F>>>0|v[l+6>>1]<W>>>0|v[l+8>>1]<p>>>0|v[l+2>>1]>y>>>0)){if(g=a[l+12>>2],D=(0|g)>-1,l=v[l+10>>1],E=l>>>0>=d>>>0,!((0|g)<0|l>>>0<d>>>0)){if(u=a[r+4>>2],(0|u)==a[r+8>>2]&&(k=u?u<<1:1,!((0|u)>=(0|k)))){k?(l=dA(k<<2),u=a[r+4>>2]):l=0,B=a[r+12>>2];A:{if((0|u)>=1)for(m=l,R=B;a[m>>2]=a[R>>2],m=m+4|0,R=R+4|0,u=u+-1|0,u;);else if(!B)break A;o[r+16|0]&&CA(B),a[r+12>>2]=0,u=a[r+4>>2]}a[r+12>>2]=l,f[r+16|0]=1,a[r+8>>2]=k}a[a[r+12>>2]+(u<<2)>>2]=g,a[r+4>>2]=a[r+4>>2]+1}}else D=a[l+12>>2]>-1,E=0;if(e=D||E?e+1|0:e-a[12+(a[A+16>>2]+w|0)>>2]|0,!((0|e)<(0|i)))break}}function mA(A,e,r,i,t){var n;n=Y-112|0,Y=n,!a[A>>2]|!a[r>>2]||(function(A,e,r){var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),Y=_(0),V=_(0),N=_(0);g=C[e+52>>2],B=C[e+56>>2],R=C[r+52>>2],Q=C[r+56>>2],o=C[e+20>>2],c=C[e+36>>2],i=C[r+20>>2],f=C[r+36>>2],t=C[r+24>>2],b=C[e+24>>2],h=C[r+40>>2],l=C[e+40>>2],N=C[e+48>>2],G=C[r+48>>2],u=C[e+4>>2],y=C[r+4>>2],p=C[r+8>>2],s=C[e+8>>2],n=C[r+32>>2],k=C[e+32>>2],F=C[r>>2],v=C[e>>2],W=C[r+16>>2],d=C[e+16>>2],a[A+60>>2]=0,a[A+44>>2]=0,a[A+28>>2]=0,a[A+12>>2]=0,w=_(_(_(v*F)+_(d*W))+_(k*n)),C[A+16>>2]=w,D=_(_(_(s*p)+_(b*t))+_(l*h)),C[A+56>>2]=D,E=_(_(_(s*y)+_(b*i))+_(l*f)),C[A+52>>2]=E,Z=_(_(_(s*F)+_(b*W))+_(l*n)),C[A+48>>2]=Z,Y=_(_(_(u*p)+_(o*t))+_(c*h)),C[A+40>>2]=Y,V=_(_(_(u*y)+_(o*i))+_(c*f)),C[A+36>>2]=V,n=_(_(_(u*F)+_(o*W))+_(c*n)),C[A+32>>2]=n,t=_(_(_(v*p)+_(d*t))+_(k*h)),C[A+24>>2]=t,f=_(_(_(v*y)+_(d*i))+_(k*f)),C[A+20>>2]=f,C[A+64>>2]=_(m(w))+_(9.999999974752427e-7),i=_(-N),C[A+8>>2]=_(_(_(s*i)-_(b*g))-_(l*B))+_(_(_(s*G)+_(b*R))+_(l*Q)),C[A+4>>2]=_(_(_(u*i)-_(o*g))-_(c*B))+_(_(_(u*G)+_(o*R))+_(c*Q)),C[A>>2]=_(_(_(v*i)-_(d*g))-_(k*B))+_(_(_(v*G)+_(d*R))+_(k*Q)),C[A+104>>2]=_(m(D))+_(9.999999974752427e-7),C[A+100>>2]=_(m(E))+_(9.999999974752427e-7),C[A+96>>2]=_(m(Z))+_(9.999999974752427e-7),C[A+88>>2]=_(m(Y))+_(9.999999974752427e-7),C[A+84>>2]=_(m(V))+_(9.999999974752427e-7),C[A+80>>2]=_(m(n))+_(9.999999974752427e-7),C[A+72>>2]=_(m(t))+_(9.999999974752427e-7),C[A+68>>2]=_(m(f))+_(9.999999974752427e-7)}(n,e,i),function A(e,r,i,t,n,c,b){var l=0,u=0,s=0,k=0,d=0,g=0,B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=0;u=Y+-64|0,Y=u,d=n<<4,l=d+a[e+16>>2]|0,k=v[l>>1],s=v[l+2>>1],g=v[l+4>>1],a[u+44>>2]=0,B=C[e- -64>>2],R=C[e+32>>2],C[u+40>>2]=_(_(g>>>0)/B)+R,Q=C[e+60>>2],h=C[e+28>>2],C[u+36>>2]=_(_(s>>>0)/Q)+h,G=C[e+56>>2],y=C[e+24>>2],C[u+32>>2]=_(_(k>>>0)/G)+y,k=v[l+6>>1],s=v[l+10>>1],l=v[l+8>>1],a[u+60>>2]=0,C[u+52>>2]=h+_(_(l>>>0)/Q),C[u+56>>2]=R+_(_(s>>>0)/B),C[u+48>>2]=y+_(_(k>>>0)/G),k=c<<4,l=k+a[r+16>>2]|0,s=v[l>>1],g=v[l+2>>1],p=v[l+4>>1],a[u+12>>2]=0,B=C[r- -64>>2],R=C[r+32>>2],C[u+8>>2]=_(_(p>>>0)/B)+R,Q=C[r+60>>2],h=C[r+28>>2],C[u+4>>2]=_(_(g>>>0)/Q)+h,G=C[r+56>>2],y=C[r+24>>2],C[u>>2]=_(_(s>>>0)/G)+y,s=v[l+6>>1],g=v[l+10>>1],l=v[l+8>>1],a[u+28>>2]=0,C[u+20>>2]=h+_(_(l>>>0)/Q),C[u+24>>2]=R+_(_(g>>>0)/B),C[u+16>>2]=y+_(_(s>>>0)/G);A:if(function(A,e,r,i){var f=_(0),t=_(0),n=_(0),a=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0);e:{if(a=C[e+16>>2],t=_(_(a+C[e>>2])*_(.5)),G=C[r+16>>2],o=C[e+20>>2],f=_(_(o+C[e+4>>2])*_(.5)),y=C[r+20>>2],c=C[e+24>>2],n=_(_(c+C[e+8>>2])*_(.5)),p=C[r+24>>2],b=C[A+16>>2],l=_(_(b+C[A>>2])*_(.5)),s=_(_(C[r>>2]+_(_(_(t*G)+_(f*y))+_(n*p)))-l),b=_(b-l),a=_(a-t),v=C[r+64>>2],o=_(o-f),d=C[r+68>>2],c=_(c-n),g=C[r+72>>2],!(_(m(s))>_(b+_(_(_(a*v)+_(o*d))+_(c*g)))||(F=C[r+32>>2],W=C[r+36>>2],w=C[r+40>>2],u=C[A+20>>2],k=_(_(u+C[A+4>>2])*_(.5)),l=_(_(C[r+4>>2]+_(_(_(t*F)+_(f*W))+_(n*w)))-k),u=_(u-k),k=C[r+80>>2],B=C[r+84>>2],R=C[r+88>>2],_(m(l))>_(u+_(_(_(a*k)+_(o*B))+_(c*R)))||(D=C[r+48>>2],E=C[r+52>>2],Z=C[r+56>>2],t=_(C[r+8>>2]+_(_(_(t*D)+_(f*E))+_(n*Z))),f=C[A+24>>2],n=_(_(f+C[A+8>>2])*_(.5)),t=_(t-n),f=_(f-n),n=C[r+96>>2],Q=C[r+100>>2],h=C[r+104>>2],_(m(t))>_(f+_(_(_(a*n)+_(o*Q))+_(c*h)))|_(m(_(_(_(s*G)+_(l*F))+_(t*D))))>_(a+_(_(_(b*v)+_(u*k))+_(f*n)))|_(m(_(_(_(s*y)+_(l*W))+_(t*E))))>_(o+_(_(_(b*d)+_(u*B))+_(f*Q))))))){if(A=_(m(_(_(_(s*p)+_(l*w))+_(t*Z))))>_(c+_(_(_(b*g)+_(u*R))+_(f*h))),r=1^A,!i|A)break e;if(!(!!(_(m(_(_(t*W)-_(l*E))))>_(_(_(_(u*Q)+_(f*B))+_(a*g))+_(c*v)))|_(m(_(_(t*F)-_(l*D))))>_(_(_(_(u*n)+_(f*k))+_(o*g))+_(c*d))|_(m(_(_(t*w)-_(l*Z))))>_(_(_(_(u*h)+_(f*R))+_(a*d))+_(o*v))|_(m(_(_(s*D)-_(t*G))))>_(_(_(_(b*n)+_(f*v))+_(o*R))+_(c*B))||_(m(_(_(s*E)-_(t*y))))>_(_(_(_(b*Q)+_(f*d))+_(a*R))+_(c*k))|_(m(_(_(s*Z)-_(t*p))))>_(_(_(_(b*h)+_(f*g))+_(a*B))+_(o*k))|_(m(_(_(l*G)-_(s*F))))>_(_(_(_(b*k)+_(u*v))+_(o*h))+_(c*Q))|_(m(_(_(l*y)-_(s*W))))>_(_(_(_(b*B)+_(u*d))+_(a*h))+_(c*n)))){if(r=0,_(m(_(_(l*p)-_(s*w))))>_(_(_(_(b*R)+_(u*g))+_(a*Q))+_(o*n)))break e;return 1}}r=0}return r}(u+32|0,u,t,b))if(l=a[12+(a[r+16>>2]+k|0)>>2],k=a[12+(a[e+16>>2]+d|0)>>2],(0|k)>=0){if((0|l)>=0){if(t=a[i+4>>2],(0|t)==a[i+8>>2]&&(d=t?t<<1:1,!((0|t)>=(0|d)))){d?(n=dA(d<<3),t=a[i+4>>2]):n=0,c=a[i+12>>2];e:{if((0|t)>=1)for(r=c,e=n,b=t;s=a[r+4>>2],a[e>>2]=a[r>>2],a[e+4>>2]=s,r=r+8|0,e=e+8|0,b=b+-1|0,b;);else if(!c)break e;o[i+16|0]&&(CA(c),t=a[i+4>>2]),a[i+12>>2]=0}a[i+12>>2]=n,f[i+16|0]=1,a[i+8>>2]=d}a[i+4>>2]=t+1,e=a[i+12>>2]+(t<<3)|0,a[e+4>>2]=l,a[e>>2]=k;break A}b=c+1|0,A(e,r,i,t,n,b,0),s=e,e=a[12+(a[r+16>>2]+(b<<4)|0)>>2],A(s,r,i,t,n,(0|e)>-1?c+2|0:b-e|0,0)}else b=n+1|0,(0|l)>=0?(A(e,r,i,t,b,c,0),s=e,e=a[12+(a[e+16>>2]+(b<<4)|0)>>2],A(s,r,i,t,(0|e)>-1?n+2|0:b-e|0,c,0)):(l=c+1|0,A(e,r,i,t,b,l,0),c=c+2|0,d=l<<4,k=a[12+(d+a[r+16>>2]|0)>>2],A(e,r,i,t,b,(0|k)>-1?c:l-k|0,0),n=n+2|0,k=b<<4,s=a[12+(k+a[e+16>>2]|0)>>2],A(e,r,i,t,(0|s)>-1?n:b-s|0,l,0),s=e,e=a[12+(k+a[e+16>>2]|0)>>2],n=(0|e)>-1?n:b-e|0,e=a[12+(d+a[r+16>>2]|0)>>2],A(s,r,i,t,n,(0|e)>-1?c:l-e|0,0));Y=u- -64|0}(A,r,t,n,0,0,1)),Y=n+112|0}function RA(A,e,r,i,f,t){var n=_(0),o=_(0),b=_(0),l=_(0),u=0,k=0,v=0,d=0,g=0,B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0);Qt[a[a[A>>2]+8>>2]](A,e,f,t),n=C[r+8>>2],o=C[r+4>>2],l=C[f+8>>2],e=a[f+8>>2],B=C[f+4>>2],u=a[f+4>>2],m=C[f>>2],k=a[f>>2],R=C[t+8>>2],v=a[t+8>>2],Q=C[t+4>>2],d=a[t+4>>2],h=C[t>>2],g=a[t>>2],b=C[r>>2],b>_(0)?(s(_(b+h)),g=c(0)):(s(_(b+m)),k=c(0)),o>_(0)?(s(_(o+Q)),d=c(0)):(s(_(o+B)),u=c(0)),n>_(0)?(s(_(n+R)),v=c(0)):(s(_(n+l)),e=c(0)),n=C[i+8>>2],o=C[i>>2],b=C[i+4>>2],l=_(Qt[a[a[A>>2]+16>>2]](A)),a[f+12>>2]=0,a[f+8>>2]=e,a[f+4>>2]=u,a[f>>2]=k,a[t+12>>2]=0,a[t+8>>2]=v,a[t+4>>2]=d,a[t>>2]=g,n=_(l*_(y(_(_(_(o*o)+_(b*b))+_(n*n))))),C[f>>2]=C[f>>2]-n,C[f+4>>2]=C[f+4>>2]-n,C[f+8>>2]=C[f+8>>2]-n,C[t>>2]=n+C[t>>2],C[t+4>>2]=n+C[t+4>>2],C[t+8>>2]=n+C[t+8>>2]}function QA(A,e,r){var i,f;return A|=0,e|=0,r|=0,i=0|Qt[a[a[r>>2]+40>>2]](r,A),f=0|Qt[a[a[r>>2]+28>>2]](r,i),a[e>>2]=f,f&&Qt[a[a[r>>2]+48>>2]](r,i),A=a[A+4>>2],a[e+8>>2]=0,a[e+4>>2]=A,5872}function hA(A,e,r){A|=0,e|=0,r|=0;var i,f=_(0),t=0,n=_(0),o=_(0),c=0,b=_(0),l=0,u=_(0),s=_(0),k=0,v=_(0),d=_(0),g=0;i=Y-48|0,Y=i;A:{e:if(t=a[e+4>>2],!(t>>>0>13)){switch(t-1|0){case 7:a[A>>2]=0,a[A+4>>2]=0,A=A+8|0,a[A>>2]=0,a[A+4>>2]=0;break A;default:a[A+12>>2]=0,f=C[e+32>>2],C[A>>2]=C[r>>2]>=_(0)?f:_(-f),f=C[e+40>>2],C[A+8>>2]=C[r+8>>2]>=_(0)?f:_(-f),f=C[e+36>>2],C[A+4>>2]=C[r+4>>2]>=_(0)?f:_(-f);break A;case 0:a[A+12>>2]=0,f=C[r>>2],o=C[r+4>>2],n=C[r+8>>2],b=_(_(_(f*C[e+76>>2])+_(o*C[e+80>>2]))+_(n*C[e+84>>2])),u=_(_(_(f*C[e+92>>2])+_(o*C[e+96>>2]))+_(n*C[e+100>>2])),r=e+60|0,f=_(_(_(f*C[r>>2])+_(o*C[e- -64>>2]))+_(n*C[e+68>>2])),e=((f<b?b<u?2:1:(f<u)<<1)<<4)+r|0,a[A+8>>2]=a[e+8>>2],r=a[e+4>>2],a[A>>2]=a[e>>2],a[A+4>>2]=r;break A;case 12:c=e+40|0,l=a[c+4>>2],t=i+40|0,a[t>>2]=a[c>>2],a[t+4>>2]=l,t=a[e+36>>2],a[i+32>>2]=a[e+32>>2],a[i+36>>2]=t,t=0,a[i+28>>2]=0,a[i+16>>2]=a[r>>2],o=C[r+4>>2],a[i+20>>2]=a[r+4>>2],f=C[r+8>>2],a[i+24>>2]=a[r+8>>2],r=1,c=a[e+56>>2],e=c+-1|0,l=2,e>>>0>1||(e-1?(r=0,t=1,l=2):(f=o,r=0,t=2,l=1)),e=l,o=C[(i+32|0)+(c<<2)>>2],c=r<<2,b=C[(c|i+32)>>2],u=C[(c|i+16)>>2],s=_(y(_(_(u*u)+_(f*f)))),s==_(0)?(C[(r<<2|i)>>2]=b,r=t<<2,C[r+i>>2]=C[r+(i+16|0)>>2]<_(0)?_(-o):o):(n=_(b/s),C[(r<<2|i)>>2]=u*n,r=t<<2,C[r+i>>2]=C[r+(i+16|0)>>2]<_(0)?_(-o):o,n=_(f*n)),C[(e<<2)+i>>2]=n,a[A+12>>2]=0,a[A>>2]=a[i>>2],e=a[i+8>>2],a[A+4>>2]=a[i+4>>2],a[A+8>>2]=e;break A;case 9:c=e,g=a[e+56>>2],e=g<<2,s=C[32+(c+e|0)>>2],f=C[r>>2],o=C[r+4>>2],n=C[r+8>>2],b=_(_(_(f*f)+_(o*o))+_(n*n)),b<_(1.4210854715202004e-14)?(b=_(0),n=_(1)):(u=n,n=_(_(1)/_(y(b))),u=_(u*n),b=_(o*n),n=_(f*n)),a[i+40>>2]=0,a[i+44>>2]=0,a[i+32>>2]=0,a[i+36>>2]=0,C[e+(i+32|0)>>2]=s,f=_(-0xde0b6b000000000),e=0,r=0,t=0,c=a[i+32>>2],l=a[i+36>>2],k=a[i+40>>2],o=_(_(_(n*C[i+32>>2])+_(b*C[i+36>>2]))+_(u*C[i+40>>2])),o>_(-0xde0b6b000000000)&&(t=k,r=l,f=o,e=c),a[i+40>>2]=0,a[i+44>>2]=0,a[i+32>>2]=0,a[i+36>>2]=0,C[(i+32|0)+(g<<2)>>2]=-s,c=a[i+32>>2],l=a[i+36>>2],k=a[i+40>>2],_(_(_(n*C[i+32>>2])+_(b*C[i+36>>2]))+_(u*C[i+40>>2]))>f&&(t=k,r=l,e=c),a[A+12>>2]=0,a[A+8>>2]=t,a[A+4>>2]=r,a[A>>2]=e;break A;case 4:if(o=C[e+24>>2],n=C[e+20>>2],b=C[e+16>>2],c=a[e+96>>2],k=a[e+100>>2],(0|k)<1)t=-1;else for(u=_(C[r+8>>2]*o),s=_(C[r+4>>2]*n),d=_(C[r>>2]*b),r=0,t=-1,f=_(-3.4028234663852886e38),e=c;v=_(_(_(d*C[e>>2])+_(s*C[e+4>>2]))+_(u*C[e+8>>2])),l=v>f,f=l?v:f,t=l?r:t,e=e+16|0,r=r+1|0,(0|k)!=(0|r););a[A+12>>2]=0,e=c+(t<<4)|0,C[A+8>>2]=o*C[e+8>>2],C[A+4>>2]=n*C[e+4>>2],C[A>>2]=b*C[e>>2];break A;case 1:case 2:case 5:case 6:case 8:case 10:case 11:break e;case 3:}if(o=C[e+24>>2],n=C[e+20>>2],b=C[e+16>>2],c=a[e+108>>2],k=a[e+100>>2],(0|k)<1)t=-1;else for(u=_(C[r+8>>2]*o),s=_(C[r+4>>2]*n),d=_(C[r>>2]*b),r=0,t=-1,f=_(-3.4028234663852886e38),e=c;v=_(_(_(d*C[e>>2])+_(s*C[e+4>>2]))+_(u*C[e+8>>2])),l=v>f,f=l?v:f,t=l?r:t,e=e+16|0,r=r+1|0,(0|k)!=(0|r););a[A+12>>2]=0,e=c+(t<<4)|0,C[A+8>>2]=o*C[e+8>>2],C[A+4>>2]=n*C[e+4>>2],C[A>>2]=b*C[e>>2];break A}Qt[a[a[e>>2]+68>>2]](A,e,r)}Y=i+48|0}function GA(A){var e=0;A:if(e=a[A+4>>2],!(e>>>0>13)){switch(e-2|0){case 6:return _(C[A+32>>2]*C[A+16>>2]);case 0:case 1:case 4:case 5:case 7:case 10:break A}return C[A+48>>2]}return _(Qt[a[a[A>>2]+48>>2]](A))}function yA(A){return 12}function pA(A){A|=0,CA(A)}function FA(A,e){var r;A|=0,e|=0,a[A>>2]=0,a[A+4>>2]=0,r=A+8|0,a[r>>2]=0,a[r+4>>2]=0,a[(a[e+56>>2]<<2)+A>>2]=1065353216}function WA(A,e){e=_(e)}function wA(A){return 60}function DA(A){var e;a[A+12>>2]=-1,a[A+4>>2]=35,a[A+8>>2]=0,a[A>>2]=5928,a[A+48>>2]=1025758986,e=A+24|0,a[e>>2]=1065353216,a[e+4>>2]=0,a[A+16>>2]=1065353216,a[A+20>>2]=1065353216,a[A>>2]=6924}function EA(A,e){A|=0,e|=0;var r=_(0),i=_(0),f=_(0);r=C[e>>2],i=C[e+4>>2],f=C[e+8>>2],a[A+28>>2]=0,C[A+24>>2]=m(f),C[A+20>>2]=m(i),C[A+16>>2]=m(r)}function ZA(A){A|=0;var e=0,r=0,i=0,t=0,n=0,c=0;if(a[A>>2]=7060,e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+56>>2]=0,a[A+48>>2]=0,a[A+52>>2]=0,f[A+60|0]=1,r=a[A+28>>2],(0|r)>=1)for(i=8;e=a[A+36>>2]+i|0,c=e+-4|0,t=e+4|0,n=a[t>>2],n&&(o[e+8|0]&&CA(n),a[t>>2]=0),a[c>>2]=0,a[t>>2]=0,a[e>>2]=0,f[e+8|0]=1,i=i+36|0,r=r+-1|0,r;);return e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+36>>2]=0,a[A+28>>2]=0,a[A+32>>2]=0,f[A+40|0]=1,e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=0,a[A+8>>2]=0,a[A+12>>2]=0,f[A+20|0]=1,0|A}function YA(A){var e,r,i=_(0),f=_(0),t=_(0),n=0,o=0,c=0,b=0;for(e=a[A+28>>2],r=(0|e)<1;;){A:if(!(o>>>0>7)){switch(o-1|0){default:i=_(C[A+88>>2]+C[A+72>>2]),f=_(C[A+84>>2]+C[A+68>>2]),t=_(C[A+80>>2]+C[A+64>>2]);break A;case 0:i=_(C[A+72>>2]-C[A+88>>2]),f=_(C[A+84>>2]+C[A+68>>2]),t=_(C[A+80>>2]+C[A+64>>2]);break A;case 1:i=_(C[A+88>>2]+C[A+72>>2]),f=_(C[A+68>>2]-C[A+84>>2]),t=_(C[A+80>>2]+C[A+64>>2]);break A;case 2:i=_(C[A+72>>2]-C[A+88>>2]),f=_(C[A+68>>2]-C[A+84>>2]),t=_(C[A+80>>2]+C[A+64>>2]);break A;case 3:i=_(C[A+88>>2]+C[A+72>>2]),f=_(C[A+84>>2]+C[A+68>>2]),t=_(C[A+64>>2]-C[A+80>>2]);break A;case 4:i=_(C[A+72>>2]-C[A+88>>2]),f=_(C[A+84>>2]+C[A+68>>2]),t=_(C[A+64>>2]-C[A+80>>2]);break A;case 5:i=_(C[A+88>>2]+C[A+72>>2]),f=_(C[A+68>>2]-C[A+84>>2]),t=_(C[A+64>>2]-C[A+80>>2]);break A;case 6:}i=_(C[A+72>>2]-C[A+88>>2]),f=_(C[A+68>>2]-C[A+84>>2]),t=_(C[A+64>>2]-C[A+80>>2])}A:{if(!r)for(n=a[A+36>>2]+20|0,b=0,c=0;;){if(_(C[n+12>>2]+_(_(_(t*C[n>>2])+_(f*C[n+4>>2]))+_(i*C[n+8>>2])))>_(0))break A;if(n=n+36|0,c=c+1|0,!((0|c)<(0|e)))break}if(b=1,o=o+1|0,8!=(0|o))continue}break}return b}function VA(A){var e,r=0,i=_(0),n=0,b=0,l=_(0),u=0,k=_(0),g=0,R=_(0),Q=0,h=0,G=_(0),p=_(0),F=0,W=0,w=0,D=_(0),E=_(0),Z=_(0),V=_(0),N=0,I=0,J=0,x=0,U=0,M=0,S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0);if(e=Y-96|0,Y=e,a[A+64>>2]=0,a[A+68>>2]=0,f[e+52|0]=1,a[e+48>>2]=0,f[e+72|0]=1,r=e+40|0,a[r>>2]=0,a[r+4>>2]=0,a[e+68>>2]=0,f[e+92|0]=1,r=e+60|0,a[r>>2]=0,a[r+4>>2]=0,a[e+88>>2]=0,r=e+80|0,a[r>>2]=0,a[r+4>>2]=0,r=A+72|0,a[r>>2]=0,a[r+4>>2]=0,a[e+28>>2]=0,f[e+32|0]=1,a[e+20>>2]=0,a[e+24>>2]=0,F=a[A+28>>2],!((0|F)<1)){for(;;){if(n=a[A+36>>2],N=B(w,36),I=a[4+(n+N|0)>>2],(0|I)>=1){for(U=0;;){r=a[12+(n+N|0)>>2],g=a[r+(U<<2)>>2],t[e+8>>1]=g,U=U+1|0,F=(0|I)==(0|U),b=a[r+((F?0:U)<<2)>>2],t[e+10>>1]=b,M=0,r=b<<16>>16,u=g<<16>>16,(0|r)>(0|u)&&(t[e+10>>1]=g,t[e+8>>1]=b,u=b,r=g),J=r<<16,h=u<<16>>16,b=J+h&a[e+64>>2]+-1;A:if(!(b>>>0>=d[e+20>>2])&&(n=a[a[e+28>>2]+(b<<2)>>2],-1!=(0|n))){for(Q=a[e+48>>2],g=a[e+88>>2];;){if(x=n<<2,b=x+g|0,v[b+2>>1]!=(65535&r)||v[b>>1]!=(65535&u)){if(n=a[Q+x>>2],-1!=(0|n))continue;break A}break}M=x+a[e+68>>2]|0}r=a[A+16>>2],b=r+(J>>16<<4)|0,r=r+(h<<4)|0,i=_(C[b+8>>2]-C[r+8>>2]),R=i,l=_(C[b>>2]-C[r>>2]),k=_(C[b+4>>2]-C[r+4>>2]),i=_(_(1)/_(y(_(_(_(l*l)+_(k*k))+_(i*i))))),R=_(R*i),G=_(k*i),p=_(l*i),u=a[A+48>>2];A:{if((0|u)>=1)for(n=a[A+56>>2],W=0;;){if(l=C[n+8>>2],i=C[n>>2],k=C[n+4>>2],(+_(m(_(l-R)))>1e-6^1?!(+_(m(_(i-p)))>1e-6|+_(m(_(k-G)))>1e-6):0)|(+_(m(_(R+l)))>1e-6^1?!(+_(m(_(p+i)))>1e-6|+_(m(_(G+k)))>1e-6):0))break A;if(n=n+16|0,W=W+1|0,!((0|W)<(0|u)))break}if(a[A+52>>2]==(0|u)&&(Q=u?u<<1:1,!((0|u)>=(0|Q)))){if(Q?(h=dA(Q<<4),u=a[A+48>>2]):h=0,(0|u)>=1)for(n=0;b=a[A+56>>2]+n|0,r=a[b+4>>2],g=n+h|0,a[g>>2]=a[b>>2],a[g+4>>2]=r,b=b+8|0,r=a[b+4>>2],g=g+8|0,a[g>>2]=a[b>>2],a[g+4>>2]=r,n=n+16|0,u=u+-1|0,u;);r=a[A+56>>2],r&&(o[A+60|0]&&CA(r),a[A+56>>2]=0),a[A+56>>2]=h,f[A+60|0]=1,a[A+52>>2]=Q,u=a[A+48>>2]}r=a[A+56>>2]+(u<<4)|0,a[r+12>>2]=0,C[r+8>>2]=R,C[r+4>>2]=G,C[r>>2]=p,a[A+48>>2]=a[A+48>>2]+1}if(M?t[M+2>>1]=w:(t[e>>1]=w,t[e+2>>1]=65535,NA(e+16|0,e+8|0,e)),F)break;n=a[A+36>>2]}F=a[A+28>>2]}if(w=w+1|0,!((0|w)<(0|F)))break}if(x=0,!((0|F)<1))for(x=(0|F)>0,N=a[A+16>>2],g=a[A+36>>2],w=0;;){if(r=g+B(w,36)|0,I=a[r+4>>2],(0|I)>=3)for(J=a[r+12>>2],n=J+4|0,h=N+(a[J>>2]<<4)|0,b=h+8|0,r=h+4|0,D=C[A+72>>2],E=C[A+68>>2],Z=C[A+64>>2],W=2;Q=N+(a[n>>2]<<4)|0,j=C[Q+8>>2],u=N+(a[J+((0|W)%(0|I)<<2)>>2]<<4)|0,O=C[u+8>>2],S=C[h>>2],H=C[Q>>2],z=_(S-H),X=C[r>>2],P=C[u+4>>2],R=_(X-P),G=C[Q+4>>2],i=_(X-G),p=C[u>>2],l=_(S-p),K=_(_(z*R)-_(i*l)),T=C[b>>2],k=_(T-O),L=_(i*k),i=_(T-j),R=_(L-_(i*R)),i=_(_(i*l)-_(z*k)),i=_(_(y(_(_(K*K)+_(_(R*R)+_(i*i)))))*_(.5)),D=_(D+_(_(_(_(T+j)+O)*_(.3333333432674408))*i)),C[A+72>>2]=D,E=_(E+_(_(_(P+_(X+G))*_(.3333333432674408))*i)),C[A+68>>2]=E,Z=_(Z+_(_(_(p+_(S+H))*_(.3333333432674408))*i)),C[A+64>>2]=Z,V=_(V+i),n=n+4|0,W=W+1|0,(0|I)!=(0|W););if(w=w+1|0,(0|w)==(0|F))break}}if(a[A+96>>2]=2139095039,i=_(_(1)/V),R=_(i*C[A+64>>2]),C[A+64>>2]=R,G=_(i*C[A+68>>2]),C[A+68>>2]=G,p=_(i*C[A+72>>2]),C[A+72>>2]=p,l=_(3.4028234663852886e38),k=_(3.4028234663852886e38),x)for(n=a[A+36>>2]+20|0;i=_(m(_(C[n+12>>2]+_(_(_(R*C[n>>2])+_(G*C[n+4>>2]))+_(p*C[n+8>>2]))))),i<k&&(C[A+96>>2]=i,k=i),n=n+36|0,F=F+-1|0,F;);if(r=a[A+8>>2],(0|r)<1)R=_(-3.4028234663852886e38),D=_(3.4028234663852886e38),E=_(-3.4028234663852886e38),Z=_(-3.4028234663852886e38),V=_(3.4028234663852886e38);else for(n=a[A+16>>2],Z=_(-3.4028234663852886e38),W=0,V=_(3.4028234663852886e38),E=_(-3.4028234663852886e38),R=_(-3.4028234663852886e38),D=_(3.4028234663852886e38);i=C[n+8>>2],Z=i>Z?i:Z,D=i<D?i:D,i=C[n+4>>2],E=i>E?i:E,l=i<l?i:l,i=C[n>>2],R=i>R?i:R,V=i<V?i:V,n=n+16|0,W=W+1|0,(0|W)<(0|r););a[A+128>>2]=0,G=_(Z-D),C[A+124>>2]=G,p=_(E-l),C[A+120>>2]=p,i=_(R-V),C[A+116>>2]=i,a[A+112>>2]=0,C[A+108>>2]=D+Z,C[A+104>>2]=l+E,C[A+100>>2]=R+V,b=i<p?p<G?2:1:(i<G)<<1,r=b<<2,i=C[r+(A+116|0)>>2],l=_(k/_(1.7320507764816284)),C[A+88>>2]=l,C[A+80>>2]=l,C[A+84>>2]=l,r=r+(A+80|0)|0,k=_(i*_(.5)),C[r>>2]=k,i=_(_(k-l)*_(.0009765625)),n=1024;A:{e:{for(;;){if(YA(A))break e;if(k=_(k-i),C[r>>2]=k,n=n+-1|0,!n)break}C[A+84>>2]=l,C[A+88>>2]=l,C[A+80>>2]=l;break A}if(r=A+80|0,b=1<<b&3,Q=r+((1<<b&3)<<2)|0,h=a[Q>>2],g=r+(b<<2)|0,r=g,b=a[r>>2],k=_(_(C[A+96>>2]-l)*_(.0009765625)),C[r>>2]=k+C[r>>2],l=_(k+C[Q>>2]),C[Q>>2]=l,YA(A)){for(u=1024;;){if(i=l,u=u+-1|0,!u)break A;if(b=a[g>>2],C[g>>2]=k+C[g>>2],l=_(k+C[Q>>2]),C[Q>>2]=l,!YA(A))break}s(i),h=c(0)}a[g>>2]=b,a[Q>>2]=h}A=a[e+88>>2],A&&(o[e+92|0]&&CA(A),a[e+88>>2]=0),a[e+88>>2]=0,f[e+92|0]=1,a[e+80>>2]=0,a[e+84>>2]=0,A=a[e+68>>2],A&&(o[e+72|0]&&CA(A),a[e+68>>2]=0),a[e+68>>2]=0,f[e+72|0]=1,a[e+60>>2]=0,a[e+64>>2]=0,A=a[e+48>>2],A&&(o[e+52|0]&&CA(A),a[e+48>>2]=0),a[e+48>>2]=0,f[e+52|0]=1,a[e+40>>2]=0,a[e+44>>2]=0,A=a[e+28>>2],A&&(o[e+32|0]&&CA(A),a[e+28>>2]=0),Y=e+96|0}function NA(A,e,r){var i=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,C=0;A:{if(c=t[e>>1],n=v[e+2>>1],s=a[A+48>>2],C=c+(n<<16)&s+-1,!(C>>>0>=d[A+4>>2])&&(i=a[a[A+12>>2]+(C<<2)>>2],-1!=(0|i)))for(l=a[A+72>>2],c&=65535;;){if(u=i<<2,b=u+l|0,v[b+2>>1]==(0|n)&&v[b>>1]==(0|c))break A;if(i=a[u+a[A+32>>2]>>2],-1==(0|i))break}if(u=a[A+44>>2],i=u,(0|i)==(0|s)&&(i=s,l=i?i<<1:1,!((0|i)>=(0|l)))){if(l?(c=dA(l<<2),i=a[A+44>>2]):(c=0,i=s),n=i,(0|n)>=1)for(i=0;b=i+c|0,k=a[A+52>>2]+i|0,k=v[k>>1]|v[k+2>>1]<<16,t[b>>1]=k,t[b+2>>1]=k>>>16,i=i+4|0,n=n+-1|0,n;);i=a[A+52>>2],i&&(o[A+56|0]&&CA(i),a[A+52>>2]=0),a[A+52>>2]=c,a[A+48>>2]=l,f[A+56|0]=1,i=a[A+44>>2]}if(i=a[A+52>>2]+(i<<2)|0,r=v[r>>1]|v[r+2>>1]<<16,t[i>>1]=r,t[i+2>>1]=r>>>16,a[A+44>>2]=a[A+44>>2]+1,n=a[A- -64>>2],(0|n)==a[A+68>>2]&&(r=n?n<<1:1,!((0|n)>=(0|r)))){if(r?(c=dA(r<<2),n=a[A+64>>2]):c=0,(0|n)>=1)for(i=0;l=i+c|0,b=a[A+72>>2]+i|0,b=v[b>>1]|v[b+2>>1]<<16,t[l>>1]=b,t[l+2>>1]=b>>>16,i=i+4|0,n=n+-1|0,n;);i=a[A+72>>2],i&&(o[A+76|0]&&CA(i),a[A+72>>2]=0),a[A+72>>2]=c,a[A+68>>2]=r,f[A+76|0]=1,n=a[A+64>>2]}return r=a[A+72>>2]+(n<<2)|0,i=v[e>>1]|v[e+2>>1]<<16,t[r>>1]=i,t[r+2>>1]=i>>>16,a[A+64>>2]=a[A+64>>2]+1,(0|s)<a[A+48>>2]&&(function(A){var e=0,r=0,i=0,n=0,c=0,b=0,l=0,u=0,s=0;if(l=a[A+4>>2],i=a[A+48>>2],!((0|l)>=(0|i))){if(a[A+8>>2]>=(0|i))n=a[A+12>>2];else{i?(n=dA(i<<2),r=a[A+4>>2]):r=l,b=a[A+12>>2];e:{if((0|r)>=1)for(c=n,e=b;a[c>>2]=a[e>>2],c=c+4|0,e=e+4|0,r=r+-1|0,r;);else if(!b)break e;o[A+16|0]&&CA(b)}a[A+12>>2]=n,f[A+16|0]=1,a[A+8>>2]=i}if(e=l<<2,u=i<<2,X(e+n|0,0,u-e|0),a[A+4>>2]=i,s=a[A+24>>2],(0|s)<(0|i)){e:if(a[A+28>>2]>=(0|i))n=a[A+32>>2];else{if(i?(n=dA(u),r=a[A+24>>2]):(n=0,r=s),b=a[A+32>>2],(0|r)>=1)for(c=n,e=b;a[c>>2]=a[e>>2],c=c+4|0,e=e+4|0,r=r+-1|0,r;);else if(!b){a[A+32>>2]=n,a[A+28>>2]=i,f[A+36|0]=1;break e}o[A+36|0]&&CA(b),a[A+32>>2]=n,f[A+36|0]=1,a[A+28>>2]=i}e=s<<2,X(e+n|0,0,u-e|0)}if(a[A+24>>2]=i,(0|i)>=1&&(X(a[A+12>>2],255,u),X(a[A+32>>2],255,u)),!((0|l)<1))for(e=a[A+32>>2],c=a[A+72>>2],b=a[A+12>>2],r=0;n=b+((t[c>>1]+(v[c+2>>1]<<16)&a[A+48>>2]+-1)<<2)|0,a[e>>2]=a[n>>2],a[n>>2]=r,c=c+4|0,e=e+4|0,r=r+1|0,(0|r)!=(0|l););}}(A),C=t[e>>1]+(v[e+2>>1]<<16)&a[A+48>>2]+-1),e=a[A+32>>2]+(u<<2)|0,A=a[A+12>>2]+(C<<2)|0,a[e>>2]=a[A>>2],void(a[A>>2]=u)}A=a[A+52>>2]+(i<<2)|0,e=v[r>>1]|v[r+2>>1]<<16,t[A>>1]=e,t[A+2>>1]=e>>>16}function IA(A,e,r,i,f,t,n){var o=_(0),c=0,b=_(0),l=0,u=0,s=_(0),k=_(0),v=_(0);if(a[i>>2]=2139095039,c=-8388609,a[f>>2]=-8388609,l=a[A+8>>2],o=_(-3.4028234663852886e38),!((0|l)<1)){for(c=4;u=a[A+16>>2]+c|0,o=C[u+-4>>2],b=C[u>>2],s=C[u+4>>2],k=_(_(_(_(o*C[e>>2])+_(b*C[e+4>>2]))+_(s*C[e+8>>2]))+C[e+48>>2]),v=_(_(_(_(o*C[e+16>>2])+_(b*C[e+20>>2]))+_(s*C[e+24>>2]))+C[e+52>>2]),b=_(_(_(_(o*C[e+32>>2])+_(b*C[e+36>>2]))+_(s*C[e+40>>2]))+C[e+56>>2]),o=_(_(_(k*C[r>>2])+_(v*C[r+4>>2]))+_(b*C[r+8>>2])),o<C[i>>2]&&(C[i>>2]=o,a[t+12>>2]=0,C[t+8>>2]=b,C[t+4>>2]=v,C[t>>2]=k),o>C[f>>2]&&(C[f>>2]=o,a[n+12>>2]=0,C[n+8>>2]=b,C[n+4>>2]=v,C[n>>2]=k),c=c+16|0,l=l+-1|0,l;);c=a[f>>2],o=C[f>>2]}b=C[i>>2],b>o&&(a[i>>2]=c,C[f>>2]=b,A=t+8|0,r=a[A>>2],i=a[A+4>>2],e=n+8|0,c=a[e+4>>2],a[A>>2]=a[e>>2],a[A+4>>2]=c,A=a[t>>2],f=a[t+4>>2],c=a[n+4>>2],a[t>>2]=a[n>>2],a[t+4>>2]=c,a[n>>2]=A,a[n+4>>2]=f,a[e>>2]=r,a[e+4>>2]=i)}function JA(A,e){var r,i,f=0,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0;return r=a[A+16>>2],t=a[e+16>>2],(0|r)!=(0|t)?r-t|0:r?(d=-1,c=a[A+4>>2],b=a[e+8>>2],l=a[e+12>>2],v=a[A>>2],s=_t(l,0,v,0),u=V,l=_t(l,n,c,0),f=l+u|0,t=V+o|0,o=f,f=f>>>0<l>>>0?t+1|0:t,l=0,c=_t(b,l,c,n),t=o,o=V,n=t+o|0,n>>>0<o>>>0&&(f=f+1|0),t=n,o=f,n=0,f=c+s|0,f>>>0<c>>>0&&(n=n+1|0),s=n,n=n+t|0,t=o,t=n>>>0<s>>>0?t+1|0:t,o=n,n=f,s=0,b=_t(b,l,v,C),c=s+b|0,f=V+f|0,f=c>>>0<b>>>0?f+1|0:f,i=c,b=c,c=f,n=(0|n)==(0|f)&b>>>0<s>>>0|f>>>0<n>>>0,f=o+n|0,f>>>0<n>>>0&&(t=t+1|0),s=f,b=t,l=f,v=t,n=a[A+8>>2],A=a[A+12>>2],f=a[e>>2],u=a[e+4>>2],t=0,C=n,o=_t(u,t,n,0),e=V,k=A,n=0,u=_t(u,t,A,n),A=e+u|0,t=V,t=A>>>0<u>>>0?t+1|0:t,e=A,u=f,A=_t(f,0,k,n),k=V,e=k+e|0,f=t,f=e>>>0<k>>>0?f+1|0:f,n=f,t=0,f=A+o|0,f>>>0<A>>>0&&(t=t+1|0),k=t,o=t+e|0,t=n,e=o,n=e>>>0<k>>>0?t+1|0:t,k=e,e=0,o=_t(u,0,C,0),A=e+o|0,t=f,f=f+V|0,f=A>>>0<o>>>0?f+1|0:f,o=A,A=f,e=(0|t)==(0|f)&o>>>0<e>>>0|f>>>0<t>>>0,t=k+e|0,t>>>0<e>>>0&&(n=n+1|0),f=t,e=n,(0|n)==(0|v)&l>>>0<f>>>0|v>>>0<n>>>0||(d=1,(0|e)==(0|b)&s>>>0>t>>>0|b>>>0>e>>>0||(d=-1,(0|A)==(0|c)&i>>>0<o>>>0|c>>>0<A>>>0||(d=(0|A)==(0|c)&i>>>0>o>>>0|c>>>0>A>>>0))),B(d,r)):0}function xA(A,e,r){var i=0,f=0,t=0,n=0,o=0,c=0,b=0,l=0;if(n=a[A+56>>2],!(n||(i=a[A+52>>2],i?a[A+52>>2]=a[i+8>>2]:(i=dA(12),a[i+8>>2]=0,f=a[A+60>>2],a[i+4>>2]=f,b=i,l=dA(B(f,24)),a[b>>2]=l,f=a[A+48>>2],a[A+48>>2]=i,a[i+8>>2]=f),n=a[i>>2],t=a[i+4>>2],(0|t)<1)))for(i=0,f=n;o=f,f=f+24|0,i=i+1|0,a[o>>2]=(0|i)<(0|t)?f:0,(0|i)!=(0|t););if(a[A+56>>2]=a[n>>2],f=n+8|0,a[f>>2]=0,a[f+4>>2]=0,f=n+16|0,a[f>>2]=0,a[f+4>>2]=0,a[n>>2]=0,a[n+4>>2]=0,t=a[A+56>>2],!(t||(i=a[A+52>>2],i?a[A+52>>2]=a[i+8>>2]:(i=dA(12),a[i+8>>2]=0,f=a[A+60>>2],a[i+4>>2]=f,b=i,l=dA(B(f,24)),a[b>>2]=l,f=a[A+48>>2],a[A+48>>2]=i,a[i+8>>2]=f),t=a[i>>2],c=a[i+4>>2],(0|c)<1)))for(i=0,f=t;o=f,f=f+24|0,i=i+1|0,a[o>>2]=(0|i)<(0|c)?f:0,(0|i)!=(0|c););return a[A+56>>2]=a[t>>2],a[t>>2]=0,a[t+4>>2]=0,a[n+8>>2]=t,a[n+12>>2]=r,a[n+16>>2]=0,r=a[A+100>>2],a[n+20>>2]=r,a[t+8>>2]=n,a[t+12>>2]=e,a[t+16>>2]=0,a[t+20>>2]=r,e=a[A+116>>2],r=e+1|0,a[A+116>>2]=r,(0|e)>=a[A+120>>2]&&(a[A+120>>2]=r),n}function UA(A,e,r,i){var f,t=0,n=0,o=0,c=0,b=0,l=0,u=0;f=Y-16|0,Y=f,t=r-e|0;A:if(t>>>0<=2){switch(t-1|0){default:a[i>>2]=0,a[i+4>>2]=0,A=i+8|0,a[A>>2]=0,a[A+4>>2]=0;break A;case 1:if(r=a[a[A+92>>2]+(e<<2)>>2],t=a[r+204>>2],c=a[r+88>>2],o=a[r+200>>2],n=a[r+92>>2],(0|c)!=(0|o)|(0|n)!=(0|t)||(t=n,a[r+96>>2]!=a[r+208>>2])){e=r+112|0,t=n-t|0,n=c-o|0,t|n?(a[r+4>>2]=e,a[r>>2]=e,a[r+116>>2]=r,a[r+112>>2]=r,c=(0|t)<0,b=c&!n,n=(0|n)<0,o=b|n,a[i+4>>2]=o?e:r,a[i>>2]=o?r:e,n&!t||c?(a[i+8>>2]=r,t=e):(a[i+8>>2]=e,t=r)):(n=a[r+96>>2]>a[r+208>>2],t=n?e:r,a[i+8>>2]=t,a[i+4>>2]=t,a[i>>2]=t,a[t+4>>2]=t,a[t>>2]=t,e=n?r:e,r=t),a[i+12>>2]=t,A=xA(A,r,e),a[r+8>>2]=A,r=e,e=a[A+8>>2],a[r+8>>2]=e,a[A+4>>2]=A,a[A>>2]=A,a[e+4>>2]=e,a[e>>2]=e;break A}a[r+8>>2]=0,a[i+12>>2]=r,a[i+8>>2]=r,a[i+4>>2]=r,a[i>>2]=r,a[r+4>>2]=r,a[r>>2]=r;break A;case 0:}A=a[a[A+92>>2]+(e<<2)>>2],a[A+8>>2]=0,a[i+12>>2]=A,a[i+8>>2]=A,a[i+4>>2]=A,a[i>>2]=A,a[A+4>>2]=A,a[A>>2]=A}else{o=(0|t)/2|0,c=o+e|0,n=c;e:if(!((0|n)>=(0|r))){for(n=a[A+92>>2],t=a[(n+(c<<2)|0)-4>>2],l=a[t+88>>2],u=a[t+96>>2],b=a[t+92>>2],t=n+(e+o<<2)|0,n=c;;){if(o=a[t>>2],(0|l)!=a[o+88>>2]|a[o+92>>2]!=(0|b)|a[o+96>>2]!=(0|u))break e;if(t=t+4|0,n=n+1|0,(0|n)==(0|r))break}n=r}UA(A,e,c,i),e=f+8|0,a[e>>2]=0,a[e+4>>2]=0,a[f>>2]=0,a[f+4>>2]=0,UA(A,n,r,f),function(A,e,r){var i=0,f=0,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,_=0,m=0,R=0,Q=0,h=0,G=0,y=0,p=0,F=0,W=0,w=0,D=0,E=0,Z=0,N=0,I=0,J=0,x=0;f=Y-128|0,Y=f;e:if(a[r+4>>2])if(a[e+4>>2]){if(a[A+100>>2]=a[A+100>>2]+-1,a[f+124>>2]=0,a[f+120>>2]=0,e=function(A,e,r,i){var f=0,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,_=0,m=0,R=0,Q=0,h=0;n=a[A+12>>2],u=a[e+8>>2];r:{if(!(a[n+88>>2]!=a[u+88>>2]|a[n+92>>2]!=a[u+92>>2])){if(f=a[u+4>>2],(0|u)==(0|f)){if(a[r>>2]=n,A=a[u+8>>2],e=0,!A)break r;return a[i>>2]=a[A+12>>2],0}n=a[u>>2],a[n+4>>2]=f,a[f>>2]=n,(0|u)==a[e>>2]&&(b=e,s=n,t=a[n+88>>2],o=a[f+88>>2],(0|t)<(0|o)|(a[n+92>>2]<a[f+92>>2]?(0|t)==(0|o):0)||(s=f),a[b>>2]=s),a[e+4>>2]==(0|u)&&(t=a[n+88>>2],o=a[f+88>>2],(0|t)!=(0|o)|a[n+92>>2]<=a[f+92>>2]&&(0|t)<=(0|o)?a[e+4>>2]=f:a[e+4>>2]=n)}for(m=a[e>>2],Q=a[A>>2],h=a[A+4>>2],o=h,R=a[e+4>>2],t=R,u=0,s=1;;){v=a[o+88>>2],f=B(a[t+88>>2]-v|0,s);i:if((0|f)>=1)for(b=o;;){for(n=t,c=a[t+92>>2],o=f;t=a[b+92>>2],v=c-t|0,l=!d<<2,f=a[l+b>>2],!((0|f)==(0|b)||(k=a[f+92>>2]-t|0,(0|k)>0||(C=a[f+88>>2],t=B(C-a[b+88>>2]|0,s),(0|t)>-1|(0|B(o,k))>(0|B(t,v))&&t)));)o=B(a[n+88>>2]-C|0,s),b=f;if(t=a[n+l>>2],(0|n)==(0|t))break i;if(l=a[t+92>>2]-c|0,(0|l)>-1)break i;if(c=a[t+88>>2],f=B(c-a[b+88>>2]|0,s),(0|f)<1)break i;if(c=B(c-a[n+88>>2]|0,s),c){if((0|c)>-1)break i;if(!((0|B(o,l))<(0|B(c,v))))break}}else if((0|f)<=-1){f:for(;;){for(v=a[t+92>>2],C=(0!=(0|d))<<2,n=a[C+t>>2];;){if(c=f,b=o,k=a[o+92>>2],l=v-k|0,(0|t)!=(0|n)&&(o=a[n+92>>2]-v|0,!((0|o)<0||(g=a[n+88>>2],f=B(g-a[t+88>>2]|0,s),(0|f)>-1|(0|B(o,c))>(0|B(f,l))&&f)))){f=B(g-a[b+88>>2]|0,s),t=n,o=b;continue f}if(o=a[b+C>>2],(0|b)==(0|o)){n=t;break i}if(g=a[o+92>>2]-k|0,(0|g)<1){n=t;break i}if(k=a[o+88>>2],f=B(a[t+88>>2]-k|0,s),(0|f)>-1){n=t;break i}if(k=B(k-a[b+88>>2]|0,s),k){if((0|k)>-1){n=t;break i}if(!((0|B(c,g))<(0|B(l,k))))break}}break}n=t}else{n=a[o+92>>2];f:if(d)for(f=o;;){if(b=f,f=a[f>>2],(0|o)==(0|f)|(0|v)!=a[f+88>>2])break f;if(c=a[f+92>>2],l=(0|c)>(0|n),n=c,l)break}else for(f=o;;){if(b=f,f=a[f+4>>2],(0|o)==(0|f)|(0|v)!=a[f+88>>2])break f;if(c=a[f+92>>2],l=(0|c)<=(0|n),n=c,!l)break}if(o=a[t+92>>2],d)for(f=t;;){if(n=f,f=a[f+4>>2],(0|f)==(0|t)|(0|v)!=a[f+88>>2])break i;if(c=a[f+92>>2],l=(0|c)<(0|o),o=c,l)break}else for(f=t;;){if(n=f,f=a[f>>2],(0|f)==(0|t)|(0|v)!=a[f+88>>2])break i;if(c=a[f+92>>2],l=(0|c)>=(0|o),o=c,!l)break}}if(o=d?b:Q,t=d?n:m,_=d?_:b,u=d?u:n,s=d?s:-1,d=d+1|0,2==(0|d))break}a[t>>2]=o,a[o+4>>2]=t,a[_>>2]=u,a[u+4>>2]=_,a[m+88>>2]<a[Q+88>>2]&&(a[A>>2]=m),a[R+88>>2]>=a[h+88>>2]&&(a[A+4>>2]=R),a[A+12>>2]=a[e+12>>2],a[r>>2]=_,e=1}return A=e,a[i>>2]=u,A}(e,r,f+124|0,f+120|0),g=a[f+120>>2],e){if(G=a[f+124>>2],D=a[G+96>>2],E=a[g+96>>2],W=a[G+92>>2],C=a[g+92>>2],i=a[G+8>>2],_=a[G+88>>2],Z=a[g+88>>2],a[f+80>>2]=0,e=E-D|0,t=e,n=e>>31,e=C-W|0,R=e,Q=e>>31,N=_t(t,n,e,Q),I=V,r=Z-_|0,e=0-r|0,F=e,y=e>>31,e=_t(e,y,r,r>>31),o=V,r=_t(R,Q,R,Q),J=e-r|0,d=o-(V+(e>>>0<r>>>0)|0)|0,e=_t(F,y,t,n),v=0-e|0,p=0-(V+(0<e>>>0)|0)|0,i){for(r=i;;){l=a[r+12>>2],s=a[l+92>>2],e=s-W|0,c=e,b=e>>31,e=_t(e,b,F,y),o=V,w=e,k=a[l+88>>2],e=k-_|0,t=e,n=e>>31,e=_t(R,Q,e,n);r:if(!((0|w)!=(0-e|0)|(0-(V+(0<e>>>0)|0)|0)!=(0|o)||(e=_t(N,I,c,b),o=V,c=e,e=_t(t,n,v,p),n=c+e|0,t=V+o|0,t=n>>>0<e>>>0?t+1|0:t,o=a[l+96>>2],e=o-D|0,e=_t(J,d,e,e>>31),n=e+n|0,t=V+t|0,t=n>>>0<e>>>0?t+1|0:t,(0|t)<0||(0|t)<=0&&!(n>>>0>=1)))){i:if(u){if(e=a[u+4>>2],(0|r)==a[u>>2]){if((0|e)!=(0|r))break r;if(c=a[a[r+8>>2]+12>>2],e=a[c+96>>2],b=o-e|0,t=a[u+12>>2],n=a[t+96>>2]-e|0,e=a[c+92>>2],e=B(b,a[t+92>>2]-e|0)-B(n,s-e|0)|0,e=_t(e,e>>31,R,Q),o=V,s=e,e=a[c+88>>2],e=B(n,k-e|0)-B(b,a[t+88>>2]-e|0)|0,e=_t(e,e>>31,F,y),n=s+e|0,t=V+o|0,t=n>>>0<e>>>0?t+1|0:t,(0|t)<0||(0|t)<=0&&!(n>>>0>0))break i;break r}if((0|e)!=(0|r))break r}u=r}if(r=a[r>>2],(0|i)==(0|r))break}a[f+80>>2]=u}if(e=a[g+8>>2],k=0,a[f+56>>2]=0,e){for(r=e;;){_=a[r+12>>2],l=a[_+92>>2],i=l-C|0,s=i,c=i>>31,i=_t(i,c,F,y),o=V,W=i,b=a[_+88>>2],i=b-Z|0,t=i,n=i>>31,i=_t(R,Q,i,n);r:if(!((0|W)!=(0-i|0)|(0-(V+(0<i>>>0)|0)|0)!=(0|o)||(i=_t(N,I,s,c),o=V,c=i,i=_t(t,n,v,p),n=c+i|0,t=V+o|0,t=n>>>0<i>>>0?t+1|0:t,o=a[_+96>>2],i=o-E|0,i=_t(J,d,i,i>>31),n=i+n|0,t=V+t|0,t=n>>>0<i>>>0?t+1|0:t,(0|t)<0||(0|t)<=0&&!(n>>>0>=1)))){if(k){if(a[k>>2]!=(0|r))break r;if(a[k+4>>2]==(0|r)&&(s=a[a[r+8>>2]+12>>2],i=a[s+96>>2],c=o-i|0,t=a[k+12>>2],n=a[t+96>>2]-i|0,i=a[s+92>>2],i=B(c,a[t+92>>2]-i|0)-B(n,l-i|0)|0,i=_t(i,i>>31,R,Q),o=V,l=i,i=a[s+88>>2],i=B(n,b-i|0)-B(c,a[t+88>>2]-i|0)|0,i=_t(i,i>>31,F,y),n=l+i|0,o=V+o|0,o=n>>>0<i>>>0?o+1|0:o,(0|o)<0||(0|o)<=0&&!(n>>>0>=1)))break r}k=r}if(r=a[r>>2],(0|e)==(0|r))break}a[f+56>>2]=k}u|k&&(MA(A,G,g,f+80|0,f+56|0),e=a[f+80>>2],e&&(G=a[e+12>>2],a[f+124>>2]=G),e=a[f+56>>2],e&&(g=a[e+12>>2],a[f+120>>2]=g)),w=a[g+96>>2]+1|0,x=a[g+92>>2],R=a[g+88>>2]}else w=a[g+96>>2],x=a[g+92>>2],G=a[f+124>>2],R=a[g+88>>2]+1|0;for(k=G,n=g,t=0,e=0,p=0,D=1,l=0,u=0,_=0;;){a[f+116>>2]=-1,Z=n+92|0,N=k+92|0,b=a[N>>2],i=a[Z>>2]-b|0,a[f+108>>2]=i,I=n+96|0,J=k+96|0,o=a[J>>2],c=a[I>>2]-o|0,a[f+112>>2]=c,v=a[k+88>>2],r=a[n+88>>2]-v|0,a[f+104>>2]=r,s=x-b|0,b=w-o|0,o=B(s,c)-B(b,i)|0,Q=o>>31,E=o,a[f+80>>2]=o,a[f+84>>2]=Q,o=B(r,b),b=R-v|0,o=o-B(b,c)|0,F=o>>31,W=o,a[f+88>>2]=o,a[f+92>>2]=F,o=B(i,b)-B(r,s)|0,y=o>>31,C=o,a[f+96>>2]=o,a[f+100>>2]=y,b=r,d=r>>31,r=_t(W,F,r,d),s=V,o=i,v=i>>31,i=_t(E,Q,i,v),a[f+72>>2]=r-i,a[f+76>>2]=s-(V+(r>>>0<i>>>0)|0),i=c,s=i>>31,r=_t(E,Q,i,s),c=V,b=_t(C,y,b,d),a[f+64>>2]=r-b,a[f+68>>2]=c-(V+(r>>>0<b>>>0)|0),r=_t(C,y,o,v),o=V,i=_t(W,F,i,s),a[f+56>>2]=r-i,a[f+60>>2]=o-(V+(r>>>0<i>>>0)|0),a[f+48>>2]=0,r=f+40|0,a[r>>2]=0,a[r+4>>2]=0,a[f+32>>2]=0,a[f+36>>2]=0,C=SA(A,0,k,f+104|0,f+80|0,f+56|0,f+32|0),a[f+24>>2]=0,r=f+16|0,a[r>>2]=0,a[r+4>>2]=0,a[f+8>>2]=0,a[f+12>>2]=0,v=SA(A,1,n,f+104|0,f+80|0,f+56|0,f+8|0);r:if(v|C){d=C?-1:1,!C|!v||(d=JA(f+32|0,f+8|0));i:{f:if(!D){t:{if((0|d)>=0){if(a[f+24>>2]>-1)break f;if(!(a[f+16>>2]|a[f+20>>2]))break t;break f}if(a[f+40>>2]|a[f+44>>2]|a[f+48>>2]>-1)break f}c=t,i=e,s=l,o=u;break i}s=xA(A,k,n),o=s,l&&(a[l+4>>2]=s,o=u),a[s>>2]=l,c=a[s+8>>2],i=c,t&&(a[t>>2]=c,i=e),a[c+4>>2]=t}if(a[f+4>>2]=C,a[f>>2]=v,t=v,d||(MA(A,k,n,f+4|0,f),t=a[f>>2]),!t|(0|d)<0)u=n,t=c;else{if(m&&(r=a[m>>2],(0|v)!=(0|r)))for(;l=a[r+8>>2],b=0,u=0,e=a[r>>2],(0|r)!=(0|e)&&(a[e+4>>2]=a[r+4>>2],a[a[r+4>>2]>>2]=e,u=e),a[a[l+12>>2]+8>>2]=u,u=a[l>>2],(0|l)!=(0|u)&&(a[u+4>>2]=a[l+4>>2],a[a[l+4>>2]>>2]=u,b=u),a[a[r+12>>2]+8>>2]=b,a[r+12>>2]=0,a[r+16>>2]=0,a[r+4>>2]=0,a[r+8>>2]=0,a[r>>2]=a[A+56>>2],a[A+56>>2]=r,r=l+12|0,a[r>>2]=0,a[r+4>>2]=0,a[l+4>>2]=0,a[l+8>>2]=0,a[l>>2]=a[A+56>>2],a[A+56>>2]=l,a[A+116>>2]=a[A+116>>2]+-1,r=e,(0|v)!=(0|e););c?(m||(m=a[v+4>>2],p=i),a[m>>2]=i,a[i+4>>2]=m,a[v+4>>2]=c,a[c>>2]=v,i=0):p=m?p:v,u=a[t+12>>2],a[f+120>>2]=u,w=a[I>>2],x=a[Z>>2],m=a[t+8>>2],R=a[n+88>>2],t=0}if((0|d)>0||(l=a[f+4>>2],!l))e=k;else{if(h&&(e=a[h+4>>2],(0|C)!=(0|e)))for(;v=e+4|0,d=a[e+8>>2],b=a[e+4>>2],n=0,r=0,c=a[e>>2],(0|e)!=(0|c)&&(a[c+4>>2]=b,a[a[v>>2]>>2]=c,r=c),a[a[d+12>>2]+8>>2]=r,r=a[d>>2],(0|d)!=(0|r)&&(a[r+4>>2]=a[d+4>>2],a[a[d+4>>2]>>2]=r,n=r),a[a[e+12>>2]+8>>2]=n,r=v+8|0,a[r>>2]=0,a[r+4>>2]=0,a[v>>2]=0,a[v+4>>2]=0,a[e>>2]=a[A+56>>2],a[A+56>>2]=e,e=d+12|0,a[e>>2]=0,a[e+4>>2]=0,a[d+4>>2]=0,a[d+8>>2]=0,a[d>>2]=a[A+56>>2],a[A+56>>2]=d,a[A+116>>2]=a[A+116>>2]+-1,e=b,(0|C)!=(0|e););s?(h||(h=a[C>>2],_=o),a[h+4>>2]=o,a[o>>2]=h,a[s+4>>2]=C,a[C>>2]=s,o=0):_=h?_:C,e=a[l+12>>2],a[f+124>>2]=e,w=a[J>>2],x=a[N>>2],h=a[l+8>>2],R=a[k+88>>2],s=0}if(l=s,r=1,(0|e)!=(0|G)|(0|u)!=(0|g))D=0;else{if(h){if(e=a[h+4>>2],(0|e)!=(0|_))for(;b=e+4|0,c=a[e+8>>2],u=a[e+4>>2],n=0,r=0,k=a[e>>2],(0|e)!=(0|k)&&(a[k+4>>2]=u,a[a[b>>2]>>2]=k,r=k),a[a[c+12>>2]+8>>2]=r,r=a[c>>2],(0|c)!=(0|r)&&(a[r+4>>2]=a[c+4>>2],a[a[c+4>>2]>>2]=r,n=r),a[a[e+12>>2]+8>>2]=n,r=b+8|0,a[r>>2]=0,a[r+4>>2]=0,a[b>>2]=0,a[b+4>>2]=0,a[e>>2]=a[A+56>>2],a[A+56>>2]=e,e=c+12|0,a[e>>2]=0,a[e+4>>2]=0,a[c+4>>2]=0,a[c+8>>2]=0,a[c>>2]=a[A+56>>2],a[A+56>>2]=c,a[A+116>>2]=a[A+116>>2]+-1,e=u,(0|_)!=(0|e););l&&(a[h+4>>2]=o,a[o>>2]=h,a[l+4>>2]=_,a[_>>2]=l)}else a[l+4>>2]=o,a[o>>2]=l,a[e+8>>2]=l;if(!m){a[t>>2]=i,a[i+4>>2]=t,a[a[f+120>>2]+8>>2]=t,m=0,e=i,u=o,r=0;break r}if(r=a[m>>2],(0|r)!=(0|p))for(;n=a[r+8>>2],b=0,u=0,e=a[r>>2],(0|r)!=(0|e)&&(a[e+4>>2]=a[r+4>>2],a[a[r+4>>2]>>2]=e,u=e),a[a[n+12>>2]+8>>2]=u,u=a[n>>2],(0|n)!=(0|u)&&(a[u+4>>2]=a[n+4>>2],a[a[n+4>>2]>>2]=u,b=u),a[a[r+12>>2]+8>>2]=b,a[r+12>>2]=0,a[r+16>>2]=0,a[r+4>>2]=0,a[r+8>>2]=0,a[r>>2]=a[A+56>>2],a[A+56>>2]=r,r=n+12|0,a[r>>2]=0,a[r+4>>2]=0,a[n+4>>2]=0,a[n+8>>2]=0,a[n>>2]=a[A+56>>2],a[A+56>>2]=n,a[A+116>>2]=a[A+116>>2]+-1,r=e,(0|p)!=(0|e););r=0,t?(a[i+4>>2]=m,a[m>>2]=i,a[p+4>>2]=t,a[t>>2]=p):t=0}e=i,u=o}else i=xA(A,k,n),a[k+8>>2]=i,r=a[i+8>>2],a[n+8>>2]=r,a[i+4>>2]=i,a[i>>2]=i,a[r+4>>2]=r,a[r>>2]=r,r=0;if(!r)break e;k=a[f+124>>2],n=a[f+120>>2]}}else A=a[r+4>>2],a[e>>2]=a[r>>2],a[e+4>>2]=A,i=e+8|0,e=r+8|0,A=a[e+4>>2],a[i>>2]=a[e>>2],a[i+4>>2]=A;Y=f+128|0}(A,i,f)}Y=f+16|0}function MA(A,e,r,i,f){var t,n,o,c,b,l,u,s,k,v,d,C,g,_,m,R,Q=0,h=0,G=0,y=0,p=0,F=0,W=0,w=0,D=0,E=0,Z=0,N=0,I=0,J=0,x=0,U=0,M=0,S=0,X=0,T=0,j=0,O=0,H=0,z=0,P=0,K=0;if(t=Y-48|0,Y=t,x=e,O=a[i>>2],O&&(x=a[O+12>>2]),X=a[x+96>>2],T=a[x+92>>2],x=a[x+88>>2],j=a[f>>2],h=j?a[j+12>>2]:r,Q=a[e+96>>2],s=a[r+96>>2]-Q|0,F=a[(O||j)+12>>2],G=a[e+92>>2],y=a[F+92>>2]-G|0,k=a[r+92>>2]-G|0,N=a[F+96>>2]-Q|0,p=B(s,y)-B(k,N)|0,_=p,d=p>>31,U=s>>31,p=_t(p,d,s,U),M=V,e=a[e+88>>2],F=a[F+88>>2]-e|0,v=a[r+88>>2]-e|0,r=B(F,k)-B(y,v)|0,m=r,C=r>>31,y=v>>31,r=_t(r,C,v,y),n=p-r|0,o=M-(V+(p>>>0<r>>>0)|0)|0,p=_t(n,o,T,T>>31),M=V,J=k>>31,r=_t(m,C,k,J),D=V,F=B(N,v)-B(F,s)|0,R=F,g=F>>31,F=_t(F,g,s,U),c=r-F|0,b=D-(V+(r>>>0<F>>>0)|0)|0,N=_t(c,b,x,x>>31),F=N+p|0,p=V+M|0,r=_t(R,g,v,y),y=V,U=_t(_,d,k,J),l=r-U|0,u=y-(V+(r>>>0<U>>>0)|0)|0,y=_t(l,u,X,X>>31),U=F+y|0,r=U,F=V+(F>>>0<N>>>0?p+1|0:p)|0,F=r>>>0<y>>>0?F+1|0:F,e=_t(_,d,e,e>>31),p=V,y=_t(m,C,Q,Q>>31),e=y+e|0,Q=V+p|0,G=_t(R,g,G,G>>31),p=G+e|0,E=p,e=V+(e>>>0<y>>>0?Q+1|0:Q)|0,J=p>>>0<G>>>0?e+1|0:e,N=a[h+96>>2],U=a[h+92>>2],M=a[h+88>>2],e=j,O&&(e=j,a[O+12>>2])){e=a[a[O+8>>2]+4>>2],G=a[e+12>>2],Q=a[G+92>>2],h=Q,p=Q>>31,y=_t(Q,p,R,g),D=V,w=a[G+88>>2],Q=w,W=Q>>31,I=_t(Q,W,_,d),w=y+I|0,Z=V+D|0,G=a[G+96>>2],y=G,D=G>>31,G=_t(G,D,m,C),S=w+G|0,w=V+(w>>>0<I>>>0?Z+1|0:Z)|0,G=S>>>0<G>>>0?w+1|0:w;A:if(!((0|G)<(0|J)||(0|G)<=(0|J)&&!(S>>>0>=E>>>0))){for(w=e+12|0;;){if(a[e+20>>2]==a[A+100>>2])break A;if(h=_t(n,o,h,p),G=V,p=_t(c,b,Q,W),Q=p+h|0,G=V+G|0,y=_t(l,u,y,D),D=y+Q|0,h=D,Q=V+(Q>>>0<p>>>0?G+1|0:G)|0,G=h>>>0<y>>>0?Q+1|0:Q,Q=G,(0|Q)<(0|F)||(0|Q)<=(0|F)&&!(h>>>0>r>>>0))break A;if(a[i>>2]=e,r=a[w>>2],X=a[r+96>>2],T=a[r+92>>2],x=a[r+88>>2],!r)break;if(e=a[a[e+8>>2]+4>>2],w=e+12|0,r=h,F=Q,G=a[e+12>>2],Q=a[G+92>>2],h=Q,p=Q>>31,y=_t(Q,p,R,g),D=V,W=a[G+88>>2],Q=W,W=Q>>31,S=_t(Q,W,_,d),Z=y+S|0,I=V+D|0,G=a[G+96>>2],y=G,D=G>>31,G=_t(G,D,m,C),H=G+Z|0,Z=V+(Z>>>0<S>>>0?I+1|0:I)|0,G=H>>>0<G>>>0?Z+1|0:Z,(0|G)<(0|J)||(0|G)<=(0|J)&&!(H>>>0>=E>>>0))break A}r=h,F=Q}e=a[f>>2]}h=_t(n,o,U,U>>31),G=V,p=_t(c,b,M,M>>31),Q=p+h|0,G=V+G|0,y=_t(l,u,N,N>>31),D=y+Q|0,h=D,Q=V+(Q>>>0<p>>>0?G+1|0:G)|0,p=h>>>0<y>>>0?Q+1|0:Q;A:if(e){if(a[e+12>>2]&&(w=a[a[e+8>>2]>>2],G=a[w+12>>2],y=a[G+92>>2],Q=y,W=Q>>31,Z=_t(Q,W,R,g),I=V,D=a[G+88>>2],y=D,D=y>>31,z=_t(y,D,_,d),Z=Z+z|0,I=V+I|0,G=a[G+96>>2],S=G,H=G>>31,G=_t(G,H,m,C),P=G+Z|0,Z=V+(Z>>>0<z>>>0?I+1|0:I)|0,G=P>>>0<G>>>0?Z+1|0:Z,!((0|G)<(0|J)||(0|G)<=(0|J)&&!(P>>>0>=E>>>0)))){for(Z=w+12|0;;){if(G=w,a[G+20>>2]==a[A+100>>2])break A;if(Q=_t(n,o,Q,W),w=V,W=_t(c,b,y,D),y=W+Q|0,D=V+w|0,w=_t(l,u,S,H),Q=w+y|0,y=V+(y>>>0<W>>>0?D+1|0:D)|0,y=Q>>>0<w>>>0?y+1|0:y,(0|y)<(0|p)||(0|y)<=(0|p)&&!(Q>>>0>h>>>0))break A;if(a[f>>2]=G,e=a[Z>>2],N=a[e+96>>2],U=a[e+92>>2],M=a[e+88>>2],!e)break;if(w=a[a[G+8>>2]>>2],Z=w+12|0,h=Q,p=y,e=G,G=a[w+12>>2],y=a[G+92>>2],Q=y,W=Q>>31,I=_t(Q,W,R,g),S=V,D=a[G+88>>2],y=D,D=y>>31,P=_t(y,D,_,d),I=I+P|0,z=V+S|0,G=a[G+96>>2],S=G,H=G>>31,G=_t(G,H,m,C),K=I+G|0,I=V+(I>>>0<P>>>0?z+1|0:z)|0,G=K>>>0<G>>>0?I+1|0:I,(0|G)<(0|J)||(0|G)<=(0|J)&&!(K>>>0>=E>>>0))break A}e=G,h=Q,p=y}}else e=0;A:{if(F=p-((h>>>0<r>>>0)+F|0)|0,r=h-r|0,!((0|F)<0||(0|F)<=0&&!(r>>>0>=1)))for(;;){w=(B(U-T|0,k)+B(M-x|0,v)|0)+B(N-X|0,s)|0,e=w,G=e,D=e>>31;e:if(j=a[i>>2],!(!j|!a[j+12>>2]||(Z=a[a[j>>2]+8>>2],a[Z+20>>2]<=a[A+100>>2]))){h=a[Z+12>>2],e=a[h+92>>2],Q=e-T|0,y=a[h+88>>2],p=y-x|0,J=a[h+96>>2],W=J-X|0,h=(B(Q,k)+B(p,v)|0)+B(W,s)|0,Q=_t(n,o,Q,Q>>31),E=V,I=_t(c,b,p,p>>31),Q=I+Q|0,E=V+E|0,W=_t(l,u,W,W>>31),p=W+Q|0,Q=V+(Q>>>0<I>>>0?E+1|0:E)|0,Q=p>>>0<W>>>0?Q+1|0:Q,E=Q;r:{if(!(0!=(0|p)|0!=(0|Q))){if((0|h)<0)break r;break e}if((0|E)>-1||(0|E)>=-1&&!(p>>>0<=4294967295))break e;if(Q=h,W=Q>>31,S=t,(0|Q)>=1?(a[t+40>>2]=1,h=-1):(0|h)<=-1?(a[t+40>>2]=-1,Q=0-Q|0,W=0-((0<h>>>0)+W|0)|0,h=1):(a[t+40>>2]=0,Q=0,W=0,h=0),a[S+40>>2]=h,a[t+24>>2]=Q,a[t+28>>2]=W,a[t+32>>2]=0-p,a[t+36>>2]=0-((0<p>>>0)+E|0),(0|w)>=1?(a[t+16>>2]=1,h=G,p=D,Q=-1):(0|w)<=-1?(a[t+16>>2]=-1,h=0-G|0,p=0-((0<G>>>0)+D|0)|0,Q=1):(a[t+16>>2]=0,h=0,p=0,Q=0),a[t>>2]=h,a[t+4>>2]=p,h=r,p=F,(0|F)>0||(0|F)>=0&&!(h>>>0<=0)||(h=0,p=0,(0|F)>-1||(0|F)>=-1&&!(r>>>0<=4294967295)||(a[t+16>>2]=Q,h=0-r|0,p=0-((0<r>>>0)+F|0)|0)),Q=p,a[t+8>>2]=h,a[t+12>>2]=Q,(0|JA(t+24|0,t))<=-1)break e}a[i>>2]=(0|j)==(0|O)?0:Z,r=U-e|0,r=_t(n,o,r,r>>31),Q=V,h=M-y|0,F=_t(c,b,h,h>>31),h=r+F|0,Q=V+Q|0,r=N-J|0,G=_t(l,u,r,r>>31),p=h+G|0,r=p,h=V+(h>>>0<F>>>0?Q+1|0:Q)|0,F=r>>>0<G>>>0?h+1|0:h,x=y,T=e,X=J;continue}if(e=a[f>>2],!e|!a[e+12>>2])break A;if(J=a[a[e+8>>2]>>2],a[J+20>>2]<=a[A+100>>2])break A;if(e=a[J+12>>2],p=a[e+92>>2],y=p-U|0,h=y,U=h,W=h>>31,h=_t(h,W,R,g),Q=V,j=a[e+88>>2],M=j-M|0,E=M,Z=E,E>>=31,I=_t(Z,E,_,d),h=h+I|0,Q=V+Q|0,e=a[e+96>>2],N=e-N|0,H=N,S=N>>31,z=_t(m,C,N,S),(0-z|0)!=(0|h)|(0-(V+(0<z>>>0)|0)|0)!=(0|(h>>>0<I>>>0?Q+1|0:Q)))break A;if(h=p-T|0,h=_t(n,o,h,h>>31),Q=V,p=j-x|0,p=_t(c,b,p,p>>31),h=h+p|0,Q=V+Q|0,e=e-X|0,j=_t(l,u,e,e>>31),e=h+j|0,h=V+(h>>>0<p>>>0?Q+1|0:Q)|0,h=e>>>0<j>>>0?h+1|0:h,p=h,(0|h)<0||(0|h)<=0&&!(e>>>0>=1))break A;h=(B(y,k)+B(M,v)|0)+B(N,s)|0,Q=_t(n,o,U,W),y=V,U=_t(c,b,Z,E),Q=U+Q|0,N=V+y|0,M=_t(l,u,H,S),y=M+Q|0,Q=V+(Q>>>0<U>>>0?N+1|0:N)|0,Q=y>>>0<M>>>0?Q+1|0:Q,N=Q;e:{if(!(0!=(0|y)|0!=(0|Q))){if((0|h)<0)break e;break A}if((0|N)>-1||(0|N)>=-1&&!(y>>>0<=4294967295))break A;if(Q=h,W=Q>>31,E=t,(0|Q)>=1?(a[t+40>>2]=1,h=-1):(0|h)<=-1?(a[t+40>>2]=-1,Q=0-Q|0,W=0-((0<h>>>0)+W|0)|0,h=1):(a[t+40>>2]=0,Q=0,W=0,h=0),a[E+40>>2]=h,a[t+24>>2]=Q,a[t+28>>2]=W,a[t+32>>2]=0-y,a[t+36>>2]=0-((0<y>>>0)+N|0),(0|w)>=1?(a[t+16>>2]=1,Q=-1):(0|w)<=-1?(a[t+16>>2]=-1,h=G,G=0-h|0,D=0-((0<h>>>0)+D|0)|0,Q=1):(a[t+16>>2]=0,G=0,D=0,Q=0),a[t>>2]=G,a[t+4>>2]=D,(0|F)<0||(0|F)<=0&&!(r>>>0>0)?(h=0,y=0,(0|F)>-1||(0|F)>=-1&&!(r>>>0<=4294967295)||(a[t+16>>2]=Q,h=0-r|0,y=0-((0<r>>>0)+F|0)|0)):(h=r,y=F),r=y,a[t+8>>2]=h,a[t+12>>2]=r,(0|JA(t+24|0,t))<=0)break A}a[f>>2]=J,r=a[J+12>>2],N=a[r+96>>2],U=a[r+92>>2],M=a[r+88>>2],r=e,F=p}if(!((0|F)>-1||(0|F)>=-1&&!(r>>>0<=4294967295)))for(;;){O=(B(U-T|0,k)+B(M-x|0,v)|0)+B(N-X|0,s)|0,h=O,G=h,D=h>>31;e:if(!(!e|!a[e+12>>2]||(Z=a[a[e+4>>2]+8>>2],a[Z+20>>2]<=a[A+100>>2]))){h=a[Z+12>>2],p=a[h+92>>2],Q=p-U|0,y=a[h+88>>2],w=y-M|0,J=a[h+96>>2],W=J-N|0,h=(B(Q,k)+B(w,v)|0)+B(W,s)|0,Q=_t(n,o,Q,Q>>31),E=V,I=_t(c,b,w,w>>31),Q=I+Q|0,E=V+E|0,W=_t(l,u,W,W>>31),w=W+Q|0,Q=V+(Q>>>0<I>>>0?E+1|0:E)|0,Q=w>>>0<W>>>0?Q+1|0:Q,E=Q;r:{if(!(0!=(0|w)|0!=(0|Q))){if((0|h)>0)break r;break e}if((0|E)>-1||(0|E)>=-1&&!(w>>>0<=4294967295))break e;if(Q=h,W=Q>>31,S=t,(0|Q)>=1?(a[t+40>>2]=1,h=-1):(0|h)<=-1?(a[t+40>>2]=-1,Q=0-Q|0,W=0-((0<h>>>0)+W|0)|0,h=1):(a[t+40>>2]=0,Q=0,W=0,h=0),a[S+40>>2]=h,a[t+24>>2]=Q,a[t+28>>2]=W,a[t+32>>2]=0-w,a[t+36>>2]=0-((0<w>>>0)+E|0),(0|O)>=1?(a[t+16>>2]=1,w=-1,h=G,Q=D):(0|O)<=-1?(a[t+16>>2]=-1,h=0-G|0,w=1,Q=0-((0<G>>>0)+D|0)|0):(w=0,a[t+16>>2]=0,h=0,Q=0),a[t>>2]=h,a[t+4>>2]=Q,h=r,Q=F,(0|F)>0||(0|F)>=0&&!(h>>>0<=0)||(h=0,Q=0,(0|F)>-1||(0|F)>=-1&&!(r>>>0<=4294967295)||(a[t+16>>2]=w,h=0-r|0,Q=0-((0<r>>>0)+F|0)|0)),a[t+8>>2]=h,a[t+12>>2]=Q,(0|JA(t+24|0,t))>=1)break e}e=(0|e)==(0|j)?0:Z,a[f>>2]=e,r=p-T|0,r=_t(n,o,r,r>>31),Q=V,h=y-x|0,F=_t(c,b,h,h>>31),h=r+F|0,Q=V+Q|0,r=J-X|0,G=_t(l,u,r,r>>31),N=h+G|0,r=N,h=V+(h>>>0<F>>>0?Q+1|0:Q)|0,F=r>>>0<G>>>0?h+1|0:h,M=y,U=p,N=J;continue}if(e=a[i>>2],!e|!a[e+12>>2])break A;if(J=a[a[e+8>>2]+4>>2],a[J+20>>2]<=a[A+100>>2])break A;if(e=a[J+12>>2],p=a[e+92>>2],T=p-T|0,h=T,w=h,W=h>>31,h=_t(h,W,R,g),Q=V,y=a[e+88>>2],x=y-x|0,E=x,Z=E,E>>=31,I=_t(Z,E,_,d),h=h+I|0,Q=V+Q|0,S=a[e+96>>2],X=S-X|0,e=X,H=e,z=e>>31,e=_t(m,C,e,z),(0|h)!=(0-e|0)|(0-(V+(0<e>>>0)|0)|0)!=(0|(h>>>0<I>>>0?Q+1|0:Q)))break A;if(e=U-p|0,e=_t(n,o,e,e>>31),h=V,Q=M-y|0,Q=_t(c,b,Q,Q>>31),e=e+Q|0,h=V+h|0,p=N-S|0,y=_t(l,u,p,p>>31),p=e+y|0,e=V+(e>>>0<Q>>>0?h+1|0:h)|0,e=p>>>0<y>>>0?e+1|0:e,y=e,(0|e)>-1||(0|e)>=-1&&!(p>>>0<=4294967295))break A;if(e=(B(T,k)+B(x,v)|0)+B(X,s)|0,h=_t(n,o,w,W),x=V,X=_t(c,b,Z,E),Q=X+h|0,x=V+x|0,T=_t(l,u,H,z),h=T+Q|0,Q=V+(Q>>>0<X>>>0?x+1|0:x)|0,Q=h>>>0<T>>>0?Q+1|0:Q,x=Q,0!=(0|h)|0!=(0|Q)){if((0|x)>-1||(0|x)>=-1&&!(h>>>0<=4294967295))break A;if(Q=e,W=Q>>31,E=t,(0|Q)>=1?(a[t+40>>2]=1,e=-1):(0|e)<=-1?(a[t+40>>2]=-1,Q=0-Q|0,W=0-((0<e>>>0)+W|0)|0,e=1):(a[t+40>>2]=0,Q=0,W=0,e=0),a[E+40>>2]=e,a[t+24>>2]=Q,a[t+28>>2]=W,a[t+32>>2]=0-h,a[t+36>>2]=0-((0<h>>>0)+x|0),(0|O)>=1?(a[t+16>>2]=1,e=-1):(0|O)<=-1?(a[t+16>>2]=-1,e=G,G=0-e|0,D=0-((0<e>>>0)+D|0)|0,e=1):(a[t+16>>2]=0,G=0,D=0,e=0),a[t>>2]=G,a[t+4>>2]=D,(0|F)<0||(0|F)<=0&&!(r>>>0>0)?(h=0,Q=0,(0|F)>-1||(0|F)>=-1&&!(r>>>0<=4294967295)||(a[t+16>>2]=e,h=0-r|0,Q=0-((0<r>>>0)+F|0)|0)):(h=r,Q=F),e=Q,a[t+8>>2]=h,a[t+12>>2]=e,(0|JA(t+24|0,t))>=0)break A}else if((0|e)<=0)break A;a[i>>2]=J,r=a[J+12>>2],X=a[r+96>>2],T=a[r+92>>2],e=a[f>>2],x=a[r+88>>2],r=p,F=y}}Y=t+48|0}function SA(A,e,r,i,f,t,n){var o,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,B=0,_=0;if(o=Y-48|0,Y=o,c=a[r+8>>2],c)for(d=c;;){if(a[d+20>>2]>a[A+100>>2]){a[o+44>>2]=-1,c=a[d+12>>2],l=a[c+96>>2]-a[r+96>>2]|0,a[o+40>>2]=l,b=a[c+92>>2]-a[r+92>>2]|0,a[o+36>>2]=b,u=a[c+88>>2]-a[r+88>>2]|0,a[o+32>>2]=u,c=f,k=b,B=b>>31,b=_t(a[c+8>>2],a[c+12>>2],b,B),v=V,C=b,b=u,_=b>>31,g=_t(a[c>>2],a[c+4>>2],b,_),u=C+g|0,c=V+v|0,c=u>>>0<g>>>0?c+1|0:c,v=u,u=l,g=l>>31,C=_t(a[f+16>>2],a[f+20>>2],l,g),v=v+C|0,l=V+c|0,l=v>>>0<C>>>0?l+1|0:l,c=t,k=_t(a[c+8>>2],a[c+12>>2],k,B),B=V,C=k,k=_t(a[c>>2],a[c+4>>2],b,_),b=C+k|0,c=V+B|0,c=b>>>0<k>>>0?c+1|0:c,u=_t(a[t+16>>2],a[t+20>>2],u,g),b=u+b|0,c=V+c|0,c=b>>>0<u>>>0?c+1|0:c,u=c,(0|c)<0||(0|c)<=0&&!(b>>>0>=1)?(0|u)>-1||(0|u)>=-1&&!(b>>>0<=4294967295)?(a[o+24>>2]=0,b=0,u=0,k=0,c=0):(a[o+24>>2]=-1,k=b,b=0-b|0,u=0-((0<k>>>0)+u|0)|0,k=1,c=-1):(a[o+24>>2]=1,k=-1,c=-1),a[o+8>>2]=b,a[o+12>>2]=u;A:{e:{r:{if(!((0|l)>0||(0|l)>=0&&!(v>>>0<=0))){if((0|l)>-1||(0|l)>=-1&&!(v>>>0<=4294967295))break r;a[o+24>>2]=k,c=v,v=0-c|0,l=0-((0<c>>>0)+l|0)|0}a[o+16>>2]=v,a[o+20>>2]=l;break e}if(a[o+16>>2]=0,a[o+20>>2]=0,!c)break A}s?(c=JA(o+8|0,n),(0|c)<=-1?(s=a[o+12>>2],a[n>>2]=a[o+8>>2],a[n+4>>2]=s,a[n+16>>2]=a[o+24>>2],c=o+16|0,l=a[c+4>>2],s=n+8|0,a[s>>2]=a[c>>2],a[s+4>>2]=l,s=d):c||(s=2!=(0|XA(s,d,i,o+32|0))^e?d:s)):(s=a[o+12>>2],a[n>>2]=a[o+8>>2],a[n+4>>2]=s,a[n+16>>2]=a[o+24>>2],c=o+16|0,l=a[c+4>>2],s=n+8|0,a[s>>2]=a[c>>2],a[s+4>>2]=l,s=d)}c=a[r+8>>2]}if(d=a[d>>2],(0|d)==(0|c))break}return Y=o+48|0,s}function XA(A,e,r,i){var f=0,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0;t=a[A+4>>2];A:{if((0|e)==a[A>>2]){if(f=2,(0|e)!=(0|t))break A;return t=a[e+12>>2],e=a[a[e+8>>2]+12>>2],o=a[e+96>>2],s=a[t+96>>2]-o|0,A=a[A+12>>2],f=a[e+92>>2],c=a[A+92>>2]-f|0,f=a[t+92>>2]-f|0,o=a[A+96>>2]-o|0,b=B(s,c)-B(f,o)|0,n=b,u=b>>31,b=a[r+8>>2],k=a[i+4>>2],v=a[r+4>>2],d=a[i+8>>2],l=B(b,k)-B(v,d)|0,l=_t(n,u,l,l>>31),u=V,n=f,f=a[A+88>>2],A=a[e+88>>2],f=f-A|0,t=a[t+88>>2]-A|0,A=B(n,f)-B(t,c)|0,e=A,n=A>>31,i=a[i>>2],r=a[r>>2],A=B(i,v)-B(r,k)|0,c=_t(e,n,A,A>>31),e=c+l|0,A=V+u|0,A=e>>>0<c>>>0?A+1|0:A,n=e,e=B(t,o)-B(f,s)|0,f=e,t=e>>31,e=B(r,d)-B(i,b)|0,r=_t(f,t,e,e>>31),e=n+r|0,A=V+A|0,A=e>>>0<r>>>0?A+1|0:A,(0|A)>0||(0|A)>=0&&!(e>>>0<=0)?2:1}f=(0|e)==(0|t)}return f}function TA(A,e,r){var i,t=0,n=0,c=0,l=0,u=0,s=0,v=_(0),d=_(0),g=0,R=_(0),Q=0,h=_(0),G=0,y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=0,E=0,Z=0,V=0;if(i=Y-48|0,Y=i,(0|r)<1)t=1900671690,c=-246811958,s=-246811958,n=-246811958,g=1900671690,Q=1900671690;else for(n=-246811958,Q=1900671690,G=r,u=e,g=1900671690,t=1900671690,s=-246811958,c=-246811958;l=u+8|0,D=a[l>>2],v=C[l>>2],b(0,n),n=k()<v?D:n,l=u+4|0,E=a[l>>2],d=C[l>>2],b(0,s),s=k()<d?E:s,Q=v<(b(0,Q),k())?D:Q,g=d<(b(0,g),k())?E:g,l=a[u>>2],v=C[u>>2],b(0,c),c=k()<v?l:c,t=v<(b(0,t),k())?l:t,u=u+16|0,G=G+-1|0,G;);if(b(0,s),y=k(),b(0,g),p=k(),d=_(y-p),b(0,n),F=k(),b(0,Q),R=k(),v=_(F-R),n=d<v,b(0,c),W=k(),b(0,t),w=k(),h=_(W-w),u=h<v,G=h<d,t=G?n?2:1:u<<1,a[A+112>>2]=t,c=G?(1^u)<<1:n?1:2,(0|c)==(0|t)&&(c=(t+1>>>0)%3|0),a[A+104>>2]=c,n=(3^t)-c|0,a[A+108>>2]=n,v=_(v*_(9788566967472434e-20)),d=_(d*_(9788566967472434e-20)),h=_(h*_(9788566967472434e-20)),a[A+12>>2]=0,((n+1|0)%3|0)!=(0|t)&&(d=_(-d),h=_(-h),v=_(-v)),C[A+8>>2]=v,C[A+4>>2]=d,C[A>>2]=h,a[A+28>>2]=0,C[A+24>>2]=_(F+R)*_(.5),C[A+20>>2]=_(y+p)*_(.5),C[A+16>>2]=_(W+w)*_(.5),a[i+36>>2]=0,a[i+28>>2]=0,a[i+32>>2]=0,u=v!=_(0),y=_(_(1)/v),G=d!=_(0),p=_(_(1)/d),g=h!=_(0),F=_(_(1)/h),f[i+40|0]=1,!((0|r)<1)&&(t=dA(r<<4),a[i+36>>2]=t,a[i+32>>2]=r,f[i+40|0]=1,n=i+16|0,c=a[n+4>>2],Q=t+8|0,a[Q>>2]=a[n>>2],a[Q+4>>2]=c,c=a[i+12>>2],a[t>>2]=a[i+8>>2],a[t+4>>2]=c,1!=(0|r)))for(c=r+-1|0,t=16;Q=a[i+12>>2],s=a[i+36>>2]+t|0,l=s,a[l>>2]=a[i+8>>2],a[l+4>>2]=Q,Q=a[n+4>>2],s=l+8|0,a[s>>2]=a[n>>2],a[s+4>>2]=Q,t=t+16|0,c=c+-1|0,c;);if(v=u?y:v,d=G?p:d,h=g?F:h,a[i+28>>2]=r,!((0|r)<1)){for(t=a[i+36>>2]+8|0,n=(i+8|0)+(a[A+104>>2]<<2)|0,u=(i+8|0)+(a[A+112>>2]<<2)|0,G=(i+8|0)+(a[A+108>>2]<<2)|0,y=C[A+24>>2],p=C[A+20>>2],F=C[A+16>>2],c=0;R=C[e+4>>2],W=C[e+8>>2],w=C[e>>2],a[i+20>>2]=0,C[i+8>>2]=h*_(w-F),C[i+16>>2]=v*_(W-y),C[i+12>>2]=d*_(R-p),a[t+4>>2]=c,s=t+-8|0,R=C[G>>2],l=_(m(R))<_(2147483648)?~~R:-2147483648,a[s>>2]=l,s=t+-4|0,R=C[u>>2],l=_(m(R))<_(2147483648)?~~R:-2147483648,a[s>>2]=l,s=t,R=C[n>>2],l=_(m(R))<_(2147483648)?~~R:-2147483648,a[s>>2]=l,t=t+16|0,e=e+16|0,c=c+1|0,(0|c)!=(0|r););(0|r)<2||function A(e,r,i,f){var t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0;for(u=Y-16|0,Y=u,c=a[e+12>>2],o=c+((i+f|0)/2<<4)|0,C=a[o+8>>2],v=a[o+4>>2],d=a[o>>2],o=i,l=f;;){for(t=(o<<4)+c|0;;){A:{if(n=a[t+4>>2],!((0|n)<(0|v))){if((0|n)!=(0|v))break A;if(n=a[t>>2],!((0|n)<(0|d))&&(0|n)!=(0|d)|a[t+8>>2]>=(0|C))break A}t=t+16|0,o=o+1|0;continue}break}for(s=l<<4;;){A:{if(n=c+s|0,b=a[n+4>>2],!((0|v)<(0|b))){if((0|b)!=(0|v))break A;if(b=a[n>>2],!((0|d)<(0|b))&&(0|b)!=(0|d)|(0|C)>=a[n+8>>2])break A}s=s+-16|0,l=l+-1|0;continue}break}if((0|o)<=(0|l)&&(b=t+8|0,k=a[b+4>>2],c=u+8|0,a[c>>2]=a[b>>2],a[c+4>>2]=k,k=a[t+4>>2],a[u>>2]=a[t>>2],a[u+4>>2]=k,k=a[n+4>>2],a[t>>2]=a[n>>2],a[t+4>>2]=k,t=n+8|0,n=a[t+4>>2],a[b>>2]=a[t>>2],a[b+4>>2]=n,t=a[e+12>>2]+s|0,s=a[u+4>>2],a[t>>2]=a[u>>2],a[t+4>>2]=s,n=a[c+4>>2],t=t+8|0,a[t>>2]=a[c>>2],a[t+4>>2]=n,l=l+-1|0,o=o+1|0),!((0|o)<=(0|l)))break;c=a[e+12>>2]}(0|l)>(0|i)&&A(e,r,i,l),(0|o)<(0|f)&&A(e,r,o,f),Y=u+16|0}(i+24|0,i+8|0,0,r+-1|0)}if(a[A+44>>2]=r,a[A+40>>2]=0,a[A+36>>2]=a[A+32>>2],n=a[A+84>>2],(0|n)<(0|r)){if(a[A+88>>2]<(0|r)){if(r?(c=dA(r<<2),t=a[A+84>>2]):(c=0,t=n),(0|t)>=1)for(e=0;a[e+c>>2]=a[a[A+92>>2]+e>>2],e=e+4|0,t=t+-1|0,t;);e=a[A+92>>2],e&&(o[A+96|0]&&CA(e),a[A+92>>2]=0),a[A+92>>2]=c,a[A+88>>2]=r,f[A+96|0]=1}for(e=n<<2,t=r-n|0;a[a[A+92>>2]+e>>2]=0,e=e+4|0,t=t+-1|0,t;);}if(a[A+84>>2]=r,(0|r)>=1)for(g=0;;){if(n=a[A+40>>2],!(n||(e=a[A+36>>2],e?a[A+36>>2]=a[e+8>>2]:(e=dA(12),a[e+8>>2]=0,t=a[A+44>>2],a[e+4>>2]=t,Z=e,V=dA(B(t,112)),a[Z>>2]=V,t=a[A+32>>2],a[A+32>>2]=e,a[e+8>>2]=t),n=a[e>>2],u=a[e+4>>2],(0|u)<1)))for(e=0,t=n;s=t,t=t+112|0,e=e+1|0,a[s>>2]=(0|e)<(0|u)?t:0,(0|e)!=(0|u););if(a[A+40>>2]=a[n>>2],e=n+8|0,a[e>>2]=0,a[e+4>>2]=0,a[n+16>>2]=0,a[n>>2]=0,a[n+4>>2]=0,a[n+104>>2]=-1,a[e>>2]=0,e=a[i+36>>2]+(g<<4)|0,t=a[e+4>>2],a[n+88>>2]=a[e>>2],a[n+92>>2]=t,e=e+8|0,t=a[e+4>>2],u=n+96|0,a[u>>2]=a[e>>2],a[u+4>>2]=t,a[n+104>>2]=-1,a[a[A+92>>2]+(g<<2)>>2]=n,g=g+1|0,(0|g)==(0|r))break}e=a[i+36>>2],e&&(o[i+40|0]&&CA(e),a[i+36>>2]=0),a[A+116>>2]=0,a[A+120>>2]=0,a[A+100>>2]=-3,a[A+60>>2]=B(r,6),a[A+56>>2]=0,a[A+52>>2]=a[A+48>>2],a[i+36>>2]=0,f[i+40|0]=1,a[i+28>>2]=0,a[i+32>>2]=0,e=i+16|0,a[e>>2]=0,a[e+4>>2]=0,a[i+8>>2]=0,a[i+12>>2]=0,UA(A,0,r,i+8|0),a[A+124>>2]=a[i+8>>2],A=a[i+36>>2],A&&(o[i+40|0]&&CA(A),a[i+36>>2]=0),Y=i+48|0}function jA(A,e,r){var i,f=_(0),t=_(0),n=0;i=Y-16|0,Y=i;A:{e:{r:{i:{if(a[r+100>>2]>=0)C[(a[e+108>>2]<<2)+i>>2]=a[r+88>>2];else if(f=OA(r+24|0),n=r+72|0,t=OA(n),C[(a[e+108>>2]<<2)+i>>2]=f/t,a[r+100>>2]<0)break i;C[(a[e+112>>2]<<2)+i>>2]=a[r+92>>2];break r}if(f=OA(r+40|0),t=OA(n),C[(a[e+112>>2]<<2)+i>>2]=f/t,a[r+100>>2]<0)break e}f=_(a[r+96>>2]);break A}f=_(OA(r+56|0)/OA(r+72|0))}C[(a[e+104>>2]<<2)+i>>2]=f,a[A+12>>2]=0,C[A+8>>2]=_(C[i+8>>2]*C[e+8>>2])+C[e+24>>2],C[A+4>>2]=_(C[i+4>>2]*C[e+4>>2])+C[e+20>>2],C[A>>2]=_(C[i>>2]*C[e>>2])+C[e+16>>2],Y=i+16|0}function OA(A){var e,r,i=0,f=0,t=0,n=_(0);return e=Y-16|0,Y=e,i=a[A+12>>2],f=i,r=a[A+8>>2],(0|i)<0||(0|i)<=0&&!(r>>>0>=0)?(t=a[A+4>>2],i=a[A>>2],A=i,a[e>>2]=0-A,a[e+4>>2]=0-(t+(0<A>>>0)|0),f^=-1,A=!(A|t),t=-1^r,i=A+t|0,i>>>0<t>>>0&&(f=f+1|0),A=e,a[A+8>>2]=i,a[A+12>>2]=f,n=_(-OA(A))):n=_(_(_(+(r>>>0)+4294967296*+(f>>>0))*_(0x10000000000000000))+_(+d[A>>2]+4294967296*+d[A+4>>2])),Y=e+16|0,n}function HA(A,e,r){var i,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,_=0,m=0,R=0,Q=0;i=Y-144|0,Y=i;A:if((0|r)<=0)e=a[A+12>>2],e&&(o[A+16|0]&&CA(e),a[A+12>>2]=0),a[A+12>>2]=0,f[A+16|0]=1,a[A+4>>2]=0,a[A+8>>2]=0,e=a[A+32>>2],e&&(o[A+36|0]&&CA(e),a[A+32>>2]=0),a[A+32>>2]=0,a[A+24>>2]=0,a[A+28>>2]=0,f[A+36|0]=1,e=a[A+52>>2],e&&(o[A+56|0]&&CA(e),a[A+52>>2]=0),a[A+52>>2]=0,a[A+44>>2]=0,a[A+48>>2]=0,f[A+56|0]=1;else{if(f[i+112|0]=1,t=i+88|0,a[t>>2]=0,a[t+4>>2]=256,t=i+72|0,a[t>>2]=0,a[t+4>>2]=256,t=i+56|0,a[t>>2]=0,a[t+4>>2]=256,a[i+108>>2]=0,t=i+100|0,a[t>>2]=0,a[t+4>>2]=0,a[i+80>>2]=0,a[i+84>>2]=0,a[i+64>>2]=0,a[i+68>>2]=0,a[i+48>>2]=0,a[i+52>>2]=0,TA(i+16|0,e,r),r=a[A+4>>2],(0|r)<=-1)for(a[A+8>>2]<=-1&&(e=a[A+12>>2],e&&(o[A+16|0]&&CA(e),a[A+12>>2]=0),f[A+16|0]=1,a[A+8>>2]=0,a[A+12>>2]=0),e=r<<4;t=a[i+4>>2],u=a[A+12>>2]+e|0,b=u,a[b>>2]=a[i>>2],a[b+4>>2]=t,t=i+8|0,b=a[t+4>>2],u=u+8|0,a[u>>2]=a[t>>2],a[u+4>>2]=b,e=e+16|0,t=r+1|0,u=t>>>0>=r>>>0,r=t,u;);if(a[A+4>>2]=0,a[i+8>>2]=0,a[i>>2]=0,a[i+4>>2]=0,r=a[A+24>>2],(0|r)<=-1)for(a[A+28>>2]<=-1&&(e=a[A+32>>2],e&&(o[A+36|0]&&CA(e),a[A+32>>2]=0),a[A+28>>2]=0,a[A+32>>2]=0,f[A+36|0]=1),e=B(r,12);u=a[i+4>>2],t=a[A+32>>2]+e|0,a[t>>2]=a[i>>2],a[t+4>>2]=u,a[t+8>>2]=a[i+8>>2],e=e+12|0,t=r+1|0,u=t>>>0>=r>>>0,r=t,u;);if(a[A+24>>2]=0,r=a[A+44>>2],(0|r)<=-1&&(e=a[A+52>>2],a[A+48>>2]<=-1?(!e|!o[A+56|0]||CA(e),f[A+56|0]=1,a[A+48>>2]=0,a[A+52>>2]=0,t=0):t=e,e=r<<2,X(t+e|0,0,0-e|0)),a[A+44>>2]=0,e=a[i+140>>2],!(a[e+104>>2]>-1)){for(a[e+104>>2]=0,k=dA(4),a[k>>2]=e,t=1,b=1,u=k;;){if(C=a[(m<<2)+k>>2],jA(i,i+16|0,C),e=a[A+4>>2],(0|e)==a[A+8>>2]&&(n=e?e<<1:1,!((0|e)>=(0|n)))){if(n?(c=dA(n<<4),e=a[A+4>>2]):c=0,(0|e)>=1)for(r=0;l=a[A+12>>2]+r|0,v=a[l+4>>2],d=r+c|0,a[d>>2]=a[l>>2],a[d+4>>2]=v,l=l+8|0,v=a[l+4>>2],d=d+8|0,a[d>>2]=a[l>>2],a[d+4>>2]=v,r=r+16|0,e=e+-1|0,e;);e=a[A+12>>2],e&&(o[A+16|0]&&CA(e),a[A+12>>2]=0),a[A+12>>2]=c,f[A+16|0]=1,a[A+8>>2]=n,e=a[A+4>>2]}if(r=a[i+4>>2],e=a[A+12>>2]+(e<<4)|0,a[e>>2]=a[i>>2],a[e+4>>2]=r,R=i+8|0,r=R,n=a[r+4>>2],e=e+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=n,a[A+4>>2]=a[A+4>>2]+1,d=a[C+8>>2],d){for(C=-1,l=d,v=-1;;){if(r=a[l+20>>2],(0|r)<=-1){if(c=a[A+24>>2],a[R>>2]=0,a[i>>2]=0,a[i+4>>2]=0,r=c,(0|r)==a[A+28>>2]&&(s=r?c<<1:1,!((0|r)>=(0|s)))){if(s?(n=dA(B(s,12)),e=a[A+24>>2]):(n=0,e=c),(0|e)>=1)for(r=0;g=a[A+32>>2]+r|0,Q=a[g+4>>2],_=r+n|0,a[_>>2]=a[g>>2],a[_+4>>2]=Q,a[_+8>>2]=a[g+8>>2],r=r+12|0,e=e+-1|0,e;);e=a[A+32>>2],e&&(o[A+36|0]&&CA(e),a[A+32>>2]=0),a[A+32>>2]=n,f[A+36|0]=1,a[A+28>>2]=s,r=a[A+24>>2]}if(e=a[A+32>>2]+B(r,12)|0,r=a[i+4>>2],a[e>>2]=a[i>>2],a[e+4>>2]=r,a[e+8>>2]=a[R>>2],e=a[A+24>>2]+1|0,a[A+24>>2]=e,a[R>>2]=0,a[i>>2]=0,a[i+4>>2]=0,a[A+28>>2]==(0|e)&&(s=e?e<<1:1,!((0|e)>=(0|s)))){if(s?(n=dA(B(s,12)),e=a[A+24>>2]):n=0,(0|e)>=1)for(r=0;g=a[A+32>>2]+r|0,Q=a[g+4>>2],_=r+n|0,a[_>>2]=a[g>>2],a[_+4>>2]=Q,a[_+8>>2]=a[g+8>>2],r=r+12|0,e=e+-1|0,e;);e=a[A+32>>2],e&&(o[A+36|0]&&CA(e),a[A+32>>2]=0),a[A+32>>2]=n,f[A+36|0]=1,a[A+28>>2]=s,e=a[A+24>>2]}if(r=a[i+4>>2],e=a[A+32>>2]+B(e,12)|0,a[e>>2]=a[i>>2],a[e+4>>2]=r,a[e+8>>2]=a[R>>2],a[A+24>>2]=a[A+24>>2]+1,a[l+20>>2]=c,g=c+1|0,a[a[l+8>>2]+20>>2]=g,_=a[A+32>>2],s=_+B(c,12)|0,a[s+4>>2]=1,a[s+16>>2]=-1,c=a[l+12>>2],e=a[c+104>>2],(0|e)>-1)c=t,t=e;else{if(a[c+104>>2]=t,(0|t)!=(0|b)||(n=b?b<<1:1,(0|b)>=(0|n)))e=u,n=b;else{e=n?dA(n<<2):0;e:{if((0|b)>=1)for(r=e;a[r>>2]=a[k>>2],r=r+4|0,k=k+4|0,b=b+-1|0,b;);else if(!k)break e;CA(u)}k=e}a[(t<<2)+k>>2]=c,c=t+1|0,u=e,b=n}a[8+(_+B(g,12)|0)>>2]=m,a[s+8>>2]=t,t=c,r=a[l+20>>2]}if(e=r,(0|C)>=0&&(a[a[A+32>>2]+B(r,12)>>2]=C-r,e=v),C=r,v=e,l=a[l>>2],(0|d)==(0|l))break}a[a[A+32>>2]+B(e,12)>>2]=r-e}if(m=m+1|0,!((0|m)<(0|t)))break}for(b=0;;){if(c=a[a[(b<<2)+k>>2]+8>>2],c)for(e=c;;){if(r=a[e+20>>2],(0|r)>=0){if(t=a[A+44>>2],(0|t)==a[A+48>>2]&&(v=t?t<<1:1,!((0|t)>=(0|v)))){v?(C=dA(v<<2),t=a[A+44>>2]):C=0,n=a[A+52>>2];e:{if((0|t)>=1)for(r=C,l=n;a[r>>2]=a[l>>2],r=r+4|0,l=l+4|0,t=t+-1|0,t;);else if(!n)break e;o[A+56|0]&&CA(n),a[A+52>>2]=0,t=a[A+44>>2]}a[A+48>>2]=v,a[A+52>>2]=C,f[A+56|0]=1,r=a[e+20>>2]}for(a[a[A+52>>2]+(t<<2)>>2]=r,a[A+44>>2]=a[A+44>>2]+1,r=e;a[r+20>>2]=-1,r=a[a[r+8>>2]+4>>2],(0|r)!=(0|e););}if(e=a[e>>2],(0|c)==(0|e))break}if(b=b+1|0,(0|b)==(0|m))break}k&&CA(u)}for(A=a[i+108>>2],A&&(o[i+112|0]&&CA(A),a[i+108>>2]=0),a[i+108>>2]=0,f[i+112|0]=1,a[i+100>>2]=0,a[i+104>>2]=0;A=a[i+80>>2],A;)a[i+80>>2]=a[A+8>>2],CA(a[A>>2]),CA(A);for(;A=a[i+64>>2],A;)a[i+64>>2]=a[A+8>>2],CA(a[A>>2]),CA(A);for(;;){if(A=a[i+48>>2],!A)break A;a[i+48>>2]=a[A+8>>2],CA(a[A>>2]),CA(A)}}Y=i+144|0}function zA(A){return DA(A),a[A+56>>2]=0,a[A>>2]=7108,A}function PA(A,e){var r=0,i=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,_=0,m=0;if(a[A+8>>2]<(0|e)){if(s=e?dA(B(e,36)):0,C=a[A+4>>2],!((0|C)<1)){for(;;){if(r=B(k,36),t=r+s|0,a[t+4>>2]=0,a[t+8>>2]=0,f[t+16|0]=1,a[t+12>>2]=0,v=t+4|0,l=r+a[A+12>>2]|0,b=a[l+4>>2],(0|b)>=1){m=t+8|0,g=t+16|0,_=b<<2,n=dA(_),d=t+12|0,u=a[d>>2],c=a[v>>2];A:{if((0|c)>=1)for(i=n,r=u;a[i>>2]=a[r>>2],i=i+4|0,r=r+4|0,c=c+-1|0,c;);else if(!u)break A;o[0|g]&&CA(u)}for(a[d>>2]=n,f[0|g]=1,a[m>>2]=b,X(n,0,_),a[v>>2]=b,i=a[l+12>>2],r=a[d>>2];a[r>>2]=a[i>>2],r=r+4|0,i=i+4|0,b=b+-1|0,b;);}else a[v>>2]=b;if(r=a[l+24>>2],a[t+20>>2]=a[l+20>>2],a[t+24>>2]=r,i=l+28|0,n=a[i+4>>2],r=t+28|0,a[r>>2]=a[i>>2],a[r+4>>2]=n,k=k+1|0,(0|k)==(0|C))break}if(c=a[A+4>>2],!((0|c)<1))for(r=8;i=a[A+12>>2]+r|0,u=i+-4|0,n=i+4|0,t=a[n>>2],t&&(o[i+8|0]&&CA(t),a[n>>2]=0),a[u>>2]=0,a[n>>2]=0,a[i>>2]=0,f[i+8|0]=1,r=r+36|0,c=c+-1|0,c;);}r=a[A+12>>2],r&&(o[A+16|0]&&CA(r),a[A+12>>2]=0),a[A+12>>2]=s,f[A+16|0]=1,a[A+8>>2]=e}}function KA(A,e,r){var i,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=_(0),g=0,R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=0,I=_(0);i=Y-32|0,Y=i,d=C[r+8>>2],_(m(d))>_(.7071067690849304)?(Q=C[r+4>>2],h=_(_(d*d)+_(Q*Q)),R=_(_(1)/_(y(h))),F=_(h*R),p=C[r>>2],h=_(-_(d*R)),w=_(p*h),Q=_(Q*R),G=_(-_(p*Q)),p=_(0)):(h=C[r>>2],Q=C[r+4>>2],p=_(_(h*h)+_(Q*Q)),R=_(_(1)/_(y(p))),w=_(p*R),p=_(-_(Q*R)),G=_(d*p),h=_(h*R),F=_(-_(d*h)),Q=_(0)),c=a[A+4>>2];A:if((0|c)>=2){for(n=a[A+12>>2];t=n+u|0,l=t+8|0,_(_(_(p*C[t>>2])+_(h*C[t+4>>2]))+_(Q*C[l>>2]))<_(_(_(p*C[n>>2])+_(h*C[n+4>>2]))+_(Q*C[n+8>>2]))&&(s=n+16|0,v=a[s+4>>2],c=i+24|0,a[c>>2]=a[s>>2],a[c+4>>2]=v,g=n+8|0,v=a[g+4>>2],k=i+16|0,a[k>>2]=a[g>>2],a[k+4>>2]=v,v=a[n+4>>2],a[i+8>>2]=a[n>>2],a[i+12>>2]=v,v=a[t+4>>2],a[n>>2]=a[t>>2],a[n+4>>2]=v,n=a[l+4>>2],a[g>>2]=a[l>>2],a[g+4>>2]=n,n=t+16|0,t=a[n+4>>2],a[s>>2]=a[n>>2],a[s+4>>2]=t,l=a[i+12>>2],n=a[A+12>>2]+u|0,t=n,a[t>>2]=a[i+8>>2],a[t+4>>2]=l,l=a[c+4>>2],t=t+16|0,a[t>>2]=a[c>>2],a[t+4>>2]=l,t=a[k+4>>2],n=n+8|0,a[n>>2]=a[k>>2],a[n+4>>2]=t,n=a[A+12>>2],c=a[A+4>>2]),u=u+24|0,b=b+1|0,(0|b)<(0|c););if(a[n+16>>2]=-246811958,(0|c)>=2)for(u=c+-1|0,t=n+40|0,D=C[n+8>>2],E=C[n>>2],V=C[n+4>>2];R=_(0),g=t,d=_(C[t+-16>>2]-E),Z=_(C[t+-12>>2]-V),I=_(C[t+-8>>2]-D),W=_(_(_(F*d)+_(G*Z))+_(w*I)),d=_(_(_(p*d)+_(h*Z))+_(Q*I)),_(_(W*W)+_(d*d))<_(1.1920928955078125e-7)||(R=_(m(W)),d>=_(0)?(d=_(_(d-R)/_(d+R)),R=_(.7853981852531433)):(d=_(_(d+R)/_(R-d)),R=_(2.356194496154785)),d=_(R+_(d*_(-.7853981852531433))),R=W<_(0)?_(-d):d),C[g>>2]=R,t=t+24|0,u=u+-1|0,u;);if(b=n+8|0,u=a[b+4>>2],t=i+16|0,a[t>>2]=a[b>>2],a[t+4>>2]=u,t=a[n+4>>2],a[i+8>>2]=a[n>>2],a[i+12>>2]=t,function A(e,r,i,f){var t=_(0),n=0,o=0,c=0,b=_(0),l=0,u=0,s=0,k=0,v=0,d=_(0),g=0,m=_(0),R=_(0),Q=_(0),h=_(0),G=0,y=0,p=0,F=0,W=_(0),w=_(0),D=_(0),E=0;for(s=Y-32|0,Y=s,l=a[e+12>>2],o=l+B((i+f|0)/2|0,24)|0,F=a[o+20>>2],m=C[o+16>>2],W=C[o+8>>2],w=C[o+4>>2],D=C[o>>2],o=i,u=f;;){for(R=C[r>>2],b=_(D-R),t=_(b*b),Q=C[r+4>>2],b=_(w-Q),t=_(t+_(b*b)),h=C[r+8>>2],b=_(W-h),b=_(t+_(b*b)),n=20+(B(o,24)+l|0)|0;;){e:{t=C[n+-4>>2];r:if(t==m){if(t=_(C[n+-20>>2]-R),d=_(t*t),t=_(C[n+-16>>2]-Q),d=_(d+_(t*t)),t=_(C[n+-12>>2]-h),t=_(d+_(t*t)),t!=b){if(t<b)break r;break e}if(a[n>>2]>=(0|F))break e}else if(!(t<m))break e;n=n+24|0,o=o+1|0;continue}break}for(k=B(u,24);;){e:{c=k+l|0,G=c+16|0,t=C[G>>2];r:if(m==t){if(t=_(C[c>>2]-R),d=_(t*t),t=_(C[c+4>>2]-Q),d=_(d+_(t*t)),t=_(C[c+8>>2]-h),t=_(d+_(t*t)),b!=t){if(b<t)break r;break e}if((0|F)>=a[c+20>>2])break e}else if(!(m<t))break e;k=k+-24|0,u=u+-1|0;continue}break}if((0|o)<=(0|u)&&(n=n+-20|0,y=n+16|0,g=y,v=a[g+4>>2],l=s+24|0,a[l>>2]=a[g>>2],a[l+4>>2]=v,g=n+8|0,E=a[g+4>>2],p=s+16|0,v=p,a[v>>2]=a[g>>2],a[v+4>>2]=E,v=a[n+4>>2],a[s+8>>2]=a[n>>2],a[s+12>>2]=v,v=a[c+4>>2],a[n>>2]=a[c>>2],a[n+4>>2]=v,n=c+8|0,c=a[n+4>>2],a[g>>2]=a[n>>2],a[g+4>>2]=c,n=a[G+4>>2],a[y>>2]=a[G>>2],a[y+4>>2]=n,n=a[e+12>>2]+k|0,k=a[s+12>>2],a[n>>2]=a[s+8>>2],a[n+4>>2]=k,k=a[l+4>>2],c=n+16|0,a[c>>2]=a[l>>2],a[c+4>>2]=k,c=a[p+4>>2],n=n+8|0,a[n>>2]=a[p>>2],a[n+4>>2]=c,u=u+-1|0,o=o+1|0),!((0|o)<=(0|u)))break;l=a[e+12>>2]}(0|u)>(0|i)&&A(e,r,i,u),(0|o)<(0|f)&&A(e,r,o,f),Y=s+32|0}(A,i+8|0,1,c+-1|0),t=a[A+12>>2],b=a[e+4>>2],(0|b)==a[e+8>>2]&&(u=b?b<<1:1,!((0|b)>=(0|u)))){if(u?(c=dA(B(u,24)),b=a[e+4>>2]):c=0,(0|b)>=1)for(n=0;g=a[e+12>>2]+n|0,s=g,v=a[s+4>>2],l=n+c|0,a[l>>2]=a[s>>2],a[l+4>>2]=v,s=s+16|0,v=a[s+4>>2],k=l+16|0,a[k>>2]=a[s>>2],a[k+4>>2]=v,s=g+8|0,k=a[s+4>>2],l=l+8|0,a[l>>2]=a[s>>2],a[l+4>>2]=k,n=n+24|0,b=b+-1|0,b;);n=a[e+12>>2],n&&(o[e+16|0]&&CA(n),a[e+12>>2]=0),a[e+12>>2]=c,f[e+16|0]=1,a[e+8>>2]=u,b=a[e+4>>2]}if(n=a[e+12>>2]+B(b,24)|0,b=a[t+4>>2],a[n>>2]=a[t>>2],a[n+4>>2]=b,b=t+16|0,u=a[b+4>>2],c=n+16|0,a[c>>2]=a[b>>2],a[c+4>>2]=u,t=t+8|0,c=a[t+4>>2],n=n+8|0,a[n>>2]=a[t>>2],a[n+4>>2]=c,t=a[e+4>>2]+1|0,a[e+4>>2]=t,b=a[A+12>>2]+24|0,a[e+8>>2]==(0|t)&&(u=t?t<<1:1,!((0|t)>=(0|u)))){if(u?(c=dA(B(u,24)),t=a[e+4>>2]):c=0,(0|t)>=1)for(n=0;g=a[e+12>>2]+n|0,s=g,v=a[s+4>>2],l=n+c|0,a[l>>2]=a[s>>2],a[l+4>>2]=v,s=s+16|0,v=a[s+4>>2],k=l+16|0,a[k>>2]=a[s>>2],a[k+4>>2]=v,s=g+8|0,k=a[s+4>>2],l=l+8|0,a[l>>2]=a[s>>2],a[l+4>>2]=k,n=n+24|0,t=t+-1|0,t;);n=a[e+12>>2],n&&(o[e+16|0]&&CA(n),a[e+12>>2]=0),a[e+12>>2]=c,f[e+16|0]=1,a[e+8>>2]=u,t=a[e+4>>2]}if(c=a[b+4>>2],n=a[e+12>>2]+B(t,24)|0,t=n,a[t>>2]=a[b>>2],a[t+4>>2]=c,c=b+16|0,u=a[c+4>>2],t=t+16|0,a[t>>2]=a[c>>2],a[t+4>>2]=u,t=b+8|0,c=a[t+4>>2],n=n+8|0,a[n>>2]=a[t>>2],a[n+4>>2]=c,t=a[e+4>>2]+1|0,a[e+4>>2]=t,2==a[A+4>>2])break A;for(s=2;;){e:if(!((0|t)<2)){for(b=B(t,48),u=t<<1,k=a[e+12>>2],n=(k+B(t,24)|0)-48|0,l=a[A+12>>2]+B(s,24)|0,d=C[l+8>>2],R=C[l+4>>2],h=C[l>>2],Q=C[r+8>>2],p=C[r+4>>2],W=C[r>>2];;){if(F=C[n>>2],w=_(F-C[n+24>>2]),G=C[n+4>>2],D=_(G-R),G=_(G-C[n+28>>2]),F=_(F-h),Z=_(_(_(w*D)-_(G*F))*Q),V=G,G=C[n+8>>2],E=_(G-d),G=_(G-C[n+32>>2]),!(_(Z+_(_(W*_(_(V*E)-_(G*D)))+_(p*_(_(G*F)-_(w*E)))))>_(0))){if(t=t+-1|0,a[e+4>>2]=t,n=n+-24|0,b=b+-48|0,u=u+-2|0,(0|t)>1)continue;break e}break}if(!(a[e+8>>2]!=(0|t)|(0|t)>=(0|u))){if(k=dA(b),c=a[e+4>>2],(0|c)>=1)for(n=0;v=a[e+12>>2]+n|0,b=v,N=a[b+4>>2],t=n+k|0,a[t>>2]=a[b>>2],a[t+4>>2]=N,b=b+16|0,N=a[b+4>>2],g=t+16|0,a[g>>2]=a[b>>2],a[g+4>>2]=N,b=v+8|0,g=a[b+4>>2],t=t+8|0,a[t>>2]=a[b>>2],a[t+4>>2]=g,n=n+24|0,c=c+-1|0,c;);n=a[e+12>>2],n&&(o[e+16|0]&&CA(n),a[e+12>>2]=0),a[e+12>>2]=k,f[e+16|0]=1,a[e+8>>2]=u,t=a[e+4>>2]}c=a[l+4>>2],n=B(t,24)+k|0,t=n,a[t>>2]=a[l>>2],a[t+4>>2]=c,c=l+16|0,b=a[c+4>>2],t=t+16|0,a[t>>2]=a[c>>2],a[t+4>>2]=b,t=l+8|0,c=a[t+4>>2],n=n+8|0,a[n>>2]=a[t>>2],a[n+4>>2]=c,t=a[e+4>>2]+1|0,a[e+4>>2]=t}if(1==(0|t)){if(t=a[A+12>>2]+B(s,24)|0,n=1,1==a[e+8>>2]){if(c=dA(48),b=a[e+4>>2],(0|b)>=1)for(n=0;g=a[e+12>>2]+n|0,l=g,v=a[l+4>>2],u=n+c|0,a[u>>2]=a[l>>2],a[u+4>>2]=v,l=l+16|0,v=a[l+4>>2],k=u+16|0,a[k>>2]=a[l>>2],a[k+4>>2]=v,l=g+8|0,k=a[l+4>>2],u=u+8|0,a[u>>2]=a[l>>2],a[u+4>>2]=k,n=n+24|0,b=b+-1|0,b;);n=a[e+12>>2],n&&(o[e+16|0]&&CA(n),a[e+12>>2]=0),a[e+12>>2]=c,f[e+16|0]=1,a[e+8>>2]=2,n=a[e+4>>2]}b=a[t+4>>2],n=a[e+12>>2]+B(n,24)|0,a[n>>2]=a[t>>2],a[n+4>>2]=b,b=t+16|0,u=a[b+4>>2],c=n+16|0,a[c>>2]=a[b>>2],a[c+4>>2]=u,t=t+8|0,c=a[t+4>>2],n=n+8|0,a[n>>2]=a[t>>2],a[n+4>>2]=c,t=a[e+4>>2]+1|0,a[e+4>>2]=t}if(s=s+1|0,(0|s)==a[A+4>>2])break}}else if(1==(0|c))for(t=a[e+4>>2];;){if(r=a[A+12>>2],a[e+8>>2]==(0|t)&&(b=t?t<<1:1,!((0|t)>=(0|b)))){if(b?(c=dA(B(b,24)),t=a[e+4>>2]):c=0,(0|t)>=1)for(n=0;g=a[e+12>>2]+n|0,s=g,v=a[s+4>>2],l=n+c|0,a[l>>2]=a[s>>2],a[l+4>>2]=v,s=s+16|0,v=a[s+4>>2],k=l+16|0,a[k>>2]=a[s>>2],a[k+4>>2]=v,s=g+8|0,k=a[s+4>>2],l=l+8|0,a[l>>2]=a[s>>2],a[l+4>>2]=k,n=n+24|0,t=t+-1|0,t;);n=a[e+12>>2],n&&(o[e+16|0]&&CA(n),a[e+12>>2]=0),a[e+12>>2]=c,f[e+16|0]=1,a[e+8>>2]=b,t=a[e+4>>2]}if(c=a[r+4>>2],n=a[e+12>>2]+B(t,24)|0,t=n,a[t>>2]=a[r>>2],a[t+4>>2]=c,c=r+16|0,b=a[c+4>>2],t=t+16|0,a[t>>2]=a[c>>2],a[t+4>>2]=b,r=r+8|0,t=a[r+4>>2],n=n+8|0,a[n>>2]=a[r>>2],a[n+4>>2]=t,t=a[e+4>>2]+1|0,a[e+4>>2]=t,u=u+1|0,!((0|u)<a[A+4>>2]))break}Y=i+32|0}function LA(A,e){var r,i,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0;if(u=a[A+4>>2],(0|u)==a[A+8>>2]&&(PA(A,u?u<<1:1),u=a[A+4>>2]),i=a[A+12>>2],t=i+B(u,36)|0,a[t+4>>2]=0,a[t+8>>2]=0,f[t+16|0]=1,a[t+12>>2]=0,r=t+4|0,c=a[e+4>>2],(0|c)>=1){C=t+8|0,v=t+16|0,d=c<<2,n=dA(d),k=t+12|0,t=a[k>>2],s=a[r>>2];A:{if((0|s)>=1)for(b=n,l=t;a[b>>2]=a[l>>2],b=b+4|0,l=l+4|0,s=s+-1|0,s;);else if(!t)break A;o[0|v]&&CA(t)}for(a[k>>2]=n,f[0|v]=1,a[C>>2]=c,X(n,0,d),a[r>>2]=c,b=a[e+12>>2],l=a[k>>2];a[l>>2]=a[b>>2],l=l+4|0,b=b+4|0,c=c+-1|0,c;);}else a[r>>2]=c;t=a[e+24>>2],n=B(u,36)+i|0,a[n+20>>2]=a[e+20>>2],a[n+24>>2]=t,t=e+28|0,e=a[t+4>>2],n=n+28|0,a[n>>2]=a[t>>2],a[n+4>>2]=e,a[A+4>>2]=a[A+4>>2]+1}function qA(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0);f=_(Qt[a[a[A>>2]+48>>2]](A)),F=C[e+52>>2],o=C[e+24>>2],c=C[e+20>>2],b=C[e+56>>2],l=C[e+40>>2],u=C[A+68>>2],d=C[A+84>>2],g=C[e+36>>2],t=C[A- -64>>2],B=C[A+80>>2],W=C[e+48>>2],R=C[e+8>>2],Q=C[e>>2],h=C[e+4>>2],G=C[e+16>>2],y=C[e+32>>2],n=C[A+60>>2],p=C[A+76>>2],a[r+12>>2]=0,s=b,b=_(_(p+n)*_(.5)),k=_(_(B+t)*_(.5)),v=_(_(d+u)*_(.5)),s=_(s+_(_(_(y*b)+_(g*k))+_(l*v))),n=_(f+_(_(p-n)*_(.5))),t=_(f+_(_(B-t)*_(.5))),f=_(f+_(_(d-u)*_(.5))),l=_(_(_(n*_(m(y)))+_(t*_(m(g))))+_(f*_(m(l)))),C[r+8>>2]=s-l,u=_(F+_(_(_(b*G)+_(k*c))+_(v*o))),o=_(_(_(n*_(m(G)))+_(t*_(m(c))))+_(f*_(m(o)))),C[r+4>>2]=u-o,c=_(W+_(_(_(b*Q)+_(k*h))+_(v*R))),f=_(_(_(n*_(m(Q)))+_(t*_(m(h))))+_(f*_(m(R)))),C[r>>2]=c-f,a[i+12>>2]=0,C[i+8>>2]=l+s,C[i+4>>2]=o+u,C[i>>2]=f+c}function $A(A,e,r,i){A|=0,e|=0,r|=0,i|=0,Qt[a[a[A>>2]+80>>2]](A,e,r,i)}function Ae(A){var e;return A|=0,a[A>>2]=7108,e=a[A+56>>2],e&&(Qt[a[a[e>>2]>>2]](e),CA(a[A+56>>2])),0|A}function ee(A,e){var r=_(0),i=_(0),f=_(0),t=_(0),n=_(0),a=0;return r=C[A+48>>2],i=C[A+52>>2],f=C[A+56>>2],t=C[A+60>>2],n=_(C[A+64>>2]+C[e+64>>2]),!(_(_(_(_(_(C[e>>2]*r)+_(C[e+4>>2]*i))+_(C[e+8>>2]*f))-t)-n)>_(0)^1|_(_(_(_(_(r*C[e+16>>2])+_(i*C[e+20>>2]))+_(f*C[e+24>>2]))-t)-n)>_(0)^1)&&(a=0,_(_(_(_(_(r*C[e+32>>2])+_(i*C[e+36>>2]))+_(f*C[e+40>>2]))-t)-n)>_(0))||(r=C[e+48>>2],i=C[e+52>>2],f=C[e+56>>2],t=C[e+60>>2],a=_(_(_(_(_(C[A>>2]*r)+_(C[A+4>>2]*i))+_(C[A+8>>2]*f))-t)-n)>_(0)^1|_(_(_(_(_(r*C[A+16>>2])+_(i*C[A+20>>2]))+_(f*C[A+24>>2]))-t)-n)>_(0)^1|_(_(_(_(_(r*C[A+32>>2])+_(i*C[A+36>>2]))+_(f*C[A+40>>2]))-t)-n)>_(0)^1),a}function re(A,e,r){var i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=0;return i=Y-528|0,Y=i,b=C[A+20>>2],n=_(b-C[A+4>>2]),t=C[A+56>>2],l=C[A+24>>2],o=_(l-C[A+8>>2]),c=C[A+52>>2],f=_(_(n*t)-_(o*c)),v=f,u=C[A+16>>2],s=_(u-C[A>>2]),k=_(s*c),c=C[A+48>>2],n=_(k-_(n*c)),k=_(f*f),f=_(_(o*c)-_(s*t)),t=_(_(1)/_(y(_(_(n*n)+_(k+_(f*f)))))),o=_(v*t),C[i+256>>2]=o,f=_(f*t),C[i+260>>2]=f,n=_(n*t),C[i+264>>2]=n,C[i+268>>2]=_(l*n)+_(_(u*o)+_(b*f)),e=function(A,e,r,i,f){var t=0,n=_(0),o=_(0),c=_(0),b=0,l=_(0),u=0,s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=0,m=_(0),R=0;s=C[e>>2],n=C[A>>2],o=C[A+4>>2],c=C[A+8>>2],l=C[A+12>>2],k=_(_(_(_(s*n)+_(C[e+4>>2]*o))+_(C[e+8>>2]*c))-l),b=k>_(1.1920928955078125e-7),b||(t=a[e+4>>2],a[f>>2]=a[e>>2],a[f+4>>2]=t,u=e+8|0,B=a[u+4>>2],t=f+8|0,a[t>>2]=a[u>>2],a[t+4>>2]=B,l=C[A+12>>2],c=C[A+8>>2],o=C[A+4>>2],n=C[A>>2],t=1),v=C[r>>2],d=C[r+4>>2],g=C[r+8>>2],n=_(_(_(_(v*n)+_(d*o))+_(g*c))-l),(n>_(1.1920928955078125e-7)|0)!=(0|b)&&(l=C[e+4>>2],m=C[e+8>>2],b=(t<<4)+f|0,a[b+12>>2]=0,o=_(_(-k)/_(n-k)),c=_(_(1)-o),C[b+8>>2]=_(g*o)+_(m*c),C[b+4>>2]=_(d*o)+_(c*l),C[b>>2]=_(v*o)+_(s*c),t=t+1|0),b=n>_(1.1920928955078125e-7),b||(R=a[r+4>>2],u=(t<<4)+f|0,a[u>>2]=a[r>>2],a[u+4>>2]=R,B=r+8|0,R=a[B+4>>2],u=u+8|0,a[u>>2]=a[B>>2],a[u+4>>2]=R,t=t+1|0),l=C[i>>2],s=C[i+4>>2],v=C[i+8>>2],o=_(_(_(_(l*C[A>>2])+_(s*C[A+4>>2]))+_(v*C[A+8>>2]))-C[A+12>>2]),(o>_(1.1920928955078125e-7)|0)!=(0|b)&&(d=C[r>>2],g=C[r+4>>2],m=C[r+8>>2],A=(t<<4)+f|0,a[A+12>>2]=0,n=_(_(-n)/_(o-n)),c=_(_(1)-n),C[A+8>>2]=_(v*n)+_(m*c),C[A+4>>2]=_(s*n)+_(c*g),C[A>>2]=_(l*n)+_(c*d),t=t+1|0);A:{e:{r:{if(!(o>_(1.1920928955078125e-7))){if(r=a[i+4>>2],A=(t<<4)+f|0,a[A>>2]=a[i>>2],a[A+4>>2]=r,r=i+8|0,b=a[r+4>>2],A=A+8|0,a[A>>2]=a[r>>2],a[A+4>>2]=b,t=t+1|0,k>_(1.1920928955078125e-7))break r;break e}if(k>_(1.1920928955078125e-7))break A}if(c=C[i>>2],l=C[e>>2],s=C[i+4>>2],v=C[e+4>>2],n=C[i+8>>2],d=C[e+8>>2],A=(t<<4)+f|0,a[A+12>>2]=0,g=n,n=_(_(-o)/_(k-o)),o=_(_(1)-n),C[A+8>>2]=_(g*o)+_(n*d),C[A+4>>2]=_(o*s)+_(n*v),C[A>>2]=_(o*c)+_(n*l),t=t+1|0,k>_(1.1920928955078125e-7))break A}r=a[e+4>>2],A=(t<<4)+f|0,a[A>>2]=a[e>>2],a[A+4>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+8|0,a[A>>2]=a[e>>2],a[A+4>>2]=r,t=t+1|0}return t}(i+256|0,e,e+16|0,e+32|0,i+272|0),d=0,e&&(b=C[A+40>>2],t=_(b-C[A+24>>2]),n=C[A+48>>2],l=C[A+32>>2],o=_(l-C[A+16>>2]),c=C[A+56>>2],f=_(_(t*n)-_(o*c)),v=f,k=o,o=C[A+52>>2],u=C[A+36>>2],s=_(u-C[A+20>>2]),n=_(_(k*o)-_(s*n)),t=_(_(s*c)-_(t*o)),f=_(_(1)/_(y(_(_(n*n)+_(_(t*t)+_(f*f)))))),o=_(v*f),C[i+260>>2]=o,t=_(t*f),C[i+256>>2]=t,f=_(n*f),C[i+264>>2]=f,C[i+268>>2]=_(b*f)+_(_(l*t)+_(u*o)),e=ie(i+256|0,i+272|0,e,i),d=0,e&&(b=C[A+8>>2],t=_(b-C[A+40>>2]),n=C[A+48>>2],l=C[A>>2],o=_(l-C[A+32>>2]),c=C[A+56>>2],f=_(_(t*n)-_(o*c)),v=f,k=o,o=C[A+52>>2],u=C[A+4>>2],s=_(u-C[A+36>>2]),n=_(_(k*o)-_(s*n)),t=_(_(s*c)-_(t*o)),f=_(_(1)/_(y(_(_(n*n)+_(_(t*t)+_(f*f)))))),o=_(v*f),C[i+260>>2]=o,t=_(t*f),C[i+256>>2]=t,f=_(n*f),C[i+264>>2]=f,C[i+268>>2]=_(b*f)+_(_(l*t)+_(u*o)),d=ie(i+256|0,i,e,r))),A=d,Y=i+528|0,A}function ie(A,e,r,i){var f=0,t=0,n=_(0),o=_(0),c=_(0),b=0,l=0,u=_(0),s=_(0),k=_(0),v=_(0),d=0,g=0,B=_(0),m=_(0),R=_(0);if(c=_(_(_(_(C[e>>2]*C[A>>2])+_(C[e+4>>2]*C[A+4>>2]))+_(C[e+8>>2]*C[A+8>>2]))-C[A+12>>2]),c>_(1.1920928955078125e-7)||(f=a[e+4>>2],a[i>>2]=a[e>>2],a[i+4>>2]=f,b=e+8|0,t=a[b+4>>2],f=i+8|0,a[f>>2]=a[b>>2],a[f+4>>2]=t,t=1),(0|r)<2)n=c;else for(d=r+-1|0,f=e,o=c;b=f+16|0,s=C[b>>2],k=C[f+20>>2],g=f+24|0,v=C[g>>2],n=_(_(_(_(s*C[A>>2])+_(k*C[A+4>>2]))+_(v*C[A+8>>2]))-C[A+12>>2]),l=n>_(1.1920928955078125e-7),(0|l)!=(o>_(1.1920928955078125e-7)|0)&&(B=C[f+4>>2],m=C[f+8>>2],R=C[f>>2],f=(t<<4)+i|0,a[f+12>>2]=0,o=_(_(-o)/_(n-o)),u=_(_(1)-o),C[f+8>>2]=_(v*o)+_(m*u),C[f+4>>2]=_(k*o)+_(u*B),C[f>>2]=_(s*o)+_(u*R),t=t+1|0),l||(l=a[b+4>>2],f=(t<<4)+i|0,a[f>>2]=a[b>>2],a[f+4>>2]=l,l=a[g+4>>2],f=f+8|0,a[f>>2]=a[g>>2],a[f+4>>2]=l,t=t+1|0),f=b,o=n,d=d+-1|0,d;);return f=c>_(1.1920928955078125e-7),(0|f)!=(n>_(1.1920928955078125e-7)|0)&&(A=(r+-1<<4)+e|0,o=C[A>>2],u=C[A+4>>2],s=C[A+8>>2],k=C[e>>2],v=C[e+4>>2],B=C[e+8>>2],A=(t<<4)+i|0,a[A+12>>2]=0,n=_(_(-n)/_(c-n)),c=_(_(1)-n),C[A+8>>2]=_(s*c)+_(n*B),C[A+4>>2]=_(c*u)+_(n*v),C[A>>2]=_(c*o)+_(n*k),t=t+1|0),f||(r=a[e+4>>2],A=(t<<4)+i|0,a[A>>2]=a[e>>2],a[A+4>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+8|0,a[A>>2]=a[e>>2],a[A+4>>2]=r,t=t+1|0),t}function fe(A,e,r){var i,f=0,t=0,n=0,o=0,c=_(0),b=_(0),l=0,u=0,s=0,k=0,v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0);if(i=Y-880|0,Y=i,b=C[e+64>>2],c=C[A+64>>2],u=A+56|0,t=a[u+4>>2],o=i+296|0,a[o>>2]=a[u>>2],a[o+4>>2]=t,t=a[A+52>>2],a[i+288>>2]=a[A+48>>2],a[i+292>>2]=t,t=re(A,e,i+560|0),f=0,t&&(a[i+280>>2]=-998637568,a[i+284>>2]=0,f=0,!((0|t)<=0))){for(m=_(c+b),u=i+288|0,d=C[i+300>>2],g=C[i+296>>2],B=C[i+292>>2],o=0,v=_(-1e3),f=i+560|0,b=C[i+288>>2];c=_(m-_(_(_(_(C[f>>2]*b)+_(C[f+4>>2]*B))+_(C[f+8>>2]*g))-d)),c>=_(0)&&(c>v?(a[i+816>>2]=n,o=1,v=c):_(c+_(1.1920928955078125e-7))>=v&&(a[(i+816|0)+(o<<2)>>2]=n,o=o+1|0)),f=f+16|0,n=n+1|0,(0|t)!=(0|n););if(C[i+280>>2]=v,a[i+284>>2]=o,(0|o)>=1)for(f=i+304|0,n=i+816|0,t=o;s=(i+560|0)+(a[n>>2]<<4)|0,l=a[s+4>>2],a[f>>2]=a[s>>2],a[f+4>>2]=l,l=a[s+12>>2],k=f+8|0,a[k>>2]=a[s+8>>2],a[k+4>>2]=l,n=n+4|0,f=f+16|0,t=t+-1|0,t;);if(f=0,o&&(t=i+292|0,C[t>>2]=-C[t>>2],t=i+296|0,C[t>>2]=-C[t>>2],C[i+288>>2]=-C[i+288>>2],l=e+56|0,t=a[l+4>>2],k=i+16|0,a[k>>2]=a[l>>2],a[k+4>>2]=t,t=a[e+52>>2],a[i+8>>2]=a[e+48>>2],a[i+12>>2]=t,e=re(e,A,i+560|0),f=0,e&&(a[i>>2]=-998637568,a[i+4>>2]=0,f=0,!((0|e)<=0)))){for(A=i+8|0,R=C[i+20>>2],d=C[i+16>>2],g=C[i+12>>2],t=0,b=_(-1e3),f=i+560|0,B=C[i+8>>2],n=0;c=_(m-_(_(_(_(C[f>>2]*B)+_(C[f+4>>2]*g))+_(C[f+8>>2]*d))-R)),c>=_(0)&&(c>b?(a[i+816>>2]=n,t=1,b=c):_(c+_(1.1920928955078125e-7))>=b&&(a[(i+816|0)+(t<<2)>>2]=n,t=t+1|0)),f=f+16|0,n=n+1|0,(0|e)!=(0|n););if(C[i>>2]=b,a[i+4>>2]=t,(0|t)>=1)for(f=i+24|0,n=i+816|0,e=t;s=(i+560|0)+(a[n>>2]<<4)|0,l=a[s+4>>2],a[f>>2]=a[s>>2],a[f+4>>2]=l,l=a[s+12>>2],k=f+8|0,a[k>>2]=a[s+8>>2],a[k+4>>2]=l,n=n+4|0,f=f+16|0,e=e+-1|0,e;);if(f=0,t){if(b<v)for(C[r>>2]=b,a[r+4>>2]=t,e=a[A+4>>2],a[r+8>>2]=a[A>>2],a[r+12>>2]=e,e=A+8|0,A=a[e+4>>2],u=r+16|0,a[u>>2]=a[e>>2],a[u+4>>2]=A,A=t<<4,f=A+(r+8|0)|0,n=8+(A+i|0)|0;A=a[n+4>>2],a[f>>2]=a[n>>2],a[f+4>>2]=A,e=n+8|0,A=a[e+4>>2],r=f+8|0,a[r>>2]=a[e>>2],a[r+4>>2]=A,n=n+-16|0,f=f+-16|0,t=t+-1|0,t;);else for(C[r>>2]=v,a[r+4>>2]=o,A=a[u+4>>2],a[r+8>>2]=a[u>>2],a[r+12>>2]=A,e=u+8|0,A=a[e+4>>2],t=r+16|0,a[t>>2]=a[e>>2],a[t+4>>2]=A,A=o<<4,f=A+(r+8|0)|0,n=288+(A+i|0)|0;A=a[n+4>>2],a[f>>2]=a[n>>2],a[f+4>>2]=A,e=n+8|0,A=a[e+4>>2],r=f+8|0,a[r>>2]=a[e>>2],a[r+4>>2]=A,n=n+-16|0,f=f+-16|0,o=o+-1|0,o;);f=1}}}return Y=i+880|0,f}function te(A){!function(A){var e=0;DA(A),f[A+92|0]=0,a[A+88>>2]=0,e=A+80|0,a[e>>2]=-1082130432,a[e+4>>2]=-1082130432,e=A+72|0,a[e>>2]=0,a[e+4>>2]=-1082130432,e=A- -64|0,a[e>>2]=1065353216,a[e+4>>2]=1065353216,a[A>>2]=7240,a[A+56>>2]=0,a[A+60>>2]=1065353216}(A),a[A+96>>2]=0,a[A>>2]=7464,a[A+4>>2]=2}function ne(A){return A|=0,a[A+96>>2]}function ae(A,e,r,i){}function oe(A,e){return 0}function ce(A){A|=0,Ae(A),CA(A)}function be(A){var e=0;a[A>>2]=1025,e=A+120|0,a[e>>2]=0,a[e+4>>2]=0,e=A+128|0,a[e>>2]=0,a[e+4>>2]=0,e=A+136|0,a[e>>2]=0,a[e+4>>2]=0,e=A+144|0,a[e>>2]=0,a[e+4>>2]=0,e=A+152|0,a[e>>2]=0,a[e+4>>2]=0,a[A+160>>2]=0,e=A+312|0,a[e>>2]=0,a[e+4>>2]=0,e=A+320|0,a[e>>2]=0,a[e+4>>2]=0,e=A+328|0,a[e>>2]=0,a[e+4>>2]=0,e=A+336|0,a[e>>2]=0,a[e+4>>2]=0,e=A+344|0,a[e>>2]=0,a[e+4>>2]=0,a[A+352>>2]=0,e=A+504|0,a[e>>2]=0,a[e+4>>2]=0,e=A+512|0,a[e>>2]=0,a[e+4>>2]=0,e=A+520|0,a[e>>2]=0,a[e+4>>2]=0,e=A+528|0,a[e>>2]=0,a[e+4>>2]=0,e=A+536|0,a[e>>2]=0,a[e+4>>2]=0,a[A+544>>2]=0,a[A+736>>2]=0,e=A+728|0,a[e>>2]=0,a[e+4>>2]=0,e=A+720|0,a[e>>2]=0,a[e+4>>2]=0,e=A+712|0,a[e>>2]=0,a[e+4>>2]=0,e=A+704|0,a[e>>2]=0,a[e+4>>2]=0,e=A+696|0,a[e>>2]=0,a[e+4>>2]=0,a[A+772>>2]=0,a[A+776>>2]=0,a[A+800>>2]=0,a[A+780>>2]=0}function le(A){var e,r=0;e=a[A+116>>2],e&&(r=a[421],r&&(Qt[r](e),a[A+116>>2]=0))}function ue(A,e){var r=0,i=0,f=0,t=0;r=a[A+780>>2];A:if(4!=(0|r))a[A+780>>2]=r+1;else{if(r=function(A,e){var r,i=_(0),f=_(0),t=_(0),n=_(0),a=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=0,G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),Y=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=0,U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=_(0);i=C[A+84>>2],n=C[e+80>>2],h=i<n,x=h?0:-1,l=C[A+276>>2],i=h?i:n,h=l<i,r=h?1:x,n=C[A+468>>2],i=h?l:i,h=n<i,x=C[A+660>>2]<(h?n:i),h=x?3:h?2:r,c=C[e>>2];e:{r:{i:{f:{if(o[2980]){if(!h){d=C[A+588>>2],g=C[A+396>>2],i=_(d-g),R=C[A+584>>2],B=C[A+392>>2],n=_(R-B),f=C[A+580>>2],p=C[A+388>>2],l=_(f-p),t=C[e+8>>2],b=C[e+4>>2];break f}if(a=C[A+196>>2],u=_(c-a),R=C[A+584>>2],B=C[A+392>>2],n=_(R-B),b=C[e+4>>2],Q=C[A+200>>2],i=_(b-Q),f=C[A+580>>2],p=C[A+388>>2],l=_(f-p),t=_(_(u*n)-_(i*l)),k=_(t*t),s=i,d=C[A+588>>2],g=C[A+396>>2],i=_(d-g),t=C[e+8>>2],G=C[A+204>>2],F=_(t-G),W=_(_(s*i)-_(F*n)),u=_(_(F*l)-_(u*i)),j=_(k+_(_(W*W)+_(u*u))),1!=(0|h))break f;c=_(c-C[A+4>>2]),t=_(t-C[A+12>>2]),b=_(b-C[A+8>>2]),l=_(0);break i}F=C[e+8>>2],W=C[e+4>>2];t:{n:{if(h){if(Z=C[A+196>>2],R=_(c-Z),g=C[A+392>>2],b=C[A+584>>2],w=_(g-b),Y=C[A+200>>2],d=_(W-Y),B=C[A+388>>2],u=C[A+580>>2],D=_(B-u),i=_(_(R*w)-_(d*D)),n=_(i*i),a=C[A+396>>2],t=C[A+588>>2],l=_(a-t),f=C[A+204>>2],p=_(F-f),i=_(_(d*l)-_(p*w)),s=_(i*i),i=_(_(p*D)-_(R*l)),n=_(n+_(s+_(i*i))),Q=_(c-B),E=_(Y-b),G=_(W-g),U=_(Z-u),i=_(_(Q*E)-_(G*U)),s=_(i*i),M=_(f-t),i=_(F-a),k=_(_(G*M)-_(i*E)),v=_(k*k),k=_(_(i*U)-_(Q*M)),k=_(s+_(v+_(k*k))),k=n>k?n:k,n=_(Y-g),I=_(c-u),v=_(Z-B),N=_(W-b),y=_(_(n*I)-_(v*N)),V=_(y*y),y=_(f-a),s=n,n=_(F-t),s=_(_(y*N)-_(s*n)),v=_(_(v*n)-_(y*I)),v=_(V+_(_(s*s)+_(v*v))),j=k>v?k:v,1==(0|h)){k=C[A+4>>2],S=_(k-u),s=_(c-k),v=C[A+12>>2],X=_(v-t),y=C[A+8>>2],T=_(y-b),V=_(F-v),J=_(W-y),l=_(0);break n}}else a=C[A+396>>2],t=C[A+588>>2],l=_(a-t),g=C[A+392>>2],b=C[A+584>>2],w=_(g-b),B=C[A+388>>2],u=C[A+580>>2],D=_(B-u),n=_(F-t),N=_(W-b),I=_(c-u),i=_(F-a),G=_(W-g),Q=_(c-B);if(k=C[A+4>>2],s=_(c-k),y=C[A+8>>2],J=_(W-y),f=_(_(s*w)-_(J*D)),d=_(f*f),v=C[A+12>>2],V=_(F-v),f=_(_(J*l)-_(V*w)),l=_(_(V*D)-_(s*l)),l=_(d+_(_(f*f)+_(l*l))),T=_(y-b),S=_(k-u),f=_(_(Q*T)-_(G*S)),d=_(f*f),X=_(v-t),f=_(_(G*X)-_(i*T)),R=_(f*f),f=_(_(i*S)-_(Q*X)),f=_(d+_(R+_(f*f))),l=l>f?l:f,w=_(y-g),D=_(k-B),f=_(_(w*I)-_(D*N)),d=_(f*f),E=_(v-a),f=_(_(E*N)-_(w*n)),R=_(f*f),f=_(_(D*n)-_(E*I)),f=_(d+_(R+_(f*f))),l=l>f?l:f,f=C[A+204>>2],p=_(F-f),Y=C[A+200>>2],d=_(W-Y),Z=C[A+196>>2],R=_(c-Z),2==(0|h)){t=_(v-f),b=_(y-Y),u=_(k-Z),n=_(0);break t}M=_(f-t),E=_(Y-b),U=_(Z-u)}if(i=_(_(s*E)-_(J*U)),b=_(i*i),i=_(_(J*M)-_(V*E)),t=_(i*i),i=_(_(V*U)-_(s*M)),i=_(b+_(t+_(i*i))),t=_(_(R*T)-_(d*S)),b=_(t*t),t=_(_(d*X)-_(p*T)),u=_(t*t),t=_(_(p*S)-_(R*X)),t=_(b+_(u+_(t*t))),i=i>t?i:t,b=_(y-Y),u=_(k-Z),t=_(_(b*I)-_(u*N)),G=_(t*t),t=_(v-f),Q=_(_(t*N)-_(b*n)),n=_(_(u*n)-_(t*I)),n=_(G+_(_(Q*Q)+_(n*n))),n=i>n?i:n,i=_(0),x)break e;E=_(v-a),w=_(y-g),D=_(k-B),i=_(F-a),G=_(W-g),Q=_(c-B)}c=_(Y-g),g=_(Z-B),B=_(_(s*c)-_(J*g)),a=_(f-a),c=_(_(J*a)-_(V*c)),f=_(c*c),c=_(_(V*g)-_(s*a)),c=_(_(B*B)+_(f+_(c*c))),a=_(_(R*w)-_(d*D)),s=_(a*a),a=_(_(d*E)-_(p*w)),f=_(a*a),a=_(_(p*D)-_(R*E)),a=_(s+_(f+_(a*a))),c=c>a?c:a,a=_(_(b*Q)-_(u*G)),s=_(a*a),a=_(_(t*G)-_(b*i)),i=_(_(u*i)-_(t*Q)),i=_(s+_(_(a*a)+_(i*i))),i=c>i?c:i;break e}if(c=_(c-C[A+4>>2]),b=_(b-C[A+8>>2]),a=_(_(c*n)-_(b*l)),t=_(t-C[A+12>>2]),n=_(_(b*i)-_(t*n)),i=_(_(t*l)-_(c*i)),l=_(_(a*a)+_(_(n*n)+_(i*i))),G=C[A+204>>2],Q=C[A+200>>2],a=C[A+196>>2],n=_(0),2==(0|h))break r}if(i=_(R-Q),n=_(f-a),u=_(_(c*i)-_(b*n)),s=_(u*u),u=_(d-G),i=_(_(b*u)-_(t*i)),f=_(i*i),i=_(_(t*n)-_(c*u)),n=_(s+_(f+_(i*i))),i=_(0),x)break e}i=_(B-Q),a=_(p-a),u=_(_(c*i)-_(b*a)),s=b,b=_(g-G),i=_(_(s*b)-_(t*i)),s=_(i*i),i=_(_(t*a)-_(c*b)),i=_(_(u*u)+_(s+_(i*i)))}return c=_(m(j)),A=c>_(-0xde0b6b000000000),e=A?0:-1,l=_(m(l)),c=A?c:_(-0xde0b6b000000000),A=l>c,e=A?1:e,n=_(m(n)),l=A?l:c,A=n>l,_(m(i))>(A?n:l)?3:A?2:e}(A,e),i=120+(B(r,192)+A|0)|0,f=a[i>>2],!f)break A;if(t=a[421],!t)break A;Qt[t](f),a[i>>2]=0}return r=(0|r)>0?r:0,J(4+(A+B(r,192)|0)|0,e,192),r}function se(A,e,r){var i,f=0,t=_(0),n=0,o=_(0),c=_(0),b=0,l=0,u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0);if(i=Y-16|0,Y=i,l=a[A+780>>2],!((0|l)<1)){for(f=(B(l,192)+A|0)-188|0,n=l;v=C[e+48>>2],m=C[e+8>>2],R=C[e+4>>2],Q=C[e>>2],d=C[e+52>>2],h=C[e+24>>2],u=C[e+20>>2],G=C[e+16>>2],t=C[e+56>>2],o=C[e+40>>2],c=C[e+36>>2],g=C[e+32>>2],a[f+60>>2]=0,k=t,t=C[f>>2],y=c,c=C[f+4>>2],s=o,o=C[f+8>>2],g=_(k+_(_(_(g*t)+_(y*c))+_(s*o))),C[f+56>>2]=g,d=_(d+_(_(_(t*G)+_(c*u))+_(o*h))),C[f+52>>2]=d,v=_(v+_(_(_(t*Q)+_(c*R))+_(o*m))),C[f+48>>2]=v,m=C[r+56>>2],R=C[r+40>>2],Q=C[r+32>>2],h=C[r+36>>2],u=C[r+52>>2],G=C[r+24>>2],p=C[r+16>>2],F=C[r+20>>2],t=C[r+48>>2],o=C[r+8>>2],c=C[r>>2],s=C[r+4>>2],a[f+44>>2]=0,k=t,t=C[f+16>>2],W=_(c*t),c=C[f+20>>2],y=o,o=C[f+24>>2],s=_(k+_(_(W+_(s*c))+_(y*o))),C[f+32>>2]=s,u=_(u+_(_(_(t*p)+_(c*F))+_(o*G))),C[f+36>>2]=u,t=_(m+_(_(_(t*Q)+_(c*h))+_(o*R))),C[f+40>>2]=t,C[f+80>>2]=_(_(_(v-s)*C[f- -64>>2])+_(_(d-u)*C[f+68>>2]))+_(_(g-t)*C[f+72>>2]),b=f+156|0,a[b>>2]=a[b>>2]+1,f=f+-192|0,n=n+-1|0,(0|n)>0;);if(!((0|l)<1))for(e=B(l,192);;){l=l+-1|0,r=A+e|0,n=r+-188|0,t=C[r+-108>>2],c=C[A+784>>2];A:if(t<=c)if(o=_(C[r+-156>>2]-_(C[r+-140>>2]-_(C[r+-124>>2]*t))),k=_(o*o),o=_(C[r+-152>>2]-_(C[r+-136>>2]-_(t*C[r+-120>>2]))),t=_(C[r+-148>>2]-_(C[r+-132>>2]-_(t*C[r+-116>>2]))),_(_(k+_(o*o))+_(t*t))>_(c*c)){if(r=r+-72|0,f=a[r>>2],f&&(b=a[421],b&&(Qt[b](f),a[r>>2]=0)),b=A,f=a[A+780>>2],r=f+-1|0,(0|l)!=(0|r)&&(r=B(r,192)+A|0,J(n,r+4|0,192),n=r+120|0,a[n>>2]=0,a[n+4>>2]=0,a[r+160>>2]=0,n=r+128|0,a[n>>2]=0,a[n+4>>2]=0,a[r+136>>2]=0,f=a[A+780>>2]),r=f+-1|0,a[b+780>>2]=r,r)break A;if(r=a[424],!r)break A;a[i+8>>2]=A,Qt[r](i+8|0)}else r=a[422],r&&Qt[r](n,a[A+772>>2],a[A+776>>2]);else{if(r=r+-72|0,f=a[r>>2],f&&(b=a[421],b&&(Qt[b](f),a[r>>2]=0)),b=A,f=a[A+780>>2],r=f+-1|0,(0|l)!=(0|r)&&(r=B(r,192)+A|0,J(n,r+4|0,192),n=r+120|0,a[n>>2]=0,a[n+4>>2]=0,a[r+160>>2]=0,n=r+128|0,a[n>>2]=0,a[n+4>>2]=0,a[r+136>>2]=0,f=a[A+780>>2]),r=f+-1|0,a[b+780>>2]=r,r)break A;if(r=a[424],!r)break A;a[i+12>>2]=A,Qt[r](i+12|0)}if(e=e+-192|0,!((0|l)>0))break}}Y=i+16|0}function ke(A,e){return _(C[A+232>>2]*C[e+232>>2])}function ve(A){A|=0,$(A)}function de(A,e,r){a[76+((B(e,144)+A|0)+(r<<2)|0)>>2]=1708}function Ce(A){return A|=0,a[A+72>>2]}function ge(A,e,r){var i=0,f=0;i=a[A+12>>2],i||(i=a[A+4>>2],i=0|Qt[a[a[i>>2]+12>>2]](i,a[e+8>>2],a[r+8>>2]),a[A+12>>2]=i),a[a[A+16>>2]+4>>2]=i,f=a[A+4>>2],i=0|Qt[a[a[f>>2]+8>>2]](f,e,r,i,1),f=a[A+16>>2],Qt[a[a[f>>2]+8>>2]](f,a[A+28>>2],a[A+24>>2]),f=a[A+16>>2],Qt[a[a[f>>2]+12>>2]](f,a[A+36>>2],a[A+32>>2]),Qt[a[a[i>>2]+8>>2]](i,e,r,a[A+20>>2],a[A+16>>2]),Qt[a[a[i>>2]>>2]](i),A=a[A+4>>2],Qt[a[a[A>>2]+60>>2]](A,i)}function Be(A,e,r,i,f){var t,n=0;t=Y-48|0,Y=t,n=a[A+16>>2],Qt[a[a[n>>2]+8>>2]](n,a[A+28>>2],a[A+24>>2]),n=a[A+16>>2],Qt[a[a[n>>2]+12>>2]](n,a[A+36>>2],a[A+32>>2]),a[t+28>>2]=i,a[t+44>>2]=a[A+24>>2],a[t+40>>2]=a[A+28>>2],a[t+24>>2]=e,a[t+36>>2]=a[e+12>>2],e=a[e+8>>2],a[t+32>>2]=e,a[t+4>>2]=f,a[t+20>>2]=a[A+32>>2],a[t+16>>2]=a[A+36>>2],a[t>>2]=r,a[t+12>>2]=a[r+12>>2],i=a[r+8>>2],a[t+8>>2]=i,r=a[A+8>>2],r||(r=a[A+12>>2],r||(r=a[A+4>>2],r=0|Qt[a[a[r>>2]+12>>2]](r,e,i),a[A+12>>2]=r),a[a[A+16>>2]+4>>2]=r,e=a[A+4>>2],r=0|Qt[a[a[e>>2]+8>>2]](e,t+24|0,t,r,1),a[A+8>>2]=r),Qt[a[a[r>>2]+8>>2]](r,t+24|0,t,a[A+20>>2],a[A+16>>2]),Y=t+48|0}function _e(A,e,r,i,t){var n,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,g=0,B=0,m=0,R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=0,Z=0,V=0,N=0,I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=0,K=0,L=_(0),q=_(0),$=_(0),AA=0,eA=0,rA=0,iA=0,fA=0,tA=0,nA=0;n=Y-976|0,Y=n;A:if(2!=(0|Qt[a[a[i>>2]+80>>2]](i)))if(2!=(0|Qt[a[a[t>>2]+80>>2]](t))){if(c=a[e+12>>2],b=c+8|0,d=a[b>>2],b=a[b+4>>2],Z=a[c>>2],V=a[c+4>>2],k=c+24|0,v=a[k+4>>2],l=n+936|0,a[l>>2]=a[k>>2],a[l+4>>2]=v,l=n+920|0,a[l>>2]=d,a[l+4>>2]=b,b=a[c+16>>2],d=a[c+20>>2],k=c+40|0,v=a[k+4>>2],l=n+952|0,a[l>>2]=a[k>>2],a[l+4>>2]=v,l=a[c+32>>2],k=a[c+36>>2],B=c+56|0,m=a[B+4>>2],v=n+968|0,a[v>>2]=a[B>>2],a[v+4>>2]=m,a[n+912>>2]=Z,a[n+916>>2]=V,a[n+928>>2]=b,a[n+932>>2]=d,a[n+944>>2]=l,a[n+948>>2]=k,b=a[c+52>>2],a[n+960>>2]=a[c+48>>2],a[n+964>>2]=b,c=a[r+12>>2],b=c+8|0,d=a[b>>2],b=a[b+4>>2],Z=a[c>>2],V=a[c+4>>2],k=c+24|0,v=a[k+4>>2],l=n+872|0,a[l>>2]=a[k>>2],a[l+4>>2]=v,l=n+856|0,a[l>>2]=d,a[l+4>>2]=b,b=a[c+16>>2],d=a[c+20>>2],k=c+40|0,v=a[k+4>>2],l=n+888|0,a[l>>2]=a[k>>2],a[l+4>>2]=v,l=a[c+32>>2],k=a[c+36>>2],B=c+56|0,m=a[B+4>>2],v=n+904|0,a[v>>2]=a[B>>2],a[v+4>>2]=m,a[n+848>>2]=Z,a[n+852>>2]=V,a[n+864>>2]=b,a[n+868>>2]=d,a[n+880>>2]=l,a[n+884>>2]=k,b=a[c+52>>2],a[n+896>>2]=a[c+48>>2],a[n+900>>2]=b,a[n+828>>2]=0,tA=n,nA=dA(256),a[tA+836>>2]=nA,f[n+840|0]=1,a[n+832>>2]=32,function(A,e,r,i,t){var n,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,g=0,B=0,_=0,m=0;if(n=Y+-64|0,Y=n,!a[r+72>>2]|!a[i+72>>2]){if(b=0|Qt[a[a[r>>2]+88>>2]](r),b)for(B=n+16|0,_=n+48|0;;){if(b=b+-1|0,Qt[a[a[r>>2]+120>>2]](r,b,A,n+32|0,_),l=0|Qt[a[a[i>>2]+88>>2]](i),l)for(;;){if(Qt[a[a[i>>2]+120>>2]](i,b,e,n,B),l=l+-1|0,!(C[n+16>>2]<C[n+32>>2]|C[n>>2]>C[n+48>>2]|C[n+20>>2]<C[n+36>>2]|C[n+4>>2]>C[n+52>>2]|C[n+24>>2]<C[n+40>>2]|C[n+8>>2]>C[n+56>>2])){if(c=a[t+4>>2],(0|c)==a[t+8>>2]&&(u=c?c<<1:1,!((0|c)>=(0|u)))){u?(v=dA(u<<3),c=a[t+4>>2]):v=0,d=a[t+12>>2];e:{if((0|c)>=1)for(s=d,k=v,g=c;m=a[s+4>>2],a[k>>2]=a[s>>2],a[k+4>>2]=m,s=s+8|0,k=k+8|0,g=g+-1|0,g;);else if(!d)break e;o[t+16|0]&&(CA(d),c=a[t+4>>2]),a[t+12>>2]=0}a[t+12>>2]=v,f[t+16|0]=1,a[t+8>>2]=u}a[t+4>>2]=c+1,c=a[t+12>>2]+(c<<3)|0,a[c+4>>2]=l,a[c>>2]=b}if(!l)break}if(!b)break}}else mA(r+72|0,A,i+72|0,e,t);Y=n- -64|0}(n+912|0,n+848|0,i,t,n+824|0),a[n+828>>2])if(1!=(0|Qt[a[a[i>>2]+80>>2]](i))||1!=(0|Qt[a[a[t>>2]+80>>2]](t))){if(Qt[a[a[i>>2]+112>>2]](i),Qt[a[a[t>>2]+112>>2]](t),zA(n+520|4),c=n+584|0,a[c>>2]=0,a[c+4>>2]=0,a[n+528>>2]=1,c=n+592|0,a[c>>2]=0,a[c+4>>2]=0,c=n+600|0,a[c>>2]=0,a[c+4>>2]=0,c=n+608|0,a[c>>2]=0,a[c+4>>2]=0,c=n+616|0,a[c>>2]=0,a[c+4>>2]=0,c=n+624|0,a[c>>2]=0,a[c+4>>2]=0,a[n+524>>2]=8128,te(n+632|0),a[n+728>>2]=4,a[n+812>>2]=8708,a[n+804>>2]=8628,a[n+796>>2]=8556,a[n+632>>2]=8364,a[n+520>>2]=i,c=n+804|0,Qt[a[a[i>>2]+96>>2]](i)||(c=a[n+520>>2],c=0|Qt[a[a[c>>2]+100>>2]](c)?n+812|0:n+796|0),a[c+4>>2]=n+520,a[n+820>>2]=c,zA(n+216|4),c=n+280|0,a[c>>2]=0,a[c+4>>2]=0,a[n+224>>2]=1,c=n+288|0,a[c>>2]=0,a[c+4>>2]=0,c=n+296|0,a[c>>2]=0,a[c+4>>2]=0,c=n+304|0,a[c>>2]=0,a[c+4>>2]=0,c=n+312|0,a[c>>2]=0,a[c+4>>2]=0,c=n+320|0,a[c>>2]=0,a[c+4>>2]=0,a[n+220>>2]=8128,te(n+328|0),a[n+424>>2]=4,a[n+508>>2]=8708,a[n+500>>2]=8628,a[n+492>>2]=8556,a[n+328>>2]=8364,a[n+216>>2]=t,c=n+500|0,Qt[a[a[t>>2]+96>>2]](t)||(c=a[n+216>>2],c=0|Qt[a[a[c>>2]+100>>2]](c)?n+508|0:n+492|0),a[c+4>>2]=n+216,a[n+516>>2]=c,rA=0|Qt[a[a[i>>2]+92>>2]](i),iA=0|Qt[a[a[t>>2]+92>>2]](t),b=a[n+828>>2],b)for(d=(b<<3)-4|0,Z=n+136|0,V=n+120|0,l=n+104|0,k=n+200|0,v=n+184|0,B=n+168|0;c=a[n+836>>2]+d|0,a[A+32>>2]=a[c>>2],c=a[c+-4>>2],a[A+24>>2]=c,m=a[n+820>>2],m=0|Qt[a[a[m>>2]>>2]](m,c),c=a[n+516>>2],AA=0|Qt[a[a[c>>2]>>2]](c,a[A+32>>2]),c=a[e+12>>2],s=c+8|0,g=a[s>>2],s=a[s+4>>2],P=a[c>>2],K=a[c+4>>2],N=c+24|0,E=a[N+4>>2],u=B+8|0,a[u>>2]=a[N>>2],a[u+4>>2]=E,u=n+160|0,a[u>>2]=g,a[u+4>>2]=s,s=a[c+16>>2],g=a[c+20>>2],u=a[c+36>>2],a[v>>2]=a[c+32>>2],a[v+4>>2]=u,u=c+40|0,N=a[u>>2],u=a[u+4>>2],eA=c+56|0,fA=a[eA+4>>2],E=k+8|0,a[E>>2]=a[eA>>2],a[E+4>>2]=fA,E=a[c+52>>2],a[k>>2]=a[c+48>>2],a[k+4>>2]=E,c=v+8|0,a[c>>2]=N,a[c+4>>2]=u,a[B>>2]=s,a[B+4>>2]=g,a[n+152>>2]=P,a[n+156>>2]=K,c=a[r+12>>2],s=c+8|0,g=a[s>>2],s=a[s+4>>2],P=a[c>>2],K=a[c+4>>2],N=c+24|0,E=a[N+4>>2],u=l+8|0,a[u>>2]=a[N>>2],a[u+4>>2]=E,u=a[c+20>>2],a[l>>2]=a[c+16>>2],a[l+4>>2]=u,u=n+96|0,a[u>>2]=g,a[u+4>>2]=s,g=c+40|0,u=a[g+4>>2],s=V+8|0,a[s>>2]=a[g>>2],a[s+4>>2]=u,s=a[c+36>>2],a[V>>2]=a[c+32>>2],a[V+4>>2]=s,g=c+56|0,u=a[g+4>>2],s=Z+8|0,a[s>>2]=a[g>>2],a[s+4>>2]=u,s=a[c+52>>2],a[Z>>2]=a[c+48>>2],a[Z+4>>2]=s,a[n+88>>2]=P,a[n+92>>2]=K,rA&&(Qt[a[a[i>>2]+132>>2]](n+24|0,i,a[A+24>>2]),L=C[n+960>>2],q=C[n+964>>2],$=C[n+968>>2],I=C[n+80>>2],J=C[n+72>>2],x=C[n+76>>2],R=C[n+920>>2],Q=C[n+912>>2],h=C[n+916>>2],G=C[n+936>>2],p=C[n+928>>2],F=C[n+932>>2],U=C[n+56>>2],M=C[n+24>>2],S=C[n+40>>2],X=C[n+60>>2],T=C[n+28>>2],j=C[n+44>>2],W=C[n+952>>2],O=C[n+64>>2],w=C[n+944>>2],H=C[n+32>>2],D=C[n+948>>2],z=C[n+48>>2],a[n+212>>2]=0,a[n+196>>2]=0,a[n+180>>2]=0,a[n+164>>2]=0,C[n+192>>2]=_(_(H*w)+_(z*D))+_(O*W),C[n+188>>2]=_(_(T*w)+_(j*D))+_(X*W),C[n+184>>2]=_(_(M*w)+_(S*D))+_(U*W),C[n+176>>2]=_(_(H*p)+_(z*F))+_(O*G),C[n+172>>2]=_(_(T*p)+_(j*F))+_(X*G),C[n+168>>2]=_(_(M*p)+_(S*F))+_(U*G),C[n+160>>2]=_(_(Q*H)+_(h*z))+_(R*O),C[n+156>>2]=_(_(Q*T)+_(h*j))+_(R*X),C[n+152>>2]=_(_(M*Q)+_(S*h))+_(U*R),C[n+208>>2]=$+_(_(_(w*J)+_(D*x))+_(W*I)),C[n+204>>2]=q+_(_(_(p*J)+_(F*x))+_(G*I)),C[n+200>>2]=L+_(_(_(Q*J)+_(h*x))+_(R*I))),b=b+-1|0,iA&&(Qt[a[a[t>>2]+132>>2]](n+24|0,t,a[A+32>>2]),L=C[n+896>>2],q=C[n+900>>2],$=C[n+904>>2],I=C[n+80>>2],J=C[n+72>>2],x=C[n+76>>2],R=C[n+856>>2],Q=C[n+848>>2],h=C[n+852>>2],G=C[n+872>>2],p=C[n+864>>2],F=C[n+868>>2],U=C[n+56>>2],M=C[n+24>>2],S=C[n+40>>2],X=C[n+60>>2],T=C[n+28>>2],j=C[n+44>>2],W=C[n+888>>2],O=C[n+64>>2],w=C[n+880>>2],H=C[n+32>>2],D=C[n+884>>2],z=C[n+48>>2],a[n+148>>2]=0,a[n+132>>2]=0,a[n+116>>2]=0,a[n+100>>2]=0,C[n+128>>2]=_(_(H*w)+_(z*D))+_(O*W),C[n+124>>2]=_(_(T*w)+_(j*D))+_(X*W),C[n+120>>2]=_(_(M*w)+_(S*D))+_(U*W),C[n+112>>2]=_(_(H*p)+_(z*F))+_(O*G),C[n+108>>2]=_(_(T*p)+_(j*F))+_(X*G),C[n+104>>2]=_(_(M*p)+_(S*F))+_(U*G),C[n+96>>2]=_(_(Q*H)+_(h*z))+_(R*O),C[n+92>>2]=_(_(Q*T)+_(h*j))+_(R*X),C[n+88>>2]=_(_(M*Q)+_(S*h))+_(U*R),C[n+144>>2]=$+_(_(_(w*J)+_(D*x))+_(W*I)),C[n+140>>2]=q+_(_(_(p*J)+_(F*x))+_(G*I)),C[n+136>>2]=L+_(_(_(Q*J)+_(h*x))+_(R*I))),a[n+28>>2]=m,a[n+44>>2]=a[A+24>>2],a[n+40>>2]=a[A+28>>2],a[n+24>>2]=e,a[n+32>>2]=a[e+8>>2],a[n+36>>2]=n+152,a[n+4>>2]=AA,a[n+20>>2]=a[A+32>>2],a[n+16>>2]=a[A+36>>2],a[n>>2]=r,a[n+8>>2]=a[r+8>>2],a[n+12>>2]=n+88,Be(A,n+24|0,n,m,AA),d=d+-8|0,b;);Qt[a[a[i>>2]+116>>2]](i),Qt[a[a[t>>2]+116>>2]](t),Ae(n+328|0),Ae(n+216|4),Ae(n+632|0),Ae(n+520|4)}else!function(A,e,r,i,f,t,n){var o,c=_(0),b=0,l=_(0),u=0,s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=0,p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0),q=_(0),$=_(0),AA=_(0),eA=_(0),rA=_(0),iA=_(0),fA=_(0),tA=0,nA=0,aA=_(0);if(o=Y-432|0,Y=o,u=a[r+12>>2],V=C[u+56>>2],N=C[u+52>>2],I=C[u+40>>2],J=C[u+36>>2],x=C[u+24>>2],U=C[u+20>>2],b=a[e+12>>2],M=C[b+56>>2],S=C[b+52>>2],X=C[b+40>>2],T=C[b+36>>2],j=C[b+24>>2],O=C[b+20>>2],H=C[u+48>>2],z=C[u+32>>2],P=C[u+16>>2],K=C[u+8>>2],L=C[u+4>>2],q=C[u>>2],$=C[b+48>>2],AA=C[b+32>>2],eA=C[b+16>>2],rA=C[b+8>>2],iA=C[b+4>>2],fA=C[b>>2],a[o+424>>2]=1008981770,a[o+352>>2]=1008981770,Qt[a[a[i>>2]+112>>2]](i),Qt[a[a[f>>2]+112>>2]](f),n)for(nA=o+16|0;;){if(u=a[t>>2],a[A+24>>2]=u,a[A+32>>2]=a[t+4>>2],b=0|Qt[a[a[i>>2]+84>>2]](i),Qt[a[a[b>>2]+20>>2]](b,u,o+360|0),u=a[A+32>>2],b=0|Qt[a[a[f>>2]+84>>2]](f),Qt[a[a[b>>2]+20>>2]](b,u,o+288|0),a[o+372>>2]=0,a[o+388>>2]=0,a[o+404>>2]=0,m=C[o+376>>2],R=C[o+380>>2],c=C[o+384>>2],aA=_(S+_(_(_(eA*m)+_(O*R))+_(j*c))),C[o+380>>2]=aA,Q=C[o+360>>2],h=C[o+364>>2],v=C[o+368>>2],p=_(S+_(_(_(eA*Q)+_(O*h))+_(j*v))),C[o+364>>2]=p,s=C[o+392>>2],k=C[o+396>>2],l=C[o+400>>2],F=_(S+_(_(_(eA*s)+_(O*k))+_(j*l))),C[o+396>>2]=F,d=_(M+_(_(_(AA*m)+_(T*R))+_(X*c))),C[o+384>>2]=d,g=_($+_(_(_(fA*s)+_(iA*k))+_(rA*l))),C[o+392>>2]=g,W=_($+_(_(_(fA*Q)+_(iA*h))+_(rA*v))),C[o+360>>2]=W,c=_($+_(_(_(fA*m)+_(iA*R))+_(rA*c))),C[o+376>>2]=c,w=_(M+_(_(_(AA*Q)+_(T*h))+_(X*v))),C[o+368>>2]=w,l=_(M+_(_(_(AA*s)+_(T*k))+_(X*l))),C[o+400>>2]=l,v=C[o+296>>2],s=C[o+288>>2],k=C[o+292>>2],a[o+300>>2]=0,D=_(N+_(_(_(P*s)+_(U*k))+_(x*v))),C[o+292>>2]=D,E=_(V+_(_(_(z*s)+_(J*k))+_(I*v))),C[o+296>>2]=E,Z=_(H+_(_(_(q*s)+_(L*k))+_(K*v))),C[o+288>>2]=Z,v=C[o+312>>2],s=C[o+304>>2],k=C[o+308>>2],a[o+316>>2]=0,m=_(N+_(_(_(P*s)+_(U*k))+_(x*v))),C[o+308>>2]=m,R=_(V+_(_(_(z*s)+_(J*k))+_(I*v))),C[o+312>>2]=R,Q=_(H+_(_(_(q*s)+_(L*k))+_(K*v))),C[o+304>>2]=Q,B=C[o+328>>2],s=C[o+320>>2],k=C[o+324>>2],a[o+332>>2]=0,h=_(N+_(_(_(P*s)+_(U*k))+_(x*B))),C[o+324>>2]=h,v=_(H+_(_(_(q*s)+_(L*k))+_(K*B))),C[o+320>>2]=v,s=_(V+_(_(_(z*s)+_(J*k))+_(I*B))),C[o+328>>2]=s,k=_(d-w),d=_(g-W),c=_(c-W),g=_(l-w),B=_(_(k*d)-_(c*g)),l=_(F-p),F=_(c*l),c=_(aA-p),d=_(F-_(c*d)),l=_(_(c*g)-_(k*l)),c=_(_(1)/_(y(_(_(d*d)+_(_(l*l)+_(B*B)))))),g=_(B*c),C[o+412>>2]=g,l=_(l*c),C[o+408>>2]=l,c=_(d*c),C[o+416>>2]=c,C[o+420>>2]=_(w*c)+_(_(W*l)+_(p*g)),k=_(R-E),d=_(v-Z),c=_(Q-Z),g=_(s-E),s=_(_(k*d)-_(c*g)),l=_(h-D),v=_(c*l),c=_(m-D),d=_(v-_(c*d)),l=_(_(c*g)-_(k*l)),c=_(_(1)/_(y(_(_(d*d)+_(_(l*l)+_(s*s)))))),g=_(s*c),C[o+340>>2]=g,l=_(l*c),C[o+336>>2]=l,c=_(d*c),C[o+344>>2]=c,C[o+348>>2]=_(E*c)+_(_(Z*l)+_(D*g)),n=n+-1|0,ee(o+360|0,o+288|0)&&fe(o+360|0,o+288|0,o+8|0)&&(G=a[o+12>>2],G))for(tA=(G<<4)+nA|0;c=C[o+8>>2],b=a[A+16>>2],Qt[a[a[b>>2]+8>>2]](b,a[A+28>>2],a[A+24>>2]),b=a[A+16>>2],Qt[a[a[b>>2]+12>>2]](b,a[A+36>>2],a[A+32>>2]),G=G+-1|0,c=_(-c),u=a[A+12>>2],u||(b=a[A+4>>2],u=0|Qt[a[a[b>>2]+12>>2]](b,a[e+8>>2],a[r+8>>2]),a[A+12>>2]=u),b=a[A+16>>2],a[b+4>>2]=u,Qt[a[a[b>>2]+16>>2]](b,nA,tA,c),tA=tA+-16|0,G;);if(t=t+8|0,!n)break}Qt[a[a[i>>2]+116>>2]](i),Qt[a[a[f>>2]+116>>2]](f),Y=o+432|0}(A,e,r,i,t,a[n+836>>2],a[n+828>>2]);A=a[n+836>>2],A&&(o[n+840|0]&&CA(A),a[n+836>>2]=0)}else{if(b=a[t+156>>2],c=b+-1|0,a[A+36>>2]=c,!b)break A;for(;_e(A,e,r,i,a[a[t+164>>2]+(c<<2)>>2]),b=a[A+36>>2],c=b+-1|0,a[A+36>>2]=c,b;);}else{if(b=a[i+156>>2],c=b+-1|0,a[A+28>>2]=c,!b)break A;for(;_e(A,e,r,a[a[i+164>>2]+(c<<2)>>2],t),b=a[A+28>>2],c=b+-1|0,a[A+28>>2]=c,b;);}Y=n+976|0}function me(A,e,r,i,t,n){var c,b=0,l=0,u=0,s=0,k=0,v=0,d=0,R=0,Q=0,h=0;c=Y-528|0,Y=c;A:if(2!=(0|Qt[a[a[i>>2]+80>>2]](i)))if(l=1!=(0|Qt[a[a[i>>2]+80>>2]](i)),b=a[t+4>>2],l|28!=(0|b))if(31!=(0|b))if(b+-21>>>0<=8)!function(A,e,r,i,t,n){var o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=0,I=_(0);o=Y-128|0,Y=o,f[o+116|0]=n,a[o+112>>2]=i,a[o+100>>2]=A,a[o+96>>2]=8784,a[o+104>>2]=e,a[o+108>>2]=r,N=o,I=_(Qt[a[a[t>>2]+48>>2]](t)),C[N+120>>2]=I,A=a[r+12>>2],m=C[A+52>>2],R=C[A+56>>2],e=a[e+12>>2],Q=C[e+52>>2],h=C[e+56>>2],c=C[A+20>>2],b=C[A+36>>2],G=C[e+20>>2],y=C[e+36>>2],p=C[e+24>>2],l=C[A+24>>2],F=C[e+40>>2],u=C[A+40>>2],W=C[e+32>>2],s=C[A+32>>2],w=C[e>>2],k=C[A>>2],D=C[e+16>>2],v=C[A+16>>2],d=C[A+48>>2],E=C[e+48>>2],g=C[A+4>>2],Z=C[e+4>>2],V=C[e+8>>2],B=C[A+8>>2],a[o+92>>2]=0,a[o+76>>2]=0,a[o+60>>2]=0,C[o+72>>2]=_(_(B*V)+_(l*p))+_(u*F),C[o+68>>2]=_(_(B*Z)+_(l*G))+_(u*y),C[o+56>>2]=_(_(g*V)+_(c*p))+_(b*F),C[o+52>>2]=_(_(g*Z)+_(c*G))+_(b*y),d=_(-d),C[o+88>>2]=_(_(_(B*d)-_(l*m))-_(u*R))+_(_(_(B*E)+_(l*Q))+_(u*h)),C[o+84>>2]=_(_(_(g*d)-_(c*m))-_(b*R))+_(_(_(g*E)+_(c*Q))+_(b*h)),a[o+44>>2]=0,C[o+32>>2]=_(_(k*w)+_(v*D))+_(s*W),C[o+64>>2]=_(_(B*w)+_(l*D))+_(u*W),C[o+48>>2]=_(_(g*w)+_(c*D))+_(b*W),C[o+40>>2]=_(_(k*V)+_(v*p))+_(s*F),C[o+36>>2]=_(_(k*Z)+_(v*G))+_(s*y),C[o+80>>2]=_(_(_(k*d)-_(v*m))-_(s*R))+_(_(_(k*E)+_(v*Q))+_(s*h)),Qt[a[a[i>>2]+8>>2]](i,o+32|0,o+16|0,o),Qt[a[a[t>>2]+64>>2]](t,o+96|0,o+16|0,o),Y=o+128|0}(A,e,r,i,t,n);else{if(b=a[e+12>>2],u=b+8|0,l=a[u>>2],u=a[u+4>>2],d=a[b>>2],Q=a[b+4>>2],k=b+24|0,v=a[k+4>>2],s=c+488|0,a[s>>2]=a[k>>2],a[s+4>>2]=v,s=c+472|0,a[s>>2]=l,a[s+4>>2]=u,u=a[b+16>>2],l=a[b+20>>2],k=b+40|0,v=a[k+4>>2],s=c+504|0,a[s>>2]=a[k>>2],a[s+4>>2]=v,s=a[b+32>>2],k=a[b+36>>2],R=b+56|0,h=a[R+4>>2],v=c+520|0,a[v>>2]=a[R>>2],a[v+4>>2]=h,a[c+464>>2]=d,a[c+468>>2]=Q,a[c+480>>2]=u,a[c+484>>2]=l,a[c+496>>2]=s,a[c+500>>2]=k,u=a[b+52>>2],a[c+512>>2]=a[b+48>>2],a[c+516>>2]=u,b=a[r+12>>2],u=b+8|0,l=a[u>>2],u=a[u+4>>2],d=a[b>>2],Q=a[b+4>>2],k=b+24|0,v=a[k+4>>2],s=c+424|0,a[s>>2]=a[k>>2],a[s+4>>2]=v,s=c+408|0,a[s>>2]=l,a[s+4>>2]=u,u=a[b+16>>2],l=a[b+20>>2],k=b+40|0,v=a[k+4>>2],s=c+440|0,a[s>>2]=a[k>>2],a[s+4>>2]=v,s=a[b+32>>2],k=a[b+36>>2],R=b+56|0,h=a[R+4>>2],v=c+456|0,a[v>>2]=a[R>>2],a[v+4>>2]=h,a[c+400>>2]=d,a[c+404>>2]=Q,a[c+416>>2]=u,a[c+420>>2]=l,a[c+432>>2]=s,a[c+436>>2]=k,u=a[b+52>>2],a[c+448>>2]=a[b+48>>2],a[c+452>>2]=u,a[c+388>>2]=0,f[c+392|0]=1,a[c+380>>2]=0,a[c+384>>2]=0,function(A,e,r,i,t){var n,c=0,b=0,l=0,u=_(0),s=_(0),k=_(0),v=0,d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=0,y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=0,E=_(0),Z=_(0),V=_(0);if(n=Y-96|0,Y=n,a[r+72>>2])l=A+20|0,R=C[l>>2],v=n+20|0,a[v>>2]=a[l>>2],c=A+36|0,Q=C[c>>2],l=n+24|0,a[l>>2]=a[c>>2],a[n+12>>2]=0,h=C[A+4>>2],a[n+16>>2]=a[A+4>>2],p=C[A+32>>2],a[n+8>>2]=a[A+32>>2],F=C[A+16>>2],a[n+4>>2]=a[A+16>>2],W=C[A>>2],a[n>>2]=a[A>>2],d=C[A+52>>2],g=C[A+56>>2],c=A+24|0,u=C[c>>2],b=a[c>>2],s=C[A+8>>2],G=a[A+8>>2],k=C[A+48>>2],c=A+40|0,y=C[c>>2],A=n+40|0,a[A>>2]=a[c>>2],c=n+36|0,a[c>>2]=b,b=n+28|0,a[b>>2]=0,D=n+44|0,a[D>>2]=0,a[n+60>>2]=0,k=_(-k),w=_(_(_(s*k)-_(d*u))-_(g*y)),B=C[e+48>>2],m=_(B*s),s=C[e+52>>2],m=_(m+_(s*u)),u=C[e+56>>2],C[n+56>>2]=w+_(m+_(u*y)),C[n+52>>2]=_(_(_(h*k)-_(d*R))-_(g*Q))+_(_(_(B*h)+_(s*R))+_(u*Q)),a[n+32>>2]=G,C[n+48>>2]=_(_(_(W*k)-_(d*F))-_(g*p))+_(_(_(B*W)+_(s*F))+_(u*p)),d=C[e+36>>2],g=C[e+20>>2],R=C[e+40>>2],Q=C[e+24>>2],h=C[e+32>>2],u=C[e>>2],s=C[e+16>>2],y=C[l>>2],k=C[v>>2],B=C[e+4>>2],w=C[A>>2],m=C[e+8>>2],E=C[c>>2],Z=C[n+16>>2],V=C[n+32>>2],a[D>>2]=0,C[A>>2]=_(_(m*V)+_(Q*E))+_(R*w),C[c>>2]=_(_(B*V)+_(g*E))+_(d*w),a[b>>2]=0,C[l>>2]=_(_(m*Z)+_(Q*k))+_(R*y),C[v>>2]=_(_(B*Z)+_(g*k))+_(d*y),C[n+32>>2]=_(_(u*V)+_(s*E))+_(h*w),C[n+16>>2]=_(_(u*Z)+_(s*k))+_(h*y),a[n+12>>2]=0,C[n+8>>2]=_(_(m*W)+_(Q*F))+_(R*p),C[n+4>>2]=_(_(B*W)+_(g*F))+_(d*p),C[n>>2]=_(_(u*W)+_(s*F))+_(h*p),Qt[a[a[i>>2]+8>>2]](i,n,n- -64|0,n+80|0),_A(r+72|0,n- -64|0,t);else if(Qt[a[a[i>>2]+8>>2]](i,e,n- -64|0,n+80|0),e=0|Qt[a[a[r>>2]+88>>2]](r),e)for(D=n+16|0;;){if(e=e+-1|0,Qt[a[a[r>>2]+120>>2]](r,e,A,n,D),!(C[n+80>>2]<C[n>>2]|C[n+64>>2]>C[n+16>>2]|C[n+84>>2]<C[n+4>>2]|C[n+68>>2]>C[n+20>>2]|C[n+88>>2]<C[n+8>>2]|C[n+72>>2]>C[n+24>>2])){if(b=a[t+4>>2],(0|b)==a[t+8>>2]&&(G=b?b<<1:1,!((0|b)>=(0|G)))){G?(i=dA(G<<2),b=a[t+4>>2]):i=0,v=a[t+12>>2];e:{if((0|b)>=1)for(l=i,c=v;a[l>>2]=a[c>>2],l=l+4|0,c=c+4|0,b=b+-1|0,b;);else if(!v)break e;o[t+16|0]&&CA(v),a[t+12>>2]=0,b=a[t+4>>2]}a[t+12>>2]=i,f[t+16|0]=1,a[t+8>>2]=G}a[a[t+12>>2]+(b<<2)>>2]=e,a[t+4>>2]=a[t+4>>2]+1}if(!e)break}Y=n+96|0}(c+464|0,c+400|0,i,t,c+376|0),a[c+380>>2]){if(Qt[a[a[i>>2]+112>>2]](i),zA(c+72|4),t=c+136|0,a[t>>2]=0,a[t+4>>2]=0,a[c+80>>2]=1,t=c+144|0,a[t>>2]=0,a[t+4>>2]=0,t=c+152|0,a[t>>2]=0,a[t+4>>2]=0,t=c+160|0,a[t>>2]=0,a[t+4>>2]=0,t=c+168|0,a[t>>2]=0,a[t+4>>2]=0,t=c+176|0,a[t>>2]=0,a[t+4>>2]=0,a[c+76>>2]=8128,te(c+184|0),a[c+280>>2]=4,a[c+364>>2]=8708,a[c+356>>2]=8628,a[c+348>>2]=8556,a[c+184>>2]=8364,a[c+72>>2]=i,t=c+356|0,Qt[a[a[i>>2]+96>>2]](i)||(t=a[c+72>>2],t=0|Qt[a[a[t>>2]+100>>2]](t)?c+364|0:c+348|0),a[t+4>>2]=c+72,a[c+372>>2]=t,u=0|Qt[a[a[i>>2]+92>>2]](i),t=a[c+380>>2],t)if(n)for(b=(t<<2)-4|0;n=a[a[c+388>>2]+b>>2],a[A+32>>2]=n,l=a[c+372>>2],l=0|Qt[a[a[l>>2]>>2]](l,n),u&&Qt[a[a[i>>2]+132>>2]](c+8|0,i,n),a[c+8>>2]=e,a[c+20>>2]=a[e+12>>2],d=a[e+8>>2],a[c+16>>2]=d,a[c+12>>2]=l,a[c+28>>2]=a[A+24>>2],a[c+24>>2]=a[A+28>>2],l=a[A+16>>2],n=a[l+8>>2],a[((0|d)==a[n+8>>2]?8:12)+l>>2]=c+8,ge(A,r,c+8|0),a[a[A+16>>2]+8>>2]=n,b=b+-4|0,t=t+-1|0,t;);else for(b=(t<<2)-4|0;n=a[a[c+388>>2]+b>>2],a[A+24>>2]=n,l=a[c+372>>2],l=0|Qt[a[a[l>>2]>>2]](l,n),u&&Qt[a[a[i>>2]+132>>2]](c+8|0,i,n),a[c+8>>2]=e,a[c+20>>2]=a[e+12>>2],d=a[e+8>>2],a[c+16>>2]=d,a[c+12>>2]=l,a[c+28>>2]=a[A+24>>2],a[c+24>>2]=a[A+28>>2],l=a[A+16>>2],n=a[l+8>>2],a[((0|d)==a[n+8>>2]?8:12)+l>>2]=c+8,ge(A,c+8|0,r),a[a[A+16>>2]+8>>2]=n,b=b+-4|0,t=t+-1|0,t;);Qt[a[a[i>>2]+116>>2]](i),Ae(c+184|0),Ae(c+72|4)}A=a[c+388>>2],A&&(o[c+392|0]&&CA(A),a[c+388>>2]=0)}else!function(A,e,r,i,f,t){var n=0,o=0,c=0,b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=0,y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=0,Z=0,V=0,N=0,I=_(0),J=_(0),x=_(0);if(o=Y-96|0,Y=o,c=a[f+20>>2],c)for(n=a[r+12>>2],I=C[n+56>>2],J=C[n+52>>2],s=C[n+40>>2],k=C[n+36>>2],v=C[n+24>>2],d=C[n+20>>2],x=C[n+48>>2],g=C[n+32>>2],m=C[n+16>>2],R=C[n+8>>2],Q=C[n+4>>2],h=C[n>>2],G=c+-1|0,c=B(c,80)+-80|0;n=a[f+28>>2]+c|0,V=a[n- -64>>2],a[o+92>>2]=0,a[o+76>>2]=0,a[o+60>>2]=0,a[o+44>>2]=0,b=C[n+8>>2],l=C[n+24>>2],u=C[n+40>>2],C[o+72>>2]=_(_(g*b)+_(k*l))+_(s*u),y=C[n+4>>2],p=C[n+20>>2],F=C[n+36>>2],C[o+68>>2]=_(_(g*y)+_(k*p))+_(s*F),W=C[n>>2],w=C[n+16>>2],D=C[n+32>>2],C[o+64>>2]=_(_(g*W)+_(k*w))+_(s*D),C[o+56>>2]=_(_(m*b)+_(d*l))+_(v*u),C[o+52>>2]=_(_(m*y)+_(d*p))+_(v*F),C[o+48>>2]=_(_(m*W)+_(d*w))+_(v*D),C[o+40>>2]=_(_(h*b)+_(Q*l))+_(R*u),C[o+36>>2]=_(_(h*y)+_(Q*p))+_(R*F),C[o+32>>2]=_(_(h*W)+_(Q*w))+_(R*D),b=C[n+48>>2],l=C[n+52>>2],u=C[n+56>>2],C[o+88>>2]=I+_(_(_(g*b)+_(k*l))+_(s*u)),C[o+84>>2]=J+_(_(_(m*b)+_(d*l))+_(v*u)),C[o+80>>2]=x+_(_(_(h*b)+_(Q*l))+_(R*u)),a[o+8>>2]=r,N=a[r+8>>2],a[o+16>>2]=N,a[o+12>>2]=V,a[o+28>>2]=G,a[o+24>>2]=-1,n=a[A+16>>2],a[o+20>>2]=o+32,E=a[n+8>>2],Z=n+8|0,a[E+8>>2]!=(0|N)&&(E=a[n+12>>2],Z=n+12|0),a[Z>>2]=o+8,me(A,e,o+8|0,i,V,t),n=a[A+16>>2],a[(a[a[n+8>>2]+8>>2]==a[o+16>>2]?8:12)+n>>2]=E,c=c+-80|0,G=G+-1|0,-1!=(0|G););Y=o+96|0}(A,e,r,i,t,n);else!function(A,e,r,i,f,t){var n=0,o=0,c=_(0),b=_(0),l=0,u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),R=_(0),Q=_(0),h=0,G=0,y=_(0),p=0,F=0,W=0,w=0,D=_(0),E=0,Z=0,V=_(0),N=_(0);if(o=Y-144|0,Y=o,n=a[e+12>>2],p=n+8|0,h=a[p+4>>2],l=o+88|0,a[l>>2]=a[p>>2],a[l+4>>2]=h,l=a[n>>2],p=a[n+4>>2],F=n+24|0,G=a[F+4>>2],h=o+104|0,a[h>>2]=a[F>>2],a[h+4>>2]=G,h=a[n+16>>2],F=a[n+20>>2],W=n+40|0,w=a[W+4>>2],G=o+120|0,a[G>>2]=a[W>>2],a[G+4>>2]=w,G=a[n+32>>2],W=a[n+36>>2],E=n+56|0,Z=a[E+4>>2],w=o+136|0,a[w>>2]=a[E>>2],a[w+4>>2]=Z,a[o+80>>2]=l,a[o+84>>2]=p,a[o+96>>2]=h,a[o+100>>2]=F,a[o+112>>2]=G,a[o+116>>2]=W,l=a[n+52>>2],a[o+128>>2]=a[n+48>>2],a[o+132>>2]=l,n=a[r+12>>2],d=C[n+20>>2],s=C[n+24>>2],k=C[n+36>>2],v=C[n+40>>2],R=C[n+8>>2],Q=C[n>>2],D=C[n+4>>2],V=C[n+16>>2],N=C[n+32>>2],c=C[f+52>>2],b=C[f+56>>2],u=C[f+60>>2],y=_(_(_(_(C[n+48>>2]*c)+_(C[n+52>>2]*b))+_(C[n+56>>2]*u))+C[f+68>>2]),C[o+76>>2]=y,k=_(_(_(N*c)+_(k*b))+_(v*u)),C[o+72>>2]=k,d=_(_(_(V*c)+_(d*b))+_(s*u)),C[o+68>>2]=d,s=_(_(_(Q*c)+_(D*b))+_(R*u)),C[o+64>>2]=s,Qt[a[a[i>>2]+8>>2]](i,o+80|0,o+32|0,o+48|0),c=_(Qt[a[a[f>>2]+48>>2]](f)),n=o+52|0,b=_(c+C[n>>2]),C[n>>2]=b,n=o+56|0,u=_(c+C[n>>2]),C[n>>2]=u,R=_(C[o+36>>2]-c),C[o+36>>2]=R,v=_(c+C[o+48>>2]),C[o+48>>2]=v,Q=_(C[o+32>>2]-c),C[o+32>>2]=Q,c=_(C[o+40>>2]-c),C[o+40>>2]=c,Q=_(_(Q+v)*_(.5)),R=_(_(R+b)*_(.5)),c=_(_(c+u)*_(.5)),D=_(_(_(Q*s)+_(R*d))+_(c*k)),c=_(_(_(_(v-Q)*_(m(s)))+_(_(b-R)*_(m(d))))+_(_(u-c)*_(m(k)))),!(y>_(_(D+c)+_(9.999999974752427e-7))|_(y+_(9.999999974752427e-7))>=_(D-c)^1)){if(Qt[a[a[i>>2]+112>>2]](i),c=_(Qt[a[a[i>>2]+48>>2]](i)),b=_(Qt[a[a[f>>2]+48>>2]](f)),f=a[i+188>>2],f)for(d=_(c+b),f=f+-1|0;n=a[i+184>>2]+B(a[i+196>>2],f)|0,1!=a[i+192>>2]?(c=_(C[n>>2]*C[i+160>>2]),C[o+16>>2]=c,b=_(C[n+4>>2]*C[i+164>>2]),C[o+20>>2]=b,u=_(C[n+8>>2]*C[i+168>>2])):(c=_(g[n>>3]*+C[i+160>>2]),C[o+16>>2]=c,b=_(g[n+8>>3]*+C[i+164>>2]),C[o+20>>2]=b,u=_(g[n+16>>3]*+C[i+168>>2])),a[o+28>>2]=0,s=_(_(_(_(c*C[o+96>>2])+_(b*C[o+100>>2]))+_(u*C[o+104>>2]))+C[o+132>>2]),C[o+20>>2]=s,y=C[o+68>>2],v=_(_(_(_(c*C[o+80>>2])+_(b*C[o+84>>2]))+_(u*C[o+88>>2]))+C[o+128>>2]),C[o+16>>2]=v,k=C[o+64>>2],c=_(_(_(_(c*C[o+112>>2])+_(b*C[o+116>>2]))+_(u*C[o+120>>2]))+C[o+136>>2]),C[o+24>>2]=c,b=C[o+72>>2],c=_(_(_(_(_(v*k)+_(s*y))+_(c*b))-C[o+76>>2])-d),c<_(0)&&(t?(a[o+12>>2]=0,C[o+8>>2]=-b,C[o+4>>2]=-y,C[o>>2]=-k,n=a[A+16>>2],Qt[a[a[n>>2]+8>>2]](n,a[A+28>>2],a[A+24>>2]),n=a[A+16>>2],Qt[a[a[n>>2]+12>>2]](n,a[A+36>>2],a[A+32>>2]),n=a[A+12>>2],n||(n=a[A+4>>2],n=0|Qt[a[a[n>>2]+12>>2]](n,a[r+8>>2],a[e+8>>2]),a[A+12>>2]=n),l=a[A+16>>2],a[l+4>>2]=n,Qt[a[a[l>>2]+16>>2]](l,o,o+16|0,c)):(n=a[A+16>>2],Qt[a[a[n>>2]+8>>2]](n,a[A+28>>2],a[A+24>>2]),n=a[A+16>>2],Qt[a[a[n>>2]+12>>2]](n,a[A+36>>2],a[A+32>>2]),n=a[A+12>>2],n||(n=a[A+4>>2],n=0|Qt[a[a[n>>2]+12>>2]](n,a[e+8>>2],a[r+8>>2]),a[A+12>>2]=n),l=a[A+16>>2],a[l+4>>2]=n,Qt[a[a[l>>2]+16>>2]](l,o- -64|0,o+16|0,c))),f=f+-1|0,-1!=(0|f););Qt[a[a[i>>2]+116>>2]](i)}Y=o+144|0}(A,e,r,i,t,n);else{if(u=(n?36:28)+A|0,l=a[i+156>>2],b=l+-1|0,a[u>>2]=b,!l)break A;for(;me(A,e,r,a[a[i+164>>2]+(b<<2)>>2],t,n),l=a[u>>2],b=l+-1|0,a[u>>2]=b,l;);}Y=c+528|0}function Re(A,e,r,i,f){return _(_(1))}function Qe(A){return A|=0,A+16|0}function he(A,e,r){A|=0,e=_(e),r|=0,a[r>>2]=0,a[r+4>>2]=0,A=r+8|0,a[A>>2]=0,a[A+4>>2]=0}function Ge(A,e){A|=0,e=_(e),C[A+48>>2]=e}function ye(A){return 52}function pe(A){return 2}function Fe(A){return 3}function We(A){return 1}function we(A){return 0}function De(A,e,r){}function Ee(A){var e=0;a[A+132>>2]=0,a[A+136>>2]=0,a[A>>2]=8964,a[A+188>>2]=0,a[A+192>>2]=0,a[A+180>>2]=0,a[A+184>>2]=1566444395,a[A+164>>2]=1065353216,a[A+168>>2]=1065353216,a[A+276>>2]=0,a[A+280>>2]=0,a[A+268>>2]=1065353216,a[A+272>>2]=0,a[A+260>>2]=-1,a[A+264>>2]=-1,a[A+252>>2]=1,a[A+256>>2]=0,a[A+244>>2]=1036831949,a[A+248>>2]=1176256512,a[A+236>>2]=0,a[A+240>>2]=0,a[A+228>>2]=1056964608,a[A+232>>2]=0,a[A+220>>2]=1,a[A+224>>2]=0,a[A+212>>2]=-1,a[A+216>>2]=-1,a[A+204>>2]=1,a[A+208>>2]=-1,e=A+140|0,a[e>>2]=0,a[e+4>>2]=0,e=A+148|0,a[e>>2]=0,a[e+4>>2]=0,e=A+156|0,a[e>>2]=0,a[e+4>>2]=0,e=A+172|0,a[e>>2]=1065353216,a[e+4>>2]=0,e=A+196|0,a[e>>2]=0,a[e+4>>2]=0,f[A+300|0]=1,a[A+304>>2]=0,a[A+296>>2]=0,e=A+288|0,a[e>>2]=0,a[e+4>>2]=0,e=A+8|0,a[e>>2]=0,a[e+4>>2]=0,a[A+4>>2]=1065353216,e=A+16|0,a[e>>2]=0,a[e+4>>2]=0,e=A+28|0,a[e>>2]=0,a[e+4>>2]=0,a[A+24>>2]=1065353216,e=A+36|0,a[e>>2]=0,a[e+4>>2]=0,e=A+48|0,a[e>>2]=0,a[e+4>>2]=0,a[A+44>>2]=1065353216,e=A+56|0,a[e>>2]=0,a[e+4>>2]=0,e=A+72|0,a[e>>2]=0,a[e+4>>2]=0,e=A- -64|0,a[e>>2]=0,a[e+4>>2]=1065353216,e=A+80|0,a[e>>2]=0,a[e+4>>2]=0,a[A+88>>2]=1065353216,e=A+100|0,a[e>>2]=0,a[e+4>>2]=0,e=A+92|0,a[e>>2]=0,a[e+4>>2]=0,a[A+128>>2]=0,a[A+108>>2]=1065353216,e=A+120|0,a[e>>2]=0,a[e+4>>2]=0,A=A+112|0,a[A>>2]=0,a[A+4>>2]=0}function Ze(A){var e;return A|=0,a[A>>2]=8964,e=a[A+296>>2],e&&(o[A+300|0]&&CA(e),a[A+296>>2]=0),a[A+296>>2]=0,a[A+288>>2]=0,a[A+292>>2]=0,f[A+300|0]=1,0|A}function Ye(A,e){4!=(-2&a[A+220>>2])&&(a[A+220>>2]=e)}function Ve(A,e){3&o[A+204|0]&&!e||(4!=(-2&a[A+220>>2])&&(a[A+220>>2]=1),a[A+224>>2]=0)}function Ne(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;return a[e+16>>2]=a[A+4>>2],a[e+20>>2]=a[A+8>>2],a[e+24>>2]=a[A+12>>2],a[e+28>>2]=a[A+16>>2],a[e+32>>2]=a[A+20>>2],a[e+36>>2]=a[A+24>>2],a[e+40>>2]=a[A+28>>2],a[e+44>>2]=a[A+32>>2],a[e+48>>2]=a[A+36>>2],a[e+52>>2]=a[A+40>>2],a[e+56>>2]=a[A+44>>2],a[e+60>>2]=a[A+48>>2],a[e+64>>2]=a[A+52>>2],a[e+68>>2]=a[A+56>>2],a[e+72>>2]=a[A+60>>2],a[e+76>>2]=a[A- -64>>2],a[e+80>>2]=a[A+68>>2],a[e+84>>2]=a[A+72>>2],a[e+88>>2]=a[A+76>>2],a[e+92>>2]=a[A+80>>2],a[e+96>>2]=a[A+84>>2],a[e+100>>2]=a[A+88>>2],a[e+104>>2]=a[A+92>>2],a[e+108>>2]=a[A+96>>2],a[e+112>>2]=a[A+100>>2],a[e+116>>2]=a[A+104>>2],a[e+120>>2]=a[A+108>>2],a[e+124>>2]=a[A+112>>2],a[e+128>>2]=a[A+116>>2],a[e+132>>2]=a[A+120>>2],a[e+136>>2]=a[A+124>>2],a[e+140>>2]=a[A+128>>2],a[e+144>>2]=a[A+132>>2],a[e+148>>2]=a[A+136>>2],a[e+152>>2]=a[A+140>>2],a[e+156>>2]=a[A+144>>2],a[e+160>>2]=a[A+148>>2],a[e+164>>2]=a[A+152>>2],a[e+168>>2]=a[A+156>>2],a[e+172>>2]=a[A+160>>2],a[e+176>>2]=a[A+164>>2],a[e+180>>2]=a[A+168>>2],a[e+184>>2]=a[A+172>>2],a[e+188>>2]=a[A+176>>2],a[e+232>>2]=a[A+180>>2],a[e+192>>2]=a[A+184>>2],a[e>>2]=0,i=0|Qt[a[a[r>>2]+28>>2]](r,a[A+192>>2]),f=a[A+228>>2],a[e+196>>2]=a[A+224>>2],a[e+200>>2]=f,f=a[A+212>>2],a[e+240>>2]=a[A+208>>2],a[e+244>>2]=f,a[e+8>>2]=0,a[e+4>>2]=i,a[e+236>>2]=a[A+204>>2],a[e+248>>2]=a[A+220>>2],a[e+204>>2]=a[A+236>>2],a[e+208>>2]=a[A+244>>2],a[e+212>>2]=a[A+248>>2],a[e+216>>2]=a[A+232>>2],a[e+252>>2]=a[A+252>>2],i=0|Qt[a[a[r>>2]+40>>2]](r,A),f=0|Qt[a[a[r>>2]+28>>2]](r,i),a[e+12>>2]=f,f&&Qt[a[a[r>>2]+48>>2]](r,i),a[e+220>>2]=a[A+268>>2],r=a[A+280>>2],i=a[A+276>>2],A=a[A+272>>2],a[e+260>>2]=0,a[e+224>>2]=A,a[e+228>>2]=i,a[e+256>>2]=r,8992}function Ie(A,e){A|=0,e=_(e);var r,i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0);f=_(Qt[a[a[A>>2]+48>>2]](A)),t=_(Qt[a[a[A>>2]+48>>2]](A)),n=_(Qt[a[a[A>>2]+48>>2]](A)),C[A+48>>2]=e,r=A+40|0,e=C[r>>2],i=A+36|0,o=C[i>>2],c=C[A+32>>2],b=_(Qt[a[a[A>>2]+48>>2]](A)),l=_(Qt[a[a[A>>2]+48>>2]](A)),u=_(Qt[a[a[A>>2]+48>>2]](A)),a[A+44>>2]=0,C[i>>2]=_(t+o)-l,C[A+32>>2]=_(f+c)-b,C[r>>2]=_(n+e)-u}function Je(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0);f=_(Qt[a[a[A>>2]+48>>2]](A)),b=C[e+52>>2],o=C[e+20>>2],s=C[e+24>>2],l=C[e+56>>2],c=C[e+36>>2],t=C[A+36>>2],k=C[e+40>>2],v=C[A+40>>2],u=C[e+48>>2],d=C[e>>2],g=C[e+4>>2],B=C[e+8>>2],R=C[e+16>>2],Q=C[e+32>>2],n=C[A+32>>2],a[r+12>>2]=0,n=_(f+n),t=_(f+t),f=_(f+v),c=_(_(_(n*_(m(Q)))+_(t*_(m(c))))+_(f*_(m(k)))),C[r+8>>2]=l-c,o=_(_(_(n*_(m(R)))+_(t*_(m(o))))+_(f*_(m(s)))),C[r+4>>2]=b-o,f=_(_(_(n*_(m(d)))+_(t*_(m(g))))+_(f*_(m(B)))),C[r>>2]=u-f,a[i+12>>2]=0,C[i+8>>2]=l+c,C[i+4>>2]=o+b,C[i>>2]=f+u}function xe(A,e){A|=0,e|=0;var r,i,f,t,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0);n=_(Qt[a[a[A>>2]+48>>2]](A)),o=_(Qt[a[a[A>>2]+48>>2]](A)),c=_(Qt[a[a[A>>2]+48>>2]](A)),r=A+20|0,b=C[r>>2],i=A+36|0,l=C[i>>2],f=A+24|0,u=C[f>>2],t=A+40|0,s=C[t>>2],k=C[A+16>>2],v=C[A+32>>2],EA(A,e),a[A+44>>2]=0,C[t>>2]=_(_(_(c+s)/u)*C[f>>2])-c,C[i>>2]=_(_(_(o+l)/b)*C[r>>2])-o,C[A+32>>2]=_(_(_(n+v)/k)*C[A+16>>2])-n}function Ue(A){return 6}function Me(A){A|=0;var e=_(0),r=_(0);return e=C[A+32>>2],r=_(Qt[a[a[A>>2]+48>>2]](A)),_(Qt[a[a[A>>2]+48>>2]](A)),_(Qt[a[a[A>>2]+48>>2]](A)),_(_(e+r))}function Se(A,e,r,i,f,t){var n,o=_(0),c=_(0),b=_(0),l=_(0),u=0,s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=0,m=0,R=_(0),Q=0,h=0,G=_(0),p=_(0),F=0,W=_(0),w=0,D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=0,x=0,U=0,M=0,S=0,X=0,T=0,j=0,O=0;n=Y-32|0,Y=n;A:if(!(a[A+56>>2]<1))for(c=C[i>>2],k=C[r>>2],l=_(c-k),b=C[i+4>>2],v=C[r+4>>2],s=_(b-v),o=C[i+8>>2],d=C[r+8>>2],g=_(o-d),R=_(_(1)/_(y(_(_(_(l*l)+_(s*s))+_(g*g))))),G=g,g=_(g*R),p=l,l=_(l*R),W=s,s=_(s*R),W=_(_(G*g)+_(_(p*l)+_(W*s))),R=C[t+8>>2],D=_((d<o?o:d)+R),G=C[t+4>>2],E=_((v<b?b:v)+G),p=C[t>>2],Z=_((k<c?c:k)+p),d=o<d?o:d,o=C[f+8>>2],V=_(d+o),v=b<v?b:v,b=C[f+4>>2],N=_(v+b),k=c<k?c:k,c=C[f>>2],I=_(k+c),i=a[A+96>>2],k=g==_(0)?_(0xde0b6b000000000):_(_(1)/g),B=k<_(0),J=(B<<4)+n|8,v=s==_(0)?_(0xde0b6b000000000):_(_(1)/s),h=v<_(0),x=(h<<4)+n|4,U=((1^B)<<4)+n|8,M=((1^h)<<4)+n|4,d=l==_(0)?_(0xde0b6b000000000):_(_(1)/l),B=d<_(0),S=(B<<4)+n|0,X=((1^B)<<4)+n|0,h=n+16|0,B=1;;){u=i+8|0,Q=a[u>>2],m=a[u+4>>2],T=a[i>>2],j=a[i+4>>2],u=a[i+20>>2],a[h>>2]=a[i+16>>2],a[h+4>>2]=u,u=i+24|0,O=a[u+4>>2],w=h+8|0,a[w>>2]=a[u>>2],a[w+4>>2]=O,a[n>>2]=T,a[n+4>>2]=j,a[n+8>>2]=Q,a[n+12>>2]=m,C[n>>2]=C[n>>2]-p,C[n+4>>2]=C[n+4>>2]-G,C[n+16>>2]=C[n+16>>2]-c,C[n+20>>2]=C[n+20>>2]-b,C[n+8>>2]=C[n+8>>2]-R,C[n+24>>2]=C[n+24>>2]-o;e:{r:{i:{f:{if(Q=E<C[i+4>>2]|N>C[i+20>>2],m=0,I>C[i+16>>2]||(m=0,Z<C[i>>2]||(m=1)),!(Q|1^(D<C[i+8>>2]|V>C[u>>2]?0:m)||(l=C[r+4>>2],c=_(v*_(C[x>>2]-l)),o=C[r>>2],b=_(d*_(C[X>>2]-o)),c>b||(o=_(d*_(C[S>>2]-o)),l=_(v*_(C[M>>2]-l)),o>l||(g=C[r+8>>2],s=_(k*_(C[J>>2]-g)),b=l<b?l:b,s>b||(c=c>o?c:o,o=_(k*_(C[U>>2]-g)),c>o)))))){if(m=a[i+32>>2],u=-1==(0|m),Q=(s>c?s:c)<W&(o<b?o:b)>_(0),1!=(0|Q)|-1!=(0|m))break f;Qt[a[a[e>>2]+8>>2]](e,a[i+36>>2],a[i+40>>2]);break i}u=-1==a[i+32>>2],Q=0}if(!u&&!Q)break r}F=F+1|0,i=i- -64|0;break e}u=a[i+32>>2],F=u+F|0,i=(u<<6)+i|0}if((0|F)>=a[A+56>>2])break A;B=B+1|0,o=C[f+8>>2],b=C[f+4>>2],c=C[f>>2],R=C[t+8>>2],G=C[t+4>>2],p=C[t>>2]}a[430]<(0|B)&&(a[430]=B),Y=n+32|0}function Xe(A,e,r,i,f,t,n){var o,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),d=_(0),g=0,B=_(0),m=_(0),R=_(0),Q=0,h=_(0),G=0,p=_(0),F=_(0),W=0,w=0,D=0,E=0,Z=_(0),V=_(0),N=_(0),I=0,J=0,x=0,U=0,M=0,S=0,X=0,T=0,j=0,O=0,H=0,z=0,P=0,K=0;if(o=Y-32|0,Y=o,s=C[r+4>>2],k=C[i+4>>2],d=C[r>>2],u=C[i>>2],R=C[A+28>>2],c=C[A+12>>2],m=C[i+8>>2],h=C[r+8>>2],b=_((m<h?m:h)+C[f+8>>2]),b=b<c?c:b,Z=C[A+44>>2],b=_(_((R<b?R:b)-c)*Z),i=b<_(4294967296)&b>=_(0)?~~b>>>0:0,p=C[A+24>>2],b=C[A+8>>2],l=_((k<s?k:s)+C[f+4>>2]),l=l<b?b:l,V=C[A+40>>2],l=_(_((p<l?p:l)-b)*V),g=l<_(4294967296)&l>=_(0)?~~l>>>0:0,F=C[A+20>>2],l=C[A+4>>2],B=_((u<d?u:d)+C[f>>2]),B=B<l?l:B,N=C[A+36>>2],B=_(_((F<B?F:B)-l)*N),G=B<_(4294967296)&B>=_(0)?~~B>>>0:0,B=_((h<m?m:h)+C[t+8>>2]),B=B<c?c:B,c=_(_(_((R<B?R:B)-c)*Z)+_(1)),W=c<_(4294967296)&c>=_(0)?~~c>>>0:0,c=_((s<k?k:s)+C[t+4>>2]),c=c<b?b:c,c=_(_(_((p<c?p:c)-b)*V)+_(1)),w=c<_(4294967296)&c>=_(0)?~~c>>>0:0,c=_((d<u?u:d)+C[t>>2]),c=c<l?l:c,c=_(_(_((F<c?F:c)-l)*N)+_(1)),D=c<_(4294967296)&c>=_(0)?~~c>>>0:0,0<(0|n))for(d=_(u-d),s=_(k-s),k=_(m-h),u=_(_(1)/_(y(_(_(_(d*d)+_(s*s))+_(k*k))))),c=k,k=_(k*u),b=d,d=_(d*u),l=s,s=_(s*u),h=_(_(c*k)+_(_(b*d)+_(l*s))),U=65534&i,M=65534&g,S=65534&G,W|=1,w|=1,D|=1,i=a[A+136>>2],k=k==_(0)?_(0xde0b6b000000000):_(_(1)/k),Q=k<_(0),X=(Q<<4)+o|8,s=s==_(0)?_(0xde0b6b000000000):_(_(1)/s),g=s<_(0),T=(g<<4)+o|4,j=((1^Q)<<4)+o|8,O=((1^g)<<4)+o|4,d=d==_(0)?_(0xde0b6b000000000):_(_(1)/d),Q=d<_(0),H=(Q<<4)+o|0,z=((1^Q)<<4)+o|0,Q=0;;){G=a[i+12>>2],g=0;A:{e:{r:{i:if(!(S>>>0>v[i+6>>1]||(I=v[i>>1],D>>>0<I>>>0|U>>>0>v[i+10>>1]||(J=v[i+4>>1],W>>>0<J>>>0|M>>>0>v[i+8>>1]||(x=v[i+2>>1],w>>>0<x>>>0))))){if(a[o+12>>2]=0,g=v[i+10>>1],P=v[i+8>>1],K=v[i+6>>1],a[o+28>>2]=0,u=C[A+36>>2],c=C[A+4>>2],C[o>>2]=_(_(_(I>>>0)/u)+c)-C[t>>2],b=C[A+40>>2],l=C[A+8>>2],C[o+4>>2]=_(_(_(x>>>0)/b)+l)-C[t+4>>2],m=C[A+44>>2],R=C[A+12>>2],C[o+8>>2]=_(_(_(J>>>0)/m)+R)-C[t+8>>2],C[o+16>>2]=_(c+_(_(K>>>0)/u))-C[f>>2],C[o+20>>2]=_(l+_(_(P>>>0)/b))-C[f+4>>2],C[o+24>>2]=_(R+_(_(g>>>0)/m))-C[f+8>>2],l=C[r+4>>2],u=_(s*_(C[T>>2]-l)),b=C[r>>2],c=_(d*_(C[z>>2]-b)),!(u>c||(b=_(d*_(C[H>>2]-b)),l=_(s*_(C[O>>2]-l)),b>l||(R=C[r+8>>2],m=_(k*_(C[X>>2]-R)),c=l<c?l:c,m>c||(u=u>b?u:b,b=_(k*_(C[j>>2]-R)),u>b))))){if(g=(m>u?m:u)<h&(b<c?b:c)>_(0),!g|(0|G)<0)break i;g=a[i+12>>2],Qt[a[a[e>>2]+8>>2]](e,g>>21,2097151&g);break r}g=0}if(!((0|G)>-1||g))break e}E=E+1|0,i=i+16|0;break A}g=a[i+12>>2],E=E-g|0,i=i-(g<<4)|0}if(Q=Q+1|0,!((0|E)<(0|n)))break}a[430]<(0|Q)&&(a[430]=Q),Y=o+32|0}function Te(A,e,r,i){var f;f=Y-16|0,Y=f,a[f+8>>2]=e,a[f>>2]=9988,a[f+4>>2]=a[A+52>>2],function(A,e,r,i){var f,t=0;f=Y-32|0,Y=f,t=f+24|0,a[t>>2]=0,a[t+4>>2]=0,a[f+16>>2]=0,a[f+20>>2]=0,t=f+8|0,a[t>>2]=0,a[t+4>>2]=0,a[f>>2]=0,a[f+4>>2]=0,o[A+60|0]?Xe(A,e,r,i,f+16|0,f,a[A+56>>2]):Se(A,e,r,i,f+16|0,f),Y=f+32|0}(a[A+56>>2],f,r,i),Y=f+16|0}function je(A,e,r,i,f,t){var n;n=Y-16|0,Y=n,a[n+8>>2]=e,a[n>>2]=10156,a[n+4>>2]=a[A+52>>2],function(A,e,r,i,f,t){o[A+60|0]?Xe(A,e,r,i,f,t,a[A+56>>2]):Se(A,e,r,i,f,t)}(a[A+56>>2],n,r,i,f,t),Y=n+16|0}function Oe(A,e,r){A|=0,e|=0,r|=0;var i,f,t,n,o,c=0,b=_(0),l=_(0),u=_(0),s=0,k=0,d=_(0);i=Y-80|0,Y=i,c=a[A+4>>2],Qt[a[a[c>>2]+16>>2]](c,i+28|0,i+24|0,i+20|0,i+16|0,i+12|0,i+8|0,i+4|0,i,e),f=a[A+4>>2],s=f+12|0,t=a[i+12>>2]+B(a[i+8>>2],r)|0,n=a[i+28>>2],o=a[i+20>>2];A:{e:{r:{i:{f:{t:{n:{if(3!=a[i>>2]){if(k=a[i+16>>2],c=B(k,a[t+8>>2])+n|0,o)break n;l=_(C[c+4>>2]*C[f+8>>2]),u=_(C[c>>2]*C[f+4>>2]),b=C[f+12>>2],c=c+8|0;break t}if(k=a[i+16>>2],c=B(k,v[t+4>>1])+n|0,o?(l=_(C[f+8>>2]*_(g[c+8>>3])),u=_(C[f+4>>2]*_(g[c>>3])),b=_(g[c+16>>3]),c=s):(l=_(C[c+4>>2]*C[f+8>>2]),u=_(C[c>>2]*C[f+4>>2]),b=C[f+12>>2],c=c+8|0),d=C[c>>2],a[i+76>>2]=0,C[i+68>>2]=l,C[i+72>>2]=d*b,C[i+64>>2]=u,c=B(k,v[t+2>>1])+n|0,!o)break f;l=_(C[f+8>>2]*_(g[c+8>>3])),u=_(C[f+4>>2]*_(g[c>>3])),b=_(g[c+16>>3]),c=s;break i}l=_(C[f+8>>2]*_(g[c+8>>3])),u=_(C[f+4>>2]*_(g[c>>3])),b=_(g[c+16>>3]),c=s}if(d=C[c>>2],a[i+76>>2]=0,C[i+68>>2]=l,C[i+72>>2]=d*b,C[i+64>>2]=u,c=B(k,a[t+4>>2])+n|0,!o)break r;l=_(C[f+8>>2]*_(g[c+8>>3])),u=_(C[f+4>>2]*_(g[c>>3])),b=_(g[c+16>>3]),c=s;break e}l=_(C[c+4>>2]*C[f+8>>2]),u=_(C[c>>2]*C[f+4>>2]),b=C[f+12>>2],c=c+8|0}d=C[c>>2],a[i+60>>2]=0,C[i+52>>2]=l,C[i+56>>2]=d*b,C[i+48>>2]=u,c=B(k,v[t>>1])+n|0,o?(l=_(C[f+8>>2]*_(g[c+8>>3])),u=_(C[f+4>>2]*_(g[c>>3])),b=_(g[c+16>>3])):(s=c+8|0,l=_(C[c+4>>2]*C[f+8>>2]),u=_(C[c>>2]*C[f+4>>2]),b=C[f+12>>2]),b=_(C[s>>2]*b);break A}l=_(C[c+4>>2]*C[f+8>>2]),u=_(C[c>>2]*C[f+4>>2]),b=C[f+12>>2],c=c+8|0}d=C[c>>2],a[i+60>>2]=0,C[i+52>>2]=l,C[i+56>>2]=d*b,C[i+48>>2]=u,c=B(k,a[t>>2])+n|0,o?(l=_(C[f+8>>2]*_(g[c+8>>3])),u=_(C[f+4>>2]*_(g[c>>3])),b=_(g[c+16>>3])):(s=c+8|0,l=_(C[c+4>>2]*C[f+8>>2]),u=_(C[c>>2]*C[f+4>>2]),b=C[f+12>>2]),b=_(C[s>>2]*b)}a[i+44>>2]=0,C[i+40>>2]=b,C[i+36>>2]=l,C[i+32>>2]=u,c=a[A+8>>2],Qt[a[a[c>>2]+8>>2]](c,i+32|0,e,r),A=a[A+4>>2],Qt[a[a[A>>2]+24>>2]](A,e),Y=i+80|0}function He(A){a[A+4>>2]=35,a[A+8>>2]=0,a[A+12>>2]=-1,a[A+16>>2]=0,a[A>>2]=10304}function ze(A){return A|=0,A+72|0}function Pe(A,e,r){var i=0;He(A),a[A+88>>2]=0,f[A+92|0]=1,i=A+80|0,a[i>>2]=0,a[i+4>>2]=0,a[A+72>>2]=0,i=A- -64|0,a[i>>2]=1065353216,a[i+4>>2]=0,a[A+56>>2]=1065353216,a[A+60>>2]=1065353216,f[A+52|0]=1,a[A+44>>2]=-8388609,i=A+36|0,a[i>>2]=-8388609,a[i+4>>2]=-8388609,a[A+28>>2]=2139095039,a[A+20>>2]=2139095039,a[A+24>>2]=2139095039,a[A+4>>2]=25,a[A+188>>2]=0,i=A+180|0,a[i>>2]=0,a[i+4>>2]=0,i=A+168|0,a[i>>2]=1065353216,a[i+4>>2]=0,i=A+160|0,a[i>>2]=1065353216,a[i+4>>2]=1065353216,a[A+152>>2]=1008981770,a[A+148>>2]=11168,a[A>>2]=10560,i=A+204|0,a[i>>2]=0,a[i+4>>2]=0,i=A+196|0,a[i>>2]=0,a[i+4>>2]=0,a[A+156>>2]=e,a[A+176>>2]=r,a[A+144>>2]=A+148}function Ke(A){var e;return A|=0,a[A>>2]=11012,e=a[A+88>>2],e&&(o[A+92|0]&&CA(e),a[A+88>>2]=0),a[A+88>>2]=0,a[A+80>>2]=0,a[A+84>>2]=0,f[A+92|0]=1,0|A}function Le(A){return A|=0,A+56|0}function qe(A){}function $e(A){A|=0;var e=0,r=0,i=0,t=0;if(a[A>>2]=10820,e=a[A+164>>2],r=a[A+156>>2],r)for(i=(r<<2)-4|0;r=r+-1|0,t=a[e+i>>2],t&&(Qt[a[a[t>>2]+4>>2]](t),e=a[A+164>>2]),i=i+-4|0,r;);return e&&(o[A+168|0]&&CA(e),a[A+164>>2]=0),a[A+164>>2]=0,a[A+156>>2]=0,a[A+160>>2]=0,a[A>>2]=11012,f[A+168|0]=1,e=a[A+88>>2],e&&(o[A+92|0]&&CA(e),a[A+88>>2]=0),a[A+88>>2]=0,a[A+80>>2]=0,a[A+84>>2]=0,f[A+92|0]=1,0|A}function Ar(A,e,r,i,f){}function er(A){a[A+16>>2]=0,a[A+8>>2]=-1,a[A+12>>2]=0,a[A>>2]=0,a[A+4>>2]=0,a[A+32>>2]=0,f[A+36|0]=1,A=A+24|0,a[A>>2]=0,a[A+4>>2]=0}function rr(A){var e=0;e=a[A>>2],e&&ir(A,e),CA(a[A+4>>2]),a[A+4>>2]=0,a[A+8>>2]=-1,e=a[A+32>>2],e&&(o[A+36|0]&&CA(e),a[A+32>>2]=0),a[A+16>>2]=0,a[A+32>>2]=0,a[A+24>>2]=0,a[A+28>>2]=0,f[A+36|0]=1}function ir(A,e){a[e+40>>2]&&(ir(A,a[e+36>>2]),ir(A,a[e+40>>2])),(0|e)==a[A>>2]&&(a[A>>2]=0),CA(a[A+4>>2]),a[A+4>>2]=e}function fr(A){var e=0;e=a[A>>2],e&&ir(A,e),CA(a[A+4>>2]),a[A+4>>2]=0,a[A+8>>2]=-1,e=a[A+32>>2],e&&(o[A+36|0]&&CA(e),a[A+32>>2]=0),a[A+32>>2]=0,a[A+24>>2]=0,a[A+28>>2]=0,a[A+16>>2]=0,f[A+36|0]=1}function tr(A,e){var r,i=0,f=0,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,B=0,_=0;r=Y-32|0,Y=r;A:if(e=(0|e)<=-1?a[A+12>>2]:e,!((0|e)<1)&&(i=a[A>>2],i))for(;;){if(c=i+40|0,a[c>>2])for(v=0;t=a[i+32>>2],t>>>0<=i>>>0?t=i:(n=a[t+40>>2],o=(0|n)==(0|i),l=((0|i)!=(0|n))<<2,u=a[36+(l+t|0)>>2],f=a[t+32>>2],b=A,f&&(b=36+(f+((a[f+40>>2]==(0|t))<<2)|0)|0),a[b>>2]=i,a[u+32>>2]=i,a[t+32>>2]=i,a[i+32>>2]=f,a[t+36>>2]=a[i+36>>2],a[t+40>>2]=a[c>>2],a[a[i+36>>2]+32>>2]=t,a[a[c>>2]+32>>2]=t,n=i+36|0,a[n+(o<<2)>>2]=t,a[n+l>>2]=u,n=t+24|0,c=a[n+4>>2],f=r+24|0,C=a[n>>2],a[f>>2]=C,a[f+4>>2]=c,f=t+16|0,u=a[f+4>>2],o=r+16|0,g=a[f>>2],a[o>>2]=g,a[o+4>>2]=u,o=t+8|0,l=a[o+4>>2],s=r+8|0,B=a[o>>2],a[s>>2]=B,a[s+4>>2]=l,s=a[t+4>>2],_=a[t>>2],a[r>>2]=_,a[r+4>>2]=s,d=i+24|0,b=d,k=a[b+4>>2],a[n>>2]=a[b>>2],a[n+4>>2]=k,n=i+16|0,k=a[n+4>>2],a[f>>2]=a[n>>2],a[f+4>>2]=k,f=i+8|0,k=a[f+4>>2],a[o>>2]=a[f>>2],a[o+4>>2]=k,o=a[i+4>>2],a[t>>2]=a[i>>2],a[t+4>>2]=o,a[d>>2]=C,a[d+4>>2]=c,a[n>>2]=g,a[n+4>>2]=u,a[f>>2]=B,a[f+4>>2]=l,a[i>>2]=_,a[i+4>>2]=s),i=a[A+16>>2]>>>v,v=v+1&31,i=a[36+(((1&i)<<2)+t|0)>>2],c=i+40|0,a[c>>2];);if(b=A,f=0,nr(A,i)&&(f=a[A>>2]),ar(b,f,i),a[A+16>>2]=a[A+16>>2]+1,e=e+-1|0,!e)break A;i=a[A>>2]}Y=r+32|0}function nr(A,e){var r=0,i=0,f=_(0),t=_(0),n=_(0),o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0);if((0|e)==a[A>>2])return a[A>>2]=0,0;r=a[e+32>>2],i=a[36+(((a[r+40>>2]!=(0|e))<<2)+r|0)>>2],e=a[r+32>>2];A:{if(e)for(a[36+((((0|r)==a[e+40>>2])<<2)+e|0)>>2]=i,a[i+32>>2]=e,CA(a[A+4>>2]),a[A+4>>2]=r;;){if(B=C[e>>2],r=a[e+36>>2],f=C[r>>2],i=a[e+40>>2],u=C[i>>2],f=f<u?f:u,C[e>>2]=f,u=C[e+16>>2],t=C[r+16>>2],s=C[i+16>>2],t=t>s?t:s,C[e+16>>2]=t,s=C[e+4>>2],n=C[r+4>>2],k=C[i+4>>2],n=n<k?n:k,C[e+4>>2]=n,o=e+20|0,k=C[o>>2],c=C[r+20>>2],v=C[i+20>>2],c=c>v?c:v,C[o>>2]=c,v=C[e+8>>2],b=C[r+8>>2],d=C[i+8>>2],b=b<d?b:d,C[e+8>>2]=b,o=e+24|0,d=C[o>>2],l=C[r+24>>2],g=C[i+24>>2],l=l>g?l:g,C[o>>2]=l,!(k!=c|u!=t|B!=f|s!=n)&&v==b&&d==l)break A;if(e=a[e+32>>2],!e)break}else a[i+32>>2]=0,a[A>>2]=i,CA(a[A+4>>2]),a[A+4>>2]=r;e=a[A>>2]}return e}function ar(A,e,r){var i=0,f=_(0),t=_(0),n=_(0),o=0,c=0;if(!a[A>>2])return a[r+32>>2]=0,void(a[A>>2]=r);if(i=a[e+40>>2],i)for(t=_(C[r>>2]+C[r+16>>2]),f=_(C[r+8>>2]+C[r+24>>2]),n=_(C[r+4>>2]+C[r+20>>2]);c=e+36|0,e=a[e+36>>2],e=a[c+((_(_(_(m(_(t-_(C[e>>2]+C[e+16>>2]))))+_(m(_(n-_(C[e+4>>2]+C[e+20>>2])))))+_(m(_(f-_(C[e+8>>2]+C[e+24>>2])))))<_(_(_(m(_(t-_(C[i>>2]+C[i+16>>2]))))+_(m(_(n-_(C[i+4>>2]+C[i+20>>2])))))+_(m(_(f-_(C[i+8>>2]+C[i+24>>2])))))^1)<<2)>>2],i=a[e+40>>2],i;);c=a[e+32>>2],i=a[A+4>>2],i?a[A+4>>2]=0:(i=dA(44),a[i>>2]=0,a[i+4>>2]=0,a[i+40>>2]=0,o=i+32|0,a[o>>2]=0,a[o+4>>2]=0,o=i+24|0,a[o>>2]=0,a[o+4>>2]=0,o=i+16|0,a[o>>2]=0,a[o+4>>2]=0,o=i+8|0,a[o>>2]=0,a[o+4>>2]=0),a[i+36>>2]=0,a[i+40>>2]=0,t=C[r>>2],f=C[e>>2],C[i>>2]=t<f?t:f,t=C[r+16>>2],f=C[e+16>>2],C[i+16>>2]=t>f?t:f,t=C[r+4>>2],f=C[e+4>>2],C[i+4>>2]=t<f?t:f,t=C[r+20>>2],f=C[e+20>>2],C[i+20>>2]=t>f?t:f,t=C[r+8>>2],f=C[e+8>>2],C[i+8>>2]=t<f?t:f,a[i+32>>2]=c,t=C[r+24>>2],f=C[e+24>>2],C[i+24>>2]=t>f?t:f;A:if(c)for(a[36+(((a[a[e+32>>2]+40>>2]==(0|e))<<2)+c|0)>>2]=i,a[i+36>>2]=e,a[e+32>>2]=i,a[i+40>>2]=r,a[r+32>>2]=i,t=C[i>>2];;){if(A=i,i=c,!(C[i>>2]<=t^1|C[i+4>>2]<=C[A+4>>2]^1|C[i+8>>2]<=C[A+8>>2]^1|C[i+16>>2]>=C[A+16>>2]^1)&&C[i+20>>2]>=C[A+20>>2]&&C[i+24>>2]>=C[A+24>>2])break A;if(A=a[i+36>>2],t=C[A>>2],e=a[i+40>>2],f=C[e>>2],t=t<f?t:f,C[i>>2]=t,f=C[A+16>>2],n=C[e+16>>2],C[i+16>>2]=f>n?f:n,f=C[A+4>>2],n=C[e+4>>2],C[i+4>>2]=f<n?f:n,f=C[A+20>>2],n=C[e+20>>2],C[i+20>>2]=f>n?f:n,f=C[A+8>>2],n=C[e+8>>2],C[i+8>>2]=f<n?f:n,f=C[A+24>>2],n=C[e+24>>2],C[i+24>>2]=f>n?f:n,c=a[i+32>>2],!c)break}else a[i+36>>2]=e,a[e+32>>2]=i,a[i+40>>2]=r,a[A>>2]=i,a[r+32>>2]=i}function or(A,e,r){var i=0,f=0,t=0;return f=a[A+4>>2],f?a[A+4>>2]=0:(f=dA(44),i=f,a[i>>2]=0,a[i+4>>2]=0,a[i+40>>2]=0,i=i+32|0,a[i>>2]=0,a[i+4>>2]=0,i=f+24|0,a[i>>2]=0,a[i+4>>2]=0,i=f+16|0,a[i>>2]=0,a[i+4>>2]=0,i=f+8|0,a[i>>2]=0,a[i+4>>2]=0),a[f+36>>2]=r,a[f+32>>2]=0,a[f+40>>2]=0,r=a[e+4>>2],a[f>>2]=a[e>>2],a[f+4>>2]=r,i=e+8|0,t=a[i+4>>2],r=f+8|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=e+16|0,t=a[i+4>>2],r=f+16|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,e=e+24|0,i=a[e+4>>2],r=f+24|0,a[r>>2]=a[e>>2],a[r+4>>2]=i,ar(A,a[A>>2],f),a[A+12>>2]=a[A+12>>2]+1,f}function cr(A,e,r){var i=0,f=0,t=0,n=0;t=nr(A,e);A:if(t)if(i=a[A+8>>2],(0|i)>=0){if(!i)break A;for(;;){if(f=a[t+32>>2],!f)break A;if(t=f,i=i+-1|0,!i)break}}else t=a[A>>2];else t=0;f=a[r+4>>2],a[e>>2]=a[r>>2],a[e+4>>2]=f,i=r+24|0,f=a[i+4>>2],n=e+24|0,a[n>>2]=a[i>>2],a[n+4>>2]=f,i=r+16|0,f=a[i+4>>2],n=e+16|0,a[n>>2]=a[i>>2],a[n+4>>2]=f,f=r+8|0,r=a[f+4>>2],i=e+8|0,a[i>>2]=a[f>>2],a[i+4>>2]=r,ar(A,t,e)}function br(A,e){nr(A,e),CA(a[A+4>>2]),a[A+4>>2]=e,a[A+12>>2]=a[A+12>>2]+-1}function lr(A,e){return 1}function ur(A){var e,r;return e=A*A,r=e*A,_(r*(e*e)*(2718311493989822e-21*e-.00019839334836096632)+(r*(.008333329385889463*e-.16666666641626524)+A))}function sr(A){var e;return A*=A,e=A*A,_(-.499999997251031*A+1+.04166662332373906*e+A*e*(2439044879627741e-20*A-.001388676377460993))}function kr(A,e){var r=0;A:if((0|e)>=1024){if(A*=8.98846567431158e307,r=e+-1023|0,(0|r)<1024){e=r;break A}A*=8.98846567431158e307,e=((0|e)<3069?e:3069)+-2046|0}else(0|e)>-1023||(A*=2.004168360008973e-292,r=e+969|0,(0|r)>-1023?e=r:(A*=2.004168360008973e-292,e=((0|e)>-2960?e:-2960)+1938|0));return b(0,0),b(1,e+1023<<20),A*+l()}function vr(A,e){var r,i=0,f=0,t=0,n=0,o=0;r=Y-16|0,Y=r,s(A),t=c(0),i=2147483647&t;A:if(i>>>0<=1305022426){if(n=+A,f=.6366197723675814*n+6755399441055744-6755399441055744,g[e>>3]=n+-1.5707963109016418*f+-1.5893254773528196e-8*f,m(f)<2147483648){i=~~f;break A}i=-2147483648}else i>>>0>=2139095040?(g[e>>3]=_(A-A),i=0):(o=i,i=(i>>>23)-150|0,g[r+8>>3]=(b(0,o-(i<<23)|0),k()),i=function(A,e,r){var i,f,t,n,o,c,b,l,u=0,s=0,k=0,v=0,d=0,C=0,_=0,R=0,Q=0,h=0,y=0,p=0,F=0;if(i=Y-560|0,Y=i,v=(r+-3|0)/24|0,t=(0|v)>0?v:0,h=r+B(t,-24)|0,f=a[2840],(0|f)>=0)for(v=f+1|0,r=t,d=11376+(r<<2)|0,s=i+320|0;g[s>>3]=(0|r)<0?0:+a[d>>2],s=s+8|0,d=d+4|0,r=r+1|0,v=v+-1|0,v;);for(R=h+-24|0,v=i+320|0;;){for(u=0,r=A,d=1,s=v;u+=g[r>>3]*g[s>>3],r=r+8|0,s=s+-8|0,d=d+-1|0,d;);if(g[(k<<3)+i>>3]=u,v=v+8|0,r=(0|k)<(0|f),k=k+1|0,!r)break}o=23-R|0,n=24-R|0,c=476+(i+(f<<2)|0)|0,b=i+476|0,l=i+-8|0,k=f;e:{for(;;){if(r=k<<3,u=g[r+i>>3],v=(0|k)<1,!v)for(r=r+l|0,s=i+480|0,d=k;C=s,y=u,u*=5.960464477539063e-8,_=m(u)<2147483648?~~u:-2147483648,u=+(0|_),y+=-16777216*u,_=m(y)<2147483648?~~y:-2147483648,a[C>>2]=_,s=s+4|0,u=g[r>>3]+u,r=r+-8|0,d=d+-1|0,d;);u=kr(u,R),u+=-8*G(.125*u),_=m(u)<2147483648?~~u:-2147483648,u-=+(0|_);r:{i:{f:{if(d=(0|R)<1,d){if(R)break f;Q=a[476+(i+(k<<2)|0)>>2]>>23}else s=476+(i+(k<<2)|0)|0,C=a[s>>2],r=C>>n,Q=s,s=C-(r<<n)|0,a[Q>>2]=s,_=r+_|0,Q=s>>o;if((0|Q)<1)break r;break i}if(Q=2,!(u>=.5)){Q=0;break r}}if(v)C=0;else for(C=0,r=i+480|0,v=k;;){s=a[r>>2];i:{f:{if(F=r,C)p=16777215;else{if(!s)break f;C=1,p=16777216}a[F>>2]=p-s;break i}C=0}if(r=r+4|0,v=v+-1|0,!v)break}d||(r=R+-1|0,r>>>0>1||(r-1?(r=476+(i+(k<<2)|0)|0,a[r>>2]=8388607&a[r>>2]):(r=476+(i+(k<<2)|0)|0,a[r>>2]=4194303&a[r>>2]))),_=_+1|0,2==(0|Q)&&(u=1-u,Q=2,C&&(u-=kr(1,R)))}if(0!=u)break;if(!((0|k)<=(0|f))){for(r=(k<<2)+b|0,s=0,d=k;s=a[r>>2]|s,r=r+-4|0,d=d+-1|0,(0|d)>(0|f););if(s){for(r=476+(i+(k<<2)|0)|0,h=R;k=k+-1|0,h=h+-24|0,A=a[r>>2],r=r+-4|0,!A;);break e}}for(r=c,v=k;v=v+1|0,s=a[r>>2],r=r+-4|0,!s;);for(C=328+((k<<3)+i|0)|0;;){for(r=328+((k<<3)+i|0)|0,k=k+1|0,g[r>>3]=a[11376+(t+k<<2)>>2],u=0,r=A,s=C,d=1;u+=g[r>>3]*g[s>>3],r=r+8|0,s=s+-8|0,d=d+-1|0,d;);if(g[(k<<3)+i>>3]=u,C=C+8|0,!((0|k)<(0|v)))break}k=v}u=kr(u,0-R|0),u>=16777216?(A=(i+480|0)+(k<<2)|0,y=u,u*=5.960464477539063e-8,r=m(u)<2147483648?~~u:-2147483648,u=y+-16777216*+(0|r),v=m(u)<2147483648?~~u:-2147483648,a[A>>2]=v,k=k+1|0):(r=m(u)<2147483648?~~u:-2147483648,h=R),a[(i+480|0)+(k<<2)>>2]=r}if(!((0|k)<0)){for(d=k+1|0,u=kr(1,h),r=(i+480|0)+(k<<2)|0,s=(k<<3)+i|0;g[s>>3]=u*+a[r>>2],r=r+-4|0,s=s+-8|0,u*=5.960464477539063e-8,d=d+-1|0,(0|d)>0;);if(!((0|k)<0))for(v=(k<<3)+i|0,r=k;;){for(A=r,d=k-r|0,u=0,r=0,s=0;u+=g[r+14144>>3]*g[r+v>>3],!((0|s)>=(0|f))&&(r=r+8|0,R=s>>>0<d>>>0,s=s+1|0,R););if(g[(i+160|0)+(d<<3)>>3]=u,v=v+-8|0,r=A+-1|0,!((0|A)>0))break}}if((0|k)<0)u=0;else for(s=k+1|0,r=(i+160|0)+(k<<3)|0,u=0;u+=g[r>>3],r=r+-8|0,s=s+-1|0,(0|s)>0;);return g[e>>3]=Q?-u:u,Y=i+560|0,7&_}(r+8|0,r,i),f=g[r>>3],(0|t)<=-1?(g[e>>3]=-f,i=0-i|0):g[e>>3]=f);return Y=r+16|0,i}function dr(A){var e,r=0,i=0,f=0;e=Y-16|0,Y=e,s(A),i=c(0),r=2147483647&i;A:if(r>>>0<=1061752794){if(r>>>0<964689920)break A;A=ur(+A)}else if(i>>>=31,r>>>0<=1081824209){if(f=+A,r>>>0<=1075235811){if(i){A=_(-sr(f+1.5707963267948966));break A}A=sr(f+-1.5707963267948966);break A}A=ur(-((i?3.141592653589793:-3.141592653589793)+f))}else if(r>>>0<=1088565717){if(f=+A,r>>>0<=1085271519){if(i){A=sr(f+4.71238898038469);break A}A=_(-sr(f+-4.71238898038469));break A}A=ur((i?6.283185307179586:-6.283185307179586)+f)}else if(r>>>0>=2139095040)A=_(A-A);else if(r=3&vr(A,e+8|0),r>>>0<=2){switch(r-1|0){default:A=ur(g[e+8>>3]);break A;case 0:A=sr(g[e+8>>3]);break A;case 1:}A=ur(-g[e+8>>3])}else A=_(-sr(g[e+8>>3]));return Y=e+16|0,A}function Cr(A){var e,r=_(0),i=0,f=0,t=0;e=Y-16|0,Y=e,s(A),f=c(0),i=2147483647&f;A:if(i>>>0<=1061752794){if(r=_(1),i>>>0<964689920)break A;r=sr(+A)}else if(f>>>=31,i>>>0<=1081824209){if(t=+A,i>>>0>=1075235812){r=_(-sr((f?3.141592653589793:-3.141592653589793)+t));break A}if(f){r=ur(t+1.5707963267948966);break A}r=ur(1.5707963267948966-t)}else if(i>>>0<=1088565717){if(i>>>0>=1085271520){r=sr(+A+(f?6.283185307179586:-6.283185307179586));break A}if(f){r=ur(-4.71238898038469-+A);break A}r=ur(+A-4.71238898038469)}else if(r=_(A-A),!(i>>>0>=2139095040))if(i=3&vr(A,e+8|0),i>>>0<=2){switch(i-1|0){default:r=sr(g[e+8>>3]);break A;case 0:r=ur(-g[e+8>>3]);break A;case 1:}r=_(-sr(g[e+8>>3]))}else r=ur(g[e+8>>3]);return A=r,Y=e+16|0,A}function gr(A,e,r){var i,t=0,n=_(0),c=0,b=0,l=0,u=_(0),s=0;i=Y-144|0,Y=i,a[A+72>>2]=a[A+72>>2]+1,c=e+8|0,b=a[c+4>>2],t=i+72|0,a[t>>2]=a[c>>2],a[t+4>>2]=b,c=e+24|0,b=a[c+4>>2],t=i+88|0,a[t>>2]=a[c>>2],a[t+4>>2]=b,c=e+40|0,b=a[c+4>>2],t=i+104|0,a[t>>2]=a[c>>2],a[t+4>>2]=b,c=e+56|0,b=a[c+4>>2],t=i+120|0,a[t>>2]=a[c>>2],a[t+4>>2]=b,a[i+140>>2]=0,a[i+128>>2]=r,t=a[e+4>>2],a[i+64>>2]=a[e>>2],a[i+68>>2]=t,t=a[e+20>>2],a[i+80>>2]=a[e+16>>2],a[i+84>>2]=t,t=a[e+36>>2],a[i+96>>2]=a[e+32>>2],a[i+100>>2]=t,t=a[e+52>>2],a[i+112>>2]=a[e+48>>2],a[i+116>>2]=t,a[i+132>>2]=a[r+4>>2],l=i,u=_(Qt[a[a[r>>2]+48>>2]](r)),C[l+136>>2]=u,Qt[a[a[r>>2]+8>>2]](r,e,i+48|0,i+32|0),n=C[i+48>>2],C[A+36>>2]>n&&(C[A+36>>2]=n),n=C[i+32>>2],C[A+52>>2]<n&&(C[A+52>>2]=n),n=C[i+52>>2],C[A+40>>2]>n&&(C[A+40>>2]=n),n=C[i+36>>2],C[A+56>>2]<n&&(C[A+56>>2]=n),n=C[i+56>>2],C[A+44>>2]>n&&(C[A+44>>2]=n),n=C[i+40>>2],C[A+60>>2]<n&&(C[A+60>>2]=n),e=a[A+68>>2],e&&(t=i+56|0,c=a[t+4>>2],r=i+8|0,a[r>>2]=a[t>>2],a[r+4>>2]=c,t=i+40|0,c=a[t+4>>2],r=i+24|0,a[r>>2]=a[t>>2],a[r+4>>2]=c,r=a[i+52>>2],a[i>>2]=a[i+48>>2],a[i+4>>2]=r,r=a[i+36>>2],a[i+16>>2]=a[i+32>>2],a[i+20>>2]=r,l=i,s=or(e,i,a[A+20>>2]),a[l+140>>2]=s),function(A,e){var r=0,i=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0;if(i=a[A+4>>2],(0|i)==a[A+8>>2]&&(k=i?i<<1:1,!((0|i)>=(0|k)))){if(k&&(v=dA(B(k,80)),i=a[A+4>>2]),(0|i)>=1)for(l=64;t=a[A+12>>2]+l|0,n=t+-64|0,u=a[n+4>>2],r=l+v|0,c=r+-64|0,a[c>>2]=a[n>>2],a[c+4>>2]=u,n=n+8|0,b=a[n+4>>2],c=c+8|0,a[c>>2]=a[n>>2],a[c+4>>2]=b,c=t+-48|0,u=c+8|0,s=a[u+4>>2],n=r+-48|0,b=n+8|0,a[b>>2]=a[u>>2],a[b+4>>2]=s,b=a[c+4>>2],a[n>>2]=a[c>>2],a[n+4>>2]=b,c=t+-32|0,u=c+8|0,s=a[u+4>>2],n=r+-32|0,b=n+8|0,a[b>>2]=a[u>>2],a[b+4>>2]=s,b=a[c+4>>2],a[n>>2]=a[c>>2],a[n+4>>2]=b,c=t+-16|0,u=c+8|0,s=a[u+4>>2],n=r+-16|0,b=n+8|0,a[b>>2]=a[u>>2],a[b+4>>2]=s,b=a[c+4>>2],a[n>>2]=a[c>>2],a[n+4>>2]=b,n=a[t+4>>2],a[r>>2]=a[t>>2],a[r+4>>2]=n,t=t+8|0,n=a[t+4>>2],r=r+8|0,a[r>>2]=a[t>>2],a[r+4>>2]=n,l=l+80|0,i=i+-1|0,i;);i=a[A+12>>2],i&&(o[A+16|0]&&CA(i),a[A+12>>2]=0),a[A+12>>2]=v,f[A+16|0]=1,a[A+8>>2]=k,i=a[A+4>>2]}t=a[e+4>>2],i=a[A+12>>2]+B(i,80)|0,r=i,a[r>>2]=a[e>>2],a[r+4>>2]=t,t=e+8|0,l=a[t+4>>2],r=r+8|0,a[r>>2]=a[t>>2],a[r+4>>2]=l,t=e+24|0,l=a[t+4>>2],r=i+24|0,a[r>>2]=a[t>>2],a[r+4>>2]=l,r=a[e+20>>2],a[i+16>>2]=a[e+16>>2],a[i+20>>2]=r,t=e+40|0,l=a[t+4>>2],r=i+40|0,a[r>>2]=a[t>>2],a[r+4>>2]=l,r=a[e+36>>2],a[i+32>>2]=a[e+32>>2],a[i+36>>2]=r,t=e+56|0,l=a[t+4>>2],r=i+56|0,a[r>>2]=a[t>>2],a[r+4>>2]=l,r=a[e+52>>2],a[i+48>>2]=a[e+48>>2],a[i+52>>2]=r,t=e+72|0,l=a[t+4>>2],r=i+72|0,a[r>>2]=a[t>>2],a[r+4>>2]=l,r=a[e+68>>2],a[i+64>>2]=a[e+64>>2],a[i+68>>2]=r,a[A+4>>2]=a[A+4>>2]+1}(A+16|0,i- -64|0),Y=i+144|0}function Br(A,e){var r,i,f,t,n,o,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,_=0,m=0;r=Y-80|0,Y=r,a[A+72>>2]=a[A+72>>2]+1,c=a[A+68>>2],c&&br(c,a[76+(a[A+28>>2]+B(e,80)|0)>>2]),b=a[A+20>>2],n=A+28|0,g=a[n>>2],o=B(e,80),c=g+o|0,l=c+8|0,k=a[l+4>>2],s=r+8|0,a[s>>2]=a[l>>2],a[s+4>>2]=k,v=c+24|0,_=a[v+4>>2],f=r+24|0,k=f,a[k>>2]=a[v>>2],a[k+4>>2]=_,t=c+40|0,d=t,C=a[d+4>>2],k=r+40|0,a[k>>2]=a[d>>2],a[k+4>>2]=C,d=c+56|0,u=a[d+4>>2],_=r+56|0,C=_,a[C>>2]=a[d>>2],a[C+4>>2]=u,i=c+72|0,m=a[i+4>>2],C=r+72|0,u=C,a[u>>2]=a[i>>2],a[u+4>>2]=m,u=a[c+4>>2],a[r>>2]=a[c>>2],a[r+4>>2]=u,u=a[c+20>>2],a[r+16>>2]=a[c+16>>2],a[r+20>>2]=u,u=a[c+36>>2],a[r+32>>2]=a[c+32>>2],a[r+36>>2]=u,u=a[c+52>>2],a[r+48>>2]=a[c+48>>2],a[r+52>>2]=u,u=a[c+68>>2],a[r+64>>2]=a[c+64>>2],a[r+68>>2]=u,u=g,g=B(b,80)+-80|0,b=u+g|0,u=b+8|0,m=a[u+4>>2],a[l>>2]=a[u>>2],a[l+4>>2]=m,l=a[b+4>>2],a[c>>2]=a[b>>2],a[c+4>>2]=l,l=b+24|0,u=a[l+4>>2],a[v>>2]=a[l>>2],a[v+4>>2]=u,l=a[b+20>>2],a[c+16>>2]=a[b+16>>2],a[c+20>>2]=l,l=b+40|0,v=a[l+4>>2],a[t>>2]=a[l>>2],a[t+4>>2]=v,l=a[b+36>>2],a[c+32>>2]=a[b+32>>2],a[c+36>>2]=l,l=b+56|0,v=a[l+4>>2],a[d>>2]=a[l>>2],a[d+4>>2]=v,l=a[b+52>>2],a[c+48>>2]=a[b+48>>2],a[c+52>>2]=l,l=a[b+68>>2],a[c+64>>2]=a[b+64>>2],a[c+68>>2]=l,c=b+72|0,b=a[c+4>>2],a[i>>2]=a[c>>2],a[i+4>>2]=b,l=a[r+4>>2],c=a[n>>2]+g|0,a[c>>2]=a[r>>2],a[c+4>>2]=l,l=a[s+4>>2],b=c+8|0,a[b>>2]=a[s>>2],a[b+4>>2]=l,b=a[r+20>>2],a[c+16>>2]=a[r+16>>2],a[c+20>>2]=b,s=a[f+4>>2],b=c+24|0,a[b>>2]=a[f>>2],a[b+4>>2]=s,b=a[r+36>>2],a[c+32>>2]=a[r+32>>2],a[c+36>>2]=b,s=a[k+4>>2],b=c+40|0,a[b>>2]=a[k>>2],a[b+4>>2]=s,b=a[r+52>>2],a[c+48>>2]=a[r+48>>2],a[c+52>>2]=b,s=a[_+4>>2],b=c+56|0,a[b>>2]=a[_>>2],a[b+4>>2]=s,s=a[C+4>>2],b=c+72|0,a[b>>2]=a[C>>2],a[b+4>>2]=s,b=a[r+68>>2],a[c+64>>2]=a[r+64>>2],a[c+68>>2]=b,a[A+68>>2]&&(a[a[76+(a[A+28>>2]+o|0)>>2]+36>>2]=e),a[A+20>>2]=a[A+20>>2]+-1,Y=r+80|0}function _r(A){var e;return A|=0,a[A>>2]=14564,e=a[A+32>>2],e&&(o[A+36|0]&&CA(e),a[A+32>>2]=0),a[A+32>>2]=0,a[A+24>>2]=0,a[A+28>>2]=0,f[A+36|0]=1,0|A}function mr(A,e,r,i,f,t,n,o,c,b){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0,n|=0,o|=0,c|=0,b|=0,A=a[A+32>>2]+(b<<5)|0,a[r>>2]=a[A+12>>2],a[f>>2]=a[A+20>>2],a[e>>2]=a[A+16>>2],a[i>>2]=a[A+28>>2],a[o>>2]=a[A>>2],a[t>>2]=a[A+4>>2],a[c>>2]=a[A+24>>2],a[n>>2]=a[A+8>>2]}function Rr(A,e){}function Qr(A,e){var r=0,i=0,n=0,c=0,b=0,l=0,u=0;if(o[A+164|0]){if(r=a[A+128>>2],(0|r)==a[A+132>>2]&&(c=r?r<<1:1,!((0|r)>=(0|c)))){c&&(i=dA(c<<2),r=a[A+128>>2]),l=a[A+136>>2];A:{if((0|r)>=1)for(n=i,b=l;a[n>>2]=a[b>>2],n=n+4|0,b=b+4|0,r=r+-1|0,r;);else if(!l)break A;o[A+140|0]&&CA(l),a[A+136>>2]=0,r=a[A+128>>2]}a[A+136>>2]=i,a[A+132>>2]=c,f[A+140|0]=1}return n=a[A+136>>2],a[n+(r<<2)>>2]=e,a[a[A+32>>2]+4>>2]=n,void(a[A+128>>2]=a[A+128>>2]+1)}if(i=a[A+148>>2],(0|i)==a[A+152>>2]&&(u=i?i<<1:1,!((0|i)>=(0|u)))){u&&(l=dA(u<<1),i=a[A+148>>2]),c=a[A+156>>2];A:{if((0|i)>=1)for(n=l,b=c,r=i;t[n>>1]=v[b>>1],n=n+2|0,b=b+2|0,r=r+-1|0,r;);else if(!c)break A;o[A+160|0]&&(CA(c),i=a[A+148>>2]),a[A+156>>2]=0}a[A+156>>2]=l,a[A+152>>2]=u,f[A+160|0]=1}a[A+148>>2]=i+1,n=a[A+32>>2],A=a[A+156>>2],a[n+4>>2]=A,t[A+(i<<1)>>1]=e}function hr(A,e,r){var i=0,t=0,n=0,c=0,b=0,l=0,u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0);A:{if(o[A+165|0]){if(n=a[A+88>>2],!(!r|(0|n)<1))for(r=a[A+96>>2],k=C[A+168>>2],v=C[e+8>>2],d=C[e+4>>2],g=C[e>>2];;){if(u=_(C[r>>2]-g),s=_(u*u),u=_(C[r+4>>2]-d),s=_(s+_(u*u)),u=_(C[r+8>>2]-v),_(s+_(u*u))<=k)break A;if(r=r+16|0,c=c+1|0,!((0|c)<(0|n)))break}if(r=a[A+32>>2],a[r+12>>2]=a[r+12>>2]+1,a[A+92>>2]==(0|n)&&(c=n?n<<1:1,!((0|n)>=(0|c)))){if(c&&(i=dA(c<<4),n=a[A+88>>2]),(0|n)>=1)for(r=0;t=a[A+96>>2]+r|0,l=a[t+4>>2],b=r+i|0,a[b>>2]=a[t>>2],a[b+4>>2]=l,t=t+8|0,l=a[t+4>>2],b=b+8|0,a[b>>2]=a[t>>2],a[b+4>>2]=l,r=r+16|0,n=n+-1|0,n;);r=a[A+96>>2],r&&(o[A+100|0]&&CA(r),a[A+96>>2]=0),a[A+96>>2]=i,a[A+92>>2]=c,f[A+100|0]=1,n=a[A+88>>2]}return r=a[e+4>>2],l=A+96|0,i=a[l>>2]+(n<<4)|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,r=e+8|0,e=a[r+4>>2],i=i+8|0,a[i>>2]=a[r>>2],a[i+4>>2]=e,a[a[A+32>>2]+16>>2]=a[l>>2],e=A,A=a[A+88>>2],a[e+88>>2]=A+1,A}if(t=a[A+108>>2],!(!r|(0|t)<1))for(r=a[A+116>>2],k=C[A+168>>2],v=C[e+8>>2],d=C[e+4>>2],g=C[e>>2];;){if(u=_(C[r>>2]-g),s=_(u*u),u=_(C[r+4>>2]-d),s=_(s+_(u*u)),u=_(C[r+8>>2]-v),_(s+_(u*u))<=k)break A;if(r=r+12|0,c=c+1|0,n=n+3|0,!((0|n)<(0|t)))break}if(i=a[A+112>>2],(0|t)==(0|i))if(i=t?t<<1:1,(0|t)>=(0|i))i=t;else{i&&(l=dA(i<<2),t=a[A+108>>2]),b=a[A+116>>2];e:{if((0|t)>=1)for(r=l,c=b,n=t;a[r>>2]=a[c>>2],r=r+4|0,c=c+4|0,n=n+-1|0,n;);else if(!b)break e;o[A+120|0]&&(CA(b),t=a[A+108>>2]),a[A+116>>2]=0}a[A+116>>2]=l,a[A+112>>2]=i,f[A+120|0]=1}if(r=t+1|0,a[A+108>>2]=r,b=a[A+116>>2],a[b+(t<<2)>>2]=a[e>>2],(0|r)==(0|i))if(t=i?i<<1:1,(0|i)>=(0|t))l=b,t=i;else{t?(l=dA(t<<2),b=a[A+116>>2],i=a[A+108>>2]):l=0;e:{if((0|i)>=1)for(r=l,c=b,n=i;a[r>>2]=a[c>>2],r=r+4|0,c=c+4|0,n=n+-1|0,n;);else if(!b)break e;o[A+120|0]&&(CA(b),i=a[A+108>>2]),a[A+116>>2]=0}a[A+116>>2]=l,a[A+112>>2]=t,f[A+120|0]=1}else l=b,t=i,i=r;if(r=i+1|0,a[A+108>>2]=r,a[(i<<2)+l>>2]=a[e+4>>2],(0|r)==(0|t))if(b=t?t<<1:1,(0|t)>=(0|b))i=l;else{b?(i=dA(b<<2),l=a[A+116>>2],t=a[A+108>>2]):i=0;e:{if((0|t)>=1)for(r=i,c=l,n=t;a[r>>2]=a[c>>2],r=r+4|0,c=c+4|0,n=n+-1|0,n;);else if(!l)break e;o[A+120|0]&&(CA(l),t=a[A+108>>2]),a[A+116>>2]=0}a[A+116>>2]=i,a[A+112>>2]=b,f[A+120|0]=1}else i=l,t=r;r=t+1|0,a[A+108>>2]=r,a[(t<<2)+i>>2]=a[e+8>>2],A=a[A+32>>2],a[A+16>>2]=i,a[A+12>>2]=a[A+12>>2]+1,c=((0|r)/3|0)-1|0}return c}function Gr(A){A|=0;var e=0;return a[A>>2]=14676,e=a[A+156>>2],e&&(o[A+160|0]&&CA(e),a[A+156>>2]=0),a[A+156>>2]=0,a[A+148>>2]=0,a[A+152>>2]=0,f[A+160|0]=1,e=a[A+136>>2],e&&(o[A+140|0]&&CA(e),a[A+136>>2]=0),a[A+136>>2]=0,a[A+128>>2]=0,a[A+132>>2]=0,f[A+140|0]=1,e=a[A+116>>2],e&&(o[A+120|0]&&CA(e),a[A+116>>2]=0),a[A+116>>2]=0,a[A+108>>2]=0,a[A+112>>2]=0,f[A+120|0]=1,e=a[A+96>>2],e&&(o[A+100|0]&&CA(e),a[A+96>>2]=0),a[A+96>>2]=0,a[A+88>>2]=0,a[A+92>>2]=0,f[A+100|0]=1,_r(A),0|A}function yr(A,e,r){var i,f,t,n=0,o=0,c=_(0),b=_(0),l=0,u=0,s=_(0),k=_(0),v=0,d=_(0),g=_(0),m=0,R=_(0),Q=0,h=0,G=0,p=0,F=0,W=_(0),w=_(0),D=_(0),E=_(0),Z=0;i=Y-96|0,Y=i,a[A+376>>2]=0,a[A+364>>2]=4,a[A+368>>2]=0,l=A+316|0,a[A+360>>2]=l,a[A+356>>2]=A+284,a[A+352>>2]=A+252,a[A+348>>2]=A+220,o=a[e+4>>2],a[A>>2]=a[e>>2],a[A+4>>2]=o,n=e+16|0,u=a[n+4>>2],o=A+16|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,o=a[e+12>>2],a[A+8>>2]=a[e+8>>2],a[A+12>>2]=o,n=e+32|0,u=a[n+4>>2],o=A+32|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e+24|0,u=a[n+4>>2],o=A+24|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e+48|0,u=a[n+4>>2],o=A+48|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e+40|0,u=a[n+4>>2],o=A+40|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e- -64|0,u=a[n+4>>2],o=A- -64|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,o=a[e+60>>2],a[A+56>>2]=a[e+56>>2],a[A+60>>2]=o,n=e+80|0,u=a[n+4>>2],o=A+80|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e+72|0,u=a[n+4>>2],o=A+72|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e+96|0,u=a[n+4>>2],o=A+96|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e+88|0,u=a[n+4>>2],o=A+88|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e+104|0,u=a[n+4>>2],o=A+104|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,n=e+112|0,u=a[n+4>>2],o=A+112|0,a[o>>2]=a[n>>2],a[o+4>>2]=u,o=a[e+120>>2],e=a[e+124>>2],a[A+180>>2]=0,a[A+144>>2]=0,a[A+120>>2]=o,a[A+124>>2]=e,n=r+8|0,u=a[n+4>>2],e=A+136|0,a[e>>2]=a[n>>2],a[e+4>>2]=u,o=a[r+4>>2],a[A+128>>2]=a[r>>2],a[A+132>>2]=o,o=A+128|0,c=C[A+128>>2],s=C[A+132>>2],k=C[e>>2],g=_(_(_(c*c)+_(s*s))+_(k*k)),g>_(0)?(C[i+40>>2]=-k,C[i+36>>2]=-s,C[i+32>>2]=-c):(a[i+40>>2]=0,a[i+32>>2]=1065353216,a[i+36>>2]=0),a[A+364>>2]=3,a[A+180>>2]=1,a[A+148>>2]=l,e=A+164|0,a[e>>2]=0,a[i+44>>2]=0,pr(A,i+32|0,l),a[e>>2]=1065353216,e=a[A+148>>2],r=a[e+20>>2],a[o>>2]=a[e+16>>2],a[o+4>>2]=r,l=e+24|0,n=a[l+4>>2],f=o+8|0,r=f,a[r>>2]=a[l>>2],a[r+4>>2]=n,r=a[l+4>>2],u=i+88|0,n=a[l>>2],a[u>>2]=n,a[u+4>>2]=r,l=i+72|0,a[l>>2]=n,a[l+4>>2]=r,l=i+56|0,a[l>>2]=n,a[l+4>>2]=r,l=a[e+20>>2],e=a[e+16>>2],a[i+80>>2]=e,a[i+84>>2]=l,a[i+64>>2]=e,a[i+68>>2]=l,a[i+48>>2]=e,a[i+52>>2]=l,a[i+32>>2]=e,a[i+36>>2]=l,a[i+40>>2]=n,a[i+44>>2]=r,t=A+148|0,l=a[A+368>>2],c=C[A+136>>2],s=C[A+132>>2],k=C[A+128>>2],u=0;A:{e:{r:{for(;;){if(R=_(y(_(_(_(k*k)+_(s*s))+_(c*c)))),R<_(9999999747378752e-20)){a[A+376>>2]=1;break r}if(v=a[A+364>>2]+-1|0,a[A+364>>2]=v,Q=B(l,36),e=Q+A|0,n=e+180|0,r=a[n>>2],a[n>>2]=r+1,m=r<<2,r=e+148|0,m=m+r|0,v=a[348+((v<<2)+A|0)>>2],a[m>>2]=v,a[m+16>>2]=0,a[i+28>>2]=0,C[i+24>>2]=-c,C[i+20>>2]=-s,C[i+16>>2]=-k,pr(A,i+16|0,v),G=a[n>>2],v=a[(r+(G<<2)|0)-4>>2],c=C[v+16>>2],s=_(c-C[i+32>>2]),b=_(s*s),s=C[v+20>>2],k=_(s-C[i+36>>2]),d=_(b+_(k*k)),k=C[v+24>>2],b=_(k-C[i+40>>2]),!(_(d+_(b*b))<_(9999999747378752e-20)||(b=_(c-C[i+48>>2]),d=_(b*b),b=_(s-C[i+52>>2]),d=_(d+_(b*b)),b=_(k-C[i+56>>2]),_(d+_(b*b))<_(9999999747378752e-20)||(b=_(c-C[i+64>>2]),d=_(b*b),b=_(s-C[i+68>>2]),d=_(d+_(b*b)),b=_(k-C[i+72>>2]),_(d+_(b*b))<_(9999999747378752e-20)||(b=_(c-C[i+80>>2]),d=_(b*b),b=_(s-C[i+84>>2]),d=_(d+_(b*b)),b=_(k-C[i+88>>2]),_(d+_(b*b))<_(9999999747378752e-20)))))){if(v=v+16|0,h=v+8|0,p=a[h+4>>2],Z=Z+1&3,m=(i+32|0)+(Z<<4)|0,a[m+8>>2]=a[h>>2],a[m+12>>2]=p,F=a[v+4>>2],a[m>>2]=a[v>>2],a[m+4>>2]=F,c=_(_(_(_(C[A+128>>2]*c)+_(C[A+132>>2]*s))+_(C[A+136>>2]*k))/R),W=c>W?c:W,_(_(R-W)+_(R*_(-9999999747378752e-20)))<=_(0)){r=a[A+364>>2],a[A+364>>2]=r+1,l=a[A+368>>2],o=B(l,36)+A|0,n=o+180|0,e=a[n>>2]+-1|0,a[n>>2]=e,a[348+((r<<2)+A|0)>>2]=a[148+(o+(e<<2)|0)>>2];break r}a[i+12>>2]=0;i:{f:{v=G+-2|0;t:if(!(v>>>0>2)){switch(v-1|0){default:if(e=a[e+152>>2],w=C[e+16>>2],r=a[r>>2],g=C[r+16>>2],R=_(w-g),D=C[e+20>>2],s=C[r+20>>2],b=_(D-s),E=C[e+24>>2],k=C[r+24>>2],d=_(E-k),c=_(_(_(R*R)+_(b*b))+_(d*d)),!(c>_(0)))break f;if(c=_(_(-_(_(_(g*R)+_(s*b))+_(k*d)))/c),c>=_(1)){a[i+16>>2]=0,a[i+20>>2]=1065353216,a[i+12>>2]=2,g=_(_(_(w*w)+_(D*D))+_(E*E));break t}if(c<=_(0)){a[i+16>>2]=1065353216,a[i+20>>2]=0,a[i+12>>2]=1,g=_(_(_(g*g)+_(s*s))+_(k*k));break t}a[i+12>>2]=3,C[i+20>>2]=c,C[i+16>>2]=_(1)-c,k=_(k+_(d*c)),g=_(g+_(R*c)),c=_(s+_(b*c)),g=_(_(k*k)+_(_(g*g)+_(c*c)));break t;case 0:g=Fr(a[r>>2]+16|0,a[e+152>>2]+16|0,a[e+156>>2]+16|0,i+16|0,i+12|0);break t;case 1:}g=Wr(a[r>>2]+16|0,a[e+152>>2]+16|0,a[e+156>>2]+16|0,a[e+160>>2]+16|0,i+16|0,i+12|0)}if(g>=_(0)){if(l=1-l|0,G=B(l,36)+A|0,v=G+180|0,a[v>>2]=0,a[f>>2]=0,a[f+4>>2]=0,a[o>>2]=0,a[o+4>>2]=0,a[A+368>>2]=l,m=a[i+12>>2],F=a[n>>2],!F){c=_(0),s=_(0),k=_(0);break i}for(e=Q+t|0,r=0,c=_(0),n=i+16|0,s=_(0),k=_(0);Q=a[e>>2],1<<r&m?(h=a[v>>2],p=(h<<2)+G|0,a[p+148>>2]=Q,c=C[n>>2],a[p+164>>2]=a[n>>2],a[v>>2]=h+1,Q=a[e>>2],R=C[Q+24>>2],s=C[Q+20>>2],k=_(_(C[Q+16>>2]*c)+C[A+128>>2]),C[A+128>>2]=k,s=_(_(s*c)+C[A+132>>2]),C[A+132>>2]=s,c=_(_(R*c)+C[A+136>>2]),C[A+136>>2]=c):(h=a[A+364>>2],a[A+364>>2]=h+1,a[348+((h<<2)+A|0)>>2]=Q),e=e+4|0,n=n+4|0,r=r+1|0,(0|r)!=(0|F););break i}}r=a[A+364>>2],a[A+364>>2]=r+1,l=a[A+368>>2],o=B(l,36)+A|0,n=o+180|0,e=a[n>>2]+-1|0,a[n>>2]=e,a[348+((r<<2)+A|0)>>2]=a[148+(o+(e<<2)|0)>>2];break r}if(15==(0|m)&&(a[A+376>>2]=1),127==(0|u)){e=2,a[A+376>>2]=2,a[A+372>>2]=148+(B(l,36)+A|0);break A}if(u=u+1|0,e=a[A+376>>2],!e)continue;break e}break}r=a[A+364>>2],a[A+364>>2]=r+1,l=a[A+368>>2],o=B(l,36)+A|0,n=o+180|0,e=a[n>>2]+-1|0,a[n>>2]=e,a[348+((r<<2)+A|0)>>2]=a[148+(o+(e<<2)|0)>>2]}e=a[A+376>>2]}a[A+372>>2]=148+(B(l,36)+A|0),e>>>0>1||(e-1?(c=C[A+128>>2],s=_(c*c),c=C[A+132>>2],s=_(s+_(c*c)),c=C[A+136>>2],C[A+144>>2]=y(_(s+_(c*c))),e=0):(a[A+144>>2]=0,e=1))}return Y=i+96|0,e}function pr(A,e,r){var i,f,t,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0);i=Y-48|0,Y=i,n=C[e+8>>2],o=C[e>>2],c=C[e+4>>2],a[r+12>>2]=0,b=n,n=_(_(1)/_(y(_(_(_(o*o)+_(c*c))+_(n*n))))),C[r+8>>2]=b*n,C[r+4>>2]=c*n,C[r>>2]=o*n,e=a[A+120>>2],f=a[A+124>>2],t=a[A>>2]+(f>>1)|0,Qt[1&f?a[a[t>>2]+e>>2]:e](i+32|0,t,r),a[i+12>>2]=0,C[i+8>>2]=-C[r+8>>2],C[i+4>>2]=-C[r+4>>2],C[i>>2]=-C[r>>2],function(A,e,r){var i=0,f=_(0),t=_(0),n=_(0),o=0,c=0,b=0;i=Y-32|0,Y=i,c=a[e+124>>2],b=a[e+4>>2]+(c>>1)|0,o=a[e+120>>2],o=1&c?a[a[b>>2]+o>>2]:o,a[i+12>>2]=0,f=C[r>>2],t=C[r+4>>2],n=C[r+8>>2],C[i+8>>2]=_(_(f*C[e+40>>2])+_(t*C[e+44>>2]))+_(n*C[e+48>>2]),C[i+4>>2]=_(_(f*C[e+24>>2])+_(t*C[e+28>>2]))+_(n*C[e+32>>2]),C[i>>2]=_(_(f*C[e+8>>2])+_(t*C[e+12>>2]))+_(n*C[e+16>>2]),Qt[o](i+16|0,b,i),a[A+12>>2]=0,f=C[i+16>>2],t=C[i+20>>2],n=C[i+24>>2],C[A+8>>2]=_(_(_(f*C[e+88>>2])+_(t*C[e+92>>2]))+_(n*C[e+96>>2]))+C[e+112>>2],C[A+4>>2]=_(_(_(f*C[e+72>>2])+_(t*C[e+76>>2]))+_(n*C[e+80>>2]))+C[e+108>>2],C[A>>2]=_(_(_(f*C[e+56>>2])+_(t*C[e+60>>2]))+_(n*C[e- -64>>2]))+C[e+104>>2],Y=i+32|0}(i+16|0,A,i),n=C[i+16>>2],o=C[i+32>>2],c=C[i+20>>2],b=C[i+36>>2],l=C[i+24>>2],u=C[i+40>>2],a[r+28>>2]=0,C[r+24>>2]=u-l,C[r+20>>2]=b-c,C[r+16>>2]=o-n,Y=i+48|0}function Fr(A,e,r,i,f){var t=_(0),n=_(0),o=_(0),b=_(0),l=_(0),u=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=0,p=_(0),F=_(0),W=0,w=0,D=_(0),E=_(0),Z=_(0),Y=_(0),V=_(0);return n=_(-1),l=C[A>>2],b=C[e>>2],t=_(l-b),o=C[e+4>>2],h=C[r+4>>2],E=_(o-h),R=C[A+4>>2],B=_(R-o),p=C[r>>2],Z=_(b-p),k=_(_(t*E)-_(B*Z)),u=C[e+8>>2],F=C[r+8>>2],Y=_(u-F),Q=C[A+8>>2],v=_(Q-u),d=_(_(B*Y)-_(v*E)),g=_(_(v*Z)-_(t*Y)),V=_(_(k*k)+_(_(d*d)+_(g*g))),V>_(0)&&(_(_(_(l*_(_(k*B)-_(g*v)))+_(R*_(_(d*v)-_(k*t))))+_(_(_(g*t)-_(d*B))*Q))>_(0)?(B=_(b-l),v=_(o-R),m=_(u-Q),n=_(_(_(B*B)+_(v*v))+_(m*m)),t=_(-1),n>_(0)&&(n=_(_(-_(_(_(l*B)+_(R*v))+_(Q*m)))/n),n>=_(1)?(W=1065353216,G=2,t=_(_(_(b*b)+_(o*o))+_(u*u))):(G=1,n<=_(0)?(w=1065353216,t=_(_(_(l*l)+_(R*R))+_(Q*Q))):(s(_(_(1)-n)),w=c(0),s(n),W=c(0),G=3,t=_(Q+_(m*n)),b=_(t*t),t=_(l+_(B*n)),o=_(t*t),t=_(R+_(v*n)),t=_(b+_(o+_(t*t)))))),a[i+8>>2]=0,a[i+4>>2]=W,a[i>>2]=w,a[f>>2]=G,u=C[e+8>>2],o=C[e+4>>2],b=C[e>>2]):t=_(-1),Q=_(F-Q),R=_(h-R),B=_(p-l),_(_(_(b*_(_(k*E)-_(g*Y)))+_(o*_(_(d*Y)-_(k*Z))))+_(_(_(g*Z)-_(d*E))*u))>_(0)?(p=C[r>>2],v=_(p-b),F=C[r+4>>2],m=_(F-o),D=C[r+8>>2],h=_(D-u),l=_(_(_(v*v)+_(m*m))+_(h*h)),n=_(-1),l>_(0)&&(l=_(_(-_(_(_(b*v)+_(o*m))+_(u*h)))/l),l>=_(1)?(W=1065353216,w=0,G=2,n=_(_(_(p*p)+_(F*F))+_(D*D))):(G=1,l<=_(0)?(W=0,w=1065353216,n=_(_(_(b*b)+_(o*o))+_(u*u))):(s(_(_(1)-l)),w=c(0),s(l),W=c(0),G=3,n=_(u+_(h*l)),u=_(n*n),n=_(b+_(v*l)),b=_(n*n),n=_(o+_(m*l)),n=_(u+_(b+_(n*n)))))),!!(n<t)|t<_(0)?(a[i+8>>2]=W,a[i+4>>2]=w,a[i>>2]=0,a[f>>2]=G<<1):n=t):n=t,o=C[r>>2],u=C[r+4>>2],l=C[r+8>>2],_(_(_(o*_(_(k*R)-_(g*Q)))+_(u*_(_(d*Q)-_(k*B))))+_(_(_(g*B)-_(d*R))*l))>_(0)&&(p=C[A>>2],v=_(p-o),F=C[A+4>>2],m=_(F-u),D=C[A+8>>2],h=_(D-l),b=_(_(_(v*v)+_(m*m))+_(h*h)),t=_(-1),b>_(0)&&(b=_(_(-_(_(_(o*v)+_(u*m))+_(l*h)))/b),b>=_(1)?(W=1065353216,w=0,G=2,t=_(_(_(p*p)+_(F*F))+_(D*D))):b<=_(0)?(W=0,w=1065353216,G=1,t=_(_(_(o*o)+_(u*u))+_(l*l))):(s(_(_(1)-b)),w=c(0),s(b),W=c(0),G=3,t=_(l+_(h*b)),l=_(t*t),t=_(o+_(v*b)),o=_(t*t),t=_(u+_(m*b)),t=_(l+_(o+_(t*t))))),t<n^1&&!(n<_(0))||(a[i+8>>2]=w,a[i+4>>2]=0,a[i>>2]=W,a[f>>2]=5&(G<<2|G>>>1),n=t)),n<_(0)&&(b=_(_(_(_(d*C[A>>2])+_(g*C[A+4>>2]))+_(k*C[A+8>>2]))/V),n=_(g*b),o=_(C[e+4>>2]-n),t=_(d*b),u=_(C[e>>2]-t),d=_(_(Z*o)-_(E*u)),b=_(k*b),k=_(C[e+8>>2]-b),o=_(_(E*k)-_(Y*o)),l=_(o*o),o=_(_(Y*u)-_(Z*k)),l=_(y(_(_(d*d)+_(l+_(o*o))))),o=_(y(V)),u=_(l/o),C[i>>2]=u,a[f>>2]=7,k=_(C[r+4>>2]-n),d=_(C[r>>2]-t),g=_(_(B*k)-_(R*d)),l=_(g*g),g=_(C[r+8>>2]-b),k=_(_(R*g)-_(Q*k)),v=_(k*k),k=_(_(Q*d)-_(B*g)),o=_(_(y(_(l+_(v+_(k*k)))))/o),C[i+4>>2]=o,C[i+8>>2]=_(1)-_(u+o),n=_(_(b*b)+_(_(t*t)+_(n*n))))),n}function Wr(A,e,r,i,f,t){var n,o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=0,m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0);return n=Y-96|0,Y=n,a[n+92>>2]=i,a[n+88>>2]=r,a[n+84>>2]=e,a[n+80>>2]=A,a[n+60>>2]=0,G=C[e+8>>2],Q=C[i+8>>2],u=_(G-Q),C[n+56>>2]=u,y=C[e+4>>2],h=C[i+4>>2],p=_(y-h),C[n+52>>2]=p,a[n+44>>2]=0,F=C[A+8>>2],v=_(F-Q),C[n+40>>2]=v,E=C[A+4>>2],g=_(E-h),C[n+36>>2]=g,Z=C[A>>2],D=C[i>>2],m=_(Z-D),C[n+32>>2]=m,W=C[e>>2],o=_(W-D),C[n+48>>2]=o,w=C[r>>2],s=C[r+4>>2],V=C[r+8>>2],a[n+76>>2]=0,c=_(V-Q),C[n+72>>2]=c,l=_(s-h),C[n+68>>2]=l,k=_(w-D),C[n+64>>2]=k,b=_(-1),N=_(m*p),I=_(g*u),J=_(v*o),x=_(m*u),R=_(g*o),p=_(v*p),u=_(_(_(N*c)+_(_(_(_(I*k)+_(J*l))-_(x*l))-_(R*c)))-_(p*k)),u==_(0)|u!=u||(d=_(E-y),w=_(W-w),W=_(Z-W),y=_(y-s),s=_(F*_(_(d*w)-_(W*y))),F=_(F-G),G=_(G-V),_(u*_(s+_(_(Z*_(_(F*y)-_(d*G)))+_(E*_(_(W*G)-_(F*w))))))<=_(0)&&(a[n+24>>2]=0,a[n+16>>2]=0,a[n+20>>2]=0,a[n+12>>2]=0,_(u*_(_(_(_(I-p)*D)+_(h*_(J-x)))+_(_(N-R)*Q)))>_(0)&&(b=Fr(a[n+80>>2],a[n+84>>2],i,n+16|0,n+12|0),a[f+8>>2]=0,B=a[n+20>>2],a[f>>2]=a[n+16>>2],a[f+4>>2]=B,a[f+12>>2]=a[n+24>>2],B=a[n+12>>2],a[t>>2]=2&B|B<<1&8|1&B),Q=C[n+52>>2],h=C[n+56>>2],_(u*_(_(_(_(_(Q*c)-_(h*l))*C[i>>2])+_(C[i+4>>2]*_(_(h*k)-_(c*o))))+_(_(_(l*o)-_(Q*k))*C[i+8>>2])))>_(0)&&(o=Fr(a[n+84>>2],a[n+88>>2],i,n+16|0,n+12|0),o<b^1&&!(b<_(0))||(a[f+4>>2]=a[n+16>>2],a[f>>2]=0,B=a[n+24>>2],a[f+8>>2]=a[n+20>>2],a[f+12>>2]=B,a[t>>2]=a[n+12>>2]<<1&14,b=o)),_(u*_(_(_(_(_(l*v)-_(c*g))*C[i>>2])+_(C[i+4>>2]*_(_(c*m)-_(v*k))))+_(_(_(g*k)-_(l*m))*C[i+8>>2])))>_(0)&&(o=Fr(a[n+88>>2],a[n+80>>2],i,n+16|0,n+12|0),o<b^1&&!(b<_(0))||(a[f+8>>2]=a[n+16>>2],a[f+4>>2]=0,a[f>>2]=a[n+20>>2],a[f+12>>2]=a[n+24>>2],B=a[n+12>>2],a[t>>2]=B>>>1&1|B<<1&8|B<<2&4,b=o)),b<_(0)&&(b=C[r+4>>2],o=C[e+8>>2],c=C[i>>2],l=C[r+8>>2],k=C[e>>2],v=C[i+4>>2],R=_(_(_(b*o)*c)+_(_(l*k)*v)),s=o,o=C[r>>2],d=_(b*k),b=C[i+8>>2],d=_(_(R-_(v*_(s*o)))-_(d*b)),s=b,b=C[e+4>>2],b=_(_(_(d+_(s*_(o*b)))-_(c*_(l*b)))/u),C[f>>2]=b,o=C[A+4>>2],c=C[r+8>>2],l=C[i>>2],k=C[A+8>>2],v=C[r>>2],g=C[i+4>>2],R=_(_(_(o*c)*l)+_(_(k*v)*g)),s=c,c=C[A>>2],d=_(o*v),o=C[i+8>>2],d=_(_(R-_(g*_(s*c)))-_(d*o)),s=o,o=C[r+4>>2],o=_(_(_(d+_(s*_(c*o)))-_(l*_(k*o)))/u),C[f+4>>2]=o,a[t>>2]=15,c=C[e+4>>2],l=C[A+8>>2],k=C[i>>2],v=C[e+8>>2],g=C[A>>2],m=C[i+4>>2],R=_(_(_(c*l)*k)+_(_(v*g)*m)),s=l,l=C[e>>2],d=_(c*g),c=C[i+8>>2],d=_(_(R-_(m*_(s*l)))-_(d*c)),s=c,c=C[A+4>>2],u=_(_(_(d+_(s*_(l*c)))-_(k*_(v*c)))/u),C[f+8>>2]=u,C[f+12>>2]=_(1)-_(_(b+o)+u),b=_(0)))),Y=n+96|0,b}function wr(A,e,r,i,t,n){var c,b,l=_(0),u=_(0),s=_(0),k=_(0),v=0,g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=0;c=Y-19040|0,Y=c,a[n>>2]=0,a[n+4>>2]=0,a[n+32>>2]=0,v=n+24|0,a[v>>2]=0,a[v+4>>2]=0,v=n+16|0,a[v>>2]=0,a[v+4>>2]=0,v=n+8|0,a[v>>2]=0,a[v+4>>2]=0,a[c+18916>>2]=r,a[c+18912>>2]=A,l=C[i+20>>2],u=C[i+36>>2],A=e+20|0,s=C[A>>2],r=e+36|0,k=C[r>>2],v=e+24|0,m=C[v>>2],g=C[i+24>>2],b=e+40|0,R=C[b>>2],B=C[i+40>>2],Q=C[i+32>>2],h=C[i>>2],G=C[i+16>>2],p=C[i+4>>2],F=C[e+32>>2],W=C[e>>2],w=C[e+16>>2],Z=C[e+4>>2],E=C[e+8>>2],D=C[i+8>>2],a[c+18964>>2]=0,a[c+18948>>2]=0,a[c+18932>>2]=0,V=_(_(_(E*D)+_(m*g))+_(R*B)),C[c+18960>>2]=V,N=_(_(_(Z*D)+_(s*g))+_(k*B)),C[c+18956>>2]=N,g=_(_(_(W*D)+_(w*g))+_(F*B)),C[c+18952>>2]=g,B=_(_(_(E*p)+_(m*l))+_(R*u)),C[c+18944>>2]=B,D=_(_(_(Z*p)+_(s*l))+_(k*u)),C[c+18940>>2]=D,l=_(_(_(W*p)+_(w*l))+_(F*u)),C[c+18936>>2]=l,u=_(_(_(h*E)+_(G*m))+_(Q*R)),C[c+18928>>2]=u,s=_(_(_(h*Z)+_(G*s))+_(Q*k)),C[c+18924>>2]=s,k=_(_(_(h*W)+_(G*w))+_(Q*F)),C[c+18920>>2]=k,m=C[A>>2],R=C[r>>2],Q=C[v>>2],h=C[i+52>>2],G=C[e+52>>2],p=C[b>>2],F=C[i+56>>2],W=C[e+56>>2],w=C[e>>2],Z=C[e+16>>2],E=C[e+32>>2],I=C[e+4>>2],J=C[e+8>>2],x=C[i+48>>2],U=C[e+48>>2],a[c+19036>>2]=0,a[c+19028>>2]=0,a[c+19012>>2]=0,C[c+19008>>2]=V,C[c+19004>>2]=B,C[c+19e3>>2]=u,a[c+18996>>2]=0,C[c+18992>>2]=N,C[c+18988>>2]=D,C[c+18984>>2]=s,a[c+18980>>2]=0,C[c+18976>>2]=g,C[c+18972>>2]=l,l=_(x-U),u=_(h-G),s=_(F-W),C[c+19024>>2]=_(_(J*l)+_(Q*u))+_(p*s),C[c+19020>>2]=_(_(l*I)+_(u*m))+_(s*R),C[c+19016>>2]=_(_(l*w)+_(u*Z))+_(s*E),a[c+19032>>2]=349,C[c+18968>>2]=k,A=c+18664|0,a[A>>2]=0,a[A+4>>2]=0,a[c+18656>>2]=0,a[c+18660>>2]=0,a[c+18892>>2]=0,a[c+18896>>2]=0,a[c+18904>>2]=2,a[c+18672>>2]=0,a[c+28>>2]=0,C[c+24>>2]=-C[t+8>>2],C[c+20>>2]=-C[t+4>>2],C[c+16>>2]=-C[t>>2],A=yr(c+18528|0,c+18912|0,c+16|0)+-1|0;A:if(!(A>>>0>1)){e:{if(A-1){for(A=c+18520|0,a[A>>2]=0,a[A+4>>2]=0,A=c- -64|0,a[A>>2]=0,a[A+4>>2]=0,a[c+72>>2]=0,a[c+18512>>2]=0,a[c+18516>>2]=0,a[c+18508>>2]=0,a[c+16>>2]=9,a[c+56>>2]=0,a[c+60>>2]=0,i=14336;A=(c+16|0)+i|0,a[A+4144>>2]=0,r=a[c+18520>>2],a[A+4148>>2]=r,A=A+4100|0,r&&(a[r+44>>2]=A),a[c+18520>>2]=A,i=i+-56|0,i;);if(a[c+18524>>2]=256,a[c+12>>2]=0,C[c+8>>2]=-C[t+8>>2],C[c+4>>2]=-C[t+4>>2],C[c>>2]=-C[t>>2],9!=(0|function(A,e,r){var i=0,t=0,n=_(0),c=_(0),b=0,l=0,u=0,s=_(0),k=_(0),v=_(0),g=_(0),B=_(0),m=0,R=0,Q=_(0),h=_(0),G=0,p=0,F=_(0),W=0,w=_(0);G=Y-16|0,Y=G;r:{if(u=a[e+372>>2],!(d[u+32>>2]<2)&&function A(e){var r=0,i=0,f=0,t=0,n=0,o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0);f=Y-32|0,Y=f;i:{f:{r=a[e+372>>2],i=a[r+32>>2]+-1|0;t:if(!(i>>>0>3)){n:{switch(i-1|0){default:if(a[f+28>>2]=0,a[r+32>>2]=2,a[r+20>>2]=0,i=a[e+364>>2]+-1|0,a[e+364>>2]=i,a[f+20>>2]=0,a[f+24>>2]=0,t=r,r=a[348+((i<<2)+e|0)>>2],a[t+4>>2]=r,a[f+16>>2]=1065353216,pr(e,f+16|0,r),A(e))break f;if(t=a[e+364>>2],r=a[e+372>>2],n=a[r+32>>2]+-1|0,i=a[(n<<2)+r>>2],a[348+((t<<2)+e|0)>>2]=i,a[r+32>>2]=n,r=a[e+372>>2],a[e+364>>2]=t,t=a[r+32>>2],a[r+32>>2]=t+1,r=r+(t<<2)|0,a[r>>2]=i,a[f+12>>2]=0,C[f+8>>2]=-C[f+24>>2],C[f+4>>2]=-C[f+20>>2],C[f>>2]=-C[f+16>>2],a[r+16>>2]=0,pr(e,f,i),A(e))break f;if(r=a[e+372>>2],i=a[r+32>>2]+-1|0,a[r+32>>2]=i,t=a[e+364>>2],r=a[r+(i<<2)>>2],a[348+((t<<2)+e|0)>>2]=r,i=f+24|0,a[i>>2]=0,a[i+4>>2]=0,a[e+364>>2]=t,i=a[e+372>>2],t=a[i+32>>2],a[i+32>>2]=t+1,a[f+16>>2]=0,a[f+20>>2]=0,i=i+(t<<2)|0,a[i>>2]=r,a[f+20>>2]=1065353216,a[i+16>>2]=0,pr(e,f+16|0,r),!A(e))break n;break f;case 0:if(i=a[r>>2],c=C[i+20>>2],t=a[r+4>>2],o=C[t+20>>2],b=C[i+24>>2],l=C[t+24>>2],k=C[i+16>>2],u=C[t+16>>2],a[f+28>>2]=0,v=_(o-c),c=_(v*_(0)),l=_(l-b),o=_(l*_(0)),s=_(c-o),C[f+16>>2]=s,k=_(u-k),b=_(k*_(0)),u=_(l-b),C[f+20>>2]=u,d=_(b-v),C[f+24>>2]=d,_(_(d*d)+_(_(s*s)+_(u*u)))>_(0)){if(a[r+32>>2]=3,a[r+24>>2]=0,i=a[e+364>>2]+-1|0,a[e+364>>2]=i,t=r,r=a[348+((i<<2)+e|0)>>2],a[t+8>>2]=r,pr(e,f+16|0,r),A(e))break f;if(t=a[e+364>>2],r=a[e+372>>2],n=a[r+32>>2]+-1|0,i=a[(n<<2)+r>>2],a[348+((t<<2)+e|0)>>2]=i,a[r+32>>2]=n,r=a[e+372>>2],a[e+364>>2]=t,t=a[r+32>>2],a[r+32>>2]=t+1,r=r+(t<<2)|0,a[r>>2]=i,a[f+12>>2]=0,C[f+8>>2]=-C[f+24>>2],C[f+4>>2]=-C[f+20>>2],C[f>>2]=-C[f+16>>2],a[r+16>>2]=0,pr(e,f,i),A(e))break f;t=a[e+364>>2],a[e+364>>2]=t+1,r=a[e+372>>2],i=a[r+32>>2]+-1|0,a[r+32>>2]=i,a[348+((t<<2)+e|0)>>2]=a[r+(i<<2)>>2]}if(a[f+28>>2]=0,s=_(o-b),C[f+20>>2]=s,l=_(c-l),C[f+16>>2]=l,u=_(k-c),C[f+24>>2]=u,_(_(u*u)+_(_(l*l)+_(s*s)))>_(0)){if(t=a[e+364>>2]+-1|0,a[e+364>>2]=t,r=a[e+372>>2],i=a[r+32>>2],a[r+32>>2]=i+1,r=r+(i<<2)|0,a[r+16>>2]=0,i=r,r=a[348+((t<<2)+e|0)>>2],a[i>>2]=r,pr(e,f+16|0,r),A(e))break f;if(t=a[e+364>>2],r=a[e+372>>2],n=a[r+32>>2]+-1|0,i=a[(n<<2)+r>>2],a[348+((t<<2)+e|0)>>2]=i,a[r+32>>2]=n,r=a[e+372>>2],a[e+364>>2]=t,t=a[r+32>>2],a[r+32>>2]=t+1,r=r+(t<<2)|0,a[r>>2]=i,a[f+12>>2]=0,C[f+8>>2]=-C[f+24>>2],C[f+4>>2]=-C[f+20>>2],C[f>>2]=-C[f+16>>2],a[r+16>>2]=0,pr(e,f,i),A(e))break f;t=a[e+364>>2],a[e+364>>2]=t+1,r=a[e+372>>2],i=a[r+32>>2]+-1|0,a[r+32>>2]=i,a[348+((t<<2)+e|0)>>2]=a[r+(i<<2)>>2]}if(a[f+28>>2]=0,l=_(o-k),C[f+20>>2]=l,o=_(v-o),C[f+16>>2]=o,c=_(b-c),C[f+24>>2]=c,!(_(_(c*c)+_(_(o*o)+_(l*l)))>_(0)))break t;if(t=a[e+364>>2]+-1|0,a[e+364>>2]=t,r=a[e+372>>2],i=a[r+32>>2],a[r+32>>2]=i+1,r=r+(i<<2)|0,a[r+16>>2]=0,i=r,r=a[348+((t<<2)+e|0)>>2],a[i>>2]=r,pr(e,f+16|0,r),A(e))break f;if(t=a[e+364>>2],r=a[e+372>>2],n=a[r+32>>2]+-1|0,i=a[(n<<2)+r>>2],a[348+((t<<2)+e|0)>>2]=i,a[r+32>>2]=n,r=a[e+372>>2],a[e+364>>2]=t,t=a[r+32>>2],a[r+32>>2]=t+1,r=r+(t<<2)|0,a[r>>2]=i,a[f+12>>2]=0,C[f+8>>2]=-C[f+24>>2],C[f+4>>2]=-C[f+20>>2],C[f>>2]=-C[f+16>>2],a[r+16>>2]=0,pr(e,f,i),A(e))break f;t=a[e+364>>2],a[e+364>>2]=t+1,r=a[e+372>>2],i=a[r+32>>2]+-1|0,a[r+32>>2]=i,a[348+((t<<2)+e|0)>>2]=a[r+(i<<2)>>2];break t;case 1:if(a[f+28>>2]=0,i=a[r+4>>2],t=a[r>>2],c=C[t+20>>2],b=_(C[i+20>>2]-c),n=a[r+8>>2],o=C[t+24>>2],v=_(C[n+24>>2]-o),o=_(C[i+24>>2]-o),l=_(C[n+20>>2]-c),c=_(_(b*v)-_(o*l)),C[f+16>>2]=c,u=o,o=C[t+16>>2],s=_(C[n+16>>2]-o),k=_(C[i+16>>2]-o),o=_(_(u*s)-_(k*v)),C[f+20>>2]=o,b=_(_(k*l)-_(b*s)),C[f+24>>2]=b,!(_(_(b*b)+_(_(c*c)+_(o*o)))>_(0)))break t;if(i=r+28|0,a[i>>2]=0,a[i+4>>2]=4,i=a[e+364>>2]+-1|0,a[e+364>>2]=i,t=r,r=a[348+((i<<2)+e|0)>>2],a[t+12>>2]=r,pr(e,f+16|0,r),A(e))break f;if(i=a[e+364>>2],r=a[e+372>>2],n=a[r+32>>2]+-1|0,t=a[(n<<2)+r>>2],a[348+((i<<2)+e|0)>>2]=t,a[r+32>>2]=n,r=a[e+372>>2],a[e+364>>2]=i,n=a[r+32>>2],a[r+32>>2]=n+1,r=r+(n<<2)|0,a[r>>2]=t,a[f+12>>2]=0,C[f+8>>2]=-C[f+24>>2],C[f+4>>2]=-C[f+20>>2],C[f>>2]=-C[f+16>>2],a[r+16>>2]=0,pr(e,f,t),i=1,A(e))break i;t=a[e+364>>2],a[e+364>>2]=t+1,r=a[e+372>>2],i=a[r+32>>2]+-1|0,a[r+32>>2]=i,a[348+((t<<2)+e|0)>>2]=a[r+(i<<2)>>2];break t;case 2:}if(e=a[r>>2],t=a[r+12>>2],c=C[t+16>>2],v=_(C[e+16>>2]-c),n=a[r+4>>2],o=C[t+20>>2],l=_(C[n+20>>2]-o),r=a[r+8>>2],b=C[t+24>>2],s=_(C[r+24>>2]-b),k=_(C[e+20>>2]-o),u=_(C[n+24>>2]-b),d=_(C[r+16>>2]-c),b=_(C[e+24>>2]-b),c=_(C[n+16>>2]-c),o=_(C[r+20>>2]-o),c=_(_(_(_(v*l)*s)+_(_(_(_(_(k*u)*d)+_(_(b*c)*o))-_(_(v*u)*o))-_(_(k*c)*s)))-_(_(b*l)*d)),i=1,c!=_(0)&c==c)break i;break t}if(t=a[e+364>>2],r=a[e+372>>2],n=a[r+32>>2]+-1|0,i=a[(n<<2)+r>>2],a[348+((t<<2)+e|0)>>2]=i,a[r+32>>2]=n,r=a[e+372>>2],a[e+364>>2]=t,t=a[r+32>>2],a[r+32>>2]=t+1,r=r+(t<<2)|0,a[r>>2]=i,a[f+12>>2]=0,C[f+8>>2]=-C[f+24>>2],C[f+4>>2]=-C[f+20>>2],C[f>>2]=-C[f+16>>2],a[r+16>>2]=0,pr(e,f,i),A(e))break f;if(r=a[e+372>>2],i=a[r+32>>2]+-1|0,a[r+32>>2]=i,t=a[e+364>>2],r=a[r+(i<<2)>>2],a[348+((t<<2)+e|0)>>2]=r,i=f+24|0,a[i>>2]=0,a[i+4>>2]=0,a[i>>2]=1065353216,a[e+364>>2]=t,i=a[e+372>>2],t=a[i+32>>2],a[i+32>>2]=t+1,a[f+16>>2]=0,a[f+20>>2]=0,i=i+(t<<2)|0,a[i>>2]=r,a[i+16>>2]=0,pr(e,f+16|0,r),A(e))break f;if(t=a[e+364>>2],r=a[e+372>>2],n=a[r+32>>2]+-1|0,i=a[(n<<2)+r>>2],a[348+((t<<2)+e|0)>>2]=i,a[r+32>>2]=n,r=a[e+372>>2],a[e+364>>2]=t,t=a[r+32>>2],a[r+32>>2]=t+1,r=r+(t<<2)|0,a[r>>2]=i,a[f+12>>2]=0,C[f+8>>2]=-C[f+24>>2],C[f+4>>2]=-C[f+20>>2],C[f>>2]=-C[f+16>>2],a[r+16>>2]=0,pr(e,f,i),A(e))break f;t=a[e+364>>2],a[e+364>>2]=t+1,r=a[e+372>>2],i=a[r+32>>2]+-1|0,a[r+32>>2]=i,a[348+((t<<2)+e|0)>>2]=a[r+(i<<2)>>2]}i=0;break i}i=1}return Y=f+32|0,i}(e)){if(i=a[A+18496>>2],i){for(t=a[A+18508>>2],l=a[A+18500>>2];b=a[i+48>>2],b&&(a[b+44>>2]=a[i+44>>2]),b=a[i+44>>2],b&&(a[b+48>>2]=a[i+48>>2]),(0|i)==a[A+18496>>2]&&(a[A+18496>>2]=a[i+48>>2]),a[i+44>>2]=0,a[i+48>>2]=a[A+18504>>2],b=a[A+18504>>2],b&&(a[b+44>>2]=i),l=l+-1|0,a[A+18504>>2]=i,t=t+1|0,i=a[A+18496>>2],i;);a[A+18508>>2]=t,a[A+18500>>2]=l}if(a[A+18492>>2]=0,a[A>>2]=0,t=a[u>>2],l=a[u+12>>2],n=C[l+16>>2],B=_(C[t+16>>2]-n),i=a[u+4>>2],c=C[l+20>>2],k=_(C[i+20>>2]-c),b=a[u+8>>2],s=C[l+24>>2],v=_(C[b+24>>2]-s),g=_(C[t+20>>2]-c),Q=_(C[i+24>>2]-s),h=_(C[b+16>>2]-n),s=_(C[t+24>>2]-s),n=_(C[i+16>>2]-n),c=_(C[b+20>>2]-c),_(_(_(_(B*k)*v)+_(_(_(_(_(g*Q)*h)+_(_(s*n)*c))-_(_(B*Q)*c))-_(_(g*n)*v)))-_(_(s*k)*h))<_(0)?(a[u+4>>2]=t,a[u>>2]=i,l=a[u+16>>2],m=u+20|0,a[u+16>>2]=a[m>>2],a[m>>2]=l,l=t):(l=i,i=t),l=Dr(A,i,l,b,1),b=Dr(A,a[u+4>>2],a[u>>2],a[u+12>>2],1),R=Dr(A,a[u+8>>2],a[u+4>>2],a[u+12>>2],1),m=Dr(A,a[u>>2],a[u+8>>2],a[u+12>>2],1),4==a[A+18500>>2]){if(t=a[A+18496>>2],n=C[t+16>>2],i=a[t+48>>2],i){for(n=_(n*n);c=C[i+16>>2],c=_(c*c),r=c<n,t=r?i:t,n=r?c:n,i=a[i+48>>2],i;);n=C[t+16>>2]}for(r=a[t+28>>2],u=a[t+24>>2],p=a[t+20>>2],k=C[t+12>>2],B=C[t+8>>2],s=C[t+4>>2],c=C[t>>2],a[l+32>>2]=b,f[l+52|0]=0,a[b+32>>2]=l,f[b+52|0]=0,a[l+36>>2]=R,f[l+53|0]=0,a[R+32>>2]=l,f[R+52|0]=1,a[l+40>>2]=m,f[l+54|0]=0,a[m+32>>2]=l,f[m+52|0]=2,a[b+36>>2]=m,f[b+53|0]=2,a[m+40>>2]=b,f[m+54|0]=1,a[b+40>>2]=R,f[b+54|0]=1,a[R+36>>2]=b,i=R+53|0,f[0|i]=258,f[i+1|0]=1,a[R+40>>2]=m,f[m+53|0]=2,a[m+36>>2]=R,a[A>>2]=0,b=0;;){i:{f:{if(i=a[A+18492>>2],!(i>>>0<=127)){a[A>>2]=6;break i}if(a[A+18492>>2]=i+1,b=b+1|0,f[t+55|0]=b,a[G+8>>2]=0,a[G>>2]=0,a[G+4>>2]=0,i=(i<<5)+A|0,m=i+60|0,pr(e,t,m),!(_(_(_(_(C[t>>2]*C[i+76>>2])+_(C[t+4>>2]*C[i+80>>2]))+_(C[t+8>>2]*C[i+84>>2]))-C[t+16>>2])>_(9999999747378752e-20))){a[A>>2]=7;break i}for(l=t+32|0,i=52;;){if(R=Er(A,b,m,a[l>>2],o[t+i|0],G),!R)break f;if(W=i+-51|0,l=l+4|0,i=i+1|0,!(W>>>0<3))break}}if(R&d[G+8>>2]>2){if(r=a[G>>2],f[r+53|0]=2,i=a[G+4>>2],a[r+36>>2]=i,a[i+40>>2]=r,f[i+54|0]=1,r=a[t+48>>2],r&&(a[r+44>>2]=a[t+44>>2]),r=a[t+44>>2],r&&(a[r+48>>2]=a[t+48>>2]),(0|t)==a[A+18496>>2]&&(a[A+18496>>2]=a[t+48>>2]),a[t+44>>2]=0,a[t+48>>2]=a[A+18504>>2],a[A+18500>>2]=a[A+18500>>2]+-1,r=a[A+18504>>2],r&&(a[r+44>>2]=t),a[A+18504>>2]=t,a[A+18508>>2]=a[A+18508>>2]+1,t=a[A+18496>>2],n=C[t+16>>2],i=a[t+48>>2],i){for(n=_(n*n);c=C[i+16>>2],c=_(c*c),r=c<n,t=r?i:t,n=r?c:n,i=a[i+48>>2],i;);n=C[t+16>>2]}if(r=a[t+28>>2],u=a[t+24>>2],p=a[t+20>>2],k=C[t+12>>2],B=C[t+8>>2],s=C[t+4>>2],c=C[t>>2],255!=(0|b))continue}else a[A>>2]=4}break}C[A+56>>2]=n,C[A+40>>2]=c,C[A+52>>2]=k,C[A+48>>2]=B,C[A+44>>2]=s,e=A+20|0,c=_(c*n),k=_(C[u+16>>2]-c),i=r+20|0,s=_(s*n),v=_(C[i>>2]-s),t=u+20|0,g=_(C[t>>2]-s),Q=_(C[r+16>>2]-c),h=_(_(k*v)-_(g*Q)),l=r+24|0,n=_(B*n),B=_(C[l>>2]-n),F=_(g*B),b=u+24|0,g=_(C[b>>2]-n),v=_(F-_(g*v)),B=_(_(g*Q)-_(k*B)),B=_(y(_(_(h*h)+_(_(v*v)+_(B*B))))),C[e>>2]=B,m=A+24|0,k=_(C[r+16>>2]-c),R=p+20|0,v=_(C[R>>2]-s),g=_(C[i>>2]-s),Q=_(C[p+16>>2]-c),h=_(_(k*v)-_(g*Q)),w=_(h*h),F=g,i=p+24|0,g=_(C[i>>2]-n),h=_(C[l>>2]-n),v=_(_(F*g)-_(h*v)),k=_(_(h*Q)-_(k*g)),k=_(y(_(w+_(_(v*v)+_(k*k))))),C[m>>2]=k,a[A+4>>2]=p,a[A+36>>2]=3,a[A+12>>2]=r,a[A+8>>2]=u,v=_(C[p+16>>2]-c),g=_(C[t>>2]-s),s=_(C[R>>2]-s),c=_(C[u+16>>2]-c),Q=_(_(v*g)-_(s*c)),F=s,s=_(C[b>>2]-n),n=_(C[i>>2]-n),g=_(_(F*s)-_(n*g)),n=_(_(n*c)-_(v*s)),c=_(y(_(_(Q*Q)+_(_(g*g)+_(n*n))))),n=_(c+_(B+k)),C[A+28>>2]=c/n,C[m>>2]=k/n,C[e>>2]=B/n,i=a[A>>2];break r}}a[A>>2]=8,n=C[r+8>>2],c=C[r+4>>2],s=C[r>>2],a[A+52>>2]=0,B=_(-s),C[A+40>>2]=B,k=_(-c),C[A+44>>2]=k,v=_(-n),C[A+48>>2]=v,n=_(y(_(_(_(s*s)+_(c*c))+_(n*n)))),n>_(0)?(n=_(_(1)/n),C[A+48>>2]=n*v,C[A+44>>2]=n*k,C[A+40>>2]=n*B):(a[A+48>>2]=0,a[A+40>>2]=1065353216,a[A+44>>2]=0),a[A+52>>2]=0,a[A+56>>2]=0,a[A+36>>2]=1,a[A+20>>2]=1065353216,a[A+4>>2]=a[u>>2],i=8}return Y=G+16|0,i}(c+16|0,c+18528|0,c))){if(!a[c+52>>2]){l=_(0),u=_(0),s=_(0);break e}for(i=c+36|0,s=_(0),t=0,u=_(0),l=_(0);A=a[c+19036>>2],r=a[c+18912>>2]+(A>>1)|0,v=a[c+19032>>2],Qt[1&A?a[v+a[r>>2]>>2]:v](c,r,a[i+-16>>2]),k=C[i>>2],s=_(s+_(k*C[c+8>>2])),u=_(u+_(k*C[c+4>>2])),l=_(l+_(C[c>>2]*k)),i=i+4|0,t=t+1|0,t>>>0<d[c+52>>2];);break e}a[n>>2]=3;break A}a[n>>2]=2;break A}k=C[e+48>>2],m=C[e+8>>2],g=C[e>>2],R=C[e+4>>2],B=C[e+52>>2],Q=C[e+24>>2],h=C[e+16>>2],G=C[e+20>>2],p=C[e+56>>2],F=C[e+40>>2],W=C[e+32>>2],w=C[e+36>>2],a[n+16>>2]=0,C[n+12>>2]=p+_(_(_(l*W)+_(u*w))+_(s*F)),C[n+8>>2]=B+_(_(_(l*h)+_(u*G))+_(s*Q)),C[n+4>>2]=k+_(_(_(l*g)+_(u*R))+_(s*m)),M=1,a[n>>2]=1,m=C[e+56>>2],g=C[e+40>>2],R=C[e+32>>2],B=C[e+36>>2],Q=C[e+52>>2],h=C[e+24>>2],G=C[e+16>>2],p=C[e+20>>2],F=C[e+48>>2],W=C[e+8>>2],w=C[e>>2],Z=C[e+4>>2],a[n+32>>2]=0,a[n+48>>2]=0,E=C[c+56>>2],C[n+36>>2]=-E,D=C[c+60>>2],C[n+40>>2]=-D,V=C[c- -64>>2],C[n+44>>2]=-V,k=C[c+72>>2],C[n+52>>2]=-k,l=_(l-_(E*k)),u=_(u-_(k*D)),s=_(s-_(k*V)),C[n+20>>2]=F+_(_(_(w*l)+_(Z*u))+_(W*s)),C[n+24>>2]=Q+_(_(_(l*G)+_(u*p))+_(s*h)),C[n+28>>2]=m+_(_(_(l*R)+_(u*B))+_(s*g))}return Y=c+19040|0,M}function Dr(A,e,r,i,t){var n,o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=0,g=_(0),B=_(0);if(n=a[A+18504>>2],n){if(o=a[n+48>>2],o&&(a[o+44>>2]=a[n+44>>2]),o=a[n+44>>2],o&&(a[o+48>>2]=a[n+48>>2]),(0|n)==a[A+18504>>2]&&(a[A+18504>>2]=a[n+48>>2]),a[n+44>>2]=0,a[n+48>>2]=a[A+18496>>2],o=A+18508|0,a[o>>2]=a[o>>2]+-1,o=a[A+18496>>2],o&&(a[o+44>>2]=n),a[A+18496>>2]=n,o=A+18500|0,a[o>>2]=a[o>>2]+1,f[n+55|0]=0,a[n+28>>2]=i,a[n+24>>2]=r,a[n+20>>2]=e,s=C[r+20>>2],k=C[i+24>>2],u=C[r+24>>2],c=C[e+24>>2],l=C[e+20>>2],v=C[i+20>>2],g=C[i+16>>2],B=C[r+16>>2],b=C[e+16>>2],a[n+12>>2]=0,s=_(s-l),k=_(k-c),u=_(u-c),v=_(v-l),c=_(_(s*k)-_(u*v)),C[n>>2]=c,l=u,u=_(g-b),b=_(B-b),l=_(_(l*u)-_(b*k)),C[n+4>>2]=l,b=_(_(b*v)-_(s*u)),C[n+8>>2]=b,d=2,c=_(y(_(_(_(c*c)+_(l*l))+_(b*b)))),c>_(9999999747378752e-20)){if(o=n+16|0,Zr(n,e,r,o)||Zr(n,r,i,o)||Zr(n,i,e,o)||(C[n+16>>2]=_(_(_(C[e+16>>2]*C[n>>2])+_(C[e+20>>2]*C[n+4>>2]))+_(C[e+24>>2]*C[n+8>>2]))/c),c=_(_(1)/c),C[n>>2]=c*C[n>>2],C[n+4>>2]=c*C[n+4>>2],C[n+8>>2]=c*C[n+8>>2],t)return n;if(d=3,C[o>>2]>=_(-9999999747378752e-21))return n}return a[A>>2]=d,e=a[n+48>>2],e&&(a[e+44>>2]=a[n+44>>2]),e=a[n+44>>2],e&&(a[e+48>>2]=a[n+48>>2]),(0|n)==a[A+18496>>2]&&(a[A+18496>>2]=a[n+48>>2]),a[n+44>>2]=0,a[n+48>>2]=a[A+18504>>2],a[A+18500>>2]=a[A+18500>>2]+-1,e=a[A+18504>>2],e&&(a[e+44>>2]=n),a[A+18504>>2]=n,a[A+18508>>2]=a[A+18508>>2]+1,0}return a[A>>2]=5,0}function Er(A,e,r,i,t,n){var c=0,b=0,l=0;A:if(o[i+55|0]!=(0|e)){if(c=t<<2,b=a[c+14768>>2],_(_(_(_(C[i>>2]*C[r+16>>2])+_(C[i+4>>2]*C[r+20>>2]))+_(C[i+8>>2]*C[r+24>>2]))-C[i+16>>2])<_(-9999999747378752e-21)){if(e=A,A=i+20|0,A=Dr(e,a[A+(b<<2)>>2],a[A+c>>2],r,0),!A)break A;return a[A+32>>2]=i,f[A+52|0]=t,f[52+(i+t|0)|0]=0,a[32+((t<<2)+i|0)>>2]=A,e=a[n>>2],e?(a[e+36>>2]=A,f[e+53|0]=2,a[A+40>>2]=e,f[A+54|0]=1):a[n+4>>2]=A,a[n>>2]=A,a[n+8>>2]=a[n+8>>2]+1,1}f[i+55|0]=e,Er(A,e,r,a[32+((b<<2)+i|0)>>2],o[52+(i+b|0)|0],n)&&(t=e,e=a[c+14780>>2],Er(A,t,r,a[32+((e<<2)+i|0)>>2],o[52+(e+i|0)|0],n)&&(e=a[i+48>>2],e&&(a[e+44>>2]=a[i+44>>2]),e=a[i+44>>2],e&&(a[e+48>>2]=a[i+48>>2]),(0|i)==a[A+18496>>2]&&(a[A+18496>>2]=a[i+48>>2]),a[i+44>>2]=0,a[i+48>>2]=a[A+18504>>2],e=A+18500|0,a[e>>2]=a[e>>2]+-1,e=a[A+18504>>2],e&&(a[e+44>>2]=i),a[A+18504>>2]=i,l=1,A=A+18508|0,a[A>>2]=a[A>>2]+1))}return l}function Zr(A,e,r,i){var f=_(0),t=_(0),n=_(0),a=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0);return o=C[r+24>>2],f=C[e+24>>2],l=_(o-f),c=C[r+16>>2],n=C[e+16>>2],u=_(c-n),t=C[A+4>>2],b=C[r+20>>2],a=C[e+20>>2],s=_(b-a),k=C[A>>2],v=C[A+8>>2],A=0,_(_(f*_(_(u*t)-_(s*k)))+_(_(n*_(_(s*v)-_(l*t)))+_(a*_(_(l*k)-_(u*v)))))<_(0)&&(t=_(_(_(n*n)+_(a*a))+_(f*f)),_(_(_(n*u)+_(a*s))+_(f*l))>_(0)||(t=_(_(_(c*c)+_(b*b))+_(o*o)),_(_(_(c*u)+_(b*s))+_(o*l))<_(0)||(t=_(_(_(_(c*c)+_(b*b))+_(o*o))*_(_(_(n*n)+_(a*a))+_(f*f))),f=_(_(_(c*n)+_(b*a))+_(o*f)),f=_(_(t-_(f*f))/_(_(_(u*u)+_(s*s))+_(l*l))),t=f>_(0)?f:_(0))),C[i>>2]=y(t),A=1),A}function Yr(A){var e=0;f[A+356|0]=1,a[A>>2]=0,f[A+312|0]=0,a[A+292>>2]=1566444395,a[A+296>>2]=1566444395,e=A+336|0,a[e>>2]=0,a[e+4>>2]=0,e=A+300|0,a[e>>2]=1566444395,a[e+4>>2]=0,e=A+344|0,a[e>>2]=0,a[e+4>>2]=0,f[A+352|0]=0,A=A+332|0,f[0|A]=240&o[0|A]}function Vr(A,e,r,i){var t,n=0,o=0,c=0;n=a[e+4>>2],a[A+292>>2]=a[e>>2],a[A+296>>2]=n,n=e+8|0,c=a[n+4>>2],o=A+300|0,a[o>>2]=a[n>>2],a[o+4>>2]=c,f[A+356|0]=1,t=a[n+4>>2],o=(a[A>>2]<<4)+A|0,c=o+12|0,a[c>>2]=a[n>>2],a[c+4>>2]=t,n=o+4|0,o=a[e+4>>2],a[n>>2]=a[e>>2],a[n+4>>2]=o,o=r+8|0,c=a[o+4>>2],e=(a[A>>2]<<4)+A|0,n=e+92|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,n=a[r+4>>2],e=e+84|0,a[e>>2]=a[r>>2],a[e+4>>2]=n,n=a[i+4>>2],e=(a[A>>2]<<4)+A|0,r=e+164|0,a[r>>2]=a[i>>2],a[r+4>>2]=n,r=i+8|0,i=a[r+4>>2],e=e+172|0,a[e>>2]=a[r>>2],a[e+4>>2]=i,a[A>>2]=a[A>>2]+1}function Nr(A){var e,r=0,i=0,t=0,n=0,c=0,b=0,l=_(0),u=0,s=0,k=_(0),v=0,d=0,g=_(0),B=_(0),m=0,R=_(0),Q=0,h=0,G=_(0),y=_(0),p=0,F=_(0),W=_(0),w=0,D=0,E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=0;e=Y-16|0,Y=e;A:if(o[A+356|0]){f[A+356|0]=0,f[A+352|0]=0,r=A+344|0,a[r>>2]=0,a[r+4>>2]=0,D=A+336|0,r=D,a[r>>2]=0,a[r+4>>2]=0,n=A+332|0,r=-16&o[0|n],f[0|n]=r,n=a[A>>2];e:if(!(n>>>0>4)){i=A+316|0;r:{i:{switch(n-1|0){case 1:n=A,R=C[A+4>>2],l=_(C[A+20>>2]-R),G=C[A+8>>2],g=_(C[A+24>>2]-G),y=C[A+12>>2],B=_(C[A+28>>2]-y),R=_(_(_(_(_(0)-R)*l)+_(_(_(0)-G)*g))+_(_(_(0)-y)*B));f:if(R>_(0)){if(k=_(_(_(l*l)+_(g*g))+_(B*B)),R<k){k=_(R/k),i=3|r;break f}k=_(1),i=2|r}else i=1|r;f[n+332|0]=i,r=A+344|0,a[r>>2]=0,a[r+4>>2]=0,C[A+340>>2]=k,R=_(_(1)-k),C[A+336>>2]=R,a[A+256>>2]=0,l=C[A+92>>2],G=_(l+_(k*_(C[A+108>>2]-l))),C[A+252>>2]=G,l=C[A+88>>2],y=_(l+_(k*_(C[A+104>>2]-l))),C[A+248>>2]=y,l=C[A+84>>2],F=_(l+_(k*_(C[A+100>>2]-l))),C[A+244>>2]=F,W=C[A+180>>2],E=C[A+184>>2],l=C[A+168>>2],Z=C[A+188>>2],g=C[A+172>>2],B=C[A+164>>2],a[A+288>>2]=0,g=_(g+_(k*_(Z-g))),C[A+284>>2]=G-g,l=_(l+_(k*_(E-l))),C[A+280>>2]=y-l,B=_(B+_(k*_(W-B))),C[A+276>>2]=F-B,a[A+272>>2]=0,C[A+268>>2]=g,C[A+264>>2]=l,C[A+260>>2]=B,n=1,2&i||(a[A>>2]=1,n=0),1&i||(a[A>>2]=n,i=(n<<4)+A|0,r=i+12|0,n=a[r>>2],r=a[r+4>>2],u=i+4|0,c=a[u>>2],u=a[u+4>>2],v=i+84|0,h=a[v+4>>2],t=A+84|0,a[t>>2]=a[v>>2],a[t+4>>2]=h,b=i+92|0,v=a[b+4>>2],t=t+8|0,a[t>>2]=a[b>>2],a[t+4>>2]=v,v=i+164|0,h=a[v+4>>2],t=A+164|0,a[t>>2]=a[v>>2],a[t+4>>2]=h,i=i+172|0,b=a[i+4>>2],t=t+8|0,a[t>>2]=a[i>>2],a[t+4>>2]=b,i=A+4|0,a[i>>2]=c,a[i+4>>2]=u,i=i+8|0,a[i>>2]=n,a[i+4>>2]=r),i=k>=_(0)&R>=_(0);break e;case 2:r=e+8|0,a[r>>2]=0,a[r+4>>2]=0,a[e>>2]=0,a[e+4>>2]=0,u=A+4|0,c=A+20|0,t=A+36|0,Ir(e,u,c,t,i),a[A+256>>2]=0,g=C[A+336>>2],k=C[A+340>>2],l=C[A+344>>2],B=_(_(_(g*C[A+92>>2])+_(k*C[A+108>>2]))+_(l*C[A+124>>2])),C[A+252>>2]=B,R=_(_(_(g*C[A+88>>2])+_(k*C[A+104>>2]))+_(l*C[A+120>>2])),C[A+248>>2]=R,b=A+100|0,v=A+116|0,G=_(_(_(g*C[A+84>>2])+_(k*C[b>>2]))+_(l*C[v>>2])),C[A+244>>2]=G,h=A+180|0,y=C[h>>2],m=A+196|0,F=C[m>>2],W=C[A+168>>2],E=C[A+184>>2],Z=C[A+200>>2],N=C[A+172>>2],I=C[A+188>>2],J=C[A+204>>2],x=C[A+164>>2],a[A+288>>2]=0,V=B,B=_(_(_(g*N)+_(k*I))+_(l*J)),C[A+284>>2]=V-B,V=R,R=_(_(_(g*W)+_(k*E))+_(l*Z)),C[A+280>>2]=V-R,g=_(_(_(g*x)+_(k*y))+_(l*F)),C[A+276>>2]=G-g,a[A+272>>2]=0,C[A+268>>2]=B,C[A+264>>2]=R,C[A+260>>2]=g;f:{t:{n:{a:{o:{r=a[A>>2];c:if((0|r)>=4){if(n=o[A+332|0],8&n){i=r;break c}i=r+-1|0,a[A>>2]=i,r=(i<<4)+A|0,d=r+12|0,Q=a[d+4>>2],s=A+60|0,a[s>>2]=a[d>>2],a[s+4>>2]=Q,d=r+4|0,Q=a[d+4>>2],s=A+52|0,a[s>>2]=a[d>>2],a[s+4>>2]=Q,d=r+92|0,Q=a[d+4>>2],s=A+140|0,a[s>>2]=a[d>>2],a[s+4>>2]=Q,d=r+84|0,Q=a[d+4>>2],s=A+132|0,a[s>>2]=a[d>>2],a[s+4>>2]=Q,d=r+164|0,Q=a[d+4>>2],s=A+212|0,a[s>>2]=a[d>>2],a[s+4>>2]=Q,r=r+172|0,d=a[r+4>>2],s=A+220|0,a[s>>2]=a[r>>2],a[s+4>>2]=d}else{if(i=3,3!=(0|r))break o;n=o[A+332|0]}if(4&n)break a;i=i+-1|0,a[A>>2]=i,r=(i<<4)+A|0,d=r+12|0,Q=a[d+4>>2],s=t+8|0,a[s>>2]=a[d>>2],a[s+4>>2]=Q,s=r+4|0,d=a[s+4>>2],a[t>>2]=a[s>>2],a[t+4>>2]=d,s=r+92|0,d=a[s+4>>2],t=v+8|0,a[t>>2]=a[s>>2],a[t+4>>2]=d,t=r+84|0,s=a[t+4>>2],a[v>>2]=a[t>>2],a[v+4>>2]=s,t=r+164|0,v=a[t+4>>2],a[m>>2]=a[t>>2],a[m+4>>2]=v,r=r+172|0,v=a[r+4>>2],t=m+8|0,a[t>>2]=a[r>>2],a[t+4>>2]=v;break a}if(i=2,(0|r)<2)break n;n=o[A+332|0]}if(2&n)break t;i=i+-1|0,a[A>>2]=i,r=(i<<4)+A|0,v=r+12|0,m=a[v+4>>2],t=c+8|0,a[t>>2]=a[v>>2],a[t+4>>2]=m,t=r+4|0,v=a[t+4>>2],a[c>>2]=a[t>>2],a[c+4>>2]=v,t=r+92|0,v=a[t+4>>2],c=b+8|0,a[c>>2]=a[t>>2],a[c+4>>2]=v,c=r+84|0,t=a[c+4>>2],a[b>>2]=a[c>>2],a[b+4>>2]=t,c=r+164|0,t=a[c+4>>2],a[h>>2]=a[c>>2],a[h+4>>2]=t,r=r+172|0,t=a[r+4>>2],c=h+8|0,a[c>>2]=a[r>>2],a[c+4>>2]=t;break t}if(i=1,1!=(0|r))break f;n=o[A+332|0]}1&n||(i=i+-1|0,a[A>>2]=i,i=(i<<4)+A|0,n=i+12|0,c=a[n+4>>2],r=u+8|0,a[r>>2]=a[n>>2],a[r+4>>2]=c,r=i+4|0,n=a[r+4>>2],a[u>>2]=a[r>>2],a[u+4>>2]=n,u=i+92|0,c=a[u+4>>2],r=A+84|0,n=r+8|0,a[n>>2]=a[u>>2],a[n+4>>2]=c,n=i+84|0,u=a[n+4>>2],a[r>>2]=a[n>>2],a[r+4>>2]=u,u=i+164|0,c=a[u+4>>2],r=A+164|0,a[r>>2]=a[u>>2],a[r+4>>2]=c,i=i+172|0,n=a[i+4>>2],r=r+8|0,a[r>>2]=a[i>>2],a[r+4>>2]=n)}if(i=0,C[D>>2]>=_(0)^1|k>=_(0)^1|l>=_(0)^1)break e;i=C[A+348>>2]>=_(0);break e;case 3:if(r=e+8|0,a[r>>2]=0,a[r+4>>2]=0,a[e>>2]=0,a[e+4>>2]=0,u=A+4|0,c=A+20|0,t=A+36|0,b=A+52|0,function(A,e,r,i,t,n){var c=_(0),b=0,l=_(0),u=_(0),s=_(0),k=_(0),v=0,d=0,g=_(0),B=_(0),m=_(0),R=_(0),Q=0,h=_(0),G=_(0),y=0,p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=0,I=0,J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0);return b=Y-48|0,Y=b,v=a[A+4>>2],a[n>>2]=a[A>>2],a[n+4>>2]=v,v=A+8|0,d=a[v+4>>2],v=a[v>>2],f[n+16|0]=15|o[n+16|0],y=n+8|0,a[y>>2]=v,a[y+4>>2]=d,f[b+24|0]=0,v=-1,d=-1,J=C[t>>2],k=C[e>>2],s=_(J-k),g=C[r+4>>2],c=C[e+4>>2],m=_(g-c),x=C[i+8>>2],u=C[e+8>>2],l=_(x-u),p=C[r+8>>2],R=_(p-u),U=C[i+4>>2],h=_(U-c),F=_(_(m*l)-_(R*h)),M=C[t+4>>2],G=_(M-c),S=C[i>>2],W=_(S-k),w=C[r>>2],D=_(w-k),E=_(_(R*W)-_(D*l)),Z=_(_(D*h)-_(m*W)),X=C[t+8>>2],V=_(X-u),B=_(_(_(s*F)+_(G*E))+_(Z*V)),_(B*B)<_(9.99999905104687e-9)||(d=_(B*_(_(_(F*_(C[A>>2]-k))+_(E*_(C[A+4>>2]-c)))+_(Z*_(C[A+8>>2]-u))))<_(0)),F=_(_(W*G)-_(h*s)),E=_(_(h*V)-_(l*G)),Z=_(_(l*s)-_(W*V)),B=_(_(R*F)+_(_(D*E)+_(m*Z))),_(B*B)<_(9.99999905104687e-9)||(v=_(B*_(_(_(E*_(C[A>>2]-k))+_(Z*_(C[A+4>>2]-c)))+_(F*_(C[A+8>>2]-u))))<_(0)),y=-1,I=-1,B=l,l=_(_(m*s)-_(D*G)),m=_(_(R*G)-_(m*V)),R=_(_(D*V)-_(R*s)),s=_(_(B*l)+_(_(W*m)+_(h*R))),_(s*s)<_(9.99999905104687e-9)||(I=_(s*_(_(_(m*_(C[A>>2]-k))+_(R*_(C[A+4>>2]-c)))+_(l*_(C[A+8>>2]-u))))<_(0)),h=_(u-p),u=_(U-g),s=_(J-w),m=_(S-w),l=_(M-g),R=_(_(u*s)-_(m*l)),G=_(k-w),k=_(x-p),B=u,u=_(X-p),l=_(_(k*l)-_(B*u)),B=_(c-g),c=_(_(m*u)-_(k*s)),k=_(_(h*R)+_(_(G*l)+_(B*c))),_(k*k)<_(9.99999905104687e-9)||(y=_(k*_(_(_(l*_(C[A>>2]-w))+_(c*_(C[A+4>>2]-g)))+_(R*_(C[A+8>>2]-p))))<_(0)),N=d|v|I|y,(0|N)<=-1?(f[n+36|0]=1,Q=0):(Q=0,N&&(l=_(3.4028234663852886e38),d&&(Ir(A,e,r,i,b+8|0),k=C[b+8>>2],c=_(k-C[A>>2]),l=_(c*c),c=C[b+12>>2],u=_(c-C[A+4>>2]),l=_(l+_(u*u)),u=C[b+16>>2],s=_(u-C[A+8>>2]),s=_(l+_(s*s)),l=_(3.4028234663852886e38),s<_(3.4028234663852886e38)&&(a[n+12>>2]=a[b+20>>2],C[n+8>>2]=u,C[n+4>>2]=c,C[n>>2]=k,d=a[b+32>>2],a[n+20>>2]=a[b+28>>2],a[n+24>>2]=d,a[n+32>>2]=0,a[n+28>>2]=a[b+36>>2],d=o[b+24|0],f[n+16|0]=1&d|240&o[n+16|0]|2&d|4&d,l=s)),k=l,v&&(Ir(A,e,i,t,b+8|0),u=C[b+8>>2],c=_(u-C[A>>2]),l=_(c*c),s=C[b+12>>2],c=_(s-C[A+4>>2]),l=_(l+_(c*c)),g=C[b+16>>2],c=_(g-C[A+8>>2]),c=_(l+_(c*c)),c<k&&(a[n+12>>2]=a[b+20>>2],C[n+8>>2]=g,C[n+4>>2]=s,C[n>>2]=u,a[n+20>>2]=a[b+28>>2],a[n+24>>2]=0,v=b+32|0,d=a[v+4>>2],N=n+28|0,a[N>>2]=a[v>>2],a[N+4>>2]=d,v=o[b+24|0],d=v<<1,f[n+16|0]=8&d|4&d|1&v|240&o[n+16|0],k=c)),I&&(Ir(A,e,t,r,b+8|0),u=C[b+8>>2],c=_(u-C[A>>2]),l=_(c*c),s=C[b+12>>2],c=_(s-C[A+4>>2]),l=_(l+_(c*c)),g=C[b+16>>2],c=_(g-C[A+8>>2]),c=_(l+_(c*c)),c<k&&(a[n+12>>2]=a[b+20>>2],C[n+8>>2]=g,C[n+4>>2]=s,C[n>>2]=u,a[n+20>>2]=a[b+28>>2],a[n+28>>2]=0,a[n+32>>2]=a[b+32>>2],a[n+24>>2]=a[b+36>>2],e=o[b+24|0],f[n+16|0]=1&e|240&o[n+16|0]|e>>>1&2|e<<2&8,k=c)),Q=1,y&&(Ir(A,r,t,i,b+8|0),c=C[b+8>>2],u=_(c-C[A>>2]),l=_(u*u),u=C[b+12>>2],s=_(u-C[A+4>>2]),l=_(l+_(s*s)),s=C[b+16>>2],g=_(s-C[A+8>>2]),Q=1,_(l+_(g*g))<k&&(a[n+12>>2]=a[b+20>>2],C[n+8>>2]=s,C[n+4>>2]=u,C[n>>2]=c,a[n+20>>2]=0,a[n+24>>2]=a[b+28>>2],a[n+32>>2]=a[b+32>>2],a[n+28>>2]=a[b+36>>2],A=o[b+24|0],f[n+16|0]=4&A|240&o[n+16|0]|A<<1&2|A<<2&8,Q=1)))),A=Q,Y=b+48|0,A}(e,u,c,t,b,i)){a[A+256>>2]=0,l=C[A+336>>2],g=C[A+340>>2],B=C[A+344>>2],k=C[A+348>>2],R=_(_(_(_(l*C[A+92>>2])+_(g*C[A+108>>2]))+_(B*C[A+124>>2]))+_(k*C[A+140>>2])),C[A+252>>2]=R,G=_(_(_(_(l*C[A+88>>2])+_(g*C[A+104>>2]))+_(B*C[A+120>>2]))+_(k*C[A+136>>2])),C[A+248>>2]=G,v=A+100|0,h=A+116|0,m=A+132|0,y=_(_(_(_(l*C[A+84>>2])+_(g*C[v>>2]))+_(B*C[h>>2]))+_(k*C[m>>2])),C[A+244>>2]=y,a[A+288>>2]=0,a[A+272>>2]=0,s=A+180|0,d=A+196|0,Q=A+212|0,F=_(_(_(_(l*C[A+164>>2])+_(g*C[s>>2]))+_(B*C[d>>2]))+_(k*C[Q>>2])),C[A+260>>2]=F,W=_(_(_(_(l*C[A+168>>2])+_(g*C[A+184>>2]))+_(B*C[A+200>>2]))+_(k*C[A+216>>2])),C[A+264>>2]=W,l=_(_(_(_(l*C[A+172>>2])+_(g*C[A+188>>2]))+_(B*C[A+204>>2]))+_(k*C[A+220>>2])),C[A+268>>2]=l,C[A+276>>2]=y-F,C[A+280>>2]=G-W,C[A+284>>2]=R-l;f:{t:{n:{a:{o:{r=a[A>>2];c:if((0|r)>=4){if(n=o[A+332|0],8&n){i=r;break c}i=r+-1|0,a[A>>2]=i,r=(i<<4)+A|0,w=r+12|0,U=a[w+4>>2],p=b+8|0,a[p>>2]=a[w>>2],a[p+4>>2]=U,p=r+4|0,w=a[p+4>>2],a[b>>2]=a[p>>2],a[b+4>>2]=w,p=r+92|0,w=a[p+4>>2],b=m+8|0,a[b>>2]=a[p>>2],a[b+4>>2]=w,b=r+84|0,p=a[b+4>>2],a[m>>2]=a[b>>2],a[m+4>>2]=p,b=r+164|0,m=a[b+4>>2],a[Q>>2]=a[b>>2],a[Q+4>>2]=m,r=r+172|0,m=a[r+4>>2],b=Q+8|0,a[b>>2]=a[r>>2],a[b+4>>2]=m}else{if(i=3,3!=(0|r))break o;n=o[A+332|0]}if(4&n)break a;i=i+-1|0,a[A>>2]=i,r=(i<<4)+A|0,m=r+12|0,Q=a[m+4>>2],b=t+8|0,a[b>>2]=a[m>>2],a[b+4>>2]=Q,b=r+4|0,m=a[b+4>>2],a[t>>2]=a[b>>2],a[t+4>>2]=m,b=r+92|0,m=a[b+4>>2],t=h+8|0,a[t>>2]=a[b>>2],a[t+4>>2]=m,t=r+84|0,b=a[t+4>>2],a[h>>2]=a[t>>2],a[h+4>>2]=b,t=r+164|0,b=a[t+4>>2],a[d>>2]=a[t>>2],a[d+4>>2]=b,r=r+172|0,b=a[r+4>>2],t=d+8|0,a[t>>2]=a[r>>2],a[t+4>>2]=b;break a}if(i=2,(0|r)<2)break n;n=o[A+332|0]}if(2&n)break t;i=i+-1|0,a[A>>2]=i,r=(i<<4)+A|0,b=r+12|0,h=a[b+4>>2],t=c+8|0,a[t>>2]=a[b>>2],a[t+4>>2]=h,t=r+4|0,b=a[t+4>>2],a[c>>2]=a[t>>2],a[c+4>>2]=b,t=r+92|0,b=a[t+4>>2],c=v+8|0,a[c>>2]=a[t>>2],a[c+4>>2]=b,c=r+84|0,t=a[c+4>>2],a[v>>2]=a[c>>2],a[v+4>>2]=t,c=r+164|0,t=a[c+4>>2],a[s>>2]=a[c>>2],a[s+4>>2]=t,r=r+172|0,t=a[r+4>>2],c=s+8|0,a[c>>2]=a[r>>2],a[c+4>>2]=t;break t}if(i=1,1!=(0|r))break f;n=o[A+332|0]}1&n||(i=i+-1|0,a[A>>2]=i,i=(i<<4)+A|0,n=i+12|0,c=a[n+4>>2],r=u+8|0,a[r>>2]=a[n>>2],a[r+4>>2]=c,r=i+4|0,n=a[r+4>>2],a[u>>2]=a[r>>2],a[u+4>>2]=n,u=i+92|0,c=a[u+4>>2],r=A+84|0,n=r+8|0,a[n>>2]=a[u>>2],a[n+4>>2]=c,n=i+84|0,u=a[n+4>>2],a[r>>2]=a[n>>2],a[r+4>>2]=u,u=i+164|0,c=a[u+4>>2],r=A+164|0,a[r>>2]=a[u>>2],a[r+4>>2]=c,i=i+172|0,n=a[i+4>>2],r=r+8|0,a[r>>2]=a[i>>2],a[r+4>>2]=n)}if(i=0,C[D>>2]>=_(0)^1|C[A+340>>2]>=_(0)^1|C[A+344>>2]>=_(0)^1)break e;i=k>=_(0);break e}if(!o[A+352|0])break i;break;case 0:break r}i=0;break e}a[A+276>>2]=0,a[A+280>>2]=0,i=1,f[A+312|0]=1,A=A+284|0,a[A>>2]=0,a[A+4>>2]=0;break A}i=a[A+168>>2],a[A+260>>2]=a[A+164>>2],a[A+264>>2]=i,i=a[A+88>>2],a[A+244>>2]=a[A+84>>2],a[A+248>>2]=i,u=A+172|0,c=a[u+4>>2],n=A+268|0,i=n,a[i>>2]=a[u>>2],a[i+4>>2]=c,u=A+92|0,c=a[u+4>>2],i=A+252|0,a[i>>2]=a[u>>2],a[i+4>>2]=c,f[A+352|0]=0,a[A+288>>2]=0,C[A+280>>2]=C[A+248>>2]-C[A+264>>2],C[A+276>>2]=C[A+244>>2]-C[A+260>>2],C[A+284>>2]=C[i>>2]-C[n>>2],i=A+344|0,a[i>>2]=0,a[i+4>>2]=0,a[A+336>>2]=1065353216,a[A+340>>2]=0,f[A+332|0]=r,i=1}f[A+312|0]=i}else i=o[A+312|0];return Y=e+16|0,0!=(255&i)}function Ir(A,e,r,i,t){var n,c,b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),Y=_(0),V=_(0);n=-16&o[t+16|0],f[t+16|0]=n,Z=C[i>>2],d=C[e>>2],Q=_(Z-d),v=C[A>>2],b=_(v-d),Y=C[i+4>>2],g=C[e+4>>2],h=_(Y-g),s=C[A+4>>2],l=_(s-g),V=C[i+8>>2],B=C[e+8>>2],G=_(V-B),m=C[A+8>>2],u=_(m-B),k=_(_(_(Q*b)+_(h*l))+_(G*u)),c=t,W=C[r>>2],y=_(W-d),w=C[r+4>>2],p=_(w-g),D=C[r+8>>2],F=_(D-B),l=_(_(_(y*b)+_(p*l))+_(F*u)),l<=_(0)^1|k<=_(0)^1?(b=_(v-W),u=_(s-w),R=_(m-D),E=_(_(_(Q*b)+_(h*u))+_(G*R)),u=_(_(_(y*b)+_(p*u))+_(F*R)),u>=_(0)^1|E<=u^1?(R=_(_(l*E)-_(u*k)),u<=_(0)^1|l>=_(0)^1||(b=_(0),!(R<=_(0)))?(b=_(v-Z),s=_(s-Y),m=_(m-V),v=_(_(_(y*b)+_(p*s))+_(F*m)),b=_(_(_(Q*b)+_(h*s))+_(G*m)),b>=_(0)^1|v<=b^1?(s=_(_(v*k)-_(l*b)),b<=_(0)^1|k>=_(0)^1||(l=_(0),!(s<=_(0)))?(k=_(_(u*b)-_(v*E)),k<=_(0)&&(l=_(E-u),l>=_(0)&&(b=_(v-b),b>=_(0)))?(a[t+12>>2]=0,f[t+16|0]=6|n,b=_(l/_(l+b)),C[t+8>>2]=D+_(_(V-D)*b),C[t+4>>2]=w+_(_(Y-w)*b),C[t>>2]=W+_(_(Z-W)*b),l=_(_(1)-b),u=_(0)):(a[t+12>>2]=0,f[t+16|0]=7|n,l=_(_(1)/_(R+_(k+s))),b=_(R*l),l=_(s*l),C[t+8>>2]=_(G*b)+_(B+_(F*l)),C[t+4>>2]=_(h*b)+_(g+_(p*l)),C[t>>2]=_(Q*b)+_(d+_(y*l)),u=_(_(_(1)-l)-b))):(a[t+12>>2]=0,f[t+16|0]=5|n,b=_(k/_(k-b)),C[t+8>>2]=B+_(G*b),C[t+4>>2]=g+_(h*b),C[t>>2]=d+_(Q*b),u=_(_(1)-b))):(A=a[i+4>>2],a[t>>2]=a[i>>2],a[t+4>>2]=A,A=i+8|0,e=a[A+4>>2],r=t+8|0,a[r>>2]=a[A>>2],a[r+4>>2]=e,f[t+16|0]=4|n,b=_(1),l=_(0),u=_(0))):(a[t+12>>2]=0,f[t+16|0]=3|n,l=_(l/_(l-u)),C[t+8>>2]=B+_(F*l),C[t+4>>2]=g+_(p*l),C[t>>2]=d+_(y*l),u=_(_(1)-l))):(A=a[r+4>>2],a[t>>2]=a[r>>2],a[t+4>>2]=A,A=r+8|0,e=a[A+4>>2],r=t+8|0,a[r>>2]=a[A>>2],a[r+4>>2]=e,f[t+16|0]=2|n,l=_(1),b=_(0),u=_(0))):(A=a[e+4>>2],a[t>>2]=a[e>>2],a[t+4>>2]=A,A=e+8|0,e=a[A+4>>2],r=t+8|0,a[r>>2]=a[A>>2],a[r+4>>2]=e,f[t+16|0]=1|n,l=_(0),b=_(0),u=_(1)),C[c+20>>2]=u,a[t+32>>2]=0,C[t+28>>2]=b,C[t+24>>2]=l}function Jr(A,e){var r,i,f,t=0;return i=Nr(A),r=A+284|0,f=a[r+4>>2],t=e+8|0,a[t>>2]=a[r>>2],a[t+4>>2]=f,t=a[A+280>>2],a[e>>2]=a[A+276>>2],a[e+4>>2]=t,i}function xr(A,e){var r=0,i=_(0),f=0,t=0,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0);t=a[A>>2],f=0;A:if(!((0|t)<1)){for(r=A+8|0,o=C[A+308>>2],c=C[e+8>>2],b=C[e+4>>2],l=C[e>>2];;){if(i=_(l-C[r+-4>>2]),n=_(i*i),i=_(b-C[r>>2]),n=_(n+_(i*i)),i=_(c-C[r+4>>2]),f=1,_(n+_(i*i))<=o)break A;if(r=r+16|0,t=t+-1|0,!t)break}f=0}return r=f,C[e+12>>2]!=C[A+304>>2]|C[e+8>>2]!=C[A+300>>2]|C[e+4>>2]!=C[A+296>>2]|C[e>>2]!=C[A+292>>2]||(r=1),r}function Ur(A,e,r){var i=0,f=0;Nr(A),i=a[A+248>>2],a[e>>2]=a[A+244>>2],a[e+4>>2]=i,i=A+252|0,f=a[i+4>>2],e=e+8|0,a[e>>2]=a[i>>2],a[e+4>>2]=f,i=A+268|0,f=a[i+4>>2],e=r+8|0,a[e>>2]=a[i>>2],a[e+4>>2]=f,e=a[A+264>>2],a[r>>2]=a[A+260>>2],a[r+4>>2]=e}function Mr(A,e,r,i,t){var n,o=_(0),c=_(0);return a[A>>2]=14908,a[A+32>>2]=r,a[A+28>>2]=e,a[A+24>>2]=i,a[A+20>>2]=t,a[A+4>>2]=0,a[A+8>>2]=1065353216,i=A+12|0,a[i>>2]=0,a[i+4>>2]=0,a[A+36>>2]=a[e+4>>2],a[A+40>>2]=a[r+4>>2],n=A,c=_(Qt[a[a[e>>2]+48>>2]](e)),C[n+44>>2]=c,o=_(Qt[a[a[r>>2]+48>>2]](r)),a[A+72>>2]=1,a[A+76>>2]=1,a[A+60>>2]=-1,f[A+52|0]=0,C[A+48>>2]=o,A}function Sr(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,function(A,e,r,i){var f=0,t=0,n=_(0),c=_(0),b=0,l=_(0),u=_(0),s=_(0),k=0,v=0,d=_(0),g=_(0),B=_(0),m=_(0),R=0,Q=_(0),h=_(0),G=0,p=_(0),F=_(0),W=_(0),w=_(0),D=0,E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0),q=_(0),$=_(0),AA=_(0),eA=_(0);for(f=Y-272|0,Y=f,a[A+56>>2]=0,k=f+264|0,a[k>>2]=0,a[k+4>>2]=0,a[f+256>>2]=0,a[f+260>>2]=0,t=e+8|0,b=a[t+4>>2],k=f+168|0,a[k>>2]=a[t>>2],a[k+4>>2]=b,t=e+24|0,b=a[t+4>>2],k=f+184|0,a[k>>2]=a[t>>2],a[k+4>>2]=b,t=e+40|0,b=a[t+4>>2],k=f+200|0,a[k>>2]=a[t>>2],a[k+4>>2]=b,b=e+56|0,v=a[b+4>>2],k=f+216|0,t=k,a[t>>2]=a[b>>2],a[t+4>>2]=v,t=a[e+4>>2],a[f+160>>2]=a[e>>2],a[f+164>>2]=t,t=a[e+20>>2],a[f+176>>2]=a[e+16>>2],a[f+180>>2]=t,t=a[e+36>>2],a[f+192>>2]=a[e+32>>2],a[f+196>>2]=t,t=a[e+52>>2],a[f+208>>2]=a[e+48>>2],a[f+212>>2]=t,v=e+120|0,R=a[v+4>>2],t=f+152|0,a[t>>2]=a[v>>2],a[t+4>>2]=R,v=e+72|0,R=a[v+4>>2],b=f+104|0,a[b>>2]=a[v>>2],a[b+4>>2]=R,v=e+88|0,R=a[v+4>>2],b=f+120|0,a[b>>2]=a[v>>2],a[b+4>>2]=R,v=e+104|0,R=a[v+4>>2],b=f+136|0,a[b>>2]=a[v>>2],a[b+4>>2]=R,b=a[e+68>>2],a[f+96>>2]=a[e+64>>2],a[f+100>>2]=b,b=e+80|0,v=a[b+4>>2],a[f+112>>2]=a[b>>2],a[f+116>>2]=v,b=e+96|0,v=a[b+4>>2],a[f+128>>2]=a[b>>2],a[f+132>>2]=v,b=e+112|0,v=a[b+4>>2],a[f+144>>2]=a[b>>2],a[f+148>>2]=v,b=f+148|0,n=C[b>>2],v=f+212|0,c=C[v>>2],l=C[f+144>>2],u=C[f+208>>2],g=C[k>>2],s=C[t>>2],F=_(_(g+s)*_(.5)),C[k>>2]=g-F,W=_(_(c+n)*_(.5)),C[v>>2]=c-W,w=_(_(u+l)*_(.5)),C[f+208>>2]=u-w,C[t>>2]=s-F,C[b>>2]=n-W,C[f+144>>2]=l-w,v=0,v=a[a[A+28>>2]+4>>2]+-17>>>0<=1?a[a[A+32>>2]+4>>2]+-17>>>0<2:v,a[A+68>>2]=0,a[A+4>>2]=0,a[A+8>>2]=1065353216,a[A+60>>2]=-1,a[A+64>>2]=0,k=A+12|0,a[k>>2]=0,a[k+4>>2]=0,a[432]=a[432]+1,d=C[A+44>>2],n=C[A+48>>2],R=o[A+52|0],Yr(a[A+24>>2]),g=R?_(0):n,k=A+4|0,c=_(0xde0b6b000000000),b=0;;){a[f+252>>2]=0,u=C[A+4>>2],s=_(-u),n=C[A+8>>2],l=C[A+12>>2],C[f+248>>2]=_(_(C[e+8>>2]*s)-_(C[e+24>>2]*n))-_(C[e+40>>2]*l),C[f+244>>2]=_(_(C[e+4>>2]*s)-_(n*C[e+20>>2]))-_(l*C[e+36>>2]),C[f+240>>2]=_(_(C[e>>2]*s)-_(n*C[e+16>>2]))-_(l*C[e+32>>2]),a[f+236>>2]=0,C[f+232>>2]=_(_(u*C[e+72>>2])+_(n*C[e+88>>2]))+_(l*C[e+104>>2]),C[f+228>>2]=_(_(u*C[e+68>>2])+_(n*C[e+84>>2]))+_(l*C[e+100>>2]),C[f+224>>2]=_(_(u*C[e+64>>2])+_(n*C[e+80>>2]))+_(l*C[e+96>>2]),hA(f+80|0,a[A+28>>2],f+240|0),hA(f- -64|0,a[A+32>>2],f+224|0),a[f+60>>2]=0,n=C[f+80>>2],u=C[f+84>>2],s=C[f+88>>2],l=_(_(_(_(n*C[f+192>>2])+_(u*C[f+196>>2]))+_(s*C[f+200>>2]))+C[f+216>>2]),C[f+56>>2]=l,m=_(_(_(_(n*C[f+176>>2])+_(u*C[f+180>>2]))+_(s*C[f+184>>2]))+C[f+212>>2]),C[f+52>>2]=m,h=_(_(_(_(n*C[f+160>>2])+_(u*C[f+164>>2]))+_(s*C[f+168>>2]))+C[f+208>>2]),C[f+48>>2]=h,a[f+44>>2]=0,n=C[f+64>>2],s=C[f+68>>2],B=C[f+72>>2],u=_(_(_(_(n*C[f+128>>2])+_(s*C[f+132>>2]))+_(B*C[f+136>>2]))+C[f+152>>2]),C[f+40>>2]=u,Q=_(_(_(_(n*C[f+112>>2])+_(s*C[f+116>>2]))+_(B*C[f+120>>2]))+C[f+148>>2]),C[f+36>>2]=Q,n=_(_(_(_(n*C[f+96>>2])+_(s*C[f+100>>2]))+_(B*C[f+104>>2]))+C[f+144>>2]),C[f+32>>2]=n,v&&(a[f+40>>2]=0,a[f+56>>2]=0,u=_(0),l=_(0)),a[f+28>>2]=0,s=_(m-Q),C[f+20>>2]=s,B=C[A+8>>2],n=_(h-n),C[f+16>>2]=n,m=C[A+4>>2],l=_(l-u),C[f+24>>2]=l;A:{if(n=_(_(_(n*m)+_(s*B))+_(l*C[A+12>>2])),n>_(0)^1|_(n*n)>_(c*C[e+128>>2])^1){if(xr(a[A+24>>2],f+16|0)){b=1,a[A+68>>2]=1,t=2;break A}if(n=_(c-n),n<=_(c*_(9.999999974752427e-7))){t=2,a[A+68>>2]=n<=_(0)?2:11,b=1;break A}if(Vr(a[A+24>>2],f+16|0,f+48|0,f+32|0),Jr(a[A+24>>2],f)){if(n=C[f>>2],l=_(n*n),n=C[f+4>>2],l=_(l+_(n*n)),n=C[f+8>>2],n=_(l+_(n*n)),!(n<_(9.999999974752427e-7))){_(c-n)<=_(c*_(1.1920928955078125e-7))?(a[A+68>>2]=12,b=1,t=2):(t=a[f+4>>2],a[k>>2]=a[f>>2],a[k+4>>2]=t,G=f+8|0,D=a[G+4>>2],t=k+8|0,a[t>>2]=a[G>>2],a[t+4>>2]=D,G=a[A+64>>2],a[A+64>>2]=G+1,t=2,(0|G)>1e3||(4==a[a[A+24>>2]>>2]?a[A+68>>2]=13:t=0)),c=n;break A}t=a[f+4>>2],a[k>>2]=a[f>>2],a[k+4>>2]=t,a[A+68>>2]=6,b=f+8|0,G=a[b+4>>2],t=k+8|0,a[t>>2]=a[b>>2],a[t+4>>2]=G}else a[A+68>>2]=3}else a[A+68>>2]=10;b=1,t=2}if(t)break}n=_(0),l=R?_(0):d,u=_(l+g),v=0,t=0,1&b&&(Ur(a[A+24>>2],f+240|0,f+224|0),b=k+8|0,R=a[b+4>>2],t=f+264|0,a[t>>2]=a[b>>2],a[t+4>>2]=R,t=a[k+4>>2],a[f+256>>2]=a[k>>2],a[f+260>>2]=t,n=C[A+4>>2],s=C[A+8>>2],B=C[A+12>>2],d=_(_(_(n*n)+_(s*s))+_(B*B)),d<_(9.999999974752427e-7)&&(a[A+68>>2]=5),b=1,d>_(1.4210854715202004e-14)?(d=_(_(1)/_(y(d))),C[f+256>>2]=d*C[f+256>>2],C[f+260>>2]=d*C[f+260>>2],C[f+264>>2]=d*C[f+264>>2],m=_(y(c)),c=_(l/m),C[f+240>>2]=C[f+240>>2]-_(c*n),C[f+244>>2]=C[f+244>>2]-_(c*s),C[f+248>>2]=C[f+248>>2]-_(c*B),c=_(g/m),C[f+224>>2]=_(c*n)+C[f+224>>2],C[f+228>>2]=_(c*s)+C[f+228>>2],C[f+232>>2]=_(c*B)+C[f+232>>2],t=1,n=_(_(_(1)/d)-u)):(t=0,b=2,n=_(0)),a[A+60>>2]=b),!a[A+68>>2]|!a[A+72>>2]|!a[A+20>>2]||(v=_(u+n)<C[746]),b=1^t;A:{e:{if((b||v)&&(v=a[A+20>>2],v)){if(a[k>>2]=0,a[k+4>>2]=0,R=k+8|0,a[R>>2]=0,a[R+4>>2]=0,a[431]=a[431]+1,Qt[a[a[v>>2]+8>>2]](v,a[A+24>>2],a[A+28>>2],a[A+32>>2],f+160|0,f+96|0,k,f+80|0,f- -64|0,i)){if(B=_(0),c=C[f+64>>2],d=C[f+80>>2],g=_(c-d),m=C[f+68>>2],h=C[f+84>>2],s=_(m-h),Q=C[f+72>>2],p=C[f+88>>2],l=_(Q-p),u=_(_(_(g*g)+_(s*s))+_(l*l)),u<=_(1.4210854715202004e-14)&&(B=C[A+16>>2],g=C[A+4>>2],s=C[A+8>>2],l=C[A+12>>2],u=_(_(_(g*g)+_(s*s))+_(l*l))),u>_(1.4210854715202004e-14)){if(a[A+60>>2]=3,c=_(d-c),d=_(c*c),c=_(h-m),d=_(d+_(c*c)),c=_(p-Q),c=_(-_(y(_(d+_(c*c))))),!((n>c^-1)&(1^b))){t=f+88|0,b=a[t+4>>2],i=f+248|0,a[i>>2]=a[t>>2],a[i+4>>2]=b,t=f+72|0,b=a[t+4>>2],i=f+232|0,a[i>>2]=a[t>>2],a[i+4>>2]=b,i=a[f+84>>2],a[f+240>>2]=a[f+80>>2],a[f+244>>2]=i,i=a[f+68>>2],a[f+224>>2]=a[f+64>>2],a[f+228>>2]=i,C[f+268>>2]=B,n=_(_(1)/_(y(u))),C[f+264>>2]=l*n,C[f+260>>2]=s*n,C[f+256>>2]=g*n,n=c;break e}if(a[A+60>>2]=8,t)break e;break A}if(a[A+60>>2]=9,t)break e;break A}if(s=C[A+4>>2],B=C[A+8>>2],d=C[A+12>>2],_(_(_(s*s)+_(B*B))+_(d*d))>_(0)){if(c=_(C[f+80>>2]-C[f+64>>2]),m=_(c*c),c=_(C[f+84>>2]-C[f+68>>2]),m=_(m+_(c*c)),c=_(C[f+88>>2]-C[f+72>>2]),c=_(_(y(_(m+_(c*c))))-u),!((c<n^-1)&(1^b))){b=f+88|0,v=a[b+4>>2],t=f+248|0,a[t>>2]=a[b>>2],a[t+4>>2]=v,b=f+72|0,v=a[b+4>>2],i=f+232|0,a[i>>2]=a[b>>2],a[i+4>>2]=v,C[t>>2]=C[t>>2]-_(l*d),C[i>>2]=_(g*d)+C[i>>2],i=a[f+68>>2],a[f+224>>2]=a[f+64>>2],a[f+228>>2]=i,i=a[f+84>>2],a[f+240>>2]=a[f+80>>2],a[f+244>>2]=i,C[f+224>>2]=_(g*s)+C[f+224>>2],C[f+228>>2]=_(g*B)+C[f+228>>2],C[f+240>>2]=C[f+240>>2]-_(l*s),C[f+244>>2]=C[f+244>>2]-_(l*B),b=k+8|0,v=a[b+4>>2],i=f+264|0,t=i,a[t>>2]=a[b>>2],a[t+4>>2]=v,t=a[k+4>>2],a[f+256>>2]=a[k>>2],a[f+260>>2]=t,l=C[f+256>>2],u=C[f+260>>2],g=C[i>>2],n=_(_(1)/_(y(_(_(_(l*l)+_(u*u))+_(g*g))))),C[i>>2]=g*n,C[f+260>>2]=u*n,C[f+256>>2]=l*n,a[A+60>>2]=6,n=c;break e}a[A+60>>2]=5}}if(!t)break A}_(n*n)<C[e+128>>2]^1&&!(n<_(0))||(i=a[f+260>>2],a[k>>2]=a[f+256>>2],a[k+4>>2]=i,C[A+56>>2]=n,i=f+264|0,t=a[i+4>>2],k=k+8|0,a[k>>2]=a[i>>2],a[k+4>>2]=t,a[f+92>>2]=0,u=C[f+256>>2],c=C[f+260>>2],l=C[i>>2],C[f+88>>2]=_(_(u*C[e+8>>2])+_(c*C[e+24>>2]))+_(l*C[e+40>>2]),C[f+84>>2]=_(_(u*C[e+4>>2])+_(c*C[e+20>>2]))+_(l*C[e+36>>2]),C[f+80>>2]=_(_(u*C[e>>2])+_(c*C[e+16>>2]))+_(l*C[e+32>>2]),a[f+76>>2]=0,u=_(-u),C[f+72>>2]=_(_(C[e+72>>2]*u)-_(c*C[e+88>>2]))-_(l*C[e+104>>2]),C[f+68>>2]=_(_(C[e+68>>2]*u)-_(c*C[e+84>>2]))-_(l*C[e+100>>2]),C[f+64>>2]=_(_(C[e+64>>2]*u)-_(c*C[e+80>>2]))-_(l*C[e+96>>2]),hA(f+48|0,a[A+28>>2],f+80|0),hA(f+32|0,a[A+32>>2],f- -64|0),c=C[i>>2],p=C[f+216>>2],E=C[f+200>>2],Z=C[f+192>>2],V=C[f+196>>2],N=C[f+152>>2],I=C[f+136>>2],J=C[f+128>>2],x=C[f+132>>2],U=C[f+208>>2],M=C[f+168>>2],S=C[f+160>>2],X=C[f+164>>2],T=C[f+144>>2],j=C[f+104>>2],O=C[f+96>>2],H=C[f+100>>2],z=C[f+212>>2],P=C[f+184>>2],g=C[f+56>>2],K=C[f+176>>2],s=C[f+48>>2],L=C[f+180>>2],B=C[f+52>>2],q=C[f+148>>2],$=C[f+120>>2],d=C[f+40>>2],AA=C[f+112>>2],m=C[f+32>>2],eA=C[f+116>>2],h=C[f+36>>2],u=C[f+256>>2],l=C[f+260>>2],a[f+92>>2]=0,Q=_(-u),C[f+88>>2]=_(_(C[e+8>>2]*Q)-_(l*C[e+24>>2]))-_(c*C[e+40>>2]),C[f+84>>2]=_(_(C[e+4>>2]*Q)-_(l*C[e+20>>2]))-_(c*C[e+36>>2]),C[f+80>>2]=_(_(C[e>>2]*Q)-_(l*C[e+16>>2]))-_(c*C[e+32>>2]),a[f+76>>2]=0,C[f+72>>2]=_(_(u*C[e+72>>2])+_(l*C[e+88>>2]))+_(c*C[e+104>>2]),C[f+68>>2]=_(_(u*C[e+68>>2])+_(l*C[e+84>>2]))+_(c*C[e+100>>2]),C[f+64>>2]=_(_(u*C[e+64>>2])+_(l*C[e+80>>2]))+_(c*C[e+96>>2]),hA(f+48|0,a[A+28>>2],f+80|0),hA(f+32|0,a[A+32>>2],f- -64|0),h=_(_(_(_(_(U+_(_(_(s*S)+_(B*X))+_(g*M)))-_(T+_(_(_(m*O)+_(h*H))+_(d*j))))*Q)-_(l*_(_(z+_(_(_(s*K)+_(B*L))+_(g*P)))-_(q+_(_(_(m*AA)+_(h*eA))+_(d*$))))))-_(c*_(_(p+_(_(_(s*Z)+_(B*V))+_(g*E)))-_(N+_(_(_(m*J)+_(h*x))+_(d*I)))))),c=C[f+48>>2],l=C[f+52>>2],u=C[f+56>>2],g=C[f+32>>2],s=C[f+36>>2],B=C[f+40>>2],d=C[f+256>>2],m=C[f+260>>2],Q=_(_(_(_(_(_(_(c*C[f+160>>2])+_(l*C[f+164>>2]))+_(u*C[f+168>>2]))+C[f+208>>2])-_(_(_(_(g*C[f+96>>2])+_(s*C[f+100>>2]))+_(B*C[f+104>>2]))+C[f+144>>2]))*d)+_(_(_(_(_(_(c*C[f+176>>2])+_(l*C[f+180>>2]))+_(u*C[f+184>>2]))+C[f+212>>2])-_(_(_(_(g*C[f+112>>2])+_(s*C[f+116>>2]))+_(B*C[f+120>>2]))+C[f+148>>2]))*m)),l=_(_(_(_(_(c*C[f+192>>2])+_(l*C[f+196>>2]))+_(u*C[f+200>>2]))+C[f+216>>2])-_(_(_(_(g*C[f+128>>2])+_(s*C[f+132>>2]))+_(B*C[f+136>>2]))+C[f+152>>2])),c=C[i>>2],h>_(Q+_(l*c))&&(a[A+60>>2]=10,C[f+264>>2]=-c,C[f+260>>2]=-m,C[f+256>>2]=-d),a[f+92>>2]=0,C[f+88>>2]=F+C[f+232>>2],C[f+84>>2]=W+C[f+228>>2],C[f+80>>2]=w+C[f+224>>2],Qt[a[a[r>>2]+16>>2]](r,f+256|0,f+80|0,n))}Y=f+272|0}(A,e,r,i)}function Xr(){o[2736]||(a[602]=1062847606,a[603]=0,a[600]=1042701022,a[601]=1056964440,a[598]=1062847606,a[599]=0,a[596]=-1093024784,a[597]=1050556081,a[594]=1062847606,a[595]=0,a[592]=-1093024784,a[593]=-1096927567,a[590]=1062847606,a[591]=0,a[588]=1042701022,a[589]=-1090519208,a[586]=1062847572,a[587]=0,a[584]=1057396286,a[585]=0,a[582]=1057396386,a[583]=0,a[580]=1060121912,a[581]=1056964507,a[578]=1057396420,a[579]=0,a[576]=-1098475836,a[577]=1062148969,a[574]=1057396386,a[575]=0,a[572]=-1084636143,a[573]=0,a[570]=1057396420,a[571]=0,a[568]=-1098475836,a[569]=-1085334679,a[566]=1057396386,a[567]=0,a[564]=1060121912,a[565]=-1090519141,a[562]=-2147483648,a[563]=0,a[560]=1058437413,a[561]=1062149053,a[558]=-2147483648,a[559]=0,a[556]=-2147483648,a[557]=1065353216,a[554]=-2147483648,a[555]=0,a[552]=-1089046235,a[553]=1062149053,a[550]=-2147483648,a[551]=0,a[548]=-1082951543,a[549]=1050556148,a[546]=-2147483648,a[547]=0,a[544]=-1082951543,a[545]=-1096927500,a[542]=0,a[543]=0,a[540]=-1089046235,a[541]=-1085334595,a[538]=0,a[539]=0,a[536]=0,a[537]=-1082130432,a[534]=0,a[535]=0,a[532]=1058437413,a[533]=-1085334595,a[530]=0,a[531]=0,a[528]=1064532105,a[529]=-1096927500,a[526]=0,a[527]=0,a[524]=1064532105,a[525]=1050556148,a[522]=-1090087228,a[523]=0,a[520]=1049007812,a[521]=1062148969,a[518]=-1090087262,a[519]=0,a[516]=-1087361736,a[517]=1056964507,a[514]=-1084636042,a[515]=0,a[512]=-1104782626,a[513]=1056964440,a[510]=-1090087262,a[511]=0,a[508]=-1087361736,a[509]=-1090519141,a[506]=-1084636076,a[507]=0,a[504]=-1090087362,a[505]=-2147483648,a[502]=-1090087262,a[503]=0,a[500]=1062847505,a[501]=-2147483648,a[498]=-1084636042,a[499]=0,a[496]=1054458864,a[497]=1050556081,a[494]=-1090087228,a[495]=0,a[492]=1049007812,a[493]=-1085334679,a[490]=-1084636042,a[491]=0,a[488]=-1104782626,a[489]=-1090519208,a[486]=-1084636042,a[487]=0,a[484]=1054458864,a[485]=-1096927567,a[482]=1065353216,a[483]=0,a[480]=-2147483648,a[481]=0,a[478]=1055193471,a[479]=0,a[476]=1063581978,a[477]=0,a[474]=1055193572,a[475]=0,a[472]=1049461434,a[473]=1062847522,a[470]=1055193572,a[471]=0,a[468]=-1086767520,a[469]=1057396202,a[466]=1055193572,a[467]=0,a[464]=-1086767520,a[465]=-1090087446,a[462]=1055193605,a[463]=0,a[460]=1049461434,a[461]=-1084636126,a[458]=-1092290076,a[459]=0,a[456]=1060716128,a[457]=1057396202,a[454]=-1092290043,a[455]=0,a[452]=-1098022214,a[453]=1062847522,a[450]=-1092290177,a[451]=0,a[448]=-1083901670,a[449]=-2147483648,a[446]=-1092290076,a[447]=0,a[444]=-1098022214,a[445]=-1084636126,a[442]=-1092290076,a[443]=0,a[440]=1060716128,a[441]=-1090087446,a[438]=-1082130432,a[439]=0,a[436]=0,a[437]=-2147483648,f[2736]=1)}function Tr(A,e,r,i){var t=0,n=0,c=0,b=0,l=_(0),u=0,s=0,k=0,v=_(0),d=_(0),g=0,B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=0,y=_(0),p=_(0),F=_(0),W=0;A:if(G=a[A+4>>2],!((0|G)<2))for(b=a[A+12>>2],t=(b+(G<<4)|0)-16|0,B=C[t>>2],y=C[r>>2],v=C[t+4>>2],p=C[r+4>>2],d=C[t+8>>2],F=C[r+8>>2],l=_(_(_(_(B*y)+_(v*p))+_(d*F))+i);;){t=(W<<4)+b|0,m=C[t>>2],R=C[t+4>>2],Q=C[t+8>>2],h=_(_(_(_(m*y)+_(R*p))+_(Q*F))+i),g=a[t+12>>2];e:{r:if(l<_(0)){if(h<_(0)){if(t=a[e+4>>2],(0|t)==a[e+8>>2]&&(u=t?t<<1:1,!((0|t)>=(0|u)))){if(u?(s=dA(u<<4),t=a[e+4>>2]):s=0,(0|t)>=1)for(b=0;n=a[e+12>>2]+b|0,k=a[n+4>>2],c=b+s|0,a[c>>2]=a[n>>2],a[c+4>>2]=k,n=n+8|0,k=a[n+4>>2],c=c+8|0,a[c>>2]=a[n>>2],a[c+4>>2]=k,b=b+16|0,t=t+-1|0,t;);t=a[e+12>>2],t&&(o[e+16|0]&&CA(t),a[e+12>>2]=0),a[e+12>>2]=s,f[e+16|0]=1,a[e+8>>2]=u,t=a[e+4>>2]}t=a[e+12>>2]+(t<<4)|0,a[t+12>>2]=g,C[t+8>>2]=Q,C[t+4>>2]=R,C[t>>2]=m;break r}if(l=_(l/_(l-h)),d=_(d+_(_(Q-d)*l)),v=_(v+_(_(R-v)*l)),l=_(B+_(_(m-B)*l)),t=a[e+4>>2],(0|t)==a[e+8>>2]&&(s=t?t<<1:1,!((0|t)>=(0|s)))){if(s?(u=dA(s<<4),t=a[e+4>>2]):u=0,(0|t)>=1)for(b=0;g=a[e+12>>2]+b|0,k=a[g+4>>2],n=b+u|0,a[n>>2]=a[g>>2],a[n+4>>2]=k,g=g+8|0,c=a[g+4>>2],n=n+8|0,a[n>>2]=a[g>>2],a[n+4>>2]=c,b=b+16|0,t=t+-1|0,t;);t=a[e+12>>2],t&&(o[e+16|0]&&CA(t),a[e+12>>2]=0),a[e+12>>2]=u,f[e+16|0]=1,a[e+8>>2]=s,t=a[e+4>>2]}t=a[e+12>>2]+(t<<4)|0,a[t+12>>2]=0,C[t+8>>2]=d,C[t+4>>2]=v,C[t>>2]=l}else{if(!(h<_(0)))break e;if(l=_(l/_(l-h)),d=_(d+_(_(Q-d)*l)),v=_(v+_(_(R-v)*l)),l=_(B+_(_(m-B)*l)),t=a[e+4>>2],(0|t)==a[e+8>>2]&&(u=t?t<<1:1,!((0|t)>=(0|u)))){if(u?(s=dA(u<<4),t=a[e+4>>2]):s=0,(0|t)>=1)for(b=0;n=a[e+12>>2]+b|0,k=a[n+4>>2],c=b+s|0,a[c>>2]=a[n>>2],a[c+4>>2]=k,n=n+8|0,k=a[n+4>>2],c=c+8|0,a[c>>2]=a[n>>2],a[c+4>>2]=k,b=b+16|0,t=t+-1|0,t;);t=a[e+12>>2],t&&(o[e+16|0]&&CA(t),a[e+12>>2]=0),a[e+12>>2]=s,f[e+16|0]=1,a[e+8>>2]=u,t=a[e+4>>2]}if(t=a[e+12>>2]+(t<<4)|0,a[t+12>>2]=0,C[t+8>>2]=d,C[t+4>>2]=v,C[t>>2]=l,t=a[e+4>>2]+1|0,a[e+4>>2]=t,a[e+8>>2]==(0|t)&&(u=t?t<<1:1,!((0|t)>=(0|u)))){if(u?(s=dA(u<<4),t=a[e+4>>2]):s=0,(0|t)>=1)for(b=0;n=a[e+12>>2]+b|0,k=a[n+4>>2],c=b+s|0,a[c>>2]=a[n>>2],a[c+4>>2]=k,n=n+8|0,k=a[n+4>>2],c=c+8|0,a[c>>2]=a[n>>2],a[c+4>>2]=k,b=b+16|0,t=t+-1|0,t;);t=a[e+12>>2],t&&(o[e+16|0]&&CA(t),a[e+12>>2]=0),a[e+12>>2]=s,f[e+16|0]=1,a[e+8>>2]=u,t=a[e+4>>2]}t=a[e+12>>2]+(t<<4)|0,a[t+12>>2]=g,C[t+8>>2]=Q,C[t+4>>2]=R,C[t>>2]=m}a[e+4>>2]=a[e+4>>2]+1}if(W=W+1|0,(0|W)==(0|G))break A;F=C[r+8>>2],p=C[r+4>>2],y=C[r>>2],b=a[A+12>>2],l=h,d=Q,v=R,B=m}}function jr(A,e,r,i,f,t,n){var a=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0);return a=C[i>>2],b=C[i+4>>2],l=C[i+8>>2],s=_(_(_(C[r>>2]*a)+_(C[r+4>>2]*b))+_(C[r+8>>2]*l)),o=_(_(_(a*C[A>>2])+_(b*C[A+16>>2]))+_(l*C[A+32>>2])),c=C[f+80>>2],u=_(o*(o<_(0)?_(-c):c)),o=_(_(_(a*C[A+4>>2])+_(b*C[A+20>>2]))+_(l*C[A+36>>2])),c=C[f+84>>2],u=_(u+_(o*(o<_(0)?_(-c):c))),o=_(_(_(a*C[A+8>>2])+_(b*C[A+24>>2]))+_(l*C[A+40>>2])),c=C[f+88>>2],o=_(u+_(o*(o<_(0)?_(-c):c))),c=C[f+96>>2],u=o>c?o:c,o=_(_(_(a*C[e>>2])+_(b*C[e+16>>2]))+_(l*C[e+32>>2])),c=C[t+80>>2],k=_(o*(o<_(0)?_(-c):c)),o=_(_(_(a*C[e+4>>2])+_(b*C[e+20>>2]))+_(l*C[e+36>>2])),c=C[t+84>>2],a=_(_(_(a*C[e+8>>2])+_(b*C[e+24>>2]))+_(l*C[e+40>>2])),b=C[t+88>>2],a=_(_(k+_(o*(o<_(0)?_(-c):c)))+_(a*(a<_(0)?_(-b):b))),b=C[t+96>>2],a=_(u+(a>b?a:b)),b=_(s+a),a=_(a-s),(b<a?b:a)>n^1}function Or(A,e,r,i,t,n,c,b){var l,u=0,s=0,k=0,v=0,d=0,g=_(0),m=_(0),R=_(0),Q=_(0),h=0,G=_(0),y=_(0),p=_(0),F=_(0),W=0,w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=0,S=0,X=0,T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=0,K=0,L=0,q=_(0),$=_(0),AA=_(0);if(l=Y-32|0,Y=l,u=a[t+4>>2],(0|u)<=-1)for(a[t+8>>2]<=-1&&(s=a[t+12>>2],s&&(o[t+16|0]&&CA(s),a[t+12>>2]=0),f[t+16|0]=1,a[t+8>>2]=0,a[t+12>>2]=0),k=u<<4;v=a[l+20>>2],s=a[t+12>>2]+k|0,a[s>>2]=a[l+16>>2],a[s+4>>2]=v,d=l+24|0,v=a[d+4>>2],s=s+8|0,a[s>>2]=a[d>>2],a[s+4>>2]=v,k=k+16|0,s=u+1|0,d=s>>>0>=u>>>0,u=s,d;);if(s=0,a[t+4>>2]=0,d=a[i+4>>2],a[t+8>>2]<(0|d)){if(d&&(s=dA(d<<4),k=a[t+4>>2],!((0|k)<1)))for(u=0;v=a[t+12>>2]+u|0,S=a[v+4>>2],h=u+s|0,a[h>>2]=a[v>>2],a[h+4>>2]=S,v=v+8|0,M=a[v+4>>2],h=h+8|0,a[h>>2]=a[v>>2],a[h+4>>2]=M,u=u+16|0,k=k+-1|0,k;);u=a[t+12>>2],u&&(o[t+16|0]&&CA(u),a[t+12>>2]=0),a[t+12>>2]=s,f[t+16|0]=1,a[t+8>>2]=d}if(v=a[e+28>>2],!((0|v)<1)){for(u=a[e+36>>2]+20|0,p=C[r+40>>2],w=C[r+36>>2],Q=C[r+24>>2],D=C[r+20>>2],F=C[A+8>>2],E=C[A+4>>2],Z=C[A>>2],V=C[r+32>>2],N=C[r+16>>2],I=C[r+8>>2],J=C[r+4>>2],G=C[r>>2],k=0,R=_(3.4028234663852886e38),d=-1;m=C[u>>2],g=C[u+4>>2],y=C[u+8>>2],m=_(_(_(_(_(_(m*G)+_(g*J))+_(y*I))*Z)+_(_(_(_(m*N)+_(g*D))+_(y*Q))*E))+_(_(_(_(m*V)+_(g*w))+_(y*p))*F)),s=m<R,R=s?m:R,d=s?k:d,u=u+36|0,k=k+1|0,(0|k)<(0|v););if(!((0|d)<0)){if(v=a[e+36>>2]+B(d,36)|0,M=a[v+4>>2],(0|M)<1)s=i;else for(S=v+28|0,P=v+24|0,K=v+20|0,L=v+12|0,u=0;;){if(s=t,d=u+1|0,h=(0|d)==(0|M),W=a[e+16>>2],k=a[L>>2],t=W+(a[k+((h?0:d)<<2)>>2]<<4)|0,x=C[t+8>>2],G=C[t>>2],U=C[t+4>>2],t=W+(a[k+(u<<2)>>2]<<4)|0,R=C[t+8>>2],m=C[t>>2],g=C[t+4>>2],q=C[r+56>>2],$=C[r+48>>2],AA=C[r+52>>2],y=C[r+40>>2],p=C[r+32>>2],w=C[r+36>>2],Q=C[S>>2],D=C[r+8>>2],F=C[K>>2],E=C[r>>2],Z=C[P>>2],V=C[r+4>>2],N=C[r+24>>2],I=C[r+16>>2],J=C[r+20>>2],a[l+28>>2]=0,G=_(m-G),U=_(g-U),x=_(R-x),T=_(_(_(E*G)+_(V*U))+_(D*x)),j=_(_(_(I*F)+_(J*Z))+_(N*Q)),O=_(_(_(G*I)+_(U*J))+_(x*N)),H=_(_(_(E*F)+_(V*Z))+_(D*Q)),z=_(_(T*j)-_(O*H)),C[l+24>>2]=-z,G=_(_(_(G*p)+_(U*w))+_(x*y)),Q=_(_(_(p*F)+_(w*Z))+_(y*Q)),F=_(_(G*H)-_(T*Q)),C[l+20>>2]=-F,Q=_(-_(_(O*Q)-_(G*j))),C[l+16>>2]=Q,t=i,Tr(t,s,l+16|0,_(-_(_(_(_($+_(_(_(m*E)+_(g*V))+_(R*D)))*Q)-_(_(AA+_(_(_(m*I)+_(g*J))+_(R*N)))*F))-_(_(q+_(_(_(m*p)+_(g*w))+_(R*y)))*z)))),u=a[t+4>>2],(0|u)<=-1)for(a[t+8>>2]<=-1&&(i=a[t+12>>2],i&&(o[t+16|0]&&CA(i),a[t+12>>2]=0),f[t+16|0]=1,a[t+8>>2]=0,a[t+12>>2]=0),k=u<<4;X=a[l+4>>2],i=a[t+12>>2]+k|0,a[i>>2]=a[l>>2],a[i+4>>2]=X,W=l+8|0,X=a[W+4>>2],i=i+8|0,a[i>>2]=a[W>>2],a[i+4>>2]=X,k=k+16|0,i=u+1|0,W=i>>>0>=u>>>0,u=i,W;);if(a[t+4>>2]=0,u=d,i=s,h)break}if(i=a[s+4>>2],!((0|i)<1))for(R=C[v+20>>2],m=C[v+24>>2],g=C[v+28>>2],y=_(_(_(R*C[r>>2])+_(m*C[r+4>>2]))+_(g*C[r+8>>2])),p=_(_(_(R*C[r+16>>2])+_(m*C[r+20>>2]))+_(g*C[r+24>>2])),R=_(_(_(R*C[r+32>>2])+_(m*C[r+36>>2]))+_(g*C[r+40>>2])),m=_(C[v+32>>2]-_(_(_(y*C[r+48>>2])+_(p*C[r+52>>2]))+_(R*C[r+56>>2]))),k=0,d=0;e=a[s+12>>2]+k|0,r=e+8|0,g=_(m+_(_(_(y*C[e>>2])+_(p*C[e+4>>2]))+_(R*C[r>>2]))),g=g<=n?n:g,g<=c&&(t=a[r+4>>2],i=l+24|0,a[i>>2]=a[r>>2],a[i+4>>2]=t,r=a[e+4>>2],a[l+16>>2]=a[e>>2],a[l+20>>2]=r,Qt[a[a[b>>2]+16>>2]](b,A,l+16|0,g),i=a[s+4>>2]),k=k+16|0,d=d+1|0,(0|d)<(0|i););}}Y=l+32|0}function Hr(A,e,r,i){return a[A+12>>2]=r,a[A+8>>2]=e,a[A+4>>2]=i,a[A>>2]=15312,A}function zr(A,e,r,i,t,n){A|=0,e|=0,r|=0,i|=0,t|=0,n|=0;var c,l,u=0,s=0,v=_(0),d=_(0),g=0,B=_(0),m=0,R=_(0),Q=_(0),h=_(0),G=0,y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0);c=Y-288|0,Y=c,Yr(a[A+4>>2]),v=C[e+52>>2],d=C[r+52>>2],B=C[i+52>>2],R=C[t+52>>2],u=e+56|0,Q=C[u>>2],h=C[r+56>>2],g=i+56|0,y=C[g>>2],p=C[t+56>>2],F=C[e+48>>2],W=C[r+48>>2],w=C[i+48>>2],D=C[t+48>>2],f[c+264|0]=0,a[c+260>>2]=1566444395,a[c+224>>2]=15364,l=Mr(c+144|0,a[A+8>>2],a[A+12>>2],a[A+4>>2],0),s=e+8|0,m=a[s+4>>2],A=c+16|0,a[A>>2]=a[s>>2],a[A+4>>2]=m,s=e+24|0,m=a[s+4>>2],A=c+32|0,a[A>>2]=a[s>>2],a[A+4>>2]=m,s=e+40|0,m=a[s+4>>2],A=c+48|0,a[A>>2]=a[s>>2],a[A+4>>2]=m,s=a[u+4>>2],A=c- -64|0,a[A>>2]=a[u>>2],a[A+4>>2]=s,u=i+8|0,s=a[u+4>>2],A=c+80|0,a[A>>2]=a[u>>2],a[A+4>>2]=s,a[c+136>>2]=1566444395,A=a[e+4>>2],a[c+8>>2]=a[e>>2],a[c+12>>2]=A,A=a[e+20>>2],a[c+24>>2]=a[e+16>>2],a[c+28>>2]=A,A=a[e+36>>2],a[c+40>>2]=a[e+32>>2],a[c+44>>2]=A,A=a[e+52>>2],a[c+56>>2]=a[e+48>>2],a[c+60>>2]=A,A=a[i+4>>2],a[c+72>>2]=a[i>>2],a[c+76>>2]=A,u=i+24|0,s=a[u+4>>2],A=c+96|0,a[A>>2]=a[u>>2],a[A+4>>2]=s,u=a[i+20>>2],A=c+88|0,a[A>>2]=a[i+16>>2],a[A+4>>2]=u,u=i+40|0,s=a[u+4>>2],A=c+112|0,a[A>>2]=a[u>>2],a[A+4>>2]=s,u=a[i+36>>2],A=c+104|0,a[A>>2]=a[i+32>>2],a[A+4>>2]=u,u=a[g+4>>2],A=c+128|0,a[A>>2]=a[g>>2],a[A+4>>2]=u,u=a[i+52>>2],A=c+120|0,a[A>>2]=a[i+48>>2],a[A+4>>2]=u,Sr(l,c+8|0,c+224|0,0),u=c+252|0,g=a[u+4>>2],A=c+280|0,a[A>>2]=a[u>>2],a[A+4>>2]=g,A=a[c+248>>2],a[c+272>>2]=a[c+244>>2],a[c+276>>2]=A,u=0;A:if(o[c+264|0]){Q=_(_(h-Q)-_(p-y)),R=_(_(d-v)-_(R-B)),h=_(_(W-F)-_(D-w)),A=a[c+232>>2],s=a[c+236>>2],m=a[c+228>>2],B=C[c+260>>2];e:{if(B>_(.0010000000474974513)){for(g=c+244|0,G=33,d=_(0);;){if(G=G+-1|0,u=0,!G)break A;if(v=_(d-_(B/_(_(Q*(b(0,s),k()))+_(_(R*(b(0,A),k()))+_(h*(b(0,m),k())))))),u=0,v<=d)break A;if(u=0,v<_(0))break A;if(u=0,v>_(1))break A;if(Qt[a[a[n>>2]>>2]](n,v),d=_(_(1)-v),C[c+56>>2]=_(d*C[e+48>>2])+_(v*C[r+48>>2]),C[c+60>>2]=_(d*C[e+52>>2])+_(v*C[r+52>>2]),C[c+64>>2]=_(d*C[e+56>>2])+_(v*C[r+56>>2]),C[c+120>>2]=_(d*C[i+48>>2])+_(v*C[t+48>>2]),C[c+124>>2]=_(d*C[i+52>>2])+_(v*C[t+52>>2]),C[c+128>>2]=_(d*C[i+56>>2])+_(v*C[t+56>>2]),Sr(l,c+8|0,c+224|0,0),u=0,!o[c+264|0])break A;if(B=C[c+260>>2],B<_(0)){C[n+164>>2]=v,A=a[c+232>>2],a[n+132>>2]=a[c+228>>2],a[n+136>>2]=A,e=a[c+240>>2],A=n+140|0,a[A>>2]=a[c+236>>2],a[A+4>>2]=e,A=a[g+4>>2],a[n+148>>2]=a[g>>2],a[n+152>>2]=A,e=g+8|0,r=a[e+4>>2],A=n+156|0,a[A>>2]=a[e>>2],a[A+4>>2]=r;break e}if(u=g+8|0,s=a[u+4>>2],A=c+280|0,a[A>>2]=a[u>>2],a[A+4>>2]=s,A=a[g+4>>2],a[c+272>>2]=a[g>>2],a[c+276>>2]=A,m=a[c+228>>2],A=a[c+232>>2],s=a[c+236>>2],d=v,!(B>_(.0010000000474974513)))break}B=C[c+240>>2]}else v=_(0),B=C[c+240>>2];if(u=0,_(_(Q*(b(0,s),k()))+_(_(R*(b(0,A),k()))+_(h*(b(0,m),k()))))>=_(-C[n+172>>2]))break A;a[n+132>>2]=m,C[n+164>>2]=v,e=a[c+276>>2],a[n+148>>2]=a[c+272>>2],a[n+152>>2]=e,C[n+144>>2]=B,a[n+140>>2]=s,a[n+136>>2]=A,e=c+280|0,r=a[e+4>>2],A=n+156|0,a[A>>2]=a[e>>2],a[A+4>>2]=r}u=1}return Y=c+288|0,0|u}function Pr(A,e,r,i,f,t,n,o,c,b,l){var u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0);o=(o<<2)+b|0,B=C[o>>2],R=_(C[b+48>>2]-C[c+48>>2]),G=C[o+16>>2],p=_(C[b+52>>2]-C[c+52>>2]),F=C[o+32>>2],W=_(C[b+56>>2]-C[c+56>>2]),k=_(_(_(B*R)+_(G*p))+_(F*W)),n=(n<<2)+c|0,Q=C[n>>2],v=C[n+16>>2],g=C[n+32>>2],h=_(_(_(Q*R)+_(v*p))+_(g*W)),d=_(_(_(Q*B)+_(v*G))+_(g*F)),s=_(_(1)-_(d*d)),s!=_(0)&&(s=_(_(h-_(d*k))/s),u=_(-r),s<u||(u=s,u>r&&(u=r))),s=_(_(d*u)-k),k=_(-f);A:{if(s<k){if(f=_(_(d*k)+h),u=_(-r),f<u){s=k;break A}if(!(f>r)){s=k,u=f;break A}f=k}else{if(!(s>f))break A;if(k=_(_(d*f)+h),u=_(-r),k<u){s=f;break A}if(!(k>r)){s=f,u=k;break A}}s=f,u=r}if(k=_(F*s),r=_(k+_(W-_(g*u))),d=_(B*s),f=_(d+_(R-_(Q*u))),h=_(G*s),s=_(h+_(p-_(v*u))),u=_(_(r*r)+_(_(f*f)+_(s*s))),B=_(y(u)),R=_(_(B-i)-t),!(R>l)){A:if(u<=_(1.4210854715202004e-14)){if(_(m(g))>_(.7071067690849304)){a[A>>2]=0,i=_(_(1)/_(y(_(_(v*v)+_(g*g))))),r=_(v*i),C[A+8>>2]=r,u=_(-_(g*i)),C[A+4>>2]=u,i=_(0);break A}a[A+8>>2]=0,r=_(_(1)/_(y(_(_(Q*Q)+_(v*v))))),u=_(Q*r),C[A+4>>2]=u,i=_(-_(v*r)),C[A>>2]=i,r=_(0)}else a[A+12>>2]=0,i=_(_(-1)/B),r=_(r*i),C[A+8>>2]=r,u=_(s*i),C[A+4>>2]=u,i=_(f*i),C[A>>2]=i;f=C[b+48>>2],l=C[b+52>>2],s=C[b+56>>2],a[e+12>>2]=0,C[e+8>>2]=_(k+s)+_(r*t),C[e+4>>2]=_(h+l)+_(u*t),C[e>>2]=_(d+f)+_(i*t)}return R}function Kr(A,e,r,i){i=_(i)}function Lr(A,e){return Qt[a[748]](e),A}function qr(){Qt[a[749]]()}function $r(A,e,r,i){return a[A+12>>2]=r,a[A+8>>2]=e,a[A+4>>2]=i,a[A>>2]=16060,A}function Ai(A,e,r,i,f,t){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0;var n,o,c,b,l,u,s,k,v,d,g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=0,F=0,W=_(0),w=_(0),D=0,E=_(0),Z=_(0),V=_(0),N=0,I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0),q=_(0),$=_(0),AA=_(0),eA=_(0),rA=_(0),iA=_(0),fA=_(0),tA=_(0),nA=_(0),aA=_(0),oA=_(0),cA=0;n=Y-96|0,Y=n,Yr(a[A+4>>2]),p=i+40|0,$=C[p>>2],D=i+36|0,AA=C[D>>2],F=i+24|0,eA=C[F>>2],o=i+20|0,rA=C[o>>2],c=e+20|0,I=C[c>>2],b=e+36|0,J=C[b>>2],l=e+24|0,x=C[l>>2],u=e+52|0,U=C[u>>2],Q=C[r+52>>2],s=i+52|0,M=C[s>>2],h=C[f+52>>2],k=e+40|0,S=C[k>>2],v=e+56|0,X=C[v>>2],g=C[r+56>>2],d=i+56|0,T=C[d>>2],R=C[f+56>>2],iA=C[i+32>>2],fA=C[i+16>>2],tA=C[i+8>>2],nA=C[i+4>>2],aA=C[i>>2],j=C[e>>2],O=C[e+16>>2],H=C[e+32>>2],z=C[e+4>>2],P=C[e+8>>2],K=C[e+48>>2],B=C[r+48>>2],L=C[i+48>>2],m=C[f+48>>2],N=a[A+8>>2],a[n+60>>2]=0,E=_(_(B-K)-_(m-L)),B=_(-E),W=_(_(Q-U)-_(h-M)),w=_(_(g-X)-_(R-T)),C[n+56>>2]=_(_(P*B)-_(x*W))-_(S*w),C[n+52>>2]=_(_(z*B)-_(I*W))-_(J*w),C[n+48>>2]=_(_(j*B)-_(O*W))-_(H*w),Qt[a[a[N>>2]+64>>2]](n+80|0,N,n+48|0),a[n+76>>2]=0,B=C[n+80>>2],Q=C[n+84>>2],h=C[n+88>>2],C[n+72>>2]=_(_(_(B*C[e+32>>2])+_(Q*C[b>>2]))+_(h*C[k>>2]))+C[v>>2],C[n+68>>2]=_(_(_(B*C[e+16>>2])+_(Q*C[c>>2]))+_(h*C[l>>2]))+C[u>>2],C[n+64>>2]=_(_(_(B*C[e>>2])+_(Q*C[e+4>>2]))+_(h*C[e+8>>2]))+C[e+48>>2],N=a[A+12>>2],a[n+28>>2]=0,C[n+24>>2]=_(_(E*C[i+8>>2])+_(W*C[F>>2]))+_(w*C[p>>2]),C[n+20>>2]=_(_(E*C[i+4>>2])+_(W*C[o>>2]))+_(w*C[D>>2]),C[n+16>>2]=_(_(E*C[i>>2])+_(W*C[i+16>>2]))+_(w*C[i+32>>2]),Qt[a[a[N>>2]+64>>2]](n+32|0,N,n+16|0),a[n+60>>2]=0,B=C[n+32>>2],Q=C[n+36>>2],h=C[n+40>>2],m=_(_(_(_(B*C[i+32>>2])+_(Q*C[D>>2]))+_(h*C[p>>2]))+C[d>>2]),C[n+56>>2]=m,R=_(_(_(_(B*C[i>>2])+_(Q*C[i+4>>2]))+_(h*C[i+8>>2]))+C[i+48>>2]),C[n+48>>2]=R,B=_(_(_(_(B*C[i+16>>2])+_(Q*C[o>>2]))+_(h*C[F>>2]))+C[s>>2]),C[n+52>>2]=B,a[n+92>>2]=0,g=_(C[n+68>>2]-B),C[n+84>>2]=g,R=_(C[n+64>>2]-R),C[n+80>>2]=R,m=_(C[n+72>>2]-m),C[n+88>>2]=m,B=_(0),Q=_(0),h=_(0);A:{e:if(_(_(_(R*R)+_(g*g))+_(m*m))>_(9999999747378752e-20))for(p=-33;;){if(D=p+1|0,D>>>0<p>>>0)break e;if(F=a[A+8>>2],p=0,a[n+12>>2]=0,g=_(-C[n+80>>2]),R=C[n+84>>2],m=C[n+88>>2],C[n+8>>2]=_(_(P*g)-_(x*R))-_(S*m),C[n+4>>2]=_(_(z*g)-_(I*R))-_(J*m),C[n>>2]=_(_(j*g)-_(O*R))-_(H*m),Qt[a[a[F>>2]+64>>2]](n+16|0,F,n),a[n+76>>2]=0,g=C[n+16>>2],R=C[n+20>>2],m=C[n+24>>2],C[n+72>>2]=X+_(_(_(H*g)+_(J*R))+_(S*m)),C[n+68>>2]=U+_(_(_(O*g)+_(I*R))+_(x*m)),C[n+64>>2]=K+_(_(_(j*g)+_(z*R))+_(P*m)),F=a[A+12>>2],a[n+12>>2]=0,g=C[n+80>>2],R=C[n+84>>2],m=C[n+88>>2],C[n+8>>2]=_(_(tA*g)+_(eA*R))+_($*m),C[n+4>>2]=_(_(nA*g)+_(rA*R))+_(AA*m),C[n>>2]=_(_(aA*g)+_(fA*R))+_(iA*m),Qt[a[a[F>>2]+64>>2]](n+16|0,F,n),a[n+60>>2]=0,a[n+44>>2]=0,g=C[n+16>>2],R=C[n+20>>2],m=C[n+24>>2],Z=_(T+_(_(_(iA*g)+_(AA*R))+_($*m))),C[n+56>>2]=Z,Z=_(C[n+72>>2]-Z),C[n+40>>2]=Z,V=_(M+_(_(_(fA*g)+_(rA*R))+_(eA*m))),C[n+52>>2]=V,V=_(C[n+68>>2]-V),C[n+36>>2]=V,g=_(L+_(_(_(aA*g)+_(nA*R))+_(tA*m))),C[n+48>>2]=g,q=_(C[n+64>>2]-g),C[n+32>>2]=q,G>_(1))break A;if(g=C[n+80>>2],R=C[n+84>>2],m=C[n+88>>2],oA=_(_(_(q*g)+_(V*R))+_(Z*m)),oA>_(0)){if(B=_(_(_(E*g)+_(W*R))+_(w*m)),B>=_(-1.4210854715202004e-14))break A;a[n+44>>2]=0,C[n+40>>2]=Z,C[n+36>>2]=V,C[n+32>>2]=q,G=_(G-_(oA/B)),B=_(_(1)-G),T=_(_(B*C[i+56>>2])+_(G*C[f+56>>2])),M=_(_(B*C[i+52>>2])+_(G*C[f+52>>2])),L=_(_(B*C[i+48>>2])+_(G*C[f+48>>2])),X=_(_(B*C[e+56>>2])+_(G*C[r+56>>2])),U=_(_(B*C[e+52>>2])+_(G*C[r+52>>2])),K=_(_(B*C[e+48>>2])+_(G*C[r+48>>2])),cA=a[n+92>>2],Q=R,h=m,B=g}if(xr(a[A+4>>2],n+32|0)||Vr(a[A+4>>2],n+32|0,n- -64|0,n+48|0),!Jr(a[A+4>>2],n+80|0))break e;if(p=D,g=C[n+80>>2],m=_(g*g),g=C[n+84>>2],m=_(m+_(g*g)),g=C[n+88>>2],!(_(m+_(g*g))>_(9999999747378752e-20)))break}C[t+164>>2]=G,g=_(_(_(B*B)+_(Q*Q))+_(h*h)),g>=_(1.4210854715202004e-14)?(a[t+144>>2]=cA,m=h,h=_(_(1)/_(y(g))),G=_(m*h),C[t+140>>2]=G,Q=_(Q*h),C[t+136>>2]=Q,B=_(B*h),C[t+132>>2]=B):(a[t+132>>2]=0,a[t+136>>2]=0,e=t+140|0,a[e>>2]=0,a[e+4>>2]=0,G=_(0),Q=_(0),B=_(0)),p=0,_(_(_(E*B)+_(W*Q))+_(w*G))>=_(-C[t+172>>2])||(Ur(a[A+4>>2],n+16|0,n),e=n+8|0,r=a[e+4>>2],A=t+156|0,a[A>>2]=a[e>>2],a[A+4>>2]=r,A=a[n+4>>2],a[t+148>>2]=a[n>>2],a[t+152>>2]=A,p=1)}return Y=n+96|0,0|p}function ei(A,e,r,i,t){var n;vA(A,e),a[A>>2]=16120,a[A+8>>2]=16148,a[A+60>>2]=0,n=t?r:i,a[A+48>>2]=n,r=t?i:r,a[A+44>>2]=r,i=A+56|0,e=a[e>>2],a[i>>2]=e,e=0|Qt[a[a[e>>2]+12>>2]](e,a[r+8>>2],a[n+8>>2]),a[A+72>>2]=e,r=a[i>>2],Qt[a[a[r>>2]+20>>2]](r,e),f[A+76|0]=t}function ri(A,e,r,i,t){var n=0;vA(A,e),f[A+24|0]=1,a[A>>2]=16696,a[A+20>>2]=0,f[A+44|0]=1,n=A+12|0,a[n>>2]=0,a[n+4>>2]=0,a[A+40>>2]=0,f[A- -64|0]=1,n=A+32|0,a[n>>2]=0,a[n+4>>2]=0,a[A+60>>2]=0,f[A+68|0]=t,n=A+52|0,a[n>>2]=0,a[n+4>>2]=0,f[A+76|0]=0,a[A+72>>2]=a[e+4>>2],a[A+80>>2]=a[a[(t?i:r)+4>>2]+72>>2],ii(A,r,i)}function ii(A,e,r){var i,t,n,c,b,l=0,u=0,s=0,k=0;if(i=Y-32|0,Y=i,k=a[A+52>>2],b=o[A+68|0],n=b?r:e,c=a[n+4>>2],t=a[c+20>>2],(0|k)<(0|t)){if(a[A+56>>2]<(0|t)){if(t?(s=dA(t<<2),l=a[A+52>>2]):l=k,(0|l)>=1)for(;a[u+s>>2]=a[a[A+60>>2]+u>>2],u=u+4|0,l=l+-1|0,l;);l=a[A+60>>2],l&&(o[A- -64|0]&&CA(l),a[A+60>>2]=0),a[A+60>>2]=s,a[A+56>>2]=t,f[A- -64|0]=1}for(u=k<<2,l=t-k|0;a[a[A+60>>2]+u>>2]=0,u=u+4|0,l=l+-1|0,l;);}if(a[A+52>>2]=t,(0|t)>=1)for(e=b?e:r,l=64,u=0,s=0;a[c+68>>2]?a[a[A+60>>2]+u>>2]=0:(r=a[a[c+28>>2]+l>>2],a[i+28>>2]=s,a[i+24>>2]=-1,a[i+8>>2]=n,k=a[n+12>>2],a[i+16>>2]=a[n+8>>2],a[i+20>>2]=k,a[i+12>>2]=r,r=a[A+4>>2],r=0|Qt[a[a[r>>2]+8>>2]](r,i+8|0,e,a[A+72>>2],1),a[a[A+60>>2]+u>>2]=r),l=l+80|0,u=u+4|0,s=s+1|0,(0|s)!=(0|t););Y=i+32|0}function fi(A){A|=0;var e=0,r=0,i=0;if(a[A>>2]=16696,i=a[A+52>>2],(0|i)>=1)for(;r=a[a[A+60>>2]+e>>2],r&&(Qt[a[a[r>>2]>>2]](r),r=a[A+4>>2],Qt[a[a[r>>2]+60>>2]](r,a[a[A+60>>2]+e>>2])),e=e+4|0,i=i+-1|0,i;);return e=a[A+60>>2],e&&(o[A- -64|0]&&CA(e),a[A+60>>2]=0),a[A+60>>2]=0,a[A+52>>2]=0,a[A+56>>2]=0,f[A- -64|0]=1,e=a[A+40>>2],e&&(o[A+44|0]&&CA(e),a[A+40>>2]=0),a[A+40>>2]=0,a[A+32>>2]=0,a[A+36>>2]=0,f[A+44|0]=1,e=a[A+20>>2],e&&(o[A+24|0]&&CA(e),a[A+20>>2]=0),a[A+20>>2]=0,a[A+12>>2]=0,a[A+16>>2]=0,f[A+24|0]=1,0|A}function ti(A,e,r,i,t){A|=0,e|=0,r|=0,i|=0,t|=0;var n,c,b,l=0,u=0,s=0,k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=0,y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=0,X=0,T=0,j=0;if(n=Y-176|0,Y=n,G=o[A+68|0],b=G?r:e,c=a[b+4>>2],a[c+72>>2]!=a[A+80>>2]){if(s=a[A+52>>2],(0|s)>=1)for(;u=a[a[A+60>>2]+l>>2],u&&(Qt[a[a[u>>2]>>2]](u),u=a[A+4>>2],Qt[a[a[u>>2]+60>>2]](u,a[a[A+60>>2]+l>>2])),l=l+4|0,s=s+-1|0,s;);ii(A,e,r),a[A+80>>2]=a[c+72>>2]}if(u=a[A+52>>2],u){if(s=a[c+68>>2],a[n+164>>2]=t,a[n+160>>2]=i,G=G?e:r,a[n+152>>2]=G,a[n+148>>2]=b,a[n+144>>2]=16768,a[n+172>>2]=a[A+72>>2],a[n+168>>2]=a[A+60>>2],a[n+156>>2]=a[A+4>>2],l=a[A+32>>2],(0|l)<=-1){for(a[A+36>>2]<=-1&&(e=a[A+40>>2],e&&(o[A+44|0]&&CA(e),a[A+40>>2]=0),a[A+36>>2]=0,a[A+40>>2]=0,f[A+44|0]=1),u=l<<2;a[a[A+40>>2]+u>>2]=0,u=u+4|0,e=l+1|0,r=e>>>0>=l>>>0,l=e,r;);u=a[A+52>>2]}if(a[A+32>>2]=0,(0|u)>=1)for(T=A+28|0,r=0;;){if(e=a[a[A+60>>2]+(r<<2)>>2],e){if(Qt[a[a[e>>2]+16>>2]](e,T),l=a[A+32>>2],(0|l)>=1)for(u=0,e=0;i=a[a[A+40>>2]+u>>2],a[i+780>>2]&&(a[t+4>>2]=i,S=a[i+772>>2],X=a[a[t+8>>2]+8>>2],l=(0|S)==(0|X),j=i,i=a[a[t+12>>2]+8>>2],se(j,(l?S:i)+4|0,(l?i:X)+4|0),a[t+4>>2]=0,l=a[A+32>>2]),u=u+4|0,e=e+1|0,(0|e)<(0|l););if((0|l)<=-1)for(a[A+36>>2]<=-1&&(e=a[A+40>>2],e&&(o[A+44|0]&&CA(e),a[A+40>>2]=0),f[A+44|0]=1,a[A+36>>2]=0,a[A+40>>2]=0),u=l<<2;a[a[A+40>>2]+u>>2]=0,u=u+4|0,e=l+1|0,i=e>>>0>=l>>>0,l=e,i;);a[A+32>>2]=0,u=a[A+52>>2]}if(r=r+1|0,!((0|r)<(0|u)))break}A:if(s)e=a[b+12>>2],y=C[e+52>>2],p=C[e+56>>2],r=a[G+12>>2],F=C[r+52>>2],W=C[r+56>>2],k=C[e+20>>2],v=C[e+36>>2],w=C[r+20>>2],D=C[r+36>>2],E=C[r+24>>2],d=C[e+24>>2],Z=C[r+40>>2],g=C[e+40>>2],V=C[r+32>>2],B=C[e+32>>2],N=C[r>>2],m=C[e>>2],I=C[r+16>>2],R=C[e+16>>2],J=C[e+48>>2],x=C[r+48>>2],Q=C[e+4>>2],U=C[r+4>>2],M=C[r+8>>2],h=C[e+8>>2],a[n+108>>2]=0,a[n+92>>2]=0,a[n+76>>2]=0,C[n+88>>2]=_(_(h*M)+_(d*E))+_(g*Z),C[n+84>>2]=_(_(h*U)+_(d*w))+_(g*D),C[n+72>>2]=_(_(Q*M)+_(k*E))+_(v*Z),C[n+68>>2]=_(_(Q*U)+_(k*w))+_(v*D),J=_(-J),C[n+104>>2]=_(_(_(h*J)-_(d*y))-_(g*p))+_(_(_(h*x)+_(d*F))+_(g*W)),C[n+100>>2]=_(_(_(Q*J)-_(k*y))-_(v*p))+_(_(_(Q*x)+_(k*F))+_(v*W)),a[n+60>>2]=0,C[n+48>>2]=_(_(m*N)+_(R*I))+_(B*V),C[n+80>>2]=_(_(h*N)+_(d*I))+_(g*V),C[n+64>>2]=_(_(Q*N)+_(k*I))+_(v*V),C[n+56>>2]=_(_(m*M)+_(R*E))+_(B*Z),C[n+52>>2]=_(_(m*U)+_(R*w))+_(B*D),C[n+96>>2]=_(_(_(m*J)-_(R*y))-_(B*p))+_(_(_(m*x)+_(R*F))+_(B*W)),e=a[G+4>>2],Qt[a[a[e>>2]+8>>2]](e,n+48|0,n+128|0,n+112|0),k=C[t+32>>2],C[n+128>>2]=C[n+128>>2]-k,C[n+132>>2]=C[n+132>>2]-k,C[n+136>>2]=C[n+136>>2]-k,C[n+112>>2]=k+C[n+112>>2],C[n+116>>2]=k+C[n+116>>2],C[n+120>>2]=k+C[n+120>>2],r=a[n+140>>2],e=n+24|0,a[e>>2]=a[n+136>>2],a[e+4>>2]=r,r=a[n+124>>2],e=n+40|0,a[e>>2]=a[n+120>>2],a[e+4>>2]=r,e=a[n+116>>2],a[n+32>>2]=a[n+112>>2],a[n+36>>2]=e,e=a[n+132>>2],a[n+16>>2]=a[n+128>>2],a[n+20>>2]=e,function(A,e,r,i){var t=0,n=0,c=0,b=0,l=0,u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0);if(A){if(u=C[e+24>>2],s=C[e+20>>2],n=a[r+8>>2],k=C[e+16>>2],v=C[e+8>>2],d=C[e+4>>2],g=C[e>>2],e=a[r+4>>2],(0|e)<=-1)for((0|n)<=-1&&(t=a[r+12>>2],t&&(o[r+16|0]&&CA(t),a[r+12>>2]=0),f[r+16|0]=1,a[r+8>>2]=0,a[r+12>>2]=0,n=0),t=e<<2;a[a[r+12>>2]+t>>2]=0,t=t+4|0,c=e+1|0,b=c>>>0>=e>>>0,e=c,b;);if(c=0,a[r+4>>2]=0,(0|n)<=63){if(n=dA(256),c=a[r+4>>2],(0|c)>=1)for(e=0,t=c;a[e+n>>2]=a[a[r+12>>2]+e>>2],e=e+4|0,t=t+-1|0,t;);e=a[r+12>>2],e&&(o[r+16|0]&&(CA(e),c=a[r+4>>2]),a[r+12>>2]=0),a[r+12>>2]=n,f[r+16|0]=1,a[r+8>>2]=64,n=64}if((0|n)==(0|c))if(l=n<<1,(0|n)>=(0|l))c=n;else{e=0;e:{if(n){if(b=dA(n<<3),c=a[r+4>>2],(0|c)<1)break e}else b=0,c=n;for(t=c;a[e+b>>2]=a[a[r+12>>2]+e>>2],e=e+4|0,t=t+-1|0,t;);}e=a[r+12>>2],e&&(o[r+16|0]&&(CA(e),c=a[r+4>>2]),a[r+12>>2]=0),a[r+12>>2]=b,f[r+16|0]=1,a[r+8>>2]=l}for(e=c+1|0,a[r+4>>2]=e,a[a[r+12>>2]+(c<<2)>>2]=A;;){if(t=e+-1|0,a[r+4>>2]=t,c=a[r+12>>2],b=a[c+(t<<2)>>2],C[b>>2]<=k)if(C[b+16>>2]>=g)if(C[b+4>>2]<=s)if(C[b+20>>2]>=d)if(C[b+8>>2]<=u)if(C[b+24>>2]>=v)if(a[b+40>>2]){if(l=a[b+36>>2],A=a[r+8>>2],(0|t)==(0|A))if(A=t?t<<1:1,(0|e)>(0|A))A=t;else{if(A?(c=dA(A<<2),t=a[r+4>>2]):c=0,(0|t)>=1)for(e=0,n=t;a[e+c>>2]=a[a[r+12>>2]+e>>2],e=e+4|0,n=n+-1|0,n;);e=a[r+12>>2],e&&(o[r+16|0]&&(CA(e),t=a[r+4>>2]),a[r+12>>2]=0),a[r+12>>2]=c,f[r+16|0]=1,a[r+8>>2]=A}if(n=t+1|0,a[r+4>>2]=n,a[(t<<2)+c>>2]=l,l=a[b+40>>2],(0|A)==(0|n))if(c=A?A<<1:1,(0|A)>=(0|c))n=A;else{if(c?(b=dA(c<<2),A=a[r+4>>2]):b=0,n=A,(0|n)>=1)for(e=0,t=n;a[e+b>>2]=a[a[r+12>>2]+e>>2],e=e+4|0,t=t+-1|0,t;);A=a[r+12>>2],A&&(o[r+16|0]&&(CA(A),n=a[r+4>>2]),a[r+12>>2]=0),a[r+12>>2]=b,f[r+16|0]=1,a[r+8>>2]=c}e=n+1|0,a[r+4>>2]=e,a[a[r+12>>2]+(n<<2)>>2]=l}else Qt[a[a[i>>2]+12>>2]](i,b),e=a[r+4>>2];else e=t;else e=t;else e=t;else e=t;else e=t;else e=t;if(!((0|e)>0))break}}}(a[s>>2],n+16|0,A+8|0,n+144|0);else{if((0|u)<1)break A;for(l=0,s=64;ni(n+144|0,a[a[c+28>>2]+s>>2],l),s=s+80|0,l=l+1|0,(0|u)!=(0|l););}if(e=a[A+52>>2],l=a[A+32>>2],(0|l)<=-1)for(a[A+36>>2]<=-1&&(r=a[A+40>>2],r&&(o[A+44|0]&&CA(r),a[A+40>>2]=0),a[A+36>>2]=0,a[A+40>>2]=0,f[A+44|0]=1),u=l<<2;a[a[A+40>>2]+u>>2]=0,u=u+4|0,r=l+1|0,i=r>>>0>=l>>>0,l=r,i;);if(a[A+32>>2]=0,!((0|e)<1))for(t=64,s=0;a[a[A+60>>2]+s>>2]&&(r=a[c+28>>2]+t|0,l=a[r>>2],i=a[b+12>>2],U=C[i+52>>2],M=C[i+56>>2],y=C[r+-16>>2],p=C[r+-12>>2],F=C[r+-8>>2],k=C[i+20>>2],v=C[i+24>>2],W=C[r+-64>>2],w=C[r+-48>>2],D=C[r+-32>>2],E=C[r+-60>>2],Z=C[r+-44>>2],V=C[r+-28>>2],N=C[r+-56>>2],d=C[i+36>>2],I=C[r+-40>>2],g=C[i+40>>2],x=C[r+-24>>2],J=C[i+48>>2],B=C[i+8>>2],m=C[i>>2],R=C[i+4>>2],Q=C[i+16>>2],h=C[i+32>>2],u=0,a[n+108>>2]=0,a[n+92>>2]=0,a[n+76>>2]=0,a[n+60>>2]=0,C[n+88>>2]=_(_(h*N)+_(d*I))+_(g*x),C[n+84>>2]=_(_(h*E)+_(d*Z))+_(g*V),C[n+80>>2]=_(_(h*W)+_(d*w))+_(g*D),C[n+72>>2]=_(_(Q*N)+_(k*I))+_(v*x),C[n+68>>2]=_(_(Q*E)+_(k*Z))+_(v*V),C[n+64>>2]=_(_(Q*W)+_(k*w))+_(v*D),C[n+56>>2]=_(_(m*N)+_(R*I))+_(B*x),C[n+52>>2]=_(_(m*E)+_(R*Z))+_(B*V),C[n+48>>2]=_(_(m*W)+_(R*w))+_(B*D),C[n+104>>2]=M+_(_(_(h*y)+_(d*p))+_(g*F)),C[n+100>>2]=U+_(_(_(Q*y)+_(k*p))+_(v*F)),C[n+96>>2]=J+_(_(_(m*y)+_(R*p))+_(B*F)),Qt[a[a[l>>2]+8>>2]](l,n+48|0,n+16|0,n+128|0),r=a[G+4>>2],Qt[a[a[r>>2]+8>>2]](r,a[G+12>>2],n+112|0,n),l=0,C[n+16>>2]>C[n>>2]||(l=0,C[n+128>>2]<C[n+112>>2]||(l=1)),u=C[n+136>>2]<C[n+120>>2]|C[n+24>>2]>C[n+8>>2]?u:l,(1^u||C[n+132>>2]<C[n+116>>2]|C[n+20>>2]>C[n+4>>2])&&(r=a[a[A+60>>2]+s>>2],Qt[a[a[r>>2]>>2]](r),r=a[A+4>>2],Qt[a[a[r>>2]+60>>2]](r,a[a[A+60>>2]+s>>2]),a[a[A+60>>2]+s>>2]=0)),t=t+80|0,s=s+4|0,e=e+-1|0,e;);}Y=n+176|0}function ni(A,e,r){var i,f,t=0,n=0,o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0);i=Y-160|0,Y=i,t=a[A+4>>2],n=a[t+12>>2],m=C[n+52>>2],u=C[n+56>>2],o=C[n+24>>2],s=C[n+20>>2],c=C[n+40>>2],b=C[n+36>>2],t=a[a[t+4>>2]+28>>2],D=C[n+48>>2],k=C[n+8>>2],v=C[n>>2],d=C[n+4>>2],g=C[n+16>>2],l=C[n+32>>2],n=0,a[i+156>>2]=0,a[i+140>>2]=0,a[i+124>>2]=0,t=t+B(r,80)|0,R=C[t+8>>2],Q=C[t+24>>2],h=C[t+40>>2],C[i+136>>2]=_(_(l*R)+_(b*Q))+_(c*h),G=C[t+4>>2],y=C[t+20>>2],p=C[t+36>>2],C[i+132>>2]=_(_(l*G)+_(b*y))+_(c*p),C[i+120>>2]=_(_(g*R)+_(s*Q))+_(o*h),C[i+116>>2]=_(_(g*G)+_(s*y))+_(o*p),F=u,u=C[t+48>>2],W=C[t+52>>2],w=C[t+56>>2],C[i+152>>2]=F+_(_(_(l*u)+_(b*W))+_(c*w)),C[i+148>>2]=m+_(_(_(g*u)+_(s*W))+_(o*w)),a[i+108>>2]=0,F=l,l=C[t>>2],m=b,b=C[t+16>>2],E=c,c=C[t+32>>2],C[i+128>>2]=_(_(F*l)+_(m*b))+_(E*c),C[i+112>>2]=_(_(g*l)+_(s*b))+_(o*c),C[i+96>>2]=_(_(v*l)+_(d*b))+_(k*c),C[i+104>>2]=_(_(v*R)+_(d*Q))+_(k*h),C[i+100>>2]=_(_(v*G)+_(d*y))+_(k*p),C[i+144>>2]=D+_(_(_(v*u)+_(d*W))+_(k*w)),Qt[a[a[e>>2]+8>>2]](e,i+96|0,i+80|0,i- -64|0),o=C[a[A+20>>2]+32>>2],C[i+80>>2]=C[i+80>>2]-o,C[i+84>>2]=C[i+84>>2]-o,C[i+88>>2]=C[i+88>>2]-o,C[i+64>>2]=o+C[i+64>>2],C[i+68>>2]=o+C[i+68>>2],C[i+72>>2]=o+C[i+72>>2],t=a[A+8>>2],f=a[t+4>>2],Qt[a[a[f>>2]+8>>2]](f,a[t+12>>2],i+48|0,i+32|0),t=a[689],t&&!Qt[t](a[a[A+8>>2]+4>>2],e)||(n=C[i+64>>2]<C[i+48>>2]|C[i+80>>2]>C[i+32>>2]?n:1,t=0,t=C[i+72>>2]<C[i+56>>2]|C[i+88>>2]>C[i+40>>2]?t:n,C[i+68>>2]<C[i+52>>2]|C[i+84>>2]>C[i+36>>2]|1^t||(a[i+28>>2]=r,a[i+24>>2]=-1,a[i+12>>2]=e,e=a[A+4>>2],a[i+8>>2]=e,a[i+16>>2]=a[e+8>>2],o=C[a[A+20>>2]+32>>2],a[i+20>>2]=i+96,o>_(0)?(e=a[A+12>>2],e=0|Qt[a[a[e>>2]+8>>2]](e,i+8|0,a[A+8>>2],0,2)):(n=r<<2,e=a[n+a[A+24>>2]>>2],e||(e=a[A+12>>2],e=0|Qt[a[a[e>>2]+8>>2]](e,i+8|0,a[A+8>>2],a[A+28>>2],1),a[n+a[A+24>>2]>>2]=e,e=a[n+a[A+24>>2]>>2])),n=a[A+20>>2],t=a[n+8>>2],a[t+8>>2]!=a[a[A+4>>2]+8>>2]?(t=a[n+12>>2],a[n+12>>2]=i+8,Qt[a[a[n>>2]+12>>2]](n,-1,r)):(a[n+8>>2]=i+8,Qt[a[a[n>>2]+8>>2]](n,-1,r)),Qt[a[a[e>>2]+8>>2]](e,i+8|0,a[A+8>>2],a[A+16>>2],a[A+20>>2]),e=a[A+20>>2],a[(a[a[e+8>>2]+8>>2]==a[a[A+4>>2]+8>>2]?8:12)+e>>2]=t)),Y=i+160|0}function ai(A){var e,r,i=0,t=0,n=0,c=0,b=0,l=0,u=0;if(r=a[A+28>>2],e=a[A+12>>2],!((0|r)>=(0|e))){A:if(a[A+32>>2]>=(0|e))n=a[A+36>>2];else{if(e?(n=dA(e<<2),t=a[A+28>>2]):t=r,i=a[A+36>>2],(0|t)>=1)for(c=n,b=i;a[c>>2]=a[b>>2],c=c+4|0,b=b+4|0,t=t+-1|0,t;);else if(!i){a[A+36>>2]=n,a[A+32>>2]=e,f[A+40|0]=1;break A}o[A+40|0]&&CA(i),a[A+36>>2]=n,f[A+40|0]=1,a[A+32>>2]=e}if(t=r<<2,l=e<<2,X(t+n|0,0,l-t|0),a[A+28>>2]=e,u=a[A+48>>2],(0|u)<(0|e)){A:if(a[A+52>>2]>=(0|e))n=a[A+56>>2];else{if(e?(n=dA(l),t=a[A+48>>2]):(n=0,t=u),i=a[A+56>>2],(0|t)>=1)for(c=n,b=i;a[c>>2]=a[b>>2],c=c+4|0,b=b+4|0,t=t+-1|0,t;);else if(!i){a[A+56>>2]=n,a[A+52>>2]=e,f[A+60|0]=1;break A}o[A+60|0]&&CA(i),a[A+56>>2]=n,f[A+60|0]=1,a[A+52>>2]=e}t=u<<2,X(t+n|0,0,l-t|0)}if(a[A+48>>2]=e,(0|e)>=1&&(X(a[A+36>>2],255,l),X(a[A+56>>2],255,l)),!((0|r)<1))for(b=a[A+56>>2],c=a[A+16>>2],n=a[A+36>>2],t=0;i=a[c>>2]|a[c+4>>2]<<16,i=(i<<15^-1)+i|0,i=B(i>>>10^i,9),i^=i>>>6,i=(i<<11^-1)+i|0,i=n+((a[A+12>>2]+-1&(i>>>16^i))<<2)|0,a[b>>2]=a[i>>2],a[i>>2]=t,c=c+12|0,b=b+4|0,t=t+1|0,(0|t)!=(0|r););}}function oi(A){var e=0,r=0,i=0,t=0,n=0,c=0;if(e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=0,a[A+8>>2]=0,a[A+12>>2]=0,f[A+20|0]=1,e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+36>>2]=0,a[A+28>>2]=0,a[A+32>>2]=0,f[A+40|0]=1,e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+56>>2]=0,a[A+48>>2]=0,a[A+52>>2]=0,f[A+60|0]=1,a[A+12>>2]<=1){if(n=dA(24),r=a[A+8>>2],(0|r)>=1)for(e=0;i=a[A+16>>2]+e|0,c=a[i+4>>2],t=e+n|0,a[t>>2]=a[i>>2],a[t+4>>2]=c,a[t+8>>2]=a[i+8>>2],e=e+12|0,r=r+-1|0,r;);e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=n,f[A+20|0]=1,a[A+12>>2]=2}ai(A)}function ci(A){return A|=0,a[A+16>>2]}function bi(A,e,r,i){ri(A,e,r,i,0),f[A+104|0]=1,a[A>>2]=16908,a[A+100>>2]=0,e=A+92|0,a[e>>2]=0,a[e+4>>2]=0,e=dA(64),function(A){var e=0,r=0,i=0,t=0,n=0,c=0;if(a[A>>2]=16844,f[A+20|0]=1,a[A+16>>2]=0,f[A+40|0]=1,r=A+8|0,e=r,a[e>>2]=0,a[e+4>>2]=0,a[A+36>>2]=0,f[A+60|0]=1,e=A+28|0,a[e>>2]=0,a[e+4>>2]=0,a[A+56>>2]=0,e=A+48|0,a[e>>2]=0,a[e+4>>2]=0,e=dA(24),r=a[r>>2],(0|r)>=1)for(;t=a[A+16>>2]+i|0,c=a[t+4>>2],n=e+i|0,a[n>>2]=a[t>>2],a[n+4>>2]=c,a[n+8>>2]=a[t+8>>2],i=i+12|0,r=r+-1|0,r;);i=a[A+16>>2],i&&(o[A+20|0]&&CA(i),a[A+16>>2]=0),a[A+16>>2]=e,f[A+20|0]=1,a[A+12>>2]=2,ai(A)}(e),a[A+84>>2]=e,a[A+108>>2]=a[a[r+4>>2]+72>>2],a[A+112>>2]=a[a[i+4>>2]+72>>2]}function li(A){A|=0;var e=0,r=0,i=0,t=0,n=0;if(a[A>>2]=16908,e=8,r=a[A+84>>2],i=a[r+8>>2],(0|i)>=1){for(;t=a[a[r+16>>2]+e>>2],t&&(Qt[a[a[t>>2]>>2]](t),n=a[A+4>>2],Qt[a[a[n>>2]+60>>2]](n,t)),e=e+12|0,i=i+-1|0,i;);r=a[A+84>>2]}return oi(r),e=a[A+84>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+84>>2]),e=a[A+100>>2],e&&(o[A+104|0]&&CA(e),a[A+100>>2]=0),a[A+100>>2]=0,a[A+92>>2]=0,a[A+96>>2]=0,f[A+104|0]=1,fi(A),0|A}function ui(A,e){A|=0,e|=0;var r=0,i=0,t=0,n=0,c=0;if(i=a[A+12>>2],!(!i|!o[A+8|0])){if(r=a[e+4>>2],(0|r)==a[e+8>>2]&&(n=r?r<<1:1,!((0|r)>=(0|n)))){if(n&&(c=dA(n<<2),r=a[e+4>>2]),(0|r)>=1)for(i=0,t=r;a[i+c>>2]=a[a[e+12>>2]+i>>2],i=i+4|0,t=t+-1|0,t;);t=a[e+12>>2],t&&(o[e+16|0]&&(CA(t),r=a[e+4>>2]),a[e+12>>2]=0),a[e+12>>2]=c,f[e+16|0]=1,a[e+8>>2]=n,i=a[A+12>>2]}a[e+4>>2]=r+1,a[a[e+12>>2]+(r<<2)>>2]=i}}function si(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0);i=Y-144|0,Y=i,a[i+108>>2]=0,t=C[e+80>>2],n=C[e+96>>2],B=C[e+120>>2],w=C[e+56>>2],h=C[e+112>>2],G=C[e+116>>2],D=C[e+52>>2],o=C[e+68>>2],b=C[e+84>>2],l=C[e+100>>2],c=C[e+20>>2],d=C[e+36>>2],u=C[e+72>>2],s=C[e+88>>2],g=C[e+24>>2],k=C[e+104>>2],m=C[e+40>>2],v=C[e+64>>2],R=C[e+32>>2],Q=C[e>>2],p=C[e+16>>2],E=C[e+48>>2],F=C[e+4>>2],W=C[e+8>>2],a[i+100>>2]=0,a[i+84>>2]=0,a[i+68>>2]=0,C[i+80>>2]=_(_(W*u)+_(g*s))+_(m*k),C[i+76>>2]=_(_(F*u)+_(c*s))+_(d*k),C[i- -64>>2]=_(_(W*o)+_(g*b))+_(m*l),C[i+60>>2]=_(_(F*o)+_(c*b))+_(d*l),h=_(E-h),G=_(D-G),B=_(w-B),C[i+96>>2]=_(_(u*h)+_(s*G))+_(k*B),C[i+92>>2]=_(_(h*o)+_(G*b))+_(B*l),a[i+52>>2]=0,C[i+72>>2]=_(_(Q*u)+_(p*s))+_(R*k),C[i+56>>2]=_(_(Q*o)+_(p*b))+_(R*l),C[i+48>>2]=_(_(v*W)+_(t*g))+_(n*m),C[i+44>>2]=_(_(v*F)+_(t*c))+_(n*d),C[i+40>>2]=_(_(v*Q)+_(t*p))+_(n*R),C[i+88>>2]=_(_(h*v)+_(G*t))+_(B*n),function(A,e,r,i,f,t){var n=_(0),o=_(0),c=_(0),b=0,l=0,u=_(0),s=_(0),k=0,v=_(0),d=_(0),g=_(0),B=_(0),m=0,R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=0;b=Y-32|0,Y=b,l=a[A+8>>2],o=C[l+60>>2],n=_(C[l+76>>2]-o),d=C[l- -64>>2],c=_(C[l+96>>2]-d),u=_(C[l+80>>2]-d),v=_(C[l+92>>2]-o),g=_(_(n*c)-_(u*v)),R=u,B=C[l+68>>2],u=_(C[l+100>>2]-B),s=_(C[l+84>>2]-B),c=_(_(R*u)-_(s*c)),v=_(_(s*v)-_(n*u)),u=_(_(g*g)+_(_(c*c)+_(v*v)));A:if(u>=_(1.4210854715202004e-14)&&(m=a[A+4>>2],R=_(C[m+32>>2]*C[m+16>>2]),n=_(R+t),t=_(_(1)/_(y(u))),u=_(c*t),c=C[e>>2],v=_(v*t),s=C[e+4>>2],Q=_(_(u*_(c-o))+_(v*_(s-d))),d=_(g*t),o=C[e+8>>2],t=_(Q+_(d*_(o-B))),t<_(0)&&(d=_(-d),v=_(-v),u=_(-u),t=_(-t)),t<n)){if(k=e+8|0,m=a[k+4>>2],E=b+24|0,a[E>>2]=a[k>>2],a[E+4>>2]=m,k=a[e+4>>2],a[b+16>>2]=a[e>>2],a[b+20>>2]=k,k=0,a[b+12>>2]=0,C[b+8>>2]=d,C[b+4>>2]=v,C[b>>2]=u,function(A,e,r){var i=_(0),f=_(0),t=_(0),n=_(0),a=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0);return b=C[A+40>>2],o=C[A+24>>2],s=_(b-o),l=C[r+8>>2],v=C[A+32>>2],f=C[A+16>>2],a=_(v-f),t=C[e+4>>2],d=C[A+36>>2],c=C[A+20>>2],n=_(d-c),u=C[e>>2],k=_(_(l-o)*_(_(a*t)-_(n*u))),g=C[r>>2],i=n,n=C[e+8>>2],B=C[r+4>>2],s=_(k+_(_(_(g-f)*_(_(i*n)-_(s*t)))+_(_(B-c)*_(_(s*u)-_(a*n))))),i=o,o=C[A+8>>2],a=_(i-o),i=f,f=C[A>>2],k=_(i-f),i=c,c=C[A+4>>2],i=_(i-c),a=_(_(_(l-o)*_(_(k*t)-_(i*u)))+_(_(_(g-f)*_(_(i*n)-_(a*t)))+_(_(B-c)*_(_(a*u)-_(k*n))))),A=1,i=_(l-b),l=_(f-v),f=_(c-d),b=_(o-b),t=_(_(i*_(_(l*t)-_(f*u)))+_(_(_(g-v)*_(_(f*n)-_(b*t)))+_(_(B-d)*_(_(b*u)-_(l*n))))),(!(s>_(0))||t>_(0)^1|a>_(0)^1)&&(A=a<=_(0)&s<=_(0)&t<=_(0)),A}(l+60|0,b,b+16|0))h=_(o-_(t*d)),G=_(s-_(t*v)),p=_(c-_(t*u)),Q=_(n*n);else{if((0|Qt[a[a[l>>2]+100>>2]](l))<1)break A;for(Q=_(n*n),m=0,l=0;k=a[A+8>>2],Qt[a[a[k>>2]+104>>2]](k,l,b+16|0,b),n=_(0),F=C[b+16>>2],t=_(C[e>>2]-F),s=_(C[b>>2]-F),W=C[b+20>>2],o=_(C[e+4>>2]-W),g=_(C[b+4>>2]-W),w=C[b+24>>2],c=_(C[e+8>>2]-w),B=_(C[b+8>>2]-w),D=_(_(_(t*s)+_(o*g))+_(c*B)),D>_(0)&&(n=_(_(_(s*s)+_(g*g))+_(B*B)),D<n?(n=_(D/n),c=_(c-_(B*n)),o=_(o-_(g*n)),t=_(t-_(s*n))):(c=_(c-B),o=_(o-g),t=_(t-s),n=_(1))),_(_(_(t*t)+_(o*o))+_(c*c))<Q&&(p=_(F+_(s*n)),G=_(W+_(g*n)),m=1,h=_(w+_(B*n))),l=l+1|0,k=a[A+8>>2],(0|l)<(0|Qt[a[a[k>>2]+100>>2]](k)););if(k=0,!m)break A;o=C[e+8>>2],s=C[e+4>>2],c=C[e>>2]}t=_(c-p),c=_(s-G),o=_(o-h),n=_(_(_(t*t)+_(c*c))+_(o*o)),n<Q&&(n>_(1.1920928955078125e-7)?(u=o,n=_(y(n)),o=_(_(1)/n),C[i+8>>2]=u*o,C[i+4>>2]=c*o,C[i>>2]=t*o,R=_(R-n)):(C[i+8>>2]=d,C[i+4>>2]=v,C[i>>2]=u),a[i+12>>2]=0,a[r+12>>2]=0,C[r+8>>2]=h,C[r+4>>2]=G,C[r>>2]=p,C[f>>2]=-R,k=1)}return Y=b+32|0,k}(A,i+88|0,i+128|0,i+112|0,i+108|0,C[A+12>>2])&&(f?(b=C[e+72>>2],l=C[e+64>>2],u=C[e+68>>2],s=C[e+88>>2],k=C[e+80>>2],v=C[e+84>>2],c=C[e+104>>2],d=C[e+96>>2],g=C[e+100>>2],t=C[i+120>>2],n=C[i+112>>2],o=C[i+116>>2],a[i+36>>2]=0,m=_(_(_(n*d)+_(o*g))+_(t*c)),C[i+32>>2]=-m,R=_(_(_(n*k)+_(o*v))+_(t*s)),C[i+28>>2]=-R,Q=_(_(_(l*n)+_(u*o))+_(b*t)),C[i+24>>2]=-Q,a[i+20>>2]=0,n=C[i+128>>2],o=C[i+132>>2],B=c,c=C[i+136>>2],t=C[i+108>>2],C[i+16>>2]=_(_(_(_(d*n)+_(g*o))+_(B*c))+C[e+120>>2])+_(m*t),C[i+12>>2]=_(_(_(_(n*k)+_(o*v))+_(c*s))+C[e+116>>2])+_(R*t),C[i+8>>2]=_(_(_(_(n*l)+_(o*u))+_(c*b))+C[e+112>>2])+_(Q*t),Qt[a[a[r>>2]+16>>2]](r,i+24|0,i+8|0,t)):(a[i+36>>2]=0,t=C[i+112>>2],b=C[e+96>>2],n=C[i+116>>2],l=C[e+100>>2],o=C[i+120>>2],u=C[e+104>>2],C[i+32>>2]=_(_(t*b)+_(n*l))+_(o*u),s=C[e+80>>2],k=C[e+84>>2],v=C[e+88>>2],C[i+28>>2]=_(_(t*s)+_(n*k))+_(o*v),c=C[e+64>>2],d=C[e+68>>2],g=C[e+72>>2],C[i+24>>2]=_(_(t*c)+_(n*d))+_(o*g),a[i+20>>2]=0,t=C[i+128>>2],n=C[i+132>>2],o=C[i+136>>2],C[i+16>>2]=_(_(_(b*t)+_(l*n))+_(u*o))+C[e+120>>2],C[i+12>>2]=_(_(_(t*s)+_(n*k))+_(o*v))+C[e+116>>2],C[i+8>>2]=_(_(_(t*c)+_(n*d))+_(o*g))+C[e+112>>2],Qt[a[a[r>>2]+16>>2]](r,i+24|0,i+8|0,C[i+108>>2]))),Y=i+144|0}function ki(A){var e,r=0,i=_(0),f=0,t=_(0),n=_(0);s(A),r=c(0),e=r>>>31,r&=2147483647;A:{if(r>>>0>=1283457024){if(A!=A)break A;return _(e?-1.570796251296997:1.570796251296997)}e:{if(r>>>0<=1054867455){if(f=-1,r>>>0>=964689920)break e;break A}if(A=_(m(A)),r>>>0<=1066926079){if(r>>>0<=1060110335){A=_(_(_(A+A)+_(-1))/_(A+_(2))),f=0;break e}A=_(_(A+_(-1))/_(A+_(1))),f=1}else r>>>0<=1075576831?(A=_(_(A+_(-1.5))/_(_(A*_(1.5))+_(1))),f=2):(A=_(_(-1)/A),f=3)}if(r=f,t=_(A*A),i=_(t*t),n=_(i*_(_(i*_(-.106480173766613))+_(-.19999158382415771))),i=_(t*_(_(i*_(_(i*_(.06168760731816292))+_(.14253635704517365)))+_(.333333283662796))),(0|r)<=-1)return _(A-_(A*_(n+i)));r<<=2,A=_(C[r+17392>>2]-_(_(_(A*_(n+i))-C[r+17408>>2])-A)),A=e?_(-A):A}return A}function vi(A,e){var r,i,f,t=0,n=0,a=_(0);if(!(e==e&A==A))return _(A+e);if(s(e),t=c(0),1065353216==(0|t))return ki(A);f=t>>>30&2,s(A),n=c(0),i=n>>>31,r=f|i;A:{e:{r:{if(n&=2147483647,!n){i:switch(r-2|0){case 0:break r;case 1:break i;default:break e}return _(-3.1415927410125732)}if(t&=2147483647,2139095040!=(0|t)){if(!t)return _(i?-1.5707963705062866:1.5707963705062866);if(!(t+218103808>>>0>=n>>>0&&2139095040!=(0|n)))return _(i?-1.5707963705062866:1.5707963705062866);if(n+218103808>>>0<t>>>0&&(a=_(0),f)||(a=ki(_(m(_(A/e))))),e=a,r>>>0<=2){A=e;i:switch(r-1|0){case 0:return _(-e);case 1:break i;default:break e}return _(_(3.1415927410125732)-_(e+_(8.742277657347586e-8)))}return _(_(e+_(8.742277657347586e-8))+_(-3.1415927410125732))}if(2139095040==(0|n))break A;return C[17440+(r<<2)>>2]}A=_(3.1415927410125732)}return A}return C[17424+(r<<2)>>2]}function di(A,e,r,i,f,t,n,o,c,b){var l,u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),R=_(0),Q=0,h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),x=0,U=_(0),M=_(0),S=_(0),X=_(0),T=0,j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0),q=_(0),$=_(0),AA=_(0),eA=_(0),rA=_(0),iA=_(0),fA=_(0),tA=_(0),nA=_(0),aA=_(0),oA=_(0),cA=_(0),bA=_(0),lA=_(0),uA=0,sA=0,kA=0,vA=0,dA=0,CA=0,gA=0;l=Y-368|0,Y=l,z=_(C[r>>2]*_(.5)),C[l+356>>2]=z,U=C[e+36>>2],uA=e+4|0,M=C[uA>>2],W=C[e+20>>2],AA=C[e+40>>2],T=e+8|0,eA=C[T>>2],S=C[e+24>>2],R=C[e+16>>2],G=C[e+32>>2],g=C[A>>2],h=C[i>>2],v=C[A+4>>2],s=C[i+4>>2],u=C[A+8>>2],k=C[i+8>>2],lA=C[e>>2],P=_(C[r+4>>2]*_(.5)),C[l+360>>2]=P,O=_(C[r+8>>2]*_(.5)),C[l+364>>2]=O,H=_(C[t>>2]*_(.5)),C[l+344>>2]=H,K=_(C[t+4>>2]*_(.5)),C[l+348>>2]=K,L=_(C[t+8>>2]*_(.5)),C[l+352>>2]=L,d=_(h-g),p=_(s-v),E=_(k-u),rA=_(_(_(lA*d)+_(R*p))+_(G*E)),j=C[f>>2],q=C[f+16>>2],s=C[f+32>>2],fA=_(_(_(lA*j)+_(R*q))+_(G*s)),g=_(m(fA)),$=C[f+4>>2],Z=C[f+20>>2],V=C[f+36>>2],tA=_(_(_(lA*$)+_(R*Z))+_(G*V)),h=_(m(tA)),N=C[f+8>>2],F=C[f+24>>2],D=C[f+40>>2],nA=_(_(_(lA*N)+_(R*F))+_(G*D)),v=_(m(nA)),u=_(_(m(rA))-_(_(_(z+_(H*g))+_(K*h))+_(L*v)));A:if(!(u>_(0)||(aA=_(_(_(M*N)+_(W*F))+_(U*D)),X=_(m(aA)),oA=_(_(_(M*$)+_(W*Z))+_(U*V)),I=_(m(oA)),cA=_(_(_(M*j)+_(W*q))+_(U*s)),w=_(m(cA)),k=_(-3.4028234663852886e38),r=0,u>_(-3.4028234663852886e38)&&(x=rA<_(0),k=u,Q=e,r=1),iA=_(_(_(d*M)+_(p*W))+_(E*U)),u=_(_(m(iA))-_(_(_(P+_(H*w))+_(K*I))+_(L*X))),u>_(0)||(bA=_(_(_(eA*N)+_(S*F))+_(AA*D)),W=_(m(bA)),U=_(_(_(eA*$)+_(S*Z))+_(AA*V)),R=_(m(U)),M=_(_(_(eA*j)+_(S*q))+_(AA*s)),G=_(m(M)),u>k&&(x=iA<_(0),k=u,Q=uA,r=2),S=_(_(_(d*eA)+_(p*S))+_(E*AA)),u=_(_(m(S))-_(_(_(O+_(H*G))+_(K*R))+_(L*W))),u>_(0)||(u>k&&(x=S<_(0),k=u,Q=T,r=3),s=_(_(_(d*j)+_(p*q))+_(E*s)),u=_(_(m(s))-_(H+_(_(O*G)+_(_(z*g)+_(P*w))))),u>_(0)||(u>k&&(x=s<_(0),k=u,Q=f,r=4),s=_(_(_(d*$)+_(p*Z))+_(E*V)),u=_(_(m(s))-_(K+_(_(O*R)+_(_(z*h)+_(P*I))))),u>_(0)||(u>k&&(Q=f+4|0,x=s<_(0),k=u,r=5),s=_(_(_(d*N)+_(p*F))+_(E*D)),u=_(_(m(s))-_(L+_(_(O*W)+_(_(z*v)+_(P*X))))),u>_(0)||(u>k&&(Q=f+8|0,x=s<_(0),k=u,r=6),s=_(_(S*cA)-_(iA*M)),V=_(h+_(9999999747378752e-21)),N=_(G+_(9999999747378752e-21)),F=_(w+_(9999999747378752e-21)),D=_(v+_(9999999747378752e-21)),u=_(_(m(s))-_(_(L*V)+_(_(_(P*N)+_(O*F))+_(K*D)))),u>_(1.1920928955078125e-7)||(j=_(R+_(9999999747378752e-21)),q=_(I+_(9999999747378752e-21)),$=_(g+_(9999999747378752e-21)),E=_(0),w=_(cA*cA),h=_(_(M*M)+_(0)),v=_(y(_(w+h))),v>_(1.1920928955078125e-7)?(p=_(0),u=_(u/v),d=_(0),_(u*_(1.0499999523162842))>k&&(x=s<_(0),p=_(cA/v),E=_(_(0)/v),Q=0,r=7,k=u,d=_(_(-M)/v))):(p=_(0),d=_(0)),s=_(_(S*oA)-_(iA*U)),u=_(_(m(s))-_(_(L*$)+_(_(_(P*j)+_(O*q))+_(H*D)))),u>_(1.1920928955078125e-7)||(Z=_(W+_(9999999747378752e-21)),I=_(X+_(9999999747378752e-21)),W=_(oA*oA),v=_(_(U*U)+_(0)),g=_(y(_(W+v))),g>_(1.1920928955078125e-7)&&(u=_(u/g),_(u*_(1.0499999523162842))>k&&(x=s<_(0),p=_(oA/g),d=_(_(-U)/g),E=_(_(0)/g),Q=0,r=8,k=u)),s=_(_(S*aA)-_(iA*bA)),u=_(_(m(s))-_(_(K*$)+_(_(H*V)+_(_(P*Z)+_(O*I))))),u>_(1.1920928955078125e-7)||(R=_(aA*aA),G=_(_(bA*bA)+_(0)),g=_(y(_(R+G))),g>_(1.1920928955078125e-7)&&(u=_(u/g),_(u*_(1.0499999523162842))>k&&(x=s<_(0),p=_(aA/g),d=_(_(-bA)/g),E=_(_(0)/g),Q=0,r=9,k=u)),s=_(_(rA*M)-_(S*fA)),u=_(_(m(s))-_(_(L*q)+_(_(_(z*N)+_(O*$))+_(K*I)))),u>_(1.1920928955078125e-7)||(g=_(fA*fA),h=_(y(_(g+h))),h>_(1.1920928955078125e-7)&&(u=_(u/h),_(u*_(1.0499999523162842))>k&&(x=s<_(0),p=_(_(-fA)/h),d=_(_(0)/h),E=_(M/h),Q=0,r=10,k=u)),s=_(_(rA*U)-_(S*tA)),u=_(_(m(s))-_(_(L*F)+_(_(_(z*j)+_(O*V))+_(H*I)))),u>_(1.1920928955078125e-7)||(h=_(tA*tA),v=_(y(_(h+v))),v>_(1.1920928955078125e-7)&&(u=_(u/v),_(u*_(1.0499999523162842))>k&&(x=s<_(0),p=_(_(-tA)/v),d=_(_(0)/v),E=_(U/v),Q=0,r=11,k=u)),s=_(_(rA*bA)-_(S*nA)),u=_(_(m(s))-_(_(K*F)+_(_(H*q)+_(_(z*Z)+_(O*D))))),u>_(1.1920928955078125e-7)||(v=_(nA*nA),G=_(y(_(v+G))),G>_(1.1920928955078125e-7)&&(u=_(u/G),_(u*_(1.0499999523162842))>k&&(x=s<_(0),p=_(_(-nA)/G),d=_(_(0)/G),E=_(bA/G),Q=0,r=12,k=u)),s=_(_(iA*fA)-_(rA*cA)),u=_(_(m(s))-_(_(L*j)+_(_(_(z*F)+_(P*$))+_(K*Z)))),u>_(1.1920928955078125e-7)||(g=_(y(_(_(w+g)+_(0)))),g>_(1.1920928955078125e-7)&&(u=_(u/g),_(u*_(1.0499999523162842))>k&&(x=s<_(0),p=_(_(0)/g),d=_(fA/g),E=_(_(-cA)/g),Q=0,r=13,k=u)),s=_(_(iA*tA)-_(rA*oA)),u=_(_(m(s))-_(_(L*N)+_(_(_(z*q)+_(P*V))+_(H*Z)))),u>_(1.1920928955078125e-7)||(h=_(y(_(_(W+h)+_(0)))),h>_(1.1920928955078125e-7)&&(u=_(u/h),_(u*_(1.0499999523162842))>k&&(x=s<_(0),p=_(_(0)/h),d=_(tA/h),E=_(_(-oA)/h),Q=0,r=14,k=u)),s=_(_(iA*nA)-_(rA*aA)),u=_(_(m(s))-_(_(K*N)+_(_(H*j)+_(_(z*I)+_(P*D))))),u>_(1.1920928955078125e-7))))))))))))))))){e:{r:{if(v=_(y(_(_(R+v)+_(0)))),v>_(1.1920928955078125e-7)&&(u=_(u/v),_(u*_(1.0499999523162842))>k))x=s<_(0),p=_(_(0)/v),d=_(nA/v),E=_(_(-aA)/v),r=15;else{if(!r)break A;if(Q)break r;u=k}v=_(_(_(lA*E)+_(d*C[e+4>>2]))+_(p*C[e+8>>2])),C[n>>2]=v,R=_(_(_(E*C[e+16>>2])+_(d*C[e+20>>2]))+_(p*C[e+24>>2])),C[n+4>>2]=R,d=_(_(_(E*C[e+32>>2])+_(d*C[e+36>>2]))+_(p*C[e+40>>2])),C[n+8>>2]=d;break e}v=C[Q>>2],a[n>>2]=a[Q>>2],R=C[Q+16>>2],a[n+4>>2]=a[Q+16>>2],d=C[Q+32>>2],a[n+8>>2]=a[Q+32>>2],u=k}if(x&&(C[n+8>>2]=-d,C[n+4>>2]=-R,C[n>>2]=-v),C[o>>2]=-u,(0|r)>=7)Q=l+120|0,a[Q>>2]=a[A+8>>2],t=a[A+4>>2],a[l+112>>2]=a[A>>2],a[l+116>>2]=t,k=_(0),D=C[l+112>>2],w=C[l+116>>2],Z=C[n>>2],W=C[e>>2],o=n+4|0,X=C[o>>2],R=C[e+16>>2],t=n+8|0,I=C[t>>2],s=C[e+32>>2],V=_((_(_(_(Z*W)+_(X*R))+_(I*s))>_(0)?_(1):_(-1))*C[l+356>>2]),d=_(C[Q>>2]+_(V*s)),G=C[e+4>>2],g=C[e+20>>2],s=C[e+36>>2],N=_((_(_(_(Z*G)+_(X*g))+_(I*s))>_(0)?_(1):_(-1))*C[l+360>>2]),d=_(d+_(N*s)),h=C[e+8>>2],v=C[e+24>>2],s=C[e+40>>2],F=_((_(_(_(Z*h)+_(X*v))+_(I*s))>_(0)?_(1):_(-1))*O),C[Q>>2]=d+_(F*s),C[l+116>>2]=_(_(w+_(V*R))+_(N*g))+_(F*v),C[l+112>>2]=_(_(D+_(V*W))+_(N*G))+_(F*h),A=l+216|0,a[A>>2]=a[i+8>>2],W=C[f>>2],R=C[f+16>>2],s=C[f+32>>2],F=_((_(_(_(Z*W)+_(X*R))+_(I*s))>_(0)?_(-1):_(1))*H),d=_(C[A>>2]+_(F*s)),G=C[f+4>>2],g=C[f+20>>2],s=C[f+36>>2],D=_((_(_(_(Z*G)+_(X*g))+_(I*s))>_(0)?_(-1):_(1))*C[l+348>>2]),d=_(d+_(D*s)),h=C[f+8>>2],v=C[f+24>>2],s=C[f+40>>2],w=_((_(_(_(Z*h)+_(X*v))+_(I*s))>_(0)?_(-1):_(1))*C[l+352>>2]),V=_(d+_(w*s)),C[A>>2]=V,A=a[i+4>>2],a[l+208>>2]=a[i>>2],a[l+212>>2]=A,N=_(_(_(C[l+208>>2]+_(F*W))+_(D*G))+_(w*h)),C[l+208>>2]=N,F=_(_(_(C[l+212>>2]+_(F*R))+_(D*g))+_(w*v)),C[l+212>>2]=F,i=r+-7|0,A=(0|i)/3|0,e=e+(A<<2)|0,s=C[e>>2],A=(i-B(A,3)<<2)+f|0,D=C[A>>2],G=C[e+16>>2],w=C[A+16>>2],g=C[e+32>>2],W=C[A+32>>2],R=_(_(_(s*D)+_(G*w))+_(g*W)),h=_(_(1)-_(R*R)),h<=_(9999999747378752e-20)||(v=_(N-C[l+112>>2]),d=_(v*s),s=_(F-C[l+116>>2]),k=_(V-C[Q>>2]),k=_(_(_(_(_(d+_(s*G))+_(k*g))*R)-_(_(_(v*D)+_(s*w))+_(k*W)))*_(_(1)/h))),C[l+216>>2]=V+_(k*W),C[l+212>>2]=F+_(k*w),C[l+208>>2]=N+_(k*D),a[l+284>>2]=0,C[l+280>>2]=-C[t>>2],C[l+276>>2]=-C[o>>2],C[l+272>>2]=-C[n>>2],Qt[a[a[b>>2]+16>>2]](b,l+272|0,l+208|0,u),a[c>>2]=r;else{U=C[n>>2],(0|r)<=3?(M=C[n+8>>2],AA=C[n+4>>2],x=l+356|0,Q=f,T=l+344|0):(U=_(-U),M=_(-C[n+8>>2]),AA=_(-C[n+4>>2]),t=i,x=l+344|0,i=A,A=t,Q=e,e=f,T=l+356|0),s=_(_(_(U*C[Q>>2])+_(AA*C[Q+16>>2]))+_(M*C[Q+32>>2])),C[l+328>>2]=s,u=_(_(_(U*C[Q+4>>2])+_(AA*C[Q+20>>2]))+_(M*C[Q+36>>2])),C[l+332>>2]=u,k=_(_(_(U*C[Q+8>>2])+_(AA*C[Q+24>>2]))+_(M*C[Q+40>>2])),C[l+336>>2]=k,v=_(m(k)),u=_(m(u)),k=_(m(s)),u>k?(o=u>v,f=o?1:2,t=0):(o=k>v,f=(1^o)<<1,t=o),dA=t,f<<=2,s=C[f+T>>2],u=_(s*C[f+Q>>2]),k=_(C[i>>2]-C[A>>2]),CA=o?2:1,t=l,C[f+(l+328|0)>>2]<_(0)?(d=_(k+u),C[l+312>>2]=d,u=_(_(C[i+4>>2]-C[A+4>>2])+_(s*C[(16|f)+Q>>2])),C[l+316>>2]=u,X=_(_(C[i+8>>2]-C[A+8>>2])+_(s*C[(32|f)+Q>>2]))):(d=_(k-u),C[l+312>>2]=d,u=_(_(C[i+4>>2]-C[A+4>>2])-_(s*C[(16|f)+Q>>2])),C[l+316>>2]=u,X=_(_(C[i+8>>2]-C[A+8>>2])-_(s*C[(32|f)+Q>>2]))),C[t+320>>2]=X,o=1,vA=((0|r)<4?-1:-4)+r|0;e:{if(vA>>>0<=1){if(f=2,vA-1)break e}else f=1;o=0}i=2,t=f<<2,f=t+e|0,g=C[f>>2],h=C[f+16>>2],v=C[f+32>>2],eA=_(_(_(d*g)+_(u*h))+_(X*v)),f=dA<<2,sA=f+Q|0,D=C[sA>>2],w=C[sA+16>>2],s=C[sA+32>>2],I=_(_(_(g*D)+_(h*w))+_(v*s)),k=C[f+T>>2],W=_(I*k),R=_(eA+W),f=CA<<2,kA=f+Q|0,G=C[kA>>2],p=_(g*G),g=C[kA+16>>2],p=_(p+_(h*g)),h=C[kA+32>>2],V=_(p+_(v*h)),v=C[f+T>>2],Z=_(V*v),C[l+300>>2]=R-Z,f=o<<2,e=f+e|0,N=C[e>>2],F=C[e+16>>2],d=_(_(d*N)+_(u*F)),u=C[e+32>>2],S=_(d+_(X*u)),w=_(_(_(N*D)+_(F*w))+_(u*s)),s=_(k*w),k=_(S+s),h=_(_(_(N*G)+_(F*g))+_(u*h)),g=_(v*h),C[l+296>>2]=k-g,C[l+292>>2]=R+Z,p=_(k+g),C[l+288>>2]=p,u=_(eA-W),v=_(u+Z),C[l+284>>2]=v,k=_(S-s),d=_(k+g),C[l+280>>2]=d,u=_(u-Z),C[l+276>>2]=u,R=_(k-g),C[l+272>>2]=R,e=t+x|0,g=C[e>>2],gA=a[e>>2],e=f+x|0,uA=a[e>>2],G=C[e>>2],s=_(-G);e:{r:{i:{E=_(-R),f=G>E;f:{if(!f){if(t=0,i=1,e=l+208|0,k=_(-d),o=G>k,f^o)break f;break i}if(C[l+212>>2]=u,C[l+208>>2]=R,e=l+208|8,t=1,k=_(-d),o=G>k,(0|f)==(0|o))break i}if(C[e>>2]=s,C[e+4>>2]=u+_(_(s-R)*_(_(v-u)/_(d-R))),e=e+8|0,o)break r;t=i;break e}if(i=t,!o)break e}C[e+4>>2]=v,C[e>>2]=d,t=i+1|0,e=e+8|0,d=C[l+280>>2],k=_(-d),p=C[l+288>>2]}e:{if((k<G|0)!=(G>_(-p)|0)){if(k=C[l+292>>2],u=C[l+284>>2],C[e>>2]=s,C[e+4>>2]=u+_(_(s-d)*_(_(k-u)/_(p-d))),t=t+1|0,8&t)break e;e=e+8|0}if(d=C[l+288>>2],v=_(-d),G>v){if(C[e>>2]=d,a[e+4>>2]=a[l+292>>2],t=t+1|0,8&t)break e;d=C[l+288>>2],v=_(-d),e=e+8|0}if(i=v<G,v=C[l+296>>2],p=_(-v),(0|i)!=(G>p|0)){if(k=C[l+300>>2],u=C[l+292>>2],C[e>>2]=s,C[e+4>>2]=u+_(_(s-d)*_(_(k-u)/_(v-d))),t=t+1|0,8&t)break e;v=C[l+296>>2],p=_(-v),e=e+8|0}if(p<G){if(C[e>>2]=v,a[e+4>>2]=a[l+300>>2],t=t+1|0,8&t)break e;R=C[l+272>>2],E=_(-R),v=C[l+296>>2],p=_(-v),e=e+8|0}r:{i:{if((p<G|0)==(E<G|0)){if(!((0|t)>=1)){t=0;break i}}else if(k=C[l+276>>2],u=C[l+300>>2],C[e>>2]=s,C[e+4>>2]=u+_(_(s-v)*_(_(k-u)/_(R-v))),t=t+1|0,8&t)break e;for(e=l+208|0,f=l+112|0,i=0;;){if(R=C[e>>2],R<G){if(C[f>>2]=R,a[f+4>>2]=a[e+4>>2],i=i+1|0,8&i){t=i;break i}R=C[e>>2],f=f+8|0}if(o=e+8|0,T=(0|t)>1?o:l+208|0,u=C[T>>2],(R<G|0)!=(u<G|0)){if(s=C[e+4>>2],k=C[T+4>>2],a[f>>2]=uA,C[f+4>>2]=s+_(_(G-R)*_(_(k-s)/_(u-R))),i=i+1|0,8&i){t=i;break i}f=f+8|0}if(e=o,t=t+-1|0,!((0|t)>0))break}if((0|i)<1)t=0;else{for(v=_(-g),f=l+208|0,e=l+112|0,o=0;;){if(t=e+4|0,d=C[t>>2],R=_(-d),g>R){if(a[f>>2]=a[e>>2],a[f+4>>2]=a[t>>2],o=o+1|0,8&o){t=o;break r}d=C[t>>2],R=_(-d),f=f+8|0}if(t=e+8|0,T=(0|i)>1?t:l+112|0,u=C[T+4>>2],(R<g|0)!=(g>_(-u)|0)){if(k=C[T>>2],s=C[e>>2],C[f+4>>2]=v,C[f>>2]=s+_(_(v-d)*_(_(k-s)/_(u-d))),o=o+1|0,8&o){t=o;break r}f=f+8|0}if(e=t,i=i+-1|0,!((0|i)>0))break}if((0|o)<1)t=0;else for(e=l+208|0,f=l+112|0,t=0;;){if(i=e+4|0,R=C[i>>2],R<g){if(a[f>>2]=a[e>>2],a[f+4>>2]=a[i>>2],t=t+1|0,8&t)break i;R=C[i>>2],f=f+8|0}if(i=e+8|0,T=(0|o)>1?i:l+208|0,u=C[T+4>>2],(R<g|0)!=(u<g|0)){if(k=C[T>>2],s=C[e>>2],a[f+4>>2]=gA,C[f>>2]=s+_(_(g-R)*_(_(k-s)/_(u-R))),t=t+1|0,8&t)break i;f=f+8|0}if(e=i,o=o+-1|0,!((0|o)>0))break}}}J(l+208|0,l+112|0,t<<3)}if(!((0|t)>=1))break A}for(k=_(_(1)/_(_(w*V)-_(I*h))),q=_(V*k),$=_(I*k),Z=_(h*k),X=_(w*k),I=C[(vA<<2)+x>>2],i=CA<<2,V=C[(32|i)+Q>>2],e=dA<<2,N=C[(32|e)+Q>>2],F=C[(16|i)+Q>>2],D=C[(16|e)+Q>>2],w=C[kA>>2],W=C[sA>>2],f=0,e=l+208|0,R=C[l+320>>2],G=C[l+316>>2],g=C[l+312>>2];i=(l+112|0)+B(f,12)|0,h=C[e>>2],u=_(h-S),v=C[e+4>>2],k=_(v-eA),j=_(_(q*u)-_(Z*k)),k=_(_(X*k)-_($*u)),s=_(_(G+_(j*D))+_(k*F)),C[i+4>>2]=s,u=_(_(g+_(j*W))+_(k*w)),C[i>>2]=u,k=_(_(R+_(j*N))+_(k*V)),C[i+8>>2]=k,k=_(I-_(_(_(U*u)+_(AA*s))+_(M*k))),C[(l+80|0)+(f<<2)>>2]=k,k>=_(0)&&(i=f<<3,C[i+(l+208|0)>>2]=h,C[(l+208|0)+(4|i)>>2]=v,f=f+1|0),e=e+8|0,t=t+-1|0,t;);if(!((0|f)<1)){e=(0|f)<4?f:4,t=(0|e)>1?e:1;e:if((0|f)<=(0|t)){if((0|r)>=4){for(i=l+80|0,e=l+112|0,t=f;s=C[n>>2],v=C[i>>2],C[l+32>>2]=_(C[e>>2]+C[A>>2])-_(s*v),u=C[n+4>>2],C[l+36>>2]=_(C[e+4>>2]+C[A+4>>2])-_(v*u),k=C[n+8>>2],C[l+40>>2]=_(C[e+8>>2]+C[A+8>>2])-_(v*k),a[l+76>>2]=0,C[l+72>>2]=-k,C[l+68>>2]=-u,C[l+64>>2]=-s,Qt[a[a[b>>2]+16>>2]](b,l- -64|0,l+32|0,_(-v)),e=e+12|0,i=i+4|0,t=t+-1|0,t;);break e}for(i=l+80|0,e=l+112|0,t=f;C[l+32>>2]=C[e>>2]+C[A>>2],C[l+36>>2]=C[e+4>>2]+C[A+4>>2],C[l+40>>2]=C[e+8>>2]+C[A+8>>2],a[l+76>>2]=0,C[l+72>>2]=-C[n+8>>2],C[l+68>>2]=-C[n+4>>2],C[l+64>>2]=-C[n>>2],Qt[a[a[b>>2]+16>>2]](b,l- -64|0,l+32|0,_(-C[i>>2])),e=e+12|0,i=i+4|0,t=t+-1|0,t;);}else{if(Q=0,(0|f)>=2)for(e=l+80|4,v=C[l+80>>2],i=1;k=C[e>>2],o=k>v,v=o?k:v,Q=o?i:Q,e=e+4|0,i=i+1|0,(0|f)!=(0|i););if(function(A,e,r,i,f){var t,n=0,o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=0,B=_(0),R=0,Q=0,h=_(0);t=Y+-64|0,Y=t;r:{i:{f:{t:{n:{if(o=A+-1|0,!(o>>>0<=1)){if((0|o)>=1)break n;break t}if(o-1)break f;l=_(_(C[e+4>>2]+C[e+12>>2])*_(.5)),c=_(_(C[e>>2]+C[e+8>>2])*_(.5));break i}for(n=e;k=l,l=C[n+12>>2],b=C[n+4>>2],d=_(l+b),s=C[n>>2],n=n+8|0,v=C[n>>2],b=_(_(s*l)-_(v*b)),l=_(k+_(d*b)),c=_(c+b),u=_(u+_(_(s+v)*b)),o=o+-1|0,o;);}if(b=_(0xde0b6b000000000),k=c,n=(A<<3)+e|0,s=C[n+-8>>2],v=C[e+4>>2],B=C[e>>2],d=C[n+-4>>2],c=_(_(s*v)-_(B*d)),k=_(k+c),_(m(k))>_(1.1920928955078125e-7)&&(b=_(_(1)/_(k*_(3)))),o=0,(0|A)<=0)break r;l=_(_(l+_(_(v+d)*c))*b),c=_(_(u+_(_(s+B)*c))*b);break i}l=C[e+4>>2],c=C[e>>2]}for(n=t+32|0,o=A;Q=n,h=vi(_(C[e+4>>2]-l),_(C[e>>2]-c)),C[Q>>2]=h,e=e+8|0,n=n+4|0,o=o+-1|0,o;);for(e=t,n=A;o=1,a[e>>2]=1,e=e+4|0,n=n+-1|0,n;);}if(a[f>>2]=i,e=i<<2,n=e+t|0,a[n>>2]=0,!((0|r)<2))if(f=f+4|0,o)for(l=_(_(6.2831854820251465)/_(0|r)),b=C[e+(t+32|0)>>2],g=1;;){for(a[f>>2]=i,c=_(_(l*_(0|g))+b),s=c>_(3.1415927410125732)?_(c+_(-6.2831854820251465)):c,c=_(1e9),n=t+32|0,e=t,R=i,o=0;a[e>>2]&&(u=_(m(_(C[n>>2]-s))),u=u>_(3.1415927410125732)?_(_(6.2831854820251465)-u):u,u<c&&(a[f>>2]=o,R=o,c=u)),e=e+4|0,n=n+4|0,o=o+1|0,(0|o)!=(0|A););if(a[(R<<2)+t>>2]=0,f=f+4|0,g=g+1|0,(0|g)==(0|r))break}else for(e=r+-1|0;a[f>>2]=i,a[n>>2]=0,f=f+4|0,e=e+-1|0,e;);Y=t- -64|0}(f,l+208|0,t,Q,l+32|0),(0|r)>=4)for(e=l+32|0,i=0;f=a[e>>2],o=(l+112|0)+B(f,12)|0,g=_(C[o>>2]+C[A>>2]),C[l+64>>2]=g,h=_(C[o+4>>2]+C[A+4>>2]),C[l+68>>2]=h,v=_(C[o+8>>2]+C[A+8>>2]),C[l+72>>2]=v,a[l+28>>2]=0,s=C[n+8>>2],C[l+24>>2]=-s,u=C[n+4>>2],C[l+20>>2]=-u,k=C[n>>2],C[l+16>>2]=-k,a[l+12>>2]=0,d=s,s=C[(l+80|0)+(f<<2)>>2],C[l+8>>2]=v-_(d*s),C[l+4>>2]=h-_(u*s),C[l>>2]=g-_(k*s),Qt[a[a[b>>2]+16>>2]](b,l+16|0,l,_(-s)),e=e+4|0,i=i+1|0,i>>>0<t>>>0;);else for(e=l+32|0,i=0;f=a[e>>2],o=(l+112|0)+B(f,12)|0,C[l+64>>2]=C[o>>2]+C[A>>2],C[l+68>>2]=C[o+4>>2]+C[A+4>>2],C[l+72>>2]=C[o+8>>2]+C[A+8>>2],a[l+28>>2]=0,C[l+24>>2]=-C[n+8>>2],C[l+20>>2]=-C[n+4>>2],C[l+16>>2]=-C[n>>2],Qt[a[a[b>>2]+16>>2]](b,l+16|0,l- -64|0,_(-C[(l+80|0)+(f<<2)>>2])),e=e+4|0,i=i+1|0,i>>>0<t>>>0;);}a[c>>2]=r}}}Y=l+368|0}function Ci(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t=_(0),n=_(0),o=0,c=_(0),b=_(0),l=_(0),u=_(0);i=Y-160|0,Y=i,a[i+112>>2]=a[e>>2],a[i+64>>2]=a[e+64>>2],f=a[e+8>>2],a[i+116>>2]=a[e+4>>2],a[i+120>>2]=f,f=e+68|0,o=a[f+4>>2],a[i+68>>2]=a[f>>2],a[i+72>>2]=o,f=a[e+20>>2],a[i+128>>2]=a[e+16>>2],a[i+132>>2]=f,f=e+80|0,o=a[f+4>>2],a[i+80>>2]=a[f>>2],a[i+84>>2]=o,a[i+136>>2]=a[e+24>>2],a[i+88>>2]=a[e+88>>2],a[i+144>>2]=a[e+32>>2],a[i+96>>2]=a[e+96>>2],a[i+100>>2]=a[e+100>>2],f=e+36|0,o=a[f+4>>2],a[i+148>>2]=a[f>>2],a[i+152>>2]=o,a[i+104>>2]=a[e+104>>2],f=a[A+4>>2],n=C[f+40>>2],t=C[f+36>>2],c=C[f+32>>2],b=_(Qt[a[a[f>>2]+48>>2]](f)),l=_(Qt[a[a[f>>2]+48>>2]](f)),u=_(Qt[a[a[f>>2]+48>>2]](f)),a[i+36>>2]=0,t=_(t+l),C[i+28>>2]=t+t,t=_(c+b),C[i+24>>2]=t+t,n=_(n+u),C[i+32>>2]=n+n,A=a[A+8>>2],n=C[A+40>>2],t=C[A+36>>2],c=C[A+32>>2],b=_(Qt[a[a[A>>2]+48>>2]](A)),l=_(Qt[a[a[A>>2]+48>>2]](A)),u=_(Qt[a[a[A>>2]+48>>2]](A)),a[i+20>>2]=0,t=_(t+l),C[i+12>>2]=t+t,t=_(c+b),C[i+8>>2]=t+t,n=_(n+u),C[i+16>>2]=n+n,di(e+48|0,i+112|0,i+24|0,e+112|0,i- -64|0,i+8|0,i+48|0,i+44|0,i+40|0,r),Y=i+160|0}function gi(A,e,r,i,f){var t,n=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=0,v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=0,D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=0,X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0),q=_(0),$=_(0),AA=_(0),eA=_(0),rA=_(0),iA=_(0),fA=_(0);t=Y-48|0,Y=t,w=o[A+16|0],S=w?i:r,k=a[S+12>>2],P=C[k+56>>2],K=C[k+52>>2],L=C[k+48>>2],w=w?r:i,r=a[w+12>>2],q=C[r+56>>2],X=C[r+48>>2],$=C[r+52>>2],S=a[S+4>>2],g=C[r+40>>2],l=C[r+8>>2],u=C[r+24>>2],s=C[r+32>>2],Q=C[r>>2],h=C[r+16>>2],i=a[w+4>>2],y=C[r+36>>2],E=C[k+40>>2],Z=C[k+32>>2],V=C[k+36>>2],p=C[r+4>>2],N=C[k+8>>2],I=C[k>>2],J=C[k+4>>2],F=C[r+20>>2],x=C[k+24>>2],U=C[k+16>>2],M=C[k+20>>2],b=C[e+12>>2],v=C[e+8>>2],n=C[e>>2],c=C[e+4>>2],a[t+28>>2]=0,B=_(_(2)/_(_(_(_(n*n)+_(c*c))+_(v*v))+_(b*b))),d=_(v*B),T=_(n*d),m=_(c*B),j=_(b*m),G=_(T+j),D=_(c*d),R=_(n*B),O=_(b*R),B=_(D-O),H=_(n*R),z=_(c*m),c=_(_(1)-_(H+z)),R=_(_(_(Z*G)+_(V*B))+_(E*c)),W=_(_(_(I*G)+_(J*B))+_(N*c)),c=_(_(_(U*G)+_(M*B))+_(x*c)),B=_(-C[i+52>>2]),r=i+56|0,G=C[r>>2],AA=_(_(_(_(s*R)+_(_(Q*W)+_(h*c)))*B)-_(_(_(y*R)+_(_(p*W)+_(F*c)))*G)),R=_(_(g*R)+_(_(l*W)+_(u*c))),k=i+60|0,c=C[k>>2],C[t+24>>2]=AA-_(R*c),R=_(D+O),m=_(n*m),W=_(b*d),n=_(m-W),D=_(v*d),b=_(_(1)-_(H+D)),v=_(_(E*R)+_(_(Z*n)+_(V*b))),d=_(_(N*R)+_(_(I*n)+_(J*b))),n=_(_(x*R)+_(_(U*n)+_(M*b))),C[t+20>>2]=_(_(_(_(s*v)+_(_(Q*d)+_(h*n)))*B)-_(G*_(_(y*v)+_(_(p*d)+_(F*n)))))-_(c*_(_(g*v)+_(_(l*d)+_(u*n)))),n=_(T-j),b=_(m+W),v=_(_(1)-_(z+D)),d=_(_(E*n)+_(_(V*b)+_(Z*v))),m=_(_(N*n)+_(_(J*b)+_(I*v))),n=_(_(x*n)+_(_(M*b)+_(U*v))),C[t+16>>2]=_(_(_(_(s*d)+_(_(Q*m)+_(h*n)))*B)-_(G*_(_(y*d)+_(_(p*m)+_(F*n)))))-_(c*_(_(g*d)+_(_(l*m)+_(u*n)))),Qt[a[a[S>>2]+64>>2]](t+32|0,S,t+16|0),e=a[w+12>>2],G=C[e+48>>2],R=C[e+32>>2],W=C[e+16>>2],T=C[e+8>>2],j=C[e+4>>2],D=C[e>>2],O=C[e+56>>2],H=C[e+52>>2],z=C[e+40>>2],AA=C[e+36>>2],eA=C[e+24>>2],rA=C[e+20>>2],iA=C[i+68>>2],v=C[k>>2],d=C[i+52>>2],B=C[r>>2],n=C[t+40>>2],b=C[t+32>>2],c=C[t+36>>2],fA=C[a[A+12>>2]+784>>2],a[f+4>>2]=a[A+12>>2],m=_(-X),X=_(_(_(_(_(L*l)+_(K*u))+_(P*g))+_(_(_(l*m)-_(u*$))-_(g*q)))+_(_(_(b*_(_(_(I*l)+_(U*u))+_(Z*g)))+_(c*_(_(_(J*l)+_(M*u))+_(V*g))))+_(n*_(_(_(N*l)+_(x*u))+_(E*g))))),Q=_(_(_(_(_(L*Q)+_(K*h))+_(P*s))+_(_(_(Q*m)-_(h*$))-_(s*q)))+_(_(_(b*_(_(_(I*Q)+_(U*h))+_(Z*s)))+_(c*_(_(_(J*Q)+_(M*h))+_(V*s))))+_(n*_(_(_(N*Q)+_(x*h))+_(E*s))))),h=_(_(_(_(_(L*p)+_(K*F))+_(P*y))+_(_(_(p*m)-_(F*$))-_(y*q)))+_(_(_(b*_(_(_(I*p)+_(U*F))+_(Z*y)))+_(c*_(_(_(J*p)+_(M*F))+_(V*y))))+_(n*_(_(_(N*p)+_(x*F))+_(E*y))))),g=_(_(_(v*X)+_(_(d*Q)+_(B*h)))-iA),g<fA&&(a[t+28>>2]=0,A=a[w+12>>2],l=C[i+52>>2],u=C[i+56>>2],s=C[i+60>>2],C[t+16>>2]=_(_(C[A>>2]*l)+_(C[A+4>>2]*u))+_(C[A+8>>2]*s),C[t+24>>2]=_(_(l*C[A+32>>2])+_(u*C[A+36>>2]))+_(s*C[A+40>>2]),C[t+20>>2]=_(_(l*C[A+16>>2])+_(u*C[A+20>>2]))+_(s*C[A+24>>2]),a[t+12>>2]=0,l=_(Q-_(d*g)),u=_(h-_(B*g)),s=_(X-_(v*g)),C[t+8>>2]=_(_(_(l*R)+_(u*AA))+_(s*z))+O,C[t+4>>2]=_(_(_(l*W)+_(u*rA))+_(s*eA))+H,C[t>>2]=_(_(T*s)+_(_(D*l)+_(j*u)))+G,Qt[a[a[f>>2]+16>>2]](f,t+16|0,t,g)),Y=t+48|0}function Bi(A,e){var r,i=0,t=0,n=0,o=0,c=0;if(a[A>>2]=17664,t=a[e+20>>2],i=dA(4),a[A+24>>2]=i,a[i>>2]=t?14800:15008,i=dA(20),function(A,e){a[A+12>>2]=0,a[A+16>>2]=3,a[A>>2]=15424,f[A+4|0]=0,a[A+8>>2]=e}(i,a[A+24>>2]),a[A+28>>2]=i,i=dA(8),a[i>>2]=17780,f[i+4|0]=0,a[A+32>>2]=i,i=dA(8),a[i>>2]=17864,f[i+4|0]=0,a[A+36>>2]=i,i=dA(8),a[i>>2]=17956,f[i+4|0]=0,a[A+40>>2]=i,i=dA(8),a[i>>2]=18036,f[i+4|0]=0,a[A+44>>2]=i,i=dA(8),a[i>>2]=18124,f[i+4|0]=0,a[A+48>>2]=i,i=dA(8),a[i>>2]=18208,f[i+4|0]=0,a[A+52>>2]=i,i=dA(8),a[i>>2]=18276,f[i+4|0]=0,a[A+56>>2]=i,i=dA(8),a[i>>2]=18360,f[i+4|0]=0,a[A+72>>2]=i,i=dA(8),a[A+76>>2]=i,a[i>>2]=18360,f[i+4|0]=1,i=dA(8),a[i>>2]=18444,f[i+4|0]=0,a[A+68>>2]=i,i=dA(16),a[i+8>>2]=1,a[i+12>>2]=0,a[i>>2]=18520,f[i+4|0]=0,a[A+84>>2]=i,i=dA(16),a[i+8>>2]=1,a[i+12>>2]=0,a[i>>2]=18520,a[A+80>>2]=i,f[i+4|0]=1,r=a[e+16>>2],i=a[e>>2],i)a[A+8>>2]=i,f[A+12|0]=0;else{if(f[A+12|0]=1,o=dA(24),a[o+20>>2]=0,a[o>>2]=804,i=a[e+8>>2],a[o+4>>2]=i,t=dA(B(i,804)),a[o+12>>2]=t,a[o+16>>2]=t,i=a[o+4>>2],a[o+8>>2]=i,c=i+-1|0,c)for(n=a[o>>2];i=t+n|0,a[t>>2]=i,t=i,c=c+-1|0,c;);else i=t;a[i>>2]=0,a[A+8>>2]=o}if(i=a[e+4>>2],i)return a[A+16>>2]=i,void(f[A+20|0]=0);if(f[A+20|0]=1,n=dA(24),a[n+20>>2]=0,i=(0|r)>80?r:80,i=(0|i)>116?i+16&-16:128,a[n>>2]=i,e=a[e+12>>2],a[n+4>>2]=e,t=dA(B(e,i)),a[n+12>>2]=t,a[n+16>>2]=t,e=a[n+4>>2],a[n+8>>2]=e,c=e+-1|0,c)for(e=a[n>>2];i=e+t|0,a[t>>2]=i,t=i,c=c+-1|0,c;);else i=t;a[i>>2]=0,a[A+16>>2]=n}function _i(A){A|=0;var e=0;return a[A>>2]=17664,o[A+20|0]&&(CA(a[a[A+16>>2]+16>>2]),CA(a[A+16>>2])),o[A+12|0]&&(CA(a[a[A+8>>2]+16>>2]),CA(a[A+8>>2])),e=a[A+28>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+28>>2]),e=a[A+32>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+32>>2]),e=a[A+36>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+36>>2]),e=a[A+40>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+40>>2]),e=a[A+44>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+44>>2]),e=a[A+48>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+48>>2]),e=a[A+52>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+52>>2]),e=a[A+56>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+56>>2]),e=a[A+72>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+72>>2]),e=a[A+76>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+76>>2]),e=a[A+68>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+68>>2]),e=a[A+84>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+84>>2]),e=a[A+80>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+80>>2]),e=a[A+24>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+24>>2]),0|A}function mi(A){return A|=0,a[A+8>>2]}function Ri(A){var e=0,r=0,i=0,t=0,n=0,c=0,b=0,l=0;if(a[A>>2]=18600,a[A+24>>2]=0,a[A+68>>2]=0,f[A+20|0]=1,a[A+16>>2]=0,f[A+44|0]=1,r=A+8|0,e=r,a[e>>2]=0,a[e+4>>2]=0,a[A+40>>2]=0,f[A- -64|0]=1,e=A+32|0,a[e>>2]=0,a[e+4>>2]=0,a[A+60>>2]=0,e=A+52|0,a[e>>2]=0,a[e+4>>2]=0,e=dA(32),i=a[r>>2],(0|i)>=1)for(r=12;t=r+e|0,n=a[A+16>>2]+r|0,a[t+-12>>2]=a[n+-12>>2],c=n+-8|0,l=a[c+4>>2],b=t+-8|0,a[b>>2]=a[c>>2],a[b+4>>2]=l,a[t>>2]=a[n>>2],r=r+16|0,i=i+-1|0,i;);r=a[A+16>>2],r&&(o[A+20|0]&&CA(r),a[A+16>>2]=0),a[A+16>>2]=e,f[A+20|0]=1,a[A+12>>2]=2,Qi(A)}function Qi(A){var e,r,i=0,t=0,n=0,c=0,b=0,l=0,u=0;if(r=a[A+32>>2],e=a[A+12>>2],!((0|r)>=(0|e))){A:if(a[A+36>>2]>=(0|e))n=a[A+40>>2];else{if(e?(n=dA(e<<2),t=a[A+32>>2]):t=r,i=a[A+40>>2],(0|t)>=1)for(c=n,b=i;a[c>>2]=a[b>>2],c=c+4|0,b=b+4|0,t=t+-1|0,t;);else if(!i){a[A+40>>2]=n,a[A+36>>2]=e,f[A+44|0]=1;break A}o[A+44|0]&&CA(i),a[A+40>>2]=n,f[A+44|0]=1,a[A+36>>2]=e}if(t=r<<2,l=e<<2,X(t+n|0,0,l-t|0),a[A+32>>2]=e,u=a[A+52>>2],(0|u)<(0|e)){A:if(a[A+56>>2]>=(0|e))n=a[A+60>>2];else{if(e?(n=dA(l),t=a[A+52>>2]):(n=0,t=u),i=a[A+60>>2],(0|t)>=1)for(c=n,b=i;a[c>>2]=a[b>>2],c=c+4|0,b=b+4|0,t=t+-1|0,t;);else if(!i){a[A+60>>2]=n,a[A+56>>2]=e,f[A- -64|0]=1;break A}o[A- -64|0]&&CA(i),a[A+60>>2]=n,f[A+64|0]=1,a[A+56>>2]=e}t=u<<2,X(t+n|0,0,l-t|0)}if(a[A+52>>2]=e,(0|e)>=1&&(X(a[A+40>>2],255,l),X(a[A+60>>2],255,l)),!((0|r)<1))for(b=a[A+60>>2],c=a[A+16>>2],n=a[A+40>>2],t=0;i=a[a[c>>2]+12>>2]|a[a[c+4>>2]+12>>2]<<16,i=(i<<15^-1)+i|0,i=B(i>>>10^i,9),i^=i>>>6,i=(i<<11^-1)+i|0,i=n+((a[A+12>>2]+-1&(i>>>16^i))<<2)|0,a[b>>2]=a[i>>2],a[i>>2]=t,c=c+16|0,b=b+4|0,t=t+1|0,(0|t)!=(0|r););}}function hi(A){return A|=0,A+4|0}function Gi(A,e){A|=0,e|=0,a[A+24>>2]=e}function yi(A){var e,r=0,i=0,t=0,n=0,c=0,b=0;if(e=Y-32|0,Y=e,a[A>>2]=19124,er(A+4|0),er(A+44|0),a[A+168>>2]=0,f[A+172|0]=1,r=A+160|0,a[r>>2]=0,a[r+4>>2]=0,f[A+153|0]=256,f[A+154|0]=1,f[A+152|0]=1,a[A+124>>2]=0,a[A+100>>2]=0,a[A+104>>2]=0,a[A+136>>2]=0,a[A+128>>2]=0,a[A+132>>2]=0,a[A+116>>2]=10,a[A+120>>2]=1,a[A+108>>2]=1,a[A+112>>2]=0,i=dA(72),Ri(i),r=a[A+160>>2],a[A+148>>2]=0,a[A+96>>2]=i,a[A+140>>2]=0,a[A+144>>2]=0,i=A+84|0,a[i>>2]=0,a[i+4>>2]=0,a[A+92>>2]=0,a[e+20>>2]=0,f[e+24|0]=1,a[e+12>>2]=0,a[e+16>>2]=0,(0|r)>=2)for(t=r+-1|0,r=36;i=a[A+168>>2]+r|0,b=i+-12|0,n=i+-4|0,c=a[n>>2],c&&(o[0|i]&&CA(c),a[n>>2]=0),a[n>>2]=0,a[b>>2]=0,f[0|i]=1,a[i+-8>>2]=0,r=r+20|0,t=t+-1|0,t;);else if(1!=(0|r))for(function(A){var e=0,r=0,i=0,t=0,n=0,c=0,b=0;if(a[A+8>>2]<1){if(n=dA(20),e=a[A+4>>2],!((0|e)<1)){for(;pi(r+n|0,a[A+12>>2]+r|0),r=r+20|0,e=e+-1|0,e;);if(i=a[A+4>>2],!((0|i)<1))for(e=8;r=a[A+12>>2]+e|0,b=r+-4|0,t=r+4|0,c=a[t>>2],c&&(o[r+8|0]&&CA(c),a[t>>2]=0),a[b>>2]=0,a[t>>2]=0,a[r>>2]=0,f[r+8|0]=1,e=e+20|0,i=i+-1|0,i;);}e=a[A+12>>2],e&&(o[A+16|0]&&CA(e),a[A+12>>2]=0),a[A+12>>2]=n,f[A+16|0]=1,a[A+8>>2]=1}}(A+156|0),t=B(r,20),r=r+-1|0;pi(a[A+168>>2]+t|0,e+8|0),t=t+20|0,i=r+1|0,n=i>>>0>=r>>>0,r=i,n;);a[A+160>>2]=1,A=a[e+20>>2],A&&(o[e+24|0]&&CA(A),a[e+20>>2]=0),Y=e+32|0}function pi(A,e){var r=0,i=0,t=0,n=0;if(a[A+4>>2]=0,a[A+8>>2]=0,a[A+12>>2]=0,f[A+16|0]=1,t=a[e+4>>2],(0|t)<=0)a[A+4>>2]=t;else{if(n=dA(t<<2),i=a[A+4>>2],(0|i)>=1)for(;a[r+n>>2]=a[a[A+12>>2]+r>>2],r=r+4|0,i=i+-1|0,i;);for(i=a[A+12>>2],i&&(o[A+16|0]&&CA(i),a[A+12>>2]=0),a[A+12>>2]=n,f[A+16|0]=1,a[A+8>>2]=t,r=0,i=t;a[r+n>>2]=0,r=r+4|0,n=a[A+12>>2],i=i+-1|0,i;);if(a[A+4>>2]=t,(0|t)>=1)for(r=0;a[r+n>>2]=a[a[e+12>>2]+r>>2],r=r+4|0,t=t+-1|0,t;);}}function Fi(A){A|=0;var e=0,r=0,i=0,t=0,n=0,c=0;if(a[A>>2]=19124,o[A+152|0]&&(e=a[A+96>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+96>>2])),r=a[A+160>>2],(0|r)>=1)for(i=8;e=a[A+168>>2]+i|0,c=e+-4|0,t=e+4|0,n=a[t>>2],n&&(o[e+8|0]&&CA(n),a[t>>2]=0),a[c>>2]=0,a[t>>2]=0,a[e>>2]=0,f[e+8|0]=1,i=i+20|0,r=r+-1|0,r;);return e=a[A+168>>2],e&&(o[A+172|0]&&CA(e),a[A+168>>2]=0),a[A+168>>2]=0,a[A+160>>2]=0,a[A+164>>2]=0,f[A+172|0]=1,rr(A+44|0),rr(A+4|0),0|A}function Wi(A,e,r,i){var f,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=0;if(f=Y-256|0,Y=f,e){for(s=C[r+24>>2],k=C[r+20>>2],v=C[r+16>>2],d=C[r+8>>2],g=C[r+4>>2],B=C[r>>2],a[f>>2]=e,t=64,A=f,r=1;;){A:{e:{r:{if(e=r+-1|0,u=e<<2,n=a[u+A>>2],!(C[n>>2]<=v^1|C[n+16>>2]>=B^1|C[n+4>>2]<=k^1|C[n+20>>2]>=g^1||C[n+8>>2]<=s^1|C[n+24>>2]>=d^1)){if(a[n+40>>2]){if(m=a[n+36>>2],(0|e)!=(0|t))break r;if(e=t?t<<1:1,(0|r)>(0|e))break r;o=e?dA(e<<2):0;i:{f:{if((0|t)>=1){for(c=o,b=A;a[c>>2]=a[b>>2],c=c+4|0,b=b+4|0,t=t+-1|0,t;);if(l)break f;break i}if(!A|!l)break i}CA(A)}l=1;break e}Qt[a[a[i>>2]+12>>2]](i,n)}break A}e=t,o=A}if(a[o+u>>2]=m,n=a[n+40>>2],(0|e)==(0|r))if(t=r?r<<1:1,(0|r)>=(0|t))t=r,A=o;else{A=t?dA(t<<2):0;e:{r:{if((0|r)>=1){for(e=A,c=o,b=r;a[e>>2]=a[c>>2],e=e+4|0,c=c+4|0,b=b+-1|0,b;);if(l)break r;break e}if(!o|!l)break e}CA(o)}l=1}else t=e,A=o;a[(r<<2)+A>>2]=n,e=r+1|0}if(r=e,!((0|r)>0))break}!A|!l||CA(A)}Y=f+256|0}function wi(A,e,r,i,t,n,c,b,l,u){var s,k=0,v=0,d=0,g=_(0),B=0,m=_(0),R=_(0),Q=_(0),h=0,G=_(0),y=_(0),p=0,F=_(0);if(s=Y-32|0,Y=s,e){if(v=a[l+4>>2],(0|v)<=127){if(a[l+8>>2]<=127){if(d=dA(512),A=a[l+4>>2],(0|A)>=1)for(;a[k+d>>2]=a[a[l+12>>2]+k>>2],k=k+4|0,A=A+-1|0,A;);A=a[l+12>>2],A&&(o[l+16|0]&&CA(A),a[l+12>>2]=0),a[l+12>>2]=d,f[l+16|0]=1,a[l+8>>2]=128}for(k=v<<2,A=v+-128|0;a[a[l+12>>2]+k>>2]=0,k=k+4|0,v=A+1|0,d=v>>>0>=A>>>0,A=v,d;);}for(a[l+4>>2]=128,a[a[l+12>>2]>>2]=e,k=126,A=1;;){a[s+12>>2]=0,d=a[l+12>>2],e=A+-1|0,p=e<<2,v=a[d+p>>2],C[s+8>>2]=C[v+8>>2]-C[b+8>>2],C[s+4>>2]=C[v+4>>2]-C[b+4>>2],C[s>>2]=C[v>>2]-C[b>>2],m=C[v+24>>2],R=C[v+16>>2],g=C[c+8>>2],Q=C[c>>2],C[s+20>>2]=C[v+20>>2]-C[c+4>>2],C[s+16>>2]=R-Q,C[s+24>>2]=m-g,a[s+28>>2]=0,B=a[t+4>>2],Q=C[r+4>>2],G=C[i+4>>2],m=_(_(C[4+((B<<4)+s|0)>>2]-Q)*G),g=C[i>>2],h=a[t>>2],y=C[r>>2],R=_(g*_(C[(1-h<<4)+s>>2]-y));A:{if(!(m>R||(g=_(_(C[(h<<4)+s>>2]-y)*g),Q=_(G*_(C[4+((1-B<<4)+s|0)>>2]-Q)),g>Q||(B=a[t+8>>2],y=C[r+8>>2],F=C[i+8>>2],G=_(_(C[8+((B<<4)+s|0)>>2]-y)*F),R=Q<R?Q:R,G>R||(m=m>g?m:g,g=_(F*_(C[8+((1-B<<4)+s|0)>>2]-y)),m>g|(G>m?G:m)<n^1|(g<R?g:R)>_(0)^1))))){if(a[v+40>>2]){if((0|e)>(0|k)){if(e=a[l+4>>2],B=e<<1,(0|e)<(0|B)){if(a[l+8>>2]<(0|B)){if(e){if(d=dA(e<<3),h=a[l+4>>2],!((0|h)<1))for(k=0;a[k+d>>2]=a[a[l+12>>2]+k>>2],k=k+4|0,h=h+-1|0,h;);}else d=0;k=a[l+12>>2],k&&(o[l+16|0]&&CA(k),a[l+12>>2]=0),a[l+12>>2]=d,f[l+16|0]=1,a[l+8>>2]=B}for(k=e<<2;a[k+d>>2]=0,k=k+4|0,d=a[l+12>>2],e=e+-1|0,e;);}a[l+4>>2]=B,k=B+-2|0}a[d+p>>2]=a[v+36>>2],a[a[l+12>>2]+(A<<2)>>2]=a[v+40>>2],A=A+1|0;break A}Qt[a[a[u>>2]+12>>2]](u,v)}A=e}if(!A)break}}Y=s+32|0}function Di(A,e,r,i){var t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0;if(!(!e|!r)){if(!(a[A+24>>2]>127|a[A+28>>2]>127)){if(l=dA(1024),t=a[A+24>>2],(0|t)>=1)for(;b=a[A+32>>2]+c|0,u=a[b+4>>2],n=c+l|0,a[n>>2]=a[b>>2],a[n+4>>2]=u,c=c+8|0,t=t+-1|0,t;);t=a[A+32>>2],t&&(o[A+36|0]&&CA(t),a[A+32>>2]=0),a[A+32>>2]=l,a[A+28>>2]=128,f[A+36|0]=1}for(a[A+24>>2]=128,l=a[A+32>>2],a[l+4>>2]=r,a[l>>2]=e,r=124,e=1;;){if(b=a[A+32>>2],l=e,e=e+-1|0,s=e<<3,t=b+s|0,n=a[t+4>>2],t=a[t>>2],(0|e)>(0|r)){if(r=a[A+24>>2],u=r<<1,!((0|r)>=(0|u)|a[A+28>>2]>=(0|u))){if(r){if(b=dA(r<<4),r=a[A+24>>2],!((0|r)<1))for(c=0;k=a[A+32>>2]+c|0,d=a[k+4>>2],v=c+b|0,a[v>>2]=a[k>>2],a[v+4>>2]=d,c=c+8|0,r=r+-1|0,r;);}else b=0;r=a[A+32>>2],r&&(o[A+36|0]&&CA(r),a[A+32>>2]=0),a[A+32>>2]=b,f[A+36|0]=1,a[A+28>>2]=u}a[A+24>>2]=u,r=u+-4|0}A:if((0|t)!=(0|n)){if(!(C[t>>2]<=C[n+16>>2]^1|C[t+16>>2]>=C[n>>2]^1|C[t+4>>2]<=C[n+20>>2]^1|C[t+20>>2]>=C[n+4>>2]^1||C[t+8>>2]<=C[n+24>>2]^1|C[t+24>>2]>=C[n+8>>2]^1))if(c=a[n+40>>2],a[t+40>>2]){if(e=a[t+36>>2],c){c=b+s|0,a[c+4>>2]=a[n+36>>2],a[c>>2]=e,c=a[t+40>>2],e=l<<3,b=e+a[A+32>>2]|0,a[b+4>>2]=a[n+36>>2],a[b>>2]=c,c=a[t+36>>2],b=e+a[A+32>>2]|0,a[b+12>>2]=a[n+40>>2],a[b+8>>2]=c,t=a[t+40>>2],e=e+a[A+32>>2]|0,a[e+20>>2]=a[n+40>>2],a[e+16>>2]=t,e=l+3|0;break A}c=b+s|0,a[c+4>>2]=n,a[c>>2]=e,e=a[t+40>>2],t=a[A+32>>2]+(l<<3)|0,a[t+4>>2]=n,a[t>>2]=e,e=l+1|0}else c?(e=b+s|0,a[e+4>>2]=a[n+36>>2],a[e>>2]=t,e=a[A+32>>2]+(l<<3)|0,a[e+4>>2]=a[n+40>>2],a[e>>2]=t,e=l+1|0):Qt[a[a[i>>2]+8>>2]](i,t,n)}else{if(!a[t+40>>2])break A;e=b+s|0,n=a[t+36>>2],a[e+4>>2]=n,a[e>>2]=n,e=l<<3,n=e+a[A+32>>2]|0,c=a[t+40>>2],a[n+4>>2]=c,a[n>>2]=c,n=a[t+40>>2],e=8+(e+a[A+32>>2]|0)|0,a[e>>2]=a[t+36>>2],a[e+4>>2]=n,e=l+2|0}if(!e)break}}}function Ei(A,e,r,i){for(var f=0,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,C=0,g=0,B=0;;){for(g=r,s=a[A+12>>2],l=s+((r+i|0)/2<<4)|0,C=a[l+8>>2],u=a[l+4>>2],v=a[l>>2],l=i;;){A:{if(!v)for(b=(r<<4)+s|0;;){o=-1,f=-1,t=a[b>>2],t&&(f=a[t+12>>2]),n=a[b+4>>2],n&&(o=a[n+12>>2]),c=u?a[u+12>>2]:-1;e:if(!((0|f)>-1)){if(!(t|(0|o)>(0|c))){if((0|n)!=(0|u))break A;if(d[b+8>>2]>C>>>0)break e;break A}if((0|o)<=(0|c)|t)break A}b=b+16|0,r=r+1|0}for(b=(r<<4)+s|0,k=a[v+12>>2];;){if(o=-1,f=-1,t=a[b>>2],t&&(f=a[t+12>>2]),n=a[b+4>>2],n&&(o=a[n+12>>2]),c=u?a[u+12>>2]:-1,!((0|f)>(0|k)))if((0|t)!=(0|v)|(0|o)>(0|c)){if((0|t)!=(0|v)|(0|o)<=(0|c))break A}else if((0|n)!=(0|u)|d[b+8>>2]<=C>>>0)break A;b=b+16|0,r=r+1|0}}A:{if(!v)for(f=(l<<4)+s|0;;){c=-1,o=-1,n=a[f>>2],n&&(o=a[n+12>>2]),c=u?a[u+12>>2]:c,k=a[f+4>>2],t=-1,k&&(t=a[k+12>>2]);e:if(!((0|o)<-1)){if(!(n|(0|c)>(0|t))){if((0|u)!=(0|k))break A;if(d[f+8>>2]<C>>>0)break e;break A}if((0|c)<=(0|t)|n)break A}f=f+-16|0,l=l+-1|0}for(f=(l<<4)+s|0,B=a[v+12>>2];;){if(c=-1,o=-1,n=a[f>>2],n&&(o=a[n+12>>2]),c=u?a[u+12>>2]:c,k=a[f+4>>2],t=-1,k&&(t=a[k+12>>2]),!((0|B)>(0|o)))if((0|n)!=(0|v)|(0|c)>(0|t)){if((0|n)!=(0|v)|(0|c)<=(0|t))break A}else if((0|u)!=(0|k)|d[f+8>>2]>=C>>>0)break A;f=f+-16|0,l=l+-1|0}}if((0|r)<=(0|l)&&(o=(r<<4)+s|0,c=a[o+4>>2],t=a[o+8>>2],o=a[o+12>>2],s=a[b>>2],n=a[f+4>>2],a[b>>2]=a[f>>2],a[b+4>>2]=n,f=f+8|0,n=a[f+4>>2],b=b+8|0,a[b>>2]=a[f>>2],a[b+4>>2]=n,f=a[A+12>>2]+(l<<4)|0,a[f+12>>2]=o,a[f+4>>2]=c,a[f+8>>2]=t,a[f>>2]=s,l=l+-1|0,r=r+1|0),!((0|r)<=(0|l)))break;s=a[A+12>>2]}if((0|l)>(0|g)&&Ei(A,e,g,l),!((0|r)<(0|i)))break}}function Zi(A,e){A|=0,e|=0,A=a[A+4>>2],Qt[a[a[A>>2]+8>>2]](A,a[e+36>>2])}function Yi(A,e){return _((A?_(-e):e)*e)}function Vi(A,e){var r,i=0,f=0,t=0,n=0,o=0,v=_(0),d=0,C=0;s(e),t=c(0),o=t<<1,r=o+-1|0;A:{e:{r:{i:{s(A),i=c(0);f:{if(i+-8388608>>>0<=2130706431){if(r>>>0>4278190078)break f;break r}if(r>>>0<4278190079)break i}if(v=_(1),!o|1065353216==(0|i))break e;if(i<<=1,!(o>>>0<4278190081&&i>>>0<=4278190080))return _(A+e);if(2130706432==(0|i))break e;return _((-1^t)>>>31==(i>>>0<2130706432|0)?0:e*e)}if((i<<1)-1>>>0>=4278190079){if(v=_(A*A),(0|i)>-1||(i=t>>>23&255,i+-127>>>0>23||(i=1<<150-i,v=i&t?i+-1&t?v:_(-v):v)),(0|t)>-1)break e;return _(_(1)/v)}if((0|i)<=-1){if(n=t>>>23&255,n>>>0<127)break A;i:{if(n>>>0<=150){if(n=1<<150-n,n+-1&t)break A;if(o=65536,t&n)break i}o=0}n=o,i&=2147483647}i>>>0>8388607||(i=(2147483647&(s(_(A*_(8388608))),c(0)))-192937984|0)}if(t=i+-1060306944|0,o=t>>>15&240,f=g[o+19464>>3]*(b(0,i-(-8388608&t)|0),+k())-1,d=f*f,f=((g[2466]+g[2465]*f)*(d*d)+(d*(g[2468]+g[2467]*f)+(g[o+19472>>3]+ +(t>>23)+f*g[2469])))*+e,u(+f),i=0|c(1),c(0),i&=2147450880,!(1079967744==(0|i)|i>>>0<1079967744)){if(f>127.99999995700433)return Yi(n,_(1.5845632502852868e29));if(f<=-150)return Yi(n,_(2.524354896707238e-29))}C=f,f=g[2502],d=C+f,f=C-(d-f),f=f*f*(g[2504]+g[2503]*f)+(f*g[2505]+1),u(+d),c(1),i=0|c(0),t=n+i<<15,n=19760+((31&i)<<3)|0,o=a[n>>2],i=o,t=a[n+4>>2]+t|0,b(0,0|i),b(1,0|(i>>>0<i>>>0?t+1|0:t)),v=_(f*+l())}return v}return A=_(A-A),_(A/A)}function Ni(A){var e,r=_(0),i=0,f=_(0);if(s(A),i=c(0),e=2147483647&i,e>>>0>=1065353216)return _(1065353216==(0|e)?(0|i)<0?3.141592502593994:0:_(0)/_(A-A));A:{if(e>>>0<=1056964607){if(r=_(1.570796251296997),e>>>0<847249409)break A;return r=_(A*A),_(_(_(_(7.549789415861596e-8)-_(_(_(r*_(_(r*_(_(r*_(-.008656363002955914))+_(-.04274342209100723)))+_(.16666586697101593)))/_(_(r*_(-.7066296339035034))+_(1)))*A))-A)+_(1.570796251296997))}if((0|i)<=-1)return A=_(_(A+_(1))*_(.5)),r=_(y(A)),A=_(_(1.570796251296997)-_(r+_(_(r*_(_(A*_(_(A*_(_(A*_(-.008656363002955914))+_(-.04274342209100723)))+_(.16666586697101593)))/_(_(A*_(-.7066296339035034))+_(1))))+_(-7.549789415861596e-8)))),_(A+A);A=_(_(_(1)-A)*_(.5)),f=_(y(A)),b(0,-4096&(s(f),c(0))),r=k(),A=_(_(_(f*_(_(A*_(_(A*_(_(A*_(-.008656363002955914))+_(-.04274342209100723)))+_(.16666586697101593)))/_(_(A*_(-.7066296339035034))+_(1))))+_(_(A-_(r*r))/_(f+r)))+r),r=_(A+A)}return r}function Ii(A,e){var r;Ee(A),f[A+560|0]=1,a[A>>2]=20096,a[A+556>>2]=0,r=A+548|0,a[r>>2]=0,a[r+4>>2]=0,function(A,e){var r=0,i=0,t=0,n=_(0),c=0,b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=0;c=Y-16|0,Y=c,a[A+372>>2]=0,a[A+376>>2]=0,a[A+252>>2]=2,a[A+604>>2]=1065353216,a[A+608>>2]=1065353216,a[A+408>>2]=1065353216,a[A+412>>2]=1065353216,a[A+472>>2]=0,a[A+476>>2]=0,r=A+380|0,a[r>>2]=0,a[r+4>>2]=0,r=A+388|0,a[r>>2]=0,a[r+4>>2]=0,r=A+396|0,a[r>>2]=0,a[r+4>>2]=0,r=A+612|0,a[r>>2]=1065353216,a[r+4>>2]=0,r=A+420|0,a[r>>2]=0,a[r+4>>2]=0,a[A+416>>2]=1065353216,r=A+428|0,a[r>>2]=0,a[r+4>>2]=0,r=A+436|0,a[r>>2]=0,a[r+4>>2]=0,r=A+444|0,a[r>>2]=0,a[r+4>>2]=0,a[A+452>>2]=0,r=A+480|0,a[r>>2]=0,a[r+4>>2]=0,r=A+488|0,a[r>>2]=0,a[r+4>>2]=0,r=A+496|0,a[r>>2]=0,a[r+4>>2]=0,b=C[e+96>>2],n=C[e+92>>2],C[c+12>>2]=n,C[c+8>>2]=b,a[c+4>>2]=0,a[c>>2]=1065353216,a[A+504>>2]=a[(n<_(0)?c+4|0:n>_(1)?c:c+12|0)>>2],a[c+4>>2]=0,a[c>>2]=1065353216,a[A+508>>2]=a[(b<_(0)?c+4|0:b>_(1)?c:c+8|0)>>2],a[A+668>>2]=0,a[A+672>>2]=0,r=a[e+120>>2],a[A+532>>2]=a[e+116>>2],a[A+536>>2]=r,i=a[e+4>>2],a[A+540>>2]=i,f[A+512|0]=o[e+124|0],r=a[e+132>>2],a[A+516>>2]=a[e+128>>2],a[A+520>>2]=r,r=a[e+140>>2],a[A+524>>2]=a[e+136>>2],a[A+528>>2]=r,i?(r=A+4|0,Qt[a[a[i>>2]+8>>2]](i,r)):(r=a[e+12>>2],a[A+4>>2]=a[e+8>>2],a[A+8>>2]=r,i=e+16|0,t=a[i+4>>2],r=A+12|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=e+32|0,t=a[i+4>>2],r=A+28|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=e+24|0,t=a[i+4>>2],r=A+20|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=e+40|0,t=a[i+4>>2],r=A+36|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=e+48|0,t=a[i+4>>2],r=A+44|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=e- -64|0,t=a[i+4>>2],r=A+60|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=e+56|0,t=a[i+4>>2],r=A+52|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,r=A+4|0),a[A+132>>2]=0,a[A+136>>2]=0,i=a[r+4>>2],a[A+68>>2]=a[r>>2],a[A+72>>2]=i,i=A+156|0,a[i>>2]=0,a[i+4>>2]=0,i=A+148|0,a[i>>2]=0,a[i+4>>2]=0,i=A+140|0,a[i>>2]=0,a[i+4>>2]=0,t=A+20|0,p=a[t+4>>2],i=A+84|0,a[i>>2]=a[t>>2],a[i+4>>2]=p,r=r+8|0,t=a[r+4>>2],i=A+76|0,a[i>>2]=a[r>>2],a[i+4>>2]=t,i=A+28|0,t=a[i+4>>2],r=A+92|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=A+36|0,t=a[i+4>>2],r=A+100|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=A+44|0,t=a[i+4>>2],r=A+108|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=A+52|0,t=a[i+4>>2],r=A+116|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=A+60|0,t=a[i+4>>2],r=A+124|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,a[A+228>>2]=a[e+100>>2],a[A+236>>2]=a[e+104>>2],a[A+240>>2]=a[e+108>>2],a[A+232>>2]=a[e+112>>2],Qt[a[a[A>>2]+8>>2]](A,a[e+72>>2]),r=a[699],a[A+568>>2]=r,a[699]=r+1,b=_(0),r=a[A+204>>2],n=C[e>>2],n!=_(0)?(a[A+204>>2]=-2&r,b=_(_(1)/n)):a[A+204>>2]=1|r,a[A+436>>2]=0,C[A+404>>2]=b,C[A+432>>2]=n*C[A+448>>2],C[A+428>>2]=n*C[A+444>>2],C[A+424>>2]=n*C[A+440>>2],n=C[e+84>>2],l=C[e+80>>2],B=C[e+76>>2],C[A+620>>2]=b*C[A+408>>2],r=A+624|0,C[r>>2]=b*C[A+412>>2],i=A+628|0,C[i>>2]=b*C[A+416>>2],e=A+632|0,a[e>>2]=0,a[A+468>>2]=0,m=B!=_(0)?_(_(1)/B):_(0),C[A+456>>2]=m,R=l!=_(0)?_(_(1)/l):_(0),C[A+460>>2]=R,Q=n!=_(0)?_(_(1)/n):_(0),C[A+464>>2]=Q,n=C[A+12>>2],l=C[A+8>>2],B=C[A+28>>2],h=C[A+20>>2],G=C[A+24>>2],v=C[A+44>>2],d=C[A+36>>2],g=C[A+40>>2],y=C[A+4>>2],a[A+564>>2]=8,a[A+368>>2]=0,a[A+352>>2]=0,a[A+336>>2]=0,u=_(m*d),s=_(R*g),k=_(Q*v),C[A+364>>2]=_(_(d*u)+_(g*s))+_(v*k),C[A+360>>2]=_(_(h*u)+_(G*s))+_(B*k),C[A+356>>2]=_(_(y*u)+_(l*s))+_(n*k),u=_(m*h),s=_(R*G),k=_(Q*B),C[A+348>>2]=_(_(d*u)+_(g*s))+_(v*k),C[A+344>>2]=_(_(h*u)+_(G*s))+_(B*k),C[A+340>>2]=_(_(y*u)+_(l*s))+_(n*k),u=d,d=_(m*y),s=g,g=_(R*l),k=v,v=_(Q*n),C[A+332>>2]=_(_(u*d)+_(s*g))+_(k*v),C[A+328>>2]=_(_(d*h)+_(g*G))+_(v*B),C[A+324>>2]=_(_(y*d)+_(l*g))+_(n*v),t=A+596|0,a[t>>2]=0,a[t+4>>2]=0,t=A+588|0,a[t>>2]=0,a[t+4>>2]=0,t=A+580|0,a[t>>2]=0,a[t+4>>2]=0,a[A+572>>2]=0,a[A+576>>2]=0,n=C[A+408>>2],l=C[A+412>>2],C[i>>2]=b*C[A+416>>2],C[r>>2]=b*l,C[A+620>>2]=b*n,a[A+664>>2]=0,r=A+656|0,a[r>>2]=0,a[r+4>>2]=0,r=A+648|0,a[r>>2]=0,a[r+4>>2]=0,A=A+640|0,a[A>>2]=0,a[A+4>>2]=0,a[e>>2]=0,a[e+4>>2]=0,Y=c+16|0}(A,e)}function Ji(A,e,r){xi(A+4|0,A+372|0,A+388|0,e,r)}function xi(A,e,r,i,f){var t,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=0;t=Y-16|0,Y=t,n=C[A+52>>2],o=C[A+56>>2],b=C[A+48>>2],c=C[e>>2],l=C[e+4>>2],u=C[e+8>>2],a[f+60>>2]=0,C[f+56>>2]=o+_(u*i),C[f+52>>2]=n+_(l*i),C[f+48>>2]=b+_(c*i),b=C[r>>2],s=C[r+4>>2],k=C[r+8>>2],n=_(_(_(b*b)+_(s*s))+_(k*k)),n=n>_(1.1920928955078125e-7)?_(y(n)):_(0),o=_(n*i)>_(.7853981852531433)?_(_(.7853981852531433)/i):n,n=o<_(.0010000000474974513)?_(_(i*_(.5))+_(o*_(_(_(_(i*i)*i)*_(-.02083333395421505))*o))):_(dr(_(_(o*_(.5))*i))/o),tt(A,t),c=C[t+12>>2],l=Cr(_(_(o*i)*_(.5))),u=_(b*n),v=C[t>>2],s=_(s*n),d=C[t+4>>2],n=_(k*n),k=C[t+8>>2],o=_(_(_(_(c*l)-_(u*v))-_(s*d))-_(n*k)),b=_(_(_(_(n*c)+_(l*k))+_(u*d))-_(s*v)),i=_(_(_(_(l*v)+_(u*c))+_(s*k))-_(n*d)),n=_(_(_(n*v)+_(_(s*c)+_(l*d)))-_(u*k)),c=_(_(o*o)+_(_(b*b)+_(_(i*i)+_(n*n)))),c>_(1.1920928955078125e-7)&&(c=_(_(1)/_(y(c))),o=_(o*c),b=_(b*c),n=_(n*c),i=_(i*c),c=_(_(o*o)+_(_(b*b)+_(_(n*n)+_(i*i))))),c>_(1.1920928955078125e-7)?(a[f+12>>2]=0,a[f+44>>2]=0,a[f+28>>2]=0,l=_(_(2)/c),c=_(b*l),u=_(n*c),v=_(i*l),s=_(o*v),C[f+36>>2]=u+s,d=_(i*c),l=_(n*l),k=_(o*l),C[f+32>>2]=d-k,C[f+24>>2]=u-s,u=_(i*l),o=_(o*c),C[f+16>>2]=u+o,C[f+8>>2]=d+k,C[f+4>>2]=u-o,i=_(i*v),n=_(n*l),C[f+40>>2]=_(1)-_(i+n),o=i,i=_(b*c),C[f+20>>2]=_(1)-_(o+i),C[f>>2]=_(1)-_(n+i)):(e=a[A+4>>2],a[f>>2]=a[A>>2],a[f+4>>2]=e,r=A+8|0,g=a[r+4>>2],e=f+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=g,e=a[A+20>>2],a[f+16>>2]=a[A+16>>2],a[f+20>>2]=e,r=A+24|0,g=a[r+4>>2],e=f+24|0,a[e>>2]=a[r>>2],a[e+4>>2]=g,e=a[A+36>>2],a[f+32>>2]=a[A+32>>2],a[f+36>>2]=e,A=A+40|0,r=a[A+4>>2],e=f+40|0,a[e>>2]=a[A>>2],a[e+4>>2]=r),Y=t+16|0}function Ui(A,e){var r,i=0,f=0,t=0,n=0,o=0,c=0,b=0,l=_(0),u=0;r=Y-32|0,Y=r,e!=_(0)&&(i=a[A+540>>2],i&&Qt[a[a[i>>2]+8>>2]](i,A+4|0),a[A+384>>2]=0,i=A+380|0,e=_(_(1)/e),n=A+60|0,o=A+124|0,C[i>>2]=e*_(C[n>>2]-C[o>>2]),C[A+376>>2]=e*_(C[A+56>>2]-C[A+120>>2]),c=A+52|0,b=A+116|0,C[A+372>>2]=e*_(C[c>>2]-C[b>>2]),Mi(A+68|0,A+4|0,r+16|0,r+12|0),a[A+400>>2]=0,f=A+396|0,l=C[r+12>>2],C[f>>2]=e*_(l*C[r+24>>2]),C[A+392>>2]=e*_(l*C[r+20>>2]),C[A+388>>2]=e*_(l*C[r+16>>2]),u=a[i+4>>2],t=A+140|0,a[t>>2]=a[i>>2],a[t+4>>2]=u,i=a[A+376>>2],a[A+132>>2]=a[A+372>>2],a[A+136>>2]=i,i=a[A+392>>2],a[A+148>>2]=a[A+388>>2],a[A+152>>2]=i,t=a[f+4>>2],i=A+156|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,i=a[A+8>>2],a[A+68>>2]=a[A+4>>2],a[A+72>>2]=i,f=A+12|0,t=a[f+4>>2],i=A+76|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,f=A+20|0,t=a[f+4>>2],i=A+84|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,f=A+28|0,t=a[f+4>>2],i=A+92|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,f=A+44|0,t=a[f+4>>2],i=A+108|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,i=A+100|0,A=A+36|0,f=a[A+4>>2],a[i>>2]=a[A>>2],a[i+4>>2]=f,A=a[n+4>>2],a[o>>2]=a[n>>2],a[o+4>>2]=A,A=a[c+4>>2],a[b>>2]=a[c>>2],a[b+4>>2]=A),Y=r+32|0}function Mi(A,e,r,i){var f,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0);f=Y+-64|0,Y=f,d=C[e+24>>2],g=C[e+20>>2],B=C[e+40>>2],m=C[e+36>>2],b=C[A+40>>2],l=C[A+20>>2],k=C[A+36>>2],u=C[A+24>>2],R=C[e+8>>2],G=C[e>>2],p=C[e+4>>2],F=C[e+16>>2],W=C[e+32>>2],n=C[A+8>>2],o=C[A+4>>2],v=C[A+32>>2],s=C[A+16>>2],c=C[A>>2],a[f+60>>2]=0,a[f+44>>2]=0,D=_(_(l*b)-_(u*k)),E=_(_(u*v)-_(b*s)),Z=_(_(k*s)-_(l*v)),t=_(_(1)/_(_(_(c*D)+_(o*E))+_(n*Z))),w=_(_(_(u*o)-_(l*n))*t),u=_(_(_(s*n)-_(u*c))*t),l=_(_(_(l*c)-_(s*o))*t),C[f+56>>2]=_(_(W*w)+_(m*u))+_(B*l),s=_(_(_(k*n)-_(b*o))*t),n=_(_(_(b*c)-_(v*n))*t),o=_(_(_(v*o)-_(k*c))*t),C[f+52>>2]=_(_(W*s)+_(m*n))+_(B*o),C[f+40>>2]=_(_(w*F)+_(u*g))+_(l*d),C[f+36>>2]=_(_(s*F)+_(n*g))+_(o*d),a[f+28>>2]=0,c=_(D*t),b=_(E*t),t=_(Z*t),C[f+48>>2]=_(_(W*c)+_(m*b))+_(B*t),C[f+32>>2]=_(_(c*F)+_(b*g))+_(t*d),C[f+24>>2]=_(R*l)+_(_(G*w)+_(p*u)),C[f+20>>2]=_(R*o)+_(_(G*s)+_(p*n)),C[f+16>>2]=_(R*t)+_(_(G*c)+_(p*b)),tt(f+16|0,f),c=C[f>>2],o=C[f+4>>2],n=C[f+8>>2],b=C[f+12>>2],t=_(_(1)/_(y(_(_(_(_(c*c)+_(o*o))+_(n*n))+_(b*b))))),n=_(n*t),C[f+8>>2]=n,o=_(o*t),C[f+4>>2]=o,c=_(c*t),C[f>>2]=c,t=_(b*t),C[f+12>>2]=t,t=Ni(_(Q(_(h(t,_(-1))),_(1)))),C[i>>2]=t+t,a[r+12>>2]=0,C[r+8>>2]=n,C[r+4>>2]=o,C[r>>2]=c,t=_(_(_(c*c)+_(o*o))+_(n*n)),t<_(1.4210854715202004e-14)?(a[r+8>>2]=0,a[r+12>>2]=0,a[r>>2]=1065353216,a[r+4>>2]=0):(t=_(_(1)/_(y(t))),C[r+8>>2]=n*t,C[r+4>>2]=o*t,C[r>>2]=c*t),Y=f- -64|0}function Si(A,e){var r=_(0),i=0,f=_(0),t=_(0),n=_(0);r=C[A+404>>2],r!=_(0)&&(f=C[e>>2],t=C[e+4>>2],n=C[e+8>>2],a[A+436>>2]=0,r=_(_(1)/r),C[A+432>>2]=n*r,C[A+428>>2]=r*t,C[A+424>>2]=r*f),i=a[e+4>>2],a[A+440>>2]=a[e>>2],a[A+444>>2]=i,e=e+8|0,i=a[e+4>>2],A=A+448|0,a[A>>2]=a[e>>2],a[A+4>>2]=i}function Xi(A,e){var r=0,i=_(0),f=_(0),t=_(0),n=_(0),c=_(0),b=_(0),l=_(0),u=_(0);if(l=C[A+504>>2],f=Vi(_(_(1)-l),e),n=_(f*C[A+372>>2]),C[A+372>>2]=n,r=A+376|0,i=_(f*C[r>>2]),C[r>>2]=i,r=A+380|0,f=_(f*C[r>>2]),C[r>>2]=f,u=C[A+508>>2],t=Vi(_(_(1)-u),e),e=_(t*C[A+388>>2]),C[A+388>>2]=e,r=A+392|0,c=_(t*C[r>>2]),C[r>>2]=c,r=A+396|0,t=_(t*C[r>>2]),C[r>>2]=t,o[A+512|0]&&(_(_(_(e*e)+_(c*c))+_(t*t))<C[A+524>>2]^1|_(_(_(n*n)+_(i*i))+_(f*f))<C[A+520>>2]^1||(b=C[A+516>>2],t=_(t*b),C[A+396>>2]=t,c=_(c*b),C[A+392>>2]=c,e=_(e*b),C[A+388>>2]=e,f=_(f*b),C[A+380>>2]=f,i=_(i*b),C[A+376>>2]=i,n=_(n*b),C[A+372>>2]=n),b=_(y(_(_(_(n*n)+_(i*i))+_(f*f)))),b<l&&(b>_(.004999999888241291)?(l=f,f=_(_(1)/b),C[A+380>>2]=l-_(_(l*f)*_(.004999999888241291)),C[A+376>>2]=i-_(_(i*f)*_(.004999999888241291)),C[A+372>>2]=n-_(_(n*f)*_(.004999999888241291))):(r=A+372|0,a[r>>2]=0,a[r+4>>2]=0,r=r+8|0,a[r>>2]=0,a[r+4>>2]=0)),i=_(y(_(_(_(e*e)+_(c*c))+_(t*t)))),i<u)){if(i>_(.004999999888241291))return i=_(_(1)/i),C[A+396>>2]=t-_(_(t*i)*_(.004999999888241291)),C[A+392>>2]=c-_(_(c*i)*_(.004999999888241291)),void(C[A+388>>2]=e-_(_(e*i)*_(.004999999888241291)));A=A+388|0,a[A>>2]=0,a[A+4>>2]=0,A=A+8|0,a[A>>2]=0,a[A+4>>2]=0}}function Ti(A){var e=0;3&o[A+204|0]||(C[A+472>>2]=_(C[A+424>>2]*C[A+408>>2])+C[A+472>>2],e=A+476|0,C[e>>2]=_(C[A+428>>2]*C[A+412>>2])+C[e>>2],e=A+480|0,C[e>>2]=_(C[A+432>>2]*C[A+416>>2])+C[e>>2])}function ji(A,e){!function(A,e){var r=0,i=0,f=0,t=0,n=0,c=_(0),b=_(0),l=_(0),u=0,s=_(0),k=_(0),v=_(0),d=0,g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=0;2&o[A+204|0]?(r=a[A+8>>2],a[A+68>>2]=a[A+4>>2],a[A+72>>2]=r,i=A+12|0,f=a[i+4>>2],r=A+76|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=A+20|0,f=a[i+4>>2],r=A+84|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=A+28|0,f=a[i+4>>2],r=A+92|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=A+36|0,f=a[i+4>>2],r=A+100|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=A+44|0,f=a[i+4>>2],r=A+108|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=A+52|0,f=a[i+4>>2],r=A+116|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=A+60|0,f=a[i+4>>2],r=A+124|0,a[r>>2]=a[i>>2],a[r+4>>2]=f):(r=a[e+4>>2],a[A+68>>2]=a[e>>2],a[A+72>>2]=r,i=e+8|0,f=a[i+4>>2],r=A+76|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=e+24|0,f=a[i+4>>2],r=A+92|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=a[e+20>>2],r=A+84|0,a[r>>2]=a[e+16>>2],a[r+4>>2]=i,i=a[e+36>>2],r=A+100|0,a[r>>2]=a[e+32>>2],a[r+4>>2]=i,i=e+40|0,f=a[i+4>>2],r=A+108|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=e+56|0,f=a[i+4>>2],r=A+124|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=a[e+52>>2],r=A+116|0,a[r>>2]=a[e+48>>2],a[r+4>>2]=i),r=a[A+392>>2],a[A+148>>2]=a[A+388>>2],a[A+152>>2]=r,r=a[A+376>>2],a[A+132>>2]=a[A+372>>2],a[A+136>>2]=r,i=A+396|0,f=a[i+4>>2],r=A+156|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=A+380|0,f=a[i+4>>2],r=A+140|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,f=e+8|0,d=a[f+4>>2],r=A+12|0,a[r>>2]=a[f>>2],a[r+4>>2]=d,i=a[e+4>>2],a[A+4>>2]=a[e>>2],a[A+8>>2]=i,d=e+24|0,n=a[d+4>>2],i=A+28|0,a[i>>2]=a[d>>2],a[i+4>>2]=n,n=a[e+20>>2],f=A+20|0,a[f>>2]=a[e+16>>2],a[f+4>>2]=n,t=e+40|0,u=a[t+4>>2],d=A+44|0,n=d,a[n>>2]=a[t>>2],a[n+4>>2]=u,u=a[e+36>>2],n=A+36|0,t=n,a[t>>2]=a[e+32>>2],a[t+4>>2]=u,u=e+56|0,F=a[u+4>>2],t=A+60|0,a[t>>2]=a[u>>2],a[t+4>>2]=F,u=a[e+52>>2],t=A+52|0,a[t>>2]=a[e+48>>2],a[t+4>>2]=u,g=C[A+8>>2],B=C[r>>2],m=C[i>>2],R=C[f>>2],Q=C[A+24>>2],s=C[d>>2],G=C[A+464>>2],k=C[n>>2],v=C[A+40>>2],y=C[A+460>>2],h=C[A+4>>2],p=C[A+456>>2],a[A+368>>2]=0,a[A+352>>2]=0,a[A+336>>2]=0,c=_(p*k),b=_(y*v),l=_(G*s),C[A+364>>2]=_(_(k*c)+_(v*b))+_(s*l),C[A+360>>2]=_(_(R*c)+_(Q*b))+_(m*l),C[A+356>>2]=_(_(h*c)+_(g*b))+_(B*l),c=_(p*R),b=_(y*Q),l=_(G*m),C[A+348>>2]=_(_(k*c)+_(v*b))+_(s*l),C[A+344>>2]=_(_(R*c)+_(Q*b))+_(m*l),C[A+340>>2]=_(_(h*c)+_(g*b))+_(B*l),c=k,k=_(h*p),b=v,v=_(g*y),l=s,s=_(B*G),C[A+332>>2]=_(_(c*k)+_(b*v))+_(l*s),C[A+328>>2]=_(_(k*R)+_(v*Q))+_(s*m),C[A+324>>2]=_(_(h*k)+_(g*v))+_(B*s)}(A,e)}function Oi(A,e,r){var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0);a[A+12>>2]=0,f=C[e+388>>2],i=C[e+456>>2],k=i!=_(0)?_(_(1)/i):_(0),v=C[e+20>>2],t=_(k*v),c=C[e+4>>2],i=C[e+460>>2],R=i!=_(0)?_(_(1)/i):_(0),d=C[e+24>>2],b=_(R*d),l=C[e+8>>2],i=C[e+464>>2],Q=i!=_(0)?_(_(1)/i):_(0),g=C[e+28>>2],u=_(Q*g),B=C[e+12>>2],i=C[e+392>>2],s=_(_(f*_(_(_(t*c)+_(b*l))+_(u*B)))+_(_(_(_(t*v)+_(b*d))+_(u*g))*i)),m=C[e+36>>2],n=b,b=C[e+40>>2],o=u,u=C[e+44>>2],n=_(_(_(t*m)+_(n*b))+_(o*u)),t=C[e+396>>2],h=_(s+_(n*t)),o=_(k*c),s=_(R*l),n=_(Q*B),s=_(_(_(_(_(_(o*c)+_(s*l))+_(n*B))*f)+_(i*_(_(_(o*v)+_(s*d))+_(n*g))))+_(_(_(_(o*m)+_(s*b))+_(n*u))*t)),o=_(_(f*h)-_(i*s)),C[A+8>>2]=o,n=f,f=_(k*m),k=_(c*f),c=_(R*b),k=_(k+_(l*c)),l=_(Q*u),v=_(_(_(n*_(k+_(B*l)))+_(i*_(_(_(f*v)+_(c*d))+_(l*g))))+_(t*_(_(_(f*m)+_(c*b))+_(l*u)))),f=_(_(t*s)-_(n*v)),C[A+4>>2]=f,i=_(_(i*v)-_(t*h)),C[A>>2]=i,t=_(_(o*o)+_(_(i*i)+_(f*f))),t>_(r*r)&&(r=_(_(_(1)/_(y(t)))*r),C[A+8>>2]=o*r,C[A+4>>2]=f*r,C[A>>2]=i*r)}function Hi(A,e,r){var i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0);i=Y-16|0,Y=i,b=C[e+464>>2],f=C[e+460>>2],h=C[e+396>>2],G=C[e+392>>2],o=C[e+456>>2],y=C[e+388>>2],tt(e+4|0,i),a[A+12>>2]=0,l=C[i+12>>2],u=C[i+4>>2],s=C[i+8>>2],n=_(_(_(y*l)-_(h*u))+_(G*s)),k=C[i>>2],B=_(_(_(G*u)+_(y*k))+_(h*s)),c=_(_(_(h*l)-_(G*k))+_(y*u)),R=_(_(_(G*l)-_(y*s))+_(h*k)),t=_(_(_(u*n)+_(_(s*B)+_(l*c)))-_(k*R)),d=_(t*_(0)),v=_(_(_(s*R)+_(_(k*B)+_(l*n)))-_(u*c)),Q=_(v*_(0)),f=f!=_(0)?_(_(1)/f):_(0),n=_(_(_(k*c)+_(_(u*B)+_(l*R)))-_(s*n)),B=_(d+_(Q+_(f*n))),o=o!=_(0)?_(_(1)/o):_(0),Z=_(_(_(_(_(Q-_(o*n))+_(0))+_(B+_(0)))*r)+_(0)),c=b!=_(0)?_(_(1)/b):_(0),g=_(n*_(0)),R=_(_(t*c)+_(Q+g)),w=_(d+_(_(o*v)+g)),b=_(_(_(t*w)-_(v*R))*r),p=_(t*_(-0)),V=_(o+_(_(g+_(_(o*_(0))+p))*r)),F=_(n*_(-0)),D=_(_(_(_(_(F+_(f*v))+_(0))-w)*r)+_(0)),g=_(_(_(_(g+_(_(0)-_(f*t)))+R)*r)+_(0)),E=_(_(_(_(_(d+_(0))-_(c*v))+w)*r)+_(0)),W=_(v*_(-0)),f=_(f+_(_(W+_(_(f*_(0))+d))*r)),d=_(_(_(_(_(c*n)+_(p+_(0)))-B)*r)+_(0)),p=_(_(g*E)-_(f*d)),c=_(c+_(_(_(c*_(0))+_(F+Q))*r)),F=_(_(f*c)-_(D*E)),Q=_(_(_(_(W+_(_(o*t)+_(0)))-R)*r)+_(0)),W=_(_(D*d)-_(c*g)),o=_(_(Z*p)+_(_(V*F)+_(Q*W))),o=_(m(o))>_(1.1920928955078125e-7)?_(_(1)/o):o,N=t,t=_(_(_(n*R)-_(t*B))*r),r=_(_(_(v*B)-_(n*w))*r),f=_(N-_(_(_(Z*_(_(g*b)-_(f*t)))+_(_(V*_(_(f*r)-_(D*b)))+_(Q*_(_(D*t)-_(g*r)))))*o)),n=_(n-_(_(_(Z*_(_(E*t)-_(d*b)))+_(_(V*_(_(c*b)-_(E*r)))+_(Q*_(_(d*r)-_(c*t)))))*o)),r=_(v-_(_(_(r*p)+_(_(t*F)+_(b*W)))*o)),t=_(_(_(l*f)+_(k*n))-_(u*r)),v=_(_(_(-_(k*r))-_(u*n))-_(s*f)),b=_(_(_(l*r)+_(u*f))-_(s*n)),r=_(_(_(s*r)+_(l*n))-_(k*f)),C[A+8>>2]=_(_(_(_(l*t)-_(v*s))-_(b*u))+_(r*k))-h,C[A+4>>2]=_(_(_(_(l*r)-_(v*u))-_(t*k))+_(b*s))-G,C[A>>2]=_(_(_(_(l*b)-_(v*k))-_(r*s))+_(t*u))-y,Y=i+16|0}function zi(A,e,r){var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0);a[A+12>>2]=0,i=C[e+456>>2],p=i!=_(0)?_(_(1)/i):_(0),s=C[e+36>>2],G=_(p*s),k=C[e+4>>2],i=C[e+460>>2],o=i!=_(0)?_(_(1)/i):_(0),B=C[e+40>>2],F=_(o*B),t=C[e+8>>2],i=C[e+464>>2],v=i!=_(0)?_(_(1)/i):_(0),c=C[e+44>>2],w=_(v*c),f=C[e+12>>2],n=_(_(_(G*k)+_(F*t))+_(w*f)),i=C[e+388>>2],b=C[e+20>>2],R=_(p*b),l=C[e+24>>2],y=_(o*l),u=C[e+28>>2],Q=_(v*u),W=_(_(_(R*k)+_(y*t))+_(Q*f)),D=_(i*W),d=C[e+392>>2],h=_(_(_(R*b)+_(y*l))+_(Q*u)),g=C[e+396>>2],y=_(_(_(R*s)+_(y*B))+_(Q*c)),Z=_(g*y),R=_(_(D+_(d*h))+Z),E=D,Q=_(p*k),D=_(o*t),v=_(v*f),t=_(_(_(Q*k)+_(D*t))+_(v*f)),p=_(n+_(_(_(_(n*_(0))+_(E-_(t*d)))+R)*r)),o=_(_(_(Q*b)+_(D*l))+_(v*u)),E=_(i*n),l=_(_(_(G*b)+_(F*l))+_(w*u)),b=_(d*l),f=_(_(_(G*s)+_(F*B))+_(w*c)),k=_(_(E+b)+_(g*f)),b=_(o+_(_(k+_(b+_(_(o*_(0))-_(h*g))))*r)),w=_(d*o),c=_(_(_(Q*s)+_(D*B))+_(v*c)),u=_(g*c),s=_(_(_(i*t)+w)+u),F=_(r*_(0)),B=_(_(R+_(_(_(g*s)-_(i*k))*r))-_(F+R)),u=_(y+_(_(s+_(_(_(y*_(0))+u)-_(f*i)))*r)),o=_(h+_(_(_(_(h*_(0))+_(g*o))-_(l*i))*r)),G=_(c+_(_(_(_(d*f)+_(_(c*_(0))-Z))-R)*r)),Q=_(_(b*u)-_(o*G)),v=_(t+_(_(_(d*n)+_(_(t*_(0))-_(W*g)))*r)),f=_(f+_(_(_(f*_(0))+_(_(i*y)-_(c*d)))*r)),h=_(l+_(_(_(_(l*_(0))+_(_(i*h)-w))-s)*r)),l=_(_(o*f)-_(h*u)),c=_(W+_(_(_(_(_(W*_(0))+_(g*t))-E)-k)*r)),W=_(_(h*G)-_(b*f)),n=_(_(p*Q)+_(_(v*l)+_(c*W))),t=_(m(n))>_(1.1920928955078125e-7)?_(_(1)/n):n,n=_(_(s+_(_(_(d*k)-_(g*R))*r))-_(F+s)),r=_(_(k+_(_(_(i*R)-_(d*s))*r))-_(F+k)),C[A+8>>2]=_(g-_(_(_(p*_(_(b*B)-_(o*n)))+_(_(v*_(_(o*r)-_(h*B)))+_(c*_(_(h*n)-_(b*r)))))*t))-g,C[A+4>>2]=_(d-_(_(_(p*_(_(u*n)-_(G*B)))+_(_(v*_(_(f*B)-_(u*r)))+_(c*_(_(G*r)-_(f*n)))))*t))-d,C[A>>2]=_(i-_(_(_(r*Q)+_(_(n*l)+_(B*W)))*t))-i}function Pi(A,e){var r=0,i=0,t=0,n=0,c=0;i=a[A+548>>2];A:{e:if(!((0|i)<1)){for(t=a[A+556>>2],r=i;;){if((0|e)!=a[t>>2]){if(t=t+4|0,r=r+-1|0,r)continue;break e}break}if(r)break A}if(a[A+552>>2]==(0|i)&&(n=i?i<<1:1,!((0|i)>=(0|n)))){if(n&&(c=dA(n<<2),i=a[A+548>>2]),(0|i)>=1)for(t=0,r=i;a[t+c>>2]=a[a[A+556>>2]+t>>2],t=t+4|0,r=r+-1|0,r;);r=a[A+556>>2],r&&(o[A+560|0]&&(CA(r),i=a[A+548>>2]),a[A+556>>2]=0),a[A+556>>2]=c,a[A+552>>2]=n,f[A+560|0]=1}a[a[A+556>>2]+(i<<2)>>2]=e,a[A+548>>2]=i+1,r=a[e+32>>2],c=a[e+28>>2];e:if((0|A)!=(0|c)){if(e=a[r+288>>2],(0|e)==a[r+292>>2]&&(n=e?e<<1:1,!((0|e)>=(0|n)))){if(n?(i=dA(n<<2),e=a[r+288>>2]):i=0,(0|e)>=1)for(t=0,A=e;a[i+t>>2]=a[a[r+296>>2]+t>>2],t=t+4|0,A=A+-1|0,A;);A=a[r+296>>2],A&&(o[r+300|0]&&(CA(A),e=a[r+288>>2]),a[r+296>>2]=0),a[r+296>>2]=i,a[r+292>>2]=n,f[r+300|0]=1}A=r,r=c}else{if(e=a[A+288>>2],(0|e)!=a[A+292>>2])break e;if(n=e?e<<1:1,(0|e)>=(0|n))break e;if(n?(c=dA(n<<2),e=a[A+288>>2]):c=0,(0|e)>=1)for(t=0,i=e;a[t+c>>2]=a[a[A+296>>2]+t>>2],t=t+4|0,i=i+-1|0,i;);i=a[A+296>>2],i&&(o[A+300|0]&&(CA(i),e=a[A+288>>2]),a[A+296>>2]=0),a[A+296>>2]=c,a[A+292>>2]=n,f[A+300|0]=1}a[A+288>>2]=e+1,a[A+280>>2]=(-1^e)>>>31,a[a[A+296>>2]+(e<<2)>>2]=r}}function Ki(A,e){var r=0,i=0,f=0,t=0,n=0;t=a[A+548>>2];A:if(!((0|t)<1)){for(f=a[A+556>>2],i=f;;){if((0|e)!=a[i>>2]){if(i=i+4|0,r=r+1|0,(0|t)!=(0|r))continue;break A}break}if(!((0|r)>=(0|t))){r=0,i=f;e:{for(;;){if((0|e)!=a[i>>2]){if(i=i+4|0,r=r+1|0,(0|t)!=(0|r))continue;break e}break}(0|t)<=(0|r)||(n=i,r=f,i=t+-1|0,f=i<<2,a[n>>2]=a[r+f>>2],a[A+548>>2]=i,a[f+a[A+556>>2]>>2]=e)}if(t=a[e+32>>2],f=a[e+28>>2],(0|A)==(0|f)){e=a[A+288>>2];e:if(!((0|e)<1)){for(r=0,f=a[A+296>>2],i=f;;){if(a[i>>2]!=(0|t)){if(i=i+4|0,r=r+1|0,(0|r)!=(0|e))continue;break e}break}(0|e)<=(0|r)||(r=f,e=e+-1|0,f=e<<2,a[i>>2]=a[r+f>>2],a[A+288>>2]=e,a[f+a[A+296>>2]>>2]=t)}return void(a[A+280>>2]=(0|e)>0)}e=a[t+288>>2];e:if(!((0|e)<1)){for(r=0,A=a[t+296>>2],i=A;;){if(a[i>>2]!=(0|f)){if(i=i+4|0,r=r+1|0,(0|r)!=(0|e))continue;break e}break}(0|e)<=(0|r)||(r=A,e=e+-1|0,A=e<<2,a[i>>2]=a[r+A>>2],a[t+288>>2]=e,a[A+a[t+296>>2]>>2]=f)}a[t+280>>2]=(0|e)>0}}}function Li(A){var e=0;a[A>>2]=20180,f[A+20|0]=1,a[A+16>>2]=0,f[A+40|0]=1,e=A+8|0,a[e>>2]=0,a[e+4>>2]=0,a[A+36>>2]=0,f[A+60|0]=1,e=A+28|0,a[e>>2]=0,a[e+4>>2]=0,a[A+56>>2]=0,f[A+80|0]=1,e=A+48|0,a[e>>2]=0,a[e+4>>2]=0,a[A+76>>2]=0,f[A+100|0]=1,e=A+68|0,a[e>>2]=0,a[e+4>>2]=0,a[A+96>>2]=0,f[A+120|0]=1,e=A+88|0,a[e>>2]=0,a[e+4>>2]=0,a[A+116>>2]=0,f[A+140|0]=1,e=A+108|0,a[e>>2]=0,a[e+4>>2]=0,a[A+136>>2]=0,e=A+128|0,a[e>>2]=0,a[e+4>>2]=0,f[A+160|0]=1,a[A+156>>2]=0,e=A+148|0,a[e>>2]=0,a[e+4>>2]=0,f[A+180|0]=1,a[A+176>>2]=0,e=A+168|0,a[e>>2]=0,a[e+4>>2]=0,f[A+208|0]=1,a[A+232>>2]=0,a[A+204>>2]=0,e=A+196|0,a[e>>2]=0,a[e+4>>2]=0,a[A+224>>2]=0,a[A+212>>2]=534,a[A+216>>2]=535,a[A+220>>2]=536}function qi(A){A|=0;var e=0;return a[A>>2]=20180,e=a[A+204>>2],e&&(o[A+208|0]&&CA(e),a[A+204>>2]=0),a[A+204>>2]=0,a[A+196>>2]=0,a[A+200>>2]=0,f[A+208|0]=1,e=a[A+176>>2],e&&(o[A+180|0]&&CA(e),a[A+176>>2]=0),a[A+176>>2]=0,a[A+168>>2]=0,a[A+172>>2]=0,f[A+180|0]=1,e=a[A+156>>2],e&&(o[A+160|0]&&CA(e),a[A+156>>2]=0),a[A+156>>2]=0,a[A+148>>2]=0,a[A+152>>2]=0,f[A+160|0]=1,e=a[A+136>>2],e&&(o[A+140|0]&&CA(e),a[A+136>>2]=0),a[A+136>>2]=0,a[A+128>>2]=0,a[A+132>>2]=0,f[A+140|0]=1,e=a[A+116>>2],e&&(o[A+120|0]&&CA(e),a[A+116>>2]=0),a[A+116>>2]=0,a[A+108>>2]=0,a[A+112>>2]=0,f[A+120|0]=1,e=a[A+96>>2],e&&(o[A+100|0]&&CA(e),a[A+96>>2]=0),a[A+96>>2]=0,a[A+88>>2]=0,a[A+92>>2]=0,f[A+100|0]=1,e=a[A+76>>2],e&&(o[A+80|0]&&CA(e),a[A+76>>2]=0),a[A+76>>2]=0,a[A+68>>2]=0,a[A+72>>2]=0,f[A+80|0]=1,e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+56>>2]=0,a[A+48>>2]=0,a[A+52>>2]=0,f[A+60|0]=1,e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+36>>2]=0,a[A+28>>2]=0,a[A+32>>2]=0,f[A+40|0]=1,e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=0,a[A+8>>2]=0,a[A+12>>2]=0,f[A+20|0]=1,0|A}function $i(A,e,r,i,t,n,c,b,l,u,s,k){var v=0,d=0,g=0,m=0,R=0;if(d=a[A+68>>2],v=d,(0|d)==a[A+72>>2]&&(v=d,g=d?d<<1:1,!((0|d)>=(0|g)))){if(g?(R=dA(B(g,152)),v=a[A+68>>2]):v=d,m=v,(0|m)>=1)for(v=0;J(v+R|0,a[A+76>>2]+v|0,152),v=v+152|0,m=m+-1|0,m;);v=a[A+76>>2],v&&(o[A+80|0]&&CA(v),a[A+76>>2]=0),a[A+76>>2]=R,a[A+72>>2]=g,f[A+80|0]=1,v=a[A+68>>2]}a[A+68>>2]=v+1,d=a[A+76>>2]+B(d,152)|0,a[d+140>>2]=t,function(A,e,r,i,f,t,n,c,b,l,u,s){var k,v,d,g=0,m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=0,D=_(0),E=_(0),Z=_(0),Y=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=0,O=_(0),H=_(0),z=_(0),P=_(0),K=_(0);a[e+148>>2]=f,a[e+144>>2]=i,a[e+96>>2]=0,a[e+100>>2]=0,T=C[t+84>>2],d=a[t+84>>2],a[e+104>>2]=d,v=a[A+16>>2],A=a[240+(v+B(f,244)|0)>>2],k=a[240+(B(i,244)+v|0)>>2],a[e+132>>2]=0,g=e+16|0,k?(w=a[r+4>>2],a[g>>2]=a[r>>2],a[g+4>>2]=w,w=r+8|0,j=a[w+4>>2],g=g+8|0,a[g>>2]=a[w>>2],a[g+4>>2]=j,h=C[n+8>>2],G=C[n>>2],y=C[n+4>>2],a[e+12>>2]=0,Y=C[e+20>>2],D=C[e+16>>2],N=_(_(G*Y)-_(y*D)),C[e+8>>2]=N,E=C[e+24>>2],G=_(_(h*D)-_(G*E)),C[e+4>>2]=G,h=_(_(y*E)-_(h*Y)),C[e>>2]=h,y=C[k+612>>2],R=C[k+364>>2],Q=C[k+356>>2],m=C[k+360>>2],I=C[k+608>>2],J=C[k+348>>2],x=C[k+340>>2],p=C[k+344>>2],F=C[k+332>>2],U=C[k+328>>2],Z=C[k+604>>2],W=C[k+324>>2],a[e+76>>2]=0,F=_(Z*_(_(_(h*W)+_(G*U))+_(N*F))),C[e+64>>2]=F,U=_(I*_(_(_(h*x)+_(G*p))+_(N*J))),C[e+68>>2]=U,Z=_(y*_(_(_(h*Q)+_(G*m))+_(N*R))),C[e+72>>2]=Z):(a[e+64>>2]=0,a[e+68>>2]=0,a[e>>2]=0,a[e+4>>2]=0,w=e+72|0,a[w>>2]=0,a[w+4>>2]=0,w=e+8|0,a[w>>2]=0,a[w+4>>2]=0,a[g>>2]=0,a[g+4>>2]=0,g=e+24|0,a[g>>2]=0,a[g+4>>2]=0),A?(R=C[r>>2],Q=C[r+4>>2],m=C[r+8>>2],a[e+60>>2]=0,I=_(-m),C[e+56>>2]=I,J=_(-Q),C[e+52>>2]=J,x=_(-R),C[e+48>>2]=x,p=C[c+8>>2],V=C[c+4>>2],W=C[c>>2],a[e+44>>2]=0,y=_(_(V*R)-_(W*Q)),C[e+40>>2]=y,R=_(_(W*m)-_(p*R)),C[e+36>>2]=R,Q=_(_(p*Q)-_(V*m)),C[e+32>>2]=Q,V=C[A+332>>2],W=C[A+328>>2],p=C[A+608>>2],S=C[A+348>>2],M=C[A+340>>2],X=C[A+344>>2],m=C[A+612>>2],O=C[A+364>>2],H=C[A+356>>2],z=C[A+360>>2],P=C[A+604>>2],K=C[A+324>>2],a[e+92>>2]=0,m=_(m*_(_(_(Q*H)+_(R*z))+_(y*O))),C[e+88>>2]=m,p=_(p*_(_(_(Q*M)+_(R*X))+_(y*S))),C[e+84>>2]=p,V=_(P*_(_(_(Q*K)+_(R*W))+_(y*V))),C[e+80>>2]=V):(a[e+80>>2]=0,a[e+84>>2]=0,a[e+32>>2]=0,a[e+36>>2]=0,g=e+88|0,a[g>>2]=0,a[g+4>>2]=0,g=e+40|0,a[g>>2]=0,a[g+4>>2]=0,g=e+48|0,a[g>>2]=0,a[g+4>>2]=0,g=e+56|0,a[g>>2]=0,a[g+4>>2]=0,y=_(0),R=_(0),Q=_(0),I=_(0),J=_(0),x=_(0),m=_(0),p=_(0)),g=e,S=b,k?(b=C[n+8>>2],W=C[n+4>>2],X=_(_(_(U*b)-_(Z*W))*C[r>>2]),M=Z,Z=C[n>>2],b=_(C[k+404>>2]+_(_(X+_(_(_(M*Z)-_(b*F))*C[r+4>>2]))+_(_(_(W*F)-_(U*Z))*C[r+8>>2])))):b=_(0),Z=b,A?(b=C[c+4>>2],F=C[c+8>>2],M=_(_(_(b*m)-_(F*p))*C[r>>2]),W=_(F*V),F=C[c>>2],b=_(C[A+404>>2]+_(_(M+_(_(W-_(F*m))*C[r+4>>2]))+_(_(_(F*p)-_(b*V))*C[r+8>>2])))):b=_(0),b=_(S/_(Z+b)),C[g+108>>2]=b,k?(i=B(i,244)+v|0,Y=_(_(_(_(C[i+176>>2]+C[i+208>>2])*D)+_(_(C[i+180>>2]+C[i+212>>2])*Y))+_(_(C[i+184>>2]+C[i+216>>2])*E)),m=C[i+192>>2],E=C[i+200>>2],D=C[i+196>>2]):(m=_(0),Y=_(_(_(D*_(0))+_(Y*_(0)))+_(E*_(0))),E=_(0),D=_(0)),Y=_(Y+_(_(_(m*h)+_(D*G))+_(E*N))),A?(A=B(f,244)+v|0,h=_(_(_(_(C[A+176>>2]+C[A+208>>2])*x)+_(_(C[A+180>>2]+C[A+212>>2])*J))+_(_(C[A+184>>2]+C[A+216>>2])*I)),D=C[A+192>>2],G=C[A+200>>2],E=C[A+196>>2]):(G=_(0),h=_(_(_(x*_(0))+_(J*_(0)))+_(I*_(0))),D=_(0),E=_(0)),N=16&o[t+120|0]?_(b*_(_(-_(C[l+44>>2]*_(_(_(_(C[t+48>>2]-C[t+32>>2])*C[r>>2])+_(_(C[t+52>>2]-C[t+36>>2])*C[r+4>>2]))+_(_(C[t+56>>2]-C[t+40>>2])*C[r+8>>2]))))/C[l+12>>2])):_(0),a[e+128>>2]=0,a[e+124>>2]=d,C[e+116>>2]=s,C[e+112>>2]=_(b*_(u-_(Y+_(h+_(_(_(D*Q)+_(E*R))+_(G*y))))))+N,C[e+120>>2]=-T}(A,d,e,r,i,n,c,b,l,u,s,k)}function Af(A,e,r,i,t,n){var b=0,l=0,u=0,k=0,v=0;if(l=a[A+88>>2],b=l,(0|l)==a[A+92>>2]&&(b=l,u=l?l<<1:1,!((0|l)>=(0|u)))){if(u?(v=dA(B(u,152)),b=a[A+88>>2]):b=l,k=b,(0|k)>=1)for(b=0;J(b+v|0,a[A+96>>2]+b|0,152),b=b+152|0,k=k+-1|0,k;);b=a[A+96>>2],b&&(o[A+100|0]&&CA(b),a[A+96>>2]=0),a[A+96>>2]=v,a[A+92>>2]=u,f[A+100|0]=1,b=a[A+88>>2]}a[A+88>>2]=b+1,l=a[A+96>>2]+B(l,152)|0,a[l+140>>2]=t,function(A,e,r,i,f,t){var n,o,b=0,l=_(0),u=_(0),k=_(0),v=_(0),d=_(0),g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=0,y=_(0),p=0,F=0,W=0,w=0,D=_(0),E=_(0),Z=_(0);a[e+48>>2]=-2147483648,a[e+52>>2]=-2147483648,a[e+16>>2]=0,a[e+20>>2]=0,b=e+56|0,a[b>>2]=-2147483648,a[b+4>>2]=0,b=e+24|0,a[b>>2]=0,a[b+4>>2]=0,C[e+104>>2]=t,a[e+96>>2]=0,a[e+100>>2]=0,n=a[A+16>>2],A=a[240+(n+B(i,244)|0)>>2],b=a[240+(B(f,244)+n|0)>>2],a[e+132>>2]=0,a[e+148>>2]=f,a[e+144>>2]=i,k=C[r>>2],v=C[r+4>>2],d=C[r+8>>2],a[e+12>>2]=0,l=_(-d),C[e+8>>2]=l,g=_(-v),C[e+4>>2]=g,u=_(-k),C[e>>2]=u,o=e,A?(s(_(_(_(_(C[A+356>>2]*u)+_(C[A+360>>2]*g))+_(C[A+364>>2]*l))*C[A+612>>2])),p=c(0),s(_(_(_(_(C[A+340>>2]*u)+_(C[A+344>>2]*g))+_(C[A+348>>2]*l))*C[A+608>>2])),F=c(0),s(_(_(_(_(C[A+324>>2]*u)+_(C[A+328>>2]*g))+_(C[A+332>>2]*l))*C[A+604>>2])),G=c(0)):G=0,a[o+64>>2]=G,a[e+76>>2]=0,a[e+72>>2]=p,a[e+68>>2]=F,k=C[r>>2],v=C[r+4>>2],d=C[r+8>>2],a[e+44>>2]=a[r+12>>2],C[e+40>>2]=d,C[e+36>>2]=v,C[e+32>>2]=k,r=0,b&&(s(_(_(_(_(k*C[b+356>>2])+_(v*C[b+360>>2]))+_(d*C[b+364>>2]))*C[b+612>>2])),W=c(0),s(_(_(_(_(k*C[b+324>>2])+_(v*C[b+328>>2]))+_(d*C[b+332>>2]))*C[b+604>>2])),w=c(0),s(_(_(_(_(k*C[b+340>>2])+_(v*C[b+344>>2]))+_(d*C[b+348>>2]))*C[b+608>>2])),r=c(0)),a[e+80>>2]=w,a[e+92>>2]=0,a[e+88>>2]=W,a[e+84>>2]=r,r=e,A?(R=_(_(_(C[A+356>>2]*u)+_(C[A+360>>2]*g))+_(C[A+364>>2]*l)),m=_(_(_(C[A+340>>2]*u)+_(C[A+344>>2]*g))+_(C[A+348>>2]*l)),y=_(_(_(C[A+324>>2]*u)+_(C[A+328>>2]*g))+_(C[A+332>>2]*l))):y=_(0),R=_(_(_(_(y*u)+_(m*g))+_(R*l))+_(0)),b?(Q=_(_(_(k*C[b+356>>2])+_(v*C[b+360>>2]))+_(d*C[b+364>>2])),D=_(_(_(k*C[b+340>>2])+_(v*C[b+344>>2]))+_(d*C[b+348>>2])),m=_(_(_(C[b+324>>2]*k)+_(C[b+328>>2]*v))+_(C[b+332>>2]*d))):m=_(0),Q=_(_(1)/_(R+_(_(_(m*k)+_(D*v))+_(Q*d)))),C[r+108>>2]=Q,m=_(0),R=_(0),A&&(A=B(i,244)+n|0,h=_(_(_(_(C[A+176>>2]+C[A+208>>2])*_(0))+_(_(C[A+180>>2]+C[A+212>>2])*_(0)))+_(_(C[A+184>>2]+C[A+216>>2])*_(0))),m=C[A+196>>2],E=C[A+200>>2],R=C[A+192>>2]),g=_(h+_(_(E*l)+_(_(m*g)+_(R*u)))),b?(A=B(f,244)+n|0,l=_(_(_(_(C[A+176>>2]+C[A+208>>2])*_(-0))+_(_(C[A+180>>2]+C[A+212>>2])*_(-0)))+_(_(C[A+184>>2]+C[A+216>>2])*_(-0))),h=C[A+192>>2],Z=C[A+200>>2],u=C[A+196>>2]):(l=_(-0),h=_(0),u=_(0)),C[e+124>>2]=t,C[e+116>>2]=0,C[e+120>>2]=-t,C[e+112>>2]=Q*_(_(0)-_(g+_(l+_(_(d*Z)+_(_(v*u)+_(k*h))))))}(A,l,e,r,i,n)}function ef(A,e,r){var i,f=0;return i=Y-256|0,Y=i,f=a[e+212>>2],(0|f)>-1||(f=a[e+252>>2],2&f&&(f=f<<30>>31&e,2&o[f+204|0]||C[f+404>>2]!=_(0))?(f=a[A+8>>2],X(i+8|0,0,244),function(A,e,r){var i=0,f=0,t=0,n=_(0),o=_(0),c=_(0),b=_(0),l=0,u=_(0),s=_(0),k=_(0),v=_(0),d=_(0);e=e?a[e+252>>2]<<30>>31&e:0,a[A+64>>2]=0,a[A+68>>2]=0,a[A+144>>2]=0,a[A+148>>2]=0,i=A+88|0,a[i>>2]=0,a[i+4>>2]=0,i=A+80|0,a[i>>2]=0,a[i+4>>2]=0,i=A+72|0,a[i>>2]=0,a[i+4>>2]=0,i=A+152|0,a[i>>2]=0,a[i+4>>2]=0,i=A+160|0,a[i>>2]=0,a[i+4>>2]=0,i=A+168|0,a[i>>2]=0,a[i+4>>2]=0,e?(i=a[e+8>>2],a[A>>2]=a[e+4>>2],a[A+4>>2]=i,i=e+12|0,f=a[i+4>>2],t=A+8|0,a[t>>2]=a[i>>2],a[t+4>>2]=f,i=e+28|0,f=a[i+4>>2],t=A+24|0,a[t>>2]=a[i>>2],a[t+4>>2]=f,i=e+20|0,f=a[i+4>>2],a[A+16>>2]=a[i>>2],a[A+20>>2]=f,i=e+44|0,f=a[i+4>>2],t=A+40|0,a[t>>2]=a[i>>2],a[t+4>>2]=f,i=e+36|0,f=a[i+4>>2],a[A+32>>2]=a[i>>2],a[A+36>>2]=f,i=e+52|0,f=a[i+4>>2],a[A+48>>2]=a[i>>2],a[A+52>>2]=f,i=e+60|0,f=a[i+4>>2],t=A+56|0,a[t>>2]=a[i>>2],a[t+4>>2]=f,o=C[e+412>>2],i=e+416|0,c=C[i>>2],b=C[e+408>>2],n=C[e+404>>2],a[A+140>>2]=0,C[A+136>>2]=n*c,C[A+132>>2]=n*o,C[A+128>>2]=n*b,a[A+240>>2]=e,f=e+612|0,t=a[f+4>>2],l=A+104|0,a[l>>2]=a[f>>2],a[l+4>>2]=t,f=a[e+608>>2],a[A+96>>2]=a[e+604>>2],a[A+100>>2]=f,f=a[i+4>>2],t=A+120|0,a[t>>2]=a[i>>2],a[t+4>>2]=f,i=a[e+412>>2],a[A+112>>2]=a[e+408>>2],a[A+116>>2]=i,i=e+380|0,f=a[i+4>>2],t=A+184|0,a[t>>2]=a[i>>2],a[t+4>>2]=f,i=a[e+376>>2],a[A+176>>2]=a[e+372>>2],a[A+180>>2]=i,i=a[e+392>>2],a[A+192>>2]=a[e+388>>2],a[A+196>>2]=i,i=e+396|0,f=a[i+4>>2],t=A+200|0,a[t>>2]=a[i>>2],a[t+4>>2]=f,o=C[e+476>>2],c=C[e+480>>2],b=C[e+472>>2],n=C[e+404>>2],a[A+220>>2]=0,C[A+216>>2]=_(n*c)*r,C[A+212>>2]=_(n*o)*r,C[A+208>>2]=_(n*b)*r,b=C[e+340>>2],u=C[e+356>>2],s=C[e+328>>2],k=C[e+344>>2],v=C[e+360>>2],d=C[e+324>>2],n=C[e+488>>2],o=C[e+492>>2],c=C[e+496>>2],C[A+232>>2]=_(_(_(n*C[e+332>>2])+_(o*C[e+348>>2]))+_(c*C[e+364>>2]))*r,C[A+228>>2]=_(_(_(n*s)+_(o*k))+_(c*v))*r,C[A+224>>2]=_(_(_(d*n)+_(b*o))+_(u*c))*r):(a[A+4>>2]=0,a[A+8>>2]=0,a[A>>2]=1065353216,a[A+32>>2]=0,a[A+36>>2]=0,a[A+240>>2]=0,a[A+128>>2]=0,a[A+132>>2]=0,a[A+112>>2]=1065353216,a[A+116>>2]=1065353216,a[A+96>>2]=1065353216,a[A+100>>2]=1065353216,a[A+176>>2]=0,a[A+180>>2]=0,e=A+12|0,a[e>>2]=0,a[e+4>>2]=0,e=A+24|0,a[e>>2]=0,a[e+4>>2]=0,a[A+20>>2]=1065353216,e=A+44|0,a[e>>2]=0,a[e+4>>2]=0,a[A+40>>2]=1065353216,e=A+52|0,a[e>>2]=0,a[e+4>>2]=0,a[A+60>>2]=0,e=A+136|0,a[e>>2]=0,a[e+4>>2]=0,e=A+120|0,a[e>>2]=1065353216,a[e+4>>2]=0,e=A+104|0,a[e>>2]=1065353216,a[e+4>>2]=0,a[A+232>>2]=0,e=A+224|0,a[e>>2]=0,a[e+4>>2]=0,e=A+216|0,a[e>>2]=0,a[e+4>>2]=0,e=A+208|0,a[e>>2]=0,a[e+4>>2]=0,e=A+200|0,a[e>>2]=0,a[e+4>>2]=0,e=A+192|0,a[e>>2]=0,a[e+4>>2]=0,e=A+184|0,a[e>>2]=0,a[e+4>>2]=0),a[A+236>>2]=0}(rf(A+4|0,i+8|0),e,r),a[e+212>>2]=f):(f=a[A+188>>2],(0|f)>-1||(a[A+188>>2]=a[A+8>>2],X(i+8|0,0,244),e=rf(A+4|0,i+8|0),f=e+88|0,a[f>>2]=0,a[f+4>>2]=0,f=e+80|0,a[f>>2]=0,a[f+4>>2]=0,f=e+72|0,a[f>>2]=0,a[f+4>>2]=0,a[e+64>>2]=0,a[e+68>>2]=0,a[e+144>>2]=0,a[e+148>>2]=0,f=e+152|0,a[f>>2]=0,a[f+4>>2]=0,f=e+160|0,a[f>>2]=0,a[f+4>>2]=0,f=e+168|0,a[f>>2]=0,a[f+4>>2]=0,a[e+4>>2]=0,a[e+8>>2]=0,a[e>>2]=1065353216,f=e+12|0,a[f>>2]=0,a[f+4>>2]=0,f=e+24|0,a[f>>2]=0,a[f+4>>2]=0,a[e+20>>2]=1065353216,a[e+32>>2]=0,a[e+36>>2]=0,f=e+44|0,a[f>>2]=0,a[f+4>>2]=0,a[e+40>>2]=1065353216,f=e+52|0,a[f>>2]=0,a[f+4>>2]=0,a[e+60>>2]=0,f=e+136|0,a[f>>2]=0,a[f+4>>2]=0,a[e+128>>2]=0,a[e+132>>2]=0,f=e+120|0,a[f>>2]=1065353216,a[f+4>>2]=0,a[e+112>>2]=1065353216,a[e+116>>2]=1065353216,f=e+104|0,a[f>>2]=1065353216,a[f+4>>2]=0,a[e+96>>2]=1065353216,a[e+100>>2]=1065353216,f=e+232|0,a[f>>2]=0,a[f+4>>2]=0,f=e+224|0,a[f>>2]=0,a[f+4>>2]=0,f=e+216|0,a[f>>2]=0,a[f+4>>2]=0,f=e+208|0,a[f>>2]=0,a[f+4>>2]=0,f=e+200|0,a[f>>2]=0,a[f+4>>2]=0,f=e+192|0,a[f>>2]=0,a[f+4>>2]=0,f=e+184|0,a[f>>2]=0,a[f+4>>2]=0,a[e+176>>2]=0,a[e+180>>2]=0,a[e+240>>2]=0,f=a[A+188>>2]))),Y=i+256|0,f}function rf(A,e){var r=0,i=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0;if(t=a[A+4>>2],b=t,(0|t)==a[A+8>>2]&&(b=t,k=t?t<<1:1,!((0|t)>=(0|k)))){if(k?(d=dA(B(k,244)),b=a[A+4>>2]):b=t,(0|b)>=1)for(r=64;l=a[A+12>>2]+r|0,n=l+-64|0,s=a[n+4>>2],c=r+d|0,i=c+-64|0,a[i>>2]=a[n>>2],a[i+4>>2]=s,n=n+8|0,u=a[n+4>>2],i=i+8|0,a[i>>2]=a[n>>2],a[i+4>>2]=u,i=l+-48|0,s=i+8|0,v=a[s+4>>2],n=c+-48|0,u=n+8|0,a[u>>2]=a[s>>2],a[u+4>>2]=v,u=a[i+4>>2],a[n>>2]=a[i>>2],a[n+4>>2]=u,i=l+-32|0,s=i+8|0,v=a[s+4>>2],n=c+-32|0,u=n+8|0,a[u>>2]=a[s>>2],a[u+4>>2]=v,u=a[i+4>>2],a[n>>2]=a[i>>2],a[n+4>>2]=u,n=l+-16|0,s=a[n+4>>2],i=c+-16|0,a[i>>2]=a[n>>2],a[i+4>>2]=s,n=n+8|0,u=a[n+4>>2],i=i+8|0,a[i>>2]=a[n>>2],a[i+4>>2]=u,J(c,l,180),r=r+244|0,b=b+-1|0,b;);b=a[A+12>>2],b&&(o[A+16|0]&&CA(b),a[A+12>>2]=0),a[A+12>>2]=d,f[A+16|0]=1,a[A+8>>2]=k,b=a[A+4>>2]}return a[A+4>>2]=b+1,c=e+8|0,l=a[c+4>>2],b=B(t,244),t=b+a[A+12>>2]|0,r=t+8|0,a[r>>2]=a[c>>2],a[r+4>>2]=l,r=a[e+4>>2],a[t>>2]=a[e>>2],a[t+4>>2]=r,c=e+24|0,l=a[c+4>>2],r=t+24|0,a[r>>2]=a[c>>2],a[r+4>>2]=l,r=a[e+20>>2],a[t+16>>2]=a[e+16>>2],a[t+20>>2]=r,r=a[e+36>>2],a[t+32>>2]=a[e+32>>2],a[t+36>>2]=r,c=e+40|0,l=a[c+4>>2],r=t+40|0,a[r>>2]=a[c>>2],a[r+4>>2]=l,r=a[e+52>>2],a[t+48>>2]=a[e+48>>2],a[t+52>>2]=r,c=e+56|0,l=a[c+4>>2],r=t+56|0,a[r>>2]=a[c>>2],a[r+4>>2]=l,J(t- -64|0,e- -64|0,180),b+a[A+12>>2]|0}function ff(A,e,r,i,f,t,n,c,b){var l,u,s,k,v=_(0),d=_(0),g=_(0),R=_(0),Q=_(0),G=_(0),y=_(0),p=0,F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),Y=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=0,M=_(0);a[n>>2]=a[t+28>>2],u=a[A+16>>2],s=u+B(i,244)|0,A=a[s+240>>2],k=B(r,244)+u|0,l=a[k+240>>2],D=C[t+12>>2],x=C[t+36>>2],G=C[t+40>>2],p=a[f+120>>2];A:if(6&p){if(G=2&p?C[f+144>>2]:G,!(4&p))break A;x=C[f+148>>2]}else 8&p&&(d=_(D*C[f+144>>2]),v=_(h(_(d+C[f+148>>2]),_(1.1920928955078125e-7))),x=_(d/v),G=_(_(1)/v));v=C[f+68>>2],d=C[c>>2],R=C[c+4>>2],g=C[f+64>>2],F=_(_(v*d)-_(R*g)),Q=C[c+8>>2],W=_(Q*g),g=C[f+72>>2],y=_(W-_(g*d)),w=_(_(R*g)-_(Q*v)),Q=_(0),v=_(0),d=_(0),l&&(Z=_(_(_(_(w*C[l+356>>2])+_(y*C[l+360>>2]))+_(F*C[l+364>>2]))*C[l+612>>2]),d=_(_(_(_(w*C[l+340>>2])+_(y*C[l+344>>2]))+_(F*C[l+348>>2]))*C[l+608>>2]),v=_(_(_(_(w*C[l+324>>2])+_(y*C[l+328>>2]))+_(F*C[l+332>>2]))*C[l+604>>2])),C[e+64>>2]=v,a[e+76>>2]=0,C[e+72>>2]=Z,C[e+68>>2]=d,R=C[f+68>>2],g=C[b>>2],W=C[b+4>>2],E=C[f+64>>2],V=_(_(R*g)-_(W*E)),I=C[b+8>>2],N=C[f+72>>2],E=_(_(I*E)-_(N*g)),N=_(_(W*N)-_(I*R)),R=_(0),g=_(0),I=_(_(1)/D),A&&(Q=_(-N),g=_(_(_(_(C[A+356>>2]*Q)-_(C[A+360>>2]*E))-_(C[A+364>>2]*V))*C[A+612>>2]),R=_(_(_(_(C[A+340>>2]*Q)-_(C[A+344>>2]*E))-_(C[A+348>>2]*V))*C[A+608>>2]),Q=_(_(_(_(C[A+324>>2]*Q)-_(C[A+328>>2]*E))-_(C[A+332>>2]*V))*C[A+604>>2])),C[e+80>>2]=Q,a[e+92>>2]=0,C[e+88>>2]=g,C[e+84>>2]=R,D=_(0),W=_(0),l&&(W=C[c+8>>2],J=C[c+4>>2],M=_(_(_(d*W)-_(Z*J))*C[f+64>>2]),Y=Z,Z=C[c>>2],W=_(C[l+404>>2]+_(_(M+_(_(_(Y*Z)-_(W*v))*C[f+68>>2]))+_(_(_(J*v)-_(d*Z))*C[f+72>>2])))),p=e,J=C[n>>2],Z=_(I*G),Y=Z,A&&(v=C[b+4>>2],d=C[b+8>>2],D=_(_(_(v*g)-_(d*R))*C[f+64>>2]),G=_(d*Q),d=C[b>>2],D=_(C[A+404>>2]+_(_(D+_(_(G-_(d*g))*C[f+68>>2]))+_(_(_(d*R)-_(v*Q))*C[f+72>>2])))),C[p+108>>2]=J/_(Y+_(W+D)),n=e+16|0,l?(p=f- -64|0,U=a[p+4>>2],a[n>>2]=a[p>>2],a[n+4>>2]=U,p=p+8|0,U=a[p+4>>2],n=n+8|0,a[n>>2]=a[p>>2],a[n+4>>2]=U,a[e+12>>2]=0,C[e+8>>2]=F,C[e+4>>2]=y,C[e>>2]=w):(a[e>>2]=0,a[e+4>>2]=0,p=e+24|0,a[p>>2]=0,a[p+4>>2]=0,a[n>>2]=0,a[n+4>>2]=0,n=e+8|0,a[n>>2]=0,a[n+4>>2]=0),A?(v=C[f+64>>2],d=C[f+68>>2],R=C[f+72>>2],a[e+60>>2]=0,a[e+44>>2]=0,C[e+40>>2]=-V,C[e+36>>2]=-E,C[e+32>>2]=-N,C[e+56>>2]=-R,C[e+52>>2]=-d,C[e+48>>2]=-v):(a[e+32>>2]=0,a[e+36>>2]=0,n=e+56|0,a[n>>2]=0,a[n+4>>2]=0,n=e+48|0,a[n>>2]=0,a[n+4>>2]=0,n=e+40|0,a[n>>2]=0,a[n+4>>2]=0),D=C[t+64>>2],W=C[f+80>>2],Q=_(0),v=_(0),d=_(0),R=_(0),l&&(v=C[c+4>>2],d=C[l+388>>2],g=C[l+392>>2],G=C[c>>2],R=_(_(_(v*d)-_(g*G))+C[l+380>>2]),F=C[l+396>>2],Y=_(F*G),G=C[c+8>>2],d=_(C[l+376>>2]+_(Y-_(G*d))),v=_(_(_(g*G)-_(F*v))+C[l+372>>2])),g=_(0),F=_(0),A&&(G=C[b+4>>2],g=C[A+388>>2],Q=C[A+392>>2],y=C[b>>2],F=_(_(_(G*g)-_(Q*y))+C[A+380>>2]),w=C[A+396>>2],Y=_(w*y),y=C[b+8>>2],g=_(C[A+376>>2]+_(Y-_(y*g))),Q=_(_(_(Q*y)-_(w*G))+C[A+372>>2])),n=s+240|0,c=k+240|0,G=C[f+72>>2],y=C[f+64>>2],w=C[f+68>>2],a[e+104>>2]=a[f+84>>2],v=_(_(_(y*_(v-Q))+_(w*_(d-g)))+_(G*_(R-F))),G=_(m(v))<C[t+96>>2]?_(0):_(-_(v*C[f+96>>2]));A:if(4&o[t+72|0]){if(v=_(C[f+124>>2]*C[t+68>>2]),C[e+100>>2]=v,!l|!a[c>>2]||(d=C[l+416>>2],R=C[e+24>>2],g=C[l+412>>2],Q=C[e+20>>2],f=B(r,244)+u|0,C[f+64>>2]=_(C[f+112>>2]*_(v*_(_(C[e+16>>2]*C[f+128>>2])*C[l+408>>2])))+C[f+64>>2],b=f+68|0,C[b>>2]=_(_(v*_(g*_(Q*C[f+132>>2])))*C[f+116>>2])+C[b>>2],b=f+72|0,C[b>>2]=_(_(v*_(d*_(R*C[f+136>>2])))*C[f+120>>2])+C[b>>2],d=C[e+72>>2],R=C[e+68>>2],C[f+80>>2]=_(_(v*C[f+96>>2])*C[e+64>>2])+C[f+80>>2],g=C[f+104>>2],b=f+84|0,C[b>>2]=_(R*_(v*C[f+100>>2]))+C[b>>2],f=f+88|0,C[f>>2]=_(d*_(v*g))+C[f>>2]),!A|!a[n>>2])break A;d=C[A+416>>2],R=C[e+56>>2],g=C[A+412>>2],Q=C[e+52>>2],F=C[e+88>>2],y=C[e+84>>2],w=C[e+80>>2],f=B(i,244)+u|0,v=C[e+100>>2],C[f+64>>2]=_(C[f+112>>2]*_(v*_(_(C[e+48>>2]*C[f+128>>2])*C[A+408>>2])))+C[f+64>>2],A=f+68|0,C[A>>2]=_(_(v*_(g*_(Q*C[f+132>>2])))*C[f+116>>2])+C[A>>2],A=f+72|0,C[A>>2]=_(_(v*_(d*_(R*C[f+136>>2])))*C[f+120>>2])+C[A>>2],v=_(-v),C[f+80>>2]=C[f+80>>2]-_(w*_(C[f+96>>2]*v)),d=C[f+104>>2],A=f+84|0,C[A>>2]=C[A>>2]-_(y*_(C[f+100>>2]*v)),A=f+88|0,C[A>>2]=C[A>>2]-_(F*_(d*v))}else a[e+100>>2]=0;f=G<=_(0),a[e+96>>2]=0,d=_(0),R=_(0),g=_(0),F=_(0),y=_(0),w=_(0),V=_(0),a[c>>2]&&(A=B(r,244)+u|0,V=C[A+224>>2],F=C[A+208>>2],y=C[A+232>>2],w=C[A+228>>2],g=C[A+212>>2],R=C[A+216>>2]),Q=_(W+D),N=f?_(0):G,v=_(0),E=_(0),G=_(0),D=_(0),W=_(0),a[n>>2]&&(A=B(i,244)+u|0,W=C[A+224>>2],d=C[A+208>>2],G=C[A+232>>2],D=C[A+228>>2],E=C[A+216>>2],v=C[A+212>>2]),A=B(r,244)+u|0,Y=_(_(_(_(_(F+C[A+176>>2])*C[e+16>>2])+_(_(g+C[A+180>>2])*C[e+20>>2]))+_(_(R+C[A+184>>2])*C[e+24>>2]))+_(_(_(_(V+C[A+192>>2])*C[e>>2])+_(_(w+C[A+196>>2])*C[e+4>>2]))+_(_(y+C[A+200>>2])*C[e+8>>2]))),A=B(i,244)+u|0,v=_(N-_(Y+_(_(_(_(_(d+C[A+176>>2])*C[e+48>>2])+_(_(v+C[A+180>>2])*C[e+52>>2]))+_(_(E+C[A+184>>2])*C[e+56>>2]))+_(_(_(_(W+C[A+192>>2])*C[e+32>>2])+_(_(D+C[A+196>>2])*C[e+36>>2]))+_(_(G+C[A+200>>2])*C[e+40>>2]))))),d=_(0),Q>_(0)?v=_(v-_(I*Q)):d=_(-_(I*_(x*Q))),R=C[e+108>>2],v=_(v*R),d=_(d*R),Q>C[t+56>>2]^1&&a[t+52>>2]||(v=_(d+v),d=_(0)),C[e+128>>2]=d,C[e+112>>2]=v,a[e+120>>2]=0,a[e+124>>2]=1343554297,C[e+116>>2]=Z*R}function tf(A,e,r,i,f,t){var n,o,c,b,l,u,s,k=_(0),v=_(0),d=0,g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0);c=a[A+16>>2],n=a[240+(c+B(i,244)|0)>>2],o=a[240+(B(r,244)+c|0)>>2],b=a[A+76>>2],l=a[e+140>>2],u=a[t+72>>2],s=4&u;A:if(s){if(e=B(l,152)+b|0,k=_(C[f+128>>2]*C[t+68>>2]),C[e+100>>2]=k,o&&(g=C[o+416>>2],m=C[e+24>>2],R=C[o+412>>2],Q=C[e+20>>2],A=B(r,244)+c|0,v=C[o+404>>2],C[A+64>>2]=_(_(k*_(_(v*C[e+16>>2])*C[o+408>>2]))*C[A+112>>2])+C[A+64>>2],d=A+68|0,C[d>>2]=_(_(k*_(R*_(v*Q)))*C[A+116>>2])+C[d>>2],d=A+72|0,C[d>>2]=_(_(k*_(g*_(v*m)))*C[A+120>>2])+C[d>>2],v=C[e+72>>2],g=C[e+68>>2],C[A+80>>2]=_(_(k*C[A+96>>2])*C[e+64>>2])+C[A+80>>2],m=C[A+104>>2],d=A+84|0,C[d>>2]=_(g*_(k*C[A+100>>2]))+C[d>>2],A=A+88|0,C[A>>2]=_(v*_(k*m))+C[A>>2]),!n)break A;d=B(l,152)+b|0,g=C[d+88>>2],m=C[d+84>>2],R=C[d+80>>2],Q=C[n+416>>2],h=C[d+56>>2],G=C[n+412>>2],y=C[d+52>>2],A=B(i,244)+c|0,v=C[n+404>>2],k=C[e+100>>2],C[A+64>>2]=_(_(_(_(C[d+48>>2]*v)*C[n+408>>2])*k)*C[A+112>>2])+C[A+64>>2],e=A+68|0,C[e>>2]=_(_(k*_(G*_(y*v)))*C[A+116>>2])+C[e>>2],e=A+72|0,C[e>>2]=_(_(k*_(Q*_(h*v)))*C[A+120>>2])+C[e>>2],C[A+80>>2]=C[A+80>>2]+_(R*_(k*C[A+96>>2])),v=C[A+104>>2],e=A+84|0,C[e>>2]=C[e>>2]+_(m*_(k*C[A+100>>2])),A=A+88|0,C[A>>2]=C[A>>2]+_(g*_(v*k))}else a[100+(B(l,152)+b|0)>>2]=0;A:if(16&u){if(d=l+1|0,s){if(e=B(d,152)+b|0,k=_(C[f+132>>2]*C[t+68>>2]),C[e+100>>2]=k,o&&(g=C[e+24>>2],m=C[e+20>>2],A=B(r,244)+c|0,v=C[o+404>>2],C[A+64>>2]=_(_(k*_(v*C[e+16>>2]))*C[A+112>>2])+C[A+64>>2],r=A+68|0,C[r>>2]=_(_(k*_(v*m))*C[A+116>>2])+C[r>>2],r=A+72|0,C[r>>2]=_(_(k*_(v*g))*C[A+120>>2])+C[r>>2],v=C[e+72>>2],g=C[e+68>>2],C[A+80>>2]=_(_(k*C[A+96>>2])*C[e+64>>2])+C[A+80>>2],m=C[A+104>>2],r=A+84|0,C[r>>2]=_(g*_(k*C[A+100>>2]))+C[r>>2],A=A+88|0,C[A>>2]=_(v*_(k*m))+C[A>>2]),!n)break A;return r=B(d,152)+b|0,g=C[r+88>>2],m=C[r+84>>2],R=C[r+56>>2],Q=C[r+52>>2],h=C[r+48>>2],v=C[n+404>>2],A=B(i,244)+c|0,k=C[e+100>>2],C[A+80>>2]=C[A+80>>2]+_(C[r+80>>2]*_(C[A+96>>2]*k)),C[A+64>>2]=_(_(k*_(h*v))*C[A+112>>2])+C[A+64>>2],e=A+68|0,C[e>>2]=_(_(k*_(Q*v))*C[A+116>>2])+C[e>>2],e=A+72|0,C[e>>2]=_(_(k*_(R*v))*C[A+120>>2])+C[e>>2],v=C[A+104>>2],e=A+84|0,C[e>>2]=C[e>>2]+_(m*_(k*C[A+100>>2])),A=A+88|0,void(C[A>>2]=C[A>>2]+_(g*_(v*k)))}a[100+(B(d,152)+b|0)>>2]=0}}function nf(A,e,r){var i,t,n,c,b,l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),R=_(0),Q=0,h=_(0),G=_(0),p=0,F=_(0),W=0,w=0,D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=0,x=0,U=_(0),M=0,S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=0,K=0,L=0,q=0,$=_(0),AA=0,eA=0,rA=0,iA=0,fA=0,tA=0,nA=0,aA=0,oA=0,cA=0,bA=0,lA=0,uA=0,sA=0,kA=0,vA=0,gA=0,BA=0,_A=0,mA=0,RA=0,QA=0,hA=0,GA=0,yA=0,pA=0,FA=0,WA=0,wA=_(0);if(n=Y-80|0,Y=n,i=a[e+776>>2],t=a[e+772>>2],c=ef(A,t,C[r+12>>2]),b=ef(A,i,C[r+12>>2]),w=a[A+16>>2],Q=w+B(c,244)|0,l=C[Q+128>>2],g=_(l*l),l=C[Q+132>>2],g=_(g+_(l*l)),l=C[Q+136>>2],!(_(g+_(l*l))<_(1.4210854715202004e-14)&&(Q=w+B(b,244)|0,l=C[Q+128>>2],g=_(l*l),l=C[Q+132>>2],g=_(g+_(l*l)),l=C[Q+136>>2],_(g+_(l*l))<_(1.4210854715202004e-14))||(p=a[e+780>>2],(0|p)<1)))for(Q=w+B(b,244)|0,rA=Q+232|0,iA=Q+200|0,fA=Q+228|0,tA=Q+196|0,nA=Q+224|0,aA=Q+192|0,oA=Q+216|0,cA=Q+184|0,bA=Q+212|0,lA=Q+180|0,uA=Q+208|0,sA=Q+176|0,kA=Q+240|0,Q=w+B(c,244)|0,vA=Q+232|0,gA=Q+200|0,BA=Q+228|0,_A=Q+196|0,mA=Q+224|0,RA=Q+192|0,QA=Q+216|0,hA=Q+184|0,GA=Q+212|0,yA=Q+180|0,pA=Q+208|0,FA=Q+176|0,WA=Q+240|0;;){if(W=B(AA,192)+e|0,C[W+84>>2]<=C[e+788>>2]){if(K=W+4|0,Q=a[A+28>>2],p=Q,(0|Q)==a[A+32>>2]&&(p=Q,I=Q?Q<<1:1,!((0|Q)>=(0|I)))){if(I?(x=dA(B(I,152)),w=a[A+28>>2]):(x=0,w=Q),(0|w)>=1)for(p=0;J(p+x|0,a[A+36>>2]+p|0,152),p=p+152|0,w=w+-1|0,w;);p=a[A+36>>2],p&&(o[A+40|0]&&CA(p),a[A+36>>2]=0),a[A+36>>2]=x,f[A+40|0]=1,a[A+32>>2]=I,p=a[A+28>>2]}a[A+28>>2]=p+1,q=a[A+36>>2]+B(Q,152)|0,a[q+132>>2]=K,a[q+148>>2]=b,a[q+144>>2]=c,a[n+76>>2]=0,l=_(C[W+60>>2]-C[t+60>>2]),C[n+72>>2]=l,u=_(C[W+56>>2]-C[t+56>>2]),C[n+68>>2]=u,s=_(C[W+52>>2]-C[t+52>>2]),C[n+64>>2]=s,d=C[W+36>>2],v=C[W+40>>2],k=C[W+44>>2],R=C[i+52>>2],h=C[i+56>>2],g=C[i+60>>2],a[n+60>>2]=0,k=_(k-g),C[n+56>>2]=k,v=_(v-h),C[n+52>>2]=v,d=_(d-R),C[n+48>>2]=d,g=_(0),F=_(0),D=_(0),G=_(0),a[WA>>2]&&(R=_(C[RA>>2]+C[mA>>2]),h=_(C[_A>>2]+C[BA>>2]),G=_(_(C[hA>>2]+C[QA>>2])+_(_(u*R)-_(s*h))),F=s,s=_(C[gA>>2]+C[vA>>2]),D=_(_(C[yA>>2]+C[GA>>2])+_(_(F*s)-_(l*R))),F=_(_(C[FA>>2]+C[pA>>2])+_(_(l*h)-_(u*s)))),U=_(0),N=_(0),a[kA>>2]&&(l=_(C[aA>>2]+C[nA>>2]),u=_(C[tA>>2]+C[fA>>2]),N=_(_(C[cA>>2]+C[oA>>2])+_(_(v*l)-_(d*u))),s=_(C[iA>>2]+C[rA>>2]),U=_(_(C[lA>>2]+C[bA>>2])+_(_(d*s)-_(k*l))),g=_(_(C[sA>>2]+C[uA>>2])+_(_(k*u)-_(v*s)))),P=W+76|0,V=C[P>>2],x=W+68|0,$=C[x>>2],M=W+72|0,wA=C[M>>2],ff(A,q,c,b,K,r,n+44|0,n- -64|0,n+48|0),a[q+140>>2]=a[A+68>>2],p=W+92|0,C[p>>2]>_(0)&&(Af(A,x,c,b,Q,C[W+96>>2]),s=C[P>>2],_(m(s))>_(.7071067690849304)?(a[n+24>>2]=0,l=C[M>>2],k=_(_(s*s)+_(l*l)),u=_(_(1)/_(y(k))),l=_(l*u),C[n+32>>2]=l,v=_(k*u),C[n+8>>2]=v,u=_(-_(s*u)),C[n+28>>2]=u,s=C[x>>2],d=_(-_(s*l)),C[n+12>>2]=d,R=_(s*u),k=_(0)):(a[n+32>>2]=0,u=C[x>>2],k=C[M>>2],R=_(_(u*u)+_(k*k)),l=_(_(1)/_(y(R))),u=_(u*l),C[n+28>>2]=u,k=_(-_(k*l)),C[n+24>>2]=k,d=_(s*k),C[n+12>>2]=d,v=_(-_(s*u)),C[n+8>>2]=v,R=_(R*l),l=_(0)),h=_(_(1)/_(y(_(_(_(k*k)+_(u*u))+_(l*l))))),l=_(l*h),C[n+32>>2]=l,s=_(u*h),C[n+28>>2]=s,k=_(k*h),C[n+24>>2]=k,u=R,R=_(_(1)/_(y(_(_(R*R)+_(_(v*v)+_(d*d)))))),u=_(u*R),C[n+16>>2]=u,d=_(d*R),C[n+12>>2]=d,v=_(v*R),C[n+8>>2]=v,w=2&a[t+180>>2],w&&(a[n+36>>2]=0,S=C[t+4>>2],X=C[t+20>>2],T=C[t+36>>2],R=_(_(_(_(k*S)+_(s*X))+_(l*T))*C[t+164>>2]),j=C[t+8>>2],O=C[t+24>>2],H=C[t+40>>2],h=_(_(_(_(k*j)+_(s*O))+_(l*H))*C[t+168>>2]),z=C[t+12>>2],E=s,s=C[t+28>>2],Z=l,l=C[t+44>>2],k=_(_(_(_(k*z)+_(E*s))+_(Z*l))*C[t+172>>2]),l=_(_(_(T*R)+_(H*h))+_(l*k)),C[n+32>>2]=l,s=_(_(_(X*R)+_(O*h))+_(s*k)),C[n+28>>2]=s,k=_(_(_(S*R)+_(j*h))+_(z*k)),C[n+24>>2]=k),I=2&a[i+180>>2],I&&(a[n+36>>2]=0,S=C[i+4>>2],X=C[i+20>>2],T=C[i+36>>2],R=_(_(_(_(S*k)+_(X*s))+_(T*l))*C[i+164>>2]),j=C[i+8>>2],O=C[i+24>>2],H=C[i+40>>2],h=_(_(_(_(k*j)+_(s*O))+_(l*H))*C[i+168>>2]),z=C[i+12>>2],E=s,s=C[i+28>>2],Z=l,l=C[i+44>>2],k=_(_(_(_(k*z)+_(E*s))+_(Z*l))*C[i+172>>2]),l=_(_(_(T*R)+_(H*h))+_(l*k)),C[n+32>>2]=l,s=_(_(_(X*R)+_(O*h))+_(s*k)),C[n+28>>2]=s,k=_(_(_(S*R)+_(j*h))+_(z*k)),C[n+24>>2]=k),w&&(a[n+20>>2]=0,S=C[t+4>>2],X=C[t+20>>2],T=C[t+36>>2],R=_(_(_(_(v*S)+_(d*X))+_(u*T))*C[t+164>>2]),j=C[t+8>>2],O=C[t+24>>2],H=C[t+40>>2],h=_(_(_(_(v*j)+_(d*O))+_(u*H))*C[t+168>>2]),z=C[t+12>>2],E=d,d=C[t+28>>2],Z=u,u=C[t+44>>2],v=_(_(_(_(v*z)+_(E*d))+_(Z*u))*C[t+172>>2]),u=_(_(_(T*R)+_(H*h))+_(u*v)),C[n+16>>2]=u,d=_(_(_(X*R)+_(O*h))+_(d*v)),C[n+12>>2]=d,v=_(_(_(S*R)+_(j*h))+_(z*v)),C[n+8>>2]=v),I&&(a[n+20>>2]=0,S=C[i+4>>2],X=C[i+20>>2],T=C[i+36>>2],R=_(_(_(_(S*v)+_(X*d))+_(T*u))*C[i+164>>2]),j=C[i+8>>2],O=C[i+24>>2],H=C[i+40>>2],h=_(_(_(_(v*j)+_(d*O))+_(u*H))*C[i+168>>2]),z=C[i+12>>2],E=d,d=C[i+28>>2],Z=u,u=C[i+44>>2],v=_(_(_(_(v*z)+_(E*d))+_(Z*u))*C[i+172>>2]),u=_(_(_(T*R)+_(H*h))+_(u*v)),C[n+16>>2]=u,d=_(_(_(X*R)+_(O*h))+_(d*v)),C[n+12>>2]=d,v=_(_(_(S*R)+_(j*h))+_(z*v)),C[n+8>>2]=v),+_(y(_(_(_(k*k)+_(s*s))+_(l*l))))>.001&&Af(A,n+24|0,c,b,Q,C[p>>2]),+_(y(_(_(_(v*v)+_(d*d))+_(u*u))))>.001&&Af(A,n+8|0,c,b,Q,C[p>>2]));A:if(1&f[W+124|0]&&32&o[r+72|0])l=C[n+44>>2],p=W+156|0,$i(A,W+164|0,c,b,Q,K,n- -64|0,n+48|0,l,r,C[W+140>>2],C[p>>2]),16&o[r+72|0]&&$i(A,W+180|0,c,b,Q,K,n- -64|0,n+48|0,l,r,C[W+144>>2],C[p>>2]);else{if(L=W+176|0,a[L>>2]=0,s=_(F-g),u=_(D-U),k=_(G-N),l=_(_(_(s*$)+_(u*wA))+_(k*V)),w=W+172|0,g=k,k=C[P>>2],v=_(g-_(l*k)),C[w>>2]=v,I=W+168|0,g=u,u=C[M>>2],d=_(g-_(l*u)),C[I>>2]=d,p=W+164|0,g=s,s=C[x>>2],l=_(g-_(l*s)),C[p>>2]=l,!(64&o[r+72|0])&&(R=_(_(_(l*l)+_(d*d))+_(v*v)),R>_(1.1920928955078125e-7))){if(u=_(_(1)/_(y(R))),s=_(d*u),C[I>>2]=s,l=_(l*u),C[p>>2]=l,u=_(v*u),C[w>>2]=u,1&f[t+180|0]&&(U=C[t+172>>2],k=C[t+44>>2],v=C[t+12>>2],d=C[t+28>>2],N=C[t+164>>2],R=C[t+36>>2],h=C[t+4>>2],g=C[t+20>>2],V=C[t+168>>2],F=C[t+40>>2],D=C[t+8>>2],G=C[t+24>>2],a[L>>2]=0,E=g,g=_(N*_(_(_(l*h)+_(s*g))+_(u*R))),Z=G,G=_(V*_(_(_(l*D)+_(s*G))+_(u*F))),u=_(U*_(_(_(l*v)+_(s*d))+_(u*k))),s=_(_(_(E*g)+_(Z*G))+_(d*u)),C[I>>2]=s,l=_(_(_(h*g)+_(D*G))+_(v*u)),C[p>>2]=l,u=_(_(_(R*g)+_(F*G))+_(k*u)),C[w>>2]=u),1&f[i+180|0]&&(U=C[i+172>>2],k=C[i+44>>2],v=C[i+12>>2],d=C[i+28>>2],N=C[i+164>>2],R=C[i+36>>2],h=C[i+4>>2],g=C[i+20>>2],V=C[i+168>>2],F=C[i+40>>2],D=C[i+8>>2],G=C[i+24>>2],a[L>>2]=0,E=g,g=_(N*_(_(_(h*l)+_(g*s))+_(R*u))),Z=G,G=_(V*_(_(_(l*D)+_(s*G))+_(u*F))),l=_(U*_(_(_(l*v)+_(s*d))+_(u*k))),C[I>>2]=_(_(E*g)+_(Z*G))+_(d*l),C[p>>2]=_(_(h*g)+_(D*G))+_(v*l),C[w>>2]=_(_(R*g)+_(F*G))+_(k*l)),U=C[n+44>>2],$i(A,p,c,b,Q,K,n- -64|0,n+48|0,U,r,_(0),_(0)),!(16&o[r+72|0]))break A;L=W+192|0,a[L>>2]=0,eA=W+188|0,u=C[M>>2],k=C[p>>2],s=C[I>>2],v=C[x>>2],l=_(_(u*k)-_(s*v)),d=C[P>>2],R=C[w>>2],s=_(_(s*d)-_(R*u)),u=_(_(R*v)-_(d*k)),k=_(_(1)/_(y(_(_(_(s*s)+_(u*u))+_(l*l))))),l=_(l*k),C[eA>>2]=l,w=W+184|0,u=_(u*k),C[w>>2]=u,p=W+180|0,s=_(s*k),C[p>>2]=s,1&f[t+180|0]&&(N=C[t+172>>2],k=C[t+44>>2],v=C[t+12>>2],d=C[t+28>>2],V=C[t+164>>2],R=C[t+36>>2],h=C[t+4>>2],g=C[t+20>>2],$=C[t+168>>2],F=C[t+40>>2],D=C[t+8>>2],G=C[t+24>>2],a[L>>2]=0,E=g,g=_(V*_(_(_(s*h)+_(u*g))+_(l*R))),Z=G,G=_($*_(_(_(s*D)+_(u*G))+_(l*F))),l=_(N*_(_(_(s*v)+_(u*d))+_(l*k))),u=_(_(_(E*g)+_(Z*G))+_(d*l)),C[w>>2]=u,s=_(_(_(h*g)+_(D*G))+_(v*l)),C[p>>2]=s,l=_(_(_(R*g)+_(F*G))+_(k*l)),C[eA>>2]=l),1&f[i+180|0]&&(N=C[i+172>>2],k=C[i+44>>2],v=C[i+12>>2],d=C[i+28>>2],V=C[i+164>>2],R=C[i+36>>2],h=C[i+4>>2],g=C[i+20>>2],$=C[i+168>>2],F=C[i+40>>2],D=C[i+8>>2],G=C[i+24>>2],a[L>>2]=0,E=g,g=_(V*_(_(_(h*s)+_(g*u))+_(R*l))),Z=G,G=_($*_(_(_(s*D)+_(u*G))+_(l*F))),l=_(N*_(_(_(s*v)+_(u*d))+_(l*k))),C[w>>2]=_(_(E*g)+_(Z*G))+_(d*l),C[p>>2]=_(_(h*g)+_(D*G))+_(v*l),C[eA>>2]=_(_(R*g)+_(F*G))+_(k*l)),$i(A,p,c,b,Q,K,n- -64|0,n+48|0,U,r,_(0),_(0));break A}if(x=W+180|0,_(m(k))>_(.7071067690849304)?(a[p>>2]=0,d=_(_(u*u)+_(k*k)),v=_(_(1)/_(y(d))),u=_(u*v),C[w>>2]=u,l=_(-_(k*v)),C[I>>2]=l,k=_(d*v),d=_(s*l),v=_(-_(s*u)),s=_(0)):(a[w>>2]=0,d=_(_(s*s)+_(u*u)),v=_(_(1)/_(y(d))),l=_(s*v),C[I>>2]=l,s=_(-_(u*v)),C[p>>2]=s,d=_(d*v),v=_(k*s),k=_(-_(k*l)),u=_(0)),C[x>>2]=k,M=W+188|0,C[M>>2]=d,P=W+184|0,C[P>>2]=v,1&f[t+180|0]&&(U=C[t+172>>2],k=C[t+44>>2],v=C[t+12>>2],d=C[t+28>>2],N=C[t+164>>2],R=C[t+36>>2],h=C[t+4>>2],g=C[t+20>>2],V=C[t+168>>2],F=C[t+40>>2],D=C[t+8>>2],G=C[t+24>>2],a[L>>2]=0,E=g,g=_(N*_(_(_(h*s)+_(g*l))+_(R*u))),Z=G,G=_(V*_(_(_(s*D)+_(l*G))+_(u*F))),u=_(U*_(_(_(s*v)+_(l*d))+_(u*k))),l=_(_(_(E*g)+_(Z*G))+_(d*u)),C[I>>2]=l,s=_(_(_(h*g)+_(D*G))+_(v*u)),C[p>>2]=s,u=_(_(_(R*g)+_(F*G))+_(k*u)),C[w>>2]=u),1&f[i+180|0]&&(U=C[i+172>>2],k=C[i+44>>2],v=C[i+12>>2],d=C[i+28>>2],N=C[i+164>>2],R=C[i+36>>2],h=C[i+4>>2],g=C[i+20>>2],V=C[i+168>>2],F=C[i+40>>2],D=C[i+8>>2],G=C[i+24>>2],a[L>>2]=0,E=g,g=_(N*_(_(_(h*s)+_(g*l))+_(R*u))),Z=G,G=_(V*_(_(_(s*D)+_(l*G))+_(u*F))),l=_(U*_(_(_(s*v)+_(l*d))+_(u*k))),C[I>>2]=_(_(E*g)+_(Z*G))+_(d*l),C[p>>2]=_(_(h*g)+_(D*G))+_(v*l),C[w>>2]=_(_(R*g)+_(F*G))+_(k*l)),U=C[n+44>>2],$i(A,p,c,b,Q,K,n- -64|0,n+48|0,U,r,_(0),_(0)),w=a[r+72>>2],16&w&&(1&f[t+180|0]&&(N=C[t+172>>2],l=C[t+44>>2],u=C[t+12>>2],s=C[t+28>>2],F=C[t+164>>2],k=C[t+36>>2],v=C[t+4>>2],d=C[t+20>>2],V=C[t+168>>2],R=C[t+40>>2],h=C[t+8>>2],g=C[t+24>>2],a[W+192>>2]=0,E=v,G=F,v=C[x>>2],F=C[P>>2],D=C[M>>2],G=_(G*_(_(_(E*v)+_(d*F))+_(k*D))),Z=h,h=_(V*_(_(_(v*h)+_(F*g))+_(D*R))),V=u,u=_(N*_(_(_(v*u)+_(F*s))+_(D*l))),C[x>>2]=_(_(E*G)+_(Z*h))+_(V*u),C[P>>2]=_(_(d*G)+_(g*h))+_(s*u),C[M>>2]=_(_(k*G)+_(R*h))+_(l*u)),1&f[i+180|0]&&(N=C[i+172>>2],l=C[i+44>>2],u=C[i+12>>2],s=C[i+28>>2],F=C[i+164>>2],k=C[i+36>>2],v=C[i+4>>2],d=C[i+20>>2],V=C[i+168>>2],R=C[i+40>>2],h=C[i+8>>2],g=C[i+24>>2],a[W+192>>2]=0,E=v,G=F,v=C[x>>2],F=C[P>>2],D=C[M>>2],G=_(G*_(_(_(E*v)+_(d*F))+_(k*D))),Z=h,h=_(V*_(_(_(v*h)+_(F*g))+_(D*R))),V=u,u=_(N*_(_(_(v*u)+_(F*s))+_(D*l))),C[x>>2]=_(_(E*G)+_(Z*h))+_(V*u),C[P>>2]=_(_(d*G)+_(g*h))+_(s*u),C[M>>2]=_(_(k*G)+_(R*h))+_(l*u)),$i(A,x,c,b,Q,K,n- -64|0,n+48|0,U,r,_(0),_(0)),w=a[r+72>>2]),80!=(80&w))break A;Q=W+124|0,a[Q>>2]=1|a[Q>>2]}tf(A,q,c,b,K,r),p=a[e+780>>2]}if(AA=AA+1|0,!((0|AA)<(0|p)))break}Y=n+80|0}function af(A,e,r){var i,f=0,t=0,n=0;i=Y-80|0,Y=i,a[A+240>>2]&&(C[A+176>>2]=C[A+64>>2]+C[A+176>>2],C[A+192>>2]=C[A+80>>2]+C[A+192>>2],f=A+180|0,C[f>>2]=C[A+68>>2]+C[f>>2],f=A+184|0,C[f>>2]=C[A+72>>2]+C[f>>2],f=A+196|0,C[f>>2]=C[A+84>>2]+C[f>>2],f=A+200|0,C[f>>2]=C[A+88>>2]+C[f>>2],(C[A+144>>2]!=_(0)|C[A+148>>2]!=_(0)|C[A+152>>2]!=_(0)|C[A+160>>2]!=_(0)||C[A+164>>2]!=_(0)||C[A+168>>2]!=_(0))&&(a[i+12>>2]=0,C[i>>2]=C[A+160>>2]*r,C[i+8>>2]=C[A+168>>2]*r,C[i+4>>2]=C[A+164>>2]*r,xi(A,A+144|0,i,e,i+16|0),t=i+24|0,n=a[t+4>>2],f=A+8|0,a[f>>2]=a[t>>2],a[f+4>>2]=n,f=a[i+20>>2],a[A>>2]=a[i+16>>2],a[A+4>>2]=f,f=a[i+36>>2],a[A+16>>2]=a[i+32>>2],a[A+20>>2]=f,t=i+40|0,n=a[t+4>>2],f=A+24|0,a[f>>2]=a[t>>2],a[f+4>>2]=n,f=a[i+52>>2],a[A+32>>2]=a[i+48>>2],a[A+36>>2]=f,t=i+56|0,n=a[t+4>>2],f=A+40|0,a[f>>2]=a[t>>2],a[f+4>>2]=n,f=a[i+68>>2],a[A+48>>2]=a[i+64>>2],a[A+52>>2]=f,f=i+72|0,t=a[f+4>>2],A=A+56|0,a[A>>2]=a[f>>2],a[A+4>>2]=t)),Y=i+80|0}function of(A,e,r,i,f){return a[A+20>>2]=0,a[A+16>>2]=r,a[A+12>>2]=e,a[A+8>>2]=f,a[A+4>>2]=i,a[A>>2]=20396,A}function cf(A,e,r,i){var t,n=0,o=0,c=0,b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=0,I=0,J=_(0),x=_(0),U=_(0),M=_(0),S=0,X=0,T=0,j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0);t=Y-240|0,Y=t,a[A+16>>2]?(Yr(a[A+4>>2]),n=a[A+12>>2],o=a[n+4>>2],c=a[A+16>>2],N=a[c+4>>2],I=n,h=_(Qt[a[a[n>>2]+48>>2]](n)),n=a[A+16>>2],A=function(A,e,r,i,t,n,o,c,b){return a[A+72>>2]=1,a[A+76>>2]=1,a[A+60>>2]=-1,f[A+52|0]=0,C[A+48>>2]=o,C[A+44>>2]=n,a[A+40>>2]=t,a[A+36>>2]=i,a[A+32>>2]=r,a[A+28>>2]=e,a[A+24>>2]=c,a[A+20>>2]=b,a[A+4>>2]=0,a[A+8>>2]=1065353216,a[A>>2]=14908,e=A+12|0,a[e>>2]=0,a[e+4>>2]=0,A}(t+160|0,I,c,o,N,h,_(Qt[a[a[n>>2]+48>>2]](n)),a[A+4>>2],a[A+8>>2]),o=e+8|0,c=a[o+4>>2],n=t+32|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,o=e+24|0,c=a[o+4>>2],n=t+48|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,o=e+40|0,c=a[o+4>>2],n=t- -64|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,o=e+56|0,c=a[o+4>>2],n=t+80|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,o=r+8|0,c=a[o+4>>2],n=t+96|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,a[t+152>>2]=1566444395,n=a[e+4>>2],a[t+24>>2]=a[e>>2],a[t+28>>2]=n,n=a[e+20>>2],a[t+40>>2]=a[e+16>>2],a[t+44>>2]=n,n=a[e+36>>2],a[t+56>>2]=a[e+32>>2],a[t+60>>2]=n,n=a[e+52>>2],a[t+72>>2]=a[e+48>>2],a[t+76>>2]=n,e=a[r+4>>2],a[t+88>>2]=a[r>>2],a[t+92>>2]=e,n=r+24|0,o=a[n+4>>2],e=t+112|0,a[e>>2]=a[n>>2],a[e+4>>2]=o,n=a[r+20>>2],e=t+104|0,a[e>>2]=a[r+16>>2],a[e+4>>2]=n,n=r+40|0,o=a[n+4>>2],e=t+128|0,a[e>>2]=a[n>>2],a[e+4>>2]=o,n=a[r+36>>2],e=t+120|0,a[e>>2]=a[r+32>>2],a[e+4>>2]=n,n=r+56|0,o=a[n+4>>2],e=t+144|0,a[e>>2]=a[n>>2],a[e+4>>2]=o,n=a[r+52>>2],e=t+136|0,a[e>>2]=a[r+48>>2],a[e+4>>2]=n,Sr(A,t+24|0,i,0)):(F=C[e+52>>2],W=C[e+56>>2],o=r+52|0,J=C[o>>2],c=r+56|0,x=C[c>>2],g=C[e+20>>2],B=C[e+36>>2],N=r+20|0,d=C[N>>2],S=r+36|0,u=C[S>>2],X=r+24|0,s=C[X>>2],l=C[e+24>>2],T=r+40|0,b=C[T>>2],G=C[e+40>>2],U=C[e+48>>2],K=C[r+48>>2],n=a[A+12>>2],y=C[e+32>>2],p=C[e+16>>2],w=C[e>>2],D=C[e+4>>2],v=C[r+32>>2],m=C[r+16>>2],k=C[r>>2],R=C[r+4>>2],A=a[A+20>>2],Q=C[r+8>>2],E=C[e+8>>2],a[t+172>>2]=0,j=_(_(_(E*k)+_(l*m))+_(G*v)),Z=_(-C[A+52>>2]),O=_(_(_(E*R)+_(l*d))+_(G*u)),e=A+56|0,V=C[e>>2],E=_(_(_(E*Q)+_(l*s))+_(G*b)),I=A+60|0,l=C[I>>2],C[t+168>>2]=_(_(j*Z)-_(O*V))-_(E*l),H=_(_(_(D*k)+_(g*m))+_(B*v)),z=_(_(_(D*R)+_(g*d))+_(B*u)),D=_(_(_(D*Q)+_(g*s))+_(B*b)),C[t+164>>2]=_(_(H*Z)-_(V*z))-_(l*D),P=_(_(_(w*k)+_(p*m))+_(y*v)),h=_(P*Z),Z=_(_(_(w*R)+_(p*d))+_(y*u)),w=_(_(_(w*Q)+_(p*s))+_(y*b)),C[t+160>>2]=_(h-_(V*Z))-_(l*w),Qt[a[a[n>>2]+64>>2]](t+24|0,n,t+160|0),g=C[e>>2],B=C[I>>2],V=C[A+68>>2],l=C[A+52>>2],G=C[t+24>>2],y=C[t+28>>2],p=C[t+32>>2],a[t+172>>2]=0,M=_(_(_(U*k)+_(F*m))+_(W*v)),h=k,k=_(-K),v=_(_(M+_(_(_(h*k)-_(m*J))-_(v*x)))+_(_(_(P*G)+_(H*y))+_(j*p))),b=_(_(_(_(_(U*Q)+_(F*s))+_(W*b))+_(_(_(Q*k)-_(s*J))-_(b*x)))+_(_(_(w*G)+_(D*y))+_(E*p))),s=_(_(_(_(_(U*R)+_(F*d))+_(W*u))+_(_(_(R*k)-_(d*J))-_(u*x)))+_(_(_(Z*G)+_(z*y))+_(O*p))),d=_(_(_(B*b)+_(_(l*v)+_(g*s)))-V),u=_(v-_(l*d)),v=C[r+32>>2],s=_(s-_(g*d)),m=C[S>>2],b=_(b-_(B*d)),k=C[T>>2],C[t+168>>2]=_(_(_(u*v)+_(s*m))+_(b*k))+C[c>>2],R=C[r+16>>2],Q=C[N>>2],F=C[X>>2],C[t+164>>2]=_(_(_(u*R)+_(s*Q))+_(b*F))+C[o>>2],W=C[r+8>>2],M=_(W*b),b=C[r>>2],h=_(b*u),u=C[r+4>>2],C[t+160>>2]=_(M+_(h+_(u*s)))+C[r+48>>2],a[t+20>>2]=0,C[t+16>>2]=_(_(l*v)+_(g*m))+_(B*k),C[t+12>>2]=_(_(l*R)+_(g*Q))+_(B*F),C[t+8>>2]=_(_(b*l)+_(u*g))+_(W*B),Qt[a[a[i>>2]+16>>2]](i,t+8|0,t+160|0,d)),Y=t+240|0}function bf(A,e,r,i,t,n){A|=0,e|=0,r|=0,i|=0,t|=0,n|=0;var c,l=_(0),u=_(0),s=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=0,R=0,Q=0,h=0,G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=0,E=_(0),Z=_(0),V=0;c=Y-304|0,Y=c,a[c+300>>2]=0,g=_(C[r+56>>2]-C[e+56>>2]),C[c+296>>2]=g,G=_(C[r+52>>2]-C[e+52>>2]),C[c+292>>2]=G,p=_(C[r+48>>2]-C[e+48>>2]),C[c+288>>2]=p,Mi(e,r,c+112|0,c+48|0),a[c+284>>2]=0,u=C[c+48>>2],l=_(u*C[c+120>>2]),C[c+280>>2]=l,s=_(u*C[c+116>>2]),C[c+276>>2]=s,v=_(u*C[c+112>>2]),C[c+272>>2]=v,a[c+268>>2]=0,F=_(C[t+56>>2]-C[i+56>>2]),C[c+264>>2]=F,W=_(C[t+52>>2]-C[i+52>>2]),C[c+260>>2]=W,w=_(C[t+48>>2]-C[i+48>>2]),C[c+256>>2]=w,Mi(i,t,c+112|0,c+48|0),a[c+252>>2]=0,u=C[c+48>>2],d=_(u*C[c+120>>2]),C[c+248>>2]=d,B=_(u*C[c+116>>2]),C[c+244>>2]=B,u=_(u*C[c+112>>2]),C[c+240>>2]=u,r=a[A+12>>2],E=_(Qt[a[a[r>>2]+16>>2]](r)),r=a[A+16>>2],r&&(Z=_(Qt[a[a[r>>2]+16>>2]](r)),g=C[c+296>>2],F=C[c+264>>2],G=C[c+292>>2],W=C[c+260>>2],p=C[c+288>>2],w=C[c+256>>2],d=C[c+248>>2],B=C[c+244>>2],u=C[c+240>>2],s=C[c+276>>2],v=C[c+272>>2],l=C[c+280>>2]),B=_(_(E*_(y(_(_(_(v*v)+_(s*s))+_(l*l)))))+_(Z*_(y(_(_(_(u*u)+_(B*B))+_(d*d)))))),s=_(w-p),v=_(W-G),d=_(F-g);A:if(_(B+_(y(_(_(_(s*s)+_(v*v))+_(d*d)))))!=_(0)&&(f[c+216|0]=0,a[c+212>>2]=1566444395,a[c+176>>2]=15364,cf(A,e,i,c+176|0),t=c+204|0,m=a[t+4>>2],r=c+232|0,a[r>>2]=a[t>>2],a[r+4>>2]=m,r=a[c+200>>2],a[c+224>>2]=a[c+196>>2],a[c+228>>2]=r,o[c+216|0]&&(r=a[c+180>>2],t=c+184|0,m=a[t>>2],Q=c+188|0,h=a[Q>>2],!(_(B+_(_(_(s*C[c+180>>2])+_(v*C[t>>2]))+_(d*C[Q>>2])))<=_(1.1920928955078125e-7))))){R=1;e:{if(g=_(C[c+212>>2]+C[n+172>>2]),g>_(.0010000000474974513)){for(Q=c+20|0,V=c+160|0,t=0,u=_(0);;){if(D=a[n+168>>2],D&&(a[c+120>>2]=1065353216,a[c+124>>2]=0,a[c+112>>2]=1065353216,a[c+116>>2]=1065353216,Qt[a[a[D>>2]+28>>2]](D,c+224|0,_(.20000000298023224),c+112|0)),l=_(B+_(_(_(s*(b(0,r),k()))+_(v*(b(0,m),k())))+_(d*(b(0,h),k())))),l<=_(1.1920928955078125e-7)){R=0;break A}if(l=_(u+_(g/l)),l<=u){R=0;break A}if(l<_(0)){R=0;break A}if(l>_(1)){R=0;break A}if(xi(e,c+288|0,c+272|0,l,c+112|0),xi(i,c+256|0,c+240|0,l,c+48|0),r=a[n+168>>2],r&&(a[c+8>>2]=0,a[c+12>>2]=0,a[c>>2]=1065353216,a[c+4>>2]=0,Qt[a[a[r>>2]+28>>2]](r,V,_(.20000000298023224),c)),Qt[a[a[n>>2]>>2]](n,l),f[c+40|0]=0,a[c+36>>2]=1566444395,a[c>>2]=15364,cf(A,c+112|0,c+48|0,c),!o[c+40|0])break e;if(m=Q+8|0,h=a[m+4>>2],r=c+232|0,a[r>>2]=a[m>>2],a[r+4>>2]=h,r=a[Q+4>>2],a[c+224>>2]=a[Q>>2],a[c+228>>2]=r,t>>>0>63){Qt[a[a[n>>2]+8>>2]](n,-2,t+1|0),R=0;break A}if(t=t+1|0,r=a[c+4>>2],m=a[c+8>>2],h=a[c+12>>2],u=l,g=_(C[c+36>>2]+C[n+172>>2]),!(g>_(.0010000000474974513)))break}s=C[c+16>>2]}else l=_(0),s=C[c+192>>2];a[n+132>>2]=r,C[n+164>>2]=l,A=a[c+228>>2],a[n+148>>2]=a[c+224>>2],a[n+152>>2]=A,C[n+144>>2]=s,a[n+140>>2]=h,a[n+136>>2]=m,e=c+232|0,r=a[e+4>>2],A=n+156|0,a[A>>2]=a[e>>2],a[A+4>>2]=r;break A}Qt[a[a[n>>2]+8>>2]](n,-1,t),R=0}return Y=c+304|0,0|R}function lf(A,e,r,i){var f,t=0;a[A>>2]=20460,t=a[e+4>>2],a[A+4>>2]=a[e>>2],a[A+8>>2]=t,e=e+8|0,t=a[e+4>>2],f=A+12|0,a[f>>2]=a[e>>2],a[f+4>>2]=t,e=a[r+4>>2],a[A+20>>2]=a[r>>2],a[A+24>>2]=e,e=r+8|0,r=a[e+4>>2],t=A+28|0,a[t>>2]=a[e>>2],a[t+4>>2]=r,a[A+40>>2]=1065353216,a[A+36>>2]=i}function uf(A,e,r,i,f,t){var n=0,o=0;a[A+4>>2]=e,a[A>>2]=20484,e=r+8|0,n=a[e+4>>2],o=A+16|0,a[o>>2]=a[e>>2],a[o+4>>2]=n,e=a[r+4>>2],a[A+8>>2]=a[r>>2],a[A+12>>2]=e,e=r+24|0,n=a[e+4>>2],o=A+32|0,a[o>>2]=a[e>>2],a[o+4>>2]=n,e=a[r+20>>2],n=A+24|0,a[n>>2]=a[r+16>>2],a[n+4>>2]=e,e=r+40|0,n=a[e+4>>2],o=A+48|0,a[o>>2]=a[e>>2],a[o+4>>2]=n,e=a[r+36>>2],n=A+40|0,a[n>>2]=a[r+32>>2],a[n+4>>2]=e,e=r+56|0,n=a[e+4>>2],o=A- -64|0,a[o>>2]=a[e>>2],a[o+4>>2]=n,e=a[r+52>>2],n=A+56|0,a[n>>2]=a[r+48>>2],a[n+4>>2]=e,e=i+8|0,r=a[e+4>>2],n=A+80|0,a[n>>2]=a[e>>2],a[n+4>>2]=r,e=a[i+4>>2],a[A+72>>2]=a[i>>2],a[A+76>>2]=e,e=i+24|0,r=a[e+4>>2],n=A+96|0,a[n>>2]=a[e>>2],a[n+4>>2]=r,e=a[i+20>>2],r=A+88|0,a[r>>2]=a[i+16>>2],a[r+4>>2]=e,e=i+40|0,r=a[e+4>>2],n=A+112|0,a[n>>2]=a[e>>2],a[n+4>>2]=r,e=a[i+36>>2],r=A+104|0,a[r>>2]=a[i+32>>2],a[r+4>>2]=e,e=i+56|0,r=a[e+4>>2],n=A+128|0,a[n>>2]=a[e>>2],a[n+4>>2]=r,e=a[i+52>>2],r=A+120|0,a[r>>2]=a[i+48>>2],a[r+4>>2]=e,e=f+8|0,r=a[e+4>>2],i=A+144|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,e=a[f+4>>2],a[A+136>>2]=a[f>>2],a[A+140>>2]=e,e=f+24|0,r=a[e+4>>2],i=A+160|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,e=a[f+20>>2],r=A+152|0,a[r>>2]=a[f+16>>2],a[r+4>>2]=e,e=f+40|0,r=a[e+4>>2],i=A+176|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,e=a[f+36>>2],r=A+168|0,a[r>>2]=a[f+32>>2],a[r+4>>2]=e,e=f+56|0,r=a[e+4>>2],i=A+192|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,e=a[f+52>>2],r=A+184|0,a[r>>2]=a[f+48>>2],a[r+4>>2]=e,a[A+208>>2]=0,C[A+204>>2]=t,a[A+200>>2]=1065353216}function sf(A){A|=0;var e=0,r=0,i=0,t=0,n=0,c=0;if(a[A>>2]=20592,e=a[A+16>>2],r=a[A+8>>2],(0|r)>=1)for(;n=a[e+t>>2],i=a[n+188>>2],i&&(e=a[A+68>>2],e=0|Qt[a[a[e>>2]+36>>2]](e),Qt[a[a[e>>2]+40>>2]](e,i,a[A+24>>2]),e=a[A+68>>2],Qt[a[a[e>>2]+12>>2]](e,i,a[A+24>>2]),a[n+188>>2]=0,r=a[A+8>>2],e=a[A+16>>2]),t=t+4|0,c=c+1|0,(0|c)<(0|r););return e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=0,a[A+8>>2]=0,a[A+12>>2]=0,f[A+20|0]=1,0|A}function kf(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t,n,c,b=0,l=0,u=0,s=0,k=0;if(t=Y-96|0,Y=t,b=a[A+8>>2],a[e+216>>2]=b,a[A+12>>2]==(0|b)&&(s=b?b<<1:1,!((0|b)>=(0|s)))){if(s&&(k=dA(s<<2),b=a[A+8>>2]),(0|b)>=1)for(l=b;a[u+k>>2]=a[a[A+16>>2]+u>>2],u=u+4|0,l=l+-1|0,l;);l=a[A+16>>2],l&&(o[A+20|0]&&(CA(l),b=a[A+8>>2]),a[A+16>>2]=0),a[A+16>>2]=k,a[A+12>>2]=s,f[A+20|0]=1}a[A+8>>2]=b+1,a[a[A+16>>2]+(b<<2)>>2]=e,l=e+12|0,u=a[l+4>>2],b=t+40|0,a[b>>2]=a[l>>2],a[b+4>>2]=u,l=e+28|0,u=a[l+4>>2],b=t+56|0,a[b>>2]=a[l>>2],a[b+4>>2]=u,l=e+44|0,u=a[l+4>>2],b=t+72|0,a[b>>2]=a[l>>2],a[b+4>>2]=u,l=e+60|0,u=a[l+4>>2],b=t+88|0,a[b>>2]=a[l>>2],a[b+4>>2]=u,b=a[e+8>>2],a[t+32>>2]=a[e+4>>2],a[t+36>>2]=b,b=e+20|0,l=a[b+4>>2],a[t+48>>2]=a[b>>2],a[t+52>>2]=l,b=e+36|0,l=a[b+4>>2],a[t+64>>2]=a[b>>2],a[t+68>>2]=l,b=e+52|0,l=a[b+4>>2],a[t+80>>2]=a[b>>2],a[t+84>>2]=l,b=a[e+192>>2],Qt[a[a[b>>2]+8>>2]](b,t+32|0,t+16|0,t),b=a[A+68>>2],n=e,c=0|Qt[a[a[b>>2]+8>>2]](b,t+16|0,t,a[a[e+192>>2]+4>>2],e,r,i,a[A+24>>2]),a[n+188>>2]=c,Y=t+96|0}function vf(A,e){var r,i=_(0),t=_(0),n=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=0;r=Y+-64|0,Y=r,s=a[e+192>>2],Qt[a[a[s>>2]+8>>2]](s,e+4|0,r+48|0,r+32|0),i=C[744],n=_(C[r+48>>2]-i),C[r+48>>2]=n,c=_(C[r+52>>2]-i),C[r+52>>2]=c,b=_(C[r+56>>2]-i),C[r+56>>2]=b,t=_(i+C[r+32>>2]),C[r+32>>2]=t,l=_(i+C[r+36>>2]),C[r+36>>2]=l,u=_(i+C[r+40>>2]),C[r+40>>2]=u,3&o[e+204|0]|!o[A+44|0]|2!=a[e+252>>2]||(s=a[e+192>>2],Qt[a[a[s>>2]+8>>2]](s,e+68|0,r+16|0,r),c=_(C[r+16>>2]-i),C[r+16>>2]=c,b=_(C[r+20>>2]-i),C[r+20>>2]=b,t=_(C[r+24>>2]-i),C[r+24>>2]=t,l=_(i+C[r>>2]),C[r>>2]=l,u=_(i+C[r+4>>2]),C[r+4>>2]=u,i=_(i+C[r+8>>2]),C[r+8>>2]=i,n=C[r+48>>2],c<n&&(C[r+48>>2]=c,n=c),c=C[r+52>>2],b<c&&(C[r+52>>2]=b,c=b),b=C[r+56>>2],t<b&&(C[r+56>>2]=t,b=t),t=C[r+28>>2],t<C[r+60>>2]&&(C[r+60>>2]=t),t=C[r+32>>2],t<l&&(C[r+32>>2]=l,t=l),l=C[r+36>>2],l<u&&(C[r+36>>2]=u,l=u),u=C[r+40>>2],u<i&&(C[r+40>>2]=i,u=i),i=C[r+12>>2],C[r+44>>2]<i&&(C[r+44>>2]=i)),s=a[A+68>>2],1&f[e+204|0]||(n=_(t-n),t=_(n*n),n=_(l-c),t=_(t+_(n*n)),n=_(u-b),_(t+_(n*n))<_(999999995904))?Qt[a[a[s>>2]+16>>2]](s,a[e+188>>2],r+48|0,r+32|0,a[A+24>>2]):(Ye(e,5),o[2804]||(e=a[A+72>>2],e&&(f[2804]=1,Qt[a[a[e>>2]+44>>2]](e,20644),e=a[A+72>>2],Qt[a[a[e>>2]+44>>2]](e,20693),e=a[A+72>>2],Qt[a[a[e>>2]+44>>2]](e,20761),A=a[A+72>>2],Qt[a[a[A>>2]+44>>2]](A,20826)))),Y=r- -64|0}function df(A,e){A|=0,e|=0;var r=0,i=0,f=0,t=0,n=0,o=0,c=0,b=0;i=a[e+188>>2],i&&(r=a[A+68>>2],r=0|Qt[a[a[r>>2]+36>>2]](r),Qt[a[a[r>>2]+40>>2]](r,i,a[A+24>>2]),r=a[A+68>>2],Qt[a[a[r>>2]+12>>2]](r,i,a[A+24>>2]),a[e+188>>2]=0),r=a[e+216>>2],i=a[A+8>>2];A:if((0|r)<0|(0|r)>=(0|i)){if(!((0|i)<1)){for(f=a[A+16>>2],r=f;;){if((0|e)!=a[r>>2]){if(r=r+4|0,t=t+1|0,(0|i)!=(0|t))continue;break A}break}(0|i)<=(0|t)||(n=r,i=i+-1|0,r=i<<2,a[n>>2]=a[r+f>>2],a[A+8>>2]=i,a[r+a[A+16>>2]>>2]=e)}}else{if(t=A+16|0,f=a[t>>2],o=r<<2,c=f+o|0,b=a[c>>2],n=f,i=i+-1|0,f=i<<2,a[c>>2]=a[n+f>>2],a[A+8>>2]=i,a[f+a[t>>2]>>2]=b,(0|r)>=(0|i))break A;a[a[a[A+16>>2]+o>>2]+216>>2]=r}a[e+216>>2]=-1}function Cf(A,e,r,i){var t,n=0,o=_(0),c=_(0),b=_(0),l=_(0),u=0,s=_(0),k=0,v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=0,Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=0,J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),T=0,j=0,O=0;t=Y-704|0,Y=t,DA(t+624|0),n=t+652|0,a[n>>2]=0,a[n+4>>2]=0,n=t+660|0,a[n>>2]=0,a[n+4>>2]=0,n=t+668|0,a[n>>2]=0,a[n+4>>2]=0,a[t+676>>2]=0,a[t+648>>2]=1065353216,a[t+640>>2]=1065353216,a[t+644>>2]=1065353216,a[t+628>>2]=8,a[t+624>>2]=9852,n=a[r+12>>2];A:if(u=a[r+4>>2],R=a[u+4>>2],(0|R)<=19)a[t+616>>2]=0,a[t+620>>2]=0,a[t+448>>2]=15992,a[t+612>>2]=a[i+4>>2],f[t+420|0]=0,a[t+396>>2]=953267991,R=$r(t+680|0,t+624|0,u,t+88|0),T=Hr(t+72|0,t+624|0,u,t+88|0),j=R,O=8&a[i+20>>2],u=O?T:j,Qt[a[a[u>>2]+8>>2]](u,A,e,n,n,t+448|0)&&(o=C[t+580>>2],b=C[t+584>>2],c=C[t+588>>2],l=_(_(_(o*o)+_(b*b))+_(c*c)),l>_(9999999747378752e-20)&&(s=C[t+612>>2],s<C[i+4>>2]&&(d=c,c=_(_(1)/_(y(l))),C[t+588>>2]=d*c,C[t+584>>2]=b*c,C[t+580>>2]=o*c,A=t+580|0,e=A+8|0,n=a[e+4>>2],u=t+56|0,a[u>>2]=a[e>>2],a[u+4>>2]=n,C[t+64>>2]=s,e=a[A+4>>2],a[t+48>>2]=a[A>>2],a[t+52>>2]=e,a[t+44>>2]=0,a[t+40>>2]=a[r+8>>2],_(Qt[a[a[i>>2]+12>>2]](i,t+40|0,1)))));else if(R+-21>>>0<=8){if(g=C[n+20>>2],B=C[n+36>>2],s=C[n+24>>2],b=C[n+52>>2],d=C[n+40>>2],R=n+56|0,p=C[R>>2],m=C[n+32>>2],Q=C[n>>2],h=C[n+16>>2],G=C[n+4>>2],l=C[n+48>>2],F=C[n+8>>2],a[t+460>>2]=0,D=_(-b),w=_(s*D),E=_(-p),V=_(d*E),v=_(_(w-_(F*l))+V),o=C[A+48>>2],c=C[A+52>>2],N=_(s*c),W=C[A+56>>2],J=_(d*W),C[t+456>>2]=v+_(_(_(F*o)+N)+J),l=_(-l),x=_(B*E),Z=_(_(_(G*l)-_(g*b))+x),M=_(B*W),C[t+452>>2]=Z+_(_(_(G*o)+_(g*c))+M),p=_(_(_(Q*l)-_(h*b))-_(m*p)),C[t+448>>2]=p+_(_(_(Q*o)+_(h*c))+_(m*W)),a[t+52>>2]=0,U=v,b=C[e+48>>2],S=_(F*b),v=s,s=C[e+52>>2],F=_(v*s),v=d,d=C[e+56>>2],v=_(v*d),C[t+48>>2]=U+_(_(S+F)+v),U=Z,Z=_(B*d),C[t+44>>2]=U+_(_(_(G*b)+_(g*s))+Z),C[t+40>>2]=p+_(_(_(Q*b)+_(h*s))+_(m*d)),A=n+32|0,e=n+16|0,21==a[u+4>>2]){r=a[r+8>>2],lf(t+88|0,t+448|0,t+40|0,a[i+20>>2]),a[t+140>>2]=u,a[t+136>>2]=r,a[t+132>>2]=i,a[t+88>>2]=21004,r=n+8|0,k=a[r+4>>2],I=t+152|0,a[I>>2]=a[r>>2],a[I+4>>2]=k,r=a[n+4>>2],a[t+144>>2]=a[n>>2],a[t+148>>2]=r,r=e+8|0,k=a[r+4>>2],I=t+168|0,a[I>>2]=a[r>>2],a[I+4>>2]=k,r=a[e+4>>2],k=t+160|0,a[k>>2]=a[e>>2],a[k+4>>2]=r,e=A+8|0,r=a[e+4>>2],k=t+184|0,a[k>>2]=a[e>>2],a[k+4>>2]=r,e=a[A+4>>2],r=t+176|0,a[r>>2]=a[A>>2],a[r+4>>2]=e,A=a[R+4>>2],e=t+200|0,a[e>>2]=a[R>>2],a[e+4>>2]=A,A=a[n+52>>2],e=t+192|0,a[e>>2]=a[n+48>>2],a[e+4>>2]=A,a[t+128>>2]=a[i+4>>2],Te(u,t+88|0,t+448|0,t+40|0);break A}g=C[n+32>>2],B=C[n>>2],m=C[n+16>>2],Q=C[n+4>>2],h=C[n+20>>2],G=C[n+8>>2],a[t+692>>2]=0,p=_(_(_(G*l)+w)+V),C[t+688>>2]=_(_(_(o*G)+N)+J)+p,w=_(_(_(Q*l)+_(h*D))+x),C[t+684>>2]=_(_(_(o*Q)+_(c*h))+M)+w,c=_(_(_(o*B)+_(c*m))+_(W*g)),o=_(_(_(B*l)+_(m*D))+_(g*E)),C[t+680>>2]=c+o,a[t+84>>2]=0,C[t+80>>2]=_(_(_(b*G)+F)+v)+p,C[t+76>>2]=_(_(_(b*Q)+_(s*h))+Z)+w,C[t+72>>2]=_(_(_(b*B)+_(s*m))+_(d*g))+o,r=a[r+8>>2],lf(t+88|0,t+680|0,t+72|0,a[i+20>>2]),a[t+140>>2]=u,a[t+136>>2]=r,a[t+132>>2]=i,a[t+88>>2]=21188,r=a[n+12>>2],k=t+152|0,a[k>>2]=a[n+8>>2],a[k+4>>2]=r,r=a[n+4>>2],a[t+144>>2]=a[n>>2],a[t+148>>2]=r,r=a[e+4>>2],k=t+160|0,a[k>>2]=a[e>>2],a[k+4>>2]=r,e=e+8|0,r=a[e+4>>2],k=t+168|0,a[k>>2]=a[e>>2],a[k+4>>2]=r,e=A+8|0,r=a[e+4>>2],k=t+184|0,a[k>>2]=a[e>>2],a[k+4>>2]=r,e=a[A+4>>2],r=t+176|0,a[r>>2]=a[A>>2],a[r+4>>2]=e,A=a[n+52>>2],e=t+192|0,a[e>>2]=a[n+48>>2],a[e+4>>2]=A,A=a[R+4>>2],e=t+200|0,a[e>>2]=a[R>>2],a[e+4>>2]=A,a[t+128>>2]=a[i+4>>2],A=a[t+692>>2],e=t+32|0,a[e>>2]=a[t+688>>2],a[e+4>>2]=A,A=a[t+684>>2],a[t+24>>2]=a[t+680>>2],a[t+28>>2]=A,o=C[t+72>>2],o<C[t+24>>2]&&(C[t+24>>2]=o),b=C[t+76>>2],b<C[t+28>>2]&&(C[t+28>>2]=b),c=C[t+80>>2],c<C[t+32>>2]&&(C[t+32>>2]=c),l=C[t+84>>2],l<C[t+36>>2]&&(C[t+36>>2]=l),A=t+688|0,e=a[A+4>>2],r=t+16|0,a[r>>2]=a[A>>2],a[r+4>>2]=e,A=a[t+684>>2],a[t+8>>2]=a[t+680>>2],a[t+12>>2]=A,C[t+8>>2]<o&&(C[t+8>>2]=o),C[t+12>>2]<b&&(C[t+12>>2]=b),C[t+16>>2]<c&&(C[t+16>>2]=c),C[t+20>>2]<l&&(C[t+20>>2]=l),Qt[a[a[u>>2]+64>>2]](u,t+88|0,t+24|0,t+8|0)}else if(31==(0|R))if(R=a[u+68>>2],a[t+64>>2]=i,a[t+60>>2]=e,a[t+56>>2]=A,a[t+52>>2]=n,a[t+48>>2]=u,a[t+40>>2]=21376,a[t+44>>2]=a[r+8>>2],R)l=C[n>>2],s=C[n+4>>2],o=C[n+8>>2],a[t+100>>2]=0,v=o,g=C[n+48>>2],o=_(C[A+48>>2]-g),B=C[n+52>>2],b=_(C[A+52>>2]-B),d=C[n+24>>2],m=C[n+56>>2],c=_(C[A+56>>2]-m),Q=C[n+40>>2],C[t+96>>2]=_(_(v*o)+_(b*d))+_(c*Q),v=_(o*s),s=C[n+20>>2],h=C[n+36>>2],C[t+92>>2]=_(v+_(b*s))+_(c*h),o=_(o*l),l=C[n+16>>2],G=C[n+32>>2],C[t+88>>2]=_(o+_(b*l))+_(c*G),F=C[n>>2],W=C[n+4>>2],o=C[n+8>>2],a[t+460>>2]=0,v=o,o=_(C[e+48>>2]-g),b=_(C[e+52>>2]-B),c=_(C[e+56>>2]-m),C[t+456>>2]=_(_(v*o)+_(d*b))+_(Q*c),C[t+452>>2]=_(_(o*W)+_(b*s))+_(c*h),C[t+448>>2]=_(_(o*F)+_(b*l))+_(c*G),function(A,e,r,i){var f=0,t=_(0),n=_(0),o=_(0),c=_(0),b=0,l=_(0),u=_(0),s=0,k=0,v=0,d=0,g=0,B=_(0),m=_(0),R=0,Q=0,h=_(0),G=0,p=0,F=_(0),W=0,w=0,D=0,E=0,Z=0,V=0,N=0;if(f=Y-544|0,Y=f,A){for(t=C[e+8>>2],c=C[r+8>>2],l=C[e>>2],n=C[r>>2],u=C[e+4>>2],o=C[r+4>>2],a[f+32>>2]=A,n=_(n-l),o=_(o-u),t=_(c-t),c=_(_(1)/_(y(_(_(_(n*n)+_(o*o))+_(t*t))))),B=t,t=_(t*c),m=n,n=_(n*c),h=o,o=_(o*c),h=_(_(B*t)+_(_(m*n)+_(h*o))),t=t==_(0)?_(0xde0b6b000000000):_(_(1)/t),A=t<_(0),W=(A<<4)+f|8,o=o==_(0)?_(0xde0b6b000000000):_(_(1)/o),r=o<_(0),w=(r<<4)+f|4,D=((1^A)<<4)+f|8,E=((1^r)<<4)+f|4,n=n==_(0)?_(0xde0b6b000000000):_(_(1)/n),A=n<_(0),Z=(A<<4)+f|0,V=((1^A)<<4)+f|0,G=f+16|0,g=126,s=128,d=f+32|0,k=128,Q=1;;){A=Q+-1|0,p=A<<2,v=a[p+d>>2],r=a[v+20>>2],a[G>>2]=a[v+16>>2],a[G+4>>2]=r,b=v+24|0,N=a[b+4>>2],r=G+8|0,a[r>>2]=a[b>>2],a[r+4>>2]=N,r=a[v+4>>2],a[f>>2]=a[v>>2],a[f+4>>2]=r,r=v+8|0,b=a[r+4>>2],a[f+8>>2]=a[r>>2],a[f+12>>2]=b;e:{r:{i:{f:{t:{n:{a:{o:{if(c=_(o*_(C[w>>2]-u)),B=_(n*_(C[V>>2]-l)),!(c>B||(l=_(n*_(C[Z>>2]-l)),u=_(o*_(C[E>>2]-u)),l>u||(F=C[e+8>>2],m=_(t*_(C[W>>2]-F)),u=u<B?u:B,m>u||(l=c>l?c:l,c=_(t*_(C[D>>2]-F)),l>c|(m>l?m:l)<h^1|(c<u?c:u)>_(0)^1))))){if(a[v+40>>2]){if((0|A)<=(0|g)){r=d,b=k;break r}if(b=k<<1,(0|k)>=(0|b)){r=d;break i}if((0|s)>=(0|b)){r=d;break f}if(!k){r=0;break o}if(r=dA(k<<3),(0|k)<1)break o;for(A=r,g=d,s=k;a[A>>2]=a[g>>2],A=A+4|0,g=g+4|0,s=s+-1|0,s;);if(!R)break n;break a}Qt[a[a[i>>2]+12>>2]](i,v)}r=d,b=k;break e}if(A=R,R=1,s=R,!A)break t;if(s=b,!d)break f}CA(d)}s=1}R=s,s=b}A=k<<2,X(A+r|0,0,A)}g=b+-2|0}a[r+p>>2]=a[v+36>>2],a[(Q<<2)+r>>2]=a[v+40>>2],A=Q+1|0}if(!A)break;u=C[e+4>>2],l=C[e>>2],d=r,k=b,Q=A}!R|!r||CA(r)}Y=f+544|0}(a[R>>2],t+88|0,t+448|0,t+40|0);else if(A=a[u+20>>2],!((0|A)<1))for(e=A+-1|0,i=64,r=0;;){if(A=a[u+28>>2]+i|0,u=a[A>>2],J=C[n+52>>2],x=C[n+56>>2],Q=C[A+-16>>2],h=C[A+-12>>2],G=C[A+-8>>2],o=C[n+20>>2],b=C[n+24>>2],F=C[A+-64>>2],W=C[A+-48>>2],p=C[A+-32>>2],D=C[A+-60>>2],E=C[A+-44>>2],w=C[A+-28>>2],V=C[A+-56>>2],c=C[n+36>>2],v=C[A+-40>>2],l=C[n+40>>2],N=C[A+-24>>2],Z=C[n+48>>2],s=C[n+8>>2],g=C[n>>2],B=C[n+4>>2],d=C[n+16>>2],m=C[n+32>>2],a[t+148>>2]=0,a[t+132>>2]=0,a[t+116>>2]=0,a[t+100>>2]=0,C[t+128>>2]=_(_(V*m)+_(v*c))+_(N*l),C[t+124>>2]=_(_(D*m)+_(E*c))+_(w*l),C[t+120>>2]=_(_(F*m)+_(W*c))+_(p*l),C[t+112>>2]=_(_(V*d)+_(v*o))+_(N*b),C[t+108>>2]=_(_(D*d)+_(E*o))+_(w*b),C[t+104>>2]=_(_(F*d)+_(W*o))+_(p*b),C[t+96>>2]=_(_(g*V)+_(B*v))+_(s*N),C[t+92>>2]=_(_(g*D)+_(B*E))+_(s*w),C[t+88>>2]=_(_(F*g)+_(W*B))+_(p*s),C[t+144>>2]=x+_(_(_(m*Q)+_(c*h))+_(l*G)),C[t+140>>2]=J+_(_(_(d*Q)+_(o*h))+_(b*G)),C[t+136>>2]=Z+_(_(_(g*Q)+_(B*h))+_(s*G)),a[t+700>>2]=r,a[t+696>>2]=-1,a[t+688>>2]=a[t+44>>2],a[t+684>>2]=u,a[t+680>>2]=0,a[t+692>>2]=t+88,a[t+452>>2]=1065353216,a[t+464>>2]=-1,a[t+468>>2]=0,a[t+456>>2]=0,a[t+460>>2]=1,a[t+476>>2]=r,a[t+448>>2]=21552,A=a[t+64>>2],a[t+472>>2]=A,a[t+452>>2]=a[A+4>>2],a[t+468>>2]=a[A+20>>2],Cf(a[t+56>>2],a[t+60>>2],t+680|0,t+448|0),(0|e)==(0|r))break A;r=r+1|0,i=i+80|0,n=a[t+52>>2],u=a[t+48>>2]}Y=t+704|0}function gf(A,e,r,i,f,t,n,o){var c;c=Y-32|0,Y=c,a[c+24>>2]=-1,a[c+28>>2]=-1,a[c+20>>2]=t,a[c+16>>2]=i,a[c+12>>2]=f,a[c+8>>2]=0,Bf(A,e,r,c+8|0,n,o),Y=c+32|0}function Bf(A,e,r,i,t,n){var o,c,b=0,l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=0,Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=0,M=_(0),S=_(0),X=0,T=0,j=0,O=0,H=0,z=0,P=0,K=0,L=0,q=0,$=0,AA=0,eA=0,rA=_(0);o=Y-688|0,Y=o,b=a[i+12>>2],c=a[i+4>>2],E=a[c+4>>2];A:if((0|E)<=19)C[o+660>>2]=n,a[o+656>>2]=0,a[o+488>>2]=15992,a[o+652>>2]=a[t+4>>2],f[o+460|0]=0,a[o+436>>2]=953267991,a[o+64>>2]=14800,A=of(o+664|0,A,c,o+128|0,o- -64|0),Qt[a[a[A>>2]+8>>2]](A,e,r,b,b,o+488|0)&&(n=C[o+620>>2],l=C[o+624>>2],u=C[o+628>>2],s=_(_(_(n*n)+_(l*l))+_(u*u)),s>_(9999999747378752e-20)&&(k=C[o+652>>2],k<C[t+4>>2]&&(v=u,u=_(_(1)/_(y(s))),C[o+628>>2]=v*u,C[o+624>>2]=l*u,C[o+620>>2]=n*u,A=o+644|0,e=a[A+4>>2],r=o+112|0,a[r>>2]=a[A>>2],a[r+4>>2]=e,A=o+620|0,e=A+8|0,r=a[e+4>>2],b=o+96|0,a[b>>2]=a[e>>2],a[b+4>>2]=r,e=a[o+640>>2],a[o+104>>2]=a[o+636>>2],a[o+108>>2]=e,C[o+120>>2]=k,e=a[A+4>>2],a[o+88>>2]=a[A>>2],a[o+92>>2]=e,a[o+84>>2]=0,a[o+80>>2]=a[i+8>>2],_(Qt[a[a[t>>2]+12>>2]](t,o+80|0,1)))));else if(U=E+-21|0,U>>>0<=8){e:if(!(U>>>0>7)){switch(U-1|0){default:l=C[b+20>>2],u=C[b+36>>2],g=C[b+52>>2],s=C[b+24>>2],B=C[b+56>>2],k=C[b+40>>2],d=C[b+32>>2],R=C[b>>2],Q=C[b+16>>2],m=C[b+4>>2],v=C[b+8>>2],h=C[b+48>>2],a[o+92>>2]=0,h=_(-h),W=_(_(_(v*h)-_(s*g))-_(k*B)),p=C[e+48>>2],G=C[e+52>>2],F=C[e+56>>2],C[o+88>>2]=W+_(_(_(v*p)+_(s*G))+_(k*F)),w=_(_(_(m*h)-_(l*g))-_(u*B)),C[o+84>>2]=w+_(_(_(m*p)+_(l*G))+_(u*F)),Z=_(_(_(R*h)-_(Q*g))-_(d*B)),C[o+80>>2]=Z+_(_(_(R*p)+_(Q*G))+_(d*F)),a[o+676>>2]=0,g=C[r+48>>2],B=C[r+52>>2],h=C[r+56>>2],C[o+672>>2]=W+_(_(_(v*g)+_(s*B))+_(k*h)),C[o+668>>2]=w+_(_(_(m*g)+_(l*B))+_(u*h)),C[o+664>>2]=Z+_(_(_(R*g)+_(Q*B))+_(d*h)),a[o+516>>2]=0,g=C[r+8>>2],B=C[r+24>>2],h=C[r+40>>2],C[o+528>>2]=_(_(v*g)+_(s*B))+_(k*h),p=C[r+4>>2],G=C[r+20>>2],F=C[r+36>>2],C[o+524>>2]=_(_(v*p)+_(s*G))+_(k*F),C[o+512>>2]=_(_(m*g)+_(l*B))+_(u*h),C[o+508>>2]=_(_(m*p)+_(l*G))+_(u*F),a[o+500>>2]=0,Z=v,v=C[r>>2],D=s,s=C[r+16>>2],V=k,k=C[r+32>>2],C[o+520>>2]=_(_(Z*v)+_(D*s))+_(V*k),C[o+504>>2]=_(_(m*v)+_(l*s))+_(u*k),C[o+496>>2]=_(_(R*g)+_(Q*B))+_(d*h),C[o+492>>2]=_(_(R*p)+_(Q*G))+_(d*F),C[o+488>>2]=_(_(R*v)+_(Q*s))+_(d*k),a[o+548>>2]=0,E=o+540|0,a[E>>2]=0,a[E+4>>2]=0,E=o+532|0,a[E>>2]=0,a[E+4>>2]=0,i=a[i+8>>2],uf(o+128|0,A,e,r,b,_(Qt[a[a[c>>2]+48>>2]](c))),a[o+348>>2]=c,a[o+344>>2]=i,a[o+128>>2]=21724,C[o+336>>2]=n,a[o+340>>2]=t,a[o+328>>2]=a[t+4>>2],Qt[a[a[A>>2]+8>>2]](A,o+488|0,o- -64|0,o+48|0),je(c,o+128|0,o+80|0,o+664|0,o- -64|0,o+48|0);break A;case 0:case 1:case 2:case 3:case 4:case 5:break e;case 6:}C[o+300>>2]=n,a[o+296>>2]=0,a[o+128>>2]=15992,a[o+292>>2]=a[t+4>>2],A=function(A,e,r){return a[A+20>>2]=r,a[A+16>>2]=0,a[A+12>>2]=e,a[A+4>>2]=0,a[A+8>>2]=0,a[A>>2]=20396,A}(o+80|0,A,c),Qt[a[a[A>>2]+8>>2]](A,e,r,b,b,o+128|0)&&(n=C[o+260>>2],l=C[o+264>>2],u=C[o+268>>2],s=_(_(_(n*n)+_(l*l))+_(u*u)),s>_(9999999747378752e-20)&&(k=C[o+292>>2],k<C[t+4>>2]&&(v=u,u=_(_(1)/_(y(s))),C[o+268>>2]=v*u,C[o+264>>2]=l*u,C[o+260>>2]=n*u,A=o+284|0,e=a[A+4>>2],r=o+520|0,a[r>>2]=a[A>>2],a[r+4>>2]=e,A=o+260|0,e=A+8|0,r=a[e+4>>2],b=o+504|0,a[b>>2]=a[e>>2],a[b+4>>2]=r,e=a[o+280>>2],a[o+512>>2]=a[o+276>>2],a[o+516>>2]=e,C[o+528>>2]=k,e=a[A+4>>2],a[o+496>>2]=a[A>>2],a[o+500>>2]=e,a[o+492>>2]=0,a[o+488>>2]=a[i+8>>2],_(Qt[a[a[t>>2]+12>>2]](t,o+488|0,1)))));break A}h=C[r+52>>2],p=C[r+56>>2],u=C[b+52>>2],G=C[b+56>>2],F=C[e+52>>2],W=C[e+56>>2],k=C[b+20>>2],d=C[b+36>>2],m=C[b+24>>2],v=C[b+40>>2],w=C[r+48>>2],rA=C[b+48>>2],Z=C[e+48>>2],s=C[b+32>>2],R=C[b>>2],Q=C[b+16>>2],g=C[b+4>>2],B=C[b+8>>2],a[o+516>>2]=0,l=C[r+8>>2],D=C[r+24>>2],V=C[r+40>>2],C[o+528>>2]=_(_(B*l)+_(m*D))+_(v*V),I=C[r+4>>2],J=C[r+20>>2],x=C[r+36>>2],C[o+524>>2]=_(_(B*I)+_(m*J))+_(v*x),C[o+512>>2]=_(_(g*l)+_(k*D))+_(d*V),C[o+508>>2]=_(_(g*I)+_(k*J))+_(d*x),a[o+500>>2]=0,N=C[r>>2],M=C[r+16>>2],S=C[r+32>>2],C[o+520>>2]=_(_(B*N)+_(m*M))+_(v*S),C[o+504>>2]=_(_(g*N)+_(k*M))+_(d*S),C[o+496>>2]=_(_(R*l)+_(Q*D))+_(s*V),C[o+492>>2]=_(_(R*I)+_(Q*J))+_(s*x),C[o+488>>2]=_(_(R*N)+_(Q*M))+_(s*S),a[o+548>>2]=0,E=o+540|0,a[E>>2]=0,a[E+4>>2]=0,E=o+532|0,a[E>>2]=0,a[E+4>>2]=0,i=a[i+8>>2],uf(o+128|0,A,e,r,b,_(Qt[a[a[c>>2]+48>>2]](c))),a[o+348>>2]=c,a[o+344>>2]=i,a[o+128>>2]=21936,C[o+336>>2]=n,a[o+340>>2]=t,a[o+328>>2]=a[t+4>>2],Qt[a[a[A>>2]+8>>2]](A,o+488|0,o+80|0,o+664|0),a[o+76>>2]=0,D=_(-rA),V=_(_(_(B*D)-_(m*u))-_(v*G)),n=_(V+_(_(_(B*Z)+_(m*F))+_(v*W))),C[o+72>>2]=n,I=_(_(_(g*D)-_(k*u))-_(d*G)),l=_(I+_(_(_(g*Z)+_(k*F))+_(d*W))),C[o+68>>2]=l,G=_(_(_(R*D)-_(Q*u))-_(s*G)),u=_(G+_(_(_(R*Z)+_(Q*F))+_(s*W))),C[o+64>>2]=u,s=_(G+_(_(_(R*w)+_(Q*h))+_(s*p))),R=u,s<u&&(C[o+64>>2]=s,R=s),Q=l,k=_(I+_(_(_(g*w)+_(k*h))+_(d*p))),k<l&&(C[o+68>>2]=k,Q=k),d=_(V+_(_(_(B*w)+_(m*h))+_(v*p))),m=n,d<m&&(C[o+72>>2]=d,m=d),a[o+60>>2]=0,C[o+56>>2]=n,C[o+52>>2]=l,C[o+48>>2]=u,u<s&&(C[o+48>>2]=s,u=s),l<k&&(C[o+52>>2]=k,l=k),n<d&&(C[o+56>>2]=d,n=d),C[o+64>>2]=C[o+80>>2]+R,C[o+68>>2]=C[o+84>>2]+Q,C[o+72>>2]=C[o+88>>2]+m,C[o+48>>2]=C[o+664>>2]+u,C[o+52>>2]=C[o+668>>2]+l,C[o+56>>2]=C[o+672>>2]+n,Qt[a[a[c>>2]+64>>2]](c,o+128|0,o- -64|0,o+48|0)}else if(31==(0|E)){Lr(o+40|0,20933),E=b+52|0,g=C[E>>2],U=b+56|0,B=C[U>>2],h=C[e+52>>2],p=C[e+56>>2],X=b+20|0,l=C[X>>2],T=b+36|0,u=C[T>>2],G=C[e+20>>2],F=C[e+36>>2],W=C[e+24>>2],j=b+24|0,s=C[j>>2],w=C[e+40>>2],O=b+40|0,k=C[O>>2],d=C[b+32>>2],R=C[b>>2],Q=C[b+16>>2],Z=C[e+32>>2],D=C[e>>2],V=C[e+16>>2],N=C[b+48>>2],I=C[e+48>>2],m=C[b+4>>2],J=C[e+4>>2],x=C[e+8>>2],v=C[b+8>>2],H=o+188|0,a[H>>2]=0,z=o+172|0,a[z>>2]=0,P=o+156|0,a[P>>2]=0,K=o+168|0,C[K>>2]=_(_(v*x)+_(s*W))+_(k*w),L=o+164|0,C[L>>2]=_(_(v*J)+_(s*G))+_(k*F),q=o+152|0,C[q>>2]=_(_(m*x)+_(l*W))+_(u*w),$=o+148|0,C[$>>2]=_(_(m*J)+_(l*G))+_(u*F),AA=o+184|0,N=_(-N),C[AA>>2]=_(_(_(v*N)-_(s*g))-_(k*B))+_(_(_(v*I)+_(s*h))+_(k*p)),eA=o+180|0,C[eA>>2]=_(_(_(m*N)-_(l*g))-_(u*B))+_(_(_(m*I)+_(l*h))+_(u*p)),a[o+140>>2]=0,C[o+160>>2]=_(_(v*D)+_(s*V))+_(k*Z),C[o+144>>2]=_(_(m*D)+_(l*V))+_(u*Z),C[o+136>>2]=_(_(R*x)+_(Q*W))+_(d*w),C[o+176>>2]=_(_(_(R*N)-_(Q*g))-_(d*B))+_(_(_(R*I)+_(Q*h))+_(d*p)),C[o+132>>2]=_(_(R*J)+_(Q*G))+_(d*F),C[o+128>>2]=_(_(R*D)+_(Q*V))+_(d*Z),Qt[a[a[A>>2]+8>>2]](A,o+128|0,o- -64|0,o+48|0),g=C[E>>2],B=C[U>>2],h=C[r+52>>2],p=C[r+56>>2],l=C[X>>2],u=C[T>>2],G=C[r+20>>2],F=C[r+36>>2],W=C[r+24>>2],s=C[j>>2],w=C[r+40>>2],k=C[O>>2],d=C[b+32>>2],R=C[b>>2],Q=C[b+16>>2],Z=C[r+32>>2],D=C[r>>2],V=C[r+16>>2],N=C[b+48>>2],I=C[r+48>>2],m=C[b+4>>2],J=C[r+4>>2],x=C[r+8>>2],v=C[b+8>>2],a[H>>2]=0,a[z>>2]=0,a[P>>2]=0,C[K>>2]=_(_(v*x)+_(s*W))+_(k*w),C[L>>2]=_(_(v*J)+_(s*G))+_(k*F),C[q>>2]=_(_(m*x)+_(l*W))+_(u*w),C[$>>2]=_(_(m*J)+_(l*G))+_(u*F),N=_(-N),C[AA>>2]=_(_(_(v*N)-_(s*g))-_(k*B))+_(_(_(v*I)+_(s*h))+_(k*p)),C[eA>>2]=_(_(_(m*N)-_(l*g))-_(u*B))+_(_(_(m*I)+_(l*h))+_(u*p)),a[o+140>>2]=0,C[o+160>>2]=_(_(v*D)+_(s*V))+_(k*Z),C[o+144>>2]=_(_(m*D)+_(l*V))+_(u*Z),C[o+136>>2]=_(_(R*x)+_(Q*W))+_(d*w),C[o+176>>2]=_(_(_(R*N)-_(Q*g))-_(d*B))+_(_(_(R*I)+_(Q*h))+_(d*p)),C[o+132>>2]=_(_(R*J)+_(Q*G))+_(d*F),C[o+128>>2]=_(_(R*D)+_(Q*V))+_(d*Z),Qt[a[a[A>>2]+8>>2]](A,o+128|0,o+24|0,o+8|0),l=C[o+24>>2],l<C[o+64>>2]&&(C[o+64>>2]=l),l=C[o+28>>2],l<C[o+68>>2]&&(C[o+68>>2]=l),l=C[o+32>>2],l<C[o+72>>2]&&(C[o+72>>2]=l),l=C[o+36>>2],l<C[o+76>>2]&&(C[o+76>>2]=l),l=C[o+8>>2],C[o+48>>2]<l&&(C[o+48>>2]=l),l=C[o+12>>2],C[o+52>>2]<l&&(C[o+52>>2]=l),l=C[o+16>>2],C[o+56>>2]<l&&(C[o+56>>2]=l),l=C[o+20>>2],C[o+60>>2]<l&&(C[o+60>>2]=l),a[o+520>>2]=t,a[o+516>>2]=b,C[o+508>>2]=n,a[o+504>>2]=r,a[o+500>>2]=e,a[o+496>>2]=A,a[o+492>>2]=i,a[o+488>>2]=22152,a[o+512>>2]=c,A=a[c+68>>2];e:{if(!A){if(a[c+20>>2]<1)break e;for(i=64,e=1;;){if(A=a[c+28>>2]+i|0,r=a[A>>2],n=C[A+-16>>2],l=C[A+-12>>2],u=C[A+-8>>2],s=C[A+-64>>2],k=C[A+-48>>2],d=C[A+-32>>2],R=C[A+-60>>2],Q=C[A+-44>>2],m=C[A+-28>>2],v=C[A+-56>>2],g=C[A+-40>>2],B=C[A+-24>>2],a[o+188>>2]=0,a[o+172>>2]=0,a[o+156>>2]=0,a[o+140>>2]=0,h=C[b+32>>2],p=C[b+36>>2],G=C[b+40>>2],C[o+168>>2]=_(_(v*h)+_(g*p))+_(B*G),C[o+164>>2]=_(_(R*h)+_(Q*p))+_(m*G),C[o+160>>2]=_(_(s*h)+_(k*p))+_(d*G),F=C[b+16>>2],W=C[b+20>>2],w=C[b+24>>2],C[o+152>>2]=_(_(v*F)+_(g*W))+_(B*w),C[o+148>>2]=_(_(R*F)+_(Q*W))+_(m*w),C[o+144>>2]=_(_(s*F)+_(k*W))+_(d*w),Z=v,v=C[b>>2],D=g,g=C[b+4>>2],V=B,B=C[b+8>>2],C[o+136>>2]=_(_(Z*v)+_(D*g))+_(V*B),C[o+132>>2]=_(_(R*v)+_(Q*g))+_(m*B),C[o+128>>2]=_(_(s*v)+_(k*g))+_(d*B),C[o+184>>2]=_(_(_(n*h)+_(l*p))+_(u*G))+C[b+56>>2],C[o+180>>2]=_(_(_(n*F)+_(l*W))+_(u*w))+C[b+52>>2],C[o+176>>2]=_(_(_(n*v)+_(l*g))+_(u*B))+C[b+48>>2],a[o+84>>2]=1065353216,a[o+88>>2]=1,a[o+92>>2]=-1,A=e+-1|0,a[o+100>>2]=A,t=a[o+520>>2],a[o+96>>2]=t,a[o+80>>2]=22368,a[o+84>>2]=a[t+4>>2],a[o+684>>2]=A,a[o+680>>2]=-1,a[o+668>>2]=r,A=a[o+492>>2],a[o+664>>2]=A,a[o+672>>2]=a[A+8>>2],a[o+676>>2]=o+128,Bf(a[o+496>>2],a[o+500>>2],a[o+504>>2],o+664|0,o+80|0,C[o+508>>2]),(0|e)>=a[c+20>>2])break e;i=i+80|0,e=e+1|0,b=a[o+516>>2]}}e=o+72|0,r=a[e+4>>2],i=o+136|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,e=o+56|0,r=a[e+4>>2],i=o+152|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,e=a[o+52>>2],a[o+144>>2]=a[o+48>>2],a[o+148>>2]=e,e=a[o+68>>2],a[o+128>>2]=a[o+64>>2],a[o+132>>2]=e,Wi(A,a[A>>2],o+128|0,o+488|0)}qr()}Y=o+688|0}function _f(A,e,r,i,f,t){var n,o,c=0,b=0,l=0,u=0,s=0,k=0,v=_(0),d=_(0),g=0,B=_(0),m=_(0),R=_(0),Q=_(0),h=0,G=_(0),p=0,F=_(0),W=0,w=0,D=_(0);n=Y-400|0,Y=n,Lr(n+392|0,20953),u=r+8|0,l=u,c=a[l+4>>2],g=n+336|0,a[g>>2]=a[l>>2],a[g+4>>2]=c,g=r+24|0,c=g,s=a[c+4>>2],l=n+352|0,a[l>>2]=a[c>>2],a[l+4>>2]=s,l=r+40|0,k=a[l+4>>2],c=n+368|0,a[c>>2]=a[l>>2],a[c+4>>2]=k,c=r+56|0,p=a[c+4>>2],s=n+384|0,a[s>>2]=a[c>>2],a[s+4>>2]=p,s=i+8|0,h=a[s+4>>2],k=n+272|0,a[k>>2]=a[s>>2],a[k+4>>2]=h,k=a[r+4>>2],a[n+328>>2]=a[r>>2],a[n+332>>2]=k,k=a[r+20>>2],a[n+344>>2]=a[r+16>>2],a[n+348>>2]=k,k=a[r+36>>2],a[n+360>>2]=a[r+32>>2],a[n+364>>2]=k,k=a[r+52>>2],a[n+376>>2]=a[r+48>>2],a[n+380>>2]=k,k=a[i+4>>2],a[n+264>>2]=a[i>>2],a[n+268>>2]=k,k=i+24|0,b=a[k+4>>2],p=n+288|0,a[p>>2]=a[k>>2],a[p+4>>2]=b,p=i+40|0,b=p,W=a[b+4>>2],h=n+304|0,a[h>>2]=a[b>>2],a[h+4>>2]=W,h=i+56|0,w=a[h+4>>2],b=n+320|0,a[b>>2]=a[h>>2],a[b+4>>2]=w,b=a[i+20>>2],a[n+280>>2]=a[i+16>>2],a[n+284>>2]=b,b=a[i+36>>2],a[n+296>>2]=a[i+32>>2],a[n+300>>2]=b,b=a[i+52>>2],a[n+312>>2]=a[i+48>>2],a[n+316>>2]=b,Mi(n+328|0,n+264|0,n,n+248|0),a[n+228>>2]=0,v=C[n+248>>2],C[n+224>>2]=v*C[n+8>>2],C[n+220>>2]=v*C[n+4>>2],C[n+216>>2]=v*C[n>>2],b=n+208|0,a[b>>2]=0,a[b+4>>2]=0,a[n+200>>2]=0,a[n+204>>2]=0,b=n+56|0,a[b>>2]=0,a[b+4>>2]=0,b=n+48|0,a[b>>2]=0,a[b+4>>2]=0,tt(n+328|0,n+248|0),b=n+44|0,a[b>>2]=0,W=n+28|0,a[W>>2]=0,v=C[n+248>>2],d=C[n+252>>2],B=C[n+256>>2],R=C[n+260>>2],m=_(_(2)/_(_(_(_(v*v)+_(d*d))+_(B*B))+_(R*R))),F=_(B*m),Q=_(d*F),G=_(v*m),D=_(R*G),C[n+36>>2]=Q+D,w=n+24|0,C[w>>2]=Q-D,Q=_(v*G),G=d,d=_(d*m),m=_(G*d),C[n+40>>2]=_(1)-_(Q+m),B=_(B*F),C[n+20>>2]=_(1)-_(Q+B),a[n+12>>2]=0,Q=_(v*F),G=_(R*d),C[n+32>>2]=Q-G,v=_(v*d),d=_(R*F),C[n+16>>2]=v+d,C[n+8>>2]=Q+G,C[n+4>>2]=v-d,C[n>>2]=_(1)-_(m+B),RA(e,n,n+200|0,n+216|0,n+248|0,n+232|0),o=a[u+4>>2],a[b>>2]=a[u>>2],a[b+4>>2]=o,b=a[r+20>>2],u=n+52|0,a[u>>2]=a[r+16>>2],a[u+4>>2]=b,b=a[g+4>>2],u=n+60|0,a[u>>2]=a[g>>2],a[u+4>>2]=b,g=a[r+36>>2],u=n+68|0,a[u>>2]=a[r+32>>2],a[u+4>>2]=g,g=a[l+4>>2],u=n+76|0,a[u>>2]=a[l>>2],a[u+4>>2]=g,l=a[r+52>>2],u=n+84|0,a[u>>2]=a[r+48>>2],a[u+4>>2]=l,b=a[c+4>>2],g=n+92|0,l=g,a[l>>2]=a[c>>2],a[l+4>>2]=b,c=a[s+4>>2],l=n+108|0,a[l>>2]=a[s>>2],a[l+4>>2]=c,a[n>>2]=22756,l=a[r+4>>2],a[n+36>>2]=a[r>>2],a[n+40>>2]=l,r=a[i+4>>2],a[n+100>>2]=a[i>>2],a[n+104>>2]=r,c=a[i+52>>2],r=n+148|0,a[r>>2]=a[i+48>>2],a[r+4>>2]=c,s=a[h+4>>2],l=n+156|0,c=l,a[c>>2]=a[h>>2],a[c+4>>2]=s,s=a[k+4>>2],c=n+124|0,a[c>>2]=a[k>>2],a[c+4>>2]=s,s=a[i+20>>2],c=n+116|0,a[c>>2]=a[i+16>>2],a[c+4>>2]=s,s=a[p+4>>2],c=n+140|0,a[c>>2]=a[p>>2],a[c+4>>2]=s,s=a[i+36>>2],c=n+132|0,a[c>>2]=a[i+32>>2],a[c+4>>2]=s,a[n+184>>2]=f,C[n+188>>2]=t,a[n+192>>2]=e,v=C[n+88>>2],d=C[n+152>>2],t=C[u>>2],R=C[r>>2],B=C[g>>2],m=C[l>>2],a[n+180>>2]=A,t=_(R-t),v=_(d-v),d=_(m-B),R=_(_(1)/_(y(_(_(_(t*t)+_(v*v))+_(d*d))))),B=_(d*R),F=B==_(0)?_(0xde0b6b000000000):_(_(1)/B),a[W>>2]=F<_(0),m=_(v*R),Q=m==_(0)?_(0xde0b6b000000000):_(_(1)/m),a[w>>2]=Q<_(0),C[n+12>>2]=F,C[n+8>>2]=Q,G=t,t=_(t*R),C[n+32>>2]=_(d*B)+_(_(G*t)+_(v*m)),t=t==_(0)?_(0xde0b6b000000000):_(_(1)/t),C[n+4>>2]=t,a[n+20>>2]=t<_(0),A=a[A+68>>2],Qt[a[a[A>>2]+24>>2]](A,n+376|0,n+312|0,n,n+248|0,n+232|0),qr(),Y=n+400|0}function mf(A){A|=0;var e,r=0,i=0,t=0,n=_(0),c=0,b=0,l=0,u=0,s=0,k=_(0),v=0,d=0,g=_(0),B=_(0),m=_(0),R=_(0),Q=0;if(e=Y-192|0,Y=e,Qt[a[a[A>>2]+20>>2]](A)){if(i=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[i>>2]+100>>2]](i),i=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[i>>2]+8>>2]](e+80|0,i),i=0|Qt[a[a[A>>2]+20>>2]](A),8&Qt[a[a[i>>2]+56>>2]](i)&&(i=a[A+24>>2],i&&(u=0|Qt[a[a[i>>2]+36>>2]](i),!((0|u)<1))))for(v=e+176|0,i=0;;){if(c=a[A+24>>2],c=0|Qt[a[a[c>>2]+40>>2]](c,i),l=a[c+780>>2],(0|l)>=1)for(c=c+160|0;s=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[s>>2]+40>>2]](s,c+-124|0,c+-92|0,C[c+-76>>2],a[c>>2],v),c=c+192|0,l=l+-1|0,l;);if(i=i+1|0,(0|u)==(0|i))break}if(i=0|Qt[a[a[A>>2]+20>>2]](A),!(!(3&Qt[a[a[i>>2]+56>>2]](i))|a[A+8>>2]<1))for(l=e+160|0,u=e+96|0,v=e+112|0,s=e+128|0,d=e+144|0,c=0;;){if(i=a[a[A+16>>2]+c>>2],!(32&o[i+204|0])){if(Qt[a[a[A>>2]+20>>2]](A)&&(r=0|Qt[a[a[A>>2]+20>>2]](A),1&Qt[a[a[r>>2]+56>>2]](r))){a[e+72>>2]=1053609165,a[e+76>>2]=0,a[e+64>>2]=1053609165,a[e+68>>2]=1053609165,r=a[i+220>>2]+-1|0;A:if(r>>>0<=4){switch(r-1|0){default:t=e+88|0,b=a[t+4>>2],r=e+72|0,a[r>>2]=a[t>>2],a[r+4>>2]=b,r=a[e+84>>2],a[e+64>>2]=a[e+80>>2],a[e+68>>2]=r;break A;case 0:t=u+8|0,b=a[t+4>>2],r=e+72|0,a[r>>2]=a[t>>2],a[r+4>>2]=b,r=a[u+4>>2],a[e+64>>2]=a[u>>2],a[e+68>>2]=r;break A;case 1:t=v+8|0,b=a[t+4>>2],r=e+72|0,a[r>>2]=a[t>>2],a[r+4>>2]=b,r=a[v+4>>2],a[e+64>>2]=a[v>>2],a[e+68>>2]=r;break A;case 2:t=s+8|0,b=a[t+4>>2],r=e+72|0,a[r>>2]=a[t>>2],a[r+4>>2]=b,r=a[s+4>>2],a[e+64>>2]=a[s>>2],a[e+68>>2]=r;break A;case 3:}t=d+8|0,b=a[t+4>>2],r=e+72|0,a[r>>2]=a[t>>2],a[r+4>>2]=b,r=a[d+4>>2],a[e+64>>2]=a[d>>2],a[e+68>>2]=r}else a[e+72>>2]=1050253722,a[e+76>>2]=0,a[e+64>>2]=1050253722,a[e+68>>2]=1050253722;1&f[i+205|0]&&(t=i+316|0,b=a[t+4>>2],r=e+72|0,a[r>>2]=a[t>>2],a[r+4>>2]=b,r=a[i+312>>2],a[e+64>>2]=a[i+308>>2],a[e+68>>2]=r),Qt[a[a[A>>2]+28>>2]](A,i+4|0,a[i+192>>2],e- -64|0)}r=a[A+72>>2],r&&2&Qt[a[a[r>>2]+56>>2]](r)&&(t=l+8|0,b=a[t+4>>2],r=e+40|0,a[r>>2]=a[t>>2],a[r+4>>2]=b,r=a[l+4>>2],a[e+32>>2]=a[l>>2],a[e+36>>2]=r,r=a[i+192>>2],Qt[a[a[r>>2]+8>>2]](r,i+4|0,e- -64|0,e+48|0),n=C[744],C[e+64>>2]=C[e+64>>2]-n,C[e+68>>2]=C[e+68>>2]-n,C[e+72>>2]=C[e+72>>2]-n,C[e+48>>2]=n+C[e+48>>2],C[e+52>>2]=n+C[e+52>>2],C[e+56>>2]=n+C[e+56>>2],3&o[i+204|0]|!o[A+44|0]|2!=a[i+252>>2]||(r=a[i+192>>2],Qt[a[a[r>>2]+8>>2]](r,i+68|0,e+16|0,e),k=_(C[e+16>>2]-n),C[e+16>>2]=k,g=_(C[e+20>>2]-n),C[e+20>>2]=g,B=_(C[e+24>>2]-n),C[e+24>>2]=B,m=_(n+C[e>>2]),C[e>>2]=m,R=_(n+C[e+4>>2]),C[e+4>>2]=R,n=_(n+C[e+8>>2]),C[e+8>>2]=n,k<C[e+64>>2]&&(C[e+64>>2]=k),g<C[e+68>>2]&&(C[e+68>>2]=g),B<C[e+72>>2]&&(C[e+72>>2]=B),k=C[e+28>>2],k<C[e+76>>2]&&(C[e+76>>2]=k),C[e+48>>2]<m&&(C[e+48>>2]=m),C[e+52>>2]<R&&(C[e+52>>2]=R),C[e+56>>2]<n&&(C[e+56>>2]=n),n=C[e+12>>2],C[e+60>>2]<n&&(C[e+60>>2]=n)),i=a[A+72>>2],Qt[a[a[i>>2]+60>>2]](i,e- -64|0,e+48|0,e+32|0))}if(c=c+4|0,Q=Q+1|0,!((0|Q)<a[A+8>>2]))break}}Y=e+192|0}function Rf(A,e){var r,i=0,t=0,n=0,c=0,b=0,l=0;if(r=Y-96|0,Y=r,f[r+52|0]=1,a[r+48>>2]=0,f[r+72|0]=1,i=r+40|0,a[i>>2]=0,a[i+4>>2]=0,a[r+68>>2]=0,f[r+92|0]=1,i=r+60|0,a[i>>2]=0,a[i+4>>2]=0,a[r+88>>2]=0,i=r+80|0,a[i>>2]=0,a[i+4>>2]=0,a[r+28>>2]=0,f[r+32|0]=1,a[r+20>>2]=0,a[r+24>>2]=0,i=a[A+8>>2],!((0|i)<1)){for(;;){c=a[a[a[A+16>>2]+(l<<2)>>2]+192>>2],a[r+12>>2]=c,n=c+(c<<15^-1)|0,n=B(n>>>10^n,9),n^=n>>>6,n=(n<<11^-1)+n|0,b=b+-1&(n>>>16^n);A:{e:if(!(b>>>0>=t>>>0)&&(t=a[a[r+28>>2]+(b<<2)>>2],-1!=(0|t))){for(b=a[r+48>>2],n=a[r+88>>2];;){if(a[n+(t<<3)>>2]!=(0|c)){if(t=a[b+(t<<2)>>2],-1!=(0|t))continue;break e}break}if(a[r+68>>2]+(t<<2))break A}a[r>>2]=c,Qf(r+16|0,r,r+12|0),t=a[r+12>>2],Qt[a[a[t>>2]+60>>2]](t,e),i=a[A+8>>2]}if(l=l+1|0,!((0|l)<(0|i)))break;t=a[r+20>>2],b=a[r+64>>2]}if(!((0|i)<1))for(t=0,c=0;l=a[a[A+16>>2]+t>>2],b=a[l+252>>2],1!=(0|b)&&64!=(0|b)||(Qt[a[a[l>>2]+24>>2]](l,e),i=a[A+8>>2]),t=t+4|0,c=c+1|0,(0|c)<(0|i););}A=a[r+88>>2],A&&(o[r+92|0]&&CA(A),a[r+88>>2]=0),a[r+88>>2]=0,f[r+92|0]=1,a[r+80>>2]=0,a[r+84>>2]=0,A=a[r+68>>2],A&&(o[r+72|0]&&CA(A),a[r+68>>2]=0),a[r+68>>2]=0,f[r+72|0]=1,a[r+60>>2]=0,a[r+64>>2]=0,A=a[r+48>>2],A&&(o[r+52|0]&&CA(A),a[r+48>>2]=0),a[r+48>>2]=0,f[r+52|0]=1,a[r+40>>2]=0,a[r+44>>2]=0,A=a[r+28>>2],A&&(o[r+32|0]&&CA(A),a[r+28>>2]=0),Y=r+96|0}function Qf(A,e,r){var i=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0;A:{if(i=a[e>>2],n=(i<<15^-1)+i|0,n=B(n>>>10^n,9),n^=n>>>6,n=(n<<11^-1)+n|0,t=n>>>16^n,n=a[A+48>>2],u=t&n+-1,!(u>>>0>=d[A+4>>2])&&(c=a[a[A+12>>2]+(u<<2)>>2],-1!=(0|c)))for(t=a[A+72>>2];;){if((0|i)==a[t+(c<<3)>>2])break A;if(c=a[a[A+32>>2]+(c<<2)>>2],-1==(0|c))break}if(s=a[A+44>>2],i=s,(0|i)==(0|n)&&(i=n,b=i?i<<1:1,!((0|i)>=(0|b)))){if(b?(l=dA(b<<2),i=a[A+44>>2]):i=n,(0|i)>=1)for(c=0,t=i;a[c+l>>2]=a[a[A+52>>2]+c>>2],c=c+4|0,t=t+-1|0,t;);t=a[A+52>>2],t&&(o[A+56|0]&&(CA(t),i=a[A+44>>2]),a[A+52>>2]=0),a[A+52>>2]=l,a[A+48>>2]=b,f[A+56|0]=1}if(a[A+44>>2]=i+1,a[a[A+52>>2]+(i<<2)>>2]=a[r>>2],t=a[A- -64>>2],(0|t)==a[A+68>>2]&&(r=t?t<<1:1,!((0|t)>=(0|r)))){if(r?(l=dA(r<<3),t=a[A+64>>2]):l=0,(0|t)>=1)for(c=0;b=a[A+72>>2]+c|0,k=a[b+4>>2],i=c+l|0,a[i>>2]=a[b>>2],a[i+4>>2]=k,c=c+8|0,t=t+-1|0,t;);i=a[A+72>>2],i&&(o[A+76|0]&&CA(i),a[A+72>>2]=0),a[A+72>>2]=l,a[A+68>>2]=r,f[A+76|0]=1,t=a[A+64>>2]}return i=a[e+4>>2],r=a[A+72>>2]+(t<<3)|0,a[r>>2]=a[e>>2],a[r+4>>2]=i,a[A+64>>2]=a[A+64>>2]+1,(0|n)<a[A+48>>2]&&(function(A){var e=0,r=0,i=0,t=0,n=0,c=0,b=0,l=0,u=0;if(b=a[A+4>>2],t=a[A+48>>2],!((0|b)>=(0|t))){if(a[A+8>>2]>=(0|t))e=a[A+12>>2];else{t?(e=dA(t<<2),i=a[A+4>>2]):i=b,c=a[A+12>>2];e:{if((0|i)>=1)for(n=e,r=c;a[n>>2]=a[r>>2],n=n+4|0,r=r+4|0,i=i+-1|0,i;);else if(!c)break e;o[A+16|0]&&CA(c)}a[A+12>>2]=e,f[A+16|0]=1,a[A+8>>2]=t}if(r=b<<2,l=t<<2,X(r+e|0,0,l-r|0),a[A+4>>2]=t,u=a[A+24>>2],(0|u)<(0|t)){e:if(a[A+28>>2]>=(0|t))e=a[A+32>>2];else{if(t?(e=dA(l),i=a[A+24>>2]):(e=0,i=u),c=a[A+32>>2],(0|i)>=1)for(n=e,r=c;a[n>>2]=a[r>>2],n=n+4|0,r=r+4|0,i=i+-1|0,i;);else if(!c){a[A+32>>2]=e,a[A+28>>2]=t,f[A+36|0]=1;break e}o[A+36|0]&&CA(c),a[A+32>>2]=e,f[A+36|0]=1,a[A+28>>2]=t}r=u<<2,X(r+e|0,0,l-r|0)}if(a[A+24>>2]=t,(0|t)>=1&&(X(a[A+12>>2],255,l),X(a[A+32>>2],255,l)),!((0|b)<1))for(n=a[A+32>>2],r=a[A+72>>2],c=a[A+12>>2],i=0;e=a[r>>2],e=(e<<15^-1)+e|0,e=B(e>>>10^e,9),e^=e>>>6,e=(e<<11^-1)+e|0,e=c+((a[A+48>>2]+-1&(e>>>16^e))<<2)|0,a[n>>2]=a[e>>2],a[e>>2]=i,r=r+8|0,n=n+4|0,i=i+1|0,(0|i)!=(0|b););}}(A),e=a[e>>2],e=(e<<15^-1)+e|0,e=B(e>>>10^e,9),e^=e>>>6,e=(e<<11^-1)+e|0,u=a[A+48>>2]+-1&(e>>>16^e)),e=a[A+32>>2]+(s<<2)|0,A=a[A+12>>2]+(u<<2)|0,a[e>>2]=a[A>>2],void(a[A>>2]=s)}a[a[A+52>>2]+(c<<2)>>2]=a[r>>2]}function hf(A,e,r,i,f){A|=0,e|=0,r=_(r),i|=0,f|=0;var t,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0);return t=Y-48|0,Y=t,a[t+44>>2]=f,a[t+40>>2]=i,b=C[A- -64>>2],l=C[A+60>>2],u=C[A+80>>2],s=C[A+72>>2],k=C[A+76>>2],v=C[A+96>>2],d=C[A+88>>2],g=C[A+92>>2],B=C[A+56>>2],n=C[e+8>>2],o=C[e>>2],c=C[e+4>>2],a[t+28>>2]=0,C[t+24>>2]=_(_(o*d)+_(c*g))+_(n*v),C[t+20>>2]=_(_(o*s)+_(c*k))+_(n*u),C[t+16>>2]=_(_(B*o)+_(l*c))+_(b*n),C[t+32>>2]=r,a[t+8>>2]=a[A+48>>2],a[t+12>>2]=t+40,A=a[A+44>>2],r=_(Qt[a[a[A>>2]+12>>2]](A,t+8|0,1)),Y=t+48|0,_(r)}function Gf(A,e,r,i,f,t){A|=0,e|=0,r|=0,i=_(i),f|=0,t|=0;var n,o=0,c=0;return n=Y+-64|0,Y=n,a[n+60>>2]=t,a[n+56>>2]=f,f=a[A+212>>2],C[f+4>>2]>=i&&(o=r+8|0,c=a[o+4>>2],t=n+40|0,a[t>>2]=a[o>>2],a[t+4>>2]=c,o=e+8|0,c=a[o+4>>2],t=n+24|0,a[t>>2]=a[o>>2],a[t+4>>2]=c,t=a[r+4>>2],a[n+32>>2]=a[r>>2],a[n+36>>2]=t,r=a[e+4>>2],a[n+16>>2]=a[e>>2],a[n+20>>2]=r,C[n+48>>2]=i,a[n+8>>2]=a[A+216>>2],a[n+12>>2]=n+56,i=_(Qt[a[a[f>>2]+12>>2]](f,n+8|0,1))),Y=n- -64|0,_(i)}function yf(A){var e;e=a[A+12>>2],e&&(o[A+16|0]&&CA(e),a[A+12>>2]=0),a[A+12>>2]=0,f[A+16|0]=1,a[A+4>>2]=0,a[A+8>>2]=0}function pf(A){var e,r,i=0,f=0,t=0,n=0,o=0,c=0;if(r=Y-16|0,Y=r,e=a[A+4>>2],!((0|e)<=0)){for(t=a[A+12>>2];;){if(i=n,o=(i<<3)+t|0,f=a[o>>2],(0|i)!=(0|f))for(c=o;i=(f<<3)+t|0,a[c>>2]=a[i>>2],i=a[i>>2],c=(i<<3)+t|0,f=a[c>>2],(0|i)!=(0|f););if(a[o>>2]=i,n=n+1|0,(0|e)==(0|n))break}(0|e)<2||function A(e,r,i,f){for(var t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0;;){for(s=i,b=a[e+12>>2],k=a[b+((i+f|0)/2<<3)>>2],o=i,c=f;;){for(n=((o<<3)+b|0)-8|0;o=o+1|0,n=n+8|0,a[n>>2]<(0|k););for(i=o+-1|0,t=8+(c<<3)|0;c=c+-1|0,l=t+b|0,u=t+-8|0,t=u,a[l+-8>>2]>(0|k););if(t=c+1|0,(0|i)<=(0|t)&&(v=a[n>>2],l=a[n+4>>2],t=b+u|0,i=a[t+4>>2],a[n>>2]=a[t>>2],a[n+4>>2]=i,i=a[e+12>>2]+u|0,a[i>>2]=v,a[i+4>>2]=l,t=c,i=o),!((0|i)<=(0|t)))break;b=a[e+12>>2],o=i,c=t}if((0|t)>(0|s)&&A(e,r,s,t),!((0|i)<(0|f)))break}}(A,r+8|0,0,e+-1|0)}Y=r+16|0}function Ff(A,e,r,i){var t,n,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,B=0;if(n=Y-16|0,Y=n,function(A,e,r){var i,t,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0,B=0;if(i=Y-16|0,Y=i,Lr(i+8|0,22924),n=a[A+28>>2],(0|n)<=-1)for(a[A+32>>2]<=-1&&(c=a[A+36>>2],c&&(o[A+40|0]&&CA(c),a[A+36>>2]=0),a[A+32>>2]=0,a[A+36>>2]=0,f[A+40|0]=1),u=n<<2;a[a[A+36>>2]+u>>2]=0,u=u+4|0,c=n+1|0,b=c>>>0>=n>>>0,n=c,b;);if(a[A+28>>2]=0,pf(A+4|0),t=a[A+8>>2],(0|t)>=1)for(c=0;;){for(l=a[A+16>>2],b=c,C=c<<3,s=l+C|0,n=s+8|0,k=a[s>>2];u=c,c=c+1|0,(0|c)<(0|t)&&(v=a[n>>2],n=n+8|0,(0|k)==(0|v)););A:if(v=(0|b)>(0|u),!v){for(g=b+-1|0,n=s+4|0,B=a[r+16>>2],s=1;d=a[(a[n>>2]<<2)+B>>2],a[d+208>>2]==(0|k)&&(d=a[d+220>>2],s&=4!=(0|d)&1!=(0|d)),n=n+8|0,g=g+1|0,(0|g)<(0|u););if(!(1&s)){if(v)break A;for(n=4|C;;){if(l=a[a[r+16>>2]+(a[n+l>>2]<<2)>>2],(0|k)!=a[l+208>>2]|2!=a[l+220>>2]||(Ye(l,3),a[l+224>>2]=0),(0|b)>=(0|u))break A;n=n+8|0,b=b+1|0,l=a[A+16>>2]}}if(!v)for(n=4|C;;){if(l=a[a[r+16>>2]+(a[n+l>>2]<<2)>>2],a[l+208>>2]==(0|k)&&Ye(l,2),(0|b)>=(0|u))break A;n=n+8|0,b=b+1|0,l=a[A+16>>2]}}if(!((0|c)<(0|t)))break}if(s=0|Qt[a[a[e>>2]+36>>2]](e),(0|s)>=1)for(u=0;;){k=0|Qt[a[a[e>>2]+40>>2]](e,u),r=a[k+776>>2],c=a[k+772>>2];A:{e:{r:{if(!(!c|2==a[c+220>>2])){if(b=a[c+204>>2],2&b)break r;break e}if(!r|2==a[r+220>>2])break A;if(b=a[c+204>>2],!(2&b)|2==a[c+220>>2])break e}4&b||Ve(r,0)}if(n=a[r+204>>2],!(2&n)|4&n|2==a[r+220>>2]||Ve(c,0),o[A+64|0]&&Qt[a[a[e>>2]+28>>2]](e,c,r)){if(r=a[A+28>>2],(0|r)==a[A+32>>2]&&(l=r?r<<1:1,!((0|r)>=(0|l)))){if(l?(b=dA(l<<2),r=a[A+28>>2]):b=0,(0|r)>=1)for(n=0,c=r;a[n+b>>2]=a[a[A+36>>2]+n>>2],n=n+4|0,c=c+-1|0,c;);c=a[A+36>>2],c&&(o[A+40|0]&&(CA(c),r=a[A+28>>2]),a[A+36>>2]=0),a[A+36>>2]=b,f[A+40|0]=1,a[A+32>>2]=l}a[A+28>>2]=r+1,a[a[A+36>>2]+(r<<2)>>2]=k}}if(u=u+1|0,(0|s)==(0|u))break}qr(),Y=i+16|0}(A,e,r),t=a[A+8>>2],Lr(n+8|0,22952),o[A+64|0]){if(v=a[A+28>>2],(0|v)>=2&&function A(e,r,i,f){for(var t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0;;){for(k=i,n=a[e+12>>2],s=a[n+((i+f|0)/2<<2)>>2],t=f;;){if(l=a[a[s+772>>2]+208>>2],c=(0|l)<0,c)for(b=i+-1|0,o=((i<<2)+n|0)-4|0,u=a[a[s+776>>2]+208>>2];b=b+1|0,o=o+4|0,v=a[o>>2],i=a[a[v+772>>2]+208>>2],(0|i)<=-1&&(i=a[a[v+776>>2]+208>>2]),(0|i)<(0|u););else for(b=i+-1|0,o=((i<<2)+n|0)-4|0;b=b+1|0,o=o+4|0,u=a[o>>2],i=a[a[u+772>>2]+208>>2],(0|i)<=-1&&(i=a[a[u+776>>2]+208>>2]),(0|i)<(0|l););if(c){for(i=t+1|0,t=(t<<2)+n|0,l=a[a[s+776>>2]+208>>2];c=a[t>>2],n=a[a[c+772>>2]+208>>2],(0|n)<=-1&&(n=a[a[c+776>>2]+208>>2]),t=t+-4|0,i=i+-1|0,(0|l)<(0|n););t=t+4|0}else{for(i=t+1|0,t=(t<<2)+n|0;c=a[t>>2],n=a[a[c+772>>2]+208>>2],(0|n)<=-1&&(n=a[a[c+776>>2]+208>>2]),t=t+-4|0,i=i+-1|0,(0|l)<(0|n););t=t+4|0}if((0|b)>(0|i)?(t=i,i=b):(n=a[o>>2],a[o>>2]=a[t>>2],a[a[e+12>>2]+(i<<2)>>2]=n,t=i+-1|0,i=b+1|0),!((0|i)<=(0|t)))break;n=a[e+12>>2]}if((0|t)>(0|k)&&A(e,r,k,t),!((0|i)<(0|f)))break}}(A+24|0,n,0,v+-1|0),!((0|t)<1))for(g=1;;){e=a[A+16>>2],d=a[e+(u<<3)>>2],B=1;A:if(!((0|u)>=(0|t)))for(;;){if(s=a[a[r+16>>2]+(a[4+((u<<3)+e|0)>>2]<<2)>>2],c=a[A+48>>2],(0|c)==a[A+52>>2]&&(k=c?c<<1:1,!((0|c)>=(0|k)))){if(k?(b=dA(k<<2),c=a[A+48>>2]):b=0,(0|c)>=1)for(e=0,l=c;a[e+b>>2]=a[a[A+56>>2]+e>>2],e=e+4|0,l=l+-1|0,l;);e=a[A+56>>2],e&&(o[A+60|0]&&(CA(e),c=a[A+48>>2]),a[A+56>>2]=0),a[A+56>>2]=b,f[A+60|0]=1,a[A+52>>2]=k}if(a[A+48>>2]=c+1,a[a[A+56>>2]+(c<<2)>>2]=s,e=a[s+220>>2],B&=5==(0|e)|2==(0|e),u=u+1|0,(0|t)==(0|u)){u=t;break A}if(e=a[A+16>>2],a[e+(u<<3)>>2]!=(0|d))break}if(s=0,e=0,!((0|C)>=(0|v))&&(k=a[A+36>>2],b=C<<2,c=k+b|0,e=a[c>>2],l=a[a[e+772>>2]+208>>2],(0|l)<=-1&&(l=a[a[e+776>>2]+208>>2]),e=0,(0|l)==(0|d))){for(e=4+(b+k|0)|0,b=1;s=b,g=b+C|0,!((0|g)>=(0|v)||(b=a[e>>2],l=a[a[b+772>>2]+208>>2],(0|l)<=-1&&(l=a[a[b+776>>2]+208>>2]),e=e+4|0,b=s+1|0,(0|l)!=(0|d))););e=c}if(B||Qt[a[a[i>>2]+8>>2]](i,a[A+56>>2],a[A+48>>2],e,s,d),e=a[A+48>>2],(0|e)<=-1)for(a[A+52>>2]<=-1&&(c=a[A+56>>2],c&&(o[A+60|0]&&CA(c),a[A+56>>2]=0),f[A+60|0]=1,a[A+52>>2]=0,a[A+56>>2]=0),l=e<<2;a[a[A+56>>2]+l>>2]=0,l=l+4|0,c=e+1|0,b=c>>>0>=e>>>0,e=c,b;);if(C=s?g:C,a[A+48>>2]=0,!((0|u)<(0|t)))break}}else c=0|Qt[a[a[e>>2]+44>>2]](e),A=0|Qt[a[a[e>>2]+36>>2]](e),Qt[a[a[i>>2]+8>>2]](i,a[r+16>>2],a[r+8>>2],c,A,-1);qr(),Y=n+16|0}function Wf(A){var e=0,r=0,i=0,f=0,t=0;if(s(A),i=c(0),r=i>>>23&255,255==(0|r))return A=_(A*_(6.2831854820251465)),_(A/A);if(e=i<<1,e>>>0>2173837238){if(r)e=8388607&i|8388608;else{if(r=0,e=i<<9,(0|e)>=0)for(;r=r+-1|0,e<<=1,(0|e)>-1;);e=i<<1-r}if(f=e-13176795|0,t=(0|f)>-1,(0|r)>129)for(;;){if(t&&(e=f,!e))return _(A*_(0));if(e<<=1,f=e-13176795|0,t=(0|f)>-1,r=r+-1|0,!((0|r)>129))break}if(t&&(e=f,!e))return _(A*_(0));if(e>>>0<=8388607)for(;r=r+-1|0,e<<=1,e>>>0<8388608;);return b(0,-2147483648&i|((0|r)>=1?e+-8388608|r<<23:e>>>1-r)),k()}return-2121130058==(0|e)?_(A*_(0)):A}function wf(A,e,r,i,f){var t=_(0);if(t=_(1),!(e>r)&&(t=_(0),e!=r)){if(i=_(i/f),i<_(0))return A>=e^1|_(e-i)>A^1?_(A<e?0:1):_(_(e-A)/i);if(i>_(0)){if(!(A<=r^1|_(r-i)<A^1))return _(_(r-A)/i);t=_(A>r?0:1)}}return t}function Df(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,t=0,n=0;if(t=e,n=0|Qt[a[a[r>>2]+28>>2]](r,a[A+28>>2]),a[t>>2]=n,t=e,n=0|Qt[a[a[r>>2]+28>>2]](r,a[A+32>>2]),a[t+4>>2]=n,i=0|Qt[a[a[r>>2]+40>>2]](r,A),f=0|Qt[a[a[r>>2]+28>>2]](r,i),a[e+8>>2]=f,f&&Qt[a[a[r>>2]+48>>2]](r,i),a[e+12>>2]=a[A+4>>2],a[e+24>>2]=o[A+21|0],a[e+40>>2]=a[A+24>>2],a[e+44>>2]=a[A+16>>2],a[e+48>>2]=o[A+20|0],r=a[A+12>>2],i=a[A+40>>2],a[e+28>>2]=a[A+36>>2],a[e+32>>2]=i,a[e+20>>2]=r,i=0,a[e+36>>2]=0,a[e+16>>2]=a[A+8>>2],r=a[A+28>>2],f=a[r+548>>2],(0|f)>=1)for(r=a[r+556>>2];(0|A)==a[r>>2]&&(a[e+36>>2]=1),r=r+4|0,i=i+1|0,(0|i)<(0|f););if(r=a[A+32>>2],f=a[r+548>>2],(0|f)>=1)for(r=a[r+556>>2],i=0;(0|A)==a[r>>2]&&(a[e+36>>2]=1),r=r+4|0,i=i+1|0,(0|i)<(0|f););return 23056}function Ef(A){return A|=0,a[A>>2]=23012,0|A}function Zf(A,e,r,i){var f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0);t=Cr(r),n=C[e+444>>2],r=dr(r),_(m(t))>_(1.1920928955078125e-7)?(f=_(r*r),b=_(t*t),o=_(f/b),c=C[e+448>>2],n=_(y(_(_(o+_(1))/_(_(_(1)/_(c*c))+_(o/_(n*n))))))):(f=_(r*r),b=_(t*t)),a[A+12>>2]=0,o=_(n*_(.5)),f=_(dr(o)/_(y(_(f+_(b+_(0)))))),r=_(r*f),n=_(f*_(0)),t=_(t*f),c=_(t*_(0)),l=_(r*_(-0)),b=_(_(_(-_(n*i))-c)-l),f=Cr(o),u=_(f*_(0)),s=_(n*_(0)),o=_(_(u+s)-_(t*i)),c=_(_(_(f*i)+c)-l),i=_(_(u-_(r*i))-s),C[A+8>>2]=_(_(_(r*b)+_(f*o))-_(c*t))+_(i*n),C[A+4>>2]=_(_(_(f*i)-_(b*t))-_(o*n))-_(r*c),C[A>>2]=_(_(r*i)+_(_(f*c)-_(b*n)))+_(o*t)}function Yf(A){var e=0,r=0,i=_(0),f=0;A:{e:{if(s(A),f=c(0),r=2147483647&f,r>>>0>=1065353216){if(1065353216!=(0|r))break e;return _(1.5707963267948966*+A+7.52316384526264e-37)}if(r>>>0<=1056964607){if(r+-8388608>>>0<956301312)break A;return i=_(A*A),_(_(_(_(i*_(_(i*_(_(i*_(-.008656363002955914))+_(-.04274342209100723)))+_(.16666586697101593)))/_(_(i*_(-.7066296339035034))+_(1)))*A)+A)}return A=_(_(_(1)-_(m(A)))*_(.5)),e=y(+A),e+=e*+_(_(A*_(_(A*_(_(A*_(-.008656363002955914))+_(-.04274342209100723)))+_(.16666586697101593)))/_(_(A*_(-.7066296339035034))+_(1))),A=_(1.5707963267948966-(e+e)),(0|f)<0?_(-A):A}A=_(_(0)/_(A-A))}return A}function Vf(A,e){return C[1192+((e<<2)+A|0)>>2]}function Nf(A,e,r,i){var n;!function(A,e,r){a[A>>2]=20592,f[A+76|0]=1,a[A+72>>2]=0,a[A+68>>2]=r,a[A+28>>2]=0,a[A+32>>2]=0,a[A+24>>2]=e,f[A+20|0]=1,a[A+16>>2]=0,a[A- -64>>2]=0,f[A+60|0]=0,a[A+56>>2]=1025758986,f[A+54|0]=1,t[A+52>>1]=256,a[A+48>>2]=0,f[A+44|0]=1,e=A+36|0,a[e>>2]=1,a[e+4>>2]=1065353216,A=A+8|0,a[A>>2]=0,a[A+4>>2]=0}(A,e,r),r=A+100|0,a[r>>2]=1050253722,a[r+4>>2]=1015580809,a[A+92>>2]=1058642330,a[A+96>>2]=1065353216,a[A+88>>2]=0,a[A+80>>2]=0,a[A+84>>2]=0,r=A+132|0,a[r>>2]=0,a[r+4>>2]=1045220557,r=A+124|0,a[r>>2]=1045220557,a[r+4>>2]=1045220557,r=A+108|0,a[r>>2]=0,a[r+4>>2]=10,r=A+184|0,a[r>>2]=0,a[r+4>>2]=1045220557,r=A+176|0,a[r>>2]=1120403456,a[r+4>>2]=1900671690,a[A+172>>2]=128,r=A+164|0,a[r>>2]=260,a[r+4>>2]=2,r=A+156|0,a[r>>2]=0,a[r+4>>2]=1062836634,r=A+148|0,a[r>>2]=-1121724662,a[r+4>>2]=1036831949,r=A+140|0,a[r>>2]=0,a[r+4>>2]=1,r=A+116|0,a[r>>2]=1101004800,a[r+4>>2]=1065353216,a[A>>2]=23160,f[A+208|0]=1,a[A+204>>2]=0,f[A+240|0]=1,a[A+216>>2]=i,a[A+212>>2]=0,r=A+196|0,a[r>>2]=0,a[r+4>>2]=0,a[A+236>>2]=0,r=A+228|0,a[r>>2]=0,a[r+4>>2]=0,f[A+260|0]=1,t[A+290>>1]=0,a[A+256>>2]=0,r=A+248|0,a[r>>2]=0,a[r+4>>2]=0,a[A+264>>2]=0,a[A+268>>2]=-1054867456,r=A+272|0,a[r>>2]=0,a[r+4>>2]=0,r=A+280|0,a[r>>2]=0,a[r+4>>2]=0,f[A+308|0]=1,a[A+312>>2]=0,a[A+304>>2]=0,r=A+296|0,a[r>>2]=0,a[r+4>>2]=0,f[A+336|0]=1,f[A+316|0]=1,r=A+324|0,a[r>>2]=0,a[r+4>>2]=0,a[A+332>>2]=0,a[A+340>>2]=0,n=A,i?r=0:(r=dA(236),Li(r),a[A+216>>2]=r,r=1),f[n+289|0]=r,r=dA(68),function(A){var e=0;a[A>>2]=22908,e=A+4|0,a[e+12>>2]=0,f[e+16|0]=1,a[e+4>>2]=0,a[e+8>>2]=0,a[A+36>>2]=0,f[A+40|0]=1,f[A+60|0]=1,e=A+28|0,a[e>>2]=0,a[e+4>>2]=0,a[A+56>>2]=0,f[A+64|0]=1,A=A+48|0,a[A>>2]=0,a[A+4>>2]=0}(r),f[A+288|0]=1,a[A+220>>2]=r,r=dA(88),a[r+72>>2]=0,a[r+76>>2]=0,f[r+44|0]=1,a[r+24>>2]=e,a[r+20>>2]=0,a[r+12>>2]=0,a[r+16>>2]=0,a[r+4>>2]=0,a[r>>2]=23768,a[r+40>>2]=0,f[r+64|0]=1,a[r+32>>2]=0,a[r+36>>2]=0,a[r+60>>2]=0,f[r+84|0]=1,a[r+52>>2]=0,a[r+56>>2]=0,a[r+80>>2]=0,a[r+8>>2]=a[A+216>>2],a[A+212>>2]=r}function If(A){A|=0;var e=0;return a[A>>2]=23160,o[A+288|0]&&(e=a[A+220>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+220>>2])),e=a[A+212>>2],e&&(Qt[a[a[e>>2]>>2]](e),CA(a[A+212>>2])),o[A+289|0]&&(e=a[A+216>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+216>>2])),e=a[A+332>>2],e&&(o[A+336|0]&&CA(e),a[A+332>>2]=0),a[A+332>>2]=0,a[A+324>>2]=0,a[A+328>>2]=0,f[A+336|0]=1,e=a[A+304>>2],e&&(o[A+308|0]&&CA(e),a[A+304>>2]=0),a[A+304>>2]=0,a[A+296>>2]=0,a[A+300>>2]=0,f[A+308|0]=1,e=a[A+256>>2],e&&(o[A+260|0]&&CA(e),a[A+256>>2]=0),a[A+256>>2]=0,a[A+248>>2]=0,a[A+252>>2]=0,f[A+260|0]=1,e=a[A+236>>2],e&&(o[A+240|0]&&CA(e),a[A+236>>2]=0),a[A+236>>2]=0,a[A+228>>2]=0,a[A+232>>2]=0,f[A+240|0]=1,e=a[A+204>>2],e&&(o[A+208|0]&&CA(e),a[A+204>>2]=0),a[A+204>>2]=0,a[A+196>>2]=0,a[A+200>>2]=0,f[A+208|0]=1,sf(A),0|A}function Jf(A,e){A|=0,e|=0,Qt[a[a[A>>2]+64>>2]](A,e)}function xf(A,e){A|=0,e|=0,Qt[a[a[A>>2]+68>>2]](A,e)}function Uf(A){var e,r,i,t=0,n=0,c=0,b=0,l=0;if(n=a[A+8>>2],e=n,b=a[A+32>>2],b&&(c=a[A+40>>2]),r=c,c=a[A+52>>2],c&&(t=a[A+60>>2]),i=t,t=a[A+72>>2],l=0,t&&(l=a[A+80>>2]),_(Qt[a[a[n>>2]+12>>2]](e,r,b,i,c,l,t,a[A+4>>2],a[A+20>>2],a[A+24>>2])),t=a[A+32>>2],(0|t)<=-1)for(a[A+36>>2]<=-1&&(n=a[A+40>>2],n&&(o[A+44|0]&&CA(n),a[A+40>>2]=0),a[A+36>>2]=0,a[A+40>>2]=0,f[A+44|0]=1),c=t<<2;a[a[A+40>>2]+c>>2]=0,c=c+4|0,n=t+1|0,b=n>>>0>=t>>>0,t=n,b;);if(a[A+32>>2]=0,t=a[A+52>>2],(0|t)<=-1)for(a[A+56>>2]<=-1&&(n=a[A+60>>2],n&&(o[A- -64|0]&&CA(n),a[A+60>>2]=0),a[A+56>>2]=0,a[A+60>>2]=0,f[A- -64|0]=1),c=t<<2;a[a[A+60>>2]+c>>2]=0,c=c+4|0,n=t+1|0,b=n>>>0>=t>>>0,t=n,b;);if(a[A+52>>2]=0,t=a[A+72>>2],(0|t)<=-1)for(a[A+76>>2]<=-1&&(n=a[A+80>>2],n&&(o[A+84|0]&&CA(n),a[A+80>>2]=0),a[A+76>>2]=0,a[A+80>>2]=0,f[A+84|0]=1),c=t<<2;a[a[A+80>>2]+c>>2]=0,c=c+4|0,n=t+1|0,b=n>>>0>=t>>>0,t=n,b;);a[A+72>>2]=0}function Mf(A,e){return A|=0,e|=0,a[a[A+236>>2]+(e<<2)>>2]}function Sf(A,e,r,i,f,t){var n,o=0,c=0,b=0,l=0,u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=0,R=_(0),Q=_(0);if(n=Y-272|0,Y=n,b=r+8|0,c=a[b+4>>2],o=n+216|0,a[o>>2]=a[b>>2],a[o+4>>2]=c,b=r+24|0,c=a[b+4>>2],o=n+232|0,a[o>>2]=a[b>>2],a[o+4>>2]=c,b=r+40|0,c=a[b+4>>2],o=n+248|0,a[o>>2]=a[b>>2],a[o+4>>2]=c,c=r+56|0,l=a[c+4>>2],b=n+264|0,o=b,a[o>>2]=a[c>>2],a[o+4>>2]=l,c=i+8|0,l=a[c+4>>2],o=n+152|0,a[o>>2]=a[c>>2],a[o+4>>2]=l,o=r,c=a[o+4>>2],a[n+208>>2]=a[o>>2],a[n+212>>2]=c,c=a[o+20>>2],a[n+224>>2]=a[o+16>>2],a[n+228>>2]=c,c=a[o+36>>2],a[n+240>>2]=a[o+32>>2],a[n+244>>2]=c,c=a[o+52>>2],a[n+256>>2]=a[o+48>>2],a[n+260>>2]=c,o=a[i+4>>2],a[n+144>>2]=a[i>>2],a[n+148>>2]=o,c=i+24|0,l=a[c+4>>2],o=n+168|0,a[o>>2]=a[c>>2],a[o+4>>2]=l,c=i+40|0,l=a[c+4>>2],o=n+184|0,a[o>>2]=a[c>>2],a[o+4>>2]=l,l=i+56|0,m=a[l+4>>2],o=n+200|0,a[o>>2]=a[l>>2],a[o+4>>2]=m,c=a[i+20>>2],a[n+160>>2]=a[i+16>>2],a[n+164>>2]=c,c=a[i+36>>2],a[n+176>>2]=a[i+32>>2],a[n+180>>2]=c,c=a[i+52>>2],a[n+192>>2]=a[i+48>>2],a[n+196>>2]=c,a[n+108>>2]=0,C[n+104>>2]=C[o>>2]-C[b>>2],C[n+100>>2]=C[n+196>>2]-C[n+260>>2],C[n+96>>2]=C[n+192>>2]-C[n+256>>2],Mi(n+208|0,n+144|0,n+16|0,n+128|0),a[n+92>>2]=0,u=C[n+128>>2],C[n+88>>2]=u*C[n+24>>2],C[n+84>>2]=u*C[n+20>>2],C[n+80>>2]=u*C[n+16>>2],o=n+72|0,a[o>>2]=0,a[o+4>>2]=0,o=n- -64|0,a[o>>2]=0,a[o+4>>2]=0,tt(n+208|0,n+128|0),a[n+60>>2]=0,a[n+44>>2]=0,u=C[n+128>>2],s=C[n+132>>2],v=C[n+136>>2],B=C[n+140>>2],g=_(_(2)/_(_(_(_(u*u)+_(s*s))+_(v*v))+_(B*B))),R=_(v*g),k=_(s*R),d=_(u*g),Q=_(B*d),C[n+52>>2]=k+Q,C[n+40>>2]=k-Q,k=_(u*d),d=s,s=_(s*g),g=_(d*s),C[n+56>>2]=_(1)-_(k+g),v=_(v*R),C[n+36>>2]=_(1)-_(k+v),a[n+28>>2]=0,k=_(u*R),d=_(B*s),C[n+48>>2]=k-d,u=_(u*s),s=_(B*R),C[n+32>>2]=u+s,C[n+24>>2]=k+d,C[n+20>>2]=u-s,C[n+16>>2]=_(1)-_(g+v),RA(e,n+16|0,n+96|0,n+80|0,n+128|0,n+112|0),a[A+328>>2]>=1)for(b=i+48|0,c=r+48|0,i=0,o=0;r=a[a[A+336>>2]+i>>2],Qt[a[a[f>>2]+8>>2]](f,a[r+188>>2])&&(l=a[r+192>>2],m=r+4|0,Qt[a[a[l>>2]+8>>2]](l,m,n+16|0,n+96|0),a[n+28>>2]=0,a[n+108>>2]=0,C[n+24>>2]=C[n+24>>2]+C[n+136>>2],C[n+20>>2]=C[n+20>>2]+C[n+132>>2],C[n+16>>2]=C[n+16>>2]+C[n+128>>2],C[n+96>>2]=C[n+96>>2]+C[n+112>>2],C[n+100>>2]=C[n+100>>2]+C[n+116>>2],C[n+104>>2]=C[n+104>>2]+C[n+120>>2],a[n+12>>2]=1065353216,Xf(c,b,n+16|0,n+96|0,n+12|0,n+80|0)&&gf(e,n+208|0,n+144|0,r,a[r+192>>2],m,f,t)),i=i+4|0,o=o+1|0,(0|o)<a[A+328>>2];);Y=n+272|0}function Xf(A,e,r,i,f,t){var n,o,c,b,l,u,s,k,v,d=_(0),g=_(0),B=_(0),m=_(0),R=0,Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0);if(n=Y-16|0,B=C[i>>2],d=C[r>>2],Q=_(_(B+d)*_(.5)),g=_(C[e>>2]-Q),B=_(B-d),F=_(B*_(.5)),o=g>F,B=_(B*_(-.5)),c=g<B,d=C[i+4>>2],m=C[r+4>>2],h=_(_(d+m)*_(.5)),G=_(C[e+4>>2]-h),d=_(d-m),p=_(d*_(-.5)),b=G<p,W=_(d*_(.5)),l=G>W,d=C[i+8>>2],m=C[r+8>>2],D=_(_(d+m)*_(.5)),y=_(C[e+8>>2]-D),d=_(d-m),E=_(d*_(-.5)),e=y<E,w=_(d*_(.5)),r=c|o<<3|b<<1|l<<4|e<<2|(y>w)<<5,Q=_(C[A>>2]-Q),i=Q>F,u=Q<B,m=_(C[A+4>>2]-h),s=m<p,k=m>W,h=_(C[A+8>>2]-D),A=h<E,v=i<<3|u|s<<1|k<<4|A<<2|(h>w)<<5,R=0,!(r&v)){B=C[f>>2],R=n+8|0,a[R>>2]=0,a[R+4>>2]=0,a[n>>2]=0,a[n+4>>2]=0,p=_(g-Q);A:if(u){if(g=_(_(_(-Q)-F)/p),!(g>=_(0))){g=_(0);break A}a[n+12>>2]=0,a[n+4>>2]=0,a[n+8>>2]=0,a[n>>2]=1065353216}else g=_(0),c&&(d=_(_(_(-Q)-F)/p),d<B&&(B=d));G=_(G-m);A:{e:{if(s){if(d=_(_(_(-m)-W)/G),!(g<=d))break e;R=n+8|0,a[R>>2]=0,a[R+4>>2]=0,a[n>>2]=0,a[n+4>>2]=1065353216;break A}b&&(d=_(_(_(-m)-W)/G),d<B&&(B=d))}d=g}y=_(y-h);A:{e:{if(A){if(g=_(_(_(-h)-w)/y),!(d<=g))break e;A=n+8|0,a[A>>2]=1065353216,a[A+4>>2]=0,a[n>>2]=0,a[n+4>>2]=0;break A}e&&(g=_(_(_(-h)-w)/y),g<B&&(B=g))}g=d}A:{e:{if(i){if(d=_(_(F-Q)/p),!(g<=d))break e;a[n+12>>2]=0,a[n+4>>2]=0,a[n+8>>2]=0,a[n>>2]=-1082130432;break A}o&&(d=_(_(F-Q)/p),d<B&&(B=d))}d=g}A:{e:{if(k){if(g=_(_(W-m)/G),!(d<=g))break e;A=n+8|0,a[A>>2]=0,a[A+4>>2]=0,a[n>>2]=0,a[n+4>>2]=-1082130432;break A}l&&(g=_(_(W-m)/G),g<B&&(B=g))}g=d}A:{e:{if(32&v){if(d=_(_(w-h)/y),!(g<=d))break e;A=n+8|0,a[A>>2]=-1082130432,a[A+4>>2]=0,a[n>>2]=0,a[n+4>>2]=0;break A}32&r&&(d=_(_(w-h)/y),d<B&&(B=d))}d=g}R=0,d<=B&&(C[f>>2]=d,A=a[n+4>>2],a[t>>2]=a[n>>2],a[t+4>>2]=A,e=n+8|0,r=a[e+4>>2],A=t+8|0,a[A>>2]=a[e>>2],a[A+4>>2]=r,R=1)}return R}function Tf(A,e){var r,i=0,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=0,v=0,d=_(0),g=0,B=_(0),R=0,Q=0,h=0,G=_(0),p=0,F=0,W=0,w=0,D=0,E=0,Z=0,V=0;if(r=Y-80|0,Y=r,i=A+256|0,f=C[e+12>>2],s=C[A+264>>2],c=C[e+8>>2],(C[A+268>>2]!=f|s!=c|C[A+260>>2]!=C[e+4>>2]||C[i>>2]!=C[e>>2])&&(b=C[A+260>>2],d=C[A+256>>2],t=C[e>>2],n=C[e+4>>2],o=_(_(_(t*t)+_(n*n))+_(c*c)),o>_(0)?(C[A+268>>2]=f,f=_(_(1)/_(y(o))),l=_(c*f),C[A+264>>2]=l,c=_(n*f),C[A+260>>2]=c,u=_(t*f),C[A+256>>2]=u):(a[i>>2]=0,a[i+4>>2]=0,e=i+8|0,a[e>>2]=0,a[e+4>>2]=0,c=_(0)),i=a[A+8>>2],i)){B=_(_(_(u*u)+_(c*c))+_(l*l));A:if(B!=_(0)&&(G=_(_(_(d*d)+_(b*b))+_(s*s)),G!=_(0)))if(f=_(_(1)/_(y(B))),o=_(l*f),C[A+264>>2]=o,t=_(c*f),C[A+260>>2]=t,n=_(u*f),C[A+256>>2]=n,f=_(_(1)/_(y(G))),s=_(s*f),c=_(b*f),l=_(d*f),f=_(_(s*o)+_(_(c*t)+_(l*n))),f<_(-.9999998807907104)){if(_(m(o))>_(.7071067690849304)){b=t,t=_(_(1)/_(y(_(_(t*t)+_(o*o))))),f=_(b*t),n=_(-_(o*t)),t=_(0),o=_(0);break A}f=_(_(1)/_(y(_(_(t*t)+_(n*n))))),n=_(n*f),t=_(-_(t*f)),f=_(0),o=_(0)}else f=_(f+_(1)),b=_(y(_(f+f))),u=_(_(1)/b),f=_(_(_(c*n)-_(l*t))*u),n=_(_(_(l*o)-_(s*n))*u),t=_(_(_(s*t)-_(c*o))*u),o=_(b*_(.5));k=i+12|0,g=a[k+4>>2],v=r+24|0,e=v,a[e>>2]=a[k>>2],a[e+4>>2]=g,e=i+20|0,R=a[e>>2],F=a[e+4>>2],e=i+36|0,W=a[e>>2],w=a[e+4>>2],e=i+28|0,Q=a[e>>2],e=a[e+4>>2],k=i+44|0,g=a[k>>2],D=a[k+4>>2],E=a[i+4>>2],Z=a[i+8>>2],p=i+60|0,V=a[p+4>>2],h=r+72|0,k=h,a[k>>2]=a[p>>2],a[k+4>>2]=V,k=r+56|0,a[k>>2]=g,a[k+4>>2]=D,g=r+40|0,a[g>>2]=Q,a[g+4>>2]=e,a[r+16>>2]=E,a[r+20>>2]=Z,i=i+52|0,Q=a[i+4>>2],e=r,a[e+64>>2]=a[i>>2],a[e+68>>2]=Q,a[e+48>>2]=W,a[e+52>>2]=w,a[e+32>>2]=R,a[e+36>>2]=F,tt(e+16|0,e),l=C[e>>2],u=C[e+12>>2],b=C[e+8>>2],d=C[e+4>>2],s=_(_(_(_(o*l)-_(u*t))-_(b*n))+_(d*f)),c=_(_(_(_(o*u)+_(l*t))+_(d*n))+_(b*f)),B=_(_(_(_(o*b)-_(u*f))-_(d*t))+_(l*n)),f=_(_(_(_(o*d)-_(u*n))-_(l*f))+_(b*t)),t=_(_(2)/_(_(c*c)+_(_(B*B)+_(_(s*s)+_(f*f))))),n=_(B*t),l=_(s*n),o=_(f*t),u=_(c*o),C[v>>2]=l+u,a[e+60>>2]=0,a[e+44>>2]=0,b=_(f*n),t=_(s*t),d=_(c*t),C[e+52>>2]=b+d,C[g>>2]=b-d,t=_(s*t),f=_(f*o),C[k>>2]=_(1)-_(t+f),b=t,t=_(B*n),C[e+36>>2]=_(1)-_(b+t),a[e+28>>2]=0,C[e+48>>2]=l-u,o=_(s*o),n=_(c*n),C[e+32>>2]=o+n,C[e+20>>2]=o-n,R=a[v+4>>2],A=a[A+8>>2],i=A+12|0,a[i>>2]=a[v>>2],a[i+4>>2]=R,C[e+16>>2]=_(1)-_(f+t),i=a[e+20>>2],a[A+4>>2]=a[e+16>>2],a[A+8>>2]=i,v=a[e+36>>2],i=A+20|0,a[i>>2]=a[e+32>>2],a[i+4>>2]=v,v=a[g+4>>2],i=A+28|0,a[i>>2]=a[g>>2],a[i+4>>2]=v,a[A+304>>2]=a[A+304>>2]+1,v=a[e+52>>2],i=A+36|0,a[i>>2]=a[e+48>>2],a[i+4>>2]=v,v=a[k+4>>2],i=A+44|0,a[i>>2]=a[k>>2],a[i+4>>2]=v,v=a[h+4>>2],i=A+60|0,a[i>>2]=a[h>>2],a[i+4>>2]=v,i=a[e+68>>2],A=A+52|0,a[A>>2]=a[e+64>>2],a[A+4>>2]=i}Y=r+80|0}function jf(A,e){var r,i=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=_(0),d=_(0),g=0,B=_(0),m=_(0),R=_(0),Q=0;if(r=Y-96|0,Y=r,i=a[A+12>>2],Qt[a[a[i>>2]+8>>2]](i,a[A+8>>2]+4|0,r+80|0,r- -64|0),i=a[e+68>>2],Qt[a[a[i>>2]+16>>2]](i,a[a[A+8>>2]+188>>2],r+80|0,r- -64|0,a[e+24>>2]),i=a[e+24>>2],Qt[a[a[i>>2]+32>>2]](i,a[a[A+8>>2]+344>>2],e+28|0,i),e=a[A+8>>2],i=e+52|0,t=a[i+4>>2],a[A+132>>2]=a[i>>2],a[A+136>>2]=t,t=e+60|0,c=a[t+4>>2],i=A+140|0,a[i>>2]=a[t>>2],a[i+4>>2]=c,c=A+132|0,e=a[e+344>>2],!((0|Qt[a[a[e>>2]+36>>2]](e))<1))for(k=A+200|0;;){if(e=a[A+204>>2],(0|e)<=-1)for(a[A+208>>2]<=-1&&(i=a[A+212>>2],i&&(o[A+216|0]&&CA(i),a[A+212>>2]=0),f[A+216|0]=1,a[A+208>>2]=0,a[A+212>>2]=0),t=e<<2;a[a[A+212>>2]+t>>2]=0,t=t+4|0,i=e+1|0,b=i>>>0>=e>>>0,e=i,b;);if(a[A+204>>2]=0,e=a[a[A+8>>2]+344>>2],i=a[12+(0|Qt[a[a[e>>2]+28>>2]](e))>>2]+(u<<4)|0,e=a[a[i+4>>2]>>2],t=a[a[i>>2]>>2],!((4&o[t+204|0]?t:0)|(4&o[e+204|0]?e:0))&&Qt[a[a[A>>2]+56>>2]](A,t,e)&&(e=a[i+8>>2],e&&Qt[a[a[e>>2]+16>>2]](e,k),b=a[A+204>>2],!((0|b)<1)))for(s=a[A+8>>2],n=a[A+212>>2],i=0;;){if(e=a[n+(i<<2)>>2],l=a[e+780>>2],(0|l)>=1)for(d=(0|s)==a[e+772>>2]?_(-1):_(1),e=e+84|0,B=_(-C[A+16>>2]),t=0;v=C[e>>2],v<B&&(m=C[e+-8>>2],R=C[e+-12>>2],C[A+132>>2]=_(_(v*_(d*C[e+-16>>2]))*_(.20000000298023224))+C[A+132>>2],C[A+136>>2]=_(_(v*_(d*R))*_(.20000000298023224))+C[A+136>>2],C[A+140>>2]=_(_(v*_(d*m))*_(.20000000298023224))+C[A+140>>2],Q=1),e=e+192|0,t=t+1|0,(0|t)<(0|l););if(i=i+1|0,!((0|i)<(0|b)))break}if(u=u+1|0,e=a[a[A+8>>2]+344>>2],!((0|u)<(0|Qt[a[a[e>>2]+36>>2]](e))))break}return t=c+8|0,u=a[t+4>>2],e=r+56|0,a[e>>2]=a[t>>2],a[e+4>>2]=u,A=a[A+8>>2],t=A+12|0,b=a[t+4>>2],i=r+8|0,a[i>>2]=a[t>>2],a[i+4>>2]=b,k=A+28|0,s=k,n=a[s+4>>2],u=r+24|0,b=u,a[b>>2]=a[s>>2],a[b+4>>2]=n,s=A+44|0,l=s,g=a[l+4>>2],b=r+40|0,n=b,a[n>>2]=a[l>>2],a[n+4>>2]=g,n=a[c+4>>2],c=a[c>>2],a[A+304>>2]=a[A+304>>2]+1,a[r+48>>2]=c,a[r+52>>2]=n,c=a[A+8>>2],a[r>>2]=a[A+4>>2],a[r+4>>2]=c,c=A+20|0,n=c,l=a[n+4>>2],a[r+16>>2]=a[n>>2],a[r+20>>2]=l,n=A+36|0,g=a[n+4>>2],a[r+32>>2]=a[n>>2],a[r+36>>2]=g,l=a[r+4>>2],a[A+4>>2]=a[r>>2],a[A+8>>2]=l,l=a[i+4>>2],a[t>>2]=a[i>>2],a[t+4>>2]=l,i=a[u+4>>2],a[k>>2]=a[u>>2],a[k+4>>2]=i,i=a[r+20>>2],a[c>>2]=a[r+16>>2],a[c+4>>2]=i,i=a[b+4>>2],a[s>>2]=a[b>>2],a[s+4>>2]=i,i=a[r+36>>2],a[n>>2]=a[r+32>>2],a[n+4>>2]=i,t=a[e+4>>2],i=A+60|0,a[i>>2]=a[e>>2],a[i+4>>2]=t,e=a[r+52>>2],A=A+52|0,a[A>>2]=a[r+48>>2],a[A+4>>2]=e,Y=r+96|0,Q}function Of(A,e){var r=_(0),i=_(0),f=_(0),t=_(0),n=_(0),o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=0,k=_(0);r=_(C[A+152>>2]-C[A+132>>2]),f=_(C[A+156>>2]-C[A+136>>2]),i=_(C[A+160>>2]-C[A+140>>2]),c=_(y(_(_(_(r*r)+_(f*f))+_(i*i)))),c>_(1.1920928955078125e-7)&&(l=C[e+8>>2],n=C[e>>2],u=C[e+4>>2],e=A+132|0,s=a[e+4>>2],o=A+152|0,a[o>>2]=a[e>>2],a[o+4>>2]=s,e=e+8|0,s=a[e+4>>2],o=o+8|0,a[o>>2]=a[e>>2],a[o+4>>2]=s,t=r,r=_(_(1)/c),t=_(t*r),b=t,k=_(t*n),t=_(f*r),i=_(i*r),r=_(_(k+_(t*u))+_(i*l)),r=_(r+r),f=_(b-_(n*r)),b=f,i=_(i-_(l*r)),r=_(t-_(u*r)),f=_(_(1)/_(y(_(_(i*i)+_(_(f*f)+_(r*r)))))),t=_(b*f),b=n,i=_(i*f),r=_(r*f),n=_(_(l*i)+_(_(n*t)+_(u*r))),C[A+152>>2]=_(c*_(t-_(b*n)))+C[A+152>>2],C[A+156>>2]=_(c*_(r-_(u*n)))+C[A+156>>2],C[A+160>>2]=_(c*_(i-_(l*n)))+C[A+160>>2])}function Hf(A,e,r){var i,f,t,n,c,b,l,u=0,s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=0,h=0,G=_(0),p=0,F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0);for(i=Y-240|0,Y=i,Q=i+188|0,a[Q>>2]=0,a[Q+4>>2]=0,Q=i+200|0,a[Q>>2]=0,a[Q+4>>2]=0,a[i+196>>2]=1065353216,a[i+216>>2]=1065353216,s=C[r>>2],k=C[r+4>>2],v=C[r+8>>2],a[A+164>>2]=0,C[A+160>>2]=v+C[A+140>>2],C[A+156>>2]=k+C[A+136>>2],C[A+152>>2]=s+C[A+132>>2],a[i+180>>2]=0,a[i+184>>2]=0,a[i+176>>2]=1065353216,a[i+208>>2]=0,a[i+212>>2]=0,a[i+236>>2]=0,r=i+228|0,a[r>>2]=0,a[r+4>>2]=0,r=i+220|0,a[r>>2]=0,a[r+4>>2]=0,a[i+112>>2]=1065353216,r=i+124|0,a[r>>2]=0,a[r+4>>2]=0,a[i+116>>2]=0,a[i+120>>2]=0,a[i+132>>2]=1065353216,r=i+136|0,a[r>>2]=0,a[r+4>>2]=0,a[i+144>>2]=0,a[i+148>>2]=0,a[i+152>>2]=1065353216,a[i+172>>2]=0,r=i+164|0,a[r>>2]=0,a[r+4>>2]=0,r=i+156|0,a[r>>2]=0,a[r+4>>2]=0,f=A+152|0,t=A+132|0,l=i+48|0,n=i+16|0,c=i+160|0,b=i+224|0,r=-11,w=_(1);;){Q=r+1|0;A:if(!(Q>>>0<r>>>0)){r=a[t+4>>2],a[b>>2]=a[t>>2],a[b+4>>2]=r,r=a[f+4>>2],a[c>>2]=a[f>>2],a[c+4>>2]=r,r=t+8|0,u=r,p=a[u+4>>2],h=b+8|0,a[h>>2]=a[u>>2],a[h+4>>2]=p,h=f+8|0,p=a[h+4>>2],u=c+8|0,a[u>>2]=a[h>>2],a[u+4>>2]=p,D=C[A+132>>2],E=C[A+152>>2],Z=C[A+136>>2],V=C[A+156>>2],N=C[A+140>>2],I=C[A+160>>2],k=C[A+180>>2],d=C[A+176>>2],s=C[A+168>>2],v=C[A+172>>2],a[i+220>>2]=0,a[i+204>>2]=0,a[i+188>>2]=0,a[i+156>>2]=0,a[i+140>>2]=0,a[i+124>>2]=0,B=_(_(2)/_(_(_(_(s*s)+_(v*v))+_(d*d))+_(k*k))),g=_(d*B),m=_(v*g),G=_(s*B),R=_(k*G),C[i+212>>2]=m+R,F=_(s*g),B=_(v*B),W=_(k*B),C[i+208>>2]=F-W,C[i+200>>2]=m-R,m=_(s*B),k=_(k*g),C[i+192>>2]=m+k,C[i+184>>2]=F+W,C[i+180>>2]=m-k,s=_(s*G),k=_(v*B),C[i+216>>2]=_(1)-_(s+k),v=s,s=_(d*g),C[i+196>>2]=_(1)-_(v+s),C[i+176>>2]=_(1)-_(k+s),s=C[A+184>>2],k=C[A+188>>2],d=C[A+192>>2],v=C[A+196>>2],g=_(_(2)/_(_(_(_(s*s)+_(k*k))+_(d*d))+_(v*v))),m=_(k*g),G=_(s*m),B=_(d*g),R=_(v*B),C[i+116>>2]=G-R,F=_(s*B),W=_(v*m),C[i+120>>2]=F+W,C[i+128>>2]=G+R,G=_(k*B),R=v,v=_(s*g),g=_(R*v),C[i+136>>2]=G-g,C[i+144>>2]=F-W,C[i+148>>2]=G+g,k=_(k*m),d=_(d*B),C[i+112>>2]=_(1)-_(k+d),s=_(s*v),C[i+132>>2]=_(1)-_(s+d),C[i+152>>2]=_(1)-_(s+k),u=n+24|0,a[u>>2]=0,a[u+4>>2]=0,u=n+16|0,a[u>>2]=0,a[u+4>>2]=0,u=n+8|0,a[u>>2]=0,a[u+4>>2]=0,a[n>>2]=0,a[n+4>>2]=0,a[i+100>>2]=0,a[i+104>>2]=0,C[i+96>>2]=N-I,C[i+92>>2]=Z-V,C[i+88>>2]=D-E,a[i+80>>2]=0,a[i+4>>2]=1065353216,a[i>>2]=24320,u=a[A+8>>2],a[i+84>>2]=u,u=a[u+188>>2],p=a[u+8>>2],a[i+8>>2]=a[u+4>>2],a[i+12>>2]=p,u=a[A+12>>2],s=_(Qt[a[a[u>>2]+48>>2]](u)),u=a[A+12>>2],Qt[a[a[u>>2]+44>>2]](u,_(s+C[A+64>>2])),(C[i+176>>2]!=C[i+112>>2]|C[i+192>>2]!=C[i+128>>2]|C[i+208>>2]!=C[i+144>>2]|C[i+180>>2]!=C[i+116>>2]||C[i+196>>2]!=C[i+132>>2]|C[i+212>>2]!=C[i+148>>2]|C[i+184>>2]!=C[i+120>>2]|C[i+200>>2]!=C[i+136>>2]||C[i+216>>2]!=C[i+152>>2]|C[i+236>>2]!=C[i+172>>2]|C[i+232>>2]!=C[i+168>>2]|C[i+228>>2]!=C[i+164>>2]||C[i+224>>2]!=C[i+160>>2])&&(o[A+250|0]?Sf(a[A+8>>2],a[A+12>>2],i+176|0,i+112|0,i,C[e+56>>2]):_f(e,a[A+12>>2],i+176|0,i+112|0,i,C[e+56>>2])),u=a[A+12>>2],Qt[a[a[u>>2]+44>>2]](u,s);e:{if(s=C[i+4>>2],s<_(1)&&(u=a[A+8>>2],!(4&o[u+204|0])&&Qt[a[a[A>>2]+56>>2]](A,u,a[i+80>>2]))){if(Of(A,l),k=_(C[A+152>>2]-C[A+132>>2]),v=_(C[A+156>>2]-C[A+136>>2]),d=_(C[A+160>>2]-C[A+140>>2]),g=_(_(_(k*k)+_(v*v))+_(d*d)),!(g>_(1.1920928955078125e-7)))break A;if(R=k,k=_(_(1)/_(y(g))),!(_(_(_(_(R*k)*C[A+84>>2])+_(_(v*k)*C[A+88>>2]))+_(_(d*k)*C[A+92>>2]))<=_(0)))break e;break A}u=a[f+4>>2],a[t>>2]=a[f>>2],a[t+4>>2]=u,u=a[h+4>>2],a[r>>2]=a[h>>2],a[r+4>>2]=u}if(r=Q,w=_(w-s),w>_(.009999999776482582))continue}break}Y=i+240|0}function zf(A){return A|=0,0|Qt[a[a[A>>2]+48>>2]](A)}function Pf(A,e,r,i,n,o){var c=0;return function(A,e,r){a[A+44>>2]=0,a[A+36>>2]=0,a[A+40>>2]=1028443341,a[A+32>>2]=r,a[A+28>>2]=e,a[A+24>>2]=-1,t[A+20>>1]=1,a[A+16>>2]=2139095039,a[A+8>>2]=-1,a[A+12>>2]=-1,a[A>>2]=23012,a[A+4>>2]=12}(A,e,r),a[A>>2]=24404,r=i+8|0,c=a[r+4>>2],e=A+56|0,a[e>>2]=a[r>>2],a[e+4>>2]=c,e=a[i+4>>2],a[A+48>>2]=a[i>>2],a[A+52>>2]=e,r=i+24|0,c=a[r+4>>2],e=A+72|0,a[e>>2]=a[r>>2],a[e+4>>2]=c,r=a[i+20>>2],e=A- -64|0,a[e>>2]=a[i+16>>2],a[e+4>>2]=r,r=i+40|0,c=a[r+4>>2],e=A+88|0,a[e>>2]=a[r>>2],a[e+4>>2]=c,r=a[i+36>>2],e=A+80|0,a[e>>2]=a[i+32>>2],a[e+4>>2]=r,r=i+56|0,c=a[r+4>>2],e=A+104|0,a[e>>2]=a[r>>2],a[e+4>>2]=c,r=a[i+52>>2],e=A+96|0,a[e>>2]=a[i+48>>2],a[e+4>>2]=r,r=n+8|0,i=a[r+4>>2],e=A+120|0,a[e>>2]=a[r>>2],a[e+4>>2]=i,e=a[n+4>>2],a[A+112>>2]=a[n>>2],a[A+116>>2]=e,r=a[n+20>>2],e=A+128|0,a[e>>2]=a[n+16>>2],a[e+4>>2]=r,r=n+24|0,i=a[r+4>>2],e=A+136|0,a[e>>2]=a[r>>2],a[e+4>>2]=i,r=a[n+36>>2],e=A+144|0,a[e>>2]=a[n+32>>2],a[e+4>>2]=r,r=n+40|0,i=a[r+4>>2],e=A+152|0,a[e>>2]=a[r>>2],a[e+4>>2]=i,r=a[n+52>>2],e=A+160|0,a[e>>2]=a[n+48>>2],a[e+4>>2]=r,r=n+56|0,i=a[r+4>>2],e=A+168|0,a[e>>2]=a[r>>2],a[e+4>>2]=i,a[A+680>>2]=0,a[A+684>>2]=0,e=A+688|0,a[e>>2]=0,a[e+4>>2]=0,e=A+696|0,a[e>>2]=0,a[e+4>>2]=0,e=A+704|0,a[e>>2]=0,a[e+4>>2]=0,e=A+712|0,a[e>>2]=0,a[e+4>>2]=0,e=A+720|0,a[e>>2]=0,a[e+4>>2]=0,a[A+736>>2]=1045220557,e=A+728|0,a[e>>2]=1045220557,a[e+4>>2]=1045220557,a[A+756>>2]=0,e=A+748|0,a[e>>2]=0,a[e+4>>2]=0,e=A+740|0,a[e>>2]=0,a[e+4>>2]=0,a[A+768>>2]=1063675494,e=A+760|0,a[e>>2]=1063675494,a[e+4>>2]=1063675494,a[A+812>>2]=0,e=A+804|0,a[e>>2]=0,a[e+4>>2]=0,a[A+828>>2]=0,e=A+820|0,a[e>>2]=0,a[e+4>>2]=0,f[A+838|0]=0,e=A+836|0,f[0|e]=0,f[e+1|0]=0,a[A+848>>2]=0,e=A+840|0,a[e>>2]=0,a[e+4>>2]=0,f[A+858|0]=0,e=A+856|0,f[0|e]=0,f[e+1|0]=0,a[A+868>>2]=0,e=A+860|0,a[e>>2]=0,a[e+4>>2]=0,a[A+884>>2]=0,e=A+876|0,a[e>>2]=0,a[e+4>>2]=0,a[A+900>>2]=0,e=A+892|0,a[e>>2]=0,a[e+4>>2]=0,e=A+793|0,f[0|e]=0,f[e+1|0]=0,f[e+2|0]=0,f[e+3|0]=0,f[e+4|0]=0,f[e+5|0]=0,f[e+6|0]=0,f[e+7|0]=0,e=A+788|0,a[e>>2]=0,a[e+4>>2]=0,e=A+780|0,a[e>>2]=0,a[e+4>>2]=0,e=A+772|0,a[e>>2]=0,a[e+4>>2]=0,a[A+964>>2]=0,e=A+956|0,a[e>>2]=0,a[e+4>>2]=0,e=A+948|0,a[e>>2]=0,a[e+4>>2]=0,e=A+940|0,a[e>>2]=0,a[e+4>>2]=0,e=A+932|0,a[e>>2]=0,a[e+4>>2]=0,e=A+924|0,a[e>>2]=0,a[e+4>>2]=0,e=A+916|0,a[e>>2]=0,a[e+4>>2]=0,e=A+908|0,a[e>>2]=0,a[e+4>>2]=0,f[A+1032|0]=0,a[A+1028>>2]=0,f[A+1024|0]=0,a[A+1020>>2]=0,f[A+1016|0]=0,a[A+1012>>2]=0,f[A+1008|0]=0,e=A+1e3|0,a[e>>2]=0,a[e+4>>2]=1036831949,f[A+996|0]=0,a[A+992>>2]=0,e=A+984|0,a[e>>2]=0,a[e+4>>2]=1063675494,e=A+976|0,a[e>>2]=0,a[e+4>>2]=1045220557,a[A+968>>2]=1065353216,a[A+972>>2]=-1082130432,a[A+1052>>2]=0,e=A+1044|0,a[e>>2]=0,a[e+4>>2]=0,e=A+1036|0,a[e>>2]=0,a[e+4>>2]=0,f[A+1120|0]=0,a[A+1116>>2]=0,f[A+1112|0]=0,a[A+1108>>2]=0,f[A+1104|0]=0,a[A+1100>>2]=0,f[A+1096|0]=0,e=A+1088|0,a[e>>2]=0,a[e+4>>2]=1036831949,f[A+1084|0]=0,a[A+1080>>2]=0,e=A+1072|0,a[e>>2]=0,a[e+4>>2]=1063675494,e=A+1064|0,a[e>>2]=0,a[e+4>>2]=1045220557,e=A+1056|0,a[e>>2]=1065353216,a[e+4>>2]=-1082130432,a[A+1140>>2]=0,e=A+1132|0,a[e>>2]=0,a[e+4>>2]=0,e=A+1124|0,a[e>>2]=0,a[e+4>>2]=0,f[A+1208|0]=0,a[A+1204>>2]=0,f[A+1200|0]=0,a[A+1196>>2]=0,f[A+1192|0]=0,a[A+1188>>2]=0,f[A+1184|0]=0,e=A+1176|0,a[e>>2]=0,a[e+4>>2]=1036831949,f[A+1172|0]=0,a[A+1168>>2]=0,e=A+1160|0,a[e>>2]=0,a[e+4>>2]=1063675494,e=A+1152|0,a[e>>2]=0,a[e+4>>2]=1045220557,e=A+1144|0,a[e>>2]=1065353216,a[e+4>>2]=-1082130432,a[A+1228>>2]=0,e=A+1220|0,a[e>>2]=0,a[e+4>>2]=0,e=A+1212|0,a[e>>2]=0,a[e+4>>2]=0,a[A+1456>>2]=0,a[A+1232>>2]=o,Kf(A,a[A+28>>2]+4|0,a[A+32>>2]+4|0),A}function Kf(A,e,r){var i=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0);E=C[e+52>>2],Z=C[e+56>>2],k=C[A+96>>2],v=C[A+100>>2],d=C[A+104>>2],i=C[e+20>>2],t=C[e+24>>2],g=C[A- -64>>2],B=C[A+80>>2],m=C[A+52>>2],R=C[A+68>>2],G=C[A+84>>2],p=C[A+56>>2],n=C[e+36>>2],F=C[A+72>>2],o=C[e+40>>2],W=C[A+88>>2],D=C[e+48>>2],c=C[e+8>>2],b=C[e>>2],l=C[e+4>>2],u=C[e+16>>2],w=C[A+48>>2],s=C[e+32>>2],a[A+1296>>2]=0,a[A+1280>>2]=0,a[A+1264>>2]=0,a[A+1248>>2]=0,C[A+1276>>2]=_(_(p*s)+_(F*n))+_(W*o),C[A+1272>>2]=_(_(m*s)+_(R*n))+_(G*o),C[A+1268>>2]=_(_(w*s)+_(g*n))+_(B*o),C[A+1260>>2]=_(_(p*u)+_(F*i))+_(W*t),C[A+1256>>2]=_(_(m*u)+_(R*i))+_(G*t),C[A+1252>>2]=_(_(w*u)+_(g*i))+_(B*t),C[A+1244>>2]=_(_(b*p)+_(l*F))+_(c*W),C[A+1240>>2]=_(_(b*m)+_(l*R))+_(c*G),C[A+1236>>2]=_(_(w*b)+_(g*l))+_(B*c),C[A+1292>>2]=Z+_(_(_(s*k)+_(n*v))+_(o*d)),C[A+1288>>2]=E+_(_(_(u*k)+_(i*v))+_(t*d)),C[A+1284>>2]=D+_(_(_(b*k)+_(l*v))+_(c*d)),E=C[r+52>>2],Z=C[r+56>>2],k=C[A+160>>2],v=C[A+164>>2],d=C[A+168>>2],i=C[r+20>>2],t=C[r+24>>2],g=C[A+128>>2],B=C[A+144>>2],m=C[A+116>>2],R=C[A+132>>2],G=C[A+148>>2],p=C[A+120>>2],F=C[A+136>>2],n=C[r+36>>2],W=C[A+152>>2],o=C[r+40>>2],D=C[r+48>>2],c=C[r+8>>2],b=C[r>>2],l=C[r+4>>2],u=C[r+16>>2],w=C[A+112>>2],s=C[r+32>>2],a[A+1360>>2]=0,a[A+1344>>2]=0,a[A+1328>>2]=0,a[A+1312>>2]=0,C[A+1340>>2]=_(_(p*s)+_(F*n))+_(W*o),C[A+1336>>2]=_(_(m*s)+_(R*n))+_(G*o),C[A+1332>>2]=_(_(w*s)+_(g*n))+_(B*o),C[A+1324>>2]=_(_(p*u)+_(F*i))+_(W*t),C[A+1320>>2]=_(_(m*u)+_(R*i))+_(G*t),C[A+1316>>2]=_(_(w*u)+_(g*i))+_(B*t),C[A+1308>>2]=_(_(b*p)+_(l*F))+_(c*W),C[A+1304>>2]=_(_(b*m)+_(l*R))+_(c*G),C[A+1300>>2]=_(_(w*b)+_(g*l))+_(B*c),C[A+1356>>2]=Z+_(_(_(s*k)+_(n*v))+_(o*d)),C[A+1352>>2]=E+_(_(_(u*k)+_(i*v))+_(t*d)),C[A+1348>>2]=D+_(_(_(b*k)+_(l*v))+_(c*d)),function(A){var e=_(0),r=_(0),i=_(0),f=_(0),t=0,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=0,v=_(0),d=_(0),g=_(0),B=_(0),m=_(0);a[A+1440>>2]=0,o=C[A+1256>>2],c=C[A+1276>>2],b=C[A+1260>>2],l=C[A+1272>>2],B=_(_(o*c)-_(b*l)),r=C[A+1236>>2],i=C[A+1240>>2],u=C[A+1268>>2],s=C[A+1252>>2],m=_(_(b*u)-_(c*s)),n=_(_(l*s)-_(o*u)),f=C[A+1244>>2],e=_(_(1)/_(_(_(B*r)+_(i*m))+_(n*f))),v=_(C[A+1356>>2]-C[A+1292>>2]),d=_(C[A+1348>>2]-C[A+1284>>2]),g=_(C[A+1352>>2]-C[A+1288>>2]),n=_(_(v*_(_(_(o*r)-_(s*i))*e))+_(_(d*_(n*e))+_(g*_(_(_(u*i)-_(l*r))*e)))),C[A+1436>>2]=n,r=_(_(v*_(_(_(s*f)-_(b*r))*e))+_(_(d*_(m*e))+_(g*_(_(_(c*r)-_(u*f))*e)))),C[A+1432>>2]=r,e=_(_(v*_(_(_(b*i)-_(o*f))*e))+_(_(d*_(B*e))+_(g*_(_(_(l*f)-_(c*i))*e)))),C[A+1428>>2]=e,C[A+940>>2]=e,i=C[A+680>>2],f=C[A+696>>2],i>f?a[A+908>>2]=0:(C[A+908>>2]=e-i,t=3,i!=f&&(C[A+924>>2]=e-f,t=4)),C[A+944>>2]=r,a[A+956>>2]=t,e=C[A+684>>2],i=C[A+700>>2];A:if(e>i)a[A+912>>2]=0,t=0;else{if(C[A+912>>2]=r-e,t=3,e==i)break A;C[A+928>>2]=r-i,t=4}C[A+948>>2]=n,a[A+960>>2]=t,t=A+964|0,e=C[A+688>>2],r=C[A+704>>2];A:if(e>r)a[A+916>>2]=0,k=0;else{if(C[A+916>>2]=n-e,k=3,e==r)break A;C[A+932>>2]=n-r,k=4}a[t>>2]=k}(A),function(A){var e=_(0),r=_(0),i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=0,k=_(0),v=_(0),d=0,g=_(0),B=_(0),m=_(0),R=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=0;s=Y-48|0,Y=s,u=C[A+1332>>2],g=C[A+1316>>2],B=C[A+1336>>2],m=C[A+1304>>2],R=C[A+1320>>2],G=C[A+1340>>2],p=C[A+1308>>2],F=C[A+1324>>2],o=C[A+1244>>2],c=C[A+1256>>2],n=C[A+1272>>2],f=C[A+1240>>2],i=C[A+1268>>2],b=C[A+1260>>2],t=C[A+1252>>2],l=C[A+1276>>2],W=C[A+1300>>2],e=C[A+1236>>2],a[s+44>>2]=0,a[s+28>>2]=0,E=_(_(c*l)-_(b*n)),k=_(_(b*i)-_(l*t)),v=_(_(n*t)-_(c*i)),r=_(_(1)/_(_(_(e*E)+_(f*k))+_(v*o))),v=_(v*r),w=_(_(_(i*f)-_(n*e))*r),D=_(_(_(c*e)-_(t*f))*r),C[s+40>>2]=_(_(p*v)+_(F*w))+_(G*D),C[s+36>>2]=_(_(m*v)+_(w*R))+_(D*B),k=_(k*r),i=_(_(_(l*e)-_(i*o))*r),e=_(_(_(t*o)-_(b*e))*r),C[s+24>>2]=_(_(p*k)+_(F*i))+_(G*e),C[s+20>>2]=_(_(m*k)+_(i*R))+_(e*B),a[s+12>>2]=0,C[s+32>>2]=_(u*D)+_(_(W*v)+_(g*w)),C[s+16>>2]=_(u*e)+_(_(W*k)+_(g*i)),e=_(E*r),n=_(_(_(n*o)-_(l*f))*r),r=_(_(_(b*f)-_(c*o))*r),C[s+8>>2]=_(_(p*e)+_(F*n))+_(G*r),C[s+4>>2]=_(_(e*m)+_(n*R))+_(r*B),C[s>>2]=_(u*r)+_(_(W*e)+_(g*n)),Z=A;A:{e:{r:{i:{f:{t:{n:{a:{if(d=a[A+1232>>2],d>>>0<=5){o:{switch(d-1|0){default:!function(A,e){var r=_(0),i=_(0),f=0,t=_(0);if(r=C[A+32>>2],r<_(1)){if(r>_(-1))return f=e,t=vi(_(-C[A+36>>2]),C[A+40>>2]),C[f>>2]=t,f=e,t=Yf(_(Q(_(h(C[A+32>>2],_(-1))),_(1)))),C[f+4>>2]=t,f=e,t=vi(_(-C[A+16>>2]),C[A>>2]),void(C[f+8>>2]=t);r=C[A+20>>2],i=C[A+4>>2],a[e+4>>2]=-1077342245,f=e,t=_(-vi(i,r)),C[f>>2]=t}else r=C[A+20>>2],i=C[A+4>>2],a[e+4>>2]=1070141403,f=e,t=vi(i,r),C[f>>2]=t;C[e+8>>2]=0}(s,A+1364|0);break o;case 0:!function(A,e){var r=_(0),i=_(0),f=0,t=_(0);if(r=C[A+16>>2],r<_(1))return r>_(-1)?(f=e,t=vi(C[A+24>>2],C[A+20>>2]),C[f>>2]=t,f=e,t=vi(C[A+32>>2],C[A>>2]),C[f+4>>2]=t,f=e,t=Yf(_(Q(_(h(_(-C[A+16>>2]),_(-1))),_(1)))),void(C[f+8>>2]=t)):(r=C[A+40>>2],i=C[A+8>>2],a[e+4>>2]=0,f=e,t=_(-vi(_(-i),r)),C[f>>2]=t,void(C[e+8>>2]=1.5707963705062866));r=C[A+40>>2],i=C[A+8>>2],a[e+4>>2]=0,f=e,t=vi(_(-i),r),C[f>>2]=t,C[e+8>>2]=-1.5707963705062866}(s,A+1364|0);break o;case 1:!function(A,e){var r=_(0),i=0,f=_(0);if(r=C[A+36>>2],r<_(1)){if(r>_(-1))return i=e,f=Yf(_(Q(_(h(_(-r),_(-1))),_(1)))),C[i>>2]=f,i=e,f=vi(C[A+32>>2],C[A+40>>2]),C[i+4>>2]=f,i=e,f=vi(C[A+4>>2],C[A+20>>2]),void(C[i+8>>2]=f);a[e>>2]=1070141403,i=e,f=_(-vi(_(-C[A+16>>2]),C[A>>2])),C[i+4>>2]=f}else a[e>>2]=-1077342245,i=e,f=vi(_(-C[A+16>>2]),C[A>>2]),C[i+4>>2]=f;C[e+8>>2]=0}(s,A+1364|0);break o;case 2:!function(A,e){var r=_(0),i=0,f=_(0);if(r=C[A+4>>2],r<_(1))return r>_(-1)?(i=e,f=vi(_(-C[A+36>>2]),C[A+20>>2]),C[i>>2]=f,i=e,f=vi(_(-C[A+8>>2]),C[A>>2]),C[i+4>>2]=f,i=e,f=Yf(_(Q(_(h(C[A+4>>2],_(-1))),_(1)))),void(C[i+8>>2]=f)):(a[e>>2]=0,i=e,f=_(-vi(C[A+24>>2],C[A+40>>2])),C[i+4>>2]=f,void(C[e+8>>2]=-1.5707963705062866));a[e>>2]=0,i=e,f=vi(C[A+24>>2],C[A+40>>2]),C[i+4>>2]=f,C[e+8>>2]=1.5707963705062866}(s,A+1364|0);break o;case 3:!function(A,e){var r=_(0),i=0,f=0,t=_(0);if(i=e,r=C[A+24>>2],r<_(1)){if(r>_(-1))return f=e,t=Yf(_(Q(_(h(r,_(-1))),_(1)))),C[f>>2]=t,f=e,t=vi(_(-C[A+8>>2]),C[A+40>>2]),C[f+4>>2]=t,f=e,t=vi(_(-C[A+16>>2]),C[A+20>>2]),void(C[f+8>>2]=t);a[e>>2]=-1077342245,a[e+4>>2]=0,r=_(-vi(C[A+32>>2],C[A>>2]))}else a[e>>2]=1070141403,a[e+4>>2]=0,r=vi(C[A+32>>2],C[A>>2]);C[i+8>>2]=r}(s,A+1364|0);break o;case 4:}!function(A,e){var r=_(0),i=0,f=0,t=_(0);if(i=e,r=C[A+8>>2],r<_(1)){if(r>_(-1))return f=e,t=vi(C[A+24>>2],C[A+40>>2]),C[f>>2]=t,f=e,t=Yf(_(Q(_(h(_(-C[A+8>>2]),_(-1))),_(1)))),C[f+4>>2]=t,f=e,t=vi(C[A+4>>2],C[A>>2]),void(C[f+8>>2]=t);a[e>>2]=0,a[e+4>>2]=1070141403,r=_(-vi(C[A+16>>2],C[A+32>>2]))}else a[e>>2]=0,a[e+4>>2]=-1077342245,r=vi(_(-C[A+16>>2]),_(-C[A+32>>2]));C[i+8>>2]=r}(s,A+1364|0)}d=a[A+1232>>2]}if(d>>>0<=5)switch(d-1|0){case 4:break r;case 3:break i;case 2:break f;case 1:break t;case 0:break n;default:break a}o=C[A+1420>>2],f=C[A+1416>>2],e=C[A+1412>>2],c=C[A+1404>>2],n=C[A+1400>>2],i=C[A+1396>>2],b=C[A+1388>>2],t=C[A+1384>>2],r=C[A+1380>>2];break A}a[A+1408>>2]=0,a[A+1424>>2]=0,a[A+1392>>2]=0,r=C[A+1316>>2],t=C[A+1244>>2],f=C[A+1300>>2],l=C[A+1260>>2],c=_(_(r*t)-_(f*l)),C[A+1404>>2]=c,u=C[A+1276>>2],e=C[A+1332>>2],n=_(_(f*u)-_(t*e)),C[A+1400>>2]=n,i=_(_(e*l)-_(r*u)),C[A+1396>>2]=i,o=_(_(f*n)-_(r*i)),C[A+1420>>2]=o,f=_(_(e*i)-_(f*c)),C[A+1416>>2]=f,e=_(_(r*c)-_(e*n)),C[A+1412>>2]=e,b=_(_(l*i)-_(t*n)),C[A+1388>>2]=b,t=_(_(t*c)-_(u*i)),C[A+1384>>2]=t,r=_(_(u*n)-_(l*c));break e}a[A+1424>>2]=0,a[A+1408>>2]=0,a[A+1392>>2]=0,r=C[A+1300>>2],l=C[A+1256>>2],i=C[A+1316>>2],t=C[A+1240>>2],o=_(_(r*l)-_(i*t)),C[A+1420>>2]=o,b=C[A+1332>>2],u=C[A+1272>>2],f=_(_(t*b)-_(r*u)),C[A+1416>>2]=f,e=_(_(i*u)-_(b*l)),C[A+1412>>2]=e,c=_(_(i*e)-_(r*f)),C[A+1404>>2]=c,n=_(_(r*o)-_(b*e)),C[A+1400>>2]=n,i=_(_(b*f)-_(i*o)),C[A+1396>>2]=i,b=_(_(t*f)-_(l*e)),C[A+1388>>2]=b,t=_(_(u*e)-_(t*o)),C[A+1384>>2]=t,r=_(_(l*o)-_(u*f));break e}a[A+1424>>2]=0,a[A+1408>>2]=0,a[A+1392>>2]=0,f=C[A+1304>>2],i=C[A+1260>>2],e=C[A+1320>>2],n=C[A+1244>>2],b=_(_(f*i)-_(e*n)),C[A+1388>>2]=b,c=C[A+1336>>2],l=C[A+1276>>2],t=_(_(n*c)-_(f*l)),C[A+1384>>2]=t,r=_(_(e*l)-_(c*i)),C[A+1380>>2]=r,o=_(_(e*r)-_(f*t)),C[A+1420>>2]=o,f=_(_(f*b)-_(c*r)),C[A+1416>>2]=f,e=_(_(c*t)-_(e*b)),C[A+1412>>2]=e,c=_(_(n*t)-_(i*r)),C[A+1404>>2]=c,n=_(_(l*r)-_(n*b)),C[A+1400>>2]=n,i=_(_(i*b)-_(l*t)),C[A+1396>>2]=i;break A}a[A+1424>>2]=0,a[A+1408>>2]=0,a[A+1392>>2]=0,r=C[A+1236>>2],l=C[A+1320>>2],i=C[A+1252>>2],t=C[A+1304>>2],o=_(_(r*l)-_(i*t)),C[A+1420>>2]=o,b=C[A+1268>>2],u=C[A+1336>>2],f=_(_(t*b)-_(r*u)),C[A+1416>>2]=f,e=_(_(i*u)-_(b*l)),C[A+1412>>2]=e,c=_(_(i*e)-_(r*f)),C[A+1404>>2]=c,n=_(_(r*o)-_(b*e)),C[A+1400>>2]=n,i=_(_(b*f)-_(i*o)),C[A+1396>>2]=i,b=_(_(t*f)-_(l*e)),C[A+1388>>2]=b,t=_(_(u*e)-_(t*o)),C[A+1384>>2]=t,r=_(_(l*o)-_(u*f));break e}a[A+1424>>2]=0,a[A+1408>>2]=0,a[A+1392>>2]=0,f=C[A+1240>>2],i=C[A+1324>>2],e=C[A+1256>>2],n=C[A+1308>>2],b=_(_(f*i)-_(e*n)),C[A+1388>>2]=b,c=C[A+1272>>2],l=C[A+1340>>2],t=_(_(n*c)-_(f*l)),C[A+1384>>2]=t,r=_(_(e*l)-_(c*i)),C[A+1380>>2]=r,o=_(_(e*r)-_(f*t)),C[A+1420>>2]=o,f=_(_(f*b)-_(c*r)),C[A+1416>>2]=f,e=_(_(c*t)-_(e*b)),C[A+1412>>2]=e,c=_(_(n*t)-_(i*r)),C[A+1404>>2]=c,n=_(_(l*r)-_(n*b)),C[A+1400>>2]=n,i=_(_(i*b)-_(l*t)),C[A+1396>>2]=i;break A}a[A+1408>>2]=0,a[A+1424>>2]=0,a[A+1392>>2]=0,r=C[A+1252>>2],t=C[A+1308>>2],f=C[A+1236>>2],l=C[A+1324>>2],c=_(_(r*t)-_(f*l)),C[A+1404>>2]=c,u=C[A+1340>>2],e=C[A+1268>>2],n=_(_(f*u)-_(t*e)),C[A+1400>>2]=n,i=_(_(e*l)-_(r*u)),C[A+1396>>2]=i,o=_(_(f*n)-_(r*i)),C[A+1420>>2]=o,f=_(_(e*i)-_(f*c)),C[A+1416>>2]=f,e=_(_(r*c)-_(e*n)),C[A+1412>>2]=e,b=_(_(l*i)-_(t*n)),C[A+1388>>2]=b,t=_(_(t*c)-_(u*i)),C[A+1384>>2]=t,r=_(_(u*n)-_(l*c))}C[Z+1380>>2]=r}l=o,o=_(_(1)/_(y(_(_(_(e*e)+_(f*f))+_(o*o))))),C[A+1420>>2]=l*o,C[A+1416>>2]=f*o,C[A+1412>>2]=e*o,o=_(_(1)/_(y(_(_(_(i*i)+_(n*n))+_(c*c))))),C[A+1404>>2]=c*o,C[A+1400>>2]=n*o,C[A+1396>>2]=i*o,o=_(_(1)/_(y(_(_(_(r*r)+_(t*t))+_(b*b))))),C[A+1388>>2]=b*o,C[A+1384>>2]=t*o,C[A+1380>>2]=r*o,Y=s+48|0}(A),t=C[a[A+28>>2]+404>>2],i=C[a[A+32>>2]+404>>2],f[A+1452|0]=t<_(1.1920928955078125e-7)|i<_(1.1920928955078125e-7),D=i,i=_(t+i),i=i>_(0)?_(D/i):_(.5),C[A+1444>>2]=i,C[A+1448>>2]=_(1)-i}function Lf(A,e){var r,i=_(0),f=_(0),t=_(0),n=_(0),o=_(0);if(f=C[1364+((e<<2)+A|0)>>2],r=B(e,88)+A|0,t=C[r+968>>2],n=C[r+972>>2],t>=n||(f<t?(i=Wf(_(t-f)),i<_(-3.1415927410125732)?i=_(i+_(6.2831854820251465)):i>_(3.1415927410125732)&&(i=_(i+_(-6.2831854820251465))),o=_(m(i)),i=Wf(_(n-f)),i<_(-3.1415927410125732)?i=_(i+_(6.2831854820251465)):i>_(3.1415927410125732)&&(i=_(i+_(-6.2831854820251465))),f=o<_(m(i))?f:_(f+_(6.2831854820251465))):f>n&&(i=Wf(_(f-n)),i<_(-3.1415927410125732)?i=_(i+_(6.2831854820251465)):i>_(3.1415927410125732)&&(i=_(i+_(-6.2831854820251465))),o=_(m(i)),i=Wf(_(f-t)),i<_(-3.1415927410125732)?i=_(i+_(6.2831854820251465)):i>_(3.1415927410125732)&&(i=_(i+_(-6.2831854820251465))),f=_(m(i))<o?_(f+_(-6.2831854820251465)):f)),C[r+1048>>2]=f,t>n)return A=B(e,88)+A|0,a[A+1040>>2]=0,void(a[A+1052>>2]=0);A=B(e,88)+A|0,C[A+1040>>2]=f-t,t!=n?(a[A+1052>>2]=4,C[A+1044>>2]=f-n):a[A+1052>>2]=3}function qf(A,e,r,i,f,t,n,c,b,l,u,s,k){var v=_(0),d=_(0),g=_(0),m=0,R=0,G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0);if(l=B(a[b+24>>2],l),m=a[e+84>>2]+-3|0,m>>>0>1)m=0;else{if(m-1)$f(A,r,i,b,l,u,s,k),R=l<<2,C[R+a[b+28>>2]>>2]=_(_(C[b>>2]*C[e+12>>2])*C[e+72>>2])*_(0|(s?-1:1)),a[R+a[b+36>>2]>>2]=-8388609,a[R+a[b+40>>2]>>2]=2139095039,R=e+16|0,m=1;else{s?(v=C[u>>2],g=C[u+4>>2],d=_(_(C[n>>2]*v)+_(C[n+4>>2]*g)),G=C[u+8>>2],F=_(C[n+8>>2]*G),R=s,m=c):(v=C[u>>2],g=C[u+4>>2],d=_(_(C[f>>2]*v)+_(C[f+4>>2]*g)),G=C[u+8>>2],F=_(C[f+8>>2]*G),m=t),w=C[m+8>>2],D=C[m>>2],W=C[m+4>>2],$f(A,r,i,b,l,u,R,k),m=a[b+28>>2]+(l<<2)|0,E=_(0|(s?-1:1)),p=_(_(_(C[b>>2]*C[e+12>>2])*C[e+72>>2])*E),C[m>>2]=p,v=_(_(d+F)-_(_(_(v*D)+_(g*W))+_(G*w))),d=_(p-_(v*C[e+12>>2]));A:if(s){if(!(d>_(0)))break A;if(d=_(-_(v*C[e+8>>2])),!(p<d))break A;C[m>>2]=d}else d<_(0)&&(d=_(-_(v*C[e+8>>2])),p>d&&(C[m>>2]=d));m=l<<2,C[m+a[b+36>>2]>>2]=_(s?0:-3.4028234663852886e38),C[m+a[b+40>>2]>>2]=_(s?3.4028234663852886e38:0),a[m+a[b+32>>2]>>2]=a[e+16>>2],l=a[b+24>>2]+l|0,$f(A,r,i,b,l,u,s,k),m=a[b+28>>2]+(l<<2)|0,d=_(_(_(C[b>>2]*C[e+12>>2])*C[e+76>>2])*E),C[m>>2]=d,g=_(d-_(v*C[e+12>>2])),R=e+16|0;A:if(s){if(!(g<_(0)))break A;if(v=_(-_(v*C[e+8>>2])),!(d>v))break A;C[m>>2]=v}else g>_(0)&&(v=_(-_(v*C[e+8>>2])),d<v&&(C[m>>2]=v));m=l<<2,C[m+a[b+36>>2]>>2]=_(s?-3.4028234663852886e38:0),C[a[b+40>>2]+m>>2]=_(s?0:3.4028234663852886e38),m=2}a[a[b+32>>2]+(l<<2)>>2]=a[R>>2],l=a[b+24>>2]+l|0}return o[e+28|0]&&(!o[e+40|0]&&($f(A,r,i,b,l,u,s,k),v=C[e+32>>2],v=wf(C[e+80>>2],C[e>>2],C[e+4>>2],s?v:_(-v),_(C[b>>2]*C[e+20>>2])),R=l<<2,C[R+a[b+28>>2]>>2]=v*C[e+32>>2],C[R+a[b+36>>2]>>2]=-C[e+36>>2],a[R+a[b+40>>2]>>2]=a[e+36>>2],a[R+a[b+32>>2]>>2]=a[e+24>>2],m=m+1|0,l=a[b+24>>2]+l|0,!o[e+28|0]|!o[e+40|0])||(d=C[e+44>>2],v=_(C[e+80>>2]-d),s&&(R=v>_(3.1415927410125732),d=R?_(d+_(6.2831854820251465)):d,v=R?_(v+_(-6.2831854820251465)):v,v<_(-3.1415927410125732)&&(d=_(d+_(-6.2831854820251465)),v=_(v+_(6.2831854820251465)))),$f(A,r,i,b,l,u,s,k),g=_(0),G=C[e+32>>2],p=v<_(0)?_(-G):G,v!=_(0)&&(F=_(-p),W=C[e+80>>2],g=C[e>>2],G=C[e+4>>2],g>G?(G=v<_(0)?d:_(3.4028234663852886e38),v=v>_(0)?d:_(-3.4028234663852886e38)):(G=v<_(0)&&d<G?d:G,v=v>_(0)&&d>g?d:g),g=wf(W,v,G,F,_(C[b>>2]*C[e+20>>2]))),R=l<<2,C[R+a[b+28>>2]>>2]=_(p*g)*_(0|(s?-1:1)),C[R+a[b+36>>2]>>2]=-C[e+36>>2],a[R+a[b+40>>2]>>2]=a[e+36>>2],a[R+a[b+32>>2]>>2]=a[e+24>>2],m=m+1|0,l=a[b+24>>2]+l|0)),o[e+48|0]&&(W=C[e+68>>2],E=C[e+80>>2],$f(A,r,i,b,l,u,s,k),v=C[b>>2],d=C[e+52>>2],G=C[e+60>>2],W=_(E-W),s?(w=C[u+8>>2],D=_(C[n+8>>2]*w),g=C[u>>2],p=C[u+4>>2],F=_(_(C[n>>2]*g)+_(C[n+4>>2]*p))):(w=C[u+8>>2],D=_(C[f+8>>2]*w),c=t,g=C[u>>2],p=C[u+4>>2],F=_(_(C[f>>2]*g)+_(C[f+4>>2]*p))),p=_(_(F+D)-_(_(_(g*C[c>>2])+_(p*C[c+4>>2]))+_(w*C[c+8>>2]))),v=_(_(1)/v),g=_(_(1)/C[a[A+32>>2]+404>>2]),F=_(_(1)/C[a[A+28>>2]+404>>2]),g=F>g?g:F,!o[e+56|0]|_(v*_(y(_(d/g))))>_(.25)^1||(d=_(_(_(_(_(1)/v)/v)*_(.0625))*g)),A=l<<2,F=_(v*_(W*d)),d=_(0|(s?-1:1)),g=_(v*_(_(p*(_(G*v)>g&&o[e+64|0]?_(g/v):G))*d)),v=_(F-g),C[A+a[b+28>>2]>>2]=p+_(v*d),g=_(-g),e=v<g,d=e?g:v,v=e?v:g,s?(C[A+a[b+36>>2]>>2]=Q(_(-d),_(0)),d=_(-v)):C[A+a[b+36>>2]>>2]=Q(v,_(0)),A=l<<2,C[A+a[b+40>>2]>>2]=h(d,_(0)),a[A+a[b+32>>2]>>2]=0,m=m+1|0),m}function $f(A,e,r,i,f,t,n,c){var b,l,u,s,k,v,d=_(0),g=_(0),B=_(0),m=0,R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0);b=Y-16|0,l=f<<2,m=a[(n?12:8)+i>>2],a[l+m>>2]=a[t>>2],u=f+1|0,s=u<<2,a[m+s>>2]=a[t+4>>2],k=f+2|0,v=k<<2,a[m+v>>2]=a[t+8>>2],m=a[(n?20:16)+i>>2],C[m+l>>2]=-C[t>>2],C[m+s>>2]=-C[t+4>>2],C[m+v>>2]=-C[t+8>>2],n||(a[b+12>>2]=0,d=_(C[A+1284>>2]-C[e+48>>2]),g=C[t+4>>2],R=_(C[A+1288>>2]-C[e+52>>2]),B=C[t>>2],G=_(_(d*g)-_(R*B)),C[b+8>>2]=G,Q=_(C[A+1292>>2]-C[e+56>>2]),h=d,d=C[t+8>>2],y=_(_(B*Q)-_(h*d)),C[b+4>>2]=y,Q=_(_(R*d)-_(Q*g)),C[b>>2]=Q,p=_(C[A+1352>>2]-C[r+52>>2]),F=_(C[A+1356>>2]-C[r+56>>2]),R=_(_(d*p)-_(g*F)),h=_(C[A+1348>>2]-C[r+48>>2]),g=_(_(g*h)-_(p*B)),B=_(_(F*B)-_(h*d)),!o[A+1452|0]|c||(d=C[A+1444>>2],C[b+8>>2]=G*d,C[b+4>>2]=y*d,C[b>>2]=Q*d,d=C[A+1448>>2],g=_(g*d),R=_(R*d),B=_(B*d)),e=a[b+4>>2],r=f<<2,A=r+a[i+12>>2]|0,a[A>>2]=a[b>>2],a[A+4>>2]=e,a[A+8>>2]=a[b+8>>2],A=a[i+20>>2],C[A+r>>2]=-R,C[A+(u<<2)>>2]=-B,C[A+(k<<2)>>2]=-g)}function At(A){A|=0,a[A>>2]=23012,CA(A)}function et(A){return A|=0,_(C[A>>2])}function rt(A){return A|=0,_(C[A+4>>2])}function it(A){return A|=0,_(C[A+8>>2])}function ft(A){return A|=0,A+48|0}function tt(A,e){var r,i=_(0),f=0,t=0,n=_(0),o=0,b=_(0),l=0,u=0,k=_(0),v=0;r=Y-16|0,i=C[A>>2],b=C[A+20>>2],n=C[A+40>>2],k=_(_(i+b)+n),k>_(0)?(b=_(y(_(k+_(1)))),i=_(_(.5)/b),n=_(i*_(C[A+16>>2]-C[A+4>>2])),C[r+8>>2]=n,s(n),f=c(0),n=_(i*_(C[A+8>>2]-C[A+32>>2])),C[r+4>>2]=n,i=_(i*_(C[A+36>>2]-C[A+24>>2])),C[r>>2]=i,s(i),A=c(0),i=_(b*_(.5)),C[r+12>>2]=i,s(i),t=c(0),s(n),o=c(0)):(f=i<b?b<n?2:1:(i<n)<<1,o=f<<2,l=(f<<4)+A|0,t=(f+1>>>0)%3|0,u=(t<<4)+A|0,t<<=2,v=A,A=(f+2>>>0)%3|0,f=v+(A<<4)|0,A<<=2,i=_(y(_(_(_(C[o+l>>2]-C[u+t>>2])-C[f+A>>2])+_(1)))),C[(o|r)>>2]=i*_(.5),i=_(_(.5)/i),C[r+12>>2]=_(C[f+t>>2]-C[A+u>>2])*i,C[(r|t)>>2]=i*_(C[o+u>>2]+C[t+l>>2]),C[(A|r)>>2]=i*_(C[f+o>>2]+C[A+l>>2]),t=a[r+12>>2],f=a[r+8>>2],A=a[r>>2],o=a[r+4>>2]),a[e+12>>2]=t,a[e+8>>2]=f,a[e+4>>2]=o,a[e>>2]=A}function nt(A){A|=0,A&&Qt[a[a[A>>2]+4>>2]](A)}function at(A,e){A|=0,e|=0,a[A+12>>2]=e}function ot(A,e){A|=0,e=_(e),C[A+4>>2]=e}function ct(A,e){A|=0,e|=0,a[A+8>>2]=e}function bt(A){return A|=0,A+24|0}function lt(A){var e;A|=0,e=a[A+12>>2],e&&(o[A+16|0]&&CA(e),a[A+12>>2]=0),a[A+12>>2]=0,f[A+16|0]=1,a[A+4>>2]=0,a[A+8>>2]=0}function ut(A){return A|=0,A+32|0}function st(A){return A|=0,A- -64|0}function kt(A){return A|=0,0|Qt[a[a[A>>2]+36>>2]](A)}function vt(A,e){A|=0,e|=0,Qt[a[a[A>>2]+60>>2]](A,e)}function dt(A,e,r){var i=_(0),f=_(0),t=_(0),n=_(0),a=0,o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0);i=C[A+404>>2],i!=_(0)&&(t=C[e+8>>2],f=C[e+4>>2],n=C[A+408>>2],C[A+372>>2]=_(i*_(C[e>>2]*n))+C[A+372>>2],a=A+376|0,o=f,f=C[A+412>>2],C[a>>2]=_(i*_(o*f))+C[a>>2],a=A+380|0,o=i,i=C[A+416>>2],C[a>>2]=_(o*_(t*i))+C[a>>2],l=C[A+612>>2],u=C[A+364>>2],s=C[A+356>>2],k=C[A+360>>2],v=C[A+608>>2],d=C[A+348>>2],g=C[A+340>>2],B=C[A+344>>2],b=C[r+4>>2],t=_(i*C[e+8>>2]),f=_(f*C[e+4>>2]),c=C[r+8>>2],i=_(_(b*t)-_(f*c)),n=_(n*C[e>>2]),o=_(n*c),c=C[r>>2],t=_(o-_(t*c)),f=_(_(f*c)-_(n*b)),C[A+388>>2]=_(_(_(_(C[A+324>>2]*i)+_(C[A+328>>2]*t))+_(f*C[A+332>>2]))*C[A+604>>2])+C[A+388>>2],e=A+392|0,C[e>>2]=_(v*_(_(_(i*g)+_(t*B))+_(f*d)))+C[e>>2],A=A+396|0,C[A>>2]=_(l*_(_(_(i*s)+_(t*k))+_(f*u)))+C[A>>2])}function Ct(A){A|=0;var e=0;return a[A>>2]=24920,e=a[A+128>>2],e&&(o[A+132|0]&&CA(e),a[A+128>>2]=0),a[A+128>>2]=0,a[A+120>>2]=0,a[A+124>>2]=0,f[A+132|0]=1,e=a[A+108>>2],e&&(o[A+112|0]&&CA(e),a[A+108>>2]=0),a[A+108>>2]=0,a[A+100>>2]=0,a[A+104>>2]=0,f[A+112|0]=1,e=a[A+88>>2],e&&(o[A+92|0]&&CA(e),a[A+88>>2]=0),a[A+88>>2]=0,a[A+80>>2]=0,a[A+84>>2]=0,f[A+92|0]=1,e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+36>>2]=0,a[A+28>>2]=0,a[A+32>>2]=0,f[A+40|0]=1,0|A}function gt(A){A|=0;var e=0;return a[A>>2]=25144,e=a[A+120>>2],e&&(o[A+124|0]&&CA(e),a[A+120>>2]=0),a[A+120>>2]=0,a[A+112>>2]=0,a[A+116>>2]=0,f[A+124|0]=1,e=a[A+100>>2],e&&(o[A+104|0]&&CA(e),a[A+100>>2]=0),a[A+100>>2]=0,a[A+92>>2]=0,a[A+96>>2]=0,f[A+104|0]=1,e=a[A+80>>2],e&&(o[A+84|0]&&CA(e),a[A+80>>2]=0),a[A+80>>2]=0,a[A+72>>2]=0,a[A+76>>2]=0,f[A+84|0]=1,e=a[A+28>>2],e&&(o[A+32|0]&&CA(e),a[A+28>>2]=0),a[A+28>>2]=0,a[A+20>>2]=0,a[A+24>>2]=0,f[A+32|0]=1,0|A}function Bt(A,e){!function(A,e){n[0]=A,n[1]=e}(0|A,0|e)}function _t(A,e,r,i){return A=function(A,e,r,i){var f,t,n,a,o=0,c=0;return o=r>>>16,c=A>>>16,a=B(o,c),f=65535&r,t=65535&A,n=B(f,t),c=(n>>>16)+B(c,f)|0,o=(65535&c)+B(o,t)|0,A=(((B(e,r)+a|0)+B(A,i)|0)+(c>>>16)|0)+(o>>>16)|0,e=65535&n|o<<16,V=A,e}(A,e,r,i),A}function mt(A,e,r){return function(A,e,r){var i=0,f=0,t=0,n=0,a=0,o=0,c=0,b=0,l=0;A:{e:{r:{i:{f:{t:{n:{a:{o:{if(f=e,f){if(i=r,!i)break o;break a}return e=A,A=(A>>>0)/(r>>>0)|0,Bt(e-B(A,r)|0,0),V=0,A}if(!A)break n;break t}if(n=i+-1|0,!(n&i))break f;n=(R(i)+33|0)-R(f)|0,a=0-n|0;break r}return A=(f>>>0)/0|0,Bt(0,f-B(A,0)|0),V=0,A}if(i=32-R(f)|0,i>>>0<31)break i;break e}if(Bt(A&n,0),1==(0|i))break A;return i=i?31-R(i+-1^i)|0:32,r=31&i,32<=(63&i)>>>0?(f=0,A=e>>>r):(f=e>>>r,A=((1<<r)-1&e)<<32-r|A>>>r),V=f,A}n=i+1|0,a=63-i|0}if(i=e,f=63&n,t=31&f,32<=f>>>0?(f=0,t=i>>>t):(f=i>>>t,t=((1<<t)-1&i)<<32-t|A>>>t),a&=63,i=31&a,32<=a>>>0?(e=A<<i,A=0):(e=(1<<i)-1&A>>>32-i|e<<i,A<<=i),n)for(i=-1,a=r+-1|0,a>>>0<4294967295&&(i=0);o=t<<1|e>>>31,c=o,f=f<<1|t>>>31,o=i-(f+(a>>>0<o>>>0)|0)>>31,b=r&o,t=c-b|0,f=f-(c>>>0<b>>>0)|0,e=e<<1|A>>>31,A=l|A<<1,o&=1,l=o,n=n+-1|0,n;);return Bt(t,f),V=e<<1|A>>>31,o|A<<1}Bt(A,e),A=0,e=0}return V=e,A}(A,e,r)}function Rt(A){var e;return e=31&A,A=0-A&31,(-1>>>e&-2)<<e|(-1<<A&-2)>>>A}var Qt=[null,function(A){A|=0;var e=0;return A=0|W(a[A+56>>2]),e=0,A&&(a[256]=A,e=-1),0|e},function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,t=0,n=0,o=0,c=0;i=Y-16|0,Y=i,a[i+12>>2]=r,a[i+8>>2]=e,e=a[A+24>>2],a[i>>2]=e,e=a[A+20>>2]-e|0,a[i+4>>2]=e,n=2,o=e+r|0,f=N(a[A+56>>2],i,2);A:{if((0|o)!=(0|f))for(e=i;;){if((0|f)<=-1){if(a[A+24>>2]=0,a[A+16>>2]=0,a[A+20>>2]=0,a[A>>2]=32|a[A>>2],A=0,2==(0|n))break A;A=r-a[e+4>>2]|0;break A}if(t=a[e+4>>2],c=f>>>0>t>>>0,e=c?e+8|0:e,t=f-(c?t:0)|0,a[e>>2]=t+a[e>>2],a[e+4>>2]=a[e+4>>2]-t,o=o-f|0,n=n-c|0,f=N(a[A+56>>2],e,n),(0|o)==(0|f))break}e=a[A+40>>2],a[A+24>>2]=e,a[A+20>>2]=e,a[A+16>>2]=e+a[A+44>>2],A=r}return f=A,Y=i+16|0,0|f},function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,A=function(A,e,r,i){var f;return f=Y-16|0,Y=f,A=0|Z(0|A,0|e,0|r,255&i,f+8|0),A?(a[256]=76==(0|A)?70:A,r=-1,A=-1):(r=a[f+12>>2],A=a[f+8>>2]),Y=f+16|0,V=r,A}(a[A+56>>2],e,r,i),0|A},rA,iA,iA,function(A){var e;A|=0,e=Y-16|0,Y=e,a[e+12>>2]=A,A=a[e+12>>2],rA(A),$(A),Y=e+16|0},eA,eA,function(A,e,r){var i;return A|=0,e|=0,r|=0,i=Y-80|0,Y=i,a[i+72>>2]=A,a[i+68>>2]=e,a[i+64>>2]=r,e=a[i+72>>2],1&fA(e,a[i+68>>2],0)?f[i+79|0]=1:(r=i,A=a[i+68>>2],A=A?function(A){var e=0;if(e=Y-96|0,Y=e,a[e+92>>2]=A,a[e+88>>2]=5456,a[e+84>>2]=5504,a[e+80>>2]=0,a[e+76>>2]=a[a[e+92>>2]>>2],a[e+72>>2]=a[a[e+76>>2]+-8>>2],a[e+68>>2]=a[e+92>>2]+a[e+72>>2],a[e+64>>2]=a[a[e+76>>2]+-4>>2],a[e+60>>2]=0,a[e>>2]=a[e+84>>2],a[e+4>>2]=a[e+92>>2],a[e+8>>2]=a[e+88>>2],a[e+12>>2]=a[e+80>>2],a[e+16>>2]=0,a[e+20>>2]=0,a[e+24>>2]=0,a[e+28>>2]=0,a[e+32>>2]=0,a[e+36>>2]=0,a[e+40>>2]=0,a[e+44>>2]=0,a[e+48>>2]=0,f[e+52|0]=0,f[e+53|0]=0,f[e+54|0]=0,1&fA(a[e+64>>2],a[e+84>>2],0))a[e+48>>2]=1,A=a[e+64>>2],Qt[a[a[A>>2]+20>>2]](A,e,a[e+68>>2],a[e+68>>2],1,0),1==a[e+24>>2]&&(a[e+60>>2]=a[e+68>>2]);else{A=a[e+64>>2],Qt[a[a[A>>2]+24>>2]](A,e,a[e+68>>2],1,0),A=a[e+36>>2];A:if(!(A>>>0>1))if(A-1){if(1!=a[e+40>>2]|1!=a[e+28>>2]|1!=a[e+32>>2])break A;a[e+60>>2]=a[e+20>>2]}else a[e+40>>2]|1!=a[e+28>>2]|1!=a[e+32>>2]&&1!=a[e+24>>2]||(a[e+60>>2]=a[e+16>>2])}return Y=e+96|0,a[e+60>>2]}(A):0,a[r+60>>2]=A,a[i+60>>2]?(a[i>>2]=a[i+60>>2],a[i+4>>2]=0,a[i+8>>2]=e,a[i+12>>2]=-1,a[i+16>>2]=0,a[i+20>>2]=0,a[i+24>>2]=0,a[i+28>>2]=0,a[i+32>>2]=0,a[i+36>>2]=0,a[i+40>>2]=0,a[i+44>>2]=0,a[i+48>>2]=0,f[i+52|0]=0,f[i+53|0]=0,f[i+54|0]=0,a[i+48>>2]=1,A=a[i+60>>2],Qt[a[a[A>>2]+28>>2]](A,i,a[a[i+64>>2]>>2],1),1!=a[i+24>>2]?f[i+79|0]=0:(a[a[i+64>>2]>>2]=a[i+16>>2],f[i+79|0]=1)):f[i+79|0]=0),Y=i+80|0,1&f[i+79|0]},function(A,e,r,i,t,n){var o;A|=0,e|=0,r|=0,i|=0,t|=0,n|=0,o=Y-32|0,Y=o,a[o+28>>2]=A,a[o+24>>2]=e,a[o+20>>2]=r,a[o+16>>2]=i,a[o+12>>2]=t,f[o+11|0]=n,A=a[o+28>>2],1&fA(A,a[a[o+24>>2]+8>>2],1&f[o+11|0])&&oA(A,a[o+24>>2],a[o+20>>2],a[o+16>>2],a[o+12>>2]),Y=o+32|0},function(A,e,r,i,t){var n;A|=0,e|=0,r|=0,i|=0,t|=0,n=Y-32|0,Y=n,a[n+28>>2]=A,a[n+24>>2]=e,a[n+20>>2]=r,a[n+16>>2]=i,f[n+15|0]=t,A=a[n+28>>2],1&fA(A,a[a[n+24>>2]+8>>2],1&f[n+15|0])?cA(A,a[n+24>>2],a[n+20>>2],a[n+16>>2]):1&fA(A,a[a[n+24>>2]>>2],1&f[n+15|0])&&(a[n+20>>2]!=a[a[n+24>>2]+20>>2]&&a[n+20>>2]!=a[a[n+24>>2]+16>>2]?(a[a[n+24>>2]+32>>2]=a[n+16>>2],a[a[n+24>>2]+20>>2]=a[n+20>>2],A=a[n+24>>2],a[A+40>>2]=a[A+40>>2]+1,1!=a[a[n+24>>2]+36>>2]|2!=a[a[n+24>>2]+24>>2]||(f[a[n+24>>2]+54|0]=1),a[a[n+24>>2]+44>>2]=4):1==a[n+16>>2]&&(a[a[n+24>>2]+32>>2]=1)),Y=n+32|0},function(A,e,r,i){var f;A|=0,e|=0,r|=0,i|=0,f=Y-16|0,Y=f,a[f+12>>2]=A,a[f+8>>2]=e,a[f+4>>2]=r,a[f>>2]=i,A=a[f+12>>2],1&fA(A,a[a[f+8>>2]+8>>2],0)&&nA(A,a[f+8>>2],a[f+4>>2],a[f>>2]),Y=f+16|0},function(A){var e;A|=0,e=Y-16|0,Y=e,a[e+12>>2]=A,A=a[e+12>>2],iA(A),$(A),Y=e+16|0},function(A,e,r,i,t,n){var o;A|=0,e|=0,r|=0,i|=0,t|=0,n|=0,o=Y-32|0,Y=o,a[o+28>>2]=A,a[o+24>>2]=e,a[o+20>>2]=r,a[o+16>>2]=i,a[o+12>>2]=t,f[o+11|0]=n,A=a[o+28>>2],1&fA(A,a[a[o+24>>2]+8>>2],1&f[o+11|0])?oA(A,a[o+24>>2],a[o+20>>2],a[o+16>>2],a[o+12>>2]):(A=a[A+8>>2],Qt[a[a[A>>2]+20>>2]](A,a[o+24>>2],a[o+20>>2],a[o+16>>2],a[o+12>>2],1&f[o+11|0])),Y=o+32|0},function(A,e,r,i,t){var n;if(A|=0,e|=0,r|=0,i|=0,t|=0,n=Y-32|0,Y=n,a[n+28>>2]=A,a[n+24>>2]=e,a[n+20>>2]=r,a[n+16>>2]=i,f[n+15|0]=t,A=a[n+28>>2],1&fA(A,a[a[n+24>>2]+8>>2],1&f[n+15|0]))cA(A,a[n+24>>2],a[n+20>>2],a[n+16>>2]);else A:if(1&fA(A,a[a[n+24>>2]>>2],1&f[n+15|0])){if(a[n+20>>2]==a[a[n+24>>2]+20>>2]||a[n+20>>2]==a[a[n+24>>2]+16>>2]){1==a[n+16>>2]&&(a[a[n+24>>2]+32>>2]=1);break A}a[a[n+24>>2]+32>>2]=a[n+16>>2],f[n+14|0]=0,4!=a[a[n+24>>2]+44>>2]&&(f[n+13|0]=0,f[a[n+24>>2]+52|0]=0,f[a[n+24>>2]+53|0]=0,A=a[A+8>>2],Qt[a[a[A>>2]+20>>2]](A,a[n+24>>2],a[n+20>>2],a[n+20>>2],1,1&f[n+15|0]),1&f[a[n+24>>2]+53|0]&&(f[n+13|0]=1,1&f[a[n+24>>2]+52|0]&&(f[n+14|0]=1)),1&f[n+13|0]?a[a[n+24>>2]+44>>2]=3:a[a[n+24>>2]+44>>2]=4),1&f[n+14|0]||(a[a[n+24>>2]+20>>2]=a[n+20>>2],A=a[n+24>>2],a[A+40>>2]=a[A+40>>2]+1,1!=a[a[n+24>>2]+36>>2]|2!=a[a[n+24>>2]+24>>2]||(f[a[n+24>>2]+54|0]=1))}else A=a[A+8>>2],Qt[a[a[A>>2]+24>>2]](A,a[n+24>>2],a[n+20>>2],a[n+16>>2],1&f[n+15|0]);Y=n+32|0},function(A,e,r,i){var f;A|=0,e|=0,r|=0,i|=0,f=Y-16|0,Y=f,a[f+12>>2]=A,a[f+8>>2]=e,a[f+4>>2]=r,a[f>>2]=i,A=a[f+12>>2],1&fA(A,a[a[f+8>>2]+8>>2],0)?nA(A,a[f+8>>2],a[f+4>>2],a[f>>2]):(A=a[A+8>>2],Qt[a[a[A>>2]+28>>2]](A,a[f+8>>2],a[f+4>>2],a[f>>2])),Y=f+16|0},function(A){var e;A|=0,e=Y-16|0,Y=e,a[e+12>>2]=A,A=a[e+12>>2],iA(A),$(A),Y=e+16|0},function(A,e,r,i,t,n){var o;if(A|=0,e|=0,r|=0,i|=0,t|=0,n|=0,o=Y-32|0,Y=o,a[o+28>>2]=A,a[o+24>>2]=e,a[o+20>>2]=r,a[o+16>>2]=i,a[o+12>>2]=t,f[o+11|0]=n,A=a[o+28>>2],1&fA(A,a[a[o+24>>2]+8>>2],1&f[o+11|0]))oA(A,a[o+24>>2],a[o+20>>2],a[o+16>>2],a[o+12>>2]);else{if(f[o+10|0]=1&f[a[o+24>>2]+52|0],f[o+9|0]=1&f[a[o+24>>2]+53|0],a[o+4>>2]=(A+16|0)+(a[A+12>>2]<<3),a[o>>2]=A+16,f[a[o+24>>2]+52|0]=0,f[a[o+24>>2]+53|0]=0,bA(a[o>>2],a[o+24>>2],a[o+20>>2],a[o+16>>2],a[o+12>>2],1&f[o+11|0]),f[o+10|0]=0!=(1&f[o+10|0]|1&f[a[o+24>>2]+52|0]),f[o+9|0]=0!=(1&f[o+9|0]|1&f[a[o+24>>2]+53|0]),e=a[o>>2]+8|0,a[o>>2]=e,e>>>0<d[o+4>>2])for(;;){A:if(!(1&f[a[o+24>>2]+54|0])){if(1&f[a[o+24>>2]+52|0]){if(!(2&a[A+8>>2])|1==a[a[o+24>>2]+24>>2])break A}else if(!(1&a[A+8>>2])&&1&f[a[o+24>>2]+53|0])break A;if(f[a[o+24>>2]+52|0]=0,f[a[o+24>>2]+53|0]=0,bA(a[o>>2],a[o+24>>2],a[o+20>>2],a[o+16>>2],a[o+12>>2],1&f[o+11|0]),f[o+10|0]=0!=(1&f[o+10|0]|1&f[a[o+24>>2]+52|0]),f[o+9|0]=0!=(1&f[o+9|0]|1&f[a[o+24>>2]+53|0]),e=a[o>>2]+8|0,a[o>>2]=e,e>>>0<d[o+4>>2])continue}break}f[a[o+24>>2]+52|0]=1&f[o+10|0],f[a[o+24>>2]+53|0]=1&f[o+9|0]}Y=o+32|0},function(A,e,r,i,t){var n;if(A|=0,e|=0,r|=0,i|=0,t|=0,n=Y-48|0,Y=n,a[n+44>>2]=A,a[n+40>>2]=e,a[n+36>>2]=r,a[n+32>>2]=i,f[n+31|0]=t,A=a[n+44>>2],1&fA(A,a[a[n+40>>2]+8>>2],1&f[n+31|0]))cA(A,a[n+40>>2],a[n+36>>2],a[n+32>>2]);else A:if(1&fA(A,a[a[n+40>>2]>>2],1&f[n+31|0])){if(a[n+36>>2]==a[a[n+40>>2]+20>>2]||a[n+36>>2]==a[a[n+40>>2]+16>>2]){1==a[n+32>>2]&&(a[a[n+40>>2]+32>>2]=1);break A}if(a[a[n+40>>2]+32>>2]=a[n+32>>2],f[n+30|0]=0,4!=a[a[n+40>>2]+44>>2]){for(f[n+29|0]=0,a[n+24>>2]=(A+16|0)+(a[A+12>>2]<<3),a[n+20>>2]=A+16;;){e:if(!(d[n+20>>2]>=d[n+24>>2]||(f[a[n+40>>2]+52|0]=0,f[a[n+40>>2]+53|0]=0,bA(a[n+20>>2],a[n+40>>2],a[n+36>>2],a[n+36>>2],1,1&f[n+31|0]),1&f[a[n+40>>2]+54|0]))){if(1&f[a[n+40>>2]+53|0])if(f[n+29|0]=1,1&f[a[n+40>>2]+52|0]){if(f[n+30|0]=1,!(2&a[A+8>>2])|1==a[a[n+40>>2]+24>>2])break e}else if(!(1&a[A+8>>2]))break e;a[n+20>>2]=a[n+20>>2]+8;continue}break}1&f[n+29|0]?a[a[n+40>>2]+44>>2]=3:a[a[n+40>>2]+44>>2]=4}1&f[n+30|0]||(a[a[n+40>>2]+20>>2]=a[n+36>>2],A=a[n+40>>2],a[A+40>>2]=a[A+40>>2]+1,1!=a[a[n+40>>2]+36>>2]|2!=a[a[n+40>>2]+24>>2]||(f[a[n+40>>2]+54|0]=1))}else if(a[n+16>>2]=(A+16|0)+(a[A+12>>2]<<3),a[n+12>>2]=A+16,lA(a[n+12>>2],a[n+40>>2],a[n+36>>2],a[n+32>>2],1&f[n+31|0]),e=a[n+12>>2]+8|0,a[n+12>>2]=e,e>>>0<d[n+16>>2])if(1==a[a[n+40>>2]+36>>2]||2&a[A+8>>2])for(;!(1&f[a[n+40>>2]+54|0])&&(lA(a[n+12>>2],a[n+40>>2],a[n+36>>2],a[n+32>>2],1&f[n+31|0]),A=a[n+12>>2]+8|0,a[n+12>>2]=A,A>>>0<d[n+16>>2]););else if(1&a[A+8>>2])for(;!(!!(1&f[a[n+40>>2]+54|0])|!(1!=a[a[n+40>>2]+36>>2]|1!=a[a[n+40>>2]+24>>2]))&&(lA(a[n+12>>2],a[n+40>>2],a[n+36>>2],a[n+32>>2],1&f[n+31|0]),A=a[n+12>>2]+8|0,a[n+12>>2]=A,A>>>0<d[n+16>>2]););else for(;!(!!(1&f[a[n+40>>2]+54|0])|1==a[a[n+40>>2]+36>>2])&&(lA(a[n+12>>2],a[n+40>>2],a[n+36>>2],a[n+32>>2],1&f[n+31|0]),A=a[n+12>>2]+8|0,a[n+12>>2]=A,A>>>0<d[n+16>>2]););Y=n+48|0},function(A,e,r,i){var t;if(A|=0,e|=0,r|=0,i|=0,t=Y-32|0,Y=t,a[t+28>>2]=A,a[t+24>>2]=e,a[t+20>>2]=r,a[t+16>>2]=i,A=a[t+28>>2],1&fA(A,a[a[t+24>>2]+8>>2],0))nA(A,a[t+24>>2],a[t+20>>2],a[t+16>>2]);else if(a[t+12>>2]=(A+16|0)+(a[A+12>>2]<<3),a[t+8>>2]=A+16,aA(a[t+8>>2],a[t+24>>2],a[t+20>>2],a[t+16>>2]),A=a[t+8>>2]+8|0,a[t+8>>2]=A,A>>>0<d[t+12>>2])for(;aA(a[t+8>>2],a[t+24>>2],a[t+20>>2],a[t+16>>2]),!(1&f[a[t+24>>2]+54|0])&&(A=a[t+8>>2]+8|0,a[t+8>>2]=A,A>>>0<d[t+12>>2]););Y=t+32|0},sA,kA,function(){z(),p()},sA,kA,function(A,e){A|=0,e|=0;var r=0;return A=0|Qt[a[742]](3+(A+e|0)|0),A&&(r=3+(A+e|0)&0-e,a[r+-4>>2]=A),0|r},function(A){A|=0,A&&Qt[a[743]](a[A+-4>>2])},function(A){return A|=0,0|K(A)},function(A){A|=0,L(A)},sA,kA,function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0);i=Y-96|0,Y=i,f=i+44|0,a[f>>2]=0,a[f+4>>2]=0,f=i+56|0,a[f>>2]=0,a[f+4>>2]=0,a[i+52>>2]=1065353216,f=i+76|0,a[f>>2]=0,a[f+4>>2]=0,a[i+72>>2]=1065353216,f=i+84|0,a[f>>2]=0,a[f+4>>2]=0,a[i+92>>2]=0,a[i+36>>2]=0,a[i+40>>2]=0,a[i+32>>2]=1065353216,a[i+64>>2]=0,a[i+68>>2]=0,Qt[a[a[A>>2]+8>>2]](A,i+32|0,i+16|0,i),c=C[i>>2],b=C[i+16>>2],t=_(c-b),o=_(t*t),t=C[i+4>>2],l=C[i+20>>2],n=_(t-l),s=_(o+_(n*n)),n=C[i+8>>2],o=C[i+24>>2],u=_(n-o),C[r>>2]=_(y(_(s+_(u*u))))*_(.5),a[e+12>>2]=0,C[e+8>>2]=_(n+o)*_(.5),C[e+4>>2]=_(t+l)*_(.5),C[e>>2]=_(c+b)*_(.5),Y=i+96|0},function(A){A|=0;var e,r=_(0),i=_(0);return e=Y-32|0,Y=e,Qt[a[a[A>>2]+12>>2]](A,e+16|0,e+12|0),Y=e+32|0,r=C[e+16>>2],i=_(r*r),r=C[e+20>>2],i=_(i+_(r*r)),r=C[e+24>>2],_(_(C[e+12>>2]+_(y(_(i+_(r*r))))))},function(A,e){return A|=0,e=_(e),_(_(_(Qt[a[a[A>>2]+16>>2]](A))*e))},function(A,e){A|=0,a[A+8>>2]=1065353216,a[A+12>>2]=0,a[A>>2]=1065353216,a[A+4>>2]=1065353216},yA,QA,function(A,e){A|=0,e|=0;var r,i=0,f=0,t=0,n=0,o=0;t=e,n=0|Qt[a[a[A>>2]+52>>2]](A),o=1,f=a[a[e>>2]+16>>2],i=0|Qt[f](0|t,0|n,0|o),o=e,n=i,t=0|Qt[a[a[A>>2]+56>>2]](A,a[i+8>>2],e),r=A,f=a[a[e>>2]+20>>2],Qt[f](0|o,0|n,0|t,1346455635,0|r)},function(A,e,r,i,f,t,n){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0,n|=0;var o,c,b,l,u,s,k,v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0);o=Y-48|0,Y=o,a[o+44>>2]=0,v=C[r>>2],d=C[r+4>>2],g=C[r+8>>2],C[o+32>>2]=_(_(C[e>>2]*v)+_(C[e+16>>2]*d))+_(C[e+32>>2]*g),c=e+24|0,b=e+40|0,C[o+40>>2]=_(_(v*C[e+8>>2])+_(d*C[c>>2]))+_(g*C[b>>2]),l=e+20|0,u=e+36|0,C[o+36>>2]=_(_(v*C[e+4>>2])+_(d*C[l>>2]))+_(g*C[u>>2]),Qt[a[a[A>>2]+64>>2]](o+16|0,A,o+32|0),s=e+56|0,G=C[s>>2],y=C[b>>2],p=C[u>>2],k=e+52|0,Q=C[k>>2],F=C[c>>2],W=C[l>>2],w=C[e+32>>2],h=C[e+48>>2],D=C[e+8>>2],E=C[e>>2],Z=C[e+4>>2],V=C[e+16>>2],v=C[o+24>>2],d=C[o+16>>2],g=C[o+20>>2],a[o+12>>2]=0,C[o+8>>2]=-C[o+40>>2],C[o+4>>2]=-C[o+36>>2],C[o>>2]=-C[o+32>>2],Qt[a[a[A>>2]+64>>2]](o+16|0,A,o),N=C[s>>2],I=C[b>>2],J=C[u>>2],x=C[k>>2],U=C[c>>2],M=C[l>>2],S=C[e+32>>2],X=C[e+48>>2],T=C[e+8>>2],j=C[e>>2],O=C[e+4>>2],H=C[e+16>>2],B=C[o+24>>2],m=C[o+16>>2],R=C[o+20>>2],h=_(h+_(_(_(d*E)+_(g*Z))+_(v*D))),Q=_(Q+_(_(_(d*V)+_(g*W))+_(v*F))),v=_(G+_(_(_(d*w)+_(g*p))+_(v*y))),C[i>>2]=_(_(h*C[r>>2])+_(Q*C[r+4>>2]))+_(v*C[r+8>>2]),d=_(X+_(_(_(m*j)+_(R*O))+_(B*T))),g=_(x+_(_(_(m*H)+_(R*M))+_(B*U))),B=_(N+_(_(_(m*S)+_(R*J))+_(B*I))),C[f>>2]=_(_(d*C[r>>2])+_(g*C[r+4>>2]))+_(B*C[r+8>>2]),a[n+12>>2]=0,C[n+8>>2]=B,C[n+4>>2]=g,C[n>>2]=d,a[t+12>>2]=0,C[t+8>>2]=v,C[t+4>>2]=Q,C[t>>2]=h,m=C[i>>2],R=C[f>>2],m>R&&(C[i>>2]=R,C[f>>2]=m,a[n+12>>2]=0,C[n+8>>2]=v,C[n+4>>2]=Q,C[n>>2]=h,a[t+12>>2]=0,C[t+8>>2]=B,C[t+4>>2]=g,C[t>>2]=d),Y=o+48|0},pA,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0);f=Y-16|0,a[f+12>>2]=0,t=A+32|0,A=a[A+56>>2],o=C[t+((A+2|0)%3<<2)>>2],C[f+8>>2]=o,C[f+4>>2]=o,C[f>>2]=o,A<<=2,C[A+f>>2]=o+C[A+t>>2],o=C[e+56>>2],v=C[e+40>>2],d=C[e+36>>2],s=C[e+52>>2],l=C[e+24>>2],g=C[e+20>>2],B=C[e+32>>2],R=C[e+16>>2],k=C[e+48>>2],c=C[e+8>>2],n=C[e>>2],b=C[e+4>>2],a[r+12>>2]=0,u=_(m(n)),n=C[f>>2],Q=_(m(b)),b=C[f+4>>2],h=_(m(c)),c=C[f+8>>2],u=_(_(_(u*n)+_(Q*b))+_(h*c)),C[r>>2]=k-u,l=_(_(_(n*_(m(R)))+_(b*_(m(g))))+_(c*_(m(l)))),C[r+4>>2]=s-l,n=_(_(_(n*_(m(B)))+_(b*_(m(d))))+_(c*_(m(v)))),C[r+8>>2]=o-n,C[i>>2]=k+u,C[i+4>>2]=s+l,C[i+8>>2]=o+n,a[i+12>>2]=0},function(A,e){A|=0,e|=0;var r,i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0);f=C[A+20>>2],r=A+36|0,t=C[r>>2],n=C[A+24>>2],i=A+40|0,o=C[i>>2],c=C[A+16>>2],b=C[A+32>>2],EA(A,e),l=C[e>>2],u=C[e+4>>2],s=C[e+8>>2],a[A+44>>2]=0,C[i>>2]=s*_(o/n),C[r>>2]=u*_(t/f),C[A+32>>2]=l*_(b/c),a[A+48>>2]=a[(A+32|0)+((a[A+56>>2]+2|0)%3<<2)>>2]},Qe,function(A,e,r){A|=0,e=_(e),r|=0;var i,f=_(0),t=_(0),n=0,o=0,c=_(0);i=A+32|0,o=a[A+56>>2],n=a[i+((o+2|0)%3<<2)>>2],A=Y-16|0,a[A+12>>2]=0,a[A+8>>2]=n,a[A+4>>2]=n,a[A>>2]=n,n=o<<2,o=n+A|0,C[o>>2]=C[n+i>>2]+C[o>>2],e=_(e*_(.0833333283662796)),f=C[A>>2],f=_(f+f),f=_(f*f),t=C[A+4>>2],t=_(t+t),t=_(t*t),C[r+8>>2]=e*_(f+t),c=f,f=C[A+8>>2],f=_(f+f),f=_(f*f),C[r+4>>2]=e*_(c+f),C[r>>2]=e*_(t+f)},function(A){return 6444},FA,WA,function(A){return A|=0,_(C[A+48>>2])},wA,function(A,e,r){return A|=0,e|=0,r|=0,QA(A,e,r),a[e+28>>2]=a[A+32>>2],a[e+32>>2]=a[A+36>>2],a[e+36>>2]=a[A+40>>2],a[e+40>>2]=a[A+44>>2],a[e+12>>2]=a[A+16>>2],a[e+16>>2]=a[A+20>>2],a[e+20>>2]=a[A+24>>2],a[e+24>>2]=a[A+28>>2],a[e+48>>2]=0,a[e+44>>2]=a[A+48>>2],A=a[A+56>>2],a[e+56>>2]=0,a[e+52>>2]=A,6457},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0);Qt[a[a[e>>2]+68>>2]](A,e,r),_(Qt[a[a[e>>2]+48>>2]](e))!=_(0)&&(f=C[r+4>>2],i=C[r>>2],t=C[r+8>>2],n=_(Qt[a[a[e>>2]+48>>2]](e)),e=_(_(_(i*i)+_(f*f))+_(t*t))<_(1.4210854715202004e-14),i=e?_(-1):i,o=i,t=e?_(-1):t,f=e?_(-1):f,i=_(_(1)/_(y(_(_(t*t)+_(_(i*i)+_(f*f)))))),C[A>>2]=C[A>>2]+_(n*_(o*i)),C[A+4>>2]=C[A+4>>2]+_(n*_(f*i)),C[A+8>>2]=C[A+8>>2]+_(n*_(t*i)))},function(A,e,r){A|=0,e|=0,r|=0;var i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=0,l=_(0),u=_(0),s=_(0),k=_(0);i=Y-16|0,a[A>>2]=0,a[A+4>>2]=0,b=A+8|0,a[b>>2]=0,a[b+4>>2]=0,o=C[r>>2],n=C[r+4>>2],t=C[r+8>>2],f=_(_(_(o*o)+_(n*n))+_(t*t)),f<_(9999999747378752e-20)?(t=_(0),f=_(1)):(f=_(_(1)/_(y(f))),l=_(t*f),t=_(n*f),f=_(o*f)),a[i+8>>2]=0,a[i+12>>2]=0,a[i>>2]=0,a[i+4>>2]=0,r=a[e+56>>2]<<2,b=r+i|0,c=C[32+(e+r|0)>>2],C[b>>2]=c,o=_(-0xde0b6b000000000),u=C[i>>2],s=C[i+4>>2],k=C[i+8>>2],n=_(_(_(f*u)+_(t*s))+_(l*k)),n>_(-0xde0b6b000000000)&&(a[A+12>>2]=a[i+12>>2],C[A+8>>2]=k,C[A+4>>2]=s,C[A>>2]=u,o=n),a[i+8>>2]=0,a[i+12>>2]=0,a[i>>2]=0,a[i+4>>2]=0,C[b>>2]=-c,n=C[i>>2],c=t,t=C[i+4>>2],c=_(_(f*n)+_(c*t)),f=C[i+8>>2],_(c+_(l*f))>o&&(a[A+12>>2]=a[i+12>>2],C[A+8>>2]=f,C[A+4>>2]=t,C[A>>2]=n)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=0,n=0,o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=0,k=0,v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=0;if(f=Y-16|0,(0|i)>=1)for(;t=f+8|0,a[t>>2]=0,a[t+4>>2]=0,a[f>>2]=0,a[f+4>>2]=0,o=a[A+56>>2],n=o<<2,s=n+f|0,n=32+(A+n|0)|0,b=C[n>>2],a[s>>2]=a[n>>2],d=_(-0xde0b6b000000000),g=C[f>>2],n=e+k|0,c=C[n>>2],B=C[f+4>>2],s=n+4|0,l=C[s>>2],m=C[t>>2],R=n+8|0,v=C[R>>2],u=_(_(_(g*c)+_(B*l))+_(m*v)),u>_(-0xde0b6b000000000)&&(o=r+k|0,C[o>>2]=g,a[o+12>>2]=a[f+12>>2],C[o+8>>2]=m,C[o+4>>2]=B,v=C[R>>2],l=C[s>>2],o=a[A+56>>2],b=C[32+((o<<2)+A|0)>>2],c=C[n>>2],d=u),a[t>>2]=0,a[t+4>>2]=0,a[f>>2]=0,a[f+4>>2]=0,C[(o<<2)+f>>2]=-b,b=C[f>>2],u=C[f+4>>2],l=_(_(b*c)+_(u*l)),c=C[t>>2],_(l+_(c*v))>d&&(t=r+k|0,C[t>>2]=b,a[t+12>>2]=a[f+12>>2],C[t+8>>2]=c,C[t+4>>2]=u),k=k+16|0,i=i+-1|0,i;);},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t,n=_(0),o=_(0),c=_(0),b=0,l=0,u=_(0);for(f=Y-80|0,Y=f,u=_(Qt[a[a[A>>2]+48>>2]](A)),t=f+72|0;a[t>>2]=0,a[t+4>>2]=0,a[f+64>>2]=0,a[f+68>>2]=0,l=(f- -64|0)+b|0,a[l>>2]=1065353216,a[f+44>>2]=0,n=C[f+64>>2],o=C[f+68>>2],c=C[t>>2],C[f+40>>2]=_(_(n*C[e+8>>2])+_(o*C[e+24>>2]))+_(c*C[e+40>>2]),C[f+36>>2]=_(_(n*C[e+4>>2])+_(o*C[e+20>>2]))+_(c*C[e+36>>2]),C[f+32>>2]=_(_(n*C[e>>2])+_(o*C[e+16>>2]))+_(c*C[e+32>>2]),Qt[a[a[A>>2]+64>>2]](f+48|0,A,f+32|0),a[f+44>>2]=0,n=C[f+48>>2],o=C[f+52>>2],c=C[f+56>>2],C[f+40>>2]=_(_(_(n*C[e+32>>2])+_(o*C[e+36>>2]))+_(c*C[e+40>>2]))+C[e+56>>2],C[f+36>>2]=_(_(_(n*C[e+16>>2])+_(o*C[e+20>>2]))+_(c*C[e+24>>2]))+C[e+52>>2],C[f+32>>2]=_(_(_(n*C[e>>2])+_(o*C[e+4>>2]))+_(c*C[e+8>>2]))+C[e+48>>2],a[l>>2]=-1082130432,l=(f+32|0)+b|0,C[i+b>>2]=u+C[l>>2],a[f+12>>2]=0,n=C[f+64>>2],o=C[f+68>>2],c=C[t>>2],C[f+8>>2]=_(_(n*C[e+8>>2])+_(o*C[e+24>>2]))+_(c*C[e+40>>2]),C[f+4>>2]=_(_(n*C[e+4>>2])+_(o*C[e+20>>2]))+_(c*C[e+36>>2]),C[f>>2]=_(_(n*C[e>>2])+_(o*C[e+16>>2]))+_(c*C[e+32>>2]),Qt[a[a[A>>2]+64>>2]](f+16|0,A,f),a[f+44>>2]=0,n=C[f+16>>2],o=C[f+20>>2],c=C[f+24>>2],C[f+40>>2]=_(_(_(n*C[e+32>>2])+_(o*C[e+36>>2]))+_(c*C[e+40>>2]))+C[e+56>>2],C[f+36>>2]=_(_(_(n*C[e+16>>2])+_(o*C[e+20>>2]))+_(c*C[e+24>>2]))+C[e+52>>2],C[f+32>>2]=_(_(_(n*C[e>>2])+_(o*C[e+4>>2]))+_(c*C[e+8>>2]))+C[e+48>>2],C[r+b>>2]=C[l>>2]-u,b=b+4|0,12!=(0|b););Y=f+80|0},we,De,pA,function(A){return 6476},pA,function(A){return 6485},pA,$A,function(A,e){A|=0,e|=0;var r,i=0,f=_(0),t=_(0);i=a[A+72>>2]<<2,r=A+16|0,t=_(C[A+64>>2]*_(C[i+e>>2]/C[i+r>>2])),C[A+64>>2]=t,i=a[A+68>>2]<<2,f=_(C[i+e>>2]/C[i+r>>2]),i=a[A+76>>2]<<2,f=_(C[A+60>>2]*_(_(f+_(C[i+e>>2]/C[i+r>>2]))*_(.5))),C[A+60>>2]=f,C[A+56>>2]=f/_(y(_(_(t*t)+_(f*f)))),EA(A,e)},function(A,e,r){A|=0,e=_(e),r|=0;var i,f=_(0),t=0,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0);i=Y-96|0,Y=i,t=i+44|0,a[t>>2]=0,a[t+4>>2]=0,t=i+56|0,a[t>>2]=0,a[t+4>>2]=0,a[i+52>>2]=1065353216,t=i+76|0,a[t>>2]=0,a[t+4>>2]=0,a[i+72>>2]=1065353216,t=i+84|0,a[t>>2]=0,a[t+4>>2]=0,a[i+92>>2]=0,a[i+36>>2]=0,a[i+40>>2]=0,a[i+32>>2]=1065353216,a[i+64>>2]=0,a[i+68>>2]=0,Qt[a[a[A>>2]+8>>2]](A,i+32|0,i+16|0,i),c=C[i+24>>2],b=C[i+8>>2],n=C[i+16>>2],o=C[i>>2],l=C[i+20>>2],u=C[i+4>>2],f=_(Qt[a[a[A>>2]+48>>2]](A)),a[r+12>>2]=0,e=_(e*_(.0833333283662796)),n=_(f+_(_(o-n)*_(.5))),n=_(n+n),n=_(n*n),o=_(f+_(_(u-l)*_(.5))),o=_(o+o),o=_(o*o),C[r+8>>2]=e*_(n+o),f=_(f+_(_(b-c)*_(.5))),f=_(f+f),f=_(f*f),C[r+4>>2]=e*_(n+f),C[r>>2]=e*_(o+f),Y=i+96|0},function(A){return 6880},function(A,e){A|=0,a[A+8>>2]=0,a[A+12>>2]=0,a[A>>2]=0,a[A+4>>2]=1065353216},Ge,wA,function(A,e,r){return A|=0,e|=0,r|=0,QA(A,e,r),a[e+28>>2]=a[A+32>>2],a[e+32>>2]=a[A+36>>2],a[e+36>>2]=a[A+40>>2],a[e+40>>2]=a[A+44>>2],a[e+12>>2]=a[A+16>>2],a[e+16>>2]=a[A+20>>2],a[e+20>>2]=a[A+24>>2],a[e+24>>2]=a[A+28>>2],a[e+48>>2]=0,a[e+44>>2]=a[A+48>>2],A=a[A+72>>2],a[e+56>>2]=0,a[e+52>>2]=A,6885},function(A,e,r){A|=0,e|=0,r|=0;var i,f,t=_(0),n=_(0),o=_(0),c=_(0),b=0,l=_(0);n=_(C[e+64>>2]*_(.5)),i=a[e+68>>2],f=a[e+72>>2],b=f<<2,t=C[r>>2],c=_(t*t),t=C[r+4>>2],c=_(c+_(t*t)),t=C[r+8>>2];A:{if(C[b+r>>2]>_(C[e+56>>2]*_(y(_(c+_(t*t))))))a[(i<<2)+A>>2]=0,C[A+b>>2]=n,b=a[e+76>>2];else{if(t=C[(i<<2)+r>>2],b=a[e+76>>2],o=C[(b<<2)+r>>2],l=_(y(_(_(t*t)+_(o*o)))),l>_(1.1920928955078125e-7)){c=t,t=_(C[e+60>>2]/l),C[(i<<2)+A>>2]=c*t,C[(f<<2)+A>>2]=-n,n=_(o*t);break A}a[(i<<2)+A>>2]=0,C[(f<<2)+A>>2]=-n}n=_(0)}C[(b<<2)+A>>2]=n,_(Qt[a[a[e>>2]+48>>2]](e))!=_(0)&&(n=C[r+4>>2],t=C[r>>2],o=C[r+8>>2],l=_(Qt[a[a[e>>2]+48>>2]](e)),e=_(_(_(t*t)+_(n*n))+_(o*o))<_(1.4210854715202004e-14),t=e?_(-1):t,c=t,o=e?_(-1):o,n=e?_(-1):n,t=_(_(1)/_(y(_(_(o*o)+_(_(t*t)+_(n*n)))))),C[A>>2]=C[A>>2]+_(l*_(c*t)),C[A+4>>2]=C[A+4>>2]+_(l*_(n*t)),C[A+8>>2]=C[A+8>>2]+_(l*_(o*t)))},function(A,e,r){A|=0,e|=0,r|=0;var i,f,t=_(0),n=_(0),o=_(0),c=0,b=_(0),l=_(0);n=_(C[e+64>>2]*_(.5)),i=a[e+68>>2],f=a[e+72>>2],c=f<<2,t=C[r>>2],o=_(t*t),t=C[r+4>>2],o=_(o+_(t*t)),t=C[r+8>>2];A:{if(C[c+r>>2]>_(C[e+56>>2]*_(y(_(o+_(t*t))))))a[(i<<2)+A>>2]=0,C[A+c>>2]=n,r=a[e+76>>2];else{if(t=C[(i<<2)+r>>2],c=r,r=a[e+76>>2],b=C[c+(r<<2)>>2],l=_(y(_(_(t*t)+_(b*b)))),l>_(1.1920928955078125e-7)){o=t,t=_(C[e+60>>2]/l),C[(i<<2)+A>>2]=o*t,C[(f<<2)+A>>2]=-n,n=_(b*t);break A}a[(i<<2)+A>>2]=0,C[(f<<2)+A>>2]=-n}n=_(0)}C[(r<<2)+A>>2]=n},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=_(0),n=0,o=0,c=_(0),b=_(0),l=0,u=_(0),s=_(0);if(f=Y-16|0,(0|i)>=1)for(;;){c=_(C[A+64>>2]*_(.5)),n=a[A+68>>2],o=a[A+72>>2]<<2,t=C[e>>2],b=_(t*t),t=C[e+4>>2],b=_(b+_(t*t)),t=C[e+8>>2];A:{if(C[o+e>>2]>_(C[A+56>>2]*_(y(_(b+_(t*t))))))a[(n<<2)+f>>2]=0,C[f+o>>2]=c,n=a[A+76>>2];else{if(l=n<<2,t=C[l+e>>2],n=a[A+76>>2],u=C[(n<<2)+e>>2],s=_(y(_(_(t*t)+_(u*u)))),s>_(1.1920928955078125e-7)){b=t,t=_(C[A+60>>2]/s),C[f+l>>2]=b*t,C[f+o>>2]=-c,c=_(u*t);break A}a[f+l>>2]=0,C[f+o>>2]=-c}c=_(0)}if(C[(n<<2)+f>>2]=c,n=f+8|0,l=a[n+4>>2],o=r+8|0,a[o>>2]=a[n>>2],a[o+4>>2]=l,o=a[f+4>>2],a[r>>2]=a[f>>2],a[r+4>>2]=o,e=e+16|0,r=r+16|0,i=i+-1|0,!i)break}},pA,function(A){return 6901},function(A,e){A|=0,a[A+8>>2]=1065353216,a[A+12>>2]=0,a[A>>2]=0,a[A+4>>2]=0},pA,function(A){return 6907},function(A,e){A|=0,a[A+8>>2]=0,a[A+12>>2]=0,a[A>>2]=1065353216,a[A+4>>2]=0},kA,EA,ye,function(A,e,r){return A|=0,e|=0,r|=0,QA(A,e,r),a[e+28>>2]=a[A+32>>2],a[e+32>>2]=a[A+36>>2],a[e+36>>2]=a[A+40>>2],a[e+40>>2]=a[A+44>>2],a[e+12>>2]=a[A+16>>2],a[e+16>>2]=a[A+20>>2],a[e+20>>2]=a[A+24>>2],a[e+24>>2]=a[A+28>>2],a[e+48>>2]=0,a[e+44>>2]=a[A+48>>2],8329},ZA,function(A){A|=0,CA(ZA(A))},Ae,kA,function(A,e,r){A|=0,e=_(e),r|=0;var i,f=_(0),t=0,n=_(0),o=_(0);i=Y-96|0,Y=i,f=_(Qt[a[a[A>>2]+48>>2]](A)),t=i+44|0,a[t>>2]=0,a[t+4>>2]=0,t=i+56|0,a[t>>2]=0,a[t+4>>2]=0,a[i+52>>2]=1065353216,t=i+76|0,a[t>>2]=0,a[t+4>>2]=0,a[i+72>>2]=1065353216,t=i+84|0,a[t>>2]=0,a[t+4>>2]=0,a[i+92>>2]=0,a[i+36>>2]=0,a[i+40>>2]=0,a[i+32>>2]=1065353216,a[i+64>>2]=0,a[i+68>>2]=0,Qt[a[a[A>>2]+8>>2]](A,i+32|0,i+16|0,i),a[r+12>>2]=0,e=_(e*_(.0833333283662796)),n=_(f+_(_(C[i>>2]-C[i+16>>2])*_(.5))),n=_(n+n),n=_(n*n),o=_(f+_(_(C[i+4>>2]-C[i+20>>2])*_(.5))),o=_(o+o),o=_(o*o),C[r+8>>2]=e*_(n+o),f=_(f+_(_(C[i+8>>2]-C[i+24>>2])*_(.5))),f=_(f+f),f=_(f*f),C[r+4>>2]=e*_(n+f),C[r>>2]=e*_(o+f),Y=i+96|0},function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,t=_(0),n=_(0),o=0,c=_(0),b=_(0),l=0,u=0,s=0,k=_(0),v=_(0);if(i=Y-2048|0,Y=i,a[A>>2]=0,a[A+4>>2]=0,f=A+8|0,a[f>>2]=0,a[f+4>>2]=0,c=C[r>>2],b=C[r+4>>2],t=C[r+8>>2],n=_(_(_(c*c)+_(b*b))+_(t*t)),n<_(9999999747378752e-20)?c=_(1):(n=_(_(1)/_(y(n))),k=_(t*n),v=_(b*n),c=_(c*n)),(0|Qt[a[a[e>>2]+96>>2]](e))>=1)for(n=_(-0xde0b6b000000000);;){if(l=128,((0|Qt[a[a[e>>2]+96>>2]](e))-u|0)>127||(l=(0|Qt[a[a[e>>2]+96>>2]](e))-u|0,(0|l)>=1)){for(r=0,f=i;Qt[a[a[e>>2]+108>>2]](e,r,f),f=f+16|0,r=r+1|0,(0|l)!=(0|r););for(f=0,s=-1,t=_(-3.4028234663852886e38),r=i;b=_(_(_(c*C[r>>2])+_(v*C[r+4>>2]))+_(k*C[r+8>>2])),o=b>t,t=o?b:t,s=o?f:s,r=r+16|0,f=f+1|0,(0|f)!=(0|l););}else t=_(-3.4028234663852886e38),s=-1;if(t>n&&(o=(s<<4)+i|0,r=a[o+12>>2],f=A+8|0,a[f>>2]=a[o+8>>2],a[f+4>>2]=r,r=a[o+4>>2],a[A>>2]=a[o>>2],a[A+4>>2]=r,n=t),u=u+128|0,!((0|u)<(0|Qt[a[a[e>>2]+96>>2]](e))))break}Y=i+2048|0},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=0,n=0,o=_(0),c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=_(0),g=0,B=0,m=0,R=_(0),Q=_(0),h=_(0);if(f=Y-2048|0,Y=f,!((0|i)<1)){for(n=r+12|0,t=i;a[n>>2]=-581039253,n=n+16|0,t=t+-1|0,t;);if(!((0|i)<1))for(;;){if((0|Qt[a[a[A>>2]+96>>2]](A))>=1)for(t=s<<4,l=t+r|0,v=l+12|0,k=e+t|0,B=k+8|0,m=k+4|0,b=0;;){if(u=128,((0|Qt[a[a[A>>2]+96>>2]](A))-b|0)>127||(u=(0|Qt[a[a[A>>2]+96>>2]](A))-b|0,(0|u)>=1)){for(n=0,t=f;Qt[a[a[A>>2]+108>>2]](A,n,t),t=t+16|0,n=n+1|0,(0|u)!=(0|n););for(R=C[B>>2],Q=C[m>>2],h=C[k>>2],t=0,c=-1,o=_(-3.4028234663852886e38),n=f;d=_(_(_(h*C[n>>2])+_(Q*C[n+4>>2]))+_(R*C[n+8>>2])),g=d>o,o=g?d:o,c=g?t:c,n=n+16|0,t=t+1|0,(0|u)!=(0|t););}else o=_(-3.4028234663852886e38),c=-1;if(o>C[v>>2]&&(t=(c<<4)+f|0,c=a[t+12>>2],n=l+8|0,a[n>>2]=a[t+8>>2],a[n+4>>2]=c,n=a[t+4>>2],a[l>>2]=a[t>>2],a[l+4>>2]=n,C[v>>2]=o),b=b+128|0,!((0|b)<(0|Qt[a[a[A>>2]+96>>2]](A))))break}if(s=s+1|0,(0|s)==(0|i))break}}Y=f+2048|0},function(A,e){A|=0,e|=0;var r,i,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=_(0),g=_(0),R=_(0),Q=0,h=0,G=0,p=0,F=_(0),W=_(0),w=0,D=0,E=0,Z=0,V=0,N=0,I=0,J=_(0),x=0,U=0,M=_(0),S=_(0),T=0,j=0;r=Y-240|0,Y=r,t=a[A+56>>2],t&&(Qt[a[a[t>>2]>>2]](t),CA(a[A+56>>2])),t=dA(132),function(A){var e=0;a[A>>2]=7060,f[A+20|0]=1,a[A+16>>2]=0,f[A+40|0]=1,e=A+8|0,a[e>>2]=0,a[e+4>>2]=0,a[A+36>>2]=0,f[A+60|0]=1,e=A+28|0,a[e>>2]=0,a[e+4>>2]=0,a[A+56>>2]=0,A=A+48|0,a[A>>2]=0,a[A+4>>2]=0}(t),a[A+56>>2]=t,a[r+228>>2]=0,a[r+220>>2]=0,a[r+224>>2]=0,f[r+232|0]=1;A:if(!((0|Qt[a[a[A>>2]+96>>2]](A))<1))for(;;){if((0|c)==(0|u))if(k=c?c<<1:1,(0|c)>=(0|k))b=v;else{b=k?dA(k<<4):0;e:{if((0|c)>=1)for(t=b,n=v;s=a[n+4>>2],a[t>>2]=a[n>>2],a[t+4>>2]=s,Q=n+8|0,p=a[Q+4>>2],s=t+8|0,a[s>>2]=a[Q>>2],a[s+4>>2]=p,t=t+16|0,n=n+16|0,c=c+-1|0,c;);else if(!v)break e;o[r+232|0]&&CA(v),a[r+228>>2]=0}a[r+228>>2]=b,f[r+232|0]=1,a[r+224>>2]=k}else b=v;if(a[r+220>>2]=u+1,c=a[r+156>>2],t=u<<4,n=t+b|0,a[n>>2]=a[r+152>>2],a[n+4>>2]=c,b=r+160|0,c=a[b+4>>2],n=n+8|0,a[n>>2]=a[b>>2],a[n+4>>2]=c,v=a[r+228>>2],Qt[a[a[A>>2]+108>>2]](A,l,t+v|0),l=l+1|0,(0|l)>=(0|Qt[a[a[A>>2]+96>>2]](A)))break A;c=a[r+224>>2],u=a[r+220>>2]}if(f[r+188|0]=1,a[r+184>>2]=0,f[r+208|0]=1,t=r+176|0,a[t>>2]=0,a[t+4>>2]=0,a[r+204>>2]=0,t=r+196|0,a[t>>2]=0,a[t+4>>2]=0,a[r+164>>2]=0,f[r+168|0]=1,a[r+156>>2]=0,a[r+160>>2]=0,e){if(a[r+60>>2]=0,f[r+64|0]=1,a[r+52>>2]=0,a[r+56>>2]=0,function(A,e){var r,i=0,t=0,n=_(0),c=0,b=0,l=0,u=_(0),s=_(0),k=_(0),v=0,d=0,g=_(0),B=_(0),m=0,R=0,Q=0,h=0,G=_(0),p=_(0),F=0,W=0,w=_(0),D=_(0),E=_(0),Z=0,Y=0,V=0,N=0;if(r=a[A+4>>2],(0|r)>=1)for(;;){A:if(d=R,R=d+1|0,!((0|R)>=(0|r)))for(t=a[A+12>>2],Q=t+(d<<4)|0,Z=Q+8|0,Y=Q+4|0,i=R;;){e:if(d=i+1|0,!((0|d)>=(0|r)))for(W=(i<<4)+t|0,V=W+8|0,N=W+4|0,h=d;;){w=C[Q>>2],u=_(C[W>>2]-w),i=(h<<4)+t|0,D=C[Y>>2],g=_(C[i+4>>2]-D),n=_(C[N>>2]-D),s=_(C[i>>2]-w),G=_(_(u*g)-_(n*s)),E=C[Z>>2],k=_(C[i+8>>2]-E),B=_(n*k),n=_(C[V>>2]-E),g=_(B-_(n*g)),s=_(_(n*s)-_(u*k)),k=_(_(G*G)+_(_(g*g)+_(s*s))),m=k>_(9999999747378752e-20)^1;r:if(!m){if(n=_(_(1)/_(y(k))),B=_(G*n),p=_(s*n),u=_(g*n),b=a[e+4>>2],(0|b)>=1)for(i=a[e+12>>2],c=b;;){if(_(_(_(u*C[i>>2])+_(p*C[i+4>>2]))+_(B*C[i+8>>2]))>_(.9990000128746033))break r;if(i=i+16|0,c=c+-1|0,!c)break}if(n=_(_(_(u*w)+_(p*D))+_(B*E)),i=a[A+4>>2],(0|i)>=1)for(;;){if(_(_(_(_(_(u*C[t>>2])+_(p*C[t+4>>2]))+_(B*C[t+8>>2]))-n)+_(-.009999999776482582))>_(0))break r;if(t=t+16|0,i=i+-1|0,!i)break}if(n=_(-n),a[e+8>>2]==(0|b)&&(F=b?b<<1:1,!((0|b)>=(0|F)))){if(F?(v=dA(F<<4),b=a[e+4>>2]):v=0,(0|b)>=1)for(i=0;t=a[e+12>>2]+i|0,c=a[t+4>>2],l=i+v|0,a[l>>2]=a[t>>2],a[l+4>>2]=c,t=t+8|0,c=a[t+4>>2],l=l+8|0,a[l>>2]=a[t>>2],a[l+4>>2]=c,i=i+16|0,b=b+-1|0,b;);i=a[e+12>>2],i&&(o[e+16|0]&&CA(i),a[e+12>>2]=0),a[e+12>>2]=v,f[e+16|0]=1,a[e+8>>2]=F,b=a[e+4>>2]}i=a[e+12>>2]+(b<<4)|0,C[i+12>>2]=n,C[i+8>>2]=B,C[i+4>>2]=p,C[i>>2]=u,a[e+4>>2]=a[e+4>>2]+1}r:if(!m){if(n=_(_(1)/_(y(k))),u=_(-_(G*n)),s=_(-_(s*n)),k=_(-_(g*n)),c=a[e+4>>2],(0|c)>=1)for(i=a[e+12>>2],t=c;;){if(_(_(_(C[i>>2]*k)+_(C[i+4>>2]*s))+_(C[i+8>>2]*u))>_(.9990000128746033))break r;if(i=i+16|0,t=t+-1|0,!t)break}if(n=_(_(_(C[Q>>2]*k)+_(C[Y>>2]*s))+_(C[Z>>2]*u)),t=a[A+4>>2],(0|t)>=1)for(i=a[A+12>>2];;){if(_(_(_(_(_(C[i>>2]*k)+_(C[i+4>>2]*s))+_(C[i+8>>2]*u))-n)+_(-.009999999776482582))>_(0))break r;if(i=i+16|0,t=t+-1|0,!t)break}if(n=_(-n),a[e+8>>2]==(0|c)&&(v=c?c<<1:1,!((0|c)>=(0|v)))){if(v?(m=dA(v<<4),c=a[e+4>>2]):m=0,(0|c)>=1)for(i=0;t=a[e+12>>2]+i|0,b=a[t+4>>2],l=i+m|0,a[l>>2]=a[t>>2],a[l+4>>2]=b,t=t+8|0,b=a[t+4>>2],l=l+8|0,a[l>>2]=a[t>>2],a[l+4>>2]=b,i=i+16|0,c=c+-1|0,c;);i=a[e+12>>2],i&&(o[e+16|0]&&CA(i),a[e+12>>2]=0),a[e+12>>2]=m,f[e+16|0]=1,a[e+8>>2]=v,c=a[e+4>>2]}i=a[e+12>>2]+(c<<4)|0,C[i+12>>2]=n,C[i+8>>2]=u,C[i+4>>2]=s,C[i>>2]=k,a[e+4>>2]=a[e+4>>2]+1}if(h=h+1|0,(0|h)==(0|r))break e;t=a[A+12>>2]}if((0|r)==(0|d))break A;t=a[A+12>>2],i=d}if((0|r)==(0|R))break}}(r+216|0,r+48|0),a[r+140>>2]=0,f[r+144|0]=1,a[r+132>>2]=0,a[r+136>>2]=0,a[r+52>>2]>=1)for(b=0;;){if(u=r+112|0,e=a[r+60>>2]+(b<<4)|0,a[u>>2]=a[e+8>>2],t=a[e+4>>2],a[r+104>>2]=a[e>>2],a[r+108>>2]=t,d=_(C[e+12>>2]-_(Qt[a[a[A>>2]+48>>2]](A))),n=a[r+132>>2],(0|n)==a[r+136>>2]&&(e=n?n<<1:1,!((0|n)>=(0|e)))){if(e?(l=dA(e<<4),n=a[r+132>>2]):l=0,(0|n)>=1)for(t=0;c=a[r+140>>2]+t|0,v=a[c+4>>2],k=t+l|0,s=k,a[s>>2]=a[c>>2],a[s+4>>2]=v,c=c+8|0,s=a[c+4>>2],k=k+8|0,a[k>>2]=a[c>>2],a[k+4>>2]=s,t=t+16|0,n=n+-1|0,n;);t=a[r+140>>2],t&&(o[r+144|0]&&CA(t),a[r+140>>2]=0),a[r+140>>2]=l,f[r+144|0]=1,a[r+136>>2]=e,n=a[r+132>>2]}if(t=a[r+108>>2],e=a[r+140>>2]+(n<<4)|0,a[e>>2]=a[r+104>>2],a[e+4>>2]=t,C[e+12>>2]=d,a[e+8>>2]=a[u>>2],a[r+132>>2]=a[r+132>>2]+1,b=b+1|0,!((0|b)<a[r+52>>2]))break}a[r+116>>2]=0,f[r+120|0]=1,a[r+108>>2]=0,a[r+112>>2]=0,function(A,e){var r,i=0,t=0,n=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=0,d=_(0),g=0,B=0,R=_(0),Q=_(0),h=0,G=0,y=0,p=0,F=_(0),W=_(0),w=0,D=_(0),E=_(0),Z=_(0),Y=0,V=0,N=0,I=0,J=0,x=0,U=0,M=0;if(r=a[A+4>>2],(0|r)>=1)for(;;){A:if(v=h,h=v+1|0,!((0|h)>=(0|r)))for(t=a[A+12>>2],G=t+(v<<4)|0,N=G+12|0,I=G+4|0,J=G+8|0,i=h;;){e:if(v=i+1|0,!((0|v)>=(0|r)))for(y=(i<<4)+t|0,x=y+12|0,U=y+8|0,M=y+4|0,p=v;;){i=(p<<4)+t|0,l=C[i+4>>2],u=C[y>>2],s=C[M>>2],c=C[i>>2],k=_(_(l*u)-_(s*c)),b=C[i+8>>2],n=C[U>>2],F=_(_(s*b)-_(n*l)),W=_(_(n*c)-_(b*u));r:if(_(_(k*k)+_(_(F*F)+_(W*W)))>_(9999999747378752e-20)&&(d=C[I>>2],R=C[G>>2],D=_(_(c*d)-_(l*R)),Q=C[J>>2],E=_(_(l*Q)-_(b*d)),Z=_(_(b*R)-_(c*Q)),_(_(D*D)+_(_(E*E)+_(Z*Z)))>_(9999999747378752e-20)&&(c=_(_(s*R)-_(u*d)),l=_(_(n*d)-_(s*Q)),b=_(_(u*Q)-_(n*R)),_(_(c*c)+_(_(l*l)+_(b*b)))>_(9999999747378752e-20)&&(n=_(_(Q*k)+_(_(d*W)+_(F*R))),_(m(n))>_(9.999999974752427e-7))))){if(u=_(_(-1)/n),s=C[i+12>>2],d=k,k=C[N>>2],n=C[x>>2],c=_(u*_(_(c*s)+_(_(d*k)+_(D*n)))),b=_(u*_(_(b*s)+_(_(W*k)+_(Z*n)))),n=_(u*_(_(l*s)+_(_(F*k)+_(E*n)))),i=a[A+4>>2],(0|i)>=1)for(;;){if(_(_(C[t+12>>2]+_(_(_(n*C[t>>2])+_(b*C[t+4>>2]))+_(c*C[t+8>>2])))+_(-.009999999776482582))>_(0))break r;if(t=t+16|0,i=i+-1|0,!i)break}if(i=a[e+4>>2],(0|i)==a[e+8>>2]&&(w=i?i<<1:1,!((0|i)>=(0|w)))){if(w?(Y=dA(w<<4),i=a[e+4>>2]):Y=0,(0|i)>=1)for(t=0;B=a[e+12>>2]+t|0,V=a[B+4>>2],g=t+Y|0,a[g>>2]=a[B>>2],a[g+4>>2]=V,B=B+8|0,V=a[B+4>>2],g=g+8|0,a[g>>2]=a[B>>2],a[g+4>>2]=V,t=t+16|0,i=i+-1|0,i;);i=a[e+12>>2],i&&(o[e+16|0]&&CA(i),a[e+12>>2]=0),a[e+12>>2]=Y,f[e+16|0]=1,a[e+8>>2]=w,i=a[e+4>>2]}i=a[e+12>>2]+(i<<4)|0,a[i+12>>2]=0,C[i+8>>2]=c,C[i+4>>2]=b,C[i>>2]=n,a[e+4>>2]=a[e+4>>2]+1}if(p=p+1|0,(0|p)==(0|r))break e;t=a[A+12>>2]}if((0|r)==(0|v))break A;t=a[A+12>>2],i=v}if((0|r)==(0|h))break}}(r+128|0,r+104|0),HA(r+152|0,a[r+116>>2],a[r+108>>2]),e=a[r+116>>2],e&&(o[r+120|0]&&CA(e),a[r+116>>2]=0),e=a[r+140>>2],e&&(o[r+144|0]&&CA(e),a[r+140>>2]=0),e=a[r+60>>2],e&&(o[r+64|0]&&CA(e),a[r+60>>2]=0)}else HA(r+152|0,v,a[r+220>>2]);if(e=a[r+196>>2],(0|e)<1)t=0;else{for(x=dA(e<<4),t=x,n=e;b=a[r+52>>2],a[t>>2]=a[r+48>>2],a[t+4>>2]=b,l=r+56|0,c=a[l+4>>2],b=t+8|0,a[b>>2]=a[l>>2],a[b+4>>2]=c,t=t+16|0,n=n+-1|0,n;);t=x}i=t,a[r+140>>2]=0,f[r+144|0]=1,a[r+132>>2]=0,a[r+136>>2]=0,t=r+63|0,f[0|t]=0,f[t+1|0]=0,f[t+2|0]=0,f[t+3|0]=0,t=r+56|0,a[t>>2]=0,a[t+4>>2]=0,a[r+48>>2]=0,a[r+52>>2]=0;A:{if((0|e)<=-1)for(n=e+1|0,c=B(e,36)+8|0,t=0;;){if(t=t+c|0,l=t+-4|0,b=t+4|0,u=a[b>>2],u&&(o[t+8|0]&&CA(u),a[b>>2]=0),a[l>>2]=0,a[b>>2]=0,a[t>>2]=0,f[t+8|0]=1,!n)break A;c=c+36|0,n=n+1|0,t=a[r+140>>2]}if(e)for(PA(r+128|0,e),b=r+48|3,n=20,u=e;l=o[b+4|0]|o[b+5|0]<<8|o[b+6|0]<<16|o[b+7|0]<<24,t=a[r+140>>2]+n|0,c=o[0|b]|o[b+1|0]<<8|o[b+2|0]<<16|o[b+3|0]<<24,f[0|t]=c,f[t+1|0]=c>>>8,f[t+2|0]=c>>>16,f[t+3|0]=c>>>24,f[t+4|0]=l,f[t+5|0]=l>>>8,f[t+6|0]=l>>>16,f[t+7|0]=l>>>24,f[t+-4|0]=1,k=t+-16|0,l=k,a[l>>2]=0,a[l+4>>2]=0,l=b+8|0,c=o[l+4|0]|o[l+5|0]<<8|o[l+6|0]<<16|o[l+7|0]<<24,t=t+8|0,l=o[0|l]|o[l+1|0]<<8|o[l+2|0]<<16|o[l+3|0]<<24,f[0|t]=l,f[t+1|0]=l>>>8,f[t+2|0]=l>>>16,f[t+3|0]=l>>>24,f[t+4|0]=c,f[t+5|0]=c>>>8,f[t+6|0]=c>>>16,f[t+7|0]=c>>>24,a[k+8>>2]=0,n=n+36|0,u=u+-1|0,u;);}if(a[r+132>>2]=e,l=a[A+56>>2],b=a[l+8>>2],n=a[r+156>>2],(0|b)<(0|n)){if(a[l+12>>2]<(0|n)){if(n?(v=dA(n<<4),c=a[l+8>>2]):(v=0,c=b),(0|c)>=1)for(t=0;u=a[l+16>>2]+t|0,Q=a[u+4>>2],k=t+v|0,s=k,a[s>>2]=a[u>>2],a[s+4>>2]=Q,u=u+8|0,s=a[u+4>>2],k=k+8|0,a[k>>2]=a[u>>2],a[k+4>>2]=s,t=t+16|0,c=c+-1|0,c;);t=a[l+16>>2],t&&(o[l+20|0]&&CA(t),a[l+16>>2]=0),a[l+16>>2]=v,a[l+12>>2]=n,f[l+20|0]=1}for(t=b<<4,c=n-b|0;k=a[r+52>>2],b=a[l+16>>2]+t|0,a[b>>2]=a[r+48>>2],a[b+4>>2]=k,u=r+56|0,k=a[u+4>>2],b=b+8|0,a[b>>2]=a[u>>2],a[b+4>>2]=k,t=t+16|0,c=c+-1|0,c;);}if(a[l+8>>2]=n,(0|n)>=1)for(t=0;b=a[r+164>>2]+t|0,u=a[b+4>>2],l=a[a[A+56>>2]+16>>2]+t|0,c=l,a[c>>2]=a[b>>2],a[c+4>>2]=u,b=b+8|0,c=a[b+4>>2],l=l+8|0,a[l>>2]=a[b>>2],a[l+4>>2]=c,t=t+16|0,n=n+-1|0,n;);if((0|e)>=1)for(k=0;;){for(v=0,h=a[r+184>>2]+B(a[a[r+204>>2]+(k<<2)>>2],12)|0,u=h;;){if(w=B(k,36),s=w+a[r+140>>2]|0,Q=s+4|0,G=a[8+(B(a[u+4>>2],12)+u|0)>>2],c=a[s+4>>2],(0|c)==a[s+8>>2]&&(p=c?c<<1:1,!((0|c)>=(0|p)))){p?(b=dA(p<<2),c=a[Q>>2]):b=0,I=s+8|0,E=s+12|0,l=a[s+12>>2];A:{if((0|c)>=1)for(t=b,n=l;a[t>>2]=a[n>>2],t=t+4|0,n=n+4|0,c=c+-1|0,c;);else if(!l)break A;o[s+16|0]&&CA(l),a[E>>2]=0,c=a[Q>>2]}a[E>>2]=b,a[I>>2]=p,f[s+16|0]=1}if(a[a[s+12>>2]+(c<<2)>>2]=G,a[Q>>2]=a[Q>>2]+1,(0|v)<=1&&(n=a[r+164>>2],t=n+(G<<4)|0,d=C[t+4>>2],n=n+(a[u+8>>2]<<4)|0,g=C[n+4>>2],R=C[t>>2],F=C[n>>2],W=C[t+8>>2],J=C[n+8>>2],t=(r+48|0)+(v<<4)|0,a[t+12>>2]=0,R=_(F-R),g=_(g-d),F=_(J-W),d=_(_(1)/_(y(_(_(_(R*R)+_(g*g))+_(F*F))))),C[t+8>>2]=F*d,C[t+4>>2]=g*d,C[t>>2]=R*d,v=v+1|0),t=B(a[u+4>>2],12)+u|0,u=B(a[t>>2],12)+t|0,(0|h)==(0|u))break}if(2!=(0|v)?(t=(k<<4)+i|0,a[t>>2]=0,a[t+4>>2]=0,t=t+8|0,a[t>>2]=0,a[t+4>>2]=0,n=a[r+140>>2]):(t=(k<<4)+i|0,a[t+12>>2]=0,R=C[r+68>>2],g=C[r+48>>2],F=C[r+52>>2],W=C[r+64>>2],d=_(_(R*g)-_(F*W)),M=d,S=_(d*d),d=F,F=C[r+72>>2],J=C[r+56>>2],d=_(_(d*F)-_(J*R)),R=_(_(J*W)-_(F*g)),g=_(_(1)/_(y(_(S+_(_(d*d)+_(R*R)))))),C[t+8>>2]=M*g,C[t+4>>2]=R*g,d=_(d*g),C[t>>2]=d,n=a[r+140>>2],b=w+n|0,C[b+20>>2]=d,a[b+24>>2]=a[t+4>>2],a[b+28>>2]=a[t+8>>2],a[b+32>>2]=1900671690),n=n+w|0,l=a[n+4>>2],(0|l)<1)d=_(1.0000000150474662e30);else for(t=a[n+12>>2],b=(k<<4)+i|0,R=C[b+8>>2],g=C[b+4>>2],F=C[b>>2],u=a[a[A+56>>2]+16>>2],d=_(1.0000000150474662e30),c=0;b=u+(a[t>>2]<<4)|0,W=_(_(_(C[b>>2]*F)+_(C[b+4>>2]*g))+_(C[b+8>>2]*R)),d=d>W?W:d,t=t+4|0,c=c+1|0,(0|c)<(0|l););if(C[n+32>>2]=-d,k=k+1|0,(0|e)==(0|k))break}A:if(a[r+132>>2]>=1){for(s=0,Q=0,w=0,c=0;;){if((0|c)==(0|s))if(c=s?s<<1:1,(0|s)>=(0|c))c=s;else{u=c?dA(c<<2):0;e:{if(s)for(t=u,n=s;a[t>>2]=a[Q>>2],t=t+4|0,Q=Q+4|0,n=n+-1|0,n;);else if(!Q){c=1;break e}CA(w)}w=u,Q=u}if(a[(s<<2)+Q>>2]=s,s=s+1|0,!((0|s)<a[r+132>>2]))break}for(E=r+68|0,I=r+40|0;;){b=s+-1|0,e=a[(b<<2)+Q>>2],k=dA(4),a[k>>2]=e;e:{if((0|b)<1)p=1,e=k,s=b;else{for(n=a[r+140>>2],e=n+B(e,36)|0,d=C[e+20>>2],R=C[e+28>>2],g=C[e+24>>2],u=s+-2|0,t=1,s=b,b=k,p=1;;){c=a[(u<<2)+Q>>2],e=B(c,36)+n|0;r:if(_(_(_(d*C[e+20>>2])+_(g*C[e+24>>2]))+_(R*C[e+28>>2]))>_(.9990000128746033)){if((0|t)!=(0|p)||(l=t?t<<1:1,(0|t)>=(0|l)))l=t,e=b;else{e=l?dA(l<<2):0;i:{if((0|t)>=1)for(n=e;a[n>>2]=a[k>>2],n=n+4|0,k=k+4|0,t=t+-1|0,t;);else if(!k)break i;CA(b)}k=e}if(a[(p<<2)+k>>2]=c,p=p+1|0,!((0|s)<1)){for(n=0,t=Q;;){if(a[t>>2]!=(0|c)){if(t=t+4|0,n=n+1|0,(0|s)!=(0|n))continue;break r}break}(0|s)<=(0|n)||(b=t,s=s+-1|0,t=(s<<2)+Q|0,a[b>>2]=a[t>>2],a[t>>2]=c)}}else l=t,e=b;if(!((0|u)>=1))break;u=u+-1|0,n=a[r+140>>2],b=e,t=l}r:if(!((0|p)<=1)){for(c=0,a[r+116>>2]=0,f[r+120|0]=1,a[r+108>>2]=0,a[r+112>>2]=0,a[I>>2]=0,a[I+4>>2]=0,a[r+32>>2]=0,a[r+36>>2]=0,d=_(0),l=0,R=_(0),g=_(0),G=0;;){if(t=a[r+140>>2]+B(a[(G<<2)+k>>2],36)|0,F=C[t+24>>2],W=C[t+28>>2],C[r+32>>2]=C[t+20>>2]+g,C[r+40>>2]=W+d,C[r+36>>2]=F+R,v=a[t+4>>2],(0|v)>=1)for(T=t+4|0,j=t+12|0,b=0;;){Z=a[a[j>>2]+(b<<2)>>2],t=a[a[A+56>>2]+16>>2]+(Z<<4)|0,h=t+8|0,V=a[h+4>>2],u=r+16|0,n=u,a[n>>2]=a[h>>2],a[n+4>>2]=V,n=a[t+4>>2],a[r+8>>2]=a[t>>2],a[r+12>>2]=n;i:{if((0|l)>=1){for(t=a[r+116>>2]+20|0,n=0;;){if((0|Z)==a[t>>2])break i;if(t=t+24|0,n=n+1|0,!((0|n)<(0|c)))break}l=c}if(n=a[u+4>>2],V=r+56|0,t=V,a[t>>2]=a[u>>2],a[t+4>>2]=n,t=a[r+12>>2],a[r+48>>2]=a[r+8>>2],a[r+52>>2]=t,(0|l)==a[r+112>>2])if(h=l?l<<1:1,(0|l)>=(0|h))c=l;else{h?(u=dA(B(h,24)),c=a[r+108>>2],l=c):u=0,v=a[r+116>>2];f:{if((0|l)>=1)for(t=u,n=v;D=a[n+4>>2],a[t>>2]=a[n>>2],a[t+4>>2]=D,N=n+16|0,U=a[N+4>>2],D=t+16|0,a[D>>2]=a[N>>2],a[D+4>>2]=U,N=n+8|0,U=a[N+4>>2],D=t+8|0,a[D>>2]=a[N>>2],a[D+4>>2]=U,t=t+24|0,n=n+24|0,l=l+-1|0,l;);else if(!v)break f;o[r+120|0]&&(CA(v),c=a[r+108>>2]),a[r+116>>2]=0}a[r+116>>2]=u,f[r+120|0]=1,a[r+112>>2]=h}else c=l;n=a[r+52>>2],t=a[r+116>>2]+B(c,24)|0,a[t>>2]=a[r+48>>2],a[t+4>>2]=n,a[t+20>>2]=Z,a[t+16>>2]=a[r- -64>>2],n=a[V+4>>2],t=t+8|0,a[t>>2]=a[V>>2],a[t+4>>2]=n,c=a[r+108>>2]+1|0,a[r+108>>2]=c,v=a[T>>2]}if(l=c,b=b+1|0,!((0|b)<(0|v)))break}if(d=C[r+40>>2],R=C[r+36>>2],g=C[r+32>>2],G=G+1|0,(0|G)==(0|p))break}if(a[r+52>>2]=0,a[r+56>>2]=0,t=a[r+140>>2]+B(a[k>>2],36)|0,a[r+68>>2]=a[t+20>>2],a[r+72>>2]=a[t+24>>2],a[r+76>>2]=a[t+28>>2],a[r+60>>2]=0,f[r+64|0]=1,a[r+80>>2]=a[t+32>>2],F=d,d=_(_(1)/_(y(_(_(_(g*g)+_(R*R))+_(d*d))))),C[r+40>>2]=F*d,C[r+36>>2]=R*d,C[r+32>>2]=g*d,a[r+20>>2]=0,f[r+24|0]=1,a[r+12>>2]=0,a[r+16>>2]=0,KA(r+104|0,r+8|0,r+32|0),a[r+12>>2]<=0)u=a[r+108>>2];else for(b=0,c=a[r+52>>2];;){if(G=B(b,24),h=20+(G+a[r+20>>2]|0)|0,a[r+56>>2]==(0|c)&&(v=c?c<<1:1,!((0|c)>=(0|v)))){v?(l=dA(v<<2),c=a[r+52>>2]):l=0,u=a[r+60>>2];i:{if((0|c)>=1)for(t=l,n=u;a[t>>2]=a[n>>2],t=t+4|0,n=n+4|0,c=c+-1|0,c;);else if(!u)break i;o[r+64|0]&&CA(u),a[r+60>>2]=0,c=a[r+52>>2]}a[r+60>>2]=l,f[r+64|0]=1,a[r+56>>2]=v}a[a[r+60>>2]+(c<<2)>>2]=a[h>>2],c=a[r+52>>2]+1|0,a[r+52>>2]=c,u=a[r+108>>2];i:if(!((0|u)<1)){for(t=a[r+116>>2]+20|0,l=a[20+(G+a[r+20>>2]|0)>>2],n=0;;){if(a[t>>2]!=(0|l)){if(t=t+24|0,n=n+1|0,(0|n)<(0|u))continue;break i}break}a[t>>2]=-1}if(b=b+1|0,!((0|b)<a[r+12>>2]))break}if(!((0|u)<1||(v=a[r+132>>2],(0|v)<1)))for(G=a[r+140>>2],Z=a[r+116>>2],l=0;;){i:if(h=a[20+(Z+B(l,24)|0)>>2],-1!=(0|h)){f:{if((0|p)<=0){for(b=0;;){if(t=G+B(b,36)|0,c=a[t+4>>2],(0|c)>0)for(t=a[t+12>>2],n=0;;){if((0|h)==a[t>>2])break f;if(t=t+4|0,n=n+1|0,!((0|n)<(0|c)))break}if(b=b+1|0,(0|b)==(0|v))break}break i}for(c=0;;){t=k,n=p;t:{for(;;){if(a[t>>2]==(0|c))break t;if(t=t+4|0,n=n+-1|0,!n)break}if(t=G+B(c,36)|0,b=a[t+4>>2],!((0|b)<1))for(t=a[t+12>>2],n=0;;){if((0|h)==a[t>>2])break f;if(t=t+4|0,n=n+1|0,!((0|n)<(0|b)))break}}if(c=c+1|0,(0|c)==(0|v))break}break i}if(t=a[r+20>>2],t&&(o[r+24|0]&&CA(t),a[r+20>>2]=0),t=a[r+60>>2],t&&(o[r+64|0]&&CA(t),a[r+60>>2]=0),t=a[r+116>>2],!t)break r;o[r+120|0]&&CA(t),a[r+116>>2]=0;break r}if(l=l+1|0,!((0|l)<(0|u)))break}if(LA(a[A+56>>2]+24|0,r+48|0),t=a[r+20>>2],t&&(o[r+24|0]&&CA(t),a[r+20>>2]=0),t=a[r+60>>2],t&&(o[r+64|0]&&CA(t),a[r+60>>2]=0),t=a[r+116>>2],!t)break e;o[r+120|0]&&CA(t),a[r+116>>2]=0;break e}if((0|p)<1)break e}for(b=0;;){if(t=a[(b<<2)+k>>2],a[r+52>>2]=0,a[r+56>>2]=0,a[r+60>>2]=0,G=a[r+140>>2]+B(t,36)|0,c=a[G+4>>2],f[r+64|0]=1,(0|c)>=1){h=c<<2,l=dA(h),v=a[r+60>>2],u=a[r+52>>2];r:{if((0|u)>=1)for(t=l,n=v;a[t>>2]=a[n>>2],t=t+4|0,n=n+4|0,u=u+-1|0,u;);else if(!v)break r;o[r+64|0]&&CA(v)}for(a[r+60>>2]=l,f[r+64|0]=1,a[r+56>>2]=c,X(l,0,h),a[r+52>>2]=c,t=a[G+12>>2],n=a[r+60>>2];a[n>>2]=a[t>>2],n=n+4|0,t=t+4|0,c=c+-1|0,c;);}else a[r+52>>2]=c;if(t=a[G+24>>2],a[E>>2]=a[G+20>>2],a[E+4>>2]=t,n=G+28|0,l=a[n+4>>2],t=E+8|0,a[t>>2]=a[n>>2],a[t+4>>2]=l,LA(a[A+56>>2]+24|0,r+48|0),t=a[r+60>>2],t&&(o[r+64|0]&&CA(t),a[r+60>>2]=0),b=b+1|0,(0|p)==(0|b))break}}if(k&&CA(e),!s)break}if(VA(a[A+56>>2]),!Q)break A;CA(w)}else VA(a[A+56>>2]);if(u=a[r+132>>2],(0|u)>=1)for(n=8;A=a[r+140>>2]+n|0,t=A+-4|0,e=A+4|0,b=a[e>>2],b&&(o[A+8|0]&&CA(b),a[e>>2]=0),a[t>>2]=0,a[e>>2]=0,a[A>>2]=0,f[A+8|0]=1,n=n+36|0,u=u+-1|0,u;);return A=a[r+140>>2],A&&(o[r+144|0]&&CA(A),a[r+140>>2]=0),i&&CA(x),A=a[r+204>>2],A&&(o[r+208|0]&&CA(A),a[r+204>>2]=0),a[r+204>>2]=0,f[r+208|0]=1,a[r+196>>2]=0,a[r+200>>2]=0,A=a[r+184>>2],A&&(o[r+188|0]&&CA(A),a[r+184>>2]=0),a[r+184>>2]=0,f[r+188|0]=1,a[r+176>>2]=0,a[r+180>>2]=0,A=a[r+164>>2],A&&(o[r+168|0]&&CA(A),a[r+164>>2]=0),A=a[r+228>>2],A&&(o[r+232|0]&&CA(A),a[r+228>>2]=0),Y=r+240|0,1},kA,qA,function(A,e){A|=0,e|=0;var r,i=_(0);r=Y-96|0,Y=r,EA(A,e),f[A+92|0]=1,o[1680]||(a[397]=0,a[398]=0,a[396]=1065353216,a[399]=0,a[400]=0,a[402]=0,a[403]=0,a[401]=1065353216,a[404]=0,a[405]=0,a[409]=0,a[410]=0,a[408]=-1082130432,a[406]=1065353216,a[407]=0,a[411]=0,a[412]=0,a[414]=0,a[415]=0,a[413]=-1082130432,a[416]=0,a[417]=0,a[418]=-1082130432,a[419]=0,f[1680]=1),e=X(r,0,96),Qt[a[a[A>>2]+76>>2]](A,1584,e,6),i=C[A+48>>2],C[A+76>>2]=C[e>>2]+i,C[A+60>>2]=C[e+48>>2]-i,C[A+80>>2]=i+C[e+20>>2],C[A- -64>>2]=C[e+68>>2]-i,C[A+84>>2]=i+C[e+40>>2],C[A+68>>2]=C[e+88>>2]-i,Y=e+96|0},ce,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,qA(A,e,r,i)},function(A){return 8528},ne,function(A){return A|=0,A=a[A+96>>2]+-2|0,A>>>0<=2?a[7624+(A<<2)>>2]:0},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,t=0;A:{e:{r:{i:{f=a[A+96>>2]+-2|0;f:if(!(f>>>0>2)){t:switch(f-1|0){case 0:if(e>>>0>2)break f;n:switch(e-1|0){case 0:break r;case 1:break n;default:break i}break e;case 1:break t;default:break i}if(!(e>>>0>5)){t:switch(e-1|0){case 2:e=a[A+104>>2],a[r>>2]=a[A+100>>2],a[r+4>>2]=e,e=r+8|0,r=A+108|0,f=a[r+4>>2],a[e>>2]=a[r>>2],a[e+4>>2]=f;break A;case 3:f=A+124|0,t=a[f+4>>2],e=r+8|0,a[e>>2]=a[f>>2],a[e+4>>2]=t,e=A+116|0,f=a[e+4>>2],a[r>>2]=a[e>>2],a[r+4>>2]=f;break A;case 0:break r;case 1:break e;case 4:break t;default:break i}f=A+140|0,t=a[f+4>>2],e=r+8|0,a[e>>2]=a[f>>2],a[e+4>>2]=t,e=A+132|0,f=a[e+4>>2],a[r>>2]=a[e>>2],a[r+4>>2]=f,r=A+156|0,f=a[r+4>>2],e=i+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=f,A=A+148|0,e=a[A+4>>2],a[i>>2]=a[A>>2],a[i+4>>2]=e}}return}return e=a[A+104>>2],a[r>>2]=a[A+100>>2],a[r+4>>2]=e,e=r+8|0,r=A+108|0,f=a[r+4>>2],a[e>>2]=a[r>>2],a[e+4>>2]=f,r=A+124|0,f=a[r+4>>2],e=i+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=f,A=A+116|0,e=a[A+4>>2],a[i>>2]=a[A>>2],void(a[i+4>>2]=e)}return f=A+124|0,t=a[f+4>>2],e=r+8|0,a[e>>2]=a[f>>2],a[e+4>>2]=t,e=A+116|0,f=a[e+4>>2],a[r>>2]=a[e>>2],a[r+4>>2]=f,r=A+140|0,f=a[r+4>>2],e=i+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=f,A=A+132|0,e=a[A+4>>2],a[i>>2]=a[A>>2],void(a[i+4>>2]=e)}return f=A+140|0,t=a[f+4>>2],e=r+8|0,a[e>>2]=a[f>>2],a[e+4>>2]=t,e=A+132|0,f=a[e+4>>2],a[r>>2]=a[e>>2],a[r+4>>2]=f,r=A+108|0,f=a[r+4>>2],e=i+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=f,e=a[A+104>>2],a[i>>2]=a[A+100>>2],void(a[i+4>>2]=e)}r=A+156|0,f=a[r+4>>2],e=i+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=f,A=A+148|0,e=a[A+4>>2],a[i>>2]=a[A>>2],a[i+4>>2]=e},function(A,e,r){var i,f;A|=0,e|=0,r|=0,A=(e<<4)+A|0,e=A+108|0,f=a[e+4>>2],i=r+8|0,a[i>>2]=a[e>>2],a[i+4>>2]=f,A=A+100|0,e=a[A+4>>2],a[r>>2]=a[A>>2],a[r+4>>2]=e},function(A){return A|=0,A=a[A+96>>2],0|(4==(0|A)?4:(3==(0|A))<<1)},ae,function(A,e,r){return r=_(r),0},oe,sA,ve,function(A,e,r){A|=0,e|=0,r|=0,a[A+24>>2]=r,a[A+16>>2]=e},function(A,e,r){A|=0,e|=0,r|=0,a[A+28>>2]=r,a[A+20>>2]=e},function(A,e,r,i){A|=0,e|=0,r|=0,i=_(i);var f,t=0,n=_(0),c=_(0),b=_(0),l=0,u=_(0),s=_(0),k=0,v=0,d=0,g=_(0),R=_(0),G=0,p=0,F=_(0),W=_(0),w=_(0),D=_(0),E=0,Z=0,V=_(0),N=_(0),I=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=0,z=0;f=Y-192|0,Y=f,C[a[A+4>>2]+784>>2]<i||(R=C[r+8>>2],c=_(_(C[e+8>>2]*i)+R),F=C[r+4>>2],b=_(_(C[e+4>>2]*i)+F),W=C[r>>2],g=_(_(C[e>>2]*i)+W),l=a[A+4>>2],Z=a[l+780>>2],k=a[l+772>>2],p=a[a[A+8>>2]+8>>2],G=(0|k)==(0|p),G?(n=_(g-C[k+52>>2]),u=_(b-C[k+56>>2]),s=_(c-C[k+60>>2]),w=_(_(_(n*C[k+12>>2])+_(u*C[k+28>>2]))+_(s*C[k+44>>2])),D=_(_(_(n*C[k+8>>2])+_(u*C[k+24>>2]))+_(s*C[k+40>>2])),n=_(_(_(n*C[k+4>>2])+_(u*C[k+20>>2]))+_(s*C[k+36>>2])),t=a[a[A+12>>2]+8>>2]):(t=a[a[A+12>>2]+8>>2],n=_(g-C[t+52>>2]),u=_(b-C[t+56>>2]),s=_(c-C[t+60>>2]),w=_(_(_(n*C[t+12>>2])+_(u*C[t+28>>2]))+_(s*C[t+44>>2])),D=_(_(_(n*C[t+8>>2])+_(u*C[t+24>>2]))+_(s*C[t+40>>2])),n=_(_(_(n*C[t+4>>2])+_(u*C[t+20>>2]))+_(s*C[t+36>>2])),t=p),V=C[t+20>>2],N=C[t+36>>2],I=C[t+40>>2],x=C[t+8>>2],U=C[t+24>>2],M=C[t+44>>2],S=C[t+60>>2],u=C[t+12>>2],s=C[t+52>>2],X=C[t+28>>2],T=C[t+56>>2],j=C[t+4>>2],a[f+28>>2]=0,t=f+124|0,a[t>>2]=0,a[t+4>>2]=0,t=f+132|0,a[t>>2]=0,a[t+4>>2]=0,t=f+140|0,a[t>>2]=0,a[t+4>>2]=0,t=f+148|0,a[t>>2]=0,a[t+4>>2]=0,a[f+156>>2]=0,t=e+8|0,v=a[t+4>>2],d=f+72|0,a[d>>2]=a[t>>2],a[d+4>>2]=v,O=u,u=_(W-s),s=_(F-T),R=_(R-S),C[f+24>>2]=_(_(O*u)+_(X*s))+_(M*R),C[f+20>>2]=_(_(u*x)+_(s*U))+_(R*I),a[f+12>>2]=0,C[f+8>>2]=w,C[f+4>>2]=D,C[f>>2]=n,a[f+84>>2]=0,a[f+88>>2]=0,C[f+80>>2]=i,a[f+92>>2]=0,a[f+96>>2]=0,a[f+116>>2]=0,a[f+120>>2]=0,t=a[e+4>>2],a[f+64>>2]=a[e>>2],a[f+68>>2]=t,C[f+16>>2]=_(_(u*j)+_(s*V))+_(R*N),a[f+60>>2]=0,C[f+56>>2]=c,C[f+52>>2]=b,e=r+8|0,t=a[e+4>>2],v=f+40|0,a[v>>2]=a[e>>2],a[v+4>>2]=t,C[f+48>>2]=g,e=a[r+4>>2],a[f+32>>2]=a[r>>2],a[f+36>>2]=e,r=function(A,e){var r,i=_(0),f=_(0),t=0,n=_(0),o=0,c=_(0),b=_(0),l=_(0);if(r=a[A+780>>2],(0|r)<1)e=-1;else for(t=A+8|0,c=C[e+8>>2],b=C[e+4>>2],l=C[e>>2],f=C[A+784>>2],f=_(f*f),A=0,e=-1;i=_(C[t+-4>>2]-l),n=_(i*i),i=_(C[t>>2]-b),n=_(n+_(i*i)),i=_(C[t+4>>2]-c),i=_(n+_(i*i)),o=i<f,f=o?i:f,e=o?A:e,t=t+192|0,A=A+1|0,(0|r)!=(0|A););return e}(l,f),v=a[A+8>>2],e=a[v+8>>2],d=a[A+12>>2],t=a[d+8>>2],C[f+96>>2]=C[e+232>>2]*C[t+232>>2],i=C[e+228>>2],n=C[t+228>>2],C[f+84>>2]=Q(_(h(_(i*n),_(-10))),_(10)),C[f+88>>2]=Q(_(h(_(_(n*C[e+236>>2])+_(i*C[t+236>>2])),_(-10))),_(10)),C[f+92>>2]=Q(_(h(_(_(n*C[e+240>>2])+_(i*C[t+240>>2])),_(-10))),_(10)),l=a[e+204>>2],(128&o[t+204|0]||128&l)&&(C[f+148>>2]=C[e+244>>2]+C[t+244>>2],C[f+144>>2]=_(1)/_(_(_(1)/C[a[v+8>>2]+248>>2])+_(_(1)/C[a[d+8>>2]+248>>2])),a[f+120>>2]=8|a[f+120>>2],l=a[a[v+8>>2]+204>>2]),(2&o[a[d+8>>2]+205|0]||512&l)&&(a[f+120>>2]=16|a[f+120>>2]),i=C[f+72>>2],_(m(i))>_(.7071067690849304)?(b=C[f+68>>2],n=_(_(i*i)+_(b*b)),c=_(_(1)/_(y(n))),g=_(n*c),s=C[f+64>>2],n=_(-_(i*c)),u=_(s*n),i=_(b*c),c=_(-_(s*i)),b=_(0)):(g=C[f+64>>2],c=C[f+68>>2],b=_(_(g*g)+_(c*c)),n=_(_(1)/_(y(b))),u=_(b*n),b=_(-_(c*n)),c=_(i*b),n=_(g*n),g=_(-_(i*n)),i=_(0)),t=A+4|0,C[f+184>>2]=u,C[f+180>>2]=c,C[f+168>>2]=i,C[f+164>>2]=n,C[f+176>>2]=g,C[f+160>>2]=b,G?(e=A+28|0,l=A+24|0,v=A+16|0,d=A+20|0):(e=A+24|0,l=A+28|0,v=A+20|0,d=A+16|0),a[f+112>>2]=a[e>>2],a[f+108>>2]=a[l>>2],a[f+104>>2]=a[d>>2],a[f+100>>2]=a[v>>2],e=a[t>>2],(0|r)>=0?(e=e+B(r,192)|0,l=e+136|0,i=C[l>>2],v=e+132|0,n=C[v>>2],d=e+128|0,c=C[d>>2],G=e+160|0,H=a[G>>2],16&o[f+120|0]&&(b=_(_(c*C[e+88>>2])+_(0)),!(_(_(n*n)+_(i*i))>_(b*b)))||(E=e+120|0,z=a[E>>2],J(e+4|0,f,192),C[d>>2]=c,a[E>>2]=z,C[v>>2]=n,C[l>>2]=i),a[G>>2]=H):r=ue(e,f),l=a[425],l&&(e=A+8|0,A=A+12|0,(8&o[a[a[A>>2]+8>>2]+204|0]||8&o[a[a[e>>2]+8>>2]+204|0])&&(d=4+(a[t>>2]+B(r,192)|0)|0,r=(0|k)!=(0|p),Qt[l](d,a[(r?A:e)>>2],a[f+100>>2],a[f+108>>2],a[(r?e:A)>>2],a[f+104>>2],a[f+112>>2]))),Z||(A=a[423],A&&Qt[A](t))),Y=f+192|0},function(A,e,r){A|=0,e|=0,r|=0;var i,f,t,n=_(0);i=Y-96|0,Y=i,f=a[a[A>>2]>>2],t=a[a[A+4>>2]>>2],Qt[a[a[e>>2]+24>>2]](e,f,t)&&(a[i+88>>2]=-1,a[i+92>>2]=-1,a[i+72>>2]=0,a[i+80>>2]=f,a[i+84>>2]=f+4,a[i+76>>2]=a[f+192>>2],a[i+64>>2]=-1,a[i+68>>2]=-1,a[i+48>>2]=0,a[i+56>>2]=t,a[i+60>>2]=t+4,a[i+52>>2]=a[t+192>>2],(a[A+8>>2]||(e=0|Qt[a[a[e>>2]+8>>2]](e,i+72|0,i+48|0,0,1),a[A+8>>2]=e,e))&&(e=function(A,e,r){return a[A+32>>2]=0,a[A+12>>2]=r,a[A+8>>2]=e,a[A+4>>2]=0,a[A>>2]=7720,A}(i+8|0,i+72|0,i+48|0),A=a[A+8>>2],1!=a[r+8>>2]?(n=_(Qt[a[a[A>>2]+12>>2]](A,f,t,r,e)),C[r+12>>2]>n&&(C[r+12>>2]=n)):Qt[a[a[A>>2]+8>>2]](A,i+72|0,i+48|0,r,e))),Y=i+96|0},function(A){var e;return A|=0,a[A>>2]=7860,e=a[A+20>>2],e&&(o[A+24|0]&&CA(e),a[A+20>>2]=0),a[A+20>>2]=0,a[A+12>>2]=0,a[A+16>>2]=0,f[A+24|0]=1,0|A},function(A){var e;A|=0,a[A>>2]=7860,e=a[A+20>>2],e&&(o[A+24|0]&&CA(e),a[A+20>>2]=0),a[A+20>>2]=0,a[A+12>>2]=0,a[A+16>>2]=0,f[A+24|0]=1,$(A)},function(A,e,r,i,f){var t,n;return A|=0,e|=0,r|=0,i|=0,f|=0,t=Y-16|0,Y=t,a[t+12>>2]=i,a[t+8>>2]=A,i=a[a[r+4>>2]+4>>2],n=a[a[e+4>>2]+4>>2],1!=(0|f)?(A=a[5260+((B(n,144)+A|0)+(i<<2)|0)>>2],e=0|Qt[a[a[A>>2]+8>>2]](A,t+8|0,e,r)):(A=a[76+((B(n,144)+A|0)+(i<<2)|0)>>2],e=0|Qt[a[a[A>>2]+8>>2]](A,t+8|0,e,r)),Y=t+16|0,0|e},function(A,e,r){A|=0,e|=0,r|=0;var i,t=0,n=0,c=0,b=_(0),l=_(0),u=0;i=Y-16|0,Y=i,a[426]=a[426]+1,n=2976,2&a[A+4>>2]&&(t=a[e+192>>2],b=_(Qt[a[a[t>>2]+20>>2]](t,C[744])),C[i+12>>2]=b,t=a[r+192>>2],l=_(Qt[a[a[t>>2]+20>>2]](t,C[744])),C[i+8>>2]=l,n=b<l?i+12|0:i+8|0),c=a[n>>2],b=C[r+184>>2],l=C[e+184>>2],t=a[A+72>>2],n=a[t+12>>2];A:{if(n)a[t+12>>2]=a[n>>2],a[t+8>>2]=a[t+8>>2]+-1;else{if(n=0,4&o[A+4|0])break A;n=dA(804)}if(a[n>>2]=1025,a[n+160>>2]=0,t=n+152|0,a[t>>2]=0,a[t+4>>2]=0,t=n+144|0,a[t>>2]=0,a[t+4>>2]=0,t=n+136|0,a[t>>2]=0,a[t+4>>2]=0,t=n+128|0,a[t>>2]=0,a[t+4>>2]=0,a[n+120>>2]=0,a[n+124>>2]=0,a[n+312>>2]=0,a[n+316>>2]=0,t=n+320|0,a[t>>2]=0,a[t+4>>2]=0,t=n+328|0,a[t>>2]=0,a[t+4>>2]=0,t=n+336|0,a[t>>2]=0,a[t+4>>2]=0,t=n+344|0,a[t>>2]=0,a[t+4>>2]=0,a[n+352>>2]=0,a[n+504>>2]=0,a[n+508>>2]=0,t=n+512|0,a[t>>2]=0,a[t+4>>2]=0,t=n+520|0,a[t>>2]=0,a[t+4>>2]=0,t=n+528|0,a[t>>2]=0,a[t+4>>2]=0,t=n+536|0,a[t>>2]=0,a[t+4>>2]=0,a[n+544>>2]=0,a[n+736>>2]=0,t=n+728|0,a[t>>2]=0,a[t+4>>2]=0,t=n+720|0,a[t>>2]=0,a[t+4>>2]=0,t=n+712|0,a[t>>2]=0,a[t+4>>2]=0,t=n+704|0,a[t>>2]=0,a[t+4>>2]=0,a[n+696>>2]=0,a[n+700>>2]=0,a[n+772>>2]=e,a[n+776>>2]=r,a[n+780>>2]=0,a[n+784>>2]=c,C[n+788>>2]=l<b?l:b,t=a[A+12>>2],a[n+800>>2]=t,a[A+16>>2]==(0|t)&&(c=t?t<<1:1,!((0|t)>=(0|c)))){if(c&&(u=dA(c<<2),t=a[A+12>>2]),(0|t)>=1)for(e=0,r=t;a[e+u>>2]=a[a[A+20>>2]+e>>2],e=e+4|0,r=r+-1|0,r;);e=a[A+20>>2],e&&(o[A+24|0]&&(CA(e),t=a[A+12>>2]),a[A+20>>2]=0),a[A+20>>2]=u,a[A+16>>2]=c,f[A+24|0]=1}a[A+12>>2]=t+1,a[a[A+20>>2]+(t<<2)>>2]=n}return Y=i+16|0,0|n},function(A,e){A|=0,e|=0;var r,i,f,t,n,o,c=0,b=0,l=0;if(a[426]=a[426]+-1,Qt[a[a[A>>2]+20>>2]](A,e),c=A+20|0,b=a[c>>2],r=a[e+800>>2],i=r<<2,l=b+i|0,t=a[l>>2],n=l,o=b,b=A+12|0,l=a[b>>2]+-1|0,f=l<<2,a[n>>2]=a[o+f>>2],a[a[c>>2]+f>>2]=t,a[b>>2]=l,a[a[a[c>>2]+i>>2]+800>>2]=r,e&&(A=a[A+72>>2],c=a[A+16>>2],!(c>>>0>e>>>0|c+B(a[A>>2],a[A+4>>2])>>>0<=e>>>0)))return a[e>>2]=a[A+12>>2],a[A+12>>2]=e,void(a[A+8>>2]=a[A+8>>2]+1);CA(e)},function(A,e){A|=0,e|=0;var r=0,i=0,f=0;if(A=Y-16|0,Y=A,i=a[e+780>>2],(0|i)>=1)for(r=e+4|0;le(r),r=r+192|0,f=f+1|0,i=a[e+780>>2],(0|f)<(0|i););i&&(r=a[424],r&&(a[A+12>>2]=e,Qt[r](A+12|0))),a[e+780>>2]=0,Y=A+16|0},function(A,e,r){A|=0,e|=0,r|=0;var i=0;A:{e:if(A=a[e+220>>2]+-2|0,!(A>>>0>3)){switch(A-1|0){case 0:case 1:break e}if(i=a[r+220>>2]+-2|0,!(i>>>0>3))switch(A=0,i-1|0){case 0:case 1:break e;default:break A}}if(!a[e+280>>2]||Qt[a[a[e>>2]+12>>2]](e,r)){if(A=1,!a[r+280>>2])break A;if(Qt[a[a[r>>2]+12>>2]](r,e))break A}A=0}return 0|A},function(A,e,r){if(A|=0,e|=0,r|=0,A=0,e=a[e+204>>2],!(4&e||(r=a[r+204>>2],4&r))){if(!(3&e))return 1;A=!(3&r)}return 0|A},function(A,e,r,i){var f;A|=0,e|=0,r|=0,i|=0,f=Y-16|0,Y=f,a[f+8>>2]=A,a[f+4>>2]=r,a[f>>2]=7968,Qt[a[a[e>>2]+48>>2]](e,f,i),Y=f+16|0},function(A){return A|=0,a[A+12>>2]},function(A,e){return A|=0,e|=0,a[a[A+20>>2]+(e<<2)>>2]},function(A){return A|=0,a[A+12>>2]?a[A+20>>2]:0},Ce,Ce,function(A,e){var r;return A|=0,e|=0,A=a[A+68>>2],r=a[A+12>>2],r?(a[A+12>>2]=a[r>>2],a[A+8>>2]=a[A+8>>2]+-1,0|r):0|dA(e)},function(A,e){A|=0,e|=0;var r=0;if(e&&(A=a[A+68>>2],r=a[A+16>>2],!(r>>>0>e>>>0|B(a[A>>2],a[A+4>>2])+r>>>0<=e>>>0)))return a[e>>2]=a[A+12>>2],a[A+12>>2]=e,void(a[A+8>>2]=a[A+8>>2]+1);CA(e)},sA,ve,function(A,e){var r;return A|=0,e|=0,r=e,e=a[A+8>>2],Qt[a[e+64>>2]](r,e,a[A+4>>2]),0},function(A){A|=0;var e=0,r=0;return a[A>>2]=8056,e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e),a[A+12>>2]=0),e=a[A+8>>2],e&&(Qt[a[a[e>>2]>>2]](e),e=a[A+4>>2],Qt[a[a[e>>2]+60>>2]](e,a[A+8>>2]),a[A+8>>2]=0),a[A+24>>2]=-1,a[A+28>>2]=-1,e=A+32|0,a[e>>2]=-1,a[e+4>>2]=-1,0|A},function(A){A|=0;var e=0,r=0;a[A>>2]=8056,e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e),a[A+12>>2]=0),e=a[A+8>>2],e&&(Qt[a[a[e>>2]>>2]](e),e=a[A+4>>2],Qt[a[a[e>>2]+60>>2]](e,a[A+8>>2]),a[A+8>>2]=0),a[A+24>>2]=-1,a[A+28>>2]=-1,e=A+32|0,a[e>>2]=-1,a[e+4>>2]=-1,$(A)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t=0,n=0;if(t=a[A+12>>2],t&&(n=a[A+4>>2],Qt[a[a[n>>2]+16>>2]](n,t),a[A+12>>2]=0),t=a[A+8>>2],t&&(Qt[a[a[t>>2]>>2]](t),t=a[A+4>>2],Qt[a[a[t>>2]+60>>2]](t,a[A+8>>2]),a[A+8>>2]=0),a[A+24>>2]=-1,a[A+28>>2]=-1,t=A+32|0,a[t>>2]=-1,a[t+4>>2]=-1,a[A+20>>2]=i,a[A+16>>2]=f,i=a[e+4>>2],25==a[i+4>>2])return f=a[r+4>>2],25==a[f+4>>2]?void _e(A,e,r,i,f):void me(A,e,r,i,f,0);f=a[r+4>>2],25==a[f+4>>2]&&me(A,r,e,f,i,1)},Re,function(A,e){A|=0,e|=0;var r=0,i=0,t=0,n=0,c=0;if(i=a[A+12>>2],i){if(r=a[e+4>>2],(0|r)==a[e+8>>2]&&(n=r?r<<1:1,!((0|r)>=(0|n)))){if(n&&(c=dA(n<<2),r=a[e+4>>2]),(0|r)>=1)for(i=0,t=r;a[i+c>>2]=a[a[e+12>>2]+i>>2],i=i+4|0,t=t+-1|0,t;);t=a[e+12>>2],t&&(o[e+16|0]&&(CA(t),r=a[e+4>>2]),a[e+12>>2]=0),a[e+12>>2]=c,f[e+16|0]=1,a[e+8>>2]=n,i=a[A+12>>2]}a[e+4>>2]=r+1,a[a[e+12>>2]+(r<<2)>>2]=i}},ce,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t,n,o=_(0),c=_(0),b=_(0),l=0,u=0,s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=0;f=Y-48|0,o=C[A+60>>2],s=C[e+16>>2],c=C[A- -64>>2],m=C[e+20>>2],b=C[A+68>>2],R=C[e+24>>2],Q=C[e+52>>2],h=_(_(_(_(o*s)+_(c*m))+_(b*R))+Q),C[f+40>>2]=h,k=C[e+32>>2],G=C[e+36>>2],y=C[e+40>>2],p=C[e+56>>2],F=_(_(_(_(o*k)+_(c*G))+_(b*y))+p),C[f+36>>2]=F,v=o,o=C[e>>2],d=C[e+4>>2],W=b,b=C[e+8>>2],g=C[e+48>>2],w=_(_(_(_(v*o)+_(c*d))+_(W*b))+g),C[f+44>>2]=w,a[f+28>>2]=0,c=C[A+76>>2],B=C[A+80>>2],v=C[A+84>>2],D=_(Q+_(_(_(s*c)+_(m*B))+_(R*v))),C[f+20>>2]=D,E=_(p+_(_(_(k*c)+_(G*B))+_(y*v))),C[f+24>>2]=E,c=_(g+_(_(_(o*c)+_(d*B))+_(b*v))),C[f+16>>2]=c,v=g,g=C[A+92>>2],W=d,d=C[A+96>>2],B=C[A+100>>2],b=_(v+_(_(_(o*g)+_(W*d))+_(b*B))),C[f>>2]=b,e=c>b,l=w>(e?b:c),u=l?f:f+44|0,o=C[A+48>>2],C[r>>2]=C[(e?u:l?f+16|0:u)>>2]-o,a[f+12>>2]=0,k=_(p+_(_(_(k*g)+_(G*d))+_(y*B))),C[f+8>>2]=k,A=f+8|0,e=E>k,l=F>C[(e?f:f+16|0)+8>>2],u=l?A:f+36|0,t=f+24|0,C[r+8>>2]=C[(e?u:l?t:u)>>2]-o,s=_(Q+_(_(_(s*g)+_(m*d))+_(R*B))),C[f+4>>2]=s,Z=r,e=4|f,r=D>s,l=h>C[(r?f:f+16|0)+4>>2],u=l?e:f+40|0,n=f+16|4,C[Z+4>>2]=C[(r?u:l?n:u)>>2]-o,Z=A,A=E<k,r=F<C[(A?f:f+16|0)+8>>2],l=r?Z:f+36|0,C[i+8>>2]=o+C[(A?l:r?t:l)>>2],r=e,A=D<s,e=h<C[(A?f:f+16|0)+4>>2],r=e?r:f+40|0,C[i+4>>2]=o+C[(A?r:e?n:r)>>2],A=c<b,e=w<(A?b:c),r=e?f:f+44|0,C[i>>2]=o+C[(A?r:e?f+16|0:r)>>2]},he,function(A){return 8320},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0);i=C[r>>2],f=C[r+4>>2],t=C[r+8>>2],n=_(_(_(i*C[e+76>>2])+_(f*C[e+80>>2]))+_(t*C[e+84>>2])),o=_(_(_(i*C[e+92>>2])+_(f*C[e+96>>2]))+_(t*C[e+100>>2])),i=_(_(_(i*C[e+60>>2])+_(f*C[e- -64>>2]))+_(t*C[e+68>>2])),e=(e+60|0)+((i<n?n<o?2:1:(i<o)<<1)<<4)|0,r=a[e+4>>2],a[A>>2]=a[e>>2],a[A+4>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+8|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=_(0),t=0,n=0,o=_(0),c=_(0),b=_(0),l=_(0),u=0,s=0;if((0|i)>=1)for(u=A+60|0;f=C[e>>2],o=C[e+4>>2],c=C[e+8>>2],b=_(_(_(f*C[A+76>>2])+_(o*C[A+80>>2]))+_(c*C[A+84>>2])),l=_(_(_(f*C[A+92>>2])+_(o*C[A+96>>2]))+_(c*C[A+100>>2])),f=_(_(_(f*C[A+60>>2])+_(o*C[A+64>>2]))+_(c*C[A+68>>2])),t=((f<b?b<l?2:1:(f<l)<<1)<<4)+u|0,n=a[t+4>>2],a[r>>2]=a[t>>2],a[r+4>>2]=n,t=t+8|0,s=a[t+4>>2],n=r+8|0,a[n>>2]=a[t>>2],a[n+4>>2]=s,e=e+16|0,r=r+16|0,i=i+-1|0,i;);},pe,function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0);n=C[A+92>>2],o=C[A+76>>2],c=C[A+80>>2],l=C[A+100>>2],f=C[A+68>>2],u=C[A+84>>2],b=C[A+96>>2],i=C[A- -64>>2],t=C[A+60>>2],a[r+12>>2]=0,o=_(o-t),b=_(b-i),c=_(c-i),t=_(n-t),i=_(_(o*b)-_(c*t)),s=i,k=_(i*i),i=_(l-f),n=_(u-f),f=_(_(c*i)-_(n*b)),i=_(_(n*t)-_(o*i)),t=_(_(1)/_(y(_(k+_(_(f*f)+_(i*i)))))),n=_(s*t),C[r+8>>2]=n,i=_(i*t),C[r+4>>2]=i,f=_(f*t),C[r>>2]=f,e&&(C[r+8>>2]=-n,C[r+4>>2]=-i,C[r>>2]=-f)},Fe,Fe,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,Qt[a[a[A>>2]+108>>2]](A,e,r),Qt[a[a[A>>2]+108>>2]](A,(e+1|0)%3|0,i)},function(A,e,r){var i,f;A|=0,e|=0,r|=0,A=(e<<4)+A|0,e=A+68|0,f=a[e+4>>2],i=r+8|0,a[i>>2]=a[e>>2],a[i+4>>2]=f,A=A+60|0,e=a[A+4>>2],a[r>>2]=a[A>>2],a[r+4>>2]=e},We,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,Qt[a[a[A>>2]+124>>2]](A,i,e,r)},function(A,e,r){A|=0,e|=0,r=_(r);var i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=0;return i=Y-32|0,Y=i,k=C[A+60>>2],c=_(C[A+76>>2]-k),t=C[A- -64>>2],o=_(C[A+96>>2]-t),f=_(C[A+80>>2]-t),b=_(C[A+92>>2]-k),n=_(_(c*o)-_(f*b)),u=n,v=_(n*n),s=f,f=C[A+68>>2],n=_(C[A+100>>2]-f),l=_(C[A+84>>2]-f),o=_(_(s*n)-_(l*o)),c=_(_(l*b)-_(c*n)),b=_(_(1)/_(y(_(v+_(_(o*o)+_(c*c)))))),n=_(u*b),o=_(o*b),c=_(c*b),t=_(_(_(C[e+8>>2]*n)+_(_(C[e>>2]*o)+_(C[e+4>>2]*c)))-_(_(f*n)+_(_(k*o)+_(t*c)))),k=_(-r),t>=k^1|t<=r^1||(Qt[a[a[A>>2]+104>>2]](A,0,i+16|0,i),b=C[i+16>>2],t=_(C[i>>2]-b),l=C[i+20>>2],f=_(C[i+4>>2]-l),r=_(_(c*t)-_(o*f)),u=r,v=_(r*r),r=_(n*f),s=C[i+24>>2],f=_(C[i+8>>2]-s),r=_(r-_(c*f)),t=_(_(o*f)-_(n*t)),f=_(_(1)/_(y(_(v+_(_(r*r)+_(t*t)))))),u=_(u*f),r=_(r*f),t=_(t*f),_(_(_(C[e+8>>2]*u)+_(_(C[e>>2]*r)+_(C[e+4>>2]*t)))-_(_(s*u)+_(_(b*r)+_(l*t))))<k||(Qt[a[a[A>>2]+104>>2]](A,1,i+16|0,i),b=C[i+16>>2],t=_(C[i>>2]-b),l=C[i+20>>2],f=_(C[i+4>>2]-l),r=_(_(c*t)-_(o*f)),u=r,v=_(r*r),r=_(n*f),s=C[i+24>>2],f=_(C[i+8>>2]-s),r=_(r-_(c*f)),t=_(_(o*f)-_(n*t)),f=_(_(1)/_(y(_(v+_(_(r*r)+_(t*t)))))),u=_(u*f),r=_(r*f),t=_(t*f),_(_(_(C[e+8>>2]*u)+_(_(C[e>>2]*r)+_(C[e+4>>2]*t)))-_(_(s*u)+_(_(b*r)+_(l*t))))<k||(Qt[a[a[A>>2]+104>>2]](A,2,i+16|0,i),t=C[i+16>>2],f=_(C[i>>2]-t),b=C[i+20>>2],l=_(C[i+4>>2]-b),r=_(_(c*f)-_(o*l)),u=r,s=_(r*r),v=_(n*l),r=c,c=C[i+24>>2],l=_(C[i+8>>2]-c),r=_(v-_(r*l)),n=_(_(o*l)-_(n*f)),o=_(_(1)/_(y(_(s+_(_(r*r)+_(n*n)))))),f=_(u*o),r=_(r*o),n=_(n*o),_(_(_(C[e+8>>2]*f)+_(_(C[e>>2]*r)+_(C[e+4>>2]*n)))-_(_(c*f)+_(_(t*r)+_(b*n))))<k||(d=1)))),Y=i+32|0,0|d},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0);c=C[A+92>>2],b=C[A+76>>2],l=C[A+80>>2],s=C[A+100>>2],e=A+68|0,o=C[e>>2],k=C[A+84>>2],u=C[A+96>>2],t=C[A- -64>>2],n=C[A+60>>2],a[r+12>>2]=0,b=_(b-n),u=_(u-t),l=_(l-t),n=_(c-n),t=_(_(b*u)-_(l*n)),v=t,d=_(t*t),t=_(s-o),c=_(k-o),o=_(_(l*t)-_(c*u)),t=_(_(c*n)-_(b*t)),n=_(_(1)/_(y(_(d+_(_(o*o)+_(t*t)))))),C[r+8>>2]=v*n,C[r+4>>2]=t*n,C[r>>2]=o*n,f=a[e+4>>2],r=i+8|0,a[r>>2]=a[e>>2],a[r+4>>2]=f,e=a[A+64>>2],a[i>>2]=a[A+60>>2],a[i+4>>2]=e},ce,function(A,e){return A|=0,e|=0,A=a[a[A+4>>2]>>2],0|Qt[a[a[A>>2]+128>>2]](A,e)},sA,ve,function(A,e){var r,i;return A|=0,e|=0,r=a[A+4>>2],i=a[r>>2],Qt[a[a[i>>2]+104>>2]](i,e,r+4|0),a[A+4>>2]+4|0},ve,function(A,e){var r,i;return A|=0,e|=0,r=a[A+4>>2],i=a[r>>2],Qt[a[a[i>>2]+108>>2]](i,e,r+112|0),a[A+4>>2]+112|0},ve,sA,ve,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t,n=0,c=0,b=0;f=Y-144|0,Y=f,t=zA(f+32|0),c=e+8|0,b=a[c+4>>2],n=f+100|0,a[n>>2]=a[c>>2],a[n+4>>2]=b,c=a[e+20>>2],n=f+108|0,a[n>>2]=a[e+16>>2],a[n+4>>2]=c,c=e+24|0,b=a[c+4>>2],n=f+116|0,a[n>>2]=a[c>>2],a[n+4>>2]=b,c=a[e+36>>2],n=f+124|0,a[n>>2]=a[e+32>>2],a[n+4>>2]=c,c=e+40|0,b=a[c+4>>2],n=f+132|0,a[n>>2]=a[c>>2],a[n+4>>2]=b,a[f+36>>2]=1,a[f+32>>2]=8128,n=a[e+4>>2],a[f+92>>2]=a[e>>2],a[f+96>>2]=n,a[f+80>>2]=a[A+24>>2],e=a[A+4>>2],b=o[A+20|0],b?(a[e+28>>2]=r,n=e+24|0):(a[e+36>>2]=r,n=e+32|0),a[n>>2]=i,n=a[A+12>>2],c=a[n+8>>2],a[f+20>>2]=a[n+12>>2],a[f+16>>2]=c,a[f+28>>2]=i,a[f+24>>2]=r,a[f+8>>2]=n,r=a[e+16>>2],i=a[r+8>>2],n=a[i+8>>2],a[f+12>>2]=f+32,(0|n)==(0|c)?r=r+8|0:(i=a[r+12>>2],r=r+12|0),a[r>>2]=f+8,me(e,a[A+8>>2],f+8|0,a[A+16>>2],f+32|0,0!=(0|b)),A=a[a[A+4>>2]+16>>2],a[(a[a[A+8>>2]+8>>2]==a[f+16>>2]?8:12)+A>>2]=i,Ae(t),Y=f+144|0},sA,ve,function(A,e,r,i){return A|=0,e|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,40),vA(A,e),a[A>>2]=8056,a[A+8>>2]=0,a[A+12>>2]=0,0|A},Ze,function(A){var e;A|=0,a[A>>2]=8964,e=a[A+296>>2],e&&(o[A+300|0]&&CA(e),a[A+296>>2]=0),a[A+296>>2]=0,a[A+288>>2]=0,a[A+292>>2]=0,f[A+300|0]=1,CA(A)},function(A,e){A|=0,e|=0,a[A+200>>2]=e,a[A+192>>2]=e,a[A+304>>2]=a[A+304>>2]+1},function(A,e){A|=0,e|=0;var r,i=0;r=a[A+288>>2],i=r;A:if(!((0|r)<1)){for(A=a[A+296>>2],i=0;;){if(a[A>>2]==(0|e))break A;if(A=A+4|0,i=i+1|0,(0|i)==(0|r))break}i=r}return(0|i)>=(0|r)|0},function(A){return 264},Ne,function(A,e){A|=0,e|=0;var r,i=0,f=0,t=0,n=0,o=0;t=e,n=0|Qt[a[a[A>>2]+16>>2]](A),o=1,f=a[a[e>>2]+16>>2],i=0|Qt[f](0|t,0|n,0|o),o=e,n=i,t=0|Qt[a[a[A>>2]+20>>2]](A,a[i+8>>2],e),r=A,f=a[a[e>>2]+20>>2],Qt[f](0|o,0|n,0|t,1245859651,0|r)},ce,Je,xe,function(A,e,r){A|=0,e=_(e),r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0);i=C[A+40>>2],f=C[A+36>>2],t=C[A+32>>2],n=_(Qt[a[a[A>>2]+48>>2]](A)),o=_(Qt[a[a[A>>2]+48>>2]](A)),c=_(Qt[a[a[A>>2]+48>>2]](A)),a[r+12>>2]=0,e=_(e/_(12)),t=_(t+n),t=_(t+t),t=_(t*t),f=_(f+o),f=_(f+f),f=_(f*f),C[r+8>>2]=e*_(t+f),i=_(i+c),i=_(i+i),i=_(i*i),C[r+4>>2]=e*_(t+i),C[r>>2]=e*_(f+i)},function(A){return 9212},Ie,function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0);i=C[e+36>>2],f=C[e+40>>2],t=C[e+32>>2],n=_(Qt[a[a[e>>2]+48>>2]](e)),o=_(Qt[a[a[e>>2]+48>>2]](e)),c=_(Qt[a[a[e>>2]+48>>2]](e)),a[A+12>>2]=0,f=_(f+c),C[A+8>>2]=C[r+8>>2]>=_(0)?f:_(-f),i=_(i+o),C[A+4>>2]=C[r+4>>2]>=_(0)?i:_(-i),i=_(t+n),C[A>>2]=C[r>>2]>=_(0)?i:_(-i)},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0);a[A+12>>2]=0,i=C[e+32>>2],C[A>>2]=C[r>>2]>=_(0)?i:_(-i),i=C[e+40>>2],C[A+8>>2]=C[r+8>>2]>=_(0)?i:_(-i),i=C[e+36>>2],C[A+4>>2]=C[r+4>>2]>=_(0)?i:_(-i)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,t=0,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0);if((0|i)>=1)for(;f=e+t|0,b=C[f+4>>2],l=C[f+8>>2],u=C[f>>2],n=C[A+36>>2],o=C[A+40>>2],c=C[A+32>>2],f=r+t|0,a[f+12>>2]=0,C[f>>2]=u>=_(0)?c:_(-c),C[f+8>>2]=l>=_(0)?o:_(-o),C[f+4>>2]=b>=_(0)?n:_(-n),t=t+16|0,i=i+-1|0,i;);},Ue,function(A,e,r){A|=0,e|=0,r|=0,e>>>0<=5&&(a[r+12>>2]=0,A=e<<2,a[r+8>>2]=a[A+9264>>2],a[r+4>>2]=a[A+9240>>2],a[r>>2]=a[A+9216>>2])},function(A){return 8},yA,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=0,n=0;f=A,e>>>0<=11&&(e<<=2,t=a[e+9336>>2],n=a[e+9288>>2]),Qt[a[a[A>>2]+108>>2]](f,n,r),Qt[a[a[A>>2]+108>>2]](A,t,i)},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0);f=C[A+40>>2],i=C[A+36>>2],t=C[A+32>>2],n=_(Qt[a[a[A>>2]+48>>2]](A)),o=_(Qt[a[a[A>>2]+48>>2]](A)),c=_(Qt[a[a[A>>2]+48>>2]](A)),a[r+12>>2]=0,i=_(i+o),A=e>>>1&1,C[r+4>>2]=_(i*_(1^A))-_(i*_(0|A)),i=_(t+n),A=1&e,C[r>>2]=_(i*_(1^A))-_(i*_(0|A)),f=_(f+c),A=e>>>2&1,C[r+8>>2]=_(f*_(1^A))-_(f*_(0|A))},Ue,function(A,e,r,i){var f,t,n;A|=0,e|=0,r|=0,i|=0,f=Y-48|0,Y=f,Qt[a[a[A>>2]+124>>2]](A,f+32|0,i),a[e+12>>2]=0,i=a[f+40>>2],a[e+8>>2]=i,t=a[f+36>>2],a[e+4>>2]=t,n=e,e=a[f+32>>2],a[n>>2]=e,a[f+12>>2]=0,a[f+8>>2]=-2147483648^i,a[f+4>>2]=-2147483648^t,a[f>>2]=-2147483648^e,Qt[a[a[A>>2]+64>>2]](f+16|0,A,f),e=f+24|0,i=a[e+4>>2],A=r+8|0,a[A>>2]=a[e>>2],a[A+4>>2]=i,A=a[f+20>>2],a[r>>2]=a[f+16>>2],a[r+4>>2]=A,Y=f+48|0},function(A,e,r){A|=0,e|=0,r=_(r);var i=_(0),f=_(0),t=0;return i=C[e>>2],f=C[A+32>>2],i<=_(f+r)^1|i>=_(_(-f)-r)^1||(i=C[e+4>>2],f=C[A+36>>2],i<=_(f+r)^1|i>=_(_(-f)-r)^1||(i=C[e+8>>2],f=C[A+40>>2],i<=_(f+r)&&(t=i>=_(_(-f)-r)))),0|t},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=_(0),t=_(0),n=_(0);if(r>>>0<=5){t=C[A+40>>2],n=C[A+36>>2],f=C[A+32>>2],A=1065353216,i=r;A:{e:{r:{i:switch(r-1|0){case 0:r=0,A=-1082130432,i=0;break A;case 1:r=1065353216;break e;case 2:r=-1082130432;break e;case 3:i=1065353216;break r;case 4:break i;default:break A}i=-1082130432}A=0,f=t,r=0;break A}A=0,f=n,i=0}a[e+8>>2]=i,a[e+4>>2]=r,a[e>>2]=A,C[e+12>>2]=-f}},pA,Je,xe,function(A,e,r){A|=0,e=_(e),r|=0;var i,f,t,n,o=_(0),c=_(0),b=_(0),l=_(0),u=0,s=_(0);i=Y-16|0,Y=i,u=A+40|0,t=a[u+4>>2],f=i+8|0,a[f>>2]=a[u>>2],a[f+4>>2]=t,u=a[A+36>>2],a[i>>2]=a[A+32>>2],a[i+4>>2]=u,o=_(Qt[a[a[A>>2]+48>>2]](A)),l=_(Qt[a[a[A>>2]+48>>2]](A)),n=f,s=_(_(Qt[a[a[A>>2]+48>>2]](A))+C[f>>2]),C[n>>2]=s,C[i>>2]=o+C[i>>2],C[i+4>>2]=l+C[i+4>>2],o=_(e*_(.5)),l=_(e*_(.25)),e=_(e/_(12));A:{e:if(A=a[A+56>>2],!(A>>>0>2)){switch(A-1|0){default:b=o,o=C[i+4>>2],c=_(o*o),o=_(b*c),b=e,e=C[i>>2],c=_(_(l*c)+_(b*_(e*_(e*_(4))))),b=c;break A;case 0:break e;case 1:}c=o,o=C[i>>2],o=_(o*o),b=_(c*o),c=e,e=C[i+8>>2],o=_(_(l*o)+_(c*_(e*_(e*_(4))))),c=o;break A}c=o,o=C[i>>2],o=_(o*o),c=_(c*o),b=e,e=C[i+4>>2],o=_(_(l*o)+_(b*_(e*_(e*_(4))))),b=o}a[r+12>>2]=0,C[r+8>>2]=b,C[r+4>>2]=c,C[r>>2]=o,Y=i+16|0},function(A){return 9792},FA,Ie,wA,function(A,e,r){return A|=0,e|=0,r|=0,QA(A,e,r),a[e+28>>2]=a[A+32>>2],a[e+32>>2]=a[A+36>>2],a[e+36>>2]=a[A+40>>2],a[e+40>>2]=a[A+44>>2],a[e+12>>2]=a[A+16>>2],a[e+16>>2]=a[A+20>>2],a[e+20>>2]=a[A+24>>2],a[e+24>>2]=a[A+28>>2],a[e+48>>2]=0,a[e+44>>2]=a[A+48>>2],A=a[A+56>>2],a[e+56>>2]=0,a[e+52>>2]=A,9802},function(A,e,r){A|=0,e|=0,r|=0;var i,f,t,n=_(0),o=_(0),c=_(0),b=0,l=_(0),u=_(0);i=Y-16|0,Y=i,Qt[a[a[e>>2]+68>>2]](i,e,r),f=i+8|0,t=a[f+4>>2],b=A+8|0,a[b>>2]=a[f>>2],a[b+4>>2]=t,b=a[i+4>>2],a[A>>2]=a[i>>2],a[A+4>>2]=b,_(Qt[a[a[e>>2]+48>>2]](e))!=_(0)&&(o=C[r+4>>2],n=C[r>>2],c=C[r+8>>2],l=_(Qt[a[a[e>>2]+48>>2]](e)),e=_(_(_(n*n)+_(o*o))+_(c*c))<_(1.4210854715202004e-14),n=e?_(-1):n,u=n,c=e?_(-1):c,o=e?_(-1):o,n=_(_(1)/_(y(_(_(c*c)+_(_(n*n)+_(o*o)))))),C[A>>2]=C[A>>2]+_(l*_(u*n)),C[A+4>>2]=C[A+4>>2]+_(l*_(o*n)),C[A+8>>2]=C[A+8>>2]+_(l*_(c*n))),Y=i+16|0},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),a=_(0),o=_(0);i=C[e+36>>2],f=C[e+32>>2],t=C[r>>2],n=C[r+8>>2],a=_(y(_(_(t*t)+_(n*n)))),a==_(0)?i=C[r+4>>2]<_(0)?_(-i):i:(f=_(f/a),o=_(n*f),f=_(t*f),i=C[r+4>>2]<_(0)?_(-i):i),C[A+8>>2]=o,C[A+4>>2]=i,C[A>>2]=f},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=_(0),t=_(0),n=_(0),a=_(0),o=_(0);if((0|i)>=1)for(;f=C[A+36>>2],t=C[A+32>>2],a=C[e>>2],n=C[e+8>>2],o=_(y(_(_(a*a)+_(n*n)))),o==_(0)?(n=_(0),f=C[e+4>>2]<_(0)?_(-f):f):(t=_(t/o),n=_(n*t),t=_(a*t),f=C[e+4>>2]<_(0)?_(-f):f),C[r>>2]=t,C[r+8>>2]=n,C[r+4>>2]=f,r=r+16|0,e=e+16|0,i=i+-1|0,i;);},Me,pA,function(A){return 9822},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),a=_(0),o=_(0);f=C[e+36>>2],i=C[e+32>>2],t=C[r+4>>2],n=C[r+8>>2],a=_(y(_(_(t*t)+_(n*n)))),a==_(0)?i=C[r>>2]<_(0)?_(-i):i:(f=_(f/a),o=_(n*f),f=_(t*f),i=C[r>>2]<_(0)?_(-i):i),C[A+8>>2]=o,C[A>>2]=i,C[A+4>>2]=f},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=_(0),t=_(0),n=_(0),a=_(0),o=_(0),c=0;if((0|i)>=1)for(;f=C[A+32>>2],t=C[A+36>>2],c=r,a=C[e+4>>2],n=C[e+8>>2],o=_(y(_(_(a*a)+_(n*n)))),o==_(0)?(n=_(0),f=C[e>>2]<_(0)?_(-f):f):(t=_(t/o),n=_(n*t),t=_(a*t),f=C[e>>2]<_(0)?_(-f):f),C[c>>2]=f,C[r+8>>2]=n,C[r+4>>2]=t,r=r+16|0,e=e+16|0,i=i+-1|0,i;);},function(A){A|=0;var e=_(0),r=_(0);return e=C[A+36>>2],_(Qt[a[a[A>>2]+48>>2]](A)),r=_(Qt[a[a[A>>2]+48>>2]](A)),_(Qt[a[a[A>>2]+48>>2]](A)),_(_(e+r))},pA,function(A){return 9832},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),a=_(0),o=_(0);i=C[e+40>>2],f=C[e+32>>2],e=A,t=C[r>>2],n=C[r+4>>2],a=_(y(_(_(t*t)+_(n*n)))),a==_(0)?i=C[r+8>>2]<_(0)?_(-i):i:(f=_(f/a),o=_(n*f),f=_(t*f),i=C[r+8>>2]<_(0)?_(-i):i),C[e+8>>2]=i,C[A>>2]=f,C[A+4>>2]=o},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=_(0),t=_(0),n=_(0),a=_(0),o=_(0);if((0|i)>=1)for(;f=C[A+40>>2],t=C[A+32>>2],a=C[e>>2],n=C[e+4>>2],o=_(y(_(_(a*a)+_(n*n)))),o==_(0)?(n=_(0),f=C[e+8>>2]<_(0)?_(-f):f):(t=_(t/o),n=_(n*t),t=_(a*t),f=C[e+8>>2]<_(0)?_(-f):f),C[r>>2]=t,C[r+8>>2]=f,C[r+4>>2]=n,r=r+16|0,e=e+16|0,i=i+-1|0,i;);},Me,pA,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0);c=_(Qt[a[a[A>>2]+48>>2]](A)),b=_(Qt[a[a[A>>2]+48>>2]](A)),l=_(Qt[a[a[A>>2]+48>>2]](A)),A=e+52|0,t=C[A>>2],f=e+56|0,n=C[f>>2],o=C[e+48>>2],a[r+12>>2]=0,C[r+8>>2]=n-l,C[r+4>>2]=t-b,C[r>>2]=o-c,t=C[A>>2],n=C[f>>2],o=C[e+48>>2],a[i+12>>2]=0,C[i+8>>2]=l+n,C[i+4>>2]=b+t,C[i>>2]=c+o},function(A,e,r){A|=0,e=_(e),r|=0;var i=_(0),f=_(0);i=_(Qt[a[a[A>>2]+48>>2]](A)),f=_(Qt[a[a[A>>2]+48>>2]](A)),a[r+12>>2]=0,e=_(f*_(i*_(e*_(.4000000059604645)))),C[r+8>>2]=e,C[r+4>>2]=e,C[r>>2]=e},function(A){return 9972},Ge,function(A){return A|=0,_(_(C[A+32>>2]*C[A+16>>2]))},function(A,e,r){A|=0,e|=0,r|=0;var i,f,t,n=_(0),o=_(0),c=_(0),b=0,l=_(0),u=_(0);i=Y-16|0,Y=i,Qt[a[a[e>>2]+68>>2]](i,e,r),t=i+8|0,b=a[t+4>>2],f=A+8|0,a[f>>2]=a[t>>2],a[f+4>>2]=b,b=a[i+4>>2],a[A>>2]=a[i>>2],a[A+4>>2]=b,o=C[r+4>>2],n=C[r>>2],c=C[r+8>>2],l=_(Qt[a[a[e>>2]+48>>2]](e)),e=_(_(_(n*n)+_(o*o))+_(c*c))<_(1.4210854715202004e-14),n=e?_(-1):n,u=n,c=e?_(-1):c,o=e?_(-1):o,n=_(_(1)/_(y(_(_(c*c)+_(_(n*n)+_(o*o)))))),C[A>>2]=C[A>>2]+_(l*_(u*n)),C[A+4>>2]=C[A+4>>2]+_(l*_(o*n)),C[f>>2]=C[f>>2]+_(l*_(c*n)),Y=i+16|0},function(A,e,r){A|=0,a[A>>2]=0,a[A+4>>2]=0,A=A+8|0,a[A>>2]=0,a[A+4>>2]=0},function(A,e,r,i){r|=0,i|=0,(0|i)>=1&&X(r,0,i<<4)},sA,ve,Oe,ve,Oe,sA,kA,function(A,e){A|=0,e=_(e),C[A+16>>2]=e},function(A){return A|=0,_(C[A+16>>2])},sA,pA,function(A,e,r,i){r|=0,i|=0,a[r+8>>2]=-581039253,a[r+12>>2]=0,a[r>>2]=-581039253,a[r+4>>2]=-581039253,a[i+8>>2]=1566444395,a[i+12>>2]=0,a[i>>2]=1566444395,a[i+4>>2]=1566444395},function(A,e){A|=0,e|=0;var r=0;r=a[e+4>>2],a[A+72>>2]=a[e>>2],a[A+76>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+80|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},ze,he,function(A){return 10516},ye,function(A,e,r){return A|=0,e|=0,r|=0,QA(A,e,r),a[e+12>>2]=a[A+72>>2],a[e+16>>2]=a[A+76>>2],a[e+20>>2]=a[A+80>>2],a[e+24>>2]=a[A+84>>2],a[e+28>>2]=a[A+52>>2],a[e+32>>2]=a[A+56>>2],a[e+36>>2]=a[A+60>>2],a[e+40>>2]=a[A- -64>>2],A=a[A+68>>2],a[e+48>>2]=0,a[e+44>>2]=A,10528},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t,n,o,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0);f=Y-48|0,Y=f,k=C[i>>2],u=C[r>>2],l=_(_(k-u)*_(.5)),s=_(l*l),b=C[i+4>>2],c=C[r+4>>2],l=_(_(b-c)*_(.5)),g=_(s+_(l*l)),s=C[i+8>>2],v=C[r+8>>2],l=_(_(s-v)*_(.5)),l=_(y(_(g+_(l*l)))),s=_(_(s+v)*_(.5)),v=_(_(b+c)*_(.5)),B=_(_(k+u)*_(.5)),k=C[A+60>>2],_(m(k))>_(.7071067690849304)?(u=C[A+56>>2],b=_(_(k*k)+_(u*u)),c=_(_(1)/_(y(b))),R=_(b*c),b=C[A+52>>2],d=_(u*c),Q=_(-_(b*d)),c=_(-_(k*c)),h=_(b*c)):(b=C[A+52>>2],u=C[A+56>>2],R=_(_(b*b)+_(u*u)),c=_(_(1)/_(y(R))),h=_(R*c),p=_(-_(u*c)),Q=_(k*p),c=_(b*c),R=_(-_(k*c))),G=C[A+68>>2],A=f+44|0,a[A>>2]=0,r=f+28|0,a[r>>2]=0,i=f+40|0,g=s,s=_(_(_(k*s)+_(_(B*b)+_(v*u)))-G),G=_(g-_(k*s)),d=_(l*d),g=_(G-d),k=_(l*h),h=_(g-k),C[i>>2]=h,t=f+36|0,v=_(v-_(u*s)),c=_(l*c),F=_(v-c),u=_(l*Q),Q=_(F-u),C[t>>2]=Q,n=f+24|0,d=_(d+G),C[n>>2]=d-k,o=f+20|0,c=_(c+v),C[o>>2]=c-u,a[f+12>>2]=0,b=_(B-_(b*s)),s=_(l*p),v=_(b-s),l=_(l*R),B=_(v-l),C[f+32>>2]=B,b=_(s+b),C[f+16>>2]=b-l,s=_(k+d),C[f+8>>2]=s,c=_(u+c),C[f+4>>2]=c,b=_(l+b),C[f>>2]=b,Qt[a[a[e>>2]+8>>2]](e,f,0,0),a[A>>2]=0,C[i>>2]=s,C[t>>2]=c,a[r>>2]=0,C[n>>2]=k+g,C[o>>2]=u+F,C[f+32>>2]=b,C[f+16>>2]=l+v,a[f+12>>2]=0,C[f+8>>2]=h,C[f+4>>2]=Q,C[f>>2]=B,Qt[a[a[e>>2]+8>>2]](e,f,0,1),Y=f+48|0},Ke,function(A){var e;A|=0,a[A>>2]=11012,e=a[A+88>>2],e&&(o[A+92|0]&&CA(e),a[A+88>>2]=0),a[A+88>>2]=0,a[A+80>>2]=0,a[A+84>>2]=0,f[A+92|0]=1,CA(A)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0);h=C[e+52>>2],l=C[e+24>>2],v=C[e+20>>2],f=C[e+56>>2],u=C[e+40>>2],n=C[A+44>>2],o=C[A+28>>2],c=C[A+36>>2],s=C[e+36>>2],b=C[A+40>>2],t=C[A+24>>2],G=C[e+48>>2],d=C[e+8>>2],g=C[e>>2],B=C[e+4>>2],R=C[e+16>>2],Q=C[e+32>>2],k=C[A+20>>2],a[r+12>>2]=0,y=f,f=_(_(k+c)*_(.5)),t=_(_(t+b)*_(.5)),o=_(_(o+n)*_(.5)),k=_(y+_(_(_(Q*f)+_(s*t))+_(u*o))),c=_(c-f),b=_(b-t),n=_(n-o),u=_(_(_(c*_(m(Q)))+_(b*_(m(s))))+_(n*_(m(u)))),C[r+8>>2]=k-u,s=_(h+_(_(_(f*R)+_(t*v))+_(o*l))),l=_(_(_(c*_(m(R)))+_(b*_(m(v))))+_(n*_(m(l)))),C[r+4>>2]=s-l,f=_(G+_(_(_(f*g)+_(t*B))+_(o*d))),t=_(_(_(c*_(m(g)))+_(b*_(m(B))))+_(n*_(m(d)))),C[r>>2]=f-t,a[i+12>>2]=0,C[i+8>>2]=u+k,C[i+4>>2]=l+s,C[i>>2]=t+f},function(A,e){A|=0,e|=0;var r=0,i=0;i=a[e+4>>2],r=A+160|0,a[r>>2]=a[e>>2],a[r+4>>2]=i,e=e+8|0,i=a[e+4>>2],r=A+168|0,a[r>>2]=a[e>>2],a[r+4>>2]=i,Qt[a[a[A>>2]+72>>2]](A)},function(A){return A|=0,A+160|0},function(A,e,r){A|=0,e=_(e),r|=0;var i=0,f=_(0),t=_(0),n=0,o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=0,k=0;if(Qt[a[a[A>>2]+112>>2]](A),i=r+8|0,a[i>>2]=0,a[i+4>>2]=0,a[r>>2]=0,a[r+4>>2]=0,n=a[A+188>>2],n)if(e=_(e/_(0|n)),i=a[A+196>>2],k=a[A+184>>2],1==a[A+192>>2])for(s=0-i|0,i=B(i,n+-1|0)+k|0;f=C[A+168>>2],o=_(g[i>>3]*+C[A+160>>2]),o=_(o*o),t=_(g[i+8>>3]*+C[A+164>>2]),t=_(t*t),b=_(_(e*_(o+t))+b),C[r+8>>2]=b,f=_(g[i+16>>3]*+f),f=_(f*f),l=_(_(e*_(o+f))+l),C[r+4>>2]=l,u=_(u+_(e*_(t+f))),C[r>>2]=u,i=i+s|0,n=n+-1|0,n;);else for(s=0-i|0,i=B(i,n+-1|0)+k|0;f=C[i+8>>2],o=C[A+168>>2],t=_(C[i>>2]*C[A+160>>2]),t=_(t*t),c=_(C[i+4>>2]*C[A+164>>2]),c=_(c*c),b=_(_(e*_(t+c))+b),C[r+8>>2]=b,f=_(f*o),f=_(f*f),l=_(_(e*_(t+f))+l),C[r+4>>2]=l,u=_(u+_(e*_(c+f))),C[r>>2]=u,i=i+s|0,n=n+-1|0,n;);Qt[a[a[A>>2]+116>>2]](A)},function(A){return 11292},function(A,e){A|=0,e=_(e),C[A+152>>2]=e,Qt[a[a[A>>2]+72>>2]](A)},function(A){return A|=0,_(C[A+152>>2])},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t,n=0,c=0,b=0;if(t=Y-128|0,Y=t,Qt[a[a[A>>2]+112>>2]](A),c=r+8|0,b=a[c+4>>2],n=t+104|0,a[n>>2]=a[c>>2],a[n+4>>2]=b,c=i+8|0,b=a[c+4>>2],n=t+120|0,a[n>>2]=a[c>>2],a[n+4>>2]=b,n=a[r+4>>2],a[t+96>>2]=a[r>>2],a[t+100>>2]=n,r=a[i+4>>2],a[t+112>>2]=a[i>>2],a[t+116>>2]=r,a[t+84>>2]=0,f[t+88|0]=1,a[t+76>>2]=0,a[t+80>>2]=0,_A(A+72|0,t+96|0,t+72|0),r=a[t+76>>2],r)for(n=a[A+176>>2],a[t+64>>2]=1008981770,i=(r<<2)-4|0;c=a[a[t+84>>2]+i>>2],b=0|Qt[a[a[A>>2]+84>>2]](A),Qt[a[a[b>>2]+20>>2]](b,c,t),Qt[a[a[e>>2]+8>>2]](e,t,n,a[a[t+84>>2]+i>>2]),i=i+-4|0,r=r+-1|0,r;);Qt[a[a[A>>2]+116>>2]](A),A=a[t+84>>2],A&&(o[t+88|0]&&CA(A),a[t+84>>2]=0),Y=t+128|0},function(A){A|=0;var e,r,i,n,c,b=0,l=_(0),u=_(0),s=_(0),k=_(0),d=_(0),g=_(0);Qt[a[a[A>>2]+112>>2]](A),b=A+72|0,a[A+72>>2]?function(A){var e,r=0,i=0,f=_(0),n=_(0),o=_(0),c=0,b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=0,Q=_(0),h=_(0),G=0,y=0,p=0,F=0,W=0,w=_(0),D=_(0),E=_(0),Z=_(0),V=0;if(e=Y+-64|0,Y=e,r=a[A>>2],r)for(G=r<<4,y=r+1|0,p=a[A+16>>2],F=e+16|0,W=e+48|0;c=G+p|0,r=a[c+-4>>2],(0|r)>=0?(c=a[A+72>>2],Qt[a[a[c>>2]+16>>2]](c,r,e+32|0),b=C[e+32>>2],f=C[e+36>>2],p=a[A+16>>2],c=p+G|0,r=c+-12|0,l=C[A+48>>2],n=C[A+32>>2],o=C[e+40>>2],o=o<n?n:o,g=C[A+64>>2],o=_(_(_((l<o?l:o)-n)*g)+_(.5)),i=o<_(4294967296)&o>=_(0)?~~o>>>0:0,t[r>>1]=i,r=c+-14|0,s=C[A+44>>2],o=C[A+28>>2],f=f<o?o:f,B=C[A+60>>2],f=_(_(_((s<f?s:f)-o)*B)+_(.5)),i=f<_(4294967296)&f>=_(0)?~~f>>>0:0,t[r>>1]=i,r=c+-16|0,u=C[A+40>>2],f=C[A+24>>2],b=b<f?f:b,m=C[A+56>>2],b=_(_(_((u<b?u:b)-f)*m)+_(.5)),i=b<_(4294967296)&b>=_(0)?~~b>>>0:0,t[r>>1]=i,b=C[e+48>>2],b=b<f?f:b,f=_(_(m*_((u<b?u:b)-f))+_(.5)),r=f<_(4294967296)&f>=_(0)?~~f>>>0:0,f=C[e+56>>2],u=C[e+52>>2],t[c+-10>>1]=r,r=c+-8|0,u=u<o?o:u,o=_(_(B*_((s<u?s:u)-o))+_(.5)),i=o<_(4294967296)&o>=_(0)?~~o>>>0:0,t[r>>1]=i,r=c+-6|0,o=f<n?n:f,n=_(_(g*_((l<o?l:o)-n))+_(.5)),c=n<_(4294967296)&n>=_(0)?~~n>>>0:0,t[r>>1]=c):(a[e+56>>2]=-8388609,a[e+48>>2]=-8388609,a[e+52>>2]=-8388609,a[e+36>>2]=2139095039,a[e+40>>2]=2139095039,r=v[c>>1],i=v[c+2>>1],R=v[c+4>>1],a[e+12>>2]=0,g=C[A+64>>2],s=C[A+32>>2],l=_(_(_(R>>>0)/g)+s),C[e+8>>2]=l,B=C[A+60>>2],u=C[A+28>>2],o=_(_(_(i>>>0)/B)+u),C[e+4>>2]=o,m=C[A+56>>2],b=C[A+24>>2],n=_(_(_(r>>>0)/m)+b),C[e>>2]=n,r=v[c+6>>1],i=v[c+8>>1],R=v[c+10>>1],a[e+28>>2]=0,d=_(s+_(_(R>>>0)/g)),C[e+24>>2]=d,h=_(u+_(_(i>>>0)/B)),C[e+20>>2]=h,f=_(b+_(_(r>>>0)/m)),C[e+16>>2]=f,Q=n<_(3.4028234663852886e38)?n:_(3.4028234663852886e38),C[e+32>>2]=Q,r=o<_(3.4028234663852886e38)?e:e+32|0,o=C[r+4>>2],r=a[r+4>>2],i=l<_(3.4028234663852886e38)?e:e+32|0,n=C[i+8>>2],a[e+40>>2]=a[i+8>>2],k=f>_(-3.4028234663852886e38)?f:_(-3.4028234663852886e38),C[e+48>>2]=k,a[e+36>>2]=r,r=a[c+12>>2],i=h>_(-3.4028234663852886e38)?F:W,f=C[i+4>>2],a[e+52>>2]=a[i+4>>2],i=d>_(-3.4028234663852886e38)?F:W,l=C[i+8>>2],a[e+56>>2]=a[i+8>>2],r=(((0|r)>-1?r:-1)-r|0)+y|0,r&&(r=(r<<4)+p|0,i=v[r+2>>1],R=v[r+4>>1],V=v[r>>1],a[e+12>>2]=0,d=_(_(_(V>>>0)/m)+b),C[e>>2]=d,w=_(_(_(R>>>0)/g)+s),C[e+8>>2]=w,D=_(_(_(i>>>0)/B)+u),C[e+4>>2]=D,i=v[r+6>>1],R=v[r+8>>1],r=v[r+10>>1],a[e+28>>2]=0,E=_(s+_(_(r>>>0)/g)),C[e+24>>2]=E,Z=_(u+_(_(R>>>0)/B)),C[e+20>>2]=Z,h=_(b+_(_(i>>>0)/m)),C[e+16>>2]=h,r=D<o?e:e+32|0,o=C[r+4>>2],r=a[r+4>>2],i=w<n?e:e+32|0,n=C[i+8>>2],a[e+40>>2]=a[i+8>>2],k=k<h?h:k,C[e+48>>2]=k,Q=Q>d?d:Q,C[e+32>>2]=Q,a[e+36>>2]=r,r=Z>f?F:W,f=C[r+4>>2],a[e+52>>2]=a[r+4>>2],r=E>l?F:W,l=C[r+8>>2],a[e+56>>2]=a[r+8>>2]),r=c+-6|0,d=C[A+48>>2],l=l<s?s:l,l=_(_(g*_((d<l?d:l)-s))+_(.5)),i=l<_(4294967296)&l>=_(0)?~~l>>>0:0,t[r>>1]=i,r=c+-8|0,l=C[A+44>>2],f=f<u?u:f,f=_(_(B*_((l<f?l:f)-u))+_(.5)),i=f<_(4294967296)&f>=_(0)?~~f>>>0:0,t[r>>1]=i,r=c+-10|0,f=C[A+40>>2],k=k<b?b:k,k=_(_(m*_((f<k?f:k)-b))+_(.5)),i=k<_(4294967296)&k>=_(0)?~~k>>>0:0,t[r>>1]=i,r=c+-12|0,n=n<s?s:n,n=_(_(_((d<n?d:n)-s)*g)+_(.5)),i=n<_(4294967296)&n>=_(0)?~~n>>>0:0,t[r>>1]=i,r=c+-14|0,n=o<u?u:o,n=_(_(_((l<n?l:n)-u)*B)+_(.5)),i=n<_(4294967296)&n>=_(0)?~~n>>>0:0,t[r>>1]=i,r=c+-16|0,n=Q<b?b:Q,n=_(_(_((f<n?f:n)-b)*m)+_(.5)),c=n<_(4294967296)&n>=_(0)?~~n>>>0:0,t[r>>1]=c),G=G+-16|0,y=y+-1|0,1!=(0|y););Y=e- -64|0}(b):function(A){var e,r,i=0,t=0,n=0,c=0,b=0,l=0,u=0;if(e=Y+-64|0,Y=e,f[e+56|0]=1,a[e+44>>2]=0,a[e+48>>2]=0,a[e+52>>2]=0,i=a[A+72>>2],r=0|Qt[a[a[i>>2]+12>>2]](i),n=e+32|0,i=n,a[i>>2]=0,a[i+4>>2]=0,l=e+24|0,i=l,a[i>>2]=0,a[i+4>>2]=0,t=e+16|0,i=t,a[i>>2]=0,a[i+4>>2]=0,a[e+8>>2]=0,a[e+12>>2]=0,(0|r)<=0)a[e+44>>2]=r;else{if(i=dA(B(r,36)),a[i+32>>2]=0,a[e+52>>2]=i,a[e+48>>2]=r,f[e+56|0]=1,c=a[t+4>>2],b=i+8|0,a[b>>2]=a[t>>2],a[b+4>>2]=c,t=a[e+12>>2],a[i>>2]=a[e+8>>2],a[i+4>>2]=t,t=a[e+28>>2],a[i+16>>2]=a[e+24>>2],a[i+20>>2]=t,t=a[n+4>>2],i=i+24|0,a[i>>2]=a[n>>2],a[i+4>>2]=t,1!=(0|r))for(b=r+-1|0,n=36;c=a[e+12>>2],t=a[e+52>>2]+n|0,i=t,a[i>>2]=a[e+8>>2],a[i+4>>2]=c,c=e+16|0,u=a[c+4>>2],i=i+8|0,a[i>>2]=a[c>>2],a[i+4>>2]=u,i=l,u=a[i+4>>2],c=t+16|0,a[c>>2]=a[i>>2],a[c+4>>2]=u,i=i+8|0,u=a[i+4>>2],c=t+24|0,a[c>>2]=a[i>>2],a[c+4>>2]=u,a[t+32>>2]=0,n=n+36|0,b=b+-1|0,b;);if(a[e+44>>2]=r,!((0|r)<1))for(i=0,n=a[e+52>>2];l=a[A+72>>2],Qt[a[a[l>>2]+16>>2]](l,i,n),a[n+32>>2]=i,n=n+36|0,i=i+1|0,(0|i)<(0|r););}BA(A,e+40|0),A=a[e+52>>2],A&&(o[e+56|0]&&CA(A),a[e+52>>2]=0),Y=e- -64|0}(b),Qt[a[a[A>>2]+116>>2]](A),b=a[A+88>>2],e=v[b+8>>1],r=v[b+10>>1],i=v[b>>1],n=v[b+2>>1],c=v[b+4>>1],b=v[b+6>>1],a[A+48>>2]=0,a[A+32>>2]=0,l=C[A+96>>2],u=C[A+128>>2],C[A+36>>2]=l+_(_(b>>>0)/u),s=C[A+136>>2],k=C[A+104>>2],C[A+28>>2]=_(_(c>>>0)/s)+k,d=C[A+132>>2],g=C[A+100>>2],C[A+24>>2]=_(_(n>>>0)/d)+g,C[A+20>>2]=l+_(_(i>>>0)/u),C[A+44>>2]=k+_(_(r>>>0)/s),C[A+40>>2]=g+_(_(e>>>0)/d)},function(A){A|=0,f[A+52|0]=1},function(A){return 25},We,function(A){return A|=0,A+148|0},function(A){return A|=0,a[A+208>>2]},we,We,we,function(A,e,r){A|=0,e|=0,r|=0,function(A,e,r){var i=_(0),f=0,t=0,n=0;e=a[A+52>>2]+B(a[A+56>>2],e)|0,n=a[A+36>>2],3!=a[A+64>>2]?(f=a[e+8>>2],t=a[e+4>>2],e=a[e>>2]):(f=v[e+4>>1],t=v[e+2>>1],e=v[e>>1]),e=n+B(e,a[A+48>>2])|0,n=r+68|0,1!=a[A+44>>2]?(C[r+60>>2]=C[e>>2]*C[A+12>>2],C[r- -64>>2]=C[e+4>>2]*C[A+16>>2],i=_(C[e+8>>2]*C[A+20>>2])):(C[r+60>>2]=g[e>>3]*+C[A+12>>2],C[r- -64>>2]=g[e+8>>3]*+C[A+16>>2],i=_(g[e+16>>3]*+C[A+20>>2])),C[n>>2]=i,e=a[A+36>>2]+B(a[A+48>>2],t)|0,t=r+84|0,1!=a[A+44>>2]?(C[r+76>>2]=C[e>>2]*C[A+12>>2],C[r+80>>2]=C[e+4>>2]*C[A+16>>2],i=_(C[e+8>>2]*C[A+20>>2])):(C[r+76>>2]=g[e>>3]*+C[A+12>>2],C[r+80>>2]=g[e+8>>3]*+C[A+16>>2],i=_(g[e+16>>3]*+C[A+20>>2])),C[t>>2]=i,e=a[A+36>>2]+B(a[A+48>>2],f)|0,f=r+100|0,1!=a[A+44>>2]?(C[r+92>>2]=C[e>>2]*C[A+12>>2],C[r+96>>2]=C[e+4>>2]*C[A+16>>2],i=_(C[e+8>>2]*C[A+20>>2])):(C[r+92>>2]=g[e>>3]*+C[A+12>>2],C[r+96>>2]=g[e+8>>3]*+C[A+16>>2],i=_(g[e+16>>3]*+C[A+20>>2])),C[f>>2]=i,Qt[a[a[r>>2]+44>>2]](r,C[A+4>>2])}(A+148|0,e,r)},De,function(A){A|=0;var e=0;A=a[A+144>>2],e=a[A+32>>2],(0|e)>=1?a[A+32>>2]=e+1:(e=a[A+8>>2],Qt[a[a[e>>2]+16>>2]](e,A+36|0,A+40|0,A+44|0,A+48|0,A+52|0,A+56|0,A+60|0,A- -64|0,a[A+28>>2]),a[A+32>>2]=1)},function(A){A|=0;var e=0,r=0;A=a[A+144>>2],e=a[A+32>>2],e&&(r=A,(0|e)>=2?A=e+-1|0:(e=a[A+8>>2],Qt[a[a[e>>2]+24>>2]](e,a[A+28>>2]),a[A+36>>2]=0,A=0),a[r+32>>2]=A)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0);t=Y-32|0,Y=t,A=0|Qt[a[a[A>>2]+84>>2]](A),Qt[a[a[A>>2]+16>>2]](A,e,t),p=C[r+56>>2],d=C[r+36>>2],g=C[r+40>>2],B=C[r+32>>2],k=C[r+48>>2],u=C[r+8>>2],R=C[r>>2],Q=C[r+4>>2],c=C[t+16>>2],n=_(_(c+C[t>>2])*_(.5)),e=t+20|0,b=C[e>>2],o=_(_(b+C[t+4>>2])*_(.5)),A=t+24|0,l=C[A>>2],v=_(_(l+C[t+8>>2])*_(.5)),c=_(c-n),s=C[r+16>>2],b=_(b-o),h=C[r+20>>2],l=_(l-v),G=C[r+24>>2],y=_(_(_(c*_(m(s)))+_(b*_(m(h))))+_(l*_(m(G)))),s=_(_(_(_(n*s)+_(o*h))+_(v*G))+C[r+52>>2]),C[e>>2]=y+s,C[t+4>>2]=s-y,k=_(k+_(_(_(n*R)+_(o*Q))+_(v*u))),u=_(_(_(c*_(m(R)))+_(b*_(m(Q))))+_(l*_(m(u)))),C[t>>2]=k-u,e=a[t+4>>2],a[i>>2]=a[t>>2],a[i+4>>2]=e,a[t+12>>2]=0,n=_(p+_(_(_(n*B)+_(o*d))+_(v*g))),o=_(_(_(c*_(m(B)))+_(b*_(m(d))))+_(l*_(m(g)))),C[t+8>>2]=n-o,r=a[t+12>>2],e=i+8|0,a[e>>2]=a[t+8>>2],a[e+4>>2]=r,a[t+28>>2]=0,C[A>>2]=o+n,C[t+16>>2]=u+k,e=a[t+20>>2],a[f>>2]=a[t+16>>2],a[f+4>>2]=e,r=a[A+4>>2],e=f+8|0,a[e>>2]=a[A>>2],a[e+4>>2]=r,Y=t+32|0},oe,oe,De,De,ae,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t,n=_(0),c=_(0),b=_(0),l=_(0),u=0,s=0,k=0;if(t=Y-112|0,Y=t,Qt[a[a[A>>2]+112>>2]](A),a[t+100>>2]=0,f[t+104|0]=1,a[t+92>>2]=0,a[t+96>>2]=0,a[t+84>>2]=0,n=_(C[i>>2]-C[r>>2]),c=_(C[i+4>>2]-C[r+4>>2]),b=_(C[i+8>>2]-C[r+8>>2]),l=_(_(1)/_(y(_(_(_(n*n)+_(c*c))+_(b*b))))),C[t+80>>2]=b*l,C[t+76>>2]=c*l,C[t+72>>2]=n*l,function(A,e,r,i){var t,n=_(0),c=0,b=0,l=_(0),u=_(0),s=0,k=0,d=_(0),g=_(0),B=_(0),R=0,Q=0,h=_(0),G=0,y=_(0),p=_(0),F=0,W=_(0),w=_(0),D=_(0);if(t=a[A>>2],(0|t)>=1)for(;;){R=G<<4,c=R+a[A+16>>2]|0,s=v[c+4>>1],d=C[A+64>>2],l=C[A+32>>2],k=v[c+10>>1],b=v[c+2>>1],g=C[A+60>>2],u=C[A+28>>2],Q=v[c+8>>1],B=C[A+24>>2],n=C[A+56>>2],h=_(B+_(_(v[c+6>>1])/n));A:{e:{if(n=_(_(_(_(_(v[c>>1])/n)+B)+h)*_(.5)),B=_(C[r>>2]-n),h=_(h-n),_(B*C[e>>2])>=_(0)&&_(m(B))>h||(n=_(_(_(b>>>0)/g)+u),u=_(u+_(_(Q>>>0)/g)),n=_(_(n+u)*_(.5)),g=_(C[r+4>>2]-n),u=_(u-n),_(g*C[e+4>>2])>=_(0)&&_(m(g))>u||(n=_(_(_(s>>>0)/d)+l),l=_(l+_(_(k>>>0)/d)),n=_(_(n+l)*_(.5)),d=_(C[r+8>>2]-n),n=_(l-n),l=C[e+8>>2],_(d*l)>=_(0)&&_(m(d))>n||(y=C[e+4>>2],W=_(m(y)),w=_(m(l)),_(m(_(_(d*y)-_(g*l))))>_(_(u*w)+_(n*W))||(p=C[e>>2],D=_(m(p)),_(m(_(_(B*l)-_(d*p))))>_(_(h*w)+_(n*D)))))))c=a[c+12>>2]>-1,s=0;else if(k=_(m(_(_(g*p)-_(B*y))))>_(_(h*W)+_(u*D)),s=1^k,F=a[c+12>>2],c=(0|F)>-1,!((0|F)<0|k)){if(b=a[i+4>>2],(0|b)==a[i+8>>2]&&(Q=b?b<<1:1,!((0|b)>=(0|Q)))){Q?(R=dA(Q<<2),b=a[i+4>>2]):R=0,k=a[i+12>>2];r:{if((0|b)>=1)for(c=R,s=k;a[c>>2]=a[s>>2],c=c+4|0,s=s+4|0,b=b+-1|0,b;);else if(!k)break r;o[i+16|0]&&CA(k),a[i+12>>2]=0,b=a[i+4>>2]}a[i+12>>2]=R,f[i+16|0]=1,a[i+8>>2]=Q}a[a[i+12>>2]+(b<<2)>>2]=F,a[i+4>>2]=a[i+4>>2]+1;break e}if(!(c|s)){G=G-a[12+(R+a[A+16>>2]|0)>>2]|0;break A}}G=G+1|0}if(!((0|G)<(0|t)))break}}(A+72|0,t+72|0,r,t+88|0),i=a[t+92>>2],i)for(s=a[A+176>>2],a[t+64>>2]=1008981770,r=(i<<2)-4|0;k=a[a[t+100>>2]+r>>2],u=0|Qt[a[a[A>>2]+84>>2]](A),Qt[a[a[u>>2]+20>>2]](u,k,t),Qt[a[a[e>>2]+8>>2]](e,t,s,a[a[t+100>>2]+r>>2]),r=r+-4|0,i=i+-1|0,i;);Qt[a[a[A>>2]+116>>2]](A),A=a[t+100>>2],A&&(o[t+104|0]&&CA(A),a[t+100>>2]=0),Y=t+112|0},$e,function(A){A|=0,CA($e(A))},function(A,e){A|=0,e|=0;var r=0,i=0,t=0;if(r=a[e+4>>2],a[A+56>>2]=a[e>>2],a[A+60>>2]=r,i=e+8|0,t=a[i+4>>2],r=A- -64|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,r=a[A+156>>2],r)for(i=(r<<2)-4|0;t=a[a[A+164>>2]+i>>2],Qt[a[a[t>>2]+24>>2]](t,e),i=i+-4|0,r=r+-1|0,r;);f[A+52|0]=1},Le,function(A,e,r){A|=0,e=_(e),r|=0;var i,f=0,t=0,n=0;if(i=Y-16|0,Y=i,a[r>>2]=0,a[r+4>>2]=0,f=r+8|0,a[f>>2]=0,a[f+4>>2]=0,f=a[A+156>>2],f)for(e=_(e/_(0|f)),t=(f<<2)-4|0;n=a[a[A+164>>2]+t>>2],Qt[a[a[n>>2]+32>>2]](n,e,i),C[r>>2]=C[i>>2]+C[r>>2],C[r+4>>2]=C[i+4>>2]+C[r+4>>2],C[r+8>>2]=C[i+8>>2]+C[r+8>>2],t=t+-4|0,f=f+-1|0,f;);Y=i+16|0},function(A){return 11313},function(A,e){A|=0,e=_(e);var r=0,i=0,t=0;if(C[A+16>>2]=e,r=a[A+156>>2],r)for(i=(r<<2)-4|0;t=a[a[A+164>>2]+i>>2],Qt[a[a[t>>2]+44>>2]](t,e),i=i+-4|0,r=r+-1|0,r;);f[A+52|0]=1},function(A){return 64},function(A,e,r){var i,f,t;return A|=0,e|=0,r|=0,QA(A,e,r),i=a[A+148>>2],Qt[a[a[i>>2]+56>>2]](i,e+12|0,r),a[e+56>>2]=a[A+16>>2],a[e+40>>2]=a[A+56>>2],a[e+44>>2]=a[A+60>>2],a[e+48>>2]=a[A- -64>>2],a[e+52>>2]=a[A+68>>2],f=e,t=0|Qt[a[a[A>>2]+80>>2]](A),a[f+60>>2]=t,10708},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,t=0,n=0;if(f=a[A+156>>2],f)for(t=(f<<2)-4|0;n=a[a[A+164>>2]+t>>2],Qt[a[a[n>>2]+64>>2]](n,e,r,i),t=t+-4|0,f=f+-1|0,f;);},function(A){A|=0;var e,r=0,i=0,t=0,n=_(0),c=_(0),b=_(0),l=0,u=0,s=0,k=_(0),v=_(0),d=_(0),g=_(0),B=0;if(a[A+20>>2]=2139095039,a[A+24>>2]=2139095039,a[A+44>>2]=-8388609,e=A+36|0,a[e>>2]=-8388609,a[e+4>>2]=-8388609,a[A+28>>2]=2139095039,t=a[A+156>>2],t)for(B=A+20|0,u=(t<<2)-4|0,s=a[A+164>>2],k=_(3.4028234663852886e38),v=_(-3.4028234663852886e38),d=_(-3.4028234663852886e38),n=_(-3.4028234663852886e38),g=_(3.4028234663852886e38),c=_(3.4028234663852886e38);t=t+-1|0,r=a[u+s>>2],o[r+52|0]&&(Qt[a[a[r>>2]+68>>2]](r),f[r+52|0]=0,v=C[A+44>>2],d=C[A+40>>2],g=C[A+24>>2],s=a[A+164>>2],n=C[A+36>>2],c=C[A+20>>2],k=C[A+28>>2]),r=a[u+s>>2],b=C[r+20>>2],c=c>b?b:c,C[A+20>>2]=c,i=r+20|0,l=g>C[r+24>>2]?i:B,g=C[l+4>>2],a[A+24>>2]=a[l+4>>2],i=k>C[r+28>>2]?i:B,k=C[i+8>>2],a[A+28>>2]=a[i+8>>2],i=r+36|0,b=C[i>>2],n=n<b?b:n,C[A+36>>2]=n,l=d<C[r+40>>2]?i:e,d=C[l+4>>2],a[A+40>>2]=a[l+4>>2],r=v<C[r+44>>2]?i:e,v=C[r+8>>2],a[A+44>>2]=a[r+8>>2],u=u+-4|0,t;);},function(A){A|=0;var e=0,r=0,i=0;if(e=a[A+156>>2],e)for(r=(e<<2)-4|0;i=a[a[A+164>>2]+r>>2],Qt[a[a[i>>2]+72>>2]](i),r=r+-4|0,e=e+-1|0,e;);f[A+52|0]=1},pe,we,we,we,we,we,De,De,qe,qe,Ar,oe,oe,De,De,ae,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,t=0,n=0;if(f=a[A+156>>2],f)for(t=(f<<2)-4|0;n=a[a[A+164>>2]+t>>2],Qt[a[a[n>>2]+144>>2]](n,e,r,i),t=t+-4|0,f=f+-1|0,f;);},Ke,kA,function(A,e){A|=0,e|=0;var r,i=0;i=a[e+4>>2],a[A+56>>2]=a[e>>2],a[A+60>>2]=i,e=e+8|0,r=a[e+4>>2],i=A- -64|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,Qt[a[a[A>>2]+72>>2]](A)},function(A,e){A|=0,e=_(e);var r=0,i=0;if(C[A+16>>2]=e,r=0|Qt[a[a[A>>2]+88>>2]](A),r)for(r=r+-1|0;i=0|Qt[a[a[A>>2]+124>>2]](A,r),Qt[a[a[i>>2]+44>>2]](i,e),r=r+-1|0,-1!=(0|r););f[A+52|0]=1},ae,qe,qe,ae,sA,ve,We,function(A){return A|=0,a[A+60>>2]},function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,t=_(0),n=0,o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0);i=Y-80|0,Y=i,a[i+72>>2]=1008981770,Qt[a[a[A>>2]+20>>2]](A,e,i+8|0),t=C[i+12>>2],A=i+40|0,e=i+24|0,c=C[i+28>>2],b=C[i+44>>2],f=c>b,n=t>C[(f?A:e)+4>>2],o=n?36:4,k=C[(i+8|0)+(f?o:n?20:o)>>2],u=C[i+16>>2],l=C[i+32>>2],s=C[i+48>>2],f=l>s,n=u>C[(f?A:e)+8>>2],o=n?40:8,v=C[(i+8|0)+(f?o:n?24:o)>>2],f=c<b,n=t<C[(f?A:e)+4>>2],o=n?36:4,d=C[(i+8|0)+(f?o:n?20:o)>>2],f=A,A=l<s,e=u<C[(A?f:e)+8>>2],f=e?40:8,u=C[(i+8|0)+(A?f:e?24:f)>>2],c=C[i+24>>2],b=C[i+40>>2],A=c>b,l=C[i+8>>2],e=l>(A?b:c),f=e<<5,s=C[(i+8|0)+(A?f:e?16:f)>>2],t=C[i+72>>2],A=c<b,e=l<(A?b:c),f=e<<5,C[r+16>>2]=t+C[(i+8|0)+(A?f:e?16:f)>>2],C[r>>2]=s-t,C[r+24>>2]=t+u,C[r+20>>2]=t+d,C[r+8>>2]=v-t,C[r+4>>2]=k-t,Y=i+80|0},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=0,t=0,n=0;e=a[A+52>>2]+B(a[A+56>>2],e)|0,f=a[A+36>>2],3!=a[A+64>>2]?(t=a[e+8>>2],n=a[e+4>>2],e=a[e>>2]):(t=v[e+4>>1],n=v[e+2>>1],e=v[e>>1]),e=f+B(e,a[A+48>>2])|0,f=r,1!=a[A+44>>2]?(C[r>>2]=C[e>>2]*C[A+12>>2],C[r+4>>2]=C[e+4>>2]*C[A+16>>2],i=_(C[e+8>>2]*C[A+20>>2])):(C[r>>2]=g[e>>3]*+C[A+12>>2],C[r+4>>2]=g[e+8>>3]*+C[A+16>>2],i=_(g[e+16>>3]*+C[A+20>>2])),C[f+8>>2]=i,e=a[A+36>>2]+B(a[A+48>>2],n)|0,f=r+24|0,1!=a[A+44>>2]?(C[r+16>>2]=C[e>>2]*C[A+12>>2],C[r+20>>2]=C[e+4>>2]*C[A+16>>2],i=_(C[e+8>>2]*C[A+20>>2])):(C[r+16>>2]=g[e>>3]*+C[A+12>>2],C[r+20>>2]=g[e+8>>3]*+C[A+16>>2],i=_(g[e+16>>3]*+C[A+20>>2])),C[f>>2]=i,e=a[A+36>>2]+B(a[A+48>>2],t)|0,f=r+40|0,1!=a[A+44>>2]?(C[r+32>>2]=C[e>>2]*C[A+12>>2],C[r+36>>2]=C[e+4>>2]*C[A+16>>2],i=_(C[e+8>>2]*C[A+20>>2])):(C[r+32>>2]=g[e>>3]*+C[A+12>>2],C[r+36>>2]=g[e+8>>3]*+C[A+16>>2],i=_(g[e+16>>3]*+C[A+20>>2])),C[f>>2]=i,a[r+64>>2]=a[A+4>>2]},function(A){A|=0;var e=0;return a[A>>2]=14216,e=a[A+68>>2],e&&(rr(e),CA(a[A+68>>2])),e=a[A+28>>2],e&&(o[A+32|0]&&CA(e),a[A+28>>2]=0),a[A+28>>2]=0,a[A+20>>2]=0,a[A+24>>2]=0,f[A+32|0]=1,0|A},function(A){A|=0;var e=0;a[A>>2]=14216,e=a[A+68>>2],e&&(rr(e),CA(a[A+68>>2])),e=a[A+28>>2],e&&(o[A+32|0]&&CA(e),a[A+28>>2]=0),a[A+28>>2]=0,a[A+20>>2]=0,a[A+24>>2]=0,f[A+32|0]=1,CA(A)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0);t=C[A+44>>2],c=C[A+60>>2],f=a[A+20>>2],n=C[A+40>>2],b=C[A+56>>2],o=C[A+36>>2],l=C[A+52>>2],F=_(Qt[a[a[A>>2]+48>>2]](A)),W=_(Qt[a[a[A>>2]+48>>2]](A)),w=_(Qt[a[a[A>>2]+48>>2]](A)),D=C[e+52>>2],u=C[e+24>>2],g=C[e+20>>2],s=C[e+56>>2],B=C[e+40>>2],R=C[e+36>>2],E=C[e+48>>2],Q=C[e+8>>2],h=C[e>>2],G=C[e+4>>2],y=C[e+16>>2],p=C[e+32>>2],a[r+12>>2]=0,k=s,s=_(f?_(l+o)*_(.5):0),v=_(f?_(b+n)*_(.5):0),d=_(f?_(c+t)*_(.5):0),k=_(k+_(_(_(p*s)+_(R*v))+_(B*d))),o=_(F+_(f?_(l-o)*_(.5):0)),n=_(W+_(f?_(b-n)*_(.5):0)),t=_(w+_(f?_(c-t)*_(.5):0)),c=_(_(_(o*_(m(p)))+_(n*_(m(R))))+_(t*_(m(B)))),C[r+8>>2]=k-c,b=_(D+_(_(_(s*y)+_(v*g))+_(d*u))),l=_(_(_(o*_(m(y)))+_(n*_(m(g))))+_(t*_(m(u)))),C[r+4>>2]=b-l,u=_(E+_(_(_(s*h)+_(v*G))+_(d*Q))),t=_(_(_(o*_(m(h)))+_(n*_(m(G))))+_(t*_(m(Q)))),C[r>>2]=u-t,a[i+12>>2]=0,C[i+8>>2]=c+k,C[i+4>>2]=l+b,C[i>>2]=t+u},function(A,e){A|=0,e|=0;var r,i=0,f=0,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,g=0;if(r=Y-144|0,Y=r,a[A+20>>2]>=1)for(v=r+96|0,u=r- -64|0,s=r+48|0,k=r+32|0;i=a[A+28>>2]+l|0,b=i+8|0,o=a[b+4>>2],f=r+24|0,a[f>>2]=a[b>>2],a[f+4>>2]=o,n=a[i+4>>2],a[r+16>>2]=a[i>>2],a[r+20>>2]=n,o=i+24|0,t=a[o+4>>2],n=k+8|0,a[n>>2]=a[o>>2],a[n+4>>2]=t,b=i+16|0,o=a[b+4>>2],a[k>>2]=a[b>>2],a[k+4>>2]=o,t=i+40|0,c=a[t+4>>2],b=s+8|0,o=b,a[o>>2]=a[t>>2],a[o+4>>2]=c,o=i+32|0,t=a[o+4>>2],a[s>>2]=a[o>>2],a[s+4>>2]=t,c=i+56|0,g=a[c+4>>2],o=u+8|0,t=o,a[t>>2]=a[c>>2],a[t+4>>2]=g,t=i+48|0,c=a[t+4>>2],a[u>>2]=a[t>>2],a[u+4>>2]=c,t=r+8|0,i=a[i- -64>>2],i=0|Qt[a[a[i>>2]+28>>2]](i),a[t>>2]=a[i+8>>2],c=a[i+4>>2],i=a[i>>2],C[t>>2]=_(C[t>>2]*C[e+8>>2])/C[A+88>>2],a[r>>2]=i,a[r+4>>2]=c,a[r+12>>2]=0,C[r>>2]=_(C[r>>2]*C[e>>2])/C[A+80>>2],C[r+4>>2]=_(C[r+4>>2]*C[e+4>>2])/C[A+84>>2],i=a[(a[A+28>>2]+l|0)- -64>>2],Qt[a[a[i>>2]+24>>2]](i,r),a[r+76>>2]=0,C[r+72>>2]=_(C[r+72>>2]*C[e+8>>2])/C[A+88>>2],C[r+68>>2]=_(C[r+68>>2]*C[e+4>>2])/C[A+84>>2],C[r+64>>2]=_(C[r+64>>2]*C[e>>2])/C[A+80>>2],c=a[f+4>>2],i=a[A+28>>2]+l|0,t=i+8|0,a[t>>2]=a[f>>2],a[t+4>>2]=c,f=a[r+20>>2],a[i>>2]=a[r+16>>2],a[i+4>>2]=f,t=a[n+4>>2],f=i+24|0,a[f>>2]=a[n>>2],a[f+4>>2]=t,n=a[k+4>>2],f=i+16|0,a[f>>2]=a[k>>2],a[f+4>>2]=n,n=a[b+4>>2],f=i+40|0,a[f>>2]=a[b>>2],a[f+4>>2]=n,n=a[s+4>>2],f=i+32|0,a[f>>2]=a[s>>2],a[f+4>>2]=n,n=a[u+4>>2],f=i+48|0,a[f>>2]=a[u>>2],a[f+4>>2]=n,f=a[o+4>>2],i=i+56|0,a[i>>2]=a[o>>2],a[i+4>>2]=f,a[A+68>>2]&&(i=a[(a[A+28>>2]+l|0)- -64>>2],Qt[a[a[i>>2]+8>>2]](i,r+16|0,r+128|0,r+112|0),i=a[r+116>>2],a[v>>2]=a[r+112>>2],a[v+4>>2]=i,f=r+136|0,n=a[f+4>>2],i=r+88|0,a[i>>2]=a[f>>2],a[i+4>>2]=n,f=r+120|0,n=a[f+4>>2],i=v+8|0,a[i>>2]=a[f>>2],a[i+4>>2]=n,i=a[r+132>>2],a[r+80>>2]=a[r+128>>2],a[r+84>>2]=i,cr(a[A+68>>2],a[76+(a[A+28>>2]+l|0)>>2],r+80|0)),l=l+80|0,d=d+1|0,(0|d)<a[A+20>>2];);i=a[e+4>>2],a[A+80>>2]=a[e>>2],a[A+84>>2]=i,e=e+8|0,l=a[e+4>>2],i=A+88|0,a[i>>2]=a[e>>2],a[i+4>>2]=l,Qt[a[a[A>>2]+68>>2]](A),Y=r+144|0},function(A){return A|=0,A+80|0},function(A,e,r){A|=0,e=_(e),r|=0;var i,f=_(0),t=0,n=_(0),o=_(0);i=Y-96|0,Y=i,t=i+44|0,a[t>>2]=0,a[t+4>>2]=0,t=i+56|0,a[t>>2]=0,a[t+4>>2]=0,a[i+52>>2]=1065353216,t=i+76|0,a[t>>2]=0,a[t+4>>2]=0,a[i+72>>2]=1065353216,t=i+84|0,a[t>>2]=0,a[t+4>>2]=0,a[i+92>>2]=0,a[i+36>>2]=0,a[i+40>>2]=0,a[i+32>>2]=1065353216,a[i+64>>2]=0,a[i+68>>2]=0,Qt[a[a[A>>2]+8>>2]](A,i+32|0,i+16|0,i),e=_(e/_(12)),f=_(_(C[i>>2]-C[i+16>>2])*_(.5)),f=_(f+f),f=_(f*f),n=_(_(C[i+4>>2]-C[i+20>>2])*_(.5)),n=_(n+n),n=_(n*n),C[r+8>>2]=e*_(f+n),o=f,f=_(_(C[i+8>>2]-C[i+24>>2])*_(.5)),f=_(f+f),f=_(f*f),C[r+4>>2]=e*_(o+f),C[r>>2]=e*_(n+f),Y=i+96|0},function(A){return 14364},function(A,e){A|=0,e=_(e),C[A+76>>2]=e},function(A){return A|=0,_(C[A+76>>2])},function(A){return 24},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0;if(QA(A,e,r),a[e+12>>2]=0,a[e+20>>2]=a[A+76>>2],i=a[A+20>>2],a[e+16>>2]=i,i){if(n=0|Qt[a[a[r>>2]+16>>2]](r,76,i),i=a[n+8>>2],b=e,l=0|Qt[a[a[r>>2]+28>>2]](r,i),a[b+12>>2]=l,a[e+16>>2]>0)for(t=72,i=i+72|0;f=a[A+28>>2]+t|0,a[i>>2]=a[f>>2],b=i+-8|0,l=0|Qt[a[a[r>>2]+28>>2]](r,a[f+-8>>2]),a[b>>2]=l,Qt[a[a[r>>2]+24>>2]](r,a[(a[A+28>>2]+t|0)-8>>2])||(f=a[(a[A+28>>2]+t|0)-8>>2],l=r,u=0|Qt[a[a[f>>2]+52>>2]](f),s=1,b=a[a[r>>2]+16>>2],f=0|Qt[b](0|l,0|u,0|s),o=a[(a[A+28>>2]+t|0)-8>>2],s=r,u=f,l=0|Qt[a[a[o>>2]+56>>2]](o,a[f+8>>2],r),k=1346455635,v=a[(a[A+28>>2]+t|0)-8>>2],b=a[a[r>>2]+20>>2],Qt[b](0|s,0|u,0|l,0|k,0|v)),f=a[A+28>>2]+t|0,a[i+-72>>2]=a[f+-72>>2],a[i+-68>>2]=a[f+-68>>2],a[i+-64>>2]=a[f+-64>>2],a[i+-60>>2]=a[f+-60>>2],a[i+-56>>2]=a[f+-56>>2],a[i+-52>>2]=a[f+-52>>2],a[i+-48>>2]=a[f+-48>>2],a[i+-44>>2]=a[f+-44>>2],a[i+-40>>2]=a[f+-40>>2],a[i+-36>>2]=a[f+-36>>2],a[i+-32>>2]=a[f+-32>>2],a[i+-28>>2]=a[f+-28>>2],a[i+-24>>2]=a[f+-24>>2],a[i+-20>>2]=a[f+-20>>2],a[i+-16>>2]=a[f+-16>>2],a[i+-4>>2]=a[f+-4>>2],a[i+-12>>2]=a[f+-12>>2],t=t+80|0,i=i+76|0,c=c+1|0,(0|c)<a[e+16>>2];);Qt[a[a[r>>2]+20>>2]](r,n,14288,1497453121,a[n+8>>2])}return 14313},function(A,e){A|=0,e|=0;var r=0,i=0;if(a[A+72>>2]=a[A+72>>2]+1,r=a[A+20>>2],(0|r)>=1)for(i=B(r,80)+-16|0;r=r+-1|0,(0|e)==a[a[A+28>>2]+i>>2]&&Br(A,r),i=i+-80|0,(0|r)>0;);Qt[a[a[A>>2]+68>>2]](A)},function(A){A|=0;var e,r=_(0),i=0,f=0,t=0,n=0;if(e=Y-32|0,Y=e,a[A+52>>2]=-581039253,a[A+56>>2]=-581039253,a[A+36>>2]=1566444395,a[A+40>>2]=1566444395,i=A+60|0,a[i>>2]=-581039253,a[i+4>>2]=0,i=A+44|0,a[i>>2]=1566444395,a[i+4>>2]=0,a[A+20>>2]>=1)for(i=64;f=a[A+28>>2]+i|0,t=a[f>>2],Qt[a[a[t>>2]+8>>2]](t,f+-64|0,e+16|0,e),r=C[e+16>>2],C[A+36>>2]>r&&(C[A+36>>2]=r),r=C[e>>2],C[A+52>>2]<r&&(C[A+52>>2]=r),r=C[e+20>>2],C[A+40>>2]>r&&(C[A+40>>2]=r),r=C[e+4>>2],C[A+56>>2]<r&&(C[A+56>>2]=r),r=C[e+24>>2],C[A+44>>2]>r&&(C[A+44>>2]=r),r=C[e+8>>2],C[A+60>>2]<r&&(C[A+60>>2]=r),i=i+80|0,n=n+1|0,(0|n)<a[A+20>>2];);Y=e+32|0},_r,function(A){var e;A|=0,a[A>>2]=14564,e=a[A+32>>2],e&&(o[A+36|0]&&CA(e),a[A+32>>2]=0),a[A+32>>2]=0,a[A+24>>2]=0,a[A+28>>2]=0,f[A+36|0]=1,CA(A)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=0,n=0,c=0,b=0,l=_(0),u=_(0),s=_(0),k=_(0),d=_(0),m=_(0),R=0,Q=0,h=0,G=0;if(r=Y-80|0,Y=r,f=0|Qt[a[a[A>>2]+28>>2]](A),(0|f)>=1)for(l=C[A+12>>2],u=C[A+8>>2],s=C[A+4>>2];;){Qt[a[a[A>>2]+16>>2]](A,r+76|0,r+52|0,r- -64|0,r+56|0,r+72|0,r+68|0,r+48|0,r+60|0,R),i=a[r+64>>2];A:if(!(i>>>0>1))if(i-1){if(i=a[r+60>>2]+-2|0,i>>>0>3)break A;switch(i-1|0){case 2:if(a[r+48>>2]<1)break A;for(i=0;b=a[r+76>>2],c=a[r+56>>2],n=a[r+72>>2]+B(a[r+68>>2],i)|0,t=b+B(c,o[0|n])|0,k=C[t>>2],d=C[t+4>>2],m=C[t+8>>2],a[r+12>>2]=0,C[r+8>>2]=l*m,C[r+4>>2]=u*d,C[r>>2]=s*k,t=b+B(c,o[n+1|0])|0,k=C[t>>2],d=C[t+4>>2],m=C[t+8>>2],a[r+28>>2]=0,C[r+24>>2]=l*m,C[r+20>>2]=u*d,C[r+16>>2]=s*k,n=b+B(c,o[n+2|0])|0,k=C[n>>2],d=C[n+4>>2],m=C[n+8>>2],a[r+44>>2]=0,C[r+40>>2]=l*m,C[r+36>>2]=u*d,C[r+32>>2]=s*k,Qt[a[a[e>>2]+8>>2]](e,r,R,i),i=i+1|0,(0|i)<a[r+48>>2];);break A;case 0:if(a[r+48>>2]<1)break A;for(i=0;b=a[r+76>>2],c=a[r+56>>2],n=a[r+72>>2]+B(a[r+68>>2],i)|0,t=b+B(c,v[n>>1])|0,k=C[t>>2],d=C[t+4>>2],m=C[t+8>>2],a[r+12>>2]=0,C[r+8>>2]=l*m,C[r+4>>2]=u*d,C[r>>2]=s*k,t=b+B(c,v[n+2>>1])|0,k=C[t>>2],d=C[t+4>>2],m=C[t+8>>2],a[r+28>>2]=0,C[r+24>>2]=l*m,C[r+20>>2]=u*d,C[r+16>>2]=s*k,n=b+B(c,v[n+4>>1])|0,k=C[n+8>>2],d=C[n+4>>2],m=C[n>>2],a[r+44>>2]=0,C[r+32>>2]=s*m,C[r+36>>2]=u*d,C[r+40>>2]=l*k,Qt[a[a[e>>2]+8>>2]](e,r,R,i),i=i+1|0,(0|i)<a[r+48>>2];);break A;case 1:break A}if(a[r+48>>2]<1)break A;for(i=0;b=a[r+76>>2],c=a[r+56>>2],n=a[r+72>>2]+B(a[r+68>>2],i)|0,t=b+B(c,a[n>>2])|0,k=C[t>>2],d=C[t+4>>2],m=C[t+8>>2],a[r+12>>2]=0,C[r+8>>2]=l*m,C[r+4>>2]=u*d,C[r>>2]=s*k,t=b+B(c,a[n+4>>2])|0,k=C[t>>2],d=C[t+4>>2],m=C[t+8>>2],a[r+28>>2]=0,C[r+24>>2]=l*m,C[r+20>>2]=u*d,C[r+16>>2]=s*k,n=b+B(c,a[n+8>>2])|0,k=C[n+8>>2],d=C[n+4>>2],m=C[n>>2],a[r+44>>2]=0,C[r+32>>2]=s*m,C[r+36>>2]=u*d,C[r+40>>2]=l*k,Qt[a[a[e>>2]+8>>2]](e,r,R,i),i=i+1|0,(0|i)<a[r+48>>2];);}else if(i=a[r+60>>2]+-2|0,!(i>>>0>3)){switch(i-1|0){case 2:if(a[r+48>>2]<1)break A;for(i=0;n=a[r+72>>2]+B(a[r+68>>2],i)|0,c=o[0|n],a[r+12>>2]=0,b=a[r+76>>2],t=c,c=a[r+56>>2],t=b+B(t,c)|0,C[r+8>>2]=l*_(g[t+16>>3]),C[r+4>>2]=u*_(g[t+8>>3]),C[r>>2]=s*_(g[t>>3]),t=o[n+1|0],a[r+28>>2]=0,t=b+B(t,c)|0,C[r+24>>2]=l*_(g[t+16>>3]),C[r+20>>2]=u*_(g[t+8>>3]),C[r+16>>2]=s*_(g[t>>3]),n=b+B(c,o[n+2|0])|0,Q=g[n>>3],h=g[n+8>>3],G=g[n+16>>3],a[r+44>>2]=0,C[r+40>>2]=l*_(G),C[r+36>>2]=u*_(h),C[r+32>>2]=s*_(Q),Qt[a[a[e>>2]+8>>2]](e,r,R,i),i=i+1|0,(0|i)<a[r+48>>2];);break A;case 0:if(a[r+48>>2]<1)break A;for(i=0;a[r+12>>2]=0,a[r+28>>2]=0,b=a[r+76>>2],c=a[r+56>>2],n=a[r+72>>2]+B(a[r+68>>2],i)|0,t=b+B(c,v[n>>1])|0,C[r+8>>2]=l*_(g[t+16>>3]),C[r+4>>2]=u*_(g[t+8>>3]),C[r>>2]=s*_(g[t>>3]),t=b+B(c,v[n+2>>1])|0,C[r+24>>2]=l*_(g[t+16>>3]),C[r+20>>2]=u*_(g[t+8>>3]),C[r+16>>2]=s*_(g[t>>3]),a[r+44>>2]=0,n=b+B(c,v[n+4>>1])|0,C[r+32>>2]=s*_(g[n>>3]),C[r+36>>2]=u*_(g[n+8>>3]),C[r+40>>2]=l*_(g[n+16>>3]),Qt[a[a[e>>2]+8>>2]](e,r,R,i),i=i+1|0,(0|i)<a[r+48>>2];);break A;case 1:break A}if(!(a[r+48>>2]<1))for(i=0;a[r+12>>2]=0,a[r+28>>2]=0,b=a[r+76>>2],c=a[r+56>>2],n=a[r+72>>2]+B(a[r+68>>2],i)|0,t=b+B(c,a[n>>2])|0,C[r+8>>2]=l*_(g[t+16>>3]),C[r+4>>2]=u*_(g[t+8>>3]),C[r>>2]=s*_(g[t>>3]),t=b+B(c,a[n+4>>2])|0,C[r+24>>2]=l*_(g[t+16>>3]),C[r+20>>2]=u*_(g[t+8>>3]),C[r+16>>2]=s*_(g[t>>3]),a[r+44>>2]=0,n=b+B(c,a[n+8>>2])|0,C[r+32>>2]=s*_(g[n>>3]),C[r+36>>2]=u*_(g[n+8>>3]),C[r+40>>2]=l*_(g[n+16>>3]),Qt[a[a[e>>2]+8>>2]](e,r,R,i),i=i+1|0,(0|i)<a[r+48>>2];);}if(Qt[a[a[A>>2]+24>>2]](A,R),R=R+1|0,(0|R)==(0|f))break}Y=r+80|0},mr,mr,Rr,Rr,function(A){return A|=0,a[A+24>>2]},Rr,Rr,function(A){return A|=0,1==a[A+48>>2]|0},function(A,e,r){A|=0,e|=0,r|=0;var i,f=0;f=a[e+4>>2],a[A+52>>2]=a[e>>2],a[A+56>>2]=f,e=e+8|0,i=a[e+4>>2],f=A+60|0,a[f>>2]=a[e>>2],a[f+4>>2]=i,e=a[r+4>>2],a[A+68>>2]=a[r>>2],a[A+72>>2]=e,r=r+8|0,f=a[r+4>>2],e=A+76|0,a[e>>2]=a[r>>2],a[e+4>>2]=f,a[A+48>>2]=1},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0;i=a[A+56>>2],a[e>>2]=a[A+52>>2],a[e+4>>2]=i,i=A+60|0,f=a[i+4>>2],e=e+8|0,a[e>>2]=a[i>>2],a[e+4>>2]=f,i=A+76|0,f=a[i+4>>2],e=r+8|0,a[e>>2]=a[i>>2],a[e+4>>2]=f,e=a[A+72>>2],a[r>>2]=a[A+68>>2],a[r+4>>2]=e},function(A){return 28},function(A,e,r){A|=0,e|=0,r|=0;var i,n=0,c=0,b=0,l=0,u=0,s=0,k=0,d=0,C=0,g=0,_=0,m=0,R=0,Q=0,h=0;if(i=Y-32|0,Y=i,n=0|Qt[a[a[A>>2]+28>>2]](A),a[e>>2]=0,a[e+20>>2]=n,n){if(g=0|Qt[a[a[r>>2]+16>>2]](r,32,n),u=a[g+8>>2],Q=e,h=0|Qt[a[a[r>>2]+28>>2]](r,u),a[Q>>2]=h,R=0|Qt[a[a[A>>2]+28>>2]](A),(0|R)>0)for(;;){Qt[a[a[A>>2]+16>>2]](A,i+28|0,i+4|0,i+16|0,i+8|0,i+24|0,i+20|0,i,i+12|0,C),a[u>>2]=0,a[u+4>>2]=0,n=u+8|0,a[n>>2]=0,a[n+4>>2]=0,n=u+16|0,a[n>>2]=0,a[n+4>>2]=0,n=a[i>>2],a[u+24>>2]=n,a[u+28>>2]=a[i+4>>2],c=a[i+12>>2]+-2|0;A:if(!(c>>>0>3)){switch(c-1|0){default:if(!n)break A;if(l=0|Qt[a[a[r>>2]+16>>2]](r,4,B(n,3)),n=a[l+8>>2],Q=u,h=0|Qt[a[a[r>>2]+28>>2]](r,n),a[Q+8>>2]=h,a[i>>2]>=1)for(c=0,s=a[i+24>>2];b=s+B(a[i+20>>2],c)|0,a[n>>2]=a[b>>2],a[n+4>>2]=a[b+4>>2],a[n+8>>2]=a[b+8>>2],n=n+12|0,c=c+1|0,(0|c)<a[i>>2];);Qt[a[a[r>>2]+20>>2]](r,l,14373,1497453121,a[l+8>>2]);break A;case 0:if(!n)break A;if(l=0|Qt[a[a[r>>2]+16>>2]](r,8,n),n=a[l+8>>2],Q=u,h=0|Qt[a[a[r>>2]+28>>2]](r,n),a[Q+12>>2]=h,a[i>>2]>=1)for(c=0;b=a[i+24>>2]+B(a[i+20>>2],c)|0,t[n>>1]=v[b>>1],t[n+2>>1]=v[b+2>>1],b=v[b+4>>1],t[n+6>>1]=0,t[n+4>>1]=b,n=n+8|0,c=c+1|0,(0|c)<a[i>>2];);Qt[a[a[r>>2]+20>>2]](r,l,14388,1497453121,a[l+8>>2]);break A;case 1:break A;case 2:}if(n){if(l=0|Qt[a[a[r>>2]+16>>2]](r,4,n),n=a[l+8>>2],Q=u,h=0|Qt[a[a[r>>2]+28>>2]](r,n),a[Q+16>>2]=h,a[i>>2]>=1)for(c=0;b=a[i+24>>2]+B(a[i+20>>2],c)|0,f[0|n]=o[0|b],f[n+1|0]=o[b+1|0],f[n+2|0]=o[b+2|0],f[n+3|0]=0,n=n+4|0,c=c+1|0,(0|c)<a[i>>2];);Qt[a[a[r>>2]+20>>2]](r,l,14415,1497453121,a[l+8>>2])}}n=a[i+16>>2];A:if(!(n>>>0>1))if(n-1){if(n=a[i+4>>2],!n)break A;if(b=0|Qt[a[a[r>>2]+16>>2]](r,16,n),n=a[b+8>>2],Q=u,h=0|Qt[a[a[r>>2]+28>>2]](r,n),a[Q>>2]=h,s=a[i+4>>2],(0|s)>=1)for(l=0,_=a[i+8>>2],c=a[i+28>>2];a[n>>2]=a[c>>2],a[n+4>>2]=a[c+4>>2],a[n+8>>2]=a[c+8>>2],c=c+_|0,n=n+16|0,l=l+1|0,(0|l)<(0|s););Qt[a[a[r>>2]+20>>2]](r,b,14438,1497453121,a[b+8>>2])}else if(n=a[i+4>>2],n){if(b=0|Qt[a[a[r>>2]+16>>2]](r,32,n),n=a[b+8>>2],Q=u,h=0|Qt[a[a[r>>2]+28>>2]](r,n),a[Q+4>>2]=h,s=a[i+4>>2],(0|s)>=1)for(l=0,_=a[i+8>>2],c=a[i+28>>2];k=a[c+4>>2],a[n>>2]=a[c>>2],a[n+4>>2]=k,d=c+8|0,m=a[d+4>>2],k=n+8|0,a[k>>2]=a[d>>2],a[k+4>>2]=m,d=c+16|0,m=a[d+4>>2],k=n+16|0,a[k>>2]=a[d>>2],a[k+4>>2]=m,c=c+_|0,n=n+32|0,l=l+1|0,(0|l)<(0|s););Qt[a[a[r>>2]+20>>2]](r,b,14457,1497453121,a[b+8>>2])}if(Qt[a[a[A>>2]+24>>2]](A,C),u=u+32|0,C=C+1|0,(0|C)==(0|R))break}Qt[a[a[r>>2]+20>>2]](r,g,14477,1497453121,a[g+8>>2])}return a[e+24>>2]=0,a[e+4>>2]=a[A+4>>2],a[e+8>>2]=a[A+8>>2],a[e+12>>2]=a[A+12>>2],a[e+16>>2]=a[A+16>>2],Y=i+32|0,14492},Gr,function(A){A|=0,CA(Gr(A))},function(A,e){A|=0,e|=0;var r=0,i=0,t=0,n=0,c=0,b=0;A:{if(o[A+165|0]){if(a[A+92>>2]>=(0|e))break A;if(r=e?dA(e<<4):0,b=r,n=a[A+88>>2],(0|n)>=1)for(;r=a[A+96>>2]+c|0,t=a[r+4>>2],i=c+b|0,a[i>>2]=a[r>>2],a[i+4>>2]=t,r=r+8|0,t=a[r+4>>2],i=i+8|0,a[i>>2]=a[r>>2],a[i+4>>2]=t,c=c+16|0,n=n+-1|0,n;);return t=a[A+96>>2],t&&(o[A+100|0]&&CA(t),a[A+96>>2]=0),a[A+96>>2]=b,a[A+92>>2]=e,void(f[A+100|0]=1)}if(!(a[A+112>>2]>=(0|e))){r=e?dA(e<<2):0,t=a[A+116>>2],i=a[A+108>>2];e:{if((0|i)>=1)for(c=r,n=t;a[c>>2]=a[n>>2],c=c+4|0,n=n+4|0,i=i+-1|0,i;);else if(!t)break e;o[A+120|0]&&CA(t),a[A+116>>2]=0}a[A+116>>2]=r,a[A+112>>2]=e,f[A+120|0]=1}}},function(A,e){A|=0,e|=0;var r=0,i=0,n=0,c=0,b=0;A:{if(o[A+164|0]){if(a[A+132>>2]>=(0|e))break A;i=e?dA(e<<2):0,n=a[A+136>>2],r=a[A+128>>2];e:{if((0|r)>=1)for(c=i,b=n;a[c>>2]=a[b>>2],c=c+4|0,b=b+4|0,r=r+-1|0,r;);else if(!n)break e;o[A+140|0]&&CA(n),a[A+136>>2]=0}return a[A+136>>2]=i,a[A+132>>2]=e,void(f[A+140|0]=1)}if(!(a[A+152>>2]>=(0|e))){i=e?dA(e<<1):0,n=a[A+156>>2],r=a[A+148>>2];e:{if((0|r)>=1)for(c=i,b=n;t[c>>1]=v[b>>1],c=c+2|0,b=b+2|0,r=r+-1|0,r;);else if(!n)break e;o[A+160|0]&&CA(n),a[A+156>>2]=0}a[A+156>>2]=i,a[A+152>>2]=e,f[A+160|0]=1}}},hA,function(A,e,r){A|=0,e|=0,r|=0;var i,f,t,n,o=_(0),c=_(0),b=_(0),l=0,u=_(0);i=Y-32|0,Y=i,f=r+8|0,n=a[f+4>>2],t=i+24|0,l=t,a[l>>2]=a[f>>2],a[l+4>>2]=n,l=a[r+4>>2],a[i+16>>2]=a[r>>2],a[i+20>>2]=l,o=C[i+16>>2],b=C[i+20>>2],c=C[t>>2],_(_(_(o*o)+_(b*b))+_(c*c))<_(1.4210854715202004e-14)&&(a[i+24>>2]=-1082130432,a[i+28>>2]=0,a[i+16>>2]=-1082130432,a[i+20>>2]=-1082130432,c=_(-1),b=_(-1),o=_(-1)),u=c,c=_(_(1)/_(y(_(_(_(o*o)+_(b*b))+_(c*c))))),C[i+24>>2]=u*c,C[i+20>>2]=b*c,C[i+16>>2]=o*c,hA(i,e,i+16|0);A:{e:if(r=a[e+4>>2],!(r>>>0>13)){switch(r-2|0){case 6:o=_(C[e+32>>2]*C[e+16>>2]);break A;case 0:case 1:case 4:case 5:case 7:case 10:break e}o=C[e+48>>2];break A}o=_(Qt[a[a[e>>2]+48>>2]](e))}a[A+12>>2]=0,C[A+8>>2]=_(o*C[i+24>>2])+C[i+8>>2],C[A+4>>2]=_(o*C[i+20>>2])+C[i+4>>2],C[A>>2]=_(o*C[i+16>>2])+C[i>>2],Y=i+32|0},sA,ve,function(A,e,r,i,f,t,n,o,c,b){return A|=0,e|=0,r|=0,i|=0,f|=0,t|=0,n|=0,o|=0,c|=0,b|=0,b=Y-80|0,Y=b,A=0,a[b+76>>2]=0,C[b+64>>2]=C[t+48>>2]-C[f+48>>2],C[b+72>>2]=C[t+56>>2]-C[f+56>>2],C[b+68>>2]=C[t+52>>2]-C[f+52>>2],e=1,(wr(r,f,i,t,b- -64|0,b+8|0)||(e=0,function(A,e,r,i,f,t){var n,o,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),g=_(0),B=_(0),m=_(0),R=0,Q=0,h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0);if(n=Y-544|0,Y=n,a[t>>2]=0,a[t+4>>2]=0,a[t+32>>2]=0,Q=t+24|0,a[Q>>2]=0,a[Q+4>>2]=0,Q=t+16|0,a[Q>>2]=0,a[Q+4>>2]=0,Q=t+8|0,a[Q>>2]=0,a[Q+4>>2]=0,a[n+388>>2]=r,a[n+384>>2]=A,b=C[i+20>>2],l=C[i+36>>2],A=e+20|0,u=C[A>>2],r=e+36|0,s=C[r>>2],Q=e+24|0,g=C[Q>>2],c=C[i+24>>2],o=e+40|0,k=C[o>>2],v=C[i+40>>2],B=C[i+32>>2],m=C[i>>2],h=C[i+16>>2],G=C[i+4>>2],p=C[e+32>>2],W=C[e>>2],w=C[e+16>>2],D=C[e+4>>2],E=C[e+8>>2],F=C[i+8>>2],a[n+436>>2]=0,a[n+420>>2]=0,a[n+404>>2]=0,Z=_(_(_(E*F)+_(g*c))+_(k*v)),C[n+432>>2]=Z,V=_(_(_(D*F)+_(u*c))+_(s*v)),C[n+428>>2]=V,c=_(_(_(W*F)+_(w*c))+_(p*v)),C[n+424>>2]=c,v=_(_(_(E*G)+_(g*b))+_(k*l)),C[n+416>>2]=v,F=_(_(_(D*G)+_(u*b))+_(s*l)),C[n+412>>2]=F,b=_(_(_(W*G)+_(w*b))+_(p*l)),C[n+408>>2]=b,l=_(_(_(m*E)+_(h*g))+_(B*k)),C[n+400>>2]=l,u=_(_(_(m*D)+_(h*u))+_(B*s)),C[n+396>>2]=u,s=_(_(_(m*W)+_(h*w))+_(B*p)),C[n+392>>2]=s,g=C[A>>2],k=C[r>>2],B=C[Q>>2],m=C[i+52>>2],h=C[e+52>>2],G=C[o>>2],p=C[i+56>>2],W=C[e+56>>2],w=C[e>>2],D=C[e+16>>2],E=C[e+32>>2],N=C[e+4>>2],I=C[e+8>>2],J=C[i+48>>2],x=C[e+48>>2],a[n+508>>2]=0,a[n+500>>2]=0,a[n+484>>2]=0,C[n+480>>2]=Z,C[n+476>>2]=v,C[n+472>>2]=l,a[n+468>>2]=0,C[n+464>>2]=V,C[n+460>>2]=F,C[n+456>>2]=u,a[n+452>>2]=0,C[n+448>>2]=c,C[n+444>>2]=b,b=_(J-x),l=_(m-h),u=_(p-W),C[n+496>>2]=_(_(I*b)+_(B*l))+_(G*u),C[n+492>>2]=_(_(b*N)+_(l*g))+_(u*k),C[n+488>>2]=_(_(b*w)+_(l*D))+_(u*E),a[n+504>>2]=348,C[n+440>>2]=s,A=n+136|0,a[A>>2]=0,a[A+4>>2]=0,a[n+128>>2]=0,a[n+132>>2]=0,a[n+364>>2]=0,a[n+368>>2]=0,a[n+376>>2]=2,a[n+144>>2]=0,A=yr(n,n+384|0,f),A)a[t>>2]=1==(0|A)?1:2;else{if(R=a[n+372>>2],a[R+32>>2])for(c=_(0),i=0,A=0,g=_(0),s=_(0),u=_(0),l=_(0),b=_(0);R=i+R|0,k=C[R+16>>2],Q=a[R>>2],R=a[n+504>>2],f=a[n+508>>2],r=a[n+384>>2]+(f>>1)|0,Qt[1&f?a[a[r>>2]+R>>2]:R](n+528|0,r,Q),Q=a[n+508>>2],r=a[n+388>>2]+(Q>>1)|0,h=_(k*C[n+536>>2]),G=_(k*C[n+532>>2]),p=_(k*C[n+528>>2]),f=a[a[n+372>>2]+i>>2],v=_(-C[f+8>>2]),B=_(-C[f+4>>2]),m=_(-C[f>>2]),R=a[n+504>>2],R=1&Q?a[a[r>>2]+R>>2]:R,c=_(c+h),g=_(g+G),s=_(s+p),a[n+524>>2]=0,C[n+520>>2]=_(_(C[n+424>>2]*m)+_(C[n+428>>2]*B))+_(C[n+432>>2]*v),C[n+516>>2]=_(_(C[n+408>>2]*m)+_(C[n+412>>2]*B))+_(C[n+416>>2]*v),C[n+512>>2]=_(_(C[n+392>>2]*m)+_(C[n+396>>2]*B))+_(C[n+400>>2]*v),Qt[R](n+528|0,r,n+512|0),v=C[n+528>>2],B=C[n+532>>2],m=C[n+536>>2],u=_(u+_(k*_(_(_(_(v*C[n+472>>2])+_(B*C[n+476>>2]))+_(m*C[n+480>>2]))+C[n+496>>2]))),l=_(l+_(k*_(_(_(_(v*C[n+456>>2])+_(B*C[n+460>>2]))+_(m*C[n+464>>2]))+C[n+492>>2]))),b=_(b+_(k*_(_(_(_(v*C[n+440>>2])+_(B*C[n+444>>2]))+_(m*C[n+448>>2]))+C[n+488>>2]))),i=i+4|0,A=A+1|0,R=a[n+372>>2],A>>>0<d[R+32>>2];);else b=_(0),l=_(0),u=_(0),s=_(0),g=_(0),c=_(0);k=C[e+48>>2],v=C[e+8>>2],B=C[e>>2],m=C[e+4>>2],h=C[e+52>>2],G=C[e+24>>2],p=C[e+16>>2],W=C[e+20>>2],w=C[e+56>>2],D=C[e+40>>2],E=C[e+32>>2],F=C[e+36>>2],a[t+16>>2]=0,C[t+12>>2]=w+_(_(_(s*E)+_(g*F))+_(c*D)),C[t+8>>2]=h+_(_(_(s*p)+_(g*W))+_(c*G)),C[t+4>>2]=k+_(_(_(s*B)+_(g*m))+_(c*v)),v=C[e+48>>2],B=C[e+8>>2],m=C[e>>2],h=C[e+4>>2],G=C[e+52>>2],p=C[e+24>>2],W=C[e+16>>2],w=C[e+20>>2],D=C[e+56>>2],E=C[e+40>>2],F=C[e+32>>2],Z=C[e+36>>2],s=_(s-b),g=_(g-l),c=_(c-u),k=_(y(_(_(_(s*s)+_(g*g))+_(c*c)))),C[t+52>>2]=k,a[t+48>>2]=0,a[t+32>>2]=0,V=c,c=k>_(9999999747378752e-20)?_(_(1)/k):_(1),C[t+44>>2]=V*c,C[t+40>>2]=g*c,C[t+36>>2]=s*c,C[t+28>>2]=D+_(_(_(b*F)+_(l*Z))+_(u*E)),C[t+24>>2]=G+_(_(_(b*W)+_(l*w))+_(u*p)),C[t+20>>2]=v+_(_(_(b*m)+_(l*h))+_(u*B)),R=1}return Y=n+544|0,R}(r,f,i,t,b- -64|0,b+8|0)))&&(A=a[b+16>>2],a[o>>2]=a[b+12>>2],a[o+4>>2]=A,r=b+20|0,i=a[r+4>>2],A=o+8|0,a[A>>2]=a[r>>2],a[A+4>>2]=i,A=b+28|0,r=a[A+4>>2],a[c>>2]=a[A>>2],a[c+4>>2]=r,r=b+36|0,i=a[r+4>>2],A=c+8|0,a[A>>2]=a[r>>2],a[A+4>>2]=i,A=a[b+48>>2],a[n>>2]=a[b+44>>2],a[n+4>>2]=A,r=b+52|0,i=a[r+4>>2],A=n+8|0,a[A>>2]=a[r>>2],a[A+4>>2]=i,A=e),Y=b+80|0,0|A},sA,ve,Sr,ve,function(A,e,r,i,t,n,c,b,l,u){A|=0,e|=0,r|=0,i|=0,t|=0,n|=0,c|=0,b|=0,l|=0,u|=0;var s,k,v,d,g=_(0),B=0,m=_(0),R=_(0),Q=0,h=0,G=_(0),y=0,p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=0,I=0,J=_(0),x=0,U=0,M=0,S=_(0),X=_(0),T=_(0),j=_(0),O=0;for(A=Y-4240|0,Y=A,U=a[r+4>>2]+-17>>>0<=1?a[i+4>>2]+-17>>>0<2:U;Xr(),Q=(A+1264|0)+B|0,a[Q+12>>2]=0,R=C[B+1744>>2],G=_(-R),g=C[B+1748>>2],m=C[B+1752>>2],C[Q+8>>2]=_(_(C[t+8>>2]*G)-_(C[t+24>>2]*g))-_(C[t+40>>2]*m),C[Q+4>>2]=_(_(C[t+4>>2]*G)-_(g*C[t+20>>2]))-_(m*C[t+36>>2]),C[Q>>2]=_(_(C[t>>2]*G)-_(g*C[t+16>>2]))-_(m*C[t+32>>2]),G=C[n+32>>2],F=C[n>>2],W=C[n+16>>2],w=C[n+36>>2],D=C[n+4>>2],E=C[n+20>>2],Z=C[n+40>>2],p=C[n+8>>2],V=C[n+24>>2],Q=(A+272|0)+B|0,a[Q+12>>2]=0,C[Q+8>>2]=_(_(R*p)+_(g*V))+_(m*Z),C[Q+4>>2]=_(_(R*D)+_(g*E))+_(m*w),C[Q>>2]=_(_(R*F)+_(g*W))+_(m*G),B=B+16|0,672!=(0|B););if(I=0|Qt[a[a[r>>2]+84>>2]](r),Q=42,!((0|I)<1)){for(B=0,Q=0;Qt[a[a[r>>2]+88>>2]](r,Q,A+3248|0),a[A+3260>>2]=0,g=C[A+3248>>2],m=C[A+3252>>2],R=C[A+3256>>2],C[A+3256>>2]=_(_(g*C[t+32>>2])+_(m*C[t+36>>2]))+_(R*C[t+40>>2]),C[A+3252>>2]=_(_(g*C[t+16>>2])+_(m*C[t+20>>2]))+_(R*C[t+24>>2]),C[A+3248>>2]=_(_(g*C[t>>2])+_(m*C[t+4>>2]))+_(R*C[t+8>>2]),Xr(),N=a[A+3260>>2],h=B+2424|0,a[h>>2]=a[A+3256>>2],a[h+4>>2]=N,N=a[A+3252>>2],h=B+2416|0,a[h>>2]=a[A+3248>>2],a[h+4>>2]=N,h=(A+1264|0)+B|0,a[h+684>>2]=0,R=C[A+3248>>2],G=_(-R),g=C[A+3252>>2],m=C[A+3256>>2],C[h+680>>2]=_(_(C[t+8>>2]*G)-_(C[t+24>>2]*g))-_(C[t+40>>2]*m),C[h+676>>2]=_(_(C[t+4>>2]*G)-_(g*C[t+20>>2]))-_(m*C[t+36>>2]),C[h+672>>2]=_(_(C[t>>2]*G)-_(g*C[t+16>>2]))-_(m*C[t+32>>2]),h=(A+272|0)+B|0,a[h+684>>2]=0,C[h+672>>2]=_(_(R*C[n>>2])+_(g*C[n+16>>2]))+_(m*C[n+32>>2]),C[h+676>>2]=_(_(R*C[n+4>>2])+_(g*C[n+20>>2]))+_(m*C[n+36>>2]),C[h+680>>2]=_(_(R*C[n+8>>2])+_(g*C[n+24>>2]))+_(m*C[n+40>>2]),B=B+16|0,Q=Q+1|0,(0|I)!=(0|Q););Q=Q+42|0}if(k=r,v=A+1264|0,d=A+3248|0,s=0|Qt[a[a[i>>2]+84>>2]](i),(0|s)>=1){for(h=Q<<4,I=1744,N=A+1264|0,M=A+272|0,B=0;Qt[a[a[i>>2]+88>>2]](i,B,A+3248|0),a[A+3260>>2]=0,g=C[A+3248>>2],m=C[A+3252>>2],R=C[A+3256>>2],C[A+3256>>2]=_(_(g*C[n+32>>2])+_(m*C[n+36>>2]))+_(R*C[n+40>>2]),C[A+3252>>2]=_(_(g*C[n+16>>2])+_(m*C[n+20>>2]))+_(R*C[n+24>>2]),C[A+3248>>2]=_(_(g*C[n>>2])+_(m*C[n+4>>2]))+_(R*C[n+8>>2]),Xr(),O=a[A+3260>>2],y=h+I|0,x=y+8|0,a[x>>2]=a[A+3256>>2],a[x+4>>2]=O,x=a[A+3252>>2],a[y>>2]=a[A+3248>>2],a[y+4>>2]=x,F=C[t+32>>2],W=C[t>>2],w=C[t+16>>2],D=C[t+36>>2],E=C[t+4>>2],Z=C[t+20>>2],p=C[t+40>>2],G=C[t+8>>2],V=C[t+24>>2],g=C[A+3256>>2],R=C[A+3248>>2],m=C[A+3252>>2],y=h+N|0,a[y+12>>2]=0,J=G,G=_(-R),C[y+8>>2]=_(_(J*G)-_(V*m))-_(p*g),C[y+4>>2]=_(_(E*G)-_(Z*m))-_(D*g),C[y>>2]=_(_(W*G)-_(w*m))-_(F*g),G=C[n+32>>2],F=C[n>>2],W=C[n+16>>2],w=C[n+36>>2],D=C[n+4>>2],E=C[n+20>>2],Z=C[n+40>>2],p=C[n+8>>2],V=C[n+24>>2],y=h+M|0,a[y+12>>2]=0,C[y+8>>2]=_(_(R*p)+_(m*V))+_(g*Z),C[y+4>>2]=_(_(R*D)+_(m*E))+_(g*w),C[y>>2]=_(_(R*F)+_(m*W))+_(g*G),M=M+16|0,N=N+16|0,I=I+16|0,B=B+1|0,(0|s)!=(0|B););Q=B+Q|0}if(Qt[a[a[r>>2]+76>>2]](k,v,d,Q),Qt[a[a[i>>2]+76>>2]](i,A+272|0,A+2256|0,Q),(0|Q)<1)G=_(0xde0b6b000000000),D=_(0),F=_(0),E=_(0),W=_(0),Z=_(0),w=_(0),V=_(0);else for(G=_(0xde0b6b000000000),B=0,V=_(0),w=_(0),Z=_(0),W=_(0),E=_(0),F=_(0),D=_(0);Xr(),g=C[B+1744>>2],m=C[B+1748>>2],R=U?_(0):C[B+1752>>2],+_(_(_(g*g)+_(m*m))+_(R*R))>.01&&(h=(A+2256|0)+B|0,p=C[h>>2],J=C[h+4>>2],S=C[h+8>>2],h=(A+3248|0)+B|0,X=C[h>>2],T=C[h+4>>2],j=C[h+8>>2],p=_(_(_(g*_(_(_(_(_(p*C[n>>2])+_(J*C[n+4>>2]))+_(S*C[n+8>>2]))+C[n+48>>2])-_(_(_(_(X*C[t>>2])+_(T*C[t+4>>2]))+_(j*C[t+8>>2]))+C[t+48>>2])))+_(m*_(_(_(_(_(p*C[n+16>>2])+_(J*C[n+20>>2]))+_(S*C[n+24>>2]))+C[n+52>>2])-_(_(_(_(X*C[t+16>>2])+_(T*C[t+20>>2]))+_(j*C[t+24>>2]))+C[t+52>>2]))))+_(R*_(U?0:_(_(_(_(p*C[n+32>>2])+_(J*C[n+36>>2]))+_(S*C[n+40>>2]))+C[n+56>>2])-_(_(_(_(X*C[t+32>>2])+_(T*C[t+36>>2]))+_(j*C[t+40>>2]))+C[t+56>>2])))),p<G&&(V=C[B+1756>>2],D=g,F=g,E=m,W=m,Z=R,w=R,G=p)),B=B+16|0,Q=Q+-1|0,Q;);return GA(r),GA(i),B=0,G<_(0)||(g=GA(r),m=GA(i),e=Mr(A+192|0,r,i,e,0),a[A+116>>2]=0,i=t+8|0,B=a[i+4>>2],r=A- -64|0,a[r>>2]=a[i>>2],a[r+4>>2]=B,i=t+24|0,B=a[i+4>>2],r=A+80|0,a[r>>2]=a[i>>2],a[r+4>>2]=B,i=t+40|0,B=a[i+4>>2],r=A+96|0,a[r>>2]=a[i>>2],a[r+4>>2]=B,g=_(G+_(_(g+m)+_(.5))),C[A+112>>2]=_(w*g)+C[t+56>>2],C[A+108>>2]=_(W*g)+C[t+52>>2],r=a[t+4>>2],a[A+56>>2]=a[t>>2],a[A+60>>2]=r,r=a[t+20>>2],a[A+72>>2]=a[t+16>>2],a[A+76>>2]=r,r=a[t+36>>2],a[A+88>>2]=a[t+32>>2],a[A+92>>2]=r,C[A+104>>2]=_(F*g)+C[t+48>>2],i=n+8|0,t=a[i+4>>2],r=A+128|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=a[n+20>>2],r=A+136|0,a[r>>2]=a[n+16>>2],a[r+4>>2]=i,i=n+24|0,t=a[i+4>>2],r=A+144|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=a[n+36>>2],r=A+152|0,a[r>>2]=a[n+32>>2],a[r+4>>2]=i,i=n+40|0,t=a[i+4>>2],r=A+160|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=a[n+52>>2],r=A+168|0,a[r>>2]=a[n+48>>2],a[r+4>>2]=i,i=n+56|0,t=a[i+4>>2],r=A+176|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,a[A+184>>2]=1566444395,r=a[n+4>>2],a[A+120>>2]=a[n>>2],a[A+124>>2]=r,a[e+16>>2]=0,C[e+12>>2]=-w,C[e+8>>2]=-W,C[e+4>>2]=-F,f[A+48|0]=0,a[A+8>>2]=15076,Sr(e,A+56|0,A+8|0,u),r=o[A+48|0],r&&(m=C[A+44>>2],a[b+12>>2]=0,g=_(g-m),C[b>>2]=C[A+28>>2]-_(F*g),e=A+36|0,C[b+8>>2]=C[e>>2]-_(w*g),C[b+4>>2]=C[A+32>>2]-_(W*g),i=a[A+32>>2],a[l>>2]=a[A+28>>2],a[l+4>>2]=i,t=a[e+4>>2],i=l+8|0,a[i>>2]=a[e>>2],a[i+4>>2]=t,C[c>>2]=D,C[c+4>>2]=E,C[c+8>>2]=Z,C[c+12>>2]=V),B=0!=(0|r)),Y=A+4240|0,0|B},ve,De,De,function(A,e,r,i){A|=0,e|=0,r|=0,i=_(i);var t,n=0;n=a[e+4>>2],a[A+4>>2]=a[e>>2],a[A+8>>2]=n,e=e+8|0,t=a[e+4>>2],n=A+12|0,a[n>>2]=a[e>>2],a[n+4>>2]=t,e=a[r+4>>2],a[A+20>>2]=a[r>>2],a[A+24>>2]=e,r=r+8|0,n=a[r+4>>2],e=A+28|0,a[e>>2]=a[r>>2],a[e+4>>2]=n,f[A+40|0]=1,C[A+36>>2]=i},sA,ve,zr,ve,De,De,function(A,e,r,i){A|=0,e|=0,r|=0,i=_(i);var t=0,n=0;C[A+36>>2]>i&&(f[A+40|0]=1,t=a[e+4>>2],a[A+4>>2]=a[e>>2],a[A+8>>2]=t,e=e+8|0,n=a[e+4>>2],t=A+12|0,a[t>>2]=a[e>>2],a[t+4>>2]=n,e=a[r+4>>2],a[A+20>>2]=a[r>>2],a[A+24>>2]=e,r=r+8|0,t=a[r+4>>2],e=A+28|0,a[e>>2]=a[r>>2],a[e+4>>2]=t,C[A+36>>2]=i)},sA,ve,function(A,e,r,i){var t,n;return A|=0,e|=0,r|=0,i|=0,r=a[e>>2],r=0|Qt[a[a[r>>2]+56>>2]](r,72),i=a[e+4>>2],t=a[A+12>>2],n=a[A+16>>2],A=a[A+8>>2],vA(r,e),f[r+28|0]=1,a[r+8>>2]=A,a[r>>2]=15444,a[r+24>>2]=0,f[r+48|0]=1,a[r+16>>2]=0,a[r+20>>2]=0,a[r+44>>2]=0,a[r+64>>2]=t,a[r+68>>2]=n,f[r+60|0]=0,a[r+56>>2]=i,f[r+52|0]=0,a[r+36>>2]=0,a[r+40>>2]=0,0|r},function(A){A|=0;var e=0,r=0;return a[A>>2]=15444,o[A+52|0]&&(e=a[A+56>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),e=a[A+44>>2],e&&(o[A+48|0]&&CA(e),a[A+44>>2]=0),a[A+44>>2]=0,a[A+36>>2]=0,a[A+40>>2]=0,f[A+48|0]=1,e=a[A+24>>2],e&&(o[A+28|0]&&CA(e),a[A+24>>2]=0),a[A+24>>2]=0,a[A+16>>2]=0,a[A+20>>2]=0,f[A+28|0]=1,0|A},function(A){A|=0;var e=0,r=0;a[A>>2]=15444,o[A+52|0]&&(e=a[A+56>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),e=a[A+44>>2],e&&(o[A+48|0]&&CA(e),a[A+44>>2]=0),a[A+44>>2]=0,a[A+36>>2]=0,a[A+40>>2]=0,f[A+48|0]=1,e=a[A+24>>2],e&&(o[A+28|0]&&CA(e),a[A+24>>2]=0),a[A+24>>2]=0,a[A+16>>2]=0,a[A+20>>2]=0,f[A+28|0]=1,$(A)},function(A,e,r,i,t){A|=0,e|=0,r|=0,i|=0,t|=0;var n,c=0,b=_(0),l=_(0),u=0,s=_(0),k=0,v=_(0),d=0,g=0,R=0,h=0,G=0,p=0,F=0,W=0,w=0,D=_(0),E=0,Z=_(0),V=0,N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=0,S=0,X=_(0),T=0,j=0,O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0),q=_(0),$=_(0),AA=_(0),eA=_(0),rA=0,iA=_(0),fA=_(0),tA=_(0),nA=_(0),aA=_(0),oA=_(0),cA=_(0),bA=0,lA=_(0),uA=_(0),sA=0,kA=0,vA=0,gA=0,BA=0,_A=0,mA=0,RA=0,QA=0,hA=0,GA=0,yA=_(0),pA=0,FA=0,WA=0;n=Y-928|0,Y=n,c=a[A+56>>2],c||(c=a[A+4>>2],c=0|Qt[a[a[c>>2]+12>>2]](c,a[e+8>>2],a[r+8>>2]),f[A+52|0]=1,a[A+56>>2]=c),a[t+4>>2]=c,d=a[r+4>>2];A:{e:if(F=a[e+4>>2],k=a[F+4>>2]+-8|0,!(k>>>0>2)){switch(k-1|0){case 1:if(k=a[d+4>>2]+-8|0,k>>>0>2)break e;switch(k-1|0){case 1:if(i=F+32|0,A=a[F+56>>2],K=C[i+(A<<2)>>2],b=C[i+((A+2|0)%3<<2)>>2],k=d+32|0,i=a[d+56>>2],l=C[c+784>>2],b=Pr(n+432|0,n+8|0,K,b,C[k+(i<<2)>>2],C[k+((i+2|0)%3<<2)>>2],A,i,a[e+12>>2],a[r+12>>2],l),b<l&&Qt[a[a[t>>2]+16>>2]](t,n+432|0,n+8|0,b),A=a[t+4>>2],!a[A+780>>2])break A;if(e=a[A+772>>2],r=a[a[t+8>>2]+8>>2],(0|e)!=(0|r)){se(A,a[a[t+12>>2]+8>>2]+4|0,r+4|0);break A}se(A,e+4|0,a[a[t+12>>2]+8>>2]+4|0);break A;case 0:break e}if(i=F+32|0,A=a[F+56>>2],l=C[c+784>>2],b=Pr(n+432|0,n+8|0,C[i+(A<<2)>>2],C[i+((A+2|0)%3<<2)>>2],_(0),_(C[d+32>>2]*C[d+16>>2]),A,1,a[e+12>>2],a[r+12>>2],l),b<l&&Qt[a[a[t>>2]+16>>2]](t,n+432|0,n+8|0,b),A=a[t+4>>2],!a[A+780>>2])break A;if(e=a[A+772>>2],r=a[a[t+8>>2]+8>>2],(0|e)!=(0|r)){se(A,a[a[t+12>>2]+8>>2]+4|0,r+4|0);break A}se(A,e+4|0,a[a[t+12>>2]+8>>2]+4|0);break A;case 0:break e}if(10==a[d+4>>2]){if(i=d+32|0,A=a[d+56>>2],l=C[c+784>>2],b=Pr(n+432|0,n+8|0,_(0),_(C[F+32>>2]*C[F+16>>2]),C[i+(A<<2)>>2],C[i+((A+2|0)%3<<2)>>2],1,A,a[e+12>>2],a[r+12>>2],l),b<l&&Qt[a[a[t>>2]+16>>2]](t,n+432|0,n+8|0,b),A=a[t+4>>2],!a[A+780>>2])break A;if(e=a[A+772>>2],r=a[a[t+8>>2]+8>>2],(0|e)!=(0|r)){se(A,a[a[t+12>>2]+8>>2]+4|0,r+4|0);break A}se(A,e+4|0,a[a[t+12>>2]+8>>2]+4|0);break A}}if(a[n+920>>2]=1566444395,f[n+764|0]=0,a[n+740>>2]=953267991,w=Mr(n+352|0,F,d,n+432|0,a[A+8>>2]),a[w+32>>2]=d,a[w+28>>2]=F,l=_(_(_(_(Qt[a[a[F>>2]+48>>2]](F))+_(Qt[a[a[d>>2]+48>>2]](d)))+C[a[A+56>>2]+784>>2])+C[t+32>>2]),C[n+920>>2]=l*l,c=a[e+12>>2],k=c+8|0,G=a[k+4>>2],h=n+800|0,a[h>>2]=a[k>>2],a[h+4>>2]=G,k=a[c>>2],G=a[c+4>>2],h=c+24|0,R=a[h+4>>2],W=n+816|0,a[W>>2]=a[h>>2],a[W+4>>2]=R,h=a[c+16>>2],R=a[c+20>>2],W=c+40|0,E=a[W+4>>2],S=n+832|0,a[S>>2]=a[W>>2],a[S+4>>2]=E,W=a[c+32>>2],E=a[c+36>>2],S=c+56|0,M=a[S+4>>2],V=n+848|0,a[V>>2]=a[S>>2],a[V+4>>2]=M,a[n+792>>2]=k,a[n+796>>2]=G,a[n+808>>2]=h,a[n+812>>2]=R,a[n+824>>2]=W,a[n+828>>2]=E,k=a[c+52>>2],a[n+840>>2]=a[c+48>>2],a[n+844>>2]=k,c=a[r+12>>2],k=c+8|0,G=a[k+4>>2],h=n+864|0,a[h>>2]=a[k>>2],a[h+4>>2]=G,k=a[c+4>>2],a[n+856>>2]=a[c>>2],a[n+860>>2]=k,G=a[c+20>>2],k=n+872|0,a[k>>2]=a[c+16>>2],a[k+4>>2]=G,G=c+24|0,h=a[G+4>>2],R=n+880|0,a[R>>2]=a[G>>2],a[R+4>>2]=h,G=c+40|0,h=a[G+4>>2],R=n+896|0,a[R>>2]=a[G>>2],a[R+4>>2]=h,h=a[c+36>>2],G=n+888|0,R=G,a[R>>2]=a[c+32>>2],a[R+4>>2]=h,R=a[c+52>>2],h=n+904|0,a[h>>2]=a[c+48>>2],a[h+4>>2]=R,c=c+56|0,R=a[c+4>>2],W=n+912|0,a[W>>2]=a[c>>2],a[W+4>>2]=R,c=a[F+4>>2],!((0|c)>6)&&(R=a[d+4>>2],!((0|R)>6)&&(a[n+344>>2]=15564,l=_(0),c&&(l=_(Qt[a[a[F>>2]+48>>2]](F)),R=a[d+4>>2]),R&&(b=_(Qt[a[a[d>>2]+48>>2]](d))),f[n+44|0]=0,C[n+36>>2]=b,C[n+32>>2]=l,a[n+12>>2]=t,a[n+8>>2]=15740,a[F+56>>2]))){if(a[d+56>>2]){b=C[a[A+56>>2]+784>>2];e:{r:{if(o[i+24|0]){if(l=_(-1.0000000150474662e30),function(A,e,r,i,f,t){var n,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=0,d=_(0),g=0,B=_(0),R=0,Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=0,D=0,E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=0,M=_(0),S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0),q=_(0),$=_(0),AA=_(0),eA=_(0),rA=_(0),iA=_(0);n=Y-112|0,Y=n,a[687]=a[687]+1,u=C[r+52>>2],g=20,s=C[r+20>>2],h=C[r+24>>2],S=C[i+52>>2],X=C[i+20>>2],Q=C[i+24>>2],T=C[r+56>>2],c=C[A+68>>2],d=C[r+36>>2],k=C[A+72>>2],G=C[r+40>>2],p=C[i+56>>2],N=C[e+68>>2],b=C[i+36>>2],I=C[e+72>>2],B=C[i+40>>2],F=C[r+48>>2],J=C[r+8>>2],j=C[r+4>>2],O=C[r>>2],H=C[i+48>>2],z=C[i+8>>2],V=C[i+4>>2],W=C[i>>2],E=C[r+16>>2],P=C[i+16>>2],Z=C[A+64>>2],x=C[r+32>>2],l=C[e+64>>2],K=C[i+32>>2],a[n+28>>2]=0,T=_(_(T+_(_(_(Z*x)+_(c*d))+_(k*G)))-_(p+_(_(_(l*K)+_(N*b))+_(I*B)))),C[n+24>>2]=T,S=_(_(u+_(_(_(Z*E)+_(c*s))+_(k*h)))-_(S+_(_(_(l*P)+_(N*X))+_(I*Q)))),C[n+20>>2]=S,X=_(_(F+_(_(_(Z*O)+_(c*j))+_(k*J)))-_(H+_(_(_(l*W)+_(N*V))+_(I*z)))),C[n+16>>2]=X;i:{f:{t:{n:{a:{o:if(R=a[A+28>>2],(0|R)<1)c=_(3.4028234663852886e38);else for(R=R+-1|0,c=_(3.4028234663852886e38);;){if(v=a[A+36>>2]+g|0,k=C[v+8>>2],N=C[v+4>>2],I=C[v>>2],a[n+12>>2]=0,d=_(_(_(I*x)+_(N*d))+_(k*G)),C[n+8>>2]=d,s=_(_(_(I*E)+_(N*s))+_(k*h)),C[n+4>>2]=s,k=_(_(_(I*C[r>>2])+_(N*C[r+4>>2]))+_(k*J)),C[n>>2]=k,_(_(_(k*X)+_(s*S))+_(d*T))<_(0)&&(C[n+8>>2]=-d,C[n+4>>2]=-s,C[n>>2]=-k),a[685]=a[685]+1,!o[2988]||jr(r,i,n+16|0,n,A,e,c)){if(w=0,a[686]=a[686]+1,IA(A,r,n,n+108|0,n+104|0,n+80|0,n- -64|0),IA(e,i,n,n+100|0,n+96|0,n+48|0,n+32|0),s=C[n+104>>2],d=C[n+100>>2],s<d||(k=C[n+96>>2],G=C[n+108>>2],k<G||(l=_(s-d),s=_(k-G),l=l<s?l:s,w=1)),!w)break a;l<c&&(v=a[n+4>>2],a[f>>2]=a[n>>2],a[f+4>>2]=v,D=n+8|0,U=a[D+4>>2],v=f+8|0,a[v>>2]=a[D>>2],a[v+4>>2]=U,c=l)}if(!R)break o;g=g+36|0,R=R+-1|0,G=C[r+40>>2],d=C[r+36>>2],x=C[r+32>>2],h=C[r+24>>2],s=C[r+20>>2],E=C[r+16>>2],J=C[r+8>>2]}if(R=a[e+28>>2],(0|R)>=1)for(w=20;;){if(v=a[e+36>>2]+w|0,l=C[v+8>>2],s=C[v>>2],d=C[v+4>>2],a[n+12>>2]=0,k=_(_(_(s*C[i+32>>2])+_(d*C[i+36>>2]))+_(l*C[i+40>>2])),C[n+8>>2]=k,G=_(_(_(s*C[i+16>>2])+_(d*C[i+20>>2]))+_(l*C[i+24>>2])),C[n+4>>2]=G,l=_(_(_(s*C[i>>2])+_(d*C[i+4>>2]))+_(l*C[i+8>>2])),C[n>>2]=l,_(_(_(l*X)+_(G*S))+_(k*T))<_(0)&&(C[n+8>>2]=-k,C[n+4>>2]=-G,C[n>>2]=-l),a[685]=a[685]+1,!o[2988]||jr(r,i,n+16|0,n,A,e,c)){if(g=0,a[686]=a[686]+1,IA(A,r,n,n+108|0,n+104|0,n+80|0,n- -64|0),IA(e,i,n,n+100|0,n+96|0,n+48|0,n+32|0),l=C[n+104>>2],s=C[n+100>>2],l<s||(d=C[n+96>>2],k=C[n+108>>2],d<k||(h=_(l-s),l=_(d-k),h=h<l?h:l,g=1)),!g)break a;h<c&&(v=a[n+4>>2],a[f>>2]=a[n>>2],a[f+4>>2]=v,D=n+8|0,U=a[D+4>>2],v=f+8|0,a[v>>2]=a[D>>2],a[v+4>>2]=U,c=h)}if(w=w+36|0,R=R+-1|0,!R)break}if(w=a[A+48>>2],(0|w)>=1)break n;D=-1,h=_(0),l=_(0),s=_(0),d=_(0),k=_(0),G=_(0),U=-1;break t}i=0;break i}for(g=a[e+48>>2],U=-1,v=0,D=-1,G=_(0),k=_(0),d=_(0),s=_(0),l=_(0),h=_(0);;){if((0|g)>=1){for(R=a[A+56>>2]+(v<<4)|0,J=C[R>>2],E=C[R+4>>2],Z=C[R+8>>2],N=_(_(_(J*C[r+32>>2])+_(E*C[r+36>>2]))+_(Z*C[r+40>>2])),I=_(_(_(J*C[r+16>>2])+_(E*C[r+20>>2]))+_(Z*C[r+24>>2])),J=_(_(_(J*C[r>>2])+_(E*C[r+4>>2]))+_(Z*C[r+8>>2])),R=0,w=4;;){if(g=a[e+56>>2]+w|0,x=C[g+4>>2],Q=C[g+-4>>2],p=C[g>>2],M=C[i+40>>2],$=C[i+32>>2],AA=C[i+36>>2],E=C[i+24>>2],Z=C[i+16>>2],u=C[i+20>>2],eA=C[i+8>>2],rA=C[i>>2],iA=C[i+4>>2],a[n+12>>2]=0,E=_(_(_(Q*Z)+_(p*u))+_(x*E)),Z=_(_(_(Q*rA)+_(p*iA))+_(x*eA)),u=_(_(J*E)-_(I*Z)),C[n+8>>2]=u,x=_(_(_(Q*$)+_(p*AA))+_(x*M)),Q=_(_(N*Z)-_(J*x)),C[n+4>>2]=Q,p=_(_(I*x)-_(N*E)),C[n>>2]=p,(!(+_(m(u))>1e-6^1)||+_(m(p))>1e-6|+_(m(Q))>1e-6)&&(M=u,u=_(_(1)/_(y(_(_(u*u)+_(_(p*p)+_(Q*Q)))))),M=_(M*u),C[n+8>>2]=M,Q=_(Q*u),C[n+4>>2]=Q,u=_(p*u),C[n>>2]=u,_(_(_(u*X)+_(Q*S))+_(T*M))<_(0)&&(C[n+8>>2]=-M,C[n+4>>2]=-Q,C[n>>2]=-u),a[685]=a[685]+1,!o[2988]||jr(r,i,n+16|0,n,A,e,c))){if(g=0,a[686]=a[686]+1,IA(A,r,n,n+108|0,n+104|0,n+80|0,n- -64|0),IA(e,i,n,n+100|0,n+96|0,n+48|0,n+32|0),u=C[n+104>>2],Q=C[n+100>>2],u<Q||(p=C[n+96>>2],M=C[n+108>>2],p<M||(b=_(u-Q),u=_(p-M),b<u?(g=1,O=C[n+56>>2],H=C[n+52>>2],z=C[n+48>>2],B=C[n+72>>2],F=C[n+68>>2],j=C[n+64>>2]):(g=1,O=C[n+40>>2],H=C[n+36>>2],z=C[n+32>>2],B=C[n+88>>2],F=C[n+84>>2],j=C[n+80>>2],b=u))),!g)break f;b<c&&(D=a[n+4>>2],a[f>>2]=a[n>>2],a[f+4>>2]=D,U=n+8|0,g=a[U+4>>2],D=f+8|0,a[D>>2]=a[U>>2],a[D+4>>2]=g,h=z,l=H,s=O,d=j,k=F,G=B,V=Z,W=E,P=x,K=J,L=I,q=N,D=v,U=R,c=b)}if(w=w+16|0,R=R+1|0,g=a[e+48>>2],!((0|R)<(0|g)))break}w=a[A+48>>2]}if(v=v+1|0,!((0|v)<(0|w)))break}}if(!((D|U)<0)){O=_(h-d),H=_(l-k),z=_(s-G),B=_(_(_(O*V)+_(H*W))+_(z*P)),j=_(_(_(O*K)+_(H*L))+_(z*q)),c=_(0),F=_(_(_(V*K)+_(W*L))+_(P*q)),b=_(_(1)-_(F*F)),b!=_(0)&&(c=_(-1.0000000150474662e30),b=_(_(j-_(B*F))/b),b<_(-1.0000000150474662e30)||(c=b,c>_(1.0000000150474662e30)&&(c=_(1.0000000150474662e30)))),B=_(_(F*c)-B);t:if(B<_(-1.0000000150474662e30)){if(b=_(j+_(F*_(-1.0000000150474662e30))),b<_(-1.0000000150474662e30)){B=_(-1.0000000150474662e30),c=_(-1.0000000150474662e30);break t}if(c=_(1.0000000150474662e30),!(b>_(1.0000000150474662e30))){B=_(-1.0000000150474662e30),c=b;break t}B=_(-1.0000000150474662e30)}else B>_(1.0000000150474662e30)&&(c=_(-1.0000000150474662e30),B=_(1.0000000150474662e30),b=_(j+_(F*_(1.0000000150474662e30))),b<_(-1.0000000150474662e30)||(c=b,c>_(1.0000000150474662e30)&&(c=_(1.0000000150474662e30))));a[n+92>>2]=0,P=_(P*B),b=_(P+_(z-_(q*c))),C[n+88>>2]=b,F=_(W*B),W=_(F+_(H-_(L*c))),C[n+84>>2]=W,B=_(V*B),c=_(B+_(O-_(K*c))),C[n+80>>2]=c,V=_(_(b*b)+_(_(c*c)+_(W*W))),V>_(1.1920928955078125e-7)&&(u=b,K=_(y(V)),b=_(_(1)/K),V=_(u*b),C[n+88>>2]=V,W=_(W*b),C[n+84>>2]=W,c=_(c*b),C[n+80>>2]=c,_(_(_(c*X)+_(W*S))+_(V*T))<_(0)&&(C[n+88>>2]=-V,C[n+84>>2]=-W,C[n+80>>2]=-c),a[n+76>>2]=0,C[n+72>>2]=s+P,C[n+68>>2]=l+F,C[n+64>>2]=h+B,Qt[a[a[t>>2]+16>>2]](t,n+80|0,n- -64|0,_(-K)))}if(i=1,c=C[f>>2],b=C[f+4>>2],h=C[f+8>>2],!(_(_(_(X*c)+_(S*b))+_(T*h))<_(0)))break i;a[f+12>>2]=0,C[f+8>>2]=-h,C[f+4>>2]=-b,C[f>>2]=-c;break i}i=0}return Y=n+112|0,i}(a[F+56>>2],a[d+56>>2],a[e+12>>2],a[r+12>>2],n+248|0,t))break r;break e}if(Sr(w,n+792|0,n+8|0,a[i+20>>2]),i=n+24|0,c=a[i+4>>2],k=n+256|0,a[k>>2]=a[i>>2],a[k+4>>2]=c,i=a[n+20>>2],a[n+248>>2]=a[n+16>>2],a[n+252>>2]=i,l=C[n+40>>2],!o[n+44|0]|l<_(0)^1)break e}if(c=a[A+16>>2],(0|c)<=-1)for(a[A+20>>2]<=-1&&(i=a[A+24>>2],i&&(o[A+28|0]&&CA(i),a[A+24>>2]=0),a[A+20>>2]=0,a[A+24>>2]=0,f[A+28|0]=1),k=c<<4;i=a[n+332>>2],w=a[A+24>>2]+k|0,G=w,a[G>>2]=a[n+328>>2],a[G+4>>2]=i,i=n+336|0,G=a[i+4>>2],w=w+8|0,a[w>>2]=a[i>>2],a[w+4>>2]=G,k=k+16|0,i=c+1|0,w=i>>>0>=c>>>0,c=i,w;);a[A+16>>2]=0,function(A,e,r,i,t,n,c,b,l,u){var s,k,v=0,d=0,g=_(0),m=_(0),R=0,Q=_(0),h=_(0),G=0,p=0,F=0,W=_(0),w=0,D=0,E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=0;if(s=Y-32|0,Y=s,a[s+28>>2]=a[A+12>>2],g=C[A>>2],Q=C[A+4>>2],h=C[A+8>>2],m=_(_(1)/_(y(_(_(_(g*g)+_(Q*Q))+_(h*h))))),W=_(h*m),C[s+24>>2]=W,E=_(Q*m),C[s+20>>2]=E,Z=_(g*m),C[s+16>>2]=Z,w=-1,R=a[r+28>>2],(0|R)>=1)for(A=a[r+36>>2]+20|0,V=C[t+40>>2],N=C[t+36>>2],I=C[t+24>>2],J=C[t+20>>2],x=C[t+32>>2],U=C[t+16>>2],M=C[t+8>>2],S=C[t+4>>2],X=C[t>>2],m=_(-3.4028234663852886e38);g=C[A>>2],Q=C[A+4>>2],h=C[A+8>>2],g=_(_(_(Z*_(_(_(g*X)+_(Q*S))+_(h*M)))+_(E*_(_(_(g*U)+_(Q*J))+_(h*I))))+_(W*_(_(_(g*x)+_(Q*N))+_(h*V)))),v=g>m,m=v?g:m,w=v?d:w,A=A+36|0,d=d+1|0,(0|d)<(0|R););if(A=a[b+4>>2],(0|A)<=-1)for(a[b+8>>2]<=-1&&(v=a[b+12>>2],v&&(o[b+16|0]&&CA(v),a[b+12>>2]=0),f[b+16|0]=1,a[b+8>>2]=0,a[b+12>>2]=0),d=A<<4;G=a[s+4>>2],v=a[b+12>>2]+d|0,a[v>>2]=a[s>>2],a[v+4>>2]=G,R=s+8|0,G=a[R+4>>2],v=v+8|0,a[v>>2]=a[R>>2],a[v+4>>2]=G,d=d+16|0,v=A+1|0,R=v>>>0>=A>>>0,A=v,R;);if(a[b+4>>2]=0,A=a[r+36>>2]+B(w,36)|0,k=a[A+4>>2],(0|k)>=1)for(T=A+12|0,d=0,v=0;;){if(A=a[r+16>>2]+(a[a[T>>2]+(v<<2)>>2]<<4)|0,m=C[A>>2],g=C[A+4>>2],Q=C[A+8>>2],h=_(_(_(_(m*C[t+32>>2])+_(g*C[t+36>>2]))+_(Q*C[t+40>>2]))+C[t+56>>2]),W=_(_(_(_(m*C[t+16>>2])+_(g*C[t+20>>2]))+_(Q*C[t+24>>2]))+C[t+52>>2]),m=_(_(_(_(m*C[t>>2])+_(g*C[t+4>>2]))+_(Q*C[t+8>>2]))+C[t+48>>2]),a[b+8>>2]==(0|d)&&(R=d?d<<1:1,!((0|d)>=(0|R)))){if(R?(G=dA(R<<4),d=a[b+4>>2]):G=0,(0|d)>=1)for(A=0;F=a[b+12>>2]+A|0,D=a[F+4>>2],p=A+G|0,a[p>>2]=a[F>>2],a[p+4>>2]=D,F=F+8|0,D=a[F+4>>2],p=p+8|0,a[p>>2]=a[F>>2],a[p+4>>2]=D,A=A+16|0,d=d+-1|0,d;);A=a[b+12>>2],A&&(o[b+16|0]&&CA(A),a[b+12>>2]=0),a[b+12>>2]=G,f[b+16|0]=1,a[b+8>>2]=R,d=a[b+4>>2]}if(A=a[b+12>>2]+(d<<4)|0,a[A+12>>2]=0,C[A+8>>2]=h,C[A+4>>2]=W,C[A>>2]=m,d=a[b+4>>2]+1|0,a[b+4>>2]=d,v=v+1|0,(0|v)==(0|k))break}(0|w)>-1&&Or(s+16|0,e,i,b,l,n,c,u),Y=s+32|0}(n+248|0,a[F+56>>2],a[d+56>>2],a[e+12>>2],a[r+12>>2],_(l-b),b,A+12|0,A+32|0,t)}if(!o[A+52|0])break A;if(A=a[t+4>>2],!a[A+780>>2])break A;if(e=a[A+772>>2],r=a[a[t+8>>2]+8>>2],(0|e)!=(0|r)){se(A,a[a[t+12>>2]+8>>2]+4|0,r+4|0);break A}se(A,e+4|0,a[a[t+12>>2]+8>>2]+4|0);break A}if(1==a[d+4>>2]){if(a[n+252>>2]=0,c=a[r+12>>2],v=C[c+56>>2],N=C[c+36>>2],X=C[c+40>>2],O=C[c+52>>2],z=C[c+20>>2],P=C[c+24>>2],l=C[d+68>>2],b=C[d+60>>2],s=C[d- -64>>2],eA=C[c+32>>2],L=C[c+16>>2],D=C[c+48>>2],Z=C[c+8>>2],q=C[c>>2],$=C[c+4>>2],c=dA(16),a[n+256>>2]=1,a[n+260>>2]=c,f[n+264|0]=1,C[c>>2]=D+_(_(_(b*q)+_(s*$))+_(l*Z)),C[c+4>>2]=O+_(_(_(b*L)+_(s*z))+_(l*P)),a[c+12>>2]=0,C[c+8>>2]=v+_(_(_(b*eA)+_(s*N))+_(l*X)),k=a[n+252>>2]+1|0,a[n+252>>2]=k,l=C[d+76>>2],c=a[r+12>>2],b=C[d+80>>2],s=C[d+84>>2],v=_(_(_(_(l*C[c+32>>2])+_(b*C[c+36>>2]))+_(s*C[c+40>>2]))+C[c+56>>2]),N=_(_(_(_(l*C[c+16>>2])+_(b*C[c+20>>2]))+_(s*C[c+24>>2]))+C[c+52>>2]),l=_(_(_(_(l*C[c>>2])+_(b*C[c+4>>2]))+_(s*C[c+8>>2]))+C[c+48>>2]),a[n+256>>2]==(0|k)&&(G=k?k<<1:1,!((0|k)>=(0|G)))){if(G?(h=dA(G<<4),k=a[n+252>>2]):h=0,(0|k)>=1)for(c=0;R=a[n+260>>2]+c|0,W=a[R+4>>2],E=c+h|0,a[E>>2]=a[R>>2],a[E+4>>2]=W,R=R+8|0,W=a[R+4>>2],E=E+8|0,a[E>>2]=a[R>>2],a[E+4>>2]=W,c=c+16|0,k=k+-1|0,k;);c=a[n+260>>2],c&&(o[n+264|0]&&CA(c),a[n+260>>2]=0),a[n+260>>2]=h,f[n+264|0]=1,a[n+256>>2]=G,k=a[n+252>>2]}if(c=a[n+260>>2]+(k<<4)|0,a[c+12>>2]=0,C[c+8>>2]=v,C[c+4>>2]=N,C[c>>2]=l,k=a[n+252>>2]+1|0,a[n+252>>2]=k,l=C[d+92>>2],r=a[r+12>>2],b=C[d+96>>2],s=C[d+100>>2],v=_(_(_(_(l*C[r>>2])+_(b*C[r+4>>2]))+_(s*C[r+8>>2]))+C[r+48>>2]),N=_(_(_(_(l*C[r+32>>2])+_(b*C[r+36>>2]))+_(s*C[r+40>>2]))+C[r+56>>2]),l=_(_(_(_(l*C[r+16>>2])+_(b*C[r+20>>2]))+_(s*C[r+24>>2]))+C[r+52>>2]),a[n+256>>2]==(0|k)&&(r=k?k<<1:1,!((0|k)>=(0|r)))){if(r?(G=dA(r<<4),k=a[n+252>>2]):G=0,(0|k)>=1)for(c=0;h=a[n+260>>2]+c|0,R=a[h+4>>2],W=c+G|0,a[W>>2]=a[h>>2],a[W+4>>2]=R,h=h+8|0,R=a[h+4>>2],W=W+8|0,a[W>>2]=a[h>>2],a[W+4>>2]=R,c=c+16|0,k=k+-1|0,k;);c=a[n+260>>2],c&&(o[n+264|0]&&CA(c),a[n+260>>2]=0),a[n+260>>2]=G,f[n+264|0]=1,a[n+256>>2]=r,k=a[n+252>>2]}if(r=a[n+260>>2]+(k<<4)|0,a[r+12>>2]=0,C[r+8>>2]=N,C[r+4>>2]=l,C[r>>2]=v,a[n+252>>2]=a[n+252>>2]+1,l=C[a[A+56>>2]+784>>2],Sr(w,n+792|0,n+344|0,a[i+20>>2]),b=C[w+4>>2],s=C[w+8>>2],v=C[w+12>>2],N=_(_(_(b*b)+_(s*s))+_(v*v)),N>_(1.1920928955078125e-7)){if(a[n+340>>2]=0,K=v,v=_(_(1)/N),C[n+336>>2]=K*v,C[n+332>>2]=s*v,C[n+328>>2]=b*v,b=_(_(C[w+56>>2]-_(Qt[a[a[F>>2]+48>>2]](F)))-_(Qt[a[a[d>>2]+48>>2]](d))),d=a[A+36>>2],(0|d)<=-1)for(a[A+40>>2]<=-1&&(r=a[A+44>>2],r&&(o[A+48|0]&&CA(r),a[A+44>>2]=0),a[A+40>>2]=0,a[A+44>>2]=0,f[A+48|0]=1),c=d<<4;r=a[n+316>>2],i=a[A+44>>2]+c|0,k=i,a[k>>2]=a[n+312>>2],a[k+4>>2]=r,r=n+320|0,k=a[r+4>>2],i=i+8|0,a[i>>2]=a[r>>2],a[i+4>>2]=k,c=c+16|0,r=d+1|0,i=r>>>0>=d>>>0,d=r,i;);a[A+36>>2]=0,Or(n+328|0,a[F+56>>2],a[e+12>>2],n+248|0,A+32|0,_(b-l),l,t)}if(o[A+52|0]&&(A=a[t+4>>2],a[A+780>>2]&&(e=a[A+772>>2],r=a[a[t+8>>2]+8>>2],(0|e)==(0|r)?se(A,e+4|0,a[a[t+12>>2]+8>>2]+4|0):se(A,a[a[t+12>>2]+8>>2]+4|0,r+4|0))),A=a[n+260>>2],!A)break A;o[n+264|0]&&CA(A),a[n+260>>2]=0;break A}}if(Sr(w,n+792|0,t,a[i+20>>2]),!(!a[A+64>>2]|a[a[t+4>>2]+780>>2]>=a[A+68>>2])&&(l=C[w+4>>2],b=C[w+8>>2],s=C[w+12>>2],v=_(_(_(l*l)+_(b*b))+_(s*s)),v>_(1.1920928955078125e-7)&&(R=n+856|0,W=n+840|0,E=n+824|0,S=n+808|0,K=b,b=_(_(1)/v),N=_(K*b),eA=_(l*b),L=_(s*b),_(m(L))>_(.7071067690849304)?(l=_(_(1)/_(y(_(_(L*L)+_(N*N))))),b=_(N*l),l=_(-_(L*l)),s=_(0)):(b=_(_(1)/_(y(_(_(eA*eA)+_(N*N))))),l=_(eA*b),s=_(-_(N*b)),b=_(0)),v=_(Qt[a[a[F>>2]+16>>2]](F)),X=_(Qt[a[a[d>>2]+16>>2]](d)),O=C[744],F=v<X,c=F?n+792|0:R,d=c+8|0,M=a[d+4>>2],sA=n+256|0,V=sA,a[V>>2]=a[d>>2],a[V+4>>2]=M,d=F?S:k,M=d+8|0,V=a[M+4>>2],T=n+272|0,a[T>>2]=a[M>>2],a[T+4>>2]=V,M=F?E:G,V=M+8|0,T=a[V+4>>2],rA=n+288|0,a[rA>>2]=a[V>>2],a[rA+4>>2]=T,V=F?W:h,T=V+8|0,rA=a[T+4>>2],bA=n+304|0,a[bA>>2]=a[T>>2],a[bA+4>>2]=rA,T=a[c+4>>2],a[n+248>>2]=a[c>>2],a[n+252>>2]=T,c=a[d+4>>2],a[n+264>>2]=a[d>>2],a[n+268>>2]=c,c=a[M+4>>2],a[n+280>>2]=a[M>>2],a[n+284>>2]=c,c=a[V+4>>2],a[n+296>>2]=a[V>>2],a[n+300>>2]=c,c=a[A+64>>2],!((0|c)<1))))for(K=b,v=_(_(Q(_(O/(F?v:X)),_(.39269909262657166)))*_(.5)),yA=_(_(_(s*s)+_(l*l))+_(b*b)),b=_(dr(v)/_(y(yA))),X=_(K*b),O=_(l*b),z=_(s*b),P=Cr(v),K=_(y(_(_(L*L)+_(_(eA*eA)+_(N*N))))),M=n+296|0,V=n+224|0,T=n+208|0,rA=n+280|0,bA=n+192|0,kA=n+264|0,vA=n+176|0,gA=n+160|0,BA=n+144|0,_A=n+128|0,mA=n+112|0,RA=n+96|0,QA=n+80|0,hA=n- -64|0,GA=n+48|0,d=0;yA>_(1.1920928955078125e-7)&&(v=_(_(_(_(6.2831854820251465)/_(0|c))*_(0|d))*_(.5)),s=_(dr(v)/K),l=_(L*s),b=_(N*s),s=_(eA*s),v=Cr(v),F?(c=a[e+12>>2],q=C[c>>2],$=C[c+4>>2],iA=C[c+8>>2],a[n+804>>2]=0,fA=C[c+36>>2],tA=C[c+20>>2],nA=C[c+40>>2],aA=C[c+24>>2],oA=C[c+32>>2],cA=C[c+16>>2],a[n+836>>2]=0,a[n+820>>2]=0,I=_(_(_(_(O*v)-_(P*b))-_(z*l))+_(X*s)),J=_(_(_(_(P*v)+_(z*s))+_(O*b))+_(X*l)),x=_(_(_(_(z*v)-_(P*s))-_(X*b))+_(O*l)),U=_(_(_(_(X*v)-_(P*l))-_(O*s))+_(z*b)),D=_(_(_(l*I)+_(_(s*J)+_(v*x)))-_(b*U)),Z=_(_(_(_(v*J)-_(s*x))-_(b*I))-_(l*U)),AA=_(_(_(b*x)+_(_(l*J)+_(v*U)))-_(s*I)),l=_(_(_(s*U)+_(_(v*I)+_(b*J)))-_(l*x)),b=_(_(2)/_(_(Z*Z)+_(_(AA*AA)+_(_(D*D)+_(l*l))))),s=_(AA*b),J=_(D*s),v=_(l*b),x=_(Z*v),I=_(J-x),U=_(l*s),H=_(D*b),lA=_(Z*H),b=_(U+lA),H=_(D*H),uA=_(l*v),l=_(_(1)-_(H+uA)),C[n+832>>2]=_(_(iA*I)+_(aA*b))+_(nA*l),C[n+828>>2]=_(_(I*$)+_(b*tA))+_(l*fA),C[n+824>>2]=_(_(I*q)+_(b*cA))+_(l*oA),v=_(D*v),D=_(Z*s),l=_(v+D),Z=_(AA*s),b=_(_(1)-_(H+Z)),s=_(U-lA),C[n+816>>2]=_(_(iA*l)+_(aA*b))+_(nA*s),C[n+812>>2]=_(_(l*$)+_(b*tA))+_(s*fA),C[n+808>>2]=_(_(l*q)+_(b*cA))+_(s*oA),l=_(_(1)-_(uA+Z)),b=_(v-D),s=_(J+x),C[n+800>>2]=_(_(iA*l)+_(aA*b))+_(nA*s),C[n+796>>2]=_(_(l*$)+_(b*tA))+_(s*fA),C[n+792>>2]=_(_(l*q)+_(b*cA))+_(s*oA),c=a[r+12>>2],g=a[c+4>>2],a[R>>2]=a[c>>2],a[R+4>>2]=g,u=c+8|0,g=a[u+4>>2],p=R+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=c+24|0,g=a[u+4>>2],p=k+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[c+20>>2],a[k>>2]=a[c+16>>2],a[k+4>>2]=u,u=c+40|0,g=a[u+4>>2],p=G+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[c+36>>2],a[G>>2]=a[c+32>>2],a[G+4>>2]=u,u=c+56|0,g=a[u+4>>2],p=h+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[c+52>>2],a[h>>2]=a[c+48>>2],a[h+4>>2]=u):(c=a[e+12>>2],u=c+8|0,g=a[u>>2],u=a[u+4>>2],p=a[c>>2],FA=a[c+4>>2],j=a[c+20>>2],a[S>>2]=a[c+16>>2],a[S+4>>2]=j,j=c+24|0,WA=a[j+4>>2],pA=S+8|0,a[pA>>2]=a[j>>2],a[pA+4>>2]=WA,j=n+800|0,a[j>>2]=g,a[j+4>>2]=u,u=a[c+36>>2],a[E>>2]=a[c+32>>2],a[E+4>>2]=u,u=c+40|0,g=a[u+4>>2],j=E+8|0,a[j>>2]=a[u>>2],a[j+4>>2]=g,u=c+56|0,g=a[u+4>>2],j=W+8|0,a[j>>2]=a[u>>2],a[j+4>>2]=g,u=a[c+52>>2],a[W>>2]=a[c+48>>2],a[W+4>>2]=u,a[n+792>>2]=p,a[n+796>>2]=FA,c=a[r+12>>2],q=C[c+36>>2],$=C[c+20>>2],iA=C[c+40>>2],fA=C[c+24>>2],tA=C[c+32>>2],nA=C[c>>2],aA=C[c+16>>2],oA=C[c+4>>2],cA=C[c+8>>2],a[n+900>>2]=0,a[n+884>>2]=0,a[n+868>>2]=0,I=_(_(_(_(O*v)-_(P*b))-_(z*l))+_(X*s)),J=_(_(_(_(P*v)+_(z*s))+_(O*b))+_(X*l)),x=_(_(_(_(z*v)-_(P*s))-_(X*b))+_(O*l)),U=_(_(_(_(X*v)-_(P*l))-_(O*s))+_(z*b)),D=_(_(_(l*I)+_(_(s*J)+_(v*x)))-_(b*U)),Z=_(_(_(_(v*J)-_(s*x))-_(b*I))-_(l*U)),AA=_(_(_(b*x)+_(_(l*J)+_(v*U)))-_(s*I)),l=_(_(_(s*U)+_(_(v*I)+_(b*J)))-_(l*x)),b=_(_(2)/_(_(Z*Z)+_(_(AA*AA)+_(_(D*D)+_(l*l))))),s=_(AA*b),J=_(D*s),v=_(l*b),x=_(Z*v),I=_(J-x),U=_(l*s),H=_(D*b),lA=_(Z*H),b=_(U+lA),H=_(D*H),uA=_(l*v),l=_(_(1)-_(H+uA)),C[n+896>>2]=_(_(cA*I)+_(fA*b))+_(iA*l),C[n+892>>2]=_(_(I*oA)+_(b*$))+_(l*q),C[n+888>>2]=_(_(I*nA)+_(b*aA))+_(l*tA),v=_(D*v),D=_(Z*s),l=_(v+D),Z=_(AA*s),b=_(_(1)-_(H+Z)),s=_(U-lA),C[n+880>>2]=_(_(cA*l)+_(fA*b))+_(iA*s),C[n+876>>2]=_(_(l*oA)+_(b*$))+_(s*q),C[n+872>>2]=_(_(l*nA)+_(b*aA))+_(s*tA),l=_(_(1)-_(uA+Z)),b=_(v-D),s=_(J+x),C[n+864>>2]=_(_(cA*l)+_(fA*b))+_(iA*s),C[n+860>>2]=_(_(l*oA)+_(b*$))+_(s*q),C[n+856>>2]=_(_(l*nA)+_(b*aA))+_(s*tA)),c=a[n+796>>2],a[GA>>2]=a[n+792>>2],a[GA+4>>2]=c,c=a[S+4>>2],a[hA>>2]=a[S>>2],a[hA+4>>2]=c,c=a[E+4>>2],a[QA>>2]=a[E>>2],a[QA+4>>2]=c,c=a[W+4>>2],a[RA>>2]=a[W>>2],a[RA+4>>2]=c,c=n+800|0,u=a[c+4>>2],g=GA+8|0,a[g>>2]=a[c>>2],a[g+4>>2]=u,c=S+8|0,u=a[c+4>>2],g=hA+8|0,a[g>>2]=a[c>>2],a[g+4>>2]=u,c=E+8|0,u=a[c+4>>2],g=QA+8|0,a[g>>2]=a[c>>2],a[g+4>>2]=u,c=W+8|0,u=a[c+4>>2],g=RA+8|0,a[g>>2]=a[c>>2],a[g+4>>2]=u,a[n+40>>2]=0,a[n+44>>2]=t,a[n+8>>2]=15924,c=a[i+20>>2],u=R+8|0,g=a[u+4>>2],p=mA+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[R+4>>2],a[mA>>2]=a[R>>2],a[mA+4>>2]=u,u=k+8|0,g=a[u+4>>2],p=_A+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[k+4>>2],a[_A>>2]=a[k>>2],a[_A+4>>2]=u,u=G+8|0,g=a[u+4>>2],p=BA+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[G+4>>2],a[BA>>2]=a[G>>2],a[BA+4>>2]=u,u=h+8|0,g=a[u+4>>2],p=gA+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[h+4>>2],a[gA>>2]=a[h>>2],a[gA+4>>2]=u,u=a[sA+4>>2],g=vA+8|0,a[g>>2]=a[sA>>2],a[g+4>>2]=u,u=a[n+252>>2],a[vA>>2]=a[n+248>>2],a[vA+4>>2]=u,u=kA+8|0,g=a[u+4>>2],p=bA+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[kA+4>>2],a[bA>>2]=a[kA>>2],a[bA+4>>2]=u,u=rA+8|0,g=a[u+4>>2],p=T+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[rA+4>>2],a[T>>2]=a[rA>>2],a[T+4>>2]=u,u=M+8|0,g=a[u+4>>2],p=V+8|0,a[p>>2]=a[u>>2],a[p+4>>2]=g,u=a[M+4>>2],a[V>>2]=a[M>>2],a[V+4>>2]=u,a[n+244>>2]=c,f[n+240|0]=F,Sr(w,n+792|0,n+8|0,c),c=a[A+64>>2]),d=d+1|0,(0|d)<(0|c););o[A+52|0]&&(A=a[t+4>>2],a[A+780>>2]&&(e=a[A+772>>2],r=a[a[t+8>>2]+8>>2],(0|e)==(0|r)?se(A,e+4|0,a[a[t+12>>2]+8>>2]+4|0):se(A,a[a[t+12>>2]+8>>2]+4|0,r+4|0)))}Y=n+928|0},function(A,e,r,i,t){A|=0,e|=0,r|=0,i|=0,t|=0;var n=_(0),c=_(0),b=_(0),l=0,u=0,s=0,k=0,v=0,d=0,g=0,B=0,m=0;return A=Y-608|0,Y=A,n=_(C[e+116>>2]-C[e+52>>2]),c=_(n*n),n=_(C[e+120>>2]-C[e+56>>2]),c=_(c+_(n*n)),n=_(C[e+124>>2]-C[e+60>>2]),c=_(c+_(n*n)),n=C[e+276>>2],c<_(n*n)&&(c=_(1),n=_(C[r+116>>2]-C[r+52>>2]),b=_(n*n),n=_(C[r+120>>2]-C[r+56>>2]),b=_(b+_(n*n)),n=_(C[r+124>>2]-C[r+60>>2]),b=_(b+_(n*n)),n=C[r+276>>2],b<_(n*n))||(c=_(1),o[2752]||(u=a[e+192>>2],l=a[r+272>>2],DA(A+552|0),t=A+580|0,i=t,a[i>>2]=0,a[i+4>>2]=0,k=A+576|0,a[k>>2]=1065353216,s=A+588|0,i=s,a[i>>2]=0,a[i+4>>2]=0,v=A+596|0,a[v>>2]=0,a[A+568>>2]=1065353216,a[A+572>>2]=1065353216,a[A+556>>2]=8,a[A+552>>2]=9852,a[A+604>>2]=0,a[A+600>>2]=l,a[A+584>>2]=l,a[A+548>>2]=0,a[A+540>>2]=1566444395,a[A+544>>2]=0,a[A+376>>2]=15992,d=A+348|0,f[0|d]=0,a[A+324>>2]=953267991,i=Hr(A,u,A+552|0,A+16|0),g=e+4|0,B=e+68|0,l=r+4|0,u=r+68|0,c=_(1),zr(i,g,B,l,u,A+376|0)&&(n=C[A+540>>2],C[e+268>>2]>n&&(C[e+268>>2]=n),C[r+268>>2]>n&&(C[r+268>>2]=n),c=_(1),n<_(1)&&(c=n)),i=a[r+192>>2],m=a[e+272>>2],DA(A+552|0),a[t>>2]=0,a[t+4>>2]=0,a[k>>2]=1065353216,a[s>>2]=0,a[s+4>>2]=0,a[v>>2]=0,a[A+568>>2]=1065353216,a[A+572>>2]=1065353216,a[A+556>>2]=8,a[A+552>>2]=9852,a[A+604>>2]=0,a[A+600>>2]=m,a[A+584>>2]=m,a[A+548>>2]=0,a[A+540>>2]=1566444395,a[A+544>>2]=0,a[A+376>>2]=15992,f[0|d]=0,a[A+324>>2]=953267991,zr(Hr(A,A+552|0,i,A+16|0),g,B,l,u,A+376|0)&&(n=C[A+540>>2],C[e+268>>2]>n&&(C[e+268>>2]=n),C[r+268>>2]>n&&(C[r+268>>2]=n),c>n&&(c=n)))),Y=A+608|0,_(c)},function(A,e){A|=0,e|=0;var r=0,i=0,t=0,n=0,c=0;if(i=a[A+56>>2],!(!i|!o[A+52|0])){if(r=a[e+4>>2],(0|r)==a[e+8>>2]&&(n=r?r<<1:1,!((0|r)>=(0|n)))){if(n&&(c=dA(n<<2),r=a[e+4>>2]),(0|r)>=1)for(i=0,t=r;a[i+c>>2]=a[a[e+12>>2]+i>>2],i=i+4|0,t=t+-1|0,t;);t=a[e+12>>2],t&&(o[e+16|0]&&(CA(t),r=a[e+4>>2]),a[e+12>>2]=0),a[e+12>>2]=c,f[e+16|0]=1,a[e+8>>2]=n,i=a[A+56>>2]}a[e+4>>2]=r+1,a[a[e+12>>2]+(r<<2)>>2]=i}},ve,De,De,Kr,ve,De,De,function(A,e,r,i){A|=0,e|=0,r|=0,i=_(i);var t,n,o,c=0,b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0);t=Y-16|0,Y=t,C[A+32>>2]=i,c=a[e+4>>2],a[A+8>>2]=a[e>>2],a[A+12>>2]=c,c=e+8|0,o=a[c+4>>2],n=A+16|0,a[n>>2]=a[c>>2],a[n+4>>2]=o,l=C[c>>2],u=C[r>>2],s=C[e>>2],k=C[r+4>>2],v=C[e+4>>2],d=C[r+8>>2],b=C[A+28>>2],i=_(_(b+C[A+24>>2])+i),C[A+32>>2]=i,a[t+12>>2]=0,C[t+8>>2]=d-_(b*l),C[t+4>>2]=k-_(b*v),C[t>>2]=u-_(s*b),i<_(0)&&(f[A+36|0]=1),A=a[A+4>>2],Qt[a[a[A>>2]+16>>2]](A,e,t,i),Y=t+16|0},ve,function(A,e,r,i){A|=0,e|=0,r|=0,i=_(i);var f,t=_(0),n=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0);f=Y-16|0,Y=f,D=C[e+8>>2],W=C[r+8>>2],s=_(_(D*i)+W),E=C[e+4>>2],w=C[r+4>>2],Z=_(_(E*i)+w),V=C[e>>2],t=_(V*i),i=C[r>>2],N=_(t+i),o[A+232|0]?(g=C[A+40>>2],k=_(-C[A+88>>2]),B=C[A+56>>2],u=C[A+92>>2],l=C[A+72>>2],t=C[A+96>>2],h=_(_(_(g*k)-_(B*u))-_(l*t)),n=C[A+200>>2],m=C[A+44>>2],R=C[A+60>>2],v=C[A+76>>2],p=_(_(_(m*k)-_(R*u))-_(v*t)),c=C[A+204>>2],Q=C[A+48>>2],b=_(Q*k),k=C[A- -64>>2],b=_(b-_(k*u)),u=C[A+80>>2],G=_(b-_(u*t)),t=C[A+208>>2],b=_(_(_(_(_(h*n)+_(p*c))+_(G*t))+C[A+224>>2])+_(_(s*_(_(_(l*n)+_(v*c))+_(u*t)))+_(_(N*_(_(_(g*n)+_(m*c))+_(Q*t)))+_(Z*_(_(_(B*n)+_(R*c))+_(k*t)))))),n=C[A+168>>2],c=C[A+172>>2],t=C[A+176>>2],n=_(_(_(s*_(_(_(l*n)+_(v*c))+_(u*t)))+_(_(N*_(_(_(g*n)+_(m*c))+_(Q*t)))+_(Z*_(_(_(B*n)+_(R*c))+_(k*t)))))+_(_(_(_(n*h)+_(p*c))+_(G*t))+C[A+216>>2])),c=_(V*_(n-i)),t=s,i=C[A+184>>2],s=C[A+188>>2],v=_(_(l*i)+_(v*s)),l=C[A+192>>2],s=_(_(_(t*_(v+_(u*l)))+_(_(N*_(_(_(g*i)+_(m*s))+_(Q*l)))+_(Z*_(_(_(B*i)+_(R*s))+_(k*l)))))+_(_(_(_(h*i)+_(p*s))+_(G*l))+C[A+220>>2])),i=_(_(c+_(E*_(s-w)))+_(D*_(b-W))),C[f+8>>2]=b+_(D*i),C[f+4>>2]=s+_(E*i),C[f>>2]=n+_(V*i)):(x=C[A+224>>2],g=C[A+208>>2],B=C[A+200>>2],l=C[A+204>>2],U=C[A+216>>2],n=C[A+172>>2],m=C[A+176>>2],R=C[A+168>>2],v=C[A+104>>2],b=_(-C[A+152>>2]),c=C[A+120>>2],y=C[A+156>>2],Q=C[A+136>>2],F=C[A+160>>2],k=_(_(_(v*b)-_(c*y))-_(Q*F)),u=C[A+108>>2],t=C[A+124>>2],h=C[A+140>>2],p=_(_(_(u*b)-_(t*y))-_(h*F)),G=C[A+112>>2],d=_(G*b),b=C[A+128>>2],d=_(d-_(b*y)),y=C[A+144>>2],F=_(d-_(y*F)),d=C[A+184>>2],I=C[A+188>>2],J=C[A+192>>2],d=_(_(_(W*_(_(_(Q*d)+_(h*I))+_(y*J)))+_(_(i*_(_(_(v*d)+_(u*I))+_(G*J)))+_(w*_(_(_(c*d)+_(t*I))+_(b*J)))))+_(_(_(_(k*d)+_(p*I))+_(F*J))+C[A+220>>2])),C[f+4>>2]=d,n=_(_(_(W*_(_(_(Q*R)+_(h*n))+_(y*m)))+_(_(i*_(_(_(v*R)+_(u*n))+_(G*m)))+_(w*_(_(_(c*R)+_(t*n))+_(b*m)))))+_(U+_(_(_(R*k)+_(p*n))+_(F*m)))),C[f>>2]=n,i=_(_(x+_(_(_(k*B)+_(p*l))+_(F*g)))+_(_(W*_(_(_(Q*B)+_(h*l))+_(y*g)))+_(_(i*_(_(_(v*B)+_(u*l))+_(G*g)))+_(w*_(_(_(c*B)+_(t*l))+_(b*g)))))),C[f+8>>2]=i,i=_(_(_(V*_(N-n))+_(E*_(Z-d)))+_(D*_(s-i)))),a[f+12>>2]=0,A=a[A+36>>2],Qt[a[a[A>>2]+16>>2]](A,e,f,i),Y=f+16|0},WA,Rr,De,sA,ve,qe,function(){},ve,Ai,function(A){A|=0;var e,r,i=0;return a[A+8>>2]=16148,a[A>>2]=16120,i=A+56|0,e=a[i>>2],r=A+72|0,Qt[a[a[e>>2]+20>>2]](e,a[r>>2]),i=a[i>>2],Qt[a[a[i>>2]+16>>2]](i,a[r>>2]),0|A},function(A){A|=0;var e,r,i=0;a[A+8>>2]=16148,a[A>>2]=16120,i=A+56|0,e=a[i>>2],r=A+72|0,Qt[a[a[e>>2]+20>>2]](e,a[r>>2]),i=a[i>>2],Qt[a[a[i>>2]+16>>2]](i,a[r>>2]),CA(A)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t,n,c=0,b=0,l=_(0);t=Y-16|0,Y=t,Lr(t+8|0,16202),b=o[A+76|0],n=b?e:r,c=a[n+4>>2],a[c+4>>2]+-21>>>0>8||(e=b?r:e,a[a[e+4>>2]+4>>2]>19||(l=_(Qt[a[a[c>>2]+48>>2]](c)),r=A+72|0,a[f+4>>2]=a[r>>2],b=A+8|0,function(A,e,r,i,f,t){var n,o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0);n=Y+-64|0,Y=n,C[A+56>>2]=e,a[A+52>>2]=r,a[A+40>>2]=f,a[A+36>>2]=i,a[A+44>>2]=t,r=a[f+12>>2],B=C[r+52>>2],m=C[r+56>>2],f=a[i+12>>2],R=C[f+52>>2],Q=C[f+56>>2],o=C[r+20>>2],c=C[r+36>>2],h=C[f+20>>2],G=C[f+36>>2],y=C[f+24>>2],b=C[r+24>>2],p=C[f+40>>2],l=C[r+40>>2],F=C[f+32>>2],u=C[r+32>>2],W=C[f>>2],s=C[r>>2],w=C[f+16>>2],k=C[r+16>>2],v=C[r+48>>2],D=C[f+48>>2],d=C[r+4>>2],E=C[f+4>>2],Z=C[f+8>>2],g=C[r+8>>2],a[n+60>>2]=0,a[n+44>>2]=0,a[n+28>>2]=0,C[n+40>>2]=_(_(g*Z)+_(b*y))+_(l*p),C[n+36>>2]=_(_(g*E)+_(b*h))+_(l*G),C[n+24>>2]=_(_(d*Z)+_(o*y))+_(c*p),C[n+20>>2]=_(_(d*E)+_(o*h))+_(c*G),v=_(-v),C[n+56>>2]=_(_(_(g*v)-_(b*B))-_(l*m))+_(_(_(g*D)+_(b*R))+_(l*Q)),C[n+52>>2]=_(_(_(d*v)-_(o*B))-_(c*m))+_(_(_(d*D)+_(o*R))+_(c*Q)),a[n+12>>2]=0,C[n>>2]=_(_(s*W)+_(k*w))+_(u*F),C[n+32>>2]=_(_(g*W)+_(b*w))+_(l*F),C[n+16>>2]=_(_(d*W)+_(o*w))+_(c*F),C[n+8>>2]=_(_(s*Z)+_(k*y))+_(u*p),C[n+4>>2]=_(_(s*E)+_(k*h))+_(u*G),C[n+48>>2]=_(_(_(s*v)-_(k*B))-_(u*m))+_(_(_(s*D)+_(k*R))+_(u*Q)),r=a[i+4>>2],Qt[a[a[r>>2]+8>>2]](r,n,A+4|0,A+20|0),e=_(C[t+32>>2]+e),C[A+20>>2]=e+C[A+20>>2],r=A+24|0,C[r>>2]=e+C[r>>2],r=A+28|0,C[r>>2]=e+C[r>>2],C[A+4>>2]=C[A+4>>2]-e,r=A+8|0,C[r>>2]=C[r>>2]-e,A=A+12|0,C[A>>2]=C[A>>2]-e,Y=n- -64|0}(b,l,i,e,n,f),r=a[r>>2],a[r+776>>2]=a[n+8>>2],a[r+772>>2]=a[e+8>>2],Qt[a[a[c>>2]+64>>2]](c,b,A+12|0,A+28|0),e=a[f+4>>2],a[e+780>>2]&&(i=a[e+772>>2],c=a[a[f+8>>2]+8>>2],r=(0|i)==(0|c),b=e,e=a[a[f+12>>2]+8>>2],se(b,(r?i:e)+4|0,(r?e:c)+4|0)),A=A+44|0,a[A>>2]=0,a[A+4>>2]=0)),qr(),Y=t+16|0},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t=_(0),n=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=_(0),z=_(0),P=_(0),K=_(0),L=_(0);return i=Y-240|0,Y=i,K=_(1),f=o[A+76|0],A=f?r:e,t=_(C[A+116>>2]-C[A+52>>2]),n=_(t*t),t=_(C[A+120>>2]-C[A+56>>2]),n=_(n+_(t*t)),t=_(C[A+124>>2]-C[A+60>>2]),n=_(n+_(t*t)),t=C[A+276>>2],n<_(t*t)||(e=f?e:r,r=a[e+192>>2],a[r+4>>2]+-21>>>0>8||(D=C[A+92>>2],E=C[A+76>>2],Z=C[A+108>>2],V=C[A+88>>2],N=C[A+72>>2],I=C[A+104>>2],J=C[A+100>>2],x=C[A+84>>2],U=C[A+68>>2],s=C[e+36>>2],k=C[e+20>>2],v=C[e+4>>2],M=C[A+28>>2],S=C[A+12>>2],X=C[A+44>>2],T=C[A+24>>2],j=C[A+8>>2],O=C[A+40>>2],H=C[A+36>>2],z=C[A+20>>2],P=C[A+4>>2],d=C[e+12>>2],G=C[A+116>>2],g=C[e+28>>2],n=C[A+120>>2],B=C[e+44>>2],y=C[A+124>>2],L=_(_(_(d*G)+_(g*n))+_(B*y)),m=C[e+8>>2],p=_(-C[e+52>>2]),R=C[e+24>>2],Q=C[e+56>>2],h=C[e+40>>2],F=C[e+60>>2],u=_(_(_(m*p)-_(R*Q))-_(h*F)),t=_(u+_(_(_(m*G)+_(R*n))+_(h*y))),c=C[A+56>>2],b=C[A+52>>2],l=C[A+60>>2],a[i+236>>2]=0,w=_(_(_(d*p)-_(g*Q))-_(B*F)),W=_(w+_(_(_(d*b)+_(g*c))+_(B*l))),C[i+232>>2]=W,u=_(u+_(_(_(m*b)+_(R*c))+_(h*l))),C[i+228>>2]=u,Q=_(_(_(v*p)-_(k*Q))-_(s*F)),l=_(Q+_(_(_(v*b)+_(k*c))+_(s*l))),C[i+224>>2]=l,p=l,c=_(Q+_(_(_(v*G)+_(k*n))+_(s*y))),c<l&&(C[i+224>>2]=c,p=c),G=u,t<u&&(C[i+228>>2]=t,G=t),b=_(w+L),n=W,b<n&&(C[i+232>>2]=b,n=b),a[i+220>>2]=0,C[i+216>>2]=W,C[i+212>>2]=u,C[i+208>>2]=l,y=l,l<c&&(C[i+208>>2]=c,y=c),Q=u,u<t&&(C[i+212>>2]=t,Q=t),F=W,W<b&&(C[i+216>>2]=b,F=b),w=n,n=C[A+272>>2],C[i+232>>2]=w-n,C[i+228>>2]=G-n,C[i+224>>2]=p-n,C[i+216>>2]=n+F,C[i+212>>2]=n+Q,C[i+208>>2]=n+y,a[i+128>>2]=0,C[i+124>>2]=b,C[i+120>>2]=t,C[i+116>>2]=c,a[i+112>>2]=0,C[i+108>>2]=_(_(d*E)+_(g*D))+_(B*Z),C[i+104>>2]=_(_(d*N)+_(g*V))+_(B*I),C[i+100>>2]=_(_(d*U)+_(g*x))+_(B*J),a[i+96>>2]=0,C[i+92>>2]=_(_(m*E)+_(R*D))+_(h*Z),C[i+88>>2]=_(_(m*N)+_(R*V))+_(h*I),C[i+84>>2]=_(_(m*U)+_(R*x))+_(h*J),a[i+80>>2]=0,C[i+76>>2]=_(_(v*E)+_(k*D))+_(s*Z),C[i+72>>2]=_(_(v*N)+_(k*V))+_(s*I),a[i- -64>>2]=0,C[i+60>>2]=W,C[i+56>>2]=u,C[i+52>>2]=l,a[i+48>>2]=0,C[i+44>>2]=_(_(d*S)+_(g*M))+_(B*X),C[i+40>>2]=_(_(d*j)+_(g*T))+_(B*O),C[i+36>>2]=_(_(d*P)+_(g*z))+_(B*H),a[i+32>>2]=0,C[i+28>>2]=_(_(m*S)+_(R*M))+_(h*X),C[i+24>>2]=_(_(m*j)+_(R*T))+_(h*O),C[i+20>>2]=_(_(m*P)+_(R*z))+_(h*H),a[i+16>>2]=0,C[i+12>>2]=_(_(v*S)+_(k*M))+_(s*X),C[i+8>>2]=_(_(v*j)+_(k*T))+_(s*O),C[i+196>>2]=n,C[i+68>>2]=_(_(v*U)+_(k*x))+_(s*J),C[i+4>>2]=_(_(v*P)+_(k*z))+_(s*H),a[i>>2]=16488,a[i+200>>2]=a[A+268>>2],r&&(Qt[a[a[r>>2]+64>>2]](r,i,i+224|0,i+208|0),t=C[i+200>>2],t<C[A+268>>2]&&(C[A+268>>2]=t,K=t)))),Y=i+240|0,_(K)},function(A,e){A|=0,e|=0;var r=0,i=0,t=0,n=0,c=0;if(i=a[A+72>>2],i){if(r=a[e+4>>2],(0|r)==a[e+8>>2]&&(n=r?r<<1:1,!((0|r)>=(0|n)))){if(n&&(c=dA(n<<2),r=a[e+4>>2]),(0|r)>=1)for(i=0,t=r;a[i+c>>2]=a[a[e+12>>2]+i>>2],i=i+4|0,t=t+-1|0,t;);t=a[e+12>>2],t&&(o[e+16|0]&&(CA(t),r=a[e+4>>2]),a[e+12>>2]=0),a[e+12>>2]=c,f[e+16|0]=1,a[e+8>>2]=n,i=a[A+72>>2]}a[e+4>>2]=r+1,a[a[e+12>>2]+(r<<2)>>2]=i}},function(A){A|=0;var e=0;return a[A>>2]=16148,e=a[A+48>>2],Qt[a[a[e>>2]+20>>2]](e,a[A+64>>2]),e=a[A+48>>2],Qt[a[a[e>>2]+16>>2]](e,a[A+64>>2]),0|A},function(A){A|=0;var e=0;a[A>>2]=16148,e=a[A+48>>2],Qt[a[a[e>>2]+20>>2]](e,a[A+64>>2]),e=a[A+48>>2],Qt[a[a[e>>2]+16>>2]](e,a[A+64>>2]),CA(A)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=0,n=0,o=_(0),c=0,b=_(0),l=_(0),u=_(0),s=0,k=0;f=Y-144|0,Y=f,Lr(f+136|0,16160),o=C[e>>2],b=C[e+16>>2],u=o<b?o:b,l=C[e+32>>2],(u<l?u:l)>C[A+20>>2]||(t=(o>b^1)<<4,C[(C[e+t>>2]>l?t:32)+e>>2]<C[A+4>>2]||(o=C[e+8>>2],t=e+24|0,b=C[t>>2],u=o<b?o:b,c=e+40|0,l=C[c>>2],(u<l?u:l)>C[A+28>>2]||(t=o>b?e+8|0:t,C[(C[t>>2]>l?t:c)>>2]<C[A+12>>2]||(o=C[e+4>>2],t=e+20|0,b=C[t>>2],u=o<b?o:b,c=e+36|0,l=C[c>>2],(u<l?u:l)>C[A+24>>2]||(t=o>b?e+4|0:t,a[a[a[A+36>>2]+4>>2]+4>>2]>19|C[(C[t>>2]>l?t:c)>>2]<C[A+8>>2]||(c=a[A+48>>2],k=zA(f+24|0),n=e+8|0,s=a[n+4>>2],t=f+92|0,a[t>>2]=a[n>>2],a[t+4>>2]=s,n=a[e+20>>2],t=f+100|0,a[t>>2]=a[e+16>>2],a[t+4>>2]=n,n=e+24|0,s=a[n+4>>2],t=f+108|0,a[t>>2]=a[n>>2],a[t+4>>2]=s,n=a[e+36>>2],t=f+116|0,a[t>>2]=a[e+32>>2],a[t+4>>2]=n,n=e+40|0,s=a[n+4>>2],t=f+124|0,a[t>>2]=a[n>>2],a[t+4>>2]=s,a[f+24>>2]=16352,t=a[e+4>>2],a[f+84>>2]=a[e>>2],a[f+88>>2]=t,a[f+72>>2]=a[A+56>>2],a[f+28>>2]=1,a[f+20>>2]=i,a[f+16>>2]=r,e=a[A+40>>2],a[f>>2]=e,t=a[e+8>>2],a[f+12>>2]=a[e+12>>2],a[f+8>>2]=t,o=C[a[A+44>>2]+32>>2],a[f+4>>2]=f+24,e=a[A+36>>2],e=o>_(0)?0|Qt[a[a[c>>2]+8>>2]](c,e,f,0,2):0|Qt[a[a[c>>2]+8>>2]](c,e,f,a[A+64>>2],1),t=a[A+44>>2],n=a[t+8>>2],a[n+8>>2]!=a[a[A+40>>2]+8>>2]?(n=a[t+12>>2],a[t+12>>2]=f,Qt[a[a[t>>2]+12>>2]](t,r,i)):(a[t+8>>2]=f,Qt[a[a[t>>2]+8>>2]](t,r,i)),Qt[a[a[e>>2]+8>>2]](e,a[A+36>>2],f,a[A+52>>2],a[A+44>>2]),r=a[A+44>>2],a[(a[a[r+8>>2]+8>>2]==a[a[A+40>>2]+8>>2]?8:12)+r>>2]=n,Qt[a[a[e>>2]>>2]](e),Qt[a[a[c>>2]+60>>2]](c,e),Ae(k))))))),qr(),Y=f+144|0},ce,$A,ve,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t=0,n=0,o=0,c=_(0);r=Y-800|0,Y=r,Lr(r+792|0,16672),i=r+740|0,a[i>>2]=0,a[i+4>>2]=0,i=r+752|0,a[i>>2]=0,a[i+4>>2]=0,a[r+748>>2]=1065353216,i=r+772|0,a[i>>2]=0,a[i+4>>2]=0,a[r+768>>2]=1065353216,i=r+780|0,a[i>>2]=0,a[i+4>>2]=0,a[r+788>>2]=0,a[r+732>>2]=0,a[r+736>>2]=0,a[r+728>>2]=1065353216,a[r+760>>2]=0,a[r+764>>2]=0,a[r+720>>2]=0,a[r+724>>2]=0,a[r+552>>2]=15992,a[r+716>>2]=a[A+200>>2],i=a[A+196>>2],DA(r+496|0),t=r+524|0,a[t>>2]=0,a[t+4>>2]=0,a[r+520>>2]=1065353216,t=r+532|0,a[t>>2]=0,a[t+4>>2]=0,a[r+540>>2]=0,a[r+512>>2]=1065353216,a[r+516>>2]=1065353216,a[r+496>>2]=9852,a[r+548>>2]=0,a[r+544>>2]=i,a[r+528>>2]=i,a[r+500>>2]=8,i=zA(r+384|0),t=e+8|0,n=a[t+4>>2],o=r+452|0,a[o>>2]=a[t>>2],a[o+4>>2]=n,t=a[e+20>>2],n=r+460|0,a[n>>2]=a[e+16>>2],a[n+4>>2]=t,t=e+24|0,n=a[t+4>>2],o=r+468|0,a[o>>2]=a[t>>2],a[o+4>>2]=n,t=a[e+36>>2],n=r+476|0,a[n>>2]=a[e+32>>2],a[n+4>>2]=t,t=e+40|0,n=a[t+4>>2],o=r+484|0,a[o>>2]=a[t>>2],a[o+4>>2]=n,a[r+388>>2]=1,a[r+384>>2]=16352,t=a[e+4>>2],a[r+444>>2]=a[e>>2],a[r+448>>2]=t,f[r+356|0]=0,a[r+332>>2]=953267991,Ai($r(r+8|0,r+496|0,r+384|0,r+24|0),A+4|0,A+68|0,r+728|0,r+728|0,r+552|0)&&(c=C[r+716>>2],C[A+200>>2]>c&&(C[A+200>>2]=c)),Ae(i),qr(),Y=r+800|0},fi,function(A){A|=0,$(fi(A))},ti,function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t,n,c,b,l,u,s=0,k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=0,p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),Y=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=0;if(y=a[A+52>>2],(0|y)<1)return _(_(1));for(s=o[A+68|0],t=s?e:r,e=s?r:e,n=a[e- -64>>2],x=C[e+60>>2],U=C[e+56>>2],M=C[e+52>>2],c=a[e+48>>2],v=C[e+44>>2],d=C[e+40>>2],g=C[e+36>>2],s=32,b=a[e+32>>2],B=C[e+28>>2],m=C[e+24>>2],R=C[e+20>>2],l=a[e+16>>2],Q=C[e+12>>2],h=C[e+8>>2],r=a[e+304>>2],G=C[e+4>>2],u=a[e+192>>2],p=_(1);a[e+304>>2]=r+1,r=a[u+28>>2]+s|0,k=C[r+24>>2],F=C[r+16>>2],W=C[r+20>>2],w=C[r>>2],D=C[r+-32>>2],E=C[r+-16>>2],Z=C[r+4>>2],Y=C[r+-28>>2],V=C[r+-12>>2],N=C[r+8>>2],I=C[r+-24>>2],J=C[r+-8>>2],a[e+64>>2]=0,a[e+48>>2]=0,a[e+32>>2]=0,a[e+16>>2]=0,C[e+44>>2]=_(_(g*I)+_(d*J))+_(v*N),C[e+40>>2]=_(_(g*Y)+_(d*V))+_(v*Z),C[e+36>>2]=_(_(g*D)+_(d*E))+_(v*w),C[e+28>>2]=_(_(R*I)+_(m*J))+_(B*N),C[e+24>>2]=_(_(R*Y)+_(m*V))+_(B*Z),C[e+20>>2]=_(_(R*D)+_(m*E))+_(B*w),C[e+12>>2]=_(_(G*I)+_(h*J))+_(Q*N),C[e+8>>2]=_(_(G*Y)+_(h*V))+_(Q*Z),C[e+4>>2]=_(_(G*D)+_(h*E))+_(Q*w),C[e+60>>2]=x+_(_(_(g*F)+_(d*W))+_(v*k)),C[e+56>>2]=U+_(_(_(R*F)+_(m*W))+_(B*k)),C[e+52>>2]=M+_(_(_(G*F)+_(h*W))+_(Q*k)),r=a[a[A+60>>2]+S>>2],k=_(Qt[a[a[r>>2]+12>>2]](r,e,t,i,f)),a[e+64>>2]=n,C[e+60>>2]=x,C[e+56>>2]=U,C[e+52>>2]=M,a[e+48>>2]=c,C[e+44>>2]=v,C[e+40>>2]=d,C[e+36>>2]=g,a[e+32>>2]=b,C[e+28>>2]=B,C[e+24>>2]=m,C[e+20>>2]=R,a[e+16>>2]=l,C[e+12>>2]=Q,C[e+8>>2]=h,C[e+4>>2]=G,r=a[e+304>>2]+1|0,a[e+304>>2]=r,p=k<p?k:p,s=s+80|0,S=S+4|0,y=y+-1|0,y;);return _(p)},function(A,e){A|=0,e|=0;var r=0,i=0,f=0,t=0;if(r=a[A+52>>2],(0|r)>=1)for(;i=a[a[A+60>>2]+f>>2],i&&(Qt[a[a[i>>2]+16>>2]](i,e),r=a[A+52>>2]),f=f+4|0,t=t+1|0,(0|t)<(0|r););},sA,ve,De,function(A,e){var r,i;A|=0,e|=0,r=A,i=a[a[a[A+4>>2]+4>>2]+28>>2],A=a[e+36>>2],ni(r,a[64+(i+B(A,80)|0)>>2],A)},function(A,e,r){A|=0,e|=0,r=_(r),Qt[a[a[A>>2]+12>>2]](A,e)},lr,lr,function(A){A|=0;var e=0;return a[A>>2]=16844,e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+56>>2]=0,a[A+48>>2]=0,a[A+52>>2]=0,f[A+60|0]=1,e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+36>>2]=0,a[A+28>>2]=0,a[A+32>>2]=0,f[A+40|0]=1,e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=0,a[A+8>>2]=0,a[A+12>>2]=0,f[A+20|0]=1,0|A},function(A){A|=0;var e=0;a[A>>2]=16844,e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+56>>2]=0,a[A+48>>2]=0,a[A+52>>2]=0,f[A+60|0]=1,e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+36>>2]=0,a[A+28>>2]=0,a[A+32>>2]=0,f[A+40|0]=1,e=a[A+16>>2],!e|!o[A+20|0]||CA(e),$(A)},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=0,t=0,n=0,o=0,c=0,b=0,l=0;a[690]=a[690]+1,c=a[A+36>>2],i=r<<16|e,i=(i<<15^-1)+i|0,i=B(i>>>10^i,9),i^=i>>>6,i=(i<<11^-1)+i|0,b=c+((a[A+12>>2]+-1&(i>>>16^i))<<2)|0,i=a[b>>2];A:if(-1!=(0|i)){for(t=a[A+16>>2],f=i;;){if(o=t+B(f,12)|0,a[o+4>>2]!=(0|r)||(0|e)!=a[o>>2]){if(f=a[a[A+56>>2]+(f<<2)>>2],-1!=(0|f))continue;break A}break}if(o){e=B(f,12),l=a[8+(e+t|0)>>2],f=a[A+56>>2],n=(0|e)/12|0;e:{r:{if((0|i)!=(0|n)){for(;e=i,i=a[f+(e<<2)>>2],(0|n)!=(0|i););if(i=a[f+(n<<2)>>2],r=i,-1==(0|e))break r;a[f+(e<<2)>>2]=i;break e}r=a[f+(n<<2)>>2]}a[b>>2]=r}if(i=a[A+8>>2]+-1|0,(0|n)==(0|i))return a[A+8>>2]=n,0|l;e:{if(t=t+B(i,12)|0,e=a[t+4>>2]<<16|a[t>>2],e=(e<<15^-1)+e|0,e=B(e>>>10^e,9),e^=e>>>6,e=(e<<11^-1)+e|0,b=a[A+12>>2]+-1&(e>>>16^e),c=c+(b<<2)|0,e=a[c>>2],(0|e)!=(0|i)){for(;r=e,e=a[f+(e<<2)>>2],(0|i)!=(0|e););if(e=a[f+(i<<2)>>2],-1!=(0|r)){a[f+(r<<2)>>2]=e;break e}}else e=a[f+(i<<2)>>2];a[c>>2]=e}e=a[t+4>>2],a[o>>2]=a[t>>2],a[o+4>>2]=e,a[o+8>>2]=a[t+8>>2],e=a[A+36>>2]+(b<<2)|0,a[a[A+56>>2]+(n<<2)>>2]=a[e>>2],a[e>>2]=n,a[A+8>>2]=a[A+8>>2]+-1}}return 0|l},function(A,e,r){return A|=0,e|=0,r|=0,a[691]=a[691]+1,0|function(A,e,r){var i,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0;t=r<<16|e,t=(t<<15^-1)+t|0,t=B(t>>>10^t,9),t^=t>>>6,t=(t<<11^-1)+t|0,i=t>>>16^t,t=a[A+12>>2],k=i&t+-1,n=a[a[A+36>>2]+(k<<2)>>2];A:{e:if(-1!=(0|n)){for(v=a[A+16>>2];;){if(c=v+B(n,12)|0,a[c+4>>2]!=(0|r)||(0|e)!=a[c>>2]){if(n=a[a[A+56>>2]+(n<<2)>>2],-1!=(0|n))continue;break e}break}if(c)break A}e:{r:{if(u=A,b=a[A+8>>2],n=b,(0|t)==(0|n)){if(s=t?t<<1:1,d=(0|t)>=(0|s),!d)break r;n=t}a[u+8>>2]=n+1,l=a[A+16>>2],c=l+B(b,12)|0;break e}if(s&&(l=dA(B(s,12)),t=a[A+8>>2]),(0|t)>=1)for(n=0;c=a[A+16>>2]+n|0,v=a[c+4>>2],u=n+l|0,a[u>>2]=a[c>>2],a[u+4>>2]=v,a[u+8>>2]=a[c+8>>2],n=n+12|0,t=t+-1|0,t;);t=a[A+16>>2],t&&(o[A+20|0]&&CA(t),a[A+16>>2]=0),a[A+16>>2]=l,a[A+12>>2]=s,f[A+20|0]=1,a[A+8>>2]=a[A+8>>2]+1,c=B(b,12)+l|0,d||(ai(A),k=a[A+12>>2]+-1&i)}a[c>>2]=e,e=B(b,12)+l|0,a[e+8>>2]=0,a[e+4>>2]=r,e=a[A+56>>2]+(b<<2)|0,A=a[A+36>>2]+(k<<2)|0,a[e>>2]=a[A>>2],a[A>>2]=b}return c}(A,e,r)},ci,li,function(A){A|=0,$(li(A))},function(A,e,r,i,t){A|=0,e|=0,r|=0,i|=0,t|=0;var n,c=0,b=0,l=0,u=0,s=_(0),k=0,v=_(0),d=_(0),g=_(0),R=_(0),Q=0,h=_(0),G=_(0),y=_(0),p=0,F=0,W=_(0),w=_(0),D=_(0),E=0,Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=_(0),S=_(0),X=_(0),T=0,j=_(0),O=_(0),H=0,z=_(0),P=0,K=0,L=0,q=_(0),$=_(0),AA=_(0),eA=_(0),rA=_(0),iA=_(0),fA=_(0),tA=_(0),nA=_(0),aA=_(0);if(n=Y-3328|0,Y=n,K=a[e+4>>2],F=a[K+68>>2],F&&(L=a[r+4>>2],T=a[L+68>>2],T)){if(a[L+72>>2]!=a[A+112>>2]||a[K+72>>2]!=a[A+108>>2]){if(b=8,c=a[A+84>>2],l=a[c+8>>2],(0|l)>=1){for(;Q=a[a[c+16>>2]+b>>2],Q&&(Qt[a[a[Q>>2]>>2]](Q),k=a[A+4>>2],Qt[a[a[k>>2]+60>>2]](k,Q)),b=b+12|0,l=l+-1|0,l;);c=a[A+84>>2]}oi(c),a[A+108>>2]=a[K+72>>2],a[A+112>>2]=a[L+72>>2]}a[n+84>>2]=0,f[n+88|0]=1,a[n+76>>2]=0,a[n+80>>2]=0,be(n+112|0),be(n+916|0),be(n+1720|0),be(n+2524|0),c=a[n+84>>2],c&&(o[n+88|0]&&CA(c),a[n+84>>2]=0),a[n+76>>2]=0,a[n+80>>2]=4,Q=a[A+84>>2],f[n+88|0]=0,u=a[Q+8>>2],a[n+84>>2]=n+112;A:{if((0|u)<=0)b=n+112|0;else{for(k=0;;){if(c=a[8+(a[Q+16>>2]+B(k,12)|0)>>2],c){if(Qt[a[a[c>>2]+16>>2]](c,n+72|0),b=a[n+76>>2],(0|b)>=1)for(u=0,l=0;c=a[a[n+84>>2]+u>>2],a[c+780>>2]&&(a[t+4>>2]=c,H=a[c+772>>2],p=a[a[t+8>>2]+8>>2],b=(0|H)==(0|p),P=c,c=a[a[t+12>>2]+8>>2],se(P,(b?H:c)+4|0,(b?c:p)+4|0),a[t+4>>2]=0,b=a[n+76>>2]),u=u+4|0,l=l+1|0,(0|l)<(0|b););if((0|b)<=-1)for(a[n+80>>2]<=-1&&(c=a[n+84>>2],c&&(o[n+88|0]&&CA(c),a[n+84>>2]=0),f[n+88|0]=1,a[n+80>>2]=0,a[n+84>>2]=0),u=b<<2;a[a[n+84>>2]+u>>2]=0,u=u+4|0,c=b+1|0,l=c>>>0>=b>>>0,b=c,l;);a[n+76>>2]=0,u=a[Q+8>>2]}if(k=k+1|0,!((0|k)<(0|u)))break}if(b=a[n+84>>2],!b)break A}o[n+88|0]&&CA(b),a[n+84>>2]=0}if(a[n+92>>2]=i,a[n+76>>2]=0,a[n+72>>2]=16988,a[n+88>>2]=a[A+4>>2],a[n+104>>2]=a[A+72>>2],a[n+100>>2]=a[A+84>>2],a[n+84>>2]=r,i=a[r+12>>2],s=C[i+56>>2],a[n+80>>2]=e,c=a[e+12>>2],v=C[c+40>>2],U=C[i+52>>2],d=C[c+24>>2],Z=C[i+48>>2],G=C[c+8>>2],M=C[c+56>>2],V=C[c+52>>2],j=C[c+48>>2],g=C[c+36>>2],R=C[c+20>>2],y=C[c+4>>2],N=C[i+40>>2],S=C[i+24>>2],I=C[i+8>>2],X=C[i+36>>2],w=C[i+20>>2],J=C[i+4>>2],W=C[c>>2],D=C[c+16>>2],h=C[c+32>>2],x=C[i+16>>2],O=C[i>>2],z=C[i+32>>2],a[n+96>>2]=t,i=a[F>>2],i&&(c=a[T>>2],c)){for(j=_(-j),q=_(_(_(_(G*j)-_(d*V))-_(v*M))+_(_(_(G*Z)+_(d*U))+_(v*s))),iA=_(_(_(_(y*j)-_(R*V))-_(g*M))+_(_(_(y*Z)+_(R*U))+_(g*s))),U=_(_(_(_(W*j)-_(D*V))-_(h*M))+_(_(_(W*Z)+_(D*U))+_(h*s))),s=C[t+32>>2],a[n+116>>2]=c,a[n+112>>2]=i,Z=_(_(_(G*I)+_(d*S))+_(v*N)),M=_(m(Z)),V=_(_(_(G*J)+_(d*w))+_(v*X)),j=_(m(V)),$=_(_(_(G*O)+_(d*x))+_(v*z)),fA=_(m($)),AA=_(_(_(y*I)+_(R*S))+_(g*N)),tA=_(m(AA)),eA=_(_(_(y*J)+_(R*w))+_(g*X)),nA=_(m(eA)),rA=_(_(_(y*O)+_(R*x))+_(g*z)),aA=_(m(rA)),N=_(_(_(W*I)+_(D*S))+_(h*N)),S=_(m(N)),I=_(_(_(W*J)+_(D*w))+_(h*X)),X=_(m(I)),W=_(_(_(W*O)+_(D*x))+_(h*z)),D=_(m(W)),T=124,l=0,k=128,c=n+112|0,i=128,u=1;;){A:{e:{r:{if(H=u+-1|0,P=H<<3,b=P+c|0,E=a[b>>2],p=a[b+4>>2],g=C[p+16>>2],R=C[p>>2],v=_(_(_(g-R)*_(.5))+_(0)),y=C[p+20>>2],h=C[p+4>>2],d=_(_(_(y-h)*_(.5))+_(0)),w=C[p+24>>2],J=C[p+8>>2],G=_(_(_(w-J)*_(.5))+_(0)),x=_(_(_(D*v)+_(X*d))+_(S*G)),g=_(_(g+R)*_(.5)),R=_(_(y+h)*_(.5)),y=_(_(w+J)*_(.5)),h=_(U+_(_(_(W*g)+_(I*R))+_(N*y))),!(C[E>>2]<=_(s+_(x+h))^1|C[E+16>>2]>=_(_(h-x)-s)^1||(h=_(_(_(aA*v)+_(nA*d))+_(tA*G)),w=_(iA+_(_(_(rA*g)+_(eA*R))+_(AA*y))),C[E+4>>2]<=_(s+_(h+w))^1|C[E+20>>2]>=_(_(w-h)-s)^1||(v=_(_(_(fA*v)+_(j*d))+_(M*G)),d=_(q+_(_(_($*g)+_(V*R))+_(Z*y))),C[E+8>>2]<=_(s+_(v+d))^1|C[E+24>>2]>=_(_(d-v)-s)^1)))){if((0|H)<=(0|T))Q=k,b=c,F=l;else{Q=k<<1;i:if((0|k)>=(0|Q)|(0|i)>=(0|Q))b=c,F=l;else{f:{t:{n:{if(k){if(b=dA(k<<4),!((0|k)<1)){for(T=b,i=c;F=a[i+4>>2],a[T>>2]=a[i>>2],a[T+4>>2]=F,T=T+8|0,i=i+8|0,k=k+-1|0,k;);if(!(255&l))break t;break n}}else b=0;if(F=1,i=F,!c)break f;if(i=Q,!(255&l))break i}CA(c)}i=1}F=i,i=Q}T=Q+-4|0}if(c=a[p+40>>2],a[E+40>>2]){if(l=a[E+36>>2],c){c=b+P|0,a[c+4>>2]=a[p+36>>2],a[c>>2]=l,l=a[E+40>>2],c=(u<<3)+b|0,a[c+4>>2]=a[p+36>>2],a[c>>2]=l,l=a[E+36>>2],a[c+12>>2]=a[p+40>>2],a[c+8>>2]=l,l=a[E+40>>2],a[c+20>>2]=a[p+40>>2],a[c+16>>2]=l,u=u+3|0;break e}c=b+P|0,a[c+4>>2]=p,a[c>>2]=l,c=a[E+40>>2],l=(u<<3)+b|0,a[l+4>>2]=p,a[l>>2]=c;break r}if(c){c=b+P|0,a[c+4>>2]=a[p+36>>2],a[c>>2]=E,c=(u<<3)+b|0,a[c+4>>2]=a[p+40>>2],a[c>>2]=E;break r}Qt[a[a[n+72>>2]+8>>2]](n+72|0,E,p),k=Q,c=b,l=F}u=H;break A}u=u+1|0}k=Q,c=b,l=F}if(!u)break}!c|!(255&l)||CA(c)}if(Q=a[A+84>>2],a[Q+8>>2]>=1)for(c=0;;){if(F=B(c,12),i=F+a[Q+16>>2]|0,l=a[i+8>>2],l&&(i=a[K+28>>2]+B(a[i>>2],80)|0,k=a[i+64>>2],b=a[e+12>>2],O=C[b+52>>2],z=C[b+56>>2],h=C[i+48>>2],U=C[i+52>>2],Z=C[i+56>>2],M=C[i+4>>2],V=C[i+20>>2],N=C[i+36>>2],S=C[i+8>>2],I=C[i+24>>2],X=C[i+40>>2],s=C[b+20>>2],v=C[b+24>>2],w=C[i>>2],d=C[b+36>>2],J=C[i+16>>2],G=C[b+40>>2],x=C[i+32>>2],j=C[b+48>>2],g=C[b+8>>2],R=C[b>>2],y=C[b+4>>2],W=C[b+16>>2],D=C[b+32>>2],a[n+172>>2]=0,a[n+156>>2]=0,a[n+140>>2]=0,a[n+124>>2]=0,C[n+144>>2]=_(_(D*w)+_(d*J))+_(G*x),C[n+128>>2]=_(_(W*w)+_(s*J))+_(v*x),C[n+112>>2]=_(_(R*w)+_(y*J))+_(g*x),C[n+152>>2]=_(_(D*S)+_(d*I))+_(G*X),C[n+148>>2]=_(_(D*M)+_(d*V))+_(G*N),C[n+136>>2]=_(_(W*S)+_(s*I))+_(v*X),C[n+132>>2]=_(_(W*M)+_(s*V))+_(v*N),C[n+120>>2]=_(_(R*S)+_(y*I))+_(g*X),C[n+116>>2]=_(_(R*M)+_(y*V))+_(g*N),C[n+168>>2]=z+_(_(_(D*h)+_(d*U))+_(G*Z)),C[n+164>>2]=O+_(_(_(W*h)+_(s*U))+_(v*Z)),C[n+160>>2]=j+_(_(_(R*h)+_(y*U))+_(g*Z)),Qt[a[a[k>>2]+8>>2]](k,n+112|0,n+56|0,n+40|0),s=C[t+32>>2],C[n+56>>2]=C[n+56>>2]-s,C[n+60>>2]=C[n+60>>2]-s,C[n+64>>2]=C[n+64>>2]-s,C[n+40>>2]=s+C[n+40>>2],C[n+44>>2]=s+C[n+44>>2],C[n+48>>2]=s+C[n+48>>2],i=a[L+28>>2]+B(a[4+(F+a[Q+16>>2]|0)>>2],80)|0,k=a[i+64>>2],b=a[r+12>>2],z=C[b+52>>2],j=C[b+56>>2],U=C[i+48>>2],Z=C[i+52>>2],M=C[i+56>>2],V=C[i+4>>2],N=C[i+20>>2],S=C[i+36>>2],I=C[i+8>>2],X=C[i+24>>2],w=C[i+40>>2],v=C[b+20>>2],d=C[b+24>>2],J=C[i>>2],G=C[b+36>>2],x=C[i+16>>2],g=C[b+40>>2],O=C[i+32>>2],q=C[b+48>>2],R=C[b+8>>2],y=C[b>>2],W=C[b+4>>2],D=C[b+16>>2],h=C[b+32>>2],a[n+172>>2]=0,a[n+156>>2]=0,a[n+140>>2]=0,a[n+124>>2]=0,C[n+144>>2]=_(_(h*J)+_(G*x))+_(g*O),C[n+128>>2]=_(_(D*J)+_(v*x))+_(d*O),C[n+112>>2]=_(_(y*J)+_(W*x))+_(R*O),C[n+152>>2]=_(_(h*I)+_(G*X))+_(g*w),C[n+148>>2]=_(_(h*V)+_(G*N))+_(g*S),C[n+136>>2]=_(_(D*I)+_(v*X))+_(d*w),C[n+132>>2]=_(_(D*V)+_(v*N))+_(d*S),C[n+120>>2]=_(_(y*I)+_(W*X))+_(R*w),C[n+116>>2]=_(_(y*V)+_(W*N))+_(R*S),C[n+168>>2]=j+_(_(_(h*U)+_(G*Z))+_(g*M)),C[n+164>>2]=z+_(_(_(D*U)+_(v*Z))+_(d*M)),C[n+160>>2]=q+_(_(_(y*U)+_(W*Z))+_(R*M)),Qt[a[a[k>>2]+8>>2]](k,n+112|0,n+24|0,n+8|0),v=_(C[n+24>>2]-s),C[n+24>>2]=v,d=_(C[n+28>>2]-s),C[n+28>>2]=d,G=_(C[n+32>>2]-s),C[n+32>>2]=G,g=_(s+C[n+8>>2]),C[n+8>>2]=g,R=_(s+C[n+16>>2]),C[n+16>>2]=R,s=_(s+C[n+12>>2]),C[n+12>>2]=s,C[n+44>>2]<d|C[n+60>>2]>s|C[n+40>>2]<v|C[n+56>>2]>g||C[n+64>>2]>R||C[n+48>>2]<G)){if(Qt[a[a[l>>2]>>2]](l),i=a[A+4>>2],Qt[a[a[i>>2]+60>>2]](i,l),i=F+a[Q+16>>2]|0,T=a[i+4>>2],H=a[i>>2],u=a[A+92>>2],(0|u)==a[A+96>>2]&&(i=u?u<<1:1,!((0|u)>=(0|i)))){if(i?(k=dA(B(i,12)),u=a[A+92>>2]):k=0,(0|u)>=1)for(b=0;F=a[A+100>>2]+b|0,p=a[F+4>>2],l=b+k|0,a[l>>2]=a[F>>2],a[l+4>>2]=p,a[l+8>>2]=a[F+8>>2],b=b+12|0,u=u+-1|0,u;);b=a[A+100>>2],b&&(o[A+104|0]&&CA(b),a[A+100>>2]=0),a[A+100>>2]=k,f[A+104|0]=1,a[A+96>>2]=i,u=a[A+92>>2]}i=a[A+100>>2]+B(u,12)|0,a[i+8>>2]=0,a[i+4>>2]=T,a[i>>2]=H,a[A+92>>2]=a[A+92>>2]+1}if(c=c+1|0,!((0|c)<a[Q+8>>2]))break}if(a[A+92>>2]>=1)for(u=0,b=4;e=a[A+84>>2],r=a[A+100>>2]+b|0,Qt[a[a[e>>2]+8>>2]](e,a[r+-4>>2],a[r>>2]),b=b+12|0,u=u+1|0,(0|u)<a[A+92>>2];);e=a[A+100>>2],e&&(o[A+104|0]&&CA(e),a[A+100>>2]=0),a[A+100>>2]=0,a[A+92>>2]=0,a[A+96>>2]=0,f[A+104|0]=1}else ti(A,e,r,i,t);Y=n+3328|0},function(A,e,r,i,f){return _(_(0))},function(A,e){A|=0,e|=0;var r=0,i=0,f=0,t=0;if(r=8,A=a[A+84>>2],i=a[A+8>>2],(0|i)>=1)for(;f=a[a[A+16>>2]+r>>2],f&&(Qt[a[a[f>>2]+16>>2]](f,e),i=a[A+8>>2]),r=r+12|0,t=t+1|0,(0|t)<(0|i););},ve,function(A,e,r){A|=0,e|=0,r|=0;var i,f,t,n,o,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=0,Z=0,V=0,N=_(0),I=_(0),J=0,x=0;i=Y-256|0,Y=i,Lr(i+248|0,17064),a[A+4>>2]=a[A+4>>2]+1,f=a[r+36>>2],n=B(f,80),V=a[A+12>>2],o=a[V+4>>2]+28|0,E=a[64+(n+a[o>>2]|0)>>2],r=a[A+8>>2],t=a[e+36>>2],e=a[a[r+4>>2]+28>>2]+B(t,80)|0,Z=a[e+64>>2],r=a[r+12>>2],R=C[r+52>>2],k=C[r+56>>2],u=C[r+24>>2],s=C[r+20>>2],c=C[r+40>>2],b=C[r+36>>2],N=C[r+48>>2],v=C[r+8>>2],d=C[r>>2],g=C[r+4>>2],m=C[r+16>>2],l=C[r+32>>2],r=0,a[i+244>>2]=0,a[i+228>>2]=0,a[i+212>>2]=0,Q=C[e+8>>2],h=C[e+24>>2],G=C[e+40>>2],C[i+224>>2]=_(_(l*Q)+_(b*h))+_(c*G),y=C[e+4>>2],p=C[e+20>>2],F=C[e+36>>2],C[i+220>>2]=_(_(l*y)+_(b*p))+_(c*F),C[i+208>>2]=_(_(m*Q)+_(s*h))+_(u*G),C[i+204>>2]=_(_(m*y)+_(s*p))+_(u*F),W=k,k=C[e+48>>2],w=C[e+52>>2],D=C[e+56>>2],C[i+240>>2]=W+_(_(_(l*k)+_(b*w))+_(c*D)),C[i+236>>2]=R+_(_(_(m*k)+_(s*w))+_(u*D)),a[i+196>>2]=0,W=l,l=C[e>>2],R=b,b=C[e+16>>2],I=c,c=C[e+32>>2],C[i+216>>2]=_(_(W*l)+_(R*b))+_(I*c),C[i+200>>2]=_(_(m*l)+_(s*b))+_(u*c),C[i+192>>2]=_(_(d*Q)+_(g*h))+_(v*G),C[i+188>>2]=_(_(d*y)+_(g*p))+_(v*F),C[i+184>>2]=_(_(d*l)+_(g*b))+_(v*c),C[i+232>>2]=N+_(_(_(d*k)+_(g*w))+_(v*D)),e=a[V+12>>2],R=C[e+52>>2],k=C[e+56>>2],u=C[e+24>>2],s=C[e+20>>2],c=C[e+40>>2],b=C[e+36>>2],V=a[o>>2],N=C[e+48>>2],v=C[e+8>>2],d=C[e>>2],g=C[e+4>>2],m=C[e+16>>2],l=C[e+32>>2],a[i+180>>2]=0,a[i+164>>2]=0,a[i+148>>2]=0,e=V+n|0,Q=C[e+8>>2],h=C[e+24>>2],G=C[e+40>>2],C[i+160>>2]=_(_(l*Q)+_(b*h))+_(c*G),y=C[e+4>>2],p=C[e+20>>2],F=C[e+36>>2],C[i+156>>2]=_(_(l*y)+_(b*p))+_(c*F),C[i+144>>2]=_(_(m*Q)+_(s*h))+_(u*G),C[i+140>>2]=_(_(m*y)+_(s*p))+_(u*F),W=k,k=C[e+48>>2],w=C[e+52>>2],D=C[e+56>>2],C[i+176>>2]=W+_(_(_(l*k)+_(b*w))+_(c*D)),C[i+172>>2]=R+_(_(_(m*k)+_(s*w))+_(u*D)),a[i+132>>2]=0,W=l,l=C[e>>2],R=b,b=C[e+16>>2],I=c,c=C[e+32>>2],C[i+152>>2]=_(_(W*l)+_(R*b))+_(I*c),C[i+136>>2]=_(_(m*l)+_(s*b))+_(u*c),C[i+128>>2]=_(_(d*Q)+_(g*h))+_(v*G),C[i+124>>2]=_(_(d*y)+_(g*p))+_(v*F),C[i+120>>2]=_(_(d*l)+_(g*b))+_(v*c),C[i+168>>2]=N+_(_(_(d*k)+_(g*w))+_(v*D)),Qt[a[a[Z>>2]+8>>2]](Z,i+184|0,i+104|0,i+88|0),Qt[a[a[E>>2]+8>>2]](E,i+120|0,i+72|0,i+56|0),u=C[a[A+24>>2]+32>>2],s=_(C[i+104>>2]-u),C[i+104>>2]=s,C[i+108>>2]=C[i+108>>2]-u,C[i+112>>2]=C[i+112>>2]-u,C[i+88>>2]=u+C[i+88>>2],C[i+92>>2]=u+C[i+92>>2],C[i+96>>2]=u+C[i+96>>2],e=a[693];A:{if(e){if(!Qt[e](Z,E))break A;s=C[i+104>>2]}s>C[i+56>>2]|C[i+88>>2]<C[i+72>>2]||(r=1),e=0,e=C[i+96>>2]<C[i+80>>2]|C[i+112>>2]>C[i+64>>2]?e:r,C[i+92>>2]<C[i+76>>2]|C[i+108>>2]>C[i+60>>2]|1^e||(a[i+48>>2]=-1,a[i+36>>2]=Z,e=a[A+8>>2],a[i+32>>2]=e,a[i+40>>2]=a[e+8>>2],a[i+44>>2]=i+184,a[i+52>>2]=t,a[i+24>>2]=-1,a[i+12>>2]=E,e=a[A+12>>2],a[i+8>>2]=e,a[i+16>>2]=a[e+8>>2],a[i+20>>2]=i+120,a[i+28>>2]=f,e=function(A,e,r){var i=0,f=0,t=0;a[692]=a[692]+1,i=r<<16|e,i=(i<<15^-1)+i|0,i=B(i>>>10^i,9),i^=i>>>6,i=(i<<11^-1)+i|0,i=a[A+12>>2]+-1&(i>>>16^i);e:{if(!((0|i)>=a[A+28>>2])&&(i=a[a[A+36>>2]+(i<<2)>>2],-1!=(0|i)))for(t=a[A+16>>2];;){if(f=B(i,12)+t|0,a[f+4>>2]==(0|r)&&(0|e)==a[f>>2])break e;if(i=a[a[A+56>>2]+(i<<2)>>2],-1==(0|i))break}f=0}return f}(a[A+28>>2],t,f),C[a[A+24>>2]+32>>2]>_(0)?(e=a[A+16>>2],r=0|Qt[a[a[e>>2]+8>>2]](e,i+32|0,i+8|0,0,2)):e?r=a[e+8>>2]:(e=a[A+16>>2],r=0|Qt[a[a[e>>2]+8>>2]](e,i+32|0,i+8|0,a[A+32>>2],1),e=a[A+28>>2],J=0|Qt[a[a[e>>2]+12>>2]](e,t,f),x=r,a[J+8>>2]=x),e=a[A+24>>2],E=a[e+12>>2],Z=a[e+8>>2],a[e+12>>2]=i+8,a[e+8>>2]=i+32,Qt[a[a[e>>2]+8>>2]](e,-1,t),e=a[A+24>>2],Qt[a[a[e>>2]+12>>2]](e,-1,f),Qt[a[a[r>>2]+8>>2]](r,i+32|0,i+8|0,a[A+20>>2],a[A+24>>2]),A=a[A+24>>2],a[A+8>>2]=Z,a[A+12>>2]=E)}qr(),Y=i+256|0},Rr,ve,Ar,Re,Rr,function(A){A|=0;var e=0,r=0;return a[A>>2]=17172,o[A+8|0]&&(e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),0|A},function(A){A|=0;var e=0,r=0;a[A>>2]=17172,o[A+8|0]&&(e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),$(A)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t=_(0),n=0,o=_(0),c=0,b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0);if(i=Y-32|0,Y=i,A=a[A+12>>2],A){if(a[f+4>>2]=A,n=a[e+12>>2],c=a[r+12>>2],s=_(C[n+48>>2]-C[c+48>>2]),b=_(C[n+52>>2]-C[c+52>>2]),l=_(C[n+56>>2]-C[c+56>>2]),t=_(_(_(s*s)+_(b*b))+_(l*l)),n=a[r+4>>2],u=C[n+16>>2],o=C[n+32>>2],e=a[e+4>>2],k=C[e+16>>2],v=C[e+32>>2],n=a[A+780>>2],(0|n)>=1)for(e=A+4|0,c=0;le(e),e=e+192|0,c=c+1|0,n=a[A+780>>2],(0|c)<(0|n););t=_(y(t)),u=_(o*u),o=_(v*k),n&&(e=a[424],e&&(a[i+16>>2]=A,Qt[e](i+16|0))),a[A+780>>2]=0,o=_(o+u),t>_(o+C[f+32>>2])||(a[i+24>>2]=0,a[i+28>>2]=0,a[i+16>>2]=1065353216,a[i+20>>2]=0,o=_(t-o),t>_(1.1920928955078125e-7)?(a[i+28>>2]=0,t=_(_(1)/t),l=_(l*t),C[i+24>>2]=l,b=_(b*t),C[i+20>>2]=b,t=_(s*t),C[i+16>>2]=t):(t=_(1),l=_(0),b=_(0)),a[i+12>>2]=0,A=a[r+12>>2],C[i>>2]=_(u*t)+C[A+48>>2],C[i+8>>2]=_(u*l)+C[A+56>>2],C[i+4>>2]=_(u*b)+C[A+52>>2],Qt[a[a[f>>2]+16>>2]](f,i+16|0,i,o))}Y=i+32|0},Re,ui,ve,si,function(A){A|=0;var e=0,r=0;return a[A>>2]=17308,o[A+8|0]&&(e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),0|A},function(A){A|=0;var e=0,r=0;a[A>>2]=17308,o[A+8|0]&&(e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),$(A)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,g=0;t=Y-160|0,Y=t,u=a[A+12>>2],u&&(a[f+4>>2]=u,n=o[A+16|0],c=n?r:e,k=a[c+4>>2],n=n?e:r,r=a[n+4>>2],e=t+144|0,C[e+12>>2]=C[u+784>>2]+C[f+32>>2],a[e+8>>2]=r,a[e+4>>2]=k,a[e>>2]=17248,u=e,a[t+136>>2]=1566444395,e=a[c+12>>2],c=a[e>>2],k=a[e+4>>2],r=e+8|0,v=a[r>>2],r=a[r+4>>2],b=e+24|0,s=a[b+4>>2],l=t+32|0,a[l>>2]=a[b>>2],a[l+4>>2]=s,b=t+16|0,a[b>>2]=v,a[b+4>>2]=r,r=a[e+16>>2],v=a[e+20>>2],b=e+40|0,s=a[b+4>>2],l=t+48|0,a[l>>2]=a[b>>2],a[l+4>>2]=s,b=a[e+32>>2],s=a[e+36>>2],l=e+56|0,g=a[l+4>>2],d=t- -64|0,a[d>>2]=a[l>>2],a[d+4>>2]=g,a[t+8>>2]=c,a[t+12>>2]=k,a[t+24>>2]=r,a[t+28>>2]=v,a[t+40>>2]=b,a[t+44>>2]=s,r=a[e+52>>2],a[t+56>>2]=a[e+48>>2],a[t+60>>2]=r,e=a[n+12>>2],r=e+8|0,n=a[r+4>>2],c=t+80|0,a[c>>2]=a[r>>2],a[c+4>>2]=n,r=a[e+4>>2],a[t+72>>2]=a[e>>2],a[t+76>>2]=r,r=e+24|0,n=a[r+4>>2],c=t+96|0,a[c>>2]=a[r>>2],a[c+4>>2]=n,r=a[e+20>>2],n=t+88|0,a[n>>2]=a[e+16>>2],a[n+4>>2]=r,r=e+40|0,n=a[r+4>>2],c=t+112|0,a[c>>2]=a[r>>2],a[c+4>>2]=n,r=a[e+36>>2],n=t+104|0,a[n>>2]=a[e+32>>2],a[n+4>>2]=r,r=a[e+52>>2],n=t+120|0,a[n>>2]=a[e+48>>2],a[n+4>>2]=r,e=e+56|0,r=a[e+4>>2],n=t+128|0,a[n>>2]=a[e>>2],a[n+4>>2]=r,si(u,t+8|0,f,a[i+20>>2],o[A+16|0]),o[A+8|0]&&(A=a[f+4>>2],a[A+780>>2]&&(e=a[A+772>>2],r=a[a[f+8>>2]+8>>2],(0|e)==(0|r)?se(A,e+4|0,a[a[f+12>>2]+8>>2]+4|0):se(A,a[a[f+12>>2]+8>>2]+4|0,r+4|0)))),Y=t+160|0},Re,ui,ve,Ci,function(A){A|=0;var e=0,r=0;return a[A>>2]=17516,o[A+8|0]&&(e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),0|A},function(A){A|=0;var e=0,r=0;a[A>>2]=17516,o[A+8|0]&&(e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),$(A)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0;t=Y-160|0,Y=t,s=a[A+12>>2],s&&(a[f+4>>2]=s,s=a[r+4>>2],C=a[e+4>>2],a[t+152>>2]=1566444395,e=a[e+12>>2],n=e+8|0,c=a[n+4>>2],b=t+32|0,a[b>>2]=a[n>>2],a[b+4>>2]=c,n=a[e>>2],c=a[e+4>>2],b=e+24|0,k=a[b+4>>2],l=t+48|0,a[l>>2]=a[b>>2],a[l+4>>2]=k,b=a[e+16>>2],k=a[e+20>>2],l=e+40|0,v=a[l+4>>2],u=t- -64|0,a[u>>2]=a[l>>2],a[u+4>>2]=v,l=a[e+32>>2],v=a[e+36>>2],u=e+56|0,g=a[u+4>>2],d=t+80|0,a[d>>2]=a[u>>2],a[d+4>>2]=g,a[t+24>>2]=n,a[t+28>>2]=c,a[t+40>>2]=b,a[t+44>>2]=k,a[t+56>>2]=l,a[t+60>>2]=v,n=a[e+52>>2],a[t+72>>2]=a[e+48>>2],a[t+76>>2]=n,e=a[r+12>>2],r=e+8|0,n=a[r+4>>2],c=t+96|0,a[c>>2]=a[r>>2],a[c+4>>2]=n,r=a[e+4>>2],a[t+88>>2]=a[e>>2],a[t+92>>2]=r,r=a[e+20>>2],n=t+104|0,a[n>>2]=a[e+16>>2],a[n+4>>2]=r,r=e+24|0,n=a[r+4>>2],c=t+112|0,a[c>>2]=a[r>>2],a[c+4>>2]=n,r=e+40|0,n=a[r+4>>2],c=t+128|0,a[c>>2]=a[r>>2],a[c+4>>2]=n,r=a[e+36>>2],n=t+120|0,a[n>>2]=a[e+32>>2],a[n+4>>2]=r,r=a[e+52>>2],n=t+136|0,a[n>>2]=a[e+48>>2],a[n+4>>2]=r,e=e+56|0,r=a[e+4>>2],n=t+144|0,a[n>>2]=a[e>>2],a[n+4>>2]=r,e=t+8|0,a[e+8>>2]=s,a[e+4>>2]=C,a[e>>2]=17464,Ci(e,t+24|0,f,a[i+20>>2],0),o[A+8|0]&&(A=a[f+4>>2],a[A+780>>2]&&(e=a[A+772>>2],r=a[a[f+8>>2]+8>>2],(0|e)==(0|r)?se(A,e+4|0,a[a[f+12>>2]+8>>2]+4|0):se(A,a[a[f+12>>2]+8>>2]+4|0,r+4|0)))),Y=t+160|0},Re,ui,function(A){A|=0;var e=0,r=0;return a[A>>2]=17588,o[A+8|0]&&(e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),0|A},function(A){A|=0;var e=0,r=0;a[A>>2]=17588,o[A+8|0]&&(e=a[A+12>>2],e&&(r=a[A+4>>2],Qt[a[a[r>>2]+16>>2]](r,e))),$(A)},function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0;var t=_(0),n=_(0),c=0,b=_(0),l=_(0),u=0,s=0,k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),R=_(0),h=0,G=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0),Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=_(0),M=0,S=_(0),X=_(0),T=_(0),j=_(0),O=_(0),H=0,z=_(0),P=_(0),K=_(0),L=_(0),q=_(0),$=_(0),AA=_(0),eA=_(0),rA=_(0),iA=_(0),fA=_(0),tA=_(0),nA=_(0),aA=_(0),oA=_(0),cA=_(0),bA=_(0);if(i=Y-48|0,Y=i,a[A+12>>2]){if(s=o[A+16|0],h=s?r:e,c=a[h+12>>2],G=C[c+56>>2],p=C[c+52>>2],F=C[c+48>>2],M=s?e:r,u=a[M+12>>2],S=C[u+56>>2],L=C[u+48>>2],X=C[u+52>>2],h=a[h+4>>2],W=C[c+32>>2],w=C[c+16>>2],D=C[c>>2],E=C[c+36>>2],Z=C[c+20>>2],V=C[c+4>>2],n=C[u+40>>2],b=C[u+24>>2],t=C[u+8>>2],l=C[u+32>>2],d=C[u+16>>2],k=C[u>>2],s=a[M+4>>2],B=C[u+36>>2],g=C[c+40>>2],R=C[u+20>>2],N=C[c+24>>2],v=C[u+4>>2],I=C[c+8>>2],a[i+28>>2]=0,j=_(_(_(I*k)+_(N*d))+_(g*l)),J=_(-C[s+52>>2]),O=_(_(_(I*v)+_(N*R))+_(g*B)),u=s+56|0,x=C[u>>2],N=_(_(_(I*t)+_(N*b))+_(g*n)),H=s+60|0,g=C[H>>2],C[i+24>>2]=_(_(j*J)-_(O*x))-_(N*g),I=_(_(_(V*k)+_(Z*d))+_(E*l)),z=_(_(_(V*v)+_(Z*R))+_(E*B)),P=_(_(_(V*t)+_(Z*b))+_(E*n)),C[i+20>>2]=_(_(I*J)-_(x*z))-_(g*P),K=_(_(_(D*k)+_(w*d))+_(W*l)),T=_(K*J),J=_(_(_(D*v)+_(w*R))+_(W*B)),U=g,g=_(_(_(D*t)+_(w*b))+_(W*n)),C[i+16>>2]=_(T-_(x*J))-_(U*g),Qt[a[a[h>>2]+64>>2]](i+32|0,h,i+16|0),c=a[M+12>>2],x=C[c+48>>2],q=C[c+32>>2],$=C[c+16>>2],AA=C[c+8>>2],eA=C[c+4>>2],rA=C[c>>2],iA=C[c+56>>2],fA=C[c+52>>2],tA=C[c+40>>2],nA=C[c+36>>2],aA=C[c+24>>2],oA=C[c+20>>2],cA=C[s+68>>2],E=C[H>>2],Z=C[s+52>>2],V=C[u>>2],W=C[i+40>>2],w=C[i+32>>2],D=C[i+36>>2],bA=C[a[A+12>>2]+784>>2],a[f+4>>2]=a[A+12>>2],T=_(_(_(F*t)+_(p*b))+_(G*n)),U=t,t=_(-L),g=_(_(T+_(_(_(U*t)-_(b*X))-_(n*S)))+_(_(_(g*w)+_(P*D))+_(N*W))),d=_(_(_(_(_(F*k)+_(p*d))+_(G*l))+_(_(_(k*t)-_(d*X))-_(l*S)))+_(_(_(K*w)+_(I*D))+_(j*W))),k=_(_(_(_(_(F*v)+_(p*R))+_(G*B))+_(_(_(v*t)-_(R*X))-_(B*S)))+_(_(_(J*w)+_(z*D))+_(O*W))),n=_(_(_(E*g)+_(_(Z*d)+_(V*k)))-cA),n<bA&&(a[i+28>>2]=0,c=a[M+12>>2],b=C[s+52>>2],t=C[s+56>>2],l=C[s+60>>2],C[i+16>>2]=_(_(C[c>>2]*b)+_(C[c+4>>2]*t))+_(C[c+8>>2]*l),C[i+24>>2]=_(_(b*C[c+32>>2])+_(t*C[c+36>>2]))+_(l*C[c+40>>2]),C[i+20>>2]=_(_(b*C[c+16>>2])+_(t*C[c+20>>2]))+_(l*C[c+24>>2]),a[i+12>>2]=0,b=_(d-_(Z*n)),t=_(k-_(V*n)),l=_(g-_(E*n)),C[i+8>>2]=_(_(_(b*q)+_(t*nA))+_(l*tA))+iA,C[i+4>>2]=_(_(_(b*$)+_(t*oA))+_(l*aA))+fA,C[i>>2]=_(_(AA*l)+_(_(rA*b)+_(eA*t)))+x,Qt[a[a[f>>2]+16>>2]](f,i+16|0,i,n)),!(a[h+4>>2]>6|a[a[f+4>>2]+780>>2]>=a[A+24>>2]||(b=C[s+60>>2],_(m(b))>_(.7071067690849304)?(n=C[s+56>>2],t=_(_(1)/_(y(_(_(b*b)+_(n*n))))),n=_(n*t),b=_(-_(b*t)),t=_(0)):(n=C[s+52>>2],t=C[s+56>>2],l=_(_(1)/_(y(_(_(n*n)+_(t*t))))),b=_(n*l),n=_(0),t=_(-_(t*l))),l=_(Qt[a[a[h>>2]+16>>2]](h)),c=0,l=_(_(Q(_(C[744]/l),_(.39269909262657166)))*_(.5)),k=dr(l),u=a[A+20>>2],d=Cr(l),(0|u)<1)))for(U=n,n=_(k/_(y(_(_(_(t*t)+_(b*b))+_(n*n))))),k=_(U*n),B=_(b*n),R=_(t*n);t=C[s+56>>2],l=C[s+60>>2],n=C[s+52>>2],b=_(_(_(_(6.2831854820251465)/_(0|u))*_(0|c))*_(.5)),v=_(dr(b)/_(y(_(_(_(n*n)+_(t*t))+_(l*l))))),n=_(n*v),b=Cr(b),t=_(t*v),l=_(l*v),v=_(_(_(_(d*b)+_(R*n))+_(B*t))+_(k*l)),G=_(_(_(_(R*b)-_(d*n))-_(k*t))+_(B*l)),p=_(_(_(_(B*b)-_(d*t))-_(R*l))+_(k*n)),F=_(_(_(_(k*b)-_(d*l))-_(B*n))+_(R*t)),C[i+28>>2]=_(_(_(b*v)-_(n*G))-_(t*p))-_(l*F),C[i+24>>2]=_(_(t*G)+_(_(l*v)+_(b*F)))-_(n*p),C[i+20>>2]=_(_(n*F)+_(_(b*p)+_(t*v)))-_(l*G),C[i+16>>2]=_(_(l*p)+_(_(n*v)+_(b*G)))-_(t*F),gi(A,i+16|0,e,r,f),c=c+1|0,u=a[A+20>>2],(0|c)<(0|u););!o[A+8|0]|!a[a[A+12>>2]+780>>2]||(A=a[f+4>>2],a[A+780>>2]&&(e=a[A+772>>2],r=a[a[f+8>>2]+8>>2],(0|e)==(0|r)?se(A,e+4|0,a[a[f+12>>2]+8>>2]+4|0):se(A,a[a[f+12>>2]+8>>2]+4|0,r+4|0)))}Y=i+48|0},Re,ui,_i,function(A){A|=0,$(_i(A))},mi,function(A){return A|=0,a[A+16>>2]},function(A,e,r){var i;if(A|=0,e|=0,r|=0,i=8!=(0|e),!(i|8!=(0|r)))return a[A+56>>2];if(!(1!=(0|r)|i))return a[A+72>>2];if(!(1!=(0|e)|8!=(0|r)))return a[A+76>>2];if(!(e|r))return a[A+68>>2];if(!(28!=(0|r)|(0|e)>19))return a[A+84>>2];if(!(28!=(0|e)|(0|r)>19))return a[A+80>>2];A:{if((0|e)<=19){if((0|r)<=19)return a[A+28>>2];if(r+-21>>>0>8)break A;return a[A+32>>2]}if(!((0|r)>19|e+-21>>>0>8))return a[A+36>>2];if(31==(0|e))return 31==(0|r)?a[A+44>>2]:a[A+40>>2]}return 31==(0|r)?a[A+48>>2]:a[A+52>>2]},function(A,e,r){var i;if(A|=0,e|=0,r|=0,i=8!=(0|e),!(i|8!=(0|r)))return a[A+56>>2];if(!(1!=(0|r)|i))return a[A+72>>2];if(!(1!=(0|e)|8!=(0|r)))return a[A+76>>2];if(!(28!=(0|r)|(0|e)>19))return a[A+84>>2];if(!(28!=(0|e)|(0|r)>19))return a[A+80>>2];A:{if((0|e)<=19){if((0|r)<=19)return a[A+28>>2];if(r+-21>>>0>8)break A;return a[A+32>>2]}if(!((0|r)>19|e+-21>>>0>8))return a[A+36>>2];if(31==(0|e))return 31==(0|r)?a[A+44>>2]:a[A+40>>2]}return 31==(0|r)?a[A+48>>2]:a[A+52>>2]},ve,function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,80),ei(A,e,r,i,0),0|A},ve,function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,80),ei(A,e,r,i,1),0|A},ve,function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,84),ri(A,e,r,i,0),0|A},ve,function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,116),bi(A,e,r,i),0|A},ve,function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,84),ri(A,e,r,i,1),0|A},ve,function(A,e,r,i){return A|=0,e|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,8),uA(A,e),a[A>>2]=17112,0|A},ve,function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,16),function(A,e,r,i){vA(A,e),a[A+12>>2]=0,f[A+8|0]=0,a[A>>2]=17172,e=a[A+4>>2],e=0|Qt[a[a[e>>2]+12>>2]](e,a[r+8>>2],a[i+8>>2]),f[A+8|0]=1,a[A+12>>2]=e}(A,e,r,i),0|A},ve,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t=0;return t=a[e>>2],t=0|Qt[a[a[t>>2]+56>>2]](t,20),function(A,e,r,i,t,n){vA(A,r),f[A+16|0]=n,a[A+12>>2]=e,f[A+8|0]=0,a[A>>2]=17308,e||(e=a[A+4>>2],e=0|Qt[a[a[e>>2]+12>>2]](e,a[i+8>>2],a[t+8>>2]),f[A+8|0]=1,a[A+12>>2]=e)}(t,a[e+4>>2],e,r,i,o[A+4|0]),0|t},ve,function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,A=a[e>>2],A=0|Qt[a[a[A>>2]+56>>2]](A,16),function(A,e,r,i){vA(A,e),a[A+12>>2]=0,f[A+8|0]=0,a[A>>2]=17516,e=a[A+4>>2],Qt[a[a[e>>2]+24>>2]](e,a[r+8>>2],a[i+8>>2])&&(e=a[A+4>>2],e=0|Qt[a[a[e>>2]+12>>2]](e,a[r+8>>2],a[i+8>>2]),f[A+8|0]=1,a[A+12>>2]=e)}(A,e,r,i),0|A},ve,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t=0;return t=a[e>>2],t=0|Qt[a[a[t>>2]+56>>2]](t,28),function(A,e,r,i,t,n,o){uA(A,e),a[A+24>>2]=o,a[A+20>>2]=n,f[A+16|0]=t,a[A+12>>2]=0,f[A+8|0]=0,a[A>>2]=17588,e=a[A+4>>2],n=t?i:r,r=t?r:i,Qt[a[a[e>>2]+24>>2]](e,a[n+8>>2],a[r+8>>2])&&(e=a[A+4>>2],e=0|Qt[a[a[e>>2]+12>>2]](e,a[n+8>>2],a[r+8>>2]),f[A+8|0]=1,a[A+12>>2]=e)}(t,e,r,i,o[A+4|0],a[A+8>>2],a[A+12>>2]),0|t},function(A){A|=0;var e=0;return a[A>>2]=18600,e=a[A+60>>2],e&&(o[A- -64|0]&&CA(e),a[A+60>>2]=0),a[A+60>>2]=0,a[A+52>>2]=0,a[A+56>>2]=0,f[A- -64|0]=1,e=a[A+40>>2],e&&(o[A+44|0]&&CA(e),a[A+40>>2]=0),a[A+40>>2]=0,a[A+32>>2]=0,a[A+36>>2]=0,f[A+44|0]=1,e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=0,a[A+8>>2]=0,a[A+12>>2]=0,f[A+20|0]=1,0|A},function(A){A|=0;var e=0;a[A>>2]=18600,e=a[A+60>>2],e&&(o[A- -64|0]&&CA(e),a[A+60>>2]=0),a[A+60>>2]=0,a[A+52>>2]=0,a[A+56>>2]=0,f[A- -64|0]=1,e=a[A+40>>2],e&&(o[A+44|0]&&CA(e),a[A+40>>2]=0),a[A+40>>2]=0,a[A+32>>2]=0,a[A+36>>2]=0,f[A+44|0]=1,e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=0,a[A+8>>2]=0,a[A+12>>2]=0,f[A+20|0]=1,CA(A)},function(A,e,r){A|=0,e|=0,r|=0;var i,t=0;a[696]=a[696]+1,i=a[A+24>>2];A:{e:{if(i){if(Qt[a[a[i>>2]+8>>2]](i,e,r))break e;break A}if(!(a[r+8>>2]&a[e+4>>2])|!(a[e+8>>2]&a[r+4>>2]))break A}t=function(A,e,r){var i,t,n,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0,g=0;b=a[e+12>>2]>a[r+12>>2],i=b?e:r,u=a[i+12>>2],t=b?r:e,l=a[t+12>>2],e=u<<16|l,e=(e<<15^-1)+e|0,e=B(e>>>10^e,9),e^=e>>>6,e=(e<<11^-1)+e|0,n=e>>>16^e,b=a[A+12>>2],k=n&b+-1,e=a[a[A+40>>2]+(k<<2)>>2];e:{if(-1!=(0|e))for(c=a[A+16>>2];;){if(s=e<<4,r=s+c|0,(0|u)==a[a[4+(c+s|0)>>2]+12>>2]&&a[a[r>>2]+12>>2]==(0|l))break e;if(e=a[a[A+60>>2]+(e<<2)>>2],-1==(0|e))break}if(e=b,u=a[A+8>>2],r=u,(0|e)==(0|r)&&(r=b,c=e?e<<1:1,!((0|e)>=(0|c)))){if(c?(l=dA(c<<4),r=a[A+8>>2]):(l=0,r=b),(0|r)>=1)for(e=12;s=e+l|0,v=a[A+16>>2]+e|0,a[s+-12>>2]=a[v+-12>>2],d=v+-8|0,g=a[d+4>>2],C=s+-8|0,a[C>>2]=a[d>>2],a[C+4>>2]=g,a[s>>2]=a[v>>2],e=e+16|0,r=r+-1|0,r;);e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+16>>2]=l,a[A+12>>2]=c,f[A+20|0]=1,r=a[A+8>>2],e=c}a[A+8>>2]=r+1,l=u<<4,c=a[A+16>>2],r=a[A+68>>2],r&&(Qt[a[a[r>>2]+8>>2]](r,t,i),e=a[A+12>>2]),r=c+l|0,(0|b)<(0|e)&&(Qi(A),k=a[A+12>>2]+-1&n),b=a[i+12>>2],l=a[t+12>>2],e=c+(u<<4)|0,a[e+8>>2]=0,a[e+12>>2]=0,c=e,e=(0|l)<(0|b),a[c+4>>2]=e?i:t,b=a[A+60>>2]+(u<<2)|0,A=a[A+40>>2]+(k<<2)|0,a[b>>2]=a[A>>2],a[r>>2]=e?t:i,a[A>>2]=u}return r}(A,e,r)}return 0|t},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,t=0,n=0,o=0,c=0,b=0,l=0;a[695]=a[695]+1,f=a[e+12>>2]>a[r+12>>2],n=f?e:r,t=a[n+12>>2],c=f?r:e,o=a[c+12>>2],e=t<<16|o,e=(e<<15^-1)+e|0,e=B(e>>>10^e,9),e^=e>>>6,e=(e<<11^-1)+e|0,b=a[A+12>>2]+-1&(e>>>16^e),e=a[a[A+40>>2]+(b<<2)>>2];A:if(-1!=(0|e)){for(f=a[A+16>>2];;){if(r=f+(e<<4)|0,(0|t)!=a[a[r+4>>2]+12>>2]||a[a[r>>2]+12>>2]!=(0|o)){if(e=a[a[A+60>>2]+(e<<2)>>2],-1!=(0|e))continue;break A}break}Qt[a[a[A>>2]+32>>2]](A,r,i),l=a[12+(f+(e<<4)|0)>>2],t=a[A+60>>2];e:{if(o=a[A+40>>2]+(b<<2)|0,e=a[o>>2],f=r-a[A+16>>2]>>4,(0|e)!=(0|f)){for(;r=e,e=a[t+(e<<2)>>2],(0|f)!=(0|e););if(e=a[t+(f<<2)>>2],-1!=(0|r)){a[t+(r<<2)>>2]=e;break e}}else e=a[t+(f<<2)>>2];a[o>>2]=e}if(t=a[A+8>>2]+-1|0,e=a[A+68>>2],e&&Qt[a[a[e>>2]+12>>2]](e,c,n,i),(0|t)==(0|f))return a[A+8>>2]=a[A+8>>2]+-1,0|l;i=a[A+60>>2];e:{if(c=a[A+16>>2],n=c+(t<<4)|0,e=a[a[n+4>>2]+12>>2]<<16|a[a[n>>2]+12>>2],e=(e<<15^-1)+e|0,e=B(e>>>10^e,9),e^=e>>>6,e=(e<<11^-1)+e|0,o=a[A+12>>2]+-1&(e>>>16^e),b=a[A+40>>2]+(o<<2)|0,e=a[b>>2],(0|e)!=(0|t)){for(;r=e,e=a[i+(e<<2)>>2],(0|t)!=(0|e););if(e=a[i+(t<<2)>>2],-1!=(0|r)){a[i+(r<<2)>>2]=e;break e}}else e=a[i+(t<<2)>>2];a[b>>2]=e}r=a[n+4>>2],e=c+(f<<4)|0,a[e>>2]=a[n>>2],a[e+4>>2]=r,r=n+8|0,i=a[r+4>>2],e=e+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=i,e=a[A+40>>2]+(o<<2)|0,a[a[A+60>>2]+(f<<2)>>2]=a[e>>2],a[e>>2]=f,a[A+8>>2]=a[A+8>>2]+-1}return 0|l},function(A,e,r){var i;A|=0,e|=0,r|=0,i=Y-16|0,Y=i,a[i+12>>2]=e,a[i+8>>2]=18960,Qt[a[a[A>>2]+48>>2]](A,i+8|0,r),Y=i+16|0},ci,ci,hi,function(A,e,r){A|=0,e|=0,r|=0,r&&(A=a[e+8>>2],A&&(Qt[a[a[A>>2]>>2]](A),Qt[a[a[r>>2]+60>>2]](r,a[e+8>>2]),a[e+8>>2]=0))},function(A){return A|=0,a[A+8>>2]},function(A,e,r){var i;A|=0,e|=0,r|=0,i=Y-16|0,Y=i,a[i+12>>2]=r,a[i+8>>2]=A,a[i+4>>2]=e,a[i>>2]=18816,Qt[a[a[A>>2]+48>>2]](A,i,r),Y=i+16|0},Gi,function(A,e,r){A|=0,e|=0,r|=0;var i,f=0,t=0;if(i=Y-16|0,Y=i,Lr(i+8|0,18668),a[A+8>>2]>=1)for(;t=a[A+16>>2]+(f<<4)|0,Qt[a[a[e>>2]+8>>2]](e,t)?(Qt[a[a[A>>2]+12>>2]](A,a[t>>2],a[t+4>>2],r),a[694]=a[694]+-1):f=f+1|0,(0|f)<a[A+8>>2];);qr(),Y=i+16|0},function(A,e,r){A|=0,e|=0,r|=0;var i,f,t=0,n=0;a[697]=a[697]+1,t=a[e+12>>2]>a[r+12>>2],i=a[(t?e:r)+12>>2],f=a[(t?r:e)+12>>2],e=f|i<<16,e=(e<<15^-1)+e|0,e=B(e>>>10^e,9),e^=e>>>6,e=(e<<11^-1)+e|0,e=a[A+12>>2]+-1&(e>>>16^e);A:{if(!((0|e)>=a[A+32>>2])&&(e=a[a[A+40>>2]+(e<<2)>>2],-1!=(0|e)))for(r=a[A+16>>2];;){if(n=e<<4,t=n+r|0,a[a[4+(r+n|0)>>2]+12>>2]==(0|i)&&(0|f)==a[a[t>>2]+12>>2])break A;if(e=a[a[A+60>>2]+(e<<2)>>2],-1==(0|e))break}t=0}return 0|t},we,function(A,e){A|=0,e|=0,a[A+68>>2]=e},function(A,e){A|=0,e|=0;var r,i=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0;if(r=Y-32|0,Y=r,a[r+20>>2]=0,a[r+12>>2]=0,a[r+16>>2]=0,t=a[A+8>>2],f[r+24|0]=1,!((0|t)<1)){for(t=0;;){if(n=a[A+16>>2]+(b<<4)|0,(0|i)==(0|t))if(c=t?t<<1:1,(0|t)>=(0|c))i=t;else{if(l=c?dA(c<<4):0,(0|t)>=1)for(i=12;u=i+l|0,s=a[r+20>>2]+i|0,a[u+-12>>2]=a[s+-12>>2],k=s+-8|0,d=a[k+4>>2],v=u+-8|0,a[v>>2]=a[k>>2],a[v+4>>2]=d,a[u>>2]=a[s>>2],i=i+16|0,t=t+-1|0,t;);i=a[r+20>>2],i&&(o[r+24|0]&&CA(i),a[r+20>>2]=0),a[r+20>>2]=l,f[r+24|0]=1,a[r+16>>2]=c,i=a[r+12>>2]}if(i=a[r+20>>2]+(i<<4)|0,a[i>>2]=a[n>>2],t=a[n+8>>2],a[i+4>>2]=a[n+4>>2],a[i+8>>2]=t,a[i+12>>2]=a[n+12>>2],c=a[r+12>>2],i=c+1|0,a[r+12>>2]=i,b=b+1|0,!((0|b)<a[A+8>>2]))break;t=a[r+16>>2]}if(!((0|c)<0))for(t=-1,n=a[r+20>>2];Qt[a[a[A>>2]+12>>2]](A,a[n>>2],a[n+4>>2],e),n=n+16|0,t=t+1|0,(0|t)<(0|c););}if(a[A+52>>2]>=1){for(i=a[A+60>>2],n=0;a[i>>2]=-1,i=i+4|0,n=n+1|0,(0|n)<a[A+52>>2];);i=a[r+12>>2]}if((0|i)>=2&&(Ei(r+8|0,r,0,i+-1|0),i=a[r+12>>2]),n=a[r+20>>2],(0|i)>=1)for(e=0,i=4;t=i+n|0,Qt[a[a[A>>2]+8>>2]](A,a[t+-4>>2],a[t>>2]),i=i+16|0,n=a[r+20>>2],e=e+1|0,(0|e)<a[r+12>>2];);n&&(o[r+24|0]&&CA(n),a[r+20>>2]=0),Y=r+32|0},ve,function(A,e){A|=0,e|=0;var r=0;return r=a[A+4>>2],(0|r)!=a[e+4>>2]&&(0|r)!=a[e>>2]||(r=a[A+8>>2],Qt[a[a[r>>2]+32>>2]](r,e,a[A+12>>2])),0},ve,function(A,e){return A|=0,e|=0,A=a[A+4>>2],(0|A)==a[e>>2]|(0|A)==a[e+4>>2]},Fi,function(A){A|=0,$(Fi(A))},function(A,e,r,i,f,t,n,c){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0,n|=0,c|=0;var b=0;return c=Y-48|0,Y=c,i=dA(64),a[i+8>>2]=n,a[i+4>>2]=t,a[i>>2]=f,f=a[e+4>>2],a[i+16>>2]=a[e>>2],a[i+20>>2]=f,f=e+8|0,b=a[f+4>>2],t=i+24|0,a[t>>2]=a[f>>2],a[t+4>>2]=b,t=a[r+4>>2],a[i+32>>2]=a[r>>2],a[i+36>>2]=t,t=r+8|0,b=a[t+4>>2],n=i+40|0,a[n>>2]=a[t>>2],a[n+4>>2]=b,a[i+52>>2]=0,a[i+56>>2]=0,b=a[f+4>>2],n=c+24|0,a[n>>2]=a[f>>2],a[n+4>>2]=b,n=a[t+4>>2],f=c+40|0,a[f>>2]=a[t>>2],a[f+4>>2]=n,f=a[e>>2],e=a[e+4>>2],t=a[r+4>>2],r=a[r>>2],a[i+60>>2]=a[A+104>>2],a[c+32>>2]=r,a[c+36>>2]=t,r=a[A+148>>2]+1|0,a[i+12>>2]=r,a[A+148>>2]=r,a[c+16>>2]=f,a[c+20>>2]=e,r=A+4|0,e=or(r,c+16|0,i),a[i+52>>2]=0,a[i+48>>2]=e,e=84+((a[A+104>>2]<<2)+A|0)|0,a[i+56>>2]=a[e>>2],f=a[e>>2],f&&(a[f+52>>2]=i),a[e>>2]=i,o[A+153|0]||(a[c+8>>2]=i,a[c>>2]=19252,a[c+4>>2]=A,Wi(r,a[A+4>>2],c+16|0,c),A=A+44|0,Wi(A,a[A>>2],c+16|0,c)),Y=c+48|0,0|i},function(A,e,r){A|=0,e|=0,r|=0;var i,t=0;br(2==a[e+60>>2]?A+44|0:A+4|0,a[e+48>>2]),i=a[e+56>>2],t=a[e+52>>2],t=t?t+56|0:84+((a[e+60>>2]<<2)+A|0)|0,a[t>>2]=i,t=a[e+56>>2],t&&(a[t+52>>2]=a[e+52>>2]),t=a[A+96>>2],Qt[a[a[t>>2]+16>>2]](t,e,r),CA(e),f[A+154|0]=1},function(A,e,r,i,t){A|=0,e|=0,r|=0,i|=0,t|=0;var n=0,c=0,b=0,l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=0,Q=0;t=Y-48|0,Y=t,c=r+8|0,b=a[c+4>>2],n=t+24|0,a[n>>2]=a[c>>2],a[n+4>>2]=b,c=i+8|0,b=a[c+4>>2],n=t+40|0,a[n>>2]=a[c>>2],a[n+4>>2]=b,n=a[r+4>>2],a[t+16>>2]=a[r>>2],a[t+20>>2]=n,n=a[i+4>>2],a[t+32>>2]=a[i>>2],a[t+36>>2]=n;A:if(2!=a[e+60>>2])if(c=1,a[A+128>>2]=a[A+128>>2]+1,n=a[e+48>>2],C[n>>2]<=C[t+32>>2]^1|C[n+16>>2]>=C[t+16>>2]^1|C[n+4>>2]<=C[t+36>>2]^1|C[n+20>>2]>=C[t+20>>2]^1||C[n+8>>2]<=C[t+40>>2]^1|C[n+24>>2]>=C[t+24>>2]^1)cr(A+4|0,n,t+16|0),a[A+132>>2]=a[A+132>>2]+1;else{if(u=C[e+20>>2],s=C[e+24>>2],g=C[r>>2],B=C[r+4>>2],m=C[r+8>>2],k=C[e+16>>2],a[t+12>>2]=0,l=C[A+100>>2],v=_(l*_(_(C[e+40>>2]-s)*_(.5))),C[t+8>>2]=v,d=_(l*_(_(C[e+36>>2]-u)*_(.5))),C[t+4>>2]=d,l=_(l*_(_(C[e+32>>2]-k)*_(.5))),C[t>>2]=l,u=_(B-u),_(g-k)<_(0)&&(C[t>>2]=-l),s=_(m-s),u<_(0)&&(C[t+4>>2]=-d),s<_(0)&&(C[t+8>>2]=-v),c=0,!function(A,e,r,i){var f=0,t=0,n=_(0),o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0);c=C[r>>2];e:{if(C[e>>2]<=c){if(n=C[r+4>>2],!(C[e+4>>2]<=n^1|C[e+8>>2]<=C[r+8>>2]^1|C[e+16>>2]>=C[r+16>>2]^1|C[e+20>>2]>=C[r+20>>2]^1)&&(f=0,C[e+24>>2]>=C[r+24>>2]))break e}else n=C[r+4>>2];l=_(n-_(.05000000074505806)),C[r+4>>2]=l,b=_(c-_(.05000000074505806)),C[r>>2]=b,u=_(C[r+8>>2]-_(.05000000074505806)),C[r+8>>2]=u,s=_(C[r+16>>2]+_(.05000000074505806)),C[r+16>>2]=s,f=r+20|0,n=_(C[f>>2]+_(.05000000074505806)),C[f>>2]=n,o=r+24|0,c=_(C[o>>2]+_(.05000000074505806)),C[o>>2]=c,k=C[i>>2],f=k>_(0),C[(f<<4)+r>>2]=(f?s:b)+k,b=C[i+4>>2],f=b>_(0),C[(f?20:4)+r>>2]=(f?n:l)+b,n=C[i+8>>2],i=n>_(0),C[(i?24:8)+r>>2]=(i?c:u)+n,i=nr(A,e);r:if(i)if(t=a[A+8>>2],(0|t)>=0){if(!t)break r;for(;;){if(f=a[i+32>>2],!f)break r;if(i=f,t=t+-1|0,!t)break}}else i=a[A>>2];else i=0;f=a[r+4>>2],a[e>>2]=a[r>>2],a[e+4>>2]=f,f=a[o+4>>2],t=e+24|0,a[t>>2]=a[o>>2],a[t+4>>2]=f,f=r+16|0,o=a[f+4>>2],t=e+16|0,a[t>>2]=a[f>>2],a[t+4>>2]=o,r=r+8|0,f=a[r+4>>2],o=e+8|0,a[o>>2]=a[r>>2],a[o+4>>2]=f,ar(A,i,e),f=1}return f}(A+4|0,n,t+16|0,t))break A;c=1,a[A+132>>2]=a[A+132>>2]+1}else br(A+44|0,a[e+48>>2]),R=e,Q=or(A+4|0,t+16|0,e),a[R+48>>2]=Q,c=1;b=a[e+56>>2],n=a[e+52>>2],n=n?n+56|0:84+((a[e+60>>2]<<2)+A|0)|0,a[n>>2]=b,n=a[e+56>>2],n&&(a[n+52>>2]=a[e+52>>2]),n=a[r+4>>2],a[e+16>>2]=a[r>>2],a[e+20>>2]=n,r=r+8|0,b=a[r+4>>2],n=e+24|0,a[n>>2]=a[r>>2],a[n+4>>2]=b,n=i+8|0,b=a[n+4>>2],r=e+40|0,a[r>>2]=a[n>>2],a[r+4>>2]=b,r=a[i+4>>2],a[e+32>>2]=a[i>>2],a[e+36>>2]=r,a[e+52>>2]=0,i=a[A+104>>2],r=84+((i<<2)+A|0)|0,a[e+56>>2]=a[r>>2],a[e+60>>2]=i,i=a[r>>2],i&&(a[i+52>>2]=e),a[r>>2]=e,c&&(f[A+154|0]=1,o[A+153|0]||(a[t>>2]=19252,a[t+4>>2]=A,r=A+44|0,Di(r,a[r>>2],a[e+48>>2],t),Di(A+4|0,a[A+4>>2],a[e+48>>2],t))),Y=t+48|0},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0;A=a[e+20>>2],a[r>>2]=a[e+16>>2],a[r+4>>2]=A,A=r+8|0,r=e+24|0,f=a[r+4>>2],a[A>>2]=a[r>>2],a[A+4>>2]=f,r=e+40|0,f=a[r+4>>2],A=i+8|0,a[A>>2]=a[r>>2],a[A+4>>2]=f,A=a[e+36>>2],a[i>>2]=a[e+32>>2],a[i+4>>2]=A},function(A,e,r,i,f,t){var n,o,c;A|=0,e|=0,r|=0,i|=0,f|=0,t|=0,r=Y-16|0,Y=r,a[r+8>>2]=19324,a[r+12>>2]=i,n=i+4|0,o=i+20|0,c=a[A+168>>2],wi(A+4|0,a[A+4>>2],e,n,o,C[i+32>>2],f,t,c,r+8|0),A=A+44|0,wi(A,a[A>>2],e,n,o,C[i+32>>2],f,t,c,r+8|0),Y=r+16|0},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=0,n=0;f=Y-48|0,Y=f,a[f+44>>2]=i,a[f+40>>2]=19396,t=e+8|0,n=a[t+4>>2],i=f+16|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=r+8|0,n=a[t+4>>2],i=f+32|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,i=a[e+4>>2],a[f+8>>2]=a[e>>2],a[f+12>>2]=i,e=a[r+4>>2],a[f+24>>2]=a[r>>2],a[f+28>>2]=e,Wi(A+4|0,a[A+4>>2],f+8|0,f+40|0),A=A+44|0,Wi(A,a[A>>2],f+8|0,f+40|0),Y=f+48|0},function(A,e){A|=0,e|=0,function(A,e){var r=0,i=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=_(0);if(n=Y-32|0,Y=n,k=A+4|0,tr(k,1+((0|B(a[A+112>>2],a[A+16>>2]))/100|0)|0),a[A+124>>2]&&(r=1+((0|B(a[A+108>>2],a[A+56>>2]))/100|0)|0,tr(A+44|0,r),r=a[A+124>>2]-r|0,a[A+124>>2]=(0|r)>0?r:0),r=(a[A+104>>2]+1|0)%2|0,a[A+104>>2]=r,i=a[84+((r<<2)+A|0)>>2],i){for(b=A+44|0,v=n+16|0;r=a[i+56>>2],t=a[i+52>>2],t=t?t+56|0:84+((a[i+60>>2]<<2)+A|0)|0,a[t>>2]=r,t=a[i+56>>2],t&&(a[t+52>>2]=a[i+52>>2]),a[i+52>>2]=0,a[i+56>>2]=a[A+92>>2],t=a[A+92>>2],t&&(a[t+52>>2]=i),a[A+92>>2]=i,br(k,a[i+48>>2]),l=i+24|0,t=a[l+4>>2],c=n+8|0,a[c>>2]=a[l>>2],a[c+4>>2]=t,s=a[i+16>>2],u=a[i+20>>2],t=a[i+36>>2],a[v>>2]=a[i+32>>2],a[v+4>>2]=t,l=i+40|0,t=a[l+4>>2],c=v+8|0,a[c>>2]=a[l>>2],a[c+4>>2]=t,a[n>>2]=s,a[n+4>>2]=u,t=or(b,n,i),a[i+60>>2]=2,a[i+48>>2]=t,i=r,r;);f[A+154|0]=1,a[A+124>>2]=a[A+56>>2]}if(a[n>>2]=19252,a[n+4>>2]=A,o[A+153|0]&&(Di(k,a[A+4>>2],a[A+44>>2],n),o[A+153|0]&&(r=a[k>>2],Di(k,r,r,n))),o[A+154|0]&&(r=a[A+96>>2],c=0|Qt[a[a[r>>2]+28>>2]](r),t=a[c+4>>2],!((0|t)<1))){s=A+144|0,i=a[A+120>>2],r=(0|B(a[A+116>>2],t))/100|0,r=(0|i)>(0|r)?i:r,u=(0|t)<(0|r)?t:r;A:{if((0|u)>=1){for(i=0;r=a[c+12>>2]+((a[s>>2]+i|0)%(0|t)<<4)|0,l=a[r>>2],b=a[l+48>>2],t=a[r+4>>2],r=a[t+48>>2],!(C[b>>2]<=C[r+16>>2]^1|C[b+16>>2]>=C[r>>2]^1|C[b+4>>2]<=C[r+20>>2]^1|C[b+20>>2]>=C[r+4>>2]^1)&&C[b+8>>2]<=C[r+24>>2]&&C[b+24>>2]>=C[r+8>>2]||(r=a[A+96>>2],Qt[a[a[r>>2]+12>>2]](r,l,t,e),i=i+-1|0,u=u+-1|0),t=a[c+4>>2],i=i+1|0,(0|i)<(0|u););if(s=A+144|0,i=0,(0|t)<=0)break A}i=(a[s>>2]+u|0)%(0|t)|0}a[s>>2]=i}f[A+154|0]=0,a[A+120>>2]=1,a[A+140>>2]=a[A+140>>2]+1,r=a[A+132>>2],i=A,e=a[A+128>>2],d=_(0),e&&(d=_(_(r>>>0)/_(e>>>0))),C[i+136>>2]=d,a[A+132>>2]=r>>>1,a[A+128>>2]=e>>>1,Y=n+32|0}(A,e),function(A,e){var r=0,i=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0;if(v=Y-16|0,Y=v,r=a[A+96>>2],Qt[a[a[r>>2]+56>>2]](r)){if(r=a[A+96>>2],i=0|Qt[a[a[r>>2]+28>>2]](r),t=a[i+4>>2],(0|t)>=2&&(Ei(i,v+8|0,0,t+-1|0),t=a[i+4>>2]),(0|t)>=1){for(;;){l=a[i+12>>2]+d|0,r=a[l+4>>2],n=u,u=a[l>>2];A:{e:if((0|r)!=(0|b)||(0|n)!=(0|u)){if(c=a[u+48>>2],n=a[r+48>>2],!(C[c>>2]<=C[n+16>>2]^1|C[c+16>>2]>=C[n>>2]^1|C[c+4>>2]<=C[n+20>>2]^1|C[c+20>>2]>=C[n+4>>2]^1)&&C[c+8>>2]<=C[n+24>>2]){if(b=r,!(C[c+24>>2]>=C[n+8>>2]))break e;break A}b=r}r=a[A+96>>2],Qt[a[a[r>>2]+32>>2]](r,l,e),a[l>>2]=0,a[l+4>>2]=0,s=s+1|0,t=a[i+4>>2]}if(d=d+16|0,k=k+1|0,!((0|k)<(0|t)))break}if((0|t)>=2&&(Ei(i,v,0,t+-1|0),t=a[i+4>>2]),A=t-s|0,(0|s)<=-1){if(a[i+8>>2]<(0|A)){if(A?(k=dA(A<<4),e=a[i+4>>2]):(k=0,e=t),(0|e)>=1)for(r=12;b=r+k|0,u=a[i+12>>2]+r|0,a[b+-12>>2]=a[u+-12>>2],n=u+-8|0,l=a[n+4>>2],c=b+-8|0,a[c>>2]=a[n>>2],a[c+4>>2]=l,a[b>>2]=a[u>>2],r=r+16|0,e=e+-1|0,e;);e=a[i+12>>2],e&&(o[i+16|0]&&CA(e),a[i+12>>2]=0),a[i+12>>2]=k,f[i+16|0]=1,a[i+8>>2]=A}for(r=t<<4;e=a[i+12>>2]+r|0,a[e>>2]=0,a[e+4>>2]=0,e=e+8|0,a[e>>2]=0,a[e+4>>2]=0,r=r+16|0,e=s+1|0,b=e>>>0>=s>>>0,s=e,b;);}t=A}a[i+4>>2]=t}Y=v+16|0}(A,e)},ne,ne,function(A,e,r){A|=0,e|=0,r|=0;var i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0);i=a[A+44>>2],A=a[A+4>>2];A:if(A){if(n=C[A>>2],i){if(f=C[A+20>>2],t=C[i+20>>2],o=f>t?f:t,f=C[A+8>>2],t=C[i+8>>2],c=f<t?f:t,f=C[A+4>>2],t=C[i+4>>2],b=f<t?f:t,f=C[A+16>>2],t=C[i+16>>2],l=f>t?f:t,f=C[i>>2],n=n<f?n:f,f=C[A+24>>2],t=C[i+24>>2],!(f>t)){f=t;break A}break A}t=C[A+28>>2],f=C[A+24>>2],o=C[A+20>>2],l=C[A+16>>2],u=C[A+12>>2],c=C[A+8>>2],b=C[A+4>>2]}else i&&(t=C[i+28>>2],f=C[i+24>>2],o=C[i+20>>2],l=C[i+16>>2],u=C[i+12>>2],c=C[i+8>>2],b=C[i+4>>2],n=C[i>>2]);C[e+12>>2]=u,C[e+8>>2]=c,C[e+4>>2]=b,C[e>>2]=n,C[r+12>>2]=t,C[r+8>>2]=f,C[r+4>>2]=o,C[r>>2]=l},function(A,e){A|=0,e|=0,a[A+16>>2]==(0-a[A+56>>2]|0)&&(fr(A+4|0),fr(A+44|0),f[A+153|0]=256,f[A+154|0]=1,a[A+124>>2]=0,a[A+104>>2]=0,a[A+116>>2]=10,a[A+120>>2]=1,a[A+108>>2]=1,a[A+112>>2]=0,e=A+84|0,a[e>>2]=0,a[e+4>>2]=0,a[A+92>>2]=0,a[A+128>>2]=0,a[A+132>>2]=0,e=A+136|0,a[e>>2]=0,a[e+4>>2]=0,A=A+144|0,a[A>>2]=0,a[A+4>>2]=0)},qe,ve,function(A,e,r){A|=0,e|=0,r|=0;var i=0;(0|e)!=(0|r)&&(i=a[a[A+4>>2]+96>>2],Qt[a[a[i>>2]+8>>2]](i,a[e+36>>2],a[r+36>>2]),A=a[A+4>>2],a[A+120>>2]=a[A+120>>2]+1)},function(A,e){A|=0,e|=0,Qt[a[a[A>>2]+8>>2]](A,e,a[a[A+8>>2]+48>>2])},ve,Zi,ve,Zi,function(A){var e;return A|=0,a[A>>2]=20096,e=a[A+556>>2],e&&(o[A+560|0]&&CA(e),a[A+556>>2]=0),a[A+556>>2]=0,a[A+548>>2]=0,a[A+552>>2]=0,f[A+560|0]=1,Ze(A),0|A},function(A){var e;A|=0,a[A>>2]=20096,e=a[A+556>>2],e&&(o[A+560|0]&&CA(e),a[A+556>>2]=0),a[A+556>>2]=0,a[A+548>>2]=0,a[A+552>>2]=0,f[A+560|0]=1,Ze(A),CA(A)},function(A){return 496},function(A,e,r){return A|=0,e|=0,r|=0,Ne(A,e,r),a[e+264>>2]=a[A+324>>2],a[e+268>>2]=a[A+328>>2],a[e+272>>2]=a[A+332>>2],a[e+276>>2]=a[A+336>>2],a[e+280>>2]=a[A+340>>2],a[e+284>>2]=a[A+344>>2],a[e+288>>2]=a[A+348>>2],a[e+292>>2]=a[A+352>>2],a[e+296>>2]=a[A+356>>2],a[e+300>>2]=a[A+360>>2],a[e+304>>2]=a[A+364>>2],a[e+308>>2]=a[A+368>>2],a[e+312>>2]=a[A+372>>2],a[e+316>>2]=a[A+376>>2],a[e+320>>2]=a[A+380>>2],a[e+324>>2]=a[A+384>>2],a[e+328>>2]=a[A+388>>2],a[e+332>>2]=a[A+392>>2],a[e+336>>2]=a[A+396>>2],a[e+340>>2]=a[A+400>>2],a[e+456>>2]=a[A+404>>2],a[e+344>>2]=a[A+604>>2],a[e+348>>2]=a[A+608>>2],a[e+352>>2]=a[A+612>>2],a[e+356>>2]=a[A+616>>2],a[e+360>>2]=a[A+408>>2],a[e+364>>2]=a[A+412>>2],a[e+368>>2]=a[A+416>>2],a[e+372>>2]=a[A+420>>2],a[e+376>>2]=a[A+424>>2],a[e+380>>2]=a[A+428>>2],a[e+384>>2]=a[A+432>>2],a[e+388>>2]=a[A+436>>2],a[e+392>>2]=a[A+440>>2],a[e+396>>2]=a[A+444>>2],a[e+400>>2]=a[A+448>>2],a[e+404>>2]=a[A+452>>2],a[e+408>>2]=a[A+456>>2],a[e+412>>2]=a[A+460>>2],a[e+416>>2]=a[A+464>>2],a[e+420>>2]=a[A+468>>2],a[e+424>>2]=a[A+472>>2],a[e+428>>2]=a[A+476>>2],a[e+432>>2]=a[A+480>>2],a[e+436>>2]=a[A+484>>2],a[e+440>>2]=a[A+488>>2],a[e+444>>2]=a[A+492>>2],a[e+448>>2]=a[A+496>>2],a[e+452>>2]=a[A+500>>2],r=a[A+508>>2],a[e+460>>2]=a[A+504>>2],a[e+464>>2]=r,r=a[A+520>>2],a[e+468>>2]=a[A+516>>2],a[e+472>>2]=r,r=a[A+528>>2],a[e+476>>2]=a[A+524>>2],a[e+480>>2]=r,r=a[A+536>>2],a[e+484>>2]=a[A+532>>2],a[e+488>>2]=r,a[e+492>>2]=o[A+512|0],20124},function(A,e){A|=0,e|=0;var r,i=0,f=0,t=0,n=0,o=0;t=e,n=0|Qt[a[a[A>>2]+16>>2]](A),o=1,f=a[a[e>>2]+16>>2],i=0|Qt[f](0|t,0|n,0|o),o=e,n=i,t=0|Qt[a[a[A>>2]+20>>2]](A,a[i+8>>2],e),r=A,f=a[a[e>>2]+20>>2],Qt[f](0|o,0|n,0|t,1497645650,0|r)},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0);return n=C[r+100>>2],o=C[r+16>>2],c=C[r+20>>2],b=C[r+24>>2],f=C[r+108>>2],i=_(_(_(C[r+112>>2]-_(n*C[r+116>>2]))-_(_(_(_(_(o*C[A+64>>2])+_(c*C[A+68>>2]))+_(b*C[A+72>>2]))+_(_(_(C[r>>2]*C[A+80>>2])+_(C[r+4>>2]*C[A+84>>2]))+_(C[r+8>>2]*C[A+88>>2])))*f))-_(f*_(_(_(_(C[r+48>>2]*C[e+64>>2])+_(C[r+52>>2]*C[e+68>>2]))+_(C[r+56>>2]*C[e+72>>2]))+_(_(_(C[r+32>>2]*C[e+80>>2])+_(C[r+36>>2]*C[e+84>>2]))+_(C[r+40>>2]*C[e+88>>2]))))),f=_(n+i),t=C[r+120>>2],f<t?(i=_(t-n),f=t):(t=C[r+124>>2],f>t&&(i=_(t-n),f=t)),C[r+100>>2]=f,a[A+240>>2]&&(C[A+64>>2]=_(C[A+112>>2]*_(i*_(o*C[A+128>>2])))+C[A+64>>2],C[A+68>>2]=_(_(i*_(c*C[A+132>>2]))*C[A+116>>2])+C[A+68>>2],C[A+72>>2]=_(_(i*_(b*C[A+136>>2]))*C[A+120>>2])+C[A+72>>2],f=C[r+72>>2],t=C[r+68>>2],C[A+80>>2]=_(_(i*C[A+96>>2])*C[r+64>>2])+C[A+80>>2],n=C[A+104>>2],C[A+84>>2]=_(t*_(i*C[A+100>>2]))+C[A+84>>2],C[A+88>>2]=_(f*_(i*n))+C[A+88>>2]),a[e+240>>2]&&(f=C[r+56>>2],t=C[r+52>>2],C[e+64>>2]=_(C[e+112>>2]*_(i*_(C[r+48>>2]*C[e+128>>2])))+C[e+64>>2],C[e+68>>2]=_(_(i*_(t*C[e+132>>2]))*C[e+116>>2])+C[e+68>>2],C[e+72>>2]=_(_(i*_(f*C[e+136>>2]))*C[e+120>>2])+C[e+72>>2],f=C[r+88>>2],t=C[r+84>>2],C[e+80>>2]=_(_(i*C[e+96>>2])*C[r+80>>2])+C[e+80>>2],n=C[e+104>>2],C[e+84>>2]=_(t*_(i*C[e+100>>2]))+C[e+84>>2],C[e+88>>2]=_(f*_(i*n))+C[e+88>>2]),_(i)},function(A,e,r){A|=0,e|=0,r|=0;var i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0);return f=C[r+100>>2],o=C[r+16>>2],c=C[r+20>>2],b=C[r+24>>2],t=C[r+108>>2],t=_(_(_(C[r+112>>2]-_(f*C[r+116>>2]))-_(_(_(_(_(o*C[A+64>>2])+_(c*C[A+68>>2]))+_(b*C[A+72>>2]))+_(_(_(C[r>>2]*C[A+80>>2])+_(C[r+4>>2]*C[A+84>>2]))+_(C[r+8>>2]*C[A+88>>2])))*t))-_(t*_(_(_(_(C[r+48>>2]*C[e+64>>2])+_(C[r+52>>2]*C[e+68>>2]))+_(C[r+56>>2]*C[e+72>>2]))+_(_(_(C[r+32>>2]*C[e+80>>2])+_(C[r+36>>2]*C[e+84>>2]))+_(C[r+40>>2]*C[e+88>>2]))))),l=_(f+t),n=C[r+120>>2],i=l<n,C[r+100>>2]=i?n:l,f=i?_(n-f):t,a[A+240>>2]&&(C[A+64>>2]=_(C[A+112>>2]*_(f*_(o*C[A+128>>2])))+C[A+64>>2],C[A+68>>2]=_(_(f*_(c*C[A+132>>2]))*C[A+116>>2])+C[A+68>>2],C[A+72>>2]=_(_(f*_(b*C[A+136>>2]))*C[A+120>>2])+C[A+72>>2],t=C[r+72>>2],n=C[r+68>>2],C[A+80>>2]=_(_(f*C[A+96>>2])*C[r+64>>2])+C[A+80>>2],o=C[A+104>>2],C[A+84>>2]=_(n*_(f*C[A+100>>2]))+C[A+84>>2],C[A+88>>2]=_(t*_(f*o))+C[A+88>>2]),a[e+240>>2]&&(t=C[r+56>>2],n=C[r+52>>2],C[e+64>>2]=_(C[e+112>>2]*_(f*_(C[r+48>>2]*C[e+128>>2])))+C[e+64>>2],C[e+68>>2]=_(_(f*_(n*C[e+132>>2]))*C[e+116>>2])+C[e+68>>2],C[e+72>>2]=_(_(f*_(t*C[e+136>>2]))*C[e+120>>2])+C[e+72>>2],t=C[r+88>>2],n=C[r+84>>2],C[e+80>>2]=_(_(f*C[e+96>>2])*C[r+80>>2])+C[e+80>>2],o=C[e+104>>2],C[e+84>>2]=_(n*_(f*C[e+100>>2]))+C[e+84>>2],C[e+88>>2]=_(t*_(f*o))+C[e+88>>2]),_(f)},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=0;return f=C[r+128>>2],f!=_(0)&&(a[700]=a[700]+1,i=C[r+96>>2],t=_(f-_(i*C[r+116>>2])),n=C[r+16>>2],o=C[r+20>>2],c=C[r+24>>2],f=C[r+108>>2],f=_(_(t-_(_(_(_(_(n*C[A+144>>2])+_(o*C[A+148>>2]))+_(c*C[A+152>>2]))+_(_(_(C[r>>2]*C[A+160>>2])+_(C[r+4>>2]*C[A+164>>2]))+_(C[r+8>>2]*C[A+168>>2])))*f))-_(f*_(_(_(_(C[r+48>>2]*C[e+144>>2])+_(C[r+52>>2]*C[e+148>>2]))+_(C[r+56>>2]*C[e+152>>2]))+_(_(_(C[r+32>>2]*C[e+160>>2])+_(C[r+36>>2]*C[e+164>>2]))+_(C[r+40>>2]*C[e+168>>2]))))),b=_(i+f),t=C[r+120>>2],l=b<t,C[r+96>>2]=l?t:b,i=l?_(t-i):f,a[A+240>>2]&&(C[A+144>>2]=_(C[A+112>>2]*_(i*_(n*C[A+128>>2])))+C[A+144>>2],C[A+148>>2]=_(_(i*_(o*C[A+132>>2]))*C[A+116>>2])+C[A+148>>2],C[A+152>>2]=_(_(i*_(c*C[A+136>>2]))*C[A+120>>2])+C[A+152>>2],f=C[r+72>>2],t=C[r+68>>2],C[A+160>>2]=_(_(i*C[A+96>>2])*C[r+64>>2])+C[A+160>>2],n=C[A+104>>2],C[A+164>>2]=_(t*_(i*C[A+100>>2]))+C[A+164>>2],C[A+168>>2]=_(f*_(i*n))+C[A+168>>2]),a[e+240>>2]&&(f=C[r+56>>2],t=C[r+52>>2],C[e+144>>2]=_(C[e+112>>2]*_(i*_(C[r+48>>2]*C[e+128>>2])))+C[e+144>>2],C[e+148>>2]=_(_(i*_(t*C[e+132>>2]))*C[e+116>>2])+C[e+148>>2],C[e+152>>2]=_(_(i*_(f*C[e+136>>2]))*C[e+120>>2])+C[e+152>>2],f=C[r+88>>2],t=C[r+84>>2],C[e+160>>2]=_(_(i*C[e+96>>2])*C[r+80>>2])+C[e+160>>2],n=C[e+104>>2],C[e+164>>2]=_(t*_(i*C[e+100>>2]))+C[e+164>>2],C[e+168>>2]=_(f*_(i*n))+C[e+168>>2])),_(i)},qi,function(A){A|=0,CA(qi(A))},De,function(A,e,r,i,f,t,n,o,c,b){return A|=0,e|=0,r|=0,i|=0,f|=0,t|=0,n|=0,o|=0,c|=0,b|=0,b=Y-16|0,Y=b,Lr(b+8|0,20295),_(Qt[a[a[A>>2]+44>>2]](A,e,r,i,f,t,n,o,c)),_(Qt[a[a[A>>2]+48>>2]](A,e,r,i,f,t,n,o,c)),_(Qt[a[a[A>>2]+36>>2]](A,e,r,o)),qr(),Y=b+16|0,_(_(0))},De,function(A){A|=0,a[A+232>>2]=0},We,function(A,e,r,i){if(A|=0,e|=0,r|=0,i|=0,(0|r)>=1)for(;nf(A,a[e>>2],i),e=e+4|0,r=r+-1|0,r;);},function(A,e,r,i,f,t,n,o,c){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0,o|=0;var b=_(0),l=_(0);A:if(!(!a[o+52>>2]|a[o+20>>2]<1))for(e=0;;){if(b=_(0),i=a[A+28>>2],(0|i)>=1)for(r=0;l=b,t=a[A+16>>2],f=a[A+36>>2]+B(a[a[A+116>>2]+r>>2],152)|0,b=_(Qt[a[A+220>>2]](t+B(a[f+144>>2],244)|0,B(a[f+148>>2],244)+t|0,f)),b=_(l+_(b*b)),r=r+4|0,i=i+-1|0,i;);if(b<=C[o+92>>2])break A;if(r=a[o+20>>2],(0|e)>=(r+-1|0))break A;if(e=e+1|0,!((0|e)<(0|r)))break}},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t=0,n=0,c=0,b=_(0),l=_(0),u=0,s=_(0),k=_(0),v=_(0),d=_(0),g=0,R=0;if(t=a[i+72>>2],4&t&&(c=a[A+28>>2],!((0|c)<1)))if(r=a[A+76>>2],e=a[A+36>>2],16&t)for(e=e+140|0;t=a[e+-8>>2],a[t+124>>2]=a[e+-40>>2],n=r+B(a[e>>2],152)|0,a[t+128>>2]=a[n+100>>2],a[t+132>>2]=a[n+252>>2],e=e+152|0,c=c+-1|0,c;);else for(e=e+140|0;t=a[e+-8>>2],a[t+124>>2]=a[e+-40>>2],a[t+128>>2]=a[100+(r+B(a[e>>2],152)|0)>>2],e=e+152|0,c=c+-1|0,c;);if(u=a[A+48>>2],(0|u)>=1)for(t=100;r=a[A+56>>2]+t|0,c=a[r+32>>2],e=a[c+44>>2],e&&(n=a[c+28>>2],s=C[n+416>>2],k=C[r+-76>>2],v=C[n+412>>2],d=C[r+-80>>2],b=C[r>>2],l=_(_(1)/C[i+12>>2]),C[e>>2]=C[e>>2]+_(_(_(C[r+-84>>2]*b)*C[n+408>>2])*l),C[e+4>>2]=_(_(v*_(b*d))*l)+C[e+4>>2],C[e+8>>2]=_(_(s*_(b*k))*l)+C[e+8>>2],g=a[c+32>>2],s=C[g+416>>2],k=C[r+-44>>2],v=C[g+412>>2],d=C[r+-48>>2],b=C[r>>2],l=_(_(1)/C[i+12>>2]),C[e+32>>2]=C[e+32>>2]+_(_(_(C[r+-52>>2]*b)*C[g+408>>2])*l),R=e+36|0,C[R>>2]=_(_(v*_(b*d))*l)+C[R>>2],R=e+40|0,C[R>>2]=_(_(s*_(b*k))*l)+C[R>>2],s=C[n+612>>2],k=C[r+-92>>2],v=C[n+608>>2],d=C[r+-96>>2],b=C[r>>2],l=_(_(1)/C[i+12>>2]),C[e+16>>2]=C[e+16>>2]+_(_(_(C[r+-100>>2]*C[n+604>>2])*b)*l),n=e+20|0,C[n>>2]=_(_(b*_(d*v))*l)+C[n>>2],n=e+24|0,C[n>>2]=_(_(b*_(k*s))*l)+C[n>>2],s=C[g+612>>2],k=C[r+-60>>2],v=C[g+608>>2],d=C[r+-64>>2],b=C[r>>2],l=_(_(1)/C[i+12>>2]),C[e+48>>2]=C[e+48>>2]+_(_(_(C[r+-68>>2]*C[g+604>>2])*b)*l),n=e+52|0,C[n>>2]=_(_(b*_(d*v))*l)+C[n>>2],e=e+56|0,C[e>>2]=_(_(b*_(k*s))*l)+C[e>>2]),b=C[r>>2],C[c+36>>2]=b,_(m(b))>=C[c+16>>2]&&(f[c+20|0]=0),t=t+152|0,u=u+-1|0,u;);if(t=a[A+8>>2],(0|t)>=1)for(n=a[A+16>>2],e=176,g=0;r=e+n|0,c=a[r- -64>>2],c&&(a[i+52>>2]?(af(r+-176|0,C[i+12>>2],C[i+60>>2]),n=a[A+16>>2],r=n+e|0,s=C[r>>2],b=C[r+8>>2],l=C[r+4>>2],c=a[r- -64>>2]):(s=_(C[r+-112>>2]+C[r>>2]),C[r>>2]=s,t=r+4|0,l=_(C[r+-108>>2]+C[t>>2]),C[t>>2]=l,t=r+8|0,b=_(C[r+-104>>2]+C[t>>2]),C[t>>2]=b,t=r+16|0,C[t>>2]=C[r+-96>>2]+C[t>>2],t=r+20|0,C[t>>2]=C[r+-92>>2]+C[t>>2],t=r+24|0,C[t>>2]=C[r+-88>>2]+C[t>>2]),r=e+n|0,k=C[r+32>>2],v=C[r+36>>2],d=C[r+40>>2],a[c+384>>2]=0,C[c+380>>2]=b+d,C[c+376>>2]=l+v,C[c+372>>2]=s+k,a[c+304>>2]=a[c+304>>2]+1,r=a[A+16>>2]+e|0,b=C[r+16>>2],l=C[r+48>>2],s=C[r+20>>2],k=C[r+52>>2],v=C[r+24>>2],d=C[r+56>>2],r=a[r- -64>>2],a[r+400>>2]=0,C[r+396>>2]=v+d,C[r+392>>2]=s+k,C[r+388>>2]=b+l,a[r+304>>2]=a[r+304>>2]+1,a[i+52>>2]&&(c=a[A+16>>2]+e|0,r=a[c- -64>>2],a[r+304>>2]=a[r+304>>2]+1,t=c+-176|0,u=t+8|0,R=a[u+4>>2],n=r+12|0,a[n>>2]=a[u>>2],a[n+4>>2]=R,n=a[t+4>>2],a[r+4>>2]=a[t>>2],a[r+8>>2]=n,t=c+-160|0,u=t+8|0,R=a[u+4>>2],n=r+28|0,a[n>>2]=a[u>>2],a[n+4>>2]=R,u=a[t+4>>2],n=r+20|0,a[n>>2]=a[t>>2],a[n+4>>2]=u,t=c+-144|0,u=a[t+4>>2],n=r+36|0,a[n>>2]=a[t>>2],a[n+4>>2]=u,t=t+8|0,u=a[t+4>>2],n=r+44|0,a[n>>2]=a[t>>2],a[n+4>>2]=u,c=c+-128|0,n=c+8|0,u=a[n+4>>2],t=r+60|0,a[t>>2]=a[n>>2],a[t+4>>2]=u,t=a[c+4>>2],r=r+52|0,a[r>>2]=a[c>>2],a[r+4>>2]=t),n=a[A+16>>2],a[a[(n+e|0)- -64>>2]+212>>2]=-1,t=a[A+8>>2]),e=e+244|0,g=g+1|0,(0|g)<(0|t););return a[A+28>>2]>-1|a[A+32>>2]>-1||(e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+32>>2]=0,a[A+36>>2]=0,f[A+40|0]=1),a[A+28>>2]=0,a[A+48>>2]>-1|a[A+52>>2]>-1||(e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+52>>2]=0,a[A+56>>2]=0,f[A+60|0]=1),a[A+48>>2]=0,a[A+68>>2]>-1|a[A+72>>2]>-1||(e=a[A+76>>2],e&&(o[A+80|0]&&CA(e),a[A+76>>2]=0),a[A+72>>2]=0,a[A+76>>2]=0,f[A+80|0]=1),a[A+68>>2]=0,a[A+88>>2]>-1|a[A+92>>2]>-1||(e=a[A+96>>2],e&&(o[A+100|0]&&CA(e),a[A+96>>2]=0),a[A+92>>2]=0,a[A+96>>2]=0,f[A+100|0]=1),a[A+88>>2]=0,a[A+8>>2]>-1|a[A+12>>2]>-1||(e=a[A+16>>2],e&&(o[A+20|0]&&CA(e),a[A+16>>2]=0),a[A+12>>2]=0,a[A+16>>2]=0,f[A+20|0]=1),a[A+8>>2]=0,_(_(0))},function(A,e,r,i,t,n,c,b,l,u){A|=0,e|=0,r|=0,i|=0,t|=0,n|=0,c|=0,b|=0,l|=0,u|=0;var s=_(0),k=_(0),v=0,d=_(0),g=0,m=0,R=0,Q=0,h=0,G=0;if(1&f[l+72|0]){if(R=a[A+68>>2],g=a[A+28>>2],m=a[A+48>>2],(0|m)>=1){if(r=B(a[A+232>>2],1664525)+1013904223|0,1!=(0|m)&&(u=a[A+136>>2],i=a[u+4>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t^=t>>>2,t=u+((1&(t>>>1^t))<<2)|0,a[u+4>>2]=a[t>>2],a[t>>2]=i,2!=(0|m)&&(i=a[u+8>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t=u+(((t>>>2^t)>>>0)%3<<2)|0,a[u+8>>2]=a[t>>2],a[t>>2]=i,3!=(0|m)&&(i=a[u+12>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t=u+((3&(t>>>2^t))<<2)|0,a[u+12>>2]=a[t>>2],a[t>>2]=i,4!=(0|m)))))for(n=u+16|0,i=4;G=a[n>>2],Q=n,h=u,r=B(r,1664525)+1013904223|0,i=i+1|0,v=r,i>>>0>65536||(t=r>>>16^r,v=t,i>>>0>256||(t^=t>>>8,v=t,i>>>0>16||(v=t>>>4^t))),t=h+((v>>>0)%(i>>>0)<<2)|0,a[Q>>2]=a[t>>2],a[t>>2]=G,n=n+4|0,(0|i)!=(0|m););a[A+232>>2]=r}if(!(a[l+20>>2]<=(0|e))){if((0|g)>=1){if(r=B(a[A+232>>2],1664525)+1013904223|0,1!=(0|g)&&(u=a[A+116>>2],i=a[u+4>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t^=t>>>2,t=u+((1&(t>>>1^t))<<2)|0,a[u+4>>2]=a[t>>2],a[t>>2]=i,2!=(0|g)&&(i=a[u+8>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t=u+(((t>>>2^t)>>>0)%3<<2)|0,a[u+8>>2]=a[t>>2],a[t>>2]=i,3!=(0|g)&&(i=a[u+12>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t=u+((3&(t>>>2^t))<<2)|0,a[u+12>>2]=a[t>>2],a[t>>2]=i,4!=(0|g)))))for(n=u+16|0,i=4;m=a[n>>2],Q=n,h=u,r=B(r,1664525)+1013904223|0,i=i+1|0,v=r,i>>>0>65536||(t=r>>>16^r,v=t,i>>>0>256||(t^=t>>>8,v=t,i>>>0>16||(v=t>>>4^t))),t=h+((v>>>0)%(i>>>0)<<2)|0,a[Q>>2]=a[t>>2],a[t>>2]=m,n=n+4|0,(0|i)!=(0|g););a[A+232>>2]=r}if(!((0|R)<1)){if(r=B(a[A+232>>2],1664525)+1013904223|0,1!=(0|R)&&(u=a[A+156>>2],i=a[u+4>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t^=t>>>2,t=u+((1&(t>>>1^t))<<2)|0,a[u+4>>2]=a[t>>2],a[t>>2]=i,2!=(0|R)&&(i=a[u+8>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t=u+(((t>>>2^t)>>>0)%3<<2)|0,a[u+8>>2]=a[t>>2],a[t>>2]=i,3!=(0|R)&&(i=a[u+12>>2],r=B(r,1664525)+1013904223|0,t=r^r>>>16,t^=t>>>8,t^=t>>>4,t=u+((3&(t>>>2^t))<<2)|0,a[u+12>>2]=a[t>>2],a[t>>2]=i,4!=(0|R)))))for(n=u+16|0,i=4;g=a[n>>2],Q=n,h=u,r=B(r,1664525)+1013904223|0,i=i+1|0,v=r,i>>>0>65536||(t=r>>>16^r,v=t,i>>>0>256||(t^=t>>>8,v=t,i>>>0>16||(v=t>>>4^t))),t=h+((v>>>0)%(i>>>0)<<2)|0,a[Q>>2]=a[t>>2],a[t>>2]=g,n=n+4|0,(0|i)!=(0|R););a[A+232>>2]=r}}}if(t=a[A+48>>2],(0|t)>=1)for(r=0,n=0;i=a[A+56>>2]+B(a[a[A+136>>2]+r>>2],152)|0,a[i+136>>2]>(0|e)&&(k=s,t=a[A+16>>2],s=_(Qt[a[A+212>>2]](t+B(a[i+144>>2],244)|0,t+B(a[i+148>>2],244)|0,i)),s=_(k+_(s*s)),t=a[A+48>>2]),r=r+4|0,n=n+1|0,(0|n)<(0|t););if(!(a[l+20>>2]<=(0|e))){if((0|b)>=1)for(;e=a[c>>2],o[e+20|0]&&(e=ef(A,a[e+28>>2],C[l+12>>2]),r=ef(A,a[a[c>>2]+32>>2],C[l+12>>2]),i=a[c>>2],t=B(e,244),e=a[A+16>>2],Qt[a[a[i>>2]+24>>2]](i,t+e|0,e+B(r,244)|0,C[l+12>>2])),c=c+4|0,b=b+-1|0,b;);r=a[A+28>>2],e=a[l+72>>2];A:if(512&e){if(!((0|r)<1))for(i=(16&e?2:1)<<2,n=0,c=0;k=s,t=a[A+16>>2],e=a[A+36>>2]+B(a[a[A+116>>2]+c>>2],152)|0,s=_(Qt[a[A+216>>2]](t+B(a[e+144>>2],244)|0,t+B(a[e+148>>2],244)|0,e)),s=_(k+_(s*s)),k=C[e+100>>2],t=k>_(0)^1,t||(e=a[A+76>>2]+B(a[a[A+156>>2]+n>>2],152)|0,d=_(k*C[e+104>>2]),C[e+124>>2]=d,C[e+120>>2]=-d,d=s,b=a[A+16>>2],s=_(Qt[a[A+212>>2]](b+B(a[e+144>>2],244)|0,b+B(a[e+148>>2],244)|0,e)),s=_(d+_(s*s))),t|!(16&o[l+72|0])||(e=a[A+76>>2]+B(a[4+(a[A+156>>2]+n|0)>>2],152)|0,k=_(k*C[e+104>>2]),C[e+124>>2]=k,C[e+120>>2]=-k,k=s,t=a[A+16>>2],s=_(Qt[a[A+212>>2]](t+B(a[e+144>>2],244)|0,t+B(a[e+148>>2],244)|0,e)),s=_(k+_(s*s))),n=i+n|0,c=c+4|0,r=r+-1|0,r;);}else{if((0|r)>=1)for(i=0;k=s,t=a[A+16>>2],e=a[A+36>>2]+B(a[a[A+116>>2]+i>>2],152)|0,s=_(Qt[a[A+216>>2]](t+B(a[e+144>>2],244)|0,t+B(a[e+148>>2],244)|0,e)),s=_(k+_(s*s)),i=i+4|0,r=r+-1|0,r;);if(c=a[A+68>>2],(0|c)<1)break A;for(i=0;e=a[A+76>>2]+B(a[a[A+156>>2]+i>>2],152)|0,k=C[100+(a[A+36>>2]+B(a[e+140>>2],152)|0)>>2],k>_(0)&&(k=_(k*C[e+104>>2]),C[e+124>>2]=k,C[e+120>>2]=-k,k=s,r=a[A+16>>2],s=_(Qt[a[A+212>>2]](r+B(a[e+144>>2],244)|0,r+B(a[e+148>>2],244)|0,e)),s=_(k+_(s*s))),i=i+4|0,c=c+-1|0,c;);}if(c=a[A+88>>2],!((0|c)<1))for(i=0;e=a[A+96>>2]+i|0,k=C[100+(a[A+36>>2]+B(a[e+140>>2],152)|0)>>2],k>_(0)&&(d=k,k=C[e+104>>2],d=_(d*k),k=d>k?k:d,C[e+124>>2]=k,C[e+120>>2]=-k,k=s,r=a[A+16>>2],s=_(Qt[a[A+212>>2]](r+B(a[e+144>>2],244)|0,r+B(a[e+148>>2],244)|0,e)),s=_(k+_(s*s))),i=i+152|0,c=c+-1|0,c;);}return _(s)},function(A,e,r,i,t,n,c,b,l){A|=0,e|=0,r|=0,i|=0,t|=0,n|=0,c|=0,b|=0,l|=0;var u=0,s=0,k=0,v=0,d=0,g=0,R=0,Q=0,h=_(0),G=0,y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=0,Z=_(0),V=_(0),N=_(0),I=0,x=_(0),U=_(0),M=_(0),S=_(0),T=_(0),j=0,O=_(0),H=_(0),z=0,P=0,K=_(0),L=0,q=_(0),$=_(0),AA=_(0),eA=_(0),rA=_(0),iA=_(0),fA=_(0),tA=0,nA=0,aA=0,oA=0,cA=0,bA=0,lA=0,uA=0,sA=_(0),kA=_(0),vA=_(0),gA=_(0),BA=_(0),_A=_(0),mA=_(0),RA=_(0),QA=_(0),hA=_(0),GA=_(0),yA=_(0);if(E=Y-256|0,Y=E,a[A+188>>2]=-1,Lr(E+248|0,20232),l=a[b+72>>2],(0|l)!=a[A+224>>2]&&(a[A+224>>2]=l,a[A+220>>2]=536,a[A+216>>2]=535,a[A+212>>2]=534),a[A+184>>2]=0,(0|r)>=1)for(l=e,k=r;a[a[l>>2]+212>>2]=-1,l=l+4|0,k=k+-1|0,k;);if(l=a[A+12>>2],(0|l)<=(0|r)){if(l=r+1|0,k=0,l&&(k=dA(B(l,244))),u=a[A+8>>2],(0|u)>=1)for(s=64;g=a[A+16>>2]+s|0,Q=g+-64|0,G=a[Q+4>>2],d=s+k|0,R=d+-64|0,v=R,a[v>>2]=a[Q>>2],a[v+4>>2]=G,Q=Q+8|0,v=a[Q+4>>2],R=R+8|0,a[R>>2]=a[Q>>2],a[R+4>>2]=v,R=g+-48|0,G=R+8|0,I=a[G+4>>2],Q=d+-48|0,v=Q+8|0,a[v>>2]=a[G>>2],a[v+4>>2]=I,v=a[R+4>>2],a[Q>>2]=a[R>>2],a[Q+4>>2]=v,R=g+-32|0,G=R+8|0,I=a[G+4>>2],Q=d+-32|0,v=Q+8|0,a[v>>2]=a[G>>2],a[v+4>>2]=I,v=a[R+4>>2],a[Q>>2]=a[R>>2],a[Q+4>>2]=v,Q=g+-16|0,G=a[Q+4>>2],R=d+-16|0,v=R,a[v>>2]=a[Q>>2],a[v+4>>2]=G,Q=Q+8|0,v=a[Q+4>>2],R=R+8|0,a[R>>2]=a[Q>>2],a[R+4>>2]=v,J(d,g,180),s=s+244|0,u=u+-1|0,u;);u=a[A+16>>2],u&&(o[A+20|0]&&CA(u),a[A+16>>2]=0),a[A+16>>2]=k,a[A+12>>2]=l,f[A+20|0]=1}if(d=X(E,0,244),k=a[A+8>>2],(0|k)<=-1)for((0|l)<=-1&&(l=a[A+16>>2],l&&(o[A+20|0]&&CA(l),a[A+16>>2]=0),a[A+12>>2]=0,a[A+16>>2]=0,f[A+20|0]=1),s=B(k,244),R=d- -64|0,E=d+48|0,Q=d+32|0,u=d+16|0;l=a[d+4>>2],g=a[A+16>>2]+s|0,a[g>>2]=a[d>>2],a[g+4>>2]=l,v=d+8|0,G=a[v+4>>2],l=g+8|0,a[l>>2]=a[v>>2],a[l+4>>2]=G,l=u,G=a[l+4>>2],v=g+16|0,a[v>>2]=a[l>>2],a[v+4>>2]=G,l=l+8|0,G=a[l+4>>2],v=g+24|0,a[v>>2]=a[l>>2],a[v+4>>2]=G,v=a[Q+4>>2],l=g+32|0,a[l>>2]=a[Q>>2],a[l+4>>2]=v,v=Q+8|0,G=a[v+4>>2],l=g+40|0,a[l>>2]=a[v>>2],a[l+4>>2]=G,v=a[E+4>>2],l=g+48|0,a[l>>2]=a[E>>2],a[l+4>>2]=v,v=E+8|0,G=a[v+4>>2],l=g+56|0,a[l>>2]=a[v>>2],a[l+4>>2]=G,J(g- -64|0,R,180),s=s+244|0,l=k+1|0,g=l>>>0>=k>>>0,k=l,g;);if(a[A+8>>2]=0,(0|r)>=1)for(;k=ef(A,a[e>>2],C[b+12>>2]),l=a[e>>2],!l|!(2&a[l+252>>2])|C[l+404>>2]==_(0)||(u=a[A+16>>2],s=a[l+564>>2],2&s&&(Oi(d,l,C[b+84>>2]),F=C[l+364>>2],W=C[l+332>>2],x=C[l+348>>2],V=C[l+360>>2],Z=C[l+328>>2],N=C[l+344>>2],s=u+B(k,244)|0,h=C[d>>2],y=C[d+4>>2],w=C[d+8>>2],p=C[b+12>>2],C[s+224>>2]=C[s+224>>2]-_(_(_(_(h*C[l+324>>2])+_(y*C[l+340>>2]))+_(w*C[l+356>>2]))*p),g=s+228|0,C[g>>2]=C[g>>2]-_(p*_(_(_(h*Z)+_(y*N))+_(w*V))),s=s+232|0,C[s>>2]=C[s>>2]-_(p*_(_(_(h*W)+_(y*x))+_(w*F))),s=a[l+564>>2]),4&s&&(zi(d,l,C[b+12>>2]),h=C[d+8>>2],y=C[d+4>>2],s=u+B(k,244)|0,C[s+224>>2]=C[d>>2]+C[s+224>>2],g=s+228|0,C[g>>2]=y+C[g>>2],s=s+232|0,C[s>>2]=h+C[s>>2],s=a[l+564>>2]),8&s&&(Hi(d,l,C[b+12>>2]),h=C[d+8>>2],y=C[d+4>>2],l=u+B(k,244)|0,C[l+224>>2]=C[d>>2]+C[l+224>>2],k=l+228|0,C[k>>2]=y+C[k>>2],l=l+232|0,C[l>>2]=h+C[l>>2])),e=e+4|0,r=r+-1|0,r;);if((0|c)>=1)for(l=n,k=c;e=a[l>>2],Qt[a[a[e>>2]+8>>2]](e),a[e+36>>2]=0,l=l+4|0,k=k+-1|0,k;);if(e=a[A+168>>2],!((0|e)>=(0|c)|a[A+172>>2]>=(0|c))){if(c?(k=dA(c<<3),e=a[A+168>>2]):k=0,(0|e)>=1)for(l=0;u=a[A+176>>2]+l|0,s=a[u+4>>2],r=l+k|0,a[r>>2]=a[u>>2],a[r+4>>2]=s,l=l+8|0,e=e+-1|0,e;);e=a[A+176>>2],e&&(o[A+180|0]&&CA(e),a[A+176>>2]=0),a[A+176>>2]=k,a[A+172>>2]=c,f[A+180|0]=1}if(a[A+168>>2]=c,(0|c)<1)s=0;else for(r=0,k=n,u=c,s=0;g=a[A+176>>2],e=a[k>>2],l=a[e+44>>2],l&&(a[l>>2]=0,a[l+4>>2]=0,e=l+56|0,a[e>>2]=0,a[e+4>>2]=0,e=l+48|0,a[e>>2]=0,a[e+4>>2]=0,e=l+40|0,a[e>>2]=0,a[e+4>>2]=0,e=l+32|0,a[e>>2]=0,a[e+4>>2]=0,e=l+24|0,a[e>>2]=0,a[e+4>>2]=0,e=l+16|0,a[e>>2]=0,a[e+4>>2]=0,e=l+8|0,a[e>>2]=0,a[e+4>>2]=0,e=a[k>>2]),l=r+g|0,r=r+8|0,k=k+4|0,o[e+20|0]?(Qt[a[a[e>>2]+16>>2]](e,l),e=a[l>>2]):(a[l>>2]=0,a[l+4>>2]=0,e=0),s=e+s|0,u=u+-1|0,u;);if(e=a[A+48>>2],!((0|e)>=(0|s)|a[A+52>>2]>=(0|s))){if(s?(k=dA(B(s,152)),e=a[A+48>>2]):k=0,(0|e)>=1)for(l=0;J(l+k|0,a[A+56>>2]+l|0,152),l=l+152|0,e=e+-1|0,e;);e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+56>>2]=k,a[A+52>>2]=s,f[A+60|0]=1}if(a[A+48>>2]=s,(0|c)>=1)for(l=a[A+176>>2],E=0,R=0;;){if(tA=R,L=E<<3,Q=L+l|0,a[Q>>2]){if(v=(E<<2)+n|0,g=a[v>>2],k=a[g+32>>2],G=a[A+56>>2],u=a[g+28>>2],s=ef(A,u,C[b+12>>2]),I=ef(A,k,C[b+12>>2]),z=B(R,152),P=a[A+16>>2],e=a[g+24>>2],j=(0|e)>0?e:a[b+20>>2],(0|j)>a[A+184>>2]&&(a[A+184>>2]=j),e=G+z|0,a[Q>>2]>=1)for(r=0,l=e;l=X(l,0,152),R=l+120|0,a[R>>2]=-8388609,a[R+4>>2]=2139095039,a[l+148>>2]=I,a[l+144>>2]=s,R=l+96|0,a[R>>2]=0,a[R+4>>2]=0,a[l+136>>2]=j,l=l+152|0,r=r+1|0,(0|r)<a[Q>>2];);if(r=P+B(s,244)|0,l=r,a[l+144>>2]=0,a[l+148>>2]=0,l=l+152|0,a[l>>2]=0,a[l+4>>2]=0,l=r+160|0,a[l>>2]=0,a[l+4>>2]=0,l=r+168|0,a[l>>2]=0,a[l+4>>2]=0,a[r+64>>2]=0,a[r+68>>2]=0,l=r+88|0,a[l>>2]=0,a[l+4>>2]=0,l=r+80|0,a[l>>2]=0,a[l+4>>2]=0,l=r+72|0,a[l>>2]=0,a[l+4>>2]=0,s=P+B(I,244)|0,l=s,a[l+144>>2]=0,a[l+148>>2]=0,l=l+152|0,a[l>>2]=0,a[l+4>>2]=0,l=s+160|0,a[l>>2]=0,a[l+4>>2]=0,l=s+168|0,a[l>>2]=0,a[l+4>>2]=0,a[s+64>>2]=0,a[s+68>>2]=0,l=s+72|0,a[l>>2]=0,a[l+4>>2]=0,l=s+80|0,a[l>>2]=0,a[l+4>>2]=0,l=s+88|0,a[l>>2]=0,a[l+4>>2]=0,a[e+116>>2]=a[b+40>>2],a[d+28>>2]=e+112,a[d+24>>2]=38,a[d+20>>2]=e+32,a[d+16>>2]=e+48,a[d+12>>2]=e,a[d+8>>2]=e+16,a[d+40>>2]=e+124,a[d+36>>2]=e+120,a[d+32>>2]=e+116,a[d+4>>2]=a[b+32>>2],a[d+48>>2]=a[b+4>>2],C[d>>2]=_(1)/C[b+12>>2],a[d+44>>2]=a[b+20>>2],e=a[v>>2],Qt[a[a[e>>2]+20>>2]](e,d),a[Q>>2]>=1)for(l=132+(G+z|0)|0,G=s+232|0,I=s+228|0,z=s+224|0,P=s+216|0,j=s+212|0,R=s+208|0,s=s+240|0,nA=r+232|0,aA=r+228|0,oA=r+224|0,cA=r+216|0,bA=r+212|0,lA=r+208|0,uA=r+240|0,r=0;e=l+-8|0,h=C[a[v>>2]+16>>2],C[e>>2]>=h&&(C[e>>2]=h),e=l+-12|0,h=_(-h),C[e>>2]<=h&&(C[e>>2]=h),a[l>>2]=g,e=a[g+28>>2],p=C[e+328>>2],F=C[e+332>>2],W=C[e+608>>2],x=C[e+348>>2],V=C[e+340>>2],Z=C[e+344>>2],h=C[e+612>>2],w=C[e+364>>2],y=C[e+356>>2],N=C[e+360>>2],M=C[e+604>>2],D=C[e+324>>2],a[l+-56>>2]=0,U=h,h=C[l+-132>>2],S=_(y*h),y=C[l+-128>>2],T=w,w=C[l+-124>>2],C[l+-60>>2]=U*_(_(S+_(N*y))+_(T*w)),C[l+-64>>2]=W*_(_(_(h*V)+_(y*Z))+_(w*x)),C[l+-68>>2]=M*_(_(_(D*h)+_(p*y))+_(F*w)),e=a[g+32>>2],x=C[e+328>>2],V=C[e+332>>2],Z=C[e+608>>2],N=C[e+348>>2],M=C[e+340>>2],D=C[e+344>>2],p=C[e+612>>2],W=C[e+364>>2],F=C[e+356>>2],O=C[e+360>>2],H=C[e+604>>2],S=C[e+324>>2],a[l+-40>>2]=0,U=p,p=C[l+-100>>2],K=_(F*p),F=C[l+-96>>2],T=W,W=C[l+-92>>2],C[l+-44>>2]=U*_(_(K+_(O*F))+_(T*W)),C[l+-48>>2]=Z*_(_(_(p*M)+_(F*D))+_(W*N)),C[l+-52>>2]=H*_(_(_(S*p)+_(x*F))+_(V*W)),x=_(0),V=C[l+-116>>2],Z=C[u+404>>2],N=C[l+-112>>2],M=C[l+-108>>2],U=_(_(_(_(V*_(V*Z))+_(N*_(Z*N)))+_(M*_(Z*M)))+_(_(_(h*_(_(_(h*C[u+324>>2])+_(y*C[u+328>>2]))+_(w*C[u+332>>2])))+_(y*_(_(_(h*C[u+340>>2])+_(y*C[u+344>>2]))+_(w*C[u+348>>2]))))+_(w*_(_(_(h*C[u+356>>2])+_(y*C[u+360>>2]))+_(w*C[u+364>>2]))))),Z=C[l+-84>>2],D=C[k+404>>2],O=C[l+-80>>2],H=C[l+-76>>2],D=_(_(U+_(_(_(Z*_(Z*D))+_(O*_(D*O)))+_(H*_(D*H))))+_(_(_(p*_(_(_(p*C[k+324>>2])+_(F*C[k+328>>2]))+_(W*C[k+332>>2])))+_(F*_(_(_(p*C[k+340>>2])+_(F*C[k+344>>2]))+_(W*C[k+348>>2]))))+_(W*_(_(_(p*C[k+356>>2])+_(F*C[k+360>>2]))+_(W*C[k+364>>2]))))),D=_(m(D))>_(1.1920928955078125e-7)?_(_(1)/D):_(0),C[l+-24>>2]=D,S=_(0),U=_(0),T=_(0),K=_(0),q=_(0),$=_(0),a[uA>>2]&&($=C[nA>>2],q=C[aA>>2],K=C[oA>>2],U=C[bA>>2],T=C[lA>>2],S=C[cA>>2]),AA=_(0),eA=_(0),rA=_(0),iA=_(0),fA=_(0),a[s>>2]&&(fA=C[G>>2],iA=C[I>>2],rA=C[z>>2],AA=C[j>>2],eA=C[R>>2],x=C[P>>2]),sA=C[u+380>>2],kA=C[u+372>>2],vA=C[u+376>>2],gA=C[u+396>>2],BA=C[u+388>>2],_A=C[u+392>>2],mA=C[k+380>>2],RA=C[k+372>>2],QA=C[k+376>>2],hA=C[k+396>>2],GA=C[k+388>>2],yA=C[k+392>>2],a[l+-32>>2]=0,e=l+-20|0,C[e>>2]=_(D*C[e>>2])+_(D*_(_(0)-_(C[d+48>>2]*_(_(_(_(_(V*_(T+kA))+_(N*_(U+vA)))+_(M*_(S+sA)))+_(_(_(h*_(K+BA))+_(y*_(q+_A)))+_(w*_($+gA))))+_(_(_(_(Z*_(eA+RA))+_(O*_(AA+QA)))+_(H*_(x+mA)))+_(_(_(p*_(rA+GA))+_(F*_(iA+yA)))+_(W*_(fA+hA)))))))),l=l+152|0,r=r+1|0,(0|r)<a[Q>>2];);l=a[A+176>>2]}if(R=tA+a[l+L>>2]|0,E=E+1|0,(0|E)==(0|c))break}if(Qt[a[a[A>>2]+28>>2]](A,i,t,b),n=a[A+68>>2],t=a[A+28>>2],u=a[A+128>>2],c=a[A+48>>2],!((0|u)>=(0|c)|a[A+132>>2]>=(0|c))){c?(r=dA(c<<2),u=a[A+128>>2]):r=0,i=a[A+136>>2];A:{if((0|u)>=1)for(l=r,e=i;a[l>>2]=a[e>>2],l=l+4|0,e=e+4|0,u=u+-1|0,u;);else if(!i)break A;o[A+140|0]&&CA(i),a[A+136>>2]=0}a[A+136>>2]=r,a[A+132>>2]=c,f[A+140|0]=1}if(a[A+128>>2]=c,16&o[b+72|0]){if(u=a[A+108>>2],i=t<<1,!((0|u)>=(0|i)|a[A+112>>2]>=(0|i))){t?(k=dA(t<<3),u=a[A+108>>2]):k=0,r=a[A+116>>2];A:{if((0|u)>=1)for(l=k,e=r;a[l>>2]=a[e>>2],l=l+4|0,e=e+4|0,u=u+-1|0,u;);else if(!r)break A;o[A+120|0]&&CA(r),a[A+116>>2]=0}a[A+116>>2]=k,a[A+112>>2]=i,f[A+120|0]=1}a[A+108>>2]=i}else{if(u=a[A+108>>2],!((0|u)>=(0|t)|a[A+112>>2]>=(0|t))){t?(r=dA(t<<2),u=a[A+108>>2]):r=0,i=a[A+116>>2];A:{if((0|u)>=1)for(l=r,e=i;a[l>>2]=a[e>>2],l=l+4|0,e=e+4|0,u=u+-1|0,u;);else if(!i)break A;o[A+120|0]&&CA(i),a[A+116>>2]=0}a[A+116>>2]=r,a[A+112>>2]=t,f[A+120|0]=1}a[A+108>>2]=t}if(u=a[A+148>>2],!((0|u)>=(0|n)|a[A+152>>2]>=(0|n))){n?(r=dA(n<<2),u=a[A+148>>2]):r=0,i=a[A+156>>2];A:{if((0|u)>=1)for(l=r,e=i;a[l>>2]=a[e>>2],l=l+4|0,e=e+4|0,u=u+-1|0,u;);else if(!i)break A;o[A+160|0]&&CA(i),a[A+156>>2]=0}a[A+156>>2]=r,a[A+152>>2]=n,f[A+160|0]=1}if(a[A+148>>2]=n,(0|c)>=1)for(l=a[A+136>>2],e=0;a[l>>2]=e,l=l+4|0,e=e+1|0,(0|c)!=(0|e););if((0|t)>=1)for(l=a[A+116>>2],e=0;a[l>>2]=e,l=l+4|0,e=e+1|0,(0|t)!=(0|e););if((0|n)>=1)for(l=a[A+156>>2],e=0;a[l>>2]=e,l=l+4|0,e=e+1|0,(0|n)!=(0|e););return qr(),Y=d+256|0,_(_(0))},function(A,e,r,i,f,t,n,o,c){A|=0,e|=0,r|=0,i|=0,f|=0,t|=0,n|=0,o|=0,c|=0;var b,l=0,u=0,s=_(0),k=0;b=Y-16|0,Y=b,Lr(b+8|0,20261),Qt[a[a[A>>2]+32>>2]](A,e,r,i,f,t,n,o,c),l=a[A+184>>2],u=a[o+20>>2],u=(0|l)>(0|u)?l:u;A:if(!((0|u)<1))for(k=u+-1|0,l=0;;){if(s=_(Qt[a[a[A>>2]+40>>2]](A,l,e,r,i,f,t,n,o,c)),C[A+228>>2]=s,(0|l)>=(0|k)|s<=C[o+92>>2])break A;if(l=l+1|0,!((0|l)<(0|u)))break}return qr(),Y=b+16|0,_(_(0))},ve,bf,kA,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0),W=_(0),w=0,D=_(0);f=Y-32|0,Y=f,g=C[e+24>>2],F=C[e+40>>2],B=C[e+36>>2],c=C[e+20>>2],u=C[e+8>>2],m=C[e+16>>2],k=C[e+4>>2],R=C[e+32>>2],v=C[e>>2],a[f+28>>2]=0,n=_(m-v),b=_(B-k),o=_(c-k),s=_(R-v),t=_(_(n*b)-_(o*s)),C[f+24>>2]=t,l=_(g-u),G=_(l*s),s=_(F-u),n=_(G-_(n*s)),C[f+20>>2]=n,b=_(_(o*s)-_(l*b)),C[f+16>>2]=b,d=C[A+4>>2],l=C[A+8>>2],Q=C[A+12>>2],o=_(_(u*t)+_(_(v*b)+_(k*n))),s=_(_(_(_(b*d)+_(n*l))+_(t*Q))-o),p=C[A+20>>2],h=C[A+24>>2],W=C[A+28>>2],o=_(_(_(_(b*p)+_(n*h))+_(t*W))-o),_(s*o)>=_(0)||(e=a[A+36>>2],1&e&&s<=_(0)||(o=_(s/_(s-o)),o<C[A+40>>2]&&(G=l,l=_(_(1)-o),h=_(_(h*o)+_(G*l)),c=_(c-h),d=_(_(p*o)+_(d*l)),v=_(v-d),k=_(k-h),m=_(m-d),l=_(_(W*o)+_(Q*l)),g=_(g-l),u=_(u-l),p=_(_(t*t)+_(_(b*b)+_(n*n))),Q=_(p*_(-9999999747378752e-20)),_(_(t*_(_(c*v)-_(k*m)))+_(_(b*_(_(k*g)-_(u*c)))+_(n*_(_(u*m)-_(g*v)))))>=Q&&(B=_(B-h),R=_(R-d),d=_(t*_(_(B*m)-_(c*R))),G=c,c=_(F-l),_(d+_(_(b*_(_(G*c)-_(g*B)))+_(n*_(_(g*R)-_(c*m)))))>=Q^1|_(_(t*_(_(k*R)-_(B*v)))+_(_(b*_(_(B*u)-_(c*k)))+_(n*_(_(c*v)-_(u*R)))))>=Q^1||(c=t,t=_(_(1)/_(y(p))),u=_(c*t),C[f+24>>2]=u,n=_(n*t),C[f+20>>2]=n,t=_(b*t),C[f+16>>2]=t,2&e|s<=_(0)^1?(w=A,D=_(Qt[a[a[A>>2]+12>>2]](A,f+16|0,o,r,i)),C[w+40>>2]=D):(a[f+12>>2]=0,C[f+8>>2]=-u,C[f+4>>2]=-n,C[f>>2]=-t,w=A,D=_(Qt[a[a[A>>2]+12>>2]](A,f,o,r,i)),C[w+40>>2]=D)))))),Y=f+32|0},kA,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t,n,o=0,c=0,b=0,l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0);t=Y-688|0,Y=t,n=zA(t+576|0),o=e+8|0,c=a[o+4>>2],b=t+644|0,a[b>>2]=a[o>>2],a[b+4>>2]=c,o=a[e+20>>2],c=t+652|0,a[c>>2]=a[e+16>>2],a[c+4>>2]=o,o=e+24|0,c=a[o+4>>2],b=t+660|0,a[b>>2]=a[o>>2],a[b+4>>2]=c,o=a[e+36>>2],c=t+668|0,a[c>>2]=a[e+32>>2],a[c+4>>2]=o,o=e+40|0,c=a[o+4>>2],b=t+676|0,a[b>>2]=a[o>>2],a[b+4>>2]=c,a[t+580>>2]=1,a[t+576>>2]=16352,o=a[e+4>>2],a[t+636>>2]=a[e>>2],a[t+640>>2]=o,a[t+624>>2]=a[A+204>>2],f[t+548|0]=0,a[t+524>>2]=953267991,a[t+208>>2]=14800,e=of(t+184|0,a[A+4>>2],t+576|0,t+216|0,t+208|0),a[t+8>>2]=15992,a[t+172>>2]=1065353216,a[t+176>>2]=0,a[t+180>>2]=a[A+208>>2],o=e,e=A+136|0,bf(o,A+8|0,A+72|0,e,e,t+8|0)&&(u=C[t+140>>2],s=C[t+144>>2],l=C[t+148>>2],k=_(_(_(u*u)+_(s*s))+_(l*l)),k>_(9999999747378752e-20)&&(v=C[t+172>>2],v<C[A+200>>2]&&(d=l,l=_(_(1)/_(y(k))),C[t+148>>2]=d*l,C[t+144>>2]=s*l,C[t+140>>2]=u*l,_(Qt[a[a[A>>2]+12>>2]](A,t+140|0,t+156|0,v,r,i))))),Ae(n),Y=t+688|0},sf,function(A){A|=0;var e=0,r=0,i=0,f=0,t=0,n=0;if(a[A>>2]=20592,e=a[A+16>>2],r=a[A+8>>2],(0|r)>=1)for(;t=a[e+f>>2],i=a[t+188>>2],i&&(e=a[A+68>>2],e=0|Qt[a[a[e>>2]+36>>2]](e),Qt[a[a[e>>2]+40>>2]](e,i,a[A+24>>2]),e=a[A+68>>2],Qt[a[a[e>>2]+12>>2]](e,i,a[A+24>>2]),a[t+188>>2]=0,r=a[A+8>>2],e=a[A+16>>2]),f=f+4|0,n=n+1|0,(0|n)<(0|r););!e|!o[A+20|0]||CA(e),$(A)},function(A){A|=0;var e,r=0,i=0,f=0,t=0,n=0;if(e=Y-16|0,Y=e,Lr(e+8|0,20835),r=a[A+8>>2],(0|r)>=1)for(;;){f=a[a[A+16>>2]+i>>2];A:{e:if(!(o[A+76|0]||(t=a[f+220>>2]+-2|0,t>>>0>3)))switch(t-1|0){case 0:case 1:break e;default:break A}vf(A,f),r=a[A+8>>2]}if(i=i+4|0,n=n+1|0,!((0|n)<(0|r)))break}qr(),Y=e+16|0},function(A){var e,r;A|=0,e=Y-16|0,Y=e,Lr(e+8|0,20847),r=a[A+68>>2],Qt[a[a[r>>2]+32>>2]](r,a[A+24>>2]),qr(),Y=e+16|0},function(A,e){A|=0,e|=0,a[A+72>>2]=e},Ce,mf,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t=0,n=0,o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=0,k=_(0),v=_(0),d=_(0),g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=0,E=_(0),Z=_(0),V=_(0),N=0,I=0,J=0,x=0,U=0,M=0,S=0,X=_(0);f=Y-144|0,Y=f,Qt[a[a[A>>2]+20>>2]](A)&&(n=0|Qt[a[a[A>>2]+20>>2]](A),32768&Qt[a[a[n>>2]+56>>2]](n)&&(n=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[n>>2]+64>>2]](n,e,_(.10000000149011612))));A:{e:if(n=a[r+4>>2],!(n>>>0>31)){switch(n-1|0){case 30:if(t=a[r+20>>2],(0|t)<1)break A;for(o=B(t,80)+-80|0;n=a[r+28>>2]+o|0,s=a[n- -64>>2],c=C[n+56>>2],b=C[n+48>>2],l=C[n+52>>2],k=C[n+32>>2],g=C[n>>2],m=C[n+16>>2],R=C[n+36>>2],h=C[n+4>>2],y=C[n+20>>2],u=C[n+40>>2],v=C[n+8>>2],d=C[n+24>>2],a[f+60>>2]=0,a[f+44>>2]=0,a[f+28>>2]=0,a[f+12>>2]=0,p=C[e+32>>2],Q=C[e+36>>2],G=C[e+40>>2],C[f+40>>2]=_(_(v*p)+_(d*Q))+_(u*G),C[f+36>>2]=_(_(h*p)+_(y*Q))+_(R*G),C[f+32>>2]=_(_(g*p)+_(m*Q))+_(k*G),F=C[e+16>>2],W=C[e+20>>2],w=C[e+24>>2],C[f+24>>2]=_(_(v*F)+_(d*W))+_(u*w),C[f+20>>2]=_(_(h*F)+_(y*W))+_(R*w),C[f+16>>2]=_(_(g*F)+_(m*W))+_(k*w),E=v,v=C[e>>2],Z=d,d=C[e+4>>2],V=u,u=C[e+8>>2],C[f+8>>2]=_(_(E*v)+_(Z*d))+_(V*u),C[f+4>>2]=_(_(h*v)+_(y*d))+_(R*u),C[f>>2]=_(_(g*v)+_(m*d))+_(k*u),C[f+56>>2]=_(_(_(b*p)+_(l*Q))+_(c*G))+C[e+56>>2],C[f+52>>2]=_(_(_(b*F)+_(l*W))+_(c*w))+C[e+52>>2],C[f+48>>2]=_(_(_(b*v)+_(l*d))+_(c*u))+C[e+48>>2],Qt[a[a[A>>2]+28>>2]](A,f,s,i),o=o+-80|0,t=t+-1|0,(0|t)>0;);break A;default:n=r+40|0,o=a[n+4>>2],t=f+8|0,a[t>>2]=a[n>>2],a[t+4>>2]=o,n=a[r+36>>2],a[f>>2]=a[r+32>>2],a[f+4>>2]=n,c=_(Qt[a[a[r>>2]+48>>2]](r)),b=_(Qt[a[a[r>>2]+48>>2]](r)),l=_(_(Qt[a[a[r>>2]+48>>2]](r))+C[t>>2]),C[t>>2]=l,c=_(c+C[f>>2]),C[f>>2]=c,b=_(b+C[f+4>>2]),C[f+4>>2]=b,A=0|Qt[a[a[A>>2]+20>>2]](A),a[f+140>>2]=0,C[f+136>>2]=-l,C[f+132>>2]=-b,C[f+128>>2]=-c,Qt[a[a[A>>2]+80>>2]](A,f+128|0,f,e,i);break A;case 7:c=_(Qt[a[a[r>>2]+48>>2]](r)),A=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[A>>2]+24>>2]](A,c,e,i);break A;case 8:if(s=a[r+96>>2],(0|s)<1)break A;for(t=(s<<2)-4|0,o=(s<<4)-8|0;n=a[r+104>>2]+o|0,c=C[n>>2],b=C[n+-8>>2],l=C[n+-4>>2],n=0|Qt[a[a[A>>2]+20>>2]](A),p=C[a[r+124>>2]+t>>2],a[f+60>>2]=0,a[f+44>>2]=0,a[f+28>>2]=0,a[f+12>>2]=0,k=C[e+40>>2],g=C[e+32>>2],R=_(g*_(0)),m=C[e+36>>2],h=_(m*_(0)),C[f+40>>2]=k+_(R+h),u=_(R+m),R=_(k*_(0)),C[f+36>>2]=u+R,C[f+32>>2]=_(g+h)+R,R=C[e+24>>2],h=C[e+16>>2],u=_(h*_(0)),y=C[e+20>>2],v=_(y*_(0)),C[f+24>>2]=R+_(u+v),d=_(u+y),u=_(R*_(0)),C[f+20>>2]=d+u,C[f+16>>2]=_(h+v)+u,u=C[e+8>>2],v=C[e>>2],Q=_(v*_(0)),d=C[e+4>>2],G=_(d*_(0)),C[f+8>>2]=u+_(Q+G),E=_(Q+d),Q=_(u*_(0)),C[f+4>>2]=E+Q,C[f>>2]=_(v+G)+Q,C[f+56>>2]=_(_(_(b*g)+_(l*m))+_(c*k))+C[e+56>>2],C[f+52>>2]=_(_(_(b*h)+_(l*y))+_(c*R))+C[e+52>>2],C[f+48>>2]=_(_(_(b*v)+_(l*d))+_(c*u))+C[e+48>>2],Qt[a[a[n>>2]+24>>2]](n,p,f,i),t=t+-4|0,o=o+-16|0,s=s+-1|0,(0|s)>0;);break A;case 9:t=r+32|0,r=a[r+56>>2],c=C[t+(r<<2)>>2],b=C[t+((r+2|0)%3<<2)>>2],A=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[A>>2]+84>>2]](A,b,c,r,e,i);break A;case 10:t=a[r+72>>2],c=C[r+60>>2],b=C[r+64>>2],A=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[A>>2]+92>>2]](A,c,b,t,e,i);break A;case 12:t=a[r+56>>2],c=_(Qt[a[a[r>>2]+92>>2]](r)),o=r+40|0,s=a[o+4>>2],n=f+8|0,a[n>>2]=a[o>>2],a[n+4>>2]=s,o=a[r+36>>2],a[f>>2]=a[r+32>>2],a[f+4>>2]=o,b=_(Qt[a[a[r>>2]+48>>2]](r)),l=_(Qt[a[a[r>>2]+48>>2]](r)),S=n,X=_(_(Qt[a[a[r>>2]+48>>2]](r))+C[n>>2]),C[S>>2]=X,C[f>>2]=b+C[f>>2],C[f+4>>2]=l+C[f+4>>2],b=C[(t<<2)+f>>2],A=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[A>>2]+88>>2]](A,c,b,t,e,i);break A;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 11:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 28:case 29:break e;case 27:}c=C[r+68>>2],A=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[A>>2]+96>>2]](A,r+52|0,c,e,i);break A}e:if(!((0|n)>6))if(D=a[r+56>>2],D){if(a[D+28>>2]<1)break e;for(;;){l=_(0);r:if(J=B(I,36),t=J+a[D+36>>2]|0,N=a[t+4>>2],N){if(c=_(0),b=_(0),!((0|N)<1))for(o=a[t+12>>2],t=a[(o+(N<<2)|0)-4>>2],s=1,x=0;;){if(n=a[o+x>>2],U=n<<4,o=U+a[D+16>>2]|0,R=C[o>>2],h=C[o+4>>2],y=C[o+8>>2],o=0|Qt[a[a[A>>2]+20>>2]](A),a[f+12>>2]=0,M=a[D+16>>2],t=M+(t<<4)|0,k=C[t>>2],u=C[e+32>>2],g=C[t+4>>2],v=C[e+36>>2],m=C[t+8>>2],d=C[e+40>>2],p=C[e+56>>2],C[f+8>>2]=_(_(_(k*u)+_(g*v))+_(m*d))+p,Q=C[e+16>>2],G=C[e+20>>2],F=C[e+24>>2],W=C[e+52>>2],C[f+4>>2]=_(_(_(k*Q)+_(g*G))+_(m*F))+W,w=C[e>>2],E=C[e+4>>2],Z=C[e+8>>2],V=C[e+48>>2],C[f>>2]=_(_(_(k*w)+_(g*E))+_(m*Z))+V,a[f+140>>2]=0,t=U+M|0,k=C[t>>2],g=C[t+4>>2],m=C[t+8>>2],C[f+136>>2]=p+_(_(_(u*k)+_(v*g))+_(d*m)),C[f+132>>2]=W+_(_(_(Q*k)+_(G*g))+_(F*m)),C[f+128>>2]=V+_(_(_(w*k)+_(E*g))+_(Z*m)),Qt[a[a[o>>2]+16>>2]](o,f,f+128|0,i),b=_(b+y),c=_(c+h),l=_(l+R),t=a[D+36>>2]+J|0,(0|s)>=a[t+4>>2])break r;x=x+4|0,s=s+1|0,o=a[t+12>>2],t=n}}else c=_(0),b=_(0);if(t=0|Qt[a[a[A>>2]+20>>2]](A),16384&Qt[a[a[t>>2]+56>>2]](t)&&(a[f+8>>2]=0,a[f+12>>2]=0,a[f>>2]=1065353216,a[f+4>>2]=1065353216,t=a[D+36>>2]+J|0,g=C[t+28>>2],m=C[t+20>>2],R=C[t+24>>2],t=0|Qt[a[a[A>>2]+20>>2]](A),a[f+140>>2]=0,k=_(_(1)/_(0|N)),l=_(k*l),h=C[e+32>>2],c=_(k*c),y=C[e+36>>2],b=_(k*b),k=C[e+40>>2],u=C[e+56>>2],C[f+136>>2]=_(_(_(l*h)+_(c*y))+_(b*k))+u,v=C[e+16>>2],d=C[e+20>>2],p=C[e+24>>2],Q=C[e+52>>2],C[f+132>>2]=_(_(_(l*v)+_(c*d))+_(b*p))+Q,G=C[e>>2],F=C[e+4>>2],W=C[e+8>>2],w=C[e+48>>2],C[f+128>>2]=_(_(_(l*G)+_(c*F))+_(b*W))+w,a[f+124>>2]=0,l=_(l+m),c=_(c+R),b=_(b+g),C[f+120>>2]=u+_(_(_(h*l)+_(y*c))+_(k*b)),C[f+116>>2]=Q+_(_(_(l*v)+_(c*d))+_(b*p)),C[f+112>>2]=w+_(_(_(l*G)+_(c*F))+_(b*W)),Qt[a[a[t>>2]+16>>2]](t,f+128|0,f+112|0,f)),I=I+1|0,!((0|I)<a[D+28>>2]))break}}else if(!((0|Qt[a[a[r>>2]+100>>2]](r))<1))for(;Qt[a[a[r>>2]+104>>2]](r,t,f,f+128|0),a[f+124>>2]=0,c=C[f>>2],k=C[e+32>>2],b=C[f+4>>2],g=C[e+36>>2],l=C[f+8>>2],m=C[e+40>>2],R=C[e+56>>2],C[f+120>>2]=_(_(_(c*k)+_(b*g))+_(l*m))+R,h=C[e+16>>2],y=C[e+20>>2],u=C[e+24>>2],v=C[e+52>>2],C[f+116>>2]=_(_(_(c*h)+_(b*y))+_(l*u))+v,d=C[e>>2],p=C[e+4>>2],Q=C[e+8>>2],G=C[e+48>>2],C[f+112>>2]=_(_(_(c*d)+_(b*p))+_(l*Q))+G,a[f+108>>2]=0,c=C[f+128>>2],b=C[f+132>>2],l=C[f+136>>2],C[f+104>>2]=R+_(_(_(k*c)+_(g*b))+_(m*l)),C[f+100>>2]=v+_(_(_(h*c)+_(y*b))+_(u*l)),C[f+96>>2]=G+_(_(_(d*c)+_(p*b))+_(Q*l)),n=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[n>>2]+16>>2]](n,f+112|0,f+96|0,i),t=t+1|0,(0|t)<(0|Qt[a[a[r>>2]+100>>2]](r)););t=a[r+4>>2],t+-21>>>0<=8&&(a[f+136>>2]=1566444395,a[f+140>>2]=0,a[f+128>>2]=1566444395,a[f+132>>2]=1566444395,a[f+120>>2]=-581039253,a[f+124>>2]=0,a[f+112>>2]=-581039253,a[f+116>>2]=-581039253,t=0|Qt[a[a[A>>2]+20>>2]](A),n=i+8|0,o=a[n+4>>2],s=f+20|0,a[s>>2]=a[n>>2],a[s+4>>2]=o,n=e+8|0,o=a[n+4>>2],s=f+36|0,a[s>>2]=a[n>>2],a[s+4>>2]=o,n=a[e+20>>2],o=f+44|0,a[o>>2]=a[e+16>>2],a[o+4>>2]=n,n=e+24|0,o=a[n+4>>2],s=f+52|0,a[s>>2]=a[n>>2],a[s+4>>2]=o,n=a[e+36>>2],o=f+60|0,a[o>>2]=a[e+32>>2],a[o+4>>2]=n,n=e+40|0,o=a[n+4>>2],s=f+68|0,a[s>>2]=a[n>>2],a[s+4>>2]=o,a[f+8>>2]=t,a[f+4>>2]=22836,a[f>>2]=22812,t=a[i+4>>2],a[f+12>>2]=a[i>>2],a[f+16>>2]=t,t=a[e+4>>2],a[f+28>>2]=a[e>>2],a[f+32>>2]=t,t=e+56|0,n=a[t+4>>2],o=f+84|0,a[o>>2]=a[t>>2],a[o+4>>2]=n,t=a[e+52>>2],n=f+76|0,a[n>>2]=a[e+48>>2],a[n+4>>2]=t,Qt[a[a[r>>2]+64>>2]](r,f,f+112|0,f+128|0),t=a[r+4>>2]),3==(0|t)&&(a[f+136>>2]=1566444395,a[f+140>>2]=0,a[f+128>>2]=1566444395,a[f+132>>2]=1566444395,a[f+120>>2]=-581039253,a[f+124>>2]=0,a[f+112>>2]=-581039253,a[f+116>>2]=-581039253,A=0|Qt[a[a[A>>2]+20>>2]](A),t=i+8|0,n=a[t+4>>2],o=f+20|0,a[o>>2]=a[t>>2],a[o+4>>2]=n,t=e+8|0,n=a[t+4>>2],o=f+36|0,a[o>>2]=a[t>>2],a[o+4>>2]=n,t=a[e+20>>2],n=f+44|0,a[n>>2]=a[e+16>>2],a[n+4>>2]=t,t=e+24|0,n=a[t+4>>2],o=f+52|0,a[o>>2]=a[t>>2],a[o+4>>2]=n,t=a[e+36>>2],n=f+60|0,a[n>>2]=a[e+32>>2],a[n+4>>2]=t,t=e+40|0,n=a[t+4>>2],o=f+68|0,a[o>>2]=a[t>>2],a[o+4>>2]=n,a[f+8>>2]=A,a[f+4>>2]=22836,a[f>>2]=22812,A=a[i+4>>2],a[f+12>>2]=a[i>>2],a[f+16>>2]=A,A=a[e+4>>2],a[f+28>>2]=a[e>>2],a[f+32>>2]=A,A=e+56|0,i=a[A+4>>2],t=f+84|0,a[t>>2]=a[A>>2],a[t+4>>2]=i,A=a[e+52>>2],i=f+76|0,a[i>>2]=a[e+48>>2],a[i+4>>2]=A,A=a[r+96>>2],Qt[a[a[A>>2]+8>>2]](A,4|f,f+112|0,f+128|0))}Y=f+144|0},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t,n,o,c,b,l,u=0,s=0,k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0);f=Y-256|0,Y=f,u=f+104|0,a[u>>2]=0,a[u+4>>2]=0,u=f+112|0,a[u>>2]=0,a[u+4>>2]=0,u=f+124|0,a[u>>2]=0,a[u+4>>2]=0,a[f+120>>2]=1065353216,u=f+132|0,a[u>>2]=0,a[u+4>>2]=0,u=f+140|0,a[u>>2]=1065353216,a[u+4>>2]=0,n=e+8|0,u=n,o=a[u+4>>2],c=f+76|0,s=c,b=a[u>>2],a[s>>2]=b,a[s+4>>2]=o,u=r+8|0,s=a[u+4>>2],t=f+92|0,a[t>>2]=a[u>>2],a[t+4>>2]=s,a[f+32>>2]=22628,a[f+248>>2]=i,a[f+100>>2]=1065353216,l=a[e+4>>2],s=a[e>>2],a[f+68>>2]=s,a[f+72>>2]=l,i=a[r+4>>2],a[f+84>>2]=a[r>>2],a[f+88>>2]=i,a[f+244>>2]=A,i=f+156|0,a[i>>2]=b,a[i+4>>2]=o,i=f+148|0,a[i>>2]=s,a[i+4>>2]=l,i=f+168|0,a[i>>2]=0,a[i+4>>2]=0,i=f+176|0,a[i>>2]=0,a[i+4>>2]=0,i=f+188|0,a[i>>2]=0,a[i+4>>2]=0,a[f+184>>2]=1065353216,i=f+196|0,a[i>>2]=0,a[i+4>>2]=0,i=f+204|0,a[i>>2]=1065353216,a[i+4>>2]=0,i=a[r+4>>2],s=f+212|0,a[s>>2]=a[r>>2],a[s+4>>2]=i,i=a[u+4>>2],s=f+220|0,a[s>>2]=a[u>>2],a[s+4>>2]=i,a[f+164>>2]=1065353216,d=_(C[r>>2]-C[e>>2]),v=_(C[r+4>>2]-C[e+4>>2]),k=_(C[u>>2]-C[n>>2]),g=_(_(1)/_(y(_(_(_(d*d)+_(v*v))+_(k*k))))),B=_(k*g),m=B==_(0)?_(0xde0b6b000000000):_(_(1)/B),C[f+44>>2]=m,v=_(v*g),k=v==_(0)?_(0xde0b6b000000000):_(_(1)/v),C[f+40>>2]=k,a[f+60>>2]=m<_(0),a[f+56>>2]=k<_(0),k=_(d*g),C[f+64>>2]=_(_(k*_(C[f+84>>2]-C[f+68>>2]))+_(v*_(C[f+88>>2]-C[f+72>>2])))+_(B*_(C[t>>2]-C[c>>2])),k=k==_(0)?_(0xde0b6b000000000):_(_(1)/k),C[f+36>>2]=k,a[f+52>>2]=k<_(0),i=a[A+68>>2],A=f+24|0,a[A>>2]=0,a[A+4>>2]=0,a[f+16>>2]=0,a[f+20>>2]=0,A=f+8|0,a[A>>2]=0,a[A+4>>2]=0,a[f>>2]=0,a[f+4>>2]=0,Qt[a[a[i>>2]+24>>2]](i,e,r,f+32|0,f+16|0,f),Y=f+256|0},kf,df,function(A){A|=0;var e,r,i=0,f=0,t=0,n=0,o=0,c=0;e=Y-16|0,Y=e,Lr(e+8|0,20873),Qt[a[a[A>>2]+8>>2]](A),Qt[a[a[A>>2]+12>>2]](A),r=a[A+24>>2],Lr(e,20907),r&&(i=a[A+68>>2],t=r,n=0|Qt[a[a[i>>2]+36>>2]](i),o=A+28|0,c=a[A+24>>2],f=a[a[r>>2]+32>>2],Qt[f](0|t,0|n,0|o,0|c)),qr(),qr(),Y=e+16|0},function(A,e){A|=0,e|=0,Qt[a[a[e>>2]+32>>2]](e),Rf(A,e),Qt[a[a[e>>2]+36>>2]](e)},ve,hf,ve,hf,ve,function(A,e){A|=0,e|=0;var r,i,f,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0),w=_(0),D=_(0),E=_(0);r=Y-128|0,Y=r,i=a[e+36>>2],e=a[a[A+8>>2]+28>>2]+B(i,80)|0,f=a[e+64>>2],v=C[e+32>>2],d=C[e>>2],g=C[e+16>>2],m=C[e+56>>2],R=C[e+52>>2],Q=C[e+48>>2],h=C[e+36>>2],G=C[e+20>>2],y=C[e+4>>2],p=C[e+40>>2],F=C[e+24>>2],W=C[e+8>>2],e=a[A+12>>2],w=C[e+52>>2],D=C[e+56>>2],t=C[e+24>>2],n=C[e+20>>2],o=C[e+40>>2],c=C[e+36>>2],E=C[e+48>>2],b=C[e+8>>2],l=C[e>>2],u=C[e+4>>2],s=C[e+16>>2],k=C[e+32>>2],a[r+124>>2]=0,a[r+108>>2]=0,a[r+92>>2]=0,C[r+104>>2]=_(_(W*k)+_(F*c))+_(p*o),C[r+100>>2]=_(_(y*k)+_(G*c))+_(h*o),C[r+88>>2]=_(_(W*s)+_(F*n))+_(p*t),C[r+84>>2]=_(_(y*s)+_(G*n))+_(h*t),C[r+120>>2]=D+_(_(_(k*Q)+_(c*R))+_(o*m)),C[r+116>>2]=w+_(_(_(s*Q)+_(n*R))+_(t*m)),a[r+76>>2]=0,C[r+72>>2]=_(_(l*W)+_(u*F))+_(b*p),C[r+68>>2]=_(_(l*y)+_(u*G))+_(b*h),C[r+64>>2]=_(_(d*l)+_(g*u))+_(v*b),C[r+112>>2]=E+_(_(_(l*Q)+_(u*R))+_(b*m)),C[r+96>>2]=_(_(d*k)+_(g*c))+_(v*o),C[r+80>>2]=_(_(d*s)+_(g*n))+_(v*t),a[r+60>>2]=i,a[r+56>>2]=-1,a[r+44>>2]=f,a[r+40>>2]=0,a[r+48>>2]=a[A+4>>2],a[r+52>>2]=r- -64,a[r+12>>2]=1065353216,a[r+24>>2]=-1,a[r+28>>2]=0,a[r+16>>2]=0,a[r+20>>2]=1,a[r+36>>2]=i,a[r+8>>2]=21552,e=a[A+24>>2],a[r+32>>2]=e,a[r+12>>2]=a[e+4>>2],a[r+28>>2]=a[e+20>>2],Cf(a[A+16>>2],a[A+20>>2],r+40|0,r+8|0),Y=r+128|0},sA,ve,function(A,e){return A|=0,e|=0,A=a[A+24>>2],0|Qt[a[a[A>>2]+8>>2]](A,e)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,t=_(0);return i=Y-16|0,Y=i,a[i+8>>2]=-1,a[i+12>>2]=a[A+28>>2],a[e+4>>2]||(a[e+4>>2]=i+8),f=a[A+24>>2],t=_(Qt[a[a[f>>2]+12>>2]](f,e,r)),a[A+4>>2]=a[a[A+24>>2]+4>>2],Y=i+16|0,_(t)},ve,Gf,ve,Gf,ve,function(A,e){A|=0,e|=0;var r,i,f,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=_(0);r=Y-112|0,Y=r,i=a[e+36>>2],e=a[a[A+24>>2]+28>>2]+B(i,80)|0,f=a[e+64>>2],v=C[e+32>>2],d=C[e>>2],g=C[e+16>>2],m=C[e+56>>2],R=C[e+52>>2],Q=C[e+48>>2],h=C[e+36>>2],G=C[e+20>>2],y=C[e+4>>2],t=C[e+40>>2],n=C[e+24>>2],o=C[e+8>>2],a[r+108>>2]=0,a[r+92>>2]=0,a[r+76>>2]=0,e=a[A+28>>2],c=C[e+32>>2],b=C[e+36>>2],l=C[e+40>>2],C[r+88>>2]=_(_(o*c)+_(n*b))+_(t*l),C[r+84>>2]=_(_(y*c)+_(G*b))+_(h*l),u=C[e+16>>2],s=C[e+20>>2],k=C[e+24>>2],C[r+72>>2]=_(_(o*u)+_(n*s))+_(t*k),C[r+68>>2]=_(_(y*u)+_(G*s))+_(h*k),C[r+104>>2]=_(_(_(Q*c)+_(R*b))+_(m*l))+C[e+56>>2],C[r+100>>2]=_(_(_(Q*u)+_(R*s))+_(m*k))+C[e+52>>2],a[r+60>>2]=0,p=o,o=C[e>>2],F=n,n=C[e+4>>2],W=t,t=C[e+8>>2],C[r+56>>2]=_(_(p*o)+_(F*n))+_(W*t),C[r+52>>2]=_(_(y*o)+_(G*n))+_(h*t),C[r+48>>2]=_(_(d*o)+_(g*n))+_(v*t),C[r+96>>2]=_(_(_(Q*o)+_(R*n))+_(m*t))+C[e+48>>2],C[r+80>>2]=_(_(d*c)+_(g*b))+_(v*l),C[r+64>>2]=_(_(d*u)+_(g*s))+_(v*k),a[r+28>>2]=1065353216,a[r+32>>2]=1,a[r+36>>2]=-1,a[r+44>>2]=i,a[r+24>>2]=22368,e=a[A+32>>2],a[r+40>>2]=e,a[r+28>>2]=a[e+4>>2],a[r+20>>2]=i,a[r+16>>2]=-1,a[r+4>>2]=f,e=a[A+4>>2],a[r>>2]=e,a[r+8>>2]=a[e+8>>2],a[r+12>>2]=r+48,Bf(a[A+8>>2],a[A+12>>2],a[A+16>>2],r,r+24|0,C[A+20>>2]),Y=r+112|0},sA,ve,function(A,e){return A|=0,e|=0,A=a[A+16>>2],0|Qt[a[a[A>>2]+8>>2]](A,e)},function(A,e,r){A|=0,e|=0,r|=0;var i,f,t=_(0);return i=Y-16|0,Y=i,a[i+8>>2]=-1,a[i+12>>2]=a[A+20>>2],a[e+4>>2]||(a[e+4>>2]=i+8),f=a[A+16>>2],t=_(Qt[a[a[f>>2]+12>>2]](f,e,r)),a[A+4>>2]=a[a[A+16>>2]+4>>2],Y=i+16|0,_(t)},sA,ve,function(A,e){A|=0,e|=0;var r,i=0,f=0,t=0;return r=Y-32|0,Y=r,i=a[A+216>>2],C[i+4>>2]!=_(0)&&(f=1,e=a[e>>2],Qt[a[a[i>>2]+8>>2]](i,a[e+188>>2])&&(i=a[A+216>>2],t=a[e+192>>2],a[r+24>>2]=-1,a[r+28>>2]=-1,a[r+20>>2]=e+4,a[r+16>>2]=e,a[r+12>>2]=t,a[r+8>>2]=0,Cf(A+68|0,A+132|0,r+8|0,i))),Y=r+32|0,0|f},ve,function(A,e){A|=0,e|=0;var r,i=0,f=0,t=_(0),n=0,o=0;return r=Y-32|0,Y=r,i=a[A+184>>2],C[i+4>>2]!=_(0)&&(f=1,e=a[e>>2],Qt[a[a[i>>2]+8>>2]](i,a[e+188>>2])&&(t=C[A+188>>2],i=a[A+184>>2],n=a[A+192>>2],o=a[e+192>>2],a[r+24>>2]=-1,a[r+28>>2]=-1,a[r+20>>2]=e+4,a[r+16>>2]=e,a[r+12>>2]=o,a[r+8>>2]=0,Bf(n,A+36|0,A+100|0,r+8|0,i,t))),Y=r+32|0,0|f},sA,ve,function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0);r=Y-96|0,Y=r,a[r+92>>2]=0,f=C[e>>2],b=C[A+60>>2],n=C[e+4>>2],d=C[A- -64>>2],o=C[e+8>>2],g=C[A+68>>2],B=C[A+84>>2],s=_(_(_(_(f*b)+_(n*d))+_(o*g))+B),C[r+88>>2]=s,c=C[A+44>>2],m=C[A+48>>2],R=C[A+52>>2],Q=C[A+80>>2],t=_(_(_(_(f*c)+_(n*m))+_(o*R))+Q),C[r+84>>2]=t,l=f,f=C[A+28>>2],u=n,n=C[A+32>>2],h=o,o=C[A+36>>2],k=C[A+76>>2],F=_(_(_(_(l*f)+_(u*n))+_(h*o))+k),C[r+80>>2]=F,a[r+76>>2]=0,a[r+60>>2]=0,v=C[e+16>>2],l=C[e+20>>2],u=C[e+24>>2],G=_(k+_(_(_(f*v)+_(n*l))+_(o*u))),C[r+64>>2]=G,p=_(Q+_(_(_(c*v)+_(m*l))+_(R*u))),C[r+68>>2]=p,v=_(B+_(_(_(b*v)+_(d*l))+_(g*u))),C[r+72>>2]=v,l=f,f=C[e+32>>2],u=n,n=C[e+36>>2],h=o,o=C[e+40>>2],k=_(k+_(_(_(l*f)+_(u*n))+_(h*o))),C[r+48>>2]=k,c=_(Q+_(_(_(c*f)+_(m*n))+_(R*o))),C[r+52>>2]=c,f=_(B+_(_(_(b*f)+_(d*n))+_(g*o))),C[r+56>>2]=f,a[r+44>>2]=0,n=_(_(_(s+v)+f)*_(.3333333432674408)),C[r+40>>2]=n,d=_(_(_(t+p)+c)*_(.3333333432674408)),C[r+36>>2]=d,o=_(_(_(F+G)+k)*_(.3333333432674408)),C[r+32>>2]=o,e=a[A+8>>2],16384&Qt[a[a[e>>2]+56>>2]](e)&&(b=C[r+80>>2],a[r+24>>2]=0,a[r+28>>2]=0,a[r+16>>2]=1065353216,a[r+20>>2]=1065353216,e=a[A+8>>2],a[r+12>>2]=0,g=_(G-b),B=_(c-t),c=_(p-t),b=_(k-b),t=_(_(g*B)-_(c*b)),l=t,u=_(t*t),t=_(f-s),f=_(v-s),s=_(_(c*t)-_(f*B)),t=_(_(f*b)-_(g*t)),f=_(_(1)/_(y(_(u+_(_(s*s)+_(t*t)))))),C[r+8>>2]=_(l*f)+n,C[r+4>>2]=d+_(t*f),C[r>>2]=o+_(s*f),Qt[a[a[e>>2]+16>>2]](e,r+32|0,r,r+16|0)),i=a[A+8>>2],e=A+12|0,Qt[a[a[i>>2]+16>>2]](i,r+80|0,r- -64|0,e),i=a[A+8>>2],Qt[a[a[i>>2]+16>>2]](i,r- -64|0,r+48|0,e),A=a[A+8>>2],Qt[a[a[A>>2]+16>>2]](A,r+48|0,r+80|0,e),Y=r+96|0},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,Qt[a[a[A>>2]+8>>2]](A,e,r,i)},function(A){return A|=0,A+-4|0},function(A){A|=0,$(A+-4|0)},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,A=A+-4|0,Qt[a[a[A>>2]+8>>2]](A,e,r,i)},function(A){A|=0;var e=0;return a[A>>2]=22908,e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+56>>2]=0,a[A+48>>2]=0,a[A+52>>2]=0,f[A+60|0]=1,e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+36>>2]=0,a[A+28>>2]=0,a[A+32>>2]=0,f[A+40|0]=1,yf(A+4|0),0|A},function(A){A|=0;var e=0;a[A>>2]=22908,e=a[A+56>>2],e&&(o[A+60|0]&&CA(e),a[A+56>>2]=0),a[A+56>>2]=0,a[A+48>>2]=0,a[A+52>>2]=0,f[A+60|0]=1,e=a[A+36>>2],e&&(o[A+40|0]&&CA(e),a[A+36>>2]=0),a[A+36>>2]=0,a[A+28>>2]=0,a[A+32>>2]=0,f[A+40|0]=1,yf(A+4|0),$(A)},function(A,e,r){A|=0,e|=0,r|=0;var i,t=0,n=0,c=0;if(i=a[e+8>>2],(0|i)<1)r=0;else for(n=a[e+16>>2],r=0;t=a[n>>2],3&o[t+204|0]||(a[t+208>>2]=r,r=r+1|0),a[t+268>>2]=1065353216,a[t+212>>2]=-1,n=n+4|0,c=c+1|0,(0|c)<(0|i););!function(A,e){var r=0,i=0,t=0,n=0,c=0,b=0,l=0;if(t=a[A+4>>2],(0|t)<(0|e)){if(a[A+8>>2]<(0|e)){if(e?(n=dA(e<<3),r=a[A+4>>2]):r=t,(0|r)>=1)for(;c=a[A+12>>2]+i|0,l=a[c+4>>2],b=i+n|0,a[b>>2]=a[c>>2],a[b+4>>2]=l,i=i+8|0,r=r+-1|0,r;);r=a[A+12>>2],r&&(o[A+16|0]&&CA(r),a[A+12>>2]=0),a[A+12>>2]=n,f[A+16|0]=1,a[A+8>>2]=e}for(i=t<<3,r=e-t|0;t=a[A+12>>2]+i|0,a[t>>2]=0,a[t+4>>2]=0,i=i+8|0,r=r+-1|0,r;);}if(a[A+4>>2]=e,(0|e)>=1)for(i=a[A+12>>2],r=0;a[i>>2]=r,a[i+4>>2]=1,i=i+8|0,r=r+1|0,(0|r)!=(0|e););}(A+4|0,r),function(A,e){var r,i=0,f=0,t=0,n=0,c=0,b=0;if(e=a[e+68>>2],e=0|Qt[a[a[e>>2]+36>>2]](e),r=0|Qt[a[a[e>>2]+36>>2]](e),r&&(b=0|Qt[a[a[e>>2]+20>>2]](e),!((0|r)<1)))for(;;){if(e=(c<<4)+b|0,i=a[a[e>>2]>>2],i&&(e=a[a[e+4>>2]>>2],!(!e|7&a[i+204>>2]|7&o[e+204|0]))){if(e=a[e+208>>2],t=a[A+16>>2],n=a[i+208>>2],f=t+(n<<3)|0,i=a[f>>2],(0|i)!=(0|n))for(;i=t+(i<<3)|0,a[f>>2]=a[i>>2],n=a[i>>2],f=t+(n<<3)|0,i=a[f>>2],(0|i)!=(0|n););if(f=t+(e<<3)|0,i=a[f>>2],(0|e)!=(0|i))for(;e=t+(i<<3)|0,a[f>>2]=a[e>>2],e=a[e>>2],f=t+(e<<3)|0,i=a[f>>2],(0|e)!=(0|i););(0|e)!=(0|n)&&(i=t+(n<<3)|0,a[i>>2]=e,e=t+(e<<3)|0,a[e+4>>2]=a[e+4>>2]+a[i+4>>2])}if(c=c+1|0,(0|c)==(0|r))break}}(A,e)},function(A,e){A|=0,e|=0;var r,i=0,f=0,t=0,n=0,c=0,b=0,l=0,u=0;if(r=a[e+8>>2],(0|r)>=1)for(u=a[e+16>>2];;){if(i=a[(f<<2)+u>>2],3&o[i+204|0])a[i+208>>2]=-1,a[i+212>>2]=-2;else{if(e=b,l=e<<3,t=a[A+16>>2],n=l+t|0,c=a[n>>2],(0|e)!=(0|c))for(;e=t+(c<<3)|0,a[n>>2]=a[e>>2],e=a[e>>2],n=t+(e<<3)|0,c=a[n>>2],(0|e)!=(0|c););a[i+208>>2]=e,a[i+212>>2]=-1,a[4+(t+l|0)>>2]=f,b=b+1|0}if(f=f+1|0,!((0|f)<(0|r)))break}},Ef,kA,qe,function(A,e,r,i,f){f=_(f)},Kr,ye,Df,If,function(A){A|=0,CA(If(A))},function(A){A|=0;var e,r=0,i=0,f=0,t=0,n=0,o=0;if(e=Y-16|0,Y=e,Lr(e+8|0,23348),mf(A),Qt[a[a[A>>2]+20>>2]](A)&&(r=0|Qt[a[a[A>>2]+20>>2]](A),6144&Qt[a[a[r>>2]+56>>2]](r)&&(r=0|Qt[a[a[A>>2]+104>>2]](A),!((0|r)<1))))for(;r=r+-1|0,n=A,o=0|Qt[a[a[A>>2]+108>>2]](A,r),t=a[a[A>>2]+172>>2],Qt[t](0|n,0|o),(0|r)>0;);if(Qt[a[a[A>>2]+20>>2]](A)&&(r=0|Qt[a[a[A>>2]+20>>2]](A),16387&Qt[a[a[r>>2]+56>>2]](r)&&Qt[a[a[A>>2]+20>>2]](A)&&(r=0|Qt[a[a[A>>2]+20>>2]](A),!(!Qt[a[a[r>>2]+56>>2]](r)|a[A+296>>2]<1))))for(r=0;i=a[a[A+304>>2]+r>>2],Qt[a[a[i>>2]+12>>2]](i,a[A+72>>2]),r=r+4|0,f=f+1|0,(0|f)<a[A+296>>2];);Qt[a[a[A>>2]+20>>2]](A)&&(A=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[A>>2]+104>>2]](A)),qr(),Y=e+16|0},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,kf(A,e,r,i)},function(A,e){A|=0,e|=0,!e|!(2&a[e+252>>2])?df(A,e):Qt[a[a[A>>2]+92>>2]](A,e)},function(A,e){A|=0,e|=0;var r,i,f=0,t=0;Qt[a[a[e>>2]+32>>2]](e),i=0|Qt[a[a[e>>2]+16>>2]](e,104,1),r=X(a[i+8>>2],0,104),a[r+88>>2]=a[A+264>>2],a[r+92>>2]=a[A+268>>2],a[r+96>>2]=a[A+272>>2],a[r+100>>2]=a[A+276>>2],f=A+124|0,t=a[f+4>>2],a[r+28>>2]=a[f>>2],a[r+32>>2]=t,f=A+104|0,t=a[f+4>>2],a[r+12>>2]=a[f>>2],a[r+16>>2]=t,f=A+116|0,t=a[f+4>>2],a[r+20>>2]=a[f>>2],a[r+24>>2]=t,f=A+96|0,t=a[f+4>>2],a[r+4>>2]=a[f>>2],a[r+8>>2]=t,a[r>>2]=a[A+92>>2],a[r+36>>2]=a[A+132>>2],a[r+40>>2]=a[A+148>>2],a[r+44>>2]=a[A+152>>2],a[r+48>>2]=a[A+156>>2],a[r+52>>2]=a[A+160>>2],a[r+56>>2]=a[A+176>>2],a[r+60>>2]=a[A+180>>2],a[r+64>>2]=a[A+112>>2],a[r+68>>2]=a[A+164>>2],a[r+72>>2]=a[A+168>>2],a[r+76>>2]=a[A+172>>2],f=a[A+144>>2],a[r+84>>2]=0,a[r+80>>2]=f,Qt[a[a[e>>2]+20>>2]](e,i,23665,1145853764,r),Rf(A,e),function(A,e){var r=0,i=0,f=0,t=0,n=0,c=0,b=0,l=0,u=0,s=0;if(i=a[A+8>>2],(0|i)>=1)for(;r=a[a[A+16>>2]+f>>2],2&o[r+252|0]&&(c=e,b=0|Qt[a[a[r>>2]+16>>2]](r),l=1,n=a[a[e>>2]+16>>2],i=0|Qt[n](0|c,0|b,0|l),l=e,b=i,c=0|Qt[a[a[r>>2]+20>>2]](r,a[i+8>>2],e),u=1497645650,s=r,n=a[a[e>>2]+20>>2],Qt[n](0|l,0|b,0|c,0|u,0|s),i=a[A+8>>2]),f=f+4|0,t=t+1|0,(0|t)<(0|i););if(a[A+228>>2]>=1)for(f=0,t=0;r=a[a[A+236>>2]+f>>2],s=e,u=0|Qt[a[a[r>>2]+36>>2]](r),c=1,n=a[a[e>>2]+16>>2],i=0|Qt[n](0|s,0|u,0|c),c=e,u=i,s=0|Qt[a[a[r>>2]+40>>2]](r,a[i+8>>2],e),b=1397641027,l=r,n=a[a[e>>2]+20>>2],Qt[n](0|c,0|u,0|s,0|b,0|l),f=f+4|0,t=t+1|0,(0|t)<a[A+228>>2];);}(A,e),Qt[a[a[e>>2]+36>>2]](e)},function(A,e,r,i){A|=0,e=_(e),r|=0,i=_(i);var t=0,n=0,c=_(0),b=0,l=0;A:if(r){if(C[A+284>>2]=i,e=_(C[A+280>>2]+e),C[A+280>>2]=e,!(e>=i))break A;t=A,c=e,e=_(e/i),n=_(m(e))<_(2147483648)?~~e:-2147483648,C[t+280>>2]=c-_(_(0|n)*i)}else a[A+284>>2]=0,C[A+280>>2]=o[A+316|0]?_(0):e,i=e,n=_(m(e))<_(1.1920928955078125e-7)^1,r=n;Qt[a[a[A>>2]+20>>2]](A)&&(t=0|Qt[a[a[A>>2]+20>>2]](A),b=2792,l=Qt[a[a[t>>2]+56>>2]](t)>>>4&1,f[0|b]=l);A:if(n){if(t=(0|n)>(0|r)?r:n,Qt[a[a[A>>2]+168>>2]](A,_(i*_(0|t))),Qt[a[a[A>>2]+176>>2]](A),(0|t)<1)break A;for(r=0;Qt[a[a[A>>2]+160>>2]](A,i),Qt[a[a[A>>2]+80>>2]](A),r=r+1|0,(0|r)<(0|t););}else Qt[a[a[A>>2]+80>>2]](A);return Qt[a[a[A>>2]+120>>2]](A),0|n},function(A,e,r){A|=0,e|=0,r|=0;var i=0,t=0,n=0,c=0,b=0;if(i=a[A+228>>2],(0|i)==a[A+232>>2]&&(n=i?i<<1:1,!((0|i)>=(0|n)))){if(n&&(b=dA(n<<2),i=a[A+228>>2]),(0|i)>=1)for(t=i;a[c+b>>2]=a[a[A+236>>2]+c>>2],c=c+4|0,t=t+-1|0,t;);t=a[A+236>>2],t&&(o[A+240|0]&&(CA(t),i=a[A+228>>2]),a[A+236>>2]=0),a[A+236>>2]=b,a[A+232>>2]=n,f[A+240|0]=1}a[A+228>>2]=i+1,a[a[A+236>>2]+(i<<2)>>2]=e,r&&(Pi(a[e+28>>2],e),Pi(a[e+32>>2],e))},function(A,e){A|=0,e|=0;var r=0,i=0,f=0,t=0;r=a[A+228>>2];A:if(!((0|r)<1)){for(t=a[A+236>>2],i=t;;){if((0|e)!=a[i>>2]){if(i=i+4|0,f=f+1|0,(0|r)!=(0|f))continue;break A}break}(0|r)<=(0|f)||(f=i,i=r+-1|0,r=i<<2,a[f>>2]=a[r+t>>2],a[A+228>>2]=i,a[r+a[A+236>>2]>>2]=e)}Ki(a[e+28>>2],e),Ki(a[e+32>>2],e)},function(A,e){A|=0,e|=0;var r=0,i=0,t=0,n=0,c=0;if(r=a[A+296>>2],(0|r)==a[A+300>>2]&&(t=r?r<<1:1,!((0|r)>=(0|t)))){if(t&&(c=dA(t<<2),r=a[A+296>>2]),(0|r)>=1)for(i=r;a[n+c>>2]=a[a[A+304>>2]+n>>2],n=n+4|0,i=i+-1|0,i;);i=a[A+304>>2],i&&(o[A+308|0]&&(CA(i),r=a[A+296>>2]),a[A+304>>2]=0),a[A+304>>2]=c,a[A+300>>2]=t,f[A+308|0]=1}a[A+296>>2]=r+1,a[a[A+304>>2]+(r<<2)>>2]=e},function(A,e){A|=0,e|=0;var r=0,i=0,f=0,t=0;r=a[A+296>>2];A:if(!((0|r)<1)){for(t=a[A+304>>2],i=t;;){if((0|e)!=a[i>>2]){if(i=i+4|0,f=f+1|0,(0|r)!=(0|f))continue;break A}break}(0|r)<=(0|f)||(f=i,i=r+-1|0,r=i<<2,a[f>>2]=a[r+t>>2],a[A+296>>2]=i,a[r+a[A+304>>2]>>2]=e)}},function(A,e){A|=0,e|=0;var r=0,i=0,t=0,n=0,o=0;if(r=a[e+4>>2],a[A+264>>2]=a[e>>2],a[A+268>>2]=r,i=e+8|0,t=a[i+4>>2],r=A+272|0,a[r>>2]=a[i>>2],a[r+4>>2]=t,i=a[A+248>>2],(0|i)>=1)for(r=0,t=0;;){A:{e:if(n=a[a[A+256>>2]+r>>2],o=a[n+220>>2]+-2|0,!(o>>>0>3))switch(o-1|0){case 0:case 1:break e;default:break A}1&f[n+564|0]||(Si(n,e),i=a[A+248>>2])}if(r=r+4|0,t=t+1|0,!((0|t)<(0|i)))break}},function(A,e){A|=0,e|=0;var r=0;r=a[e+268>>2],a[A>>2]=a[e+264>>2],a[A+4>>2]=r,e=e+272|0,r=a[e+4>>2],A=A+8|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},function(A){A|=0;var e,r=0,i=_(0),f=0,t=0,n=0,c=0,b=0;e=Y+-64|0,Y=e;A:if(o[A+290|0]){if(f=a[A+8>>2],(0|f)<1)break A;for(;r=a[a[A+16>>2]+c>>2],!r|!(2&a[r+252>>2])|!a[r+540>>2]|3&o[r+204|0]||(f=r+68|0,n=r+132|0,b=r+148|0,i=o[A+316|0]&&(i=C[A+284>>2],i!=_(0))?_(C[A+280>>2]-i):_(C[A+280>>2]*C[r+268>>2]),xi(f,n,b,i,e),r=a[r+540>>2],Qt[a[a[r>>2]+12>>2]](r,e),f=a[A+8>>2]),c=c+4|0,t=t+1|0,(0|t)<(0|f););}else if(t=a[A+248>>2],!((0|t)<1))for(;;){e:{r:if(r=a[a[A+256>>2]+f>>2],n=a[r+220>>2]+-2|0,!(n>>>0>3))switch(n-1|0){case 0:case 1:break r;default:break e}!a[r+540>>2]|3&o[r+204|0]||(t=r+68|0,n=r+132|0,b=r+148|0,i=o[A+316|0]&&(i=C[A+284>>2],i!=_(0))?_(C[A+280>>2]-i):_(C[A+280>>2]*C[r+268>>2]),xi(t,n,b,i,e),r=a[r+540>>2],Qt[a[a[r>>2]+12>>2]](r,e),t=a[A+248>>2])}if(f=f+4|0,c=c+1|0,!((0|c)<(0|t)))break}Y=e- -64|0},function(A,e){A|=0,e|=0;var r=0,i=0,t=0,n=0,c=0;if(3&o[e+204|0]|1&f[e+564|0]||Si(e,A+264|0),a[e+192>>2]){if(1&f[e+204|0])Ye(e,2);else{if(r=a[A+248>>2],(0|r)==a[A+252>>2]&&(t=r?r<<1:1,!((0|r)>=(0|t)))){if(t&&(c=dA(t<<2),r=a[A+248>>2]),(0|r)>=1)for(i=r;a[n+c>>2]=a[a[A+256>>2]+n>>2],n=n+4|0,i=i+-1|0,i;);i=a[A+256>>2],i&&(o[A+260|0]&&(CA(i),r=a[A+248>>2]),a[A+256>>2]=0),a[A+256>>2]=c,a[A+252>>2]=t,f[A+260|0]=1}a[A+248>>2]=r+1,a[a[A+256>>2]+(r<<2)>>2]=e}r=e,e=3&a[e+204>>2],Qt[a[a[A>>2]+36>>2]](A,r,e?2:1,e?-3:-1)}},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var t=0,n=0,c=0,b=0,l=0;if(3&o[e+204|0]|1&f[e+564|0]||Si(e,A+264|0),a[e+192>>2]){if(1&f[e+204|0])Ye(e,2);else{if(t=a[A+248>>2],(0|t)==a[A+252>>2]&&(c=t?t<<1:1,!((0|t)>=(0|c)))){if(c&&(l=dA(c<<2),t=a[A+248>>2]),(0|t)>=1)for(n=t;a[b+l>>2]=a[a[A+256>>2]+b>>2],b=b+4|0,n=n+-1|0,n;);n=a[A+256>>2],n&&(o[A+260|0]&&(CA(n),t=a[A+248>>2]),a[A+256>>2]=0),a[A+256>>2]=l,a[A+252>>2]=c,f[A+260|0]=1}a[A+248>>2]=t+1,a[a[A+256>>2]+(t<<2)>>2]=e}Qt[a[a[A>>2]+36>>2]](A,e,r,i)}},function(A,e){A|=0,e|=0;var r=0,i=0,f=0,t=0;r=a[A+248>>2];A:if(!((0|r)<1)){for(t=a[A+256>>2],i=t;;){if((0|e)!=a[i>>2]){if(i=i+4|0,f=f+1|0,(0|r)!=(0|f))continue;break A}break}(0|r)<=(0|f)||(f=i,i=r+-1|0,r=i<<2,a[f>>2]=a[r+t>>2],a[A+248>>2]=i,a[r+a[A+256>>2]>>2]=e)}df(A,e)},function(A,e){A|=0,e|=0,o[A+289|0]&&CA(a[A+216>>2]),a[A+216>>2]=e,f[A+289|0]=0,a[a[A+212>>2]+8>>2]=e},function(A){return A|=0,a[A+216>>2]},function(A){return A|=0,a[A+228>>2]},Mf,Mf,pe,function(A){A|=0;var e=0,r=0,i=0,f=0;if(a[A+248>>2]>=1)for(;r=a[a[A+256>>2]+i>>2],e=r,a[e+472>>2]=0,a[e+476>>2]=0,e=e+496|0,a[e>>2]=0,a[e+4>>2]=0,e=r+488|0,a[e>>2]=0,a[e+4>>2]=0,r=r+480|0,a[r>>2]=0,a[r+4>>2]=0,i=i+4|0,f=f+1|0,(0|f)<a[A+248>>2];);},Jf,xf,Jf,xf,function(A,e){A|=0,e=_(e);var r,i=0,f=0,t=0,n=0;if(r=Y-16|0,Y=r,Lr(r+8|0,23639),f=a[A+248>>2],(0|f)>=1)for(;i=a[a[A+256>>2]+t>>2],3&o[i+204|0]||(Xi(i,e),Ji(i,e,i+68|0),f=a[A+248>>2]),t=t+4|0,n=n+1|0,(0|n)<(0|f););qr(),Y=r+16|0},function(A,e){A|=0,e=_(e);var r,i=0,f=0,t=0,n=_(0),c=0,b=0,l=_(0),u=_(0),s=0,k=_(0);if(r=Y-80|0,Y=r,Lr(r+72|0,23581),i=a[A+248>>2],(0|i)>=1&&function(A,e,r,i){var f,t=0,n=0,c=0,b=_(0),l=0,u=0,s=0,k=0,v=0,d=0,g=0,B=0,m=0,R=0,Q=0,h=0,G=0,y=0,p=_(0),F=0,W=0,w=_(0),D=0,E=0;if(f=Y-304|0,Y=f,(0|r)>=1)for(Q=f+56|0,v=f+40|0,h=f+272|0,d=f+24|0,W=f+256|0,m=f+100|0,G=f+160|0,y=f+144|0,g=f+288|0;;){n=a[e>>2],a[n+268>>2]=1065353216;A:{e:if(t=a[n+220>>2]+-2|0,!(t>>>0>3))switch(t-1|0){case 0:case 1:break e;default:break A}3&o[n+204|0]||(Ji(n,i,f+240|0),o[A+44|0]&&(b=C[n+276>>2],b=_(b*b),b!=_(0)&&(w=b,t=n+52|0,b=_(C[f+288>>2]-C[t>>2]),p=_(b*b),b=_(C[f+292>>2]-C[n+56>>2]),p=_(p+_(b*b)),b=_(C[f+296>>2]-C[n+60>>2]),w<_(p+_(b*b))&&(Lr(f+232|0,23561),a[a[n+192>>2]+4>>2]<=19&&(R=0,a[702]=a[702]+1,c=a[A+68>>2],l=0|Qt[a[a[c>>2]+36>>2]](c),c=a[t+4>>2],a[y>>2]=a[t>>2],a[y+4>>2]=c,t=t+8|0,c=a[t+4>>2],u=y+8|0,a[u>>2]=a[t>>2],a[u+4>>2]=c,t=a[g+4>>2],a[G>>2]=a[g>>2],a[G+4>>2]=t,c=g+8|0,t=c,u=a[t+4>>2],s=G+8|0,a[s>>2]=a[t>>2],a[s+4>>2]=u,a[f+140>>2]=-1,a[f+132>>2]=1065353216,a[f+136>>2]=1,a[f+128>>2]=23884,a[f+208>>2]=0,a[f+216>>2]=0,a[f+224>>2]=a[A+24>>2],a[f+220>>2]=l,a[f+212>>2]=n,t=a[n+272>>2],DA(f+72|0),a[m>>2]=0,a[m+4>>2]=0,l=m+8|0,a[l>>2]=0,a[l+4>>2]=0,a[m+16>>2]=0,a[f+96>>2]=1065353216,a[f+88>>2]=1065353216,a[f+92>>2]=1065353216,a[f+76>>2]=8,a[f+72>>2]=9852,a[f+124>>2]=0,a[f+120>>2]=t,a[f+104>>2]=t,a[f+216>>2]=a[A+56>>2],t=a[n+188>>2],l=a[t+8>>2],a[f+136>>2]=a[t+4>>2],a[f+140>>2]=l,t=f+248|0,u=a[t+4>>2],l=f+16|0,a[l>>2]=a[t>>2],a[l+4>>2]=u,t=a[g+4>>2],a[Q>>2]=a[g>>2],a[Q+4>>2]=t,t=h+8|0,s=a[t+4>>2],u=v+8|0,a[u>>2]=a[t>>2],a[u+4>>2]=s,t=a[h+4>>2],a[v>>2]=a[h>>2],a[v+4>>2]=t,t=W,s=a[t+4>>2],a[d>>2]=a[t>>2],a[d+4>>2]=s,t=t+8|0,k=a[t+4>>2],s=d+8|0,a[s>>2]=a[t>>2],a[s+4>>2]=k,t=a[c+4>>2],k=Q+8|0,a[k>>2]=a[c>>2],a[k+4>>2]=t,t=a[f+244>>2],a[f+8>>2]=a[f+240>>2],a[f+12>>2]=t,t=n+4|0,c=t+8|0,k=a[c>>2],c=a[c+4>>2],D=a[t>>2],E=a[t+4>>2],B=n+20|0,F=a[B+4>>2],a[d>>2]=a[B>>2],a[d+4>>2]=F,B=n+28|0,F=a[B+4>>2],a[s>>2]=a[B>>2],a[s+4>>2]=F,a[l>>2]=k,a[l+4>>2]=c,a[f+8>>2]=D,a[f+12>>2]=E,c=n+36|0,l=a[c+4>>2],a[v>>2]=a[c>>2],a[v+4>>2]=l,c=n+44|0,l=a[c+4>>2],a[u>>2]=a[c>>2],a[u+4>>2]=l,_f(A,f+72|0,t,f+8|0,f+128|0,_(0)),b=C[f+132>>2],b<_(1)&&(C[n+268>>2]=b,Ji(n,_(b*i),f+240|0),a[n+268>>2]=0,ji(n,f+240|0),R=4),R)||(R=0),qr(),R)))||ji(n,f+240|0))}if(e=e+4|0,r=r+-1|0,!r)break}Y=f+304|0}(A,a[A+256>>2],i,e),o[A+291|0]){if(Lr(r- -64|0,23601),a[A+324>>2]>=1)for(;;){if(c=a[a[A+332>>2]+(s<<2)>>2],!(a[c+780>>2]<1))if(i=a[c+776>>2],f=a[i+252>>2]<<30>>31&i,i=a[c+772>>2],t=a[i+252>>2]<<30>>31&i,t)for(i=c+128|0,b=0;e=ke(t,f),e>_(0)&&(n=C[i>>2],n!=_(0)&&(k=C[i+-60>>2],l=C[i+-56>>2],u=C[i+-52>>2],a[r+60>>2]=0,C[r+56>>2]=-_(e*_(u*n)),C[r+52>>2]=-_(e*_(l*n)),C[r+48>>2]=-_(e*_(k*n)),a[r+44>>2]=0,C[r+40>>2]=C[i+-68>>2]-C[t+60>>2],C[r+36>>2]=C[i+-72>>2]-C[t+56>>2],C[r+32>>2]=C[i+-76>>2]-C[t+52>>2],a[r+28>>2]=0,C[r+24>>2]=C[i+-84>>2]-C[f+60>>2],C[r+20>>2]=C[i+-88>>2]-C[f+56>>2],C[r+16>>2]=C[i+-92>>2]-C[f+52>>2],dt(t,r+48|0,r+32|0),a[r+12>>2]=0,C[r+8>>2]=-C[r+56>>2],C[r+4>>2]=-C[r+52>>2],C[r>>2]=-C[r+48>>2],dt(f,r,r+16|0))),i=i+192|0,b=b+1|0,(0|b)<a[c+780>>2];);else for(i=c+68|0,b=0;e=ke(t,f),e>_(0)&&(n=C[i+60>>2],n!=_(0)&&(k=C[i+4>>2],l=C[i+8>>2],u=C[i>>2],a[r+60>>2]=0,u=_(e*_(u*n)),C[r+48>>2]=-u,l=_(e*_(l*n)),C[r+56>>2]=-l,e=_(e*_(k*n)),C[r+52>>2]=-e,a[r+44>>2]=0,C[r+40>>2]=C[i+-8>>2]-C[t+60>>2],C[r+36>>2]=C[i+-12>>2]-C[t+56>>2],C[r+32>>2]=C[i+-16>>2]-C[t+52>>2],a[r+28>>2]=0,C[r+24>>2]=C[i+-24>>2]-C[f+60>>2],C[r+20>>2]=C[i+-28>>2]-C[f+56>>2],C[r+16>>2]=C[i+-32>>2]-C[f+52>>2],a[r+12>>2]=0,C[r+8>>2]=l,C[r+4>>2]=e,C[r>>2]=u,dt(f,r,r+16|0))),i=i+192|0,b=b+1|0,(0|b)<a[c+780>>2];);if(s=s+1|0,!((0|s)<a[A+324>>2]))break}qr()}qr(),Y=r+80|0},function(A){A|=0;var e,r=0,i=0,f=0,t=0,n=0,c=0,b=0,l=0;if(e=Y-16|0,Y=e,Lr(e+8|0,23445),r=a[A+220>>2],Qt[a[a[r>>2]+8>>2]](r,A,a[A+24>>2]),b=a[A+324>>2],(0|b)>=1)for(l=a[A+332>>2];;){if(r=a[l+(c<<2)>>2],i=a[r+772>>2],i&&(r=a[r+776>>2],!(!r|3&a[i+204>>2]|3&o[r+204|0]))){if(r=a[r+208>>2],f=a[a[A+220>>2]+16>>2],t=a[i+208>>2],n=f+(t<<3)|0,i=a[n>>2],(0|i)!=(0|t))for(;i=f+(i<<3)|0,a[n>>2]=a[i>>2],t=a[i>>2],n=f+(t<<3)|0,i=a[n>>2],(0|i)!=(0|t););if(n=f+(r<<3)|0,i=a[n>>2],(0|r)!=(0|i))for(;r=f+(i<<3)|0,a[n>>2]=a[r>>2],r=a[r>>2],n=f+(r<<3)|0,i=a[n>>2],(0|r)!=(0|i););(0|r)!=(0|t)&&(i=f+(t<<3)|0,a[i>>2]=r,r=f+(r<<3)|0,a[r+4>>2]=a[r+4>>2]+a[i+4>>2])}if(c=c+1|0,!((0|c)<(0|b)))break}if(b=a[A+228>>2],(0|b)>=1)for(l=a[A+236>>2],n=0;;){if(r=a[l+(n<<2)>>2],o[r+20|0]&&(i=a[r+28>>2],!(3&o[i+204|0]||(r=a[r+32>>2],3&o[r+204|0])))){if(r=a[r+208>>2],f=a[a[A+220>>2]+16>>2],t=a[i+208>>2],i=f+(t<<3)|0,c=a[i>>2],(0|c)!=(0|t))for(;t=i,i=f+(c<<3)|0,a[t>>2]=a[i>>2],t=a[i>>2],i=f+(t<<3)|0,c=a[i>>2],(0|c)!=(0|t););if(i=f+(r<<3)|0,c=a[i>>2],(0|c)!=(0|r))for(;r=f+(c<<3)|0,a[i>>2]=a[r>>2],r=a[r>>2],i=f+(r<<3)|0,c=a[i>>2],(0|c)!=(0|r););(0|r)!=(0|t)&&(i=f+(t<<3)|0,a[i>>2]=r,r=f+(r<<3)|0,a[r+4>>2]=a[r+4>>2]+a[i+4>>2])}if(n=n+1|0,(0|b)==(0|n))break}r=a[A+220>>2],Qt[a[a[r>>2]+12>>2]](r,A),qr(),Y=e+16|0},function(A,e){A|=0,e|=0;var r,i,t,n,c,b,l=0,u=0,s=0,k=0;if(i=Y-16|0,Y=i,Lr(i+8|0,23428),s=a[A+196>>2],r=a[A+228>>2],(0|s)<(0|r)){if(a[A+200>>2]<(0|r)){if(r?(k=dA(r<<2),l=a[A+196>>2]):l=s,(0|l)>=1)for(;a[u+k>>2]=a[a[A+204>>2]+u>>2],u=u+4|0,l=l+-1|0,l;);l=a[A+204>>2],l&&(o[A+208|0]&&CA(l),a[A+204>>2]=0),a[A+204>>2]=k,a[A+200>>2]=r,f[A+208|0]=1}for(u=s<<2,l=r-s|0;a[a[A+204>>2]+u>>2]=0,u=u+4|0,l=l+-1|0,l;);}if(a[A+196>>2]=r,(0|Qt[a[a[A>>2]+104>>2]](A))>=1)for(u=0,l=0;a[a[A+204>>2]+u>>2]=a[a[A+236>>2]+u>>2],u=u+4|0,l=l+1|0,(0|l)<(0|Qt[a[a[A>>2]+104>>2]](A)););l=a[A+196>>2],(0|l)>=2&&function A(e,r,i,f){for(var t=0,n=0,o=0,c=0,b=0,l=0,u=0,s=0,k=0,v=0;;){for(k=i,n=a[e+12>>2],s=a[n+((i+f|0)/2<<2)>>2],t=f;;){if(l=a[a[s+28>>2]+208>>2],c=(0|l)<0,c)for(b=i+-1|0,o=((i<<2)+n|0)-4|0,u=a[a[s+32>>2]+208>>2];b=b+1|0,o=o+4|0,v=a[o>>2],i=a[a[v+28>>2]+208>>2],(0|i)<=-1&&(i=a[a[v+32>>2]+208>>2]),(0|i)<(0|u););else for(b=i+-1|0,o=((i<<2)+n|0)-4|0;b=b+1|0,o=o+4|0,u=a[o>>2],i=a[a[u+28>>2]+208>>2],(0|i)<=-1&&(i=a[a[u+32>>2]+208>>2]),(0|i)<(0|l););if(c){for(i=t+1|0,t=(t<<2)+n|0,l=a[a[s+32>>2]+208>>2];c=a[t>>2],n=a[a[c+28>>2]+208>>2],(0|n)<=-1&&(n=a[a[c+32>>2]+208>>2]),t=t+-4|0,i=i+-1|0,(0|l)<(0|n););t=t+4|0}else{for(i=t+1|0,t=(t<<2)+n|0;c=a[t>>2],n=a[a[c+28>>2]+208>>2],(0|n)<=-1&&(n=a[a[c+32>>2]+208>>2]),t=t+-4|0,i=i+-1|0,(0|l)<(0|n););t=t+4|0}if((0|b)>(0|i)?(t=i,i=b):(n=a[o>>2],a[o>>2]=a[t>>2],a[a[e+12>>2]+(i<<2)>>2]=n,t=i+-1|0,i=b+1|0),!((0|i)<=(0|t)))break;n=a[e+12>>2]}if((0|t)>(0|k)&&A(e,r,k,t),!((0|i)<(0|f)))break}}(A+192|0,i,0,l+-1|0),u=0,Qt[a[a[A>>2]+104>>2]](A)&&(u=a[A+204>>2]),function(A,e,r,i,t){if(a[A+20>>2]=t,a[A+16>>2]=i,a[A+12>>2]=r,a[A+4>>2]=e,e=a[A+32>>2],(0|e)<=-1)for(a[A+36>>2]<=-1&&(r=a[A+40>>2],r&&(o[A+44|0]&&CA(r),a[A+40>>2]=0),a[A+36>>2]=0,a[A+40>>2]=0,f[A+44|0]=1),r=e<<2;a[a[A+40>>2]+r>>2]=0,r=r+4|0,i=e+1|0,t=i>>>0>=e>>>0,e=i,t;);if(a[A+32>>2]=0,e=a[A+52>>2],(0|e)<=-1)for(a[A+56>>2]<=-1&&(r=a[A+60>>2],r&&(o[A- -64|0]&&CA(r),a[A+60>>2]=0),a[A+56>>2]=0,a[A+60>>2]=0,f[A- -64|0]=1),r=e<<2;a[a[A+60>>2]+r>>2]=0,r=r+4|0,i=e+1|0,t=i>>>0>=e>>>0,e=i,t;);if(a[A+52>>2]=0,e=a[A+72>>2],(0|e)<=-1)for(a[A+76>>2]<=-1&&(r=a[A+80>>2],r&&(o[A+84|0]&&CA(r),a[A+80>>2]=0),a[A+76>>2]=0,a[A+80>>2]=0,f[A+84|0]=1),r=e<<2;a[a[A+80>>2]+r>>2]=0,r=r+4|0,i=e+1|0,t=i>>>0>=e>>>0,e=i,t;);a[A+72>>2]=0}(a[A+212>>2],e,u,a[A+196>>2],0|Qt[a[a[A>>2]+20>>2]](A)),l=a[A+216>>2],s=a[A+24>>2],n=l,c=a[A+8>>2],b=0|Qt[a[a[s>>2]+36>>2]](s),t=a[a[l>>2]+8>>2],Qt[t](0|n,0|c,0|b),Ff(a[A+220>>2],a[A+24>>2],A,a[A+212>>2]),Uf(a[A+212>>2]),l=a[A+216>>2],Qt[a[a[l>>2]+16>>2]](l,e,a[A+72>>2]),qr(),Y=i+16|0},function(A,e){A|=0,e=_(e);var r,i=0,f=_(0),t=0,n=_(0),c=0,b=0,l=0;if(r=Y-16|0,Y=r,Lr(r+8|0,23406),a[A+248>>2]>=1)for(;;){i=a[a[A+256>>2]+c>>2];A:if(i){t=a[i+220>>2],b=t+-2|0;e:{if(!(b-1|0&&b>>>0<=2)){if(f=C[i+372>>2],n=_(f*f),f=C[i+376>>2],n=_(n+_(f*f)),f=C[i+380>>2],n=_(n+_(f*f)),f=C[i+532>>2],n<_(f*f)&&(f=C[i+388>>2],n=_(f*f),f=C[i+392>>2],n=_(n+_(f*f)),f=C[i+396>>2],n=_(n+_(f*f)),f=C[i+536>>2],n<_(f*f))){C[i+224>>2]=C[i+224>>2]+e;break e}a[i+224>>2]=0,Ye(i,0),t=a[i+220>>2]}if(4==(0|t))break A}if(o[2792]||(f=C[750],f==_(0)|(C[i+224>>2]>f^1?2!=(-2&t):0)))Ye(i,1);else{if(3&o[i+204|0]){Ye(i,2);break A}if(1==(0|t)&&(Ye(i,3),t=a[i+220>>2]),2!=(0|t))break A;a[i+388>>2]=0,a[i+392>>2]=0,a[i+372>>2]=0,a[i+376>>2]=0,t=i+396|0,a[t>>2]=0,a[t+4>>2]=0,t=i+380|0,a[t>>2]=0,a[t+4>>2]=0,a[i+304>>2]=a[i+304>>2]+2}}if(c=c+4|0,l=l+1|0,!((0|l)<a[A+248>>2]))break}qr(),Y=r+16|0},function(A,e){A|=0,e=_(e);var r,i,f,t=0,n=0,o=0;if(r=Y-16|0,Y=r,Lr(r,23363),t=a[A+84>>2],t&&Qt[t](A,e),Qt[a[a[A>>2]+140>>2]](A,e),t=0,a[A+32>>2]=0,C[A+28>>2]=e,i=A+48|0,f=0|Qt[a[a[A>>2]+20>>2]](A),a[i>>2]=f,Qt[a[a[A>>2]+164>>2]](A,e),Qt[a[a[A>>2]+44>>2]](A),Qt[a[a[A>>2]+148>>2]](A),C[A+104>>2]=e,Qt[a[a[A>>2]+152>>2]](A,A+92|0),Qt[a[a[A>>2]+144>>2]](A,e),Lr(r+8|0,23392),a[A+296>>2]>=1)for(;n=a[a[A+304>>2]+t>>2],Qt[a[a[n>>2]+8>>2]](n,A,e),t=t+4|0,o=o+1|0,(0|o)<a[A+296>>2];);qr(),Qt[a[a[A>>2]+156>>2]](A,e),t=a[A+80>>2],t&&Qt[t](A,e),qr(),Y=r+16|0},function(A,e){A|=0,e=_(e);var r,i=0,t=0,n=0,c=0;if(r=Y-16|0,Y=r,Lr(r,23536),Lr(r+8|0,23499),i=a[A+332>>2],a[A+324>>2]>=1)for(;t=a[A+24>>2],Qt[a[a[t>>2]+16>>2]](t,a[i+n>>2]),n=n+4|0,i=a[A+332>>2],c=c+1|0,(0|c)<a[A+324>>2];);i&&(o[A+336|0]&&CA(i),a[A+332>>2]=0),a[A+332>>2]=0,a[A+324>>2]=0,a[A+328>>2]=0,f[A+336|0]=1,qr(),i=a[A+248>>2],(0|i)>=1&&function(A,e,r,i){var t,n=0,c=0,b=0,l=0,u=_(0),s=0,k=0,v=_(0),d=_(0),g=0,m=_(0),R=_(0),G=0,y=0,p=0,F=0,W=0,w=0,D=_(0),E=0,Z=_(0),V=_(0),N=_(0),I=_(0),J=_(0),x=_(0),U=0,M=0,S=0,X=0,T=0,j=0,O=0,H=0,z=_(0),P=_(0),K=_(0),L=_(0),q=0,$=0,AA=0,eA=0,rA=0,iA=_(0),fA=_(0),tA=_(0);if(t=Y-496|0,Y=t,(0|r)>=1)for(G=t+124|0,q=t+92|0,U=t+72|0,$=t+368|0,M=t+248|0,p=t+232|0,S=t+464|0,F=t+216|0,AA=t+448|0,E=t+292|0,X=t+352|0,T=t+336|0,W=t+480|0;;){b=a[(j<<2)+e>>2],a[b+268>>2]=1065353216;A:{e:if(n=a[b+220>>2]+-2|0,!(n>>>0>3))switch(n-1|0){case 0:case 1:break e;default:break A}if(!(3&o[b+204|0])&&(Ji(b,i,t+432|0),o[A+44|0]&&(u=C[b+276>>2],u=_(u*u),u!=_(0)&&(d=u,y=b+52|0,u=_(C[t+480>>2]-C[y>>2]),v=_(u*u),u=_(C[t+484>>2]-C[b+56>>2]),v=_(v+_(u*u)),u=_(C[t+488>>2]-C[b+60>>2]),d<_(v+_(u*u)))))){if(Lr(t+424|0,23472),a[a[b+192>>2]+4>>2]<=19&&(a[702]=a[702]+1,n=a[A+68>>2],n=0|Qt[a[a[n>>2]+36>>2]](n),c=a[y+4>>2],a[T>>2]=a[y>>2],a[T+4>>2]=c,O=y+8|0,c=O,l=a[c+4>>2],k=T+8|0,a[k>>2]=a[c>>2],a[k+4>>2]=l,c=a[W+4>>2],a[X>>2]=a[W>>2],a[X+4>>2]=c,c=W+8|0,k=a[c+4>>2],s=X+8|0,a[s>>2]=a[c>>2],a[s+4>>2]=k,a[t+332>>2]=-1,a[t+324>>2]=1065353216,a[t+328>>2]=1,a[t+320>>2]=23884,a[t+400>>2]=0,a[t+408>>2]=0,a[t+416>>2]=a[A+24>>2],a[t+412>>2]=n,a[t+404>>2]=b,n=a[b+272>>2],DA(t+264|0),a[E>>2]=0,a[E+4>>2]=0,l=E+8|0,a[l>>2]=0,a[l+4>>2]=0,a[E+16>>2]=0,a[t+288>>2]=1065353216,a[t+280>>2]=1065353216,a[t+284>>2]=1065353216,a[t+268>>2]=8,a[t+264>>2]=9852,a[t+316>>2]=0,a[t+312>>2]=n,a[t+296>>2]=n,a[t+408>>2]=a[A+56>>2],n=a[b+188>>2],l=a[n+8>>2],a[t+328>>2]=a[n+4>>2],a[t+332>>2]=l,n=t+440|0,k=a[n+4>>2],l=t+208|0,a[l>>2]=a[n>>2],a[l+4>>2]=k,n=a[W+4>>2],a[M>>2]=a[W>>2],a[M+4>>2]=n,n=S+8|0,s=a[n+4>>2],k=p+8|0,a[k>>2]=a[n>>2],a[k+4>>2]=s,n=a[S+4>>2],a[p>>2]=a[S>>2],a[p+4>>2]=n,n=AA,s=a[n+4>>2],a[F>>2]=a[n>>2],a[F+4>>2]=s,n=n+8|0,g=a[n+4>>2],s=F+8|0,a[s>>2]=a[n>>2],a[s+4>>2]=g,n=a[c+4>>2],g=M+8|0,a[g>>2]=a[c>>2],a[g+4>>2]=n,n=a[t+436>>2],a[t+200>>2]=a[t+432>>2],a[t+204>>2]=n,n=b+4|0,c=n+8|0,g=a[c>>2],c=a[c+4>>2],eA=a[n>>2],rA=a[n+4>>2],w=b+20|0,H=a[w+4>>2],a[F>>2]=a[w>>2],a[F+4>>2]=H,w=b+28|0,H=a[w+4>>2],a[s>>2]=a[w>>2],a[s+4>>2]=H,a[l>>2]=g,a[l+4>>2]=c,a[t+200>>2]=eA,a[t+204>>2]=rA,c=b+36|0,l=a[c+4>>2],a[p>>2]=a[c>>2],a[p+4>>2]=l,c=b+44|0,l=a[c+4>>2],a[k>>2]=a[c>>2],a[k+4>>2]=l,_f(A,t+264|0,n,t+200|0,t+320|0,_(0)),u=C[t+324>>2],u<_(1))){if(D=C[b+60>>2],m=C[b+56>>2],R=C[b+52>>2],d=C[t+376>>2],Z=C[t+488>>2],V=C[t+372>>2],N=C[t+484>>2],I=C[t+368>>2],J=C[t+480>>2],n=a[A+24>>2],k=0|Qt[a[a[n>>2]+12>>2]](n,b,a[t+400>>2]),x=_(u*_(N-m)),m=_(u*_(J-R)),v=d,d=_(u*_(Z-D)),R=_(_(_(-_(V*x))-_(I*m))-_(v*d)),n=a[A+324>>2],(0|n)==a[A+328>>2]&&(s=n?n<<1:1,!((0|n)>=(0|s)))){if(s?(g=dA(s<<2),n=a[A+324>>2]):g=0,(0|n)>=1)for(l=0,c=n;a[l+g>>2]=a[a[A+332>>2]+l>>2],l=l+4|0,c=c+-1|0,c;);c=a[A+332>>2],c&&(o[A+336|0]&&(CA(c),n=a[A+324>>2]),a[A+332>>2]=0),a[A+332>>2]=g,f[A+336|0]=1,a[A+328>>2]=s}a[a[A+332>>2]+(n<<2)>>2]=k,a[A+324>>2]=n+1,n=a[t+400>>2],Z=C[n+20>>2],V=C[n+36>>2],N=C[n+40>>2],I=C[n+8>>2],J=C[n+24>>2],u=C[n+60>>2],iA=C[n+52>>2],D=C[n+56>>2],P=C[n+44>>2],v=C[n+12>>2],K=C[n+28>>2],L=C[n+4>>2],z=C[b+60>>2],fA=C[b+52>>2],tA=C[b+56>>2],n=t+16|0,a[n>>2]=0,a[n+4>>2]=0,n=q,a[n>>2]=0,a[n+4>>2]=0,n=n+8|0,a[n>>2]=0,a[n+4>>2]=0,a[G>>2]=0,a[G+4>>2]=0,n=G+8|0,a[n>>2]=0,a[n+4>>2]=0,n=G+16|0,a[n>>2]=0,a[n+4>>2]=0,n=G+24|0,a[n>>2]=0,a[n+4>>2]=0,n=G+32|0,a[n>>2]=0,a[n+4>>2]=0,a[G+40>>2]=0,n=$,c=a[n+4>>2],a[U>>2]=a[n>>2],a[U+4>>2]=c,n=n+8|0,c=a[n+4>>2],l=U+8|0,a[l>>2]=a[n>>2],a[l+4>>2]=c,a[t+8>>2]=0,a[t+12>>2]=0,a[t+36>>2]=0,C[t+88>>2]=R,m=_(m+fA),R=_(x+tA),d=_(d+z),z=_(_(_(v*m)+_(K*R))+_(P*d)),x=v,v=_(-iA),C[t+32>>2]=z+_(_(_(x*v)-_(K*D))-_(P*u)),C[t+28>>2]=_(_(_(m*I)+_(R*J))+_(d*N))+_(_(_(I*v)-_(J*D))-_(N*u)),C[t+24>>2]=_(_(_(m*L)+_(R*Z))+_(d*V))+_(_(_(L*v)-_(Z*D))-_(V*u)),n=k+B(ue(k,t+8|0),192)|0,a[n+100>>2]=0,C[n+88>>2]=Q(_(h(_(C[b+228>>2]*C[a[t+400>>2]+228>>2]),_(-10))),_(10)),c=a[y+4>>2],b=n+52|0,a[b>>2]=a[y>>2],a[b+4>>2]=c,c=a[O+4>>2],b=n+60|0,a[b>>2]=a[O>>2],a[b+4>>2]=c,a[n+48>>2]=0,C[n+44>>2]=d,C[n+40>>2]=R,C[n+36>>2]=m}qr()}}if(j=j+1|0,(0|j)==(0|r))break}Y=t+496|0}(A,a[A+256>>2],i,e),qr(),Y=r+16|0},function(A,e){A|=0,e=_(e);var r=0,i=0,f=0,t=0;if(i=a[A+8>>2],(0|i)>=1)for(;r=a[a[A+16>>2]+f>>2],!r|!(2&a[r+252>>2])|!(2&o[r+204|0])|2==a[r+220>>2]||(Ui(r,e),i=a[A+8>>2]),f=f+4|0,t=t+1|0,(0|t)<(0|i););},function(A,e){A|=0,e|=0;var r,i=0,f=0,t=0,n=0,c=0,b=_(0),l=_(0),u=_(0),s=0,k=_(0),v=0,d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),y=_(0),p=_(0),F=_(0),W=0,w=_(0),D=_(0),E=_(0),Z=0,V=_(0),N=0,I=_(0),J=_(0),x=_(0),U=0,M=0,S=0,X=_(0),T=_(0),j=_(0),O=0,H=_(0),z=_(0),P=0,K=_(0);r=Y-176|0,Y=r,i=0|Qt[a[a[A>>2]+20>>2]](A),i=0|Qt[a[a[i>>2]+56>>2]](i),t=0|Qt[a[a[A>>2]+20>>2]](A),t=0|Qt[a[a[t>>2]+56>>2]](t),w=C[e+40>>2];A:if(!(w<=_(0)||(n=a[e+4>>2]+-3|0,n>>>0>9))){switch(f=2048&i,s=4096&t,n-1|0){default:if(t=r+172|0,a[t>>2]=0,n=r+164|0,i=n,a[i>>2]=0,a[i+4>>2]=0,i=r+156|0,a[i>>2]=0,a[i+4>>2]=0,i=r+124|0,a[i>>2]=0,a[i+4>>2]=0,i=r+136|0,a[i>>2]=0,a[i+4>>2]=0,a[r+132>>2]=1065353216,a[r+152>>2]=1065353216,a[r+116>>2]=0,a[r+120>>2]=0,a[r+144>>2]=0,a[r+148>>2]=0,a[r+112>>2]=1065353216,i=a[e+28>>2],k=C[i+52>>2],g=C[i+8>>2],B=C[i+12>>2],d=C[i+56>>2],m=C[i+28>>2],R=C[i+20>>2],h=C[i+24>>2],b=C[i+60>>2],u=C[i+44>>2],l=C[i+36>>2],G=C[i+40>>2],y=C[i+4>>2],a[t>>2]=0,W=r+168|0,Q=b,b=C[e+300>>2],p=_(l*b),l=C[e+304>>2],F=u,u=C[e+308>>2],C[W>>2]=Q+_(_(p+_(G*l))+_(F*u)),C[n>>2]=d+_(_(_(b*R)+_(l*h))+_(u*m)),C[r+160>>2]=k+_(_(_(b*y)+_(l*g))+_(u*B)),i=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[i>>2]+64>>2]](i,r+112|0,w),i=a[e+32>>2],k=C[i+52>>2],g=C[i+8>>2],B=C[i+12>>2],d=C[i+56>>2],m=C[i+28>>2],R=C[i+20>>2],h=C[i+24>>2],b=C[i+60>>2],u=C[i+44>>2],l=C[i+36>>2],G=C[i+40>>2],y=C[i+4>>2],a[t>>2]=0,Q=b,b=C[e+316>>2],p=_(l*b),l=C[e+320>>2],F=u,u=C[e+324>>2],C[W>>2]=Q+_(_(p+_(G*l))+_(F*u)),C[n>>2]=d+_(_(_(b*R)+_(l*h))+_(u*m)),C[r+160>>2]=k+_(_(_(b*y)+_(l*g))+_(u*B)),!f)break A;A=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[A>>2]+64>>2]](A,r+112|0,w);break A;case 0:if(i=a[e+28>>2],X=C[i+52>>2],b=C[i+8>>2],l=C[i+12>>2],h=C[e+584>>2],G=C[e+552>>2],y=C[e+568>>2],T=C[i+56>>2],j=C[i+60>>2],V=C[e+608>>2],F=C[e+600>>2],I=C[e+604>>2],u=C[i+28>>2],k=C[i+20>>2],g=C[i+24>>2],J=C[e+588>>2],Q=C[e+556>>2],p=C[e+572>>2],D=C[e+592>>2],B=C[i+44>>2],x=C[e+560>>2],d=C[i+36>>2],E=C[e+576>>2],m=C[i+40>>2],R=C[i+4>>2],a[r+172>>2]=0,a[r+156>>2]=0,a[r+140>>2]=0,C[r+152>>2]=_(_(x*d)+_(E*m))+_(D*B),C[r+148>>2]=_(_(Q*d)+_(p*m))+_(J*B),C[r+136>>2]=_(_(x*k)+_(E*g))+_(D*u),C[r+132>>2]=_(_(Q*k)+_(p*g))+_(J*u),C[r+168>>2]=j+_(_(_(d*F)+_(m*I))+_(B*V)),C[r+164>>2]=T+_(_(_(k*F)+_(g*I))+_(u*V)),a[r+124>>2]=0,C[r+144>>2]=_(_(G*d)+_(y*m))+_(h*B),C[r+128>>2]=_(_(G*k)+_(y*g))+_(h*u),C[r+120>>2]=_(_(R*x)+_(b*E))+_(l*D),C[r+116>>2]=_(_(R*Q)+_(b*p))+_(l*J),C[r+112>>2]=_(_(G*R)+_(y*b))+_(h*l),C[r+160>>2]=X+_(_(_(R*F)+_(b*I))+_(l*V)),f?(i=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[i>>2]+64>>2]](i,r+112|0,w),i=a[e+32>>2],X=C[i+52>>2],b=C[i+8>>2],l=C[i+12>>2],T=C[i+56>>2],j=C[i+60>>2],h=C[e+672>>2],G=C[e+664>>2],y=C[e+668>>2],u=C[i+28>>2],k=C[i+20>>2],g=C[i+24>>2],V=C[e+648>>2],F=C[e+616>>2],I=C[e+632>>2],J=C[e+652>>2],Q=C[e+620>>2],p=C[e+636>>2],D=C[e+656>>2],B=C[i+44>>2],x=C[e+624>>2],d=C[i+36>>2],E=C[e+640>>2],m=C[i+40>>2],R=C[i+4>>2],a[r+172>>2]=0,a[r+156>>2]=0,a[r+140>>2]=0,C[r+152>>2]=_(_(x*d)+_(E*m))+_(D*B),C[r+148>>2]=_(_(Q*d)+_(p*m))+_(J*B),C[r+144>>2]=_(_(F*d)+_(I*m))+_(V*B),C[r+136>>2]=_(_(x*k)+_(E*g))+_(D*u),C[r+132>>2]=_(_(Q*k)+_(p*g))+_(J*u),C[r+168>>2]=j+_(_(_(d*G)+_(m*y))+_(B*h)),C[r+164>>2]=T+_(_(_(k*G)+_(g*y))+_(u*h)),C[r+160>>2]=X+_(_(_(R*G)+_(b*y))+_(l*h)),a[r+124>>2]=0,C[r+128>>2]=_(_(F*k)+_(I*g))+_(V*u),C[r+120>>2]=_(_(R*x)+_(b*E))+_(l*D),C[r+116>>2]=_(_(R*Q)+_(b*p))+_(l*J),C[r+112>>2]=_(_(F*R)+_(I*b))+_(V*l),i=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[i>>2]+64>>2]](i,r+112|0,w)):(i=a[e+32>>2],X=C[i+52>>2],T=C[i+56>>2],j=C[i+60>>2],h=C[e+672>>2],G=C[e+664>>2],y=C[e+668>>2],b=C[i+8>>2],l=C[i+12>>2],u=C[i+28>>2],k=C[i+20>>2],g=C[i+24>>2],V=C[e+648>>2],F=C[e+616>>2],I=C[e+632>>2],J=C[e+652>>2],Q=C[e+620>>2],p=C[e+636>>2],D=C[e+656>>2],B=C[i+44>>2],x=C[e+624>>2],d=C[i+36>>2],E=C[e+640>>2],m=C[i+40>>2],R=C[i+4>>2],a[r+172>>2]=0,a[r+156>>2]=0,a[r+140>>2]=0,a[r+124>>2]=0,C[r+152>>2]=_(_(x*d)+_(E*m))+_(D*B),C[r+148>>2]=_(_(Q*d)+_(p*m))+_(J*B),C[r+144>>2]=_(_(F*d)+_(I*m))+_(V*B),C[r+136>>2]=_(_(x*k)+_(E*g))+_(D*u),C[r+132>>2]=_(_(Q*k)+_(p*g))+_(J*u),C[r+128>>2]=_(_(F*k)+_(I*g))+_(V*u),C[r+120>>2]=_(_(R*x)+_(b*E))+_(l*D),C[r+116>>2]=_(_(R*Q)+_(b*p))+_(l*J),C[r+112>>2]=_(_(F*R)+_(I*b))+_(V*l),C[r+168>>2]=j+_(_(_(d*G)+_(m*y))+_(B*h)),C[r+164>>2]=T+_(_(_(k*G)+_(g*y))+_(u*h)),C[r+160>>2]=X+_(_(_(R*G)+_(b*y))+_(l*h))),i=e+688|0,b=function(A){var e=_(0);return e=Wf(_(C[A>>2]-C[A+4>>2])),e<_(-3.1415927410125732)?_(e+_(6.2831854820251465)):e>_(3.1415927410125732)^1?e:_(e+_(-6.2831854820251465))}(i),l=function(A){var e=_(0);return e=Wf(_(C[A>>2]+C[A+4>>2])),e<_(-3.1415927410125732)?_(e+_(6.2831854820251465)):e>_(3.1415927410125732)^1?e:_(e+_(-6.2831854820251465))}(i),!s|b==l)break A;u=C[e+692>>2],a[r+96>>2]=a[r+120>>2],a[r+100>>2]=a[r+136>>2],a[r+108>>2]=0,a[r+104>>2]=a[r+152>>2],a[r+80>>2]=a[r+112>>2],a[r+84>>2]=a[r+128>>2],a[r+92>>2]=0,a[r+88>>2]=a[r+144>>2],A=0|Qt[a[a[A>>2]+20>>2]](A),e=r+72|0,a[e>>2]=0,a[e+4>>2]=0,a[r+64>>2]=0,a[r+68>>2]=0,e=u>_(0),Qt[a[a[A>>2]+68>>2]](A,r+160|0,r+96|0,r+80|0,w,w,e?b:_(0),e?l:_(6.2831854820251465),r- -64|0,e,_(10));break A;case 1:if(i=a[e+28>>2],X=C[i+52>>2],b=C[i+8>>2],l=C[i+12>>2],h=C[e+332>>2],G=C[e+300>>2],y=C[e+316>>2],T=C[i+56>>2],j=C[i+60>>2],V=C[e+356>>2],F=C[e+348>>2],I=C[e+352>>2],u=C[i+28>>2],k=C[i+20>>2],g=C[i+24>>2],J=C[e+336>>2],Q=C[e+304>>2],p=C[e+320>>2],D=C[e+340>>2],B=C[i+44>>2],x=C[e+308>>2],d=C[i+36>>2],E=C[e+324>>2],m=C[i+40>>2],R=C[i+4>>2],a[r+172>>2]=0,a[r+156>>2]=0,a[r+140>>2]=0,C[r+152>>2]=_(_(x*d)+_(E*m))+_(D*B),C[r+148>>2]=_(_(Q*d)+_(p*m))+_(J*B),C[r+136>>2]=_(_(x*k)+_(E*g))+_(D*u),C[r+132>>2]=_(_(Q*k)+_(p*g))+_(J*u),C[r+168>>2]=j+_(_(_(d*F)+_(m*I))+_(B*V)),C[r+164>>2]=T+_(_(_(k*F)+_(g*I))+_(u*V)),a[r+124>>2]=0,C[r+144>>2]=_(_(G*d)+_(y*m))+_(h*B),C[r+128>>2]=_(_(G*k)+_(y*g))+_(h*u),C[r+120>>2]=_(_(R*x)+_(b*E))+_(l*D),C[r+116>>2]=_(_(R*Q)+_(b*p))+_(l*J),C[r+112>>2]=_(_(G*R)+_(y*b))+_(h*l),C[r+160>>2]=X+_(_(_(R*F)+_(b*I))+_(l*V)),f?(i=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[i>>2]+64>>2]](i,r+112|0,w),i=a[e+32>>2],X=C[i+52>>2],b=C[i+8>>2],l=C[i+12>>2],T=C[i+56>>2],j=C[i+60>>2],h=C[e+420>>2],G=C[e+412>>2],y=C[e+416>>2],u=C[i+28>>2],k=C[i+20>>2],g=C[i+24>>2],V=C[e+396>>2],F=C[e+364>>2],I=C[e+380>>2],J=C[e+400>>2],Q=C[e+368>>2],p=C[e+384>>2],D=C[e+404>>2],B=C[i+44>>2],x=C[e+372>>2],d=C[i+36>>2],E=C[e+388>>2],m=C[i+40>>2],R=C[i+4>>2],a[r+172>>2]=0,a[r+156>>2]=0,a[r+140>>2]=0,C[r+152>>2]=_(_(x*d)+_(E*m))+_(D*B),C[r+148>>2]=_(_(Q*d)+_(p*m))+_(J*B),C[r+144>>2]=_(_(F*d)+_(I*m))+_(V*B),C[r+136>>2]=_(_(x*k)+_(E*g))+_(D*u),C[r+132>>2]=_(_(Q*k)+_(p*g))+_(J*u),C[r+168>>2]=j+_(_(_(d*G)+_(m*y))+_(B*h)),C[r+164>>2]=T+_(_(_(k*G)+_(g*y))+_(u*h)),C[r+160>>2]=X+_(_(_(R*G)+_(b*y))+_(l*h)),a[r+124>>2]=0,C[r+128>>2]=_(_(F*k)+_(I*g))+_(V*u),C[r+120>>2]=_(_(R*x)+_(b*E))+_(l*D),C[r+116>>2]=_(_(R*Q)+_(b*p))+_(l*J),C[r+112>>2]=_(_(F*R)+_(I*b))+_(V*l),i=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[i>>2]+64>>2]](i,r+112|0,w)):(i=a[e+32>>2],X=C[i+52>>2],T=C[i+56>>2],j=C[i+60>>2],h=C[e+420>>2],G=C[e+412>>2],y=C[e+416>>2],b=C[i+8>>2],l=C[i+12>>2],u=C[i+28>>2],k=C[i+20>>2],g=C[i+24>>2],V=C[e+396>>2],F=C[e+364>>2],I=C[e+380>>2],J=C[e+400>>2],Q=C[e+368>>2],p=C[e+384>>2],D=C[e+404>>2],B=C[i+44>>2],x=C[e+372>>2],d=C[i+36>>2],E=C[e+388>>2],m=C[i+40>>2],R=C[i+4>>2],a[r+172>>2]=0,a[r+156>>2]=0,a[r+140>>2]=0,a[r+124>>2]=0,C[r+152>>2]=_(_(x*d)+_(E*m))+_(D*B),C[r+148>>2]=_(_(Q*d)+_(p*m))+_(J*B),C[r+144>>2]=_(_(F*d)+_(I*m))+_(V*B),C[r+136>>2]=_(_(x*k)+_(E*g))+_(D*u),C[r+132>>2]=_(_(Q*k)+_(p*g))+_(J*u),C[r+128>>2]=_(_(F*k)+_(I*g))+_(V*u),C[r+120>>2]=_(_(R*x)+_(b*E))+_(l*D),C[r+116>>2]=_(_(R*Q)+_(b*p))+_(l*J),C[r+112>>2]=_(_(F*R)+_(I*b))+_(V*l),C[r+168>>2]=j+_(_(_(d*G)+_(m*y))+_(B*h)),C[r+164>>2]=T+_(_(_(k*G)+_(g*y))+_(u*h)),C[r+160>>2]=X+_(_(_(R*G)+_(b*y))+_(l*h))),!s)break A;for(Zf(r+96|0,e,_(6.0868353843688965),w),a[r+108>>2]=0,b=C[r+96>>2],l=C[r+100>>2],u=C[r+104>>2],C[r+104>>2]=_(_(_(b*C[r+144>>2])+_(l*C[r+148>>2]))+_(u*C[r+152>>2]))+C[r+168>>2],C[r+100>>2]=_(_(_(b*C[r+128>>2])+_(l*C[r+132>>2]))+_(u*C[r+136>>2]))+C[r+164>>2],C[r+96>>2]=_(_(_(b*C[r+112>>2])+_(l*C[r+116>>2]))+_(u*C[r+120>>2]))+C[r+160>>2],t=r+160|0,n=r+72|0,i=0;Zf(r+80|0,e,_(_(_(0|i)*_(6.283185005187988))*_(.03125)),w),a[r+92>>2]=0,b=C[r+80>>2],l=C[r+84>>2],u=C[r+88>>2],C[r+88>>2]=_(_(_(b*C[r+144>>2])+_(l*C[r+148>>2]))+_(u*C[r+152>>2]))+C[r+168>>2],C[r+84>>2]=_(_(_(b*C[r+128>>2])+_(l*C[r+132>>2]))+_(u*C[r+136>>2]))+C[r+164>>2],C[r+80>>2]=_(_(_(b*C[r+112>>2])+_(l*C[r+116>>2]))+_(u*C[r+120>>2]))+C[r+160>>2],f=0|Qt[a[a[A>>2]+20>>2]](A),a[n>>2]=0,a[n+4>>2]=0,a[r+64>>2]=0,a[r+68>>2]=0,Qt[a[a[f>>2]+16>>2]](f,r+96|0,r+80|0,r- -64|0),3&i||(f=0|Qt[a[a[A>>2]+20>>2]](A),a[n>>2]=0,a[n+4>>2]=0,a[r+64>>2]=0,a[r+68>>2]=0,Qt[a[a[f>>2]+16>>2]](f,t,r+80|0,r- -64|0)),W=r+88|0,U=a[W+4>>2],f=r+104|0,a[f>>2]=a[W>>2],a[f+4>>2]=U,f=a[r+84>>2],a[r+96>>2]=a[r+80>>2],a[r+100>>2]=f,i=i+1|0,32!=(0|i););G=C[e+512>>2],y=C[e+452>>2],i=a[e+32>>2],C[i+404>>2]>_(0)?(b=C[i+36>>2],d=C[e+412>>2],l=C[i+40>>2],m=C[e+416>>2],V=_(_(b*d)+_(l*m)),u=C[i+20>>2],k=C[i+24>>2],g=C[i+28>>2],F=C[e+420>>2],I=_(_(_(u*d)+_(k*m))+_(g*F)),B=C[i+4>>2],Q=_(B*d),d=C[i+8>>2],Q=_(Q+_(d*m)),m=C[i+12>>2],J=_(Q+_(m*F)),Q=C[e+372>>2],p=C[e+388>>2],D=C[e+404>>2],R=C[i+44>>2],x=_(_(_(Q*b)+_(p*l))+_(D*R)),E=C[e+368>>2],X=C[e+384>>2],T=C[e+400>>2],h=_(_(_(E*b)+_(X*l))+_(T*R)),j=C[e+364>>2],H=C[e+380>>2],z=C[e+396>>2],b=_(_(_(j*b)+_(H*l))+_(z*R)),K=_(_(_(Q*u)+_(p*k))+_(D*g)),l=_(_(_(E*u)+_(X*k))+_(T*g)),u=_(_(_(j*u)+_(H*k))+_(z*g)),Q=_(_(_(B*Q)+_(d*p))+_(m*D)),k=_(_(_(B*E)+_(d*X))+_(m*T)),g=_(_(_(j*B)+_(H*d))+_(z*m)),B=_(R*F)):(i=a[e+28>>2],b=C[i+36>>2],d=C[e+348>>2],l=C[i+40>>2],m=C[e+352>>2],V=_(_(b*d)+_(l*m)),u=C[i+20>>2],k=C[i+24>>2],g=C[i+28>>2],F=C[e+356>>2],I=_(_(_(u*d)+_(k*m))+_(g*F)),B=C[i+4>>2],Q=_(B*d),d=C[i+8>>2],Q=_(Q+_(d*m)),m=C[i+12>>2],J=_(Q+_(m*F)),Q=C[e+308>>2],p=C[e+324>>2],D=C[e+340>>2],R=C[i+44>>2],x=_(_(_(Q*b)+_(p*l))+_(D*R)),E=C[e+304>>2],X=C[e+320>>2],T=C[e+336>>2],h=_(_(_(E*b)+_(X*l))+_(T*R)),j=C[e+300>>2],H=C[e+316>>2],z=C[e+332>>2],b=_(_(_(j*b)+_(H*l))+_(z*R)),K=_(_(_(Q*u)+_(p*k))+_(D*g)),l=_(_(_(E*u)+_(X*k))+_(T*g)),u=_(_(_(j*u)+_(H*k))+_(z*g)),Q=_(_(_(B*Q)+_(d*p))+_(m*D)),k=_(_(_(B*E)+_(d*X))+_(m*T)),g=_(_(_(j*B)+_(H*d))+_(z*m)),B=_(R*F)),a[r+156>>2]=0,C[r+152>>2]=x,C[r+148>>2]=h,C[r+144>>2]=b,a[r+140>>2]=0,C[r+136>>2]=K,C[r+132>>2]=l,C[r+128>>2]=u,a[r+124>>2]=0,C[r+120>>2]=Q,C[r+116>>2]=k,C[r+112>>2]=g,d=C[i+52>>2],m=C[i+56>>2],R=C[i+60>>2],a[r+172>>2]=0,C[r+168>>2]=R+_(V+B),C[r+164>>2]=I+m,C[r+160>>2]=d+J,i=t+8|0,n=a[i+4>>2],e=r+88|0,a[e>>2]=a[i>>2],a[e+4>>2]=n,e=a[t+4>>2],a[r+80>>2]=a[t>>2],a[r+84>>2]=e,a[r+76>>2]=0,C[r+72>>2]=b,C[r+68>>2]=u,C[r+64>>2]=g,a[r+60>>2]=0,C[r+56>>2]=h,C[r+52>>2]=l,C[r+48>>2]=k,A=0|Qt[a[a[A>>2]+20>>2]](A),e=r+40|0,a[e>>2]=0,a[e+4>>2]=0,a[r+32>>2]=0,a[r+36>>2]=0,Qt[a[a[A>>2]+68>>2]](A,r+80|0,r- -64|0,r+48|0,w,w,_(_(-G)-y),_(y-G),r+32|0,1,_(10));break A;case 2:case 5:if(t=e+1072|0,n=a[t+4>>2],c=r+120|0,i=c,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+1088|0,n=a[t+4>>2],i=r+136|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+1104|0,n=a[t+4>>2],i=r+152|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+1120|0,n=a[t+4>>2],i=r+168|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,W=e+1064|0,i=W,t=a[i+4>>2],a[r+112>>2]=a[i>>2],a[r+116>>2]=t,U=e+1080|0,i=U,t=a[i+4>>2],a[r+128>>2]=a[i>>2],a[r+132>>2]=t,M=e+1096|0,i=M,t=a[i+4>>2],a[r+144>>2]=a[i>>2],a[r+148>>2]=t,S=e+1112|0,i=S,t=a[i+4>>2],a[r+160>>2]=a[i>>2],a[r+164>>2]=t,i=r+160|0,t=r+144|0,n=r+128|0,f?(f=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[f>>2]+64>>2]](f,r+112|0,w),v=e+1184|0,N=a[v+4>>2],f=i+8|0,a[f>>2]=a[v>>2],a[f+4>>2]=N,f=e+1176|0,v=a[f+4>>2],a[i>>2]=a[f>>2],a[i+4>>2]=v,f=e+1144|0,v=a[f+4>>2],a[n>>2]=a[f>>2],a[n+4>>2]=v,v=e+1152|0,N=a[v+4>>2],f=n+8|0,a[f>>2]=a[v>>2],a[f+4>>2]=N,f=e+1160|0,v=a[f+4>>2],a[t>>2]=a[f>>2],a[t+4>>2]=v,v=e+1168|0,N=a[v+4>>2],f=t+8|0,a[f>>2]=a[v>>2],a[f+4>>2]=N,f=e+1136|0,v=a[f+4>>2],a[c>>2]=a[f>>2],a[c+4>>2]=v,f=e+1128|0,c=a[f+4>>2],a[r+112>>2]=a[f>>2],a[r+116>>2]=c,f=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[f>>2]+64>>2]](f,r+112|0,w)):(f=e+1136|0,v=a[f+4>>2],a[c>>2]=a[f>>2],a[c+4>>2]=v,f=e+1144|0,c=a[f+4>>2],a[n>>2]=a[f>>2],a[n+4>>2]=c,c=e+1152|0,v=a[c+4>>2],f=n+8|0,a[f>>2]=a[c>>2],a[f+4>>2]=v,f=e+1160|0,c=a[f+4>>2],a[t>>2]=a[f>>2],a[t+4>>2]=c,c=e+1168|0,v=a[c+4>>2],f=t+8|0,a[f>>2]=a[c>>2],a[f+4>>2]=v,f=e+1176|0,c=a[f+4>>2],a[i>>2]=a[f>>2],a[i+4>>2]=c,c=e+1184|0,v=a[c+4>>2],f=i+8|0,a[f>>2]=a[c>>2],a[f+4>>2]=v,f=e+1128|0,c=a[f+4>>2],a[r+112>>2]=a[f>>2],a[r+116>>2]=c),!s)break A;f=a[U+4>>2],a[n>>2]=a[U>>2],a[n+4>>2]=f,f=a[M+4>>2],a[t>>2]=a[M>>2],a[t+4>>2]=f,f=a[S+4>>2],a[i>>2]=a[S>>2],a[i+4>>2]=f,c=W+8|0,v=a[c+4>>2],s=r+120|0,f=s,Z=a[c>>2],a[f>>2]=Z,a[f+4>>2]=v,v=U+8|0,N=a[v+4>>2],c=n+8|0,f=c,a[f>>2]=a[v>>2],a[f+4>>2]=N,N=M+8|0,O=a[N+4>>2],v=t+8|0,f=v,a[f>>2]=a[N>>2],a[f+4>>2]=O,O=S+8|0,P=a[O+4>>2],N=i+8|0,f=N,a[f>>2]=a[O>>2],a[f+4>>2]=P,f=a[W+4>>2],a[r+112>>2]=a[W>>2],a[r+116>>2]=f,a[r+96>>2]=Z,a[r+100>>2]=a[r+136>>2],a[r+108>>2]=0,a[r+104>>2]=a[r+152>>2],a[r+80>>2]=a[r+112>>2],a[r+84>>2]=a[r+128>>2],a[r+92>>2]=0,a[r+88>>2]=a[r+144>>2],b=C[e+932>>2],l=C[e+936>>2],u=C[e+996>>2],k=C[e+1e3>>2],Z=0|Qt[a[a[A>>2]+20>>2]](A),f=r+72|0,a[f>>2]=0,a[f+4>>2]=0,a[r+64>>2]=0,a[r+68>>2]=0,f=e+1176|0,Qt[a[a[Z>>2]+72>>2]](Z,f,r+96|0,r+80|0,_(w*_(.8999999761581421)),b,l,u,k,r- -64|0,_(10),1),a[r+92>>2]=0,a[r+88>>2]=a[r+148>>2],a[r+84>>2]=a[r+132>>2],a[r+80>>2]=a[r+116>>2],u=Vf(e,1),k=Vf(e,2),Z=e+1136|0,O=a[Z+4>>2],a[s>>2]=a[Z>>2],a[s+4>>2]=O,s=e+1144|0,Z=a[s+4>>2],a[n>>2]=a[s>>2],a[n+4>>2]=Z,s=e+1152|0,Z=a[s+4>>2],a[c>>2]=a[s>>2],a[c+4>>2]=Z,s=e+1160|0,c=a[s+4>>2],a[t>>2]=a[s>>2],a[t+4>>2]=c,s=e+1168|0,c=a[s+4>>2],a[v>>2]=a[s>>2],a[v+4>>2]=c,s=e+1128|0,c=a[s+4>>2],a[r+112>>2]=a[s>>2],a[r+116>>2]=c,b=dr(k),l=C[r+80>>2],k=Cr(k),g=C[r+84>>2],C[r+68>>2]=_(k*g)-_(b*l),B=dr(u),u=Cr(u),d=C[r+88>>2],C[r+72>>2]=_(_(l*_(k*B))+_(g*_(B*b)))+_(u*d),C[r+64>>2]=_(_(l*_(u*k))+_(g*_(u*b)))-_(B*d),s=e+1184|0,c=a[s+4>>2],a[N>>2]=a[s>>2],a[N+4>>2]=c,s=a[f+4>>2],a[i>>2]=a[f>>2],a[i+4>>2]=s,a[r+60>>2]=0,C[r+56>>2]=-C[r+144>>2],C[r+52>>2]=-C[r+128>>2],C[r+48>>2]=-C[r+112>>2],b=C[e+868>>2],l=C[e+872>>2],b>l?(s=0|Qt[a[a[A>>2]+20>>2]](A),c=r+40|0,a[c>>2]=0,a[c+4>>2]=0,a[r+32>>2]=0,a[r+36>>2]=0,Qt[a[a[s>>2]+68>>2]](s,f,r+48|0,r- -64|0,w,w,_(-3.1415927410125732),_(3.1415927410125732),r+32|0,0,_(10))):b<l&&(s=0|Qt[a[a[A>>2]+20>>2]](A),c=r+40|0,a[c>>2]=0,a[c+4>>2]=0,a[r+32>>2]=0,a[r+36>>2]=0,Qt[a[a[s>>2]+68>>2]](s,f,r+48|0,r- -64|0,w,w,b,l,r+32|0,1,_(10))),f=a[U+4>>2],a[n>>2]=a[U>>2],a[n+4>>2]=f,f=a[M+4>>2],a[t>>2]=a[M>>2],a[t+4>>2]=f,f=a[S+4>>2],a[i>>2]=a[S>>2],a[i+4>>2]=f,s=W+8|0,c=a[s+4>>2],f=r+120|0,a[f>>2]=a[s>>2],a[f+4>>2]=c,f=U+8|0,U=a[f+4>>2],n=n+8|0,a[n>>2]=a[f>>2],a[n+4>>2]=U,n=M+8|0,f=a[n+4>>2],t=t+8|0,a[t>>2]=a[n>>2],a[t+4>>2]=f,t=S+8|0,n=a[t+4>>2],i=i+8|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,i=a[W+4>>2],a[r+112>>2]=a[W>>2],a[r+116>>2]=i,t=e+688|0,n=a[t+4>>2],i=r+40|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,i=e+680|0,t=a[i+4>>2],a[r+32>>2]=a[i>>2],a[r+36>>2]=t,t=e+704|0,n=a[t+4>>2],i=r+24|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,e=e+696|0,i=a[e+4>>2],a[r+16>>2]=a[e>>2],a[r+20>>2]=i,A=0|Qt[a[a[A>>2]+20>>2]](A),e=r+8|0,a[e>>2]=0,a[e+4>>2]=0,a[r>>2]=0,a[r+4>>2]=0,Qt[a[a[A>>2]+80>>2]](A,r+32|0,r+16|0,r+112|0,r);break A;case 8:if(t=e+1244|0,n=a[t+4>>2],c=r+120|0,i=c,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+1260|0,n=a[t+4>>2],i=r+136|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+1276|0,n=a[t+4>>2],i=r+152|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+1292|0,n=a[t+4>>2],i=r+168|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,W=e+1236|0,i=W,t=a[i+4>>2],a[r+112>>2]=a[i>>2],a[r+116>>2]=t,U=e+1252|0,i=U,t=a[i+4>>2],a[r+128>>2]=a[i>>2],a[r+132>>2]=t,M=e+1268|0,i=M,t=a[i+4>>2],a[r+144>>2]=a[i>>2],a[r+148>>2]=t,S=e+1284|0,i=S,t=a[i+4>>2],a[r+160>>2]=a[i>>2],a[r+164>>2]=t,i=r+160|0,t=r+144|0,n=r+128|0,f?(f=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[f>>2]+64>>2]](f,r+112|0,w),v=e+1356|0,N=a[v+4>>2],f=i+8|0,a[f>>2]=a[v>>2],a[f+4>>2]=N,f=e+1348|0,v=a[f+4>>2],a[i>>2]=a[f>>2],a[i+4>>2]=v,f=e+1316|0,v=a[f+4>>2],a[n>>2]=a[f>>2],a[n+4>>2]=v,v=e+1324|0,N=a[v+4>>2],f=n+8|0,a[f>>2]=a[v>>2],a[f+4>>2]=N,f=e+1332|0,v=a[f+4>>2],a[t>>2]=a[f>>2],a[t+4>>2]=v,v=e+1340|0,N=a[v+4>>2],f=t+8|0,a[f>>2]=a[v>>2],a[f+4>>2]=N,f=e+1308|0,v=a[f+4>>2],a[c>>2]=a[f>>2],a[c+4>>2]=v,f=e+1300|0,c=a[f+4>>2],a[r+112>>2]=a[f>>2],a[r+116>>2]=c,f=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[f>>2]+64>>2]](f,r+112|0,w)):(f=e+1308|0,v=a[f+4>>2],a[c>>2]=a[f>>2],a[c+4>>2]=v,f=e+1316|0,c=a[f+4>>2],a[n>>2]=a[f>>2],a[n+4>>2]=c,c=e+1324|0,v=a[c+4>>2],f=n+8|0,a[f>>2]=a[c>>2],a[f+4>>2]=v,f=e+1332|0,c=a[f+4>>2],a[t>>2]=a[f>>2],a[t+4>>2]=c,c=e+1340|0,v=a[c+4>>2],f=t+8|0,a[f>>2]=a[c>>2],a[f+4>>2]=v,f=e+1348|0,c=a[f+4>>2],a[i>>2]=a[f>>2],a[i+4>>2]=c,c=e+1356|0,v=a[c+4>>2],f=i+8|0,a[f>>2]=a[c>>2],a[f+4>>2]=v,f=e+1300|0,c=a[f+4>>2],a[r+112>>2]=a[f>>2],a[r+116>>2]=c),!s)break A;f=a[U+4>>2],a[n>>2]=a[U>>2],a[n+4>>2]=f,f=a[M+4>>2],a[t>>2]=a[M>>2],a[t+4>>2]=f,f=a[S+4>>2],a[i>>2]=a[S>>2],a[i+4>>2]=f,c=W+8|0,v=a[c+4>>2],s=r+120|0,f=s,Z=a[c>>2],a[f>>2]=Z,a[f+4>>2]=v,v=U+8|0,N=a[v+4>>2],c=n+8|0,f=c,a[f>>2]=a[v>>2],a[f+4>>2]=N,N=M+8|0,O=a[N+4>>2],v=t+8|0,f=v,a[f>>2]=a[N>>2],a[f+4>>2]=O,O=S+8|0,P=a[O+4>>2],N=i+8|0,f=N,a[f>>2]=a[O>>2],a[f+4>>2]=P,f=a[W+4>>2],a[r+112>>2]=a[W>>2],a[r+116>>2]=f,a[r+96>>2]=Z,a[r+100>>2]=a[r+136>>2],a[r+108>>2]=0,a[r+104>>2]=a[r+152>>2],a[r+80>>2]=a[r+112>>2],a[r+84>>2]=a[r+128>>2],a[r+92>>2]=0,a[r+88>>2]=a[r+144>>2],b=C[e+1060>>2],l=C[e+1144>>2],u=C[e+1148>>2],k=C[e+1056>>2],Z=0|Qt[a[a[A>>2]+20>>2]](A),f=r+72|0,a[f>>2]=0,a[f+4>>2]=0,a[r+64>>2]=0,a[r+68>>2]=0,f=e+1348|0,Qt[a[a[Z>>2]+72>>2]](Z,f,r+96|0,r+80|0,_(w*_(.8999999761581421)),k,b,l,u,r- -64|0,_(10),1),a[r+92>>2]=0,Z=r+148|0,k=C[Z>>2],a[r+88>>2]=a[Z>>2],Z=r+132|0,b=C[Z>>2],a[r+84>>2]=a[Z>>2],l=C[r+116>>2],a[r+80>>2]=a[r+116>>2],g=C[e+1368>>2],B=C[e+1372>>2],Z=e+1308|0,O=a[Z+4>>2],a[s>>2]=a[Z>>2],a[s+4>>2]=O,s=e+1316|0,Z=a[s+4>>2],a[n>>2]=a[s>>2],a[n+4>>2]=Z,s=e+1324|0,Z=a[s+4>>2],a[c>>2]=a[s>>2],a[c+4>>2]=Z,s=e+1332|0,c=a[s+4>>2],a[t>>2]=a[s>>2],a[t+4>>2]=c,s=e+1340|0,c=a[s+4>>2],a[v>>2]=a[s>>2],a[v+4>>2]=c,s=a[f+4>>2],a[i>>2]=a[f>>2],a[i+4>>2]=s,s=e+1356|0,c=a[s+4>>2],a[N>>2]=a[s>>2],a[N+4>>2]=c,s=e+1300|0,c=a[s+4>>2],a[r+112>>2]=a[s>>2],a[r+116>>2]=c,u=dr(B),B=Cr(B),C[r+68>>2]=_(B*b)-_(u*l),d=dr(g),g=Cr(g),C[r+72>>2]=_(_(_(B*d)*l)+_(_(d*u)*b))+_(g*k),C[r+64>>2]=_(_(_(g*B)*l)+_(_(g*u)*b))-_(d*k),a[r+60>>2]=0,C[r+56>>2]=-C[r+144>>2],C[r+52>>2]=-C[r+128>>2],C[r+48>>2]=-C[r+112>>2],b=C[e+968>>2],l=C[e+972>>2],b>l?(s=0|Qt[a[a[A>>2]+20>>2]](A),c=r+40|0,a[c>>2]=0,a[c+4>>2]=0,a[r+32>>2]=0,a[r+36>>2]=0,Qt[a[a[s>>2]+68>>2]](s,f,r+48|0,r- -64|0,w,w,_(-3.1415927410125732),_(3.1415927410125732),r+32|0,0,_(10))):b<l&&(s=0|Qt[a[a[A>>2]+20>>2]](A),c=r+40|0,a[c>>2]=0,a[c+4>>2]=0,a[r+32>>2]=0,a[r+36>>2]=0,Qt[a[a[s>>2]+68>>2]](s,f,r+48|0,r- -64|0,w,w,b,l,r+32|0,1,_(10))),f=a[U+4>>2],a[n>>2]=a[U>>2],a[n+4>>2]=f,f=a[M+4>>2],a[t>>2]=a[M>>2],a[t+4>>2]=f,f=a[S+4>>2],a[i>>2]=a[S>>2],a[i+4>>2]=f,s=W+8|0,c=a[s+4>>2],f=r+120|0,a[f>>2]=a[s>>2],a[f+4>>2]=c,f=U+8|0,U=a[f+4>>2],n=n+8|0,a[n>>2]=a[f>>2],a[n+4>>2]=U,n=M+8|0,f=a[n+4>>2],t=t+8|0,a[t>>2]=a[n>>2],a[t+4>>2]=f,t=S+8|0,n=a[t+4>>2],i=i+8|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,i=a[W+4>>2],a[r+112>>2]=a[W>>2],a[r+116>>2]=i,t=e+688|0,n=a[t+4>>2],i=r+40|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,i=e+680|0,t=a[i+4>>2],a[r+32>>2]=a[i>>2],a[r+36>>2]=t,t=e+704|0,n=a[t+4>>2],i=r+24|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,e=e+696|0,i=a[e+4>>2],a[r+16>>2]=a[e>>2],a[r+20>>2]=i,A=0|Qt[a[a[A>>2]+20>>2]](A),e=r+8|0,a[e>>2]=0,a[e+4>>2]=0,a[r>>2]=0,a[r+4>>2]=0,Qt[a[a[A>>2]+80>>2]](A,r+32|0,r+16|0,r+112|0,r);break A;case 4:case 6:case 7:break A;case 3:}t=e+832|0,n=a[t+4>>2],W=r+120|0,i=W,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+848|0,n=a[t+4>>2],i=r+136|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+864|0,n=a[t+4>>2],i=r+152|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+880|0,n=a[t+4>>2],i=r+168|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,U=e+824|0,i=U,t=a[i+4>>2],a[r+112>>2]=a[i>>2],a[r+116>>2]=t,i=e+840|0,t=a[i+4>>2],a[r+128>>2]=a[i>>2],a[r+132>>2]=t,i=e+856|0,t=a[i+4>>2],a[r+144>>2]=a[i>>2],a[r+148>>2]=t,i=e+872|0,t=a[i+4>>2],a[r+160>>2]=a[i>>2],a[r+164>>2]=t,i=r+160|0,t=r+144|0,n=r+128|0,f?(f=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[f>>2]+64>>2]](f,r+112|0,w),M=e+944|0,S=a[M+4>>2],f=i+8|0,a[f>>2]=a[M>>2],a[f+4>>2]=S,f=e+936|0,M=a[f+4>>2],a[i>>2]=a[f>>2],a[i+4>>2]=M,i=e+904|0,f=a[i+4>>2],a[n>>2]=a[i>>2],a[n+4>>2]=f,i=n+8|0,n=e+912|0,f=a[n+4>>2],a[i>>2]=a[n>>2],a[i+4>>2]=f,i=e+920|0,n=a[i+4>>2],a[t>>2]=a[i>>2],a[t+4>>2]=n,i=t+8|0,t=e+928|0,n=a[t+4>>2],a[i>>2]=a[t>>2],a[i+4>>2]=n,i=e+896|0,t=a[i+4>>2],a[W>>2]=a[i>>2],a[W+4>>2]=t,i=e+888|0,t=a[i+4>>2],a[r+112>>2]=a[i>>2],a[r+116>>2]=t,i=0|Qt[a[a[A>>2]+20>>2]](A),Qt[a[a[i>>2]+64>>2]](i,r+112|0,w)):(f=e+896|0,M=a[f+4>>2],a[W>>2]=a[f>>2],a[W+4>>2]=M,f=e+904|0,W=a[f+4>>2],a[n>>2]=a[f>>2],a[n+4>>2]=W,f=e+912|0,W=a[f+4>>2],n=n+8|0,a[n>>2]=a[f>>2],a[n+4>>2]=W,n=e+920|0,f=a[n+4>>2],a[t>>2]=a[n>>2],a[t+4>>2]=f,n=e+928|0,f=a[n+4>>2],t=t+8|0,a[t>>2]=a[n>>2],a[t+4>>2]=f,t=e+936|0,n=a[t+4>>2],a[i>>2]=a[t>>2],a[i+4>>2]=n,t=e+944|0,n=a[t+4>>2],i=i+8|0,a[i>>2]=a[t>>2],a[i+4>>2]=n,i=e+888|0,t=a[i+4>>2],a[r+112>>2]=a[i>>2],a[r+116>>2]=t),s&&(t=o[e+180|0],i=t?U:e+888|0,b=C[i+48>>2],m=C[i+8>>2],R=C[i+4>>2],n=a[i+4>>2],l=C[i+52>>2],h=C[i+24>>2],u=C[i+16>>2],f=a[i+16>>2],G=C[i+20>>2],W=a[i+20>>2],k=C[i+56>>2],d=C[i+40>>2],g=C[i+32>>2],U=a[i+32>>2],y=C[i+36>>2],M=a[i+36>>2],i=(t?824:888)+e|0,B=C[i>>2],t=a[i>>2],a[r+108>>2]=0,V=_(d*_(0)),y=_(y*_(0)),d=C[e+184>>2],C[r+104>>2]=k+_(V+_(y+_(d*g))),h=_(h*_(0)),G=_(G*_(0)),C[r+100>>2]=l+_(h+_(G+_(d*u))),m=_(m*_(0)),R=_(R*_(0)),C[r+96>>2]=b+_(m+_(R+_(d*B))),a[r+92>>2]=0,Q=k,k=C[e+188>>2],C[r+88>>2]=Q+_(V+_(y+_(k*g))),C[r+84>>2]=l+_(h+_(G+_(k*u))),C[r+80>>2]=b+_(m+_(R+_(k*B))),i=0|Qt[a[a[A>>2]+20>>2]](A),S=r+72|0,a[S>>2]=0,a[S+4>>2]=0,a[r+64>>2]=0,a[r+68>>2]=0,Qt[a[a[i>>2]+16>>2]](i,r+96|0,r+80|0,r- -64|0),a[r+76>>2]=0,a[r+72>>2]=U,a[r+68>>2]=f,a[r+64>>2]=t,a[r+60>>2]=0,a[r+56>>2]=M,a[r+52>>2]=W,a[r+48>>2]=n,b=C[e+196>>2],l=C[e+192>>2],A=0|Qt[a[a[A>>2]+20>>2]](A),i=r+40|0,a[i>>2]=0,a[i+4>>2]=0,a[r+32>>2]=0,a[r+36>>2]=0,Qt[a[a[A>>2]+68>>2]](A,e+936|0,r- -64|0,r+48|0,w,w,l,b,r+32|0,1,_(10)))}Y=r+176|0},function(A){A|=0;var e=0,r=0,i=0,f=0,t=0;if(e=a[A+248>>2],(0|e)>=1)for(;;){A:{e:if(i=a[a[A+256>>2]+r>>2],f=a[i+220>>2]+-2|0,!(f>>>0>3))switch(f-1|0){case 0:case 1:break e;default:break A}Ti(i),e=a[A+248>>2]}if(r=r+4|0,t=t+1|0,!((0|t)<(0|e)))break}},Rr,function(A,e){A|=0,e=_(e);var r,i=0,f=0,t=0;if(r=Y-16|0,Y=r,Lr(r+8|0,23392),a[A+296>>2]>=1)for(;f=a[a[A+304>>2]+i>>2],Qt[a[a[f>>2]+8>>2]](f,A,e),i=i+4|0,t=t+1|0,(0|t)<a[A+296>>2];);qr(),Y=r+16|0},function(A){A|=0;var e=0;return a[A>>2]=23768,e=a[A+80>>2],e&&(o[A+84|0]&&CA(e),a[A+80>>2]=0),a[A+80>>2]=0,a[A+72>>2]=0,a[A+76>>2]=0,f[A+84|0]=1,e=a[A+60>>2],e&&(o[A- -64|0]&&CA(e),a[A+60>>2]=0),a[A+60>>2]=0,a[A+52>>2]=0,a[A+56>>2]=0,f[A- -64|0]=1,e=a[A+40>>2],e&&(o[A+44|0]&&CA(e),a[A+40>>2]=0),a[A+40>>2]=0,a[A+32>>2]=0,a[A+36>>2]=0,f[A+44|0]=1,0|A},function(A){A|=0;var e=0;a[A>>2]=23768,e=a[A+80>>2],e&&(o[A+84|0]&&CA(e),a[A+80>>2]=0),a[A+80>>2]=0,a[A+72>>2]=0,a[A+76>>2]=0,f[A+84|0]=1,e=a[A+60>>2],e&&(o[A- -64|0]&&CA(e),a[A+60>>2]=0),a[A+60>>2]=0,a[A+52>>2]=0,a[A+56>>2]=0,f[A- -64|0]=1,e=a[A+40>>2],!e|!o[A+44|0]||CA(e),$(A)},function(A,e,r,i,t,n){A|=0,e|=0,r|=0,i|=0,t|=0,n|=0;var c=0,b=0,l=0,u=0,s=0,k=0,v=0,d=0;if(!((0|n)>=0))return n=a[A+8>>2],void _(Qt[a[a[n>>2]+12>>2]](n,e,r,i,t,a[A+12>>2],a[A+16>>2],a[A+4>>2],a[A+20>>2],a[A+24>>2]));u=a[A+16>>2];A:{if((0|u)>=1)for(k=a[A+12>>2];;){if(l=a[k>>2],c=a[a[l+28>>2]+208>>2],(0|c)<=-1&&(c=a[a[l+32>>2]+208>>2]),(0|c)==(0|n))break A;if(k=k+4|0,b=b+1|0,!((0|b)<(0|u)))break}k=0}if((0|b)<(0|u))for(l=u-b|0,c=a[A+12>>2]+(b<<2)|0;u=a[c>>2],b=a[a[u+28>>2]+208>>2],(0|b)<=-1&&(b=a[a[u+32>>2]+208>>2]),c=c+4|0,v=((0|n)==(0|b))+v|0,l=l+-1|0,l;);if(n=a[A+4>>2],a[n+80>>2]<2)c=a[A+8>>2],_(Qt[a[a[c>>2]+12>>2]](c,e,r,i,t,k,v,n,a[A+20>>2],a[A+24>>2]));else{if(!((0|r)<1))for(c=a[A+36>>2],b=a[A+32>>2];;){if(d=(s<<2)+e|0,(0|c)==(0|b))if(u=c?c<<1:1,(0|c)>=(0|u))n=c;else{if(u?(l=dA(u<<2),n=a[A+32>>2]):(l=0,n=c),(0|n)>=1)for(c=0,b=n;a[c+l>>2]=a[a[A+40>>2]+c>>2],c=c+4|0,b=b+-1|0,b;);c=a[A+40>>2],c&&(o[A+44|0]&&(CA(c),n=a[A+32>>2]),a[A+40>>2]=0),a[A+40>>2]=l,f[A+44|0]=1,a[A+36>>2]=u,c=u}else n=b;if(b=n+1|0,a[A+32>>2]=b,a[a[A+40>>2]+(n<<2)>>2]=a[d>>2],s=s+1|0,(0|s)==(0|r))break}if((0|t)>=1)for(c=a[A+56>>2],b=a[A+52>>2],s=0;;){if(r=(s<<2)+i|0,(0|c)==(0|b))if(e=c?c<<1:1,(0|c)>=(0|e))n=c;else{if(e?(l=dA(e<<2),n=a[A+52>>2]):(l=0,n=c),(0|n)>=1)for(c=0,b=n;a[c+l>>2]=a[a[A+60>>2]+c>>2],c=c+4|0,b=b+-1|0,b;);c=a[A+60>>2],c&&(o[A+64|0]&&(CA(c),n=a[A+52>>2]),a[A+60>>2]=0),a[A+60>>2]=l,f[A+64|0]=1,a[A+56>>2]=e,c=e}else n=b;if(b=n+1|0,a[A+52>>2]=b,a[a[A+60>>2]+(n<<2)>>2]=a[r>>2],s=s+1|0,(0|s)==(0|t))break}if(v)for(c=a[A+76>>2],b=a[A+72>>2],s=0;;){if(r=(s<<2)+k|0,(0|c)==(0|b))if(e=c?c<<1:1,(0|c)>=(0|e))n=c;else{if(e?(l=dA(e<<2),n=a[A+72>>2]):(l=0,n=c),(0|n)>=1)for(c=0,b=n;a[c+l>>2]=a[a[A+80>>2]+c>>2],c=c+4|0,b=b+-1|0,b;);i=a[A+80>>2],i&&(o[A+84|0]&&(CA(i),n=a[A+72>>2]),a[A+80>>2]=0),a[A+80>>2]=l,f[A+84|0]=1,a[A+76>>2]=e,c=e}else n=b;if(b=n+1|0,a[A+72>>2]=b,a[a[A+80>>2]+(n<<2)>>2]=a[r>>2],s=s+1|0,(0|v)==(0|s))break}else b=a[A+72>>2];(a[A+52>>2]+b|0)>a[a[A+4>>2]+80>>2]&&Uf(A)}},ve,function(A,e){A|=0,e|=0;var r,i,f=0;return r=a[e>>2],i=a[A+84>>2],!(a[e+8>>2]&a[A+8>>2])|!(a[A+12>>2]&a[e+4>>2])|(0|r)==(0|i)||(A=a[A+96>>2],f=0|Qt[a[a[A>>2]+28>>2]](A,i,r)),0|f},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=_(0),t=_(0),n=_(0),c=0,b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0);return f=_(1),i=a[e>>2],(0|i)==a[A+84>>2]|4&o[i+204|0]|_(_(_(_(C[A+32>>2]-C[A+16>>2])*C[e+8>>2])+_(_(C[A+36>>2]-C[A+20>>2])*C[e+12>>2]))+_(_(C[A+40>>2]-C[A+24>>2])*C[e+16>>2]))>=_(-C[A+88>>2])||(a[A+80>>2]=i,a[A+4>>2]=a[e+40>>2],r?(r=e+8|0,i=a[r+4>>2],a[A+48>>2]=a[r>>2],a[A+52>>2]=i,r=r+8|0,c=a[r+4>>2],i=A+56|0,a[i>>2]=a[r>>2],a[i+4>>2]=c):(b=C[i+12>>2],l=C[i+8>>2],u=C[i+28>>2],s=C[i+20>>2],k=C[i+24>>2],v=C[i+44>>2],d=C[i+36>>2],g=C[i+40>>2],B=C[i+4>>2],f=C[e+16>>2],t=C[e+8>>2],n=C[e+12>>2],a[A+60>>2]=0,C[A+56>>2]=_(_(t*d)+_(n*g))+_(f*v),C[A+52>>2]=_(_(t*s)+_(n*k))+_(f*u),C[A+48>>2]=_(_(B*t)+_(l*n))+_(b*f)),r=a[e+28>>2],a[A+64>>2]=a[e+24>>2],a[A+68>>2]=r,r=e+32|0,i=a[r+4>>2],A=A+72|0,a[A>>2]=a[r>>2],a[A+4>>2]=i,f=C[e+40>>2]),_(f)},function(A){var e;return A|=0,a[A>>2]=23960,e=a[A+336>>2],e&&(o[A+340|0]&&CA(e),a[A+336>>2]=0),a[A+336>>2]=0,a[A+328>>2]=0,a[A+332>>2]=0,f[A+340|0]=1,Ze(A),0|A},function(A){var e;A|=0,a[A>>2]=23960,e=a[A+336>>2],e&&(o[A+340|0]&&CA(e),a[A+336>>2]=0),a[A+336>>2]=0,a[A+328>>2]=0,a[A+332>>2]=0,f[A+340|0]=1,Ze(A),CA(A)},function(A,e,r){A|=0,e|=0,r|=0;var i,t=0,n=0,c=0;i=a[e>>2],r=a[A+328>>2];A:{e:if(!((0|r)<1)){for(e=a[A+336>>2],t=r;;){if((0|i)!=a[e>>2]){if(e=e+4|0,t=t+-1|0,t)continue;break e}break}if(t)break A}if(a[A+332>>2]==(0|r)&&(n=r?r<<1:1,!((0|r)>=(0|n)))){if(n&&(c=dA(n<<2),r=a[A+328>>2]),(0|r)>=1)for(e=0,t=r;a[e+c>>2]=a[a[A+336>>2]+e>>2],e=e+4|0,t=t+-1|0,t;);e=a[A+336>>2],e&&(o[A+340|0]&&(CA(e),r=a[A+328>>2]),a[A+336>>2]=0),a[A+336>>2]=c,a[A+332>>2]=n,f[A+340|0]=1}a[A+328>>2]=r+1,a[a[A+336>>2]+(r<<2)>>2]=i}},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f=0,t=0;r=a[A+328>>2];A:if(!((0|r)<1)){for(t=a[e>>2],i=0,f=a[A+336>>2],e=f;;){if((0|t)!=a[e>>2]){if(e=e+4|0,i=i+1|0,(0|i)!=(0|r))continue;break A}break}(0|i)>=(0|r)||(i=A,A=r+-1|0,a[i+328>>2]=A,a[e>>2]=a[(A<<2)+f>>2])}},function(A){A|=0;var e=0;return a[A>>2]=24004,e=a[A+344>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+344>>2]),a[A>>2]=23960,e=a[A+336>>2],e&&(o[A+340|0]&&CA(e),a[A+336>>2]=0),a[A+336>>2]=0,a[A+328>>2]=0,a[A+332>>2]=0,f[A+340|0]=1,Ze(A),0|A},function(A){A|=0;var e=0;a[A>>2]=24004,e=a[A+344>>2],Qt[a[a[e>>2]>>2]](e),CA(a[A+344>>2]),a[A>>2]=23960,e=a[A+336>>2],e&&(o[A+340|0]&&CA(e),a[A+336>>2]=0),a[A+336>>2]=0,a[A+328>>2]=0,a[A+332>>2]=0,f[A+340|0]=1,Ze(A),CA(A)},function(A,e,r){A|=0,e|=0,r|=0;var i,t=0,n=0,c=0,b=0,l=0;r=r||a[A+188>>2],i=a[e>>2],t=a[A+328>>2];A:{e:if(!((0|t)<1)){for(c=a[A+336>>2],n=t;;){if((0|i)!=a[c>>2]){if(c=c+4|0,n=n+-1|0,n)continue;break e}break}if(n)break A}if(a[A+332>>2]==(0|t)&&(b=t?t<<1:1,!((0|t)>=(0|b)))){if(b&&(l=dA(b<<2),t=a[A+328>>2]),(0|t)>=1)for(c=0,n=t;a[c+l>>2]=a[a[A+336>>2]+c>>2],c=c+4|0,n=n+-1|0,n;);n=a[A+336>>2],n&&(o[A+340|0]&&(CA(n),t=a[A+328>>2]),a[A+336>>2]=0),a[A+336>>2]=l,a[A+332>>2]=b,f[A+340|0]=1}a[a[A+336>>2]+(t<<2)>>2]=i,a[A+328>>2]=t+1,A=a[A+344>>2],Qt[a[a[A>>2]+8>>2]](A,r,e)}},function(A,e,r,i){A|=0,e|=0,r|=0,i|=0;var f,t,n=0,o=0,c=0;t=a[e>>2],i=i||a[A+188>>2],f=a[A+328>>2];A:if(!((0|f)<1)){for(c=a[A+336>>2],n=c;;){if((0|t)!=a[n>>2]){if(n=n+4|0,o=o+1|0,(0|o)!=(0|f))continue;break A}break}(0|o)>=(0|f)||(o=n,n=f+-1|0,a[o>>2]=a[(n<<2)+c>>2],a[A+328>>2]=n,A=a[A+344>>2],Qt[a[a[A>>2]+12>>2]](A,i,e,r))}},function(A){var e;return A|=0,a[A>>2]=24116,e=a[A+212>>2],e&&(o[A+216|0]&&CA(e),a[A+212>>2]=0),a[A+212>>2]=0,a[A+204>>2]=0,a[A+208>>2]=0,f[A+216|0]=1,0|A},function(A){var e;A|=0,a[A>>2]=24116,e=a[A+212>>2],e&&(o[A+216|0]&&CA(e),a[A+212>>2]=0),a[A+212>>2]=0,a[A+204>>2]=0,a[A+208>>2]=0,f[A+216|0]=1,CA(A)},function(A,e,r){A|=0,e|=0,r=_(r),Qt[a[a[A>>2]+32>>2]](A,e),Qt[a[a[A>>2]+36>>2]](A,e,r)},Rr,function(A,e){A|=0,e|=0;var r,i=_(0),t=_(0),n=_(0),o=_(0),c=0;f[A+251|0]=1,c=a[e+4>>2],a[A+68>>2]=a[e>>2],a[A+72>>2]=c,e=e+8|0,r=a[e+4>>2],c=A+76|0,a[c>>2]=a[e>>2],a[c+4>>2]=r,i=C[A+68>>2],t=C[A+72>>2],n=C[c>>2],o=_(y(_(_(_(i*i)+_(t*t))+_(n*n)))),o>_(1.1920928955078125e-7)?(o=_(_(1)/o),n=_(n*o),t=_(t*o),i=_(i*o),e=a[A+80>>2]):(i=_(0),t=_(0),n=_(0),e=0),C[A+84>>2]=i,a[A+96>>2]=e,C[A+92>>2]=n,C[A+88>>2]=t},function(A,e,r){A|=0,e|=0,r=_(r);var i,t=0,n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=0;f[A+251|0]=0,t=a[e+4>>2],a[A+68>>2]=a[e>>2],a[A+72>>2]=t,e=e+8|0,i=a[e+4>>2],t=A+76|0,a[t>>2]=a[e>>2],a[t+4>>2]=i,o=C[A+68>>2],c=C[A+72>>2],b=C[t>>2],l=_(y(_(_(_(o*o)+_(c*c))+_(b*b)))),l>_(1.1920928955078125e-7)&&(n=_(_(1)/l),u=_(b*n),s=_(c*n),n=_(o*n),k=a[A+80>>2]),C[A+84>>2]=n,a[A+96>>2]=k,C[A+92>>2]=u,C[A+88>>2]=s,C[A+252>>2]=C[A+252>>2]+r},function(A,e){A|=0,e|=0;var r,i=0,f=0,n=0,o=0,c=0;if(a[A+68>>2]=0,a[A+72>>2]=0,r=A+76|0,a[r>>2]=0,a[r+4>>2]=0,a[A+252>>2]=0,t[A+248>>1]=0,a[A+20>>2]=0,a[A+24>>2]=0,A=a[a[A+8>>2]+344>>2],a[4+(0|Qt[a[a[A>>2]+28>>2]](A))>>2]>=1)for(;f=A,n=a[a[12+(0|Qt[a[a[A>>2]+28>>2]](A))>>2]>>2],o=a[a[12+(0|Qt[a[a[A>>2]+28>>2]](A))>>2]+4>>2],c=a[e+24>>2],i=a[a[A>>2]+12>>2],Qt[i](0|f,0|n,0|o,0|c),a[4+(0|Qt[a[a[A>>2]+28>>2]](A))>>2]>0;);},function(A,e){A|=0,e|=0;var r,i,f=0,t=0;t=e+8|0,r=a[t>>2],t=a[t+4>>2],i=a[e>>2],e=a[e+4>>2],A=a[A+8>>2],f=A+44|0,a[f>>2]=1065353216,a[f+4>>2]=0,f=A+36|0,a[f>>2]=0,a[f+4>>2]=0,a[A+24>>2]=1065353216,f=A+28|0,a[f>>2]=0,a[f+4>>2]=0,f=A+16|0,a[f>>2]=0,a[f+4>>2]=0,a[A+4>>2]=1065353216,f=A+8|0,a[f>>2]=0,a[f+4>>2]=0,f=A+60|0,a[f>>2]=r,a[f+4>>2]=t,t=A+52|0,a[t>>2]=i,a[t+4>>2]=e,a[A+304>>2]=a[A+304>>2]+1},function(A,e){A|=0,e|=0;var r,i=0,f=0,t=0,n=0,o=0;e=Y-16|0,Y=e,t=a[A+8>>2],i=t+52|0,n=a[i+4>>2],a[A+132>>2]=a[i>>2],a[A+136>>2]=n,f=t+60|0,o=a[f+4>>2],n=A+140|0,a[n>>2]=a[f>>2],a[n+4>>2]=o,n=a[i>>2],i=a[i+4>>2],o=a[f+4>>2],r=A+160|0,a[r>>2]=a[f>>2],a[r+4>>2]=o,a[A+152>>2]=n,a[A+156>>2]=i,tt(t+4|0,e),f=e+8|0,n=a[f+4>>2],t=A+176|0,i=t,a[i>>2]=a[f>>2],a[i+4>>2]=n,i=a[e+4>>2],a[A+168>>2]=a[e>>2],a[A+172>>2]=i,f=a[t+4>>2],i=A+192|0,a[i>>2]=a[t>>2],a[i+4>>2]=f,t=a[A+172>>2],a[A+184>>2]=a[A+168>>2],a[A+188>>2]=t,Y=e+16|0},function(A,e,r){A|=0,e|=0,r=_(r);var i,t=0,n=0,c=0,b=_(0),l=0,u=_(0),s=_(0),k=0,v=_(0),d=_(0),g=_(0),B=0,R=0,Q=_(0),h=_(0),G=_(0),p=_(0),F=0,W=_(0),w=0,D=0,E=0,Z=0,V=0,N=0,I=0,J=0,x=0;i=Y-80|0,Y=i,b=C[A+100>>2],u=C[A+104>>2],v=C[A+108>>2],s=_(_(_(b*b)+_(u*u))+_(v*v)),s>_(0)&&(s=Vi(_(_(1)-C[A+244>>2]),r),v=_(v*s),C[A+108>>2]=v,u=_(u*s),C[A+104>>2]=u,b=_(b*s),C[A+100>>2]=b,s=_(_(_(b*b)+_(u*u))+_(v*v))),s>_(0)&&(t=a[A+8>>2],c=t+12|0,l=a[c>>2],B=a[c+4>>2],k=a[t+4>>2],R=a[t+8>>2],F=t+28|0,w=a[F+4>>2],c=i+40|0,n=c,a[n>>2]=a[F>>2],a[n+4>>2]=w,n=i+24|0,a[n>>2]=l,a[n+4>>2]=B,l=t+36|0,F=a[l>>2],w=a[l+4>>2],l=t+20|0,E=a[l>>2],Z=a[l+4>>2],l=t+44|0,V=a[l>>2],N=a[l+4>>2],D=t+60|0,I=a[D+4>>2],B=i+72|0,l=B,a[l>>2]=a[D>>2],a[l+4>>2]=I,l=i+56|0,a[l>>2]=V,a[l+4>>2]=N,a[i+16>>2]=k,a[i+20>>2]=R,a[i+32>>2]=E,a[i+36>>2]=Z,t=t+52|0,k=a[t+4>>2],a[i+64>>2]=a[t>>2],a[i+68>>2]=k,a[i+48>>2]=F,a[i+52>>2]=w,g=_(y(s)),Q=_(_(g*r)*_(.5)),h=dr(Q),tt(i+16|0,i),s=C[i+12>>2],G=C[i>>2],Q=Cr(Q),d=b,b=_(_(1)/g),g=_(d*b),d=_(v*b),b=_(u*b),u=_(h/_(y(_(_(d*d)+_(_(g*g)+_(b*b)))))),v=_(g*u),g=_(b*u),h=C[i+8>>2],d=_(d*u),p=C[i+4>>2],b=_(_(_(_(G*Q)+_(s*v))+_(g*h))-_(d*p)),u=_(_(_(_(Q*s)-_(v*G))-_(g*p))-_(d*h)),W=_(_(_(_(d*s)+_(Q*h))+_(v*p))-_(g*G)),v=_(_(_(d*G)+_(_(g*s)+_(Q*p)))-_(v*h)),s=_(_(2)/_(_(u*u)+_(_(W*W)+_(_(b*b)+_(v*v))))),G=_(W*s),g=_(b*G),Q=_(v*s),h=_(u*Q),C[n>>2]=g+h,a[i+60>>2]=0,a[i+44>>2]=0,d=_(v*G),s=_(b*s),p=_(u*s),C[i+52>>2]=d+p,C[c>>2]=d-p,s=_(b*s),v=_(v*Q),C[l>>2]=_(1)-_(s+v),d=s,s=_(W*G),C[i+36>>2]=_(1)-_(d+s),a[i+28>>2]=0,C[i+48>>2]=g-h,b=_(b*Q),u=_(u*G),C[i+32>>2]=b+u,C[i+20>>2]=b-u,R=a[n+4>>2],t=a[A+8>>2],k=t+12|0,a[k>>2]=a[n>>2],a[k+4>>2]=R,C[i+16>>2]=_(1)-_(v+s),n=a[i+20>>2],a[t+4>>2]=a[i+16>>2],a[t+8>>2]=n,k=a[i+36>>2],n=t+20|0,a[n>>2]=a[i+32>>2],a[n+4>>2]=k,k=a[c+4>>2],n=t+28|0,a[n>>2]=a[c>>2],a[n+4>>2]=k,a[t+304>>2]=a[t+304>>2]+1,n=a[i+52>>2],c=t+36|0,a[c>>2]=a[i+48>>2],a[c+4>>2]=n,n=a[l+4>>2],c=t+44|0,a[c>>2]=a[l>>2],a[c+4>>2]=n,n=a[B+4>>2],c=t+60|0,a[c>>2]=a[B>>2],a[c+4>>2]=n,c=a[i+68>>2],t=t+52|0,a[t>>2]=a[i+64>>2],a[t+4>>2]=c,t=a[A+8>>2],c=t+52|0,n=c,l=a[n+4>>2],a[A+132>>2]=a[n>>2],a[A+136>>2]=l,n=t+60|0,k=a[n+4>>2],l=A+140|0,a[l>>2]=a[n>>2],a[l+4>>2]=k,l=a[c>>2],c=a[c+4>>2],k=a[n+4>>2],B=A+160|0,a[B>>2]=a[n>>2],a[B+4>>2]=k,a[A+152>>2]=l,a[A+156>>2]=c,tt(t+4|0,i),n=i+8|0,l=a[n+4>>2],t=A+176|0,a[t>>2]=a[n>>2],a[t+4>>2]=l,c=a[i+4>>2],a[A+168>>2]=a[i>>2],a[A+172>>2]=c,n=a[t+4>>2],c=A+192|0,a[c>>2]=a[t>>2],a[c+4>>2]=n,t=a[A+172>>2],a[A+184>>2]=a[A+168>>2],a[A+188>>2]=t),C[A+252>>2]<=_(0)&&!o[A+251|0]||(J=A,x=0|Qt[a[a[A>>2]+48>>2]](A),f[J+248|0]=x,u=C[A+72>>2],v=C[A+68>>2],s=C[A+76>>2],b=Vi(_(_(1)-C[A+240>>2]),r),_(_(_(v*v)+_(u*u))+_(s*s))>_(0)&&(C[A+76>>2]=s*b,C[A+72>>2]=u*b,C[A+68>>2]=v*b),b=_(_(C[A+20>>2]*b)-_(C[A+52>>2]*r)),C[A+20>>2]=b,b>_(0)&&(u=C[A+32>>2],b>u&&(C[A+20>>2]=u,b=u)),b<_(0)&&(u=_(m(C[A+28>>2])),_(m(b))>u&&(b=_(-u),C[A+20>>2]=b)),C[A+24>>2]=b*r,t=a[A+8>>2],n=t+12|0,l=a[n+4>>2],c=i+24|0,a[c>>2]=a[n>>2],a[c+4>>2]=l,n=t+28|0,l=a[n+4>>2],c=i+40|0,a[c>>2]=a[n>>2],a[c+4>>2]=l,n=t+44|0,l=a[n+4>>2],c=i+56|0,a[c>>2]=a[n>>2],a[c+4>>2]=l,n=t+60|0,l=a[n+4>>2],c=i+72|0,a[c>>2]=a[n>>2],a[c+4>>2]=l,c=a[t+8>>2],a[i+16>>2]=a[t+4>>2],a[i+20>>2]=c,c=t+20|0,n=a[c+4>>2],a[i+32>>2]=a[c>>2],a[i+36>>2]=n,c=t+36|0,n=a[c+4>>2],a[i+48>>2]=a[c>>2],a[i+52>>2]=n,t=t+52|0,c=a[t+4>>2],a[i+64>>2]=a[t>>2],a[i+68>>2]=c,function(A,e){var r,i,t,n=0,c=0,b=_(0),l=0,u=0,s=0,k=_(0),v=_(0),d=_(0),g=0,B=_(0),m=_(0),R=0,Q=_(0),h=0,G=0,y=_(0),p=_(0),F=0,W=_(0),w=_(0),D=_(0),E=_(0);r=Y-240|0,Y=r,C[A+20>>2]<_(0)&&(p=C[A+60>>2],c=a[A+60>>2]),F=r+200|0,n=F,a[n>>2]=0,a[n+4>>2]=0,G=r+196|0,a[G>>2]=1065353216,s=r+216|0,n=s,a[n>>2]=1065353216,a[n+4>>2]=0,g=r+136|0,n=g,a[n>>2]=0,a[n+4>>2]=0,h=r+132|0,a[h>>2]=1065353216,i=r+152|0,n=i,a[n>>2]=1065353216,a[n+4>>2]=0,n=A+140|0,R=a[n+4>>2],u=r+232|0,a[u>>2]=a[n>>2],a[u+4>>2]=R,a[r+180>>2]=0,a[r+184>>2]=0,a[r+176>>2]=1065353216,a[r+188>>2]=0,a[r+192>>2]=0,a[r+208>>2]=0,a[r+212>>2]=0,a[r+116>>2]=0,a[r+120>>2]=0,a[r+112>>2]=1065353216,a[r+124>>2]=0,a[r+128>>2]=0,a[r+144>>2]=0,a[r+148>>2]=0,u=a[A+136>>2],a[r+224>>2]=a[A+132>>2],a[r+228>>2]=u,w=C[A+256>>2],b=C[A+24>>2],b=b>_(0)?b:_(0),C[A+152>>2]=_(_(p*w)+C[A+132>>2])+_(C[A+272>>2]*b),D=C[A+260>>2],C[A+156>>2]=_(_(p*D)+C[A+136>>2])+_(b*C[A+276>>2]),a[A+164>>2]=0,u=A+160|0,E=C[A+264>>2],C[u>>2]=_(_(p*E)+C[n>>2])+_(b*C[A+280>>2]),l=a[A+156>>2],t=a[A+152>>2],a[A+132>>2]=t,a[A+136>>2]=l,R=a[u+4>>2],u=a[u>>2],a[n>>2]=u,a[n+4>>2]=R,n=r+168|0,a[n>>2]=u,a[n+4>>2]=R,a[r+160>>2]=t,a[r+164>>2]=l,v=C[A+180>>2],B=C[A+176>>2],k=C[A+172>>2],b=C[A+168>>2],a[r+220>>2]=0,a[r+204>>2]=0,Q=_(_(2)/_(_(_(_(b*b)+_(k*k))+_(B*B))+_(v*v))),y=_(B*Q),d=_(k*y),m=_(b*Q),W=_(v*m),C[r+212>>2]=d+W,C[F>>2]=d-W,d=_(b*m),m=k,k=_(k*Q),Q=_(m*k),C[s>>2]=_(1)-_(d+Q),B=_(B*y),C[G>>2]=_(1)-_(d+B),a[r+188>>2]=0,d=_(b*y),m=_(v*k),C[r+208>>2]=d-m,b=_(b*k),v=_(v*y),C[r+192>>2]=b+v,C[r+184>>2]=d+m,C[r+180>>2]=b-v,C[r+176>>2]=_(1)-_(Q+B),v=C[A+196>>2],B=C[A+192>>2],k=C[A+188>>2],b=C[A+184>>2],a[r+156>>2]=0,a[r+140>>2]=0,Q=_(_(2)/_(_(_(_(b*b)+_(k*k))+_(B*B))+_(v*v))),y=_(B*Q),d=_(k*y),m=_(b*Q),W=_(v*m),C[r+148>>2]=d+W,C[g>>2]=d-W,d=_(b*m),m=k,k=_(k*Q),Q=_(m*k),C[i>>2]=_(1)-_(d+Q),B=_(B*y),C[h>>2]=_(1)-_(d+B),a[r+124>>2]=0,d=_(b*y),m=_(v*k),C[r+144>>2]=d-m,b=_(b*k),v=_(v*y),C[r+128>>2]=b+v,C[r+120>>2]=d+m,C[r+116>>2]=b-v,C[r+112>>2]=_(1)-_(Q+B),n=r+24|0,a[n>>2]=0,a[n+4>>2]=0,n=r+32|0,a[n>>2]=0,a[n+4>>2]=0,n=r+40|0,a[n>>2]=0,a[n+4>>2]=0,a[r+100>>2]=0,C[r+96>>2]=-E,C[r+92>>2]=-D,a[r+16>>2]=0,a[r+20>>2]=0,C[r+88>>2]=-w,a[r+80>>2]=0,a[r+4>>2]=1065353216,a[r>>2]=24320,n=a[A+8>>2],a[r+84>>2]=n,a[r+104>>2]=a[A+48>>2],u=a[n+188>>2],a[r+8>>2]=a[u+4>>2],a[r+12>>2]=a[u+8>>2],o[A+250|0]?Sf(n,a[A+12>>2],r+176|0,r+112|0,r,C[e+56>>2]):_f(e,a[A+12>>2],r+176|0,r+112|0,r,C[e+56>>2]),u=A+152|0,n=A+132|0;A:{e:{r:{if(C[r+4>>2]<_(1)&&(l=a[A+8>>2],!(4&o[l+204|0])&&Qt[a[a[A>>2]+56>>2]](A,l,a[r+80>>2]))){if(_(_(_(C[r+48>>2]*C[A+256>>2])+_(C[r+52>>2]*C[A+260>>2]))+_(C[r+56>>2]*C[A+264>>2]))>_(0)&&(b=C[r+4>>2],C[A+148>>2]=p*b,o[A+288|0]?(p=_(_(1)-b),C[A+132>>2]=_(p*C[A+132>>2])+_(b*C[A+152>>2]),C[A+136>>2]=_(p*C[A+136>>2])+_(b*C[A+156>>2]),C[A+140>>2]=_(p*C[A+140>>2])+_(b*C[A+160>>2])):(c=a[u+4>>2],a[n>>2]=a[u>>2],a[n+4>>2]=c,l=u+8|0,R=a[l+4>>2],c=n+8|0,a[c>>2]=a[l>>2],a[c+4>>2]=R)),F=n+8|0,G=F,s=a[G+4>>2],l=a[A+8>>2],R=l+60|0,c=R,a[c>>2]=a[G>>2],a[c+4>>2]=s,s=a[n+4>>2],G=l+52|0,c=G,a[c>>2]=a[n>>2],a[c+4>>2]=s,c=a[A+8>>2],a[c+304>>2]=a[c+304>>2]+1,g=l+12|0,h=a[g+4>>2],s=c+12|0,a[s>>2]=a[g>>2],a[s+4>>2]=h,s=a[l+8>>2],a[c+4>>2]=a[l+4>>2],a[c+8>>2]=s,g=l+28|0,h=a[g+4>>2],s=c+28|0,a[s>>2]=a[g>>2],a[s+4>>2]=h,g=l+20|0,h=a[g+4>>2],s=c+20|0,a[s>>2]=a[g>>2],a[s+4>>2]=h,g=l+44|0,h=a[g+4>>2],s=c+44|0,a[s>>2]=a[g>>2],a[s+4>>2]=h,l=l+36|0,g=a[l+4>>2],s=c+36|0,a[s>>2]=a[l>>2],a[s+4>>2]=g,s=a[G+4>>2],l=c+52|0,a[l>>2]=a[G>>2],a[l+4>>2]=s,l=a[R+4>>2],c=c+60|0,a[c>>2]=a[R>>2],a[c+4>>2]=l,f[A+220|0]=0,!jf(A,e))break e;if(f[A+220|0]=1,jf(A,e))break r;break e}a[A+148>>2]=c,A=a[u+4>>2],a[n>>2]=a[u>>2],a[n+4>>2]=A,A=n+8|0,e=u+8|0,n=a[e+4>>2],a[A>>2]=a[e>>2],a[A+4>>2]=n;break A}f[A+220|0]=1,jf(A,e)&&(f[A+220|0]=1,jf(A,e)&&(f[A+220|0]=1,jf(A,e)&&(f[A+220|0]=1)))}c=a[A+8>>2],e=c+52|0,l=e,R=a[l+4>>2],a[u>>2]=a[l>>2],a[u+4>>2]=R,c=c+60|0,R=a[c+4>>2],u=u+8|0,a[u>>2]=a[c>>2],a[u+4>>2]=R,u=a[e>>2],e=a[e+4>>2],l=a[c+4>>2],a[F>>2]=a[c>>2],a[F+4>>2]=l,a[n>>2]=u,a[n+4>>2]=e,C[A+24>>2]>_(0)&&(a[A+20>>2]=0,a[A+24>>2]=0,a[A+148>>2]=a[A+60>>2])}Y=r+240|0}(A,e),l=i- -64|0,c=i+48|0,t=i+32|0,o[A+251|0]?Hf(A,e,A+68|0):(b=C[A+252>>2],C[A+252>>2]=b-r,a[i+12>>2]=0,b=b>r?r:b,C[i+8>>2]=b*C[A+76>>2],C[i+4>>2]=b*C[A+72>>2],C[i>>2]=b*C[A+68>>2],Hf(A,e,i)),function(A,e,r){var i,t=_(0),n=0,c=0,b=_(0),l=0,u=_(0),s=0,k=0,v=_(0),d=_(0),g=_(0),B=0,m=_(0),R=_(0),Q=_(0),h=0,G=0,y=_(0),p=_(0),F=_(0),W=0,w=0,D=0,E=0,Z=_(0),V=_(0),N=0,I=0;i=Y-432|0,Y=i,l=A+160|0,c=a[l+4>>2],s=i+232|0,a[s>>2]=a[l>>2],a[s+4>>2]=c,s=a[A+156>>2],a[i+224>>2]=a[A+152>>2],a[i+228>>2]=s,t=C[A+20>>2];A:if(!(t>_(0))){for(t=_((t<_(0)?_(-t):_(0))*r),t>_(0)&&(b=C[A+28>>2],t>b^1|(o[A+249|0]?!o[A+248|0]:0)||(t=b)),s=A+152|0,t=_(t+C[A+148>>2]),y=_(C[A+256>>2]*t),C[A+152>>2]=C[A+152>>2]-y,l=A+156|0,p=_(t*C[A+260>>2]),C[l>>2]=C[l>>2]-p,l=A+160|0,B=l,u=C[l>>2],l=A+264|0,F=_(t*C[l>>2]),C[B>>2]=u-F,c=i+136|0,a[c>>2]=0,a[c+4>>2]=0,c=i+144|0,a[c>>2]=0,a[c+4>>2]=0,c=i+152|0,a[c>>2]=0,a[c+4>>2]=0,n=a[l+4>>2],c=i+208|0,a[c>>2]=a[l>>2],a[c+4>>2]=n,a[i+128>>2]=0,a[i+132>>2]=0,c=a[A+260>>2],a[i+200>>2]=a[A+256>>2],a[i+204>>2]=c,a[i+192>>2]=0,a[i+116>>2]=1065353216,a[i+112>>2]=24320,n=a[A+8>>2],a[i+196>>2]=n,h=a[A+48>>2],a[i+216>>2]=h,c=a[n+188>>2],a[i+120>>2]=a[c+4>>2],a[i+124>>2]=a[c+8>>2],k=i+24|0,a[k>>2]=0,a[k+4>>2]=0,k=i+32|0,a[k>>2]=0,a[k+4>>2]=0,k=i+40|0,a[k>>2]=0,a[k+4>>2]=0,W=a[l+4>>2],k=i+96|0,a[k>>2]=a[l>>2],a[k+4>>2]=W,a[i+80>>2]=0,a[i+4>>2]=1065353216,a[i+16>>2]=0,a[i+20>>2]=0,a[i+84>>2]=n,l=a[A+260>>2],a[i+88>>2]=a[A+256>>2],a[i+92>>2]=l,a[i>>2]=24320,a[i+104>>2]=h,l=a[c+8>>2],a[i+8>>2]=a[c+4>>2],a[i+12>>2]=l,l=A+132|0,h=i+352|0,k=i+416|0,W=i+264|0,D=i+240|4,E=i+328|0,w=i+284|0,N=w+16|0,c=0;;){a[E>>2]=0,a[E+4>>2]=0,a[D>>2]=0,a[D+4>>2]=0,a[W>>2]=0,a[W+4>>2]=0,a[w>>2]=0,a[w+4>>2]=0,n=E+8|0,a[n>>2]=0,a[n+4>>2]=0,n=D+8|0,a[n>>2]=0,a[n+4>>2]=0,n=W+8|0,a[n>>2]=0,a[n+4>>2]=0,n=w+8|0,a[n>>2]=0,a[n+4>>2]=0,a[N>>2]=0,n=a[l+4>>2],a[k>>2]=a[l>>2],a[k+4>>2]=n,G=l+8|0,B=a[G+4>>2],n=k+8|0,a[n>>2]=a[G>>2],a[n+4>>2]=B,a[i+324>>2]=1065353216,a[i+316>>2]=0,a[i+320>>2]=0,a[i+344>>2]=1065353216,a[i+348>>2]=0,a[i+240>>2]=1065353216,a[i+260>>2]=1065353216,a[i+280>>2]=1065353216,G=s+8|0,B=G,I=a[B+4>>2],n=h+8|0,a[n>>2]=a[B>>2],a[n+4>>2]=I,n=a[s+4>>2],a[h>>2]=a[s>>2],a[h+4>>2]=n,a[i+412>>2]=0,a[i+396>>2]=0,a[i+380>>2]=0,t=C[A+168>>2],b=C[A+172>>2],v=C[A+176>>2],u=C[A+180>>2],g=_(_(2)/_(_(_(_(t*t)+_(b*b))+_(v*v))+_(u*u))),Q=_(b*g),d=_(t*Q),R=_(v*g),m=_(u*R),C[i+372>>2]=d-m,Z=_(t*R),V=_(u*Q),C[i+376>>2]=Z+V,C[i+384>>2]=d+m,d=_(b*R),m=u,u=_(t*g),g=_(m*u),C[i+392>>2]=d-g,C[i+400>>2]=Z-V,C[i+404>>2]=d+g,b=_(b*Q),v=_(v*R),C[i+368>>2]=_(1)-_(b+v),t=_(t*u),C[i+388>>2]=_(1)-_(t+v),C[i+408>>2]=_(1)-_(t+b),a[i+316>>2]=0,a[i+332>>2]=0,a[i+348>>2]=0,t=C[A+184>>2],b=C[A+188>>2],v=C[A+192>>2],u=C[A+196>>2],g=_(_(2)/_(_(_(_(t*t)+_(b*b))+_(v*v))+_(u*u))),Q=_(b*g),d=_(t*Q),R=_(v*g),m=_(u*R),C[i+320>>2]=d+m,C[i+308>>2]=d-m,d=_(t*R),m=_(u*Q),C[i+336>>2]=d-m,C[i+312>>2]=d+m,d=_(b*R),m=u,u=_(t*g),g=_(m*u),C[i+340>>2]=d+g,C[i+328>>2]=d-g,b=_(b*Q),v=_(v*R),C[i+304>>2]=_(1)-_(b+v),t=_(t*u),C[i+344>>2]=_(1)-_(t+b),C[i+324>>2]=_(1)-_(t+v),t=C[A+152>>2],b=C[A+156>>2],u=C[A+160>>2],a[i+300>>2]=0,C[i+296>>2]=u-F,C[i+292>>2]=b-p,C[i+288>>2]=t-y;e:if(o[A+250|0]){if(Sf(a[A+8>>2],a[A+12>>2],i+368|0,i+304|0,i+112|0,C[e+56>>2]),C[i+116>>2]<_(1))break e;if(n=a[A+8>>2],4&o[n+204|0])break e;Sf(n,a[A+12>>2],i+368|0,i+240|0,i,C[e+56>>2])}else _f(e,a[A+12>>2],i+368|0,i+304|0,i+112|0,C[e+56>>2]),4&o[a[A+8>>2]+204|0]|C[i+116>>2]<_(1)||_f(e,a[A+12>>2],i+368|0,i+240|0,i,C[e+56>>2]);t=C[A+20>>2],t=t<_(0)?_(-t):_(0);e:if(o[A+290|0]){if(n=0,C[i+4>>2]<_(1)^1&&!(C[i+116>>2]<_(1)))break e;if(B=a[A+8>>2],4&o[B+204|0])break e;n=0|Qt[a[a[A>>2]+56>>2]](A,B,a[i+192>>2])}else n=0,C[i+4>>2]<_(1)&&(B=a[A+8>>2],4&o[B+204|0]||(n=0|Qt[a[a[A>>2]+56>>2]](A,B,a[i+80>>2])));b=_(t*r),t=_(0);e:{r:{if(t=C[A+20>>2]<_(0)^1?t:C[A+60>>2],!(1&(b>_(0)^-1|b<t^-1|-1^n|c))){if(o[A+248|0]|!o[A+249|0])break r;c=0}e=a[A+8>>2];i:{if(!(4&o[e+204|0]|C[i+116>>2]<_(1)^1)){if(1&(Qt[a[a[A>>2]+56>>2]](A,e,a[i+192>>2])|c))break i;break e}if(!c)break e}r=C[A+136>>2],t=o[A+290|0]?o[A+289|0]?C[i+116>>2]:_(_(r-C[i+180>>2])*_(.5)):C[i+116>>2],f[A+289|0]=0,f[A+249|0]=0,a[A+20>>2]=0,a[A+24>>2]=0,b=_(_(1)-t),C[A+132>>2]=_(b*C[A+132>>2])+_(t*C[A+152>>2]),C[A+136>>2]=_(r*b)+_(t*C[A+156>>2]),e=A+140|0,C[e>>2]=_(b*C[e>>2])+_(t*C[A+160>>2]);break A}c=a[i+228>>2],a[s>>2]=a[i+224>>2],a[s+4>>2]=c,c=i+232|0,n=a[c+4>>2],a[G>>2]=a[c>>2],a[G+4>>2]=n,t=_(t+C[A+148>>2]),y=_(C[A+256>>2]*t),C[A+152>>2]=C[A+152>>2]-y,p=_(t*C[A+260>>2]),C[A+156>>2]=C[A+156>>2]-p,F=_(t*C[A+264>>2]),C[A+160>>2]=C[A+160>>2]-F,c=1;continue}break}f[A+289|0]=1,o[A+290|0]&&(t=C[A+20>>2],t=_((t<_(0)?_(-t):_(0))*r),r=C[A+28>>2],t>r^1|(o[A+249|0]?!o[A+248|0]:0)||(r=_(r+C[A+148>>2]),C[A+160>>2]=_(F+C[A+160>>2])-_(r*C[A+264>>2]),C[A+156>>2]=_(p+C[A+156>>2])-_(r*C[A+260>>2]),C[A+152>>2]=_(y+C[A+152>>2])-_(C[A+256>>2]*r))),A=a[s+4>>2],a[l>>2]=a[s>>2],a[l+4>>2]=A,e=s+8|0,s=a[e+4>>2],A=l+8|0,a[A>>2]=a[e>>2],a[A+4>>2]=s}Y=i+432|0}(A,e,r),k=A+140|0,R=a[k+4>>2],B=l+8|0,n=B,a[n>>2]=a[k>>2],a[n+4>>2]=R,n=a[A+136>>2],a[l>>2]=a[A+132>>2],a[l+4>>2]=n,R=a[i+20>>2],n=a[A+8>>2],a[n+4>>2]=a[i+16>>2],a[n+8>>2]=R,R=a[t+4>>2],k=n+20|0,a[k>>2]=a[t>>2],a[k+4>>2]=R,t=t+8|0,R=a[t+4>>2],k=n+28|0,a[k>>2]=a[t>>2],a[k+4>>2]=R,t=c,c=a[t+4>>2],k=n+36|0,a[k>>2]=a[t>>2],a[k+4>>2]=c,t=t+8|0,k=a[t+4>>2],c=n+44|0,a[c>>2]=a[t>>2],a[c+4>>2]=k,c=i+24|0,k=a[c+4>>2],t=n+12|0,a[t>>2]=a[c>>2],a[t+4>>2]=k,a[n+304>>2]=a[n+304>>2]+1,c=a[l+4>>2],t=n+52|0,a[t>>2]=a[l>>2],a[t+4>>2]=c,c=a[B+4>>2],t=n+60|0,a[t>>2]=a[B>>2],a[t+4>>2]=c,f[A+220|0]=0,jf(A,e)&&(f[A+220|0]=1,jf(A,e)&&(f[A+220|0]=1,jf(A,e)&&(f[A+220|0]=1,jf(A,e)&&(f[A+220|0]=1,jf(A,e)&&(f[A+220|0]=1)))))),Y=i+80|0},zf,function(A,e){A|=0,e|=0;var r=_(0),i=_(0),t=_(0),n=_(0),o=0,c=0;o=A,r=C[e>>2],i=_(r*r),r=C[e+4>>2],i=_(i+_(r*r)),r=C[e+8>>2],r=_(i+_(r*r)),i=C[A+36>>2],r!=_(0)&&(i=_(y(r))),r=i,C[o+20>>2]=r,C[A+32>>2]=r,f[A+249|0]=1,o=A+284|0,r=C[e>>2],t=C[e+4>>2],n=C[e+8>>2],i=_(_(_(r*r)+_(t*t))+_(n*n)),i!=_(0)?(i=_(_(1)/_(y(i))),n=_(n*i),t=_(t*i),r=_(r*i),e=e+12|0):(n=C[A+264>>2],t=C[A+260>>2],r=C[A+256>>2],e=A+268|0),a[o>>2]=a[e>>2],C[A+280>>2]=n,C[A+276>>2]=t,C[A+272>>2]=r,e=a[A+8>>2],c=e+52|0,o=a[c+4>>2],a[A+116>>2]=a[c>>2],a[A+120>>2]=o,e=e+60|0,c=a[e+4>>2],A=A+124|0,a[A>>2]=a[e>>2],a[A+4>>2]=c},function(A){return A|=0,0|(_(m(C[A+20>>2]))<_(1.1920928955078125e-7)^1?0:_(m(C[A+24>>2]))<_(1.1920928955078125e-7))},function(A,e){A|=0,e|=0,f[A+288|0]=e},function(A,e,r){return A|=0,e|=0,r|=0,A=a[r+188>>2],e=a[e+188>>2],a[A+8>>2]&a[e+4>>2]?0!=(a[e+8>>2]&a[A+4>>2])|0:0},function(A,e){A|=0,e|=0;var r=0;r=a[e+4>>2],a[A+100>>2]=a[e>>2],a[A+104>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+108|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},function(A){return A|=0,A+100|0},function(A,e){A|=0,e|=0;var r,i=0,t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=0,k=_(0),v=_(0),d=_(0),g=_(0);i=a[e+4>>2],a[A+68>>2]=a[e>>2],a[A+72>>2]=i,s=e+8|0,r=a[s+4>>2],i=A+76|0,a[i>>2]=a[s>>2],a[i+4>>2]=r,o=C[A+68>>2],c=C[A+72>>2],b=C[i>>2],k=_(_(_(o*o)+_(c*c))+_(b*b));A:{if(k>_(0)){if(l=C[e>>2],t=C[e+4>>2],u=C[e+8>>2],n=_(_(1)/_(y(_(_(_(l*l)+_(t*t))+_(u*u))))),v=C[A+264>>2],g=_(v*_(u*n)),u=C[A+256>>2],d=C[A+260>>2],n=_(g+_(_(u*_(l*n))+_(d*_(t*n)))),n==_(0))break A;if(t=b,b=_(_(y(k))*dr(_(_(1.5707963705062866)-Ni(_(Q(_(h(n,_(-1))),_(1))))))),l=_(v*b),C[A+76>>2]=t-l,t=c,c=_(d*b),C[A+72>>2]=t-c,t=o,o=_(u*b),C[A+68>>2]=t-o,C[A+20>>2]=(n<_(0)?_(-1):_(1))*_(y(_(_(l*l)+_(_(o*o)+_(c*c))))),!(n>_(0)))break A;return f[A+249|0]=1,e=a[A+8>>2],i=e+52|0,s=a[i+4>>2],a[A+116>>2]=a[i>>2],a[A+120>>2]=s,e=e+60|0,i=a[e+4>>2],A=A+124|0,a[A>>2]=a[e>>2],void(a[A+4>>2]=i)}a[A+20>>2]=0}},function(A,e){A|=0,e|=0;var r=_(0);a[A+12>>2]=0,r=C[e+20>>2],C[A>>2]=_(C[e+256>>2]*r)+C[e+68>>2],C[A+8>>2]=_(r*C[e+264>>2])+C[e+76>>2],C[A+4>>2]=_(r*C[e+260>>2])+C[e+72>>2]},ve,function(A,e){return A|=0,e|=0,a[A+12>>2]&a[e+4>>2]?0!=(a[e+8>>2]&a[A+8>>2])|0:0},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=_(0),t=_(0),n=_(0),c=_(0),b=_(0),l=_(0),u=0,s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0);return t=_(1),i=a[e>>2],(0|i)==a[A+84>>2]|4&o[i+204|0]||(r?(n=C[e+16>>2],c=C[e+12>>2],f=C[e+8>>2]):(f=C[e+8>>2],b=C[e+12>>2],l=C[e+16>>2],n=_(_(_(f*C[i+36>>2])+_(b*C[i+40>>2]))+_(l*C[i+44>>2])),c=_(_(_(f*C[i+20>>2])+_(b*C[i+24>>2]))+_(l*C[i+28>>2])),f=_(_(_(C[i+4>>2]*f)+_(C[i+8>>2]*b))+_(C[i+12>>2]*l))),_(_(_(f*C[A+88>>2])+_(c*C[A+92>>2]))+_(n*C[A+96>>2]))<C[A+104>>2]||(a[A+80>>2]=i,a[A+4>>2]=a[e+40>>2],r?(r=a[e+12>>2],a[A+48>>2]=a[e+8>>2],a[A+52>>2]=r,i=e+16|0,u=a[i+4>>2],r=A+56|0,a[r>>2]=a[i>>2],a[r+4>>2]=u):(f=C[i+8>>2],b=C[i+12>>2],l=C[i+20>>2],s=C[i+24>>2],k=C[i+28>>2],v=C[i+36>>2],d=C[i+40>>2],t=C[e+12>>2],g=C[i+44>>2],n=C[e+16>>2],B=C[i+4>>2],c=C[e+8>>2],a[A+60>>2]=0,C[A+56>>2]=_(_(c*v)+_(t*d))+_(n*g),C[A+52>>2]=_(_(c*l)+_(t*s))+_(n*k),C[A+48>>2]=_(_(B*c)+_(f*t))+_(b*n)),r=a[e+28>>2],a[A+64>>2]=a[e+24>>2],a[A+68>>2]=r,r=e+32|0,i=a[r+4>>2],A=A+72|0,a[A>>2]=a[r>>2],a[A+4>>2]=i,t=C[e+40>>2])),_(t)},At,qe,function(A,e){A|=0,e|=0;var r=0,i=0,f=0;Kf(A,a[A+28>>2]+4|0,a[A+32>>2]+4|0),a[e>>2]=0,a[e+4>>2]=0;A:{e:{r:if(r=a[A+956>>2],!(r>>>0>4))switch(i=2,r-1|0){case 3:break e;case 0:case 1:case 2:break r;default:break A}i=1}a[e>>2]=i,r=i}o[A+792|0]&&(r=r+1|0,a[e>>2]=r),o[A+798|0]&&(r=r+1|0,a[e>>2]=r),f=e;A:{e:{r:if(i=a[A+960>>2],!(i>>>0>4)){i:switch(i-1|0){case 0:case 1:case 2:break r;case 3:break i;default:break A}r=r+2|0;break e}r=r+1|0}a[f>>2]=r}o[A+793|0]&&(r=r+1|0,a[e>>2]=r),o[A+799|0]&&(r=r+1|0,a[e>>2]=r),f=e;A:{e:{r:if(i=a[A+964>>2],!(i>>>0>4)){i:switch(i-1|0){case 0:case 1:case 2:break r;case 3:break i;default:break A}r=r+2|0;break e}r=r+1|0}a[f>>2]=r}o[A+794|0]&&(r=r+1|0,a[e>>2]=r),o[A+800|0]&&(a[e>>2]=r+1),Lf(A,0);A:{e:{r:if(i=a[A+1052>>2],!(i>>>0>4))switch(r=2,i-1|0){case 3:break e;case 0:case 1:case 2:break r;default:break A}r=1}a[e>>2]=a[e>>2]+r}o[A+996|0]&&(a[e>>2]=a[e>>2]+1),o[A+1016|0]&&(a[e>>2]=a[e>>2]+1),Lf(A,1);A:{e:{r:if(i=a[A+1140>>2],!(i>>>0>4))switch(r=2,i-1|0){case 3:break e;case 0:case 1:case 2:break r;default:break A}r=1}a[e>>2]=a[e>>2]+r}o[A+1084|0]&&(a[e>>2]=a[e>>2]+1),o[A+1104|0]&&(a[e>>2]=a[e>>2]+1),r=2,Lf(A,2);A:{e:{r:if(i=a[A+1228>>2],!(i>>>0>4))switch(i-1|0){case 3:break e;case 0:case 1:case 2:break r;default:break A}r=1}a[e>>2]=a[e>>2]+r}o[A+1172|0]&&(a[e>>2]=a[e>>2]+1),o[A+1192|0]&&(a[e>>2]=a[e>>2]+1)},function(A,e){var r,i,t,n,c,b;A|=0,e|=0,r=A,i=e,e=a[A+28>>2],t=e+4|0,A=a[A+32>>2],n=A+4|0,c=e+372|0,b=A+372|0,e=e+388|0,A=A+388|0,function(A,e,r,i,t,n,c,b,l){var u=0,s=0,k=0,v=0,d=0,g=0,_=0,m=0,R=0,Q=0;for(u=Y-112|0,Y=u,k=u+100|0,a[k>>2]=0,a[k+4>>2]=0,a[u+108>>2]=0,a[u+92>>2]=0,a[u+96>>2]=0,f[u+88|0]=0,a[u+84>>2]=0,f[u+80|0]=0,a[u+76>>2]=0,f[u+72|0]=0,a[u+68>>2]=0,f[u+64|0]=0,a[u+56>>2]=0,a[u+60>>2]=1036831949,f[u+52|0]=0,a[u+48>>2]=0,a[u+40>>2]=0,a[u+44>>2]=1063675494,a[u+32>>2]=0,a[u+36>>2]=1045220557,a[u+24>>2]=1065353216,a[u+28>>2]=-1082130432,R=e+4|0;;){if(v=A+_|0,k=o[v+792|0],s=A+m|0,Q=a[s+956>>2],Q||(d=k,k=1,d||(k=0,o[v+798|0]))){a[u+108>>2]=Q,f[u+52|0]=k,a[u+32>>2]=a[s+712>>2],a[u+104>>2]=a[s+940>>2],a[u+96>>2]=a[s+908>>2],a[u+100>>2]=a[s+924>>2],f[u+64|0]=o[v+795|0],a[u+68>>2]=a[s+804>>2],f[u+72|0]=o[v+798|0],a[u+76>>2]=a[s+820>>2],f[u+80|0]=o[v+836|0],a[u+84>>2]=a[s+840>>2],f[u+88|0]=o[v+856|0],a[u+92>>2]=a[s+860>>2],a[u+28>>2]=a[s+696>>2],a[u+24>>2]=a[s+680>>2],a[u+60>>2]=a[s+892>>2],a[u+56>>2]=a[s+876>>2],a[u+20>>2]=0,a[u+8>>2]=a[s+1236>>2],a[u+12>>2]=a[s+1252>>2],a[u+16>>2]=a[s+1268>>2],d=u,k=a[A+1456>>2]>>m,v=s+744|0,1&k||(v=a[e+32>>2]),a[d+40>>2]=a[v>>2],a[u+36>>2]=a[(2&k?s+728|0:R)>>2],a[u+48>>2]=a[(4&k?s+776|0:a[e+32>>2])>>2],a[u+44>>2]=a[(8&k?s+760|0:R)>>2],d=1,s=((_+2&255)>>>0)%3|0,k=B(((_+1&255)>>>0)%3|0,88)+A|0,v=a[k+1052>>2]+-1|0;A:if(v>>>0<=3){e:switch(v-2|0){case 0:g=+C[k+1040>>2],d=g<-.001|g>.001;break A;case 1:break e;default:break A}if(+C[k+1040>>2]<-.001)break A;d=+C[k+1044>>2]>.001}else d=0;k=1,s=B(s,88)+A|0,v=a[s+1052>>2]+-1|0;A:if(!(v>>>0>3)){e:{r:switch(v-2|0){case 0:if(g=+C[s+1040>>2],g<-.001|g>.001)break e;break A;case 1:break r;default:break e}if(!(+C[s+1040>>2]<-.001||+C[s+1044>>2]>.001))break A}k=0}r=qf(A,u+24|0,i,t,n,c,b,l,e,r,u+8|0,0,d?k:1)+r|0}if(_=_+1|0,m=m+4|0,12==(0|m))break}Y=u+112|0}(r,i,function(A,e,r,i,f,t,n,c){var b=0,l=0,u=0,s=0,k=0,v=0,d=0,C=0;return u=Y-32|0,Y=u,a[u+24>>2]=a[6114],l=a[6113],a[u+16>>2]=a[6112],a[u+20>>2]=l,l=1,s=a[A+1232>>2],s>>>0<=5&&(b=s<<2,a[u+24>>2]=a[b+24508>>2],l=a[b+24532>>2],a[u+20>>2]=l,b=a[b+24556>>2],a[u+16>>2]=b),s=B(b,88)+A|0,(o[1016+(B(b,88)+A|0)|0]||a[s+1052>>2]|o[s+996|0])&&(l=(b<<4)+A|0,k=l+1388|0,v=a[k+4>>2],d=u+8|0,a[d>>2]=a[k>>2],a[d+4>>2]=v,l=l+1380|0,k=a[l+4>>2],a[u>>2]=a[l>>2],a[u+4>>2]=k,l=a[A+1456>>2]>>12+(b<<2),1&l||(a[984+(B(b,88)+A|0)>>2]=a[a[e+32>>2]>>2]),2&l||(a[980+(B(b,88)+A|0)>>2]=a[e+4>>2]),4&l||(a[992+(B(b,88)+A|0)>>2]=a[a[e+32>>2]>>2]),8&l||(a[988+(B(b,88)+A|0)>>2]=a[e+4>>2]),k=qf(A,s+968|0,r,i,f,t,n,c,e,0,u,1,0),l=a[u+20>>2]),s=B(l,88)+A|0,(o[1016+(B(l,88)+A|0)|0]||a[s+1052>>2]|o[s+996|0])&&(b=(l<<4)+A|0,v=b+1388|0,d=a[v+4>>2],C=u+8|0,a[C>>2]=a[v>>2],a[C+4>>2]=d,b=b+1380|0,v=a[b+4>>2],a[u>>2]=a[b>>2],a[u+4>>2]=v,b=a[A+1456>>2]>>12+(l<<2),1&b||(a[984+(B(l,88)+A|0)>>2]=a[a[e+32>>2]>>2]),2&b||(a[980+(B(l,88)+A|0)>>2]=a[e+4>>2]),4&b||(a[992+(B(l,88)+A|0)>>2]=a[a[e+32>>2]>>2]),8&b||(a[988+(B(l,88)+A|0)>>2]=a[e+4>>2]),k=qf(A,s+968|0,r,i,f,t,n,c,e,k,u,1,0)+k|0),l=a[u+24>>2],s=B(l,88)+A|0,(o[1016+(B(l,88)+A|0)|0]||a[s+1052>>2]|o[s+996|0])&&(b=(l<<4)+A|0,v=b+1388|0,d=a[v+4>>2],C=u+8|0,a[C>>2]=a[v>>2],a[C+4>>2]=d,b=b+1380|0,v=a[b+4>>2],a[u>>2]=a[b>>2],a[u+4>>2]=v,b=a[A+1456>>2]>>12+(l<<2),1&b||(a[984+(B(l,88)+A|0)>>2]=a[a[e+32>>2]>>2]),2&b||(a[980+(B(l,88)+A|0)>>2]=a[e+4>>2]),4&b||(a[992+(B(l,88)+A|0)>>2]=a[a[e+32>>2]>>2]),8&b||(a[988+(B(l,88)+A|0)>>2]=a[e+4>>2]),k=qf(A,s+968|0,r,i,f,t,n,c,e,k,u,1,0)+k|0),Y=u+32|0,k}(r,i,t,n,c,b,e,A),t,n,c,b,e,A)},function(A,e,r,i){A|=0,e|=0,r=_(r),i|=0;var f=0;A:{if(i>>>0<=2){if(e=e+-1|0,e>>>0>3)break A;switch(e-1|0){case 0:return e=i<<2,C[728+(e+A|0)>>2]=r,void(a[A+1456>>2]=a[A+1456>>2]|2<<e);case 2:return e=i<<2,C[744+(e+A|0)>>2]=r,void(a[A+1456>>2]=a[A+1456>>2]|1<<e);default:return e=i<<2,C[760+(e+A|0)>>2]=r,void(a[A+1456>>2]=a[A+1456>>2]|8<<e);case 1:}return e=i<<2,C[776+(e+A|0)>>2]=r,void(a[A+1456>>2]=a[A+1456>>2]|4<<e)}if(f=i+-3|0,!(f>>>0>2||(e=e+-1|0,e>>>0>3))){switch(e-1|0){case 0:return C[980+(B(f,88)+A|0)>>2]=r,void(a[A+1456>>2]=a[A+1456>>2]|2<<(i<<2));case 2:return C[984+(B(f,88)+A|0)>>2]=r,void(a[A+1456>>2]=a[A+1456>>2]|1<<(i<<2));default:return C[988+(B(f,88)+A|0)>>2]=r,void(a[A+1456>>2]=a[A+1456>>2]|8<<(i<<2));case 1:}C[992+(B(f,88)+A|0)>>2]=r,a[A+1456>>2]=a[A+1456>>2]|4<<(i<<2)}}},function(A,e,r){A|=0,e|=0,r|=0;var i=_(0);if(r>>>0<=2){if(e=e+-1|0,e>>>0>3)return _(_(0));switch(e-1|0){case 0:return _(C[728+((r<<2)+A|0)>>2]);case 2:return _(C[744+((r<<2)+A|0)>>2]);default:return _(C[760+((r<<2)+A|0)>>2]);case 1:}return _(C[776+((r<<2)+A|0)>>2])}if(r=r+-3|0,!(r>>>0>2||(e=e+-1|0,e>>>0>3))){switch(e-1|0){case 0:return _(C[980+(B(r,88)+A|0)>>2]);case 2:return _(C[984+(B(r,88)+A|0)>>2]);default:return _(C[988+(B(r,88)+A|0)>>2]);case 1:}i=C[992+(B(r,88)+A|0)>>2]}return _(i)},function(A){return 644},function(A,e,r){return A|=0,e|=0,r|=0,Df(A,e,r),a[e+52>>2]=a[A+48>>2],a[e+56>>2]=a[A+52>>2],a[e+60>>2]=a[A+56>>2],a[e+64>>2]=a[A+60>>2],a[e+68>>2]=a[A- -64>>2],a[e+72>>2]=a[A+68>>2],a[e+76>>2]=a[A+72>>2],a[e+80>>2]=a[A+76>>2],a[e+84>>2]=a[A+80>>2],a[e+88>>2]=a[A+84>>2],a[e+92>>2]=a[A+88>>2],a[e+96>>2]=a[A+92>>2],a[e+100>>2]=a[A+96>>2],a[e+104>>2]=a[A+100>>2],a[e+108>>2]=a[A+104>>2],a[e+112>>2]=a[A+108>>2],a[e+116>>2]=a[A+112>>2],a[e+120>>2]=a[A+116>>2],a[e+124>>2]=a[A+120>>2],a[e+128>>2]=a[A+124>>2],a[e+132>>2]=a[A+128>>2],a[e+136>>2]=a[A+132>>2],a[e+140>>2]=a[A+136>>2],a[e+144>>2]=a[A+140>>2],a[e+148>>2]=a[A+144>>2],a[e+152>>2]=a[A+148>>2],a[e+156>>2]=a[A+152>>2],a[e+160>>2]=a[A+156>>2],a[e+164>>2]=a[A+160>>2],a[e+168>>2]=a[A+164>>2],a[e+172>>2]=a[A+168>>2],a[e+176>>2]=a[A+172>>2],a[e+428>>2]=a[A+968>>2],a[e+412>>2]=a[A+972>>2],a[e+444>>2]=a[A+976>>2],a[e+460>>2]=a[A+980>>2],a[e+476>>2]=a[A+984>>2],a[e+492>>2]=a[A+988>>2],a[e+508>>2]=a[A+992>>2],a[e+524>>2]=a[A+1e3>>2],a[e+540>>2]=a[A+1004>>2],a[e+556>>2]=a[A+1012>>2],a[e+572>>2]=a[A+1020>>2],a[e+588>>2]=a[A+1028>>2],a[e+604>>2]=a[A+1036>>2],a[e+432>>2]=a[A+1056>>2],a[e+416>>2]=a[A+1060>>2],a[e+448>>2]=a[A+1064>>2],a[e+464>>2]=a[A+1068>>2],a[e+480>>2]=a[A+1072>>2],a[e+496>>2]=a[A+1076>>2],a[e+512>>2]=a[A+1080>>2],a[e+528>>2]=a[A+1088>>2],a[e+544>>2]=a[A+1092>>2],a[e+560>>2]=a[A+1100>>2],a[e+576>>2]=a[A+1108>>2],a[e+592>>2]=a[A+1116>>2],a[e+608>>2]=a[A+1124>>2],a[e+436>>2]=a[A+1144>>2],a[e+420>>2]=a[A+1148>>2],a[e+452>>2]=a[A+1152>>2],a[e+468>>2]=a[A+1156>>2],a[e+484>>2]=a[A+1160>>2],a[e+500>>2]=a[A+1164>>2],a[e+516>>2]=a[A+1168>>2],a[e+532>>2]=a[A+1176>>2],a[e+548>>2]=a[A+1180>>2],a[e+564>>2]=a[A+1188>>2],a[e+580>>2]=a[A+1196>>2],a[e+596>>2]=a[A+1204>>2],r=a[A+1212>>2],a[e+440>>2]=0,a[e+612>>2]=r,a[e+616>>2]=0,a[e+600>>2]=0,a[e+584>>2]=0,a[e+568>>2]=0,a[e+552>>2]=0,a[e+536>>2]=0,a[e+520>>2]=0,a[e+504>>2]=0,a[e+488>>2]=0,a[e+472>>2]=0,a[e+456>>2]=0,a[e+424>>2]=0,f[e+620|0]=o[A+996|0],f[e+624|0]=o[A+1008|0],f[e+628|0]=o[A+1016|0],f[e+632|0]=o[A+1024|0],f[e+636|0]=o[A+1032|0],f[e+621|0]=o[A+1084|0],f[e+625|0]=o[A+1096|0],f[e+629|0]=o[A+1104|0],f[e+633|0]=o[A+1112|0],f[e+637|0]=o[A+1120|0],f[e+622|0]=o[A+1172|0],f[e+626|0]=o[A+1184|0],f[e+630|0]=o[A+1192|0],f[e+634|0]=o[A+1200|0],r=o[A+1208|0],f[e+639|0]=0,f[e+635|0]=0,f[e+631|0]=0,f[e+627|0]=0,f[e+623|0]=0,f[e+638|0]=r,a[e+196>>2]=a[A+680>>2],a[e+200>>2]=a[A+684>>2],a[e+204>>2]=a[A+688>>2],a[e+208>>2]=a[A+692>>2],a[e+180>>2]=a[A+696>>2],a[e+184>>2]=a[A+700>>2],a[e+188>>2]=a[A+704>>2],a[e+192>>2]=a[A+708>>2],a[e+212>>2]=a[A+712>>2],a[e+216>>2]=a[A+716>>2],a[e+220>>2]=a[A+720>>2],a[e+224>>2]=a[A+724>>2],a[e+228>>2]=a[A+728>>2],a[e+232>>2]=a[A+732>>2],a[e+236>>2]=a[A+736>>2],a[e+240>>2]=a[A+740>>2],a[e+244>>2]=a[A+744>>2],a[e+248>>2]=a[A+748>>2],a[e+252>>2]=a[A+752>>2],a[e+256>>2]=a[A+756>>2],a[e+260>>2]=a[A+760>>2],a[e+264>>2]=a[A+764>>2],a[e+268>>2]=a[A+768>>2],a[e+272>>2]=a[A+772>>2],a[e+276>>2]=a[A+776>>2],a[e+280>>2]=a[A+780>>2],a[e+284>>2]=a[A+784>>2],a[e+288>>2]=a[A+788>>2],a[e+292>>2]=a[A+876>>2],a[e+296>>2]=a[A+880>>2],a[e+300>>2]=a[A+884>>2],a[e+304>>2]=a[A+888>>2],a[e+308>>2]=a[A+892>>2],a[e+312>>2]=a[A+896>>2],a[e+316>>2]=a[A+900>>2],a[e+320>>2]=a[A+904>>2],a[e+324>>2]=a[A+804>>2],a[e+328>>2]=a[A+808>>2],a[e+332>>2]=a[A+812>>2],a[e+336>>2]=a[A+816>>2],a[e+340>>2]=a[A+820>>2],a[e+344>>2]=a[A+824>>2],a[e+348>>2]=a[A+828>>2],a[e+352>>2]=a[A+832>>2],a[e+356>>2]=a[A+840>>2],a[e+360>>2]=a[A+844>>2],a[e+364>>2]=a[A+848>>2],a[e+368>>2]=a[A+852>>2],a[e+372>>2]=a[A+860>>2],a[e+376>>2]=a[A+864>>2],a[e+380>>2]=a[A+868>>2],a[e+384>>2]=a[A+872>>2],f[e+388|0]=o[A+792|0],f[e+392|0]=o[A+795|0],f[e+396|0]=o[A+798|0],f[e+400|0]=o[A+836|0],f[e+404|0]=o[A+856|0],f[e+389|0]=o[A+793|0],f[e+393|0]=o[A+796|0],f[e+397|0]=o[A+799|0],f[e+401|0]=o[A+837|0],f[e+405|0]=o[A+857|0],f[e+390|0]=o[A+794|0],f[e+394|0]=o[A+797|0],f[e+398|0]=o[A+800|0],f[e+402|0]=o[A+838|0],r=o[A+858|0],f[e+407|0]=0,f[e+403|0]=0,f[e+399|0]=0,f[e+395|0]=0,f[e+391|0]=0,f[e+406|0]=r,A=a[A+1232>>2],a[e+408>>2]=0,a[e+640>>2]=A,24664},Ef,At,sA,ve,function(A,e){A|=0,e|=0,D(a[A+4>>2],0|e)},function(A,e){A|=0,e|=0,E(a[A+4>>2],0|e)},ve,function(A,e){return A|=0,e|=0,a[A+16>>2]&a[e+4>>2]?0!=(a[e+8>>2]&a[A+12>>2])|0:0},function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=_(0),t=_(0),n=_(0),o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0);return a[A+4>>2]=a[e+24>>2],i=a[e>>2],a[A+8>>2]=i,r?(r=a[e+12>>2],a[A+56>>2]=a[e+8>>2],a[A+60>>2]=r,i=e+16|0,o=a[i+4>>2],r=A- -64|0,a[r>>2]=a[i>>2],a[r+4>>2]=o):(c=C[i+8>>2],b=C[i+12>>2],l=C[i+20>>2],u=C[i+24>>2],s=C[i+28>>2],k=C[i+36>>2],v=C[i+40>>2],f=C[e+12>>2],d=C[i+44>>2],t=C[e+16>>2],g=C[i+4>>2],n=C[e+8>>2],a[A+68>>2]=0,C[A- -64>>2]=_(_(n*k)+_(f*v))+_(t*d),C[A+60>>2]=_(_(n*l)+_(f*u))+_(t*s),C[A+56>>2]=_(_(g*n)+_(c*f))+_(b*t)),f=C[e+24>>2],t=_(_(1)-f),C[A+72>>2]=_(t*C[A+24>>2])+_(f*C[A+40>>2]),C[A+76>>2]=_(t*C[A+28>>2])+_(f*C[A+44>>2]),C[A+80>>2]=_(t*C[A+32>>2])+_(f*C[A+48>>2]),_(C[e+24>>2])},Ct,function(A){A|=0,$(Ct(A))},function(A,e,r){A|=0,e|=0,r|=0;var i=0,t=0,n=0,c=0,b=0,l=_(0),u=0,s=0,k=_(0),v=_(0),d=_(0),g=_(0);if(a[A+8>>2]=a[e>>2],i=a[A+28>>2],(0|i)==a[A+32>>2]&&(n=i?i<<1:1,!((0|i)>=(0|n)))){if(n&&(c=dA(n<<2),i=a[A+28>>2]),(0|i)>=1)for(t=i;a[b+c>>2]=a[a[A+36>>2]+b>>2],b=b+4|0,t=t+-1|0,t;);t=a[A+36>>2],t&&(o[A+40|0]&&(CA(t),i=a[A+28>>2]),a[A+36>>2]=0),a[A+36>>2]=c,a[A+32>>2]=n,f[A+40|0]=1}if(a[A+28>>2]=i+1,a[a[A+36>>2]+(i<<2)>>2]=a[e>>2],r?(g=C[e+16>>2],v=C[e+12>>2],l=C[e+8>>2],k=C[e+20>>2]):(d=C[e+8>>2],r=a[A+8>>2],k=C[e+12>>2],l=C[e+16>>2],g=_(_(_(d*C[r+36>>2])+_(k*C[r+40>>2]))+_(l*C[r+44>>2])),v=_(_(_(d*C[r+20>>2])+_(k*C[r+24>>2]))+_(l*C[r+28>>2])),l=_(_(_(C[r+4>>2]*d)+_(C[r+8>>2]*k))+_(C[r+12>>2]*l)),k=_(0)),t=a[A+80>>2],(0|t)==a[A+84>>2]&&(s=t?t<<1:1,!((0|t)>=(0|s)))){if(s?(r=dA(s<<4),t=a[A+80>>2]):r=0,(0|t)>=1)for(b=0;u=a[A+88>>2]+b|0,i=a[u+4>>2],c=r+b|0,n=c,a[n>>2]=a[u>>2],a[n+4>>2]=i,n=u+8|0,i=a[n+4>>2],c=c+8|0,a[c>>2]=a[n>>2],a[c+4>>2]=i,b=b+16|0,t=t+-1|0,t;);i=a[A+88>>2],i&&(o[A+92|0]&&CA(i),a[A+88>>2]=0),a[A+88>>2]=r,a[A+84>>2]=s,f[A+92|0]=1,t=a[A+80>>2]}if(r=a[A+88>>2]+(t<<4)|0,C[r+12>>2]=k,C[r+8>>2]=g,C[r+4>>2]=v,C[r>>2]=l,a[A+80>>2]=a[A+80>>2]+1,v=C[e+24>>2],l=_(_(1)-v),d=_(_(l*C[A+52>>2])+_(v*C[A+68>>2])),k=_(_(l*C[A+48>>2])+_(v*C[A- -64>>2])),l=_(_(l*C[A+44>>2])+_(v*C[A+60>>2])),t=a[A+100>>2],(0|t)==a[A+104>>2]&&(s=t?t<<1:1,!((0|t)>=(0|s)))){if(s?(r=dA(s<<4),t=a[A+100>>2]):r=0,(0|t)>=1)for(b=0;u=a[A+108>>2]+b|0,i=a[u+4>>2],c=r+b|0,n=c,a[n>>2]=a[u>>2],a[n+4>>2]=i,n=u+8|0,i=a[n+4>>2],c=c+8|0,a[c>>2]=a[n>>2],a[c+4>>2]=i,b=b+16|0,t=t+-1|0,t;);i=a[A+108>>2],i&&(o[A+112|0]&&CA(i),a[A+108>>2]=0),a[A+108>>2]=r,a[A+104>>2]=s,f[A+112|0]=1,t=a[A+100>>2]}if(r=a[A+108>>2]+(t<<4)|0,C[r+8>>2]=d,C[r+4>>2]=k,C[r>>2]=l,a[A+100>>2]=a[A+100>>2]+1,i=a[A+120>>2],(0|i)==a[A+124>>2]&&(u=i?i<<1:1,!((0|i)>=(0|u)))){u?(n=dA(u<<2),i=a[A+120>>2]):n=0,r=a[A+128>>2];A:{if((0|i)>=1)for(b=n,t=r,c=i;a[b>>2]=a[t>>2],b=b+4|0,t=t+4|0,c=c+-1|0,c;);else if(!r)break A;o[A+132|0]&&(CA(r),i=a[A+120>>2]),a[A+128>>2]=0}a[A+128>>2]=n,a[A+124>>2]=u,f[A+132|0]=1}return a[a[A+128>>2]+(i<<2)>>2]=a[e+24>>2],a[A+120>>2]=i+1,_(C[A+4>>2])},ve,function(A,e,r){A|=0,e|=0,r|=0;var i=0,f=_(0),t=_(0),n=_(0),o=0,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0);return a[A+4>>2]=a[e+40>>2],i=a[e>>2],a[A+80>>2]=i,r?(r=a[e+12>>2],a[A+48>>2]=a[e+8>>2],a[A+52>>2]=r,i=e+16|0,o=a[i+4>>2],r=A+56|0,a[r>>2]=a[i>>2],a[r+4>>2]=o):(c=C[i+8>>2],b=C[i+12>>2],l=C[i+20>>2],u=C[i+24>>2],s=C[i+28>>2],k=C[i+36>>2],v=C[i+40>>2],f=C[e+12>>2],d=C[i+44>>2],t=C[e+16>>2],g=C[i+4>>2],n=C[e+8>>2],a[A+60>>2]=0,C[A+56>>2]=_(_(n*k)+_(f*v))+_(t*d),C[A+52>>2]=_(_(n*l)+_(f*u))+_(t*s),C[A+48>>2]=_(_(g*n)+_(c*f))+_(b*t)),r=a[e+28>>2],a[A+64>>2]=a[e+24>>2],a[A+68>>2]=r,r=e+32|0,i=a[r+4>>2],A=A+72|0,a[A>>2]=a[r>>2],a[A+4>>2]=i,_(C[e+40>>2])},gt,function(A){A|=0,$(gt(A))},function(A,e,r){A|=0,e|=0,r|=0;var i,t=0,n=0,c=0,b=0,l=0,u=0,s=0,k=_(0),v=_(0),d=_(0),g=_(0),B=_(0);if(t=a[A+20>>2],(0|t)==a[A+24>>2]&&(c=t?t<<1:1,!((0|t)>=(0|c)))){if(c&&(b=dA(c<<2),t=a[A+20>>2]),(0|t)>=1)for(n=t;a[l+b>>2]=a[a[A+28>>2]+l>>2],l=l+4|0,n=n+-1|0,n;);n=a[A+28>>2],n&&(o[A+32|0]&&(CA(n),t=a[A+20>>2]),a[A+28>>2]=0),a[A+28>>2]=b,a[A+24>>2]=c,f[A+32|0]=1}if(a[A+20>>2]=t+1,a[a[A+28>>2]+(t<<2)>>2]=a[e>>2],r?(g=C[e+16>>2],B=C[e+12>>2],k=C[e+8>>2],v=C[e+20>>2]):(d=C[e+8>>2],r=a[e>>2],v=C[e+12>>2],k=C[e+16>>2],g=_(_(_(d*C[r+36>>2])+_(v*C[r+40>>2]))+_(k*C[r+44>>2])),B=_(_(_(d*C[r+20>>2])+_(v*C[r+24>>2]))+_(k*C[r+28>>2])),k=_(_(_(C[r+4>>2]*d)+_(C[r+8>>2]*v))+_(C[r+12>>2]*k)),v=_(0)),n=a[A+72>>2],(0|n)==a[A+76>>2]&&(s=n?n<<1:1,!((0|n)>=(0|s)))){if(s?(r=dA(s<<4),n=a[A+72>>2]):r=0,(0|n)>=1)for(l=0;u=a[A+80>>2]+l|0,t=a[u+4>>2],b=r+l|0,c=b,a[c>>2]=a[u>>2],a[c+4>>2]=t,c=u+8|0,t=a[c+4>>2],b=b+8|0,a[b>>2]=a[c>>2],a[b+4>>2]=t,l=l+16|0,n=n+-1|0,n;);t=a[A+80>>2],t&&(o[A+84|0]&&CA(t),a[A+80>>2]=0),a[A+80>>2]=r,a[A+76>>2]=s,f[A+84|0]=1,n=a[A+72>>2]}if(r=a[A+80>>2]+(n<<4)|0,C[r+12>>2]=v,C[r+8>>2]=g,C[r+4>>2]=B,C[r>>2]=k,a[A+72>>2]=a[A+72>>2]+1,i=e+24|0,n=a[A+92>>2],(0|n)==a[A+96>>2]&&(s=n?n<<1:1,!((0|n)>=(0|s)))){if(s?(r=dA(s<<4),n=a[A+92>>2]):r=0,(0|n)>=1)for(l=0;u=a[A+100>>2]+l|0,t=a[u+4>>2],b=r+l|0,c=b,a[c>>2]=a[u>>2],a[c+4>>2]=t,c=u+8|0,t=a[c+4>>2],b=b+8|0,a[b>>2]=a[c>>2],a[b+4>>2]=t,l=l+16|0,n=n+-1|0,n;);t=a[A+100>>2],t&&(o[A+104|0]&&CA(t),a[A+100>>2]=0),a[A+100>>2]=r,a[A+96>>2]=s,f[A+104|0]=1,n=a[A+92>>2]}if(r=a[i+4>>2],t=a[A+100>>2]+(n<<4)|0,a[t>>2]=a[i>>2],a[t+4>>2]=r,n=t+8|0,t=i+8|0,r=a[t+4>>2],a[n>>2]=a[t>>2],a[n+4>>2]=r,a[A+92>>2]=a[A+92>>2]+1,t=a[A+112>>2],(0|t)==a[A+116>>2]&&(u=t?t<<1:1,!((0|t)>=(0|u)))){u?(c=dA(u<<2),t=a[A+112>>2]):c=0,r=a[A+120>>2];A:{if((0|t)>=1)for(l=c,n=r,b=t;a[l>>2]=a[n>>2],l=l+4|0,n=n+4|0,b=b+-1|0,b;);else if(!r)break A;o[A+124|0]&&(CA(r),t=a[A+112>>2]),a[A+120>>2]=0}a[A+120>>2]=c,a[A+116>>2]=u,f[A+124|0]=1}return a[a[A+120>>2]+(t<<2)>>2]=a[e+40>>2],a[A+112>>2]=t+1,_(C[A+4>>2])},sA,ve,function(A,e,r){var i;return A|=0,e|=0,r|=0,A=a[r>>2],A=4==a[A+252>>2]?A:0,i=a[e>>2],!i|4!=a[i+252>>2]||Qt[a[a[i>>2]+28>>2]](i,r,e),A&&Qt[a[a[A>>2]+28>>2]](A,e,r),0},function(A,e,r,i){var f;return A|=0,e|=0,r|=0,i|=0,A=a[r>>2],A=4==a[A+252>>2]?A:0,f=a[e>>2],!f|4!=a[f+252>>2]||Qt[a[a[f>>2]+32>>2]](f,r,i,e),A&&Qt[a[a[A>>2]+32>>2]](A,e,i,r),0},De];function ht(){return r.byteLength/65536|0}return{btGImpactCollisionAlgorithm_RegisterAlgorithm:function(A){A|=0,function(A){o[1716]||(a[427]=8844,f[1716]=1,f[1712]=0),de(A,25,0),de(A,25,1),de(A,25,2),de(A,25,3),de(A,25,4),de(A,25,5),de(A,25,6),de(A,25,7),de(A,25,8),de(A,25,9),de(A,25,10),de(A,25,11),de(A,25,12),de(A,25,13),de(A,25,14),de(A,25,15),de(A,25,16),de(A,25,17),de(A,25,18),de(A,25,19),de(A,25,20),de(A,25,21),de(A,25,22),de(A,25,23),de(A,25,24),de(A,25,25),de(A,25,26),de(A,25,27),de(A,25,28),de(A,25,29),de(A,25,30),de(A,25,31),de(A,25,32),de(A,25,33),de(A,25,34),de(A,25,35),de(A,0,25),de(A,1,25),de(A,2,25),de(A,3,25),de(A,4,25),de(A,5,25),de(A,6,25),de(A,7,25),de(A,8,25),de(A,9,25),de(A,10,25),de(A,11,25),de(A,12,25),de(A,13,25),de(A,14,25),de(A,15,25),de(A,16,25),de(A,17,25),de(A,18,25),de(A,19,25),de(A,20,25),de(A,21,25),de(A,22,25),de(A,23,25),de(A,24,25),de(A,25,25),de(A,26,25),de(A,27,25),de(A,28,25),de(A,29,25),de(A,30,25),de(A,31,25),de(A,32,25),de(A,33,25),de(A,34,25),de(A,35,25)}(A)},btVector3_create:function(A,e,r){var i;return A=_(A),e=_(e),r=_(r),i=dA(16),a[i+12>>2]=0,C[i+8>>2]=r,C[i+4>>2]=e,C[i>>2]=A,0|i},btVector3_setValue:function(A,e,r,i){A|=0,e=_(e),r=_(r),i=_(i),a[A+12>>2]=0,C[A+8>>2]=i,C[A+4>>2]=r,C[A>>2]=e},btVector3_x:et,btVector3_y:rt,btVector3_z:it,btQuaternion_create:function(A,e,r,i){var f;return A=_(A),e=_(e),r=_(r),i=_(i),f=q(16),C[f+12>>2]=i,C[f+8>>2]=r,C[f+4>>2]=e,C[f>>2]=A,0|f},btQuaternion_setValue:function(A,e,r,i,f){A|=0,e=_(e),r=_(r),i=_(i),f=_(f),C[A+12>>2]=f,C[A+8>>2]=i,C[A+4>>2]=r,C[A>>2]=e},btQuaternion_x:et,btQuaternion_y:rt,btQuaternion_z:it,btQuaternion_w:function(A){return A|=0,_(C[A+12>>2])},btTransform_create:function(){return 0|q(64)},btTransform_setOrigin:function(A,e){A|=0,e|=0;var r=0;r=a[e+4>>2],a[A+48>>2]=a[e>>2],a[A+52>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+56|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},btTransform_setRotation:function(A,e){A|=0,e|=0;var r=_(0),i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0);i=C[e+12>>2],o=C[e+8>>2],r=C[e>>2],t=C[e+4>>2],a[A+44>>2]=0,a[A+28>>2]=0,a[A+12>>2]=0,f=_(_(2)/_(_(_(_(r*r)+_(t*t))+_(o*o))+_(i*i))),c=_(o*f),n=_(t*c),l=_(r*f),u=_(i*l),C[A+36>>2]=n+u,s=_(r*c),f=_(t*f),b=_(i*f),C[A+32>>2]=s-b,C[A+24>>2]=n-u,n=_(r*f),i=_(i*c),C[A+16>>2]=n+i,C[A+8>>2]=s+b,C[A+4>>2]=n-i,r=_(r*l),i=_(t*f),C[A+40>>2]=_(1)-_(r+i),b=r,r=_(o*c),C[A+20>>2]=_(1)-_(b+r),C[A>>2]=_(1)-_(i+r)},btTransform_getOrigin:ft,btTransform_getRotation:function(A){var e,r;return A|=0,e=Y-16|0,Y=e,tt(A,e),A=e+8|0,r=a[A+4>>2],a[709]=a[A>>2],a[710]=r,A=a[e+4>>2],a[707]=a[e>>2],a[708]=A,Y=e+16|0,2828},btTransform_setIdentity:function(A){A|=0;var e=0;a[A+4>>2]=0,a[A+8>>2]=0,a[A>>2]=1065353216,a[A+32>>2]=0,a[A+36>>2]=0,e=A+12|0,a[e>>2]=0,a[e+4>>2]=0,e=A+24|0,a[e>>2]=0,a[e+4>>2]=0,a[A+20>>2]=1065353216,e=A+44|0,a[e>>2]=0,a[e+4>>2]=0,a[A+40>>2]=1065353216,e=A+52|0,a[e>>2]=0,a[e+4>>2]=0,a[A+60>>2]=0},btTransform_equal:Rr,btMotionState_destroy:nt,layaMotionState_create:function(){var A;return A=q(8),a[A>>2]=0,a[A+4>>2]=0,a[A>>2]=24708,0|A},layaMotionState_set_rigidBodyID:function(A,e){A|=0,e|=0,a[A+4>>2]=e},btCollisionObject_create:function(){var A;return A=dA(324),Ee(A),0|A},btCollisionObject_setContactProcessingThreshold:function(A,e){A|=0,e=_(e),C[A+184>>2]=e},btCollisionObject_setActivationState:function(A,e){A|=0,e|=0,Ye(A,e)},btCollisionObject_forceActivationState:function(A,e){A|=0,e|=0,a[A+220>>2]=e},btCollisionObject_activate:function(A,e){A|=0,e|=0,Ve(A,e)},btCollisionObject_isActive:function(A){return A|=0,A=a[A+220>>2],2!=(0|A)&5!=(0|A)},btCollisionObject_setRestitution:function(A,e){A|=0,e=_(e),C[A+232>>2]=e,a[A+304>>2]=a[A+304>>2]+1},btCollisionObject_setFriction:function(A,e){A|=0,e=_(e),C[A+228>>2]=e,a[A+304>>2]=a[A+304>>2]+1},btCollisionObject_setRollingFriction:function(A,e){A|=0,e=_(e),C[A+236>>2]=e,a[A+304>>2]=a[A+304>>2]+1},btCollisionObject_getCollisionFlags:function(A){return A|=0,a[A+204>>2]},btCollisionObject_setCollisionFlags:function(A,e){A|=0,e|=0,a[A+204>>2]=e},btCollisionObject_getWorldTransform:hi,btCollisionObject_setWorldTransform:function(A,e){A|=0,e|=0;var r=0,i=0,f=0;a[A+304>>2]=a[A+304>>2]+1,i=e+8|0,f=a[i+4>>2],r=A+12|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,r=a[e+4>>2],a[A+4>>2]=a[e>>2],a[A+8>>2]=r,i=e+24|0,f=a[i+4>>2],r=A+28|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=a[e+20>>2],r=A+20|0,a[r>>2]=a[e+16>>2],a[r+4>>2]=i,i=a[e+36>>2],r=A+36|0,a[r>>2]=a[e+32>>2],a[r+4>>2]=i,i=e+40|0,f=a[i+4>>2],r=A+44|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=e+56|0,f=a[i+4>>2],r=A+60|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,r=a[e+52>>2],A=A+52|0,a[A>>2]=a[e+48>>2],a[A+4>>2]=r},btCollisionObject_setInterpolationWorldTransform:function(A,e){A|=0,e|=0;var r=0,i=0,f=0;a[A+304>>2]=a[A+304>>2]+1,i=e+8|0,f=a[i+4>>2],r=A+76|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,r=a[e+4>>2],a[A+68>>2]=a[e>>2],a[A+72>>2]=r,i=e+24|0,f=a[i+4>>2],r=A+92|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=a[e+20>>2],r=A+84|0,a[r>>2]=a[e+16>>2],a[r+4>>2]=i,i=a[e+36>>2],r=A+100|0,a[r>>2]=a[e+32>>2],a[r+4>>2]=i,i=e+40|0,f=a[i+4>>2],r=A+108|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,i=e+56|0,f=a[i+4>>2],r=A+124|0,a[r>>2]=a[i>>2],a[r+4>>2]=f,r=a[e+52>>2],A=A+116|0,a[A>>2]=a[e+48>>2],a[A+4>>2]=r},btCollisionObject_setCollisionShape:function(A,e){A|=0,e|=0,Qt[a[a[A>>2]+8>>2]](A,e)},btCollisionObject_getCcdMotionThreshold:function(A){return A|=0,_(C[A+276>>2])},btCollisionObject_setCcdMotionThreshold:function(A,e){A|=0,e=_(e),C[A+276>>2]=e},btCollisionObject_getCcdSweptSphereRadius:function(A){return A|=0,_(C[A+272>>2])},btCollisionObject_setCcdSweptSphereRadius:function(A,e){A|=0,e=_(e),C[A+272>>2]=e},btCollisionObject_getUserIndex:function(A){return A|=0,a[A+264>>2]},btCollisionObject_setUserIndex:function(A,e){A|=0,e|=0,a[A+264>>2]=e},btCollisionObject_getActivationState:function(A){return A|=0,a[A+220>>2]},btCollisionObject_setInterpolationAngularVelocity:function(A,e){A|=0,e|=0;var r=0;a[A+304>>2]=a[A+304>>2]+1,r=a[e+4>>2],a[A+148>>2]=a[e>>2],a[A+152>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+156|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},btCollisionObject_setInterpolationLinearVelocity:function(A,e){A|=0,e|=0;var r=0;a[A+304>>2]=a[A+304>>2]+1,r=a[e+4>>2],a[A+132>>2]=a[e>>2],a[A+136>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+140|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},btCollisionObject_destroy:nt,RayResultCallback_set_m_flags:function(A,e){A|=0,e|=0,a[A+20>>2]=e},RayResultCallback_hasHit:function(A){return A|=0,0!=a[A+8>>2]|0},RayResultCallback_set_m_collisionFilterGroup:at,RayResultCallback_set_m_collisionFilterMask:function(A,e){A|=0,e|=0,a[A+16>>2]=e},RayResultCallback_get_m_closestHitFraction:rt,RayResultCallback_set_m_closestHitFraction:ot,RayResultCallback_get_m_collisionObject:mi,RayResultCallback_set_m_collisionObject:ct,ClosestRayResultCallback_create:function(A,e){A|=0,e|=0;var r,i,f=0;return r=q(88),a[r+20>>2]=0,a[r+12>>2]=1,a[r+16>>2]=-1,a[r+4>>2]=1065353216,a[r+8>>2]=0,a[r>>2]=24788,f=a[A+4>>2],a[r+24>>2]=a[A>>2],a[r+28>>2]=f,A=A+8|0,i=a[A+4>>2],f=r+32|0,a[f>>2]=a[A>>2],a[f+4>>2]=i,A=a[e+4>>2],a[r+40>>2]=a[e>>2],a[r+44>>2]=A,e=e+8|0,f=a[e+4>>2],A=r+48|0,a[A>>2]=a[e>>2],a[A+4>>2]=f,0|r},ClosestRayResultCallback_get_m_rayFromWorld:bt,ClosestRayResultCallback_set_m_rayFromWorld:function(A,e){A|=0,e|=0;var r=0;r=a[e+4>>2],a[A+24>>2]=a[e>>2],a[A+28>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+32|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},ClosestRayResultCallback_get_m_rayToWorld:function(A){return A|=0,A+40|0},ClosestRayResultCallback_set_m_rayToWorld:function(A,e){A|=0,e|=0;var r=0;r=a[e+4>>2],a[A+40>>2]=a[e>>2],a[A+44>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+48|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},ClosestRayResultCallback_get_m_hitNormalWorld:Le,ClosestRayResultCallback_get_m_hitPointWorld:ze,tBtCollisionObjectArray_size:function(A){return A|=0,a[A+4>>2]},tBtCollisionObjectArray_at:function(A,e){return A|=0,e|=0,a[a[A+12>>2]+(e<<2)>>2]},tBtCollisionObjectArray_clear:lt,tVector3Array_at:function(A,e){return A|=0,e|=0,a[A+12>>2]+(e<<4)|0},tVector3Array_clear:lt,tScalarArray_at:function(A,e){return A|=0,e|=0,_(C[a[A+12>>2]+(e<<2)>>2])},tScalarArray_clear:lt,AllHitsRayResultCallback_create:function(A,e){A|=0,e|=0;var r,i,t=0;return r=q(136),a[r+28>>2]=0,a[r+32>>2]=0,a[r+20>>2]=0,a[r+12>>2]=1,a[r+16>>2]=-1,a[r+4>>2]=1065353216,a[r+8>>2]=0,f[r+40|0]=1,a[r>>2]=24920,a[r+36>>2]=0,t=a[A+4>>2],a[r+44>>2]=a[A>>2],a[r+48>>2]=t,t=A+8|0,A=a[t+4>>2],i=r+52|0,a[i>>2]=a[t>>2],a[i+4>>2]=A,A=a[e+4>>2],a[r+60>>2]=a[e>>2],a[r+64>>2]=A,A=e+8|0,t=a[A>>2],e=a[A+4>>2],a[r+88>>2]=0,a[r+80>>2]=0,a[r+84>>2]=0,a[r+120>>2]=0,a[r+124>>2]=0,a[r+128>>2]=0,a[r+108>>2]=0,f[r+132|0]=1,f[r+112|0]=1,f[r+92|0]=1,a[r+100>>2]=0,a[r+104>>2]=0,A=r+68|0,a[A>>2]=t,a[A+4>>2]=e,0|r},AllHitsRayResultCallback_get_m_rayFromWorld:function(A){return A|=0,A+44|0},AllHitsRayResultCallback_set_m_rayFromWorld:function(A,e){A|=0,e|=0;var r=0;r=a[e+4>>2],a[A+44>>2]=a[e>>2],a[A+48>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+52|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},AllHitsRayResultCallback_get_m_rayToWorld:function(A){return A|=0,A+60|0},AllHitsRayResultCallback_set_m_rayToWorld:function(A,e){A|=0,e|=0;var r=0;r=a[e+4>>2],a[A+60>>2]=a[e>>2],a[A+64>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+68|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},AllHitsRayResultCallback_get_m_hitPointWorld:function(A){return A|=0,A+96|0},AllHitsRayResultCallback_get_m_hitNormalWorld:function(A){return A|=0,A+76|0},AllHitsRayResultCallback_get_m_collisionObjects:bt,AllHitsRayResultCallback_get_m_hitFractions:function(A){return A|=0,A+116|0},btManifoldPoint_get_m_positionWorldOnA:ft,btManifoldPoint_get_m_positionWorldOnB:ut,btManifoldPoint_get_m_normalWorldOnB:st,btManifoldPoint_getDistance:function(A){return A|=0,_(C[A+80>>2])},ConvexResultCallback_hasHit:function(A){return A|=0,C[A+4>>2]<_(1)|0},ConvexResultCallback_set_m_collisionFilterGroup:ct,ConvexResultCallback_set_m_collisionFilterMask:at,ConvexResultCallback_get_m_closestHitFraction:rt,ConvexResultCallback_set_m_closestHitFraction:ot,ClosestConvexResultCallback_create:function(A,e){A|=0,e|=0;var r,i,f=0;return r=q(84),a[r+12>>2]=-1,a[r+4>>2]=1065353216,a[r+8>>2]=1,a[r>>2]=25004,f=a[A+4>>2],a[r+16>>2]=a[A>>2],a[r+20>>2]=f,A=A+8|0,i=a[A+4>>2],f=r+24|0,a[f>>2]=a[A>>2],a[f+4>>2]=i,A=a[e+4>>2],a[r+32>>2]=a[e>>2],a[r+36>>2]=A,e=e+8|0,f=a[e+4>>2],A=r+40|0,a[A>>2]=a[e>>2],a[A+4>>2]=f,a[r+80>>2]=0,0|r},ClosestConvexResultCallback_get_m_hitNormalWorld:ft,ClosestConvexResultCallback_get_m_hitPointWorld:st,ClosestConvexResultCallback_get_m_hitCollisionObject:function(A){return A|=0,a[A+80>>2]},ClosestConvexResultCallback_set_m_hitCollisionObject:function(A,e){A|=0,e|=0,a[A+80>>2]=e},AllConvexResultCallback_create:function(A,e){A|=0,e|=0;var r,i,t=0;return r=q(128),a[r+20>>2]=0,a[r+24>>2]=0,a[r+12>>2]=-1,a[r+4>>2]=1065353216,a[r+8>>2]=1,f[r+32|0]=1,a[r>>2]=25144,a[r+28>>2]=0,t=a[A+4>>2],a[r+36>>2]=a[A>>2],a[r+40>>2]=t,A=A+8|0,i=a[A+4>>2],t=r+44|0,a[t>>2]=a[A>>2],a[t+4>>2]=i,A=a[e+4>>2],a[r+52>>2]=a[e>>2],a[r+56>>2]=A,A=e+8|0,e=a[A>>2],A=a[A+4>>2],a[r+80>>2]=0,a[r+72>>2]=0,a[r+76>>2]=0,a[r+100>>2]=0,a[r+112>>2]=0,a[r+116>>2]=0,a[r+120>>2]=0,f[r+124|0]=1,f[r+104|0]=1,f[r+84|0]=1,a[r+92>>2]=0,a[r+96>>2]=0,t=r+60|0,a[t>>2]=e,a[t+4>>2]=A,0|r},AllConvexResultCallback_get_m_hitNormalWorld:function(A){return A|=0,A+68|0},AllConvexResultCallback_get_m_hitPointWorld:function(A){return A|=0,A+88|0},AllConvexResultCallback_get_m_hitFractions:function(A){return A|=0,A+108|0},AllConvexResultCallback_get_m_collisionObjects:Qe,btCollisionShape_getLocalScaling:function(A){return A|=0,0|Qt[a[a[A>>2]+28>>2]](A)},btCollisionShape_setLocalScaling:function(A,e){A|=0,e|=0,Qt[a[a[A>>2]+24>>2]](A,e)},btCollisionShape_calculateLocalInertia:function(A,e,r){A|=0,e=_(e),r|=0,Qt[a[a[A>>2]+32>>2]](A,e,r)},btCollisionShape_destroy:nt,btBoxShape_create:function(A){var e;return A|=0,e=dA(60),function(A,e){var r=_(0),i=_(0),f=_(0),t=_(0);zA(A),r=C[e>>2],f=C[e+4>>2],i=C[e+8>>2],a[A+44>>2]=0,t=_(i*C[A+24>>2]),i=C[A+48>>2],C[A+40>>2]=t-i,C[A+36>>2]=_(f*C[A+20>>2])-i,C[A+32>>2]=_(r*C[A+16>>2])-i,a[A+4>>2]=0,a[A>>2]=9056,r=C[e>>2],f=C[e+8>>2],t=C[e+4>>2],r=_(C[((r<t?(r<f^1)<<1:t<f?1:2)<<2)+e>>2]*_(.10000000149011612)),r<i&&Ie(A,r)}(e,A),0|e},btCapsuleShape_create:function(A,e){var r;return A=_(A),e=_(e),r=dA(60),function(A,e,r){DA(A),C[A+48>>2]=e,a[A>>2]=6056,a[A+56>>2]=1,a[A+4>>2]=10,a[A+44>>2]=0,C[A+40>>2]=e,C[A+36>>2]=r*_(.5),C[A+32>>2]=e}(r,A,e),0|r},btCapsuleShapeX_create:function(A,e){var r;return A=_(A),e=_(e),r=dA(60),function(A,e,r){DA(A),a[A+56>>2]=0,C[A+48>>2]=e,a[A>>2]=6156,a[A+4>>2]=10,a[A+44>>2]=0,C[A+40>>2]=e,C[A+36>>2]=e,C[A+32>>2]=r*_(.5)}(r,A,e),0|r},btCapsuleShapeZ_create:function(A,e){var r;return A=_(A),e=_(e),r=dA(60),function(A,e,r){DA(A),a[A+56>>2]=2,C[A+48>>2]=e,a[A>>2]=6256,a[A+4>>2]=10,a[A+44>>2]=0,C[A+40>>2]=r*_(.5),C[A+36>>2]=e,C[A+32>>2]=e}(r,A,e),0|r},btCylinderShape_create:function(A){var e;return A|=0,e=dA(60),function(A,e){var r=_(0),i=_(0),f=_(0),t=_(0);DA(A),r=C[e>>2],f=C[e+4>>2],i=C[e+8>>2],a[A+44>>2]=0,t=_(i*C[A+24>>2]),i=C[A+48>>2],C[A+40>>2]=t-i,C[A+36>>2]=_(f*C[A+20>>2])-i,C[A+32>>2]=_(r*C[A+16>>2])-i,a[A+56>>2]=1,a[A>>2]=9392,r=C[e>>2],f=C[e+8>>2],t=C[e+4>>2],r=_(C[((r<t?(r<f^1)<<1:t<f?1:2)<<2)+e>>2]*_(.10000000149011612)),r<i&&Ie(A,r),a[A+4>>2]=13}(e,A),0|e},btCylinderShapeX_create:function(A){var e;return A|=0,e=dA(60),function(A,e){var r=_(0),i=_(0),f=_(0),t=_(0);DA(A),r=C[e>>2],f=C[e+4>>2],i=C[e+8>>2],a[A+44>>2]=0,t=_(i*C[A+24>>2]),i=C[A+48>>2],C[A+40>>2]=t-i,C[A+36>>2]=_(f*C[A+20>>2])-i,C[A+32>>2]=_(r*C[A+16>>2])-i,a[A+56>>2]=1,a[A>>2]=9392,r=C[e>>2],f=C[e+8>>2],t=C[e+4>>2],r=_(C[((r<t?(r<f^1)<<1:t<f?1:2)<<2)+e>>2]*_(.10000000149011612)),r<i&&Ie(A,r),a[A+56>>2]=0,a[A>>2]=9496,a[A+4>>2]=13}(e,A),0|e},btCylinderShapeZ_create:function(A){var e;return A|=0,e=dA(60),function(A,e){var r=_(0),i=_(0),f=_(0),t=_(0);DA(A),r=C[e>>2],f=C[e+4>>2],i=C[e+8>>2],a[A+44>>2]=0,t=_(i*C[A+24>>2]),i=C[A+48>>2],C[A+40>>2]=t-i,C[A+36>>2]=_(f*C[A+20>>2])-i,C[A+32>>2]=_(r*C[A+16>>2])-i,a[A+56>>2]=1,a[A>>2]=9392,r=C[e>>2],f=C[e+8>>2],t=C[e+4>>2],r=_(C[((r<t?(r<f^1)<<1:t<f?1:2)<<2)+e>>2]*_(.10000000149011612)),r<i&&Ie(A,r),a[A+56>>2]=2,a[A>>2]=9600,a[A+4>>2]=13}(e,A),0|e},btSphereShape_create:function(A){var e,r;return A=_(A),e=dA(56),DA(e),a[e+28>>2]=0,a[e+32>>2]=0,a[e+24>>2]=1065353216,a[e+16>>2]=1065353216,a[e+20>>2]=1065353216,a[e+4>>2]=8,a[e>>2]=9852,r=e+36|0,a[r>>2]=0,a[r+4>>2]=0,a[e+44>>2]=0,a[e+52>>2]=0,C[e+48>>2]=A,C[e+32>>2]=A,0|e},btConeShape_create:function(A,e){var r;return A=_(A),e=_(e),r=dA(80),function(A,e,r){DA(A),C[A+64>>2]=r,C[A+60>>2]=e,a[A>>2]=6504,a[A+76>>2]=2,a[A+68>>2]=0,a[A+72>>2]=1,a[A+4>>2]=11,C[A+40>>2]=e,C[A+36>>2]=r,C[A+32>>2]=e,C[A+56>>2]=e/_(y(_(_(e*e)+_(r*r))))}(r,A,e),0|r},btConeShapeX_create:function(A,e){var r;return A=_(A),e=_(e),r=dA(80),function(A,e,r){DA(A),C[A+64>>2]=r,C[A+60>>2]=e,a[A+4>>2]=11,a[A+76>>2]=2,a[A+68>>2]=1,a[A+72>>2]=0,a[A>>2]=6704,C[A+36>>2]=e,C[A+40>>2]=e,C[A+32>>2]=r,C[A+56>>2]=e/_(y(_(_(e*e)+_(r*r))))}(r,A,e),0|r},btConeShapeZ_create:function(A,e){var r;return A=_(A),e=_(e),r=dA(80),function(A,e,r){DA(A),C[A+64>>2]=r,C[A+60>>2]=e,a[A+4>>2]=11,a[A+76>>2]=1,a[A+68>>2]=0,a[A+72>>2]=2,a[A>>2]=6604,C[A+40>>2]=r,C[A+32>>2]=e,C[A+36>>2]=e,C[A+56>>2]=e/_(y(_(_(e*e)+_(r*r))))}(r,A,e),0|r},btStaticPlaneShape_create:function(A,e){var r;return A|=0,e=_(e),r=dA(88),function(A,e,r){var i,f=_(0),t=_(0),n=_(0);He(A),a[A>>2]=10412,f=C[e+8>>2],t=C[e>>2],n=C[e+4>>2],e=a[e+12>>2],i=A+80|0,a[i>>2]=1065353216,a[i+4>>2]=0,a[A+72>>2]=1065353216,a[A+76>>2]=1065353216,C[A+68>>2]=r,a[A- -64>>2]=e,a[A+4>>2]=28,r=_(_(1)/_(y(_(_(_(t*t)+_(n*n))+_(f*f))))),C[A+60>>2]=f*r,C[A+56>>2]=n*r,C[A+52>>2]=t*r}(r,A,e),0|r},btGImpactShapeInterface_updateBound:function(A){A|=0,o[A+52|0]&&(Qt[a[a[A>>2]+68>>2]](A),f[A+52|0]=0)},btGImpactMeshShape_create:function(A){var e;return A|=0,e=dA(172),function(A,e){var r=0,i=0,t=0,n=0,c=0,b=0,l=0;if(He(A),r=A- -64|0,a[r>>2]=1065353216,a[r+4>>2]=0,a[A+56>>2]=1065353216,a[A+60>>2]=1065353216,r=A+36|0,a[r>>2]=-8388609,a[r+4>>2]=-8388609,a[A+20>>2]=2139095039,a[A+24>>2]=2139095039,a[A>>2]=10820,a[A+88>>2]=0,f[A+92|0]=1,r=A+80|0,a[r>>2]=0,a[r+4>>2]=0,a[A+144>>2]=0,a[A+72>>2]=0,f[A+52|0]=1,a[A+44>>2]=-8388609,a[A+28>>2]=2139095039,a[A+4>>2]=25,f[A+168|0]=1,a[A+164>>2]=0,r=A+156|0,a[r>>2]=0,a[r+4>>2]=0,a[A+148>>2]=e,(0|Qt[a[a[e>>2]+28>>2]](e))>=1)for(;;){if(l=dA(216),Pe(l,e,c),i=a[A+156>>2],(0|i)==a[A+160>>2]&&(t=i?i<<1:1,!((0|i)>=(0|t)))){if(t?(b=dA(t<<2),i=a[A+156>>2]):b=0,(0|i)>=1)for(n=0,r=i;a[n+b>>2]=a[a[A+164>>2]+n>>2],n=n+4|0,r=r+-1|0,r;);r=a[A+164>>2],r&&(o[A+168|0]&&(CA(r),i=a[A+156>>2]),a[A+164>>2]=0),a[A+164>>2]=b,f[A+168|0]=1,a[A+160>>2]=t}if(a[A+156>>2]=i+1,a[a[A+164>>2]+(i<<2)>>2]=l,c=c+1|0,!((0|c)<(0|Qt[a[a[e>>2]+28>>2]](e))))break}}(e,A),0|e},btCompoundShape_create:function(){var A;return A=dA(96),function(A){var e=0,r=0,i=0,t=0,n=0,c=0,b=0,l=0;if(a[A+12>>2]=-1,a[A+4>>2]=31,a[A+8>>2]=0,a[A>>2]=14216,a[A+76>>2]=0,a[A+80>>2]=1065353216,a[A+68>>2]=0,a[A+72>>2]=1,a[A+52>>2]=-581039253,a[A+56>>2]=-581039253,a[A+36>>2]=1566444395,a[A+40>>2]=1566444395,f[A+32|0]=1,a[A+28>>2]=0,a[A+92>>2]=0,e=A+84|0,a[e>>2]=1065353216,a[e+4>>2]=1065353216,e=A+60|0,a[e>>2]=-581039253,a[e+4>>2]=0,e=A+44|0,a[e>>2]=1566444395,a[e+4>>2]=0,e=A+20|0,a[e>>2]=0,a[e+4>>2]=0,e=dA(40),er(e),a[A+68>>2]=e,a[A+24>>2]<0){if(l=a[A+20>>2],(0|l)>=1)for(e=64;n=a[A+28>>2]+e|0,r=n+-64|0,t=a[r+4>>2],i=e+-64|0,a[i>>2]=a[r>>2],a[i+4>>2]=t,r=r+8|0,t=a[r+4>>2],i=i+8|0,a[i>>2]=a[r>>2],a[i+4>>2]=t,r=n+-48|0,i=r+8|0,b=a[i+4>>2],t=e+-48|0,c=t+8|0,a[c>>2]=a[i>>2],a[c+4>>2]=b,i=a[r+4>>2],a[t>>2]=a[r>>2],a[t+4>>2]=i,r=n+-32|0,i=r+8|0,b=a[i+4>>2],t=e+-32|0,c=t+8|0,a[c>>2]=a[i>>2],a[c+4>>2]=b,i=a[r+4>>2],a[t>>2]=a[r>>2],a[t+4>>2]=i,r=n+-16|0,i=r+8|0,b=a[i+4>>2],t=e+-16|0,c=t+8|0,a[c>>2]=a[i>>2],a[c+4>>2]=b,i=a[r+4>>2],a[t>>2]=a[r>>2],a[t+4>>2]=i,r=a[n+4>>2],a[e>>2]=a[n>>2],a[e+4>>2]=r,n=n+8|0,r=a[n+4>>2],t=e+8|0,a[t>>2]=a[n>>2],a[t+4>>2]=r,e=e+80|0,l=l+-1|0,l;);e=a[A+28>>2],e&&(o[A+32|0]&&CA(e),a[A+28>>2]=0),a[A+28>>2]=0,f[A+32|0]=1,a[A+24>>2]=0}}(A),0|A},btCompoundShape_addChildShape:function(A,e,r){A|=0,e|=0,r|=0,gr(A,e,r)},btCompoundShape_removeChildShapeByIndex:function(A,e){A|=0,e|=0,Br(A,e)},btCompoundShape_getChildShape:function(A,e){return A|=0,e|=0,a[64+(a[A+28>>2]+B(e,80)|0)>>2]},btCompoundShape_updateChildTransform:function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,function(A,e,r,i){var f,t,n=0,o=0,c=0;f=Y+-64|0,Y=f,o=a[r+4>>2],t=B(e,80),e=t+a[A+28>>2]|0,a[e>>2]=a[r>>2],a[e+4>>2]=o,o=r+8|0,c=a[o+4>>2],n=e+8|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,o=r+24|0,c=a[o+4>>2],n=e+24|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,n=a[r+20>>2],a[e+16>>2]=a[r+16>>2],a[e+20>>2]=n,o=r+40|0,c=a[o+4>>2],n=e+40|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,n=a[r+36>>2],a[e+32>>2]=a[r+32>>2],a[e+36>>2]=n,o=r+56|0,c=a[o+4>>2],n=e+56|0,a[n>>2]=a[o>>2],a[n+4>>2]=c,n=a[r+52>>2],a[e+48>>2]=a[r+48>>2],a[e+52>>2]=n,a[A+68>>2]&&(e=a[64+(a[A+28>>2]+t|0)>>2],Qt[a[a[e>>2]+8>>2]](e,r,f+48|0,f+32|0),r=f+56|0,n=a[r+4>>2],e=f+8|0,a[e>>2]=a[r>>2],a[e+4>>2]=n,r=f+40|0,n=a[r+4>>2],e=f+24|0,a[e>>2]=a[r>>2],a[e+4>>2]=n,e=a[f+36>>2],a[f+16>>2]=a[f+32>>2],a[f+20>>2]=e,e=a[f+52>>2],a[f>>2]=a[f+48>>2],a[f+4>>2]=e,cr(a[A+68>>2],a[76+(a[A+28>>2]+t|0)>>2],f)),i&&Qt[a[a[A>>2]+68>>2]](A),Y=f- -64|0}(A,e,r,i)},btStridingMeshInterface_destroy:nt,btTriangleMesh_create:function(){var A;return A=dA(172),function(A){var e=0,r=0,i=0,t=0,n=0,c=0,b=0,l=0;if(a[A+4>>2]=1065353216,a[A+8>>2]=1065353216,a[A+48>>2]=0,a[A>>2]=14676,f[A+36|0]=1,e=A+12|0,a[e>>2]=1065353216,a[e+4>>2]=0,a[A+32>>2]=0,r=A+24|0,e=r,a[e>>2]=0,a[e+4>>2]=0,f[A+100|0]=1,a[A+96>>2]=0,f[A+120|0]=1,e=A+88|0,a[e>>2]=0,a[e+4>>2]=0,a[A+116>>2]=0,f[A+140|0]=1,e=A+108|0,a[e>>2]=0,a[e+4>>2]=0,a[A+136>>2]=0,f[A+160|0]=1,e=A+128|0,a[e>>2]=0,a[e+4>>2]=0,a[A+168>>2]=0,f[A+164|0]=1,e=A+148|0,a[e>>2]=0,a[e+4>>2]=0,a[A+156>>2]=0,f[A+165|0]=1,e=dA(32),n=a[r>>2],(0|n)>=1)for(;c=a[A+32>>2]+t|0,i=c,b=a[i+4>>2],r=e+t|0,a[r>>2]=a[i>>2],a[r+4>>2]=b,i=i+24|0,b=a[i+4>>2],l=r+24|0,a[l>>2]=a[i>>2],a[l+4>>2]=b,i=c+16|0,b=a[i+4>>2],l=r+16|0,a[l>>2]=a[i>>2],a[l+4>>2]=b,c=c+8|0,i=a[c+4>>2],r=r+8|0,a[r>>2]=a[c>>2],a[r+4>>2]=i,t=t+32|0,n=n+-1|0,n;);t=a[A+32>>2],t&&(o[A+36|0]&&CA(t),a[A+32>>2]=0),a[A+32>>2]=e,f[A+36|0]=1,a[A+28>>2]=1,e=(a[A+24>>2]<<5)+e|0,a[e+24>>2]=2,a[e+28>>2]=0,a[e+16>>2]=0,a[e+20>>2]=16,a[e+8>>2]=12,a[e+12>>2]=0,a[e>>2]=0,a[e+4>>2]=0,a[A+24>>2]=a[A+24>>2]+1,e=a[A+32>>2],a[e+4>>2]=0,t=o[A+164|0],a[e+24>>2]=t?2:3,n=a[(t?128:148)+A>>2],r=12,a[e+8>>2]=t?12:6,a[e>>2]=(0|n)/3,o[A+165|0]?(r=16,A=a[A+88>>2]):A=a[A+108>>2]/3|0,a[e+20>>2]=r,a[e+16>>2]=0,a[e+12>>2]=A}(A),0|A},btTriangleMesh_addTriangle:function(A,e,r,i,f){A|=0,e|=0,r|=0,i|=0,f|=0,function(A,e,r,i,f){var t;t=a[A+32>>2],a[t>>2]=a[t>>2]+1,Qr(A,hr(A,e,f)),Qr(A,hr(A,r,f)),Qr(A,hr(A,i,f))}(A,e,r,i,f)},btDefaultCollisionConfiguration_create:function(){var A,e;return A=Y-32|0,Y=A,e=q(88),a[A+24>>2]=0,a[A+28>>2]=1,a[A+16>>2]=4096,a[A+20>>2]=4096,a[A+8>>2]=0,a[A+12>>2]=0,Bi(e,A+8|0),Y=A+32|0,0|e},btDefaultCollisionConfiguration_destroy:nt,btPersistentManifold_getBody0:function(A){return A|=0,a[A+772>>2]},btPersistentManifold_getBody1:function(A){return A|=0,a[A+776>>2]},btPersistentManifold_getNumContacts:function(A){return A|=0,a[A+780>>2]},btPersistentManifold_getContactPoint:function(A,e){return A|=0,e|=0,4+(B(e,192)+A|0)|0},btDispatcher_getNumManifolds:kt,btDispatcher_getManifoldByIndexInternal:function(A,e){return A|=0,e|=0,0|Qt[a[a[A>>2]+40>>2]](A,e)},btCollisionDispatcher_create:function(A){var e;return A|=0,e=q(10448),function(A,e){var r=0,i=0,t=0,n=0,o=0,c=0;for(a[A+28>>2]=7720,a[A>>2]=7860,a[A+4>>2]=2,a[A+10444>>2]=e,a[A+64>>2]=111,f[A+24|0]=1,a[A+20>>2]=0,a[A+60>>2]=0,r=A+12|0,a[r>>2]=0,a[r+4>>2]=0,o=A,c=0|Qt[a[a[e>>2]+12>>2]](e),a[o+68>>2]=c,o=A,c=0|Qt[a[a[e>>2]+8>>2]](e),a[o+72>>2]=c,r=A+5260|0;;){for(e=r,i=0;t=a[A+10444>>2],o=e+-5184|0,c=0|Qt[a[a[t>>2]+16>>2]](t,n,i),a[o>>2]=c,t=a[A+10444>>2],o=e,c=0|Qt[a[a[t>>2]+20>>2]](t,n,i),a[o>>2]=c,e=e+4|0,i=i+1|0,36!=(0|i););if(r=r+144|0,n=n+1|0,36==(0|n))break}}(e,A),0|e},btCollisionDispatcher_destroy:nt,btOverlappingPairCache_setInternalGhostPairCallback:vt,btDbvtBroadphase_create:function(){var A;return A=q(176),yi(A),0|A},btDbvtBroadphase_getOverlappingPairCache:kt,btDbvtBroadphase_destroy:nt,btRigidBodyConstructionInfo_create:function(A,e,r,i){var t;return A=_(A),e|=0,r|=0,i|=0,t=q(144),a[t+72>>2]=r,a[t+4>>2]=e,C[t>>2]=A,e=a[i+4>>2],a[t+76>>2]=a[i>>2],a[t+80>>2]=e,r=i+8|0,e=a[r+4>>2],i=t+84|0,a[i>>2]=a[r>>2],a[i+4>>2]=e,a[t+136>>2]=1008981770,a[t+140>>2]=1008981770,a[t+128>>2]=1000593162,a[t+132>>2]=1008981770,f[t+124|0]=0,a[t+116>>2]=1061997773,a[t+120>>2]=1065353216,a[t+108>>2]=0,a[t+112>>2]=0,a[t+100>>2]=1056964608,a[t+104>>2]=0,a[t+92>>2]=0,a[t+96>>2]=0,a[t+8>>2]=1065353216,e=t+20|0,a[e>>2]=0,a[e+4>>2]=0,a[t+12>>2]=0,a[t+16>>2]=0,a[t+28>>2]=1065353216,e=t+40|0,a[e>>2]=0,a[e+4>>2]=0,a[t+32>>2]=0,a[t+36>>2]=0,a[t+48>>2]=1065353216,a[t+68>>2]=0,e=t+60|0,a[e>>2]=0,a[e+4>>2]=0,a[t+52>>2]=0,a[t+56>>2]=0,0|t},btRigidBodyConstructionInfo_destroy:function(A){A|=0,A&&$(A)},btRigidBody_create:function(A){var e;return A|=0,e=dA(676),Ii(e,A),0|e},btRigidBody_setCenterOfMassTransform:ji,btRigidBody_setSleepingThresholds:function(A,e,r){A|=0,e=_(e),r=_(r),C[A+536>>2]=r,C[A+532>>2]=e},btRigidBody_getLinearSleepingThreshold:function(A){return A|=0,_(C[A+532>>2])},btRigidBody_getAngularSleepingThreshold:function(A){return A|=0,_(C[A+536>>2])},btRigidBody_setDamping:function(A,e,r){A|=0,e=_(e),r=_(r),function(A,e,r){var i;i=Y-16|0,C[i+8>>2]=r,C[i+12>>2]=e,a[i+4>>2]=0,a[i>>2]=1065353216,a[A+504>>2]=a[(e<_(0)?i+4|0:e>_(1)?i:i+12|0)>>2],a[i+4>>2]=0,a[i>>2]=1065353216,a[A+508>>2]=a[(r<_(0)?i+4|0:r>_(1)?i:i+8|0)>>2]}(A,e,r)},btRigidBody_setMassProps:function(A,e,r){A|=0,e=_(e),r|=0,function(A,e,r){var i,f=_(0),t=_(0),n=_(0);i=a[A+204>>2],e!=_(0)?(a[A+204>>2]=-2&i,f=_(_(1)/e)):a[A+204>>2]=1|i,C[A+404>>2]=f,a[A+436>>2]=0,C[A+424>>2]=C[A+440>>2]*e,C[A+432>>2]=C[A+448>>2]*e,C[A+428>>2]=C[A+444>>2]*e,e=C[r+8>>2],t=C[r+4>>2],n=C[r>>2],C[A+620>>2]=C[A+408>>2]*f,C[A+624>>2]=f*C[A+412>>2],C[A+628>>2]=f*C[A+416>>2],a[A+632>>2]=0,a[A+468>>2]=0,C[A+456>>2]=n!=_(0)?_(_(1)/n):_(0),C[A+460>>2]=t!=_(0)?_(_(1)/t):_(0),C[A+464>>2]=e!=_(0)?_(_(1)/e):_(0)}(A,e,r)},btRigidBody_setLinearFactor:function(A,e){A|=0,e|=0;var r,i=0,f=_(0);i=a[e+4>>2],a[A+408>>2]=a[e>>2],a[A+412>>2]=i,e=e+8|0,r=a[e+4>>2],i=A+416|0,a[i>>2]=a[e>>2],a[i+4>>2]=r,a[A+632>>2]=0,f=C[A+404>>2],C[A+624>>2]=f*C[A+412>>2],C[A+620>>2]=f*C[A+408>>2],C[A+628>>2]=f*C[i>>2]},btRigidBody_applyTorque:function(A,e){A|=0,e|=0;var r=_(0),i=_(0);r=C[e+8>>2],i=C[e+4>>2],C[A+488>>2]=_(C[e>>2]*C[A+604>>2])+C[A+488>>2],e=A+492|0,C[e>>2]=_(i*C[A+608>>2])+C[e>>2],e=A+496|0,C[e>>2]=_(r*C[A+612>>2])+C[e>>2]},btRigidBody_applyForce:function(A,e,r){A|=0,e|=0,r|=0;var i=_(0),f=_(0),t=0,n=_(0),a=_(0),o=_(0),c=_(0),b=_(0),l=_(0);a=C[e+8>>2],i=C[e+4>>2],f=C[A+408>>2],C[A+472>>2]=_(C[e>>2]*f)+C[A+472>>2],t=A+476|0,o=i,i=C[A+412>>2],C[t>>2]=_(o*i)+C[t>>2],t=A+480|0,n=C[A+416>>2],C[t>>2]=_(a*n)+C[t>>2],l=C[e>>2],a=C[r>>2],c=C[r+4>>2],n=_(n*C[e+8>>2]),i=_(i*C[e+4>>2]),b=C[r+8>>2],C[A+488>>2]=_(_(_(c*n)-_(i*b))*C[A+604>>2])+C[A+488>>2],o=C[A+612>>2],e=A+492|0,f=_(f*l),C[e>>2]=_(_(_(b*f)-_(n*a))*C[A+608>>2])+C[e>>2],A=A+496|0,C[A>>2]=_(o*_(_(i*a)-_(f*c)))+C[A>>2]},btRigidBody_applyCentralForce:function(A,e){A|=0,e|=0;var r=_(0),i=_(0);r=C[e+8>>2],i=C[e+4>>2],C[A+472>>2]=_(C[e>>2]*C[A+408>>2])+C[A+472>>2],e=A+476|0,C[e>>2]=_(i*C[A+412>>2])+C[e>>2],e=A+480|0,C[e>>2]=_(r*C[A+416>>2])+C[e>>2]},btRigidBody_applyTorqueImpulse:function(A,e){A|=0,e|=0;var r=_(0),i=_(0),f=_(0);r=C[e>>2],i=C[e+4>>2],f=C[e+8>>2],C[A+388>>2]=_(_(_(_(C[A+324>>2]*r)+_(C[A+328>>2]*i))+_(C[A+332>>2]*f))*C[A+604>>2])+C[A+388>>2],e=A+392|0,C[e>>2]=_(_(_(_(r*C[A+340>>2])+_(i*C[A+344>>2]))+_(f*C[A+348>>2]))*C[A+608>>2])+C[e>>2],e=A+396|0,C[e>>2]=_(_(_(_(r*C[A+356>>2])+_(i*C[A+360>>2]))+_(f*C[A+364>>2]))*C[A+612>>2])+C[e>>2]},btRigidBody_applyImpulse:function(A,e,r){A|=0,e|=0,r|=0,dt(A,e,r)},btRigidBody_applyCentralImpulse:function(A,e){A|=0,e|=0;var r=_(0),i=_(0),f=_(0);i=C[e+8>>2],f=C[e+4>>2],r=C[A+404>>2],C[A+372>>2]=_(_(C[e>>2]*C[A+408>>2])*r)+C[A+372>>2],e=A+376|0,C[e>>2]=_(r*_(f*C[A+412>>2]))+C[e>>2],e=A+380|0,C[e>>2]=_(r*_(i*C[A+416>>2]))+C[e>>2]},btRigidBody_updateInertiaTensor:function(A){A|=0,function(A){var e=_(0),r=_(0),i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0);a[A+368>>2]=0,a[A+352>>2]=0,a[A+336>>2]=0,k=C[A+456>>2],e=C[A+36>>2],r=_(k*e),v=C[A+460>>2],i=C[A+40>>2],f=_(v*i),d=C[A+464>>2],t=C[A+44>>2],n=_(d*t),C[A+364>>2]=_(_(r*e)+_(f*i))+_(n*t),l=C[A+20>>2],u=C[A+24>>2],s=C[A+28>>2],C[A+360>>2]=_(_(r*l)+_(f*u))+_(n*s),o=r,r=C[A+4>>2],c=f,f=C[A+8>>2],b=n,n=C[A+12>>2],C[A+356>>2]=_(_(o*r)+_(c*f))+_(b*n),o=_(k*l),c=_(v*u),b=_(d*s),C[A+348>>2]=_(_(e*o)+_(i*c))+_(t*b),C[A+344>>2]=_(_(o*l)+_(c*u))+_(b*s),C[A+340>>2]=_(_(o*r)+_(c*f))+_(b*n),o=e,e=_(r*k),c=i,i=_(f*v),b=t,t=_(n*d),C[A+332>>2]=_(_(o*e)+_(c*i))+_(b*t),C[A+328>>2]=_(_(e*l)+_(i*u))+_(t*s),C[A+324>>2]=_(_(e*r)+_(i*f))+_(t*n)}(A)},btRigidBody_getLinearVelocity:function(A){return A|=0,A+372|0},btRigidBody_getAngularVelocity:function(A){return A|=0,A+388|0},btRigidBody_setLinearVelocity:function(A,e){A|=0,e|=0;var r=0;a[A+304>>2]=a[A+304>>2]+1,r=a[e+4>>2],a[A+372>>2]=a[e>>2],a[A+376>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+380|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},btRigidBody_setAngularVelocity:function(A,e){A|=0,e|=0;var r=0;a[A+304>>2]=a[A+304>>2]+1,r=a[e+4>>2],a[A+388>>2]=a[e>>2],a[A+392>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+396|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},btRigidBody_setAngularFactor:function(A,e){A|=0,e|=0;var r=0;a[A+304>>2]=a[A+304>>2]+1,r=a[e+4>>2],a[A+604>>2]=a[e>>2],a[A+608>>2]=r,e=e+8|0,r=a[e+4>>2],A=A+612|0,a[A>>2]=a[e>>2],a[A+4>>2]=r},btRigidBody_getGravity:function(A){return A|=0,A+440|0},btRigidBody_setGravity:function(A,e){A|=0,e|=0,Si(A,e)},btRigidBody_getTotalForce:function(A){return A|=0,A+472|0},btRigidBody_getTotalTorque:function(A){return A|=0,A+488|0},btRigidBody_getFlags:function(A){return A|=0,a[A+564>>2]},btRigidBody_setFlags:function(A,e){A|=0,e|=0,a[A+564>>2]=e},btRigidBody_clearForces:function(A){A|=0;var e=0;a[A+472>>2]=0,a[A+476>>2]=0,e=A+496|0,a[e>>2]=0,a[e+4>>2]=0,e=A+488|0,a[e>>2]=0,a[e+4>>2]=0,A=A+480|0,a[A>>2]=0,a[A+4>>2]=0},btSequentialImpulseConstraintSolver_create:function(){var A;return A=dA(236),Li(A),0|A},btCollisionWorld_get_m_useContinuous:function(A){return A|=0,o[A+16|0]},btCollisionWorld_set_m_useContinuous:function(A,e){A|=0,e|=0,f[A+16|0]=e},btCollisionWorld_rayTest:function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,Qt[a[a[A>>2]+32>>2]](A,e,r,i)},btCollisionWorld_getDispatchInfo:function(A){return A|=0,A+28|0},btCollisionWorld_addCollisionObject:function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,Qt[a[a[A>>2]+36>>2]](A,e,r,i)},btCollisionWorld_removeCollisionObject:function(A,e){A|=0,e|=0,Qt[a[a[A>>2]+40>>2]](A,e)},btCollisionWorld_convexSweepTest:function(A,e,r,i,f,t){A|=0,e|=0,r|=0,i|=0,f|=0,t=_(t),_f(A,e,r,i,f,t)},btCollisionWorld_destroy:nt,btDynamicsWorld_addAction:Jf,btDynamicsWorld_removeAction:xf,btDynamicsWorld_getSolverInfo:function(A){return A|=0,A+92|0},btDiscreteDynamicsWorld_create:function(A,e,r,i){return A|=0,e|=0,r|=0,i|=0,i=dA(344),Nf(i,A,e,r),0|i},btDiscreteDynamicsWorld_setGravity:function(A,e){A|=0,e|=0,Qt[a[a[A>>2]+72>>2]](A,e)},btDiscreteDynamicsWorld_getGravity:function(A){var e,r;return A|=0,e=Y-16|0,Y=e,Qt[a[a[A>>2]+76>>2]](e,A),A=e+8|0,r=a[A+4>>2],a[705]=a[A>>2],a[706]=r,A=a[e+4>>2],a[703]=a[e>>2],a[704]=A,Y=e+16|0,2812},btDiscreteDynamicsWorld_addRigidBody:function(A,e,r,i){A|=0,e|=0,r|=0,i|=0,Qt[a[a[A>>2]+88>>2]](A,e,r,i)},btDiscreteDynamicsWorld_removeRigidBody:function(A,e){A|=0,e|=0,Qt[a[a[A>>2]+92>>2]](A,e)},btDiscreteDynamicsWorld_stepSimulation:function(A,e,r,i){A|=0,e=_(e),r|=0,i=_(i),Qt[a[a[A>>2]+52>>2]](A,e,r,i)},btDiscreteDynamicsWorld_clearForces:function(A){A|=0,Qt[a[a[A>>2]+120>>2]](A)},btDiscreteDynamicsWorld_setApplySpeculativeContactRestitution:function(A,e){A|=0,e|=0,f[A+291|0]=e},btDiscreteDynamicsWorld_getApplySpeculativeContactRestitution:function(A){return A|=0,o[A+291|0]},btKinematicCharacterController_create:function(A,e,r,i){var n;return A|=0,e|=0,r=_(r),i|=0,n=dA(292),function(A,e,r,i,n){var o,c=_(0),b=_(0),l=_(0),u=_(0),s=_(0);o=Y-16|0,Y=o,a[A>>2]=24116,a[A+272>>2]=0,a[A+276>>2]=0,a[A+256>>2]=0,a[A+260>>2]=0,a[A+8>>2]=e,a[A+68>>2]=0,a[A+72>>2]=0,a[A+64>>2]=1017370378,a[A+100>>2]=0,a[A+104>>2]=0,t[A+250>>1]=257,a[A+56>>2]=0,a[A+12>>2]=r,a[A+252>>2]=0,f[A+216|0]=1,a[A+212>>2]=0,e=A+204|0,a[e>>2]=0,a[e+4>>2]=0,e=A+280|0,a[e>>2]=1065353216,a[e+4>>2]=0,e=A+264|0,a[e>>2]=1065353216,a[e+4>>2]=0,e=A+76|0,a[e>>2]=0,a[e+4>>2]=0,e=A+108|0,a[e>>2]=0,a[e+4>>2]=0,a[A+52>>2]=1105933107,a[A+20>>2]=0,a[A+24>>2]=0,t[A+248>>1]=0,a[A+28>>2]=1113325568,a[A+32>>2]=1092616192,a[A+36>>2]=1092616192,a[A+148>>2]=0,f[A+289|0]=0,f[A+290|0]=0,a[A+16>>2]=1045220557,a[A+240>>2]=0,a[A+244>>2]=0,f[A+288|0]=1,b=C[n>>2],l=C[n+4>>2],c=C[n+8>>2],u=_(_(_(b*b)+_(l*l))+_(c*c)),u>_(0)?(s=c,c=_(_(1)/_(y(u))),u=_(_(s*c)*_(-29.399999618530273)),b=_(_(b*c)*_(-29.399999618530273)),l=_(_(l*c)*_(-29.399999618530273)),c=_(_(u*u)+_(_(b*b)+_(l*l))),c>_(0)&&(a[o+12>>2]=0,C[o+8>>2]=-u,C[o+4>>2]=-l,C[o>>2]=-b,Tf(A,o)),C[A+52>>2]=y(c)):Tf(A,n),a[A+44>>2]=1061752795,a[A+48>>2]=1060439283,C[A+60>>2]=i,Y=o+16|0}(n,A,e,r,i),0|n},btKinematicCharacterController_setWalkDirection:function(A,e){A|=0,e|=0,Qt[a[a[A>>2]+16>>2]](A,e)},btKinematicCharacterController_setFallSpeed:function(A,e){A|=0,e=_(e),C[A+28>>2]=e},btKinematicCharacterController_setJumpSpeed:function(A,e){A|=0,e=_(e),C[A+36>>2]=e,C[A+32>>2]=e},btKinematicCharacterController_setMaxSlope:function(A,e){A|=0,e=_(e);var r,i=_(0);C[A+44>>2]=e,r=A,i=Cr(e),C[r+48>>2]=i},btKinematicCharacterController_onGround:zf,btKinematicCharacterController_jump:function(A,e){A|=0,e|=0,Qt[a[a[A>>2]+44>>2]](A,e)},btKinematicCharacterController_setGravity:function(A,e){A|=0,e|=0,function(A,e){var r,i,f=_(0),t=_(0),n=_(0),o=_(0);r=Y-16|0,Y=r,i=A,f=C[e>>2],n=C[e+4>>2],o=C[e+8>>2],t=_(_(_(f*f)+_(n*n))+_(o*o)),t>_(0)&&(a[r+12>>2]=0,C[r+8>>2]=-o,C[r+4>>2]=-n,C[r>>2]=-f,Tf(A,r),f=C[e>>2],t=_(f*f),f=C[e+4>>2],t=_(t+_(f*f)),f=C[e+8>>2],t=_(t+_(f*f))),C[i+52>>2]=y(t),Y=r+16|0}(A,e)},btKinematicCharacterController_setUp:function(A,e){A|=0,e|=0,function(A,e){var r,i=_(0),f=_(0),t=_(0),n=_(0),o=_(0),c=_(0);r=Y-16|0,Y=r,f=C[e>>2],t=C[e+4>>2],i=C[e+8>>2],n=_(_(_(f*f)+_(t*t))+_(i*i)),n>_(0)&&(o=C[A+52>>2],o>_(0))?(c=i,i=_(_(1)/_(y(n))),n=_(-o),o=_(_(c*i)*n),f=_(_(f*i)*n),t=_(_(t*i)*n),i=_(_(o*o)+_(_(f*f)+_(t*t))),i>_(0)&&(a[r+12>>2]=0,C[r+8>>2]=-o,C[r+4>>2]=-t,C[r>>2]=-f,Tf(A,r)),C[A+52>>2]=y(i)):Tf(A,e),Y=r+16|0}(A,e)},btKinematicCharacterController_setStepHeight:function(A,e){A|=0,e=_(e),C[A+60>>2]=e},btKinematicCharacterController_destroy:nt,btPairCachingGhostObject_create:function(){var A;return A=dA(348),function(A){var e=0;Ee(A),a[A+336>>2]=0,f[A+340|0]=1,e=A+328|0,a[e>>2]=0,a[e+4>>2]=0,a[A+252>>2]=4,a[A>>2]=24004,e=dA(72),Ri(e),a[A+344>>2]=e}(A),0|A},btGhostPairCallback_create:function(){var A;return A=q(4),a[A>>2]=25228,0|A},btTypedConstraint_setEnabled:function(A,e){A|=0,e|=0,f[A+20|0]=e},btCollisionWorld_addConstraint:function(A,e,r){A|=0,e|=0,r|=0,Qt[a[a[A>>2]+56>>2]](A,e,r)},btCollisionWorld_removeConstraint:vt,btJointFeedback_create:function(){var A,e=0;return A=dA(64),e=A,a[e>>2]=0,a[e+4>>2]=0,e=e+56|0,a[e>>2]=0,a[e+4>>2]=0,e=A+48|0,a[e>>2]=0,a[e+4>>2]=0,e=A+40|0,a[e>>2]=0,a[e+4>>2]=0,e=A+32|0,a[e>>2]=0,a[e+4>>2]=0,e=A+24|0,a[e>>2]=0,a[e+4>>2]=0,e=A+16|0,a[e>>2]=0,a[e+4>>2]=0,e=A+8|0,a[e>>2]=0,a[e+4>>2]=0,0|A},btJointFeedback_destroy:function(A){A|=0,A&&CA(A)},btTypedConstraint_setJointFeedback:function(A,e){A|=0,e|=0,a[A+44>>2]=e},btTypedConstraint_getJointFeedback:function(A){return A|=0,a[A+44>>2]},btTypedConstraint_enableFeedback:function(A,e){A|=0,e|=0,f[A+21|0]=e},btTypedConstraint_setParam:function(A,e,r,i){A|=0,e|=0,r|=0,i=_(i),Qt[a[a[A>>2]+28>>2]](A,r,i,e)},btTypedConstraint_setOverrideNumSolverIterations:Gi,btTypedConstraint_destroy:nt,btJointFeedback_getAppliedForceBodyA:sA,btJointFeedback_getAppliedForceBodyB:ut,btJointFeedback_getAppliedTorqueBodyA:Qe,btFixedConstraint_create:function(A,e,r,i){var f;return A|=0,e|=0,r|=0,i|=0,f=dA(1460),function(A,e,r,i,f){Pf(A,e,r,i,f,0),a[A>>2]=24588,e=A+1144|0,a[e>>2]=0,a[e+4>>2]=0,e=A+1056|0,a[e>>2]=0,a[e+4>>2]=0,a[A+968>>2]=0,a[A+972>>2]=0,a[A+680>>2]=0,a[A+684>>2]=0,e=A+688|0,a[e>>2]=0,a[e+4>>2]=0,e=A+696|0,a[e>>2]=0,a[e+4>>2]=0,A=A+704|0,a[A>>2]=0,a[A+4>>2]=0}(f,A,r,e,i),0|f},btGeneric6DofSpring2Constraint_create:function(A,e,r,i,f){var t;return A|=0,e|=0,r|=0,i|=0,f|=0,t=dA(1460),A=Pf(t,A,r,e,i,f),a[t+24>>2]=80,Qt[a[a[t>>2]+28>>2]](A,2,_(.800000011920929),0),Qt[a[a[t>>2]+28>>2]](A,4,_(0),0),Qt[a[a[t>>2]+28>>2]](A,2,_(.800000011920929),1),Qt[a[a[t>>2]+28>>2]](A,4,_(0),1),Qt[a[a[t>>2]+28>>2]](A,2,_(.800000011920929),2),Qt[a[a[t>>2]+28>>2]](A,4,_(0),2),Qt[a[a[t>>2]+28>>2]](A,2,_(.800000011920929),3),Qt[a[a[t>>2]+28>>2]](A,4,_(0),3),Qt[a[a[t>>2]+28>>2]](A,2,_(.800000011920929),4),Qt[a[a[t>>2]+28>>2]](A,4,_(0),4),Qt[a[a[t>>2]+28>>2]](A,2,_(.800000011920929),5),Qt[a[a[t>>2]+28>>2]](A,4,_(0),5),0|t},btGeneric6DofSpring2Constraint_setAxis:function(A,e,r){A|=0,e|=0,r|=0,function(A,e,r){var i,f=_(0),t=_(0),n=_(0),o=_(0),c=_(0),b=_(0),l=_(0),u=_(0),s=_(0),k=_(0),v=_(0),d=_(0),g=_(0),B=_(0),m=_(0),R=_(0),Q=_(0),h=_(0),G=_(0),p=_(0),F=_(0);i=a[A+28>>2],d=C[i+20>>2],g=C[i+36>>2],B=C[i+40>>2],m=C[i+8>>2],R=C[i+24>>2],t=C[i+60>>2],o=C[i+44>>2],c=C[i+12>>2],n=C[i+52>>2],b=C[i+56>>2],l=C[i+28>>2],u=C[r+8>>2],s=C[r>>2],k=C[r+4>>2],v=C[e+8>>2],f=C[e>>2],Q=C[e+4>>2],h=C[i+4>>2],a[A+108>>2]=0,a[A+92>>2]=0,a[A+76>>2]=0,a[A+60>>2]=0,n=_(-n),C[A+104>>2]=_(_(_(c*_(0))+_(l*_(0)))+_(o*_(0)))+_(_(_(c*n)-_(l*b))-_(o*t)),C[A+100>>2]=_(_(_(m*_(0))+_(R*_(0)))+_(B*_(0)))+_(_(_(m*n)-_(R*b))-_(B*t)),C[A+96>>2]=_(_(_(h*_(0))+_(d*_(0)))+_(g*_(0)))+_(_(_(h*n)-_(d*b))-_(g*t)),n=f,f=_(_(1)/_(y(_(_(_(f*f)+_(Q*Q))+_(v*v))))),t=_(n*f),b=_(Q*f),v=_(v*f),C[A+88>>2]=_(_(c*t)+_(l*b))+_(o*v),f=_(_(1)/_(y(_(_(_(s*s)+_(k*k))+_(u*u))))),s=_(s*f),k=_(k*f),u=_(u*f),C[A+84>>2]=_(_(c*s)+_(l*k))+_(o*u),C[A+72>>2]=_(_(t*m)+_(b*R))+_(v*B),C[A+68>>2]=_(_(s*m)+_(k*R))+_(u*B),C[A+56>>2]=_(_(h*t)+_(b*d))+_(v*g),C[A+52>>2]=_(g*u)+_(_(h*s)+_(d*k)),f=c,c=_(_(v*k)-_(b*u)),n=l,l=_(_(t*u)-_(v*s)),Q=o,o=_(_(b*s)-_(t*k)),C[A+80>>2]=_(_(f*c)+_(n*l))+_(Q*o),C[A- -64>>2]=_(o*B)+_(_(m*c)+_(R*l)),C[A+48>>2]=_(g*o)+_(_(h*c)+_(d*l)),e=a[A+32>>2],G=C[e+60>>2],F=C[e+52>>2],p=C[e+56>>2],d=C[e+20>>2],g=C[e+36>>2],B=C[e+40>>2],m=C[e+8>>2],R=C[e+24>>2],h=C[e+44>>2],f=C[e+12>>2],Q=C[e+28>>2],n=C[e+4>>2],a[A+172>>2]=0,a[A+156>>2]=0,a[A+140>>2]=0,a[A+124>>2]=0,C[A+152>>2]=_(_(t*f)+_(b*Q))+_(v*h),C[A+148>>2]=_(_(s*f)+_(k*Q))+_(u*h),C[A+144>>2]=_(_(c*f)+_(l*Q))+_(o*h),C[A+136>>2]=_(_(t*m)+_(b*R))+_(v*B),C[A+132>>2]=_(_(s*m)+_(k*R))+_(u*B),C[A+128>>2]=_(_(c*m)+_(l*R))+_(o*B),C[A+120>>2]=_(_(t*n)+_(b*d))+_(v*g),C[A+116>>2]=_(_(s*n)+_(k*d))+_(u*g),C[A+112>>2]=_(_(c*n)+_(l*d))+_(o*g),t=_(-F),C[A+168>>2]=_(_(_(f*_(0))+_(Q*_(0)))+_(h*_(0)))+_(_(_(f*t)-_(Q*p))-_(h*G)),C[A+164>>2]=_(_(_(m*_(0))+_(R*_(0)))+_(B*_(0)))+_(_(_(m*t)-_(R*p))-_(B*G)),C[A+160>>2]=_(_(_(n*_(0))+_(d*_(0)))+_(g*_(0)))+_(_(_(n*t)-_(d*p))-_(g*G)),Kf(A,i+4|0,e+4|0)}(A,e,r)},btGeneric6DofSpring2Constraint_setLimit:function(A,e,r,i){if(A|=0,e|=0,r=_(r),i=_(i),(0|e)<=2)return A=(e<<2)+A|0,C[A+696>>2]=i,void(C[A+680>>2]=r);r=Wf(r),r<_(-3.1415927410125732)?r=_(r+_(6.2831854820251465)):r>_(3.1415927410125732)&&(r=_(r+_(-6.2831854820251465))),i=Wf(i),i<_(-3.1415927410125732)?i=_(i+_(6.2831854820251465)):i>_(3.1415927410125732)&&(i=_(i+_(-6.2831854820251465))),A=B(e,88)+A|0,C[A+708>>2]=i,C[A+704>>2]=r},btGeneric6DofSpring2Constraint_enableSpring:function(A,e,r){A|=0,e|=0,r|=0,function(A,e,r){(0|e)<=2?f[798+(A+e|0)|0]=r:f[752+(B(e,88)+A|0)|0]=r}(A,e,r)},btGeneric6DofSpring2Constraint_setBounce:function(A,e,r){A|=0,e|=0,r=_(r),function(A,e,r){C[((0|e)<3?712+((e<<2)+A|0)|0:712+(B(e,88)+A|0)|0)>>2]=r}(A,e,r)},btGeneric6DofSpring2Constraint_setStiffness:function(A,e,r,i){A|=0,e|=0,r=_(r),i|=0,function(A,e,r,i){if((0|e)<=2)return A=A+680|0,f[156+(A+e|0)|0]=i,void(C[140+(A+(e<<2)|0)>>2]=r);A=B(e,88)+A|0,f[A+760|0]=i,C[A+756>>2]=r}(A,e,r,i)},btGeneric6DofSpring2Constraint_setDamping:function(A,e,r,i){A|=0,e|=0,r=_(r),i|=0,function(A,e,r,i){if((0|e)<=2)return A=A+680|0,f[176+(A+e|0)|0]=i,void(C[160+(A+(e<<2)|0)>>2]=r);A=B(e,88)+A|0,f[A+768|0]=i,C[A+764>>2]=r}(A,e,r,i)},btGeneric6DofSpring2Constraint_setEquilibriumPoint:function(A,e,r){A|=0,e|=0,r=_(r),function(A,e,r){C[((0|e)<3?860+((e<<2)+A|0)|0:772+(B(e,88)+A|0)|0)>>2]=r}(A,e,r)},btGeneric6DofSpring2Constraint_enableMotor:function(A,e,r){A|=0,e|=0,r|=0,function(A,e,r){(0|e)<=2?f[792+(A+e|0)|0]=r:f[732+(B(e,88)+A|0)|0]=r}(A,e,r)},btGeneric6DofSpring2Constraint_setServo:function(A,e,r){A|=0,e|=0,r|=0,function(A,e,r){(0|e)<=2?f[795+(A+e|0)|0]=r:f[744+(B(e,88)+A|0)|0]=r}(A,e,r)},btGeneric6DofSpring2Constraint_setTargetVelocity:function(A,e,r){A|=0,e|=0,r=_(r),function(A,e,r){C[((0|e)<3?876+((e<<2)+A|0)|0:736+(B(e,88)+A|0)|0)>>2]=r}(A,e,r)},btGeneric6DofSpring2Constraint_setServoTarget:function(A,e,r){A|=0,e|=0,r=_(r),function(A,e,r){var i=_(0);(0|e)<=2?C[804+((e<<2)+A|0)>>2]=r:(A=748+(B(e,88)+A|0)|0,r=_(r+_(3.1415927410125732)),r=_(r-_(_(G(_(r/_(6.2831854820251465))))*_(6.2831854820251465))),i=_(0),r>=_(6.2831854820251465)||(i=r,r<_(0)&&(r=_(r+_(6.2831854820251465)),i=r==_(6.2831854820251465)?_(0):r)),C[A>>2]=i+_(-3.1415927410125732))}(A,e,r)},btGeneric6DofSpring2Constraint_setMaxMotorForce:function(A,e,r){A|=0,e|=0,r=_(r),function(A,e,r){C[((0|e)<3?892+((e<<2)+A|0)|0:740+(B(e,88)+A|0)|0)>>2]=r}(A,e,r)},btGeneric6DofSpring2Constraint_setFrames:function(A,e,r){A|=0,e|=0,r|=0,function(A,e,r){var i=0,f=0,t=0;i=a[e+4>>2],a[A+48>>2]=a[e>>2],a[A+52>>2]=i,f=e+8|0,t=a[f+4>>2],i=A+56|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,f=e+24|0,t=a[f+4>>2],i=A+72|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,f=a[e+20>>2],i=A- -64|0,a[i>>2]=a[e+16>>2],a[i+4>>2]=f,f=e+40|0,t=a[f+4>>2],i=A+88|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,f=a[e+36>>2],i=A+80|0,a[i>>2]=a[e+32>>2],a[i+4>>2]=f,f=e+56|0,t=a[f+4>>2],i=A+104|0,a[i>>2]=a[f>>2],a[i+4>>2]=t,f=a[e+52>>2],i=A+96|0,a[i>>2]=a[e+48>>2],a[i+4>>2]=f,i=r+8|0,f=a[i+4>>2],e=A+120|0,a[e>>2]=a[i>>2],a[e+4>>2]=f,e=a[r+4>>2],a[A+112>>2]=a[r>>2],a[A+116>>2]=e,i=a[r+20>>2],e=A+128|0,a[e>>2]=a[r+16>>2],a[e+4>>2]=i,i=r+24|0,f=a[i+4>>2],e=A+136|0,a[e>>2]=a[i>>2],a[e+4>>2]=f,i=a[r+36>>2],e=A+144|0,a[e>>2]=a[r+32>>2],a[e+4>>2]=i,i=r+40|0,f=a[i+4>>2],e=A+152|0,a[e>>2]=a[i>>2],a[e+4>>2]=f,i=r+56|0,f=a[i+4>>2],e=A+168|0,a[e>>2]=a[i>>2],a[e+4>>2]=f,i=a[r+52>>2],e=A+160|0,a[e>>2]=a[r+48>>2],a[e+4>>2]=i,Qt[a[a[A>>2]+8>>2]](A),Kf(A,a[A+28>>2]+4|0,a[A+32>>2]+4|0)}(A,e,r)}}}({Math:Math,Int8Array:Int8Array,Uint8Array:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},{memory:{},abort:function(){throw new Error("abort")},fd_close:()=>{console.log("fd_close")},fd_write:()=>{console.log("fd_write")},getWorldTransform:i,setWorldTransform:f,fd_seek:()=>{console.log("fd_seek")}},v);r.btGImpactCollisionAlgorithm_RegisterAlgorithm=C.btGImpactCollisionAlgorithm_RegisterAlgorithm,r.btVector3_create=C.btVector3_create,r.btVector3_setValue=C.btVector3_setValue,r.btVector3_x=C.btVector3_x,r.btVector3_y=C.btVector3_y,r.btVector3_z=C.btVector3_z,r.btQuaternion_create=C.btQuaternion_create,r.btQuaternion_setValue=C.btQuaternion_setValue,r.btQuaternion_x=C.btQuaternion_x,r.btQuaternion_y=C.btQuaternion_y,r.btQuaternion_z=C.btQuaternion_z,r.btQuaternion_w=C.btQuaternion_w,r.btTransform_create=C.btTransform_create,r.btTransform_setOrigin=C.btTransform_setOrigin,r.btTransform_setRotation=C.btTransform_setRotation,r.btTransform_getOrigin=C.btTransform_getOrigin,r.btTransform_getRotation=C.btTransform_getRotation,r.btTransform_setIdentity=C.btTransform_setIdentity,r.btTransform_equal=C.btTransform_equal,r.btMotionState_destroy=C.btMotionState_destroy,r.layaMotionState_create=C.layaMotionState_create,r.layaMotionState_set_rigidBodyID=C.layaMotionState_set_rigidBodyID,r.btCollisionObject_create=C.btCollisionObject_create,r.btCollisionObject_setContactProcessingThreshold=C.btCollisionObject_setContactProcessingThreshold,r.btCollisionObject_setActivationState=C.btCollisionObject_setActivationState,r.btCollisionObject_forceActivationState=C.btCollisionObject_forceActivationState,r.btCollisionObject_activate=C.btCollisionObject_activate,r.btCollisionObject_isActive=C.btCollisionObject_isActive,r.btCollisionObject_setRestitution=C.btCollisionObject_setRestitution,r.btCollisionObject_setFriction=C.btCollisionObject_setFriction,r.btCollisionObject_setRollingFriction=C.btCollisionObject_setRollingFriction,r.btCollisionObject_getCollisionFlags=C.btCollisionObject_getCollisionFlags,r.btCollisionObject_setCollisionFlags=C.btCollisionObject_setCollisionFlags,r.btCollisionObject_getWorldTransform=C.btCollisionObject_getWorldTransform,r.btCollisionObject_setWorldTransform=C.btCollisionObject_setWorldTransform,r.btCollisionObject_setInterpolationWorldTransform=C.btCollisionObject_setInterpolationWorldTransform,r.btCollisionObject_setCollisionShape=C.btCollisionObject_setCollisionShape,r.btCollisionObject_getCcdMotionThreshold=C.btCollisionObject_getCcdMotionThreshold,r.btCollisionObject_setCcdMotionThreshold=C.btCollisionObject_setCcdMotionThreshold,r.btCollisionObject_getCcdSweptSphereRadius=C.btCollisionObject_getCcdSweptSphereRadius,r.btCollisionObject_setCcdSweptSphereRadius=C.btCollisionObject_setCcdSweptSphereRadius,r.btCollisionObject_getUserIndex=C.btCollisionObject_getUserIndex,r.btCollisionObject_setUserIndex=C.btCollisionObject_setUserIndex,r.btCollisionObject_getActivationState=C.btCollisionObject_getActivationState,r.btCollisionObject_setInterpolationAngularVelocity=C.btCollisionObject_setInterpolationAngularVelocity,r.btCollisionObject_setInterpolationLinearVelocity=C.btCollisionObject_setInterpolationLinearVelocity,r.btCollisionObject_destroy=C.btCollisionObject_destroy,r.RayResultCallback_set_m_flags=C.RayResultCallback_set_m_flags,r.RayResultCallback_hasHit=C.RayResultCallback_hasHit,r.RayResultCallback_set_m_collisionFilterGroup=C.RayResultCallback_set_m_collisionFilterGroup,r.RayResultCallback_set_m_collisionFilterMask=C.RayResultCallback_set_m_collisionFilterMask,r.RayResultCallback_get_m_closestHitFraction=C.RayResultCallback_get_m_closestHitFraction,r.RayResultCallback_set_m_closestHitFraction=C.RayResultCallback_set_m_closestHitFraction,r.RayResultCallback_get_m_collisionObject=C.RayResultCallback_get_m_collisionObject,r.RayResultCallback_set_m_collisionObject=C.RayResultCallback_set_m_collisionObject,r.ClosestRayResultCallback_create=C.ClosestRayResultCallback_create,r.ClosestRayResultCallback_get_m_rayFromWorld=C.ClosestRayResultCallback_get_m_rayFromWorld,r.ClosestRayResultCallback_set_m_rayFromWorld=C.ClosestRayResultCallback_set_m_rayFromWorld,r.ClosestRayResultCallback_get_m_rayToWorld=C.ClosestRayResultCallback_get_m_rayToWorld,r.ClosestRayResultCallback_set_m_rayToWorld=C.ClosestRayResultCallback_set_m_rayToWorld,r.ClosestRayResultCallback_get_m_hitNormalWorld=C.ClosestRayResultCallback_get_m_hitNormalWorld,r.ClosestRayResultCallback_get_m_hitPointWorld=C.ClosestRayResultCallback_get_m_hitPointWorld,r.tBtCollisionObjectArray_size=C.tBtCollisionObjectArray_size,r.tBtCollisionObjectArray_at=C.tBtCollisionObjectArray_at,r.tBtCollisionObjectArray_clear=C.tBtCollisionObjectArray_clear,r.tVector3Array_at=C.tVector3Array_at,r.tVector3Array_clear=C.tVector3Array_clear,r.tScalarArray_at=C.tScalarArray_at,r.tScalarArray_clear=C.tScalarArray_clear,r.AllHitsRayResultCallback_create=C.AllHitsRayResultCallback_create,r.AllHitsRayResultCallback_get_m_rayFromWorld=C.AllHitsRayResultCallback_get_m_rayFromWorld,r.AllHitsRayResultCallback_set_m_rayFromWorld=C.AllHitsRayResultCallback_set_m_rayFromWorld,r.AllHitsRayResultCallback_get_m_rayToWorld=C.AllHitsRayResultCallback_get_m_rayToWorld,r.AllHitsRayResultCallback_set_m_rayToWorld=C.AllHitsRayResultCallback_set_m_rayToWorld,r.AllHitsRayResultCallback_get_m_hitPointWorld=C.AllHitsRayResultCallback_get_m_hitPointWorld,r.AllHitsRayResultCallback_get_m_hitNormalWorld=C.AllHitsRayResultCallback_get_m_hitNormalWorld,r.AllHitsRayResultCallback_get_m_collisionObjects=C.AllHitsRayResultCallback_get_m_collisionObjects,r.AllHitsRayResultCallback_get_m_hitFractions=C.AllHitsRayResultCallback_get_m_hitFractions,r.btManifoldPoint_get_m_positionWorldOnA=C.btManifoldPoint_get_m_positionWorldOnA,r.btManifoldPoint_get_m_positionWorldOnB=C.btManifoldPoint_get_m_positionWorldOnB,r.btManifoldPoint_get_m_normalWorldOnB=C.btManifoldPoint_get_m_normalWorldOnB,r.btManifoldPoint_getDistance=C.btManifoldPoint_getDistance,r.ConvexResultCallback_hasHit=C.ConvexResultCallback_hasHit,r.ConvexResultCallback_set_m_collisionFilterGroup=C.ConvexResultCallback_set_m_collisionFilterGroup,r.ConvexResultCallback_set_m_collisionFilterMask=C.ConvexResultCallback_set_m_collisionFilterMask,r.ConvexResultCallback_get_m_closestHitFraction=C.ConvexResultCallback_get_m_closestHitFraction,r.ConvexResultCallback_set_m_closestHitFraction=C.ConvexResultCallback_set_m_closestHitFraction,r.ClosestConvexResultCallback_create=C.ClosestConvexResultCallback_create,r.ClosestConvexResultCallback_get_m_hitNormalWorld=C.ClosestConvexResultCallback_get_m_hitNormalWorld,r.ClosestConvexResultCallback_get_m_hitPointWorld=C.ClosestConvexResultCallback_get_m_hitPointWorld,r.ClosestConvexResultCallback_get_m_hitCollisionObject=C.ClosestConvexResultCallback_get_m_hitCollisionObject,r.ClosestConvexResultCallback_set_m_hitCollisionObject=C.ClosestConvexResultCallback_set_m_hitCollisionObject,r.AllConvexResultCallback_create=C.AllConvexResultCallback_create,r.AllConvexResultCallback_get_m_hitNormalWorld=C.AllConvexResultCallback_get_m_hitNormalWorld,r.AllConvexResultCallback_get_m_hitPointWorld=C.AllConvexResultCallback_get_m_hitPointWorld,r.AllConvexResultCallback_get_m_hitFractions=C.AllConvexResultCallback_get_m_hitFractions,r.AllConvexResultCallback_get_m_collisionObjects=C.AllConvexResultCallback_get_m_collisionObjects,r.btCollisionShape_getLocalScaling=C.btCollisionShape_getLocalScaling,r.btCollisionShape_setLocalScaling=C.btCollisionShape_setLocalScaling,r.btCollisionShape_calculateLocalInertia=C.btCollisionShape_calculateLocalInertia,r.btCollisionShape_destroy=C.btCollisionShape_destroy,r.btBoxShape_create=C.btBoxShape_create,r.btCapsuleShape_create=C.btCapsuleShape_create,r.btCapsuleShapeX_create=C.btCapsuleShapeX_create,r.btCapsuleShapeZ_create=C.btCapsuleShapeZ_create,r.btCylinderShape_create=C.btCylinderShape_create,r.btCylinderShapeX_create=C.btCylinderShapeX_create,r.btCylinderShapeZ_create=C.btCylinderShapeZ_create,r.btSphereShape_create=C.btSphereShape_create,r.btConeShape_create=C.btConeShape_create,r.btConeShapeX_create=C.btConeShapeX_create,r.btConeShapeZ_create=C.btConeShapeZ_create,r.btStaticPlaneShape_create=C.btStaticPlaneShape_create,r.btGImpactShapeInterface_updateBound=C.btGImpactShapeInterface_updateBound,r.btGImpactMeshShape_create=C.btGImpactMeshShape_create,r.btCompoundShape_create=C.btCompoundShape_create,r.btCompoundShape_addChildShape=C.btCompoundShape_addChildShape,r.btCompoundShape_removeChildShapeByIndex=C.btCompoundShape_removeChildShapeByIndex,r.btCompoundShape_getChildShape=C.btCompoundShape_getChildShape,r.btCompoundShape_updateChildTransform=C.btCompoundShape_updateChildTransform,r.btStridingMeshInterface_destroy=C.btStridingMeshInterface_destroy,r.btTriangleMesh_create=C.btTriangleMesh_create,r.btTriangleMesh_addTriangle=C.btTriangleMesh_addTriangle,r.btDefaultCollisionConfiguration_create=C.btDefaultCollisionConfiguration_create,r.btDefaultCollisionConfiguration_destroy=C.btDefaultCollisionConfiguration_destroy,r.btPersistentManifold_getBody0=C.btPersistentManifold_getBody0,r.btPersistentManifold_getBody1=C.btPersistentManifold_getBody1,r.btPersistentManifold_getNumContacts=C.btPersistentManifold_getNumContacts,r.btPersistentManifold_getContactPoint=C.btPersistentManifold_getContactPoint,r.btDispatcher_getNumManifolds=C.btDispatcher_getNumManifolds,r.btDispatcher_getManifoldByIndexInternal=C.btDispatcher_getManifoldByIndexInternal,r.btCollisionDispatcher_create=C.btCollisionDispatcher_create,r.btCollisionDispatcher_destroy=C.btCollisionDispatcher_destroy,r.btOverlappingPairCache_setInternalGhostPairCallback=C.btOverlappingPairCache_setInternalGhostPairCallback,r.btDbvtBroadphase_create=C.btDbvtBroadphase_create,r.btDbvtBroadphase_getOverlappingPairCache=C.btDbvtBroadphase_getOverlappingPairCache,r.btDbvtBroadphase_destroy=C.btDbvtBroadphase_destroy,r.btRigidBodyConstructionInfo_create=C.btRigidBodyConstructionInfo_create,r.btRigidBodyConstructionInfo_destroy=C.btRigidBodyConstructionInfo_destroy,r.btRigidBody_create=C.btRigidBody_create,r.btRigidBody_setCenterOfMassTransform=C.btRigidBody_setCenterOfMassTransform,r.btRigidBody_setSleepingThresholds=C.btRigidBody_setSleepingThresholds,r.btRigidBody_getLinearSleepingThreshold=C.btRigidBody_getLinearSleepingThreshold,r.btRigidBody_getAngularSleepingThreshold=C.btRigidBody_getAngularSleepingThreshold,r.btRigidBody_setDamping=C.btRigidBody_setDamping,r.btRigidBody_setMassProps=C.btRigidBody_setMassProps,r.btRigidBody_setLinearFactor=C.btRigidBody_setLinearFactor,r.btRigidBody_applyTorque=C.btRigidBody_applyTorque,r.btRigidBody_applyForce=C.btRigidBody_applyForce,r.btRigidBody_applyCentralForce=C.btRigidBody_applyCentralForce,r.btRigidBody_applyTorqueImpulse=C.btRigidBody_applyTorqueImpulse,r.btRigidBody_applyImpulse=C.btRigidBody_applyImpulse,r.btRigidBody_applyCentralImpulse=C.btRigidBody_applyCentralImpulse,r.btRigidBody_updateInertiaTensor=C.btRigidBody_updateInertiaTensor,r.btRigidBody_getLinearVelocity=C.btRigidBody_getLinearVelocity,r.btRigidBody_getAngularVelocity=C.btRigidBody_getAngularVelocity,r.btRigidBody_setLinearVelocity=C.btRigidBody_setLinearVelocity,r.btRigidBody_setAngularVelocity=C.btRigidBody_setAngularVelocity,r.btRigidBody_setAngularFactor=C.btRigidBody_setAngularFactor,r.btRigidBody_getGravity=C.btRigidBody_getGravity,r.btRigidBody_setGravity=C.btRigidBody_setGravity,r.btRigidBody_getTotalForce=C.btRigidBody_getTotalForce,r.btRigidBody_getTotalTorque=C.btRigidBody_getTotalTorque,r.btRigidBody_getFlags=C.btRigidBody_getFlags,r.btRigidBody_setFlags=C.btRigidBody_setFlags,r.btRigidBody_clearForces=C.btRigidBody_clearForces,r.btSequentialImpulseConstraintSolver_create=C.btSequentialImpulseConstraintSolver_create,r.btCollisionWorld_get_m_useContinuous=C.btCollisionWorld_get_m_useContinuous,r.btCollisionWorld_set_m_useContinuous=C.btCollisionWorld_set_m_useContinuous,r.btCollisionWorld_rayTest=C.btCollisionWorld_rayTest,r.btCollisionWorld_getDispatchInfo=C.btCollisionWorld_getDispatchInfo,r.btCollisionWorld_addCollisionObject=C.btCollisionWorld_addCollisionObject,r.btCollisionWorld_removeCollisionObject=C.btCollisionWorld_removeCollisionObject,r.btCollisionWorld_convexSweepTest=C.btCollisionWorld_convexSweepTest,r.btCollisionWorld_destroy=C.btCollisionWorld_destroy,r.btDynamicsWorld_addAction=C.btDynamicsWorld_addAction,r.btDynamicsWorld_removeAction=C.btDynamicsWorld_removeAction,r.btDynamicsWorld_getSolverInfo=C.btDynamicsWorld_getSolverInfo,r.btDiscreteDynamicsWorld_create=C.btDiscreteDynamicsWorld_create,r.btDiscreteDynamicsWorld_setGravity=C.btDiscreteDynamicsWorld_setGravity,r.btDiscreteDynamicsWorld_getGravity=C.btDiscreteDynamicsWorld_getGravity,r.btDiscreteDynamicsWorld_addRigidBody=C.btDiscreteDynamicsWorld_addRigidBody,r.btDiscreteDynamicsWorld_removeRigidBody=C.btDiscreteDynamicsWorld_removeRigidBody,r.btDiscreteDynamicsWorld_stepSimulation=C.btDiscreteDynamicsWorld_stepSimulation,r.btDiscreteDynamicsWorld_clearForces=C.btDiscreteDynamicsWorld_clearForces,r.btDiscreteDynamicsWorld_setApplySpeculativeContactRestitution=C.btDiscreteDynamicsWorld_setApplySpeculativeContactRestitution,r.btDiscreteDynamicsWorld_getApplySpeculativeContactRestitution=C.btDiscreteDynamicsWorld_getApplySpeculativeContactRestitution,r.btKinematicCharacterController_create=C.btKinematicCharacterController_create,r.btKinematicCharacterController_setWalkDirection=C.btKinematicCharacterController_setWalkDirection,r.btKinematicCharacterController_setFallSpeed=C.btKinematicCharacterController_setFallSpeed,r.btKinematicCharacterController_setJumpSpeed=C.btKinematicCharacterController_setJumpSpeed,r.btKinematicCharacterController_setMaxSlope=C.btKinematicCharacterController_setMaxSlope,r.btKinematicCharacterController_onGround=C.btKinematicCharacterController_onGround,r.btKinematicCharacterController_jump=C.btKinematicCharacterController_jump,r.btKinematicCharacterController_setGravity=C.btKinematicCharacterController_setGravity,r.btKinematicCharacterController_setUp=C.btKinematicCharacterController_setUp,r.btKinematicCharacterController_setStepHeight=C.btKinematicCharacterController_setStepHeight,r.btKinematicCharacterController_destroy=C.btKinematicCharacterController_destroy,r.btPairCachingGhostObject_create=C.btPairCachingGhostObject_create,r.btGhostPairCallback_create=C.btGhostPairCallback_create,r.btTypedConstraint_setEnabled=C.btTypedConstraint_setEnabled,r.btCollisionWorld_addConstraint=C.btCollisionWorld_addConstraint,r.btCollisionWorld_removeConstraint=C.btCollisionWorld_removeConstraint,r.btJointFeedback_create=C.btJointFeedback_create,r.btJointFeedback_destroy=C.btJointFeedback_destroy,r.btTypedConstraint_setJointFeedback=C.btTypedConstraint_setJointFeedback,r.btTypedConstraint_getJointFeedback=C.btTypedConstraint_getJointFeedback,r.btTypedConstraint_enableFeedback=C.btTypedConstraint_enableFeedback,r.btTypedConstraint_setParam=C.btTypedConstraint_setParam,r.btTypedConstraint_setOverrideNumSolverIterations=C.btTypedConstraint_setOverrideNumSolverIterations,r.btTypedConstraint_destroy=C.btTypedConstraint_destroy,r.btJointFeedback_getAppliedForceBodyA=C.btJointFeedback_getAppliedForceBodyA,r.btJointFeedback_getAppliedForceBodyB=C.btJointFeedback_getAppliedForceBodyB,r.btJointFeedback_getAppliedTorqueBodyA=C.btJointFeedback_getAppliedTorqueBodyA,r.btFixedConstraint_create=C.btFixedConstraint_create,r.btGeneric6DofSpring2Constraint_create=C.btGeneric6DofSpring2Constraint_create,r.btGeneric6DofSpring2Constraint_setAxis=C.btGeneric6DofSpring2Constraint_setAxis,r.btGeneric6DofSpring2Constraint_setLimit=C.btGeneric6DofSpring2Constraint_setLimit,r.btGeneric6DofSpring2Constraint_enableSpring=C.btGeneric6DofSpring2Constraint_enableSpring,r.btGeneric6DofSpring2Constraint_setBounce=C.btGeneric6DofSpring2Constraint_setBounce,r.btGeneric6DofSpring2Constraint_setStiffness=C.btGeneric6DofSpring2Constraint_setStiffness,r.btGeneric6DofSpring2Constraint_setDamping=C.btGeneric6DofSpring2Constraint_setDamping,r.btGeneric6DofSpring2Constraint_setEquilibriumPoint=C.btGeneric6DofSpring2Constraint_setEquilibriumPoint,r.btGeneric6DofSpring2Constraint_enableMotor=C.btGeneric6DofSpring2Constraint_enableMotor,r.btGeneric6DofSpring2Constraint_setServo=C.btGeneric6DofSpring2Constraint_setServo,r.btGeneric6DofSpring2Constraint_setTargetVelocity=C.btGeneric6DofSpring2Constraint_setTargetVelocity,r.btGeneric6DofSpring2Constraint_setServoTarget=C.btGeneric6DofSpring2Constraint_setServoTarget,r.btGeneric6DofSpring2Constraint_setMaxMotorForce=C.btGeneric6DofSpring2Constraint_setMaxMotorForce,r.btGeneric6DofSpring2Constraint_setFrames=C.btGeneric6DofSpring2Constraint_setFrames}(64*A*1024,e,r),r};
(function (exports, Laya) {
'use strict';
class ColliderShape {
constructor() {
this._scale = new Laya.Vector3(1, 1, 1);
this._centerMatrix = new Laya.Matrix4x4();
this._attatched = false;
this._indexInCompound = -1;
this._compoundParent = null;
this._attatchedCollisionObject = null;
this._referenceCount = 0;
this._localOffset = new Laya.Vector3(0, 0, 0);
this._localRotation = new Laya.Quaternion(0, 0, 0, 1);
this.needsCustomCollisionCallback = false;
}
static __init__() {
var bt = Laya.ILaya3D.Physics3D._bullet;
ColliderShape._btScale = bt.btVector3_create(1, 1, 1);
ColliderShape._btVector30 = bt.btVector3_create(0, 0, 0);
ColliderShape._btQuaternion0 = bt.btQuaternion_create(0, 0, 0, 1);
ColliderShape._btTransform0 = bt.btTransform_create();
}
static _createAffineTransformation(trans, rot, outE) {
var x = rot.x, y = rot.y, z = rot.z, w = rot.w, x2 = x + x, y2 = y + y, z2 = z + z;
var xx = x * x2, xy = x * y2, xz = x * z2, yy = y * y2, yz = y * z2, zz = z * z2;
var wx = w * x2, wy = w * y2, wz = w * z2;
outE[0] = (1 - (yy + zz));
outE[1] = (xy + wz);
outE[2] = (xz - wy);
outE[3] = 0;
outE[4] = (xy - wz);
outE[5] = (1 - (xx + zz));
outE[6] = (yz + wx);
outE[7] = 0;
outE[8] = (xz + wy);
outE[9] = (yz - wx);
outE[10] = (1 - (xx + yy));
outE[11] = 0;
outE[12] = trans.x;
outE[13] = trans.y;
outE[14] = trans.z;
outE[15] = 1;
}
get type() {
return this._type;
}
get localOffset() {
return this._localOffset;
}
set localOffset(value) {
this._localOffset = value;
if (this._compoundParent)
this._compoundParent._updateChildTransform(this);
}
get localRotation() {
return this._localRotation;
}
set localRotation(value) {
this._localRotation = value;
if (this._compoundParent)
this._compoundParent._updateChildTransform(this);
}
_setScale(value) {
if (this._compoundParent) {
this.updateLocalTransformations();
}
else {
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btVector3_setValue(ColliderShape._btScale, value.x, value.y, value.z);
bt.btCollisionShape_setLocalScaling(this._btShape, ColliderShape._btScale);
}
}
_addReference() {
this._referenceCount++;
}
_removeReference() {
this._referenceCount--;
}
updateLocalTransformations() {
if (this._compoundParent) {
var offset = ColliderShape._tempVector30;
Laya.Vector3.multiply(this.localOffset, this._scale, offset);
ColliderShape._createAffineTransformation(offset, this.localRotation, this._centerMatrix.elements);
}
else {
ColliderShape._createAffineTransformation(this.localOffset, this.localRotation, this._centerMatrix.elements);
}
}
cloneTo(destObject) {
var destColliderShape = destObject;
this._localOffset.cloneTo(destColliderShape.localOffset);
this._localRotation.cloneTo(destColliderShape.localRotation);
destColliderShape.localOffset = destColliderShape.localOffset;
destColliderShape.localRotation = destColliderShape.localRotation;
}
clone() {
return null;
}
destroy() {
if (this._btShape) {
Laya.ILaya3D.Physics3D._bullet.btCollisionShape_destroy(this._btShape);
this._btShape = null;
}
}
}
ColliderShape.SHAPEORIENTATION_UPX = 0;
ColliderShape.SHAPEORIENTATION_UPY = 1;
ColliderShape.SHAPEORIENTATION_UPZ = 2;
ColliderShape.SHAPETYPES_BOX = 0;
ColliderShape.SHAPETYPES_SPHERE = 1;
ColliderShape.SHAPETYPES_CYLINDER = 2;
ColliderShape.SHAPETYPES_CAPSULE = 3;
ColliderShape.SHAPETYPES_CONVEXHULL = 4;
ColliderShape.SHAPETYPES_COMPOUND = 5;
ColliderShape.SHAPETYPES_STATICPLANE = 6;
ColliderShape.SHAPETYPES_CONE = 7;
ColliderShape._tempVector30 = new Laya.Vector3();
class BoxColliderShape extends ColliderShape {
constructor(sizeX = 1.0, sizeY = 1.0, sizeZ = 1.0) {
super();
this._sizeX = sizeX;
this._sizeY = sizeY;
this._sizeZ = sizeZ;
this._type = ColliderShape.SHAPETYPES_BOX;
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btVector3_setValue(BoxColliderShape._btSize, sizeX / 2, sizeY / 2, sizeZ / 2);
this._btShape = bt.btBoxShape_create(BoxColliderShape._btSize);
}
static __init__() {
BoxColliderShape._btSize = Laya.ILaya3D.Physics3D._bullet.btVector3_create(0, 0, 0);
}
get sizeX() {
return this._sizeX;
}
get sizeY() {
return this._sizeY;
}
get sizeZ() {
return this._sizeZ;
}
clone() {
var dest = new BoxColliderShape(this._sizeX, this._sizeY, this._sizeZ);
this.cloneTo(dest);
return dest;
}
}
class CapsuleColliderShape extends ColliderShape {
constructor(radius = 0.5, length = 1.25, orientation = ColliderShape.SHAPEORIENTATION_UPY) {
super();
this._radius = radius;
this._length = length;
this._orientation = orientation;
this._type = ColliderShape.SHAPETYPES_CAPSULE;
var bt = Laya.ILaya3D.Physics3D._bullet;
switch (orientation) {
case ColliderShape.SHAPEORIENTATION_UPX:
this._btShape = bt.btCapsuleShapeX_create(radius, length - radius * 2);
break;
case ColliderShape.SHAPEORIENTATION_UPY:
this._btShape = bt.btCapsuleShape_create(radius, length - radius * 2);
break;
case ColliderShape.SHAPEORIENTATION_UPZ:
this._btShape = bt.btCapsuleShapeZ_create(radius, length - radius * 2);
break;
default:
throw "CapsuleColliderShape:unknown orientation.";
}
}
get radius() {
return this._radius;
}
get length() {
return this._length;
}
get orientation() {
return this._orientation;
}
_setScale(value) {
var fixScale = CapsuleColliderShape._tempVector30;
switch (this.orientation) {
case ColliderShape.SHAPEORIENTATION_UPX:
fixScale.x = value.x;
fixScale.y = fixScale.z = Math.max(value.y, value.z);
break;
case ColliderShape.SHAPEORIENTATION_UPY:
fixScale.y = value.y;
fixScale.x = fixScale.z = Math.max(value.x, value.z);
break;
case ColliderShape.SHAPEORIENTATION_UPZ:
fixScale.z = value.z;
fixScale.x = fixScale.y = Math.max(value.x, value.y);
break;
default:
throw "CapsuleColliderShape:unknown orientation.";
}
super._setScale(fixScale);
}
clone() {
var dest = new CapsuleColliderShape(this._radius, this._length, this._orientation);
this.cloneTo(dest);
return dest;
}
}
CapsuleColliderShape._tempVector30 = new Laya.Vector3();
class CompoundColliderShape extends ColliderShape {
constructor() {
super();
this._childColliderShapes = [];
this._type = ColliderShape.SHAPETYPES_COMPOUND;
this._btShape = Laya.ILaya3D.Physics3D._bullet.btCompoundShape_create();
}
static __init__() {
var bt = Laya.ILaya3D.Physics3D._bullet;
CompoundColliderShape._btVector3One = bt.btVector3_create(1, 1, 1);
CompoundColliderShape._btTransform = bt.btTransform_create();
CompoundColliderShape._btOffset = bt.btVector3_create(0, 0, 0);
CompoundColliderShape._btRotation = bt.btQuaternion_create(0, 0, 0, 1);
}
_clearChildShape(shape) {
shape._attatched = false;
shape._compoundParent = null;
shape._indexInCompound = -1;
}
_addReference() {
}
_removeReference() {
}
_updateChildTransform(shape) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var offset = shape.localOffset;
var rotation = shape.localRotation;
var btOffset = ColliderShape._btVector30;
var btQuaternion = ColliderShape._btQuaternion0;
var btTransform = ColliderShape._btTransform0;
bt.btVector3_setValue(btOffset, -offset.x, offset.y, offset.z);
bt.btQuaternion_setValue(btQuaternion, -rotation.x, rotation.y, rotation.z, -rotation.w);
bt.btTransform_setOrigin(btTransform, btOffset);
bt.btTransform_setRotation(btTransform, btQuaternion);
bt.btCompoundShape_updateChildTransform(this._btShape, shape._indexInCompound, btTransform, true);
}
addChildShape(shape) {
if (shape._attatched)
throw "CompoundColliderShape: this shape has attatched to other entity.";
shape._attatched = true;
shape._compoundParent = this;
shape._indexInCompound = this._childColliderShapes.length;
this._childColliderShapes.push(shape);
var offset = shape.localOffset;
var rotation = shape.localRotation;
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btVector3_setValue(CompoundColliderShape._btOffset, -offset.x, offset.y, offset.z);
bt.btQuaternion_setValue(CompoundColliderShape._btRotation, -rotation.x, rotation.y, rotation.z, -rotation.w);
bt.btTransform_setOrigin(CompoundColliderShape._btTransform, CompoundColliderShape._btOffset);
bt.btTransform_setRotation(CompoundColliderShape._btTransform, CompoundColliderShape._btRotation);
var btScale = bt.btCollisionShape_getLocalScaling(this._btShape);
bt.btCollisionShape_setLocalScaling(this._btShape, CompoundColliderShape._btVector3One);
bt.btCompoundShape_addChildShape(this._btShape, CompoundColliderShape._btTransform, shape._btShape);
bt.btCollisionShape_setLocalScaling(this._btShape, btScale);
(this._attatchedCollisionObject) && (this._attatchedCollisionObject.colliderShape = this);
}
removeChildShape(shape) {
if (shape._compoundParent === this) {
var index = shape._indexInCompound;
this._clearChildShape(shape);
var endShape = this._childColliderShapes[this._childColliderShapes.length - 1];
endShape._indexInCompound = index;
this._childColliderShapes[index] = endShape;
this._childColliderShapes.pop();
Laya.ILaya3D.Physics3D._bullet.btCompoundShape_removeChildShapeByIndex(this._btShape, index);
}
}
clearChildShape() {
for (var i = 0, n = this._childColliderShapes.length; i < n; i++) {
this._clearChildShape(this._childColliderShapes[i]);
Laya.ILaya3D.Physics3D._bullet.btCompoundShape_removeChildShapeByIndex(this._btShape, 0);
}
this._childColliderShapes.length = 0;
}
getChildShapeCount() {
return this._childColliderShapes.length;
}
cloneTo(destObject) {
var destCompoundColliderShape = destObject;
destCompoundColliderShape.clearChildShape();
for (var i = 0, n = this._childColliderShapes.length; i < n; i++)
destCompoundColliderShape.addChildShape(this._childColliderShapes[i].clone());
}
clone() {
var dest = new CompoundColliderShape();
this.cloneTo(dest);
return dest;
}
destroy() {
super.destroy();
for (var i = 0, n = this._childColliderShapes.length; i < n; i++) {
var childShape = this._childColliderShapes[i];
if (childShape._referenceCount === 0)
childShape.destroy();
}
}
}
class ConeColliderShape extends ColliderShape {
constructor(radius = 0.5, height = 1.0, orientation = ColliderShape.SHAPEORIENTATION_UPY) {
super();
this._radius = 1;
this._height = 0.5;
this._radius = radius;
this._height = height;
this._orientation = orientation;
this._type = ColliderShape.SHAPETYPES_CYLINDER;
var bt = Laya.ILaya3D.Physics3D._bullet;
switch (orientation) {
case ColliderShape.SHAPEORIENTATION_UPX:
this._btShape = bt.btConeShapeX_create(radius, height);
break;
case ColliderShape.SHAPEORIENTATION_UPY:
this._btShape = bt.btConeShape_create(radius, height);
break;
case ColliderShape.SHAPEORIENTATION_UPZ:
this._btShape = bt.btConeShapeZ_create(radius, height);
break;
default:
throw "ConeColliderShape:unknown orientation.";
}
}
get radius() {
return this._radius;
}
get height() {
return this._height;
}
get orientation() {
return this._orientation;
}
clone() {
var dest = new ConeColliderShape(this._radius, this._height, this._orientation);
this.cloneTo(dest);
return dest;
}
}
class CylinderColliderShape extends ColliderShape {
constructor(radius = 0.5, height = 1.0, orientation = ColliderShape.SHAPEORIENTATION_UPY) {
super();
this._radius = 1;
this._height = 0.5;
this._radius = radius;
this._height = height;
this._orientation = orientation;
this._type = ColliderShape.SHAPETYPES_CYLINDER;
var bt = Laya.ILaya3D.Physics3D._bullet;
switch (orientation) {
case ColliderShape.SHAPEORIENTATION_UPX:
bt.btVector3_setValue(CylinderColliderShape._btSize, height / 2, radius, radius);
this._btShape = bt.btCylinderShapeX_create(CylinderColliderShape._btSize);
break;
case ColliderShape.SHAPEORIENTATION_UPY:
bt.btVector3_setValue(CylinderColliderShape._btSize, radius, height / 2, radius);
this._btShape = bt.btCylinderShape_create(CylinderColliderShape._btSize);
break;
case ColliderShape.SHAPEORIENTATION_UPZ:
bt.btVector3_setValue(CylinderColliderShape._btSize, radius, radius, height / 2);
this._btShape = bt.btCylinderShapeZ_create(CylinderColliderShape._btSize);
break;
default:
throw "CapsuleColliderShape:unknown orientation.";
}
}
static __init__() {
CylinderColliderShape._btSize = Laya.ILaya3D.Physics3D._bullet.btVector3_create(0, 0, 0);
}
get radius() {
return this._radius;
}
get height() {
return this._height;
}
get orientation() {
return this._orientation;
}
clone() {
var dest = new CylinderColliderShape(this._radius, this._height, this._orientation);
this.cloneTo(dest);
return dest;
}
}
class MeshColliderShape extends ColliderShape {
constructor() {
super();
this._mesh = null;
this._convex = false;
}
get mesh() {
return this._mesh;
}
set mesh(value) {
if (this._mesh !== value) {
var bt = Laya.ILaya3D.Physics3D._bullet;
if (this._mesh) {
bt.btCollisionShape_destroy(this._btShape);
}
if (value) {
this._btShape = bt.btGImpactMeshShape_create(value._getPhysicMesh());
bt.btGImpactShapeInterface_updateBound(this._btShape);
}
this._mesh = value;
}
}
get convex() {
return this._convex;
}
set convex(value) {
this._convex = value;
}
_setScale(value) {
if (this._compoundParent) {
this.updateLocalTransformations();
}
else {
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btVector3_setValue(ColliderShape._btScale, value.x, value.y, value.z);
bt.btCollisionShape_setLocalScaling(this._btShape, ColliderShape._btScale);
bt.btGImpactShapeInterface_updateBound(this._btShape);
}
}
cloneTo(destObject) {
var destMeshCollider = destObject;
destMeshCollider.convex = this._convex;
destMeshCollider.mesh = this._mesh;
super.cloneTo(destObject);
}
clone() {
var dest = new MeshColliderShape();
this.cloneTo(dest);
return dest;
}
destroy() {
if (this._btShape) {
Laya.ILaya3D.Physics3D._bullet.btCollisionShape_destroy(this._btShape);
this._btShape = null;
}
}
}
class SphereColliderShape extends ColliderShape {
constructor(radius = 0.5) {
super();
this._radius = radius;
this._type = ColliderShape.SHAPETYPES_SPHERE;
this._btShape = Laya.ILaya3D.Physics3D._bullet.btSphereShape_create(radius);
}
get radius() {
return this._radius;
}
clone() {
var dest = new SphereColliderShape(this._radius);
this.cloneTo(dest);
return dest;
}
}
class PhysicsComponent extends Laya.Component {
constructor(collisionGroup, canCollideWith) {
super();
this._restitution = 0.0;
this._friction = 0.5;
this._rollingFriction = 0.0;
this._ccdMotionThreshold = 0.0;
this._ccdSweptSphereRadius = 0.0;
this._collisionGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_DEFAULTFILTER;
this._canCollideWith = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER;
this._colliderShape = null;
this._transformFlag = 2147483647;
this._controlBySimulation = false;
this._enableProcessCollisions = true;
this._inPhysicUpdateListIndex = -1;
this.canScaleShape = true;
this._collisionGroup = collisionGroup;
this._canCollideWith = canCollideWith;
PhysicsComponent._physicObjectsMap[this.id] = this;
}
static __init__() {
var bt = Laya.ILaya3D.Physics3D._bullet;
PhysicsComponent._btVector30 = bt.btVector3_create(0, 0, 0);
PhysicsComponent._btQuaternion0 = bt.btQuaternion_create(0, 0, 0, 1);
}
static _createAffineTransformationArray(tranX, tranY, tranZ, rotX, rotY, rotZ, rotW, scale, outE) {
var x2 = rotX + rotX, y2 = rotY + rotY, z2 = rotZ + rotZ;
var xx = rotX * x2, xy = rotX * y2, xz = rotX * z2, yy = rotY * y2, yz = rotY * z2, zz = rotZ * z2;
var wx = rotW * x2, wy = rotW * y2, wz = rotW * z2, sx = scale[0], sy = scale[1], sz = scale[2];
outE[0] = (1 - (yy + zz)) * sx;
outE[1] = (xy + wz) * sx;
outE[2] = (xz - wy) * sx;
outE[3] = 0;
outE[4] = (xy - wz) * sy;
outE[5] = (1 - (xx + zz)) * sy;
outE[6] = (yz + wx) * sy;
outE[7] = 0;
outE[8] = (xz + wy) * sz;
outE[9] = (yz - wx) * sz;
outE[10] = (1 - (xx + yy)) * sz;
outE[11] = 0;
outE[12] = tranX;
outE[13] = tranY;
outE[14] = tranZ;
outE[15] = 1;
}
static _creatShape(shapeData) {
var colliderShape;
switch (shapeData.type) {
case "BoxColliderShape":
var sizeData = shapeData.size;
colliderShape = sizeData ? new BoxColliderShape(sizeData[0], sizeData[1], sizeData[2]) : new BoxColliderShape();
break;
case "SphereColliderShape":
colliderShape = new SphereColliderShape(shapeData.radius);
break;
case "CapsuleColliderShape":
colliderShape = new CapsuleColliderShape(shapeData.radius, shapeData.height, shapeData.orientation);
break;
case "MeshColliderShape":
var meshCollider = new MeshColliderShape();
shapeData.mesh && (meshCollider.mesh = Laya.Loader.getRes(shapeData.mesh));
colliderShape = meshCollider;
break;
case "ConeColliderShape":
colliderShape = new ConeColliderShape(shapeData.radius, shapeData.height, shapeData.orientation);
break;
case "CylinderColliderShape":
colliderShape = new CylinderColliderShape(shapeData.radius, shapeData.height, shapeData.orientation);
break;
default:
throw "unknown shape type.";
}
if (shapeData.center) {
var localOffset = colliderShape.localOffset;
localOffset.fromArray(shapeData.center);
colliderShape.localOffset = localOffset;
}
return colliderShape;
}
static physicVector3TransformQuat(source, qx, qy, qz, qw, out) {
var x = source.x, y = source.y, z = source.z, ix = qw * x + qy * z - qz * y, iy = qw * y + qz * x - qx * z, iz = qw * z + qx * y - qy * x, iw = -qx * x - qy * y - qz * z;
out.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;
out.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;
out.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;
}
static physicQuaternionMultiply(lx, ly, lz, lw, right, out) {
var rx = right.x;
var ry = right.y;
var rz = right.z;
var rw = right.w;
var a = (ly * rz - lz * ry);
var b = (lz * rx - lx * rz);
var c = (lx * ry - ly * rx);
var d = (lx * rx + ly * ry + lz * rz);
out.x = (lx * rw + rx * lw) + a;
out.y = (ly * rw + ry * lw) + b;
out.z = (lz * rw + rz * lw) + c;
out.w = lw * rw - d;
}
get restitution() {
return this._restitution;
}
set restitution(value) {
this._restitution = value;
this._btColliderObject && Laya.ILaya3D.Physics3D._bullet.btCollisionObject_setRestitution(this._btColliderObject, value);
}
get friction() {
return this._friction;
}
set friction(value) {
this._friction = value;
this._btColliderObject && Laya.ILaya3D.Physics3D._bullet.btCollisionObject_setFriction(this._btColliderObject, value);
}
get rollingFriction() {
return this._rollingFriction;
}
set rollingFriction(value) {
this._rollingFriction = value;
this._btColliderObject && Laya.ILaya3D.Physics3D._bullet.btCollisionObject_setRollingFriction(this._btColliderObject, value);
}
get ccdMotionThreshold() {
return this._ccdMotionThreshold;
}
set ccdMotionThreshold(value) {
this._ccdMotionThreshold = value;
this._btColliderObject && Laya.ILaya3D.Physics3D._bullet.btCollisionObject_setCcdMotionThreshold(this._btColliderObject, value);
}
get ccdSweptSphereRadius() {
return this._ccdSweptSphereRadius;
}
set ccdSweptSphereRadius(value) {
this._ccdSweptSphereRadius = value;
this._btColliderObject && Laya.ILaya3D.Physics3D._bullet.btCollisionObject_setCcdSweptSphereRadius(this._btColliderObject, value);
}
get isActive() {
return this._btColliderObject ? Laya.ILaya3D.Physics3D._bullet.btCollisionObject_isActive(this._btColliderObject) : false;
}
get colliderShape() {
return this._colliderShape;
}
set colliderShape(value) {
var lastColliderShape = this._colliderShape;
if (lastColliderShape) {
lastColliderShape._attatched = false;
lastColliderShape._attatchedCollisionObject = null;
}
this._colliderShape = value;
if (value) {
if (value._attatched) {
throw "PhysicsComponent: this shape has attatched to other entity.";
}
else {
value._attatched = true;
value._attatchedCollisionObject = this;
}
if (this._btColliderObject) {
Laya.ILaya3D.Physics3D._bullet.btCollisionObject_setCollisionShape(this._btColliderObject, value._btShape);
var canInSimulation = this._simulation && this._enabled;
(canInSimulation && lastColliderShape) && (this._removeFromSimulation());
this._onShapeChange(value);
if (canInSimulation) {
this._derivePhysicsTransformation(true);
this._addToSimulation();
}
}
}
else {
if (this._simulation && this._enabled)
lastColliderShape && this._removeFromSimulation();
}
}
get simulation() {
return this._simulation;
}
get collisionGroup() {
return this._collisionGroup;
}
set collisionGroup(value) {
if (this._collisionGroup !== value) {
this._collisionGroup = value;
if (this._simulation && this._colliderShape && this._enabled) {
this._removeFromSimulation();
this._addToSimulation();
}
}
}
get canCollideWith() {
return this._canCollideWith;
}
set canCollideWith(value) {
if (this._canCollideWith !== value) {
this._canCollideWith = value;
if (this._simulation && this._colliderShape && this._enabled) {
this._removeFromSimulation();
this._addToSimulation();
}
}
}
_parseShape(shapesData) {
var shapeCount = shapesData.length;
if (shapeCount === 1) {
var shape = PhysicsComponent._creatShape(shapesData[0]);
this.colliderShape = shape;
}
else {
var compoundShape = new CompoundColliderShape();
for (var i = 0; i < shapeCount; i++) {
shape = PhysicsComponent._creatShape(shapesData[i]);
compoundShape.addChildShape(shape);
}
this.colliderShape = compoundShape;
}
}
_onScaleChange(scale) {
this._colliderShape._setScale(scale);
}
_onEnable() {
this._simulation = this.owner._scene.physicsSimulation;
Laya.ILaya3D.Physics3D._bullet.btCollisionObject_setContactProcessingThreshold(this._btColliderObject, 0);
if (this._colliderShape) {
this._derivePhysicsTransformation(true);
this._addToSimulation();
}
}
_onDisable() {
if (this._colliderShape) {
this._removeFromSimulation();
(this._inPhysicUpdateListIndex !== -1) && (this._simulation._physicsUpdateList.remove(this));
}
this._simulation = null;
}
_onDestroy() {
delete PhysicsComponent._physicObjectsMap[this.id];
Laya.ILaya3D.Physics3D._bullet.btCollisionObject_destroy(this._btColliderObject);
this._colliderShape.destroy();
super._onDestroy();
this._btColliderObject = null;
this._colliderShape = null;
this._simulation = null;
this.owner.transform.off(Laya.Event.TRANSFORM_CHANGED, this, this._onTransformChanged);
}
_isValid() {
return this._simulation && this._colliderShape && this._enabled;
}
_parse(data) {
(data.collisionGroup != null) && (this.collisionGroup = data.collisionGroup);
(data.canCollideWith != null) && (this.canCollideWith = data.canCollideWith);
(data.ccdMotionThreshold != null) && (this.ccdMotionThreshold = data.ccdMotionThreshold);
(data.ccdSweptSphereRadius != null) && (this.ccdSweptSphereRadius = data.ccdSweptSphereRadius);
}
_setTransformFlag(type, value) {
if (value)
this._transformFlag |= type;
else
this._transformFlag &= ~type;
}
_getTransformFlag(type) {
return (this._transformFlag & type) != 0;
}
_addToSimulation() {
}
_removeFromSimulation() {
}
_derivePhysicsTransformation(force) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var btColliderObject = this._btColliderObject;
var btTransform = bt.btCollisionObject_getWorldTransform(btColliderObject);
this._innerDerivePhysicsTransformation(btTransform, force);
bt.btCollisionObject_setWorldTransform(btColliderObject, btTransform);
}
_innerDerivePhysicsTransformation(physicTransformOut, force) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var transform = this.owner._transform;
if (force || this._getTransformFlag(Laya.Transform3D.TRANSFORM_WORLDPOSITION)) {
var shapeOffset = this._colliderShape.localOffset;
var position = transform.position;
var btPosition = PhysicsComponent._btVector30;
if (shapeOffset.x !== 0 || shapeOffset.y !== 0 || shapeOffset.z !== 0) {
var physicPosition = PhysicsComponent._tempVector30;
var worldMat = transform.worldMatrix;
Laya.Vector3.transformCoordinate(shapeOffset, worldMat, physicPosition);
bt.btVector3_setValue(btPosition, -physicPosition.x, physicPosition.y, physicPosition.z);
}
else {
bt.btVector3_setValue(btPosition, -position.x, position.y, position.z);
}
bt.btTransform_setOrigin(physicTransformOut, btPosition);
this._setTransformFlag(Laya.Transform3D.TRANSFORM_WORLDPOSITION, false);
}
if (force || this._getTransformFlag(Laya.Transform3D.TRANSFORM_WORLDQUATERNION)) {
var shapeRotation = this._colliderShape.localRotation;
var btRotation = PhysicsComponent._btQuaternion0;
var rotation = transform.rotation;
if (shapeRotation.x !== 0 || shapeRotation.y !== 0 || shapeRotation.z !== 0 || shapeRotation.w !== 1) {
var physicRotation = PhysicsComponent._tempQuaternion0;
PhysicsComponent.physicQuaternionMultiply(rotation.x, rotation.y, rotation.z, rotation.w, shapeRotation, physicRotation);
bt.btQuaternion_setValue(btRotation, -physicRotation.x, physicRotation.y, physicRotation.z, -physicRotation.w);
}
else {
bt.btQuaternion_setValue(btRotation, -rotation.x, rotation.y, rotation.z, -rotation.w);
}
bt.btTransform_setRotation(physicTransformOut, btRotation);
this._setTransformFlag(Laya.Transform3D.TRANSFORM_WORLDQUATERNION, false);
}
if (force || this._getTransformFlag(Laya.Transform3D.TRANSFORM_WORLDSCALE)) {
this._onScaleChange(transform.getWorldLossyScale());
this._setTransformFlag(Laya.Transform3D.TRANSFORM_WORLDSCALE, false);
}
}
_updateTransformComponent(physicsTransform) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var colliderShape = this._colliderShape;
var localOffset = colliderShape.localOffset;
var localRotation = colliderShape.localRotation;
var transform = this.owner._transform;
var position = transform.position;
var rotation = transform.rotation;
var btPosition = bt.btTransform_getOrigin(physicsTransform);
var btRotation = bt.btTransform_getRotation(physicsTransform);
var btRotX = -bt.btQuaternion_x(btRotation);
var btRotY = bt.btQuaternion_y(btRotation);
var btRotZ = bt.btQuaternion_z(btRotation);
var btRotW = -bt.btQuaternion_w(btRotation);
if (localRotation.x !== 0 || localRotation.y !== 0 || localRotation.z !== 0 || localRotation.w !== 1) {
var invertShapeRotaion = PhysicsComponent._tempQuaternion0;
localRotation.invert(invertShapeRotaion);
PhysicsComponent.physicQuaternionMultiply(btRotX, btRotY, btRotZ, btRotW, invertShapeRotaion, rotation);
}
else {
rotation.x = btRotX;
rotation.y = btRotY;
rotation.z = btRotZ;
rotation.w = btRotW;
}
transform.rotation = rotation;
if (localOffset.x !== 0 || localOffset.y !== 0 || localOffset.z !== 0) {
var btScale = bt.btCollisionShape_getLocalScaling(colliderShape._btShape);
var rotShapePosition = PhysicsComponent._tempVector30;
rotShapePosition.x = localOffset.x * bt.btVector3_x(btScale);
rotShapePosition.y = localOffset.y * bt.btVector3_y(btScale);
rotShapePosition.z = localOffset.z * bt.btVector3_z(btScale);
Laya.Vector3.transformQuat(rotShapePosition, rotation, rotShapePosition);
position.x = -bt.btVector3_x(btPosition) - rotShapePosition.x;
position.y = bt.btVector3_y(btPosition) - rotShapePosition.y;
position.z = bt.btVector3_z(btPosition) - rotShapePosition.z;
}
else {
position.x = -bt.btVector3_x(btPosition);
position.y = bt.btVector3_y(btPosition);
position.z = bt.btVector3_z(btPosition);
}
transform.position = position;
}
_onShapeChange(colShape) {
var btColObj = this._btColliderObject;
var bt = Laya.ILaya3D.Physics3D._bullet;
var flags = bt.btCollisionObject_getCollisionFlags(btColObj);
if (colShape.needsCustomCollisionCallback) {
if ((flags & PhysicsComponent.COLLISIONFLAGS_CUSTOM_MATERIAL_CALLBACK) === 0)
bt.btCollisionObject_setCollisionFlags(btColObj, flags | PhysicsComponent.COLLISIONFLAGS_CUSTOM_MATERIAL_CALLBACK);
}
else {
if ((flags & PhysicsComponent.COLLISIONFLAGS_CUSTOM_MATERIAL_CALLBACK) > 0)
bt.btCollisionObject_setCollisionFlags(btColObj, flags ^ PhysicsComponent.COLLISIONFLAGS_CUSTOM_MATERIAL_CALLBACK);
}
}
_onAdded() {
this.enabled = this._enabled;
this.restitution = this._restitution;
this.friction = this._friction;
this.rollingFriction = this._rollingFriction;
this.ccdMotionThreshold = this._ccdMotionThreshold;
this.ccdSweptSphereRadius = this._ccdSweptSphereRadius;
this.owner.transform.on(Laya.Event.TRANSFORM_CHANGED, this, this._onTransformChanged);
}
_onTransformChanged(flag) {
if (PhysicsComponent._addUpdateList || !this._controlBySimulation) {
flag &= Laya.Transform3D.TRANSFORM_WORLDPOSITION | Laya.Transform3D.TRANSFORM_WORLDQUATERNION | Laya.Transform3D.TRANSFORM_WORLDSCALE;
if (flag) {
this._transformFlag |= flag;
if (this._isValid() && this._inPhysicUpdateListIndex === -1)
this._simulation._physicsUpdateList.add(this);
}
}
}
_cloneTo(dest) {
var destPhysicsComponent = dest;
destPhysicsComponent.restitution = this._restitution;
destPhysicsComponent.friction = this._friction;
destPhysicsComponent.rollingFriction = this._rollingFriction;
destPhysicsComponent.ccdMotionThreshold = this._ccdMotionThreshold;
destPhysicsComponent.ccdSweptSphereRadius = this._ccdSweptSphereRadius;
destPhysicsComponent.collisionGroup = this._collisionGroup;
destPhysicsComponent.canCollideWith = this._canCollideWith;
destPhysicsComponent.canScaleShape = this.canScaleShape;
(this._colliderShape) && (destPhysicsComponent.colliderShape = this._colliderShape.clone());
}
}
PhysicsComponent.ACTIVATIONSTATE_ACTIVE_TAG = 1;
PhysicsComponent.ACTIVATIONSTATE_ISLAND_SLEEPING = 2;
PhysicsComponent.ACTIVATIONSTATE_WANTS_DEACTIVATION = 3;
PhysicsComponent.ACTIVATIONSTATE_DISABLE_DEACTIVATION = 4;
PhysicsComponent.ACTIVATIONSTATE_DISABLE_SIMULATION = 5;
PhysicsComponent.COLLISIONFLAGS_STATIC_OBJECT = 1;
PhysicsComponent.COLLISIONFLAGS_KINEMATIC_OBJECT = 2;
PhysicsComponent.COLLISIONFLAGS_NO_CONTACT_RESPONSE = 4;
PhysicsComponent.COLLISIONFLAGS_CUSTOM_MATERIAL_CALLBACK = 8;
PhysicsComponent.COLLISIONFLAGS_CHARACTER_OBJECT = 16;
PhysicsComponent.COLLISIONFLAGS_DISABLE_VISUALIZE_OBJECT = 32;
PhysicsComponent.COLLISIONFLAGS_DISABLE_SPU_COLLISION_PROCESSING = 64;
PhysicsComponent._tempVector30 = new Laya.Vector3();
PhysicsComponent._tempQuaternion0 = new Laya.Quaternion();
PhysicsComponent._tempQuaternion1 = new Laya.Quaternion();
PhysicsComponent._tempMatrix4x40 = new Laya.Matrix4x4();
PhysicsComponent._physicObjectsMap = {};
PhysicsComponent._addUpdateList = true;
class BulletInteractive {
}
BulletInteractive._interactive = {
"getWorldTransform": (rigidBodyID, worldTransPointer) => {
},
"setWorldTransform": (rigidBodyID, worldTransPointer) => {
var rigidBody = PhysicsComponent._physicObjectsMap[rigidBodyID];
rigidBody._simulation._updatedRigidbodies++;
rigidBody._updateTransformComponent(worldTransPointer);
}
};
class CharacterController extends PhysicsComponent {
constructor(stepheight = 0.1, upAxis = null, collisionGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_DEFAULTFILTER, canCollideWith = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER) {
super(collisionGroup, canCollideWith);
this._upAxis = new Laya.Vector3(0, 1, 0);
this._maxSlope = 45.0;
this._jumpSpeed = 10.0;
this._fallSpeed = 55.0;
this._gravity = new Laya.Vector3(0, -9.8 * 3, 0);
this._btKinematicCharacter = null;
this._stepHeight = stepheight;
(upAxis) && (this._upAxis = upAxis);
this._controlBySimulation = true;
}
static __init__() {
CharacterController._btTempVector30 = Laya.ILaya3D.Physics3D._bullet.btVector3_create(0, 0, 0);
}
get fallSpeed() {
return this._fallSpeed;
}
set fallSpeed(value) {
this._fallSpeed = value;
Laya.ILaya3D.Physics3D._bullet.btKinematicCharacterController_setFallSpeed(this._btKinematicCharacter, value);
}
get jumpSpeed() {
return this._jumpSpeed;
}
set jumpSpeed(value) {
this._jumpSpeed = value;
Laya.ILaya3D.Physics3D._bullet.btKinematicCharacterController_setJumpSpeed(this._btKinematicCharacter, value);
}
get gravity() {
return this._gravity;
}
set gravity(value) {
this._gravity = value;
var bt = Laya.ILaya3D.Physics3D._bullet;
var btGravity = CharacterController._btTempVector30;
bt.btVector3_setValue(btGravity, -value.x, value.y, value.z);
bt.btKinematicCharacterController_setGravity(this._btKinematicCharacter, btGravity);
}
get maxSlope() {
return this._maxSlope;
}
set maxSlope(value) {
this._maxSlope = value;
Laya.ILaya3D.Physics3D._bullet.btKinematicCharacterController_setMaxSlope(this._btKinematicCharacter, (value / 180) * Math.PI);
}
get isGrounded() {
return Laya.ILaya3D.Physics3D._bullet.btKinematicCharacterController_onGround(this._btKinematicCharacter);
}
get stepHeight() {
return this._stepHeight;
}
set stepHeight(value) {
this._stepHeight = value;
Laya.ILaya3D.Physics3D._bullet.btKinematicCharacterController_setStepHeight(this._btKinematicCharacter, value);
}
get upAxis() {
return this._upAxis;
}
set upAxis(value) {
this._upAxis = value;
var btUpAxis = CharacterController._btTempVector30;
Laya.Utils3D._convertToBulletVec3(value, btUpAxis, false);
Laya.ILaya3D.Physics3D._bullet.btKinematicCharacterController_setUp(this._btKinematicCharacter, btUpAxis);
}
_constructCharacter() {
var bt = Laya.ILaya3D.Physics3D._bullet;
if (this._btKinematicCharacter)
bt.btKinematicCharacterController_destroy(this._btKinematicCharacter);
var btUpAxis = CharacterController._btTempVector30;
bt.btVector3_setValue(btUpAxis, this._upAxis.x, this._upAxis.y, this._upAxis.z);
this._btKinematicCharacter = bt.btKinematicCharacterController_create(this._btColliderObject, this._colliderShape._btShape, this._stepHeight, btUpAxis);
this.fallSpeed = this._fallSpeed;
this.maxSlope = this._maxSlope;
this.jumpSpeed = this._jumpSpeed;
this.gravity = this._gravity;
}
_onShapeChange(colShape) {
super._onShapeChange(colShape);
this._constructCharacter();
}
_onAdded() {
var bt = Laya.ILaya3D.Physics3D._bullet;
var ghostObject = bt.btPairCachingGhostObject_create();
bt.btCollisionObject_setUserIndex(ghostObject, this.id);
bt.btCollisionObject_setCollisionFlags(ghostObject, PhysicsComponent.COLLISIONFLAGS_CHARACTER_OBJECT);
this._btColliderObject = ghostObject;
(this._colliderShape) && (this._constructCharacter());
super._onAdded();
}
_addToSimulation() {
this._simulation._characters.push(this);
this._simulation._addCharacter(this, this._collisionGroup, this._canCollideWith);
}
_removeFromSimulation() {
this._simulation._removeCharacter(this);
var characters = this._simulation._characters;
characters.splice(characters.indexOf(this), 1);
}
_cloneTo(dest) {
super._cloneTo(dest);
var destCharacterController = dest;
destCharacterController.stepHeight = this._stepHeight;
destCharacterController.upAxis = this._upAxis;
destCharacterController.maxSlope = this._maxSlope;
destCharacterController.jumpSpeed = this._jumpSpeed;
destCharacterController.fallSpeed = this._fallSpeed;
destCharacterController.gravity = this._gravity;
}
_onDestroy() {
Laya.ILaya3D.Physics3D._bullet.btKinematicCharacterController_destroy(this._btKinematicCharacter);
super._onDestroy();
this._btKinematicCharacter = null;
}
move(movement) {
var btMovement = CharacterController._btVector30;
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btVector3_setValue(btMovement, -movement.x, movement.y, movement.z);
bt.btKinematicCharacterController_setWalkDirection(this._btKinematicCharacter, btMovement);
}
jump(velocity = null) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var btVelocity = CharacterController._btVector30;
if (velocity) {
Laya.Utils3D._convertToBulletVec3(velocity, btVelocity, true);
bt.btKinematicCharacterController_jump(this._btKinematicCharacter, btVelocity);
}
else {
bt.btVector3_setValue(btVelocity, 0, 0, 0);
bt.btKinematicCharacterController_jump(this._btKinematicCharacter, btVelocity);
}
}
}
CharacterController.UPAXIS_X = 0;
CharacterController.UPAXIS_Y = 1;
CharacterController.UPAXIS_Z = 2;
class Collision {
constructor() {
this._lastUpdateFrame = -2147483648;
this._updateFrame = -2147483648;
this._isTrigger = false;
this.contacts = [];
}
_setUpdateFrame(farme) {
this._lastUpdateFrame = this._updateFrame;
this._updateFrame = farme;
}
}
class ContactPoint {
constructor() {
this._idCounter = 0;
this.colliderA = null;
this.colliderB = null;
this.distance = 0;
this.normal = new Laya.Vector3();
this.positionOnA = new Laya.Vector3();
this.positionOnB = new Laya.Vector3();
this._id = ++this._idCounter;
}
}
class HitResult {
constructor() {
this.succeeded = false;
this.collider = null;
this.point = new Laya.Vector3();
this.normal = new Laya.Vector3();
this.hitFraction = 0;
}
}
class CollisionTool {
constructor() {
this._hitResultsPoolIndex = 0;
this._hitResultsPool = [];
this._contactPonintsPoolIndex = 0;
this._contactPointsPool = [];
this._collisionsPool = [];
this._collisions = {};
}
getHitResult() {
var hitResult = this._hitResultsPool[this._hitResultsPoolIndex++];
if (!hitResult) {
hitResult = new HitResult();
this._hitResultsPool.push(hitResult);
}
return hitResult;
}
recoverAllHitResultsPool() {
this._hitResultsPoolIndex = 0;
}
getContactPoints() {
var contactPoint = this._contactPointsPool[this._contactPonintsPoolIndex++];
if (!contactPoint) {
contactPoint = new ContactPoint();
this._contactPointsPool.push(contactPoint);
}
return contactPoint;
}
recoverAllContactPointsPool() {
this._contactPonintsPoolIndex = 0;
}
getCollision(physicComponentA, physicComponentB) {
var collision;
var idA = physicComponentA.id;
var idB = physicComponentB.id;
var subCollisionFirst = this._collisions[idA];
if (subCollisionFirst)
collision = subCollisionFirst[idB];
if (!collision) {
if (!subCollisionFirst) {
subCollisionFirst = {};
this._collisions[idA] = subCollisionFirst;
}
collision = this._collisionsPool.length === 0 ? new Collision() : this._collisionsPool.pop();
collision._colliderA = physicComponentA;
collision._colliderB = physicComponentB;
subCollisionFirst[idB] = collision;
}
return collision;
}
recoverCollision(collision) {
var idA = collision._colliderA.id;
var idB = collision._colliderB.id;
this._collisions[idA][idB] = null;
this._collisionsPool.push(collision);
}
garbageCollection() {
this._hitResultsPoolIndex = 0;
this._hitResultsPool.length = 0;
this._contactPonintsPoolIndex = 0;
this._contactPointsPool.length = 0;
this._collisionsPool.length = 0;
for (var subCollisionsKey in this._collisionsPool) {
var subCollisions = this._collisionsPool[subCollisionsKey];
var wholeDelete = true;
for (var collisionKey in subCollisions) {
if (subCollisions[collisionKey])
wholeDelete = false;
else
delete subCollisions[collisionKey];
}
if (wholeDelete)
delete this._collisionsPool[subCollisionsKey];
}
}
}
class Constraint3D {
constructor() {
}
}
class PhysicsTriggerComponent extends PhysicsComponent {
constructor(collisionGroup, canCollideWith) {
super(collisionGroup, canCollideWith);
this._isTrigger = false;
}
get isTrigger() {
return this._isTrigger;
}
set isTrigger(value) {
this._isTrigger = value;
var bt = Laya.ILaya3D.Physics3D._bullet;
if (this._btColliderObject) {
var flags = bt.btCollisionObject_getCollisionFlags(this._btColliderObject);
if (value) {
if ((flags & PhysicsComponent.COLLISIONFLAGS_NO_CONTACT_RESPONSE) === 0)
bt.btCollisionObject_setCollisionFlags(this._btColliderObject, flags | PhysicsComponent.COLLISIONFLAGS_NO_CONTACT_RESPONSE);
}
else {
if ((flags & PhysicsComponent.COLLISIONFLAGS_NO_CONTACT_RESPONSE) !== 0)
bt.btCollisionObject_setCollisionFlags(this._btColliderObject, flags ^ PhysicsComponent.COLLISIONFLAGS_NO_CONTACT_RESPONSE);
}
}
}
_onAdded() {
super._onAdded();
this.isTrigger = this._isTrigger;
}
_cloneTo(dest) {
super._cloneTo(dest);
dest.isTrigger = this._isTrigger;
}
}
class PhysicsCollider extends PhysicsTriggerComponent {
constructor(collisionGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_DEFAULTFILTER, canCollideWith = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER) {
super(collisionGroup, canCollideWith);
this._enableProcessCollisions = false;
}
_addToSimulation() {
this._simulation._addPhysicsCollider(this, this._collisionGroup, this._canCollideWith);
}
_removeFromSimulation() {
this._simulation._removePhysicsCollider(this);
}
_parse(data) {
(data.friction != null) && (this.friction = data.friction);
(data.rollingFriction != null) && (this.rollingFriction = data.rollingFriction);
(data.restitution != null) && (this.restitution = data.restitution);
(data.isTrigger != null) && (this.isTrigger = data.isTrigger);
super._parse(data);
this._parseShape(data.shapes);
}
_onAdded() {
var bt = Laya.Physics3D._bullet;
var btColObj = bt.btCollisionObject_create();
bt.btCollisionObject_setUserIndex(btColObj, this.id);
bt.btCollisionObject_forceActivationState(btColObj, PhysicsComponent.ACTIVATIONSTATE_DISABLE_SIMULATION);
var flags = bt.btCollisionObject_getCollisionFlags(btColObj);
if (this.owner.isStatic) {
if ((flags & PhysicsComponent.COLLISIONFLAGS_KINEMATIC_OBJECT) > 0)
flags = flags ^ PhysicsComponent.COLLISIONFLAGS_KINEMATIC_OBJECT;
flags = flags | PhysicsComponent.COLLISIONFLAGS_STATIC_OBJECT;
}
else {
if ((flags & PhysicsComponent.COLLISIONFLAGS_STATIC_OBJECT) > 0)
flags = flags ^ PhysicsComponent.COLLISIONFLAGS_STATIC_OBJECT;
flags = flags | PhysicsComponent.COLLISIONFLAGS_KINEMATIC_OBJECT;
}
bt.btCollisionObject_setCollisionFlags(btColObj, flags);
this._btColliderObject = btColObj;
super._onAdded();
}
}
class PhysicsSettings {
constructor() {
this.flags = 0;
this.maxSubSteps = 1;
this.fixedTimeStep = 1.0 / 60.0;
}
}
class PhysicsUpdateList extends Laya.SingletonList {
constructor() {
super();
}
add(element) {
var index = element._inPhysicUpdateListIndex;
if (index !== -1)
throw "PhysicsUpdateList:element has in PhysicsUpdateList.";
this._add(element);
element._inPhysicUpdateListIndex = this.length++;
}
remove(element) {
var index = element._inPhysicUpdateListIndex;
this.length--;
if (index !== this.length) {
var end = this.elements[this.length];
this.elements[index] = end;
end._inPhysicUpdateListIndex = index;
}
element._inPhysicUpdateListIndex = -1;
}
}
class PhysicsSimulation {
constructor(configuration) {
this._gravity = new Laya.Vector3(0, -10, 0);
this._btVector3Zero = Laya.ILaya3D.Physics3D._bullet.btVector3_create(0, 0, 0);
this._btDefaultQuaternion = Laya.ILaya3D.Physics3D._bullet.btQuaternion_create(0, 0, 0, -1);
this._collisionsUtils = new CollisionTool();
this._previousFrameCollisions = [];
this._currentFrameCollisions = [];
this._currentConstraint = {};
this._physicsUpdateList = new PhysicsUpdateList();
this._characters = [];
this._updatedRigidbodies = 0;
this.maxSubSteps = 1;
this.fixedTimeStep = 1.0 / 60.0;
this.maxSubSteps = configuration.maxSubSteps;
this.fixedTimeStep = configuration.fixedTimeStep;
var bt = Laya.ILaya3D.Physics3D._bullet;
this._btCollisionConfiguration = bt.btDefaultCollisionConfiguration_create();
this._btDispatcher = bt.btCollisionDispatcher_create(this._btCollisionConfiguration);
this._btBroadphase = bt.btDbvtBroadphase_create();
bt.btOverlappingPairCache_setInternalGhostPairCallback(bt.btDbvtBroadphase_getOverlappingPairCache(this._btBroadphase), bt.btGhostPairCallback_create());
var conFlags = configuration.flags;
if (conFlags & PhysicsSimulation.PHYSICSENGINEFLAGS_COLLISIONSONLY) {
this._btCollisionWorld = new bt.btCollisionWorld(this._btDispatcher, this._btBroadphase, this._btCollisionConfiguration);
}
else if (conFlags & PhysicsSimulation.PHYSICSENGINEFLAGS_SOFTBODYSUPPORT) {
throw "PhysicsSimulation:SoftBody processing is not yet available";
}
else {
var solver = bt.btSequentialImpulseConstraintSolver_create();
this._btDiscreteDynamicsWorld = bt.btDiscreteDynamicsWorld_create(this._btDispatcher, this._btBroadphase, solver, this._btCollisionConfiguration);
this._btCollisionWorld = this._btDiscreteDynamicsWorld;
}
if (this._btDiscreteDynamicsWorld) {
this._btSolverInfo = bt.btDynamicsWorld_getSolverInfo(this._btDiscreteDynamicsWorld);
this._btDispatchInfo = bt.btCollisionWorld_getDispatchInfo(this._btDiscreteDynamicsWorld);
}
this._btClosestRayResultCallback = bt.ClosestRayResultCallback_create(this._btVector3Zero, this._btVector3Zero);
this._btAllHitsRayResultCallback = bt.AllHitsRayResultCallback_create(this._btVector3Zero, this._btVector3Zero);
this._btClosestConvexResultCallback = bt.ClosestConvexResultCallback_create(this._btVector3Zero, this._btVector3Zero);
this._btAllConvexResultCallback = bt.AllConvexResultCallback_create(this._btVector3Zero, this._btVector3Zero);
this.setHitsRayResultCallbackFlag();
bt.btGImpactCollisionAlgorithm_RegisterAlgorithm(this._btDispatcher);
}
static __init__() {
var bt = Laya.ILaya3D.Physics3D._bullet;
PhysicsSimulation._btTempVector30 = bt.btVector3_create(0, 0, 0);
PhysicsSimulation._btTempVector31 = bt.btVector3_create(0, 0, 0);
PhysicsSimulation._btTempQuaternion0 = bt.btQuaternion_create(0, 0, 0, 1);
PhysicsSimulation._btTempQuaternion1 = bt.btQuaternion_create(0, 0, 0, 1);
PhysicsSimulation._btTempTransform0 = bt.btTransform_create();
PhysicsSimulation._btTempTransform1 = bt.btTransform_create();
}
static createConstraint() {
}
get continuousCollisionDetection() {
return Laya.ILaya3D.Physics3D._bullet.btCollisionWorld_get_m_useContinuous(this._btDispatchInfo);
}
set continuousCollisionDetection(value) {
Laya.ILaya3D.Physics3D._bullet.btCollisionWorld_set_m_useContinuous(this._btDispatchInfo, value);
}
get gravity() {
if (!this._btDiscreteDynamicsWorld)
throw "Simulation:Cannot perform this action when the physics engine is set to CollisionsOnly";
return this._gravity;
}
set gravity(value) {
if (!this._btDiscreteDynamicsWorld)
throw "Simulation:Cannot perform this action when the physics engine is set to CollisionsOnly";
this._gravity = value;
var bt = Laya.ILaya3D.Physics3D._bullet;
var btGravity = PhysicsSimulation._btTempVector30;
bt.btVector3_setValue(btGravity, -value.x, value.y, value.z);
bt.btDiscreteDynamicsWorld_setGravity(this._btDiscreteDynamicsWorld, btGravity);
}
get speculativeContactRestitution() {
if (!this._btDiscreteDynamicsWorld)
throw "Simulation:Cannot Cannot perform this action when the physics engine is set to CollisionsOnly";
return Laya.ILaya3D.Physics3D._bullet.btDiscreteDynamicsWorld_getApplySpeculativeContactRestitution(this._btDiscreteDynamicsWorld);
}
set speculativeContactRestitution(value) {
if (!this._btDiscreteDynamicsWorld)
throw "Simulation:Cannot Cannot perform this action when the physics engine is set to CollisionsOnly";
Laya.ILaya3D.Physics3D._bullet.btDiscreteDynamicsWorld_setApplySpeculativeContactRestitution(this._btDiscreteDynamicsWorld, value);
}
_simulate(deltaTime) {
this._updatedRigidbodies = 0;
var bt = Laya.ILaya3D.Physics3D._bullet;
if (this._btDiscreteDynamicsWorld)
bt.btDiscreteDynamicsWorld_stepSimulation(this._btDiscreteDynamicsWorld, deltaTime, this.maxSubSteps, this.fixedTimeStep);
else
bt.PerformDiscreteCollisionDetection(this._btCollisionWorld);
}
_destroy() {
var bt = Laya.ILaya3D.Physics3D._bullet;
if (this._btDiscreteDynamicsWorld) {
bt.btCollisionWorld_destroy(this._btDiscreteDynamicsWorld);
this._btDiscreteDynamicsWorld = null;
}
else {
bt.btCollisionWorld_destroy(this._btCollisionWorld);
this._btCollisionWorld = null;
}
bt.btDbvtBroadphase_destroy(this._btBroadphase);
this._btBroadphase = null;
bt.btCollisionDispatcher_destroy(this._btDispatcher);
this._btDispatcher = null;
bt.btDefaultCollisionConfiguration_destroy(this._btCollisionConfiguration);
this._btCollisionConfiguration = null;
}
_addPhysicsCollider(component, group, mask) {
Laya.ILaya3D.Physics3D._bullet.btCollisionWorld_addCollisionObject(this._btCollisionWorld, component._btColliderObject, group, mask);
}
_removePhysicsCollider(component) {
Laya.ILaya3D.Physics3D._bullet.btCollisionWorld_removeCollisionObject(this._btCollisionWorld, component._btColliderObject);
}
_addRigidBody(rigidBody, group, mask) {
if (!this._btDiscreteDynamicsWorld)
throw "Simulation:Cannot perform this action when the physics engine is set to CollisionsOnly";
Laya.ILaya3D.Physics3D._bullet.btDiscreteDynamicsWorld_addRigidBody(this._btCollisionWorld, rigidBody._btColliderObject, group, mask);
}
_removeRigidBody(rigidBody) {
if (!this._btDiscreteDynamicsWorld)
throw "Simulation:Cannot perform this action when the physics engine is set to CollisionsOnly";
Laya.ILaya3D.Physics3D._bullet.btDiscreteDynamicsWorld_removeRigidBody(this._btCollisionWorld, rigidBody._btColliderObject);
}
_addCharacter(character, group, mask) {
if (!this._btDiscreteDynamicsWorld)
throw "Simulation:Cannot perform this action when the physics engine is set to CollisionsOnly";
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btCollisionWorld_addCollisionObject(this._btCollisionWorld, character._btColliderObject, group, mask);
bt.btDynamicsWorld_addAction(this._btCollisionWorld, character._btKinematicCharacter);
}
_removeCharacter(character) {
if (!this._btDiscreteDynamicsWorld)
throw "Simulation:Cannot perform this action when the physics engine is set to CollisionsOnly";
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btCollisionWorld_removeCollisionObject(this._btCollisionWorld, character._btColliderObject);
bt.btDynamicsWorld_removeAction(this._btCollisionWorld, character._btKinematicCharacter);
}
raycastFromTo(from, to, out = null, collisonGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER, collisionMask = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var rayResultCall = this._btClosestRayResultCallback;
var rayFrom = PhysicsSimulation._btTempVector30;
var rayTo = PhysicsSimulation._btTempVector31;
bt.btVector3_setValue(rayFrom, -from.x, from.y, from.z);
bt.btVector3_setValue(rayTo, -to.x, to.y, to.z);
bt.ClosestRayResultCallback_set_m_rayFromWorld(rayResultCall, rayFrom);
bt.ClosestRayResultCallback_set_m_rayToWorld(rayResultCall, rayTo);
bt.RayResultCallback_set_m_collisionFilterGroup(rayResultCall, collisonGroup);
bt.RayResultCallback_set_m_collisionFilterMask(rayResultCall, collisionMask);
bt.RayResultCallback_set_m_collisionObject(rayResultCall, null);
bt.RayResultCallback_set_m_closestHitFraction(rayResultCall, 1);
bt.btCollisionWorld_rayTest(this._btCollisionWorld, rayFrom, rayTo, rayResultCall);
if (bt.RayResultCallback_hasHit(rayResultCall)) {
if (out) {
out.succeeded = true;
out.collider = PhysicsComponent._physicObjectsMap[bt.btCollisionObject_getUserIndex(bt.RayResultCallback_get_m_collisionObject(rayResultCall))];
out.hitFraction = bt.RayResultCallback_get_m_closestHitFraction(rayResultCall);
var btPoint = bt.ClosestRayResultCallback_get_m_hitPointWorld(rayResultCall);
var point = out.point;
point.x = -bt.btVector3_x(btPoint);
point.y = bt.btVector3_y(btPoint);
point.z = bt.btVector3_z(btPoint);
var btNormal = bt.ClosestRayResultCallback_get_m_hitNormalWorld(rayResultCall);
var normal = out.normal;
normal.x = -bt.btVector3_x(btNormal);
normal.y = bt.btVector3_y(btNormal);
normal.z = bt.btVector3_z(btNormal);
}
return true;
}
else {
if (out)
out.succeeded = false;
return false;
}
}
raycastAllFromTo(from, to, out, collisonGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER, collisionMask = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var rayResultCall = this._btAllHitsRayResultCallback;
var rayFrom = PhysicsSimulation._btTempVector30;
var rayTo = PhysicsSimulation._btTempVector31;
out.length = 0;
bt.btVector3_setValue(rayFrom, -from.x, from.y, from.z);
bt.btVector3_setValue(rayTo, -to.x, to.y, to.z);
bt.AllHitsRayResultCallback_set_m_rayFromWorld(rayResultCall, rayFrom);
bt.AllHitsRayResultCallback_set_m_rayToWorld(rayResultCall, rayTo);
bt.RayResultCallback_set_m_collisionFilterGroup(rayResultCall, collisonGroup);
bt.RayResultCallback_set_m_collisionFilterMask(rayResultCall, collisionMask);
var collisionObjects = bt.AllHitsRayResultCallback_get_m_collisionObjects(rayResultCall);
var btPoints = bt.AllHitsRayResultCallback_get_m_hitPointWorld(rayResultCall);
var btNormals = bt.AllHitsRayResultCallback_get_m_hitNormalWorld(rayResultCall);
var btFractions = bt.AllHitsRayResultCallback_get_m_hitFractions(rayResultCall);
bt.tBtCollisionObjectArray_clear(collisionObjects);
bt.tVector3Array_clear(btPoints);
bt.tVector3Array_clear(btNormals);
bt.tScalarArray_clear(btFractions);
bt.btCollisionWorld_rayTest(this._btCollisionWorld, rayFrom, rayTo, rayResultCall);
var count = bt.tBtCollisionObjectArray_size(collisionObjects);
if (count > 0) {
this._collisionsUtils.recoverAllHitResultsPool();
for (var i = 0; i < count; i++) {
var hitResult = this._collisionsUtils.getHitResult();
out.push(hitResult);
hitResult.succeeded = true;
hitResult.collider = PhysicsComponent._physicObjectsMap[bt.btCollisionObject_getUserIndex(bt.tBtCollisionObjectArray_at(collisionObjects, i))];
hitResult.hitFraction = bt.tScalarArray_at(btFractions, i);
var btPoint = bt.tVector3Array_at(btPoints, i);
var pointE = hitResult.point;
pointE.x = -bt.btVector3_x(btPoint);
pointE.y = bt.btVector3_y(btPoint);
pointE.z = bt.btVector3_z(btPoint);
var btNormal = bt.tVector3Array_at(btNormals, i);
var normal = hitResult.normal;
normal.x = -bt.btVector3_x(btNormal);
normal.y = bt.btVector3_y(btNormal);
normal.z = bt.btVector3_z(btNormal);
}
return true;
}
else {
return false;
}
}
rayCast(ray, outHitResult = null, distance = 2147483647, collisonGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER, collisionMask = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER) {
var from = ray.origin;
var to = PhysicsSimulation._tempVector30;
Laya.Vector3.normalize(ray.direction, to);
Laya.Vector3.scale(to, distance, to);
Laya.Vector3.add(from, to, to);
return this.raycastFromTo(from, to, outHitResult, collisonGroup, collisionMask);
}
rayCastAll(ray, out, distance = 2147483647, collisonGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER, collisionMask = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER) {
var from = ray.origin;
var to = PhysicsSimulation._tempVector30;
Laya.Vector3.normalize(ray.direction, to);
Laya.Vector3.scale(to, distance, to);
Laya.Vector3.add(from, to, to);
return this.raycastAllFromTo(from, to, out, collisonGroup, collisionMask);
}
shapeCast(shape, fromPosition, toPosition, out = null, fromRotation = null, toRotation = null, collisonGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER, collisionMask = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER, allowedCcdPenetration = 0.0) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var convexResultCall = this._btClosestConvexResultCallback;
var convexPosFrom = PhysicsSimulation._btTempVector30;
var convexPosTo = PhysicsSimulation._btTempVector31;
var convexRotFrom = PhysicsSimulation._btTempQuaternion0;
var convexRotTo = PhysicsSimulation._btTempQuaternion1;
var convexTransform = PhysicsSimulation._btTempTransform0;
var convexTransTo = PhysicsSimulation._btTempTransform1;
var sweepShape = shape._btShape;
bt.btVector3_setValue(convexPosFrom, -fromPosition.x, fromPosition.y, fromPosition.z);
bt.btVector3_setValue(convexPosTo, -toPosition.x, toPosition.y, toPosition.z);
bt.ConvexResultCallback_set_m_collisionFilterGroup(convexResultCall, collisonGroup);
bt.ConvexResultCallback_set_m_collisionFilterMask(convexResultCall, collisionMask);
bt.btTransform_setOrigin(convexTransform, convexPosFrom);
bt.btTransform_setOrigin(convexTransTo, convexPosTo);
if (fromRotation) {
bt.btQuaternion_setValue(convexRotFrom, -fromRotation.x, fromRotation.y, fromRotation.z, -fromRotation.w);
bt.btTransform_setRotation(convexTransform, convexRotFrom);
}
else {
bt.btTransform_setRotation(convexTransform, this._btDefaultQuaternion);
}
if (toRotation) {
bt.btQuaternion_setValue(convexRotTo, -toRotation.x, toRotation.y, toRotation.z, -toRotation.w);
bt.btTransform_setRotation(convexTransTo, convexRotTo);
}
else {
bt.btTransform_setRotation(convexTransTo, this._btDefaultQuaternion);
}
bt.ClosestConvexResultCallback_set_m_hitCollisionObject(convexResultCall, null);
bt.ConvexResultCallback_set_m_closestHitFraction(convexResultCall, 1);
bt.btCollisionWorld_convexSweepTest(this._btCollisionWorld, sweepShape, convexTransform, convexTransTo, convexResultCall, allowedCcdPenetration);
if (bt.ConvexResultCallback_hasHit(convexResultCall)) {
if (out) {
out.succeeded = true;
out.collider = PhysicsComponent._physicObjectsMap[bt.btCollisionObject_getUserIndex(bt.ClosestConvexResultCallback_get_m_hitCollisionObject(convexResultCall))];
out.hitFraction = bt.ConvexResultCallback_get_m_closestHitFraction(convexResultCall);
var btPoint = bt.ClosestConvexResultCallback_get_m_hitPointWorld(convexResultCall);
var btNormal = bt.ClosestConvexResultCallback_get_m_hitNormalWorld(convexResultCall);
var point = out.point;
var normal = out.normal;
point.x = -bt.btVector3_x(btPoint);
point.y = bt.btVector3_y(btPoint);
point.z = bt.btVector3_z(btPoint);
normal.x = -bt.btVector3_x(btNormal);
normal.y = bt.btVector3_y(btNormal);
normal.z = bt.btVector3_z(btNormal);
}
return true;
}
else {
if (out)
out.succeeded = false;
return false;
}
}
shapeCastAll(shape, fromPosition, toPosition, out, fromRotation = null, toRotation = null, collisonGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER, collisionMask = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER, allowedCcdPenetration = 0.0) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var convexResultCall = this._btAllConvexResultCallback;
var convexPosFrom = PhysicsSimulation._btTempVector30;
var convexPosTo = PhysicsSimulation._btTempVector31;
var convexRotFrom = PhysicsSimulation._btTempQuaternion0;
var convexRotTo = PhysicsSimulation._btTempQuaternion1;
var convexTransform = PhysicsSimulation._btTempTransform0;
var convexTransTo = PhysicsSimulation._btTempTransform1;
var sweepShape = shape._btShape;
out.length = 0;
bt.btVector3_setValue(convexPosFrom, -fromPosition.x, fromPosition.y, fromPosition.z);
bt.btVector3_setValue(convexPosTo, -toPosition.x, toPosition.y, toPosition.z);
bt.ConvexResultCallback_set_m_collisionFilterGroup(convexResultCall, collisonGroup);
bt.ConvexResultCallback_set_m_collisionFilterMask(convexResultCall, collisionMask);
bt.btTransform_setOrigin(convexTransform, convexPosFrom);
bt.btTransform_setOrigin(convexTransTo, convexPosTo);
if (fromRotation) {
bt.btQuaternion_setValue(convexRotFrom, -fromRotation.x, fromRotation.y, fromRotation.z, -fromRotation.w);
bt.btTransform_setRotation(convexTransform, convexRotFrom);
}
else {
bt.btTransform_setRotation(convexTransform, this._btDefaultQuaternion);
}
if (toRotation) {
bt.btQuaternion_setValue(convexRotTo, -toRotation.x, toRotation.y, toRotation.z, -toRotation.w);
bt.btTransform_setRotation(convexTransTo, convexRotTo);
}
else {
bt.btTransform_setRotation(convexTransTo, this._btDefaultQuaternion);
}
var collisionObjects = bt.AllConvexResultCallback_get_m_collisionObjects(convexResultCall);
var btPoints = bt.AllConvexResultCallback_get_m_hitPointWorld(convexResultCall);
var btNormals = bt.AllConvexResultCallback_get_m_hitNormalWorld(convexResultCall);
var btFractions = bt.AllConvexResultCallback_get_m_hitFractions(convexResultCall);
bt.tVector3Array_clear(btPoints);
bt.tVector3Array_clear(btNormals);
bt.tScalarArray_clear(btFractions);
bt.tBtCollisionObjectArray_clear(collisionObjects);
bt.btCollisionWorld_convexSweepTest(this._btCollisionWorld, sweepShape, convexTransform, convexTransTo, convexResultCall, allowedCcdPenetration);
var count = bt.tBtCollisionObjectArray_size(collisionObjects);
if (count > 0) {
this._collisionsUtils.recoverAllHitResultsPool();
for (var i = 0; i < count; i++) {
var hitResult = this._collisionsUtils.getHitResult();
out.push(hitResult);
hitResult.succeeded = true;
hitResult.collider = PhysicsComponent._physicObjectsMap[bt.btCollisionObject_getUserIndex(bt.tBtCollisionObjectArray_at(collisionObjects, i))];
hitResult.hitFraction = bt.tScalarArray_at(btFractions, i);
var btPoint = bt.tVector3Array_at(btPoints, i);
var point = hitResult.point;
point.x = -bt.btVector3_x(btPoint);
point.y = bt.btVector3_y(btPoint);
point.z = bt.btVector3_z(btPoint);
var btNormal = bt.tVector3Array_at(btNormals, i);
var normal = hitResult.normal;
normal.x = -bt.btVector3_x(btNormal);
normal.y = bt.btVector3_y(btNormal);
normal.z = bt.btVector3_z(btNormal);
}
return true;
}
else {
return false;
}
}
addConstraint(constraint, disableCollisionsBetweenLinkedBodies = false) {
if (!this._btDiscreteDynamicsWorld)
throw "Cannot perform this action when the physics engine is set to CollisionsOnly";
Laya.ILaya3D.Physics3D._bullet.btCollisionWorld_addConstraint(this._btDiscreteDynamicsWorld, constraint._btConstraint, disableCollisionsBetweenLinkedBodies);
this._currentConstraint[constraint.id] = constraint;
}
removeConstraint(constraint) {
if (!this._btDiscreteDynamicsWorld)
throw "Cannot perform this action when the physics engine is set to CollisionsOnly";
Laya.ILaya3D.Physics3D._bullet.btCollisionWorld_removeConstraint(this._btDiscreteDynamicsWorld, constraint._btConstraint);
delete this._currentConstraint[constraint.id];
}
setHitsRayResultCallbackFlag(flag = 1) {
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.RayResultCallback_set_m_flags(this._btAllHitsRayResultCallback, flag);
bt.RayResultCallback_set_m_flags(this._btClosestRayResultCallback, flag);
}
_updatePhysicsTransformFromRender() {
var elements = this._physicsUpdateList.elements;
for (var i = 0, n = this._physicsUpdateList.length; i < n; i++) {
var physicCollider = elements[i];
physicCollider._derivePhysicsTransformation(false);
physicCollider._inPhysicUpdateListIndex = -1;
}
this._physicsUpdateList.length = 0;
}
_updateCharacters() {
for (var i = 0, n = this._characters.length; i < n; i++) {
var character = this._characters[i];
character._updateTransformComponent(Laya.ILaya3D.Physics3D._bullet.btCollisionObject_getWorldTransform(character._btColliderObject));
}
}
_updateCollisions() {
this._collisionsUtils.recoverAllContactPointsPool();
var previous = this._currentFrameCollisions;
this._currentFrameCollisions = this._previousFrameCollisions;
this._currentFrameCollisions.length = 0;
this._previousFrameCollisions = previous;
var loopCount = Laya.Stat.loopCount;
var bt = Laya.ILaya3D.Physics3D._bullet;
var numManifolds = bt.btDispatcher_getNumManifolds(this._btDispatcher);
for (var i = 0; i < numManifolds; i++) {
var contactManifold = bt.btDispatcher_getManifoldByIndexInternal(this._btDispatcher, i);
var componentA = PhysicsComponent._physicObjectsMap[bt.btCollisionObject_getUserIndex(bt.btPersistentManifold_getBody0(contactManifold))];
var componentB = PhysicsComponent._physicObjectsMap[bt.btCollisionObject_getUserIndex(bt.btPersistentManifold_getBody1(contactManifold))];
var collision = null;
var isFirstCollision;
var contacts = null;
var isTrigger = componentA.isTrigger || componentB.isTrigger;
if (isTrigger && (componentA.owner._needProcessTriggers || componentB.owner._needProcessTriggers)) {
var numContacts = bt.btPersistentManifold_getNumContacts(contactManifold);
for (var j = 0; j < numContacts; j++) {
var pt = bt.btPersistentManifold_getContactPoint(contactManifold, j);
var distance = bt.btManifoldPoint_getDistance(pt);
if (distance <= 0) {
collision = this._collisionsUtils.getCollision(componentA, componentB);
contacts = collision.contacts;
isFirstCollision = collision._updateFrame !== loopCount;
if (isFirstCollision) {
collision._isTrigger = true;
contacts.length = 0;
}
break;
}
}
}
else if (componentA.owner._needProcessCollisions || componentB.owner._needProcessCollisions) {
if (componentA._enableProcessCollisions || componentB._enableProcessCollisions) {
numContacts = bt.btPersistentManifold_getNumContacts(contactManifold);
for (j = 0; j < numContacts; j++) {
pt = bt.btPersistentManifold_getContactPoint(contactManifold, j);
distance = bt.btManifoldPoint_getDistance(pt);
if (distance <= 0) {
var contactPoint = this._collisionsUtils.getContactPoints();
contactPoint.colliderA = componentA;
contactPoint.colliderB = componentB;
contactPoint.distance = distance;
var btNormal = bt.btManifoldPoint_get_m_normalWorldOnB(pt);
var normal = contactPoint.normal;
normal.x = -bt.btVector3_x(btNormal);
normal.y = bt.btVector3_y(btNormal);
normal.z = bt.btVector3_z(btNormal);
var btPostionA = bt.btManifoldPoint_get_m_positionWorldOnA(pt);
var positionOnA = contactPoint.positionOnA;
positionOnA.x = -bt.btVector3_x(btPostionA);
positionOnA.y = bt.btVector3_y(btPostionA);
positionOnA.z = bt.btVector3_z(btPostionA);
var btPostionB = bt.btManifoldPoint_get_m_positionWorldOnB(pt);
var positionOnB = contactPoint.positionOnB;
positionOnB.x = -bt.btVector3_x(btPostionB);
positionOnB.y = bt.btVector3_y(btPostionB);
positionOnB.z = bt.btVector3_z(btPostionB);
if (!collision) {
collision = this._collisionsUtils.getCollision(componentA, componentB);
contacts = collision.contacts;
isFirstCollision = collision._updateFrame !== loopCount;
if (isFirstCollision) {
collision._isTrigger = false;
contacts.length = 0;
}
}
contacts.push(contactPoint);
}
}
}
}
if (collision && isFirstCollision) {
this._currentFrameCollisions.push(collision);
collision._setUpdateFrame(loopCount);
}
}
}
_eventScripts() {
var loopCount = Laya.Stat.loopCount;
for (var i = 0, n = this._currentFrameCollisions.length; i < n; i++) {
var curFrameCol = this._currentFrameCollisions[i];
var colliderA = curFrameCol._colliderA;
var colliderB = curFrameCol._colliderB;
if (colliderA.destroyed || colliderB.destroyed)
continue;
if (loopCount - curFrameCol._lastUpdateFrame === 1) {
var ownerA = colliderA.owner;
var scriptsA = ownerA._scripts;
if (scriptsA) {
if (curFrameCol._isTrigger) {
if (ownerA._needProcessTriggers) {
for (var j = 0, m = scriptsA.length; j < m; j++)
scriptsA[j].onTriggerStay(colliderB);
}
}
else {
if (ownerA._needProcessCollisions) {
for (j = 0, m = scriptsA.length; j < m; j++) {
curFrameCol.other = colliderB;
scriptsA[j].onCollisionStay(curFrameCol);
}
}
}
}
var ownerB = colliderB.owner;
var scriptsB = ownerB._scripts;
if (scriptsB) {
if (curFrameCol._isTrigger) {
if (ownerB._needProcessTriggers) {
for (j = 0, m = scriptsB.length; j < m; j++)
scriptsB[j].onTriggerStay(colliderA);
}
}
else {
if (ownerB._needProcessCollisions) {
for (j = 0, m = scriptsB.length; j < m; j++) {
curFrameCol.other = colliderA;
scriptsB[j].onCollisionStay(curFrameCol);
}
}
}
}
}
else {
ownerA = colliderA.owner;
scriptsA = ownerA._scripts;
if (scriptsA) {
if (curFrameCol._isTrigger) {
if (ownerA._needProcessTriggers) {
for (j = 0, m = scriptsA.length; j < m; j++)
scriptsA[j].onTriggerEnter(colliderB);
}
}
else {
if (ownerA._needProcessCollisions) {
for (j = 0, m = scriptsA.length; j < m; j++) {
curFrameCol.other = colliderB;
scriptsA[j].onCollisionEnter(curFrameCol);
}
}
}
}
ownerB = colliderB.owner;
scriptsB = ownerB._scripts;
if (scriptsB) {
if (curFrameCol._isTrigger) {
if (ownerB._needProcessTriggers) {
for (j = 0, m = scriptsB.length; j < m; j++)
scriptsB[j].onTriggerEnter(colliderA);
}
}
else {
if (ownerB._needProcessCollisions) {
for (j = 0, m = scriptsB.length; j < m; j++) {
curFrameCol.other = colliderA;
scriptsB[j].onCollisionEnter(curFrameCol);
}
}
}
}
}
}
for (i = 0, n = this._previousFrameCollisions.length; i < n; i++) {
var preFrameCol = this._previousFrameCollisions[i];
var preColliderA = preFrameCol._colliderA;
var preColliderB = preFrameCol._colliderB;
if (preColliderA.destroyed || preColliderB.destroyed)
continue;
if (loopCount - preFrameCol._updateFrame === 1) {
this._collisionsUtils.recoverCollision(preFrameCol);
ownerA = preColliderA.owner;
scriptsA = ownerA._scripts;
if (scriptsA) {
if (preFrameCol._isTrigger) {
if (ownerA._needProcessTriggers) {
for (j = 0, m = scriptsA.length; j < m; j++)
scriptsA[j].onTriggerExit(preColliderB);
}
}
else {
if (ownerA._needProcessCollisions) {
for (j = 0, m = scriptsA.length; j < m; j++) {
preFrameCol.other = preColliderB;
scriptsA[j].onCollisionExit(preFrameCol);
}
}
}
}
ownerB = preColliderB.owner;
scriptsB = ownerB._scripts;
if (scriptsB) {
if (preFrameCol._isTrigger) {
if (ownerB._needProcessTriggers) {
for (j = 0, m = scriptsB.length; j < m; j++)
scriptsB[j].onTriggerExit(preColliderA);
}
}
else {
if (ownerB._needProcessCollisions) {
for (j = 0, m = scriptsB.length; j < m; j++) {
preFrameCol.other = preColliderA;
scriptsB[j].onCollisionExit(preFrameCol);
}
}
}
}
}
}
for (var id in this._currentConstraint) {
var constraintObj = this._currentConstraint[id];
var scripts = constraintObj.owner._scripts;
if (constraintObj.enabled && constraintObj._isBreakConstrained() && (!!scripts)) {
if (scripts.length != 0) {
for (i = 0, n = scripts.length; i < n; i++) {
scripts[i].onJointBreak();
}
}
}
}
}
clearForces() {
if (!this._btDiscreteDynamicsWorld)
throw "Cannot perform this action when the physics engine is set to CollisionsOnly";
Laya.ILaya3D.Physics3D._bullet.btDiscreteDynamicsWorld_clearForces(this._btDiscreteDynamicsWorld);
}
}
PhysicsSimulation.PHYSICSENGINEFLAGS_NONE = 0x0;
PhysicsSimulation.PHYSICSENGINEFLAGS_COLLISIONSONLY = 0x1;
PhysicsSimulation.PHYSICSENGINEFLAGS_SOFTBODYSUPPORT = 0x2;
PhysicsSimulation.PHYSICSENGINEFLAGS_MULTITHREADED = 0x4;
PhysicsSimulation.PHYSICSENGINEFLAGS_USEHARDWAREWHENPOSSIBLE = 0x8;
PhysicsSimulation.SOLVERMODE_RANDMIZE_ORDER = 1;
PhysicsSimulation.SOLVERMODE_FRICTION_SEPARATE = 2;
PhysicsSimulation.SOLVERMODE_USE_WARMSTARTING = 4;
PhysicsSimulation.SOLVERMODE_USE_2_FRICTION_DIRECTIONS = 16;
PhysicsSimulation.SOLVERMODE_ENABLE_FRICTION_DIRECTION_CACHING = 32;
PhysicsSimulation.SOLVERMODE_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION = 64;
PhysicsSimulation.SOLVERMODE_CACHE_FRIENDLY = 128;
PhysicsSimulation.SOLVERMODE_SIMD = 256;
PhysicsSimulation.SOLVERMODE_INTERLEAVE_CONTACT_AND_FRICTION_CONSTRAINTS = 512;
PhysicsSimulation.SOLVERMODE_ALLOW_ZERO_LENGTH_FRICTION_DIRECTIONS = 1024;
PhysicsSimulation.HITSRAYRESULTCALLBACK_FLAG_NONE = 0;
PhysicsSimulation.HITSRAYRESULTCALLBACK_FLAG_FILTERBACKFACESS = 1;
PhysicsSimulation.HITSRAYRESULTCALLBACK_FLAG_KEEPUNFILIPPEDNORMAL = 2;
PhysicsSimulation.HITSRAYRESULTCALLBACK_FLAG_USESUBSIMPLEXCONVEXCASTRAYTEST = 4;
PhysicsSimulation.HITSRAYRESULTCALLBACK_FLAG_USEGJKCONVEXCASTRAYTEST = 8;
PhysicsSimulation.HITSRAYRESULTCALLBACK_FLAG_TERMINATOR = 0xffffffff;
PhysicsSimulation._tempVector30 = new Laya.Vector3();
PhysicsSimulation.disableSimulation = false;
class Rigidbody3D extends PhysicsTriggerComponent {
constructor(collisionGroup = Laya.Physics3DUtils.COLLISIONFILTERGROUP_DEFAULTFILTER, canCollideWith = Laya.Physics3DUtils.COLLISIONFILTERGROUP_ALLFILTER) {
super(collisionGroup, canCollideWith);
this._isKinematic = false;
this._mass = 1.0;
this._gravity = new Laya.Vector3(0, -10, 0);
this._angularDamping = 0.0;
this._linearDamping = 0.0;
this._overrideGravity = false;
this._totalTorque = new Laya.Vector3(0, 0, 0);
this._totalForce = new Laya.Vector3(0, 0, 0);
this._linearVelocity = new Laya.Vector3();
this._angularVelocity = new Laya.Vector3();
this._linearFactor = new Laya.Vector3(1, 1, 1);
this._angularFactor = new Laya.Vector3(1, 1, 1);
this._detectCollisions = true;
this._controlBySimulation = true;
}
static __init__() {
var bt = Laya.ILaya3D.Physics3D._bullet;
Rigidbody3D._btTempVector30 = bt.btVector3_create(0, 0, 0);
Rigidbody3D._btTempVector31 = bt.btVector3_create(0, 0, 0);
Rigidbody3D._btVector3Zero = bt.btVector3_create(0, 0, 0);
Rigidbody3D._btInertia = bt.btVector3_create(0, 0, 0);
Rigidbody3D._btImpulse = bt.btVector3_create(0, 0, 0);
Rigidbody3D._btImpulseOffset = bt.btVector3_create(0, 0, 0);
Rigidbody3D._btGravity = bt.btVector3_create(0, 0, 0);
Rigidbody3D._btTransform0 = bt.btTransform_create();
}
get mass() {
return this._mass;
}
set mass(value) {
value = Math.max(value, 1e-07);
this._mass = value;
(this._isKinematic) || (this._updateMass(value));
}
get isKinematic() {
return this._isKinematic;
}
set isKinematic(value) {
this._isKinematic = value;
this._controlBySimulation = !value;
var bt = Laya.ILaya3D.Physics3D._bullet;
var canInSimulation = !!(this._simulation && this._enabled && this._colliderShape);
canInSimulation && this._removeFromSimulation();
var natColObj = this._btColliderObject;
var flags = bt.btCollisionObject_getCollisionFlags(natColObj);
if (value) {
flags = flags | PhysicsComponent.COLLISIONFLAGS_KINEMATIC_OBJECT;
bt.btCollisionObject_setCollisionFlags(natColObj, flags);
bt.btCollisionObject_forceActivationState(this._btColliderObject, PhysicsComponent.ACTIVATIONSTATE_DISABLE_DEACTIVATION);
this._enableProcessCollisions = false;
this._updateMass(0);
}
else {
if ((flags & PhysicsComponent.COLLISIONFLAGS_KINEMATIC_OBJECT) > 0)
flags = flags ^ PhysicsComponent.COLLISIONFLAGS_KINEMATIC_OBJECT;
bt.btCollisionObject_setCollisionFlags(natColObj, flags);
bt.btCollisionObject_setActivationState(this._btColliderObject, PhysicsComponent.ACTIVATIONSTATE_ACTIVE_TAG);
this._enableProcessCollisions = true;
this._updateMass(this._mass);
}
var btZero = Rigidbody3D._btVector3Zero;
bt.btCollisionObject_setInterpolationLinearVelocity(natColObj, btZero);
bt.btRigidBody_setLinearVelocity(natColObj, btZero);
bt.btCollisionObject_setInterpolationAngularVelocity(natColObj, btZero);
bt.btRigidBody_setAngularVelocity(natColObj, btZero);
canInSimulation && this._addToSimulation();
}
get linearDamping() {
return this._linearDamping;
}
set linearDamping(value) {
this._linearDamping = value;
if (this._btColliderObject)
Laya.ILaya3D.Physics3D._bullet.btRigidBody_setDamping(this._btColliderObject, value, this._angularDamping);
}
get angularDamping() {
return this._angularDamping;
}
set angularDamping(value) {
this._angularDamping = value;
if (this._btColliderObject)
Laya.ILaya3D.Physics3D._bullet.btRigidBody_setDamping(this._btColliderObject, this._linearDamping, value);
}
get overrideGravity() {
return this._overrideGravity;
}
set overrideGravity(value) {
this._overrideGravity = value;
var bt = Laya.ILaya3D.Physics3D._bullet;
if (this._btColliderObject) {
var flag = bt.btRigidBody_getFlags(this._btColliderObject);
if (value) {
if ((flag & Rigidbody3D._BT_DISABLE_WORLD_GRAVITY) === 0)
bt.btRigidBody_setFlags(this._btColliderObject, flag | Rigidbody3D._BT_DISABLE_WORLD_GRAVITY);
}
else {
if ((flag & Rigidbody3D._BT_DISABLE_WORLD_GRAVITY) > 0)
bt.btRigidBody_setFlags(this._btColliderObject, flag ^ Rigidbody3D._BT_DISABLE_WORLD_GRAVITY);
}
}
}
get gravity() {
var bt = Laya.ILaya3D.Physics3D._bullet;
Rigidbody3D._btGravity = bt.btRigidBody_getGravity(this._btColliderObject);
Laya.Utils3D._convertToLayaVec3(Rigidbody3D._btGravity, this._gravity, true);
return this._gravity;
}
set gravity(value) {
this._gravity = value;
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btVector3_setValue(Rigidbody3D._btGravity, -value.x, value.y, value.z);
bt.btRigidBody_setGravity(this._btColliderObject, Rigidbody3D._btGravity);
}
get totalForce() {
if (this._btColliderObject) {
var btTotalForce = Laya.ILaya3D.Physics3D._bullet.btRigidBody_getTotalForce(this._btColliderObject);
Laya.Utils3D._convertToLayaVec3(btTotalForce, this._totalForce, true);
return this._totalForce;
}
return null;
}
get linearFactor() {
return this._linearFactor;
}
set linearFactor(value) {
this._linearFactor = value;
var btValue = Rigidbody3D._btTempVector30;
Laya.Utils3D._convertToBulletVec3(value, btValue, false);
Laya.ILaya3D.Physics3D._bullet.btRigidBody_setLinearFactor(this._btColliderObject, btValue);
}
get linearVelocity() {
if (this._btColliderObject)
Laya.Utils3D._convertToLayaVec3(Laya.ILaya3D.Physics3D._bullet.btRigidBody_getLinearVelocity(this._btColliderObject), this._linearVelocity, true);
return this._linearVelocity;
}
set linearVelocity(value) {
this._linearVelocity = value;
if (this._btColliderObject) {
var btValue = Rigidbody3D._btTempVector30;
Laya.Utils3D._convertToBulletVec3(value, btValue, true);
(this.isSleeping) && (this.wakeUp());
Laya.ILaya3D.Physics3D._bullet.btRigidBody_setLinearVelocity(this._btColliderObject, btValue);
}
}
get angularFactor() {
return this._angularFactor;
}
set angularFactor(value) {
this._angularFactor = value;
var btValue = Rigidbody3D._btTempVector30;
Laya.Utils3D._convertToBulletVec3(value, btValue, false);
Laya.ILaya3D.Physics3D._bullet.btRigidBody_setAngularFactor(this._btColliderObject, btValue);
}
get angularVelocity() {
if (this._btColliderObject)
Laya.Utils3D._convertToLayaVec3(Laya.ILaya3D.Physics3D._bullet.btRigidBody_getAngularVelocity(this._btColliderObject), this._angularVelocity, true);
return this._angularVelocity;
}
set angularVelocity(value) {
this._angularVelocity = value;
if (this._btColliderObject) {
var btValue = Rigidbody3D._btTempVector30;
Laya.Utils3D._convertToBulletVec3(value, btValue, true);
(this.isSleeping) && (this.wakeUp());
Laya.ILaya3D.Physics3D._bullet.btRigidBody_setAngularVelocity(this._btColliderObject, btValue);
}
}
get totalTorque() {
if (this._btColliderObject) {
var btTotalTorque = Laya.ILaya3D.Physics3D._bullet.btRigidBody_getTotalTorque(this._btColliderObject);
Laya.Utils3D._convertToLayaVec3(btTotalTorque, this._totalTorque, true);
return this._totalTorque;
}
return null;
}
get detectCollisions() {
return this._detectCollisions;
}
set detectCollisions(value) {
if (this._detectCollisions !== value) {
this._detectCollisions = value;
if (this._colliderShape && this._enabled && this._simulation) {
this._simulation._removeRigidBody(this);
this._simulation._addRigidBody(this, this._collisionGroup, value ? this._canCollideWith : 0);
}
}
}
get isSleeping() {
if (this._btColliderObject)
return Laya.ILaya3D.Physics3D._bullet.btCollisionObject_getActivationState(this._btColliderObject) === PhysicsComponent.ACTIVATIONSTATE_ISLAND_SLEEPING;
return false;
}
get sleepLinearVelocity() {
return Laya.ILaya3D.Physics3D._bullet.btRigidBody_getLinearSleepingThreshold(this._btColliderObject);
}
set sleepLinearVelocity(value) {
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btRigidBody_setSleepingThresholds(this._btColliderObject, value, bt.btRigidBody_getAngularSleepingThreshold(this._btColliderObject));
}
get sleepAngularVelocity() {
return Laya.ILaya3D.Physics3D._bullet.btRigidBody_getAngularSleepingThreshold(this._btColliderObject);
}
set sleepAngularVelocity(value) {
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btRigidBody_setSleepingThresholds(this._btColliderObject, bt.btRigidBody_getLinearSleepingThreshold(this._btColliderObject), value);
}
get btColliderObject() {
return this._btColliderObject;
}
set constaintRigidbodyA(value) {
this._constaintRigidbodyA = value;
}
get constaintRigidbodyA() {
return this._constaintRigidbodyA;
}
set constaintRigidbodyB(value) {
this._constaintRigidbodyB = value;
}
get constaintRigidbodyB() {
return this._constaintRigidbodyB;
}
_updateMass(mass) {
if (this._btColliderObject && this._colliderShape) {
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btCollisionShape_calculateLocalInertia(this._colliderShape._btShape, mass, Rigidbody3D._btInertia);
bt.btRigidBody_setMassProps(this._btColliderObject, mass, Rigidbody3D._btInertia);
bt.btRigidBody_updateInertiaTensor(this._btColliderObject);
}
}
_onScaleChange(scale) {
super._onScaleChange(scale);
this._updateMass(this._isKinematic ? 0 : this._mass);
}
_derivePhysicsTransformation(force) {
var bt = Laya.ILaya3D.Physics3D._bullet;
var btColliderObject = this._btColliderObject;
var oriTransform = bt.btCollisionObject_getWorldTransform(btColliderObject);
var transform = Rigidbody3D._btTransform0;
bt.btTransform_equal(transform, oriTransform);
this._innerDerivePhysicsTransformation(transform, force);
bt.btRigidBody_setCenterOfMassTransform(btColliderObject, transform);
}
_onAdded() {
var bt = Laya.ILaya3D.Physics3D._bullet;
var motionState = bt.layaMotionState_create();
bt.layaMotionState_set_rigidBodyID(motionState, this._id);
this._btLayaMotionState = motionState;
var constructInfo = bt.btRigidBodyConstructionInfo_create(0.0, motionState, null, Rigidbody3D._btVector3Zero);
var btRigid = bt.btRigidBody_create(constructInfo);
bt.btCollisionObject_setUserIndex(btRigid, this.id);
this._btColliderObject = btRigid;
super._onAdded();
this.mass = this._mass;
this.linearFactor = this._linearFactor;
this.angularFactor = this._angularFactor;
this.linearDamping = this._linearDamping;
this.angularDamping = this._angularDamping;
this.overrideGravity = this._overrideGravity;
this.gravity = this._gravity;
this.isKinematic = this._isKinematic;
bt.btRigidBodyConstructionInfo_destroy(constructInfo);
}
_onEnable() {
super._onEnable();
if (this._constaintRigidbodyA) {
if (this._constaintRigidbodyA.connectedBody._simulation) {
this._constaintRigidbodyA._createConstraint();
this._constaintRigidbodyA._onEnable();
}
}
if (this._constaintRigidbodyB) {
if (this._constaintRigidbodyB.ownBody._simulation) {
this._constaintRigidbodyB._createConstraint();
this._constaintRigidbodyB._onEnable();
}
}
}
_onShapeChange(colShape) {
super._onShapeChange(colShape);
if (this._isKinematic) {
this._updateMass(0);
}
else {
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btRigidBody_setCenterOfMassTransform(this._btColliderObject, bt.btCollisionObject_getWorldTransform(this._btColliderObject));
this._updateMass(this._mass);
}
}
_parse(data) {
(data.friction != null) && (this.friction = data.friction);
(data.rollingFriction != null) && (this.rollingFriction = data.rollingFriction);
(data.restitution != null) && (this.restitution = data.restitution);
(data.isTrigger != null) && (this.isTrigger = data.isTrigger);
(data.mass != null) && (this.mass = data.mass);
(data.linearDamping != null) && (this.linearDamping = data.linearDamping);
(data.angularDamping != null) && (this.angularDamping = data.angularDamping);
(data.overrideGravity != null) && (this.overrideGravity = data.overrideGravity);
if (data.linearFactor != null) {
var linFac = this.linearFactor;
linFac.fromArray(data.linearFactor);
this.linearFactor = linFac;
}
if (data.angularFactor != null) {
var angFac = this.angularFactor;
angFac.fromArray(data.angularFactor);
this.angularFactor = angFac;
}
if (data.gravity) {
this.gravity.fromArray(data.gravity);
this.gravity = this.gravity;
}
super._parse(data);
this._parseShape(data.shapes);
(data.isKinematic != null) && (this.isKinematic = data.isKinematic);
}
_onDestroy() {
Laya.ILaya3D.Physics3D._bullet.btMotionState_destroy(this._btLayaMotionState);
super._onDestroy();
this._btLayaMotionState = null;
this._gravity = null;
this._totalTorque = null;
this._linearVelocity = null;
this._angularVelocity = null;
this._linearFactor = null;
this._angularFactor = null;
if (this.constaintRigidbodyA)
this.constaintRigidbodyA._breakConstrained();
if (this.constaintRigidbodyB) {
this.constaintRigidbodyB.connectedBody = null;
this.constaintRigidbodyB._onDisable();
}
}
_addToSimulation() {
this._simulation._addRigidBody(this, this._collisionGroup, this._detectCollisions ? this._canCollideWith : 0);
}
_removeFromSimulation() {
this._simulation._removeRigidBody(this);
}
_cloneTo(dest) {
super._cloneTo(dest);
var destRigidbody3D = dest;
destRigidbody3D.isKinematic = this._isKinematic;
destRigidbody3D.mass = this._mass;
destRigidbody3D.gravity = this._gravity;
destRigidbody3D.angularDamping = this._angularDamping;
destRigidbody3D.linearDamping = this._linearDamping;
destRigidbody3D.overrideGravity = this._overrideGravity;
destRigidbody3D.linearVelocity = this._linearVelocity;
destRigidbody3D.angularVelocity = this._angularVelocity;
destRigidbody3D.linearFactor = this._linearFactor;
destRigidbody3D.angularFactor = this._angularFactor;
destRigidbody3D.detectCollisions = this._detectCollisions;
}
applyForce(force, localOffset = null) {
if (this._btColliderObject == null)
throw "Attempted to call a Physics function that is avaliable only when the Entity has been already added to the Scene.";
var bt = Laya.ILaya3D.Physics3D._bullet;
var btForce = Rigidbody3D._btTempVector30;
bt.btVector3_setValue(btForce, -force.x, force.y, force.z);
if (localOffset) {
var btOffset = Rigidbody3D._btTempVector31;
bt.btVector3_setValue(btOffset, -localOffset.x, localOffset.y, localOffset.z);
bt.btRigidBody_applyForce(this._btColliderObject, btForce, btOffset);
}
else {
bt.btRigidBody_applyCentralForce(this._btColliderObject, btForce);
}
}
applyTorque(torque) {
if (this._btColliderObject == null)
throw "Attempted to call a Physics function that is avaliable only when the Entity has been already added to the Scene.";
var bullet = Laya.ILaya3D.Physics3D._bullet;
var btTorque = Rigidbody3D._btTempVector30;
bullet.btVector3_setValue(btTorque, -torque.x, torque.y, torque.z);
bullet.btRigidBody_applyTorque(this._btColliderObject, btTorque);
}
applyImpulse(impulse, localOffset = null) {
if (this._btColliderObject == null)
throw "Attempted to call a Physics function that is avaliable only when the Entity has been already added to the Scene.";
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btVector3_setValue(Rigidbody3D._btImpulse, -impulse.x, impulse.y, impulse.z);
if (localOffset) {
bt.btVector3_setValue(Rigidbody3D._btImpulseOffset, -localOffset.x, localOffset.y, localOffset.z);
bt.btRigidBody_applyImpulse(this._btColliderObject, Rigidbody3D._btImpulse, Rigidbody3D._btImpulseOffset);
}
else {
bt.btRigidBody_applyCentralImpulse(this._btColliderObject, Rigidbody3D._btImpulse);
}
}
applyTorqueImpulse(torqueImpulse) {
if (this._btColliderObject == null)
throw "Attempted to call a Physics function that is avaliable only when the Entity has been already added to the Scene.";
var bt = Laya.ILaya3D.Physics3D._bullet;
var btTorqueImpulse = Rigidbody3D._btTempVector30;
bt.btVector3_setValue(btTorqueImpulse, -torqueImpulse.x, torqueImpulse.y, torqueImpulse.z);
bt.btRigidBody_applyTorqueImpulse(this._btColliderObject, btTorqueImpulse);
}
wakeUp() {
this._btColliderObject && (Laya.ILaya3D.Physics3D._bullet.btCollisionObject_activate(this._btColliderObject, false));
}
clearForces() {
var rigidBody = this._btColliderObject;
if (rigidBody == null)
throw "Attempted to call a Physics function that is avaliable only when the Entity has been already added to the Scene.";
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btRigidBody_clearForces(rigidBody);
var btZero = Rigidbody3D._btVector3Zero;
bt.btCollisionObject_setInterpolationLinearVelocity(rigidBody, btZero);
bt.btRigidBody_setLinearVelocity(rigidBody, btZero);
bt.btCollisionObject_setInterpolationAngularVelocity(rigidBody, btZero);
bt.btRigidBody_setAngularVelocity(rigidBody, btZero);
}
}
Rigidbody3D.TYPE_STATIC = 0;
Rigidbody3D.TYPE_DYNAMIC = 1;
Rigidbody3D.TYPE_KINEMATIC = 2;
Rigidbody3D._BT_DISABLE_WORLD_GRAVITY = 1;
Rigidbody3D._BT_ENABLE_GYROPSCOPIC_FORCE = 2;
class ConstraintComponent extends Laya.Component {
constructor(constraintType) {
super();
this._anchor = new Laya.Vector3();
this._connectAnchor = new Laya.Vector3();
this._feedbackEnabled = false;
this._getJointFeedBack = false;
this._currentForce = new Laya.Vector3();
this._currentTorque = new Laya.Vector3();
this._constraintType = constraintType;
var bt = Laya.Physics3D._bullet;
this._btframATrans = bt.btTransform_create();
this._btframBTrans = bt.btTransform_create();
bt.btTransform_setIdentity(this._btframATrans);
bt.btTransform_setIdentity(this._btframBTrans);
this._btframAPos = bt.btVector3_create(0, 0, 0);
this._btframBPos = bt.btVector3_create(0, 0, 0);
bt.btTransform_setOrigin(this._btframATrans, this._btframAPos);
bt.btTransform_setOrigin(this._btframBTrans, this._btframBPos);
this._breakForce = -1;
this._breakTorque = -1;
}
get enabled() {
return super.enabled;
}
set enabled(value) {
super.enabled = value;
}
get appliedImpulse() {
if (!this._feedbackEnabled) {
this._btConstraint.EnableFeedback(true);
this._feedbackEnabled = true;
}
return this._btConstraint.AppliedImpulse;
}
set connectedBody(value) {
this._connectedBody = value;
value && (value.constaintRigidbodyB = this);
}
get connectedBody() {
return this._connectedBody;
}
get ownBody() {
return this._ownBody;
}
set ownBody(value) {
this._ownBody = value;
value.constaintRigidbodyA = this;
}
get currentForce() {
if (!this._getJointFeedBack)
this._getFeedBackInfo();
return this._currentForce;
}
get currentTorque() {
if (!this._getJointFeedBack)
this._getFeedBackInfo();
return this._currentTorque;
}
get breakForce() {
return this._breakForce;
}
set breakForce(value) {
this._breakForce = value;
}
get breakTorque() {
return this._breakTorque;
}
set breakTorque(value) {
this._breakTorque = value;
}
set anchor(value) {
value.cloneTo(this._anchor);
this.setFrames();
}
get anchor() {
return this._anchor;
}
set connectAnchor(value) {
value.cloneTo(this._connectAnchor);
this.setFrames();
}
get connectAnchor() {
return this._connectAnchor;
}
setOverrideNumSolverIterations(overideNumIterations) {
var bt = Laya.Physics3D._bullet;
bt.btTypedConstraint_setOverrideNumSolverIterations(this._btConstraint, overideNumIterations);
}
setConstraintEnabled(enable) {
var bt = Laya.Physics3D._bullet;
bt.btTypedConstraint_setEnabled(this._btConstraint, enable);
}
_onEnable() {
super._onEnable();
this.enabled = true;
}
_onDisable() {
super._onDisable();
this.enabled = false;
}
setFrames() {
var bt = Laya.Physics3D._bullet;
bt.btVector3_setValue(this._btframAPos, -this._anchor.x, this.anchor.y, this.anchor.z);
bt.btVector3_setValue(this._btframBPos, -this._connectAnchor.x, this._connectAnchor.y, this._connectAnchor.z);
bt.btTransform_setOrigin(this._btframATrans, this._btframAPos);
bt.btTransform_setOrigin(this._btframBTrans, this._btframBPos);
}
_addToSimulation() {
}
_removeFromSimulation() {
}
_createConstraint() {
}
setConnectRigidBody(ownerRigid, connectRigidBody) {
var ownerCanInSimulation = (ownerRigid) && (!!(ownerRigid._simulation && ownerRigid._enabled && ownerRigid.colliderShape));
var connectCanInSimulation = (connectRigidBody) && (!!(connectRigidBody._simulation && connectRigidBody._enabled && connectRigidBody.colliderShape));
if (!(ownerCanInSimulation && connectCanInSimulation))
throw "ownerRigid or connectRigidBody is not in Simulation";
if (ownerRigid != this._ownBody || connectRigidBody != this._connectedBody) {
var canInSimulation = !!(this.enabled && this._simulation);
canInSimulation && this._removeFromSimulation();
this._ownBody = ownerRigid;
this._connectedBody = connectRigidBody;
this._ownBody.constaintRigidbodyA = this;
this._connectedBody.constaintRigidbodyB = this;
this._createConstraint();
}
}
getcurrentForce(out) {
if (!this._btJointFeedBackObj)
throw "this Constraint is not simulation";
var bt = Laya.Physics3D._bullet;
var applyForce = bt.btJointFeedback_getAppliedForceBodyA(this._btJointFeedBackObj);
out.setValue(bt.btVector3_x(applyForce), bt.btVector3_y(applyForce), bt.btVector3_z(applyForce));
return;
}
getcurrentTorque(out) {
if (!this._btJointFeedBackObj)
throw "this Constraint is not simulation";
var bt = Laya.Physics3D._bullet;
var applyTorque = bt.btJointFeedback_getAppliedTorqueBodyA(this._btJointFeedBackObj);
out.setValue(bt.btVector3_x(applyTorque), bt.btVector3_y(applyTorque), bt.btVector3_z(applyTorque));
return;
}
_onDestroy() {
var physics3D = Laya.Physics3D._bullet;
this._simulation && this._removeFromSimulation();
if (this._btConstraint && this._btJointFeedBackObj && this._simulation) {
physics3D.btTypedConstraint_destroy(this._btConstraint);
physics3D.btJointFeedback_destroy(this._btJointFeedBackObj);
this._btJointFeedBackObj = null;
this._btConstraint = null;
}
super._onDisable();
}
_isBreakConstrained() {
this._getJointFeedBack = false;
if (this.breakForce == -1 && this.breakTorque == -1)
return false;
this._getFeedBackInfo();
var isBreakForce = this._breakForce != -1 && (Laya.Vector3.scalarLength(this._currentForce) > this._breakForce);
var isBreakTorque = this._breakTorque != -1 && (Laya.Vector3.scalarLength(this._currentTorque) > this._breakTorque);
if (isBreakForce || isBreakTorque) {
this._breakConstrained();
return true;
}
return false;
}
_parse(data) {
this._anchor.fromArray(data.anchor);
this._connectAnchor.fromArray(data.connectAnchor);
this.setFrames();
}
_getFeedBackInfo() {
var bt = Laya.Physics3D._bullet;
var applyForce = bt.btJointFeedback_getAppliedForceBodyA(this._btJointFeedBackObj);
var applyTorque = bt.btJointFeedback_getAppliedTorqueBodyA(this._btJointFeedBackObj);
this._currentTorque.setValue(bt.btVector3_x(applyTorque), bt.btVector3_y(applyTorque), bt.btVector3_z(applyTorque));
this._currentForce.setValue(bt.btVector3_x(applyForce), bt.btVector3_y(applyForce), bt.btVector3_z(applyForce));
this._getJointFeedBack = true;
}
_breakConstrained() {
this.ownBody.constaintRigidbodyA = null;
this.connectedBody && (this.connectedBody.constaintRigidbodyB = null);
this.destroy();
}
}
ConstraintComponent.CONSTRAINT_POINT2POINT_CONSTRAINT_TYPE = 3;
ConstraintComponent.CONSTRAINT_HINGE_CONSTRAINT_TYPE = 4;
ConstraintComponent.CONSTRAINT_CONETWIST_CONSTRAINT_TYPE = 5;
ConstraintComponent.CONSTRAINT_D6_CONSTRAINT_TYPE = 6;
ConstraintComponent.CONSTRAINT_SLIDER_CONSTRAINT_TYPE = 7;
ConstraintComponent.CONSTRAINT_CONTACT_CONSTRAINT_TYPE = 8;
ConstraintComponent.CONSTRAINT_D6_SPRING_CONSTRAINT_TYPE = 9;
ConstraintComponent.CONSTRAINT_GEAR_CONSTRAINT_TYPE = 10;
ConstraintComponent.CONSTRAINT_FIXED_CONSTRAINT_TYPE = 11;
ConstraintComponent.CONSTRAINT_MAX_CONSTRAINT_TYPE = 12;
ConstraintComponent.CONSTRAINT_CONSTRAINT_ERP = 1;
ConstraintComponent.CONSTRAINT_CONSTRAINT_STOP_ERP = 2;
ConstraintComponent.CONSTRAINT_CONSTRAINT_CFM = 3;
ConstraintComponent.CONSTRAINT_CONSTRAINT_STOP_CFM = 4;
ConstraintComponent.tempForceV3 = new Laya.Vector3();
class ConfigurableConstraint extends ConstraintComponent {
constructor() {
super(ConstraintComponent.CONSTRAINT_D6_SPRING_CONSTRAINT_TYPE);
this._axis = new Laya.Vector3();
this._secondaryAxis = new Laya.Vector3();
this._minLinearLimit = new Laya.Vector3();
this._maxLinearLimit = new Laya.Vector3();
this._minAngularLimit = new Laya.Vector3();
this._maxAngularLimit = new Laya.Vector3();
this._linearLimitSpring = new Laya.Vector3();
this._angularLimitSpring = new Laya.Vector3();
this._linearBounce = new Laya.Vector3();
this._angularBounce = new Laya.Vector3();
this._linearDamp = new Laya.Vector3();
this._angularDamp = new Laya.Vector3();
this._xMotion = 0;
this._yMotion = 0;
this._zMotion = 0;
this._angularXMotion = 0;
this._angularYMotion = 0;
this._angularZMotion = 0;
var bt = Laya.Physics3D._bullet;
this._btAxis = bt.btVector3_create(-1.0, 0.0, 0.0);
this._btSecondaryAxis = bt.btVector3_create(0.0, 1.0, 0.0);
}
get axis() {
return this._axis;
}
get secondaryAxis() {
return this._secondaryAxis;
}
set maxAngularLimit(value) {
value.cloneTo(this._maxAngularLimit);
}
set minAngularLimit(value) {
value.cloneTo(this._minAngularLimit);
}
get maxAngularLimit() {
return this._maxAngularLimit;
}
get minAngularLimit() {
return this._minAngularLimit;
}
set maxLinearLimit(value) {
value.cloneTo(this._maxLinearLimit);
}
set minLinearLimit(value) {
value.cloneTo(this._minLinearLimit);
}
get maxLinearLimit() {
return this._maxLinearLimit;
}
get minLinearLimit() {
return this._minLinearLimit;
}
set XMotion(value) {
if (this._xMotion != value) {
this._xMotion = value;
this.setLimit(ConfigurableConstraint.MOTION_LINEAR_INDEX_X, value, -this._maxLinearLimit.x, -this._minLinearLimit.x);
}
}
get XMotion() {
return this._xMotion;
}
set YMotion(value) {
if (this._yMotion != value) {
this._yMotion = value;
this.setLimit(ConfigurableConstraint.MOTION_LINEAR_INDEX_Y, value, this._minLinearLimit.y, this._maxLinearLimit.y);
}
}
get YMotion() {
return this._yMotion;
}
set ZMotion(value) {
if (this._zMotion != value) {
this._zMotion = value;
this.setLimit(ConfigurableConstraint.MOTION_LINEAR_INDEX_Z, value, this._minLinearLimit.z, this._maxLinearLimit.z);
}
}
get ZMotion() {
return this._zMotion;
}
set angularXMotion(value) {
if (this._angularXMotion != value) {
this._angularXMotion = value;
this.setLimit(ConfigurableConstraint.MOTION_ANGULAR_INDEX_X, value, -this._maxAngularLimit.x, -this._minAngularLimit.x);
}
}
get angularXMotion() {
return this._angularXMotion;
}
set angularYMotion(value) {
if (this._angularYMotion != value) {
this._angularYMotion = value;
this.setLimit(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y, value, this._minAngularLimit.y, this._maxAngularLimit.y);
}
}
get angularYMotion() {
return this._angularYMotion;
}
set angularZMotion(value) {
if (this._angularZMotion != value) {
this._angularZMotion = value;
this.setLimit(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z, value, this._minAngularLimit.z, this._maxAngularLimit.z);
}
}
get angularZMotion() {
return this._angularZMotion;
}
set linearLimitSpring(value) {
if (!Laya.Vector3.equals(this._linearLimitSpring, value)) {
value.cloneTo(this._linearLimitSpring);
this.setSpring(ConfigurableConstraint.MOTION_LINEAR_INDEX_X, value.x);
this.setSpring(ConfigurableConstraint.MOTION_LINEAR_INDEX_Y, value.y);
this.setSpring(ConfigurableConstraint.MOTION_LINEAR_INDEX_Z, value.z);
}
}
get linearLimitSpring() {
return this._linearLimitSpring;
}
set angularLimitSpring(value) {
if (!Laya.Vector3.equals(this._angularLimitSpring, value)) {
value.cloneTo(this._angularLimitSpring);
this.setSpring(ConfigurableConstraint.MOTION_ANGULAR_INDEX_X, value.x);
this.setSpring(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y, value.y);
this.setSpring(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z, value.z);
}
}
get angularLimitSpring() {
return this._angularLimitSpring;
}
set linearBounce(value) {
if (!Laya.Vector3.equals(this._linearBounce, value)) {
value.cloneTo(this._linearBounce);
this.setBounce(ConfigurableConstraint.MOTION_LINEAR_INDEX_X, value.x);
this.setBounce(ConfigurableConstraint.MOTION_LINEAR_INDEX_Y, value.y);
this.setBounce(ConfigurableConstraint.MOTION_LINEAR_INDEX_Z, value.z);
}
}
get linearBounce() {
return this._linearBounce;
}
set angularBounce(value) {
if (!Laya.Vector3.equals(this._angularBounce, value)) {
value.cloneTo(this._angularBounce);
this.setBounce(ConfigurableConstraint.MOTION_ANGULAR_INDEX_X, value.x);
this.setBounce(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y, value.y);
this.setBounce(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z, value.z);
}
}
get angularBounce() {
return this._angularBounce;
}
set linearDamp(value) {
if (!Laya.Vector3.equals(this._linearDamp, value)) {
value.cloneTo(this._linearDamp);
this.setDamping(ConfigurableConstraint.MOTION_LINEAR_INDEX_X, value.x);
this.setDamping(ConfigurableConstraint.MOTION_LINEAR_INDEX_Y, value.y);
this.setDamping(ConfigurableConstraint.MOTION_LINEAR_INDEX_Z, value.z);
}
}
get linearDamp() {
return this._linearDamp;
}
set angularDamp(value) {
if (!Laya.Vector3.equals(this._angularDamp, value)) {
value.cloneTo(this._angularDamp);
this.setDamping(ConfigurableConstraint.MOTION_ANGULAR_INDEX_X, value.x);
this.setDamping(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y, value.y);
this.setDamping(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z, value.z);
}
}
get angularDamp() {
return this._angularDamp;
}
set anchor(value) {
value.cloneTo(this._anchor);
this.setFrames();
}
get anchor() {
return this._anchor;
}
set connectAnchor(value) {
value.cloneTo(this._connectAnchor);
this.setFrames();
}
get connectAnchor() {
return this._connectAnchor;
}
setAxis(axis, secondaryAxis) {
if (!this._btConstraint)
return;
var bt = Laya.Physics3D._bullet;
this._axis.setValue(axis.x, axis.y, axis.y);
this._secondaryAxis.setValue(secondaryAxis.x, secondaryAxis.y, secondaryAxis.z);
this._btAxis = bt.btVector3_setValue(-axis.x, axis.y, axis.z);
this._btSecondaryAxis = bt.btVector3_setValue(-secondaryAxis.x, secondaryAxis.y, secondaryAxis.z);
bt.btGeneric6DofSpring2Constraint_setAxis(this._btConstraint, this._btAxis, this._btSecondaryAxis);
}
setLimit(axis, motionType, low, high) {
if (!this._btConstraint)
return;
var bt = Laya.Physics3D._bullet;
switch (motionType) {
case ConfigurableConstraint.CONFIG_MOTION_TYPE_LOCKED:
bt.btGeneric6DofSpring2Constraint_setLimit(this._btConstraint, axis, 0, 0);
break;
case ConfigurableConstraint.CONFIG_MOTION_TYPE_LIMITED:
if (low < high)
bt.btGeneric6DofSpring2Constraint_setLimit(this._btConstraint, axis, low, high);
break;
case ConfigurableConstraint.CONFIG_MOTION_TYPE_FREE:
bt.btGeneric6DofSpring2Constraint_setLimit(this._btConstraint, axis, 1, 0);
break;
default:
throw "No Type of Axis Motion";
}
}
setSpring(axis, springValue, limitIfNeeded = true) {
if (!this._btConstraint)
return;
var bt = Laya.Physics3D._bullet;
var enableSpring = springValue > 0;
bt.btGeneric6DofSpring2Constraint_enableSpring(this._btConstraint, axis, enableSpring);
if (enableSpring)
bt.btGeneric6DofSpring2Constraint_setStiffness(this._btConstraint, axis, springValue, limitIfNeeded);
}
setBounce(axis, bounce) {
if (!this._btConstraint)
return;
var bt = Laya.Physics3D._bullet;
bounce = bounce <= 0 ? 0 : bounce;
bt.btGeneric6DofSpring2Constraint_setBounce(this._btConstraint, axis, bounce);
}
setDamping(axis, damp, limitIfNeeded = true) {
if (!this._btConstraint)
return;
var bt = Laya.Physics3D._bullet;
damp = damp <= 0 ? 0 : damp;
bt.btGeneric6DofSpring2Constraint_setDamping(this._btConstraint, axis, damp, limitIfNeeded);
}
setEquilibriumPoint(axis, equilibriumPoint) {
var bt = Laya.Physics3D._bullet;
bt.btGeneric6DofSpring2Constraint_setEquilibriumPoint(this._btConstraint, axis, equilibriumPoint);
}
enableMotor(axis, isEnableMotor) {
var bt = Laya.Physics3D._bullet;
bt.btGeneric6DofSpring2Constraint_enableMotor(this._btConstraint, axis, isEnableMotor);
}
setServo(axis, onOff) {
var bt = Laya.Physics3D._bullet;
bt.btGeneric6DofSpring2Constraint_setServo(this._btConstraint, axis, onOff);
}
setTargetVelocity(axis, velocity) {
var bt = Laya.Physics3D._bullet;
bt.btGeneric6DofSpring2Constraint_setTargetVelocity(this._btConstraint, axis, velocity);
}
setTargetPosition(axis, target) {
var bt = Laya.Physics3D._bullet;
bt.btGeneric6DofSpring2Constraint_setServoTarget(this._btConstraint, axis, target);
}
setMaxMotorForce(axis, force) {
var bt = Laya.Physics3D._bullet;
bt.btGeneric6DofSpring2Constraint_setMaxMotorForce(this._btConstraint, axis, force);
}
setParam(axis, constraintParams, value) {
var bt = Laya.Physics3D._bullet;
bt.btTypedConstraint_setParam(this._btConstraint, axis, constraintParams, value);
}
setFrames() {
super.setFrames();
var bt = Laya.Physics3D._bullet;
if (!this._btConstraint)
return;
bt.btGeneric6DofSpring2Constraint_setFrames(this._btConstraint, this._btframATrans, this._btframBTrans);
}
_addToSimulation() {
this._simulation && this._simulation.addConstraint(this, this.enabled);
}
_removeFromSimulation() {
this._simulation.removeConstraint(this);
this._simulation = null;
}
_createConstraint() {
var bt = Laya.Physics3D._bullet;
this._btConstraint = bt.btGeneric6DofSpring2Constraint_create(this.ownBody.btColliderObject, this._btframAPos, this.connectedBody.btColliderObject, this._btframBPos, ConfigurableConstraint.RO_XYZ);
this._btJointFeedBackObj = bt.btJointFeedback_create(this._btConstraint);
bt.btTypedConstraint_setJointFeedback(this._btConstraint, this._btJointFeedBackObj);
this._simulation = this.owner._scene.physicsSimulation;
this._initAllConstraintInfo();
this._addToSimulation();
Laya.Physics3D._bullet.btTypedConstraint_setEnabled(this._btConstraint, true);
}
_initAllConstraintInfo() {
this.setLimit(ConfigurableConstraint.MOTION_LINEAR_INDEX_X, this._xMotion, -this._maxLinearLimit.x, -this._minLinearLimit.x);
this.setLimit(ConfigurableConstraint.MOTION_LINEAR_INDEX_Y, this._yMotion, this._minLinearLimit.y, this._maxLinearLimit.y);
this.setLimit(ConfigurableConstraint.MOTION_LINEAR_INDEX_Z, this._zMotion, this._minLinearLimit.z, this._maxLinearLimit.z);
this.setLimit(ConfigurableConstraint.MOTION_ANGULAR_INDEX_X, this._angularXMotion, -this._maxAngularLimit.x, -this._minAngularLimit.x);
this.setLimit(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y, this._angularYMotion, this._minAngularLimit.y, this._maxAngularLimit.y);
this.setLimit(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z, this._angularZMotion, this._minAngularLimit.z, this._maxAngularLimit.z);
this.setSpring(ConfigurableConstraint.MOTION_LINEAR_INDEX_X, this._linearLimitSpring.x);
this.setSpring(ConfigurableConstraint.MOTION_LINEAR_INDEX_Y, this._linearLimitSpring.y);
this.setSpring(ConfigurableConstraint.MOTION_LINEAR_INDEX_Z, this._linearLimitSpring.z);
this.setSpring(ConfigurableConstraint.MOTION_ANGULAR_INDEX_X, this._angularLimitSpring.x);
this.setSpring(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y, this._angularLimitSpring.y);
this.setSpring(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z, this._angularLimitSpring.z);
this.setBounce(ConfigurableConstraint.MOTION_LINEAR_INDEX_X, this._linearBounce.x);
this.setBounce(ConfigurableConstraint.MOTION_LINEAR_INDEX_Y, this._linearBounce.y);
this.setBounce(ConfigurableConstraint.MOTION_LINEAR_INDEX_Z, this._linearBounce.z);
this.setBounce(ConfigurableConstraint.MOTION_ANGULAR_INDEX_X, this._angularBounce.x);
this.setBounce(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y, this._angularBounce.y);
this.setBounce(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z, this._angularBounce.z);
this.setDamping(ConfigurableConstraint.MOTION_LINEAR_INDEX_X, this._linearDamp.x);
this.setDamping(ConfigurableConstraint.MOTION_LINEAR_INDEX_Y, this._linearDamp.y);
this.setDamping(ConfigurableConstraint.MOTION_LINEAR_INDEX_Z, this._linearDamp.z);
this.setDamping(ConfigurableConstraint.MOTION_ANGULAR_INDEX_X, this._angularDamp.x);
this.setDamping(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y, this._angularDamp.y);
this.setDamping(ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z, this._angularDamp.z);
this.setFrames();
this.setEquilibriumPoint(0, 0);
}
_onAdded() {
super._onAdded();
}
_onEnable() {
if (!this._btConstraint)
return;
super._onEnable();
if (this._btConstraint)
Laya.Physics3D._bullet.btTypedConstraint_setEnabled(this._btConstraint, true);
}
_onDisable() {
super._onDisable();
if (!this.connectedBody && this._simulation)
this._removeFromSimulation();
if (this._btConstraint)
Laya.Physics3D._bullet.btTypedConstraint_setEnabled(this._btConstraint, false);
}
_parse(data, interactMap = null) {
super._parse(data);
this._axis.fromArray(data.axis);
this._secondaryAxis.fromArray(data.secondaryAxis);
var limitlimit = data.linearLimit;
this._minLinearLimit.setValue(-limitlimit, -limitlimit, -limitlimit);
this._maxLinearLimit.setValue(limitlimit, limitlimit, limitlimit);
var limitSpring = data.linearLimitSpring;
this._linearLimitSpring.setValue(limitSpring, limitSpring, limitSpring);
var limitDamp = data.linearLimitDamper;
this._linearDamp.setValue(limitDamp, limitDamp, limitDamp);
var limitBounciness = data.linearLimitBounciness;
this._linearBounce.setValue(limitBounciness, limitBounciness, limitBounciness);
var xlowAngularLimit = data.lowAngularXLimit;
var xhighAngularLimit = data.highAngularXLimit;
var yAngularLimit = data.angularYLimit;
var zAngularLimit = data.angularZLimit;
this._minAngularLimit.setValue(xlowAngularLimit, -yAngularLimit, -zAngularLimit);
this._maxAngularLimit.setValue(xhighAngularLimit, yAngularLimit, zAngularLimit);
var xhighAngularBounciness = data.highAngularXLimitBounciness;
var ybounciness = data.angularYLimitBounciness;
var zbounciness = data.angularZLimitBounciness;
this._angularBounce.setValue(xhighAngularBounciness, ybounciness, zbounciness);
var xAngularSpring = data.angularXLimitSpring;
var yzAngularSpriny = data.angularYZLimitSpring;
this._angularLimitSpring.setValue(xAngularSpring, yzAngularSpriny, yzAngularSpriny);
var xAngularDamper = data.angularXLimitDamper;
var yzAngularDamper = data.angularYZLimitDamper;
this._angularDamp.setValue(xAngularDamper, yzAngularDamper, yzAngularDamper);
this.XMotion = data.xMotion;
this.YMotion = data.yMotion;
this.ZMotion = data.zMotion;
this.angularXMotion = data.angularXMotion;
this.angularYMotion = data.angularYMotion;
this.angularZMotion = data.angularZMotion;
if (data.rigidbodyID != -1 && data.connectRigidbodyID != -1) {
interactMap.component.push(this);
interactMap.data.push(data);
}
(data.breakForce != undefined) && (this.breakForce = data.breakForce);
(data.breakTorque != undefined) && (this.breakTorque = data.breakTorque);
}
_parseInteractive(data = null, spriteMap = null) {
var rigidBodySprite = spriteMap[data.rigidbodyID];
var rigidBody = rigidBodySprite.getComponent(Rigidbody3D);
var connectSprite = spriteMap[data.connectRigidbodyID];
var connectRigidbody = connectSprite.getComponent(Rigidbody3D);
this.ownBody = rigidBody;
this.connectedBody = connectRigidbody;
}
_onDestroy() {
super._onDestroy();
}
}
ConfigurableConstraint.CONFIG_MOTION_TYPE_LOCKED = 0;
ConfigurableConstraint.CONFIG_MOTION_TYPE_LIMITED = 1;
ConfigurableConstraint.CONFIG_MOTION_TYPE_FREE = 2;
ConfigurableConstraint.MOTION_LINEAR_INDEX_X = 0;
ConfigurableConstraint.MOTION_LINEAR_INDEX_Y = 1;
ConfigurableConstraint.MOTION_LINEAR_INDEX_Z = 2;
ConfigurableConstraint.MOTION_ANGULAR_INDEX_X = 3;
ConfigurableConstraint.MOTION_ANGULAR_INDEX_Y = 4;
ConfigurableConstraint.MOTION_ANGULAR_INDEX_Z = 5;
ConfigurableConstraint.RO_XYZ = 0;
ConfigurableConstraint.RO_XZY = 1;
ConfigurableConstraint.RO_YXZ = 2;
ConfigurableConstraint.RO_YZX = 3;
ConfigurableConstraint.RO_ZXY = 4;
ConfigurableConstraint.RO_ZYX = 5;
class FixedConstraint extends ConstraintComponent {
constructor() {
super(ConstraintComponent.CONSTRAINT_FIXED_CONSTRAINT_TYPE);
this.breakForce = -1;
this.breakTorque = -1;
}
_addToSimulation() {
this._simulation && this._simulation.addConstraint(this, this.enabled);
}
_removeFromSimulation() {
this._simulation.removeConstraint(this);
this._simulation = null;
}
_createConstraint() {
if (this.ownBody && this.ownBody._simulation && this.connectedBody && this.connectedBody._simulation) {
var bt = Laya.Physics3D._bullet;
this._btConstraint = bt.btFixedConstraint_create(this.ownBody.btColliderObject, this._btframATrans, this.connectedBody.btColliderObject, this._btframBTrans);
this._btJointFeedBackObj = bt.btJointFeedback_create(this._btConstraint);
bt.btTypedConstraint_setJointFeedback(this._btConstraint, this._btJointFeedBackObj);
this._simulation = this.owner._scene.physicsSimulation;
this._addToSimulation();
Laya.Physics3D._bullet.btTypedConstraint_setEnabled(this._btConstraint, true);
}
}
_onAdded() {
super._onAdded();
}
_onEnable() {
if (!this._btConstraint)
return;
super._onEnable();
if (this._btConstraint)
Laya.Physics3D._bullet.btTypedConstraint_setEnabled(this._btConstraint, true);
}
_onDisable() {
super._onDisable();
if (!this.connectedBody)
this._removeFromSimulation();
if (this._btConstraint)
Laya.Physics3D._bullet.btTypedConstraint_setEnabled(this._btConstraint, false);
}
_onDestroy() {
super._onDestroy();
}
_parse(data, interactMap = null) {
super._parse(data);
if (data.rigidbodyID != -1 && data.connectRigidbodyID != -1) {
interactMap.component.push(this);
interactMap.data.push(data);
}
(data.breakForce != undefined) && (this.breakForce = data.breakForce);
(data.breakTorque != undefined) && (this.breakTorque = data.breakTorque);
}
_parseInteractive(data = null, spriteMap = null) {
var rigidBodySprite = spriteMap[data.rigidbodyID];
var rigidBody = rigidBodySprite.getComponent(Rigidbody3D);
var connectSprite = spriteMap[data.connectRigidbodyID];
var connectRigidbody = connectSprite.getComponent(Rigidbody3D);
this.ownBody = rigidBody;
this.connectedBody = connectRigidbody;
}
}
class StaticPlaneColliderShape extends ColliderShape {
constructor(normal, offset) {
super();
this._normal = normal;
this._offset = offset;
this._type = ColliderShape.SHAPETYPES_STATICPLANE;
var bt = Laya.ILaya3D.Physics3D._bullet;
bt.btVector3_setValue(StaticPlaneColliderShape._btNormal, -normal.x, normal.y, normal.z);
this._btShape = bt.btStaticPlaneShape_create(StaticPlaneColliderShape._btNormal, offset);
}
static __init__() {
StaticPlaneColliderShape._btNormal = Laya.ILaya3D.Physics3D._bullet.btVector3_create(0, 0, 0);
}
clone() {
var dest = new StaticPlaneColliderShape(this._normal, this._offset);
this.cloneTo(dest);
return dest;
}
}
exports.BoxColliderShape = BoxColliderShape;
exports.BulletInteractive = BulletInteractive;
exports.CapsuleColliderShape = CapsuleColliderShape;
exports.CharacterController = CharacterController;
exports.ColliderShape = ColliderShape;
exports.Collision = Collision;
exports.CollisionTool = CollisionTool;
exports.CompoundColliderShape = CompoundColliderShape;
exports.ConeColliderShape = ConeColliderShape;
exports.ConfigurableConstraint = ConfigurableConstraint;
exports.Constraint3D = Constraint3D;
exports.ConstraintComponent = ConstraintComponent;
exports.ContactPoint = ContactPoint;
exports.CylinderColliderShape = CylinderColliderShape;
exports.FixedConstraint = FixedConstraint;
exports.HitResult = HitResult;
exports.MeshColliderShape = MeshColliderShape;
exports.PhysicsCollider = PhysicsCollider;
exports.PhysicsComponent = PhysicsComponent;
exports.PhysicsSettings = PhysicsSettings;
exports.PhysicsSimulation = PhysicsSimulation;
exports.PhysicsTriggerComponent = PhysicsTriggerComponent;
exports.PhysicsUpdateList = PhysicsUpdateList;
exports.Rigidbody3D = Rigidbody3D;
exports.SphereColliderShape = SphereColliderShape;
exports.StaticPlaneColliderShape = StaticPlaneColliderShape;
}(window.Laya = window.Laya || {}, Laya));