From d4c21c784f03b95b19d20935f6325bfc79149610 Mon Sep 17 00:00:00 2001 From: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> Date: Tue, 23 Jan 2024 02:45:53 +0100 Subject: [PATCH] decomp3: `geometry`, `vector`, `timer-h`, ocean table files and `game-task` related enums (#3329) --- common/type_system/TypeSystem.cpp | 2 +- decompiler/analysis/insert_lets.cpp | 1 + decompiler/config/jak3/all-types.gc | 2976 ++- .../ntsc_v1/anonymous_function_types.jsonc | 2 +- .../config/jak3/ntsc_v1/label_types.jsonc | 32 + .../jak3/ntsc_v1/stack_structures.jsonc | 11 +- .../config/jak3/ntsc_v1/type_casts.jsonc | 43 +- .../config/jak3/ntsc_v1/var_names.jsonc | 10 +- decompiler/util/data_decompile.cpp | 6 + goal_src/jak3/engine/game/task/game-task-h.gc | 954 + .../jak3/engine/game/task/task-control-h.gc | 1525 ++ goal_src/jak3/engine/geometry/geometry.gc | 1620 ++ .../jak3/engine/gfx/ocean/ocean-frames.gc | 16387 +++++++++++++++ goal_src/jak3/engine/gfx/ocean/ocean-h.gc | 122 + .../jak3/engine/gfx/ocean/ocean-tables.gc | 5499 ++++++ .../engine/gfx/ocean/ocean-trans-tables.gc | 1076 + goal_src/jak3/engine/math/math.gc | 6 +- goal_src/jak3/engine/math/vector-h.gc | 5 + goal_src/jak3/engine/math/vector.gc | 1720 ++ goal_src/jak3/engine/ps2/timer-h.gc | 107 + goal_src/jak3/engine/ps2/vif-h.gc | 68 + goal_src/jak3/engine/ui/text-h.gc | 909 + .../reference/jak3/decompiler-macros.gc | 18 + .../jak3/engine/game/task/game-task-h_REF.gc | 6 + .../engine/game/task/task-control-h_REF.gc | 1811 ++ .../jak3/engine/geometry/geometry_REF.gc | 2054 ++ .../jak3/engine/gfx/ocean/ocean-frames_REF.gc | 16395 ++++++++++++++++ .../jak3/engine/gfx/ocean/ocean-tables_REF.gc | 5517 ++++++ .../gfx/ocean/ocean-trans-tables_REF.gc | 1102 ++ .../reference/jak3/engine/math/math_REF.gc | 10 +- .../reference/jak3/engine/math/vector_REF.gc | 1759 ++ .../reference/jak3/engine/ps2/timer-h_REF.gc | 115 + .../reference/jak3/engine/ps2/vif-h_REF.gc | 124 + test/offline/config/jak3/config.jsonc | 7 +- 34 files changed, 61583 insertions(+), 416 deletions(-) create mode 100644 test/decompiler/reference/jak3/engine/game/task/game-task-h_REF.gc create mode 100644 test/decompiler/reference/jak3/engine/game/task/task-control-h_REF.gc create mode 100644 test/decompiler/reference/jak3/engine/geometry/geometry_REF.gc create mode 100644 test/decompiler/reference/jak3/engine/gfx/ocean/ocean-frames_REF.gc create mode 100644 test/decompiler/reference/jak3/engine/gfx/ocean/ocean-tables_REF.gc create mode 100644 test/decompiler/reference/jak3/engine/gfx/ocean/ocean-trans-tables_REF.gc create mode 100644 test/decompiler/reference/jak3/engine/math/vector_REF.gc create mode 100644 test/decompiler/reference/jak3/engine/ps2/timer-h_REF.gc create mode 100644 test/decompiler/reference/jak3/engine/ps2/vif-h_REF.gc diff --git a/common/type_system/TypeSystem.cpp b/common/type_system/TypeSystem.cpp index ebe37c8028..4e126424d9 100644 --- a/common/type_system/TypeSystem.cpp +++ b/common/type_system/TypeSystem.cpp @@ -2113,7 +2113,7 @@ std::optional find_best_field_in_structure(const TypeSystem& ts, } for (size_t i = start_field; i < (size_t)end_field; ++i) { const auto& field = st->fields().at(i); - auto type = ts.lookup_type(field.type()); + auto type = ts.lookup_type_allow_partial_def(field.type()); if (field.is_dynamic() || field.offset() > offset || field.user_placed() != want_fixed) { continue; } diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index f92cb4d65b..c70c670566 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -347,6 +347,7 @@ FormElement* rewrite_as_send_event(LetElement* in, Matcher::any_reg(1)); break; case GameVersion::Jak2: + case GameVersion::Jak3: // in jak 2, the event message block holds a ppointer instead. set_from_matcher = Matcher::set( Matcher::deref(Matcher::reg(block_var_reg), false, {DerefTokenMatcher::string("from")}), diff --git a/decompiler/config/jak3/all-types.gc b/decompiler/config/jak3/all-types.gc index b52f36d81f..830f8ca796 100644 --- a/decompiler/config/jak3/all-types.gc +++ b/decompiler/config/jak3/all-types.gc @@ -1186,7 +1186,13 @@ ) (deftype rgba (uint32) - () + ((r uint8 :offset 0) + (g uint8 :offset 8) + (b uint8 :offset 16) + (a uint8 :offset 24) + ) + :flag-assert #x900000004 + :no-runtime-type ) (deftype xyzw (uint128) @@ -2528,10 +2534,9 @@ ) |# -;; (deftype sound-id (uint32) -;; () -;; :flag-assert #xa00000004 -;; ) +(deftype sound-id (uint32) + () + ) ;; (deftype sound-bank-id (uint32) ;; () @@ -2972,113 +2977,146 @@ ;; timer-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (deftype timer-mode (uint32) -;; () -;; :flag-assert #x900000004 -;; ) +(defenum timer-clock-selection + :type uint8 + (busclk 0) + (busclk/16 1) + (busclk/256 2) + (hblank 3) + ) + +(deftype timer-mode (uint32) + "This matches the Tn_MODE register structure of the ps2 EE timers. + Only the lower 32 bits of these registers are usable, and the upper 16 hardwired to zero." + ((clks timer-clock-selection :offset 0 :size 2) + (gate uint8 :offset 2 :size 1) ;; gate function enable + (gats uint8 :offset 3 :size 1) ;; gate selection: 0 = hblank, 1 = vblank + ;; gate mode: + ;; 0: count while gate signal is low + ;; 1: start when gate signal rises + ;; 2: start when gate signal falls + ;; 3: start when gate signal rises/falls + (gatm uint8 :offset 4 :size 2) + (zret uint8 :offset 6 :size 1) ;; zero return: clear counter when equal to reference value + (cue uint8 :offset 7 :size 1) ;; count-up enable + (cmpe uint8 :offset 8 :size 1) ;; compare-interrupt enable + (ovfe uint8 :offset 9 :size 1) ;; overflow-interrupt enable + (equf uint8 :offset 10 :size 1) ;; equal-flag + (ovff uint8 :offset 11 :size 1) ;; overflow-flag + ) + ) -#| (deftype timer-bank (structure) + "This matches an EE timer (without a HOLD register, timers 2 and 3). + Each register is 128-bits wide, but only the lower 32-bits are usable, and the upper + 16-bits of that are hardwired to zero." ((count uint32 :offset-assert 0) - (mode timer-mode :offset-assert 16) ;; guessed by decompiler - (comp uint32 :offset-assert 32) + (mode timer-mode :offset 16) + (comp uint32 :offset 32) ) :method-count-assert 9 :size-assert #x24 :flag-assert #x900000024 ) -|# -#| (deftype timer-hold-bank (timer-bank) - ((hold uint32 :offset-assert 48) + "This matches an EE timer (with a HOLD register, timers 0 and 1)." + ((hold uint32 :offset 48) ) :method-count-assert 9 :size-assert #x34 :flag-assert #x900000034 ) -|# -#| (deftype stopwatch (basic) - ((prev-time-elapsed uint64 :offset-assert 8) ;; time-frame - (start-time uint64 :offset-assert 16) ;; time-frame - (begin-level int32 :offset-assert 24) + "Stopwatches are used to measure CPU clock cycles. + They don't use the timer above, but instead the Count COP0 register, + which counts CPU clock cycles directly." + ((prev-time-elapsed time-frame :offset-assert 8) + (start-time time-frame :offset-assert 16) + (begin-level int32 :offset-assert 24) ) :method-count-assert 9 :size-assert #x1c :flag-assert #x90000001c ) -|# -;; (define-extern *ticks-per-frame* object) ;; int -;; (define-extern timer-init function) ;; (function timer-bank timer-mode int) +(define-extern *ticks-per-frame* int) +(define-extern timer-init + "Initiate a timer, start counting at a rate of 1 every 256 bus clocks (BUSCLK: ~147.456MHz)." + (function timer-bank timer-mode int)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; vif-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype vif-stat (uint32) - ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ((vps uint8 :offset 0 :size 2) + (vew uint8 :offset 2 :size 1) + (mrk uint8 :offset 6 :size 1) + (vss uint8 :offset 8 :size 1) + (vfs uint8 :offset 9 :size 1) + (vis uint8 :offset 10 :size 1) + (int uint8 :offset 11 :size 1) + (er0 uint8 :offset 12 :size 1) + (er1 uint8 :offset 13 :size 1) + (fqc uint8 :offset 24 :size 4) ) :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) -|# -;; (deftype vif-fbrst (uint32) -;; () -;; :flag-assert #x900000004 -;; ) +(deftype vif-fbrst (uint32) + ((rst uint8 :offset 0 :size 1) + (fbk uint8 :offset 1 :size 1) + (stp uint8 :offset 2 :size 1) + (stc uint8 :offset 3 :size 1) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) -;; (deftype vif-err (uint32) -;; () -;; :flag-assert #x900000004 -;; ) +(deftype vif-err (uint32) + ((mii uint8 :offset 0 :size 1) + (me0 uint8 :offset 1 :size 1) ;; PS2 hardware bug, must set this to 1 for correct operation. + (me1 uint8 :offset 2 :size 1) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) -#| (deftype vif-bank (structure) - ((stat uint32 :offset-assert 0) - (fbrst uint32 :offset-assert 16) - (err vif-err :offset-assert 32) ;; guessed by decompiler - (mark uint32 :offset-assert 48) - (cycle uint32 :offset-assert 64) - (mode uint32 :offset-assert 80) - (num uint32 :offset-assert 96) - (mask uint32 :offset-assert 112) - (code uint32 :offset-assert 128) - (itops uint32 :offset-assert 144) - (base uint32 :offset-assert 160) - (offset uint32 :offset-assert 176) - (tops uint32 :offset-assert 192) - (itop uint32 :offset-assert 208) - (top uint32 :offset-assert 224) - (r0 uint32 :offset-assert 256) - (r1 uint32 :offset-assert 272) - (r2 uint32 :offset-assert 288) - (r3 uint32 :offset-assert 304) - (c0 uint32 :offset-assert 320) - (c1 uint32 :offset-assert 336) - (c2 uint32 :offset-assert 352) - (c3 uint32 :offset-assert 368) + ((stat uint32 :offset-assert 0) + (fbrst uint32 :offset 16) + (err vif-err :offset 32) + (mark uint32 :offset 48) + (cycle uint32 :offset 64) + (mode uint32 :offset 80) + (num uint32 :offset 96) + (mask uint32 :offset 112) + (code uint32 :offset 128) + (itops uint32 :offset 144) + (base uint32 :offset 160) + (offset uint32 :offset 176) + (tops uint32 :offset 192) + (itop uint32 :offset 208) + (top uint32 :offset 224) + (r0 uint32 :offset 256) + (r1 uint32 :offset 272) + (r2 uint32 :offset 288) + (r3 uint32 :offset 304) + (c0 uint32 :offset 320) + (c1 uint32 :offset 336) + (c2 uint32 :offset 352) + (c3 uint32 :offset 368) ) :method-count-assert 9 :size-assert #x174 :flag-assert #x900000174 ) -|# - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; dma-h ;; @@ -4231,182 +4269,452 @@ ;; geometry ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern vector-flatten! function) ;; (function vector vector vector vector) -;; (define-extern vector-reflect! function) ;; (function vector vector vector vector) -;; (define-extern vector-reflect-flat! function) ;; (function vector vector vector vector) -;; (define-extern vector-reflect-flat-above! function) ;; (function vector vector vector vector) -;; (define-extern vector-reflect-flat-gravity! function) ;; (function vector vector vector vector vector) -;; (define-extern vector-segment-distance-point! function) ;; (function vector vector vector vector float) -;; (define-extern vector-segment-xz-distance-point! function) -;; (define-extern vector-line-distance function) ;; (function vector vector vector float) -;; (define-extern vector-line-distance-point! function) ;; (function vector vector vector vector float) -;; (define-extern vector-line-xz-distance-point! function) -;; (define-extern vector-segment-overlap function) ;; (function vector vector vector float) -;; (define-extern line-sphere-intersection? function) ;; (function vector vector vector symbol) -;; (define-extern nearest-dist2-between-moving-points function) ;; (function vector vector vector vector float float) -(define-extern vector-orient-by-quat! (function vector vector quaternion vector)) -;; (define-extern vector-inv-orient-by-quat! function) ;; (function vector vector quaternion vector) -;; (define-extern forward-down->inv-matrix function) ;; (function matrix vector vector matrix) -;; (define-extern forward-down-nopitch->inv-matrix function) ;; (function matrix vector vector matrix) -;; (define-extern forward-up->inv-matrix function) ;; (function matrix vector vector matrix) -;; (define-extern forward-up-nopitch->inv-matrix function) ;; (function matrix vector vector matrix) -;; (define-extern forward-up-nopitch->quaternion function) ;; (function quaternion vector vector quaternion) -;; (define-extern forward-up->quaternion function) ;; (function quaternion vector vector quaternion) -;; (define-extern quaternion-from-two-vectors! function) ;; (function quaternion vector vector quaternion) -;; (define-extern quaternion-from-two-vectors-partial! function) ;; (function quaternion vector vector float quaternion) -(define-extern quaternion-from-two-vectors-max-angle! (function quaternion vector vector float quaternion)) -;; (define-extern quaternion-from-two-vectors-max-angle-partial! function) ;; (function quaternion vector vector float float quaternion) -;; (define-extern matrix-from-two-vectors! function) ;; (function matrix vector vector matrix) -;; (define-extern matrix-from-two-vectors-max-angle! function) ;; (function matrix vector vector float matrix) -;; (define-extern matrix-from-two-vectors-smooth! function) ;; (function matrix vector vector float int matrix) -;; (define-extern matrix-from-two-vectors-the-long-way-smooth! function) ;; (function matrix vector vector float int matrix) -;; (define-extern quaternion-from-two-vectors-smooth! function) ;; (function quaternion vector vector float int quaternion) -;; (define-extern matrix-from-two-vectors-max-angle-partial! function) ;; (function matrix vector vector float float matrix) -;; (define-extern matrix-from-two-vectors-partial-linear! function) ;; (function matrix vector vector float matrix) -;; (define-extern matrix-remove-z-rot function) ;; (function matrix vector matrix) -;; (define-extern matrix-rot-diff! function) ;; (function vector matrix matrix float) -;; (define-extern quaternion-seek function) ;; (function quaternion quaternion quaternion float float quaternion) -;; (define-extern vector-deg-seek function) ;; (function vector vector vector float vector) -;; (define-extern vector-deg-slerp function) ;; (function vector vector vector float vector) -;; (define-extern vector-vector-deg-slerp! function) ;; (function vector vector vector float vector vector) -;; (define-extern normal-of-plane function) ;; (function vector vector vector vector vector) -;; (define-extern vector-3pt-cross! function) ;; (function vector vector vector vector vector) -;; (define-extern closest-pt-in-triangle function) ;; (function vector vector matrix vector none) -;; (define-extern point-in-triangle-cross function) ;; (function vector vector vector vector vector symbol) -;; (define-extern point-in-plane-<-point+normal! function) ;; (function vector vector vector vector) -;; (define-extern circle-circle-xz-intersect function) ;; (function sphere sphere vector vector int) -;; (define-extern circle-test function) ;; (function none) -;; (define-extern vector-circle-tangent-new function) ;; (function vector vector vector vector none) -;; (define-extern vector-circle-tangent function) ;; (function vector vector vector vector none) -;; (define-extern find-knot-span function) ;; (function int int float (inline-array vector) int) -;; (define-extern calculate-basis-functions-vector! function) ;; (function vector int float (pointer float) vector) -;; (define-extern curve-evaluate! function) ;; (function vector float (inline-array vector) int (pointer float) int vector) -;; (define-extern curve-get-pos! function) ;; (function vector float curve vector) -;; (define-extern curve-length function) ;; (function curve float) -;; (define-extern curve-copy! function) ;; (function curve curve curve) -;; (define-extern curve-closest-point function) ;; (function curve vector float float int float float) -;; (define-extern vector-plane-distance function) ;; (function vector plane vector float) -;; (define-extern intersect-ray-plane function) ;; (function vector vector vector vector float) -;; (define-extern line-line-find-intersection-xz function) -;; (define-extern segment-segment-find-intersection-xz function) -;; (define-extern generate-rand-vector-on-sphere function) +(define-extern vector-flatten! + "Get the projection of src onto a plane with the given normal + The normal should have magnitude 1.0." + (function vector vector vector vector)) +(define-extern vector-reflect! "Reflect a vector off of a plane." (function vector vector vector vector)) +(define-extern vector-reflect-flat! + "This is a weird one. It doesn't care about the value of src dot normal + and it effectively replaces the component of src normal to the plane with + the plane's normal. I think this requires src/normal to both be unit vectors + in order to make sense. + NOTE: src should point from positive halfspace to negative otherwise it + doesn't work." + (function vector vector vector vector)) +(define-extern vector-reflect-flat-above! + "Not really a reflect. Same as flatten." + (function vector vector vector vector)) +(define-extern vector-reflect-flat-gravity! (function vector vector vector vector vector)) +(define-extern vector-segment-distance-point! + "Compute the distance from a point to the closest point on the line segment. + arg0 is the point. arg1/arg2 are the endpoints of the line segment. + arg3 is an optional output closest point." + (function vector vector vector vector float)) +(define-extern vector-segment-xz-distance-point! (function vector vector vector vector float)) +(define-extern vector-line-distance + "Weird function: given a point arg1, and an infinite line connecting arg2 and arg1, compute the distance + from arg0 to that line." + (function vector vector vector float)) +(define-extern vector-line-distance-point! + "Same as above function, but returns the point on arg2/arg1 in arg3 (ignored if #f)" + (function vector vector vector vector float)) +(define-extern vector-line-xz-distance-point! (function vector vector vector vector float)) +(define-extern vector-segment-overlap + "Seems to compute (v1 - v0).dot(v2 - v1), but in a weird way." + (function vector vector vector float)) +(define-extern line-sphere-intersection? + "Does [arg1, arg2] intersect sphere arg0?" + (function vector vector vector symbol)) +(define-extern nearest-dist2-between-moving-points (function vector vector vector vector float float)) +(define-extern vector-orient-by-quat! + "Rotate a vector by a quaternion." + (function vector vector quaternion vector)) +(define-extern vector-inv-orient-by-quat! + "Rotate a vector by the inverse rotation." + (function vector vector quaternion vector)) +(define-extern forward-down->inv-matrix + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is down (-y). Will have the pitch of forward." + (function matrix vector vector matrix)) +(define-extern forward-down-nopitch->inv-matrix + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is down (-y). Will not use the pitch of forward." + (function matrix vector vector matrix)) +(define-extern forward-up->inv-matrix + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is up (+y). Will use the pitch of forward." + (function matrix vector vector matrix)) +(define-extern forward-up-nopitch->inv-matrix + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is up (+y). Will not use the pitch of forward." + (function matrix vector vector matrix)) +(define-extern forward-up-nopitch->quaternion + "Create a quaternion representing a transform where arg1 is forward (+z) + and arg2 is up (+y). Will not use the pitch of forward." + (function quaternion vector vector quaternion)) +(define-extern forward-up->quaternion + "Create a quaternion representing a transform where arg1 is forward (+z) + and arg2 is up (+y). Will use the pitch of forward." + (function quaternion vector vector quaternion)) +(define-extern quaternion-from-two-vectors! + "Create a quaternion representing the rotation between two vectors." + (function quaternion vector vector quaternion)) +(define-extern quaternion-from-two-vectors-partial! + "Create a quaternion representing the rotation between two vectors, + doing arg3 fraction of the total rotation." + (function quaternion vector vector float quaternion)) +(define-extern quaternion-from-two-vectors-max-angle! + "Create a quaternion representing the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (function quaternion vector vector float quaternion)) +(define-extern quaternion-from-two-vectors-max-angle-partial! + "Create a quaternion representing the arg4 fraction of the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (function quaternion vector vector float float quaternion)) +(define-extern matrix-from-two-vectors! + "Create a rotation matrix representing the rotation between two vectors." + (function matrix vector vector matrix)) +(define-extern matrix-from-two-vectors-max-angle! + "Create a rotation matrix representing the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (function matrix vector vector float matrix)) +(define-extern matrix-from-two-vectors-smooth! + "This function can help smoothly rotate from a current heading vector to a target one. + It returns a rotation to move arg1 closer to arg2, subject to two different speed limits. + arg3 is a rotations-per-frame rate. This limit takes frame rate into account (when lagging, the rotation is larger) + arg4 is a 'slow down when getting close to the end' limit. + This is used in rotate-toward-orientation, which is much improved from jak 1." + (function matrix vector vector float int matrix)) +(define-extern matrix-from-two-vectors-the-long-way-smooth! + "Same as above, but rotates you away from the target. + Note that the 'near the end' smoothing will apply when you're near the target." + (function matrix vector vector float int matrix)) +(define-extern quaternion-from-two-vectors-smooth! + "Same as above, but returns a quaternion." + (function quaternion vector vector float int quaternion)) +(define-extern matrix-from-two-vectors-max-angle-partial! + "Create a rotation matrix representing the given fraction of the rotation between two heading vectors, + rotating by at most the given angle." + (function matrix vector vector float float matrix)) +(define-extern matrix-from-two-vectors-partial-linear! + "Create a rotation matrix representing doing arg3 fraction of the rotation between two vectors." + (function matrix vector vector float matrix)) +(define-extern matrix-remove-z-rot "Remove the z rotation component of a rotation." (function matrix vector matrix)) +(define-extern matrix-rot-diff! + "Get the difference of rotation between two matrices, expressed as a quaternion." + (function vector matrix matrix float)) +(define-extern quaternion-seek + "Strange quaternion rotate toward function. arg3 is ignored. arg4 is the max seek amount." + (function quaternion quaternion quaternion float float quaternion)) +(define-extern vector-deg-seek + "Make one vector closer to another, doing at most a rotation by arg3 degrees." + (function vector vector vector float vector)) +(define-extern vector-deg-slerp + "Slerp for vectors. (imagine that they are the z axis of two frames)" + (function vector vector vector float vector)) +(define-extern vector-vector-deg-slerp! "Unused. No clue what this does." (function vector vector vector float vector vector)) +(define-extern normal-of-plane + "Given three points on a plane, compute the plane's normal." + (function vector vector vector vector vector)) +(define-extern vector-3pt-cross! + "Cross product of 2 - 1 and 3 - 1. (will give a normal to the plane, but not of magnitude 1)" + (function vector vector vector vector vector)) +(define-extern closest-pt-in-triangle + "arg2 is the vertices of the triangle, arg3 is the normal, arg1 is the input point, arg0 is the output." + (function vector vector matrix vector none)) +(define-extern point-in-triangle-cross + "Check if point is in the triangle using cross product check (so you have to get the order of points right)." + (function vector vector vector vector vector symbol)) +(define-extern point-in-plane-<-point+normal! + "Very strange function. Takes a plane, in point-normal form, then returns some other point on that plane. + It will move 1m in two of {x, y, z} directions. The direction not moved in is the one which is closest to point-in-triangle-cross + in the same direction of the normal (this prevent moving huge distances for nearly vertical planes for example)." + (function vector vector vector vector)) +(define-extern circle-circle-xz-intersect + "This function is unused and really complicated, so not implementing it for now." + (function sphere sphere vector vector int)) +(define-extern circle-test "Test the circle-circle-xz-intersect function." (function none)) +(define-extern vector-circle-tangent-new "Unused." (function vector vector vector vector none)) +(define-extern vector-circle-tangent "Also unused." (function vector vector vector vector none)) +(define-extern find-knot-span + "Binary serach over knots to find which contains the value float in (arg0 arg1). Unused." + (function int int float (inline-array vector) int)) +(define-extern calculate-basis-functions-vector! + "Calculate polynomial basis for a given control point." + (function vector int float (pointer float) vector)) +(define-extern curve-evaluate! + "Evaluate a curve. + arg0 is the output + arg1 is the input. + arg2 is control vertices. + arg3 is the number of control vertices. + arg4 is the knot points. + arg5 is the number of knots." + (function vector float (inline-array vector) int (pointer float) int vector)) +(define-extern curve-get-pos! + "Get the position on the curve at the given input." + (function vector float curve vector)) +(define-extern curve-length + "Compute the approximate curve length as the sum of distances between knots." + (function curve float)) +(define-extern curve-copy! "Shallow copy a curve." (function curve curve curve)) +(define-extern curve-closest-point + "Get the input value for the point on the curve. Approximate! And is O(n_knots)." + (function curve vector float float int float float)) +(define-extern vector-plane-distance "Unused." (function vector plane vector float)) +(define-extern intersect-ray-plane + "arg1 is ray direction, arg3 is plane normal, others don't really make sense to me." + (function vector vector vector vector float)) +(define-extern line-line-find-intersection-xz (function vector vector vector vector vector float)) +(define-extern segment-segment-find-intersection-xz (function vector vector vector vector float)) +(define-extern generate-rand-vector-on-sphere (function vector vector)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; timer ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern timer-count function) ;; (function timer-bank uint) -;; (define-extern disable-irq function) ;; (function none) -;; (define-extern enable-irq function) ;; (function none) -;; (define-extern stopwatch-init function) ;; (function stopwatch int) -;; (define-extern stopwatch-reset function) ;; (function stopwatch int) -;; (define-extern stopwatch-start function) ;; (function stopwatch int) -;; (define-extern stopwatch-stop function) ;; (function stopwatch none) -;; (define-extern stopwatch-begin function) ;; (function stopwatch int) -;; (define-extern stopwatch-end function) ;; (function stopwatch none) -;; (define-extern stopwatch-elapsed-ticks function) ;; (function stopwatch time-frame) -;; (define-extern stopwatch-elapsed-seconds function) ;; (function stopwatch float) +(define-extern timer-count (function timer-bank uint)) +(define-extern disable-irq (function none)) +(define-extern enable-irq (function none)) +(define-extern stopwatch-init (function stopwatch int)) +(define-extern stopwatch-reset (function stopwatch int)) +(define-extern stopwatch-start (function stopwatch int)) +(define-extern stopwatch-stop (function stopwatch none)) +(define-extern stopwatch-begin (function stopwatch int)) +(define-extern stopwatch-end (function stopwatch none)) +(define-extern stopwatch-elapsed-ticks (function stopwatch time-frame)) +(define-extern stopwatch-elapsed-seconds (function stopwatch float)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; vector ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(define-extern vector-cross! (function vector vector vector vector)) -(define-extern vector-xz-cross! (function vector vector vector vector)) -(define-extern vector+float! (function vector vector float vector)) -(define-extern vector*! (function vector vector vector vector)) -(define-extern vector+*! (function vector vector vector float vector)) -(define-extern vector-*! (function vector vector vector float vector)) -(define-extern vector/! (function vector vector vector vector)) -(define-extern vector-float*! (function vector vector float vector)) -(define-extern vector-average! (function vector vector vector vector)) -(define-extern vector+float*! (function vector vector vector float vector)) -(define-extern vector--float*! (function vector vector vector float vector)) -(define-extern vector-min! function) -(define-extern vector-max! function) -(define-extern vector-float/! (function vector vector float vector)) -(define-extern vector-negate! (function vector vector vector)) -(define-extern vector-negate-in-place! (function vector vector)) -(define-extern vector= (function vector vector symbol)) -(define-extern vector-delta (function vector vector float)) -(define-extern vector-seek! (function vector vector float vector)) -(define-extern vector-smooth-seek! (function vector vector float vector)) -(define-extern vector-seek-2d-xz-smooth! (function vector vector float float vector)) -(define-extern vector-seek-2d-yz-smooth! (function vector vector float float vector)) -(define-extern vector-seek-3d-smooth! (function vector vector float float vector)) -(define-extern seek-with-smooth (function float float float float float float)) -(define-extern vector-identity! (function vector vector)) -(define-extern vector-seconds (function vector vector vector)) -(define-extern vector-seconds! (function vector vector)) -(define-extern vector-v! (function vector vector)) -(define-extern vector-v+! (function vector vector vector vector)) -(define-extern vector-v*float+! (function vector vector vector float vector)) -(define-extern vector-v++! (function vector vector vector)) -(define-extern vector-v*float! (function vector vector float vector)) -(define-extern vector-v*float++! (function vector vector float vector)) -(define-extern vector-to-ups! (function vector vector vector)) -(define-extern vector-from-ups! (function vector vector vector)) -(define-extern vector-length (function vector float)) -(define-extern vector-length-squared (function vector float)) -(define-extern vector-xz-length-squared (function vector float)) -(define-extern vector-xz-length (function vector float)) -(define-extern vector-vector-distance (function vector vector float)) -(define-extern vector-vector-distance-squared (function vector vector float)) -(define-extern vector-vector-xz-distance (function vector vector float)) -(define-extern vector-vector-xy-distance (function vector vector float)) -(define-extern vector-vector-xz-distance-squared (function vector vector float)) -(define-extern vector-vector-planar-distance function) -(define-extern vector-normalize! (function vector float vector)) -(define-extern vector-normalize-ret-len! (function vector float float)) -(define-extern vector-normalize-copy! (function vector vector float vector)) -(define-extern vector-xz-normalize! (function vector float vector)) -(define-extern vector-xz-normalize-copy! (function vector vector float vector)) -(define-extern vector-length-max! (function vector float vector)) -(define-extern vector-xz-length-max! (function vector float vector)) -(define-extern vector-rotate-around-x! (function vector vector float vector)) -(define-extern vector-rotate-around-y! (function vector vector float vector)) -(define-extern vector-rotate90-around-y! (function vector vector vector)) -(define-extern vector-rotate-around-z! (function vector vector float vector)) -(define-extern rotate-y<-vector+vector (function vector vector float)) -(define-extern rotate-x<-vector+vector (function vector vector float)) -(define-extern rotate-z<-vector+vector (function vector vector float)) -(define-extern rotate-vector-to-vector function) -(define-extern vector-cvt.w.s! (function vector vector vector)) -(define-extern vector-cvt.s.w! (function vector vector vector)) -(define-extern rot-zxy-from-vector! (function vector vector vector)) -(define-extern rot-zyx-from-vector! (function vector vector vector)) -(define-extern vector-lerp! (function vector vector vector float vector)) -(define-extern vector-lerp-clamp! (function vector vector vector float vector)) -(define-extern vector4-lerp! (function vector vector vector float vector)) -(define-extern vector4-lerp-clamp! (function vector vector vector float vector)) -(define-extern vector-degi (function vector vector vector)) -(define-extern vector-degf (function vector vector vector)) -(define-extern vector-degmod (function vector vector vector)) -(define-extern vector-deg-diff (function vector vector vector none)) -(define-extern vector-deg-lerp-clamp! (function vector vector vector float vector)) +(define-extern vector-cross! + "Compute the cross product. The w component is set to junk." + (function vector vector vector vector)) +(define-extern vector-xz-cross! + "Compute the cross product of the xz components of inputs." + (function vector vector vector vector)) +(define-extern vector+float! + "Add float to each component of vector. The w component is set to 1" + (function vector vector float vector)) +(define-extern vector*! "Elementwise product. Set w = 1." (function vector vector vector vector)) +(define-extern vector+*! + "set arg0 = arg1 + (arg3 * arg2). The w component will be set to 1." + (function vector vector vector float vector)) +(define-extern vector-*! + "Set arg0 = arg1 - (arg3 * arg2). The w component will be set to 1." + (function vector vector vector float vector)) +(define-extern vector/! + "Set arg0 = arg1 / arg2. The w component will be set to 1. + The implementation is kind of crazy." + (function vector vector vector vector)) +(define-extern vector-float*! + "Multiply all values in a vector by arg2. Set w to 1." + (function vector vector float vector)) +(define-extern vector-average! + "Set arg0 to the average of arg1 and arg2. Set w to 1." + (function vector vector vector vector)) +(define-extern vector+float*! "arg0 = arg1 + arg2 * arg3." (function vector vector vector float vector)) +(define-extern vector--float*! + "Set arg0 = arg1 - (arg2 * arg3). The w component will be set to 1. + Is this different from vector-*!" + (function vector vector vector float vector)) +(define-extern vector-min! (function vector vector vector vector)) +(define-extern vector-max! (function vector vector vector vector)) +(define-extern vector-float/! + "Divide all components by arg2. The w component will be set to 1." + (function vector vector float vector)) +(define-extern vector-negate! "Negate xyz, set w to 1." (function vector vector vector)) +(define-extern vector-negate-in-place! "Negate xyz. Doesn't touch w." (function vector vector)) +(define-extern vector= + "Are the two vectors equal? Does not compare the w component. + The implementation is cool." + (function vector vector symbol)) +(define-extern vector-delta + "Sum of the elementwise absolute value of differences." + (function vector vector float)) +(define-extern vector-seek! + "Seek arg0 toward arg1. The arg0 is both read and written. + arg2 is saturated to (0, 1)" + (function vector vector float vector)) +(define-extern vector-smooth-seek! + "Smoothly seek vec toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a _square_ with side length arg2. + Note that this doesn't project to a circle like the function below..." + (function vector vector float vector)) +(define-extern vector-seek-2d-xz-smooth! + "Smoothly seek vec's x and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch y or w." + (function vector vector float float vector)) +(define-extern vector-seek-2d-yz-smooth! + "Smoothly seek vec's y and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch x or w." + (function vector vector float float vector)) +(define-extern vector-seek-3d-smooth! + "Smoothly seek vec's x, y, and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch w." + (function vector vector float float vector)) +(define-extern seek-with-smooth + "Move value closer to target. + If we are within deadband, just go straight to target. + If not, try to go alpha*err. If that is a larger step than max-step, limit to max-step" + (function float float float float float float)) +(define-extern vector-identity! "Set arg0 to 1, 1, 1, 1." (function vector vector)) +(define-extern vector-seconds + "Convert from actual seconds to the seconds unit." + (function vector vector vector)) +(define-extern vector-seconds! + "Convert from actual seconds to seconds, in place." + (function vector vector)) +(define-extern vector-v! + "Convert a velocity to a displacement per frame. The velocity should be in X/actual_second. + Uses the current process clock." + (function vector vector)) +(define-extern vector-v+! + "Euler forward step, using the current display time settings." + (function vector vector vector vector)) +(define-extern vector-v*float+! + "Euler forward step, scaling velocity by velocity-scale." + (function vector vector vector float vector)) +(define-extern vector-v++! + "Update position in place, using display's current timing." + (function vector vector vector)) +(define-extern vector-v*float! + "Go from velocity to delta-p per frame, scaling by scale." + (function vector vector float vector)) +(define-extern vector-v*float++! + "Update position with given velocity, scaled by scale." + (function vector vector float vector)) +(define-extern vector-to-ups! + "Go from units per frame to units per second?" + (function vector vector vector)) +(define-extern vector-from-ups! + "Go from units per second to units per frame?" + (function vector vector vector)) +(define-extern vector-length + "Get the length of the xyz part." + (function vector float)) +(define-extern vector-length-squared + "Get the squared length of the xyz part." + (function vector float)) +(define-extern vector-xz-length-squared + "Get the length of the xz part, squared." + (function vector float)) +(define-extern vector-xz-length "Get the length of the xz part." (function vector float)) +(define-extern vector-vector-distance + "Subtract the xyz parts and get the norm." + (function vector vector float)) +(define-extern vector-vector-distance-squared + "Squared norm of the difference of the xyz parts." + (function vector vector float)) +(define-extern vector-vector-xz-distance "Distance on the xz plane." (function vector vector float)) +(define-extern vector-vector-xy-distance "distance on the xy plane." (function vector vector float)) +(define-extern vector-vector-xz-distance-squared "Distance on the xz plane squared." (function vector vector float)) +(define-extern vector-vector-planar-distance (function vector vector vector float)) +(define-extern vector-normalize! + "Modify arg0 in place to have length arg1 for its xyz components. The w part is not changed." + (function vector float vector)) +(define-extern vector-normalize-ret-len! + "Modify arg0 in place to have length arg1 for its xyz components. + The w part isn't changed and the _original_ length is returned." + (function vector float float)) +(define-extern vector-normalize-copy! + "Normalize, but not in place. + This implementation is very good compared to the vector-normalize! one. + The w component is set to 1." + (function vector vector float vector)) +(define-extern vector-xz-normalize! "Normalize, xz components only." (function vector float vector)) +(define-extern vector-xz-normalize-copy! "Normalize, xz components only." (function vector vector float vector)) +(define-extern vector-length-max! + "Make vector at most arg1 length (xyz only). + If it is larger, project onto sphere. + Doesn't touch w" + (function vector float vector)) +(define-extern vector-xz-length-max! + "Make vector at most arg1 length (xz only). + It it is larger, project onto circle. + Doesn't touch w or y." + (function vector float vector)) +(define-extern vector-rotate-around-x! "Rotate a vector around the x axis." (function vector vector float vector)) +(define-extern vector-rotate-around-y! "Rotate a vector around the y axis." (function vector vector float vector)) +(define-extern vector-rotate90-around-y! "Rotate a vector 90 degrees around y." (function vector vector vector)) +(define-extern vector-rotate-around-z! "Rotate a vector around the z axis." (function vector vector float vector)) +(define-extern rotate-y<-vector+vector + "Get the y rotation between vectors. These should have the same length." + (function vector vector float)) +(define-extern rotate-x<-vector+vector + "Get the x rotation between vectors. These should have the same length." + (function vector vector float)) +(define-extern rotate-z<-vector+vector + "Get the z rotation between vectors. These should have the same length." + (function vector vector float)) +(define-extern rotate-vector-to-vector (function vector vector vector vector)) +(define-extern vector-cvt.w.s! "Convert float to int32. Truncate." (function vector vector vector)) +(define-extern vector-cvt.s.w! "Convert float to int32." (function vector vector vector)) +(define-extern rot-zxy-from-vector! + "I think this gives you a vector of euler angles to rotate some unit vector + to arg1." + (function vector vector vector)) +(define-extern rot-zyx-from-vector! + "I think this gives you a vector of euler angles to rotate some unit vector + to arg1." + (function vector vector vector)) +(define-extern vector-lerp! + "Linearly interpolate between two vectors. Alpha isn't clamped. + w will be set to 1." + (function vector vector vector float vector)) +(define-extern vector-lerp-clamp! + "Linearly interpolate between two vectors, clamping alpha to 0, 1. + w will be set to 1." + (function vector vector vector float vector)) +(define-extern vector4-lerp! + "Interpolate all 4 elements of a vector. Alpha is not clamped." + (function vector vector vector float vector)) +(define-extern vector4-lerp-clamp! + "Interpolate all 4 elements of a vector. Alpha is clamped to [0, 1]." + (function vector vector vector float vector)) +(define-extern vector-degi + "Convert a vector (in _rotations_) to degrees units, stored in an int. + Truncates to the nearest _rotation_. + Neither the input or output is a commonly used form. + Unsurprisingly, this strange function is never used." + (function vector vector vector)) +(define-extern vector-degf + "Convert a vector (in integer degree units) to floating point rotations. + Truncates to the nearest _rotation_. + Like the previous function, this is stupid and unused." + (function vector vector vector)) +(define-extern vector-degmod + "This one is actually right. Wraps degrees units (in floats, like they should be) + to +/- half a rotation." + (function vector vector vector)) +(define-extern vector-deg-diff + "Wrapped difference, degrees units. Will have the usual 16-bit accuracy issue." + (function vector vector vector none)) +(define-extern vector-deg-lerp-clamp! + "Apply deg-lerp-clamp to the xyz components of a vector. Sets w = 1." + (function vector vector vector float vector)) (define-extern vector3s-copy! (function vector vector vector)) (define-extern vector3s+! (function vector vector vector vector)) (define-extern vector3s*float! (function vector vector float vector)) (define-extern vector3s-! (function vector vector vector vector)) -(define-extern vector4-add! (function vector4 vector4 vector4 none)) -(define-extern vector4-sub! (function vector4 vector4 vector4 none)) -(define-extern vector4-mul! (function vector4 vector4 vector4 none)) -(define-extern vector4-scale! (function vector4 vector4 float none)) -(define-extern vector4-madd! (function vector4 vector4 vector4 float none)) -(define-extern vector4-msub! (function vector4 vector4 vector4 float none)) -(define-extern vector4-array-add! (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none)) -(define-extern vector4-array-sub! (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none)) -(define-extern vector4-array-mul! (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none)) -(define-extern vector4-array-scale! (function (inline-array vector4) (inline-array vector4) float int none)) -(define-extern vector4-array-madd! (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int none)) -(define-extern vector4-array-msub! (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int none)) -(define-extern vector4-array-lerp! (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int symbol)) -(define-extern spheres-overlap? (function sphere sphere symbol)) -(define-extern sphere<-vector! (function sphere vector sphere)) -(define-extern sphere<-vector+r! (function sphere vector float sphere)) -(define-extern rand-vu-sphere-point! (function vector float vector)) -(define-extern rand-vu-sphere-point-uniform! function) -(define-extern vector-vector-angle-safe (function vector vector float)) +(define-extern vector4-add! "Add 2 vector4s." (function vector4 vector4 vector4 none)) +(define-extern vector4-sub! "Subtract 2 vector4s." (function vector4 vector4 vector4 none)) +(define-extern vector4-mul! "Multiple 2 vector4s." (function vector4 vector4 vector4 none)) +(define-extern vector4-scale! "arg0 = arg1 * arg2." (function vector4 vector4 float none)) +(define-extern vector4-madd! "arg0 = arg1 + arg2 * arg3." (function vector4 vector4 vector4 float none)) +(define-extern vector4-msub! "arg0 = arg1 - arg2 * arg3." (function vector4 vector4 vector4 float none)) +(define-extern vector4-array-add! "Apply vector4-add! to all arrays." (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none)) +(define-extern vector4-array-sub! "Apply vector4-sub! to all arrays." (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none)) +(define-extern vector4-array-mul! "Apply vector4-mul! to all arrays." (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none)) +(define-extern vector4-array-scale! "Apply vector4-scale! to all arrays." (function (inline-array vector4) (inline-array vector4) float int none)) +(define-extern vector4-array-madd! "Apply vector4-madd! to all arrays." (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int none)) +(define-extern vector4-array-msub! "Apply vector4-msub! to all arrays." (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int none)) +(define-extern vector4-array-lerp! "Apply vector4-lerp! to all arrays." (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int symbol)) +(define-extern spheres-overlap? "Do the spheres overlap?" (function sphere sphere symbol)) +(define-extern sphere<-vector! + "Set the position of the sphere to arg1. Does not change the radius." + (function sphere vector sphere)) +(define-extern sphere<-vector+r! + "Set the position of the sphere from arg1 and the radius from arg2." + (function sphere vector float sphere)) +(define-extern rand-vu-sphere-point! + "Get a random point on the sphere at the origin with radius arg1. + The point is on the surface of the sphere." + (function vector float vector)) +(define-extern rand-vu-sphere-point-uniform! (function vector float vector)) +(define-extern vector-vector-angle-safe + "Get the angle between two vectors, with some 'safety' applied..." + (function vector vector float)) (define-extern vector-get-unique! (function vector vector vector)) (define-extern vector-get-closest-perpendicular! (function vector vector vector vector)) @@ -6482,6 +6790,915 @@ ;; text-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +++text-h:text-id +(defenum text-id + :type uint32 + (null #x0) + (text-0001 #x0001) + (text-0002 #x0002) + (text-0003 #x0003) + (text-0004 #x0004) + (text-0005 #x0005) + (text-0006 #x0006) + (text-0007 #x0007) + (text-0008 #x0008) + (text-0009 #x0009) + (text-000a #x000a) + (text-000b #x000b) + (text-000c #x000c) + (text-000d #x000d) + (text-000e #x000e) + (text-000f #x000f) + (text-0010 #x0010) + (text-0011 #x0011) + (text-0012 #x0012) + (text-0013 #x0013) + (text-0014 #x0014) + (text-0015 #x0015) + (text-0016 #x0016) + (text-0017 #x0017) + (text-0018 #x0018) + (text-0019 #x0019) + (text-001a #x001a) + (text-001b #x001b) + (text-001c #x001c) + (text-001d #x001d) + (text-001e #x001e) + (text-001f #x001f) + (text-0020 #x0020) + (text-0021 #x0021) + (text-0022 #x0022) + (text-0023 #x0023) + (text-0024 #x0024) + (text-0025 #x0025) + (text-0026 #x0026) + (text-0027 #x0027) + (text-0028 #x0028) + (text-0029 #x0029) + (text-002a #x002a) + (text-002b #x002b) + (text-002c #x002c) + (text-002d #x002d) + (text-002e #x002e) + (text-002f #x002f) + (text-0030 #x0030) + (text-0031 #x0031) + (text-0032 #x0032) + (text-0033 #x0033) + (text-0034 #x0034) + (text-0035 #x0035) + (text-0036 #x0036) + (text-0037 #x0037) + (text-0038 #x0038) + (text-0039 #x0039) + (text-003a #x003a) + (text-003b #x003b) + (text-003c #x003c) + (text-003d #x003d) + (text-003e #x003e) + (text-003f #x003f) + (text-0040 #x0040) + (text-0041 #x0041) + (text-0042 #x0042) + (text-0043 #x0043) + (text-0044 #x0044) + (text-0049 #x0049) + (text-004a #x004a) + (text-004b #x004b) + (text-004c #x004c) + (text-004d #x004d) + (text-0052 #x0052) + (text-0053 #x0053) + (text-0054 #x0054) + (text-0055 #x0055) + (text-0056 #x0056) + (text-0057 #x0057) + (text-0058 #x0058) + (text-0059 #x0059) + (text-005a #x005a) + (text-005b #x005b) + (text-005c #x005c) + (text-005d #x005d) + (text-005e #x005e) + (text-005f #x005f) + (text-0060 #x0060) + (text-0061 #x0061) + (text-0062 #x0062) + (text-0063 #x0063) + (text-0065 #x0065) + (text-0066 #x0066) + (text-0067 #x0067) + (text-0068 #x0068) + (text-0069 #x0069) + (text-006a #x006a) + (text-006b #x006b) + (text-006c #x006c) + (text-006d #x006d) + (text-006e #x006e) + (text-006f #x006f) + (text-0072 #x0072) + (text-0073 #x0073) + (text-0074 #x0074) + (text-0075 #x0075) + (text-0076 #x0076) + (text-0077 #x0077) + (text-0078 #x0078) + (text-0079 #x0079) + (text-007a #x007a) + (text-007b #x007b) + (text-007c #x007c) + (text-007d #x007d) + (text-007e #x007e) + (text-007f #x007f) + (text-0080 #x0080) + (text-0081 #x0081) + (text-0082 #x0082) + (text-0083 #x0083) + (text-0084 #x0084) + (text-0085 #x0085) + (text-0086 #x0086) + (text-0087 #x0087) + (text-0088 #x0088) + (text-0089 #x0089) + (text-008a #x008a) + (text-008b #x008b) + (text-008c #x008c) + (text-008d #x008d) + (text-008e #x008e) + (text-008f #x008f) + (text-0090 #x0090) + (text-0091 #x0091) + (text-0092 #x0092) + (text-0093 #x0093) + (text-0094 #x0094) + (text-0095 #x0095) + (text-0096 #x0096) + (text-0097 #x0097) + (text-0098 #x0098) + (text-0099 #x0099) + (text-009a #x009a) + (text-009b #x009b) + (text-009c #x009c) + (text-009d #x009d) + (text-009e #x009e) + (text-009f #x009f) + (text-00a0 #x00a0) + (text-00a1 #x00a1) + (text-00a2 #x00a2) + (text-00a3 #x00a3) + (text-00a4 #x00a4) + (text-00a5 #x00a5) + (text-00a6 #x00a6) + (text-00a7 #x00a7) + (text-00a8 #x00a8) + (text-00a9 #x00a9) + (text-00aa #x00aa) + (text-00ab #x00ab) + (text-00ac #x00ac) + (text-00ad #x00ad) + (text-00ae #x00ae) + (text-00af #x00af) + (text-00b0 #x00b0) + (text-00b1 #x00b1) + (text-00b2 #x00b2) + (text-00b3 #x00b3) + (text-00b4 #x00b4) + (text-00b5 #x00b5) + (text-00b6 #x00b6) + (text-012c #x012c) + (text-012d #x012d) + (text-012e #x012e) + (text-012f #x012f) + (text-0130 #x0130) + (text-0131 #x0131) + (text-0132 #x0132) + (text-0134 #x0134) + (text-0135 #x0135) + (text-0136 #x0136) + (text-0137 #x0137) + (text-0138 #x0138) + (text-0139 #x0139) + (text-013a #x013a) + (text-013b #x013b) + (text-013c #x013c) + (text-013d #x013d) + (text-013e #x013e) + (text-013f #x013f) + (text-0140 #x0140) + (text-0141 #x0141) + (text-0142 #x0142) + (text-0143 #x0143) + (text-0144 #x0144) + (text-0145 #x0145) + (text-0147 #x0147) + (text-0155 #x0155) + (text-0156 #x0156) + (text-0157 #x0157) + (text-0158 #x0158) + (text-01b8 #x01b8) + (text-0207 #x0207) + (text-0208 #x0208) + (text-0209 #x0209) + (text-020a #x020a) + (text-020b #x020b) + (text-020c #x020c) + (text-020d #x020d) + (text-020e #x020e) + (text-03bf #x03bf) + (text-03c0 #x03c0) + (text-03c1 #x03c1) + (text-03c2 #x03c2) + (text-03c3 #x03c3) + (text-03c4 #x03c4) + (text-03c5 #x03c5) + (text-03c6 #x03c6) + (text-03c7 #x03c7) + (text-03c8 #x03c8) + (text-03c9 #x03c9) + (text-03d1 #x03d1) + (text-0408 #x0408) + (text-0409 #x0409) + (text-040a #x040a) + (text-040b #x040b) + (text-040c #x040c) + (text-040d #x040d) + (text-040e #x040e) + (text-0443 #x0443) + (text-0444 #x0444) + (text-0445 #x0445) + (text-0446 #x0446) + (text-0447 #x0447) + (text-0448 #x0448) + (text-0449 #x0449) + (text-044b #x044b) + (text-044c #x044c) + (text-044d #x044d) + (text-044e #x044e) + (text-044f #x044f) + (text-0450 #x0450) + (text-0451 #x0451) + (text-0452 #x0452) + (text-0453 #x0453) + (text-0454 #x0454) + (text-0456 #x0456) + (text-0457 #x0457) + (text-0458 #x0458) + (text-0459 #x0459) + (text-045a #x045a) + (text-045b #x045b) + (text-045c #x045c) + (text-045d #x045d) + (text-045e #x045e) + (text-045f #x045f) + (text-0460 #x0460) + (text-0461 #x0461) + (text-0462 #x0462) + (text-0463 #x0463) + (text-0464 #x0464) + (text-0465 #x0465) + (text-0466 #x0466) + (text-0467 #x0467) + (text-0468 #x0468) + (text-0469 #x0469) + (text-046a #x046a) + (text-046b #x046b) + (text-053d #x053d) + (text-053e #x053e) + (text-0546 #x0546) + (text-0547 #x0547) + (text-0548 #x0548) + (text-0549 #x0549) + (text-054a #x054a) + (text-054b #x054b) + (text-054c #x054c) + (text-054d #x054d) + (text-054e #x054e) + (text-054f #x054f) + (text-0550 #x0550) + (text-0551 #x0551) + (text-0552 #x0552) + (text-0553 #x0553) + (text-0554 #x0554) + (text-0555 #x0555) + (text-0556 #x0556) + (text-0557 #x0557) + (text-0558 #x0558) + (text-0559 #x0559) + (text-055a #x055a) + (text-055b #x055b) + (text-055c #x055c) + (text-055d #x055d) + (text-055e #x055e) + (text-055f #x055f) + (text-0562 #x0562) + (text-0563 #x0563) + (text-0564 #x0564) + (text-0565 #x0565) + (text-0566 #x0566) + (text-0567 #x0567) + (text-0568 #x0568) + (text-0569 #x0569) + (text-056a #x056a) + (text-056b #x056b) + (text-056c #x056c) + (text-056d #x056d) + (text-056e #x056e) + (text-056f #x056f) + (text-0570 #x0570) + (text-0571 #x0571) + (text-0572 #x0572) + (text-0573 #x0573) + (text-0574 #x0574) + (text-0575 #x0575) + (text-0576 #x0576) + (text-0577 #x0577) + (text-0578 #x0578) + (text-0579 #x0579) + (text-057a #x057a) + (text-057b #x057b) + (text-057c #x057c) + (text-057d #x057d) + (text-057e #x057e) + (text-057f #x057f) + (text-0580 #x0580) + (text-0581 #x0581) + (text-0582 #x0582) + (text-0583 #x0583) + (text-0584 #x0584) + (text-0585 #x0585) + (text-0586 #x0586) + (text-0587 #x0587) + (text-0588 #x0588) + (text-0589 #x0589) + (text-058a #x058a) + (text-058b #x058b) + (text-058c #x058c) + (text-058d #x058d) + (text-058e #x058e) + (text-058f #x058f) + (text-0590 #x0590) + (text-0591 #x0591) + (text-0592 #x0592) + (text-0593 #x0593) + (text-0594 #x0594) + (text-0595 #x0595) + (text-0596 #x0596) + (text-0597 #x0597) + (text-0598 #x0598) + (text-0599 #x0599) + (text-059a #x059a) + (text-059b #x059b) + (text-059c #x059c) + (text-059d #x059d) + (text-059e #x059e) + (text-059f #x059f) + (text-05a0 #x05a0) + (text-05a1 #x05a1) + (text-05a3 #x05a3) + (text-05a4 #x05a4) + (text-05a6 #x05a6) + (text-05a7 #x05a7) + (text-05a8 #x05a8) + (text-05a9 #x05a9) + (text-05aa #x05aa) + (text-05ab #x05ab) + (text-05ac #x05ac) + (text-05ad #x05ad) + (text-05ae #x05ae) + (text-05af #x05af) + (text-05b0 #x05b0) + (text-05b1 #x05b1) + (text-05b2 #x05b2) + (text-05b3 #x05b3) + (text-05b4 #x05b4) + (text-05b5 #x05b5) + (text-05b6 #x05b6) + (text-05b7 #x05b7) + (text-05b8 #x05b8) + (text-05b9 #x05b9) + (text-05ba #x05ba) + (text-05bb #x05bb) + (text-05bc #x05bc) + (text-05bd #x05bd) + (text-05be #x05be) + (text-05bf #x05bf) + (text-05c0 #x05c0) + (text-05c1 #x05c1) + (text-05c2 #x05c2) + (text-05c3 #x05c3) + (text-05c4 #x05c4) + (text-05c5 #x05c5) + (text-05c6 #x05c6) + (text-05c7 #x05c7) + (text-05c8 #x05c8) + (text-05c9 #x05c9) + (text-05ca #x05ca) + (text-05cb #x05cb) + (text-05cc #x05cc) + (text-05cd #x05cd) + (text-05ce #x05ce) + (text-05cf #x05cf) + (text-05d0 #x05d0) + (text-05d1 #x05d1) + (text-05d2 #x05d2) + (text-05d3 #x05d3) + (text-05d4 #x05d4) + (text-05d5 #x05d5) + (text-05d6 #x05d6) + (text-05d7 #x05d7) + (text-05d8 #x05d8) + (text-05d9 #x05d9) + (text-05da #x05da) + (text-05db #x05db) + (text-05dc #x05dc) + (text-05dd #x05dd) + (text-05de #x05de) + (text-05df #x05df) + (text-05e0 #x05e0) + (text-05e1 #x05e1) + (text-05e2 #x05e2) + (text-05e3 #x05e3) + (text-05e4 #x05e4) + (text-05e5 #x05e5) + (text-05e6 #x05e6) + (text-05e7 #x05e7) + (text-05e8 #x05e8) + (text-05e9 #x05e9) + (text-05ea #x05ea) + (text-05eb #x05eb) + (text-05ec #x05ec) + (text-05ed #x05ed) + (text-05ee #x05ee) + (text-05f0 #x05f0) + (text-05f1 #x05f1) + (text-05f2 #x05f2) + (text-05f3 #x05f3) + (text-05f5 #x05f5) + (text-05f6 #x05f6) + (text-05f7 #x05f7) + (text-05f8 #x05f8) + (text-05f9 #x05f9) + (text-05fa #x05fa) + (text-05fb #x05fb) + (text-05fc #x05fc) + (text-05fd #x05fd) + (text-05fe #x05fe) + (text-05ff #x05ff) + (text-0600 #x0600) + (text-0601 #x0601) + (text-0602 #x0602) + (text-0603 #x0603) + (text-0604 #x0604) + (text-0605 #x0605) + (text-0606 #x0606) + (text-0607 #x0607) + (text-0608 #x0608) + (text-0609 #x0609) + (text-060a #x060a) + (text-060b #x060b) + (text-060c #x060c) + (text-060d #x060d) + (text-060e #x060e) + (text-060f #x060f) + (text-0610 #x0610) + (text-0611 #x0611) + (text-0612 #x0612) + (text-0613 #x0613) + (text-0614 #x0614) + (text-0615 #x0615) + (text-0616 #x0616) + (text-0617 #x0617) + (text-0618 #x0618) + (text-0619 #x0619) + (text-061a #x061a) + (text-061b #x061b) + (text-061c #x061c) + (text-061d #x061d) + (text-061e #x061e) + (text-061f #x061f) + (text-0620 #x0620) + (text-0621 #x0621) + (text-0622 #x0622) + (text-0623 #x0623) + (text-0624 #x0624) + (text-0625 #x0625) + (text-0626 #x0626) + (text-0627 #x0627) + (text-0628 #x0628) + (text-0629 #x0629) + (text-062a #x062a) + (text-062b #x062b) + (text-062c #x062c) + (text-062d #x062d) + (text-062e #x062e) + (text-0630 #x0630) + (text-0631 #x0631) + (text-0632 #x0632) + (text-0633 #x0633) + (text-0634 #x0634) + (text-0635 #x0635) + (text-0636 #x0636) + (text-0637 #x0637) + (text-0638 #x0638) + (text-0639 #x0639) + (text-063a #x063a) + (text-063b #x063b) + (text-063d #x063d) + (text-063e #x063e) + (text-063f #x063f) + (text-0640 #x0640) + (text-0641 #x0641) + (text-0642 #x0642) + (text-0643 #x0643) + (text-0644 #x0644) + (text-0645 #x0645) + (text-0646 #x0646) + (text-0647 #x0647) + (text-0648 #x0648) + (text-0649 #x0649) + (text-064a #x064a) + (text-064b #x064b) + (text-064c #x064c) + (text-064d #x064d) + (text-064e #x064e) + (text-064f #x064f) + (text-0650 #x0650) + (text-0651 #x0651) + (text-0652 #x0652) + (text-0653 #x0653) + (text-0654 #x0654) + (text-0655 #x0655) + (text-0656 #x0656) + (text-0657 #x0657) + (text-0658 #x0658) + (text-0659 #x0659) + (text-065a #x065a) + (text-065b #x065b) + (text-065c #x065c) + (text-065d #x065d) + (text-065e #x065e) + (text-065f #x065f) + (text-0660 #x0660) + (text-0661 #x0661) + (text-0662 #x0662) + (text-0663 #x0663) + (text-0664 #x0664) + (text-0665 #x0665) + (text-0666 #x0666) + (text-0667 #x0667) + (text-0668 #x0668) + (text-0669 #x0669) + (text-066a #x066a) + (text-066b #x066b) + (text-066c #x066c) + (text-066d #x066d) + (text-066e #x066e) + (text-066f #x066f) + (text-0670 #x0670) + (text-0671 #x0671) + (text-0672 #x0672) + (text-0673 #x0673) + (text-0674 #x0674) + (text-0675 #x0675) + (text-0676 #x0676) + (text-0677 #x0677) + (text-0678 #x0678) + (text-0679 #x0679) + (text-067a #x067a) + (text-067b #x067b) + (text-067c #x067c) + (text-067d #x067d) + (text-067e #x067e) + (text-067f #x067f) + (text-0680 #x0680) + (text-0681 #x0681) + (text-0682 #x0682) + (text-0683 #x0683) + (text-0684 #x0684) + (text-0685 #x0685) + (text-0686 #x0686) + (text-0687 #x0687) + (text-0688 #x0688) + (text-0689 #x0689) + (text-068a #x068a) + (text-068b #x068b) + (text-068c #x068c) + (text-068d #x068d) + (text-068e #x068e) + (text-068f #x068f) + (text-0690 #x0690) + (text-0691 #x0691) + (text-0692 #x0692) + (text-0693 #x0693) + (text-0694 #x0694) + (text-0695 #x0695) + (text-0696 #x0696) + (text-0697 #x0697) + (text-0698 #x0698) + (text-0699 #x0699) + (text-069a #x069a) + (text-069b #x069b) + (text-069c #x069c) + (text-069d #x069d) + (text-069e #x069e) + (text-069f #x069f) + (text-06a0 #x06a0) + (text-06a1 #x06a1) + (text-06a2 #x06a2) + (text-06a3 #x06a3) + (text-06a4 #x06a4) + (text-06a5 #x06a5) + (text-06a6 #x06a6) + (text-06a7 #x06a7) + (text-06a8 #x06a8) + (text-06a9 #x06a9) + (text-06aa #x06aa) + (text-06ab #x06ab) + (text-06ac #x06ac) + (text-06ad #x06ad) + (text-06ae #x06ae) + (text-06af #x06af) + (text-06b0 #x06b0) + (text-06b1 #x06b1) + (text-06b2 #x06b2) + (text-06b3 #x06b3) + (text-06b4 #x06b4) + (text-06b5 #x06b5) + (text-06b6 #x06b6) + (text-06b7 #x06b7) + (text-06b8 #x06b8) + (text-06b9 #x06b9) + (text-06ba #x06ba) + (text-06bb #x06bb) + (text-06bc #x06bc) + (text-06bd #x06bd) + (text-06be #x06be) + (text-06bf #x06bf) + (text-06c0 #x06c0) + (text-06c1 #x06c1) + (text-06c2 #x06c2) + (text-06c3 #x06c3) + (text-06c4 #x06c4) + (text-06c5 #x06c5) + (text-06c6 #x06c6) + (text-06c7 #x06c7) + (text-06c8 #x06c8) + (text-06c9 #x06c9) + (text-06ca #x06ca) + (text-06de #x06de) + (text-06df #x06df) + (text-06e0 #x06e0) + (text-06e1 #x06e1) + (text-06e2 #x06e2) + (text-06e3 #x06e3) + (text-06e4 #x06e4) + (text-06e5 #x06e5) + (text-06e6 #x06e6) + (text-06e7 #x06e7) + (text-06e8 #x06e8) + (text-06e9 #x06e9) + (text-06ea #x06ea) + (text-06eb #x06eb) + (text-06ec #x06ec) + (text-06ed #x06ed) + (text-06ee #x06ee) + (text-06ef #x06ef) + (text-06f0 #x06f0) + (text-06f1 #x06f1) + (text-06f2 #x06f2) + (text-06f3 #x06f3) + (text-06f4 #x06f4) + (text-06f5 #x06f5) + (text-06f6 #x06f6) + (text-06f7 #x06f7) + (text-06f8 #x06f8) + (text-06f9 #x06f9) + (text-06fa #x06fa) + (text-06fb #x06fb) + (text-06fc #x06fc) + (text-06fd #x06fd) + (text-06fe #x06fe) + (text-06ff #x06ff) + (text-0700 #x0700) + (text-0701 #x0701) + (text-0702 #x0702) + (text-0703 #x0703) + (text-0704 #x0704) + (text-0705 #x0705) + (text-0706 #x0706) + (text-0707 #x0707) + (text-0708 #x0708) + (text-0709 #x0709) + (text-070a #x070a) + (text-070b #x070b) + (text-070c #x070c) + (text-070d #x070d) + (text-070e #x070e) + (text-070f #x070f) + (text-0775 #x0775) + (text-0776 #x0776) + (text-0778 #x0778) + (text-0779 #x0779) + (text-077a #x077a) + (text-077b #x077b) + (text-077c #x077c) + (text-078d #x078d) + (text-07b3 #x07b3) + (text-07b4 #x07b4) + (text-07b5 #x07b5) + (text-07b8 #x07b8) + (text-07b9 #x07b9) + (text-07ba #x07ba) + (text-07bb #x07bb) + (text-07bc #x07bc) + (text-07bd #x07bd) + (text-07be #x07be) + (text-07bf #x07bf) + (text-07c0 #x07c0) + (text-07c1 #x07c1) + (text-07c2 #x07c2) + (text-07c3 #x07c3) + (text-07c4 #x07c4) + (text-07c7 #x07c7) + (text-07c8 #x07c8) + (text-07cb #x07cb) + (text-07cc #x07cc) + (text-07cd #x07cd) + (text-07ce #x07ce) + (text-07cf #x07cf) + (text-07d0 #x07d0) + (text-07d1 #x07d1) + (text-07d2 #x07d2) + (text-07d3 #x07d3) + (text-07d4 #x07d4) + (text-07d5 #x07d5) + (text-07d6 #x07d6) + (text-07d7 #x07d7) + (text-07d8 #x07d8) + (text-07d9 #x07d9) + (text-07da #x07da) + (text-07db #x07db) + (text-07dc #x07dc) + (text-07dd #x07dd) + (text-07de #x07de) + (text-07df #x07df) + (text-07e0 #x07e0) + (text-07e1 #x07e1) + (text-07e2 #x07e2) + (text-07e3 #x07e3) + (text-07e4 #x07e4) + (text-07e5 #x07e5) + (text-07e6 #x07e6) + (text-07e7 #x07e7) + (text-07e8 #x07e8) + (text-07e9 #x07e9) + (text-07ea #x07ea) + (text-07f6 #x07f6) + (text-07f7 #x07f7) + (text-07f8 #x07f8) + (text-07f9 #x07f9) + (text-07fa #x07fa) + (text-07fb #x07fb) + (text-07fc #x07fc) + (text-07fd #x07fd) + (text-07fe #x07fe) + (text-07ff #x07ff) + (text-0800 #x0800) + (text-0801 #x0801) + (text-0802 #x0802) + (text-0803 #x0803) + (text-0804 #x0804) + (text-0805 #x0805) + (text-0806 #x0806) + (text-0807 #x0807) + (text-0808 #x0808) + (text-0809 #x0809) + (text-080a #x080a) + (text-080b #x080b) + (text-080c #x080c) + (text-080d #x080d) + (text-0816 #x0816) + (text-0817 #x0817) + (text-0818 #x0818) + (text-0819 #x0819) + (text-081a #x081a) + (text-081b #x081b) + (text-081c #x081c) + (text-081d #x081d) + (text-081e #x081e) + (text-081f #x081f) + (text-0820 #x0820) + (text-0821 #x0821) + (text-0822 #x0822) + (text-0823 #x0823) + (text-0824 #x0824) + (text-0825 #x0825) + (text-0826 #x0826) + (text-0827 #x0827) + (text-0828 #x0828) + (text-0829 #x0829) + (text-082a #x082a) + (text-082b #x082b) + (text-082c #x082c) + (text-082d #x082d) + (text-082e #x082e) + (text-082f #x082f) + (text-0830 #x0830) + (text-0831 #x0831) + (text-0832 #x0832) + (text-0833 #x0833) + (text-0834 #x0834) + (text-0835 #x0835) + (text-0836 #x0836) + (text-0837 #x0837) + (text-0838 #x0838) + (text-0839 #x0839) + (text-083a #x083a) + (text-083b #x083b) + (text-083c #x083c) + (text-083d #x083d) + (text-083e #x083e) + (text-083f #x083f) + (text-0840 #x0840) + (text-0841 #x0841) + (text-0842 #x0842) + (text-0843 #x0843) + (text-0844 #x0844) + (text-0845 #x0845) + (text-0846 #x0846) + (text-0847 #x0847) + (text-0848 #x0848) + (text-0849 #x0849) + (text-084a #x084a) + (text-084b #x084b) + (text-084c #x084c) + (text-084d #x084d) + (text-084e #x084e) + (text-084f #x084f) + (text-0850 #x0850) + (text-0851 #x0851) + (text-0852 #x0852) + (text-0853 #x0853) + (text-0856 #x0856) + (text-0857 #x0857) + (text-0858 #x0858) + (text-085a #x085a) + (text-085f #x085f) + (text-0860 #x0860) + (text-0861 #x0861) + (text-0862 #x0862) + (text-0863 #x0863) + (text-0864 #x0864) + (text-0866 #x0866) + (text-0867 #x0867) + (text-0868 #x0868) + (text-0869 #x0869) + (text-086a #x086a) + (text-086c #x086c) + (text-086d #x086d) + (text-086e #x086e) + (text-086f #x086f) + (text-0870 #x0870) + (text-0871 #x0871) + (text-0872 #x0872) + (text-0873 #x0873) + (text-0874 #x0874) + (text-0875 #x0875) + (text-0876 #x0876) + (text-0877 #x0877) + (text-0878 #x0878) + (text-0879 #x0879) + (text-087a #x087a) + (text-087b #x087b) + (text-087c #x087c) + (text-087d #x087d) + (text-087e #x087e) + (text-087f #x087f) + (text-0880 #x0880) + (text-0883 #x0883) + (text-0884 #x0884) + (text-0885 #x0885) + (text-0886 #x0886) + (text-0887 #x0887) + (text-0888 #x0888) + (text-088a #x088a) + (text-088b #x088b) + (text-088c #x088c) + (text-088d #x088d) + (text-088e #x088e) + (text-088f #x088f) + (text-0891 #x0891) + (text-0892 #x0892) + (text-0893 #x0893) + (text-0894 #x0894) + (text-0895 #x0895) + (text-0896 #x0896) + (text-0897 #x0897) + (text-0898 #x0898) + (text-0899 #x0899) + ) +;; ---text-h:text-id + #| (deftype game-text (structure) ((id text-id :offset-assert 0) ;; guessed by decompiler @@ -7654,7 +8871,6 @@ ;; ocean-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype ocean-corner (structure) ((bsphere sphere :inline :offset-assert 0) (start-corner vector :inline :offset-assert 16) @@ -7666,9 +8882,7 @@ :size-assert #x50 :flag-assert #x900000050 ) -|# -#| (deftype ocean-wave-info (structure) ((frequency float :offset-assert 0) (amplitude float :offset-assert 4) @@ -7683,9 +8897,7 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype ocean-vertex (structure) ((pos vector :inline :offset-assert 0) (stq vector :inline :offset-assert 16) @@ -7695,19 +8907,15 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| (deftype ocean-spheres (structure) - ((spheres sphere 36 :offset-assert 0) ;; guessed by decompiler + ((spheres sphere 36 :inline :offset-assert 0) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x240 :flag-assert #x900000240 ) -|# -#| (deftype ocean-colors (structure) ((colors rgba 2548 :offset-assert 0) ;; guessed by decompiler ) @@ -7715,30 +8923,25 @@ :size-assert #x27d0 :flag-assert #x9000027d0 ) -|# -#| (deftype ocean-colors-float (structure) - ((colors vector 2548 :offset-assert 0) ;; guessed by decompiler + ((colors vector 2548 :inline :offset-assert 0) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x9f40 :flag-assert #x900009f40 ) -|# -#| (deftype ocean-mid-mask (structure) ((mask uint8 8 :offset-assert 0) ;; guessed by decompiler - (dword uint64 :offset-assert 0) + (dword uint64 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype ocean-mid-indices (basic) ((data uint16 36 :offset-assert 4) ;; guessed by decompiler ) @@ -7746,9 +8949,7 @@ :size-assert #x4c :flag-assert #x90000004c ) -|# -#| (deftype ocean-mid-masks (basic) ((data (inline-array ocean-mid-mask) :offset-assert 4) ;; guessed by decompiler ) @@ -7756,41 +8957,35 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype ocean-trans-mask (structure) ((mask uint8 4 :offset-assert 0) ;; guessed by decompiler - (word int32 :offset-assert 0) + (word int32 :offset 0) ) + :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype ocean-trans-index (structure) ((parent int16 :offset-assert 0) (child int16 :offset-assert 2) ) + :pack-me :method-count-assert 9 :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype ocean-trans-indices (basic) - ((data ocean-trans-index 2304 :offset-assert 4) ;; guessed by decompiler + ((data ocean-trans-index 2304 :inline :offset-assert 4) ) :method-count-assert 9 :size-assert #x2404 :flag-assert #x900002404 ) -|# -#| (deftype ocean-near-index (structure) ((data uint16 16 :offset-assert 0) ;; guessed by decompiler ) @@ -7798,9 +8993,7 @@ :size-assert #x20 :flag-assert #x900000020 ) -|# -#| (deftype ocean-near-indices (basic) ((data (inline-array ocean-near-index) :offset-assert 4) ;; guessed by decompiler ) @@ -7808,9 +9001,7 @@ :size-assert #x8 :flag-assert #x900000008 ) -|# -#| (deftype ocean-near-colors (structure) ((color0 vector :inline :offset-assert 0) (color1 vector :inline :offset-assert 16) @@ -7821,9 +9012,7 @@ :size-assert #x40 :flag-assert #x900000040 ) -|# -#| (deftype ocean-trans-strip (structure) ((verts uint128 10 :offset-assert 0) ;; guessed by decompiler ) @@ -7831,19 +9020,15 @@ :size-assert #xa0 :flag-assert #x9000000a0 ) -|# -#| (deftype ocean-trans-strip-array (structure) - ((data ocean-trans-strip 4 :offset-assert 0) ;; guessed by decompiler + ((data ocean-trans-strip 4 :inline :offset-assert 0) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x280 :flag-assert #x900000280 ) -|# -#| (deftype ocean-wave-data (structure) ((data uint8 1024 :offset-assert 0) ;; guessed by decompiler ) @@ -7851,18 +9036,15 @@ :size-assert #x400 :flag-assert #x900000400 ) -|# -#| (deftype ocean-wave-frames (structure) - ((frame ocean-wave-data 64 :offset-assert 0) ;; guessed by decompiler + ((frame ocean-wave-data 64 :inline :offset-assert 0) ;; guessed by decompiler ) + ;; overflow 16-bit int size bug :method-count-assert 9 - :size-assert #x0 - :heap-base #x1 - :flag-assert #x900010000 + :size-assert #x10000 + ;:flag-assert #x900010000 ) -|# #| (deftype ocean-texture-constants (structure) @@ -7880,7 +9062,6 @@ ) |# -#| (deftype ocean-mid-vertex (structure) ((stq vector :inline :offset-assert 0) (col vector :inline :offset-assert 16) @@ -7890,7 +9071,6 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# #| (deftype ocean-mid-constants (structure) @@ -7922,7 +9102,6 @@ ) |# -#| (deftype ocean-mid-upload (structure) ((rot matrix :inline :offset-assert 0) (matrix matrix :inline :offset-assert 64) @@ -7933,9 +9112,7 @@ :size-assert #x760 :flag-assert #x900000760 ) -|# -#| (deftype ocean-mid-upload2 (structure) ((rot matrix :inline :offset-assert 0) (matrix matrix :inline :offset-assert 64) @@ -7954,7 +9131,6 @@ :size-assert #x230 :flag-assert #x900000230 ) -|# #| (deftype ocean-mid-work (structure) @@ -8022,7 +9198,6 @@ ) |# -#| (deftype ocean-near-vertex (structure) ((stq vector :inline :offset-assert 0) (clr vector :inline :offset-assert 16) @@ -8032,9 +9207,7 @@ :size-assert #x30 :flag-assert #x900000030 ) -|# -#| (deftype ocean-near-work (structure) ((verts-ptr vector :inline :offset-assert 0) (indices uint128 16 :offset-assert 16) ;; guessed by decompiler @@ -8043,9 +9216,7 @@ :size-assert #x110 :flag-assert #x900000110 ) -|# -#| (deftype ocean-height-array (structure) ((data float 1024 :offset-assert 0) ;; guessed by decompiler ) @@ -8053,19 +9224,15 @@ :size-assert #x1000 :flag-assert #x900001000 ) -|# -#| (deftype ocean-vert-array (structure) - ((data vector 2048 :offset-assert 0) ;; guessed by decompiler + ((data vector 2048 :inline :offset-assert 0) ;; guessed by decompiler ) :method-count-assert 9 :size-assert #x8000 :flag-assert #x900008000 ) -|# -#| (deftype ocean-map (structure) ((start-corner vector :inline :offset-assert 0) (far-color vector :inline :offset-assert 16) @@ -8079,11 +9246,10 @@ :size-assert #x34 :flag-assert #xb00000034 (:methods - (ocean-map-method-9 () none) ;; 9 ;; (set-height! (_type_ float) none) - (ocean-map-method-10 () none) ;; 10 ;; (get-base-height (_type_) float) + (set-height! (_type_ float) none) ;; 9 + (get-base-height (_type_) float) ;; 10 ) ) -|# #| (deftype ocean (ocean-map) @@ -8895,11 +10061,10 @@ ;; traffic-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype traffic-danger-info (structure) ((sphere sphere :inline :offset-assert 0) (velocity vector :inline :offset-assert 16) - (handle uint64 :offset-assert 32) ;; handle + (handle handle :offset-assert 32) (notify-radius float :offset-assert 40) (danger-level float :offset-assert 44) (decay-rate float :offset-assert 48) @@ -8910,25 +10075,22 @@ :size-assert #x36 :flag-assert #x900000036 ) -|# -#| (deftype traffic-suppression-params (structure) ((bbox bounding-box :inline :offset-assert 0) - (duration uint64 :offset-assert 32) ;; time-frame + (duration time-frame :offset-assert 32) (id int8 :offset-assert 40) ) :method-count-assert 13 :size-assert #x29 :flag-assert #xd00000029 (:methods - (traffic-suppression-params-method-9 () none) ;; 9 ;; (try-creating-new-suppression-box (_type_) symbol) - (traffic-suppression-params-method-10 () none) ;; 10 ;; (create-or-update-suppression-box (_type_) symbol) - (traffic-suppression-params-method-11 () none) ;; 11 ;; (has-valid-id? (_type_) none) - (traffic-suppression-params-method-12 () none) ;; 12 ;; (kill-suppression-box (_type_) none) + (try-creating-new-suppression-box (_type_) symbol) ;; 9 + (create-or-update-suppression-box (_type_) symbol) ;; 10 + (has-valid-id? (_type_) none) ;; 11 + (kill-suppression-box (_type_) none) ;; 12 ) ) -|# #| (deftype traffic-object-spawn-params (structure) @@ -8970,56 +10132,1042 @@ ) |# -;; (define-extern *traffic-manager* object) ;; traffic-manager -;; (define-extern *vehicle-manager* object) +(declare-type traffic-manager process) +(declare-type vehicle-manager process) +(define-extern *traffic-manager* traffic-manager) +(define-extern *vehicle-manager* vehicle-manager) ;; (define-extern *traffic-info* object) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; game-task-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +++game-task-h:game-task +(defenum game-task + :type uint8 + :bitfield #f + (unknown -1) + (none 0) + (complete 1) + (dummy0 2) + (eco-blue-button 3) + (eco-yellow-button 4) + (eco-red-button 5) + (city-start 6) + (desert-interceptors 7) + (desert-vehicle-training-1 8) + (desert-vehicle-training-2 9) + (arena-training-1 10) + (arena-fight-1 11) + (wascity-chase 12) + (wascity-pre-game 13) + (desert-turtle-training 14) + (desert-course-race 15) + (desert-artifact-race-1 16) + (wascity-leaper-race 17) + (desert-hover 18) + (arena-fight-2 19) + (desert-catch-lizards 20) + (desert-rescue 21) + (wascity-gungame 22) + (arena-fight-3 23) + (nest-eggs 24) + (temple-climb 25) + (desert-glide 26) + (volcano-darkeco 27) + (temple-oracle 28) + (desert-oasis-defense 29) + (temple-tests 30) + (comb-travel 31) + (mine-explore 32) + (mine-blow 33) + (mine-boss 34) + (sewer-met-hum 35) + (city-vehicle-training 36) + (city-port-fight 37) + (city-port-attack 38) + (city-gun-course-1 39) + (city-sniper-fight 40) + (sewer-kg-met 41) + (city-destroy-darkeco 42) + (forest-kill-plants 43) + (city-destroy-grid 44) + (city-hijack-vehicle 45) + (city-port-assault 46) + (city-gun-course-2 47) + (city-blow-barricade 48) + (city-protect-hq 49) + (sewer-hum-kg 50) + (city-power-game 51) + (desert-artifact-race-2 52) + (nest-hunt 53) + (desert-beast-battle 54) + (desert-jump-mission 55) + (desert-chase-marauders 56) + (forest-ring-chase 57) + (factory-sky-battle 58) + (factory-assault 59) + (factory-boss 60) + (temple-defend 61) + (wascity-defend 62) + (forest-turn-on-machine 63) + (precursor-tour 64) + (city-blow-tower 65) + (tower-destroy 66) + (palace-ruins-patrol 67) + (palace-ruins-attack 68) + (comb-wild-ride 69) + (precursor-destroy-ship 70) + (desert-final-boss 71) + (city-win 72) + (desert-bbush-get-to-1 73) + (desert-bbush-get-to-2 74) + (desert-bbush-get-to-3 75) + (desert-bbush-get-to-4 76) + (desert-bbush-get-to-5 77) + (desert-bbush-get-to-6 78) + (desert-bbush-get-to-7 79) + (desert-bbush-get-to-8 80) + (desert-bbush-get-to-9 81) + (desert-bbush-get-to-11 82) + (desert-bbush-get-to-12 83) + (desert-bbush-get-to-14 84) + (desert-bbush-get-to-16 85) + (desert-bbush-get-to-17 86) + (wascity-bbush-get-to-18 87) + (desert-bbush-get-to-19 88) + (wascity-bbush-get-to-20 89) + (wascity-bbush-get-to-21 90) + (wascity-bbush-get-to-22 91) + (wascity-bbush-get-to-23 92) + (wascity-bbush-get-to-24 93) + (wascity-bbush-get-to-25 94) + (city-bbush-get-to-26 95) + (city-bbush-get-to-27 96) + (city-bbush-get-to-28 97) + (city-bbush-get-to-29 98) + (city-bbush-get-to-30 99) + (city-bbush-get-to-31 100) + (city-bbush-get-to-32 101) + (city-bbush-get-to-33 102) + (city-bbush-get-to-34 103) + (city-bbush-get-to-35 104) + (city-bbush-get-to-36 105) + (city-bbush-get-to-37 106) + (city-bbush-get-to-38 107) + (city-bbush-get-to-39 108) + (city-bbush-get-to-40 109) + (city-bbush-get-to-41 110) + (city-bbush-get-to-42 111) + (city-bbush-get-to-43 112) + (city-bbush-get-to-44 113) + (desert-bbush-ring-1 114) + (desert-bbush-ring-2 115) + (wascity-bbush-ring-3 116) + (wascity-bbush-ring-4 117) + (city-bbush-ring-5 118) + (city-bbush-ring-6 119) + (desert-bbush-egg-spider-1 120) + (desert-bbush-spirit-chase-1 121) + (wascity-bbush-spirit-chase-2 122) + (city-bbush-spirit-chase-3 123) + (desert-bbush-timer-chase-1 124) + (wascity-bbush-timer-chase-2 125) + (desert-bbush-air-time 126) + (desert-bbush-total-air-time 127) + (desert-bbush-jump-distance 128) + (desert-bbush-total-jump-distance 129) + (desert-bbush-roll-count 130) + (desert-bbush-time-trial-1 131) + (desert-bbush-rally 132) + (city-bbush-port-attack 133) + (desert-rescue-bbush 134) + (city-gun-course-play-for-fun 135) + (city-jetboard-bbush 136) + (desert-bbush-destroy-interceptors 137) + (max 138) + ) +;; ---game-task-h:game-task + +;; +++game-task-h:game-task-node +(defenum game-task-node + :type uint16 + (none) + (city-start-start) + (city-start-introduction) + (city-start-resolution) + (desert-interceptors-attack) + (desert-vehicle-training-1-introduction) + (desert-vehicle-training-2-introduction) + (arena-training-1-introduction) + (arena-training-1-collect) + (arena-training-1-resolution) + (arena-fight-1-introduction) + (arena-fight-1-fight) + (arena-fight-1-throne) + (arena-fight-1-resolution) + (wascity-chase-introduction) + (wascity-chase-resolution) + (wascity-pre-game-introduction) + (wascity-pre-game-wait) + (wascity-pre-game-resolution) + (wascity-pre-game-post-game) + (wascity-pre-game-bronze) + (wascity-pre-game-silver) + (wascity-pre-game-gold) + (desert-turtle-training-introduction) + (desert-turtle-training-restrict-to-turtle) + (desert-turtle-training-in-desert) + (desert-turtle-training-resolution) + (desert-course-race-introduction) + (desert-course-race-restrict-to-turtle) + (desert-course-race-post-intro) + (desert-course-race-race) + (desert-course-race-win) + (desert-course-race-resolution) + (desert-artifact-race-1-introduction) + (desert-artifact-race-1-post-intro) + (desert-artifact-race-1-race) + (desert-artifact-race-1-resolution) + (wascity-leaper-race-introduction) + (wascity-leaper-race-resolution) + (desert-hover-introduction) + (desert-hover-resolution) + (arena-fight-2-introduction) + (arena-fight-2-gun-training) + (arena-fight-2-fight) + (arena-fight-2-resolution) + (desert-catch-lizards-introduction) + (desert-catch-lizards-restrict-to-snake) + (desert-catch-lizards-get-to-corral) + (desert-catch-lizards-resolution) + (desert-rescue-introduction) + (desert-rescue-get-vehicle) + (desert-rescue-post-intro) + (desert-rescue-rescue) + (desert-rescue-dead-wlander-movie) + (desert-rescue-satellite-fight) + (desert-rescue-resolution) + (desert-rescue-hold-doors) + (wascity-gungame-introduction) + (wascity-gungame-resolution) + (wascity-gungame-play-for-fun) + (wascity-gungame-bronze) + (wascity-gungame-silver) + (wascity-gungame-gold) + (arena-fight-3-introduction) + (arena-fight-3-training) + (arena-fight-3-fight) + (arena-fight-3-resolution) + (nest-eggs-introduction) + (nest-eggs-get-to-scorpion) + (nest-eggs-wall) + (nest-eggs-tunnel) + (nest-eggs-resolution) + (nest-eggs-gas) + (temple-climb-introduction) + (temple-climb-resolution) + (desert-glide-introduction) + (desert-glide-templetop) + (desert-glide-resolution) + (volcano-darkeco-introduction) + (volcano-darkeco-catch-flut) + (volcano-darkeco-indax-1-introduction) + (volcano-darkeco-indax-1) + (volcano-darkeco-indax-2-introduction) + (volcano-darkeco-indax-2) + (volcano-darkeco-resolution) + (temple-oracle-introduction) + (temple-oracle-stairs) + (temple-oracle-watchers-complete) + (temple-oracle-pre-pole-room) + (temple-oracle-pole-room) + (temple-oracle-pole-half) + (temple-oracle-door-1) + (temple-oracle-meeting) + (temple-oracle-powerup) + (temple-oracle-resolution) + (desert-oasis-defense-introduction) + (desert-oasis-defense-meeting) + (desert-oasis-defense-battle) + (desert-oasis-defense-resolution) + (temple-tests-introduction) + (temple-tests-hover-training) + (temple-tests-oracle-door-crossed) + (temple-tests-oracle) + (temple-tests-training) + (temple-tests-door-1) + (temple-tests-door-2) + (temple-tests-door-3) + (temple-tests-resolution) + (comb-travel-introduction) + (comb-travel-resolution) + (comb-travel-training) + (mine-explore-introduction) + (mine-explore-elevator) + (mine-explore-armor) + (mine-explore-resolution) + (mine-blow-introduction) + (mine-blow-elevator) + (mine-blow-resolution) + (mine-boss-introduction) + (mine-boss-resolution) + (sewer-met-hum-introduction) + (sewer-met-hum-resolution) + (city-vehicle-training-hover-zone-1) + (city-vehicle-training-hover-zone-2) + (city-port-fight-introduction) + (city-port-fight-resolution) + (city-port-attack-introduction) + (city-port-attack-get-on) + (city-port-attack-mission) + (city-port-attack-resolution) + (city-gun-course-1-introduction) + (city-gun-course-1-post-intro) + (city-gun-course-1-resolution) + (city-gun-course-1-tess) + (city-gun-course-1-bronze) + (city-gun-course-1-silver) + (city-gun-course-1-gold) + (city-sniper-fight-introduction) + (city-sniper-fight-resolution) + (sewer-kg-met-introduction) + (sewer-kg-met-button0-pressed) + (sewer-kg-met-button1-pressed) + (sewer-kg-met-resolution) + (city-destroy-darkeco-introduction) + (city-destroy-darkeco-orbs) + (city-destroy-darkeco-dark-punch) + (city-destroy-darkeco-resolution) + (forest-kill-plants-introduction) + (forest-kill-plants-pillars) + (forest-kill-plants-armor) + (forest-kill-plants-resolution) + (city-destroy-grid-introduction) + (city-destroy-grid-resolution) + (city-hijack-vehicle-introduction) + (city-hijack-vehicle-infiltrate) + (city-hijack-vehicle-escape) + (city-hijack-vehicle-resolution) + (city-port-assault-introduction) + (city-port-assault-force-load-borrows) + (city-port-assault-resolution) + (city-gun-course-2-introduction) + (city-gun-course-2-post-intro) + (city-gun-course-2-resolution) + (city-gun-course-2-bronze) + (city-gun-course-2-silver) + (city-gun-course-2-gold) + (city-blow-barricade-introduction) + (city-blow-barricade-resolution) + (city-protect-hq-introduction) + (city-protect-hq-resolution) + (sewer-hum-kg-introduction) + (sewer-hum-kg-switch-off) + (sewer-hum-kg-resolution) + (city-power-game-introduction) + (city-power-game-wait) + (city-power-game-resolution) + (city-power-game-post-game) + (city-power-game-bronze) + (city-power-game-silver) + (city-power-game-gold) + (desert-artifact-race-2-introduction) + (desert-artifact-race-2-post-intro) + (desert-artifact-race-2-race) + (desert-artifact-race-2-resolution) + (nest-hunt-introduction) + (nest-hunt-sig) + (nest-hunt-fight) + (nest-hunt-get-crystal) + (nest-hunt-resolution) + (desert-beast-battle-introduction) + (desert-beast-battle-kill-last-beast) + (desert-beast-battle-resolution) + (desert-jump-mission-introduction) + (desert-jump-mission-post-intro) + (desert-jump-mission-protect-doors) + (desert-jump-mission-resolution) + (desert-chase-marauders-introduction) + (desert-chase-marauders-get-to-stronghold) + (desert-chase-marauders-ambush) + (desert-chase-marauders-chase) + (desert-chase-marauders-resolution) + (forest-ring-chase-introduction) + (forest-ring-chase-statues) + (forest-ring-chase-statue-1) + (forest-ring-chase-statue-2) + (forest-ring-chase-statue-3) + (forest-ring-chase-statue-4) + (forest-ring-chase-statue-5) + (forest-ring-chase-resolution) + (factory-sky-battle-introduction) + (factory-sky-battle-hanger) + (factory-sky-battle-wave1) + (factory-sky-battle-wave2) + (factory-sky-battle-tower1) + (factory-sky-battle-tower2) + (factory-sky-battle-tower3) + (factory-sky-battle-tower4) + (factory-sky-battle-resolution) + (factory-assault-introduction) + (factory-assault-indax-1-introduction) + (factory-assault-indax-1) + (factory-assault-indax-2-introduction) + (factory-assault-indax-2) + (factory-assault-indax-3-introduction) + (factory-assault-indax-3) + (factory-assault-indax-4-introduction) + (factory-assault-indax-4) + (factory-assault-get-vehicle) + (factory-assault-broke-ultimate-fence) + (factory-assault-resolution) + (factory-boss-introduction) + (factory-boss-resolution) + (temple-defend-introduction) + (temple-defend-talk-box) + (temple-defend-door-1) + (temple-defend-door-2) + (temple-defend-door-3) + (temple-defend-door-4) + (temple-defend-oracle) + (temple-defend-training) + (temple-defend-resolution) + (wascity-defend-introduction) + (wascity-defend-get-to) + (wascity-defend-resolution) + (forest-turn-on-machine-introduction) + (forest-turn-on-machine-spawners) + (forest-turn-on-machine-resolution) + (precursor-tour-introduction) + (precursor-tour-generator-trigger) + (precursor-tour-resolution) + (city-blow-tower-introduction) + (city-blow-tower-phase-1) + (city-blow-tower-resolution) + (tower-destroy-introduction) + (tower-destroy-climb) + (tower-destroy-resolution) + (palace-ruins-patrol-introduction) + (palace-ruins-patrol-stadium) + (palace-ruins-patrol-resolution) + (palace-ruins-attack-introduction) + (palace-ruins-attack-resolution) + (comb-wild-ride-introduction) + (comb-wild-ride-resolution) + (precursor-destroy-ship-introduction) + (precursor-destroy-ship-escape) + (precursor-destroy-ship-escape-continue) + (precursor-destroy-ship-resolution) + (desert-final-boss-introduction) + (desert-final-boss-walker) + (desert-final-boss-climb) + (desert-final-boss-resolution) + (city-win-introduction) + (city-win-resolution) + (desert-bbush-get-to-1-introduction) + (desert-bbush-get-to-1-resolution) + (desert-bbush-get-to-2-introduction) + (desert-bbush-get-to-2-resolution) + (desert-bbush-get-to-3-introduction) + (desert-bbush-get-to-3-resolution) + (desert-bbush-get-to-4-introduction) + (desert-bbush-get-to-4-resolution) + (desert-bbush-get-to-5-introduction) + (desert-bbush-get-to-5-resolution) + (desert-bbush-get-to-6-introduction) + (desert-bbush-get-to-6-resolution) + (desert-bbush-get-to-7-introduction) + (desert-bbush-get-to-7-resolution) + (desert-bbush-get-to-8-introduction) + (desert-bbush-get-to-8-resolution) + (desert-bbush-get-to-9-introduction) + (desert-bbush-get-to-9-resolution) + (desert-bbush-get-to-11-introduction) + (desert-bbush-get-to-11-resolution) + (desert-bbush-get-to-12-introduction) + (desert-bbush-get-to-12-resolution) + (desert-bbush-get-to-14-introduction) + (desert-bbush-get-to-14-resolution) + (desert-bbush-get-to-16-introduction) + (desert-bbush-get-to-16-resolution) + (desert-bbush-get-to-17-introduction) + (desert-bbush-get-to-17-resolution) + (wascity-bbush-get-to-18-introduction) + (wascity-bbush-get-to-18-resolution) + (wascity-bbush-get-to-19-introduction) + (wascity-bbush-get-to-19-resolution) + (wascity-bbush-get-to-20-introduction) + (wascity-bbush-get-to-20-resolution) + (wascity-bbush-get-to-21-introduction) + (wascity-bbush-get-to-21-resolution) + (wascity-bbush-get-to-22-introduction) + (wascity-bbush-get-to-22-resolution) + (wascity-bbush-get-to-23-introduction) + (wascity-bbush-get-to-23-resolution) + (wascity-bbush-get-to-24-introduction) + (wascity-bbush-get-to-24-resolution) + (wascity-bbush-get-to-25-introduction) + (wascity-bbush-get-to-25-resolution) + (city-bbush-get-to-26-introduction) + (city-bbush-get-to-26-resolution) + (city-bbush-get-to-27-introduction) + (city-bbush-get-to-27-resolution) + (city-bbush-get-to-28-introduction) + (city-bbush-get-to-28-resolution) + (city-bbush-get-to-29-introduction) + (city-bbush-get-to-29-resolution) + (city-bbush-get-to-30-introduction) + (city-bbush-get-to-30-resolution) + (city-bbush-get-to-31-introduction) + (city-bbush-get-to-31-resolution) + (city-bbush-get-to-32-introduction) + (city-bbush-get-to-32-resolution) + (city-bbush-get-to-33-introduction) + (city-bbush-get-to-33-resolution) + (city-bbush-get-to-34-introduction) + (city-bbush-get-to-34-resolution) + (city-bbush-get-to-35-introduction) + (city-bbush-get-to-35-resolution) + (city-bbush-get-to-36-introduction) + (city-bbush-get-to-36-resolution) + (city-bbush-get-to-37-introduction) + (city-bbush-get-to-37-resolution) + (city-bbush-get-to-38-introduction) + (city-bbush-get-to-38-resolution) + (city-bbush-get-to-39-introduction) + (city-bbush-get-to-39-resolution) + (city-bbush-get-to-40-introduction) + (city-bbush-get-to-40-resolution) + (city-bbush-get-to-41-introduction) + (city-bbush-get-to-41-resolution) + (city-bbush-get-to-42-introduction) + (city-bbush-get-to-42-resolution) + (city-bbush-get-to-43-introduction) + (city-bbush-get-to-43-resolution) + (city-bbush-get-to-44-introduction) + (city-bbush-get-to-44-resolution) + (desert-bbush-ring-1-introduction) + (desert-bbush-ring-1-resolution) + (desert-bbush-ring-2-introduction) + (desert-bbush-ring-2-resolution) + (wascity-bbush-ring-3-introduction) + (wascity-bbush-ring-3-resolution) + (wascity-bbush-ring-4-introduction) + (wascity-bbush-ring-4-resolution) + (city-bbush-ring-5-introduction) + (city-bbush-ring-5-resolution) + (city-bbush-ring-6-introduction) + (city-bbush-ring-6-resolution) + (desert-bbush-egg-spider-1-introduction) + (desert-bbush-egg-spider-1-resolution) + (desert-bbush-spirit-chase-1-introduction) + (desert-bbush-spirit-chase-1-resolution) + (wascity-bbush-spirit-chase-2-introduction) + (wascity-bbush-spirit-chase-2-resolution) + (city-bbush-spirit-chase-3-introduction) + (city-bbush-spirit-chase-3-resolution) + (desert-bbush-timer-chase-1-introduction) + (desert-bbush-timer-chase-1-resolution) + (wascity-bbush-timer-chase-2-introduction) + (wascity-bbush-timer-chase-2-resolution) + (desert-bbush-air-time-introduction) + (desert-bbush-air-time-resolution) + (desert-bbush-total-air-time-introduction) + (desert-bbush-total-air-time-resolution) + (desert-bbush-jump-distance-introduction) + (desert-bbush-jump-distance-resolution) + (desert-bbush-total-jump-distance-introduction) + (desert-bbush-total-jump-distance-resolution) + (desert-bbush-roll-count-introduction) + (desert-bbush-roll-count-resolution) + (desert-bbush-time-trial-1-introduction) + (desert-bbush-time-trial-1-resolution) + (desert-bbush-rally-introduction) + (desert-bbush-rally-resolution) + (city-bbush-port-attack-introduction) + (city-bbush-port-attack-port-attack-load) + (city-bbush-port-attack-resolution) + (desert-rescue-bbush-introduction) + (desert-rescue-bbush-resolution) + (city-gun-course-play-for-fun-introduction) + (city-gun-course-play-for-fun-resolution) + (city-gun-course-play-for-fun-bronze-rnc-1) + (city-gun-course-play-for-fun-silver-rnc-1) + (city-gun-course-play-for-fun-gold-rnc-1) + (city-gun-course-play-for-fun-bronze-rnc-2) + (city-gun-course-play-for-fun-silver-rnc-2) + (city-gun-course-play-for-fun-gold-rnc-2) + (city-jetboard-bbush-introduction) + (city-jetboard-bbush-resolution) + (desert-bbush-destroy-interceptors-introduction) + (desert-bbush-destroy-interceptors-resolution) + ) +;; ---game-task-h:game-task-node + +;; +++game-task-h:game-task-action +(defenum game-task-action + :bitfield #f + :type uint8 + (hide 0) + (idle 1) + (say 2) + (talk 3) + (show 4) + (trade 5) + (play 6) + (menu 7) + ) +;; ---game-task-h:game-task-action + +;; +++game-task-h:game-task-actor +(defenum game-task-actor + :type uint8 + (none 0) + (minimap 1) + (oracle-oracle 2) + (daxter 3) + (damus-arena 4) + (damus-waspal 5) + (damus-desert 6) + (damus-wasdoors 7) + (damus-wascity 8) + (damus-ruins 9) + (kleever-arena 10) + (kleever-wasdoors 11) + (kleever-pen 12) + (seem-wascity 13) + (seem-temple 14) + (ashelin-oasis 15) + (ashelin-talkbox 16) + (ashelin-freehq 17) + (veger-cave 18) + (veger-ruins 19) + (torn-hiphog 20) + (torn-hiptable 21) + (torn-hipbar 22) + (torn-hipbooth 23) + (torn-freehq 24) + (tess-gungame 25) + (samos-talkbox 26) + (sig-talkbox 27) + (sig-wasdoors 28) + (sig-nest 29) + (pecker-onintent 30) + (onin-onintent 31) + (onin-talkbox 32) + (keira-garage 33) + (was-pre-game-wascityb 34) + (kleever-wascityb 35) + (seem-wascitya 36) + (gun-gungame 37) + (vin-vinroom 38) + (power-game-vinroom 39) + (jinx-hiphog 40) + (samos-genb 41) + (wascity-turret 42) + (seem-leaper 44) + (monk-wascity 43) + (wascity-leaper 45) + (was-pre-game-deserte 46) + (onin-freehq 48) + (samos-freehq 47) + (keira-freehq 49) + (keira-genb 50) + (monk-mummy 51) + (pecker 52) + (samos-onintent 53) + (unused-slot-8 54) + (unused-slot-9 55) + (unused-slot-10 56) + (unused-slot-11 57) + (unused-slot-12 58) + (unused-slot-13 59) + (unused-slot-14 60) + (unused-slot-15 61) + (unused-slot-16 62) + (unused-slot-17 63) + (unused-slot-18 64) + (unused-slot-19 65) + (unused-slot-20 66) + (unused-slot-21 67) + (unused-slot-22 68) + (unused-slot-23 69) + (unused-slot-24 70) + (unused-slot-25 71) + (unused-slot-26 72) + (unused-slot-27 73) + (unused-slot-28 74) + (unused-slot-29 75) + (unused-slot-30 76) + (unused-slot-31 77) + (burning-bush-slumb 78) + (burning-bush-gena 79) + (burning-bush-genc 80) + (burning-bush-marka 81) + (burning-bush-sluma 82) + (burning-bush-slumb-2 83) + (burning-bush-slumc 84) + (burning-bush-farma 85) + (burning-bush-farmb 86) + (burning-bush-markb 87) + (burning-bush-markb-2 88) + (burning-bush-gena-2 89) + (burning-bush-genb 90) + (burning-bush-genc-2 91) + (burning-bush-inda 92) + (burning-bush-indb 93) + (burning-bush-port 94) + (burning-bush-port-2 95) + (burning-bush-port-3 96) + (burning-bush-pal 97) + (burning-bush-stadium 98) + (burning-bush-pal-2 99) + (burning-bush-genb-2 100) + (burning-bush-arena 101) + (burning-bush-desd 102) + (burning-bush-desc 103) + (burning-bush-desa 104) + (burning-bush-desg 105) + (burning-bush-desh 106) + (burning-bush-desc-2 107) + (burning-bush-dese 108) + (burning-bush-desb 109) + (burning-bush-desa-2 110) + (burning-bush-desc-3 111) + (burning-bush-desg-2 112) + (burning-bush-desd-2 113) + (burning-bush-desg-3 114) + (burning-bush-dese-2 115) + (burning-bush-dese-3 116) + (burning-bush-desd-3 117) + (burning-bush-desb-2 118) + (burning-bush-wasa-1 119) + (burning-bush-wasa-2 120) + (burning-bush-wasa-3 121) + (burning-bush-wasa-4 122) + (burning-bush-wasb-1 123) + (burning-bush-wasb-2 124) + (burning-bush-wasb-3 125) + (burning-bush-wasb-4 126) + (burning-bush-desg-4 127) + (burning-bush-wasb-5 128) + (burning-bush-wasb-6 129) + (burning-bush-desa-3 130) + (burning-bush-sluma-1 131) + (burning-bush-genb-1 132) + (burning-bush-slumb-1 133) + (burning-bush-wasa-5 134) + (burning-bush-desd-4 135) + (burning-bush-slumb-3 136) + (burning-bush-desc-4 137) + (burning-bush-inda-1 138) + (burning-bush-dese-4 139) + (burning-bush-desc-5 140) + (burning-bush-desb-3 141) + (burning-bush-wasa-6 142) + (burning-bush-wasb-7 143) + (burning-bush-indb-1 144) + (burning-bush-desf 145) + (burning-bush-port-1 146) + (burning-bush-genb-3 147) + (burning-bush-genb-4 148) + (burning-bush-genb-5 149) + (burning-bush-slumb-4 150) + (burning-bush-slumc-1 151) + (burning-bush-dese-5 152) + (burning-bush-port-4 153) + (burning-bush-slumc-2 154) + (burning-bush-sluma-2 155) + (burning-bush-sluma-3 156) + (burning-bush-indb-2 157) + (burning-bush-indb-3 158) + (burning-bush-inda-2 159) + (burning-bush-inda-3 160) + (burning-bush-inda-4 161) + (burning-bush-port-5 162) + (burning-bush-port-6 163) + (burning-bush-port-7 164) + (burning-bush-port-8 165) + (burning-bush-desd-5 166) + (burning-bush-inda-5 167) + (burning-bush-desb-4 168) + ) +;; ---game-task-h:game-task-actor + +;; +++game-task-h:game-task-node-command +(defenum game-task-node-command + :type uint8 + (none 0) + (add-sidekick 1) + (sub-sidekick 2) + (add-board 3) + (sub-board 4) + (add-gun-red-1 5) + (add-gun-red-2 6) + (add-gun-red-3 7) + (add-gun-red-ammo-1 8) + (add-gun-red-ammo-2 9) + (add-gun-yellow-1 10) + (add-gun-yellow-2 11) + (add-gun-yellow-3 12) + (add-gun-yellow-ammo-1 13) + (add-gun-yellow-ammo-2 14) + (add-gun-blue-1 15) + (add-gun-blue-2 16) + (add-gun-blue-3 17) + (add-gun-blue-ammo-1 18) + (add-gun-blue-ammo-2 19) + (add-gun-dark-1 20) + (add-gun-dark-2 21) + (add-gun-dark-3 22) + (add-gun-dark-ammo-1 23) + (add-gun-dark-ammo-2 24) + (add-pass-front-gate 25) + (add-pass-port-mh 26) + (add-pass-port-inda 27) + (add-pass-inda-indb 28) + (add-pass-indb-sluma 29) + (add-pass-slumb-genb 30) + (add-darkeco 31) + (add-darkjak 32) + (add-darkjak-smack 33) + (add-darkjak-bomb0 34) + (add-darkjak-bomb1 35) + (add-darkjak-tracking 36) + (add-darkjak-invinc 37) + (add-lighteco 38) + (add-lightjak 39) + (add-lightjak-regen 40) + (add-lightjak-freeze 41) + (add-lightjak-shield 42) + (add-lightjak-swoop 43) + (add-board-training 44) + (add-board-launch 45) + (add-board-trail 46) + (add-board-zap 47) + (sub-board-trail 48) + (add-artifact-invis 49) + (add-armor-0 50) + (add-armor-1 51) + (add-armor-2 52) + (add-armor-3 53) + (add-amulet-1 54) + (add-amulet-2 55) + (add-amulet-3 56) + (add-light-eco-crystal 57) + (add-dark-eco-crystal 58) + (add-seal 59) + (add-cypher-gliph 60) + (add-star-map 61) + (add-vehicle-toad 62) + (add-vehicle-snake 63) + (add-vehicle-scorpion 64) + (add-vehicle-turtle 65) + (add-vehicle-rhino 66) + (add-av-cube 67) + (add-av-reflector 68) + (add-av-prism 69) + (add-av-generator 70) + (add-av-map 71) + (add-jakc 72) + ) +;; ---game-task-h:game-task-node-command + +;; +++game-task-h:game-task-node-flag +(defenum game-task-node-flag + :type uint32 ;; guess + :bitfield #t + (closed 0) + (data 1) + (auto-close 2) + (disk-close 3) + (kiosk-close 4) + (close-task 5) + (utility-node 6) + (abs-task-mask 7) + (set-task-mask 8) + (clear-task-mask 9) + (save-on-life 10) + (save-on-try 11) + (reset-on-try 12) + (no-restart 13) + (exclusive 14) + (intro-wait 15) + (city-wait 16) + (no-hud-wait 17) + (no-percent 18) + (act1 19) + (act2 20) + (act3 21) + (bbush 22) + ) +;; ---game-task-h:game-task-node-flag + +;; +++game-task-h:game-task-flags +(defenum game-task-flags + :bitfield #t + :type uint8 + (gatflag-00) + (gatflag-01) + (gatflag-02) + ) +;; ---game-task-h:game-task-flags + +;; +++game-task-h:game-task-icon +(defenum game-task-icon + :type uint8 + (gaticon-00) + (gaticon-01) + (gaticon-02) + (gaticon-03) + (gaticon-04) + (gaticon-05) + (gaticon-06) + (gaticon-07) + (gaticon-08) + (gaticon-09) + (gaticon-10) + (gaticon-11) + (gaticon-12) + (gaticon-13) + (gaticon-14) + (gaticon-15) + (gaticon-16) + (gaticon-17) + (gaticon-18) + (gaticon-19) + (gaticon-20) + (gaticon-21) + (gaticon-22) + (gaticon-23) + (gaticon-24) + (gaticon-25) + (gaticon-26) + (gaticon-27) + (gaticon-28) + (gaticon-29) + (gaticon-30) + (gaticon-31) + (gaticon-32) + (gaticon-33) + (gaticon-34) + (gaticon-35) + (gaticon-36) + (gaticon-37) + (gaticon-38) + (gaticon-39) + (gaticon-40) + (gaticon-41) + (gaticon-42) + (gaticon-43) + (gaticon-44) + (gaticon-45) + (gaticon-46) + (gaticon-47) + (gaticon-48) + (gaticon-49) + (gaticon-50) + (gaticon-51) + (gaticon-52) + (gaticon-53) + (gaticon-54) + (gaticon-55) + (gaticon-56) + (gaticon-57) + (gaticon-58) + (gaticon-59) + (gaticon-60) + (gaticon-61) + (gaticon-62) + (gaticon-63) + (gaticon-64) + (gaticon-65) + (gaticon-66) + (gaticon-67) + (gaticon-68) + (gaticon-69) + ) +;; ---game-task-h:game-task-icon ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; task-control-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (deftype game-task-event (basic) -;; () -;; :flag-assert #x900000010 -;; ) - -#| -(deftype resetter-spec (structure) - ((continue basic :offset-assert 0) - (node uint16 :offset-assert 4) - (reset-mode basic :offset-assert 8) - (execute basic :offset-assert 12) +(deftype game-task-event (basic) + ((actor game-task-actor :offset-assert 4) + (action game-task-action :offset-assert 5) + (tex game-task-icon :offset-assert 6) ;; added + (icon uint16 :offset 6 :score -100) + (flags game-task-flags :offset 7) + (scene basic :offset 8) + (distance meters :offset-assert 12) ) + ) + +(deftype resetter-spec (structure) + ((continue basic :offset-assert 0) + (node game-task-node :offset-assert 4) + (reset-mode basic :offset-assert 8) + (execute basic :offset-assert 12) + ) + :pack-me :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ;; field execute uses ~A with a signed load. ) -|# -#| +;; +++task-control-h:resetter-message +(defenum resetter-message + :type uint8 + (mission-fail 0) + (mission-retry 1) + (mission-fail-or-retry 2) + ) +;; ---task-control-h:resetter-message + +;; +++task-control-h:resetter-flag +(defenum resetter-flag + :type uint16 + :bitfield #t + (auto-reset 0) + (text-message 1) + (no-audio 2) + (no-slow-down 3) + (no-message 4) + (no-grab 5) + (no-draw-target 6) + (stop-sfx 7) + (no-audio-first 8) + ) +;; ---task-control-h:resetter-flag + (deftype resetter-params (structure) - ((message uint8 :offset-assert 0) + ((message resetter-message :offset-assert 0) (flags resetter-flag :offset-assert 2) (fail resetter-spec :inline :offset-assert 4) (retry resetter-spec :inline :offset-assert 20) (reset-delay uint32 :offset-assert 36) - (task uint8 :offset-assert 40) - (text-message uint32 :offset-assert 44) + (task game-task :offset-assert 40) + (text-message text-id :offset-assert 44) ) :method-count-assert 9 :size-assert #x30 :flag-assert #x900000030 - ;; field resetter-flag is likely a value type. ) -|# -#| +;; +++task-control-h:task-manager-mask +(defenum task-manager-mask + :type uint32 + :bitfield #t + (intro-scene) + (resolution-scene) + (time-limit) + (auto-complete) + ) +;; ---task-control-h:task-manager-mask + (deftype task-manager-info (structure) ((mask task-manager-mask :offset-assert 0) (level symbol :offset-assert 4) ;; guessed by decompiler @@ -9029,7 +11177,7 @@ (intro-scene string :offset-assert 24) ;; guessed by decompiler (resolution-scene string :offset-assert 28) ;; guessed by decompiler (resolution-scene-continue string :offset-assert 32) ;; guessed by decompiler - (final-node uint16 :offset-assert 36) ;; game-task-node + (final-node game-task-node :offset-assert 36) ;; game-task-node (vehicle-type uint8 :offset-assert 38) (sphere-count int8 :offset-assert 39) (index int8 :offset-assert 40) @@ -9044,9 +11192,7 @@ :flag-assert #x90000003c ;; field handle is likely a value type. field resolution-scene uses ~A with a signed load. field on-complete uses ~A with a signed load. field on-fail uses ~A with a signed load. ) -|# -#| (deftype task-reset-info (structure) ((restart-info resetter-params :offset-assert 0) (quit-info resetter-params :offset-assert 4) @@ -9057,23 +11203,47 @@ :size-assert #x10 :flag-assert #x900000010 ) -|# -#| +;; +++task-control-h:task-mask +(defenum task-mask + :type uint32 + :bitfield #t + (task0 0) + (task1 1) + (task2 2) + (task3 3) + (task4 4) + (task5 5) + (task6 6) + (task7 7) + (done 8) + (dummy0 9) + (dummy1 10) + (vehicle 11) + (special 12) + (primary0 13) + (ctywide 14) + (never 15) + (movie0 16) + (movie1 17) + (movie2 18) + ) +;; ---task-control-h:task-mask + (deftype game-task-node-info (basic) ((level symbol :offset-assert 4) ;; guessed by decompiler + (task game-task :offset-assert 8) (name string :offset-assert 12) ;; guessed by decompiler (when-open (array game-task-event) :offset-assert 16) ;; guessed by decompiler (flags game-task-node-flag :offset-assert 20) (parent-node game-task-node 4 :offset-assert 24) ;; guessed by decompiler - (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. (task-mask task-mask :offset-assert 32) (on-open pair :offset-assert 36) ;; guessed by decompiler (manager task-manager-info :offset-assert 40) (borrow pair :offset-assert 44) ;; guessed by decompiler (open? (function game-task-node-info symbol) :offset-assert 48) ;; guessed by decompiler (on-close pair :offset-assert 52) ;; guessed by decompiler - (close-time time-frame :offset-assert 56) ;; guessed by decompiler + (close-time uint32 :offset-assert 56) ;; guessed by decompiler (reset task-reset-info :offset-assert 60) (gem-count uint16 :offset-assert 64) (skill-count uint16 :offset-assert 66) @@ -9096,52 +11266,55 @@ (game-task-node-info-method-13 () none) ;; 13 ;; (eval-add (_type_) int) ) ) -|# -#| (deftype game-task-info (basic) - ((name string :offset-assert 4) ;; guessed by decompiler - (text-name text-id :offset-assert 8) ;; guessed by decompiler - (pre-play-node uint16 :offset-assert 12) ;; game-task-node - (kiosk-play-node uint16 :offset-assert 14) ;; game-task-node - (pre-play-continue string :offset-assert 16) ;; guessed by decompiler - (play-node uint16 :offset-assert 20) ;; game-task-node - (play-continue string :offset-assert 24) ;; guessed by decompiler - (kiosk-play-continue string :offset-assert 28) ;; guessed by decompiler + ((name string :offset-assert 4) ;; guessed by decompiler + (text-name text-id :offset-assert 8) ;; guessed by decompiler + (pre-play-node game-task-node :offset-assert 12) ;; game-task-node + (kiosk-play-node game-task-node :offset-assert 14) ;; game-task-node + (pre-play-continue string :offset-assert 16) ;; guessed by decompiler + (play-node game-task-node :offset-assert 20) ;; game-task-node + (play-continue string :offset-assert 24) ;; guessed by decompiler + (kiosk-play-continue string :offset-assert 28) ;; guessed by decompiler ) :method-count-assert 10 :size-assert #x20 :flag-assert #xa00000020 ;; field kiosk-play-continue uses ~A with a signed load. (:methods - (game-task-info-method-9 () none) ;; 9 + (game-task-info-method-9 (_type_) none) ;; 9 ) ) -|# -;; (deftype game-task-control (basic) -;; () -;; :flag-assert #xa00000010 -;; ) +(deftype game-task-control (basic) + ((counter uint32 :offset-assert 4) + (actor game-task-actor :offset-assert 8) + (current-node uint16 :offset-assert 10) + (current-event game-task-event :offset-assert 12) + ) + (:methods + (new (symbol type game-task-actor) _type_) ;; 0 + (get-current-task-event (_type_) game-task-event) ;; 9 + ) + ) -#| (deftype task-manager (process) ((node-info game-task-node-info :offset-assert 128) ;; guessed by decompiler (info task-manager-info :offset-assert 132) (lev-name symbol :offset-assert 136) ;; guessed by decompiler (fail-on-death? symbol :offset-assert 140) ;; guessed by decompiler (fail-now symbol :offset-assert 144) ;; guessed by decompiler - (restart-now basic :offset-assert 148) + (restart-now symbol :offset-assert 148) (allow-fail symbol :offset-assert 152) ;; guessed by decompiler - (state-time uint64 :offset-assert 160) ;; time-frame - (start-time uint64 :offset-assert 168) ;; time-frame - (time-limit uint64 :offset-assert 176) ;; time-frame - (arrow uint64 :offset-assert 184) ;; handle - (player-vehicle uint64 :offset-assert 192) + (state-time time-frame :offset-assert 160) ;; time-frame + (start-time time-frame :offset-assert 168) ;; time-frame + (time-limit time-frame :offset-assert 176) ;; time-frame + (arrow handle :offset-assert 184) ;; handle + (player-vehicle handle :offset-assert 192) (hud handle 4 :offset-assert 200) ;; guessed by decompiler - (hud-timer uint64 :offset-assert 200) ;; handle - (hud-counter uint64 :offset-assert 208) ;; handle - (intro-time uint64 :offset-assert 232) ;; time-frame + (hud-timer handle :offset 200) ;; handle + (hud-counter handle :offset 208) ;; handle + (intro-time time-frame :offset-assert 232) ;; time-frame ) :method-count-assert 32 :size-assert #xf0 @@ -9167,13 +11340,11 @@ (task-manager-method-31 () none) ;; 31 ) ) -|# -#| (deftype ambient-control (structure) - ((last-ambient-time uint64 :offset-assert 0) ;; time-frame - (last-ambient string :offset-assert 8) ;; guessed by decompiler - (last-ambient-id sound-id :offset-assert 12) ;; guessed by decompiler + ((last-ambient-time time-frame :offset-assert 0) ;; time-frame + (last-ambient string :offset-assert 8) ;; guessed by decompiler + (last-ambient-id sound-id :offset-assert 12) ;; guessed by decompiler ) :method-count-assert 12 :size-assert #x10 @@ -9184,15 +11355,16 @@ (ambient-control-method-11 () none) ;; 11 ;; (dummy-11 () none) ) ) -|# -;; (define-extern game-task->string function) ;; (function game-task string) -;; (define-extern c-string->game-task function) ;; (function string game-task) -;; (define-extern game-task-actor->string function) ;; (function game-task-actor string) -;; (define-extern game-task-action->string function) ;; (function game-task-action string) -;; (define-extern game-task-node-flag->string function) ;; (function game-task-node-flag object) -;; (define-extern game-task-node-command->string function) ;; (function game-task-node-command string) -;; (define-extern *traffic-engine* object) ;; traffic-engine +(define-extern game-task->string (function game-task string)) +(define-extern c-string->game-task (function string game-task)) +(define-extern game-task-actor->string (function game-task-actor string)) +(define-extern game-task-action->string (function game-task-action string)) +(define-extern game-task-node-flag->string (function game-task-node-flag object)) +(define-extern game-task-node-command->string (function game-task-node-command string)) + +;; TODO temporarily set as symbol, change type later +(define-extern *traffic-engine* symbol) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; generic-h ;; @@ -9462,42 +11634,42 @@ ;; ocean-trans-tables ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *ocean-left-table* object) ;; (pointer float) -;; (define-extern *ocean-right-table* object) ;; (pointer float) -;; (define-extern *ocean-up-table* object) ;; (pointer float) -;; (define-extern *ocean-down-table* object) ;; (pointer float) -;; (define-extern *ocean-down-left-table* object) ;; (pointer float) -;; (define-extern *ocean-down-right-table* object) ;; (pointer float) -;; (define-extern *ocean-up-right-table* object) ;; (pointer float) -;; (define-extern *ocean-up-left-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-left-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-right-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-up-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-down-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-down-left-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-down-right-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-up-right-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-up-left-table* object) ;; (pointer float) -;; (define-extern *ocean-trans-corner-table* object) ;; (inline-array vector4w-2) -;; (define-extern *ocean-trans-strip-array* object) ;; (pointer float) -;; (define-extern *ocean-trans-st-table* object) ;; (inline-array vector) +(define-extern *ocean-left-table* (pointer float)) +(define-extern *ocean-right-table* (pointer float)) +(define-extern *ocean-up-table* (pointer float)) +(define-extern *ocean-down-table* (pointer float)) +(define-extern *ocean-down-left-table* (pointer float)) +(define-extern *ocean-down-right-table* (pointer float)) +(define-extern *ocean-up-right-table* (pointer float)) +(define-extern *ocean-up-left-table* (pointer float)) +(define-extern *ocean-trans-left-table* (pointer float)) +(define-extern *ocean-trans-right-table* (pointer float)) +(define-extern *ocean-trans-up-table* (pointer float)) +(define-extern *ocean-trans-down-table* (pointer float)) +(define-extern *ocean-trans-down-left-table* (pointer float)) +(define-extern *ocean-trans-down-right-table* (pointer float)) +(define-extern *ocean-trans-up-right-table* (pointer float)) +(define-extern *ocean-trans-up-left-table* (pointer float)) +(define-extern *ocean-trans-corner-table* (inline-array vector4w-2)) +(define-extern *ocean-trans-strip-array* (pointer float)) +(define-extern *ocean-trans-st-table* (inline-array vector)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ocean-tables ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *ocean-colors-city* object) ;; ocean-colors -;; (define-extern *ocean-near-indices-city* ocean-near-indices) ;; ocean-near-indices -;; (define-extern *ocean-trans-indices-city* ocean-trans-indices) ;; ocean-trans-indices -;; (define-extern *ocean-mid-indices-city* ocean-mid-indices) ;; ocean-mid-indices -;; (define-extern *ocean-mid-masks-city* ocean-mid-masks) ;; ocean-mid-masks -;; (define-extern *ocean-map-city* object) ;; ocean-map +(define-extern *ocean-colors-city* ocean-colors) +(define-extern *ocean-near-indices-city* ocean-near-indices) +(define-extern *ocean-trans-indices-city* ocean-trans-indices) +(define-extern *ocean-mid-indices-city* ocean-mid-indices) +(define-extern *ocean-mid-masks-city* ocean-mid-masks) +(define-extern *ocean-map-city* ocean-map) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ocean-frames ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *ocean-wave-frames* object) ;; (pointer uint32) +(define-extern *ocean-wave-frames* (pointer uint32)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; cloth-art-h ;; @@ -31086,7 +33258,7 @@ |# ;; (define-extern *resetter-control* resetter-control) -;; (define-extern game-task-node->string function) ;; (function game-task-node string) +(define-extern game-task-node->string (function game-task-node string)) ;; (define-extern reset-city-squad-control function) ;; (define-extern city-task-faction-commands function) ;; (define-extern evaluate-faction-commands function) diff --git a/decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc b/decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc index 0c212f8ffa..9ee598fe4a 100644 --- a/decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc +++ b/decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc @@ -1,5 +1,5 @@ { -"gkernel": [ + "gkernel": [ [17, "(function process symbol)"], [24, "(function process symbol)"], [26, "(function process symbol)"], diff --git a/decompiler/config/jak3/ntsc_v1/label_types.jsonc b/decompiler/config/jak3/ntsc_v1/label_types.jsonc index 93d44d5baa..e04751dad1 100644 --- a/decompiler/config/jak3/ntsc_v1/label_types.jsonc +++ b/decompiler/config/jak3/ntsc_v1/label_types.jsonc @@ -2,5 +2,37 @@ "math": [ ["L108", "(pointer float)", 32], ["L109", "(pointer float)", 32] + ], + "ocean-trans-tables": [ + ["L1", "(inline-array vector)", 4], + ["L2", "(pointer float)", 160], + ["L3", "(pointer float)", 100], + ["L4", "(pointer float)", 72], + ["L5", "(pointer float)", 72], + ["L6", "(pointer float)", 72], + ["L7", "(pointer float)", 72], + ["L8", "(pointer float)", 44], + ["L9", "(pointer float)", 44], + ["L10", "(pointer float)", 44], + ["L11", "(pointer float)", 44], + ["L12", "(pointer float)", 40], + ["L13", "(pointer float)", 40], + ["L14", "(pointer float)", 40], + ["L15", "(pointer float)", 40], + ["L16", "(pointer float)", 28], + ["L17", "(pointer float)", 28], + ["L18", "(pointer float)", 28], + ["L19", "(pointer float)", 28] + ], + "ocean-frames": [["L1", "(pointer uint32)", 16384]], + "task-control-h": [ + ["L1042", "uint64", true], + ["L1047", "uint64", true], + ["L1048", "uint64", true], + ["L1045", "uint64", true], + ["L1049", "uint64", true], + ["L1043", "uint64", true], + ["L1046", "uint64", true], + ["L1044", "uint64", true] ] } diff --git a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc index 5a9b6435ee..0f5c8c113e 100644 --- a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc +++ b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc @@ -1,4 +1,13 @@ { "quaternion-smooth-seek!": [[16, "quaternion"]], - "eul->matrix": [[16, "vector"]] + "eul->matrix": [[16, "vector"]], + "segment-segment-find-intersection-xz": [[16, "vector"]], + "vector-line-xz-distance-point!": [[16, "matrix"]], + "vector-segment-xz-distance-point!": [[16, "matrix"]], + "nearest-dist2-between-moving-points": [[16, ["inline-array", "vector", 2]]], + "vector-circle-tangent-new": [ + [32, "vector"], + [48, "vector"] + ], + "rotate-vector-to-vector": [[16, "quaternion"]] } diff --git a/decompiler/config/jak3/ntsc_v1/type_casts.jsonc b/decompiler/config/jak3/ntsc_v1/type_casts.jsonc index 83f633ed3f..2927657511 100644 --- a/decompiler/config/jak3/ntsc_v1/type_casts.jsonc +++ b/decompiler/config/jak3/ntsc_v1/type_casts.jsonc @@ -47,10 +47,6 @@ [13, "a0", "pointer"], [25, "v1", "pointer"] ], - "(method 14 dead-pool)": [ - [[24, 25], "v1", "(pointer process)"], - [[30, 39], "s4", "(pointer process)"] - ], "method-state": [[12, "a2", "state"]], "(method 0 protect-frame)": [ [0, "a0", "int"], @@ -86,5 +82,44 @@ [18, "f0", "float"], [18, "f1", "float"], [[23, 32], "f0", "float"] + ], + "generate-rand-vector-on-sphere": [ + [12, "v1", "float"], + [28, "v1", "float"] + ], + "vector-segment-distance-point!": [[[21, 30], "f1", "float"]], + "vector4-array-add!": [ + [11, "s5", "(inline-array vector4)"], + [12, "s4", "(inline-array vector4)"], + [13, "gp", "(inline-array vector4)"] + ], + "vector4-array-sub!": [ + [11, "s5", "(inline-array vector4)"], + [12, "s4", "(inline-array vector4)"], + [13, "gp", "(inline-array vector4)"] + ], + "vector4-array-mul!": [ + [11, "s5", "(inline-array vector4)"], + [12, "s4", "(inline-array vector4)"], + [13, "gp", "(inline-array vector4)"] + ], + "vector4-array-scale!": [ + [11, "s5", "(inline-array vector4)"], + [12, "gp", "(inline-array vector4)"] + ], + "vector4-array-madd!": [ + [13, "s5", "(inline-array vector4)"], + [14, "s4", "(inline-array vector4)"], + [15, "gp", "(inline-array vector4)"] + ], + "vector4-array-msub!": [ + [13, "s5", "(inline-array vector4)"], + [14, "s4", "(inline-array vector4)"], + [15, "gp", "(inline-array vector4)"] + ], + "vector4-array-lerp!": [ + [13, "s5", "(inline-array vector4)"], + [14, "s4", "(inline-array vector4)"], + [15, "gp", "(inline-array vector4)"] ] } diff --git a/decompiler/config/jak3/ntsc_v1/var_names.jsonc b/decompiler/config/jak3/ntsc_v1/var_names.jsonc index 53268a6f9f..af5d335175 100644 --- a/decompiler/config/jak3/ntsc_v1/var_names.jsonc +++ b/decompiler/config/jak3/ntsc_v1/var_names.jsonc @@ -170,9 +170,6 @@ "(method 0 process-tree)": { "args": ["allocation", "type-to-make", "name"] }, - "(method 0 process)": { - "args": ["allocation", "type-to-make", "name"] - }, "(method 9 process-tree)": { "args": ["this", "active-tree", "name", "stack-pointer"] }, @@ -333,7 +330,6 @@ "change-to-last-brother": { "args": ["proc"] }, - "matrix-transpose!": { "args": ["dst", "src"] }, @@ -414,5 +410,11 @@ }, "string>=?": { "args": ["a", "b"] + }, + "game-task->string": { + "args": ["task"], + "vars": { + "v1-0": "val" + } } } diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index 5436e8e8aa..e65af006df 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -967,6 +967,12 @@ const std::unordered_map< {"speeches", ArrayFieldDecompMeta(TypeSpec("bot-speech-info"), 16)}, {"dirs", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}, {"speech-tunings", ArrayFieldDecompMeta(TypeSpec("bot-speech-tuning"), 16)}}}, + }}, + {GameVersion::Jak3, + { + {"ocean-near-indices", + {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-near-index"), 32)}}}, + {"ocean-mid-masks", {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-mid-mask"), 8)}}}, }}}; goos::Object decompile_structure(const TypeSpec& type, diff --git a/goal_src/jak3/engine/game/task/game-task-h.gc b/goal_src/jak3/engine/game/task/game-task-h.gc index c327511415..675a959453 100644 --- a/goal_src/jak3/engine/game/task/game-task-h.gc +++ b/goal_src/jak3/engine/game/task/game-task-h.gc @@ -5,5 +5,959 @@ ;; name in dgo: game-task-h ;; dgos: GAME +;; +++game-task +(defenum game-task + :type uint8 + :bitfield #f + (unknown -1) + (none 0) + (complete 1) + (dummy0 2) + (eco-blue-button 3) + (eco-yellow-button 4) + (eco-red-button 5) + (city-start 6) + (desert-interceptors 7) + (desert-vehicle-training-1 8) + (desert-vehicle-training-2 9) + (arena-training-1 10) + (arena-fight-1 11) + (wascity-chase 12) + (wascity-pre-game 13) + (desert-turtle-training 14) + (desert-course-race 15) + (desert-artifact-race-1 16) + (wascity-leaper-race 17) + (desert-hover 18) + (arena-fight-2 19) + (desert-catch-lizards 20) + (desert-rescue 21) + (wascity-gungame 22) + (arena-fight-3 23) + (nest-eggs 24) + (temple-climb 25) + (desert-glide 26) + (volcano-darkeco 27) + (temple-oracle 28) + (desert-oasis-defense 29) + (temple-tests 30) + (comb-travel 31) + (mine-explore 32) + (mine-blow 33) + (mine-boss 34) + (sewer-met-hum 35) + (city-vehicle-training 36) + (city-port-fight 37) + (city-port-attack 38) + (city-gun-course-1 39) + (city-sniper-fight 40) + (sewer-kg-met 41) + (city-destroy-darkeco 42) + (forest-kill-plants 43) + (city-destroy-grid 44) + (city-hijack-vehicle 45) + (city-port-assault 46) + (city-gun-course-2 47) + (city-blow-barricade 48) + (city-protect-hq 49) + (sewer-hum-kg 50) + (city-power-game 51) + (desert-artifact-race-2 52) + (nest-hunt 53) + (desert-beast-battle 54) + (desert-jump-mission 55) + (desert-chase-marauders 56) + (forest-ring-chase 57) + (factory-sky-battle 58) + (factory-assault 59) + (factory-boss 60) + (temple-defend 61) + (wascity-defend 62) + (forest-turn-on-machine 63) + (precursor-tour 64) + (city-blow-tower 65) + (tower-destroy 66) + (palace-ruins-patrol 67) + (palace-ruins-attack 68) + (comb-wild-ride 69) + (precursor-destroy-ship 70) + (desert-final-boss 71) + (city-win 72) + (desert-bbush-get-to-1 73) + (desert-bbush-get-to-2 74) + (desert-bbush-get-to-3 75) + (desert-bbush-get-to-4 76) + (desert-bbush-get-to-5 77) + (desert-bbush-get-to-6 78) + (desert-bbush-get-to-7 79) + (desert-bbush-get-to-8 80) + (desert-bbush-get-to-9 81) + (desert-bbush-get-to-11 82) + (desert-bbush-get-to-12 83) + (desert-bbush-get-to-14 84) + (desert-bbush-get-to-16 85) + (desert-bbush-get-to-17 86) + (wascity-bbush-get-to-18 87) + (desert-bbush-get-to-19 88) + (wascity-bbush-get-to-20 89) + (wascity-bbush-get-to-21 90) + (wascity-bbush-get-to-22 91) + (wascity-bbush-get-to-23 92) + (wascity-bbush-get-to-24 93) + (wascity-bbush-get-to-25 94) + (city-bbush-get-to-26 95) + (city-bbush-get-to-27 96) + (city-bbush-get-to-28 97) + (city-bbush-get-to-29 98) + (city-bbush-get-to-30 99) + (city-bbush-get-to-31 100) + (city-bbush-get-to-32 101) + (city-bbush-get-to-33 102) + (city-bbush-get-to-34 103) + (city-bbush-get-to-35 104) + (city-bbush-get-to-36 105) + (city-bbush-get-to-37 106) + (city-bbush-get-to-38 107) + (city-bbush-get-to-39 108) + (city-bbush-get-to-40 109) + (city-bbush-get-to-41 110) + (city-bbush-get-to-42 111) + (city-bbush-get-to-43 112) + (city-bbush-get-to-44 113) + (desert-bbush-ring-1 114) + (desert-bbush-ring-2 115) + (wascity-bbush-ring-3 116) + (wascity-bbush-ring-4 117) + (city-bbush-ring-5 118) + (city-bbush-ring-6 119) + (desert-bbush-egg-spider-1 120) + (desert-bbush-spirit-chase-1 121) + (wascity-bbush-spirit-chase-2 122) + (city-bbush-spirit-chase-3 123) + (desert-bbush-timer-chase-1 124) + (wascity-bbush-timer-chase-2 125) + (desert-bbush-air-time 126) + (desert-bbush-total-air-time 127) + (desert-bbush-jump-distance 128) + (desert-bbush-total-jump-distance 129) + (desert-bbush-roll-count 130) + (desert-bbush-time-trial-1 131) + (desert-bbush-rally 132) + (city-bbush-port-attack 133) + (desert-rescue-bbush 134) + (city-gun-course-play-for-fun 135) + (city-jetboard-bbush 136) + (desert-bbush-destroy-interceptors 137) + (max 138) + ) +;; ---game-task + +;; +++game-task-node +(defenum game-task-node + :type uint16 + (none) + (city-start-start) + (city-start-introduction) + (city-start-resolution) + (desert-interceptors-attack) + (desert-vehicle-training-1-introduction) + (desert-vehicle-training-2-introduction) + (arena-training-1-introduction) + (arena-training-1-collect) + (arena-training-1-resolution) + (arena-fight-1-introduction) + (arena-fight-1-fight) + (arena-fight-1-throne) + (arena-fight-1-resolution) + (wascity-chase-introduction) + (wascity-chase-resolution) + (wascity-pre-game-introduction) + (wascity-pre-game-wait) + (wascity-pre-game-resolution) + (wascity-pre-game-post-game) + (wascity-pre-game-bronze) + (wascity-pre-game-silver) + (wascity-pre-game-gold) + (desert-turtle-training-introduction) + (desert-turtle-training-restrict-to-turtle) + (desert-turtle-training-in-desert) + (desert-turtle-training-resolution) + (desert-course-race-introduction) + (desert-course-race-restrict-to-turtle) + (desert-course-race-post-intro) + (desert-course-race-race) + (desert-course-race-win) + (desert-course-race-resolution) + (desert-artifact-race-1-introduction) + (desert-artifact-race-1-post-intro) + (desert-artifact-race-1-race) + (desert-artifact-race-1-resolution) + (wascity-leaper-race-introduction) + (wascity-leaper-race-resolution) + (desert-hover-introduction) + (desert-hover-resolution) + (arena-fight-2-introduction) + (arena-fight-2-gun-training) + (arena-fight-2-fight) + (arena-fight-2-resolution) + (desert-catch-lizards-introduction) + (desert-catch-lizards-restrict-to-snake) + (desert-catch-lizards-get-to-corral) + (desert-catch-lizards-resolution) + (desert-rescue-introduction) + (desert-rescue-get-vehicle) + (desert-rescue-post-intro) + (desert-rescue-rescue) + (desert-rescue-dead-wlander-movie) + (desert-rescue-satellite-fight) + (desert-rescue-resolution) + (desert-rescue-hold-doors) + (wascity-gungame-introduction) + (wascity-gungame-resolution) + (wascity-gungame-play-for-fun) + (wascity-gungame-bronze) + (wascity-gungame-silver) + (wascity-gungame-gold) + (arena-fight-3-introduction) + (arena-fight-3-training) + (arena-fight-3-fight) + (arena-fight-3-resolution) + (nest-eggs-introduction) + (nest-eggs-get-to-scorpion) + (nest-eggs-wall) + (nest-eggs-tunnel) + (nest-eggs-resolution) + (nest-eggs-gas) + (temple-climb-introduction) + (temple-climb-resolution) + (desert-glide-introduction) + (desert-glide-templetop) + (desert-glide-resolution) + (volcano-darkeco-introduction) + (volcano-darkeco-catch-flut) + (volcano-darkeco-indax-1-introduction) + (volcano-darkeco-indax-1) + (volcano-darkeco-indax-2-introduction) + (volcano-darkeco-indax-2) + (volcano-darkeco-resolution) + (temple-oracle-introduction) + (temple-oracle-stairs) + (temple-oracle-watchers-complete) + (temple-oracle-pre-pole-room) + (temple-oracle-pole-room) + (temple-oracle-pole-half) + (temple-oracle-door-1) + (temple-oracle-meeting) + (temple-oracle-powerup) + (temple-oracle-resolution) + (desert-oasis-defense-introduction) + (desert-oasis-defense-meeting) + (desert-oasis-defense-battle) + (desert-oasis-defense-resolution) + (temple-tests-introduction) + (temple-tests-hover-training) + (temple-tests-oracle-door-crossed) + (temple-tests-oracle) + (temple-tests-training) + (temple-tests-door-1) + (temple-tests-door-2) + (temple-tests-door-3) + (temple-tests-resolution) + (comb-travel-introduction) + (comb-travel-resolution) + (comb-travel-training) + (mine-explore-introduction) + (mine-explore-elevator) + (mine-explore-armor) + (mine-explore-resolution) + (mine-blow-introduction) + (mine-blow-elevator) + (mine-blow-resolution) + (mine-boss-introduction) + (mine-boss-resolution) + (sewer-met-hum-introduction) + (sewer-met-hum-resolution) + (city-vehicle-training-hover-zone-1) + (city-vehicle-training-hover-zone-2) + (city-port-fight-introduction) + (city-port-fight-resolution) + (city-port-attack-introduction) + (city-port-attack-get-on) + (city-port-attack-mission) + (city-port-attack-resolution) + (city-gun-course-1-introduction) + (city-gun-course-1-post-intro) + (city-gun-course-1-resolution) + (city-gun-course-1-tess) + (city-gun-course-1-bronze) + (city-gun-course-1-silver) + (city-gun-course-1-gold) + (city-sniper-fight-introduction) + (city-sniper-fight-resolution) + (sewer-kg-met-introduction) + (sewer-kg-met-button0-pressed) + (sewer-kg-met-button1-pressed) + (sewer-kg-met-resolution) + (city-destroy-darkeco-introduction) + (city-destroy-darkeco-orbs) + (city-destroy-darkeco-dark-punch) + (city-destroy-darkeco-resolution) + (forest-kill-plants-introduction) + (forest-kill-plants-pillars) + (forest-kill-plants-armor) + (forest-kill-plants-resolution) + (city-destroy-grid-introduction) + (city-destroy-grid-resolution) + (city-hijack-vehicle-introduction) + (city-hijack-vehicle-infiltrate) + (city-hijack-vehicle-escape) + (city-hijack-vehicle-resolution) + (city-port-assault-introduction) + (city-port-assault-force-load-borrows) + (city-port-assault-resolution) + (city-gun-course-2-introduction) + (city-gun-course-2-post-intro) + (city-gun-course-2-resolution) + (city-gun-course-2-bronze) + (city-gun-course-2-silver) + (city-gun-course-2-gold) + (city-blow-barricade-introduction) + (city-blow-barricade-resolution) + (city-protect-hq-introduction) + (city-protect-hq-resolution) + (sewer-hum-kg-introduction) + (sewer-hum-kg-switch-off) + (sewer-hum-kg-resolution) + (city-power-game-introduction) + (city-power-game-wait) + (city-power-game-resolution) + (city-power-game-post-game) + (city-power-game-bronze) + (city-power-game-silver) + (city-power-game-gold) + (desert-artifact-race-2-introduction) + (desert-artifact-race-2-post-intro) + (desert-artifact-race-2-race) + (desert-artifact-race-2-resolution) + (nest-hunt-introduction) + (nest-hunt-sig) + (nest-hunt-fight) + (nest-hunt-get-crystal) + (nest-hunt-resolution) + (desert-beast-battle-introduction) + (desert-beast-battle-kill-last-beast) + (desert-beast-battle-resolution) + (desert-jump-mission-introduction) + (desert-jump-mission-post-intro) + (desert-jump-mission-protect-doors) + (desert-jump-mission-resolution) + (desert-chase-marauders-introduction) + (desert-chase-marauders-get-to-stronghold) + (desert-chase-marauders-ambush) + (desert-chase-marauders-chase) + (desert-chase-marauders-resolution) + (forest-ring-chase-introduction) + (forest-ring-chase-statues) + (forest-ring-chase-statue-1) + (forest-ring-chase-statue-2) + (forest-ring-chase-statue-3) + (forest-ring-chase-statue-4) + (forest-ring-chase-statue-5) + (forest-ring-chase-resolution) + (factory-sky-battle-introduction) + (factory-sky-battle-hanger) + (factory-sky-battle-wave1) + (factory-sky-battle-wave2) + (factory-sky-battle-tower1) + (factory-sky-battle-tower2) + (factory-sky-battle-tower3) + (factory-sky-battle-tower4) + (factory-sky-battle-resolution) + (factory-assault-introduction) + (factory-assault-indax-1-introduction) + (factory-assault-indax-1) + (factory-assault-indax-2-introduction) + (factory-assault-indax-2) + (factory-assault-indax-3-introduction) + (factory-assault-indax-3) + (factory-assault-indax-4-introduction) + (factory-assault-indax-4) + (factory-assault-get-vehicle) + (factory-assault-broke-ultimate-fence) + (factory-assault-resolution) + (factory-boss-introduction) + (factory-boss-resolution) + (temple-defend-introduction) + (temple-defend-talk-box) + (temple-defend-door-1) + (temple-defend-door-2) + (temple-defend-door-3) + (temple-defend-door-4) + (temple-defend-oracle) + (temple-defend-training) + (temple-defend-resolution) + (wascity-defend-introduction) + (wascity-defend-get-to) + (wascity-defend-resolution) + (forest-turn-on-machine-introduction) + (forest-turn-on-machine-spawners) + (forest-turn-on-machine-resolution) + (precursor-tour-introduction) + (precursor-tour-generator-trigger) + (precursor-tour-resolution) + (city-blow-tower-introduction) + (city-blow-tower-phase-1) + (city-blow-tower-resolution) + (tower-destroy-introduction) + (tower-destroy-climb) + (tower-destroy-resolution) + (palace-ruins-patrol-introduction) + (palace-ruins-patrol-stadium) + (palace-ruins-patrol-resolution) + (palace-ruins-attack-introduction) + (palace-ruins-attack-resolution) + (comb-wild-ride-introduction) + (comb-wild-ride-resolution) + (precursor-destroy-ship-introduction) + (precursor-destroy-ship-escape) + (precursor-destroy-ship-escape-continue) + (precursor-destroy-ship-resolution) + (desert-final-boss-introduction) + (desert-final-boss-walker) + (desert-final-boss-climb) + (desert-final-boss-resolution) + (city-win-introduction) + (city-win-resolution) + (desert-bbush-get-to-1-introduction) + (desert-bbush-get-to-1-resolution) + (desert-bbush-get-to-2-introduction) + (desert-bbush-get-to-2-resolution) + (desert-bbush-get-to-3-introduction) + (desert-bbush-get-to-3-resolution) + (desert-bbush-get-to-4-introduction) + (desert-bbush-get-to-4-resolution) + (desert-bbush-get-to-5-introduction) + (desert-bbush-get-to-5-resolution) + (desert-bbush-get-to-6-introduction) + (desert-bbush-get-to-6-resolution) + (desert-bbush-get-to-7-introduction) + (desert-bbush-get-to-7-resolution) + (desert-bbush-get-to-8-introduction) + (desert-bbush-get-to-8-resolution) + (desert-bbush-get-to-9-introduction) + (desert-bbush-get-to-9-resolution) + (desert-bbush-get-to-11-introduction) + (desert-bbush-get-to-11-resolution) + (desert-bbush-get-to-12-introduction) + (desert-bbush-get-to-12-resolution) + (desert-bbush-get-to-14-introduction) + (desert-bbush-get-to-14-resolution) + (desert-bbush-get-to-16-introduction) + (desert-bbush-get-to-16-resolution) + (desert-bbush-get-to-17-introduction) + (desert-bbush-get-to-17-resolution) + (wascity-bbush-get-to-18-introduction) + (wascity-bbush-get-to-18-resolution) + (wascity-bbush-get-to-19-introduction) + (wascity-bbush-get-to-19-resolution) + (wascity-bbush-get-to-20-introduction) + (wascity-bbush-get-to-20-resolution) + (wascity-bbush-get-to-21-introduction) + (wascity-bbush-get-to-21-resolution) + (wascity-bbush-get-to-22-introduction) + (wascity-bbush-get-to-22-resolution) + (wascity-bbush-get-to-23-introduction) + (wascity-bbush-get-to-23-resolution) + (wascity-bbush-get-to-24-introduction) + (wascity-bbush-get-to-24-resolution) + (wascity-bbush-get-to-25-introduction) + (wascity-bbush-get-to-25-resolution) + (city-bbush-get-to-26-introduction) + (city-bbush-get-to-26-resolution) + (city-bbush-get-to-27-introduction) + (city-bbush-get-to-27-resolution) + (city-bbush-get-to-28-introduction) + (city-bbush-get-to-28-resolution) + (city-bbush-get-to-29-introduction) + (city-bbush-get-to-29-resolution) + (city-bbush-get-to-30-introduction) + (city-bbush-get-to-30-resolution) + (city-bbush-get-to-31-introduction) + (city-bbush-get-to-31-resolution) + (city-bbush-get-to-32-introduction) + (city-bbush-get-to-32-resolution) + (city-bbush-get-to-33-introduction) + (city-bbush-get-to-33-resolution) + (city-bbush-get-to-34-introduction) + (city-bbush-get-to-34-resolution) + (city-bbush-get-to-35-introduction) + (city-bbush-get-to-35-resolution) + (city-bbush-get-to-36-introduction) + (city-bbush-get-to-36-resolution) + (city-bbush-get-to-37-introduction) + (city-bbush-get-to-37-resolution) + (city-bbush-get-to-38-introduction) + (city-bbush-get-to-38-resolution) + (city-bbush-get-to-39-introduction) + (city-bbush-get-to-39-resolution) + (city-bbush-get-to-40-introduction) + (city-bbush-get-to-40-resolution) + (city-bbush-get-to-41-introduction) + (city-bbush-get-to-41-resolution) + (city-bbush-get-to-42-introduction) + (city-bbush-get-to-42-resolution) + (city-bbush-get-to-43-introduction) + (city-bbush-get-to-43-resolution) + (city-bbush-get-to-44-introduction) + (city-bbush-get-to-44-resolution) + (desert-bbush-ring-1-introduction) + (desert-bbush-ring-1-resolution) + (desert-bbush-ring-2-introduction) + (desert-bbush-ring-2-resolution) + (wascity-bbush-ring-3-introduction) + (wascity-bbush-ring-3-resolution) + (wascity-bbush-ring-4-introduction) + (wascity-bbush-ring-4-resolution) + (city-bbush-ring-5-introduction) + (city-bbush-ring-5-resolution) + (city-bbush-ring-6-introduction) + (city-bbush-ring-6-resolution) + (desert-bbush-egg-spider-1-introduction) + (desert-bbush-egg-spider-1-resolution) + (desert-bbush-spirit-chase-1-introduction) + (desert-bbush-spirit-chase-1-resolution) + (wascity-bbush-spirit-chase-2-introduction) + (wascity-bbush-spirit-chase-2-resolution) + (city-bbush-spirit-chase-3-introduction) + (city-bbush-spirit-chase-3-resolution) + (desert-bbush-timer-chase-1-introduction) + (desert-bbush-timer-chase-1-resolution) + (wascity-bbush-timer-chase-2-introduction) + (wascity-bbush-timer-chase-2-resolution) + (desert-bbush-air-time-introduction) + (desert-bbush-air-time-resolution) + (desert-bbush-total-air-time-introduction) + (desert-bbush-total-air-time-resolution) + (desert-bbush-jump-distance-introduction) + (desert-bbush-jump-distance-resolution) + (desert-bbush-total-jump-distance-introduction) + (desert-bbush-total-jump-distance-resolution) + (desert-bbush-roll-count-introduction) + (desert-bbush-roll-count-resolution) + (desert-bbush-time-trial-1-introduction) + (desert-bbush-time-trial-1-resolution) + (desert-bbush-rally-introduction) + (desert-bbush-rally-resolution) + (city-bbush-port-attack-introduction) + (city-bbush-port-attack-port-attack-load) + (city-bbush-port-attack-resolution) + (desert-rescue-bbush-introduction) + (desert-rescue-bbush-resolution) + (city-gun-course-play-for-fun-introduction) + (city-gun-course-play-for-fun-resolution) + (city-gun-course-play-for-fun-bronze-rnc-1) + (city-gun-course-play-for-fun-silver-rnc-1) + (city-gun-course-play-for-fun-gold-rnc-1) + (city-gun-course-play-for-fun-bronze-rnc-2) + (city-gun-course-play-for-fun-silver-rnc-2) + (city-gun-course-play-for-fun-gold-rnc-2) + (city-jetboard-bbush-introduction) + (city-jetboard-bbush-resolution) + (desert-bbush-destroy-interceptors-introduction) + (desert-bbush-destroy-interceptors-resolution) + ) +;; ---game-task-node + +;; +++game-task-action +(defenum game-task-action + :bitfield #f + :type uint8 + (hide 0) + (idle 1) + (say 2) + (talk 3) + (show 4) + (trade 5) + (play 6) + (menu 7) + ) +;; ---game-task-action + + +;; +++game-task-actor +(defenum game-task-actor + :type uint8 + (none 0) + (minimap 1) + (oracle-oracle 2) + (daxter 3) + (damus-arena 4) + (damus-waspal 5) + (damus-desert 6) + (damus-wasdoors 7) + (damus-wascity 8) + (damus-ruins 9) + (kleever-arena 10) + (kleever-wasdoors 11) + (kleever-pen 12) + (seem-wascity 13) + (seem-temple 14) + (ashelin-oasis 15) + (ashelin-talkbox 16) + (ashelin-freehq 17) + (veger-cave 18) + (veger-ruins 19) + (torn-hiphog 20) + (torn-hiptable 21) + (torn-hipbar 22) + (torn-hipbooth 23) + (torn-freehq 24) + (tess-gungame 25) + (samos-talkbox 26) + (sig-talkbox 27) + (sig-wasdoors 28) + (sig-nest 29) + (pecker-onintent 30) + (onin-onintent 31) + (onin-talkbox 32) + (keira-garage 33) + (was-pre-game-wascityb 34) + (kleever-wascityb 35) + (seem-wascitya 36) + (gun-gungame 37) + (vin-vinroom 38) + (power-game-vinroom 39) + (jinx-hiphog 40) + (samos-genb 41) + (wascity-turret 42) + (seem-leaper 44) + (monk-wascity 43) + (wascity-leaper 45) + (was-pre-game-deserte 46) + (onin-freehq 48) + (samos-freehq 47) + (keira-freehq 49) + (keira-genb 50) + (monk-mummy 51) + (pecker 52) + (samos-onintent 53) + (unused-slot-8 54) + (unused-slot-9 55) + (unused-slot-10 56) + (unused-slot-11 57) + (unused-slot-12 58) + (unused-slot-13 59) + (unused-slot-14 60) + (unused-slot-15 61) + (unused-slot-16 62) + (unused-slot-17 63) + (unused-slot-18 64) + (unused-slot-19 65) + (unused-slot-20 66) + (unused-slot-21 67) + (unused-slot-22 68) + (unused-slot-23 69) + (unused-slot-24 70) + (unused-slot-25 71) + (unused-slot-26 72) + (unused-slot-27 73) + (unused-slot-28 74) + (unused-slot-29 75) + (unused-slot-30 76) + (unused-slot-31 77) + (burning-bush-slumb 78) + (burning-bush-gena 79) + (burning-bush-genc 80) + (burning-bush-marka 81) + (burning-bush-sluma 82) + (burning-bush-slumb-2 83) + (burning-bush-slumc 84) + (burning-bush-farma 85) + (burning-bush-farmb 86) + (burning-bush-markb 87) + (burning-bush-markb-2 88) + (burning-bush-gena-2 89) + (burning-bush-genb 90) + (burning-bush-genc-2 91) + (burning-bush-inda 92) + (burning-bush-indb 93) + (burning-bush-port 94) + (burning-bush-port-2 95) + (burning-bush-port-3 96) + (burning-bush-pal 97) + (burning-bush-stadium 98) + (burning-bush-pal-2 99) + (burning-bush-genb-2 100) + (burning-bush-arena 101) + (burning-bush-desd 102) + (burning-bush-desc 103) + (burning-bush-desa 104) + (burning-bush-desg 105) + (burning-bush-desh 106) + (burning-bush-desc-2 107) + (burning-bush-dese 108) + (burning-bush-desb 109) + (burning-bush-desa-2 110) + (burning-bush-desc-3 111) + (burning-bush-desg-2 112) + (burning-bush-desd-2 113) + (burning-bush-desg-3 114) + (burning-bush-dese-2 115) + (burning-bush-dese-3 116) + (burning-bush-desd-3 117) + (burning-bush-desb-2 118) + (burning-bush-wasa-1 119) + (burning-bush-wasa-2 120) + (burning-bush-wasa-3 121) + (burning-bush-wasa-4 122) + (burning-bush-wasb-1 123) + (burning-bush-wasb-2 124) + (burning-bush-wasb-3 125) + (burning-bush-wasb-4 126) + (burning-bush-desg-4 127) + (burning-bush-wasb-5 128) + (burning-bush-wasb-6 129) + (burning-bush-desa-3 130) + (burning-bush-sluma-1 131) + (burning-bush-genb-1 132) + (burning-bush-slumb-1 133) + (burning-bush-wasa-5 134) + (burning-bush-desd-4 135) + (burning-bush-slumb-3 136) + (burning-bush-desc-4 137) + (burning-bush-inda-1 138) + (burning-bush-dese-4 139) + (burning-bush-desc-5 140) + (burning-bush-desb-3 141) + (burning-bush-wasa-6 142) + (burning-bush-wasb-7 143) + (burning-bush-indb-1 144) + (burning-bush-desf 145) + (burning-bush-port-1 146) + (burning-bush-genb-3 147) + (burning-bush-genb-4 148) + (burning-bush-genb-5 149) + (burning-bush-slumb-4 150) + (burning-bush-slumc-1 151) + (burning-bush-dese-5 152) + (burning-bush-port-4 153) + (burning-bush-slumc-2 154) + (burning-bush-sluma-2 155) + (burning-bush-sluma-3 156) + (burning-bush-indb-2 157) + (burning-bush-indb-3 158) + (burning-bush-inda-2 159) + (burning-bush-inda-3 160) + (burning-bush-inda-4 161) + (burning-bush-port-5 162) + (burning-bush-port-6 163) + (burning-bush-port-7 164) + (burning-bush-port-8 165) + (burning-bush-desd-5 166) + (burning-bush-inda-5 167) + (burning-bush-desb-4 168) + ) +;; ---game-task-actor + + +;; +++game-task-node-command +(defenum game-task-node-command + :type uint8 + (none 0) + (add-sidekick 1) + (sub-sidekick 2) + (add-board 3) + (sub-board 4) + (add-gun-red-1 5) + (add-gun-red-2 6) + (add-gun-red-3 7) + (add-gun-red-ammo-1 8) + (add-gun-red-ammo-2 9) + (add-gun-yellow-1 10) + (add-gun-yellow-2 11) + (add-gun-yellow-3 12) + (add-gun-yellow-ammo-1 13) + (add-gun-yellow-ammo-2 14) + (add-gun-blue-1 15) + (add-gun-blue-2 16) + (add-gun-blue-3 17) + (add-gun-blue-ammo-1 18) + (add-gun-blue-ammo-2 19) + (add-gun-dark-1 20) + (add-gun-dark-2 21) + (add-gun-dark-3 22) + (add-gun-dark-ammo-1 23) + (add-gun-dark-ammo-2 24) + (add-pass-front-gate 25) + (add-pass-port-mh 26) + (add-pass-port-inda 27) + (add-pass-inda-indb 28) + (add-pass-indb-sluma 29) + (add-pass-slumb-genb 30) + (add-darkeco 31) + (add-darkjak 32) + (add-darkjak-smack 33) + (add-darkjak-bomb0 34) + (add-darkjak-bomb1 35) + (add-darkjak-tracking 36) + (add-darkjak-invinc 37) + (add-lighteco 38) + (add-lightjak 39) + (add-lightjak-regen 40) + (add-lightjak-freeze 41) + (add-lightjak-shield 42) + (add-lightjak-swoop 43) + (add-board-training 44) + (add-board-launch 45) + (add-board-trail 46) + (add-board-zap 47) + (sub-board-trail 48) + (add-artifact-invis 49) + (add-armor-0 50) + (add-armor-1 51) + (add-armor-2 52) + (add-armor-3 53) + (add-amulet-1 54) + (add-amulet-2 55) + (add-amulet-3 56) + (add-light-eco-crystal 57) + (add-dark-eco-crystal 58) + (add-seal 59) + (add-cypher-gliph 60) + (add-star-map 61) + (add-vehicle-toad 62) + (add-vehicle-snake 63) + (add-vehicle-scorpion 64) + (add-vehicle-turtle 65) + (add-vehicle-rhino 66) + (add-av-cube 67) + (add-av-reflector 68) + (add-av-prism 69) + (add-av-generator 70) + (add-av-map 71) + (add-jakc 72) + ) +;; ---game-task-node-command + + +;; +++game-task-node-flag +(defenum game-task-node-flag + :type uint32 ;; guess + :bitfield #t + (closed 0) + (data 1) + (auto-close 2) + (disk-close 3) + (kiosk-close 4) + (close-task 5) + (utility-node 6) + (abs-task-mask 7) + (set-task-mask 8) + (clear-task-mask 9) + (save-on-life 10) + (save-on-try 11) + (reset-on-try 12) + (no-restart 13) + (exclusive 14) + (intro-wait 15) + (city-wait 16) + (no-hud-wait 17) + (no-percent 18) + (act1 19) + (act2 20) + (act3 21) + (bbush 22) + ) +;; ---game-task-node-flag + + +;; +++game-task-flags +(defenum game-task-flags + :bitfield #t + :type uint8 + (gatflag-00) + (gatflag-01) + (gatflag-02) + ) +;; ---game-task-flags + + +;; +++game-task-icon +(defenum game-task-icon + :type uint8 + (gaticon-00) + (gaticon-01) + (gaticon-02) + (gaticon-03) + (gaticon-04) + (gaticon-05) + (gaticon-06) + (gaticon-07) + (gaticon-08) + (gaticon-09) + (gaticon-10) + (gaticon-11) + (gaticon-12) + (gaticon-13) + (gaticon-14) + (gaticon-15) + (gaticon-16) + (gaticon-17) + (gaticon-18) + (gaticon-19) + (gaticon-20) + (gaticon-21) + (gaticon-22) + (gaticon-23) + (gaticon-24) + (gaticon-25) + (gaticon-26) + (gaticon-27) + (gaticon-28) + (gaticon-29) + (gaticon-30) + (gaticon-31) + (gaticon-32) + (gaticon-33) + (gaticon-34) + (gaticon-35) + (gaticon-36) + (gaticon-37) + (gaticon-38) + (gaticon-39) + (gaticon-40) + (gaticon-41) + (gaticon-42) + (gaticon-43) + (gaticon-44) + (gaticon-45) + (gaticon-46) + (gaticon-47) + (gaticon-48) + (gaticon-49) + (gaticon-50) + (gaticon-51) + (gaticon-52) + (gaticon-53) + (gaticon-54) + (gaticon-55) + (gaticon-56) + (gaticon-57) + (gaticon-58) + (gaticon-59) + (gaticon-60) + (gaticon-61) + (gaticon-62) + (gaticon-63) + (gaticon-64) + (gaticon-65) + (gaticon-66) + (gaticon-67) + (gaticon-68) + (gaticon-69) + ) +;; ---game-task-icon + + ;; DECOMP BEGINS diff --git a/goal_src/jak3/engine/game/task/task-control-h.gc b/goal_src/jak3/engine/game/task/task-control-h.gc index 3fb8f1303e..195cd6abfc 100644 --- a/goal_src/jak3/engine/game/task/task-control-h.gc +++ b/goal_src/jak3/engine/game/task/task-control-h.gc @@ -5,5 +5,1530 @@ ;; name in dgo: task-control-h ;; dgos: GAME +;; +++resetter-message +(defenum resetter-message + :type uint8 + (mission-fail 0) + (mission-retry 1) + (mission-fail-or-retry 2) + ) +;; ---resetter-message + + +;; +++resetter-flag +(defenum resetter-flag + :type uint16 + :bitfield #t + (auto-reset 0) + (text-message 1) + (no-audio 2) + (no-slow-down 3) + (no-message 4) + (no-grab 5) + (no-draw-target 6) + (stop-sfx 7) + (no-audio-first 8) + ) +;; ---resetter-flag + + +;; +++task-manager-mask +(defenum task-manager-mask + :type uint32 + :bitfield #t + (intro-scene) + (resolution-scene) + (time-limit) + (auto-complete) + ) +;; ---task-manager-mask + + +;; +++task-mask +(defenum task-mask + :type uint32 + :bitfield #t + (task0 0) + (task1 1) + (task2 2) + (task3 3) + (task4 4) + (task5 5) + (task6 6) + (task7 7) + (done 8) + (dummy0 9) + (dummy1 10) + (vehicle 11) + (special 12) + (primary0 13) + (ctywide 14) + (never 15) + (movie0 16) + (movie1 17) + (movie2 18) + ) +;; ---task-mask + + ;; DECOMP BEGINS +(defun-debug game-task->string ((task game-task)) + (case task + (((game-task sewer-hum-kg)) + "sewer-hum-kg" + ) + (((game-task temple-defend)) + "temple-defend" + ) + (((game-task city-port-assault)) + "city-port-assault" + ) + (((game-task city-bbush-ring-6)) + "city-bbush-ring-6" + ) + (((game-task city-bbush-spirit-chase-3)) + "city-bbush-spirit-chase-3" + ) + (((game-task city-bbush-get-to-43)) + "city-bbush-get-to-43" + ) + (((game-task desert-vehicle-training-1)) + "desert-vehicle-training-1" + ) + (((game-task eco-red-button)) + "eco-red-button" + ) + (((game-task city-bbush-get-to-36)) + "city-bbush-get-to-36" + ) + (((game-task city-bbush-get-to-33)) + "city-bbush-get-to-33" + ) + (((game-task city-bbush-get-to-29)) + "city-bbush-get-to-29" + ) + (((game-task desert-bbush-ring-2)) + "desert-bbush-ring-2" + ) + (((game-task palace-ruins-attack)) + "palace-ruins-attack" + ) + (((game-task palace-ruins-patrol)) + "palace-ruins-patrol" + ) + (((game-task desert-bbush-air-time)) + "desert-bbush-air-time" + ) + (((game-task city-start)) + "city-start" + ) + (((game-task desert-bbush-ring-1)) + "desert-bbush-ring-1" + ) + (((game-task desert-bbush-get-to-1)) + "desert-bbush-get-to-1" + ) + (((game-task wascity-bbush-get-to-20)) + "wascity-bbush-get-to-20" + ) + (((game-task city-hijack-vehicle)) + "city-hijack-vehicle" + ) + (((game-task city-bbush-port-attack)) + "city-bbush-port-attack" + ) + (((game-task comb-wild-ride)) + "comb-wild-ride" + ) + (((game-task forest-ring-chase)) + "forest-ring-chase" + ) + (((game-task mine-explore)) + "mine-explore" + ) + (((game-task wascity-bbush-get-to-23)) + "wascity-bbush-get-to-23" + ) + (((game-task city-destroy-darkeco)) + "city-destroy-darkeco" + ) + (((game-task factory-sky-battle)) + "factory-sky-battle" + ) + (((game-task city-bbush-get-to-41)) + "city-bbush-get-to-41" + ) + (((game-task city-bbush-get-to-34)) + "city-bbush-get-to-34" + ) + (((game-task city-bbush-get-to-38)) + "city-bbush-get-to-38" + ) + (((game-task wascity-chase)) + "wascity-chase" + ) + (((game-task city-bbush-get-to-27)) + "city-bbush-get-to-27" + ) + (((game-task desert-bbush-get-to-3)) + "desert-bbush-get-to-3" + ) + (((game-task city-vehicle-training)) + "city-vehicle-training" + ) + (((game-task wascity-bbush-get-to-25)) + "wascity-bbush-get-to-25" + ) + (((game-task desert-turtle-training)) + "desert-turtle-training" + ) + (((game-task desert-artifact-race-2)) + "desert-artifact-race-2" + ) + (((game-task city-power-game)) + "city-power-game" + ) + (((game-task volcano-darkeco)) + "volcano-darkeco" + ) + (((game-task tower-destroy)) + "tower-destroy" + ) + (((game-task city-destroy-grid)) + "city-destroy-grid" + ) + (((game-task city-bbush-get-to-26)) + "city-bbush-get-to-26" + ) + (((game-task city-bbush-get-to-42)) + "city-bbush-get-to-42" + ) + (((game-task desert-bbush-get-to-11)) + "desert-bbush-get-to-11" + ) + (((game-task desert-bbush-timer-chase-1)) + "desert-bbush-timer-chase-1" + ) + (((game-task sewer-met-hum)) + "sewer-met-hum" + ) + (((game-task desert-bbush-get-to-2)) + "desert-bbush-get-to-2" + ) + (((game-task dummy0)) + "dummy0" + ) + (((game-task city-port-attack)) + "city-port-attack" + ) + (((game-task city-gun-course-1)) + "city-gun-course-1" + ) + (((game-task arena-fight-2)) + "arena-fight-2" + ) + (((game-task mine-boss)) + "mine-boss" + ) + (((game-task arena-training-1)) + "arena-training-1" + ) + (((game-task city-protect-hq)) + "city-protect-hq" + ) + (((game-task sewer-kg-met)) + "sewer-kg-met" + ) + (((game-task desert-bbush-get-to-14)) + "desert-bbush-get-to-14" + ) + (((game-task desert-bbush-get-to-5)) + "desert-bbush-get-to-5" + ) + (((game-task desert-bbush-total-air-time)) + "desert-bbush-total-air-time" + ) + (((game-task desert-chase-marauders)) + "desert-chase-marauders" + ) + (((game-task temple-tests)) + "temple-tests" + ) + (((game-task city-bbush-get-to-28)) + "city-bbush-get-to-28" + ) + (((game-task factory-assault)) + "factory-assault" + ) + (((game-task desert-bbush-get-to-7)) + "desert-bbush-get-to-7" + ) + (((game-task city-blow-barricade)) + "city-blow-barricade" + ) + (((game-task arena-fight-1)) + "arena-fight-1" + ) + (((game-task city-bbush-get-to-40)) + "city-bbush-get-to-40" + ) + (((game-task max)) + "max" + ) + (((game-task wascity-bbush-ring-3)) + "wascity-bbush-ring-3" + ) + (((game-task city-bbush-get-to-31)) + "city-bbush-get-to-31" + ) + (((game-task city-jetboard-bbush)) + "city-jetboard-bbush" + ) + (((game-task desert-bbush-get-to-9)) + "desert-bbush-get-to-9" + ) + (((game-task wascity-bbush-get-to-18)) + "wascity-bbush-get-to-18" + ) + (((game-task city-port-fight)) + "city-port-fight" + ) + (((game-task precursor-tour)) + "precursor-tour" + ) + (((game-task wascity-bbush-timer-chase-2)) + "wascity-bbush-timer-chase-2" + ) + (((game-task desert-oasis-defense)) + "desert-oasis-defense" + ) + (((game-task desert-catch-lizards)) + "desert-catch-lizards" + ) + (((game-task desert-bbush-get-to-4)) + "desert-bbush-get-to-4" + ) + (((game-task city-bbush-ring-5)) + "city-bbush-ring-5" + ) + (((game-task desert-bbush-rally)) + "desert-bbush-rally" + ) + (((game-task desert-course-race)) + "desert-course-race" + ) + (((game-task city-bbush-get-to-32)) + "city-bbush-get-to-32" + ) + (((game-task desert-final-boss)) + "desert-final-boss" + ) + (((game-task desert-bbush-roll-count)) + "desert-bbush-roll-count" + ) + (((game-task desert-bbush-get-to-8)) + "desert-bbush-get-to-8" + ) + (((game-task complete)) + "complete" + ) + (((game-task desert-bbush-spirit-chase-1)) + "desert-bbush-spirit-chase-1" + ) + (((game-task desert-bbush-get-to-12)) + "desert-bbush-get-to-12" + ) + (((game-task wascity-bbush-get-to-21)) + "wascity-bbush-get-to-21" + ) + (((game-task city-win)) + "city-win" + ) + (((game-task precursor-destroy-ship)) + "precursor-destroy-ship" + ) + (((game-task desert-bbush-get-to-6)) + "desert-bbush-get-to-6" + ) + (((game-task desert-bbush-get-to-19)) + "wascity-bbush-get-to-19" + ) + (((game-task forest-turn-on-machine)) + "forest-turn-on-machine" + ) + (((game-task comb-travel)) + "comb-travel" + ) + (((game-task temple-oracle)) + "temple-oracle" + ) + (((game-task wascity-bbush-spirit-chase-2)) + "wascity-bbush-spirit-chase-2" + ) + (((game-task wascity-bbush-get-to-22)) + "wascity-bbush-get-to-22" + ) + (((game-task city-sniper-fight)) + "city-sniper-fight" + ) + (((game-task desert-beast-battle)) + "desert-beast-battle" + ) + (((game-task city-bbush-get-to-35)) + "city-bbush-get-to-35" + ) + (((game-task desert-bbush-jump-distance)) + "desert-bbush-jump-distance" + ) + (((game-task city-gun-course-play-for-fun)) + "city-gun-course-play-for-fun" + ) + (((game-task desert-rescue-bbush)) + "desert-rescue-bbush" + ) + (((game-task forest-kill-plants)) + "forest-kill-plants" + ) + (((game-task arena-fight-3)) + "arena-fight-3" + ) + (((game-task desert-bbush-get-to-17)) + "desert-bbush-get-to-17" + ) + (((game-task nest-hunt)) + "nest-hunt" + ) + (((game-task wascity-gungame)) + "wascity-gungame" + ) + (((game-task desert-vehicle-training-2)) + "desert-vehicle-training-2" + ) + (((game-task desert-glide)) + "desert-glide" + ) + (((game-task desert-bbush-get-to-16)) + "desert-bbush-get-to-16" + ) + (((game-task nest-eggs)) + "nest-eggs" + ) + (((game-task desert-bbush-destroy-interceptors)) + "desert-bbush-destroy-interceptors" + ) + (((game-task desert-artifact-race-1)) + "desert-artifact-race-1" + ) + (((game-task wascity-bbush-get-to-24)) + "wascity-bbush-get-to-24" + ) + (((game-task city-bbush-get-to-39)) + "city-bbush-get-to-39" + ) + (((game-task temple-climb)) + "temple-climb" + ) + (((game-task desert-rescue)) + "desert-rescue" + ) + (((game-task wascity-bbush-ring-4)) + "wascity-bbush-ring-4" + ) + (((game-task factory-boss)) + "factory-boss" + ) + (((game-task desert-bbush-time-trial-1)) + "desert-bbush-time-trial-1" + ) + (((game-task desert-bbush-total-jump-distance)) + "desert-bbush-total-jump-distance" + ) + (((game-task desert-jump-mission)) + "desert-jump-mission" + ) + (((game-task wascity-leaper-race)) + "wascity-leaper-race" + ) + (((game-task desert-hover)) + "desert-hover" + ) + (((game-task mine-blow)) + "mine-blow" + ) + (((game-task city-bbush-get-to-44)) + "city-bbush-get-to-44" + ) + (((game-task eco-yellow-button)) + "eco-yellow-button" + ) + (((game-task desert-bbush-egg-spider-1)) + "desert-bbush-egg-spider-1" + ) + (((game-task city-gun-course-2)) + "city-gun-course-2" + ) + (((game-task wascity-pre-game)) + "wascity-pre-game" + ) + (((game-task city-bbush-get-to-30)) + "city-bbush-get-to-30" + ) + (((game-task wascity-defend)) + "wascity-defend" + ) + (((game-task city-bbush-get-to-37)) + "city-bbush-get-to-37" + ) + (((game-task city-blow-tower)) + "city-blow-tower" + ) + (((game-task none)) + "none" + ) + (((game-task eco-blue-button)) + "eco-blue-button" + ) + (((game-task desert-interceptors)) + "desert-interceptors" + ) + (else + "*unknown*" + ) + ) + ) + +;; WARN: Return type mismatch int vs game-task. +(defun c-string->game-task ((arg0 string)) + (the-as game-task -1) + ) + +(defun-debug game-task-actor->string ((arg0 game-task-actor)) + (case arg0 + (((game-task-actor wascity-turret)) + "wascity-turret" + ) + (((game-task-actor none)) + "none" + ) + (((game-task-actor burning-bush-genb-2)) + "burning-bush-genb-2" + ) + (((game-task-actor unused-slot-18)) + "unused-slot-18" + ) + (((game-task-actor burning-bush-wasb-3)) + "burning-bush-wasb-3" + ) + (((game-task-actor burning-bush-desd-3)) + "burning-bush-desd-3" + ) + (((game-task-actor unused-slot-17)) + "unused-slot-17" + ) + (((game-task-actor unused-slot-15)) + "unused-slot-15" + ) + (((game-task-actor burning-bush-inda-1)) + "burning-bush-inda-1" + ) + (((game-task-actor veger-ruins)) + "veger-ruins" + ) + (((game-task-actor burning-bush-desb-2)) + "burning-bush-desb-2" + ) + (((game-task-actor unused-slot-16)) + "unused-slot-16" + ) + (((game-task-actor burning-bush-desf)) + "burning-bush-desf" + ) + (((game-task-actor burning-bush-slumb-3)) + "burning-bush-slumb-3" + ) + (((game-task-actor wascity-leaper)) + "wascity-leaper" + ) + (((game-task-actor unused-slot-8)) + "unused-slot-8" + ) + (((game-task-actor burning-bush-slumb-2)) + "burning-bush-slumb-2" + ) + (((game-task-actor burning-bush-desb)) + "burning-bush-desb" + ) + (((game-task-actor burning-bush-wasa-2)) + "burning-bush-wasa-2" + ) + (((game-task-actor seem-wascitya)) + "seem-wascitya" + ) + (((game-task-actor ashelin-oasis)) + "ashelin-oasis" + ) + (((game-task-actor was-pre-game-deserte)) + "was-pre-game-deserte" + ) + (((game-task-actor burning-bush-indb)) + "burning-bush-indb" + ) + (((game-task-actor burning-bush-port-4)) + "burning-bush-port-4" + ) + (((game-task-actor burning-bush-port-5)) + "burning-bush-port-5" + ) + (((game-task-actor seem-wascity)) + "seem-wascity" + ) + (((game-task-actor burning-bush-wasa-1)) + "burning-bush-wasa-1" + ) + (((game-task-actor unused-slot-20)) + "unused-slot-20" + ) + (((game-task-actor vin-vinroom)) + "vin-vinroom" + ) + (((game-task-actor burning-bush-marka)) + "burning-bush-marka" + ) + (((game-task-actor burning-bush-slumc-2)) + "burning-bush-slumc-2" + ) + (((game-task-actor burning-bush-desc-5)) + "burning-bush-desc-5" + ) + (((game-task-actor unused-slot-19)) + "unused-slot-19" + ) + (((game-task-actor monk-mummy)) + "monk-mummy" + ) + (((game-task-actor torn-freehq)) + "torn-freehq" + ) + (((game-task-actor burning-bush-indb-3)) + "burning-bush-indb-3" + ) + (((game-task-actor burning-bush-desb-4)) + "burning-bush-desb-4" + ) + (((game-task-actor seem-temple)) + "seem-temple" + ) + (((game-task-actor kleever-arena)) + "kleever-arena" + ) + (((game-task-actor unused-slot-21)) + "unused-slot-21" + ) + (((game-task-actor burning-bush-indb-2)) + "burning-bush-indb-2" + ) + (((game-task-actor oracle-oracle)) + "oracle-oracle" + ) + (((game-task-actor jinx-hiphog)) + "jinx-hiphog" + ) + (((game-task-actor minimap)) + "minimap" + ) + (((game-task-actor burning-bush-arena)) + "burning-bush-arena" + ) + (((game-task-actor damus-wasdoors)) + "damus-wasdoors" + ) + (((game-task-actor kleever-pen)) + "kleever-pen" + ) + (((game-task-actor burning-bush-markb)) + "burning-bush-markb" + ) + (((game-task-actor burning-bush-genb-4)) + "burning-bush-genb-4" + ) + (((game-task-actor daxter)) + "daxter" + ) + (((game-task-actor burning-bush-genb-5)) + "burning-bush-genb-5" + ) + (((game-task-actor torn-hipbar)) + "torn-hipbar" + ) + (((game-task-actor burning-bush-genb-1)) + "burning-bush-genb-1" + ) + (((game-task-actor burning-bush-inda-4)) + "burning-bush-inda-4" + ) + (((game-task-actor burning-bush-desb-3)) + "burning-bush-desb-3" + ) + (((game-task-actor sig-nest)) + "sig-nest" + ) + (((game-task-actor unused-slot-22)) + "unused-slot-22" + ) + (((game-task-actor burning-bush-slumb)) + "burning-bush-slumb" + ) + (((game-task-actor ashelin-freehq)) + "ashelin-freehq" + ) + (((game-task-actor burning-bush-desc-2)) + "burning-bush-desc-2" + ) + (((game-task-actor samos-onintent)) + "samos-onintent" + ) + (((game-task-actor burning-bush-desd)) + "burning-bush-desd" + ) + (((game-task-actor burning-bush-desg-2)) + "burning-bush-desg-2" + ) + (((game-task-actor burning-bush-wasa-6)) + "burning-bush-wasa-6" + ) + (((game-task-actor burning-bush-wasb-7)) + "burning-bush-wasb-7" + ) + (((game-task-actor burning-bush-wasb-2)) + "burning-bush-wasb-2" + ) + (((game-task-actor burning-bush-inda-5)) + "burning-bush-inda-5" + ) + (((game-task-actor sig-talkbox)) + "sig-talkbox" + ) + (((game-task-actor pecker-onintent)) + "pecker-onintent" + ) + (((game-task-actor damus-arena)) + "damus-arena" + ) + (((game-task-actor burning-bush-wasa-5)) + "burning-bush-wasa-5" + ) + (((game-task-actor unused-slot-23)) + "unused-slot-23" + ) + (((game-task-actor damus-wascity)) + "damus-wascity" + ) + (((game-task-actor monk-wascity)) + "monk-wascity" + ) + (((game-task-actor damus-desert)) + "damus-desert" + ) + (((game-task-actor burning-bush-wasb-1)) + "burning-bush-wasb-1" + ) + (((game-task-actor burning-bush-desc-4)) + "burning-bush-desc-4" + ) + (((game-task-actor burning-bush-dese-5)) + "burning-bush-dese-5" + ) + (((game-task-actor was-pre-game-wascityb)) + "was-pre-game-wascityb" + ) + (((game-task-actor burning-bush-slumc)) + "burning-bush-slumc" + ) + (((game-task-actor power-game-vinroom)) + "power-game-vinroom" + ) + (((game-task-actor tess-gungame)) + "tess-gungame" + ) + (((game-task-actor pecker)) + "pecker" + ) + (((game-task-actor torn-hipbooth)) + "torn-hipbooth" + ) + (((game-task-actor burning-bush-desg-4)) + "burning-bush-desg-4" + ) + (((game-task-actor burning-bush-genc-2)) + "burning-bush-genc-2" + ) + (((game-task-actor damus-ruins)) + "damus-ruins" + ) + (((game-task-actor unused-slot-24)) + "unused-slot-24" + ) + (((game-task-actor ashelin-talkbox)) + "ashelin-talkbox" + ) + (((game-task-actor burning-bush-port-8)) + "burning-bush-port-8" + ) + (((game-task-actor burning-bush-port-2)) + "burning-bush-port-2" + ) + (((game-task-actor burning-bush-wasb-6)) + "burning-bush-wasb-6" + ) + (((game-task-actor burning-bush-port-3)) + "burning-bush-port-3" + ) + (((game-task-actor unused-slot-27)) + "unused-slot-27" + ) + (((game-task-actor burning-bush-slumb-4)) + "burning-bush-slumb-4" + ) + (((game-task-actor burning-bush-desg-3)) + "burning-bush-desg-3" + ) + (((game-task-actor sig-wasdoors)) + "sig-wasdoors" + ) + (((game-task-actor samos-freehq)) + "samos-freehq" + ) + (((game-task-actor burning-bush-sluma-1)) + "burning-bush-sluma-1" + ) + (((game-task-actor onin-talkbox)) + "onin-talkbox" + ) + (((game-task-actor unused-slot-25)) + "unused-slot-25" + ) + (((game-task-actor burning-bush-desc-3)) + "burning-bush-desc-3" + ) + (((game-task-actor burning-bush-genb)) + "burning-bush-genb" + ) + (((game-task-actor burning-bush-markb-2)) + "burning-bush-markb-2" + ) + (((game-task-actor burning-bush-dese-2)) + "burning-bush-dese-2" + ) + (((game-task-actor burning-bush-indb-1)) + "burning-bush-indb-1" + ) + (((game-task-actor unused-slot-9)) + "unused-slot-9" + ) + (((game-task-actor burning-bush-slumb-1)) + "burning-bush-slumb-1" + ) + (((game-task-actor unused-slot-28)) + "unused-slot-28" + ) + (((game-task-actor burning-bush-pal-2)) + "burning-bush-pal-2" + ) + (((game-task-actor burning-bush-desa-2)) + "burning-bush-desa-2" + ) + (((game-task-actor burning-bush-farma)) + "burning-bush-farma" + ) + (((game-task-actor burning-bush-desg)) + "burning-bush-desg" + ) + (((game-task-actor keira-freehq)) + "keira-freehq" + ) + (((game-task-actor unused-slot-26)) + "unused-slot-26" + ) + (((game-task-actor burning-bush-desd-5)) + "burning-bush-desd-5" + ) + (((game-task-actor burning-bush-wasb-5)) + "burning-bush-wasb-5" + ) + (((game-task-actor burning-bush-desc)) + "burning-bush-desc" + ) + (((game-task-actor burning-bush-genb-3)) + "burning-bush-genb-3" + ) + (((game-task-actor onin-onintent)) + "onin-onintent" + ) + (((game-task-actor unused-slot-29)) + "unused-slot-29" + ) + (((game-task-actor unused-slot-10)) + "unused-slot-10" + ) + (((game-task-actor burning-bush-inda-2)) + "burning-bush-inda-2" + ) + (((game-task-actor unused-slot-30)) + "unused-slot-30" + ) + (((game-task-actor burning-bush-inda-3)) + "burning-bush-inda-3" + ) + (((game-task-actor burning-bush-slumc-1)) + "burning-bush-slumc-1" + ) + (((game-task-actor samos-genb)) + "samos-genb" + ) + (((game-task-actor burning-bush-dese-4)) + "burning-bush-dese-4" + ) + (((game-task-actor burning-bush-desh)) + "burning-bush-desh" + ) + (((game-task-actor samos-talkbox)) + "samos-talkbox" + ) + (((game-task-actor burning-bush-farmb)) + "burning-bush-farmb" + ) + (((game-task-actor gun-gungame)) + "gun-gungame" + ) + (((game-task-actor burning-bush-wasa-4)) + "burning-bush-wasa-4" + ) + (((game-task-actor unused-slot-12)) + "unused-slot-12" + ) + (((game-task-actor onin-freehq)) + "onin-freehq" + ) + (((game-task-actor burning-bush-desa-3)) + "burning-bush-desa-3" + ) + (((game-task-actor burning-bush-port-6)) + "burning-bush-port-6" + ) + (((game-task-actor unused-slot-11)) + "unused-slot-11" + ) + (((game-task-actor unused-slot-31)) + "unused-slot-31" + ) + (((game-task-actor burning-bush-wasa-3)) + "burning-bush-wasa-3" + ) + (((game-task-actor veger-cave)) + "veger-cave" + ) + (((game-task-actor burning-bush-port-1)) + "burning-bush-port-1" + ) + (((game-task-actor keira-genb)) + "keira-genb" + ) + (((game-task-actor burning-bush-dese-3)) + "burning-bush-dese-3" + ) + (((game-task-actor burning-bush-gena-2)) + "burning-bush-gena-2" + ) + (((game-task-actor burning-bush-genc)) + "burning-bush-genc" + ) + (((game-task-actor burning-bush-desd-2)) + "burning-bush-desd-2" + ) + (((game-task-actor burning-bush-desa)) + "burning-bush-desa" + ) + (((game-task-actor burning-bush-port)) + "burning-bush-port" + ) + (((game-task-actor burning-bush-inda)) + "burning-bush-inda" + ) + (((game-task-actor burning-bush-stadium)) + "burning-bush-stadium" + ) + (((game-task-actor damus-waspal)) + "damus-waspal" + ) + (((game-task-actor burning-bush-port-7)) + "burning-bush-port-7" + ) + (((game-task-actor burning-bush-wasb-4)) + "burning-bush-wasb-4" + ) + (((game-task-actor keira-garage)) + "keira-garage" + ) + (((game-task-actor torn-hiptable)) + "torn-hiptable" + ) + (((game-task-actor torn-hiphog)) + "torn-hiphog" + ) + (((game-task-actor kleever-wasdoors)) + "kleever-wasdoors" + ) + (((game-task-actor unused-slot-14)) + "unused-slot-14" + ) + (((game-task-actor unused-slot-13)) + "unused-slot-13" + ) + (((game-task-actor burning-bush-dese)) + "burning-bush-dese" + ) + (((game-task-actor seem-leaper)) + "seem-leaper" + ) + (((game-task-actor burning-bush-pal)) + "burning-bush-pal" + ) + (((game-task-actor kleever-wascityb)) + "kleever-wascityb" + ) + (((game-task-actor burning-bush-desd-4)) + "burning-bush-desd-4" + ) + (((game-task-actor burning-bush-sluma-3)) + "burning-bush-sluma-3" + ) + (((game-task-actor burning-bush-sluma-2)) + "burning-bush-sluma-2" + ) + (((game-task-actor burning-bush-gena)) + "burning-bush-gena" + ) + (((game-task-actor burning-bush-sluma)) + "burning-bush-sluma" + ) + (else + "*unknown*" + ) + ) + ) + +(defun-debug game-task-action->string ((arg0 game-task-action)) + (case arg0 + (((game-task-action idle)) + "idle" + ) + (((game-task-action play)) + "play" + ) + (((game-task-action show)) + "show" + ) + (((game-task-action talk)) + "talk" + ) + (((game-task-action hide)) + "hide" + ) + (((game-task-action say)) + "say" + ) + (((game-task-action trade)) + "trade" + ) + (((game-task-action menu)) + "menu" + ) + (else + "*unknown*" + ) + ) + ) + +(deftype game-task-event (basic) + ((actor game-task-actor) + (action game-task-action) + (tex game-task-icon) + (icon uint16 :overlay-at tex) + (flags game-task-flags :offset 7) + (scene basic :offset 8) + (distance meters) + ) + ) + + +(deftype resetter-spec (structure) + ((continue basic) + (node game-task-node) + (reset-mode basic) + (execute basic) + ) + :pack-me + ) + + +(deftype resetter-params (structure) + ((message resetter-message) + (flags resetter-flag) + (fail resetter-spec :inline) + (retry resetter-spec :inline) + (reset-delay uint32) + (task game-task) + (text-message text-id) + ) + ) + + +(deftype task-manager-info (structure) + ((mask task-manager-mask) + (level symbol) + (type-to-spawn basic) + (time-limit int32) + (manager handle) + (intro-scene string) + (resolution-scene string) + (resolution-scene-continue string) + (final-node game-task-node) + (vehicle-type uint8) + (sphere-count int8) + (index int8) + (intro-delay uint16) + (sphere-array uint32) + (on-complete pair) + (on-fail pair) + (user-count int32) + ) + ) + + +(deftype task-reset-info (structure) + ((restart-info resetter-params) + (quit-info resetter-params) + (fail-info resetter-params) + (death-info resetter-params) + ) + ) + + +(defun-debug game-task-node-flag->string ((arg0 game-task-node-flag)) + (if (= (logand arg0 (game-task-node-flag clear-task-mask)) (game-task-node-flag clear-task-mask)) + (format #t "clear-task-mask ") + ) + (if (= (logand (game-task-node-flag act3) arg0) (game-task-node-flag act3)) + (format #t "act3 ") + ) + (if (= (logand (game-task-node-flag city-wait) arg0) (game-task-node-flag city-wait)) + (format #t "city-wait ") + ) + (if (= (logand (game-task-node-flag act2) arg0) (game-task-node-flag act2)) + (format #t "act2 ") + ) + (if (= (logand arg0 (game-task-node-flag intro-wait)) (game-task-node-flag intro-wait)) + (format #t "intro-wait ") + ) + (if (= (logand arg0 (game-task-node-flag reset-on-try)) (game-task-node-flag reset-on-try)) + (format #t "reset-on-try ") + ) + (if (= (logand (game-task-node-flag act1) arg0) (game-task-node-flag act1)) + (format #t "act1 ") + ) + (if (= (logand arg0 (game-task-node-flag exclusive)) (game-task-node-flag exclusive)) + (format #t "exclusive ") + ) + (if (= (logand arg0 (game-task-node-flag utility-node)) (game-task-node-flag utility-node)) + (format #t "utility-node ") + ) + (if (= (logand (game-task-node-flag no-percent) arg0) (game-task-node-flag no-percent)) + (format #t "no-percent ") + ) + (if (= (logand arg0 (game-task-node-flag set-task-mask)) (game-task-node-flag set-task-mask)) + (format #t "set-task-mask ") + ) + (if (= (logand arg0 (game-task-node-flag disk-close)) (game-task-node-flag disk-close)) + (format #t "disk-close ") + ) + (if (= (logand arg0 (game-task-node-flag closed)) (game-task-node-flag closed)) + (format #t "closed ") + ) + (if (= (logand arg0 (game-task-node-flag data)) (game-task-node-flag data)) + (format #t "data ") + ) + (if (= (logand arg0 (game-task-node-flag save-on-life)) (game-task-node-flag save-on-life)) + (format #t "save-on-life ") + ) + (if (= (logand (game-task-node-flag no-hud-wait) arg0) (game-task-node-flag no-hud-wait)) + (format #t "no-hud-wait ") + ) + (if (= (logand (game-task-node-flag bbush) arg0) (game-task-node-flag bbush)) + (format #t "bbush ") + ) + (if (= (logand arg0 (game-task-node-flag close-task)) (game-task-node-flag close-task)) + (format #t "close-task ") + ) + (if (= (logand arg0 (game-task-node-flag save-on-try)) (game-task-node-flag save-on-try)) + (format #t "save-on-try ") + ) + (if (= (logand arg0 (game-task-node-flag auto-close)) (game-task-node-flag auto-close)) + (format #t "auto-close ") + ) + (if (= (logand arg0 (game-task-node-flag abs-task-mask)) (game-task-node-flag abs-task-mask)) + (format #t "abs-task-mask ") + ) + (if (= (logand arg0 (game-task-node-flag no-restart)) (game-task-node-flag no-restart)) + (format #t "no-restart ") + ) + (if (= (logand arg0 (game-task-node-flag kiosk-close)) (game-task-node-flag kiosk-close)) + (format #t "kiosk-close ") + ) + ) + +(defun-debug game-task-node-command->string ((arg0 game-task-node-command)) + (case arg0 + (((game-task-node-command sub-board-trail)) + "sub-board-trail" + ) + (((game-task-node-command add-gun-yellow-1)) + "add-gun-yellow-1" + ) + (((game-task-node-command add-gun-yellow-2)) + "add-gun-yellow-2" + ) + (((game-task-node-command add-board-trail)) + "add-board-trail" + ) + (((game-task-node-command add-vehicle-snake)) + "add-vehicle-snake" + ) + (((game-task-node-command add-board-zap)) + "add-board-zap" + ) + (((game-task-node-command add-darkjak-smack)) + "add-darkjak-smack" + ) + (((game-task-node-command add-gun-yellow-ammo-2)) + "add-gun-yellow-ammo-2" + ) + (((game-task-node-command add-gun-red-1)) + "add-gun-red-1" + ) + (((game-task-node-command add-star-map)) + "add-star-map" + ) + (((game-task-node-command add-darkeco)) + "add-darkeco" + ) + (((game-task-node-command add-darkjak)) + "add-darkjak" + ) + (((game-task-node-command add-light-eco-crystal)) + "add-light-eco-crystal" + ) + (((game-task-node-command add-gun-blue-2)) + "add-gun-blue-2" + ) + (((game-task-node-command add-gun-dark-3)) + "add-gun-dark-3" + ) + (((game-task-node-command add-av-cube)) + "add-av-cube" + ) + (((game-task-node-command add-board-training)) + "add-board-training" + ) + (((game-task-node-command add-vehicle-toad)) + "add-vehicle-toad" + ) + (((game-task-node-command add-darkjak-tracking)) + "add-darkjak-tracking" + ) + (((game-task-node-command none)) + "none" + ) + (((game-task-node-command add-lighteco)) + "add-lighteco" + ) + (((game-task-node-command add-artifact-invis)) + "add-artifact-invis" + ) + (((game-task-node-command add-seal)) + "add-seal" + ) + (((game-task-node-command add-darkjak-bomb0)) + "add-darkjak-bomb0" + ) + (((game-task-node-command add-amulet-1)) + "add-amulet-1" + ) + (((game-task-node-command add-gun-red-ammo-2)) + "add-gun-red-ammo-2" + ) + (((game-task-node-command add-vehicle-scorpion)) + "add-vehicle-scorpion" + ) + (((game-task-node-command add-gun-blue-1)) + "add-gun-blue-1" + ) + (((game-task-node-command sub-sidekick)) + "sub-sidekick" + ) + (((game-task-node-command add-av-generator)) + "add-av-generator" + ) + (((game-task-node-command add-sidekick)) + "add-sidekick" + ) + (((game-task-node-command add-pass-indb-sluma)) + "add-pass-indb-sluma" + ) + (((game-task-node-command add-amulet-2)) + "add-amulet-2" + ) + (((game-task-node-command add-vehicle-turtle)) + "add-vehicle-turtle" + ) + (((game-task-node-command add-gun-yellow-ammo-1)) + "add-gun-yellow-ammo-1" + ) + (((game-task-node-command add-dark-eco-crystal)) + "add-dark-eco-crystal" + ) + (((game-task-node-command add-pass-port-inda)) + "add-pass-port-inda" + ) + (((game-task-node-command add-gun-dark-2)) + "add-gun-dark-2" + ) + (((game-task-node-command add-av-prism)) + "add-av-prism" + ) + (((game-task-node-command add-vehicle-rhino)) + "add-vehicle-rhino" + ) + (((game-task-node-command add-board-launch)) + "add-board-launch" + ) + (((game-task-node-command add-armor-3)) + "add-armor-3" + ) + (((game-task-node-command add-cypher-gliph)) + "add-cypher-gliph" + ) + (((game-task-node-command add-pass-port-mh)) + "add-pass-port-mh" + ) + (((game-task-node-command add-armor-2)) + "add-armor-2" + ) + (((game-task-node-command add-darkjak-bomb1)) + "add-darkjak-bomb1" + ) + (((game-task-node-command add-armor-1)) + "add-armor-1" + ) + (((game-task-node-command add-pass-front-gate)) + "add-pass-front-gate" + ) + (((game-task-node-command add-lightjak-swoop)) + "add-lightjak-swoop" + ) + (((game-task-node-command add-gun-blue-3)) + "add-gun-blue-3" + ) + (((game-task-node-command add-pass-slumb-genb)) + "add-pass-slumb-genb" + ) + (((game-task-node-command add-armor-0)) + "add-armor-0" + ) + (((game-task-node-command add-lightjak-shield)) + "add-lightjak-shield" + ) + (((game-task-node-command add-lightjak-regen)) + "add-lightjak-regen" + ) + (((game-task-node-command add-gun-blue-ammo-1)) + "add-gun-blue-ammo-1" + ) + (((game-task-node-command add-gun-blue-ammo-2)) + "add-gun-blue-ammo-2" + ) + (((game-task-node-command add-gun-red-ammo-1)) + "add-gun-red-ammo-1" + ) + (((game-task-node-command add-gun-red-3)) + "add-gun-red-3" + ) + (((game-task-node-command sub-board)) + "sub-board" + ) + (((game-task-node-command add-gun-red-2)) + "add-gun-red-2" + ) + (((game-task-node-command add-lightjak-freeze)) + "add-lightjak-freeze" + ) + (((game-task-node-command add-darkjak-invinc)) + "add-darkjak-invinc" + ) + (((game-task-node-command add-board)) + "add-board" + ) + (((game-task-node-command add-pass-inda-indb)) + "add-pass-inda-indb" + ) + (((game-task-node-command add-gun-dark-ammo-2)) + "add-gun-dark-ammo-2" + ) + (((game-task-node-command add-gun-dark-1)) + "add-gun-dark-1" + ) + (((game-task-node-command add-av-map)) + "add-av-map" + ) + (((game-task-node-command add-gun-yellow-3)) + "add-gun-yellow-3" + ) + (((game-task-node-command add-gun-dark-ammo-1)) + "add-gun-dark-ammo-1" + ) + (((game-task-node-command add-jakc)) + "add-jakc" + ) + (((game-task-node-command add-amulet-3)) + "add-amulet-3" + ) + (((game-task-node-command add-av-reflector)) + "add-av-reflector" + ) + (((game-task-node-command add-lightjak)) + "add-lightjak" + ) + (else + "*unknown*" + ) + ) + ) + +(deftype game-task-node-info (basic) + ((level symbol) + (task game-task) + (name string) + (when-open (array game-task-event)) + (flags game-task-node-flag) + (parent-node game-task-node 4) + (task-mask task-mask) + (on-open pair) + (manager task-manager-info) + (borrow pair) + (open? (function game-task-node-info symbol)) + (on-close pair) + (close-time uint32) + (reset task-reset-info) + (gem-count uint16) + (skill-count uint16) + (death-count uint8) + (suck-death-count uint8) + (command-index uint8) + (command-count uint8) + (description text-id) + (faction-commands basic) + ) + (:methods + (game-task-node-info-method-9 () none) + (game-task-node-info-method-10 () none) + (game-task-node-info-method-11 () none) + (game-task-node-info-method-12 () none) + (game-task-node-info-method-13 () none) + ) + ) + + +(deftype game-task-info (basic) + ((name string) + (text-name text-id) + (pre-play-node game-task-node) + (kiosk-play-node game-task-node) + (pre-play-continue string) + (play-node game-task-node) + (play-continue string) + (kiosk-play-continue string) + ) + (:methods + (game-task-info-method-9 (_type_) none) + ) + ) + + +(deftype game-task-control (basic) + ((counter uint32) + (actor game-task-actor) + (current-node uint16) + (current-event game-task-event) + ) + (:methods + (new (symbol type game-task-actor) _type_) + (get-current-task-event (_type_) game-task-event) + ) + ) + + +(deftype task-manager (process) + ((node-info game-task-node-info) + (info task-manager-info) + (lev-name symbol) + (fail-on-death? symbol) + (fail-now symbol) + (restart-now symbol) + (allow-fail symbol) + (state-time time-frame) + (start-time time-frame) + (time-limit time-frame) + (arrow handle) + (player-vehicle handle) + (hud handle 4) + (hud-timer handle :overlay-at (-> hud 0)) + (hud-counter handle :overlay-at (-> hud 1)) + (intro-time time-frame) + ) + (:methods + (task-manager-method-14 () none) + (task-manager-method-15 () none) + (task-manager-method-16 () none) + (task-manager-method-17 () none) + (task-manager-method-18 () none) + (task-manager-method-19 () none) + (task-manager-method-20 () none) + (task-manager-method-21 () none) + (task-manager-method-22 () none) + (task-manager-method-23 () none) + (task-manager-method-24 () none) + (task-manager-method-25 () none) + (task-manager-method-26 () none) + (task-manager-method-27 () none) + (task-manager-method-28 () none) + (task-manager-method-29 () none) + (task-manager-method-30 () none) + (task-manager-method-31 () none) + ) + ) + + +(deftype ambient-control (structure) + ((last-ambient-time time-frame) + (last-ambient string) + (last-ambient-id sound-id) + ) + (:methods + (ambient-control-method-9 () none) + (ambient-control-method-10 () none) + (ambient-control-method-11 () none) + ) + ) + + +(define *traffic-engine* #f) diff --git a/goal_src/jak3/engine/geometry/geometry.gc b/goal_src/jak3/engine/geometry/geometry.gc index f551da85f1..536eacd49a 100644 --- a/goal_src/jak3/engine/geometry/geometry.gc +++ b/goal_src/jak3/engine/geometry/geometry.gc @@ -7,3 +7,1623 @@ ;; DECOMP BEGINS +(defun vector-flatten! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Get the projection of src onto a plane with the given normal + The normal should have magnitude 1.0." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov.vf vf3 vf0 :mask #b1000) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf3 vf3 vf2 acc) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +(defun vector-reflect! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Reflect a vector off of a plane." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov.vf vf3 vf0 :mask #b1000) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf3 vf3 vf2 acc) + (.add.vf acc vf3 vf3 :mask #b111) + (.sub.mul.w.vf vf3 vf1 vf0 acc :mask #b111) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +(defun vector-reflect-flat! ((arg0 vector) (arg1 vector) (arg2 vector)) + "This is a weird one. It doesn't care about the value of src dot normal + and it effectively replaces the component of src normal to the plane with + the plane's normal. I think this requires src/normal to both be unit vectors + in order to make sense. + NOTE: src should point from positive halfspace to negative otherwise it + doesn't work." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov.vf vf3 vf0 :mask #b1000) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf3 vf3 vf2 acc) + (.add.vf vf3 vf3 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +(defun vector-reflect-flat-above! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Not really a reflect. Same as flatten." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov.vf vf3 vf0 :mask #b1000) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf3 vf3 vf2 acc) + (.svf (&-> arg0 quad) vf3) + (let* ((f0-0 (vector-length arg0)) + (f1-1 (vector-dot arg0 arg2)) + (f0-2 (- (* 0.02 f0-0) f1-1)) + ) + (vector+float*! arg0 arg0 arg2 (fmin 16384.0 (* 16.0 f0-2))) + ) + ) + ) + +(defun vector-reflect-flat-gravity! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> arg1 quad)) + (vector-reflect-flat! arg0 s4-0 arg2) + ;; og:preserve-this + (let* ((s2-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-0 1.0)) ;; src normalized + (f28-0 (vector-length s4-0)) ;; src original len + (f30-0 (vector-length arg0)) ;; dst original len + (f0-1 (vector-dot s2-0 arg2)) ;; original (normalized) dot normal + (f1-1 (vector-dot arg3 arg2)) + ) + (when (and (< 0.0001 f1-1) (< 8192.0 f28-0)) + (let ((f0-3 (- (/ f0-1 f1-1)))) + (vector+float*! arg0 s4-0 arg3 (* f28-0 f0-3)) + ) + (vector+! arg0 arg0 arg2) + (vector-normalize! arg0 f30-0) + ) + ) + ) + arg0 + ) + +(defun vector-segment-distance-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Compute the distance from a point to the closest point on the line segment. + arg0 is the point. arg1/arg2 are the endpoints of the line segment. + arg3 is an optional output closest point." + (local-vars (v0-0 float) (v1-0 float) (v1-1 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + ) + (init-vf0-vector) + (nop!) + (.lvf vf3 (&-> arg1 quad)) + (.lvf vf4 (&-> arg2 quad)) + (.lvf vf5 (&-> arg0 quad)) + (.sub.vf vf1 vf4 vf3) + (.sub.vf vf6 vf5 vf3) + (.mul.vf vf2 vf1 vf1) + (.mul.x.vf acc vf0 vf2 :mask #b1000) + (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000) + (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000) + (.sqrt.vf Q vf2 :ftf #b11) + (.wait.vf) + (.add.vf vf2 vf0 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.div.vf Q vf0 vf2 :fsf #b11 :ftf #b0) + (.mov v1-0 vf2) + (let ((f2-0 v1-0)) + (.wait.vf) + (.mul.vf vf1 vf1 Q) + (.mul.vf vf7 vf1 vf6) + (let ((f1-0 (the-as float 0.0))) + (.add.y.vf vf7 vf7 vf7 :mask #b1) + (.add.z.vf vf7 vf7 vf7 :mask #b1) + (.mov v1-1 vf7) + (let ((f0-0 v1-1)) + (b! (< f0-0 f1-0) cfg-4 :likely-delay (set! f0-0 f1-0)) + (b! (< f2-0 f0-0) cfg-4 :likely-delay (set! f0-0 f2-0)) + (label cfg-4) + (let ((v1-2 f0-0)) + (.mov vf7 v1-2) + ) + ) + ) + ) + (.mul.x.vf vf1 vf1 vf7) + (b! (= arg3 #f) cfg-6 :delay (.mov.vf vf8 vf0 :mask #b1000)) + (.add.vf vf8 vf3 vf1 :mask #b111) + (.svf (&-> arg3 quad) vf8) + (label cfg-6) + (.sub.vf vf2 vf6 vf1) + (.mul.vf vf2 vf2 vf2) + (.mul.x.vf acc vf0 vf2 :mask #b1000) + (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000) + (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000) + (.sqrt.vf Q vf2 :ftf #b11) + (.wait.vf) + (.add.vf vf2 vf0 Q :mask #b1) + (.nop.vf) + (.mov v0-0 vf2) + v0-0 + ) + ) + +(defun vector-segment-xz-distance-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((v1-0 (new 'stack-no-clear 'matrix))) + (set-vector! (-> v1-0 rvec) (-> arg0 x) 0.0 (-> arg0 z) 0.0) + (set-vector! (-> v1-0 uvec) (-> arg1 x) 0.0 (-> arg1 z) 1.0) + (set-vector! (-> v1-0 fvec) (-> arg2 x) 0.0 (-> arg2 z) 1.0) + (vector-segment-distance-point! (-> v1-0 rvec) (-> v1-0 uvec) (-> v1-0 fvec) arg3) + ) + ) + +(defun vector-line-distance ((arg0 vector) (arg1 vector) (arg2 vector)) + "Weird function: given a point arg1, and an infinite line connecting arg2 and arg1, compute the distance + from arg0 to that line." + (let* ((a1-3 (vector-normalize! (vector-! (new-stack-vector0) arg2 arg1) 1.0)) + (gp-1 (vector-! (new-stack-vector0) arg0 arg1)) + (f0-1 (vector-dot a1-3 gp-1)) + (v1-3 (vector-float*! (new-stack-vector0) a1-3 f0-1)) + ) + (vector-length (vector-! (new-stack-vector0) gp-1 v1-3)) + ) + ) + +(defun vector-line-distance-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Same as above function, but returns the point on arg2/arg1 in arg3 (ignored if #f)" + (let* ((a1-3 (vector-normalize! (vector-! (new-stack-vector0) arg2 arg1) 1.0)) + (s4-1 (vector-! (new-stack-vector0) arg0 arg1)) + (f0-1 (vector-dot a1-3 s4-1)) + (v1-4 (vector-float*! (new-stack-vector0) a1-3 f0-1)) + ) + (if arg3 + (vector+! arg3 arg1 v1-4) + ) + (vector-length (vector-! (new-stack-vector0) s4-1 v1-4)) + ) + ) + +(defun vector-line-xz-distance-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((v1-0 (new 'stack-no-clear 'matrix))) + (set-vector! (-> v1-0 rvec) (-> arg0 x) 0.0 (-> arg0 z) 0.0) + (set-vector! (-> v1-0 uvec) (-> arg1 x) 0.0 (-> arg1 z) 1.0) + (set-vector! (-> v1-0 fvec) (-> arg2 x) 0.0 (-> arg2 z) 1.0) + (vector-line-distance-point! (-> v1-0 rvec) (-> v1-0 uvec) (-> v1-0 fvec) arg3) + ) + ) + +(defun vector-segment-overlap ((arg0 vector) (arg1 vector) (arg2 vector)) + "Seems to compute (v1 - v0).dot(v2 - v1), but in a weird way." + (let* ((gp-1 (vector-! (new 'stack-no-clear 'vector) arg1 arg2)) + (s5-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) gp-1 1.0)) + ) + ;; og:preserve-this + ;; this vector-line-distance-point! is totally unused. + (let ((a3-0 (new 'stack-no-clear 'vector))) + (vector-line-distance-point! arg0 arg1 arg2 a3-0) + ) + (/ (vector-dot s5-0 (vector-! (new 'stack-no-clear 'vector) arg1 arg0)) (vector-length gp-1)) + ) + ) + +(defun line-sphere-intersection? ((arg0 vector) (arg1 vector) (arg2 vector)) + "Does [arg1, arg2] intersect sphere arg0?" + (let ((s5-0 (new 'stack-no-clear 'vector))) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (f30-0 0.0) + ) + (vector-! s3-0 arg2 arg1) + (let ((f0-0 (vector-length-squared s3-0))) + (if (< 0.0 f0-0) + (set! f30-0 (/ 1.0 f0-0)) + ) + ) + (let ((v1-6 (new 'stack-no-clear 'vector))) + (vector-! v1-6 arg0 arg1) + (let* ((f1-2 (* (vector-dot s3-0 v1-6) f30-0)) + (f0-5 (fmax 0.0 (fmin 1.0 f1-2))) + ) + (vector+float*! s5-0 arg1 s3-0 f0-5) + ) + ) + ) + (let ((f0-6 (vector-vector-distance-squared s5-0 arg0)) + (f1-4 (-> arg0 w)) + ) + (< f0-6 (* f1-4 f1-4)) + ) + ) + ) + +(defun nearest-dist2-between-moving-points ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 float)) + (let ((v1-0 (new 'stack-no-clear 'inline-array 'vector 2))) + (vector-! (-> v1-0 0) arg2 arg0) + (vector-! (-> v1-0 1) arg3 arg1) + (let ((f0-1 (vector-dot (-> v1-0 0) (-> v1-0 0))) + (f1-1 (vector-dot (-> v1-0 1) (-> v1-0 1))) + (f2-1 (vector-dot (-> v1-0 0) (-> v1-0 1))) + (f3-0 0.0) + ) + (if (< 0.0 f1-1) + (set! f3-0 (fmax 0.0 (fmin (/ (- f2-1) f1-1) arg4))) + ) + (+ f0-1 (* 2.0 f2-1 f3-0) (* f3-0 f3-0 f1-1)) + ) + ) + ) + +(defun vector-orient-by-quat! ((arg0 vector) (arg1 vector) (arg2 quaternion)) + "Rotate a vector by a quaternion." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg2 quad)) + (.lvf vf6 (&-> arg1 quad)) + (.add.vf vf5 vf1 vf1) + (.add.w.vf vf2 vf0 vf1 :mask #b1) + (.add.z.vf vf2 vf0 vf1 :mask #b10) + (.sub.y.vf vf2 vf0 vf1 :mask #b100) + (.sub.w.vf vf2 vf0 vf0 :mask #b1000) + (.sub.z.vf vf3 vf0 vf1 :mask #b1) + (.add.w.vf vf3 vf0 vf1 :mask #b10) + (.add.x.vf vf3 vf0 vf1 :mask #b100) + (.sub.w.vf vf3 vf0 vf0 :mask #b1000) + (.add.y.vf vf4 vf0 vf1 :mask #b1) + (.sub.x.vf vf4 vf0 vf1 :mask #b10) + (.add.w.vf vf4 vf0 vf1 :mask #b100) + (.sub.w.vf vf4 vf0 vf0 :mask #b1000) + (.outer.product.a.vf acc vf5 vf2) + (.outer.product.b.vf vf2 vf2 vf5 acc) + (.outer.product.a.vf acc vf5 vf3) + (.outer.product.b.vf vf3 vf3 vf5 acc) + (.outer.product.a.vf acc vf5 vf4) + (.outer.product.b.vf vf4 vf4 vf5 acc) + (.add.w.vf vf2 vf2 vf0 :mask #b1) + (.add.w.vf vf3 vf3 vf0 :mask #b10) + (.add.w.vf vf4 vf4 vf0 :mask #b100) + (.mul.w.vf acc vf0 vf6) + (.add.mul.x.vf acc vf2 vf6 acc) + (.add.mul.y.vf acc vf3 vf6 acc) + (.add.mul.z.vf vf6 vf4 vf6 acc) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +;; ERROR: Bad vector register dependency: vf7 +(defun vector-inv-orient-by-quat! ((arg0 vector) (arg1 vector) (arg2 quaternion)) + "Rotate a vector by the inverse rotation." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + ;; og:preserve-this + ;; (.sub.vf vf7 vf7 vf7) + (.xor.vf vf7 vf7 vf7) + (.lvf vf1 (&-> arg2 quad)) + (.lvf vf6 (&-> arg1 quad)) + (.sub.vf vf1 vf7 vf1 :mask #b111) + (.add.vf vf5 vf1 vf1) + (.add.w.vf vf2 vf0 vf1 :mask #b1) + (.add.z.vf vf2 vf0 vf1 :mask #b10) + (.sub.y.vf vf2 vf0 vf1 :mask #b100) + (.sub.w.vf vf2 vf0 vf0 :mask #b1000) + (.sub.z.vf vf3 vf0 vf1 :mask #b1) + (.add.w.vf vf3 vf0 vf1 :mask #b10) + (.add.x.vf vf3 vf0 vf1 :mask #b100) + (.sub.w.vf vf3 vf0 vf0 :mask #b1000) + (.add.y.vf vf4 vf0 vf1 :mask #b1) + (.sub.x.vf vf4 vf0 vf1 :mask #b10) + (.add.w.vf vf4 vf0 vf1 :mask #b100) + (.sub.w.vf vf4 vf0 vf0 :mask #b1000) + (.outer.product.a.vf acc vf5 vf2) + (.outer.product.b.vf vf2 vf2 vf5 acc) + (.outer.product.a.vf acc vf5 vf3) + (.outer.product.b.vf vf3 vf3 vf5 acc) + (.outer.product.a.vf acc vf5 vf4) + (.outer.product.b.vf vf4 vf4 vf5 acc) + (.add.w.vf vf2 vf2 vf0 :mask #b1) + (.add.w.vf vf3 vf3 vf0 :mask #b10) + (.add.w.vf vf4 vf4 vf0 :mask #b100) + (.mul.w.vf acc vf0 vf6) + (.add.mul.x.vf acc vf2 vf6 acc) + (.add.mul.y.vf acc vf3 vf6 acc) + (.add.mul.z.vf vf6 vf4 vf6 acc) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +;; The "forward down" function take a direction for forward (+z) and down (-y) +;; and convert to a transform. +;; Note that the normal functions take their pitch from the forward vector, but +;; the "nopitch" ones use the pitch from the up/down. Of course, if you are +;; consistent and provide orthogonal forward/down, they do the same thing. + +(defun forward-down->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is down (-y). Will have the pitch of forward." + (vector-normalize-copy! (-> arg0 fvec) arg1 1.0) + (vector-cross! (-> arg0 rvec) (-> arg0 fvec) arg2) + (vector-normalize! (-> arg0 rvec) 1.0) + (vector-cross! (-> arg0 uvec) arg1 (-> arg0 rvec)) + (vector-normalize! (-> arg0 uvec) 1.0) + (set! (-> arg0 trans quad) (the-as uint128 0)) + (set! (-> arg0 rvec w) 0.0) + (set! (-> arg0 uvec w) 0.0) + (set! (-> arg0 fvec w) 0.0) + (set! (-> arg0 trans w) 1.0) + arg0 + ) + +(defun forward-down-nopitch->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is down (-y). Will not use the pitch of forward." + (vector-normalize-copy! (-> arg0 uvec) arg2 1.0) + (vector-negate! (-> arg0 uvec) (-> arg0 uvec)) + (vector-cross! (-> arg0 rvec) (-> arg0 uvec) arg1) + (vector-normalize! (-> arg0 rvec) 1.0) + (vector-cross! (-> arg0 fvec) (-> arg0 rvec) (-> arg0 uvec)) + (vector-normalize! (-> arg0 fvec) 1.0) + (set! (-> arg0 trans quad) (the-as uint128 0)) + (set! (-> arg0 rvec w) 0.0) + (set! (-> arg0 uvec w) 0.0) + (set! (-> arg0 fvec w) 0.0) + (set! (-> arg0 trans w) 1.0) + arg0 + ) + +(defun forward-up->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is up (+y). Will use the pitch of forward." + (forward-down->inv-matrix arg0 arg1 (vector-negate! (new 'stack-no-clear 'vector) arg2)) + ) + +(defun forward-up-nopitch->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is up (+y). Will not use the pitch of forward." + (forward-down-nopitch->inv-matrix arg0 arg1 (vector-negate! (new-stack-vector0) arg2)) + ) + +(defun forward-up-nopitch->quaternion ((arg0 quaternion) (arg1 vector) (arg2 vector)) + "Create a quaternion representing a transform where arg1 is forward (+z) + and arg2 is up (+y). Will not use the pitch of forward." + ;; og:preserve-this + (matrix->quaternion arg0 (forward-up-nopitch->inv-matrix (new-stack-matrix0) arg1 arg2)) + ) + +(defun forward-up->quaternion ((arg0 quaternion) (arg1 vector) (arg2 vector)) + "Create a quaternion representing a transform where arg1 is forward (+z) + and arg2 is up (+y). Will use the pitch of forward." + ;; og:preserve-this + (matrix->quaternion + arg0 + (forward-down->inv-matrix (new-stack-matrix0) arg1 (vector-negate! (new 'stack-no-clear 'vector) arg2)) + ) + ) + +(defun quaternion-from-two-vectors! ((arg0 quaternion) (arg1 vector) (arg2 vector)) + "Create a quaternion representing the rotation between two vectors." + (let* ((s5-0 (vector-cross! (new-stack-vector0) arg1 arg2)) + (f1-0 (vector-length s5-0)) + (f0-1 (vector-dot arg1 arg2)) + ) + (let ((f1-1 (/ (sqrtf (* 0.5 (- 1.0 f0-1))) f1-0))) + (set! (-> arg0 x) (* (-> s5-0 x) f1-1)) + (set! (-> arg0 y) (* (-> s5-0 y) f1-1)) + (set! (-> arg0 z) (* (-> s5-0 z) f1-1)) + ) + (set! (-> arg0 w) (sqrtf (* 0.5 (+ 1.0 f0-1)))) + ) + arg0 + ) + +(defun quaternion-from-two-vectors-partial! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float)) + "Create a quaternion representing the rotation between two vectors, + doing arg3 fraction of the total rotation." + (let* ((s5-0 (vector-cross! (new-stack-vector0) arg1 arg2)) + (f0-0 (vector-length s5-0)) + (f1-1 (+ 1.0 (* arg3 (+ -1.0 (vector-dot arg1 arg2))))) + ) + (let ((f0-1 (/ (sqrtf (* 0.5 (- 1.0 f1-1))) f0-0))) + (set! (-> arg0 x) (* (-> s5-0 x) f0-1)) + (set! (-> arg0 y) (* (-> s5-0 y) f0-1)) + (set! (-> arg0 z) (* (-> s5-0 z) f0-1)) + ) + (set! (-> arg0 w) (sqrtf (* 0.5 (+ 1.0 f1-1)))) + ) + arg0 + ) + +(defun quaternion-from-two-vectors-max-angle! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float)) + "Create a quaternion representing the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (let* ((s5-0 (vector-cross! (new-stack-vector0) arg1 arg2)) + (f30-0 (vector-length s5-0)) + (f0-1 (fmax (cos arg3) (vector-dot arg1 arg2))) + ) + (let ((f1-5 (/ (sqrtf (* 0.5 (- 1.0 f0-1))) f30-0))) + (set! (-> arg0 x) (* (-> s5-0 x) f1-5)) + (set! (-> arg0 y) (* (-> s5-0 y) f1-5)) + (set! (-> arg0 z) (* (-> s5-0 z) f1-5)) + ) + (set! (-> arg0 w) (sqrtf (* 0.5 (+ 1.0 f0-1)))) + ) + arg0 + ) + +(defun quaternion-from-two-vectors-max-angle-partial! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float) (arg4 float)) + "Create a quaternion representing the arg4 fraction of the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (let* ((s5-0 (vector-cross! (new-stack-vector0) arg1 arg2)) + (f30-0 (vector-length s5-0)) + (f0-1 (fmax (cos arg3) (+ 1.0 (* arg4 (+ -1.0 (vector-dot arg1 arg2)))))) + ) + (let ((f1-5 (/ (sqrtf (* 0.5 (- 1.0 f0-1))) f30-0))) + (set! (-> arg0 x) (* (-> s5-0 x) f1-5)) + (set! (-> arg0 y) (* (-> s5-0 y) f1-5)) + (set! (-> arg0 z) (* (-> s5-0 z) f1-5)) + ) + (set! (-> arg0 w) (sqrtf (* 0.5 (+ 1.0 f0-1)))) + ) + arg0 + ) + +(defun matrix-from-two-vectors! ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a rotation matrix representing the rotation between two vectors." + (let* ((a1-3 (vector-normalize! (vector-cross! (new-stack-vector0) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f1-0 1.0) + (f2-0 f0-1) + (f1-2 (sqrtf (- f1-0 (* f2-0 f2-0)))) + ) + (matrix-axis-sin-cos! arg0 a1-3 f1-2 f0-1) + ) + ) + +(defun matrix-from-two-vectors-max-angle! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float)) + "Create a rotation matrix representing the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (let ((s4-1 (vector-normalize! (vector-cross! (new-stack-vector0) arg2 arg1) 1.0)) + (f30-0 (vector-dot arg1 arg2)) + (f28-0 (cos arg3)) + ) + (cond + ((< f30-0 f28-0) + (matrix-axis-sin-cos! arg0 s4-1 (sin arg3) f28-0) + ) + (else + (let ((t9-5 matrix-axis-sin-cos!) + (a0-6 arg0) + (a1-4 s4-1) + (f0-1 1.0) + (f1-0 f30-0) + ) + (t9-5 a0-6 a1-4 (sqrtf (- f0-1 (* f1-0 f1-0))) f30-0) + ) + ) + ) + ) + ) + +;; og:preserve-this +;; hack for the smoothed matrix from vectors to handle cases where they accidentally set turnvf to 0. +;; this causes the smoothing to go away on ps2, due to some behavior of inf/nan that differ. +;; if we cheat this to a small but nonzero value, it behaves like on ps2. +(defmacro int-to-float-nonzero-hack (f) + `(if (= ,f 0) + 0.00000000001 + (the float ,f) + ) + ) + +(defun matrix-from-two-vectors-smooth! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) + "This function can help smoothly rotate from a current heading vector to a target one. + It returns a rotation to move arg1 closer to arg2, subject to two different speed limits. + arg3 is a rotations-per-frame rate. This limit takes frame rate into account (when lagging, the rotation is larger) + arg4 is a 'slow down when getting close to the end' limit. + This is used in rotate-toward-orientation, which is much improved from jak 1." + (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f0-2 (acos f0-1)) + ;; og:preserve-this + (f1-2 (fmin (* arg3 (seconds-per-frame)) (/ (* 5.0 (fabs f0-2)) (int-to-float-nonzero-hack arg4)))) + (f30-0 (fmax (fmin f0-2 f1-2) (- f1-2))) + ) + (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) + ) + arg0 + ) + +(defun matrix-from-two-vectors-the-long-way-smooth! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) + "Same as above, but rotates you away from the target. + Note that the 'near the end' smoothing will apply when you're near the target." + (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f0-3 (- (acos f0-1))) + ;; og:preserve-this + (f1-2 (fmin (* arg3 (seconds-per-frame)) (/ (* 5.0 (fabs f0-3)) (int-to-float-nonzero-hack arg4)))) + (f30-0 (fmax (fmin f0-3 f1-2) (- f1-2))) + ) + (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) + ) + arg0 + ) + +(defun quaternion-from-two-vectors-smooth! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) + "Same as above, but returns a quaternion." + (let ((a1-1 (matrix-from-two-vectors-smooth! (new 'stack-no-clear 'matrix) arg1 arg2 arg3 arg4))) + (matrix->quaternion arg0 a1-1) + ) + ) + +(defun matrix-from-two-vectors-max-angle-partial! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 float)) + "Create a rotation matrix representing the given fraction of the rotation between two heading vectors, + rotating by at most the given angle." + (let* ((s4-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f28-0 (vector-dot arg1 arg2)) + (f30-0 (cos arg3)) + (f0-2 (+ 1.0 (* (+ -1.0 f28-0) arg4))) + ) + (cond + ((< f0-2 f30-0) + (matrix-axis-sin-cos! arg0 s4-1 (sin arg3) f30-0) + ) + (else + (let ((t9-5 matrix-axis-sin-cos!) + (a0-6 arg0) + (a1-4 s4-1) + (f1-3 1.0) + (f2-1 f0-2) + ) + (t9-5 a0-6 a1-4 (sqrtf (- f1-3 (* f2-1 f2-1))) f0-2) + ) + ) + ) + ) + ) + +(defun matrix-from-two-vectors-partial-linear! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float)) + "Create a rotation matrix representing doing arg3 fraction of the rotation between two vectors." + (let ((gp-1 (vector-normalize! (vector-cross! (new-stack-vector0) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + ) + (cond + ((< 0.9999 (fabs f0-1)) + (matrix-identity! arg0) + ) + (else + (let* ((f0-4 (cos (* arg3 (acos f0-1)))) + (t9-5 matrix-axis-sin-cos!) + (a0-6 arg0) + (f1-1 1.0) + (f2-1 f0-4) + ) + (t9-5 a0-6 gp-1 (sqrtf (- f1-1 (* f2-1 f2-1))) f0-4) + ) + ) + ) + ) + ) + +(defun matrix-remove-z-rot ((arg0 matrix) (arg1 vector)) + "Remove the z rotation component of a rotation." + (let ((s4-0 (new-stack-vector0))) + 0.0 + 0.0 + (let ((s5-0 (new-stack-matrix0))) + (vector-negate! s4-0 arg1) + (vector-flatten! s4-0 s4-0 (-> arg0 vector 2)) + (vector-normalize! s4-0 1.0) + (let ((f30-0 (vector-dot (-> arg0 vector 1) s4-0))) + (when (< f30-0 0.99999) + (vector-cross! s4-0 (-> arg0 vector 1) s4-0) + (let ((f0-4 (vector-length s4-0))) + (if (< 0.0 (vector-dot s4-0 (-> arg0 vector 2))) + (set! f0-4 (- f0-4)) + ) + (matrix-axis-sin-cos! s5-0 (-> arg0 vector 2) f0-4 f30-0) + ) + (matrix*! arg0 arg0 s5-0) + ) + ) + ) + ) + arg0 + ) + +(defun matrix-rot-diff! ((arg0 vector) (arg1 matrix) (arg2 matrix)) + "Get the difference of rotation between two matrices, expressed as a quaternion." + (let ((s3-0 (new-stack-quaternion0)) + (s2-0 (new-stack-quaternion0)) + (s5-0 (new-stack-quaternion0)) + ) + 0.0 + (matrix->quaternion s3-0 arg1) + (matrix->quaternion s2-0 arg2) + (quaternion-conjugate! s5-0 s3-0) + (quaternion*! s5-0 s2-0 s5-0) + (quaternion-normalize! s5-0) + (if (< (-> s5-0 w) 0.0) + (quaternion-negate! s5-0 s5-0) + ) + (let ((f30-1 (* 2.0 (acos (-> s5-0 w))))) + (set! (-> arg0 quad) (-> s5-0 quad)) + (vector-negate! arg0 arg0) + (if (= (vector-normalize-ret-len! arg0 1.0) 0.0) + (set! (-> arg0 y) 1.0) + ) + f30-1 + ) + ) + ) + +(defun quaternion-seek ((arg0 quaternion) (arg1 quaternion) (arg2 quaternion) (arg3 float) (arg4 float)) + "Strange quaternion rotate toward function. Arg3 is ignored. Arg4 is the max seek amount." + (let ((s5-0 (new-stack-matrix0)) + (s4-0 (new-stack-matrix0)) + ) + (quaternion->matrix s5-0 arg1) + (quaternion->matrix s4-0 arg2) + (let ((s2-1 (new-stack-quaternion0))) + (quaternion-from-two-vectors-max-angle! s2-1 (-> s5-0 vector 2) (-> s4-0 vector 2) arg4) + (quaternion-normalize! (quaternion*! arg0 arg0 s2-1)) + ) + ) + ) + +(defun vector-deg-seek ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Make one vector closer to another, doing at most a rotation by arg3 degrees." + (let ((s4-0 (new-stack-matrix0))) + (matrix-from-two-vectors-max-angle! s4-0 arg1 arg2 arg3) + (vector-matrix*! arg0 arg1 s4-0) + ) + ) + +(defun vector-deg-slerp ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Slerp for vectors. (imagine that they are the z axis of two frames)" + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + arg0 + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + arg0 + ) + (else + (let ((s1-0 (new-stack-matrix0))) + (let ((s2-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg1 1.0)) + (a2-3 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg2 1.0)) + ) + (matrix-from-two-vectors-partial-linear! s1-0 s2-0 a2-3 arg3) + ) + (vector-matrix*! arg0 arg1 s1-0) + ) + ) + ) + ) + +(defun vector-vector-deg-slerp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float) (arg4 vector)) + "Unused. No clue what this does." + (local-vars (sv-112 (function float float float float))) + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (let* ((s0-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg1 1.0)) + (s1-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg2 1.0)) + (s0-1 (forward-up->quaternion (new 'stack-no-clear 'quaternion) s0-0 arg4)) + (a2-5 (forward-up->quaternion (new 'stack-no-clear 'quaternion) s1-0 arg4)) + (a1-6 (quaternion-slerp! (new 'stack-no-clear 'quaternion) s0-1 a2-5 arg3)) + (s2-1 vector-normalize-copy!) + (s1-1 arg0) + (s0-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) a1-6)) + ) + (set! sv-112 lerp) + (let ((s3-1 (vector-length arg1)) + (a1-7 (vector-length arg2)) + ) + (s2-1 s1-1 s0-2 (sv-112 s3-1 a1-7 arg3)) + ) + ) + ) + ) + arg0 + ) + +(defun normal-of-plane ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Given three points on a plane, compute the plane's normal." + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (.lvf vf3 (&-> arg2 quad)) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg3 quad)) + (.sub.vf vf1 vf3 vf1) + (.sub.vf vf2 vf3 vf2) + (.outer.product.a.vf acc vf2 vf1) + (.outer.product.b.vf vf4 vf1 vf2 acc) + (.mul.vf vf5 vf4 vf4) + (.add.y.vf vf5 vf5 vf5 :mask #b1) + (.add.z.vf vf5 vf5 vf5 :mask #b1) + (.isqrt.vf Q vf0 vf5 :fsf #b11 :ftf #b0) + (.mov.vf vf4 vf0 :mask #b1000) + (.wait.vf) + (.mul.vf vf4 vf4 Q :mask #b111) + (.nop.vf) + (.nop.vf) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +(defun vector-3pt-cross! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Cross product of 2 - 1 and 3 - 1. (will give a normal to the plane, but not of magnitude 1)" + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.lvf vf3 (&-> arg3 quad)) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.sub.vf vf2 vf2 vf1) + (.sub.vf vf3 vf3 vf1) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf4 vf3 vf2 acc) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +(defun closest-pt-in-triangle ((arg0 vector) (arg1 vector) (arg2 matrix) (arg3 vector)) + "arg2 is the vertices of the triangle, arg3 is the normal, arg1 is the input point, arg0 is the output." + ;; (declare (print-asm)) + (local-vars + ;; og:preserve-this float -> uint + (v1-0 uint) + (v1-4 uint) + (v1-5 uint) + (v1-6 uint) + (v1-7 uint) + (v1-10 uint) + ;; og:preserve-this float -> uint + (a0-1 uint) + (a1-1 uint) + ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf10 :class vf) + (vf11 :class vf) + (vf12 :class vf) + (vf13 :class vf) + (vf14 :class vf) + (vf15 :class vf) + (vf16 :class vf) + (vf17 :class vf) + (vf18 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + (vf9 :class vf) + ) + (init-vf0-vector) + (nop!) + (nop!) + (.lvf vf3 (&-> arg2 quad 1)) + (nop!) + (.lvf vf4 (&-> arg2 quad 2)) + (nop!) + (.lvf vf5 (&-> arg1 quad)) + (.sub.vf vf6 vf3 vf4) + (.lvf vf2 (&-> arg2 quad 0)) + (.sub.vf vf7 vf3 vf5) + (.lvf vf1 (&-> arg3 quad)) + (.sub.vf vf8 vf3 vf2) + (.sub.vf vf9 vf5 vf4) + (.sub.vf vf10 vf5 vf2) + (.outer.product.a.vf acc vf7 vf8) + (.outer.product.b.vf vf14 vf8 vf7 acc) + (.outer.product.a.vf acc vf6 vf7) + (.outer.product.b.vf vf15 vf7 vf6 acc) + (.mul.vf vf11 vf14 vf1) + (.outer.product.a.vf acc vf9 vf10) + (.outer.product.b.vf vf16 vf10 vf9 acc) + (.mul.vf vf12 vf15 vf1) + (.add.x.vf vf11 vf11 vf11 :mask #b10) + (.mul.vf vf13 vf16 vf1) + (.add.x.vf vf12 vf12 vf12 :mask #b10) + (.add.x.vf vf13 vf13 vf13 :mask #b10) + (.add.z.vf vf11 vf11 vf11 :mask #b10) + (.add.z.vf vf12 vf12 vf12 :mask #b10) + (.add.z.vf vf13 vf13 vf13 :mask #b10) + ;; og:preserve-this these types were changed to uint to make this copy 64 bits. + (.mov v1-0 vf11) + (.mov a1-1 vf12) + (.mov a0-1 vf13) + (let* ((v1-1 (shr (the-as int v1-0) 63)) + (a1-2 (shr (the-as int a1-1) 63)) + (a0-2 (shr (the-as int a0-1) 63)) + (a1-3 (* a1-2 2)) + (a0-3 (* a0-2 4)) + (v1-3 (logior (logior v1-1 a1-3) a0-3)) + ) + (b! (nonzero? v1-3) cfg-3 :delay (set! v1-4 (the-as uint (+ v1-3 -1)))) + ) + (.sub.vf vf17 vf5 vf2) + (.mov.vf vf18 vf0 :mask #b1000) + (.outer.product.a.vf acc vf17 vf1) + (.outer.product.b.vf vf18 vf1 vf17 acc) + (.outer.product.a.vf acc vf1 vf18) + (.outer.product.b.vf vf18 vf18 vf1 acc) + (.add.vf vf18 vf18 vf2 :mask #b111) + (b! #t cfg-24 :delay (.svf (&-> arg0 quad) vf18)) + (nop!) + (label cfg-3) + (b! (nonzero? v1-4) cfg-6 :delay (set! v1-5 (+ v1-4 -1))) + (vector-segment-distance-point! arg1 (the-as vector (-> arg2 vector)) (-> arg2 vector 1) arg0) + (goto cfg-24) + (label cfg-6) + (b! (nonzero? v1-5) cfg-9 :delay (set! v1-6 (+ v1-5 -1))) + (vector-segment-distance-point! arg1 (-> arg2 vector 1) (-> arg2 vector 2) arg0) + (goto cfg-24) + (label cfg-9) + (b! (nonzero? v1-6) cfg-14 :delay (set! v1-7 (+ v1-6 -1))) + (let ((f30-0 (vector-segment-distance-point! arg1 (-> arg2 vector 1) (the-as vector (-> arg2 vector)) arg0)) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (if (< (vector-segment-distance-point! arg1 (-> arg2 vector 1) (-> arg2 vector 2) s3-0) f30-0) + (set! (-> arg0 quad) (-> s3-0 quad)) + ) + ) + (goto cfg-24) + (label cfg-14) + (b! (nonzero? v1-7) cfg-17 :delay (set! v1-10 (+ v1-7 -1))) + (vector-segment-distance-point! arg1 (-> arg2 vector 2) (the-as vector (-> arg2 vector)) arg0) + (goto cfg-24) + (label cfg-17) + (b! (nonzero? v1-10) cfg-22 :delay (nop!)) + (let ((f30-1 (vector-segment-distance-point! arg1 (the-as vector (-> arg2 vector)) (-> arg2 vector 1) arg0)) + (s3-1 (new 'stack-no-clear 'vector)) + ) + (if (< (vector-segment-distance-point! arg1 (the-as vector (-> arg2 vector)) (-> arg2 vector 2) s3-1) f30-1) + (set! (-> arg0 quad) (-> s3-1 quad)) + ) + ) + (goto cfg-24) + (label cfg-22) + (let ((f30-2 (vector-segment-distance-point! arg1 (-> arg2 vector 2) (the-as vector (-> arg2 vector)) arg0)) + (s3-2 (new 'stack-no-clear 'vector)) + ) + (if (< (vector-segment-distance-point! arg1 (-> arg2 vector 2) (-> arg2 vector 1) s3-2) f30-2) + (set! (-> arg0 quad) (-> s3-2 quad)) + ) + ) + (label cfg-24) + 0 + (none) + ) + ) + +(defun point-in-triangle-cross ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 vector)) + "Check if point is in the triangle using cross product check (so you have to get the order of points right)" + ;; og:preserve-this float -> int + (local-vars (v1-0 int) (a0-1 int) (a1-1 int)) + (rlet ((acc :class vf) + (vf1 :class vf) + (vf10 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + (vf9 :class vf) + ) + (.lvf vf3 (&-> arg3 quad)) + (.lvf vf4 (&-> arg4 quad)) + (.lvf vf5 (&-> arg0 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.lvf vf1 (&-> arg1 quad)) + (.sub.vf vf6 vf3 vf4) + (.sub.vf vf7 vf3 vf5) + (.sub.vf vf8 vf3 vf2) + (.sub.vf vf9 vf5 vf4) + (.sub.vf vf10 vf5 vf2) + (.outer.product.a.vf acc vf6 vf7) + (.outer.product.b.vf vf2 vf7 vf6 acc) + (.outer.product.a.vf acc vf7 vf8) + (.outer.product.b.vf vf3 vf8 vf7 acc) + (.outer.product.a.vf acc vf9 vf10) + (.outer.product.b.vf vf4 vf10 vf9 acc) + (.mul.vf vf2 vf2 vf1) + (.mul.vf vf3 vf3 vf1) + (.nop.vf) + (.mul.vf vf4 vf4 vf1) + (.add.x.vf vf2 vf2 vf2 :mask #b10) + (.add.x.vf vf3 vf3 vf3 :mask #b10) + (.add.x.vf vf4 vf4 vf4 :mask #b10) + (.nop.vf) + (.add.z.vf vf2 vf2 vf2 :mask #b10) + (.add.z.vf vf3 vf3 vf3 :mask #b10) + (.add.z.vf vf4 vf4 vf4 :mask #b10) + (.nop.vf) + (.mov a0-1 vf2) + (.mov a1-1 vf3) + (.mov v1-0 vf4) + ;; og:preserve-this + (>= (the-as int (logior (logior a0-1 a1-1) v1-0)) 0) + ) + ) + +(defun point-in-plane-<-point+normal! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Very strange function. Takes a plane, in point-normal form, then returns some other point on that plane. + It will move 1m in two of {x, y, z} directions. The direction not moved in is the one which is closest to point-in-triangle-cross + in the same direction of the normal (this prevent moving huge distances for nearly vertical planes for example)." + (let ((f0-3 (+ (* (-> arg2 x) (-> arg1 x)) (* (-> arg2 y) (-> arg1 y)) (* (-> arg2 z) (-> arg1 z))))) + (set! (-> arg0 w) 1.0) + (let ((f1-7 (fabs (-> arg2 x))) + (f2-3 (fabs (-> arg2 y))) + (f3-1 (fabs (-> arg2 z))) + ) + (cond + ((and (< f2-3 f1-7) (< f3-1 f1-7)) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! (-> arg0 x) (/ (+ (- (- (* (-> arg2 y) (-> arg0 y))) (* (-> arg2 z) (-> arg0 z))) f0-3) (-> arg2 x))) + ) + ((and (< f1-7 f2-3) (< f3-1 f2-3)) + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! (-> arg0 y) (/ (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) (-> arg2 y))) + ) + (else + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! (-> arg0 z) (/ (+ (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) f0-3) (-> arg2 z))) + ) + ) + ) + ) + arg0 + ) + +(defun circle-circle-xz-intersect ((arg0 sphere) (arg1 sphere) (arg2 vector) (arg3 vector)) + ;; this function is unused and really complicated, so not implementing it for now. + (format 0 "circle-circle-xz-intersect~%") + (crash!) + 0 + ) + +;; WARN: Return type mismatch object vs none. +(defun circle-test () + "Test the circle-circle-xz-intersect function." + (let ((s4-0 (new 'stack 'sphere)) + (a1-2 (new 'stack 'sphere)) + (s5-0 (new-stack-vector0)) + (gp-0 (new-stack-vector0)) + ) + (let ((v1-3 s4-0)) + (set! (-> v1-3 x) 0.0) + (set! (-> v1-3 y) 0.0) + (set! (-> v1-3 z) 0.0) + (set! (-> v1-3 r) 1.0) + ) + (let ((v1-4 a1-2)) + (set! (-> v1-4 x) 100.0) + (set! (-> v1-4 y) 0.0) + (set! (-> v1-4 z) 0.0) + (set! (-> v1-4 r) 10000.0) + ) + (let ((a2-1 (circle-circle-xz-intersect s4-0 a1-2 s5-0 gp-0))) + (format #t "res = ~d~%" a2-1) + ) + (format #t "(~f, ~f)~%" (-> s5-0 x) (-> s5-0 z)) + (format #t "(~f, ~f)~%" (-> gp-0 x) (-> gp-0 z)) + ) + (none) + ) + +(defun vector-circle-tangent-new ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Unused." + (rlet ((Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (let ((a1-2 (new 'stack 'sphere))) + (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) + (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) + (let ((v1-3 #x3f000000)) + (.lvf vf3 (&-> arg1 quad)) + (.mov vf2 v1-3) + ) + (.lvf vf4 (&-> arg0 quad)) + (.add.vf vf1 vf3 vf4) + (.sub.vf vf5 vf4 vf3) + (.mul.x.vf vf1 vf1 vf2) + (.mul.x.vf vf5 vf5 vf2) + (.mul.vf vf5 vf5 vf5 :mask #b101) + (.add.z.vf vf5 vf5 vf5 :mask #b1) + (.sqrt.vf Q vf5 :ftf #b0) + (.wait.vf) + (.mul.vf vf1 vf0 Q :mask #b1000) + (.nop.vf) + (.nop.vf) + (.svf (&-> a1-2 quad) vf1) + (circle-circle-xz-intersect (the-as sphere arg1) a1-2 arg2 arg3) + ) + 0 + (none) + ) + ) + +(defun vector-circle-tangent ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Also unused." + (let* ((s3-1 (vector-! (new 'stack-no-clear 'vector) arg1 arg0)) + (f0-0 (vector-xz-length s3-1)) + (f28-0 (acos (/ (-> arg1 w) f0-0))) + ) + (cond + ((>= 546.13336 f28-0) + (set! (-> arg2 x) (- (-> arg0 x) (-> s3-1 z))) + (set! (-> arg2 y) 0.0) + (set! (-> arg2 z) (+ (-> arg0 z) (-> s3-1 x))) + (set! (-> arg3 x) (+ (-> arg0 x) (-> s3-1 z))) + (set! (-> arg3 y) 0.0) + (set! (-> arg3 z) (- (-> arg0 z) (-> s3-1 x))) + ) + (else + (let ((f0-15 (atan (-> s3-1 z) (-> s3-1 x))) + (f30-0 (- (-> arg1 w))) + (s3-2 (new 'stack-no-clear 'vector)) + ) + (let ((s2-1 (new 'stack-no-clear 'vector))) + (let ((a2-1 (new 'stack-no-clear 'vector))) + (set! (-> a2-1 x) (- f0-15 f28-0)) + (set! (-> a2-1 y) (+ f0-15 f28-0)) + (vector-sincos! s3-2 s2-1 a2-1) + ) + (set! (-> arg2 x) (+ (-> arg1 x) (* f30-0 (-> s2-1 x)))) + (set! (-> arg2 z) (+ (-> arg1 z) (* f30-0 (-> s3-2 x)))) + (set! (-> arg3 x) (+ (-> arg1 x) (* f30-0 (-> s2-1 y)))) + ) + (set! (-> arg3 z) (+ (-> arg1 z) (* f30-0 (-> s3-2 y)))) + ) + ) + ) + ) + 0 + (none) + ) + +(defun find-knot-span ((arg0 int) (arg1 int) (arg2 float) (arg3 (inline-array vector))) + "Binary serach over knots to find which contains the value float in (arg0 arg1). Unused." + (local-vars (v0-0 int)) + (b! (= arg2 (-> (&-> arg3 0 data (+ arg0 1)) 0)) cfg-11 :delay (set! v0-0 arg0)) + (let ((v1-3 (the int arg2))) + (let* ((a2-1 (+ v1-3 3)) + (t0-1 (&-> arg3 0 data a2-1)) + (f1-2 (-> t0-1 0)) + (f2-0 (-> t0-1 1)) + ) + (b! (> f1-2 arg2) cfg-4) + (b! (>= arg2 f2-0) cfg-4 :delay (set! v0-0 a2-1)) + ) + (b! #t cfg-11 :delay (nop!)) + (label cfg-4) + (let ((a1-1 arg1) + (a0-1 (+ arg0 1)) + ) + (label cfg-5) + (let ((a2-3 (/ (+ a1-1 a0-1) 2))) + (let ((t0-3 (&-> arg3 0 data a2-3))) + (b! (>= arg2 (-> t0-3 0)) cfg-7) + (b! #t cfg-5 :delay (set! a0-1 a2-3)) + (label cfg-7) + (b! (< arg2 (-> t0-3 1)) cfg-9) + ) + (b! #t cfg-5 :delay (set! a1-1 a2-3)) + (label cfg-9) + (set! v0-0 a2-3) + ) + ) + (b! (= v0-0 v1-3) cfg-11 :delay (nop!)) + ) + (nop!) + (nop!) + (label cfg-11) + v0-0 + ) + +(defun calculate-basis-functions-vector! ((arg0 vector) (arg1 int) (arg2 float) (arg3 (pointer float))) + "Calculate polynomial basis for a given control point." + (local-vars (v1-0 int) (v1-1 object)) + ;; og:preserve-this + ;;(.sll v1-0 arg1 2) + (set! v1-0 (* 4 arg1)) ;; originally used 32-bit asm + (let ((a1-1 #x3f800000) + (f3-0 arg2) + ) + ;; og:preserve-this + ;;(.addu v1-1 arg3 v1-0) + (set! v1-1 (&+ arg3 v1-0)) + (let* ((f1-0 (the-as float a1-1)) ;; trick to load float constant. + (f5-0 f1-0) + ) + 0.0 + 0.0 + (let* ((f0-2 (-> (the-as (pointer float) v1-1) 0)) + (f2-0 (-> (the-as (pointer float) v1-1) 1)) + (f0-3 (- f3-0 f0-2)) + (f4-0 (- f2-0 f3-0)) + (f10-0 (/ f1-0 (+ f4-0 f0-3))) + (f2-2 (-> (the-as (pointer float) v1-1) -1)) + (f8-0 (-> (the-as (pointer float) v1-1) 2)) + (f2-3 (- f3-0 f2-2)) + (f9-0 (+ f4-0 f2-3)) + (f6-0 (-> (the-as (pointer float) v1-1) -2)) + (f7-0 (-> (the-as (pointer float) v1-1) 3)) + (f9-1 (/ f1-0 f9-0)) + (f5-1 (* f5-0 f10-0)) + (f11-0 (* f4-0 f5-1)) + (f10-1 (* f0-3 f5-1)) + (f5-2 (- f8-0 f3-0)) + (f8-1 (* f11-0 f9-1)) + (f11-1 (/ f1-0 (+ f5-2 f0-3))) + (f9-3 (* f4-0 f8-1)) + (f8-2 (* f2-3 f8-1)) + (f11-2 (* f10-1 f11-1)) + (f10-3 (+ (* f5-2 f11-2) f8-2)) + (f8-3 (* f0-3 f11-2)) + (f6-1 (- f3-0 f6-0)) + (f3-1 (- f7-0 f3-0)) + (f7-3 (* f9-3 (/ f1-0 (+ f4-0 f6-1)))) + (f4-1 (* f4-0 f7-3)) + (f6-2 (* f6-1 f7-3)) + (f7-6 (* f10-3 (/ f1-0 (+ f5-2 f2-3)))) + (f5-4 (+ (* f5-2 f7-6) f6-2)) + (f2-4 (* f2-3 f7-6)) + (f1-2 (* f8-3 (the-as float (/ f1-0 (+ f3-1 f0-3))))) + (f2-5 (+ (* f3-1 f1-2) f2-4)) + (f0-4 (* f0-3 f1-2)) + ) + (set! (-> arg0 x) f4-1) + (set! (-> arg0 y) f5-4) + (set! (-> arg0 z) f2-5) + (set! (-> arg0 w) f0-4) + ) + ) + ) + arg0 + ) + +(defun curve-evaluate! ((arg0 vector) (arg1 float) (arg2 (inline-array vector)) (arg3 int) (arg4 (pointer float)) (arg5 int)) + "Evaluate a curve. + arg0 is the output + arg1 is the input. + arg2 is control vertices + arg3 is the number of control vertices + arg4 is the knot points + arg5 is the number of knots + " + (local-vars (v1-7 int) (v1-8 int) (v1-10 float) (s3-0 int)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (let ((s4-0 (new 'static 'vector))) + 0 + ;; lookup knot + (let* ((f0-0 (-> arg4 0)) + (f1-0 (-> (&-> arg4 (+ arg5 -1)) 0)) + (a2-1 (fmax (fmin (* arg1 f1-0) f1-0) f0-0)) + ) + (let* ((a1-1 (+ arg5 -5)) + (a3-1 3) + (f0-2 a2-1) + (v1-5 arg4) + (f0-3 f0-2) + ) + (b! (= f0-3 (-> (&-> v1-5 (+ a1-1 1)) 0)) + cfg-11 + :delay (set! s3-0 a1-1) + ) + (let ((a0-4 (the int f0-3))) + (let* ((t1-1 (+ a0-4 3)) + (t2-1 (&-> v1-5 t1-1)) + (f1-4 (-> t2-1 0)) + (f2-3 (-> t2-1 1)) + ) + (b! (> f1-4 f0-3) cfg-4) + (b! (>= f0-3 f2-3) cfg-4 :delay (set! s3-0 t1-1)) + ) + (b! #t cfg-11) + (label cfg-4) + (let ((a3-2 a3-1) + (a1-2 (+ a1-1 1)) + ) + (label cfg-5) + (let ((t1-3 (/ (+ a3-2 a1-2) 2))) + (let ((t2-3 (&-> v1-5 t1-3))) + (b! (>= f0-3 (-> t2-3 0)) cfg-7) + (b! #t cfg-5 :delay (set! a1-2 t1-3)) + (label cfg-7) + (b! (< f0-3 (-> t2-3 1)) cfg-9) + ) + (b! #t cfg-5 :delay (set! a3-2 t1-3)) + (label cfg-9) + (set! s3-0 t1-3) + ) + ) + (b! (= s3-0 a0-4) cfg-11) + ) + ) + (nop!) + (nop!) + (label cfg-11) + ;; og:preserve-this + ;; calculate coefficients for this knot's polynomial, store in s4-0 + (calculate-basis-functions-vector! + s4-0 + s3-0 + a2-1 + (the-as (pointer float) arg4) + ) + ) + ;; og:preserve-this + ;;(.addiu v1-7 s3-0 -3) + (set! v1-7 (- s3-0 3)) + (.lvf vf6 s4-0) + ) + ;; og:preserve-this + ;; evaluate polynomial! + ;;(.sll v1-8 v1-7 4) + (set! v1-8 (* v1-7 16)) + (.add.x.vf vf1 vf0 vf0 :mask #b1000) + (let ((v1-9 (+ v1-8 (the-as int arg2)))) + (nop!) + (nop!) + (.lvf vf2 (&-> (the-as (pointer int128) v1-9))) + (nop!) + (.lvf vf3 (+ v1-9 16)) + (nop!) + (.lvf vf4 (+ v1-9 32)) + (nop!) + (.lvf vf5 (+ v1-9 48)) + ) + (.mul.x.vf acc vf2 vf6) + (nop!) + (.add.mul.y.vf acc vf3 vf6 acc :mask #b111) + (nop!) + (.add.mul.z.vf acc vf4 vf6 acc :mask #b111) + (nop!) + (.add.mul.w.vf vf1 vf5 vf6 acc :mask #b111) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (.svf (&-> arg0 quad) vf1) + (.mov v1-10 vf1) + arg0 + ) + ) + +(defun curve-get-pos! ((arg0 vector) (arg1 float) (arg2 curve)) + "Get the position on the curve at the given input." + (curve-evaluate! arg0 arg1 (-> arg2 cverts) (-> arg2 num-cverts) (-> arg2 knots) (-> arg2 num-knots)) + ) + +(defun curve-length ((arg0 curve)) + "Compute the approximate curve length as the sum of distances between knots." + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (* 3 (-> arg0 num-cverts))) + (f30-0 0.0) + ) + (when (nonzero? s3-0) + (curve-evaluate! + s4-0 + (-> arg0 knots 0) + (-> arg0 cverts) + (-> arg0 num-cverts) + (-> arg0 knots) + (-> arg0 num-knots) + ) + (dotimes (s2-0 s3-0) + (set! (-> s5-0 quad) (-> s4-0 quad)) + (curve-evaluate! + s4-0 + (/ (the float (+ s2-0 1)) (the float s3-0)) + (-> arg0 cverts) + (-> arg0 num-cverts) + (-> arg0 knots) + (-> arg0 num-knots) + ) + (+! f30-0 (vector-vector-distance s5-0 s4-0)) + ) + ) + f30-0 + ) + ) + +(defun curve-copy! ((arg0 curve) (arg1 curve)) + "Shallow copy a curve." + (set! (-> arg0 cverts) (-> arg1 cverts)) + (set! (-> arg0 num-cverts) (-> arg1 num-cverts)) + (set! (-> arg0 knots) (-> arg1 knots)) + (set! (-> arg0 num-knots) (-> arg1 num-knots)) + (set! (-> arg0 length) (-> arg1 length)) + arg0 + ) + +(defun curve-closest-point ((arg0 curve) (arg1 vector) (arg2 float) (arg3 float) (arg4 int) (arg5 float)) + "Get the input value for the point on the curve. Approximate! And is O(n_knots)." + (local-vars (sv-48 float)) + (set! sv-48 arg3) + (let ((s3-0 arg4) + (gp-0 arg5) + (f30-0 (curve-length arg0)) + (s2-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + ) + 0.0 + 0.0 + 0.0 + 0.0 + (let ((f28-0 0.5)) + 0.0 + (if (< 0.0 sv-48) + (set! f28-0 (/ sv-48 f30-0)) + ) + (let* ((s0-1 (- arg2 (/ gp-0 f30-0))) + (f26-0 (- s0-1 f28-0)) + (f24-0 (+ s0-1 f28-0)) + ) + (curve-get-pos! s2-0 f26-0 arg0) + (curve-get-pos! s1-0 f24-0 arg0) + (let ((f22-0 (vector-vector-distance-squared s2-0 arg1)) + (f20-0 (vector-vector-distance-squared s1-0 arg1)) + ) + (while (> s3-0 0) + (+! s3-0 -1) + (set! f28-0 (* 0.5 f28-0)) + (let ((v1-6 (cond + ((< f22-0 f20-0) + (curve-get-pos! s1-0 s0-1 arg0) + (set! f20-0 (vector-vector-distance-squared s1-0 arg1)) + (set! f24-0 s0-1) + (- s0-1 f28-0) + ) + (else + (curve-get-pos! s2-0 s0-1 arg0) + (set! f22-0 (vector-vector-distance-squared s2-0 arg1)) + (set! f26-0 s0-1) + (+ s0-1 f28-0) + ) + ) + ) + ) + (set! s0-1 (fmin 1.0 (fmax 0.0 v1-6))) + ) + ) + (+ (if (< f22-0 f20-0) + f26-0 + f24-0 + ) + (/ gp-0 f30-0) + ) + ) + ) + ) + ) + ) + +(defun vector-plane-distance ((arg0 vector) (arg1 plane) (arg2 vector)) + "Unused." + (vector-dot (vector-! (new 'stack-no-clear 'vector) arg0 (the-as vector (&-> arg1 x))) arg2) + ) + +(defun intersect-ray-plane ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "arg1 is ray direction, arg3 is plane normal, others don't really make sense to me." + (let ((f0-1 (vector-dot arg3 arg1))) + (if (= f0-1 0.0) + -1.0 + (/ (- (vector-dot arg3 arg0) (vector-dot arg3 arg2)) (- f0-1)) + ) + ) + ) + +(defun line-line-find-intersection-xz ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 vector)) + (let* ((f0-0 (-> arg1 x)) + (f3-0 (-> arg1 z)) + (f4-0 (-> arg3 x)) + (f5-0 (-> arg3 z)) + (f1-3 (+ (* -1.0 f5-0 f0-0) (* f3-0 f4-0))) + ) + (cond + ((< 0.0001 (fabs f1-3)) + (let* ((f2-3 (* -1.0 f1-3)) + (f5-2 (* -1.0 f5-0 (- (-> arg2 x) (-> arg0 x)))) + (f4-1 (* (- (-> arg2 z) (-> arg0 z)) f4-0)) + (f3-2 (* -1.0 f3-0 (- (-> arg0 x) (-> arg2 x)))) + (f0-1 (* (- (-> arg0 z) (-> arg2 z)) f0-0)) + (f1-4 (/ (+ f5-2 f4-1) f1-3)) + ) + (let ((f0-3 (/ (+ f3-2 f0-1) f2-3))) + (when arg4 + (set! (-> arg4 y) f0-3) + (set! (-> arg4 x) f1-4) + ) + ) + (return f1-4) + ) + ) + (else + (when arg4 + (set! (-> arg4 y) -100000000.0) + (set! (-> arg4 x) -100000000.0) + ) + (return -100000000.0) + ) + ) + ) + 0.0 + ) + +(defun segment-segment-find-intersection-xz ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (line-line-find-intersection-xz arg0 arg1 arg2 arg3 gp-0) + (if (and (>= (-> gp-0 x) 0.0) (>= (-> gp-0 y) 0.0) (>= 1.0 (-> gp-0 x)) (>= 1.0 (-> gp-0 y))) + (-> gp-0 x) + -100000000.0 + ) + ) + ) + +(defun generate-rand-vector-on-sphere ((arg0 vector)) + (let* ((f30-0 65536.0) + (v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-3 (the-as number (logior #x3f800000 v1-2))) + (f30-1 (* f30-0 (+ -1.0 (the-as float v1-3)))) + (f28-0 65536.0) + (v1-7 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-8 (the-as number (logior #x3f800000 v1-7))) + (f28-1 (* f28-0 (+ -1.0 (the-as float v1-8)))) + ) + 0.0 + (let ((f26-0 (cos f30-1))) + (set-vector! arg0 (* f26-0 (cos f28-1)) (* f26-0 (sin f28-1)) (sin f30-1) 1.0) + ) + ) + (vector-normalize! arg0 1.0) + ) + +(defmethod lissajous-interp-method-9 ((this lissajous-interp) (arg0 vector)) + (lissajous-method-9 (-> this current) arg0) + ) + +(defmethod lissajous-interp-method-10 ((this lissajous-interp)) + (seek! (-> this current x-mag) (-> this dest x-mag) (-> this rate x-mag)) + (seek! (-> this current y-mag) (-> this dest y-mag) (-> this rate y-mag)) + (seek! (-> this current theta-rate) (-> this dest theta-rate) (-> this rate theta-rate)) + (seek! (-> this current theta) (-> this dest theta) (* (-> this current theta-rate) (-> this rate theta))) + (seek! (-> this current wx) (-> this dest wx) (-> this rate wx)) + (seek! (-> this current wy) (-> this dest wy) (-> this rate wy)) + (set! (-> this current period-shift) + (seek (-> this current period-shift) (-> this dest period-shift) (-> this rate period-shift)) + ) + ) + +(defmethod lissajous-method-9 ((this lissajous) (arg0 vector)) + 0.0 + 0.0 + (let ((f30-0 (* (cos (* (-> this theta) (-> this wx))) (-> this x-mag))) + (f0-8 (* (cos (+ (-> this period-shift) (* (-> this theta) (-> this wy)))) (-> this y-mag))) + ) + (set-vector! arg0 f30-0 f0-8 0.0 1.0) + ) + arg0 + ) diff --git a/goal_src/jak3/engine/gfx/ocean/ocean-frames.gc b/goal_src/jak3/engine/gfx/ocean/ocean-frames.gc index 6a3963bfc8..eb33227463 100644 --- a/goal_src/jak3/engine/gfx/ocean/ocean-frames.gc +++ b/goal_src/jak3/engine/gfx/ocean/ocean-frames.gc @@ -7,3 +7,16390 @@ ;; DECOMP BEGINS +(define *ocean-wave-frames* (new 'static 'array uint32 16384 + #x5c1febd8 + #x1cfe1450 + #xb6b8e71f + #x32563ef2 + #x9f2e6fe + #x2e1b090d + #x9001024 + #xe4e70d1f + #x5410dfd1 + #x4ef1756 + #xb5d1041c + #x365128da + #xdede305 + #x21100c17 + #x80d232c + #xe2f5191d + #x3dfad5d4 + #xe2e31d54 + #xc5f91906 + #x373f09c7 + #x10eae70d + #x12091524 + #xa20342b + #xeb08241b + #x1ceddae4 + #xc9e41f3d + #xee1b11df + #x2a1cedcd + #x12eef214 + #xc11242e + #x112b3420 + #xfe1d2814 + #xcefeafa + #xbedf0d21 + #x1724f5c1 + #x10f9e4ee + #x18f6fa0e + #x12203236 + #xe272b18 + #x14302a0e + #xdf5f70d + #xadc8f718 + #x301cdbad + #xf2e2ef14 + #x1dfefb00 + #x21323f3b + #x1c251b + #x2f4124fe + #x11f50928 + #x8eaff925 + #x3b14c997 + #xdcde022c + #x2002f6ee + #x30475041 + #xf21b2823 + #x4a410de7 + #x9f62345 + #x80b41433 + #x4210ba80 + #xd5e30e37 + #x1c00f1e3 + #x43606342 + #xf31c2428 + #x4d24edd7 + #xfe053847 + #x84d52a2b + #x4708ab80 + #xd8ea1541 + #x10f9f2e6 + #x59776838 + #x1151b30 + #x27f7d7df + #x21c361f + #xaaf92818 + #x3ff19480 + #xdaeb1f4b + #x2f6faee + #x707f6128 + #xc09143e + #xeddae2f7 + #x122010e4 + #xcd091912 + #x20c8808c + #xdaee2b4d + #xfafd08f5 + #x7f7f5118 + #xd02184d + #xcce0fe0e + #x1504e2c2 + #xe306141b + #xf2a280a7 + #xdcf73237 + #xfd0d15f9 + #x7f7c3f0a + #xc041f58 + #xd5fd1919 + #xf9d5c8c9 + #xed061c1b + #xc99794c0 + #xe604270e + #x81d1bfa + #x7f712f02 + #x10061d58 + #xf5172a24 + #xcdbacfe3 + #xf91019fd + #xbcabb2d5 + #xf10208e3 + #x17281c01 + #x7f652806 + #x18011552 + #x8243b36 + #xaebde0f1 + #xd17fecd + #xc4c5cdeb + #xf6f1e3cb + #x232b200a + #x765d2711 + #x19f50a4b + #x82e544a + #xb1d1e7e8 + #x2005ccaa + #xcdd4e40a + #xeedacdc8 + #x282c2811 + #x6f582a1c + #xde6044a + #x63f684e + #xc5dbdfe0 + #x19d7a2a7 + #xc9df052a + #xe3d0cdc9 + #x2b302c0c + #x6f562b20 + #xfadc084d + #x12527041 + #xd5d4d7e6 + #xf6a597be + #xc4f52b34 + #xe4d8d0be + #x2b322404 + #x7052271f + #xebde1152 + #x27646b2f + #xd5c8dbf5 + #xc78ca9d5 + #xc917421f + #xfaeac7aa + #x2b281505 + #x6c4a231f + #xe3e7205a + #x38696423 + #xcdc1e3fe + #xa792c0df + #xe0343af6 + #x18efaf9a + #x21170e1b + #x603d2420 + #xe3f93360 + #x496c5d18 + #xc9c1ed05 + #xa2a6cfdf + #xfd3d1fd3 + #x2ce0979e + #xe051f3f + #x4b33251d + #xee11455c + #x5e6c520d + #xc7c5f519 + #xadb8d4dc + #xd3202c4 + #x27c58eb1 + #xf705425d + #x382f2710 + #x62e4a4b + #x76673d06 + #xc2cc093d + #xb5c0d7da + #xa1df1c2 + #x10b294c4 + #xee1b6467 + #x32331ffb + #x27414134 + #x7855240d + #xc1e22455 + #xb9c5dad3 + #x210eac4 + #xfbada3cd + #xf73a745a + #x34320deb + #x41432f25 + #x5836141f + #xd1023449 + #xc0cbd7cf + #x10ce7c4 + #xf5b8b4d3 + #xe4e6f49 + #x3427fdea + #x463a2121 + #x2012112f + #xf3213221 + #xc8cfd4da + #x80ae3c9 + #xf5c5c1dc + #x214d5a38 + #x2b17f9f9 + #x41301f20 + #xf1f91436 + #x1b301df9 + #xccccd7f6 + #xd05dfcd + #xf7d1d1ed + #x243a452f + #x1910020a + #x3a2e1d19 + #xd1ea1436 + #x363008de + #xc8cdea19 + #xdfad8c9 + #xf7e0e800 + #x19253625 + #x11181412 + #x362a180c + #xbce21433 + #x3f2af6cc + #xc9db0534 + #x8edcfc2 + #xfaf50510 + #xc172a1c + #x15251d10 + #x2f230e04 + #xafe0142f + #x4123edc1 + #xdcf51c3e + #xfbdac1c5 + #x20e2018 + #x20d190e + #x21301c06 + #x24180504 + #xb5e61528 + #x4620edc5 + #xfd0a2341 + #xe8c5bddc + #x122e3617 + #x40405 + #x2c331400 + #x190a010a + #xcce81020 + #x5021f2d0 + #x17152043 + #xd8b4c1f9 + #x20454211 + #x2fbf501 + #x32320efe + #x12010112 + #xe2eb0819 + #x4a02d0c5 + #xf52a61 + #xa9cb0920 + #x3f4f1ac9 + #xf7dfe40c + #x2006080f + #xfb01142a + #xcef91b10 + #x34f0c6c2 + #xe7f2365e + #xbaeb150a + #x4041febc + #xf9dcea15 + #x11051017 + #x1132023 + #xd6061c0a + #x13ddc7cb + #xd0f53c4a + #xdd0f13e7 + #x3a22e0bc + #xf9dff31f + #x80a1e1f + #xa262a18 + #xeb181f06 + #xf9d9d6e1 + #xc9f72b26 + #x918f5ca + #x22fed4d9 + #xfbe7fd1c + #xc182720 + #x132a250f + #x8271c05 + #xf5e1eaf9 + #xc3e70f10 + #x230cd5ba + #xe4e002 + #x4f5010a + #x18273125 + #xc231f11 + #x293217fe + #xf9e7fe18 + #xabcd0110 + #x2dfdc2a8 + #xe1e1fa20 + #xcfdfbf2 + #x25363d2b + #xfe1c1e1a + #x4b3506eb + #xf6ee1a3c + #x8ac30d1a + #x31f7b187 + #xd4eb1031 + #xffbf0dd + #x364c4e32 + #xfa1c1f23 + #x5b20e7d9 + #xef01364e + #x80d92014 + #x38f09a80 + #xd0f01c3f + #xcf6ead4 + #x4f645a32 + #x5181c31 + #x40f9cdd9 + #xf31c3a34 + #x99f92505 + #x35df8080 + #xd1f2274e + #x4f3ecd8 + #x6c75572a + #xc0d1a41 + #x2d5caea + #x92a1bf6 + #xbf091500 + #x1fbc8080 + #xd2f63656 + #xfaf7f7e0 + #x7f774718 + #x8041e55 + #xd1d2e3fd + #x1514ebc7 + #xd8040d0a + #xf696809a + #xd5024145 + #xfa0602e3 + #x7f703406 + #x1042964 + #xd0eafe05 + #x4e7cac2 + #xe3001413 + #xca8484b7 + #xdf113c1e + #x51708e4 + #x7f6423fe + #x1082f6a + #xef05100c + #xd8c0c9d9 + #xea091b01 + #xb392a1c9 + #xee171eef + #x142009ea + #x7f571b02 + #x8052a68 + #x9151f1a + #xb3bbd6ea + #xfb1306d5 + #xb8adbbda + #xf605f5d1 + #x20230ff6 + #x744b180f + #xaf91f5f + #xd23382b + #xa9c9e0e5 + #x1008daad + #xc6c3d2f6 + #xf0e7d4c9 + #x25251a01 + #x6c451c1a + #xea175a + #xc385236 + #xbad4dadc + #x11ddada2 + #xcad1f217 + #xe1d0c9ca + #x272d2200 + #x68431e1c + #xeee11759 + #x1b52612e + #xcaced4e0 + #xf0ab9ab3 + #xc7e81827 + #xd8d0cac3 + #x2a321ef5 + #x6a441f1c + #xdddf1c5b + #x38645e1e + #xcbc2d8f3 + #xc28ca5c7 + #xd00c3418 + #xe1dac3b1 + #x2e2f11ef + #x683d1c1e + #xd4e42662 + #x596d550d + #xc0bce406 + #x9d8ebbd1 + #xe82f35ef + #xf9dfaca4 + #x291e09fd + #x5d321c22 + #xd5f03568 + #x71704e02 + #xbbbeee15 + #x93a2cace + #x83f1bc7 + #xace93a9 + #x170c151f + #x4b2a1f22 + #xdf054465 + #x7f6f43f9 + #xb8c3f527 + #x9bb4d1ca + #x1c34fab3 + #x9b388be + #x83540 + #x3d2a2215 + #xf51f4b55 + #x7f682df3 + #xb5c90445 + #xa6bed4c7 + #x1c1ce5b3 + #xf79d90d5 + #xf21e5b4f + #x362d1bfd + #x1434433d + #x7f5514f9 + #xb4da1e5b + #xadc2d5c2 + #x1109dcb7 + #xe197a0e0 + #xf9407147 + #x382d06e7 + #x2f392f2d + #x6839080d + #xbff93252 + #xb3c6d1bb + #x9fed8ba + #xd6a0acdf + #x115b7134 + #x3a23f3e3 + #x3c2f1f29 + #x381c0d27 + #xdf183227 + #xbbc7c9c0 + #x9fbd5be + #xd8afb5e1 + #x2a5f5f25 + #x3110ecf2 + #x35221a2a + #x6081a34 + #x6291efa + #xbfc5c9dc + #xcf7d5c5 + #xdfbcc2eb + #x2f504e1e + #x1e04f306 + #x2d1e1b25 + #xe7fd1c31 + #x232702d9 + #xbcc2da02 + #xaf2d4c6 + #xe4cbd5fa + #x2539401a + #x11060411 + #x2b201715 + #xd2f3182b + #x2e1aebc2 + #xbacbfb23 + #x5e8cec0 + #xe8dcec06 + #x14293511 + #x1315100f + #x2d200d09 + #xc0ec152a + #x2f10dfb3 + #xc7e51834 + #xfbdac2be + #xf0f5050c + #x61e2306 + #x1f221104 + #x2a180105 + #xbceb172a + #x340cd9af + #xe3fe2539 + #xebc6b8cd + #x1141a0a + #x111000 + #x2b2609fa + #x1f0afa0c + #xcaee1725 + #x400cd9b8 + #x1092343 + #xd1b7c5ee + #x183427fd + #xfd01fbfe + #x2e1e02fa + #x11fefb15 + #xd6ef141e + #x4b0fd9c7 + #x13082050 + #xbcb0d90c + #x2a4a2bef + #xfdf3f0fe + #x2b150001 + #x9f7fe1c + #xdaef111c + #x29e5bbb3 + #xe3034f62 + #xb7ee210c + #x4d3bf2b7 + #xe9d9f326 + #x10071008 + #xf8071a23 + #xd6121e00 + #x11d6bbbc + #xdc0c5450 + #xd40516f2 + #x4823dcba + #xe7ddfb2d + #xc0c180b + #x4182019 + #xf01c19ff + #xf6cdc8d1 + #xd915472e + #xfc14fed6 + #x3601cbce + #xe9e5072e + #xb18220d + #x11251e0f + #x12271500 + #xe9d4def0 + #xdd0d260d + #x1807ddc9 + #x14e7d4f6 + #xeff20d1e + #x1423290f + #x1421160d + #x332d1103 + #xebddf412 + #xd0f40c03 + #x1ef3cbc1 + #xf2e3f018 + #xfbfc0804 + #x1e2d3115 + #xc1a1515 + #x4f2d05f8 + #xebe7103a + #xb2df0905 + #x1de7bca9 + #xe1f00f2a + #x5fffae7 + #x2a3a3c21 + #x719181e + #x5d1eede9 + #xe7fc2e56 + #x99e61601 + #x20dea280 + #xddfe2137 + #x7f7ead8 + #x3e4b4527 + #xc191a2a + #x48fcd0e2 + #xee1c3c4b + #xa1001af6 + #x22cd8080 + #xdd012e48 + #x3f0e2d2 + #x585c4423 + #x12161e3c + #xcd8c7ed + #x4312914 + #xbf1010f0 + #x18b28080 + #xdc043f55 + #xfef4e6d5 + #x72643e18 + #xf102753 + #xd4c9d4fb + #x1923fcdc + #xda0904fc + #xfb948095 + #xdd104d4f + #xff01f0d6 + #x7f622f09 + #x30d3467 + #xc8d9edff + #x11f8d6cb + #xe301090d + #xd18384b3 + #xe5224b2a + #x50ff6d6 + #x7f562000 + #xfe103f73 + #xe6f2feff + #xeed1cddd + #xe6071608 + #xaf889ec7 + #xf32a32fb + #x1116f6da + #x77471201 + #x1114075 + #x5040907 + #xc7c3d8f2 + #xf3140fe6 + #xab9db4d2 + #x1d08d9 + #x1d19fbe7 + #x6b3a100d + #x7093a6e + #xd111a16 + #xb6cce1f0 + #x710ebbc + #xbbb4c8e9 + #xfefee6d0 + #x221d07f6 + #x61331419 + #xfffc3165 + #xd233321 + #xbcd4dde7 + #xdefbfa9 + #xc7c5e208 + #xeedfd5d2 + #x252312fb + #x5c331c20 + #xeef22d61 + #x2042471e + #xc9ced8eb + #xf7c0a6b0 + #xc9dc081e + #xdcd5d2d0 + #x292e16f0 + #x5c341d1d + #xdded2e61 + #x475a4c0f + #xc9c3dc03 + #xcb9ea9c0 + #xd4002a15 + #xdadacdc3 + #x2e2f0de7 + #x5a321a1e + #xd4ed3365 + #x6d6744ff + #xc0bde920 + #xa39abcc9 + #xed2731ef + #xeadcbbba + #x2f2505ee + #x542a1a23 + #xd1f33b69 + #x7f6637f2 + #xb8c3f633 + #x94abcbc5 + #x103e1cc5 + #xf8cca2bf + #x21140b07 + #x47221d27 + #xd8034867 + #x7f642ae7 + #xb6c9ff44 + #x9abcd0c0 + #x2a36fcaf + #xf8af96d6 + #xc0c2525 + #x3a22201d + #xe91c5159 + #x7f5d19e2 + #xb6d00b59 + #xa6c5d1bd + #x2e20e2ac + #xe7989def + #xfc1e4734 + #x33261c05 + #x4324b44 + #x7f5007e9 + #xb4da216a + #xaec9d2ba + #x2105d5b2 + #xd192aefb + #x3405e2e + #x362909ee + #x1e373732 + #x6b36fcfe + #xbbf33362 + #xb4cdceb3 + #x14fad1b6 + #xc49bbaf7 + #x195d621a + #x3a20f3e6 + #x2b2a2531 + #x441c041a + #xd410363c + #xbbcdc3b3 + #xdf3d0b8 + #xc4a7bff3 + #x3469560b + #x360de7f3 + #x291a1e36 + #x1c0d182d + #xf822220f + #xc0c7bdc8 + #xcefd0bf + #xcbb2c5f7 + #x42614908 + #x22fcee0c + #x21152234 + #x40b222d + #x162107ed + #xbdc1cdee + #x8ebd4c5 + #xd2bcd2ff + #x3a4f4007 + #x11fbfe1a + #x211a2125 + #xf6081d25 + #x2314efd8 + #xb8c8ee11 + #x3e6d2c3 + #xdacde507 + #x273e3605 + #xd070c16 + #x261d1612 + #xe9ff1523 + #x2307dec4 + #xbcdf0f25 + #xfbdec8bb + #xe5e5fa09 + #x16322a00 + #x18150d09 + #x2a16070d + #xdef71529 + #x2600d4b6 + #xd4fc202d + #xf0cdbdc0 + #xf6010b08 + #xd2619fc + #x261c08fe + #x2309fe12 + #xddf6192a + #x2fffcdb4 + #xf00c2536 + #xdcbdc0da + #xc1d16ff + #x81509ff + #x2d1601fb + #x18fefe1e + #xe1fb1c25 + #x38fcc8b7 + #xc2b48 + #xc1bbdefc + #x273416ea + #xfffc08 + #x270c0000 + #x8f70426 + #xdd001c1a + #x3cfac1ba + #x3043659 + #xafc4fe14 + #x3b4012d5 + #xf7eef410 + #x20030105 + #xfef60929 + #xd4031e12 + #xec7b5c0 + #xe82f745d + #xd91320f1 + #x561fd3b7 + #xe4e40b41 + #xf181a01 + #x172a1e + #x172a18fe + #xf9c2c3d9 + #xf039663f + #xf81806e0 + #x4605caca + #xe3ed1544 + #x13202000 + #xe1f2317 + #x2f2a1203 + #xe7c7dbfd + #xfc3b4517 + #x160ee8d5 + #x27eaceee + #xe8f91f3b + #x1a2b2600 + #x1b241b13 + #x482b0e0a + #xe5d7f520 + #xfa221e01 + #x1bf8d5d5 + #x3e3ed13 + #xf4031c1f + #x23332b07 + #x1b1e1618 + #x562a0a0b + #xe9e70f45 + #xdf030dfe + #x15e9cec8 + #xeef10f2a + #x1070bfd + #x2b393115 + #x161a1820 + #x5c22fc00 + #xe9fc2f62 + #xc0f911fc + #x11e0bba6 + #xea052733 + #xa02f5e7 + #x39453c20 + #x171c1f2a + #x4507e3f6 + #xee1c455f + #xbb0715f2 + #x13cc9181 + #xf1113540 + #xdfae7df + #x4e544126 + #x1b1f2638 + #xbe1d3f9 + #x6383c2f + #xd0160aed + #xdad8080 + #xf4184850 + #x9f9e4df + #x675d401f + #x161c3150 + #xcecad802 + #x223513f0 + #xe912fefa + #xf98d8096 + #xf2275d54 + #x600e8dc + #x775e3512 + #xb1e436a + #xb9ceea06 + #x2611e9d1 + #xf1060212 + #xd08080b6 + #xf63c6339 + #xb0aecd7 + #x7c58280a + #x522527c + #xd3e4fa03 + #x7e5d8e1 + #xf0091217 + #xaa819cc8 + #x6484e0a + #x1812ecd9 + #x76481b0d + #x926597f + #xf6f80205 + #xddcfdffa + #xf61716fc + #x9e94b2d1 + #x163c24e0 + #x2313ede8 + #x6a381517 + #xd22567b + #x5060e0e + #xc3d1e900 + #x91bfcd1 + #xaeabc3e1 + #x171cfdd1 + #x2716f9fa + #x5e2f1722 + #x9185074 + #x7172318 + #xc4d8e8f8 + #x1502d0b6 + #xbfbed8fe + #x5f8e8d5 + #x281e0701 + #x5a2f1f27 + #xf90d4a6e + #x1a313718 + #xcfd4e3fe + #x5d7b1b6 + #xc8d4fd17 + #xece4e3d8 + #x2f2a0ff8 + #x58332627 + #xe906486b + #x4650400b + #xcfc8e71b + #xdcb1aec3 + #xd3fa2315 + #xe0e4dfd1 + #x38310be9 + #x5633262a + #xdd03496d + #x73623bfa + #xc4c3f640 + #xb2a7bcca + #xed2431f4 + #xe9e3cfca + #x3c2a02ea + #x522e2331 + #xd907506f + #x7f632eec + #xbbcb0a5d + #x9db3cbc6 + #x123d20c8 + #xf6d4b9d1 + #x351b03fd + #x49282738 + #xdb12596d + #x7f5f1ee0 + #xb9d5186d + #xa1c4cfbe + #x313bfcae + #xf6b7abec + #x2213181a + #x3d282c30 + #xe7275e5f + #x7f5c0fd9 + #xb9dc267b + #xaecccfbb + #x3c24e0aa + #xe59eb309 + #xf233b2a + #x372e2717 + #xfe3c5a4a + #x7f4e00df + #xb9e4377f + #xb7d0ceb9 + #x330dd3b1 + #xcc98c617 + #x11445524 + #x382f15fc + #x1b44493c + #x6e35f6f4 + #xbcf8487c + #xbfd4cbb3 + #x22fdcfb6 + #xbaa1d416 + #x27625a0e + #x3d26fdf1 + #x2c38353b + #x4a1b0013 + #xd112485a + #xc6d5c0b1 + #x16f4ceb9 + #xb7add90d + #x44724efc + #x3b12ecfe + #x28232e43 + #x2411172a + #xf224342c + #xcaceb7bf + #xff0ccbc + #xbeb5d90a + #x586f43f6 + #x2bfeee18 + #x1c173044 + #x12162a2c + #x1123160b + #xc6c3c0e1 + #xaecd0c4 + #xc6bae00d + #x58653dfa + #x17f8fe2b + #x181e3437 + #xf1b2823 + #x1f13fefa + #xbec6df06 + #x5e9d4c3 + #xcec7ed0f + #x485637fc + #xe030f2a + #x22262b23 + #xa131c22 + #x2005eeea + #xbcdc031e + #x1e5d0bc + #xd8dbfd11 + #x374a2efa + #x1613161c + #x2c201817 + #xfe05182b + #x22fee0d7 + #xcffc1c28 + #xf9dbc4ba + #xe9f50b0f + #x2c3f22f9 + #x241c0f0f + #x2b120d1b + #xf2011f33 + #x28fcd1c7 + #xec112430 + #xe8cbc2cc + #x10f160a + #x232c13fe + #x2c180609 + #x1f030b28 + #xee062733 + #x2ff5c3c0 + #xfe162e41 + #xcfc2d5ea + #x1c2418f8 + #x1716070a + #x2b0f020a + #x11fe1533 + #xed0f2b2a + #x2ee7b9bc + #xfd154456 + #xbed1fa02 + #x38310bdd + #x6fe021c + #x200a060a + #x2011e33 + #xf0182a18 + #x2adbb5b7 + #xf4165d65 + #xb9e9180d + #x4d35fdc4 + #xf6f0002e + #x15060b06 + #xf903222e + #xf520270a + #xe4a5bef6 + #x6627c3e + #x26fed5 + #x48f7b9c1 + #xd9ef2555 + #x122417ef + #x824250f + #x532908fb + #xd6afd510 + #x17615b1d + #x1214e7d7 + #x2ae1c3e0 + #xdef92d4d + #x1a2c18ed + #x16211d10 + #x55260808 + #xd0c4f231 + #x21492dfb + #x18fbd5de + #x5d5de08 + #xeb083036 + #x253118f2 + #x1e1d1414 + #x54220810 + #xd7db0d4c + #xb1e0df2 + #xbe7d2e1 + #xece40821 + #xfd0f1f10 + #x2c341dfe + #x1b18161d + #x4a1b020d + #xddf32c61 + #xe50405f0 + #x1e0c9c7 + #xec002528 + #x90b02f3 + #x363c280f + #x1a1b1d24 + #x3408ef04 + #xe513455f + #xd00406eb + #x1d2a8a0 + #xf614342d + #xcfde8e7 + #x4349341a + #x1b1f242d + #x4e7de01 + #xfd344633 + #xdd0ffbe5 + #xfdac808c + #xfe21453c + #x8f2dde4 + #x58583c1b + #x18212c3f + #xc5c8dd08 + #x1e3c24f2 + #xf30bedf2 + #xe280809c + #xfe315c42 + #x5f3dde1 + #x6c5e3b17 + #x10213e5b + #xa7c1e908 + #x2f21f6c9 + #xfafeef0d + #xb98080b6 + #x24a6a30 + #xbfbdeda + #x75582f10 + #x9285475 + #xb6d0f401 + #x18f3dbd2 + #xf4fd061e + #x92808ac8 + #x135c5f04 + #x1401dbd9 + #x73481f12 + #xd33657f + #xd9e5f9fe + #xecd5dded + #xf70f140c + #x8681a5ce + #x265838d9 + #x1e01dae7 + #x6737161b + #x14386a7f + #xe9f3fe06 + #xc9d0e8f7 + #x81a04e1 + #x959cb5d9 + #x2d380cc3 + #x2401e4fd + #x5a2c1826 + #x13366779 + #xed021010 + #xc4d9ebf3 + #x180bd9be + #xaaafc7f3 + #x1b0ff0c5 + #x2509f709 + #x512a222c + #x5296273 + #x11d2612 + #xcbd6e8fd + #xde1b5b6 + #xb7c4e80d + #xfbf2e8ce + #x2a170501 + #x4e2f292c + #xf41f5b6c + #x2f3c3105 + #xccc9ed22 + #xe8b7aac0 + #xc4e71213 + #xe4e9e5ce + #x362404ed + #x4e31282f + #xe81b586c + #x62542cf3 + #xc0c40253 + #xbaa7b5c5 + #xde1626f4 + #xe4e7d9c9 + #x4124f9e4 + #x4d2d2638 + #xe11b5c6c + #x7c5c1ee2 + #xb2cc1d74 + #xa1aec1be + #xb371ac8 + #xedd7c4d5 + #x3f18f4ef + #x46292a42 + #xde24636a + #x79580fd5 + #xaeda307f + #xa1bdc4b5 + #x333bf6a8 + #xecbab7f0 + #x2f100406 + #x3a28313e + #xe4366a5f + #x715000cc + #xb1e43e7f + #xaec5c0af + #x4525d3a1 + #xd7a0c013 + #x1b1d2516 + #x332f3128 + #xf949694e + #x6d42f0cf + #xb2ec4e7f + #xb9c8bdae + #x3c09c1a7 + #xba98d628 + #x1a3e4310 + #x3733220b + #x14505741 + #x6329e8e1 + #xb6fe5c7f + #xc0ccbaaa + #x29f6beac + #xa5a1e929 + #x2d5f4efb + #x3c2a04fb + #x2a43413e + #x4810ed01 + #xc7185e6a + #xc8cfb2a5 + #x17edbeb1 + #xa3aff01e + #x4d7142e8 + #x3b10eb05 + #x2c2c3646 + #x1f06081e + #xe72a483c + #xccc5a7b1 + #xde8c0b6 + #xaab7ef16 + #x667336e0 + #x2cf7e822 + #x1e1f3a4a + #x9122226 + #x628281a + #xc7b6aacf + #x6e4c3bd + #xb2baef13 + #x706a2de2 + #x14effb3b + #x1022413f + #xd21291b + #x16140c0d + #xbab3c5f6 + #xe2c8be + #xb9c1f713 + #x66612ae7 + #x8fb1241 + #x162c3a28 + #x161f1d13 + #x1601fd06 + #xb6c8ed10 + #xfee4c8b5 + #xc3d20212 + #x555525e8 + #xc0d1a33 + #x252a2617 + #xc0f161e + #x13f9eff3 + #xc4ec0c1d + #xfadec0af + #xd2e80c10 + #x484a1de9 + #x1b181322 + #x2a1b1618 + #xf6011d30 + #x18f4dad9 + #xe1081b26 + #xedcfb9ba + #xe8fe140b + #x3e3b12ef + #x2616061a + #x210b1325 + #xe5042a37 + #x21e9c3c7 + #xfa122536 + #xd5c1c5d9 + #x51317fe + #x312609fe + #x260c0017 + #xf041d31 + #xe7123430 + #x21d5b1c0 + #x143b4d + #xbec9e7f4 + #x24210ce2 + #x1d0f0414 + #x1e060112 + #x1062a36 + #xf71f331f + #x13bdaac7 + #xf7245f5c + #xc1ec06fa + #x3f22f2c5 + #x1fa092f + #x130b0906 + #xf90f312c + #x1429280c + #x6acacce + #xf03a7b63 + #xd00b17f2 + #x4e1dd9b2 + #xeced1045 + #xb1310fa + #xf6163422 + #x2d2f1dfe + #xc5adec3a + #x457f6d18 + #x271fe0e5 + #x2adcc5ec + #xe50d4c62 + #x282e0fe7 + #x23332318 + #x57250708 + #xc5c40046 + #x4c714602 + #x2306dcf7 + #xed7de08 + #xee184d4d + #x2f300dea + #x272b1f1c + #x48210d15 + #xcfde1953 + #x40441ff1 + #x13eede06 + #xf4e00421 + #x23412c + #x37320df4 + #x25231d24 + #x371c0e1a + #xdaf7305b + #x191c0df0 + #x2e6e3fc + #xf1002423 + #x1120230b + #x3d361504 + #x2323232a + #x27110716 + #xe5134857 + #xf90e08ed + #xffe2cfd7 + #x1d3321 + #x150f02fb + #x45422715 + #x24282830 + #x7f9f813 + #xfc375035 + #xf71200e9 + #xfdc9a4ba + #xf2f402a + #xffceef8 + #x5350351d + #x242a2c3b + #xd8def416 + #x204b37f8 + #x60ff0f4 + #xe69980bb + #x133e5633 + #x7f2eaf7 + #x635b3d1d + #x202b3b53 + #xb7d0fb18 + #x39390aca + #xaffee11 + #xb78080d0 + #x16536524 + #xbf5e7f0 + #x715d391d + #x1f35536e + #xbad80213 + #x2e0ee9c6 + #x2f80328 + #x8c8095df + #x256962fd + #x16f9e0ec + #x75532f21 + #x21446a7f + #xd1e7000d + #x6ece3df + #xfd071a23 + #x8080ade0 + #x407044d3 + #x21f8daf7 + #x6d41242a + #x284f777f + #xe2f2ff0d + #xe2e2eded + #xb1a16fd + #x8c9dbde5 + #x4d5b1dbd + #x24f7e20e + #x5e332430 + #x2a52797f + #xe5fc0a15 + #xd3e6f2ec + #x1f18f4d7 + #xa4afc8f9 + #x4133fdbd + #x23fcf720 + #x502f2e36 + #x214f7777 + #xf20f1d18 + #xd7e6f2f5 + #x20f5cac8 + #xb4bfe315 + #x1d0ff2c9 + #x270d0a1c + #x4c353537 + #x1546706e + #x1a2e2a0f + #xd7dcf919 + #xccbacc + #xc1df0b1f + #xfffff0cf + #x351d0e06 + #x4b39363a + #x8406969 + #x4b4827ff + #xc9d70f4c + #xd3b4bfd0 + #xdb0e2507 + #xf4fbe9cf + #x422403f4 + #x4d363344 + #xff3b6a6a + #x665219ed + #xbadf2e6e + #xb4b6c9c8 + #x7351ddc + #xf9eed8da + #x481af7f4 + #x4930364d + #xf840706a + #x664f0ade + #xb6f04679 + #xb0c1c9bb + #x333dfbba + #xf5d3cdf5 + #x3a12ff04 + #x4132404f + #xf94c7563 + #x6146fcd4 + #xbbfd567c + #xbdc9c2b4 + #x4c2ad5ad + #xe0bad51c + #x28191c11 + #x3739443e + #x75a7153 + #x6539eed1 + #xc108657f + #xc6c9bdb3 + #x480dc2b2 + #xc1b0f139 + #x23353a0b + #x3b413a24 + #x21626348 + #x6624e2df + #xc518737f + #xccccbbb0 + #x35f8bfb7 + #xa9ba083e + #x365846f5 + #x463a1f15 + #x37575048 + #x500de5fc + #xd1307574 + #xd1cdb4ac + #x20eec1bd + #xa5c91235 + #x57703edf + #x4821021d + #x3b40444f + #x2702fb1a + #xed426148 + #xd8c8a9b2 + #x13e9c2c4 + #xadd31128 + #x73732cd5 + #x3602f835 + #x2c2f4653 + #xa0e1a27 + #xb404024 + #xd4b9a9cc + #xbe3c5cd + #xb4d40d21 + #x7f6921d5 + #x1cf4074f + #x1c324d48 + #xf242a1f + #x1a2a251a + #xc6b0bef0 + #x4e2cccf + #xb9d70d1c + #x7c611fda + #xafd235d + #x1c3e4c32 + #x242c2012 + #x1813191f + #xbabee50d + #x3e7cfc4 + #xbee01119 + #x735e1fdc + #xb123058 + #x2a403a1f + #x231d1516 + #x11080e12 + #xc4e0061a + #x4e7c8b9 + #xccf11816 + #x68541adf + #x1a202b49 + #x3332251a + #x40d1c2b + #x1203f8f1 + #xdf031920 + #xfcdcbdbd + #xe2031c15 + #x5d4913e7 + #x281f1a3b + #x2c1f1f27 + #xe70b2f3a + #x19f5dad3 + #xfd12242e + #xe7ccc1d7 + #xfb131f0b + #x50370ef7 + #x2b120f35 + #x1a152835 + #xe61a3e37 + #x1adac2c9 + #x7183a45 + #xd1ccdaf4 + #x182118f4 + #x3a240d0d + #x230b0d2e + #xb19393b + #xff2c4228 + #xabbb9d8 + #x4275854 + #xcde6f8fc + #x332703d5 + #x1f111228 + #x190d1220 + #x4244133 + #x23363716 + #xeea7c1f8 + #xa49744d + #xe30a04f1 + #x4419e2c5 + #x2042346 + #x1619160b + #xa2e3d27 + #x42372508 + #xd7a0cd13 + #x166c7f41 + #xff2302e2 + #x4606c8c4 + #xedff3358 + #x192516fb + #x1133361a + #x56361503 + #xa0bf0f4d + #x757f47e1 + #x27f0cd10 + #xfdc1d10e + #xea256354 + #x3724f1d5 + #x2a27131f + #x2a15000e + #xafd51b4a + #x676227da + #x10e1db22 + #xecd0f11b + #xf9315732 + #x3a22f1e0 + #x27221625 + #x1e130815 + #xc4f02c46 + #x402e09da + #xfadaea24 + #xe3f0161c + #xe32380c + #x3d24faf1 + #x211e1c2c + #x120e0b16 + #xd50c4040 + #x101000dd + #xf3e0e600 + #xf4152712 + #x161f0ff6 + #x402c0c06 + #x1f222231 + #x3ff0315 + #xef2f4a2a + #xff0cf7dd + #xf6d1bfd8 + #xc2c2e13 + #xe02f6f6 + #x483b2215 + #x22242538 + #xe3e7fc16 + #x134a3af7 + #x508e9e6 + #xe7a695cb + #x193d401f + #x2efeffd + #x594b3118 + #x22242c48 + #xc4d7ff19 + #x37460fc5 + #x9f6e302 + #xb88089da + #x21535618 + #xfce9ecfa + #x67533218 + #x222b4160 + #xbcd80216 + #x381fe6b5 + #xfce9f622 + #x80809be9 + #x326d59f0 + #x3e9e1f6 + #x704e2c19 + #x2a415f76 + #xcbe4ff12 + #x16f6d7c5 + #xf0f31528 + #x8080b1e7 + #x4d7b3ebe + #xee6d4fd + #x6c432722 + #x3557767f + #xd7e9fa12 + #xece4ded5 + #xf90e1c08 + #x8087b9e3 + #x646d139f + #x12e0d716 + #x5d352a2e + #x3a637f7f + #xd8edff18 + #xd7e6e6d5 + #x1015ffde + #x8a9cbff1 + #x5d47f19f + #xfe3ed2e + #x4d2f3232 + #x34607e75 + #xe3fc0f1b + #xd7e6e6db + #x1cfad4c7 + #xa0abd70f + #x3d22e4b1 + #x10f3082f + #x46343832 + #x2b5a786a + #x5181b13 + #xd5ddeafc + #x5d0bbc7 + #xacc7ff21 + #x160be6bb + #x1c0b1219 + #x46383832 + #x1f547064 + #x34321903 + #xc7d5032e + #xd8b2bbc8 + #xc4f41e10 + #x303e1be + #x311806ff + #x4837353d + #x15506d63 + #x51400cf1 + #xb5e02757 + #xb4acc2bf + #xf3221ce7 + #xf7d4c8 + #x3d15f6f3 + #x47323a4d + #xc507064 + #x5a3dfce1 + #xb1f64766 + #xabb7c1ae + #x2832f9be + #xfadecbe9 + #x3708f3fc + #x3e314754 + #x9567560 + #x5d32ecd5 + #xb90b5c6d + #xb4bfb5a3 + #x4721d0ac + #xe3c4d515 + #x25090905 + #x373a504a + #x13627254 + #x6725dace + #xc4196c7c + #xbebeaca2 + #x4700b8ae + #xbfb9f43b + #x1e2228fd + #x38444832 + #x2b676347 + #x6c12cbd8 + #xca2b7b7f + #xc2bca9a0 + #x2fe7b4b5 + #xa5c41347 + #x324837e4 + #x43402c21 + #x44625144 + #x56facaf4 + #xd5437f7b + #xc7bea69d + #x19dbb7b9 + #x9fd5243d + #x54642eca + #x48280c25 + #x4a4d464b + #x27efe015 + #xed566d4d + #xcbb99da2 + #xbd7b8c1 + #xa6e1212e + #x706716bb + #x3a06fd38 + #x383b4853 + #xf90525 + #xe53481f + #xcaab99b9 + #x3d3bccd + #xb1e41b24 + #x7f5c06bb + #x18ef0b56 + #x2238514a + #x5151c1e + #x1e3a2c15 + #xbc9fa9de + #xfdd1c5d1 + #xb5e6181e + #x7f5402bf + #xfdf32a6f + #x1c434e2f + #x2527180b + #x181f2424 + #xaca6cefc + #xf9d7cbc5 + #xb8ec1616 + #x7f5105c1 + #xfc0c4176 + #x2a473e19 + #x341e0809 + #x9121f22 + #xacc7f308 + #xfadbc4b2 + #xc1f61813 + #x764e05c4 + #xf1f416a + #x373b2712 + #x1609081b + #x60e0bfc + #xc7ec090c + #xf9d4b7b1 + #xd4021912 + #x6d4803cd + #x1f1f2f5c + #x32251c1e + #xec031e2f + #xcfde4cd + #xea031518 + #xecc4b1c7 + #xed0f1c0c + #x603affdd + #x25122151 + #x1f19242e + #xe3153734 + #xedbc2bb + #xfd0e2a2f + #xd3bbc4e7 + #x81e18f9 + #x4b2800f4 + #x1c061c47 + #xc1b3535 + #x2e4124 + #xfab5b5ce + #xff1e4a41 + #xc8cee3f6 + #x212505da + #x2e150910 + #x12051c37 + #x6283e31 + #x283d3812 + #xd89cbef4 + #x540673d + #xd7f1f3ed + #x351be6c2 + #x100b1c31 + #xe0e1b1f + #xe353d24 + #x433d2503 + #xb599d81f + #x226c721f + #xfd0bece4 + #x34fac8ca + #xf709384e + #x16191202 + #x1b3b2f19 + #x483210ff + #xa0a2ef3e + #x467f6d03 + #x1b13dbe6 + #x28dbb8de + #xe60f505c + #x242106ec + #x253b2215 + #x442702ff + #x9add2236 + #x7f6b10b2 + #x5c2dc48 + #xd1bdee23 + #xfa435f20 + #x330cdacf + #x23130e26 + #x800fc14 + #xafec252e + #x6240ffb8 + #xefc9f347 + #xd2dc0517 + #x9434203 + #x3309dfdd + #x1a13142d + #x6030213 + #xc8032e26 + #x2b17f1c3 + #xe3d6fd29 + #xe2031606 + #x16311ae9 + #x310ceff3 + #x16141a31 + #x2ff0310 + #xdf1f371a + #x508ebc8 + #xe9d9e3f7 + #x2201700 + #x1110faeb + #x341a0809 + #x1a171c34 + #xf1effd11 + #x23c2df9 + #xddd1 + #xe5bab7dc + #x192e220b + #xfff1eff9 + #x422e1d11 + #x1d161f3c + #xd6e0fd16 + #x2b430ccc + #xeed4eb + #xc28b9fe0 + #x23403a0c + #xefe5ee00 + #x543f260c + #x1c192e50 + #xc5dd0016 + #x3d26e0b4 + #xf1dae313 + #x8980abee + #x345d45ec + #xefe2e6ff + #x62432309 + #x1f2b4864 + #xc9e3fd10 + #x23fac8b5 + #xdfdf0523 + #x8080bdeb + #x51712db2 + #xf6dcd706 + #x623d2010 + #x2b456470 + #xd2e5f610 + #xf7dfc6c2 + #xe2fc1910 + #x8080c2e0 + #x6d6afc86 + #xf9d1d41d + #x5633251c + #x3a5c7373 + #xd2e0f719 + #xdcdccfc3 + #xfa0e05e6 + #x8091bfe5 + #x7047d680 + #xf4cce637 + #x452e3023 + #x4065776b + #xd6e80320 + #xd9dfd4c8 + #xcffdcc9 + #x899bccff + #x5422c992 + #xf3dc0540 + #x3c333923 + #x3c627360 + #xefff101d + #xd7dad9e3 + #x2d6bcc3 + #x95afee16 + #x2e0bcea3 + #xfdf6142d + #x3c373925 + #x335d6b56 + #x1a191010 + #xcbd2ec11 + #xd9b2b7c5 + #xa9d91311 + #x1403d2a9 + #x140b0b0e + #x4037362b + #x28566556 + #x3d2802fd + #xb8da113c + #xb2a8bcb8 + #xd60917eb + #xcfac8b2 + #x260bf4f9 + #x4033393c + #x1d536759 + #x5025f1ee + #xb2f33756 + #xa2aeb7a5 + #xe22fcc0 + #x3e5bfd1 + #x28fdebf9 + #x3931474a + #x19576d59 + #x571ae0e0 + #xbc0e5164 + #xa9b4a694 + #x3416d2a9 + #xe9c9c903 + #x17f6f7fd + #x3039564a + #x1f5f6d50 + #x620bccd7 + #xcb236477 + #xb1b19892 + #x39f4b5a9 + #xc5bdee31 + #xe0610f3 + #x31455336 + #x33675f40 + #x64fab8da + #xd436737f + #xb4ab9494 + #x23d6aeaf + #xa8c81445 + #x1d2d1dd7 + #x3c453a23 + #x4a624d3a + #x4ae2b2f1 + #xdf4e7c7f + #xb4a99292 + #x9c8b1b4 + #xa2e02d3f + #x434e14b8 + #x452e1925 + #x53513f40 + #x13d1c511 + #xf6626d50 + #xb8a88c97 + #xfac3b2ba + #xabf32d30 + #x6857fca6 + #x370b0839 + #x403c4248 + #xe6d7e923 + #x14604a1a + #xba9b85ab + #xf4c0b5c5 + #xb8f92522 + #x7a4de8a5 + #x14ef1057 + #x26374b43 + #xe9f4091d + #x25452809 + #xaf8c91ce + #xecc0c2cc + #xbdf71d19 + #x7c3fe0a9 + #xf3ee2e73 + #x1a404e2b + #x13110b09 + #x1d251f1f + #x9b8fb2ec + #xe8c6c9c2 + #xbcf71911 + #x7a3ae2ab + #xeb064b7f + #x26473c10 + #x3313fa00 + #x9172330 + #x95abd9f7 + #xe9ccc3ac + #xbffa160c + #x7439e5ac + #xfd1f577f + #x363c2203 + #x2200f30e + #xff171a11 + #xabd1eff6 + #xecc9b1a2 + #xcc00140b + #x7037e3b2 + #x14254b74 + #x3425130e + #xf6f40525 + #x60cf6da + #xceecfcfc + #xe5b8a6b2 + #xe00b1609 + #x652ee2c0 + #x1c173a68 + #x20131922 + #xe503232d + #x9e8c9b8 + #xe8fc0e13 + #xcfacb2d2 + #xf61616fc + #x531fe5d6 + #x1308315d + #xc14292d + #x2223420 + #xf6b8b1c8 + #xef0c3129 + #xbfb7d1e8 + #xe1f06df + #x3a11f1f1 + #x502304e + #x8223628 + #x303a300c + #xcc98b7ef + #xf62e5326 + #xc5d7e6e5 + #x2319e8c3 + #x1d080613 + #xff062b37 + #x1031341c + #x4a3f1dff + #xa092d117 + #x10595f05 + #xe5efe0dc + #x29fcc6c3 + #x3092333 + #x60e1d17 + #x1f372811 + #x473309fc + #x88a5f431 + #x42794eda + #x8efceee + #x14d4bce3 + #xf1174543 + #x191103f3 + #x2b311711 + #x331ffa00 + #x83ba0c3d + #x6d7f39bf + #x1ae3c30c + #xfdb7c205 + #xe9285c4a + #x2610eed7 + #x2d260b16 + #x200ef403 + #xb5fa2520 + #x7f40e0a2 + #xdabf0c70 + #xc3d9111a + #x1d5d47f3 + #x23f1cfdd + #x190b1a33 + #x8fa051f + #xc603261d + #x5123ddae + #xd7d61a54 + #xd6f71305 + #x254a23e5 + #x1ff3dcef + #x160e1f34 + #x9ff0619 + #xdd192917 + #x1f0bdabc + #xdde91123 + #xf71410f6 + #x232600e3 + #x1ffcf306 + #x17132234 + #x2fa0514 + #xfc312605 + #x902d6c6 + #xe5dae5f7 + #x141f10fc + #xe03f3f7 + #x29130e13 + #x1c132236 + #xecef0317 + #x223c10e3 + #x3f1cee0 + #xcfaec2ee + #x252b2005 + #xf9eff409 + #x3d2b1d0c + #x19132942 + #xd6e90619 + #x3c29e9c6 + #xf6dad908 + #x9f89c0f6 + #x344731f1 + #xebebf40e + #x51391f02 + #x171d3c54 + #xd1ec0617 + #x3302cbbf + #xddd6f926 + #x8083d1f3 + #x4e6025bf + #xeee5e811 + #x593a1d02 + #x20365665 + #xd6eb0014 + #xee2c3c3 + #xd6ee1420 + #x8092d6e2 + #x685df788 + #xeed7e023 + #x54372610 + #x314e676b + #xd4e3fd1a + #xebd7c6c3 + #xeb090efc + #x809dcedd + #x773fc880 + #xe8c9ef42 + #x47373319 + #x405d6e67 + #xd1e00525 + #xe0d9c8c3 + #x608ebd9 + #x80a0cff1 + #x671cb580 + #xdfd10e57 + #x3c393a17 + #x48646e5a + #xddf1112d + #xdfd6ccd7 + #x5e5c8ce + #x8baceb0e + #x4705ba94 + #xe5ec234e + #x3a3d3a13 + #x47646850 + #x81325 + #xd7d1dd00 + #xe5bfbdce + #x98cf0e13 + #x28fcc39b + #xfc061f2d + #x3f3f3617 + #x3f5f604d + #x26160919 + #xc6d6002e + #xbcafbfc3 + #xbffd1df4 + #x19f9bfa2 + #x160b0510 + #x403a3929 + #x34595f50 + #x3f16f909 + #xbdee264e + #xa8b4b8ae + #xf61c06c9 + #x10e8b7bf + #x1dfdf106 + #x3937473f + #x2b596553 + #x4a0be6fa + #xc60e4764 + #xa9b7a69a + #x2317e0ae + #xfad1c3f1 + #x13f1f405 + #x2e3d5645 + #x2e60674b + #x4dfdd2ec + #xd9295a77 + #xafaf9295 + #x2ef7c2a9 + #xd7c3e826 + #x6fa06fc + #x304b5a37 + #x3f6a5d3c + #x47ebbfec + #xe63d6b7f + #xafa38c9a + #x1ad7b5af + #xbacf1440 + #x111910df + #x3d514825 + #x53674b33 + #x26d2b4fd + #xf354747a + #xac9f8b9d + #xffc5b5b5 + #xb2ec333f + #x333903bd + #x47402922 + #x5a573f39 + #xf1bfc21a + #x8686d4d + #xaf9d86a2 + #xefbfb7b8 + #xbd06392e + #x5c45e8a6 + #x3c1f1739 + #x4b433f45 + #xc5c0e52e + #x266b4e17 + #xb29480b2 + #xe8bdbac2 + #xcc10311f + #x743ad1a3 + #x1c02205c + #x31394842 + #xc8dc062b + #x3a542b00 + #xab8685d2 + #xe0bdc5c9 + #xd2102816 + #x7429c9a8 + #xf7fc3c79 + #x203f4b2b + #xf4fd0e14 + #x33311d17 + #x9883a2f1 + #xdac3d1c3 + #xd20c220c + #x6d1fc9ac + #xe60b5a7f + #x28483f0b + #x2008fd06 + #x191f2534 + #x8e9ac8fc + #xdcceceae + #xd40b1c05 + #x6a1dcbac + #xf3266b7f + #x394225fa + #x1dfaee0e + #x9202628 + #x9bbfe0f4 + #xe2ceba9b + #xda091703 + #x6a1fcbaf + #xe366b7f + #x3c2d1302 + #xf6e9f925 + #xc1d0bf3 + #xbddde8f1 + #xe0bda6a5 + #xe50c1706 + #x671cc9b8 + #x1a305f7d + #x29161317 + #xdff11731 + #x13ffddcc + #xdaeef602 + #xcfacacc2 + #xf31419ff + #x5a13cec9 + #x131d5374 + #x11102225 + #xfa132d26 + #xccbdd4 + #xe6ff141a + #xbcafc6dc + #x61d11e9 + #x4509dce0 + #x2114b65 + #xb1f3123 + #x2d312b11 + #xd2a2bcfd + #xec1f3d1c + #xbac8e0df + #x1c1af7ce + #x2d03f1ff + #xf9134350 + #x17333416 + #x4d3a1905 + #xa295d422 + #x5484efc + #xd2e2dfd9 + #x2502d4c6 + #x16081020 + #xff173631 + #x293c2809 + #x4d310603 + #x85a5f436 + #x316b3fcc + #xf4e5cee8 + #x17dcc2dd + #x5173034 + #xc171c0e + #x36361a09 + #x3d1ffc0e + #x86c61137 + #x677319a8 + #xd1cc19 + #xf3bfcf02 + #x334b30 + #x1c0efaeb + #x34261316 + #x280bfa17 + #x95e02333 + #x7f6bfc97 + #xfdbddc4a + #xd4b7e61d + #x5475622 + #x2305dfd4 + #x2d141023 + #x19fffa1c + #xd40c211b + #x6114bfa7 + #xbee13e76 + #xcbff21f6 + #x3d551ad4 + #xcdcd0f6 + #x12112934 + #x3fc111d + #xdf14231a + #x3d09c5b3 + #xcef6344c + #xea0c11ea + #x383702dc + #x8e4e208 + #x1514292e + #x3fd0c1a + #xf4232111 + #x1bfdc8c1 + #xe1fa1118 + #xb1405ea + #x2411f0f1 + #xef7fc15 + #x1715272b + #xf7f90b1a + #x173112f7 + #xef0c4d8 + #xded8e500 + #x1b150bf7 + #x8f9f60b + #x2314110f + #x15142931 + #xe1f30c1b + #x3527f4d9 + #xdccdff + #xb8afd600 + #x29291df1 + #xf4f4fd15 + #x3b2b15ff + #xf183543 + #xd8f30e18 + #x3808d6c8 + #xe5d0ea24 + #x8ca1e1fc + #x434a1eca + #xedf0fa1e + #x493212f4 + #x12294953 + #xdbf40c12 + #x1ae5c8c8 + #xd3e20e2e + #x80afe7e5 + #x6456fa94 + #xebe2f42f + #x4c3115fa + #x24435c5f + #xd9ed0617 + #xf9d4c5c7 + #xe1001715 + #x80b8dbd6 + #x773bc880 + #xdfd1fd4d + #x47352406 + #x3d566561 + #xd0e50b26 + #xe8d3c4c1 + #xfd09fcf3 + #x85b3d1e4 + #x6d12a980 + #xd3d11a68 + #x413e3408 + #x4a5f6756 + #xceed1532 + #xe4d0c2c8 + #x8f1d8df + #x89b3e202 + #x50f7a985 + #xd3ea356a + #x404435ff + #x4f625f4a + #xe5001d34 + #xdcc8ceea + #xf0cbc7db + #x94cb030c + #x34f0b38f + #xe806374d + #x43462efd + #x4c5f5944 + #x90e172c + #xcdcbee18 + #xcab8c5d1 + #xb0f71af9 + #x23f1b694 + #x30f202f + #x44402c0c + #x465c5849 + #x230e0921 + #xc2e2173e + #xb2b8bfbc + #xe41a0ed0 + #x1ae7b0aa + #x1403061d + #x3b3a3829 + #x3e5b5c4c + #x2b05f915 + #xcb053755 + #xafb9aaa7 + #x111bebb3 + #x6d0b8db + #xef1001a + #x31404d38 + #x3e625f46 + #x26f7e708 + #xe1264f67 + #xb5b095a3 + #x21ffc8ad + #xeac4db11 + #xf30b0f + #x324f5834 + #x46685937 + #x17e5d100 + #xf43e5f6e + #xb3a08ba9 + #x12dcbbb3 + #xcdd10c34 + #x3090ff3 + #x405b4d20 + #x566a492e + #xf9cdc40b + #x352675e + #xad9588b0 + #xf9c8b9b6 + #xc2f13237 + #x2126ffcd + #x4d52341a + #x5f5c3d32 + #xcab5cb23 + #x17646232 + #xaa9286b6 + #xe8c4bbb8 + #xcd123e26 + #x492fdfb2 + #x4735232f + #x564a3b3e + #xa1b0e838 + #x326d4700 + #xad8c80c5 + #xdfc1bcbb + #xdf213714 + #x6424c5ad + #x27142755 + #x3d3d4643 + #xa1c70938 + #x475b29eb + #xa78085e2 + #xd6bfc4c1 + #xea212e09 + #x6711bbb3 + #x2094177 + #x2c404a2f + #xcdeb1524 + #x443b1802 + #x98809d00 + #xd0c7d0bf + #xeb1e2702 + #x5f03bbb9 + #xed17627f + #x2c473d0c + #x611 + #x29242127 + #x8989bf09 + #xd3d3d3af + #xeb1a21fc + #x5800bcbb + #xf332797f + #x3a4421f1 + #xcf7f30f + #x12232b2b + #x91acd8ff + #xdcd8c19b + #xed171af9 + #x5602bbbb + #xb497d7f + #x3e310cf3 + #xebe4f623 + #x12261a00 + #xadcadcf3 + #xdfc8aa9a + #xf11417fc + #x5600b9c1 + #x1e4a797f + #x2f1b0b09 + #xcee40f31 + #x1b11f0d6 + #xcbdbdffc + #xd1b2a6b2 + #xf71518fa + #x52fabeca + #x1b3b6e7f + #x18121b1b + #xdf00272c + #xce1cbd9 + #xdbe8f912 + #xbcadbbcd + #x31b15eb + #x46f4c8dc + #x92e6776 + #xe1e2c1b + #x11232915 + #xe2b2c402 + #xe4062118 + #xb3c1d6d6 + #x151d03d4 + #x32f3dbf4 + #xfd275b62 + #x1531310e + #x3a321806 + #xac9ddb2c + #xfc353efc + #xc5dbdcd4 + #x210be4c7 + #x1efaf612 + #xfd294a44 + #x293d2700 + #x43290608 + #x89a7fa40 + #x275e32ca + #xe4dfcee1 + #x18e7cdd4 + #xf0c182b + #x8273421 + #x3a3a1afd + #x3a17fd17 + #x86c41540 + #x5965099e + #xf1cdc808 + #xfac8d1f4 + #xc27382c + #x111b1202 + #x3b291106 + #x2b060026 + #xa0e72334 + #x774dde8e + #xe4bee540 + #xd4c5f30c + #x17464412 + #x1706eeeb + #x2c17141b + #x1afc062b + #xb9fd2729 + #x7f34c291 + #xd1bb0b6b + #xbed41115 + #x245843f6 + #x18f4d6e4 + #x1e0b1d2b + #xef60b2b + #xe5131a11 + #x41f4b5b7 + #xc40e5a6a + #xe91910d0 + #x4e35efd0 + #xf2d0d917 + #x111d2f22 + #xf4011314 + #xef1a1c10 + #x2cf1bac0 + #xdc113941 + #x1300d9 + #x3919ebe6 + #xf7e0ee1f + #x141d2c1a + #xf1fd1017 + #x8251601 + #x19e9bdd2 + #xebfe0a1a + #x130dfde8 + #x1afdf104 + #x7fd051a + #x131a281c + #xe5fa101a + #x262300e5 + #xad7c3f4 + #xd5d5ee10 + #x1a140def + #xfef70117 + #x22190e05 + #xb172c2a + #xdafa1619 + #x320de5d2 + #xefcadd1c + #xaabeef08 + #x2c3014d5 + #xf2f8051d + #x382608f4 + #x7203b41 + #xdffd1410 + #x20ecd3cd + #xd7d50430 + #x8fc6f5f1 + #x5047fea5 + #xefef042f + #x422805f1 + #x14334d53 + #xe3fa0d0d + #xfed7cccc + #xd9f41923 + #x90d2e9d7 + #x6d38cd80 + #xe3df0a4e + #x41290ef8 + #x2d485a57 + #xdaf10b19 + #xe9d0c4c0 + #xf1050b04 + #x99ccd7d9 + #x670da480 + #xd2d92069 + #x3f331cf7 + #x45585e51 + #xcff4172d + #xe3cabdba + #x4f8ecee + #x98c1daf2 + #x48e89880 + #xcaeb3c72 + #x423f23ec + #x505e5847 + #xd901253b + #xdcc3c1d0 + #xf7d6d6e6 + #x98cdf808 + #x2ddda284 + #xda0a4d61 + #x48471fe6 + #x515d5041 + #xf5102538 + #xcdc1dcfa + #xd6c1d0dd + #xabf111fd + #x20e2a889 + #xf7193e47 + #x4a421af4 + #x4d574b44 + #xd101c30 + #xc1d50222 + #xbbbeccca + #xd6140eda + #x1adfa599 + #xa102333 + #x443b220d + #x47544e47 + #x11080d26 + #xc7f72536 + #xb7beb7b5 + #x51defbb + #xecdaac4 + #x8fb142c + #x393c3623 + #x445b5441 + #x5fbfd19 + #xdd1a3b3f + #xb8b19eaf + #x1a05cfb2 + #xf4c0c9fb + #xfbf41722 + #x384b4725 + #x4b665333 + #xf4e9e611 + #xf8384d42 + #xb79b8fb7 + #x11e5beb7 + #xd6ccfb20 + #xf8021605 + #x445b4716 + #x5869442a + #xd9d0d716 + #xa4a5733 + #xac8c8dc3 + #xf8d0bdbb + #xcaef2828 + #xd1704dd + #x535a330d + #x635b332f + #xb5b7da2c + #x1d5b510d + #xa5878cca + #xe6cabeb7 + #xd516391a + #x2d1de5c1 + #x5142221d + #x5d48323c + #x93aef241 + #x38663bdf + #xa48489d7 + #xdcc7bdb5 + #xec2d3808 + #x4a10c7bb + #x39262642 + #x45393944 + #x8fc01044 + #x515d1cc9 + #xa2808df2 + #xd3c6c3bb + #xfe302ffe + #x50f8b8c3 + #x1316416a + #x323b4233 + #xb2e31d30 + #x503f0bdd + #x9580a40e + #xcdcacdbb + #x12926f5 + #x48e8b7cc + #xfa20617f + #x32473b11 + #xe5fe131d + #x36251308 + #x8480c319 + #xcdd6d3af + #xfd231dee + #x3fe5b8cd + #xfb3c7f7f + #x3f4820f1 + #xfbfbfe17 + #x1a22251c + #x849cdc0e + #xd9dfc79b + #xfd1f16eb + #x3ce6b7cc + #x11587f7f + #x423504e9 + #xe6e6f823 + #x172c2200 + #x9ebbdffe + #xe0d5af93 + #x1c13f1 + #x3ee5b5cf + #x26637f7e + #x331afdfb + #xc6e00a2f + #x202301d5 + #xbdcad9fe + #xd9bda4a5 + #x11d16f5 + #x3ce2b8d5 + #x2c5b7f7c + #x1c100b13 + #xc7f5232a + #x1afad9cd + #xcfd0e611 + #xc1afb2c3 + #x72017ec + #x35ddc0df + #x204d7b79 + #xd1c2219 + #xef172816 + #xf2c6cdf2 + #xd7e80a19 + #xb4bdcdd3 + #x14230bd7 + #x28dfcfef + #x1145726a + #x1430290b + #x1c291705 + #xbaaae020 + #xee162a02 + #xbed5d7d3 + #x2016efc6 + #x1ae6e307 + #xb426351 + #x263c20fb + #x2f230505 + #x90ae023b + #x1c4829cf + #xd9ddcada + #x1cf7d5c9 + #xef7021f + #x103e4b32 + #x363611f5 + #x2c110117 + #x89c91c3f + #x4b57009f + #xe8cdc1fa + #xd6d3e3 + #xd132326 + #x16302a14 + #x392808fd + #x1f020729 + #x9ee82838 + #x6a3ccd87 + #xddbbd72c + #xd9cceefd + #x1a353813 + #x17170501 + #x2f17080b + #xefa1033 + #xbe012528 + #x6d17af90 + #xc4c41063 + #xc4e20efd + #x304a2fef + #xef8e6fd + #x1f10161a + #xfdf8172d + #xd50d1f1a + #x6701a7a1 + #xb2dd447f + #xc3fd22ef + #x41511ad2 + #x5dfd301 + #x13112525 + #xf2fa1a26 + #xf0161502 + #x1fdcb7c4 + #xe7335d53 + #xc1aeac3 + #x460fdae2 + #xddd2f538 + #x15262503 + #xea051212 + #xfd1d15fc + #x18dab9cd + #xf61f3539 + #x100cecd9 + #x29ffe9fa + #xece9062f + #x13201f05 + #xe5001315 + #x151f08ec + #xcd2bde6 + #xf0f90c23 + #x1208f7ec + #x9f5fd10 + #x6061018 + #xf1a1d10 + #xe0ff1815 + #x2510f0d7 + #xf5c4d30c + #xccda0218 + #x181a08e0 + #xf7fa0d18 + #x221809ff + #x61a2828 + #xe505180c + #x1cf5ddd2 + #xd9ccfa26 + #xacd90300 + #x3532fab9 + #xf5fa0f25 + #x331afdf3 + #xc263b40 + #xf0051005 + #x2dfd5d3 + #xd0e71a26 + #xa7e2f6e0 + #x582fd290 + #xeff01343 + #x3919fdf5 + #x1f3b4c4d + #xedff080a + #xe9d3ccc9 + #xe5031a0d + #xb2ddddd3 + #x5d09a483 + #xdce72663 + #x392209f2 + #x364c534b + #xe0fa0f1d + #xdfc9bdb9 + #xf90002f6 + #xb2d0d7e7 + #x43e09087 + #xccf54673 + #x3f3210e2 + #x46555043 + #xe2051f32 + #xd9bdb7bd + #xf7e5e9ec + #xaad0ed00 + #x26cd938a + #xd3125f69 + #x493d0dd5 + #x4f564840 + #xf7152a3c + #xccb9c9dd + #xdccce0e5 + #xafea0a00 + #x16d09a87 + #xed285b53 + #x503d06dc + #x4f504245 + #xc19293b + #xc0c9ec02 + #xc3c4d9d5 + #xd00c0fe5 + #x12d29791 + #x523423f + #x4c360cf7 + #x4b4c4548 + #xd121d35 + #xc3ea0d16 + #xbac3c7bf + #xfc19f6c7 + #xcc69ab4 + #x90f2c35 + #x42351f12 + #x484f4943 + #xff06102a + #xd70d2318 + #xbcb6adb4 + #x1809d6bc + #xf6b9b4e7 + #xfa02282c + #x3d433618 + #x4b5b4836 + #xedf6ff20 + #xf2293315 + #xb79f9cbd + #x13ecc3bf + #xdac3e510 + #xf3082613 + #x48593f0d + #x585d3c2d + #xdcdfed23 + #xc403f0c + #xaa8c97cc + #xfcd5c0c0 + #xcfe7151c + #xff1615ef + #x58603503 + #x62552c30 + #xc2c4ea32 + #x23553ff0 + #x9d8399d7 + #xe7cdc2b9 + #xda152f10 + #x1a18f3d0 + #x5d4d230f + #x5c3d263f + #xa4b7fa46 + #x3c6229c7 + #x998097e6 + #xdcccc0b4 + #xf5303002 + #x3208d3c9 + #x49322230 + #x4b2f2f48 + #x96c4164b + #x555908ac + #x96809afd + #xd6cac2b4 + #xc3628f6 + #x38ecbfd2 + #x29223b58 + #x36303b3d + #xace5263c + #x593ff3b9 + #x8a80af19 + #xcfcdcab7 + #x13321fef + #x30d9bcdf + #xd2c6070 + #x323d361c + #xd9001d25 + #x4223f9e3 + #x8080cf28 + #xcfd7d2ad + #x152c16e5 + #x25d3bfe3 + #x9487e73 + #x3b421ff9 + #xf603081a + #x231a0f02 + #x8094e61c + #xd9e2ca99 + #x10260ce2 + #x20d3bfe2 + #x19637f6f + #x4533ffea + #xedeffc23 + #x182819f6 + #x8cb3e908 + #xe6dcb48f + #xf2008e7 + #x20d2bce0 + #x32727f6c + #x3b19eff6 + #xcfe20932 + #x232a05d0 + #xaac2df02 + #xe2c6a49c + #xd1d0af0 + #x20cfbde2 + #x3c727f6f + #x2208fa0d + #xc3ef1d2f + #x2610e2bc + #xbfc3e210 + #xccb2a9b6 + #xf2210ef + #x1dccc2e6 + #x38697f70 + #xd0f1019 + #xdf0d2519 + #x8ddcfd6 + #xc4cffd1d + #xb9b4c2ca + #x19280cda + #x15cfcaf0 + #x2c627f68 + #x10251d10 + #xc201603 + #xd0badf06 + #xd6f61d0a + #xbccad0cd + #x2520f5c4 + #xad5da03 + #x235d7855 + #x23351902 + #x261d0303 + #xa0b90229 + #x2a20da + #xd3d9cad5 + #x2308d9c2 + #x2e3f518 + #x2358633c + #x363308f7 + #x260fff13 + #x90d21d32 + #x3845fda3 + #xe5d0c0f2 + #x9e5d0d7 + #x2fc1522 + #x25494623 + #x3b23faf9 + #x16020a29 + #x9ff0292c + #x5f32c987 + #xdabcd223 + #xe3d5e5ef + #xf1d2c12 + #x232f2212 + #x3212f905 + #x2fd1935 + #xbc06261d + #x6209a38a + #xbfbd0258 + #xcae303f0 + #x2a3b2af2 + #x190cff0d + #x220c0612 + #xed002332 + #xd6101c0d + #x4be79da2 + #xb3e33d75 + #xd2020fda + #x46420fd6 + #x3e9e919 + #x16131816 + #xe5052325 + #xe5131502 + #x36d7a7b4 + #xb70f697b + #xe5190cc4 + #x5539f0c9 + #xf2d0e026 + #x121d2515 + #xe6092019 + #xfb190eef + #x7ceb7cc + #xb3d4e3a + #x1700ccce + #x24eddbf7 + #xd1de1640 + #x1a210eea + #xec040f12 + #x91c07e6 + #x1cab9db + #x41c2f31 + #xefadee3 + #xceff104 + #xe8f41a2a + #x13190bf6 + #xe8041512 + #x1715f6da + #xf1c0c9f7 + #xeaf61720 + #x902f3ea + #xf8f7070c + #x509120c + #xb13100c + #xed08160b + #x16fde3d5 + #xd5c2ea13 + #xc7e9120b + #x1c1af6ce + #xf6010e12 + #x1d0c00f8 + #x81a2327 + #xfb0c0c00 + #x2e5dadb + #xc7da0e1c + #xbeef05e9 + #x3c1ed7aa + #xf4fd132c + #x2708f6f6 + #x152b3839 + #x501fe + #xecd7d3d8 + #xd3fa1c0c + #xc7ede9d3 + #x4e02aa96 + #xe6f72854 + #x2a0bfbf1 + #x283d463f + #xf6fd000c + #xdfcdc5c7 + #xec050cf8 + #xcadbd7db + #x3fd79199 + #xd5004b6e + #x2f1c02e2 + #x3947473c + #xef000f21 + #xd5beb7c0 + #xf4f4f7ea + #xbfd1e2f4 + #x1ebf8e9c + #xd51a696a + #x3f2b00ce + #x4147403c + #xfd0e2032 + #xc7b1bbd3 + #xe2dceae3 + #xb9e1fefd + #x9bc9195 + #xea366b54 + #x4b2ff3cc + #x46413a43 + #x121a2838 + #xb9b9d4f1 + #xc9d1e3d4 + #xcd000be9 + #x4c08e94 + #x53a563d + #x4b25f1e2 + #x443c3a4a + #x16192538 + #xbbd5f301 + #xbeced5c0 + #xf412f8cd + #x1b88dad + #xb284135 + #x412102fd + #x413f4047 + #x90f1c32 + #xcef80901 + #xbec3bcb7 + #x1309dbc0 + #xf1aba0db + #xfe15362c + #x392e1c08 + #x4347403c + #xfb010e2a + #xec1619fe + #xb9aba9be + #x16efc9c2 + #xdab4cd04 + #xf3153319 + #x40462e01 + #x4d4d3631 + #xf1edfe2a + #x82e23f8 + #xa994a2ce + #x1d8c5c2 + #xccd5fd13 + #xf71c23f6 + #x515228f7 + #x58432731 + #xdfd5f736 + #x204123e6 + #x9688a4de + #xead0c7b9 + #xd8041a0c + #xc1a04d8 + #x594719fe + #x58311e3c + #xc2c50147 + #x384e10c3 + #x8d84a7ed + #xdecec5ad + #xf62420fd + #x2008dfd1 + #x4e2f161a + #x48212548 + #xa9ca194f + #x4d48f0a6 + #x8780ab02 + #xd7cac2aa + #x123119f1 + #x23eac9dc + #x33232c3f + #x33233241 + #xb0e62843 + #x5631d8a6 + #x8080bc1d + #xd1cac6ad + #x202c0fe9 + #x17d3c3ec + #x1a2b5155 + #x2c2f3327 + #xd401252e + #x4716dbc9 + #x8080da31 + #xd0d1cda9 + #x212807e1 + #x8c9c7f4 + #x13477158 + #x33391e04 + #xf708101e + #x2c0ef3ec + #x809bf32a + #xd8dbc798 + #x2125fedb + #x1cacaf6 + #x23667f52 + #x3a2b00f3 + #xfaf60021 + #x191705f0 + #x80b5f712 + #xe5dbb587 + #x1e1ef7df + #x1c9caf3 + #x39777f4f + #x350fe9f8 + #xdfe5042c + #x1e23fdd1 + #x99c2e802 + #xe6c9a38d + #x1917f8ea + #x1c6c7f1 + #x48797f52 + #x20faec0e + #xccea172f + #x2713dfb8 + #xadc0e20b + #xd5b4a3a6 + #x161701ed + #xfec3c9f1 + #x4a757f55 + #xcfd001c + #xdc021e1d + #x16eacac6 + #xb4c2f41a + #xbeb0b7bb + #x1a2004df + #xf8c3cdf4 + #x41727f52 + #x910101c + #x7151007 + #xe5c5d4f0 + #xbbde1210 + #xb9c0c7c0 + #x2421f4c7 + #xf1c7d500 + #x3a717f47 + #x1924100f + #x2713fbfe + #xb4c0f417 + #xde0e17e3 + #xcad1c7c5 + #x270fdabf + #xedd1e812 + #x386b7035 + #x2c240204 + #x2805f40e + #x9dd81524 + #x1a31fbad + #xdccdc2e2 + #x15f0cccd + #xefe6051d + #x365d5623 + #x3617f301 + #x16fa0124 + #xa7f8211d + #x4e2bc78a + #xd7b9ce1a + #xf1dbdae5 + #xfb071e13 + #x32443615 + #x2f07ed07 + #xfdfd1532 + #xc00e1d0b + #x56029f88 + #xbeb5f64e + #xd5e1f4e9 + #x162723f6 + #x27231610 + #x20fef40f + #xec052432 + #xd81313fa + #x38d7949b + #xabd12b66 + #xd4fb00d3 + #x35360bd5 + #x10fdfd1a + #x15040512 + #xe50f2825 + #xe8120cf0 + #x19c3a0b2 + #xbe075660 + #xef10f1bb + #x4628e9cd + #xf1dff72e + #x12131208 + #xec122117 + #xed120bf0 + #x8c3aec0 + #xdb326d58 + #x819deb1 + #x4a12d3d4 + #xdad0fd3f + #x152017fd + #xf310170e + #xd1f07eb + #xfbc7b6d9 + #x233e4631 + #x11e4cbee + #x3e4f10e + #xd6f52e34 + #x1f15fce3 + #xfd0a161c + #x181bfce3 + #xefc0c1ed + #x91d372a + #x6efe4f6 + #xfbf2000a + #xee03231b + #x151002f5 + #x111814 + #x1b09ede2 + #xd9bfdd09 + #xe7042916 + #xa04f5ea + #xf9030b09 + #xa0a0e03 + #xd121412 + #xd151106 + #xbf1e3eb + #xc6d20216 + #xd6031bf4 + #x2714e3c7 + #xff0a1019 + #x1904fcfb + #x11222b2a + #x161102ff + #xf5e0e0ef + #xcdf5180e + #xdb00fcd6 + #x4003bcb1 + #xf6062240 + #x1c00f9f8 + #x22353f37 + #xd04fb06 + #xe6d8d6e3 + #xe60d15fc + #xe2eedfd2 + #x3bdb9db1 + #xe70d4662 + #x1f0afdeb + #x32434437 + #xfdfd0319 + #xddc8c6d6 + #xf60703ef + #xd6d9dce7 + #x19b998b6 + #xe2246a67 + #x2e1bfbd5 + #x3f464039 + #x7162d + #xceb5bfdf + #xedf2f6e7 + #xc7dcf2f5 + #xfdb198ad + #xf2467852 + #x4322ebcb + #x43403e46 + #x14182738 + #xbbb1cdf5 + #xd5e3efd9 + #xcef607eb + #xf5b291a3 + #xe556a3e + #x4d1ce2d8 + #x42394052 + #x20202d3c + #xb5c4e406 + #xc8dfe2c6 + #xef11ffd4 + #xf6ad8aaf + #x1c4a5534 + #x4312edf4 + #x3e394654 + #x1b1d2939 + #xc6e4f904 + #xc6d4cab9 + #x100de4c4 + #xeba198d5 + #x1235472e + #x381b0703 + #x3e404649 + #x12111f34 + #xe4020700 + #xc0bcb2bd + #x18f5cfc3 + #xd5a4bdff + #x32b441f + #x3c321cff + #x47443e3c + #xb001132 + #x41c1100 + #xafa3abcf + #x6dfcdc4 + #xc7c3ee14 + #x303700 + #x4e461df5 + #x54402e3b + #xfcea093e + #x1f3215f5 + #x9995afe3 + #xf2d6cfb9 + #xd2f11111 + #xe2b16e3 + #x594311f6 + #x57302443 + #xdbd80e4e + #x374207d5 + #x8a91b5f4 + #xe4d5cdaa + #xf2181902 + #x1d16f1d9 + #x55300b0e + #x491f2a50 + #xb8d82358 + #x4b3ee9b1 + #x838bbb09 + #xddd4c7a3 + #x152711f4 + #x1ff6d6e6 + #x3f221d2d + #x341f3850 + #xb1ee3550 + #x5724cda6 + #x8084ca24 + #xd8d1c6a3 + #x292907eb + #xedcd1fb + #x292a4340 + #x292b3c39 + #xcf093539 + #x4b07c7bf + #x808ae63c + #xd6d4cba0 + #x2e2602e4 + #xfbced809 + #x1f476542 + #x2e352a18 + #xf8112329 + #x32fbdde7 + #x80a3033e + #xdcddca92 + #x2d23f9dd + #xeecbdc09 + #x2e69773b + #x382b0a04 + #x403102a + #x2007f6f5 + #x80c00b27 + #xe9dfb880 + #x291cf1e0 + #xedcbdc07 + #x477f7b38 + #x3510f107 + #xeeee0d32 + #x2219f9e0 + #x94cffc12 + #xeed1a380 + #x2414f2ed + #xedc8db06 + #x5b7f7b3b + #x22f5ed19 + #xd5ed1935 + #x2e16e2c3 + #xa8cbed12 + #xe2bca096 + #x2012fcf5 + #xebc6db04 + #x5f7f7c3e + #xaeffc29 + #xdc002326 + #x26f5cbc7 + #xaec6f520 + #xcab4afae + #x201900e9 + #xe6c6db04 + #x5b7f7f3b + #x3020e2d + #x312190e + #xffcfceee + #xaed50e1d + #xbcbdc3b5 + #x291ff6d1 + #xe2c7dd0a + #x577f7f34 + #x12161427 + #x27110003 + #xcbc4ed19 + #xc7ff19f6 + #xc7cfc7b5 + #x2e14dfc3 + #xdfcbe916 + #x557f7729 + #x291d0a1d + #x2d00f410 + #xafdc0d29 + #xfd2300bf + #xd9cfc3cd + #x22f8cecd + #xdfdb0022 + #x5278631c + #x3512fb18 + #x15f5fd27 + #xb6fc1c1f + #x3524cf98 + #xd9c0cd04 + #x6e0d5e3 + #xebf8191f + #x4b624710 + #x3000f116 + #xfcf81437 + #xcf121809 + #x4affa18f + #xc1b8f442 + #xe9e0edea + #x41b2206 + #x3f40290b + #x20f6f419 + #xef072638 + #xe6160df6 + #x31cf8e9f + #xadce2962 + #xe0f6f9d5 + #x262e0ee4 + #x271b1115 + #x12f9001b + #xf4162e2d + #xf21206ee + #xbb596b4 + #xb6ff555c + #xf40dedb8 + #x3c27edd4 + #x6fb0a2a + #xe060b11 + #x21f2a1f + #xf91106ef + #xf9b8a8c4 + #xe2326749 + #x100dd1b4 + #x390ad8e2 + #xe6e7153f + #x15140eff + #xb1c2018 + #xfd150af5 + #xf5c4b4cd + #xa51663b + #x1f02bdc0 + #x2defd4f5 + #xd1e3234a + #x1d1c0bee + #xd161616 + #x1916fbef + #xeab8baeb + #x21343d24 + #xf9d5df06 + #xeeea0514 + #xe3102e15 + #x1401eedf + #xa111a1a + #x1c0af2ef + #xd9b8cefe + #x5243816 + #xfaeaeefa + #xf6fb0808 + #xf70e1805 + #xc04fdf3 + #x1516140e + #x12f7ebf9 + #xc6c7ee10 + #xee1928fa + #xd00eddf + #xa0809 + #x90602fa + #x8111611 + #x20150500 + #xfde7eb04 + #xc7e7090e + #xed150ad9 + #x26fdcec7 + #x4091025 + #xcfdf9fb + #x14252d21 + #x1806f600 + #xebdee6fb + #xde050dfe + #xf100e7cd + #x29ddb0c4 + #xf60d3149 + #xcfefaf3 + #x25373826 + #x2f7f90e + #xe1d3d7ea + #xf60c02f1 + #xe9e6d7da + #x10bba7cb + #xee255957 + #x1509f6e1 + #x343d3829 + #xf7f90921 + #xd2bfcae6 + #xf5fef9e9 + #xd5dbe5eb + #xefacaac6 + #xfb497048 + #x2a10e5d1 + #x3b393535 + #x2091c2e + #xbcb0cef7 + #xe3f1f3dd + #xcfebf6e6 + #xe1aaa2b6 + #x19636c31 + #x3b0ad6d7 + #x38343c48 + #x12192837 + #xafb7df09 + #xd5eae7c8 + #xe604f6d5 + #xe2a494b4 + #x2d605926 + #x3901d9ee + #x34344553 + #x191e2c37 + #xb8cff10c + #xd1e2d1b8 + #x60ae3c6 + #xdd9897d1 + #x2a4d4d25 + #x2d04f102 + #x3339494c + #x161a2833 + #xd3eafb0a + #xcdcdbaba + #x14f9d2c4 + #xca97b6f7 + #x193f481a + #x2c180902 + #x393f403d + #x110d1d31 + #xf200020a + #xbcb3afcb + #x6e3cec3 + #xbbb0e20e + #x103d3d01 + #x3c2e0df6 + #x45393138 + #x4fd1639 + #xa140502 + #xa3a0b4df + #xf1dbd1ba + #xc3db050e + #x193b22e5 + #x503402f2 + #x492c2640 + #xe1eb1a49 + #x2525fbe3 + #x909abcf5 + #xe5dacea8 + #xe3021101 + #x2428fedb + #x5125fa01 + #x3f1d2a4d + #xb8e62c53 + #x3f29e2ba + #x8797c60c + #xdfd9c49c + #xa160af3 + #x2106e2e9 + #x4118091a + #x2a1a3951 + #xabf53d4d + #x4c14c4a3 + #x8091d529 + #xddd3bf98 + #x241c01ea + #xde6db01 + #x2a202a2a + #x1d264141 + #xc40d4039 + #x44f3bab4 + #x8095ee41 + #xd9d5c093 + #x2d1afbe3 + #xf5d5e312 + #x223c4c2c + #x21303325 + #xef183028 + #x2ae2cadd + #x80a70945 + #xdbddc084 + #x2d19f5de + #xe5d2ed19 + #x2e5d5f22 + #x2c29150e + #x50e1c25 + #x14ebe6f5 + #x80c61531 + #xe7e2b480 + #x2911eddf + #xdfd3ef18 + #x4976611a + #x3010f910 + #xf5f91430 + #x1404f1e9 + #x94da0a1a + #xefd7a080 + #x2408ebea + #xdfd1ed15 + #x617f601a + #x1ef3f121 + #xd7f11d34 + #x240ce2cd + #xabd9f916 + #xe7c29588 + #x1d04f5f5 + #xdeceea11 + #x6c7f631d + #x5eafd34 + #xd3fb2628 + #x28f6cdc7 + #xb0cdf724 + #xd1b4a3a0 + #x1a0c00ef + #xdbcbe910 + #x6a7f671e + #xf6f30e3b + #xf30e1e10 + #xcd5cde9 + #xabd30a26 + #xc0bbb7aa + #x2215f9d9 + #xd7cae911 + #x667f6819 + #x1061437 + #x160e0801 + #xddc6e514 + #xb7f11909 + #xc3cbbfa6 + #x2a11e5c7 + #xd3caee1c + #x677f6412 + #x18110e2e + #x1afdf609 + #xbcd60428 + #xe11205d3 + #xd5d1bab2 + #x26fad1ca + #xd2d2fe29 + #x687f5909 + #x280d0229 + #x2edfa20 + #xbef5111a + #x1618d6a8 + #xd7c4c2e3 + #xedfd1db + #xdae91529 + #x61724500 + #x26fefa26 + #xe7ef1033 + #xd60c0e02 + #x35f7a69b + #xc4bbe626 + #xf2dae3e6 + #xef091e14 + #x55572dfb + #x16f1f928 + #xe2002537 + #xee1004f3 + #x29c88da8 + #xaecb2054 + #xe7eef3d5 + #x112010f3 + #x3f351804 + #x6ee0126 + #xf214302c + #xfa0afef2 + #x4aa90bc + #xb2f95154 + #xf304e9b6 + #x2c1ef1df + #x1d14101a + #x1f6091d + #xc202d1e + #xfd06fef9 + #xe7a79fcb + #xd630643b + #xc05cdaa + #x3106d9e6 + #xf9fe1a35 + #x6020a08 + #x1d212216 + #x20c02fe + #xe2b4abd3 + #x8505c26 + #x16efbbc2 + #x1debdbfe + #xdffa2d3f + #x120901ef + #x1d1a1a19 + #x81405fe + #xebbfb0d6 + #x29574f1e + #x12d9b8e2 + #x8ddea11 + #xd6003b3c + #x1a09f7df + #x1512181e + #x210cf9fe + #xd5afcb06 + #x20394016 + #xe7defa10 + #xf1fe120a + #xfe2621fd + #x5f9eee3 + #x1a202116 + #x19fef708 + #xc7bae211 + #xe353500 + #xfaf3f6f7 + #xfe080a08 + #x8190dfa + #x40502fa + #x251d120a + #x8f1f914 + #xc4d7fe15 + #x52d1ce1 + #x12fde3de + #xa0a0915 + #xa08fefe + #xc1a1c11 + #x210e0001 + #xf3eafa11 + #xd9f90a08 + #x81af5ce + #x1de6c6d6 + #x60c2135 + #x500fe01 + #x1e2e2e19 + #xafbf909 + #xe7e2effd + #xf50904f7 + #xfaddd6 + #x9c4bade + #x214b49 + #x904fbf3 + #x303b331c + #xf5f5041c + #xdbd1deed + #x5faee + #xe9e5dee9 + #xe9b2bede + #x9486a41 + #x1808ebe2 + #x393b3325 + #xf300162c + #xc6bed7f3 + #xf6fbf7e3 + #xdaeaefee + #xd5afbbce + #x296b6c29 + #x2a01d6e1 + #x38373838 + #x5122634 + #xb2b8e204 + #xe9f6efcf + #xe5fef2df + #xd2a8aac2 + #x44735c1a + #x2df5d2f6 + #x31374749 + #x12212e34 + #xafc7f20e + #xe2eedabb + #x108e5cf + #xce9aa2d1 + #x4864501a + #x25f3e50c + #x2e3d504d + #x19243030 + #xc2ddfd10 + #xdedbc2b6 + #x14fed5cb + #xbf91b4f5 + #x38554f15 + #x2004fd11 + #x34434c40 + #x161d292e + #xdff10211 + #xcfc0b4c7 + #xdebd1cd + #xafa4de10 + #x2c504701 + #x2d1c0505 + #x40413c37 + #x8102235 + #xf9020408 + #xb6acbadf + #xf9e1d3c4 + #xb4cb0414 + #x2e4d2ee5 + #x4528fdfe + #x4534303d + #xe6002544 + #x1011fbe9 + #x9fa4c6f5 + #xebe1cfb0 + #xd5f71206 + #x373d0ada + #x5021f306 + #x3b24314f + #xbef9354f + #x2a16e3bb + #x93a3d10d + #xe7dfc39f + #xfe110ef9 + #x311cf1e7 + #x4815fd18 + #x261e4059 + #xae02474b + #x3d08c69e + #x8ba2e12a + #xe6d9b794 + #x1a1605ef + #x1af7e904 + #x33181925 + #x19284b50 + #xc6184c39 + #x39e9b6aa + #x80a3f945 + #xe2d6b48c + #x2615feea + #xfde2f219 + #x29313924 + #x1c344337 + #xf3253f26 + #x20d2c2d3 + #x80b4164c + #xe2ddb480 + #x2914f9e5 + #xe7de0024 + #x34544b18 + #x29302521 + #x10202924 + #x6d6dbf3 + #x80d1283c + #xe9e1ab80 + #x290ef1e2 + #xdfe10628 + #x506f4d0c + #x2e1a091d + #x40d1e2c + #x2eeedee + #x9ae92124 + #xf2d99780 + #x2504edeb + #xdee10526 + #x6b7a4b08 + #x21fefd2c + #xe2002535 + #x12fee5d2 + #xb2e90a19 + #xeec48b80 + #x1dfdf5f7 + #xdddd0224 + #x787c4c09 + #x6ee0540 + #xd606302c + #x20f5d2c6 + #xbadb0122 + #xdbb49498 + #x160401f7 + #xdada001e + #x7a7e5109 + #xf3f2154c + #xeb152a14 + #x10d9cddf + #xb3d70e2e + #xc7b8aba6 + #x1a1002e5 + #xd6d7fb1a + #x787f5408 + #xf602204c + #xd161400 + #xe9c8e209 + #xb4ed1e1c + #xc6c8b7a2 + #x2611efcf + #xd3d6fd22 + #x7b7f5302 + #xa101d47 + #x1005fe01 + #xc6d5001e + #xd30a14ed + #xd5d2b3a6 + #x2a00dacd + #xcfd90930 + #x7f7f4bfb + #x1d0e1243 + #xf2f1fd16 + #xc3f21012 + #x412e6be + #xdbc7b2ca + #x19e6d3da + #xd2e71c37 + #x7f7f3df2 + #x1e020a41 + #xd2ed112c + #xda090df7 + #x25f6b3ac + #xcdbcd109 + #xfddbe2e5 + #xe2012625 + #x766c2dee + #x11f50840 + #xcffd2933 + #xf50d01ea + #x21c895b7 + #xb7cd0e40 + #xeaeaf2d7 + #x1191a05 + #x5f501df7 + #x1ef0a3c + #xea15382c + #x105fbf1 + #xfea494cd + #xb4fd4d50 + #xf302edb8 + #x211dfeeb + #x3f301510 + #xf7f21031 + #xd25371e + #x1010004 + #xde9ca0d9 + #xd2336739 + #xc05d1a7 + #x2d08e3ef + #x18161d2d + #xfafb111c + #x24292c15 + #x2050611 + #xd2a6acde + #x2575c1c + #x18eeb7b7 + #x20eae106 + #xf910313f + #x60408fe + #x28242215 + #xc0e0810 + #xd9afb3e5 + #x2a5b4b12 + #xad2bce2 + #x4dff319 + #xea183d35 + #x1002f7e6 + #x1e1c201d + #x18140508 + #xe2b3b7ed + #x3c544116 + #xf7c3d106 + #xf1e30920 + #xea203d20 + #x11fdebd9 + #x15192422 + #x18fcf90c + #xb7ace41a + #x22433afb + #xe3f00007 + #xfc0c0cf4 + #x13260cf3 + #xf7f7edef + #x22241a04 + #xaf4ff17 + #xb8c4f717 + #x1f3f23e3 + #xfcf8eff4 + #x6070603 + #xe1202fc + #xff0802ff + #x1f1708fd + #xf7f0041a + #xc8e5060c + #x1c2e00cd + #x10efd5e7 + #x804101e + #x3fffc06 + #x121f170a + #xc00f900 + #xebefff07 + #xe8fc03fb + #x140be0d1 + #x4cfc7ec + #x3133436 + #xfffdff02 + #x262e220b + #xf1f1fc10 + #xe1e3eff0 + #xfc00fbf0 + #xfcecd8e5 + #xe4b9ccef + #xb375632 + #x802f4f1 + #x32332410 + #xe8f50c23 + #xd0cfe0e9 + #xfcfbf7e5 + #xe4e4e4f1 + #xcbb7cfe1 + #x28605f1a + #x17fbddec + #x34332a20 + #xf4071e2e + #xb8c1e3f7 + #xf3f8f0d3 + #xe4f3edeb + #xc5b4c0cf + #x4c735207 + #x1be8d0fd + #x30343a36 + #x818282f + #xabc5ef04 + #xedf4dfbb + #xfbffe4dc + #xc1a4b0d1 + #x5b6c4603 + #x13dfdb17 + #x2c3c4a3f + #x16232c2b + #xb3d4fb0c + #xe9e4c5af + #xff9d4d4 + #xb494b5ed + #x525f4403 + #xeecf323 + #x2f444c3a + #x1b242a27 + #xc9e5000c + #xdcc9b5b8 + #xce8cdd4 + #xa19cd70b + #x435a43f3 + #x1804ff18 + #x3a44402f + #x101c242b + #xe0f40203 + #xc3b1b8cf + #xfbdfd0cf + #xa4bffb12 + #x405830d9 + #x2f14f90c + #x3f3a3333 + #xf40f2637 + #xf802fbe7 + #xaba8c5e8 + #xeddfcfbc + #xbfe90f07 + #x464b0fcc + #x3f10f00f + #x372a3044 + #xd1063344 + #x1007e5bb + #x9ba9d502 + #xecdfc0a5 + #xe8080cf9 + #x432cf3d8 + #x3c06f51f + #x231e3c54 + #xc30e4644 + #x26f9c79c + #x93abe71f + #xebd9b195 + #xa1204f1 + #x2c08ebf5 + #x2c070c2b + #x13234852 + #xd8204c33 + #x27ddb1a0 + #x89afff3c + #xe7d1a98c + #x1a10fcec + #xaedf712 + #x231c2826 + #x1630473f + #x6324220 + #x12c4b5c8 + #x80bd1f48 + #xe3d3a780 + #x1c0bf7e7 + #xede80822 + #x2e3e3713 + #x2434322a + #x23302c1b + #xf5c3cfeb + #x83d9343b + #xe8d59c80 + #x1e06f0e5 + #xe1ec1328 + #x4b5a3702 + #x2c231623 + #x181e1f23 + #xecd8e3ed + #x99f43222 + #xf0d08880 + #x1cfdebeb + #xdfef142b + #x686732f8 + #x22070733 + #xf70c222b + #xfbede1d3 + #xb5f81b13 + #xf1bc8080 + #x16f7f0f8 + #xdfec142b + #x786c30f7 + #x7f30c47 + #xe10e2c26 + #xbebd1c1 + #xc0e90b1a + #xe0a98191 + #xff9fcfb + #xdbe91324 + #x7f6f36f7 + #xf0f11b57 + #xf01a2c10 + #x8d7c9d1 + #xb9dd1027 + #xcca998a1 + #x100702ec + #xd8e70f1f + #x7f763bf5 + #xebfd275b + #xc1f1afb + #xe9c7d9f5 + #xb4e92220 + #xc7bcab9f + #x1b0ef4d5 + #xd3e10a1f + #x7f7b3af3 + #xfb0b2858 + #x120f00f4 + #xcbd0f408 + #xc8041ffb + #xd1c8a89d + #x2302dfcd + #xcde00f2b + #x7f7c36ec + #xf0f2357 + #xf3f7f806 + #xc3ec04f9 + #xf110f8cd + #xdcc3a1b5 + #x1aebd4d8 + #xcce81e34 + #x7f772be4 + #x16071b58 + #xcdeb0a1e + #xd80302dc + #x14f8c3b5 + #xd4b5b5ed + #xffdcdde4 + #xd5fd2b2b + #x7f6b1fdf + #xcf91758 + #xc5f7232a + #xf108f7d0 + #x13c9a0bd + #xbdc1f026 + #xebe5ecd9 + #xf014260f + #x775713e5 + #xfbf01754 + #xe1103423 + #xff00f3e0 + #xf3a19bd4 + #xb5f0343c + #xecf9e9bc + #x101b0bf3 + #x5a3b0bfc + #xf0f01a4a + #x7263616 + #xfdf9f9fb + #xcd93a8e1 + #xcf2b5a2b + #x302cda5 + #x2308eff0 + #x3422141f + #xf0f81833 + #x202e2c0b + #xfbfd0410 + #xbd99b4e5 + #xff54540c + #x13ecb1af + #x1aece706 + #x121a2a36 + #xf8ff0e13 + #x242a2208 + #x2070b17 + #xc0a1b9e7 + #x2f5f40fd + #xaccadd7 + #xdcf51b + #x233e33 + #xfcf3 + #x1c231f0e + #xf0c070f + #xc7a4bff4 + #x40563802 + #xecc0cb02 + #xede70c1a + #x2f3b18 + #x2f9ebe1 + #x14202314 + #x1a0a0006 + #xc9a4c703 + #x3c48380b + #xd7c7eb18 + #xe8fb1b0e + #x7362cfd + #xfdf1e1dc + #x14232716 + #xaf70519 + #xa4bc011e + #x344f2ad9 + #xf100fa06 + #x90efeeb + #x1c11fbfb + #xf6faf202 + #x29240af5 + #xfdf90c1c + #xb6d60914 + #x353d0dcb + #x2f5e601 + #x8050605 + #xc050008 + #x60c0206 + #x190efef9 + #xf2fa0c11 + #xd3f10902 + #x2c1ce9ca + #x5ddd500 + #x4082024 + #xfefd040c + #x1d201105 + #xfdf7f908 + #xebf6fdf6 + #xeffb00f3 + #x12f5d9df + #xeac6d602 + #x5284428 + #x100fefe + #x2d291505 + #xe9f3051c + #xdfe5eae6 + #xf9faf9eb + #xf3e3e1f2 + #xcec2ddf5 + #x21515111 + #xcfaebf6 + #x342d1c10 + #xee001629 + #xc8d2e5ed + #xf7faf3da + #xe7e9edf5 + #xc3c4d6e1 + #x496c47f7 + #x10e7da05 + #x33302924 + #x211222d + #xb4ceedfd + #xf6fae5c0 + #xf3f6eaeb + #xc3bbc2da + #x646c38f1 + #x5d7de22 + #x30393d31 + #x151e282a + #xb0d6fa0a + #xf5eecdac + #x8f5dde5 + #xb6a6bfed + #x666337ef + #xfadbf537 + #x34474930 + #x21252626 + #xbee3020e + #xe9d5b7ac + #xce7d3e2 + #xa0a0d509 + #x596039e6 + #x1f10635 + #x3d4c4426 + #x21242229 + #xd2ef0409 + #xd1bab6bf + #xfeddd5dd + #x9ab8f715 + #x54632cce + #x19060426 + #x43433728 + #x101a2233 + #xe6f9fdef + #xb6afc3d6 + #xf2dbd3ca + #xafe10c0a + #x57570ebe + #x2d06f722 + #x3b30313b + #xf6122e3f + #xfdfde9c8 + #xa3b2d5ee + #xefdec6b0 + #xd6000cfb + #x5439f2c6 + #x30fbf72c + #x29253c4f + #xe9164040 + #x12f3cbaa + #x9bb6e70d + #xf1d9b49c + #xf90c02f6 + #x4015eae3 + #x21f90a39 + #x1a294d53 + #xfa2a4b34 + #x19dab3ac + #x93bb012c + #xeecfaa91 + #xd0cfdf5 + #x1dfbf704 + #x180a2435 + #x19355044 + #x213c4120 + #x8bfb2d1 + #x8bcb243d + #xe7caa283 + #x1509f9f1 + #xfdf50d1a + #x2229301e + #x24393f2e + #x3f3f2c16 + #xe9b6c7f6 + #x8ce93f34 + #xe6c89580 + #x1804f2eb + #xebfa1c25 + #x3f442a04 + #x2e2e2429 + #x382d1d1d + #xdac7defb + #xa005401a + #xedc28180 + #x16fdebee + #xe9012129 + #x5f5321f3 + #x26151638 + #x161a1e28 + #xe3dfe2e3 + #xbe102a06 + #xefb08080 + #x11f5eef9 + #xe7022429 + #x73571cef + #xdfe1951 + #xfd152925 + #xfae6d3ca + #xce01150c + #xe29c8091 + #x9f7fb01 + #xe3002225 + #x7c5b1eee + #xf2f72664 + #x2202c11 + #xfed6c8d1 + #xc7ef151a + #xcd9a8ba6 + #x90404f6 + #xdffd1e1d + #x7f6122eb + #xeb01346b + #x19261cfa + #xe9c6d2ef + #xbcf2241d + #xc4aba0a4 + #x140cfae1 + #xddf7191c + #x7f6825ea + #xf60e396b + #x211902ef + #xcbcbeb05 + #xc4092801 + #xcfbca29c + #x1e05e5d3 + #xd6f21825 + #x7f6b22e6 + #x614376b + #x900f5f9 + #xc4e5fdf5 + #xe6150ad6 + #xdbbb9aab + #x1af1d7da + #xd1f62433 + #x7f681dde + #xe0d316e + #xe5effe0e + #xd7fef9d2 + #x601d6be + #xd6aca4d7 + #x5e1dae3 + #xd506342e + #x7f5f12d6 + #xa022e70 + #xd6f5181e + #xf305eac2 + #x9d3afc3 + #xc0b0d50d + #xede3e9de + #xe71a3416 + #x7f4d06d9 + #xfef92d6e + #xed0e2d20 + #x1fde5d2 + #xeaa7a7d9 + #xb7db1a29 + #xebf6e9c4 + #x5221efb + #x6b3800eb + #xf1f52a66 + #x10263312 + #xfef6eef2 + #xc294b4e9 + #xcf1d4b1d + #xfefed1ae + #x191400f3 + #x4d24060d + #xedfa2953 + #x28332904 + #xf6f9fe0d + #xab98c3ea + #x4514ffd + #xeeaafb0 + #x16f7f105 + #x2d1d1e29 + #xf2022134 + #x2c311dfd + #xf9040c16 + #xaba0c7e9 + #x38633bea + #x8c7a4d6 + #xfee3fd19 + #x1828392e + #xfa050d10 + #x252a1901 + #x60c0e12 + #xb2a2c7f1 + #x51592ceb + #xebb4bb05 + #xe9e9141c + #x14384019 + #xfdfdf5f5 + #x1d281d08 + #x110a080a + #xb0a2d204 + #x4b4d2df2 + #xd5c3e21d + #xe7fe1c06 + #x1d3c2cfe + #xf7f2e5ef + #x1d2a2106 + #x16040108 + #xaba4e215 + #x3d4734f2 + #xcedefe20 + #xf11018ef + #x253715ef + #xf2ede2f3 + #x24302201 + #xff1526 + #xa3da1316 + #x4d4e0ab7 + #xf8ee15 + #xc04f5f4 + #x13fdfb0a + #xfbfc12 + #x3316f7f1 + #xfc04151d + #xbdec0f07 + #x432feebb + #xe5e519 + #x3040c0c + #x3fc060c + #x120b0408 + #x1603f500 + #xf8060b04 + #xdef904f9 + #x2c04dace + #xf1d0e41a + #x172d1d + #xfc000b07 + #x251b0a00 + #xf5f4fd15 + #xf1f8f5ea + #xf0fbfbf0 + #x7e8dee8 + #xd5cbed0f + #x1540430c + #x400fcfc + #x2f210c06 + #xedfb0f26 + #xdee5e8e8 + #xf5fbf5e2 + #xeee6edf4 + #xc7d0e8f7 + #x3f613cf1 + #x8eee807 + #x31251915 + #xfc0b1e2d + #xc6d9eaf7 + #xf7fce9cb + #xedeef1f3 + #xc7ced7e5 + #x646829e2 + #xfcd7e626 + #x302f2c22 + #x111a252c + #xb9dbf507 + #xfcf5d0b1 + #xfdf0e8f0 + #xc0bbcbed + #x6d5e22e2 + #xecd3fc46 + #x343e3e22 + #x1e222429 + #xbde40013 + #xf5deb7a6 + #x3e5dff1 + #xaaadd706 + #x685d26da + #xeae5124d + #x3f4b4019 + #x2622202a + #xcbed0615 + #xdec1adae + #xfcdbdeec + #x9ab9f515 + #x656421c4 + #xfdf91642 + #x484a3719 + #x221d1e33 + #xdbf50307 + #xc0b2b8c3 + #xf0daddd9 + #xa5dd0c0f + #x696008b0 + #x16000a39 + #x43383029 + #x1516283f + #xf0f9f3e8 + #xaab4cada + #xedddd0bd + #xcafd0f02 + #x6644ecb4 + #x1df70642 + #x31293840 + #xa1b3942 + #x3f3d7cc + #xa1bcddf5 + #xf0d7bda5 + #xf00b06fb + #x531ee1d0 + #x13f0114b + #x20294b4b + #x162d4635 + #xbdabccb + #x9bc4f813 + #xedcbac97 + #x60afffb + #x3004eef4 + #x8fc2547 + #x1b385540 + #x34423f21 + #xfcbcb5e8 + #x94d51b29 + #xe5c1a18a + #xe06fcf9 + #xefd070e + #x1219312f + #x26434a2d + #x4e462a16 + #xdfaec70b + #x97f13b26 + #xe2bd9480 + #x1202f8f4 + #xfb071a1b + #x2f352c0f + #x303b3328 + #x4d371a1a + #xcab9df15 + #xaa12420e + #xe8b78080 + #x13fdf1f4 + #xf5112422 + #x4f431bf8 + #x2a242238 + #x2f221925 + #xd0d0e6ff + #xc8222ff8 + #xe9a38080 + #x11f7f1fc + #xf5132925 + #x66440fee + #x150b2553 + #x13192426 + #xe6dddbe2 + #xde1917f8 + #xdd8e8090 + #x7f5fc06 + #xf3152c21 + #x71440cec + #xfb02346b + #x12212915 + #xf5d3cce1 + #xda04130b + #xc68580a8 + #x30008fd + #xee122919 + #x774a11ea + #xed084375 + #x26291bfb + #xe8c3d0f9 + #xcbfd2215 + #xb89697ac + #xe0e04e9 + #xec0f2216 + #x7e5111e6 + #xf3154b7a + #x312003ed + #xccc3e60f + #xca0e2c03 + #xc1ac9fa1 + #x1b0cf1da + #xe5071e1e + #x7f5611e2 + #x31e4d7c + #x2007f0f3 + #xc1dbf804 + #xe42117dd + #xd5b196a5 + #x1df9dedd + #xde06262d + #x7f560edb + #xc1a4a7f + #xfcf0f404 + #xd3f4f5e2 + #x213e9c3 + #xd5a599c7 + #xae5dde8 + #xdb113730 + #x7f4f07d2 + #x811477f + #xe8f10a15 + #xf0fce2ca + #x6e6bfc4 + #xc0a1bdf7 + #xf1e2eae8 + #xe9243e1d + #x7e43f9cf + #xff07447f + #xf4072119 + #xf4d7d2 + #xe6b5b1d9 + #xb1c1fd15 + #xeaf3eed0 + #x3302c02 + #x6f31f1de + #xf404447a + #x1321280e + #xfdecdef0 + #xbc9dbdea + #xc403330e + #xfbfcd7b7 + #x1a260ff7 + #x5920f7fc + #xee06436c + #x2c312200 + #xf4f0f40e + #x9f9dceed + #xfb4243f0 + #xeeab4b5 + #x1a0afb03 + #x3f190e1a + #xee0b3b53 + #x353417f5 + #xf4fc071a + #x9da8d0e8 + #x375d30d6 + #x8c6a2d9 + #x3f10217 + #x29242d25 + #xf50c2833 + #x342d11f7 + #xff081119 + #xa2a9ceea + #x57561bd3 + #xe9acb40a + #xeaf1171b + #x25393e15 + #xf9040b15 + #x2f2912fc + #xc0c0e13 + #xa2a6d3fb + #x59481ad9 + #xccb1da2a + #xe4062506 + #x2c4331fc + #xf7f5f306 + #x2f2d17fd + #x11070a13 + #x9bace90f + #x4d4a22d6 + #xcbd3f92d + #xf41619ec + #x313515f0 + #xf1ece90a + #x373115f8 + #xeff0719 + #x96b8ff1b + #x465128cc + #xdbf30622 + #x41b06db + #x2f21fdf1 + #xeeecec0f + #x3f330ef0 + #x20c2336 + #xbbf9150a + #x5d38e1a5 + #xe4f334 + #x6fafa06 + #x1f9050f + #x5fb040f + #x2d01ecfb + #x40f171b + #xd1fd0a02 + #x4314d6b8 + #xf0d8f934 + #x9150f + #xfd020d06 + #x14060404 + #xaf7f70d + #x20801f9 + #xe8fefef9 + #x1bf0d6d5 + #xdad20129 + #xa2a2e09 + #x10809fe + #x22110400 + #xf0f60922 + #xf5f5ece8 + #xf0fbf6ef + #xf7e5e7ea + #xcddc010f + #x314e2eef + #x6fef704 + #x27170a0a + #xf5041b2b + #xdde4eaf2 + #xf7fdeedc + #xeeeef2f0 + #xcedfeff5 + #x5a5a1cdf + #xfde5f023 + #x2b1f1b15 + #x813232d + #xcbe0f304 + #xfef9d8c2 + #xf5f0f0f3 + #xced0dcef + #x6d520dda + #xe5d80248 + #x312f2d14 + #x171c252d + #xc7e7fe13 + #xfee5bcaf + #xfbe8eaf9 + #xbcbedf00 + #x6c4c0dd6 + #xdae11f5b + #x3a413208 + #x201e202d + #xceee081c + #xecc9a9ad + #xf5dfeaf9 + #xa6c0f60f + #x6c550cc2 + #xe5f62a57 + #x45452d02 + #x221a1e34 + #xd8f5091a + #xceb5abb7 + #xebddebea + #xa5dc0d0f + #x7359fbab + #xfe012252 + #x473c2911 + #x1c14233d + #xe7f90008 + #xb7b4bac9 + #xe8e1e0cb + #xc0fb1304 + #x7745dfa6 + #xcfa1a57 + #x392e2f2b + #x13183544 + #xf7f3e8f0 + #xabbecde1 + #xebddcab0 + #xe5090cfe + #x6622d2bf + #x6f32062 + #x272d4339 + #x172b413a + #xdfceea + #xa6c7e7fe + #xebd0b4a0 + #x90500 + #x4304dce4 + #xfbfa325d + #x1e395232 + #x2e3f3f25 + #xf3bfc300 + #xa2d80915 + #xe3c0a593 + #xa060400 + #x1efef702 + #x2133a41 + #x25484e23 + #x47452b14 + #xd6acd11e + #xa5f32a17 + #xdcb89784 + #xf0501f9 + #x9091013 + #x1c2d321e + #x31473c1f + #x4b391a17 + #xbfb1e82d + #xb8173802 + #xdcb08480 + #x1000faf5 + #x4171f1b + #x3d3a1f02 + #x31342b2e + #x36231723 + #xbfc9f51b + #xda2e2aeb + #xdf9e8080 + #xdfaf7fb + #x51f261f + #x53380df7 + #x1e1a2b4b + #x1b182027 + #xd4d6eafe + #xf22a13e5 + #xd2878097 + #x5f70104 + #x5222d1e + #x5e3205f3 + #x40d3c65 + #x141e2718 + #xe5d2d9f6 + #xf51508f6 + #xbb8080b0 + #xd00 + #x4252d15 + #x643204f2 + #xf3114e74 + #x23271e01 + #xe0c2d808 + #xe3081506 + #xa98593b7 + #x50c0deb + #x1222510 + #x6c3904ee + #xf51f5a7b + #x322205ee + #xcbbfe81c + #xd91426fe + #xaf9d9dac + #x1510fdd8 + #xfb1a1e15 + #x773f02e8 + #x295e7f + #x260aefec + #xbfd2fa1a + #xea261be1 + #xc3a895a8 + #x1c02ead8 + #xf2142326 + #x7e4100e1 + #xc2b5e7f + #x6f0ecfa + #xceecfbfb + #x522f5c6 + #xcda092be + #xfeee5e7 + #xec1a342e + #x7f40fbd8 + #xd255e7f + #xebebfe0c + #xeaf7e7df + #xcfacac6 + #xbe99ade8 + #xf6e5f0ec + #xf32a3f22 + #x7a36efd1 + #x61e5d7f + #xecfd1514 + #xfbecd4dc + #xf0c7bada + #xabade405 + #xebeff6da + #x8383408 + #x6d27e3d6 + #xfa1a5b7f + #x418230d + #xf9dfd5f3 + #xc2a9c3ee + #xb4e71800 + #xf9fbe3be + #x1e3518fa + #x5d18e4ef + #xf21a5a7c + #x1e2b1f01 + #xeedfe810 + #xa1a6d4f0 + #xe7272be1 + #xceec0b7 + #x221c0404 + #x4711fa0c + #xef1b566a + #x2f2e14f5 + #xecec0222 + #x9ab3d9e8 + #x294c1ec5 + #xacba8d5 + #xd010518 + #x341b1b1b + #xf31b474f + #x362a0af0 + #xf7fe1126 + #xa1b7d4e8 + #x554e09bc + #xeba9b30a + #xf2fb1b1e + #x2d343210 + #xf7112b31 + #x392508f3 + #x8091425 + #xa1b1d4f5 + #x5b4104c0 + #xc7a8da34 + #xea0d2909 + #x36452ef7 + #xf6000c1f + #x3a270af7 + #x10091125 + #x99b0e306 + #x523f09bf + #xbcc30140 + #xf6201fea + #x403f14ea + #xf0effb1f + #x432b0af6 + #xd04142d + #x96c2fd13 + #x50470ab4 + #xd1e40a36 + #xa1e02da + #x3622fef2 + #xefeafa23 + #x4c2a01ef + #x8011838 + #x9ad81117 + #x555005a8 + #xecf5042b + #x1510ecdd + #x2608f501 + #xf2ecfe22 + #x5023f6eb + #x8182b35 + #xd4070d05 + #x5912bba4 + #xedd80e54 + #xfafa0b11 + #xf5020f08 + #x40007fe + #x7ebf108 + #xd141211 + #xe3020404 + #x35fac4bd + #xdada1846 + #x2151e07 + #xfe0d0bfd + #xf0401fb + #xf0f00218 + #x504f7ee + #xeefdfbfe + #xae7d5d8 + #xcbe31b2a + #x213b25f0 + #x70dfefe + #x1a0a0101 + #xeafb1827 + #xf0edeaed + #xf4fbf2f0 + #xf2ebe8e7 + #xceeb0a07 + #x4e4c12db + #x1f7f51b + #x21120e0b + #xfd0e242b + #xdae3f0fe + #xfef8e0d4 + #xf1f1edf0 + #xd5e3f1f4 + #x694600d8 + #xeae30546 + #x28221f0a + #xf18272e + #xd0e5fb0e + #x2e8c1bb + #xf5eeedfb + #xcbd0e8f8 + #x6c3bfbd7 + #xd4e72765 + #x353527fa + #x181c2731 + #xd1ed0718 + #xf5cba7b1 + #xeee4f001 + #xb3caf704 + #x6b3ffbc7 + #xd7fe3f6b + #x444121ed + #x1a1a2538 + #xd7f40e1e + #xd8b19eb4 + #xe3e1f2f4 + #xa9dd0d05 + #x7546eeab + #xeb0d3f69 + #x493c1af5 + #x14142842 + #xe0fb0d17 + #xbda9a6be + #xe0e4ebd7 + #xbafa15fd + #x7e3cd39e + #xfd07346e + #x4131210e + #xa173446 + #xedf7fb04 + #xaeb0b7d0 + #xe7e5d5ba + #xdd0a11fa + #x751cbeae + #xfbfb3579 + #x2e2e3522 + #x828423e + #xf4e4e1f8 + #xabbdd0eb + #xe8d7bda7 + #xf80a0afd + #x55fec7d3 + #xf1004476 + #x243c481f + #x1b3c422b + #xeac6d407 + #xabcdf204 + #xe0c3a79a + #x50708fe + #x2ff5e3f4 + #xf2154f5c + #x274f4811 + #x3545311a + #xceaddd24 + #xaeeb180d + #xd5b4968c + #xa080af8 + #x17020008 + #xa2f4635 + #x3451390d + #x443b1c15 + #xb3adf437 + #xc3122bfa + #xd1aa8381 + #xd0804f1 + #xf141212 + #x2b392e15 + #x38412b1c + #x38271821 + #xabc1042c + #xe73122dd + #xd0998087 + #xb0100f5 + #x14211f18 + #x44341404 + #x2c2a2c3c + #x1e1a1f2a + #xbed5fd11 + #x73208d1 + #xc48080a0 + #x2fb07fd + #x17282818 + #x4e280501 + #x121b3e58 + #xf1c281f + #xd4d5eb01 + #xd1efbe0 + #xab8080bb + #xfb0014fb + #x182e2b12 + #x51220000 + #xfe1f546b + #x1a251f07 + #xd5c6e30d + #xfd0d04f4 + #x96808cc7 + #xe17e7 + #x172f250d + #x5624fdfa + #xfb2e6573 + #x28240af0 + #xc3bdf022 + #xeb1218f4 + #x978c9cbb + #xf1505d0 + #x14281c0f + #x622afbf5 + #x53c6c7c + #x240df0ea + #xb6ca0125 + #xf42718de + #xab9c94b0 + #x180af1ca + #xa1e1e1e + #x6e2ff8ee + #x113f6f7f + #x5f1e5f2 + #xc1e4040a + #xd2bfac6 + #xba978abb + #x11f5e8d8 + #x11e2c2a + #x7331f4e5 + #x143b727f + #xe4e4f201 + #xdef4f0e7 + #x1a0ad0c3 + #xb18c9ce1 + #xfbeaf2e5 + #x12e3c25 + #x732ce8db + #xf37737f + #xd7f10a0b + #xf2e8d8da + #x1d5bbd7 + #x9e9acb00 + #xedf1fbda + #x1241390e + #x6c1fdada + #x735757f + #xe50b1a0a + #xf1d5d1e8 + #xd0b0c4ee + #xa1cb00fd + #xf2fbeebd + #x2a4221fb + #x5e0fd5eb + #xfd35757f + #x1211c00 + #xe4cde105 + #xa7aad7f5 + #xd00e15da + #x5f4caae + #x322c0800 + #x4b05e80a + #xf735757f + #x1c2812f2 + #xdedafb1e + #x9ab7deed + #x143b0ab7 + #x7d1aeca + #x210f0715 + #x380e0a1b + #xf7346866 + #x2e2507eb + #xe8f0112c + #xa1bed7e7 + #x4b44f1a9 + #xebabb301 + #x2021b21 + #x31282514 + #xfb2b4e49 + #x351e00eb + #xfb011a32 + #xa4b9d3f0 + #x5b37e8ab + #xc19edb35 + #xf1112e0e + #x3b3f25fa + #xfb172c34 + #x381c00f0 + #x8081b37 + #x9cb4dd01 + #x5532eead + #xabb7074b + #xfd2725e8 + #x49410ee7 + #xf2001531 + #x3f2100f0 + #xb071e41 + #x93bef40f + #x5139f1a1 + #xbadb1b48 + #x122a07d3 + #x492bf7eb + #xebf20f38 + #x491ffaeb + #x707274e + #x9dda0a12 + #x5b3fe494 + #xdbed1541 + #x1b15f0db + #x2e0ef200 + #xedf11231 + #x4612eeeb + #x40b2e55 + #xaef4150f + #x683fd490 + #xf2eb0841 + #x17fde7f0 + #x12fbfa0e + #xf4f51224 + #x3902e5f1 + #xe1f1f0f + #xe7020407 + #x3ae7acb8 + #xd0e3305d + #xf40718fe + #xfa0e0bf7 + #x1fef1 + #xd2e6020c + #xb0e05f4 + #xeafb0107 + #x19e1c0c9 + #xcaee3041 + #xc2016ea + #x70efbf5 + #x700faf8 + #xdaf31115 + #xfef7eee6 + #xeef7fb00 + #xfbe4d6dc + #xcdfa2219 + #x35370ad7 + #x800f30a + #xe020001 + #xee051e1e + #xe9e6edf4 + #xf7f5edea + #xf3ede3e7 + #xdaf504fa + #x5733f4d3 + #xf4eb0036 + #x160f0e04 + #x5142222 + #xd9e4f502 + #xead2d0 + #xf3ede7f5 + #xd7e4f1f3 + #x5d26edd7 + #xdced235d + #x232215f4 + #xf182328 + #xd6ea000b + #xf8d0b5c0 + #xeee9f001 + #xc5d7f4f8 + #x5822eed0 + #xd502446a + #x332f0fe0 + #xf182630 + #xd9f1080f + #xe0b2a5bc + #xe3e9fafe + #xb5e104f8 + #x5f28e6b8 + #xe4184e6b + #x402f04dd + #xb152a3c + #xddfa0b0e + #xc2a2a2bf + #xddebf7e6 + #xbef80cf1 + #x6b23caa4 + #xf71b4a72 + #x3f2807f0 + #x163343 + #xe6fd0401 + #xb1a1aac8 + #xe3ebe1c6 + #xd90a0aed + #x6b0bb4a8 + #xf80f497f + #x30261b05 + #xfb233f3d + #xedeef1f4 + #xacacbedc + #xe7dfc5b1 + #xf30b05f1 + #x53eeb4c6 + #xed0c557f + #x23332f08 + #xb36402a + #xe3d2e3fb + #xaebedcf3 + #xe1c9aea5 + #x805f5 + #x32e6cde6 + #xea1c616e + #x264635fd + #x293f3218 + #xcab8e716 + #xb4d900fa + #xd3b89d9a + #x20a08f1 + #x19f1edfb + #xfd325a49 + #x354d2af7 + #x3f371c14 + #xacb4fd2f + #xc30015ea + #xccab8b8e + #x40a05ea + #x12070405 + #x1b3c3f26 + #x3d411e05 + #x3a25141f + #xa1c50e2d + #xe62011cd + #xc99d8093 + #x50701ea + #x1816120c + #x32322015 + #x362d1f23 + #x22161828 + #xacd90b16 + #xa2afabc + #xbc8480ac + #x10105f0 + #x1f221e11 + #x3a200b11 + #x20203040 + #xe162022 + #xc2ddf802 + #x1919e9c6 + #xa28080cc + #xfa020fed + #x222a230c + #x3a14010e + #xb264953 + #x111f1c0c + #xcacfed07 + #xe07eedc + #x89808edc + #xfa0e14da + #x252f1f05 + #x3c12fd0a + #x5365d5d + #x1f1f08f4 + #xbec3f419 + #xfa0701e3 + #x8680a1d5 + #x81908c2 + #x232a1605 + #x4314f805 + #xc446765 + #x200ff0e9 + #xaecc0520 + #xfa190ad3 + #x9895a0c3 + #x1614f1b8 + #x1b201514 + #x4e18f500 + #x194b6c71 + #x7f3e1ee + #xb4e30b0b + #xf23f4bc + #xac9594c6 + #x11fde4c6 + #xf1b2020 + #x5719f0f5 + #x1f4b747c + #xe0e0e7fb + #xcff4fae7 + #x1f0ed2b9 + #xaa8998e3 + #xfdebebd6 + #xb26321f + #x5e19e7ea + #x1b4a797f + #xcae6fa05 + #xe7eddfcd + #xfdfbecf + #x988dbe02 + #xebf1f8d3 + #x163a330e + #x5d11d7e4 + #x12497e7f + #xd3fb0a04 + #xead6d0d2 + #xe1b9c5e9 + #x95b4eb01 + #xf100f3b9 + #x2a4122fa + #x5300cfee + #xb497f7f + #xf0110ffb + #xdcc6d9ea + #xb5afd9f1 + #xb8f002e0 + #x1fdd5a7 + #x39320afa + #x3ff1da07 + #x74a7f7c + #xe1b0af1 + #xcfccf107 + #xa2bce3e9 + #xfa1ff7b6 + #x5dfb5b9 + #x2d16050c + #x2af7f81f + #x74b786a + #x221c00ea + #xd6e30a1e + #xa7c6dde0 + #x332cdfa2 + #xebb5b4f0 + #x1107181b + #x250f161c + #x8466451 + #x2c16f7e7 + #xe7f8182c + #xacc2d5e4 + #x4d20cda2 + #xc2a4d729 + #xfd112c0e + #x322d1c04 + #x733463d + #x2a12f3e9 + #xf8051f35 + #xa5b8d9f4 + #x4916d0a7 + #xa5b50847 + #x12828e7 + #x463708ed + #xfe192a37 + #x2911f3ea + #x107233f + #x98bbeb04 + #x461ed59d + #xabd9254a + #x192f0ac8 + #x4b26eeed + #xf107223f + #x2f11f0e6 + #x82c4d + #x9bd0000b + #x4e25ca8e + #xc8f12646 + #x261ceac8 + #x390ce900 + #xe900233f + #x2f08e9e3 + #x11354e + #xb4ee0b08 + #x5a1cb68b + #xdff01e4b + #x1900e7e1 + #x16fdf70f + #xed001f29 + #x18f5e4ea + #x21b3746 + #xcd020c05 + #x5d0ca894 + #xe6e41857 + #x5edf3fa + #xfefb0712 + #xf4011611 + #xfbe4e7f5 + #x151f09e2 + #xecfd090f + #x18ccb2cc + #xc6024c56 + #xff1c15dd + #xc13fded + #xfdfdf5f6 + #xc9f30d06 + #xa08f7df + #xecfa090c + #x5d5c4d6 + #xd00d3c33 + #x1f2905d2 + #xf05f2ff + #x2fcf700 + #xe502150c + #xf7f0efe9 + #xf0f9fdfd + #xf5e0d7e2 + #xe00d1c0a + #x422af0cc + #x2f2f726 + #x9030205 + #x121c13 + #xe3e9f3fa + #xf7efe6e5 + #xf5e7e0ef + #xe6fcfdf7 + #x4f19e5d6 + #xe7ed1d52 + #x151209f7 + #xc18201c + #xddecfa02 + #xf5d7c9d0 + #xf2e7ecff + #xd7e9f5f6 + #x490fe7d6 + #xda054668 + #x251f02df + #xc182526 + #xdcf20003 + #xe2bab4c9 + #xe9ecfd02 + #xc6e7fdf6 + #x4813e5c6 + #xe5205b69 + #x3320f3d2 + #x9192c33 + #xdff90502 + #xc4a3acc6 + #xe3f505f2 + #xc7f903ec + #x5512cdb0 + #xf92c5b70 + #x3919eddd + #x31c353f + #xe5ff03f7 + #xaf9aaac7 + #xe6f7f5d6 + #xdd0902e6 + #x59ffb2ac + #x285c7f + #x3018fdf2 + #x253f3f + #xeaf9f6ec + #xa69db2d2 + #xecead6bd + #xf60ffde9 + #x49e2a9bf + #xf622687f + #x262315fa + #xc334032 + #xe7e3eaf0 + #xa7a9c7e3 + #xe7d3bab0 + #x20cfff0 + #x29d5bddd + #xed2d7679 + #x28381ff2 + #x2d3f331f + #xd2caef0d + #xadc4e7ec + #xd9bda7a6 + #x50d05ef + #x13dfddf3 + #xfa407259 + #x364318ea + #x4b391d18 + #xb3c2032d + #xbded03e0 + #xcaad969c + #x61205e7 + #xcf5f7fd + #x16495938 + #x433b0cf5 + #x4c260f1f + #xa0d01635 + #xdf1205c3 + #xc39c819c + #x80f00e3 + #x13090805 + #x2c3d3523 + #x422a0c0f + #x3216122c + #xa6e51620 + #x622efac + #xb68380b3 + #x60800e6 + #x1d18130a + #x32261a1d + #x2f201f2c + #x18131a2a + #xbaea0608 + #x1d15daaf + #xa08080d7 + #x809e3 + #x25231c0a + #x2f130d1d + #x1a263b40 + #x131c1a18 + #xc4ddf603 + #x1800dac2 + #x83809af0 + #x130fd0 + #x2a2a1a03 + #x2a0c0819 + #x1238504b + #x221d0aff + #xbccff913 + #x3faeccd + #x8080b0ef + #xa1f03b6 + #x2c291200 + #x2d0a0216 + #x19495d52 + #x2810f3f2 + #xadd2081f + #xfd0cf7c6 + #x868fb2dd + #x191ceca7 + #x29200d0a + #x350afd15 + #x2553655b + #x13f6e2f3 + #xafe7100f + #xf1aecb2 + #x9c91a2d6 + #x1c09dcb0 + #x1c19181c + #x3d0cfa0d + #x2d566c66 + #xece2e2fd + #xc6f902e9 + #x200dcfac + #xa0849fec + #xaf6e0c4 + #x13222a20 + #x450af0ff + #x2c567673 + #xd0dfef08 + #xe0f5e5c7 + #x18e6bac0 + #x9183b908 + #xf5f3efc9 + #x19353210 + #x4905e0f3 + #x26597f7c + #xd2efff09 + #xe7ddcfc3 + #xefbfc2dd + #x89a2e50d + #xf202f0b3 + #x2d4223f9 + #x43f5d5f7 + #x205b7f7f + #xef050502 + #xd9c9d0d9 + #xc2b4d9ea + #xa4d7fded + #x206d7a0 + #x3d380df6 + #x33e3d90d + #x1c5b7f7b + #x131302f7 + #xc7c7e5f7 + #xa9c2e6e2 + #xdd05f2c0 + #xaefb9aa + #x381d0506 + #x1fe2ef25 + #x1d5f7f6e + #x2a16f9ef + #xc6d9ff12 + #xaacde0d3 + #x1912d2a3 + #xf6c3b0dc + #x1d0c1618 + #x16f60c28 + #x22637b58 + #x3012efec + #xd6f31223 + #xb2cad6d5 + #x3806bda2 + #xccaad019 + #x8132a0d + #x22161812 + #x22586043 + #x290ae7ec + #xea051d2c + #xadbfd7e3 + #x39fabca7 + #xa7b60342 + #x92a29e7 + #x3b2909f9 + #x183c423c + #x2006e6ec + #xf60a2533 + #x9fbde7f5 + #x36fdc0a0 + #xa3dc294b + #x1f350abf + #x4920f0f3 + #x5223346 + #x1d03e5e7 + #xf90f2f3d + #x9acdfaff + #x3f06b98f + #xbdfa3049 + #x2f23e7b4 + #x3d06e606 + #xf615334b + #x1cfde0e0 + #xfc193b42 + #xaae60602 + #x4d02a687 + #xd7002c50 + #x2603dac7 + #x1ff5f319 + #xf212303b + #xaefdce0 + #x3253930 + #xcaf90903 + #x4ced9996 + #xddf9325f + #x9f3ece3 + #x6fa0615 + #xf60f201c + #xe7e3e5ea + #xc2c3015 + #xe2020905 + #x42da97ac + #xd7f23b6b + #xf3f505f2 + #xfc050f08 + #xf90a0f02 + #xcaddf3f9 + #x1813f4d2 + #xea011114 + #xf5bfbcd4 + #xd829563d + #x1527fac2 + #x1505eef4 + #xfdf5f104 + #xeb040b00 + #x7fef1e1 + #xee020d08 + #xf1ccc8d9 + #xea263920 + #x2d21eac6 + #xaf2f214 + #xf8fa0a + #x10e1004 + #xf1eff1f5 + #xf4fbfbf4 + #xf1d9d8e7 + #xf5141304 + #x3f13ded1 + #xf2ea0e3d + #x8040202 + #x1015140d + #xe5eff7fe + #xf4e7dfdf + #xf1e1e8f7 + #xecfafbfb + #x3902e1db + #xe1fd3c59 + #x1710feeb + #xd171d1a + #xe4f2fafd + #xe2c8c8d4 + #xebeafd01 + #xdbeffaf8 + #x3302e4d2 + #xe8215a60 + #x2611ecd6 + #xa1b2729 + #xe4f7fbfa + #xc5afbccf + #xe7f70af5 + #xd5f7fbee + #x3a05d6c0 + #x3a6563 + #x2d08ded8 + #xd213136 + #xe7fbfdf7 + #xada0b5cc + #xec0002dc + #xe405f7e4 + #x43f8bbb6 + #xd3c666f + #x2702e5e8 + #x112a3c3c + #xecfbf7f1 + #xa09ab2ce + #xf2f8e8c2 + #xfa0bf2e5 + #x36dba9c2 + #x539707b + #x200af8f2 + #x1d344034 + #xececeef4 + #x9c9fbbd9 + #xf1e2cbb3 + #x70bf5ee + #x1bc8b3d9 + #xfb3f7f73 + #x211e07ec + #x393c3426 + #xdcd6ef10 + #xa0b2d4e1 + #xe1c9b8ab + #x80dfeef + #x4cccfee + #x1527f5a + #x302d04e4 + #x5639201d + #xbfce0434 + #xb0d8eed8 + #xcfb6a8a3 + #xa1100e8 + #xe2eaf8 + #x1a5d6f3f + #x412dfbec + #x5a2a1023 + #xa9d91843 + #xd1fef4bc + #xc3a395a3 + #xe11fde2 + #xafafb00 + #x33534d2d + #x4420fb04 + #x40181030 + #xabef1e31 + #xfa13e1a2 + #xb58984b8 + #x100dfbdf + #x150b0708 + #x37372e26 + #x34150b20 + #x1e111833 + #xbef81015 + #x150bc99f + #x9f808dde + #xb0d00db + #x2018110a + #x2b1e1e24 + #x211b2430 + #x13141a24 + #xcbef000a + #x18f5c3af + #x8380abfe + #x81504c9 + #x29231304 + #x21111824 + #x182e3d39 + #x2018100e + #xc5dcfd15 + #x5eed2bf + #x8080c502 + #x1323fbac + #x2e240bfe + #x1e0d1424 + #x20414d3d + #x2b10f8fe + #xb5d90823 + #xfdfbe2bb + #x8090c9f2 + #x2123e297 + #x2d1e0707 + #x200a0e26 + #x2d4f5643 + #x1df8e5fe + #xb0ea1118 + #x80ddea9 + #x8d99bce7 + #x270ece9c + #x26170e17 + #x26070b21 + #x39565d4d + #xfae1e108 + #xc3fe08f5 + #x1d08c5a0 + #x978db0f5 + #x18fad1b2 + #x1a1b2021 + #x2d070415 + #x3c5a6959 + #xd9d9ea11 + #xdffeecd1 + #x1be8b2b0 + #x8c83c010 + #x5f7e1bc + #x1a2e2d17 + #x3100f405 + #x375f7666 + #xd6e4f713 + #xebe7d1c3 + #xfbc5b6ce + #x8096e71a + #xfd04eaad + #x2b3f2602 + #x30f1e201 + #x33637f6f + #xeff7fe0e + #xdfccc9d5 + #xceb9cfe1 + #x90c60200 + #x70bd697 + #x3d390ef7 + #x23dede13 + #x31687f70 + #x1304fd05 + #xc9c5d9f7 + #xb0c5e2dc + #xc3f2f8cf + #x10f7b89d + #x3d210201 + #xed6ef2a + #x34707f66 + #x2b0bf500 + #xc0d2f214 + #xadd5e2cb + #xfd01d6ab + #x2cfacc8 + #x29100e14 + #x2e50b33 + #x39767f53 + #x330becfb + #xc9e80724 + #xb6d4d5c3 + #x1ef2b8a5 + #xd9b0c505 + #x11152610 + #xb02181e + #x3c72703f + #x2b04e4fa + #xdefd1429 + #xb5c8d1ce + #x24e2b3ab + #xb3b8f833 + #xe2b27eb + #x261a0d02 + #x335a5539 + #x1efddff8 + #xef0b202a + #xa8c0dce2 + #x21e1b8a8 + #xa8dc2644 + #x213a0dbf + #x3c18f7fa + #x203d4144 + #x17f8dff2 + #xf8142a30 + #x9fcceff1 + #x27eab396 + #xbc013746 + #x362be4a9 + #x3901eb0d + #xb29404f + #x13f2dbea + #xfb1e3633 + #xa9e2fdf5 + #x36e89f89 + #xd80e364c + #x300aceb5 + #x1eeff523 + #x1234047 + #x5e8d6e2 + #x42b3724 + #xc2f502f8 + #x3ad68f90 + #xe20a3c5d + #x14f1d6ce + #x5f10b26 + #x120332b + #xeadcd8e7 + #x11302701 + #xdbfe0501 + #x2ac292ab + #xd90a4c68 + #xfdf7efd6 + #x11110 + #x214170e + #xd2dfe8ef + #x1b2d14df + #xe800080a + #x15b59dc2 + #xcf105c66 + #xf20801d5 + #x50d0af7 + #x700fd + #xcceafaf8 + #x12ffe7e4 + #xf00e1310 + #xdebfc1d3 + #xfa414b1e + #x2815d1bc + #xbece708 + #xf6edf710 + #xf0bfff9 + #xfff6eff4 + #xf40b0800 + #xe4c8cadb + #x32c2c0e + #x2e06cecd + #xf6e6ff28 + #xfaf60009 + #x120e05ff + #xeff0f3ff + #xf6f9f1ec + #xe7d4dbea + #xf0b00 + #x2bf7d4de + #xe3f32a46 + #x60000f7 + #xe100e0b + #xeaf1f4fa + #xe9dbd8de + #xe4e0f3f7 + #xedf7fdf9 + #x1ff4dee0 + #xe71b504e + #x1505efe0 + #x9151b1b + #xe9f1f3f6 + #xcbbfcad8 + #xe4f306f3 + #xe1f4f9ef + #x21f9dad0 + #x3d604e + #x1cfcdbda + #xf1e282a + #xe9f1f3f9 + #xb1aec2d4 + #xec0508dd + #xe9fcf1e4 + #x2af3c5c4 + #x164a6657 + #x19f0d7e6 + #x1b2a3431 + #xecf1f3fc + #xa0a5b9d1 + #xf905f1c2 + #xfc00e9e6 + #x25dab2cb + #x18486f64 + #x12f1e6f4 + #x2a323a2f + #xefedef02 + #x989fb7d5 + #xf9f1d7b1 + #x800eced + #xec1b4de + #xe4d7c63 + #x1303f4f1 + #x3e3a3527 + #xe6def119 + #x95a6c4db + #xe9d8c4a6 + #xb03f4f1 + #xf4bcc7ef + #xf5c7f4e + #x2215f6e6 + #x5335241f + #xcdd5023d + #x9fc1dad5 + #xd4c2b59f + #xc0bfaea + #xedd0def9 + #x246c7635 + #x3518ece6 + #x51251224 + #xb5de184e + #xbce6e1bc + #xc4afa3a0 + #x100ef7e0 + #xf7e9efff + #x3a695c28 + #x3a0fe9f9 + #x35120e31 + #xb2f32240 + #xe6fdd1a0 + #xb59693b4 + #x150bf3da + #x8fcfa06 + #x40504124 + #x3108f612 + #x13091938 + #xc2ff1821 + #x8fab898 + #x9f8096d8 + #x1309f6d4 + #x1509050b + #x31323125 + #x1f0b0f24 + #x60e212e + #xd3f9060f + #x10e7aca5 + #x8180b1fd + #x1012f9c2 + #x1f150806 + #x21212828 + #x161c282a + #x1213181b + #xd3e90016 + #x3dbb8b7 + #x8080d10b + #x151cf0a5 + #x281b0500 + #x1616242b + #x1e32382b + #x210e030b + #xc1e10827 + #xf6e4cab7 + #x8098e0ff + #x251ed88a + #x2c18ff06 + #x15101f2e + #x2e44412c + #x19faef08 + #xb8ec1222 + #xfff7cba6 + #x80a5d5f0 + #x2e0cc189 + #x27100518 + #x160c1c2e + #x3b4e4a32 + #xfae1e610 + #xc5fd0b03 + #x12f9b89c + #x8f9cc5f7 + #x22f4bc9c + #x1b121524 + #x19091824 + #x4154543d + #xd8d4ec1b + #xe002f3dd + #x16e1a3a8 + #x898fcd0f + #xbedcdab + #x1924251c + #x1e050b13 + #x415c6348 + #xd0d8f71f + #xefefd7cb + #xfdc2a6c2 + #x8098ed1c + #xfcdba3 + #x28352209 + #x1ef9f90c + #x40637056 + #xe4e9ff1c + #xe6d3cad8 + #xd4b5beda + #x80be0909 + #xb09d38f + #x3b350ffd + #x13e6ed18 + #x3e6d7f5c + #x2f7fd15 + #xcec2d3f7 + #xb7c2d8d8 + #xa9e905dd + #x19fcb58d + #x4021ff05 + #xffd5f62f + #x43787f54 + #x16fdf60e + #xbec8e715 + #xb4d5dbc7 + #xe0f9e1b5 + #xfd7a5b2 + #x2f0f0616 + #xefdd0e3a + #x4a7f7f40 + #x1cfded0c + #xbfdbfc25 + #xbcd8ceb9 + #x6e9bba6 + #xeab5b9ed + #x19121c15 + #xf3f71f2c + #x517f722c + #x18f9e70c + #xd1ef0b28 + #xbecdc4be + #xcd1acac + #xbfb5ea1e + #x132a24f4 + #xc12190f + #x4d705927 + #x10f1e30c + #xe4ff1628 + #xb4c4cbd0 + #x6cab1ac + #xaed81b32 + #x243a0cc5 + #x25120002 + #x3b534835 + #xbeae006 + #xf30e2128 + #xa9cbdde1 + #x9d3b19f + #xbc023537 + #x382fe1a8 + #x2afdef0e + #x243b4747 + #x6e6dbfc + #xfc1c2b28 + #xacdeecea + #x16d59f8c + #xdb183a3e + #x380cc2ac + #x15e9f728 + #x15324a47 + #xfdddd4f1 + #x62b2f1e + #xbff0f4f0 + #x1fc78a8d + #xec184050 + #x1eedc2c4 + #xfdea0f31 + #x102e4331 + #xe9d4d1ed + #x15342502 + #xd5f9f9f7 + #x13b187a0 + #xe716515f + #x2ead7d1 + #xf6fc1c1f + #xf242a13 + #xd5d1d8f1 + #x212c0ce3 + #xe4ff0005 + #xf9a698bb + #xe0246257 + #xfdffe7cb + #x2080e02 + #x90f0b05 + #xdae1eaf7 + #x251ef7d1 + #xea030b10 + #xe4a6abca + #xde346946 + #x513eabe + #xe09f7ed + #xfaf702 + #xeff7f9f9 + #xaf6f309 + #x61b1512 + #xd7c4c6de + #x1f4b3e09 + #x33f6bdd7 + #xf6e0f82a + #xf5f30a15 + #x1907fcfc + #xfef6f80a + #x60f0401 + #xddcad2e9 + #x192f2704 + #x28ecc9e7 + #xe7ef1b3c + #xfbfc0a03 + #x10090403 + #xf5f5f906 + #xfbf5eff0 + #xe0dae9f5 + #x90f10fe + #x19e9dbf2 + #xe6124447 + #x703feec + #xc0f1210 + #xf2f2f5fe + #xe0d8dee9 + #xe3effef3 + #xf50106f5 + #x15f2e1e7 + #x13e593f + #x12fbe7e0 + #x131c221f + #xf0edf503 + #xc1c4d3e4 + #xef0706de + #xf300f9ea + #x1cf2d2da + #x21556144 + #x10eddbec + #x242a322a + #xefedf80d + #xaebacae0 + #x12f8c4 + #xfefeede9 + #x1ee0c1db + #x2f5e6b53 + #x7e6e1fc + #x3236392a + #xf0ecf816 + #xa3afc1de + #x907e1b2 + #x7f9eaf3 + #xac6beea + #x2a627d5b + #x6efef00 + #x3f3c3924 + #xeae3fb27 + #x9aa7c4e1 + #xfcefcda6 + #x9f9f3f9 + #xf0baccf9 + #x286e7f4a + #x1303f0f5 + #x4a3c2f21 + #xdade0942 + #x9ab4d0de + #xe6d8be9d + #xc01fbf5 + #xe3c4de00 + #x387f7d32 + #x280ce7ef + #x452f1f27 + #xc4e72155 + #xafd2dac9 + #xd2c4ae9b + #x130afbe7 + #xeadbec06 + #x507f6721 + #x3204e1fc + #x2a191933 + #xc0fb2d47 + #xd8ecccae + #xc0ab9eac + #x1b0cf5db + #xfbf0f60f + #x586e501c + #x2afced16 + #x70c213c + #xcd0a2725 + #xfeedb1a0 + #xa78f9ed2 + #x1b09f2d2 + #xa000316 + #x4a514121 + #x1c010427 + #xf60d2c38 + #xde071310 + #xdda9ea7 + #x8680b7fb + #x160ff3c0 + #x180d0a13 + #x333b3b2a + #x16121c2a + #x1132a28 + #xe0f60a15 + #x3c9a3b8 + #x808edd12 + #x1b18eca1 + #x2515090d + #x212d3630 + #x1c272c25 + #x13131819 + #xd2ed0f25 + #xf3cdb5bd + #x80abf50c + #x281bd585 + #x2d160410 + #x1b253336 + #x2d393322 + #x12040315 + #xc6f51927 + #xf6e1bdaf + #x80bdeffb + #x350ab880 + #x2c0f0721 + #x181f323b + #x3e473b24 + #xf6ecf61c + #xcd04160f + #xceaafa3 + #x91b8defc + #x2df0af8b + #x210f1632 + #x181c2f33 + #x4850442a + #xd5dbf928 + #xe60a01e7 + #x15da9ba9 + #x8fa7de13 + #x15e4bb9d + #x1c1c272f + #x18182424 + #x4b595033 + #xc4da0430 + #xf8fbe1d0 + #x3bb9ac3 + #x80a7f824 + #x4efcf9b + #x28322a19 + #x190c1019 + #x4d625f3f + #xd0e60c30 + #xf0ddcfd8 + #xddaeb1db + #x80c61315 + #xc01cc89 + #x3c361909 + #x13f80121 + #x5071704a + #xeaf50d2c + #xd8c7d2f2 + #xc0bacde0 + #x9ded15ed + #x1e00b580 + #x4527060d + #xe60336 + #x557f7f45 + #xfcfc0725 + #xc3c7e60d + #xbbd2dad0 + #xd201f2c3 + #x1ee0a09d + #x39120922 + #xe9e41844 + #x5c7f7f32 + #xfcfe21 + #xbed7fb1c + #xc7ddcfbd + #xf8f2c9b2 + #xfebdaed3 + #x24121c25 + #xe6f92c3b + #x677f711b + #xfef5f622 + #xc9e90c24 + #xcdd2beba + #xfed3b1b4 + #xd0b7dd07 + #x1c272a09 + #xfb132c22 + #x6b7f5c13 + #xfbedf228 + #xddf91625 + #xc3c6bec7 + #xf2c3afb5 + #xb7d7121f + #x2d3c16d8 + #x161b1513 + #x5f6e4b22 + #xf9e6f027 + #xef092125 + #xb7c6ccda + #xefc6b1a9 + #xc3043224 + #x4436ecb5 + #x2109001c + #x47554b3b + #xf6e1ec1c + #xfc1b2824 + #xb5d7dde6 + #xfccda698 + #xe3213e2c + #x4712c4b1 + #x13f00135 + #x32475544 + #xf0dae30c + #xc2a2d1e + #xc6e9e7ef + #x9c39194 + #xf827453f + #x30ecb8c6 + #xf9ef1942 + #x28455333 + #xe1d0db03 + #x1c362509 + #xdaf3edf9 + #x1ac86a1 + #xf9275850 + #xfe0c9d7 + #xf2032d35 + #x253e3e16 + #xd2cadb03 + #x2c3312ef + #xe7f9f507 + #xea9d8fb8 + #xf2356b4e + #x1efd8d5 + #xfc152515 + #x1e282106 + #xd0d3e606 + #x2c1ffce4 + #xf0040415 + #xd5a1a6ca + #xf94a6e38 + #xf03d7c9 + #xc0f0703 + #xd0c0a09 + #xeceaf303 + #x250defea + #xf810121b + #xcaaeb8d2 + #x75c6821 + #x220ccac1 + #x13feed01 + #xfcf80112 + #xa01fbfc + #x1f60114 + #x18180f0d + #xcfc0cbf3 + #x36492df9 + #x1fd1bef9 + #xdde4153f + #xf3001503 + #x4fcfcfc + #xfbf6fe0a + #xd060001 + #xd2cbdcfb + #x222d1ff8 + #x11d7d2fe + #xe206333e + #xfb0407ee + #x1010704 + #xf6f2f901 + #xf5ebeef8 + #xdae2f2f9 + #x7120ff2 + #x7e2e2f9 + #xf9334f36 + #x400f2e0 + #xa111712 + #xf2ebf604 + #xd6d7e5f2 + #xea00fee7 + #xfc0901ea + #xcebdfeb + #x20535330 + #x4eedfea + #x1f23261b + #xebe7f912 + #xc0cbdaea + #x112f5cb + #x1f2ea + #xfe0cfe7 + #x39605a3b + #xfce0df00 + #x3133311f + #xe8e80120 + #xb2becfe5 + #x110fe0b5 + #x3f6eaf5 + #x4cbcbf3 + #x416b6e47 + #xf5e2ea0d + #x3b3b3418 + #xe7e7042b + #xa4b2cbe5 + #xcfccea8 + #x3f0f200 + #xebbdd600 + #x417a7f41 + #xfceeee06 + #x3f3c2e14 + #xdae00d39 + #x9aafd1e4 + #xf8e7be9c + #x4f8f9fe + #xd9c0e407 + #x4a7f7929 + #xff9e5fe + #x3934251a + #xc9e82044 + #xa1c0d6d2 + #xe4d4af94 + #xc03fbee + #xd9cfee0a + #x5d7f6314 + #x1df6dd07 + #x22232028 + #xc3fc303b + #xc1d6c9b8 + #xcfbd9f9f + #x1707f5df + #xe8e4f612 + #x6c7f4f11 + #x1beee41f + #x3122834 + #xd20f2d1b + #xe8d9ada8 + #xb6a19ec3 + #x1a07f0d2 + #xfbf3031a + #x65694517 + #xfeef931 + #xf2113134 + #xe5111b03 + #xfec897ad + #x9390b5f0 + #x180af0be + #x9010d1d + #x4d533f20 + #xafe0f33 + #xf8173128 + #xeb030c04 + #xf8b397be + #x8097dd0d + #x1a11e8a1 + #x170c0f18 + #x36423c29 + #x14151d28 + #x918251b + #xddf60d15 + #xe8b2a7c4 + #x80b6fe0d + #x2614cf80 + #x230f0c1a + #x28373b33 + #x2529231f + #xa0f1218 + #xcff9171a + #xe5c3b2ba + #x83d10100 + #x3304af80 + #x260c0c29 + #x22313c3b + #x3637261a + #xf5f9041f + #xd2091a06 + #xf6d1a8aa + #x99d2f0fb + #x2eea9c80 + #x1f091a3c + #x1f2e3e37 + #x42412d1b + #xd2e5062d + #xe71107e4 + #x4c896ac + #x9cc1ea0d + #x17d7a58c + #x18152d3c + #x1d2b362b + #x4a4a3722 + #xc0e00f36 + #xfb06eac9 + #xfcad90c3 + #x8cbdfe22 + #x3ddba93 + #x22293328 + #x1d222320 + #x4d534429 + #xc3ea1839 + #xf9e8d2c8 + #xdc9ea5dd + #x83d11b1d + #x4f0be82 + #x37342314 + #x180c1123 + #x52635534 + #xd4f61a36 + #xdfcccfda + #xbea7c4e5 + #x99f51ff8 + #x17f5aa80 + #x44280d12 + #x6f60d37 + #x5b776834 + #xe4001734 + #xc4c6ddf2 + #xbac3d6d7 + #xc90901cf + #x20dd9488 + #x3b120723 + #xedf01f47 + #x687f6f25 + #xeafe0f33 + #xbbd1f301 + #xc9d4cfc3 + #xf0fcd4bd + #x7bd9cba + #x260c1d30 + #xe0003442 + #x767f630a + #xebf80634 + #xc1e20409 + #xd4cfbdb8 + #xf8dcb8bd + #xdcb3c8ed + #x1f202e1a + #xee17372e + #x7f7f4dfe + #xedee033b + #xd1f2110d + #xcec0b3be + #xe8c3b2c0 + #xbdcffe09 + #x2d3722eb + #xa202520 + #x7c7a3f0c + #xebe70341 + #xe4031a11 + #xbdbabdce + #xddc1b5b6 + #xc4fe250c + #x4536f6c1 + #x1a110d26 + #x68634125 + #xe5e2013b + #xf5152212 + #xb8c4ccdd + #xe4c6aca5 + #xe422330f + #x4d14c9b8 + #xff90c3f + #x4f574d34 + #xdcdcf82b + #x726230c + #xc4d7daea + #xf0be969c + #x1303c20 + #x39eab5c9 + #xf8f32050 + #x3f555228 + #xced1eb1a + #x1a3120fc + #xd7e5e2f8 + #xeda786a7 + #x7314f34 + #x15d2bedd + #xeb063744 + #x3952440d + #xbec8e714 + #x2b3311e8 + #xe7ebeb07 + #xd9948bbb + #x13e6539 + #xdccfdf + #xf61d3625 + #x314128fb + #xbac9eb14 + #x3125fedd + #xeef5f918 + #xc3949ecb + #x6536e26 + #x6edd1d6 + #x91f180c + #x202311fe + #xc9d9f511 + #x260ff5eb + #xfb070a1f + #xbda4b2d7 + #x1d65600c + #x1af2c3d4 + #xd06fe11 + #x9090c0c + #xe8edf907 + #x17fef303 + #xa18171d + #xc1b5bedf + #x33694dfc + #x29eab5dc + #x4edf322 + #xf8fb0d17 + #x3fbfbfc + #xfcfc0403 + #x180a0707 + #xc4bbd909 + #x3b3b18ea + #xf5bdd614 + #xd4fb3336 + #xf60c0ce5 + #xedf5fef8 + #xfbf6fcfb + #x6f9fe01 + #xcbcfe804 + #x222811e7 + #xf2cee209 + #xed203f29 + #xfc07f8df + #xf6010900 + #xf3edf6fc + #xe7e5f3fb + #xddedf6f2 + #x91503e2 + #xf6e0e7f8 + #x17454520 + #xfef6e4e4 + #xc151709 + #xe7e7f90d + #xccd9ebf2 + #xf804eed4 + #x307f2e4 + #xe0dcee + #x39554525 + #xf5e2dcfe + #x2326220c + #xdfe7031f + #xbecedfe7 + #xf07dabd + #xf6e8f3 + #xfbd1d6f3 + #x495e5230 + #xeadae712 + #x30312607 + #xdde80a28 + #xb3c0d4e0 + #x14f9c8b0 + #xf9eaed04 + #xe7c3ddfc + #x4d6f6630 + #xeae2f017 + #x34362303 + #xd9e81230 + #xa2b3d4e0 + #x6e8bda4 + #xf6edf807 + #xd2c4eb03 + #x557f681b + #xf5eaea11 + #x34331b03 + #xcfed1d31 + #x9cb6d7d7 + #xf3d9af96 + #xf9fbf9 + #xced1f507 + #x667f5304 + #x1e7e015 + #x26251811 + #xc9fc2926 + #xacc4ccc1 + #xe0c69e94 + #xd03f5e7 + #xd7ddfb0f + #x797d41fb + #x6dfe229 + #xf172020 + #xd612280d + #xcecbb2af + #xc9ac97af + #x1403ebd7 + #xe5e80418 + #x79713b03 + #xddf33f + #x142d26 + #xea181af8 + #xe4bb9ab0 + #xa799adda + #x1201e8c4 + #xf5f60f1b + #x665e390f + #xfbe80642 + #x11a301f + #xf50f0af5 + #xe2a496c1 + #x869ed6fe + #x1406dfa5 + #x403141b + #x4f50391b + #xfc1234 + #xc1f2614 + #xeafe0601 + #xd19ca4cc + #x80bbfb04 + #x1f09c880 + #x1109111d + #x3e453725 + #x11121526 + #xf17150f + #xdafc0d09 + #xcbaab0c3 + #x8cda06f9 + #x2dfba580 + #x1707122b + #x333e3b2e + #x2320171b + #x60a17 + #xd70712fb + #xd9baaab2 + #xa5e5fcf5 + #x29dd8b80 + #x14041d3e + #x2b3b3f30 + #x33291818 + #xe2f30a25 + #xe81206dc + #xebb596af + #xafd9f301 + #x12c68b85 + #xc0d313f + #x283b3e28 + #x3c301d18 + #xcbea1431 + #xfc0ceac0 + #xe79f8ec1 + #xa1ce0117 + #xfbc69f8e + #x1420392e + #x2633301d + #x4239261d + #xc6ee1d39 + #xfef2d1b8 + #xce8c9edc + #x93dc1b18 + #xf8d9aa83 + #x28302e17 + #x22201b1f + #x4a473425 + #xd1fb233b + #xe8d4c9c1 + #xb094beea + #x9ffc26fc + #xae49a80 + #x3b281712 + #x11071431 + #x525b4728 + #xe0042037 + #xccc6cfd4 + #xaaafd4df + #xc8110dd4 + #x17d48680 + #x36140d20 + #xf6fb2244 + #x6173521a + #xea041a37 + #xbbc9e2e2 + #xbbc8d1c6 + #xee07e2be + #x7b686a5 + #x22071b2e + #xe4043944 + #x747f4c01 + #xf0fe123e + #xbddaf3ed + #xcecbbeb6 + #xf8e5c1c1 + #xe0a8acd7 + #x15173123 + #xea1a3f31 + #x7f7f36ee + #xf2f50f49 + #xcbeb01f5 + #xcebdb2b6 + #xe7c6bac9 + #xc1c1e2f5 + #x23302df9 + #x3263023 + #x7f6f25f6 + #xf0ee0f52 + #xd7fc0af9 + #xbeb0b2c0 + #xd1bbbbc3 + #xc3f00cf8 + #x3f3606ce + #x151a1829 + #x7a5d260d + #xe7ea1253 + #xe80c11f9 + #xb3b5bece + #xcfbeb3b2 + #xe4181df3 + #x4d1ad6bd + #xf011444 + #x63533622 + #xd9e40c44 + #xfb1d14f3 + #xbac3ccdd + #xdabaa1a7 + #x42d25fe + #x3bebbacc + #xf6f62657 + #x5055421b + #xc9da0031 + #x112811e5 + #xcbd1d7ed + #xdca590ad + #x12343412 + #x14cbbde2 + #xe8063f4f + #x49573b04 + #xb8cff625 + #x232b06d2 + #xdad9e201 + #xcb908ebd + #x11414f1b + #xf5c9ccea + #xf320422e + #x444a22f2 + #xaccbf622 + #x2d23f6c8 + #xe2e2f215 + #xb5899ccb + #x14585d11 + #xf3d9cfe0 + #xa292911 + #x34300af3 + #xb0d2fc1f + #x2612edce + #xebf20420 + #xaa96add6 + #x286c55f9 + #x3ddc3dc + #x15170a0d + #x1b150404 + #xc6e20014 + #x1503f2e8 + #x106111d + #xb2a5bbe4 + #x416b3eea + #xdd2baeb + #x3f80420 + #x3060c0c + #xe0edfe03 + #x6f9fc00 + #x14141515 + #xbdb2c4f5 + #x4d602de5 + #xdc3b800 + #xebe40d34 + #xf503140a + #xeef3f9f8 + #x305ffee + #xe030806 + #xbcc6f216 + #x39320bdb + #xd3c7f421 + #xe61f431b + #x211f7d7 + #xebfd00f5 + #xfcfaf9f1 + #xfaf90303 + #xcdddf905 + #x252702da + #xe1d8f20e + #xa363e13 + #x303e8e3 + #xfd0b08fd + #xeceff902 + #xe0ecfcf9 + #xe9f7f5e9 + #x1314f2de + #xefe4ecfc + #x32493913 + #xfdeedefc + #x171c1102 + #xe0eb0319 + #xd0e4f1e9 + #x6ffe1cd + #x8ffe8ef + #xf5dde3f9 + #x494f3e1f + #xeee0e819 + #x2a2a17ff + #xdbef0e27 + #xc6d5e3e0 + #x13f4cdbf + #xfdecec06 + #xe8d2e8fd + #x525f4f22 + #xe4e0f527 + #x333017f9 + #xdaf2162c + #xb6c6dbdb + #xee6c1b6 + #xf2ebfa13 + #xd5d2f4ff + #x5f745813 + #xe8e6f928 + #x362f13f5 + #xd5f71f2f + #xa7c1dbd8 + #xdbb8a5 + #xf4f5000b + #xcddbfcfd + #x737f4ffc + #xf1e4f12d + #x362710ff + #xd302272a + #xa8c7d5ca + #xf2cda599 + #x200fcfa + #xd2e60005 + #x7f7f3ef1 + #xf2d8ef3d + #x2a1c140b + #xde112516 + #xbbc9bfbb + #xddb89aa2 + #x1003f2e9 + #xddec0813 + #x7f7133f4 + #xefd2fc51 + #x1b171f14 + #xf11c1700 + #xcfbba7b8 + #xbea2a8c7 + #x1100e9d7 + #xe9f5141c + #x7a6230ff + #xecda0d5a + #x141e2814 + #xff1608f9 + #xcfa29dc7 + #x9ca4cfec + #x1100deb8 + #xf5031b1e + #x6657300a + #xf2ee174e + #x1b24250e + #xfa080200 + #xbf96a8d3 + #x8ebef9fa + #x19ffc691 + #x50b1b1e + #x544f3316 + #xff00173b + #x1f21190a + #xeb000608 + #xb39db5cf + #x9ce30bef + #x25f2a080 + #x100b1928 + #x47493822 + #x100b132d + #x14130e10 + #xe3080d00 + #xbeadb1bf + #xb8f405e9 + #x25d78380 + #xe0a223b + #x3e474028 + #x1f131125 + #xff020e1e + #xee1305e6 + #xd0aea0b6 + #xc6eefcf2 + #x11b9808b + #x8103643 + #x38474125 + #x2c1b1121 + #xe8f9162d + #x210eec9 + #xd59c94c2 + #xbce30608 + #xf4b18e99 + #xb224433 + #x3844381b + #x35211621 + #xddfa2238 + #x8fcd3b9 + #xbf889fdd + #xaeeb1f0e + #xecc19a8f + #x1e333b1b + #x33352719 + #x3d2d2227 + #xe105283b + #xf9dec4be + #xa48bbcee + #xb3062dfa + #xfcd09480 + #x32322510 + #x251e1c28 + #x463e322a + #xf10e2a3d + #xdbcac9cc + #x9aa5d5e8 + #xd51e1bd5 + #xecc8080 + #x331e161e + #xa0b273e + #x54553e1f + #xff10253e + #xc6cad5dd + #xaac1d8d0 + #xf917f2be + #x6b180a2 + #x2210212f + #xf2103d46 + #x69683b08 + #x60a1e44 + #xc1d5e4e8 + #xc2ccc9be + #x3f5cfbe + #xe49f97cf + #x1316362a + #xf1224936 + #x7d6c28f1 + #x8001b51 + #xcae4eff1 + #xcac1b8b6 + #xefd2c6cc + #xc6b0c9ec + #x192f3806 + #x5303b24 + #x7f5f13ee + #xfa1e62 + #xd7f4faf4 + #xbfb3b1bb + #xd5c4cacf + #xc4dbf4ef + #x333819dd + #x17272525 + #x7f4e1000 + #xf4f72569 + #xe40500f1 + #xb1b0b8c4 + #xccc2c7c2 + #xe10806e8 + #x4724e8c9 + #x14111f40 + #x70461e13 + #xe4f52762 + #xf51303e8 + #xb1b8c2d2 + #xd2bfb6b3 + #x8220deb + #x3df7c7d5 + #xfd03335a + #x5f4a2f13 + #xd7ee1c4f + #xb1f02da + #xbec4cde3 + #xd3ada4b3 + #x1e2f1bfa + #x17d2c4ec + #xee114e57 + #x57522f02 + #xc9e30e3e + #x1e24f9c9 + #xcccddbfa + #xc6979dc1 + #x213d3205 + #xf2c7d3f7 + #xf52c5439 + #x544a19ee + #xb9d80836 + #x2a1febb8 + #xd3d7ee10 + #xad8ca8cd + #x255444fd + #xe4d0d8f2 + #xe383e17 + #x493302ee + #xb5da0a33 + #x2a13e1b8 + #xdde6021f + #xa093b6d7 + #x386b43e9 + #xf1d7cdec + #x1f2a1f0b + #x3219fc00 + #xc2e40b27 + #x1e05e3c9 + #xeefa1121 + #xa49fbfe1 + #x517030d8 + #xfacdc2f9 + #x160d1017 + #x160b0511 + #xd7ef0814 + #x1000f1e1 + #x60a1419 + #xaeabccf7 + #x5d601cd7 + #xf2bcc710 + #xf7fa1e28 + #x50b100a + #xe4f40002 + #x602fff1 + #x17111311 + #xb9b1d80b + #x5a4e13dd + #xe6b1d522 + #xdef73030 + #xfd1013f9 + #xe9f4fcf9 + #x601efe2 + #x1060e09 + #xb8da0910 + #x3a2dfbc8 + #xc8da0627 + #x83f3ef9 + #xb08e2da + #xfb08fef6 + #xf7f6f2f4 + #xf2010900 + #xd3ec01f9 + #x2d1fefd0 + #xdce4fb15 + #x254332fe + #x4f6e0f4 + #x111301fb + #xe7ef0011 + #xe4f900ee + #xf4f9eedd + #x1b08e5e5 + #xece5ef08 + #x43462f09 + #xf7e4e918 + #x2a2008fb + #xddf21028 + #xdaeeeedd + #xbf1d5cd + #x8f1e901 + #xe7ddef04 + #x50503e13 + #xe7dffb31 + #x35250bf6 + #xdcf91b32 + #xcbdce0d7 + #xbe0c6c3 + #xf6eafb16 + #xd8dcf600 + #x60664b09 + #xe0e40639 + #x3a2708ef + #xdcfe2335 + #xb6cddad2 + #x1d7beb4 + #xeff40918 + #xd0e5fef9 + #x777c47f6 + #xe5e50443 + #x3e2204f1 + #xda062a39 + #xaccdd5ca + #xf6ceae9f + #xf700080b + #xd3ef00f9 + #x7f7d35e5 + #xe9dd0351 + #x391a08fc + #xe2152a2f + #xb3cdc5bc + #xe7bb9d9a + #x401fcfc + #xdcf20606 + #x7f7228e7 + #xe5d30d65 + #x2c161306 + #xf61f1d1a + #xc0beaebc + #xcda69faf + #xdfcf1ea + #xe4fb1115 + #x7f6625f1 + #xddd71d74 + #x201d1f08 + #x61a0b0b + #xbea2a1ca + #xa9a1c0d3 + #xefbe5cd + #xef061f1d + #x7f5e27fb + #xdde72c6f + #x20252001 + #x60b000b + #xae90a7da + #x97bbece5 + #x16fbcda4 + #xfc112220 + #x6f562a03 + #xeaf72a5d + #x25251800 + #xf9010313 + #x9f94b6dc + #xa2e408df + #x22eea683 + #x8152028 + #x60512f10 + #xfc03224b + #x221a1006 + #xee040b10 + #xa4a4b6cb + #xc10008d3 + #x22ce8080 + #xb11283a + #x55513a1d + #xb061a3e + #x100b1013 + #xf41006fb + #xb6a9a6c0 + #xd700fcda + #xdab8090 + #x6163e44 + #x4c53431f + #x18091534 + #xfb011823 + #x410f1dd + #xc09a97c6 + #xd3f203ef + #xee9980a2 + #x82a4e39 + #x4b533e16 + #x220e1531 + #xee012332 + #x10fed5c8 + #xaf839ce0 + #xc3f61bfc + #xdda48f9f + #x1a3f491d + #x49472d13 + #x2a181b34 + #xef0b2d39 + #x3e0c1c6 + #x9280b8f2 + #xc3112fee + #xe7b88b8b + #x3143320e + #x3c312220 + #x34272a37 + #xfe15313c + #xe7c8c0d2 + #x8599d3f1 + #xdd2c25cb + #xfcb88085 + #x392f2016 + #x221d2a37 + #x433e352f + #xe1a2f3f + #xcdc1cae4 + #x95b9dcda + #x32afeb1 + #xfea180a1 + #x271a272d + #x41b3f43 + #x5b553716 + #x1a162a49 + #xc5cadaf2 + #xb1cbcdc3 + #x110bdcb3 + #xe28b82cd + #x151b3e2f + #xfc2c4e37 + #x775e25fb + #x180d285b + #xcadae5fb + #xc3c5bbb8 + #xfee4cdc3 + #xc094b1ee + #x18354613 + #xd3c4627 + #x7f550eef + #xb062d6f + #xd3e9eefc + #xbcb4afb8 + #xddcdd2cd + #xbbc0dff1 + #x31462ae7 + #x20392f23 + #x7f3f01fb + #xf9043a7c + #xe0f6f2f4 + #xaeabafbe + #xcbcad3c5 + #xdaf1f4e2 + #x4734f9d0 + #x20232739 + #x72350d0e + #xe904437c + #xf104f4e9 + #xa6acb4ca + #xcbc8c5b6 + #x410f7da + #x4308d3da + #x9153a56 + #x653c1f11 + #xdf013e6f + #x610f2da + #xaeb6beda + #xceb6afae + #x201dfee5 + #x1fdccdf4 + #xf41d5b5e + #x60492500 + #xd7f7315d + #x1a16ecca + #xbbc0cef2 + #xc09da6b8 + #x282c15f2 + #xf2c8d804 + #xf73a6844 + #x604713ec + #xcbea2251 + #x2815dfb8 + #xc5cbe20b + #xa78facc5 + #x31472cef + #xddcde003 + #x114c581f + #x5934fbe9 + #xc1e51d4c + #x2c0bd0ae + #xcddcfb1d + #x9592bbce + #x466332dc + #xe2d3d800 + #x2a443408 + #x4418f1fe + #xc8ec1d43 + #x2500d0b8 + #xddf10e25 + #x949dc3d7 + #x626f22c8 + #xeacbcd0b + #x28251d0d + #x2708fe15 + #xddf6182d + #x1afbdccd + #xf404161f + #x9da7cbe9 + #x74630ec1 + #xe4b9ce25 + #xd0d231b + #x11080d16 + #xecfb0d15 + #x10feeadd + #x80e1516 + #xa7b1df03 + #x6b4c03c6 + #xd0b4e437 + #xf10e371b + #x80e0dfe + #xeef90001 + #xe06f2e0 + #x130e1110 + #xacbbf416 + #x583a01cd + #xc0b9f93c + #xe41a4310 + #x61504e5 + #xecfbfbf9 + #x1f1e9f3 + #xfc0e130b + #xc7f60e00 + #x3b1de4bd + #xd2ec0c2d + #x2b471edf + #x8efd9f1 + #x1409f7fc + #xf1eef70b + #xf70b0bfb + #xe1f9fbee + #x2d0be1d1 + #xe1eb0121 + #x363e1bee + #xfbe4e70c + #x2510fbfc + #xe4f10c26 + #xf303f9e6 + #xfbf3e1de + #x16f6e6f1 + #xe7e7f916 + #x433e23fe + #xecdffc2b + #x301400f9 + #xe2fc1d33 + #xe9f3e4d9 + #xe1cfd6 + #xfcecf90e + #xdfe4fc09 + #x4f4f3300 + #xe1e6103b + #x331600f1 + #xe4042538 + #xd4dfd9d4 + #xf9d6c7c7 + #xeef31018 + #xd9ecfef9 + #x676535f1 + #xdfec1447 + #x3516fceb + #xe60b2b3d + #xc1d6d2cf + #xefd1bcb2 + #xf1011411 + #xdef6fcf1 + #x7f6c26e4 + #xe1e91658 + #x3211fbec + #xe9142d3b + #xbcd4c9c5 + #xebc4a8a2 + #xfe040c08 + #xe4f9fefb + #x7f6214e1 + #xdfe2206d + #x230c01f4 + #xf71e252d + #xc1c7b5c4 + #xd9b09fa8 + #x6fe01fc + #xe9fc090b + #x7f580ee4 + #xd7e4327f + #x14110cf7 + #x91d141b + #xbdada8d1 + #xbca5b0c1 + #x8f7f4e4 + #xee081816 + #x7f5513eb + #xd4ef427f + #x111d16f6 + #xc0c0613 + #xac97ade4 + #xa5b7d7d1 + #xcf6debd + #xfb16201b + #x7c5318f3 + #xdafc4377 + #x182114f1 + #x1fc0316 + #x9895baeb + #xacdff6cc + #x16ebb79a + #x61b2323 + #x6d4f2000 + #xe7033864 + #x1b1b0ef4 + #xf4fb0818 + #x97a2c1df + #xca01fcbd + #x16cc8f8f + #xb192b33 + #x624d280c + #xf6042b55 + #x13100b01 + #xf606090b + #xa7aab4d1 + #xe60bf3bf + #x3a480a0 + #x91d3e3e + #x5a4f3313 + #x304234a + #x3061310 + #x40bfbf3 + #xb29da4d4 + #xeb01f6d1 + #xe28d80b5 + #x92e5036 + #x5753330e + #xc041e42 + #xf3061e20 + #x10fcdfdc + #xa888a2e6 + #xde0009e2 + #xcc9093b8 + #x1945501e + #x574f290b + #x11091e40 + #xf10e2929 + #x6e1c9d6 + #x8d80b8f9 + #xd91620da + #xd1a497a7 + #x324d3a08 + #x4f3d1e14 + #x19132643 + #xfe19322d + #xeec7c4de + #x8093d4fb + #xee321dbc + #xe4a8839b + #x3b3d250b + #x3628212b + #x2626333d + #x10203232 + #xd4bccaef + #x88b4dfe7 + #xe36fea0 + #xeb9580ac + #x32252520 + #x1925383b + #x3e3b3326 + #x191e303d + #xc4c1d6fe + #xa7cad4cc + #x1e1bdaa0 + #xd78080d2 + #x1b213d2b + #xc334a35 + #x5b482306 + #x14163050 + #xc4cde203 + #xbfcac1bd + #x10f7cdb7 + #xba82a8f4 + #x16354b19 + #x14424320 + #x70450bf4 + #x4103868 + #xcfdce900 + #xc2bab2bc + #xefdfd6ca + #xafa7d4f9 + #x294a38f3 + #x26423018 + #x7433fbf9 + #xf310487c + #xdce9ecf6 + #xb5adb0c2 + #xd6d9dcc9 + #xc7d7ebe6 + #x454009d6 + #x2930252d + #x6425000b + #xe613557f + #xe9f1ebe7 + #xaaacb2cc + #xd1d7d2b8 + #xf3f9ebd6 + #x4518e2dc + #x1821364b + #x55250e10 + #xe1145875 + #xfbf9e9dc + #xaaafb7d9 + #xd1cabdad + #x1408e9d7 + #x28ebd7f7 + #x3295758 + #x52301401 + #xe1104f68 + #xc01e4d2 + #xb2b5c2ec + #xc4b2afaf + #x2110f7e1 + #xfbd4e60e + #x3456c45 + #x5a380bec + #xda044060 + #x1d03d9c4 + #xbabfd604 + #xada2b2ba + #x292610e1 + #xdfd4ef13 + #x195b5f1e + #x5a2bf6e7 + #xd1fb365d + #x23fbccb8 + #xc2cfef18 + #x9aa0bdc2 + #x3e471bd1 + #xdcdaeb11 + #x35583e01 + #x4811ebfb + #xd1fb3357 + #x20efc4b8 + #xcfe70823 + #x93a8c5ca + #x5f5a10ba + #xe2d2de1e + #x383d23fe + #x2b00f614 + #xe1012d43 + #x19ebcaca + #xe6fc1323 + #x9aafcad7 + #x7555feb2 + #xdcc1de36 + #x21212108 + #x14000b1e + #xf1031e29 + #x13eed7da + #xfb09141d + #xa0b5d7ee + #x7442f3b5 + #xcab5ef4d + #x41e3209 + #x909130b + #xf4000e11 + #xef6e1df + #x40c1316 + #xa5c4f103 + #x5f30efb8 + #xbcc1064f + #xfc2e38f9 + #x90e03f1 + #xf4fe0003 + #xefbe4de + #x80b1313 + #xa8d6080e + #x4b26f1ba + #xb7d41447 + #x33d35e6 + #xb0befdf + #xf901fbfb + #xf3e1f211 + #x4141205 + #xde02fff2 + #x3302ccbc + #xdef21134 + #x3c38fdd6 + #xfadee10a + #x22fff202 + #xe8ea0524 + #x40f02f2 + #xedf7eaeb + #x1ff3d6d6 + #xe1eb0a2b + #x3c340ae8 + #xeddef51e + #x2202f8fd + #xe3f81a33 + #x2eade + #xf5e5d6e5 + #x4eaeef8 + #xe1e80519 + #x413b1af3 + #xe0e50d31 + #x2104faf5 + #xe8052636 + #xeeead8d6 + #xeed6cedd + #xedf00c0c + #xdeed0402 + #x534d1fed + #xddf01c40 + #x1c05f8ea + #xeb0f2b38 + #xd8d9ced3 + #xe8d1c6c7 + #xeb021a0c + #xe3f5faf0 + #x6f5615e3 + #xdef32253 + #x1c05f3e5 + #xee152f39 + #xc9d3c7ce + #xe3c9b2b1 + #xf70a1705 + #xedf8f3f0 + #x7f5204e0 + #xdbf22e6d + #x1204f2e5 + #xf71c2b2e + #xc7c7b9cc + #xdbb79faa + #x2050d00 + #xeef8faff + #x7f46fbe3 + #xd4f23e7f + #x204fae5 + #x2191c19 + #xc1b1add4 + #xc4a7a2b6 + #x4ff04f0 + #xf0020c0d + #x7f40fbe3 + #xcefa507f + #xfd0c02e1 + #x80c0c0c + #xad98ade6 + #xadafbec1 + #x5faf0d0 + #xf8121a14 + #x794000e6 + #xd007567f + #x51507de + #xfb050d + #x9793bcf2 + #xadd3ddba + #xaf0ccaa + #x51c1f1a + #x724108f0 + #xd90d5079 + #x111504e0 + #xf3f70811 + #x909fc6eb + #xcbf8e6ac + #xad1a29c + #xd1e2727 + #x68411200 + #xe60c4168 + #xf0f02e8 + #xf0fb0a0c + #x9aa9bfdd + #xeb08dea5 + #xf8a786a9 + #xd213934 + #x60451e08 + #xf007345b + #x20805f7 + #xf80200fa + #xa9a0add8 + #xf802ddb6 + #xd68688c1 + #xc314e31 + #x5f4b2205 + #xf8052b50 + #xf3071104 + #x5faebe5 + #xa28ba9e6 + #xf002f0c9 + #xb9839acb + #x1a485217 + #x604b1c00 + #xfd05274d + #xee0d1e0f + #x2e1d4d9 + #x8b80b9fa + #xeb1408c9 + #xb493a0bf + #x33533efb + #x5b3e140c + #x20a2c4e + #xf8192715 + #xedc7c9e0 + #x808dd400 + #xfb310cad + #xc49c92b1 + #x454624f7 + #x462c1724 + #xc19364b + #xa212b19 + #xd1b7cef0 + #x80ade3f2 + #x1a3bf290 + #xd08d80bc + #x3c2f210a + #x2b242b38 + #x212c3836 + #x14222b22 + #xbeb7d8ff + #x98c6ded8 + #x2e26d08b + #xc38083de + #x2726331a + #x1a314038 + #x3e3b2917 + #xf1e2c38 + #xb9c1e102 + #xb6c9c9c3 + #x22ffbca0 + #xa780a5fd + #x1c36460f + #x1f464322 + #x56390dfd + #xfd173853 + #xbecbe5f7 + #xbfbab6ba + #xe3c4b9 + #x9a90d004 + #x2b4d3ced + #x2f482e14 + #x5b26f7fb + #xeb17496a + #xc9d6e5ea + #xb7aaafbf + #xe3ded3c4 + #xadc1e6ee + #x454d17d3 + #x34361c1f + #x5214f50c + #xe31e5f75 + #xd8dee5dd + #xaca5afc9 + #xd9e1d3ba + #xd8e3e5d8 + #x4b29eed4 + #x2422263e + #x43110014 + #xe6266872 + #xe8e8e1d4 + #xa7a7b4d4 + #xd9d9c3aa + #xfbf2ded3 + #x31f8e1f0 + #xf2b4b53 + #x40190705 + #xeb276367 + #xf8edddd0 + #xa9a9bae5 + #xd0c4b1a7 + #xdf7e5d8 + #x7dded0d + #xd496849 + #x4621fdf0 + #xea1f5660 + #x5eed4c7 + #xadadcbfa + #xb7b1afaf + #x1708f7d6 + #xe5dbfd1a + #x24676522 + #x4d1aeae6 + #xdd144e60 + #xfe8c7bc + #xb4bee50f + #xa0aab7b6 + #x2b2604c6 + #xdbe0fd1c + #x416a45ff + #x4107e0f7 + #xd80f4b5f + #x11debeb9 + #xc1d4fd1f + #x98b1bebc + #x493cfdb1 + #xdedbf326 + #x495224f3 + #x27f5eb12 + #xe00f454e + #xcd8bfc6 + #xd6ee0d22 + #x9cb6c1c6 + #x6840eba5 + #xd9c9f041 + #x36331af8 + #xdf50422 + #xee113634 + #x7d8c9d6 + #xedff1421 + #x9fb9ccd9 + #x6f31e0a5 + #xc7bc005b + #x1a2922f8 + #x2001217 + #xf20a1f1a + #x4e0d3de + #xfb05141c + #xa0c3e1f0 + #x6021dda9 + #xb6c31963 + #xd3329ea + #x40a0afd + #xf0000d0a + #x4e5d8e3 + #xff081519 + #xaad9fafd + #x4b17d9a9 + #xb7db2456 + #x17411fd3 + #x705f3ee + #xfaff0002 + #x2e5ddea + #xff0d1914 + #xb6ee0a00 + #x4012d6a7 + #xc3ed2448 + #x29460fc6 + #x7fae1eb + #xa02fafd + #xe8e90d2f + #x191e0ffc + #xf703f2fa + #x27e8bfcb + #xe6f92542 + #x4423f4e3 + #xf0dff727 + #x16f5f905 + #xe8f91b31 + #x1611faed + #xf7f0e6fc + #xde4dae6 + #xe3f5202f + #x402c06eb + #xe6e8082f + #xaf9fcfc + #xeb0b272d + #x8f7e1df + #xf0dedef7 + #xf4effe00 + #xe3f51612 + #x473b12ed + #xe1f71c39 + #x1fcfcef + #xf2172c2a + #xefdfd3dc + #xe4d5d8e6 + #xed051703 + #xe8fa05f7 + #x60470be6 + #xe403284c + #x300f4e3 + #xf720312c + #xdad3cbd8 + #xe3d2c6ce + #xf9141b00 + #xf2faf5ef + #x7744fce4 + #xe4063869 + #x3feeddf + #xfc273327 + #xd2c9c1d5 + #xdfc2aebd + #x51616fe + #xf7f7f2f9 + #x7f38f4e9 + #xdf084e7f + #xfafcedde + #x6272a14 + #xcbb6b5da + #xceaca2bd + #x60f12f9 + #xf7fc0106 + #x7c33f7eb + #xd812647f + #xf500f4da + #xa171705 + #xb5a0b5e9 + #xb5a5aebf + #x60a05de + #xfc0f1611 + #x7833faeb + #xd71c707f + #x10af7d3 + #x1030b03 + #x9a94c4f5 + #xaebfc6b6 + #xa01e4ba + #xa202217 + #x7536fcf0 + #xdc226c7f + #x1111f7d2 + #xf4f90b0b + #x8c9fd2f5 + #xc7e8d2a2 + #xae4b8a5 + #x16252a22 + #x703603fe + #xe620627f + #x170ff4d7 + #xef000f0b + #x93abd0e8 + #xeffecd98 + #xf7b698b3 + #x1728392d + #x69390f0a + #xef1b5575 + #xf0bf7e3 + #xf5060a00 + #xa0a7c1df + #x5fec6a2 + #xd28e94d0 + #x19384f2a + #x6640170a + #xf4164769 + #x10a00ef + #x101f7eb + #x9f94b6e9 + #x3fad5b6 + #xac80a5df + #x23515611 + #x6b471605 + #xf40f3d64 + #xfc110df9 + #x1ebe3de + #x8985c2fc + #xbefba + #x9d8eb0d8 + #x3d6044f0 + #x6b3e0d0b + #xf50f3d66 + #x31b1b00 + #xf0d0d5e1 + #x808cdc06 + #xd2af9a4 + #xa998a5cd + #x535828e3 + #x5a2d0f25 + #xfc194564 + #x14272203 + #xd3bdd5f2 + #x80a9effa + #x2c39e483 + #xb88e91d2 + #x513e1ef0 + #x3e252340 + #x112c4951 + #x202c220b + #xbcb8de00 + #x8cc6ebe1 + #x402ac280 + #xb1808fef + #x3b312d05 + #x2a313d44 + #x2d3b3b2f + #x1c282520 + #xb1bfe600 + #xacced8c7 + #x3905ac8e + #x9880ab0f + #x2a3d4401 + #x2c474431 + #x493b1e12 + #xb23313e + #xb6cbebf4 + #xbcc1c2bd + #x19e6b1ac + #x8583d317 + #x345642e4 + #x3e51341c + #x5328000b + #xfc23495d + #xbfd2e8e4 + #xb8aeb5bd + #xf9dec2bc + #x94b3ed03 + #x4e5d23c7 + #x49422222 + #x470ff519 + #xf92f646e + #xcbd5e3d7 + #xaba4b1c2 + #xe8e3cdb8 + #xbfdae9e6 + #x5a40fec7 + #x3b2d223e + #x38030023 + #x13d736c + #xd7daded3 + #xa4a4b5cd + #xe9e4c4ac + #xe8e8deda + #x440febe4 + #x22284056 + #x330b0819 + #xd447364 + #xe6e1dad3 + #xa4a4bcdc + #xe3d5b6a5 + #xfae8dcde + #x19eff506 + #x1b476251 + #x3b14fc00 + #xd426b5f + #xf4e3d5ce + #xa4a5c9ef + #xcebfaea9 + #x5f2e9dc + #xf4e90b17 + #x336e6b2f + #x420de8f2 + #x1396462 + #xfcdfcbc1 + #xa5b0df05 + #xb3b3b3ac + #x170ff5cb + #xe4f2121e + #x587c4e06 + #x39fad800 + #xf4316264 + #x1d7bfba + #xb0c7fa17 + #xa7b6b8b1 + #x3928f0b3 + #xe3f00b2c + #x66672af2 + #x22e8e11e + #xf42f5f58 + #xcebcc1 + #xc4e30f22 + #xa7bdbdba + #x5a2fdea2 + #xdedf0a47 + #x584716f2 + #xae9fe33 + #xfc2c513e + #xfacbc2d2 + #xdef71b23 + #xa9bdc4cd + #x6622cd9f + #xcbce1b66 + #x39341bf2 + #xfefc162d + #xfe233b22 + #xf7d0cbda + #xf0011e22 + #xa7c1d5e4 + #x5f14c9a0 + #xb6d23475 + #x283922e4 + #xb1416 + #xf716220f + #xf7d5d3de + #xfa08201e + #xabd3eff5 + #x4e0bc79f + #xb3e64470 + #x2c4519ce + #x80f0301 + #xf70b1106 + #xf5d7def0 + #x1112219 + #xbff000fc + #x4205c2a0 + #xc4fa405d + #x3d4501c2 + #x8feef03 + #x6050306 + #xf2d8eb08 + #x81c2314 + #xd70503fa + #x3d00bca7 + #xd703344f + #x493defc2 + #x3ede60d + #x1701fa03 + #xe5022128 + #x2a2007ed + #x2f6f215 + #xdd3c7e6 + #xe5073b41 + #x3a10f2e6 + #xeced0e3a + #xf1f402ff + #xef12231c + #x1c09f2e6 + #xf4e8f415 + #xf9e1e5f4 + #xe5072f25 + #x3f2100ea + #xecfb193a + #xe8f9fff4 + #xf9202712 + #x2eadee3 + #xe6def109 + #xf1fd06fb + #xec071904 + #x4e3306ea + #xec092744 + #xedfdf8e6 + #x272a15 + #xe6d7d5e1 + #xe1dae3ef + #xff1913f8 + #xf604fff1 + #x6334fbea + #xf112365c + #xfbffeddf + #x62c2f19 + #xd8ceccdf + #xe1cec9d7 + #xe2112f6 + #xfbf9f2f8 + #x6e2af4f1 + #xf1194e78 + #xfdf9e6de + #xe312c10 + #xd2c0c2e1 + #xd8b8b4ce + #x131c12f9 + #xf9f8f904 + #x6821f6f6 + #xec23677f + #xf9f6e6dc + #x172a1e00 + #xbeabc0ed + #xc2aab4cc + #xe1a10ec + #xfb060d0b + #x6523fbf4 + #xea317a7f + #xfbe8d5 + #x12171200 + #xa39fccf9 + #xb2b2c0bd + #xd13f9cc + #x9191a0e + #x6825fbf8 + #xed3a7f7f + #x1504e8d0 + #xff070d0b + #x8ea6dcf9 + #xc0d2c7a4 + #xefbd2b4 + #x1a272519 + #x6a27fb04 + #xf23a7c7f + #x2309e3d0 + #xf2041012 + #x8eb2deec + #xe8ecc093 + #xffceadbd + #x212d3425 + #x6728060e + #xf834737f + #x2007e3d7 + #xf4090e0b + #x9ab4d2e1 + #x6efb898 + #xd8a1a4da + #x233f4923 + #x632f0e10 + #xf92d657c + #x1506eae1 + #xff0902f9 + #x9da4c5e6 + #xbecbeaa + #xab8cb2f2 + #x2f595409 + #x6536120e + #xf9275975 + #xe09f8ea + #x4f9efed + #x8a93cbf8 + #x7f6d7af + #x9393c4f2 + #x476c46e3 + #x6a360b13 + #xf8205476 + #x151504f1 + #xf6dfe1ed + #x8095e104 + #x1215e69d + #x9aa1bde8 + #x606528ce + #x60280b2c + #xf8215776 + #x25230df2 + #xdcc9def9 + #x80adf6fd + #x312cda80 + #xab9cabea + #x624d17d5 + #x471e1c46 + #x62f5c6a + #x332c10f8 + #xbec0e507 + #x83c9f8e5 + #x4d23b880 + #xa882a406 + #x4d3a20ea + #x33283a50 + #x2041544b + #x332a1209 + #xb1c5ef09 + #xa4d7e6c9 + #x4d029d80 + #x8e80bb27 + #x384134ec + #x34424741 + #x3b42342c + #x27251e28 + #xb1ccf1fd + #xb9ced0b9 + #x2fdf9f9f + #x8083e133 + #x3b593bd3 + #x46503b28 + #x492d1320 + #x1a253649 + #xbbd3eced + #xb9bdbeb9 + #x9d5b6b8 + #x80aff920 + #x556725b6 + #x54472528 + #x4210022a + #x19335762 + #xc7d7e5e3 + #xadafb9be + #xf6dec7b9 + #xa8d5f8ff + #x685202b2 + #x4d332544 + #x31ff0638 + #x27476f63 + #xd0d8dee3 + #xa3aabbc7 + #xf4e5c5ad + #xd5e3e5ec + #x5927edd0 + #x342c3f60 + #x25ff0e2f + #x3659755b + #xd8d8dae5 + #x9faac0d0 + #xf2dcbba6 + #xede1dcea + #x2f02f8f6 + #x2741605e + #x28070613 + #x3a5c6f55 + #xe3dad7e3 + #x9da8c9df + #xe3c9b4a8 + #xf6e5e3ea + #x7fd0e0d + #x38676a3d + #x3104ef02 + #x31556a59 + #xecd8d0d8 + #x9caddaf1 + #xc9bbb4aa + #xf8ecda + #xf4061e15 + #x627f5513 + #x2df1de10 + #x234e6c5e + #xf1d3c5cc + #x9fbef202 + #xb9bbb8aa + #x1e10e6c0 + #xf2071c20 + #x7c7533fb + #x19dce12f + #x1e4d6e57 + #xf1c9c0cb + #xb2da0b12 + #xb6beb9af + #x421ad5ad + #xedfb1c3d + #x73541af6 + #xdaf947 + #x204b6341 + #xecc2c0d3 + #xccf21a19 + #xb6bebdbe + #x5712c2a4 + #xd8ec2d60 + #x553a13f1 + #xf6ef1747 + #x20424d25 + #xe6c4c7da + #xe5022319 + #xb2c0ccd8 + #x5402b9a4 + #xc0ec4975 + #x3f3817e1 + #xfd071e33 + #x15333310 + #xe5c7cedc + #xf10b2a17 + #xb2cee3ed + #x47fbb89f + #xb8fd5c76 + #x3f420ec9 + #x712101e + #xd211c07 + #xe5ccd8e6 + #xfb152d15 + #xc0e6f6f6 + #x3df8b29d + #xc2125e68 + #x4d3ff8b9 + #xd09ff1c + #x10130e06 + #xe5d7ed02 + #xb212a0e + #xdefdfdfd + #x34edadab + #xd717505b + #x502ce3c0 + #x7f8f827 + #x12070406 + #xe3e3021e + #x1c2c2506 + #xf809fb02 + #x2ce1aabe + #xe6124450 + #x4b19dcd0 + #xfdeaf831 + #x10fffd06 + #xf21a1c00 + #x2914f9e5 + #xf9eb0629 + #xf0cddcfa + #xea1e462b + #x290af2e0 + #xedfc1f39 + #xd9fa03f4 + #xfe2119f9 + #x14fcebe6 + #xeaea0a21 + #xf0eaf2f9 + #xef1c2d10 + #x3717f7e1 + #xf206233c + #xe6fefaeb + #xb2619fa + #xf5e3e0e8 + #xe1e6030b + #xfc0a05f2 + #xf9120bf7 + #x4923f9e8 + #xf9142e4b + #xfa00efe5 + #x10291f0a + #xe0d7d9ea + #xe1e0ebef + #x141e06f0 + #xfe01f5f7 + #x531cf5f4 + #xfc1c4362 + #x8fae5e5 + #x172e230b + #xd6cbd1eb + #xdecbd2de + #x1e1f08f4 + #xf9f5f405 + #x5014f9fa + #xfc285c75 + #x3f2e1e5 + #x1f2e1c03 + #xc8bbcaf2 + #xcdb7c8d7 + #x1a1e0df2 + #xf5fa030b + #x4b12fefa + #xfe35707d + #xefe1e1 + #x1e230f00 + #xafafd1fc + #xb9b6cbca + #x151e06de + #x10d0f0b + #x4d15fefa + #x1437c7f + #xbf5e0dc + #x10120a0b + #x99b2e0fe + #xbbc5cbb1 + #x150de6c5 + #x141e170f + #x5215fa03 + #x64b7f7f + #x19fad9d9 + #xfe0b0f1a + #x94c0e8f2 + #xd7d7be99 + #xbe8c5c5 + #x2129241a + #x55170010 + #x84d7f7f + #x1efad6d9 + #xf90b101c + #xa0c5dee5 + #xf7dbaf94 + #xebbbb6e0 + #x283a3a1c + #x521c0a15 + #x8487c7f + #x19f7d7de + #xb0a0f + #xa3b9d1e5 + #x3d7b1a3 + #xbea2c3fa + #x34534605 + #x55240d14 + #x53c6e78 + #x14f9e1e5 + #x501fa03 + #x97a8d1f2 + #x1e0c5ac + #x9da3d605 + #x49683cdc + #x5a260a1a + #x32667a + #x1703efea + #xfcebeb00 + #x80a5e3fe + #xafad79e + #x9bb2d9fc + #x64681ec0 + #x571c0a30 + #xfe2e687d + #x2410f5ea + #xe5d6e80a + #x80b7f5fa + #x2414cf82 + #xa8b1cafe + #x6b5206c0 + #x43141a4d + #x3396d73 + #x341af7ea + #xcacbed17 + #x85d1fae6 + #x4314b280 + #xac9bc014 + #x5a3a08d2 + #x301c375a + #x1746665a + #x3a1cf9f4 + #xb9cdf71e + #xa3e1edcb + #x49f59680 + #x9688d135 + #x433a1ed9 + #x2e34494d + #x32494d3e + #x34170110 + #xb7d4fa15 + #xbbded7b9 + #x34d69496 + #x8092f446 + #x3f5028c5 + #x3f484135 + #x4137292e + #x2b191c34 + #xbed9f406 + #xc0cdc5b4 + #x10c8a8af + #x80b40f39 + #x556219a8 + #x50442b2e + #x3c191437 + #x29263e4d + #xc5d9eafe + #xb6bebcb7 + #xfad2c1b9 + #x9bd90d19 + #x6b57f79e + #x4d2e2144 + #x29011243 + #x353f5a55 + #xcbd7e500 + #xacb7bcbe + #xf7e0cab4 + #xc3e5f700 + #x6630e1b4 + #x37233461 + #x1cfe1a3e + #x4657684e + #xd2d7e306 + #xa7b6c1c6 + #xf9dec1ad + #xdee0e6fa + #x430feadb + #x26345866 + #x1a051526 + #x50626648 + #xd9d6e106 + #xa3b4c8d2 + #xf0d1b9aa + #xe8dce6fa + #x1a0806f9 + #x34586849 + #x1e00fe10 + #x4e616248 + #xded4dcfe + #x9eb6d6e0 + #xdcc3b7a8 + #xf0e8edef + #x5121a05 + #x5875581f + #x19ebea19 + #x445c664d + #xe3cfd4f0 + #x9dc1e8ef + #xcac0b9a5 + #x5fce8d7 + #x31a1e0d + #x7c723503 + #x8d7ea3a + #x415c6b49 + #xe3c6caeb + #xa8d6fcfc + #xc3c1b7a3 + #x2406d7c1 + #x1121e24 + #x7c551afe + #xf4d10158 + #x445d6639 + #xe0bec8ed + #xbeed0f05 + #xc3c1b9af + #x3a00c5b7 + #xf0062e48 + #x643a12f9 + #xeae11c5d + #x4658521f + #xdbbccaf0 + #xd7001c08 + #xbec0c3c6 + #x3ff2b9b4 + #xd7054b64 + #x4b3010e8 + #xf0fc294d + #x3e48370d + #xd7becfef + #xe80f2406 + #xbbc8d7dc + #x37e8b4af + #xca15626b + #x463405cd + #x10f213a + #x30341f05 + #xd7c3d6f0 + #xf51a2905 + #xc1dcebea + #x30e6afa8 + #xd2286964 + #x4e34efb9 + #xd0d1234 + #x2b210f05 + #xd7cbe500 + #x3262901 + #xd7f2f5f2 + #x29e0a7ad + #xe332625a + #x5323dbbb + #xb010a3c + #x24120506 + #xdbe3fc10 + #x172e21f9 + #xf0faf900 + #x1cd2aac5 + #xed2b5750 + #x480bd7cb + #x1f50f44 + #xf050005 + #xe0fa1019 + #x292e17f0 + #x1fcfa10 + #xfc5b2e0 + #xef215049 + #x37fcdcdc + #xf7ef1244 + #xf5f90003 + #xa2208e0 + #x1f05ebe7 + #xe7f01b2e + #xe0d8f0fa + #xfc373e0d + #x200ae9d6 + #xf0082931 + #xe7fefcf0 + #x12200aeb + #x6f2e6ee + #xe2f5181d + #xf3f5f7f0 + #x1291d00 + #x310febdd + #xf90f2e3e + #x100f3ed + #x1b220f00 + #xebe2e0f5 + #xe2f30800 + #xc0ffce9 + #x611fcf9 + #x3e11eeed + #x11b3c52 + #x12fce7eb + #x1f27190f + #xdbd6daf7 + #xe4e4ede7 + #x1f18feed + #xfef9f206 + #x3c0cfafc + #x5255263 + #xdeee0ee + #x272c180c + #xcec7d1fa + #xd4ccdadb + #x221906f2 + #xf5f3fe12 + #x370d03fe + #x837676a + #xfce6e0ee + #x2b270d01 + #xb7b7d303 + #xc0c0d6cf + #x201d0ae4 + #xf9010a14 + #x381103fa + #xd46756e + #xf7e7dfe9 + #x1f180505 + #xa1b5df06 + #xb7c7d4b9 + #x2019f7ce + #xc140f12 + #x3e0dfc00 + #x12547f73 + #xfeebdae4 + #xc0c0816 + #x9ac3e7fc + #xc8cfc19c + #x1bfed6c7 + #x1f221819 + #x3f0afc0d + #x185e7f7a + #x5ebd1e0 + #xc1120 + #xa2cee2eb + #xe4cfa990 + #xfed3c5d8 + #x2931291b + #x3e0d0618 + #x18627f7a + #x6e6cee0 + #x10d121d + #xabc7d3e6 + #xf3c8a298 + #xcfb4cff9 + #x354a3808 + #x41180f19 + #x165b7f75 + #x3e4d1e4 + #x5060612 + #xa1b5cfee + #xf5ccb2a2 + #xa8b2e40a + #x4f6231dd + #x481d0d20 + #x114f7a75 + #x5ebdbe7 + #xf5f90f + #x8cafdbfa + #xf9e0c39a + #x9dbeee08 + #x6a6712b9 + #x48140c37 + #xa487a7a + #xff9e4e6 + #xebdff216 + #x80bbf0fa + #x11fcc380 + #xa8c1e406 + #x7852f3af + #x3a0c1956 + #xa4d7f78 + #x1f03e6e4 + #xd1d1f524 + #x87d3f7e9 + #x3101a880 + #xabb0db19 + #x6a37ebbb + #x29123869 + #x18597c63 + #x2b06e4e9 + #xbed1002e + #xa4e6eece + #x3feb8a80 + #x9a9de73c + #x502efcc5 + #x252c5060 + #x305d6346 + #x2b03e9fe + #xb9d8062c + #xbee7d6b9 + #x2ec88287 + #x809f0a54 + #x46410db7 + #x37464f46 + #x414a4137 + #x22030120 + #xbedd011f + #xc7d8c1af + #xdb795a2 + #x80be274d + #x5956059a + #x4b46373a + #x3e29273c + #x1d12253f + #xc3ddf714 + #xbec7b7b0 + #xf3c0b0b2 + #x90e0292e + #x7154e68a + #x5033274b + #x290d224b + #x242e484a + #xc7d8ee16 + #xb2bcb5b5 + #xf0d1c0af + #xb9ee1111 + #x7533ce9d + #x3c203169 + #x14052b4a + #x374b5b43 + #xc8d3ed1f + #xabb7b9bc + #xf7dabea9 + #xd4e7fa08 + #x5712d1c1 + #x252b5071 + #xd082731 + #x4a5e5e3a + #xccd1f024 + #xa9b5bec5 + #xf5d3b9a8 + #xdbddf308 + #x2e08eee2 + #x2b4b6959 + #x11051119 + #x52635e3a + #xd1cfee20 + #xa4b7c7cf + #xe6c7b5a8 + #xdfe0f700 + #x16160af0 + #x4f6f6030 + #xcf2f91d + #x5262623e + #xd4cae716 + #xa1bed6db + #xd3c1b49f + #xeef0f3e9 + #x142416f9 + #x76733f11 + #xf9d8f53e + #x5265673a + #xd4c1dd0f + #xa4cfe9e7 + #xcac1b098 + #x8f9e0d3 + #x1624190d + #x7f5b1f06 + #xe0ce0c63 + #x576a6529 + #xd3b9d611 + #xb5e4faf2 + #xc7c0ad9c + #x20f0cac5 + #xa192930 + #x6f3c1103 + #xd6db2b71 + #x5e675412 + #xccb4d614 + #xccfa0cf5 + #xc1bcb2af + #x27e0bec0 + #xf2184450 + #x572e0df3 + #xdff73a65 + #x59573a01 + #xcab4da12 + #xe20c19f7 + #xbcc0c3c7 + #x22d8b9bb + #xe027625e + #x4b3003d6 + #xf20d374f + #x4d4122fc + #xc8b9dd0d + #xf21d20f5 + #xc0d1d8d8 + #x1bd4b2b2 + #xe43e6f5d + #x4f2ce9be + #x3122b48 + #x432c1100 + #xc8c1e412 + #x12b22f2 + #xcfe7e7e2 + #x18cea6b0 + #xf74b6e56 + #x5219cfb9 + #xa0a224d + #x371b0503 + #xccd3f319 + #x16351de9 + #xe6f3edf0 + #xfc1a2c0 + #x34a6550 + #x4801c7c7 + #x6012556 + #x200afe06 + #xdaf20611 + #x27310fe4 + #xf5f3f70c + #xfeb7b4df + #x13f5e46 + #x31f5d1d4 + #xfafe2c50 + #xfefe01 + #xeb0d1201 + #x332701e0 + #xf9f20524 + #xedb5ccf7 + #xfa375938 + #x20f2ddda + #xf0fe2c44 + #xe7f701fc + #x1c13f8e6 + #xef4e5f9 + #xe5072723 + #xdeeaf6ea + #x194125f2 + #x1e02dcde + #xf8172f2d + #x9fff6ef + #x1e1300fb + #xfbece500 + #xec09170d + #xf8fbf4e5 + #x172309f8 + #x2702e3ec + #xff19383b + #x15fbedf1 + #x20190d12 + #xe8dfe304 + #xed0000f1 + #x1309f4e6 + #xb02f606 + #x2a02eff9 + #x723474d + #x10f1e6f4 + #x25211312 + #xdad2dc07 + #xe3e8eae1 + #x1c0bfbec + #xf8f1fd17 + #x2707ffff + #xe335b54 + #xf6e3e5f8 + #x2c230b02 + #xc5c0da0e + #xccd5e1d7 + #x1c1204e6 + #xf4f8091c + #x270e04f8 + #x13446855 + #xe3dfe5f6 + #x2a1900f8 + #xafb9e313 + #xbdd2dac2 + #x2119fdd3 + #x70d1a + #x2c0efdf8 + #x19547359 + #xe3e3e1f1 + #x170b0002 + #xa3c2ec0d + #xc4d3c7a6 + #x230be5c4 + #x13130e1e + #x2d07fb04 + #x21657f62 + #xece5d8ea + #x6060b10 + #xaacee6fb + #xd5ceab93 + #x10e8d0cc + #x23211c20 + #x2a070415 + #x276f7f65 + #xeddccee8 + #xff091213 + #xb4ccd7ec + #xe1c09a97 + #xe5c9d3e8 + #x33382c10 + #x2a0d0e20 + #x286f7f63 + #xe8d3cbe8 + #x209100e + #xb1beceed + #xdfbba19f + #xb9c2edfd + #x49522aea + #x33131027 + #x27677f65 + #xe5d5d0ec + #xfd060b + #x9db4d5f8 + #xe3cbb19a + #xaacefd02 + #x67590dbe + #x360e0e3b + #x1e5e7f6a + #xecdfd8ea + #xf1ecfd10 + #x8cbbe8fb + #xf9e3b283 + #xafd5f902 + #x7a47e6ab + #x2d071c5b + #x1a627f6a + #xf9ead8e5 + #xd8dcff1e + #x91d2f2ed + #x1af19d80 + #xb4c7ef13 + #x712ad5b2 + #x1c0d3b75 + #x216e7f5c + #x9efd5e3 + #xc4d8092c + #xa8e6edd5 + #x2dde8080 + #xa4b4f934 + #x591cdfb9 + #x1a285771 + #x36737344 + #xdecd7f4 + #xbddf122d + #xc4ead7bd + #x23bb8080 + #x89b41c54 + #x4928efaf + #x2c445c59 + #x47625231 + #x4eaea13 + #xc0e81023 + #xd0dcc0b1 + #x2a6809c + #x80d03f54 + #x553fed93 + #x444d4647 + #x46413334 + #xf8f80e33 + #xc5e80617 + #xcbcbb2af + #xe6ab9daf + #x91f24438 + #x6e42d382 + #x4d3a2f50 + #x31212d44 + #xfd15333f + #xc7dff913 + #xbebdadb2 + #xdfbeb1b2 + #xb6042f17 + #x7628b88c + #x3d25346a + #x1715364b + #x133a4d3a + #xc2d3f61a + #xb6b6afb6 + #xeaccb4ab + #xd3fb1209 + #x6009b9af + #x2527527a + #x915363a + #x3152522c + #xbeccf927 + #xb1b2b2b9 + #xefccafa8 + #xdaea0609 + #x3dffd5d0 + #x21426a68 + #x610211e + #x465c5225 + #xc0ccff2c + #xadb2b8c0 + #xe6c5afa6 + #xd7e80607 + #x250bf4e1 + #x3f636744 + #x2fb0419 + #x4e605427 + #xc4ccfd2a + #xaab9c5cc + #xd8c4b1a1 + #xdcf104f6 + #x211e04e5 + #x686f4725 + #xf1e1fd38 + #x55635b27 + #xc7c7f628 + #xaac5d5d7 + #xcec4ab98 + #xf1f6f2df + #x272509f4 + #x7f5c2719 + #xd8d31260 + #x5c6c5b17 + #xc4beef2a + #xb2d7e6df + #xccc2a395 + #x7eddcd2 + #x23211713 + #x733f1515 + #xc9df3376 + #x656e4dff + #xbeb4ec2d + #xc5ecf6e5 + #xc7b9a19f + #x10dccbcb + #x10213436 + #x5b2d1007 + #xccfb4971 + #x656233ed + #xb9b1ea2d + #xdaff06e6 + #xc2bbadb4 + #xbd0c4c4 + #xfd2f5449 + #x4d2a02ea + #xe112495c + #x5b491cea + #xb6b2ed2a + #xef130ee5 + #xc0c7c2c9 + #x2cbbbbb + #xff46684d + #x4b25eace + #xf6193f52 + #x49330df1 + #xb8bbf128 + #x22512e1 + #xcbdad3d7 + #xc5b1b6 + #xe596e47 + #x4d12ccc5 + #x2153654 + #x3a2004fb + #xbbc9fb2a + #x19310eda + #xdee8dae6 + #xfdb9a8be + #x1c5c6a47 + #x41f8bdce + #x4103b5b + #x250dff02 + #xc7df0421 + #x2c3104d5 + #xedece6fd + #xefadb1d7 + #x1e556541 + #x2ce6c0da + #xff104255 + #x6fbfd04 + #xe3fb0707 + #x3323f8da + #xf1effd1c + #xdaafcbed + #x17505c2d + #x19ead0de + #xf8124246 + #xf2f6ffff + #xff1006ec + #x3113ede3 + #xedf2132f + #xcebde5f9 + #x124d5219 + #x10f2dad8 + #xf2123d34 + #xeff902f8 + #x1d05f903 + #x8f0f00f + #xf9242b1b + #xe9f7f0e0 + #x32360cec + #x1bf2d7fc + #x8263630 + #x14fef3f5 + #x1b0a0613 + #xf9ebf213 + #x11b1605 + #xfaece5 + #x21160501 + #x1bf5e705 + #xc293e39 + #x8f5f2fa + #x1f161116 + #xe7def014 + #xfc06fcf0 + #x1300f0ec + #x6fa061a + #x1bfef906 + #x13344c40 + #xf0e7f001 + #x281f0d01 + #xd6cfee1a + #xe5eeece4 + #x1606fceb + #xf3f91324 + #x1f0c01fa + #x1a445a42 + #xd6e2f203 + #x2d1a01ec + #xbfc4f221 + #xd0e2e5d2 + #x1b13fedb + #xf9051622 + #x2811fef3 + #x21536347 + #xd2e5f000 + #x210dfcec + #xafc6f921 + #xcde0d4b8 + #x2614eec8 + #x80d1424 + #x290df9fc + #x29636e4c + #xdee7e9fa + #xf0603f9 + #xb1d0f713 + #xd7d9b8a1 + #x2100dbc9 + #x18141a29 + #x2408010f + #x36757c53 + #xe9e0dbf5 + #x60a0d03 + #xbad0e700 + #xddc6a19e + #xfee0d9db + #x29262821 + #x1f0c1122 + #x407d7f53 + #xe2d2d2f9 + #x50d1101 + #xbbc6d9f7 + #xd7b69ea6 + #xd2d4ecf0 + #x44422bfe + #x26131830 + #x427c7d55 + #xd7cbd0fa + #x30a0afa + #xafbad9fa + #xd4bdaaa6 + #xbbe003f7 + #x63500fcf + #x2b0f1844 + #x3d757d5a + #xd4d0d4f9 + #xf9fc03fc + #x9ebde7fe + #xe5d2ad95 + #xbdec06f9 + #x763ee5b4 + #x260a2461 + #x34767f5e + #xe0dbd6f2 + #xe5f00608 + #x9cd0f3f5 + #x5e09c80 + #xc6e70108 + #x731dcbb3 + #x160d427c + #x397f7f52 + #xf0ded0ee + #xd2eb111a + #xafe4f0e0 + #x1dd28080 + #xbbd60629 + #x5a08cfbb + #x1126637f + #x4b7f7c3d + #xf5dbcdf7 + #xc8f01a21 + #xcbecdec6 + #x18b38083 + #xa1d22649 + #x490dddb3 + #x21476e6f + #x5c7d5e2b + #xecd6db11 + #xc8f91a18 + #xdbe2c6b6 + #xfc9a80a1 + #x91e94b52 + #x4e22dd97 + #x3e575c5a + #x5c5e3e2f + #xdbe0fa30 + #xcdfa0f05 + #xd9cdb4b3 + #xde9a91b8 + #x9e0c5a3b + #x632bc280 + #x4e494259 + #x453b3440 + #xdbfe223e + #xcff203fe + #xcbbdadb6 + #xd4ada8bd + #xc121491b + #x6f18a885 + #x44303e6e + #x28293d4c + #xf5243e37 + #xc8e40006 + #xc1b4afba + #xddbfafb8 + #xde1d2d08 + #x61faa3a3 + #x2b2b577f + #x14284240 + #x1f454728 + #xc1d9061b + #xbab1b1ba + #xe9c6adb3 + #xe4081808 + #x42eebdc6 + #x2144757c + #xd243026 + #x4255471d + #xbfd90f2b + #xb4afb4bd + #xe7c4acad + #xdbfa1408 + #x2bfae0d6 + #x3763765c + #x80f141b + #x555c471b + #xbdd91334 + #xafb1bbc1 + #xddc2aca8 + #xd9fc1300 + #x2913f5d9 + #x60715a3d + #xf7f20632 + #x5e634b18 + #xbfd70f36 + #xadbbc8c8 + #xd6c4aca1 + #xe70106ee + #x341ffae2 + #x7a60362f + #xdde0165c + #x676e4b08 + #xbdd00a3b + #xb4cbd7d0 + #xd4c2a39c + #xf9faf2de + #x341d03fa + #x7644222d + #xc8e93978 + #x73713ef0 + #xb8c60842 + #xc4dee5d4 + #xd0ba9aa1 + #x1e7ded7 + #x28211f1a + #x5e301d22 + #xc805557a + #x756726db + #xb1c10845 + #xd6f2f3d6 + #xc8b49faf + #xfcd9d4d0 + #x1a304430 + #x4e2d130a + #xdb1d5a68 + #x685011d7 + #xadbf0840 + #xeb05fed6 + #xc4bdb3c2 + #xf3d0cbc8 + #x184b5e37 + #x4b26f9ee + #xf329525a + #x533906e2 + #xacc40639 + #x11a03d2 + #xcbcfc4d6 + #xf2c9bdbf + #x26616837 + #x4911d7e0 + #x3284959 + #x3d2401f0 + #xadcb0a36 + #x1a2803cd + #xdbddd0e7 + #xeebbb1c2 + #x376a6837 + #x3df3c1e7 + #x8264c5c + #x2613fefa + #xb8dd112d + #x2f2bfcc9 + #xe9e2d900 + #xe2acb3d4 + #x3d686836 + #x26dec1f2 + #x8285357 + #xa01fe01 + #xcff21116 + #x3922f0cd + #xf0e7f01b + #xcfaac6e7 + #x36656528 + #xfdbcbf3 + #x62b5345 + #xf0f50103 + #xf20306fa + #x3411e9e2 + #xeef70d2f + #xc6bfe2f0 + #x3260530d + #xae5d4f0 + #x52d4932 + #xf0f70100 + #xf0afaeb + #x2803e9f7 + #xee062634 + #xc8d9f5f0 + #x325a3ef7 + #xdf2d6ec + #x32b3e28 + #xfe0001f9 + #x7f6f909 + #xf8ebfd14 + #xd271e0d + #xf1eddbe1 + #x3015f6ed + #x6d8db15 + #x12272c29 + #xf9f2ebf4 + #xb020207 + #xede4fb12 + #xb150bfd + #xfbeddfeb + #x14020204 + #x6e6ed10 + #x142e3729 + #xe2eaedfb + #x140e04f4 + #xdad6f915 + #xf9fbf4eb + #x6f2eaef + #xf4f81019 + #xefbfbff + #x1739412c + #xcce1f200 + #x1d10f6d8 + #xc5ccf91d + #xe1e8e8da + #xd02f1e1 + #xebff191b + #x1b07f6eb + #x1d454a30 + #xc8e4f4ff + #x1b04ebd1 + #xb1c80022 + #xd6e4dac1 + #x1b0de8cc + #xf607151d + #x2206efeb + #x2753533a + #xdae8effb + #xefbeddf + #xaed10419 + #xd8dbc1aa + #x2204d6c3 + #x6091724 + #x1dfff4ff + #x35635e40 + #xebe4e1f9 + #x2fffbef + #xb5d4f807 + #xdac6a5a1 + #xeebd1cf + #x12102225 + #x12ff0614 + #x4773663e + #xe8d4d3ff + #x702ef + #xb8cae4f9 + #xcfaf9aa7 + #xe8dddfdf + #x2727270d + #x12061224 + #x557b683c + #xd4c5cd06 + #x20bffe4 + #xafbadbf6 + #xc3aaa1aa + #xcae1f2e2 + #x483a10df + #x19091739 + #x537a6c40 + #xc6c1cf09 + #xfb02f6df + #x9eb7e2f8 + #xccbaa89e + #xcaf2fbe2 + #x6332e4bc + #x15062458 + #x4a7a7345 + #xcac6cf02 + #xebf6f8e8 + #x9ac6edf1 + #xe8c89a87 + #xd3f6fbf1 + #x630ec3b5 + #x9094178 + #x4a7f783e + #xdacccaf9 + #xdaf204fb + #xa8daeddd + #x2bf8080 + #xcfeb0210 + #x4cf2beba + #x422667f + #x587f6f2b + #xe2c6c1fd + #xcdf91007 + #xc1e4dbc6 + #x4a38084 + #xb7e41e33 + #x35efcab5 + #x12457673 + #x6a7f571b + #xd8bec610 + #xcd0414fd + #xd3dbc3b5 + #xeb87809e + #xa5f84543 + #x3502ca9a + #x325a6a5c + #x6c6a391b + #xc1c1e22e + #xd30607e6 + #xd4c6afaf + #xcc8082b7 + #xae1d5c33 + #x4a0db580 + #x48515158 + #x57472c30 + #xbcdb0940 + #xd4fbf9d8 + #xcab5a7b1 + #xbe909cc1 + #xcc375112 + #x5aff9580 + #x41394768 + #x35303341 + #xda04293a + #xcfebf4e4 + #xbeaaa7b3 + #xc5a7a8be + #xea3535fb + #x4ee28c97 + #x292c587b + #x1e2b3c3c + #xe2b3527 + #xc3dffd02 + #xb5a7a8b1 + #xd3b3aab7 + #xf2221ef8 + #x33d1a1b8 + #x1b3e747b + #x15293224 + #x3e413317 + #xbcdd0b20 + #xafa7a8af + #xd8b5a8b1 + #xe80e17fd + #x1edbc3ca + #x2b5e7f65 + #x10171414 + #x584a3012 + #xbae21532 + #xa8a7aeaf + #xd3b7acac + #xdd0915f9 + #x1df6dacc + #x506c6647 + #xfffb0424 + #x6353330e + #xbae4173a + #xa5acb7b3 + #xcfbaa8a5 + #xe2070bed + #x2907e1cd + #x6c5f4339 + #xe1e6104a + #x6c5e32fd + #xb8df1743 + #xa8b8c1b7 + #xcfb8a19e + #xf202f8e1 + #x300de8df + #x6c432c39 + #xc8ea326c + #x7a6324e1 + #xb3d81b4e + #xb5c8cdbc + #xcdaf97a0 + #xf8f2e6da + #x2b10fffb + #x572e2735 + #xc3045173 + #x7f5a0dc6 + #xaad11d55 + #xc5dadaba + #xc5a595aa + #xf1e2dbd4 + #x2020200e + #x45272024 + #xd41e5e68 + #x7645f4c1 + #xa3cf1b4e + #xd8ede2b8 + #xbca7a1b8 + #xe6d6d3ca + #x203c4015 + #x41220909 + #xed2e585c + #x5c2eeaca + #xa0cf1540 + #xef00e8b5 + #xbfb5b3cc + #xe2cfc5c1 + #x2e575017 + #x400de6f9 + #xff325157 + #x401deadb + #xa1d41433 + #x910ebb1 + #xccc6c1e1 + #xe1bfb5be + #x4065551b + #x32edccf9 + #x7325158 + #x290eebe8 + #xa7dd1729 + #x2217e6af + #xdacdcdfb + #xd4aeafca + #x486a581b + #x17d1c604 + #xb335751 + #xeffeff2 + #xb8ed1514 + #x3014ddb3 + #xe1d3e115 + #xc1a7bedb + #x476a5810 + #xffc8cd09 + #xe39553e + #xf1f1f4f9 + #xd6fb09f8 + #x2c04d6c5 + #xe2e1fd2b + #xb3b3d3e4 + #x43684ef8 + #xf4cdd304 + #x103a4829 + #xe1edf9fd + #xf4fff8ea + #x1df6dde4 + #xeafd1b2c + #xbacfe2e2 + #x435c30e2 + #xfbd6d102 + #x1035371e + #xe8f4f9f9 + #x6fbedeb + #xeefeafd + #xf2192c27 + #xcce6e8df + #x454c15d6 + #x4dacf07 + #x10302c1d + #xf8fdf6f2 + #xfdf9fdfb + #xedf1090e + #x1b1d1202 + #xf4dfd6f8 + #x1e00f4f6 + #xedd3f625 + #x1b252719 + #xe4eaebff + #x604fbea + #xe2ea070e + #xd0902f8 + #xf6e2e1fb + #x2ff0704 + #xf9e8fd0e + #x192c2e1b + #xd4e6f100 + #x1209f1d1 + #xcfdf0715 + #xf8f2f2e4 + #xfdf1ebf4 + #xed02170e + #xbfffdf2 + #x1b373522 + #xcfeaf602 + #x1700e1c5 + #xbcdb0b1d + #xe4e8e2cc + #xd02e8dd + #xf10b1910 + #x1902efe6 + #x24413e2e + #xe2eff4ff + #xef4ddd3 + #xb3df101d + #xe1e1cdb3 + #x1d02d8cd + #xfb0b171d + #x19f9ebf1 + #x32514a37 + #xf8edeaff + #x2f2eaea + #xb5e20b0e + #xe1cfb3a5 + #x19f1ccd1 + #x40d2027 + #xef6fb06 + #x47615335 + #xf8dfda06 + #xfdfdf4ef + #xbadbf8ff + #xd4b7a3a8 + #xffe1d4db + #x121b291d + #x9000d15 + #x586d552c + #xe1cad312 + #x6f2e2 + #xb3cae8f6 + #xc1a8a7af + #xe6e6e4dd + #x2e2e1df9 + #xe071929 + #x6173572c + #xc6bed41e + #x204ebd4 + #xa5bfe4f4 + #xbeafafaa + #xdff4efd6 + #x4c2bf4d4 + #xe072548 + #x5e765e32 + #xbfbed81b + #xf8f9e8d6 + #x9cc6eaf1 + #xd1bca795 + #xe6fdefdb + #x530bcac1 + #x40b416c + #x5c7f662e + #xccbfd112 + #xeaf6f2e8 + #xa5d6eae2 + #xeab78c85 + #xe4f8f6f8 + #x40e8bcc3 + #xfd24687d + #x687f5f1e + #xd6bcc610 + #xddfd02f6 + #xbae1ddcd + #xef9c808b + #xd4f4101d + #x24dbc1c1 + #xb487f73 + #x7a7f4a0d + #xccb1c822 + #xdb0907ef + #xcddac5ba + #xda8080a0 + #xc1023930 + #x1be8c3aa + #x2c657b5a + #x7f6d300e + #xb5afdb3c + #xe110ffd6 + #xd3c8b1b1 + #xba8082ba + #xc5295525 + #x2cf6ae8e + #x48616150 + #x6c4c2425 + #xaac1ff4c + #xe607efc5 + #xc8b5a7b5 + #xa8809ac6 + #xe1475307 + #x40ed9085 + #x4a4a555f + #x4a332c3c + #xc6ea204a + #xe1f4e6cf + #xbaa8a5b8 + #xac93acc3 + #x24e39ef + #x3ccf809a + #x32396174 + #x2e2c393e + #x122e35 + #xd3e6eff4 + #xafa3a5b5 + #xbca5afbc + #xd3a20ea + #x20ba90ba + #x1e417878 + #x222c3329 + #x372e2b20 + #xc6e4021e + #xa8a3a5ae + #xc5aaafb5 + #x22415f1 + #x9bfafcd + #x255e7f65 + #x1d201b14 + #x55392217 + #xbfea1239 + #xa5a3a5a7 + #xc6aeb1b1 + #xf21915f4 + #x9dac8cd + #x4873784c + #xd06061b + #x5e402212 + #xbfef1d43 + #xa3a5a7a5 + #xc6b3b3ae + #xf21710ed + #x19f2cdcc + #x656a583e + #xeded0b3c + #x664c2200 + #xbfef2250 + #xa3aeafa8 + #xcab5aca7 + #xfb1000e2 + #x25f9d3d4 + #x684e3e3c + #xcfed2b5f + #x765315e2 + #xbceb2961 + #xaababaac + #xcaaea1a3 + #xff00efdd + #x25fde2ea + #x53353940 + #xc6064e6c + #x7f4af9c3 + #xb3e6306c + #xb8cac3ac + #xc3a19aa8 + #xf8f1e4da + #x200b02fb + #x402c3535 + #xd6225e63 + #x7b33ddb7 + #xaae63268 + #xc8dacca7 + #xb79ca0b3 + #xebe4ddd3 + #x24271e00 + #x3a272524 + #xed325c58 + #x651dd1bf + #xa5e62c55 + #xddedd1a1 + #xb3a3acc3 + #xe4dbd1c6 + #x32473000 + #x3a150414 + #x375757 + #x470dd3cf + #xa5e62440 + #xf8fdd39e + #xbcb1bad8 + #xe1cdbfc1 + #x455a3a02 + #x2cf4e812 + #xb395755 + #x3204d8df + #xa8ea1e30 + #x1206cf9a + #xcabcc8f4 + #xd6b8b5c6 + #x51634106 + #x10d4dd1b + #x143e584e + #x1ef9dfeb + #xb5f41d1b + #x2406c89c + #xd3c3db10 + #xbfacbcd6 + #x556847fd + #xf4c5df20 + #x1b43573a + #x2efe6f8 + #xca000efd + #x25fbc3aa + #xd6d1f827 + #xaeafcde1 + #x536d43ea + #xe4c5e21d + #x22454824 + #xe8ebf100 + #xe404fbe2 + #x19edcac5 + #xdbea152e + #xafc5dbdf + #x57682ed3 + #xe6cadf1b + #x25413715 + #xe1f1f804 + #xf6fdefe1 + #x6e8dfe8 + #xef0b2524 + #xc6dadbdf + #x55500ecd + #xedc8dd20 + #x24372914 + #xebf9f600 + #xfdf6ebef + #xf9eaf6ff + #x4222917 + #xdfe4d8e1 + #x4c33f6d3 + #xefc5df27 + #x202e2215 + #xf8fbeff9 + #xfffff9e9 + #xe9f90b04 + #x1d0f06f6 + #xe6cee00f + #x8fbfbf7 + #xdde20d1b + #x1d222204 + #xe2e4f40f + #x900edd6 + #xdff4090b + #x9fffbe9 + #xe9ddeb06 + #xf90408fb + #xf2f404ff + #x1b28240f + #xe0ebf90b + #x10f9dbc7 + #xcdef0d14 + #xf4f0ebd2 + #xf6f0eff6 + #xf40f1200 + #x9fdf2e6 + #x1f312d1f + #xeff4f904 + #xbebd4d6 + #xbeef1419 + #xe9e9d7b9 + #xdf9e0e0 + #xfd12120d + #x10f4e6e9 + #x2b3d392d + #x4f6ef02 + #xffe4ddef + #xbdf21412 + #xe6d9bda7 + #x18edd0d9 + #x2101b20 + #x8ededf9 + #x3f4f462f + #x6e7e008 + #xf7ebe9f9 + #xc0ef0802 + #xdbc0a9a5 + #x9ddcedf + #x6162824 + #xf60206 + #x545d4a24 + #xe9d0d919 + #xfbf9ebe9 + #xbde0f4f7 + #xc6aba7ad + #xf2dddbdd + #x1928260d + #x4061216 + #x6164461b + #xc4bedf2b + #xfbe2d2 + #xaecee7f4 + #xb7abada9 + #xedefe4d2 + #x382b08ed + #x80f2634 + #x6468481f + #xb0b9e632 + #xfff6d9c9 + #xa2c9e6f2 + #xbeb4ab9b + #xf6fde4cd + #x440fddd9 + #x214415a + #x64714f1f + #xb5b9e42b + #xf4f0dfd7 + #xa4d4e6e9 + #xd4b4978b + #xf9fbe6e0 + #x34e6c4d7 + #xfb266871 + #x6f7d5112 + #xc0b5d728 + #xe9f6ede6 + #xb5dddbd7 + #xdb9d8089 + #xebf60004 + #x16d2c2d4 + #x84b7f6b + #x7f7f3f02 + #xb7a9d234 + #xe704f7e0 + #xc9d7c7c6 + #xcb80809b + #xdb04281b + #x6d6c4c0 + #x296f7f54 + #x7f6d2402 + #x9ea0e04f + #xef0ff2c7 + #xcec7b0bb + #xab8082b5 + #xdb284a16 + #x10e2b0a4 + #x4d767344 + #x7b4a1618 + #x90ad0262 + #xf709e0b4 + #xc7b4a4be + #x94809bc4 + #xf64f4ff9 + #x24db9097 + #x52615f4f + #x582f1f36 + #xa9d2245f + #xf6f7d6bd + #xb9a5a0c2 + #x9489b0c6 + #x185b39df + #x26be80a7 + #x3f486264 + #x3b29323f + #xe0fd324a + #xe6e6dde7 + #xab9ea2c0 + #xa29db7bd + #x294b1fd6 + #xfa484c7 + #x2848786b + #x2d2d342d + #x191b2d31 + #xd6e2f219 + #xa49da0b5 + #xb0a5b7b4 + #x223210dd + #xf6a4a0dd + #x295f7f5b + #x28281f14 + #x39282224 + #xcbeb0b39 + #xa09d9da9 + #xb5abb7b0 + #x102410e4 + #xf2bdb9df + #x44787f44 + #x19100914 + #x412f1d1b + #xc9f41b4a + #x9d9b99a2 + #xb7aeb7ad + #x6200fe4 + #x4d9c0d4 + #x62786839 + #xfbf6082f + #x4a381d09 + #xcbf72856 + #x9d9e9ba4 + #xbdb2b2a7 + #x91d04df + #x16e6c0d6 + #x6a61523d + #xd9ef2252 + #x5f3f10e9 + #xc7f7346b + #xa2a7a2a5 + #xc2aea9a4 + #xf12f7db + #x1be7cde6 + #x56484b42 + #xcb024462 + #x7139f2c7 + #xc0f9447f + #xadb5aba5 + #xbea5a2a5 + #x6ffeddb + #x16f0e6f4 + #x3f394a3f + #xd7225a5b + #x6d1fd0b5 + #xb9fd4a7f + #xbdc6b0a0 + #xb29da2ad + #xf6efe4d4 + #x1b0b00f7 + #x36363d31 + #xf0385d51 + #x5204bebb + #xb4ff426b + #xcdd4b497 + #xa99da7b7 + #xe9e4dbc7 + #x2d2d12f4 + #x36282426 + #x43f5a4d + #x34f4becb + #xb2fb3652 + #xe4e2b292 + #xada5b2c9 + #xe4d7cbc0 + #x44461bf4 + #x2b090826 + #xf415a51 + #x24efc7d9 + #xb4f92b3f + #xfdedb08e + #xb7aec0e4 + #xd9c4bec0 + #x545224f6 + #xde6f92f + #x18465d4a + #x1de9cee7 + #xbbfd242f + #x12f2ad8e + #xc0b7d604 + #xc6b2becd + #x5d5d2df2 + #xedcef734 + #x264b5a34 + #x9e2d7f7 + #xcb081810 + #x1beba997 + #xc6c6f41f + #xaeaecbd9 + #x616631e0 + #xd7c9f936 + #x314d4b1b + #xeddfe606 + #xe00b00ed + #x12e0aeae + #xcbdf122b + #xa9bdd7db + #x686820cb + #xd4cbf432 + #x36483809 + #xdfe6f210 + #xf402ebdb + #x2d9c2cd + #xdbfd2626 + #xb9ced9d9 + #x685804c0 + #xd9c9ef36 + #x363d2906 + #xe7f2f912 + #xf9f6e9e2 + #xf6e2e2eb + #xfb162616 + #xd4d7d4e4 + #x5634edcb + #xd7c6f239 + #x2d2f2208 + #xf7f6f60f + #xf9f0eff2 + #xf0f0fdfd + #x16201d08 + #xe6d6d2f4 + #x4116e4df + #xd2c4fd39 + #x26261f06 + #xfdf4f009 + #xf8e8dc + #xeefe01fe + #xe07faea + #xcfcdf713 + #xf700feea + #xd8f71001 + #x171e11ec + #xe3e80113 + #x5efdad4 + #xe1fa0508 + #xfcefd8 + #xdadff805 + #xfa0801ea + #xeff8f8ee + #x19201900 + #xeff1fe0c + #x3e1cfdc + #xd3fa0c10 + #xf1f1dcc1 + #xefeceff1 + #x11105f7 + #x1efdfe3 + #x1e2b2919 + #x5f7f303 + #xf5d3d4f7 + #xcdfe130e + #xeae3c2af + #x5e8dce3 + #x7100e10 + #xfee5ddee + #x2e3d3922 + #xaeee507 + #xead8e303 + #xcffe0c01 + #xdfcaada8 + #x3d6d3e1 + #x5132020 + #xf5e8eff8 + #x444f3e19 + #xecd4dd17 + #xece5e8f1 + #xcff1fcf7 + #xcbb4a6ab + #xf1d3d8df + #xc202719 + #xf5fa0100 + #x5656370c + #xbfbfe52c + #xf5eeddcf + #xbfddeef5 + #xb8aba9ab + #xe6ddddd1 + #x232915fc + #xfe081115 + #x5d56320a + #xa2b8f53b + #xfae8cfb9 + #xadcfe6f5 + #xb2b0a99b + #xefecdac1 + #x3517f1e8 + #x15323d + #x605d3710 + #x9fbbfa3e + #xf5e3cdbf + #xa6cfe3f1 + #xbfb2998b + #xfcefd6c8 + #x2ceed3e6 + #xfe2b5d5f + #x6b693907 + #xa6b9f139 + #xeae6dacf + #xb2d6dae3 + #xcaa28487 + #xf7ece8e5 + #xccdcbe8 + #x54d7d5f + #x7f6f2bf5 + #x9dabe642 + #xe8f5e3ca + #xc4d4cad3 + #xbd878096 + #xe8f80efe + #xf5cacada + #x25717f44 + #x7f6213f3 + #x849fee59 + #xf301dfb0 + #xcbc4b4ca + #xa08080ad + #xe61c34fe + #xf5d1b9bf + #x4f7f7130 + #x7f44070a + #x80a40c71 + #x1cf97 + #xc4b0a4cb + #x848097bd + #xfe4740e5 + #x7ca99af + #x5f725f35 + #x62270e2c + #x80c22e72 + #x1f1c19f + #xb49fa0d1 + #x8084adbf + #x235d32ca + #xcaf80bb + #x4f59604d + #x4220233d + #xb0ec3e5d + #xf1ddc4c8 + #xa697a2d1 + #x8b99b8b8 + #x3e5417bd + #xf89082da + #x34547159 + #x32272e2e + #xe80c3940 + #xdcd6ddfe + #x9d96a2c6 + #x9ba6b9af + #x3b3905c2 + #xdd8b9bf3 + #x2e667f4d + #x2c2b2015 + #x81a292e + #xcddffc22 + #x99949db6 + #xa4abb8ab + #x272501cb + #xd6a0b4f5 + #x447d7d34 + #x2219080e + #x111e2225 + #xcbee1334 + #x979094ab + #xa9afb6a8 + #x192201cd + #xe3bbbdea + #x607f6825 + #x3fe0123 + #x1e251e13 + #xcdf72344 + #x968e8ea6 + #xb0b2b2a2 + #x151efccb + #xfacbb9e3 + #x6b6f562b + #xdff11746 + #x372e13f1 + #xcdfc355d + #x97928da6 + #xb6b2a99d + #x1515f3cb + #x5cdbde8 + #x5b595439 + #xcf003759 + #x5029f5cd + #xc8034b78 + #x9f9b94a4 + #xb6a9a29b + #xe07eccf + #x5d3cff3 + #x444d573e + #xd61c4d52 + #x4f10cdb6 + #xc40e577d + #xada999a0 + #xada2a0a2 + #x1f8eacf + #x5e8e8f8 + #x37475034 + #xf1345042 + #x2eeeb2b6 + #xc2135469 + #xbdb89b99 + #xa49fa4ad + #xf3eee1c4 + #x1708faf5 + #x353b3929 + #x540503e + #xcd8afc6 + #xc211464f + #xd1c29992 + #xa0a2a9bb + #xeadfd3b8 + #x322301ef + #x2e22222b + #x11465442 + #xfcd1b8d6 + #xc20c3940 + #xe8cd968d + #xa8a8b6d3 + #xddcdc2b6 + #x493408ef + #x13001537 + #x1c4b593e + #xfcd1c1e3 + #xc4082e35 + #xfcd3908b + #xb0b0cbef + #xcab8bfbd + #x574013ea + #xeee61142 + #x29525629 + #xf3cdcaf3 + #xcd0c221e + #x8cf8d8e + #xb4bfe80e + #xb2b0c8ca + #x604f19dc + #xd4da0e44 + #x3552470e + #xdacad807 + #xdf100af8 + #x8c8909f + #xb9d60a20 + #xa8b9d4cd + #x6d5910c4 + #xcbd80844 + #x3e4b32f7 + #xc8d1ec19 + #xf105efdd + #xfcc2a2bb + #xcaf52222 + #xafc8d6cb + #x7252f5b6 + #xcbd30147 + #x3d3e23f1 + #xd3e3fa20 + #xf7f3e1dd + #xefcabfd8 + #xe5102715 + #xc4cfd3d3 + #x6832dcbb + #xc8cb014b + #x35321cf1 + #xeeeefe20 + #xf7eae5ec + #xecdfdfec + #x5191903 + #xd3cdd6ec + #x4410dad1 + #xc2cf0e44 + #x29251aef + #xf8eefc1c + #xf5eaeef5 + #xeff3f5f8 + #x191508f7 + #xd6c8dd07 + #x22f8e5e3 + #xbdda1935 + #x201e19ea + #xf5e6fa1a + #xffeddddd + #xf9040404 + #x906f6eb + #xcce81012 + #x9fddf + #xef0702f4 + #x171d07ea + #xeafd1014 + #xfbdfd8e6 + #xef040b0d + #xffe8da + #xdff10404 + #x90efde8 + #xfbf8eaef + #x19241900 + #xffff040b + #xf1d3dbfd + #xe807140e + #xf8efcfc6 + #xf8f1f2f2 + #x101004ff + #xfde6daf2 + #x24332e14 + #x9f8f207 + #xe2d1eb0e + #xea0b1406 + #xeddab8be + #xfde1e2eb + #xe121719 + #xf2e1e6fb + #x37453912 + #xf4e1e814 + #xdfddf2ff + #xe80407f9 + #xdbc3acbc + #xf1d8e1e8 + #xe1e291d + #xf1f1f6fd + #x4c503307 + #xc6caef2b + #xeaeae8d4 + #xddf4f9f6 + #xc6b7acba + #xe6dde6db + #x1b2b270b + #xf9040406 + #x574c2500 + #xa3c30240 + #xf4e8d3b3 + #xcae2f1fb + #xbcbaaeaf + #xebe8ddc8 + #x2e240df9 + #x4101724 + #x5a4a2407 + #x9eca1047 + #xf2ddc6ac + #xbcd8edfb + #xc1bea59c + #xf6e8d3c1 + #x2c00eff6 + #x6254147 + #x65552704 + #xa5cf1048 + #xebddccb5 + #xbad6e8f2 + #xc8b19093 + #xf9e4dad3 + #xedde2fb + #xe4a6d53 + #x7a5f20f6 + #xa0c50650 + #xeae8d4b3 + #xc6d4d8e4 + #xc199849c + #xf1eff9eb + #xf1d1e1f6 + #x2c737d3c + #x7f5809f1 + #x85b30765 + #xf4f8d39c + #xcfc8c5db + #xa88489b1 + #xf1101eef + #xead3d6e1 + #x537f6c22 + #x7f3cfb07 + #x80b1207a + #x2f9c180 + #xcab5b5df + #x8b809cc1 + #x63c30da + #xf4cdb8cf + #x6f7f571e + #x6622022c + #x80cc417f + #x7ebaf80 + #xbca3afe8 + #x808cb1c6 + #x2c5725bc + #xfbb39ad6 + #x686a5333 + #x471b1b43 + #x99f2536c + #xfbd8b1a0 + #xaa9ab3eb + #x85a0bebf + #x4a550dac + #xeb9397f4 + #x4e616645 + #x37252c3c + #xca144e50 + #xe4cfc8d3 + #xa197b7e2 + #x95aebeb5 + #x5140f9ae + #xcf87aa10 + #x416d7a3e + #x302c2524 + #xeb1e3c3a + #xd3d4e8f9 + #x9e97b1cf + #xa1b7beaf + #x412cf4b7 + #xbe95c619 + #x4c7f7422 + #x29200e17 + #xf9203030 + #xcde6060e + #x9c93a5be + #xaababcae + #x3024f4bc + #xc8afd10d + #x657f6110 + #x12070225 + #x7242c20 + #xd3f61b22 + #x9a8e97b7 + #xb1bfbaa8 + #x2924f4be + #xdfbfcd02 + #x747b5315 + #xf1f60e43 + #x242b2002 + #xd8023240 + #x978b92b7 + #xbabfb3a1 + #x251defc3 + #xefc1ca00 + #x6c6a5127 + #xdbff2e57 + #x3e2900da + #xd80e4a61 + #x998e93b5 + #xbebcac9e + #x1d0eebc8 + #xf1c1d304 + #x555e5833 + #xe21d4553 + #x4010d8c3 + #xd6205e6d + #xa19797af + #xb8b3a7a1 + #xd00eaca + #xf2d1e404 + #x475c5c30 + #xf9354a43 + #x1eebb8bf + #xd82e615a + #xafa197a7 + #xaeaca7aa + #xf9e8c5 + #xedf200 + #x45574c27 + #xe40453a + #xf4cdafcc + #xdd30533c + #xc1aa93a1 + #xa8aaacb8 + #xf9f2ddba + #x1b07f9fb + #x40413929 + #x1945473c + #xdfc3b5da + #xdf29412b + #xd4b18e9e + #xa8aeb5cc + #xf1e4cfb3 + #x3517fff9 + #x29252c39 + #x244e503c + #xdfc5bee6 + #xdb203927 + #xe8b5899c + #xaeb3c8e6 + #xddcdc6b7 + #x472507f4 + #x60b2b48 + #x325a5129 + #xdbc3c6f4 + #xdd202e1b + #xf8b7859c + #xb1c1e404 + #xc3bfcabf + #x55350ee6 + #xe8fb2951 + #x415c450b + #xc5c1d409 + #xe81e19f9 + #xfbb187a5 + #xb7d6041b + #xb5c3d3c5 + #x654509cf + #xdaf42555 + #x47512ef1 + #xb1c6eb20 + #xf812fdda + #xf2aa90ba + #xc5f41e22 + #xb7cfd8c3 + #x7343f1bc + #xd4ed1d57 + #x45431be6 + #xbada022c + #xfdfbe8d4 + #xe8afa7d4 + #xdf102719 + #xc5d6d4c8 + #x6f2edaba + #xcfe21b5e + #x3c3514e4 + #xdbed0e2e + #xf9eae6e8 + #xe4c3c5e8 + #xfd1e200b + #xd1d4d6dd + #x570ed1ca + #xc5e2245e + #x322c12e1 + #xf2f4102c + #xf4e8ebf4 + #xede1e2f4 + #x101b10fd + #xcfd1e6fb + #x2efbdfda + #xc5ef2b45 + #x27240dda + #xeff11027 + #xf6efedef + #xf8f8f6fb + #x191402f6 + #xc8d1f915 + #xdf6f2e1 + #xccfb2727 + #x1e1e07d6 + #xe4ef1225 + #xf1dcd7e0 + #xfc030807 + #x7fef0f0 + #xd903150c + #xe07ead0 + #x103f1fa + #x1517fcf0 + #xf50c0e0a + #xe7d1e0f7 + #xf8081107 + #xf3dee1 + #xec000500 + #x1107f1e5 + #xfcece3fe + #x1a251501 + #x103fe05 + #xd9ceee0c + #xf70e1500 + #xf7e0c5d5 + #xf8f1f0f3 + #x11080303 + #xf0dce303 + #x2a3a2808 + #xf7ecee0a + #xd1daf801 + #xf70c0ef3 + #xe7c7b5d0 + #xf0e1e8ee + #xc131e11 + #xe7e3f003 + #x41462800 + #xced3f11f + #xd9e7eed7 + #xf00100ec + #xd1b9b0cc + #xe1e0e8e3 + #x15252a0a + #xf0f5f803 + #x4f431af8 + #xa9c90338 + #xe5e7d3ac + #xe0f0f7f0 + #xc2b7b0c2 + #xe3e7e3d0 + #x262c1efc + #x50513 + #x533a11fe + #xa0d31a48 + #xecdabe9c + #xcce3f5f8 + #xc3bcabb2 + #xf1e7d3c3 + #x2c1507fc + #x8152131 + #x563c1501 + #xaee1214a + #xe7d1b9a0 + #xc3def1f7 + #xcab799a2 + #xf5decec9 + #x13f3f803 + #x11384d3f + #x664613fa + #xb2e01a51 + #xe1d7bea0 + #xc5d9e7ea + #xc7a38ba2 + #xeedee0da + #xf3def701 + #x2c646a33 + #x7b4601f3 + #x9ecc1a64 + #xeae5bc89 + #xcaccd5e1 + #xae8b8bb0 + #xecfa01e1 + #xe1dceef1 + #x567f6317 + #x7d2ff005 + #x80c32f7f + #xfcecac80 + #xc7b9c3e5 + #x92829cc2 + #x32817d0 + #xe5d5d5e1 + #x7a7f4d0c + #x6413f52c + #x80d94f7f + #x7e19780 + #xb9a7c0f1 + #x808cb0c5 + #x2c4a13b3 + #xeabab7e7 + #x7d714317 + #x430a0e4c + #x93006676 + #xfeca9280 + #xa79bc5fa + #x84a0bec0 + #x514ffa9e + #xda99ac03 + #x66645128 + #x2f17264c + #xc5216158 + #xe5bca5a3 + #x9b99caf5 + #x92b0c2b7 + #x5d3de59b + #xbc87bc23 + #x586f6625 + #x2e252636 + #xea2c4d41 + #xd1c2c9ce + #x959bc7e1 + #xa0b9beae + #x532adca2 + #xa992d933 + #x587f6c0e + #x2c1f1125 + #x2a3d36 + #xccd9ece8 + #x9597b7cc + #xabbcbaa9 + #x4121dea9 + #xacabea2c + #x6d7f58f8 + #x1a07012c + #xf2a382c + #xd3ee0700 + #x9390a5c0 + #xb3c2b9a5 + #x361fe1b0 + #xc2bae71e + #x7f7f48fa + #xfcf30a46 + #x2a312c0f + #xda001f23 + #x8e879bbc + #xbac3b5a0 + #x311ce0b5 + #xd5bce017 + #x7d71460e + #xe5f7255d + #x432e0ce8 + #xe0113c4a + #x8b849bbc + #xc0c2b09c + #x2a0fe0be + #xdab9e018 + #x6868511f + #xe5113c5c + #x4315dec9 + #xe328555a + #x8e899bb9 + #xc0bcac9c + #x1c03e0c5 + #xd9c2ea17 + #x5a66561f + #xfa2c414a + #x21ecb9c3 + #xe83c5d48 + #x999099b2 + #xb9b5a9a3 + #xcfce0c2 + #xe3d7f50e + #x55645118 + #x113a3c3c + #xf0c7acd0 + #xf5465125 + #xa79592ac + #xb0aeabb0 + #x3f8d9b9 + #xfcf0f805 + #x535a411a + #x1e3d3a3d + #xd0b7b2e0 + #xfa41410e + #xb9998bac + #xacaeb3c2 + #xfceeceb2 + #x1700fc00 + #x43433a2c + #x2845413d + #xccb7baea + #xf838350c + #xc99b85ac + #xacb2c2d7 + #xeedec5b2 + #x2c0c01fc + #x232c3a41 + #x3853462f + #xccb9c0f7 + #xf1312f07 + #xd79982a9 + #xaebadcf3 + #xd7cec5b5 + #x3c1c08f0 + #x51c3d4d + #x485a3c11 + #xb9b5cc0a + #xf32e1eea + #xe09780ac + #xb2d0fc0e + #xc3cccab9 + #x4f2e03d9 + #xf3133c56 + #x515325f5 + #xa2bae321 + #x2103c7 + #xdc9285ba + #xc0ec171a + #xbed3ceb7 + #x6333eec0 + #xe80a365f + #x4c410ee5 + #xa5ce0333 + #x508e8bc + #xd19397d1 + #xd90a2513 + #xc7daccbc + #x6a23d5b7 + #xdcfe366d + #x412f03de + #xcaea1836 + #xfef0e0d1 + #xcea3b5e7 + #xf71e2307 + #xd0d9ccce + #x5807cac2 + #xcef73d73 + #x3626fed7 + #xe7fa1f33 + #xf1e5e5e7 + #xd3bed1f1 + #xc1f15fa + #xced3d9ea + #x38f1d3ce + #xc9fc4564 + #x2e21face + #xe8fe1e2e + #xece8e7e7 + #xe5deeaf7 + #x131507f5 + #xc7daf505 + #x18f1e3d3 + #xd308383d + #x261cf5ca + #xdefe1e26 + #xf1ece3da + #xf5f3fafa + #x110c00f7 + #xc3e70f17 + #x5fcf0d1 + #xe70f2117 + #x1e18f1d1 + #xda03211f + #xe0d0dbee + #xfc060dfe + #x3f3ebf3 + #xf00f0c05 + #x13fad6cd + #xeeee0c + #x140ffafa + #xf0f0103 + #xd2d0ec01 + #xfe0d11f5 + #xfae4dbec + #xf905fefe + #xdfae7e7 + #xecdef00f + #x1f220dfe + #x1faf505 + #xc9dbfa01 + #x110ce7 + #xeccdc9e5 + #xf7f2f0f7 + #x8030500 + #xded9f50d + #x363718f9 + #xe0def014 + #xd0ebf3dd + #xfc0a00dd + #xd7bbc1e2 + #xe7e5ecee + #xa1a1f01 + #xe2e7f906 + #x4b390df0 + #xb8d00030 + #xdeecd9af + #xeefaf5e0 + #xc8b4bdd7 + #xe0e7e7dd + #x1d2b1ff5 + #xf2f3fa0c + #x4e2f03f2 + #xaad91844 + #xe5debd9a + #xddf0f3e9 + #xc4b6b6c8 + #xe9e7d9cd + #x29260ff3 + #x1010a21 + #x4b2805fc + #xbaec2849 + #xe2cdb19e + #xd0e9f5ee + #xc9b4a8b8 + #xf2ddcbcb + #x1d0c05fe + #xc1f2f32 + #x4e2b06fe + #xcdf3264c + #xddc9b1a3 + #xc9e4f2e9 + #xc9a698af + #xecd7d0d6 + #xfef70603 + #x244c5029 + #x5e2bfaf9 + #xc2e7265a + #xe0d2af90 + #xc8d9e4e2 + #xba9395b3 + #xe7e7e9db + #xe7f005fa + #x5075550d + #x671beb06 + #xa5db3473 + #xf0d99e80 + #xc2c6d2e2 + #x9c879fbd + #xf70dfecf + #xe4e9f0e9 + #x7a7f40fe + #x5703ec2d + #x93e7537f + #xfed08380 + #xb4b1cdf2 + #x898eb3c4 + #x1f32feb4 + #xe2d0d2ec + #x7f6e3203 + #x3bf90652 + #xa50a6e78 + #xfaba8080 + #xa3a3d400 + #x879fbfbf + #x4b3eeb9c + #xd4adc40a + #x755e390d + #x2405245e + #xd22d6e5e + #xe5a6858a + #x95a1de00 + #x93afc1b3 + #x6032d293 + #xb397d22f + #x63674e0a + #x21162b4c + #x13d5a44 + #xcfa8a6ba + #x90a6deee + #xa1b8bda8 + #x5a1fc697 + #x9a9cf044 + #x677d59f3 + #x24181a39 + #x1d3b4939 + #xc6bdcdd9 + #x90a6cfd6 + #xadbdbaa3 + #x4713c69f + #x98b10342 + #x767f4ede + #x1d050637 + #x2d364034 + #xcbd9e9f3 + #x8e9ebac2 + #xb6c1b89f + #x3b0fc9a8 + #xacc10334 + #x7f7f39dd + #x3f0064b + #x3e39341d + #xd9f00316 + #x8790a8bf + #xbdc4b69c + #x360cc9af + #xbfc4fa2b + #x7f6e34f0 + #xebee1d60 + #x503616f7 + #xe206243e + #x8087a3bf + #xc4c4b397 + #x3003cbba + #xc6bff529 + #x76653e03 + #xe7053765 + #x501fe9d7 + #xeb244452 + #x8085a1bd + #xc6bfaf97 + #x26fcd0c2 + #xc6c4fa28 + #x686a4c06 + #xf9213d55 + #x2bf2c1cb + #xf9405242 + #x83899eba + #xc2b8ac9a + #x1afad6c4 + #xcbd40321 + #x656f4c01 + #xd2d3645 + #xf5c6add6 + #x850491a + #x908c97ba + #xbbb3ada3 + #x11f9d4bf + #xdee70514 + #x65673e01 + #x1b2f3044 + #xcdafb1e5 + #x144c32fa + #x9e8c90bd + #xb6b1b3b1 + #x8f2cbb6 + #xf7f3010a + #x59533611 + #x24343647 + #xc1adbbf2 + #x144226f3 + #xa88a8cc1 + #xb1b3bfc4 + #xfce4c1b3 + #xcfc0103 + #x40403b29 + #x34423d3b + #xc1afbffc + #xd3b1ff2 + #xb38789bf + #xafb8d4db + #xe9d6bfb4 + #x1b0a05f9 + #x2436453d + #x474c3421 + #xb4acc80d + #xa3716dd + #xba8585bb + #xb1c8eef2 + #xd6d0c2b4 + #x301a01e4 + #x11304b47 + #x52471d05 + #x9faddd26 + #xf2dfeba + #xbb8285c1 + #xbde40a01 + #xcdd6c6b3 + #x4724eec9 + #x3264957 + #x4e3606f2 + #xa1c2fe37 + #x1316e2a6 + #xb68091d2 + #xd4011f03 + #xcbd9c2b6 + #x551ad7ba + #xf3184968 + #x4222f7e7 + #xc2e41a3d + #xafad4ba + #xaf8aa8e5 + #xf21822f9 + #xd2d7c1c6 + #x5001c8bd + #xe00c5276 + #x3718f0db + #xe7002437 + #xf7e9d9d4 + #xb3a3c8ee + #x81f1aee + #xd2d0c9e0 + #x34ebc9c8 + #xd40d5a71 + #x3014e9cd + #xf20a2632 + #xe9e5dedd + #xc2c1e0f0 + #x13180de9 + #xcbd2defa + #x18e5d6cb + #xd9185555 + #x2b11e2c4 + #xe90d262d + #xe5e5ddd4 + #xdbe0f3f2 + #xf0c01ee + #xcbe5fa08 + #xcf2ddc6 + #xec1a362b + #x210cdecb + #xeb132421 + #xe9e0d7cf + #xeef500f5 + #xa01fcf7 + #xd2fe0f0d + #xafeddc1 + #xfe13130d + #x1808e0db + #xf71b1d13 + #xd8d6f30f + #xa140df2 + #x1f2f2fe + #xa110508 + #xfedd3e4 + #xf0e2011f + #x1b110505 + #x250afa0c + #xd1e2fe0d + #xc1808e4 + #xf5dfe6fa + #x5030005 + #xaf5eef5 + #xdfe0061b + #x30240dfa + #x3f2f718 + #xd3f2fef2 + #xc14fed6 + #xe2cadbf7 + #xf9f5fafe + #xa0d0d01 + #xdae60812 + #x46300aee + #xd4dd002e + #xe2f9e6c3 + #x50af2d4 + #xcfc1d6f2 + #xeef2f5ee + #x19291bfa + #xe9f3030d + #x4f2700ed + #xbce01846 + #xedebc7a8 + #xf500eedf + #xc8c0cfe6 + #xf0f0e7dd + #x2c3114f3 + #xfafa0619 + #x481f00f9 + #xc8f72c4f + #xe9d3b4ad + #xe7f9f3e9 + #xccbcc3d4 + #xf5e6d8d6 + #x2c220afa + #x50c1f2c + #x431f0501 + #xe206354f + #xddc7b4b9 + #xdff5f7e9 + #xceb0b0c5 + #xf2dbd6dd + #x140f0f03 + #x1b353f2b + #x4a200103 + #xe6033357 + #xddc8b2b0 + #xd8eeeee4 + #xc3a1a8c1 + #xe9e0e4e4 + #xfc0a1400 + #x46604a14 + #x5212f311 + #xcef73f6a + #xe9cea18c + #xcfdde2e6 + #xab95abc5 + #xf0faf3da + #xf30808f3 + #x75753a00 + #x4afcf333 + #xb4fc5b7d + #xf9c58380 + #xc1c7dbf3 + #x9698b9c7 + #x141df7c0 + #xf2f3eef3 + #x7f6a27fc + #x30f00c5e + #xbc1b787c + #xf9ad8080 + #xadb9e205 + #x91a6c5c1 + #x4130e6a6 + #xe0d1df0f + #x7f592903 + #x1bfc2e71 + #xe93e7d62 + #xe6958090 + #x9cb7f00a + #x9cb9c8b4 + #x5e29ce98 + #xc1b5eb38 + #x6f5d3afe + #x18123e69 + #x1d4f6a4a + #xcf9195c1 + #x95bef7fc + #xa9c3c5a6 + #x5e14bc9a + #xa2b40854 + #x6e7148e9 + #x221b3154 + #x3e4d563f + #xc3a6b9e7 + #x96c1e9e2 + #xb7c7be9f + #x4d06bba2 + #x9ac51f57 + #x7c7f3ecf + #x200d1d4d + #x48464f3e + #xc7c3da05 + #x98bbd1ce + #xbec8bc9d + #x3f00bcad + #xa8da254d + #x7f7c27c7 + #xdf71859 + #x4f464430 + #xd6dff322 + #x93a9bcc7 + #xc5ccbc9d + #x3afabeb5 + #xbbdf1d43 + #x7f691dd4 + #xf3f3296e + #x59442b0d + #xe4f91646 + #x899ab2c8 + #xcccebb9a + #x35f5c1be + #xc3da163f + #x7f6229e9 + #xeb063f73 + #x572e00eb + #xf018385b + #x8093afc8 + #xd1cab795 + #x2cf0c7c8 + #xc1d8163c + #x76693af0 + #xf91f4867 + #x3701d4db + #x13a4d4f + #x8093abc7 + #xcfc3b091 + #x20f0cfce + #xc3e01833 + #x757543ed + #xd2c3f59 + #xd1bee2 + #x1b544824 + #x8793a2cc + #xcabcaf96 + #x18f5d4ce + #xd1ee1625 + #x7a763cee + #x1b2b3857 + #xcfb2bef2 + #x305931fc + #x91919dd6 + #xc3b9b4a2 + #x16f5d1c8 + #xe7f7121d + #x756935fc + #x202b3a5d + #xbbadc7fc + #x354b1beb + #x9a8c9ce0 + #xbcbbc0b4 + #xfedcac1 + #xfafe0f16 + #x60543712 + #x2c374156 + #xb9b0cc05 + #x2c3f12e7 + #xa1899ce0 + #xb9c1d3c7 + #xfeddc3bc + #x8060f0d + #x464a4124 + #x41433c3e + #xb2adcf16 + #x253a0cda + #xa28398db + #xb9cfe9d8 + #xebd4c1b9 + #x19140cfa + #x334a4d33 + #x52432922 + #xa1a9e230 + #x2735fabc + #xa48091d8 + #xc1e401e6 + #xdbd6c1b7 + #x331ffadf + #x27445246 + #x5433110f + #x9fb90346 + #x2b22e0a9 + #xa18096e2 + #xd60118ed + #xdadac1bb + #x4618e2ce + #x1637575e + #x461d0001 + #xbcdf204b + #x2005ceb5 + #x9d83a9f2 + #xf21d24e9 + #xddd8bec8 + #x4803cfca + #x296073 + #x3811f5f2 + #xe7032e44 + #xaeecfd3 + #x9c96c7fa + #xa2922e0 + #xddcfc3df + #x35edccd1 + #xee296e76 + #x310deddf + #x16303c + #xf5e7dae2 + #xa9b4dff7 + #x182516db + #xd6cfd6f9 + #x1de6d3d3 + #xee357362 + #x2e0ce0cf + #x11d3037 + #xede6dddd + #xc1d3f0f0 + #x19190adf + #xd4dff00c + #xcedd8ce + #xf93a5d41 + #x2905d8ce + #x6243030 + #xebe0dddf + #xdff0fcf2 + #x120c00eb + #xe2fa0511 + #xcf5d4c8 + #x6253322 + #x1dfedbe0 + #x19292722 + #xe9dadded + #xf50305f5 + #xd01fcf5 + #xf3120f0f + #x14f9cec7 + #xa0f0f16 + #x14fce7f5 + #x2e2b1912 + #xd3e40723 + #x1316fddf + #xf6ecf504 + #xc040404 + #xfadadcfb + #xdae91319 + #x201107f5 + #x16f5f616 + #xd7f30409 + #x1413f1d3 + #xe7dff002 + #xfb02ff + #xfdf1f6ff + #xd7f01311 + #x341b02e6 + #xeee6ff2a + #xe2faf1dc + #x110ce6cd + #xd5d2e9ff + #xf5f5fff3 + #xc130afb + #xddf80c0a + #x411bf8df + #xc9e11341 + #xeef0d2b9 + #x702e1d7 + #xc9cde2f6 + #xf1f5f5e2 + #x25280af5 + #xeefa040f + #x3b11f3e9 + #xc9f32c4d + #xecd7bab5 + #xfbfbe6e2 + #xc9c8d7e9 + #xf5ece4d8 + #x312704f5 + #xf8ff0e22 + #x310cfbf6 + #xe209394b + #xdfc3b7c6 + #xf1f8ebe6 + #xc9bec6da + #xf0dfdcda + #x251907fd + #x418282a + #x310ffffd + #xf10f3b4a + #xd3bebac9 + #xe9f6ebe1 + #xc3adb7ce + #xe4dae2e1 + #xf1411fb + #x2a40391b + #x3909f609 + #xe2074057 + #xd8c1adad + #xe1e9e2df + #xb0a1b4cb + #xe6ebf0dc + #x5160ff3 + #x5c5c2d04 + #x34f6f62c + #xc90a5768 + #xe6b98f88 + #xd0d7ddeb + #x9ea1bac9 + #xff05f1c6 + #x20cfdf3 + #x7f5c19fa + #x1de90e5a + #xc923736b + #xe99e8080 + #xbcc8e4ff + #x97adc6c3 + #x2818e2ad + #xf5eeec09 + #x7f4b14fd + #x7f53278 + #xf1467f55 + #xda82809c + #xaac6f60a + #xa0bec9b4 + #x4514cb9c + #xd5d2f531 + #x6d4822f8 + #x50c4675 + #x285a703e + #xbf8088ce + #xa0d00200 + #xadc9c4a1 + #x4d02b79b + #xb4c91454 + #x68592ce1 + #x11194363 + #x4a5a5a34 + #xaf88adf8 + #xa3d8fae6 + #xb9cdbe99 + #x41f1b0a3 + #xa5d8315f + #x776b23c4 + #x1914315a + #x4b505036 + #xb2a6ce11 + #xa6d3e1ce + #xc1cdb997 + #x34e7b4ad + #xadee3c5a + #x7f6b0cb5 + #xe022761 + #x464b4a2f + #xc1c4e927 + #xa5c1c9c4 + #xc8ceb799 + #x2de4b5b7 + #xbffa3750 + #x7f5affbc + #xf5fb3172 + #x484a3614 + #xd2df0743 + #x99afbcc8 + #xced0b799 + #x2ae1b9bf + #xc9f62f4b + #x7f4f04cd + #xe7094678 + #x4a3711f1 + #xe2fd2a57 + #x8da1b9cd + #xd5ceb492 + #x22ddbfc9 + #xc8f12c46 + #x755518d7 + #xf11e5072 + #x310ee7e1 + #xf823434d + #x879cb4d2 + #xd7cbad8c + #x18e1cbd2 + #xc6f52d3c + #x756425d7 + #x5284863 + #xfddacde6 + #x14434125 + #x8799abd5 + #xd3c4aa8a + #xfe6d2d3 + #xcdfb282f + #x7f6d23d5 + #x13253c61 + #xc6b7cbf5 + #x32502cf6 + #x8c92a5e6 + #xcbc1ab91 + #xee9d5d0 + #xdcff1e23 + #x7f661ee1 + #x19233e69 + #xa8afd300 + #x414811dd + #x918ca8f6 + #xc3bfb4a0 + #xce6d0cb + #xec00181e + #x735720f5 + #x1e2c4668 + #xa5b2d805 + #x403702d8 + #x9288ad00 + #xbfc4c3af + #x2ddcbc4 + #xf8051819 + #x5c4f2c07 + #x2f374354 + #xa5b0da11 + #x362ffbd0 + #x9287adfb + #xbed0d7ba + #xf3d5c6be + #x70f140c + #x4b4f3914 + #x40393139 + #x97abe628 + #x322aeeb7 + #x9282a8f5 + #xc4e4ecc4 + #xe4d2c3b9 + #x1b1807f5 + #x43504127 + #x462a1b28 + #x8db40443 + #x341dd5a3 + #x9180a5f6 + #xd3fd02cd + #xddd2beb9 + #x3113eedf + #x36484a40 + #x3e180a1b + #xa0d3234d + #x2a02c3ad + #x8c80ad02 + #xec1811cd + #xdccdbcc4 + #x3900d8d7 + #x1e3e595a + #x2f0a000a + #xcdfb3446 + #x14e6c1cd + #x8a8cc407 + #x72a14c8 + #xddc8bfda + #x2cebced8 + #xa3c6b66 + #x2305f6f3 + #xf5163439 + #xfbdacee7 + #x92a5dd02 + #x182c0ec3 + #xd8c8cef3 + #x16dfd0da + #x24a775a + #x2002e7dd + #x71e2f34 + #xecdadaec + #xaac4e9f5 + #x1e2300c4 + #xd5d2e605 + #x7e2d3d5 + #x9526d40 + #x1df8d7d5 + #x11233132 + #xe9dadff0 + #xc8e2eeee + #x1916f6ce + #xddebfb0f + #x4e9d2d0 + #x11464d27 + #x16eed2dd + #x272a2d2a + #xe6d7e600 + #xebfaf5ec + #xf05f3e2 + #xf302070e + #x9e7cbd5 + #xc22281b + #xeeee1f1 + #x3b281e1d + #xdfd5ec18 + #x20afbec + #x7fdf5f3 + #x90e090c + #xae2c9df + #xff02111d + #xcf5f300 + #x411e0c11 + #xd8f7151f + #x1b0dead3 + #xeeeffc10 + #x9030901 + #xe7d8f210 + #xd5001b09 + #x2310fbda + #xf1e90325 + #xe5fe01f7 + #x1a06dfd2 + #xe0e7f90e + #xfe06f6 + #xf7f60008 + #xdf030e01 + #x2f10f1d3 + #xd3e5153a + #xf1f9e2cb + #x13fcd7d7 + #xd3dff208 + #xf6fbfee5 + #x151506fc + #xea030406 + #x3108e9da + #xc6f12f4b + #xf1e0c6bc + #x9f4d8e2 + #xced8e9fc + #xf6f7f1d8 + #x2f1f01f7 + #xf400081b + #x2301efea + #xda0b3f49 + #xe2c8c0ca + #xf4e2e7 + #xcdcedaef + #xf2eae7d8 + #x2f1801fb + #xf9091b2c + #x1f04f9f6 + #xf21a413f + #xd0bec5d7 + #xf9f4e5e2 + #xc8c1cbe4 + #xe7e0e9dd + #x22160bfc + #x10272d28 + #x2304fb00 + #xf2184143 + #xcdbec0c6 + #xf1eee2dc + #xb9b3c1dc + #xdfe5f2dd + #x1a1d0ef2 + #x3f442813 + #x22f7f91a + #xdd185050 + #xd3b6a4a2 + #xe2dfdde2 + #xabaec0d3 + #xeef9f6ce + #x161a03ef + #x6a4b1604 + #x10ea0d4b + #xda2d6b55 + #xd89a838f + #xced2e4f4 + #xa1b4c5ca + #x100be9b6 + #xd04f400 + #x773f0901 + #xfbf23274 + #xfb4e7d47 + #xca8080a7 + #xb9d0f703 + #xa6c1c6bb + #x2f09d0a4 + #xf2e9fb23 + #x683711fe + #xf70d517c + #x2f667231 + #xaf808bd8 + #xafdc08fe + #xb3cdc1a7 + #x3afbbb9f + #xd0dd184b + #x5e4318e9 + #x622536b + #x4e665d25 + #x9980ae03 + #xb1e908e7 + #xbed0b89a + #x35e7b3a7 + #xb9ea3c5e + #x6b530eca + #x13204360 + #x4e5d5027 + #x978fcb16 + #xb9e9f2cd + #xc6ceb199 + #x28dcb3b1 + #xbc034e60 + #x7f58f7b3 + #xb113768 + #x41564c27 + #xa6aee522 + #xbbd8d8c1 + #xcbcdaf9d + #x20d5b4b9 + #xcd135058 + #x7f4be7b1 + #xf6083e78 + #x3e533f11 + #xb9c80135 + #xb1c3c8c3 + #xd2ceaf9f + #x1ad2b8c0 + #xd8134751 + #x7f3ee9c0 + #xe711517f + #x434420f4 + #xcde7234b + #xa2b3c1cb + #xd8d0ae99 + #x11d0beca + #xd70d434b + #x723ffbcb + #xee235d7c + #x3720f7e0 + #xe50e3e47 + #x95a9bcd0 + #xddcea98d + #x6d2c8d3 + #xd2094141 + #x704e08cd + #x12d536f + #x9eedce4 + #x6344122 + #x90a1b4dc + #xdccba287 + #x1d8d3da + #xd50d3c34 + #x7c5909cb + #xe27466b + #xcdc6d5f2 + #x2a4728ef + #x8f99b1ee + #xd5c5a188 + #x1dfd8d8 + #xe010322a + #x7f5904d0 + #x11224472 + #xa6b9ddfe + #x414109cd + #x8f90b606 + #xcec3a690 + #x3e0d8d3 + #xec0e2823 + #x7f4e04df + #x15284e77 + #x9cbbe203 + #x462ff6c3 + #x8b8bc116 + #xcac6b39c + #xddd3cd + #xf40d2220 + #x6f4911ef + #x2235506b + #x9fbbe409 + #x3c23eebe + #x8a8bc81a + #xc6d0c5a6 + #xf4d8cec5 + #x132018 + #x5e4b20fe + #x34394353 + #x97b6ee1f + #x3720e4ac + #x888bc513 + #xcbe0d7ac + #xe7d3cac1 + #x111a1806 + #x56502c0e + #x3c2c2a41 + #x87b90639 + #x3716ce95 + #x8787be10 + #xdaf6e7af + #xe0d0c5c1 + #x251603f2 + #x51503527 + #x34181a35 + #x8ad32847 + #x32feb895 + #x8080c016 + #xee0ef6b3 + #xdfcbc0c8 + #x2d06ece9 + #x41494641 + #x220b1128 + #xaefb3a41 + #x1be0b6b6 + #x8087d01b + #x622fcaf + #xdfc6c0d8 + #x27f1dde5 + #x2d4c5e53 + #x18080810 + #xdf183a32 + #xcec6dd + #x839ce515 + #x1b2cfbac + #xdac3cdee + #x13e0dae5 + #x205b7251 + #x1503f6f6 + #x122342c + #xeccedaf4 + #x97bbef04 + #x2728f1ab + #xd3cde003 + #x1dddadf + #x2368723e + #x13f7e0e7 + #x1325342c + #xe4d2e5fc + #xb6d7eff6 + #x251de7b4 + #xd7e0f70e + #xfee0d5d7 + #x2c635b27 + #xbe9d5ea + #x252a342a + #xe2d5ec0e + #xd8eaecee + #x1b10e5ca + #xe7f60411 + #x1dfced8 + #x2a493a1d + #x3e0daf7 + #x372d2c22 + #xdcd8fb28 + #xf9fcefea + #xd03ece7 + #xfe030b0e + #xfed5cde9 + #x1020251b + #x3eaecfe + #x391f1818 + #xd7df0939 + #xe08f4e5 + #x3fef6fe + #xd060b09 + #xf6cdd2fb + #xf4031b1b + #xbf9fcf9 + #x2c0b0813 + #xe80d12fd + #x1afdddd3 + #xedf7081c + #x70a0cf8 + #xe2e8050f + #xeb1a18f8 + #x2208e3ca + #xcaed1d34 + #xf305f7da + #x17f5d7da + #xe5f20518 + #x20a05eb + #xfd000705 + #xf5100cfd + #x2400dfd3 + #xc3f83240 + #xf8f0d5bf + #xfebd5e5 + #xddebff12 + #xfd05f7dd + #x1f1404fd + #xf8070510 + #x1df8e0e2 + #xd30f4545 + #xe8d3c7c7 + #x5e8ddeb + #xd8e2f207 + #xf8f8ebd8 + #x2f1400fb + #xf804142c + #x14faedef + #xf5254a3a + #xd3c3cdda + #xffeae3e5 + #xd2d5e3fb + #xefedeadb + #x2a1207fd + #x2172834 + #x15fff5f5 + #x42a4434 + #xcac3d0d8 + #xfaeae3db + #xc5c7d8f3 + #xe3ebf0db + #x241a0cf5 + #x22302c27 + #x17fbf808 + #xfb27473a + #xcdc0bdbb + #xf2e3dfdb + #xb7bdd3eb + #xe8f8f5d0 + #x251f05ed + #x4d3c1c18 + #xcf20832 + #xf3345a40 + #xcfa69da5 + #xdfd8e3e8 + #xadbdcfdf + #xff07edbd + #x2214f8f5 + #x64340f15 + #xf8f72d62 + #xf526d37 + #xc0828ab3 + #xcad7f5f5 + #xafc3cac8 + #x1d08d8ad + #xdfbfd14 + #x612c0f10 + #xf00f527a + #x406f6c22 + #xa28095e2 + #xbde20af5 + #xbacdc3b3 + #x2cf8c2a8 + #xebef183c + #x553012fb + #xff2a6171 + #x62755915 + #x8880b30c + #xc0f30fe0 + #xc5d0b8a5 + #x28e3b5ad + #xd3fd3f55 + #x5d3d08db + #x12325564 + #x5d694818 + #x8086d31a + #xcbfaffc5 + #xcfcdaba3 + #x1cd5b2b7 + #xd217595a + #x7240efbf + #x12274869 + #x4a5d451f + #x8da3e81c + #xcfede7b7 + #xd3c8a6a6 + #x12cfb5bf + #xe02a5f55 + #x7d35d7b7 + #xff184a7c + #x485f4412 + #xa3bb0028 + #xc8d8d5ba + #xd8c8a8ab + #xccdbac5 + #xed2f5c4d + #x7725d3c0 + #xef1c5a7f + #x57552cf8 + #xb8d81f40 + #xb7c3cbc3 + #xddcbaaa6 + #x4cbbfcd + #xef2a5747 + #x6922dfcb + #xf32c657f + #x553705e3 + #xd2003c47 + #xa8b7c7cb + #xe3cda69a + #xf8cdcada + #xea27543d + #x652fedcf + #x5355f77 + #x2d05e5e3 + #xf52a4027 + #x9dafc0d5 + #xe3caa090 + #xf3d2d7e2 + #xeb274f32 + #x723ff2cf + #x12305272 + #xebddddf2 + #x1f442aef + #x98a5bfeb + #xdfc39a8d + #xf3dadfe3 + #xf0284427 + #x7f44efcf + #x14284f7c + #xb8cae3fd + #x3f4007c2 + #x939ac50a + #xd8c09b90 + #xfae0e0e0 + #xf8243724 + #x7f3dedd8 + #x102c597f + #xaacbeaff + #x452cebb2 + #x8b96d322 + #xd3c2a596 + #xfae2ddda + #xfb1f3222 + #x7738f8e3 + #x18375f7f + #xafcbea02 + #x3d18e0b0 + #x8698e22c + #xd2cab39a + #xf5ddd8d0 + #x21f2f1d + #x693d07f0 + #x2a3d556d + #xa8c3ed10 + #x3514d8a3 + #x859de728 + #xd5dac29d + #xeadad0cb + #xd222810 + #x624412fd + #x3735425c + #x93c3022c + #x350fc588 + #x859ae024 + #xdfebd0a0 + #xe3d5caca + #x1d2017ff + #x61471d12 + #x32223250 + #x8bd8243d + #x32fbaf80 + #x8092dd28 + #xf000dba2 + #xe0cfc5cf + #x281502f2 + #x5747302d + #x20152847 + #xa5003f3c + #x20dba695 + #x808ee72d + #x814e3a0 + #xe0cac5db + #x25fff0ed + #x484d4d44 + #x100f1f34 + #xda20422c + #x4c7bac5 + #x809df828 + #x1f22e59a + #xdbc8cdef + #x12eae7eb + #x3d5f6748 + #xc0a0c1a + #x72c3720 + #xebc5d7eb + #x88b80017 + #x2f25df98 + #xd3cddf04 + #xffdfe3e5 + #x3f72713a + #xdfff204 + #x1c2c3220 + #xe0d2eaff + #xa5d2fdff + #x341dd59e + #xd3dbf315 + #xf7dddfdd + #x4875622a + #x8ebdf00 + #x242d3424 + #xddd8f310 + #xc7e3f3f2 + #x2c10d2b3 + #xdfef041c + #xf8dbd8db + #x4864481f + #xffdfdb08 + #x3032321f + #xdadd0028 + #xe5edf0eb + #x1d04dbd2 + #xf2fd0c18 + #xf7d3d3e7 + #x3742341d + #xf8e2e70c + #x342d2715 + #xd7e81235 + #xf7efe3 + #xcfdeff5 + #x4050d0f + #xebcddffd + #x14272a17 + #x2f3f3fd + #x1d171714 + #xd7f51f32 + #x1200efdd + #xfbff0f + #xd080f08 + #xe0cbed10 + #xf818270d + #xf02f7e8 + #xff0d18 + #x1a03d6 + #x14f3dde0 + #xf8061b26 + #xd1709f6 + #xed04150d + #x112511f3 + #x1ff9d4df + #xc6093c3b + #x307eac4 + #xfebddeb + #xf3031823 + #xd14feed + #x90d0f07 + #xd150a07 + #x17f2daeb + #xdc1b4a3c + #xf9ebd4c4 + #x6e5e2f3 + #xebfb111d + #xa09f2e4 + #x23140904 + #x6071225 + #xff0e7f6 + #x335036 + #xe4d4d6dd + #xfee5eaee + #xe4ee0614 + #xfbebe2 + #x29140a03 + #x10f2839 + #xffbf5f9 + #x1d3e492d + #xd4d1ddea + #xfbe8eae2 + #xd9e0f90c + #xf3f6eee0 + #x281a0dfc + #x15263437 + #x1200f901 + #x1f3b442e + #xd2d2d9dd + #xf8e8e5da + #xccd6f004 + #xf200f5da + #x2b220af2 + #x36342d2d + #xdfb041f + #x183c4c31 + #xd6c1bec9 + #xede2e5e2 + #xc1cfeaf8 + #xcf2cc + #x301d00f2 + #x4f301d29 + #xfefe234c + #x28525b2d + #xc69ea8d1 + #xdae0f3ed + #xbecfe0e4 + #x140de2be + #x260dfe06 + #x52261a29 + #xf8154f6c + #x536e5e1b + #xa580aaf6 + #xceed09ed + #xc6d2d2cb + #x23feccb8 + #xc011428 + #x4c281d1b + #x4336871 + #x777a4f0f + #x8380c41f + #xcf0114d7 + #xd1d4c3ba + #x23eabebb + #xf00c3b45 + #x503314fb + #x18426566 + #x7a713f11 + #x8089e02b + #xdf0d09bb + #xdacfb5b5 + #x18dabbc4 + #xea285a50 + #x6134f9d9 + #x1d3c5a69 + #x6b653c1a + #x80a5f528 + #xea07eea8 + #xdfc9adbd + #xad1bdce + #xf841684d + #x6e26ddc9 + #x12305a7c + #x68613c17 + #x96bd0631 + #xe5f2d9a8 + #xe0c6afc3 + #xccc0d2 + #x74a6844 + #x6812d1cf + #x42e687f + #x795e2d03 + #xaad6204c + #xd4ddcfb2 + #xe5cbb3c0 + #xf9cbc6da + #xc49653e + #x5a0ad7dc + #x4376f7f + #x7f490dee + #xc3fb3c5b + #xc0cfcebd + #xeaceb3b3 + #xf2cecfe4 + #xa456136 + #x5515e4e0 + #x12416c7c + #x5d1feeeb + #xe7264741 + #xb2c4cbc8 + #xebccada5 + #xebd2dcee + #x9475b2b + #x6125e8df + #x203f6177 + #x17f5e4f9 + #x14443309 + #xa8b8c9e0 + #xeac6a49e + #xebdae7f3 + #xc475022 + #x742de5dc + #x1f375e7f + #xdddfea04 + #x3c450dd2 + #x9fadd104 + #xe4be9f9c + #xf3e4ebf2 + #x113f441d + #x7a29e4e0 + #x1736667f + #xc8ddf204 + #x4c30edbb + #x94a8e528 + #xddbda49c + #xf9eaebeb + #xf363e1f + #x7428ebe8 + #x1a41717f + #xcedff203 + #x451adfba + #x8eaffc39 + #xdcc3af9a + #xf8eae7e5 + #x11333b1d + #x6b2bf9f3 + #x28496f7f + #xcbd7f00c + #x370dd6af + #x8cb80739 + #xdfd1ba99 + #xf3e5dfdf + #x17333715 + #x663404fc + #x36446076 + #xb5d20023 + #x3307c391 + #x8ebb0633 + #xeae0c39a + #xeee0d7dc + #x22332909 + #x66370c0c + #x34344f6c + #xa4e22037 + #x31f6a880 + #x8bb30134 + #xf8f2cb9c + #xebdad1e0 + #x2b2817fe + #x613b1d22 + #x25254566 + #xb8063b39 + #x25d99c86 + #x82ac0439 + #xc01d19a + #xe7d4cfea + #x291506f6 + #x57423937 + #x15203f58 + #xee26412b + #xac1acb5 + #x80b21237 + #x2212d493 + #xdfcfd6fb + #x1a01fbf2 + #x4f585a42 + #x121d2e41 + #x2236371f + #xedc1cee8 + #x85c91b23 + #x361bd18c + #xd9d2e40f + #x7f2f5eb + #x52716b3c + #x1411112b + #x37342e1b + #xdcd1eb06 + #x9ee01407 + #x3e18c991 + #xd6ddf522 + #xfbebf0e4 + #x607f662d + #x11fbf822 + #x36332e20 + #xdae2fb14 + #xbeed06f5 + #x390cc6a5 + #xddeb062d + #xf8e8e8e0 + #x68745222 + #x6e8ed25 + #x3637311d + #xdcea0723 + #xd9f0fced + #x2bfeccc4 + #xeefb112b + #xf6e0e4e8 + #x5b5b3f1d + #xfbe5f228 + #x393b2d15 + #xdcf21733 + #xeef3f8e8 + #x1af8e0e7 + #x61422 + #xedd9e8f9 + #x3e423618 + #xfceef81b + #x2e2e230f + #xe0032329 + #x3f9f3e0 + #xafbfb07 + #xc0f1414 + #xe0ddfb0c + #x1f34300a + #x9fcf300 + #x9171f17 + #xe8142512 + #x11feeddd + #x4000f1d + #x1114120a + #xd9e70d17 + #xc3028fb + #x1504eae7 + #xe5042023 + #x608dfb6 + #xffe2d8e8 + #xf7091d1b + #xe0cf6ee + #xf60b0c05 + #x180ff7ea + #x3d4caf6 + #xe821412c + #xfff0d3bf + #xf9dedeee + #xf3051b18 + #xe05edea + #x80c0603 + #x9030206 + #xfcd8d8f9 + #x9344424 + #xedd8d1db + #xf0dbe4ee + #xebfc1412 + #x8fae5e4 + #x170c0302 + #xfc001724 + #xf9e2e8f9 + #x2c43401b + #xd9d1def4 + #xebdee4e1 + #xe1f00b0b + #xfaf3e5e1 + #x1a0e05fc + #x2142c2e + #xfff1f1f9 + #x353e3418 + #xd1d4e1f4 + #xebdfdcd4 + #xd4e50305 + #xf4f6e8d9 + #x1e1502f0 + #x1a262f2b + #x2f4f608 + #x2c3a351d + #xd3cdd1e5 + #xe5dcd9d4 + #xcadefafc + #xfa02e7cd + #x2715f7eb + #x32272429 + #xf9f40c2c + #x2f413e1a + #xcab0bce7 + #xdbdbe4de + #xc4d8f0eb + #xb05dcc2 + #x2609f3f6 + #x381b1d2e + #xf108354d + #x4d58410b + #xa98cb908 + #xd0e7f7dc + #xc5d4dfd6 + #x17fccdbc + #x14ffff0e + #x32171d26 + #xfd29565b + #x736535ff + #x8080cd2e + #xd3fd05c8 + #xcdd1cbc4 + #x17e8c1bf + #xfd062027 + #x351e180c + #x14435f56 + #x7f622703 + #x8088e73d + #xe20ffda7 + #xd4c8b8bc + #xcd6bbc7 + #xf4244438 + #x442302ea + #x20435858 + #x7456260f + #x80a1f93a + #xf10fe591 + #xd6beadc1 + #xffcabbcd + #x2415938 + #x4f15e4d8 + #x18355668 + #x74522b12 + #x85b80640 + #xf3fdcb8c + #xd4b8afcb + #xf1c5bed3 + #x12525e2f + #x4cffced9 + #xc326479 + #x7f522105 + #x98cd1a58 + #xe5e7bf94 + #xd6bcb6cd + #xe7c2c2d9 + #x1d555e29 + #x3df0cde5 + #xc3d7079 + #x7f4108f3 + #xaded346b + #xd0d4bb9e + #xdbc1b9c4 + #xdfc1cbe2 + #x1e535b21 + #x35f4d8eb + #x18476e6d + #x651eebee + #xce15415b + #xbecabcac + #xdfc2b3b3 + #xdec7d6eb + #x1d555518 + #x3e02deea + #x21446265 + #x27f7def9 + #xfc353221 + #xb2bfbcc4 + #xe1bba7a7 + #xdfd1e2f1 + #x20554a0f + #x520bd9e5 + #x1d3a5e70 + #xeadfe403 + #x293a0ee5 + #xa6b3c5eb + #xdeb5a1a1 + #xe5deeaf3 + #x214d3d09 + #x5c0bd8e7 + #x1437687f + #xd1dcee02 + #x4026eac5 + #x98addc17 + #xd8b0a19d + #xebe7edf1 + #x20433509 + #x5b08dbeb + #x113e767f + #xd8dfeefc + #x3d0bd6c2 + #x8eb6fa32 + #xd3b3a494 + #xf0eaebea + #x1a3b340c + #x530be5f1 + #x1e4a797f + #xd9d9e800 + #x2efccbbb + #x8cc50f37 + #xd4bca98c + #xf0e8e5e4 + #x1a3a3109 + #x5212edf6 + #x2e4a6e79 + #xc4d0f012 + #x26f4bba0 + #x91ce1432 + #xdecaac8b + #xede2dce1 + #x213a2702 + #x531af600 + #x313e5f71 + #xafd80927 + #x24e5a183 + #x92cb0f2f + #xebd8b28e + #xeadbd6e4 + #x293218f9 + #x521d0311 + #x212f566d + #xbef7272e + #x18c78e88 + #x8bc51134 + #xfce5b68c + #xe4d4d3eb + #x271e08f3 + #x4a261d26 + #x12275064 + #xf61b3221 + #xffac97b3 + #x82c71a31 + #xcf3bb85 + #xdcd0d6f7 + #x1b0bfded + #x473b3b31 + #xe244655 + #x2f2f2711 + #xe1a9b8ed + #x82d6211d + #x21ffb980 + #xd3cddf0b + #x9faf7e7 + #x4d55502f + #x151e2f41 + #x472e1a0f + #xcebedc0e + #x94e81a00 + #x3100b380 + #xd0d1ee20 + #xfaf3f1df + #x5b6a5221 + #x150b1235 + #x3d261815 + #xced6f115 + #xb0f409e8 + #x31f7ad8c + #xd6df002f + #xf3edeadb + #x686d4714 + #x6f1ff34 + #x2f291e15 + #xd4e4fd1b + #xcaf3fadf + #x26e8b3aa + #xe4f00f34 + #xeee5e2de + #x675e380e + #xf6e4fc38 + #x322f1e0c + #xd8ed0e27 + #xdbf0f3dc + #x17e2c5cb + #xf3fd152c + #xe5dce2ea + #x524a3108 + #xf0e5fd31 + #x352e1803 + #xdcfc1a26 + #xe8f0edd9 + #x9e7e2ea + #xff06141d + #xd9dbeef9 + #x353d2cff + #xf6edf91a + #x211e1405 + #xe80e1706 + #xf6f1e5d8 + #xfff4ff02 + #x60c0c0c + #xd4e80003 + #x23321eee + #xede5ff + #xfd111b12 + #xf71a0be1 + #xf1dfd9 + #xfc001411 + #xb0f0600 + #xd6f70e08 + #x1b2c0ee1 + #x8e7d3ee + #xe20c2720 + #x11f5d5d3 + #xf5dddffb + #x1162213 + #x1302f1f4 + #x710080d + #x1901f1f5 + #xe9c6e211 + #x2d41411d + #xe3d9ec + #xefdfe5f8 + #xfb112010 + #xefaecf1 + #xe0d070d + #x801080d + #xe9d5ee08 + #x454a3b13 + #xe9d7e50b + #xe9e0e8ef + #xf40a1c0a + #x5f2e9eb + #x160e0708 + #xe2523 + #xefe8f700 + #x514a300e + #xdddcf116 + #xe8e0e0df + #xe8011402 + #xfdf5ebe5 + #x1a1304fe + #xe253328 + #xfaf2f701 + #x443f2c11 + #xdddce90a + #xe5ddd9da + #xddf80dfd + #xfde9da + #x2513fbf4 + #x252c302a + #xfaf40219 + #x393e3213 + #xd7c9d902 + #xdfdcdddf + #xd5f104f2 + #xd01e0cf + #x290bf2f8 + #x2f252a33 + #xf5012238 + #x474a330a + #xbba8d31a + #xd7e5eedd + #xd2e9f4e2 + #x17fbd5c7 + #x1d01f80b + #x291d2d33 + #xfb204848 + #x665529fd + #x9292e33f + #xdcfbfbca + #xd3dfdcd0 + #x19eccac7 + #xb051120 + #x261f2922 + #x11415a48 + #x78531afe + #x8095fb57 + #xeb10f5a7 + #xd6d2c6c7 + #xddcc6cd + #x41f322d + #x30221602 + #x284d5848 + #x7548190d + #x80aa0d58 + #x16dc87 + #xd7c4b8cd + #xfdd2c7d6 + #x10414b2f + #x3c17f7ee + #x29445757 + #x73452219 + #x80be195d + #x707c080 + #xd3bbbada + #xeecaccdc + #x26575728 + #x3bfeddee + #x1f3f6167 + #x7c4b2211 + #x93d2256f + #xfdefaf83 + #xd0bac1e0 + #xe3c6d0e0 + #x36605720 + #x2ae9d5fa + #x19476f69 + #x7f440efe + #xa5eb3b7f + #xe8dcae8f + #xd0c0c9dc + #xddc4d6e5 + #x3c64551a + #x1de5d901 + #x2253705d + #x6426f2f7 + #xc1104b75 + #xd6d0ae9c + #xd6c3c6cd + #xd9c9ddec + #x3e675110 + #x22efdd00 + #x2c546753 + #x2900e501 + #xee304442 + #xc7c6afb2 + #xdac0b8be + #xd9d2e9f4 + #x3f664505 + #x33fadffb + #x294a635d + #xeee5e90b + #x1f3b2201 + #xbabbb8dc + #xdab7acb2 + #xdfe0f4f8 + #x3f5d36fe + #x42fddcfb + #x1c426c72 + #xd3dff50a + #x3b28f8dc + #xabb5d20b + #xd5b1a8a8 + #xe8ecfaf7 + #x3b512dfe + #x42f8dd00 + #x16487c7f + #xdce5f500 + #x3c0bdfd6 + #x9cbdf42f + #xcdb1a89c + #xeff2faf1 + #x35472c02 + #x3cf7e204 + #x1f557f7f + #xe2e2ec00 + #x2af7d3d3 + #x99d21439 + #xcdb7a58f + #xf2f2f4eb + #x30442c04 + #x3cfee905 + #x305b7f79 + #xcfd6ee0e + #x1decc4b8 + #xa1e32236 + #xd5c0a489 + #xf4eeece8 + #x32442802 + #x4105ef07 + #x36547673 + #xb7d70122 + #x1addab99 + #xa7e92032 + #xe2caa48a + #xf1e8e6e9 + #x353e1d00 + #x420af811 + #x2c476d72 + #xc0ef1f2c + #x13c39398 + #xa5e52036 + #xefd5aa8d + #xebe0e5f1 + #x362f10fa + #x3e130e23 + #x1d3f696c + #xf4162f23 + #xfba495c3 + #x99e52835 + #xe0ac86 + #xe2d9e6fe + #x2c1c05f2 + #x3c262a30 + #x193c605e + #x2f2d2813 + #xd999b2fe + #x95ef2f23 + #x11e9ab80 + #xd9d5ec0e + #x1c0b00ec + #x45444232 + #x1c364d50 + #x482f170d + #xc3aeda25 + #xa1002902 + #x20eca180 + #xd6d6fa23 + #xa02fae6 + #x585e4a25 + #x1d263345 + #x39221011 + #xc4ccf428 + #xba0814e8 + #x28e59980 + #xd7df0a35 + #xfefbf2e2 + #x6c6a4214 + #x130d1f47 + #x251f1416 + #xd2e20123 + #xd20500dc + #x22da9e9c + #xe0ee1a3e + #xf5f2e9e0 + #x7266390a + #xfef8174d + #x28251c11 + #xdaeb0d2a + #xe2fdf2dc + #x14d5b1bd + #xee00263b + #xece9e6e8 + #x66583204 + #xefef174d + #x36291905 + #xe0f81c32 + #xe9f7ebda + #x7dacfd7 + #xfb0b262c + #xe2e3eef4 + #x504b2cfb + #xeeee103c + #x33221301 + #xeb0a1f22 + #xeff4e3da + #xfdebecec + #x5101d19 + #xdaecfd00 + #x3e4120ee + #xf5eb0025 + #x1d19140a + #xfe140bfb + #xf8f1dfdf + #xfd0007fe + #xb100e0a + #xe2fe0a07 + #x33300be2 + #xfadde914 + #xd1c2317 + #xd13f5d9 + #xfeeedce6 + #x10e170b + #x100b0500 + #xef0e1008 + #x2f20f8dd + #xfad0da0d + #xb263520 + #x9dfe211 + #xf3dfeb0b + #xf24240e + #x11f9f4fd + #x15110f1b + #xefcf908 + #xd2d5061d + #x61543906 + #xf6dbf127 + #xede2ed00 + #xb232308 + #x9f4f3f9 + #x17111117 + #x60b1417 + #xdee5050c + #x614f2e02 + #xe5df0236 + #xe8e1e8f0 + #x21d2000 + #xf3f1f3 + #x1b120e0e + #xb242d23 + #xedf40002 + #x54452603 + #xe4e8052b + #xe5dedee5 + #xf61518fa + #xf9f0e8 + #x23140503 + #x2036342a + #xf6f6000c + #x423c2709 + #xe4dff91e + #xe1d9dee7 + #xeb0e0ff4 + #xbfde7db + #x2a0ef902 + #x2e333333 + #xf6fd1527 + #x45422a08 + #xd2c6f029 + #xdedfe8e7 + #xe50503ea + #x17fadcd2 + #x2402f90f + #x2b2d393c + #xfa173739 + #x5a4b24ff + #xaaaefa48 + #xe1f3f4d5 + #xe4f9f0dc + #x18eed2cf + #x15000920 + #x262e3c31 + #xf3c4f3a + #x6c4815fc + #x84ab1263 + #xf109eeae + #xe1e5d6d4 + #xee2cfd2 + #xe14262b + #x2a30301b + #x2a51543a + #x6a3c0f0b + #x80bc276c + #x914d487 + #xdbd1c5d8 + #xffd8d2d8 + #x1a34402d + #x34261108 + #x344f5446 + #x63391a1a + #x80cf3170 + #x1809b480 + #xd4c3c3ea + #xf0d2d6de + #x33524e26 + #x340bf303 + #x304c5d57 + #x6742211b + #x92df3a7f + #x15f0a180 + #xccbfcff7 + #xe4ccdbe2 + #x4863511d + #x24f1e40e + #x2d556d5a + #x6c43170f + #xa2f34c7f + #xd99c83 + #xccc5d8f6 + #xdcccdfe4 + #x526c4f14 + #x11e5e718 + #x3163724c + #x582e0006 + #xba115d7f + #xebce9e90 + #xd1c9d5e7 + #xd8d1e8e8 + #x58704908 + #xfebee1b + #x37636740 + #x2308f10b + #xe231584e + #xdcc39fa7 + #xd5c8c8d5 + #xd6d9f1ee + #x5b703dfd + #x1bf3ee1a + #x34576046 + #xeaebf415 + #x1440390f + #xcebaa7ce + #xd6bfbac6 + #xd9e7fcf4 + #x5e6931f6 + #x29f4eb1b + #x2a4f675d + #xd1e50015 + #x36310ee8 + #xbfb4c000 + #xd1b9b3ba + #xe2f305f6 + #x5b5b29f6 + #x2deee820 + #x23557e70 + #xd9ed0209 + #x3a14f0e1 + #xadbcea2b + #xccb6aea8 + #xedfc09f4 + #x525124fa + #x2aedeb21 + #x29647f76 + #xe4ebf602 + #x2af9e1e1 + #xa7d4143d + #xc9b9a898 + #xf6ff05ed + #x49492400 + #x29f1f01e + #x3a727f70 + #xd6dff00c + #x18ebd2cb + #xaeee2a3c + #xcfbc9f8d + #xf9fcfdea + #x48492403 + #x2df9f41d + #x46707f6c + #xbcd9fd21 + #x11dcb9aa + #xbcfd2d34 + #xd8bf998d + #xf7f4f7ea + #x49461e03 + #x31fdfc23 + #x3f647f6c + #xbceb1a2d + #xbc29fa1 + #xbfff2d36 + #xe4c59b92 + #xf3f0f4f1 + #x493a1700 + #x3005092e + #x2e5a7c6c + #xe50f2d27 + #xf4a19bc8 + #xb9ff3437 + #xf1cfa18f + #xeae8f6fd + #x40290efc + #x2d142039 + #x295a7861 + #x1e2b2917 + #xd192b405 + #xb3063c27 + #x2dba183 + #xe1e2fc0e + #x301b06f4 + #x3630363a + #x2e586952 + #x372e180f + #xb49fdc2d + #xb7143606 + #x14de9580 + #xdce10623 + #x201100ed + #x4c4f4331 + #x304b5149 + #x29210f15 + #xb3c0fa2e + #xcc1a1ee5 + #x1ed88980 + #xdce81736 + #x1208f7e7 + #x69664321 + #x232e3a4e + #x1117141b + #xc5db0823 + #xe21403d8 + #x1dcb8996 + #xe1f62942 + #x5ffeee5 + #x796a3a12 + #xc12305a + #x111b1d17 + #xd9eb1127 + #xf008f1db + #xfc399b4 + #xea063742 + #xfaf4ebe8 + #x76613106 + #xf9032e60 + #x27231d0c + #xe2f72037 + #xf4fdeae1 + #xffc9b6ce + #xf6173d37 + #xeeedeef0 + #x67572bff + #xf1ff2b58 + #x34231703 + #xeb092737 + #xf6f9e5df + #xf7dbd5df + #x31d3626 + #xe7f1fafc + #x574e21f3 + #xf3f71d45 + #x291d1405 + #xfc151e20 + #xf9f3dfe2 + #xf9f6f1ee + #xc1b2614 + #xeafd0506 + #x4c400fe7 + #xf3ea0934 + #x1d1b1d0e + #xf110505 + #xfcebdcf0 + #x30c08ff + #x12111108 + #xf90e0e0f + #x4027f7e4 + #xead8fc2b + #x272b2d15 + #x1800edf7 + #xfde7dffd + #xc1d180b + #x14080502 + #x9171115 + #x3311e8e8 + #xdfcbf72a + #x3c3f3a17 + #xefda0342 + #xe9dff509 + #x1b2b2106 + #x3f4f803 + #x150f191b + #xfefa0310 + #xc8f21913 + #x604f21e3 + #xe5e20f46 + #xe5ddeffa + #x162a1ffe + #xfbf1f5fe + #x16101813 + #x6131818 + #xdcfa0c06 + #x544218e9 + #xe0ec183f + #xdfd9e6ec + #xd2718f5 + #xfaf2f1f4 + #x1c120f09 + #x182e2a21 + #xeefb0003 + #x433616f5 + #xe5ee0f2e + #xdad4e2e9 + #x41e0fee + #x1f7e9e8 + #x220c0104 + #x2b372e2b + #xf1f80615 + #x40361bfd + #xdddc042d + #xd7d6e8ec + #xfd1504e8 + #xcf5dfdc + #x1f00fb0d + #x2e343636 + #xf4092128 + #x4e3c19f8 + #xbfc70943 + #xdae6f1e0 + #xf709f5df + #x10eed6d7 + #x12f8061c + #x27364034 + #x42a392d + #x5d390df7 + #x9ac11e5d + #xecfdecbb + #xf1f8e2d9 + #xae3d1d7 + #x9041c28 + #x283a3d24 + #x2548422a + #x5a2d0603 + #x83d03367 + #x709d08e + #xe6e0d0df + #xfbdad3d9 + #x13213328 + #x31362713 + #x3a514531 + #x4b280d18 + #x85e33f67 + #x1b00aa80 + #xd6cacaf2 + #xeed4d7dc + #x2d40401f + #x311c0710 + #x3c514e40 + #x48311b1f + #x92f14872 + #x1ce58f80 + #xc8bfd406 + #xe3d1dddc + #x49584516 + #x1ffdf41c + #x36575d45 + #x4e3a1816 + #xa0fd547e + #xccb8880 + #xc4c4e20c + #xdad1e2da + #x5b66430a + #x9e9f42a + #x3a646339 + #x462b060d + #xb2126172 + #xf5bc8882 + #xc8cee501 + #xd3d4e5da + #x666c3dfe + #xfde8fb30 + #x43695a2a + #x220af713 + #xd6336146 + #xe3b38994 + #xd1d0daec + #xcedcece0 + #x6d6d34f1 + #x3eefe34 + #x435d4f2b + #xf2effb1e + #x749480f + #xd6aa8fb8 + #xd4cacbda + #xd3e8f8e8 + #x706627e9 + #xfeefb37 + #x3651553f + #xd9e9071e + #x2d3f1fe6 + #xc5a4a9eb + #xd0c1c1cb + #xdcf703ee + #x6d5a1ce8 + #x13e8f73d + #x2b546a54 + #xdff20710 + #x361efbdf + #xb2acd71c + #xc7bbb8b9 + #xe8000aeb + #x644c16ee + #x12e5fa3f + #x31697f5b + #xebf4f803 + #x25fee9e2 + #xa9c50936 + #xc4b8aca4 + #xf20609e5 + #x5a4516f5 + #x10e8fe3a + #x437c7f58 + #xe0e6eb09 + #x10ecddd1 + #xb0e92836 + #xc7b89e95 + #xfa0601e0 + #x544218fd + #x13ecfe33 + #x517f7f55 + #xc4d9f21c + #x6dfc4ad + #xc403312e + #xcdb59292 + #xfb01fbe2 + #x52401801 + #x18f10031 + #x51797f58 + #xb9e20d2d + #xfec5a79d + #xd00c312d + #xd4b28f98 + #xf5f8f7e8 + #x52391500 + #x19f7093a + #x46727f5b + #xd704242b + #xe9a39db9 + #xd00c362d + #xddb8949b + #xeeeff7f2 + #x4b2b0ffb + #x19041c45 + #x3c707e54 + #xc24251c + #xc48eb2f2 + #xcb133f1f + #xebc19594 + #xe6ebfd00 + #x3c1e09f7 + #x1f1b3045 + #x3d6f7246 + #x2a2b1510 + #xa497da1c + #xce1f3c00 + #xfbc78b89 + #xe0eb0712 + #x2b1501ef + #x37393a3a + #x42665e40 + #x1e1c0713 + #x9db6fb1f + #xdd2522dc + #x9bf8088 + #xdcef1625 + #x1c0df8e6 + #x55523f2a + #x3c514c49 + #x30c0a1e + #xb2d60a10 + #xf11e03cb + #xab28098 + #xdcfa2836 + #x1203f1e0 + #x6d603a1c + #x2733425a + #xfe0d181f + #xcbe90f10 + #xfd0deed0 + #xa980b3 + #xe30c3d3c + #x6f8ebe0 + #x755d3112 + #xc1b3d66 + #x15181c13 + #xdcf51b25 + #xfbfbe5da + #xf1ad9dcb + #xef1f4836 + #xf8f1ece6 + #x6f542504 + #xfd0f3c66 + #x271e1606 + #xe5042733 + #xf7f2e2df + #xe8c1beda + #xfd2a4525 + #xf1f1f4f1 + #x644918f8 + #xf7093358 + #x21191000 + #xf215272a + #xf7ecdfe0 + #xebdcd9e6 + #x9283413 + #xf1fafdfd + #x5b4009ec + #xf1fd244b + #x13181503 + #x6151816 + #xf7e6dcec + #xf8f7eef2 + #xf1e1e06 + #xfa040609 + #x522df7e8 + #xe3eb1642 + #x19242103 + #xd030316 + #xf5e0e0fd + #x90f0400 + #x100d0c03 + #x90d0d13 + #x3a12ebee + #xd3e0153a + #x33392bfd + #xaeef722 + #xf4dde80a + #x161f1609 + #xf030104 + #x15121319 + #x22fde6fb + #xc5dd1933 + #x4c4b30f5 + #xe3f42c57 + #xe3e60502 + #x29302301 + #xfb0111 + #x161a2516 + #x1071119 + #xe0141f0d + #x574104d0 + #xe6fd2f50 + #xdfe2fbf7 + #x28321dfa + #xfefbfd0d + #x1a1c1d0e + #x141f1f1f + #xf10d0e08 + #x4e3505e2 + #xec022c42 + #xd9dcf1f2 + #x222d14f1 + #x1fbf401 + #x20161108 + #x2a332c29 + #xfa040410 + #x47300bf4 + #xecf8203b + #xd5daf1f4 + #x1a2308e8 + #xafae9f5 + #x1f0a080d + #x35383632 + #xf8051323 + #x4d3311fa + #xd6e61d47 + #xd6e5f8ec + #x1319fde0 + #xef2dfee + #x13fe0d1a + #x323c4436 + #x21d292c + #x57330bf7 + #xb5e02a5b + #xe5faf5cf + #xb08ecdd + #xae9daeb + #x8041f26 + #x3245482c + #x1d393529 + #x51290200 + #xa1ec3c61 + #x105dca4 + #xfdf2dfe6 + #xe2dae9 + #xd193228 + #x3945391d + #x3c4a352a + #x3e1f0716 + #x9efe475b + #x19fdb480 + #xe8dadafe + #xf5dddce8 + #x23353e22 + #x3c331f19 + #x484e3e36 + #x35261728 + #xa70a4d5b + #x1fe09080 + #xd6cce217 + #xebdce0e2 + #x3f4d3f16 + #x2c140b23 + #x48574e3c + #x3f331f29 + #xaf145b6a + #x10c18080 + #xcaccf222 + #xe2dde5dc + #x5a5e3c08 + #x10fd0a36 + #x4a645533 + #x48301423 + #xbe286c6c + #xfab18080 + #xccd6fd1a + #xdce3e8d7 + #x6a6738fb + #xfdf51145 + #x53664e23 + #x38160525 + #xda426d4d + #xe8aa808d + #xd3dff808 + #xd7e9ecd9 + #x75692def + #xfef7174e + #x555d441f + #x11fb052f + #x75a5519 + #xd9a283aa + #xdaddebf5 + #xd7f1f4e3 + #x7c6322e6 + #x5f71657 + #x4d51452c + #xf5f51032 + #x30542df2 + #xc79b99dc + #xd9d5dde5 + #xdffb00eb + #x7c5716e3 + #x8f1165e + #x3f54583c + #xf5001123 + #x3e3508e8 + #xb5a1c710 + #xd0cad2d2 + #xee0708ec + #x754b0ee8 + #x5ec1761 + #x3c676f45 + #x1040210 + #x2c10f5ec + #xaabd002f + #xc9c4c4bb + #xfd110ae5 + #x69410df2 + #x2ee1a5a + #x4d7f7c44 + #xfbf5f10e + #x14faebe0 + #xb2e62833 + #xcabeb1a8 + #x51605df + #x5e3e0efb + #x4f21a50 + #x607f7e42 + #xdfe2f222 + #x5ecd6c0 + #xc90a3629 + #xcfb59ea2 + #xa13fee0 + #x5a3b1302 + #x8f5174b + #x677f7b45 + #xcae20735 + #xfed5b7a7 + #xdf193626 + #xd0ac95aa + #x70bfde6 + #x58381407 + #xaf5194e + #x5e7f7c4a + #xd9fe2038 + #xebb2a5b5 + #xe81d3b25 + #xd2aa98b2 + #x2fbee + #x54301404 + #x8fd2354 + #x587f7e47 + #x51f262f + #xc798b2e5 + #xe623441a + #xdab19bb1 + #xf5fb00f8 + #x47280efd + #xe103554 + #x5a7f763b + #x292c1925 + #xa299d911 + #xeb3042fb + #xecb895a8 + #xeffb0807 + #x381f07f4 + #x232d444a + #x5d7e6335 + #x2c1d0a23 + #x96b8fd19 + #xf8392cd5 + #xfbb584a4 + #xec01171a + #x291600ee + #x4148473c + #x57675341 + #x190b0a2a + #xa8da0d08 + #x83007bd + #xfda780ae + #xe90b2a2c + #x1d0dfae8 + #x6055412d + #x4a4e4d58 + #xd07142f + #xc6f20e02 + #x101aebc0 + #xf19880c6 + #xeb193f36 + #x1104f5e3 + #x6f553622 + #x333b4e6a + #x17131d28 + #xdafe1614 + #xa02e2cf + #xe29899da + #xf22a4e33 + #x7fdf4e5 + #x70502a16 + #x1f2d4e72 + #x251d1a17 + #xe60b2228 + #xf4e3da + #xd9aab7e8 + #x43b5126 + #xfefbf5ec + #x6d481d07 + #xe234a6a + #x221d140a + #xf21a2a26 + #xf8eee5e0 + #xddc6d2ef + #x163f4214 + #xfafefbfa + #x673e0bf8 + #x1173f63 + #x141c1304 + #x420231a + #xf8e9e3e9 + #xeee2e5f7 + #x1d362c08 + #x50208 + #x602ffbf2 + #xf108355b + #x14221a00 + #xe161717 + #xf5e3e5fb + #x2fbf800 + #x1c251705 + #x80d0d11 + #x4d19f1f7 + #xddfb2f55 + #x283522f5 + #x7001129 + #xefdff108 + #x14110d07 + #x14110b0b + #x13131719 + #x2d04f204 + #xcffb3045 + #x414520e2 + #xf8ef133f + #xebdffd0e + #x22231d0a + #xb050511 + #x1916201c + #x13f5fa13 + #xc7023335 + #x534d19d3 + #xe90d4158 + #xd9ec03f2 + #x31311af2 + #xfd00061d + #x17242006 + #x6101917 + #xff1d1305 + #x5824e3d4 + #xf3133d4f + #xd5e6fcf2 + #x302d10e9 + #xffff16 + #x1c201603 + #x1c20201e + #x20f070d + #x4d21efe5 + #xf9103345 + #xcfe2f6f6 + #x2d2705df + #x5faf50d + #x1c130c05 + #x2e2d2d29 + #x5091d + #x4521fdf5 + #xec022a47 + #xcee8fcf5 + #x271dfad8 + #x7f3eb07 + #x12060d10 + #x33373e30 + #xf1a2a + #x472602f5 + #xd1f93054 + #xdbf8fcdf + #x1d0fefd5 + #x6e9e503 + #x6051c1c + #x3644482b + #x1326262a + #x421efcf9 + #xbb023e57 + #xf303e9b8 + #xffce3df + #xffe2e2ff + #x5142b20 + #x3d4b411e + #x3037292a + #x3114fd0d + #xb812454d + #xdfcbf94 + #xfae6e2f9 + #xf8dfe2f8 + #x162b361c + #x42422b17 + #x423d2b30 + #x23160d24 + #xbf1a4745 + #x16dc9480 + #xe2d5ed17 + #xf3e2e5ec + #x30423814 + #x38291c20 + #x45443836 + #x2e231a30 + #xc7204f51 + #x9ba8080 + #xd1d5022a + #xece6e5df + #x4a513609 + #x1c101a33 + #x4a4f4130 + #x45271a2e + #xd12e6261 + #xf2a48083 + #xcce11226 + #xe3e9e5d5 + #x5e5b30f9 + #x3032347 + #x55573d1d + #x47170d33 + #xe64a6b55 + #xdf9d808a + #xd4ec1214 + #xdfece5d5 + #x6f5e26ec + #xf9022a58 + #x5b4e3012 + #x2a020c3b + #x95e582d + #xd19680a0 + #xdced0702 + #xe1f2ebde + #x795a19e5 + #xfc002d68 + #x52412d16 + #x9fc163e + #x305c3105 + #xc18d89cb + #xdce5f9f2 + #xe8faf6e6 + #x7b4e0ce2 + #xfffc2e6f + #x41423b23 + #xff061a33 + #x44410ff6 + #xae90b200 + #xd5d9ede2 + #xf306ffe8 + #x734102e5 + #xfcf93372 + #x3d55542b + #xa0c0c1d + #x381dfcfa + #xa1abeb26 + #xced1dcc9 + #x21202e2 + #x6836ffed + #xf6fa376e + #x4a71642b + #xcfff816 + #x1d03f3f5 + #xa8d8192b + #xccc8c4b1 + #xf19fddc + #x5c3002f9 + #xf6fd3762 + #x617f6829 + #xf5e8f024 + #x9f5e2d8 + #xc2052d21 + #xccbbada7 + #x1619f8db + #x552d0703 + #xf9ff315b + #x6f7f672b + #xd8df023a + #xffe2c5b8 + #xe11d301a + #xcbad9eb0 + #x1612f6e1 + #x522b0d07 + #xfafd2e5a + #x6e7f6930 + #xd9f21944 + #xefc1adb8 + #xf2243319 + #xc7a3a0bf + #x100cf9e6 + #x4f2a1009 + #xfaff335c + #x687f6e30 + #xfd12233d + #xcca1b1de + #xf6293b10 + #xc8a5a4c5 + #xa09fdec + #x47270f05 + #xfc0a3e5b + #x687f6927 + #x27231a33 + #xa79bd20c + #xf9363df5 + #xd4ada3c1 + #x20703f5 + #x3a210afd + #xa204851 + #x6f7f5b21 + #x361a0d33 + #x96b5f91e + #x74129cc + #xe2ab96bd + #xfa090f06 + #x2d1a05f5 + #x273a4d44 + #x6f714a2b + #x2a06093e + #xa3d90c16 + #x173b03b0 + #xe69d8ac4 + #xf510231a + #x2312fded + #x454b4a3a + #x64584442 + #x1c001342 + #xbff30a09 + #x1d23e1ab + #xdc8d8cd5 + #xf6203a29 + #x1907f8e8 + #x5c4f3e2e + #x4e454a5b + #x1c0a1d3b + #xd8ff090f + #x1406d5bd + #xcb87a0eb + #xff334d29 + #xc02f3e8 + #x674a2e1d + #x383d526b + #x21171c2b + #xe506121c + #x5f3d9ce + #xbf94bbf5 + #x1047521c + #x500f2ec + #x68411e0d + #x2634546e + #x1d1a141c + #xf0141d1e + #xf9ede1d6 + #xc4aed1f6 + #x234f470a + #xf2f6 + #x64371202 + #x142a4f6c + #x1417120f + #x1e2014 + #xf5ece2e1 + #xd6cbe1f8 + #x2e4830ff + #x2f805 + #x5e2a03f9 + #x1d4869 + #x141d1302 + #xd1d1a10 + #xf2e8e3f0 + #xede2effc + #x2d371aff + #x5060510 + #x4e16f6f9 + #xec104467 + #x262a16f3 + #xc10171e + #xece2ed00 + #x2f90000 + #x23210f09 + #xc0f1214 + #x3602f303 + #xde0d425a + #x3e3a10df + #xfc05233a + #xe5e2fc05 + #x16121200 + #x120f0a13 + #x12171c14 + #x17f8fd0f + #xdc163e40 + #x523dffcc + #xef00314f + #xdfe60702 + #x23211cff + #x705091a + #x131d2313 + #x2f50917 + #xe3203626 + #x5b37edc1 + #x22d5467 + #xd9f6faed + #x3a310adf + #xff000c27 + #x212a14ff + #x10171c1a + #x14190907 + #x4f07d6eb + #x92a485a + #xd5f0f9f6 + #x3a2a02d8 + #x2fc0726 + #x21200d02 + #x20212423 + #xa0c0a17 + #x400ce8f5 + #x5203b4f + #xd1f0fdfc + #x3621f6cf + #x3f6ff23 + #x1a120d09 + #x2e2e332a + #x309142a + #x3613f6f8 + #xef133851 + #xd8fc03ef + #x2d14eccc + #x2ecf81e + #xc0c1714 + #x36404127 + #xd192431 + #x3313f8f9 + #xd9144252 + #xef07f5cf + #x1e05e3d6 + #xfce5f319 + #x616271a + #x414e411c + #x242b2730 + #x270cf809 + #xd4204747 + #x703d1ad + #xcf0e3f0 + #xf6e1f00f + #xf2a3117 + #x4b4e3312 + #x3a312734 + #x1a090523 + #xdc29443d + #x13e3a198 + #xf3e3f213 + #xf2e3efff + #x263d3412 + #x473b2417 + #x4236303b + #x21131934 + #xe52d4848 + #x6bb8091 + #xdce20c29 + #xf0e9eceb + #x404b310a + #x3127272e + #x473e3737 + #x3d1e203a + #xe9365a61 + #xec9d8091 + #xd1ed232a + #xefefe9d9 + #x58522d00 + #x161a3148 + #x51443324 + #x481a1a3d + #xf64e6967 + #xd4908094 + #xd5fd2a1a + #xebf0e5d4 + #x695421f5 + #x5143b5e + #x5b412410 + #x30091948 + #x16686147 + #xc58980a4 + #xdf032307 + #xe9f0e3d9 + #x764f12e9 + #x213416f + #x55371e0a + #x703244f + #x3b693e1a + #xb78080c8 + #xe5fd14f9 + #xeff5ece3 + #x794502e3 + #x12487c + #x42342712 + #xf80d2b44 + #x4e4d1705 + #xa4809efa + #xe1f206e8 + #xfa03f8e8 + #x7638f8e6 + #xfc104f7f + #x36423b17 + #x516202b + #x45260307 + #x9696d623 + #xd8e8f5cf + #x912fde3 + #x6b2df2ed + #xf612577f + #x415e4d17 + #x1009071e + #x2b0aff0a + #x9bc50931 + #xd5dedcb5 + #x161afadc + #x5e24f6f8 + #xf3165876 + #x5c735216 + #xeff929 + #x14fff3f3 + #xb8f92426 + #xd4cebfa7 + #x1e1af5db + #x5220fd06 + #xf817526c + #x737b5417 + #xdede0341 + #x7efd8ce + #xdf1a291a + #xccb8aab0 + #x2314f2df + #x4e210910 + #xf9134b68 + #x787c571c + #xd1e91a51 + #xf8d1bac1 + #xfa272914 + #xc2a7a5c4 + #x1e0ff5e2 + #x4b240f13 + #xf6104b65 + #x767f5c1c + #xec062a52 + #xd8abb4dc + #x32d310f + #xbba3aed2 + #x160af9e2 + #x47261010 + #xf5165164 + #x797f5c16 + #x1a1c264a + #xb19ecf0d + #x93a36f5 + #xbfa8b1d2 + #x100cffe3 + #x40240d0a + #xfc265a5e + #x7f7f4f0f + #x36171a4a + #x98b1f62d + #x164824cc + #xcbaaaad1 + #xc1209f2 + #x371e0903 + #x143a5b52 + #x7f733e14 + #x2d061352 + #xa1d80d2b + #x2a4700aa + #xd2a09ed8 + #x6161a07 + #x2d1402fa + #x33485547 + #x795e382a + #x16fc1c5a + #xbff60f1c + #x302bd9a3 + #xcb8e9eeb + #x3203119 + #x210dfaf3 + #x4d4f4a38 + #x674f4144 + #x7052757 + #xdb000616 + #x2407c7b2 + #xbb87b0fc + #xa33471c + #x1909f5ef + #x5b4e3b2a + #x51484f5a + #x9122b4a + #xe8020719 + #xdf0c9c7 + #xad90c803 + #x1c4e520f + #x1006eff0 + #x64482b19 + #x3b425868 + #xd172437 + #xf209101a + #xfde9d5d5 + #xada5db00 + #x315e4afc + #xa02ebf8 + #x643b1c0a + #x263a5b6e + #xf171d24 + #xff161914 + #xf6ecdbde + #xbdbee5fa + #x405a34ef + #x700ef06 + #x5b2d0d03 + #x13305b73 + #x161a1a13 + #xf1d1913 + #xf5ebdeec + #xd5d6effa + #x41471ef2 + #x702fa14 + #x4e1c0303 + #x265b72 + #x292414ff + #x13171920 + #xf0e6e8fc + #xecebfcfd + #x373014fd + #xa090a1d + #x3809ff09 + #xf0215b69 + #x423009e6 + #xa10243b + #xe8e5f503 + #x20afd + #x241d120d + #x1214161c + #x20fc0310 + #xec265554 + #x5830f3d2 + #xfd123857 + #xe1ed00fd + #x191913f6 + #x120d121a + #x17211c12 + #xafd0c14 + #xf92e4431 + #x6224dccb + #xf81a4b67 + #xdef605f6 + #x2a2716ed + #x5061221 + #x1c291e0a + #xff021414 + #x9303016 + #x6417cccc + #x18405762 + #xe3f9f4f9 + #x3f2bfbd6 + #x31832 + #x2d220903 + #x181b1b20 + #x19100910 + #x1beddf04 + #x15374952 + #xddf8fc02 + #x3c23f2cf + #xfffc1434 + #x26190b07 + #x22242626 + #xb0a141f + #x18f8ed02 + #x9294049 + #xe0ff04ff + #x3516e6ca + #xfdf41032 + #x18121210 + #x2e353424 + #x710222d + #x1903f6fd + #xf6234349 + #xef0b00e9 + #x2907dccf + #xf8ed0b2d + #xd182015 + #x3e493919 + #x16202a31 + #x1b03f504 + #xee2a4642 + #x90be2cb + #x18f6dce7 + #xf2ea0923 + #x10272a12 + #x4d50300d + #x2b2a2a37 + #x12ffff1b + #xf6314234 + #x15f1b8b8 + #xeded07 + #xefeb0412 + #x22382d0d + #x5044230e + #x382b2b3f + #x12041231 + #x323e38 + #x9c794b2 + #xeaee0a20 + #xeeeefcfb + #x37432d09 + #x40322020 + #x3e31323f + #x2412233e + #x3374a50 + #xeaa080b1 + #xddfd2724 + #xeeeef1e3 + #x4d492903 + #x2a292e3b + #x49393031 + #x30182643 + #x74b5f62 + #xce8a80ae + #xdd103516 + #xeeeee6d6 + #x604a1ffb + #x19273f58 + #x52382419 + #x1c11294e + #x1f66604d + #xbc8180b8 + #xe91b3106 + #xf1ede0d8 + #x6d4610f4 + #x11294a6b + #x4d2d160a + #xf50d3455 + #x426d461f + #xaf8080d8 + #xf11924f8 + #xf5eee4e0 + #x703b00ef + #xd275478 + #x3926190a + #xe4143f4d + #x59572302 + #x9f809a04 + #xf21016e9 + #xfbf8ede6 + #x6b2ef5ed + #x627607f + #x2d31270d + #xf51d3737 + #x52300e07 + #x8f84c82b + #xeb0707d1 + #x607f5e4 + #x6322eef1 + #xff2d6d7f + #x3549370d + #xd161c23 + #x37110a12 + #x91affb38 + #xe7fcefb5 + #x1412f6df + #x5818effc + #xfc32717f + #x505f3c09 + #x6fc0729 + #x1b060406 + #xade61b2e + #xe3ebd1a4 + #x2215f2dd + #x4b12fb0b + #xff346b75 + #x6a693b07 + #xe2e60940 + #xefdebdf + #xd80e221f + #xd9d1b6ad + #x2710f1e0 + #x4414071b + #x30626b + #x786d3e09 + #xc7e71f57 + #x3e3cbc6 + #xfc202218 + #xcab8aec4 + #x240af4e0 + #x421b1020 + #xff2a5f67 + #x7972430a + #xd6ff315e + #xe7bdbdd5 + #xe272410 + #xbbadb6dc + #x1f0bf8dc + #x3f1d141f + #xfb2b6063 + #x7c7b4606 + #x3153459 + #xbda6cf04 + #x153429f9 + #xb6afc0e6 + #x180df9d8 + #x3c1f1418 + #xfc34635e + #x7f7e3eff + #x24162759 + #xa0b2f52b + #x23431cd1 + #xbdb4c0e6 + #x110efddd + #x381c1011 + #xd436357 + #x7f722e00 + #x1f092362 + #xa0d61132 + #x3746fbad + #xc4adb6ee + #xe110aee + #x32160909 + #x27506050 + #x7f5f2911 + #x2ff2a6b + #xbcf6141d + #x422ed4a0 + #xc09db5ff + #xe1b2002 + #x2a100204 + #x40555444 + #x714e302a + #xe904386a + #xd9020a0d + #x3507bcaf + #xb292c111 + #x15313807 + #x1f0bfbff + #x52524431 + #x5c4a4043 + #xe6113e5f + #xeaff030a + #x1be9bcc6 + #xa196d514 + #x234b47fb + #x1809f4fc + #x5b4d3520 + #x4a4a5058 + #xf1183b50 + #xf1ff0a0e + #x2dfcad8 + #x9da8e40a + #x396243e7 + #x1503eb00 + #x5c432716 + #x38445965 + #xfd19343e + #xfc0a1210 + #xf8e4d4e3 + #xaac0ebfd + #x4d6331db + #x11fced10 + #x55321912 + #x243c5f6d + #xb1b2b29 + #xa141514 + #xf9e9d8ed + #xc1d5f1fb + #x52521ddd + #xdf9f923 + #x47200d0e + #x1437666e + #x20221f12 + #x14151823 + #xf8e7e0fb + #xd8e7f9fc + #x493912eb + #xb000a2e + #x3510070e + #x6386a67 + #x39270df8 + #x11122440 + #xefe6ee04 + #xedf904fc + #x352412fc + #x110e152b + #x20040912 + #x3c6755 + #x4e26f4e3 + #x916395e + #xe9edf802 + #x30e0bf6 + #x2018160b + #x191b1920 + #xe030e15 + #x740593b + #x5716dbd9 + #x7265070 + #xe6f6f9f9 + #x1d200deb + #xe10191b + #x22241811 + #x6091416 + #x153b3c1d + #x4b00cbdf + #xb375b74 + #xe7fdf8f4 + #x302b09e2 + #x30a1b27 + #x292a1506 + #x6111516 + #x1f30220a + #x3cefc6eb + #x284c5342 + #xe4f3fc0e + #x3f1de8d3 + #x9273f + #x2e140407 + #x181b1d2c + #x10070d16 + #xe2dff210 + #x1e3d493b + #xe5fc060d + #x3913decc + #xfc02243d + #x22110d0a + #x242b2828 + #x70d1b20 + #xf5ecf504 + #xe324639 + #xf10a07ff + #x2f03d0cc + #xf6fb223b + #x1414180e + #x3640311d + #xa1a282b + #x7f6f602 + #x4354939 + #x70ef1e5 + #x20f2cddd + #xeff82132 + #x1121220c + #x4a4d2b0d + #x1d252b35 + #x9f6f910 + #xa3b432e + #x17fbc9d1 + #x9e7dbfc + #xebf91d22 + #x1e312506 + #x56471d09 + #x2c272c40 + #x4f90c27 + #x133b3928 + #xed0a5cd + #xf3ebfc18 + #xe9f9110a + #x333c2703 + #x4f381717 + #x32283147 + #x9092238 + #x14363b36 + #xeca593ce + #xe7ff2120 + #xecf600f1 + #x46402402 + #x3b2c2131 + #x3b2e313c + #x13142e40 + #x13434d46 + #xc78687ca + #xe81a3613 + #xeff1ecdd + #x56401eff + #x282b3247 + #x452f2524 + #x417334a + #x215d5738 + #xaf8081ca + #xf52c36ff + #xf1e9ddd7 + #x613d11f9 + #x1e31465e + #x43271410 + #xe5144056 + #x406b470d + #xa28086e1 + #x2e2aef + #xf2e7dbdd + #x673503f5 + #x1a385a72 + #x311d100a + #xd71e4d50 + #x5a5a28ef + #x9580a10d + #x4281bdf + #xf8efe5e4 + #x6427f8f3 + #x143d6c7f + #x201e170c + #xf12a4736 + #x5b3813f8 + #x8680ca35 + #x200ec9 + #xfdece5 + #x5917f1f6 + #xe43797f + #x25322209 + #x14252c21 + #x421a110e + #x809bf845 + #xfc17f8ab + #xc06efe1 + #x4d0af1fd + #xc497f7f + #x42492702 + #x140c1022 + #x240e0e0c + #x95cc173b + #xf604d597 + #x1a09ecdf + #x4206f80d + #xd4d7f79 + #x605725fd + #xecef0a39 + #x1107fbe5 + #xc3fb2125 + #xece7b89e + #x2207ebe1 + #x3907041e + #x114c766f + #x715d25ff + #xc4e81e56 + #x7f1d7bf + #xf1141e1a + #xd7c6abbc + #x2204eedf + #x350d1128 + #x10476f65 + #x76612b00 + #xc6fc3664 + #xf1cac2c3 + #xc1e2014 + #xc0b3b5dd + #x1e06f2d7 + #x33161a2a + #xa436c60 + #x7c6c2efc + #xef144065 + #xc9aecaee + #x182a2400 + #xb3b2c4ee + #x1a0af3cd + #x351a1d25 + #x9496e5b + #x7f7128f3 + #x141d3b68 + #xa2afeb1a + #x27391ad8 + #xb5b9ccf3 + #x170cf2ca + #x351a1820 + #x11506b57 + #x7f6a1af2 + #x10113672 + #x9ace0a22 + #x3c3df8ae + #xbab6c9fc + #x140af6d5 + #x31141318 + #x2759634f + #x7f5913fc + #xee073d7e + #xb0f3130c + #x4a2acd9a + #xb9a8c411 + #x111007e7 + #x280e0a10 + #x3c5d5b45 + #x7b491813 + #xd0094c7f + #xd30309f1 + #x4300afa6 + #xa99ace27 + #x142421ee + #x200a030a + #x4f5e5038 + #x63432a2e + #xd0165371 + #xe80000e7 + #x27dbacc0 + #x989be22c + #x244333e4 + #x1807fb06 + #x5a594228 + #x51433c49 + #xe21e5160 + #xeffb00ec + #x7cdb9d5 + #x91aef21e + #x3c5e33ce + #x1700f10a + #x5e4a311e + #x4646505e + #xf8214a50 + #xf50209f8 + #xf6d3c9e1 + #x9ac4f609 + #x546722bf + #x14f8f11a + #x5738211d + #x3946606a + #x724423f + #x20c0e04 + #xf3dad1eb + #xafd5f5fd + #x605910bf + #xef2fb31 + #x4725171b + #x2a476a6b + #x172a3227 + #xc10131a + #xf5dbdaf8 + #xc6e4f6fc + #x5a4006ce + #x7f50c3f + #x35141017 + #x1a4a7163 + #x2c2b1a09 + #xd102139 + #xf1dde703 + #xdbf2ffff + #x452b07e2 + #xa031a3f + #x240c0d11 + #x13517254 + #x3d22fcef + #x916395a + #xe9e4f204 + #xf20406f9 + #x2e200ef5 + #x13112032 + #x14090d11 + #x1757673d + #x420edee2 + #xa28516c + #xe7eef6ff + #xa1406ee + #x1a1a1606 + #x201d1b20 + #x90d1116 + #x21534f22 + #x2ff3cce5 + #x1440606b + #xe8f3f2fc + #x2420fde1 + #xd141b1b + #x2b211310 + #x911131e + #x283d2e10 + #xdddccf6 + #x20506360 + #xebf5f1fd + #x3527f6da + #x610212c + #x33210c06 + #xd141424 + #x27271407 + #xf1d0d407 + #x354f4315 + #xe2f40b1d + #x3602d4d0 + #x103146 + #x21090501 + #x151c2732 + #x90b1513 + #xd3e1fe0e + #x2743411d + #xed040e12 + #x2ef7c9ce + #xfa0e3141 + #x170c0b02 + #x252e2c27 + #x9161d1c + #xeaeafa04 + #x193d4124 + #x41000fb + #x1ee6c2da + #xf00b313a + #x10161500 + #x3d3f2815 + #x12202328 + #xf8eff705 + #x19433f20 + #x1602dee8 + #xbdacdf6 + #xea092e2c + #x192419f8 + #x4f3f190c + #x21232439 + #xf1f00217 + #x20433215 + #x10dcbee2 + #xf6deed13 + #xea092317 + #x2b2f1af6 + #x4f310e13 + #x28212b46 + #xedfb172a + #x21392b15 + #xf0b1abe6 + #xeaf4131d + #xed0510fd + #x3c3519f7 + #x43251327 + #x2c243146 + #xf60f2a33 + #x1a39331e + #xc68fa3e3 + #xef152b0f + #xf1fbf7e6 + #x483616f8 + #x3327253d + #x32252832 + #xf619353d + #x204a3f16 + #xa78099df + #x2f2ef6 + #xf3efe1db + #x52360ff8 + #x2a2f3a51 + #x2f1c171c + #xe81d4146 + #x385b39f6 + #x958096e9 + #x123824e2 + #xf1e6d5de + #x562f07f7 + #x25394f60 + #x200e0913 + #xe6274f44 + #x555520dc + #x8d80a70c + #x193519d3 + #xf0e5dae6 + #x5421fdf4 + #x2444646e + #x10090b13 + #x7364e31 + #x5b380eea + #x8180d133 + #x172e0cbf + #xf3efe3ed + #x4a0ff4f3 + #x214f7577 + #x1317120f + #x31393519 + #x461d0f0c + #x8095fb46 + #x1327f8a4 + #xfae9ed + #x3c01f1fa + #x21597f77 + #x2a2b1507 + #x36231313 + #x27151313 + #x80bf1a3d + #xf16d88d + #xffee8ea + #x2ff8f609 + #x245f7f6e + #x4a3a1000 + #x9000528 + #x151204ef + #xa9ea242a + #x5f7b78e + #x19fbe5ec + #x25fa021a + #x28627c64 + #x5f4110fe + #xd4ed1547 + #xe01e2bf + #xda07201a + #xefd1a6ab + #x1cfae8e8 + #x20011028 + #x285f7759 + #x67471300 + #xc7f8315c + #xfbdbc3b4 + #xfb121c13 + #xd0b8b0d3 + #x17fdeadc + #x200b1d2c + #x215b7151 + #x6d4e15fd + #xe9124363 + #xd5b8c3d7 + #xe1c1d02 + #xb9b4c6ef + #x1602e9cc + #x24132328 + #x1a586d4e + #x7b550ff3 + #xe204369 + #xabb2df02 + #x1d2b17df + #xb4bbd4fa + #x1604e3c0 + #x28172324 + #x1e5c6a4e + #x7f5104ed + #xe1c4074 + #x99ccfe0e + #x3231f8b1 + #xb9bed405 + #x1701e2c5 + #x28161d21 + #x2e60644b + #x7f41f8f1 + #xed12487f + #xaaef09f4 + #x441ecd96 + #xb9b4d41c + #x1604edd1 + #x2112161c + #x3d625c41 + #x7231fb04 + #xd113597f + #xcc0101d5 + #x41f7a99c + #xada7de35 + #x161504d7 + #x1a0e0f15 + #x4b5f5133 + #x5f2b0b1d + #xd51e637b + #xe600f4cc + #x27d0a2b8 + #x99a7f43d + #x203217ce + #x1609050b + #x555b4628 + #x4f2e2039 + #xf32a626b + #xf0f8f1d5 + #x2beb0d1 + #x91b8052e + #x38511cbe + #x1501fb0e + #x5b4f3824 + #x4632364f + #xc2f595b + #xf0f8f6e3 + #xeabfc2de + #x98cd0813 + #x555d0eab + #x12f6f61e + #x583c2824 + #x3f394b60 + #x1733514a + #xf600fbf1 + #xe5c9cde3 + #xa9dc0201 + #x6752f7a7 + #x9ecfe38 + #x4a281d21 + #x33445f64 + #x20364033 + #x70507 + #xe8ced7ef + #xbee6fefe + #x643aecb4 + #xec0f4b + #x3619171a + #x2a526a5c + #x2b352717 + #x5091525 + #xe6d1e2fb + #xd0edfe00 + #x5227edc7 + #xfdf8214f + #x25101512 + #x255c6b4d + #x362808fe + #x2122f44 + #xe1d8ef00 + #xe3f802fb + #x391ef7db + #x5092a41 + #x170e120e + #x27626339 + #x320fe9f0 + #x4254a55 + #xdfe1f3fd + #xfb0802f1 + #x251c02ef + #x1215242e + #xe0e0f12 + #x2f5f4f24 + #x17efd3ef + #x10405951 + #xe2e8f1fd + #x1312fae6 + #x17190c05 + #x1e171919 + #xb0f101c + #x354f3512 + #xf0d4cdfa + #x24545939 + #xe3e9f305 + #x2712edde + #xf161920 + #x28150b0c + #xc101628 + #x2e331d0b + #xcec9db09 + #x33595224 + #xe3e9f80f + #x3310e3da + #x9152433 + #x2e120405 + #x10121c32 + #x21190e0c + #xbfcaed13 + #x405133fd + #xeb071823 + #x28eec9d2 + #x21e3b48 + #x110a07fb + #x1823342c + #xd181713 + #xe0ee0307 + #x344f390a + #xff130d14 + #x1eddc2da + #xfc1f3e42 + #x10100af6 + #x2c302f21 + #x17211a1f + #xe7eefb07 + #x2c51390e + #x150ef4fd + #x9cdc6f2 + #xf61f3e39 + #x171b0df1 + #x44361f14 + #x21251f32 + #xe4eefc10 + #x324e2c02 + #x17eed6f6 + #xf2cce313 + #xf51e3423 + #x26280eee + #x4e2c1015 + #x28222847 + #xdcf50e21 + #x33411ef9 + #xf8c2c6fc + #xe5e30921 + #xf6182109 + #x362f0dee + #x451e0e25 + #x2823334e + #xe407222c + #x29341cfd + #xcca0c2fd + #xee092613 + #xfb0b04f1 + #x40300bf2 + #x371c1c37 + #x29253442 + #xf41a3234 + #x233a26fd + #xa68db8f4 + #x62a2cf5 + #xfbfbeae5 + #x49300bf6 + #x2f293649 + #x281e2530 + #xfd25403d + #x364b26ee + #x8e80acf4 + #x1e3a21d9 + #xf5ead9e8 + #x4f2f09f8 + #x303a515d + #x1a0b1426 + #xa324e3d + #x534e17e0 + #x8380b00a + #x2a3b14c6 + #xeee1d6f4 + #x4f2304f6 + #x3249646a + #x9ff0d23 + #x2a424f2c + #x5f3706f1 + #x8080cf2f + #x2c370bb8 + #xece3ddfc + #x4213fdf5 + #x32537270 + #x404101f + #x52493714 + #x4b1f0918 + #x809cfc45 + #x2a33fba6 + #xf5ebe4ff + #x3402f8f8 + #x33607f6e + #x18181114 + #x5937150a + #x2f171429 + #x80c61f41 + #x2925dd8f + #x4f1e4ff + #x28f9f904 + #x3a707f68 + #x34260a0a + #x2d11021b + #x1b1b1007 + #x9beb2a2c + #x2204b784 + #x11f2e300 + #x1bf80317 + #x42797f5c + #x492c0409 + #xeff50d39 + #x1711efd0 + #xc403231b + #xadca098 + #x15f2e7fd + #x13ff1426 + #x45797f4f + #x532d060d + #xd5f62953 + #xbeecbb6 + #xe80e1c15 + #xe7bba7c1 + #x14f6eaf2 + #x1309232c + #x40747745 + #x5c34090b + #xea0e4160 + #xe8c5bdcc + #xff171e0a + #xc6b3c1e5 + #x11fce8dc + #x17142c29 + #x396e7042 + #x6b3b0403 + #x10234968 + #xbbb4d2f4 + #x11231bea + #xb8bbd7f8 + #x14fdddc6 + #x1e1c2c26 + #x376d6b44 + #x793af9f9 + #x17264b77 + #xa0c6ef02 + #x282d02bb + #xbbc5e109 + #x17f9d3be + #x221f2825 + #x406d6742 + #x7b2deefb + #x1f537f + #xaae8fdea + #x3e1ed398 + #xbfc1e421 + #x17f9d9c6 + #x211c2322 + #x496e633e + #x6a1bec06 + #xea1f647f + #xccfdf6cc + #x3ef8a997 + #xb4b7f13b + #x1507eccd + #x1b1b1f1e + #x556b5d37 + #x5511f61c + #xf42c717f + #xebffe8c4 + #x23cc99b0 + #xa0b60748 + #x1e2200c6 + #x17151817 + #x5d66512d + #x48130a34 + #x133a7174 + #xf6f6e3d5 + #xfcb4a7cd + #x94c61f3b + #x334004b3 + #x140b0b15 + #x61584026 + #x441c234c + #x2a416867 + #xf4f2e7ea + #xdeb4bedc + #x99dd231e + #x524cf6a0 + #x11fc0023 + #x5d443026 + #x40293e5c + #x32475f59 + #xf2f5ebf6 + #xd3bfcce0 + #xaaea1704 + #x6d47e099 + #x7ef0340 + #x4e322926 + #x373b5561 + #x344b5345 + #xf6f9f404 + #xd6c6d5e5 + #xbeee09fb + #x7132d0a3 + #xfbec175a + #x3a23251e + #x304e645a + #x3e493b29 + #xfbfd061c + #xd9cce0f1 + #xcfef06fd + #x611ed0b6 + #xf4f82d61 + #x2a1e2111 + #x325f674b + #x47391a11 + #xfd0a2239 + #xd7d3ebf9 + #xddf607fc + #x4815ddc9 + #xf80a3956 + #x1f1a1b09 + #x39665f3a + #x3d1cf902 + #x3224045 + #xd7ddf4f9 + #xef0006f2 + #x3415eadd + #x618363e + #x1515150d + #x42644e29 + #x1cf9e100 + #x10404f3a + #xdae3f2f9 + #x60a00e8 + #x2817f8f4 + #x151b2829 + #x10111518 + #x485a3a1b + #xf1d9d607 + #x28564e1f + #xdde4f202 + #x1a0bf4e3 + #x1e170610 + #x1c151718 + #x10101b26 + #x44442511 + #xccc8dc13 + #x3e5d4103 + #xdde8fd15 + #x2806e4dc + #x15171b2a + #x1e0d090b + #xe112530 + #x32291710 + #xc1ccef18 + #x495a39f2 + #xdeef0a26 + #x30fdd9d7 + #xd1a293d + #x1c070304 + #xe152d36 + #x1e151111 + #xc4d9ff1a + #x454d20f1 + #xfd1d1a21 + #xed4c0d5 + #x3284742 + #x607fff5 + #x1d2c3218 + #x141a0e13 + #xdef3fc02 + #x3f5325f5 + #x10170613 + #xfdc6c6eb + #x22b473b + #xd0effee + #x2e2c2211 + #x1e1b1422 + #xd8ecf809 + #x40511eee + #x18fdec09 + #xe7bdda0c + #x32e4028 + #x1b1bfde8 + #x3f251111 + #x241d213c + #xd1eb0016 + #x42420de1 + #xd5db0e + #xd7ce0020 + #x72a2f0d + #x2c21fbe9 + #x3d170c1d + #x221d334d + #xdafb1624 + #x382c04e2 + #xd5b6d811 + #xdef62016 + #x91e11f3 + #x3524fbee + #x3111162e + #x20213c4a + #xf210272b + #x2a2509ee + #xaea4d409 + #xfb202af5 + #x609f3e8 + #x3b24fff3 + #x271a2b3c + #x1e1e3239 + #xc223631 + #x2e2f0ef1 + #x9195c4fd + #x1e381dd1 + #xfbf1deef + #x422503f5 + #x2a2c424d + #x160e2131 + #x21324533 + #x473809f2 + #x8083b90a + #x323b0db8 + #xecddd8ff + #x452003f3 + #x3240595e + #x6001831 + #x3f464a27 + #x592eff07 + #x8080ca2a + #x393800ab + #xe7d7de0d + #x4013fdf1 + #x39516e6b + #xf9fd182e + #x6151360d + #x4c180431 + #x809bf645 + #x3b35f3a1 + #xebdde513 + #x3204f8f2 + #x3f637b6a + #xa1622 + #x684011fb + #x2f0e1445 + #x80c71d43 + #x3c2ada8d + #xf6e2e816 + #x20fbf5fb + #x46727f5e + #x1a170e18 + #x3d18f806 + #x1b161727 + #x93ec2c2f + #x380cb580 + #x2e5e817 + #x10f6fd0a + #x507f7f4d + #x311b0417 + #xfdf5ff25 + #x1b16fce8 + #xb303251d + #x21e19580 + #x6e5eb17 + #x6fb0e18 + #x597f7e40 + #x3c18021d + #xd8ef1e43 + #x16f9d4c2 + #xd70c1a16 + #xfbbc97a5 + #x6e9ef0a + #x4062021 + #x597f7535 + #x4318021e + #xe5063b54 + #xf9cebcca + #xf1111810 + #xd1aeb2ce + #x7f1eeef + #xa142b22 + #x537c6a31 + #x50200217 + #x7204760 + #xcab2c4ee + #x31b1af5 + #xbab8d1eb + #xcf3dfd1 + #x13212e20 + #x4f756131 + #x6021f60d + #x18284d6e + #xa8badf00 + #x1a2504c7 + #xbac6e400 + #x11efcebf + #x1b252c22 + #x50725e32 + #x6316e909 + #xc25577f + #xa8d7f1ef + #x311dd79c + #xbfcaec18 + #x10e9c7bd + #x1d252a22 + #x56715b31 + #x5604e411 + #xfd27677f + #xc6f1ebd4 + #x36f8a591 + #xb9c4fb36 + #xaeed3c4 + #x1a22281e + #x5e6f592e + #x40f9ec22 + #x735757f + #xe7f5ddce + #x1ec98ea6 + #xa6c61849 + #xc02e5bf + #x171e2116 + #x656b5028 + #x35f8fd39 + #x25467971 + #xf6ecd5e2 + #xf5a998c6 + #x97d53240 + #x2220ecac + #x16161414 + #x6a614224 + #x2f00144c + #x3b517265 + #xf3e5d8f9 + #xd0a5b3d8 + #x9aec3921 + #x4632df97 + #x13060722 + #x634c3122 + #x2c102e59 + #x3b546a59 + #xeee5df03 + #xc2b2c6de + #xacfc2b02 + #x652fc78e + #x7f60740 + #x51382a21 + #x2a28495d + #x3856604a + #xece5e80c + #xc2bdcedf + #xc2ff16f1 + #x6f1bb595 + #xf8ef1a61 + #x3c2c2c1a + #x2b435b56 + #x42534a35 + #xefe7f620 + #xc7c4d5e7 + #xd0f809ee + #x6106b2a6 + #xecf9366f + #x2b2a2c0d + #x32596047 + #x53462c20 + #xf1f31339 + #xcacde1ec + #xdaf807ec + #x49fdbdba + #xee0d4967 + #x21252402 + #x3f615738 + #x4f280a14 + #xf8102f43 + #xcdd7e9ef + #xe7ff07e8 + #x35ffcecd + #xfc1e474f + #x1a1d1700 + #x4a60472a + #x2c03ee11 + #xc334035 + #xd0dee9f1 + #xf80700e1 + #x2b04dfe2 + #xc243638 + #x1313110c + #x5357381e + #xfddfe118 + #x284f3f14 + #xd4dfebfb + #xa07f5dd + #x2507f1fc + #x141d2227 + #xe0e181a + #x51472816 + #xd7cae121 + #x425731f3 + #xd4dff210 + #x1800e8d8 + #x1e0d0718 + #x1410111a + #xc112525 + #x43321a10 + #xc4c6eb24 + #x505622e4 + #xd7ee0424 + #x1ef5d8d1 + #x13162231 + #xe07070c + #xa17312a + #x2c1e110d + #xc7d5f91e + #x53531be1 + #xdfff1431 + #x20e9cecc + #xa1e3540 + #x90203ff + #xa1e362a + #x1814100d + #xd3e70216 + #x4e4a10e1 + #x131f152a + #xedb9bee6 + #xf3a5335 + #x602f3f4 + #x27342209 + #x180e0613 + #xd7ecf408 + #x534b0cdd + #x190b0022 + #xd8b5d002 + #x123d4e27 + #x1209efef + #x3128130b + #x1b0e162a + #xd4e7fc13 + #x543e00d3 + #xce7ed24 + #xc5bef31b + #x183d3e0b + #x2210eaed + #x34180b15 + #x1b132c43 + #xdaef0b21 + #x4a25f1d1 + #xe3c8ea28 + #xc8e41816 + #x1c3421ed + #x2c10eaf1 + #x280e1325 + #x181c4048 + #xf0031f27 + #x3412f0e1 + #xb9b9ea21 + #xe61224f3 + #x181c00e0 + #x3110eff7 + #x1c122434 + #x1622403e + #xc192f2a + #x2813f9f6 + #x9cb1e010 + #xf2f18ca + #x8fce7ea + #x3513f6fa + #x1c213843 + #x12183132 + #x242e3b28 + #x341cfd05 + #x869ccd0e + #x2e3702ac + #xf1dede03 + #x3a13fcf6 + #x28344b53 + #x208242f + #x3b43401c + #x4418fc1c + #x808ad025 + #x3e34f39c + #xe0d0e419 + #x3b0ffaf0 + #x35485f5f + #xf0032431 + #x56533203 + #x410b0541 + #x8095f041 + #x4632e690 + #xdbceed25 + #x3108f4ec + #x405f7360 + #xef0c222b + #x604a12ed + #x28031b59 + #x80bb1847 + #x4a2ad180 + #xe6d7f32a + #x1ffdf1f0 + #x4a737c57 + #xff151924 + #x411ff3ef + #x160e2541 + #x8ce32b34 + #x470fb180 + #xf0dbf42c + #xcf7f9ff + #x577f7c44 + #x15120b24 + #x2f3f10b + #x16131003 + #xafff2521 + #x32e48f80 + #xf4def72e + #xfff9090e + #x697f7832 + #x2409052c + #xd3e40e2c + #x1902e3ce + #xd00b161b + #xbbb838d + #xf3e1ff25 + #xfa031c15 + #x727f6d25 + #x2b090834 + #xd3f72f43 + #x5d7c1c8 + #xe70c1518 + #xdba698b2 + #xf4e9ff09 + #x152a16 + #x6f7f601e + #x370f0831 + #xf316434e + #xd8b4bee6 + #xf9131805 + #xbeaebcd5 + #xfdeff1e3 + #xe242c18 + #x697f561e + #x4410ff27 + #xc274b5f + #xafafd5fd + #xe1f09d7 + #xb8c4d8ef + #x6ead7c5 + #x192c2c1c + #x66785121 + #x4a08f121 + #xc2a5972 + #xa5c5e7f7 + #x281cdda6 + #xbfd0e709 + #x6dec5bc + #x1f2c2c22 + #x66735024 + #x41f6e922 + #x32c6c7e + #xbbdee6e3 + #x31fca890 + #xbed0fa28 + #xffdac5bf + #x1f2b2e21 + #x69725027 + #x2ee6e92e + #xc3d7e79 + #xdde6d7e0 + #x1cc887a0 + #xaed31b40 + #xfae6d4bc + #x1f2a2b16 + #x6d6d4824 + #x1fe3f63d + #x24507f6c + #xedddd0f3 + #xf19f8cc1 + #x9fe73d3e + #xcffdaab + #x1e221c10 + #x72633a1f + #x18ec0c4d + #x35607e5d + #xecd4d306 + #xc793a6d8 + #xa0024a22 + #x2f13ce93 + #x19130c1c + #x6c512e1c + #x15fd2557 + #x35647653 + #xe4d1db09 + #xb2a0bee0 + #xb5153afc + #x5415b586 + #xe00093b + #x59402a1e + #x1215405c + #x32646d44 + #xe1d1e30e + #xb2b1c8e0 + #xcb151ce3 + #x63039f8c + #xfaf61f62 + #x43342e16 + #x16325356 + #x40605c32 + #xe0d1f121 + #xb9bbcde1 + #xda0b08da + #x5aec999c + #xeafc4179 + #x31322f08 + #x284e5c47 + #x57533d22 + #xe0db0b41 + #xbfc2d4e6 + #xde0300d8 + #x41dea3af + #xe7105a76 + #x273125f9 + #x415d5435 + #x5a371b1e + #xe7f9274e + #xc4cddbe6 + #xe40500d7 + #x2be0b7c1 + #xf4275d60 + #x212715f3 + #x515d4628 + #x3a0f0022 + #xfd21383e + #xcad7dee7 + #xf10bfcd3 + #x21e7c8d4 + #x9314d47 + #x1b190bfc + #x5653371f + #x6eaf128 + #x1f403519 + #xd0dadef3 + #x20bf1d1 + #x1fefdbea + #x162b3537 + #x12120f0c + #x53462b18 + #xddd0ed2e + #x414d25f6 + #xd0dae60c + #xe03e6ce + #x1bf9f405 + #x151b212a + #xb131e18 + #x4a371f10 + #xc8c7f332 + #x564d13e0 + #xcee3f727 + #x10f4d8c8 + #x1306121e + #xe0b131c + #x91e2e1e + #x3a27160b + #xbfcdfc2e + #x574809da + #xdbfa0f34 + #xee4cbc4 + #xc182f31 + #x603080c + #xe28341b + #x24180e08 + #xc5de001f + #x534808db + #xef101e35 + #x6d8c1c7 + #xb25463d + #x20200ff + #x122c3215 + #x15120906 + #xd0ec020f + #x5a3b00db + #x24100d39 + #xd0b0cd06 + #x224d501b + #xefdebf8 + #x31321307 + #x1402091a + #xe2e4fc1a + #x5e31f6d4 + #x16f8033d + #xc0bdeb18 + #x284f4603 + #x17ffe5f9 + #x2f210e10 + #x11071e2e + #xe2eb0c21 + #x561de8d3 + #xf8de0045 + #xbcdd101b + #x2b472be4 + #x20ffe4fc + #x25111120 + #x1016383c + #xecfb1d27 + #x3c06e2de + #xd0d1063d + #xd40921fc + #x28310ad4 + #x24fde803 + #x160e202e + #x11254236 + #x2112b24 + #x24fdebf3 + #xb6ceff28 + #xff2814d3 + #x1b10f1df + #x2800f207 + #x141b313b + #x1125392b + #x17273221 + #x2004f607 + #xa5c0ec18 + #x2531fbb3 + #x3efe9fd + #x2e06f904 + #x1e2c4046 + #x9182c27 + #x2a3c3817 + #x2b07fd1d + #x8da6e221 + #x392be59e + #xe9daf11d + #x320afbfb + #x2e40504f + #xf6102a2a + #x3f4d2f02 + #x2bff0a3c + #x809bf539 + #x4327d78b + #xded7fd2f + #x2e0af8ef + #x3c546151 + #xec132a2a + #x4f4713e8 + #x1afb2256 + #x80af1643 + #x4d22c980 + #xdddd0636 + #x2103f3ec + #x476a6e4a + #xf61b222a + #x4024f2df + #xc09364a + #x8ada2c36 + #x5013b380 + #xe1e1093d + #x10fbf5f2 + #x5a7f723d + #x917182e + #xef5e7f3 + #x101a2a16 + #xb2fd2a22 + #x3fef9780 + #xe5e20e43 + #x3f903fd + #x717f6e2e + #x140a103b + #xdadffb11 + #x1811ffdb + #xd40c1a1d + #x18c3808d + #xe5e5173d + #xfb021407 + #x7f7f611e + #x17021147 + #xcaee1b28 + #x10ebd1c6 + #xe80a1620 + #xe8a487a9 + #xe8ee1b24 + #xfd13220c + #x7f7f4f11 + #x1d06164c + #xe10d3333 + #xe9c2c3da + #xf30d1a14 + #xc4a6a6c7 + #xf1f30cf9 + #xa24280e + #x7f7e420d + #x2a0a1045 + #xfd224243 + #xbdb0d3f3 + #x41813ee + #xbcbdc7e1 + #xfbf1eed4 + #x1a2e2814 + #x78743d13 + #x3204043b + #x92a5159 + #xa9c0e5f9 + #x1e1beebc + #xc4d1ddf9 + #xfce2d3c3 + #x242f2b1b + #x726e3d1b + #x2ef3f839 + #x6326868 + #xb6d5e8ec + #x2c02b99f + #xc9d8f31a + #xf5d4c9c4 + #x272f311d + #x6f6a3d21 + #x1de2f53c + #x9427968 + #xd3dfdde7 + #x1ed093a6 + #xbfdf1436 + #xeed5d0c4 + #x272f2f16 + #x72673c22 + #xcddfc45 + #x18567e57 + #xe2d7d5f3 + #xf3a190c3 + #xb2f3383b + #xf9e8d5b5 + #x282e2510 + #x75613320 + #xffe20d4f + #x2b657846 + #xe1cdd802 + #xc78ea6db + #xb5134920 + #x18fdca9e + #x25211618 + #x71512a1e + #xf9f12259 + #x316b713b + #xdac7e107 + #xae97bfe4 + #xcc2c3ff9 + #x3b02b08e + #x1a0e1133 + #x5e42251b + #xfb07395e + #x356a6b31 + #xd5c7e909 + #xacabcae4 + #xe73122db + #x4cf19891 + #x6ff2459 + #x49382a18 + #x3254d59 + #x47685e25 + #xd4c9f61e + #xb5b9cee2 + #xf22406ce + #x43d791a2 + #xf2024775 + #x36382e0c + #x1a405149 + #x6361471a + #xd1d30d42 + #xbcc0d4e2 + #xf213f9cc + #x2ec698b5 + #xeb186779 + #x313925fb + #x364f4935 + #x674a2a1b + #xd4e92756 + #xc2c9d8df + #xef0ef6cc + #x1ac6a9c2 + #xf633726a + #x2f3213ee + #x4c513b28 + #x45251127 + #xe80e3547 + #xc9d1dadf + #xf610f3cc + #x11cebccd + #xc426453 + #x2a2403f2 + #x534a3122 + #xeff0632 + #xd2e3221 + #xd0d4d8eb + #x20eeccd + #xedacdde + #x1d3c4c42 + #x1e170402 + #x4f422a1d + #xe4e40338 + #x333d21fc + #xd0d4de06 + #xc07e2cd + #xee5e2f5 + #x1d2a3535 + #x13161311 + #x46382414 + #xc9d50439 + #x4c3f0de4 + #xcedaf125 + #xefcdac7 + #xaf5000d + #x1417252a + #xd202217 + #x3b2b1a0a + #xb9d30936 + #x5339ffd5 + #xd4ec0c3c + #x9ebcdc2 + #x7091d20 + #x90a181b + #x132e2b14 + #x2e211104 + #xb5db0e2f + #x5036fbd3 + #xee061d3f + #xfbd5c2ca + #xd21392a + #x404090c + #x1d36280c + #x20140a06 + #xc3e70a21 + #x4f36ffd7 + #x71b2439 + #xeec4badb + #x14364c2c + #x302fc04 + #x27392204 + #x160d0409 + #xd7ee0411 + ) + ) diff --git a/goal_src/jak3/engine/gfx/ocean/ocean-h.gc b/goal_src/jak3/engine/gfx/ocean/ocean-h.gc index 81293a741b..223020c01b 100644 --- a/goal_src/jak3/engine/gfx/ocean/ocean-h.gc +++ b/goal_src/jak3/engine/gfx/ocean/ocean-h.gc @@ -7,3 +7,125 @@ ;; DECOMP BEGINS +(deftype ocean-spheres (structure) + ((spheres sphere 36 :inline :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x240 + :flag-assert #x900000240 + ) + +(deftype ocean-colors (structure) + ((colors rgba 2548 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x27d0 + :flag-assert #x9000027d0 + ) + +(deftype ocean-colors-float (structure) + ((colors vector 2548 :inline :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x9f40 + :flag-assert #x900009f40 + ) + +(deftype ocean-mid-mask (structure) + ((mask uint8 8 :offset-assert 0) ;; guessed by decompiler + (dword uint64 :offset 0) + ) + :pack-me + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +(deftype ocean-mid-indices (basic) + ((data uint16 36 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) + +(deftype ocean-mid-masks (basic) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +(deftype ocean-trans-mask (structure) + ((mask uint8 4 :offset-assert 0) ;; guessed by decompiler + (word int32 :offset 0) + ) + :pack-me + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) + +(deftype ocean-trans-index (structure) + ((parent int16 :offset-assert 0) + (child int16 :offset-assert 2) + ) + :pack-me + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) + +(deftype ocean-trans-indices (basic) + ((data ocean-trans-index 2304 :inline :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x2404 + :flag-assert #x900002404 + ) + +(deftype ocean-near-index (structure) + ((data uint16 16 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) + +(deftype ocean-near-indices (basic) + ((data (inline-array ocean-near-index) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +(deftype ocean-near-colors (structure) + ((color0 vector :inline :offset-assert 0) + (color1 vector :inline :offset-assert 16) + (color2 vector :inline :offset-assert 32) + (color3 vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) + +(deftype ocean-map (structure) + ((start-corner vector :inline :offset-assert 0) + (far-color vector :inline :offset-assert 16) + (ocean-colors ocean-colors :offset-assert 32) + (ocean-mid-indices ocean-mid-indices :offset-assert 36) ;; guessed by decompiler + (ocean-trans-indices ocean-trans-indices :offset-assert 40) ;; guessed by decompiler + (ocean-near-indices ocean-near-indices :offset-assert 44) ;; guessed by decompiler + (ocean-mid-masks ocean-mid-masks :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x34 + :flag-assert #xb00000034 + (:methods + (set-height! (_type_ float) none) ;; 9 + (get-base-height (_type_) float) ;; 10 + ) + ) diff --git a/goal_src/jak3/engine/gfx/ocean/ocean-tables.gc b/goal_src/jak3/engine/gfx/ocean/ocean-tables.gc index c2fc94121e..1e035a936a 100644 --- a/goal_src/jak3/engine/gfx/ocean/ocean-tables.gc +++ b/goal_src/jak3/engine/gfx/ocean/ocean-tables.gc @@ -7,3 +7,5502 @@ ;; DECOMP BEGINS +(define *ocean-colors-city* + (new 'static 'ocean-colors :colors (new 'static 'array rgba 2548 + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2a :a #x80) + (new 'static 'rgba :r #xd :g #x25 :b #x29 :a #x80) + (new 'static 'rgba :r #xe :g #x25 :b #x29 :a #x80) + (new 'static 'rgba :r #xf :g #x26 :b #x2a :a #x80) + (new 'static 'rgba :r #xe :g #x25 :b #x29 :a #x80) + (new 'static 'rgba :r #x10 :g #x26 :b #x27 :a #x80) + (new 'static 'rgba :r #xf :g #x26 :b #x27 :a #x80) + (new 'static 'rgba :r #xf :g #x27 :b #x28 :a #x80) + (new 'static 'rgba :r #xe :g #x26 :b #x2a :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x26 :b #x2a :a #x80) + (new 'static 'rgba :r #x10 :g #x27 :b #x2a :a #x80) + (new 'static 'rgba :r #x10 :g #x27 :b #x2a :a #x80) + (new 'static 'rgba :r #x12 :g #x28 :b #x2a :a #x80) + (new 'static 'rgba :r #x14 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x13 :g #x29 :b #x2a :a #x80) + (new 'static 'rgba :r #x16 :g #x29 :b #x29 :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2b :a #x80) + (new 'static 'rgba :r #x15 :g #x2a :b #x2a :a #x80) + (new 'static 'rgba :r #x15 :g #x2a :b #x2a :a #x80) + (new 'static 'rgba :r #x12 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x27 :b #x2a :a #x80) + (new 'static 'rgba :r #x11 :g #x27 :b #x29 :a #x80) + (new 'static 'rgba :r #x13 :g #x27 :b #x2a :a #x80) + (new 'static 'rgba :r #x15 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #x13 :g #x29 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x27 :b #x29 :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x13 :g #x28 :b #x2a :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2b :a #x80) + (new 'static 'rgba :r #x16 :g #x2a :b #x2b :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2b :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x12 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2c :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x18 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x19 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x31 :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x18 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x16 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xf :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) + ) + +(define *ocean-near-indices-city* + (new 'static 'ocean-near-indices + :data (new 'static 'inline-array ocean-near-index 36 + (new 'static 'ocean-near-index) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1 #x2 #x3 #x4) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x14) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x5 + #xffff + #xffff + #x6 + #xa + #xffff + #xffff + #xffff + #x0 + #xf + #x10 + #x11 + #x15 + #x0 + #x16 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x7 #x8 #x9 #x0 #xb #xc #xd #xe #x12 #xffff #xffff #x13 #x17 #x12 #xffff #x18) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1d #x0 #x25 #x26 #x5 #x0 #x29 #x2a #x5) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x19 + #x1a + #x0 + #x0 + #xffff + #x1e + #x1f + #x20 + #xffff + #xffff + #xffff + #x27 + #xffff + #xffff + #xffff + #x27 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x17 #x12 #x1b #x0 #x21 #x22 #x23 #x0 #x5 #xffff #x28 #x2b #x2c #x2d #x28) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1c #x0 #x0 #x0 #x24 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x2e #x2f #x30 #x0 #x37 #x38 #xffff #x0 #x0 #x3c #xffff #x0 #x0 #x41 #x12) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x31 + #x32 + #xffff + #xffff + #x39 + #x0 + #xffff + #xffff + #x0 + #x3d + #xffff + #x42 + #x0 + #x43 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x33 + #x12 + #xffff + #x34 + #x0 + #x3a + #xffff + #xffff + #x3e + #x3f + #xffff + #xffff + #x44 + #x45 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x35 #x36 #x0 #x0 #xffff #x3b #x0 #x0 #xffff #x40 #x0 #x0 #x29 #x46 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x47 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x48 #x49 #x0 #x4a #x0 #x0 #x0 #x4c #x0 #x0 #x0 #x0 #x0 #x21 #x4f #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x4b + #xd + #xffff + #xffff + #x4d + #xffff + #xffff + #xffff + #x0 + #x0 + #x4e + #xffff + #x0 + #x50 + #x51 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x4 #x0 #x0 #x0 #x27 #x0 #x0 #x0 #x27 #x0 #x0 #x0 #x27 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x52 #x53 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x54 #x0 #x55 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x32 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x56 #x56 #x56 #x56 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x57 + #x58 + #xffff + #xffff + #x59 + #x5a + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x5f + #x5f + #x5f + #x5f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x5b + #x5c + #x5c + #x60 + #x0 + #x0 + #x0 + #x64 + #x65 + #x66 + #x66 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x5d + #xffff + #x5e + #x5a + #x61 + #x5f + #x62 + #x63 + #x67 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xffff #xffff #xffff #x0) + ) + (new 'static 'ocean-near-index :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + ) + ) + ) + +(define *ocean-trans-indices-city* + (new 'static 'ocean-trans-indices :data (new 'static 'inline-array ocean-trans-index 2304 + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 2) + (new 'static 'ocean-trans-index :parent #x68 :child 3) + (new 'static 'ocean-trans-index :parent #x69 :child 4) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 5) + (new 'static 'ocean-trans-index :parent #x6a :child 6) + (new 'static 'ocean-trans-index :parent #x6b :child 7) + (new 'static 'ocean-trans-index :child 8) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x6c :child 9) + (new 'static 'ocean-trans-index :parent #x6d :child 10) + (new 'static 'ocean-trans-index :parent #x6e :child 11) + (new 'static 'ocean-trans-index :parent #x6f :child 12) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 13) + (new 'static 'ocean-trans-index :child 14) + (new 'static 'ocean-trans-index :parent #x70 :child 15) + (new 'static 'ocean-trans-index :child 16) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 17) + (new 'static 'ocean-trans-index :child 18) + (new 'static 'ocean-trans-index :child 19) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x71 :child 21) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x72 :child 22) + (new 'static 'ocean-trans-index :parent #x73 :child 23) + (new 'static 'ocean-trans-index :parent #x74 :child 24) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x75 :child 25) + (new 'static 'ocean-trans-index :parent #x76 :child 26) + (new 'static 'ocean-trans-index :parent #x77 :child 27) + (new 'static 'ocean-trans-index :parent #x78 :child 28) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x79 :child 29) + (new 'static 'ocean-trans-index :parent #x7a :child 30) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x7b :child 31) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x7c :child 32) + (new 'static 'ocean-trans-index :parent #x7d :child 33) + (new 'static 'ocean-trans-index :parent 34 :child 34) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x7c :child 32) + (new 'static 'ocean-trans-index :parent 13 :child 35) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + ) + ) + ) + +(define *ocean-mid-indices-city* (new 'static 'ocean-mid-indices :data (new 'static 'array uint16 36 + #x59 + #x0 + #x0 + #x0 + #x0 + #x0 + #x7e + #x7f + #x0 + #x0 + #x0 + #x0 + #x80 + #x81 + #x82 + #x0 + #x0 + #x0 + #x83 + #x84 + #x85 + #x0 + #x0 + #x0 + #x86 + #x87 + #x88 + #x0 + #x0 + #x0 + #x59 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + +(define *ocean-mid-masks-city* + (new 'static 'ocean-mid-masks + :data (new 'static 'inline-array ocean-mid-mask 138 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1f #x3f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x3 #x3 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #xc0 #xc0 #xc0 #xc0 #xc0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x1f #x1f #x1f #x1f #x1f #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x10 #x38 #x7c #x7c #x7c)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #x80 #x80 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x3 #xf #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x7 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xfc #xf8 #xe0 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #x7f #x3e)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x83 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x80 #xc0 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x6 #xf #x1f #x3f #x7f #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1c #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xf8 #xf0 #xe0 #xc0 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x1f #x1f #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf8 #xe0 #xf0 #xf8 #xfc #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x7 #xf #xf #xf #x7 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x3f #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x7 #xf #x1f #x3f #x3f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x80 #xc0 #xc0 #xc0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x3f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #xf0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x3f #x3f #x3f #x3f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x1f #xf #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x80)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x7 #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x3f #x3f #x3f #x3f #x3f #x3f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #x80 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #x1f #x1e #x1e #x1e #x1e #x1e)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xc0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf8 #xf0 #xf0 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #xf8 #xf8 #xf0 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1e #x1e #x1e #x7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x7f #x3f #x1f #xf #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xc0 #x80 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #xf #x1f #x7f #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #x7 #x3 #x3 #x3 #x1 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xfc #xf8 #xf0 #xf0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #x7 #x7 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfc #xfc #xf8 #xf8 #xf0 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #xc0 #xe0 #xf0 #xf0 #xf0 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x7 #x7 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xe0 #xe0 #xe0 #xc0 #xc0 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xf1 #xf1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #x80 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xfe #xc0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xfe #xfe #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #x3 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #x80 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf9 #xf8 #xf8 #xf8 #xf8 #xf8 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #xf0 #xf0 #xf0 #xf0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xc0 #xc0 #x80 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfe #xf0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xf8 #xf0 #xe0 #xe0 #xc0 #x80 #x80)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x3c #x3c #x3c #x3c)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x80 #x80 #x80 #x80 #x80 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3c #x3c #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #x1f #x1f #x1f #x1f #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xfe #xfc #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #x1f #x1f #x1f #xf #x7 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xe0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x0 #x0 #x0 #x0 #x0 #x80 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xfc #xfe #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x3f #x7f #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xf0 #xf8 #xfc #xfe #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf6 #xfe #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf6 #xf4 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf4 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf3 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf4 #xfc #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfe #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf3 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf0 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf0 #xf0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf2 #xf0 #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf1 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfc #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf3 #xf0 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf1 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xf7 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #xff #xff #xff #xff #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1f #x1f #x1f #x1f #xc #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x1f #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x18 #x18 #xe0 #xe0 #xe0 #xe0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x3f #x3f #x3f #x3f #x3f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe1 #xc3 #xc7 #xcf #xff #xff #xff #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x3f #x3f #x3f #x1f #x1f #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x3f #x3f #x1f #x1f #x1f #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask) + ) + ) + ) + +(define *ocean-map-city* (new 'static 'ocean-map + :start-corner (new 'static 'vector :x -3538944.0 :z -7077888.0 :w 1.0) + :far-color (new 'static 'vector :x 2.509804 :y 30.619608 :z 36.64314 :w 128.0) + ) + ) + +(set! (-> *ocean-map-city* ocean-colors) *ocean-colors-city*) + +(set! (-> *ocean-map-city* ocean-mid-masks) *ocean-mid-masks-city*) + +(set! (-> *ocean-map-city* ocean-mid-indices) *ocean-mid-indices-city*) + +(set! (-> *ocean-map-city* ocean-trans-indices) *ocean-trans-indices-city*) + +(set! (-> *ocean-map-city* ocean-near-indices) *ocean-near-indices-city*) diff --git a/goal_src/jak3/engine/gfx/ocean/ocean-trans-tables.gc b/goal_src/jak3/engine/gfx/ocean/ocean-trans-tables.gc index 56f5bf0e20..dca500cf01 100644 --- a/goal_src/jak3/engine/gfx/ocean/ocean-trans-tables.gc +++ b/goal_src/jak3/engine/gfx/ocean/ocean-trans-tables.gc @@ -7,3 +7,1079 @@ ;; DECOMP BEGINS +(define *ocean-left-table* (new 'static 'array float 28 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +(define *ocean-right-table* (new 'static 'array float 28 + 0.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-up-table* (new 'static 'array float 28 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +(define *ocean-down-table* (new 'static 'array float 28 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-down-left-table* (new 'static 'array float 40 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-down-right-table* (new 'static 'array float 40 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-up-right-table* (new 'static 'array float 40 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 1.0 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +(define *ocean-up-left-table* (new 'static 'array float 40 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +(define *ocean-trans-left-table* (new 'static 'array float 44 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +(define *ocean-trans-right-table* (new 'static 'array float 44 + 0.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-trans-up-table* (new 'static 'array float 44 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +(define *ocean-trans-down-table* (new 'static 'array float 44 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-trans-down-left-table* (new 'static 'array float 72 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-trans-down-right-table* (new 'static 'array float 72 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-trans-up-right-table* (new 'static 'array float 72 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 1.0 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +(define *ocean-trans-up-left-table* (new 'static 'array float 72 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +(define *ocean-trans-corner-table* (the-as (inline-array vector4w-2) (new 'static 'array float 100 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5625 + 0.1875 + 0.1875 + 0.0625 + 0.375 + 0.375 + 0.125 + 0.125 + 0.1875 + 0.5625 + 0.0625 + 0.1875 + 0.0 + 0.75 + 0.0 + 0.25 + 0.5 + 0.0 + 0.5 + 0.0 + 0.375 + 0.125 + 0.375 + 0.125 + 0.25 + 0.25 + 0.25 + 0.25 + 0.125 + 0.375 + 0.125 + 0.375 + 0.0 + 0.5 + 0.0 + 0.5 + 0.25 + 0.0 + 0.75 + 0.0 + 0.1875 + 0.0625 + 0.5625 + 0.1875 + 0.125 + 0.125 + 0.375 + 0.375 + 0.0625 + 0.1875 + 0.1875 + 0.5625 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + ) + +(define *ocean-trans-strip-array* (new 'static 'array float 160 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5625 + 0.1875 + 0.1875 + 0.0625 + 0.5 + 0.5 + 0.0 + 0.0 + 0.375 + 0.375 + 0.125 + 0.125 + 0.25 + 0.75 + 0.0 + 0.0 + 0.1875 + 0.5625 + 0.0625 + 0.1875 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5625 + 0.1875 + 0.1875 + 0.0625 + 0.375 + 0.125 + 0.375 + 0.125 + 0.375 + 0.375 + 0.125 + 0.125 + 0.25 + 0.25 + 0.25 + 0.25 + 0.1875 + 0.5625 + 0.0625 + 0.1875 + 0.125 + 0.375 + 0.125 + 0.375 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5 + 0.0 + 0.5 + 0.5 + 0.0 + 0.5 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.375 + 0.125 + 0.375 + 0.125 + 0.1875 + 0.0625 + 0.5625 + 0.1875 + 0.25 + 0.25 + 0.25 + 0.25 + 0.125 + 0.125 + 0.375 + 0.375 + 0.125 + 0.375 + 0.125 + 0.375 + 0.0625 + 0.1875 + 0.1875 + 0.5625 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.25 + 0.0 + 0.75 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.1875 + 0.0625 + 0.5625 + 0.1875 + 0.0 + 0.0 + 0.75 + 0.25 + 0.125 + 0.125 + 0.375 + 0.375 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0625 + 0.1875 + 0.1875 + 0.5625 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +(define *ocean-trans-st-table* (new 'static 'inline-array vector 4 + (new 'static 'vector :z 1.0) + (new 'static 'vector :x 1.0 :z 1.0) + (new 'static 'vector :y 1.0 :z 1.0) + (new 'static 'vector :x 1.0 :y 1.0 :z 1.0) + ) + ) diff --git a/goal_src/jak3/engine/math/math.gc b/goal_src/jak3/engine/math/math.gc index 53a8ecc86b..8c0d11c366 100644 --- a/goal_src/jak3/engine/math/math.gc +++ b/goal_src/jak3/engine/math/math.gc @@ -414,7 +414,11 @@ ) (deftype rgba (uint32) - () + ((r uint8 :offset 0 :size 8) + (g uint8 :offset 8 :size 8) + (b uint8 :offset 16 :size 8) + (a uint8 :offset 24 :size 8) + ) ) (defmacro static-rgba (r g b a) diff --git a/goal_src/jak3/engine/math/vector-h.gc b/goal_src/jak3/engine/math/vector-h.gc index c5c8fd7fa4..30ac7e0f04 100644 --- a/goal_src/jak3/engine/math/vector-h.gc +++ b/goal_src/jak3/engine/math/vector-h.gc @@ -8,11 +8,16 @@ (define-extern vector-identity! (function vector vector)) (define-extern vector-cross! (function vector vector vector vector)) (define-extern vector-float*! (function vector vector float vector)) +(define-extern vector+float*! (function vector vector vector float vector)) +(define-extern vector-negate! (function vector vector vector)) (define-extern vector-normalize! (function vector float vector)) (define-extern vector-normalize-copy! (function vector vector float vector)) +(define-extern vector-normalize-ret-len! (function vector float float)) (define-extern vector-xz-normalize! (function vector float vector)) (define-extern vector-get-unique! (function vector vector vector)) (define-extern vector-get-closest-perpendicular! (function vector vector vector vector)) +(define-extern vector-vector-distance (function vector vector float)) +(define-extern vector-vector-distance-squared (function vector vector float)) (define-extern vector-length (function vector float)) (define-extern vector-length-squared (function vector float)) (define-extern vector-xz-length (function vector float)) diff --git a/goal_src/jak3/engine/math/vector.gc b/goal_src/jak3/engine/math/vector.gc index 447860ae56..79c5a12983 100644 --- a/goal_src/jak3/engine/math/vector.gc +++ b/goal_src/jak3/engine/math/vector.gc @@ -7,3 +7,1723 @@ ;; DECOMP BEGINS +(defun vector-cross! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Compute the cross product. The w component is set to junk." + (rlet ((acc :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +(defun vector-xz-cross! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Compute the cross product of the xz components of inputs." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.add.x.vf vf1 vf0 vf0 :mask #b10) + (.add.x.vf vf2 vf0 vf0 :mask #b10) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +(defun vector+float! ((arg0 vector) (arg1 vector) (arg2 float)) + "Add float to each component of vector. The w component is set to 1" + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (.mov vf6 arg2) + (.lvf vf4 (&-> arg1 quad)) + (.add.x.vf vf5 vf0 vf0 :mask #b1000) + (.add.x.vf vf5 vf4 vf6 :mask #b111) + (.svf (&-> arg0 quad) vf5) + arg0 + ) + ) + +(defun vector*! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Elementwise product. Set w = 1." + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (.lvf vf4 (&-> arg1 quad)) + (.lvf vf5 (&-> arg2 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +(defun vector+*! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "set arg0 = arg1 + (arg3 * arg2). The w component will be set to 1." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.mov vf7 arg3) + (.lvf vf5 (&-> arg2 quad)) + (.lvf vf4 (&-> arg1 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +(defun vector-*! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Set arg0 = arg1 - (arg3 * arg2). The w component will be set to 1." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.mov vf7 arg3) + (.lvf vf5 (&-> arg2 quad)) + (.lvf vf4 (&-> arg1 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.w.vf acc vf4 vf0 :mask #b111) + (.sub.mul.x.vf vf6 vf5 vf7 acc :mask #b111) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +(defun vector/! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Set arg0 = arg1 / arg2. The w component will be set to 1. + The implementation is kind of crazy." + (rlet ((Q :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.lvf vf5 (&-> arg2 quad)) + (.div.vf Q vf0 vf5 :fsf #b11 :ftf #b1) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.lvf vf4 (&-> arg1 quad)) + (let ((v1-0 (/ (-> arg1 x) (-> arg2 x)))) + (.wait.vf) + (.mul.vf vf6 vf4 Q :mask #b10) + (.nop.vf) + (.nop.vf) + (.div.vf Q vf0 vf5 :fsf #b11 :ftf #b10) + (.mov vf7 v1-0) + ) + (.add.x.vf vf6 vf0 vf7 :mask #b1) + (.wait.vf) + (.mul.vf vf6 vf4 Q :mask #b100) + (.nop.vf) + (.nop.vf) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +(defun vector-float*! ((arg0 vector) (arg1 vector) (arg2 float)) + "Multiply all values in a vector by arg2. Set w to 1." + (declare (inline)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.mov vf2 arg2) + (.add.x.vf vf1 vf0 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +(defun vector-average! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Set arg0 to the average of arg1 and arg2. Set w to 1." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 #x3f000000)) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov vf3 v1-0) + ) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf1 vf3) + (.add.mul.x.vf vf4 vf2 vf3 acc :mask #b111) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +(defun vector+float*! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "arg0 = arg1 + arg2 * arg3." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg2 quad)) + (.lvf vf1 (&-> arg1 quad)) + (.mov vf3 arg3) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf2 vf3) + (.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +(defun vector--float*! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Set arg0 = arg1 - (arg2 * arg3). The w component will be set to 1. + Is this different from vector-*!" + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg2 quad)) + (.lvf vf1 (&-> arg1 quad)) + (.mov vf3 arg3) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.mul.w.vf acc vf1 vf0) + (.sub.mul.x.vf vf4 vf2 vf3 acc :mask #b111) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +(defun vector-min! ((arg0 vector) (arg1 vector) (arg2 vector)) + (set! (-> arg0 x) (fmin (-> arg1 x) (-> arg2 x))) + (set! (-> arg0 y) (fmin (-> arg1 y) (-> arg2 y))) + (set! (-> arg0 z) (fmin (-> arg1 z) (-> arg2 z))) + (set! (-> arg0 w) 1.0) + arg0 + ) + +(defun vector-max! ((arg0 vector) (arg1 vector) (arg2 vector)) + (set! (-> arg0 x) (fmax (-> arg1 x) (-> arg2 x))) + (set! (-> arg0 y) (fmax (-> arg1 y) (-> arg2 y))) + (set! (-> arg0 z) (fmax (-> arg1 z) (-> arg2 z))) + (set! (-> arg0 w) 1.0) + arg0 + ) + +(defun vector-float/! ((arg0 vector) (arg1 vector) (arg2 float)) + "Divide all components by arg2. The w component will be set to 1." + (rlet ((Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.mov vf3 arg2) + (.div.vf Q vf0 vf3 :fsf #b11 :ftf #b0) + (.lvf vf1 (&-> arg1 quad)) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.wait.vf) + (.mul.vf vf4 vf1 Q :mask #b111) + (.nop.vf) + (.nop.vf) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +(defun vector-negate! ((arg0 vector) (arg1 vector)) + "Negate xyz, set w to 1." + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.sub.vf vf4 vf0 vf1 :mask #b111) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +(defun vector-negate-in-place! ((arg0 vector)) + "Negate xyz. Doesn't touch w." + (rlet ((vf0 :class vf) + (vf1 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.sub.vf vf1 vf0 vf1 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +(defun vector= ((arg0 vector) (arg1 vector)) + "Are the two vectors equal? Does not compare the w component. + The implementation is cool." + ;; (label L91) + ;; (set! v0-0 #t) + ;; (set! v1-0 #xffff) + (let* ((v1-0 #xffff) + ;; (set! a0-1 (l.q a0-0)) + (a0-1 (-> arg0 quad)) + ;; (set! v1-1 (sll v1-0 48)) + (v1-1 (shl v1-0 48)) + ;; (set! a1-1 (l.q a1-0)) + (a1-1 (-> arg1 quad)) + (a0-2 (the uint128 0)) + (r0 (the uint128 0)) + ) + ;; (.pceqw a0-2 a0-1 a1-1) + (.pceqw a0-2 a0-1 a1-1) + ;; (.ppach a0-3 r0-0 a0-2) + (.ppach a0-2 r0 a0-2) + ;; (set! v1-2 (logior a0-3 v1-1)) + (set! v1-1 (logior (the int a0-2) v1-1)) + ;; (set! v1-3 (+ v1-2 1)) + ;; will overflow the 64-bit integer if xyz is equal. + (set! v1-1 (+ v1-1 1)) + (zero? v1-1) + ) + ;; (b! (zero? v1-3) L92 (nop!)) + ;; (set! v0-0 #f) + ;; (label L92) + ;; (ret-value v0-0) + ) + +(defun vector-delta ((arg0 vector) (arg1 vector)) + "Sum of the elementwise absolute value of differences." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.lvf vf2 (&-> arg1 quad)) + (.sub.vf vf1 vf2 vf1) + (.abs.vf vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.y.vf acc vf0 vf1 acc :mask #b1000) + (.add.mul.z.vf vf3 vf0 vf1 acc :mask #b1000) + (.add.w.vf vf3 vf0 vf3 :mask #b1) + (.mov v0-0 vf3) + v0-0 + ) + ) + +(defun vector-seek! ((arg0 vector) (arg1 vector) (arg2 float)) + "Seek arg0 toward arg1. The arg0 is both read and written. + arg2 is saturated to (0, 1)" + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (.mov vf4 arg2) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg0 quad)) + (.add.x.vf vf1 vf0 vf0 :mask #b1000) + (.sub.x.vf vf5 vf0 vf4 :mask #b1) + (.sub.vf vf3 vf1 vf2 :mask #b111) + (.min.x.vf vf3 vf3 vf4 :mask #b111) + (.max.x.vf vf3 vf3 vf5 :mask #b111) + (.add.vf vf1 vf2 vf3 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +(defun vector-smooth-seek! ((arg0 vector) (arg1 vector) (arg2 float)) + "Smoothly seek vec toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a _square_ with side length arg2. + Note that this doesn't project to a circle like the function below..." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (new 'stack-no-clear 'vector))) + (vector-! v1-0 arg1 arg0) + (let ((v0-0 arg0)) + (let ((a1-2 (fmin 1.0 arg2))) + (.mov vf7 a1-2) + ) + (.lvf vf5 (&-> v1-0 quad)) + (.lvf vf4 (&-> arg0 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> v0-0 quad) vf6) + v0-0 + ) + ) + ) + ) + +(defun vector-seek-2d-xz-smooth! ((arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + "Smoothly seek vec's x and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch y or w." + (let ((f0-1 (- (-> arg1 x) (-> arg0 x))) + (f2-1 (- (-> arg1 z) (-> arg0 z))) + ) + (when (or (!= f0-1 0.0) (!= f2-1 0.0)) + (let* ((f1-5 (* f0-1 arg3)) + (f0-3 (* f2-1 arg3)) + (f2-4 (sqrtf (+ (* f1-5 f1-5) (* f0-3 f0-3)))) + ) + (cond + ((>= arg2 f2-4) + (+! (-> arg0 x) f1-5) + (+! (-> arg0 z) f0-3) + ) + (else + (let ((f2-6 (/ arg2 f2-4))) + (+! (-> arg0 x) (* f2-6 f1-5)) + (+! (-> arg0 z) (* f2-6 f0-3)) + ) + ) + ) + ) + ) + ) + arg0 + ) + +(defun vector-seek-2d-yz-smooth! ((arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + "Smoothly seek vec's y and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch x or w." + (let ((f0-1 (- (-> arg1 y) (-> arg0 y))) + (f2-1 (- (-> arg1 z) (-> arg0 z))) + ) + (when (or (!= f0-1 0.0) (!= f2-1 0.0)) + (let* ((f1-5 (* f0-1 arg3)) + (f0-3 (* f2-1 arg3)) + (f2-4 (sqrtf (+ (* f1-5 f1-5) (* f0-3 f0-3)))) + ) + (cond + ((>= arg2 f2-4) + (+! (-> arg0 y) f1-5) + (+! (-> arg0 z) f0-3) + ) + (else + (let ((f2-6 (/ arg2 f2-4))) + (+! (-> arg0 y) (* f2-6 f1-5)) + (+! (-> arg0 z) (* f2-6 f0-3)) + ) + ) + ) + ) + ) + ) + arg0 + ) + +(defun vector-seek-3d-smooth! ((arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + "Smoothly seek vec's x, y, and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch w." + (let ((f0-1 (- (-> arg1 x) (-> arg0 x))) + (f1-2 (- (-> arg1 y) (-> arg0 y))) + (f3-1 (- (-> arg1 z) (-> arg0 z))) + ) + (when (or (!= f0-1 0.0) (!= f1-2 0.0) (!= f3-1 0.0)) + (let* ((f2-6 (* f0-1 arg3)) + (f1-3 (* f1-2 arg3)) + (f0-4 (* f3-1 arg3)) + (f3-5 (sqrtf (+ (* f2-6 f2-6) (* f1-3 f1-3) (* f0-4 f0-4)))) + ) + (cond + ((>= arg2 f3-5) + (+! (-> arg0 x) f2-6) + (+! (-> arg0 y) f1-3) + (+! (-> arg0 z) f0-4) + ) + (else + (let ((f3-7 (/ arg2 f3-5))) + (+! (-> arg0 x) (* f3-7 f2-6)) + (+! (-> arg0 y) (* f3-7 f1-3)) + (+! (-> arg0 z) (* f3-7 f0-4)) + ) + ) + ) + ) + ) + ) + arg0 + ) + +(defun seek-with-smooth ((arg0 float) (arg1 float) (arg2 float) (arg3 float) (arg4 float)) + "Move value closer to target. + If we are within deadband, just go straight to target. + If not, try to go alpha*err. If that is a larger step than max-step, limit to max-step" + (let ((f0-1 (- arg1 arg0))) + (cond + ((>= arg4 (fabs f0-1)) + arg1 + ) + (else + (let ((f0-2 (* f0-1 arg3))) + (let ((f1-4 (- arg2))) + (cond + ((< f0-2 f1-4) + (set! f0-2 f1-4) + ) + ((< arg2 f0-2) + (set! f0-2 arg2) + ) + ) + ) + (+ f0-2 arg0) + ) + ) + ) + ) + ) + +(defun vector-identity! ((arg0 vector)) + "Set arg0 to 1, 1, 1, 1." + (set! (-> arg0 x) 1.0) + (set! (-> arg0 y) 1.0) + (set! (-> arg0 z) 1.0) + (set! (-> arg0 w) 1.0) + arg0 + ) + +(defun vector-seconds ((arg0 vector) (arg1 vector)) + "Convert from actual seconds to the seconds unit." + (set! (-> arg0 x) (* 300.0 (-> arg1 x))) + (set! (-> arg0 y) (* 300.0 (-> arg1 y))) + (set! (-> arg0 z) (* 300.0 (-> arg1 z))) + arg0 + ) + +(defun vector-seconds! ((arg0 vector)) + "Convert from actual seconds to seconds, in place." + (set! (-> arg0 x) (* 300.0 (-> arg0 x))) + (set! (-> arg0 y) (* 300.0 (-> arg0 y))) + (set! (-> arg0 z) (* 300.0 (-> arg0 z))) + arg0 + ) + +(defun vector-v! ((arg0 vector)) + "Convert a velocity to a displacement per frame. The velocity should be in X/actual_second. + Uses the current process clock." + (vector-float*! arg0 arg0 (seconds-per-frame)) + arg0 + ) + +(defun vector-v+! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Euler forward step, using the current display time settings." + (vector+float*! arg0 arg1 arg2 (seconds-per-frame)) + arg0 + ) + +(defun vector-v*float+! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Euler forward step, scaling velocity by velocity-scale." + (vector+float*! arg0 arg1 arg2 (* arg3 (seconds-per-frame))) + arg0 + ) + +(defun vector-v++! ((arg0 vector) (arg1 vector)) + "Update position in place, using display's current timing." + (vector+float*! arg0 arg0 arg1 (seconds-per-frame)) + arg0 + ) + +(defun vector-v*float! ((arg0 vector) (arg1 vector) (arg2 float)) + "Go from velocity to delta-p per frame, scaling by scale." + (vector-float*! arg0 arg1 (* arg2 (seconds-per-frame))) + ) + +(defun vector-v*float++! ((arg0 vector) (arg1 vector) (arg2 float)) + "Update position with given velocity, scaled by scale." + (vector+float*! arg0 arg0 arg1 (* arg2 (seconds-per-frame))) + arg0 + ) + +(defun vector-to-ups! ((arg0 vector) (arg1 vector)) + "Go from units per frame to units per second?" + (local-vars (at-0 int)) + (with-pp + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (let ((f0-0 (-> pp clock frames-per-second))) + (.mov at-0 f0-0) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + ) + +(defun vector-from-ups! ((arg0 vector) (arg1 vector)) + "Go from units per second to units per frame?" + (local-vars (at-0 int)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +(defun vector-length ((arg0 vector)) + "Get the length of the xyz part." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.y.vf acc vf0 vf1 acc :mask #b1000) + (.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000) + (.sqrt.vf Q vf1 :ftf #b11) + (.add.w.vf vf1 vf0 vf0 :mask #b1) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.mov v0-0 vf1) + v0-0 + ) + ) + +(defun vector-length-squared ((arg0 vector)) + "Get the squared length of the xyz part." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v0-0 vf1) + v0-0 + ) + ) + +(defun vector-xz-length-squared ((arg0 vector)) + "Get the length of the xz part, squared." + (+ (* (-> arg0 x) (-> arg0 x)) (* (-> arg0 z) (-> arg0 z))) + ) + +(defun vector-xz-length ((arg0 vector)) + "Get the length of the xz part." + (sqrtf (+ (* (-> arg0 x) (-> arg0 x)) (* (-> arg0 z) (-> arg0 z)))) + ) + +(defun vector-vector-distance ((arg0 vector) (arg1 vector)) + "Subtract the xyz parts and get the norm." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.y.vf acc vf0 vf1 acc :mask #b1000) + (.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000) + (.sqrt.vf Q vf1 :ftf #b11) + (.add.w.vf vf1 vf0 vf0 :mask #b1) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.mov v0-0 vf1) + v0-0 + ) + ) + +(defun vector-vector-distance-squared ((arg0 vector) (arg1 vector)) + "Squared norm of the difference of the xyz parts." + (local-vars (v0-0 float)) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.add.y.vf vf1 vf1 vf1 :mask #b1) + (.add.z.vf vf1 vf1 vf1 :mask #b1) + (.mov v0-0 vf1) + v0-0 + ) + ) + +(defun vector-vector-xz-distance ((arg0 vector) (arg1 vector)) + "Distance on the xz plane." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000) + (.sqrt.vf Q vf1 :ftf #b11) + (.add.w.vf vf1 vf0 vf0 :mask #b1) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.mov v0-0 vf1) + v0-0 + ) + ) + +(defun vector-vector-xy-distance ((arg0 vector) (arg1 vector)) + "distance on the xy plane." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.y.vf vf1 vf0 vf1 acc :mask #b1000) + (.sqrt.vf Q vf1 :ftf #b11) + (.add.w.vf vf1 vf0 vf0 :mask #b1) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.mov v0-0 vf1) + v0-0 + ) + ) + +(defun vector-vector-xz-distance-squared ((arg0 vector) (arg1 vector)) + "Distance on the xz plane squared." + (local-vars (v0-0 float)) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.add.z.vf vf1 vf1 vf1 :mask #b1) + (.mov v0-0 vf1) + v0-0 + ) + ) + +(defun vector-vector-planar-distance ((arg0 vector) (arg1 vector) (arg2 vector)) + (vector-vector-distance + (vector-flatten! (new 'stack-no-clear 'vector) arg0 arg2) + (vector-flatten! (new 'stack-no-clear 'vector) arg1 arg2) + ) + ) + +(defun vector-normalize! ((arg0 vector) (arg1 float)) + "Modify arg0 in place to have length arg1 for its xyz components. The w part is not changed." + (let ((f0-0 (vector-length arg0))) + (let ((v1-1 (/ arg1 f0-0))) + (set! (-> arg0 data 0) (* (-> arg0 data 0) v1-1)) + (set! (-> arg0 data 1) (* (-> arg0 data 1) v1-1)) + (set! (-> arg0 data 2) (* (-> arg0 data 2) v1-1)) + ) + ) + arg0 + ;; og:preserve-this + ; (rlet ((acc :class vf) + ; (Q :class vf) + ; (vf0 :class vf) + ; (vf1 :class vf) + ; (vf2 :class vf) + ; (vf3 :class vf) + ; ) + ; (init-vf0-vector) + ; (.lvf vf1 (&-> arg0 quad)) + ; (.mul.vf vf2 vf1 vf1 :mask #b111) + ; (let ((v1-0 arg1)) + ; (.mov vf3 v1-0) + ; ) + ; (.mul.x.vf acc vf0 vf2 :mask #b1000) + ; (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000) + ; (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000) + ; (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + ; (.wait.vf) + ; (.mul.vf vf1 vf1 Q :mask #b111) + ; (.nop.vf) + ; (.nop.vf) + ; (.nop.vf) + ; (.svf (&-> arg0 quad) vf1) + ; arg0 + ; ) + ) + +(defun vector-normalize-ret-len! ((arg0 vector) (arg1 float)) + "Modify arg0 in place to have length arg1 for its xyz components. + The w part isn't changed and the _original_ length is returned." + (let ((f0-0 (vector-length arg0))) + (let ((v1-1 (/ arg1 f0-0))) + (set! (-> arg0 data 0) (* (-> arg0 data 0) v1-1)) + (set! (-> arg0 data 1) (* (-> arg0 data 1) v1-1)) + (set! (-> arg0 data 2) (* (-> arg0 data 2) v1-1)) + ) + f0-0 + ) + ;; og:preserve-this + ; (local-vars (v1-1 float)) + ; (rlet ((acc :class vf) + ; (Q :class vf) + ; (vf0 :class vf) + ; (vf1 :class vf) + ; (vf2 :class vf) + ; (vf3 :class vf) + ; ) + ; (init-vf0-vector) + ; (.lvf vf1 (&-> arg0 quad)) + ; (.mul.vf vf2 vf1 vf1 :mask #b111) + ; (let ((v1-0 arg1)) + ; (.mov vf3 v1-0) + ; ) + ; (.mul.x.vf acc vf0 vf2 :mask #b1000) + ; (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000) + ; (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000) + ; (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + ; (.add.w.vf vf2 vf0 vf2 :mask #b1) + ; (.mov v1-1 vf2) + ; (let ((v0-0 (sqrtf v1-1))) + ; (.wait.vf) + ; (.mul.vf vf1 vf1 Q :mask #b111) + ; (.nop.vf) + ; (.nop.vf) + ; (.nop.vf) + ; (.svf (&-> arg0 quad) vf1) + ; v0-0 + ; ) + ; ) + ) + +(defun vector-normalize-copy! ((arg0 vector) (arg1 vector) (arg2 float)) + "Normalize, but not in place. + This implementation is very good compared to the vector-normalize! one. + The w component is set to 1." + (let ((f0-0 (vector-length arg1))) + (cond + ((= f0-0 0.0) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + (else + (let ((v1-3 (/ arg2 f0-0))) + (set! (-> arg0 x) (* (-> arg1 x) v1-3)) + (set! (-> arg0 y) (* (-> arg1 y) v1-3)) + (set! (-> arg0 z) (* (-> arg1 z) v1-3)) + ) + ) + ) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +(defun vector-xz-normalize! ((arg0 vector) (arg1 float)) + "Normalize, xz components only." + (let* ((v1-0 arg0) + (f0-4 (sqrtf (+ (* (-> v1-0 x) (-> v1-0 x)) (* (-> v1-0 z) (-> v1-0 z))))) + ) + (when (!= f0-4 0.0) + (let ((v1-3 (/ arg1 f0-4))) + (set! (-> arg0 x) (* (-> arg0 x) v1-3)) + (set! (-> arg0 z) (* (-> arg0 z) v1-3)) + ) + ) + ) + arg0 + ) + +(defun vector-xz-normalize-copy! ((arg0 vector) (arg1 vector) (arg2 float)) + "Normalize, xz components only." + (let* ((v1-0 arg1) + (f0-4 (sqrtf (+ (* (-> v1-0 x) (-> v1-0 x)) (* (-> v1-0 z) (-> v1-0 z))))) + ) + (cond + ((= f0-4 0.0) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + (else + (let ((v1-3 (/ arg2 f0-4))) + (set! (-> arg0 x) (* (-> arg1 x) v1-3)) + (set! (-> arg0 y) 0.0) + (set! (-> arg0 z) (* (-> arg1 z) v1-3)) + ) + ) + ) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +(defun vector-length-max! ((arg0 vector) (arg1 float)) + "Make vector at most arg1 length (xyz only). + If it is larger, project onto sphere. + Doesn't touch w" + (let ((f0-0 (vector-length arg0))) + (when (not (or (= f0-0 0.0) (< f0-0 arg1))) + (let ((f0-1 (/ arg1 f0-0))) + (set! (-> arg0 x) (* (-> arg0 x) f0-1)) + (set! (-> arg0 y) (* (-> arg0 y) f0-1)) + (set! (-> arg0 z) (* (-> arg0 z) f0-1)) + ) + ) + ) + arg0 + ) + +(defun vector-xz-length-max! ((arg0 vector) (arg1 float)) + "Make vector at most arg1 length (xz only). + It it is larger, project onto circle. + Doesn't touch w or y." + (let* ((v1-0 arg0) + (f0-4 (sqrtf (+ (* (-> v1-0 x) (-> v1-0 x)) (* (-> v1-0 z) (-> v1-0 z))))) + ) + (when (not (or (= f0-4 0.0) (< f0-4 arg1))) + (let ((f0-5 (/ arg1 f0-4))) + (set! (-> arg0 x) (* (-> arg0 x) f0-5)) + (set! (-> arg0 z) (* (-> arg0 z) f0-5)) + ) + ) + ) + arg0 + ) + +(defun vector-rotate-around-x! ((arg0 vector) (arg1 vector) (arg2 float)) + "Rotate a vector around the x axis." + (let* ((f28-0 (- arg2)) + (f30-0 (cos f28-0)) + (f1-0 (sin f28-0)) + (f2-0 (-> arg1 z)) + (f0-1 (-> arg1 y)) + ) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 z) (- (* f2-0 f30-0) (* f0-1 f1-0))) + (set! (-> arg0 y) (+ (* f2-0 f1-0) (* f0-1 f30-0))) + ) + arg0 + ) + +(defun vector-rotate-around-y! ((arg0 vector) (arg1 vector) (arg2 float)) + "Rotate a vector around the y axis." + (let ((f26-0 (-> arg1 z)) + (f30-0 (-> arg1 x)) + (f28-0 (cos arg2)) + (f0-0 (sin arg2)) + ) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 z) (- (* f26-0 f28-0) (* f30-0 f0-0))) + (set! (-> arg0 x) (+ (* f26-0 f0-0) (* f30-0 f28-0))) + ) + arg0 + ) + +(defun vector-rotate90-around-y! ((arg0 vector) (arg1 vector)) + "Rotate a vector 90 degrees around y." + (set! (-> arg0 quad) (-> arg1 quad)) + (let ((f0-0 (-> arg0 x))) + (set! (-> arg0 x) (- (-> arg1 z))) + (set! (-> arg0 z) f0-0) + ) + arg0 + ) + +(defun vector-rotate-around-z! ((arg0 vector) (arg1 vector) (arg2 float)) + "Rotate a vector around the z axis." + (let ((f26-0 (-> arg1 x)) + (f30-0 (-> arg1 y)) + (f28-0 (cos arg2)) + (f0-0 (sin arg2)) + ) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 x) (- (* f26-0 f28-0) (* f30-0 f0-0))) + (set! (-> arg0 y) (+ (* f26-0 f0-0) (* f30-0 f28-0))) + ) + arg0 + ) + +(defun rotate-y<-vector+vector ((arg0 vector) (arg1 vector)) + "Get the y rotation between vectors. These should have the same length." + (atan (- (-> arg1 x) (-> arg0 x)) (- (-> arg1 z) (-> arg0 z))) + ) + +(defun rotate-x<-vector+vector ((arg0 vector) (arg1 vector)) + "Get the x rotation between vectors. These should have the same length." + (atan (- (-> arg1 y) (-> arg0 y)) (- (-> arg1 z) (-> arg0 z))) + ) + +(defun rotate-z<-vector+vector ((arg0 vector) (arg1 vector)) + "Get the z rotation between vectors. These should have the same length." + (atan (- (-> arg1 x) (-> arg0 x)) (- (-> arg1 y) (-> arg0 y))) + ) + +(defun rotate-vector-to-vector ((arg0 vector) (arg1 vector) (arg2 vector)) + (let ((gp-0 (new 'stack-no-clear 'quaternion))) + (quaternion-from-two-vectors-max-angle! (the-as quaternion (&-> gp-0 x)) arg0 arg1 (the-as float arg2)) + (vector-orient-by-quat! arg0 arg0 (the-as quaternion (&-> gp-0 x))) + ) + (vector-normalize! arg0 1.0) + ) + +(defun vector-cvt.w.s! ((arg0 vector) (arg1 vector)) + "Convert float to int32. Truncate." + (rlet ((vf1 :class vf)) + (.lvf vf1 (&-> arg1 quad)) + (.ftoi.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +(defun vector-cvt.s.w! ((arg0 vector) (arg1 vector)) + "Convert float to int32." + (rlet ((vf1 :class vf)) + (.lvf vf1 (&-> arg1 quad)) + (.itof.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +(defun rot-zxy-from-vector! ((arg0 vector) (arg1 vector)) + "I think this gives you a vector of euler angles to rotate some unit vector + to arg1." + (let* ((f28-0 (-> arg1 z)) + (f30-0 (-> arg1 x)) + (f0-0 (atan f30-0 f28-0)) + ) + (set! (-> arg0 y) f0-0) + (let* ((f26-0 (- f0-0)) + (f0-4 (- (* f28-0 (cos f26-0)) (* f30-0 (sin f26-0)))) + ) + (set! (-> arg0 x) (atan (- (-> arg1 y)) f0-4)) + ) + ) + (set! (-> arg0 z) 0.0) + arg0 + ) + +(defun rot-zyx-from-vector! ((arg0 vector) (arg1 vector)) + "I think this gives you a vector of euler angles to rotate some unit vector + to arg1." + (let* ((f28-0 (-> arg1 z)) + (f30-0 (- (-> arg1 y))) + (f0-1 (atan f30-0 f28-0)) + ) + (set! (-> arg0 x) f0-1) + (let* ((f26-0 (- f0-1)) + (f0-5 (- (* f28-0 (cos f26-0)) (* f30-0 (sin f26-0)))) + ) + (set! (-> arg0 y) (atan (-> arg1 x) f0-5)) + ) + ) + (set! (-> arg0 z) 0.0) + arg0 + ) + +(defun vector-lerp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Linearly interpolate between two vectors. Alpha isn't clamped. + w will be set to 1." + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov vf4 arg3) + (.add.x.vf vf3 vf0 vf0 :mask #b1000) + (.sub.vf vf2 vf2 vf1) + (.mul.x.vf vf2 vf2 vf4) + (.add.vf vf3 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +(defun vector-lerp-clamp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Linearly interpolate between two vectors, clamping alpha to 0, 1. + w will be set to 1." + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (let ((v1-3 arg0)) + (let ((f0-2 arg3)) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (let ((a1-1 f0-2)) + (.mov vf4 a1-1) + ) + ) + (.add.x.vf vf3 vf0 vf0 :mask #b1000) + (.sub.vf vf2 vf2 vf1) + (.mul.x.vf vf2 vf2 vf4) + (.add.vf vf3 vf1 vf2 :mask #b111) + (.svf (&-> v1-3 quad) vf3) + ) + ) + ) + arg0 + ) + ) + +(defun vector4-lerp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Interpolate all 4 elements of a vector. Alpha is not clamped." + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov vf4 arg3) + (.sub.vf vf2 vf2 vf1) + (.mul.x.vf vf2 vf2 vf4) + (.add.vf vf3 vf1 vf2) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +(defun vector4-lerp-clamp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Interpolate all 4 elements of a vector. Alpha is clamped to [0, 1]." + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (let ((v1-3 arg0)) + (let ((f0-2 arg3)) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (let ((a1-1 f0-2)) + (.mov vf4 a1-1) + ) + ) + (.sub.vf vf2 vf2 vf1) + (.mul.x.vf vf2 vf2 vf4) + (.add.vf vf3 vf1 vf2) + (.svf (&-> v1-3 quad) vf3) + ) + ) + ) + arg0 + ) + ) + +(defun vector-degi ((arg0 vector) (arg1 vector)) + "Convert a vector (in _rotations_) to degrees units, stored in an int. + Truncates to the nearest _rotation_. + Neither the input or output is a commonly used form. + Unsurprisingly, this strange function is never used." + (local-vars (v1-0 uint128) (v1-1 uint128)) + (rlet ((vf1 :class vf)) + (.lvf vf1 (&-> arg1 quad)) + (.ftoi.vf vf1 vf1) + (.mov v1-0 vf1) + (.pw.sll v1-1 v1-0 16) + (set! (-> arg0 quad) v1-1) + arg0 + ) + ) + +(defun vector-degf ((arg0 vector) (arg1 vector)) + "Convert a vector (in integer degree units) to floating point rotations. + Truncates to the nearest _rotation_. + Like the previous function, this is stupid and unused." + (local-vars (v1-1 uint128)) + (rlet ((vf1 :class vf)) + (let ((v1-0 (-> arg1 quad))) + (.pw.sra v1-1 v1-0 16) + ) + (.mov vf1 v1-1) + (.itof.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +(defun vector-degmod ((arg0 vector) (arg1 vector)) + "This one is actually right. Wraps degrees units (in floats, like they should be) + to +/- half a rotation." + (local-vars (v1-0 uint128) (v1-1 uint128) (v1-2 uint128)) + (rlet ((vf1 :class vf)) + (.lvf vf1 (&-> arg1 quad)) + (.ftoi.vf vf1 vf1) + (.mov v1-0 vf1) + (.pw.sll v1-1 v1-0 16) + (.pw.sra v1-2 v1-1 16) + (.mov vf1 v1-2) + (.itof.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; WARN: Return type mismatch float vs none. +(defun vector-deg-diff ((arg0 vector) (arg1 vector) (arg2 vector)) + "Wrapped difference, degrees units. Will have the usual 16-bit accuracy issue." + (local-vars + (v0-0 float) + (v1-0 uint128) + (v1-1 uint128) + (v1-2 uint128) + (v1-3 uint128) + (a1-1 uint128) + (a1-2 uint128) + ) + (rlet ((vf1 :class vf) + (vf2 :class vf) + ) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.ftoi.vf vf1 vf1) + (.ftoi.vf vf2 vf2) + (.mov a1-1 vf1) + (.mov v1-0 vf2) + (.pw.sll a1-2 a1-1 16) + (.pw.sll v1-1 v1-0 16) + (.psubw v1-2 a1-2 v1-1) + (.pw.sra v1-3 v1-2 16) + (.mov vf1 v1-3) + (.itof.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + (.mov v0-0 vf1) + (none) + ) + ) + +(defun vector-deg-lerp-clamp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Apply deg-lerp-clamp to the xyz components of a vector. Sets w = 1." + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (set! (-> arg0 x) (deg-lerp-clamp (-> arg1 x) (-> arg2 x) arg3)) + (set! (-> arg0 y) (deg-lerp-clamp (-> arg1 y) (-> arg2 y) arg3)) + (set! (-> arg0 z) (deg-lerp-clamp (-> arg1 z) (-> arg2 z) arg3)) + (set! (-> arg0 w) 1.0) + ) + ) + arg0 + ) + +(defun vector3s-copy! ((arg0 vector) (arg1 vector)) + "Copy a vector3s" + (set! (-> arg0 x) (-> arg1 x)) + (set! (-> arg0 y) (-> arg1 y)) + (set! (-> arg0 z) (-> arg1 z)) + arg0 + ) + +(defun vector3s+! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Add 2 vectors3." + (set! (-> arg0 x) (+ (-> arg1 x) (-> arg2 x))) + (set! (-> arg0 y) (+ (-> arg1 y) (-> arg2 y))) + (set! (-> arg0 z) (+ (-> arg1 z) (-> arg2 z))) + arg0 + ) + +(defun vector3s*float! ((arg0 vector) (arg1 vector) (arg2 float)) + "mult vectors3 by float" + (set! (-> arg0 x) (* (-> arg1 x) arg2)) + (set! (-> arg0 y) (* (-> arg1 y) arg2)) + (set! (-> arg0 z) (* (-> arg1 z) arg2)) + arg0 + ) + +(defun vector3s-! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Subtract 2 vectors3: c = (a - b)." + (set! (-> arg0 x) (- (-> arg1 x) (-> arg2 x))) + (set! (-> arg0 y) (- (-> arg1 y) (-> arg2 y))) + (set! (-> arg0 z) (- (-> arg1 z) (-> arg2 z))) + arg0 + ) + +;; WARN: Return type mismatch float vs none. +(defun vector4-add! ((arg0 vector4) (arg1 vector4) (arg2 vector4)) + "Add 2 vector4s." + (local-vars (v0-0 float)) + (rlet ((vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.add.vf vf4 vf5 vf6) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; WARN: Return type mismatch float vs none. +(defun vector4-sub! ((arg0 vector4) (arg1 vector4) (arg2 vector4)) + "Subtract 2 vector4s." + (local-vars (v0-0 float)) + (rlet ((vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.sub.vf vf4 vf5 vf6) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; WARN: Return type mismatch float vs none. +(defun vector4-mul! ((arg0 vector4) (arg1 vector4) (arg2 vector4)) + "Multiple 2 vector4s." + (local-vars (v0-0 float)) + (rlet ((vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.mul.vf vf4 vf5 vf6) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; WARN: Return type mismatch float vs none. +(defun vector4-scale! ((arg0 vector4) (arg1 vector4) (arg2 float)) + "arg0 = arg1 * arg2." + (local-vars (v0-0 float)) + (rlet ((vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (.mov vf6 arg2) + (.lvf vf5 (&-> arg1 quad)) + (.mul.x.vf vf4 vf5 vf6) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; WARN: Return type mismatch float vs none. +(defun vector4-madd! ((arg0 vector4) (arg1 vector4) (arg2 vector4) (arg3 float)) + "arg0 = arg1 + arg2 * arg3." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.mov vf7 arg3) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.mul.w.vf acc vf5 vf0) + (.add.mul.x.vf vf4 vf6 vf7 acc) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; WARN: Return type mismatch float vs none. +(defun vector4-msub! ((arg0 vector4) (arg1 vector4) (arg2 vector4) (arg3 float)) + "arg0 = arg1 - arg2 * arg3." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.mov vf7 arg3) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.mul.w.vf acc vf5 vf0) + (.sub.mul.x.vf vf4 vf6 vf7 acc) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-add! ((arg0 (inline-array vector4)) (arg1 (inline-array vector4)) (arg2 (inline-array vector4)) (arg3 int)) + "Apply vector4-add! to all arrays." + (dotimes (s2-0 arg3) + (vector4-add! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2)) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-sub! ((arg0 (inline-array vector4)) (arg1 (inline-array vector4)) (arg2 (inline-array vector4)) (arg3 int)) + "Apply vector4-sub! to all arrays." + (dotimes (s2-0 arg3) + (vector4-sub! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2)) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-mul! ((arg0 (inline-array vector4)) (arg1 (inline-array vector4)) (arg2 (inline-array vector4)) (arg3 int)) + "Apply vector4-mul! to all arrays." + (dotimes (s2-0 arg3) + (vector4-mul! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2)) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-scale! ((arg0 (inline-array vector4)) (arg1 (inline-array vector4)) (arg2 float) (arg3 int)) + "Apply vector4-scale! to all arrays." + (dotimes (s2-0 arg3) + (vector4-scale! (the-as vector4 arg0) (the-as vector4 arg1) arg2) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-madd! ((arg0 (inline-array vector4)) + (arg1 (inline-array vector4)) + (arg2 (inline-array vector4)) + (arg3 float) + (arg4 int) + ) + "Apply vector4-madd! to all arrays." + (dotimes (s1-0 arg4) + (vector4-madd! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2) arg3) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-msub! ((arg0 (inline-array vector4)) + (arg1 (inline-array vector4)) + (arg2 (inline-array vector4)) + (arg3 float) + (arg4 int) + ) + "Apply vector4-msub! to all arrays." + (dotimes (s1-0 arg4) + (vector4-msub! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2) arg3) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +(defun vector4-array-lerp! ((arg0 (inline-array vector4)) + (arg1 (inline-array vector4)) + (arg2 (inline-array vector4)) + (arg3 float) + (arg4 int) + ) + "Apply vector4-lerp! to all arrays." + (dotimes (s1-0 arg4) + (vector4-lerp! (the-as vector arg0) (the-as vector arg1) (the-as vector arg2) arg3) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + #f + ) + +(defun spheres-overlap? ((arg0 sphere) (arg1 sphere)) + "Do the spheres overlap?" + (local-vars (v1-0 float) (a0-1 float)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.lvf vf2 (&-> arg1 quad)) + (.sub.vf vf3 vf1 vf2 :mask #b111) + (.mul.vf vf3 vf3 vf3 :mask #b111) + (.add.w.vf vf4 vf1 vf2 :mask #b1000) + (.mul.w.vf vf4 vf4 vf4 :mask #b1000) + (.add.y.vf vf3 vf3 vf3 :mask #b1) + (.add.z.vf vf3 vf3 vf3 :mask #b1) + (.add.w.vf vf4 vf0 vf4 :mask #b1) + (.mov a0-1 vf4) + (.mov v1-0 vf3) + (>= a0-1 v1-0) + ) + ) + +(defun sphere<-vector! ((arg0 sphere) (arg1 vector)) + "Set the position of the sphere to arg1. Does not change the radius." + (let ((f0-0 (-> arg0 r))) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 r) f0-0) + ) + arg0 + ) + +(defun sphere<-vector+r! ((arg0 sphere) (arg1 vector) (arg2 float)) + "Set the position of the sphere from arg1 and the radius from arg2." + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 r) arg2) + arg0 + ) + +(defun rand-vu-sphere-point! ((arg0 vector) (arg1 float)) + "Get a random point on the sphere at the origin with radius arg1. + The point is on the surface of the sphere." + (set-vector! + arg0 + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + 1.0 + ) + (vector-normalize! arg0 (rand-vu-float-range 0.0 arg1)) + ) + +(defun rand-vu-sphere-point-uniform! ((arg0 vector) (arg1 float)) + (local-vars (v1-3 float) (f0-5 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + 666.6 + (until (>= 1.0 f0-5) + (set-vector! + arg0 + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + 1.0 + ) + (.lvf vf1 (&-> arg0 quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-3 vf1) + (set! f0-5 v1-3) + ) + (vector-float*! arg0 arg0 arg1) + ) + ) + +(defmethod print ((this vector2)) + (format #t "#" (-> this x) (-> this y) this) + this + ) + +(defun vector-vector-angle-safe ((arg0 vector) (arg1 vector)) + "Get the angle between two vectors, with some 'safety' applied..." + (let ((f0-1 (vector-dot + (vector-normalize-copy! (new 'stack-no-clear 'vector) arg0 1.0) + (vector-normalize-copy! (new 'stack-no-clear 'vector) arg1 1.0) + ) + ) + ) + (cond + ((>= f0-1 1.0) + 0.0 + ) + ((>= -1.0 f0-1) + ;; og:preserve-this what is this value?? this should be 180 degrees. + 0.017257283 + ) + (else + (acos f0-1) + ) + ) + ) + ) + +(defun vector-get-unique! ((arg0 vector) (arg1 vector)) + (let ((v1-0 0)) + (let ((f0-0 (-> arg1 x))) + (when (< (-> arg1 y) f0-0) + (set! f0-0 (-> arg1 y)) + (set! v1-0 1) + ) + (when (< (-> arg1 z) f0-0) + (-> arg1 z) + (set! v1-0 2) + ) + ) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 data v1-0) 1.0) + ) + arg0 + ) + +(defun vector-get-closest-perpendicular! ((arg0 vector) (arg1 vector) (arg2 vector)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + 0.0 + (let ((f0-2 (vector-dot arg1 arg2))) + (vector-float*! s5-0 arg1 f0-2) + ) + (vector-! s5-0 arg2 s5-0) + (vector-normalize! s5-0 1.0) + (set! (-> arg0 quad) (-> s5-0 quad)) + ) + arg0 + ) diff --git a/goal_src/jak3/engine/ps2/timer-h.gc b/goal_src/jak3/engine/ps2/timer-h.gc index af321d3c22..bf12de2c2b 100644 --- a/goal_src/jak3/engine/ps2/timer-h.gc +++ b/goal_src/jak3/engine/ps2/timer-h.gc @@ -5,5 +5,112 @@ ;; name in dgo: timer-h ;; dgos: GAME +#|@file +There are two sources for timing: +- EE TIMER1, used for the frame profiler. There are 9765 counts of this per frame. It gets reset in drawable. +- The "stopwatch" system, used for reading the CPU clock cycle counter, at 300 MHz (32-bit) +|# + +;; The Emotion Engine has 4 hardware timers, timer1 is used as the +(defconstant TIMER0_BANK (the timer-bank #x10000000)) ;; has HOLD register! +(defconstant TIMER1_BANK (the timer-bank #x10000800)) ;; has HOLD register! +(defconstant TIMER2_BANK (the timer-bank #x10001000)) ;; does NOT have HOLD register! +(defconstant TIMER3_BANK (the timer-bank #x10001800)) ;; does NOT have HOLD register! + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; PC Port Timer +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defmacro get-cpu-clock () + "Read the 300 MHz clock." + ;; __read-ee-timer is a 300 MHz timer from the C Kernel. + ;; it's a real timer. + `(the uint (logand #xffffffff (__read-ee-timer))) + ) + +(defmacro get-bus-clock/256 () + "Read the 150 MHz / 256 clock." + ;; 300 MHz / (2^9) + `(the uint (logand #xffffffff (shr (__read-ee-timer) 9))) + ) + +(#when PC_PORT + ;; the bus clock can be reset, which just stores the current count here. + (define *timer-reset-value* (the uint 0)) + ) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Timer HW +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defenum timer-clock-selection + :type uint8 + (busclk 0) + (busclk/16 1) + (busclk/256 2) + (hblank 3) + ) + ;; DECOMP BEGINS +(deftype timer-mode (uint32) + "This matches the Tn_MODE register structure of the ps2 EE timers. +Only the lower 32 bits of these registers are usable, and the upper 16 hardwired to zero." + ((clks timer-clock-selection :offset 0 :size 2) + (gate uint8 :offset 2 :size 1) + (gats uint8 :offset 3 :size 1) + (gatm uint8 :offset 4 :size 2) + (zret uint8 :offset 6 :size 1) + (cue uint8 :offset 7 :size 1) + (cmpe uint8 :offset 8 :size 1) + (ovfe uint8 :offset 9 :size 1) + (equf uint8 :offset 10 :size 1) + (ovff uint8 :offset 11 :size 1) + ) + ) + +(deftype timer-bank (structure) + "This matches an EE timer (without a HOLD register, timers 2 and 3). +Each register is 128-bits wide, but only the lower 32-bits are usable, and the upper +16-bits of that are hardwired to zero." + ((count uint32) + (mode timer-mode :offset 16) + (comp uint32 :offset 32) + ) + ) + + +(deftype timer-hold-bank (timer-bank) + "This matches an EE timer (with a HOLD register, timers 0 and 1)." + ((hold uint32 :offset 48) + ) + ) + + +(deftype stopwatch (basic) + "Stopwatches are used to measure CPU clock cycles. +They don't use the timer above, but instead the Count COP0 register, +which counts CPU clock cycles directly." + ((prev-time-elapsed time-frame) + (start-time time-frame) + (begin-level int32) + ) + ) + + +;; Confusing! What IS this measuring exactly? Hmm... +;; this is set by default for NTSC, it will later be changed if PAL. +(define *ticks-per-frame* (/ 2500000 256)) ;; 2 500 000 / 256 = 9765 + +(defun timer-init ((arg0 timer-bank) (arg1 timer-mode)) + "Initiate a timer, start counting at a rate of 1 every 256 bus clocks (BUSCLK: ~147.456MHz)." + (set! (-> arg0 mode) arg1) + (set! (-> arg0 count) (the-as uint 0)) + 0 + ) + +;; og:preserve-this +;; needs PS2 TIMER porting +(#unless PC_PORT + (timer-init (the-as timer-bank TIMER1_BANK) (new 'static 'timer-mode :clks (timer-clock-selection busclk/16) :cue 1)) + ) diff --git a/goal_src/jak3/engine/ps2/vif-h.gc b/goal_src/jak3/engine/ps2/vif-h.gc index 87eeae5854..7320c34344 100644 --- a/goal_src/jak3/engine/ps2/vif-h.gc +++ b/goal_src/jak3/engine/ps2/vif-h.gc @@ -5,5 +5,73 @@ ;; name in dgo: vif-h ;; dgos: GAME +#|@file +Types related to VIF: the PS2's Vector Interface. + Each of VU0 and VU1 has a VIF which is used to sent/receive data. + The VIFs are controlled by registers and fed data using DMA. + The VIF registers defined here are used extremely rarely, usually they are sent DMA + (during gameplay, everything is synchronized by DMA, so code generally does not know when + it is safe to mess with VIF registers.) +|# + ;; DECOMP BEGINS +(deftype vif-stat (uint32) + ((vps uint8 :offset 0 :size 2) + (vew uint8 :offset 2 :size 1) + (mrk uint8 :offset 6 :size 1) + (vss uint8 :offset 8 :size 1) + (vfs uint8 :offset 9 :size 1) + (vis uint8 :offset 10 :size 1) + (int uint8 :offset 11 :size 1) + (er0 uint8 :offset 12 :size 1) + (er1 uint8 :offset 13 :size 1) + (fqc uint8 :offset 24 :size 4) + ) + ) + +(deftype vif-fbrst (uint32) + ((rst uint8 :offset 0 :size 1) + (fbk uint8 :offset 1 :size 1) + (stp uint8 :offset 2 :size 1) + (stc uint8 :offset 3 :size 1) + ) + ) + +(deftype vif-err (uint32) + ((mii uint8 :offset 0 :size 1) + (me0 uint8 :offset 1 :size 1) + (me1 uint8 :offset 2 :size 1) + ) + ) + +(deftype vif-bank (structure) + ((stat uint32) + (fbrst uint32 :offset 16) + (err vif-err :offset 32) + (mark uint32 :offset 48) + (cycle uint32 :offset 64) + (mode uint32 :offset 80) + (num uint32 :offset 96) + (mask uint32 :offset 112) + (code uint32 :offset 128) + (itops uint32 :offset 144) + (base uint32 :offset 160) + (offset uint32 :offset 176) + (tops uint32 :offset 192) + (itop uint32 :offset 208) + (top uint32 :offset 224) + (r0 uint32 :offset 256) + (r1 uint32 :offset 272) + (r2 uint32 :offset 288) + (r3 uint32 :offset 304) + (c0 uint32 :offset 320) + (c1 uint32 :offset 336) + (c2 uint32 :offset 352) + (c3 uint32 :offset 368) + ) + ) + +;; PS2 VIF map. There are no VIFs in OpenGOAL. +(defconstant VIF0_BANK (the vif-bank #x10003800)) +(defconstant VIF1_BANK (the vif-bank #x10003c00)) diff --git a/goal_src/jak3/engine/ui/text-h.gc b/goal_src/jak3/engine/ui/text-h.gc index 6b8dfb5d26..10a3898b59 100644 --- a/goal_src/jak3/engine/ui/text-h.gc +++ b/goal_src/jak3/engine/ui/text-h.gc @@ -5,5 +5,914 @@ ;; name in dgo: text-h ;; dgos: GAME +;; +++text-id +(defenum text-id + :type uint32 + (null #x0) + (text-0001 #x0001) + (text-0002 #x0002) + (text-0003 #x0003) + (text-0004 #x0004) + (text-0005 #x0005) + (text-0006 #x0006) + (text-0007 #x0007) + (text-0008 #x0008) + (text-0009 #x0009) + (text-000a #x000a) + (text-000b #x000b) + (text-000c #x000c) + (text-000d #x000d) + (text-000e #x000e) + (text-000f #x000f) + (text-0010 #x0010) + (text-0011 #x0011) + (text-0012 #x0012) + (text-0013 #x0013) + (text-0014 #x0014) + (text-0015 #x0015) + (text-0016 #x0016) + (text-0017 #x0017) + (text-0018 #x0018) + (text-0019 #x0019) + (text-001a #x001a) + (text-001b #x001b) + (text-001c #x001c) + (text-001d #x001d) + (text-001e #x001e) + (text-001f #x001f) + (text-0020 #x0020) + (text-0021 #x0021) + (text-0022 #x0022) + (text-0023 #x0023) + (text-0024 #x0024) + (text-0025 #x0025) + (text-0026 #x0026) + (text-0027 #x0027) + (text-0028 #x0028) + (text-0029 #x0029) + (text-002a #x002a) + (text-002b #x002b) + (text-002c #x002c) + (text-002d #x002d) + (text-002e #x002e) + (text-002f #x002f) + (text-0030 #x0030) + (text-0031 #x0031) + (text-0032 #x0032) + (text-0033 #x0033) + (text-0034 #x0034) + (text-0035 #x0035) + (text-0036 #x0036) + (text-0037 #x0037) + (text-0038 #x0038) + (text-0039 #x0039) + (text-003a #x003a) + (text-003b #x003b) + (text-003c #x003c) + (text-003d #x003d) + (text-003e #x003e) + (text-003f #x003f) + (text-0040 #x0040) + (text-0041 #x0041) + (text-0042 #x0042) + (text-0043 #x0043) + (text-0044 #x0044) + (text-0049 #x0049) + (text-004a #x004a) + (text-004b #x004b) + (text-004c #x004c) + (text-004d #x004d) + (text-0052 #x0052) + (text-0053 #x0053) + (text-0054 #x0054) + (text-0055 #x0055) + (text-0056 #x0056) + (text-0057 #x0057) + (text-0058 #x0058) + (text-0059 #x0059) + (text-005a #x005a) + (text-005b #x005b) + (text-005c #x005c) + (text-005d #x005d) + (text-005e #x005e) + (text-005f #x005f) + (text-0060 #x0060) + (text-0061 #x0061) + (text-0062 #x0062) + (text-0063 #x0063) + (text-0065 #x0065) + (text-0066 #x0066) + (text-0067 #x0067) + (text-0068 #x0068) + (text-0069 #x0069) + (text-006a #x006a) + (text-006b #x006b) + (text-006c #x006c) + (text-006d #x006d) + (text-006e #x006e) + (text-006f #x006f) + (text-0072 #x0072) + (text-0073 #x0073) + (text-0074 #x0074) + (text-0075 #x0075) + (text-0076 #x0076) + (text-0077 #x0077) + (text-0078 #x0078) + (text-0079 #x0079) + (text-007a #x007a) + (text-007b #x007b) + (text-007c #x007c) + (text-007d #x007d) + (text-007e #x007e) + (text-007f #x007f) + (text-0080 #x0080) + (text-0081 #x0081) + (text-0082 #x0082) + (text-0083 #x0083) + (text-0084 #x0084) + (text-0085 #x0085) + (text-0086 #x0086) + (text-0087 #x0087) + (text-0088 #x0088) + (text-0089 #x0089) + (text-008a #x008a) + (text-008b #x008b) + (text-008c #x008c) + (text-008d #x008d) + (text-008e #x008e) + (text-008f #x008f) + (text-0090 #x0090) + (text-0091 #x0091) + (text-0092 #x0092) + (text-0093 #x0093) + (text-0094 #x0094) + (text-0095 #x0095) + (text-0096 #x0096) + (text-0097 #x0097) + (text-0098 #x0098) + (text-0099 #x0099) + (text-009a #x009a) + (text-009b #x009b) + (text-009c #x009c) + (text-009d #x009d) + (text-009e #x009e) + (text-009f #x009f) + (text-00a0 #x00a0) + (text-00a1 #x00a1) + (text-00a2 #x00a2) + (text-00a3 #x00a3) + (text-00a4 #x00a4) + (text-00a5 #x00a5) + (text-00a6 #x00a6) + (text-00a7 #x00a7) + (text-00a8 #x00a8) + (text-00a9 #x00a9) + (text-00aa #x00aa) + (text-00ab #x00ab) + (text-00ac #x00ac) + (text-00ad #x00ad) + (text-00ae #x00ae) + (text-00af #x00af) + (text-00b0 #x00b0) + (text-00b1 #x00b1) + (text-00b2 #x00b2) + (text-00b3 #x00b3) + (text-00b4 #x00b4) + (text-00b5 #x00b5) + (text-00b6 #x00b6) + (text-012c #x012c) + (text-012d #x012d) + (text-012e #x012e) + (text-012f #x012f) + (text-0130 #x0130) + (text-0131 #x0131) + (text-0132 #x0132) + (text-0134 #x0134) + (text-0135 #x0135) + (text-0136 #x0136) + (text-0137 #x0137) + (text-0138 #x0138) + (text-0139 #x0139) + (text-013a #x013a) + (text-013b #x013b) + (text-013c #x013c) + (text-013d #x013d) + (text-013e #x013e) + (text-013f #x013f) + (text-0140 #x0140) + (text-0141 #x0141) + (text-0142 #x0142) + (text-0143 #x0143) + (text-0144 #x0144) + (text-0145 #x0145) + (text-0147 #x0147) + (text-0155 #x0155) + (text-0156 #x0156) + (text-0157 #x0157) + (text-0158 #x0158) + (text-01b8 #x01b8) + (text-0207 #x0207) + (text-0208 #x0208) + (text-0209 #x0209) + (text-020a #x020a) + (text-020b #x020b) + (text-020c #x020c) + (text-020d #x020d) + (text-020e #x020e) + (text-03bf #x03bf) + (text-03c0 #x03c0) + (text-03c1 #x03c1) + (text-03c2 #x03c2) + (text-03c3 #x03c3) + (text-03c4 #x03c4) + (text-03c5 #x03c5) + (text-03c6 #x03c6) + (text-03c7 #x03c7) + (text-03c8 #x03c8) + (text-03c9 #x03c9) + (text-03d1 #x03d1) + (text-0408 #x0408) + (text-0409 #x0409) + (text-040a #x040a) + (text-040b #x040b) + (text-040c #x040c) + (text-040d #x040d) + (text-040e #x040e) + (text-0443 #x0443) + (text-0444 #x0444) + (text-0445 #x0445) + (text-0446 #x0446) + (text-0447 #x0447) + (text-0448 #x0448) + (text-0449 #x0449) + (text-044b #x044b) + (text-044c #x044c) + (text-044d #x044d) + (text-044e #x044e) + (text-044f #x044f) + (text-0450 #x0450) + (text-0451 #x0451) + (text-0452 #x0452) + (text-0453 #x0453) + (text-0454 #x0454) + (text-0456 #x0456) + (text-0457 #x0457) + (text-0458 #x0458) + (text-0459 #x0459) + (text-045a #x045a) + (text-045b #x045b) + (text-045c #x045c) + (text-045d #x045d) + (text-045e #x045e) + (text-045f #x045f) + (text-0460 #x0460) + (text-0461 #x0461) + (text-0462 #x0462) + (text-0463 #x0463) + (text-0464 #x0464) + (text-0465 #x0465) + (text-0466 #x0466) + (text-0467 #x0467) + (text-0468 #x0468) + (text-0469 #x0469) + (text-046a #x046a) + (text-046b #x046b) + (text-053d #x053d) + (text-053e #x053e) + (text-0546 #x0546) + (text-0547 #x0547) + (text-0548 #x0548) + (text-0549 #x0549) + (text-054a #x054a) + (text-054b #x054b) + (text-054c #x054c) + (text-054d #x054d) + (text-054e #x054e) + (text-054f #x054f) + (text-0550 #x0550) + (text-0551 #x0551) + (text-0552 #x0552) + (text-0553 #x0553) + (text-0554 #x0554) + (text-0555 #x0555) + (text-0556 #x0556) + (text-0557 #x0557) + (text-0558 #x0558) + (text-0559 #x0559) + (text-055a #x055a) + (text-055b #x055b) + (text-055c #x055c) + (text-055d #x055d) + (text-055e #x055e) + (text-055f #x055f) + (text-0562 #x0562) + (text-0563 #x0563) + (text-0564 #x0564) + (text-0565 #x0565) + (text-0566 #x0566) + (text-0567 #x0567) + (text-0568 #x0568) + (text-0569 #x0569) + (text-056a #x056a) + (text-056b #x056b) + (text-056c #x056c) + (text-056d #x056d) + (text-056e #x056e) + (text-056f #x056f) + (text-0570 #x0570) + (text-0571 #x0571) + (text-0572 #x0572) + (text-0573 #x0573) + (text-0574 #x0574) + (text-0575 #x0575) + (text-0576 #x0576) + (text-0577 #x0577) + (text-0578 #x0578) + (text-0579 #x0579) + (text-057a #x057a) + (text-057b #x057b) + (text-057c #x057c) + (text-057d #x057d) + (text-057e #x057e) + (text-057f #x057f) + (text-0580 #x0580) + (text-0581 #x0581) + (text-0582 #x0582) + (text-0583 #x0583) + (text-0584 #x0584) + (text-0585 #x0585) + (text-0586 #x0586) + (text-0587 #x0587) + (text-0588 #x0588) + (text-0589 #x0589) + (text-058a #x058a) + (text-058b #x058b) + (text-058c #x058c) + (text-058d #x058d) + (text-058e #x058e) + (text-058f #x058f) + (text-0590 #x0590) + (text-0591 #x0591) + (text-0592 #x0592) + (text-0593 #x0593) + (text-0594 #x0594) + (text-0595 #x0595) + (text-0596 #x0596) + (text-0597 #x0597) + (text-0598 #x0598) + (text-0599 #x0599) + (text-059a #x059a) + (text-059b #x059b) + (text-059c #x059c) + (text-059d #x059d) + (text-059e #x059e) + (text-059f #x059f) + (text-05a0 #x05a0) + (text-05a1 #x05a1) + (text-05a3 #x05a3) + (text-05a4 #x05a4) + (text-05a6 #x05a6) + (text-05a7 #x05a7) + (text-05a8 #x05a8) + (text-05a9 #x05a9) + (text-05aa #x05aa) + (text-05ab #x05ab) + (text-05ac #x05ac) + (text-05ad #x05ad) + (text-05ae #x05ae) + (text-05af #x05af) + (text-05b0 #x05b0) + (text-05b1 #x05b1) + (text-05b2 #x05b2) + (text-05b3 #x05b3) + (text-05b4 #x05b4) + (text-05b5 #x05b5) + (text-05b6 #x05b6) + (text-05b7 #x05b7) + (text-05b8 #x05b8) + (text-05b9 #x05b9) + (text-05ba #x05ba) + (text-05bb #x05bb) + (text-05bc #x05bc) + (text-05bd #x05bd) + (text-05be #x05be) + (text-05bf #x05bf) + (text-05c0 #x05c0) + (text-05c1 #x05c1) + (text-05c2 #x05c2) + (text-05c3 #x05c3) + (text-05c4 #x05c4) + (text-05c5 #x05c5) + (text-05c6 #x05c6) + (text-05c7 #x05c7) + (text-05c8 #x05c8) + (text-05c9 #x05c9) + (text-05ca #x05ca) + (text-05cb #x05cb) + (text-05cc #x05cc) + (text-05cd #x05cd) + (text-05ce #x05ce) + (text-05cf #x05cf) + (text-05d0 #x05d0) + (text-05d1 #x05d1) + (text-05d2 #x05d2) + (text-05d3 #x05d3) + (text-05d4 #x05d4) + (text-05d5 #x05d5) + (text-05d6 #x05d6) + (text-05d7 #x05d7) + (text-05d8 #x05d8) + (text-05d9 #x05d9) + (text-05da #x05da) + (text-05db #x05db) + (text-05dc #x05dc) + (text-05dd #x05dd) + (text-05de #x05de) + (text-05df #x05df) + (text-05e0 #x05e0) + (text-05e1 #x05e1) + (text-05e2 #x05e2) + (text-05e3 #x05e3) + (text-05e4 #x05e4) + (text-05e5 #x05e5) + (text-05e6 #x05e6) + (text-05e7 #x05e7) + (text-05e8 #x05e8) + (text-05e9 #x05e9) + (text-05ea #x05ea) + (text-05eb #x05eb) + (text-05ec #x05ec) + (text-05ed #x05ed) + (text-05ee #x05ee) + (text-05f0 #x05f0) + (text-05f1 #x05f1) + (text-05f2 #x05f2) + (text-05f3 #x05f3) + (text-05f5 #x05f5) + (text-05f6 #x05f6) + (text-05f7 #x05f7) + (text-05f8 #x05f8) + (text-05f9 #x05f9) + (text-05fa #x05fa) + (text-05fb #x05fb) + (text-05fc #x05fc) + (text-05fd #x05fd) + (text-05fe #x05fe) + (text-05ff #x05ff) + (text-0600 #x0600) + (text-0601 #x0601) + (text-0602 #x0602) + (text-0603 #x0603) + (text-0604 #x0604) + (text-0605 #x0605) + (text-0606 #x0606) + (text-0607 #x0607) + (text-0608 #x0608) + (text-0609 #x0609) + (text-060a #x060a) + (text-060b #x060b) + (text-060c #x060c) + (text-060d #x060d) + (text-060e #x060e) + (text-060f #x060f) + (text-0610 #x0610) + (text-0611 #x0611) + (text-0612 #x0612) + (text-0613 #x0613) + (text-0614 #x0614) + (text-0615 #x0615) + (text-0616 #x0616) + (text-0617 #x0617) + (text-0618 #x0618) + (text-0619 #x0619) + (text-061a #x061a) + (text-061b #x061b) + (text-061c #x061c) + (text-061d #x061d) + (text-061e #x061e) + (text-061f #x061f) + (text-0620 #x0620) + (text-0621 #x0621) + (text-0622 #x0622) + (text-0623 #x0623) + (text-0624 #x0624) + (text-0625 #x0625) + (text-0626 #x0626) + (text-0627 #x0627) + (text-0628 #x0628) + (text-0629 #x0629) + (text-062a #x062a) + (text-062b #x062b) + (text-062c #x062c) + (text-062d #x062d) + (text-062e #x062e) + (text-0630 #x0630) + (text-0631 #x0631) + (text-0632 #x0632) + (text-0633 #x0633) + (text-0634 #x0634) + (text-0635 #x0635) + (text-0636 #x0636) + (text-0637 #x0637) + (text-0638 #x0638) + (text-0639 #x0639) + (text-063a #x063a) + (text-063b #x063b) + (text-063d #x063d) + (text-063e #x063e) + (text-063f #x063f) + (text-0640 #x0640) + (text-0641 #x0641) + (text-0642 #x0642) + (text-0643 #x0643) + (text-0644 #x0644) + (text-0645 #x0645) + (text-0646 #x0646) + (text-0647 #x0647) + (text-0648 #x0648) + (text-0649 #x0649) + (text-064a #x064a) + (text-064b #x064b) + (text-064c #x064c) + (text-064d #x064d) + (text-064e #x064e) + (text-064f #x064f) + (text-0650 #x0650) + (text-0651 #x0651) + (text-0652 #x0652) + (text-0653 #x0653) + (text-0654 #x0654) + (text-0655 #x0655) + (text-0656 #x0656) + (text-0657 #x0657) + (text-0658 #x0658) + (text-0659 #x0659) + (text-065a #x065a) + (text-065b #x065b) + (text-065c #x065c) + (text-065d #x065d) + (text-065e #x065e) + (text-065f #x065f) + (text-0660 #x0660) + (text-0661 #x0661) + (text-0662 #x0662) + (text-0663 #x0663) + (text-0664 #x0664) + (text-0665 #x0665) + (text-0666 #x0666) + (text-0667 #x0667) + (text-0668 #x0668) + (text-0669 #x0669) + (text-066a #x066a) + (text-066b #x066b) + (text-066c #x066c) + (text-066d #x066d) + (text-066e #x066e) + (text-066f #x066f) + (text-0670 #x0670) + (text-0671 #x0671) + (text-0672 #x0672) + (text-0673 #x0673) + (text-0674 #x0674) + (text-0675 #x0675) + (text-0676 #x0676) + (text-0677 #x0677) + (text-0678 #x0678) + (text-0679 #x0679) + (text-067a #x067a) + (text-067b #x067b) + (text-067c #x067c) + (text-067d #x067d) + (text-067e #x067e) + (text-067f #x067f) + (text-0680 #x0680) + (text-0681 #x0681) + (text-0682 #x0682) + (text-0683 #x0683) + (text-0684 #x0684) + (text-0685 #x0685) + (text-0686 #x0686) + (text-0687 #x0687) + (text-0688 #x0688) + (text-0689 #x0689) + (text-068a #x068a) + (text-068b #x068b) + (text-068c #x068c) + (text-068d #x068d) + (text-068e #x068e) + (text-068f #x068f) + (text-0690 #x0690) + (text-0691 #x0691) + (text-0692 #x0692) + (text-0693 #x0693) + (text-0694 #x0694) + (text-0695 #x0695) + (text-0696 #x0696) + (text-0697 #x0697) + (text-0698 #x0698) + (text-0699 #x0699) + (text-069a #x069a) + (text-069b #x069b) + (text-069c #x069c) + (text-069d #x069d) + (text-069e #x069e) + (text-069f #x069f) + (text-06a0 #x06a0) + (text-06a1 #x06a1) + (text-06a2 #x06a2) + (text-06a3 #x06a3) + (text-06a4 #x06a4) + (text-06a5 #x06a5) + (text-06a6 #x06a6) + (text-06a7 #x06a7) + (text-06a8 #x06a8) + (text-06a9 #x06a9) + (text-06aa #x06aa) + (text-06ab #x06ab) + (text-06ac #x06ac) + (text-06ad #x06ad) + (text-06ae #x06ae) + (text-06af #x06af) + (text-06b0 #x06b0) + (text-06b1 #x06b1) + (text-06b2 #x06b2) + (text-06b3 #x06b3) + (text-06b4 #x06b4) + (text-06b5 #x06b5) + (text-06b6 #x06b6) + (text-06b7 #x06b7) + (text-06b8 #x06b8) + (text-06b9 #x06b9) + (text-06ba #x06ba) + (text-06bb #x06bb) + (text-06bc #x06bc) + (text-06bd #x06bd) + (text-06be #x06be) + (text-06bf #x06bf) + (text-06c0 #x06c0) + (text-06c1 #x06c1) + (text-06c2 #x06c2) + (text-06c3 #x06c3) + (text-06c4 #x06c4) + (text-06c5 #x06c5) + (text-06c6 #x06c6) + (text-06c7 #x06c7) + (text-06c8 #x06c8) + (text-06c9 #x06c9) + (text-06ca #x06ca) + (text-06de #x06de) + (text-06df #x06df) + (text-06e0 #x06e0) + (text-06e1 #x06e1) + (text-06e2 #x06e2) + (text-06e3 #x06e3) + (text-06e4 #x06e4) + (text-06e5 #x06e5) + (text-06e6 #x06e6) + (text-06e7 #x06e7) + (text-06e8 #x06e8) + (text-06e9 #x06e9) + (text-06ea #x06ea) + (text-06eb #x06eb) + (text-06ec #x06ec) + (text-06ed #x06ed) + (text-06ee #x06ee) + (text-06ef #x06ef) + (text-06f0 #x06f0) + (text-06f1 #x06f1) + (text-06f2 #x06f2) + (text-06f3 #x06f3) + (text-06f4 #x06f4) + (text-06f5 #x06f5) + (text-06f6 #x06f6) + (text-06f7 #x06f7) + (text-06f8 #x06f8) + (text-06f9 #x06f9) + (text-06fa #x06fa) + (text-06fb #x06fb) + (text-06fc #x06fc) + (text-06fd #x06fd) + (text-06fe #x06fe) + (text-06ff #x06ff) + (text-0700 #x0700) + (text-0701 #x0701) + (text-0702 #x0702) + (text-0703 #x0703) + (text-0704 #x0704) + (text-0705 #x0705) + (text-0706 #x0706) + (text-0707 #x0707) + (text-0708 #x0708) + (text-0709 #x0709) + (text-070a #x070a) + (text-070b #x070b) + (text-070c #x070c) + (text-070d #x070d) + (text-070e #x070e) + (text-070f #x070f) + (text-0775 #x0775) + (text-0776 #x0776) + (text-0778 #x0778) + (text-0779 #x0779) + (text-077a #x077a) + (text-077b #x077b) + (text-077c #x077c) + (text-078d #x078d) + (text-07b3 #x07b3) + (text-07b4 #x07b4) + (text-07b5 #x07b5) + (text-07b8 #x07b8) + (text-07b9 #x07b9) + (text-07ba #x07ba) + (text-07bb #x07bb) + (text-07bc #x07bc) + (text-07bd #x07bd) + (text-07be #x07be) + (text-07bf #x07bf) + (text-07c0 #x07c0) + (text-07c1 #x07c1) + (text-07c2 #x07c2) + (text-07c3 #x07c3) + (text-07c4 #x07c4) + (text-07c7 #x07c7) + (text-07c8 #x07c8) + (text-07cb #x07cb) + (text-07cc #x07cc) + (text-07cd #x07cd) + (text-07ce #x07ce) + (text-07cf #x07cf) + (text-07d0 #x07d0) + (text-07d1 #x07d1) + (text-07d2 #x07d2) + (text-07d3 #x07d3) + (text-07d4 #x07d4) + (text-07d5 #x07d5) + (text-07d6 #x07d6) + (text-07d7 #x07d7) + (text-07d8 #x07d8) + (text-07d9 #x07d9) + (text-07da #x07da) + (text-07db #x07db) + (text-07dc #x07dc) + (text-07dd #x07dd) + (text-07de #x07de) + (text-07df #x07df) + (text-07e0 #x07e0) + (text-07e1 #x07e1) + (text-07e2 #x07e2) + (text-07e3 #x07e3) + (text-07e4 #x07e4) + (text-07e5 #x07e5) + (text-07e6 #x07e6) + (text-07e7 #x07e7) + (text-07e8 #x07e8) + (text-07e9 #x07e9) + (text-07ea #x07ea) + (text-07f6 #x07f6) + (text-07f7 #x07f7) + (text-07f8 #x07f8) + (text-07f9 #x07f9) + (text-07fa #x07fa) + (text-07fb #x07fb) + (text-07fc #x07fc) + (text-07fd #x07fd) + (text-07fe #x07fe) + (text-07ff #x07ff) + (text-0800 #x0800) + (text-0801 #x0801) + (text-0802 #x0802) + (text-0803 #x0803) + (text-0804 #x0804) + (text-0805 #x0805) + (text-0806 #x0806) + (text-0807 #x0807) + (text-0808 #x0808) + (text-0809 #x0809) + (text-080a #x080a) + (text-080b #x080b) + (text-080c #x080c) + (text-080d #x080d) + (text-0816 #x0816) + (text-0817 #x0817) + (text-0818 #x0818) + (text-0819 #x0819) + (text-081a #x081a) + (text-081b #x081b) + (text-081c #x081c) + (text-081d #x081d) + (text-081e #x081e) + (text-081f #x081f) + (text-0820 #x0820) + (text-0821 #x0821) + (text-0822 #x0822) + (text-0823 #x0823) + (text-0824 #x0824) + (text-0825 #x0825) + (text-0826 #x0826) + (text-0827 #x0827) + (text-0828 #x0828) + (text-0829 #x0829) + (text-082a #x082a) + (text-082b #x082b) + (text-082c #x082c) + (text-082d #x082d) + (text-082e #x082e) + (text-082f #x082f) + (text-0830 #x0830) + (text-0831 #x0831) + (text-0832 #x0832) + (text-0833 #x0833) + (text-0834 #x0834) + (text-0835 #x0835) + (text-0836 #x0836) + (text-0837 #x0837) + (text-0838 #x0838) + (text-0839 #x0839) + (text-083a #x083a) + (text-083b #x083b) + (text-083c #x083c) + (text-083d #x083d) + (text-083e #x083e) + (text-083f #x083f) + (text-0840 #x0840) + (text-0841 #x0841) + (text-0842 #x0842) + (text-0843 #x0843) + (text-0844 #x0844) + (text-0845 #x0845) + (text-0846 #x0846) + (text-0847 #x0847) + (text-0848 #x0848) + (text-0849 #x0849) + (text-084a #x084a) + (text-084b #x084b) + (text-084c #x084c) + (text-084d #x084d) + (text-084e #x084e) + (text-084f #x084f) + (text-0850 #x0850) + (text-0851 #x0851) + (text-0852 #x0852) + (text-0853 #x0853) + (text-0856 #x0856) + (text-0857 #x0857) + (text-0858 #x0858) + (text-085a #x085a) + (text-085f #x085f) + (text-0860 #x0860) + (text-0861 #x0861) + (text-0862 #x0862) + (text-0863 #x0863) + (text-0864 #x0864) + (text-0866 #x0866) + (text-0867 #x0867) + (text-0868 #x0868) + (text-0869 #x0869) + (text-086a #x086a) + (text-086c #x086c) + (text-086d #x086d) + (text-086e #x086e) + (text-086f #x086f) + (text-0870 #x0870) + (text-0871 #x0871) + (text-0872 #x0872) + (text-0873 #x0873) + (text-0874 #x0874) + (text-0875 #x0875) + (text-0876 #x0876) + (text-0877 #x0877) + (text-0878 #x0878) + (text-0879 #x0879) + (text-087a #x087a) + (text-087b #x087b) + (text-087c #x087c) + (text-087d #x087d) + (text-087e #x087e) + (text-087f #x087f) + (text-0880 #x0880) + (text-0883 #x0883) + (text-0884 #x0884) + (text-0885 #x0885) + (text-0886 #x0886) + (text-0887 #x0887) + (text-0888 #x0888) + (text-088a #x088a) + (text-088b #x088b) + (text-088c #x088c) + (text-088d #x088d) + (text-088e #x088e) + (text-088f #x088f) + (text-0891 #x0891) + (text-0892 #x0892) + (text-0893 #x0893) + (text-0894 #x0894) + (text-0895 #x0895) + (text-0896 #x0896) + (text-0897 #x0897) + (text-0898 #x0898) + (text-0899 #x0899) + ) +;; ---text-id + ;; DECOMP BEGINS diff --git a/test/decompiler/reference/jak3/decompiler-macros.gc b/test/decompiler/reference/jak3/decompiler-macros.gc index c0aecf5bc5..56476e3276 100644 --- a/test/decompiler/reference/jak3/decompiler-macros.gc +++ b/test/decompiler/reference/jak3/decompiler-macros.gc @@ -45,6 +45,14 @@ (defconstant PP (with-pp pp)) +(defmacro current-time () + `(-> PP clock frame-counter) + ) + +(defmacro seconds-per-frame () + `(-> PP clock seconds-per-frame) + ) + (defmacro make-u128 (upper lower) `(rlet ((result :class i128) (upper-xmm :class i128) @@ -279,3 +287,13 @@ (defmacro .sync.l () `(none)) + +(defmacro seek! (place target rate) + "Macro to use seek in-place. place is the base, and where the result is stored." + `(set! ,place (seek ,place ,target ,rate)) + ) + +(defmacro seekl! (place target rate) + "Macro to use seekl in-place. place is the base, and where the result is stored." + `(set! ,place (seekl ,place ,target ,rate)) + ) \ No newline at end of file diff --git a/test/decompiler/reference/jak3/engine/game/task/game-task-h_REF.gc b/test/decompiler/reference/jak3/engine/game/task/game-task-h_REF.gc new file mode 100644 index 0000000000..cb31b43d9c --- /dev/null +++ b/test/decompiler/reference/jak3/engine/game/task/game-task-h_REF.gc @@ -0,0 +1,6 @@ +;;-*-Lisp-*- +(in-package goal) + + + + diff --git a/test/decompiler/reference/jak3/engine/game/task/task-control-h_REF.gc b/test/decompiler/reference/jak3/engine/game/task/task-control-h_REF.gc new file mode 100644 index 0000000000..bfb3c2fbba --- /dev/null +++ b/test/decompiler/reference/jak3/engine/game/task/task-control-h_REF.gc @@ -0,0 +1,1811 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition (debug) for function game-task->string +(defun-debug game-task->string ((task game-task)) + (case task + (((game-task sewer-hum-kg)) + "sewer-hum-kg" + ) + (((game-task temple-defend)) + "temple-defend" + ) + (((game-task city-port-assault)) + "city-port-assault" + ) + (((game-task city-bbush-ring-6)) + "city-bbush-ring-6" + ) + (((game-task city-bbush-spirit-chase-3)) + "city-bbush-spirit-chase-3" + ) + (((game-task city-bbush-get-to-43)) + "city-bbush-get-to-43" + ) + (((game-task desert-vehicle-training-1)) + "desert-vehicle-training-1" + ) + (((game-task eco-red-button)) + "eco-red-button" + ) + (((game-task city-bbush-get-to-36)) + "city-bbush-get-to-36" + ) + (((game-task city-bbush-get-to-33)) + "city-bbush-get-to-33" + ) + (((game-task city-bbush-get-to-29)) + "city-bbush-get-to-29" + ) + (((game-task desert-bbush-ring-2)) + "desert-bbush-ring-2" + ) + (((game-task palace-ruins-attack)) + "palace-ruins-attack" + ) + (((game-task palace-ruins-patrol)) + "palace-ruins-patrol" + ) + (((game-task desert-bbush-air-time)) + "desert-bbush-air-time" + ) + (((game-task city-start)) + "city-start" + ) + (((game-task desert-bbush-ring-1)) + "desert-bbush-ring-1" + ) + (((game-task desert-bbush-get-to-1)) + "desert-bbush-get-to-1" + ) + (((game-task wascity-bbush-get-to-20)) + "wascity-bbush-get-to-20" + ) + (((game-task city-hijack-vehicle)) + "city-hijack-vehicle" + ) + (((game-task city-bbush-port-attack)) + "city-bbush-port-attack" + ) + (((game-task comb-wild-ride)) + "comb-wild-ride" + ) + (((game-task forest-ring-chase)) + "forest-ring-chase" + ) + (((game-task mine-explore)) + "mine-explore" + ) + (((game-task wascity-bbush-get-to-23)) + "wascity-bbush-get-to-23" + ) + (((game-task city-destroy-darkeco)) + "city-destroy-darkeco" + ) + (((game-task factory-sky-battle)) + "factory-sky-battle" + ) + (((game-task city-bbush-get-to-41)) + "city-bbush-get-to-41" + ) + (((game-task city-bbush-get-to-34)) + "city-bbush-get-to-34" + ) + (((game-task city-bbush-get-to-38)) + "city-bbush-get-to-38" + ) + (((game-task wascity-chase)) + "wascity-chase" + ) + (((game-task city-bbush-get-to-27)) + "city-bbush-get-to-27" + ) + (((game-task desert-bbush-get-to-3)) + "desert-bbush-get-to-3" + ) + (((game-task city-vehicle-training)) + "city-vehicle-training" + ) + (((game-task wascity-bbush-get-to-25)) + "wascity-bbush-get-to-25" + ) + (((game-task desert-turtle-training)) + "desert-turtle-training" + ) + (((game-task desert-artifact-race-2)) + "desert-artifact-race-2" + ) + (((game-task city-power-game)) + "city-power-game" + ) + (((game-task volcano-darkeco)) + "volcano-darkeco" + ) + (((game-task tower-destroy)) + "tower-destroy" + ) + (((game-task city-destroy-grid)) + "city-destroy-grid" + ) + (((game-task city-bbush-get-to-26)) + "city-bbush-get-to-26" + ) + (((game-task city-bbush-get-to-42)) + "city-bbush-get-to-42" + ) + (((game-task desert-bbush-get-to-11)) + "desert-bbush-get-to-11" + ) + (((game-task desert-bbush-timer-chase-1)) + "desert-bbush-timer-chase-1" + ) + (((game-task sewer-met-hum)) + "sewer-met-hum" + ) + (((game-task desert-bbush-get-to-2)) + "desert-bbush-get-to-2" + ) + (((game-task dummy0)) + "dummy0" + ) + (((game-task city-port-attack)) + "city-port-attack" + ) + (((game-task city-gun-course-1)) + "city-gun-course-1" + ) + (((game-task arena-fight-2)) + "arena-fight-2" + ) + (((game-task mine-boss)) + "mine-boss" + ) + (((game-task arena-training-1)) + "arena-training-1" + ) + (((game-task city-protect-hq)) + "city-protect-hq" + ) + (((game-task sewer-kg-met)) + "sewer-kg-met" + ) + (((game-task desert-bbush-get-to-14)) + "desert-bbush-get-to-14" + ) + (((game-task desert-bbush-get-to-5)) + "desert-bbush-get-to-5" + ) + (((game-task desert-bbush-total-air-time)) + "desert-bbush-total-air-time" + ) + (((game-task desert-chase-marauders)) + "desert-chase-marauders" + ) + (((game-task temple-tests)) + "temple-tests" + ) + (((game-task city-bbush-get-to-28)) + "city-bbush-get-to-28" + ) + (((game-task factory-assault)) + "factory-assault" + ) + (((game-task desert-bbush-get-to-7)) + "desert-bbush-get-to-7" + ) + (((game-task city-blow-barricade)) + "city-blow-barricade" + ) + (((game-task arena-fight-1)) + "arena-fight-1" + ) + (((game-task city-bbush-get-to-40)) + "city-bbush-get-to-40" + ) + (((game-task max)) + "max" + ) + (((game-task wascity-bbush-ring-3)) + "wascity-bbush-ring-3" + ) + (((game-task city-bbush-get-to-31)) + "city-bbush-get-to-31" + ) + (((game-task city-jetboard-bbush)) + "city-jetboard-bbush" + ) + (((game-task desert-bbush-get-to-9)) + "desert-bbush-get-to-9" + ) + (((game-task wascity-bbush-get-to-18)) + "wascity-bbush-get-to-18" + ) + (((game-task city-port-fight)) + "city-port-fight" + ) + (((game-task precursor-tour)) + "precursor-tour" + ) + (((game-task wascity-bbush-timer-chase-2)) + "wascity-bbush-timer-chase-2" + ) + (((game-task desert-oasis-defense)) + "desert-oasis-defense" + ) + (((game-task desert-catch-lizards)) + "desert-catch-lizards" + ) + (((game-task desert-bbush-get-to-4)) + "desert-bbush-get-to-4" + ) + (((game-task city-bbush-ring-5)) + "city-bbush-ring-5" + ) + (((game-task desert-bbush-rally)) + "desert-bbush-rally" + ) + (((game-task desert-course-race)) + "desert-course-race" + ) + (((game-task city-bbush-get-to-32)) + "city-bbush-get-to-32" + ) + (((game-task desert-final-boss)) + "desert-final-boss" + ) + (((game-task desert-bbush-roll-count)) + "desert-bbush-roll-count" + ) + (((game-task desert-bbush-get-to-8)) + "desert-bbush-get-to-8" + ) + (((game-task complete)) + "complete" + ) + (((game-task desert-bbush-spirit-chase-1)) + "desert-bbush-spirit-chase-1" + ) + (((game-task desert-bbush-get-to-12)) + "desert-bbush-get-to-12" + ) + (((game-task wascity-bbush-get-to-21)) + "wascity-bbush-get-to-21" + ) + (((game-task city-win)) + "city-win" + ) + (((game-task precursor-destroy-ship)) + "precursor-destroy-ship" + ) + (((game-task desert-bbush-get-to-6)) + "desert-bbush-get-to-6" + ) + (((game-task desert-bbush-get-to-19)) + "wascity-bbush-get-to-19" + ) + (((game-task forest-turn-on-machine)) + "forest-turn-on-machine" + ) + (((game-task comb-travel)) + "comb-travel" + ) + (((game-task temple-oracle)) + "temple-oracle" + ) + (((game-task wascity-bbush-spirit-chase-2)) + "wascity-bbush-spirit-chase-2" + ) + (((game-task wascity-bbush-get-to-22)) + "wascity-bbush-get-to-22" + ) + (((game-task city-sniper-fight)) + "city-sniper-fight" + ) + (((game-task desert-beast-battle)) + "desert-beast-battle" + ) + (((game-task city-bbush-get-to-35)) + "city-bbush-get-to-35" + ) + (((game-task desert-bbush-jump-distance)) + "desert-bbush-jump-distance" + ) + (((game-task city-gun-course-play-for-fun)) + "city-gun-course-play-for-fun" + ) + (((game-task desert-rescue-bbush)) + "desert-rescue-bbush" + ) + (((game-task forest-kill-plants)) + "forest-kill-plants" + ) + (((game-task arena-fight-3)) + "arena-fight-3" + ) + (((game-task desert-bbush-get-to-17)) + "desert-bbush-get-to-17" + ) + (((game-task nest-hunt)) + "nest-hunt" + ) + (((game-task wascity-gungame)) + "wascity-gungame" + ) + (((game-task desert-vehicle-training-2)) + "desert-vehicle-training-2" + ) + (((game-task desert-glide)) + "desert-glide" + ) + (((game-task desert-bbush-get-to-16)) + "desert-bbush-get-to-16" + ) + (((game-task nest-eggs)) + "nest-eggs" + ) + (((game-task desert-bbush-destroy-interceptors)) + "desert-bbush-destroy-interceptors" + ) + (((game-task desert-artifact-race-1)) + "desert-artifact-race-1" + ) + (((game-task wascity-bbush-get-to-24)) + "wascity-bbush-get-to-24" + ) + (((game-task city-bbush-get-to-39)) + "city-bbush-get-to-39" + ) + (((game-task temple-climb)) + "temple-climb" + ) + (((game-task desert-rescue)) + "desert-rescue" + ) + (((game-task wascity-bbush-ring-4)) + "wascity-bbush-ring-4" + ) + (((game-task factory-boss)) + "factory-boss" + ) + (((game-task desert-bbush-time-trial-1)) + "desert-bbush-time-trial-1" + ) + (((game-task desert-bbush-total-jump-distance)) + "desert-bbush-total-jump-distance" + ) + (((game-task desert-jump-mission)) + "desert-jump-mission" + ) + (((game-task wascity-leaper-race)) + "wascity-leaper-race" + ) + (((game-task desert-hover)) + "desert-hover" + ) + (((game-task mine-blow)) + "mine-blow" + ) + (((game-task city-bbush-get-to-44)) + "city-bbush-get-to-44" + ) + (((game-task eco-yellow-button)) + "eco-yellow-button" + ) + (((game-task desert-bbush-egg-spider-1)) + "desert-bbush-egg-spider-1" + ) + (((game-task city-gun-course-2)) + "city-gun-course-2" + ) + (((game-task wascity-pre-game)) + "wascity-pre-game" + ) + (((game-task city-bbush-get-to-30)) + "city-bbush-get-to-30" + ) + (((game-task wascity-defend)) + "wascity-defend" + ) + (((game-task city-bbush-get-to-37)) + "city-bbush-get-to-37" + ) + (((game-task city-blow-tower)) + "city-blow-tower" + ) + (((game-task none)) + "none" + ) + (((game-task eco-blue-button)) + "eco-blue-button" + ) + (((game-task desert-interceptors)) + "desert-interceptors" + ) + (else + "*unknown*" + ) + ) + ) + +;; definition for function c-string->game-task +;; WARN: Return type mismatch int vs game-task. +(defun c-string->game-task ((arg0 string)) + (the-as game-task -1) + ) + +;; definition (debug) for function game-task-actor->string +(defun-debug game-task-actor->string ((arg0 game-task-actor)) + (case arg0 + (((game-task-actor wascity-turret)) + "wascity-turret" + ) + (((game-task-actor none)) + "none" + ) + (((game-task-actor burning-bush-genb-2)) + "burning-bush-genb-2" + ) + (((game-task-actor unused-slot-18)) + "unused-slot-18" + ) + (((game-task-actor burning-bush-wasb-3)) + "burning-bush-wasb-3" + ) + (((game-task-actor burning-bush-desd-3)) + "burning-bush-desd-3" + ) + (((game-task-actor unused-slot-17)) + "unused-slot-17" + ) + (((game-task-actor unused-slot-15)) + "unused-slot-15" + ) + (((game-task-actor burning-bush-inda-1)) + "burning-bush-inda-1" + ) + (((game-task-actor veger-ruins)) + "veger-ruins" + ) + (((game-task-actor burning-bush-desb-2)) + "burning-bush-desb-2" + ) + (((game-task-actor unused-slot-16)) + "unused-slot-16" + ) + (((game-task-actor burning-bush-desf)) + "burning-bush-desf" + ) + (((game-task-actor burning-bush-slumb-3)) + "burning-bush-slumb-3" + ) + (((game-task-actor wascity-leaper)) + "wascity-leaper" + ) + (((game-task-actor unused-slot-8)) + "unused-slot-8" + ) + (((game-task-actor burning-bush-slumb-2)) + "burning-bush-slumb-2" + ) + (((game-task-actor burning-bush-desb)) + "burning-bush-desb" + ) + (((game-task-actor burning-bush-wasa-2)) + "burning-bush-wasa-2" + ) + (((game-task-actor seem-wascitya)) + "seem-wascitya" + ) + (((game-task-actor ashelin-oasis)) + "ashelin-oasis" + ) + (((game-task-actor was-pre-game-deserte)) + "was-pre-game-deserte" + ) + (((game-task-actor burning-bush-indb)) + "burning-bush-indb" + ) + (((game-task-actor burning-bush-port-4)) + "burning-bush-port-4" + ) + (((game-task-actor burning-bush-port-5)) + "burning-bush-port-5" + ) + (((game-task-actor seem-wascity)) + "seem-wascity" + ) + (((game-task-actor burning-bush-wasa-1)) + "burning-bush-wasa-1" + ) + (((game-task-actor unused-slot-20)) + "unused-slot-20" + ) + (((game-task-actor vin-vinroom)) + "vin-vinroom" + ) + (((game-task-actor burning-bush-marka)) + "burning-bush-marka" + ) + (((game-task-actor burning-bush-slumc-2)) + "burning-bush-slumc-2" + ) + (((game-task-actor burning-bush-desc-5)) + "burning-bush-desc-5" + ) + (((game-task-actor unused-slot-19)) + "unused-slot-19" + ) + (((game-task-actor monk-mummy)) + "monk-mummy" + ) + (((game-task-actor torn-freehq)) + "torn-freehq" + ) + (((game-task-actor burning-bush-indb-3)) + "burning-bush-indb-3" + ) + (((game-task-actor burning-bush-desb-4)) + "burning-bush-desb-4" + ) + (((game-task-actor seem-temple)) + "seem-temple" + ) + (((game-task-actor kleever-arena)) + "kleever-arena" + ) + (((game-task-actor unused-slot-21)) + "unused-slot-21" + ) + (((game-task-actor burning-bush-indb-2)) + "burning-bush-indb-2" + ) + (((game-task-actor oracle-oracle)) + "oracle-oracle" + ) + (((game-task-actor jinx-hiphog)) + "jinx-hiphog" + ) + (((game-task-actor minimap)) + "minimap" + ) + (((game-task-actor burning-bush-arena)) + "burning-bush-arena" + ) + (((game-task-actor damus-wasdoors)) + "damus-wasdoors" + ) + (((game-task-actor kleever-pen)) + "kleever-pen" + ) + (((game-task-actor burning-bush-markb)) + "burning-bush-markb" + ) + (((game-task-actor burning-bush-genb-4)) + "burning-bush-genb-4" + ) + (((game-task-actor daxter)) + "daxter" + ) + (((game-task-actor burning-bush-genb-5)) + "burning-bush-genb-5" + ) + (((game-task-actor torn-hipbar)) + "torn-hipbar" + ) + (((game-task-actor burning-bush-genb-1)) + "burning-bush-genb-1" + ) + (((game-task-actor burning-bush-inda-4)) + "burning-bush-inda-4" + ) + (((game-task-actor burning-bush-desb-3)) + "burning-bush-desb-3" + ) + (((game-task-actor sig-nest)) + "sig-nest" + ) + (((game-task-actor unused-slot-22)) + "unused-slot-22" + ) + (((game-task-actor burning-bush-slumb)) + "burning-bush-slumb" + ) + (((game-task-actor ashelin-freehq)) + "ashelin-freehq" + ) + (((game-task-actor burning-bush-desc-2)) + "burning-bush-desc-2" + ) + (((game-task-actor samos-onintent)) + "samos-onintent" + ) + (((game-task-actor burning-bush-desd)) + "burning-bush-desd" + ) + (((game-task-actor burning-bush-desg-2)) + "burning-bush-desg-2" + ) + (((game-task-actor burning-bush-wasa-6)) + "burning-bush-wasa-6" + ) + (((game-task-actor burning-bush-wasb-7)) + "burning-bush-wasb-7" + ) + (((game-task-actor burning-bush-wasb-2)) + "burning-bush-wasb-2" + ) + (((game-task-actor burning-bush-inda-5)) + "burning-bush-inda-5" + ) + (((game-task-actor sig-talkbox)) + "sig-talkbox" + ) + (((game-task-actor pecker-onintent)) + "pecker-onintent" + ) + (((game-task-actor damus-arena)) + "damus-arena" + ) + (((game-task-actor burning-bush-wasa-5)) + "burning-bush-wasa-5" + ) + (((game-task-actor unused-slot-23)) + "unused-slot-23" + ) + (((game-task-actor damus-wascity)) + "damus-wascity" + ) + (((game-task-actor monk-wascity)) + "monk-wascity" + ) + (((game-task-actor damus-desert)) + "damus-desert" + ) + (((game-task-actor burning-bush-wasb-1)) + "burning-bush-wasb-1" + ) + (((game-task-actor burning-bush-desc-4)) + "burning-bush-desc-4" + ) + (((game-task-actor burning-bush-dese-5)) + "burning-bush-dese-5" + ) + (((game-task-actor was-pre-game-wascityb)) + "was-pre-game-wascityb" + ) + (((game-task-actor burning-bush-slumc)) + "burning-bush-slumc" + ) + (((game-task-actor power-game-vinroom)) + "power-game-vinroom" + ) + (((game-task-actor tess-gungame)) + "tess-gungame" + ) + (((game-task-actor pecker)) + "pecker" + ) + (((game-task-actor torn-hipbooth)) + "torn-hipbooth" + ) + (((game-task-actor burning-bush-desg-4)) + "burning-bush-desg-4" + ) + (((game-task-actor burning-bush-genc-2)) + "burning-bush-genc-2" + ) + (((game-task-actor damus-ruins)) + "damus-ruins" + ) + (((game-task-actor unused-slot-24)) + "unused-slot-24" + ) + (((game-task-actor ashelin-talkbox)) + "ashelin-talkbox" + ) + (((game-task-actor burning-bush-port-8)) + "burning-bush-port-8" + ) + (((game-task-actor burning-bush-port-2)) + "burning-bush-port-2" + ) + (((game-task-actor burning-bush-wasb-6)) + "burning-bush-wasb-6" + ) + (((game-task-actor burning-bush-port-3)) + "burning-bush-port-3" + ) + (((game-task-actor unused-slot-27)) + "unused-slot-27" + ) + (((game-task-actor burning-bush-slumb-4)) + "burning-bush-slumb-4" + ) + (((game-task-actor burning-bush-desg-3)) + "burning-bush-desg-3" + ) + (((game-task-actor sig-wasdoors)) + "sig-wasdoors" + ) + (((game-task-actor samos-freehq)) + "samos-freehq" + ) + (((game-task-actor burning-bush-sluma-1)) + "burning-bush-sluma-1" + ) + (((game-task-actor onin-talkbox)) + "onin-talkbox" + ) + (((game-task-actor unused-slot-25)) + "unused-slot-25" + ) + (((game-task-actor burning-bush-desc-3)) + "burning-bush-desc-3" + ) + (((game-task-actor burning-bush-genb)) + "burning-bush-genb" + ) + (((game-task-actor burning-bush-markb-2)) + "burning-bush-markb-2" + ) + (((game-task-actor burning-bush-dese-2)) + "burning-bush-dese-2" + ) + (((game-task-actor burning-bush-indb-1)) + "burning-bush-indb-1" + ) + (((game-task-actor unused-slot-9)) + "unused-slot-9" + ) + (((game-task-actor burning-bush-slumb-1)) + "burning-bush-slumb-1" + ) + (((game-task-actor unused-slot-28)) + "unused-slot-28" + ) + (((game-task-actor burning-bush-pal-2)) + "burning-bush-pal-2" + ) + (((game-task-actor burning-bush-desa-2)) + "burning-bush-desa-2" + ) + (((game-task-actor burning-bush-farma)) + "burning-bush-farma" + ) + (((game-task-actor burning-bush-desg)) + "burning-bush-desg" + ) + (((game-task-actor keira-freehq)) + "keira-freehq" + ) + (((game-task-actor unused-slot-26)) + "unused-slot-26" + ) + (((game-task-actor burning-bush-desd-5)) + "burning-bush-desd-5" + ) + (((game-task-actor burning-bush-wasb-5)) + "burning-bush-wasb-5" + ) + (((game-task-actor burning-bush-desc)) + "burning-bush-desc" + ) + (((game-task-actor burning-bush-genb-3)) + "burning-bush-genb-3" + ) + (((game-task-actor onin-onintent)) + "onin-onintent" + ) + (((game-task-actor unused-slot-29)) + "unused-slot-29" + ) + (((game-task-actor unused-slot-10)) + "unused-slot-10" + ) + (((game-task-actor burning-bush-inda-2)) + "burning-bush-inda-2" + ) + (((game-task-actor unused-slot-30)) + "unused-slot-30" + ) + (((game-task-actor burning-bush-inda-3)) + "burning-bush-inda-3" + ) + (((game-task-actor burning-bush-slumc-1)) + "burning-bush-slumc-1" + ) + (((game-task-actor samos-genb)) + "samos-genb" + ) + (((game-task-actor burning-bush-dese-4)) + "burning-bush-dese-4" + ) + (((game-task-actor burning-bush-desh)) + "burning-bush-desh" + ) + (((game-task-actor samos-talkbox)) + "samos-talkbox" + ) + (((game-task-actor burning-bush-farmb)) + "burning-bush-farmb" + ) + (((game-task-actor gun-gungame)) + "gun-gungame" + ) + (((game-task-actor burning-bush-wasa-4)) + "burning-bush-wasa-4" + ) + (((game-task-actor unused-slot-12)) + "unused-slot-12" + ) + (((game-task-actor onin-freehq)) + "onin-freehq" + ) + (((game-task-actor burning-bush-desa-3)) + "burning-bush-desa-3" + ) + (((game-task-actor burning-bush-port-6)) + "burning-bush-port-6" + ) + (((game-task-actor unused-slot-11)) + "unused-slot-11" + ) + (((game-task-actor unused-slot-31)) + "unused-slot-31" + ) + (((game-task-actor burning-bush-wasa-3)) + "burning-bush-wasa-3" + ) + (((game-task-actor veger-cave)) + "veger-cave" + ) + (((game-task-actor burning-bush-port-1)) + "burning-bush-port-1" + ) + (((game-task-actor keira-genb)) + "keira-genb" + ) + (((game-task-actor burning-bush-dese-3)) + "burning-bush-dese-3" + ) + (((game-task-actor burning-bush-gena-2)) + "burning-bush-gena-2" + ) + (((game-task-actor burning-bush-genc)) + "burning-bush-genc" + ) + (((game-task-actor burning-bush-desd-2)) + "burning-bush-desd-2" + ) + (((game-task-actor burning-bush-desa)) + "burning-bush-desa" + ) + (((game-task-actor burning-bush-port)) + "burning-bush-port" + ) + (((game-task-actor burning-bush-inda)) + "burning-bush-inda" + ) + (((game-task-actor burning-bush-stadium)) + "burning-bush-stadium" + ) + (((game-task-actor damus-waspal)) + "damus-waspal" + ) + (((game-task-actor burning-bush-port-7)) + "burning-bush-port-7" + ) + (((game-task-actor burning-bush-wasb-4)) + "burning-bush-wasb-4" + ) + (((game-task-actor keira-garage)) + "keira-garage" + ) + (((game-task-actor torn-hiptable)) + "torn-hiptable" + ) + (((game-task-actor torn-hiphog)) + "torn-hiphog" + ) + (((game-task-actor kleever-wasdoors)) + "kleever-wasdoors" + ) + (((game-task-actor unused-slot-14)) + "unused-slot-14" + ) + (((game-task-actor unused-slot-13)) + "unused-slot-13" + ) + (((game-task-actor burning-bush-dese)) + "burning-bush-dese" + ) + (((game-task-actor seem-leaper)) + "seem-leaper" + ) + (((game-task-actor burning-bush-pal)) + "burning-bush-pal" + ) + (((game-task-actor kleever-wascityb)) + "kleever-wascityb" + ) + (((game-task-actor burning-bush-desd-4)) + "burning-bush-desd-4" + ) + (((game-task-actor burning-bush-sluma-3)) + "burning-bush-sluma-3" + ) + (((game-task-actor burning-bush-sluma-2)) + "burning-bush-sluma-2" + ) + (((game-task-actor burning-bush-gena)) + "burning-bush-gena" + ) + (((game-task-actor burning-bush-sluma)) + "burning-bush-sluma" + ) + (else + "*unknown*" + ) + ) + ) + +;; definition (debug) for function game-task-action->string +(defun-debug game-task-action->string ((arg0 game-task-action)) + (case arg0 + (((game-task-action idle)) + "idle" + ) + (((game-task-action play)) + "play" + ) + (((game-task-action show)) + "show" + ) + (((game-task-action talk)) + "talk" + ) + (((game-task-action hide)) + "hide" + ) + (((game-task-action say)) + "say" + ) + (((game-task-action trade)) + "trade" + ) + (((game-task-action menu)) + "menu" + ) + (else + "*unknown*" + ) + ) + ) + +;; definition of type game-task-event +(deftype game-task-event (basic) + ((actor game-task-actor) + (action game-task-action) + (tex game-task-icon) + (icon uint16 :overlay-at tex) + (flags game-task-flags :offset 7) + (scene basic :offset 8) + (distance meters) + ) + ) + +;; definition for method 3 of type game-task-event +(defmethod inspect ((this game-task-event)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tactor: #x~X : ~S~%" (-> this actor) (game-task-actor->string (-> this actor))) + (format #t "~1Taction: #x~X : ~S~%" (-> this action) (game-task-action->string (-> this action))) + (format #t "~1Tflags: ~D~%" (-> this flags)) + (format #t "~1Ticon: ~D~%" (-> this icon)) + (format #t "~1Tskull-cost: ~D~%" (-> this tex)) + (format #t "~1Tscene: ~A~%" (-> this scene)) + (format #t "~1Tdistance: (meters ~m)~%" (-> this distance)) + (label cfg-4) + this + ) + +;; definition of type resetter-spec +(deftype resetter-spec (structure) + ((continue basic) + (node game-task-node) + (reset-mode basic) + (execute basic) + ) + :pack-me + ) + +;; definition for method 3 of type resetter-spec +(defmethod inspect ((this resetter-spec)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'resetter-spec) + (format #t "~1Tcontinue: ~A~%" (-> this continue)) + (format #t "~1Tnode: ~D~%" (-> this node)) + (format #t "~1Treset-mode: ~A~%" (-> this reset-mode)) + (format #t "~1Texecute: ~A~%" (-> this execute)) + (label cfg-4) + this + ) + +;; definition of type resetter-params +(deftype resetter-params (structure) + ((message resetter-message) + (flags resetter-flag) + (fail resetter-spec :inline) + (retry resetter-spec :inline) + (reset-delay uint32) + (task game-task) + (text-message text-id) + ) + ) + +;; definition for method 3 of type resetter-params +(defmethod inspect ((this resetter-params)) + (when (not this) + (set! this this) + (goto cfg-29) + ) + (format #t "[~8x] ~A~%" this 'resetter-params) + (let ((t9-1 format) + (a0-2 #t) + (a1-1 "~1Tmessage: #x~X : ~S~%") + (a2-1 (-> this message)) + (v1-2 (-> this message)) + ) + (t9-1 a0-2 a1-1 a2-1 (cond + ((= v1-2 (resetter-message mission-fail-or-retry)) + "mission-fail-or-retry" + ) + ((= v1-2 (resetter-message mission-fail)) + "mission-fail" + ) + ((= v1-2 (resetter-message mission-retry)) + "mission-retry" + ) + (else + "*unknown*" + ) + ) + ) + ) + (format #t "~1Tflags: #x~X : (resetter-flag " (-> this flags)) + (let ((s5-0 (-> this flags))) + (if (= (logand s5-0 (resetter-flag text-message)) (resetter-flag text-message)) + (format #t "text-message ") + ) + (if (= (logand s5-0 (resetter-flag stop-sfx)) (resetter-flag stop-sfx)) + (format #t "stop-sfx ") + ) + (if (= (logand s5-0 (resetter-flag no-draw-target)) (resetter-flag no-draw-target)) + (format #t "no-draw-target ") + ) + (if (= (logand s5-0 (resetter-flag no-message)) (resetter-flag no-message)) + (format #t "no-message ") + ) + (if (= (logand s5-0 (resetter-flag no-grab)) (resetter-flag no-grab)) + (format #t "no-grab ") + ) + (if (= (logand s5-0 (resetter-flag no-slow-down)) (resetter-flag no-slow-down)) + (format #t "no-slow-down ") + ) + (if (= (logand s5-0 (resetter-flag auto-reset)) (resetter-flag auto-reset)) + (format #t "auto-reset ") + ) + (if (= (logand s5-0 (resetter-flag no-audio-first)) (resetter-flag no-audio-first)) + (format #t "no-audio-first ") + ) + (if (= (logand s5-0 (resetter-flag no-audio)) (resetter-flag no-audio)) + (format #t "no-audio ") + ) + ) + (format #t ")~%") + (format #t "~1Tfail: ~`resetter-spec`P~%" (-> this fail)) + (format #t "~1Tretry: ~`resetter-spec`P~%" (-> this retry)) + (format #t "~1Treset-delay: ~D~%" (-> this reset-delay)) + (format #t "~1Ttask: ~D~%" (-> this task)) + (format #t "~1Ttext-message: ~D~%" (-> this text-message)) + (label cfg-29) + this + ) + +;; definition of type task-manager-info +(deftype task-manager-info (structure) + ((mask task-manager-mask) + (level symbol) + (type-to-spawn basic) + (time-limit int32) + (manager handle) + (intro-scene string) + (resolution-scene string) + (resolution-scene-continue string) + (final-node game-task-node) + (vehicle-type uint8) + (sphere-count int8) + (index int8) + (intro-delay uint16) + (sphere-array uint32) + (on-complete pair) + (on-fail pair) + (user-count int32) + ) + ) + +;; definition for method 3 of type task-manager-info +(defmethod inspect ((this task-manager-info)) + (when (not this) + (set! this this) + (goto cfg-12) + ) + (format #t "[~8x] ~A~%" this 'task-manager-info) + (format #t "~1Tmask: #x~X : (task-manager-mask " (-> this mask)) + (let ((s5-0 (-> this mask))) + (if (= (logand s5-0 (task-manager-mask intro-scene)) (task-manager-mask intro-scene)) + (format #t "intro-scene ") + ) + (if (= (logand s5-0 (task-manager-mask resolution-scene)) (task-manager-mask resolution-scene)) + (format #t "resolution-scene ") + ) + (if (= (logand s5-0 (task-manager-mask time-limit)) (task-manager-mask time-limit)) + (format #t "time-limit ") + ) + (if (= (logand s5-0 (task-manager-mask auto-complete)) (task-manager-mask auto-complete)) + (format #t "auto-complete ") + ) + ) + (format #t ")~%") + (format #t "~1Tlevel: ~A~%" (-> this level)) + (format #t "~1Ttype-to-spawn: ~A~%" (-> this type-to-spawn)) + (format #t "~1Ttime-limit: ~D~%" (-> this time-limit)) + (format #t "~1Tmanager: ~`handle`P~%" (-> this manager)) + (format #t "~1Tintro-scene: ~A~%" (-> this intro-scene)) + (format #t "~1Tresolution-scene: ~A~%" (-> this resolution-scene)) + (format #t "~1Tresolution-scene-continue: ~A~%" (-> this resolution-scene-continue)) + (format #t "~1Tfinal-node: ~D~%" (-> this final-node)) + (format #t "~1Tvehicle-type: ~D~%" (-> this vehicle-type)) + (format #t "~1Tsphere-count: ~D~%" (-> this sphere-count)) + (format #t "~1Tindex: ~D~%" (-> this index)) + (format #t "~1Tintro-delay: ~D~%" (-> this intro-delay)) + (format #t "~1Tsphere-array: #x~X~%" (-> this sphere-array)) + (format #t "~1Ton-complete: ~A~%" (-> this on-complete)) + (format #t "~1Ton-fail: ~A~%" (-> this on-fail)) + (format #t "~1Tuser-count: ~D~%" (-> this user-count)) + (label cfg-12) + this + ) + +;; definition of type task-reset-info +(deftype task-reset-info (structure) + ((restart-info resetter-params) + (quit-info resetter-params) + (fail-info resetter-params) + (death-info resetter-params) + ) + ) + +;; definition for method 3 of type task-reset-info +(defmethod inspect ((this task-reset-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'task-reset-info) + (format #t "~1Trestart-info: #~%" (-> this restart-info)) + (format #t "~1Tquit-info: #~%" (-> this quit-info)) + (format #t "~1Tfail-info: #~%" (-> this fail-info)) + (format #t "~1Tdeath-info: #~%" (-> this death-info)) + (label cfg-4) + this + ) + +;; definition (debug) for function game-task-node-flag->string +(defun-debug game-task-node-flag->string ((arg0 game-task-node-flag)) + (if (= (logand arg0 (game-task-node-flag clear-task-mask)) (game-task-node-flag clear-task-mask)) + (format #t "clear-task-mask ") + ) + (if (= (logand (game-task-node-flag act3) arg0) (game-task-node-flag act3)) + (format #t "act3 ") + ) + (if (= (logand (game-task-node-flag city-wait) arg0) (game-task-node-flag city-wait)) + (format #t "city-wait ") + ) + (if (= (logand (game-task-node-flag act2) arg0) (game-task-node-flag act2)) + (format #t "act2 ") + ) + (if (= (logand arg0 (game-task-node-flag intro-wait)) (game-task-node-flag intro-wait)) + (format #t "intro-wait ") + ) + (if (= (logand arg0 (game-task-node-flag reset-on-try)) (game-task-node-flag reset-on-try)) + (format #t "reset-on-try ") + ) + (if (= (logand (game-task-node-flag act1) arg0) (game-task-node-flag act1)) + (format #t "act1 ") + ) + (if (= (logand arg0 (game-task-node-flag exclusive)) (game-task-node-flag exclusive)) + (format #t "exclusive ") + ) + (if (= (logand arg0 (game-task-node-flag utility-node)) (game-task-node-flag utility-node)) + (format #t "utility-node ") + ) + (if (= (logand (game-task-node-flag no-percent) arg0) (game-task-node-flag no-percent)) + (format #t "no-percent ") + ) + (if (= (logand arg0 (game-task-node-flag set-task-mask)) (game-task-node-flag set-task-mask)) + (format #t "set-task-mask ") + ) + (if (= (logand arg0 (game-task-node-flag disk-close)) (game-task-node-flag disk-close)) + (format #t "disk-close ") + ) + (if (= (logand arg0 (game-task-node-flag closed)) (game-task-node-flag closed)) + (format #t "closed ") + ) + (if (= (logand arg0 (game-task-node-flag data)) (game-task-node-flag data)) + (format #t "data ") + ) + (if (= (logand arg0 (game-task-node-flag save-on-life)) (game-task-node-flag save-on-life)) + (format #t "save-on-life ") + ) + (if (= (logand (game-task-node-flag no-hud-wait) arg0) (game-task-node-flag no-hud-wait)) + (format #t "no-hud-wait ") + ) + (if (= (logand (game-task-node-flag bbush) arg0) (game-task-node-flag bbush)) + (format #t "bbush ") + ) + (if (= (logand arg0 (game-task-node-flag close-task)) (game-task-node-flag close-task)) + (format #t "close-task ") + ) + (if (= (logand arg0 (game-task-node-flag save-on-try)) (game-task-node-flag save-on-try)) + (format #t "save-on-try ") + ) + (if (= (logand arg0 (game-task-node-flag auto-close)) (game-task-node-flag auto-close)) + (format #t "auto-close ") + ) + (if (= (logand arg0 (game-task-node-flag abs-task-mask)) (game-task-node-flag abs-task-mask)) + (format #t "abs-task-mask ") + ) + (if (= (logand arg0 (game-task-node-flag no-restart)) (game-task-node-flag no-restart)) + (format #t "no-restart ") + ) + (if (= (logand arg0 (game-task-node-flag kiosk-close)) (game-task-node-flag kiosk-close)) + (format #t "kiosk-close ") + ) + ) + +;; definition (debug) for function game-task-node-command->string +(defun-debug game-task-node-command->string ((arg0 game-task-node-command)) + (case arg0 + (((game-task-node-command sub-board-trail)) + "sub-board-trail" + ) + (((game-task-node-command add-gun-yellow-1)) + "add-gun-yellow-1" + ) + (((game-task-node-command add-gun-yellow-2)) + "add-gun-yellow-2" + ) + (((game-task-node-command add-board-trail)) + "add-board-trail" + ) + (((game-task-node-command add-vehicle-snake)) + "add-vehicle-snake" + ) + (((game-task-node-command add-board-zap)) + "add-board-zap" + ) + (((game-task-node-command add-darkjak-smack)) + "add-darkjak-smack" + ) + (((game-task-node-command add-gun-yellow-ammo-2)) + "add-gun-yellow-ammo-2" + ) + (((game-task-node-command add-gun-red-1)) + "add-gun-red-1" + ) + (((game-task-node-command add-star-map)) + "add-star-map" + ) + (((game-task-node-command add-darkeco)) + "add-darkeco" + ) + (((game-task-node-command add-darkjak)) + "add-darkjak" + ) + (((game-task-node-command add-light-eco-crystal)) + "add-light-eco-crystal" + ) + (((game-task-node-command add-gun-blue-2)) + "add-gun-blue-2" + ) + (((game-task-node-command add-gun-dark-3)) + "add-gun-dark-3" + ) + (((game-task-node-command add-av-cube)) + "add-av-cube" + ) + (((game-task-node-command add-board-training)) + "add-board-training" + ) + (((game-task-node-command add-vehicle-toad)) + "add-vehicle-toad" + ) + (((game-task-node-command add-darkjak-tracking)) + "add-darkjak-tracking" + ) + (((game-task-node-command none)) + "none" + ) + (((game-task-node-command add-lighteco)) + "add-lighteco" + ) + (((game-task-node-command add-artifact-invis)) + "add-artifact-invis" + ) + (((game-task-node-command add-seal)) + "add-seal" + ) + (((game-task-node-command add-darkjak-bomb0)) + "add-darkjak-bomb0" + ) + (((game-task-node-command add-amulet-1)) + "add-amulet-1" + ) + (((game-task-node-command add-gun-red-ammo-2)) + "add-gun-red-ammo-2" + ) + (((game-task-node-command add-vehicle-scorpion)) + "add-vehicle-scorpion" + ) + (((game-task-node-command add-gun-blue-1)) + "add-gun-blue-1" + ) + (((game-task-node-command sub-sidekick)) + "sub-sidekick" + ) + (((game-task-node-command add-av-generator)) + "add-av-generator" + ) + (((game-task-node-command add-sidekick)) + "add-sidekick" + ) + (((game-task-node-command add-pass-indb-sluma)) + "add-pass-indb-sluma" + ) + (((game-task-node-command add-amulet-2)) + "add-amulet-2" + ) + (((game-task-node-command add-vehicle-turtle)) + "add-vehicle-turtle" + ) + (((game-task-node-command add-gun-yellow-ammo-1)) + "add-gun-yellow-ammo-1" + ) + (((game-task-node-command add-dark-eco-crystal)) + "add-dark-eco-crystal" + ) + (((game-task-node-command add-pass-port-inda)) + "add-pass-port-inda" + ) + (((game-task-node-command add-gun-dark-2)) + "add-gun-dark-2" + ) + (((game-task-node-command add-av-prism)) + "add-av-prism" + ) + (((game-task-node-command add-vehicle-rhino)) + "add-vehicle-rhino" + ) + (((game-task-node-command add-board-launch)) + "add-board-launch" + ) + (((game-task-node-command add-armor-3)) + "add-armor-3" + ) + (((game-task-node-command add-cypher-gliph)) + "add-cypher-gliph" + ) + (((game-task-node-command add-pass-port-mh)) + "add-pass-port-mh" + ) + (((game-task-node-command add-armor-2)) + "add-armor-2" + ) + (((game-task-node-command add-darkjak-bomb1)) + "add-darkjak-bomb1" + ) + (((game-task-node-command add-armor-1)) + "add-armor-1" + ) + (((game-task-node-command add-pass-front-gate)) + "add-pass-front-gate" + ) + (((game-task-node-command add-lightjak-swoop)) + "add-lightjak-swoop" + ) + (((game-task-node-command add-gun-blue-3)) + "add-gun-blue-3" + ) + (((game-task-node-command add-pass-slumb-genb)) + "add-pass-slumb-genb" + ) + (((game-task-node-command add-armor-0)) + "add-armor-0" + ) + (((game-task-node-command add-lightjak-shield)) + "add-lightjak-shield" + ) + (((game-task-node-command add-lightjak-regen)) + "add-lightjak-regen" + ) + (((game-task-node-command add-gun-blue-ammo-1)) + "add-gun-blue-ammo-1" + ) + (((game-task-node-command add-gun-blue-ammo-2)) + "add-gun-blue-ammo-2" + ) + (((game-task-node-command add-gun-red-ammo-1)) + "add-gun-red-ammo-1" + ) + (((game-task-node-command add-gun-red-3)) + "add-gun-red-3" + ) + (((game-task-node-command sub-board)) + "sub-board" + ) + (((game-task-node-command add-gun-red-2)) + "add-gun-red-2" + ) + (((game-task-node-command add-lightjak-freeze)) + "add-lightjak-freeze" + ) + (((game-task-node-command add-darkjak-invinc)) + "add-darkjak-invinc" + ) + (((game-task-node-command add-board)) + "add-board" + ) + (((game-task-node-command add-pass-inda-indb)) + "add-pass-inda-indb" + ) + (((game-task-node-command add-gun-dark-ammo-2)) + "add-gun-dark-ammo-2" + ) + (((game-task-node-command add-gun-dark-1)) + "add-gun-dark-1" + ) + (((game-task-node-command add-av-map)) + "add-av-map" + ) + (((game-task-node-command add-gun-yellow-3)) + "add-gun-yellow-3" + ) + (((game-task-node-command add-gun-dark-ammo-1)) + "add-gun-dark-ammo-1" + ) + (((game-task-node-command add-jakc)) + "add-jakc" + ) + (((game-task-node-command add-amulet-3)) + "add-amulet-3" + ) + (((game-task-node-command add-av-reflector)) + "add-av-reflector" + ) + (((game-task-node-command add-lightjak)) + "add-lightjak" + ) + (else + "*unknown*" + ) + ) + ) + +;; definition of type game-task-node-info +(deftype game-task-node-info (basic) + ((level symbol) + (task game-task) + (name string) + (when-open (array game-task-event)) + (flags game-task-node-flag) + (parent-node game-task-node 4) + (task-mask task-mask) + (on-open pair) + (manager task-manager-info) + (borrow pair) + (open? (function game-task-node-info symbol)) + (on-close pair) + (close-time uint32) + (reset task-reset-info) + (gem-count uint16) + (skill-count uint16) + (death-count uint8) + (suck-death-count uint8) + (command-index uint8) + (command-count uint8) + (description text-id) + (faction-commands basic) + ) + (:methods + (game-task-node-info-method-9 () none) + (game-task-node-info-method-10 () none) + (game-task-node-info-method-11 () none) + (game-task-node-info-method-12 () none) + (game-task-node-info-method-13 () none) + ) + ) + +;; definition for method 3 of type game-task-node-info +(defmethod inspect ((this game-task-node-info)) + (when (not this) + (set! this this) + (goto cfg-45) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tlevel: ~A~%" (-> this level)) + (format #t "~1Ttask: #x~X : ~S~%" (-> this task) (game-task->string (-> this task))) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Twhen-open: ~A~%" (-> this when-open)) + (format #t "~1Tflags: #x~X : (game-task-node-flag " (-> this flags)) + (game-task-node-flag->string (-> this flags)) + (format #t ")~%") + (format #t "~1Tparent-node[4] @ #x~X~%" (-> this parent-node)) + (dotimes (s5-1 4) + (format #t "~T [~D]~1Tparent-node: ~D~%" s5-1 (-> this parent-node s5-1)) + ) + (format #t "~1Ttask-mask: #x~X : (task-mask " (-> this task-mask)) + (let ((s5-2 (-> this task-mask))) + (if (= (logand s5-2 (task-mask task0)) (task-mask task0)) + (format #t "task0 ") + ) + (if (= (logand s5-2 (task-mask task2)) (task-mask task2)) + (format #t "task2 ") + ) + (if (= (logand s5-2 (task-mask task4)) (task-mask task4)) + (format #t "task4 ") + ) + (if (= (logand s5-2 (task-mask task6)) (task-mask task6)) + (format #t "task6 ") + ) + (if (= (logand s5-2 (task-mask ctywide)) (task-mask ctywide)) + (format #t "ctywide ") + ) + (if (= (logand s5-2 (task-mask never)) (task-mask never)) + (format #t "never ") + ) + (if (= (logand (task-mask movie1) s5-2) (task-mask movie1)) + (format #t "movie1 ") + ) + (if (= (logand s5-2 (task-mask vehicle)) (task-mask vehicle)) + (format #t "vehicle ") + ) + (if (= (logand s5-2 (task-mask dummy1)) (task-mask dummy1)) + (format #t "dummy1 ") + ) + (if (= (logand s5-2 (task-mask primary0)) (task-mask primary0)) + (format #t "primary0 ") + ) + (if (= (logand s5-2 (task-mask task1)) (task-mask task1)) + (format #t "task1 ") + ) + (if (= (logand s5-2 (task-mask task3)) (task-mask task3)) + (format #t "task3 ") + ) + (if (= (logand s5-2 (task-mask task5)) (task-mask task5)) + (format #t "task5 ") + ) + (if (= (logand s5-2 (task-mask task7)) (task-mask task7)) + (format #t "task7 ") + ) + (if (= (logand (task-mask movie2) s5-2) (task-mask movie2)) + (format #t "movie2 ") + ) + (if (= (logand s5-2 (task-mask done)) (task-mask done)) + (format #t "done ") + ) + (if (= (logand s5-2 (task-mask special)) (task-mask special)) + (format #t "special ") + ) + (if (= (logand (task-mask movie0) s5-2) (task-mask movie0)) + (format #t "movie0 ") + ) + (if (= (logand s5-2 (task-mask dummy0)) (task-mask dummy0)) + (format #t "dummy0 ") + ) + ) + (format #t ")~%") + (format #t "~1Ton-open: ~A~%" (-> this on-open)) + (format #t "~1Tmanager: #~%" (-> this manager)) + (format #t "~1Tborrow: ~A~%" (-> this borrow)) + (format #t "~1Topen?: ~A~%" (-> this open?)) + (format #t "~1Ton-close: ~A~%" (-> this on-close)) + (format #t "~1Tclose-time: ~D~%" (-> this close-time)) + (format #t "~1Treset: #~%" (-> this reset)) + (format #t "~1Tgem-count: ~D~%" (-> this gem-count)) + (format #t "~1Tskill-count: ~D~%" (-> this skill-count)) + (format #t "~1Tdeath-count: ~D~%" (-> this death-count)) + (format #t "~1Tsuck-death-count: ~D~%" (-> this suck-death-count)) + (format #t "~1Tcommand-index: ~D~%" (-> this command-index)) + (format #t "~1Tcommand-count: ~D~%" (-> this command-count)) + (format #t "~1Tdescription: ~D~%" (-> this description)) + (format #t "~1Tfaction-commands: ~A~%" (-> this faction-commands)) + (label cfg-45) + this + ) + +;; definition of type game-task-info +(deftype game-task-info (basic) + ((name string) + (text-name text-id) + (pre-play-node game-task-node) + (kiosk-play-node game-task-node) + (pre-play-continue string) + (play-node game-task-node) + (play-continue string) + (kiosk-play-continue string) + ) + (:methods + (game-task-info-method-9 (_type_) none) + ) + ) + +;; definition for method 3 of type game-task-info +(defmethod inspect ((this game-task-info)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tname: ~A~%" (-> this name)) + (format #t "~1Ttext-name: ~D~%" (-> this text-name)) + (format #t "~1Tpre-play-node: ~D~%" (-> this pre-play-node)) + (format #t "~1Tkiosk-play-node: ~D~%" (-> this kiosk-play-node)) + (format #t "~1Tpre-play-continue: ~A~%" (-> this pre-play-continue)) + (format #t "~1Tplay-node: ~D~%" (-> this play-node)) + (format #t "~1Tplay-continue: ~A~%" (-> this play-continue)) + (format #t "~1Tkiosk-play-continue: ~A~%" (-> this kiosk-play-continue)) + (label cfg-4) + this + ) + +;; definition of type game-task-control +(deftype game-task-control (basic) + ((counter uint32) + (actor game-task-actor) + (current-node uint16) + (current-event game-task-event) + ) + (:methods + (new (symbol type game-task-actor) _type_) + (get-current-task-event (_type_) game-task-event) + ) + ) + +;; definition for method 3 of type game-task-control +(defmethod inspect ((this game-task-control)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tcounter: ~D~%" (-> this counter)) + (format #t "~1Tactor: #x~X : ~S~%" (-> this actor) (game-task-actor->string (-> this actor))) + (format #t "~1Tcurrent-node: ~D~%" (-> this current-node)) + (format #t "~1Tcurrent-event: ~A~%" (-> this current-event)) + (label cfg-4) + this + ) + +;; definition of type task-manager +(deftype task-manager (process) + ((node-info game-task-node-info) + (info task-manager-info) + (lev-name symbol) + (fail-on-death? symbol) + (fail-now symbol) + (restart-now symbol) + (allow-fail symbol) + (state-time time-frame) + (start-time time-frame) + (time-limit time-frame) + (arrow handle) + (player-vehicle handle) + (hud handle 4) + (hud-timer handle :overlay-at (-> hud 0)) + (hud-counter handle :overlay-at (-> hud 1)) + (intro-time time-frame) + ) + (:methods + (task-manager-method-14 () none) + (task-manager-method-15 () none) + (task-manager-method-16 () none) + (task-manager-method-17 () none) + (task-manager-method-18 () none) + (task-manager-method-19 () none) + (task-manager-method-20 () none) + (task-manager-method-21 () none) + (task-manager-method-22 () none) + (task-manager-method-23 () none) + (task-manager-method-24 () none) + (task-manager-method-25 () none) + (task-manager-method-26 () none) + (task-manager-method-27 () none) + (task-manager-method-28 () none) + (task-manager-method-29 () none) + (task-manager-method-30 () none) + (task-manager-method-31 () none) + ) + ) + +;; definition for method 3 of type task-manager +(defmethod inspect ((this task-manager)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process inspect))) + (t9-0 this) + ) + (format #t "~2Tnode-info: ~A~%" (-> this node-info)) + (format #t "~2Tinfo: #~%" (-> this info)) + (format #t "~2Tlev-name: ~A~%" (-> this lev-name)) + (format #t "~2Tfail-on-death?: ~A~%" (-> this fail-on-death?)) + (format #t "~2Tfail-now: ~A~%" (-> this fail-now)) + (format #t "~2Trestart-now: ~A~%" (-> this restart-now)) + (format #t "~2Tallow-fail: ~A~%" (-> this allow-fail)) + (format #t "~2Tstate-time: ~D~%" (-> this state-time)) + (format #t "~2Tstart-time: ~D~%" (-> this start-time)) + (format #t "~2Ttime-limit: ~D~%" (-> this time-limit)) + (format #t "~2Tarrow: ~D~%" (-> this arrow)) + (format #t "~2Tplayer-vehicle: ~D~%" (-> this player-vehicle)) + (format #t "~2Thud[4] @ #x~X~%" (-> this hud)) + (format #t "~2Thud-timer: ~D~%" (-> this hud-timer)) + (format #t "~2Thud-counter: ~D~%" (-> this hud-counter)) + (format #t "~2Tintro-time: ~D~%" (-> this intro-time)) + (label cfg-4) + this + ) + +;; definition of type ambient-control +(deftype ambient-control (structure) + ((last-ambient-time time-frame) + (last-ambient string) + (last-ambient-id sound-id) + ) + (:methods + (ambient-control-method-9 () none) + (ambient-control-method-10 () none) + (ambient-control-method-11 () none) + ) + ) + +;; definition for method 3 of type ambient-control +(defmethod inspect ((this ambient-control)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'ambient-control) + (format #t "~1Tlast-ambient-time: ~D~%" (-> this last-ambient-time)) + (format #t "~1Tlast-ambient: ~A~%" (-> this last-ambient)) + (format #t "~1Tlast-ambient-id: ~D~%" (-> this last-ambient-id)) + (label cfg-4) + this + ) + +;; definition for symbol *traffic-engine*, type symbol +(define *traffic-engine* #f) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jak3/engine/geometry/geometry_REF.gc b/test/decompiler/reference/jak3/engine/geometry/geometry_REF.gc new file mode 100644 index 0000000000..039451974a --- /dev/null +++ b/test/decompiler/reference/jak3/engine/geometry/geometry_REF.gc @@ -0,0 +1,2054 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function vector-flatten! +(defun vector-flatten! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Get the projection of src onto a plane with the given normal + The normal should have magnitude 1.0." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov.vf vf3 vf0 :mask #b1000) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf3 vf3 vf2 acc) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +;; definition for function vector-reflect! +(defun vector-reflect! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Reflect a vector off of a plane." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov.vf vf3 vf0 :mask #b1000) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf3 vf3 vf2 acc) + (.add.vf acc vf3 vf3 :mask #b111) + (.sub.mul.w.vf vf3 vf1 vf0 acc :mask #b111) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +;; definition for function vector-reflect-flat! +(defun vector-reflect-flat! ((arg0 vector) (arg1 vector) (arg2 vector)) + "This is a weird one. It doesn't care about the value of src dot normal + and it effectively replaces the component of src normal to the plane with + the plane's normal. I think this requires src/normal to both be unit vectors + in order to make sense. + NOTE: src should point from positive halfspace to negative otherwise it + doesn't work." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov.vf vf3 vf0 :mask #b1000) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf3 vf3 vf2 acc) + (.add.vf vf3 vf3 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +;; definition for function vector-reflect-flat-above! +(defun vector-reflect-flat-above! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Not really a reflect. Same as flatten." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov.vf vf3 vf0 :mask #b1000) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf3 vf3 vf2 acc) + (.svf (&-> arg0 quad) vf3) + (let* ((f0-0 (vector-length arg0)) + (f1-1 (vector-dot arg0 arg2)) + (f0-2 (- (* 0.02 f0-0) f1-1)) + ) + (vector+float*! arg0 arg0 arg2 (fmin 16384.0 (* 16.0 f0-2))) + ) + ) + ) + +;; definition for function vector-reflect-flat-gravity! +;; INFO: Used lq/sq +(defun vector-reflect-flat-gravity! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> arg1 quad)) + (vector-reflect-flat! arg0 s4-0 arg2) + (let* ((s2-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-0 1.0)) + (f28-0 (vector-length s4-0)) + (f30-0 (vector-length arg0)) + (f0-1 (vector-dot s2-0 arg2)) + (f1-1 (vector-dot arg3 arg2)) + ) + (when (and (< 0.0001 f1-1) (< 8192.0 f28-0)) + (let ((f0-3 (- (/ f0-1 f1-1)))) + (vector+float*! arg0 s4-0 arg3 (* f28-0 f0-3)) + ) + (vector+! arg0 arg0 arg2) + (vector-normalize! arg0 f30-0) + ) + ) + ) + arg0 + ) + +;; definition for function vector-segment-distance-point! +(defun vector-segment-distance-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Compute the distance from a point to the closest point on the line segment. + arg0 is the point. arg1/arg2 are the endpoints of the line segment. + arg3 is an optional output closest point." + (local-vars (v0-0 float) (v1-0 float) (v1-1 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + ) + (init-vf0-vector) + (nop!) + (.lvf vf3 (&-> arg1 quad)) + (.lvf vf4 (&-> arg2 quad)) + (.lvf vf5 (&-> arg0 quad)) + (.sub.vf vf1 vf4 vf3) + (.sub.vf vf6 vf5 vf3) + (.mul.vf vf2 vf1 vf1) + (.mul.x.vf acc vf0 vf2 :mask #b1000) + (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000) + (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000) + (.sqrt.vf Q vf2 :ftf #b11) + (.wait.vf) + (.add.vf vf2 vf0 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.div.vf Q vf0 vf2 :fsf #b11 :ftf #b0) + (.mov v1-0 vf2) + (let ((f2-0 v1-0)) + (.wait.vf) + (.mul.vf vf1 vf1 Q) + (.mul.vf vf7 vf1 vf6) + (let ((f1-0 (the-as float 0.0))) + (.add.y.vf vf7 vf7 vf7 :mask #b1) + (.add.z.vf vf7 vf7 vf7 :mask #b1) + (.mov v1-1 vf7) + (let ((f0-0 v1-1)) + (b! (< f0-0 f1-0) cfg-4 :likely-delay (set! f0-0 f1-0)) + (b! (< f2-0 f0-0) cfg-4 :likely-delay (set! f0-0 f2-0)) + (label cfg-4) + (let ((v1-2 f0-0)) + (.mov vf7 v1-2) + ) + ) + ) + ) + (.mul.x.vf vf1 vf1 vf7) + (b! (= arg3 #f) cfg-6 :delay (.mov.vf vf8 vf0 :mask #b1000)) + (.add.vf vf8 vf3 vf1 :mask #b111) + (.svf (&-> arg3 quad) vf8) + (label cfg-6) + (.sub.vf vf2 vf6 vf1) + (.mul.vf vf2 vf2 vf2) + (.mul.x.vf acc vf0 vf2 :mask #b1000) + (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000) + (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000) + (.sqrt.vf Q vf2 :ftf #b11) + (.wait.vf) + (.add.vf vf2 vf0 Q :mask #b1) + (.nop.vf) + (.mov v0-0 vf2) + v0-0 + ) + ) + +;; definition for function vector-segment-xz-distance-point! +(defun vector-segment-xz-distance-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((v1-0 (new 'stack-no-clear 'matrix))) + (set-vector! (-> v1-0 rvec) (-> arg0 x) 0.0 (-> arg0 z) 0.0) + (set-vector! (-> v1-0 uvec) (-> arg1 x) 0.0 (-> arg1 z) 1.0) + (set-vector! (-> v1-0 fvec) (-> arg2 x) 0.0 (-> arg2 z) 1.0) + (vector-segment-distance-point! (-> v1-0 rvec) (-> v1-0 uvec) (-> v1-0 fvec) arg3) + ) + ) + +;; definition for function vector-line-distance +;; INFO: Used lq/sq +(defun vector-line-distance ((arg0 vector) (arg1 vector) (arg2 vector)) + "Weird function: given a point arg1, and an infinite line connecting arg2 and arg1, compute the distance + from arg0 to that line." + (let* ((a1-3 (vector-normalize! (vector-! (new-stack-vector0) arg2 arg1) 1.0)) + (gp-1 (vector-! (new-stack-vector0) arg0 arg1)) + (f0-1 (vector-dot a1-3 gp-1)) + (v1-3 (vector-float*! (new-stack-vector0) a1-3 f0-1)) + ) + (vector-length (vector-! (new-stack-vector0) gp-1 v1-3)) + ) + ) + +;; definition for function vector-line-distance-point! +;; INFO: Used lq/sq +(defun vector-line-distance-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Same as above function, but returns the point on arg2/arg1 in arg3 (ignored if #f)" + (let* ((a1-3 (vector-normalize! (vector-! (new-stack-vector0) arg2 arg1) 1.0)) + (s4-1 (vector-! (new-stack-vector0) arg0 arg1)) + (f0-1 (vector-dot a1-3 s4-1)) + (v1-4 (vector-float*! (new-stack-vector0) a1-3 f0-1)) + ) + (if arg3 + (vector+! arg3 arg1 v1-4) + ) + (vector-length (vector-! (new-stack-vector0) s4-1 v1-4)) + ) + ) + +;; definition for function vector-line-xz-distance-point! +(defun vector-line-xz-distance-point! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((v1-0 (new 'stack-no-clear 'matrix))) + (set-vector! (-> v1-0 rvec) (-> arg0 x) 0.0 (-> arg0 z) 0.0) + (set-vector! (-> v1-0 uvec) (-> arg1 x) 0.0 (-> arg1 z) 1.0) + (set-vector! (-> v1-0 fvec) (-> arg2 x) 0.0 (-> arg2 z) 1.0) + (vector-line-distance-point! (-> v1-0 rvec) (-> v1-0 uvec) (-> v1-0 fvec) arg3) + ) + ) + +;; definition for function vector-segment-overlap +(defun vector-segment-overlap ((arg0 vector) (arg1 vector) (arg2 vector)) + "Seems to compute (v1 - v0).dot(v2 - v1), but in a weird way." + (let* ((gp-1 (vector-! (new 'stack-no-clear 'vector) arg1 arg2)) + (s5-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) gp-1 1.0)) + ) + (let ((a3-0 (new 'stack-no-clear 'vector))) + (vector-line-distance-point! arg0 arg1 arg2 a3-0) + ) + (/ (vector-dot s5-0 (vector-! (new 'stack-no-clear 'vector) arg1 arg0)) (vector-length gp-1)) + ) + ) + +;; definition for function line-sphere-intersection? +(defun line-sphere-intersection? ((arg0 vector) (arg1 vector) (arg2 vector)) + "Does [arg1, arg2] intersect sphere arg0?" + (let ((s5-0 (new 'stack-no-clear 'vector))) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (f30-0 0.0) + ) + (vector-! s3-0 arg2 arg1) + (let ((f0-0 (vector-length-squared s3-0))) + (if (< 0.0 f0-0) + (set! f30-0 (/ 1.0 f0-0)) + ) + ) + (let ((v1-6 (new 'stack-no-clear 'vector))) + (vector-! v1-6 arg0 arg1) + (let* ((f1-2 (* (vector-dot s3-0 v1-6) f30-0)) + (f0-5 (fmax 0.0 (fmin 1.0 f1-2))) + ) + (vector+float*! s5-0 arg1 s3-0 f0-5) + ) + ) + ) + (let ((f0-6 (vector-vector-distance-squared s5-0 arg0)) + (f1-4 (-> arg0 w)) + ) + (< f0-6 (* f1-4 f1-4)) + ) + ) + ) + +;; definition for function nearest-dist2-between-moving-points +(defun nearest-dist2-between-moving-points ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 float)) + (let ((v1-0 (new 'stack-no-clear 'inline-array 'vector 2))) + (vector-! (-> v1-0 0) arg2 arg0) + (vector-! (-> v1-0 1) arg3 arg1) + (let ((f0-1 (vector-dot (-> v1-0 0) (-> v1-0 0))) + (f1-1 (vector-dot (-> v1-0 1) (-> v1-0 1))) + (f2-1 (vector-dot (-> v1-0 0) (-> v1-0 1))) + (f3-0 0.0) + ) + (if (< 0.0 f1-1) + (set! f3-0 (fmax 0.0 (fmin (/ (- f2-1) f1-1) arg4))) + ) + (+ f0-1 (* 2.0 f2-1 f3-0) (* f3-0 f3-0 f1-1)) + ) + ) + ) + +;; definition for function vector-orient-by-quat! +(defun vector-orient-by-quat! ((arg0 vector) (arg1 vector) (arg2 quaternion)) + "Rotate a vector by a quaternion." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg2 quad)) + (.lvf vf6 (&-> arg1 quad)) + (.add.vf vf5 vf1 vf1) + (.add.w.vf vf2 vf0 vf1 :mask #b1) + (.add.z.vf vf2 vf0 vf1 :mask #b10) + (.sub.y.vf vf2 vf0 vf1 :mask #b100) + (.sub.w.vf vf2 vf0 vf0 :mask #b1000) + (.sub.z.vf vf3 vf0 vf1 :mask #b1) + (.add.w.vf vf3 vf0 vf1 :mask #b10) + (.add.x.vf vf3 vf0 vf1 :mask #b100) + (.sub.w.vf vf3 vf0 vf0 :mask #b1000) + (.add.y.vf vf4 vf0 vf1 :mask #b1) + (.sub.x.vf vf4 vf0 vf1 :mask #b10) + (.add.w.vf vf4 vf0 vf1 :mask #b100) + (.sub.w.vf vf4 vf0 vf0 :mask #b1000) + (.outer.product.a.vf acc vf5 vf2) + (.outer.product.b.vf vf2 vf2 vf5 acc) + (.outer.product.a.vf acc vf5 vf3) + (.outer.product.b.vf vf3 vf3 vf5 acc) + (.outer.product.a.vf acc vf5 vf4) + (.outer.product.b.vf vf4 vf4 vf5 acc) + (.add.w.vf vf2 vf2 vf0 :mask #b1) + (.add.w.vf vf3 vf3 vf0 :mask #b10) + (.add.w.vf vf4 vf4 vf0 :mask #b100) + (.mul.w.vf acc vf0 vf6) + (.add.mul.x.vf acc vf2 vf6 acc) + (.add.mul.y.vf acc vf3 vf6 acc) + (.add.mul.z.vf vf6 vf4 vf6 acc) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +;; definition for function vector-inv-orient-by-quat! +;; ERROR: Bad vector register dependency: vf7 +(defun vector-inv-orient-by-quat! ((arg0 vector) (arg1 vector) (arg2 quaternion)) + "Rotate a vector by the inverse rotation." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.sub.vf vf7 vf7 vf7) + (.lvf vf1 (&-> arg2 quad)) + (.lvf vf6 (&-> arg1 quad)) + (.sub.vf vf1 vf7 vf1 :mask #b111) + (.add.vf vf5 vf1 vf1) + (.add.w.vf vf2 vf0 vf1 :mask #b1) + (.add.z.vf vf2 vf0 vf1 :mask #b10) + (.sub.y.vf vf2 vf0 vf1 :mask #b100) + (.sub.w.vf vf2 vf0 vf0 :mask #b1000) + (.sub.z.vf vf3 vf0 vf1 :mask #b1) + (.add.w.vf vf3 vf0 vf1 :mask #b10) + (.add.x.vf vf3 vf0 vf1 :mask #b100) + (.sub.w.vf vf3 vf0 vf0 :mask #b1000) + (.add.y.vf vf4 vf0 vf1 :mask #b1) + (.sub.x.vf vf4 vf0 vf1 :mask #b10) + (.add.w.vf vf4 vf0 vf1 :mask #b100) + (.sub.w.vf vf4 vf0 vf0 :mask #b1000) + (.outer.product.a.vf acc vf5 vf2) + (.outer.product.b.vf vf2 vf2 vf5 acc) + (.outer.product.a.vf acc vf5 vf3) + (.outer.product.b.vf vf3 vf3 vf5 acc) + (.outer.product.a.vf acc vf5 vf4) + (.outer.product.b.vf vf4 vf4 vf5 acc) + (.add.w.vf vf2 vf2 vf0 :mask #b1) + (.add.w.vf vf3 vf3 vf0 :mask #b10) + (.add.w.vf vf4 vf4 vf0 :mask #b100) + (.mul.w.vf acc vf0 vf6) + (.add.mul.x.vf acc vf2 vf6 acc) + (.add.mul.y.vf acc vf3 vf6 acc) + (.add.mul.z.vf vf6 vf4 vf6 acc) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +;; definition for function forward-down->inv-matrix +;; INFO: Used lq/sq +(defun forward-down->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is down (-y). Will have the pitch of forward." + (vector-normalize-copy! (-> arg0 fvec) arg1 1.0) + (vector-cross! (-> arg0 rvec) (-> arg0 fvec) arg2) + (vector-normalize! (-> arg0 rvec) 1.0) + (vector-cross! (-> arg0 uvec) arg1 (-> arg0 rvec)) + (vector-normalize! (-> arg0 uvec) 1.0) + (set! (-> arg0 trans quad) (the-as uint128 0)) + (set! (-> arg0 rvec w) 0.0) + (set! (-> arg0 uvec w) 0.0) + (set! (-> arg0 fvec w) 0.0) + (set! (-> arg0 trans w) 1.0) + arg0 + ) + +;; definition for function forward-down-nopitch->inv-matrix +;; INFO: Used lq/sq +(defun forward-down-nopitch->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is down (-y). Will not use the pitch of forward." + (vector-normalize-copy! (-> arg0 uvec) arg2 1.0) + (vector-negate! (-> arg0 uvec) (-> arg0 uvec)) + (vector-cross! (-> arg0 rvec) (-> arg0 uvec) arg1) + (vector-normalize! (-> arg0 rvec) 1.0) + (vector-cross! (-> arg0 fvec) (-> arg0 rvec) (-> arg0 uvec)) + (vector-normalize! (-> arg0 fvec) 1.0) + (set! (-> arg0 trans quad) (the-as uint128 0)) + (set! (-> arg0 rvec w) 0.0) + (set! (-> arg0 uvec w) 0.0) + (set! (-> arg0 fvec w) 0.0) + (set! (-> arg0 trans w) 1.0) + arg0 + ) + +;; definition for function forward-up->inv-matrix +(defun forward-up->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is up (+y). Will use the pitch of forward." + (forward-down->inv-matrix arg0 arg1 (vector-negate! (new 'stack-no-clear 'vector) arg2)) + ) + +;; definition for function forward-up-nopitch->inv-matrix +;; INFO: Used lq/sq +(defun forward-up-nopitch->inv-matrix ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a matrix representing an inverse transform where arg1 is forward (+z) + and arg2 is up (+y). Will not use the pitch of forward." + (forward-down-nopitch->inv-matrix arg0 arg1 (vector-negate! (new-stack-vector0) arg2)) + ) + +;; definition for function forward-up-nopitch->quaternion +;; INFO: Used lq/sq +(defun forward-up-nopitch->quaternion ((arg0 quaternion) (arg1 vector) (arg2 vector)) + "Create a quaternion representing a transform where arg1 is forward (+z) + and arg2 is up (+y). Will not use the pitch of forward." + (let ((gp-0 matrix->quaternion) + (s5-0 arg0) + (t9-0 forward-up-nopitch->inv-matrix) + (a0-1 (new 'stack-no-clear 'matrix)) + ) + (set! (-> a0-1 rvec quad) (the-as uint128 0)) + (set! (-> a0-1 uvec quad) (the-as uint128 0)) + (set! (-> a0-1 fvec quad) (the-as uint128 0)) + (set! (-> a0-1 trans quad) (the-as uint128 0)) + (gp-0 s5-0 (t9-0 a0-1 arg1 arg2)) + ) + ) + +;; definition for function forward-up->quaternion +;; INFO: Used lq/sq +(defun forward-up->quaternion ((arg0 quaternion) (arg1 vector) (arg2 vector)) + "Create a quaternion representing a transform where arg1 is forward (+z) + and arg2 is up (+y). Will use the pitch of forward." + (let ((gp-0 matrix->quaternion) + (s5-0 arg0) + (s4-0 forward-down->inv-matrix) + (s3-0 (new 'stack-no-clear 'matrix)) + ) + (set! (-> s3-0 rvec quad) (the-as uint128 0)) + (set! (-> s3-0 uvec quad) (the-as uint128 0)) + (set! (-> s3-0 fvec quad) (the-as uint128 0)) + (set! (-> s3-0 trans quad) (the-as uint128 0)) + (gp-0 s5-0 (s4-0 s3-0 arg1 (vector-negate! (new 'stack-no-clear 'vector) arg2))) + ) + ) + +;; definition for function quaternion-from-two-vectors! +;; INFO: Used lq/sq +(defun quaternion-from-two-vectors! ((arg0 quaternion) (arg1 vector) (arg2 vector)) + "Create a quaternion representing the rotation between two vectors." + (let* ((s5-0 (vector-cross! (new-stack-vector0) arg1 arg2)) + (f1-0 (vector-length s5-0)) + (f0-1 (vector-dot arg1 arg2)) + ) + (let ((f1-1 (/ (sqrtf (* 0.5 (- 1.0 f0-1))) f1-0))) + (set! (-> arg0 x) (* (-> s5-0 x) f1-1)) + (set! (-> arg0 y) (* (-> s5-0 y) f1-1)) + (set! (-> arg0 z) (* (-> s5-0 z) f1-1)) + ) + (set! (-> arg0 w) (sqrtf (* 0.5 (+ 1.0 f0-1)))) + ) + arg0 + ) + +;; definition for function quaternion-from-two-vectors-partial! +;; INFO: Used lq/sq +(defun quaternion-from-two-vectors-partial! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float)) + "Create a quaternion representing the rotation between two vectors, + doing arg3 fraction of the total rotation." + (let* ((s5-0 (vector-cross! (new-stack-vector0) arg1 arg2)) + (f0-0 (vector-length s5-0)) + (f1-1 (+ 1.0 (* arg3 (+ -1.0 (vector-dot arg1 arg2))))) + ) + (let ((f0-1 (/ (sqrtf (* 0.5 (- 1.0 f1-1))) f0-0))) + (set! (-> arg0 x) (* (-> s5-0 x) f0-1)) + (set! (-> arg0 y) (* (-> s5-0 y) f0-1)) + (set! (-> arg0 z) (* (-> s5-0 z) f0-1)) + ) + (set! (-> arg0 w) (sqrtf (* 0.5 (+ 1.0 f1-1)))) + ) + arg0 + ) + +;; definition for function quaternion-from-two-vectors-max-angle! +;; INFO: Used lq/sq +(defun quaternion-from-two-vectors-max-angle! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float)) + "Create a quaternion representing the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (let* ((s5-0 (vector-cross! (new-stack-vector0) arg1 arg2)) + (f30-0 (vector-length s5-0)) + (f0-1 (fmax (cos arg3) (vector-dot arg1 arg2))) + ) + (let ((f1-5 (/ (sqrtf (* 0.5 (- 1.0 f0-1))) f30-0))) + (set! (-> arg0 x) (* (-> s5-0 x) f1-5)) + (set! (-> arg0 y) (* (-> s5-0 y) f1-5)) + (set! (-> arg0 z) (* (-> s5-0 z) f1-5)) + ) + (set! (-> arg0 w) (sqrtf (* 0.5 (+ 1.0 f0-1)))) + ) + arg0 + ) + +;; definition for function quaternion-from-two-vectors-max-angle-partial! +;; INFO: Used lq/sq +(defun quaternion-from-two-vectors-max-angle-partial! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float) (arg4 float)) + "Create a quaternion representing the arg4 fraction of the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (let* ((s5-0 (vector-cross! (new-stack-vector0) arg1 arg2)) + (f30-0 (vector-length s5-0)) + (f0-1 (fmax (cos arg3) (+ 1.0 (* arg4 (+ -1.0 (vector-dot arg1 arg2)))))) + ) + (let ((f1-5 (/ (sqrtf (* 0.5 (- 1.0 f0-1))) f30-0))) + (set! (-> arg0 x) (* (-> s5-0 x) f1-5)) + (set! (-> arg0 y) (* (-> s5-0 y) f1-5)) + (set! (-> arg0 z) (* (-> s5-0 z) f1-5)) + ) + (set! (-> arg0 w) (sqrtf (* 0.5 (+ 1.0 f0-1)))) + ) + arg0 + ) + +;; definition for function matrix-from-two-vectors! +;; INFO: Used lq/sq +(defun matrix-from-two-vectors! ((arg0 matrix) (arg1 vector) (arg2 vector)) + "Create a rotation matrix representing the rotation between two vectors." + (let* ((a1-3 (vector-normalize! (vector-cross! (new-stack-vector0) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f1-0 1.0) + (f2-0 f0-1) + (f1-2 (sqrtf (- f1-0 (* f2-0 f2-0)))) + ) + (matrix-axis-sin-cos! arg0 a1-3 f1-2 f0-1) + ) + ) + +;; definition for function matrix-from-two-vectors-max-angle! +;; INFO: Used lq/sq +(defun matrix-from-two-vectors-max-angle! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float)) + "Create a rotation matrix representing the rotation between two vectors, + allowing at most a rotation of arg3 degrees." + (let ((s4-1 (vector-normalize! (vector-cross! (new-stack-vector0) arg2 arg1) 1.0)) + (f30-0 (vector-dot arg1 arg2)) + (f28-0 (cos arg3)) + ) + (cond + ((< f30-0 f28-0) + (matrix-axis-sin-cos! arg0 s4-1 (sin arg3) f28-0) + ) + (else + (let ((t9-5 matrix-axis-sin-cos!) + (a0-6 arg0) + (a1-4 s4-1) + (f0-1 1.0) + (f1-0 f30-0) + ) + (t9-5 a0-6 a1-4 (sqrtf (- f0-1 (* f1-0 f1-0))) f30-0) + ) + ) + ) + ) + ) + +;; definition for function matrix-from-two-vectors-smooth! +(defun matrix-from-two-vectors-smooth! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) + "This function can help smoothly rotate from a current heading vector to a target one. + It returns a rotation to move arg1 closer to arg2, subject to two different speed limits. + arg3 is a rotations-per-frame rate. This limit takes frame rate into account (when lagging, the rotation is larger) + arg4 is a 'slow down when getting close to the end' limit. + This is used in rotate-toward-orientation, which is much improved from jak 1." + (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f0-2 (acos f0-1)) + (f1-2 (fmin (* arg3 (seconds-per-frame)) (/ (* 5.0 (fabs f0-2)) (the float arg4)))) + (f30-0 (fmax (fmin f0-2 f1-2) (- f1-2))) + ) + (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) + ) + arg0 + ) + +;; definition for function matrix-from-two-vectors-the-long-way-smooth! +(defun matrix-from-two-vectors-the-long-way-smooth! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) + "Same as above, but rotates you away from the target. + Note that the 'near the end' smoothing will apply when you're near the target." + (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f0-3 (- (acos f0-1))) + (f1-2 (fmin (* arg3 (seconds-per-frame)) (/ (* 5.0 (fabs f0-3)) (the float arg4)))) + (f30-0 (fmax (fmin f0-3 f1-2) (- f1-2))) + ) + (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) + ) + arg0 + ) + +;; definition for function quaternion-from-two-vectors-smooth! +(defun quaternion-from-two-vectors-smooth! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) + "Same as above, but returns a quaternion." + (let ((a1-1 (matrix-from-two-vectors-smooth! (new 'stack-no-clear 'matrix) arg1 arg2 arg3 arg4))) + (matrix->quaternion arg0 a1-1) + ) + ) + +;; definition for function matrix-from-two-vectors-max-angle-partial! +(defun matrix-from-two-vectors-max-angle-partial! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 float)) + "Create a rotation matrix representing the given fraction of the rotation between two heading vectors, + rotating by at most the given angle." + (let* ((s4-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f28-0 (vector-dot arg1 arg2)) + (f30-0 (cos arg3)) + (f0-2 (+ 1.0 (* (+ -1.0 f28-0) arg4))) + ) + (cond + ((< f0-2 f30-0) + (matrix-axis-sin-cos! arg0 s4-1 (sin arg3) f30-0) + ) + (else + (let ((t9-5 matrix-axis-sin-cos!) + (a0-6 arg0) + (a1-4 s4-1) + (f1-3 1.0) + (f2-1 f0-2) + ) + (t9-5 a0-6 a1-4 (sqrtf (- f1-3 (* f2-1 f2-1))) f0-2) + ) + ) + ) + ) + ) + +;; definition for function matrix-from-two-vectors-partial-linear! +;; INFO: Used lq/sq +(defun matrix-from-two-vectors-partial-linear! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float)) + "Create a rotation matrix representing doing arg3 fraction of the rotation between two vectors." + (let ((gp-1 (vector-normalize! (vector-cross! (new-stack-vector0) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + ) + (cond + ((< 0.9999 (fabs f0-1)) + (matrix-identity! arg0) + ) + (else + (let* ((f0-4 (cos (* arg3 (acos f0-1)))) + (t9-5 matrix-axis-sin-cos!) + (a0-6 arg0) + (f1-1 1.0) + (f2-1 f0-4) + ) + (t9-5 a0-6 gp-1 (sqrtf (- f1-1 (* f2-1 f2-1))) f0-4) + ) + ) + ) + ) + ) + +;; definition for function matrix-remove-z-rot +;; INFO: Used lq/sq +(defun matrix-remove-z-rot ((arg0 matrix) (arg1 vector)) + "Remove the z rotation component of a rotation." + (let ((s4-0 (new-stack-vector0))) + 0.0 + 0.0 + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (set! (-> s5-0 rvec quad) (the-as uint128 0)) + (set! (-> s5-0 uvec quad) (the-as uint128 0)) + (set! (-> s5-0 fvec quad) (the-as uint128 0)) + (set! (-> s5-0 trans quad) (the-as uint128 0)) + (vector-negate! s4-0 arg1) + (vector-flatten! s4-0 s4-0 (-> arg0 fvec)) + (vector-normalize! s4-0 1.0) + (let ((f30-0 (vector-dot (-> arg0 uvec) s4-0))) + (when (< f30-0 0.99999) + (vector-cross! s4-0 (-> arg0 uvec) s4-0) + (let ((f0-4 (vector-length s4-0))) + (if (< 0.0 (vector-dot s4-0 (-> arg0 fvec))) + (set! f0-4 (- f0-4)) + ) + (matrix-axis-sin-cos! s5-0 (-> arg0 fvec) f0-4 f30-0) + ) + (matrix*! arg0 arg0 s5-0) + ) + ) + ) + ) + arg0 + ) + +;; definition for function matrix-rot-diff! +;; INFO: Used lq/sq +(defun matrix-rot-diff! ((arg0 vector) (arg1 matrix) (arg2 matrix)) + "Get the difference of rotation between two matrices, expressed as a quaternion." + (let ((s3-0 (new-stack-quaternion0)) + (s2-0 (new-stack-quaternion0)) + (s5-0 (new-stack-quaternion0)) + ) + 0.0 + (matrix->quaternion s3-0 arg1) + (matrix->quaternion s2-0 arg2) + (quaternion-conjugate! s5-0 s3-0) + (quaternion*! s5-0 s2-0 s5-0) + (quaternion-normalize! s5-0) + (if (< (-> s5-0 w) 0.0) + (quaternion-negate! s5-0 s5-0) + ) + (let ((f30-1 (* 2.0 (acos (-> s5-0 w))))) + (set! (-> arg0 quad) (-> s5-0 quad)) + (vector-negate! arg0 arg0) + (if (= (vector-normalize-ret-len! arg0 1.0) 0.0) + (set! (-> arg0 y) 1.0) + ) + f30-1 + ) + ) + ) + +;; definition for function quaternion-seek +;; INFO: Used lq/sq +(defun quaternion-seek ((arg0 quaternion) (arg1 quaternion) (arg2 quaternion) (arg3 float) (arg4 float)) + "Strange quaternion rotate toward function. arg3 is ignored. arg4 is the max seek amount." + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (set! (-> s5-0 rvec quad) (the-as uint128 0)) + (set! (-> s5-0 uvec quad) (the-as uint128 0)) + (set! (-> s5-0 fvec quad) (the-as uint128 0)) + (set! (-> s5-0 trans quad) (the-as uint128 0)) + (let ((s4-0 (new 'stack-no-clear 'matrix))) + (set! (-> s4-0 rvec quad) (the-as uint128 0)) + (set! (-> s4-0 uvec quad) (the-as uint128 0)) + (set! (-> s4-0 fvec quad) (the-as uint128 0)) + (set! (-> s4-0 trans quad) (the-as uint128 0)) + (quaternion->matrix s5-0 arg1) + (quaternion->matrix s4-0 arg2) + (let ((s2-1 (new-stack-quaternion0))) + (quaternion-from-two-vectors-max-angle! s2-1 (-> s5-0 fvec) (-> s4-0 fvec) arg4) + (quaternion-normalize! (quaternion*! arg0 arg0 s2-1)) + ) + ) + ) + ) + +;; definition for function vector-deg-seek +;; INFO: Used lq/sq +(defun vector-deg-seek ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Make one vector closer to another, doing at most a rotation by arg3 degrees." + (let ((s4-0 (new 'stack-no-clear 'matrix))) + (set! (-> s4-0 rvec quad) (the-as uint128 0)) + (set! (-> s4-0 uvec quad) (the-as uint128 0)) + (set! (-> s4-0 fvec quad) (the-as uint128 0)) + (set! (-> s4-0 trans quad) (the-as uint128 0)) + (matrix-from-two-vectors-max-angle! s4-0 arg1 arg2 arg3) + (vector-matrix*! arg0 arg1 s4-0) + ) + ) + +;; definition for function vector-deg-slerp +;; INFO: Used lq/sq +(defun vector-deg-slerp ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Slerp for vectors. (imagine that they are the z axis of two frames)" + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + arg0 + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + arg0 + ) + (else + (let ((s1-0 (new 'stack-no-clear 'matrix))) + (set! (-> s1-0 rvec quad) (the-as uint128 0)) + (set! (-> s1-0 uvec quad) (the-as uint128 0)) + (set! (-> s1-0 fvec quad) (the-as uint128 0)) + (set! (-> s1-0 trans quad) (the-as uint128 0)) + (let ((s2-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg1 1.0)) + (a2-3 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg2 1.0)) + ) + (matrix-from-two-vectors-partial-linear! s1-0 s2-0 a2-3 arg3) + ) + (vector-matrix*! arg0 arg1 s1-0) + ) + ) + ) + ) + +;; definition for function vector-vector-deg-slerp! +;; INFO: Used lq/sq +(defun vector-vector-deg-slerp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float) (arg4 vector)) + "Unused. No clue what this does." + (local-vars (sv-112 (function float float float float))) + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (let* ((s0-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg1 1.0)) + (s1-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) arg2 1.0)) + (s0-1 (forward-up->quaternion (new 'stack-no-clear 'quaternion) s0-0 arg4)) + (a2-5 (forward-up->quaternion (new 'stack-no-clear 'quaternion) s1-0 arg4)) + (a1-6 (quaternion-slerp! (new 'stack-no-clear 'quaternion) s0-1 a2-5 arg3)) + (s2-1 vector-normalize-copy!) + (s1-1 arg0) + (s0-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) a1-6)) + ) + (set! sv-112 lerp) + (let ((s3-1 (vector-length arg1)) + (a1-7 (vector-length arg2)) + ) + (s2-1 s1-1 s0-2 (sv-112 s3-1 a1-7 arg3)) + ) + ) + ) + ) + arg0 + ) + +;; definition for function normal-of-plane +(defun normal-of-plane ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Given three points on a plane, compute the plane's normal." + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (.lvf vf3 (&-> arg2 quad)) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg3 quad)) + (.sub.vf vf1 vf3 vf1) + (.sub.vf vf2 vf3 vf2) + (.outer.product.a.vf acc vf2 vf1) + (.outer.product.b.vf vf4 vf1 vf2 acc) + (.mul.vf vf5 vf4 vf4) + (.add.y.vf vf5 vf5 vf5 :mask #b1) + (.add.z.vf vf5 vf5 vf5 :mask #b1) + (.isqrt.vf Q vf0 vf5 :fsf #b11 :ftf #b0) + (.mov.vf vf4 vf0 :mask #b1000) + (.wait.vf) + (.mul.vf vf4 vf4 Q :mask #b111) + (.nop.vf) + (.nop.vf) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +;; definition for function vector-3pt-cross! +(defun vector-3pt-cross! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Cross product of 2 - 1 and 3 - 1. (will give a normal to the plane, but not of magnitude 1)" + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.lvf vf3 (&-> arg3 quad)) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.sub.vf vf2 vf2 vf1) + (.sub.vf vf3 vf3 vf1) + (.outer.product.a.vf acc vf2 vf3) + (.outer.product.b.vf vf4 vf3 vf2 acc) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +;; definition for function closest-pt-in-triangle +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun closest-pt-in-triangle ((arg0 vector) (arg1 vector) (arg2 matrix) (arg3 vector)) + "arg2 is the vertices of the triangle, arg3 is the normal, arg1 is the input point, arg0 is the output." + (local-vars + (v1-0 float) + (v1-4 uint) + (v1-5 uint) + (v1-6 uint) + (v1-7 uint) + (v1-10 uint) + (a0-1 float) + (a1-1 float) + ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf10 :class vf) + (vf11 :class vf) + (vf12 :class vf) + (vf13 :class vf) + (vf14 :class vf) + (vf15 :class vf) + (vf16 :class vf) + (vf17 :class vf) + (vf18 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + (vf9 :class vf) + ) + (init-vf0-vector) + (nop!) + (nop!) + (.lvf vf3 (&-> arg2 uvec quad)) + (nop!) + (.lvf vf4 (&-> arg2 fvec quad)) + (nop!) + (.lvf vf5 (&-> arg1 quad)) + (.sub.vf vf6 vf3 vf4) + (.lvf vf2 (&-> arg2 rvec quad)) + (.sub.vf vf7 vf3 vf5) + (.lvf vf1 (&-> arg3 quad)) + (.sub.vf vf8 vf3 vf2) + (.sub.vf vf9 vf5 vf4) + (.sub.vf vf10 vf5 vf2) + (.outer.product.a.vf acc vf7 vf8) + (.outer.product.b.vf vf14 vf8 vf7 acc) + (.outer.product.a.vf acc vf6 vf7) + (.outer.product.b.vf vf15 vf7 vf6 acc) + (.mul.vf vf11 vf14 vf1) + (.outer.product.a.vf acc vf9 vf10) + (.outer.product.b.vf vf16 vf10 vf9 acc) + (.mul.vf vf12 vf15 vf1) + (.add.x.vf vf11 vf11 vf11 :mask #b10) + (.mul.vf vf13 vf16 vf1) + (.add.x.vf vf12 vf12 vf12 :mask #b10) + (.add.x.vf vf13 vf13 vf13 :mask #b10) + (.add.z.vf vf11 vf11 vf11 :mask #b10) + (.add.z.vf vf12 vf12 vf12 :mask #b10) + (.add.z.vf vf13 vf13 vf13 :mask #b10) + (.mov v1-0 vf11) + (.mov a1-1 vf12) + (.mov a0-1 vf13) + (let* ((v1-1 (shr (the-as int v1-0) 63)) + (a1-2 (shr (the-as int a1-1) 63)) + (a0-2 (shr (the-as int a0-1) 63)) + (a1-3 (* a1-2 2)) + (a0-3 (* a0-2 4)) + (v1-3 (logior (logior v1-1 a1-3) a0-3)) + ) + (b! (nonzero? v1-3) cfg-3 :delay (set! v1-4 (+ v1-3 -1))) + ) + (.sub.vf vf17 vf5 vf2) + (.mov.vf vf18 vf0 :mask #b1000) + (.outer.product.a.vf acc vf17 vf1) + (.outer.product.b.vf vf18 vf1 vf17 acc) + (.outer.product.a.vf acc vf1 vf18) + (.outer.product.b.vf vf18 vf18 vf1 acc) + (.add.vf vf18 vf18 vf2 :mask #b111) + (b! #t cfg-24 :delay (.svf (&-> arg0 quad) vf18)) + (nop!) + (label cfg-3) + (b! (nonzero? v1-4) cfg-6 :delay (set! v1-5 (+ v1-4 -1))) + (vector-segment-distance-point! arg1 (-> arg2 rvec) (-> arg2 uvec) arg0) + (goto cfg-24) + (label cfg-6) + (b! (nonzero? v1-5) cfg-9 :delay (set! v1-6 (+ v1-5 -1))) + (vector-segment-distance-point! arg1 (-> arg2 uvec) (-> arg2 fvec) arg0) + (goto cfg-24) + (label cfg-9) + (b! (nonzero? v1-6) cfg-14 :delay (set! v1-7 (+ v1-6 -1))) + (let ((f30-0 (vector-segment-distance-point! arg1 (-> arg2 uvec) (-> arg2 rvec) arg0)) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (if (< (vector-segment-distance-point! arg1 (-> arg2 uvec) (-> arg2 fvec) s3-0) f30-0) + (set! (-> arg0 quad) (-> s3-0 quad)) + ) + ) + (goto cfg-24) + (label cfg-14) + (b! (nonzero? v1-7) cfg-17 :delay (set! v1-10 (+ v1-7 -1))) + (vector-segment-distance-point! arg1 (-> arg2 fvec) (-> arg2 rvec) arg0) + (goto cfg-24) + (label cfg-17) + (b! (nonzero? v1-10) cfg-22 :delay (nop!)) + (let ((f30-1 (vector-segment-distance-point! arg1 (-> arg2 rvec) (-> arg2 uvec) arg0)) + (s3-1 (new 'stack-no-clear 'vector)) + ) + (if (< (vector-segment-distance-point! arg1 (-> arg2 rvec) (-> arg2 fvec) s3-1) f30-1) + (set! (-> arg0 quad) (-> s3-1 quad)) + ) + ) + (goto cfg-24) + (label cfg-22) + (let ((f30-2 (vector-segment-distance-point! arg1 (-> arg2 fvec) (-> arg2 rvec) arg0)) + (s3-2 (new 'stack-no-clear 'vector)) + ) + (if (< (vector-segment-distance-point! arg1 (-> arg2 fvec) (-> arg2 uvec) s3-2) f30-2) + (set! (-> arg0 quad) (-> s3-2 quad)) + ) + ) + (label cfg-24) + 0 + (none) + ) + ) + +;; definition for function point-in-triangle-cross +;; WARN: Using logior on floats +;; WARN: Using logior on floats +;; WARN: Using logior on floats +;; WARN: Using logior on floats +(defun point-in-triangle-cross ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 vector)) + "Check if point is in the triangle using cross product check (so you have to get the order of points right)." + (local-vars (v1-0 float) (a0-1 float) (a1-1 float)) + (rlet ((acc :class vf) + (vf1 :class vf) + (vf10 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + (vf8 :class vf) + (vf9 :class vf) + ) + (.lvf vf3 (&-> arg3 quad)) + (.lvf vf4 (&-> arg4 quad)) + (.lvf vf5 (&-> arg0 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.lvf vf1 (&-> arg1 quad)) + (.sub.vf vf6 vf3 vf4) + (.sub.vf vf7 vf3 vf5) + (.sub.vf vf8 vf3 vf2) + (.sub.vf vf9 vf5 vf4) + (.sub.vf vf10 vf5 vf2) + (.outer.product.a.vf acc vf6 vf7) + (.outer.product.b.vf vf2 vf7 vf6 acc) + (.outer.product.a.vf acc vf7 vf8) + (.outer.product.b.vf vf3 vf8 vf7 acc) + (.outer.product.a.vf acc vf9 vf10) + (.outer.product.b.vf vf4 vf10 vf9 acc) + (.mul.vf vf2 vf2 vf1) + (.mul.vf vf3 vf3 vf1) + (.nop.vf) + (.mul.vf vf4 vf4 vf1) + (.add.x.vf vf2 vf2 vf2 :mask #b10) + (.add.x.vf vf3 vf3 vf3 :mask #b10) + (.add.x.vf vf4 vf4 vf4 :mask #b10) + (.nop.vf) + (.add.z.vf vf2 vf2 vf2 :mask #b10) + (.add.z.vf vf3 vf3 vf3 :mask #b10) + (.add.z.vf vf4 vf4 vf4 :mask #b10) + (.nop.vf) + (.mov a0-1 vf2) + (.mov a1-1 vf3) + (.mov v1-0 vf4) + (>= (the-as int (logior (logior a0-1 (the-as uint a1-1)) (the-as uint v1-0))) 0) + ) + ) + +;; definition for function point-in-plane-<-point+normal! +(defun point-in-plane-<-point+normal! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Very strange function. Takes a plane, in point-normal form, then returns some other point on that plane. + It will move 1m in two of {x, y, z} directions. The direction not moved in is the one which is closest to point-in-triangle-cross + in the same direction of the normal (this prevent moving huge distances for nearly vertical planes for example)." + (let ((f0-3 (+ (* (-> arg2 x) (-> arg1 x)) (* (-> arg2 y) (-> arg1 y)) (* (-> arg2 z) (-> arg1 z))))) + (set! (-> arg0 w) 1.0) + (let ((f1-7 (fabs (-> arg2 x))) + (f2-3 (fabs (-> arg2 y))) + (f3-1 (fabs (-> arg2 z))) + ) + (cond + ((and (< f2-3 f1-7) (< f3-1 f1-7)) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! (-> arg0 x) (/ (+ (- (- (* (-> arg2 y) (-> arg0 y))) (* (-> arg2 z) (-> arg0 z))) f0-3) (-> arg2 x))) + ) + ((and (< f1-7 f2-3) (< f3-1 f2-3)) + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 z) (+ 4096.0 (-> arg1 z))) + (set! (-> arg0 y) (/ (- (- f0-3 (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 z) (-> arg0 z))) (-> arg2 y))) + ) + (else + (set! (-> arg0 x) (+ 4096.0 (-> arg1 x))) + (set! (-> arg0 y) (+ 4096.0 (-> arg1 y))) + (set! (-> arg0 z) (/ (+ (- (- (* (-> arg2 x) (-> arg0 x))) (* (-> arg2 y) (-> arg0 y))) f0-3) (-> arg2 z))) + ) + ) + ) + ) + arg0 + ) + +;; definition for function circle-circle-xz-intersect +;; WARN: Return type mismatch uint vs int. +;; ERROR: Unsupported inline assembly instruction kind - [mula.s f5, f5] +;; ERROR: Unsupported inline assembly instruction kind - [madda.s f1, f1] +;; ERROR: Unsupported inline assembly instruction kind - [madda.s f0, f0] +;; ERROR: Unsupported inline assembly instruction kind - [msuba.s f2, f2] +;; ERROR: Unsupported inline assembly instruction kind - [msuba.s f3, f3] +;; ERROR: Unsupported inline assembly instruction kind - [msub.s f6, f4, f4] +;; ERROR: Unsupported inline assembly instruction kind - [mula.s f3, f3] +;; ERROR: Unsupported inline assembly instruction kind - [madda.s f4, f4] +;; ERROR: Unsupported inline assembly instruction kind - [msub.s f3, f5, f5] +;; ERROR: Unsupported inline assembly instruction kind - [mula.s f4, f4] +;; ERROR: Unsupported inline assembly instruction kind - [msub.s f5, f6, f5] +;; ERROR: Unsupported inline assembly instruction kind - [mula.s f4, f4] +;; ERROR: Unsupported inline assembly instruction kind - [madda.s f3, f3] +;; ERROR: Unsupported inline assembly instruction kind - [msub.s f4, f5, f5] +;; ERROR: Unsupported inline assembly instruction kind - [mula.s f3, f3] +;; ERROR: Unsupported inline assembly instruction kind - [msub.s f5, f6, f5] +(defun circle-circle-xz-intersect ((arg0 sphere) (arg1 sphere) (arg2 vector) (arg3 vector)) + "This function is unused and really complicated, so not implementing it for now." + (local-vars (v0-0 uint) (f3-1 float) (f4-5 float) (f5-5 float) (f5-15 float) (f6-0 float) (f8-1 float)) + (let ((f3-0 (-> arg0 x)) + (f4-0 (-> arg0 z)) + (f5-0 (-> arg0 r)) + (f1-0 (-> arg1 x)) + (f0-0 (-> arg1 z)) + (f2-0 (-> arg1 r)) + (v1-0 0.5) + ) + (.mula.s f5-0 f5-0) + (.madda.s f1-0 f1-0) + (.madda.s f0-0 f0-0) + (.msuba.s f2-0 f2-0) + (.msuba.s f3-0 f3-0) + (.msub.s f6-0 f4-0 f4-0) + (let* ((f7-0 v1-0) + (f1-1 (- f1-0 f3-0)) + (f2-1 (- f0-0 f4-0)) + (f0-1 (* f6-0 f7-0)) + (a0-1 f1-1) + (f6-1 (fabs f1-1)) + (v1-1 f2-1) + (f8-0 (fabs f2-1)) + ) + (nop!) + (let ((f7-1 (* f1-1 f1-1))) + (nop!) + (let ((f6-2 (- f6-1 f8-0))) + (b! (nonzero? a0-1) cfg-2 :delay (set! f8-1 (*.s f2-1 f2-1))) + (b! (zero? v1-1) cfg-14 :delay (nop!)) + (label cfg-2) + (let ((v1-2 f6-2)) + (nop!) + (b! (< (the-as int v1-2) 0) cfg-7 :delay (nop!)) + ) + ) + (let* ((f7-2 1.0) + (f6-3 (+ f7-2 f7-2)) + (f1-2 (/ f7-2 f1-1)) + (f12-0 (* f6-3 f0-1)) + (f10-0 (* f0-1 f2-1)) + (f11-0 (* f3-0 f2-1)) + (f9-0 (* f0-1 f0-1)) + (f12-1 (* f12-0 f3-0)) + ) + (.mula.s f3-0 f3-0) + (.madda.s f4-0 f4-0) + (.msub.s f3-1 f5-0 f5-0) + (let* ((f5-1 (* f12-1 f1-2)) + (f12-2 (* f1-2 f1-2)) + (f11-1 (* f11-0 f1-2)) + (f10-1 (* f10-0 f12-2)) + (f8-2 (* f8-1 f12-2)) + (f9-1 (* f9-0 f12-2)) + (f5-2 (- f3-1 f5-1)) + (f10-2 (- f11-1 f10-1)) + (f3-2 (+ f8-2 f7-2)) + (f4-1 (- f10-2 f4-0)) + (f5-3 (+ f9-1 f5-2)) + (f4-2 (* f4-1 f6-3)) + ) + (let ((f5-4 (* f3-2 f5-3)) + (f6-4 (+ f6-3 f6-3)) + ) + (.mula.s f4-2 f4-2) + (.msub.s f5-5 f6-4 f5-4) + ) + (let ((v1-4 f5-5) + (f5-6 (sqrtf f5-5)) + ) + (b! (< (the-as int v1-4) 0) cfg-11 :delay (nop!)) + (b! (zero? v1-4) cfg-6 :delay (nop!)) + (let* ((f7-3 0.5) + (f6-5 0.0) + (f7-4 (/ f7-3 f3-2)) + (f3-3 (+ f5-6 f4-2)) + (f4-3 (- f5-6 f4-2)) + (f5-7 (- f6-5 f3-3)) + (f3-4 (* f4-3 f7-4)) + (f4-4 (* f5-7 f7-4)) + ) + (let* ((f5-8 (* f3-4 f2-1)) + (f2-2 (* f4-4 f2-1)) + (f5-9 (- f0-1 f5-8)) + (f0-2 (- f0-1 f2-2)) + (f2-3 (* f1-2 f5-9)) + (f0-3 (* f1-2 f0-2)) + ) + (set! (-> arg2 x) f2-3) + (set! (-> arg2 z) f3-4) + (set! (-> arg3 x) f0-3) + ) + (b! #t cfg-13 :delay (set! (-> arg3 z) f4-4)) + ) + ) + (label cfg-6) + (let ((f3-6 (/ f4-2 (* -2.0 f3-2)))) + (let ((f0-5 (* (- f0-1 (* f3-6 f2-1)) f1-2))) + (set! (-> arg2 x) f0-5) + (set! (-> arg2 z) f3-6) + (set! (-> arg3 x) f0-5) + ) + (b! #t cfg-12 :delay (set! (-> arg3 z) f3-6)) + ) + ) + ) + (label cfg-7) + (let* ((f8-3 1.0) + (f6-6 (+ f8-3 f8-3)) + (f2-5 (/ f8-3 f2-1)) + (f12-3 (* f6-6 f0-1)) + (f10-3 (* f0-1 f1-1)) + (f11-2 (* f4-0 f1-1)) + (f9-2 (* f0-1 f0-1)) + (f12-4 (* f12-3 f4-0)) + ) + (.mula.s f4-0 f4-0) + (.madda.s f3-0 f3-0) + (.msub.s f4-5 f5-0 f5-0) + (let* ((f5-11 (* f12-4 f2-5)) + (f12-5 (* f2-5 f2-5)) + (f11-3 (* f11-2 f2-5)) + (f10-4 (* f10-3 f12-5)) + (f7-5 (* f7-1 f12-5)) + (f9-3 (* f9-2 f12-5)) + (f5-12 (- f4-5 f5-11)) + (f10-5 (- f11-3 f10-4)) + (f4-6 (+ f7-5 f8-3)) + (f3-7 (- f10-5 f3-0)) + (f5-13 (+ f9-3 f5-12)) + (f3-8 (* f3-7 f6-6)) + ) + (let ((f5-14 (* f4-6 f5-13)) + (f6-7 (+ f6-6 f6-6)) + ) + (.mula.s f3-8 f3-8) + (.msub.s f5-15 f6-7 f5-14) + ) + (let ((v1-8 f5-15) + (f5-16 (sqrtf f5-15)) + ) + (b! (< (the-as int v1-8) 0) cfg-11 :delay (nop!)) + (b! (zero? v1-8) cfg-10 :delay (nop!)) + (let* ((f7-6 0.5) + (f6-8 0.0) + (f4-7 (/ f7-6 f4-6)) + (f7-7 (+ f5-16 f3-8)) + (f3-9 (- f5-16 f3-8)) + (f5-17 (- f6-8 f7-7)) + (f3-10 (* f3-9 f4-7)) + (f4-8 (* f5-17 f4-7)) + (f5-18 (* f3-10 f1-1)) + (f1-3 (* f4-8 f1-1)) + (f5-19 (- f0-1 f5-18)) + (f0-6 (- f0-1 f1-3)) + (f1-4 (* f2-5 f5-19)) + (f0-7 (* f2-5 f0-6)) + ) + (set! (-> arg2 x) f3-10) + (set! (-> arg2 z) f1-4) + (set! (-> arg3 x) f4-8) + (b! #t cfg-13 :delay (set! (-> arg3 z) f0-7)) + ) + ) + (label cfg-10) + (let* ((f3-11 (/ f3-8 (* -2.0 f4-6))) + (f0-9 (* (- f0-1 (* f3-11 f1-1)) f2-5)) + ) + (set! (-> arg2 x) f3-11) + (set! (-> arg2 z) f0-9) + (set! (-> arg3 x) f3-11) + (b! #t cfg-12 :delay (set! (-> arg3 z) f0-9)) + ) + ) + ) + ) + ) + ) + (label cfg-11) + (b! #t cfg-15 :delay (set! v0-0 (the-as uint 0))) + (label cfg-12) + (b! #t cfg-15 :delay (set! v0-0 (the-as uint 1))) + (label cfg-13) + (b! #t cfg-15 :delay (set! v0-0 (the-as uint 2))) + (label cfg-14) + (b! #t cfg-15 :delay (set! v0-0 (the-as uint -1))) + (label cfg-15) + (the-as int v0-0) + ) + +;; definition for function circle-test +;; INFO: Used lq/sq +;; WARN: Return type mismatch object vs none. +(defun circle-test () + "Test the circle-circle-xz-intersect function." + (let ((s4-0 (new 'stack 'sphere)) + (a1-2 (new 'stack 'sphere)) + (s5-0 (new-stack-vector0)) + (gp-0 (new-stack-vector0)) + ) + (let ((v1-3 s4-0)) + (set! (-> v1-3 x) 0.0) + (set! (-> v1-3 y) 0.0) + (set! (-> v1-3 z) 0.0) + (set! (-> v1-3 r) 1.0) + ) + (let ((v1-4 a1-2)) + (set! (-> v1-4 x) 100.0) + (set! (-> v1-4 y) 0.0) + (set! (-> v1-4 z) 0.0) + (set! (-> v1-4 r) 10000.0) + ) + (let ((a2-1 (circle-circle-xz-intersect s4-0 a1-2 s5-0 gp-0))) + (format #t "res = ~d~%" a2-1) + ) + (format #t "(~f, ~f)~%" (-> s5-0 x) (-> s5-0 z)) + (format #t "(~f, ~f)~%" (-> gp-0 x) (-> gp-0 z)) + ) + (none) + ) + +;; definition for function vector-circle-tangent-new +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun vector-circle-tangent-new ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Unused." + (rlet ((Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (let ((a1-2 (new 'stack 'sphere))) + (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) + (set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0)) + (let ((v1-3 #x3f000000)) + (.lvf vf3 (&-> arg1 quad)) + (.mov vf2 v1-3) + ) + (.lvf vf4 (&-> arg0 quad)) + (.add.vf vf1 vf3 vf4) + (.sub.vf vf5 vf4 vf3) + (.mul.x.vf vf1 vf1 vf2) + (.mul.x.vf vf5 vf5 vf2) + (.mul.vf vf5 vf5 vf5 :mask #b101) + (.add.z.vf vf5 vf5 vf5 :mask #b1) + (.sqrt.vf Q vf5 :ftf #b0) + (.wait.vf) + (.mul.vf vf1 vf0 Q :mask #b1000) + (.nop.vf) + (.nop.vf) + (.svf (&-> a1-2 quad) vf1) + (circle-circle-xz-intersect (the-as sphere arg1) a1-2 arg2 arg3) + ) + 0 + (none) + ) + ) + +;; definition for function vector-circle-tangent +;; WARN: Return type mismatch int vs none. +(defun vector-circle-tangent ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "Also unused." + (let* ((s3-1 (vector-! (new 'stack-no-clear 'vector) arg1 arg0)) + (f0-0 (vector-xz-length s3-1)) + (f28-0 (acos (/ (-> arg1 w) f0-0))) + ) + (cond + ((>= 546.13336 f28-0) + (set! (-> arg2 x) (- (-> arg0 x) (-> s3-1 z))) + (set! (-> arg2 y) 0.0) + (set! (-> arg2 z) (+ (-> arg0 z) (-> s3-1 x))) + (set! (-> arg3 x) (+ (-> arg0 x) (-> s3-1 z))) + (set! (-> arg3 y) 0.0) + (set! (-> arg3 z) (- (-> arg0 z) (-> s3-1 x))) + ) + (else + (let ((f0-15 (atan (-> s3-1 z) (-> s3-1 x))) + (f30-0 (- (-> arg1 w))) + (s3-2 (new 'stack-no-clear 'vector)) + ) + (let ((s2-1 (new 'stack-no-clear 'vector))) + (let ((a2-1 (new 'stack-no-clear 'vector))) + (set! (-> a2-1 x) (- f0-15 f28-0)) + (set! (-> a2-1 y) (+ f0-15 f28-0)) + (vector-sincos! s3-2 s2-1 a2-1) + ) + (set! (-> arg2 x) (+ (-> arg1 x) (* f30-0 (-> s2-1 x)))) + (set! (-> arg2 z) (+ (-> arg1 z) (* f30-0 (-> s3-2 x)))) + (set! (-> arg3 x) (+ (-> arg1 x) (* f30-0 (-> s2-1 y)))) + ) + (set! (-> arg3 z) (+ (-> arg1 z) (* f30-0 (-> s3-2 y)))) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for function find-knot-span +(defun find-knot-span ((arg0 int) (arg1 int) (arg2 float) (arg3 (inline-array vector))) + "Binary serach over knots to find which contains the value float in (arg0 arg1). Unused." + (local-vars (v0-0 int)) + (b! (= arg2 (-> (&-> arg3 0 data (+ arg0 1)) 0)) cfg-11 :delay (set! v0-0 arg0)) + (let ((v1-3 (the int arg2))) + (let* ((a2-1 (+ v1-3 3)) + (t0-1 (&-> arg3 0 data a2-1)) + (f1-2 (-> t0-1 0)) + (f2-0 (-> t0-1 1)) + ) + (b! (> f1-2 arg2) cfg-4) + (b! (>= arg2 f2-0) cfg-4 :delay (set! v0-0 a2-1)) + ) + (b! #t cfg-11 :delay (nop!)) + (label cfg-4) + (let ((a1-1 arg1) + (a0-1 (+ arg0 1)) + ) + (label cfg-5) + (let ((a2-3 (/ (+ a1-1 a0-1) 2))) + (let ((t0-3 (&-> arg3 0 data a2-3))) + (b! (>= arg2 (-> t0-3 0)) cfg-7) + (b! #t cfg-5 :delay (set! a0-1 a2-3)) + (label cfg-7) + (b! (< arg2 (-> t0-3 1)) cfg-9) + ) + (b! #t cfg-5 :delay (set! a1-1 a2-3)) + (label cfg-9) + (set! v0-0 a2-3) + ) + ) + (b! (= v0-0 v1-3) cfg-11 :delay (nop!)) + ) + (nop!) + (nop!) + (label cfg-11) + v0-0 + ) + +;; definition for function calculate-basis-functions-vector! +;; ERROR: failed type prop at 8: Could not figure out load: (set! f0 (l.f v1)) +;; WARN: Return type mismatch none vs vector. +;; ERROR: Unsupported inline assembly instruction kind - [sll v1, a1, 2] +;; ERROR: Unsupported inline assembly instruction kind - [addu v1, a3, v1] +(defun calculate-basis-functions-vector! ((a0-0 vector) (a1-0 int) (a2-0 float) (a3-0 (pointer float))) + "Calculate polynomial basis for a given control point." + (local-vars + (v0-0 none) + (v1-0 int) + (v1-1 int) + (a1-1 int) + (f0-0 int) + (f0-1 int) + (f0-2 none) + (f0-3 none) + (f0-4 none) + (f1-0 int) + (f1-1 none) + (f1-2 none) + (f2-0 none) + (f2-1 none) + (f2-2 none) + (f2-3 none) + (f2-4 none) + (f2-5 none) + (f3-0 float) + (f3-1 none) + (f3-2 none) + (f4-0 none) + (f4-1 none) + (f5-0 int) + (f5-1 none) + (f5-2 none) + (f5-3 none) + (f5-4 none) + (f6-0 none) + (f6-1 none) + (f6-2 none) + (f6-3 none) + (f7-0 none) + (f7-1 none) + (f7-2 none) + (f7-3 none) + (f7-4 none) + (f7-5 none) + (f7-6 none) + (f8-0 none) + (f8-1 none) + (f8-2 none) + (f8-3 none) + (f9-0 none) + (f9-1 none) + (f9-2 none) + (f9-3 none) + (f10-0 none) + (f10-1 none) + (f10-2 none) + (f10-3 none) + (f11-0 none) + (f11-1 none) + (f11-2 none) + ) + (.sll v1-0 a1-0 2) + (set! a1-1 #x3f800000) + (set! f3-0 (gpr->fpr a2-0)) + (.addu v1-1 a3-0 v1-0) + (set! f1-0 (gpr->fpr a1-1)) + (set! f5-0 f1-0) + (set! f0-0 0) + (set! f0-1 0) + (set! f0-2 (the-as none (l.f v1-1))) + (set! f2-0 (the-as none (l.f (+ v1-1 4)))) + (set! f0-3 (the-as none (-.s f3-0 f0-2))) + (set! f4-0 (the-as none (-.s f2-0 f3-0))) + (set! f2-1 (the-as none (+.s f4-0 f0-3))) + (set! f10-0 (the-as none (/.s f1-0 f2-1))) + (set! f2-2 (the-as none (l.f (+ v1-1 -4)))) + (set! f8-0 (the-as none (l.f (+ v1-1 8)))) + (set! f2-3 (the-as none (-.s f3-0 f2-2))) + (set! f9-0 (the-as none (+.s f4-0 f2-3))) + (set! f6-0 (the-as none (l.f (+ v1-1 -8)))) + (set! f7-0 (the-as none (l.f (+ v1-1 12)))) + (set! f9-1 (the-as none (/.s f1-0 f9-0))) + (set! f5-1 (the-as none (*.s f5-0 f10-0))) + (set! f11-0 (the-as none (*.s f4-0 f5-1))) + (set! f10-1 (the-as none (*.s f0-3 f5-1))) + (set! f5-2 (the-as none (-.s f8-0 f3-0))) + (set! f8-1 (the-as none (*.s f11-0 f9-1))) + (set! f9-2 (the-as none (+.s f5-2 f0-3))) + (set! f11-1 (the-as none (/.s f1-0 f9-2))) + (set! f9-3 (the-as none (*.s f4-0 f8-1))) + (set! f8-2 (the-as none (*.s f2-3 f8-1))) + (set! f11-2 (the-as none (*.s f10-1 f11-1))) + (set! f10-2 (the-as none (*.s f5-2 f11-2))) + (set! f10-3 (the-as none (+.s f10-2 f8-2))) + (set! f8-3 (the-as none (*.s f0-3 f11-2))) + (set! f6-1 (the-as none (-.s f3-0 f6-0))) + (set! f3-1 (the-as none (-.s f7-0 f3-0))) + (set! f7-1 (the-as none (+.s f4-0 f6-1))) + (set! f7-2 (the-as none (/.s f1-0 f7-1))) + (set! f7-3 (the-as none (*.s f9-3 f7-2))) + (set! f4-1 (the-as none (*.s f4-0 f7-3))) + (set! f6-2 (the-as none (*.s f6-1 f7-3))) + (set! f7-4 (the-as none (+.s f5-2 f2-3))) + (set! f7-5 (the-as none (/.s f1-0 f7-4))) + (set! f7-6 (the-as none (*.s f10-3 f7-5))) + (set! f5-3 (the-as none (*.s f5-2 f7-6))) + (set! f5-4 (the-as none (+.s f5-3 f6-2))) + (set! f2-4 (the-as none (*.s f2-3 f7-6))) + (set! f6-3 (the-as none (+.s f3-1 f0-3))) + (set! f1-1 (the-as none (/.s f1-0 f6-3))) + (set! f1-2 (the-as none (*.s f8-3 f1-1))) + (set! f3-2 (the-as none (*.s f3-1 f1-2))) + (set! f2-5 (the-as none (+.s f3-2 f2-4))) + (set! f0-4 (the-as none (*.s f0-3 f1-2))) + (set! (-> a0-0 x) (the-as float f4-1)) + (set! (-> a0-0 y) (the-as float f5-4)) + (set! (-> a0-0 z) (the-as float f2-5)) + (set! (-> a0-0 w) (the-as float f0-4)) + (set! v0-0 (the-as none a0-0)) + (ret-value v0-0) + ) + +;; definition for function curve-evaluate! +;; ERROR: failed type prop at 62: add failed: int (inline-array vector) + +;; WARN: Return type mismatch none vs vector. +;; ERROR: Failed to guess label use for L149 in curve-evaluate!:2 +;; ERROR: Unsupported inline assembly instruction kind - [addiu v1, s3, -3] +;; ERROR: Unsupported inline assembly instruction kind - [sll v1, v1, 4] +(defun curve-evaluate! ((a0-0 vector) (a1-0 float) (a2-0 (inline-array vector)) (a3-0 int) (t0-0 (pointer float)) (t1-0 int)) + "Evaluate a curve. + arg0 is the output + arg1 is the input. + arg2 is control vertices. + arg3 is the number of control vertices. + arg4 is the knot points. + arg5 is the number of knots." + (local-vars + (v0-0 vector) + (v0-1 none) + (v1-0 int) + (v1-1 int) + (v1-2 int) + (v1-3 (pointer float)) + (v1-4 float) + (v1-5 (pointer float)) + (v1-7 int) + (v1-8 int) + (v1-9 none) + (v1-10 none) + (a0-1 int) + (a0-2 int) + (a0-3 (pointer float)) + (a0-4 int) + (a0-5 none) + (a1-1 int) + (a1-2 int) + (a1-3 int) + (a2-1 float) + (a3-1 int) + (a3-2 int) + (a3-3 (pointer float)) + (t1-1 int) + (t1-2 int) + (t1-3 int) + (t2-0 int) + (t2-1 (pointer float)) + (t2-2 int) + (t2-3 (pointer float)) + (s3-0 int) + (s4-0 none) + (t9-0 (function vector int float (pointer float) vector)) + (f0-0 float) + (f0-1 float) + (f0-2 float) + (f0-3 float) + (f1-0 float) + (f1-1 float) + (f1-2 float) + (f1-3 int) + (f1-4 float) + (f1-5 float) + (f1-6 float) + (f2-0 float) + (f2-1 float) + (f2-2 float) + (f2-3 float) + ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cond + ((begin + (set! s4-0 (the-as none L149)) + (set! v1-0 0) + (set! f0-0 (-> t0-0 0)) + (set! v1-1 (+ t1-0 -1)) + (set! v1-2 (sll v1-1 2)) + (set! v1-3 (+ t0-0 v1-2)) + (set! f1-0 (dynamic-array-field-access v1-3 PLACEHOLDER)) + (set! f2-0 (gpr->fpr a1-0)) + (set! f2-1 (*.s f2-0 f1-0)) + (set! v1-4 (fpr->gpr f2-1)) + (set! f2-2 (gpr->fpr v1-4)) + (set! f1-1 (min.s f2-2 f1-0)) + (set! f0-1 (max.s f1-1 f0-0)) + (set! a2-1 (fpr->gpr f0-1)) + (set! a1-1 (+ t1-0 -5)) + (set! a3-1 3) + (set! f0-2 (gpr->fpr a2-1)) + (set! v1-5 t0-0) + (set! f0-3 f0-2) + (set! a0-1 (+ a1-1 1)) + (set! a0-2 (sll a0-1 2)) + (set! a0-3 (+ v1-5 a0-2)) + (set! f1-2 (dynamic-array-field-access a0-3 PLACEHOLDER)) + (b! (=.s f0-3 f1-2) L41 (set! s3-0 a1-1)) + (set! f1-3 (f2i f0-3)) + (set! a0-4 (fpr->gpr f1-3)) + (set! t1-1 (+ a0-4 3)) + (set! t2-0 (sll t1-1 2)) + (set! t2-1 (+ t2-0 v1-5)) + (set! f1-4 (dynamic-array-field-access t2-1 PLACEHOLDER)) + (set! f2-3 (-> t2-1 1)) + (<=.s f1-4 f0-3) + ) + (b! (>=.s f0-3 f2-3) L37 (set! s3-0 t1-1)) + ) + (else + (label cfg-4) + (set! a3-2 a3-1) + (set! a1-2 (+ a1-1 1)) + (label cfg-5) + (set! t1-2 (+ a3-2 a1-2)) + (set! t1-3 (sra t1-2 1)) + (set! t2-2 (sll t1-3 2)) + (set! t2-3 (+ v1-5 t2-2)) + (set! f1-5 (dynamic-array-field-access t2-3 PLACEHOLDER)) + (b! (>=.s f0-3 f1-5) L39 (nop!)) + ((b! #t L38 (set! a1-2 t1-3)) (set! a1-2 t1-3)) + (label cfg-7) + (set! f1-6 (-> t2-3 1)) + (b! (<.s f0-3 f1-6) L40 (nop!)) + ((b! #t L38 (set! a3-2 t1-3)) (set! a3-2 t1-3)) + (label cfg-9) + (set! s3-0 t1-3) + ((b! (= s3-0 a0-4) L41 (nop!)) (nop!)) + (nop!) + (nop!) + ) + ) + (label cfg-11) + (set! v1-6 s3-0) + (set! t9-0 calculate-basis-functions-vector!) + (set! a0-5 (the-as none s4-0)) + (set! a1-3 s3-0) + (set! a3-3 t0-0) + (call! a0-5 a1-3 a2-1 a3-3) + (.addiu v1-7 s3-0 -3) + (.lvf vf6 s4-0) + (.sll v1-8 v1-7 4) + (.add.x.vf vf1 vf0 vf0 :mask #b1000) + (set! v1-9 (the-as none (+ v1-8 a2-0))) + (nop!) + (nop!) + (.lvf vf2 v1-9) + (nop!) + (.lvf vf3 (+ v1-9 16)) + (nop!) + (.lvf vf4 (+ v1-9 32)) + (nop!) + (.lvf vf5 (+ v1-9 48)) + (.mul.x.vf acc vf2 vf6) + (nop!) + (.add.mul.y.vf acc vf3 vf6 acc :mask #b111) + (nop!) + (.add.mul.z.vf acc vf4 vf6 acc :mask #b111) + (nop!) + (.add.mul.w.vf vf1 vf5 vf6 acc :mask #b111) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (nop!) + (.svf (&-> a0-0 quad) vf1) + (.mov v1-10 vf1) + (set! v0-1 (the-as none a0-0)) + (ret-value v0-1) + ) + ) + +;; definition for function curve-get-pos! +(defun curve-get-pos! ((arg0 vector) (arg1 float) (arg2 curve)) + "Get the position on the curve at the given input." + (curve-evaluate! arg0 arg1 (-> arg2 cverts) (-> arg2 num-cverts) (-> arg2 knots) (-> arg2 num-knots)) + ) + +;; definition for function curve-length +;; INFO: Used lq/sq +(defun curve-length ((arg0 curve)) + "Compute the approximate curve length as the sum of distances between knots." + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s3-0 (* 3 (-> arg0 num-cverts))) + (f30-0 0.0) + ) + (when (nonzero? s3-0) + (curve-evaluate! + s4-0 + (-> arg0 knots 0) + (-> arg0 cverts) + (-> arg0 num-cverts) + (-> arg0 knots) + (-> arg0 num-knots) + ) + (dotimes (s2-0 s3-0) + (set! (-> s5-0 quad) (-> s4-0 quad)) + (curve-evaluate! + s4-0 + (/ (the float (+ s2-0 1)) (the float s3-0)) + (-> arg0 cverts) + (-> arg0 num-cverts) + (-> arg0 knots) + (-> arg0 num-knots) + ) + (+! f30-0 (vector-vector-distance s5-0 s4-0)) + ) + ) + f30-0 + ) + ) + +;; definition for function curve-copy! +(defun curve-copy! ((arg0 curve) (arg1 curve)) + "Shallow copy a curve." + (set! (-> arg0 cverts) (-> arg1 cverts)) + (set! (-> arg0 num-cverts) (-> arg1 num-cverts)) + (set! (-> arg0 knots) (-> arg1 knots)) + (set! (-> arg0 num-knots) (-> arg1 num-knots)) + (set! (-> arg0 length) (-> arg1 length)) + arg0 + ) + +;; definition for function curve-closest-point +;; WARN: Stack slot offset 48 signed mismatch +;; WARN: Stack slot offset 48 signed mismatch +;; WARN: Stack slot offset 48 signed mismatch +;; WARN: Stack slot offset 48 signed mismatch +;; WARN: Stack slot offset 48 signed mismatch +;; WARN: Stack slot offset 48 signed mismatch +;; WARN: Stack slot offset 48 signed mismatch +;; WARN: Stack slot offset 48 signed mismatch +(defun curve-closest-point ((arg0 curve) (arg1 vector) (arg2 float) (arg3 float) (arg4 int) (arg5 float)) + "Get the input value for the point on the curve. Approximate! And is O(n_knots)." + (local-vars (sv-48 float)) + (set! sv-48 arg3) + (let ((s3-0 arg4) + (gp-0 arg5) + (f30-0 (curve-length arg0)) + (s2-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + ) + 0.0 + 0.0 + 0.0 + 0.0 + (let ((f28-0 0.5)) + 0.0 + (if (< 0.0 sv-48) + (set! f28-0 (/ sv-48 f30-0)) + ) + (let* ((s0-1 (- arg2 (/ gp-0 f30-0))) + (f26-0 (- s0-1 f28-0)) + (f24-0 (+ s0-1 f28-0)) + ) + (curve-get-pos! s2-0 f26-0 arg0) + (curve-get-pos! s1-0 f24-0 arg0) + (let ((f22-0 (vector-vector-distance-squared s2-0 arg1)) + (f20-0 (vector-vector-distance-squared s1-0 arg1)) + ) + (while (> s3-0 0) + (+! s3-0 -1) + (set! f28-0 (* 0.5 f28-0)) + (let ((v1-6 (cond + ((< f22-0 f20-0) + (curve-get-pos! s1-0 s0-1 arg0) + (set! f20-0 (vector-vector-distance-squared s1-0 arg1)) + (set! f24-0 s0-1) + (- s0-1 f28-0) + ) + (else + (curve-get-pos! s2-0 s0-1 arg0) + (set! f22-0 (vector-vector-distance-squared s2-0 arg1)) + (set! f26-0 s0-1) + (+ s0-1 f28-0) + ) + ) + ) + ) + (set! s0-1 (fmin 1.0 (fmax 0.0 v1-6))) + ) + ) + (+ (if (< f22-0 f20-0) + f26-0 + f24-0 + ) + (/ gp-0 f30-0) + ) + ) + ) + ) + ) + ) + +;; definition for function vector-plane-distance +(defun vector-plane-distance ((arg0 vector) (arg1 plane) (arg2 vector)) + "Unused." + (vector-dot (vector-! (new 'stack-no-clear 'vector) arg0 (the-as vector (&-> arg1 x))) arg2) + ) + +;; definition for function intersect-ray-plane +(defun intersect-ray-plane ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + "arg1 is ray direction, arg3 is plane normal, others don't really make sense to me." + (let ((f0-1 (vector-dot arg3 arg1))) + (if (= f0-1 0.0) + -1.0 + (/ (- (vector-dot arg3 arg0) (vector-dot arg3 arg2)) (- f0-1)) + ) + ) + ) + +;; definition for function line-line-find-intersection-xz +(defun line-line-find-intersection-xz ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 vector)) + (let* ((f0-0 (-> arg1 x)) + (f3-0 (-> arg1 z)) + (f4-0 (-> arg3 x)) + (f5-0 (-> arg3 z)) + (f1-3 (+ (* -1.0 f5-0 f0-0) (* f3-0 f4-0))) + ) + (cond + ((< 0.0001 (fabs f1-3)) + (let* ((f2-3 (* -1.0 f1-3)) + (f5-2 (* -1.0 f5-0 (- (-> arg2 x) (-> arg0 x)))) + (f4-1 (* (- (-> arg2 z) (-> arg0 z)) f4-0)) + (f3-2 (* -1.0 f3-0 (- (-> arg0 x) (-> arg2 x)))) + (f0-1 (* (- (-> arg0 z) (-> arg2 z)) f0-0)) + (f1-4 (/ (+ f5-2 f4-1) f1-3)) + ) + (let ((f0-3 (/ (+ f3-2 f0-1) f2-3))) + (when arg4 + (set! (-> arg4 y) f0-3) + (set! (-> arg4 x) f1-4) + ) + ) + (return f1-4) + ) + ) + (else + (when arg4 + (set! (-> arg4 y) -100000000.0) + (set! (-> arg4 x) -100000000.0) + ) + (return -100000000.0) + ) + ) + ) + 0.0 + ) + +;; definition for function segment-segment-find-intersection-xz +(defun segment-segment-find-intersection-xz ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (line-line-find-intersection-xz arg0 arg1 arg2 arg3 gp-0) + (if (and (>= (-> gp-0 x) 0.0) (>= (-> gp-0 y) 0.0) (>= 1.0 (-> gp-0 x)) (>= 1.0 (-> gp-0 y))) + (-> gp-0 x) + -100000000.0 + ) + ) + ) + +;; definition for function generate-rand-vector-on-sphere +(defun generate-rand-vector-on-sphere ((arg0 vector)) + (let* ((f30-0 65536.0) + (v1-2 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-3 (the-as number (logior #x3f800000 v1-2))) + (f30-1 (* f30-0 (+ -1.0 (the-as float v1-3)))) + (f28-0 65536.0) + (v1-7 (/ (the-as int (rand-uint31-gen *random-generator*)) 256)) + (v1-8 (the-as number (logior #x3f800000 v1-7))) + (f28-1 (* f28-0 (+ -1.0 (the-as float v1-8)))) + ) + 0.0 + (let ((f26-0 (cos f30-1))) + (set-vector! arg0 (* f26-0 (cos f28-1)) (* f26-0 (sin f28-1)) (sin f30-1) 1.0) + ) + ) + (vector-normalize! arg0 1.0) + ) + +;; definition for method 9 of type lissajous-interp +(defmethod lissajous-interp-method-9 ((this lissajous-interp) (arg0 vector)) + (lissajous-method-9 (-> this current) arg0) + ) + +;; definition for method 10 of type lissajous-interp +(defmethod lissajous-interp-method-10 ((this lissajous-interp)) + (seek! (-> this current x-mag) (-> this dest x-mag) (-> this rate x-mag)) + (seek! (-> this current y-mag) (-> this dest y-mag) (-> this rate y-mag)) + (seek! (-> this current theta-rate) (-> this dest theta-rate) (-> this rate theta-rate)) + (seek! (-> this current theta) (-> this dest theta) (* (-> this current theta-rate) (-> this rate theta))) + (seek! (-> this current wx) (-> this dest wx) (-> this rate wx)) + (seek! (-> this current wy) (-> this dest wy) (-> this rate wy)) + (set! (-> this current period-shift) + (seek (-> this current period-shift) (-> this dest period-shift) (-> this rate period-shift)) + ) + ) + +;; definition for method 9 of type lissajous +(defmethod lissajous-method-9 ((this lissajous) (arg0 vector)) + 0.0 + 0.0 + (let ((f30-0 (* (cos (* (-> this theta) (-> this wx))) (-> this x-mag))) + (f0-8 (* (cos (+ (-> this period-shift) (* (-> this theta) (-> this wy)))) (-> this y-mag))) + ) + (set-vector! arg0 f30-0 f0-8 0.0 1.0) + ) + arg0 + ) + + + + diff --git a/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-frames_REF.gc b/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-frames_REF.gc new file mode 100644 index 0000000000..ca58236707 --- /dev/null +++ b/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-frames_REF.gc @@ -0,0 +1,16395 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *ocean-wave-frames*, type (pointer uint32) +(define *ocean-wave-frames* (new 'static 'array uint32 16384 + #x5c1febd8 + #x1cfe1450 + #xb6b8e71f + #x32563ef2 + #x9f2e6fe + #x2e1b090d + #x9001024 + #xe4e70d1f + #x5410dfd1 + #x4ef1756 + #xb5d1041c + #x365128da + #xdede305 + #x21100c17 + #x80d232c + #xe2f5191d + #x3dfad5d4 + #xe2e31d54 + #xc5f91906 + #x373f09c7 + #x10eae70d + #x12091524 + #xa20342b + #xeb08241b + #x1ceddae4 + #xc9e41f3d + #xee1b11df + #x2a1cedcd + #x12eef214 + #xc11242e + #x112b3420 + #xfe1d2814 + #xcefeafa + #xbedf0d21 + #x1724f5c1 + #x10f9e4ee + #x18f6fa0e + #x12203236 + #xe272b18 + #x14302a0e + #xdf5f70d + #xadc8f718 + #x301cdbad + #xf2e2ef14 + #x1dfefb00 + #x21323f3b + #x1c251b + #x2f4124fe + #x11f50928 + #x8eaff925 + #x3b14c997 + #xdcde022c + #x2002f6ee + #x30475041 + #xf21b2823 + #x4a410de7 + #x9f62345 + #x80b41433 + #x4210ba80 + #xd5e30e37 + #x1c00f1e3 + #x43606342 + #xf31c2428 + #x4d24edd7 + #xfe053847 + #x84d52a2b + #x4708ab80 + #xd8ea1541 + #x10f9f2e6 + #x59776838 + #x1151b30 + #x27f7d7df + #x21c361f + #xaaf92818 + #x3ff19480 + #xdaeb1f4b + #x2f6faee + #x707f6128 + #xc09143e + #xeddae2f7 + #x122010e4 + #xcd091912 + #x20c8808c + #xdaee2b4d + #xfafd08f5 + #x7f7f5118 + #xd02184d + #xcce0fe0e + #x1504e2c2 + #xe306141b + #xf2a280a7 + #xdcf73237 + #xfd0d15f9 + #x7f7c3f0a + #xc041f58 + #xd5fd1919 + #xf9d5c8c9 + #xed061c1b + #xc99794c0 + #xe604270e + #x81d1bfa + #x7f712f02 + #x10061d58 + #xf5172a24 + #xcdbacfe3 + #xf91019fd + #xbcabb2d5 + #xf10208e3 + #x17281c01 + #x7f652806 + #x18011552 + #x8243b36 + #xaebde0f1 + #xd17fecd + #xc4c5cdeb + #xf6f1e3cb + #x232b200a + #x765d2711 + #x19f50a4b + #x82e544a + #xb1d1e7e8 + #x2005ccaa + #xcdd4e40a + #xeedacdc8 + #x282c2811 + #x6f582a1c + #xde6044a + #x63f684e + #xc5dbdfe0 + #x19d7a2a7 + #xc9df052a + #xe3d0cdc9 + #x2b302c0c + #x6f562b20 + #xfadc084d + #x12527041 + #xd5d4d7e6 + #xf6a597be + #xc4f52b34 + #xe4d8d0be + #x2b322404 + #x7052271f + #xebde1152 + #x27646b2f + #xd5c8dbf5 + #xc78ca9d5 + #xc917421f + #xfaeac7aa + #x2b281505 + #x6c4a231f + #xe3e7205a + #x38696423 + #xcdc1e3fe + #xa792c0df + #xe0343af6 + #x18efaf9a + #x21170e1b + #x603d2420 + #xe3f93360 + #x496c5d18 + #xc9c1ed05 + #xa2a6cfdf + #xfd3d1fd3 + #x2ce0979e + #xe051f3f + #x4b33251d + #xee11455c + #x5e6c520d + #xc7c5f519 + #xadb8d4dc + #xd3202c4 + #x27c58eb1 + #xf705425d + #x382f2710 + #x62e4a4b + #x76673d06 + #xc2cc093d + #xb5c0d7da + #xa1df1c2 + #x10b294c4 + #xee1b6467 + #x32331ffb + #x27414134 + #x7855240d + #xc1e22455 + #xb9c5dad3 + #x210eac4 + #xfbada3cd + #xf73a745a + #x34320deb + #x41432f25 + #x5836141f + #xd1023449 + #xc0cbd7cf + #x10ce7c4 + #xf5b8b4d3 + #xe4e6f49 + #x3427fdea + #x463a2121 + #x2012112f + #xf3213221 + #xc8cfd4da + #x80ae3c9 + #xf5c5c1dc + #x214d5a38 + #x2b17f9f9 + #x41301f20 + #xf1f91436 + #x1b301df9 + #xccccd7f6 + #xd05dfcd + #xf7d1d1ed + #x243a452f + #x1910020a + #x3a2e1d19 + #xd1ea1436 + #x363008de + #xc8cdea19 + #xdfad8c9 + #xf7e0e800 + #x19253625 + #x11181412 + #x362a180c + #xbce21433 + #x3f2af6cc + #xc9db0534 + #x8edcfc2 + #xfaf50510 + #xc172a1c + #x15251d10 + #x2f230e04 + #xafe0142f + #x4123edc1 + #xdcf51c3e + #xfbdac1c5 + #x20e2018 + #x20d190e + #x21301c06 + #x24180504 + #xb5e61528 + #x4620edc5 + #xfd0a2341 + #xe8c5bddc + #x122e3617 + #x40405 + #x2c331400 + #x190a010a + #xcce81020 + #x5021f2d0 + #x17152043 + #xd8b4c1f9 + #x20454211 + #x2fbf501 + #x32320efe + #x12010112 + #xe2eb0819 + #x4a02d0c5 + #xf52a61 + #xa9cb0920 + #x3f4f1ac9 + #xf7dfe40c + #x2006080f + #xfb01142a + #xcef91b10 + #x34f0c6c2 + #xe7f2365e + #xbaeb150a + #x4041febc + #xf9dcea15 + #x11051017 + #x1132023 + #xd6061c0a + #x13ddc7cb + #xd0f53c4a + #xdd0f13e7 + #x3a22e0bc + #xf9dff31f + #x80a1e1f + #xa262a18 + #xeb181f06 + #xf9d9d6e1 + #xc9f72b26 + #x918f5ca + #x22fed4d9 + #xfbe7fd1c + #xc182720 + #x132a250f + #x8271c05 + #xf5e1eaf9 + #xc3e70f10 + #x230cd5ba + #xe4e002 + #x4f5010a + #x18273125 + #xc231f11 + #x293217fe + #xf9e7fe18 + #xabcd0110 + #x2dfdc2a8 + #xe1e1fa20 + #xcfdfbf2 + #x25363d2b + #xfe1c1e1a + #x4b3506eb + #xf6ee1a3c + #x8ac30d1a + #x31f7b187 + #xd4eb1031 + #xffbf0dd + #x364c4e32 + #xfa1c1f23 + #x5b20e7d9 + #xef01364e + #x80d92014 + #x38f09a80 + #xd0f01c3f + #xcf6ead4 + #x4f645a32 + #x5181c31 + #x40f9cdd9 + #xf31c3a34 + #x99f92505 + #x35df8080 + #xd1f2274e + #x4f3ecd8 + #x6c75572a + #xc0d1a41 + #x2d5caea + #x92a1bf6 + #xbf091500 + #x1fbc8080 + #xd2f63656 + #xfaf7f7e0 + #x7f774718 + #x8041e55 + #xd1d2e3fd + #x1514ebc7 + #xd8040d0a + #xf696809a + #xd5024145 + #xfa0602e3 + #x7f703406 + #x1042964 + #xd0eafe05 + #x4e7cac2 + #xe3001413 + #xca8484b7 + #xdf113c1e + #x51708e4 + #x7f6423fe + #x1082f6a + #xef05100c + #xd8c0c9d9 + #xea091b01 + #xb392a1c9 + #xee171eef + #x142009ea + #x7f571b02 + #x8052a68 + #x9151f1a + #xb3bbd6ea + #xfb1306d5 + #xb8adbbda + #xf605f5d1 + #x20230ff6 + #x744b180f + #xaf91f5f + #xd23382b + #xa9c9e0e5 + #x1008daad + #xc6c3d2f6 + #xf0e7d4c9 + #x25251a01 + #x6c451c1a + #xea175a + #xc385236 + #xbad4dadc + #x11ddada2 + #xcad1f217 + #xe1d0c9ca + #x272d2200 + #x68431e1c + #xeee11759 + #x1b52612e + #xcaced4e0 + #xf0ab9ab3 + #xc7e81827 + #xd8d0cac3 + #x2a321ef5 + #x6a441f1c + #xdddf1c5b + #x38645e1e + #xcbc2d8f3 + #xc28ca5c7 + #xd00c3418 + #xe1dac3b1 + #x2e2f11ef + #x683d1c1e + #xd4e42662 + #x596d550d + #xc0bce406 + #x9d8ebbd1 + #xe82f35ef + #xf9dfaca4 + #x291e09fd + #x5d321c22 + #xd5f03568 + #x71704e02 + #xbbbeee15 + #x93a2cace + #x83f1bc7 + #xace93a9 + #x170c151f + #x4b2a1f22 + #xdf054465 + #x7f6f43f9 + #xb8c3f527 + #x9bb4d1ca + #x1c34fab3 + #x9b388be + #x83540 + #x3d2a2215 + #xf51f4b55 + #x7f682df3 + #xb5c90445 + #xa6bed4c7 + #x1c1ce5b3 + #xf79d90d5 + #xf21e5b4f + #x362d1bfd + #x1434433d + #x7f5514f9 + #xb4da1e5b + #xadc2d5c2 + #x1109dcb7 + #xe197a0e0 + #xf9407147 + #x382d06e7 + #x2f392f2d + #x6839080d + #xbff93252 + #xb3c6d1bb + #x9fed8ba + #xd6a0acdf + #x115b7134 + #x3a23f3e3 + #x3c2f1f29 + #x381c0d27 + #xdf183227 + #xbbc7c9c0 + #x9fbd5be + #xd8afb5e1 + #x2a5f5f25 + #x3110ecf2 + #x35221a2a + #x6081a34 + #x6291efa + #xbfc5c9dc + #xcf7d5c5 + #xdfbcc2eb + #x2f504e1e + #x1e04f306 + #x2d1e1b25 + #xe7fd1c31 + #x232702d9 + #xbcc2da02 + #xaf2d4c6 + #xe4cbd5fa + #x2539401a + #x11060411 + #x2b201715 + #xd2f3182b + #x2e1aebc2 + #xbacbfb23 + #x5e8cec0 + #xe8dcec06 + #x14293511 + #x1315100f + #x2d200d09 + #xc0ec152a + #x2f10dfb3 + #xc7e51834 + #xfbdac2be + #xf0f5050c + #x61e2306 + #x1f221104 + #x2a180105 + #xbceb172a + #x340cd9af + #xe3fe2539 + #xebc6b8cd + #x1141a0a + #x111000 + #x2b2609fa + #x1f0afa0c + #xcaee1725 + #x400cd9b8 + #x1092343 + #xd1b7c5ee + #x183427fd + #xfd01fbfe + #x2e1e02fa + #x11fefb15 + #xd6ef141e + #x4b0fd9c7 + #x13082050 + #xbcb0d90c + #x2a4a2bef + #xfdf3f0fe + #x2b150001 + #x9f7fe1c + #xdaef111c + #x29e5bbb3 + #xe3034f62 + #xb7ee210c + #x4d3bf2b7 + #xe9d9f326 + #x10071008 + #xf8071a23 + #xd6121e00 + #x11d6bbbc + #xdc0c5450 + #xd40516f2 + #x4823dcba + #xe7ddfb2d + #xc0c180b + #x4182019 + #xf01c19ff + #xf6cdc8d1 + #xd915472e + #xfc14fed6 + #x3601cbce + #xe9e5072e + #xb18220d + #x11251e0f + #x12271500 + #xe9d4def0 + #xdd0d260d + #x1807ddc9 + #x14e7d4f6 + #xeff20d1e + #x1423290f + #x1421160d + #x332d1103 + #xebddf412 + #xd0f40c03 + #x1ef3cbc1 + #xf2e3f018 + #xfbfc0804 + #x1e2d3115 + #xc1a1515 + #x4f2d05f8 + #xebe7103a + #xb2df0905 + #x1de7bca9 + #xe1f00f2a + #x5fffae7 + #x2a3a3c21 + #x719181e + #x5d1eede9 + #xe7fc2e56 + #x99e61601 + #x20dea280 + #xddfe2137 + #x7f7ead8 + #x3e4b4527 + #xc191a2a + #x48fcd0e2 + #xee1c3c4b + #xa1001af6 + #x22cd8080 + #xdd012e48 + #x3f0e2d2 + #x585c4423 + #x12161e3c + #xcd8c7ed + #x4312914 + #xbf1010f0 + #x18b28080 + #xdc043f55 + #xfef4e6d5 + #x72643e18 + #xf102753 + #xd4c9d4fb + #x1923fcdc + #xda0904fc + #xfb948095 + #xdd104d4f + #xff01f0d6 + #x7f622f09 + #x30d3467 + #xc8d9edff + #x11f8d6cb + #xe301090d + #xd18384b3 + #xe5224b2a + #x50ff6d6 + #x7f562000 + #xfe103f73 + #xe6f2feff + #xeed1cddd + #xe6071608 + #xaf889ec7 + #xf32a32fb + #x1116f6da + #x77471201 + #x1114075 + #x5040907 + #xc7c3d8f2 + #xf3140fe6 + #xab9db4d2 + #x1d08d9 + #x1d19fbe7 + #x6b3a100d + #x7093a6e + #xd111a16 + #xb6cce1f0 + #x710ebbc + #xbbb4c8e9 + #xfefee6d0 + #x221d07f6 + #x61331419 + #xfffc3165 + #xd233321 + #xbcd4dde7 + #xdefbfa9 + #xc7c5e208 + #xeedfd5d2 + #x252312fb + #x5c331c20 + #xeef22d61 + #x2042471e + #xc9ced8eb + #xf7c0a6b0 + #xc9dc081e + #xdcd5d2d0 + #x292e16f0 + #x5c341d1d + #xdded2e61 + #x475a4c0f + #xc9c3dc03 + #xcb9ea9c0 + #xd4002a15 + #xdadacdc3 + #x2e2f0de7 + #x5a321a1e + #xd4ed3365 + #x6d6744ff + #xc0bde920 + #xa39abcc9 + #xed2731ef + #xeadcbbba + #x2f2505ee + #x542a1a23 + #xd1f33b69 + #x7f6637f2 + #xb8c3f633 + #x94abcbc5 + #x103e1cc5 + #xf8cca2bf + #x21140b07 + #x47221d27 + #xd8034867 + #x7f642ae7 + #xb6c9ff44 + #x9abcd0c0 + #x2a36fcaf + #xf8af96d6 + #xc0c2525 + #x3a22201d + #xe91c5159 + #x7f5d19e2 + #xb6d00b59 + #xa6c5d1bd + #x2e20e2ac + #xe7989def + #xfc1e4734 + #x33261c05 + #x4324b44 + #x7f5007e9 + #xb4da216a + #xaec9d2ba + #x2105d5b2 + #xd192aefb + #x3405e2e + #x362909ee + #x1e373732 + #x6b36fcfe + #xbbf33362 + #xb4cdceb3 + #x14fad1b6 + #xc49bbaf7 + #x195d621a + #x3a20f3e6 + #x2b2a2531 + #x441c041a + #xd410363c + #xbbcdc3b3 + #xdf3d0b8 + #xc4a7bff3 + #x3469560b + #x360de7f3 + #x291a1e36 + #x1c0d182d + #xf822220f + #xc0c7bdc8 + #xcefd0bf + #xcbb2c5f7 + #x42614908 + #x22fcee0c + #x21152234 + #x40b222d + #x162107ed + #xbdc1cdee + #x8ebd4c5 + #xd2bcd2ff + #x3a4f4007 + #x11fbfe1a + #x211a2125 + #xf6081d25 + #x2314efd8 + #xb8c8ee11 + #x3e6d2c3 + #xdacde507 + #x273e3605 + #xd070c16 + #x261d1612 + #xe9ff1523 + #x2307dec4 + #xbcdf0f25 + #xfbdec8bb + #xe5e5fa09 + #x16322a00 + #x18150d09 + #x2a16070d + #xdef71529 + #x2600d4b6 + #xd4fc202d + #xf0cdbdc0 + #xf6010b08 + #xd2619fc + #x261c08fe + #x2309fe12 + #xddf6192a + #x2fffcdb4 + #xf00c2536 + #xdcbdc0da + #xc1d16ff + #x81509ff + #x2d1601fb + #x18fefe1e + #xe1fb1c25 + #x38fcc8b7 + #xc2b48 + #xc1bbdefc + #x273416ea + #xfffc08 + #x270c0000 + #x8f70426 + #xdd001c1a + #x3cfac1ba + #x3043659 + #xafc4fe14 + #x3b4012d5 + #xf7eef410 + #x20030105 + #xfef60929 + #xd4031e12 + #xec7b5c0 + #xe82f745d + #xd91320f1 + #x561fd3b7 + #xe4e40b41 + #xf181a01 + #x172a1e + #x172a18fe + #xf9c2c3d9 + #xf039663f + #xf81806e0 + #x4605caca + #xe3ed1544 + #x13202000 + #xe1f2317 + #x2f2a1203 + #xe7c7dbfd + #xfc3b4517 + #x160ee8d5 + #x27eaceee + #xe8f91f3b + #x1a2b2600 + #x1b241b13 + #x482b0e0a + #xe5d7f520 + #xfa221e01 + #x1bf8d5d5 + #x3e3ed13 + #xf4031c1f + #x23332b07 + #x1b1e1618 + #x562a0a0b + #xe9e70f45 + #xdf030dfe + #x15e9cec8 + #xeef10f2a + #x1070bfd + #x2b393115 + #x161a1820 + #x5c22fc00 + #xe9fc2f62 + #xc0f911fc + #x11e0bba6 + #xea052733 + #xa02f5e7 + #x39453c20 + #x171c1f2a + #x4507e3f6 + #xee1c455f + #xbb0715f2 + #x13cc9181 + #xf1113540 + #xdfae7df + #x4e544126 + #x1b1f2638 + #xbe1d3f9 + #x6383c2f + #xd0160aed + #xdad8080 + #xf4184850 + #x9f9e4df + #x675d401f + #x161c3150 + #xcecad802 + #x223513f0 + #xe912fefa + #xf98d8096 + #xf2275d54 + #x600e8dc + #x775e3512 + #xb1e436a + #xb9ceea06 + #x2611e9d1 + #xf1060212 + #xd08080b6 + #xf63c6339 + #xb0aecd7 + #x7c58280a + #x522527c + #xd3e4fa03 + #x7e5d8e1 + #xf0091217 + #xaa819cc8 + #x6484e0a + #x1812ecd9 + #x76481b0d + #x926597f + #xf6f80205 + #xddcfdffa + #xf61716fc + #x9e94b2d1 + #x163c24e0 + #x2313ede8 + #x6a381517 + #xd22567b + #x5060e0e + #xc3d1e900 + #x91bfcd1 + #xaeabc3e1 + #x171cfdd1 + #x2716f9fa + #x5e2f1722 + #x9185074 + #x7172318 + #xc4d8e8f8 + #x1502d0b6 + #xbfbed8fe + #x5f8e8d5 + #x281e0701 + #x5a2f1f27 + #xf90d4a6e + #x1a313718 + #xcfd4e3fe + #x5d7b1b6 + #xc8d4fd17 + #xece4e3d8 + #x2f2a0ff8 + #x58332627 + #xe906486b + #x4650400b + #xcfc8e71b + #xdcb1aec3 + #xd3fa2315 + #xe0e4dfd1 + #x38310be9 + #x5633262a + #xdd03496d + #x73623bfa + #xc4c3f640 + #xb2a7bcca + #xed2431f4 + #xe9e3cfca + #x3c2a02ea + #x522e2331 + #xd907506f + #x7f632eec + #xbbcb0a5d + #x9db3cbc6 + #x123d20c8 + #xf6d4b9d1 + #x351b03fd + #x49282738 + #xdb12596d + #x7f5f1ee0 + #xb9d5186d + #xa1c4cfbe + #x313bfcae + #xf6b7abec + #x2213181a + #x3d282c30 + #xe7275e5f + #x7f5c0fd9 + #xb9dc267b + #xaecccfbb + #x3c24e0aa + #xe59eb309 + #xf233b2a + #x372e2717 + #xfe3c5a4a + #x7f4e00df + #xb9e4377f + #xb7d0ceb9 + #x330dd3b1 + #xcc98c617 + #x11445524 + #x382f15fc + #x1b44493c + #x6e35f6f4 + #xbcf8487c + #xbfd4cbb3 + #x22fdcfb6 + #xbaa1d416 + #x27625a0e + #x3d26fdf1 + #x2c38353b + #x4a1b0013 + #xd112485a + #xc6d5c0b1 + #x16f4ceb9 + #xb7add90d + #x44724efc + #x3b12ecfe + #x28232e43 + #x2411172a + #xf224342c + #xcaceb7bf + #xff0ccbc + #xbeb5d90a + #x586f43f6 + #x2bfeee18 + #x1c173044 + #x12162a2c + #x1123160b + #xc6c3c0e1 + #xaecd0c4 + #xc6bae00d + #x58653dfa + #x17f8fe2b + #x181e3437 + #xf1b2823 + #x1f13fefa + #xbec6df06 + #x5e9d4c3 + #xcec7ed0f + #x485637fc + #xe030f2a + #x22262b23 + #xa131c22 + #x2005eeea + #xbcdc031e + #x1e5d0bc + #xd8dbfd11 + #x374a2efa + #x1613161c + #x2c201817 + #xfe05182b + #x22fee0d7 + #xcffc1c28 + #xf9dbc4ba + #xe9f50b0f + #x2c3f22f9 + #x241c0f0f + #x2b120d1b + #xf2011f33 + #x28fcd1c7 + #xec112430 + #xe8cbc2cc + #x10f160a + #x232c13fe + #x2c180609 + #x1f030b28 + #xee062733 + #x2ff5c3c0 + #xfe162e41 + #xcfc2d5ea + #x1c2418f8 + #x1716070a + #x2b0f020a + #x11fe1533 + #xed0f2b2a + #x2ee7b9bc + #xfd154456 + #xbed1fa02 + #x38310bdd + #x6fe021c + #x200a060a + #x2011e33 + #xf0182a18 + #x2adbb5b7 + #xf4165d65 + #xb9e9180d + #x4d35fdc4 + #xf6f0002e + #x15060b06 + #xf903222e + #xf520270a + #xe4a5bef6 + #x6627c3e + #x26fed5 + #x48f7b9c1 + #xd9ef2555 + #x122417ef + #x824250f + #x532908fb + #xd6afd510 + #x17615b1d + #x1214e7d7 + #x2ae1c3e0 + #xdef92d4d + #x1a2c18ed + #x16211d10 + #x55260808 + #xd0c4f231 + #x21492dfb + #x18fbd5de + #x5d5de08 + #xeb083036 + #x253118f2 + #x1e1d1414 + #x54220810 + #xd7db0d4c + #xb1e0df2 + #xbe7d2e1 + #xece40821 + #xfd0f1f10 + #x2c341dfe + #x1b18161d + #x4a1b020d + #xddf32c61 + #xe50405f0 + #x1e0c9c7 + #xec002528 + #x90b02f3 + #x363c280f + #x1a1b1d24 + #x3408ef04 + #xe513455f + #xd00406eb + #x1d2a8a0 + #xf614342d + #xcfde8e7 + #x4349341a + #x1b1f242d + #x4e7de01 + #xfd344633 + #xdd0ffbe5 + #xfdac808c + #xfe21453c + #x8f2dde4 + #x58583c1b + #x18212c3f + #xc5c8dd08 + #x1e3c24f2 + #xf30bedf2 + #xe280809c + #xfe315c42 + #x5f3dde1 + #x6c5e3b17 + #x10213e5b + #xa7c1e908 + #x2f21f6c9 + #xfafeef0d + #xb98080b6 + #x24a6a30 + #xbfbdeda + #x75582f10 + #x9285475 + #xb6d0f401 + #x18f3dbd2 + #xf4fd061e + #x92808ac8 + #x135c5f04 + #x1401dbd9 + #x73481f12 + #xd33657f + #xd9e5f9fe + #xecd5dded + #xf70f140c + #x8681a5ce + #x265838d9 + #x1e01dae7 + #x6737161b + #x14386a7f + #xe9f3fe06 + #xc9d0e8f7 + #x81a04e1 + #x959cb5d9 + #x2d380cc3 + #x2401e4fd + #x5a2c1826 + #x13366779 + #xed021010 + #xc4d9ebf3 + #x180bd9be + #xaaafc7f3 + #x1b0ff0c5 + #x2509f709 + #x512a222c + #x5296273 + #x11d2612 + #xcbd6e8fd + #xde1b5b6 + #xb7c4e80d + #xfbf2e8ce + #x2a170501 + #x4e2f292c + #xf41f5b6c + #x2f3c3105 + #xccc9ed22 + #xe8b7aac0 + #xc4e71213 + #xe4e9e5ce + #x362404ed + #x4e31282f + #xe81b586c + #x62542cf3 + #xc0c40253 + #xbaa7b5c5 + #xde1626f4 + #xe4e7d9c9 + #x4124f9e4 + #x4d2d2638 + #xe11b5c6c + #x7c5c1ee2 + #xb2cc1d74 + #xa1aec1be + #xb371ac8 + #xedd7c4d5 + #x3f18f4ef + #x46292a42 + #xde24636a + #x79580fd5 + #xaeda307f + #xa1bdc4b5 + #x333bf6a8 + #xecbab7f0 + #x2f100406 + #x3a28313e + #xe4366a5f + #x715000cc + #xb1e43e7f + #xaec5c0af + #x4525d3a1 + #xd7a0c013 + #x1b1d2516 + #x332f3128 + #xf949694e + #x6d42f0cf + #xb2ec4e7f + #xb9c8bdae + #x3c09c1a7 + #xba98d628 + #x1a3e4310 + #x3733220b + #x14505741 + #x6329e8e1 + #xb6fe5c7f + #xc0ccbaaa + #x29f6beac + #xa5a1e929 + #x2d5f4efb + #x3c2a04fb + #x2a43413e + #x4810ed01 + #xc7185e6a + #xc8cfb2a5 + #x17edbeb1 + #xa3aff01e + #x4d7142e8 + #x3b10eb05 + #x2c2c3646 + #x1f06081e + #xe72a483c + #xccc5a7b1 + #xde8c0b6 + #xaab7ef16 + #x667336e0 + #x2cf7e822 + #x1e1f3a4a + #x9122226 + #x628281a + #xc7b6aacf + #x6e4c3bd + #xb2baef13 + #x706a2de2 + #x14effb3b + #x1022413f + #xd21291b + #x16140c0d + #xbab3c5f6 + #xe2c8be + #xb9c1f713 + #x66612ae7 + #x8fb1241 + #x162c3a28 + #x161f1d13 + #x1601fd06 + #xb6c8ed10 + #xfee4c8b5 + #xc3d20212 + #x555525e8 + #xc0d1a33 + #x252a2617 + #xc0f161e + #x13f9eff3 + #xc4ec0c1d + #xfadec0af + #xd2e80c10 + #x484a1de9 + #x1b181322 + #x2a1b1618 + #xf6011d30 + #x18f4dad9 + #xe1081b26 + #xedcfb9ba + #xe8fe140b + #x3e3b12ef + #x2616061a + #x210b1325 + #xe5042a37 + #x21e9c3c7 + #xfa122536 + #xd5c1c5d9 + #x51317fe + #x312609fe + #x260c0017 + #xf041d31 + #xe7123430 + #x21d5b1c0 + #x143b4d + #xbec9e7f4 + #x24210ce2 + #x1d0f0414 + #x1e060112 + #x1062a36 + #xf71f331f + #x13bdaac7 + #xf7245f5c + #xc1ec06fa + #x3f22f2c5 + #x1fa092f + #x130b0906 + #xf90f312c + #x1429280c + #x6acacce + #xf03a7b63 + #xd00b17f2 + #x4e1dd9b2 + #xeced1045 + #xb1310fa + #xf6163422 + #x2d2f1dfe + #xc5adec3a + #x457f6d18 + #x271fe0e5 + #x2adcc5ec + #xe50d4c62 + #x282e0fe7 + #x23332318 + #x57250708 + #xc5c40046 + #x4c714602 + #x2306dcf7 + #xed7de08 + #xee184d4d + #x2f300dea + #x272b1f1c + #x48210d15 + #xcfde1953 + #x40441ff1 + #x13eede06 + #xf4e00421 + #x23412c + #x37320df4 + #x25231d24 + #x371c0e1a + #xdaf7305b + #x191c0df0 + #x2e6e3fc + #xf1002423 + #x1120230b + #x3d361504 + #x2323232a + #x27110716 + #xe5134857 + #xf90e08ed + #xffe2cfd7 + #x1d3321 + #x150f02fb + #x45422715 + #x24282830 + #x7f9f813 + #xfc375035 + #xf71200e9 + #xfdc9a4ba + #xf2f402a + #xffceef8 + #x5350351d + #x242a2c3b + #xd8def416 + #x204b37f8 + #x60ff0f4 + #xe69980bb + #x133e5633 + #x7f2eaf7 + #x635b3d1d + #x202b3b53 + #xb7d0fb18 + #x39390aca + #xaffee11 + #xb78080d0 + #x16536524 + #xbf5e7f0 + #x715d391d + #x1f35536e + #xbad80213 + #x2e0ee9c6 + #x2f80328 + #x8c8095df + #x256962fd + #x16f9e0ec + #x75532f21 + #x21446a7f + #xd1e7000d + #x6ece3df + #xfd071a23 + #x8080ade0 + #x407044d3 + #x21f8daf7 + #x6d41242a + #x284f777f + #xe2f2ff0d + #xe2e2eded + #xb1a16fd + #x8c9dbde5 + #x4d5b1dbd + #x24f7e20e + #x5e332430 + #x2a52797f + #xe5fc0a15 + #xd3e6f2ec + #x1f18f4d7 + #xa4afc8f9 + #x4133fdbd + #x23fcf720 + #x502f2e36 + #x214f7777 + #xf20f1d18 + #xd7e6f2f5 + #x20f5cac8 + #xb4bfe315 + #x1d0ff2c9 + #x270d0a1c + #x4c353537 + #x1546706e + #x1a2e2a0f + #xd7dcf919 + #xccbacc + #xc1df0b1f + #xfffff0cf + #x351d0e06 + #x4b39363a + #x8406969 + #x4b4827ff + #xc9d70f4c + #xd3b4bfd0 + #xdb0e2507 + #xf4fbe9cf + #x422403f4 + #x4d363344 + #xff3b6a6a + #x665219ed + #xbadf2e6e + #xb4b6c9c8 + #x7351ddc + #xf9eed8da + #x481af7f4 + #x4930364d + #xf840706a + #x664f0ade + #xb6f04679 + #xb0c1c9bb + #x333dfbba + #xf5d3cdf5 + #x3a12ff04 + #x4132404f + #xf94c7563 + #x6146fcd4 + #xbbfd567c + #xbdc9c2b4 + #x4c2ad5ad + #xe0bad51c + #x28191c11 + #x3739443e + #x75a7153 + #x6539eed1 + #xc108657f + #xc6c9bdb3 + #x480dc2b2 + #xc1b0f139 + #x23353a0b + #x3b413a24 + #x21626348 + #x6624e2df + #xc518737f + #xccccbbb0 + #x35f8bfb7 + #xa9ba083e + #x365846f5 + #x463a1f15 + #x37575048 + #x500de5fc + #xd1307574 + #xd1cdb4ac + #x20eec1bd + #xa5c91235 + #x57703edf + #x4821021d + #x3b40444f + #x2702fb1a + #xed426148 + #xd8c8a9b2 + #x13e9c2c4 + #xadd31128 + #x73732cd5 + #x3602f835 + #x2c2f4653 + #xa0e1a27 + #xb404024 + #xd4b9a9cc + #xbe3c5cd + #xb4d40d21 + #x7f6921d5 + #x1cf4074f + #x1c324d48 + #xf242a1f + #x1a2a251a + #xc6b0bef0 + #x4e2cccf + #xb9d70d1c + #x7c611fda + #xafd235d + #x1c3e4c32 + #x242c2012 + #x1813191f + #xbabee50d + #x3e7cfc4 + #xbee01119 + #x735e1fdc + #xb123058 + #x2a403a1f + #x231d1516 + #x11080e12 + #xc4e0061a + #x4e7c8b9 + #xccf11816 + #x68541adf + #x1a202b49 + #x3332251a + #x40d1c2b + #x1203f8f1 + #xdf031920 + #xfcdcbdbd + #xe2031c15 + #x5d4913e7 + #x281f1a3b + #x2c1f1f27 + #xe70b2f3a + #x19f5dad3 + #xfd12242e + #xe7ccc1d7 + #xfb131f0b + #x50370ef7 + #x2b120f35 + #x1a152835 + #xe61a3e37 + #x1adac2c9 + #x7183a45 + #xd1ccdaf4 + #x182118f4 + #x3a240d0d + #x230b0d2e + #xb19393b + #xff2c4228 + #xabbb9d8 + #x4275854 + #xcde6f8fc + #x332703d5 + #x1f111228 + #x190d1220 + #x4244133 + #x23363716 + #xeea7c1f8 + #xa49744d + #xe30a04f1 + #x4419e2c5 + #x2042346 + #x1619160b + #xa2e3d27 + #x42372508 + #xd7a0cd13 + #x166c7f41 + #xff2302e2 + #x4606c8c4 + #xedff3358 + #x192516fb + #x1133361a + #x56361503 + #xa0bf0f4d + #x757f47e1 + #x27f0cd10 + #xfdc1d10e + #xea256354 + #x3724f1d5 + #x2a27131f + #x2a15000e + #xafd51b4a + #x676227da + #x10e1db22 + #xecd0f11b + #xf9315732 + #x3a22f1e0 + #x27221625 + #x1e130815 + #xc4f02c46 + #x402e09da + #xfadaea24 + #xe3f0161c + #xe32380c + #x3d24faf1 + #x211e1c2c + #x120e0b16 + #xd50c4040 + #x101000dd + #xf3e0e600 + #xf4152712 + #x161f0ff6 + #x402c0c06 + #x1f222231 + #x3ff0315 + #xef2f4a2a + #xff0cf7dd + #xf6d1bfd8 + #xc2c2e13 + #xe02f6f6 + #x483b2215 + #x22242538 + #xe3e7fc16 + #x134a3af7 + #x508e9e6 + #xe7a695cb + #x193d401f + #x2efeffd + #x594b3118 + #x22242c48 + #xc4d7ff19 + #x37460fc5 + #x9f6e302 + #xb88089da + #x21535618 + #xfce9ecfa + #x67533218 + #x222b4160 + #xbcd80216 + #x381fe6b5 + #xfce9f622 + #x80809be9 + #x326d59f0 + #x3e9e1f6 + #x704e2c19 + #x2a415f76 + #xcbe4ff12 + #x16f6d7c5 + #xf0f31528 + #x8080b1e7 + #x4d7b3ebe + #xee6d4fd + #x6c432722 + #x3557767f + #xd7e9fa12 + #xece4ded5 + #xf90e1c08 + #x8087b9e3 + #x646d139f + #x12e0d716 + #x5d352a2e + #x3a637f7f + #xd8edff18 + #xd7e6e6d5 + #x1015ffde + #x8a9cbff1 + #x5d47f19f + #xfe3ed2e + #x4d2f3232 + #x34607e75 + #xe3fc0f1b + #xd7e6e6db + #x1cfad4c7 + #xa0abd70f + #x3d22e4b1 + #x10f3082f + #x46343832 + #x2b5a786a + #x5181b13 + #xd5ddeafc + #x5d0bbc7 + #xacc7ff21 + #x160be6bb + #x1c0b1219 + #x46383832 + #x1f547064 + #x34321903 + #xc7d5032e + #xd8b2bbc8 + #xc4f41e10 + #x303e1be + #x311806ff + #x4837353d + #x15506d63 + #x51400cf1 + #xb5e02757 + #xb4acc2bf + #xf3221ce7 + #xf7d4c8 + #x3d15f6f3 + #x47323a4d + #xc507064 + #x5a3dfce1 + #xb1f64766 + #xabb7c1ae + #x2832f9be + #xfadecbe9 + #x3708f3fc + #x3e314754 + #x9567560 + #x5d32ecd5 + #xb90b5c6d + #xb4bfb5a3 + #x4721d0ac + #xe3c4d515 + #x25090905 + #x373a504a + #x13627254 + #x6725dace + #xc4196c7c + #xbebeaca2 + #x4700b8ae + #xbfb9f43b + #x1e2228fd + #x38444832 + #x2b676347 + #x6c12cbd8 + #xca2b7b7f + #xc2bca9a0 + #x2fe7b4b5 + #xa5c41347 + #x324837e4 + #x43402c21 + #x44625144 + #x56facaf4 + #xd5437f7b + #xc7bea69d + #x19dbb7b9 + #x9fd5243d + #x54642eca + #x48280c25 + #x4a4d464b + #x27efe015 + #xed566d4d + #xcbb99da2 + #xbd7b8c1 + #xa6e1212e + #x706716bb + #x3a06fd38 + #x383b4853 + #xf90525 + #xe53481f + #xcaab99b9 + #x3d3bccd + #xb1e41b24 + #x7f5c06bb + #x18ef0b56 + #x2238514a + #x5151c1e + #x1e3a2c15 + #xbc9fa9de + #xfdd1c5d1 + #xb5e6181e + #x7f5402bf + #xfdf32a6f + #x1c434e2f + #x2527180b + #x181f2424 + #xaca6cefc + #xf9d7cbc5 + #xb8ec1616 + #x7f5105c1 + #xfc0c4176 + #x2a473e19 + #x341e0809 + #x9121f22 + #xacc7f308 + #xfadbc4b2 + #xc1f61813 + #x764e05c4 + #xf1f416a + #x373b2712 + #x1609081b + #x60e0bfc + #xc7ec090c + #xf9d4b7b1 + #xd4021912 + #x6d4803cd + #x1f1f2f5c + #x32251c1e + #xec031e2f + #xcfde4cd + #xea031518 + #xecc4b1c7 + #xed0f1c0c + #x603affdd + #x25122151 + #x1f19242e + #xe3153734 + #xedbc2bb + #xfd0e2a2f + #xd3bbc4e7 + #x81e18f9 + #x4b2800f4 + #x1c061c47 + #xc1b3535 + #x2e4124 + #xfab5b5ce + #xff1e4a41 + #xc8cee3f6 + #x212505da + #x2e150910 + #x12051c37 + #x6283e31 + #x283d3812 + #xd89cbef4 + #x540673d + #xd7f1f3ed + #x351be6c2 + #x100b1c31 + #xe0e1b1f + #xe353d24 + #x433d2503 + #xb599d81f + #x226c721f + #xfd0bece4 + #x34fac8ca + #xf709384e + #x16191202 + #x1b3b2f19 + #x483210ff + #xa0a2ef3e + #x467f6d03 + #x1b13dbe6 + #x28dbb8de + #xe60f505c + #x242106ec + #x253b2215 + #x442702ff + #x9add2236 + #x7f6b10b2 + #x5c2dc48 + #xd1bdee23 + #xfa435f20 + #x330cdacf + #x23130e26 + #x800fc14 + #xafec252e + #x6240ffb8 + #xefc9f347 + #xd2dc0517 + #x9434203 + #x3309dfdd + #x1a13142d + #x6030213 + #xc8032e26 + #x2b17f1c3 + #xe3d6fd29 + #xe2031606 + #x16311ae9 + #x310ceff3 + #x16141a31 + #x2ff0310 + #xdf1f371a + #x508ebc8 + #xe9d9e3f7 + #x2201700 + #x1110faeb + #x341a0809 + #x1a171c34 + #xf1effd11 + #x23c2df9 + #xddd1 + #xe5bab7dc + #x192e220b + #xfff1eff9 + #x422e1d11 + #x1d161f3c + #xd6e0fd16 + #x2b430ccc + #xeed4eb + #xc28b9fe0 + #x23403a0c + #xefe5ee00 + #x543f260c + #x1c192e50 + #xc5dd0016 + #x3d26e0b4 + #xf1dae313 + #x8980abee + #x345d45ec + #xefe2e6ff + #x62432309 + #x1f2b4864 + #xc9e3fd10 + #x23fac8b5 + #xdfdf0523 + #x8080bdeb + #x51712db2 + #xf6dcd706 + #x623d2010 + #x2b456470 + #xd2e5f610 + #xf7dfc6c2 + #xe2fc1910 + #x8080c2e0 + #x6d6afc86 + #xf9d1d41d + #x5633251c + #x3a5c7373 + #xd2e0f719 + #xdcdccfc3 + #xfa0e05e6 + #x8091bfe5 + #x7047d680 + #xf4cce637 + #x452e3023 + #x4065776b + #xd6e80320 + #xd9dfd4c8 + #xcffdcc9 + #x899bccff + #x5422c992 + #xf3dc0540 + #x3c333923 + #x3c627360 + #xefff101d + #xd7dad9e3 + #x2d6bcc3 + #x95afee16 + #x2e0bcea3 + #xfdf6142d + #x3c373925 + #x335d6b56 + #x1a191010 + #xcbd2ec11 + #xd9b2b7c5 + #xa9d91311 + #x1403d2a9 + #x140b0b0e + #x4037362b + #x28566556 + #x3d2802fd + #xb8da113c + #xb2a8bcb8 + #xd60917eb + #xcfac8b2 + #x260bf4f9 + #x4033393c + #x1d536759 + #x5025f1ee + #xb2f33756 + #xa2aeb7a5 + #xe22fcc0 + #x3e5bfd1 + #x28fdebf9 + #x3931474a + #x19576d59 + #x571ae0e0 + #xbc0e5164 + #xa9b4a694 + #x3416d2a9 + #xe9c9c903 + #x17f6f7fd + #x3039564a + #x1f5f6d50 + #x620bccd7 + #xcb236477 + #xb1b19892 + #x39f4b5a9 + #xc5bdee31 + #xe0610f3 + #x31455336 + #x33675f40 + #x64fab8da + #xd436737f + #xb4ab9494 + #x23d6aeaf + #xa8c81445 + #x1d2d1dd7 + #x3c453a23 + #x4a624d3a + #x4ae2b2f1 + #xdf4e7c7f + #xb4a99292 + #x9c8b1b4 + #xa2e02d3f + #x434e14b8 + #x452e1925 + #x53513f40 + #x13d1c511 + #xf6626d50 + #xb8a88c97 + #xfac3b2ba + #xabf32d30 + #x6857fca6 + #x370b0839 + #x403c4248 + #xe6d7e923 + #x14604a1a + #xba9b85ab + #xf4c0b5c5 + #xb8f92522 + #x7a4de8a5 + #x14ef1057 + #x26374b43 + #xe9f4091d + #x25452809 + #xaf8c91ce + #xecc0c2cc + #xbdf71d19 + #x7c3fe0a9 + #xf3ee2e73 + #x1a404e2b + #x13110b09 + #x1d251f1f + #x9b8fb2ec + #xe8c6c9c2 + #xbcf71911 + #x7a3ae2ab + #xeb064b7f + #x26473c10 + #x3313fa00 + #x9172330 + #x95abd9f7 + #xe9ccc3ac + #xbffa160c + #x7439e5ac + #xfd1f577f + #x363c2203 + #x2200f30e + #xff171a11 + #xabd1eff6 + #xecc9b1a2 + #xcc00140b + #x7037e3b2 + #x14254b74 + #x3425130e + #xf6f40525 + #x60cf6da + #xceecfcfc + #xe5b8a6b2 + #xe00b1609 + #x652ee2c0 + #x1c173a68 + #x20131922 + #xe503232d + #x9e8c9b8 + #xe8fc0e13 + #xcfacb2d2 + #xf61616fc + #x531fe5d6 + #x1308315d + #xc14292d + #x2223420 + #xf6b8b1c8 + #xef0c3129 + #xbfb7d1e8 + #xe1f06df + #x3a11f1f1 + #x502304e + #x8223628 + #x303a300c + #xcc98b7ef + #xf62e5326 + #xc5d7e6e5 + #x2319e8c3 + #x1d080613 + #xff062b37 + #x1031341c + #x4a3f1dff + #xa092d117 + #x10595f05 + #xe5efe0dc + #x29fcc6c3 + #x3092333 + #x60e1d17 + #x1f372811 + #x473309fc + #x88a5f431 + #x42794eda + #x8efceee + #x14d4bce3 + #xf1174543 + #x191103f3 + #x2b311711 + #x331ffa00 + #x83ba0c3d + #x6d7f39bf + #x1ae3c30c + #xfdb7c205 + #xe9285c4a + #x2610eed7 + #x2d260b16 + #x200ef403 + #xb5fa2520 + #x7f40e0a2 + #xdabf0c70 + #xc3d9111a + #x1d5d47f3 + #x23f1cfdd + #x190b1a33 + #x8fa051f + #xc603261d + #x5123ddae + #xd7d61a54 + #xd6f71305 + #x254a23e5 + #x1ff3dcef + #x160e1f34 + #x9ff0619 + #xdd192917 + #x1f0bdabc + #xdde91123 + #xf71410f6 + #x232600e3 + #x1ffcf306 + #x17132234 + #x2fa0514 + #xfc312605 + #x902d6c6 + #xe5dae5f7 + #x141f10fc + #xe03f3f7 + #x29130e13 + #x1c132236 + #xecef0317 + #x223c10e3 + #x3f1cee0 + #xcfaec2ee + #x252b2005 + #xf9eff409 + #x3d2b1d0c + #x19132942 + #xd6e90619 + #x3c29e9c6 + #xf6dad908 + #x9f89c0f6 + #x344731f1 + #xebebf40e + #x51391f02 + #x171d3c54 + #xd1ec0617 + #x3302cbbf + #xddd6f926 + #x8083d1f3 + #x4e6025bf + #xeee5e811 + #x593a1d02 + #x20365665 + #xd6eb0014 + #xee2c3c3 + #xd6ee1420 + #x8092d6e2 + #x685df788 + #xeed7e023 + #x54372610 + #x314e676b + #xd4e3fd1a + #xebd7c6c3 + #xeb090efc + #x809dcedd + #x773fc880 + #xe8c9ef42 + #x47373319 + #x405d6e67 + #xd1e00525 + #xe0d9c8c3 + #x608ebd9 + #x80a0cff1 + #x671cb580 + #xdfd10e57 + #x3c393a17 + #x48646e5a + #xddf1112d + #xdfd6ccd7 + #x5e5c8ce + #x8baceb0e + #x4705ba94 + #xe5ec234e + #x3a3d3a13 + #x47646850 + #x81325 + #xd7d1dd00 + #xe5bfbdce + #x98cf0e13 + #x28fcc39b + #xfc061f2d + #x3f3f3617 + #x3f5f604d + #x26160919 + #xc6d6002e + #xbcafbfc3 + #xbffd1df4 + #x19f9bfa2 + #x160b0510 + #x403a3929 + #x34595f50 + #x3f16f909 + #xbdee264e + #xa8b4b8ae + #xf61c06c9 + #x10e8b7bf + #x1dfdf106 + #x3937473f + #x2b596553 + #x4a0be6fa + #xc60e4764 + #xa9b7a69a + #x2317e0ae + #xfad1c3f1 + #x13f1f405 + #x2e3d5645 + #x2e60674b + #x4dfdd2ec + #xd9295a77 + #xafaf9295 + #x2ef7c2a9 + #xd7c3e826 + #x6fa06fc + #x304b5a37 + #x3f6a5d3c + #x47ebbfec + #xe63d6b7f + #xafa38c9a + #x1ad7b5af + #xbacf1440 + #x111910df + #x3d514825 + #x53674b33 + #x26d2b4fd + #xf354747a + #xac9f8b9d + #xffc5b5b5 + #xb2ec333f + #x333903bd + #x47402922 + #x5a573f39 + #xf1bfc21a + #x8686d4d + #xaf9d86a2 + #xefbfb7b8 + #xbd06392e + #x5c45e8a6 + #x3c1f1739 + #x4b433f45 + #xc5c0e52e + #x266b4e17 + #xb29480b2 + #xe8bdbac2 + #xcc10311f + #x743ad1a3 + #x1c02205c + #x31394842 + #xc8dc062b + #x3a542b00 + #xab8685d2 + #xe0bdc5c9 + #xd2102816 + #x7429c9a8 + #xf7fc3c79 + #x203f4b2b + #xf4fd0e14 + #x33311d17 + #x9883a2f1 + #xdac3d1c3 + #xd20c220c + #x6d1fc9ac + #xe60b5a7f + #x28483f0b + #x2008fd06 + #x191f2534 + #x8e9ac8fc + #xdcceceae + #xd40b1c05 + #x6a1dcbac + #xf3266b7f + #x394225fa + #x1dfaee0e + #x9202628 + #x9bbfe0f4 + #xe2ceba9b + #xda091703 + #x6a1fcbaf + #xe366b7f + #x3c2d1302 + #xf6e9f925 + #xc1d0bf3 + #xbddde8f1 + #xe0bda6a5 + #xe50c1706 + #x671cc9b8 + #x1a305f7d + #x29161317 + #xdff11731 + #x13ffddcc + #xdaeef602 + #xcfacacc2 + #xf31419ff + #x5a13cec9 + #x131d5374 + #x11102225 + #xfa132d26 + #xccbdd4 + #xe6ff141a + #xbcafc6dc + #x61d11e9 + #x4509dce0 + #x2114b65 + #xb1f3123 + #x2d312b11 + #xd2a2bcfd + #xec1f3d1c + #xbac8e0df + #x1c1af7ce + #x2d03f1ff + #xf9134350 + #x17333416 + #x4d3a1905 + #xa295d422 + #x5484efc + #xd2e2dfd9 + #x2502d4c6 + #x16081020 + #xff173631 + #x293c2809 + #x4d310603 + #x85a5f436 + #x316b3fcc + #xf4e5cee8 + #x17dcc2dd + #x5173034 + #xc171c0e + #x36361a09 + #x3d1ffc0e + #x86c61137 + #x677319a8 + #xd1cc19 + #xf3bfcf02 + #x334b30 + #x1c0efaeb + #x34261316 + #x280bfa17 + #x95e02333 + #x7f6bfc97 + #xfdbddc4a + #xd4b7e61d + #x5475622 + #x2305dfd4 + #x2d141023 + #x19fffa1c + #xd40c211b + #x6114bfa7 + #xbee13e76 + #xcbff21f6 + #x3d551ad4 + #xcdcd0f6 + #x12112934 + #x3fc111d + #xdf14231a + #x3d09c5b3 + #xcef6344c + #xea0c11ea + #x383702dc + #x8e4e208 + #x1514292e + #x3fd0c1a + #xf4232111 + #x1bfdc8c1 + #xe1fa1118 + #xb1405ea + #x2411f0f1 + #xef7fc15 + #x1715272b + #xf7f90b1a + #x173112f7 + #xef0c4d8 + #xded8e500 + #x1b150bf7 + #x8f9f60b + #x2314110f + #x15142931 + #xe1f30c1b + #x3527f4d9 + #xdccdff + #xb8afd600 + #x29291df1 + #xf4f4fd15 + #x3b2b15ff + #xf183543 + #xd8f30e18 + #x3808d6c8 + #xe5d0ea24 + #x8ca1e1fc + #x434a1eca + #xedf0fa1e + #x493212f4 + #x12294953 + #xdbf40c12 + #x1ae5c8c8 + #xd3e20e2e + #x80afe7e5 + #x6456fa94 + #xebe2f42f + #x4c3115fa + #x24435c5f + #xd9ed0617 + #xf9d4c5c7 + #xe1001715 + #x80b8dbd6 + #x773bc880 + #xdfd1fd4d + #x47352406 + #x3d566561 + #xd0e50b26 + #xe8d3c4c1 + #xfd09fcf3 + #x85b3d1e4 + #x6d12a980 + #xd3d11a68 + #x413e3408 + #x4a5f6756 + #xceed1532 + #xe4d0c2c8 + #x8f1d8df + #x89b3e202 + #x50f7a985 + #xd3ea356a + #x404435ff + #x4f625f4a + #xe5001d34 + #xdcc8ceea + #xf0cbc7db + #x94cb030c + #x34f0b38f + #xe806374d + #x43462efd + #x4c5f5944 + #x90e172c + #xcdcbee18 + #xcab8c5d1 + #xb0f71af9 + #x23f1b694 + #x30f202f + #x44402c0c + #x465c5849 + #x230e0921 + #xc2e2173e + #xb2b8bfbc + #xe41a0ed0 + #x1ae7b0aa + #x1403061d + #x3b3a3829 + #x3e5b5c4c + #x2b05f915 + #xcb053755 + #xafb9aaa7 + #x111bebb3 + #x6d0b8db + #xef1001a + #x31404d38 + #x3e625f46 + #x26f7e708 + #xe1264f67 + #xb5b095a3 + #x21ffc8ad + #xeac4db11 + #xf30b0f + #x324f5834 + #x46685937 + #x17e5d100 + #xf43e5f6e + #xb3a08ba9 + #x12dcbbb3 + #xcdd10c34 + #x3090ff3 + #x405b4d20 + #x566a492e + #xf9cdc40b + #x352675e + #xad9588b0 + #xf9c8b9b6 + #xc2f13237 + #x2126ffcd + #x4d52341a + #x5f5c3d32 + #xcab5cb23 + #x17646232 + #xaa9286b6 + #xe8c4bbb8 + #xcd123e26 + #x492fdfb2 + #x4735232f + #x564a3b3e + #xa1b0e838 + #x326d4700 + #xad8c80c5 + #xdfc1bcbb + #xdf213714 + #x6424c5ad + #x27142755 + #x3d3d4643 + #xa1c70938 + #x475b29eb + #xa78085e2 + #xd6bfc4c1 + #xea212e09 + #x6711bbb3 + #x2094177 + #x2c404a2f + #xcdeb1524 + #x443b1802 + #x98809d00 + #xd0c7d0bf + #xeb1e2702 + #x5f03bbb9 + #xed17627f + #x2c473d0c + #x611 + #x29242127 + #x8989bf09 + #xd3d3d3af + #xeb1a21fc + #x5800bcbb + #xf332797f + #x3a4421f1 + #xcf7f30f + #x12232b2b + #x91acd8ff + #xdcd8c19b + #xed171af9 + #x5602bbbb + #xb497d7f + #x3e310cf3 + #xebe4f623 + #x12261a00 + #xadcadcf3 + #xdfc8aa9a + #xf11417fc + #x5600b9c1 + #x1e4a797f + #x2f1b0b09 + #xcee40f31 + #x1b11f0d6 + #xcbdbdffc + #xd1b2a6b2 + #xf71518fa + #x52fabeca + #x1b3b6e7f + #x18121b1b + #xdf00272c + #xce1cbd9 + #xdbe8f912 + #xbcadbbcd + #x31b15eb + #x46f4c8dc + #x92e6776 + #xe1e2c1b + #x11232915 + #xe2b2c402 + #xe4062118 + #xb3c1d6d6 + #x151d03d4 + #x32f3dbf4 + #xfd275b62 + #x1531310e + #x3a321806 + #xac9ddb2c + #xfc353efc + #xc5dbdcd4 + #x210be4c7 + #x1efaf612 + #xfd294a44 + #x293d2700 + #x43290608 + #x89a7fa40 + #x275e32ca + #xe4dfcee1 + #x18e7cdd4 + #xf0c182b + #x8273421 + #x3a3a1afd + #x3a17fd17 + #x86c41540 + #x5965099e + #xf1cdc808 + #xfac8d1f4 + #xc27382c + #x111b1202 + #x3b291106 + #x2b060026 + #xa0e72334 + #x774dde8e + #xe4bee540 + #xd4c5f30c + #x17464412 + #x1706eeeb + #x2c17141b + #x1afc062b + #xb9fd2729 + #x7f34c291 + #xd1bb0b6b + #xbed41115 + #x245843f6 + #x18f4d6e4 + #x1e0b1d2b + #xef60b2b + #xe5131a11 + #x41f4b5b7 + #xc40e5a6a + #xe91910d0 + #x4e35efd0 + #xf2d0d917 + #x111d2f22 + #xf4011314 + #xef1a1c10 + #x2cf1bac0 + #xdc113941 + #x1300d9 + #x3919ebe6 + #xf7e0ee1f + #x141d2c1a + #xf1fd1017 + #x8251601 + #x19e9bdd2 + #xebfe0a1a + #x130dfde8 + #x1afdf104 + #x7fd051a + #x131a281c + #xe5fa101a + #x262300e5 + #xad7c3f4 + #xd5d5ee10 + #x1a140def + #xfef70117 + #x22190e05 + #xb172c2a + #xdafa1619 + #x320de5d2 + #xefcadd1c + #xaabeef08 + #x2c3014d5 + #xf2f8051d + #x382608f4 + #x7203b41 + #xdffd1410 + #x20ecd3cd + #xd7d50430 + #x8fc6f5f1 + #x5047fea5 + #xefef042f + #x422805f1 + #x14334d53 + #xe3fa0d0d + #xfed7cccc + #xd9f41923 + #x90d2e9d7 + #x6d38cd80 + #xe3df0a4e + #x41290ef8 + #x2d485a57 + #xdaf10b19 + #xe9d0c4c0 + #xf1050b04 + #x99ccd7d9 + #x670da480 + #xd2d92069 + #x3f331cf7 + #x45585e51 + #xcff4172d + #xe3cabdba + #x4f8ecee + #x98c1daf2 + #x48e89880 + #xcaeb3c72 + #x423f23ec + #x505e5847 + #xd901253b + #xdcc3c1d0 + #xf7d6d6e6 + #x98cdf808 + #x2ddda284 + #xda0a4d61 + #x48471fe6 + #x515d5041 + #xf5102538 + #xcdc1dcfa + #xd6c1d0dd + #xabf111fd + #x20e2a889 + #xf7193e47 + #x4a421af4 + #x4d574b44 + #xd101c30 + #xc1d50222 + #xbbbeccca + #xd6140eda + #x1adfa599 + #xa102333 + #x443b220d + #x47544e47 + #x11080d26 + #xc7f72536 + #xb7beb7b5 + #x51defbb + #xecdaac4 + #x8fb142c + #x393c3623 + #x445b5441 + #x5fbfd19 + #xdd1a3b3f + #xb8b19eaf + #x1a05cfb2 + #xf4c0c9fb + #xfbf41722 + #x384b4725 + #x4b665333 + #xf4e9e611 + #xf8384d42 + #xb79b8fb7 + #x11e5beb7 + #xd6ccfb20 + #xf8021605 + #x445b4716 + #x5869442a + #xd9d0d716 + #xa4a5733 + #xac8c8dc3 + #xf8d0bdbb + #xcaef2828 + #xd1704dd + #x535a330d + #x635b332f + #xb5b7da2c + #x1d5b510d + #xa5878cca + #xe6cabeb7 + #xd516391a + #x2d1de5c1 + #x5142221d + #x5d48323c + #x93aef241 + #x38663bdf + #xa48489d7 + #xdcc7bdb5 + #xec2d3808 + #x4a10c7bb + #x39262642 + #x45393944 + #x8fc01044 + #x515d1cc9 + #xa2808df2 + #xd3c6c3bb + #xfe302ffe + #x50f8b8c3 + #x1316416a + #x323b4233 + #xb2e31d30 + #x503f0bdd + #x9580a40e + #xcdcacdbb + #x12926f5 + #x48e8b7cc + #xfa20617f + #x32473b11 + #xe5fe131d + #x36251308 + #x8480c319 + #xcdd6d3af + #xfd231dee + #x3fe5b8cd + #xfb3c7f7f + #x3f4820f1 + #xfbfbfe17 + #x1a22251c + #x849cdc0e + #xd9dfc79b + #xfd1f16eb + #x3ce6b7cc + #x11587f7f + #x423504e9 + #xe6e6f823 + #x172c2200 + #x9ebbdffe + #xe0d5af93 + #x1c13f1 + #x3ee5b5cf + #x26637f7e + #x331afdfb + #xc6e00a2f + #x202301d5 + #xbdcad9fe + #xd9bda4a5 + #x11d16f5 + #x3ce2b8d5 + #x2c5b7f7c + #x1c100b13 + #xc7f5232a + #x1afad9cd + #xcfd0e611 + #xc1afb2c3 + #x72017ec + #x35ddc0df + #x204d7b79 + #xd1c2219 + #xef172816 + #xf2c6cdf2 + #xd7e80a19 + #xb4bdcdd3 + #x14230bd7 + #x28dfcfef + #x1145726a + #x1430290b + #x1c291705 + #xbaaae020 + #xee162a02 + #xbed5d7d3 + #x2016efc6 + #x1ae6e307 + #xb426351 + #x263c20fb + #x2f230505 + #x90ae023b + #x1c4829cf + #xd9ddcada + #x1cf7d5c9 + #xef7021f + #x103e4b32 + #x363611f5 + #x2c110117 + #x89c91c3f + #x4b57009f + #xe8cdc1fa + #xd6d3e3 + #xd132326 + #x16302a14 + #x392808fd + #x1f020729 + #x9ee82838 + #x6a3ccd87 + #xddbbd72c + #xd9cceefd + #x1a353813 + #x17170501 + #x2f17080b + #xefa1033 + #xbe012528 + #x6d17af90 + #xc4c41063 + #xc4e20efd + #x304a2fef + #xef8e6fd + #x1f10161a + #xfdf8172d + #xd50d1f1a + #x6701a7a1 + #xb2dd447f + #xc3fd22ef + #x41511ad2 + #x5dfd301 + #x13112525 + #xf2fa1a26 + #xf0161502 + #x1fdcb7c4 + #xe7335d53 + #xc1aeac3 + #x460fdae2 + #xddd2f538 + #x15262503 + #xea051212 + #xfd1d15fc + #x18dab9cd + #xf61f3539 + #x100cecd9 + #x29ffe9fa + #xece9062f + #x13201f05 + #xe5001315 + #x151f08ec + #xcd2bde6 + #xf0f90c23 + #x1208f7ec + #x9f5fd10 + #x6061018 + #xf1a1d10 + #xe0ff1815 + #x2510f0d7 + #xf5c4d30c + #xccda0218 + #x181a08e0 + #xf7fa0d18 + #x221809ff + #x61a2828 + #xe505180c + #x1cf5ddd2 + #xd9ccfa26 + #xacd90300 + #x3532fab9 + #xf5fa0f25 + #x331afdf3 + #xc263b40 + #xf0051005 + #x2dfd5d3 + #xd0e71a26 + #xa7e2f6e0 + #x582fd290 + #xeff01343 + #x3919fdf5 + #x1f3b4c4d + #xedff080a + #xe9d3ccc9 + #xe5031a0d + #xb2ddddd3 + #x5d09a483 + #xdce72663 + #x392209f2 + #x364c534b + #xe0fa0f1d + #xdfc9bdb9 + #xf90002f6 + #xb2d0d7e7 + #x43e09087 + #xccf54673 + #x3f3210e2 + #x46555043 + #xe2051f32 + #xd9bdb7bd + #xf7e5e9ec + #xaad0ed00 + #x26cd938a + #xd3125f69 + #x493d0dd5 + #x4f564840 + #xf7152a3c + #xccb9c9dd + #xdccce0e5 + #xafea0a00 + #x16d09a87 + #xed285b53 + #x503d06dc + #x4f504245 + #xc19293b + #xc0c9ec02 + #xc3c4d9d5 + #xd00c0fe5 + #x12d29791 + #x523423f + #x4c360cf7 + #x4b4c4548 + #xd121d35 + #xc3ea0d16 + #xbac3c7bf + #xfc19f6c7 + #xcc69ab4 + #x90f2c35 + #x42351f12 + #x484f4943 + #xff06102a + #xd70d2318 + #xbcb6adb4 + #x1809d6bc + #xf6b9b4e7 + #xfa02282c + #x3d433618 + #x4b5b4836 + #xedf6ff20 + #xf2293315 + #xb79f9cbd + #x13ecc3bf + #xdac3e510 + #xf3082613 + #x48593f0d + #x585d3c2d + #xdcdfed23 + #xc403f0c + #xaa8c97cc + #xfcd5c0c0 + #xcfe7151c + #xff1615ef + #x58603503 + #x62552c30 + #xc2c4ea32 + #x23553ff0 + #x9d8399d7 + #xe7cdc2b9 + #xda152f10 + #x1a18f3d0 + #x5d4d230f + #x5c3d263f + #xa4b7fa46 + #x3c6229c7 + #x998097e6 + #xdcccc0b4 + #xf5303002 + #x3208d3c9 + #x49322230 + #x4b2f2f48 + #x96c4164b + #x555908ac + #x96809afd + #xd6cac2b4 + #xc3628f6 + #x38ecbfd2 + #x29223b58 + #x36303b3d + #xace5263c + #x593ff3b9 + #x8a80af19 + #xcfcdcab7 + #x13321fef + #x30d9bcdf + #xd2c6070 + #x323d361c + #xd9001d25 + #x4223f9e3 + #x8080cf28 + #xcfd7d2ad + #x152c16e5 + #x25d3bfe3 + #x9487e73 + #x3b421ff9 + #xf603081a + #x231a0f02 + #x8094e61c + #xd9e2ca99 + #x10260ce2 + #x20d3bfe2 + #x19637f6f + #x4533ffea + #xedeffc23 + #x182819f6 + #x8cb3e908 + #xe6dcb48f + #xf2008e7 + #x20d2bce0 + #x32727f6c + #x3b19eff6 + #xcfe20932 + #x232a05d0 + #xaac2df02 + #xe2c6a49c + #xd1d0af0 + #x20cfbde2 + #x3c727f6f + #x2208fa0d + #xc3ef1d2f + #x2610e2bc + #xbfc3e210 + #xccb2a9b6 + #xf2210ef + #x1dccc2e6 + #x38697f70 + #xd0f1019 + #xdf0d2519 + #x8ddcfd6 + #xc4cffd1d + #xb9b4c2ca + #x19280cda + #x15cfcaf0 + #x2c627f68 + #x10251d10 + #xc201603 + #xd0badf06 + #xd6f61d0a + #xbccad0cd + #x2520f5c4 + #xad5da03 + #x235d7855 + #x23351902 + #x261d0303 + #xa0b90229 + #x2a20da + #xd3d9cad5 + #x2308d9c2 + #x2e3f518 + #x2358633c + #x363308f7 + #x260fff13 + #x90d21d32 + #x3845fda3 + #xe5d0c0f2 + #x9e5d0d7 + #x2fc1522 + #x25494623 + #x3b23faf9 + #x16020a29 + #x9ff0292c + #x5f32c987 + #xdabcd223 + #xe3d5e5ef + #xf1d2c12 + #x232f2212 + #x3212f905 + #x2fd1935 + #xbc06261d + #x6209a38a + #xbfbd0258 + #xcae303f0 + #x2a3b2af2 + #x190cff0d + #x220c0612 + #xed002332 + #xd6101c0d + #x4be79da2 + #xb3e33d75 + #xd2020fda + #x46420fd6 + #x3e9e919 + #x16131816 + #xe5052325 + #xe5131502 + #x36d7a7b4 + #xb70f697b + #xe5190cc4 + #x5539f0c9 + #xf2d0e026 + #x121d2515 + #xe6092019 + #xfb190eef + #x7ceb7cc + #xb3d4e3a + #x1700ccce + #x24eddbf7 + #xd1de1640 + #x1a210eea + #xec040f12 + #x91c07e6 + #x1cab9db + #x41c2f31 + #xefadee3 + #xceff104 + #xe8f41a2a + #x13190bf6 + #xe8041512 + #x1715f6da + #xf1c0c9f7 + #xeaf61720 + #x902f3ea + #xf8f7070c + #x509120c + #xb13100c + #xed08160b + #x16fde3d5 + #xd5c2ea13 + #xc7e9120b + #x1c1af6ce + #xf6010e12 + #x1d0c00f8 + #x81a2327 + #xfb0c0c00 + #x2e5dadb + #xc7da0e1c + #xbeef05e9 + #x3c1ed7aa + #xf4fd132c + #x2708f6f6 + #x152b3839 + #x501fe + #xecd7d3d8 + #xd3fa1c0c + #xc7ede9d3 + #x4e02aa96 + #xe6f72854 + #x2a0bfbf1 + #x283d463f + #xf6fd000c + #xdfcdc5c7 + #xec050cf8 + #xcadbd7db + #x3fd79199 + #xd5004b6e + #x2f1c02e2 + #x3947473c + #xef000f21 + #xd5beb7c0 + #xf4f4f7ea + #xbfd1e2f4 + #x1ebf8e9c + #xd51a696a + #x3f2b00ce + #x4147403c + #xfd0e2032 + #xc7b1bbd3 + #xe2dceae3 + #xb9e1fefd + #x9bc9195 + #xea366b54 + #x4b2ff3cc + #x46413a43 + #x121a2838 + #xb9b9d4f1 + #xc9d1e3d4 + #xcd000be9 + #x4c08e94 + #x53a563d + #x4b25f1e2 + #x443c3a4a + #x16192538 + #xbbd5f301 + #xbeced5c0 + #xf412f8cd + #x1b88dad + #xb284135 + #x412102fd + #x413f4047 + #x90f1c32 + #xcef80901 + #xbec3bcb7 + #x1309dbc0 + #xf1aba0db + #xfe15362c + #x392e1c08 + #x4347403c + #xfb010e2a + #xec1619fe + #xb9aba9be + #x16efc9c2 + #xdab4cd04 + #xf3153319 + #x40462e01 + #x4d4d3631 + #xf1edfe2a + #x82e23f8 + #xa994a2ce + #x1d8c5c2 + #xccd5fd13 + #xf71c23f6 + #x515228f7 + #x58432731 + #xdfd5f736 + #x204123e6 + #x9688a4de + #xead0c7b9 + #xd8041a0c + #xc1a04d8 + #x594719fe + #x58311e3c + #xc2c50147 + #x384e10c3 + #x8d84a7ed + #xdecec5ad + #xf62420fd + #x2008dfd1 + #x4e2f161a + #x48212548 + #xa9ca194f + #x4d48f0a6 + #x8780ab02 + #xd7cac2aa + #x123119f1 + #x23eac9dc + #x33232c3f + #x33233241 + #xb0e62843 + #x5631d8a6 + #x8080bc1d + #xd1cac6ad + #x202c0fe9 + #x17d3c3ec + #x1a2b5155 + #x2c2f3327 + #xd401252e + #x4716dbc9 + #x8080da31 + #xd0d1cda9 + #x212807e1 + #x8c9c7f4 + #x13477158 + #x33391e04 + #xf708101e + #x2c0ef3ec + #x809bf32a + #xd8dbc798 + #x2125fedb + #x1cacaf6 + #x23667f52 + #x3a2b00f3 + #xfaf60021 + #x191705f0 + #x80b5f712 + #xe5dbb587 + #x1e1ef7df + #x1c9caf3 + #x39777f4f + #x350fe9f8 + #xdfe5042c + #x1e23fdd1 + #x99c2e802 + #xe6c9a38d + #x1917f8ea + #x1c6c7f1 + #x48797f52 + #x20faec0e + #xccea172f + #x2713dfb8 + #xadc0e20b + #xd5b4a3a6 + #x161701ed + #xfec3c9f1 + #x4a757f55 + #xcfd001c + #xdc021e1d + #x16eacac6 + #xb4c2f41a + #xbeb0b7bb + #x1a2004df + #xf8c3cdf4 + #x41727f52 + #x910101c + #x7151007 + #xe5c5d4f0 + #xbbde1210 + #xb9c0c7c0 + #x2421f4c7 + #xf1c7d500 + #x3a717f47 + #x1924100f + #x2713fbfe + #xb4c0f417 + #xde0e17e3 + #xcad1c7c5 + #x270fdabf + #xedd1e812 + #x386b7035 + #x2c240204 + #x2805f40e + #x9dd81524 + #x1a31fbad + #xdccdc2e2 + #x15f0cccd + #xefe6051d + #x365d5623 + #x3617f301 + #x16fa0124 + #xa7f8211d + #x4e2bc78a + #xd7b9ce1a + #xf1dbdae5 + #xfb071e13 + #x32443615 + #x2f07ed07 + #xfdfd1532 + #xc00e1d0b + #x56029f88 + #xbeb5f64e + #xd5e1f4e9 + #x162723f6 + #x27231610 + #x20fef40f + #xec052432 + #xd81313fa + #x38d7949b + #xabd12b66 + #xd4fb00d3 + #x35360bd5 + #x10fdfd1a + #x15040512 + #xe50f2825 + #xe8120cf0 + #x19c3a0b2 + #xbe075660 + #xef10f1bb + #x4628e9cd + #xf1dff72e + #x12131208 + #xec122117 + #xed120bf0 + #x8c3aec0 + #xdb326d58 + #x819deb1 + #x4a12d3d4 + #xdad0fd3f + #x152017fd + #xf310170e + #xd1f07eb + #xfbc7b6d9 + #x233e4631 + #x11e4cbee + #x3e4f10e + #xd6f52e34 + #x1f15fce3 + #xfd0a161c + #x181bfce3 + #xefc0c1ed + #x91d372a + #x6efe4f6 + #xfbf2000a + #xee03231b + #x151002f5 + #x111814 + #x1b09ede2 + #xd9bfdd09 + #xe7042916 + #xa04f5ea + #xf9030b09 + #xa0a0e03 + #xd121412 + #xd151106 + #xbf1e3eb + #xc6d20216 + #xd6031bf4 + #x2714e3c7 + #xff0a1019 + #x1904fcfb + #x11222b2a + #x161102ff + #xf5e0e0ef + #xcdf5180e + #xdb00fcd6 + #x4003bcb1 + #xf6062240 + #x1c00f9f8 + #x22353f37 + #xd04fb06 + #xe6d8d6e3 + #xe60d15fc + #xe2eedfd2 + #x3bdb9db1 + #xe70d4662 + #x1f0afdeb + #x32434437 + #xfdfd0319 + #xddc8c6d6 + #xf60703ef + #xd6d9dce7 + #x19b998b6 + #xe2246a67 + #x2e1bfbd5 + #x3f464039 + #x7162d + #xceb5bfdf + #xedf2f6e7 + #xc7dcf2f5 + #xfdb198ad + #xf2467852 + #x4322ebcb + #x43403e46 + #x14182738 + #xbbb1cdf5 + #xd5e3efd9 + #xcef607eb + #xf5b291a3 + #xe556a3e + #x4d1ce2d8 + #x42394052 + #x20202d3c + #xb5c4e406 + #xc8dfe2c6 + #xef11ffd4 + #xf6ad8aaf + #x1c4a5534 + #x4312edf4 + #x3e394654 + #x1b1d2939 + #xc6e4f904 + #xc6d4cab9 + #x100de4c4 + #xeba198d5 + #x1235472e + #x381b0703 + #x3e404649 + #x12111f34 + #xe4020700 + #xc0bcb2bd + #x18f5cfc3 + #xd5a4bdff + #x32b441f + #x3c321cff + #x47443e3c + #xb001132 + #x41c1100 + #xafa3abcf + #x6dfcdc4 + #xc7c3ee14 + #x303700 + #x4e461df5 + #x54402e3b + #xfcea093e + #x1f3215f5 + #x9995afe3 + #xf2d6cfb9 + #xd2f11111 + #xe2b16e3 + #x594311f6 + #x57302443 + #xdbd80e4e + #x374207d5 + #x8a91b5f4 + #xe4d5cdaa + #xf2181902 + #x1d16f1d9 + #x55300b0e + #x491f2a50 + #xb8d82358 + #x4b3ee9b1 + #x838bbb09 + #xddd4c7a3 + #x152711f4 + #x1ff6d6e6 + #x3f221d2d + #x341f3850 + #xb1ee3550 + #x5724cda6 + #x8084ca24 + #xd8d1c6a3 + #x292907eb + #xedcd1fb + #x292a4340 + #x292b3c39 + #xcf093539 + #x4b07c7bf + #x808ae63c + #xd6d4cba0 + #x2e2602e4 + #xfbced809 + #x1f476542 + #x2e352a18 + #xf8112329 + #x32fbdde7 + #x80a3033e + #xdcddca92 + #x2d23f9dd + #xeecbdc09 + #x2e69773b + #x382b0a04 + #x403102a + #x2007f6f5 + #x80c00b27 + #xe9dfb880 + #x291cf1e0 + #xedcbdc07 + #x477f7b38 + #x3510f107 + #xeeee0d32 + #x2219f9e0 + #x94cffc12 + #xeed1a380 + #x2414f2ed + #xedc8db06 + #x5b7f7b3b + #x22f5ed19 + #xd5ed1935 + #x2e16e2c3 + #xa8cbed12 + #xe2bca096 + #x2012fcf5 + #xebc6db04 + #x5f7f7c3e + #xaeffc29 + #xdc002326 + #x26f5cbc7 + #xaec6f520 + #xcab4afae + #x201900e9 + #xe6c6db04 + #x5b7f7f3b + #x3020e2d + #x312190e + #xffcfceee + #xaed50e1d + #xbcbdc3b5 + #x291ff6d1 + #xe2c7dd0a + #x577f7f34 + #x12161427 + #x27110003 + #xcbc4ed19 + #xc7ff19f6 + #xc7cfc7b5 + #x2e14dfc3 + #xdfcbe916 + #x557f7729 + #x291d0a1d + #x2d00f410 + #xafdc0d29 + #xfd2300bf + #xd9cfc3cd + #x22f8cecd + #xdfdb0022 + #x5278631c + #x3512fb18 + #x15f5fd27 + #xb6fc1c1f + #x3524cf98 + #xd9c0cd04 + #x6e0d5e3 + #xebf8191f + #x4b624710 + #x3000f116 + #xfcf81437 + #xcf121809 + #x4affa18f + #xc1b8f442 + #xe9e0edea + #x41b2206 + #x3f40290b + #x20f6f419 + #xef072638 + #xe6160df6 + #x31cf8e9f + #xadce2962 + #xe0f6f9d5 + #x262e0ee4 + #x271b1115 + #x12f9001b + #xf4162e2d + #xf21206ee + #xbb596b4 + #xb6ff555c + #xf40dedb8 + #x3c27edd4 + #x6fb0a2a + #xe060b11 + #x21f2a1f + #xf91106ef + #xf9b8a8c4 + #xe2326749 + #x100dd1b4 + #x390ad8e2 + #xe6e7153f + #x15140eff + #xb1c2018 + #xfd150af5 + #xf5c4b4cd + #xa51663b + #x1f02bdc0 + #x2defd4f5 + #xd1e3234a + #x1d1c0bee + #xd161616 + #x1916fbef + #xeab8baeb + #x21343d24 + #xf9d5df06 + #xeeea0514 + #xe3102e15 + #x1401eedf + #xa111a1a + #x1c0af2ef + #xd9b8cefe + #x5243816 + #xfaeaeefa + #xf6fb0808 + #xf70e1805 + #xc04fdf3 + #x1516140e + #x12f7ebf9 + #xc6c7ee10 + #xee1928fa + #xd00eddf + #xa0809 + #x90602fa + #x8111611 + #x20150500 + #xfde7eb04 + #xc7e7090e + #xed150ad9 + #x26fdcec7 + #x4091025 + #xcfdf9fb + #x14252d21 + #x1806f600 + #xebdee6fb + #xde050dfe + #xf100e7cd + #x29ddb0c4 + #xf60d3149 + #xcfefaf3 + #x25373826 + #x2f7f90e + #xe1d3d7ea + #xf60c02f1 + #xe9e6d7da + #x10bba7cb + #xee255957 + #x1509f6e1 + #x343d3829 + #xf7f90921 + #xd2bfcae6 + #xf5fef9e9 + #xd5dbe5eb + #xefacaac6 + #xfb497048 + #x2a10e5d1 + #x3b393535 + #x2091c2e + #xbcb0cef7 + #xe3f1f3dd + #xcfebf6e6 + #xe1aaa2b6 + #x19636c31 + #x3b0ad6d7 + #x38343c48 + #x12192837 + #xafb7df09 + #xd5eae7c8 + #xe604f6d5 + #xe2a494b4 + #x2d605926 + #x3901d9ee + #x34344553 + #x191e2c37 + #xb8cff10c + #xd1e2d1b8 + #x60ae3c6 + #xdd9897d1 + #x2a4d4d25 + #x2d04f102 + #x3339494c + #x161a2833 + #xd3eafb0a + #xcdcdbaba + #x14f9d2c4 + #xca97b6f7 + #x193f481a + #x2c180902 + #x393f403d + #x110d1d31 + #xf200020a + #xbcb3afcb + #x6e3cec3 + #xbbb0e20e + #x103d3d01 + #x3c2e0df6 + #x45393138 + #x4fd1639 + #xa140502 + #xa3a0b4df + #xf1dbd1ba + #xc3db050e + #x193b22e5 + #x503402f2 + #x492c2640 + #xe1eb1a49 + #x2525fbe3 + #x909abcf5 + #xe5dacea8 + #xe3021101 + #x2428fedb + #x5125fa01 + #x3f1d2a4d + #xb8e62c53 + #x3f29e2ba + #x8797c60c + #xdfd9c49c + #xa160af3 + #x2106e2e9 + #x4118091a + #x2a1a3951 + #xabf53d4d + #x4c14c4a3 + #x8091d529 + #xddd3bf98 + #x241c01ea + #xde6db01 + #x2a202a2a + #x1d264141 + #xc40d4039 + #x44f3bab4 + #x8095ee41 + #xd9d5c093 + #x2d1afbe3 + #xf5d5e312 + #x223c4c2c + #x21303325 + #xef183028 + #x2ae2cadd + #x80a70945 + #xdbddc084 + #x2d19f5de + #xe5d2ed19 + #x2e5d5f22 + #x2c29150e + #x50e1c25 + #x14ebe6f5 + #x80c61531 + #xe7e2b480 + #x2911eddf + #xdfd3ef18 + #x4976611a + #x3010f910 + #xf5f91430 + #x1404f1e9 + #x94da0a1a + #xefd7a080 + #x2408ebea + #xdfd1ed15 + #x617f601a + #x1ef3f121 + #xd7f11d34 + #x240ce2cd + #xabd9f916 + #xe7c29588 + #x1d04f5f5 + #xdeceea11 + #x6c7f631d + #x5eafd34 + #xd3fb2628 + #x28f6cdc7 + #xb0cdf724 + #xd1b4a3a0 + #x1a0c00ef + #xdbcbe910 + #x6a7f671e + #xf6f30e3b + #xf30e1e10 + #xcd5cde9 + #xabd30a26 + #xc0bbb7aa + #x2215f9d9 + #xd7cae911 + #x667f6819 + #x1061437 + #x160e0801 + #xddc6e514 + #xb7f11909 + #xc3cbbfa6 + #x2a11e5c7 + #xd3caee1c + #x677f6412 + #x18110e2e + #x1afdf609 + #xbcd60428 + #xe11205d3 + #xd5d1bab2 + #x26fad1ca + #xd2d2fe29 + #x687f5909 + #x280d0229 + #x2edfa20 + #xbef5111a + #x1618d6a8 + #xd7c4c2e3 + #xedfd1db + #xdae91529 + #x61724500 + #x26fefa26 + #xe7ef1033 + #xd60c0e02 + #x35f7a69b + #xc4bbe626 + #xf2dae3e6 + #xef091e14 + #x55572dfb + #x16f1f928 + #xe2002537 + #xee1004f3 + #x29c88da8 + #xaecb2054 + #xe7eef3d5 + #x112010f3 + #x3f351804 + #x6ee0126 + #xf214302c + #xfa0afef2 + #x4aa90bc + #xb2f95154 + #xf304e9b6 + #x2c1ef1df + #x1d14101a + #x1f6091d + #xc202d1e + #xfd06fef9 + #xe7a79fcb + #xd630643b + #xc05cdaa + #x3106d9e6 + #xf9fe1a35 + #x6020a08 + #x1d212216 + #x20c02fe + #xe2b4abd3 + #x8505c26 + #x16efbbc2 + #x1debdbfe + #xdffa2d3f + #x120901ef + #x1d1a1a19 + #x81405fe + #xebbfb0d6 + #x29574f1e + #x12d9b8e2 + #x8ddea11 + #xd6003b3c + #x1a09f7df + #x1512181e + #x210cf9fe + #xd5afcb06 + #x20394016 + #xe7defa10 + #xf1fe120a + #xfe2621fd + #x5f9eee3 + #x1a202116 + #x19fef708 + #xc7bae211 + #xe353500 + #xfaf3f6f7 + #xfe080a08 + #x8190dfa + #x40502fa + #x251d120a + #x8f1f914 + #xc4d7fe15 + #x52d1ce1 + #x12fde3de + #xa0a0915 + #xa08fefe + #xc1a1c11 + #x210e0001 + #xf3eafa11 + #xd9f90a08 + #x81af5ce + #x1de6c6d6 + #x60c2135 + #x500fe01 + #x1e2e2e19 + #xafbf909 + #xe7e2effd + #xf50904f7 + #xfaddd6 + #x9c4bade + #x214b49 + #x904fbf3 + #x303b331c + #xf5f5041c + #xdbd1deed + #x5faee + #xe9e5dee9 + #xe9b2bede + #x9486a41 + #x1808ebe2 + #x393b3325 + #xf300162c + #xc6bed7f3 + #xf6fbf7e3 + #xdaeaefee + #xd5afbbce + #x296b6c29 + #x2a01d6e1 + #x38373838 + #x5122634 + #xb2b8e204 + #xe9f6efcf + #xe5fef2df + #xd2a8aac2 + #x44735c1a + #x2df5d2f6 + #x31374749 + #x12212e34 + #xafc7f20e + #xe2eedabb + #x108e5cf + #xce9aa2d1 + #x4864501a + #x25f3e50c + #x2e3d504d + #x19243030 + #xc2ddfd10 + #xdedbc2b6 + #x14fed5cb + #xbf91b4f5 + #x38554f15 + #x2004fd11 + #x34434c40 + #x161d292e + #xdff10211 + #xcfc0b4c7 + #xdebd1cd + #xafa4de10 + #x2c504701 + #x2d1c0505 + #x40413c37 + #x8102235 + #xf9020408 + #xb6acbadf + #xf9e1d3c4 + #xb4cb0414 + #x2e4d2ee5 + #x4528fdfe + #x4534303d + #xe6002544 + #x1011fbe9 + #x9fa4c6f5 + #xebe1cfb0 + #xd5f71206 + #x373d0ada + #x5021f306 + #x3b24314f + #xbef9354f + #x2a16e3bb + #x93a3d10d + #xe7dfc39f + #xfe110ef9 + #x311cf1e7 + #x4815fd18 + #x261e4059 + #xae02474b + #x3d08c69e + #x8ba2e12a + #xe6d9b794 + #x1a1605ef + #x1af7e904 + #x33181925 + #x19284b50 + #xc6184c39 + #x39e9b6aa + #x80a3f945 + #xe2d6b48c + #x2615feea + #xfde2f219 + #x29313924 + #x1c344337 + #xf3253f26 + #x20d2c2d3 + #x80b4164c + #xe2ddb480 + #x2914f9e5 + #xe7de0024 + #x34544b18 + #x29302521 + #x10202924 + #x6d6dbf3 + #x80d1283c + #xe9e1ab80 + #x290ef1e2 + #xdfe10628 + #x506f4d0c + #x2e1a091d + #x40d1e2c + #x2eeedee + #x9ae92124 + #xf2d99780 + #x2504edeb + #xdee10526 + #x6b7a4b08 + #x21fefd2c + #xe2002535 + #x12fee5d2 + #xb2e90a19 + #xeec48b80 + #x1dfdf5f7 + #xdddd0224 + #x787c4c09 + #x6ee0540 + #xd606302c + #x20f5d2c6 + #xbadb0122 + #xdbb49498 + #x160401f7 + #xdada001e + #x7a7e5109 + #xf3f2154c + #xeb152a14 + #x10d9cddf + #xb3d70e2e + #xc7b8aba6 + #x1a1002e5 + #xd6d7fb1a + #x787f5408 + #xf602204c + #xd161400 + #xe9c8e209 + #xb4ed1e1c + #xc6c8b7a2 + #x2611efcf + #xd3d6fd22 + #x7b7f5302 + #xa101d47 + #x1005fe01 + #xc6d5001e + #xd30a14ed + #xd5d2b3a6 + #x2a00dacd + #xcfd90930 + #x7f7f4bfb + #x1d0e1243 + #xf2f1fd16 + #xc3f21012 + #x412e6be + #xdbc7b2ca + #x19e6d3da + #xd2e71c37 + #x7f7f3df2 + #x1e020a41 + #xd2ed112c + #xda090df7 + #x25f6b3ac + #xcdbcd109 + #xfddbe2e5 + #xe2012625 + #x766c2dee + #x11f50840 + #xcffd2933 + #xf50d01ea + #x21c895b7 + #xb7cd0e40 + #xeaeaf2d7 + #x1191a05 + #x5f501df7 + #x1ef0a3c + #xea15382c + #x105fbf1 + #xfea494cd + #xb4fd4d50 + #xf302edb8 + #x211dfeeb + #x3f301510 + #xf7f21031 + #xd25371e + #x1010004 + #xde9ca0d9 + #xd2336739 + #xc05d1a7 + #x2d08e3ef + #x18161d2d + #xfafb111c + #x24292c15 + #x2050611 + #xd2a6acde + #x2575c1c + #x18eeb7b7 + #x20eae106 + #xf910313f + #x60408fe + #x28242215 + #xc0e0810 + #xd9afb3e5 + #x2a5b4b12 + #xad2bce2 + #x4dff319 + #xea183d35 + #x1002f7e6 + #x1e1c201d + #x18140508 + #xe2b3b7ed + #x3c544116 + #xf7c3d106 + #xf1e30920 + #xea203d20 + #x11fdebd9 + #x15192422 + #x18fcf90c + #xb7ace41a + #x22433afb + #xe3f00007 + #xfc0c0cf4 + #x13260cf3 + #xf7f7edef + #x22241a04 + #xaf4ff17 + #xb8c4f717 + #x1f3f23e3 + #xfcf8eff4 + #x6070603 + #xe1202fc + #xff0802ff + #x1f1708fd + #xf7f0041a + #xc8e5060c + #x1c2e00cd + #x10efd5e7 + #x804101e + #x3fffc06 + #x121f170a + #xc00f900 + #xebefff07 + #xe8fc03fb + #x140be0d1 + #x4cfc7ec + #x3133436 + #xfffdff02 + #x262e220b + #xf1f1fc10 + #xe1e3eff0 + #xfc00fbf0 + #xfcecd8e5 + #xe4b9ccef + #xb375632 + #x802f4f1 + #x32332410 + #xe8f50c23 + #xd0cfe0e9 + #xfcfbf7e5 + #xe4e4e4f1 + #xcbb7cfe1 + #x28605f1a + #x17fbddec + #x34332a20 + #xf4071e2e + #xb8c1e3f7 + #xf3f8f0d3 + #xe4f3edeb + #xc5b4c0cf + #x4c735207 + #x1be8d0fd + #x30343a36 + #x818282f + #xabc5ef04 + #xedf4dfbb + #xfbffe4dc + #xc1a4b0d1 + #x5b6c4603 + #x13dfdb17 + #x2c3c4a3f + #x16232c2b + #xb3d4fb0c + #xe9e4c5af + #xff9d4d4 + #xb494b5ed + #x525f4403 + #xeecf323 + #x2f444c3a + #x1b242a27 + #xc9e5000c + #xdcc9b5b8 + #xce8cdd4 + #xa19cd70b + #x435a43f3 + #x1804ff18 + #x3a44402f + #x101c242b + #xe0f40203 + #xc3b1b8cf + #xfbdfd0cf + #xa4bffb12 + #x405830d9 + #x2f14f90c + #x3f3a3333 + #xf40f2637 + #xf802fbe7 + #xaba8c5e8 + #xeddfcfbc + #xbfe90f07 + #x464b0fcc + #x3f10f00f + #x372a3044 + #xd1063344 + #x1007e5bb + #x9ba9d502 + #xecdfc0a5 + #xe8080cf9 + #x432cf3d8 + #x3c06f51f + #x231e3c54 + #xc30e4644 + #x26f9c79c + #x93abe71f + #xebd9b195 + #xa1204f1 + #x2c08ebf5 + #x2c070c2b + #x13234852 + #xd8204c33 + #x27ddb1a0 + #x89afff3c + #xe7d1a98c + #x1a10fcec + #xaedf712 + #x231c2826 + #x1630473f + #x6324220 + #x12c4b5c8 + #x80bd1f48 + #xe3d3a780 + #x1c0bf7e7 + #xede80822 + #x2e3e3713 + #x2434322a + #x23302c1b + #xf5c3cfeb + #x83d9343b + #xe8d59c80 + #x1e06f0e5 + #xe1ec1328 + #x4b5a3702 + #x2c231623 + #x181e1f23 + #xecd8e3ed + #x99f43222 + #xf0d08880 + #x1cfdebeb + #xdfef142b + #x686732f8 + #x22070733 + #xf70c222b + #xfbede1d3 + #xb5f81b13 + #xf1bc8080 + #x16f7f0f8 + #xdfec142b + #x786c30f7 + #x7f30c47 + #xe10e2c26 + #xbebd1c1 + #xc0e90b1a + #xe0a98191 + #xff9fcfb + #xdbe91324 + #x7f6f36f7 + #xf0f11b57 + #xf01a2c10 + #x8d7c9d1 + #xb9dd1027 + #xcca998a1 + #x100702ec + #xd8e70f1f + #x7f763bf5 + #xebfd275b + #xc1f1afb + #xe9c7d9f5 + #xb4e92220 + #xc7bcab9f + #x1b0ef4d5 + #xd3e10a1f + #x7f7b3af3 + #xfb0b2858 + #x120f00f4 + #xcbd0f408 + #xc8041ffb + #xd1c8a89d + #x2302dfcd + #xcde00f2b + #x7f7c36ec + #xf0f2357 + #xf3f7f806 + #xc3ec04f9 + #xf110f8cd + #xdcc3a1b5 + #x1aebd4d8 + #xcce81e34 + #x7f772be4 + #x16071b58 + #xcdeb0a1e + #xd80302dc + #x14f8c3b5 + #xd4b5b5ed + #xffdcdde4 + #xd5fd2b2b + #x7f6b1fdf + #xcf91758 + #xc5f7232a + #xf108f7d0 + #x13c9a0bd + #xbdc1f026 + #xebe5ecd9 + #xf014260f + #x775713e5 + #xfbf01754 + #xe1103423 + #xff00f3e0 + #xf3a19bd4 + #xb5f0343c + #xecf9e9bc + #x101b0bf3 + #x5a3b0bfc + #xf0f01a4a + #x7263616 + #xfdf9f9fb + #xcd93a8e1 + #xcf2b5a2b + #x302cda5 + #x2308eff0 + #x3422141f + #xf0f81833 + #x202e2c0b + #xfbfd0410 + #xbd99b4e5 + #xff54540c + #x13ecb1af + #x1aece706 + #x121a2a36 + #xf8ff0e13 + #x242a2208 + #x2070b17 + #xc0a1b9e7 + #x2f5f40fd + #xaccadd7 + #xdcf51b + #x233e33 + #xfcf3 + #x1c231f0e + #xf0c070f + #xc7a4bff4 + #x40563802 + #xecc0cb02 + #xede70c1a + #x2f3b18 + #x2f9ebe1 + #x14202314 + #x1a0a0006 + #xc9a4c703 + #x3c48380b + #xd7c7eb18 + #xe8fb1b0e + #x7362cfd + #xfdf1e1dc + #x14232716 + #xaf70519 + #xa4bc011e + #x344f2ad9 + #xf100fa06 + #x90efeeb + #x1c11fbfb + #xf6faf202 + #x29240af5 + #xfdf90c1c + #xb6d60914 + #x353d0dcb + #x2f5e601 + #x8050605 + #xc050008 + #x60c0206 + #x190efef9 + #xf2fa0c11 + #xd3f10902 + #x2c1ce9ca + #x5ddd500 + #x4082024 + #xfefd040c + #x1d201105 + #xfdf7f908 + #xebf6fdf6 + #xeffb00f3 + #x12f5d9df + #xeac6d602 + #x5284428 + #x100fefe + #x2d291505 + #xe9f3051c + #xdfe5eae6 + #xf9faf9eb + #xf3e3e1f2 + #xcec2ddf5 + #x21515111 + #xcfaebf6 + #x342d1c10 + #xee001629 + #xc8d2e5ed + #xf7faf3da + #xe7e9edf5 + #xc3c4d6e1 + #x496c47f7 + #x10e7da05 + #x33302924 + #x211222d + #xb4ceedfd + #xf6fae5c0 + #xf3f6eaeb + #xc3bbc2da + #x646c38f1 + #x5d7de22 + #x30393d31 + #x151e282a + #xb0d6fa0a + #xf5eecdac + #x8f5dde5 + #xb6a6bfed + #x666337ef + #xfadbf537 + #x34474930 + #x21252626 + #xbee3020e + #xe9d5b7ac + #xce7d3e2 + #xa0a0d509 + #x596039e6 + #x1f10635 + #x3d4c4426 + #x21242229 + #xd2ef0409 + #xd1bab6bf + #xfeddd5dd + #x9ab8f715 + #x54632cce + #x19060426 + #x43433728 + #x101a2233 + #xe6f9fdef + #xb6afc3d6 + #xf2dbd3ca + #xafe10c0a + #x57570ebe + #x2d06f722 + #x3b30313b + #xf6122e3f + #xfdfde9c8 + #xa3b2d5ee + #xefdec6b0 + #xd6000cfb + #x5439f2c6 + #x30fbf72c + #x29253c4f + #xe9164040 + #x12f3cbaa + #x9bb6e70d + #xf1d9b49c + #xf90c02f6 + #x4015eae3 + #x21f90a39 + #x1a294d53 + #xfa2a4b34 + #x19dab3ac + #x93bb012c + #xeecfaa91 + #xd0cfdf5 + #x1dfbf704 + #x180a2435 + #x19355044 + #x213c4120 + #x8bfb2d1 + #x8bcb243d + #xe7caa283 + #x1509f9f1 + #xfdf50d1a + #x2229301e + #x24393f2e + #x3f3f2c16 + #xe9b6c7f6 + #x8ce93f34 + #xe6c89580 + #x1804f2eb + #xebfa1c25 + #x3f442a04 + #x2e2e2429 + #x382d1d1d + #xdac7defb + #xa005401a + #xedc28180 + #x16fdebee + #xe9012129 + #x5f5321f3 + #x26151638 + #x161a1e28 + #xe3dfe2e3 + #xbe102a06 + #xefb08080 + #x11f5eef9 + #xe7022429 + #x73571cef + #xdfe1951 + #xfd152925 + #xfae6d3ca + #xce01150c + #xe29c8091 + #x9f7fb01 + #xe3002225 + #x7c5b1eee + #xf2f72664 + #x2202c11 + #xfed6c8d1 + #xc7ef151a + #xcd9a8ba6 + #x90404f6 + #xdffd1e1d + #x7f6122eb + #xeb01346b + #x19261cfa + #xe9c6d2ef + #xbcf2241d + #xc4aba0a4 + #x140cfae1 + #xddf7191c + #x7f6825ea + #xf60e396b + #x211902ef + #xcbcbeb05 + #xc4092801 + #xcfbca29c + #x1e05e5d3 + #xd6f21825 + #x7f6b22e6 + #x614376b + #x900f5f9 + #xc4e5fdf5 + #xe6150ad6 + #xdbbb9aab + #x1af1d7da + #xd1f62433 + #x7f681dde + #xe0d316e + #xe5effe0e + #xd7fef9d2 + #x601d6be + #xd6aca4d7 + #x5e1dae3 + #xd506342e + #x7f5f12d6 + #xa022e70 + #xd6f5181e + #xf305eac2 + #x9d3afc3 + #xc0b0d50d + #xede3e9de + #xe71a3416 + #x7f4d06d9 + #xfef92d6e + #xed0e2d20 + #x1fde5d2 + #xeaa7a7d9 + #xb7db1a29 + #xebf6e9c4 + #x5221efb + #x6b3800eb + #xf1f52a66 + #x10263312 + #xfef6eef2 + #xc294b4e9 + #xcf1d4b1d + #xfefed1ae + #x191400f3 + #x4d24060d + #xedfa2953 + #x28332904 + #xf6f9fe0d + #xab98c3ea + #x4514ffd + #xeeaafb0 + #x16f7f105 + #x2d1d1e29 + #xf2022134 + #x2c311dfd + #xf9040c16 + #xaba0c7e9 + #x38633bea + #x8c7a4d6 + #xfee3fd19 + #x1828392e + #xfa050d10 + #x252a1901 + #x60c0e12 + #xb2a2c7f1 + #x51592ceb + #xebb4bb05 + #xe9e9141c + #x14384019 + #xfdfdf5f5 + #x1d281d08 + #x110a080a + #xb0a2d204 + #x4b4d2df2 + #xd5c3e21d + #xe7fe1c06 + #x1d3c2cfe + #xf7f2e5ef + #x1d2a2106 + #x16040108 + #xaba4e215 + #x3d4734f2 + #xcedefe20 + #xf11018ef + #x253715ef + #xf2ede2f3 + #x24302201 + #xff1526 + #xa3da1316 + #x4d4e0ab7 + #xf8ee15 + #xc04f5f4 + #x13fdfb0a + #xfbfc12 + #x3316f7f1 + #xfc04151d + #xbdec0f07 + #x432feebb + #xe5e519 + #x3040c0c + #x3fc060c + #x120b0408 + #x1603f500 + #xf8060b04 + #xdef904f9 + #x2c04dace + #xf1d0e41a + #x172d1d + #xfc000b07 + #x251b0a00 + #xf5f4fd15 + #xf1f8f5ea + #xf0fbfbf0 + #x7e8dee8 + #xd5cbed0f + #x1540430c + #x400fcfc + #x2f210c06 + #xedfb0f26 + #xdee5e8e8 + #xf5fbf5e2 + #xeee6edf4 + #xc7d0e8f7 + #x3f613cf1 + #x8eee807 + #x31251915 + #xfc0b1e2d + #xc6d9eaf7 + #xf7fce9cb + #xedeef1f3 + #xc7ced7e5 + #x646829e2 + #xfcd7e626 + #x302f2c22 + #x111a252c + #xb9dbf507 + #xfcf5d0b1 + #xfdf0e8f0 + #xc0bbcbed + #x6d5e22e2 + #xecd3fc46 + #x343e3e22 + #x1e222429 + #xbde40013 + #xf5deb7a6 + #x3e5dff1 + #xaaadd706 + #x685d26da + #xeae5124d + #x3f4b4019 + #x2622202a + #xcbed0615 + #xdec1adae + #xfcdbdeec + #x9ab9f515 + #x656421c4 + #xfdf91642 + #x484a3719 + #x221d1e33 + #xdbf50307 + #xc0b2b8c3 + #xf0daddd9 + #xa5dd0c0f + #x696008b0 + #x16000a39 + #x43383029 + #x1516283f + #xf0f9f3e8 + #xaab4cada + #xedddd0bd + #xcafd0f02 + #x6644ecb4 + #x1df70642 + #x31293840 + #xa1b3942 + #x3f3d7cc + #xa1bcddf5 + #xf0d7bda5 + #xf00b06fb + #x531ee1d0 + #x13f0114b + #x20294b4b + #x162d4635 + #xbdabccb + #x9bc4f813 + #xedcbac97 + #x60afffb + #x3004eef4 + #x8fc2547 + #x1b385540 + #x34423f21 + #xfcbcb5e8 + #x94d51b29 + #xe5c1a18a + #xe06fcf9 + #xefd070e + #x1219312f + #x26434a2d + #x4e462a16 + #xdfaec70b + #x97f13b26 + #xe2bd9480 + #x1202f8f4 + #xfb071a1b + #x2f352c0f + #x303b3328 + #x4d371a1a + #xcab9df15 + #xaa12420e + #xe8b78080 + #x13fdf1f4 + #xf5112422 + #x4f431bf8 + #x2a242238 + #x2f221925 + #xd0d0e6ff + #xc8222ff8 + #xe9a38080 + #x11f7f1fc + #xf5132925 + #x66440fee + #x150b2553 + #x13192426 + #xe6dddbe2 + #xde1917f8 + #xdd8e8090 + #x7f5fc06 + #xf3152c21 + #x71440cec + #xfb02346b + #x12212915 + #xf5d3cce1 + #xda04130b + #xc68580a8 + #x30008fd + #xee122919 + #x774a11ea + #xed084375 + #x26291bfb + #xe8c3d0f9 + #xcbfd2215 + #xb89697ac + #xe0e04e9 + #xec0f2216 + #x7e5111e6 + #xf3154b7a + #x312003ed + #xccc3e60f + #xca0e2c03 + #xc1ac9fa1 + #x1b0cf1da + #xe5071e1e + #x7f5611e2 + #x31e4d7c + #x2007f0f3 + #xc1dbf804 + #xe42117dd + #xd5b196a5 + #x1df9dedd + #xde06262d + #x7f560edb + #xc1a4a7f + #xfcf0f404 + #xd3f4f5e2 + #x213e9c3 + #xd5a599c7 + #xae5dde8 + #xdb113730 + #x7f4f07d2 + #x811477f + #xe8f10a15 + #xf0fce2ca + #x6e6bfc4 + #xc0a1bdf7 + #xf1e2eae8 + #xe9243e1d + #x7e43f9cf + #xff07447f + #xf4072119 + #xf4d7d2 + #xe6b5b1d9 + #xb1c1fd15 + #xeaf3eed0 + #x3302c02 + #x6f31f1de + #xf404447a + #x1321280e + #xfdecdef0 + #xbc9dbdea + #xc403330e + #xfbfcd7b7 + #x1a260ff7 + #x5920f7fc + #xee06436c + #x2c312200 + #xf4f0f40e + #x9f9dceed + #xfb4243f0 + #xeeab4b5 + #x1a0afb03 + #x3f190e1a + #xee0b3b53 + #x353417f5 + #xf4fc071a + #x9da8d0e8 + #x375d30d6 + #x8c6a2d9 + #x3f10217 + #x29242d25 + #xf50c2833 + #x342d11f7 + #xff081119 + #xa2a9ceea + #x57561bd3 + #xe9acb40a + #xeaf1171b + #x25393e15 + #xf9040b15 + #x2f2912fc + #xc0c0e13 + #xa2a6d3fb + #x59481ad9 + #xccb1da2a + #xe4062506 + #x2c4331fc + #xf7f5f306 + #x2f2d17fd + #x11070a13 + #x9bace90f + #x4d4a22d6 + #xcbd3f92d + #xf41619ec + #x313515f0 + #xf1ece90a + #x373115f8 + #xeff0719 + #x96b8ff1b + #x465128cc + #xdbf30622 + #x41b06db + #x2f21fdf1 + #xeeecec0f + #x3f330ef0 + #x20c2336 + #xbbf9150a + #x5d38e1a5 + #xe4f334 + #x6fafa06 + #x1f9050f + #x5fb040f + #x2d01ecfb + #x40f171b + #xd1fd0a02 + #x4314d6b8 + #xf0d8f934 + #x9150f + #xfd020d06 + #x14060404 + #xaf7f70d + #x20801f9 + #xe8fefef9 + #x1bf0d6d5 + #xdad20129 + #xa2a2e09 + #x10809fe + #x22110400 + #xf0f60922 + #xf5f5ece8 + #xf0fbf6ef + #xf7e5e7ea + #xcddc010f + #x314e2eef + #x6fef704 + #x27170a0a + #xf5041b2b + #xdde4eaf2 + #xf7fdeedc + #xeeeef2f0 + #xcedfeff5 + #x5a5a1cdf + #xfde5f023 + #x2b1f1b15 + #x813232d + #xcbe0f304 + #xfef9d8c2 + #xf5f0f0f3 + #xced0dcef + #x6d520dda + #xe5d80248 + #x312f2d14 + #x171c252d + #xc7e7fe13 + #xfee5bcaf + #xfbe8eaf9 + #xbcbedf00 + #x6c4c0dd6 + #xdae11f5b + #x3a413208 + #x201e202d + #xceee081c + #xecc9a9ad + #xf5dfeaf9 + #xa6c0f60f + #x6c550cc2 + #xe5f62a57 + #x45452d02 + #x221a1e34 + #xd8f5091a + #xceb5abb7 + #xebddebea + #xa5dc0d0f + #x7359fbab + #xfe012252 + #x473c2911 + #x1c14233d + #xe7f90008 + #xb7b4bac9 + #xe8e1e0cb + #xc0fb1304 + #x7745dfa6 + #xcfa1a57 + #x392e2f2b + #x13183544 + #xf7f3e8f0 + #xabbecde1 + #xebddcab0 + #xe5090cfe + #x6622d2bf + #x6f32062 + #x272d4339 + #x172b413a + #xdfceea + #xa6c7e7fe + #xebd0b4a0 + #x90500 + #x4304dce4 + #xfbfa325d + #x1e395232 + #x2e3f3f25 + #xf3bfc300 + #xa2d80915 + #xe3c0a593 + #xa060400 + #x1efef702 + #x2133a41 + #x25484e23 + #x47452b14 + #xd6acd11e + #xa5f32a17 + #xdcb89784 + #xf0501f9 + #x9091013 + #x1c2d321e + #x31473c1f + #x4b391a17 + #xbfb1e82d + #xb8173802 + #xdcb08480 + #x1000faf5 + #x4171f1b + #x3d3a1f02 + #x31342b2e + #x36231723 + #xbfc9f51b + #xda2e2aeb + #xdf9e8080 + #xdfaf7fb + #x51f261f + #x53380df7 + #x1e1a2b4b + #x1b182027 + #xd4d6eafe + #xf22a13e5 + #xd2878097 + #x5f70104 + #x5222d1e + #x5e3205f3 + #x40d3c65 + #x141e2718 + #xe5d2d9f6 + #xf51508f6 + #xbb8080b0 + #xd00 + #x4252d15 + #x643204f2 + #xf3114e74 + #x23271e01 + #xe0c2d808 + #xe3081506 + #xa98593b7 + #x50c0deb + #x1222510 + #x6c3904ee + #xf51f5a7b + #x322205ee + #xcbbfe81c + #xd91426fe + #xaf9d9dac + #x1510fdd8 + #xfb1a1e15 + #x773f02e8 + #x295e7f + #x260aefec + #xbfd2fa1a + #xea261be1 + #xc3a895a8 + #x1c02ead8 + #xf2142326 + #x7e4100e1 + #xc2b5e7f + #x6f0ecfa + #xceecfbfb + #x522f5c6 + #xcda092be + #xfeee5e7 + #xec1a342e + #x7f40fbd8 + #xd255e7f + #xebebfe0c + #xeaf7e7df + #xcfacac6 + #xbe99ade8 + #xf6e5f0ec + #xf32a3f22 + #x7a36efd1 + #x61e5d7f + #xecfd1514 + #xfbecd4dc + #xf0c7bada + #xabade405 + #xebeff6da + #x8383408 + #x6d27e3d6 + #xfa1a5b7f + #x418230d + #xf9dfd5f3 + #xc2a9c3ee + #xb4e71800 + #xf9fbe3be + #x1e3518fa + #x5d18e4ef + #xf21a5a7c + #x1e2b1f01 + #xeedfe810 + #xa1a6d4f0 + #xe7272be1 + #xceec0b7 + #x221c0404 + #x4711fa0c + #xef1b566a + #x2f2e14f5 + #xecec0222 + #x9ab3d9e8 + #x294c1ec5 + #xacba8d5 + #xd010518 + #x341b1b1b + #xf31b474f + #x362a0af0 + #xf7fe1126 + #xa1b7d4e8 + #x554e09bc + #xeba9b30a + #xf2fb1b1e + #x2d343210 + #xf7112b31 + #x392508f3 + #x8091425 + #xa1b1d4f5 + #x5b4104c0 + #xc7a8da34 + #xea0d2909 + #x36452ef7 + #xf6000c1f + #x3a270af7 + #x10091125 + #x99b0e306 + #x523f09bf + #xbcc30140 + #xf6201fea + #x403f14ea + #xf0effb1f + #x432b0af6 + #xd04142d + #x96c2fd13 + #x50470ab4 + #xd1e40a36 + #xa1e02da + #x3622fef2 + #xefeafa23 + #x4c2a01ef + #x8011838 + #x9ad81117 + #x555005a8 + #xecf5042b + #x1510ecdd + #x2608f501 + #xf2ecfe22 + #x5023f6eb + #x8182b35 + #xd4070d05 + #x5912bba4 + #xedd80e54 + #xfafa0b11 + #xf5020f08 + #x40007fe + #x7ebf108 + #xd141211 + #xe3020404 + #x35fac4bd + #xdada1846 + #x2151e07 + #xfe0d0bfd + #xf0401fb + #xf0f00218 + #x504f7ee + #xeefdfbfe + #xae7d5d8 + #xcbe31b2a + #x213b25f0 + #x70dfefe + #x1a0a0101 + #xeafb1827 + #xf0edeaed + #xf4fbf2f0 + #xf2ebe8e7 + #xceeb0a07 + #x4e4c12db + #x1f7f51b + #x21120e0b + #xfd0e242b + #xdae3f0fe + #xfef8e0d4 + #xf1f1edf0 + #xd5e3f1f4 + #x694600d8 + #xeae30546 + #x28221f0a + #xf18272e + #xd0e5fb0e + #x2e8c1bb + #xf5eeedfb + #xcbd0e8f8 + #x6c3bfbd7 + #xd4e72765 + #x353527fa + #x181c2731 + #xd1ed0718 + #xf5cba7b1 + #xeee4f001 + #xb3caf704 + #x6b3ffbc7 + #xd7fe3f6b + #x444121ed + #x1a1a2538 + #xd7f40e1e + #xd8b19eb4 + #xe3e1f2f4 + #xa9dd0d05 + #x7546eeab + #xeb0d3f69 + #x493c1af5 + #x14142842 + #xe0fb0d17 + #xbda9a6be + #xe0e4ebd7 + #xbafa15fd + #x7e3cd39e + #xfd07346e + #x4131210e + #xa173446 + #xedf7fb04 + #xaeb0b7d0 + #xe7e5d5ba + #xdd0a11fa + #x751cbeae + #xfbfb3579 + #x2e2e3522 + #x828423e + #xf4e4e1f8 + #xabbdd0eb + #xe8d7bda7 + #xf80a0afd + #x55fec7d3 + #xf1004476 + #x243c481f + #x1b3c422b + #xeac6d407 + #xabcdf204 + #xe0c3a79a + #x50708fe + #x2ff5e3f4 + #xf2154f5c + #x274f4811 + #x3545311a + #xceaddd24 + #xaeeb180d + #xd5b4968c + #xa080af8 + #x17020008 + #xa2f4635 + #x3451390d + #x443b1c15 + #xb3adf437 + #xc3122bfa + #xd1aa8381 + #xd0804f1 + #xf141212 + #x2b392e15 + #x38412b1c + #x38271821 + #xabc1042c + #xe73122dd + #xd0998087 + #xb0100f5 + #x14211f18 + #x44341404 + #x2c2a2c3c + #x1e1a1f2a + #xbed5fd11 + #x73208d1 + #xc48080a0 + #x2fb07fd + #x17282818 + #x4e280501 + #x121b3e58 + #xf1c281f + #xd4d5eb01 + #xd1efbe0 + #xab8080bb + #xfb0014fb + #x182e2b12 + #x51220000 + #xfe1f546b + #x1a251f07 + #xd5c6e30d + #xfd0d04f4 + #x96808cc7 + #xe17e7 + #x172f250d + #x5624fdfa + #xfb2e6573 + #x28240af0 + #xc3bdf022 + #xeb1218f4 + #x978c9cbb + #xf1505d0 + #x14281c0f + #x622afbf5 + #x53c6c7c + #x240df0ea + #xb6ca0125 + #xf42718de + #xab9c94b0 + #x180af1ca + #xa1e1e1e + #x6e2ff8ee + #x113f6f7f + #x5f1e5f2 + #xc1e4040a + #xd2bfac6 + #xba978abb + #x11f5e8d8 + #x11e2c2a + #x7331f4e5 + #x143b727f + #xe4e4f201 + #xdef4f0e7 + #x1a0ad0c3 + #xb18c9ce1 + #xfbeaf2e5 + #x12e3c25 + #x732ce8db + #xf37737f + #xd7f10a0b + #xf2e8d8da + #x1d5bbd7 + #x9e9acb00 + #xedf1fbda + #x1241390e + #x6c1fdada + #x735757f + #xe50b1a0a + #xf1d5d1e8 + #xd0b0c4ee + #xa1cb00fd + #xf2fbeebd + #x2a4221fb + #x5e0fd5eb + #xfd35757f + #x1211c00 + #xe4cde105 + #xa7aad7f5 + #xd00e15da + #x5f4caae + #x322c0800 + #x4b05e80a + #xf735757f + #x1c2812f2 + #xdedafb1e + #x9ab7deed + #x143b0ab7 + #x7d1aeca + #x210f0715 + #x380e0a1b + #xf7346866 + #x2e2507eb + #xe8f0112c + #xa1bed7e7 + #x4b44f1a9 + #xebabb301 + #x2021b21 + #x31282514 + #xfb2b4e49 + #x351e00eb + #xfb011a32 + #xa4b9d3f0 + #x5b37e8ab + #xc19edb35 + #xf1112e0e + #x3b3f25fa + #xfb172c34 + #x381c00f0 + #x8081b37 + #x9cb4dd01 + #x5532eead + #xabb7074b + #xfd2725e8 + #x49410ee7 + #xf2001531 + #x3f2100f0 + #xb071e41 + #x93bef40f + #x5139f1a1 + #xbadb1b48 + #x122a07d3 + #x492bf7eb + #xebf20f38 + #x491ffaeb + #x707274e + #x9dda0a12 + #x5b3fe494 + #xdbed1541 + #x1b15f0db + #x2e0ef200 + #xedf11231 + #x4612eeeb + #x40b2e55 + #xaef4150f + #x683fd490 + #xf2eb0841 + #x17fde7f0 + #x12fbfa0e + #xf4f51224 + #x3902e5f1 + #xe1f1f0f + #xe7020407 + #x3ae7acb8 + #xd0e3305d + #xf40718fe + #xfa0e0bf7 + #x1fef1 + #xd2e6020c + #xb0e05f4 + #xeafb0107 + #x19e1c0c9 + #xcaee3041 + #xc2016ea + #x70efbf5 + #x700faf8 + #xdaf31115 + #xfef7eee6 + #xeef7fb00 + #xfbe4d6dc + #xcdfa2219 + #x35370ad7 + #x800f30a + #xe020001 + #xee051e1e + #xe9e6edf4 + #xf7f5edea + #xf3ede3e7 + #xdaf504fa + #x5733f4d3 + #xf4eb0036 + #x160f0e04 + #x5142222 + #xd9e4f502 + #xead2d0 + #xf3ede7f5 + #xd7e4f1f3 + #x5d26edd7 + #xdced235d + #x232215f4 + #xf182328 + #xd6ea000b + #xf8d0b5c0 + #xeee9f001 + #xc5d7f4f8 + #x5822eed0 + #xd502446a + #x332f0fe0 + #xf182630 + #xd9f1080f + #xe0b2a5bc + #xe3e9fafe + #xb5e104f8 + #x5f28e6b8 + #xe4184e6b + #x402f04dd + #xb152a3c + #xddfa0b0e + #xc2a2a2bf + #xddebf7e6 + #xbef80cf1 + #x6b23caa4 + #xf71b4a72 + #x3f2807f0 + #x163343 + #xe6fd0401 + #xb1a1aac8 + #xe3ebe1c6 + #xd90a0aed + #x6b0bb4a8 + #xf80f497f + #x30261b05 + #xfb233f3d + #xedeef1f4 + #xacacbedc + #xe7dfc5b1 + #xf30b05f1 + #x53eeb4c6 + #xed0c557f + #x23332f08 + #xb36402a + #xe3d2e3fb + #xaebedcf3 + #xe1c9aea5 + #x805f5 + #x32e6cde6 + #xea1c616e + #x264635fd + #x293f3218 + #xcab8e716 + #xb4d900fa + #xd3b89d9a + #x20a08f1 + #x19f1edfb + #xfd325a49 + #x354d2af7 + #x3f371c14 + #xacb4fd2f + #xc30015ea + #xccab8b8e + #x40a05ea + #x12070405 + #x1b3c3f26 + #x3d411e05 + #x3a25141f + #xa1c50e2d + #xe62011cd + #xc99d8093 + #x50701ea + #x1816120c + #x32322015 + #x362d1f23 + #x22161828 + #xacd90b16 + #xa2afabc + #xbc8480ac + #x10105f0 + #x1f221e11 + #x3a200b11 + #x20203040 + #xe162022 + #xc2ddf802 + #x1919e9c6 + #xa28080cc + #xfa020fed + #x222a230c + #x3a14010e + #xb264953 + #x111f1c0c + #xcacfed07 + #xe07eedc + #x89808edc + #xfa0e14da + #x252f1f05 + #x3c12fd0a + #x5365d5d + #x1f1f08f4 + #xbec3f419 + #xfa0701e3 + #x8680a1d5 + #x81908c2 + #x232a1605 + #x4314f805 + #xc446765 + #x200ff0e9 + #xaecc0520 + #xfa190ad3 + #x9895a0c3 + #x1614f1b8 + #x1b201514 + #x4e18f500 + #x194b6c71 + #x7f3e1ee + #xb4e30b0b + #xf23f4bc + #xac9594c6 + #x11fde4c6 + #xf1b2020 + #x5719f0f5 + #x1f4b747c + #xe0e0e7fb + #xcff4fae7 + #x1f0ed2b9 + #xaa8998e3 + #xfdebebd6 + #xb26321f + #x5e19e7ea + #x1b4a797f + #xcae6fa05 + #xe7eddfcd + #xfdfbecf + #x988dbe02 + #xebf1f8d3 + #x163a330e + #x5d11d7e4 + #x12497e7f + #xd3fb0a04 + #xead6d0d2 + #xe1b9c5e9 + #x95b4eb01 + #xf100f3b9 + #x2a4122fa + #x5300cfee + #xb497f7f + #xf0110ffb + #xdcc6d9ea + #xb5afd9f1 + #xb8f002e0 + #x1fdd5a7 + #x39320afa + #x3ff1da07 + #x74a7f7c + #xe1b0af1 + #xcfccf107 + #xa2bce3e9 + #xfa1ff7b6 + #x5dfb5b9 + #x2d16050c + #x2af7f81f + #x74b786a + #x221c00ea + #xd6e30a1e + #xa7c6dde0 + #x332cdfa2 + #xebb5b4f0 + #x1107181b + #x250f161c + #x8466451 + #x2c16f7e7 + #xe7f8182c + #xacc2d5e4 + #x4d20cda2 + #xc2a4d729 + #xfd112c0e + #x322d1c04 + #x733463d + #x2a12f3e9 + #xf8051f35 + #xa5b8d9f4 + #x4916d0a7 + #xa5b50847 + #x12828e7 + #x463708ed + #xfe192a37 + #x2911f3ea + #x107233f + #x98bbeb04 + #x461ed59d + #xabd9254a + #x192f0ac8 + #x4b26eeed + #xf107223f + #x2f11f0e6 + #x82c4d + #x9bd0000b + #x4e25ca8e + #xc8f12646 + #x261ceac8 + #x390ce900 + #xe900233f + #x2f08e9e3 + #x11354e + #xb4ee0b08 + #x5a1cb68b + #xdff01e4b + #x1900e7e1 + #x16fdf70f + #xed001f29 + #x18f5e4ea + #x21b3746 + #xcd020c05 + #x5d0ca894 + #xe6e41857 + #x5edf3fa + #xfefb0712 + #xf4011611 + #xfbe4e7f5 + #x151f09e2 + #xecfd090f + #x18ccb2cc + #xc6024c56 + #xff1c15dd + #xc13fded + #xfdfdf5f6 + #xc9f30d06 + #xa08f7df + #xecfa090c + #x5d5c4d6 + #xd00d3c33 + #x1f2905d2 + #xf05f2ff + #x2fcf700 + #xe502150c + #xf7f0efe9 + #xf0f9fdfd + #xf5e0d7e2 + #xe00d1c0a + #x422af0cc + #x2f2f726 + #x9030205 + #x121c13 + #xe3e9f3fa + #xf7efe6e5 + #xf5e7e0ef + #xe6fcfdf7 + #x4f19e5d6 + #xe7ed1d52 + #x151209f7 + #xc18201c + #xddecfa02 + #xf5d7c9d0 + #xf2e7ecff + #xd7e9f5f6 + #x490fe7d6 + #xda054668 + #x251f02df + #xc182526 + #xdcf20003 + #xe2bab4c9 + #xe9ecfd02 + #xc6e7fdf6 + #x4813e5c6 + #xe5205b69 + #x3320f3d2 + #x9192c33 + #xdff90502 + #xc4a3acc6 + #xe3f505f2 + #xc7f903ec + #x5512cdb0 + #xf92c5b70 + #x3919eddd + #x31c353f + #xe5ff03f7 + #xaf9aaac7 + #xe6f7f5d6 + #xdd0902e6 + #x59ffb2ac + #x285c7f + #x3018fdf2 + #x253f3f + #xeaf9f6ec + #xa69db2d2 + #xecead6bd + #xf60ffde9 + #x49e2a9bf + #xf622687f + #x262315fa + #xc334032 + #xe7e3eaf0 + #xa7a9c7e3 + #xe7d3bab0 + #x20cfff0 + #x29d5bddd + #xed2d7679 + #x28381ff2 + #x2d3f331f + #xd2caef0d + #xadc4e7ec + #xd9bda7a6 + #x50d05ef + #x13dfddf3 + #xfa407259 + #x364318ea + #x4b391d18 + #xb3c2032d + #xbded03e0 + #xcaad969c + #x61205e7 + #xcf5f7fd + #x16495938 + #x433b0cf5 + #x4c260f1f + #xa0d01635 + #xdf1205c3 + #xc39c819c + #x80f00e3 + #x13090805 + #x2c3d3523 + #x422a0c0f + #x3216122c + #xa6e51620 + #x622efac + #xb68380b3 + #x60800e6 + #x1d18130a + #x32261a1d + #x2f201f2c + #x18131a2a + #xbaea0608 + #x1d15daaf + #xa08080d7 + #x809e3 + #x25231c0a + #x2f130d1d + #x1a263b40 + #x131c1a18 + #xc4ddf603 + #x1800dac2 + #x83809af0 + #x130fd0 + #x2a2a1a03 + #x2a0c0819 + #x1238504b + #x221d0aff + #xbccff913 + #x3faeccd + #x8080b0ef + #xa1f03b6 + #x2c291200 + #x2d0a0216 + #x19495d52 + #x2810f3f2 + #xadd2081f + #xfd0cf7c6 + #x868fb2dd + #x191ceca7 + #x29200d0a + #x350afd15 + #x2553655b + #x13f6e2f3 + #xafe7100f + #xf1aecb2 + #x9c91a2d6 + #x1c09dcb0 + #x1c19181c + #x3d0cfa0d + #x2d566c66 + #xece2e2fd + #xc6f902e9 + #x200dcfac + #xa0849fec + #xaf6e0c4 + #x13222a20 + #x450af0ff + #x2c567673 + #xd0dfef08 + #xe0f5e5c7 + #x18e6bac0 + #x9183b908 + #xf5f3efc9 + #x19353210 + #x4905e0f3 + #x26597f7c + #xd2efff09 + #xe7ddcfc3 + #xefbfc2dd + #x89a2e50d + #xf202f0b3 + #x2d4223f9 + #x43f5d5f7 + #x205b7f7f + #xef050502 + #xd9c9d0d9 + #xc2b4d9ea + #xa4d7fded + #x206d7a0 + #x3d380df6 + #x33e3d90d + #x1c5b7f7b + #x131302f7 + #xc7c7e5f7 + #xa9c2e6e2 + #xdd05f2c0 + #xaefb9aa + #x381d0506 + #x1fe2ef25 + #x1d5f7f6e + #x2a16f9ef + #xc6d9ff12 + #xaacde0d3 + #x1912d2a3 + #xf6c3b0dc + #x1d0c1618 + #x16f60c28 + #x22637b58 + #x3012efec + #xd6f31223 + #xb2cad6d5 + #x3806bda2 + #xccaad019 + #x8132a0d + #x22161812 + #x22586043 + #x290ae7ec + #xea051d2c + #xadbfd7e3 + #x39fabca7 + #xa7b60342 + #x92a29e7 + #x3b2909f9 + #x183c423c + #x2006e6ec + #xf60a2533 + #x9fbde7f5 + #x36fdc0a0 + #xa3dc294b + #x1f350abf + #x4920f0f3 + #x5223346 + #x1d03e5e7 + #xf90f2f3d + #x9acdfaff + #x3f06b98f + #xbdfa3049 + #x2f23e7b4 + #x3d06e606 + #xf615334b + #x1cfde0e0 + #xfc193b42 + #xaae60602 + #x4d02a687 + #xd7002c50 + #x2603dac7 + #x1ff5f319 + #xf212303b + #xaefdce0 + #x3253930 + #xcaf90903 + #x4ced9996 + #xddf9325f + #x9f3ece3 + #x6fa0615 + #xf60f201c + #xe7e3e5ea + #xc2c3015 + #xe2020905 + #x42da97ac + #xd7f23b6b + #xf3f505f2 + #xfc050f08 + #xf90a0f02 + #xcaddf3f9 + #x1813f4d2 + #xea011114 + #xf5bfbcd4 + #xd829563d + #x1527fac2 + #x1505eef4 + #xfdf5f104 + #xeb040b00 + #x7fef1e1 + #xee020d08 + #xf1ccc8d9 + #xea263920 + #x2d21eac6 + #xaf2f214 + #xf8fa0a + #x10e1004 + #xf1eff1f5 + #xf4fbfbf4 + #xf1d9d8e7 + #xf5141304 + #x3f13ded1 + #xf2ea0e3d + #x8040202 + #x1015140d + #xe5eff7fe + #xf4e7dfdf + #xf1e1e8f7 + #xecfafbfb + #x3902e1db + #xe1fd3c59 + #x1710feeb + #xd171d1a + #xe4f2fafd + #xe2c8c8d4 + #xebeafd01 + #xdbeffaf8 + #x3302e4d2 + #xe8215a60 + #x2611ecd6 + #xa1b2729 + #xe4f7fbfa + #xc5afbccf + #xe7f70af5 + #xd5f7fbee + #x3a05d6c0 + #x3a6563 + #x2d08ded8 + #xd213136 + #xe7fbfdf7 + #xada0b5cc + #xec0002dc + #xe405f7e4 + #x43f8bbb6 + #xd3c666f + #x2702e5e8 + #x112a3c3c + #xecfbf7f1 + #xa09ab2ce + #xf2f8e8c2 + #xfa0bf2e5 + #x36dba9c2 + #x539707b + #x200af8f2 + #x1d344034 + #xececeef4 + #x9c9fbbd9 + #xf1e2cbb3 + #x70bf5ee + #x1bc8b3d9 + #xfb3f7f73 + #x211e07ec + #x393c3426 + #xdcd6ef10 + #xa0b2d4e1 + #xe1c9b8ab + #x80dfeef + #x4cccfee + #x1527f5a + #x302d04e4 + #x5639201d + #xbfce0434 + #xb0d8eed8 + #xcfb6a8a3 + #xa1100e8 + #xe2eaf8 + #x1a5d6f3f + #x412dfbec + #x5a2a1023 + #xa9d91843 + #xd1fef4bc + #xc3a395a3 + #xe11fde2 + #xafafb00 + #x33534d2d + #x4420fb04 + #x40181030 + #xabef1e31 + #xfa13e1a2 + #xb58984b8 + #x100dfbdf + #x150b0708 + #x37372e26 + #x34150b20 + #x1e111833 + #xbef81015 + #x150bc99f + #x9f808dde + #xb0d00db + #x2018110a + #x2b1e1e24 + #x211b2430 + #x13141a24 + #xcbef000a + #x18f5c3af + #x8380abfe + #x81504c9 + #x29231304 + #x21111824 + #x182e3d39 + #x2018100e + #xc5dcfd15 + #x5eed2bf + #x8080c502 + #x1323fbac + #x2e240bfe + #x1e0d1424 + #x20414d3d + #x2b10f8fe + #xb5d90823 + #xfdfbe2bb + #x8090c9f2 + #x2123e297 + #x2d1e0707 + #x200a0e26 + #x2d4f5643 + #x1df8e5fe + #xb0ea1118 + #x80ddea9 + #x8d99bce7 + #x270ece9c + #x26170e17 + #x26070b21 + #x39565d4d + #xfae1e108 + #xc3fe08f5 + #x1d08c5a0 + #x978db0f5 + #x18fad1b2 + #x1a1b2021 + #x2d070415 + #x3c5a6959 + #xd9d9ea11 + #xdffeecd1 + #x1be8b2b0 + #x8c83c010 + #x5f7e1bc + #x1a2e2d17 + #x3100f405 + #x375f7666 + #xd6e4f713 + #xebe7d1c3 + #xfbc5b6ce + #x8096e71a + #xfd04eaad + #x2b3f2602 + #x30f1e201 + #x33637f6f + #xeff7fe0e + #xdfccc9d5 + #xceb9cfe1 + #x90c60200 + #x70bd697 + #x3d390ef7 + #x23dede13 + #x31687f70 + #x1304fd05 + #xc9c5d9f7 + #xb0c5e2dc + #xc3f2f8cf + #x10f7b89d + #x3d210201 + #xed6ef2a + #x34707f66 + #x2b0bf500 + #xc0d2f214 + #xadd5e2cb + #xfd01d6ab + #x2cfacc8 + #x29100e14 + #x2e50b33 + #x39767f53 + #x330becfb + #xc9e80724 + #xb6d4d5c3 + #x1ef2b8a5 + #xd9b0c505 + #x11152610 + #xb02181e + #x3c72703f + #x2b04e4fa + #xdefd1429 + #xb5c8d1ce + #x24e2b3ab + #xb3b8f833 + #xe2b27eb + #x261a0d02 + #x335a5539 + #x1efddff8 + #xef0b202a + #xa8c0dce2 + #x21e1b8a8 + #xa8dc2644 + #x213a0dbf + #x3c18f7fa + #x203d4144 + #x17f8dff2 + #xf8142a30 + #x9fcceff1 + #x27eab396 + #xbc013746 + #x362be4a9 + #x3901eb0d + #xb29404f + #x13f2dbea + #xfb1e3633 + #xa9e2fdf5 + #x36e89f89 + #xd80e364c + #x300aceb5 + #x1eeff523 + #x1234047 + #x5e8d6e2 + #x42b3724 + #xc2f502f8 + #x3ad68f90 + #xe20a3c5d + #x14f1d6ce + #x5f10b26 + #x120332b + #xeadcd8e7 + #x11302701 + #xdbfe0501 + #x2ac292ab + #xd90a4c68 + #xfdf7efd6 + #x11110 + #x214170e + #xd2dfe8ef + #x1b2d14df + #xe800080a + #x15b59dc2 + #xcf105c66 + #xf20801d5 + #x50d0af7 + #x700fd + #xcceafaf8 + #x12ffe7e4 + #xf00e1310 + #xdebfc1d3 + #xfa414b1e + #x2815d1bc + #xbece708 + #xf6edf710 + #xf0bfff9 + #xfff6eff4 + #xf40b0800 + #xe4c8cadb + #x32c2c0e + #x2e06cecd + #xf6e6ff28 + #xfaf60009 + #x120e05ff + #xeff0f3ff + #xf6f9f1ec + #xe7d4dbea + #xf0b00 + #x2bf7d4de + #xe3f32a46 + #x60000f7 + #xe100e0b + #xeaf1f4fa + #xe9dbd8de + #xe4e0f3f7 + #xedf7fdf9 + #x1ff4dee0 + #xe71b504e + #x1505efe0 + #x9151b1b + #xe9f1f3f6 + #xcbbfcad8 + #xe4f306f3 + #xe1f4f9ef + #x21f9dad0 + #x3d604e + #x1cfcdbda + #xf1e282a + #xe9f1f3f9 + #xb1aec2d4 + #xec0508dd + #xe9fcf1e4 + #x2af3c5c4 + #x164a6657 + #x19f0d7e6 + #x1b2a3431 + #xecf1f3fc + #xa0a5b9d1 + #xf905f1c2 + #xfc00e9e6 + #x25dab2cb + #x18486f64 + #x12f1e6f4 + #x2a323a2f + #xefedef02 + #x989fb7d5 + #xf9f1d7b1 + #x800eced + #xec1b4de + #xe4d7c63 + #x1303f4f1 + #x3e3a3527 + #xe6def119 + #x95a6c4db + #xe9d8c4a6 + #xb03f4f1 + #xf4bcc7ef + #xf5c7f4e + #x2215f6e6 + #x5335241f + #xcdd5023d + #x9fc1dad5 + #xd4c2b59f + #xc0bfaea + #xedd0def9 + #x246c7635 + #x3518ece6 + #x51251224 + #xb5de184e + #xbce6e1bc + #xc4afa3a0 + #x100ef7e0 + #xf7e9efff + #x3a695c28 + #x3a0fe9f9 + #x35120e31 + #xb2f32240 + #xe6fdd1a0 + #xb59693b4 + #x150bf3da + #x8fcfa06 + #x40504124 + #x3108f612 + #x13091938 + #xc2ff1821 + #x8fab898 + #x9f8096d8 + #x1309f6d4 + #x1509050b + #x31323125 + #x1f0b0f24 + #x60e212e + #xd3f9060f + #x10e7aca5 + #x8180b1fd + #x1012f9c2 + #x1f150806 + #x21212828 + #x161c282a + #x1213181b + #xd3e90016 + #x3dbb8b7 + #x8080d10b + #x151cf0a5 + #x281b0500 + #x1616242b + #x1e32382b + #x210e030b + #xc1e10827 + #xf6e4cab7 + #x8098e0ff + #x251ed88a + #x2c18ff06 + #x15101f2e + #x2e44412c + #x19faef08 + #xb8ec1222 + #xfff7cba6 + #x80a5d5f0 + #x2e0cc189 + #x27100518 + #x160c1c2e + #x3b4e4a32 + #xfae1e610 + #xc5fd0b03 + #x12f9b89c + #x8f9cc5f7 + #x22f4bc9c + #x1b121524 + #x19091824 + #x4154543d + #xd8d4ec1b + #xe002f3dd + #x16e1a3a8 + #x898fcd0f + #xbedcdab + #x1924251c + #x1e050b13 + #x415c6348 + #xd0d8f71f + #xefefd7cb + #xfdc2a6c2 + #x8098ed1c + #xfcdba3 + #x28352209 + #x1ef9f90c + #x40637056 + #xe4e9ff1c + #xe6d3cad8 + #xd4b5beda + #x80be0909 + #xb09d38f + #x3b350ffd + #x13e6ed18 + #x3e6d7f5c + #x2f7fd15 + #xcec2d3f7 + #xb7c2d8d8 + #xa9e905dd + #x19fcb58d + #x4021ff05 + #xffd5f62f + #x43787f54 + #x16fdf60e + #xbec8e715 + #xb4d5dbc7 + #xe0f9e1b5 + #xfd7a5b2 + #x2f0f0616 + #xefdd0e3a + #x4a7f7f40 + #x1cfded0c + #xbfdbfc25 + #xbcd8ceb9 + #x6e9bba6 + #xeab5b9ed + #x19121c15 + #xf3f71f2c + #x517f722c + #x18f9e70c + #xd1ef0b28 + #xbecdc4be + #xcd1acac + #xbfb5ea1e + #x132a24f4 + #xc12190f + #x4d705927 + #x10f1e30c + #xe4ff1628 + #xb4c4cbd0 + #x6cab1ac + #xaed81b32 + #x243a0cc5 + #x25120002 + #x3b534835 + #xbeae006 + #xf30e2128 + #xa9cbdde1 + #x9d3b19f + #xbc023537 + #x382fe1a8 + #x2afdef0e + #x243b4747 + #x6e6dbfc + #xfc1c2b28 + #xacdeecea + #x16d59f8c + #xdb183a3e + #x380cc2ac + #x15e9f728 + #x15324a47 + #xfdddd4f1 + #x62b2f1e + #xbff0f4f0 + #x1fc78a8d + #xec184050 + #x1eedc2c4 + #xfdea0f31 + #x102e4331 + #xe9d4d1ed + #x15342502 + #xd5f9f9f7 + #x13b187a0 + #xe716515f + #x2ead7d1 + #xf6fc1c1f + #xf242a13 + #xd5d1d8f1 + #x212c0ce3 + #xe4ff0005 + #xf9a698bb + #xe0246257 + #xfdffe7cb + #x2080e02 + #x90f0b05 + #xdae1eaf7 + #x251ef7d1 + #xea030b10 + #xe4a6abca + #xde346946 + #x513eabe + #xe09f7ed + #xfaf702 + #xeff7f9f9 + #xaf6f309 + #x61b1512 + #xd7c4c6de + #x1f4b3e09 + #x33f6bdd7 + #xf6e0f82a + #xf5f30a15 + #x1907fcfc + #xfef6f80a + #x60f0401 + #xddcad2e9 + #x192f2704 + #x28ecc9e7 + #xe7ef1b3c + #xfbfc0a03 + #x10090403 + #xf5f5f906 + #xfbf5eff0 + #xe0dae9f5 + #x90f10fe + #x19e9dbf2 + #xe6124447 + #x703feec + #xc0f1210 + #xf2f2f5fe + #xe0d8dee9 + #xe3effef3 + #xf50106f5 + #x15f2e1e7 + #x13e593f + #x12fbe7e0 + #x131c221f + #xf0edf503 + #xc1c4d3e4 + #xef0706de + #xf300f9ea + #x1cf2d2da + #x21556144 + #x10eddbec + #x242a322a + #xefedf80d + #xaebacae0 + #x12f8c4 + #xfefeede9 + #x1ee0c1db + #x2f5e6b53 + #x7e6e1fc + #x3236392a + #xf0ecf816 + #xa3afc1de + #x907e1b2 + #x7f9eaf3 + #xac6beea + #x2a627d5b + #x6efef00 + #x3f3c3924 + #xeae3fb27 + #x9aa7c4e1 + #xfcefcda6 + #x9f9f3f9 + #xf0baccf9 + #x286e7f4a + #x1303f0f5 + #x4a3c2f21 + #xdade0942 + #x9ab4d0de + #xe6d8be9d + #xc01fbf5 + #xe3c4de00 + #x387f7d32 + #x280ce7ef + #x452f1f27 + #xc4e72155 + #xafd2dac9 + #xd2c4ae9b + #x130afbe7 + #xeadbec06 + #x507f6721 + #x3204e1fc + #x2a191933 + #xc0fb2d47 + #xd8ecccae + #xc0ab9eac + #x1b0cf5db + #xfbf0f60f + #x586e501c + #x2afced16 + #x70c213c + #xcd0a2725 + #xfeedb1a0 + #xa78f9ed2 + #x1b09f2d2 + #xa000316 + #x4a514121 + #x1c010427 + #xf60d2c38 + #xde071310 + #xdda9ea7 + #x8680b7fb + #x160ff3c0 + #x180d0a13 + #x333b3b2a + #x16121c2a + #x1132a28 + #xe0f60a15 + #x3c9a3b8 + #x808edd12 + #x1b18eca1 + #x2515090d + #x212d3630 + #x1c272c25 + #x13131819 + #xd2ed0f25 + #xf3cdb5bd + #x80abf50c + #x281bd585 + #x2d160410 + #x1b253336 + #x2d393322 + #x12040315 + #xc6f51927 + #xf6e1bdaf + #x80bdeffb + #x350ab880 + #x2c0f0721 + #x181f323b + #x3e473b24 + #xf6ecf61c + #xcd04160f + #xceaafa3 + #x91b8defc + #x2df0af8b + #x210f1632 + #x181c2f33 + #x4850442a + #xd5dbf928 + #xe60a01e7 + #x15da9ba9 + #x8fa7de13 + #x15e4bb9d + #x1c1c272f + #x18182424 + #x4b595033 + #xc4da0430 + #xf8fbe1d0 + #x3bb9ac3 + #x80a7f824 + #x4efcf9b + #x28322a19 + #x190c1019 + #x4d625f3f + #xd0e60c30 + #xf0ddcfd8 + #xddaeb1db + #x80c61315 + #xc01cc89 + #x3c361909 + #x13f80121 + #x5071704a + #xeaf50d2c + #xd8c7d2f2 + #xc0bacde0 + #x9ded15ed + #x1e00b580 + #x4527060d + #xe60336 + #x557f7f45 + #xfcfc0725 + #xc3c7e60d + #xbbd2dad0 + #xd201f2c3 + #x1ee0a09d + #x39120922 + #xe9e41844 + #x5c7f7f32 + #xfcfe21 + #xbed7fb1c + #xc7ddcfbd + #xf8f2c9b2 + #xfebdaed3 + #x24121c25 + #xe6f92c3b + #x677f711b + #xfef5f622 + #xc9e90c24 + #xcdd2beba + #xfed3b1b4 + #xd0b7dd07 + #x1c272a09 + #xfb132c22 + #x6b7f5c13 + #xfbedf228 + #xddf91625 + #xc3c6bec7 + #xf2c3afb5 + #xb7d7121f + #x2d3c16d8 + #x161b1513 + #x5f6e4b22 + #xf9e6f027 + #xef092125 + #xb7c6ccda + #xefc6b1a9 + #xc3043224 + #x4436ecb5 + #x2109001c + #x47554b3b + #xf6e1ec1c + #xfc1b2824 + #xb5d7dde6 + #xfccda698 + #xe3213e2c + #x4712c4b1 + #x13f00135 + #x32475544 + #xf0dae30c + #xc2a2d1e + #xc6e9e7ef + #x9c39194 + #xf827453f + #x30ecb8c6 + #xf9ef1942 + #x28455333 + #xe1d0db03 + #x1c362509 + #xdaf3edf9 + #x1ac86a1 + #xf9275850 + #xfe0c9d7 + #xf2032d35 + #x253e3e16 + #xd2cadb03 + #x2c3312ef + #xe7f9f507 + #xea9d8fb8 + #xf2356b4e + #x1efd8d5 + #xfc152515 + #x1e282106 + #xd0d3e606 + #x2c1ffce4 + #xf0040415 + #xd5a1a6ca + #xf94a6e38 + #xf03d7c9 + #xc0f0703 + #xd0c0a09 + #xeceaf303 + #x250defea + #xf810121b + #xcaaeb8d2 + #x75c6821 + #x220ccac1 + #x13feed01 + #xfcf80112 + #xa01fbfc + #x1f60114 + #x18180f0d + #xcfc0cbf3 + #x36492df9 + #x1fd1bef9 + #xdde4153f + #xf3001503 + #x4fcfcfc + #xfbf6fe0a + #xd060001 + #xd2cbdcfb + #x222d1ff8 + #x11d7d2fe + #xe206333e + #xfb0407ee + #x1010704 + #xf6f2f901 + #xf5ebeef8 + #xdae2f2f9 + #x7120ff2 + #x7e2e2f9 + #xf9334f36 + #x400f2e0 + #xa111712 + #xf2ebf604 + #xd6d7e5f2 + #xea00fee7 + #xfc0901ea + #xcebdfeb + #x20535330 + #x4eedfea + #x1f23261b + #xebe7f912 + #xc0cbdaea + #x112f5cb + #x1f2ea + #xfe0cfe7 + #x39605a3b + #xfce0df00 + #x3133311f + #xe8e80120 + #xb2becfe5 + #x110fe0b5 + #x3f6eaf5 + #x4cbcbf3 + #x416b6e47 + #xf5e2ea0d + #x3b3b3418 + #xe7e7042b + #xa4b2cbe5 + #xcfccea8 + #x3f0f200 + #xebbdd600 + #x417a7f41 + #xfceeee06 + #x3f3c2e14 + #xdae00d39 + #x9aafd1e4 + #xf8e7be9c + #x4f8f9fe + #xd9c0e407 + #x4a7f7929 + #xff9e5fe + #x3934251a + #xc9e82044 + #xa1c0d6d2 + #xe4d4af94 + #xc03fbee + #xd9cfee0a + #x5d7f6314 + #x1df6dd07 + #x22232028 + #xc3fc303b + #xc1d6c9b8 + #xcfbd9f9f + #x1707f5df + #xe8e4f612 + #x6c7f4f11 + #x1beee41f + #x3122834 + #xd20f2d1b + #xe8d9ada8 + #xb6a19ec3 + #x1a07f0d2 + #xfbf3031a + #x65694517 + #xfeef931 + #xf2113134 + #xe5111b03 + #xfec897ad + #x9390b5f0 + #x180af0be + #x9010d1d + #x4d533f20 + #xafe0f33 + #xf8173128 + #xeb030c04 + #xf8b397be + #x8097dd0d + #x1a11e8a1 + #x170c0f18 + #x36423c29 + #x14151d28 + #x918251b + #xddf60d15 + #xe8b2a7c4 + #x80b6fe0d + #x2614cf80 + #x230f0c1a + #x28373b33 + #x2529231f + #xa0f1218 + #xcff9171a + #xe5c3b2ba + #x83d10100 + #x3304af80 + #x260c0c29 + #x22313c3b + #x3637261a + #xf5f9041f + #xd2091a06 + #xf6d1a8aa + #x99d2f0fb + #x2eea9c80 + #x1f091a3c + #x1f2e3e37 + #x42412d1b + #xd2e5062d + #xe71107e4 + #x4c896ac + #x9cc1ea0d + #x17d7a58c + #x18152d3c + #x1d2b362b + #x4a4a3722 + #xc0e00f36 + #xfb06eac9 + #xfcad90c3 + #x8cbdfe22 + #x3ddba93 + #x22293328 + #x1d222320 + #x4d534429 + #xc3ea1839 + #xf9e8d2c8 + #xdc9ea5dd + #x83d11b1d + #x4f0be82 + #x37342314 + #x180c1123 + #x52635534 + #xd4f61a36 + #xdfcccfda + #xbea7c4e5 + #x99f51ff8 + #x17f5aa80 + #x44280d12 + #x6f60d37 + #x5b776834 + #xe4001734 + #xc4c6ddf2 + #xbac3d6d7 + #xc90901cf + #x20dd9488 + #x3b120723 + #xedf01f47 + #x687f6f25 + #xeafe0f33 + #xbbd1f301 + #xc9d4cfc3 + #xf0fcd4bd + #x7bd9cba + #x260c1d30 + #xe0003442 + #x767f630a + #xebf80634 + #xc1e20409 + #xd4cfbdb8 + #xf8dcb8bd + #xdcb3c8ed + #x1f202e1a + #xee17372e + #x7f7f4dfe + #xedee033b + #xd1f2110d + #xcec0b3be + #xe8c3b2c0 + #xbdcffe09 + #x2d3722eb + #xa202520 + #x7c7a3f0c + #xebe70341 + #xe4031a11 + #xbdbabdce + #xddc1b5b6 + #xc4fe250c + #x4536f6c1 + #x1a110d26 + #x68634125 + #xe5e2013b + #xf5152212 + #xb8c4ccdd + #xe4c6aca5 + #xe422330f + #x4d14c9b8 + #xff90c3f + #x4f574d34 + #xdcdcf82b + #x726230c + #xc4d7daea + #xf0be969c + #x1303c20 + #x39eab5c9 + #xf8f32050 + #x3f555228 + #xced1eb1a + #x1a3120fc + #xd7e5e2f8 + #xeda786a7 + #x7314f34 + #x15d2bedd + #xeb063744 + #x3952440d + #xbec8e714 + #x2b3311e8 + #xe7ebeb07 + #xd9948bbb + #x13e6539 + #xdccfdf + #xf61d3625 + #x314128fb + #xbac9eb14 + #x3125fedd + #xeef5f918 + #xc3949ecb + #x6536e26 + #x6edd1d6 + #x91f180c + #x202311fe + #xc9d9f511 + #x260ff5eb + #xfb070a1f + #xbda4b2d7 + #x1d65600c + #x1af2c3d4 + #xd06fe11 + #x9090c0c + #xe8edf907 + #x17fef303 + #xa18171d + #xc1b5bedf + #x33694dfc + #x29eab5dc + #x4edf322 + #xf8fb0d17 + #x3fbfbfc + #xfcfc0403 + #x180a0707 + #xc4bbd909 + #x3b3b18ea + #xf5bdd614 + #xd4fb3336 + #xf60c0ce5 + #xedf5fef8 + #xfbf6fcfb + #x6f9fe01 + #xcbcfe804 + #x222811e7 + #xf2cee209 + #xed203f29 + #xfc07f8df + #xf6010900 + #xf3edf6fc + #xe7e5f3fb + #xddedf6f2 + #x91503e2 + #xf6e0e7f8 + #x17454520 + #xfef6e4e4 + #xc151709 + #xe7e7f90d + #xccd9ebf2 + #xf804eed4 + #x307f2e4 + #xe0dcee + #x39554525 + #xf5e2dcfe + #x2326220c + #xdfe7031f + #xbecedfe7 + #xf07dabd + #xf6e8f3 + #xfbd1d6f3 + #x495e5230 + #xeadae712 + #x30312607 + #xdde80a28 + #xb3c0d4e0 + #x14f9c8b0 + #xf9eaed04 + #xe7c3ddfc + #x4d6f6630 + #xeae2f017 + #x34362303 + #xd9e81230 + #xa2b3d4e0 + #x6e8bda4 + #xf6edf807 + #xd2c4eb03 + #x557f681b + #xf5eaea11 + #x34331b03 + #xcfed1d31 + #x9cb6d7d7 + #xf3d9af96 + #xf9fbf9 + #xced1f507 + #x667f5304 + #x1e7e015 + #x26251811 + #xc9fc2926 + #xacc4ccc1 + #xe0c69e94 + #xd03f5e7 + #xd7ddfb0f + #x797d41fb + #x6dfe229 + #xf172020 + #xd612280d + #xcecbb2af + #xc9ac97af + #x1403ebd7 + #xe5e80418 + #x79713b03 + #xddf33f + #x142d26 + #xea181af8 + #xe4bb9ab0 + #xa799adda + #x1201e8c4 + #xf5f60f1b + #x665e390f + #xfbe80642 + #x11a301f + #xf50f0af5 + #xe2a496c1 + #x869ed6fe + #x1406dfa5 + #x403141b + #x4f50391b + #xfc1234 + #xc1f2614 + #xeafe0601 + #xd19ca4cc + #x80bbfb04 + #x1f09c880 + #x1109111d + #x3e453725 + #x11121526 + #xf17150f + #xdafc0d09 + #xcbaab0c3 + #x8cda06f9 + #x2dfba580 + #x1707122b + #x333e3b2e + #x2320171b + #x60a17 + #xd70712fb + #xd9baaab2 + #xa5e5fcf5 + #x29dd8b80 + #x14041d3e + #x2b3b3f30 + #x33291818 + #xe2f30a25 + #xe81206dc + #xebb596af + #xafd9f301 + #x12c68b85 + #xc0d313f + #x283b3e28 + #x3c301d18 + #xcbea1431 + #xfc0ceac0 + #xe79f8ec1 + #xa1ce0117 + #xfbc69f8e + #x1420392e + #x2633301d + #x4239261d + #xc6ee1d39 + #xfef2d1b8 + #xce8c9edc + #x93dc1b18 + #xf8d9aa83 + #x28302e17 + #x22201b1f + #x4a473425 + #xd1fb233b + #xe8d4c9c1 + #xb094beea + #x9ffc26fc + #xae49a80 + #x3b281712 + #x11071431 + #x525b4728 + #xe0042037 + #xccc6cfd4 + #xaaafd4df + #xc8110dd4 + #x17d48680 + #x36140d20 + #xf6fb2244 + #x6173521a + #xea041a37 + #xbbc9e2e2 + #xbbc8d1c6 + #xee07e2be + #x7b686a5 + #x22071b2e + #xe4043944 + #x747f4c01 + #xf0fe123e + #xbddaf3ed + #xcecbbeb6 + #xf8e5c1c1 + #xe0a8acd7 + #x15173123 + #xea1a3f31 + #x7f7f36ee + #xf2f50f49 + #xcbeb01f5 + #xcebdb2b6 + #xe7c6bac9 + #xc1c1e2f5 + #x23302df9 + #x3263023 + #x7f6f25f6 + #xf0ee0f52 + #xd7fc0af9 + #xbeb0b2c0 + #xd1bbbbc3 + #xc3f00cf8 + #x3f3606ce + #x151a1829 + #x7a5d260d + #xe7ea1253 + #xe80c11f9 + #xb3b5bece + #xcfbeb3b2 + #xe4181df3 + #x4d1ad6bd + #xf011444 + #x63533622 + #xd9e40c44 + #xfb1d14f3 + #xbac3ccdd + #xdabaa1a7 + #x42d25fe + #x3bebbacc + #xf6f62657 + #x5055421b + #xc9da0031 + #x112811e5 + #xcbd1d7ed + #xdca590ad + #x12343412 + #x14cbbde2 + #xe8063f4f + #x49573b04 + #xb8cff625 + #x232b06d2 + #xdad9e201 + #xcb908ebd + #x11414f1b + #xf5c9ccea + #xf320422e + #x444a22f2 + #xaccbf622 + #x2d23f6c8 + #xe2e2f215 + #xb5899ccb + #x14585d11 + #xf3d9cfe0 + #xa292911 + #x34300af3 + #xb0d2fc1f + #x2612edce + #xebf20420 + #xaa96add6 + #x286c55f9 + #x3ddc3dc + #x15170a0d + #x1b150404 + #xc6e20014 + #x1503f2e8 + #x106111d + #xb2a5bbe4 + #x416b3eea + #xdd2baeb + #x3f80420 + #x3060c0c + #xe0edfe03 + #x6f9fc00 + #x14141515 + #xbdb2c4f5 + #x4d602de5 + #xdc3b800 + #xebe40d34 + #xf503140a + #xeef3f9f8 + #x305ffee + #xe030806 + #xbcc6f216 + #x39320bdb + #xd3c7f421 + #xe61f431b + #x211f7d7 + #xebfd00f5 + #xfcfaf9f1 + #xfaf90303 + #xcdddf905 + #x252702da + #xe1d8f20e + #xa363e13 + #x303e8e3 + #xfd0b08fd + #xeceff902 + #xe0ecfcf9 + #xe9f7f5e9 + #x1314f2de + #xefe4ecfc + #x32493913 + #xfdeedefc + #x171c1102 + #xe0eb0319 + #xd0e4f1e9 + #x6ffe1cd + #x8ffe8ef + #xf5dde3f9 + #x494f3e1f + #xeee0e819 + #x2a2a17ff + #xdbef0e27 + #xc6d5e3e0 + #x13f4cdbf + #xfdecec06 + #xe8d2e8fd + #x525f4f22 + #xe4e0f527 + #x333017f9 + #xdaf2162c + #xb6c6dbdb + #xee6c1b6 + #xf2ebfa13 + #xd5d2f4ff + #x5f745813 + #xe8e6f928 + #x362f13f5 + #xd5f71f2f + #xa7c1dbd8 + #xdbb8a5 + #xf4f5000b + #xcddbfcfd + #x737f4ffc + #xf1e4f12d + #x362710ff + #xd302272a + #xa8c7d5ca + #xf2cda599 + #x200fcfa + #xd2e60005 + #x7f7f3ef1 + #xf2d8ef3d + #x2a1c140b + #xde112516 + #xbbc9bfbb + #xddb89aa2 + #x1003f2e9 + #xddec0813 + #x7f7133f4 + #xefd2fc51 + #x1b171f14 + #xf11c1700 + #xcfbba7b8 + #xbea2a8c7 + #x1100e9d7 + #xe9f5141c + #x7a6230ff + #xecda0d5a + #x141e2814 + #xff1608f9 + #xcfa29dc7 + #x9ca4cfec + #x1100deb8 + #xf5031b1e + #x6657300a + #xf2ee174e + #x1b24250e + #xfa080200 + #xbf96a8d3 + #x8ebef9fa + #x19ffc691 + #x50b1b1e + #x544f3316 + #xff00173b + #x1f21190a + #xeb000608 + #xb39db5cf + #x9ce30bef + #x25f2a080 + #x100b1928 + #x47493822 + #x100b132d + #x14130e10 + #xe3080d00 + #xbeadb1bf + #xb8f405e9 + #x25d78380 + #xe0a223b + #x3e474028 + #x1f131125 + #xff020e1e + #xee1305e6 + #xd0aea0b6 + #xc6eefcf2 + #x11b9808b + #x8103643 + #x38474125 + #x2c1b1121 + #xe8f9162d + #x210eec9 + #xd59c94c2 + #xbce30608 + #xf4b18e99 + #xb224433 + #x3844381b + #x35211621 + #xddfa2238 + #x8fcd3b9 + #xbf889fdd + #xaeeb1f0e + #xecc19a8f + #x1e333b1b + #x33352719 + #x3d2d2227 + #xe105283b + #xf9dec4be + #xa48bbcee + #xb3062dfa + #xfcd09480 + #x32322510 + #x251e1c28 + #x463e322a + #xf10e2a3d + #xdbcac9cc + #x9aa5d5e8 + #xd51e1bd5 + #xecc8080 + #x331e161e + #xa0b273e + #x54553e1f + #xff10253e + #xc6cad5dd + #xaac1d8d0 + #xf917f2be + #x6b180a2 + #x2210212f + #xf2103d46 + #x69683b08 + #x60a1e44 + #xc1d5e4e8 + #xc2ccc9be + #x3f5cfbe + #xe49f97cf + #x1316362a + #xf1224936 + #x7d6c28f1 + #x8001b51 + #xcae4eff1 + #xcac1b8b6 + #xefd2c6cc + #xc6b0c9ec + #x192f3806 + #x5303b24 + #x7f5f13ee + #xfa1e62 + #xd7f4faf4 + #xbfb3b1bb + #xd5c4cacf + #xc4dbf4ef + #x333819dd + #x17272525 + #x7f4e1000 + #xf4f72569 + #xe40500f1 + #xb1b0b8c4 + #xccc2c7c2 + #xe10806e8 + #x4724e8c9 + #x14111f40 + #x70461e13 + #xe4f52762 + #xf51303e8 + #xb1b8c2d2 + #xd2bfb6b3 + #x8220deb + #x3df7c7d5 + #xfd03335a + #x5f4a2f13 + #xd7ee1c4f + #xb1f02da + #xbec4cde3 + #xd3ada4b3 + #x1e2f1bfa + #x17d2c4ec + #xee114e57 + #x57522f02 + #xc9e30e3e + #x1e24f9c9 + #xcccddbfa + #xc6979dc1 + #x213d3205 + #xf2c7d3f7 + #xf52c5439 + #x544a19ee + #xb9d80836 + #x2a1febb8 + #xd3d7ee10 + #xad8ca8cd + #x255444fd + #xe4d0d8f2 + #xe383e17 + #x493302ee + #xb5da0a33 + #x2a13e1b8 + #xdde6021f + #xa093b6d7 + #x386b43e9 + #xf1d7cdec + #x1f2a1f0b + #x3219fc00 + #xc2e40b27 + #x1e05e3c9 + #xeefa1121 + #xa49fbfe1 + #x517030d8 + #xfacdc2f9 + #x160d1017 + #x160b0511 + #xd7ef0814 + #x1000f1e1 + #x60a1419 + #xaeabccf7 + #x5d601cd7 + #xf2bcc710 + #xf7fa1e28 + #x50b100a + #xe4f40002 + #x602fff1 + #x17111311 + #xb9b1d80b + #x5a4e13dd + #xe6b1d522 + #xdef73030 + #xfd1013f9 + #xe9f4fcf9 + #x601efe2 + #x1060e09 + #xb8da0910 + #x3a2dfbc8 + #xc8da0627 + #x83f3ef9 + #xb08e2da + #xfb08fef6 + #xf7f6f2f4 + #xf2010900 + #xd3ec01f9 + #x2d1fefd0 + #xdce4fb15 + #x254332fe + #x4f6e0f4 + #x111301fb + #xe7ef0011 + #xe4f900ee + #xf4f9eedd + #x1b08e5e5 + #xece5ef08 + #x43462f09 + #xf7e4e918 + #x2a2008fb + #xddf21028 + #xdaeeeedd + #xbf1d5cd + #x8f1e901 + #xe7ddef04 + #x50503e13 + #xe7dffb31 + #x35250bf6 + #xdcf91b32 + #xcbdce0d7 + #xbe0c6c3 + #xf6eafb16 + #xd8dcf600 + #x60664b09 + #xe0e40639 + #x3a2708ef + #xdcfe2335 + #xb6cddad2 + #x1d7beb4 + #xeff40918 + #xd0e5fef9 + #x777c47f6 + #xe5e50443 + #x3e2204f1 + #xda062a39 + #xaccdd5ca + #xf6ceae9f + #xf700080b + #xd3ef00f9 + #x7f7d35e5 + #xe9dd0351 + #x391a08fc + #xe2152a2f + #xb3cdc5bc + #xe7bb9d9a + #x401fcfc + #xdcf20606 + #x7f7228e7 + #xe5d30d65 + #x2c161306 + #xf61f1d1a + #xc0beaebc + #xcda69faf + #xdfcf1ea + #xe4fb1115 + #x7f6625f1 + #xddd71d74 + #x201d1f08 + #x61a0b0b + #xbea2a1ca + #xa9a1c0d3 + #xefbe5cd + #xef061f1d + #x7f5e27fb + #xdde72c6f + #x20252001 + #x60b000b + #xae90a7da + #x97bbece5 + #x16fbcda4 + #xfc112220 + #x6f562a03 + #xeaf72a5d + #x25251800 + #xf9010313 + #x9f94b6dc + #xa2e408df + #x22eea683 + #x8152028 + #x60512f10 + #xfc03224b + #x221a1006 + #xee040b10 + #xa4a4b6cb + #xc10008d3 + #x22ce8080 + #xb11283a + #x55513a1d + #xb061a3e + #x100b1013 + #xf41006fb + #xb6a9a6c0 + #xd700fcda + #xdab8090 + #x6163e44 + #x4c53431f + #x18091534 + #xfb011823 + #x410f1dd + #xc09a97c6 + #xd3f203ef + #xee9980a2 + #x82a4e39 + #x4b533e16 + #x220e1531 + #xee012332 + #x10fed5c8 + #xaf839ce0 + #xc3f61bfc + #xdda48f9f + #x1a3f491d + #x49472d13 + #x2a181b34 + #xef0b2d39 + #x3e0c1c6 + #x9280b8f2 + #xc3112fee + #xe7b88b8b + #x3143320e + #x3c312220 + #x34272a37 + #xfe15313c + #xe7c8c0d2 + #x8599d3f1 + #xdd2c25cb + #xfcb88085 + #x392f2016 + #x221d2a37 + #x433e352f + #xe1a2f3f + #xcdc1cae4 + #x95b9dcda + #x32afeb1 + #xfea180a1 + #x271a272d + #x41b3f43 + #x5b553716 + #x1a162a49 + #xc5cadaf2 + #xb1cbcdc3 + #x110bdcb3 + #xe28b82cd + #x151b3e2f + #xfc2c4e37 + #x775e25fb + #x180d285b + #xcadae5fb + #xc3c5bbb8 + #xfee4cdc3 + #xc094b1ee + #x18354613 + #xd3c4627 + #x7f550eef + #xb062d6f + #xd3e9eefc + #xbcb4afb8 + #xddcdd2cd + #xbbc0dff1 + #x31462ae7 + #x20392f23 + #x7f3f01fb + #xf9043a7c + #xe0f6f2f4 + #xaeabafbe + #xcbcad3c5 + #xdaf1f4e2 + #x4734f9d0 + #x20232739 + #x72350d0e + #xe904437c + #xf104f4e9 + #xa6acb4ca + #xcbc8c5b6 + #x410f7da + #x4308d3da + #x9153a56 + #x653c1f11 + #xdf013e6f + #x610f2da + #xaeb6beda + #xceb6afae + #x201dfee5 + #x1fdccdf4 + #xf41d5b5e + #x60492500 + #xd7f7315d + #x1a16ecca + #xbbc0cef2 + #xc09da6b8 + #x282c15f2 + #xf2c8d804 + #xf73a6844 + #x604713ec + #xcbea2251 + #x2815dfb8 + #xc5cbe20b + #xa78facc5 + #x31472cef + #xddcde003 + #x114c581f + #x5934fbe9 + #xc1e51d4c + #x2c0bd0ae + #xcddcfb1d + #x9592bbce + #x466332dc + #xe2d3d800 + #x2a443408 + #x4418f1fe + #xc8ec1d43 + #x2500d0b8 + #xddf10e25 + #x949dc3d7 + #x626f22c8 + #xeacbcd0b + #x28251d0d + #x2708fe15 + #xddf6182d + #x1afbdccd + #xf404161f + #x9da7cbe9 + #x74630ec1 + #xe4b9ce25 + #xd0d231b + #x11080d16 + #xecfb0d15 + #x10feeadd + #x80e1516 + #xa7b1df03 + #x6b4c03c6 + #xd0b4e437 + #xf10e371b + #x80e0dfe + #xeef90001 + #xe06f2e0 + #x130e1110 + #xacbbf416 + #x583a01cd + #xc0b9f93c + #xe41a4310 + #x61504e5 + #xecfbfbf9 + #x1f1e9f3 + #xfc0e130b + #xc7f60e00 + #x3b1de4bd + #xd2ec0c2d + #x2b471edf + #x8efd9f1 + #x1409f7fc + #xf1eef70b + #xf70b0bfb + #xe1f9fbee + #x2d0be1d1 + #xe1eb0121 + #x363e1bee + #xfbe4e70c + #x2510fbfc + #xe4f10c26 + #xf303f9e6 + #xfbf3e1de + #x16f6e6f1 + #xe7e7f916 + #x433e23fe + #xecdffc2b + #x301400f9 + #xe2fc1d33 + #xe9f3e4d9 + #xe1cfd6 + #xfcecf90e + #xdfe4fc09 + #x4f4f3300 + #xe1e6103b + #x331600f1 + #xe4042538 + #xd4dfd9d4 + #xf9d6c7c7 + #xeef31018 + #xd9ecfef9 + #x676535f1 + #xdfec1447 + #x3516fceb + #xe60b2b3d + #xc1d6d2cf + #xefd1bcb2 + #xf1011411 + #xdef6fcf1 + #x7f6c26e4 + #xe1e91658 + #x3211fbec + #xe9142d3b + #xbcd4c9c5 + #xebc4a8a2 + #xfe040c08 + #xe4f9fefb + #x7f6214e1 + #xdfe2206d + #x230c01f4 + #xf71e252d + #xc1c7b5c4 + #xd9b09fa8 + #x6fe01fc + #xe9fc090b + #x7f580ee4 + #xd7e4327f + #x14110cf7 + #x91d141b + #xbdada8d1 + #xbca5b0c1 + #x8f7f4e4 + #xee081816 + #x7f5513eb + #xd4ef427f + #x111d16f6 + #xc0c0613 + #xac97ade4 + #xa5b7d7d1 + #xcf6debd + #xfb16201b + #x7c5318f3 + #xdafc4377 + #x182114f1 + #x1fc0316 + #x9895baeb + #xacdff6cc + #x16ebb79a + #x61b2323 + #x6d4f2000 + #xe7033864 + #x1b1b0ef4 + #xf4fb0818 + #x97a2c1df + #xca01fcbd + #x16cc8f8f + #xb192b33 + #x624d280c + #xf6042b55 + #x13100b01 + #xf606090b + #xa7aab4d1 + #xe60bf3bf + #x3a480a0 + #x91d3e3e + #x5a4f3313 + #x304234a + #x3061310 + #x40bfbf3 + #xb29da4d4 + #xeb01f6d1 + #xe28d80b5 + #x92e5036 + #x5753330e + #xc041e42 + #xf3061e20 + #x10fcdfdc + #xa888a2e6 + #xde0009e2 + #xcc9093b8 + #x1945501e + #x574f290b + #x11091e40 + #xf10e2929 + #x6e1c9d6 + #x8d80b8f9 + #xd91620da + #xd1a497a7 + #x324d3a08 + #x4f3d1e14 + #x19132643 + #xfe19322d + #xeec7c4de + #x8093d4fb + #xee321dbc + #xe4a8839b + #x3b3d250b + #x3628212b + #x2626333d + #x10203232 + #xd4bccaef + #x88b4dfe7 + #xe36fea0 + #xeb9580ac + #x32252520 + #x1925383b + #x3e3b3326 + #x191e303d + #xc4c1d6fe + #xa7cad4cc + #x1e1bdaa0 + #xd78080d2 + #x1b213d2b + #xc334a35 + #x5b482306 + #x14163050 + #xc4cde203 + #xbfcac1bd + #x10f7cdb7 + #xba82a8f4 + #x16354b19 + #x14424320 + #x70450bf4 + #x4103868 + #xcfdce900 + #xc2bab2bc + #xefdfd6ca + #xafa7d4f9 + #x294a38f3 + #x26423018 + #x7433fbf9 + #xf310487c + #xdce9ecf6 + #xb5adb0c2 + #xd6d9dcc9 + #xc7d7ebe6 + #x454009d6 + #x2930252d + #x6425000b + #xe613557f + #xe9f1ebe7 + #xaaacb2cc + #xd1d7d2b8 + #xf3f9ebd6 + #x4518e2dc + #x1821364b + #x55250e10 + #xe1145875 + #xfbf9e9dc + #xaaafb7d9 + #xd1cabdad + #x1408e9d7 + #x28ebd7f7 + #x3295758 + #x52301401 + #xe1104f68 + #xc01e4d2 + #xb2b5c2ec + #xc4b2afaf + #x2110f7e1 + #xfbd4e60e + #x3456c45 + #x5a380bec + #xda044060 + #x1d03d9c4 + #xbabfd604 + #xada2b2ba + #x292610e1 + #xdfd4ef13 + #x195b5f1e + #x5a2bf6e7 + #xd1fb365d + #x23fbccb8 + #xc2cfef18 + #x9aa0bdc2 + #x3e471bd1 + #xdcdaeb11 + #x35583e01 + #x4811ebfb + #xd1fb3357 + #x20efc4b8 + #xcfe70823 + #x93a8c5ca + #x5f5a10ba + #xe2d2de1e + #x383d23fe + #x2b00f614 + #xe1012d43 + #x19ebcaca + #xe6fc1323 + #x9aafcad7 + #x7555feb2 + #xdcc1de36 + #x21212108 + #x14000b1e + #xf1031e29 + #x13eed7da + #xfb09141d + #xa0b5d7ee + #x7442f3b5 + #xcab5ef4d + #x41e3209 + #x909130b + #xf4000e11 + #xef6e1df + #x40c1316 + #xa5c4f103 + #x5f30efb8 + #xbcc1064f + #xfc2e38f9 + #x90e03f1 + #xf4fe0003 + #xefbe4de + #x80b1313 + #xa8d6080e + #x4b26f1ba + #xb7d41447 + #x33d35e6 + #xb0befdf + #xf901fbfb + #xf3e1f211 + #x4141205 + #xde02fff2 + #x3302ccbc + #xdef21134 + #x3c38fdd6 + #xfadee10a + #x22fff202 + #xe8ea0524 + #x40f02f2 + #xedf7eaeb + #x1ff3d6d6 + #xe1eb0a2b + #x3c340ae8 + #xeddef51e + #x2202f8fd + #xe3f81a33 + #x2eade + #xf5e5d6e5 + #x4eaeef8 + #xe1e80519 + #x413b1af3 + #xe0e50d31 + #x2104faf5 + #xe8052636 + #xeeead8d6 + #xeed6cedd + #xedf00c0c + #xdeed0402 + #x534d1fed + #xddf01c40 + #x1c05f8ea + #xeb0f2b38 + #xd8d9ced3 + #xe8d1c6c7 + #xeb021a0c + #xe3f5faf0 + #x6f5615e3 + #xdef32253 + #x1c05f3e5 + #xee152f39 + #xc9d3c7ce + #xe3c9b2b1 + #xf70a1705 + #xedf8f3f0 + #x7f5204e0 + #xdbf22e6d + #x1204f2e5 + #xf71c2b2e + #xc7c7b9cc + #xdbb79faa + #x2050d00 + #xeef8faff + #x7f46fbe3 + #xd4f23e7f + #x204fae5 + #x2191c19 + #xc1b1add4 + #xc4a7a2b6 + #x4ff04f0 + #xf0020c0d + #x7f40fbe3 + #xcefa507f + #xfd0c02e1 + #x80c0c0c + #xad98ade6 + #xadafbec1 + #x5faf0d0 + #xf8121a14 + #x794000e6 + #xd007567f + #x51507de + #xfb050d + #x9793bcf2 + #xadd3ddba + #xaf0ccaa + #x51c1f1a + #x724108f0 + #xd90d5079 + #x111504e0 + #xf3f70811 + #x909fc6eb + #xcbf8e6ac + #xad1a29c + #xd1e2727 + #x68411200 + #xe60c4168 + #xf0f02e8 + #xf0fb0a0c + #x9aa9bfdd + #xeb08dea5 + #xf8a786a9 + #xd213934 + #x60451e08 + #xf007345b + #x20805f7 + #xf80200fa + #xa9a0add8 + #xf802ddb6 + #xd68688c1 + #xc314e31 + #x5f4b2205 + #xf8052b50 + #xf3071104 + #x5faebe5 + #xa28ba9e6 + #xf002f0c9 + #xb9839acb + #x1a485217 + #x604b1c00 + #xfd05274d + #xee0d1e0f + #x2e1d4d9 + #x8b80b9fa + #xeb1408c9 + #xb493a0bf + #x33533efb + #x5b3e140c + #x20a2c4e + #xf8192715 + #xedc7c9e0 + #x808dd400 + #xfb310cad + #xc49c92b1 + #x454624f7 + #x462c1724 + #xc19364b + #xa212b19 + #xd1b7cef0 + #x80ade3f2 + #x1a3bf290 + #xd08d80bc + #x3c2f210a + #x2b242b38 + #x212c3836 + #x14222b22 + #xbeb7d8ff + #x98c6ded8 + #x2e26d08b + #xc38083de + #x2726331a + #x1a314038 + #x3e3b2917 + #xf1e2c38 + #xb9c1e102 + #xb6c9c9c3 + #x22ffbca0 + #xa780a5fd + #x1c36460f + #x1f464322 + #x56390dfd + #xfd173853 + #xbecbe5f7 + #xbfbab6ba + #xe3c4b9 + #x9a90d004 + #x2b4d3ced + #x2f482e14 + #x5b26f7fb + #xeb17496a + #xc9d6e5ea + #xb7aaafbf + #xe3ded3c4 + #xadc1e6ee + #x454d17d3 + #x34361c1f + #x5214f50c + #xe31e5f75 + #xd8dee5dd + #xaca5afc9 + #xd9e1d3ba + #xd8e3e5d8 + #x4b29eed4 + #x2422263e + #x43110014 + #xe6266872 + #xe8e8e1d4 + #xa7a7b4d4 + #xd9d9c3aa + #xfbf2ded3 + #x31f8e1f0 + #xf2b4b53 + #x40190705 + #xeb276367 + #xf8edddd0 + #xa9a9bae5 + #xd0c4b1a7 + #xdf7e5d8 + #x7dded0d + #xd496849 + #x4621fdf0 + #xea1f5660 + #x5eed4c7 + #xadadcbfa + #xb7b1afaf + #x1708f7d6 + #xe5dbfd1a + #x24676522 + #x4d1aeae6 + #xdd144e60 + #xfe8c7bc + #xb4bee50f + #xa0aab7b6 + #x2b2604c6 + #xdbe0fd1c + #x416a45ff + #x4107e0f7 + #xd80f4b5f + #x11debeb9 + #xc1d4fd1f + #x98b1bebc + #x493cfdb1 + #xdedbf326 + #x495224f3 + #x27f5eb12 + #xe00f454e + #xcd8bfc6 + #xd6ee0d22 + #x9cb6c1c6 + #x6840eba5 + #xd9c9f041 + #x36331af8 + #xdf50422 + #xee113634 + #x7d8c9d6 + #xedff1421 + #x9fb9ccd9 + #x6f31e0a5 + #xc7bc005b + #x1a2922f8 + #x2001217 + #xf20a1f1a + #x4e0d3de + #xfb05141c + #xa0c3e1f0 + #x6021dda9 + #xb6c31963 + #xd3329ea + #x40a0afd + #xf0000d0a + #x4e5d8e3 + #xff081519 + #xaad9fafd + #x4b17d9a9 + #xb7db2456 + #x17411fd3 + #x705f3ee + #xfaff0002 + #x2e5ddea + #xff0d1914 + #xb6ee0a00 + #x4012d6a7 + #xc3ed2448 + #x29460fc6 + #x7fae1eb + #xa02fafd + #xe8e90d2f + #x191e0ffc + #xf703f2fa + #x27e8bfcb + #xe6f92542 + #x4423f4e3 + #xf0dff727 + #x16f5f905 + #xe8f91b31 + #x1611faed + #xf7f0e6fc + #xde4dae6 + #xe3f5202f + #x402c06eb + #xe6e8082f + #xaf9fcfc + #xeb0b272d + #x8f7e1df + #xf0dedef7 + #xf4effe00 + #xe3f51612 + #x473b12ed + #xe1f71c39 + #x1fcfcef + #xf2172c2a + #xefdfd3dc + #xe4d5d8e6 + #xed051703 + #xe8fa05f7 + #x60470be6 + #xe403284c + #x300f4e3 + #xf720312c + #xdad3cbd8 + #xe3d2c6ce + #xf9141b00 + #xf2faf5ef + #x7744fce4 + #xe4063869 + #x3feeddf + #xfc273327 + #xd2c9c1d5 + #xdfc2aebd + #x51616fe + #xf7f7f2f9 + #x7f38f4e9 + #xdf084e7f + #xfafcedde + #x6272a14 + #xcbb6b5da + #xceaca2bd + #x60f12f9 + #xf7fc0106 + #x7c33f7eb + #xd812647f + #xf500f4da + #xa171705 + #xb5a0b5e9 + #xb5a5aebf + #x60a05de + #xfc0f1611 + #x7833faeb + #xd71c707f + #x10af7d3 + #x1030b03 + #x9a94c4f5 + #xaebfc6b6 + #xa01e4ba + #xa202217 + #x7536fcf0 + #xdc226c7f + #x1111f7d2 + #xf4f90b0b + #x8c9fd2f5 + #xc7e8d2a2 + #xae4b8a5 + #x16252a22 + #x703603fe + #xe620627f + #x170ff4d7 + #xef000f0b + #x93abd0e8 + #xeffecd98 + #xf7b698b3 + #x1728392d + #x69390f0a + #xef1b5575 + #xf0bf7e3 + #xf5060a00 + #xa0a7c1df + #x5fec6a2 + #xd28e94d0 + #x19384f2a + #x6640170a + #xf4164769 + #x10a00ef + #x101f7eb + #x9f94b6e9 + #x3fad5b6 + #xac80a5df + #x23515611 + #x6b471605 + #xf40f3d64 + #xfc110df9 + #x1ebe3de + #x8985c2fc + #xbefba + #x9d8eb0d8 + #x3d6044f0 + #x6b3e0d0b + #xf50f3d66 + #x31b1b00 + #xf0d0d5e1 + #x808cdc06 + #xd2af9a4 + #xa998a5cd + #x535828e3 + #x5a2d0f25 + #xfc194564 + #x14272203 + #xd3bdd5f2 + #x80a9effa + #x2c39e483 + #xb88e91d2 + #x513e1ef0 + #x3e252340 + #x112c4951 + #x202c220b + #xbcb8de00 + #x8cc6ebe1 + #x402ac280 + #xb1808fef + #x3b312d05 + #x2a313d44 + #x2d3b3b2f + #x1c282520 + #xb1bfe600 + #xacced8c7 + #x3905ac8e + #x9880ab0f + #x2a3d4401 + #x2c474431 + #x493b1e12 + #xb23313e + #xb6cbebf4 + #xbcc1c2bd + #x19e6b1ac + #x8583d317 + #x345642e4 + #x3e51341c + #x5328000b + #xfc23495d + #xbfd2e8e4 + #xb8aeb5bd + #xf9dec2bc + #x94b3ed03 + #x4e5d23c7 + #x49422222 + #x470ff519 + #xf92f646e + #xcbd5e3d7 + #xaba4b1c2 + #xe8e3cdb8 + #xbfdae9e6 + #x5a40fec7 + #x3b2d223e + #x38030023 + #x13d736c + #xd7daded3 + #xa4a4b5cd + #xe9e4c4ac + #xe8e8deda + #x440febe4 + #x22284056 + #x330b0819 + #xd447364 + #xe6e1dad3 + #xa4a4bcdc + #xe3d5b6a5 + #xfae8dcde + #x19eff506 + #x1b476251 + #x3b14fc00 + #xd426b5f + #xf4e3d5ce + #xa4a5c9ef + #xcebfaea9 + #x5f2e9dc + #xf4e90b17 + #x336e6b2f + #x420de8f2 + #x1396462 + #xfcdfcbc1 + #xa5b0df05 + #xb3b3b3ac + #x170ff5cb + #xe4f2121e + #x587c4e06 + #x39fad800 + #xf4316264 + #x1d7bfba + #xb0c7fa17 + #xa7b6b8b1 + #x3928f0b3 + #xe3f00b2c + #x66672af2 + #x22e8e11e + #xf42f5f58 + #xcebcc1 + #xc4e30f22 + #xa7bdbdba + #x5a2fdea2 + #xdedf0a47 + #x584716f2 + #xae9fe33 + #xfc2c513e + #xfacbc2d2 + #xdef71b23 + #xa9bdc4cd + #x6622cd9f + #xcbce1b66 + #x39341bf2 + #xfefc162d + #xfe233b22 + #xf7d0cbda + #xf0011e22 + #xa7c1d5e4 + #x5f14c9a0 + #xb6d23475 + #x283922e4 + #xb1416 + #xf716220f + #xf7d5d3de + #xfa08201e + #xabd3eff5 + #x4e0bc79f + #xb3e64470 + #x2c4519ce + #x80f0301 + #xf70b1106 + #xf5d7def0 + #x1112219 + #xbff000fc + #x4205c2a0 + #xc4fa405d + #x3d4501c2 + #x8feef03 + #x6050306 + #xf2d8eb08 + #x81c2314 + #xd70503fa + #x3d00bca7 + #xd703344f + #x493defc2 + #x3ede60d + #x1701fa03 + #xe5022128 + #x2a2007ed + #x2f6f215 + #xdd3c7e6 + #xe5073b41 + #x3a10f2e6 + #xeced0e3a + #xf1f402ff + #xef12231c + #x1c09f2e6 + #xf4e8f415 + #xf9e1e5f4 + #xe5072f25 + #x3f2100ea + #xecfb193a + #xe8f9fff4 + #xf9202712 + #x2eadee3 + #xe6def109 + #xf1fd06fb + #xec071904 + #x4e3306ea + #xec092744 + #xedfdf8e6 + #x272a15 + #xe6d7d5e1 + #xe1dae3ef + #xff1913f8 + #xf604fff1 + #x6334fbea + #xf112365c + #xfbffeddf + #x62c2f19 + #xd8ceccdf + #xe1cec9d7 + #xe2112f6 + #xfbf9f2f8 + #x6e2af4f1 + #xf1194e78 + #xfdf9e6de + #xe312c10 + #xd2c0c2e1 + #xd8b8b4ce + #x131c12f9 + #xf9f8f904 + #x6821f6f6 + #xec23677f + #xf9f6e6dc + #x172a1e00 + #xbeabc0ed + #xc2aab4cc + #xe1a10ec + #xfb060d0b + #x6523fbf4 + #xea317a7f + #xfbe8d5 + #x12171200 + #xa39fccf9 + #xb2b2c0bd + #xd13f9cc + #x9191a0e + #x6825fbf8 + #xed3a7f7f + #x1504e8d0 + #xff070d0b + #x8ea6dcf9 + #xc0d2c7a4 + #xefbd2b4 + #x1a272519 + #x6a27fb04 + #xf23a7c7f + #x2309e3d0 + #xf2041012 + #x8eb2deec + #xe8ecc093 + #xffceadbd + #x212d3425 + #x6728060e + #xf834737f + #x2007e3d7 + #xf4090e0b + #x9ab4d2e1 + #x6efb898 + #xd8a1a4da + #x233f4923 + #x632f0e10 + #xf92d657c + #x1506eae1 + #xff0902f9 + #x9da4c5e6 + #xbecbeaa + #xab8cb2f2 + #x2f595409 + #x6536120e + #xf9275975 + #xe09f8ea + #x4f9efed + #x8a93cbf8 + #x7f6d7af + #x9393c4f2 + #x476c46e3 + #x6a360b13 + #xf8205476 + #x151504f1 + #xf6dfe1ed + #x8095e104 + #x1215e69d + #x9aa1bde8 + #x606528ce + #x60280b2c + #xf8215776 + #x25230df2 + #xdcc9def9 + #x80adf6fd + #x312cda80 + #xab9cabea + #x624d17d5 + #x471e1c46 + #x62f5c6a + #x332c10f8 + #xbec0e507 + #x83c9f8e5 + #x4d23b880 + #xa882a406 + #x4d3a20ea + #x33283a50 + #x2041544b + #x332a1209 + #xb1c5ef09 + #xa4d7e6c9 + #x4d029d80 + #x8e80bb27 + #x384134ec + #x34424741 + #x3b42342c + #x27251e28 + #xb1ccf1fd + #xb9ced0b9 + #x2fdf9f9f + #x8083e133 + #x3b593bd3 + #x46503b28 + #x492d1320 + #x1a253649 + #xbbd3eced + #xb9bdbeb9 + #x9d5b6b8 + #x80aff920 + #x556725b6 + #x54472528 + #x4210022a + #x19335762 + #xc7d7e5e3 + #xadafb9be + #xf6dec7b9 + #xa8d5f8ff + #x685202b2 + #x4d332544 + #x31ff0638 + #x27476f63 + #xd0d8dee3 + #xa3aabbc7 + #xf4e5c5ad + #xd5e3e5ec + #x5927edd0 + #x342c3f60 + #x25ff0e2f + #x3659755b + #xd8d8dae5 + #x9faac0d0 + #xf2dcbba6 + #xede1dcea + #x2f02f8f6 + #x2741605e + #x28070613 + #x3a5c6f55 + #xe3dad7e3 + #x9da8c9df + #xe3c9b4a8 + #xf6e5e3ea + #x7fd0e0d + #x38676a3d + #x3104ef02 + #x31556a59 + #xecd8d0d8 + #x9caddaf1 + #xc9bbb4aa + #xf8ecda + #xf4061e15 + #x627f5513 + #x2df1de10 + #x234e6c5e + #xf1d3c5cc + #x9fbef202 + #xb9bbb8aa + #x1e10e6c0 + #xf2071c20 + #x7c7533fb + #x19dce12f + #x1e4d6e57 + #xf1c9c0cb + #xb2da0b12 + #xb6beb9af + #x421ad5ad + #xedfb1c3d + #x73541af6 + #xdaf947 + #x204b6341 + #xecc2c0d3 + #xccf21a19 + #xb6bebdbe + #x5712c2a4 + #xd8ec2d60 + #x553a13f1 + #xf6ef1747 + #x20424d25 + #xe6c4c7da + #xe5022319 + #xb2c0ccd8 + #x5402b9a4 + #xc0ec4975 + #x3f3817e1 + #xfd071e33 + #x15333310 + #xe5c7cedc + #xf10b2a17 + #xb2cee3ed + #x47fbb89f + #xb8fd5c76 + #x3f420ec9 + #x712101e + #xd211c07 + #xe5ccd8e6 + #xfb152d15 + #xc0e6f6f6 + #x3df8b29d + #xc2125e68 + #x4d3ff8b9 + #xd09ff1c + #x10130e06 + #xe5d7ed02 + #xb212a0e + #xdefdfdfd + #x34edadab + #xd717505b + #x502ce3c0 + #x7f8f827 + #x12070406 + #xe3e3021e + #x1c2c2506 + #xf809fb02 + #x2ce1aabe + #xe6124450 + #x4b19dcd0 + #xfdeaf831 + #x10fffd06 + #xf21a1c00 + #x2914f9e5 + #xf9eb0629 + #xf0cddcfa + #xea1e462b + #x290af2e0 + #xedfc1f39 + #xd9fa03f4 + #xfe2119f9 + #x14fcebe6 + #xeaea0a21 + #xf0eaf2f9 + #xef1c2d10 + #x3717f7e1 + #xf206233c + #xe6fefaeb + #xb2619fa + #xf5e3e0e8 + #xe1e6030b + #xfc0a05f2 + #xf9120bf7 + #x4923f9e8 + #xf9142e4b + #xfa00efe5 + #x10291f0a + #xe0d7d9ea + #xe1e0ebef + #x141e06f0 + #xfe01f5f7 + #x531cf5f4 + #xfc1c4362 + #x8fae5e5 + #x172e230b + #xd6cbd1eb + #xdecbd2de + #x1e1f08f4 + #xf9f5f405 + #x5014f9fa + #xfc285c75 + #x3f2e1e5 + #x1f2e1c03 + #xc8bbcaf2 + #xcdb7c8d7 + #x1a1e0df2 + #xf5fa030b + #x4b12fefa + #xfe35707d + #xefe1e1 + #x1e230f00 + #xafafd1fc + #xb9b6cbca + #x151e06de + #x10d0f0b + #x4d15fefa + #x1437c7f + #xbf5e0dc + #x10120a0b + #x99b2e0fe + #xbbc5cbb1 + #x150de6c5 + #x141e170f + #x5215fa03 + #x64b7f7f + #x19fad9d9 + #xfe0b0f1a + #x94c0e8f2 + #xd7d7be99 + #xbe8c5c5 + #x2129241a + #x55170010 + #x84d7f7f + #x1efad6d9 + #xf90b101c + #xa0c5dee5 + #xf7dbaf94 + #xebbbb6e0 + #x283a3a1c + #x521c0a15 + #x8487c7f + #x19f7d7de + #xb0a0f + #xa3b9d1e5 + #x3d7b1a3 + #xbea2c3fa + #x34534605 + #x55240d14 + #x53c6e78 + #x14f9e1e5 + #x501fa03 + #x97a8d1f2 + #x1e0c5ac + #x9da3d605 + #x49683cdc + #x5a260a1a + #x32667a + #x1703efea + #xfcebeb00 + #x80a5e3fe + #xafad79e + #x9bb2d9fc + #x64681ec0 + #x571c0a30 + #xfe2e687d + #x2410f5ea + #xe5d6e80a + #x80b7f5fa + #x2414cf82 + #xa8b1cafe + #x6b5206c0 + #x43141a4d + #x3396d73 + #x341af7ea + #xcacbed17 + #x85d1fae6 + #x4314b280 + #xac9bc014 + #x5a3a08d2 + #x301c375a + #x1746665a + #x3a1cf9f4 + #xb9cdf71e + #xa3e1edcb + #x49f59680 + #x9688d135 + #x433a1ed9 + #x2e34494d + #x32494d3e + #x34170110 + #xb7d4fa15 + #xbbded7b9 + #x34d69496 + #x8092f446 + #x3f5028c5 + #x3f484135 + #x4137292e + #x2b191c34 + #xbed9f406 + #xc0cdc5b4 + #x10c8a8af + #x80b40f39 + #x556219a8 + #x50442b2e + #x3c191437 + #x29263e4d + #xc5d9eafe + #xb6bebcb7 + #xfad2c1b9 + #x9bd90d19 + #x6b57f79e + #x4d2e2144 + #x29011243 + #x353f5a55 + #xcbd7e500 + #xacb7bcbe + #xf7e0cab4 + #xc3e5f700 + #x6630e1b4 + #x37233461 + #x1cfe1a3e + #x4657684e + #xd2d7e306 + #xa7b6c1c6 + #xf9dec1ad + #xdee0e6fa + #x430feadb + #x26345866 + #x1a051526 + #x50626648 + #xd9d6e106 + #xa3b4c8d2 + #xf0d1b9aa + #xe8dce6fa + #x1a0806f9 + #x34586849 + #x1e00fe10 + #x4e616248 + #xded4dcfe + #x9eb6d6e0 + #xdcc3b7a8 + #xf0e8edef + #x5121a05 + #x5875581f + #x19ebea19 + #x445c664d + #xe3cfd4f0 + #x9dc1e8ef + #xcac0b9a5 + #x5fce8d7 + #x31a1e0d + #x7c723503 + #x8d7ea3a + #x415c6b49 + #xe3c6caeb + #xa8d6fcfc + #xc3c1b7a3 + #x2406d7c1 + #x1121e24 + #x7c551afe + #xf4d10158 + #x445d6639 + #xe0bec8ed + #xbeed0f05 + #xc3c1b9af + #x3a00c5b7 + #xf0062e48 + #x643a12f9 + #xeae11c5d + #x4658521f + #xdbbccaf0 + #xd7001c08 + #xbec0c3c6 + #x3ff2b9b4 + #xd7054b64 + #x4b3010e8 + #xf0fc294d + #x3e48370d + #xd7becfef + #xe80f2406 + #xbbc8d7dc + #x37e8b4af + #xca15626b + #x463405cd + #x10f213a + #x30341f05 + #xd7c3d6f0 + #xf51a2905 + #xc1dcebea + #x30e6afa8 + #xd2286964 + #x4e34efb9 + #xd0d1234 + #x2b210f05 + #xd7cbe500 + #x3262901 + #xd7f2f5f2 + #x29e0a7ad + #xe332625a + #x5323dbbb + #xb010a3c + #x24120506 + #xdbe3fc10 + #x172e21f9 + #xf0faf900 + #x1cd2aac5 + #xed2b5750 + #x480bd7cb + #x1f50f44 + #xf050005 + #xe0fa1019 + #x292e17f0 + #x1fcfa10 + #xfc5b2e0 + #xef215049 + #x37fcdcdc + #xf7ef1244 + #xf5f90003 + #xa2208e0 + #x1f05ebe7 + #xe7f01b2e + #xe0d8f0fa + #xfc373e0d + #x200ae9d6 + #xf0082931 + #xe7fefcf0 + #x12200aeb + #x6f2e6ee + #xe2f5181d + #xf3f5f7f0 + #x1291d00 + #x310febdd + #xf90f2e3e + #x100f3ed + #x1b220f00 + #xebe2e0f5 + #xe2f30800 + #xc0ffce9 + #x611fcf9 + #x3e11eeed + #x11b3c52 + #x12fce7eb + #x1f27190f + #xdbd6daf7 + #xe4e4ede7 + #x1f18feed + #xfef9f206 + #x3c0cfafc + #x5255263 + #xdeee0ee + #x272c180c + #xcec7d1fa + #xd4ccdadb + #x221906f2 + #xf5f3fe12 + #x370d03fe + #x837676a + #xfce6e0ee + #x2b270d01 + #xb7b7d303 + #xc0c0d6cf + #x201d0ae4 + #xf9010a14 + #x381103fa + #xd46756e + #xf7e7dfe9 + #x1f180505 + #xa1b5df06 + #xb7c7d4b9 + #x2019f7ce + #xc140f12 + #x3e0dfc00 + #x12547f73 + #xfeebdae4 + #xc0c0816 + #x9ac3e7fc + #xc8cfc19c + #x1bfed6c7 + #x1f221819 + #x3f0afc0d + #x185e7f7a + #x5ebd1e0 + #xc1120 + #xa2cee2eb + #xe4cfa990 + #xfed3c5d8 + #x2931291b + #x3e0d0618 + #x18627f7a + #x6e6cee0 + #x10d121d + #xabc7d3e6 + #xf3c8a298 + #xcfb4cff9 + #x354a3808 + #x41180f19 + #x165b7f75 + #x3e4d1e4 + #x5060612 + #xa1b5cfee + #xf5ccb2a2 + #xa8b2e40a + #x4f6231dd + #x481d0d20 + #x114f7a75 + #x5ebdbe7 + #xf5f90f + #x8cafdbfa + #xf9e0c39a + #x9dbeee08 + #x6a6712b9 + #x48140c37 + #xa487a7a + #xff9e4e6 + #xebdff216 + #x80bbf0fa + #x11fcc380 + #xa8c1e406 + #x7852f3af + #x3a0c1956 + #xa4d7f78 + #x1f03e6e4 + #xd1d1f524 + #x87d3f7e9 + #x3101a880 + #xabb0db19 + #x6a37ebbb + #x29123869 + #x18597c63 + #x2b06e4e9 + #xbed1002e + #xa4e6eece + #x3feb8a80 + #x9a9de73c + #x502efcc5 + #x252c5060 + #x305d6346 + #x2b03e9fe + #xb9d8062c + #xbee7d6b9 + #x2ec88287 + #x809f0a54 + #x46410db7 + #x37464f46 + #x414a4137 + #x22030120 + #xbedd011f + #xc7d8c1af + #xdb795a2 + #x80be274d + #x5956059a + #x4b46373a + #x3e29273c + #x1d12253f + #xc3ddf714 + #xbec7b7b0 + #xf3c0b0b2 + #x90e0292e + #x7154e68a + #x5033274b + #x290d224b + #x242e484a + #xc7d8ee16 + #xb2bcb5b5 + #xf0d1c0af + #xb9ee1111 + #x7533ce9d + #x3c203169 + #x14052b4a + #x374b5b43 + #xc8d3ed1f + #xabb7b9bc + #xf7dabea9 + #xd4e7fa08 + #x5712d1c1 + #x252b5071 + #xd082731 + #x4a5e5e3a + #xccd1f024 + #xa9b5bec5 + #xf5d3b9a8 + #xdbddf308 + #x2e08eee2 + #x2b4b6959 + #x11051119 + #x52635e3a + #xd1cfee20 + #xa4b7c7cf + #xe6c7b5a8 + #xdfe0f700 + #x16160af0 + #x4f6f6030 + #xcf2f91d + #x5262623e + #xd4cae716 + #xa1bed6db + #xd3c1b49f + #xeef0f3e9 + #x142416f9 + #x76733f11 + #xf9d8f53e + #x5265673a + #xd4c1dd0f + #xa4cfe9e7 + #xcac1b098 + #x8f9e0d3 + #x1624190d + #x7f5b1f06 + #xe0ce0c63 + #x576a6529 + #xd3b9d611 + #xb5e4faf2 + #xc7c0ad9c + #x20f0cac5 + #xa192930 + #x6f3c1103 + #xd6db2b71 + #x5e675412 + #xccb4d614 + #xccfa0cf5 + #xc1bcb2af + #x27e0bec0 + #xf2184450 + #x572e0df3 + #xdff73a65 + #x59573a01 + #xcab4da12 + #xe20c19f7 + #xbcc0c3c7 + #x22d8b9bb + #xe027625e + #x4b3003d6 + #xf20d374f + #x4d4122fc + #xc8b9dd0d + #xf21d20f5 + #xc0d1d8d8 + #x1bd4b2b2 + #xe43e6f5d + #x4f2ce9be + #x3122b48 + #x432c1100 + #xc8c1e412 + #x12b22f2 + #xcfe7e7e2 + #x18cea6b0 + #xf74b6e56 + #x5219cfb9 + #xa0a224d + #x371b0503 + #xccd3f319 + #x16351de9 + #xe6f3edf0 + #xfc1a2c0 + #x34a6550 + #x4801c7c7 + #x6012556 + #x200afe06 + #xdaf20611 + #x27310fe4 + #xf5f3f70c + #xfeb7b4df + #x13f5e46 + #x31f5d1d4 + #xfafe2c50 + #xfefe01 + #xeb0d1201 + #x332701e0 + #xf9f20524 + #xedb5ccf7 + #xfa375938 + #x20f2ddda + #xf0fe2c44 + #xe7f701fc + #x1c13f8e6 + #xef4e5f9 + #xe5072723 + #xdeeaf6ea + #x194125f2 + #x1e02dcde + #xf8172f2d + #x9fff6ef + #x1e1300fb + #xfbece500 + #xec09170d + #xf8fbf4e5 + #x172309f8 + #x2702e3ec + #xff19383b + #x15fbedf1 + #x20190d12 + #xe8dfe304 + #xed0000f1 + #x1309f4e6 + #xb02f606 + #x2a02eff9 + #x723474d + #x10f1e6f4 + #x25211312 + #xdad2dc07 + #xe3e8eae1 + #x1c0bfbec + #xf8f1fd17 + #x2707ffff + #xe335b54 + #xf6e3e5f8 + #x2c230b02 + #xc5c0da0e + #xccd5e1d7 + #x1c1204e6 + #xf4f8091c + #x270e04f8 + #x13446855 + #xe3dfe5f6 + #x2a1900f8 + #xafb9e313 + #xbdd2dac2 + #x2119fdd3 + #x70d1a + #x2c0efdf8 + #x19547359 + #xe3e3e1f1 + #x170b0002 + #xa3c2ec0d + #xc4d3c7a6 + #x230be5c4 + #x13130e1e + #x2d07fb04 + #x21657f62 + #xece5d8ea + #x6060b10 + #xaacee6fb + #xd5ceab93 + #x10e8d0cc + #x23211c20 + #x2a070415 + #x276f7f65 + #xeddccee8 + #xff091213 + #xb4ccd7ec + #xe1c09a97 + #xe5c9d3e8 + #x33382c10 + #x2a0d0e20 + #x286f7f63 + #xe8d3cbe8 + #x209100e + #xb1beceed + #xdfbba19f + #xb9c2edfd + #x49522aea + #x33131027 + #x27677f65 + #xe5d5d0ec + #xfd060b + #x9db4d5f8 + #xe3cbb19a + #xaacefd02 + #x67590dbe + #x360e0e3b + #x1e5e7f6a + #xecdfd8ea + #xf1ecfd10 + #x8cbbe8fb + #xf9e3b283 + #xafd5f902 + #x7a47e6ab + #x2d071c5b + #x1a627f6a + #xf9ead8e5 + #xd8dcff1e + #x91d2f2ed + #x1af19d80 + #xb4c7ef13 + #x712ad5b2 + #x1c0d3b75 + #x216e7f5c + #x9efd5e3 + #xc4d8092c + #xa8e6edd5 + #x2dde8080 + #xa4b4f934 + #x591cdfb9 + #x1a285771 + #x36737344 + #xdecd7f4 + #xbddf122d + #xc4ead7bd + #x23bb8080 + #x89b41c54 + #x4928efaf + #x2c445c59 + #x47625231 + #x4eaea13 + #xc0e81023 + #xd0dcc0b1 + #x2a6809c + #x80d03f54 + #x553fed93 + #x444d4647 + #x46413334 + #xf8f80e33 + #xc5e80617 + #xcbcbb2af + #xe6ab9daf + #x91f24438 + #x6e42d382 + #x4d3a2f50 + #x31212d44 + #xfd15333f + #xc7dff913 + #xbebdadb2 + #xdfbeb1b2 + #xb6042f17 + #x7628b88c + #x3d25346a + #x1715364b + #x133a4d3a + #xc2d3f61a + #xb6b6afb6 + #xeaccb4ab + #xd3fb1209 + #x6009b9af + #x2527527a + #x915363a + #x3152522c + #xbeccf927 + #xb1b2b2b9 + #xefccafa8 + #xdaea0609 + #x3dffd5d0 + #x21426a68 + #x610211e + #x465c5225 + #xc0ccff2c + #xadb2b8c0 + #xe6c5afa6 + #xd7e80607 + #x250bf4e1 + #x3f636744 + #x2fb0419 + #x4e605427 + #xc4ccfd2a + #xaab9c5cc + #xd8c4b1a1 + #xdcf104f6 + #x211e04e5 + #x686f4725 + #xf1e1fd38 + #x55635b27 + #xc7c7f628 + #xaac5d5d7 + #xcec4ab98 + #xf1f6f2df + #x272509f4 + #x7f5c2719 + #xd8d31260 + #x5c6c5b17 + #xc4beef2a + #xb2d7e6df + #xccc2a395 + #x7eddcd2 + #x23211713 + #x733f1515 + #xc9df3376 + #x656e4dff + #xbeb4ec2d + #xc5ecf6e5 + #xc7b9a19f + #x10dccbcb + #x10213436 + #x5b2d1007 + #xccfb4971 + #x656233ed + #xb9b1ea2d + #xdaff06e6 + #xc2bbadb4 + #xbd0c4c4 + #xfd2f5449 + #x4d2a02ea + #xe112495c + #x5b491cea + #xb6b2ed2a + #xef130ee5 + #xc0c7c2c9 + #x2cbbbbb + #xff46684d + #x4b25eace + #xf6193f52 + #x49330df1 + #xb8bbf128 + #x22512e1 + #xcbdad3d7 + #xc5b1b6 + #xe596e47 + #x4d12ccc5 + #x2153654 + #x3a2004fb + #xbbc9fb2a + #x19310eda + #xdee8dae6 + #xfdb9a8be + #x1c5c6a47 + #x41f8bdce + #x4103b5b + #x250dff02 + #xc7df0421 + #x2c3104d5 + #xedece6fd + #xefadb1d7 + #x1e556541 + #x2ce6c0da + #xff104255 + #x6fbfd04 + #xe3fb0707 + #x3323f8da + #xf1effd1c + #xdaafcbed + #x17505c2d + #x19ead0de + #xf8124246 + #xf2f6ffff + #xff1006ec + #x3113ede3 + #xedf2132f + #xcebde5f9 + #x124d5219 + #x10f2dad8 + #xf2123d34 + #xeff902f8 + #x1d05f903 + #x8f0f00f + #xf9242b1b + #xe9f7f0e0 + #x32360cec + #x1bf2d7fc + #x8263630 + #x14fef3f5 + #x1b0a0613 + #xf9ebf213 + #x11b1605 + #xfaece5 + #x21160501 + #x1bf5e705 + #xc293e39 + #x8f5f2fa + #x1f161116 + #xe7def014 + #xfc06fcf0 + #x1300f0ec + #x6fa061a + #x1bfef906 + #x13344c40 + #xf0e7f001 + #x281f0d01 + #xd6cfee1a + #xe5eeece4 + #x1606fceb + #xf3f91324 + #x1f0c01fa + #x1a445a42 + #xd6e2f203 + #x2d1a01ec + #xbfc4f221 + #xd0e2e5d2 + #x1b13fedb + #xf9051622 + #x2811fef3 + #x21536347 + #xd2e5f000 + #x210dfcec + #xafc6f921 + #xcde0d4b8 + #x2614eec8 + #x80d1424 + #x290df9fc + #x29636e4c + #xdee7e9fa + #xf0603f9 + #xb1d0f713 + #xd7d9b8a1 + #x2100dbc9 + #x18141a29 + #x2408010f + #x36757c53 + #xe9e0dbf5 + #x60a0d03 + #xbad0e700 + #xddc6a19e + #xfee0d9db + #x29262821 + #x1f0c1122 + #x407d7f53 + #xe2d2d2f9 + #x50d1101 + #xbbc6d9f7 + #xd7b69ea6 + #xd2d4ecf0 + #x44422bfe + #x26131830 + #x427c7d55 + #xd7cbd0fa + #x30a0afa + #xafbad9fa + #xd4bdaaa6 + #xbbe003f7 + #x63500fcf + #x2b0f1844 + #x3d757d5a + #xd4d0d4f9 + #xf9fc03fc + #x9ebde7fe + #xe5d2ad95 + #xbdec06f9 + #x763ee5b4 + #x260a2461 + #x34767f5e + #xe0dbd6f2 + #xe5f00608 + #x9cd0f3f5 + #x5e09c80 + #xc6e70108 + #x731dcbb3 + #x160d427c + #x397f7f52 + #xf0ded0ee + #xd2eb111a + #xafe4f0e0 + #x1dd28080 + #xbbd60629 + #x5a08cfbb + #x1126637f + #x4b7f7c3d + #xf5dbcdf7 + #xc8f01a21 + #xcbecdec6 + #x18b38083 + #xa1d22649 + #x490dddb3 + #x21476e6f + #x5c7d5e2b + #xecd6db11 + #xc8f91a18 + #xdbe2c6b6 + #xfc9a80a1 + #x91e94b52 + #x4e22dd97 + #x3e575c5a + #x5c5e3e2f + #xdbe0fa30 + #xcdfa0f05 + #xd9cdb4b3 + #xde9a91b8 + #x9e0c5a3b + #x632bc280 + #x4e494259 + #x453b3440 + #xdbfe223e + #xcff203fe + #xcbbdadb6 + #xd4ada8bd + #xc121491b + #x6f18a885 + #x44303e6e + #x28293d4c + #xf5243e37 + #xc8e40006 + #xc1b4afba + #xddbfafb8 + #xde1d2d08 + #x61faa3a3 + #x2b2b577f + #x14284240 + #x1f454728 + #xc1d9061b + #xbab1b1ba + #xe9c6adb3 + #xe4081808 + #x42eebdc6 + #x2144757c + #xd243026 + #x4255471d + #xbfd90f2b + #xb4afb4bd + #xe7c4acad + #xdbfa1408 + #x2bfae0d6 + #x3763765c + #x80f141b + #x555c471b + #xbdd91334 + #xafb1bbc1 + #xddc2aca8 + #xd9fc1300 + #x2913f5d9 + #x60715a3d + #xf7f20632 + #x5e634b18 + #xbfd70f36 + #xadbbc8c8 + #xd6c4aca1 + #xe70106ee + #x341ffae2 + #x7a60362f + #xdde0165c + #x676e4b08 + #xbdd00a3b + #xb4cbd7d0 + #xd4c2a39c + #xf9faf2de + #x341d03fa + #x7644222d + #xc8e93978 + #x73713ef0 + #xb8c60842 + #xc4dee5d4 + #xd0ba9aa1 + #x1e7ded7 + #x28211f1a + #x5e301d22 + #xc805557a + #x756726db + #xb1c10845 + #xd6f2f3d6 + #xc8b49faf + #xfcd9d4d0 + #x1a304430 + #x4e2d130a + #xdb1d5a68 + #x685011d7 + #xadbf0840 + #xeb05fed6 + #xc4bdb3c2 + #xf3d0cbc8 + #x184b5e37 + #x4b26f9ee + #xf329525a + #x533906e2 + #xacc40639 + #x11a03d2 + #xcbcfc4d6 + #xf2c9bdbf + #x26616837 + #x4911d7e0 + #x3284959 + #x3d2401f0 + #xadcb0a36 + #x1a2803cd + #xdbddd0e7 + #xeebbb1c2 + #x376a6837 + #x3df3c1e7 + #x8264c5c + #x2613fefa + #xb8dd112d + #x2f2bfcc9 + #xe9e2d900 + #xe2acb3d4 + #x3d686836 + #x26dec1f2 + #x8285357 + #xa01fe01 + #xcff21116 + #x3922f0cd + #xf0e7f01b + #xcfaac6e7 + #x36656528 + #xfdbcbf3 + #x62b5345 + #xf0f50103 + #xf20306fa + #x3411e9e2 + #xeef70d2f + #xc6bfe2f0 + #x3260530d + #xae5d4f0 + #x52d4932 + #xf0f70100 + #xf0afaeb + #x2803e9f7 + #xee062634 + #xc8d9f5f0 + #x325a3ef7 + #xdf2d6ec + #x32b3e28 + #xfe0001f9 + #x7f6f909 + #xf8ebfd14 + #xd271e0d + #xf1eddbe1 + #x3015f6ed + #x6d8db15 + #x12272c29 + #xf9f2ebf4 + #xb020207 + #xede4fb12 + #xb150bfd + #xfbeddfeb + #x14020204 + #x6e6ed10 + #x142e3729 + #xe2eaedfb + #x140e04f4 + #xdad6f915 + #xf9fbf4eb + #x6f2eaef + #xf4f81019 + #xefbfbff + #x1739412c + #xcce1f200 + #x1d10f6d8 + #xc5ccf91d + #xe1e8e8da + #xd02f1e1 + #xebff191b + #x1b07f6eb + #x1d454a30 + #xc8e4f4ff + #x1b04ebd1 + #xb1c80022 + #xd6e4dac1 + #x1b0de8cc + #xf607151d + #x2206efeb + #x2753533a + #xdae8effb + #xefbeddf + #xaed10419 + #xd8dbc1aa + #x2204d6c3 + #x6091724 + #x1dfff4ff + #x35635e40 + #xebe4e1f9 + #x2fffbef + #xb5d4f807 + #xdac6a5a1 + #xeebd1cf + #x12102225 + #x12ff0614 + #x4773663e + #xe8d4d3ff + #x702ef + #xb8cae4f9 + #xcfaf9aa7 + #xe8dddfdf + #x2727270d + #x12061224 + #x557b683c + #xd4c5cd06 + #x20bffe4 + #xafbadbf6 + #xc3aaa1aa + #xcae1f2e2 + #x483a10df + #x19091739 + #x537a6c40 + #xc6c1cf09 + #xfb02f6df + #x9eb7e2f8 + #xccbaa89e + #xcaf2fbe2 + #x6332e4bc + #x15062458 + #x4a7a7345 + #xcac6cf02 + #xebf6f8e8 + #x9ac6edf1 + #xe8c89a87 + #xd3f6fbf1 + #x630ec3b5 + #x9094178 + #x4a7f783e + #xdacccaf9 + #xdaf204fb + #xa8daeddd + #x2bf8080 + #xcfeb0210 + #x4cf2beba + #x422667f + #x587f6f2b + #xe2c6c1fd + #xcdf91007 + #xc1e4dbc6 + #x4a38084 + #xb7e41e33 + #x35efcab5 + #x12457673 + #x6a7f571b + #xd8bec610 + #xcd0414fd + #xd3dbc3b5 + #xeb87809e + #xa5f84543 + #x3502ca9a + #x325a6a5c + #x6c6a391b + #xc1c1e22e + #xd30607e6 + #xd4c6afaf + #xcc8082b7 + #xae1d5c33 + #x4a0db580 + #x48515158 + #x57472c30 + #xbcdb0940 + #xd4fbf9d8 + #xcab5a7b1 + #xbe909cc1 + #xcc375112 + #x5aff9580 + #x41394768 + #x35303341 + #xda04293a + #xcfebf4e4 + #xbeaaa7b3 + #xc5a7a8be + #xea3535fb + #x4ee28c97 + #x292c587b + #x1e2b3c3c + #xe2b3527 + #xc3dffd02 + #xb5a7a8b1 + #xd3b3aab7 + #xf2221ef8 + #x33d1a1b8 + #x1b3e747b + #x15293224 + #x3e413317 + #xbcdd0b20 + #xafa7a8af + #xd8b5a8b1 + #xe80e17fd + #x1edbc3ca + #x2b5e7f65 + #x10171414 + #x584a3012 + #xbae21532 + #xa8a7aeaf + #xd3b7acac + #xdd0915f9 + #x1df6dacc + #x506c6647 + #xfffb0424 + #x6353330e + #xbae4173a + #xa5acb7b3 + #xcfbaa8a5 + #xe2070bed + #x2907e1cd + #x6c5f4339 + #xe1e6104a + #x6c5e32fd + #xb8df1743 + #xa8b8c1b7 + #xcfb8a19e + #xf202f8e1 + #x300de8df + #x6c432c39 + #xc8ea326c + #x7a6324e1 + #xb3d81b4e + #xb5c8cdbc + #xcdaf97a0 + #xf8f2e6da + #x2b10fffb + #x572e2735 + #xc3045173 + #x7f5a0dc6 + #xaad11d55 + #xc5dadaba + #xc5a595aa + #xf1e2dbd4 + #x2020200e + #x45272024 + #xd41e5e68 + #x7645f4c1 + #xa3cf1b4e + #xd8ede2b8 + #xbca7a1b8 + #xe6d6d3ca + #x203c4015 + #x41220909 + #xed2e585c + #x5c2eeaca + #xa0cf1540 + #xef00e8b5 + #xbfb5b3cc + #xe2cfc5c1 + #x2e575017 + #x400de6f9 + #xff325157 + #x401deadb + #xa1d41433 + #x910ebb1 + #xccc6c1e1 + #xe1bfb5be + #x4065551b + #x32edccf9 + #x7325158 + #x290eebe8 + #xa7dd1729 + #x2217e6af + #xdacdcdfb + #xd4aeafca + #x486a581b + #x17d1c604 + #xb335751 + #xeffeff2 + #xb8ed1514 + #x3014ddb3 + #xe1d3e115 + #xc1a7bedb + #x476a5810 + #xffc8cd09 + #xe39553e + #xf1f1f4f9 + #xd6fb09f8 + #x2c04d6c5 + #xe2e1fd2b + #xb3b3d3e4 + #x43684ef8 + #xf4cdd304 + #x103a4829 + #xe1edf9fd + #xf4fff8ea + #x1df6dde4 + #xeafd1b2c + #xbacfe2e2 + #x435c30e2 + #xfbd6d102 + #x1035371e + #xe8f4f9f9 + #x6fbedeb + #xeefeafd + #xf2192c27 + #xcce6e8df + #x454c15d6 + #x4dacf07 + #x10302c1d + #xf8fdf6f2 + #xfdf9fdfb + #xedf1090e + #x1b1d1202 + #xf4dfd6f8 + #x1e00f4f6 + #xedd3f625 + #x1b252719 + #xe4eaebff + #x604fbea + #xe2ea070e + #xd0902f8 + #xf6e2e1fb + #x2ff0704 + #xf9e8fd0e + #x192c2e1b + #xd4e6f100 + #x1209f1d1 + #xcfdf0715 + #xf8f2f2e4 + #xfdf1ebf4 + #xed02170e + #xbfffdf2 + #x1b373522 + #xcfeaf602 + #x1700e1c5 + #xbcdb0b1d + #xe4e8e2cc + #xd02e8dd + #xf10b1910 + #x1902efe6 + #x24413e2e + #xe2eff4ff + #xef4ddd3 + #xb3df101d + #xe1e1cdb3 + #x1d02d8cd + #xfb0b171d + #x19f9ebf1 + #x32514a37 + #xf8edeaff + #x2f2eaea + #xb5e20b0e + #xe1cfb3a5 + #x19f1ccd1 + #x40d2027 + #xef6fb06 + #x47615335 + #xf8dfda06 + #xfdfdf4ef + #xbadbf8ff + #xd4b7a3a8 + #xffe1d4db + #x121b291d + #x9000d15 + #x586d552c + #xe1cad312 + #x6f2e2 + #xb3cae8f6 + #xc1a8a7af + #xe6e6e4dd + #x2e2e1df9 + #xe071929 + #x6173572c + #xc6bed41e + #x204ebd4 + #xa5bfe4f4 + #xbeafafaa + #xdff4efd6 + #x4c2bf4d4 + #xe072548 + #x5e765e32 + #xbfbed81b + #xf8f9e8d6 + #x9cc6eaf1 + #xd1bca795 + #xe6fdefdb + #x530bcac1 + #x40b416c + #x5c7f662e + #xccbfd112 + #xeaf6f2e8 + #xa5d6eae2 + #xeab78c85 + #xe4f8f6f8 + #x40e8bcc3 + #xfd24687d + #x687f5f1e + #xd6bcc610 + #xddfd02f6 + #xbae1ddcd + #xef9c808b + #xd4f4101d + #x24dbc1c1 + #xb487f73 + #x7a7f4a0d + #xccb1c822 + #xdb0907ef + #xcddac5ba + #xda8080a0 + #xc1023930 + #x1be8c3aa + #x2c657b5a + #x7f6d300e + #xb5afdb3c + #xe110ffd6 + #xd3c8b1b1 + #xba8082ba + #xc5295525 + #x2cf6ae8e + #x48616150 + #x6c4c2425 + #xaac1ff4c + #xe607efc5 + #xc8b5a7b5 + #xa8809ac6 + #xe1475307 + #x40ed9085 + #x4a4a555f + #x4a332c3c + #xc6ea204a + #xe1f4e6cf + #xbaa8a5b8 + #xac93acc3 + #x24e39ef + #x3ccf809a + #x32396174 + #x2e2c393e + #x122e35 + #xd3e6eff4 + #xafa3a5b5 + #xbca5afbc + #xd3a20ea + #x20ba90ba + #x1e417878 + #x222c3329 + #x372e2b20 + #xc6e4021e + #xa8a3a5ae + #xc5aaafb5 + #x22415f1 + #x9bfafcd + #x255e7f65 + #x1d201b14 + #x55392217 + #xbfea1239 + #xa5a3a5a7 + #xc6aeb1b1 + #xf21915f4 + #x9dac8cd + #x4873784c + #xd06061b + #x5e402212 + #xbfef1d43 + #xa3a5a7a5 + #xc6b3b3ae + #xf21710ed + #x19f2cdcc + #x656a583e + #xeded0b3c + #x664c2200 + #xbfef2250 + #xa3aeafa8 + #xcab5aca7 + #xfb1000e2 + #x25f9d3d4 + #x684e3e3c + #xcfed2b5f + #x765315e2 + #xbceb2961 + #xaababaac + #xcaaea1a3 + #xff00efdd + #x25fde2ea + #x53353940 + #xc6064e6c + #x7f4af9c3 + #xb3e6306c + #xb8cac3ac + #xc3a19aa8 + #xf8f1e4da + #x200b02fb + #x402c3535 + #xd6225e63 + #x7b33ddb7 + #xaae63268 + #xc8dacca7 + #xb79ca0b3 + #xebe4ddd3 + #x24271e00 + #x3a272524 + #xed325c58 + #x651dd1bf + #xa5e62c55 + #xddedd1a1 + #xb3a3acc3 + #xe4dbd1c6 + #x32473000 + #x3a150414 + #x375757 + #x470dd3cf + #xa5e62440 + #xf8fdd39e + #xbcb1bad8 + #xe1cdbfc1 + #x455a3a02 + #x2cf4e812 + #xb395755 + #x3204d8df + #xa8ea1e30 + #x1206cf9a + #xcabcc8f4 + #xd6b8b5c6 + #x51634106 + #x10d4dd1b + #x143e584e + #x1ef9dfeb + #xb5f41d1b + #x2406c89c + #xd3c3db10 + #xbfacbcd6 + #x556847fd + #xf4c5df20 + #x1b43573a + #x2efe6f8 + #xca000efd + #x25fbc3aa + #xd6d1f827 + #xaeafcde1 + #x536d43ea + #xe4c5e21d + #x22454824 + #xe8ebf100 + #xe404fbe2 + #x19edcac5 + #xdbea152e + #xafc5dbdf + #x57682ed3 + #xe6cadf1b + #x25413715 + #xe1f1f804 + #xf6fdefe1 + #x6e8dfe8 + #xef0b2524 + #xc6dadbdf + #x55500ecd + #xedc8dd20 + #x24372914 + #xebf9f600 + #xfdf6ebef + #xf9eaf6ff + #x4222917 + #xdfe4d8e1 + #x4c33f6d3 + #xefc5df27 + #x202e2215 + #xf8fbeff9 + #xfffff9e9 + #xe9f90b04 + #x1d0f06f6 + #xe6cee00f + #x8fbfbf7 + #xdde20d1b + #x1d222204 + #xe2e4f40f + #x900edd6 + #xdff4090b + #x9fffbe9 + #xe9ddeb06 + #xf90408fb + #xf2f404ff + #x1b28240f + #xe0ebf90b + #x10f9dbc7 + #xcdef0d14 + #xf4f0ebd2 + #xf6f0eff6 + #xf40f1200 + #x9fdf2e6 + #x1f312d1f + #xeff4f904 + #xbebd4d6 + #xbeef1419 + #xe9e9d7b9 + #xdf9e0e0 + #xfd12120d + #x10f4e6e9 + #x2b3d392d + #x4f6ef02 + #xffe4ddef + #xbdf21412 + #xe6d9bda7 + #x18edd0d9 + #x2101b20 + #x8ededf9 + #x3f4f462f + #x6e7e008 + #xf7ebe9f9 + #xc0ef0802 + #xdbc0a9a5 + #x9ddcedf + #x6162824 + #xf60206 + #x545d4a24 + #xe9d0d919 + #xfbf9ebe9 + #xbde0f4f7 + #xc6aba7ad + #xf2dddbdd + #x1928260d + #x4061216 + #x6164461b + #xc4bedf2b + #xfbe2d2 + #xaecee7f4 + #xb7abada9 + #xedefe4d2 + #x382b08ed + #x80f2634 + #x6468481f + #xb0b9e632 + #xfff6d9c9 + #xa2c9e6f2 + #xbeb4ab9b + #xf6fde4cd + #x440fddd9 + #x214415a + #x64714f1f + #xb5b9e42b + #xf4f0dfd7 + #xa4d4e6e9 + #xd4b4978b + #xf9fbe6e0 + #x34e6c4d7 + #xfb266871 + #x6f7d5112 + #xc0b5d728 + #xe9f6ede6 + #xb5dddbd7 + #xdb9d8089 + #xebf60004 + #x16d2c2d4 + #x84b7f6b + #x7f7f3f02 + #xb7a9d234 + #xe704f7e0 + #xc9d7c7c6 + #xcb80809b + #xdb04281b + #x6d6c4c0 + #x296f7f54 + #x7f6d2402 + #x9ea0e04f + #xef0ff2c7 + #xcec7b0bb + #xab8082b5 + #xdb284a16 + #x10e2b0a4 + #x4d767344 + #x7b4a1618 + #x90ad0262 + #xf709e0b4 + #xc7b4a4be + #x94809bc4 + #xf64f4ff9 + #x24db9097 + #x52615f4f + #x582f1f36 + #xa9d2245f + #xf6f7d6bd + #xb9a5a0c2 + #x9489b0c6 + #x185b39df + #x26be80a7 + #x3f486264 + #x3b29323f + #xe0fd324a + #xe6e6dde7 + #xab9ea2c0 + #xa29db7bd + #x294b1fd6 + #xfa484c7 + #x2848786b + #x2d2d342d + #x191b2d31 + #xd6e2f219 + #xa49da0b5 + #xb0a5b7b4 + #x223210dd + #xf6a4a0dd + #x295f7f5b + #x28281f14 + #x39282224 + #xcbeb0b39 + #xa09d9da9 + #xb5abb7b0 + #x102410e4 + #xf2bdb9df + #x44787f44 + #x19100914 + #x412f1d1b + #xc9f41b4a + #x9d9b99a2 + #xb7aeb7ad + #x6200fe4 + #x4d9c0d4 + #x62786839 + #xfbf6082f + #x4a381d09 + #xcbf72856 + #x9d9e9ba4 + #xbdb2b2a7 + #x91d04df + #x16e6c0d6 + #x6a61523d + #xd9ef2252 + #x5f3f10e9 + #xc7f7346b + #xa2a7a2a5 + #xc2aea9a4 + #xf12f7db + #x1be7cde6 + #x56484b42 + #xcb024462 + #x7139f2c7 + #xc0f9447f + #xadb5aba5 + #xbea5a2a5 + #x6ffeddb + #x16f0e6f4 + #x3f394a3f + #xd7225a5b + #x6d1fd0b5 + #xb9fd4a7f + #xbdc6b0a0 + #xb29da2ad + #xf6efe4d4 + #x1b0b00f7 + #x36363d31 + #xf0385d51 + #x5204bebb + #xb4ff426b + #xcdd4b497 + #xa99da7b7 + #xe9e4dbc7 + #x2d2d12f4 + #x36282426 + #x43f5a4d + #x34f4becb + #xb2fb3652 + #xe4e2b292 + #xada5b2c9 + #xe4d7cbc0 + #x44461bf4 + #x2b090826 + #xf415a51 + #x24efc7d9 + #xb4f92b3f + #xfdedb08e + #xb7aec0e4 + #xd9c4bec0 + #x545224f6 + #xde6f92f + #x18465d4a + #x1de9cee7 + #xbbfd242f + #x12f2ad8e + #xc0b7d604 + #xc6b2becd + #x5d5d2df2 + #xedcef734 + #x264b5a34 + #x9e2d7f7 + #xcb081810 + #x1beba997 + #xc6c6f41f + #xaeaecbd9 + #x616631e0 + #xd7c9f936 + #x314d4b1b + #xeddfe606 + #xe00b00ed + #x12e0aeae + #xcbdf122b + #xa9bdd7db + #x686820cb + #xd4cbf432 + #x36483809 + #xdfe6f210 + #xf402ebdb + #x2d9c2cd + #xdbfd2626 + #xb9ced9d9 + #x685804c0 + #xd9c9ef36 + #x363d2906 + #xe7f2f912 + #xf9f6e9e2 + #xf6e2e2eb + #xfb162616 + #xd4d7d4e4 + #x5634edcb + #xd7c6f239 + #x2d2f2208 + #xf7f6f60f + #xf9f0eff2 + #xf0f0fdfd + #x16201d08 + #xe6d6d2f4 + #x4116e4df + #xd2c4fd39 + #x26261f06 + #xfdf4f009 + #xf8e8dc + #xeefe01fe + #xe07faea + #xcfcdf713 + #xf700feea + #xd8f71001 + #x171e11ec + #xe3e80113 + #x5efdad4 + #xe1fa0508 + #xfcefd8 + #xdadff805 + #xfa0801ea + #xeff8f8ee + #x19201900 + #xeff1fe0c + #x3e1cfdc + #xd3fa0c10 + #xf1f1dcc1 + #xefeceff1 + #x11105f7 + #x1efdfe3 + #x1e2b2919 + #x5f7f303 + #xf5d3d4f7 + #xcdfe130e + #xeae3c2af + #x5e8dce3 + #x7100e10 + #xfee5ddee + #x2e3d3922 + #xaeee507 + #xead8e303 + #xcffe0c01 + #xdfcaada8 + #x3d6d3e1 + #x5132020 + #xf5e8eff8 + #x444f3e19 + #xecd4dd17 + #xece5e8f1 + #xcff1fcf7 + #xcbb4a6ab + #xf1d3d8df + #xc202719 + #xf5fa0100 + #x5656370c + #xbfbfe52c + #xf5eeddcf + #xbfddeef5 + #xb8aba9ab + #xe6ddddd1 + #x232915fc + #xfe081115 + #x5d56320a + #xa2b8f53b + #xfae8cfb9 + #xadcfe6f5 + #xb2b0a99b + #xefecdac1 + #x3517f1e8 + #x15323d + #x605d3710 + #x9fbbfa3e + #xf5e3cdbf + #xa6cfe3f1 + #xbfb2998b + #xfcefd6c8 + #x2ceed3e6 + #xfe2b5d5f + #x6b693907 + #xa6b9f139 + #xeae6dacf + #xb2d6dae3 + #xcaa28487 + #xf7ece8e5 + #xccdcbe8 + #x54d7d5f + #x7f6f2bf5 + #x9dabe642 + #xe8f5e3ca + #xc4d4cad3 + #xbd878096 + #xe8f80efe + #xf5cacada + #x25717f44 + #x7f6213f3 + #x849fee59 + #xf301dfb0 + #xcbc4b4ca + #xa08080ad + #xe61c34fe + #xf5d1b9bf + #x4f7f7130 + #x7f44070a + #x80a40c71 + #x1cf97 + #xc4b0a4cb + #x848097bd + #xfe4740e5 + #x7ca99af + #x5f725f35 + #x62270e2c + #x80c22e72 + #x1f1c19f + #xb49fa0d1 + #x8084adbf + #x235d32ca + #xcaf80bb + #x4f59604d + #x4220233d + #xb0ec3e5d + #xf1ddc4c8 + #xa697a2d1 + #x8b99b8b8 + #x3e5417bd + #xf89082da + #x34547159 + #x32272e2e + #xe80c3940 + #xdcd6ddfe + #x9d96a2c6 + #x9ba6b9af + #x3b3905c2 + #xdd8b9bf3 + #x2e667f4d + #x2c2b2015 + #x81a292e + #xcddffc22 + #x99949db6 + #xa4abb8ab + #x272501cb + #xd6a0b4f5 + #x447d7d34 + #x2219080e + #x111e2225 + #xcbee1334 + #x979094ab + #xa9afb6a8 + #x192201cd + #xe3bbbdea + #x607f6825 + #x3fe0123 + #x1e251e13 + #xcdf72344 + #x968e8ea6 + #xb0b2b2a2 + #x151efccb + #xfacbb9e3 + #x6b6f562b + #xdff11746 + #x372e13f1 + #xcdfc355d + #x97928da6 + #xb6b2a99d + #x1515f3cb + #x5cdbde8 + #x5b595439 + #xcf003759 + #x5029f5cd + #xc8034b78 + #x9f9b94a4 + #xb6a9a29b + #xe07eccf + #x5d3cff3 + #x444d573e + #xd61c4d52 + #x4f10cdb6 + #xc40e577d + #xada999a0 + #xada2a0a2 + #x1f8eacf + #x5e8e8f8 + #x37475034 + #xf1345042 + #x2eeeb2b6 + #xc2135469 + #xbdb89b99 + #xa49fa4ad + #xf3eee1c4 + #x1708faf5 + #x353b3929 + #x540503e + #xcd8afc6 + #xc211464f + #xd1c29992 + #xa0a2a9bb + #xeadfd3b8 + #x322301ef + #x2e22222b + #x11465442 + #xfcd1b8d6 + #xc20c3940 + #xe8cd968d + #xa8a8b6d3 + #xddcdc2b6 + #x493408ef + #x13001537 + #x1c4b593e + #xfcd1c1e3 + #xc4082e35 + #xfcd3908b + #xb0b0cbef + #xcab8bfbd + #x574013ea + #xeee61142 + #x29525629 + #xf3cdcaf3 + #xcd0c221e + #x8cf8d8e + #xb4bfe80e + #xb2b0c8ca + #x604f19dc + #xd4da0e44 + #x3552470e + #xdacad807 + #xdf100af8 + #x8c8909f + #xb9d60a20 + #xa8b9d4cd + #x6d5910c4 + #xcbd80844 + #x3e4b32f7 + #xc8d1ec19 + #xf105efdd + #xfcc2a2bb + #xcaf52222 + #xafc8d6cb + #x7252f5b6 + #xcbd30147 + #x3d3e23f1 + #xd3e3fa20 + #xf7f3e1dd + #xefcabfd8 + #xe5102715 + #xc4cfd3d3 + #x6832dcbb + #xc8cb014b + #x35321cf1 + #xeeeefe20 + #xf7eae5ec + #xecdfdfec + #x5191903 + #xd3cdd6ec + #x4410dad1 + #xc2cf0e44 + #x29251aef + #xf8eefc1c + #xf5eaeef5 + #xeff3f5f8 + #x191508f7 + #xd6c8dd07 + #x22f8e5e3 + #xbdda1935 + #x201e19ea + #xf5e6fa1a + #xffeddddd + #xf9040404 + #x906f6eb + #xcce81012 + #x9fddf + #xef0702f4 + #x171d07ea + #xeafd1014 + #xfbdfd8e6 + #xef040b0d + #xffe8da + #xdff10404 + #x90efde8 + #xfbf8eaef + #x19241900 + #xffff040b + #xf1d3dbfd + #xe807140e + #xf8efcfc6 + #xf8f1f2f2 + #x101004ff + #xfde6daf2 + #x24332e14 + #x9f8f207 + #xe2d1eb0e + #xea0b1406 + #xeddab8be + #xfde1e2eb + #xe121719 + #xf2e1e6fb + #x37453912 + #xf4e1e814 + #xdfddf2ff + #xe80407f9 + #xdbc3acbc + #xf1d8e1e8 + #xe1e291d + #xf1f1f6fd + #x4c503307 + #xc6caef2b + #xeaeae8d4 + #xddf4f9f6 + #xc6b7acba + #xe6dde6db + #x1b2b270b + #xf9040406 + #x574c2500 + #xa3c30240 + #xf4e8d3b3 + #xcae2f1fb + #xbcbaaeaf + #xebe8ddc8 + #x2e240df9 + #x4101724 + #x5a4a2407 + #x9eca1047 + #xf2ddc6ac + #xbcd8edfb + #xc1bea59c + #xf6e8d3c1 + #x2c00eff6 + #x6254147 + #x65552704 + #xa5cf1048 + #xebddccb5 + #xbad6e8f2 + #xc8b19093 + #xf9e4dad3 + #xedde2fb + #xe4a6d53 + #x7a5f20f6 + #xa0c50650 + #xeae8d4b3 + #xc6d4d8e4 + #xc199849c + #xf1eff9eb + #xf1d1e1f6 + #x2c737d3c + #x7f5809f1 + #x85b30765 + #xf4f8d39c + #xcfc8c5db + #xa88489b1 + #xf1101eef + #xead3d6e1 + #x537f6c22 + #x7f3cfb07 + #x80b1207a + #x2f9c180 + #xcab5b5df + #x8b809cc1 + #x63c30da + #xf4cdb8cf + #x6f7f571e + #x6622022c + #x80cc417f + #x7ebaf80 + #xbca3afe8 + #x808cb1c6 + #x2c5725bc + #xfbb39ad6 + #x686a5333 + #x471b1b43 + #x99f2536c + #xfbd8b1a0 + #xaa9ab3eb + #x85a0bebf + #x4a550dac + #xeb9397f4 + #x4e616645 + #x37252c3c + #xca144e50 + #xe4cfc8d3 + #xa197b7e2 + #x95aebeb5 + #x5140f9ae + #xcf87aa10 + #x416d7a3e + #x302c2524 + #xeb1e3c3a + #xd3d4e8f9 + #x9e97b1cf + #xa1b7beaf + #x412cf4b7 + #xbe95c619 + #x4c7f7422 + #x29200e17 + #xf9203030 + #xcde6060e + #x9c93a5be + #xaababcae + #x3024f4bc + #xc8afd10d + #x657f6110 + #x12070225 + #x7242c20 + #xd3f61b22 + #x9a8e97b7 + #xb1bfbaa8 + #x2924f4be + #xdfbfcd02 + #x747b5315 + #xf1f60e43 + #x242b2002 + #xd8023240 + #x978b92b7 + #xbabfb3a1 + #x251defc3 + #xefc1ca00 + #x6c6a5127 + #xdbff2e57 + #x3e2900da + #xd80e4a61 + #x998e93b5 + #xbebcac9e + #x1d0eebc8 + #xf1c1d304 + #x555e5833 + #xe21d4553 + #x4010d8c3 + #xd6205e6d + #xa19797af + #xb8b3a7a1 + #xd00eaca + #xf2d1e404 + #x475c5c30 + #xf9354a43 + #x1eebb8bf + #xd82e615a + #xafa197a7 + #xaeaca7aa + #xf9e8c5 + #xedf200 + #x45574c27 + #xe40453a + #xf4cdafcc + #xdd30533c + #xc1aa93a1 + #xa8aaacb8 + #xf9f2ddba + #x1b07f9fb + #x40413929 + #x1945473c + #xdfc3b5da + #xdf29412b + #xd4b18e9e + #xa8aeb5cc + #xf1e4cfb3 + #x3517fff9 + #x29252c39 + #x244e503c + #xdfc5bee6 + #xdb203927 + #xe8b5899c + #xaeb3c8e6 + #xddcdc6b7 + #x472507f4 + #x60b2b48 + #x325a5129 + #xdbc3c6f4 + #xdd202e1b + #xf8b7859c + #xb1c1e404 + #xc3bfcabf + #x55350ee6 + #xe8fb2951 + #x415c450b + #xc5c1d409 + #xe81e19f9 + #xfbb187a5 + #xb7d6041b + #xb5c3d3c5 + #x654509cf + #xdaf42555 + #x47512ef1 + #xb1c6eb20 + #xf812fdda + #xf2aa90ba + #xc5f41e22 + #xb7cfd8c3 + #x7343f1bc + #xd4ed1d57 + #x45431be6 + #xbada022c + #xfdfbe8d4 + #xe8afa7d4 + #xdf102719 + #xc5d6d4c8 + #x6f2edaba + #xcfe21b5e + #x3c3514e4 + #xdbed0e2e + #xf9eae6e8 + #xe4c3c5e8 + #xfd1e200b + #xd1d4d6dd + #x570ed1ca + #xc5e2245e + #x322c12e1 + #xf2f4102c + #xf4e8ebf4 + #xede1e2f4 + #x101b10fd + #xcfd1e6fb + #x2efbdfda + #xc5ef2b45 + #x27240dda + #xeff11027 + #xf6efedef + #xf8f8f6fb + #x191402f6 + #xc8d1f915 + #xdf6f2e1 + #xccfb2727 + #x1e1e07d6 + #xe4ef1225 + #xf1dcd7e0 + #xfc030807 + #x7fef0f0 + #xd903150c + #xe07ead0 + #x103f1fa + #x1517fcf0 + #xf50c0e0a + #xe7d1e0f7 + #xf8081107 + #xf3dee1 + #xec000500 + #x1107f1e5 + #xfcece3fe + #x1a251501 + #x103fe05 + #xd9ceee0c + #xf70e1500 + #xf7e0c5d5 + #xf8f1f0f3 + #x11080303 + #xf0dce303 + #x2a3a2808 + #xf7ecee0a + #xd1daf801 + #xf70c0ef3 + #xe7c7b5d0 + #xf0e1e8ee + #xc131e11 + #xe7e3f003 + #x41462800 + #xced3f11f + #xd9e7eed7 + #xf00100ec + #xd1b9b0cc + #xe1e0e8e3 + #x15252a0a + #xf0f5f803 + #x4f431af8 + #xa9c90338 + #xe5e7d3ac + #xe0f0f7f0 + #xc2b7b0c2 + #xe3e7e3d0 + #x262c1efc + #x50513 + #x533a11fe + #xa0d31a48 + #xecdabe9c + #xcce3f5f8 + #xc3bcabb2 + #xf1e7d3c3 + #x2c1507fc + #x8152131 + #x563c1501 + #xaee1214a + #xe7d1b9a0 + #xc3def1f7 + #xcab799a2 + #xf5decec9 + #x13f3f803 + #x11384d3f + #x664613fa + #xb2e01a51 + #xe1d7bea0 + #xc5d9e7ea + #xc7a38ba2 + #xeedee0da + #xf3def701 + #x2c646a33 + #x7b4601f3 + #x9ecc1a64 + #xeae5bc89 + #xcaccd5e1 + #xae8b8bb0 + #xecfa01e1 + #xe1dceef1 + #x567f6317 + #x7d2ff005 + #x80c32f7f + #xfcecac80 + #xc7b9c3e5 + #x92829cc2 + #x32817d0 + #xe5d5d5e1 + #x7a7f4d0c + #x6413f52c + #x80d94f7f + #x7e19780 + #xb9a7c0f1 + #x808cb0c5 + #x2c4a13b3 + #xeabab7e7 + #x7d714317 + #x430a0e4c + #x93006676 + #xfeca9280 + #xa79bc5fa + #x84a0bec0 + #x514ffa9e + #xda99ac03 + #x66645128 + #x2f17264c + #xc5216158 + #xe5bca5a3 + #x9b99caf5 + #x92b0c2b7 + #x5d3de59b + #xbc87bc23 + #x586f6625 + #x2e252636 + #xea2c4d41 + #xd1c2c9ce + #x959bc7e1 + #xa0b9beae + #x532adca2 + #xa992d933 + #x587f6c0e + #x2c1f1125 + #x2a3d36 + #xccd9ece8 + #x9597b7cc + #xabbcbaa9 + #x4121dea9 + #xacabea2c + #x6d7f58f8 + #x1a07012c + #xf2a382c + #xd3ee0700 + #x9390a5c0 + #xb3c2b9a5 + #x361fe1b0 + #xc2bae71e + #x7f7f48fa + #xfcf30a46 + #x2a312c0f + #xda001f23 + #x8e879bbc + #xbac3b5a0 + #x311ce0b5 + #xd5bce017 + #x7d71460e + #xe5f7255d + #x432e0ce8 + #xe0113c4a + #x8b849bbc + #xc0c2b09c + #x2a0fe0be + #xdab9e018 + #x6868511f + #xe5113c5c + #x4315dec9 + #xe328555a + #x8e899bb9 + #xc0bcac9c + #x1c03e0c5 + #xd9c2ea17 + #x5a66561f + #xfa2c414a + #x21ecb9c3 + #xe83c5d48 + #x999099b2 + #xb9b5a9a3 + #xcfce0c2 + #xe3d7f50e + #x55645118 + #x113a3c3c + #xf0c7acd0 + #xf5465125 + #xa79592ac + #xb0aeabb0 + #x3f8d9b9 + #xfcf0f805 + #x535a411a + #x1e3d3a3d + #xd0b7b2e0 + #xfa41410e + #xb9998bac + #xacaeb3c2 + #xfceeceb2 + #x1700fc00 + #x43433a2c + #x2845413d + #xccb7baea + #xf838350c + #xc99b85ac + #xacb2c2d7 + #xeedec5b2 + #x2c0c01fc + #x232c3a41 + #x3853462f + #xccb9c0f7 + #xf1312f07 + #xd79982a9 + #xaebadcf3 + #xd7cec5b5 + #x3c1c08f0 + #x51c3d4d + #x485a3c11 + #xb9b5cc0a + #xf32e1eea + #xe09780ac + #xb2d0fc0e + #xc3cccab9 + #x4f2e03d9 + #xf3133c56 + #x515325f5 + #xa2bae321 + #x2103c7 + #xdc9285ba + #xc0ec171a + #xbed3ceb7 + #x6333eec0 + #xe80a365f + #x4c410ee5 + #xa5ce0333 + #x508e8bc + #xd19397d1 + #xd90a2513 + #xc7daccbc + #x6a23d5b7 + #xdcfe366d + #x412f03de + #xcaea1836 + #xfef0e0d1 + #xcea3b5e7 + #xf71e2307 + #xd0d9ccce + #x5807cac2 + #xcef73d73 + #x3626fed7 + #xe7fa1f33 + #xf1e5e5e7 + #xd3bed1f1 + #xc1f15fa + #xced3d9ea + #x38f1d3ce + #xc9fc4564 + #x2e21face + #xe8fe1e2e + #xece8e7e7 + #xe5deeaf7 + #x131507f5 + #xc7daf505 + #x18f1e3d3 + #xd308383d + #x261cf5ca + #xdefe1e26 + #xf1ece3da + #xf5f3fafa + #x110c00f7 + #xc3e70f17 + #x5fcf0d1 + #xe70f2117 + #x1e18f1d1 + #xda03211f + #xe0d0dbee + #xfc060dfe + #x3f3ebf3 + #xf00f0c05 + #x13fad6cd + #xeeee0c + #x140ffafa + #xf0f0103 + #xd2d0ec01 + #xfe0d11f5 + #xfae4dbec + #xf905fefe + #xdfae7e7 + #xecdef00f + #x1f220dfe + #x1faf505 + #xc9dbfa01 + #x110ce7 + #xeccdc9e5 + #xf7f2f0f7 + #x8030500 + #xded9f50d + #x363718f9 + #xe0def014 + #xd0ebf3dd + #xfc0a00dd + #xd7bbc1e2 + #xe7e5ecee + #xa1a1f01 + #xe2e7f906 + #x4b390df0 + #xb8d00030 + #xdeecd9af + #xeefaf5e0 + #xc8b4bdd7 + #xe0e7e7dd + #x1d2b1ff5 + #xf2f3fa0c + #x4e2f03f2 + #xaad91844 + #xe5debd9a + #xddf0f3e9 + #xc4b6b6c8 + #xe9e7d9cd + #x29260ff3 + #x1010a21 + #x4b2805fc + #xbaec2849 + #xe2cdb19e + #xd0e9f5ee + #xc9b4a8b8 + #xf2ddcbcb + #x1d0c05fe + #xc1f2f32 + #x4e2b06fe + #xcdf3264c + #xddc9b1a3 + #xc9e4f2e9 + #xc9a698af + #xecd7d0d6 + #xfef70603 + #x244c5029 + #x5e2bfaf9 + #xc2e7265a + #xe0d2af90 + #xc8d9e4e2 + #xba9395b3 + #xe7e7e9db + #xe7f005fa + #x5075550d + #x671beb06 + #xa5db3473 + #xf0d99e80 + #xc2c6d2e2 + #x9c879fbd + #xf70dfecf + #xe4e9f0e9 + #x7a7f40fe + #x5703ec2d + #x93e7537f + #xfed08380 + #xb4b1cdf2 + #x898eb3c4 + #x1f32feb4 + #xe2d0d2ec + #x7f6e3203 + #x3bf90652 + #xa50a6e78 + #xfaba8080 + #xa3a3d400 + #x879fbfbf + #x4b3eeb9c + #xd4adc40a + #x755e390d + #x2405245e + #xd22d6e5e + #xe5a6858a + #x95a1de00 + #x93afc1b3 + #x6032d293 + #xb397d22f + #x63674e0a + #x21162b4c + #x13d5a44 + #xcfa8a6ba + #x90a6deee + #xa1b8bda8 + #x5a1fc697 + #x9a9cf044 + #x677d59f3 + #x24181a39 + #x1d3b4939 + #xc6bdcdd9 + #x90a6cfd6 + #xadbdbaa3 + #x4713c69f + #x98b10342 + #x767f4ede + #x1d050637 + #x2d364034 + #xcbd9e9f3 + #x8e9ebac2 + #xb6c1b89f + #x3b0fc9a8 + #xacc10334 + #x7f7f39dd + #x3f0064b + #x3e39341d + #xd9f00316 + #x8790a8bf + #xbdc4b69c + #x360cc9af + #xbfc4fa2b + #x7f6e34f0 + #xebee1d60 + #x503616f7 + #xe206243e + #x8087a3bf + #xc4c4b397 + #x3003cbba + #xc6bff529 + #x76653e03 + #xe7053765 + #x501fe9d7 + #xeb244452 + #x8085a1bd + #xc6bfaf97 + #x26fcd0c2 + #xc6c4fa28 + #x686a4c06 + #xf9213d55 + #x2bf2c1cb + #xf9405242 + #x83899eba + #xc2b8ac9a + #x1afad6c4 + #xcbd40321 + #x656f4c01 + #xd2d3645 + #xf5c6add6 + #x850491a + #x908c97ba + #xbbb3ada3 + #x11f9d4bf + #xdee70514 + #x65673e01 + #x1b2f3044 + #xcdafb1e5 + #x144c32fa + #x9e8c90bd + #xb6b1b3b1 + #x8f2cbb6 + #xf7f3010a + #x59533611 + #x24343647 + #xc1adbbf2 + #x144226f3 + #xa88a8cc1 + #xb1b3bfc4 + #xfce4c1b3 + #xcfc0103 + #x40403b29 + #x34423d3b + #xc1afbffc + #xd3b1ff2 + #xb38789bf + #xafb8d4db + #xe9d6bfb4 + #x1b0a05f9 + #x2436453d + #x474c3421 + #xb4acc80d + #xa3716dd + #xba8585bb + #xb1c8eef2 + #xd6d0c2b4 + #x301a01e4 + #x11304b47 + #x52471d05 + #x9faddd26 + #xf2dfeba + #xbb8285c1 + #xbde40a01 + #xcdd6c6b3 + #x4724eec9 + #x3264957 + #x4e3606f2 + #xa1c2fe37 + #x1316e2a6 + #xb68091d2 + #xd4011f03 + #xcbd9c2b6 + #x551ad7ba + #xf3184968 + #x4222f7e7 + #xc2e41a3d + #xafad4ba + #xaf8aa8e5 + #xf21822f9 + #xd2d7c1c6 + #x5001c8bd + #xe00c5276 + #x3718f0db + #xe7002437 + #xf7e9d9d4 + #xb3a3c8ee + #x81f1aee + #xd2d0c9e0 + #x34ebc9c8 + #xd40d5a71 + #x3014e9cd + #xf20a2632 + #xe9e5dedd + #xc2c1e0f0 + #x13180de9 + #xcbd2defa + #x18e5d6cb + #xd9185555 + #x2b11e2c4 + #xe90d262d + #xe5e5ddd4 + #xdbe0f3f2 + #xf0c01ee + #xcbe5fa08 + #xcf2ddc6 + #xec1a362b + #x210cdecb + #xeb132421 + #xe9e0d7cf + #xeef500f5 + #xa01fcf7 + #xd2fe0f0d + #xafeddc1 + #xfe13130d + #x1808e0db + #xf71b1d13 + #xd8d6f30f + #xa140df2 + #x1f2f2fe + #xa110508 + #xfedd3e4 + #xf0e2011f + #x1b110505 + #x250afa0c + #xd1e2fe0d + #xc1808e4 + #xf5dfe6fa + #x5030005 + #xaf5eef5 + #xdfe0061b + #x30240dfa + #x3f2f718 + #xd3f2fef2 + #xc14fed6 + #xe2cadbf7 + #xf9f5fafe + #xa0d0d01 + #xdae60812 + #x46300aee + #xd4dd002e + #xe2f9e6c3 + #x50af2d4 + #xcfc1d6f2 + #xeef2f5ee + #x19291bfa + #xe9f3030d + #x4f2700ed + #xbce01846 + #xedebc7a8 + #xf500eedf + #xc8c0cfe6 + #xf0f0e7dd + #x2c3114f3 + #xfafa0619 + #x481f00f9 + #xc8f72c4f + #xe9d3b4ad + #xe7f9f3e9 + #xccbcc3d4 + #xf5e6d8d6 + #x2c220afa + #x50c1f2c + #x431f0501 + #xe206354f + #xddc7b4b9 + #xdff5f7e9 + #xceb0b0c5 + #xf2dbd6dd + #x140f0f03 + #x1b353f2b + #x4a200103 + #xe6033357 + #xddc8b2b0 + #xd8eeeee4 + #xc3a1a8c1 + #xe9e0e4e4 + #xfc0a1400 + #x46604a14 + #x5212f311 + #xcef73f6a + #xe9cea18c + #xcfdde2e6 + #xab95abc5 + #xf0faf3da + #xf30808f3 + #x75753a00 + #x4afcf333 + #xb4fc5b7d + #xf9c58380 + #xc1c7dbf3 + #x9698b9c7 + #x141df7c0 + #xf2f3eef3 + #x7f6a27fc + #x30f00c5e + #xbc1b787c + #xf9ad8080 + #xadb9e205 + #x91a6c5c1 + #x4130e6a6 + #xe0d1df0f + #x7f592903 + #x1bfc2e71 + #xe93e7d62 + #xe6958090 + #x9cb7f00a + #x9cb9c8b4 + #x5e29ce98 + #xc1b5eb38 + #x6f5d3afe + #x18123e69 + #x1d4f6a4a + #xcf9195c1 + #x95bef7fc + #xa9c3c5a6 + #x5e14bc9a + #xa2b40854 + #x6e7148e9 + #x221b3154 + #x3e4d563f + #xc3a6b9e7 + #x96c1e9e2 + #xb7c7be9f + #x4d06bba2 + #x9ac51f57 + #x7c7f3ecf + #x200d1d4d + #x48464f3e + #xc7c3da05 + #x98bbd1ce + #xbec8bc9d + #x3f00bcad + #xa8da254d + #x7f7c27c7 + #xdf71859 + #x4f464430 + #xd6dff322 + #x93a9bcc7 + #xc5ccbc9d + #x3afabeb5 + #xbbdf1d43 + #x7f691dd4 + #xf3f3296e + #x59442b0d + #xe4f91646 + #x899ab2c8 + #xcccebb9a + #x35f5c1be + #xc3da163f + #x7f6229e9 + #xeb063f73 + #x572e00eb + #xf018385b + #x8093afc8 + #xd1cab795 + #x2cf0c7c8 + #xc1d8163c + #x76693af0 + #xf91f4867 + #x3701d4db + #x13a4d4f + #x8093abc7 + #xcfc3b091 + #x20f0cfce + #xc3e01833 + #x757543ed + #xd2c3f59 + #xd1bee2 + #x1b544824 + #x8793a2cc + #xcabcaf96 + #x18f5d4ce + #xd1ee1625 + #x7a763cee + #x1b2b3857 + #xcfb2bef2 + #x305931fc + #x91919dd6 + #xc3b9b4a2 + #x16f5d1c8 + #xe7f7121d + #x756935fc + #x202b3a5d + #xbbadc7fc + #x354b1beb + #x9a8c9ce0 + #xbcbbc0b4 + #xfedcac1 + #xfafe0f16 + #x60543712 + #x2c374156 + #xb9b0cc05 + #x2c3f12e7 + #xa1899ce0 + #xb9c1d3c7 + #xfeddc3bc + #x8060f0d + #x464a4124 + #x41433c3e + #xb2adcf16 + #x253a0cda + #xa28398db + #xb9cfe9d8 + #xebd4c1b9 + #x19140cfa + #x334a4d33 + #x52432922 + #xa1a9e230 + #x2735fabc + #xa48091d8 + #xc1e401e6 + #xdbd6c1b7 + #x331ffadf + #x27445246 + #x5433110f + #x9fb90346 + #x2b22e0a9 + #xa18096e2 + #xd60118ed + #xdadac1bb + #x4618e2ce + #x1637575e + #x461d0001 + #xbcdf204b + #x2005ceb5 + #x9d83a9f2 + #xf21d24e9 + #xddd8bec8 + #x4803cfca + #x296073 + #x3811f5f2 + #xe7032e44 + #xaeecfd3 + #x9c96c7fa + #xa2922e0 + #xddcfc3df + #x35edccd1 + #xee296e76 + #x310deddf + #x16303c + #xf5e7dae2 + #xa9b4dff7 + #x182516db + #xd6cfd6f9 + #x1de6d3d3 + #xee357362 + #x2e0ce0cf + #x11d3037 + #xede6dddd + #xc1d3f0f0 + #x19190adf + #xd4dff00c + #xcedd8ce + #xf93a5d41 + #x2905d8ce + #x6243030 + #xebe0dddf + #xdff0fcf2 + #x120c00eb + #xe2fa0511 + #xcf5d4c8 + #x6253322 + #x1dfedbe0 + #x19292722 + #xe9dadded + #xf50305f5 + #xd01fcf5 + #xf3120f0f + #x14f9cec7 + #xa0f0f16 + #x14fce7f5 + #x2e2b1912 + #xd3e40723 + #x1316fddf + #xf6ecf504 + #xc040404 + #xfadadcfb + #xdae91319 + #x201107f5 + #x16f5f616 + #xd7f30409 + #x1413f1d3 + #xe7dff002 + #xfb02ff + #xfdf1f6ff + #xd7f01311 + #x341b02e6 + #xeee6ff2a + #xe2faf1dc + #x110ce6cd + #xd5d2e9ff + #xf5f5fff3 + #xc130afb + #xddf80c0a + #x411bf8df + #xc9e11341 + #xeef0d2b9 + #x702e1d7 + #xc9cde2f6 + #xf1f5f5e2 + #x25280af5 + #xeefa040f + #x3b11f3e9 + #xc9f32c4d + #xecd7bab5 + #xfbfbe6e2 + #xc9c8d7e9 + #xf5ece4d8 + #x312704f5 + #xf8ff0e22 + #x310cfbf6 + #xe209394b + #xdfc3b7c6 + #xf1f8ebe6 + #xc9bec6da + #xf0dfdcda + #x251907fd + #x418282a + #x310ffffd + #xf10f3b4a + #xd3bebac9 + #xe9f6ebe1 + #xc3adb7ce + #xe4dae2e1 + #xf1411fb + #x2a40391b + #x3909f609 + #xe2074057 + #xd8c1adad + #xe1e9e2df + #xb0a1b4cb + #xe6ebf0dc + #x5160ff3 + #x5c5c2d04 + #x34f6f62c + #xc90a5768 + #xe6b98f88 + #xd0d7ddeb + #x9ea1bac9 + #xff05f1c6 + #x20cfdf3 + #x7f5c19fa + #x1de90e5a + #xc923736b + #xe99e8080 + #xbcc8e4ff + #x97adc6c3 + #x2818e2ad + #xf5eeec09 + #x7f4b14fd + #x7f53278 + #xf1467f55 + #xda82809c + #xaac6f60a + #xa0bec9b4 + #x4514cb9c + #xd5d2f531 + #x6d4822f8 + #x50c4675 + #x285a703e + #xbf8088ce + #xa0d00200 + #xadc9c4a1 + #x4d02b79b + #xb4c91454 + #x68592ce1 + #x11194363 + #x4a5a5a34 + #xaf88adf8 + #xa3d8fae6 + #xb9cdbe99 + #x41f1b0a3 + #xa5d8315f + #x776b23c4 + #x1914315a + #x4b505036 + #xb2a6ce11 + #xa6d3e1ce + #xc1cdb997 + #x34e7b4ad + #xadee3c5a + #x7f6b0cb5 + #xe022761 + #x464b4a2f + #xc1c4e927 + #xa5c1c9c4 + #xc8ceb799 + #x2de4b5b7 + #xbffa3750 + #x7f5affbc + #xf5fb3172 + #x484a3614 + #xd2df0743 + #x99afbcc8 + #xced0b799 + #x2ae1b9bf + #xc9f62f4b + #x7f4f04cd + #xe7094678 + #x4a3711f1 + #xe2fd2a57 + #x8da1b9cd + #xd5ceb492 + #x22ddbfc9 + #xc8f12c46 + #x755518d7 + #xf11e5072 + #x310ee7e1 + #xf823434d + #x879cb4d2 + #xd7cbad8c + #x18e1cbd2 + #xc6f52d3c + #x756425d7 + #x5284863 + #xfddacde6 + #x14434125 + #x8799abd5 + #xd3c4aa8a + #xfe6d2d3 + #xcdfb282f + #x7f6d23d5 + #x13253c61 + #xc6b7cbf5 + #x32502cf6 + #x8c92a5e6 + #xcbc1ab91 + #xee9d5d0 + #xdcff1e23 + #x7f661ee1 + #x19233e69 + #xa8afd300 + #x414811dd + #x918ca8f6 + #xc3bfb4a0 + #xce6d0cb + #xec00181e + #x735720f5 + #x1e2c4668 + #xa5b2d805 + #x403702d8 + #x9288ad00 + #xbfc4c3af + #x2ddcbc4 + #xf8051819 + #x5c4f2c07 + #x2f374354 + #xa5b0da11 + #x362ffbd0 + #x9287adfb + #xbed0d7ba + #xf3d5c6be + #x70f140c + #x4b4f3914 + #x40393139 + #x97abe628 + #x322aeeb7 + #x9282a8f5 + #xc4e4ecc4 + #xe4d2c3b9 + #x1b1807f5 + #x43504127 + #x462a1b28 + #x8db40443 + #x341dd5a3 + #x9180a5f6 + #xd3fd02cd + #xddd2beb9 + #x3113eedf + #x36484a40 + #x3e180a1b + #xa0d3234d + #x2a02c3ad + #x8c80ad02 + #xec1811cd + #xdccdbcc4 + #x3900d8d7 + #x1e3e595a + #x2f0a000a + #xcdfb3446 + #x14e6c1cd + #x8a8cc407 + #x72a14c8 + #xddc8bfda + #x2cebced8 + #xa3c6b66 + #x2305f6f3 + #xf5163439 + #xfbdacee7 + #x92a5dd02 + #x182c0ec3 + #xd8c8cef3 + #x16dfd0da + #x24a775a + #x2002e7dd + #x71e2f34 + #xecdadaec + #xaac4e9f5 + #x1e2300c4 + #xd5d2e605 + #x7e2d3d5 + #x9526d40 + #x1df8d7d5 + #x11233132 + #xe9dadff0 + #xc8e2eeee + #x1916f6ce + #xddebfb0f + #x4e9d2d0 + #x11464d27 + #x16eed2dd + #x272a2d2a + #xe6d7e600 + #xebfaf5ec + #xf05f3e2 + #xf302070e + #x9e7cbd5 + #xc22281b + #xeeee1f1 + #x3b281e1d + #xdfd5ec18 + #x20afbec + #x7fdf5f3 + #x90e090c + #xae2c9df + #xff02111d + #xcf5f300 + #x411e0c11 + #xd8f7151f + #x1b0dead3 + #xeeeffc10 + #x9030901 + #xe7d8f210 + #xd5001b09 + #x2310fbda + #xf1e90325 + #xe5fe01f7 + #x1a06dfd2 + #xe0e7f90e + #xfe06f6 + #xf7f60008 + #xdf030e01 + #x2f10f1d3 + #xd3e5153a + #xf1f9e2cb + #x13fcd7d7 + #xd3dff208 + #xf6fbfee5 + #x151506fc + #xea030406 + #x3108e9da + #xc6f12f4b + #xf1e0c6bc + #x9f4d8e2 + #xced8e9fc + #xf6f7f1d8 + #x2f1f01f7 + #xf400081b + #x2301efea + #xda0b3f49 + #xe2c8c0ca + #xf4e2e7 + #xcdcedaef + #xf2eae7d8 + #x2f1801fb + #xf9091b2c + #x1f04f9f6 + #xf21a413f + #xd0bec5d7 + #xf9f4e5e2 + #xc8c1cbe4 + #xe7e0e9dd + #x22160bfc + #x10272d28 + #x2304fb00 + #xf2184143 + #xcdbec0c6 + #xf1eee2dc + #xb9b3c1dc + #xdfe5f2dd + #x1a1d0ef2 + #x3f442813 + #x22f7f91a + #xdd185050 + #xd3b6a4a2 + #xe2dfdde2 + #xabaec0d3 + #xeef9f6ce + #x161a03ef + #x6a4b1604 + #x10ea0d4b + #xda2d6b55 + #xd89a838f + #xced2e4f4 + #xa1b4c5ca + #x100be9b6 + #xd04f400 + #x773f0901 + #xfbf23274 + #xfb4e7d47 + #xca8080a7 + #xb9d0f703 + #xa6c1c6bb + #x2f09d0a4 + #xf2e9fb23 + #x683711fe + #xf70d517c + #x2f667231 + #xaf808bd8 + #xafdc08fe + #xb3cdc1a7 + #x3afbbb9f + #xd0dd184b + #x5e4318e9 + #x622536b + #x4e665d25 + #x9980ae03 + #xb1e908e7 + #xbed0b89a + #x35e7b3a7 + #xb9ea3c5e + #x6b530eca + #x13204360 + #x4e5d5027 + #x978fcb16 + #xb9e9f2cd + #xc6ceb199 + #x28dcb3b1 + #xbc034e60 + #x7f58f7b3 + #xb113768 + #x41564c27 + #xa6aee522 + #xbbd8d8c1 + #xcbcdaf9d + #x20d5b4b9 + #xcd135058 + #x7f4be7b1 + #xf6083e78 + #x3e533f11 + #xb9c80135 + #xb1c3c8c3 + #xd2ceaf9f + #x1ad2b8c0 + #xd8134751 + #x7f3ee9c0 + #xe711517f + #x434420f4 + #xcde7234b + #xa2b3c1cb + #xd8d0ae99 + #x11d0beca + #xd70d434b + #x723ffbcb + #xee235d7c + #x3720f7e0 + #xe50e3e47 + #x95a9bcd0 + #xddcea98d + #x6d2c8d3 + #xd2094141 + #x704e08cd + #x12d536f + #x9eedce4 + #x6344122 + #x90a1b4dc + #xdccba287 + #x1d8d3da + #xd50d3c34 + #x7c5909cb + #xe27466b + #xcdc6d5f2 + #x2a4728ef + #x8f99b1ee + #xd5c5a188 + #x1dfd8d8 + #xe010322a + #x7f5904d0 + #x11224472 + #xa6b9ddfe + #x414109cd + #x8f90b606 + #xcec3a690 + #x3e0d8d3 + #xec0e2823 + #x7f4e04df + #x15284e77 + #x9cbbe203 + #x462ff6c3 + #x8b8bc116 + #xcac6b39c + #xddd3cd + #xf40d2220 + #x6f4911ef + #x2235506b + #x9fbbe409 + #x3c23eebe + #x8a8bc81a + #xc6d0c5a6 + #xf4d8cec5 + #x132018 + #x5e4b20fe + #x34394353 + #x97b6ee1f + #x3720e4ac + #x888bc513 + #xcbe0d7ac + #xe7d3cac1 + #x111a1806 + #x56502c0e + #x3c2c2a41 + #x87b90639 + #x3716ce95 + #x8787be10 + #xdaf6e7af + #xe0d0c5c1 + #x251603f2 + #x51503527 + #x34181a35 + #x8ad32847 + #x32feb895 + #x8080c016 + #xee0ef6b3 + #xdfcbc0c8 + #x2d06ece9 + #x41494641 + #x220b1128 + #xaefb3a41 + #x1be0b6b6 + #x8087d01b + #x622fcaf + #xdfc6c0d8 + #x27f1dde5 + #x2d4c5e53 + #x18080810 + #xdf183a32 + #xcec6dd + #x839ce515 + #x1b2cfbac + #xdac3cdee + #x13e0dae5 + #x205b7251 + #x1503f6f6 + #x122342c + #xeccedaf4 + #x97bbef04 + #x2728f1ab + #xd3cde003 + #x1dddadf + #x2368723e + #x13f7e0e7 + #x1325342c + #xe4d2e5fc + #xb6d7eff6 + #x251de7b4 + #xd7e0f70e + #xfee0d5d7 + #x2c635b27 + #xbe9d5ea + #x252a342a + #xe2d5ec0e + #xd8eaecee + #x1b10e5ca + #xe7f60411 + #x1dfced8 + #x2a493a1d + #x3e0daf7 + #x372d2c22 + #xdcd8fb28 + #xf9fcefea + #xd03ece7 + #xfe030b0e + #xfed5cde9 + #x1020251b + #x3eaecfe + #x391f1818 + #xd7df0939 + #xe08f4e5 + #x3fef6fe + #xd060b09 + #xf6cdd2fb + #xf4031b1b + #xbf9fcf9 + #x2c0b0813 + #xe80d12fd + #x1afdddd3 + #xedf7081c + #x70a0cf8 + #xe2e8050f + #xeb1a18f8 + #x2208e3ca + #xcaed1d34 + #xf305f7da + #x17f5d7da + #xe5f20518 + #x20a05eb + #xfd000705 + #xf5100cfd + #x2400dfd3 + #xc3f83240 + #xf8f0d5bf + #xfebd5e5 + #xddebff12 + #xfd05f7dd + #x1f1404fd + #xf8070510 + #x1df8e0e2 + #xd30f4545 + #xe8d3c7c7 + #x5e8ddeb + #xd8e2f207 + #xf8f8ebd8 + #x2f1400fb + #xf804142c + #x14faedef + #xf5254a3a + #xd3c3cdda + #xffeae3e5 + #xd2d5e3fb + #xefedeadb + #x2a1207fd + #x2172834 + #x15fff5f5 + #x42a4434 + #xcac3d0d8 + #xfaeae3db + #xc5c7d8f3 + #xe3ebf0db + #x241a0cf5 + #x22302c27 + #x17fbf808 + #xfb27473a + #xcdc0bdbb + #xf2e3dfdb + #xb7bdd3eb + #xe8f8f5d0 + #x251f05ed + #x4d3c1c18 + #xcf20832 + #xf3345a40 + #xcfa69da5 + #xdfd8e3e8 + #xadbdcfdf + #xff07edbd + #x2214f8f5 + #x64340f15 + #xf8f72d62 + #xf526d37 + #xc0828ab3 + #xcad7f5f5 + #xafc3cac8 + #x1d08d8ad + #xdfbfd14 + #x612c0f10 + #xf00f527a + #x406f6c22 + #xa28095e2 + #xbde20af5 + #xbacdc3b3 + #x2cf8c2a8 + #xebef183c + #x553012fb + #xff2a6171 + #x62755915 + #x8880b30c + #xc0f30fe0 + #xc5d0b8a5 + #x28e3b5ad + #xd3fd3f55 + #x5d3d08db + #x12325564 + #x5d694818 + #x8086d31a + #xcbfaffc5 + #xcfcdaba3 + #x1cd5b2b7 + #xd217595a + #x7240efbf + #x12274869 + #x4a5d451f + #x8da3e81c + #xcfede7b7 + #xd3c8a6a6 + #x12cfb5bf + #xe02a5f55 + #x7d35d7b7 + #xff184a7c + #x485f4412 + #xa3bb0028 + #xc8d8d5ba + #xd8c8a8ab + #xccdbac5 + #xed2f5c4d + #x7725d3c0 + #xef1c5a7f + #x57552cf8 + #xb8d81f40 + #xb7c3cbc3 + #xddcbaaa6 + #x4cbbfcd + #xef2a5747 + #x6922dfcb + #xf32c657f + #x553705e3 + #xd2003c47 + #xa8b7c7cb + #xe3cda69a + #xf8cdcada + #xea27543d + #x652fedcf + #x5355f77 + #x2d05e5e3 + #xf52a4027 + #x9dafc0d5 + #xe3caa090 + #xf3d2d7e2 + #xeb274f32 + #x723ff2cf + #x12305272 + #xebddddf2 + #x1f442aef + #x98a5bfeb + #xdfc39a8d + #xf3dadfe3 + #xf0284427 + #x7f44efcf + #x14284f7c + #xb8cae3fd + #x3f4007c2 + #x939ac50a + #xd8c09b90 + #xfae0e0e0 + #xf8243724 + #x7f3dedd8 + #x102c597f + #xaacbeaff + #x452cebb2 + #x8b96d322 + #xd3c2a596 + #xfae2ddda + #xfb1f3222 + #x7738f8e3 + #x18375f7f + #xafcbea02 + #x3d18e0b0 + #x8698e22c + #xd2cab39a + #xf5ddd8d0 + #x21f2f1d + #x693d07f0 + #x2a3d556d + #xa8c3ed10 + #x3514d8a3 + #x859de728 + #xd5dac29d + #xeadad0cb + #xd222810 + #x624412fd + #x3735425c + #x93c3022c + #x350fc588 + #x859ae024 + #xdfebd0a0 + #xe3d5caca + #x1d2017ff + #x61471d12 + #x32223250 + #x8bd8243d + #x32fbaf80 + #x8092dd28 + #xf000dba2 + #xe0cfc5cf + #x281502f2 + #x5747302d + #x20152847 + #xa5003f3c + #x20dba695 + #x808ee72d + #x814e3a0 + #xe0cac5db + #x25fff0ed + #x484d4d44 + #x100f1f34 + #xda20422c + #x4c7bac5 + #x809df828 + #x1f22e59a + #xdbc8cdef + #x12eae7eb + #x3d5f6748 + #xc0a0c1a + #x72c3720 + #xebc5d7eb + #x88b80017 + #x2f25df98 + #xd3cddf04 + #xffdfe3e5 + #x3f72713a + #xdfff204 + #x1c2c3220 + #xe0d2eaff + #xa5d2fdff + #x341dd59e + #xd3dbf315 + #xf7dddfdd + #x4875622a + #x8ebdf00 + #x242d3424 + #xddd8f310 + #xc7e3f3f2 + #x2c10d2b3 + #xdfef041c + #xf8dbd8db + #x4864481f + #xffdfdb08 + #x3032321f + #xdadd0028 + #xe5edf0eb + #x1d04dbd2 + #xf2fd0c18 + #xf7d3d3e7 + #x3742341d + #xf8e2e70c + #x342d2715 + #xd7e81235 + #xf7efe3 + #xcfdeff5 + #x4050d0f + #xebcddffd + #x14272a17 + #x2f3f3fd + #x1d171714 + #xd7f51f32 + #x1200efdd + #xfbff0f + #xd080f08 + #xe0cbed10 + #xf818270d + #xf02f7e8 + #xff0d18 + #x1a03d6 + #x14f3dde0 + #xf8061b26 + #xd1709f6 + #xed04150d + #x112511f3 + #x1ff9d4df + #xc6093c3b + #x307eac4 + #xfebddeb + #xf3031823 + #xd14feed + #x90d0f07 + #xd150a07 + #x17f2daeb + #xdc1b4a3c + #xf9ebd4c4 + #x6e5e2f3 + #xebfb111d + #xa09f2e4 + #x23140904 + #x6071225 + #xff0e7f6 + #x335036 + #xe4d4d6dd + #xfee5eaee + #xe4ee0614 + #xfbebe2 + #x29140a03 + #x10f2839 + #xffbf5f9 + #x1d3e492d + #xd4d1ddea + #xfbe8eae2 + #xd9e0f90c + #xf3f6eee0 + #x281a0dfc + #x15263437 + #x1200f901 + #x1f3b442e + #xd2d2d9dd + #xf8e8e5da + #xccd6f004 + #xf200f5da + #x2b220af2 + #x36342d2d + #xdfb041f + #x183c4c31 + #xd6c1bec9 + #xede2e5e2 + #xc1cfeaf8 + #xcf2cc + #x301d00f2 + #x4f301d29 + #xfefe234c + #x28525b2d + #xc69ea8d1 + #xdae0f3ed + #xbecfe0e4 + #x140de2be + #x260dfe06 + #x52261a29 + #xf8154f6c + #x536e5e1b + #xa580aaf6 + #xceed09ed + #xc6d2d2cb + #x23feccb8 + #xc011428 + #x4c281d1b + #x4336871 + #x777a4f0f + #x8380c41f + #xcf0114d7 + #xd1d4c3ba + #x23eabebb + #xf00c3b45 + #x503314fb + #x18426566 + #x7a713f11 + #x8089e02b + #xdf0d09bb + #xdacfb5b5 + #x18dabbc4 + #xea285a50 + #x6134f9d9 + #x1d3c5a69 + #x6b653c1a + #x80a5f528 + #xea07eea8 + #xdfc9adbd + #xad1bdce + #xf841684d + #x6e26ddc9 + #x12305a7c + #x68613c17 + #x96bd0631 + #xe5f2d9a8 + #xe0c6afc3 + #xccc0d2 + #x74a6844 + #x6812d1cf + #x42e687f + #x795e2d03 + #xaad6204c + #xd4ddcfb2 + #xe5cbb3c0 + #xf9cbc6da + #xc49653e + #x5a0ad7dc + #x4376f7f + #x7f490dee + #xc3fb3c5b + #xc0cfcebd + #xeaceb3b3 + #xf2cecfe4 + #xa456136 + #x5515e4e0 + #x12416c7c + #x5d1feeeb + #xe7264741 + #xb2c4cbc8 + #xebccada5 + #xebd2dcee + #x9475b2b + #x6125e8df + #x203f6177 + #x17f5e4f9 + #x14443309 + #xa8b8c9e0 + #xeac6a49e + #xebdae7f3 + #xc475022 + #x742de5dc + #x1f375e7f + #xdddfea04 + #x3c450dd2 + #x9fadd104 + #xe4be9f9c + #xf3e4ebf2 + #x113f441d + #x7a29e4e0 + #x1736667f + #xc8ddf204 + #x4c30edbb + #x94a8e528 + #xddbda49c + #xf9eaebeb + #xf363e1f + #x7428ebe8 + #x1a41717f + #xcedff203 + #x451adfba + #x8eaffc39 + #xdcc3af9a + #xf8eae7e5 + #x11333b1d + #x6b2bf9f3 + #x28496f7f + #xcbd7f00c + #x370dd6af + #x8cb80739 + #xdfd1ba99 + #xf3e5dfdf + #x17333715 + #x663404fc + #x36446076 + #xb5d20023 + #x3307c391 + #x8ebb0633 + #xeae0c39a + #xeee0d7dc + #x22332909 + #x66370c0c + #x34344f6c + #xa4e22037 + #x31f6a880 + #x8bb30134 + #xf8f2cb9c + #xebdad1e0 + #x2b2817fe + #x613b1d22 + #x25254566 + #xb8063b39 + #x25d99c86 + #x82ac0439 + #xc01d19a + #xe7d4cfea + #x291506f6 + #x57423937 + #x15203f58 + #xee26412b + #xac1acb5 + #x80b21237 + #x2212d493 + #xdfcfd6fb + #x1a01fbf2 + #x4f585a42 + #x121d2e41 + #x2236371f + #xedc1cee8 + #x85c91b23 + #x361bd18c + #xd9d2e40f + #x7f2f5eb + #x52716b3c + #x1411112b + #x37342e1b + #xdcd1eb06 + #x9ee01407 + #x3e18c991 + #xd6ddf522 + #xfbebf0e4 + #x607f662d + #x11fbf822 + #x36332e20 + #xdae2fb14 + #xbeed06f5 + #x390cc6a5 + #xddeb062d + #xf8e8e8e0 + #x68745222 + #x6e8ed25 + #x3637311d + #xdcea0723 + #xd9f0fced + #x2bfeccc4 + #xeefb112b + #xf6e0e4e8 + #x5b5b3f1d + #xfbe5f228 + #x393b2d15 + #xdcf21733 + #xeef3f8e8 + #x1af8e0e7 + #x61422 + #xedd9e8f9 + #x3e423618 + #xfceef81b + #x2e2e230f + #xe0032329 + #x3f9f3e0 + #xafbfb07 + #xc0f1414 + #xe0ddfb0c + #x1f34300a + #x9fcf300 + #x9171f17 + #xe8142512 + #x11feeddd + #x4000f1d + #x1114120a + #xd9e70d17 + #xc3028fb + #x1504eae7 + #xe5042023 + #x608dfb6 + #xffe2d8e8 + #xf7091d1b + #xe0cf6ee + #xf60b0c05 + #x180ff7ea + #x3d4caf6 + #xe821412c + #xfff0d3bf + #xf9dedeee + #xf3051b18 + #xe05edea + #x80c0603 + #x9030206 + #xfcd8d8f9 + #x9344424 + #xedd8d1db + #xf0dbe4ee + #xebfc1412 + #x8fae5e4 + #x170c0302 + #xfc001724 + #xf9e2e8f9 + #x2c43401b + #xd9d1def4 + #xebdee4e1 + #xe1f00b0b + #xfaf3e5e1 + #x1a0e05fc + #x2142c2e + #xfff1f1f9 + #x353e3418 + #xd1d4e1f4 + #xebdfdcd4 + #xd4e50305 + #xf4f6e8d9 + #x1e1502f0 + #x1a262f2b + #x2f4f608 + #x2c3a351d + #xd3cdd1e5 + #xe5dcd9d4 + #xcadefafc + #xfa02e7cd + #x2715f7eb + #x32272429 + #xf9f40c2c + #x2f413e1a + #xcab0bce7 + #xdbdbe4de + #xc4d8f0eb + #xb05dcc2 + #x2609f3f6 + #x381b1d2e + #xf108354d + #x4d58410b + #xa98cb908 + #xd0e7f7dc + #xc5d4dfd6 + #x17fccdbc + #x14ffff0e + #x32171d26 + #xfd29565b + #x736535ff + #x8080cd2e + #xd3fd05c8 + #xcdd1cbc4 + #x17e8c1bf + #xfd062027 + #x351e180c + #x14435f56 + #x7f622703 + #x8088e73d + #xe20ffda7 + #xd4c8b8bc + #xcd6bbc7 + #xf4244438 + #x442302ea + #x20435858 + #x7456260f + #x80a1f93a + #xf10fe591 + #xd6beadc1 + #xffcabbcd + #x2415938 + #x4f15e4d8 + #x18355668 + #x74522b12 + #x85b80640 + #xf3fdcb8c + #xd4b8afcb + #xf1c5bed3 + #x12525e2f + #x4cffced9 + #xc326479 + #x7f522105 + #x98cd1a58 + #xe5e7bf94 + #xd6bcb6cd + #xe7c2c2d9 + #x1d555e29 + #x3df0cde5 + #xc3d7079 + #x7f4108f3 + #xaded346b + #xd0d4bb9e + #xdbc1b9c4 + #xdfc1cbe2 + #x1e535b21 + #x35f4d8eb + #x18476e6d + #x651eebee + #xce15415b + #xbecabcac + #xdfc2b3b3 + #xdec7d6eb + #x1d555518 + #x3e02deea + #x21446265 + #x27f7def9 + #xfc353221 + #xb2bfbcc4 + #xe1bba7a7 + #xdfd1e2f1 + #x20554a0f + #x520bd9e5 + #x1d3a5e70 + #xeadfe403 + #x293a0ee5 + #xa6b3c5eb + #xdeb5a1a1 + #xe5deeaf3 + #x214d3d09 + #x5c0bd8e7 + #x1437687f + #xd1dcee02 + #x4026eac5 + #x98addc17 + #xd8b0a19d + #xebe7edf1 + #x20433509 + #x5b08dbeb + #x113e767f + #xd8dfeefc + #x3d0bd6c2 + #x8eb6fa32 + #xd3b3a494 + #xf0eaebea + #x1a3b340c + #x530be5f1 + #x1e4a797f + #xd9d9e800 + #x2efccbbb + #x8cc50f37 + #xd4bca98c + #xf0e8e5e4 + #x1a3a3109 + #x5212edf6 + #x2e4a6e79 + #xc4d0f012 + #x26f4bba0 + #x91ce1432 + #xdecaac8b + #xede2dce1 + #x213a2702 + #x531af600 + #x313e5f71 + #xafd80927 + #x24e5a183 + #x92cb0f2f + #xebd8b28e + #xeadbd6e4 + #x293218f9 + #x521d0311 + #x212f566d + #xbef7272e + #x18c78e88 + #x8bc51134 + #xfce5b68c + #xe4d4d3eb + #x271e08f3 + #x4a261d26 + #x12275064 + #xf61b3221 + #xffac97b3 + #x82c71a31 + #xcf3bb85 + #xdcd0d6f7 + #x1b0bfded + #x473b3b31 + #xe244655 + #x2f2f2711 + #xe1a9b8ed + #x82d6211d + #x21ffb980 + #xd3cddf0b + #x9faf7e7 + #x4d55502f + #x151e2f41 + #x472e1a0f + #xcebedc0e + #x94e81a00 + #x3100b380 + #xd0d1ee20 + #xfaf3f1df + #x5b6a5221 + #x150b1235 + #x3d261815 + #xced6f115 + #xb0f409e8 + #x31f7ad8c + #xd6df002f + #xf3edeadb + #x686d4714 + #x6f1ff34 + #x2f291e15 + #xd4e4fd1b + #xcaf3fadf + #x26e8b3aa + #xe4f00f34 + #xeee5e2de + #x675e380e + #xf6e4fc38 + #x322f1e0c + #xd8ed0e27 + #xdbf0f3dc + #x17e2c5cb + #xf3fd152c + #xe5dce2ea + #x524a3108 + #xf0e5fd31 + #x352e1803 + #xdcfc1a26 + #xe8f0edd9 + #x9e7e2ea + #xff06141d + #xd9dbeef9 + #x353d2cff + #xf6edf91a + #x211e1405 + #xe80e1706 + #xf6f1e5d8 + #xfff4ff02 + #x60c0c0c + #xd4e80003 + #x23321eee + #xede5ff + #xfd111b12 + #xf71a0be1 + #xf1dfd9 + #xfc001411 + #xb0f0600 + #xd6f70e08 + #x1b2c0ee1 + #x8e7d3ee + #xe20c2720 + #x11f5d5d3 + #xf5dddffb + #x1162213 + #x1302f1f4 + #x710080d + #x1901f1f5 + #xe9c6e211 + #x2d41411d + #xe3d9ec + #xefdfe5f8 + #xfb112010 + #xefaecf1 + #xe0d070d + #x801080d + #xe9d5ee08 + #x454a3b13 + #xe9d7e50b + #xe9e0e8ef + #xf40a1c0a + #x5f2e9eb + #x160e0708 + #xe2523 + #xefe8f700 + #x514a300e + #xdddcf116 + #xe8e0e0df + #xe8011402 + #xfdf5ebe5 + #x1a1304fe + #xe253328 + #xfaf2f701 + #x443f2c11 + #xdddce90a + #xe5ddd9da + #xddf80dfd + #xfde9da + #x2513fbf4 + #x252c302a + #xfaf40219 + #x393e3213 + #xd7c9d902 + #xdfdcdddf + #xd5f104f2 + #xd01e0cf + #x290bf2f8 + #x2f252a33 + #xf5012238 + #x474a330a + #xbba8d31a + #xd7e5eedd + #xd2e9f4e2 + #x17fbd5c7 + #x1d01f80b + #x291d2d33 + #xfb204848 + #x665529fd + #x9292e33f + #xdcfbfbca + #xd3dfdcd0 + #x19eccac7 + #xb051120 + #x261f2922 + #x11415a48 + #x78531afe + #x8095fb57 + #xeb10f5a7 + #xd6d2c6c7 + #xddcc6cd + #x41f322d + #x30221602 + #x284d5848 + #x7548190d + #x80aa0d58 + #x16dc87 + #xd7c4b8cd + #xfdd2c7d6 + #x10414b2f + #x3c17f7ee + #x29445757 + #x73452219 + #x80be195d + #x707c080 + #xd3bbbada + #xeecaccdc + #x26575728 + #x3bfeddee + #x1f3f6167 + #x7c4b2211 + #x93d2256f + #xfdefaf83 + #xd0bac1e0 + #xe3c6d0e0 + #x36605720 + #x2ae9d5fa + #x19476f69 + #x7f440efe + #xa5eb3b7f + #xe8dcae8f + #xd0c0c9dc + #xddc4d6e5 + #x3c64551a + #x1de5d901 + #x2253705d + #x6426f2f7 + #xc1104b75 + #xd6d0ae9c + #xd6c3c6cd + #xd9c9ddec + #x3e675110 + #x22efdd00 + #x2c546753 + #x2900e501 + #xee304442 + #xc7c6afb2 + #xdac0b8be + #xd9d2e9f4 + #x3f664505 + #x33fadffb + #x294a635d + #xeee5e90b + #x1f3b2201 + #xbabbb8dc + #xdab7acb2 + #xdfe0f4f8 + #x3f5d36fe + #x42fddcfb + #x1c426c72 + #xd3dff50a + #x3b28f8dc + #xabb5d20b + #xd5b1a8a8 + #xe8ecfaf7 + #x3b512dfe + #x42f8dd00 + #x16487c7f + #xdce5f500 + #x3c0bdfd6 + #x9cbdf42f + #xcdb1a89c + #xeff2faf1 + #x35472c02 + #x3cf7e204 + #x1f557f7f + #xe2e2ec00 + #x2af7d3d3 + #x99d21439 + #xcdb7a58f + #xf2f2f4eb + #x30442c04 + #x3cfee905 + #x305b7f79 + #xcfd6ee0e + #x1decc4b8 + #xa1e32236 + #xd5c0a489 + #xf4eeece8 + #x32442802 + #x4105ef07 + #x36547673 + #xb7d70122 + #x1addab99 + #xa7e92032 + #xe2caa48a + #xf1e8e6e9 + #x353e1d00 + #x420af811 + #x2c476d72 + #xc0ef1f2c + #x13c39398 + #xa5e52036 + #xefd5aa8d + #xebe0e5f1 + #x362f10fa + #x3e130e23 + #x1d3f696c + #xf4162f23 + #xfba495c3 + #x99e52835 + #xe0ac86 + #xe2d9e6fe + #x2c1c05f2 + #x3c262a30 + #x193c605e + #x2f2d2813 + #xd999b2fe + #x95ef2f23 + #x11e9ab80 + #xd9d5ec0e + #x1c0b00ec + #x45444232 + #x1c364d50 + #x482f170d + #xc3aeda25 + #xa1002902 + #x20eca180 + #xd6d6fa23 + #xa02fae6 + #x585e4a25 + #x1d263345 + #x39221011 + #xc4ccf428 + #xba0814e8 + #x28e59980 + #xd7df0a35 + #xfefbf2e2 + #x6c6a4214 + #x130d1f47 + #x251f1416 + #xd2e20123 + #xd20500dc + #x22da9e9c + #xe0ee1a3e + #xf5f2e9e0 + #x7266390a + #xfef8174d + #x28251c11 + #xdaeb0d2a + #xe2fdf2dc + #x14d5b1bd + #xee00263b + #xece9e6e8 + #x66583204 + #xefef174d + #x36291905 + #xe0f81c32 + #xe9f7ebda + #x7dacfd7 + #xfb0b262c + #xe2e3eef4 + #x504b2cfb + #xeeee103c + #x33221301 + #xeb0a1f22 + #xeff4e3da + #xfdebecec + #x5101d19 + #xdaecfd00 + #x3e4120ee + #xf5eb0025 + #x1d19140a + #xfe140bfb + #xf8f1dfdf + #xfd0007fe + #xb100e0a + #xe2fe0a07 + #x33300be2 + #xfadde914 + #xd1c2317 + #xd13f5d9 + #xfeeedce6 + #x10e170b + #x100b0500 + #xef0e1008 + #x2f20f8dd + #xfad0da0d + #xb263520 + #x9dfe211 + #xf3dfeb0b + #xf24240e + #x11f9f4fd + #x15110f1b + #xefcf908 + #xd2d5061d + #x61543906 + #xf6dbf127 + #xede2ed00 + #xb232308 + #x9f4f3f9 + #x17111117 + #x60b1417 + #xdee5050c + #x614f2e02 + #xe5df0236 + #xe8e1e8f0 + #x21d2000 + #xf3f1f3 + #x1b120e0e + #xb242d23 + #xedf40002 + #x54452603 + #xe4e8052b + #xe5dedee5 + #xf61518fa + #xf9f0e8 + #x23140503 + #x2036342a + #xf6f6000c + #x423c2709 + #xe4dff91e + #xe1d9dee7 + #xeb0e0ff4 + #xbfde7db + #x2a0ef902 + #x2e333333 + #xf6fd1527 + #x45422a08 + #xd2c6f029 + #xdedfe8e7 + #xe50503ea + #x17fadcd2 + #x2402f90f + #x2b2d393c + #xfa173739 + #x5a4b24ff + #xaaaefa48 + #xe1f3f4d5 + #xe4f9f0dc + #x18eed2cf + #x15000920 + #x262e3c31 + #xf3c4f3a + #x6c4815fc + #x84ab1263 + #xf109eeae + #xe1e5d6d4 + #xee2cfd2 + #xe14262b + #x2a30301b + #x2a51543a + #x6a3c0f0b + #x80bc276c + #x914d487 + #xdbd1c5d8 + #xffd8d2d8 + #x1a34402d + #x34261108 + #x344f5446 + #x63391a1a + #x80cf3170 + #x1809b480 + #xd4c3c3ea + #xf0d2d6de + #x33524e26 + #x340bf303 + #x304c5d57 + #x6742211b + #x92df3a7f + #x15f0a180 + #xccbfcff7 + #xe4ccdbe2 + #x4863511d + #x24f1e40e + #x2d556d5a + #x6c43170f + #xa2f34c7f + #xd99c83 + #xccc5d8f6 + #xdcccdfe4 + #x526c4f14 + #x11e5e718 + #x3163724c + #x582e0006 + #xba115d7f + #xebce9e90 + #xd1c9d5e7 + #xd8d1e8e8 + #x58704908 + #xfebee1b + #x37636740 + #x2308f10b + #xe231584e + #xdcc39fa7 + #xd5c8c8d5 + #xd6d9f1ee + #x5b703dfd + #x1bf3ee1a + #x34576046 + #xeaebf415 + #x1440390f + #xcebaa7ce + #xd6bfbac6 + #xd9e7fcf4 + #x5e6931f6 + #x29f4eb1b + #x2a4f675d + #xd1e50015 + #x36310ee8 + #xbfb4c000 + #xd1b9b3ba + #xe2f305f6 + #x5b5b29f6 + #x2deee820 + #x23557e70 + #xd9ed0209 + #x3a14f0e1 + #xadbcea2b + #xccb6aea8 + #xedfc09f4 + #x525124fa + #x2aedeb21 + #x29647f76 + #xe4ebf602 + #x2af9e1e1 + #xa7d4143d + #xc9b9a898 + #xf6ff05ed + #x49492400 + #x29f1f01e + #x3a727f70 + #xd6dff00c + #x18ebd2cb + #xaeee2a3c + #xcfbc9f8d + #xf9fcfdea + #x48492403 + #x2df9f41d + #x46707f6c + #xbcd9fd21 + #x11dcb9aa + #xbcfd2d34 + #xd8bf998d + #xf7f4f7ea + #x49461e03 + #x31fdfc23 + #x3f647f6c + #xbceb1a2d + #xbc29fa1 + #xbfff2d36 + #xe4c59b92 + #xf3f0f4f1 + #x493a1700 + #x3005092e + #x2e5a7c6c + #xe50f2d27 + #xf4a19bc8 + #xb9ff3437 + #xf1cfa18f + #xeae8f6fd + #x40290efc + #x2d142039 + #x295a7861 + #x1e2b2917 + #xd192b405 + #xb3063c27 + #x2dba183 + #xe1e2fc0e + #x301b06f4 + #x3630363a + #x2e586952 + #x372e180f + #xb49fdc2d + #xb7143606 + #x14de9580 + #xdce10623 + #x201100ed + #x4c4f4331 + #x304b5149 + #x29210f15 + #xb3c0fa2e + #xcc1a1ee5 + #x1ed88980 + #xdce81736 + #x1208f7e7 + #x69664321 + #x232e3a4e + #x1117141b + #xc5db0823 + #xe21403d8 + #x1dcb8996 + #xe1f62942 + #x5ffeee5 + #x796a3a12 + #xc12305a + #x111b1d17 + #xd9eb1127 + #xf008f1db + #xfc399b4 + #xea063742 + #xfaf4ebe8 + #x76613106 + #xf9032e60 + #x27231d0c + #xe2f72037 + #xf4fdeae1 + #xffc9b6ce + #xf6173d37 + #xeeedeef0 + #x67572bff + #xf1ff2b58 + #x34231703 + #xeb092737 + #xf6f9e5df + #xf7dbd5df + #x31d3626 + #xe7f1fafc + #x574e21f3 + #xf3f71d45 + #x291d1405 + #xfc151e20 + #xf9f3dfe2 + #xf9f6f1ee + #xc1b2614 + #xeafd0506 + #x4c400fe7 + #xf3ea0934 + #x1d1b1d0e + #xf110505 + #xfcebdcf0 + #x30c08ff + #x12111108 + #xf90e0e0f + #x4027f7e4 + #xead8fc2b + #x272b2d15 + #x1800edf7 + #xfde7dffd + #xc1d180b + #x14080502 + #x9171115 + #x3311e8e8 + #xdfcbf72a + #x3c3f3a17 + #xefda0342 + #xe9dff509 + #x1b2b2106 + #x3f4f803 + #x150f191b + #xfefa0310 + #xc8f21913 + #x604f21e3 + #xe5e20f46 + #xe5ddeffa + #x162a1ffe + #xfbf1f5fe + #x16101813 + #x6131818 + #xdcfa0c06 + #x544218e9 + #xe0ec183f + #xdfd9e6ec + #xd2718f5 + #xfaf2f1f4 + #x1c120f09 + #x182e2a21 + #xeefb0003 + #x433616f5 + #xe5ee0f2e + #xdad4e2e9 + #x41e0fee + #x1f7e9e8 + #x220c0104 + #x2b372e2b + #xf1f80615 + #x40361bfd + #xdddc042d + #xd7d6e8ec + #xfd1504e8 + #xcf5dfdc + #x1f00fb0d + #x2e343636 + #xf4092128 + #x4e3c19f8 + #xbfc70943 + #xdae6f1e0 + #xf709f5df + #x10eed6d7 + #x12f8061c + #x27364034 + #x42a392d + #x5d390df7 + #x9ac11e5d + #xecfdecbb + #xf1f8e2d9 + #xae3d1d7 + #x9041c28 + #x283a3d24 + #x2548422a + #x5a2d0603 + #x83d03367 + #x709d08e + #xe6e0d0df + #xfbdad3d9 + #x13213328 + #x31362713 + #x3a514531 + #x4b280d18 + #x85e33f67 + #x1b00aa80 + #xd6cacaf2 + #xeed4d7dc + #x2d40401f + #x311c0710 + #x3c514e40 + #x48311b1f + #x92f14872 + #x1ce58f80 + #xc8bfd406 + #xe3d1dddc + #x49584516 + #x1ffdf41c + #x36575d45 + #x4e3a1816 + #xa0fd547e + #xccb8880 + #xc4c4e20c + #xdad1e2da + #x5b66430a + #x9e9f42a + #x3a646339 + #x462b060d + #xb2126172 + #xf5bc8882 + #xc8cee501 + #xd3d4e5da + #x666c3dfe + #xfde8fb30 + #x43695a2a + #x220af713 + #xd6336146 + #xe3b38994 + #xd1d0daec + #xcedcece0 + #x6d6d34f1 + #x3eefe34 + #x435d4f2b + #xf2effb1e + #x749480f + #xd6aa8fb8 + #xd4cacbda + #xd3e8f8e8 + #x706627e9 + #xfeefb37 + #x3651553f + #xd9e9071e + #x2d3f1fe6 + #xc5a4a9eb + #xd0c1c1cb + #xdcf703ee + #x6d5a1ce8 + #x13e8f73d + #x2b546a54 + #xdff20710 + #x361efbdf + #xb2acd71c + #xc7bbb8b9 + #xe8000aeb + #x644c16ee + #x12e5fa3f + #x31697f5b + #xebf4f803 + #x25fee9e2 + #xa9c50936 + #xc4b8aca4 + #xf20609e5 + #x5a4516f5 + #x10e8fe3a + #x437c7f58 + #xe0e6eb09 + #x10ecddd1 + #xb0e92836 + #xc7b89e95 + #xfa0601e0 + #x544218fd + #x13ecfe33 + #x517f7f55 + #xc4d9f21c + #x6dfc4ad + #xc403312e + #xcdb59292 + #xfb01fbe2 + #x52401801 + #x18f10031 + #x51797f58 + #xb9e20d2d + #xfec5a79d + #xd00c312d + #xd4b28f98 + #xf5f8f7e8 + #x52391500 + #x19f7093a + #x46727f5b + #xd704242b + #xe9a39db9 + #xd00c362d + #xddb8949b + #xeeeff7f2 + #x4b2b0ffb + #x19041c45 + #x3c707e54 + #xc24251c + #xc48eb2f2 + #xcb133f1f + #xebc19594 + #xe6ebfd00 + #x3c1e09f7 + #x1f1b3045 + #x3d6f7246 + #x2a2b1510 + #xa497da1c + #xce1f3c00 + #xfbc78b89 + #xe0eb0712 + #x2b1501ef + #x37393a3a + #x42665e40 + #x1e1c0713 + #x9db6fb1f + #xdd2522dc + #x9bf8088 + #xdcef1625 + #x1c0df8e6 + #x55523f2a + #x3c514c49 + #x30c0a1e + #xb2d60a10 + #xf11e03cb + #xab28098 + #xdcfa2836 + #x1203f1e0 + #x6d603a1c + #x2733425a + #xfe0d181f + #xcbe90f10 + #xfd0deed0 + #xa980b3 + #xe30c3d3c + #x6f8ebe0 + #x755d3112 + #xc1b3d66 + #x15181c13 + #xdcf51b25 + #xfbfbe5da + #xf1ad9dcb + #xef1f4836 + #xf8f1ece6 + #x6f542504 + #xfd0f3c66 + #x271e1606 + #xe5042733 + #xf7f2e2df + #xe8c1beda + #xfd2a4525 + #xf1f1f4f1 + #x644918f8 + #xf7093358 + #x21191000 + #xf215272a + #xf7ecdfe0 + #xebdcd9e6 + #x9283413 + #xf1fafdfd + #x5b4009ec + #xf1fd244b + #x13181503 + #x6151816 + #xf7e6dcec + #xf8f7eef2 + #xf1e1e06 + #xfa040609 + #x522df7e8 + #xe3eb1642 + #x19242103 + #xd030316 + #xf5e0e0fd + #x90f0400 + #x100d0c03 + #x90d0d13 + #x3a12ebee + #xd3e0153a + #x33392bfd + #xaeef722 + #xf4dde80a + #x161f1609 + #xf030104 + #x15121319 + #x22fde6fb + #xc5dd1933 + #x4c4b30f5 + #xe3f42c57 + #xe3e60502 + #x29302301 + #xfb0111 + #x161a2516 + #x1071119 + #xe0141f0d + #x574104d0 + #xe6fd2f50 + #xdfe2fbf7 + #x28321dfa + #xfefbfd0d + #x1a1c1d0e + #x141f1f1f + #xf10d0e08 + #x4e3505e2 + #xec022c42 + #xd9dcf1f2 + #x222d14f1 + #x1fbf401 + #x20161108 + #x2a332c29 + #xfa040410 + #x47300bf4 + #xecf8203b + #xd5daf1f4 + #x1a2308e8 + #xafae9f5 + #x1f0a080d + #x35383632 + #xf8051323 + #x4d3311fa + #xd6e61d47 + #xd6e5f8ec + #x1319fde0 + #xef2dfee + #x13fe0d1a + #x323c4436 + #x21d292c + #x57330bf7 + #xb5e02a5b + #xe5faf5cf + #xb08ecdd + #xae9daeb + #x8041f26 + #x3245482c + #x1d393529 + #x51290200 + #xa1ec3c61 + #x105dca4 + #xfdf2dfe6 + #xe2dae9 + #xd193228 + #x3945391d + #x3c4a352a + #x3e1f0716 + #x9efe475b + #x19fdb480 + #xe8dadafe + #xf5dddce8 + #x23353e22 + #x3c331f19 + #x484e3e36 + #x35261728 + #xa70a4d5b + #x1fe09080 + #xd6cce217 + #xebdce0e2 + #x3f4d3f16 + #x2c140b23 + #x48574e3c + #x3f331f29 + #xaf145b6a + #x10c18080 + #xcaccf222 + #xe2dde5dc + #x5a5e3c08 + #x10fd0a36 + #x4a645533 + #x48301423 + #xbe286c6c + #xfab18080 + #xccd6fd1a + #xdce3e8d7 + #x6a6738fb + #xfdf51145 + #x53664e23 + #x38160525 + #xda426d4d + #xe8aa808d + #xd3dff808 + #xd7e9ecd9 + #x75692def + #xfef7174e + #x555d441f + #x11fb052f + #x75a5519 + #xd9a283aa + #xdaddebf5 + #xd7f1f4e3 + #x7c6322e6 + #x5f71657 + #x4d51452c + #xf5f51032 + #x30542df2 + #xc79b99dc + #xd9d5dde5 + #xdffb00eb + #x7c5716e3 + #x8f1165e + #x3f54583c + #xf5001123 + #x3e3508e8 + #xb5a1c710 + #xd0cad2d2 + #xee0708ec + #x754b0ee8 + #x5ec1761 + #x3c676f45 + #x1040210 + #x2c10f5ec + #xaabd002f + #xc9c4c4bb + #xfd110ae5 + #x69410df2 + #x2ee1a5a + #x4d7f7c44 + #xfbf5f10e + #x14faebe0 + #xb2e62833 + #xcabeb1a8 + #x51605df + #x5e3e0efb + #x4f21a50 + #x607f7e42 + #xdfe2f222 + #x5ecd6c0 + #xc90a3629 + #xcfb59ea2 + #xa13fee0 + #x5a3b1302 + #x8f5174b + #x677f7b45 + #xcae20735 + #xfed5b7a7 + #xdf193626 + #xd0ac95aa + #x70bfde6 + #x58381407 + #xaf5194e + #x5e7f7c4a + #xd9fe2038 + #xebb2a5b5 + #xe81d3b25 + #xd2aa98b2 + #x2fbee + #x54301404 + #x8fd2354 + #x587f7e47 + #x51f262f + #xc798b2e5 + #xe623441a + #xdab19bb1 + #xf5fb00f8 + #x47280efd + #xe103554 + #x5a7f763b + #x292c1925 + #xa299d911 + #xeb3042fb + #xecb895a8 + #xeffb0807 + #x381f07f4 + #x232d444a + #x5d7e6335 + #x2c1d0a23 + #x96b8fd19 + #xf8392cd5 + #xfbb584a4 + #xec01171a + #x291600ee + #x4148473c + #x57675341 + #x190b0a2a + #xa8da0d08 + #x83007bd + #xfda780ae + #xe90b2a2c + #x1d0dfae8 + #x6055412d + #x4a4e4d58 + #xd07142f + #xc6f20e02 + #x101aebc0 + #xf19880c6 + #xeb193f36 + #x1104f5e3 + #x6f553622 + #x333b4e6a + #x17131d28 + #xdafe1614 + #xa02e2cf + #xe29899da + #xf22a4e33 + #x7fdf4e5 + #x70502a16 + #x1f2d4e72 + #x251d1a17 + #xe60b2228 + #xf4e3da + #xd9aab7e8 + #x43b5126 + #xfefbf5ec + #x6d481d07 + #xe234a6a + #x221d140a + #xf21a2a26 + #xf8eee5e0 + #xddc6d2ef + #x163f4214 + #xfafefbfa + #x673e0bf8 + #x1173f63 + #x141c1304 + #x420231a + #xf8e9e3e9 + #xeee2e5f7 + #x1d362c08 + #x50208 + #x602ffbf2 + #xf108355b + #x14221a00 + #xe161717 + #xf5e3e5fb + #x2fbf800 + #x1c251705 + #x80d0d11 + #x4d19f1f7 + #xddfb2f55 + #x283522f5 + #x7001129 + #xefdff108 + #x14110d07 + #x14110b0b + #x13131719 + #x2d04f204 + #xcffb3045 + #x414520e2 + #xf8ef133f + #xebdffd0e + #x22231d0a + #xb050511 + #x1916201c + #x13f5fa13 + #xc7023335 + #x534d19d3 + #xe90d4158 + #xd9ec03f2 + #x31311af2 + #xfd00061d + #x17242006 + #x6101917 + #xff1d1305 + #x5824e3d4 + #xf3133d4f + #xd5e6fcf2 + #x302d10e9 + #xffff16 + #x1c201603 + #x1c20201e + #x20f070d + #x4d21efe5 + #xf9103345 + #xcfe2f6f6 + #x2d2705df + #x5faf50d + #x1c130c05 + #x2e2d2d29 + #x5091d + #x4521fdf5 + #xec022a47 + #xcee8fcf5 + #x271dfad8 + #x7f3eb07 + #x12060d10 + #x33373e30 + #xf1a2a + #x472602f5 + #xd1f93054 + #xdbf8fcdf + #x1d0fefd5 + #x6e9e503 + #x6051c1c + #x3644482b + #x1326262a + #x421efcf9 + #xbb023e57 + #xf303e9b8 + #xffce3df + #xffe2e2ff + #x5142b20 + #x3d4b411e + #x3037292a + #x3114fd0d + #xb812454d + #xdfcbf94 + #xfae6e2f9 + #xf8dfe2f8 + #x162b361c + #x42422b17 + #x423d2b30 + #x23160d24 + #xbf1a4745 + #x16dc9480 + #xe2d5ed17 + #xf3e2e5ec + #x30423814 + #x38291c20 + #x45443836 + #x2e231a30 + #xc7204f51 + #x9ba8080 + #xd1d5022a + #xece6e5df + #x4a513609 + #x1c101a33 + #x4a4f4130 + #x45271a2e + #xd12e6261 + #xf2a48083 + #xcce11226 + #xe3e9e5d5 + #x5e5b30f9 + #x3032347 + #x55573d1d + #x47170d33 + #xe64a6b55 + #xdf9d808a + #xd4ec1214 + #xdfece5d5 + #x6f5e26ec + #xf9022a58 + #x5b4e3012 + #x2a020c3b + #x95e582d + #xd19680a0 + #xdced0702 + #xe1f2ebde + #x795a19e5 + #xfc002d68 + #x52412d16 + #x9fc163e + #x305c3105 + #xc18d89cb + #xdce5f9f2 + #xe8faf6e6 + #x7b4e0ce2 + #xfffc2e6f + #x41423b23 + #xff061a33 + #x44410ff6 + #xae90b200 + #xd5d9ede2 + #xf306ffe8 + #x734102e5 + #xfcf93372 + #x3d55542b + #xa0c0c1d + #x381dfcfa + #xa1abeb26 + #xced1dcc9 + #x21202e2 + #x6836ffed + #xf6fa376e + #x4a71642b + #xcfff816 + #x1d03f3f5 + #xa8d8192b + #xccc8c4b1 + #xf19fddc + #x5c3002f9 + #xf6fd3762 + #x617f6829 + #xf5e8f024 + #x9f5e2d8 + #xc2052d21 + #xccbbada7 + #x1619f8db + #x552d0703 + #xf9ff315b + #x6f7f672b + #xd8df023a + #xffe2c5b8 + #xe11d301a + #xcbad9eb0 + #x1612f6e1 + #x522b0d07 + #xfafd2e5a + #x6e7f6930 + #xd9f21944 + #xefc1adb8 + #xf2243319 + #xc7a3a0bf + #x100cf9e6 + #x4f2a1009 + #xfaff335c + #x687f6e30 + #xfd12233d + #xcca1b1de + #xf6293b10 + #xc8a5a4c5 + #xa09fdec + #x47270f05 + #xfc0a3e5b + #x687f6927 + #x27231a33 + #xa79bd20c + #xf9363df5 + #xd4ada3c1 + #x20703f5 + #x3a210afd + #xa204851 + #x6f7f5b21 + #x361a0d33 + #x96b5f91e + #x74129cc + #xe2ab96bd + #xfa090f06 + #x2d1a05f5 + #x273a4d44 + #x6f714a2b + #x2a06093e + #xa3d90c16 + #x173b03b0 + #xe69d8ac4 + #xf510231a + #x2312fded + #x454b4a3a + #x64584442 + #x1c001342 + #xbff30a09 + #x1d23e1ab + #xdc8d8cd5 + #xf6203a29 + #x1907f8e8 + #x5c4f3e2e + #x4e454a5b + #x1c0a1d3b + #xd8ff090f + #x1406d5bd + #xcb87a0eb + #xff334d29 + #xc02f3e8 + #x674a2e1d + #x383d526b + #x21171c2b + #xe506121c + #x5f3d9ce + #xbf94bbf5 + #x1047521c + #x500f2ec + #x68411e0d + #x2634546e + #x1d1a141c + #xf0141d1e + #xf9ede1d6 + #xc4aed1f6 + #x234f470a + #xf2f6 + #x64371202 + #x142a4f6c + #x1417120f + #x1e2014 + #xf5ece2e1 + #xd6cbe1f8 + #x2e4830ff + #x2f805 + #x5e2a03f9 + #x1d4869 + #x141d1302 + #xd1d1a10 + #xf2e8e3f0 + #xede2effc + #x2d371aff + #x5060510 + #x4e16f6f9 + #xec104467 + #x262a16f3 + #xc10171e + #xece2ed00 + #x2f90000 + #x23210f09 + #xc0f1214 + #x3602f303 + #xde0d425a + #x3e3a10df + #xfc05233a + #xe5e2fc05 + #x16121200 + #x120f0a13 + #x12171c14 + #x17f8fd0f + #xdc163e40 + #x523dffcc + #xef00314f + #xdfe60702 + #x23211cff + #x705091a + #x131d2313 + #x2f50917 + #xe3203626 + #x5b37edc1 + #x22d5467 + #xd9f6faed + #x3a310adf + #xff000c27 + #x212a14ff + #x10171c1a + #x14190907 + #x4f07d6eb + #x92a485a + #xd5f0f9f6 + #x3a2a02d8 + #x2fc0726 + #x21200d02 + #x20212423 + #xa0c0a17 + #x400ce8f5 + #x5203b4f + #xd1f0fdfc + #x3621f6cf + #x3f6ff23 + #x1a120d09 + #x2e2e332a + #x309142a + #x3613f6f8 + #xef133851 + #xd8fc03ef + #x2d14eccc + #x2ecf81e + #xc0c1714 + #x36404127 + #xd192431 + #x3313f8f9 + #xd9144252 + #xef07f5cf + #x1e05e3d6 + #xfce5f319 + #x616271a + #x414e411c + #x242b2730 + #x270cf809 + #xd4204747 + #x703d1ad + #xcf0e3f0 + #xf6e1f00f + #xf2a3117 + #x4b4e3312 + #x3a312734 + #x1a090523 + #xdc29443d + #x13e3a198 + #xf3e3f213 + #xf2e3efff + #x263d3412 + #x473b2417 + #x4236303b + #x21131934 + #xe52d4848 + #x6bb8091 + #xdce20c29 + #xf0e9eceb + #x404b310a + #x3127272e + #x473e3737 + #x3d1e203a + #xe9365a61 + #xec9d8091 + #xd1ed232a + #xefefe9d9 + #x58522d00 + #x161a3148 + #x51443324 + #x481a1a3d + #xf64e6967 + #xd4908094 + #xd5fd2a1a + #xebf0e5d4 + #x695421f5 + #x5143b5e + #x5b412410 + #x30091948 + #x16686147 + #xc58980a4 + #xdf032307 + #xe9f0e3d9 + #x764f12e9 + #x213416f + #x55371e0a + #x703244f + #x3b693e1a + #xb78080c8 + #xe5fd14f9 + #xeff5ece3 + #x794502e3 + #x12487c + #x42342712 + #xf80d2b44 + #x4e4d1705 + #xa4809efa + #xe1f206e8 + #xfa03f8e8 + #x7638f8e6 + #xfc104f7f + #x36423b17 + #x516202b + #x45260307 + #x9696d623 + #xd8e8f5cf + #x912fde3 + #x6b2df2ed + #xf612577f + #x415e4d17 + #x1009071e + #x2b0aff0a + #x9bc50931 + #xd5dedcb5 + #x161afadc + #x5e24f6f8 + #xf3165876 + #x5c735216 + #xeff929 + #x14fff3f3 + #xb8f92426 + #xd4cebfa7 + #x1e1af5db + #x5220fd06 + #xf817526c + #x737b5417 + #xdede0341 + #x7efd8ce + #xdf1a291a + #xccb8aab0 + #x2314f2df + #x4e210910 + #xf9134b68 + #x787c571c + #xd1e91a51 + #xf8d1bac1 + #xfa272914 + #xc2a7a5c4 + #x1e0ff5e2 + #x4b240f13 + #xf6104b65 + #x767f5c1c + #xec062a52 + #xd8abb4dc + #x32d310f + #xbba3aed2 + #x160af9e2 + #x47261010 + #xf5165164 + #x797f5c16 + #x1a1c264a + #xb19ecf0d + #x93a36f5 + #xbfa8b1d2 + #x100cffe3 + #x40240d0a + #xfc265a5e + #x7f7f4f0f + #x36171a4a + #x98b1f62d + #x164824cc + #xcbaaaad1 + #xc1209f2 + #x371e0903 + #x143a5b52 + #x7f733e14 + #x2d061352 + #xa1d80d2b + #x2a4700aa + #xd2a09ed8 + #x6161a07 + #x2d1402fa + #x33485547 + #x795e382a + #x16fc1c5a + #xbff60f1c + #x302bd9a3 + #xcb8e9eeb + #x3203119 + #x210dfaf3 + #x4d4f4a38 + #x674f4144 + #x7052757 + #xdb000616 + #x2407c7b2 + #xbb87b0fc + #xa33471c + #x1909f5ef + #x5b4e3b2a + #x51484f5a + #x9122b4a + #xe8020719 + #xdf0c9c7 + #xad90c803 + #x1c4e520f + #x1006eff0 + #x64482b19 + #x3b425868 + #xd172437 + #xf209101a + #xfde9d5d5 + #xada5db00 + #x315e4afc + #xa02ebf8 + #x643b1c0a + #x263a5b6e + #xf171d24 + #xff161914 + #xf6ecdbde + #xbdbee5fa + #x405a34ef + #x700ef06 + #x5b2d0d03 + #x13305b73 + #x161a1a13 + #xf1d1913 + #xf5ebdeec + #xd5d6effa + #x41471ef2 + #x702fa14 + #x4e1c0303 + #x265b72 + #x292414ff + #x13171920 + #xf0e6e8fc + #xecebfcfd + #x373014fd + #xa090a1d + #x3809ff09 + #xf0215b69 + #x423009e6 + #xa10243b + #xe8e5f503 + #x20afd + #x241d120d + #x1214161c + #x20fc0310 + #xec265554 + #x5830f3d2 + #xfd123857 + #xe1ed00fd + #x191913f6 + #x120d121a + #x17211c12 + #xafd0c14 + #xf92e4431 + #x6224dccb + #xf81a4b67 + #xdef605f6 + #x2a2716ed + #x5061221 + #x1c291e0a + #xff021414 + #x9303016 + #x6417cccc + #x18405762 + #xe3f9f4f9 + #x3f2bfbd6 + #x31832 + #x2d220903 + #x181b1b20 + #x19100910 + #x1beddf04 + #x15374952 + #xddf8fc02 + #x3c23f2cf + #xfffc1434 + #x26190b07 + #x22242626 + #xb0a141f + #x18f8ed02 + #x9294049 + #xe0ff04ff + #x3516e6ca + #xfdf41032 + #x18121210 + #x2e353424 + #x710222d + #x1903f6fd + #xf6234349 + #xef0b00e9 + #x2907dccf + #xf8ed0b2d + #xd182015 + #x3e493919 + #x16202a31 + #x1b03f504 + #xee2a4642 + #x90be2cb + #x18f6dce7 + #xf2ea0923 + #x10272a12 + #x4d50300d + #x2b2a2a37 + #x12ffff1b + #xf6314234 + #x15f1b8b8 + #xeded07 + #xefeb0412 + #x22382d0d + #x5044230e + #x382b2b3f + #x12041231 + #x323e38 + #x9c794b2 + #xeaee0a20 + #xeeeefcfb + #x37432d09 + #x40322020 + #x3e31323f + #x2412233e + #x3374a50 + #xeaa080b1 + #xddfd2724 + #xeeeef1e3 + #x4d492903 + #x2a292e3b + #x49393031 + #x30182643 + #x74b5f62 + #xce8a80ae + #xdd103516 + #xeeeee6d6 + #x604a1ffb + #x19273f58 + #x52382419 + #x1c11294e + #x1f66604d + #xbc8180b8 + #xe91b3106 + #xf1ede0d8 + #x6d4610f4 + #x11294a6b + #x4d2d160a + #xf50d3455 + #x426d461f + #xaf8080d8 + #xf11924f8 + #xf5eee4e0 + #x703b00ef + #xd275478 + #x3926190a + #xe4143f4d + #x59572302 + #x9f809a04 + #xf21016e9 + #xfbf8ede6 + #x6b2ef5ed + #x627607f + #x2d31270d + #xf51d3737 + #x52300e07 + #x8f84c82b + #xeb0707d1 + #x607f5e4 + #x6322eef1 + #xff2d6d7f + #x3549370d + #xd161c23 + #x37110a12 + #x91affb38 + #xe7fcefb5 + #x1412f6df + #x5818effc + #xfc32717f + #x505f3c09 + #x6fc0729 + #x1b060406 + #xade61b2e + #xe3ebd1a4 + #x2215f2dd + #x4b12fb0b + #xff346b75 + #x6a693b07 + #xe2e60940 + #xefdebdf + #xd80e221f + #xd9d1b6ad + #x2710f1e0 + #x4414071b + #x30626b + #x786d3e09 + #xc7e71f57 + #x3e3cbc6 + #xfc202218 + #xcab8aec4 + #x240af4e0 + #x421b1020 + #xff2a5f67 + #x7972430a + #xd6ff315e + #xe7bdbdd5 + #xe272410 + #xbbadb6dc + #x1f0bf8dc + #x3f1d141f + #xfb2b6063 + #x7c7b4606 + #x3153459 + #xbda6cf04 + #x153429f9 + #xb6afc0e6 + #x180df9d8 + #x3c1f1418 + #xfc34635e + #x7f7e3eff + #x24162759 + #xa0b2f52b + #x23431cd1 + #xbdb4c0e6 + #x110efddd + #x381c1011 + #xd436357 + #x7f722e00 + #x1f092362 + #xa0d61132 + #x3746fbad + #xc4adb6ee + #xe110aee + #x32160909 + #x27506050 + #x7f5f2911 + #x2ff2a6b + #xbcf6141d + #x422ed4a0 + #xc09db5ff + #xe1b2002 + #x2a100204 + #x40555444 + #x714e302a + #xe904386a + #xd9020a0d + #x3507bcaf + #xb292c111 + #x15313807 + #x1f0bfbff + #x52524431 + #x5c4a4043 + #xe6113e5f + #xeaff030a + #x1be9bcc6 + #xa196d514 + #x234b47fb + #x1809f4fc + #x5b4d3520 + #x4a4a5058 + #xf1183b50 + #xf1ff0a0e + #x2dfcad8 + #x9da8e40a + #x396243e7 + #x1503eb00 + #x5c432716 + #x38445965 + #xfd19343e + #xfc0a1210 + #xf8e4d4e3 + #xaac0ebfd + #x4d6331db + #x11fced10 + #x55321912 + #x243c5f6d + #xb1b2b29 + #xa141514 + #xf9e9d8ed + #xc1d5f1fb + #x52521ddd + #xdf9f923 + #x47200d0e + #x1437666e + #x20221f12 + #x14151823 + #xf8e7e0fb + #xd8e7f9fc + #x493912eb + #xb000a2e + #x3510070e + #x6386a67 + #x39270df8 + #x11122440 + #xefe6ee04 + #xedf904fc + #x352412fc + #x110e152b + #x20040912 + #x3c6755 + #x4e26f4e3 + #x916395e + #xe9edf802 + #x30e0bf6 + #x2018160b + #x191b1920 + #xe030e15 + #x740593b + #x5716dbd9 + #x7265070 + #xe6f6f9f9 + #x1d200deb + #xe10191b + #x22241811 + #x6091416 + #x153b3c1d + #x4b00cbdf + #xb375b74 + #xe7fdf8f4 + #x302b09e2 + #x30a1b27 + #x292a1506 + #x6111516 + #x1f30220a + #x3cefc6eb + #x284c5342 + #xe4f3fc0e + #x3f1de8d3 + #x9273f + #x2e140407 + #x181b1d2c + #x10070d16 + #xe2dff210 + #x1e3d493b + #xe5fc060d + #x3913decc + #xfc02243d + #x22110d0a + #x242b2828 + #x70d1b20 + #xf5ecf504 + #xe324639 + #xf10a07ff + #x2f03d0cc + #xf6fb223b + #x1414180e + #x3640311d + #xa1a282b + #x7f6f602 + #x4354939 + #x70ef1e5 + #x20f2cddd + #xeff82132 + #x1121220c + #x4a4d2b0d + #x1d252b35 + #x9f6f910 + #xa3b432e + #x17fbc9d1 + #x9e7dbfc + #xebf91d22 + #x1e312506 + #x56471d09 + #x2c272c40 + #x4f90c27 + #x133b3928 + #xed0a5cd + #xf3ebfc18 + #xe9f9110a + #x333c2703 + #x4f381717 + #x32283147 + #x9092238 + #x14363b36 + #xeca593ce + #xe7ff2120 + #xecf600f1 + #x46402402 + #x3b2c2131 + #x3b2e313c + #x13142e40 + #x13434d46 + #xc78687ca + #xe81a3613 + #xeff1ecdd + #x56401eff + #x282b3247 + #x452f2524 + #x417334a + #x215d5738 + #xaf8081ca + #xf52c36ff + #xf1e9ddd7 + #x613d11f9 + #x1e31465e + #x43271410 + #xe5144056 + #x406b470d + #xa28086e1 + #x2e2aef + #xf2e7dbdd + #x673503f5 + #x1a385a72 + #x311d100a + #xd71e4d50 + #x5a5a28ef + #x9580a10d + #x4281bdf + #xf8efe5e4 + #x6427f8f3 + #x143d6c7f + #x201e170c + #xf12a4736 + #x5b3813f8 + #x8680ca35 + #x200ec9 + #xfdece5 + #x5917f1f6 + #xe43797f + #x25322209 + #x14252c21 + #x421a110e + #x809bf845 + #xfc17f8ab + #xc06efe1 + #x4d0af1fd + #xc497f7f + #x42492702 + #x140c1022 + #x240e0e0c + #x95cc173b + #xf604d597 + #x1a09ecdf + #x4206f80d + #xd4d7f79 + #x605725fd + #xecef0a39 + #x1107fbe5 + #xc3fb2125 + #xece7b89e + #x2207ebe1 + #x3907041e + #x114c766f + #x715d25ff + #xc4e81e56 + #x7f1d7bf + #xf1141e1a + #xd7c6abbc + #x2204eedf + #x350d1128 + #x10476f65 + #x76612b00 + #xc6fc3664 + #xf1cac2c3 + #xc1e2014 + #xc0b3b5dd + #x1e06f2d7 + #x33161a2a + #xa436c60 + #x7c6c2efc + #xef144065 + #xc9aecaee + #x182a2400 + #xb3b2c4ee + #x1a0af3cd + #x351a1d25 + #x9496e5b + #x7f7128f3 + #x141d3b68 + #xa2afeb1a + #x27391ad8 + #xb5b9ccf3 + #x170cf2ca + #x351a1820 + #x11506b57 + #x7f6a1af2 + #x10113672 + #x9ace0a22 + #x3c3df8ae + #xbab6c9fc + #x140af6d5 + #x31141318 + #x2759634f + #x7f5913fc + #xee073d7e + #xb0f3130c + #x4a2acd9a + #xb9a8c411 + #x111007e7 + #x280e0a10 + #x3c5d5b45 + #x7b491813 + #xd0094c7f + #xd30309f1 + #x4300afa6 + #xa99ace27 + #x142421ee + #x200a030a + #x4f5e5038 + #x63432a2e + #xd0165371 + #xe80000e7 + #x27dbacc0 + #x989be22c + #x244333e4 + #x1807fb06 + #x5a594228 + #x51433c49 + #xe21e5160 + #xeffb00ec + #x7cdb9d5 + #x91aef21e + #x3c5e33ce + #x1700f10a + #x5e4a311e + #x4646505e + #xf8214a50 + #xf50209f8 + #xf6d3c9e1 + #x9ac4f609 + #x546722bf + #x14f8f11a + #x5738211d + #x3946606a + #x724423f + #x20c0e04 + #xf3dad1eb + #xafd5f5fd + #x605910bf + #xef2fb31 + #x4725171b + #x2a476a6b + #x172a3227 + #xc10131a + #xf5dbdaf8 + #xc6e4f6fc + #x5a4006ce + #x7f50c3f + #x35141017 + #x1a4a7163 + #x2c2b1a09 + #xd102139 + #xf1dde703 + #xdbf2ffff + #x452b07e2 + #xa031a3f + #x240c0d11 + #x13517254 + #x3d22fcef + #x916395a + #xe9e4f204 + #xf20406f9 + #x2e200ef5 + #x13112032 + #x14090d11 + #x1757673d + #x420edee2 + #xa28516c + #xe7eef6ff + #xa1406ee + #x1a1a1606 + #x201d1b20 + #x90d1116 + #x21534f22 + #x2ff3cce5 + #x1440606b + #xe8f3f2fc + #x2420fde1 + #xd141b1b + #x2b211310 + #x911131e + #x283d2e10 + #xdddccf6 + #x20506360 + #xebf5f1fd + #x3527f6da + #x610212c + #x33210c06 + #xd141424 + #x27271407 + #xf1d0d407 + #x354f4315 + #xe2f40b1d + #x3602d4d0 + #x103146 + #x21090501 + #x151c2732 + #x90b1513 + #xd3e1fe0e + #x2743411d + #xed040e12 + #x2ef7c9ce + #xfa0e3141 + #x170c0b02 + #x252e2c27 + #x9161d1c + #xeaeafa04 + #x193d4124 + #x41000fb + #x1ee6c2da + #xf00b313a + #x10161500 + #x3d3f2815 + #x12202328 + #xf8eff705 + #x19433f20 + #x1602dee8 + #xbdacdf6 + #xea092e2c + #x192419f8 + #x4f3f190c + #x21232439 + #xf1f00217 + #x20433215 + #x10dcbee2 + #xf6deed13 + #xea092317 + #x2b2f1af6 + #x4f310e13 + #x28212b46 + #xedfb172a + #x21392b15 + #xf0b1abe6 + #xeaf4131d + #xed0510fd + #x3c3519f7 + #x43251327 + #x2c243146 + #xf60f2a33 + #x1a39331e + #xc68fa3e3 + #xef152b0f + #xf1fbf7e6 + #x483616f8 + #x3327253d + #x32252832 + #xf619353d + #x204a3f16 + #xa78099df + #x2f2ef6 + #xf3efe1db + #x52360ff8 + #x2a2f3a51 + #x2f1c171c + #xe81d4146 + #x385b39f6 + #x958096e9 + #x123824e2 + #xf1e6d5de + #x562f07f7 + #x25394f60 + #x200e0913 + #xe6274f44 + #x555520dc + #x8d80a70c + #x193519d3 + #xf0e5dae6 + #x5421fdf4 + #x2444646e + #x10090b13 + #x7364e31 + #x5b380eea + #x8180d133 + #x172e0cbf + #xf3efe3ed + #x4a0ff4f3 + #x214f7577 + #x1317120f + #x31393519 + #x461d0f0c + #x8095fb46 + #x1327f8a4 + #xfae9ed + #x3c01f1fa + #x21597f77 + #x2a2b1507 + #x36231313 + #x27151313 + #x80bf1a3d + #xf16d88d + #xffee8ea + #x2ff8f609 + #x245f7f6e + #x4a3a1000 + #x9000528 + #x151204ef + #xa9ea242a + #x5f7b78e + #x19fbe5ec + #x25fa021a + #x28627c64 + #x5f4110fe + #xd4ed1547 + #xe01e2bf + #xda07201a + #xefd1a6ab + #x1cfae8e8 + #x20011028 + #x285f7759 + #x67471300 + #xc7f8315c + #xfbdbc3b4 + #xfb121c13 + #xd0b8b0d3 + #x17fdeadc + #x200b1d2c + #x215b7151 + #x6d4e15fd + #xe9124363 + #xd5b8c3d7 + #xe1c1d02 + #xb9b4c6ef + #x1602e9cc + #x24132328 + #x1a586d4e + #x7b550ff3 + #xe204369 + #xabb2df02 + #x1d2b17df + #xb4bbd4fa + #x1604e3c0 + #x28172324 + #x1e5c6a4e + #x7f5104ed + #xe1c4074 + #x99ccfe0e + #x3231f8b1 + #xb9bed405 + #x1701e2c5 + #x28161d21 + #x2e60644b + #x7f41f8f1 + #xed12487f + #xaaef09f4 + #x441ecd96 + #xb9b4d41c + #x1604edd1 + #x2112161c + #x3d625c41 + #x7231fb04 + #xd113597f + #xcc0101d5 + #x41f7a99c + #xada7de35 + #x161504d7 + #x1a0e0f15 + #x4b5f5133 + #x5f2b0b1d + #xd51e637b + #xe600f4cc + #x27d0a2b8 + #x99a7f43d + #x203217ce + #x1609050b + #x555b4628 + #x4f2e2039 + #xf32a626b + #xf0f8f1d5 + #x2beb0d1 + #x91b8052e + #x38511cbe + #x1501fb0e + #x5b4f3824 + #x4632364f + #xc2f595b + #xf0f8f6e3 + #xeabfc2de + #x98cd0813 + #x555d0eab + #x12f6f61e + #x583c2824 + #x3f394b60 + #x1733514a + #xf600fbf1 + #xe5c9cde3 + #xa9dc0201 + #x6752f7a7 + #x9ecfe38 + #x4a281d21 + #x33445f64 + #x20364033 + #x70507 + #xe8ced7ef + #xbee6fefe + #x643aecb4 + #xec0f4b + #x3619171a + #x2a526a5c + #x2b352717 + #x5091525 + #xe6d1e2fb + #xd0edfe00 + #x5227edc7 + #xfdf8214f + #x25101512 + #x255c6b4d + #x362808fe + #x2122f44 + #xe1d8ef00 + #xe3f802fb + #x391ef7db + #x5092a41 + #x170e120e + #x27626339 + #x320fe9f0 + #x4254a55 + #xdfe1f3fd + #xfb0802f1 + #x251c02ef + #x1215242e + #xe0e0f12 + #x2f5f4f24 + #x17efd3ef + #x10405951 + #xe2e8f1fd + #x1312fae6 + #x17190c05 + #x1e171919 + #xb0f101c + #x354f3512 + #xf0d4cdfa + #x24545939 + #xe3e9f305 + #x2712edde + #xf161920 + #x28150b0c + #xc101628 + #x2e331d0b + #xcec9db09 + #x33595224 + #xe3e9f80f + #x3310e3da + #x9152433 + #x2e120405 + #x10121c32 + #x21190e0c + #xbfcaed13 + #x405133fd + #xeb071823 + #x28eec9d2 + #x21e3b48 + #x110a07fb + #x1823342c + #xd181713 + #xe0ee0307 + #x344f390a + #xff130d14 + #x1eddc2da + #xfc1f3e42 + #x10100af6 + #x2c302f21 + #x17211a1f + #xe7eefb07 + #x2c51390e + #x150ef4fd + #x9cdc6f2 + #xf61f3e39 + #x171b0df1 + #x44361f14 + #x21251f32 + #xe4eefc10 + #x324e2c02 + #x17eed6f6 + #xf2cce313 + #xf51e3423 + #x26280eee + #x4e2c1015 + #x28222847 + #xdcf50e21 + #x33411ef9 + #xf8c2c6fc + #xe5e30921 + #xf6182109 + #x362f0dee + #x451e0e25 + #x2823334e + #xe407222c + #x29341cfd + #xcca0c2fd + #xee092613 + #xfb0b04f1 + #x40300bf2 + #x371c1c37 + #x29253442 + #xf41a3234 + #x233a26fd + #xa68db8f4 + #x62a2cf5 + #xfbfbeae5 + #x49300bf6 + #x2f293649 + #x281e2530 + #xfd25403d + #x364b26ee + #x8e80acf4 + #x1e3a21d9 + #xf5ead9e8 + #x4f2f09f8 + #x303a515d + #x1a0b1426 + #xa324e3d + #x534e17e0 + #x8380b00a + #x2a3b14c6 + #xeee1d6f4 + #x4f2304f6 + #x3249646a + #x9ff0d23 + #x2a424f2c + #x5f3706f1 + #x8080cf2f + #x2c370bb8 + #xece3ddfc + #x4213fdf5 + #x32537270 + #x404101f + #x52493714 + #x4b1f0918 + #x809cfc45 + #x2a33fba6 + #xf5ebe4ff + #x3402f8f8 + #x33607f6e + #x18181114 + #x5937150a + #x2f171429 + #x80c61f41 + #x2925dd8f + #x4f1e4ff + #x28f9f904 + #x3a707f68 + #x34260a0a + #x2d11021b + #x1b1b1007 + #x9beb2a2c + #x2204b784 + #x11f2e300 + #x1bf80317 + #x42797f5c + #x492c0409 + #xeff50d39 + #x1711efd0 + #xc403231b + #xadca098 + #x15f2e7fd + #x13ff1426 + #x45797f4f + #x532d060d + #xd5f62953 + #xbeecbb6 + #xe80e1c15 + #xe7bba7c1 + #x14f6eaf2 + #x1309232c + #x40747745 + #x5c34090b + #xea0e4160 + #xe8c5bdcc + #xff171e0a + #xc6b3c1e5 + #x11fce8dc + #x17142c29 + #x396e7042 + #x6b3b0403 + #x10234968 + #xbbb4d2f4 + #x11231bea + #xb8bbd7f8 + #x14fdddc6 + #x1e1c2c26 + #x376d6b44 + #x793af9f9 + #x17264b77 + #xa0c6ef02 + #x282d02bb + #xbbc5e109 + #x17f9d3be + #x221f2825 + #x406d6742 + #x7b2deefb + #x1f537f + #xaae8fdea + #x3e1ed398 + #xbfc1e421 + #x17f9d9c6 + #x211c2322 + #x496e633e + #x6a1bec06 + #xea1f647f + #xccfdf6cc + #x3ef8a997 + #xb4b7f13b + #x1507eccd + #x1b1b1f1e + #x556b5d37 + #x5511f61c + #xf42c717f + #xebffe8c4 + #x23cc99b0 + #xa0b60748 + #x1e2200c6 + #x17151817 + #x5d66512d + #x48130a34 + #x133a7174 + #xf6f6e3d5 + #xfcb4a7cd + #x94c61f3b + #x334004b3 + #x140b0b15 + #x61584026 + #x441c234c + #x2a416867 + #xf4f2e7ea + #xdeb4bedc + #x99dd231e + #x524cf6a0 + #x11fc0023 + #x5d443026 + #x40293e5c + #x32475f59 + #xf2f5ebf6 + #xd3bfcce0 + #xaaea1704 + #x6d47e099 + #x7ef0340 + #x4e322926 + #x373b5561 + #x344b5345 + #xf6f9f404 + #xd6c6d5e5 + #xbeee09fb + #x7132d0a3 + #xfbec175a + #x3a23251e + #x304e645a + #x3e493b29 + #xfbfd061c + #xd9cce0f1 + #xcfef06fd + #x611ed0b6 + #xf4f82d61 + #x2a1e2111 + #x325f674b + #x47391a11 + #xfd0a2239 + #xd7d3ebf9 + #xddf607fc + #x4815ddc9 + #xf80a3956 + #x1f1a1b09 + #x39665f3a + #x3d1cf902 + #x3224045 + #xd7ddf4f9 + #xef0006f2 + #x3415eadd + #x618363e + #x1515150d + #x42644e29 + #x1cf9e100 + #x10404f3a + #xdae3f2f9 + #x60a00e8 + #x2817f8f4 + #x151b2829 + #x10111518 + #x485a3a1b + #xf1d9d607 + #x28564e1f + #xdde4f202 + #x1a0bf4e3 + #x1e170610 + #x1c151718 + #x10101b26 + #x44442511 + #xccc8dc13 + #x3e5d4103 + #xdde8fd15 + #x2806e4dc + #x15171b2a + #x1e0d090b + #xe112530 + #x32291710 + #xc1ccef18 + #x495a39f2 + #xdeef0a26 + #x30fdd9d7 + #xd1a293d + #x1c070304 + #xe152d36 + #x1e151111 + #xc4d9ff1a + #x454d20f1 + #xfd1d1a21 + #xed4c0d5 + #x3284742 + #x607fff5 + #x1d2c3218 + #x141a0e13 + #xdef3fc02 + #x3f5325f5 + #x10170613 + #xfdc6c6eb + #x22b473b + #xd0effee + #x2e2c2211 + #x1e1b1422 + #xd8ecf809 + #x40511eee + #x18fdec09 + #xe7bdda0c + #x32e4028 + #x1b1bfde8 + #x3f251111 + #x241d213c + #xd1eb0016 + #x42420de1 + #xd5db0e + #xd7ce0020 + #x72a2f0d + #x2c21fbe9 + #x3d170c1d + #x221d334d + #xdafb1624 + #x382c04e2 + #xd5b6d811 + #xdef62016 + #x91e11f3 + #x3524fbee + #x3111162e + #x20213c4a + #xf210272b + #x2a2509ee + #xaea4d409 + #xfb202af5 + #x609f3e8 + #x3b24fff3 + #x271a2b3c + #x1e1e3239 + #xc223631 + #x2e2f0ef1 + #x9195c4fd + #x1e381dd1 + #xfbf1deef + #x422503f5 + #x2a2c424d + #x160e2131 + #x21324533 + #x473809f2 + #x8083b90a + #x323b0db8 + #xecddd8ff + #x452003f3 + #x3240595e + #x6001831 + #x3f464a27 + #x592eff07 + #x8080ca2a + #x393800ab + #xe7d7de0d + #x4013fdf1 + #x39516e6b + #xf9fd182e + #x6151360d + #x4c180431 + #x809bf645 + #x3b35f3a1 + #xebdde513 + #x3204f8f2 + #x3f637b6a + #xa1622 + #x684011fb + #x2f0e1445 + #x80c71d43 + #x3c2ada8d + #xf6e2e816 + #x20fbf5fb + #x46727f5e + #x1a170e18 + #x3d18f806 + #x1b161727 + #x93ec2c2f + #x380cb580 + #x2e5e817 + #x10f6fd0a + #x507f7f4d + #x311b0417 + #xfdf5ff25 + #x1b16fce8 + #xb303251d + #x21e19580 + #x6e5eb17 + #x6fb0e18 + #x597f7e40 + #x3c18021d + #xd8ef1e43 + #x16f9d4c2 + #xd70c1a16 + #xfbbc97a5 + #x6e9ef0a + #x4062021 + #x597f7535 + #x4318021e + #xe5063b54 + #xf9cebcca + #xf1111810 + #xd1aeb2ce + #x7f1eeef + #xa142b22 + #x537c6a31 + #x50200217 + #x7204760 + #xcab2c4ee + #x31b1af5 + #xbab8d1eb + #xcf3dfd1 + #x13212e20 + #x4f756131 + #x6021f60d + #x18284d6e + #xa8badf00 + #x1a2504c7 + #xbac6e400 + #x11efcebf + #x1b252c22 + #x50725e32 + #x6316e909 + #xc25577f + #xa8d7f1ef + #x311dd79c + #xbfcaec18 + #x10e9c7bd + #x1d252a22 + #x56715b31 + #x5604e411 + #xfd27677f + #xc6f1ebd4 + #x36f8a591 + #xb9c4fb36 + #xaeed3c4 + #x1a22281e + #x5e6f592e + #x40f9ec22 + #x735757f + #xe7f5ddce + #x1ec98ea6 + #xa6c61849 + #xc02e5bf + #x171e2116 + #x656b5028 + #x35f8fd39 + #x25467971 + #xf6ecd5e2 + #xf5a998c6 + #x97d53240 + #x2220ecac + #x16161414 + #x6a614224 + #x2f00144c + #x3b517265 + #xf3e5d8f9 + #xd0a5b3d8 + #x9aec3921 + #x4632df97 + #x13060722 + #x634c3122 + #x2c102e59 + #x3b546a59 + #xeee5df03 + #xc2b2c6de + #xacfc2b02 + #x652fc78e + #x7f60740 + #x51382a21 + #x2a28495d + #x3856604a + #xece5e80c + #xc2bdcedf + #xc2ff16f1 + #x6f1bb595 + #xf8ef1a61 + #x3c2c2c1a + #x2b435b56 + #x42534a35 + #xefe7f620 + #xc7c4d5e7 + #xd0f809ee + #x6106b2a6 + #xecf9366f + #x2b2a2c0d + #x32596047 + #x53462c20 + #xf1f31339 + #xcacde1ec + #xdaf807ec + #x49fdbdba + #xee0d4967 + #x21252402 + #x3f615738 + #x4f280a14 + #xf8102f43 + #xcdd7e9ef + #xe7ff07e8 + #x35ffcecd + #xfc1e474f + #x1a1d1700 + #x4a60472a + #x2c03ee11 + #xc334035 + #xd0dee9f1 + #xf80700e1 + #x2b04dfe2 + #xc243638 + #x1313110c + #x5357381e + #xfddfe118 + #x284f3f14 + #xd4dfebfb + #xa07f5dd + #x2507f1fc + #x141d2227 + #xe0e181a + #x51472816 + #xd7cae121 + #x425731f3 + #xd4dff210 + #x1800e8d8 + #x1e0d0718 + #x1410111a + #xc112525 + #x43321a10 + #xc4c6eb24 + #x505622e4 + #xd7ee0424 + #x1ef5d8d1 + #x13162231 + #xe07070c + #xa17312a + #x2c1e110d + #xc7d5f91e + #x53531be1 + #xdfff1431 + #x20e9cecc + #xa1e3540 + #x90203ff + #xa1e362a + #x1814100d + #xd3e70216 + #x4e4a10e1 + #x131f152a + #xedb9bee6 + #xf3a5335 + #x602f3f4 + #x27342209 + #x180e0613 + #xd7ecf408 + #x534b0cdd + #x190b0022 + #xd8b5d002 + #x123d4e27 + #x1209efef + #x3128130b + #x1b0e162a + #xd4e7fc13 + #x543e00d3 + #xce7ed24 + #xc5bef31b + #x183d3e0b + #x2210eaed + #x34180b15 + #x1b132c43 + #xdaef0b21 + #x4a25f1d1 + #xe3c8ea28 + #xc8e41816 + #x1c3421ed + #x2c10eaf1 + #x280e1325 + #x181c4048 + #xf0031f27 + #x3412f0e1 + #xb9b9ea21 + #xe61224f3 + #x181c00e0 + #x3110eff7 + #x1c122434 + #x1622403e + #xc192f2a + #x2813f9f6 + #x9cb1e010 + #xf2f18ca + #x8fce7ea + #x3513f6fa + #x1c213843 + #x12183132 + #x242e3b28 + #x341cfd05 + #x869ccd0e + #x2e3702ac + #xf1dede03 + #x3a13fcf6 + #x28344b53 + #x208242f + #x3b43401c + #x4418fc1c + #x808ad025 + #x3e34f39c + #xe0d0e419 + #x3b0ffaf0 + #x35485f5f + #xf0032431 + #x56533203 + #x410b0541 + #x8095f041 + #x4632e690 + #xdbceed25 + #x3108f4ec + #x405f7360 + #xef0c222b + #x604a12ed + #x28031b59 + #x80bb1847 + #x4a2ad180 + #xe6d7f32a + #x1ffdf1f0 + #x4a737c57 + #xff151924 + #x411ff3ef + #x160e2541 + #x8ce32b34 + #x470fb180 + #xf0dbf42c + #xcf7f9ff + #x577f7c44 + #x15120b24 + #x2f3f10b + #x16131003 + #xafff2521 + #x32e48f80 + #xf4def72e + #xfff9090e + #x697f7832 + #x2409052c + #xd3e40e2c + #x1902e3ce + #xd00b161b + #xbbb838d + #xf3e1ff25 + #xfa031c15 + #x727f6d25 + #x2b090834 + #xd3f72f43 + #x5d7c1c8 + #xe70c1518 + #xdba698b2 + #xf4e9ff09 + #x152a16 + #x6f7f601e + #x370f0831 + #xf316434e + #xd8b4bee6 + #xf9131805 + #xbeaebcd5 + #xfdeff1e3 + #xe242c18 + #x697f561e + #x4410ff27 + #xc274b5f + #xafafd5fd + #xe1f09d7 + #xb8c4d8ef + #x6ead7c5 + #x192c2c1c + #x66785121 + #x4a08f121 + #xc2a5972 + #xa5c5e7f7 + #x281cdda6 + #xbfd0e709 + #x6dec5bc + #x1f2c2c22 + #x66735024 + #x41f6e922 + #x32c6c7e + #xbbdee6e3 + #x31fca890 + #xbed0fa28 + #xffdac5bf + #x1f2b2e21 + #x69725027 + #x2ee6e92e + #xc3d7e79 + #xdde6d7e0 + #x1cc887a0 + #xaed31b40 + #xfae6d4bc + #x1f2a2b16 + #x6d6d4824 + #x1fe3f63d + #x24507f6c + #xedddd0f3 + #xf19f8cc1 + #x9fe73d3e + #xcffdaab + #x1e221c10 + #x72633a1f + #x18ec0c4d + #x35607e5d + #xecd4d306 + #xc793a6d8 + #xa0024a22 + #x2f13ce93 + #x19130c1c + #x6c512e1c + #x15fd2557 + #x35647653 + #xe4d1db09 + #xb2a0bee0 + #xb5153afc + #x5415b586 + #xe00093b + #x59402a1e + #x1215405c + #x32646d44 + #xe1d1e30e + #xb2b1c8e0 + #xcb151ce3 + #x63039f8c + #xfaf61f62 + #x43342e16 + #x16325356 + #x40605c32 + #xe0d1f121 + #xb9bbcde1 + #xda0b08da + #x5aec999c + #xeafc4179 + #x31322f08 + #x284e5c47 + #x57533d22 + #xe0db0b41 + #xbfc2d4e6 + #xde0300d8 + #x41dea3af + #xe7105a76 + #x273125f9 + #x415d5435 + #x5a371b1e + #xe7f9274e + #xc4cddbe6 + #xe40500d7 + #x2be0b7c1 + #xf4275d60 + #x212715f3 + #x515d4628 + #x3a0f0022 + #xfd21383e + #xcad7dee7 + #xf10bfcd3 + #x21e7c8d4 + #x9314d47 + #x1b190bfc + #x5653371f + #x6eaf128 + #x1f403519 + #xd0dadef3 + #x20bf1d1 + #x1fefdbea + #x162b3537 + #x12120f0c + #x53462b18 + #xddd0ed2e + #x414d25f6 + #xd0dae60c + #xe03e6ce + #x1bf9f405 + #x151b212a + #xb131e18 + #x4a371f10 + #xc8c7f332 + #x564d13e0 + #xcee3f727 + #x10f4d8c8 + #x1306121e + #xe0b131c + #x91e2e1e + #x3a27160b + #xbfcdfc2e + #x574809da + #xdbfa0f34 + #xee4cbc4 + #xc182f31 + #x603080c + #xe28341b + #x24180e08 + #xc5de001f + #x534808db + #xef101e35 + #x6d8c1c7 + #xb25463d + #x20200ff + #x122c3215 + #x15120906 + #xd0ec020f + #x5a3b00db + #x24100d39 + #xd0b0cd06 + #x224d501b + #xefdebf8 + #x31321307 + #x1402091a + #xe2e4fc1a + #x5e31f6d4 + #x16f8033d + #xc0bdeb18 + #x284f4603 + #x17ffe5f9 + #x2f210e10 + #x11071e2e + #xe2eb0c21 + #x561de8d3 + #xf8de0045 + #xbcdd101b + #x2b472be4 + #x20ffe4fc + #x25111120 + #x1016383c + #xecfb1d27 + #x3c06e2de + #xd0d1063d + #xd40921fc + #x28310ad4 + #x24fde803 + #x160e202e + #x11254236 + #x2112b24 + #x24fdebf3 + #xb6ceff28 + #xff2814d3 + #x1b10f1df + #x2800f207 + #x141b313b + #x1125392b + #x17273221 + #x2004f607 + #xa5c0ec18 + #x2531fbb3 + #x3efe9fd + #x2e06f904 + #x1e2c4046 + #x9182c27 + #x2a3c3817 + #x2b07fd1d + #x8da6e221 + #x392be59e + #xe9daf11d + #x320afbfb + #x2e40504f + #xf6102a2a + #x3f4d2f02 + #x2bff0a3c + #x809bf539 + #x4327d78b + #xded7fd2f + #x2e0af8ef + #x3c546151 + #xec132a2a + #x4f4713e8 + #x1afb2256 + #x80af1643 + #x4d22c980 + #xdddd0636 + #x2103f3ec + #x476a6e4a + #xf61b222a + #x4024f2df + #xc09364a + #x8ada2c36 + #x5013b380 + #xe1e1093d + #x10fbf5f2 + #x5a7f723d + #x917182e + #xef5e7f3 + #x101a2a16 + #xb2fd2a22 + #x3fef9780 + #xe5e20e43 + #x3f903fd + #x717f6e2e + #x140a103b + #xdadffb11 + #x1811ffdb + #xd40c1a1d + #x18c3808d + #xe5e5173d + #xfb021407 + #x7f7f611e + #x17021147 + #xcaee1b28 + #x10ebd1c6 + #xe80a1620 + #xe8a487a9 + #xe8ee1b24 + #xfd13220c + #x7f7f4f11 + #x1d06164c + #xe10d3333 + #xe9c2c3da + #xf30d1a14 + #xc4a6a6c7 + #xf1f30cf9 + #xa24280e + #x7f7e420d + #x2a0a1045 + #xfd224243 + #xbdb0d3f3 + #x41813ee + #xbcbdc7e1 + #xfbf1eed4 + #x1a2e2814 + #x78743d13 + #x3204043b + #x92a5159 + #xa9c0e5f9 + #x1e1beebc + #xc4d1ddf9 + #xfce2d3c3 + #x242f2b1b + #x726e3d1b + #x2ef3f839 + #x6326868 + #xb6d5e8ec + #x2c02b99f + #xc9d8f31a + #xf5d4c9c4 + #x272f311d + #x6f6a3d21 + #x1de2f53c + #x9427968 + #xd3dfdde7 + #x1ed093a6 + #xbfdf1436 + #xeed5d0c4 + #x272f2f16 + #x72673c22 + #xcddfc45 + #x18567e57 + #xe2d7d5f3 + #xf3a190c3 + #xb2f3383b + #xf9e8d5b5 + #x282e2510 + #x75613320 + #xffe20d4f + #x2b657846 + #xe1cdd802 + #xc78ea6db + #xb5134920 + #x18fdca9e + #x25211618 + #x71512a1e + #xf9f12259 + #x316b713b + #xdac7e107 + #xae97bfe4 + #xcc2c3ff9 + #x3b02b08e + #x1a0e1133 + #x5e42251b + #xfb07395e + #x356a6b31 + #xd5c7e909 + #xacabcae4 + #xe73122db + #x4cf19891 + #x6ff2459 + #x49382a18 + #x3254d59 + #x47685e25 + #xd4c9f61e + #xb5b9cee2 + #xf22406ce + #x43d791a2 + #xf2024775 + #x36382e0c + #x1a405149 + #x6361471a + #xd1d30d42 + #xbcc0d4e2 + #xf213f9cc + #x2ec698b5 + #xeb186779 + #x313925fb + #x364f4935 + #x674a2a1b + #xd4e92756 + #xc2c9d8df + #xef0ef6cc + #x1ac6a9c2 + #xf633726a + #x2f3213ee + #x4c513b28 + #x45251127 + #xe80e3547 + #xc9d1dadf + #xf610f3cc + #x11cebccd + #xc426453 + #x2a2403f2 + #x534a3122 + #xeff0632 + #xd2e3221 + #xd0d4d8eb + #x20eeccd + #xedacdde + #x1d3c4c42 + #x1e170402 + #x4f422a1d + #xe4e40338 + #x333d21fc + #xd0d4de06 + #xc07e2cd + #xee5e2f5 + #x1d2a3535 + #x13161311 + #x46382414 + #xc9d50439 + #x4c3f0de4 + #xcedaf125 + #xefcdac7 + #xaf5000d + #x1417252a + #xd202217 + #x3b2b1a0a + #xb9d30936 + #x5339ffd5 + #xd4ec0c3c + #x9ebcdc2 + #x7091d20 + #x90a181b + #x132e2b14 + #x2e211104 + #xb5db0e2f + #x5036fbd3 + #xee061d3f + #xfbd5c2ca + #xd21392a + #x404090c + #x1d36280c + #x20140a06 + #xc3e70a21 + #x4f36ffd7 + #x71b2439 + #xeec4badb + #x14364c2c + #x302fc04 + #x27392204 + #x160d0409 + #xd7ee0411 + ) + ) + + + + diff --git a/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-tables_REF.gc b/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-tables_REF.gc new file mode 100644 index 0000000000..4a6a38da93 --- /dev/null +++ b/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-tables_REF.gc @@ -0,0 +1,5517 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *ocean-colors-city*, type ocean-colors +(define *ocean-colors-city* + (new 'static 'ocean-colors :colors (new 'static 'array rgba 2548 + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2a :a #x80) + (new 'static 'rgba :r #xd :g #x25 :b #x29 :a #x80) + (new 'static 'rgba :r #xe :g #x25 :b #x29 :a #x80) + (new 'static 'rgba :r #xf :g #x26 :b #x2a :a #x80) + (new 'static 'rgba :r #xe :g #x25 :b #x29 :a #x80) + (new 'static 'rgba :r #x10 :g #x26 :b #x27 :a #x80) + (new 'static 'rgba :r #xf :g #x26 :b #x27 :a #x80) + (new 'static 'rgba :r #xf :g #x27 :b #x28 :a #x80) + (new 'static 'rgba :r #xe :g #x26 :b #x2a :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x26 :b #x2a :a #x80) + (new 'static 'rgba :r #x10 :g #x27 :b #x2a :a #x80) + (new 'static 'rgba :r #x10 :g #x27 :b #x2a :a #x80) + (new 'static 'rgba :r #x12 :g #x28 :b #x2a :a #x80) + (new 'static 'rgba :r #x14 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x13 :g #x29 :b #x2a :a #x80) + (new 'static 'rgba :r #x16 :g #x29 :b #x29 :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2b :a #x80) + (new 'static 'rgba :r #x15 :g #x2a :b #x2a :a #x80) + (new 'static 'rgba :r #x15 :g #x2a :b #x2a :a #x80) + (new 'static 'rgba :r #x12 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x27 :b #x2a :a #x80) + (new 'static 'rgba :r #x11 :g #x27 :b #x29 :a #x80) + (new 'static 'rgba :r #x13 :g #x27 :b #x2a :a #x80) + (new 'static 'rgba :r #x15 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #x13 :g #x29 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x27 :b #x29 :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x13 :g #x28 :b #x2a :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2b :a #x80) + (new 'static 'rgba :r #x16 :g #x2a :b #x2b :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2b :a #x80) + (new 'static 'rgba :r #x14 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2d :a #x80) + (new 'static 'rgba :r #x12 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x13 :g #x2a :b #x2c :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x13 :g #x29 :b #x2b :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2c :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2b :b #x2d :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x18 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x18 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x19 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2e :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2e :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x19 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2f :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2e :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x17 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2e :b #x2f :a #x80) + (new 'static 'rgba :r #x18 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x17 :g #x2f :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x12 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x16 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x14 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x15 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x36 :b #x36 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x31 :b #x32 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x12 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2e :a #x80) + (new 'static 'rgba :r #x14 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x32 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2e :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x1a :g #x35 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x35 :b #x36 :a #x80) + (new 'static 'rgba :r #x1a :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x33 :b #x35 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x19 :g #x34 :b #x35 :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x18 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x18 :g #x33 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x31 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x15 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x32 :b #x34 :a #x80) + (new 'static 'rgba :r #x16 :g #x31 :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x17 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x30 :b #x33 :a #x80) + (new 'static 'rgba :r #x16 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x16 :g #x2f :b #x33 :a #x80) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x2f :b #x32 :a #x80) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x15 :g #x2e :b #x32 :a #x80) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2d :b #x31 :a #x80) + (new 'static 'rgba :r #x14 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x14 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x31 :a #x80) + (new 'static 'rgba :r #x13 :g #x2c :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x29 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x13 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x12 :g #x2b :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x12 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x12 :g #x2b :b #x30 :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x29 :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2e :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x11 :g #x2a :b #x2f :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xf :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #x10 :g #x29 :b #x2e :a #x80) + (new 'static 'rgba :r #xf :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2d :a #x80) + (new 'static 'rgba :r #xe :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x26 :b #x2b :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x28 :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #xa :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xe :g #x28 :b #x2d :a #x80) + (new 'static 'rgba :r #xd :g #x27 :b #x2c :a #x80) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x8 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x8 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xd :g #x26 :b #x2c :a #x80) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #x9 :g #x23 :b #x29 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x27 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xc :g #x25 :b #x2b :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x6 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x29 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x27 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x5 :g #x21 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x26 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba :r #xb :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #xb :g #x25 :b #x2a :a #x80) + (new 'static 'rgba :r #xa :g #x24 :b #x2a :a #x80) + (new 'static 'rgba :r #x7 :g #x22 :b #x28 :a #x80) + (new 'static 'rgba :r #x4 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1e :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x2 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x24 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x1f :b #x25 :a #x80) + (new 'static 'rgba :r #x3 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba :r #x4 :g #x20 :b #x25 :a #x80) + (new 'static 'rgba) + (new 'static 'rgba) + (new 'static 'rgba) + ) + ) + ) + +;; definition for symbol *ocean-near-indices-city*, type ocean-near-indices +(define *ocean-near-indices-city* + (new 'static 'ocean-near-indices + :data (new 'static 'inline-array ocean-near-index 36 + (new 'static 'ocean-near-index) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1 #x2 #x3 #x4) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x14) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x5 + #xffff + #xffff + #x6 + #xa + #xffff + #xffff + #xffff + #x0 + #xf + #x10 + #x11 + #x15 + #x0 + #x16 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x7 #x8 #x9 #x0 #xb #xc #xd #xe #x12 #xffff #xffff #x13 #x17 #x12 #xffff #x18) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x1d #x0 #x25 #x26 #x5 #x0 #x29 #x2a #x5) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x19 + #x1a + #x0 + #x0 + #xffff + #x1e + #x1f + #x20 + #xffff + #xffff + #xffff + #x27 + #xffff + #xffff + #xffff + #x27 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x17 #x12 #x1b #x0 #x21 #x22 #x23 #x0 #x5 #xffff #x28 #x2b #x2c #x2d #x28) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x1c #x0 #x0 #x0 #x24 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x2e #x2f #x30 #x0 #x37 #x38 #xffff #x0 #x0 #x3c #xffff #x0 #x0 #x41 #x12) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #x31 + #x32 + #xffff + #xffff + #x39 + #x0 + #xffff + #xffff + #x0 + #x3d + #xffff + #x42 + #x0 + #x43 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x33 + #x12 + #xffff + #x34 + #x0 + #x3a + #xffff + #xffff + #x3e + #x3f + #xffff + #xffff + #x44 + #x45 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x35 #x36 #x0 #x0 #xffff #x3b #x0 #x0 #xffff #x40 #x0 #x0 #x29 #x46 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x47 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x48 #x49 #x0 #x4a #x0 #x0 #x0 #x4c #x0 #x0 #x0 #x0 #x0 #x21 #x4f #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x4b + #xd + #xffff + #xffff + #x4d + #xffff + #xffff + #xffff + #x0 + #x0 + #x4e + #xffff + #x0 + #x50 + #x51 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x4 #x0 #x0 #x0 #x27 #x0 #x0 #x0 #x27 #x0 #x0 #x0 #x27 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x52 #x53 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x54 #x0 #x55 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x32 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x56 #x56 #x56 #x56 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x57 + #x58 + #xffff + #xffff + #x59 + #x5a + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x5f + #x5f + #x5f + #x5f + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x5b + #x5c + #x5c + #x60 + #x0 + #x0 + #x0 + #x64 + #x65 + #x66 + #x66 + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x5d + #xffff + #x5e + #x5a + #x61 + #x5f + #x62 + #x63 + #x67 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #x0 + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #x0 + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + #x0 + #x0 + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #x0 + #x0 + #x0 + #xffff + #x0 + #x0 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index + :data (new 'static 'array uint16 16 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #xffff #xffff #xffff #x0) + ) + (new 'static 'ocean-near-index :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + ) + ) + (new 'static 'ocean-near-index :data (new 'static 'array uint16 16 + #x0 + #xffff + #xffff + #xffff + #x0 + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + #xffff + ) + ) + ) + ) + ) + +;; definition for symbol *ocean-trans-indices-city*, type ocean-trans-indices +(define *ocean-trans-indices-city* + (new 'static 'ocean-trans-indices :data (new 'static 'inline-array ocean-trans-index 2304 + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 2) + (new 'static 'ocean-trans-index :parent #x68 :child 3) + (new 'static 'ocean-trans-index :parent #x69 :child 4) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 5) + (new 'static 'ocean-trans-index :parent #x6a :child 6) + (new 'static 'ocean-trans-index :parent #x6b :child 7) + (new 'static 'ocean-trans-index :child 8) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x6c :child 9) + (new 'static 'ocean-trans-index :parent #x6d :child 10) + (new 'static 'ocean-trans-index :parent #x6e :child 11) + (new 'static 'ocean-trans-index :parent #x6f :child 12) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 13) + (new 'static 'ocean-trans-index :child 14) + (new 'static 'ocean-trans-index :parent #x70 :child 15) + (new 'static 'ocean-trans-index :child 16) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :child 17) + (new 'static 'ocean-trans-index :child 18) + (new 'static 'ocean-trans-index :child 19) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :child 20) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x71 :child 21) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x72 :child 22) + (new 'static 'ocean-trans-index :parent #x73 :child 23) + (new 'static 'ocean-trans-index :parent #x74 :child 24) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x75 :child 25) + (new 'static 'ocean-trans-index :parent #x76 :child 26) + (new 'static 'ocean-trans-index :parent #x77 :child 27) + (new 'static 'ocean-trans-index :parent #x78 :child 28) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x79 :child 29) + (new 'static 'ocean-trans-index :parent #x7a :child 30) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent #x7b :child 31) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x7c :child 32) + (new 'static 'ocean-trans-index :parent #x7d :child 33) + (new 'static 'ocean-trans-index :parent 34 :child 34) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent #x7c :child 32) + (new 'static 'ocean-trans-index :parent 13 :child 35) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index :parent -1 :child -1) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + (new 'static 'ocean-trans-index) + ) + ) + ) + +;; definition for symbol *ocean-mid-indices-city*, type ocean-mid-indices +(define *ocean-mid-indices-city* (new 'static 'ocean-mid-indices :data (new 'static 'array uint16 36 + #x59 + #x0 + #x0 + #x0 + #x0 + #x0 + #x7e + #x7f + #x0 + #x0 + #x0 + #x0 + #x80 + #x81 + #x82 + #x0 + #x0 + #x0 + #x83 + #x84 + #x85 + #x0 + #x0 + #x0 + #x86 + #x87 + #x88 + #x0 + #x0 + #x0 + #x59 + #x0 + #x0 + #x0 + #x0 + #x0 + ) + ) + ) + +;; definition for symbol *ocean-mid-masks-city*, type ocean-mid-masks +(define *ocean-mid-masks-city* + (new 'static 'ocean-mid-masks + :data (new 'static 'inline-array ocean-mid-mask 138 + (new 'static 'ocean-mid-mask) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x1f #x3f #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x3 #x3 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #xc0 #xc0 #xc0 #xc0 #xc0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x1f #x1f #x1f #x1f #x1f #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x10 #x38 #x7c #x7c #x7c)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xc0 #xc0 #x80 #x80 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x3 #xf #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x7 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfe #xfc #xf8 #xe0 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #x7f #x3e)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x83 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x80 #xc0 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x6 #xf #x1f #x3f #x7f #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1c #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xf8 #xf0 #xe0 #xc0 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x1f #x1f #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf8 #xe0 #xf0 #xf8 #xfc #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x3 #x7 #xf #xf #xf #x7 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x3f #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x7 #xf #x1f #x3f #x3f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x80 #xc0 #xc0 #xc0 #xc0 #xc0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x3f #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #xf0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #xe0 #xe0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x3f #x3f #x3f #x3f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x1f #xf #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x0 #x80)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #x7 #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x1 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x3f #x3f #x3f #x3f #x3f #x3f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #x80 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #x1f #x1e #x1e #x1e #x1e #x1e)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #xc0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xf8 #xf0 #xf0 #xfc #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #xf8 #xf8 #xf0 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1e #x1e #x1e #x7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xe0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x7f #x3f #x1f #xf #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #xe0 #xc0 #x80 #x80 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #xf #x1f #x7f #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #x3 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #x7 #x3 #x3 #x3 #x1 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfc #xfc #xf8 #xf0 #xf0 #xe0 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #x7 #x7 #xf #xf #xf #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xfe #xfc #xfc #xf8 #xf8 #xf0 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #xc0 #xe0 #xf0 #xf0 #xf0 #xf0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xc0 #xff #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #xf #x7 #x7 #x7)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xe0 #xe0 #xe0 #xc0 #xc0 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xf1 #xf1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #x80 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xfe #xc0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xfe #xfe #xfe)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7 #x3 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xe0 #x80 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf9 #xf8 #xf8 #xf8 #xf8 #xf8 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #xf0 #xf0 #xf0 #xf0 #xe0 #xe0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xc0 #xc0 #x80 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xfe #xf0 #xc0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xf8 #xf0 #xe0 #xe0 #xc0 #x80 #x80)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x1 #x1 #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x3c #x3c #x3c #x3c)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x80 #x80 #x80 #x80 #x80 #x80 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xe0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3c #x3c #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #x1f #x1f #x1f #x1f #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8 #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x3 #x1 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xfe #xfc #xf8)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #x1f #x1f #x1f #xf #x7 #x3)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x7f #x3f #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xe0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x0 #x0 #x0 #x0 #x0 #x80 #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf8 #xf8 #xf8 #xfc #xfe #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #x1f #x3f #x7f #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x1 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x0 #x0 #x0 #x0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe0 #xf0 #xf8 #xfc #xfe #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf6 #xfe #xf0 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf6 #xf4 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf4 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf8 #xf8 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf3 #xf3 #xf3 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf4 #xfc #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf1 #xf1 #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfc #xfe #xf8 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf3 #xf3 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf0 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf0 #xf0 #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf2 #xf0 #xfe #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xf1 #xf1 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xfc #xf0 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xf3 #xf0 #xf8 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfc #xfc #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf1 #xf1 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xfe #xf7 #xf7 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xfe #xfe #xfe #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf7 #xf7 #xff #xff #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf0 #xf0 #xf0 #xf7 #xff #xff #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1f #x1f #xff #xff #xff #xff #xf #xf)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x1f #x1f #x1f #x1f #xc #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xf #xf #xf #xf #x1f #x1f #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x18 #x18 #xe0 #xe0 #xe0 #xe0 #xff #xff)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x0 #x0 #x3f #x3f #x3f #x3f #x3f #x3f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xe1 #xc3 #xc7 #xcf #xff #xff #xff #x7f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #xff #xff #xff #xff #xff #xff #xff #xc0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x3f #x3f #x3f #x1f #x1f #x1 #x1)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x3f #x3f #x3f #x1f #x1f #x1f #x1f #x1f)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x80 #x0 #x0 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask :mask (new 'static 'array uint8 8 #x1 #x1 #x1 #x0 #x0 #x0 #x0 #x0)) + (new 'static 'ocean-mid-mask) + ) + ) + ) + +;; definition for symbol *ocean-map-city*, type ocean-map +(define *ocean-map-city* (new 'static 'ocean-map + :start-corner (new 'static 'vector :x -3538944.0 :z -7077888.0 :w 1.0) + :far-color (new 'static 'vector :x 2.509804 :y 30.619608 :z 36.64314 :w 128.0) + ) + ) + +;; failed to figure out what this is: +(set! (-> *ocean-map-city* ocean-colors) *ocean-colors-city*) + +;; failed to figure out what this is: +(set! (-> *ocean-map-city* ocean-mid-masks) *ocean-mid-masks-city*) + +;; failed to figure out what this is: +(set! (-> *ocean-map-city* ocean-mid-indices) *ocean-mid-indices-city*) + +;; failed to figure out what this is: +(set! (-> *ocean-map-city* ocean-trans-indices) *ocean-trans-indices-city*) + +;; failed to figure out what this is: +(set! (-> *ocean-map-city* ocean-near-indices) *ocean-near-indices-city*) + + + + diff --git a/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-trans-tables_REF.gc b/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-trans-tables_REF.gc new file mode 100644 index 0000000000..bcc28f530c --- /dev/null +++ b/test/decompiler/reference/jak3/engine/gfx/ocean/ocean-trans-tables_REF.gc @@ -0,0 +1,1102 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *ocean-left-table*, type (pointer float) +(define *ocean-left-table* (new 'static 'array float 28 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +;; definition for symbol *ocean-right-table*, type (pointer float) +(define *ocean-right-table* (new 'static 'array float 28 + 0.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-up-table*, type (pointer float) +(define *ocean-up-table* (new 'static 'array float 28 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +;; definition for symbol *ocean-down-table*, type (pointer float) +(define *ocean-down-table* (new 'static 'array float 28 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-down-left-table*, type (pointer float) +(define *ocean-down-left-table* (new 'static 'array float 40 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-down-right-table*, type (pointer float) +(define *ocean-down-right-table* (new 'static 'array float 40 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-up-right-table*, type (pointer float) +(define *ocean-up-right-table* (new 'static 'array float 40 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 1.0 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +;; definition for symbol *ocean-up-left-table*, type (pointer float) +(define *ocean-up-left-table* (new 'static 'array float 40 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +;; definition for symbol *ocean-trans-left-table*, type (pointer float) +(define *ocean-trans-left-table* (new 'static 'array float 44 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +;; definition for symbol *ocean-trans-right-table*, type (pointer float) +(define *ocean-trans-right-table* (new 'static 'array float 44 + 0.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-trans-up-table*, type (pointer float) +(define *ocean-trans-up-table* (new 'static 'array float 44 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +;; definition for symbol *ocean-trans-down-table*, type (pointer float) +(define *ocean-trans-down-table* (new 'static 'array float 44 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-trans-down-left-table*, type (pointer float) +(define *ocean-trans-down-left-table* (new 'static 'array float 72 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-trans-down-right-table*, type (pointer float) +(define *ocean-trans-down-right-table* (new 'static 'array float 72 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-trans-up-right-table*, type (pointer float) +(define *ocean-trans-up-right-table* (new 'static 'array float 72 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 1.0 + 0.0 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +;; definition for symbol *ocean-trans-up-left-table*, type (pointer float) +(define *ocean-trans-up-left-table* (new 'static 'array float 72 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.125 + 0.0 + 0.875 + 0.0 + 0.125 + 0.875 + 0.0 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.375 + 0.0 + 0.625 + 0.0 + 0.375 + 0.625 + 0.0 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.625 + 0.0 + 0.375 + 0.0 + 0.625 + 0.375 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.875 + 0.0 + 0.125 + 0.0 + 0.875 + 0.125 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + ) + ) + +;; definition for symbol *ocean-trans-corner-table*, type (inline-array vector4w-2) +(define *ocean-trans-corner-table* (the-as (inline-array vector4w-2) (new 'static 'array float 100 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5625 + 0.1875 + 0.1875 + 0.0625 + 0.375 + 0.375 + 0.125 + 0.125 + 0.1875 + 0.5625 + 0.0625 + 0.1875 + 0.0 + 0.75 + 0.0 + 0.25 + 0.5 + 0.0 + 0.5 + 0.0 + 0.375 + 0.125 + 0.375 + 0.125 + 0.25 + 0.25 + 0.25 + 0.25 + 0.125 + 0.375 + 0.125 + 0.375 + 0.0 + 0.5 + 0.0 + 0.5 + 0.25 + 0.0 + 0.75 + 0.0 + 0.1875 + 0.0625 + 0.5625 + 0.1875 + 0.125 + 0.125 + 0.375 + 0.375 + 0.0625 + 0.1875 + 0.1875 + 0.5625 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + ) + +;; definition for symbol *ocean-trans-strip-array*, type (pointer float) +(define *ocean-trans-strip-array* (new 'static 'array float 160 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.25 + 0.0 + 0.0 + 0.5625 + 0.1875 + 0.1875 + 0.0625 + 0.5 + 0.5 + 0.0 + 0.0 + 0.375 + 0.375 + 0.125 + 0.125 + 0.25 + 0.75 + 0.0 + 0.0 + 0.1875 + 0.5625 + 0.0625 + 0.1875 + 0.0 + 1.0 + 0.0 + 0.0 + 0.0 + 0.75 + 0.0 + 0.25 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.5625 + 0.1875 + 0.1875 + 0.0625 + 0.375 + 0.125 + 0.375 + 0.125 + 0.375 + 0.375 + 0.125 + 0.125 + 0.25 + 0.25 + 0.25 + 0.25 + 0.1875 + 0.5625 + 0.0625 + 0.1875 + 0.125 + 0.375 + 0.125 + 0.375 + 0.0 + 0.75 + 0.0 + 0.25 + 0.0 + 0.5 + 0.0 + 0.5 + 0.5 + 0.0 + 0.5 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.375 + 0.125 + 0.375 + 0.125 + 0.1875 + 0.0625 + 0.5625 + 0.1875 + 0.25 + 0.25 + 0.25 + 0.25 + 0.125 + 0.125 + 0.375 + 0.375 + 0.125 + 0.375 + 0.125 + 0.375 + 0.0625 + 0.1875 + 0.1875 + 0.5625 + 0.0 + 0.5 + 0.0 + 0.5 + 0.0 + 0.25 + 0.0 + 0.75 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + 0.0 + 0.1875 + 0.0625 + 0.5625 + 0.1875 + 0.0 + 0.0 + 0.75 + 0.25 + 0.125 + 0.125 + 0.375 + 0.375 + 0.0 + 0.0 + 0.5 + 0.5 + 0.0625 + 0.1875 + 0.1875 + 0.5625 + 0.0 + 0.0 + 0.25 + 0.75 + 0.0 + 0.25 + 0.0 + 0.75 + 0.0 + 0.0 + 0.0 + 1.0 + ) + ) + +;; definition for symbol *ocean-trans-st-table*, type (inline-array vector) +(define *ocean-trans-st-table* (new 'static 'inline-array vector 4 + (new 'static 'vector :z 1.0) + (new 'static 'vector :x 1.0 :z 1.0) + (new 'static 'vector :y 1.0 :z 1.0) + (new 'static 'vector :x 1.0 :y 1.0 :z 1.0) + ) + ) + + + + diff --git a/test/decompiler/reference/jak3/engine/math/math_REF.gc b/test/decompiler/reference/jak3/engine/math/math_REF.gc index 81b943db5c..f5a5d8dd1a 100644 --- a/test/decompiler/reference/jak3/engine/math/math_REF.gc +++ b/test/decompiler/reference/jak3/engine/math/math_REF.gc @@ -279,7 +279,11 @@ ;; definition of type rgba (deftype rgba (uint32) - () + ((r uint8 :offset 0 :size 8) + (g uint8 :offset 8 :size 8) + (b uint8 :offset 16 :size 8) + (a uint8 :offset 24 :size 8) + ) ) ;; definition of type xyzw @@ -765,3 +769,7 @@ - f'(arg3) = f'(arg4) = 0" (+ arg0 (* (- arg1 arg0) (smooth-step (/ (- arg2 arg3) (- arg4 arg3))))) ) + + + + diff --git a/test/decompiler/reference/jak3/engine/math/vector_REF.gc b/test/decompiler/reference/jak3/engine/math/vector_REF.gc new file mode 100644 index 0000000000..a9bc430bed --- /dev/null +++ b/test/decompiler/reference/jak3/engine/math/vector_REF.gc @@ -0,0 +1,1759 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for function vector-cross! +(defun vector-cross! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Compute the cross product. The w component is set to junk." + (vector-cross! arg0 arg1 arg2) + ) + +;; definition for function vector-xz-cross! +(defun vector-xz-cross! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Compute the cross product of the xz components of inputs." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.add.x.vf vf1 vf0 vf0 :mask #b10) + (.add.x.vf vf2 vf0 vf0 :mask #b10) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +;; definition for function vector+float! +(defun vector+float! ((arg0 vector) (arg1 vector) (arg2 float)) + "Add float to each component of vector. The w component is set to 1" + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (.mov vf6 arg2) + (.lvf vf4 (&-> arg1 quad)) + (.add.x.vf vf5 vf0 vf0 :mask #b1000) + (.add.x.vf vf5 vf4 vf6 :mask #b111) + (.svf (&-> arg0 quad) vf5) + arg0 + ) + ) + +;; definition for function vector*! +(defun vector*! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Elementwise product. Set w = 1." + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (.lvf vf4 (&-> arg1 quad)) + (.lvf vf5 (&-> arg2 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +;; definition for function vector+*! +(defun vector+*! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "set arg0 = arg1 + (arg3 * arg2). The w component will be set to 1." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.mov vf7 arg3) + (.lvf vf5 (&-> arg2 quad)) + (.lvf vf4 (&-> arg1 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +;; definition for function vector-*! +(defun vector-*! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Set arg0 = arg1 - (arg3 * arg2). The w component will be set to 1." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.mov vf7 arg3) + (.lvf vf5 (&-> arg2 quad)) + (.lvf vf4 (&-> arg1 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.w.vf acc vf4 vf0 :mask #b111) + (.sub.mul.x.vf vf6 vf5 vf7 acc :mask #b111) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +;; definition for function vector/! +(defun vector/! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Set arg0 = arg1 / arg2. The w component will be set to 1. + The implementation is kind of crazy." + (rlet ((Q :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.lvf vf5 (&-> arg2 quad)) + (.div.vf Q vf0 vf5 :fsf #b11 :ftf #b1) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.lvf vf4 (&-> arg1 quad)) + (let ((v1-0 (/ (-> arg1 x) (-> arg2 x)))) + (.wait.vf) + (.mul.vf vf6 vf4 Q :mask #b10) + (.nop.vf) + (.nop.vf) + (.div.vf Q vf0 vf5 :fsf #b11 :ftf #b10) + (.mov vf7 v1-0) + ) + (.add.x.vf vf6 vf0 vf7 :mask #b1) + (.wait.vf) + (.mul.vf vf6 vf4 Q :mask #b100) + (.nop.vf) + (.nop.vf) + (.svf (&-> arg0 quad) vf6) + arg0 + ) + ) + +;; definition for function vector-float*! +(defun vector-float*! ((arg0 vector) (arg1 vector) (arg2 float)) + "Multiply all values in a vector by arg2. Set w to 1." + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.mov vf2 arg2) + (.add.x.vf vf1 vf0 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function vector-average! +(defun vector-average! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Set arg0 to the average of arg1 and arg2. Set w to 1." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 #x3f000000)) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov vf3 v1-0) + ) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf1 vf3) + (.add.mul.x.vf vf4 vf2 vf3 acc :mask #b111) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +;; definition for function vector+float*! +(defun vector+float*! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "arg0 = arg1 + arg2 * arg3." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg2 quad)) + (.lvf vf1 (&-> arg1 quad)) + (.mov vf3 arg3) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf2 vf3) + (.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +;; definition for function vector--float*! +(defun vector--float*! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Set arg0 = arg1 - (arg2 * arg3). The w component will be set to 1. + Is this different from vector-*!" + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg2 quad)) + (.lvf vf1 (&-> arg1 quad)) + (.mov vf3 arg3) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.mul.w.vf acc vf1 vf0) + (.sub.mul.x.vf vf4 vf2 vf3 acc :mask #b111) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +;; definition for function vector-min! +(defun vector-min! ((arg0 vector) (arg1 vector) (arg2 vector)) + (set! (-> arg0 x) (fmin (-> arg1 x) (-> arg2 x))) + (set! (-> arg0 y) (fmin (-> arg1 y) (-> arg2 y))) + (set! (-> arg0 z) (fmin (-> arg1 z) (-> arg2 z))) + (set! (-> arg0 w) 1.0) + arg0 + ) + +;; definition for function vector-max! +(defun vector-max! ((arg0 vector) (arg1 vector) (arg2 vector)) + (set! (-> arg0 x) (fmax (-> arg1 x) (-> arg2 x))) + (set! (-> arg0 y) (fmax (-> arg1 y) (-> arg2 y))) + (set! (-> arg0 z) (fmax (-> arg1 z) (-> arg2 z))) + (set! (-> arg0 w) 1.0) + arg0 + ) + +;; definition for function vector-float/! +(defun vector-float/! ((arg0 vector) (arg1 vector) (arg2 float)) + "Divide all components by arg2. The w component will be set to 1." + (rlet ((Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.mov vf3 arg2) + (.div.vf Q vf0 vf3 :fsf #b11 :ftf #b0) + (.lvf vf1 (&-> arg1 quad)) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.wait.vf) + (.mul.vf vf4 vf1 Q :mask #b111) + (.nop.vf) + (.nop.vf) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +;; definition for function vector-negate! +(defun vector-negate! ((arg0 vector) (arg1 vector)) + "Negate xyz, set w to 1." + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.sub.vf vf4 vf0 vf1 :mask #b111) + (.add.x.vf vf4 vf0 vf0 :mask #b1000) + (.svf (&-> arg0 quad) vf4) + arg0 + ) + ) + +;; definition for function vector-negate-in-place! +(defun vector-negate-in-place! ((arg0 vector)) + "Negate xyz. Doesn't touch w." + (rlet ((vf0 :class vf) + (vf1 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.sub.vf vf1 vf0 vf1 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function vector= +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for function vector-delta +(defun vector-delta ((arg0 vector) (arg1 vector)) + "Sum of the elementwise absolute value of differences." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.lvf vf2 (&-> arg1 quad)) + (.sub.vf vf1 vf2 vf1) + (.abs.vf vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.y.vf acc vf0 vf1 acc :mask #b1000) + (.add.mul.z.vf vf3 vf0 vf1 acc :mask #b1000) + (.add.w.vf vf3 vf0 vf3 :mask #b1) + (.mov v0-0 vf3) + v0-0 + ) + ) + +;; definition for function vector-seek! +(defun vector-seek! ((arg0 vector) (arg1 vector) (arg2 float)) + "Seek arg0 toward arg1. The arg0 is both read and written. + arg2 is saturated to (0, 1)" + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (.mov vf4 arg2) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg0 quad)) + (.add.x.vf vf1 vf0 vf0 :mask #b1000) + (.sub.x.vf vf5 vf0 vf4 :mask #b1) + (.sub.vf vf3 vf1 vf2 :mask #b111) + (.min.x.vf vf3 vf3 vf4 :mask #b111) + (.max.x.vf vf3 vf3 vf5 :mask #b111) + (.add.vf vf1 vf2 vf3 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function vector-smooth-seek! +(defun vector-smooth-seek! ((arg0 vector) (arg1 vector) (arg2 float)) + "Smoothly seek vec toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a _square_ with side length arg2. + Note that this doesn't project to a circle like the function below..." + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (new 'stack-no-clear 'vector))) + (vector-! v1-0 arg1 arg0) + (let ((v0-0 arg0)) + (let ((a1-2 (fmin 1.0 arg2))) + (.mov vf7 a1-2) + ) + (.lvf vf5 (&-> v1-0 quad)) + (.lvf vf4 (&-> arg0 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> v0-0 quad) vf6) + v0-0 + ) + ) + ) + ) + +;; definition for function vector-seek-2d-xz-smooth! +(defun vector-seek-2d-xz-smooth! ((arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + "Smoothly seek vec's x and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch y or w." + (let ((f0-1 (- (-> arg1 x) (-> arg0 x))) + (f2-1 (- (-> arg1 z) (-> arg0 z))) + ) + (when (or (!= f0-1 0.0) (!= f2-1 0.0)) + (let* ((f1-5 (* f0-1 arg3)) + (f0-3 (* f2-1 arg3)) + (f2-4 (sqrtf (+ (* f1-5 f1-5) (* f0-3 f0-3)))) + ) + (cond + ((>= arg2 f2-4) + (+! (-> arg0 x) f1-5) + (+! (-> arg0 z) f0-3) + ) + (else + (let ((f2-6 (/ arg2 f2-4))) + (+! (-> arg0 x) (* f2-6 f1-5)) + (+! (-> arg0 z) (* f2-6 f0-3)) + ) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for function vector-seek-2d-yz-smooth! +(defun vector-seek-2d-yz-smooth! ((arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + "Smoothly seek vec's y and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch x or w." + (let ((f0-1 (- (-> arg1 y) (-> arg0 y))) + (f2-1 (- (-> arg1 z) (-> arg0 z))) + ) + (when (or (!= f0-1 0.0) (!= f2-1 0.0)) + (let* ((f1-5 (* f0-1 arg3)) + (f0-3 (* f2-1 arg3)) + (f2-4 (sqrtf (+ (* f1-5 f1-5) (* f0-3 f0-3)))) + ) + (cond + ((>= arg2 f2-4) + (+! (-> arg0 y) f1-5) + (+! (-> arg0 z) f0-3) + ) + (else + (let ((f2-6 (/ arg2 f2-4))) + (+! (-> arg0 y) (* f2-6 f1-5)) + (+! (-> arg0 z) (* f2-6 f0-3)) + ) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for function vector-seek-3d-smooth! +(defun vector-seek-3d-smooth! ((arg0 vector) (arg1 vector) (arg2 float) (arg3 float)) + "Smoothly seek vec's x, y, and z components toward target. + The step always points toward the target and has length (dist * alpha). + If the step is longer than max-step, the step is projected onto a circle of radius max-step. + Doesn't touch w." + (let ((f0-1 (- (-> arg1 x) (-> arg0 x))) + (f1-2 (- (-> arg1 y) (-> arg0 y))) + (f3-1 (- (-> arg1 z) (-> arg0 z))) + ) + (when (or (!= f0-1 0.0) (!= f1-2 0.0) (!= f3-1 0.0)) + (let* ((f2-6 (* f0-1 arg3)) + (f1-3 (* f1-2 arg3)) + (f0-4 (* f3-1 arg3)) + (f3-5 (sqrtf (+ (* f2-6 f2-6) (* f1-3 f1-3) (* f0-4 f0-4)))) + ) + (cond + ((>= arg2 f3-5) + (+! (-> arg0 x) f2-6) + (+! (-> arg0 y) f1-3) + (+! (-> arg0 z) f0-4) + ) + (else + (let ((f3-7 (/ arg2 f3-5))) + (+! (-> arg0 x) (* f3-7 f2-6)) + (+! (-> arg0 y) (* f3-7 f1-3)) + (+! (-> arg0 z) (* f3-7 f0-4)) + ) + ) + ) + ) + ) + ) + arg0 + ) + +;; definition for function seek-with-smooth +(defun seek-with-smooth ((arg0 float) (arg1 float) (arg2 float) (arg3 float) (arg4 float)) + "Move value closer to target. + If we are within deadband, just go straight to target. + If not, try to go alpha*err. If that is a larger step than max-step, limit to max-step" + (let ((f0-1 (- arg1 arg0))) + (cond + ((>= arg4 (fabs f0-1)) + arg1 + ) + (else + (let ((f0-2 (* f0-1 arg3))) + (let ((f1-4 (- arg2))) + (cond + ((< f0-2 f1-4) + (set! f0-2 f1-4) + ) + ((< arg2 f0-2) + (set! f0-2 arg2) + ) + ) + ) + (+ f0-2 arg0) + ) + ) + ) + ) + ) + +;; definition for function vector-identity! +(defun vector-identity! ((arg0 vector)) + "Set arg0 to 1, 1, 1, 1." + (set! (-> arg0 x) 1.0) + (set! (-> arg0 y) 1.0) + (set! (-> arg0 z) 1.0) + (set! (-> arg0 w) 1.0) + arg0 + ) + +;; definition for function vector-seconds +(defun vector-seconds ((arg0 vector) (arg1 vector)) + "Convert from actual seconds to the seconds unit." + (set! (-> arg0 x) (* 300.0 (-> arg1 x))) + (set! (-> arg0 y) (* 300.0 (-> arg1 y))) + (set! (-> arg0 z) (* 300.0 (-> arg1 z))) + arg0 + ) + +;; definition for function vector-seconds! +(defun vector-seconds! ((arg0 vector)) + "Convert from actual seconds to seconds, in place." + (set! (-> arg0 x) (* 300.0 (-> arg0 x))) + (set! (-> arg0 y) (* 300.0 (-> arg0 y))) + (set! (-> arg0 z) (* 300.0 (-> arg0 z))) + arg0 + ) + +;; definition for function vector-v! +(defun vector-v! ((arg0 vector)) + "Convert a velocity to a displacement per frame. The velocity should be in X/actual_second. + Uses the current process clock." + (vector-float*! arg0 arg0 (seconds-per-frame)) + arg0 + ) + +;; definition for function vector-v+! +(defun vector-v+! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Euler forward step, using the current display time settings." + (vector+float*! arg0 arg1 arg2 (seconds-per-frame)) + arg0 + ) + +;; definition for function vector-v*float+! +(defun vector-v*float+! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Euler forward step, scaling velocity by velocity-scale." + (vector+float*! arg0 arg1 arg2 (* arg3 (seconds-per-frame))) + arg0 + ) + +;; definition for function vector-v++! +(defun vector-v++! ((arg0 vector) (arg1 vector)) + "Update position in place, using display's current timing." + (vector+float*! arg0 arg0 arg1 (seconds-per-frame)) + arg0 + ) + +;; definition for function vector-v*float! +(defun vector-v*float! ((arg0 vector) (arg1 vector) (arg2 float)) + "Go from velocity to delta-p per frame, scaling by scale." + (vector-float*! arg0 arg1 (* arg2 (seconds-per-frame))) + ) + +;; definition for function vector-v*float++! +(defun vector-v*float++! ((arg0 vector) (arg1 vector) (arg2 float)) + "Update position with given velocity, scaled by scale." + (vector+float*! arg0 arg0 arg1 (* arg2 (seconds-per-frame))) + arg0 + ) + +;; definition for function vector-to-ups! +(defun vector-to-ups! ((arg0 vector) (arg1 vector)) + "Go from units per frame to units per second?" + (local-vars (at-0 int)) + (with-pp + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (let ((f0-0 (-> pp clock frames-per-second))) + (.mov at-0 f0-0) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + ) + +;; definition for function vector-from-ups! +(defun vector-from-ups! ((arg0 vector) (arg1 vector)) + "Go from units per second to units per frame?" + (local-vars (at-0 int)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function vector-length +(defun vector-length ((arg0 vector)) + "Get the length of the xyz part." + (vector-length arg0) + ) + +;; definition for function vector-length-squared +(defun vector-length-squared ((arg0 vector)) + "Get the squared length of the xyz part." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v0-0 vf1) + v0-0 + ) + ) + +;; definition for function vector-xz-length-squared +(defun vector-xz-length-squared ((arg0 vector)) + "Get the length of the xz part, squared." + (+ (* (-> arg0 x) (-> arg0 x)) (* (-> arg0 z) (-> arg0 z))) + ) + +;; definition for function vector-xz-length +(defun vector-xz-length ((arg0 vector)) + "Get the length of the xz part." + (sqrtf (+ (* (-> arg0 x) (-> arg0 x)) (* (-> arg0 z) (-> arg0 z)))) + ) + +;; definition for function vector-vector-distance +(defun vector-vector-distance ((arg0 vector) (arg1 vector)) + "Subtract the xyz parts and get the norm." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.y.vf acc vf0 vf1 acc :mask #b1000) + (.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000) + (.sqrt.vf Q vf1 :ftf #b11) + (.add.w.vf vf1 vf0 vf0 :mask #b1) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.mov v0-0 vf1) + v0-0 + ) + ) + +;; definition for function vector-vector-distance-squared +(defun vector-vector-distance-squared ((arg0 vector) (arg1 vector)) + "Squared norm of the difference of the xyz parts." + (local-vars (v0-0 float)) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.add.y.vf vf1 vf1 vf1 :mask #b1) + (.add.z.vf vf1 vf1 vf1 :mask #b1) + (.mov v0-0 vf1) + v0-0 + ) + ) + +;; definition for function vector-vector-xz-distance +(defun vector-vector-xz-distance ((arg0 vector) (arg1 vector)) + "Distance on the xz plane." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000) + (.sqrt.vf Q vf1 :ftf #b11) + (.add.w.vf vf1 vf0 vf0 :mask #b1) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.mov v0-0 vf1) + v0-0 + ) + ) + +;; definition for function vector-vector-xy-distance +(defun vector-vector-xy-distance ((arg0 vector) (arg1 vector)) + "distance on the xy plane." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf0 vf1 :mask #b1000) + (.add.mul.y.vf vf1 vf0 vf1 acc :mask #b1000) + (.sqrt.vf Q vf1 :ftf #b11) + (.add.w.vf vf1 vf0 vf0 :mask #b1) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b1) + (.nop.vf) + (.nop.vf) + (.mov v0-0 vf1) + v0-0 + ) + ) + +;; definition for function vector-vector-xz-distance-squared +(defun vector-vector-xz-distance-squared ((arg0 vector) (arg1 vector)) + "Distance on the xz plane squared." + (local-vars (v0-0 float)) + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (.lvf vf2 (&-> arg0 quad)) + (.lvf vf3 (&-> arg1 quad)) + (.sub.vf vf1 vf3 vf2) + (.mul.vf vf1 vf1 vf1) + (.add.z.vf vf1 vf1 vf1 :mask #b1) + (.mov v0-0 vf1) + v0-0 + ) + ) + +;; definition for function vector-vector-planar-distance +(defun vector-vector-planar-distance ((arg0 vector) (arg1 vector) (arg2 vector)) + (vector-vector-distance + (vector-flatten! (new 'stack-no-clear 'vector) arg0 arg2) + (vector-flatten! (new 'stack-no-clear 'vector) arg1 arg2) + ) + ) + +;; definition for function vector-normalize! +(defun vector-normalize! ((arg0 vector) (arg1 float)) + "Modify arg0 in place to have length arg1 for its xyz components. The w part is not changed." + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.mul.vf vf2 vf1 vf1 :mask #b111) + (let ((v1-0 arg1)) + (.mov vf3 v1-0) + ) + (.mul.x.vf acc vf0 vf2 :mask #b1000) + (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000) + (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b111) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function vector-normalize-ret-len! +(defun vector-normalize-ret-len! ((arg0 vector) (arg1 float)) + "Modify arg0 in place to have length arg1 for its xyz components. + The w part isn't changed and the _original_ length is returned." + (local-vars (v1-1 float)) + (rlet ((acc :class vf) + (Q :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.mul.vf vf2 vf1 vf1 :mask #b111) + (let ((v1-0 arg1)) + (.mov vf3 v1-0) + ) + (.mul.x.vf acc vf0 vf2 :mask #b1000) + (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000) + (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000) + (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11) + (.add.w.vf vf2 vf0 vf2 :mask #b1) + (.mov v1-1 vf2) + (let ((v0-0 (sqrtf v1-1))) + (.wait.vf) + (.mul.vf vf1 vf1 Q :mask #b111) + (.nop.vf) + (.nop.vf) + (.nop.vf) + (.svf (&-> arg0 quad) vf1) + v0-0 + ) + ) + ) + +;; definition for function vector-normalize-copy! +;; INFO: Used lq/sq +(defun vector-normalize-copy! ((arg0 vector) (arg1 vector) (arg2 float)) + "Normalize, but not in place. + This implementation is very good compared to the vector-normalize! one. + The w component is set to 1." + (let ((f0-0 (vector-length arg1))) + (cond + ((= f0-0 0.0) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + (else + (let ((v1-3 (/ arg2 f0-0))) + (set! (-> arg0 x) (* (-> arg1 x) v1-3)) + (set! (-> arg0 y) (* (-> arg1 y) v1-3)) + (set! (-> arg0 z) (* (-> arg1 z) v1-3)) + ) + ) + ) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +;; definition for function vector-xz-normalize! +(defun vector-xz-normalize! ((arg0 vector) (arg1 float)) + "Normalize, xz components only." + (let* ((v1-0 arg0) + (f0-4 (sqrtf (+ (* (-> v1-0 x) (-> v1-0 x)) (* (-> v1-0 z) (-> v1-0 z))))) + ) + (when (!= f0-4 0.0) + (let ((v1-3 (/ arg1 f0-4))) + (set! (-> arg0 x) (* (-> arg0 x) v1-3)) + (set! (-> arg0 z) (* (-> arg0 z) v1-3)) + ) + ) + ) + arg0 + ) + +;; definition for function vector-xz-normalize-copy! +;; INFO: Used lq/sq +(defun vector-xz-normalize-copy! ((arg0 vector) (arg1 vector) (arg2 float)) + "Normalize, xz components only." + (let* ((v1-0 arg1) + (f0-4 (sqrtf (+ (* (-> v1-0 x) (-> v1-0 x)) (* (-> v1-0 z) (-> v1-0 z))))) + ) + (cond + ((= f0-4 0.0) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + (else + (let ((v1-3 (/ arg2 f0-4))) + (set! (-> arg0 x) (* (-> arg1 x) v1-3)) + (set! (-> arg0 y) 0.0) + (set! (-> arg0 z) (* (-> arg1 z) v1-3)) + ) + ) + ) + ) + (set! (-> arg0 w) 1.0) + arg0 + ) + +;; definition for function vector-length-max! +(defun vector-length-max! ((arg0 vector) (arg1 float)) + "Make vector at most arg1 length (xyz only). + If it is larger, project onto sphere. + Doesn't touch w" + (let ((f0-0 (vector-length arg0))) + (when (not (or (= f0-0 0.0) (< f0-0 arg1))) + (let ((f0-1 (/ arg1 f0-0))) + (set! (-> arg0 x) (* (-> arg0 x) f0-1)) + (set! (-> arg0 y) (* (-> arg0 y) f0-1)) + (set! (-> arg0 z) (* (-> arg0 z) f0-1)) + ) + ) + ) + arg0 + ) + +;; definition for function vector-xz-length-max! +(defun vector-xz-length-max! ((arg0 vector) (arg1 float)) + "Make vector at most arg1 length (xz only). + It it is larger, project onto circle. + Doesn't touch w or y." + (let* ((v1-0 arg0) + (f0-4 (sqrtf (+ (* (-> v1-0 x) (-> v1-0 x)) (* (-> v1-0 z) (-> v1-0 z))))) + ) + (when (not (or (= f0-4 0.0) (< f0-4 arg1))) + (let ((f0-5 (/ arg1 f0-4))) + (set! (-> arg0 x) (* (-> arg0 x) f0-5)) + (set! (-> arg0 z) (* (-> arg0 z) f0-5)) + ) + ) + ) + arg0 + ) + +;; definition for function vector-rotate-around-x! +;; INFO: Used lq/sq +(defun vector-rotate-around-x! ((arg0 vector) (arg1 vector) (arg2 float)) + "Rotate a vector around the x axis." + (let* ((f28-0 (- arg2)) + (f30-0 (cos f28-0)) + (f1-0 (sin f28-0)) + (f2-0 (-> arg1 z)) + (f0-1 (-> arg1 y)) + ) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 z) (- (* f2-0 f30-0) (* f0-1 f1-0))) + (set! (-> arg0 y) (+ (* f2-0 f1-0) (* f0-1 f30-0))) + ) + arg0 + ) + +;; definition for function vector-rotate-around-y! +;; INFO: Used lq/sq +(defun vector-rotate-around-y! ((arg0 vector) (arg1 vector) (arg2 float)) + "Rotate a vector around the y axis." + (let ((f26-0 (-> arg1 z)) + (f30-0 (-> arg1 x)) + (f28-0 (cos arg2)) + (f0-0 (sin arg2)) + ) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 z) (- (* f26-0 f28-0) (* f30-0 f0-0))) + (set! (-> arg0 x) (+ (* f26-0 f0-0) (* f30-0 f28-0))) + ) + arg0 + ) + +;; definition for function vector-rotate90-around-y! +;; INFO: Used lq/sq +(defun vector-rotate90-around-y! ((arg0 vector) (arg1 vector)) + "Rotate a vector 90 degrees around y." + (set! (-> arg0 quad) (-> arg1 quad)) + (let ((f0-0 (-> arg0 x))) + (set! (-> arg0 x) (- (-> arg1 z))) + (set! (-> arg0 z) f0-0) + ) + arg0 + ) + +;; definition for function vector-rotate-around-z! +;; INFO: Used lq/sq +(defun vector-rotate-around-z! ((arg0 vector) (arg1 vector) (arg2 float)) + "Rotate a vector around the z axis." + (let ((f26-0 (-> arg1 x)) + (f30-0 (-> arg1 y)) + (f28-0 (cos arg2)) + (f0-0 (sin arg2)) + ) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 x) (- (* f26-0 f28-0) (* f30-0 f0-0))) + (set! (-> arg0 y) (+ (* f26-0 f0-0) (* f30-0 f28-0))) + ) + arg0 + ) + +;; definition for function rotate-y<-vector+vector +(defun rotate-y<-vector+vector ((arg0 vector) (arg1 vector)) + "Get the y rotation between vectors. These should have the same length." + (atan (- (-> arg1 x) (-> arg0 x)) (- (-> arg1 z) (-> arg0 z))) + ) + +;; definition for function rotate-x<-vector+vector +(defun rotate-x<-vector+vector ((arg0 vector) (arg1 vector)) + "Get the x rotation between vectors. These should have the same length." + (atan (- (-> arg1 y) (-> arg0 y)) (- (-> arg1 z) (-> arg0 z))) + ) + +;; definition for function rotate-z<-vector+vector +(defun rotate-z<-vector+vector ((arg0 vector) (arg1 vector)) + "Get the z rotation between vectors. These should have the same length." + (atan (- (-> arg1 x) (-> arg0 x)) (- (-> arg1 y) (-> arg0 y))) + ) + +;; definition for function rotate-vector-to-vector +(defun rotate-vector-to-vector ((arg0 vector) (arg1 vector) (arg2 vector)) + (let ((gp-0 (new 'stack-no-clear 'quaternion))) + (quaternion-from-two-vectors-max-angle! (the-as quaternion (&-> gp-0 x)) arg0 arg1 (the-as float arg2)) + (vector-orient-by-quat! arg0 arg0 (the-as quaternion (&-> gp-0 x))) + ) + (vector-normalize! arg0 1.0) + ) + +;; definition for function vector-cvt.w.s! +(defun vector-cvt.w.s! ((arg0 vector) (arg1 vector)) + "Convert float to int32. Truncate." + (rlet ((vf1 :class vf)) + (.lvf vf1 (&-> arg1 quad)) + (.ftoi.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function vector-cvt.s.w! +(defun vector-cvt.s.w! ((arg0 vector) (arg1 vector)) + "Convert float to int32." + (rlet ((vf1 :class vf)) + (.lvf vf1 (&-> arg1 quad)) + (.itof.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function rot-zxy-from-vector! +(defun rot-zxy-from-vector! ((arg0 vector) (arg1 vector)) + "I think this gives you a vector of euler angles to rotate some unit vector + to arg1." + (let* ((f28-0 (-> arg1 z)) + (f30-0 (-> arg1 x)) + (f0-0 (atan f30-0 f28-0)) + ) + (set! (-> arg0 y) f0-0) + (let* ((f26-0 (- f0-0)) + (f0-4 (- (* f28-0 (cos f26-0)) (* f30-0 (sin f26-0)))) + ) + (set! (-> arg0 x) (atan (- (-> arg1 y)) f0-4)) + ) + ) + (set! (-> arg0 z) 0.0) + arg0 + ) + +;; definition for function rot-zyx-from-vector! +(defun rot-zyx-from-vector! ((arg0 vector) (arg1 vector)) + "I think this gives you a vector of euler angles to rotate some unit vector + to arg1." + (let* ((f28-0 (-> arg1 z)) + (f30-0 (- (-> arg1 y))) + (f0-1 (atan f30-0 f28-0)) + ) + (set! (-> arg0 x) f0-1) + (let* ((f26-0 (- f0-1)) + (f0-5 (- (* f28-0 (cos f26-0)) (* f30-0 (sin f26-0)))) + ) + (set! (-> arg0 y) (atan (-> arg1 x) f0-5)) + ) + ) + (set! (-> arg0 z) 0.0) + arg0 + ) + +;; definition for function vector-lerp! +(defun vector-lerp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Linearly interpolate between two vectors. Alpha isn't clamped. + w will be set to 1." + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov vf4 arg3) + (.add.x.vf vf3 vf0 vf0 :mask #b1000) + (.sub.vf vf2 vf2 vf1) + (.mul.x.vf vf2 vf2 vf4) + (.add.vf vf3 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +;; definition for function vector-lerp-clamp! +;; INFO: Used lq/sq +(defun vector-lerp-clamp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Linearly interpolate between two vectors, clamping alpha to 0, 1. + w will be set to 1." + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (let ((v1-3 arg0)) + (let ((f0-2 arg3)) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (let ((a1-1 f0-2)) + (.mov vf4 a1-1) + ) + ) + (.add.x.vf vf3 vf0 vf0 :mask #b1000) + (.sub.vf vf2 vf2 vf1) + (.mul.x.vf vf2 vf2 vf4) + (.add.vf vf3 vf1 vf2 :mask #b111) + (.svf (&-> v1-3 quad) vf3) + ) + ) + ) + arg0 + ) + ) + +;; definition for function vector4-lerp! +(defun vector4-lerp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Interpolate all 4 elements of a vector. Alpha is not clamped." + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.mov vf4 arg3) + (.sub.vf vf2 vf2 vf1) + (.mul.x.vf vf2 vf2 vf4) + (.add.vf vf3 vf1 vf2) + (.svf (&-> arg0 quad) vf3) + arg0 + ) + ) + +;; definition for function vector4-lerp-clamp! +;; INFO: Used lq/sq +(defun vector4-lerp-clamp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Interpolate all 4 elements of a vector. Alpha is clamped to [0, 1]." + (rlet ((vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (let ((v1-3 arg0)) + (let ((f0-2 arg3)) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (let ((a1-1 f0-2)) + (.mov vf4 a1-1) + ) + ) + (.sub.vf vf2 vf2 vf1) + (.mul.x.vf vf2 vf2 vf4) + (.add.vf vf3 vf1 vf2) + (.svf (&-> v1-3 quad) vf3) + ) + ) + ) + arg0 + ) + ) + +;; definition for function vector-degi +;; INFO: Used lq/sq +(defun vector-degi ((arg0 vector) (arg1 vector)) + "Convert a vector (in _rotations_) to degrees units, stored in an int. + Truncates to the nearest _rotation_. + Neither the input or output is a commonly used form. + Unsurprisingly, this strange function is never used." + (local-vars (v1-0 uint128) (v1-1 uint128)) + (rlet ((vf1 :class vf)) + (.lvf vf1 (&-> arg1 quad)) + (.ftoi.vf vf1 vf1) + (.mov v1-0 vf1) + (.pw.sll v1-1 v1-0 16) + (set! (-> arg0 quad) v1-1) + arg0 + ) + ) + +;; definition for function vector-degf +;; INFO: Used lq/sq +(defun vector-degf ((arg0 vector) (arg1 vector)) + "Convert a vector (in integer degree units) to floating point rotations. + Truncates to the nearest _rotation_. + Like the previous function, this is stupid and unused." + (local-vars (v1-1 uint128)) + (rlet ((vf1 :class vf)) + (let ((v1-0 (-> arg1 quad))) + (.pw.sra v1-1 v1-0 16) + ) + (.mov vf1 v1-1) + (.itof.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function vector-degmod +(defun vector-degmod ((arg0 vector) (arg1 vector)) + "This one is actually right. Wraps degrees units (in floats, like they should be) + to +/- half a rotation." + (local-vars (v1-0 uint128) (v1-1 uint128) (v1-2 uint128)) + (rlet ((vf1 :class vf)) + (.lvf vf1 (&-> arg1 quad)) + (.ftoi.vf vf1 vf1) + (.mov v1-0 vf1) + (.pw.sll v1-1 v1-0 16) + (.pw.sra v1-2 v1-1 16) + (.mov vf1 v1-2) + (.itof.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + arg0 + ) + ) + +;; definition for function vector-deg-diff +;; WARN: Return type mismatch float vs none. +(defun vector-deg-diff ((arg0 vector) (arg1 vector) (arg2 vector)) + "Wrapped difference, degrees units. Will have the usual 16-bit accuracy issue." + (local-vars + (v0-0 float) + (v1-0 uint128) + (v1-1 uint128) + (v1-2 uint128) + (v1-3 uint128) + (a1-1 uint128) + (a1-2 uint128) + ) + (rlet ((vf1 :class vf) + (vf2 :class vf) + ) + (.lvf vf1 (&-> arg1 quad)) + (.lvf vf2 (&-> arg2 quad)) + (.ftoi.vf vf1 vf1) + (.ftoi.vf vf2 vf2) + (.mov a1-1 vf1) + (.mov v1-0 vf2) + (.pw.sll a1-2 a1-1 16) + (.pw.sll v1-1 v1-0 16) + (.psubw v1-2 a1-2 v1-1) + (.pw.sra v1-3 v1-2 16) + (.mov vf1 v1-3) + (.itof.vf vf1 vf1) + (.svf (&-> arg0 quad) vf1) + (.mov v0-0 vf1) + (none) + ) + ) + +;; definition for function vector-deg-lerp-clamp! +;; INFO: Used lq/sq +(defun vector-deg-lerp-clamp! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) + "Apply deg-lerp-clamp to the xyz components of a vector. Sets w = 1." + (cond + ((>= 0.0 arg3) + (set! (-> arg0 quad) (-> arg1 quad)) + ) + ((>= arg3 1.0) + (set! (-> arg0 quad) (-> arg2 quad)) + ) + (else + (set! (-> arg0 x) (deg-lerp-clamp (-> arg1 x) (-> arg2 x) arg3)) + (set! (-> arg0 y) (deg-lerp-clamp (-> arg1 y) (-> arg2 y) arg3)) + (set! (-> arg0 z) (deg-lerp-clamp (-> arg1 z) (-> arg2 z) arg3)) + (set! (-> arg0 w) 1.0) + ) + ) + arg0 + ) + +;; definition for function vector3s-copy! +(defun vector3s-copy! ((arg0 vector) (arg1 vector)) + "Copy a vector3s" + (set! (-> arg0 x) (-> arg1 x)) + (set! (-> arg0 y) (-> arg1 y)) + (set! (-> arg0 z) (-> arg1 z)) + arg0 + ) + +;; definition for function vector3s+! +(defun vector3s+! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Add 2 vectors3." + (set! (-> arg0 x) (+ (-> arg1 x) (-> arg2 x))) + (set! (-> arg0 y) (+ (-> arg1 y) (-> arg2 y))) + (set! (-> arg0 z) (+ (-> arg1 z) (-> arg2 z))) + arg0 + ) + +;; definition for function vector3s*float! +(defun vector3s*float! ((arg0 vector) (arg1 vector) (arg2 float)) + "mult vectors3 by float" + (set! (-> arg0 x) (* (-> arg1 x) arg2)) + (set! (-> arg0 y) (* (-> arg1 y) arg2)) + (set! (-> arg0 z) (* (-> arg1 z) arg2)) + arg0 + ) + +;; definition for function vector3s-! +(defun vector3s-! ((arg0 vector) (arg1 vector) (arg2 vector)) + "Subtract 2 vectors3: c = (a - b)." + (set! (-> arg0 x) (- (-> arg1 x) (-> arg2 x))) + (set! (-> arg0 y) (- (-> arg1 y) (-> arg2 y))) + (set! (-> arg0 z) (- (-> arg1 z) (-> arg2 z))) + arg0 + ) + +;; definition for function vector4-add! +;; WARN: Return type mismatch float vs none. +(defun vector4-add! ((arg0 vector4) (arg1 vector4) (arg2 vector4)) + "Add 2 vector4s." + (local-vars (v0-0 float)) + (rlet ((vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.add.vf vf4 vf5 vf6) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; definition for function vector4-sub! +;; WARN: Return type mismatch float vs none. +(defun vector4-sub! ((arg0 vector4) (arg1 vector4) (arg2 vector4)) + "Subtract 2 vector4s." + (local-vars (v0-0 float)) + (rlet ((vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.sub.vf vf4 vf5 vf6) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; definition for function vector4-mul! +;; WARN: Return type mismatch float vs none. +(defun vector4-mul! ((arg0 vector4) (arg1 vector4) (arg2 vector4)) + "Multiple 2 vector4s." + (local-vars (v0-0 float)) + (rlet ((vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.mul.vf vf4 vf5 vf6) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; definition for function vector4-scale! +;; WARN: Return type mismatch float vs none. +(defun vector4-scale! ((arg0 vector4) (arg1 vector4) (arg2 float)) + "arg0 = arg1 * arg2." + (local-vars (v0-0 float)) + (rlet ((vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (.mov vf6 arg2) + (.lvf vf5 (&-> arg1 quad)) + (.mul.x.vf vf4 vf5 vf6) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; definition for function vector4-madd! +;; WARN: Return type mismatch float vs none. +(defun vector4-madd! ((arg0 vector4) (arg1 vector4) (arg2 vector4) (arg3 float)) + "arg0 = arg1 + arg2 * arg3." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.mov vf7 arg3) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.mul.w.vf acc vf5 vf0) + (.add.mul.x.vf vf4 vf6 vf7 acc) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; definition for function vector4-msub! +;; WARN: Return type mismatch float vs none. +(defun vector4-msub! ((arg0 vector4) (arg1 vector4) (arg2 vector4) (arg3 float)) + "arg0 = arg1 - arg2 * arg3." + (local-vars (v0-0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (.mov vf7 arg3) + (.lvf vf5 (&-> arg1 quad)) + (.lvf vf6 (&-> arg2 quad)) + (.mul.w.vf acc vf5 vf0) + (.sub.mul.x.vf vf4 vf6 vf7 acc) + (.svf (&-> arg0 quad) vf4) + (.mov v0-0 vf4) + (none) + ) + ) + +;; definition for function vector4-array-add! +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-add! ((arg0 (inline-array vector4)) (arg1 (inline-array vector4)) (arg2 (inline-array vector4)) (arg3 int)) + "Apply vector4-add! to all arrays." + (dotimes (s2-0 arg3) + (vector4-add! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2)) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; definition for function vector4-array-sub! +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-sub! ((arg0 (inline-array vector4)) (arg1 (inline-array vector4)) (arg2 (inline-array vector4)) (arg3 int)) + "Apply vector4-sub! to all arrays." + (dotimes (s2-0 arg3) + (vector4-sub! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2)) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; definition for function vector4-array-mul! +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-mul! ((arg0 (inline-array vector4)) (arg1 (inline-array vector4)) (arg2 (inline-array vector4)) (arg3 int)) + "Apply vector4-mul! to all arrays." + (dotimes (s2-0 arg3) + (vector4-mul! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2)) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; definition for function vector4-array-scale! +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-scale! ((arg0 (inline-array vector4)) (arg1 (inline-array vector4)) (arg2 float) (arg3 int)) + "Apply vector4-scale! to all arrays." + (dotimes (s2-0 arg3) + (vector4-scale! (the-as vector4 arg0) (the-as vector4 arg1) arg2) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; definition for function vector4-array-madd! +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-madd! ((arg0 (inline-array vector4)) + (arg1 (inline-array vector4)) + (arg2 (inline-array vector4)) + (arg3 float) + (arg4 int) + ) + "Apply vector4-madd! to all arrays." + (dotimes (s1-0 arg4) + (vector4-madd! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2) arg3) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; definition for function vector4-array-msub! +;; WARN: Return type mismatch symbol vs none. +(defun vector4-array-msub! ((arg0 (inline-array vector4)) + (arg1 (inline-array vector4)) + (arg2 (inline-array vector4)) + (arg3 float) + (arg4 int) + ) + "Apply vector4-msub! to all arrays." + (dotimes (s1-0 arg4) + (vector4-msub! (the-as vector4 arg0) (the-as vector4 arg1) (the-as vector4 arg2) arg3) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + (none) + ) + +;; definition for function vector4-array-lerp! +(defun vector4-array-lerp! ((arg0 (inline-array vector4)) + (arg1 (inline-array vector4)) + (arg2 (inline-array vector4)) + (arg3 float) + (arg4 int) + ) + "Apply vector4-lerp! to all arrays." + (dotimes (s1-0 arg4) + (vector4-lerp! (the-as vector arg0) (the-as vector arg1) (the-as vector arg2) arg3) + (set! arg1 (the-as (inline-array vector4) (-> arg1 1))) + (set! arg2 (the-as (inline-array vector4) (-> arg2 1))) + (set! arg0 (the-as (inline-array vector4) (-> arg0 1))) + ) + #f + ) + +;; definition for function spheres-overlap? +(defun spheres-overlap? ((arg0 sphere) (arg1 sphere)) + "Do the spheres overlap?" + (local-vars (v1-0 float) (a0-1 float)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg0 quad)) + (.lvf vf2 (&-> arg1 quad)) + (.sub.vf vf3 vf1 vf2 :mask #b111) + (.mul.vf vf3 vf3 vf3 :mask #b111) + (.add.w.vf vf4 vf1 vf2 :mask #b1000) + (.mul.w.vf vf4 vf4 vf4 :mask #b1000) + (.add.y.vf vf3 vf3 vf3 :mask #b1) + (.add.z.vf vf3 vf3 vf3 :mask #b1) + (.add.w.vf vf4 vf0 vf4 :mask #b1) + (.mov a0-1 vf4) + (.mov v1-0 vf3) + (>= a0-1 v1-0) + ) + ) + +;; definition for function sphere<-vector! +;; INFO: Used lq/sq +(defun sphere<-vector! ((arg0 sphere) (arg1 vector)) + "Set the position of the sphere to arg1. Does not change the radius." + (let ((f0-0 (-> arg0 r))) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 r) f0-0) + ) + arg0 + ) + +;; definition for function sphere<-vector+r! +;; INFO: Used lq/sq +(defun sphere<-vector+r! ((arg0 sphere) (arg1 vector) (arg2 float)) + "Set the position of the sphere from arg1 and the radius from arg2." + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 r) arg2) + arg0 + ) + +;; definition for function rand-vu-sphere-point! +(defun rand-vu-sphere-point! ((arg0 vector) (arg1 float)) + "Get a random point on the sphere at the origin with radius arg1. + The point is on the surface of the sphere." + (set-vector! + arg0 + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + 1.0 + ) + (vector-normalize! arg0 (rand-vu-float-range 0.0 arg1)) + ) + +;; definition for function rand-vu-sphere-point-uniform! +(defun rand-vu-sphere-point-uniform! ((arg0 vector) (arg1 float)) + (local-vars (v1-3 float) (f0-5 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + 666.6 + (until (>= 1.0 f0-5) + (set-vector! + arg0 + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + (rand-vu-float-range -1.0 1.0) + 1.0 + ) + (.lvf vf1 (&-> arg0 quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-3 vf1) + (set! f0-5 v1-3) + ) + (vector-float*! arg0 arg0 arg1) + ) + ) + +;; definition for method 2 of type vector2 +(defmethod print ((this vector2)) + (format #t "#" (-> this x) (-> this y) this) + this + ) + +;; definition for function vector-vector-angle-safe +(defun vector-vector-angle-safe ((arg0 vector) (arg1 vector)) + "Get the angle between two vectors, with some 'safety' applied..." + (let ((f0-1 (vector-dot + (vector-normalize-copy! (new 'stack-no-clear 'vector) arg0 1.0) + (vector-normalize-copy! (new 'stack-no-clear 'vector) arg1 1.0) + ) + ) + ) + (cond + ((>= f0-1 1.0) + 0.0 + ) + ((>= -1.0 f0-1) + 0.017257283 + ) + (else + (acos f0-1) + ) + ) + ) + ) + +;; definition for function vector-get-unique! +;; INFO: Used lq/sq +(defun vector-get-unique! ((arg0 vector) (arg1 vector)) + (let ((v1-0 0)) + (let ((f0-0 (-> arg1 x))) + (when (< (-> arg1 y) f0-0) + (set! f0-0 (-> arg1 y)) + (set! v1-0 1) + ) + (when (< (-> arg1 z) f0-0) + (-> arg1 z) + (set! v1-0 2) + ) + ) + (set! (-> arg0 quad) (-> arg1 quad)) + (set! (-> arg0 data v1-0) 1.0) + ) + arg0 + ) + +;; definition for function vector-get-closest-perpendicular! +;; INFO: Used lq/sq +(defun vector-get-closest-perpendicular! ((arg0 vector) (arg1 vector) (arg2 vector)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + 0.0 + (let ((f0-2 (vector-dot arg1 arg2))) + (vector-float*! s5-0 arg1 f0-2) + ) + (vector-! s5-0 arg2 s5-0) + (vector-normalize! s5-0 1.0) + (set! (-> arg0 quad) (-> s5-0 quad)) + ) + arg0 + ) + + + + diff --git a/test/decompiler/reference/jak3/engine/ps2/timer-h_REF.gc b/test/decompiler/reference/jak3/engine/ps2/timer-h_REF.gc new file mode 100644 index 0000000000..f21337eb4d --- /dev/null +++ b/test/decompiler/reference/jak3/engine/ps2/timer-h_REF.gc @@ -0,0 +1,115 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type timer-mode +(deftype timer-mode (uint32) + "This matches the Tn_MODE register structure of the ps2 EE timers. +Only the lower 32 bits of these registers are usable, and the upper 16 hardwired to zero." + ((clks timer-clock-selection :offset 0 :size 2) + (gate uint8 :offset 2 :size 1) + (gats uint8 :offset 3 :size 1) + (gatm uint8 :offset 4 :size 2) + (zret uint8 :offset 6 :size 1) + (cue uint8 :offset 7 :size 1) + (cmpe uint8 :offset 8 :size 1) + (ovfe uint8 :offset 9 :size 1) + (equf uint8 :offset 10 :size 1) + (ovff uint8 :offset 11 :size 1) + ) + ) + +;; definition of type timer-bank +(deftype timer-bank (structure) + "This matches an EE timer (without a HOLD register, timers 2 and 3). +Each register is 128-bits wide, but only the lower 32-bits are usable, and the upper +16-bits of that are hardwired to zero." + ((count uint32) + (mode timer-mode :offset 16) + (comp uint32 :offset 32) + ) + ) + +;; definition for method 3 of type timer-bank +(defmethod inspect ((this timer-bank)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'timer-bank) + (format #t "~1Tcount: #x~X~%" (-> this count)) + (format #t "~1Tmode: #x~X~%" (-> this mode)) + (format #t "~1Tcomp: #x~X~%" (-> this comp)) + (label cfg-4) + this + ) + +;; definition of type timer-hold-bank +(deftype timer-hold-bank (timer-bank) + "This matches an EE timer (with a HOLD register, timers 0 and 1)." + ((hold uint32 :offset 48) + ) + ) + +;; definition for method 3 of type timer-hold-bank +(defmethod inspect ((this timer-hold-bank)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'timer-hold-bank) + (format #t "~1Tcount: #x~X~%" (-> this count)) + (format #t "~1Tmode: #x~X~%" (-> this mode)) + (format #t "~1Tcomp: #x~X~%" (-> this comp)) + (format #t "~1Thold: #x~X~%" (-> this hold)) + (label cfg-4) + this + ) + +;; definition of type stopwatch +(deftype stopwatch (basic) + "Stopwatches are used to measure CPU clock cycles. +They don't use the timer above, but instead the Count COP0 register, +which counts CPU clock cycles directly." + ((prev-time-elapsed time-frame) + (start-time time-frame) + (begin-level int32) + ) + ) + +;; definition for method 3 of type stopwatch +(defmethod inspect ((this stopwatch)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this (-> this type)) + (format #t "~1Tprev-time-elapsed: ~D~%" (-> this prev-time-elapsed)) + (format #t "~1Tstart-time: ~D~%" (-> this start-time)) + (format #t "~1Tbegin-level: ~D~%" (-> this begin-level)) + (label cfg-4) + this + ) + +;; definition for symbol *ticks-per-frame*, type int +(define *ticks-per-frame* 9765) + +;; definition for function timer-init +(defun timer-init ((arg0 timer-bank) (arg1 timer-mode)) + "Initiate a timer, start counting at a rate of 1 every 256 bus clocks (BUSCLK: ~147.456MHz)." + (set! (-> arg0 mode) arg1) + (set! (-> arg0 count) (the-as uint 0)) + 0 + ) + +;; failed to figure out what this is: +(timer-init + (the-as timer-bank #x10000800) + (new 'static 'timer-mode :clks (timer-clock-selection busclk/256) :cue #x1) + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/decompiler/reference/jak3/engine/ps2/vif-h_REF.gc b/test/decompiler/reference/jak3/engine/ps2/vif-h_REF.gc new file mode 100644 index 0000000000..265ab38f87 --- /dev/null +++ b/test/decompiler/reference/jak3/engine/ps2/vif-h_REF.gc @@ -0,0 +1,124 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type vif-stat +(deftype vif-stat (uint32) + ((vps uint8 :offset 0 :size 2) + (vew uint8 :offset 2 :size 1) + (mrk uint8 :offset 6 :size 1) + (vss uint8 :offset 8 :size 1) + (vfs uint8 :offset 9 :size 1) + (vis uint8 :offset 10 :size 1) + (int uint8 :offset 11 :size 1) + (er0 uint8 :offset 12 :size 1) + (er1 uint8 :offset 13 :size 1) + (fqc uint8 :offset 24 :size 4) + ) + ) + +;; definition for method 3 of type vif-stat +(defmethod inspect ((this vif-stat)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vif-stat) + (format #t "~1Tvps: ~D~%" (-> this vps)) + (format #t "~1Tvew: ~D~%" (-> this vew)) + (format #t "~1Tmrk: ~D~%" (-> this mrk)) + (format #t "~1Tvss: ~D~%" (-> this vss)) + (format #t "~1Tvfs: ~D~%" (-> this vfs)) + (format #t "~1Tvis: ~D~%" (-> this vis)) + (format #t "~1Tint: ~D~%" (-> this int)) + (format #t "~1Ter0: ~D~%" (-> this er0)) + (format #t "~1Ter1: ~D~%" (-> this er1)) + (format #t "~1Tfqc: ~D~%" (-> this fqc)) + (label cfg-4) + this + ) + +;; definition of type vif-fbrst +(deftype vif-fbrst (uint32) + ((rst uint8 :offset 0 :size 1) + (fbk uint8 :offset 1 :size 1) + (stp uint8 :offset 2 :size 1) + (stc uint8 :offset 3 :size 1) + ) + ) + +;; definition of type vif-err +(deftype vif-err (uint32) + ((mii uint8 :offset 0 :size 1) + (me0 uint8 :offset 1 :size 1) + (me1 uint8 :offset 2 :size 1) + ) + ) + +;; definition of type vif-bank +(deftype vif-bank (structure) + ((stat uint32) + (fbrst uint32 :offset 16) + (err vif-err :offset 32) + (mark uint32 :offset 48) + (cycle uint32 :offset 64) + (mode uint32 :offset 80) + (num uint32 :offset 96) + (mask uint32 :offset 112) + (code uint32 :offset 128) + (itops uint32 :offset 144) + (base uint32 :offset 160) + (offset uint32 :offset 176) + (tops uint32 :offset 192) + (itop uint32 :offset 208) + (top uint32 :offset 224) + (r0 uint32 :offset 256) + (r1 uint32 :offset 272) + (r2 uint32 :offset 288) + (r3 uint32 :offset 304) + (c0 uint32 :offset 320) + (c1 uint32 :offset 336) + (c2 uint32 :offset 352) + (c3 uint32 :offset 368) + ) + ) + +;; definition for method 3 of type vif-bank +(defmethod inspect ((this vif-bank)) + (when (not this) + (set! this this) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" this 'vif-bank) + (format #t "~1Tstat: #x~X~%" (-> this stat)) + (format #t "~1Tfbrst: #x~X~%" (-> this fbrst)) + (format #t "~1Terr: #x~X~%" (-> this err)) + (format #t "~1Tmark: #x~X~%" (-> this mark)) + (format #t "~1Tcycle: #x~X~%" (-> this cycle)) + (format #t "~1Tmode: #x~X~%" (-> this mode)) + (format #t "~1Tnum: #x~X~%" (-> this num)) + (format #t "~1Tmask: #x~X~%" (-> this mask)) + (format #t "~1Tcode: #x~X~%" (-> this code)) + (format #t "~1Titops: #x~X~%" (-> this itops)) + (format #t "~1Tbase: #x~X~%" (-> this base)) + (format #t "~1Toffset: #x~X~%" (-> this offset)) + (format #t "~1Ttops: #x~X~%" (-> this tops)) + (format #t "~1Titop: #x~X~%" (-> this itop)) + (format #t "~1Ttop: #x~X~%" (-> this top)) + (format #t "~1Tr0: #x~X~%" (-> this r0)) + (format #t "~1Tr1: #x~X~%" (-> this r1)) + (format #t "~1Tr2: #x~X~%" (-> this r2)) + (format #t "~1Tr3: #x~X~%" (-> this r3)) + (format #t "~1Tc0: #x~X~%" (-> this c0)) + (format #t "~1Tc1: #x~X~%" (-> this c1)) + (format #t "~1Tc2: #x~X~%" (-> this c2)) + (format #t "~1Tc3: #x~X~%" (-> this c3)) + (label cfg-4) + this + ) + +;; failed to figure out what this is: +0 + + + + diff --git a/test/offline/config/jak3/config.jsonc b/test/offline/config/jak3/config.jsonc index e3f0c84452..c3418f05cc 100644 --- a/test/offline/config/jak3/config.jsonc +++ b/test/offline/config/jak3/config.jsonc @@ -30,7 +30,12 @@ // matrix "matrix-axis-sin-cos-vu!", "matrix-axis-sin-cos!", - "matrix-3x3-normalize!" + "matrix-3x3-normalize!", + // geometry + "closest-pt-in-triangle", + "circle-circle-xz-intersect", + "calculate-basis-functions-vector!", + "curve-evaluate!" ], "skip_compile_states": {}