diff --git a/libtacoma.so b/libtacoma.so index 5cbefb9..fb57e92 100755 Binary files a/libtacoma.so and b/libtacoma.so differ diff --git a/modules/Tacoma/libtacoma.so b/modules/Tacoma/libtacoma.so index 5cbefb9..fb57e92 100755 Binary files a/modules/Tacoma/libtacoma.so and b/modules/Tacoma/libtacoma.so differ diff --git a/modules/Tacoma/module.jai b/modules/Tacoma/module.jai index 3007cb5..8edc4e2 100644 --- a/modules/Tacoma/module.jai +++ b/modules/Tacoma/module.jai @@ -10,8 +10,9 @@ Sky_Config :: struct { sunHalo : Vector3; sunLightColor : Vector3 = .{1.0, 1.0, 1.0}; sunPosition : Vector3 = #run normalize(Vector3.{0.5, 0.5, 0.5}); - sunIntensity : float = 1.0; - skyIntensity : float = 10.0; + sunIntensity : float = 1.0; + skyIntensity : float = 10.0; + skyDesaturation : float = 0.0; } Trixel_Data :: struct { @@ -49,6 +50,7 @@ tacoma_destroy :: (ctx: *Tacoma_Context) #foreign libtacoma; tacoma_load_scene :: (ctx: *Tacoma_Context, sky: Sky_Config, ts: Trile_Set, world: World, include_water: s32) #foreign libtacoma; tacoma_render_rdm :: (ctx: *Tacoma_Context, world_trile_index: s32, roughness: s32, quality: s32, size: s32) -> *float #foreign libtacoma; tacoma_render_reference :: (ctx: *Tacoma_Context, width: s32, height: s32, eye: Vector3, target: Vector3, roughness: float, quality: s32) -> *float #foreign libtacoma; +tacoma_render_sh_chunk :: (ctx: *Tacoma_Context, origin_x: float, origin_y: float, origin_z: float, probe_n: s32, probe_spacing: float, quality: s32) -> *float #foreign libtacoma; tacoma_free_result :: (data: *float) #foreign libtacoma; diff --git a/modules/Tacoma/shaders/raytrace.comp.glsl.spv b/modules/Tacoma/shaders/raytrace.comp.glsl.spv index 89f1ca8..fec1ff6 100644 Binary files a/modules/Tacoma/shaders/raytrace.comp.glsl.spv and b/modules/Tacoma/shaders/raytrace.comp.glsl.spv differ diff --git a/modules/Tacoma/shaders/sh_bake.comp.glsl.spv b/modules/Tacoma/shaders/sh_bake.comp.glsl.spv new file mode 100644 index 0000000..179d84d Binary files /dev/null and b/modules/Tacoma/shaders/sh_bake.comp.glsl.spv differ diff --git a/src/assets/asset_manager.jai b/src/assets/asset_manager.jai index eca8f67..f04aa13 100644 --- a/src/assets/asset_manager.jai +++ b/src/assets/asset_manager.jai @@ -27,6 +27,7 @@ Fetch_Type :: enum { WORLD_CHUNKS; RDM_ATLAS; RDM_LOOKUP; + SHGRID; } Fetch_Request :: struct { @@ -63,6 +64,7 @@ g_asset_manager : Asset_Manager; #scope_file #load "rdm_loader.jai"; +#load "sh_loader.jai"; fetch_callback :: (res: *sfetch_response_t) #c_call { push_context,defer_pop default_context; @@ -139,6 +141,9 @@ handle_fetch_failed :: (req: *Fetch_Request) { if req.rdm_pending_atlas.id != 0 then sg_destroy_image(req.rdm_pending_atlas); log_error("RDM: failed to load lookup for chunk %", req.chunk_key); + case .SHGRID; + sh_loader_handle_failed(req); + } } @@ -178,6 +183,7 @@ process_completed_fetch :: (req: *Fetch_Request, data: []u8) { if ok { set_loaded_world(world); rdm_loader_enqueue_world(*get_current_world().world); + shgrid_loader_enqueue_world(*get_current_world().world); log_info("Loaded world (legacy): %", req.world_name); } else { log_error("Failed to parse world '%'", req.world_name); @@ -196,6 +202,7 @@ process_completed_fetch :: (req: *Fetch_Request, data: []u8) { if ok { set_loaded_world(world); rdm_loader_enqueue_world(*get_current_world().world); + shgrid_loader_enqueue_world(*get_current_world().world); log_info("Loaded world: %", req.world_name); } else { log_error("Failed to parse world '%'", req.world_name); @@ -290,6 +297,9 @@ process_completed_fetch :: (req: *Fetch_Request, data: []u8) { sg_destroy_image(req.rdm_pending_atlas); } + case .SHGRID; + sh_loader_handle_completed(req, data); + } } diff --git a/src/assets/sh_loader.jai b/src/assets/sh_loader.jai new file mode 100644 index 0000000..61d0576 --- /dev/null +++ b/src/assets/sh_loader.jai @@ -0,0 +1,100 @@ +// SH probe grid streaming helpers. +// The unified fetch queue lives in asset_manager.jai; these functions +// add entries to that queue and handle completed/failed fetches. + +#scope_export + +shgrid_loader_enqueue_world :: (world: *World) { + for *chunk: world.chunks { + if chunk.sh_valid then continue; + + af := *g_asset_manager.active[CHANNEL_RDM]; + if af.occupied && af.req.type == .SHGRID + && af.req.world_name == world.name && af.req.chunk_key == chunk.coord + then continue; + + already_queued := false; + for g_asset_manager.rdm_queue { + if it.type == .SHGRID && it.world_name == world.name && it.chunk_key == chunk.coord { + already_queued = true; + break; + } + } + if already_queued then continue; + + req : Fetch_Request; + req.type = .SHGRID; + req.world_name = world.name; + req.chunk_key = chunk.coord; + req.path = shgrid_filename(world.name, chunk.coord); + array_add(*g_asset_manager.rdm_queue, req); + } +} + +sh_loader_handle_failed :: (req: *Fetch_Request) { + log_error("SH: failed to load probe grid for chunk %", req.chunk_key); +} + +sh_loader_handle_completed :: (req: *Fetch_Request, data: []u8) { + curworld := get_current_world(); + if !curworld.valid || curworld.world.name != req.world_name then return; + + header_size := cast(s64) size_of(SH_Grid_File_Header); + if data.count < header_size { + log_error("SH: probe grid too small for chunk %", req.chunk_key); + return; + } + sh_header := cast(*SH_Grid_File_Header) data.data; + if sh_header.magic != SH_FILE_MAGIC { + log_error("SH: bad magic for chunk %", req.chunk_key); + return; + } + n := sh_header.probe_n; + expected_floats := cast(s64) n * n * n * 12; + if data.count < header_size + expected_floats * size_of(float) { + log_error("SH: probe grid data too short for chunk %", req.chunk_key); + return; + } + + // Pack flat float[n^3 * 12] → 3-RGBA16F-texels-per-probe 2D texture layout. + // Texture dims: (n*3) x (n*n). Probe (px,py,pz) at row (pz*n+py), col (px*3+k). + // Coefficient layout in 3 texels (12 slots): + // t0: R.c0-3 t1: G.c0-3 t2: B.c0-3 + tex_w := n * 3; + n_tex := cast(s64) tex_w * n * n; + packed := NewArray(n_tex * 4, u16); + src := cast(*float) (data.data + header_size); + for pz: 0..n-1 { + for py: 0..n-1 { + for px: 0..n-1 { + probe_idx := px + py * n + pz * n * n; + s := src + probe_idx * 12; + for k: 0..2 { + tex_idx := (pz * n + py) * tex_w + (px * 3 + k); + d := packed.data + tex_idx * 4; + for ch: 0..3 { + d[ch] = f32_to_f16((s + k * 4 + ch).*); + } + } + } + } + } + + sh_imgdata : sg_image_data; + sh_imgdata.subimage[0][0] = .{ packed.data, cast(u64)(n_tex * 4 * size_of(u16)) }; + sh_desc : sg_image_desc = .{ + width = tex_w, + height = n * n, + pixel_format = sg_pixel_format.RGBA16F, + sample_count = 1, + data = sh_imgdata, + }; + chunk := table_find_pointer(*curworld.world.chunks, req.chunk_key); + if chunk != null { + if chunk.sh_probe_grid.id != 0 then sg_destroy_image(chunk.sh_probe_grid); + chunk.sh_probe_grid = sg_make_image(*sh_desc); + chunk.sh_valid = true; + log_debug("SH: loaded probe grid for chunk %", req.chunk_key); + } + free(packed.data); +} diff --git a/src/editor/editor.jai b/src/editor/editor.jai index a217644..67930b5 100644 --- a/src/editor/editor.jai +++ b/src/editor/editor.jai @@ -80,8 +80,6 @@ draw_editor :: () { #if OS != .WASM { if !in_editor_view then return; - bypass_postprocess = (current_editor_view == .Trile_Editor); - if current_editor_view == { case .Trile_Editor; draw_trile_editor(); @@ -97,7 +95,6 @@ tick_editor_ui :: () { if is_action_start(Editor_Action.TOGGLE_EDITOR) { in_editor_view = !in_editor_view; g_mixer.paused = in_editor_view; - if !in_editor_view then bypass_postprocess = false; clear_particles(); } diff --git a/src/editor/level_editor.jai b/src/editor/level_editor.jai index 5ee6843..4ee42e2 100644 --- a/src/editor/level_editor.jai +++ b/src/editor/level_editor.jai @@ -264,6 +264,10 @@ draw_tacoma_tab :: (theme: *GR.Overall_Theme, total_r: GR.Rect) { } } r.y += r.h; + if GR.button(r, "Bake all chunk SH grids", *t_button_selectable(theme, !sh_bake.active)) { + if curworld.valid && !sh_bake.active sh_bake_start(tacomaSamples); + } + r.y += r.h; if rdm_bake.active { total := cast(s32) rdm_bake.jobs.count; done := rdm_bake.current_job; @@ -271,6 +275,13 @@ draw_tacoma_tab :: (theme: *GR.Overall_Theme, total_r: GR.Rect) { GR.label(r, tprint("Baking RDMs: %/% (\%%)", done, total, pct), *t_label_left(theme)); r.y += r.h; } + if sh_bake.active { + total := cast(s32) sh_bake.chunk_keys.count; + done := sh_bake.current_chunk; + pct := ifx total > 0 then done * 100 / total else 0; + GR.label(r, tprint("Baking SH grids: %/% (\%%)", done, total, pct), *t_label_left(theme)); + r.y += r.h; + } if current_screenshot.valid { aspect := cast(float)current_screenshot.width / cast(float)current_screenshot.height; @@ -304,6 +315,14 @@ draw_tacoma_tab :: (theme: *GR.Overall_Theme, total_r: GR.Rect) { r.y += r.h; GR.slider(r, *tacomaSaturation, 0.5, 3.0, 0.1, *theme.slider_theme); r.y += r.h; + GR.label(r, tprint("Sky Scale (bake): %", formatFloat(bake_sky_scale, trailing_width=2)), *t_label_left(theme)); + r.y += r.h; + GR.slider(r, *bake_sky_scale, 0.0, 5.0, 0.05, *theme.slider_theme); + r.y += r.h; + GR.label(r, tprint("Sky Desaturation (bake): %", formatFloat(bake_sky_desaturation, trailing_width=2)), *t_label_left(theme)); + r.y += r.h; + GR.slider(r, *bake_sky_desaturation, 0.0, 1.0, 0.05, *theme.slider_theme); + r.y += r.h; } else { @@ -517,7 +536,7 @@ editor_edit_y :: () -> float { } tick_level_editor :: () { - #if FLAG_TACOMA_ENABLED { rdm_bake_tick(); } + #if FLAG_TACOMA_ENABLED { rdm_bake_tick(); sh_bake_tick(); } tick_level_editor_camera(); tick_particles(cast(float)delta_time); diff --git a/src/editor/rdm_disk.jai b/src/editor/rdm_disk.jai index e672d26..8bfbc15 100644 --- a/src/editor/rdm_disk.jai +++ b/src/editor/rdm_disk.jai @@ -12,3 +12,33 @@ RDM_FILE_MAGIC :: u32.[0x4D445254][0]; // "TRDM" as little-endian u32 rdm_chunk_filename :: (world_name: string, chunk_key: Chunk_Key, suffix: string) -> string { return sprint("%/worlds/%/%_%_%.%", GAME_RESOURCES_DIR, world_name, chunk_key.x, chunk_key.y, chunk_key.z, suffix); } + +// SH probe grid (2 probes per trile per axis = 64x64x64 per 32x32x32 chunk) + +SH_FILE_MAGIC :: u32.[0x44475348][0]; // "SHGD" as little-endian u32 +SH_PROBE_N :: 64; // probes per axis (2 per trile in a 32-trile chunk) +SH_TEX_W :: SH_PROBE_N * 3; // 192 — 3 RGBA texels per probe along X + +SH_Grid_File_Header :: struct { + magic: u32; + version: u16; + probe_n: s32; +} + +shgrid_filename :: (world_name: string, chunk_key: Chunk_Key) -> string { + return sprint("%/worlds/%/%_%_%.shgrid", GAME_RESOURCES_DIR, world_name, chunk_key.x, chunk_key.y, chunk_key.z); +} + +f32_to_f16 :: (f: float) -> u16 { + b := (cast(*u32) *f).*; + sign := (b >> 31) & 0x1; + exp := cast(s32)((b >> 23) & 0xFF) - 127; + mant := b & 0x7FFFFF; + if exp >= 16 return cast(u16)((sign << 15) | 0x7C00); // clamp to inf + if exp >= -14 return cast(u16)((sign << 15) | (cast(u32)(exp + 15) << 10) | (mant >> 13)); + if exp >= -24 { + shift := cast(u32)(-exp - 1); + return cast(u16)((sign << 15) | ((mant | 0x800000) >> shift)); + } + return cast(u16)(sign << 15); // underflow → ±0 +} diff --git a/src/editor/rdm_disk_test.jai b/src/editor/rdm_disk_test.jai new file mode 100644 index 0000000..f9cb8e6 --- /dev/null +++ b/src/editor/rdm_disk_test.jai @@ -0,0 +1,35 @@ +test_f32_to_f16 :: () { + s := begin_suite("f32_to_f16"); + + check(*s, "0.0 → 0x0000", f32_to_f16(0.0) == 0x0000); + check(*s, "-0.0 → 0x8000", f32_to_f16(-0.0) == 0x8000); + check(*s, "1.0 → 0x3C00", f32_to_f16(1.0) == 0x3C00); + check(*s, "-1.0 → 0xBC00", f32_to_f16(-1.0) == 0xBC00); + check(*s, "0.5 → 0x3800", f32_to_f16(0.5) == 0x3800); + check(*s, "2.0 → 0x4000", f32_to_f16(2.0) == 0x4000); + check(*s, "1.5 → 0x3E00", f32_to_f16(1.5) == 0x3E00); + + // Max normal f16 = 65504 + check(*s, "65504.0 → 0x7BFF", f32_to_f16(65504.0) == 0x7BFF); + + // Min normal f16 = 2^-14 + check(*s, "2^-14 → 0x0400", f32_to_f16(cast(float)(1.0 / 16384.0)) == 0x0400); + + // Overflow clamps to infinity + check(*s, "65536.0 → 0x7C00 (inf)", f32_to_f16(65536.0) == 0x7C00); + check(*s, "1e10 → 0x7C00 (inf)", f32_to_f16(1.0e10) == 0x7C00); + check(*s, "-65536.0 → 0xFC00 (-inf)", f32_to_f16(-65536.0) == 0xFC00); + + // Denormals: 2^-15 is the largest f16 denormal base + check(*s, "2^-15 → 0x0200", f32_to_f16(cast(float)(1.0 / 32768.0)) == 0x0200); + // Smallest representable f16 denormal = 2^-24 + check(*s, "2^-24 → 0x0001", f32_to_f16(cast(float)(1.0 / 16777216.0)) == 0x0001); + + // Underflow to zero + check(*s, "2^-25 → 0x0000", f32_to_f16(cast(float)(1.0 / 33554432.0)) == 0x0000); + check(*s, "-2^-25 → 0x8000", f32_to_f16(cast(float)(-1.0 / 33554432.0)) == 0x8000); + + end_suite(s); +} + +#run test_f32_to_f16(); diff --git a/src/editor/tacoma.jai b/src/editor/tacoma.jai index f8a0528..16b6209 100644 --- a/src/editor/tacoma.jai +++ b/src/editor/tacoma.jai @@ -63,6 +63,16 @@ RDM_Bake_State :: struct { rdm_bake : RDM_Bake_State; +SH_Bake_State :: struct { + active : bool; + quality : s32; + include_water : bool; + chunk_keys : [..]Chunk_Key; + current_chunk : s32; +} + +sh_bake : SH_Bake_State; + rdm_job_size :: (job: RDM_Bake_Job) -> s32 { if job.size_override > 0 then return job.size_override; return g_rdm_default_sizes[job.roughness]; @@ -221,20 +231,9 @@ rdm_bake_start :: (world: World, quality: s32, include_water: bool, chunk_keys: } } - sky : Tacoma.Sky_Config; - sky.skyBase = world.conf.skyBase; - sky.skyTop = world.conf.skyTop; - sky.sunDisk = world.conf.sunDisk; - sky.horizonHalo = world.conf.horizonHalo; - sky.sunHalo = world.conf.sunHalo; - sky.sunLightColor = world.conf.sunLightColor; - sky.sunPosition = world.conf.sunPosition; - sky.sunIntensity = world.conf.sunIntensity; - sky.skyIntensity = world.conf.skyIntensity; - - blases : Tacoma.Trile_Set = .{trile_list.data, cast(s32)trile_list.count}; - tlas : Tacoma.World = .{world_triles.data, cast(s32)world_triles.count}; - + sky : Tacoma.Sky_Config = world_to_sky_config(world); + blases : Tacoma.Trile_Set = .{trile_list.data, cast(s32) trile_list.count}; + tlas : Tacoma.World = .{world_triles.data, cast(s32) world_triles.count}; ctx = Tacoma.tacoma_init("./modules/Tacoma/"); Tacoma.tacoma_load_scene(ctx, sky, blases, tlas, cast(s32) include_water); @@ -493,72 +492,64 @@ rdm_cleanup_chunk_bakes :: () { rdm_chunk_bakes = .{}; } -tacoma_start :: (world: World, include_water: bool) { - // Trile BLASes. - trile_list : [..]Tacoma.Trile_Data; - trile_list.allocator = temp; - // BLAS instances to create TLAS. - world_triles : [..]Tacoma.World_Trile; - world_triles.allocator = temp; +bake_sky_scale : float = 1.0; +bake_sky_desaturation : float = 0.0; - // Build trile type list and gather world positions from chunks. - trile_name_to_index: Table(string, s32); - trile_name_to_index.allocator = temp; +world_to_sky_config :: (world: World) -> Tacoma.Sky_Config { + sky : Tacoma.Sky_Config; + sky.skyBase = world.conf.skyBase; + sky.skyTop = world.conf.skyTop; + sky.sunDisk = world.conf.sunDisk; + sky.horizonHalo = world.conf.horizonHalo; + sky.sunHalo = world.conf.sunHalo; + sky.sunLightColor = world.conf.sunLightColor; + sky.sunPosition = world.conf.sunPosition; + sky.sunIntensity = world.conf.sunIntensity; + sky.skyIntensity = world.conf.skyIntensity * bake_sky_scale; + sky.skyDesaturation = bake_sky_desaturation; + return sky; +} + +// Build trile BLASes + world TLAS from a world, then initialize ctx. +tacoma_init_scene :: (world: World, include_water: bool) { + trile_list : [..]Tacoma.Trile_Data; trile_list.allocator = temp; + world_triles : [..]Tacoma.World_Trile; world_triles.allocator = temp; + trile_name_to_index : Table(string, s32); trile_name_to_index.allocator = temp; for chunk: world.chunks { for group: chunk.groups { - // Ensure this trile type is in the list. success, idx := table_find(*trile_name_to_index, group.trile_name); if !success { - trile := get_trile(group.trile_name); + trile, trile_ok := get_trile(group.trile_name); + if !trile_ok continue; ttrile : Tacoma.Trile_Data; - for x: 0..15 { - for y: 0..15 { - for z: 0..15 { - ttrile.trixels[x][y][z] = .{ - trile.trixels[x][y][z].empty, - trile.trixels[x][y][z].material.color, - material_encode_to_float(trile.trixels[x][y][z].material) - }; - } - } + for x: 0..15 for y: 0..15 for z: 0..15 { + ttrile.trixels[x][y][z] = .{ + trile.trixels[x][y][z].empty, + trile.trixels[x][y][z].material.color, + material_encode_to_float(trile.trixels[x][y][z].material) + }; } gfx := get_trile_gfx(group.trile_name); - ttrile.vertices = gfx.vertices.data; - ttrile.vertexCount = cast(s32) (gfx.vertices.count / 3); + ttrile.vertices = gfx.vertices.data; + ttrile.vertexCount = cast(s32)(gfx.vertices.count / 3); idx = cast(s32) trile_list.count; array_add(*trile_list, ttrile); table_set(*trile_name_to_index, group.trile_name, idx); } - for inst: group.instances { wx, wy, wz := chunk_local_to_world(chunk.coord, inst.x, inst.y, inst.z); - array_add(*world_triles, Tacoma.World_Trile.{idx, Vector3.{cast(float) wx, cast(float) wy, cast(float) wz}, cast(s32) inst.orientation}); + array_add(*world_triles, Tacoma.World_Trile.{idx, + Vector3.{cast(float) wx, cast(float) wy, cast(float) wz}, + cast(s32) inst.orientation}); } } } - sky : Tacoma.Sky_Config; - - sky.skyBase = world.conf.skyBase; - sky.skyTop = world.conf.skyTop; - sky.sunDisk = world.conf.sunDisk; - sky.horizonHalo = world.conf.horizonHalo; - sky.sunHalo = world.conf.sunHalo; - sky.sunLightColor = world.conf.sunLightColor; - sky.sunPosition = world.conf.sunPosition; - sky.sunIntensity = world.conf.sunIntensity; - sky.skyIntensity = world.conf.skyIntensity; - - blases : Tacoma.Trile_Set = .{trile_list.data, cast(s32)trile_list.count}; - for world_triles { - log_debug("World trile %", it); - } - tlas : Tacoma.World = .{world_triles.data, cast(s32)world_triles.count}; - + sky : Tacoma.Sky_Config = world_to_sky_config(world); + blases : Tacoma.Trile_Set = .{trile_list.data, cast(s32) trile_list.count}; + tlas : Tacoma.World = .{world_triles.data, cast(s32) world_triles.count}; ctx = Tacoma.tacoma_init("./modules/Tacoma/"); - log_debug("CTX: %", ctx); - Tacoma.tacoma_load_scene(ctx, sky, blases, tlas, cast(s32) include_water); } @@ -607,20 +598,126 @@ tacoma_handle_result :: (ptr: *float, w: s32, h: s32) { } gen_reference :: (w: s32, h: s32, eye: Vector3, target: Vector3, quality: s32, include_water: bool, world: World) { - tacoma_start(world, include_water); + tacoma_init_scene(world, include_water); ptr := Tacoma.tacoma_render_reference(ctx, w, h, eye, target, 0.01, quality); tacoma_handle_result(ptr, w, h); tacoma_stop(); } gen_rdm :: (quality: s32, include_water: bool, world: World) { - tacoma_start(world, include_water); + tacoma_init_scene(world, include_water); size := g_rdm_default_sizes[0]; ptr := Tacoma.tacoma_render_rdm(ctx, 0, 0, quality, size); tacoma_handle_result(ptr, 2 * size, 3 * size); tacoma_stop(); } +sh_bake_start :: (quality: s32 = 50, include_water: bool = false) { + if sh_bake.active then return; + curworld := get_current_world(); + if !curworld.valid { log_warn("sh_bake_start: no world loaded"); return; } + + world := *curworld.world; + for _, key: world.chunks array_add(*sh_bake.chunk_keys, key); + + if sh_bake.chunk_keys.count == 0 then return; + + tacoma_init_scene(world.*, include_water); + sh_bake.active = true; + sh_bake.quality = quality; + sh_bake.include_water = include_water; + sh_bake.current_chunk = 0; +} @Command + +sh_bake_tick :: () { + if !sh_bake.active then return; + if sh_bake.current_chunk >= cast(s32) sh_bake.chunk_keys.count { + sh_bake_finish(); + return; + } + + curworld := get_current_world(); + if !curworld.valid { sh_bake_finish(); return; } + + n :: SH_PROBE_N; + tex_w :: SH_TEX_W; + + chunk_key := sh_bake.chunk_keys[sh_bake.current_chunk]; + chunk := table_find_pointer(*curworld.world.chunks, chunk_key); + sh_bake.current_chunk += 1; + if chunk == null then return; + + ox, oy, oz := chunk_local_to_world(chunk_key, 0, 0, 0); + ptr := Tacoma.tacoma_render_sh_chunk(ctx, + cast(float) ox, cast(float) oy, cast(float) oz, + n, 0.5, sh_bake.quality); + + tex_halfs :: tex_w * n * n * 4; + packed : *u16 = cast(*u16) alloc(tex_halfs * size_of(u16)); + defer free(packed); + + src := ptr; + for pz: 0..n-1 for py: 0..n-1 for px: 0..n-1 { + probe_idx := px + py * n + pz * n * n; + s := src + probe_idx * 12; + for k: 0..2 { + tex_idx := (pz * n + py) * tex_w + (px * 3 + k); + d := packed + tex_idx * 4; + for ch: 0..3 { + (d + ch).* = f32_to_f16((s + k * 4 + ch).*); + } + } + } + + tex_byte_size := cast(u64)(tex_halfs * size_of(u16)); + imgdata : sg_image_data; + imgdata.subimage[0][0] = .{packed, tex_byte_size}; + sh_desc : sg_image_desc = .{ + width = tex_w, + height = n * n, + pixel_format = sg_pixel_format.RGBA16F, + sample_count = 1, + data = imgdata, + }; + + if chunk.sh_valid sg_destroy_image(chunk.sh_probe_grid); + chunk.sh_probe_grid = sg_make_image(*sh_desc); + chunk.sh_valid = true; + chunk.sh_dirty = false; + + #if OS != .WASM { + shgrid_save_to_disk(curworld.world.name, chunk_key, ptr, n); + } + + Tacoma.tacoma_free_result(ptr); + log_info("SH baked chunk % (%/%)", chunk_key, sh_bake.current_chunk, sh_bake.chunk_keys.count); +} + +sh_bake_finish :: () { + tacoma_stop(); + array_free(sh_bake.chunk_keys); + sh_bake = .{}; + log_info("SH bake complete."); +} + +shgrid_save_to_disk :: (world_name: string, chunk_key: Chunk_Key, data: *float, probe_n: s32) { + #if OS != .WASM { + file :: #import "File"; + path := shgrid_filename(world_name, chunk_key); + + builder : String_Builder; + header := SH_Grid_File_Header.{ + magic = SH_FILE_MAGIC, + version = 1, + probe_n = probe_n, + }; + write_bytes(*builder, *header, size_of(SH_Grid_File_Header)); + total_floats := cast(s64) probe_n * probe_n * probe_n * 12; + write_bytes(*builder, data, total_floats * size_of(float)); + file.write_entire_file(path, builder_to_string(*builder)); + } +} + // --- RDM disk persistence --- // (RDM_File_Header, RDM_FILE_MAGIC, rdm_chunk_filename, rdm_load_from_disk // are defined in rdm_disk.jai which is always loaded on non-WASM builds.) diff --git a/src/rendering/backend_sokol.jai b/src/rendering/backend_sokol.jai index 52c945f..82fb21f 100644 --- a/src/rendering/backend_sokol.jai +++ b/src/rendering/backend_sokol.jai @@ -221,15 +221,20 @@ backend_draw_trile_positions_main :: (trile : string, amount : s32, worldConf: * // The shader gates all RDM sampling on atlas_rect.z > 0, which the // fallback texture returns as 0, so the ambient fallback path is taken. curworld := get_current_world(); - rdm_chunk := table_find_pointer(*curworld.world.chunks, chunk_key); - if rdm_chunk != null && rdm_chunk.rdm_valid { - bindings.images[3] = rdm_chunk.rdm_lookup; - bindings.images[4] = rdm_chunk.rdm_atlas; + chunk := table_find_pointer(*curworld.world.chunks, chunk_key); + if chunk != null && chunk.rdm_valid { + bindings.images[3] = chunk.rdm_lookup; + bindings.images[4] = chunk.rdm_atlas; } else { bindings.images[3] = g_rdm_fallback; bindings.images[4] = g_rdm_fallback; } bindings.images[5] = g_brdf_lut; + if chunk != null && chunk.sh_valid { + bindings.images[6] = chunk.sh_probe_grid; + } else { + bindings.images[6] = g_sh_fallback; + } bindings.samplers[3] = gPipelines.trile.bind.samplers[3]; fs_params : Trile_Fs_Params; @@ -248,6 +253,7 @@ backend_draw_trile_positions_main :: (trile : string, amount : s32, worldConf: * fs_params.is_preview = preview_mode; fs_params.rdm_tint = lc.rdm_tint.component; fs_params.rdm_diff_saturation = worldConf.rdmDiffSaturation; + fs_params.sh_enabled = ifx (chunk != null && chunk.sh_valid && !in_reflection_pass) then cast(s32)1 else cast(s32)0; sg_apply_bindings(*bindings); sg_apply_uniforms(UB_trile_fs_params, *(sg_range.{ ptr = *fs_params, size = size_of(type_of(fs_params)) })); diff --git a/src/rendering/pipelines.jai b/src/rendering/pipelines.jai index fb71a0d..2523e4e 100644 --- a/src/rendering/pipelines.jai +++ b/src/rendering/pipelines.jai @@ -10,6 +10,7 @@ Pipeline_Binding :: struct { g_specular_lut : sg_image; g_brdf_lut : sg_image; g_rdm_fallback : sg_image; // 1x1 black image used when a chunk has no baked RDM data +g_sh_fallback : sg_image; // 1x1 black 2D image used when a chunk has no SH probe grid g_shadowmap : sg_image; g_shadowmap_img : sg_image; @@ -1286,6 +1287,18 @@ init_brdf_lut :: () { data = imgdata, }; g_rdm_fallback = sg_make_image(*desc); + + // 1x1 RGBA16F 2D texture — fallback when a chunk has no SH probe grid. + zero_sh : [4]u16 = .[0, 0, 0, 0]; + sh_imgdata : sg_image_data; + sh_imgdata.subimage[0][0] = .{ zero_sh.data, size_of(type_of(zero_sh)) }; + sh_desc := sg_image_desc.{ + width = 1, + height = 1, + pixel_format = .RGBA16F, + data = sh_imgdata, + }; + g_sh_fallback = sg_make_image(*sh_desc); } } diff --git a/src/rendering/sky.jai b/src/rendering/sky.jai index 029d88d..a961437 100644 --- a/src/rendering/sky.jai +++ b/src/rendering/sky.jai @@ -58,7 +58,7 @@ create_shadow_viewproj :: (cam: *Camera, conf: *World_Config) -> Matrix4 { B.z, C.z, A.z, 0, -dot(B, sunCameraPosition), -dot(C, sunCameraPosition), -dot(A, sunCameraPosition), 1 }; - proj := matrix_ortho(-15, 15, -15, 15, 0, 100); + proj := matrix_ortho(-60, 60, -60, 60, 0, 100); return view*proj; } diff --git a/src/shaders/jai/shader_post_process_main.jai b/src/shaders/jai/shader_post_process_main.jai index 3a6bb31..0af8c0d 100644 --- a/src/shaders/jai/shader_post_process_main.jai +++ b/src/shaders/jai/shader_post_process_main.jai @@ -27,16 +27,6 @@ Sample type: .FLOAT Multisampled: false Bind slot: IMG_pptex => 0 - Image 'dof_tex': - Image type: ._2D - Sample type: .FLOAT - Multisampled: false - Bind slot: IMG_dof_tex => 3 - Image 'pos_buf': - Image type: ._2D - Sample type: .FLOAT - Multisampled: false - Bind slot: IMG_pos_buf => 4 Image 'bloom_tex': Image type: ._2D Sample type: .FLOAT @@ -50,9 +40,6 @@ Sampler 'ppsmp': Type: .FILTERING Bind slot: SMP_ppsmp => 0 - Sampler 'dof_smp': - Type: .FILTERING - Bind slot: SMP_dof_smp => 3 Sampler 'bloom_smp': Type: .FILTERING Bind slot: SMP_bloom_smp => 2 @@ -65,12 +52,9 @@ ATTR_postprocess_uv :: 1; UB_post_process_config :: 0; UB_dof_config :: 1; IMG_pptex :: 0; -IMG_dof_tex :: 3; -IMG_pos_buf :: 4; IMG_bloom_tex :: 2; IMG_lut :: 1; SMP_ppsmp :: 0; -SMP_dof_smp :: 3; SMP_bloom_smp :: 2; SMP_lut_linear :: 1; Post_Process_Config :: struct { @@ -132,7 +116,7 @@ vs_pp_source_glsl430 := u8.[ /* #version 430 - const int _156[64] = int[](0, 32, 8, 40, 2, 34, 10, 42, 48, 16, 56, 24, 50, 18, 58, 26, 12, 44, 4, 36, 14, 46, 6, 38, 60, 28, 52, 20, 62, 30, 54, 22, 3, 35, 11, 43, 1, 33, 9, 41, 51, 19, 59, 27, 49, 17, 57, 25, 15, 47, 7, 39, 13, 45, 5, 37, 63, 31, 55, 23, 61, 29, 53, 21); + const int _145[64] = int[](0, 32, 8, 40, 2, 34, 10, 42, 48, 16, 56, 24, 50, 18, 58, 26, 12, 44, 4, 36, 14, 46, 6, 38, 60, 28, 52, 20, 62, 30, 54, 22, 3, 35, 11, 43, 1, 33, 9, 41, 51, 19, 59, 27, 49, 17, 57, 25, 15, 47, 7, 39, 13, 45, 5, 37, 63, 31, 55, 23, 61, 29, 53, 21); struct post_process_config { @@ -153,50 +137,17 @@ vs_pp_source_glsl430 := u8.[ float bloom_amount; }; - uniform post_process_config _442; + uniform post_process_config _174; uniform vec4 dof_config[2]; layout(binding = 16) uniform sampler2D pptex_ppsmp; - layout(binding = 17) uniform sampler2D dof_tex_dof_smp; - layout(binding = 18) uniform sampler2D pos_buf_dof_smp; - layout(binding = 19) uniform sampler2D bloom_tex_bloom_smp; - layout(binding = 20) uniform sampler2D lut_ppsmp; - layout(binding = 21) uniform sampler2D lut_lut_linear; + layout(binding = 17) uniform sampler2D bloom_tex_bloom_smp; + layout(binding = 18) uniform sampler2D lut_ppsmp; + layout(binding = 19) uniform sampler2D lut_lut_linear; layout(location = 0) in vec2 texcoord; layout(location = 0) out vec4 frag_color; - vec3 texture_bicubic(vec2 uv, vec2 tex_size, sampler2D SPIRV_Cross_Combinedtexsmp) - { - vec2 _174 = (uv * tex_size) - vec2(0.5); - vec2 _177 = fract(_174); - vec2 _184 = (floor(_174) + vec2(0.5)) / tex_size; - vec2 _190 = _177 * 0.5; - vec2 _196 = _177 * (vec2(-0.5) + (_177 * (vec2(1.0) - _190))); - vec2 _200 = _177 * _177; - vec2 _204 = _177 * 1.5; - vec2 _221 = _177 * (vec2(0.5) + (_177 * (vec2(2.0) - _204))); - vec2 _230 = _200 * (vec2(-0.5) + _190); - vec2 _234 = (vec2(1.0) + (_200 * (vec2(-2.5) + _204))) + _221; - vec2 _239 = vec2(-1.0) / tex_size; - vec2 _245 = (_221 / _234) / tex_size; - vec2 _249 = vec2(2.0) / tex_size; - float _267 = _196.x; - float _270 = _196.y; - float _277 = _245.x; - float _279 = _239.y; - float _285 = _234.x; - float _296 = _249.x; - float _304 = _230.x; - float _315 = _239.x; - float _317 = _245.y; - float _326 = _234.y; - float _374 = _249.y; - float _383 = _230.y; - vec3 _423 = (((((((((texture(SPIRV_Cross_Combinedtexsmp, _184 + _239).xyz * _267) * _270) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_277, _279)).xyz * _285) * _270)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_296, _279)).xyz * _304) * _270)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_315, _317)).xyz * _267) * _326)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + _245).xyz * _285) * _326)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_296, _317)).xyz * _304) * _326)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_315, _374)).xyz * _267) * _383)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_277, _374)).xyz * _285) * _383)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + _249).xyz * _304) * _383); - return _423; - } - vec3 aces(vec3 x) { return clamp((x * ((x * 2.5099999904632568359375) + vec3(0.02999999932944774627685546875))) / ((x * ((x * 2.4300000667572021484375) + vec3(0.589999973773956298828125))) + vec3(0.14000000059604644775390625)), vec3(0.0), vec3(1.0)); @@ -204,8 +155,8 @@ vs_pp_source_glsl430 := u8.[ float bayer8(vec2 pos) { - ivec2 _79 = ivec2(pos) % ivec2(8); - return (float(_156[_79.x + (_79.y * 8)]) * 0.015625) - 0.5; + ivec2 _68 = ivec2(pos) % ivec2(8); + return (float(_145[_68.x + (_68.y * 8)]) * 0.015625) - 0.5; } float rand(vec2 co) @@ -215,100 +166,102 @@ vs_pp_source_glsl430 := u8.[ void main() { - vec2 _434 = texcoord - vec2(0.5); - float _435 = length(_434); - vec2 _452 = (_434 * (1.0 + (_435 * _442.barrel_distortion_intensity))) + vec2(0.5); - if (_442.barrel_distortion_intensity > 0.0) + vec2 _166 = texcoord - vec2(0.5); + float _167 = length(_166); + vec2 _184 = (_166 * (1.0 + (_167 * _174.barrel_distortion_intensity))) + vec2(0.5); + if (_174.barrel_distortion_intensity > 0.0) { - float _460 = _452.x; - bool _461 = _460 < 0.0; - bool _468; - if (!_461) + float _192 = _184.x; + bool _193 = _192 < 0.0; + bool _200; + if (!_193) { - _468 = _460 > 1.0; + _200 = _192 > 1.0; } else { - _468 = _461; + _200 = _193; } - bool _475; - if (!_468) + bool _207; + if (!_200) { - _475 = _452.y < 0.0; + _207 = _184.y < 0.0; } else { - _475 = _468; + _207 = _200; } - bool _482; - if (!_475) + bool _214; + if (!_207) { - _482 = _452.y > 1.0; + _214 = _184.y > 1.0; } else { - _482 = _475; + _214 = _207; } - if (_482) + if (_214) { frag_color = vec4(0.0, 0.0, 0.0, 1.0); return; } } - vec2 _498 = vec2(_442.chromatic_aberration_intensity, 0.0); - vec4 _500 = texture(pptex_ppsmp, _452 + _498); - vec4 _507 = texture(pptex_ppsmp, _452); - vec4 _518 = texture(pptex_ppsmp, _452 - _498); - vec2 param = _452; - vec2 param_1 = vec2(dof_config[0].w, dof_config[1].x); - vec3 _535 = texture_bicubic(param, param_1, dof_tex_dof_smp); - vec4 _548 = texture(pos_buf_dof_smp, _452); - vec4 _574 = texture(bloom_tex_bloom_smp, _452); - vec3 _585 = (mix(vec3(_500.x, _507.y, _518.z), _535, vec3(smoothstep(dof_config[0].x, dof_config[0].y, abs(_548.z + dof_config[0].z)))) + (_574.xyz * _442.bloom_amount)) * _442.exposure; - vec3 color_ldr_linear; - if (_442.tonemap > 0.5) + vec3 sampled_color_hdr; + if (_174.chromatic_aberration_intensity > 0.00999999977648258209228515625) { - vec3 param_2 = _585; - color_ldr_linear = aces(param_2); + vec2 _242 = vec2(_174.chromatic_aberration_intensity, 0.0); + sampled_color_hdr = vec3(texture(pptex_ppsmp, _184 + _242).x, texture(pptex_ppsmp, _184).y, texture(pptex_ppsmp, _184 - _242).z + (dof_config[0].x * 9.9999998245167004418121337039338e-15)); } else { - color_ldr_linear = _585; + sampled_color_hdr = texture(pptex_ppsmp, _184).xyz; } - vec3 _605 = ((color_ldr_linear - vec3(0.5)) * max(_442.contrast, 0.0)) + vec3(0.5); - color_ldr_linear = clamp(mix(vec3(dot(_605, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125))), _605, vec3(_442.saturation)), vec3(0.0), vec3(1.0)); - if (_442.dither_intensity > 0.0) + vec4 _292 = texture(bloom_tex_bloom_smp, _184); + vec3 _303 = (sampled_color_hdr + (_292.xyz * _174.bloom_amount)) * _174.exposure; + vec3 color_ldr_linear; + if (_174.tonemap > 0.5) { - vec2 param_3 = gl_FragCoord.xy; - color_ldr_linear = clamp(color_ldr_linear + vec3((bayer8(param_3) * _442.dither_intensity) * 0.066666670143604278564453125), vec3(0.0), vec3(1.0)); + vec3 param = _303; + color_ldr_linear = aces(param); } - if (_442.lut_mode != 0) + else { - if (_442.lut_mode == 2) + color_ldr_linear = _303; + } + vec3 _323 = ((color_ldr_linear - vec3(0.5)) * max(_174.contrast, 0.0)) + vec3(0.5); + color_ldr_linear = clamp(mix(vec3(dot(_323, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125))), _323, vec3(_174.saturation)), vec3(0.0), vec3(1.0)); + if (_174.dither_intensity > 0.0) + { + vec2 param_1 = gl_FragCoord.xy; + color_ldr_linear = clamp(color_ldr_linear + vec3((bayer8(param_1) * _174.dither_intensity) * 0.066666670143604278564453125), vec3(0.0), vec3(1.0)); + } + if (_174.lut_mode != 0) + { + if (_174.lut_mode == 2) { color_ldr_linear = texture(lut_ppsmp, vec2((floor(color_ldr_linear.z * 15.0) * 0.0625) + (floor(color_ldr_linear.x * 15.0) * 0.00390625), floor(color_ldr_linear.y * 15.0) * 0.0625)).xyz; } else { - float _698 = color_ldr_linear.z * 15.0; - float _701 = floor(_698); - float _712 = ((color_ldr_linear.y * 15.0) + 0.5) * 0.0625; - float _718 = color_ldr_linear.x * 15.0; - color_ldr_linear = mix(texture(lut_lut_linear, vec2((((_701 * 16.0) + _718) + 0.5) * 0.00390625, _712)).xyz, texture(lut_lut_linear, vec2((((min(_701 + 1.0, 15.0) * 16.0) + _718) + 0.5) * 0.00390625, _712)).xyz, vec3(_698 - _701)); + float _416 = color_ldr_linear.z * 15.0; + float _419 = floor(_416); + float _430 = ((color_ldr_linear.y * 15.0) + 0.5) * 0.0625; + float _436 = color_ldr_linear.x * 15.0; + color_ldr_linear = mix(texture(lut_lut_linear, vec2((((_419 * 16.0) + _436) + 0.5) * 0.00390625, _430)).xyz, texture(lut_lut_linear, vec2((((min(_419 + 1.0, 15.0) * 16.0) + _436) + 0.5) * 0.00390625, _430)).xyz, vec3(_416 - _419)); } } - vec3 color_srgb = (pow(color_ldr_linear, vec3(1.0 / _442.gamma)) * (1.0 - (smoothstep(0.0, _442.vignette_radius, _435) * _442.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _442.scanlines_density) * 0.5) + 0.5) * _442.scanlines_intensity)); - vec2 param_4 = texcoord; - vec3 _808 = color_srgb; - vec3 _810 = _808 + vec3((rand(param_4) - 0.5) * _442.film_grain_intensity); - color_srgb = _810; - frag_color = vec4(clamp(_810, vec3(0.0), vec3(1.0)), 1.0); + vec3 color_srgb = (pow(color_ldr_linear, vec3(1.0 / _174.gamma)) * (1.0 - (smoothstep(0.0, _174.vignette_radius, _167) * _174.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _174.scanlines_density) * 0.5) + 0.5) * _174.scanlines_intensity)); + vec2 param_2 = texcoord; + vec3 _526 = color_srgb; + vec3 _528 = _526 + vec3((rand(param_2) - 0.5) * _174.film_grain_intensity); + color_srgb = _528; + frag_color = vec4(clamp(_528, vec3(0.0), vec3(1.0)), 1.0); } */ fs_pp_source_glsl430 := u8.[ 0x23,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x34,0x33,0x30,0x0a,0x0a,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x36,0x5b,0x36,0x34,0x5d, + 0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x34,0x35,0x5b,0x36,0x34,0x5d, 0x20,0x3d,0x20,0x69,0x6e,0x74,0x5b,0x5d,0x28,0x30,0x2c,0x20,0x33,0x32,0x2c,0x20, 0x38,0x2c,0x20,0x34,0x30,0x2c,0x20,0x32,0x2c,0x20,0x33,0x34,0x2c,0x20,0x31,0x30, 0x2c,0x20,0x34,0x32,0x2c,0x20,0x34,0x38,0x2c,0x20,0x31,0x36,0x2c,0x20,0x35,0x36, @@ -353,7 +306,7 @@ fs_pp_source_glsl430 := u8.[ 0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x6c, 0x6f,0x6f,0x6d,0x5f,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a, 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x70,0x6f,0x73,0x74,0x5f,0x70,0x72,0x6f, - 0x63,0x65,0x73,0x73,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x34,0x34,0x32, + 0x63,0x65,0x73,0x73,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x31,0x37,0x34, 0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x76,0x65,0x63,0x34,0x20, 0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x32,0x5d,0x3b,0x0a,0x6c, 0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20, @@ -361,20 +314,13 @@ fs_pp_source_glsl430 := u8.[ 0x6c,0x65,0x72,0x32,0x44,0x20,0x70,0x70,0x74,0x65,0x78,0x5f,0x70,0x70,0x73,0x6d, 0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e, 0x67,0x20,0x3d,0x20,0x31,0x37,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x64,0x6f,0x66,0x5f,0x74,0x65, - 0x78,0x5f,0x64,0x6f,0x66,0x5f,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, - 0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x38,0x29,0x20, - 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32, - 0x44,0x20,0x70,0x6f,0x73,0x5f,0x62,0x75,0x66,0x5f,0x64,0x6f,0x66,0x5f,0x73,0x6d, - 0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e, - 0x67,0x20,0x3d,0x20,0x31,0x39,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, 0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x6c,0x6f,0x6f,0x6d,0x5f, 0x74,0x65,0x78,0x5f,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x73,0x6d,0x70,0x3b,0x0a,0x6c, 0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20, - 0x32,0x30,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70, + 0x31,0x38,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x72,0x32,0x44,0x20,0x6c,0x75,0x74,0x5f,0x70,0x70,0x73,0x6d,0x70,0x3b, 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20, - 0x3d,0x20,0x32,0x31,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61, + 0x3d,0x20,0x31,0x39,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61, 0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x6c,0x75,0x74,0x5f,0x6c,0x75,0x74,0x5f, 0x6c,0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e, @@ -382,364 +328,252 @@ fs_pp_source_glsl430 := u8.[ 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, 0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72, 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f,0x62,0x69,0x63,0x75,0x62,0x69,0x63,0x28, - 0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x74,0x65, - 0x78,0x5f,0x73,0x69,0x7a,0x65,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32, - 0x44,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f, - 0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x37,0x34,0x20,0x3d,0x20, - 0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x29,0x20, - 0x2d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x37,0x37,0x20,0x3d,0x20,0x66,0x72,0x61, - 0x63,0x74,0x28,0x5f,0x31,0x37,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x32,0x20,0x5f,0x31,0x38,0x34,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72, - 0x28,0x5f,0x31,0x37,0x34,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e, - 0x35,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x39,0x30,0x20,0x3d,0x20, - 0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x39,0x36,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37, - 0x20,0x2a,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x20,0x2b, - 0x20,0x28,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x31, - 0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x39,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f, - 0x31,0x37,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x30,0x34,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37, - 0x20,0x2a,0x20,0x31,0x2e,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x32,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x28, - 0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x28,0x5f,0x31,0x37, - 0x37,0x20,0x2a,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x32,0x2e,0x30,0x29,0x20,0x2d, - 0x20,0x5f,0x32,0x30,0x34,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x32,0x20,0x5f,0x32,0x33,0x30,0x20,0x3d,0x20,0x5f,0x32,0x30,0x30,0x20,0x2a, - 0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x5f, - 0x31,0x39,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f, - 0x32,0x33,0x34,0x20,0x3d,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29, - 0x20,0x2b,0x20,0x28,0x5f,0x32,0x30,0x30,0x20,0x2a,0x20,0x28,0x76,0x65,0x63,0x32, - 0x28,0x2d,0x32,0x2e,0x35,0x29,0x20,0x2b,0x20,0x5f,0x32,0x30,0x34,0x29,0x29,0x29, - 0x20,0x2b,0x20,0x5f,0x32,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x32,0x20,0x5f,0x32,0x33,0x39,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x2d,0x31, - 0x2e,0x30,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x34,0x35,0x20,0x3d,0x20, - 0x28,0x5f,0x32,0x32,0x31,0x20,0x2f,0x20,0x5f,0x32,0x33,0x34,0x29,0x20,0x2f,0x20, - 0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x32,0x20,0x5f,0x32,0x34,0x39,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x32, - 0x2e,0x30,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x37,0x20,0x3d, - 0x20,0x5f,0x31,0x39,0x36,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x32,0x37,0x30,0x20,0x3d,0x20,0x5f,0x31,0x39,0x36,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x37, - 0x20,0x3d,0x20,0x5f,0x32,0x34,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x39,0x20,0x3d,0x20,0x5f,0x32,0x33,0x39, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, - 0x38,0x35,0x20,0x3d,0x20,0x5f,0x32,0x33,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x36,0x20,0x3d,0x20,0x5f,0x32, - 0x34,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x33,0x30,0x34,0x20,0x3d,0x20,0x5f,0x32,0x33,0x30,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x31,0x35,0x20,0x3d,0x20, - 0x5f,0x32,0x33,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x33,0x31,0x37,0x20,0x3d,0x20,0x5f,0x32,0x34,0x35,0x2e,0x79,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x32,0x36,0x20, - 0x3d,0x20,0x5f,0x32,0x33,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x33,0x37,0x34,0x20,0x3d,0x20,0x5f,0x32,0x34,0x39,0x2e, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x38, - 0x33,0x20,0x3d,0x20,0x5f,0x32,0x33,0x30,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x5f,0x34,0x32,0x33,0x20,0x3d,0x20,0x28,0x28,0x28,0x28, - 0x28,0x28,0x28,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50,0x49, - 0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65, - 0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20, - 0x5f,0x32,0x33,0x39,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37, - 0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x30,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73, - 0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70, - 0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x32, - 0x37,0x37,0x2c,0x20,0x5f,0x32,0x37,0x39,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a, - 0x20,0x5f,0x32,0x38,0x35,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x30,0x29,0x29,0x20, - 0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52, - 0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64, - 0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x76, - 0x65,0x63,0x32,0x28,0x5f,0x32,0x39,0x36,0x2c,0x20,0x5f,0x32,0x37,0x39,0x29,0x29, - 0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x33,0x30,0x34,0x29,0x20,0x2a,0x20,0x5f, - 0x32,0x37,0x30,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f, - 0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31, - 0x38,0x34,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x33,0x31,0x35,0x2c,0x20, - 0x5f,0x33,0x31,0x37,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x36, - 0x37,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x36,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72, - 0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73, - 0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f,0x32,0x34,0x35,0x29, - 0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x38,0x35,0x29,0x20,0x2a,0x20,0x5f, - 0x33,0x32,0x36,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f, - 0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31, - 0x38,0x34,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x32,0x39,0x36,0x2c,0x20, - 0x5f,0x33,0x31,0x37,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x33,0x30, - 0x34,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x36,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72, - 0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73, - 0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, - 0x5f,0x33,0x31,0x35,0x2c,0x20,0x5f,0x33,0x37,0x34,0x29,0x29,0x2e,0x78,0x79,0x7a, - 0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x33,0x38,0x33,0x29, - 0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50, - 0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e, - 0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b, - 0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x32,0x37,0x37,0x2c,0x20,0x5f,0x33,0x37,0x34, - 0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x38,0x35,0x29,0x20,0x2a, - 0x20,0x5f,0x33,0x38,0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f, - 0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20, - 0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f,0x32,0x34,0x39,0x29,0x2e,0x78,0x79,0x7a, - 0x20,0x2a,0x20,0x5f,0x33,0x30,0x34,0x29,0x20,0x2a,0x20,0x5f,0x33,0x38,0x33,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x34,0x32, - 0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x61,0x63,0x65,0x73,0x28, - 0x76,0x65,0x63,0x33,0x20,0x78,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x78,0x20,0x2a,0x20, - 0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e,0x35,0x30,0x39,0x39,0x39,0x39,0x39,0x39, - 0x30,0x34,0x36,0x33,0x32,0x35,0x36,0x38,0x33,0x35,0x39,0x33,0x37,0x35,0x29,0x20, - 0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x32,0x39,0x39,0x39,0x39,0x39, - 0x39,0x39,0x33,0x32,0x39,0x34,0x34,0x37,0x37,0x34,0x36,0x32,0x37,0x36,0x38,0x35, - 0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2f,0x20,0x28,0x28,0x78,0x20, - 0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e,0x34,0x33,0x30,0x30,0x30,0x30, - 0x30,0x36,0x36,0x37,0x35,0x37,0x32,0x30,0x32,0x31,0x34,0x38,0x34,0x33,0x37,0x35, - 0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x38,0x39,0x39,0x39, - 0x39,0x39,0x37,0x33,0x37,0x37,0x33,0x39,0x35,0x36,0x32,0x39,0x38,0x38,0x32,0x38, - 0x31,0x32,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x31,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34, - 0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, - 0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x61, - 0x79,0x65,0x72,0x38,0x28,0x76,0x65,0x63,0x32,0x20,0x70,0x6f,0x73,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x37,0x39,0x20,0x3d, - 0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x70,0x6f,0x73,0x29,0x20,0x25,0x20,0x69,0x76, - 0x65,0x63,0x32,0x28,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x35,0x36,0x5b,0x5f, - 0x37,0x39,0x2e,0x78,0x20,0x2b,0x20,0x28,0x5f,0x37,0x39,0x2e,0x79,0x20,0x2a,0x20, - 0x38,0x29,0x5d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x35,0x36,0x32,0x35,0x29, - 0x20,0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x72,0x61,0x6e,0x64,0x28,0x76,0x65,0x63,0x32,0x20,0x63,0x6f,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61,0x63, - 0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x63,0x6f,0x2c,0x20,0x76,0x65, - 0x63,0x32,0x28,0x31,0x32,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31, - 0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32, - 0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29, - 0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x33, - 0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x20,0x2d,0x20,0x76, - 0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x34,0x33,0x35,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74, - 0x68,0x28,0x5f,0x34,0x33,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x32,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x28,0x5f,0x34,0x33,0x34,0x20,0x2a, - 0x20,0x28,0x31,0x2e,0x30,0x20,0x2b,0x20,0x28,0x5f,0x34,0x33,0x35,0x20,0x2a,0x20, - 0x5f,0x34,0x34,0x32,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74, - 0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, - 0x29,0x29,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x62,0x61, - 0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f, - 0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x36,0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32, - 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x34,0x36,0x31,0x20,0x3d,0x20,0x5f,0x34,0x36,0x30,0x20,0x3c,0x20,0x30, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x34,0x36,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x21,0x5f,0x34,0x36,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x34,0x36,0x38,0x20,0x3d,0x20,0x5f,0x34,0x36,0x30,0x20,0x3e,0x20,0x31,0x2e, - 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x34,0x36,0x38,0x20,0x3d,0x20,0x5f,0x34,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x34,0x36,0x38,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x34,0x37,0x35,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x2e,0x79, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x61,0x63,0x65,0x73,0x28,0x76,0x65,0x63,0x33,0x20,0x78,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e,0x35,0x30,0x39, + 0x39,0x39,0x39,0x39,0x39,0x30,0x34,0x36,0x33,0x32,0x35,0x36,0x38,0x33,0x35,0x39, + 0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x32, + 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x33,0x32,0x39,0x34,0x34,0x37,0x37,0x34,0x36, + 0x32,0x37,0x36,0x38,0x35,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2f, + 0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e,0x34, + 0x33,0x30,0x30,0x30,0x30,0x30,0x36,0x36,0x37,0x35,0x37,0x32,0x30,0x32,0x31,0x34, + 0x38,0x34,0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x35,0x38,0x39,0x39,0x39,0x39,0x39,0x37,0x33,0x37,0x37,0x33,0x39,0x35,0x36,0x32, + 0x39,0x38,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x31,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39, + 0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29, + 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x62,0x61,0x79,0x65,0x72,0x38,0x28,0x76,0x65,0x63,0x32,0x20,0x70, + 0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20, + 0x5f,0x36,0x38,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x70,0x6f,0x73,0x29, + 0x20,0x25,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f, + 0x31,0x34,0x35,0x5b,0x5f,0x36,0x38,0x2e,0x78,0x20,0x2b,0x20,0x28,0x5f,0x36,0x38, + 0x2e,0x79,0x20,0x2a,0x20,0x38,0x29,0x5d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31, + 0x35,0x36,0x32,0x35,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x61,0x6e,0x64,0x28,0x76,0x65,0x63,0x32,0x20, + 0x63,0x6f,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x63, + 0x6f,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x32,0x2e,0x39,0x38,0x39,0x38,0x30, + 0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34, + 0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35, + 0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20, + 0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x32,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72, + 0x64,0x20,0x2d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x37,0x20,0x3d,0x20, + 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x36,0x36,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x38,0x34,0x20,0x3d,0x20,0x28,0x5f, + 0x31,0x36,0x36,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2b,0x20,0x28,0x5f,0x31, + 0x36,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c, + 0x5f,0x64,0x69,0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65, + 0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, + 0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, + 0x37,0x34,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74,0x6f,0x72, + 0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e, + 0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x39,0x32,0x20,0x3d, + 0x20,0x5f,0x31,0x38,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x39,0x33,0x20,0x3d,0x20,0x5f,0x31,0x39, + 0x32,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x39,0x33,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32, + 0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x37,0x35,0x20,0x3d,0x20,0x5f,0x34,0x36,0x38, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x38,0x32,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x34,0x37,0x35, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32,0x30,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x32,0x30,0x30, 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f, - 0x34,0x35,0x32,0x2e,0x79,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x37,0x20,0x3d,0x20,0x5f, + 0x31,0x38,0x34,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d, - 0x20,0x5f,0x34,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x38, - 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x39, - 0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x34,0x34,0x32,0x2e,0x63,0x68, - 0x72,0x6f,0x6d,0x61,0x74,0x69,0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69, - 0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x30,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x30, - 0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65, - 0x78,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x20,0x2b,0x20, - 0x5f,0x34,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20, - 0x5f,0x35,0x30,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70, - 0x70,0x74,0x65,0x78,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x31,0x38, - 0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78, - 0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x20,0x2d,0x20,0x5f, - 0x34,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x32,0x28,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b, - 0x30,0x5d,0x2e,0x77,0x2c,0x20,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67, - 0x5b,0x31,0x5d,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x35,0x33,0x35,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, - 0x62,0x69,0x63,0x75,0x62,0x69,0x63,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x64,0x6f,0x66,0x5f,0x74,0x65,0x78,0x5f, - 0x64,0x6f,0x66,0x5f,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x35,0x34,0x38,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x70,0x6f,0x73,0x5f,0x62,0x75,0x66,0x5f,0x64,0x6f,0x66,0x5f,0x73,0x6d, - 0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x74,0x65,0x78,0x5f,0x62,0x6c,0x6f,0x6f, - 0x6d,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x38,0x35,0x20,0x3d,0x20,0x28,0x6d, - 0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x5f,0x35,0x30,0x30,0x2e,0x78,0x2c,0x20, - 0x5f,0x35,0x30,0x37,0x2e,0x79,0x2c,0x20,0x5f,0x35,0x31,0x38,0x2e,0x7a,0x29,0x2c, - 0x20,0x5f,0x35,0x33,0x35,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f, - 0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66,0x69, - 0x67,0x5b,0x30,0x5d,0x2e,0x78,0x2c,0x20,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66, - 0x69,0x67,0x5b,0x30,0x5d,0x2e,0x79,0x2c,0x20,0x61,0x62,0x73,0x28,0x5f,0x35,0x34, - 0x38,0x2e,0x7a,0x20,0x2b,0x20,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67, - 0x5b,0x30,0x5d,0x2e,0x7a,0x29,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x5f,0x35,0x37, - 0x34,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x62,0x6c,0x6f, - 0x6f,0x6d,0x5f,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x29,0x29,0x20,0x2a,0x20,0x5f,0x34, - 0x34,0x32,0x2e,0x65,0x78,0x70,0x6f,0x73,0x75,0x72,0x65,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f, - 0x6c,0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x34,0x34,0x32,0x2e,0x74,0x6f,0x6e,0x65,0x6d,0x61,0x70,0x20,0x3e,0x20,0x30, - 0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x5f,0x35,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63, - 0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20, - 0x3d,0x20,0x61,0x63,0x65,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f, - 0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d, - 0x20,0x5f,0x35,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x36,0x30,0x35,0x20,0x3d,0x20,0x28,0x28,0x63, - 0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20, - 0x2d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x20,0x2a,0x20,0x6d, - 0x61,0x78,0x28,0x5f,0x34,0x34,0x32,0x2e,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c, - 0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f, - 0x36,0x30,0x35,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35, - 0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33, - 0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x33,0x39,0x39,0x39, - 0x38,0x30,0x35,0x34,0x35,0x30,0x34,0x33,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x2c, - 0x20,0x30,0x2e,0x30,0x37,0x32,0x30,0x39,0x39,0x39,0x39,0x38,0x35,0x39,0x33,0x33, - 0x33,0x30,0x33,0x38,0x33,0x33,0x30,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x29, - 0x2c,0x20,0x5f,0x36,0x30,0x35,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x34,0x34, - 0x32,0x2e,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x34,0x34,0x32,0x2e,0x64,0x69,0x74,0x68,0x65,0x72,0x5f,0x69,0x6e,0x74,0x65,0x6e, - 0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67, - 0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65, - 0x61,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x63,0x6f,0x6c,0x6f,0x72, - 0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x2b,0x20,0x76,0x65, - 0x63,0x33,0x28,0x28,0x62,0x61,0x79,0x65,0x72,0x38,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x29,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x64,0x69,0x74,0x68,0x65, - 0x72,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x30,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x31,0x34,0x33,0x36,0x30,0x34, - 0x32,0x37,0x38,0x35,0x36,0x34,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31, - 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64, - 0x65,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x6c, - 0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69, - 0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6c, - 0x75,0x74,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x28, - 0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f, - 0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x28,0x66,0x6c, - 0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69, - 0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c, - 0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69, - 0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x36,0x39,0x38,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c, - 0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x35, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x30,0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f, - 0x6f,0x72,0x28,0x5f,0x36,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x31,0x32, - 0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, - 0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20, - 0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x37,0x31,0x38,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f, - 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20,0x31, - 0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61, - 0x72,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x6c,0x75,0x74,0x5f,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20, - 0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x28,0x5f,0x37,0x30,0x31,0x20,0x2a,0x20,0x31, - 0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x37,0x31,0x38,0x29,0x20,0x2b,0x20,0x30, - 0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35, - 0x2c,0x20,0x5f,0x37,0x31,0x32,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x75,0x74,0x5f,0x6c,0x69, - 0x6e,0x65,0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x28,0x6d,0x69, - 0x6e,0x28,0x5f,0x37,0x30,0x31,0x20,0x2b,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35, - 0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x37, - 0x31,0x38,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30, - 0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x37,0x31,0x32,0x29,0x29,0x2e, - 0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x36,0x39,0x38,0x20,0x2d, - 0x20,0x5f,0x37,0x30,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x37,0x20,0x3d, + 0x20,0x5f,0x32,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32, + 0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x21,0x5f,0x32,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x31, + 0x34,0x20,0x3d,0x20,0x5f,0x31,0x38,0x34,0x2e,0x79,0x20,0x3e,0x20,0x31,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x32,0x31,0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x32,0x31,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x28, - 0x70,0x6f,0x77,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69, - 0x6e,0x65,0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x20,0x2f, - 0x20,0x5f,0x34,0x34,0x32,0x2e,0x67,0x61,0x6d,0x6d,0x61,0x29,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74, - 0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x34,0x32,0x2e,0x76,0x69,0x67, - 0x6e,0x65,0x74,0x74,0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x20,0x5f,0x34, - 0x33,0x35,0x29,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x76,0x69,0x67,0x6e,0x65, - 0x74,0x74,0x65,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29, - 0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,0x69,0x6e, - 0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20, - 0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73, - 0x5f,0x64,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, - 0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x73, - 0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69, - 0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72, - 0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x30,0x38, - 0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x38,0x31,0x30,0x20,0x3d,0x20,0x5f, - 0x38,0x30,0x38,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x72,0x61,0x6e,0x64, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29, - 0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61, - 0x69,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20, - 0x5f,0x38,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x5f,0x38,0x31,0x30,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, - 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20,0x31, - 0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f, + 0x68,0x64,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37, + 0x34,0x2e,0x63,0x68,0x72,0x6f,0x6d,0x61,0x74,0x69,0x63,0x5f,0x61,0x62,0x65,0x72, + 0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, + 0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37, + 0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36, + 0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x32,0x28,0x5f,0x31,0x37,0x34,0x2e,0x63,0x68,0x72,0x6f,0x6d,0x61,0x74,0x69, + 0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x5f,0x68,0x64,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78,0x5f,0x70,0x70,0x73, + 0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f,0x32,0x34,0x32,0x29, + 0x2e,0x78,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65, + 0x78,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x29,0x2e,0x79, + 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78,0x5f, + 0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2d,0x20,0x5f,0x32, + 0x34,0x32,0x29,0x2e,0x7a,0x20,0x2b,0x20,0x28,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e, + 0x66,0x69,0x67,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x2a,0x20,0x39,0x2e,0x39,0x39,0x39, + 0x39,0x39,0x39,0x38,0x32,0x34,0x35,0x31,0x36,0x37,0x30,0x30,0x34,0x34,0x31,0x38, + 0x31,0x32,0x31,0x33,0x33,0x37,0x30,0x33,0x39,0x33,0x33,0x38,0x65,0x2d,0x31,0x35, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x68, + 0x64,0x72,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74, + 0x65,0x78,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x29,0x2e, + 0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x28,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x74,0x65,0x78,0x5f,0x62,0x6c,0x6f, + 0x6f,0x6d,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x30,0x33,0x20,0x3d,0x20,0x28, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x68,0x64, + 0x72,0x20,0x2b,0x20,0x28,0x5f,0x32,0x39,0x32,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20, + 0x5f,0x31,0x37,0x34,0x2e,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x61,0x6d,0x6f,0x75,0x6e, + 0x74,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x65,0x78,0x70,0x6f,0x73, + 0x75,0x72,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x6f, + 0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x74,0x6f,0x6e, + 0x65,0x6d,0x61,0x70,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x33,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, + 0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x61,0x63,0x65,0x73,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65, + 0x61,0x72,0x20,0x3d,0x20,0x5f,0x33,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x32,0x33,0x20,0x3d, + 0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e, + 0x65,0x61,0x72,0x20,0x2d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29, + 0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x5f,0x31,0x37,0x34,0x2e,0x63,0x6f,0x6e,0x74, + 0x72,0x61,0x73,0x74,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c, + 0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x64, + 0x6f,0x74,0x28,0x5f,0x33,0x32,0x33,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x32,0x31,0x32,0x35,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34, + 0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35, + 0x33,0x39,0x39,0x39,0x38,0x30,0x35,0x34,0x35,0x30,0x34,0x33,0x39,0x34,0x35,0x33, + 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x30,0x39,0x39,0x39,0x39,0x38, + 0x35,0x39,0x33,0x33,0x33,0x30,0x33,0x38,0x33,0x33,0x30,0x30,0x37,0x38,0x31,0x32, + 0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x33,0x32,0x33,0x2c,0x20,0x76,0x65,0x63,0x33, + 0x28,0x5f,0x31,0x37,0x34,0x2e,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e, + 0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x64,0x69,0x74,0x68,0x65,0x72,0x5f,0x69, + 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x67,0x6c,0x5f, + 0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f, + 0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x63, + 0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20, + 0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x62,0x61,0x79,0x65,0x72,0x38,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x64, + 0x69,0x74,0x68,0x65,0x72,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x31,0x34, + 0x33,0x36,0x30,0x34,0x32,0x37,0x38,0x35,0x36,0x34,0x34,0x35,0x33,0x31,0x32,0x35, + 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x6c,0x75,0x74, + 0x5f,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, + 0x37,0x34,0x2e,0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x28,0x6c,0x75,0x74,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65, + 0x63,0x32,0x28,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f, + 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20,0x31, + 0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x20,0x2b, + 0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20,0x31,0x35,0x2e, + 0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x29, + 0x2c,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,0x35,0x2e, + 0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x29,0x2e,0x78,0x79, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x36,0x20,0x3d,0x20,0x63,0x6f,0x6c, + 0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20, + 0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x39,0x20,0x3d, + 0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x34,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x34,0x33,0x30,0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c, + 0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,0x35, + 0x2e,0x30,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30, + 0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x63,0x6f, + 0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78, + 0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, + 0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65, + 0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x28,0x5f,0x34,0x31,0x39, + 0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x34,0x33,0x36,0x29, + 0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39, + 0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x34,0x33,0x30,0x29,0x29,0x2e,0x78,0x79,0x7a, + 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x75, + 0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x28, + 0x28,0x28,0x6d,0x69,0x6e,0x28,0x5f,0x34,0x31,0x39,0x20,0x2b,0x20,0x31,0x2e,0x30, + 0x2c,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20, + 0x2b,0x20,0x5f,0x34,0x33,0x36,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x34,0x33, + 0x30,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x34, + 0x31,0x36,0x20,0x2d,0x20,0x5f,0x34,0x31,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62, + 0x20,0x3d,0x20,0x28,0x70,0x6f,0x77,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31, + 0x2e,0x30,0x20,0x2f,0x20,0x5f,0x31,0x37,0x34,0x2e,0x67,0x61,0x6d,0x6d,0x61,0x29, + 0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x73,0x6d,0x6f,0x6f, + 0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x31,0x37,0x34, + 0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x2c,0x20,0x5f,0x31,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x76, + 0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28, + 0x28,0x73,0x69,0x6e,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72, + 0x64,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x73,0x63,0x61,0x6e,0x6c, + 0x69,0x6e,0x65,0x73,0x5f,0x64,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20, + 0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x31, + 0x37,0x34,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69,0x6e,0x74, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x74,0x65,0x78, + 0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x35,0x32,0x36,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67, + 0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x32,0x38, + 0x20,0x3d,0x20,0x5f,0x35,0x32,0x36,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x28, + 0x72,0x61,0x6e,0x64,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2d,0x20, + 0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x66,0x69,0x6c,0x6d, + 0x5f,0x67,0x72,0x61,0x69,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67, + 0x62,0x20,0x3d,0x20,0x5f,0x35,0x32,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x35,0x32,0x38,0x2c,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29, + 0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es @@ -774,7 +608,7 @@ vs_pp_source_glsl300es := u8.[ precision mediump float; precision highp int; - const int _156[64] = int[](0, 32, 8, 40, 2, 34, 10, 42, 48, 16, 56, 24, 50, 18, 58, 26, 12, 44, 4, 36, 14, 46, 6, 38, 60, 28, 52, 20, 62, 30, 54, 22, 3, 35, 11, 43, 1, 33, 9, 41, 51, 19, 59, 27, 49, 17, 57, 25, 15, 47, 7, 39, 13, 45, 5, 37, 63, 31, 55, 23, 61, 29, 53, 21); + const int _145[64] = int[](0, 32, 8, 40, 2, 34, 10, 42, 48, 16, 56, 24, 50, 18, 58, 26, 12, 44, 4, 36, 14, 46, 6, 38, 60, 28, 52, 20, 62, 30, 54, 22, 3, 35, 11, 43, 1, 33, 9, 41, 51, 19, 59, 27, 49, 17, 57, 25, 15, 47, 7, 39, 13, 45, 5, 37, 63, 31, 55, 23, 61, 29, 53, 21); struct post_process_config { @@ -795,12 +629,10 @@ vs_pp_source_glsl300es := u8.[ highp float bloom_amount; }; - uniform post_process_config _442; + uniform post_process_config _174; uniform highp vec4 dof_config[2]; uniform highp sampler2D pptex_ppsmp; - uniform highp sampler2D dof_tex_dof_smp; - uniform highp sampler2D pos_buf_dof_smp; uniform highp sampler2D bloom_tex_bloom_smp; uniform highp sampler2D lut_ppsmp; uniform highp sampler2D lut_lut_linear; @@ -808,37 +640,6 @@ vs_pp_source_glsl300es := u8.[ in highp vec2 texcoord; layout(location = 0) out highp vec4 frag_color; - highp vec3 texture_bicubic(highp vec2 uv, highp vec2 tex_size, highp sampler2D SPIRV_Cross_Combinedtexsmp) - { - highp vec2 _174 = (uv * tex_size) - vec2(0.5); - highp vec2 _177 = fract(_174); - highp vec2 _184 = (floor(_174) + vec2(0.5)) / tex_size; - highp vec2 _190 = _177 * 0.5; - highp vec2 _196 = _177 * (vec2(-0.5) + (_177 * (vec2(1.0) - _190))); - highp vec2 _200 = _177 * _177; - highp vec2 _204 = _177 * 1.5; - highp vec2 _221 = _177 * (vec2(0.5) + (_177 * (vec2(2.0) - _204))); - highp vec2 _230 = _200 * (vec2(-0.5) + _190); - highp vec2 _234 = (vec2(1.0) + (_200 * (vec2(-2.5) + _204))) + _221; - highp vec2 _239 = vec2(-1.0) / tex_size; - highp vec2 _245 = (_221 / _234) / tex_size; - highp vec2 _249 = vec2(2.0) / tex_size; - highp float _267 = _196.x; - highp float _270 = _196.y; - highp float _277 = _245.x; - highp float _279 = _239.y; - highp float _285 = _234.x; - highp float _296 = _249.x; - highp float _304 = _230.x; - highp float _315 = _239.x; - highp float _317 = _245.y; - highp float _326 = _234.y; - highp float _374 = _249.y; - highp float _383 = _230.y; - highp vec3 _423 = (((((((((texture(SPIRV_Cross_Combinedtexsmp, _184 + _239).xyz * _267) * _270) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_277, _279)).xyz * _285) * _270)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_296, _279)).xyz * _304) * _270)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_315, _317)).xyz * _267) * _326)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + _245).xyz * _285) * _326)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_296, _317)).xyz * _304) * _326)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_315, _374)).xyz * _267) * _383)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + vec2(_277, _374)).xyz * _285) * _383)) + ((texture(SPIRV_Cross_Combinedtexsmp, _184 + _249).xyz * _304) * _383); - return _423; - } - highp vec3 aces(highp vec3 x) { return clamp((x * ((x * 2.5099999904632568359375) + vec3(0.02999999932944774627685546875))) / ((x * ((x * 2.4300000667572021484375) + vec3(0.589999973773956298828125))) + vec3(0.14000000059604644775390625)), vec3(0.0), vec3(1.0)); @@ -846,8 +647,8 @@ vs_pp_source_glsl300es := u8.[ highp float bayer8(highp vec2 pos) { - ivec2 _79 = ivec2(pos) % ivec2(8); - return (float(_156[_79.x + (_79.y * 8)]) * 0.015625) - 0.5; + ivec2 _68 = ivec2(pos) % ivec2(8); + return (float(_145[_68.x + (_68.y * 8)]) * 0.015625) - 0.5; } highp float rand(highp vec2 co) @@ -857,94 +658,96 @@ vs_pp_source_glsl300es := u8.[ void main() { - highp vec2 _434 = texcoord - vec2(0.5); - highp float _435 = length(_434); - highp vec2 _452 = (_434 * (1.0 + (_435 * _442.barrel_distortion_intensity))) + vec2(0.5); - if (_442.barrel_distortion_intensity > 0.0) + highp vec2 _166 = texcoord - vec2(0.5); + highp float _167 = length(_166); + highp vec2 _184 = (_166 * (1.0 + (_167 * _174.barrel_distortion_intensity))) + vec2(0.5); + if (_174.barrel_distortion_intensity > 0.0) { - highp float _460 = _452.x; - bool _461 = _460 < 0.0; - bool _468; - if (!_461) + highp float _192 = _184.x; + bool _193 = _192 < 0.0; + bool _200; + if (!_193) { - _468 = _460 > 1.0; + _200 = _192 > 1.0; } else { - _468 = _461; + _200 = _193; } - bool _475; - if (!_468) + bool _207; + if (!_200) { - _475 = _452.y < 0.0; + _207 = _184.y < 0.0; } else { - _475 = _468; + _207 = _200; } - bool _482; - if (!_475) + bool _214; + if (!_207) { - _482 = _452.y > 1.0; + _214 = _184.y > 1.0; } else { - _482 = _475; + _214 = _207; } - if (_482) + if (_214) { frag_color = vec4(0.0, 0.0, 0.0, 1.0); return; } } - highp vec2 _498 = vec2(_442.chromatic_aberration_intensity, 0.0); - highp vec4 _500 = texture(pptex_ppsmp, _452 + _498); - highp vec4 _507 = texture(pptex_ppsmp, _452); - highp vec4 _518 = texture(pptex_ppsmp, _452 - _498); - highp vec2 param = _452; - highp vec2 param_1 = vec2(dof_config[0].w, dof_config[1].x); - highp vec3 _535 = texture_bicubic(param, param_1, dof_tex_dof_smp); - highp vec4 _548 = texture(pos_buf_dof_smp, _452); - highp vec4 _574 = texture(bloom_tex_bloom_smp, _452); - highp vec3 _585 = (mix(vec3(_500.x, _507.y, _518.z), _535, vec3(smoothstep(dof_config[0].x, dof_config[0].y, abs(_548.z + dof_config[0].z)))) + (_574.xyz * _442.bloom_amount)) * _442.exposure; - highp vec3 color_ldr_linear; - if (_442.tonemap > 0.5) + highp vec3 sampled_color_hdr; + if (_174.chromatic_aberration_intensity > 0.00999999977648258209228515625) { - highp vec3 param_2 = _585; - color_ldr_linear = aces(param_2); + highp vec2 _242 = vec2(_174.chromatic_aberration_intensity, 0.0); + sampled_color_hdr = vec3(texture(pptex_ppsmp, _184 + _242).x, texture(pptex_ppsmp, _184).y, texture(pptex_ppsmp, _184 - _242).z + (dof_config[0].x * 9.9999998245167004418121337039338e-15)); } else { - color_ldr_linear = _585; + sampled_color_hdr = texture(pptex_ppsmp, _184).xyz; } - highp vec3 _605 = ((color_ldr_linear - vec3(0.5)) * max(_442.contrast, 0.0)) + vec3(0.5); - color_ldr_linear = clamp(mix(vec3(dot(_605, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125))), _605, vec3(_442.saturation)), vec3(0.0), vec3(1.0)); - if (_442.dither_intensity > 0.0) + highp vec4 _292 = texture(bloom_tex_bloom_smp, _184); + highp vec3 _303 = (sampled_color_hdr + (_292.xyz * _174.bloom_amount)) * _174.exposure; + highp vec3 color_ldr_linear; + if (_174.tonemap > 0.5) { - highp vec2 param_3 = gl_FragCoord.xy; - color_ldr_linear = clamp(color_ldr_linear + vec3((bayer8(param_3) * _442.dither_intensity) * 0.066666670143604278564453125), vec3(0.0), vec3(1.0)); + highp vec3 param = _303; + color_ldr_linear = aces(param); } - if (_442.lut_mode != 0) + else { - if (_442.lut_mode == 2) + color_ldr_linear = _303; + } + highp vec3 _323 = ((color_ldr_linear - vec3(0.5)) * max(_174.contrast, 0.0)) + vec3(0.5); + color_ldr_linear = clamp(mix(vec3(dot(_323, vec3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125))), _323, vec3(_174.saturation)), vec3(0.0), vec3(1.0)); + if (_174.dither_intensity > 0.0) + { + highp vec2 param_1 = gl_FragCoord.xy; + color_ldr_linear = clamp(color_ldr_linear + vec3((bayer8(param_1) * _174.dither_intensity) * 0.066666670143604278564453125), vec3(0.0), vec3(1.0)); + } + if (_174.lut_mode != 0) + { + if (_174.lut_mode == 2) { color_ldr_linear = texture(lut_ppsmp, vec2((floor(color_ldr_linear.z * 15.0) * 0.0625) + (floor(color_ldr_linear.x * 15.0) * 0.00390625), floor(color_ldr_linear.y * 15.0) * 0.0625)).xyz; } else { - highp float _698 = color_ldr_linear.z * 15.0; - highp float _701 = floor(_698); - highp float _712 = ((color_ldr_linear.y * 15.0) + 0.5) * 0.0625; - highp float _718 = color_ldr_linear.x * 15.0; - color_ldr_linear = mix(texture(lut_lut_linear, vec2((((_701 * 16.0) + _718) + 0.5) * 0.00390625, _712)).xyz, texture(lut_lut_linear, vec2((((min(_701 + 1.0, 15.0) * 16.0) + _718) + 0.5) * 0.00390625, _712)).xyz, vec3(_698 - _701)); + highp float _416 = color_ldr_linear.z * 15.0; + highp float _419 = floor(_416); + highp float _430 = ((color_ldr_linear.y * 15.0) + 0.5) * 0.0625; + highp float _436 = color_ldr_linear.x * 15.0; + color_ldr_linear = mix(texture(lut_lut_linear, vec2((((_419 * 16.0) + _436) + 0.5) * 0.00390625, _430)).xyz, texture(lut_lut_linear, vec2((((min(_419 + 1.0, 15.0) * 16.0) + _436) + 0.5) * 0.00390625, _430)).xyz, vec3(_416 - _419)); } } - highp vec3 color_srgb = (pow(color_ldr_linear, vec3(1.0 / _442.gamma)) * (1.0 - (smoothstep(0.0, _442.vignette_radius, _435) * _442.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _442.scanlines_density) * 0.5) + 0.5) * _442.scanlines_intensity)); - highp vec2 param_4 = texcoord; - highp vec3 _808 = color_srgb; - highp vec3 _810 = _808 + vec3((rand(param_4) - 0.5) * _442.film_grain_intensity); - color_srgb = _810; - frag_color = vec4(clamp(_810, vec3(0.0), vec3(1.0)), 1.0); + highp vec3 color_srgb = (pow(color_ldr_linear, vec3(1.0 / _174.gamma)) * (1.0 - (smoothstep(0.0, _174.vignette_radius, _167) * _174.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _174.scanlines_density) * 0.5) + 0.5) * _174.scanlines_intensity)); + highp vec2 param_2 = texcoord; + highp vec3 _526 = color_srgb; + highp vec3 _528 = _526 + vec3((rand(param_2) - 0.5) * _174.film_grain_intensity); + color_srgb = _528; + frag_color = vec4(clamp(_528, vec3(0.0), vec3(1.0)), 1.0); } */ @@ -953,7 +756,7 @@ fs_pp_source_glsl300es := u8.[ 0x70,0x72,0x65,0x63,0x69,0x73,0x69,0x6f,0x6e,0x20,0x6d,0x65,0x64,0x69,0x75,0x6d, 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3b,0x0a,0x70,0x72,0x65,0x63,0x69,0x73,0x69, 0x6f,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x69,0x6e,0x74,0x3b,0x0a,0x0a,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x36,0x5b,0x36,0x34, + 0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x34,0x35,0x5b,0x36,0x34, 0x5d,0x20,0x3d,0x20,0x69,0x6e,0x74,0x5b,0x5d,0x28,0x30,0x2c,0x20,0x33,0x32,0x2c, 0x20,0x38,0x2c,0x20,0x34,0x30,0x2c,0x20,0x32,0x2c,0x20,0x33,0x34,0x2c,0x20,0x31, 0x30,0x2c,0x20,0x34,0x32,0x2c,0x20,0x34,0x38,0x2c,0x20,0x31,0x36,0x2c,0x20,0x35, @@ -1004,410 +807,279 @@ fs_pp_source_glsl300es := u8.[ 0x61,0x74,0x20,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x3b, 0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x70,0x6f,0x73, 0x74,0x5f,0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67, - 0x20,0x5f,0x34,0x34,0x32,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, + 0x20,0x5f,0x31,0x37,0x34,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x64,0x6f,0x66,0x5f,0x63, 0x6f,0x6e,0x66,0x69,0x67,0x5b,0x32,0x5d,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72, 0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32, 0x44,0x20,0x70,0x70,0x74,0x65,0x78,0x5f,0x70,0x70,0x73,0x6d,0x70,0x3b,0x0a,0x75, 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x64,0x6f,0x66,0x5f,0x74,0x65,0x78,0x5f,0x64, - 0x6f,0x66,0x5f,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20, - 0x70,0x6f,0x73,0x5f,0x62,0x75,0x66,0x5f,0x64,0x6f,0x66,0x5f,0x73,0x6d,0x70,0x3b, - 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x74, - 0x65,0x78,0x5f,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x32,0x44,0x20,0x6c,0x75,0x74,0x5f,0x70,0x70,0x73,0x6d,0x70,0x3b, - 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x6c,0x75,0x74,0x5f,0x6c,0x75,0x74, - 0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64, - 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, - 0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x3b,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x5f,0x62,0x69,0x63,0x75,0x62,0x69,0x63,0x28,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x75,0x76,0x2c,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65, - 0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32, - 0x44,0x20,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f, - 0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f, - 0x31,0x37,0x34,0x20,0x3d,0x20,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78,0x5f, - 0x73,0x69,0x7a,0x65,0x29,0x20,0x2d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x32,0x20,0x5f,0x31,0x37,0x37,0x20,0x3d,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x5f, - 0x31,0x37,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x38,0x34,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f, - 0x6f,0x72,0x28,0x5f,0x31,0x37,0x34,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, - 0x30,0x2e,0x35,0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x31,0x39,0x30,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x30, - 0x2e,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x32,0x20,0x5f,0x31,0x39,0x36,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a, - 0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x28, - 0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30, - 0x29,0x20,0x2d,0x20,0x5f,0x31,0x39,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x30,0x30, - 0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x37,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f, - 0x32,0x30,0x34,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x31,0x2e,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x32,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x28, - 0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x28,0x5f,0x31,0x37, - 0x37,0x20,0x2a,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x32,0x2e,0x30,0x29,0x20,0x2d, - 0x20,0x5f,0x32,0x30,0x34,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x33,0x30,0x20,0x3d,0x20, - 0x5f,0x32,0x30,0x30,0x20,0x2a,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x30,0x2e, - 0x35,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x33,0x34,0x20, - 0x3d,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28, - 0x5f,0x32,0x30,0x30,0x20,0x2a,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x2d,0x32,0x2e, - 0x35,0x29,0x20,0x2b,0x20,0x5f,0x32,0x30,0x34,0x29,0x29,0x29,0x20,0x2b,0x20,0x5f, - 0x32,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x32,0x33,0x39,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28, - 0x2d,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x32,0x34,0x35,0x20,0x3d,0x20,0x28,0x5f,0x32,0x32,0x31,0x20,0x2f,0x20, - 0x5f,0x32,0x33,0x34,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x32,0x34,0x39,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x32,0x2e,0x30, - 0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, - 0x36,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x36,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37, - 0x30,0x20,0x3d,0x20,0x5f,0x31,0x39,0x36,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x37, - 0x20,0x3d,0x20,0x5f,0x32,0x34,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x39,0x20, - 0x3d,0x20,0x5f,0x32,0x33,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x38,0x35,0x20,0x3d, - 0x20,0x5f,0x32,0x33,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x36,0x20,0x3d,0x20, - 0x5f,0x32,0x34,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x30,0x34,0x20,0x3d,0x20,0x5f, - 0x32,0x33,0x30,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x31,0x35,0x20,0x3d,0x20,0x5f,0x32, - 0x33,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x31,0x37,0x20,0x3d,0x20,0x5f,0x32,0x34, - 0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x32,0x36,0x20,0x3d,0x20,0x5f,0x32,0x33,0x34, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x33,0x37,0x34,0x20,0x3d,0x20,0x5f,0x32,0x34,0x39,0x2e, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x33,0x38,0x33,0x20,0x3d,0x20,0x5f,0x32,0x33,0x30,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x34,0x32,0x33,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, - 0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43, - 0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78, - 0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f,0x32,0x33,0x39, - 0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2a,0x20, - 0x5f,0x32,0x37,0x30,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f, - 0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31, - 0x38,0x34,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x32,0x37,0x37,0x2c,0x20, - 0x5f,0x32,0x37,0x39,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x38, - 0x35,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x30,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72, - 0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73, - 0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28, - 0x5f,0x32,0x39,0x36,0x2c,0x20,0x5f,0x32,0x37,0x39,0x29,0x29,0x2e,0x78,0x79,0x7a, - 0x20,0x2a,0x20,0x5f,0x33,0x30,0x34,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x30,0x29, - 0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50, - 0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e, - 0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b, - 0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x33,0x31,0x35,0x2c,0x20,0x5f,0x33,0x31,0x37, - 0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2a, - 0x20,0x5f,0x33,0x32,0x36,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f, - 0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20, - 0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f,0x32,0x34,0x35,0x29,0x2e,0x78,0x79,0x7a, - 0x20,0x2a,0x20,0x5f,0x32,0x38,0x35,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x36,0x29, - 0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50, - 0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e, - 0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b, - 0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x32,0x39,0x36,0x2c,0x20,0x5f,0x33,0x31,0x37, - 0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x33,0x30,0x34,0x29,0x20,0x2a, - 0x20,0x5f,0x33,0x32,0x36,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74, - 0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f, - 0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20, - 0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x33,0x31,0x35, - 0x2c,0x20,0x5f,0x33,0x37,0x34,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f, - 0x32,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x33,0x38,0x33,0x29,0x29,0x20,0x2b,0x20, - 0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x53,0x50,0x49,0x52,0x56,0x5f, - 0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62,0x69,0x6e,0x65,0x64,0x74,0x65, - 0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x76,0x65,0x63, - 0x32,0x28,0x5f,0x32,0x37,0x37,0x2c,0x20,0x5f,0x33,0x37,0x34,0x29,0x29,0x2e,0x78, - 0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x38,0x35,0x29,0x20,0x2a,0x20,0x5f,0x33,0x38, - 0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x53,0x50,0x49,0x52,0x56,0x5f,0x43,0x72,0x6f,0x73,0x73,0x5f,0x43,0x6f,0x6d,0x62, - 0x69,0x6e,0x65,0x64,0x74,0x65,0x78,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34, - 0x20,0x2b,0x20,0x5f,0x32,0x34,0x39,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f, - 0x33,0x30,0x34,0x29,0x20,0x2a,0x20,0x5f,0x33,0x38,0x33,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x34,0x32,0x33,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x61,0x63,0x65, - 0x73,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x78,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e, - 0x35,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x30,0x34,0x36,0x33,0x32,0x35,0x36,0x38, - 0x33,0x35,0x39,0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x30,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x33,0x32,0x39,0x34,0x34,0x37, - 0x37,0x34,0x36,0x32,0x37,0x36,0x38,0x35,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29, - 0x29,0x20,0x2f,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20, - 0x32,0x2e,0x34,0x33,0x30,0x30,0x30,0x30,0x30,0x36,0x36,0x37,0x35,0x37,0x32,0x30, - 0x32,0x31,0x34,0x38,0x34,0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x35,0x38,0x39,0x39,0x39,0x39,0x39,0x37,0x33,0x37,0x37,0x33,0x39, - 0x35,0x36,0x32,0x39,0x38,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x29,0x29,0x20,0x2b, - 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x31,0x34,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36, - 0x32,0x35,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x61,0x79,0x65, - 0x72,0x38,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f, - 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f, - 0x37,0x39,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x70,0x6f,0x73,0x29,0x20, - 0x25,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, - 0x35,0x36,0x5b,0x5f,0x37,0x39,0x2e,0x78,0x20,0x2b,0x20,0x28,0x5f,0x37,0x39,0x2e, - 0x79,0x20,0x2a,0x20,0x38,0x29,0x5d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x35, - 0x36,0x32,0x35,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x61,0x6e,0x64,0x28, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x63,0x6f,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61,0x63, - 0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x63,0x6f,0x2c,0x20,0x76,0x65, - 0x63,0x32,0x28,0x31,0x32,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31, - 0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32, - 0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29, - 0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x32,0x20,0x5f,0x34,0x33,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f, - 0x72,0x64,0x20,0x2d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x34,0x33,0x35,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x34, - 0x33,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x34,0x35,0x32,0x20,0x3d,0x20,0x28,0x5f,0x34,0x33,0x34, - 0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2b,0x20,0x28,0x5f,0x34,0x33,0x35,0x20, - 0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69, - 0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69, - 0x74,0x79,0x29,0x29,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e, - 0x62,0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74,0x6f,0x72,0x74,0x69,0x6f, - 0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e, - 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x36, - 0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x36,0x31,0x20,0x3d,0x20, - 0x5f,0x34,0x36,0x30,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x36,0x38,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x34,0x36,0x31, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x36,0x38,0x20,0x3d,0x20,0x5f, - 0x34,0x36,0x30,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x36,0x38,0x20,0x3d,0x20,0x5f, - 0x34,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x37,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f, - 0x34,0x36,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x37,0x35,0x20, - 0x3d,0x20,0x5f,0x34,0x35,0x32,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x37, - 0x35,0x20,0x3d,0x20,0x5f,0x34,0x36,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x34,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x21,0x5f,0x34,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x2e,0x79,0x20,0x3e,0x20, - 0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x37,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x38,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x34,0x39,0x38,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x34,0x34,0x32,0x2e,0x63,0x68,0x72,0x6f, - 0x6d,0x61,0x74,0x69,0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69,0x6f,0x6e, - 0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x5f,0x35,0x30,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x70,0x70,0x74,0x65,0x78,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35, - 0x32,0x20,0x2b,0x20,0x5f,0x34,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x30,0x37,0x20,0x3d, - 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78,0x5f,0x70, - 0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x31,0x38, - 0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78, - 0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x20,0x2d,0x20,0x5f, - 0x34,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x34,0x35, - 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x32, - 0x28,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x30,0x5d,0x2e,0x77, - 0x2c,0x20,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x31,0x5d,0x2e, - 0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x5f,0x35,0x33,0x35,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x5f,0x62,0x69,0x63,0x75,0x62,0x69,0x63,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x64,0x6f,0x66,0x5f,0x74,0x65, - 0x78,0x5f,0x64,0x6f,0x66,0x5f,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x34,0x38,0x20, - 0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x6f,0x73,0x5f,0x62,0x75, - 0x66,0x5f,0x64,0x6f,0x66,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x74,0x65,0x78,0x5f,0x62,0x6c,0x6f,0x6f,0x6d,0x5f, - 0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x38,0x35,0x20, - 0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x5f,0x35,0x30,0x30, - 0x2e,0x78,0x2c,0x20,0x5f,0x35,0x30,0x37,0x2e,0x79,0x2c,0x20,0x5f,0x35,0x31,0x38, - 0x2e,0x7a,0x29,0x2c,0x20,0x5f,0x35,0x33,0x35,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x64,0x6f,0x66,0x5f,0x63, - 0x6f,0x6e,0x66,0x69,0x67,0x5b,0x30,0x5d,0x2e,0x78,0x2c,0x20,0x64,0x6f,0x66,0x5f, - 0x63,0x6f,0x6e,0x66,0x69,0x67,0x5b,0x30,0x5d,0x2e,0x79,0x2c,0x20,0x61,0x62,0x73, - 0x28,0x5f,0x35,0x34,0x38,0x2e,0x7a,0x20,0x2b,0x20,0x64,0x6f,0x66,0x5f,0x63,0x6f, - 0x6e,0x66,0x69,0x67,0x5b,0x30,0x5d,0x2e,0x7a,0x29,0x29,0x29,0x29,0x20,0x2b,0x20, - 0x28,0x5f,0x35,0x37,0x34,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32, - 0x2e,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x29,0x29,0x20, - 0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x65,0x78,0x70,0x6f,0x73,0x75,0x72,0x65,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x74, - 0x6f,0x6e,0x65,0x6d,0x61,0x70,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x5f,0x35,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63, - 0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20, - 0x3d,0x20,0x61,0x63,0x65,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f, - 0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d, - 0x20,0x5f,0x35,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x36,0x30,0x35, - 0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, - 0x69,0x6e,0x65,0x61,0x72,0x20,0x2d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35, - 0x29,0x29,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x5f,0x34,0x34,0x32,0x2e,0x63,0x6f, - 0x6e,0x74,0x72,0x61,0x73,0x74,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63, - 0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20, - 0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33, - 0x28,0x64,0x6f,0x74,0x28,0x5f,0x36,0x30,0x35,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x30,0x2e,0x32,0x31,0x32,0x35,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, - 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, - 0x31,0x35,0x33,0x39,0x39,0x39,0x38,0x30,0x35,0x34,0x35,0x30,0x34,0x33,0x39,0x34, - 0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x30,0x39,0x39,0x39, - 0x39,0x38,0x35,0x39,0x33,0x33,0x33,0x30,0x33,0x38,0x33,0x33,0x30,0x30,0x37,0x38, - 0x31,0x32,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x36,0x30,0x35,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x5f,0x34,0x34,0x32,0x2e,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69, - 0x6f,0x6e,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x64,0x69,0x74,0x68,0x65,0x72, + 0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x74,0x65,0x78, + 0x5f,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66, + 0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x72,0x32,0x44,0x20,0x6c,0x75,0x74,0x5f,0x70,0x70,0x73,0x6d,0x70,0x3b,0x0a,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x6c,0x75,0x74,0x5f,0x6c,0x75,0x74,0x5f,0x6c, + 0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x32,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a, + 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, + 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x61,0x63,0x65,0x73, + 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x78,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x63,0x6c,0x61,0x6d, + 0x70,0x28,0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e,0x35, + 0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x30,0x34,0x36,0x33,0x32,0x35,0x36,0x38,0x33, + 0x35,0x39,0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x30,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x33,0x32,0x39,0x34,0x34,0x37,0x37, + 0x34,0x36,0x32,0x37,0x36,0x38,0x35,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x29, + 0x20,0x2f,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32, + 0x2e,0x34,0x33,0x30,0x30,0x30,0x30,0x30,0x36,0x36,0x37,0x35,0x37,0x32,0x30,0x32, + 0x31,0x34,0x38,0x34,0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x35,0x38,0x39,0x39,0x39,0x39,0x39,0x37,0x33,0x37,0x37,0x33,0x39,0x35, + 0x36,0x32,0x39,0x38,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x29,0x29,0x20,0x2b,0x20, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x31,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32, + 0x35,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x61,0x79,0x65,0x72, + 0x38,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x6f,0x73, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x36, + 0x38,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x70,0x6f,0x73,0x29,0x20,0x25, + 0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x34, + 0x35,0x5b,0x5f,0x36,0x38,0x2e,0x78,0x20,0x2b,0x20,0x28,0x5f,0x36,0x38,0x2e,0x79, + 0x20,0x2a,0x20,0x38,0x29,0x5d,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x35,0x36, + 0x32,0x35,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x61,0x6e,0x64,0x28,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x63,0x6f,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x72,0x61,0x63,0x74, + 0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x63,0x6f,0x2c,0x20,0x76,0x65,0x63, + 0x32,0x28,0x31,0x32,0x2e,0x39,0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38, + 0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33, + 0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29, + 0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x32,0x20,0x5f,0x31,0x36,0x36,0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72, + 0x64,0x20,0x2d,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x31,0x36,0x37,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x36, + 0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x32,0x20,0x5f,0x31,0x38,0x34,0x20,0x3d,0x20,0x28,0x5f,0x31,0x36,0x36,0x20, + 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2b,0x20,0x28,0x5f,0x31,0x36,0x37,0x20,0x2a, + 0x20,0x5f,0x31,0x37,0x34,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73, + 0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x29,0x29,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x62, + 0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e, 0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x20,0x3d,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72, - 0x64,0x2e,0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f, - 0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d, - 0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72, - 0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x28, - 0x62,0x61,0x79,0x65,0x72,0x38,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20, - 0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x64,0x69,0x74,0x68,0x65,0x72,0x5f,0x69,0x6e, - 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x36, - 0x36,0x36,0x36,0x36,0x37,0x30,0x31,0x34,0x33,0x36,0x30,0x34,0x32,0x37,0x38,0x35, - 0x36,0x34,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x34,0x34,0x32,0x2e,0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d, - 0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x6c,0x75,0x74,0x5f,0x6d, - 0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x39,0x32, + 0x20,0x3d,0x20,0x5f,0x31,0x38,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x39,0x33,0x20,0x3d,0x20,0x5f, + 0x31,0x39,0x32,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32,0x30,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x39,0x33,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f,0x31, + 0x39,0x32,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f,0x31, + 0x39,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32,0x30,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x32, + 0x30,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x37,0x20,0x3d, + 0x20,0x5f,0x31,0x38,0x34,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x37, + 0x20,0x3d,0x20,0x5f,0x32,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x32,0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x21,0x5f,0x32,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x32,0x31,0x34,0x20,0x3d,0x20,0x5f,0x31,0x38,0x34,0x2e,0x79,0x20,0x3e,0x20,0x31, + 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x32,0x31,0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x37,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x32,0x31,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72, - 0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6c,0x75,0x74,0x5f,0x70, - 0x70,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x66,0x6c,0x6f,0x6f, - 0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65, - 0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x30,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28, - 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72, - 0x2e,0x78,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30, - 0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28, - 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72, - 0x2e,0x79,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30, - 0x36,0x32,0x35,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63, + 0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x68,0x64,0x72,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x63,0x68,0x72,0x6f,0x6d,0x61, + 0x74,0x69,0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x69, + 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x39, + 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30, + 0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x32,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20,0x76,0x65,0x63,0x32, + 0x28,0x5f,0x31,0x37,0x34,0x2e,0x63,0x68,0x72,0x6f,0x6d,0x61,0x74,0x69,0x63,0x5f, + 0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x5f,0x68,0x64,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78,0x5f,0x70,0x70,0x73,0x6d,0x70, + 0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f,0x32,0x34,0x32,0x29,0x2e,0x78, + 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78,0x5f, + 0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x29,0x2e,0x79,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78,0x5f,0x70,0x70, + 0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x20,0x2d,0x20,0x5f,0x32,0x34,0x32, + 0x29,0x2e,0x7a,0x20,0x2b,0x20,0x28,0x64,0x6f,0x66,0x5f,0x63,0x6f,0x6e,0x66,0x69, + 0x67,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x2a,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39, + 0x39,0x38,0x32,0x34,0x35,0x31,0x36,0x37,0x30,0x30,0x34,0x34,0x31,0x38,0x31,0x32, + 0x31,0x33,0x33,0x37,0x30,0x33,0x39,0x33,0x33,0x38,0x65,0x2d,0x31,0x35,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x68,0x64,0x72, + 0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x70,0x70,0x74,0x65,0x78, + 0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x29,0x2e,0x78,0x79, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x74,0x65,0x78, + 0x5f,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x33,0x30,0x33,0x20,0x3d,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x68,0x64,0x72,0x20,0x2b,0x20,0x28,0x5f, + 0x32,0x39,0x32,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x62, + 0x6c,0x6f,0x6f,0x6d,0x5f,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x29,0x29,0x20,0x2a,0x20, + 0x5f,0x31,0x37,0x34,0x2e,0x65,0x78,0x70,0x6f,0x73,0x75,0x72,0x65,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x6f, + 0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x74,0x6f,0x6e, + 0x65,0x6d,0x61,0x70,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x33,0x30, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72, + 0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x61,0x63, + 0x65,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x5f,0x33,0x30,0x33,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x32,0x33,0x20,0x3d,0x20,0x28,0x28,0x63, + 0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20, + 0x2d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x20,0x2a,0x20,0x6d, + 0x61,0x78,0x28,0x5f,0x31,0x37,0x34,0x2e,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c, + 0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d, + 0x70,0x28,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x33,0x32,0x33,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35, + 0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33, + 0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x33,0x39,0x39,0x39, + 0x38,0x30,0x35,0x34,0x35,0x30,0x34,0x33,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x30,0x37,0x32,0x30,0x39,0x39,0x39,0x39,0x38,0x35,0x39,0x33,0x33, + 0x33,0x30,0x33,0x38,0x33,0x33,0x30,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x29, + 0x2c,0x20,0x5f,0x33,0x32,0x33,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x37, + 0x34,0x2e,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x31,0x37,0x34,0x2e,0x64,0x69,0x74,0x68,0x65,0x72,0x5f,0x69,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x67, + 0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61, + 0x72,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x62,0x61,0x79,0x65,0x72,0x38, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34, + 0x2e,0x64,0x69,0x74,0x68,0x65,0x72,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x30, + 0x31,0x34,0x33,0x36,0x30,0x34,0x32,0x37,0x38,0x35,0x36,0x34,0x34,0x35,0x33,0x31, + 0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x6c, + 0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x37,0x34,0x2e,0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d, + 0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f, + 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x6c,0x75,0x74,0x5f,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20, + 0x76,0x65,0x63,0x32,0x28,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f, + 0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a, + 0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29, + 0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f, + 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20,0x31, + 0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32, + 0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f, + 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31, + 0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x29,0x2e, + 0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34, + 0x31,0x36,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, + 0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x39,0x20,0x3d,0x20,0x66, + 0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x34,0x31,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x36,0x39,0x38,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72, - 0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20, - 0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37, - 0x30,0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x36,0x39,0x38,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x31,0x32,0x20,0x3d, - 0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e, - 0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2b,0x20, - 0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x31,0x38,0x20,0x3d,0x20,0x63,0x6f, - 0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78, - 0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, - 0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x74,0x65,0x78,0x74, + 0x6f,0x61,0x74,0x20,0x5f,0x34,0x33,0x30,0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c, + 0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20, + 0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x34,0x33,0x36,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20,0x31,0x35,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63, + 0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20, + 0x3d,0x20,0x6d,0x69,0x78,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6c,0x75, + 0x74,0x5f,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x76,0x65, + 0x63,0x32,0x28,0x28,0x28,0x28,0x5f,0x34,0x31,0x39,0x20,0x2a,0x20,0x31,0x36,0x2e, + 0x30,0x29,0x20,0x2b,0x20,0x5f,0x34,0x33,0x36,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35, + 0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20, + 0x5f,0x34,0x33,0x30,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x74,0x65,0x78,0x74, 0x75,0x72,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65, - 0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x28,0x5f,0x37,0x30,0x31, - 0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x37,0x31,0x38,0x29, - 0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39, - 0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x37,0x31,0x32,0x29,0x29,0x2e,0x78,0x79,0x7a, - 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x75, - 0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x28, - 0x28,0x28,0x6d,0x69,0x6e,0x28,0x5f,0x37,0x30,0x31,0x20,0x2b,0x20,0x31,0x2e,0x30, - 0x2c,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20, - 0x2b,0x20,0x5f,0x37,0x31,0x38,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x37,0x31, - 0x32,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x36, - 0x39,0x38,0x20,0x2d,0x20,0x5f,0x37,0x30,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x6f,0x6c,0x6f, - 0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x28,0x70,0x6f,0x77,0x28,0x63,0x6f, - 0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x34,0x34,0x32,0x2e, - 0x67,0x61,0x6d,0x6d,0x61,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d, - 0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x5f,0x34,0x34,0x32,0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f, - 0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x20,0x5f,0x34,0x33,0x35,0x29,0x20,0x2a,0x20, - 0x5f,0x34,0x34,0x32,0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x69,0x6e, - 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,0x69,0x6e,0x28,0x67,0x6c,0x5f,0x46,0x72, - 0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32, - 0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x64,0x65,0x6e,0x73,0x69, - 0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35, - 0x29,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e, - 0x65,0x73,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72, - 0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x5f,0x38,0x30,0x38,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73, - 0x72,0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x38,0x31,0x30,0x20,0x3d,0x20,0x5f,0x38,0x30,0x38,0x20, - 0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x72,0x61,0x6e,0x64,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f, - 0x34,0x34,0x32,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61,0x69,0x6e,0x5f,0x69, - 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63, - 0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x5f,0x38,0x31,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x38, - 0x31,0x30,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x00, + 0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x28,0x28,0x28,0x6d,0x69,0x6e,0x28, + 0x5f,0x34,0x31,0x39,0x20,0x2b,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x2e,0x30, + 0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x34,0x33,0x36, + 0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33, + 0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x34,0x33,0x30,0x29,0x29,0x2e,0x78,0x79, + 0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x34,0x31,0x36,0x20,0x2d,0x20,0x5f, + 0x34,0x31,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62, + 0x20,0x3d,0x20,0x28,0x70,0x6f,0x77,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31, + 0x2e,0x30,0x20,0x2f,0x20,0x5f,0x31,0x37,0x34,0x2e,0x67,0x61,0x6d,0x6d,0x61,0x29, + 0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x73,0x6d,0x6f,0x6f, + 0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x31,0x37,0x34, + 0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73, + 0x2c,0x20,0x5f,0x31,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x76, + 0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, + 0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28, + 0x28,0x73,0x69,0x6e,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72, + 0x64,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x73,0x63,0x61,0x6e,0x6c, + 0x69,0x6e,0x65,0x73,0x5f,0x64,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20, + 0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x31, + 0x37,0x34,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69,0x6e,0x74, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x20,0x3d,0x20,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x32,0x36, + 0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35, + 0x32,0x38,0x20,0x3d,0x20,0x5f,0x35,0x32,0x36,0x20,0x2b,0x20,0x76,0x65,0x63,0x33, + 0x28,0x28,0x72,0x61,0x6e,0x64,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20, + 0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x66,0x69, + 0x6c,0x6d,0x5f,0x67,0x72,0x61,0x69,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69, + 0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73, + 0x72,0x67,0x62,0x20,0x3d,0x20,0x5f,0x35,0x32,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63, + 0x34,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x35,0x32,0x38,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, + 0x30,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #include @@ -1541,7 +1213,7 @@ vs_pp_source_metal_macos := u8.[ float dof_tex_height; }; - constant spvUnsafeArray _156 = spvUnsafeArray({ 0, 32, 8, 40, 2, 34, 10, 42, 48, 16, 56, 24, 50, 18, 58, 26, 12, 44, 4, 36, 14, 46, 6, 38, 60, 28, 52, 20, 62, 30, 54, 22, 3, 35, 11, 43, 1, 33, 9, 41, 51, 19, 59, 27, 49, 17, 57, 25, 15, 47, 7, 39, 13, 45, 5, 37, 63, 31, 55, 23, 61, 29, 53, 21 }); + constant spvUnsafeArray _145 = spvUnsafeArray({ 0, 32, 8, 40, 2, 34, 10, 42, 48, 16, 56, 24, 50, 18, 58, 26, 12, 44, 4, 36, 14, 46, 6, 38, 60, 28, 52, 20, 62, 30, 54, 22, 3, 35, 11, 43, 1, 33, 9, 41, 51, 19, 59, 27, 49, 17, 57, 25, 15, 47, 7, 39, 13, 45, 5, 37, 63, 31, 55, 23, 61, 29, 53, 21 }); struct main0_out { @@ -1553,38 +1225,6 @@ vs_pp_source_metal_macos := u8.[ float2 texcoord [[user(locn0)]]; }; - static inline __attribute__((always_inline)) - float3 texture_bicubic(texture2d tex, sampler smp, thread const float2& uv, thread const float2& tex_size) - { - float2 _174 = (uv * tex_size) - float2(0.5); - float2 _177 = fract(_174); - float2 _184 = (floor(_174) + float2(0.5)) / tex_size; - float2 _190 = _177 * 0.5; - float2 _196 = _177 * (float2(-0.5) + (_177 * (float2(1.0) - _190))); - float2 _200 = _177 * _177; - float2 _204 = _177 * 1.5; - float2 _221 = _177 * (float2(0.5) + (_177 * (float2(2.0) - _204))); - float2 _230 = _200 * (float2(-0.5) + _190); - float2 _234 = (float2(1.0) + (_200 * (float2(-2.5) + _204))) + _221; - float2 _239 = float2(-1.0) / tex_size; - float2 _245 = (_221 / _234) / tex_size; - float2 _249 = float2(2.0) / tex_size; - float _267 = _196.x; - float _270 = _196.y; - float _277 = _245.x; - float _279 = _239.y; - float _285 = _234.x; - float _296 = _249.x; - float _304 = _230.x; - float _315 = _239.x; - float _317 = _245.y; - float _326 = _234.y; - float _374 = _249.y; - float _383 = _230.y; - float3 _423 = (((((((((tex.sample(smp, (_184 + _239)).xyz * _267) * _270) + ((tex.sample(smp, (_184 + float2(_277, _279))).xyz * _285) * _270)) + ((tex.sample(smp, (_184 + float2(_296, _279))).xyz * _304) * _270)) + ((tex.sample(smp, (_184 + float2(_315, _317))).xyz * _267) * _326)) + ((tex.sample(smp, (_184 + _245)).xyz * _285) * _326)) + ((tex.sample(smp, (_184 + float2(_296, _317))).xyz * _304) * _326)) + ((tex.sample(smp, (_184 + float2(_315, _374))).xyz * _267) * _383)) + ((tex.sample(smp, (_184 + float2(_277, _374))).xyz * _285) * _383)) + ((tex.sample(smp, (_184 + _249)).xyz * _304) * _383); - return _423; - } - static inline __attribute__((always_inline)) float3 aces(thread const float3& x) { @@ -1594,8 +1234,8 @@ vs_pp_source_metal_macos := u8.[ static inline __attribute__((always_inline)) float bayer8(thread const float2& pos) { - int2 _79 = int2(pos) % int2(8); - return (float(_156[_79.x + (_79.y * 8)]) * 0.015625) - 0.5; + int2 _68 = int2(pos) % int2(8); + return (float(_145[_68.x + (_68.y * 8)]) * 0.015625) - 0.5; } static inline __attribute__((always_inline)) @@ -1604,97 +1244,99 @@ vs_pp_source_metal_macos := u8.[ return fract(sin(dot(co, float2(12.98980045318603515625, 78.233001708984375))) * 43758.546875); } - fragment main0_out main0(main0_in in [[stage_in]], constant post_process_config& _442 [[buffer(0)]], constant dof_config& _526 [[buffer(1)]], texture2d pptex [[texture(0)]], texture2d dof_tex [[texture(1)]], texture2d pos_buf [[texture(2)]], texture2d bloom_tex [[texture(3)]], texture2d lut [[texture(4)]], sampler ppsmp [[sampler(0)]], sampler dof_smp [[sampler(1)]], sampler bloom_smp [[sampler(2)]], sampler lut_linear [[sampler(3)]], float4 gl_FragCoord [[position]]) + fragment main0_out main0(main0_in in [[stage_in]], constant post_process_config& _174 [[buffer(0)]], constant dof_config& _271 [[buffer(1)]], texture2d pptex [[texture(0)]], texture2d bloom_tex [[texture(1)]], texture2d lut [[texture(2)]], sampler ppsmp [[sampler(0)]], sampler bloom_smp [[sampler(1)]], sampler lut_linear [[sampler(2)]], float4 gl_FragCoord [[position]]) { main0_out out = {}; - float2 _434 = in.texcoord - float2(0.5); - float _435 = length(_434); - float2 _452 = (_434 * (1.0 + (_435 * _442.barrel_distortion_intensity))) + float2(0.5); - if (_442.barrel_distortion_intensity > 0.0) + float2 _166 = in.texcoord - float2(0.5); + float _167 = length(_166); + float2 _184 = (_166 * (1.0 + (_167 * _174.barrel_distortion_intensity))) + float2(0.5); + if (_174.barrel_distortion_intensity > 0.0) { - float _460 = _452.x; - bool _461 = _460 < 0.0; - bool _468; - if (!_461) + float _192 = _184.x; + bool _193 = _192 < 0.0; + bool _200; + if (!_193) { - _468 = _460 > 1.0; + _200 = _192 > 1.0; } else { - _468 = _461; + _200 = _193; } - bool _475; - if (!_468) + bool _207; + if (!_200) { - _475 = _452.y < 0.0; + _207 = _184.y < 0.0; } else { - _475 = _468; + _207 = _200; } - bool _482; - if (!_475) + bool _214; + if (!_207) { - _482 = _452.y > 1.0; + _214 = _184.y > 1.0; } else { - _482 = _475; + _214 = _207; } - if (_482) + if (_214) { out.frag_color = float4(0.0, 0.0, 0.0, 1.0); return out; } } - float2 _498 = float2(_442.chromatic_aberration_intensity, 0.0); - float4 _500 = pptex.sample(ppsmp, (_452 + _498)); - float4 _507 = pptex.sample(ppsmp, _452); - float4 _518 = pptex.sample(ppsmp, (_452 - _498)); - float2 param = _452; - float2 param_1 = float2(_526.dof_tex_width, _526.dof_tex_height); - float3 _535 = texture_bicubic(dof_tex, dof_smp, param, param_1); - float4 _548 = pos_buf.sample(dof_smp, _452); - float4 _574 = bloom_tex.sample(bloom_smp, _452); - float3 _585 = (mix(float3(_500.x, _507.y, _518.z), _535, float3(smoothstep(_526.dof_min, _526.dof_max, abs(_548.z + _526.dof_point)))) + (_574.xyz * _442.bloom_amount)) * _442.exposure; - float3 color_ldr_linear; - if (_442.tonemap > 0.5) + float3 sampled_color_hdr; + if (_174.chromatic_aberration_intensity > 0.00999999977648258209228515625) { - float3 param_2 = _585; - color_ldr_linear = aces(param_2); + float2 _242 = float2(_174.chromatic_aberration_intensity, 0.0); + sampled_color_hdr = float3(pptex.sample(ppsmp, (_184 + _242)).x, pptex.sample(ppsmp, _184).y, pptex.sample(ppsmp, (_184 - _242)).z + (_271.dof_min * 9.9999998245167004418121337039338e-15)); } else { - color_ldr_linear = _585; + sampled_color_hdr = pptex.sample(ppsmp, _184).xyz; } - float3 _605 = ((color_ldr_linear - float3(0.5)) * fast::max(_442.contrast, 0.0)) + float3(0.5); - color_ldr_linear = fast::clamp(mix(float3(dot(_605, float3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125))), _605, float3(_442.saturation)), float3(0.0), float3(1.0)); - if (_442.dither_intensity > 0.0) + float4 _292 = bloom_tex.sample(bloom_smp, _184); + float3 _303 = (sampled_color_hdr + (_292.xyz * _174.bloom_amount)) * _174.exposure; + float3 color_ldr_linear; + if (_174.tonemap > 0.5) { - float2 param_3 = gl_FragCoord.xy; - color_ldr_linear = fast::clamp(color_ldr_linear + float3((bayer8(param_3) * _442.dither_intensity) * 0.066666670143604278564453125), float3(0.0), float3(1.0)); + float3 param = _303; + color_ldr_linear = aces(param); } - if (_442.lut_mode != 0) + else { - if (_442.lut_mode == 2) + color_ldr_linear = _303; + } + float3 _323 = ((color_ldr_linear - float3(0.5)) * fast::max(_174.contrast, 0.0)) + float3(0.5); + color_ldr_linear = fast::clamp(mix(float3(dot(_323, float3(0.2125000059604644775390625, 0.7153999805450439453125, 0.07209999859333038330078125))), _323, float3(_174.saturation)), float3(0.0), float3(1.0)); + if (_174.dither_intensity > 0.0) + { + float2 param_1 = gl_FragCoord.xy; + color_ldr_linear = fast::clamp(color_ldr_linear + float3((bayer8(param_1) * _174.dither_intensity) * 0.066666670143604278564453125), float3(0.0), float3(1.0)); + } + if (_174.lut_mode != 0) + { + if (_174.lut_mode == 2) { color_ldr_linear = lut.sample(ppsmp, float2((floor(color_ldr_linear.z * 15.0) * 0.0625) + (floor(color_ldr_linear.x * 15.0) * 0.00390625), floor(color_ldr_linear.y * 15.0) * 0.0625)).xyz; } else { - float _698 = color_ldr_linear.z * 15.0; - float _701 = floor(_698); - float _712 = ((color_ldr_linear.y * 15.0) + 0.5) * 0.0625; - float _718 = color_ldr_linear.x * 15.0; - color_ldr_linear = mix(lut.sample(lut_linear, float2((((_701 * 16.0) + _718) + 0.5) * 0.00390625, _712)).xyz, lut.sample(lut_linear, float2((((fast::min(_701 + 1.0, 15.0) * 16.0) + _718) + 0.5) * 0.00390625, _712)).xyz, float3(_698 - _701)); + float _416 = color_ldr_linear.z * 15.0; + float _419 = floor(_416); + float _430 = ((color_ldr_linear.y * 15.0) + 0.5) * 0.0625; + float _436 = color_ldr_linear.x * 15.0; + color_ldr_linear = mix(lut.sample(lut_linear, float2((((_419 * 16.0) + _436) + 0.5) * 0.00390625, _430)).xyz, lut.sample(lut_linear, float2((((fast::min(_419 + 1.0, 15.0) * 16.0) + _436) + 0.5) * 0.00390625, _430)).xyz, float3(_416 - _419)); } } - float3 color_srgb = (powr(color_ldr_linear, float3(1.0 / _442.gamma)) * (1.0 - (smoothstep(0.0, _442.vignette_radius, _435) * _442.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _442.scanlines_density) * 0.5) + 0.5) * _442.scanlines_intensity)); - float2 param_4 = in.texcoord; - float3 _808 = color_srgb; - float3 _810 = _808 + float3((rand(param_4) - 0.5) * _442.film_grain_intensity); - color_srgb = _810; - out.frag_color = float4(fast::clamp(_810, float3(0.0), float3(1.0)), 1.0); + float3 color_srgb = (powr(color_ldr_linear, float3(1.0 / _174.gamma)) * (1.0 - (smoothstep(0.0, _174.vignette_radius, _167) * _174.vignette_intensity))) * (1.0 - (((sin(gl_FragCoord.y * _174.scanlines_density) * 0.5) + 0.5) * _174.scanlines_intensity)); + float2 param_2 = in.texcoord; + float3 _526 = color_srgb; + float3 _528 = _526 + float3((rand(param_2) - 0.5) * _174.film_grain_intensity); + color_srgb = _528; + out.frag_color = float4(fast::clamp(_528, float3(0.0), float3(1.0)), 1.0); return out; } @@ -1801,7 +1443,7 @@ fs_pp_source_metal_macos := u8.[ 0x66,0x5f,0x74,0x65,0x78,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x3b,0x0a,0x7d,0x3b, 0x0a,0x0a,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x73,0x70,0x76,0x55,0x6e, 0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x69,0x6e,0x74,0x2c,0x20,0x36, - 0x34,0x3e,0x20,0x5f,0x31,0x35,0x36,0x20,0x3d,0x20,0x73,0x70,0x76,0x55,0x6e,0x73, + 0x34,0x3e,0x20,0x5f,0x31,0x34,0x35,0x20,0x3d,0x20,0x73,0x70,0x76,0x55,0x6e,0x73, 0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x69,0x6e,0x74,0x2c,0x20,0x36,0x34, 0x3e,0x28,0x7b,0x20,0x30,0x2c,0x20,0x33,0x32,0x2c,0x20,0x38,0x2c,0x20,0x34,0x30, 0x2c,0x20,0x32,0x2c,0x20,0x33,0x34,0x2c,0x20,0x31,0x30,0x2c,0x20,0x34,0x32,0x2c, @@ -1829,415 +1471,296 @@ fs_pp_source_metal_macos := u8.[ 0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e, 0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28, 0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29, - 0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, - 0x62,0x69,0x63,0x75,0x62,0x69,0x63,0x28,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, - 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x65,0x78,0x2c,0x20,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x6d,0x70,0x2c,0x20,0x74,0x68,0x72,0x65,0x61, - 0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20, - 0x75,0x76,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a, - 0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x31,0x37,0x34,0x20,0x3d,0x20,0x28,0x75,0x76,0x20,0x2a,0x20,0x74,0x65,0x78, - 0x5f,0x73,0x69,0x7a,0x65,0x29,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, - 0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x5f,0x31,0x37,0x37,0x20,0x3d,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x5f,0x31, - 0x37,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x31,0x38,0x34,0x20,0x3d,0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x31, - 0x37,0x34,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35, - 0x29,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x39,0x30,0x20,0x3d, - 0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x39,0x36,0x20,0x3d,0x20,0x5f, - 0x31,0x37,0x37,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30, - 0x2e,0x35,0x29,0x20,0x2b,0x20,0x28,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x39, - 0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x5f, - 0x31,0x37,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x32,0x30,0x34,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x31,0x2e, - 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32, - 0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x37,0x37,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x28,0x5f,0x31,0x37,0x37, - 0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x32,0x2e,0x30,0x29,0x20, - 0x2d,0x20,0x5f,0x32,0x30,0x34,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32,0x33,0x30,0x20,0x3d,0x20,0x5f,0x32,0x30, - 0x30,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x30,0x2e,0x35, - 0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32,0x33,0x34,0x20,0x3d,0x20,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28,0x5f,0x32,0x30, - 0x30,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x32,0x2e,0x35, - 0x29,0x20,0x2b,0x20,0x5f,0x32,0x30,0x34,0x29,0x29,0x29,0x20,0x2b,0x20,0x5f,0x32, - 0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, - 0x32,0x33,0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x2d,0x31,0x2e, - 0x30,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32,0x34,0x35,0x20,0x3d, - 0x20,0x28,0x5f,0x32,0x32,0x31,0x20,0x2f,0x20,0x5f,0x32,0x33,0x34,0x29,0x20,0x2f, - 0x20,0x74,0x65,0x78,0x5f,0x73,0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32,0x34,0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x28,0x32,0x2e,0x30,0x29,0x20,0x2f,0x20,0x74,0x65,0x78,0x5f,0x73, - 0x69,0x7a,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x36,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x36,0x2e,0x78,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x30,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x36,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20,0x5f,0x32,0x34,0x35,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x39,0x20,0x3d, - 0x20,0x5f,0x32,0x33,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x32,0x38,0x35,0x20,0x3d,0x20,0x5f,0x32,0x33,0x34,0x2e,0x78, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x39,0x36, - 0x20,0x3d,0x20,0x5f,0x32,0x34,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x30,0x34,0x20,0x3d,0x20,0x5f,0x32,0x33,0x30, - 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33, - 0x31,0x35,0x20,0x3d,0x20,0x5f,0x32,0x33,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x31,0x37,0x20,0x3d,0x20,0x5f,0x32, - 0x34,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x33,0x32,0x36,0x20,0x3d,0x20,0x5f,0x32,0x33,0x34,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x37,0x34,0x20,0x3d,0x20, - 0x5f,0x32,0x34,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x33,0x38,0x33,0x20,0x3d,0x20,0x5f,0x32,0x33,0x30,0x2e,0x79,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x32,0x33, - 0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x74,0x65,0x78,0x2e, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x31,0x38, - 0x34,0x20,0x2b,0x20,0x5f,0x32,0x33,0x39,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a, - 0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x30,0x29,0x20,0x2b, - 0x20,0x28,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d, - 0x70,0x2c,0x20,0x28,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x5f,0x32,0x37,0x37,0x2c,0x20,0x5f,0x32,0x37,0x39,0x29,0x29,0x29,0x2e, - 0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x38,0x35,0x29,0x20,0x2a,0x20,0x5f,0x32, - 0x37,0x30,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x31,0x38,0x34,0x20,0x2b, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x32,0x39,0x36,0x2c,0x20,0x5f,0x32, - 0x37,0x39,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x33,0x30,0x34, - 0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x30,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74, - 0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x28, - 0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x33, - 0x31,0x35,0x2c,0x20,0x5f,0x33,0x31,0x37,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20, - 0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x36,0x29,0x29, - 0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28, - 0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f,0x32,0x34, - 0x35,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x38,0x35,0x29,0x20, - 0x2a,0x20,0x5f,0x33,0x32,0x36,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78, - 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x31, - 0x38,0x34,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x32,0x39,0x36, - 0x2c,0x20,0x5f,0x33,0x31,0x37,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20, - 0x5f,0x33,0x30,0x34,0x29,0x20,0x2a,0x20,0x5f,0x33,0x32,0x36,0x29,0x29,0x20,0x2b, - 0x20,0x28,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d, - 0x70,0x2c,0x20,0x28,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x5f,0x33,0x31,0x35,0x2c,0x20,0x5f,0x33,0x37,0x34,0x29,0x29,0x29,0x2e, - 0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x33, - 0x38,0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x31,0x38,0x34,0x20,0x2b, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x32,0x37,0x37,0x2c,0x20,0x5f,0x33, - 0x37,0x34,0x29,0x29,0x29,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x32,0x38,0x35, - 0x29,0x20,0x2a,0x20,0x5f,0x33,0x38,0x33,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x74, - 0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x73,0x6d,0x70,0x2c,0x20,0x28, - 0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f,0x32,0x34,0x39,0x29,0x29,0x2e,0x78,0x79, - 0x7a,0x20,0x2a,0x20,0x5f,0x33,0x30,0x34,0x29,0x20,0x2a,0x20,0x5f,0x33,0x38,0x33, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x34, - 0x32,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e, - 0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65, - 0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e, - 0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x61,0x63,0x65,0x73,0x28, - 0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x26,0x20,0x78,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70, - 0x28,0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e,0x35,0x30, - 0x39,0x39,0x39,0x39,0x39,0x39,0x30,0x34,0x36,0x33,0x32,0x35,0x36,0x38,0x33,0x35, - 0x39,0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, - 0x2e,0x30,0x32,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x33,0x32,0x39,0x34,0x34,0x37, - 0x37,0x34,0x36,0x32,0x37,0x36,0x38,0x35,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29, - 0x29,0x20,0x2f,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20, - 0x32,0x2e,0x34,0x33,0x30,0x30,0x30,0x30,0x30,0x36,0x36,0x37,0x35,0x37,0x32,0x30, - 0x32,0x31,0x34,0x38,0x34,0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x30,0x2e,0x35,0x38,0x39,0x39,0x39,0x39,0x39,0x37,0x33,0x37,0x37, - 0x33,0x39,0x35,0x36,0x32,0x39,0x38,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x29,0x29, - 0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x31,0x34,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35, - 0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e, - 0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69, - 0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, - 0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69, - 0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x61,0x79,0x65,0x72, - 0x38,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x37,0x39,0x20,0x3d,0x20,0x69,0x6e,0x74, - 0x32,0x28,0x70,0x6f,0x73,0x29,0x20,0x25,0x20,0x69,0x6e,0x74,0x32,0x28,0x38,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x28,0x5f,0x31,0x35,0x36,0x5b,0x5f,0x37,0x39,0x2e,0x78,0x20,0x2b, - 0x20,0x28,0x5f,0x37,0x39,0x2e,0x79,0x20,0x2a,0x20,0x38,0x29,0x5d,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35, + 0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x61,0x63,0x65,0x73,0x28,0x74,0x68,0x72, + 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x26,0x20,0x78,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x78, + 0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e,0x35,0x30,0x39,0x39,0x39, + 0x39,0x39,0x39,0x30,0x34,0x36,0x33,0x32,0x35,0x36,0x38,0x33,0x35,0x39,0x33,0x37, + 0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x32, + 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x33,0x32,0x39,0x34,0x34,0x37,0x37,0x34,0x36, + 0x32,0x37,0x36,0x38,0x35,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2f, + 0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x28,0x28,0x78,0x20,0x2a,0x20,0x32,0x2e,0x34, + 0x33,0x30,0x30,0x30,0x30,0x30,0x36,0x36,0x37,0x35,0x37,0x32,0x30,0x32,0x31,0x34, + 0x38,0x34,0x33,0x37,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x30,0x2e,0x35,0x38,0x39,0x39,0x39,0x39,0x39,0x37,0x33,0x37,0x37,0x33,0x39,0x35, + 0x36,0x32,0x39,0x38,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x29,0x29,0x20,0x2b,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x31,0x34,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30, + 0x36,0x32,0x35,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, + 0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, - 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x61,0x6e,0x64,0x28,0x74,0x68,0x72, - 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x26,0x20,0x63,0x6f,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74, - 0x28,0x63,0x6f,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x32,0x2e,0x39, - 0x38,0x39,0x38,0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35, - 0x36,0x32,0x35,0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30, - 0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37, - 0x35,0x38,0x2e,0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66, - 0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, - 0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e, - 0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d, - 0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x70,0x6f,0x73,0x74,0x5f, - 0x70,0x72,0x6f,0x63,0x65,0x73,0x73,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20, - 0x5f,0x34,0x34,0x32,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29, - 0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x64,0x6f,0x66, - 0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x35,0x32,0x36,0x20,0x5b,0x5b, - 0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x70,0x70, - 0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29, - 0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, - 0x6f,0x61,0x74,0x3e,0x20,0x64,0x6f,0x66,0x5f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x70,0x6f, - 0x73,0x5f,0x62,0x75,0x66,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x32,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c, - 0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x74,0x65,0x78, - 0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x33,0x29,0x5d,0x5d,0x2c, + 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x62,0x61,0x79,0x65,0x72,0x38,0x28,0x74, + 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x26,0x20,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x32,0x20,0x5f,0x36,0x38,0x20,0x3d,0x20,0x69,0x6e,0x74,0x32,0x28,0x70, + 0x6f,0x73,0x29,0x20,0x25,0x20,0x69,0x6e,0x74,0x32,0x28,0x38,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74, + 0x28,0x5f,0x31,0x34,0x35,0x5b,0x5f,0x36,0x38,0x2e,0x78,0x20,0x2b,0x20,0x28,0x5f, + 0x36,0x38,0x2e,0x79,0x20,0x2a,0x20,0x38,0x29,0x5d,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20, + 0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61, + 0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x72,0x61,0x6e,0x64,0x28,0x74,0x68,0x72,0x65,0x61,0x64, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x63, + 0x6f,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x66,0x72,0x61,0x63,0x74,0x28,0x73,0x69,0x6e,0x28,0x64,0x6f,0x74,0x28,0x63,0x6f, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x32,0x2e,0x39,0x38,0x39,0x38, + 0x30,0x30,0x34,0x35,0x33,0x31,0x38,0x36,0x30,0x33,0x35,0x31,0x35,0x36,0x32,0x35, + 0x2c,0x20,0x37,0x38,0x2e,0x32,0x33,0x33,0x30,0x30,0x31,0x37,0x30,0x38,0x39,0x38, + 0x34,0x33,0x37,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x34,0x33,0x37,0x35,0x38,0x2e, + 0x35,0x34,0x36,0x38,0x37,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67, + 0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d, + 0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e, + 0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x70,0x6f,0x73,0x74,0x5f,0x70,0x72,0x6f, + 0x63,0x65,0x73,0x73,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31,0x37, + 0x34,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x64,0x6f,0x66,0x5f,0x63,0x6f, + 0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x32,0x37,0x31,0x20,0x5b,0x5b,0x62,0x75,0x66, + 0x66,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x70,0x70,0x74,0x65,0x78, + 0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c, 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74, - 0x3e,0x20,0x6c,0x75,0x74,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, - 0x34,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x70,0x70, - 0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29, - 0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x64,0x6f,0x66,0x5f, - 0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31,0x29, - 0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x62,0x6c,0x6f,0x6f, - 0x6d,0x5f,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28, - 0x32,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x6c,0x75, - 0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x72,0x28,0x33,0x29,0x5d,0x5d,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, - 0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x20,0x5b,0x5b,0x70, - 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d, - 0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20, - 0x5f,0x34,0x33,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x74,0x65,0x78,0x63,0x6f,0x6f, - 0x72,0x64,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x33,0x35, - 0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x34,0x33,0x34,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x35,0x32, - 0x20,0x3d,0x20,0x28,0x5f,0x34,0x33,0x34,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20, - 0x2b,0x20,0x28,0x5f,0x34,0x33,0x35,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x62, - 0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e, - 0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2b,0x20, + 0x3e,0x20,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x6c,0x75,0x74, + 0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x70,0x70,0x73,0x6d,0x70,0x20,0x5b, + 0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x73,0x6d,0x70, + 0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e, + 0x65,0x61,0x72,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29, + 0x5d,0x5d,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x46,0x72, + 0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e, + 0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x36,0x36,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x20,0x2d,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x37,0x20,0x3d,0x20,0x6c,0x65, + 0x6e,0x67,0x74,0x68,0x28,0x5f,0x31,0x36,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x38,0x34,0x20,0x3d,0x20,0x28,0x5f, + 0x31,0x36,0x36,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2b,0x20,0x28,0x5f,0x31, + 0x36,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c, 0x5f,0x64,0x69,0x73,0x74,0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65, - 0x6e,0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x34,0x36,0x30,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x36, - 0x31,0x20,0x3d,0x20,0x5f,0x34,0x36,0x30,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x36, - 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21, - 0x5f,0x34,0x36,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x36,0x38, - 0x20,0x3d,0x20,0x5f,0x34,0x36,0x30,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20, + 0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x37,0x34,0x2e,0x62,0x61,0x72,0x72,0x65,0x6c,0x5f,0x64,0x69,0x73,0x74, + 0x6f,0x72,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, + 0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x39,0x32, + 0x20,0x3d,0x20,0x5f,0x31,0x38,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x39,0x33,0x20,0x3d,0x20,0x5f, + 0x31,0x39,0x32,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32,0x30,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x39,0x33,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f,0x31, + 0x39,0x32,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x30,0x20,0x3d,0x20,0x5f,0x31, + 0x39,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x32,0x30,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x32, + 0x30,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x37,0x20,0x3d, + 0x20,0x5f,0x31,0x38,0x34,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x36,0x38, - 0x20,0x3d,0x20,0x5f,0x34,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x37, + 0x20,0x3d,0x20,0x5f,0x32,0x30,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, - 0x5f,0x34,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x21,0x5f,0x34,0x36,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x32,0x31,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x21,0x5f,0x32,0x30,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x34,0x37,0x35,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x2e,0x79,0x20,0x3c,0x20,0x30, + 0x32,0x31,0x34,0x20,0x3d,0x20,0x5f,0x31,0x38,0x34,0x2e,0x79,0x20,0x3e,0x20,0x31, 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x34,0x37,0x35,0x20,0x3d,0x20,0x5f,0x34,0x36,0x38,0x3b,0x0a,0x20,0x20, + 0x20,0x5f,0x32,0x31,0x34,0x20,0x3d,0x20,0x5f,0x32,0x30,0x37,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x34,0x37,0x35,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x2e, - 0x79,0x20,0x3e,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x38,0x32,0x20,0x3d,0x20,0x5f,0x34,0x37, - 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x38,0x32,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30, - 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x20,0x5f,0x34,0x39,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x28,0x5f,0x34,0x34,0x32,0x2e,0x63,0x68,0x72,0x6f,0x6d,0x61,0x74,0x69, - 0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74, - 0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x30,0x30,0x20,0x3d,0x20, - 0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x70,0x70,0x73, - 0x6d,0x70,0x2c,0x20,0x28,0x5f,0x34,0x35,0x32,0x20,0x2b,0x20,0x5f,0x34,0x39,0x38, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, - 0x35,0x30,0x37,0x20,0x3d,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x31,0x38, - 0x20,0x3d,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28, - 0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x34,0x35,0x32,0x20,0x2d,0x20,0x5f, - 0x34,0x39,0x38,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x34,0x35,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x35,0x32,0x36, - 0x2e,0x64,0x6f,0x66,0x5f,0x74,0x65,0x78,0x5f,0x77,0x69,0x64,0x74,0x68,0x2c,0x20, - 0x5f,0x35,0x32,0x36,0x2e,0x64,0x6f,0x66,0x5f,0x74,0x65,0x78,0x5f,0x68,0x65,0x69, - 0x67,0x68,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x35,0x33,0x35,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x5f, - 0x62,0x69,0x63,0x75,0x62,0x69,0x63,0x28,0x64,0x6f,0x66,0x5f,0x74,0x65,0x78,0x2c, - 0x20,0x64,0x6f,0x66,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x34,0x38,0x20,0x3d,0x20,0x70,0x6f,0x73, - 0x5f,0x62,0x75,0x66,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x64,0x6f,0x66,0x5f, - 0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x62,0x6c, + 0x69,0x66,0x20,0x28,0x5f,0x32,0x31,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, + 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x68,0x64, + 0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e, + 0x63,0x68,0x72,0x6f,0x6d,0x61,0x74,0x69,0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61, + 0x74,0x69,0x6f,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e, + 0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34, + 0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x37,0x34,0x2e,0x63,0x68,0x72,0x6f,0x6d,0x61, + 0x74,0x69,0x63,0x5f,0x61,0x62,0x65,0x72,0x72,0x61,0x74,0x69,0x6f,0x6e,0x5f,0x69, + 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x68,0x64,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28, + 0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x31,0x38,0x34,0x20,0x2b,0x20,0x5f, + 0x32,0x34,0x32,0x29,0x29,0x2e,0x78,0x2c,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38, + 0x34,0x29,0x2e,0x79,0x2c,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x28,0x5f,0x31,0x38,0x34,0x20, + 0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x29,0x2e,0x7a,0x20,0x2b,0x20,0x28,0x5f,0x32, + 0x37,0x31,0x2e,0x64,0x6f,0x66,0x5f,0x6d,0x69,0x6e,0x20,0x2a,0x20,0x39,0x2e,0x39, + 0x39,0x39,0x39,0x39,0x39,0x38,0x32,0x34,0x35,0x31,0x36,0x37,0x30,0x30,0x34,0x34, + 0x31,0x38,0x31,0x32,0x31,0x33,0x33,0x37,0x30,0x33,0x39,0x33,0x33,0x38,0x65,0x2d, + 0x31,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x5f,0x68,0x64,0x72,0x20,0x3d,0x20,0x70,0x70,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x29, + 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x32,0x39,0x32,0x20,0x3d,0x20,0x62,0x6c, 0x6f,0x6f,0x6d,0x5f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x62, - 0x6c,0x6f,0x6f,0x6d,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x34,0x35,0x32,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x38,0x35, - 0x20,0x3d,0x20,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f, - 0x35,0x30,0x30,0x2e,0x78,0x2c,0x20,0x5f,0x35,0x30,0x37,0x2e,0x79,0x2c,0x20,0x5f, - 0x35,0x31,0x38,0x2e,0x7a,0x29,0x2c,0x20,0x5f,0x35,0x33,0x35,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28, - 0x5f,0x35,0x32,0x36,0x2e,0x64,0x6f,0x66,0x5f,0x6d,0x69,0x6e,0x2c,0x20,0x5f,0x35, - 0x32,0x36,0x2e,0x64,0x6f,0x66,0x5f,0x6d,0x61,0x78,0x2c,0x20,0x61,0x62,0x73,0x28, - 0x5f,0x35,0x34,0x38,0x2e,0x7a,0x20,0x2b,0x20,0x5f,0x35,0x32,0x36,0x2e,0x64,0x6f, - 0x66,0x5f,0x70,0x6f,0x69,0x6e,0x74,0x29,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x5f, - 0x35,0x37,0x34,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x62, - 0x6c,0x6f,0x6f,0x6d,0x5f,0x61,0x6d,0x6f,0x75,0x6e,0x74,0x29,0x29,0x20,0x2a,0x20, - 0x5f,0x34,0x34,0x32,0x2e,0x65,0x78,0x70,0x6f,0x73,0x75,0x72,0x65,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f, - 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x74,0x6f,0x6e,0x65,0x6d,0x61,0x70, - 0x20,0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x35,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, - 0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x61,0x63,0x65,0x73,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69, - 0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x5f,0x35,0x38,0x35,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x36, - 0x30,0x35,0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72, - 0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x2d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x30,0x2e,0x35,0x29,0x29,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, - 0x61,0x78,0x28,0x5f,0x34,0x34,0x32,0x2e,0x63,0x6f,0x6e,0x74,0x72,0x61,0x73,0x74, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72, - 0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x66,0x61, - 0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x36,0x30,0x35,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x30,0x30,0x30,0x30, - 0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x33,0x39,0x39,0x39,0x38,0x30,0x35,0x34, - 0x35,0x30,0x34,0x33,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30, - 0x37,0x32,0x30,0x39,0x39,0x39,0x39,0x38,0x35,0x39,0x33,0x33,0x33,0x30,0x33,0x38, - 0x33,0x33,0x30,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x36, - 0x30,0x35,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x34,0x34,0x32,0x2e, - 0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x34,0x34,0x32,0x2e,0x64,0x69,0x74,0x68,0x65,0x72,0x5f,0x69,0x6e,0x74, - 0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x67,0x6c,0x5f, - 0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f, - 0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, - 0x69,0x6e,0x65,0x61,0x72,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28, - 0x62,0x61,0x79,0x65,0x72,0x38,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x20, - 0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x64,0x69,0x74,0x68,0x65,0x72,0x5f,0x69,0x6e, - 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x36, - 0x36,0x36,0x36,0x36,0x37,0x30,0x31,0x34,0x33,0x36,0x30,0x34,0x32,0x37,0x38,0x35, - 0x36,0x34,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31, - 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64, - 0x65,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x34,0x32,0x2e,0x6c, - 0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69, - 0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28, - 0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72, - 0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x28,0x66, - 0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, - 0x69,0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x66, - 0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c, - 0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x36,0x39,0x38,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f, - 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20,0x2a,0x20,0x31, - 0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x30,0x31,0x20,0x3d,0x20,0x66,0x6c, - 0x6f,0x6f,0x72,0x28,0x5f,0x36,0x39,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x37,0x31, - 0x32,0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f, - 0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x29, - 0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x37,0x31,0x38,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72, + 0x6c,0x6f,0x6f,0x6d,0x5f,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x34,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x30,0x33, + 0x20,0x3d,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x64,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x5f,0x68,0x64,0x72,0x20,0x2b,0x20,0x28,0x5f,0x32,0x39,0x32,0x2e,0x78,0x79, + 0x7a,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x62,0x6c,0x6f,0x6f,0x6d,0x5f,0x61, + 0x6d,0x6f,0x75,0x6e,0x74,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x65, + 0x78,0x70,0x6f,0x73,0x75,0x72,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69, + 0x6e,0x65,0x61,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, + 0x37,0x34,0x2e,0x74,0x6f,0x6e,0x65,0x6d,0x61,0x70,0x20,0x3e,0x20,0x30,0x2e,0x35, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f, + 0x33,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c, + 0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20, + 0x61,0x63,0x65,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f, + 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x5f,0x33,0x30, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x5f,0x33,0x32,0x33,0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c, + 0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x2d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x20,0x2a,0x20,0x66, + 0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f,0x31,0x37,0x34,0x2e,0x63,0x6f, + 0x6e,0x74,0x72,0x61,0x73,0x74,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61, + 0x72,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x33,0x32,0x33,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x32,0x31, + 0x32,0x35,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37, + 0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x33,0x39, + 0x39,0x39,0x38,0x30,0x35,0x34,0x35,0x30,0x34,0x33,0x39,0x34,0x35,0x33,0x31,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x30,0x39,0x39,0x39,0x39,0x38,0x35,0x39, + 0x33,0x33,0x33,0x30,0x33,0x38,0x33,0x33,0x30,0x30,0x37,0x38,0x31,0x32,0x35,0x29, + 0x29,0x29,0x2c,0x20,0x5f,0x33,0x32,0x33,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x5f,0x31,0x37,0x34,0x2e,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e, + 0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x64,0x69,0x74,0x68, + 0x65,0x72,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x3e,0x20,0x30, + 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x20,0x3d,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e, + 0x78,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f, + 0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x66, + 0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x63,0x6f,0x6c,0x6f,0x72, + 0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x2b,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x28,0x62,0x61,0x79,0x65,0x72,0x38,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x64,0x69,0x74, + 0x68,0x65,0x72,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x30,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x31,0x34,0x33,0x36, + 0x30,0x34,0x32,0x37,0x38,0x35,0x36,0x34,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x37,0x34,0x2e,0x6c, + 0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x37,0x34,0x2e,0x6c,0x75,0x74,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d, + 0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f, + 0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6c,0x75,0x74, + 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x70,0x70,0x73,0x6d,0x70,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c, + 0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x7a,0x20, + 0x2a,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35, + 0x29,0x20,0x2b,0x20,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72, 0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x78,0x20,0x2a,0x20, - 0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65, - 0x61,0x72,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x28,0x28,0x5f,0x37,0x30,0x31,0x20,0x2a, - 0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x37,0x31,0x38,0x29,0x20,0x2b, - 0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36, - 0x32,0x35,0x2c,0x20,0x5f,0x37,0x31,0x32,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20, - 0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c, - 0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x28, - 0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e,0x28,0x5f,0x37,0x30,0x31,0x20, - 0x2b,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31, - 0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x37,0x31,0x38,0x29,0x20,0x2b,0x20,0x30, - 0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35, - 0x2c,0x20,0x5f,0x37,0x31,0x32,0x29,0x29,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x5f,0x36,0x39,0x38,0x20,0x2d,0x20,0x5f,0x37,0x30,0x31, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x63, - 0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x28,0x70,0x6f,0x77, - 0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65, - 0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x20,0x2f, - 0x20,0x5f,0x34,0x34,0x32,0x2e,0x67,0x61,0x6d,0x6d,0x61,0x29,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74, - 0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x34,0x34,0x32,0x2e,0x76,0x69,0x67, - 0x6e,0x65,0x74,0x74,0x65,0x5f,0x72,0x61,0x64,0x69,0x75,0x73,0x2c,0x20,0x5f,0x34, - 0x33,0x35,0x29,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x76,0x69,0x67,0x6e,0x65, - 0x74,0x74,0x65,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x29, - 0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x73,0x69,0x6e, - 0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20, - 0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73, - 0x5f,0x64,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, - 0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x34,0x34,0x32,0x2e,0x73, - 0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69, - 0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x74,0x65, - 0x78,0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x5f,0x38,0x30,0x38,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f, - 0x73,0x72,0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x38,0x31,0x30,0x20,0x3d,0x20,0x5f,0x38,0x30,0x38,0x20,0x2b,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x72,0x61,0x6e,0x64,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x5f,0x34, - 0x34,0x32,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72,0x61,0x69,0x6e,0x5f,0x69,0x6e, - 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f, - 0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d,0x20,0x5f,0x38,0x31,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x38,0x31,0x30,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x00, + 0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x33,0x39,0x30,0x36, + 0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72, + 0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a,0x20, + 0x31,0x35,0x2e,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x29, + 0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x36,0x20,0x3d,0x20, + 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72, + 0x2e,0x7a,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31, + 0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x34,0x31,0x36,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x34,0x33,0x30,0x20,0x3d,0x20,0x28,0x28,0x63,0x6f,0x6c,0x6f, + 0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2e,0x79,0x20,0x2a, + 0x20,0x31,0x35,0x2e,0x30,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20, + 0x30,0x2e,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x33,0x36,0x20,0x3d, + 0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64,0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61, + 0x72,0x2e,0x78,0x20,0x2a,0x20,0x31,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x6c, + 0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x6c,0x75,0x74,0x5f,0x6c,0x69, + 0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x28,0x28,0x28, + 0x5f,0x34,0x31,0x39,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f, + 0x34,0x33,0x36,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x30,0x30,0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x34,0x33,0x30,0x29,0x29, + 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x28,0x6c,0x75,0x74,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x32,0x28,0x28,0x28,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x69,0x6e, + 0x28,0x5f,0x34,0x31,0x39,0x20,0x2b,0x20,0x31,0x2e,0x30,0x2c,0x20,0x31,0x35,0x2e, + 0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x5f,0x34,0x33, + 0x36,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30, + 0x33,0x39,0x30,0x36,0x32,0x35,0x2c,0x20,0x5f,0x34,0x33,0x30,0x29,0x29,0x2e,0x78, + 0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x34,0x31,0x36,0x20, + 0x2d,0x20,0x5f,0x34,0x31,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20, + 0x3d,0x20,0x28,0x70,0x6f,0x77,0x72,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x6c,0x64, + 0x72,0x5f,0x6c,0x69,0x6e,0x65,0x61,0x72,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x5f,0x31,0x37,0x34,0x2e,0x67,0x61,0x6d,0x6d, + 0x61,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x73,0x6d, + 0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x31, + 0x37,0x34,0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x72,0x61,0x64,0x69, + 0x75,0x73,0x2c,0x20,0x5f,0x31,0x36,0x37,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34, + 0x2e,0x76,0x69,0x67,0x6e,0x65,0x74,0x74,0x65,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73, + 0x69,0x74,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x28,0x28,0x28,0x73,0x69,0x6e,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f, + 0x6f,0x72,0x64,0x2e,0x79,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x73,0x63,0x61, + 0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x64,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20, + 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20, + 0x5f,0x31,0x37,0x34,0x2e,0x73,0x63,0x61,0x6e,0x6c,0x69,0x6e,0x65,0x73,0x5f,0x69, + 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, + 0x20,0x69,0x6e,0x2e,0x74,0x65,0x78,0x63,0x6f,0x6f,0x72,0x64,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x32,0x36,0x20,0x3d,0x20, + 0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x32,0x38,0x20,0x3d,0x20,0x5f,0x35, + 0x32,0x36,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x72,0x61,0x6e, + 0x64,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2d,0x20,0x30,0x2e,0x35, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x34,0x2e,0x66,0x69,0x6c,0x6d,0x5f,0x67,0x72, + 0x61,0x69,0x6e,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x5f,0x73,0x72,0x67,0x62,0x20,0x3d, + 0x20,0x5f,0x35,0x32,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x34,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f, + 0x35,0x32,0x38,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x29,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; postprocess_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; @@ -2257,49 +1780,49 @@ postprocess_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[0].size = 64; desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "_442.exposure"; + desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "_174.exposure"; desc.uniform_blocks[0].glsl_uniforms[1].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[1].glsl_name = "_442.contrast"; + desc.uniform_blocks[0].glsl_uniforms[1].glsl_name = "_174.contrast"; desc.uniform_blocks[0].glsl_uniforms[2].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[2].glsl_name = "_442.saturation"; + desc.uniform_blocks[0].glsl_uniforms[2].glsl_name = "_174.saturation"; desc.uniform_blocks[0].glsl_uniforms[3].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[3].glsl_name = "_442.gamma"; + desc.uniform_blocks[0].glsl_uniforms[3].glsl_name = "_174.gamma"; desc.uniform_blocks[0].glsl_uniforms[4].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[4].glsl_name = "_442.tonemap"; + desc.uniform_blocks[0].glsl_uniforms[4].glsl_name = "_174.tonemap"; desc.uniform_blocks[0].glsl_uniforms[5].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[5].glsl_name = "_442.vignette_intensity"; + desc.uniform_blocks[0].glsl_uniforms[5].glsl_name = "_174.vignette_intensity"; desc.uniform_blocks[0].glsl_uniforms[6].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[6].glsl_name = "_442.vignette_radius"; + desc.uniform_blocks[0].glsl_uniforms[6].glsl_name = "_174.vignette_radius"; desc.uniform_blocks[0].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[7].glsl_name = "_442.scanlines_intensity"; + desc.uniform_blocks[0].glsl_uniforms[7].glsl_name = "_174.scanlines_intensity"; desc.uniform_blocks[0].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[8].glsl_name = "_442.scanlines_density"; + desc.uniform_blocks[0].glsl_uniforms[8].glsl_name = "_174.scanlines_density"; desc.uniform_blocks[0].glsl_uniforms[9].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[9].glsl_name = "_442.chromatic_aberration_intensity"; + desc.uniform_blocks[0].glsl_uniforms[9].glsl_name = "_174.chromatic_aberration_intensity"; desc.uniform_blocks[0].glsl_uniforms[10].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[10].glsl_name = "_442.film_grain_intensity"; + desc.uniform_blocks[0].glsl_uniforms[10].glsl_name = "_174.film_grain_intensity"; desc.uniform_blocks[0].glsl_uniforms[11].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[11].glsl_name = "_442.barrel_distortion_intensity"; + desc.uniform_blocks[0].glsl_uniforms[11].glsl_name = "_174.barrel_distortion_intensity"; desc.uniform_blocks[0].glsl_uniforms[12].type = .INT; desc.uniform_blocks[0].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[12].glsl_name = "_442.lut_mode"; + desc.uniform_blocks[0].glsl_uniforms[12].glsl_name = "_174.lut_mode"; desc.uniform_blocks[0].glsl_uniforms[13].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[13].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[13].glsl_name = "_442.dither_intensity"; + desc.uniform_blocks[0].glsl_uniforms[13].glsl_name = "_174.dither_intensity"; desc.uniform_blocks[0].glsl_uniforms[14].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[14].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[14].glsl_name = "_442.bloom_amount"; + desc.uniform_blocks[0].glsl_uniforms[14].glsl_name = "_174.bloom_amount"; desc.uniform_blocks[1].stage = .FRAGMENT; desc.uniform_blocks[1].layout = .STD140; desc.uniform_blocks[1].size = 32; @@ -2318,46 +1841,28 @@ postprocess_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.images[2].multisampled = false; desc.images[2].image_type = ._2D; desc.images[2].sample_type = .FLOAT; - desc.images[3].stage = .FRAGMENT; - desc.images[3].multisampled = false; - desc.images[3].image_type = ._2D; - desc.images[3].sample_type = .FLOAT; - desc.images[4].stage = .FRAGMENT; - desc.images[4].multisampled = false; - desc.images[4].image_type = ._2D; - desc.images[4].sample_type = .FLOAT; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[1].stage = .FRAGMENT; desc.samplers[1].sampler_type = .FILTERING; desc.samplers[2].stage = .FRAGMENT; desc.samplers[2].sampler_type = .FILTERING; - desc.samplers[3].stage = .FRAGMENT; - desc.samplers[3].sampler_type = .FILTERING; desc.image_sampler_pairs[0].stage = .FRAGMENT; desc.image_sampler_pairs[0].image_slot = 0; desc.image_sampler_pairs[0].sampler_slot = 0; desc.image_sampler_pairs[0].glsl_name = "pptex_ppsmp"; desc.image_sampler_pairs[1].stage = .FRAGMENT; - desc.image_sampler_pairs[1].image_slot = 3; - desc.image_sampler_pairs[1].sampler_slot = 3; - desc.image_sampler_pairs[1].glsl_name = "dof_tex_dof_smp"; + desc.image_sampler_pairs[1].image_slot = 2; + desc.image_sampler_pairs[1].sampler_slot = 2; + desc.image_sampler_pairs[1].glsl_name = "bloom_tex_bloom_smp"; desc.image_sampler_pairs[2].stage = .FRAGMENT; - desc.image_sampler_pairs[2].image_slot = 4; - desc.image_sampler_pairs[2].sampler_slot = 3; - desc.image_sampler_pairs[2].glsl_name = "pos_buf_dof_smp"; + desc.image_sampler_pairs[2].image_slot = 1; + desc.image_sampler_pairs[2].sampler_slot = 0; + desc.image_sampler_pairs[2].glsl_name = "lut_ppsmp"; desc.image_sampler_pairs[3].stage = .FRAGMENT; - desc.image_sampler_pairs[3].image_slot = 2; - desc.image_sampler_pairs[3].sampler_slot = 2; - desc.image_sampler_pairs[3].glsl_name = "bloom_tex_bloom_smp"; - desc.image_sampler_pairs[4].stage = .FRAGMENT; - desc.image_sampler_pairs[4].image_slot = 1; - desc.image_sampler_pairs[4].sampler_slot = 0; - desc.image_sampler_pairs[4].glsl_name = "lut_ppsmp"; - desc.image_sampler_pairs[5].stage = .FRAGMENT; - desc.image_sampler_pairs[5].image_slot = 1; - desc.image_sampler_pairs[5].sampler_slot = 1; - desc.image_sampler_pairs[5].glsl_name = "lut_lut_linear"; + desc.image_sampler_pairs[3].image_slot = 1; + desc.image_sampler_pairs[3].sampler_slot = 1; + desc.image_sampler_pairs[3].glsl_name = "lut_lut_linear"; case .GLES3; desc.vertex_func.source = xx *vs_pp_source_glsl300es; desc.vertex_func.entry = "main"; @@ -2372,49 +1877,49 @@ postprocess_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[0].size = 64; desc.uniform_blocks[0].glsl_uniforms[0].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "_442.exposure"; + desc.uniform_blocks[0].glsl_uniforms[0].glsl_name = "_174.exposure"; desc.uniform_blocks[0].glsl_uniforms[1].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[1].glsl_name = "_442.contrast"; + desc.uniform_blocks[0].glsl_uniforms[1].glsl_name = "_174.contrast"; desc.uniform_blocks[0].glsl_uniforms[2].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[2].glsl_name = "_442.saturation"; + desc.uniform_blocks[0].glsl_uniforms[2].glsl_name = "_174.saturation"; desc.uniform_blocks[0].glsl_uniforms[3].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[3].glsl_name = "_442.gamma"; + desc.uniform_blocks[0].glsl_uniforms[3].glsl_name = "_174.gamma"; desc.uniform_blocks[0].glsl_uniforms[4].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[4].glsl_name = "_442.tonemap"; + desc.uniform_blocks[0].glsl_uniforms[4].glsl_name = "_174.tonemap"; desc.uniform_blocks[0].glsl_uniforms[5].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[5].glsl_name = "_442.vignette_intensity"; + desc.uniform_blocks[0].glsl_uniforms[5].glsl_name = "_174.vignette_intensity"; desc.uniform_blocks[0].glsl_uniforms[6].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[6].glsl_name = "_442.vignette_radius"; + desc.uniform_blocks[0].glsl_uniforms[6].glsl_name = "_174.vignette_radius"; desc.uniform_blocks[0].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[7].glsl_name = "_442.scanlines_intensity"; + desc.uniform_blocks[0].glsl_uniforms[7].glsl_name = "_174.scanlines_intensity"; desc.uniform_blocks[0].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[8].glsl_name = "_442.scanlines_density"; + desc.uniform_blocks[0].glsl_uniforms[8].glsl_name = "_174.scanlines_density"; desc.uniform_blocks[0].glsl_uniforms[9].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[9].glsl_name = "_442.chromatic_aberration_intensity"; + desc.uniform_blocks[0].glsl_uniforms[9].glsl_name = "_174.chromatic_aberration_intensity"; desc.uniform_blocks[0].glsl_uniforms[10].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[10].glsl_name = "_442.film_grain_intensity"; + desc.uniform_blocks[0].glsl_uniforms[10].glsl_name = "_174.film_grain_intensity"; desc.uniform_blocks[0].glsl_uniforms[11].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[11].glsl_name = "_442.barrel_distortion_intensity"; + desc.uniform_blocks[0].glsl_uniforms[11].glsl_name = "_174.barrel_distortion_intensity"; desc.uniform_blocks[0].glsl_uniforms[12].type = .INT; desc.uniform_blocks[0].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[12].glsl_name = "_442.lut_mode"; + desc.uniform_blocks[0].glsl_uniforms[12].glsl_name = "_174.lut_mode"; desc.uniform_blocks[0].glsl_uniforms[13].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[13].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[13].glsl_name = "_442.dither_intensity"; + desc.uniform_blocks[0].glsl_uniforms[13].glsl_name = "_174.dither_intensity"; desc.uniform_blocks[0].glsl_uniforms[14].type = .FLOAT; desc.uniform_blocks[0].glsl_uniforms[14].array_count = 0; - desc.uniform_blocks[0].glsl_uniforms[14].glsl_name = "_442.bloom_amount"; + desc.uniform_blocks[0].glsl_uniforms[14].glsl_name = "_174.bloom_amount"; desc.uniform_blocks[1].stage = .FRAGMENT; desc.uniform_blocks[1].layout = .STD140; desc.uniform_blocks[1].size = 32; @@ -2433,46 +1938,28 @@ postprocess_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.images[2].multisampled = false; desc.images[2].image_type = ._2D; desc.images[2].sample_type = .FLOAT; - desc.images[3].stage = .FRAGMENT; - desc.images[3].multisampled = false; - desc.images[3].image_type = ._2D; - desc.images[3].sample_type = .FLOAT; - desc.images[4].stage = .FRAGMENT; - desc.images[4].multisampled = false; - desc.images[4].image_type = ._2D; - desc.images[4].sample_type = .FLOAT; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[1].stage = .FRAGMENT; desc.samplers[1].sampler_type = .FILTERING; desc.samplers[2].stage = .FRAGMENT; desc.samplers[2].sampler_type = .FILTERING; - desc.samplers[3].stage = .FRAGMENT; - desc.samplers[3].sampler_type = .FILTERING; desc.image_sampler_pairs[0].stage = .FRAGMENT; desc.image_sampler_pairs[0].image_slot = 0; desc.image_sampler_pairs[0].sampler_slot = 0; desc.image_sampler_pairs[0].glsl_name = "pptex_ppsmp"; desc.image_sampler_pairs[1].stage = .FRAGMENT; - desc.image_sampler_pairs[1].image_slot = 3; - desc.image_sampler_pairs[1].sampler_slot = 3; - desc.image_sampler_pairs[1].glsl_name = "dof_tex_dof_smp"; + desc.image_sampler_pairs[1].image_slot = 2; + desc.image_sampler_pairs[1].sampler_slot = 2; + desc.image_sampler_pairs[1].glsl_name = "bloom_tex_bloom_smp"; desc.image_sampler_pairs[2].stage = .FRAGMENT; - desc.image_sampler_pairs[2].image_slot = 4; - desc.image_sampler_pairs[2].sampler_slot = 3; - desc.image_sampler_pairs[2].glsl_name = "pos_buf_dof_smp"; + desc.image_sampler_pairs[2].image_slot = 1; + desc.image_sampler_pairs[2].sampler_slot = 0; + desc.image_sampler_pairs[2].glsl_name = "lut_ppsmp"; desc.image_sampler_pairs[3].stage = .FRAGMENT; - desc.image_sampler_pairs[3].image_slot = 2; - desc.image_sampler_pairs[3].sampler_slot = 2; - desc.image_sampler_pairs[3].glsl_name = "bloom_tex_bloom_smp"; - desc.image_sampler_pairs[4].stage = .FRAGMENT; - desc.image_sampler_pairs[4].image_slot = 1; - desc.image_sampler_pairs[4].sampler_slot = 0; - desc.image_sampler_pairs[4].glsl_name = "lut_ppsmp"; - desc.image_sampler_pairs[5].stage = .FRAGMENT; - desc.image_sampler_pairs[5].image_slot = 1; - desc.image_sampler_pairs[5].sampler_slot = 1; - desc.image_sampler_pairs[5].glsl_name = "lut_lut_linear"; + desc.image_sampler_pairs[3].image_slot = 1; + desc.image_sampler_pairs[3].sampler_slot = 1; + desc.image_sampler_pairs[3].glsl_name = "lut_lut_linear"; case .METAL_MACOS; desc.vertex_func.source = xx *vs_pp_source_metal_macos; desc.vertex_func.entry = "main0"; @@ -2497,52 +1984,33 @@ postprocess_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.images[1].multisampled = false; desc.images[1].image_type = ._2D; desc.images[1].sample_type = .FLOAT; - desc.images[1].msl_texture_n = 4; + desc.images[1].msl_texture_n = 2; desc.images[2].stage = .FRAGMENT; desc.images[2].multisampled = false; desc.images[2].image_type = ._2D; desc.images[2].sample_type = .FLOAT; - desc.images[2].msl_texture_n = 3; - desc.images[3].stage = .FRAGMENT; - desc.images[3].multisampled = false; - desc.images[3].image_type = ._2D; - desc.images[3].sample_type = .FLOAT; - desc.images[3].msl_texture_n = 1; - desc.images[4].stage = .FRAGMENT; - desc.images[4].multisampled = false; - desc.images[4].image_type = ._2D; - desc.images[4].sample_type = .FLOAT; - desc.images[4].msl_texture_n = 2; + desc.images[2].msl_texture_n = 1; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[0].msl_sampler_n = 0; desc.samplers[1].stage = .FRAGMENT; desc.samplers[1].sampler_type = .FILTERING; - desc.samplers[1].msl_sampler_n = 3; + desc.samplers[1].msl_sampler_n = 2; desc.samplers[2].stage = .FRAGMENT; desc.samplers[2].sampler_type = .FILTERING; - desc.samplers[2].msl_sampler_n = 2; - desc.samplers[3].stage = .FRAGMENT; - desc.samplers[3].sampler_type = .FILTERING; - desc.samplers[3].msl_sampler_n = 1; + desc.samplers[2].msl_sampler_n = 1; desc.image_sampler_pairs[0].stage = .FRAGMENT; desc.image_sampler_pairs[0].image_slot = 0; desc.image_sampler_pairs[0].sampler_slot = 0; desc.image_sampler_pairs[1].stage = .FRAGMENT; - desc.image_sampler_pairs[1].image_slot = 3; - desc.image_sampler_pairs[1].sampler_slot = 3; + desc.image_sampler_pairs[1].image_slot = 2; + desc.image_sampler_pairs[1].sampler_slot = 2; desc.image_sampler_pairs[2].stage = .FRAGMENT; - desc.image_sampler_pairs[2].image_slot = 4; - desc.image_sampler_pairs[2].sampler_slot = 3; + desc.image_sampler_pairs[2].image_slot = 1; + desc.image_sampler_pairs[2].sampler_slot = 0; desc.image_sampler_pairs[3].stage = .FRAGMENT; - desc.image_sampler_pairs[3].image_slot = 2; - desc.image_sampler_pairs[3].sampler_slot = 2; - desc.image_sampler_pairs[4].stage = .FRAGMENT; - desc.image_sampler_pairs[4].image_slot = 1; - desc.image_sampler_pairs[4].sampler_slot = 0; - desc.image_sampler_pairs[5].stage = .FRAGMENT; - desc.image_sampler_pairs[5].image_slot = 1; - desc.image_sampler_pairs[5].sampler_slot = 1; + desc.image_sampler_pairs[3].image_slot = 1; + desc.image_sampler_pairs[3].sampler_slot = 1; } return desc; } diff --git a/src/shaders/jai/shader_trile.jai b/src/shaders/jai/shader_trile.jai index 0b342ee..15dc856 100644 --- a/src/shaders/jai/shader_trile.jai +++ b/src/shaders/jai/shader_trile.jai @@ -37,6 +37,11 @@ Sample type: .FLOAT Multisampled: false Bind slot: IMG_rdm_atlas => 4 + Image 'sh_chunk': + Image type: ._2D + Sample type: .FLOAT + Multisampled: false + Bind slot: IMG_sh_chunk => 6 Image 'triletex': Image type: ._2D Sample type: .FLOAT @@ -76,6 +81,7 @@ UB_trile_world_config :: 1; UB_trile_fs_params :: 3; IMG_rdm_lookup :: 3; IMG_rdm_atlas :: 4; +IMG_sh_chunk :: 6; IMG_triletex :: 0; IMG_shadowtex :: 2; IMG_ssaotex :: 1; @@ -129,6 +135,8 @@ Trile_Fs_Params :: struct { is_preview: s32; rdm_tint: [3]float; rdm_diff_saturation: float; + sh_enabled: s32; + _: [12]u8; }; /* #version 430 @@ -437,7 +445,7 @@ vs_trile_source_glsl430 := u8.[ int hsv_lighting; }; - uniform trile_world_config _126; + uniform trile_world_config _142; struct trile_fs_params { @@ -454,9 +462,10 @@ vs_trile_source_glsl430 := u8.[ int is_preview; vec3 rdm_tint; float rdm_diff_saturation; + int sh_enabled; }; - uniform trile_fs_params _934; + uniform trile_fs_params _1246; layout(binding = 16) uniform sampler2D triletex_trilesmp; layout(binding = 17) uniform sampler2DShadow shadowtex_shadowsmp; @@ -464,6 +473,7 @@ vs_trile_source_glsl430 := u8.[ layout(binding = 19) uniform sampler2D ssaotex_rdmsmp; layout(binding = 20) uniform sampler2D rdm_atlas_rdmsmp; layout(binding = 21) uniform sampler2D brdf_lut_rdmsmp; + layout(binding = 22) uniform sampler2D sh_chunk_rdmsmp; layout(location = 2) in vec3 vpos; layout(location = 3) in vec3 ipos; @@ -482,27 +492,27 @@ vs_trile_source_glsl430 := u8.[ float DistributionGGX(vec3 N, vec3 H, float roughness) { - float _209 = roughness * roughness; - float _213 = _209 * _209; - float _218 = max(dot(N, H), 0.0); - float _226 = ((_218 * _218) * (_213 - 1.0)) + 1.0; - return _213 / ((3.1415927410125732421875 * _226) * _226); + float _225 = roughness * roughness; + float _229 = _225 * _225; + float _234 = max(dot(N, H), 0.0); + float _242 = ((_234 * _234) * (_229 - 1.0)) + 1.0; + return _229 / ((3.1415927410125732421875 * _242) * _242); } float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness) { - float _238 = roughness + 1.0; - float _244 = (_238 * _238) * 0.125; - float _249 = max(dot(N, V), 0.0); - float _254 = max(dot(N, L), 0.0); - float _259 = 1.0 - _244; - return (_254 / ((_254 * _259) + _244)) * (_249 / ((_249 * _259) + _244)); + float _254 = roughness + 1.0; + float _260 = (_254 * _254) * 0.125; + float _265 = max(dot(N, V), 0.0); + float _270 = max(dot(N, L), 0.0); + float _275 = 1.0 - _260; + return (_270 / ((_270 * _275) + _260)) * (_265 / ((_265 * _275) + _260)); } vec4 rdm_atlas_rect(ivec3 local_pos, int roughness) { - int _441 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); - return texelFetch(rdm_lookup_trilesmp, ivec2(_441 % 512, _441 / 512), 0); + int _457 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); + return texelFetch(rdm_lookup_trilesmp, ivec2(_457 % 512, _457 / 512), 0); } vec3 FresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness) @@ -512,35 +522,35 @@ vs_trile_source_glsl430 := u8.[ int rdm_face_from_normal(vec3 N) { - vec3 _377 = abs(N); - float _379 = _377.y; - float _381 = _377.x; - bool _382 = _379 >= _381; - bool _390; - if (_382) + vec3 _393 = abs(N); + float _395 = _393.y; + float _397 = _393.x; + bool _398 = _395 >= _397; + bool _406; + if (_398) { - _390 = _379 >= _377.z; + _406 = _395 >= _393.z; } else { - _390 = _382; + _406 = _398; } - if (_390) + if (_406) { return (N.y >= 0.0) ? 0 : 1; } - float _399 = _377.z; - bool _402 = _399 >= _381; - bool _410; - if (_402) + float _415 = _393.z; + bool _418 = _415 >= _397; + bool _426; + if (_418) { - _410 = _399 >= _379; + _426 = _415 >= _395; } else { - _410 = _402; + _426 = _418; } - if (_410) + if (_426) { return (N.z >= 0.0) ? 2 : 3; } @@ -557,44 +567,44 @@ vs_trile_source_glsl430 := u8.[ vec3 vc = v; if ((face / 2) == 0) { - vec3 _1683 = vc; - _1683.z = v.y; - _1683.y = v.z; - vc = _1683; + vec3 _2088 = vc; + _2088.z = v.y; + _2088.y = v.z; + vc = _2088; } if ((face / 2) == 2) { - vec3 _1687 = vc; - _1687.z = v.x; - _1687.x = v.z; - vc = _1687; + vec3 _2092 = vc; + _2092.z = v.x; + _2092.x = v.z; + vc = _2092; } if ((face % 2) == 1) { - vec3 _1691 = vc; - _1691.z = _1691.z * (-1.0); - vc = _1691; + vec3 _2096 = vc; + _2096.z = _2096.z * (-1.0); + vc = _2096; } - vec2 _357 = vc.xy * (1.0 / ((abs(vc.x) + abs(vc.y)) + vc.z)); - float _359 = _357.x; - float _361 = _357.y; - return (vec2(_359 + _361, _359 - _361) * 0.5) + vec2(0.5); + vec2 _373 = vc.xy * (1.0 / ((abs(vc.x) + abs(vc.y)) + vc.z)); + float _375 = _373.x; + float _377 = _373.y; + return (vec2(_375 + _377, _375 - _377) * 0.5) + vec2(0.5); } vec3 sky(vec3 skypos, vec3 sunpos) { - vec3 _117 = normalize(skypos); - float _122 = dot(_117, normalize(sunpos)); - float _137 = _117.y; - vec3 result = mix(_126.skyBase, _126.skyTop, vec3(clamp(_137 * 2.0, 0.0, 0.699999988079071044921875))) + ((_126.sunHalo * clamp((_122 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); - if (_122 > 0.99989998340606689453125) + vec3 _133 = normalize(skypos); + float _138 = dot(_133, normalize(sunpos)); + float _153 = _133.y; + vec3 result = mix(_142.skyBase, _142.skyTop, vec3(clamp(_153 * 2.0, 0.0, 0.699999988079071044921875))) + ((_142.sunHalo * clamp((_138 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); + if (_138 > 0.99989998340606689453125) { - result = _126.sunDisk; + result = _142.sunDisk; } - vec3 _186 = result; - vec3 _187 = _186 + (mix(_126.horizonHalo, vec3(0.0), vec3(clamp(abs(_137) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); - result = _187; - return _187; + vec3 _202 = result; + vec3 _203 = _202 + (mix(_142.horizonHalo, vec3(0.0), vec3(clamp(abs(_153) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); + result = _203; + return _203; } vec3 sky_reflect(inout vec3 R, vec3 sunpos) @@ -610,47 +620,47 @@ vs_trile_source_glsl430 := u8.[ vec3 rdm_spec_raymarch(vec3 N, vec3 V, vec3 diff, int face, ivec2 faceOffset, int rdmSize, vec2 atlasInvSize) { - vec3 _496 = reflect(V, N); + vec3 _512 = reflect(V, N); for (int i = 0; i < 40; i++) { - vec3 _526 = diff + (_496 * (0.5 * float(i + 1))); - if (dot(_526, N) < 0.0) + vec3 _542 = diff + (_512 * (0.5 * float(i + 1))); + if (dot(_542, N) < 0.0) { continue; } - vec3 param = normalize(_526); + vec3 param = normalize(_542); int param_1 = face; - vec4 _560 = texture(rdm_atlas_rdmsmp, (vec2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize, 0.0); - float _563 = length(_526); - float _566 = _560.w; - bool _567 = _566 > 0.0; - bool _574; - if (_567) - { - _574 = _566 < _563; - } - else - { - _574 = _567; - } - bool _583; - if (_574) - { - _583 = (_566 + 0.5) > _563; - } - else - { - _583 = _574; - } + vec4 _576 = texture(rdm_atlas_rdmsmp, (vec2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize, 0.0); + float _579 = length(_542); + float _582 = _576.w; + bool _583 = _582 > 0.0; + bool _590; if (_583) { - return _560.xyz; + _590 = _582 < _579; + } + else + { + _590 = _583; + } + bool _599; + if (_590) + { + _599 = (_582 + 0.5) > _579; + } + else + { + _599 = _590; + } + if (_599) + { + return _576.xyz; } } - vec3 param_2 = _496; - vec3 param_3 = _126.sunPosition; - vec3 _597 = sky_reflect(param_2, param_3); - return _597; + vec3 param_2 = _512; + vec3 param_3 = _142.sunPosition; + vec3 _613 = sky_reflect(param_2, param_3); + return _613; } vec3 rdm_spec_single(vec3 N, vec3 V, vec3 diff, int face, ivec2 faceOffset, int rdmSize, vec2 atlasInvSize) @@ -660,6 +670,85 @@ vs_trile_source_glsl430 := u8.[ return texture(rdm_atlas_rdmsmp, (vec2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize).xyz; } + float sh_probe_energy(ivec3 probe) + { + int _1048 = probe.x * 3; + int _1055 = (probe.z * 64) + probe.y; + return max(0.88622701168060302734375 * ((texelFetch(sh_chunk_rdmsmp, ivec2(_1048, _1055), 0).x + texelFetch(sh_chunk_rdmsmp, ivec2(_1048 + 1, _1055), 0).x) + texelFetch(sh_chunk_rdmsmp, ivec2(_1048 + 2, _1055), 0).x), 0.0); + } + + vec3 sh_eval(ivec3 probe, vec3 N) + { + int _926 = probe.x * 3; + int _934 = (probe.z * 64) + probe.y; + vec4 _944 = texelFetch(sh_chunk_rdmsmp, ivec2(_926, _934), 0); + vec4 _954 = texelFetch(sh_chunk_rdmsmp, ivec2(_926 + 1, _934), 0); + vec4 _964 = texelFetch(sh_chunk_rdmsmp, ivec2(_926 + 2, _934), 0); + return max(vec3((0.88622701168060302734375 * _944.x) + (1.02332699298858642578125 * (((_944.w * N.x) + (_944.y * N.y)) + (_944.z * N.z))), (0.88622701168060302734375 * _954.x) + (1.02332699298858642578125 * (((_954.w * N.x) + (_954.y * N.y)) + (_954.z * N.z))), (0.88622701168060302734375 * _964.x) + (1.02332699298858642578125 * (((_964.w * N.x) + (_964.y * N.y)) + (_964.z * N.z)))) * vec3(0.3183098733425140380859375), vec3(0.0)); + } + + vec3 sh_eval_trilinear(ivec3 p0, ivec3 p1, vec3 t, vec3 N) + { + float wx[2] = float[](1.0 - t.x, t.x); + float wy[2] = float[](1.0 - t.y, t.y); + float wz[2] = float[](1.0 - t.z, t.z); + vec3 result = vec3(0.0); + float total_w = 0.0; + int _1149; + int _1160; + int _1171; + for (int iz = 0; iz < 2; iz++) + { + for (int iy = 0; iy < 2; iy++) + { + for (int ix = 0; ix < 2; ix++) + { + if (ix == 0) + { + _1149 = p0.x; + } + else + { + _1149 = p1.x; + } + if (iy == 0) + { + _1160 = p0.y; + } + else + { + _1160 = p1.y; + } + if (iz == 0) + { + _1171 = p0.z; + } + else + { + _1171 = p1.z; + } + ivec3 _1180 = ivec3(_1149, _1160, _1171); + ivec3 param = _1180; + float _1196 = ((wx[ix] * wy[iy]) * wz[iz]) * sh_probe_energy(param); + ivec3 param_1 = _1180; + vec3 param_2 = N; + result += (sh_eval(param_1, param_2) * _1196); + total_w += _1196; + } + } + } + vec3 _1218; + if (total_w > 0.001000000047497451305389404296875) + { + _1218 = result / vec3(total_w); + } + else + { + _1218 = vec3(0.0); + } + return _1218; + } + int isign(float f) { return (f < 0.0) ? (-1) : 1; @@ -669,22 +758,22 @@ vs_trile_source_glsl430 := u8.[ { ivec3 param = local_pos; int param_1 = 7; - vec4 _639 = rdm_atlas_rect(param, param_1); - if (_639.z <= 0.0) + vec4 _655 = rdm_atlas_rect(param, param_1); + if (_655.z <= 0.0) { return fallback; } vec3 param_2 = N; - int _650 = rdm_face_from_normal(param_2); - vec4 param_3 = _639; - int param_4 = _650; + int _666 = rdm_face_from_normal(param_2); + vec4 param_3 = _655; + int param_4 = _666; int param_5 = 2; ivec2 param_6 = textureSize(rdm_atlas_rdmsmp, 0); - ivec2 _667 = rdm_face_offset(param_3, param_4, param_5, param_6); + ivec2 _683 = rdm_face_offset(param_3, param_4, param_5, param_6); vec3 param_7 = N; - int param_8 = _650; - vec2 _673 = rdm_hemioct(param_7, param_8); - return texelFetch(rdm_atlas_rdmsmp, ivec2(_667.x + int(_673.x * 2.0), _667.y + int(_673.y * 2.0)), 0).xyz; + int param_8 = _666; + vec2 _689 = rdm_hemioct(param_7, param_8); + return texelFetch(rdm_atlas_rdmsmp, ivec2(_683.x + int(_689.x * 2.0), _683.y + int(_689.y * 2.0)), 0).xyz; } vec3 smix(vec3 a, vec3 b, float t) @@ -695,16 +784,16 @@ vs_trile_source_glsl430 := u8.[ vec3 rdm_indirect_diffuse(vec3 N, vec3 diff, ivec3 local_pos) { vec3 param = N; - int _732 = rdm_face_from_normal(param); - bool _738 = _732 <= 1; + int _748 = rdm_face_from_normal(param); + bool _754 = _748 <= 1; vec2 delta; - if (_738) + if (_754) { delta = vec2(diff.x, diff.z); } else { - if (_732 <= 3) + if (_748 <= 3) { delta = vec2(diff.x, diff.y); } @@ -715,7 +804,7 @@ vs_trile_source_glsl430 := u8.[ } ivec3 s1; ivec3 s2; - if (_738) + if (_754) { float param_1 = delta.x; s1 = ivec3(isign(param_1), 0, 0); @@ -726,7 +815,7 @@ vs_trile_source_glsl430 := u8.[ } else { - if (_732 <= 3) + if (_748 <= 3) { float param_5 = delta.x; s1 = ivec3(isign(param_5), 0, 0); @@ -746,16 +835,16 @@ vs_trile_source_glsl430 := u8.[ } } vec3 param_13 = N; - ivec3 param_14 = ivec3(mod(vec3(local_pos), vec3(32.0))); + ivec3 param_14 = clamp(local_pos, ivec3(0), ivec3(31)); vec3 param_15 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); vec3 param_16 = N; - ivec3 param_17 = ivec3(mod(vec3(local_pos + s1), vec3(32.0))); + ivec3 param_17 = clamp(local_pos + s1, ivec3(0), ivec3(31)); vec3 param_18 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); vec3 param_19 = N; - ivec3 param_20 = ivec3(mod(vec3(local_pos + s2), vec3(32.0))); + ivec3 param_20 = clamp(local_pos + s2, ivec3(0), ivec3(31)); vec3 param_21 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); vec3 param_22 = N; - ivec3 param_23 = ivec3(mod(vec3((local_pos + s1) + s2), vec3(32.0))); + ivec3 param_23 = clamp((local_pos + s1) + s2, ivec3(0), ivec3(31)); vec3 param_24 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); vec3 param_25 = rdm_sample_diff_probe(param_13, param_14, param_15); vec3 param_26 = rdm_sample_diff_probe(param_16, param_17, param_18); @@ -771,81 +860,81 @@ vs_trile_source_glsl430 := u8.[ void main() { - bool _928 = vpos.y < (_126.planeHeight - 0.00999999977648258209228515625); - bool _939; - if (_928) + bool _1240 = vpos.y < (_142.planeHeight - 0.00999999977648258209228515625); + bool _1251; + if (_1240) { - _939 = _934.is_reflection == 1; + _1251 = _1246.is_reflection == 1; } else { - _939 = _928; + _1251 = _1240; } - if (_939) + if (_1251) { discard; } vec3 sample_pos = ipos - (orig_normal * 0.0199999995529651641845703125); - bool _954 = _934.is_reflection == 1; - int _955 = _954 ? 1 : 3; + bool _1266 = _1246.is_reflection == 1; + int _1267 = _1266 ? 1 : 3; vec4 trixel_material; - for (int i = 0; i < _955; i++) + for (int i = 0; i < _1267; i++) { - vec4 _995 = texelFetch(triletex_trilesmp, ivec2(int(clamp(sample_pos.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(sample_pos.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(sample_pos.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); - trixel_material = _995; - if (dot(_995, _995) > 9.9999997473787516355514526367188e-05) + vec4 _1307 = texelFetch(triletex_trilesmp, ivec2(int(clamp(sample_pos.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(sample_pos.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(sample_pos.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); + trixel_material = _1307; + if (dot(_1307, _1307) > 9.9999997473787516355514526367188e-05) { break; } sample_pos += (to_center * 0.100000001490116119384765625); } - int _1019 = int(round(trixel_material.w * 255.0)); + int _1331 = int(round(trixel_material.w * 255.0)); float emittance = 0.0; int roughnessInt = 0; float roughness = 0.0; float metallic = 0.0; - if ((_1019 & 1) != 0) + if ((_1331 & 1) != 0) { - emittance = float((_1019 >> 1) & 127) * 0.0078740157186985015869140625; + emittance = float((_1331 >> 1) & 127) * 0.0078740157186985015869140625; } else { - int _1039 = (_1019 >> 5) & 7; - roughnessInt = _1039; - roughness = max(float(_1039) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - metallic = float((_1019 >> 3) & 3) * 0.3333333432674407958984375; + int _1351 = (_1331 >> 5) & 7; + roughnessInt = _1351; + roughness = max(float(_1351) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1331 >> 3) & 3) * 0.3333333432674407958984375; } - vec3 _1057 = abs(fnormal.xyz); - float _1059 = _1057.x; - float _1061 = _1057.y; - bool _1062 = _1059 >= _1061; - bool _1070; - if (_1062) + vec3 _1369 = abs(fnormal.xyz); + float _1371 = _1369.x; + float _1373 = _1369.y; + bool _1374 = _1371 >= _1373; + bool _1382; + if (_1374) { - _1070 = _1059 >= _1057.z; + _1382 = _1371 >= _1369.z; } else { - _1070 = _1062; + _1382 = _1374; } vec3 N; - if (_1070) + if (_1382) { N = vec3(sign(fnormal.x), 0.0, 0.0); } else { - bool _1083 = _1061 >= _1059; - bool _1091; - if (_1083) + bool _1395 = _1373 >= _1371; + bool _1403; + if (_1395) { - _1091 = _1061 >= _1057.z; + _1403 = _1373 >= _1369.z; } else { - _1091 = _1083; + _1403 = _1395; } - if (_1091) + if (_1403) { N = vec3(0.0, sign(fnormal.y), 0.0); } @@ -854,145 +943,171 @@ vs_trile_source_glsl430 := u8.[ N = vec3(0.0, 0.0, sign(fnormal.z)); } } - if (_954) + if (_1266) { - frag_color = vec4(trixel_material.xyz * (((_126.sunLightColor * max(dot(N, normalize(_126.sunPosition)), 0.0)) * _126.sunIntensity) + vec3(0.100000001490116119384765625)), 1.0); + frag_color = vec4(trixel_material.xyz * (((_142.sunLightColor * max(dot(N, normalize(_142.sunPosition)), 0.0)) * _142.sunIntensity) + vec3(0.100000001490116119384765625)), 1.0); return; } - vec3 _1140 = normalize(cam - vpos); - vec3 _1144 = normalize(_126.sunPosition); - vec3 _1149 = normalize(_1140 + _1144); - float _1154 = max(dot(N, _1144), 0.0); - float _1159 = max(dot(N, _1140), 0.0); - vec3 _1171 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); - float param = max(dot(_1149, _1140), 0.0); - vec3 param_1 = _1171; - vec3 _1177 = fresnelSchlick(param, param_1); + vec3 _1452 = normalize(cam - vpos); + vec3 _1456 = normalize(_142.sunPosition); + vec3 _1461 = normalize(_1452 + _1456); + float _1466 = max(dot(N, _1456), 0.0); + float _1471 = max(dot(N, _1452), 0.0); + vec3 _1483 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); + float param = max(dot(_1461, _1452), 0.0); + vec3 param_1 = _1483; + vec3 _1489 = fresnelSchlick(param, param_1); vec3 param_2 = N; - vec3 param_3 = _1149; + vec3 param_3 = _1461; float param_4 = roughness; vec3 param_5 = N; - vec3 param_6 = _1140; - vec3 param_7 = _1144; + vec3 param_6 = _1452; + vec3 param_7 = _1456; float param_8 = roughness; - vec4 _1230 = _934.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); - vec3 _1240 = ((_1230.xyz / vec3(_1230.w)) * 0.5) + vec3(0.5); - float _1244 = _1240.z - 0.001000000047497451305389404296875; - vec3 _1675 = _1240; - _1675.z = _1244; - vec3 light = ((((((((vec3(1.0) - _1177) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183098733425140380859375)) + ((_1177 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * _1159) * _1154) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1675.xy, _1244))) * _1154) * _126.sunLightColor) * _126.sunIntensity; - ivec3 _1281 = ivec3(mod(floor(trileCenter), vec3(32.0))); - ivec3 param_9 = _1281; + vec4 _1528 = _1246.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); + vec3 _1538 = ((_1528.xyz / vec3(_1528.w)) * 0.5) + vec3(0.5); + float _1541 = _1538.z - 0.001000000047497451305389404296875; + vec3 _2078 = _1538; + _2078.z = _1541; + vec3 light = ((((((((vec3(1.0) - _1489) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183098733425140380859375)) + ((_1489 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * _1471) * _1466) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_2078.xy, _1541))) * _1466) * _142.sunLightColor) * _142.sunIntensity; + vec3 _1589 = floor(trileCenter); + ivec3 _1593 = ivec3(mod(_1589, vec3(32.0))); + ivec3 param_9 = _1593; int param_10 = roughnessInt; - vec4 _1287 = rdm_atlas_rect(param_9, param_10); - vec4 _1304 = texture(ssaotex_rdmsmp, gl_FragCoord.xy / vec2(float(_934.screen_w), float(_934.screen_h))); - float _1305 = _1304.x; - bool _1315 = _934.rdm_enabled == 1; - bool _1321; - if (_1315) + vec4 _1599 = rdm_atlas_rect(param_9, param_10); + vec4 _1616 = texture(ssaotex_rdmsmp, gl_FragCoord.xy / vec2(float(_1246.screen_w), float(_1246.screen_h))); + float _1617 = _1616.x; + if (_1246.rdm_enabled == 1) { - _1321 = _1287.z > 0.0; - } - else - { - _1321 = _1315; - } - if (_1321) - { - float param_11 = _1159; - vec3 param_12 = _1171; + float param_11 = _1471; + vec3 param_12 = _1483; float param_13 = roughness; - vec3 _1331 = FresnelSchlickRoughness(param_11, param_12, param_13); - vec3 _1341 = vpos - (trileCenter + (N * 0.4900000095367431640625)); - if (roughness < 0.699999988079071044921875) + vec3 _1637 = FresnelSchlickRoughness(param_11, param_12, param_13); + vec3 _1647 = vpos - (trileCenter + (N * 0.4900000095367431640625)); + bool _1649 = roughnessInt <= 1; + bool _1655; + if (_1649) + { + _1655 = _1599.z > 0.0; + } + else + { + _1655 = _1649; + } + if (_1655) { vec3 param_14 = N; - int _1349 = rdm_face_from_normal(param_14); - ivec2 _1355 = textureSize(rdm_atlas_rdmsmp, 0); - vec2 _1360 = vec2(1.0) / vec2(_1355); - int _1369 = int(_1287.z * float(_1355.x)) / 2; - vec4 param_15 = _1287; - int param_16 = _1349; - int param_17 = _1369; - ivec2 param_18 = _1355; - ivec2 _1379 = rdm_face_offset(param_15, param_16, param_17, param_18); - vec3 indirectSpec; + int _1661 = rdm_face_from_normal(param_14); + ivec2 _1667 = textureSize(rdm_atlas_rdmsmp, 0); + vec2 _1672 = vec2(1.0) / vec2(_1667); + int _1681 = int(_1599.z * float(_1667.x)) / 2; + vec4 param_15 = _1599; + int param_16 = _1661; + int param_17 = _1681; + ivec2 param_18 = _1667; + ivec2 _1691 = rdm_face_offset(param_15, param_16, param_17, param_18); + vec3 _1695; if (roughness < 0.20000000298023223876953125) { vec3 param_19 = N; vec3 param_20 = -cv; - vec3 param_21 = _1341; - int param_22 = _1349; - ivec2 param_23 = _1379; - int param_24 = _1369; - vec2 param_25 = _1360; - indirectSpec = rdm_spec_raymarch(param_19, param_20, param_21, param_22, param_23, param_24, param_25); + vec3 param_21 = _1647; + int param_22 = _1661; + ivec2 param_23 = _1691; + int param_24 = _1681; + vec2 param_25 = _1672; + _1695 = rdm_spec_raymarch(param_19, param_20, param_21, param_22, param_23, param_24, param_25); } else { vec3 param_26 = N; vec3 param_27 = -cv; - vec3 param_28 = _1341; - int param_29 = _1349; - ivec2 param_30 = _1379; - int param_31 = _1369; - vec2 param_32 = _1360; - indirectSpec = rdm_spec_single(param_26, param_27, param_28, param_29, param_30, param_31, param_32); + vec3 param_28 = _1647; + int param_29 = _1661; + ivec2 param_30 = _1691; + int param_31 = _1681; + vec2 param_32 = _1672; + _1695 = rdm_spec_single(param_26, param_27, param_28, param_29, param_30, param_31, param_32); } - vec3 _1422 = indirectSpec; - vec3 _1423 = _1422 * _934.rdm_tint; - vec3 _1436 = mix(_1423, vec3(dot(_1423, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)); - indirectSpec = _1436; - vec4 _1445 = texture(brdf_lut_rdmsmp, vec2(_1159, roughness)); - float _1450 = sin(roughness * 3.1415927410125732421875); - light += (((((_1436 * ((_1331 * _1445.x) + vec3(_1445.y))) * _934.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1450))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1450) * pow(1.0 - _1159, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); - } - vec3 param_33 = N; - vec3 param_34 = _1341; - ivec3 param_35 = _1281; - vec3 _1504 = rdm_indirect_diffuse(param_33, param_34, param_35) * _934.rdm_tint; - light += (((((((vec3(1.0) - _1331) * (1.0 - metallic)) * mix(vec3(dot(_1504, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1504, vec3(_934.rdm_diff_saturation))) * vec3(0.3183098733425140380859375)) * trixel_material.xyz) * _1305) * _934.rdm_diff_scale); - bool _1539 = _934.rdm_diff_scale < 0.001000000047497451305389404296875; - bool _1548; - if (!_1539) - { - _1548 = length(light) < _934.ambient_intensity; + vec3 _1737 = _1695 * _1246.rdm_tint; + vec4 _1759 = texture(brdf_lut_rdmsmp, vec2(_1471, roughness)); + float _1764 = sin(roughness * 3.1415927410125732421875); + light += (((((mix(_1737, vec3(dot(_1737, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)) * ((_1637 * _1759.x) + vec3(_1759.y))) * _1246.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1764))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1764) * pow(1.0 - _1471, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); } else { - _1548 = _1539; + if (roughness < 0.699999988079071044921875) + { + vec4 _1825 = texture(brdf_lut_rdmsmp, vec2(_1471, roughness)); + vec3 param_33 = reflect(-_1452, N); + vec3 param_34 = _142.sunPosition; + vec3 _1838 = sky_reflect(param_33, param_34); + light += (((_1838 * ((_1637 * _1825.x) + vec3(_1825.y))) * _1246.rdm_spec_scale) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + } } - if (_1548) + vec3 indirectDiff; + if (_1246.sh_enabled == 1) { - light += (((_934.ambient_color * max(_934.ambient_intensity - length(light), 0.0)) * trixel_material.xyz) * _1305); + vec3 _1876 = clamp((vec3(_1593) + (vpos - _1589)) * 2.0, vec3(0.0), vec3(63.0)); + ivec3 _1880 = ivec3(floor(_1876)); + ivec3 param_35 = _1880; + ivec3 param_36 = min((_1880 + ivec3(1)), ivec3(63)); + vec3 param_37 = fract(_1876); + vec3 param_38 = N; + indirectDiff = sh_eval_trilinear(param_35, param_36, param_37, param_38) * _1246.rdm_tint; + } + else + { + vec3 param_39 = N; + vec3 param_40 = _1647; + ivec3 param_41 = _1593; + indirectDiff = rdm_indirect_diffuse(param_39, param_40, param_41) * _1246.rdm_tint; + } + vec3 _1914 = indirectDiff; + vec3 _1923 = mix(vec3(dot(_1914, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1914, vec3(_1246.rdm_diff_saturation)); + indirectDiff = _1923; + light += (((((((vec3(1.0) - _1637) * (1.0 - metallic)) * _1923) * vec3(0.3183098733425140380859375)) * trixel_material.xyz) * _1617) * _1246.rdm_diff_scale); + bool _1945 = _1246.rdm_diff_scale < 0.001000000047497451305389404296875; + bool _1954; + if (!_1945) + { + _1954 = length(light) < _1246.ambient_intensity; + } + else + { + _1954 = _1945; + } + if (_1954) + { + light += (((_1246.ambient_color * max(_1246.ambient_intensity - length(light), 0.0)) * trixel_material.xyz) * _1617); } } else { - light += (((_934.ambient_color * _934.ambient_intensity) * trixel_material.xyz) * _1305); - vec3 param_36 = reflect(-_1140, N); - vec3 param_37 = _126.sunPosition; - vec3 _1590 = sky_reflect(param_36, param_37); - light += ((_1177 * _1590) * 0.100000001490116119384765625); + light += (((_1246.ambient_color * _1246.ambient_intensity) * trixel_material.xyz) * _1617); + vec3 param_42 = reflect(-_1452, N); + vec3 param_43 = _142.sunPosition; + vec3 _1994 = sky_reflect(param_42, param_43); + light += ((_1489 * _1994) * 0.100000001490116119384765625); } - frag_color = vec4(mix(_126.deepColor, light + ((trixel_material.xyz * emittance) * _934.emissive_scale), vec3(smoothstep(0.0, _126.planeHeight, vpos.y))), 1.0); - if (_934.is_preview == 1) + frag_color = vec4(mix(_142.deepColor, light + ((trixel_material.xyz * emittance) * _1246.emissive_scale), vec3(smoothstep(0.0, _142.planeHeight, vpos.y))), 1.0); + if (_1246.is_preview == 1) { - vec4 _1619 = frag_color; - vec3 _1623 = mix(_1619.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); - frag_color.x = _1623.x; - frag_color.y = _1623.y; - frag_color.z = _1623.z; + vec4 _2022 = frag_color; + vec3 _2026 = mix(_2022.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); + frag_color.x = _2026.x; + frag_color.y = _2026.y; + frag_color.z = _2026.z; } else { - if (_934.is_preview == 2) + if (_1246.is_preview == 2) { - vec4 _1637 = frag_color; - vec3 _1641 = mix(_1637.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); - frag_color.x = _1641.x; - frag_color.y = _1641.y; - frag_color.z = _1641.z; + vec4 _2040 = frag_color; + vec3 _2044 = mix(_2040.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); + frag_color.x = _2044.x; + frag_color.y = _2044.y; + frag_color.z = _2044.z; } } } @@ -1024,7 +1139,7 @@ fs_trile_source_glsl430 := u8.[ 0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x68,0x73,0x76,0x5f, 0x6c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e, 0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c, - 0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x31,0x32,0x36,0x3b,0x0a,0x0a, + 0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x31,0x34,0x32,0x3b,0x0a,0x0a, 0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f, 0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x74, 0x34,0x20,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x3b,0x0a,0x20,0x20, @@ -1045,1130 +1160,1372 @@ fs_trile_source_glsl430 := u8.[ 0x69,0x65,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64, 0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x20,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75,0x72, - 0x61,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f, - 0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61, - 0x6d,0x73,0x20,0x5f,0x39,0x33,0x34,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74, - 0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x36,0x29,0x20,0x75, - 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44, - 0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73, - 0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69, - 0x6e,0x67,0x20,0x3d,0x20,0x31,0x37,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, - 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x53,0x68,0x61,0x64,0x6f,0x77, - 0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f, - 0x77,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e, - 0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x38,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f, - 0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d, - 0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, - 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67, - 0x20,0x3d,0x20,0x31,0x39,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78, - 0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, - 0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x32,0x30,0x29,0x20,0x75,0x6e, - 0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20, - 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70, - 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67, - 0x20,0x3d,0x20,0x32,0x31,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75, - 0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75, - 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20, - 0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61, + 0x61,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x73, + 0x68,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75, + 0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f, + 0x70,0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x31,0x32,0x34,0x36,0x3b,0x0a,0x0a,0x6c, + 0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20, + 0x31,0x36,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74, + 0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, + 0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x37,0x29,0x20,0x75,0x6e, + 0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x53, + 0x68,0x61,0x64,0x6f,0x77,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f, + 0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, + 0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x38,0x29,0x20, + 0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32, + 0x44,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69, + 0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69, + 0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x31,0x39,0x29,0x20,0x75,0x6e,0x69,0x66, + 0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x73, + 0x61,0x6f,0x74,0x65,0x78,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61, + 0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x32, + 0x30,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, + 0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69, + 0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20,0x32,0x31,0x29,0x20,0x75,0x6e,0x69,0x66, + 0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x72, + 0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x6c, + 0x61,0x79,0x6f,0x75,0x74,0x28,0x62,0x69,0x6e,0x64,0x69,0x6e,0x67,0x20,0x3d,0x20, + 0x32,0x32,0x29,0x20,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72, + 0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x32,0x29,0x20,0x69,0x6e,0x20, + 0x76,0x65,0x63,0x33,0x20,0x76,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, + 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x33,0x29,0x20, + 0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b,0x0a,0x6c,0x61, 0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20, - 0x33,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x70,0x6f,0x73,0x3b, - 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, - 0x20,0x3d,0x20,0x35,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x72, - 0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75, - 0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20, - 0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65, - 0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, - 0x6f,0x6e,0x20,0x3d,0x20,0x34,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20, - 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28, - 0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75, - 0x74,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, - 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20, - 0x63,0x61,0x6d,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61, - 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x36,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63, - 0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x6c, - 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, - 0x20,0x37,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x76,0x3b,0x0a, - 0x0a,0x76,0x65,0x63,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68, - 0x6c,0x69,0x63,0x6b,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68, - 0x65,0x74,0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20, - 0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30, - 0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e, - 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62, - 0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x20,0x48,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x30,0x39,0x20,0x3d,0x20,0x72,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, - 0x31,0x33,0x20,0x3d,0x20,0x5f,0x32,0x30,0x39,0x20,0x2a,0x20,0x5f,0x32,0x30,0x39, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x31,0x38, - 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x32,0x32,0x36,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32,0x31,0x38,0x20, - 0x2a,0x20,0x5f,0x32,0x31,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x32,0x31,0x33,0x20, - 0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x31,0x33,0x20,0x2f, - 0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32,0x37,0x34,0x31,0x30,0x31, - 0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x32, - 0x32,0x36,0x29,0x20,0x2a,0x20,0x5f,0x32,0x32,0x36,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d, - 0x69,0x74,0x68,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x20,0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x38,0x20,0x3d,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x34,0x20, - 0x3d,0x20,0x28,0x5f,0x32,0x33,0x38,0x20,0x2a,0x20,0x5f,0x32,0x33,0x38,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x32,0x34,0x39,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x35,0x34,0x20,0x3d,0x20, - 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30, + 0x35,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x72,0x69,0x67,0x5f, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c, + 0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x31,0x29,0x20,0x69,0x6e,0x20, + 0x76,0x65,0x63,0x33,0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a, + 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x34,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63, + 0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x76, + 0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, + 0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20, + 0x3d,0x20,0x30,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x61,0x6d, + 0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f, + 0x6e,0x20,0x3d,0x20,0x36,0x29,0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x74, + 0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x6c,0x61,0x79,0x6f, + 0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x20,0x37,0x29, + 0x20,0x69,0x6e,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x76,0x3b,0x0a,0x0a,0x76,0x65, + 0x63,0x33,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63, + 0x6b,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x76, + 0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a, + 0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d, + 0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69, + 0x6f,0x6e,0x47,0x47,0x58,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x20,0x48,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x32,0x39,0x20, + 0x3d,0x20,0x5f,0x32,0x32,0x35,0x20,0x2a,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x34,0x20,0x3d,0x20, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30, 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x32,0x35,0x39,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x32,0x34,0x34, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32, - 0x35,0x34,0x20,0x2f,0x20,0x28,0x28,0x5f,0x32,0x35,0x34,0x20,0x2a,0x20,0x5f,0x32, - 0x35,0x39,0x29,0x20,0x2b,0x20,0x5f,0x32,0x34,0x34,0x29,0x29,0x20,0x2a,0x20,0x28, - 0x5f,0x32,0x34,0x39,0x20,0x2f,0x20,0x28,0x28,0x5f,0x32,0x34,0x39,0x20,0x2a,0x20, - 0x5f,0x32,0x35,0x39,0x29,0x20,0x2b,0x20,0x5f,0x32,0x34,0x34,0x29,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x76,0x65,0x63,0x34,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, - 0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63, - 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, - 0x20,0x5f,0x34,0x34,0x31,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f, - 0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, - 0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x6c, - 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x30,0x32, - 0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68, - 0x28,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c, - 0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x34,0x34,0x31, - 0x20,0x25,0x20,0x35,0x31,0x32,0x2c,0x20,0x5f,0x34,0x34,0x31,0x20,0x2f,0x20,0x35, - 0x31,0x32,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33, - 0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63, - 0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, - 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28, - 0x31,0x2e,0x30,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29, - 0x2c,0x20,0x46,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f, - 0x77,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f, - 0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74, - 0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x37,0x37,0x20,0x3d,0x20, - 0x61,0x62,0x73,0x28,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x33,0x37,0x39,0x20,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x79,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x38,0x31,0x20, - 0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x33,0x38,0x32,0x20,0x3d,0x20,0x5f,0x33,0x37,0x39,0x20,0x3e, - 0x3d,0x20,0x5f,0x33,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x33,0x39,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x33,0x38,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x33,0x39,0x30,0x20,0x3d,0x20,0x5f,0x33,0x37,0x39,0x20,0x3e, - 0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x33,0x39,0x30,0x20,0x3d,0x20,0x5f,0x33, - 0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x33,0x39,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x4e,0x2e, - 0x79,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x30,0x20,0x3a,0x20, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x33,0x39,0x39,0x20,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x30,0x32,0x20, - 0x3d,0x20,0x5f,0x33,0x39,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x38,0x31,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x31,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x30,0x32,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x31,0x30,0x20, - 0x3d,0x20,0x5f,0x33,0x39,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x37,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x31, - 0x30,0x20,0x3d,0x20,0x5f,0x34,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x31,0x30,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29,0x20, - 0x3f,0x20,0x32,0x20,0x3a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x4e,0x2e,0x78,0x20,0x3e, - 0x3d,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x34,0x20,0x3a,0x20,0x35,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x69,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63, - 0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x76,0x65,0x63,0x34,0x20,0x72,0x65, - 0x63,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x6e, - 0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20,0x69,0x76,0x65,0x63,0x32, - 0x20,0x61,0x74,0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69, - 0x6e,0x74,0x28,0x72,0x65,0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x2e,0x78,0x29,0x29,0x20, - 0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x2a,0x20, - 0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x72,0x65, - 0x63,0x74,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x61,0x74,0x6c, - 0x61,0x73,0x53,0x69,0x7a,0x65,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66, - 0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69, - 0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x32,0x20,0x72,0x64, - 0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x76,0x65,0x63,0x33,0x20,0x76, - 0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32, - 0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x38,0x33, - 0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x36,0x38,0x33,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x38,0x33,0x2e,0x79,0x20,0x3d,0x20, - 0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20, - 0x3d,0x20,0x5f,0x31,0x36,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32, - 0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x38,0x37, - 0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x36,0x38,0x37,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x38,0x37,0x2e,0x78,0x20,0x3d,0x20, - 0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20, - 0x3d,0x20,0x5f,0x31,0x36,0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32, - 0x29,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x39,0x31, - 0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x36,0x39,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x31,0x2e,0x7a, - 0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33, - 0x35,0x37,0x20,0x3d,0x20,0x76,0x63,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e, - 0x30,0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x76,0x63,0x2e,0x78,0x29,0x20, - 0x2b,0x20,0x61,0x62,0x73,0x28,0x76,0x63,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x76, - 0x63,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x33,0x35,0x39,0x20,0x3d,0x20,0x5f,0x33,0x35,0x37,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x31,0x20,0x3d, - 0x20,0x5f,0x33,0x35,0x37,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x5f,0x33,0x35,0x39,0x20,0x2b, - 0x20,0x5f,0x33,0x36,0x31,0x2c,0x20,0x5f,0x33,0x35,0x39,0x20,0x2d,0x20,0x5f,0x33, - 0x36,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63, - 0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20, - 0x73,0x6b,0x79,0x28,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31,0x37,0x20,0x3d,0x20, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x32, - 0x32,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x31,0x31,0x37,0x2c,0x20,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37, - 0x20,0x3d,0x20,0x5f,0x31,0x31,0x37,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x69,0x78, - 0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f, - 0x31,0x32,0x36,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x31,0x33,0x37,0x20,0x2a,0x20,0x32,0x2e, - 0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39, - 0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38, - 0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73, - 0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28, - 0x5f,0x31,0x32,0x32,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39,0x39, - 0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37, - 0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, - 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32, - 0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x32,0x20,0x3e,0x20,0x30,0x2e,0x39, - 0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38,0x39, - 0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5f, - 0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x36, - 0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x37,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x20, - 0x2b,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x32,0x36,0x2e,0x68,0x6f,0x72,0x69, - 0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61, - 0x62,0x73,0x28,0x5f,0x31,0x33,0x37,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c, - 0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36, - 0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31,0x38, - 0x37,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x5f,0x72, - 0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20,0x76,0x65,0x63, - 0x33,0x20,0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x52,0x2e,0x79,0x20, - 0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74, - 0x28,0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, - 0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, - 0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d, - 0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f, - 0x72,0x61,0x79,0x6d,0x61,0x72,0x63,0x68,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69, - 0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x76, - 0x65,0x63,0x32,0x20,0x66,0x61,0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20, - 0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20,0x76,0x65,0x63, - 0x32,0x20,0x61,0x74,0x6c,0x61,0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x34,0x39,0x36,0x20, - 0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20, - 0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b, + 0x32,0x34,0x32,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32,0x33,0x34,0x20,0x2a,0x20,0x5f, + 0x32,0x33,0x34,0x29,0x20,0x2a,0x20,0x28,0x5f,0x32,0x32,0x39,0x20,0x2d,0x20,0x31, + 0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x32,0x39,0x20,0x2f,0x20,0x28,0x28, + 0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32,0x37,0x34,0x31,0x30,0x31,0x32,0x35,0x37, + 0x33,0x32,0x34,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x32,0x34,0x32,0x29, + 0x20,0x2a,0x20,0x5f,0x32,0x34,0x32,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68, + 0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x35,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x30,0x20,0x3d,0x20,0x28, + 0x5f,0x32,0x35,0x34,0x20,0x2a,0x20,0x5f,0x32,0x35,0x34,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x32,0x36,0x35,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, + 0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x30,0x20,0x3d,0x20,0x6d,0x61,0x78, + 0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x35, + 0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x32,0x36,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32,0x37,0x30,0x20, + 0x2f,0x20,0x28,0x28,0x5f,0x32,0x37,0x30,0x20,0x2a,0x20,0x5f,0x32,0x37,0x35,0x29, + 0x20,0x2b,0x20,0x5f,0x32,0x36,0x30,0x29,0x29,0x20,0x2a,0x20,0x28,0x5f,0x32,0x36, + 0x35,0x20,0x2f,0x20,0x28,0x28,0x5f,0x32,0x36,0x35,0x20,0x2a,0x20,0x5f,0x32,0x37, + 0x35,0x29,0x20,0x2b,0x20,0x5f,0x32,0x36,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x76,0x65,0x63,0x34,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, + 0x65,0x63,0x74,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f, + 0x70,0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x34, + 0x35,0x37,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, + 0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e, + 0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61, + 0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29, + 0x20,0x2b,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20, + 0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64, + 0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d, + 0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x34,0x35,0x37,0x20,0x25,0x20, + 0x35,0x31,0x32,0x2c,0x20,0x5f,0x34,0x35,0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29, + 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x46,0x72, + 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54, + 0x68,0x65,0x74,0x61,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20, + 0x2b,0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30, + 0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c,0x20,0x46, + 0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68, + 0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20, + 0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x72,0x64, + 0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x33,0x39,0x33,0x20,0x3d,0x20,0x61,0x62,0x73, + 0x28,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x33,0x39,0x35,0x20,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f, + 0x33,0x39,0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x5f,0x33,0x39,0x35,0x20,0x3e,0x3d,0x20,0x5f, + 0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34, + 0x30,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x39,0x38, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x32,0x36,0x20,0x3d,0x20,0x64,0x69,0x66,0x66, - 0x20,0x2b,0x20,0x28,0x5f,0x34,0x39,0x36,0x20,0x2a,0x20,0x28,0x30,0x2e,0x35,0x20, - 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f, - 0x74,0x28,0x5f,0x35,0x32,0x36,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, - 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x32,0x36,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x36,0x30,0x20, - 0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74, - 0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x76,0x65,0x63, - 0x32,0x28,0x66,0x61,0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x2b,0x20, - 0x28,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x28,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x29,0x20, - 0x2a,0x20,0x61,0x74,0x6c,0x61,0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x35,0x36,0x33,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74, - 0x68,0x28,0x5f,0x35,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x36,0x36,0x20,0x3d,0x20,0x5f,0x35, - 0x36,0x30,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x35,0x36,0x37,0x20,0x3d,0x20,0x5f,0x35,0x36,0x36,0x20,0x3e, - 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x35,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x36,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x5f,0x35,0x36,0x36,0x20,0x3c,0x20,0x5f, - 0x35,0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x5f,0x35,0x36,0x37,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x35,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x37,0x34,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x35,0x38,0x33,0x20,0x3d,0x20,0x28,0x5f,0x35,0x36,0x36, - 0x20,0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x35,0x36,0x33,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x38, - 0x33,0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x35,0x38,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x5f,0x35,0x36,0x30,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, - 0x5f,0x34,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75, - 0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x37,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72, - 0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x20,0x5f,0x35,0x39,0x37,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65, - 0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x69,0x6e,0x67, - 0x6c,0x65,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20, - 0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x6e, - 0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x66,0x61, - 0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x64, - 0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x61,0x74,0x6c,0x61, - 0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x72, - 0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x20,0x2a,0x20,0x32, - 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d, - 0x70,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x66,0x61,0x63,0x65,0x4f,0x66,0x66, - 0x73,0x65,0x74,0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69, - 0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x72,0x64,0x6d,0x53, - 0x69,0x7a,0x65,0x29,0x29,0x29,0x20,0x2a,0x20,0x61,0x74,0x6c,0x61,0x73,0x49,0x6e, - 0x76,0x53,0x69,0x7a,0x65,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x69, - 0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28, - 0x66,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20, - 0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f, - 0x62,0x65,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c, - 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x36,0x33,0x39,0x20,0x3d,0x20,0x72, - 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x39,0x2e,0x7a,0x20,0x3c,0x3d, - 0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62, - 0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x35,0x30,0x20,0x3d,0x20, - 0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, - 0x3d,0x20,0x5f,0x36,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36,0x35,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20, - 0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, - 0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x36,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, - 0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b, + 0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x5f,0x33,0x39,0x35,0x20,0x3e,0x3d,0x20,0x5f, + 0x33,0x39,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x5f,0x33,0x39,0x38,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x34,0x30,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x4e,0x2e,0x79,0x20,0x3e, + 0x3d,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x30,0x20,0x3a,0x20,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x5f,0x34,0x31,0x35,0x20,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f, + 0x34,0x31,0x35,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f, + 0x34,0x31,0x35,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x32,0x36,0x20,0x3d, + 0x20,0x5f,0x34,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x32,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x32, + 0x20,0x3a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30, + 0x2e,0x30,0x29,0x20,0x3f,0x20,0x34,0x20,0x3a,0x20,0x35,0x3b,0x0a,0x7d,0x0a,0x0a, + 0x69,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f, + 0x66,0x66,0x73,0x65,0x74,0x28,0x76,0x65,0x63,0x34,0x20,0x72,0x65,0x63,0x74,0x2c, + 0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72, + 0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x61,0x74, + 0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69,0x6e,0x74,0x28, + 0x72,0x65,0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x61, + 0x74,0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x2e,0x78,0x29,0x29,0x20,0x2b,0x20,0x28, + 0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d, + 0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x72,0x65,0x63,0x74,0x2e, + 0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x53, + 0x69,0x7a,0x65,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65, + 0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29, + 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x68, + 0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x76,0x65,0x63,0x33,0x20,0x76,0x2c,0x20,0x69, + 0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d, + 0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x38,0x38,0x20,0x3d,0x20, + 0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x38, + 0x38,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x32,0x30,0x38,0x38,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f, + 0x32,0x30,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d, + 0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x39,0x32,0x20,0x3d,0x20, + 0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x39, + 0x32,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x32,0x30,0x39,0x32,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f, + 0x32,0x30,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x3d, + 0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x39,0x36,0x20,0x3d,0x20, + 0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x39, + 0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x32,0x30,0x39,0x36,0x2e,0x7a,0x20,0x2a,0x20, + 0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x76,0x63,0x20,0x3d,0x20,0x5f,0x32,0x30,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33,0x37,0x33,0x20, + 0x3d,0x20,0x76,0x63,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f, + 0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x76,0x63,0x2e,0x78,0x29,0x20,0x2b,0x20,0x61, + 0x62,0x73,0x28,0x76,0x63,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x76,0x63,0x2e,0x7a, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33, + 0x37,0x35,0x20,0x3d,0x20,0x5f,0x33,0x37,0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x37,0x37,0x20,0x3d,0x20,0x5f,0x33, + 0x37,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x5f,0x33,0x37,0x35,0x20,0x2b,0x20,0x5f,0x33, + 0x37,0x37,0x2c,0x20,0x5f,0x33,0x37,0x35,0x20,0x2d,0x20,0x5f,0x33,0x37,0x37,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30, + 0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79, + 0x28,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x70,0x6f,0x73,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x33,0x20,0x3d,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x20,0x3d, + 0x20,0x64,0x6f,0x74,0x28,0x5f,0x31,0x33,0x33,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x33,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31, + 0x34,0x32,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20,0x5f,0x31,0x34,0x32, + 0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c, + 0x61,0x6d,0x70,0x28,0x5f,0x31,0x35,0x33,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38, + 0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29, + 0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x48, + 0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f,0x31,0x33, + 0x38,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30, + 0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x20, + 0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x38, + 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, + 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x32,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38, + 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x31,0x33,0x38,0x20,0x3e,0x20,0x30,0x2e,0x39,0x39,0x39,0x38, + 0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38,0x39,0x34,0x35,0x33, + 0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32, + 0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x32,0x20,0x3d,0x20, + 0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x32,0x30,0x33,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x20,0x2b,0x20,0x28, + 0x6d,0x69,0x78,0x28,0x5f,0x31,0x34,0x32,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e, + 0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28, + 0x5f,0x31,0x35,0x33,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e, + 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39, + 0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5f,0x32,0x30,0x33,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x30,0x33,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c, + 0x65,0x63,0x74,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20,0x76,0x65,0x63,0x33,0x20,0x52, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x52,0x2e,0x79,0x20,0x3c,0x20,0x30, + 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x52,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x36,0x35,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20,0x72, - 0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65, - 0x74,0x63,0x68,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64, - 0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x36,0x37, - 0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x36,0x37,0x33,0x2e,0x78,0x20, - 0x2a,0x20,0x32,0x2e,0x30,0x29,0x2c,0x20,0x5f,0x36,0x36,0x37,0x2e,0x79,0x20,0x2b, - 0x20,0x69,0x6e,0x74,0x28,0x5f,0x36,0x37,0x33,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e, - 0x30,0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x76,0x65,0x63,0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x20,0x61, - 0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x70, - 0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32, - 0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29, - 0x20,0x2f,0x20,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30, - 0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31, - 0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20, - 0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, - 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29, - 0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f, - 0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65, - 0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69, - 0x66,0x66,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f, - 0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x74,0x20,0x5f,0x37,0x33,0x32,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61, - 0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, - 0x5f,0x37,0x33,0x38,0x20,0x3d,0x20,0x5f,0x37,0x33,0x32,0x20,0x3c,0x3d,0x20,0x31, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x64,0x65,0x6c,0x74,0x61, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x38,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65, - 0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e, - 0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33, - 0x32,0x20,0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65, - 0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e, - 0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d, - 0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69, - 0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73, - 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x38,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64, - 0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20, - 0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67, - 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x37,0x33,0x32,0x20,0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x31,0x20,0x3d,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, + 0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x72,0x61,0x79, + 0x6d,0x61,0x72,0x63,0x68,0x28,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x20,0x56,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c, + 0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69,0x76,0x65,0x63,0x32, + 0x20,0x66,0x61,0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x69,0x6e,0x74, + 0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x61, + 0x74,0x6c,0x61,0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x31,0x32,0x20,0x3d,0x20,0x72, + 0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20,0x30, + 0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x35,0x34,0x32,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20, + 0x28,0x5f,0x35,0x31,0x32,0x20,0x2a,0x20,0x28,0x30,0x2e,0x35,0x20,0x2a,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x35,0x34,0x32,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x34,0x32,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x37,0x36,0x20,0x3d,0x20,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, + 0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x66, + 0x61,0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x2b,0x20,0x28,0x72,0x64, + 0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x28,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x29,0x20,0x2a,0x20,0x61, + 0x74,0x6c,0x61,0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x35,0x37,0x39,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f, + 0x35,0x34,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x35,0x38,0x32,0x20,0x3d,0x20,0x5f,0x35,0x37,0x36,0x2e, + 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x35,0x38,0x33,0x20,0x3d,0x20,0x5f,0x35,0x38,0x32,0x20,0x3e,0x20,0x30,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x35,0x39,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x35,0x38,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35, + 0x39,0x30,0x20,0x3d,0x20,0x5f,0x35,0x38,0x32,0x20,0x3c,0x20,0x5f,0x35,0x37,0x39, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x35,0x39,0x30,0x20,0x3d,0x20,0x5f,0x35,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x35,0x39,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x39,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d, - 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33, - 0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c, - 0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, - 0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20, - 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20, - 0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d, - 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x35,0x39,0x39,0x20,0x3d,0x20,0x28,0x5f,0x35,0x38,0x32,0x20,0x2b,0x20, + 0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x35,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x39,0x39,0x20,0x3d, + 0x20,0x5f,0x35,0x39,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x39, + 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x5f,0x35,0x37,0x36,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28, - 0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, - 0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, - 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, - 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, - 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20, - 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, - 0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, - 0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33, - 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x33, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x35,0x31, + 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x36,0x31,0x33,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c, + 0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x5f,0x36,0x31,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20, + 0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28, + 0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66, + 0x61,0x63,0x65,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x66,0x61,0x63,0x65,0x4f, + 0x66,0x66,0x73,0x65,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69, + 0x7a,0x65,0x2c,0x20,0x76,0x65,0x63,0x32,0x20,0x61,0x74,0x6c,0x61,0x73,0x49,0x6e, + 0x76,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x72,0x65,0x66,0x6c, + 0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64, + 0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20, + 0x28,0x76,0x65,0x63,0x32,0x28,0x66,0x61,0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74, + 0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74, + 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, + 0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65, + 0x29,0x29,0x29,0x20,0x2a,0x20,0x61,0x74,0x6c,0x61,0x73,0x49,0x6e,0x76,0x53,0x69, + 0x7a,0x65,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x73,0x68,0x5f,0x70,0x72,0x6f,0x62,0x65,0x5f,0x65,0x6e,0x65,0x72,0x67, + 0x79,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x72,0x6f,0x62,0x65,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x34,0x38,0x20,0x3d, + 0x20,0x70,0x72,0x6f,0x62,0x65,0x2e,0x78,0x20,0x2a,0x20,0x33,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x35,0x35,0x20,0x3d,0x20,0x28,0x70, + 0x72,0x6f,0x62,0x65,0x2e,0x7a,0x20,0x2a,0x20,0x36,0x34,0x29,0x20,0x2b,0x20,0x70, + 0x72,0x6f,0x62,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x6d,0x61,0x78,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32,0x37,0x30, + 0x31,0x31,0x36,0x38,0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33,0x37,0x35, + 0x20,0x2a,0x20,0x28,0x28,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28, + 0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, + 0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x30,0x34,0x38,0x2c,0x20,0x5f,0x31, + 0x30,0x35,0x35,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x20,0x2b,0x20,0x74,0x65,0x78, + 0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b, + 0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f, + 0x31,0x30,0x34,0x38,0x20,0x2b,0x20,0x31,0x2c,0x20,0x5f,0x31,0x30,0x35,0x35,0x29, + 0x2c,0x20,0x30,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x65,0x6c,0x46, + 0x65,0x74,0x63,0x68,0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64, + 0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x30,0x34, + 0x38,0x20,0x2b,0x20,0x32,0x2c,0x20,0x5f,0x31,0x30,0x35,0x35,0x29,0x2c,0x20,0x30, + 0x29,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, + 0x65,0x63,0x33,0x20,0x73,0x68,0x5f,0x65,0x76,0x61,0x6c,0x28,0x69,0x76,0x65,0x63, + 0x33,0x20,0x70,0x72,0x6f,0x62,0x65,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x32,0x36,0x20, + 0x3d,0x20,0x70,0x72,0x6f,0x62,0x65,0x2e,0x78,0x20,0x2a,0x20,0x33,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x33,0x34,0x20,0x3d,0x20,0x28,0x70, + 0x72,0x6f,0x62,0x65,0x2e,0x7a,0x20,0x2a,0x20,0x36,0x34,0x29,0x20,0x2b,0x20,0x70, + 0x72,0x6f,0x62,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34, + 0x20,0x5f,0x39,0x34,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74, + 0x63,0x68,0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64,0x6d,0x73, + 0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x39,0x32,0x36,0x2c,0x20, + 0x5f,0x39,0x33,0x34,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x5f,0x39,0x35,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c, + 0x46,0x65,0x74,0x63,0x68,0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72, + 0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x39,0x32, + 0x36,0x20,0x2b,0x20,0x31,0x2c,0x20,0x5f,0x39,0x33,0x34,0x29,0x2c,0x20,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x36,0x34,0x20, + 0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x73,0x68,0x5f, + 0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76, + 0x65,0x63,0x32,0x28,0x5f,0x39,0x32,0x36,0x20,0x2b,0x20,0x32,0x2c,0x20,0x5f,0x39, + 0x33,0x34,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x28,0x30,0x2e, + 0x38,0x38,0x36,0x32,0x32,0x37,0x30,0x31,0x31,0x36,0x38,0x30,0x36,0x30,0x33,0x30, + 0x32,0x37,0x33,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x5f,0x39,0x34,0x34,0x2e,0x78, + 0x29,0x20,0x2b,0x20,0x28,0x31,0x2e,0x30,0x32,0x33,0x33,0x32,0x36,0x39,0x39,0x32, + 0x39,0x38,0x38,0x35,0x38,0x36,0x34,0x32,0x35,0x37,0x38,0x31,0x32,0x35,0x20,0x2a, + 0x20,0x28,0x28,0x28,0x5f,0x39,0x34,0x34,0x2e,0x77,0x20,0x2a,0x20,0x4e,0x2e,0x78, + 0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x34,0x34,0x2e,0x79,0x20,0x2a,0x20,0x4e,0x2e, + 0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x34,0x34,0x2e,0x7a,0x20,0x2a,0x20, + 0x4e,0x2e,0x7a,0x29,0x29,0x29,0x2c,0x20,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32, + 0x37,0x30,0x31,0x31,0x36,0x38,0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33, + 0x37,0x35,0x20,0x2a,0x20,0x5f,0x39,0x35,0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28, + 0x31,0x2e,0x30,0x32,0x33,0x33,0x32,0x36,0x39,0x39,0x32,0x39,0x38,0x38,0x35,0x38, + 0x36,0x34,0x32,0x35,0x37,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f, + 0x39,0x35,0x34,0x2e,0x77,0x20,0x2a,0x20,0x4e,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28, + 0x5f,0x39,0x35,0x34,0x2e,0x79,0x20,0x2a,0x20,0x4e,0x2e,0x79,0x29,0x29,0x20,0x2b, + 0x20,0x28,0x5f,0x39,0x35,0x34,0x2e,0x7a,0x20,0x2a,0x20,0x4e,0x2e,0x7a,0x29,0x29, + 0x29,0x2c,0x20,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32,0x37,0x30,0x31,0x31,0x36, + 0x38,0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33,0x37,0x35,0x20,0x2a,0x20, + 0x5f,0x39,0x36,0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x31,0x2e,0x30,0x32,0x33, + 0x33,0x32,0x36,0x39,0x39,0x32,0x39,0x38,0x38,0x35,0x38,0x36,0x34,0x32,0x35,0x37, + 0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f,0x39,0x36,0x34,0x2e,0x77, + 0x20,0x2a,0x20,0x4e,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x36,0x34,0x2e, + 0x79,0x20,0x2a,0x20,0x4e,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x36, + 0x34,0x2e,0x7a,0x20,0x2a,0x20,0x4e,0x2e,0x7a,0x29,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33, + 0x33,0x34,0x32,0x35,0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, + 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x73,0x68,0x5f,0x65,0x76,0x61,0x6c,0x5f,0x74, + 0x72,0x69,0x6c,0x69,0x6e,0x65,0x61,0x72,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x70, + 0x30,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x31,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x20,0x74,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x78,0x5b,0x32,0x5d,0x20,0x3d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x5b,0x5d,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74, + 0x2e,0x78,0x2c,0x20,0x74,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x77,0x79,0x5b,0x32,0x5d,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x5b,0x5d,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2e,0x79,0x2c,0x20,0x74, + 0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77, + 0x7a,0x5b,0x32,0x5d,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x5b,0x5d,0x28,0x31, + 0x2e,0x30,0x20,0x2d,0x20,0x74,0x2e,0x7a,0x2c,0x20,0x74,0x2e,0x7a,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x20,0x3d, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31, + 0x31,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x31, + 0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x31,0x37, + 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20, + 0x69,0x7a,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x7a,0x20,0x3c,0x20,0x32,0x3b,0x20, + 0x69,0x7a,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x79,0x20, + 0x3d,0x20,0x30,0x3b,0x20,0x69,0x79,0x20,0x3c,0x20,0x32,0x3b,0x20,0x69,0x79,0x2b, + 0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e, + 0x74,0x20,0x69,0x78,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x78,0x20,0x3c,0x20,0x32, + 0x3b,0x20,0x69,0x78,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x78,0x20,0x3d,0x3d,0x20, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x34,0x39,0x20,0x3d, + 0x20,0x70,0x30,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x34,0x39,0x20,0x3d,0x20,0x70,0x31,0x2e,0x78, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x79,0x20,0x3d,0x3d,0x20,0x30,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x30,0x20,0x3d,0x20,0x70, + 0x30,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x31,0x31,0x36,0x30,0x20,0x3d,0x20,0x70,0x31,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x7a,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x37,0x31,0x20,0x3d,0x20,0x70,0x30,0x2e, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x31,0x37,0x31,0x20,0x3d,0x20,0x70,0x31,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31,0x38,0x30,0x20,0x3d,0x20,0x69,0x76, + 0x65,0x63,0x33,0x28,0x5f,0x31,0x31,0x34,0x39,0x2c,0x20,0x5f,0x31,0x31,0x36,0x30, + 0x2c,0x20,0x5f,0x31,0x31,0x37,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x30,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x39,0x36,0x20,0x3d,0x20,0x28,0x28,0x77, + 0x78,0x5b,0x69,0x78,0x5d,0x20,0x2a,0x20,0x77,0x79,0x5b,0x69,0x79,0x5d,0x29,0x20, + 0x2a,0x20,0x77,0x7a,0x5b,0x69,0x7a,0x5d,0x29,0x20,0x2a,0x20,0x73,0x68,0x5f,0x70, + 0x72,0x6f,0x62,0x65,0x5f,0x65,0x6e,0x65,0x72,0x67,0x79,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73, + 0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x28,0x73,0x68,0x5f,0x65,0x76,0x61,0x6c,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x31,0x39,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x6f,0x74,0x61, + 0x6c,0x5f,0x77,0x20,0x2b,0x3d,0x20,0x5f,0x31,0x31,0x39,0x36,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x32,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x20,0x3e,0x20,0x30,0x2e, + 0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34, + 0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37, + 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x32,0x31,0x38,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20, + 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x32,0x31,0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x5f,0x31,0x32,0x31,0x38,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20, + 0x69,0x73,0x69,0x67,0x6e,0x28,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c, + 0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31, + 0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28, + 0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f, + 0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x61, + 0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61, + 0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x34,0x20,0x5f,0x36,0x35,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x35,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x36,0x36,0x20,0x3d,0x20,0x72,0x64,0x6d, + 0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f, + 0x36,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x32, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x36,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a, + 0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73, + 0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x32,0x20,0x5f,0x36,0x38,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63, + 0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d, + 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x36,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, + 0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, + 0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68, + 0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d, + 0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x38,0x33,0x2e,0x78,0x20, + 0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x36,0x38,0x39,0x2e,0x78,0x20,0x2a,0x20,0x32, + 0x2e,0x30,0x29,0x2c,0x20,0x5f,0x36,0x38,0x33,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e, + 0x74,0x28,0x5f,0x36,0x38,0x39,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29, + 0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63, + 0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x20,0x61,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78, + 0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x70,0x6f,0x77,0x28, + 0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, + 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2f,0x20, + 0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30, + 0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32, + 0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74, + 0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, + 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29,0x29,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64, + 0x69,0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x28,0x76,0x65, + 0x63,0x33,0x20,0x4e,0x2c,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73, + 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x5f,0x37,0x34,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f, + 0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x35, + 0x34,0x20,0x3d,0x20,0x5f,0x37,0x34,0x38,0x20,0x3c,0x3d,0x20,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x64,0x65,0x6c,0x74,0x61,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x34,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20, + 0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x34,0x38,0x20,0x3c, + 0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20, + 0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e, + 0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x31, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x34,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, + 0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20, + 0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x34, + 0x38,0x20,0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73, + 0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2c, + 0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, + 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x37,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64, + 0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, + 0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, + 0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, + 0x6f,0x73,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x29,0x2c,0x20,0x69,0x76, + 0x65,0x63,0x33,0x28,0x33,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, + 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, + 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, + 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35, + 0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x37,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6c,0x6f,0x63,0x61,0x6c, + 0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x2c,0x20,0x69,0x76,0x65,0x63,0x33, + 0x28,0x30,0x29,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x33,0x31,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x38,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30, + 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, + 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31, + 0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35, + 0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, + 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d, + 0x70,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32, + 0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x29,0x2c,0x20,0x69,0x76,0x65,0x63, + 0x33,0x28,0x33,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x33, 0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33, 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39, 0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30, - 0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63, - 0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32, - 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30, - 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, - 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31, - 0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35, - 0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, - 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, - 0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x28,0x6c,0x6f,0x63,0x61, - 0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x20,0x2b,0x20,0x73,0x32, - 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x34,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30, - 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, - 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31, - 0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35, - 0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, - 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64, - 0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x72,0x64,0x6d, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f, - 0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61, - 0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33, + 0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f, + 0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x20,0x2b,0x20,0x73,0x32,0x2c,0x20, + 0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x29,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28, + 0x33,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, + 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d, 0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20, 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66, - 0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28, + 0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28, 0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x73,0x6d, - 0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x61, - 0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76, - 0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x32,0x38,0x20,0x3d,0x20,0x76,0x70,0x6f, - 0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x31,0x32,0x36,0x2e,0x70,0x6c,0x61,0x6e, - 0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39, - 0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39, - 0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x39,0x32,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x33,0x39,0x20,0x3d,0x20,0x5f,0x39, - 0x33,0x34,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e, - 0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x39,0x33,0x39,0x20,0x3d,0x20,0x5f,0x39,0x32,0x38,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x39,0x33,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28, - 0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e, - 0x30,0x31,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31, - 0x36,0x34,0x31,0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x35,0x34,0x20,0x3d,0x20,0x5f, - 0x39,0x33,0x34,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f, - 0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, - 0x5f,0x39,0x35,0x35,0x20,0x3d,0x20,0x5f,0x39,0x35,0x34,0x20,0x3f,0x20,0x31,0x20, - 0x3a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72, - 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20, - 0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x5f,0x39,0x35,0x35,0x3b,0x20,0x69,0x2b,0x2b, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x72,0x64, + 0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72, + 0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d, + 0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31, + 0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x33,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69, + 0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x34,0x30, + 0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x31,0x34, + 0x32,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20, + 0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38, + 0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x35,0x31, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x30,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x32,0x35,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x69,0x73,0x5f, + 0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x32,0x35,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x35,0x31, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x39,0x35,0x20,0x3d,0x20,0x74,0x65,0x78,0x65, - 0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f, - 0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28, - 0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39, - 0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34, - 0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30, - 0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37, - 0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c, - 0x20,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39, - 0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31, - 0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20, - 0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37, - 0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29, - 0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39,0x39, + 0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70, + 0x6f,0x73,0x20,0x3d,0x20,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x6f,0x72,0x69, + 0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39, + 0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31, + 0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32, + 0x34,0x36,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e, + 0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, + 0x31,0x32,0x36,0x37,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x36,0x20,0x3f,0x20,0x31, + 0x20,0x3a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d, + 0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x5f,0x31,0x32,0x36,0x37,0x3b,0x20,0x69, + 0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x33,0x30,0x37,0x20,0x3d,0x20,0x74, + 0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x74,0x72,0x69,0x6c,0x65,0x74, + 0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65, + 0x63,0x32,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39, + 0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35, + 0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35, + 0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39, + 0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e, + 0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39, 0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35, 0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30, 0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31, 0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36, - 0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, - 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x39,0x39,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28, - 0x5f,0x39,0x39,0x35,0x2c,0x20,0x5f,0x39,0x39,0x35,0x29,0x20,0x3e,0x20,0x39,0x2e, + 0x2e,0x30,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x2c,0x20,0x39, + 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, + 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, + 0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38, + 0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a, + 0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29,0x29,0x2c,0x20,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65, + 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33, + 0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x64,0x6f,0x74,0x28,0x5f,0x31,0x33,0x30,0x37,0x2c,0x20,0x5f,0x31,0x33,0x30,0x37, + 0x29,0x20,0x3e,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33, + 0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33, + 0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x5f,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x28,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74, + 0x65,0x72,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31, + 0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x5f,0x31,0x33,0x33,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72, + 0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, + 0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74, + 0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e, + 0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61, + 0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x26,0x20,0x31,0x29,0x20, + 0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20, + 0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30, + 0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31, + 0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33, + 0x35,0x31,0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20,0x35, + 0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31, + 0x33,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f, + 0x61,0x74,0x28,0x5f,0x31,0x33,0x35,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34, + 0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37, + 0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39, + 0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20,0x33,0x29, + 0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33, + 0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34, + 0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x36,0x39,0x20,0x3d,0x20,0x61,0x62,0x73,0x28, + 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x31,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x36,0x39,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33, + 0x37,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31, + 0x33,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, + 0x33,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33, + 0x37,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x31,0x33,0x38,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x31,0x20, + 0x3e,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x38,0x32,0x20,0x3d, + 0x20,0x5f,0x31,0x33,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x33,0x38,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28, + 0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c, + 0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, + 0x33,0x39,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x33,0x20,0x3e,0x3d,0x20,0x5f, + 0x31,0x33,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x31,0x34,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x35,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x33, + 0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x33,0x20, + 0x3d,0x20,0x5f,0x31,0x33,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x31,0x34,0x30,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x36, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63, + 0x34,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, + 0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f,0x31,0x34,0x32,0x2e, + 0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73, + 0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69, + 0x74,0x79,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x31,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33, + 0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x34,0x35,0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, + 0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35,0x36,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x32,0x2e, + 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x31,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x35,0x32,0x20,0x2b, + 0x20,0x5f,0x31,0x34,0x35,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x31,0x34,0x36,0x36,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64, + 0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x36,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, + 0x34,0x37,0x31,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, + 0x20,0x5f,0x31,0x34,0x35,0x32,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x38,0x33,0x20,0x3d,0x20, + 0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39, + 0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39, + 0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, + 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, + 0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x36,0x31,0x2c,0x20, + 0x5f,0x31,0x34,0x35,0x32,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, + 0x20,0x5f,0x31,0x34,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x34,0x38,0x39,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c, + 0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x5f,0x31,0x34,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d, + 0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x36, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x35,0x32,0x38,0x20, + 0x3d,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64, + 0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28, + 0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76, + 0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x33, + 0x38,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x78,0x79,0x7a,0x20, + 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x77,0x29,0x29, + 0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x31,0x35,0x34,0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x38,0x2e,0x7a,0x20,0x2d, + 0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34, + 0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39, + 0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x32,0x30,0x37,0x38,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x38,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x5f,0x32,0x30,0x37,0x38,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34, + 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68, + 0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33, + 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x38,0x39,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, + 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32,0x35, + 0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29,0x20,0x2b, + 0x20,0x28,0x28,0x5f,0x31,0x34,0x38,0x39,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74, + 0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, + 0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76, + 0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x5f,0x31,0x34,0x37, + 0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x36,0x29,0x20,0x2b,0x20,0x39,0x2e, 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36, 0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65, - 0x2d,0x30,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20,0x2b, - 0x3d,0x20,0x28,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20,0x30, - 0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36, - 0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30, - 0x31,0x39,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74, - 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77, - 0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20, - 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d, - 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f, - 0x31,0x30,0x31,0x39,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d, - 0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x28,0x5f,0x31,0x30,0x31,0x39,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31, - 0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31, - 0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34, - 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x33,0x39,0x20,0x3d,0x20,0x28, - 0x5f,0x31,0x30,0x31,0x39,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31,0x30,0x33,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x30, - 0x33,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34, - 0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, - 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, - 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74, - 0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f, - 0x31,0x30,0x31,0x39,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37, - 0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, - 0x30,0x35,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x31,0x30,0x35,0x39,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x37,0x2e, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30, - 0x36,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x37,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x36,0x32,0x20,0x3d,0x20,0x5f, - 0x31,0x30,0x35,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x30,0x36,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x37,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x36,0x32,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x37, - 0x30,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x30, - 0x35,0x37,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x20,0x5f,0x31,0x30,0x36,0x32, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37, - 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x38,0x33,0x20,0x3d,0x20, - 0x5f,0x31,0x30,0x36,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x30,0x35,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30, - 0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x31,0x30,0x38,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30, - 0x39,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x36,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31, - 0x30,0x35,0x37,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x39,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x38, - 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x39,0x31,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28, - 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a, - 0x20,0x28,0x28,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68, - 0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, - 0x28,0x4e,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31, - 0x32,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73, - 0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2b,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34, - 0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32, - 0x35,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31,0x34,0x30,0x20, - 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20, - 0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x5f,0x31,0x31,0x34,0x34,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x69,0x7a,0x65,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69, - 0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x31,0x34,0x39,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, - 0x65,0x28,0x5f,0x31,0x31,0x34,0x30,0x20,0x2b,0x20,0x5f,0x31,0x31,0x34,0x34,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x35, - 0x34,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f, - 0x31,0x31,0x34,0x34,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x35,0x39,0x20,0x3d,0x20,0x6d, - 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x31,0x34,0x30,0x29, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x31,0x31,0x37,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35, - 0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29, - 0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, - 0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61, - 0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x5f,0x31,0x31,0x34,0x39,0x2c,0x20,0x5f,0x31,0x31,0x34,0x30,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x31,0x37,0x31,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31,0x37,0x37,0x20, - 0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x39, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x37,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x31,0x32,0x33,0x30,0x20,0x3d,0x20,0x5f,0x39,0x33,0x34,0x2e, - 0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63, - 0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31, - 0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36, - 0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x32,0x34,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31, - 0x32,0x33,0x30,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, - 0x31,0x32,0x33,0x30,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20, - 0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x34,0x34,0x20,0x3d,0x20,0x5f, - 0x31,0x32,0x34,0x30,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35, - 0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x37,0x35,0x20,0x3d,0x20,0x5f, - 0x31,0x32,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x37,0x35,0x2e, - 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28, - 0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20, - 0x5f,0x31,0x31,0x37,0x37,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, - 0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69, - 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, - 0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30, - 0x39,0x38,0x37,0x33,0x33,0x34,0x32,0x35,0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35, - 0x39,0x33,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x31,0x37,0x37, - 0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e, - 0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a, - 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e, - 0x30,0x20,0x2a,0x20,0x5f,0x31,0x31,0x35,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x31, - 0x35,0x34,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34, - 0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32, - 0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a, - 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74, - 0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x5f,0x31,0x36,0x37,0x35,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x32, - 0x34,0x34,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x31,0x35,0x34,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f, - 0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x49, - 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x32,0x38,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, - 0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c, - 0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33, + 0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f, + 0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x32,0x30,0x37,0x38, + 0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x34,0x31,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x5f,0x31,0x34,0x36,0x36,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75, + 0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f, + 0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x38,0x39, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65, + 0x6e,0x74,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x35,0x39,0x33,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d, + 0x6f,0x64,0x28,0x5f,0x31,0x35,0x38,0x39,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33, 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, 0x5f,0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49, - 0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x32, - 0x38,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, + 0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x35, + 0x39,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72, 0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72, 0x61,0x6d,0x5f,0x31,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34, - 0x20,0x5f,0x31,0x33,0x30,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x20,0x5f,0x31,0x36,0x31,0x36,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, 0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, 0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79, - 0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x39, - 0x33,0x34,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x28,0x5f,0x39,0x33,0x34,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f, - 0x68,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x33,0x30,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x30,0x34,0x2e,0x78,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x31,0x35,0x20, - 0x3d,0x20,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c, - 0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x31,0x33,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x31,0x33,0x31,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31, - 0x32,0x38,0x37,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x32,0x31,0x20, - 0x3d,0x20,0x5f,0x31,0x33,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x32,0x31,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x31,0x31, - 0x35,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x31,0x37, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x33,0x31,0x20,0x3d,0x20,0x46,0x72,0x65,0x73, - 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x33,0x34,0x31,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28, - 0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e, - 0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33, - 0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x20,0x3c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39, - 0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37, - 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x34, - 0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f, - 0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74, - 0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, - 0x20,0x5f,0x31,0x33,0x36,0x30,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e, - 0x30,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x33,0x35,0x35,0x29, + 0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, + 0x32,0x34,0x36,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x73,0x63,0x72,0x65,0x65, + 0x6e,0x5f,0x68,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x36,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x31,0x36,0x2e, + 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x36, + 0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20, + 0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20, + 0x3d,0x20,0x5f,0x31,0x34,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d, + 0x20,0x5f,0x31,0x34,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x33,0x37,0x20,0x3d, + 0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x34,0x37,0x20,0x3d,0x20,0x76,0x70,0x6f, + 0x73,0x20,0x2d,0x20,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72, + 0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30, + 0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x36,0x34,0x39,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x49,0x6e,0x74,0x20,0x3c,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x35,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x34, + 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x35,0x35,0x20,0x3d, + 0x20,0x5f,0x31,0x35,0x39,0x39,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36, + 0x35,0x35,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x36,0x35,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x5f,0x31,0x33,0x36,0x39,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31, - 0x32,0x38,0x37,0x2e,0x7a,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, - 0x33,0x35,0x35,0x2e,0x78,0x29,0x29,0x20,0x2f,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x37,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x39, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d, - 0x20,0x5f,0x31,0x33,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x33,0x37,0x39,0x20, - 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73,0x65, - 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x6e,0x64,0x69, - 0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x20,0x3c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31, - 0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20, - 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x30,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x31,0x3b, + 0x74,0x20,0x5f,0x31,0x36,0x36,0x31,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61, + 0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x36,0x36, + 0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28, + 0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70, + 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x36,0x37,0x32,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28, + 0x5f,0x31,0x36,0x36,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x36,0x38,0x31,0x20,0x3d,0x20, + 0x69,0x6e,0x74,0x28,0x5f,0x31,0x35,0x39,0x39,0x2e,0x7a,0x20,0x2a,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x28,0x5f,0x31,0x36,0x36,0x37,0x2e,0x78,0x29,0x29,0x20,0x2f,0x20, + 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x5f, + 0x31,0x35,0x39,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d, + 0x20,0x5f,0x31,0x36,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37, + 0x20,0x3d,0x20,0x5f,0x31,0x36,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36,0x37,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20, + 0x5f,0x31,0x36,0x39,0x31,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65, + 0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x31,0x36,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x20,0x3c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32, + 0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32, + 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20, - 0x5f,0x31,0x33,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x31, - 0x33,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69, - 0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73, - 0x70,0x65,0x63,0x5f,0x72,0x61,0x79,0x6d,0x61,0x72,0x63,0x68,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d, 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x37,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x30,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x31,0x3b,0x0a, + 0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x37,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f, + 0x31,0x36,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x39,0x3b,0x0a,0x20,0x20, + 0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x31,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, - 0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72, - 0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70, - 0x65,0x63,0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x34,0x32,0x32,0x20,0x3d,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74, - 0x53,0x70,0x65,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x32,0x33,0x20,0x3d,0x20,0x5f, - 0x31,0x34,0x32,0x32,0x20,0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f, - 0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x33,0x36,0x20,0x3d,0x20,0x6d, - 0x69,0x78,0x28,0x5f,0x31,0x34,0x32,0x33,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x64, - 0x6f,0x74,0x28,0x5f,0x31,0x34,0x32,0x33,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35, - 0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30, - 0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35, - 0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30, - 0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29, - 0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, - 0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x20,0x3d,0x20, - 0x5f,0x31,0x34,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x34,0x34,0x35,0x20,0x3d,0x20, - 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74, - 0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31, - 0x31,0x35,0x39,0x2c,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x31,0x34,0x35,0x30,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34, - 0x31,0x35,0x39,0x32,0x37,0x34,0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32, - 0x31,0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28, - 0x28,0x5f,0x31,0x34,0x33,0x36,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x33,0x33,0x31, - 0x20,0x2a,0x20,0x5f,0x31,0x34,0x34,0x35,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65, - 0x63,0x33,0x28,0x5f,0x31,0x34,0x34,0x35,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20, - 0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63, - 0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30, - 0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31, - 0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x34,0x35, - 0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28, - 0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31, - 0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x35,0x30,0x29, - 0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x31, - 0x35,0x39,0x2c,0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31, - 0x2e,0x30,0x20,0x2d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33, - 0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33, - 0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x34, - 0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x35, - 0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x30,0x34,0x20,0x3d,0x20,0x72, - 0x64,0x6d,0x5f,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66,0x66, - 0x75,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x35, - 0x29,0x20,0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e, - 0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28, - 0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x33,0x33,0x31,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29, - 0x29,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74, - 0x28,0x5f,0x31,0x35,0x30,0x34,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32, - 0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39, - 0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30, - 0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38, - 0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29, - 0x2c,0x20,0x5f,0x31,0x35,0x30,0x34,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x39, - 0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75, - 0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32,0x35, - 0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29,0x20,0x2a, - 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, - 0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x33,0x30,0x35,0x29,0x20,0x2a, - 0x20,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73, - 0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x35,0x33,0x39,0x20,0x3d,0x20,0x5f,0x39,0x33,0x34, - 0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x20, - 0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, - 0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32, - 0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x35,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x35,0x33,0x39,0x29,0x0a,0x20, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x35,0x20,0x3d,0x20,0x5f,0x31,0x36,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x39,0x35, + 0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x72,0x61,0x79,0x6d, + 0x61,0x72,0x63,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x35,0x34,0x38,0x20,0x3d,0x20,0x6c,0x65,0x6e, - 0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74,0x29,0x20,0x3c,0x20,0x5f,0x39,0x33, - 0x34,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73, - 0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x35,0x34,0x38,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x35,0x34,0x38,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28, - 0x5f,0x39,0x33,0x34,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x5f,0x39,0x33,0x34,0x2e,0x61,0x6d, - 0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20, - 0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, - 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20, - 0x5f,0x31,0x33,0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c, - 0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x39,0x33,0x34,0x2e, - 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20, - 0x5f,0x39,0x33,0x34,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74, - 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, - 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x33,0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36,0x20,0x3d, - 0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x31,0x34,0x30,0x2c, - 0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x20,0x3d,0x20,0x5f,0x31,0x32, - 0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x39, - 0x30,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x33,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67, - 0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x31,0x37,0x37,0x20,0x2a,0x20, - 0x5f,0x31,0x35,0x39,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34, - 0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x32,0x36,0x2e,0x64,0x65, - 0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, - 0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, - 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, - 0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x65,0x6d,0x69,0x73,0x73, - 0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c, - 0x20,0x5f,0x31,0x32,0x36,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68, - 0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33,0x34, - 0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x31, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x36,0x31,0x39,0x20,0x3d,0x20,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x32,0x33,0x20,0x3d,0x20,0x6d,0x69, - 0x78,0x28,0x5f,0x31,0x36,0x31,0x39,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, - 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, - 0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30, - 0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, - 0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79, - 0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a, - 0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33, - 0x34,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20, - 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31, - 0x36,0x33,0x37,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x5f,0x31,0x36,0x34,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f, - 0x31,0x36,0x33,0x37,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, - 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33, - 0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d, + 0x20,0x5f,0x31,0x36,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76, + 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x5f, + 0x31,0x36,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x5f,0x31,0x36,0x37, + 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x36,0x39,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73, + 0x70,0x65,0x63,0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x37,0x33,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x35,0x20,0x2a, + 0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x34,0x20,0x5f,0x31,0x37,0x35,0x39,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d, + 0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x34,0x37,0x31,0x2c,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, + 0x37,0x36,0x34,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32,0x37,0x34, + 0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31,0x38,0x37,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67, + 0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f, + 0x31,0x37,0x33,0x37,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x31,0x37,0x33,0x37,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32, + 0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33, + 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36, + 0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31, + 0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20, + 0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x33,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x35, + 0x39,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x37,0x35, + 0x39,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72, + 0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, + 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, + 0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x37,0x36,0x34,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38, + 0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x36,0x34,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x34,0x37,0x31,0x2c,0x20,0x32,0x2e, + 0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20, + 0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33, + 0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3c,0x20,0x30,0x2e,0x36, + 0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34, + 0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x32, + 0x35,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x72,0x64,0x66, + 0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63, + 0x32,0x28,0x5f,0x31,0x34,0x37,0x31,0x2c,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x33,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f, + 0x31,0x34,0x35,0x32,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73, + 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x38,0x33,0x38,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66, + 0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, + 0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x38,0x33,0x38,0x20,0x2a,0x20,0x28,0x28, + 0x5f,0x31,0x36,0x33,0x37,0x20,0x2a,0x20,0x5f,0x31,0x38,0x32,0x35,0x2e,0x78,0x29, + 0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x38,0x32,0x35,0x2e,0x79,0x29, + 0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x73, + 0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, + 0x30,0x20,0x2d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e, + 0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36, + 0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x6e,0x64,0x69,0x72,0x65, + 0x63,0x74,0x44,0x69,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x73,0x68,0x5f,0x65,0x6e,0x61, + 0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x37,0x36,0x20,0x3d,0x20,0x63,0x6c, + 0x61,0x6d,0x70,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x35,0x39,0x33,0x29, + 0x20,0x2b,0x20,0x28,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x39, + 0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x36,0x33,0x2e,0x30,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x38,0x30,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, + 0x33,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x31,0x38,0x37,0x36,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x35,0x20,0x3d,0x20,0x5f,0x31, + 0x38,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36,0x20, + 0x3d,0x20,0x6d,0x69,0x6e,0x28,0x28,0x5f,0x31,0x38,0x38,0x30,0x20,0x2b,0x20,0x69, + 0x76,0x65,0x63,0x33,0x28,0x31,0x29,0x29,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28, + 0x36,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x20, + 0x3d,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x5f,0x31,0x38,0x37,0x36,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x38,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72, + 0x65,0x63,0x74,0x44,0x69,0x66,0x66,0x20,0x3d,0x20,0x73,0x68,0x5f,0x65,0x76,0x61, + 0x6c,0x5f,0x74,0x72,0x69,0x6c,0x69,0x6e,0x65,0x61,0x72,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x38,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f, + 0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x39, + 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x30,0x20, + 0x3d,0x20,0x5f,0x31,0x36,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x34,0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x33,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63, + 0x74,0x44,0x69,0x66,0x66,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x69, + 0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x30,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32, + 0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x31,0x34,0x20,0x3d,0x20,0x69,0x6e,0x64,0x69, + 0x72,0x65,0x63,0x74,0x44,0x69,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x33,0x20,0x3d,0x20,0x6d, + 0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x39,0x31, + 0x34,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39, + 0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35, + 0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31, + 0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e, + 0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32, + 0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x31,0x39, + 0x31,0x34,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72, + 0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69, + 0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x64,0x69,0x72,0x65,0x63,0x74,0x44,0x69,0x66,0x66,0x20,0x3d,0x20,0x5f,0x31,0x39, + 0x32,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68, + 0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33, + 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x33,0x37,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x39,0x32,0x33,0x29,0x20,0x2a,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34, + 0x32,0x35,0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29, + 0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, + 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x37,0x29, + 0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66, + 0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x39,0x34,0x35,0x20,0x3d,0x20,0x5f, + 0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63, + 0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, + 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x39,0x35,0x34,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x39,0x34, + 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x35,0x34,0x20,0x3d, + 0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74,0x29,0x20,0x3c, + 0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69, + 0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x35,0x34,0x20,0x3d,0x20,0x5f, + 0x31,0x39,0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x39,0x35, + 0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, + 0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x61,0x6d,0x62,0x69,0x65, + 0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x5f, + 0x31,0x32,0x34,0x36,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28, + 0x6c,0x69,0x67,0x68,0x74,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20, + 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, + 0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x37,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28, + 0x28,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x61,0x6d, + 0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29, + 0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, + 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x37,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x32,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63, + 0x74,0x28,0x2d,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x39,0x34,0x20,0x3d,0x20,0x73,0x6b,0x79, + 0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x33,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28, + 0x28,0x5f,0x31,0x34,0x38,0x39,0x20,0x2a,0x20,0x5f,0x31,0x39,0x39,0x34,0x29,0x20, + 0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30, + 0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69, + 0x78,0x28,0x5f,0x31,0x34,0x32,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72, + 0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74,0x72,0x69,0x78, + 0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20, + 0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x5f, + 0x31,0x32,0x34,0x36,0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63, + 0x61,0x6c,0x65,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74, + 0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x31,0x34,0x32,0x2e, + 0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f, + 0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x69,0x73,0x5f,0x70, + 0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20, + 0x5f,0x32,0x30,0x32,0x32,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x32,0x30,0x32,0x36,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x30, + 0x32,0x32,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33, + 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, + 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, + 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, + 0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x32, + 0x30,0x32,0x36,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x32, + 0x30,0x32,0x36,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x32, + 0x30,0x32,0x36,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x69,0x73, + 0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x32,0x30,0x34,0x30,0x20, + 0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x32,0x30,0x34,0x34,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x30,0x34,0x30, + 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, + 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38, + 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20, + 0x3d,0x20,0x5f,0x32,0x30,0x34,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x31,0x2e,0x78,0x3b,0x0a,0x20, + 0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x32,0x30,0x34,0x34,0x2e,0x79,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x31,0x2e, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31, - 0x36,0x34,0x31,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x32,0x30,0x34,0x34,0x2e, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es @@ -2469,7 +2826,7 @@ vs_trile_source_glsl300es := u8.[ int hsv_lighting; }; - uniform trile_world_config _126; + uniform trile_world_config _142; struct trile_fs_params { @@ -2486,9 +2843,10 @@ vs_trile_source_glsl300es := u8.[ int is_preview; highp vec3 rdm_tint; highp float rdm_diff_saturation; + int sh_enabled; }; - uniform trile_fs_params _934; + uniform trile_fs_params _1246; uniform highp sampler2D triletex_trilesmp; uniform highp sampler2DShadow shadowtex_shadowsmp; @@ -2496,6 +2854,7 @@ vs_trile_source_glsl300es := u8.[ uniform highp sampler2D ssaotex_rdmsmp; uniform highp sampler2D rdm_atlas_rdmsmp; uniform highp sampler2D brdf_lut_rdmsmp; + uniform highp sampler2D sh_chunk_rdmsmp; in highp vec3 vpos; in highp vec3 ipos; @@ -2514,27 +2873,27 @@ vs_trile_source_glsl300es := u8.[ highp float DistributionGGX(highp vec3 N, highp vec3 H, highp float roughness) { - highp float _209 = roughness * roughness; - highp float _213 = _209 * _209; - highp float _218 = max(dot(N, H), 0.0); - highp float _226 = ((_218 * _218) * (_213 - 1.0)) + 1.0; - return _213 / ((3.1415927410125732421875 * _226) * _226); + highp float _225 = roughness * roughness; + highp float _229 = _225 * _225; + highp float _234 = max(dot(N, H), 0.0); + highp float _242 = ((_234 * _234) * (_229 - 1.0)) + 1.0; + return _229 / ((3.1415927410125732421875 * _242) * _242); } highp float GeometrySmith(highp vec3 N, highp vec3 V, highp vec3 L, highp float roughness) { - highp float _238 = roughness + 1.0; - highp float _244 = (_238 * _238) * 0.125; - highp float _249 = max(dot(N, V), 0.0); - highp float _254 = max(dot(N, L), 0.0); - highp float _259 = 1.0 - _244; - return (_254 / ((_254 * _259) + _244)) * (_249 / ((_249 * _259) + _244)); + highp float _254 = roughness + 1.0; + highp float _260 = (_254 * _254) * 0.125; + highp float _265 = max(dot(N, V), 0.0); + highp float _270 = max(dot(N, L), 0.0); + highp float _275 = 1.0 - _260; + return (_270 / ((_270 * _275) + _260)) * (_265 / ((_265 * _275) + _260)); } highp vec4 rdm_atlas_rect(ivec3 local_pos, int roughness) { - int _441 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); - return texelFetch(rdm_lookup_trilesmp, ivec2(_441 % 512, _441 / 512), 0); + int _457 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); + return texelFetch(rdm_lookup_trilesmp, ivec2(_457 % 512, _457 / 512), 0); } highp vec3 FresnelSchlickRoughness(highp float cosTheta, highp vec3 F0, highp float roughness) @@ -2544,35 +2903,35 @@ vs_trile_source_glsl300es := u8.[ int rdm_face_from_normal(highp vec3 N) { - highp vec3 _377 = abs(N); - highp float _379 = _377.y; - highp float _381 = _377.x; - bool _382 = _379 >= _381; - bool _390; - if (_382) + highp vec3 _393 = abs(N); + highp float _395 = _393.y; + highp float _397 = _393.x; + bool _398 = _395 >= _397; + bool _406; + if (_398) { - _390 = _379 >= _377.z; + _406 = _395 >= _393.z; } else { - _390 = _382; + _406 = _398; } - if (_390) + if (_406) { return (N.y >= 0.0) ? 0 : 1; } - highp float _399 = _377.z; - bool _402 = _399 >= _381; - bool _410; - if (_402) + highp float _415 = _393.z; + bool _418 = _415 >= _397; + bool _426; + if (_418) { - _410 = _399 >= _379; + _426 = _415 >= _395; } else { - _410 = _402; + _426 = _418; } - if (_410) + if (_426) { return (N.z >= 0.0) ? 2 : 3; } @@ -2589,44 +2948,44 @@ vs_trile_source_glsl300es := u8.[ highp vec3 vc = v; if ((face / 2) == 0) { - highp vec3 _1683 = vc; - _1683.z = v.y; - _1683.y = v.z; - vc = _1683; + highp vec3 _2088 = vc; + _2088.z = v.y; + _2088.y = v.z; + vc = _2088; } if ((face / 2) == 2) { - highp vec3 _1687 = vc; - _1687.z = v.x; - _1687.x = v.z; - vc = _1687; + highp vec3 _2092 = vc; + _2092.z = v.x; + _2092.x = v.z; + vc = _2092; } if ((face % 2) == 1) { - highp vec3 _1691 = vc; - _1691.z = _1691.z * (-1.0); - vc = _1691; + highp vec3 _2096 = vc; + _2096.z = _2096.z * (-1.0); + vc = _2096; } - highp vec2 _357 = vc.xy * (1.0 / ((abs(vc.x) + abs(vc.y)) + vc.z)); - highp float _359 = _357.x; - highp float _361 = _357.y; - return (vec2(_359 + _361, _359 - _361) * 0.5) + vec2(0.5); + highp vec2 _373 = vc.xy * (1.0 / ((abs(vc.x) + abs(vc.y)) + vc.z)); + highp float _375 = _373.x; + highp float _377 = _373.y; + return (vec2(_375 + _377, _375 - _377) * 0.5) + vec2(0.5); } highp vec3 sky(highp vec3 skypos, highp vec3 sunpos) { - highp vec3 _117 = normalize(skypos); - highp float _122 = dot(_117, normalize(sunpos)); - highp float _137 = _117.y; - highp vec3 result = mix(_126.skyBase, _126.skyTop, vec3(clamp(_137 * 2.0, 0.0, 0.699999988079071044921875))) + ((_126.sunHalo * clamp((_122 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); - if (_122 > 0.99989998340606689453125) + highp vec3 _133 = normalize(skypos); + highp float _138 = dot(_133, normalize(sunpos)); + highp float _153 = _133.y; + highp vec3 result = mix(_142.skyBase, _142.skyTop, vec3(clamp(_153 * 2.0, 0.0, 0.699999988079071044921875))) + ((_142.sunHalo * clamp((_138 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); + if (_138 > 0.99989998340606689453125) { - result = _126.sunDisk; + result = _142.sunDisk; } - highp vec3 _186 = result; - highp vec3 _187 = _186 + (mix(_126.horizonHalo, vec3(0.0), vec3(clamp(abs(_137) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); - result = _187; - return _187; + highp vec3 _202 = result; + highp vec3 _203 = _202 + (mix(_142.horizonHalo, vec3(0.0), vec3(clamp(abs(_153) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); + result = _203; + return _203; } highp vec3 sky_reflect(inout highp vec3 R, highp vec3 sunpos) @@ -2642,47 +3001,47 @@ vs_trile_source_glsl300es := u8.[ highp vec3 rdm_spec_raymarch(highp vec3 N, highp vec3 V, highp vec3 diff, int face, ivec2 faceOffset, int rdmSize, highp vec2 atlasInvSize) { - highp vec3 _496 = reflect(V, N); + highp vec3 _512 = reflect(V, N); for (int i = 0; i < 40; i++) { - highp vec3 _526 = diff + (_496 * (0.5 * float(i + 1))); - if (dot(_526, N) < 0.0) + highp vec3 _542 = diff + (_512 * (0.5 * float(i + 1))); + if (dot(_542, N) < 0.0) { continue; } - highp vec3 param = normalize(_526); + highp vec3 param = normalize(_542); int param_1 = face; - highp vec4 _560 = texture(rdm_atlas_rdmsmp, (vec2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize, 0.0); - highp float _563 = length(_526); - highp float _566 = _560.w; - bool _567 = _566 > 0.0; - bool _574; - if (_567) - { - _574 = _566 < _563; - } - else - { - _574 = _567; - } - bool _583; - if (_574) - { - _583 = (_566 + 0.5) > _563; - } - else - { - _583 = _574; - } + highp vec4 _576 = texture(rdm_atlas_rdmsmp, (vec2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize, 0.0); + highp float _579 = length(_542); + highp float _582 = _576.w; + bool _583 = _582 > 0.0; + bool _590; if (_583) { - return _560.xyz; + _590 = _582 < _579; + } + else + { + _590 = _583; + } + bool _599; + if (_590) + { + _599 = (_582 + 0.5) > _579; + } + else + { + _599 = _590; + } + if (_599) + { + return _576.xyz; } } - highp vec3 param_2 = _496; - highp vec3 param_3 = _126.sunPosition; - highp vec3 _597 = sky_reflect(param_2, param_3); - return _597; + highp vec3 param_2 = _512; + highp vec3 param_3 = _142.sunPosition; + highp vec3 _613 = sky_reflect(param_2, param_3); + return _613; } highp vec3 rdm_spec_single(highp vec3 N, highp vec3 V, highp vec3 diff, int face, ivec2 faceOffset, int rdmSize, highp vec2 atlasInvSize) @@ -2692,6 +3051,85 @@ vs_trile_source_glsl300es := u8.[ return texture(rdm_atlas_rdmsmp, (vec2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize).xyz; } + highp float sh_probe_energy(ivec3 probe) + { + int _1048 = probe.x * 3; + int _1055 = (probe.z * 64) + probe.y; + return max(0.88622701168060302734375 * ((texelFetch(sh_chunk_rdmsmp, ivec2(_1048, _1055), 0).x + texelFetch(sh_chunk_rdmsmp, ivec2(_1048 + 1, _1055), 0).x) + texelFetch(sh_chunk_rdmsmp, ivec2(_1048 + 2, _1055), 0).x), 0.0); + } + + highp vec3 sh_eval(ivec3 probe, highp vec3 N) + { + int _926 = probe.x * 3; + int _934 = (probe.z * 64) + probe.y; + highp vec4 _944 = texelFetch(sh_chunk_rdmsmp, ivec2(_926, _934), 0); + highp vec4 _954 = texelFetch(sh_chunk_rdmsmp, ivec2(_926 + 1, _934), 0); + highp vec4 _964 = texelFetch(sh_chunk_rdmsmp, ivec2(_926 + 2, _934), 0); + return max(vec3((0.88622701168060302734375 * _944.x) + (1.02332699298858642578125 * (((_944.w * N.x) + (_944.y * N.y)) + (_944.z * N.z))), (0.88622701168060302734375 * _954.x) + (1.02332699298858642578125 * (((_954.w * N.x) + (_954.y * N.y)) + (_954.z * N.z))), (0.88622701168060302734375 * _964.x) + (1.02332699298858642578125 * (((_964.w * N.x) + (_964.y * N.y)) + (_964.z * N.z)))) * vec3(0.3183098733425140380859375), vec3(0.0)); + } + + highp vec3 sh_eval_trilinear(ivec3 p0, ivec3 p1, highp vec3 t, highp vec3 N) + { + highp float wx[2] = float[](1.0 - t.x, t.x); + highp float wy[2] = float[](1.0 - t.y, t.y); + highp float wz[2] = float[](1.0 - t.z, t.z); + highp vec3 result = vec3(0.0); + highp float total_w = 0.0; + int _1149; + int _1160; + int _1171; + for (int iz = 0; iz < 2; iz++) + { + for (int iy = 0; iy < 2; iy++) + { + for (int ix = 0; ix < 2; ix++) + { + if (ix == 0) + { + _1149 = p0.x; + } + else + { + _1149 = p1.x; + } + if (iy == 0) + { + _1160 = p0.y; + } + else + { + _1160 = p1.y; + } + if (iz == 0) + { + _1171 = p0.z; + } + else + { + _1171 = p1.z; + } + ivec3 _1180 = ivec3(_1149, _1160, _1171); + ivec3 param = _1180; + highp float _1196 = ((wx[ix] * wy[iy]) * wz[iz]) * sh_probe_energy(param); + ivec3 param_1 = _1180; + highp vec3 param_2 = N; + result += (sh_eval(param_1, param_2) * _1196); + total_w += _1196; + } + } + } + highp vec3 _1218; + if (total_w > 0.001000000047497451305389404296875) + { + _1218 = result / vec3(total_w); + } + else + { + _1218 = vec3(0.0); + } + return _1218; + } + int isign(highp float f) { return (f < 0.0) ? (-1) : 1; @@ -2701,22 +3139,22 @@ vs_trile_source_glsl300es := u8.[ { ivec3 param = local_pos; int param_1 = 7; - highp vec4 _639 = rdm_atlas_rect(param, param_1); - if (_639.z <= 0.0) + highp vec4 _655 = rdm_atlas_rect(param, param_1); + if (_655.z <= 0.0) { return fallback; } highp vec3 param_2 = N; - int _650 = rdm_face_from_normal(param_2); - highp vec4 param_3 = _639; - int param_4 = _650; + int _666 = rdm_face_from_normal(param_2); + highp vec4 param_3 = _655; + int param_4 = _666; int param_5 = 2; ivec2 param_6 = textureSize(rdm_atlas_rdmsmp, 0); - ivec2 _667 = rdm_face_offset(param_3, param_4, param_5, param_6); + ivec2 _683 = rdm_face_offset(param_3, param_4, param_5, param_6); highp vec3 param_7 = N; - int param_8 = _650; - highp vec2 _673 = rdm_hemioct(param_7, param_8); - return texelFetch(rdm_atlas_rdmsmp, ivec2(_667.x + int(_673.x * 2.0), _667.y + int(_673.y * 2.0)), 0).xyz; + int param_8 = _666; + highp vec2 _689 = rdm_hemioct(param_7, param_8); + return texelFetch(rdm_atlas_rdmsmp, ivec2(_683.x + int(_689.x * 2.0), _683.y + int(_689.y * 2.0)), 0).xyz; } highp vec3 smix(highp vec3 a, highp vec3 b, highp float t) @@ -2727,16 +3165,16 @@ vs_trile_source_glsl300es := u8.[ highp vec3 rdm_indirect_diffuse(highp vec3 N, highp vec3 diff, ivec3 local_pos) { highp vec3 param = N; - int _732 = rdm_face_from_normal(param); - bool _738 = _732 <= 1; + int _748 = rdm_face_from_normal(param); + bool _754 = _748 <= 1; highp vec2 delta; - if (_738) + if (_754) { delta = vec2(diff.x, diff.z); } else { - if (_732 <= 3) + if (_748 <= 3) { delta = vec2(diff.x, diff.y); } @@ -2747,7 +3185,7 @@ vs_trile_source_glsl300es := u8.[ } ivec3 s1; ivec3 s2; - if (_738) + if (_754) { highp float param_1 = delta.x; s1 = ivec3(isign(param_1), 0, 0); @@ -2758,7 +3196,7 @@ vs_trile_source_glsl300es := u8.[ } else { - if (_732 <= 3) + if (_748 <= 3) { highp float param_5 = delta.x; s1 = ivec3(isign(param_5), 0, 0); @@ -2778,16 +3216,16 @@ vs_trile_source_glsl300es := u8.[ } } highp vec3 param_13 = N; - ivec3 param_14 = ivec3(mod(vec3(local_pos), vec3(32.0))); + ivec3 param_14 = clamp(local_pos, ivec3(0), ivec3(31)); highp vec3 param_15 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); highp vec3 param_16 = N; - ivec3 param_17 = ivec3(mod(vec3(local_pos + s1), vec3(32.0))); + ivec3 param_17 = clamp(local_pos + s1, ivec3(0), ivec3(31)); highp vec3 param_18 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); highp vec3 param_19 = N; - ivec3 param_20 = ivec3(mod(vec3(local_pos + s2), vec3(32.0))); + ivec3 param_20 = clamp(local_pos + s2, ivec3(0), ivec3(31)); highp vec3 param_21 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); highp vec3 param_22 = N; - ivec3 param_23 = ivec3(mod(vec3((local_pos + s1) + s2), vec3(32.0))); + ivec3 param_23 = clamp((local_pos + s1) + s2, ivec3(0), ivec3(31)); highp vec3 param_24 = vec3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); highp vec3 param_25 = rdm_sample_diff_probe(param_13, param_14, param_15); highp vec3 param_26 = rdm_sample_diff_probe(param_16, param_17, param_18); @@ -2803,81 +3241,81 @@ vs_trile_source_glsl300es := u8.[ void main() { - bool _928 = vpos.y < (_126.planeHeight - 0.00999999977648258209228515625); - bool _939; - if (_928) + bool _1240 = vpos.y < (_142.planeHeight - 0.00999999977648258209228515625); + bool _1251; + if (_1240) { - _939 = _934.is_reflection == 1; + _1251 = _1246.is_reflection == 1; } else { - _939 = _928; + _1251 = _1240; } - if (_939) + if (_1251) { discard; } highp vec3 sample_pos = ipos - (orig_normal * 0.0199999995529651641845703125); - bool _954 = _934.is_reflection == 1; - int _955 = _954 ? 1 : 3; + bool _1266 = _1246.is_reflection == 1; + int _1267 = _1266 ? 1 : 3; highp vec4 trixel_material; - for (int i = 0; i < _955; i++) + for (int i = 0; i < _1267; i++) { - highp vec4 _995 = texelFetch(triletex_trilesmp, ivec2(int(clamp(sample_pos.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(sample_pos.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(sample_pos.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); - trixel_material = _995; - if (dot(_995, _995) > 9.9999997473787516355514526367188e-05) + highp vec4 _1307 = texelFetch(triletex_trilesmp, ivec2(int(clamp(sample_pos.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(clamp(sample_pos.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(clamp(sample_pos.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16)), 0); + trixel_material = _1307; + if (dot(_1307, _1307) > 9.9999997473787516355514526367188e-05) { break; } sample_pos += (to_center * 0.100000001490116119384765625); } - int _1019 = int(round(trixel_material.w * 255.0)); + int _1331 = int(round(trixel_material.w * 255.0)); highp float emittance = 0.0; int roughnessInt = 0; highp float roughness = 0.0; highp float metallic = 0.0; - if ((_1019 & 1) != 0) + if ((_1331 & 1) != 0) { - emittance = float((_1019 >> 1) & 127) * 0.0078740157186985015869140625; + emittance = float((_1331 >> 1) & 127) * 0.0078740157186985015869140625; } else { - int _1039 = (_1019 >> 5) & 7; - roughnessInt = _1039; - roughness = max(float(_1039) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - metallic = float((_1019 >> 3) & 3) * 0.3333333432674407958984375; + int _1351 = (_1331 >> 5) & 7; + roughnessInt = _1351; + roughness = max(float(_1351) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1331 >> 3) & 3) * 0.3333333432674407958984375; } - highp vec3 _1057 = abs(fnormal.xyz); - highp float _1059 = _1057.x; - highp float _1061 = _1057.y; - bool _1062 = _1059 >= _1061; - bool _1070; - if (_1062) + highp vec3 _1369 = abs(fnormal.xyz); + highp float _1371 = _1369.x; + highp float _1373 = _1369.y; + bool _1374 = _1371 >= _1373; + bool _1382; + if (_1374) { - _1070 = _1059 >= _1057.z; + _1382 = _1371 >= _1369.z; } else { - _1070 = _1062; + _1382 = _1374; } highp vec3 N; - if (_1070) + if (_1382) { N = vec3(sign(fnormal.x), 0.0, 0.0); } else { - bool _1083 = _1061 >= _1059; - bool _1091; - if (_1083) + bool _1395 = _1373 >= _1371; + bool _1403; + if (_1395) { - _1091 = _1061 >= _1057.z; + _1403 = _1373 >= _1369.z; } else { - _1091 = _1083; + _1403 = _1395; } - if (_1091) + if (_1403) { N = vec3(0.0, sign(fnormal.y), 0.0); } @@ -2886,145 +3324,171 @@ vs_trile_source_glsl300es := u8.[ N = vec3(0.0, 0.0, sign(fnormal.z)); } } - if (_954) + if (_1266) { - frag_color = vec4(trixel_material.xyz * (((_126.sunLightColor * max(dot(N, normalize(_126.sunPosition)), 0.0)) * _126.sunIntensity) + vec3(0.100000001490116119384765625)), 1.0); + frag_color = vec4(trixel_material.xyz * (((_142.sunLightColor * max(dot(N, normalize(_142.sunPosition)), 0.0)) * _142.sunIntensity) + vec3(0.100000001490116119384765625)), 1.0); return; } - highp vec3 _1140 = normalize(cam - vpos); - highp vec3 _1144 = normalize(_126.sunPosition); - highp vec3 _1149 = normalize(_1140 + _1144); - highp float _1154 = max(dot(N, _1144), 0.0); - highp float _1159 = max(dot(N, _1140), 0.0); - highp vec3 _1171 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); - highp float param = max(dot(_1149, _1140), 0.0); - highp vec3 param_1 = _1171; - highp vec3 _1177 = fresnelSchlick(param, param_1); + highp vec3 _1452 = normalize(cam - vpos); + highp vec3 _1456 = normalize(_142.sunPosition); + highp vec3 _1461 = normalize(_1452 + _1456); + highp float _1466 = max(dot(N, _1456), 0.0); + highp float _1471 = max(dot(N, _1452), 0.0); + highp vec3 _1483 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); + highp float param = max(dot(_1461, _1452), 0.0); + highp vec3 param_1 = _1483; + highp vec3 _1489 = fresnelSchlick(param, param_1); highp vec3 param_2 = N; - highp vec3 param_3 = _1149; + highp vec3 param_3 = _1461; highp float param_4 = roughness; highp vec3 param_5 = N; - highp vec3 param_6 = _1140; - highp vec3 param_7 = _1144; + highp vec3 param_6 = _1452; + highp vec3 param_7 = _1456; highp float param_8 = roughness; - highp vec4 _1230 = _934.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); - highp vec3 _1240 = ((_1230.xyz / vec3(_1230.w)) * 0.5) + vec3(0.5); - highp float _1244 = _1240.z - 0.001000000047497451305389404296875; - highp vec3 _1675 = _1240; - _1675.z = _1244; - highp vec3 light = ((((((((vec3(1.0) - _1177) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183098733425140380859375)) + ((_1177 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * _1159) * _1154) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1675.xy, _1244))) * _1154) * _126.sunLightColor) * _126.sunIntensity; - ivec3 _1281 = ivec3(mod(floor(trileCenter), vec3(32.0))); - ivec3 param_9 = _1281; + highp vec4 _1528 = _1246.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); + highp vec3 _1538 = ((_1528.xyz / vec3(_1528.w)) * 0.5) + vec3(0.5); + highp float _1541 = _1538.z - 0.001000000047497451305389404296875; + highp vec3 _2078 = _1538; + _2078.z = _1541; + highp vec3 light = ((((((((vec3(1.0) - _1489) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183098733425140380859375)) + ((_1489 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * _1471) * _1466) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_2078.xy, _1541))) * _1466) * _142.sunLightColor) * _142.sunIntensity; + highp vec3 _1589 = floor(trileCenter); + ivec3 _1593 = ivec3(mod(_1589, vec3(32.0))); + ivec3 param_9 = _1593; int param_10 = roughnessInt; - highp vec4 _1287 = rdm_atlas_rect(param_9, param_10); - highp vec4 _1304 = texture(ssaotex_rdmsmp, gl_FragCoord.xy / vec2(float(_934.screen_w), float(_934.screen_h))); - highp float _1305 = _1304.x; - bool _1315 = _934.rdm_enabled == 1; - bool _1321; - if (_1315) + highp vec4 _1599 = rdm_atlas_rect(param_9, param_10); + highp vec4 _1616 = texture(ssaotex_rdmsmp, gl_FragCoord.xy / vec2(float(_1246.screen_w), float(_1246.screen_h))); + highp float _1617 = _1616.x; + if (_1246.rdm_enabled == 1) { - _1321 = _1287.z > 0.0; - } - else - { - _1321 = _1315; - } - if (_1321) - { - highp float param_11 = _1159; - highp vec3 param_12 = _1171; + highp float param_11 = _1471; + highp vec3 param_12 = _1483; highp float param_13 = roughness; - highp vec3 _1331 = FresnelSchlickRoughness(param_11, param_12, param_13); - highp vec3 _1341 = vpos - (trileCenter + (N * 0.4900000095367431640625)); - if (roughness < 0.699999988079071044921875) + highp vec3 _1637 = FresnelSchlickRoughness(param_11, param_12, param_13); + highp vec3 _1647 = vpos - (trileCenter + (N * 0.4900000095367431640625)); + bool _1649 = roughnessInt <= 1; + bool _1655; + if (_1649) + { + _1655 = _1599.z > 0.0; + } + else + { + _1655 = _1649; + } + if (_1655) { highp vec3 param_14 = N; - int _1349 = rdm_face_from_normal(param_14); - ivec2 _1355 = textureSize(rdm_atlas_rdmsmp, 0); - highp vec2 _1360 = vec2(1.0) / vec2(_1355); - int _1369 = int(_1287.z * float(_1355.x)) / 2; - highp vec4 param_15 = _1287; - int param_16 = _1349; - int param_17 = _1369; - ivec2 param_18 = _1355; - ivec2 _1379 = rdm_face_offset(param_15, param_16, param_17, param_18); - highp vec3 indirectSpec; + int _1661 = rdm_face_from_normal(param_14); + ivec2 _1667 = textureSize(rdm_atlas_rdmsmp, 0); + highp vec2 _1672 = vec2(1.0) / vec2(_1667); + int _1681 = int(_1599.z * float(_1667.x)) / 2; + highp vec4 param_15 = _1599; + int param_16 = _1661; + int param_17 = _1681; + ivec2 param_18 = _1667; + ivec2 _1691 = rdm_face_offset(param_15, param_16, param_17, param_18); + highp vec3 _1695; if (roughness < 0.20000000298023223876953125) { highp vec3 param_19 = N; highp vec3 param_20 = -cv; - highp vec3 param_21 = _1341; - int param_22 = _1349; - ivec2 param_23 = _1379; - int param_24 = _1369; - highp vec2 param_25 = _1360; - indirectSpec = rdm_spec_raymarch(param_19, param_20, param_21, param_22, param_23, param_24, param_25); + highp vec3 param_21 = _1647; + int param_22 = _1661; + ivec2 param_23 = _1691; + int param_24 = _1681; + highp vec2 param_25 = _1672; + _1695 = rdm_spec_raymarch(param_19, param_20, param_21, param_22, param_23, param_24, param_25); } else { highp vec3 param_26 = N; highp vec3 param_27 = -cv; - highp vec3 param_28 = _1341; - int param_29 = _1349; - ivec2 param_30 = _1379; - int param_31 = _1369; - highp vec2 param_32 = _1360; - indirectSpec = rdm_spec_single(param_26, param_27, param_28, param_29, param_30, param_31, param_32); + highp vec3 param_28 = _1647; + int param_29 = _1661; + ivec2 param_30 = _1691; + int param_31 = _1681; + highp vec2 param_32 = _1672; + _1695 = rdm_spec_single(param_26, param_27, param_28, param_29, param_30, param_31, param_32); } - highp vec3 _1422 = indirectSpec; - highp vec3 _1423 = _1422 * _934.rdm_tint; - highp vec3 _1436 = mix(_1423, vec3(dot(_1423, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)); - indirectSpec = _1436; - highp vec4 _1445 = texture(brdf_lut_rdmsmp, vec2(_1159, roughness)); - highp float _1450 = sin(roughness * 3.1415927410125732421875); - light += (((((_1436 * ((_1331 * _1445.x) + vec3(_1445.y))) * _934.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1450))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1450) * pow(1.0 - _1159, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); - } - highp vec3 param_33 = N; - highp vec3 param_34 = _1341; - ivec3 param_35 = _1281; - highp vec3 _1504 = rdm_indirect_diffuse(param_33, param_34, param_35) * _934.rdm_tint; - light += (((((((vec3(1.0) - _1331) * (1.0 - metallic)) * mix(vec3(dot(_1504, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1504, vec3(_934.rdm_diff_saturation))) * vec3(0.3183098733425140380859375)) * trixel_material.xyz) * _1305) * _934.rdm_diff_scale); - bool _1539 = _934.rdm_diff_scale < 0.001000000047497451305389404296875; - bool _1548; - if (!_1539) - { - _1548 = length(light) < _934.ambient_intensity; + highp vec3 _1737 = _1695 * _1246.rdm_tint; + highp vec4 _1759 = texture(brdf_lut_rdmsmp, vec2(_1471, roughness)); + highp float _1764 = sin(roughness * 3.1415927410125732421875); + light += (((((mix(_1737, vec3(dot(_1737, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)) * ((_1637 * _1759.x) + vec3(_1759.y))) * _1246.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1764))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1764) * pow(1.0 - _1471, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); } else { - _1548 = _1539; + if (roughness < 0.699999988079071044921875) + { + highp vec4 _1825 = texture(brdf_lut_rdmsmp, vec2(_1471, roughness)); + highp vec3 param_33 = reflect(-_1452, N); + highp vec3 param_34 = _142.sunPosition; + highp vec3 _1838 = sky_reflect(param_33, param_34); + light += (((_1838 * ((_1637 * _1825.x) + vec3(_1825.y))) * _1246.rdm_spec_scale) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + } } - if (_1548) + highp vec3 indirectDiff; + if (_1246.sh_enabled == 1) { - light += (((_934.ambient_color * max(_934.ambient_intensity - length(light), 0.0)) * trixel_material.xyz) * _1305); + highp vec3 _1876 = clamp((vec3(_1593) + (vpos - _1589)) * 2.0, vec3(0.0), vec3(63.0)); + ivec3 _1880 = ivec3(floor(_1876)); + ivec3 param_35 = _1880; + ivec3 param_36 = min((_1880 + ivec3(1)), ivec3(63)); + highp vec3 param_37 = fract(_1876); + highp vec3 param_38 = N; + indirectDiff = sh_eval_trilinear(param_35, param_36, param_37, param_38) * _1246.rdm_tint; + } + else + { + highp vec3 param_39 = N; + highp vec3 param_40 = _1647; + ivec3 param_41 = _1593; + indirectDiff = rdm_indirect_diffuse(param_39, param_40, param_41) * _1246.rdm_tint; + } + highp vec3 _1914 = indirectDiff; + highp vec3 _1923 = mix(vec3(dot(_1914, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1914, vec3(_1246.rdm_diff_saturation)); + indirectDiff = _1923; + light += (((((((vec3(1.0) - _1637) * (1.0 - metallic)) * _1923) * vec3(0.3183098733425140380859375)) * trixel_material.xyz) * _1617) * _1246.rdm_diff_scale); + bool _1945 = _1246.rdm_diff_scale < 0.001000000047497451305389404296875; + bool _1954; + if (!_1945) + { + _1954 = length(light) < _1246.ambient_intensity; + } + else + { + _1954 = _1945; + } + if (_1954) + { + light += (((_1246.ambient_color * max(_1246.ambient_intensity - length(light), 0.0)) * trixel_material.xyz) * _1617); } } else { - light += (((_934.ambient_color * _934.ambient_intensity) * trixel_material.xyz) * _1305); - highp vec3 param_36 = reflect(-_1140, N); - highp vec3 param_37 = _126.sunPosition; - highp vec3 _1590 = sky_reflect(param_36, param_37); - light += ((_1177 * _1590) * 0.100000001490116119384765625); + light += (((_1246.ambient_color * _1246.ambient_intensity) * trixel_material.xyz) * _1617); + highp vec3 param_42 = reflect(-_1452, N); + highp vec3 param_43 = _142.sunPosition; + highp vec3 _1994 = sky_reflect(param_42, param_43); + light += ((_1489 * _1994) * 0.100000001490116119384765625); } - frag_color = vec4(mix(_126.deepColor, light + ((trixel_material.xyz * emittance) * _934.emissive_scale), vec3(smoothstep(0.0, _126.planeHeight, vpos.y))), 1.0); - if (_934.is_preview == 1) + frag_color = vec4(mix(_142.deepColor, light + ((trixel_material.xyz * emittance) * _1246.emissive_scale), vec3(smoothstep(0.0, _142.planeHeight, vpos.y))), 1.0); + if (_1246.is_preview == 1) { - highp vec4 _1619 = frag_color; - highp vec3 _1623 = mix(_1619.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); - frag_color.x = _1623.x; - frag_color.y = _1623.y; - frag_color.z = _1623.z; + highp vec4 _2022 = frag_color; + highp vec3 _2026 = mix(_2022.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); + frag_color.x = _2026.x; + frag_color.y = _2026.y; + frag_color.z = _2026.z; } else { - if (_934.is_preview == 2) + if (_1246.is_preview == 2) { - highp vec4 _1637 = frag_color; - highp vec3 _1641 = mix(_1637.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); - frag_color.x = _1641.x; - frag_color.y = _1641.y; - frag_color.z = _1641.z; + highp vec4 _2040 = frag_color; + highp vec3 _2044 = mix(_2040.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); + frag_color.x = _2044.x; + frag_color.y = _2044.y; + frag_color.z = _2044.z; } } } @@ -3064,7 +3528,7 @@ fs_trile_source_glsl300es := u8.[ 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x68,0x73,0x76,0x5f,0x6c, 0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69, 0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64, - 0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x31,0x32,0x36,0x3b,0x0a,0x0a,0x73, + 0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x20,0x5f,0x31,0x34,0x32,0x3b,0x0a,0x0a,0x73, 0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70, 0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x6d,0x61,0x74,0x34,0x20,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f, @@ -3088,351 +3552,280 @@ fs_trile_source_glsl300es := u8.[ 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x20,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74,0x75,0x72,0x61, - 0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72, - 0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d, - 0x73,0x20,0x5f,0x39,0x33,0x34,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x73,0x68, + 0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e, + 0x69,0x66,0x6f,0x72,0x6d,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70, + 0x61,0x72,0x61,0x6d,0x73,0x20,0x5f,0x31,0x32,0x34,0x36,0x3b,0x0a,0x0a,0x75,0x6e, + 0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x32,0x44,0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74, + 0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44, - 0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73, - 0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x53,0x68,0x61,0x64,0x6f, - 0x77,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64, - 0x6f,0x77,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72, - 0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73, - 0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x73,0x61,0x6f, - 0x74,0x65,0x78,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66, + 0x53,0x68,0x61,0x64,0x6f,0x77,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78, + 0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66, 0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64, - 0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x62,0x72, - 0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a, - 0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x70, - 0x6f,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x69,0x70,0x6f,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x3b,0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69, - 0x6f,0x6e,0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x63,0x61,0x6d,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b, + 0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x5f,0x74, + 0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44, + 0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b, + 0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, + 0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f, + 0x72,0x6d,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72, + 0x32,0x44,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73, + 0x6d,0x70,0x3b,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x32,0x44,0x20,0x73,0x68,0x5f,0x63, + 0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x3b,0x0a,0x0a,0x69,0x6e, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x70,0x6f,0x73, + 0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x69,0x70,0x6f,0x73,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b, + 0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x74, + 0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x3b, + 0x0a,0x6c,0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e, + 0x20,0x3d,0x20,0x30,0x29,0x20,0x6f,0x75,0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x34,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b, 0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63, - 0x76,0x3b,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66, - 0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65, - 0x74,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46, - 0x30,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x46,0x30,0x20,0x2b,0x20,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29, - 0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61, - 0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74, - 0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e, - 0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e, - 0x47,0x47,0x58,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e, - 0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x48,0x2c,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x30,0x39,0x20,0x3d,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x31,0x33,0x20,0x3d,0x20,0x5f,0x32, - 0x30,0x39,0x20,0x2a,0x20,0x5f,0x32,0x30,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x31,0x38,0x20, - 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x32,0x36,0x20,0x3d,0x20,0x28,0x28, - 0x5f,0x32,0x31,0x38,0x20,0x2a,0x20,0x5f,0x32,0x31,0x38,0x29,0x20,0x2a,0x20,0x28, - 0x5f,0x32,0x31,0x33,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f, - 0x32,0x31,0x33,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32, - 0x37,0x34,0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31,0x38,0x37,0x35, - 0x20,0x2a,0x20,0x5f,0x32,0x32,0x36,0x29,0x20,0x2a,0x20,0x5f,0x32,0x32,0x36,0x29, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x32,0x33,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x34,0x20,0x3d, - 0x20,0x28,0x5f,0x32,0x33,0x38,0x20,0x2a,0x20,0x5f,0x32,0x33,0x38,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x39,0x20,0x3d,0x20,0x6d, - 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x32,0x35,0x34,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64, - 0x6f,0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, + 0x61,0x6d,0x3b,0x0a,0x69,0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x3b,0x0a,0x69, + 0x6e,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x63,0x76,0x3b, + 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x72,0x65, + 0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61, + 0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30, + 0x20,0x2b,0x20,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d, + 0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63,0x6c,0x61,0x6d,0x70, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c, + 0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x35,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47, + 0x58,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x48,0x2c,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x32,0x39,0x20,0x3d,0x20,0x5f,0x32,0x32,0x35, + 0x20,0x2a,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x34,0x20,0x3d,0x20, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x48,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32, + 0x33,0x34,0x20,0x2a,0x20,0x5f,0x32,0x33,0x34,0x29,0x20,0x2a,0x20,0x28,0x5f,0x32, + 0x32,0x39,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x32, + 0x39,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32,0x37,0x34, + 0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31,0x38,0x37,0x35,0x20,0x2a, + 0x20,0x5f,0x32,0x34,0x32,0x29,0x20,0x2a,0x20,0x5f,0x32,0x34,0x32,0x29,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x47, + 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x4c,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x32,0x35,0x39,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x32,0x34, - 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f, - 0x32,0x35,0x34,0x20,0x2f,0x20,0x28,0x28,0x5f,0x32,0x35,0x34,0x20,0x2a,0x20,0x5f, - 0x32,0x35,0x39,0x29,0x20,0x2b,0x20,0x5f,0x32,0x34,0x34,0x29,0x29,0x20,0x2a,0x20, - 0x28,0x5f,0x32,0x34,0x39,0x20,0x2f,0x20,0x28,0x28,0x5f,0x32,0x34,0x39,0x20,0x2a, - 0x20,0x5f,0x32,0x35,0x39,0x29,0x20,0x2b,0x20,0x5f,0x32,0x34,0x34,0x29,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x72, - 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x69,0x76, - 0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x69, - 0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x34,0x34,0x31,0x20,0x3d,0x20,0x28, - 0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28, - 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32, - 0x29,0x29,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e, - 0x7a,0x20,0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78, - 0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b, - 0x75,0x70,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65, - 0x63,0x32,0x28,0x5f,0x34,0x34,0x31,0x20,0x25,0x20,0x35,0x31,0x32,0x2c,0x20,0x5f, - 0x34,0x34,0x31,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x72, - 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, - 0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46, - 0x30,0x20,0x2b,0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x31, - 0x2e,0x30,0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c, - 0x20,0x46,0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, - 0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73, - 0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, - 0x2c,0x20,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20, - 0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x33,0x37,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x4e, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x33,0x37,0x39,0x20,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x79, + 0x5f,0x32,0x35,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x30,0x20,0x3d,0x20,0x28, + 0x5f,0x32,0x35,0x34,0x20,0x2a,0x20,0x5f,0x32,0x35,0x34,0x29,0x20,0x2a,0x20,0x30, + 0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x35,0x20,0x3d,0x20,0x6d,0x61,0x78, + 0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x33,0x38,0x31,0x20,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x78,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x33,0x38,0x32,0x20,0x3d, - 0x20,0x5f,0x33,0x37,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x38,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x33,0x39,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x38,0x32,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x33,0x39,0x30,0x20,0x3d, - 0x20,0x5f,0x33,0x37,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x7a,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x33, - 0x39,0x30,0x20,0x3d,0x20,0x5f,0x33,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x39,0x30,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x28,0x4e,0x2e,0x79,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29, - 0x20,0x3f,0x20,0x30,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x74,0x20,0x5f,0x32,0x37,0x30,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, + 0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32, + 0x37,0x35,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x32,0x36,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32,0x37, + 0x30,0x20,0x2f,0x20,0x28,0x28,0x5f,0x32,0x37,0x30,0x20,0x2a,0x20,0x5f,0x32,0x37, + 0x35,0x29,0x20,0x2b,0x20,0x5f,0x32,0x36,0x30,0x29,0x29,0x20,0x2a,0x20,0x28,0x5f, + 0x32,0x36,0x35,0x20,0x2f,0x20,0x28,0x28,0x5f,0x32,0x36,0x35,0x20,0x2a,0x20,0x5f, + 0x32,0x37,0x35,0x29,0x20,0x2b,0x20,0x5f,0x32,0x36,0x30,0x29,0x29,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x72,0x64,0x6d, + 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x69,0x76,0x65,0x63, + 0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x34,0x35,0x37,0x20,0x3d,0x20,0x28,0x28,0x6c, + 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f, + 0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29, + 0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20, + 0x2a,0x20,0x31,0x30,0x32,0x34,0x29,0x29,0x20,0x2b,0x20,0x28,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c, + 0x46,0x65,0x74,0x63,0x68,0x28,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70, + 0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32, + 0x28,0x5f,0x34,0x35,0x37,0x20,0x25,0x20,0x35,0x31,0x32,0x2c,0x20,0x5f,0x34,0x35, + 0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x46,0x72,0x65,0x73, + 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x63,0x6f,0x73,0x54,0x68,0x65,0x74,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x46,0x30,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x46,0x30,0x20, + 0x2b,0x20,0x28,0x28,0x6d,0x61,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30, + 0x20,0x2d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x2c,0x20,0x46, + 0x30,0x29,0x20,0x2d,0x20,0x46,0x30,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6f,0x73,0x54,0x68, + 0x65,0x74,0x61,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20, + 0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x72,0x64, + 0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x33,0x39,0x33,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x4e,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x33,0x39,0x35,0x20,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e,0x79,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x33,0x39,0x39,0x20,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x7a,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d,0x20,0x5f, - 0x33,0x39,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x34,0x30,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x31,0x30,0x20,0x3d,0x20,0x5f, - 0x33,0x39,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x31,0x30,0x20,0x3d, - 0x20,0x5f,0x34,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x31,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x32, - 0x20,0x3a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30, - 0x2e,0x30,0x29,0x20,0x3f,0x20,0x34,0x20,0x3a,0x20,0x35,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x69,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f, - 0x66,0x66,0x73,0x65,0x74,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x72,0x65,0x63,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c, - 0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20,0x69,0x76, - 0x65,0x63,0x32,0x20,0x61,0x74,0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63, - 0x32,0x28,0x69,0x6e,0x74,0x28,0x72,0x65,0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x2e,0x78, - 0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29, - 0x20,0x2a,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74, - 0x28,0x72,0x65,0x63,0x74,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x61,0x74,0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20, - 0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64, - 0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f, - 0x63,0x74,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x2c, - 0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d, - 0x20,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63, - 0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x38,0x33,0x20,0x3d,0x20,0x76,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x38,0x33,0x2e, - 0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x36,0x38,0x33,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x36, - 0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20, - 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x38, - 0x37,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x36,0x38,0x37,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x38,0x37,0x2e,0x78,0x20,0x3d, - 0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63, - 0x20,0x3d,0x20,0x5f,0x31,0x36,0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20, - 0x32,0x29,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x5f,0x31,0x36,0x39,0x31,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x39,0x31,0x2e,0x7a,0x20,0x3d,0x20, - 0x5f,0x31,0x36,0x39,0x31,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f, - 0x31,0x36,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33,0x35,0x37,0x20, - 0x3d,0x20,0x76,0x63,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f, - 0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x76,0x63,0x2e,0x78,0x29,0x20,0x2b,0x20,0x61, - 0x62,0x73,0x28,0x76,0x63,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x76,0x63,0x2e,0x7a, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x33,0x35,0x39,0x20,0x3d,0x20,0x5f,0x33,0x35,0x37,0x2e, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x33,0x36,0x31,0x20,0x3d,0x20,0x5f,0x33,0x35,0x37,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x76,0x65, - 0x63,0x32,0x28,0x5f,0x33,0x35,0x39,0x20,0x2b,0x20,0x5f,0x33,0x36,0x31,0x2c,0x20, - 0x5f,0x33,0x35,0x39,0x20,0x2d,0x20,0x5f,0x33,0x36,0x31,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73, - 0x6b,0x79,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b, - 0x79,0x70,0x6f,0x73,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, - 0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31,0x37,0x20,0x3d, - 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f, - 0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x32,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f, - 0x31,0x31,0x37,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73, - 0x75,0x6e,0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x20,0x3d,0x20, - 0x5f,0x31,0x31,0x37,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, - 0x6d,0x69,0x78,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65, - 0x2c,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x31,0x33,0x37,0x20,0x2a, - 0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39, - 0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39, - 0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x32, - 0x36,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x28,0x5f,0x31,0x32,0x32,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39, - 0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32, - 0x31,0x38,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e, - 0x30,0x2c,0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, - 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30, - 0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x32,0x20,0x3e,0x20, - 0x30,0x2e,0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36, - 0x36,0x38,0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20, - 0x3d,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x36,0x20,0x3d,0x20,0x72,0x65,0x73,0x75, - 0x6c,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x5f,0x31,0x38,0x37,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x20,0x2b, - 0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x32,0x36,0x2e,0x68,0x6f,0x72,0x69,0x7a, - 0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, - 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62, - 0x73,0x28,0x5f,0x31,0x33,0x37,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20, - 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, - 0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31, - 0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31,0x38,0x37, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x69,0x6e,0x6f,0x75, - 0x74,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x52,0x2c,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f, - 0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x52,0x2e,0x79, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63, - 0x74,0x28,0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x20,0x3d,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70, - 0x65,0x63,0x5f,0x72,0x61,0x79,0x6d,0x61,0x72,0x63,0x68,0x28,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63, - 0x65,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x66,0x61,0x63,0x65,0x4f,0x66,0x66, - 0x73,0x65,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65, - 0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x61,0x74,0x6c, - 0x61,0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x34,0x39,0x36, - 0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69, - 0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b, - 0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x32,0x36, - 0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x34,0x39,0x36,0x20, - 0x2a,0x20,0x28,0x30,0x2e,0x35,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69, - 0x20,0x2b,0x20,0x31,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x32,0x36,0x2c,0x20,0x4e, - 0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63, - 0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x32,0x36,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35, - 0x36,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d, - 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28, - 0x76,0x65,0x63,0x32,0x28,0x66,0x61,0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x29, - 0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20, - 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29, - 0x29,0x29,0x20,0x2a,0x20,0x61,0x74,0x6c,0x61,0x73,0x49,0x6e,0x76,0x53,0x69,0x7a, - 0x65,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x36, - 0x33,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x35,0x32,0x36,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x36,0x36,0x20,0x3d,0x20,0x5f,0x35,0x36, - 0x30,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x35,0x36,0x37,0x20,0x3d,0x20,0x5f,0x35,0x36,0x36,0x20,0x3e,0x20, - 0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x35,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x35,0x36,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x5f,0x35,0x36,0x36,0x20,0x3c,0x20,0x5f,0x35, - 0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x5f,0x35,0x36,0x37,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x35,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x37,0x34,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x35,0x38,0x33,0x20,0x3d,0x20,0x28,0x5f,0x35,0x36,0x36,0x20, - 0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x35,0x36,0x33,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x38,0x33, - 0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x35,0x38,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x5f,0x35,0x36,0x30,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x20,0x3d,0x20,0x5f,0x34,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x33,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69, - 0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x39,0x37,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f, - 0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x35,0x39,0x37,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70, - 0x65,0x63,0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28,0x68,0x69,0x67,0x68,0x70,0x20, + 0x5f,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x5f, + 0x33,0x39,0x35,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x30,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x33,0x39,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x5f, + 0x33,0x39,0x35,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x36, + 0x20,0x3d,0x20,0x5f,0x33,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x30,0x36,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x28,0x4e,0x2e,0x79,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f, + 0x20,0x30,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34, + 0x31,0x35,0x20,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f,0x34,0x31, + 0x35,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f,0x34,0x31, + 0x35,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f, + 0x34,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x34,0x32,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x4e, + 0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x32,0x20,0x3a, + 0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x28,0x4e,0x2e,0x78,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30, + 0x29,0x20,0x3f,0x20,0x34,0x20,0x3a,0x20,0x35,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x76, + 0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66, + 0x73,0x65,0x74,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x72, + 0x65,0x63,0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69, + 0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20,0x69,0x76,0x65,0x63, + 0x32,0x20,0x61,0x74,0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x69,0x76,0x65,0x63,0x32,0x28, + 0x69,0x6e,0x74,0x28,0x72,0x65,0x63,0x74,0x2e,0x78,0x20,0x2a,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x28,0x61,0x74,0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x2e,0x78,0x29,0x29, + 0x20,0x2b,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x2a, + 0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28,0x72, + 0x65,0x63,0x74,0x2e,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x61,0x74, + 0x6c,0x61,0x73,0x53,0x69,0x7a,0x65,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x28, + 0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x2a,0x20,0x72,0x64,0x6d,0x53, + 0x69,0x7a,0x65,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x32,0x20,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74, + 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x2c,0x20,0x69, + 0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20,0x76, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20, + 0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x38,0x38,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x38,0x38,0x2e,0x7a,0x20, + 0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x32,0x30,0x38,0x38,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x32,0x30,0x38,0x38, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x28,0x66,0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x39,0x32,0x20, + 0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32, + 0x30,0x39,0x32,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x39,0x32,0x2e,0x78,0x20,0x3d,0x20,0x76, + 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d, + 0x20,0x5f,0x32,0x30,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29, + 0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x32,0x30,0x39,0x36,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x39,0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x32, + 0x30,0x39,0x36,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x32,0x30, + 0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x33,0x37,0x33,0x20,0x3d,0x20, + 0x76,0x63,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x28, + 0x28,0x61,0x62,0x73,0x28,0x76,0x63,0x2e,0x78,0x29,0x20,0x2b,0x20,0x61,0x62,0x73, + 0x28,0x76,0x63,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x76,0x63,0x2e,0x7a,0x29,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x33,0x37,0x35,0x20,0x3d,0x20,0x5f,0x33,0x37,0x33,0x2e,0x78,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x33,0x37,0x37,0x20,0x3d,0x20,0x5f,0x33,0x37,0x33,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x76,0x65,0x63,0x32, + 0x28,0x5f,0x33,0x37,0x35,0x20,0x2b,0x20,0x5f,0x33,0x37,0x37,0x2c,0x20,0x5f,0x33, + 0x37,0x35,0x20,0x2d,0x20,0x5f,0x33,0x37,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35, + 0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79, + 0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b,0x79,0x70, + 0x6f,0x73,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73, + 0x75,0x6e,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x33,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x33,0x38,0x20,0x3d,0x20,0x64,0x6f,0x74,0x28,0x5f,0x31,0x33, + 0x33,0x2c,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e, + 0x70,0x6f,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x33,0x20,0x3d,0x20,0x5f,0x31, + 0x33,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x6d,0x69, + 0x78,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x2c,0x20, + 0x5f,0x31,0x34,0x32,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x5f,0x31,0x35,0x33,0x20,0x2a,0x20,0x32, + 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, + 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, + 0x38,0x37,0x35,0x29,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x32,0x2e, + 0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x20,0x2a,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x28,0x5f,0x31,0x33,0x38,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39, + 0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38, + 0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, + 0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, + 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20, + 0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33, + 0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x38,0x20,0x3e,0x20,0x30,0x2e, + 0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38, + 0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, + 0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x5f,0x32,0x30,0x32,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x32,0x30,0x33,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x20,0x2b,0x20,0x28, + 0x6d,0x69,0x78,0x28,0x5f,0x31,0x34,0x32,0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e, + 0x48,0x61,0x6c,0x6f,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62,0x73,0x28, + 0x5f,0x31,0x35,0x33,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e, + 0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39, + 0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5f,0x32,0x30,0x33,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x30,0x33,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6b, + 0x79,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x69,0x6e,0x6f,0x75,0x74,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x52,0x2c,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x52,0x2e,0x79,0x20,0x3c, + 0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28, + 0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, + 0x3d,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63, + 0x5f,0x72,0x61,0x79,0x6d,0x61,0x72,0x63,0x68,0x28,0x68,0x69,0x67,0x68,0x70,0x20, 0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, 0x63,0x33,0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, 0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c, @@ -3440,187 +3833,435 @@ fs_trile_source_glsl300es := u8.[ 0x74,0x2c,0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20, 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x61,0x74,0x6c,0x61,0x73, 0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, - 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66, - 0x20,0x2b,0x20,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e, - 0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x63, - 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x66,0x61, - 0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d, - 0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x28,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x29,0x20,0x2a,0x20,0x61,0x74, - 0x6c,0x61,0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x2e,0x78,0x79,0x7a,0x3b, - 0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30, - 0x2e,0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a, - 0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64, - 0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72, - 0x6f,0x62,0x65,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e, - 0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f, - 0x73,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x66,0x61, - 0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61, - 0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x36,0x33,0x39,0x20, - 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x33,0x39,0x2e,0x7a, - 0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61, - 0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x5f,0x36,0x35,0x30,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63, - 0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, - 0x20,0x5f,0x36,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36,0x35,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d, - 0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53, - 0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64, - 0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x32,0x20,0x5f,0x36,0x36,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66, - 0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x36, - 0x35,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x32,0x20,0x5f,0x36,0x37,0x33,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x68,0x65, - 0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, - 0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x72, - 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, - 0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x36,0x37,0x2e,0x78,0x20,0x2b,0x20, - 0x69,0x6e,0x74,0x28,0x5f,0x36,0x37,0x33,0x2e,0x78,0x20,0x2a,0x20,0x32,0x2e,0x30, - 0x29,0x2c,0x20,0x5f,0x36,0x36,0x37,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28, - 0x5f,0x36,0x37,0x33,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x2c,0x20, - 0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x61,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x62,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30, - 0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36, - 0x32,0x35,0x29,0x20,0x2f,0x20,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e, - 0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39, - 0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x28,0x31, - 0x2e,0x30,0x20,0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30, - 0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32, - 0x35,0x29,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x69,0x72,0x65,0x63, - 0x74,0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x28,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c, - 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37, - 0x33,0x32,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72, - 0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x33,0x38,0x20, - 0x3d,0x20,0x5f,0x37,0x33,0x32,0x20,0x3c,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x64,0x65,0x6c,0x74, - 0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x38,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, - 0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66, - 0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37, - 0x33,0x32,0x20,0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64, - 0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66, - 0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x31,0x32,0x20,0x3d, + 0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d, + 0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x35,0x34,0x32,0x20,0x3d, + 0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28,0x5f,0x35,0x31,0x32,0x20,0x2a,0x20, + 0x28,0x30,0x2e,0x35,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x69,0x20,0x2b, + 0x20,0x31,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35,0x34,0x32,0x2c,0x20,0x4e,0x29,0x20, + 0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e, + 0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, + 0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x35,0x34,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x20,0x3d,0x20,0x66,0x61,0x63,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x35,0x37,0x36, + 0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61, + 0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x76,0x65, + 0x63,0x32,0x28,0x66,0x61,0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x2b, + 0x20,0x28,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x29, + 0x20,0x2a,0x20,0x61,0x74,0x6c,0x61,0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x37,0x39,0x20, + 0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x5f,0x35,0x34,0x32,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x35,0x38,0x32,0x20,0x3d,0x20,0x5f,0x35,0x37,0x36,0x2e, + 0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x35,0x38,0x33,0x20,0x3d,0x20,0x5f,0x35,0x38,0x32,0x20,0x3e,0x20,0x30,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x35,0x39,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x35,0x38,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35, + 0x39,0x30,0x20,0x3d,0x20,0x5f,0x35,0x38,0x32,0x20,0x3c,0x20,0x5f,0x35,0x37,0x39, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x35,0x39,0x30,0x20,0x3d,0x20,0x5f,0x35,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x35,0x39,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x39,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x35,0x39,0x39,0x20,0x3d,0x20,0x28,0x5f,0x35,0x38,0x32,0x20,0x2b,0x20, + 0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x35,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64, - 0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, - 0x33,0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, - 0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x38, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, - 0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29, - 0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64, - 0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x32,0x20,0x3c,0x3d, - 0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, - 0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, - 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20, - 0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32, - 0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67, - 0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, - 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c, - 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x39,0x39,0x20,0x3d, + 0x20,0x5f,0x35,0x39,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x39, + 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x5f,0x35,0x37,0x36,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x20,0x3d,0x20,0x5f,0x35,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20, + 0x3d,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69, + 0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x5f,0x36,0x31,0x33,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65, + 0x66,0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x5f,0x36,0x31,0x33,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63, + 0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x56,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x64, + 0x69,0x66,0x66,0x2c,0x20,0x69,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x2c,0x20,0x69, + 0x76,0x65,0x63,0x32,0x20,0x66,0x61,0x63,0x65,0x4f,0x66,0x66,0x73,0x65,0x74,0x2c, + 0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x53,0x69,0x7a,0x65,0x2c,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x61,0x74,0x6c,0x61,0x73,0x49,0x6e, + 0x76,0x53,0x69,0x7a,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x64,0x69,0x66,0x66,0x20,0x2b, + 0x20,0x28,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x20, + 0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x63,0x65,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64, + 0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x76,0x65,0x63,0x32,0x28,0x66,0x61,0x63,0x65, + 0x4f,0x66,0x66,0x73,0x65,0x74,0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x68, + 0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x72, + 0x64,0x6d,0x53,0x69,0x7a,0x65,0x29,0x29,0x29,0x20,0x2a,0x20,0x61,0x74,0x6c,0x61, + 0x73,0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x68, + 0x5f,0x70,0x72,0x6f,0x62,0x65,0x5f,0x65,0x6e,0x65,0x72,0x67,0x79,0x28,0x69,0x76, + 0x65,0x63,0x33,0x20,0x70,0x72,0x6f,0x62,0x65,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x34,0x38,0x20,0x3d,0x20,0x70,0x72,0x6f, + 0x62,0x65,0x2e,0x78,0x20,0x2a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x5f,0x31,0x30,0x35,0x35,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x62,0x65, + 0x2e,0x7a,0x20,0x2a,0x20,0x36,0x34,0x29,0x20,0x2b,0x20,0x70,0x72,0x6f,0x62,0x65, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d, + 0x61,0x78,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32,0x37,0x30,0x31,0x31,0x36,0x38, + 0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x28, + 0x28,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x73,0x68,0x5f,0x63, + 0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65, + 0x63,0x32,0x28,0x5f,0x31,0x30,0x34,0x38,0x2c,0x20,0x5f,0x31,0x30,0x35,0x35,0x29, + 0x2c,0x20,0x30,0x29,0x2e,0x78,0x20,0x2b,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65, + 0x74,0x63,0x68,0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64,0x6d, + 0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x30,0x34,0x38, + 0x20,0x2b,0x20,0x31,0x2c,0x20,0x5f,0x31,0x30,0x35,0x35,0x29,0x2c,0x20,0x30,0x29, + 0x2e,0x78,0x29,0x20,0x2b,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68, + 0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70, + 0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x30,0x34,0x38,0x20,0x2b,0x20, + 0x32,0x2c,0x20,0x5f,0x31,0x30,0x35,0x35,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x29, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x68,0x5f,0x65,0x76,0x61,0x6c,0x28,0x69,0x76, + 0x65,0x63,0x33,0x20,0x70,0x72,0x6f,0x62,0x65,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x5f,0x39,0x32,0x36,0x20,0x3d,0x20,0x70,0x72,0x6f,0x62,0x65,0x2e, + 0x78,0x20,0x2a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, + 0x39,0x33,0x34,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x62,0x65,0x2e,0x7a,0x20,0x2a, + 0x20,0x36,0x34,0x29,0x20,0x2b,0x20,0x70,0x72,0x6f,0x62,0x65,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x39,0x34,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68, + 0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70, + 0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x39,0x32,0x36,0x2c,0x20,0x5f,0x39, + 0x33,0x34,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x35,0x34,0x20,0x3d,0x20,0x74, + 0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x73,0x68,0x5f,0x63,0x68,0x75, + 0x6e,0x6b,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32, + 0x28,0x5f,0x39,0x32,0x36,0x20,0x2b,0x20,0x31,0x2c,0x20,0x5f,0x39,0x33,0x34,0x29, + 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x36,0x34,0x20,0x3d,0x20,0x74,0x65,0x78,0x65, + 0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x5f, + 0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x39, + 0x32,0x36,0x20,0x2b,0x20,0x32,0x2c,0x20,0x5f,0x39,0x33,0x34,0x29,0x2c,0x20,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x61, + 0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32,0x37, + 0x30,0x31,0x31,0x36,0x38,0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33,0x37, + 0x35,0x20,0x2a,0x20,0x5f,0x39,0x34,0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x31, + 0x2e,0x30,0x32,0x33,0x33,0x32,0x36,0x39,0x39,0x32,0x39,0x38,0x38,0x35,0x38,0x36, + 0x34,0x32,0x35,0x37,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f,0x39, + 0x34,0x34,0x2e,0x77,0x20,0x2a,0x20,0x4e,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x5f, + 0x39,0x34,0x34,0x2e,0x79,0x20,0x2a,0x20,0x4e,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20, + 0x28,0x5f,0x39,0x34,0x34,0x2e,0x7a,0x20,0x2a,0x20,0x4e,0x2e,0x7a,0x29,0x29,0x29, + 0x2c,0x20,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32,0x37,0x30,0x31,0x31,0x36,0x38, + 0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x5f, + 0x39,0x35,0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x31,0x2e,0x30,0x32,0x33,0x33, + 0x32,0x36,0x39,0x39,0x32,0x39,0x38,0x38,0x35,0x38,0x36,0x34,0x32,0x35,0x37,0x38, + 0x31,0x32,0x35,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f,0x39,0x35,0x34,0x2e,0x77,0x20, + 0x2a,0x20,0x4e,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x35,0x34,0x2e,0x79, + 0x20,0x2a,0x20,0x4e,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x35,0x34, + 0x2e,0x7a,0x20,0x2a,0x20,0x4e,0x2e,0x7a,0x29,0x29,0x29,0x2c,0x20,0x28,0x30,0x2e, + 0x38,0x38,0x36,0x32,0x32,0x37,0x30,0x31,0x31,0x36,0x38,0x30,0x36,0x30,0x33,0x30, + 0x32,0x37,0x33,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x5f,0x39,0x36,0x34,0x2e,0x78, + 0x29,0x20,0x2b,0x20,0x28,0x31,0x2e,0x30,0x32,0x33,0x33,0x32,0x36,0x39,0x39,0x32, + 0x39,0x38,0x38,0x35,0x38,0x36,0x34,0x32,0x35,0x37,0x38,0x31,0x32,0x35,0x20,0x2a, + 0x20,0x28,0x28,0x28,0x5f,0x39,0x36,0x34,0x2e,0x77,0x20,0x2a,0x20,0x4e,0x2e,0x78, + 0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x36,0x34,0x2e,0x79,0x20,0x2a,0x20,0x4e,0x2e, + 0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x36,0x34,0x2e,0x7a,0x20,0x2a,0x20, + 0x4e,0x2e,0x7a,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32,0x35,0x31,0x34, + 0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x68,0x5f,0x65,0x76,0x61,0x6c,0x5f,0x74, + 0x72,0x69,0x6c,0x69,0x6e,0x65,0x61,0x72,0x28,0x69,0x76,0x65,0x63,0x33,0x20,0x70, + 0x30,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x31,0x2c,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x74,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x78,0x5b,0x32,0x5d, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x5b,0x5d,0x28,0x31,0x2e,0x30,0x20,0x2d, + 0x20,0x74,0x2e,0x78,0x2c,0x20,0x74,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x79,0x5b,0x32, + 0x5d,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x5b,0x5d,0x28,0x31,0x2e,0x30,0x20, + 0x2d,0x20,0x74,0x2e,0x79,0x2c,0x20,0x74,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x77,0x7a,0x5b, + 0x32,0x5d,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x5b,0x5d,0x28,0x31,0x2e,0x30, + 0x20,0x2d,0x20,0x74,0x2e,0x7a,0x2c,0x20,0x74,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x65,0x73, + 0x75,0x6c,0x74,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x31,0x34,0x39,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x31,0x36,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x31,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x7a,0x20,0x3d,0x20,0x30, + 0x3b,0x20,0x69,0x7a,0x20,0x3c,0x20,0x32,0x3b,0x20,0x69,0x7a,0x2b,0x2b,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f, + 0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x79,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69, + 0x79,0x20,0x3c,0x20,0x32,0x3b,0x20,0x69,0x79,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31, - 0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69, - 0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, + 0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x78,0x20,0x3d, + 0x20,0x30,0x3b,0x20,0x69,0x78,0x20,0x3c,0x20,0x32,0x3b,0x20,0x69,0x78,0x2b,0x2b, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x69,0x78,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x31,0x34,0x39,0x20,0x3d,0x20,0x70,0x30,0x2e,0x78,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x31,0x34,0x39,0x20,0x3d,0x20,0x70,0x31,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x69,0x79,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x31,0x36,0x30,0x20,0x3d,0x20,0x70,0x30,0x2e,0x79,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36, + 0x30,0x20,0x3d,0x20,0x70,0x31,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x69,0x7a,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x31,0x37,0x31,0x20,0x3d,0x20,0x70,0x30,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x37,0x31,0x20, + 0x3d,0x20,0x70,0x31,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x31,0x31,0x38,0x30,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x5f,0x31, + 0x31,0x34,0x39,0x2c,0x20,0x5f,0x31,0x31,0x36,0x30,0x2c,0x20,0x5f,0x31,0x31,0x37, + 0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, + 0x3d,0x20,0x5f,0x31,0x31,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x39,0x36,0x20,0x3d,0x20,0x28,0x28,0x77, + 0x78,0x5b,0x69,0x78,0x5d,0x20,0x2a,0x20,0x77,0x79,0x5b,0x69,0x79,0x5d,0x29,0x20, + 0x2a,0x20,0x77,0x7a,0x5b,0x69,0x7a,0x5d,0x29,0x20,0x2a,0x20,0x73,0x68,0x5f,0x70, + 0x72,0x6f,0x62,0x65,0x5f,0x65,0x6e,0x65,0x72,0x67,0x79,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, + 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x28,0x73,0x68, + 0x5f,0x65,0x76,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x31,0x39,0x36,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x20,0x2b,0x3d,0x20,0x5f,0x31,0x31, + 0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x32,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30, + 0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32, + 0x31,0x38,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2f,0x20,0x76,0x65, + 0x63,0x33,0x28,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x31,0x38,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31, + 0x32,0x31,0x38,0x3b,0x0a,0x7d,0x0a,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73,0x69,0x67, + 0x6e,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x66,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66, + 0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a, + 0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66, + 0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x4e,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x6c,0x6f,0x63,0x61, + 0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, + 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x36,0x35,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, + 0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36, + 0x35,0x35,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, + 0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x36,0x36,0x20,0x3d,0x20,0x72,0x64,0x6d, + 0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x20,0x3d,0x20,0x5f,0x36,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36,0x36, + 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x35,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, + 0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, + 0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x38,0x33,0x20,0x3d,0x20,0x72, + 0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20, + 0x3d,0x20,0x5f,0x36,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x72,0x64, + 0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74, + 0x63,0x68,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d, + 0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x5f,0x36,0x38,0x33,0x2e, + 0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x36,0x38,0x39,0x2e,0x78,0x20,0x2a, + 0x20,0x32,0x2e,0x30,0x29,0x2c,0x20,0x5f,0x36,0x38,0x33,0x2e,0x79,0x20,0x2b,0x20, + 0x69,0x6e,0x74,0x28,0x5f,0x36,0x38,0x39,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30, + 0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x61,0x2c,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x62,0x2c,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x70,0x6f,0x77,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36, + 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31, + 0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2f,0x20,0x28,0x70,0x6f,0x77,0x28,0x74, + 0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, + 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70, + 0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30, + 0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30, + 0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64, + 0x69,0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x28,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x2c,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x69,0x76,0x65, + 0x63,0x33,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x0a,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x5f,0x37,0x34,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63, + 0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, + 0x37,0x35,0x34,0x20,0x3d,0x20,0x5f,0x37,0x34,0x38,0x20,0x3c,0x3d,0x20,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20, + 0x64,0x65,0x6c,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x37,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28, + 0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x37,0x34,0x38,0x20,0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28, + 0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x20,0x3d,0x20,0x76,0x65,0x63,0x32,0x28,0x64,0x69,0x66,0x66,0x2e, + 0x7a,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x76,0x65,0x63,0x33,0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, + 0x65,0x63,0x33,0x20,0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x37,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, + 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20, + 0x69,0x76,0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d, + 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69, + 0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, + 0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, 0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x34, + 0x38,0x20,0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x35,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76, + 0x65,0x63,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x35,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64,0x65, - 0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e, - 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76, - 0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33, - 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, - 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, - 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35, - 0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x37,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76, - 0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20, - 0x73,0x31,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c, + 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20, + 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d, + 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64,0x65,0x6c, + 0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20, + 0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d, + 0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20, + 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d, + 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6c, + 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28, + 0x30,0x29,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x33,0x31,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, + 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x4e, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6c,0x6f,0x63, + 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x2c,0x20,0x69,0x76,0x65, + 0x63,0x33,0x28,0x30,0x29,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x33,0x31,0x29, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x76,0x65,0x63, 0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, @@ -3631,645 +4272,718 @@ fs_trile_source_glsl300es := u8.[ 0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20, 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28, - 0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, - 0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33, - 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, - 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, - 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, - 0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34, - 0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69, - 0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x76,0x65,0x63,0x33,0x28,0x28,0x6c, - 0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x20,0x2b, - 0x20,0x73,0x32,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, - 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, - 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, - 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35, - 0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35, - 0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69, - 0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20, - 0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66, - 0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20, - 0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x2c,0x20, + 0x69,0x76,0x65,0x63,0x33,0x28,0x30,0x29,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28, + 0x33,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, + 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, + 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37, + 0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x63,0x6c,0x61, + 0x6d,0x70,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20, + 0x73,0x31,0x29,0x20,0x2b,0x20,0x73,0x32,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28, + 0x30,0x29,0x2c,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x33,0x31,0x29,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61, - 0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c, - 0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d, - 0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73, - 0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, + 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x72, + 0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70, + 0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x72,0x64, + 0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72, + 0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38, 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x61,0x62, - 0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f, - 0x69,0x64,0x20,0x6d,0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x32,0x38,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73, - 0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x31,0x32,0x36,0x2e,0x70,0x6c,0x61,0x6e,0x65, - 0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39, - 0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32, - 0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x39,0x32,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x33,0x39,0x20,0x3d,0x20,0x5f,0x39,0x33, - 0x34,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20, - 0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x39,0x33,0x39,0x20,0x3d,0x20,0x5f,0x39,0x32,0x38,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39, - 0x33,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61,0x62, + 0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, + 0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x73,0x6d,0x69, + 0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x70,0x6f, - 0x73,0x20,0x2d,0x20,0x28,0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x35,0x35, - 0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38,0x34,0x35,0x37,0x30,0x33,0x31,0x32, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x35, - 0x34,0x20,0x3d,0x20,0x5f,0x39,0x33,0x34,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c, - 0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x35,0x35,0x20,0x3d,0x20,0x5f,0x39,0x35,0x34, - 0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, - 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f, - 0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20, - 0x3c,0x20,0x5f,0x39,0x35,0x35,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x39,0x39,0x35,0x20,0x3d,0x20,0x74,0x65,0x78, - 0x65,0x6c,0x46,0x65,0x74,0x63,0x68,0x28,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78, - 0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32, - 0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39, - 0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31, - 0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20, - 0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37, - 0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29, - 0x2c,0x20,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39, - 0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35, - 0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c, - 0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36, - 0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30, - 0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39, - 0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33, - 0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d, - 0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34, - 0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31, - 0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, - 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x39,0x39,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74, - 0x28,0x5f,0x39,0x39,0x35,0x2c,0x20,0x5f,0x39,0x39,0x35,0x29,0x20,0x3e,0x20,0x39, - 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, - 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, - 0x65,0x2d,0x30,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61, - 0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20, - 0x2b,0x3d,0x20,0x28,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20, - 0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31, - 0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31, - 0x30,0x31,0x39,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28, - 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, - 0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69, - 0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49, - 0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, - 0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, - 0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x28,0x5f,0x31,0x30,0x31,0x39,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20, - 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x28,0x28,0x5f,0x31,0x30,0x31,0x39,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20, - 0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37, - 0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36, - 0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x33,0x39,0x20, - 0x3d,0x20,0x28,0x5f,0x31,0x30,0x31,0x39,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26, - 0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31,0x30,0x33,0x39, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x5f,0x31,0x30,0x33,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35, - 0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33, - 0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38, - 0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x28,0x28,0x5f,0x31,0x30,0x31,0x39,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20, - 0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33, - 0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x30,0x35,0x37,0x20,0x3d,0x20,0x61, - 0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x31,0x30,0x35,0x39,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x37,0x2e,0x78, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x31,0x30,0x36,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x37,0x2e, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x36, - 0x32,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x30, - 0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30, - 0x37,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x36, - 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x39,0x20,0x3e, - 0x3d,0x20,0x5f,0x31,0x30,0x35,0x37,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x20, - 0x5f,0x31,0x30,0x36,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x31,0x30,0x38,0x33,0x20,0x3d,0x20,0x5f,0x31,0x30,0x36,0x31, - 0x20,0x3e,0x3d,0x20,0x5f,0x31,0x30,0x35,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x39,0x31,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x38,0x33, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x39,0x31,0x20,0x3d,0x20, - 0x5f,0x31,0x30,0x36,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x30,0x35,0x37,0x2e,0x7a, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x76,0x6f,0x69,0x64,0x20,0x6d, + 0x61,0x69,0x6e,0x28,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x32,0x34,0x30,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x20, + 0x3c,0x20,0x28,0x5f,0x31,0x34,0x32,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69, + 0x67,0x68,0x74,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39, + 0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35, + 0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x32,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x32,0x34,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x35,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32, + 0x34,0x36,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e, + 0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x35,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x31,0x32,0x35,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72,0x64,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20,0x3d, + 0x20,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x6f,0x72,0x69,0x67,0x5f,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x39,0x39, + 0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38,0x34,0x35,0x37, + 0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x32,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x69, + 0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20, + 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x32,0x36,0x37, + 0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x36,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x33, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, + 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69, + 0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x5f,0x31,0x32,0x36,0x37,0x3b, + 0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f, + 0x31,0x33,0x30,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x65,0x6c,0x46,0x65,0x74,0x63, + 0x68,0x28,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65, + 0x73,0x6d,0x70,0x2c,0x20,0x69,0x76,0x65,0x63,0x32,0x28,0x69,0x6e,0x74,0x28,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e, + 0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37, + 0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36, + 0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39, + 0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37, + 0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28, + 0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73, + 0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33, + 0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33, + 0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39, + 0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33, + 0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28,0x69, + 0x6e,0x74,0x28,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, + 0x70,0x6f,0x73,0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37, + 0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35, + 0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e, + 0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37, + 0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a, + 0x20,0x31,0x36,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, + 0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x33,0x30, + 0x37,0x2c,0x20,0x5f,0x31,0x33,0x30,0x37,0x29,0x20,0x3e,0x20,0x39,0x2e,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35, + 0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30, + 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20, + 0x28,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20,0x30,0x2e,0x31, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31, + 0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x33,0x31, + 0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69, + 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a, + 0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61, + 0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20, + 0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f, + 0x31,0x33,0x33,0x31,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d, + 0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, + 0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31, + 0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31, + 0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34, + 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x35,0x31,0x20,0x3d,0x20,0x28, + 0x5f,0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31,0x33,0x35,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33, + 0x35,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34, + 0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, + 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74, + 0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f, + 0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20, + 0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37, + 0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x36,0x39,0x20,0x3d,0x20,0x61,0x62,0x73,0x28, + 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, + 0x33,0x37,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x31,0x33,0x37,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x37,0x34,0x20,0x3d, + 0x20,0x5f,0x31,0x33,0x37,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x37,0x33,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x38,0x32,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x37,0x34,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, + 0x33,0x38,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x31,0x20,0x3e,0x3d,0x20,0x5f, + 0x31,0x33,0x36,0x39,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x38,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33, + 0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x38,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63, + 0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, + 0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x31,0x33,0x39,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x33,0x20,0x3e,0x3d, + 0x20,0x5f,0x31,0x33,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x35,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33, + 0x37,0x33,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30, + 0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x31,0x34,0x30,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e, + 0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e, + 0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e, + 0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32, + 0x36,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, + 0x65,0x63,0x34,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72, + 0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f,0x31,0x34, + 0x32,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20, + 0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50, + 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29, + 0x20,0x2a,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x31, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31, + 0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x29,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35,0x32,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d, + 0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35,0x36,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75, + 0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x31, + 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34, + 0x35,0x32,0x20,0x2b,0x20,0x5f,0x31,0x34,0x35,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34, + 0x36,0x36,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20, + 0x5f,0x31,0x34,0x35,0x36,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, + 0x34,0x37,0x31,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, + 0x20,0x5f,0x31,0x34,0x35,0x32,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, + 0x34,0x38,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30, + 0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, + 0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78, + 0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x36,0x31,0x2c,0x20,0x5f,0x31,0x34,0x35, + 0x32,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x20,0x3d,0x20,0x5f,0x31,0x34,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x38,0x39,0x20,0x3d, + 0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x36,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x34,0x20,0x5f,0x31,0x35,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e, + 0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63, + 0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31, + 0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36, + 0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x33,0x38,0x20, + 0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20, + 0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x77,0x29,0x29,0x20,0x2a, + 0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x31,0x35,0x34,0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x38, + 0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34, + 0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x37,0x38,0x20,0x3d, + 0x20,0x5f,0x31,0x35,0x33,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x37, + 0x38,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68, + 0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33, + 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x38,0x39,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, + 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32,0x35, + 0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29,0x20,0x2b, + 0x20,0x28,0x28,0x5f,0x31,0x34,0x38,0x39,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74, + 0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, + 0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76, + 0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x5f,0x31,0x34,0x37, + 0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x36,0x36,0x29,0x20,0x2b,0x20,0x39,0x2e, + 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36, + 0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65, + 0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f, + 0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x32,0x30,0x37,0x38, + 0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x34,0x31,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x5f,0x31,0x34,0x36,0x36,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75, + 0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f, + 0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x35,0x38,0x39,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74, + 0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x39,0x33,0x20,0x3d,0x20,0x69, + 0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x5f,0x31,0x35,0x38,0x39,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20, + 0x3d,0x20,0x5f,0x31,0x35,0x39,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x35,0x39,0x39,0x20,0x3d, + 0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x34,0x20,0x5f,0x31,0x36,0x31,0x36,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x72,0x64,0x6d,0x73,0x6d, + 0x70,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e, + 0x78,0x79,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28, + 0x5f,0x31,0x32,0x34,0x36,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x73,0x63,0x72, + 0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x31,0x37,0x20, + 0x3d,0x20,0x5f,0x31,0x36,0x31,0x36,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61, + 0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20, + 0x5f,0x31,0x34,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x33,0x37,0x20,0x3d, + 0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x34,0x37, + 0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x74,0x72,0x69,0x6c,0x65, + 0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e, + 0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31, + 0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x34,0x39,0x20,0x3d,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3c,0x3d,0x20,0x31, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, + 0x31,0x36,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x36,0x34,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, + 0x31,0x36,0x35,0x35,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x39,0x2e,0x7a,0x20,0x3e, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x36,0x35,0x35,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x39, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x35,0x35,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31, + 0x36,0x36,0x31,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66, + 0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x36,0x36,0x37,0x20,0x3d,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x36,0x37,0x32,0x20,0x3d, + 0x20,0x76,0x65,0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20,0x76,0x65,0x63, + 0x32,0x28,0x5f,0x31,0x36,0x36,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x36,0x38,0x31,0x20, + 0x3d,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31,0x35,0x39,0x39,0x2e,0x7a,0x20,0x2a,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x36,0x36,0x37,0x2e,0x78,0x29,0x29,0x20, + 0x2f,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x39,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x38,0x31, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76, + 0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x5f, + 0x31,0x36,0x36,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x36,0x39,0x31,0x20,0x3d,0x20, + 0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x31,0x36,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x20,0x3c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38, + 0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x2d,0x63, + 0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x37,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f, + 0x31,0x36,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x36,0x37,0x32,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x36,0x39,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65, + 0x63,0x5f,0x72,0x61,0x79,0x6d,0x61,0x72,0x63,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x2d,0x63, + 0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x37,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x5f, + 0x31,0x36,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x5f,0x31,0x36,0x37,0x32,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x36,0x39,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65, + 0x63,0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x37,0x33,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x39,0x35,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x74, + 0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x37,0x35, + 0x39,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x72,0x64,0x66, + 0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63, + 0x32,0x28,0x5f,0x31,0x34,0x37,0x31,0x2c,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, + 0x37,0x36,0x34,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32,0x37,0x34, + 0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31,0x38,0x37,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67, + 0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f, + 0x31,0x37,0x33,0x37,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x31,0x37,0x33,0x37,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32, + 0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33, + 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36, + 0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31, + 0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20, + 0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x33,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x35, + 0x39,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x37,0x35, + 0x39,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72, + 0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, + 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, + 0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x37,0x36,0x34,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38, + 0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x36,0x34,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x34,0x37,0x31,0x2c,0x20,0x32,0x2e, + 0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63, + 0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20, + 0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33, + 0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3c,0x20,0x30,0x2e,0x36, + 0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34, + 0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x34,0x20,0x5f,0x31,0x38,0x32,0x35,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d, + 0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x34,0x37,0x31,0x2c,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20, + 0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x35,0x32, + 0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32, + 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x33,0x38,0x20,0x3d, + 0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31, + 0x38,0x33,0x38,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x33,0x37,0x20,0x2a,0x20, + 0x5f,0x31,0x38,0x32,0x35,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28, + 0x5f,0x31,0x38,0x32,0x35,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32, + 0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c, + 0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6c,0x61,0x6d, + 0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30, + 0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35, + 0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20, + 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74, + 0x44,0x69,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x73,0x68,0x5f,0x65,0x6e,0x61,0x62,0x6c, + 0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x37,0x36,0x20, + 0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x5f,0x31, + 0x35,0x39,0x33,0x29,0x20,0x2b,0x20,0x28,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f, + 0x31,0x35,0x38,0x39,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x36,0x33, + 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x38,0x30,0x20,0x3d,0x20, + 0x69,0x76,0x65,0x63,0x33,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x31,0x38,0x37, + 0x36,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x35,0x20, + 0x3d,0x20,0x5f,0x31,0x38,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x36,0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x28,0x5f,0x31,0x38,0x38,0x30, + 0x20,0x2b,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x31,0x29,0x29,0x2c,0x20,0x69,0x76, + 0x65,0x63,0x33,0x28,0x36,0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x20,0x3d,0x20,0x66,0x72,0x61,0x63, + 0x74,0x28,0x5f,0x31,0x38,0x37,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x38,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72, + 0x65,0x63,0x74,0x44,0x69,0x66,0x66,0x20,0x3d,0x20,0x73,0x68,0x5f,0x65,0x76,0x61, + 0x6c,0x5f,0x74,0x72,0x69,0x6c,0x69,0x6e,0x65,0x61,0x72,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x33,0x38,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f, + 0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x30,0x20,0x3d,0x20,0x5f,0x31, + 0x36,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x31,0x20, + 0x3d,0x20,0x5f,0x31,0x35,0x39,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x44,0x69,0x66, + 0x66,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74, + 0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x30,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72, + 0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x31,0x34,0x20,0x3d,0x20,0x69,0x6e, + 0x64,0x69,0x72,0x65,0x63,0x74,0x44,0x69,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x31,0x39,0x32,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28, + 0x64,0x6f,0x74,0x28,0x5f,0x31,0x39,0x31,0x34,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37, + 0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32, + 0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36, + 0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30, + 0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35, + 0x29,0x29,0x29,0x2c,0x20,0x5f,0x31,0x39,0x31,0x34,0x2c,0x20,0x76,0x65,0x63,0x33, + 0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f, + 0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x44,0x69, + 0x66,0x66,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28, + 0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20, + 0x5f,0x31,0x36,0x33,0x37,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x39, + 0x32,0x33,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38, + 0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32,0x35,0x31,0x34,0x30,0x33,0x38,0x30, + 0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65, + 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x36,0x31,0x37,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36, + 0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, + 0x31,0x39,0x34,0x35,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d, + 0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e, + 0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34, + 0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x31,0x39,0x35,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x21,0x5f,0x31,0x39,0x34,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x39,0x35,0x34,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28, + 0x6c,0x69,0x67,0x68,0x74,0x29,0x20,0x3c,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x61, + 0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x30,0x39,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x38,0x33,0x3b,0x0a,0x20,0x20, + 0x31,0x39,0x35,0x34,0x20,0x3d,0x20,0x5f,0x31,0x39,0x34,0x35,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x39,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x39,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73, - 0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c, - 0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x39,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, - 0x20,0x76,0x65,0x63,0x34,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, - 0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f, - 0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f, - 0x72,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75, - 0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74, - 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36, - 0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x29,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, - 0x74,0x75,0x72,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31,0x34,0x30, - 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d, - 0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31,0x34,0x34,0x20,0x3d, - 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x32,0x36,0x2e, - 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31, - 0x34,0x39,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f, - 0x31,0x31,0x34,0x30,0x20,0x2b,0x20,0x5f,0x31,0x31,0x34,0x34,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x31,0x35,0x34,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, - 0x2c,0x20,0x5f,0x31,0x31,0x34,0x34,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x31,0x35,0x39,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, - 0x4e,0x2c,0x20,0x5f,0x31,0x31,0x34,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x31,0x37,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39, - 0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c, - 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, - 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c, - 0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d, - 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x31,0x34,0x39,0x2c,0x20,0x5f,0x31, - 0x31,0x34,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x31,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x31,0x37,0x37, - 0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63, - 0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x30,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x34,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x34,0x20,0x5f,0x31,0x32,0x33,0x30,0x20,0x3d,0x20,0x5f,0x39,0x33,0x34, - 0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65, - 0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20, - 0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, - 0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x32,0x34,0x30, - 0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x32,0x33,0x30,0x2e,0x78,0x79,0x7a,0x20,0x2f, - 0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x32,0x33,0x30,0x2e,0x77,0x29,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x34,0x34,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34, - 0x30,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, - 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x37,0x35,0x20, - 0x3d,0x20,0x5f,0x31,0x32,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x36, - 0x37,0x35,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x34,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67, - 0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63, - 0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x31,0x37,0x37,0x29,0x20, - 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, - 0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, - 0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32, - 0x35,0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29,0x20, - 0x2b,0x20,0x28,0x28,0x5f,0x31,0x31,0x37,0x37,0x20,0x2a,0x20,0x28,0x44,0x69,0x73, - 0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74, - 0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20, - 0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x5f,0x31,0x31, - 0x35,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x31,0x35,0x34,0x29,0x20,0x2b,0x20,0x39, - 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, - 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, - 0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64, - 0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x36,0x37, - 0x35,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x32,0x34,0x34,0x29,0x29,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x31,0x35,0x34,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73, - 0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20, - 0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x32, - 0x38,0x31,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66, - 0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72, - 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x32,0x38, - 0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65, - 0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x33,0x30,0x34,0x20,0x3d,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x72,0x64, - 0x6d,0x73,0x6d,0x70,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f, - 0x72,0x64,0x2e,0x78,0x79,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x28,0x5f,0x39,0x33,0x34,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77, - 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x39,0x33,0x34,0x2e,0x73,0x63, - 0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x30,0x35, - 0x20,0x3d,0x20,0x5f,0x31,0x33,0x30,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x31,0x35,0x20,0x3d,0x20,0x5f,0x39,0x33, - 0x34,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d, - 0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33, - 0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x31, - 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x33,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x37,0x2e,0x7a, - 0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x31,0x33,0x32,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x31, - 0x31,0x35,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32, - 0x20,0x3d,0x20,0x5f,0x31,0x31,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x33,0x31,0x20,0x3d,0x20,0x46, - 0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75, - 0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x34,0x31,0x20,0x3d, - 0x20,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65, - 0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39, - 0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34, - 0x30,0x36,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3c,0x20, - 0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37, - 0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x34,0x39, - 0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d, - 0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x53,0x69,0x7a,0x65,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, - 0x61,0x73,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x33,0x36,0x30,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x32,0x28,0x5f, - 0x31,0x33,0x35,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x36,0x39,0x20,0x3d,0x20,0x69, - 0x6e,0x74,0x28,0x5f,0x31,0x32,0x38,0x37,0x2e,0x7a,0x20,0x2a,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x28,0x5f,0x31,0x33,0x35,0x35,0x2e,0x78,0x29,0x29,0x20,0x2f,0x20,0x32, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x35,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x35, - 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x31,0x33,0x37,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d, - 0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x69,0x6e,0x64, - 0x69,0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x20,0x3c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33, - 0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20, - 0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32, - 0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x32,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x39, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d, - 0x20,0x5f,0x31,0x33,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x5f,0x31, - 0x33,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x53,0x70,0x65, - 0x63,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x72,0x61,0x79, - 0x6d,0x61,0x72,0x63,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20, - 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x39,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20, - 0x3d,0x20,0x5f,0x31,0x33,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x33,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69, - 0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73, - 0x70,0x65,0x63,0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x32,0x32,0x20,0x3d,0x20,0x69, - 0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32, - 0x32,0x20,0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e, - 0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x33,0x36,0x20, - 0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x34,0x32,0x33,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x32,0x33,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32, - 0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31, - 0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39, - 0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30, - 0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38, - 0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61, - 0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63, - 0x20,0x3d,0x20,0x5f,0x31,0x34,0x33,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34, - 0x20,0x5f,0x31,0x34,0x34,0x35,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, - 0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70, - 0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x31,0x35,0x39,0x2c,0x20,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x34,0x35,0x30,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72, - 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31, - 0x35,0x39,0x32,0x37,0x34,0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31, - 0x38,0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28, - 0x5f,0x31,0x34,0x33,0x36,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x33,0x33,0x31,0x20, - 0x2a,0x20,0x5f,0x31,0x34,0x34,0x35,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63, - 0x33,0x28,0x5f,0x31,0x34,0x34,0x35,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f, - 0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61, - 0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e, - 0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30, - 0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x34,0x35,0x30, - 0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28, - 0x30,0x2e,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34, - 0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67, - 0x68,0x6e,0x65,0x73,0x73,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x20, - 0x2a,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x31,0x35, - 0x39,0x2c,0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e, - 0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36, - 0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x20,0x3d,0x20,0x5f,0x31, - 0x33,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x35,0x20,0x3d,0x20,0x5f,0x31, - 0x32,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x30,0x34,0x20,0x3d,0x20, - 0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66, - 0x66,0x75,0x73,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, - 0x35,0x29,0x20,0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69, - 0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68, - 0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33, - 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x33,0x33,0x31,0x29,0x20,0x2a, - 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, - 0x29,0x29,0x20,0x2a,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x64,0x6f, - 0x74,0x28,0x5f,0x31,0x35,0x30,0x34,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31, - 0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30, - 0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32, - 0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29, - 0x29,0x2c,0x20,0x5f,0x31,0x35,0x30,0x34,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, - 0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74, - 0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32, - 0x35,0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29,0x20, - 0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, - 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x33,0x30,0x35,0x29,0x20, - 0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f, - 0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x35,0x33,0x39,0x20,0x3d,0x20,0x5f,0x39,0x33, - 0x34,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65, - 0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34, - 0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34, - 0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x35,0x34,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x35,0x33,0x39,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x35,0x34,0x38,0x20,0x3d,0x20,0x6c,0x65, - 0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74,0x29,0x20,0x3c,0x20,0x5f,0x39, - 0x33,0x34,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e, - 0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x31,0x35,0x34,0x38,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x35,0x34,0x38,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28, - 0x28,0x5f,0x39,0x33,0x34,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x5f,0x39,0x33,0x34,0x2e,0x61, - 0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, - 0x20,0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74,0x29, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, - 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x33,0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x39,0x33,0x34, - 0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a, - 0x20,0x5f,0x39,0x33,0x34,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32, + 0x34,0x36,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x61,0x6d,0x62, + 0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x20,0x2d, + 0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, + 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f, + 0x31,0x36,0x31,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69, + 0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e, + 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20, + 0x5f,0x31,0x32,0x34,0x36,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e, 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65, 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20, - 0x2a,0x20,0x5f,0x31,0x33,0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x2a,0x20,0x5f,0x31,0x36,0x31,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x36,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28, - 0x2d,0x5f,0x31,0x31,0x34,0x30,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x61,0x6d,0x5f,0x34,0x32,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28, + 0x2d,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73, + 0x61,0x72,0x61,0x6d,0x5f,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73, 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, - 0x31,0x35,0x39,0x30,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c,0x65, - 0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x31,0x37,0x37, - 0x20,0x2a,0x20,0x5f,0x31,0x35,0x39,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30, + 0x31,0x39,0x39,0x34,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c,0x65, + 0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x32,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x34,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x38,0x39, + 0x20,0x2a,0x20,0x5f,0x31,0x39,0x39,0x34,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39, 0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x32,0x36, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x34,0x32, 0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68, 0x74,0x20,0x2b,0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, 0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74, - 0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x65,0x6d, - 0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30, - 0x2e,0x30,0x2c,0x20,0x5f,0x31,0x32,0x36,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65, - 0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x39,0x33,0x34,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d, - 0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31, - 0x36,0x31,0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x32,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78, - 0x28,0x5f,0x31,0x36,0x31,0x39,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, - 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36, - 0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34, - 0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20, - 0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20, - 0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20, - 0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33,0x34, - 0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x34,0x20,0x5f,0x31,0x36,0x33,0x37,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f, - 0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, - 0x36,0x34,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x33,0x37,0x2e, - 0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30, - 0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38, - 0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37, - 0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30, - 0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d, - 0x20,0x5f,0x31,0x36,0x34,0x31,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x31,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x31,0x2e,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x65, + 0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x5f,0x31,0x34,0x32,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48, + 0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29, + 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x32,0x34,0x36,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77, + 0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, + 0x5f,0x32,0x30,0x32,0x32,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x32,0x36,0x20,0x3d,0x20,0x6d, + 0x69,0x78,0x28,0x5f,0x32,0x30,0x32,0x32,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, + 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, + 0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31, + 0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c, + 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, + 0x78,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x36,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, + 0x79,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x36,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, + 0x7a,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x36,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, + 0x32,0x34,0x36,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d, + 0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x32,0x30,0x34,0x30,0x20,0x3d,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x32,0x30,0x34,0x34,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x30, + 0x34,0x30,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30, + 0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, + 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, + 0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32, + 0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, + 0x78,0x20,0x3d,0x20,0x5f,0x32,0x30,0x34,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x32,0x30,0x34,0x34,0x2e,0x79,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x32,0x30,0x34, + 0x34,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" @@ -4622,12 +5336,51 @@ vs_trile_source_metal_macos := u8.[ ]; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" + #pragma clang diagnostic ignored "-Wmissing-braces" #include #include using namespace metal; + template + struct spvUnsafeArray + { + T elements[Num ? Num : 1]; + + thread T& operator [] (size_t pos) thread + { + return elements[pos]; + } + constexpr const thread T& operator [] (size_t pos) const thread + { + return elements[pos]; + } + + device T& operator [] (size_t pos) device + { + return elements[pos]; + } + constexpr const device T& operator [] (size_t pos) const device + { + return elements[pos]; + } + + constexpr const constant T& operator [] (size_t pos) const constant + { + return elements[pos]; + } + + threadgroup T& operator [] (size_t pos) threadgroup + { + return elements[pos]; + } + constexpr const threadgroup T& operator [] (size_t pos) const threadgroup + { + return elements[pos]; + } + }; + // Implementation of the GLSL mod() function, which is slightly different than Metal fmod() template inline Tx mod(Tx x, Ty y) @@ -4670,6 +5423,7 @@ vs_trile_source_metal_macos := u8.[ int is_preview; packed_float3 rdm_tint; float rdm_diff_saturation; + int sh_enabled; }; struct main0_out @@ -4698,29 +5452,29 @@ vs_trile_source_metal_macos := u8.[ static inline __attribute__((always_inline)) float DistributionGGX(thread const float3& N, thread const float3& H, thread const float& roughness) { - float _209 = roughness * roughness; - float _213 = _209 * _209; - float _218 = fast::max(dot(N, H), 0.0); - float _226 = ((_218 * _218) * (_213 - 1.0)) + 1.0; - return _213 / ((3.1415927410125732421875 * _226) * _226); + float _225 = roughness * roughness; + float _229 = _225 * _225; + float _234 = fast::max(dot(N, H), 0.0); + float _242 = ((_234 * _234) * (_229 - 1.0)) + 1.0; + return _229 / ((3.1415927410125732421875 * _242) * _242); } static inline __attribute__((always_inline)) float GeometrySmith(thread const float3& N, thread const float3& V, thread const float3& L, thread const float& roughness) { - float _238 = roughness + 1.0; - float _244 = (_238 * _238) * 0.125; - float _249 = fast::max(dot(N, V), 0.0); - float _254 = fast::max(dot(N, L), 0.0); - float _259 = 1.0 - _244; - return (_254 / ((_254 * _259) + _244)) * (_249 / ((_249 * _259) + _244)); + float _254 = roughness + 1.0; + float _260 = (_254 * _254) * 0.125; + float _265 = fast::max(dot(N, V), 0.0); + float _270 = fast::max(dot(N, L), 0.0); + float _275 = 1.0 - _260; + return (_270 / ((_270 * _275) + _260)) * (_265 / ((_265 * _275) + _260)); } static inline __attribute__((always_inline)) float4 rdm_atlas_rect(thread const int3& local_pos, thread const int& roughness, texture2d rdm_lookup, sampler trilesmp) { - int _441 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); - return rdm_lookup.read(uint2(int2(_441 % 512, _441 / 512)), 0); + int _457 = ((local_pos.x + (local_pos.y * 32)) + (local_pos.z * 1024)) + (roughness * 32768); + return rdm_lookup.read(uint2(int2(_457 % 512, _457 / 512)), 0); } static inline __attribute__((always_inline)) @@ -4732,35 +5486,35 @@ vs_trile_source_metal_macos := u8.[ static inline __attribute__((always_inline)) int rdm_face_from_normal(thread const float3& N) { - float3 _377 = abs(N); - float _379 = _377.y; - float _381 = _377.x; - bool _382 = _379 >= _381; - bool _390; - if (_382) + float3 _393 = abs(N); + float _395 = _393.y; + float _397 = _393.x; + bool _398 = _395 >= _397; + bool _406; + if (_398) { - _390 = _379 >= _377.z; + _406 = _395 >= _393.z; } else { - _390 = _382; + _406 = _398; } - if (_390) + if (_406) { return (N.y >= 0.0) ? 0 : 1; } - float _399 = _377.z; - bool _402 = _399 >= _381; - bool _410; - if (_402) + float _415 = _393.z; + bool _418 = _415 >= _397; + bool _426; + if (_418) { - _410 = _399 >= _379; + _426 = _415 >= _395; } else { - _410 = _402; + _426 = _418; } - if (_410) + if (_426) { return (N.z >= 0.0) ? 2 : 3; } @@ -4779,49 +5533,49 @@ vs_trile_source_metal_macos := u8.[ float3 vc = v; if ((face / 2) == 0) { - float3 _1683 = vc; - _1683.z = v.y; - _1683.y = v.z; - vc = _1683; + float3 _2088 = vc; + _2088.z = v.y; + _2088.y = v.z; + vc = _2088; } if ((face / 2) == 2) { - float3 _1687 = vc; - _1687.z = v.x; - _1687.x = v.z; - vc = _1687; + float3 _2092 = vc; + _2092.z = v.x; + _2092.x = v.z; + vc = _2092; } if ((face % 2) == 1) { - float3 _1691 = vc; - _1691.z = _1691.z * (-1.0); - vc = _1691; + float3 _2096 = vc; + _2096.z = _2096.z * (-1.0); + vc = _2096; } - float2 _357 = vc.xy * (1.0 / ((abs(vc.x) + abs(vc.y)) + vc.z)); - float _359 = _357.x; - float _361 = _357.y; - return (float2(_359 + _361, _359 - _361) * 0.5) + float2(0.5); + float2 _373 = vc.xy * (1.0 / ((abs(vc.x) + abs(vc.y)) + vc.z)); + float _375 = _373.x; + float _377 = _373.y; + return (float2(_375 + _377, _375 - _377) * 0.5) + float2(0.5); } static inline __attribute__((always_inline)) - float3 sky(thread const float3& skypos, thread const float3& sunpos, constant trile_world_config& _126) + float3 sky(thread const float3& skypos, thread const float3& sunpos, constant trile_world_config& _142) { - float3 _117 = fast::normalize(skypos); - float _122 = dot(_117, fast::normalize(sunpos)); - float _137 = _117.y; - float3 result = mix(_126.skyBase, _126.skyTop, float3(fast::clamp(_137 * 2.0, 0.0, 0.699999988079071044921875))) + ((_126.sunHalo * fast::clamp((_122 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); - if (_122 > 0.99989998340606689453125) + float3 _133 = fast::normalize(skypos); + float _138 = dot(_133, fast::normalize(sunpos)); + float _153 = _133.y; + float3 result = mix(_142.skyBase, _142.skyTop, float3(fast::clamp(_153 * 2.0, 0.0, 0.699999988079071044921875))) + ((_142.sunHalo * fast::clamp((_138 - 0.949999988079071044921875) * 10.0, 0.0, 0.800000011920928955078125)) * 0.20000000298023223876953125); + if (_138 > 0.99989998340606689453125) { - result = _126.sunDisk; + result = _142.sunDisk; } - float3 _186 = result; - float3 _187 = _186 + (mix(_126.horizonHalo, float3(0.0), float3(fast::clamp(abs(_137) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); - result = _187; - return _187; + float3 _202 = result; + float3 _203 = _202 + (mix(_142.horizonHalo, float3(0.0), float3(fast::clamp(abs(_153) * 80.0, 0.0, 1.0))) * 0.100000001490116119384765625); + result = _203; + return _203; } static inline __attribute__((always_inline)) - float3 sky_reflect(thread float3& R, thread const float3& sunpos, constant trile_world_config& _126) + float3 sky_reflect(thread float3& R, thread const float3& sunpos, constant trile_world_config& _142) { if (R.y < 0.0) { @@ -4829,53 +5583,53 @@ vs_trile_source_metal_macos := u8.[ } float3 param = R; float3 param_1 = sunpos; - return sky(param, param_1, _126); + return sky(param, param_1, _142); } static inline __attribute__((always_inline)) - float3 rdm_spec_raymarch(thread const float3& N, thread const float3& V, thread const float3& diff, thread const int& face, thread const int2& faceOffset, thread const int& rdmSize, thread const float2& atlasInvSize, constant trile_world_config& _126, texture2d rdm_atlas, sampler rdmsmp) + float3 rdm_spec_raymarch(thread const float3& N, thread const float3& V, thread const float3& diff, thread const int& face, thread const int2& faceOffset, thread const int& rdmSize, thread const float2& atlasInvSize, constant trile_world_config& _142, texture2d rdm_atlas, sampler rdmsmp) { - float3 _496 = reflect(V, N); + float3 _512 = reflect(V, N); for (int i = 0; i < 40; i++) { - float3 _526 = diff + (_496 * (0.5 * float(i + 1))); - if (dot(_526, N) < 0.0) + float3 _542 = diff + (_512 * (0.5 * float(i + 1))); + if (dot(_542, N) < 0.0) { continue; } - float3 param = fast::normalize(_526); + float3 param = fast::normalize(_542); int param_1 = face; - float4 _560 = rdm_atlas.sample(rdmsmp, ((float2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize), bias(0.0)); - float _563 = length(_526); - float _566 = _560.w; - bool _567 = _566 > 0.0; - bool _574; - if (_567) - { - _574 = _566 < _563; - } - else - { - _574 = _567; - } - bool _583; - if (_574) - { - _583 = (_566 + 0.5) > _563; - } - else - { - _583 = _574; - } + float4 _576 = rdm_atlas.sample(rdmsmp, ((float2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize), bias(0.0)); + float _579 = length(_542); + float _582 = _576.w; + bool _583 = _582 > 0.0; + bool _590; if (_583) { - return _560.xyz; + _590 = _582 < _579; + } + else + { + _590 = _583; + } + bool _599; + if (_590) + { + _599 = (_582 + 0.5) > _579; + } + else + { + _599 = _590; + } + if (_599) + { + return _576.xyz; } } - float3 param_2 = _496; - float3 param_3 = float3(_126.sunPosition); - float3 _597 = sky_reflect(param_2, param_3, _126); - return _597; + float3 param_2 = _512; + float3 param_3 = float3(_142.sunPosition); + float3 _613 = sky_reflect(param_2, param_3, _142); + return _613; } static inline __attribute__((always_inline)) @@ -4886,6 +5640,91 @@ vs_trile_source_metal_macos := u8.[ return rdm_atlas.sample(rdmsmp, ((float2(faceOffset) + (rdm_hemioct(param, param_1) * float(rdmSize))) * atlasInvSize)).xyz; } + static inline __attribute__((always_inline)) + float sh_probe_energy(thread const int3& probe, sampler rdmsmp, texture2d sh_chunk) + { + int _1048 = probe.x * 3; + int _1055 = (probe.z * 64) + probe.y; + return fast::max(0.88622701168060302734375 * ((sh_chunk.read(uint2(int2(_1048, _1055)), 0).x + sh_chunk.read(uint2(int2(_1048 + 1, _1055)), 0).x) + sh_chunk.read(uint2(int2(_1048 + 2, _1055)), 0).x), 0.0); + } + + static inline __attribute__((always_inline)) + float3 sh_eval(thread const int3& probe, thread const float3& N, sampler rdmsmp, texture2d sh_chunk) + { + int _926 = probe.x * 3; + int _934 = (probe.z * 64) + probe.y; + float4 _944 = sh_chunk.read(uint2(int2(_926, _934)), 0); + float4 _954 = sh_chunk.read(uint2(int2(_926 + 1, _934)), 0); + float4 _964 = sh_chunk.read(uint2(int2(_926 + 2, _934)), 0); + return fast::max(float3((0.88622701168060302734375 * _944.x) + (1.02332699298858642578125 * (((_944.w * N.x) + (_944.y * N.y)) + (_944.z * N.z))), (0.88622701168060302734375 * _954.x) + (1.02332699298858642578125 * (((_954.w * N.x) + (_954.y * N.y)) + (_954.z * N.z))), (0.88622701168060302734375 * _964.x) + (1.02332699298858642578125 * (((_964.w * N.x) + (_964.y * N.y)) + (_964.z * N.z)))) * float3(0.3183098733425140380859375), float3(0.0)); + } + + static inline __attribute__((always_inline)) + float3 sh_eval_trilinear(thread const int3& p0, thread const int3& p1, thread const float3& t, thread const float3& N, sampler rdmsmp, texture2d sh_chunk) + { + spvUnsafeArray _1105 = spvUnsafeArray({ 1.0 - t.x, t.x }); + spvUnsafeArray wx = _1105; + spvUnsafeArray _1112 = spvUnsafeArray({ 1.0 - t.y, t.y }); + spvUnsafeArray wy = _1112; + spvUnsafeArray _1119 = spvUnsafeArray({ 1.0 - t.z, t.z }); + spvUnsafeArray wz = _1119; + float3 result = float3(0.0); + float total_w = 0.0; + int _1149; + int _1160; + int _1171; + for (int iz = 0; iz < 2; iz++) + { + for (int iy = 0; iy < 2; iy++) + { + for (int ix = 0; ix < 2; ix++) + { + if (ix == 0) + { + _1149 = p0.x; + } + else + { + _1149 = p1.x; + } + if (iy == 0) + { + _1160 = p0.y; + } + else + { + _1160 = p1.y; + } + if (iz == 0) + { + _1171 = p0.z; + } + else + { + _1171 = p1.z; + } + int3 _1180 = int3(_1149, _1160, _1171); + int3 param = _1180; + float _1196 = ((wx[ix] * wy[iy]) * wz[iz]) * sh_probe_energy(param, rdmsmp, sh_chunk); + int3 param_1 = _1180; + float3 param_2 = N; + result += (sh_eval(param_1, param_2, rdmsmp, sh_chunk) * _1196); + total_w += _1196; + } + } + } + float3 _1218; + if (total_w > 0.001000000047497451305389404296875) + { + _1218 = result / float3(total_w); + } + else + { + _1218 = float3(0.0); + } + return _1218; + } + static inline __attribute__((always_inline)) int isign(thread const float& f) { @@ -4897,22 +5736,22 @@ vs_trile_source_metal_macos := u8.[ { int3 param = local_pos; int param_1 = 7; - float4 _639 = rdm_atlas_rect(param, param_1, rdm_lookup, trilesmp); - if (_639.z <= 0.0) + float4 _655 = rdm_atlas_rect(param, param_1, rdm_lookup, trilesmp); + if (_655.z <= 0.0) { return fallback; } float3 param_2 = N; - int _650 = rdm_face_from_normal(param_2); - float4 param_3 = _639; - int param_4 = _650; + int _666 = rdm_face_from_normal(param_2); + float4 param_3 = _655; + int param_4 = _666; int param_5 = 2; int2 param_6 = int2(rdm_atlas.get_width(), rdm_atlas.get_height()); - int2 _667 = rdm_face_offset(param_3, param_4, param_5, param_6); + int2 _683 = rdm_face_offset(param_3, param_4, param_5, param_6); float3 param_7 = N; - int param_8 = _650; - float2 _673 = rdm_hemioct(param_7, param_8); - return rdm_atlas.read(uint2(int2(_667.x + int(_673.x * 2.0), _667.y + int(_673.y * 2.0))), 0).xyz; + int param_8 = _666; + float2 _689 = rdm_hemioct(param_7, param_8); + return rdm_atlas.read(uint2(int2(_683.x + int(_689.x * 2.0), _683.y + int(_689.y * 2.0))), 0).xyz; } static inline __attribute__((always_inline)) @@ -4925,16 +5764,16 @@ vs_trile_source_metal_macos := u8.[ float3 rdm_indirect_diffuse(thread const float3& N, thread const float3& diff, thread const int3& local_pos, texture2d rdm_lookup, sampler trilesmp, texture2d rdm_atlas, sampler rdmsmp) { float3 param = N; - int _732 = rdm_face_from_normal(param); - bool _738 = _732 <= 1; + int _748 = rdm_face_from_normal(param); + bool _754 = _748 <= 1; float2 delta; - if (_738) + if (_754) { delta = float2(diff.x, diff.z); } else { - if (_732 <= 3) + if (_748 <= 3) { delta = float2(diff.x, diff.y); } @@ -4945,7 +5784,7 @@ vs_trile_source_metal_macos := u8.[ } int3 s1; int3 s2; - if (_738) + if (_754) { float param_1 = delta.x; s1 = int3(isign(param_1), 0, 0); @@ -4956,7 +5795,7 @@ vs_trile_source_metal_macos := u8.[ } else { - if (_732 <= 3) + if (_748 <= 3) { float param_5 = delta.x; s1 = int3(isign(param_5), 0, 0); @@ -4976,16 +5815,16 @@ vs_trile_source_metal_macos := u8.[ } } float3 param_13 = N; - int3 param_14 = int3(mod(float3(local_pos), float3(32.0))); + int3 param_14 = clamp(local_pos, int3(0), int3(31)); float3 param_15 = float3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); float3 param_16 = N; - int3 param_17 = int3(mod(float3(local_pos + s1), float3(32.0))); + int3 param_17 = clamp(local_pos + s1, int3(0), int3(31)); float3 param_18 = float3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); float3 param_19 = N; - int3 param_20 = int3(mod(float3(local_pos + s2), float3(32.0))); + int3 param_20 = clamp(local_pos + s2, int3(0), int3(31)); float3 param_21 = float3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); float3 param_22 = N; - int3 param_23 = int3(mod(float3((local_pos + s1) + s2), float3(32.0))); + int3 param_23 = clamp((local_pos + s1) + s2, int3(0), int3(31)); float3 param_24 = float3(0.300000011920928955078125, 0.300000011920928955078125, 0.4000000059604644775390625); float3 param_25 = rdm_sample_diff_probe(param_13, param_14, param_15, rdm_lookup, trilesmp, rdm_atlas, rdmsmp); float3 param_26 = rdm_sample_diff_probe(param_16, param_17, param_18, rdm_lookup, trilesmp, rdm_atlas, rdmsmp); @@ -4999,84 +5838,84 @@ vs_trile_source_metal_macos := u8.[ return smix(param_31, param_32, param_33); } - fragment main0_out main0(main0_in in [[stage_in]], constant trile_world_config& _126 [[buffer(0)]], constant trile_fs_params& _934 [[buffer(1)]], texture2d rdm_lookup [[texture(0)]], texture2d rdm_atlas [[texture(1)]], texture2d triletex [[texture(2)]], depth2d shadowtex [[texture(3)]], texture2d ssaotex [[texture(4)]], texture2d brdf_lut [[texture(5)]], sampler trilesmp [[sampler(0)]], sampler rdmsmp [[sampler(1)]], sampler shadowsmp [[sampler(2)]], float4 gl_FragCoord [[position]]) + fragment main0_out main0(main0_in in [[stage_in]], constant trile_world_config& _142 [[buffer(0)]], constant trile_fs_params& _1246 [[buffer(1)]], texture2d rdm_lookup [[texture(0)]], texture2d rdm_atlas [[texture(1)]], texture2d sh_chunk [[texture(2)]], texture2d triletex [[texture(3)]], depth2d shadowtex [[texture(4)]], texture2d ssaotex [[texture(5)]], texture2d brdf_lut [[texture(6)]], sampler trilesmp [[sampler(0)]], sampler rdmsmp [[sampler(1)]], sampler shadowsmp [[sampler(2)]], float4 gl_FragCoord [[position]]) { main0_out out = {}; - bool _928 = in.vpos.y < (_126.planeHeight - 0.00999999977648258209228515625); - bool _939; - if (_928) + bool _1240 = in.vpos.y < (_142.planeHeight - 0.00999999977648258209228515625); + bool _1251; + if (_1240) { - _939 = _934.is_reflection == 1; + _1251 = _1246.is_reflection == 1; } else { - _939 = _928; + _1251 = _1240; } - if (_939) + if (_1251) { discard_fragment(); } float3 sample_pos = in.ipos - (in.orig_normal * 0.0199999995529651641845703125); - bool _954 = _934.is_reflection == 1; - int _955 = _954 ? 1 : 3; + bool _1266 = _1246.is_reflection == 1; + int _1267 = _1266 ? 1 : 3; float4 trixel_material; - for (int i = 0; i < _955; i++) + for (int i = 0; i < _1267; i++) { - float4 _995 = triletex.read(uint2(int2(int(fast::clamp(sample_pos.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(fast::clamp(sample_pos.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(fast::clamp(sample_pos.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16))), 0); - trixel_material = _995; - if (dot(_995, _995) > 9.9999997473787516355514526367188e-05) + float4 _1307 = triletex.read(uint2(int2(int(fast::clamp(sample_pos.z, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0), int(fast::clamp(sample_pos.y, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) + (int(fast::clamp(sample_pos.x, 9.9999997473787516355514526367188e-05, 0.999989986419677734375) * 16.0) * 16))), 0); + trixel_material = _1307; + if (dot(_1307, _1307) > 9.9999997473787516355514526367188e-05) { break; } sample_pos += (in.to_center * 0.100000001490116119384765625); } - int _1019 = int(round(trixel_material.w * 255.0)); + int _1331 = int(round(trixel_material.w * 255.0)); float emittance = 0.0; int roughnessInt = 0; float roughness = 0.0; float metallic = 0.0; - if ((_1019 & 1) != 0) + if ((_1331 & 1) != 0) { - emittance = float((_1019 >> 1) & 127) * 0.0078740157186985015869140625; + emittance = float((_1331 >> 1) & 127) * 0.0078740157186985015869140625; } else { - int _1039 = (_1019 >> 5) & 7; - roughnessInt = _1039; - roughness = fast::max(float(_1039) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - metallic = float((_1019 >> 3) & 3) * 0.3333333432674407958984375; + int _1351 = (_1331 >> 5) & 7; + roughnessInt = _1351; + roughness = fast::max(float(_1351) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1331 >> 3) & 3) * 0.3333333432674407958984375; } - float3 _1057 = abs(in.fnormal.xyz); - float _1059 = _1057.x; - float _1061 = _1057.y; - bool _1062 = _1059 >= _1061; - bool _1070; - if (_1062) + float3 _1369 = abs(in.fnormal.xyz); + float _1371 = _1369.x; + float _1373 = _1369.y; + bool _1374 = _1371 >= _1373; + bool _1382; + if (_1374) { - _1070 = _1059 >= _1057.z; + _1382 = _1371 >= _1369.z; } else { - _1070 = _1062; + _1382 = _1374; } float3 N; - if (_1070) + if (_1382) { N = float3(sign(in.fnormal.x), 0.0, 0.0); } else { - bool _1083 = _1061 >= _1059; - bool _1091; - if (_1083) + bool _1395 = _1373 >= _1371; + bool _1403; + if (_1395) { - _1091 = _1061 >= _1057.z; + _1403 = _1373 >= _1369.z; } else { - _1091 = _1083; + _1403 = _1395; } - if (_1091) + if (_1403) { N = float3(0.0, sign(in.fnormal.y), 0.0); } @@ -5085,145 +5924,171 @@ vs_trile_source_metal_macos := u8.[ N = float3(0.0, 0.0, sign(in.fnormal.z)); } } - if (_954) + if (_1266) { - out.frag_color = float4(trixel_material.xyz * (((_126.sunLightColor * fast::max(dot(N, fast::normalize(float3(_126.sunPosition))), 0.0)) * _126.sunIntensity) + float3(0.100000001490116119384765625)), 1.0); + out.frag_color = float4(trixel_material.xyz * (((_142.sunLightColor * fast::max(dot(N, fast::normalize(float3(_142.sunPosition))), 0.0)) * _142.sunIntensity) + float3(0.100000001490116119384765625)), 1.0); return out; } - float3 _1140 = fast::normalize(in.cam - in.vpos); - float3 _1144 = fast::normalize(float3(_126.sunPosition)); - float3 _1149 = fast::normalize(_1140 + _1144); - float _1154 = fast::max(dot(N, _1144), 0.0); - float _1159 = fast::max(dot(N, _1140), 0.0); - float3 _1171 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, float3(metallic)); - float param = fast::max(dot(_1149, _1140), 0.0); - float3 param_1 = _1171; - float3 _1177 = fresnelSchlick(param, param_1); + float3 _1452 = fast::normalize(in.cam - in.vpos); + float3 _1456 = fast::normalize(float3(_142.sunPosition)); + float3 _1461 = fast::normalize(_1452 + _1456); + float _1466 = fast::max(dot(N, _1456), 0.0); + float _1471 = fast::max(dot(N, _1452), 0.0); + float3 _1483 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, float3(metallic)); + float param = fast::max(dot(_1461, _1452), 0.0); + float3 param_1 = _1483; + float3 _1489 = fresnelSchlick(param, param_1); float3 param_2 = N; - float3 param_3 = _1149; + float3 param_3 = _1461; float param_4 = roughness; float3 param_5 = N; - float3 param_6 = _1140; - float3 param_7 = _1144; + float3 param_6 = _1452; + float3 param_7 = _1456; float param_8 = roughness; - float4 _1230 = _934.mvp_shadow * float4(floor(in.vpos * 16.0) * float3(0.0625), 1.0); - float3 _1240 = ((_1230.xyz / float3(_1230.w)) * 0.5) + float3(0.5); - float _1244 = _1240.z - 0.001000000047497451305389404296875; - float3 _1675 = _1240; - _1675.z = _1244; - float3 light = ((((((((float3(1.0) - _1177) * (1.0 - metallic)) * trixel_material.xyz) * float3(0.3183098733425140380859375)) + ((_1177 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * _1159) * _1154) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _1675.xy, _1244)) * _1154) * _126.sunLightColor) * _126.sunIntensity; - int3 _1281 = int3(mod(floor(in.trileCenter), float3(32.0))); - int3 param_9 = _1281; + float4 _1528 = _1246.mvp_shadow * float4(floor(in.vpos * 16.0) * float3(0.0625), 1.0); + float3 _1538 = ((_1528.xyz / float3(_1528.w)) * 0.5) + float3(0.5); + float _1541 = _1538.z - 0.001000000047497451305389404296875; + float3 _2078 = _1538; + _2078.z = _1541; + float3 light = ((((((((float3(1.0) - _1489) * (1.0 - metallic)) * trixel_material.xyz) * float3(0.3183098733425140380859375)) + ((_1489 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * _1471) * _1466) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _2078.xy, _1541)) * _1466) * _142.sunLightColor) * _142.sunIntensity; + float3 _1589 = floor(in.trileCenter); + int3 _1593 = int3(mod(_1589, float3(32.0))); + int3 param_9 = _1593; int param_10 = roughnessInt; - float4 _1287 = rdm_atlas_rect(param_9, param_10, rdm_lookup, trilesmp); - float4 _1304 = ssaotex.sample(rdmsmp, (gl_FragCoord.xy / float2(float(_934.screen_w), float(_934.screen_h)))); - float _1305 = _1304.x; - bool _1315 = _934.rdm_enabled == 1; - bool _1321; - if (_1315) + float4 _1599 = rdm_atlas_rect(param_9, param_10, rdm_lookup, trilesmp); + float4 _1616 = ssaotex.sample(rdmsmp, (gl_FragCoord.xy / float2(float(_1246.screen_w), float(_1246.screen_h)))); + float _1617 = _1616.x; + if (_1246.rdm_enabled == 1) { - _1321 = _1287.z > 0.0; - } - else - { - _1321 = _1315; - } - if (_1321) - { - float param_11 = _1159; - float3 param_12 = _1171; + float param_11 = _1471; + float3 param_12 = _1483; float param_13 = roughness; - float3 _1331 = FresnelSchlickRoughness(param_11, param_12, param_13); - float3 _1341 = in.vpos - (in.trileCenter + (N * 0.4900000095367431640625)); - if (roughness < 0.699999988079071044921875) + float3 _1637 = FresnelSchlickRoughness(param_11, param_12, param_13); + float3 _1647 = in.vpos - (in.trileCenter + (N * 0.4900000095367431640625)); + bool _1649 = roughnessInt <= 1; + bool _1655; + if (_1649) + { + _1655 = _1599.z > 0.0; + } + else + { + _1655 = _1649; + } + if (_1655) { float3 param_14 = N; - int _1349 = rdm_face_from_normal(param_14); - int2 _1355 = int2(rdm_atlas.get_width(), rdm_atlas.get_height()); - float2 _1360 = float2(1.0) / float2(_1355); - int _1369 = int(_1287.z * float(_1355.x)) / 2; - float4 param_15 = _1287; - int param_16 = _1349; - int param_17 = _1369; - int2 param_18 = _1355; - int2 _1379 = rdm_face_offset(param_15, param_16, param_17, param_18); - float3 indirectSpec; + int _1661 = rdm_face_from_normal(param_14); + int2 _1667 = int2(rdm_atlas.get_width(), rdm_atlas.get_height()); + float2 _1672 = float2(1.0) / float2(_1667); + int _1681 = int(_1599.z * float(_1667.x)) / 2; + float4 param_15 = _1599; + int param_16 = _1661; + int param_17 = _1681; + int2 param_18 = _1667; + int2 _1691 = rdm_face_offset(param_15, param_16, param_17, param_18); + float3 _1695; if (roughness < 0.20000000298023223876953125) { float3 param_19 = N; float3 param_20 = -in.cv; - float3 param_21 = _1341; - int param_22 = _1349; - int2 param_23 = _1379; - int param_24 = _1369; - float2 param_25 = _1360; - indirectSpec = rdm_spec_raymarch(param_19, param_20, param_21, param_22, param_23, param_24, param_25, _126, rdm_atlas, rdmsmp); + float3 param_21 = _1647; + int param_22 = _1661; + int2 param_23 = _1691; + int param_24 = _1681; + float2 param_25 = _1672; + _1695 = rdm_spec_raymarch(param_19, param_20, param_21, param_22, param_23, param_24, param_25, _142, rdm_atlas, rdmsmp); } else { float3 param_26 = N; float3 param_27 = -in.cv; - float3 param_28 = _1341; - int param_29 = _1349; - int2 param_30 = _1379; - int param_31 = _1369; - float2 param_32 = _1360; - indirectSpec = rdm_spec_single(param_26, param_27, param_28, param_29, param_30, param_31, param_32, rdm_atlas, rdmsmp); + float3 param_28 = _1647; + int param_29 = _1661; + int2 param_30 = _1691; + int param_31 = _1681; + float2 param_32 = _1672; + _1695 = rdm_spec_single(param_26, param_27, param_28, param_29, param_30, param_31, param_32, rdm_atlas, rdmsmp); } - float3 _1422 = indirectSpec; - float3 _1423 = _1422 * float3(_934.rdm_tint); - float3 _1436 = mix(_1423, float3(dot(_1423, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), float3(metallic)); - indirectSpec = _1436; - float4 _1445 = brdf_lut.sample(rdmsmp, float2(_1159, roughness)); - float _1450 = sin(roughness * 3.1415927410125732421875); - light += (((((_1436 * ((_1331 * _1445.x) + float3(_1445.y))) * _934.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1450))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1450) * powr(1.0 - _1159, 2.0)))) * (1.0 - fast::clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); - } - float3 param_33 = N; - float3 param_34 = _1341; - int3 param_35 = _1281; - float3 _1504 = rdm_indirect_diffuse(param_33, param_34, param_35, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * float3(_934.rdm_tint); - light += (((((((float3(1.0) - _1331) * (1.0 - metallic)) * mix(float3(dot(_1504, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1504, float3(_934.rdm_diff_saturation))) * float3(0.3183098733425140380859375)) * trixel_material.xyz) * _1305) * _934.rdm_diff_scale); - bool _1539 = _934.rdm_diff_scale < 0.001000000047497451305389404296875; - bool _1548; - if (!_1539) - { - _1548 = length(light) < _934.ambient_intensity; + float3 _1737 = _1695 * float3(_1246.rdm_tint); + float4 _1759 = brdf_lut.sample(rdmsmp, float2(_1471, roughness)); + float _1764 = sin(roughness * 3.1415927410125732421875); + light += (((((mix(_1737, float3(dot(_1737, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), float3(metallic)) * ((_1637 * _1759.x) + float3(_1759.y))) * _1246.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1764))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1764) * powr(1.0 - _1471, 2.0)))) * (1.0 - fast::clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); } else { - _1548 = _1539; + if (roughness < 0.699999988079071044921875) + { + float4 _1825 = brdf_lut.sample(rdmsmp, float2(_1471, roughness)); + float3 param_33 = reflect(-_1452, N); + float3 param_34 = float3(_142.sunPosition); + float3 _1838 = sky_reflect(param_33, param_34, _142); + light += (((_1838 * ((_1637 * _1825.x) + float3(_1825.y))) * _1246.rdm_spec_scale) * (1.0 - fast::clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + } } - if (_1548) + float3 indirectDiff; + if (_1246.sh_enabled == 1) { - light += (((float3(_934.ambient_color) * fast::max(_934.ambient_intensity - length(light), 0.0)) * trixel_material.xyz) * _1305); + float3 _1876 = fast::clamp((float3(_1593) + (in.vpos - _1589)) * 2.0, float3(0.0), float3(63.0)); + int3 _1880 = int3(floor(_1876)); + int3 param_35 = _1880; + int3 param_36 = min((_1880 + int3(1)), int3(63)); + float3 param_37 = fract(_1876); + float3 param_38 = N; + indirectDiff = sh_eval_trilinear(param_35, param_36, param_37, param_38, rdmsmp, sh_chunk) * float3(_1246.rdm_tint); + } + else + { + float3 param_39 = N; + float3 param_40 = _1647; + int3 param_41 = _1593; + indirectDiff = rdm_indirect_diffuse(param_39, param_40, param_41, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * float3(_1246.rdm_tint); + } + float3 _1914 = indirectDiff; + float3 _1923 = mix(float3(dot(_1914, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1914, float3(_1246.rdm_diff_saturation)); + indirectDiff = _1923; + light += (((((((float3(1.0) - _1637) * (1.0 - metallic)) * _1923) * float3(0.3183098733425140380859375)) * trixel_material.xyz) * _1617) * _1246.rdm_diff_scale); + bool _1945 = _1246.rdm_diff_scale < 0.001000000047497451305389404296875; + bool _1954; + if (!_1945) + { + _1954 = length(light) < _1246.ambient_intensity; + } + else + { + _1954 = _1945; + } + if (_1954) + { + light += (((float3(_1246.ambient_color) * fast::max(_1246.ambient_intensity - length(light), 0.0)) * trixel_material.xyz) * _1617); } } else { - light += (((float3(_934.ambient_color) * _934.ambient_intensity) * trixel_material.xyz) * _1305); - float3 param_36 = reflect(-_1140, N); - float3 param_37 = float3(_126.sunPosition); - float3 _1590 = sky_reflect(param_36, param_37, _126); - light += ((_1177 * _1590) * 0.100000001490116119384765625); + light += (((float3(_1246.ambient_color) * _1246.ambient_intensity) * trixel_material.xyz) * _1617); + float3 param_42 = reflect(-_1452, N); + float3 param_43 = float3(_142.sunPosition); + float3 _1994 = sky_reflect(param_42, param_43, _142); + light += ((_1489 * _1994) * 0.100000001490116119384765625); } - out.frag_color = float4(mix(float3(_126.deepColor), light + ((trixel_material.xyz * emittance) * _934.emissive_scale), float3(smoothstep(0.0, _126.planeHeight, in.vpos.y))), 1.0); - if (_934.is_preview == 1) + out.frag_color = float4(mix(float3(_142.deepColor), light + ((trixel_material.xyz * emittance) * _1246.emissive_scale), float3(smoothstep(0.0, _142.planeHeight, in.vpos.y))), 1.0); + if (_1246.is_preview == 1) { - float4 _1619 = out.frag_color; - float3 _1623 = mix(_1619.xyz, float3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), float3(0.5)); - out.frag_color.x = _1623.x; - out.frag_color.y = _1623.y; - out.frag_color.z = _1623.z; + float4 _2022 = out.frag_color; + float3 _2026 = mix(_2022.xyz, float3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), float3(0.5)); + out.frag_color.x = _2026.x; + out.frag_color.y = _2026.y; + out.frag_color.z = _2026.z; } else { - if (_934.is_preview == 2) + if (_1246.is_preview == 2) { - float4 _1637 = out.frag_color; - float3 _1641 = mix(_1637.xyz, float3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), float3(0.5)); - out.frag_color.x = _1641.x; - out.frag_color.y = _1641.y; - out.frag_color.z = _1641.z; + float4 _2040 = out.frag_color; + float3 _2044 = mix(_2040.xyz, float3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), float3(0.5)); + out.frag_color.x = _2044.x; + out.frag_color.y = _2044.y; + out.frag_color.z = _2044.z; } } return out; @@ -5234,70 +6099,127 @@ fs_trile_source_metal_macos := u8.[ 0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20,0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69, 0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64, 0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73,0x69,0x6e,0x67,0x2d,0x70,0x72,0x6f,0x74, - 0x6f,0x74,0x79,0x70,0x65,0x73,0x22,0x0a,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64, - 0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,0x73,0x74,0x64,0x6c,0x69,0x62,0x3e, - 0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x73,0x69,0x6d,0x64,0x2f, - 0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,0x75,0x73,0x69,0x6e,0x67,0x20,0x6e, - 0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x6d,0x65,0x74,0x61,0x6c,0x3b,0x0a, - 0x0a,0x2f,0x2f,0x20,0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69, - 0x6f,0x6e,0x20,0x6f,0x66,0x20,0x74,0x68,0x65,0x20,0x47,0x4c,0x53,0x4c,0x20,0x6d, - 0x6f,0x64,0x28,0x29,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x77, - 0x68,0x69,0x63,0x68,0x20,0x69,0x73,0x20,0x73,0x6c,0x69,0x67,0x68,0x74,0x6c,0x79, - 0x20,0x64,0x69,0x66,0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x74,0x68,0x61,0x6e,0x20, - 0x4d,0x65,0x74,0x61,0x6c,0x20,0x66,0x6d,0x6f,0x64,0x28,0x29,0x0a,0x74,0x65,0x6d, - 0x70,0x6c,0x61,0x74,0x65,0x3c,0x74,0x79,0x70,0x65,0x6e,0x61,0x6d,0x65,0x20,0x54, - 0x78,0x2c,0x20,0x74,0x79,0x70,0x65,0x6e,0x61,0x6d,0x65,0x20,0x54,0x79,0x3e,0x0a, - 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x54,0x78,0x20,0x6d,0x6f,0x64,0x28,0x54,0x78, - 0x20,0x78,0x2c,0x20,0x54,0x79,0x20,0x79,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x78,0x20,0x2d,0x20,0x79,0x20,0x2a,0x20,0x66, - 0x6c,0x6f,0x6f,0x72,0x28,0x78,0x20,0x2f,0x20,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a, - 0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72, - 0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x54,0x6f, - 0x70,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75, - 0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75,0x6e,0x48,0x61,0x6c, - 0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75, - 0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x70,0x61,0x63,0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73, - 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69, - 0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x6b, - 0x79,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65, - 0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x61,0x6e, - 0x69,0x6d,0x61,0x74,0x65,0x50,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x77,0x61,0x74, - 0x65,0x72,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x63, - 0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x64,0x65,0x65,0x70,0x43, - 0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x74,0x69,0x6d,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x68,0x73, - 0x76,0x5f,0x6c,0x69,0x67,0x68,0x74,0x69,0x6e,0x67,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a, - 0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f, - 0x70,0x61,0x72,0x61,0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x78,0x34,0x20,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x69,0x73,0x5f,0x72,0x65,0x66, - 0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, - 0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x6e,0x74,0x20,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x6d,0x62,0x69, - 0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x73,0x73,0x69,0x76, - 0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c, - 0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x64,0x6d, - 0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x70,0x61,0x63,0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x61, - 0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x63,0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66, - 0x5f,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x7d,0x3b,0x0a, + 0x6f,0x74,0x79,0x70,0x65,0x73,0x22,0x0a,0x23,0x70,0x72,0x61,0x67,0x6d,0x61,0x20, + 0x63,0x6c,0x61,0x6e,0x67,0x20,0x64,0x69,0x61,0x67,0x6e,0x6f,0x73,0x74,0x69,0x63, + 0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,0x20,0x22,0x2d,0x57,0x6d,0x69,0x73,0x73, + 0x69,0x6e,0x67,0x2d,0x62,0x72,0x61,0x63,0x65,0x73,0x22,0x0a,0x0a,0x23,0x69,0x6e, + 0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x6d,0x65,0x74,0x61,0x6c,0x5f,0x73,0x74,0x64, + 0x6c,0x69,0x62,0x3e,0x0a,0x23,0x69,0x6e,0x63,0x6c,0x75,0x64,0x65,0x20,0x3c,0x73, + 0x69,0x6d,0x64,0x2f,0x73,0x69,0x6d,0x64,0x2e,0x68,0x3e,0x0a,0x0a,0x75,0x73,0x69, + 0x6e,0x67,0x20,0x6e,0x61,0x6d,0x65,0x73,0x70,0x61,0x63,0x65,0x20,0x6d,0x65,0x74, + 0x61,0x6c,0x3b,0x0a,0x0a,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74,0x65,0x3c,0x74,0x79, + 0x70,0x65,0x6e,0x61,0x6d,0x65,0x20,0x54,0x2c,0x20,0x73,0x69,0x7a,0x65,0x5f,0x74, + 0x20,0x4e,0x75,0x6d,0x3e,0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x73,0x70,0x76, + 0x55,0x6e,0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x0a,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x54,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x4e,0x75,0x6d, + 0x20,0x3f,0x20,0x4e,0x75,0x6d,0x20,0x3a,0x20,0x31,0x5d,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x0a,0x20,0x20,0x20,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x54,0x26,0x20, + 0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x5b,0x5d,0x20,0x28,0x73,0x69,0x7a, + 0x65,0x5f,0x74,0x20,0x70,0x6f,0x73,0x29,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x70,0x6f, + 0x73,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x65,0x78,0x70,0x72,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x54,0x26,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72, + 0x20,0x5b,0x5d,0x20,0x28,0x73,0x69,0x7a,0x65,0x5f,0x74,0x20,0x70,0x6f,0x73,0x29, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x70,0x6f,0x73,0x5d, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20, + 0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x20,0x54,0x26,0x20,0x6f,0x70,0x65,0x72,0x61, + 0x74,0x6f,0x72,0x20,0x5b,0x5d,0x20,0x28,0x73,0x69,0x7a,0x65,0x5f,0x74,0x20,0x70, + 0x6f,0x73,0x29,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x70,0x6f,0x73,0x5d,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x65,0x78, + 0x70,0x72,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x20, + 0x54,0x26,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x5b,0x5d,0x20,0x28, + 0x73,0x69,0x7a,0x65,0x5f,0x74,0x20,0x70,0x6f,0x73,0x29,0x20,0x63,0x6f,0x6e,0x73, + 0x74,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6c, + 0x65,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x70,0x6f,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73, + 0x74,0x65,0x78,0x70,0x72,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x73, + 0x74,0x61,0x6e,0x74,0x20,0x54,0x26,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72, + 0x20,0x5b,0x5d,0x20,0x28,0x73,0x69,0x7a,0x65,0x5f,0x74,0x20,0x70,0x6f,0x73,0x29, + 0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x70,0x6f, + 0x73,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x0a,0x20, + 0x20,0x20,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x67,0x72,0x6f,0x75,0x70,0x20,0x54, + 0x26,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x5b,0x5d,0x20,0x28,0x73, + 0x69,0x7a,0x65,0x5f,0x74,0x20,0x70,0x6f,0x73,0x29,0x20,0x74,0x68,0x72,0x65,0x61, + 0x64,0x67,0x72,0x6f,0x75,0x70,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x65,0x6c,0x65,0x6d, + 0x65,0x6e,0x74,0x73,0x5b,0x70,0x6f,0x73,0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x73,0x74,0x65,0x78,0x70,0x72,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x67,0x72,0x6f,0x75,0x70, + 0x20,0x54,0x26,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x20,0x5b,0x5d,0x20, + 0x28,0x73,0x69,0x7a,0x65,0x5f,0x74,0x20,0x70,0x6f,0x73,0x29,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x67,0x72,0x6f,0x75,0x70,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x5b,0x70,0x6f,0x73, + 0x5d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x3b,0x0a,0x0a,0x2f,0x2f,0x20, + 0x49,0x6d,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x20,0x6f, + 0x66,0x20,0x74,0x68,0x65,0x20,0x47,0x4c,0x53,0x4c,0x20,0x6d,0x6f,0x64,0x28,0x29, + 0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x77,0x68,0x69,0x63,0x68, + 0x20,0x69,0x73,0x20,0x73,0x6c,0x69,0x67,0x68,0x74,0x6c,0x79,0x20,0x64,0x69,0x66, + 0x66,0x65,0x72,0x65,0x6e,0x74,0x20,0x74,0x68,0x61,0x6e,0x20,0x4d,0x65,0x74,0x61, + 0x6c,0x20,0x66,0x6d,0x6f,0x64,0x28,0x29,0x0a,0x74,0x65,0x6d,0x70,0x6c,0x61,0x74, + 0x65,0x3c,0x74,0x79,0x70,0x65,0x6e,0x61,0x6d,0x65,0x20,0x54,0x78,0x2c,0x20,0x74, + 0x79,0x70,0x65,0x6e,0x61,0x6d,0x65,0x20,0x54,0x79,0x3e,0x0a,0x69,0x6e,0x6c,0x69, + 0x6e,0x65,0x20,0x54,0x78,0x20,0x6d,0x6f,0x64,0x28,0x54,0x78,0x20,0x78,0x2c,0x20, + 0x54,0x79,0x20,0x79,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x78,0x20,0x2d,0x20,0x79,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x6f,0x72, + 0x28,0x78,0x20,0x2f,0x20,0x79,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x72,0x75, + 0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63, + 0x6f,0x6e,0x66,0x69,0x67,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x73,0x6b,0x79,0x42,0x61,0x73,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6b,0x79,0x54,0x6f,0x70,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75,0x6e,0x44,0x69,0x73, + 0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x68,0x6f, + 0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75,0x6e,0x48,0x61,0x6c,0x6f,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75,0x6e,0x4c,0x69,0x67, + 0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x63, + 0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x75,0x6e,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x73,0x6b,0x79,0x49,0x6e,0x74, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x68,0x61,0x73,0x43,0x6c,0x6f,0x75,0x64,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x61,0x6e,0x69,0x6d,0x61,0x74, + 0x65,0x50,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x77,0x61,0x74,0x65,0x72,0x43,0x6f, + 0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x63,0x6b,0x65,0x64,0x5f, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x69,0x6d,0x65, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x68,0x73,0x76,0x5f,0x6c,0x69, + 0x67,0x68,0x74,0x69,0x6e,0x67,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x73,0x74,0x72,0x75, + 0x63,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61, + 0x6d,0x73,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x78, + 0x34,0x20,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74, + 0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x73,0x63,0x72, + 0x65,0x65,0x6e,0x5f,0x68,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x73, + 0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f, + 0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63, + 0x61,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72, + 0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65, + 0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x3b,0x0a,0x20,0x20,0x20,0x20,0x70,0x61,0x63, + 0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x61,0x6d,0x62,0x69,0x65, + 0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x70,0x61,0x63,0x6b,0x65,0x64,0x5f,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61,0x74, + 0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x73,0x68,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x3b,0x0a,0x7d,0x3b,0x0a, 0x0a,0x73,0x74,0x72,0x75,0x63,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75, 0x74,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x66, 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x5b,0x5b,0x63,0x6f,0x6c,0x6f, @@ -5344,20 +6266,20 @@ fs_trile_source_metal_macos := u8.[ 0x61,0x74,0x33,0x26,0x20,0x48,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x72,0x6f,0x75,0x67, 0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x32,0x30,0x39,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x61,0x74,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, 0x65,0x73,0x73,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x31,0x33,0x20, - 0x3d,0x20,0x5f,0x32,0x30,0x39,0x20,0x2a,0x20,0x5f,0x32,0x30,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x31,0x38,0x20,0x3d,0x20, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x32,0x39,0x20, + 0x3d,0x20,0x5f,0x32,0x32,0x35,0x20,0x2a,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x34,0x20,0x3d,0x20, 0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, 0x20,0x48,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x32,0x36,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32, - 0x31,0x38,0x20,0x2a,0x20,0x5f,0x32,0x31,0x38,0x29,0x20,0x2a,0x20,0x28,0x5f,0x32, - 0x31,0x33,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x31, - 0x33,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32,0x37,0x34, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20,0x28,0x28,0x5f,0x32, + 0x33,0x34,0x20,0x2a,0x20,0x5f,0x32,0x33,0x34,0x29,0x20,0x2a,0x20,0x28,0x5f,0x32, + 0x32,0x39,0x20,0x2d,0x20,0x31,0x2e,0x30,0x29,0x29,0x20,0x2b,0x20,0x31,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x32, + 0x39,0x20,0x2f,0x20,0x28,0x28,0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32,0x37,0x34, 0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31,0x38,0x37,0x35,0x20,0x2a, - 0x20,0x5f,0x32,0x32,0x36,0x29,0x20,0x2a,0x20,0x5f,0x32,0x32,0x36,0x29,0x3b,0x0a, + 0x20,0x5f,0x32,0x34,0x32,0x29,0x20,0x2a,0x20,0x5f,0x32,0x34,0x32,0x29,0x3b,0x0a, 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, @@ -5369,23 +6291,23 @@ fs_trile_source_metal_macos := u8.[ 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4c,0x2c,0x20,0x74,0x68,0x72,0x65, 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x33,0x38,0x20,0x3d,0x20,0x72,0x6f, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x35,0x34,0x20,0x3d,0x20,0x72,0x6f, 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2b,0x20,0x31,0x2e,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x34,0x34,0x20,0x3d,0x20, - 0x28,0x5f,0x32,0x33,0x38,0x20,0x2a,0x20,0x5f,0x32,0x33,0x38,0x29,0x20,0x2a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x30,0x20,0x3d,0x20, + 0x28,0x5f,0x32,0x35,0x34,0x20,0x2a,0x20,0x5f,0x32,0x35,0x34,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x32,0x34,0x39,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61, + 0x20,0x5f,0x32,0x36,0x35,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61, 0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x56,0x29,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x35, - 0x34,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37, + 0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f, 0x74,0x28,0x4e,0x2c,0x20,0x4c,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x35,0x39,0x20,0x3d,0x20, - 0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x32,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32,0x35,0x34,0x20,0x2f,0x20,0x28, - 0x28,0x5f,0x32,0x35,0x34,0x20,0x2a,0x20,0x5f,0x32,0x35,0x39,0x29,0x20,0x2b,0x20, - 0x5f,0x32,0x34,0x34,0x29,0x29,0x20,0x2a,0x20,0x28,0x5f,0x32,0x34,0x39,0x20,0x2f, - 0x20,0x28,0x28,0x5f,0x32,0x34,0x39,0x20,0x2a,0x20,0x5f,0x32,0x35,0x39,0x29,0x20, - 0x2b,0x20,0x5f,0x32,0x34,0x34,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x35,0x20,0x3d,0x20, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x32,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x5f,0x32,0x37,0x30,0x20,0x2f,0x20,0x28, + 0x28,0x5f,0x32,0x37,0x30,0x20,0x2a,0x20,0x5f,0x32,0x37,0x35,0x29,0x20,0x2b,0x20, + 0x5f,0x32,0x36,0x30,0x29,0x29,0x20,0x2a,0x20,0x28,0x5f,0x32,0x36,0x35,0x20,0x2f, + 0x20,0x28,0x28,0x5f,0x32,0x36,0x35,0x20,0x2a,0x20,0x5f,0x32,0x37,0x35,0x29,0x20, + 0x2b,0x20,0x5f,0x32,0x36,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61, 0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74, 0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73, 0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x34, @@ -5397,7 +6319,7 @@ fs_trile_source_metal_macos := u8.[ 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f, 0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20, 0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x5f,0x34,0x34,0x31,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63, + 0x69,0x6e,0x74,0x20,0x5f,0x34,0x35,0x37,0x20,0x3d,0x20,0x28,0x28,0x6c,0x6f,0x63, 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x78,0x20,0x2b,0x20,0x28,0x6c,0x6f,0x63,0x61, 0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x20,0x2a,0x20,0x33,0x32,0x29,0x29,0x20,0x2b, 0x20,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2e,0x7a,0x20,0x2a,0x20, @@ -5405,8 +6327,8 @@ fs_trile_source_metal_macos := u8.[ 0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x32,0x37,0x36,0x38,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, 0x6b,0x75,0x70,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69, - 0x6e,0x74,0x32,0x28,0x5f,0x34,0x34,0x31,0x20,0x25,0x20,0x35,0x31,0x32,0x2c,0x20, - 0x5f,0x34,0x34,0x31,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x29,0x2c,0x20,0x30,0x29, + 0x6e,0x74,0x32,0x28,0x5f,0x34,0x35,0x37,0x20,0x25,0x20,0x35,0x31,0x32,0x2c,0x20, + 0x5f,0x34,0x35,0x37,0x20,0x2f,0x20,0x35,0x31,0x32,0x29,0x29,0x2c,0x20,0x30,0x29, 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, @@ -5431,35 +6353,35 @@ fs_trile_source_metal_macos := u8.[ 0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e, 0x6f,0x72,0x6d,0x61,0x6c,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x29,0x0a,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x37,0x37,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x33,0x39,0x33,0x20, 0x3d,0x20,0x61,0x62,0x73,0x28,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x33,0x37,0x39,0x20,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x38, - 0x31,0x20,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x33,0x38,0x32,0x20,0x3d,0x20,0x5f,0x33,0x37,0x39, - 0x20,0x3e,0x3d,0x20,0x5f,0x33,0x38,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x33,0x39,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x33,0x38,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x33,0x39,0x30,0x20,0x3d,0x20,0x5f,0x33,0x37,0x39, - 0x20,0x3e,0x3d,0x20,0x5f,0x33,0x37,0x37,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x35,0x20,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e, + 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39, + 0x37,0x20,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x5f,0x33,0x39,0x35, + 0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x34,0x30,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x28,0x5f,0x33,0x39,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x36,0x20,0x3d,0x20,0x5f,0x33,0x39,0x35, + 0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x33,0x39,0x30,0x20,0x3d,0x20, - 0x5f,0x33,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x33,0x39,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x30,0x36,0x20,0x3d,0x20, + 0x5f,0x33,0x39,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x34,0x30,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28, 0x4e,0x2e,0x79,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x30,0x20, 0x3a,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x39,0x39,0x20,0x3d,0x20,0x5f,0x33,0x37,0x37, - 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x30, - 0x32,0x20,0x3d,0x20,0x5f,0x33,0x39,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x38,0x31, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x31,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x30,0x32,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x31, - 0x30,0x20,0x3d,0x20,0x5f,0x33,0x39,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x37,0x39, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x34,0x31,0x35,0x20,0x3d,0x20,0x5f,0x33,0x39,0x33, + 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x31, + 0x38,0x20,0x3d,0x20,0x5f,0x34,0x31,0x35,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x34,0x32,0x36,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x31,0x38,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x34,0x32, + 0x36,0x20,0x3d,0x20,0x5f,0x34,0x31,0x35,0x20,0x3e,0x3d,0x20,0x5f,0x33,0x39,0x35, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x34,0x31,0x30,0x20,0x3d,0x20,0x5f,0x34,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x31,0x30,0x29,0x0a, + 0x34,0x32,0x36,0x20,0x3d,0x20,0x5f,0x34,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x34,0x32,0x36,0x29,0x0a, 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, 0x74,0x75,0x72,0x6e,0x20,0x28,0x4e,0x2e,0x7a,0x20,0x3e,0x3d,0x20,0x30,0x2e,0x30, 0x29,0x20,0x3f,0x20,0x32,0x20,0x3a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, @@ -5496,38 +6418,38 @@ fs_trile_source_metal_macos := u8.[ 0x20,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66,0x61,0x63, 0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20, 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x5f,0x31,0x36,0x38,0x33,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x38,0x33,0x2e,0x7a,0x20,0x3d,0x20, - 0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36, - 0x38,0x33,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x36,0x38,0x33,0x3b,0x0a, + 0x33,0x20,0x5f,0x32,0x30,0x38,0x38,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x38,0x38,0x2e,0x7a,0x20,0x3d,0x20, + 0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30, + 0x38,0x38,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x32,0x30,0x38,0x38,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x66, 0x61,0x63,0x65,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x38,0x37,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x38,0x37,0x2e,0x7a,0x20, + 0x61,0x74,0x33,0x20,0x5f,0x32,0x30,0x39,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x39,0x32,0x2e,0x7a,0x20, 0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x36,0x38,0x37,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x36,0x38,0x37, + 0x32,0x30,0x39,0x32,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x32,0x30,0x39,0x32, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x28,0x66,0x61,0x63,0x65,0x20,0x25,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x31,0x29, 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x39,0x31,0x20,0x3d,0x20,0x76,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x39,0x31,0x2e, - 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x31,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x30,0x39,0x36,0x20,0x3d,0x20,0x76,0x63, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x39,0x36,0x2e, + 0x7a,0x20,0x3d,0x20,0x5f,0x32,0x30,0x39,0x36,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d, 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63, - 0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x33,0x35,0x37,0x20, + 0x20,0x3d,0x20,0x5f,0x32,0x30,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x33,0x37,0x33,0x20, 0x3d,0x20,0x76,0x63,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f, 0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x76,0x63,0x2e,0x78,0x29,0x20,0x2b,0x20,0x61, 0x62,0x73,0x28,0x76,0x63,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x76,0x63,0x2e,0x7a, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33, - 0x35,0x39,0x20,0x3d,0x20,0x5f,0x33,0x35,0x37,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x36,0x31,0x20,0x3d,0x20,0x5f,0x33, - 0x35,0x37,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, - 0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x33,0x35,0x39,0x20,0x2b,0x20, - 0x5f,0x33,0x36,0x31,0x2c,0x20,0x5f,0x33,0x35,0x39,0x20,0x2d,0x20,0x5f,0x33,0x36, - 0x31,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61, + 0x37,0x35,0x20,0x3d,0x20,0x5f,0x33,0x37,0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x33,0x37,0x37,0x20,0x3d,0x20,0x5f,0x33, + 0x37,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x33,0x37,0x35,0x20,0x2b,0x20, + 0x5f,0x33,0x37,0x37,0x2c,0x20,0x5f,0x33,0x37,0x35,0x20,0x2d,0x20,0x5f,0x33,0x37, + 0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61, 0x74,0x32,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, @@ -5537,49 +6459,49 @@ fs_trile_source_metal_macos := u8.[ 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x26,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x2c,0x20,0x63,0x6f, 0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72, - 0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31,0x32,0x36,0x29, + 0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31,0x34,0x32,0x29, 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, - 0x31,0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61, + 0x33,0x33,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61, 0x6c,0x69,0x7a,0x65,0x28,0x73,0x6b,0x79,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x32,0x20,0x3d,0x20,0x64, - 0x6f,0x74,0x28,0x5f,0x31,0x31,0x37,0x2c,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x20,0x3d,0x20,0x64, + 0x6f,0x74,0x28,0x5f,0x31,0x33,0x33,0x2c,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e, 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x73,0x75,0x6e,0x70,0x6f,0x73,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33, - 0x37,0x20,0x3d,0x20,0x5f,0x31,0x31,0x37,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35, + 0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, - 0x6d,0x69,0x78,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65, - 0x2c,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x66, + 0x6d,0x69,0x78,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x6b,0x79,0x42,0x61,0x73,0x65, + 0x2c,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x6b,0x79,0x54,0x6f,0x70,0x2c,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x5f,0x31,0x33,0x37,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e, + 0x70,0x28,0x5f,0x31,0x35,0x33,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x30,0x2e, 0x30,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37, 0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29, - 0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c, + 0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x48,0x61,0x6c, 0x6f,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, - 0x28,0x5f,0x31,0x32,0x32,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39, + 0x28,0x5f,0x31,0x33,0x38,0x20,0x2d,0x20,0x30,0x2e,0x39,0x34,0x39,0x39,0x39,0x39, 0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38, 0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, 0x20,0x30,0x2e,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x29,0x29,0x20,0x2a,0x20, 0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33, 0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x32,0x20,0x3e,0x20,0x30,0x2e, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x38,0x20,0x3e,0x20,0x30,0x2e, 0x39,0x39,0x39,0x38,0x39,0x39,0x39,0x38,0x33,0x34,0x30,0x36,0x30,0x36,0x36,0x38, 0x39,0x34,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20, - 0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20, + 0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x44,0x69,0x73,0x6b,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, - 0x31,0x38,0x36,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x37,0x20,0x3d,0x20, - 0x5f,0x31,0x38,0x36,0x20,0x2b,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x32,0x36, + 0x32,0x30,0x32,0x20,0x3d,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x30,0x33,0x20,0x3d,0x20, + 0x5f,0x32,0x30,0x32,0x20,0x2b,0x20,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x34,0x32, 0x2e,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x48,0x61,0x6c,0x6f,0x2c,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x61,0x62, - 0x73,0x28,0x5f,0x31,0x33,0x37,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20, + 0x73,0x28,0x5f,0x31,0x35,0x33,0x29,0x20,0x2a,0x20,0x38,0x30,0x2e,0x30,0x2c,0x20, 0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, 0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31, 0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31,0x38,0x37, + 0x20,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x3d,0x20,0x5f,0x32,0x30,0x33,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x32,0x30,0x33, 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, @@ -5589,7 +6511,7 @@ fs_trile_source_metal_macos := u8.[ 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x73,0x75,0x6e,0x70, 0x6f,0x73,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69, 0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26, - 0x20,0x5f,0x31,0x32,0x36,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, + 0x20,0x5f,0x31,0x34,0x32,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, 0x28,0x52,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65, 0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, @@ -5599,7 +6521,7 @@ fs_trile_source_metal_macos := u8.[ 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, 0x3d,0x20,0x73,0x75,0x6e,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65, 0x74,0x75,0x72,0x6e,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x5f,0x31,0x32,0x36,0x29,0x3b,0x0a, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x5f,0x31,0x34,0x32,0x29,0x3b,0x0a, 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, @@ -5618,29 +6540,29 @@ fs_trile_source_metal_macos := u8.[ 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x26,0x20,0x61,0x74,0x6c,0x61,0x73, 0x49,0x6e,0x76,0x53,0x69,0x7a,0x65,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e, 0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f, - 0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31,0x32,0x36,0x2c,0x20,0x74,0x65,0x78,0x74, + 0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31,0x34,0x32,0x2c,0x20,0x74,0x65,0x78,0x74, 0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d, 0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20, 0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x39,0x36,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x5f,0x35,0x31,0x32,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c, 0x65,0x63,0x74,0x28,0x56,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69, 0x20,0x3c,0x20,0x34,0x30,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20, 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x35,0x32,0x36,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28, - 0x5f,0x34,0x39,0x36,0x20,0x2a,0x20,0x28,0x30,0x2e,0x35,0x20,0x2a,0x20,0x66,0x6c, + 0x20,0x5f,0x35,0x34,0x32,0x20,0x3d,0x20,0x64,0x69,0x66,0x66,0x20,0x2b,0x20,0x28, + 0x5f,0x35,0x31,0x32,0x20,0x2a,0x20,0x28,0x30,0x2e,0x35,0x20,0x2a,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x28,0x69,0x20,0x2b,0x20,0x31,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x35, - 0x32,0x36,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, + 0x34,0x32,0x2c,0x20,0x4e,0x29,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66, 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f, - 0x35,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x35,0x34,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x66,0x61,0x63,0x65, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x5f,0x35,0x36,0x30,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, + 0x20,0x5f,0x35,0x37,0x36,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61, 0x73,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, 0x20,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x66,0x61,0x63,0x65,0x4f,0x66, 0x66,0x73,0x65,0x74,0x29,0x20,0x2b,0x20,0x28,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d, @@ -5649,44 +6571,44 @@ fs_trile_source_metal_macos := u8.[ 0x53,0x69,0x7a,0x65,0x29,0x29,0x29,0x20,0x2a,0x20,0x61,0x74,0x6c,0x61,0x73,0x49, 0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x2c,0x20,0x62,0x69,0x61,0x73,0x28,0x30,0x2e, 0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x35,0x36,0x33,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68, - 0x28,0x5f,0x35,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x36,0x36,0x20,0x3d,0x20,0x5f,0x35,0x36, - 0x30,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x35,0x36,0x37,0x20,0x3d,0x20,0x5f,0x35,0x36,0x36,0x20,0x3e,0x20, + 0x61,0x74,0x20,0x5f,0x35,0x37,0x39,0x20,0x3d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68, + 0x28,0x5f,0x35,0x34,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x35,0x38,0x32,0x20,0x3d,0x20,0x5f,0x35,0x37, + 0x36,0x2e,0x77,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x35,0x38,0x33,0x20,0x3d,0x20,0x5f,0x35,0x38,0x32,0x20,0x3e,0x20, 0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x35,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x35,0x36,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6c,0x20,0x5f,0x35,0x39,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x35,0x38,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x5f,0x35,0x36,0x36,0x20,0x3c,0x20,0x5f,0x35, - 0x36,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x5f,0x35,0x39,0x30,0x20,0x3d,0x20,0x5f,0x35,0x38,0x32,0x20,0x3c,0x20,0x5f,0x35, + 0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x35,0x37,0x34,0x20,0x3d,0x20,0x5f,0x35,0x36,0x37,0x3b,0x0a,0x20,0x20, + 0x20,0x5f,0x35,0x39,0x30,0x20,0x3d,0x20,0x5f,0x35,0x38,0x33,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x35,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x37,0x34,0x29,0x0a,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x35,0x39,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x35,0x39,0x30,0x29,0x0a,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x35,0x38,0x33,0x20,0x3d,0x20,0x28,0x5f,0x35,0x36,0x36,0x20, - 0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x35,0x36,0x33,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x5f,0x35,0x39,0x39,0x20,0x3d,0x20,0x28,0x5f,0x35,0x38,0x32,0x20, + 0x2b,0x20,0x30,0x2e,0x35,0x29,0x20,0x3e,0x20,0x5f,0x35,0x37,0x39,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x38,0x33, - 0x20,0x3d,0x20,0x5f,0x35,0x37,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x35,0x39,0x39, + 0x20,0x3d,0x20,0x5f,0x35,0x39,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x35,0x38,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x35,0x39,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72, - 0x6e,0x20,0x5f,0x35,0x36,0x30,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x6e,0x20,0x5f,0x35,0x37,0x36,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, - 0x20,0x5f,0x34,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x35,0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74, + 0x74,0x33,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74, 0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x35,0x39,0x37,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c, + 0x20,0x5f,0x36,0x31,0x33,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c, 0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x2c,0x20,0x5f,0x31,0x32,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x35,0x39,0x37,0x3b,0x0a,0x7d,0x0a, + 0x61,0x6d,0x5f,0x33,0x2c,0x20,0x5f,0x31,0x34,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x36,0x31,0x33,0x3b,0x0a,0x7d,0x0a, 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, @@ -5722,183 +6644,389 @@ fs_trile_source_metal_macos := u8.[ 0x6e,0x76,0x53,0x69,0x7a,0x65,0x29,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a, 0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f, 0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c, - 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x69,0x6e, - 0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, - 0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x66,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x28,0x66,0x20,0x3c, - 0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x28,0x2d,0x31,0x29,0x20,0x3a,0x20,0x31, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, - 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, - 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, - 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x74, + 0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x73,0x68,0x5f,0x70,0x72,0x6f,0x62,0x65,0x5f,0x65,0x6e,0x65, + 0x72,0x67,0x79,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x70,0x72,0x6f,0x62,0x65,0x2c,0x20,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x74,0x65, + 0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73, + 0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x20,0x5f,0x31,0x30,0x34,0x38,0x20,0x3d,0x20,0x70,0x72,0x6f,0x62,0x65, + 0x2e,0x78,0x20,0x2a,0x20,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x5f,0x31,0x30,0x35,0x35,0x20,0x3d,0x20,0x28,0x70,0x72,0x6f,0x62,0x65,0x2e,0x7a, + 0x20,0x2a,0x20,0x36,0x34,0x29,0x20,0x2b,0x20,0x70,0x72,0x6f,0x62,0x65,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32,0x37,0x30, + 0x31,0x31,0x36,0x38,0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33,0x37,0x35, + 0x20,0x2a,0x20,0x28,0x28,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x72,0x65, + 0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x31, + 0x30,0x34,0x38,0x2c,0x20,0x5f,0x31,0x30,0x35,0x35,0x29,0x29,0x2c,0x20,0x30,0x29, + 0x2e,0x78,0x20,0x2b,0x20,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x72,0x65, + 0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x31, + 0x30,0x34,0x38,0x20,0x2b,0x20,0x31,0x2c,0x20,0x5f,0x31,0x30,0x35,0x35,0x29,0x29, + 0x2c,0x20,0x30,0x29,0x2e,0x78,0x29,0x20,0x2b,0x20,0x73,0x68,0x5f,0x63,0x68,0x75, + 0x6e,0x6b,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e, + 0x74,0x32,0x28,0x5f,0x31,0x30,0x34,0x38,0x20,0x2b,0x20,0x32,0x2c,0x20,0x5f,0x31, + 0x30,0x35,0x35,0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e, + 0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65, + 0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e, + 0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x68,0x5f,0x65,0x76, + 0x61,0x6c,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20, + 0x69,0x6e,0x74,0x33,0x26,0x20,0x70,0x72,0x6f,0x62,0x65,0x2c,0x20,0x74,0x68,0x72, + 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x26,0x20,0x4e,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d, + 0x73,0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66, + 0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x29,0x0a, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x32,0x36,0x20,0x3d, + 0x20,0x70,0x72,0x6f,0x62,0x65,0x2e,0x78,0x20,0x2a,0x20,0x33,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x33,0x34,0x20,0x3d,0x20,0x28,0x70,0x72, + 0x6f,0x62,0x65,0x2e,0x7a,0x20,0x2a,0x20,0x36,0x34,0x29,0x20,0x2b,0x20,0x70,0x72, + 0x6f,0x62,0x65,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x5f,0x39,0x34,0x34,0x20,0x3d,0x20,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e, + 0x6b,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74, + 0x32,0x28,0x5f,0x39,0x32,0x36,0x2c,0x20,0x5f,0x39,0x33,0x34,0x29,0x29,0x2c,0x20, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, + 0x39,0x35,0x34,0x20,0x3d,0x20,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x2e,0x72, + 0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f, + 0x39,0x32,0x36,0x20,0x2b,0x20,0x31,0x2c,0x20,0x5f,0x39,0x33,0x34,0x29,0x29,0x2c, + 0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x5f,0x39,0x36,0x34,0x20,0x3d,0x20,0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x2e, + 0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28, + 0x5f,0x39,0x32,0x36,0x20,0x2b,0x20,0x32,0x2c,0x20,0x5f,0x39,0x33,0x34,0x29,0x29, + 0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32,0x37,0x30,0x31,0x31,0x36,0x38, + 0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x5f, + 0x39,0x34,0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x31,0x2e,0x30,0x32,0x33,0x33, + 0x32,0x36,0x39,0x39,0x32,0x39,0x38,0x38,0x35,0x38,0x36,0x34,0x32,0x35,0x37,0x38, + 0x31,0x32,0x35,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f,0x39,0x34,0x34,0x2e,0x77,0x20, + 0x2a,0x20,0x4e,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x34,0x34,0x2e,0x79, + 0x20,0x2a,0x20,0x4e,0x2e,0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x34,0x34, + 0x2e,0x7a,0x20,0x2a,0x20,0x4e,0x2e,0x7a,0x29,0x29,0x29,0x2c,0x20,0x28,0x30,0x2e, + 0x38,0x38,0x36,0x32,0x32,0x37,0x30,0x31,0x31,0x36,0x38,0x30,0x36,0x30,0x33,0x30, + 0x32,0x37,0x33,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x5f,0x39,0x35,0x34,0x2e,0x78, + 0x29,0x20,0x2b,0x20,0x28,0x31,0x2e,0x30,0x32,0x33,0x33,0x32,0x36,0x39,0x39,0x32, + 0x39,0x38,0x38,0x35,0x38,0x36,0x34,0x32,0x35,0x37,0x38,0x31,0x32,0x35,0x20,0x2a, + 0x20,0x28,0x28,0x28,0x5f,0x39,0x35,0x34,0x2e,0x77,0x20,0x2a,0x20,0x4e,0x2e,0x78, + 0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x35,0x34,0x2e,0x79,0x20,0x2a,0x20,0x4e,0x2e, + 0x79,0x29,0x29,0x20,0x2b,0x20,0x28,0x5f,0x39,0x35,0x34,0x2e,0x7a,0x20,0x2a,0x20, + 0x4e,0x2e,0x7a,0x29,0x29,0x29,0x2c,0x20,0x28,0x30,0x2e,0x38,0x38,0x36,0x32,0x32, + 0x37,0x30,0x31,0x31,0x36,0x38,0x30,0x36,0x30,0x33,0x30,0x32,0x37,0x33,0x34,0x33, + 0x37,0x35,0x20,0x2a,0x20,0x5f,0x39,0x36,0x34,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28, + 0x31,0x2e,0x30,0x32,0x33,0x33,0x32,0x36,0x39,0x39,0x32,0x39,0x38,0x38,0x35,0x38, + 0x36,0x34,0x32,0x35,0x37,0x38,0x31,0x32,0x35,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f, + 0x39,0x36,0x34,0x2e,0x77,0x20,0x2a,0x20,0x4e,0x2e,0x78,0x29,0x20,0x2b,0x20,0x28, + 0x5f,0x39,0x36,0x34,0x2e,0x79,0x20,0x2a,0x20,0x4e,0x2e,0x79,0x29,0x29,0x20,0x2b, + 0x20,0x28,0x5f,0x39,0x36,0x34,0x2e,0x7a,0x20,0x2a,0x20,0x4e,0x2e,0x7a,0x29,0x29, + 0x29,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31, + 0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32,0x35,0x31,0x34,0x30,0x33,0x38, + 0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69, + 0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69, + 0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69, + 0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73, + 0x68,0x5f,0x65,0x76,0x61,0x6c,0x5f,0x74,0x72,0x69,0x6c,0x69,0x6e,0x65,0x61,0x72, + 0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e, + 0x74,0x33,0x26,0x20,0x70,0x30,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x70,0x31,0x2c,0x20,0x74, 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, - 0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f, - 0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61, - 0x63,0x6b,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, - 0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c, - 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d, - 0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f, - 0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20, - 0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x36,0x33, - 0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65, - 0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74, - 0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x36,0x33,0x39,0x2e,0x7a,0x20,0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72, - 0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x35,0x30,0x20,0x3d,0x20,0x72,0x64,0x6d, - 0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, - 0x20,0x5f,0x36,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x36,0x35,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d, - 0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69,0x6e,0x74,0x32,0x28,0x72,0x64,0x6d,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28, - 0x29,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74, - 0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x32,0x20,0x5f,0x36,0x36,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, - 0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x36,0x35,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x37,0x33, - 0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x68,0x65,0x6d,0x69,0x6f,0x63,0x74,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x72,0x64,0x6d, - 0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74, - 0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x36,0x36,0x37,0x2e,0x78,0x20,0x2b,0x20, - 0x69,0x6e,0x74,0x28,0x5f,0x36,0x37,0x33,0x2e,0x78,0x20,0x2a,0x20,0x32,0x2e,0x30, - 0x29,0x2c,0x20,0x5f,0x36,0x36,0x37,0x2e,0x79,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28, - 0x5f,0x36,0x37,0x33,0x2e,0x79,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x2c, - 0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x74,0x33,0x26,0x20,0x74,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f, + 0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x74, + 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20, + 0x73,0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x73,0x70,0x76,0x55,0x6e,0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x66, + 0x6c,0x6f,0x61,0x74,0x2c,0x20,0x32,0x3e,0x20,0x5f,0x31,0x31,0x30,0x35,0x20,0x3d, + 0x20,0x73,0x70,0x76,0x55,0x6e,0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c, + 0x66,0x6c,0x6f,0x61,0x74,0x2c,0x20,0x32,0x3e,0x28,0x7b,0x20,0x31,0x2e,0x30,0x20, + 0x2d,0x20,0x74,0x2e,0x78,0x2c,0x20,0x74,0x2e,0x78,0x20,0x7d,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x73,0x70,0x76,0x55,0x6e,0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61, + 0x79,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x2c,0x20,0x32,0x3e,0x20,0x77,0x78,0x20,0x3d, + 0x20,0x5f,0x31,0x31,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x70,0x76,0x55, + 0x6e,0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x66,0x6c,0x6f,0x61,0x74, + 0x2c,0x20,0x32,0x3e,0x20,0x5f,0x31,0x31,0x31,0x32,0x20,0x3d,0x20,0x73,0x70,0x76, + 0x55,0x6e,0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x66,0x6c,0x6f,0x61, + 0x74,0x2c,0x20,0x32,0x3e,0x28,0x7b,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2e, + 0x79,0x2c,0x20,0x74,0x2e,0x79,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73, + 0x70,0x76,0x55,0x6e,0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x66,0x6c, + 0x6f,0x61,0x74,0x2c,0x20,0x32,0x3e,0x20,0x77,0x79,0x20,0x3d,0x20,0x5f,0x31,0x31, + 0x31,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x70,0x76,0x55,0x6e,0x73,0x61,0x66, + 0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x2c,0x20,0x32,0x3e, + 0x20,0x5f,0x31,0x31,0x31,0x39,0x20,0x3d,0x20,0x73,0x70,0x76,0x55,0x6e,0x73,0x61, + 0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x2c,0x20,0x32, + 0x3e,0x28,0x7b,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2e,0x7a,0x2c,0x20,0x74, + 0x2e,0x7a,0x20,0x7d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x73,0x70,0x76,0x55,0x6e, + 0x73,0x61,0x66,0x65,0x41,0x72,0x72,0x61,0x79,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x2c, + 0x20,0x32,0x3e,0x20,0x77,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x31,0x31,0x39,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x72,0x65,0x73,0x75,0x6c, + 0x74,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x6f,0x74,0x61,0x6c, + 0x5f,0x77,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x20,0x5f,0x31,0x31,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x5f,0x31,0x31,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x5f,0x31,0x31,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28, + 0x69,0x6e,0x74,0x20,0x69,0x7a,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x7a,0x20,0x3c, + 0x20,0x32,0x3b,0x20,0x69,0x7a,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74, + 0x20,0x69,0x79,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x79,0x20,0x3c,0x20,0x32,0x3b, + 0x20,0x69,0x79,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6f,0x72, + 0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x78,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x78, + 0x20,0x3c,0x20,0x32,0x3b,0x20,0x69,0x78,0x2b,0x2b,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x78, + 0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31, + 0x34,0x39,0x20,0x3d,0x20,0x70,0x30,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x34,0x39,0x20,0x3d,0x20, + 0x70,0x31,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x79,0x20,0x3d, + 0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x30, + 0x20,0x3d,0x20,0x70,0x30,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x36,0x30,0x20,0x3d,0x20,0x70,0x31, + 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x7a,0x20,0x3d,0x3d,0x20, + 0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x37,0x31,0x20,0x3d, + 0x20,0x70,0x30,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x31,0x37,0x31,0x20,0x3d,0x20,0x70,0x31,0x2e,0x7a, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x5f,0x31,0x31,0x38,0x30,0x20,0x3d, + 0x20,0x69,0x6e,0x74,0x33,0x28,0x5f,0x31,0x31,0x34,0x39,0x2c,0x20,0x5f,0x31,0x31, + 0x36,0x30,0x2c,0x20,0x5f,0x31,0x31,0x37,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x39,0x36,0x20,0x3d,0x20,0x28,0x28, + 0x77,0x78,0x5b,0x69,0x78,0x5d,0x20,0x2a,0x20,0x77,0x79,0x5b,0x69,0x79,0x5d,0x29, + 0x20,0x2a,0x20,0x77,0x7a,0x5b,0x69,0x7a,0x5d,0x29,0x20,0x2a,0x20,0x73,0x68,0x5f, + 0x70,0x72,0x6f,0x62,0x65,0x5f,0x65,0x6e,0x65,0x72,0x67,0x79,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x73,0x68,0x5f,0x63, + 0x68,0x75,0x6e,0x6b,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x31,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2b,0x3d,0x20,0x28,0x73,0x68,0x5f,0x65, + 0x76,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x73,0x68, + 0x5f,0x63,0x68,0x75,0x6e,0x6b,0x29,0x20,0x2a,0x20,0x5f,0x31,0x31,0x39,0x36,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x20,0x2b,0x3d,0x20,0x5f,0x31,0x31, + 0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x32, + 0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x6f,0x74,0x61, + 0x6c,0x5f,0x77,0x20,0x3e,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, + 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x31,0x38,0x20,0x3d, + 0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x74,0x6f,0x74,0x61,0x6c,0x5f,0x77,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x31,0x38,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x5f,0x31, + 0x32,0x31,0x38,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69, + 0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74, + 0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69, + 0x6e,0x65,0x29,0x29,0x0a,0x69,0x6e,0x74,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x74, + 0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x26,0x20,0x66,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, + 0x72,0x6e,0x20,0x28,0x66,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x20,0x3f,0x20,0x28, + 0x2d,0x31,0x29,0x20,0x3a,0x20,0x31,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x73,0x6d,0x69,0x78,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x61,0x2c,0x20,0x74,0x68,0x72, + 0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f, + 0x70,0x72,0x6f,0x62,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, + 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68, + 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26, + 0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26, + 0x20,0x66,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f, + 0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20, + 0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61, + 0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64, + 0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70, + 0x6f,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x5f,0x36,0x35,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61, + 0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f, + 0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x36,0x35,0x35,0x2e,0x7a,0x20, + 0x3c,0x3d,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x66,0x61,0x6c, + 0x6c,0x62,0x61,0x63,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20, + 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x36,0x36, + 0x36,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f, + 0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x36,0x35,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20, + 0x5f,0x36,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x69,0x6e, + 0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74, + 0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74, + 0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x28,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x36,0x38,0x33, + 0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73, + 0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x4e,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20, + 0x3d,0x20,0x5f,0x36,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x32,0x20,0x5f,0x36,0x38,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x68,0x65, + 0x6d,0x69,0x6f,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74, + 0x75,0x72,0x6e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x72,0x65, + 0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x5f,0x36, + 0x38,0x33,0x2e,0x78,0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x36,0x38,0x39,0x2e, + 0x78,0x20,0x2a,0x20,0x32,0x2e,0x30,0x29,0x2c,0x20,0x5f,0x36,0x38,0x33,0x2e,0x79, + 0x20,0x2b,0x20,0x69,0x6e,0x74,0x28,0x5f,0x36,0x38,0x39,0x2e,0x79,0x20,0x2a,0x20, + 0x32,0x2e,0x30,0x29,0x29,0x29,0x2c,0x20,0x30,0x29,0x2e,0x78,0x79,0x7a,0x3b,0x0a, + 0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65, + 0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28, + 0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73,0x6d,0x69,0x78,0x28,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26, + 0x20,0x61,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65, + 0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20, + 0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, + 0x6d,0x69,0x78,0x28,0x61,0x2c,0x20,0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x70,0x6f,0x77,0x72,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30, + 0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36, + 0x32,0x35,0x29,0x20,0x2f,0x20,0x28,0x70,0x6f,0x77,0x72,0x28,0x74,0x2c,0x20,0x31, + 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, + 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x72, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30, + 0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35, + 0x36,0x32,0x35,0x29,0x29,0x29,0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74, + 0x69,0x63,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72, + 0x69,0x62,0x75,0x74,0x65,0x5f,0x5f,0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f, + 0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29,0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66, + 0x66,0x75,0x73,0x65,0x28,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, + 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72, 0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x26,0x20,0x62,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73, - 0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x26,0x20,0x74,0x29,0x0a,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6d,0x69,0x78,0x28,0x61,0x2c,0x20, - 0x62,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x70,0x6f,0x77,0x72,0x28,0x74, - 0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31, - 0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2f,0x20,0x28, - 0x70,0x6f,0x77,0x72,0x28,0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30, - 0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32, - 0x35,0x29,0x20,0x2b,0x20,0x70,0x6f,0x77,0x72,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, - 0x74,0x2c,0x20,0x31,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, - 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x29,0x29, - 0x3b,0x0a,0x7d,0x0a,0x0a,0x73,0x74,0x61,0x74,0x69,0x63,0x20,0x69,0x6e,0x6c,0x69, - 0x6e,0x65,0x20,0x5f,0x5f,0x61,0x74,0x74,0x72,0x69,0x62,0x75,0x74,0x65,0x5f,0x5f, - 0x28,0x28,0x61,0x6c,0x77,0x61,0x79,0x73,0x5f,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x29, - 0x29,0x0a,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64, - 0x69,0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x28,0x74,0x68, - 0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x26,0x20,0x4e,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e, - 0x73,0x74,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x26,0x20,0x64,0x69,0x66,0x66,0x2c, - 0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e, - 0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x2c,0x20,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20, - 0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72, - 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x37,0x33,0x32,0x20,0x3d, - 0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37,0x33,0x38,0x20,0x3d,0x20,0x5f,0x37, - 0x33,0x32,0x20,0x3c,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x32,0x20,0x64,0x65,0x6c,0x74,0x61,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x37,0x33,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69, - 0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x32,0x20,0x3c,0x3d,0x20, - 0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x78,0x2c,0x20, - 0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66,0x2e,0x7a,0x2c,0x20,0x64,0x69,0x66, - 0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x73, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x73,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x38,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, - 0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20, - 0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33, - 0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20, - 0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d, - 0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x33,0x32,0x20, - 0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, - 0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73,0x69,0x67,0x6e, - 0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29,0x2c,0x20,0x30,0x2c,0x20,0x30,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x64,0x65, - 0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20, - 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, - 0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61, - 0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20, - 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x64,0x65, - 0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20, - 0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c, - 0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20, - 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x26,0x20,0x64,0x69,0x66,0x66,0x2c,0x20,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x63, + 0x6f,0x6e,0x73,0x74,0x20,0x69,0x6e,0x74,0x33,0x26,0x20,0x6c,0x6f,0x63,0x61,0x6c, + 0x5f,0x70,0x6f,0x73,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c, + 0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75, + 0x70,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65, + 0x73,0x6d,0x70,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66, + 0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c, + 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29, + 0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x5f,0x37,0x34,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65, + 0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x37, + 0x35,0x34,0x20,0x3d,0x20,0x5f,0x37,0x34,0x38,0x20,0x3c,0x3d,0x20,0x31,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x64,0x65,0x6c,0x74,0x61, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x37,0x35,0x34,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65, + 0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66, + 0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x7a,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x37,0x34,0x38,0x20,0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x64,0x65,0x6c,0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64, + 0x69,0x66,0x66,0x2e,0x78,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x65,0x6c, + 0x74,0x61,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x64,0x69,0x66,0x66, + 0x2e,0x7a,0x2c,0x20,0x64,0x69,0x66,0x66,0x2e,0x79,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x74,0x33,0x20,0x73,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x33,0x20,0x73,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x37,0x35,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x69,0x73, + 0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x2c,0x20,0x30,0x2c, + 0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c, + 0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32, + 0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73, + 0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x69,0x6e, - 0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f, - 0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x37,0x34,0x38,0x20,0x3c,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, + 0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74, + 0x33,0x28,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x29, + 0x2c,0x20,0x30,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x36,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69, + 0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x36,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74, + 0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20, + 0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33, + 0x28,0x30,0x2c,0x20,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x39,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x30,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x32,0x20,0x3d,0x20,0x69, + 0x6e,0x74,0x33,0x28,0x30,0x2c,0x20,0x69,0x73,0x69,0x67,0x6e,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x30,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x64, + 0x65,0x6c,0x74,0x61,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x4e,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x34,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6c,0x6f,0x63,0x61,0x6c, + 0x5f,0x70,0x6f,0x73,0x2c,0x20,0x69,0x6e,0x74,0x33,0x28,0x30,0x29,0x2c,0x20,0x69, + 0x6e,0x74,0x33,0x28,0x33,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20, 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, @@ -5908,709 +7036,786 @@ fs_trile_source_metal_macos := u8.[ 0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d, - 0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f, - 0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, - 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, - 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, - 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28, - 0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6c,0x6f,0x63,0x61,0x6c, - 0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20, - 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, - 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, - 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, - 0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34, - 0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33, - 0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x6c,0x6f,0x63, - 0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x29,0x20,0x2b,0x20,0x73, - 0x32,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x31,0x2c,0x20, + 0x69,0x6e,0x74,0x33,0x28,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x33,0x28,0x33,0x31, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, 0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39, 0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33, 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39, 0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d, - 0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f, - 0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c, - 0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69, - 0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, - 0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d, - 0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66, - 0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x38,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c, - 0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61, - 0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x30,0x20,0x3d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f, + 0x70,0x6f,0x73,0x20,0x2b,0x20,0x73,0x32,0x2c,0x20,0x69,0x6e,0x74,0x33,0x28,0x30, + 0x29,0x2c,0x20,0x69,0x6e,0x74,0x33,0x28,0x33,0x31,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x31,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36, + 0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x63,0x6c, + 0x61,0x6d,0x70,0x28,0x28,0x6c,0x6f,0x63,0x61,0x6c,0x5f,0x70,0x6f,0x73,0x20,0x2b, + 0x20,0x73,0x31,0x29,0x20,0x2b,0x20,0x73,0x32,0x2c,0x20,0x69,0x6e,0x74,0x33,0x28, + 0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x33,0x28,0x33,0x31,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, + 0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, + 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39, + 0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70, + 0x61,0x6d,0x5f,0x32,0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70, 0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f, + 0x72,0x61,0x6d,0x5f,0x31,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x72,0x64,0x6d,0x5f, 0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, 0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d, 0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f, 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62, - 0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20, + 0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20, 0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c, 0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c, 0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x61, 0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31, - 0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69, - 0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x33,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e, - 0x79,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73, - 0x6d,0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33, - 0x29,0x3b,0x0a,0x7d,0x0a,0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d, - 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d, - 0x61,0x69,0x6e,0x30,0x5f,0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61, - 0x67,0x65,0x5f,0x69,0x6e,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e, - 0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f, - 0x6e,0x66,0x69,0x67,0x26,0x20,0x5f,0x31,0x32,0x36,0x20,0x5b,0x5b,0x62,0x75,0x66, - 0x66,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61, - 0x6e,0x74,0x20,0x74,0x72,0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61, - 0x6d,0x73,0x26,0x20,0x5f,0x39,0x33,0x34,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65, - 0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, - 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, - 0x6b,0x75,0x70,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29, - 0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, - 0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x20,0x5b, - 0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74, - 0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20, - 0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x64,0x65,0x70,0x74,0x68,0x32,0x64, - 0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65, - 0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x33,0x29,0x5d,0x5d, - 0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61, - 0x74,0x3e,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78, - 0x74,0x75,0x72,0x65,0x28,0x34,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x62,0x72,0x64,0x66, - 0x5f,0x6c,0x75,0x74,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x35, - 0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x74,0x72,0x69, - 0x6c,0x65,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28, - 0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x72,0x64, - 0x6d,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x31, - 0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72,0x20,0x73,0x68,0x61, - 0x64,0x6f,0x77,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d,0x70,0x6c,0x65,0x72, - 0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x67,0x6c, - 0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x20,0x5b,0x5b,0x70,0x6f,0x73, - 0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d, - 0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b, - 0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x32,0x38, - 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x20,0x3c,0x20,0x28, - 0x5f,0x31,0x32,0x36,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74, - 0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x37, - 0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39,0x32,0x32,0x38,0x35,0x31,0x35,0x36, - 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x39, - 0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x32,0x38, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x39,0x33,0x39,0x20,0x3d,0x20,0x5f,0x39,0x33,0x34,0x2e,0x69,0x73,0x5f,0x72, - 0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x39,0x33, - 0x39,0x20,0x3d,0x20,0x5f,0x39,0x32,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33,0x39,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63, - 0x61,0x72,0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e, - 0x2e,0x69,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x69,0x6e,0x2e,0x6f,0x72,0x69,0x67, - 0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39, - 0x39,0x39,0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38, - 0x34,0x35,0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x39,0x35,0x34,0x20,0x3d,0x20,0x5f,0x39,0x33,0x34,0x2e, - 0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d, - 0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x39,0x35,0x35, - 0x20,0x3d,0x20,0x5f,0x39,0x35,0x34,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20,0x33,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x74,0x72,0x69,0x78, - 0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b, - 0x20,0x69,0x20,0x3c,0x20,0x5f,0x39,0x35,0x35,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x20,0x5f,0x39,0x39,0x35,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c, - 0x65,0x74,0x65,0x78,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69,0x6e,0x74,0x32,0x28, - 0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e, - 0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37, - 0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36, - 0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39, - 0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37, - 0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20,0x69,0x6e,0x74,0x28, - 0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39, - 0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35, - 0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c, - 0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36, - 0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30, - 0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63, - 0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e, - 0x78,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37, - 0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36, - 0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39, - 0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37, - 0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x31,0x36,0x29, - 0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x20, - 0x3d,0x20,0x5f,0x39,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x39,0x39,0x35,0x2c,0x20,0x5f,0x39, - 0x39,0x35,0x29,0x20,0x3e,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34, - 0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32, - 0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x74,0x6f, - 0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30, - 0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38, - 0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x30,0x31,0x39,0x20,0x3d,0x20, - 0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c, - 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35, - 0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20, - 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x30,0x31,0x39,0x20, - 0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, - 0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x30,0x31, - 0x39,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36, - 0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x5f,0x31,0x30,0x33,0x39,0x20,0x3d,0x20,0x28,0x5f,0x31,0x30,0x31,0x39, - 0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74, - 0x20,0x3d,0x20,0x5f,0x31,0x30,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x66,0x61, - 0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, - 0x30,0x33,0x39,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31, - 0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38, - 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30, - 0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38, - 0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65, - 0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28, - 0x5f,0x31,0x30,0x31,0x39,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36, - 0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x31,0x30,0x35,0x37,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x69,0x6e,0x2e, - 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x30,0x35,0x39,0x20,0x3d,0x20, - 0x5f,0x31,0x30,0x35,0x37,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x30,0x36,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x37, - 0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30, - 0x36,0x32,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x39,0x20,0x3e,0x3d,0x20,0x5f,0x31, - 0x30,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, - 0x30,0x37,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30, - 0x36,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d,0x20,0x5f,0x31,0x30,0x35,0x39,0x20, - 0x3e,0x3d,0x20,0x5f,0x31,0x30,0x35,0x37,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x37,0x30,0x20,0x3d, - 0x20,0x5f,0x31,0x30,0x36,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x37,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x38,0x33,0x20,0x3d,0x20,0x5f,0x31,0x30, - 0x36,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x30,0x35,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x30,0x39,0x31,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30, - 0x38,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x30,0x39,0x31,0x20, - 0x3d,0x20,0x5f,0x31,0x30,0x36,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x30,0x35,0x37, - 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x30,0x39,0x31,0x20,0x3d,0x20,0x5f,0x31,0x30,0x38,0x33,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x30,0x39,0x31,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, - 0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73, - 0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x35,0x34, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, - 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28, - 0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f, - 0x6c,0x6f,0x72,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28, - 0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31, - 0x32,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x36,0x2e, - 0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2b,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36, - 0x35,0x36,0x32,0x35,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x5f,0x31,0x31,0x34,0x30,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61, - 0x6d,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x31,0x34,0x34,0x20,0x3d, - 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e, - 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x31,0x34,0x39,0x20,0x3d,0x20,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f, - 0x31,0x31,0x34,0x30,0x20,0x2b,0x20,0x5f,0x31,0x31,0x34,0x34,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x35,0x34,0x20,0x3d, - 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, - 0x2c,0x20,0x5f,0x31,0x31,0x34,0x34,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x31,0x35,0x39,0x20, - 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, - 0x4e,0x2c,0x20,0x5f,0x31,0x31,0x34,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x31,0x37, - 0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, - 0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30, - 0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74, - 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c, - 0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, - 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x31,0x34,0x39,0x2c,0x20,0x5f,0x31, - 0x31,0x34,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d, - 0x20,0x5f,0x31,0x31,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x5f,0x31,0x31,0x37,0x37,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e, - 0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20, - 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, - 0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, - 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x31,0x34,0x34,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20, - 0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x32,0x33,0x30,0x20,0x3d,0x20, - 0x5f,0x39,0x33,0x34,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20, - 0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69, - 0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x5f,0x31,0x32,0x34,0x30,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x32,0x33, - 0x30,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f, - 0x31,0x32,0x33,0x30,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20, - 0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x32,0x34,0x34,0x20,0x3d, - 0x20,0x5f,0x31,0x32,0x34,0x30,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31, - 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33, - 0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x37,0x35, - 0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31, - 0x36,0x37,0x35,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x34,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, - 0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x31,0x37,0x37,0x29,0x20,0x2a, - 0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, - 0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, - 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34, - 0x32,0x35,0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29, - 0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x31,0x37,0x37,0x20,0x2a,0x20,0x28,0x44,0x69, - 0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65, - 0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20, - 0x5f,0x31,0x31,0x35,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x31,0x35,0x34,0x29,0x20, - 0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38, - 0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37, - 0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x73,0x68,0x61, - 0x64,0x6f,0x77,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x63,0x6f, - 0x6d,0x70,0x61,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c, - 0x20,0x5f,0x31,0x36,0x37,0x35,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x32,0x34,0x34, - 0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x31,0x35,0x34,0x29,0x20,0x2a,0x20,0x5f,0x31, - 0x32,0x36,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72, - 0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65, - 0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20, - 0x5f,0x31,0x32,0x38,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64, - 0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43, - 0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33, - 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x31, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e, - 0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31, - 0x32,0x38,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f, - 0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b, - 0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x33,0x30,0x34,0x20, - 0x3d,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61, - 0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x39,0x33,0x34,0x2e,0x73,0x63, - 0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f, - 0x39,0x33,0x34,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x30, - 0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x30,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x31,0x35,0x20,0x3d,0x20,0x5f,0x39, - 0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d, - 0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31, - 0x33,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33, - 0x31,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x33,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x37,0x2e, - 0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31, - 0x33,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x31,0x33,0x32,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x5f,0x31,0x31,0x35,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x31,0x37,0x31,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x5f,0x31,0x33,0x33,0x31,0x20,0x3d,0x20,0x46,0x72,0x65,0x73, - 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x5f,0x31,0x33,0x34,0x31,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f, - 0x73,0x20,0x2d,0x20,0x28,0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e, - 0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30, - 0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30, - 0x36,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3c,0x20,0x30, - 0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31, - 0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, - 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x34,0x39,0x20,0x3d,0x20,0x72,0x64, - 0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f, - 0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x69,0x6e,0x74,0x32,0x28,0x72,0x64,0x6d,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28, - 0x29,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74, - 0x5f,0x68,0x65,0x69,0x67,0x68,0x74,0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f, - 0x31,0x33,0x36,0x30,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e, - 0x30,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x33,0x35, - 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x36,0x39,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28, - 0x5f,0x31,0x32,0x38,0x37,0x2e,0x7a,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x5f,0x31,0x33,0x35,0x35,0x2e,0x78,0x29,0x29,0x20,0x2f,0x20,0x32,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x5f,0x31,0x32, - 0x38,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d, - 0x20,0x5f,0x31,0x33,0x36,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x31,0x33,0x37, - 0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66, - 0x73,0x65,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x69,0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x72,0x6f, - 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30, - 0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36, - 0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x2d,0x69,0x6e, - 0x2e,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x31,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35, - 0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65, - 0x63,0x74,0x53,0x70,0x65,0x63,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65, - 0x63,0x5f,0x72,0x61,0x79,0x6d,0x61,0x72,0x63,0x68,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c, - 0x20,0x5f,0x31,0x32,0x36,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73, - 0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x2d, - 0x69,0x6e,0x2e,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x31,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x33,0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36, - 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x33,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69, - 0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73, - 0x70,0x65,0x63,0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x2c, - 0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73, - 0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x32,0x32,0x20,0x3d,0x20,0x69,0x6e, - 0x64,0x69,0x72,0x65,0x63,0x74,0x53,0x70,0x65,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, - 0x31,0x34,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x32,0x32,0x20,0x2a,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x74, - 0x69,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x33,0x36,0x20,0x3d, - 0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x34,0x32,0x33,0x2c,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x32,0x33,0x2c,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32, - 0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30, - 0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32, - 0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32, - 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, - 0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63, - 0x74,0x53,0x70,0x65,0x63,0x20,0x3d,0x20,0x5f,0x31,0x34,0x33,0x36,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x20,0x5f,0x31,0x34,0x34,0x35,0x20,0x3d,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c, - 0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x31,0x35,0x39,0x2c,0x20, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x34,0x35,0x30,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72,0x6f,0x75,0x67,0x68, - 0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x35,0x39,0x32,0x37, - 0x34,0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31,0x38,0x37,0x35,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69, - 0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x5f,0x31,0x34,0x33, - 0x36,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x2a,0x20,0x5f,0x31, - 0x34,0x34,0x35,0x2e,0x78,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x5f,0x31,0x34,0x34,0x35,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x39,0x33, - 0x34,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65, - 0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39, - 0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34, - 0x39,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x29, - 0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e, - 0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30, - 0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x35,0x30,0x29,0x20,0x2a,0x20, - 0x70,0x6f,0x77,0x72,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x31,0x35,0x39, - 0x2c,0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30, - 0x20,0x2d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28, - 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29, - 0x20,0x2a,0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36, - 0x30,0x34,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x4e,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x34,0x31, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x33,0x35,0x20,0x3d,0x20,0x5f,0x31,0x32,0x38,0x31,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x5f,0x31,0x35,0x30,0x34,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x69, - 0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x35,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38, + 0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x64,0x69, + 0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75, + 0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d, + 0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x5f,0x64,0x69,0x66,0x66,0x5f,0x70,0x72,0x6f,0x62,0x65,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c, 0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c, 0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73, - 0x6d,0x70,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x39,0x33, - 0x34,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28, - 0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29, - 0x20,0x2d,0x20,0x5f,0x31,0x33,0x33,0x31,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30, - 0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20, - 0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f, - 0x31,0x35,0x30,0x34,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x32, - 0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39, - 0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30, - 0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38, - 0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29, - 0x2c,0x20,0x5f,0x31,0x35,0x30,0x34,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x61, - 0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x29,0x20,0x2a,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33, - 0x33,0x34,0x32,0x35,0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35, - 0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, - 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x33,0x30, - 0x35,0x29,0x20,0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69, - 0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x35,0x33,0x39,0x20,0x3d,0x20, - 0x5f,0x39,0x33,0x34,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63, - 0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, - 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x35,0x34,0x38,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x35,0x33, - 0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x35,0x34,0x38,0x20,0x3d, - 0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74,0x29,0x20,0x3c, - 0x20,0x5f,0x39,0x33,0x34,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e, + 0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x64,0x65, + 0x6c,0x74,0x61,0x2e,0x78,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x73,0x6d, + 0x69,0x78,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20,0x73,0x6d,0x69,0x78,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d, + 0x20,0x61,0x62,0x73,0x28,0x64,0x65,0x6c,0x74,0x61,0x2e,0x79,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x73,0x6d,0x69,0x78,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x29,0x3b,0x0a,0x7d,0x0a, + 0x0a,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, + 0x6f,0x75,0x74,0x20,0x6d,0x61,0x69,0x6e,0x30,0x28,0x6d,0x61,0x69,0x6e,0x30,0x5f, + 0x69,0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e, + 0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69, + 0x6c,0x65,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26, + 0x20,0x5f,0x31,0x34,0x32,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30, + 0x29,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72, + 0x69,0x6c,0x65,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20,0x5f, + 0x31,0x32,0x34,0x36,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29, + 0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c, + 0x6f,0x61,0x74,0x3e,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x20, + 0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20, + 0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e, + 0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x20,0x5b,0x5b,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x68,0x5f,0x63, + 0x68,0x75,0x6e,0x6b,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x32, + 0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66, + 0x6c,0x6f,0x61,0x74,0x3e,0x20,0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x20,0x5b, + 0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x33,0x29,0x5d,0x5d,0x2c,0x20,0x64, + 0x65,0x70,0x74,0x68,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x68, + 0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72, + 0x65,0x28,0x34,0x29,0x5d,0x5d,0x2c,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32, + 0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74,0x3e,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78, + 0x20,0x5b,0x5b,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x35,0x29,0x5d,0x5d,0x2c, + 0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x32,0x64,0x3c,0x66,0x6c,0x6f,0x61,0x74, + 0x3e,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x20,0x5b,0x5b,0x74,0x65,0x78, + 0x74,0x75,0x72,0x65,0x28,0x36,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x72,0x28,0x30,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70, + 0x6c,0x65,0x72,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x72,0x28,0x31,0x29,0x5d,0x5d,0x2c,0x20,0x73,0x61,0x6d,0x70,0x6c, + 0x65,0x72,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x20,0x5b,0x5b,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x72,0x28,0x32,0x29,0x5d,0x5d,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64, + 0x20,0x5b,0x5b,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x5d,0x5d,0x29,0x0a,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f,0x6f,0x75,0x74,0x20,0x6f, + 0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x31,0x32,0x34,0x30,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f, + 0x73,0x2e,0x79,0x20,0x3c,0x20,0x28,0x5f,0x31,0x34,0x32,0x2e,0x70,0x6c,0x61,0x6e, + 0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x39,0x39, + 0x39,0x39,0x39,0x39,0x39,0x37,0x37,0x36,0x34,0x38,0x32,0x35,0x38,0x32,0x30,0x39, + 0x32,0x32,0x38,0x35,0x31,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x32,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x35,0x31,0x20,0x3d, + 0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63, + 0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x32,0x35,0x31,0x20,0x3d,0x20, + 0x5f,0x31,0x32,0x34,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x35,0x31,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x64,0x69,0x73,0x63,0x61,0x72, + 0x64,0x5f,0x66,0x72,0x61,0x67,0x6d,0x65,0x6e,0x74,0x28,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x69, + 0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x69,0x6e,0x2e,0x6f,0x72,0x69,0x67,0x5f,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x20,0x2a,0x20,0x30,0x2e,0x30,0x31,0x39,0x39,0x39,0x39, + 0x39,0x39,0x39,0x35,0x35,0x32,0x39,0x36,0x35,0x31,0x36,0x34,0x31,0x38,0x34,0x35, + 0x37,0x30,0x33,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, + 0x6c,0x20,0x5f,0x31,0x32,0x36,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e, + 0x69,0x73,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x3d,0x3d, + 0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x32,0x36, + 0x37,0x20,0x3d,0x20,0x5f,0x31,0x32,0x36,0x36,0x20,0x3f,0x20,0x31,0x20,0x3a,0x20, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x74,0x72, + 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6f,0x72,0x20,0x28,0x69,0x6e,0x74,0x20,0x69,0x20,0x3d,0x20, + 0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x5f,0x31,0x32,0x36,0x37,0x3b,0x20,0x69,0x2b, + 0x2b,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x33,0x30,0x37,0x20,0x3d,0x20, + 0x74,0x72,0x69,0x6c,0x65,0x74,0x65,0x78,0x2e,0x72,0x65,0x61,0x64,0x28,0x75,0x69, + 0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x32,0x28,0x69,0x6e,0x74,0x28,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, + 0x70,0x6f,0x73,0x2e,0x7a,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37, + 0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35, + 0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e, + 0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37, + 0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x2c,0x20, + 0x69,0x6e,0x74,0x28,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x2e,0x79,0x2c,0x20,0x39,0x2e, + 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36, + 0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65, + 0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e,0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36, + 0x34,0x31,0x39,0x36,0x37,0x37,0x37,0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20, + 0x31,0x36,0x2e,0x30,0x29,0x20,0x2b,0x20,0x28,0x69,0x6e,0x74,0x28,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f, + 0x70,0x6f,0x73,0x2e,0x78,0x2c,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37, + 0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35, + 0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x2c,0x20,0x30,0x2e, + 0x39,0x39,0x39,0x39,0x38,0x39,0x39,0x38,0x36,0x34,0x31,0x39,0x36,0x37,0x37,0x37, + 0x33,0x34,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a, + 0x20,0x31,0x36,0x29,0x29,0x29,0x2c,0x20,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72, + 0x69,0x61,0x6c,0x20,0x3d,0x20,0x5f,0x31,0x33,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x33, + 0x30,0x37,0x2c,0x20,0x5f,0x31,0x33,0x30,0x37,0x29,0x20,0x3e,0x20,0x39,0x2e,0x39, + 0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33, + 0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d, + 0x30,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x72,0x65,0x61,0x6b,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x70,0x6f,0x73,0x20,0x2b,0x3d, + 0x20,0x28,0x69,0x6e,0x2e,0x74,0x6f,0x5f,0x63,0x65,0x6e,0x74,0x65,0x72,0x20,0x2a, + 0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31, + 0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, + 0x31,0x33,0x33,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64, + 0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, + 0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63, + 0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x28,0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26, + 0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34, + 0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39, + 0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x35,0x31,0x20,0x3d, + 0x20,0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31,0x33,0x35,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x35,0x31,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37, + 0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39, + 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x33,0x31,0x20,0x3e,0x3e,0x20, + 0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33, + 0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39, + 0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x33,0x36,0x39,0x20,0x3d,0x20, + 0x61,0x62,0x73,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x31,0x33,0x37,0x31,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x33,0x20, + 0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x37,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, + 0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x37,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x38,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x37,0x34,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x38,0x32,0x20,0x3d, + 0x20,0x5f,0x31,0x33,0x37,0x31,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x33,0x38,0x32,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x34,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x38,0x32, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x73,0x69,0x67,0x6e,0x28, + 0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x39, + 0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x33,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, + 0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x34,0x30,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x33,0x20,0x3e, + 0x3d,0x20,0x5f,0x31,0x33,0x36,0x39,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x33,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x39,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34, + 0x30,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69, + 0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c, + 0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x5f,0x31,0x32,0x36,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, + 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, + 0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75, + 0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x66, + 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29, + 0x20,0x2a,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30, + 0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36, + 0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x29,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x65, + 0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x35,0x32, + 0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, + 0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61,0x6d,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76, + 0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x5f,0x31,0x34,0x35,0x36,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, + 0x31,0x34,0x36,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x35,0x32,0x20,0x2b,0x20,0x5f, + 0x31,0x34,0x35,0x36,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x31,0x34,0x36,0x36,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d, + 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x36,0x29, + 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x34,0x37,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x35,0x32, + 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x38,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39, + 0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34, + 0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61, + 0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d, + 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x31,0x34,0x36,0x31,0x2c,0x20,0x5f,0x31,0x34,0x35,0x32,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x5f,0x31,0x34,0x38,0x33,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x38,0x39, + 0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63, + 0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20, + 0x5f,0x31,0x34,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, + 0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f, + 0x31,0x34,0x35,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x5f,0x31,0x35,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x6d,0x76, + 0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20, + 0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x33,0x38, + 0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x78,0x79,0x7a,0x20,0x2f, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x77,0x29, + 0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x35,0x34,0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x38,0x2e, + 0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30, + 0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x5f,0x32,0x30,0x37,0x38,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33, + 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x32,0x30,0x37,0x38,0x2e,0x7a,0x20,0x3d, + 0x20,0x5f,0x31,0x35,0x34,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28, + 0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d, + 0x20,0x5f,0x31,0x34,0x38,0x39,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d, + 0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72, + 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79, + 0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31, + 0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32,0x35,0x31,0x34,0x30,0x33,0x38, + 0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31, + 0x34,0x38,0x39,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74, + 0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74, + 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x5f,0x31,0x34,0x37,0x31,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x34,0x36,0x36,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39, + 0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35, + 0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35, + 0x29,0x29,0x29,0x20,0x2a,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x2e, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x73, + 0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x32,0x30,0x37,0x38,0x2e, + 0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x34,0x31,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31, + 0x34,0x36,0x36,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x4c, + 0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34, + 0x32,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x38,0x39, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c, + 0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x74,0x33,0x20,0x5f,0x31,0x35,0x39,0x33,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28, + 0x6d,0x6f,0x64,0x28,0x5f,0x31,0x35,0x38,0x39,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69, + 0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31, + 0x35,0x39,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x31,0x35,0x39,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, + 0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c, + 0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36, + 0x31,0x36,0x20,0x3d,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d, + 0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x28,0x67,0x6c,0x5f, + 0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x79,0x20,0x2f,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x34, + 0x36,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f, + 0x68,0x29,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x31,0x36,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x31,0x36,0x2e,0x78, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e, + 0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d, + 0x20,0x5f,0x31,0x34,0x37,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20, + 0x3d,0x20,0x5f,0x31,0x34,0x38,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20, + 0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x33, + 0x37,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69, + 0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x34,0x37,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x28,0x69,0x6e,0x2e, + 0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e, + 0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33, + 0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x34, + 0x39,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74, + 0x20,0x3c,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x35,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x34,0x39,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x35,0x35,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39, + 0x39,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x35,0x35,0x20,0x3d,0x20, + 0x5f,0x31,0x36,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36, + 0x35,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f, + 0x31,0x36,0x36,0x31,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x66,0x61,0x63,0x65,0x5f, + 0x66,0x72,0x6f,0x6d,0x5f,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x34,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x5f,0x31,0x36,0x36,0x37,0x20,0x3d,0x20, + 0x69,0x6e,0x74,0x32,0x28,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2e,0x67, + 0x65,0x74,0x5f,0x77,0x69,0x64,0x74,0x68,0x28,0x29,0x2c,0x20,0x72,0x64,0x6d,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x2e,0x67,0x65,0x74,0x5f,0x68,0x65,0x69,0x67,0x68,0x74, + 0x28,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x31,0x36,0x37,0x32,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x31,0x2e,0x30,0x29,0x20,0x2f,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x36,0x36,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x36, + 0x38,0x31,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x5f,0x31,0x35,0x39,0x39,0x2e,0x7a, + 0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x36,0x36,0x37,0x2e,0x78, + 0x29,0x29,0x20,0x2f,0x20,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x35,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x39,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x38,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x36,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x32,0x20,0x5f,0x31,0x36,0x39,0x31,0x20,0x3d,0x20,0x72,0x64,0x6d, + 0x5f,0x66,0x61,0x63,0x65,0x5f,0x6f,0x66,0x66,0x73,0x65,0x74,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x39,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3c,0x20,0x30,0x2e,0x32,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38, + 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x2d, + 0x69,0x6e,0x2e,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x37,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f, + 0x31,0x36,0x36,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x36,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x31,0x36,0x38, + 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x36,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x39, + 0x35,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x72,0x61,0x79, + 0x6d,0x61,0x72,0x63,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x35,0x2c,0x20,0x5f,0x31,0x34,0x32, + 0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d, + 0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x36,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x37,0x20,0x3d,0x20,0x2d,0x69,0x6e,0x2e,0x63,0x76, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x38,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x39,0x20,0x3d,0x20,0x5f,0x31,0x36,0x36,0x31,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x6e,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x20,0x3d, + 0x20,0x5f,0x31,0x36,0x39,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x38,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x32,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x32,0x20,0x3d,0x20, + 0x5f,0x31,0x36,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x39,0x35,0x20,0x3d,0x20,0x72, + 0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x69,0x6e,0x67,0x6c,0x65,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x38,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x30,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x32,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20, + 0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x37,0x33,0x37,0x20, + 0x3d,0x20,0x5f,0x31,0x36,0x39,0x35,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x37,0x35,0x39,0x20,0x3d,0x20,0x62,0x72,0x64, + 0x66,0x5f,0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d, + 0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x34,0x37, + 0x31,0x2c,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x37,0x36,0x34,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x35, + 0x39,0x32,0x37,0x34,0x31,0x30,0x31,0x32,0x35,0x37,0x33,0x32,0x34,0x32,0x31,0x38, + 0x37,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x6d, + 0x69,0x78,0x28,0x5f,0x31,0x37,0x33,0x37,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x37,0x33,0x37,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35, + 0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, + 0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30, + 0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30, + 0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31, + 0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6d, + 0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31, + 0x36,0x33,0x37,0x20,0x2a,0x20,0x5f,0x31,0x37,0x35,0x39,0x2e,0x78,0x29,0x20,0x2b, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x37,0x35,0x39,0x2e,0x79,0x29, + 0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x73, + 0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, + 0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38, + 0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x20, + 0x2a,0x20,0x5f,0x31,0x37,0x36,0x34,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e, + 0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39,0x39,0x39, + 0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35, + 0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x20,0x2a,0x20, + 0x5f,0x31,0x37,0x36,0x34,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x31,0x2e, + 0x30,0x20,0x2d,0x20,0x5f,0x31,0x34,0x37,0x31,0x2c,0x20,0x32,0x2e,0x30,0x29,0x29, + 0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x66,0x61,0x73,0x74, + 0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33,0x33, + 0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33,0x32, + 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3c,0x20, + 0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37, + 0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, + 0x20,0x5f,0x31,0x38,0x32,0x35,0x20,0x3d,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75, + 0x74,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x34,0x37,0x31,0x2c,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x33,0x20,0x3d,0x20,0x72,0x65, + 0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x4e,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x32,0x2e, + 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x33,0x38,0x20,0x3d,0x20,0x73,0x6b,0x79, + 0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x34,0x2c,0x20,0x5f,0x31,0x34, + 0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28, + 0x5f,0x31,0x38,0x33,0x38,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x33,0x37,0x20, + 0x2a,0x20,0x5f,0x31,0x38,0x32,0x35,0x2e,0x78,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x5f,0x31,0x38,0x32,0x35,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f, + 0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20, + 0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37, + 0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31, + 0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x69,0x6e, + 0x64,0x69,0x72,0x65,0x63,0x74,0x44,0x69,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x73,0x68, + 0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x37, + 0x36,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x35,0x39,0x33,0x29,0x20,0x2b, + 0x20,0x28,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38, + 0x39,0x29,0x29,0x20,0x2a,0x20,0x32,0x2e,0x30,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x30,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x36, + 0x33,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x5f,0x31,0x38,0x38,0x30,0x20,0x3d,0x20, + 0x69,0x6e,0x74,0x33,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x5f,0x31,0x38,0x37,0x36, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x35,0x20,0x3d,0x20, + 0x5f,0x31,0x38,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36, + 0x20,0x3d,0x20,0x6d,0x69,0x6e,0x28,0x28,0x5f,0x31,0x38,0x38,0x30,0x20,0x2b,0x20, + 0x69,0x6e,0x74,0x33,0x28,0x31,0x29,0x29,0x2c,0x20,0x69,0x6e,0x74,0x33,0x28,0x36, + 0x33,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37, + 0x20,0x3d,0x20,0x66,0x72,0x61,0x63,0x74,0x28,0x5f,0x31,0x38,0x37,0x36,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x38,0x20,0x3d,0x20,0x4e, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e, + 0x64,0x69,0x72,0x65,0x63,0x74,0x44,0x69,0x66,0x66,0x20,0x3d,0x20,0x73,0x68,0x5f, + 0x65,0x76,0x61,0x6c,0x5f,0x74,0x72,0x69,0x6c,0x69,0x6e,0x65,0x61,0x72,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33, + 0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x38,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x73, + 0x68,0x5f,0x63,0x68,0x75,0x6e,0x6b,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x39,0x20, + 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x30, + 0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x34,0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x33,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63, + 0x74,0x44,0x69,0x66,0x66,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x69,0x6e,0x64,0x69, + 0x72,0x65,0x63,0x74,0x5f,0x64,0x69,0x66,0x66,0x75,0x73,0x65,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x33,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x30,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c, + 0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c, + 0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73, + 0x6d,0x70,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32, + 0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x31,0x34,0x20,0x3d,0x20,0x69, + 0x6e,0x64,0x69,0x72,0x65,0x63,0x74,0x44,0x69,0x66,0x66,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x32, + 0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x64, + 0x6f,0x74,0x28,0x5f,0x31,0x39,0x31,0x34,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30, + 0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35, + 0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37, + 0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30, + 0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37, + 0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x31,0x39,0x31,0x34,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69, + 0x66,0x66,0x5f,0x73,0x61,0x74,0x75,0x72,0x61,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x64,0x69,0x72,0x65,0x63, + 0x74,0x44,0x69,0x66,0x66,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x33,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20, + 0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e, + 0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x33,0x37,0x29,0x20,0x2a,0x20,0x28,0x31, + 0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x39,0x32,0x33,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x30,0x39,0x38,0x37,0x33,0x33,0x34,0x32, + 0x35,0x31,0x34,0x30,0x33,0x38,0x30,0x38,0x35,0x39,0x33,0x37,0x35,0x29,0x29,0x20, + 0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61, + 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x37,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66, + 0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x39,0x34,0x35,0x20,0x3d,0x20,0x5f,0x31, + 0x32,0x34,0x36,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61, + 0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30, + 0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34, + 0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x39,0x35,0x34,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x21,0x5f,0x31,0x39,0x34,0x35, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x35,0x34,0x20,0x3d,0x20, + 0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74,0x29,0x20,0x3c,0x20, + 0x5f,0x31,0x32,0x34,0x36,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e, 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x35,0x34,0x38,0x20,0x3d,0x20,0x5f,0x31, - 0x35,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x35,0x34,0x38, + 0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x35,0x34,0x20,0x3d,0x20,0x5f,0x31, + 0x39,0x34,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x39,0x35,0x34, 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d, - 0x20,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x39,0x33,0x34,0x2e, - 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a, - 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f,0x39,0x33,0x34,0x2e, - 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, - 0x79,0x20,0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67,0x68,0x74, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20, - 0x2a,0x20,0x5f,0x31,0x33,0x30,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x5f,0x39,0x33,0x34,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, - 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x61, - 0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, - 0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72, - 0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x33,0x30,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36,0x20,0x3d,0x20,0x72,0x65,0x66, - 0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x31,0x34,0x30,0x2c,0x20,0x4e,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x5f,0x31,0x32,0x36,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69, - 0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x39,0x30,0x20,0x3d,0x20,0x73,0x6b,0x79,0x5f, - 0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x36, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x37,0x2c,0x20,0x5f,0x31,0x32,0x36, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x31,0x37,0x37,0x20,0x2a,0x20,0x5f,0x31, - 0x35,0x39,0x30,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36, - 0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x36,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c, - 0x6f,0x72,0x29,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74, - 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20, - 0x2a,0x20,0x5f,0x39,0x33,0x34,0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f, - 0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x73, - 0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f, - 0x31,0x32,0x36,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c, - 0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33, - 0x34,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20, - 0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,0x31,0x39,0x20,0x3d,0x20, - 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, - 0x31,0x36,0x32,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x31,0x39, - 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33, - 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, - 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39, - 0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31, - 0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, - 0x78,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x2e,0x79,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32, - 0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x39,0x33,0x34,0x2e,0x69,0x73,0x5f,0x70,0x72, - 0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,0x33,0x37,0x20,0x3d, - 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x34,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28, - 0x5f,0x31,0x36,0x33,0x37,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, - 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, - 0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38, - 0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f, - 0x31,0x36,0x34,0x31,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x31,0x2e,0x79,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f, - 0x31,0x36,0x34,0x31,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x20,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x34,0x36, + 0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20, + 0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x5f,0x31,0x32,0x34, + 0x36,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73, + 0x69,0x74,0x79,0x20,0x2d,0x20,0x6c,0x65,0x6e,0x67,0x74,0x68,0x28,0x6c,0x69,0x67, + 0x68,0x74,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69, + 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x61,0x6d,0x62,0x69, + 0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32, + 0x34,0x36,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e, + 0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, + 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f, + 0x31,0x36,0x31,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x32,0x20,0x3d, + 0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x35,0x32,0x2c, + 0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x33,0x20,0x3d,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x32,0x2e,0x73,0x75,0x6e,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x39,0x34,0x20,0x3d,0x20, + 0x73,0x6b,0x79,0x5f,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x33,0x2c,0x20, + 0x5f,0x31,0x34,0x32,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c, + 0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x38,0x39,0x20, + 0x2a,0x20,0x5f,0x31,0x39,0x39,0x34,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33, + 0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d,0x69,0x78, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x34,0x32,0x2e,0x64,0x65,0x65, + 0x70,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, + 0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, + 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, + 0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x34,0x36,0x2e,0x65,0x6d,0x69,0x73, + 0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x5f,0x31,0x34,0x32,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65, + 0x69,0x67,0x68,0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29, + 0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x5f,0x31,0x32,0x34,0x36,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69, + 0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x32, + 0x30,0x32,0x32,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63, + 0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x30,0x32,0x36,0x20,0x3d,0x20,0x6d,0x69,0x78, + 0x28,0x5f,0x32,0x30,0x32,0x32,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32, + 0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, + 0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31, + 0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x36,0x2e, + 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x32, + 0x30,0x32,0x36,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f, + 0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20, + 0x3d,0x20,0x5f,0x32,0x30,0x32,0x36,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x34, + 0x36,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20, + 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x5f,0x32,0x30,0x34,0x30,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x30,0x34,0x34, + 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x32,0x30,0x34,0x30,0x2e,0x78,0x79,0x7a, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e, + 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, + 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36, + 0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x32,0x30,0x34,0x34,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x32, + 0x30,0x34,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x32,0x30,0x34,0x34,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d, + 0x0a,0x0a,0x00, ]; trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; @@ -6640,94 +7845,97 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[1].size = 176; desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_126.skyBase"; + desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_142.skyBase"; desc.uniform_blocks[1].glsl_uniforms[1].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_126.skyTop"; + desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_142.skyTop"; desc.uniform_blocks[1].glsl_uniforms[2].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_126.sunDisk"; + desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_142.sunDisk"; desc.uniform_blocks[1].glsl_uniforms[3].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_126.horizonHalo"; + desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_142.horizonHalo"; desc.uniform_blocks[1].glsl_uniforms[4].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_126.sunHalo"; + desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_142.sunHalo"; desc.uniform_blocks[1].glsl_uniforms[5].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_126.sunLightColor"; + desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_142.sunLightColor"; desc.uniform_blocks[1].glsl_uniforms[6].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_126.sunPosition"; + desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_142.sunPosition"; desc.uniform_blocks[1].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_126.sunIntensity"; + desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_142.sunIntensity"; desc.uniform_blocks[1].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_126.skyIntensity"; + desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_142.skyIntensity"; desc.uniform_blocks[1].glsl_uniforms[9].type = .INT; desc.uniform_blocks[1].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_126.hasClouds"; + desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_142.hasClouds"; desc.uniform_blocks[1].glsl_uniforms[10].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_126.planeHeight"; + desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_142.planeHeight"; desc.uniform_blocks[1].glsl_uniforms[11].type = .INT; desc.uniform_blocks[1].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_126.animatePlaneHeight"; + desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_142.animatePlaneHeight"; desc.uniform_blocks[1].glsl_uniforms[12].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_126.waterColor"; + desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_142.waterColor"; desc.uniform_blocks[1].glsl_uniforms[13].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[13].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_126.deepColor"; + desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_142.deepColor"; desc.uniform_blocks[1].glsl_uniforms[14].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[14].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_126.time"; + desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_142.time"; desc.uniform_blocks[1].glsl_uniforms[15].type = .INT; desc.uniform_blocks[1].glsl_uniforms[15].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[15].glsl_name = "_126.hsv_lighting"; + desc.uniform_blocks[1].glsl_uniforms[15].glsl_name = "_142.hsv_lighting"; desc.uniform_blocks[3].stage = .FRAGMENT; desc.uniform_blocks[3].layout = .STD140; - desc.uniform_blocks[3].size = 128; + desc.uniform_blocks[3].size = 144; desc.uniform_blocks[3].glsl_uniforms[0].type = .MAT4; desc.uniform_blocks[3].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_934.mvp_shadow"; + desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_1246.mvp_shadow"; desc.uniform_blocks[3].glsl_uniforms[1].type = .INT; desc.uniform_blocks[3].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_934.is_reflection"; + desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_1246.is_reflection"; desc.uniform_blocks[3].glsl_uniforms[2].type = .INT; desc.uniform_blocks[3].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_934.screen_h"; + desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_1246.screen_h"; desc.uniform_blocks[3].glsl_uniforms[3].type = .INT; desc.uniform_blocks[3].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_934.screen_w"; + desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_1246.screen_w"; desc.uniform_blocks[3].glsl_uniforms[4].type = .INT; desc.uniform_blocks[3].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[4].glsl_name = "_934.rdm_enabled"; + desc.uniform_blocks[3].glsl_uniforms[4].glsl_name = "_1246.rdm_enabled"; desc.uniform_blocks[3].glsl_uniforms[5].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[5].glsl_name = "_934.ambient_intensity"; + desc.uniform_blocks[3].glsl_uniforms[5].glsl_name = "_1246.ambient_intensity"; desc.uniform_blocks[3].glsl_uniforms[6].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[6].glsl_name = "_934.emissive_scale"; + desc.uniform_blocks[3].glsl_uniforms[6].glsl_name = "_1246.emissive_scale"; desc.uniform_blocks[3].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[7].glsl_name = "_934.rdm_diff_scale"; + desc.uniform_blocks[3].glsl_uniforms[7].glsl_name = "_1246.rdm_diff_scale"; desc.uniform_blocks[3].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[8].glsl_name = "_934.rdm_spec_scale"; + desc.uniform_blocks[3].glsl_uniforms[8].glsl_name = "_1246.rdm_spec_scale"; desc.uniform_blocks[3].glsl_uniforms[9].type = .FLOAT3; desc.uniform_blocks[3].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[9].glsl_name = "_934.ambient_color"; + desc.uniform_blocks[3].glsl_uniforms[9].glsl_name = "_1246.ambient_color"; desc.uniform_blocks[3].glsl_uniforms[10].type = .INT; desc.uniform_blocks[3].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[10].glsl_name = "_934.is_preview"; + desc.uniform_blocks[3].glsl_uniforms[10].glsl_name = "_1246.is_preview"; desc.uniform_blocks[3].glsl_uniforms[11].type = .FLOAT3; desc.uniform_blocks[3].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[11].glsl_name = "_934.rdm_tint"; + desc.uniform_blocks[3].glsl_uniforms[11].glsl_name = "_1246.rdm_tint"; desc.uniform_blocks[3].glsl_uniforms[12].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[12].glsl_name = "_934.rdm_diff_saturation"; + desc.uniform_blocks[3].glsl_uniforms[12].glsl_name = "_1246.rdm_diff_saturation"; + desc.uniform_blocks[3].glsl_uniforms[13].type = .INT; + desc.uniform_blocks[3].glsl_uniforms[13].array_count = 0; + desc.uniform_blocks[3].glsl_uniforms[13].glsl_name = "_1246.sh_enabled"; desc.images[0].stage = .FRAGMENT; desc.images[0].multisampled = false; desc.images[0].image_type = ._2D; @@ -6752,6 +7960,10 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.images[5].multisampled = false; desc.images[5].image_type = ._2D; desc.images[5].sample_type = .FLOAT; + desc.images[6].stage = .FRAGMENT; + desc.images[6].multisampled = false; + desc.images[6].image_type = ._2D; + desc.images[6].sample_type = .FLOAT; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[2].stage = .FRAGMENT; @@ -6782,6 +7994,10 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.image_sampler_pairs[5].image_slot = 5; desc.image_sampler_pairs[5].sampler_slot = 3; desc.image_sampler_pairs[5].glsl_name = "brdf_lut_rdmsmp"; + desc.image_sampler_pairs[6].stage = .FRAGMENT; + desc.image_sampler_pairs[6].image_slot = 6; + desc.image_sampler_pairs[6].sampler_slot = 3; + desc.image_sampler_pairs[6].glsl_name = "sh_chunk_rdmsmp"; case .GLES3; desc.vertex_func.source = xx *vs_trile_source_glsl300es; desc.vertex_func.entry = "main"; @@ -6806,94 +8022,97 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[1].size = 176; desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_126.skyBase"; + desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_142.skyBase"; desc.uniform_blocks[1].glsl_uniforms[1].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_126.skyTop"; + desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_142.skyTop"; desc.uniform_blocks[1].glsl_uniforms[2].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_126.sunDisk"; + desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_142.sunDisk"; desc.uniform_blocks[1].glsl_uniforms[3].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_126.horizonHalo"; + desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_142.horizonHalo"; desc.uniform_blocks[1].glsl_uniforms[4].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_126.sunHalo"; + desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_142.sunHalo"; desc.uniform_blocks[1].glsl_uniforms[5].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_126.sunLightColor"; + desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_142.sunLightColor"; desc.uniform_blocks[1].glsl_uniforms[6].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_126.sunPosition"; + desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_142.sunPosition"; desc.uniform_blocks[1].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_126.sunIntensity"; + desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_142.sunIntensity"; desc.uniform_blocks[1].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_126.skyIntensity"; + desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_142.skyIntensity"; desc.uniform_blocks[1].glsl_uniforms[9].type = .INT; desc.uniform_blocks[1].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_126.hasClouds"; + desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_142.hasClouds"; desc.uniform_blocks[1].glsl_uniforms[10].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_126.planeHeight"; + desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_142.planeHeight"; desc.uniform_blocks[1].glsl_uniforms[11].type = .INT; desc.uniform_blocks[1].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_126.animatePlaneHeight"; + desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_142.animatePlaneHeight"; desc.uniform_blocks[1].glsl_uniforms[12].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_126.waterColor"; + desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_142.waterColor"; desc.uniform_blocks[1].glsl_uniforms[13].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[13].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_126.deepColor"; + desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_142.deepColor"; desc.uniform_blocks[1].glsl_uniforms[14].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[14].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_126.time"; + desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_142.time"; desc.uniform_blocks[1].glsl_uniforms[15].type = .INT; desc.uniform_blocks[1].glsl_uniforms[15].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[15].glsl_name = "_126.hsv_lighting"; + desc.uniform_blocks[1].glsl_uniforms[15].glsl_name = "_142.hsv_lighting"; desc.uniform_blocks[3].stage = .FRAGMENT; desc.uniform_blocks[3].layout = .STD140; - desc.uniform_blocks[3].size = 128; + desc.uniform_blocks[3].size = 144; desc.uniform_blocks[3].glsl_uniforms[0].type = .MAT4; desc.uniform_blocks[3].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_934.mvp_shadow"; + desc.uniform_blocks[3].glsl_uniforms[0].glsl_name = "_1246.mvp_shadow"; desc.uniform_blocks[3].glsl_uniforms[1].type = .INT; desc.uniform_blocks[3].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_934.is_reflection"; + desc.uniform_blocks[3].glsl_uniforms[1].glsl_name = "_1246.is_reflection"; desc.uniform_blocks[3].glsl_uniforms[2].type = .INT; desc.uniform_blocks[3].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_934.screen_h"; + desc.uniform_blocks[3].glsl_uniforms[2].glsl_name = "_1246.screen_h"; desc.uniform_blocks[3].glsl_uniforms[3].type = .INT; desc.uniform_blocks[3].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_934.screen_w"; + desc.uniform_blocks[3].glsl_uniforms[3].glsl_name = "_1246.screen_w"; desc.uniform_blocks[3].glsl_uniforms[4].type = .INT; desc.uniform_blocks[3].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[4].glsl_name = "_934.rdm_enabled"; + desc.uniform_blocks[3].glsl_uniforms[4].glsl_name = "_1246.rdm_enabled"; desc.uniform_blocks[3].glsl_uniforms[5].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[5].glsl_name = "_934.ambient_intensity"; + desc.uniform_blocks[3].glsl_uniforms[5].glsl_name = "_1246.ambient_intensity"; desc.uniform_blocks[3].glsl_uniforms[6].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[6].glsl_name = "_934.emissive_scale"; + desc.uniform_blocks[3].glsl_uniforms[6].glsl_name = "_1246.emissive_scale"; desc.uniform_blocks[3].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[7].glsl_name = "_934.rdm_diff_scale"; + desc.uniform_blocks[3].glsl_uniforms[7].glsl_name = "_1246.rdm_diff_scale"; desc.uniform_blocks[3].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[8].glsl_name = "_934.rdm_spec_scale"; + desc.uniform_blocks[3].glsl_uniforms[8].glsl_name = "_1246.rdm_spec_scale"; desc.uniform_blocks[3].glsl_uniforms[9].type = .FLOAT3; desc.uniform_blocks[3].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[9].glsl_name = "_934.ambient_color"; + desc.uniform_blocks[3].glsl_uniforms[9].glsl_name = "_1246.ambient_color"; desc.uniform_blocks[3].glsl_uniforms[10].type = .INT; desc.uniform_blocks[3].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[10].glsl_name = "_934.is_preview"; + desc.uniform_blocks[3].glsl_uniforms[10].glsl_name = "_1246.is_preview"; desc.uniform_blocks[3].glsl_uniforms[11].type = .FLOAT3; desc.uniform_blocks[3].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[11].glsl_name = "_934.rdm_tint"; + desc.uniform_blocks[3].glsl_uniforms[11].glsl_name = "_1246.rdm_tint"; desc.uniform_blocks[3].glsl_uniforms[12].type = .FLOAT; desc.uniform_blocks[3].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[3].glsl_uniforms[12].glsl_name = "_934.rdm_diff_saturation"; + desc.uniform_blocks[3].glsl_uniforms[12].glsl_name = "_1246.rdm_diff_saturation"; + desc.uniform_blocks[3].glsl_uniforms[13].type = .INT; + desc.uniform_blocks[3].glsl_uniforms[13].array_count = 0; + desc.uniform_blocks[3].glsl_uniforms[13].glsl_name = "_1246.sh_enabled"; desc.images[0].stage = .FRAGMENT; desc.images[0].multisampled = false; desc.images[0].image_type = ._2D; @@ -6918,6 +8137,10 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.images[5].multisampled = false; desc.images[5].image_type = ._2D; desc.images[5].sample_type = .FLOAT; + desc.images[6].stage = .FRAGMENT; + desc.images[6].multisampled = false; + desc.images[6].image_type = ._2D; + desc.images[6].sample_type = .FLOAT; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[2].stage = .FRAGMENT; @@ -6948,6 +8171,10 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.image_sampler_pairs[5].image_slot = 5; desc.image_sampler_pairs[5].sampler_slot = 3; desc.image_sampler_pairs[5].glsl_name = "brdf_lut_rdmsmp"; + desc.image_sampler_pairs[6].stage = .FRAGMENT; + desc.image_sampler_pairs[6].image_slot = 6; + desc.image_sampler_pairs[6].sampler_slot = 3; + desc.image_sampler_pairs[6].glsl_name = "sh_chunk_rdmsmp"; case .METAL_MACOS; desc.vertex_func.source = xx *vs_trile_source_metal_macos; desc.vertex_func.entry = "main0"; @@ -6967,23 +8194,23 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[1].msl_buffer_n = 0; desc.uniform_blocks[3].stage = .FRAGMENT; desc.uniform_blocks[3].layout = .STD140; - desc.uniform_blocks[3].size = 128; + desc.uniform_blocks[3].size = 144; desc.uniform_blocks[3].msl_buffer_n = 1; desc.images[0].stage = .FRAGMENT; desc.images[0].multisampled = false; desc.images[0].image_type = ._2D; desc.images[0].sample_type = .FLOAT; - desc.images[0].msl_texture_n = 2; + desc.images[0].msl_texture_n = 3; desc.images[1].stage = .FRAGMENT; desc.images[1].multisampled = false; desc.images[1].image_type = ._2D; desc.images[1].sample_type = .FLOAT; - desc.images[1].msl_texture_n = 4; + desc.images[1].msl_texture_n = 5; desc.images[2].stage = .FRAGMENT; desc.images[2].multisampled = false; desc.images[2].image_type = ._2D; desc.images[2].sample_type = .DEPTH; - desc.images[2].msl_texture_n = 3; + desc.images[2].msl_texture_n = 4; desc.images[3].stage = .FRAGMENT; desc.images[3].multisampled = false; desc.images[3].image_type = ._2D; @@ -6998,7 +8225,12 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.images[5].multisampled = false; desc.images[5].image_type = ._2D; desc.images[5].sample_type = .FLOAT; - desc.images[5].msl_texture_n = 5; + desc.images[5].msl_texture_n = 6; + desc.images[6].stage = .FRAGMENT; + desc.images[6].multisampled = false; + desc.images[6].image_type = ._2D; + desc.images[6].sample_type = .FLOAT; + desc.images[6].msl_texture_n = 2; desc.samplers[0].stage = .FRAGMENT; desc.samplers[0].sampler_type = .FILTERING; desc.samplers[0].msl_sampler_n = 0; @@ -7026,6 +8258,9 @@ trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.image_sampler_pairs[5].stage = .FRAGMENT; desc.image_sampler_pairs[5].image_slot = 5; desc.image_sampler_pairs[5].sampler_slot = 3; + desc.image_sampler_pairs[6].stage = .FRAGMENT; + desc.image_sampler_pairs[6].image_slot = 6; + desc.image_sampler_pairs[6].sampler_slot = 3; } return desc; } diff --git a/src/shaders/shader_post_process_main.glsl b/src/shaders/shader_post_process_main.glsl index 14c19d1..a1e7d7f 100644 --- a/src/shaders/shader_post_process_main.glsl +++ b/src/shaders/shader_post_process_main.glsl @@ -124,15 +124,16 @@ void main() { } } - float r = texture(sampler2D(pptex, ppsmp), distorted_texcoord + vec2(chromatic_aberration_intensity, 0.0)).r; - float g = texture(sampler2D(pptex, ppsmp), distorted_texcoord).g; - float b = texture(sampler2D(pptex, ppsmp), distorted_texcoord - vec2(chromatic_aberration_intensity, 0.0)).b; + vec3 sampled_color_hdr; + if(chromatic_aberration_intensity > 0.01) { + float r = texture(sampler2D(pptex, ppsmp), distorted_texcoord + vec2(chromatic_aberration_intensity, 0.0)).r; + float g = texture(sampler2D(pptex, ppsmp), distorted_texcoord).g; + float b = texture(sampler2D(pptex, ppsmp), distorted_texcoord - vec2(chromatic_aberration_intensity, 0.0)).b; + sampled_color_hdr = vec3(r,g,b + dof_min * 0.00000000000001); + } else { + sampled_color_hdr = texture(sampler2D(pptex, ppsmp), distorted_texcoord).rgb; + } - vec3 out_focus = texture_bicubic(dof_tex, dof_smp, distorted_texcoord, vec2(dof_tex_width, dof_tex_height)).xyz; - vec3 in_focus = vec3(r, g, b); - vec4 position = texture(sampler2D(pos_buf, dof_smp), distorted_texcoord); - float blur = smoothstep(dof_min, dof_max, abs(position.z + dof_point)); - vec3 sampled_color_hdr = mix(in_focus, out_focus, blur); vec3 bloom_color = texture(sampler2D(bloom_tex, bloom_smp), distorted_texcoord).rgb; vec3 color_hdr = (sampled_color_hdr + bloom_color * bloom_amount) * exposure; diff --git a/src/shaders/shader_trile.glsl b/src/shaders/shader_trile.glsl index 7aeb7ae..dc2ab2c 100644 --- a/src/shaders/shader_trile.glsl +++ b/src/shaders/shader_trile.glsl @@ -104,6 +104,7 @@ layout(binding=3) uniform trile_fs_params { int is_preview; vec3 rdm_tint; float rdm_diff_saturation; + int sh_enabled; }; layout(binding = 0) uniform texture2D triletex; @@ -115,6 +116,7 @@ layout(binding = 2) uniform sampler shadowsmp; layout(binding = 3) uniform texture2D rdm_lookup; layout(binding = 4) uniform texture2D rdm_atlas; layout(binding = 5) uniform texture2D brdf_lut; +layout(binding = 6) uniform texture2D sh_chunk; layout(binding = 3) uniform sampler rdmsmp; const float PI = 3.1415927; @@ -308,16 +310,81 @@ vec3 rdm_indirect_diffuse(vec3 N, vec3 diff, ivec3 local_pos) { s3 = ivec3(0, isign(delta.y), isign(delta.x)); } - vec3 p0 = rdm_sample_diff_probe(N, ivec3(mod(vec3(local_pos), 32.0)), ambient); - vec3 p1 = rdm_sample_diff_probe(N, ivec3(mod(vec3(local_pos + s1), 32.0)), ambient); - vec3 p2 = rdm_sample_diff_probe(N, ivec3(mod(vec3(local_pos + s2), 32.0)), ambient); - vec3 p3 = rdm_sample_diff_probe(N, ivec3(mod(vec3(local_pos + s1 + s2),32.0)), ambient); + vec3 p0 = rdm_sample_diff_probe(N, clamp(local_pos, ivec3(0), ivec3(31)), ambient); + vec3 p1 = rdm_sample_diff_probe(N, clamp(local_pos + s1, ivec3(0), ivec3(31)), ambient); + vec3 p2 = rdm_sample_diff_probe(N, clamp(local_pos + s2, ivec3(0), ivec3(31)), ambient); + vec3 p3 = rdm_sample_diff_probe(N, clamp(local_pos + s1 + s2,ivec3(0), ivec3(31)), ambient); return smix(smix(p0, p1, abs(delta.x)), smix(p2, p3, abs(delta.x)), abs(delta.y)); } +// ---- SH PROBE GRID ---- +// Each probe stores 27 L2 SH coefficients (9 per RGB channel), packed into +// 3 RGBA16F texels per probe along the X axis of a 192x4096 2D texture. +// Row = probe.z * 64 + probe.y, col = probe.x * 3 + k. +// Texel layout per probe (px,py,pz): +// t0: R.c0-3 t1: G.c0-3 t2: B.c0-3 +// Probe index from chunk-local world position p (0..32 range): +// ivec3(floor(p * 2.0)) clamped to [0,63] +// SH evaluation: Lambertian irradiance (L1 only), A0=PI, A1=2PI/3. + +vec3 sh_eval(ivec3 probe, vec3 N) { + int base = probe.x * 3; + int row = probe.z * 64 + probe.y; + vec4 t0 = texelFetch(sampler2D(sh_chunk, rdmsmp), ivec2(base, row), 0); + vec4 t1 = texelFetch(sampler2D(sh_chunk, rdmsmp), ivec2(base+1, row), 0); + vec4 t2 = texelFetch(sampler2D(sh_chunk, rdmsmp), ivec2(base+2, row), 0); + + float x = N.x, y = N.y, z = N.z; + float r = 0.886227*t0.x + 1.023327*(t0.w*x + t0.y*y + t0.z*z); + float g = 0.886227*t1.x + 1.023327*(t1.w*x + t1.y*y + t1.z*z); + float b = 0.886227*t2.x + 1.023327*(t2.w*x + t2.y*y + t2.z*z); + + return max(vec3(r, g, b) / PI, vec3(0.0)); +} + +// Sum of L0 irradiance across RGB — proxy for total incoming energy. +// Near-zero means the probe is buried inside solid geometry. +float sh_probe_energy(ivec3 probe) { + int base = probe.x * 3; + int row = probe.z * 64 + probe.y; + vec4 t0 = texelFetch(sampler2D(sh_chunk, rdmsmp), ivec2(base, row), 0); + vec4 t1 = texelFetch(sampler2D(sh_chunk, rdmsmp), ivec2(base+1, row), 0); + vec4 t2 = texelFetch(sampler2D(sh_chunk, rdmsmp), ivec2(base+2, row), 0); + return max(0.886227 * (t0.x + t1.x + t2.x), 0.0); +} + +// Trilinear SH evaluation with confidence weighting. +// Probes with near-zero energy (buried in geometry) are downweighted +// so they don't pull the result toward black. +vec3 sh_eval_trilinear(ivec3 p0, ivec3 p1, vec3 t, vec3 N) { + float wx[2] = float[2](1.0 - t.x, t.x); + float wy[2] = float[2](1.0 - t.y, t.y); + float wz[2] = float[2](1.0 - t.z, t.z); + + vec3 result = vec3(0.0); + float total_w = 0.0; + + for (int iz = 0; iz < 2; iz++) { + for (int iy = 0; iy < 2; iy++) { + for (int ix = 0; ix < 2; ix++) { + ivec3 probe = ivec3( + ix == 0 ? p0.x : p1.x, + iy == 0 ? p0.y : p1.y, + iz == 0 ? p0.z : p1.z + ); + float w = wx[ix] * wy[iy] * wz[iz] * sh_probe_energy(probe); + result += sh_eval(probe, N) * w; + total_w += w; + } + } + } + + return total_w > 0.001 ? result / total_w : vec3(0.0); +} + // ---- HSV ---- vec3 rgb2hsv(vec3 c) { @@ -386,7 +453,7 @@ void main() { return; } - // Evaluate direct light. + // ---- 1. VIEW / LIGHT VECTORS ---- vec3 V = normalize(cam - vpos); vec3 L = normalize(sunPosition); vec3 H = normalize(V + L); @@ -394,82 +461,98 @@ void main() { float NdotV = max(dot(N, V), 0.0); float HdotV = max(dot(H, V), 0.0); + // ---- 2. PBR TERMS ---- vec3 F0 = mix(vec3(0.04), albedo, metallic); vec3 F = fresnelSchlick(HdotV, F0); float NDF = DistributionGGX(N, H, roughness); float G = GeometrySmith(N, V, L, roughness); + vec3 kD = (1.0 - F) * (1.0 - metallic); - vec3 specular = (NDF * G * F) / (4.0 * NdotV * NdotL + 0.0001); - vec3 kD = (1.0 - F) * (1.0 - metallic); - - // Shadow lookup. + // ---- 3. DIRECT LIGHT (sun + shadow) ---- vec4 light_proj = mvp_shadow * vec4(floor(vpos * 16.0) / 16.0, 1.0); vec3 light_ndc = light_proj.xyz / light_proj.w * 0.5 + 0.5; light_ndc.z -= 0.001; float shadow = texture(sampler2DShadow(shadowtex, shadowsmp), light_ndc); - vec3 light = shadow * (kD * albedo / PI + specular) * NdotL * sunLightColor * sunIntensity; + vec3 direct_specular = (NDF * G * F) / (4.0 * NdotV * NdotL + 0.0001); + vec3 light = shadow * (kD * albedo / PI + direct_specular) * NdotL * sunLightColor * sunIntensity; - // --- Indirect lighting --- - ivec3 local = ivec3(mod(floor(trileCenter), 32.0)); + // ---- 4. INDIRECT LIGHT (RDM / SH / ambient fallback) ---- + ivec3 local = ivec3(mod(floor(trileCenter), 32.0)); vec4 atlas_rect = rdm_atlas_rect(local, roughnessInt); - float ssao = texture(sampler2D(ssaotex, rdmsmp), - gl_FragCoord.xy / vec2(float(screen_w), float(screen_h))).r; + float ssao = texture(sampler2D(ssaotex, rdmsmp), + gl_FragCoord.xy / vec2(float(screen_w), float(screen_h))).r; + vec3 emissive = albedo * emittance * emissive_scale; - vec3 emissive = albedo * emittance * emissive_scale; - - if (rdm_enabled == 1 && atlas_rect.z > 0.0) { - vec3 Frough = FresnelSchlickRoughness(NdotV, F0, roughness); + if (rdm_enabled == 1) { + vec3 Frough = FresnelSchlickRoughness(NdotV, F0, roughness); vec3 hemispherePos = trileCenter + N * 0.49; - vec3 diff = vpos - hemispherePos; + vec3 diff = vpos - hemispherePos; - // Indirect specular - if (roughness < ROUGHNESS_SPEC_CUTOFF) { + // 4a. Indirect specular. + // roughnessInt 0-1 with a baked RDM: ray-march or single-sample into the atlas. + // roughnessInt 2+ without RDM data: sky reflection. + // roughnessInt > ROUGHNESS_SPEC_CUTOFF: skip specular entirely. + if (roughnessInt <= 1 && atlas_rect.z > 0.0) { int face = rdm_face_from_normal(N); - ivec2 atlasSize = textureSize(sampler2D(rdm_atlas, rdmsmp), 0); - vec2 atlasInvSize = 1.0 / vec2(atlasSize); - int rdmSize = int(atlas_rect.z * float(atlasSize.x)) / 2; - ivec2 fOff = rdm_face_offset(atlas_rect, face, rdmSize, atlasSize); + ivec2 atlasSize = textureSize(sampler2D(rdm_atlas, rdmsmp), 0); + vec2 atlasInvSz = 1.0 / vec2(atlasSize); + int rdmSize = int(atlas_rect.z * float(atlasSize.x)) / 2; + ivec2 fOff = rdm_face_offset(atlas_rect, face, rdmSize, atlasSize); - vec3 indirectSpec; - if (roughness < ROUGHNESS_RAYMARCH_MAX) { - indirectSpec = rdm_spec_raymarch(N, -cv, diff, face, fOff, rdmSize, atlasInvSize); - } else { - indirectSpec = rdm_spec_single(N, -cv, diff, face, fOff, rdmSize, atlasInvSize); - } + vec3 indirectSpec = roughness < ROUGHNESS_RAYMARCH_MAX + ? rdm_spec_raymarch(N, -cv, diff, face, fOff, rdmSize, atlasInvSz) + : rdm_spec_single (N, -cv, diff, face, fOff, rdmSize, atlasInvSz); indirectSpec *= rdm_tint; - // Desaturate for metals to avoid double-tinting float specLum = dot(indirectSpec, vec3(0.2126, 0.7152, 0.0722)); - indirectSpec = mix(indirectSpec, vec3(specLum), metallic); + indirectSpec = mix(indirectSpec, vec3(specLum), metallic); - vec2 envBRDF = texture(sampler2D(brdf_lut, rdmsmp), vec2(NdotV, roughness)).rg; - float roughnessBell = 1.0 - 0.7 * sin(roughness * PI); - float grazingSuppress = 1.0 - 0.9 * roughness * sin(roughness * PI) * pow(1.0 - NdotV, 2.0); - float specRoughFade = 1.0 - clamp((roughness - 0.5) / 0.3, 0.0, 1.0); + vec2 envBRDF = texture(sampler2D(brdf_lut, rdmsmp), vec2(NdotV, roughness)).rg; + float roughnessBell = 1.0 - 0.7 * sin(roughness * PI); + float grazingSuppr = 1.0 - 0.9 * roughness * sin(roughness * PI) * pow(1.0 - NdotV, 2.0); + float specRoughFade = 1.0 - clamp((roughness - 0.5) / 0.3, 0.0, 1.0); light += indirectSpec * (Frough * envBRDF.x + envBRDF.y) - * rdm_spec_scale * roughnessBell * grazingSuppress * specRoughFade; + * rdm_spec_scale * roughnessBell * grazingSuppr * specRoughFade; + } else if (roughness < ROUGHNESS_SPEC_CUTOFF) { + vec3 R = reflect(-V, N); + vec2 envBRDF = texture(sampler2D(brdf_lut, rdmsmp), vec2(NdotV, roughness)).rg; + float specRoughFd = 1.0 - clamp((roughness - 0.5) / 0.3, 0.0, 1.0); + light += sky_reflect(R, sunPosition) * (Frough * envBRDF.x + envBRDF.y) + * rdm_spec_scale * specRoughFd; } - // Indirect diffuse - vec3 indirectDiff = rdm_indirect_diffuse(N, diff, local) * rdm_tint; + // 4b. Indirect diffuse. + // SH probe grid when available (trilinear, confidence-weighted). + // Falls back to RDM level-7 diffuse probes. + vec3 indirectDiff; + if (sh_enabled == 1) { + vec3 trile_origin = floor(trileCenter); + vec3 local_frag = vec3(local) + (vpos - trile_origin); + vec3 probe_f = clamp(local_frag * 2.0, vec3(0.0), vec3(63.0)); + ivec3 p0 = ivec3(floor(probe_f)); + ivec3 p1 = min(p0 + ivec3(1), ivec3(63)); + indirectDiff = sh_eval_trilinear(p0, p1, fract(probe_f), N) * rdm_tint; + } else { + indirectDiff = rdm_indirect_diffuse(N, diff, local) * rdm_tint; + } float diffLuma = dot(indirectDiff, vec3(0.2126, 0.7152, 0.0722)); - indirectDiff = mix(vec3(diffLuma), indirectDiff, rdm_diff_saturation); - vec3 kDiff = (1.0 - Frough) * (1.0 - metallic); + indirectDiff = mix(vec3(diffLuma), indirectDiff, rdm_diff_saturation); - light += kDiff * indirectDiff / PI * albedo * ssao * rdm_diff_scale; + light += (1.0 - Frough) * (1.0 - metallic) * indirectDiff / PI * albedo * ssao * rdm_diff_scale; - // Ambient floor + // 4c. Ambient floor — kicks in when indirect light is below the configured minimum. if (rdm_diff_scale < 0.001 || length(light) < ambient_intensity) light += ambient_color * max(ambient_intensity - length(light), 0.0) * albedo * ssao; } else { + // No baked data: flat ambient + sky specular. light += ambient_color * ambient_intensity * albedo * ssao; - vec3 R = reflect(-V, N); - light += F * sky_reflect(R, sunPosition) * 0.1; + light += F * sky_reflect(reflect(-V, N), sunPosition) * 0.1; } + // ---- 5. FINAL COMPOSITE ---- vec3 final_color = light + emissive; frag_color = vec4(mix(deepColor, final_color, smoothstep(0.0, planeHeight, vpos.y)), 1.0); diff --git a/src/tests/index.jai b/src/tests/index.jai index 4b31c2e..e2c863b 100644 --- a/src/tests/index.jai +++ b/src/tests/index.jai @@ -1,5 +1,6 @@ #load "utils.jai"; #load "world_test.jai"; +#load "../editor/rdm_disk_test.jai"; #load "engine_exe_tests/index.jai"; #load "exe_tests/index.jai"; diff --git a/src/world.jai b/src/world.jai index c3ad155..e593bbf 100644 --- a/src/world.jai +++ b/src/world.jai @@ -58,6 +58,10 @@ Chunk :: struct { rdm_dirty: bool; rdm_atlas_path: string; rdm_lookup_path: string; + + sh_probe_grid: sg_image; // 192x4096 RGBA16F 2D texture (2 probes/trile/axis) + sh_valid: bool; + sh_dirty: bool; #if !FLAG_RELEASE_BUILD { rdm_lookup_cpu: []float; rdm_lookup_w: s32; @@ -707,8 +711,8 @@ World_Config :: struct { sunHalo : Vector3 = .{1.0, 1.0, 1.0}; @Color sunLightColor : Vector3 = .{1.0, 1.0, 1.0}; @Color sunPosition : Vector3 = #run normalize(Vector3.{0.2, 0.3, 0.4}); - sunIntensity : float = 2.0; @Slider,0,100,0.5 - skyIntensity : float = 1.0; @Slider,0,10,0.5 + sunIntensity : float = 1.0; @Slider,0,4,0.1 + skyIntensity : float = 0.3; @Slider,0,5,0.1 hasClouds : s32 = 1; @Slider,0,1,1