From: Nikolay Borisov Subject: Re: Race condition in ext4 (was Re: 4.11-rc1 acpi stomping ext4 slabs) Date: Tue, 7 Mar 2017 22:40:53 +0200 Message-ID: References: <86f1c7af-0d74-f1fd-e1fb-cc2302824e27@gmail.com> <507b9b64-798b-d542-8169-17738c405aad@gmail.com> <1018b7d9-2566-c0f2-bef7-8274617facd6@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------0D824C5A40416C4771C8DEA7" Cc: Ted Ts'o , LKML , Ext4 Developers List , Jan Kara To: unlisted-recipients:; (no To-header on input) Return-path: In-Reply-To: <1018b7d9-2566-c0f2-bef7-8274617facd6@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-ext4.vger.kernel.org This is a multi-part message in MIME format. --------------0D824C5A40416C4771C8DEA7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 7.03.2017 16:33, Nikolay Borisov wrote: > > > On 7.03.2017 11:38, Nikolay Borisov wrote: >> >> >> On 7.03.2017 00:35, Rafael J. Wysocki wrote: >>> On Mon, Mar 6, 2017 at 9:31 PM, Nikolay Borisov >>> wrote: >>>> Hello, >>>> >>>> Booting 4.11-rc1 with kasan enabled and "slub_debug=F" produces the following errors: >>>> >>>> [ 7.070797] ================================================================== >>>> [ 7.071724] BUG: KASAN: slab-out-of-bounds in filldir+0xc3/0x160 at addr ffff88006bc2b0ae >>>> [ 7.071724] Read of size 20 by task systemd/1 >>>> [ 7.071724] CPU: 1 PID: 1 Comm: systemd Not tainted 4.11.0-rc1-nbor #150 >>>> [ 7.071724] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 >>>> [ 7.071724] Call Trace: >>>> [ 7.071724] dump_stack+0x85/0xc9 >>>> [ 7.071724] kasan_object_err+0x2c/0x90 >>>> [ 7.071724] kasan_report+0x285/0x510 >>>> [ 7.071724] check_memory_region+0x137/0x160 >>>> [ 7.071724] kasan_check_read+0x11/0x20 >>>> [ 7.071724] filldir+0xc3/0x160 >>>> [ 7.071724] call_filldir+0x88/0x140 >>>> [ 7.071724] ext4_readdir+0x757/0x920 >>>> [ 7.071724] ? iterate_dir+0x49/0x190 >>>> [ 7.071724] iterate_dir+0x7d/0x190 >>>> [ 7.071724] ? entry_SYSCALL_64_fastpath+0x5/0xc6 >>>> [ 7.071724] SyS_getdents+0xac/0x170 >>>> [ 7.071724] ? filldir64+0x170/0x170 >>>> [ 7.071724] entry_SYSCALL_64_fastpath+0x23/0xc6 >>>> [ 7.071724] RIP: 0033:0x7fa37ca2dd3b >>>> [ 7.071724] RSP: 002b:00007ffc63daf400 EFLAGS: 00000206 ORIG_RAX: 000000000000004e >>>> [ 7.071724] RAX: ffffffffffffffda RBX: 0000000000000046 RCX: 00007fa37ca2dd3b >>>> [ 7.071724] RDX: 0000000000008000 RSI: 0000560b369e4a10 RDI: 0000000000000004 >>>> [ 7.071724] RBP: 00007fa37cd29b20 R08: 00007fa37cd29bd8 R09: 0000000000000000 >>>> [ 7.071724] R10: 000000000000008f R11: 0000000000000206 R12: 0000000000008041 >>>> [ 7.071724] R13: 00007fa37cd29b78 R14: 000000000000270f R15: 00007fa37cd29b78 >>>> [ 7.071724] Object at ffff88006bc2b080, in cache kmalloc-96 size: 96 >>>> [ 7.071724] Allocated: >>>> [ 7.071724] PID = 1 >>>> [ 7.071724] save_stack_trace+0x1b/0x20 >>>> [ 7.071724] kasan_kmalloc.part.4+0x64/0xf0 >>>> [ 7.071724] kasan_kmalloc+0x85/0xb0 >>>> [ 7.071724] __kmalloc+0x12b/0x320 >>>> [ 7.071724] ext4_htree_store_dirent+0x3e/0x120 >>>> [ 7.071724] htree_dirblock_to_tree+0xb9/0x1a0 >>>> [ 7.071724] ext4_htree_fill_tree+0xa3/0x310 >>>> [ 7.071724] ext4_readdir+0x6a9/0x920 >>>> [ 7.071724] iterate_dir+0x7d/0x190 >>>> [ 7.071724] SyS_getdents+0xac/0x170 >>>> [ 7.071724] entry_SYSCALL_64_fastpath+0x23/0xc6 >>>> [ 7.071724] Freed: >>>> [ 7.071724] PID = 1 >>>> [ 7.071724] save_stack_trace+0x1b/0x20 >>>> [ 7.071724] kasan_slab_free+0xbe/0x190 >>>> [ 7.071724] kfree+0xff/0x2f0 >>>> [ 7.071724] acpi_ut_evaluate_object+0x18e/0x19d >>>> [ 7.071724] acpi_ut_execute_STA+0x26/0x53 >>>> [ 7.071724] acpi_ns_get_device_callback+0x73/0x163 >>>> [ 7.071724] acpi_ns_walk_namespace+0xc0/0x17a >>>> [ 7.071724] acpi_get_devices+0x66/0x7d >>>> [ 7.071724] pnpacpi_init+0x52/0x74 >>>> [ 7.071724] do_one_initcall+0x51/0x1b0 >>>> [ 7.071724] kernel_init_freeable+0x20a/0x2a1 >>>> [ 7.071724] kernel_init+0xe/0x100 >>>> [ 7.071724] ret_from_fork+0x31/0x40 >>>> [ 7.071724] Memory state around the buggy address: >>>> [ 7.071724] ffff88006bc2af80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc >>>> [ 7.071724] ffff88006bc2b000: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc >>>> [ 7.071724] >ffff88006bc2b080: 00 00 00 00 00 00 00 00 05 fc fc fc fc fc fc fc >>>> [ 7.071724] ^ >>>> [ 7.071724] ffff88006bc2b100: 00 00 00 00 00 00 00 00 00 04 fc fc fc fc fc fc >>>> [ 7.071724] ffff88006bc2b180: 00 00 00 00 00 00 00 00 00 00 fc fc fc fc fc fc >>>> >>>> Not killing the VM instantly produces a continuous stream of kasan errors. Most of them >>>> are identical to the one above, however there was one which was different: >>>> >>>> [ 5.846193] ================================================================== >>>> [ 5.846787] BUG: KASAN: slab-out-of-bounds in filldir+0xc3/0x160 at addr ffff88006c783eae >>>> [ 5.847177] Read of size 22 by task systemd/1 >>>> [ 5.847177] CPU: 3 PID: 1 Comm: systemd Tainted: G B 4.11.0-rc1-nbor #150 >>>> [ 5.847177] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 >>>> [ 5.847177] Call Trace: >>>> [ 5.847177] dump_stack+0x85/0xc9 >>>> [ 5.847177] kasan_object_err+0x2c/0x90 >>>> [ 5.847177] kasan_report+0x285/0x510 >>>> [ 5.847177] check_memory_region+0x137/0x160 >>>> [ 5.847177] kasan_check_read+0x11/0x20 >>>> [ 5.847177] filldir+0xc3/0x160 >>>> [ 5.847177] call_filldir+0x88/0x140 >>>> [ 5.847177] ext4_readdir+0x757/0x920 >>>> [ 5.847177] ? iterate_dir+0x49/0x190 >>>> [ 5.847177] iterate_dir+0x7d/0x190 >>>> [ 5.847177] ? entry_SYSCALL_64_fastpath+0x5/0xc6 >>>> [ 5.847177] SyS_getdents+0xac/0x170 >>>> [ 5.847177] ? filldir64+0x170/0x170 >>>> [ 5.847177] entry_SYSCALL_64_fastpath+0x23/0xc6 >>>> [ 5.847177] RIP: 0033:0x7f9dbd4e1d3b >>>> [ 5.847177] RSP: 002b:00007ffee6b51a60 EFLAGS: 00000206 ORIG_RAX: 000000000000004e >>>> [ 5.847177] RAX: ffffffffffffffda RBX: 0000000000000046 RCX: 00007f9dbd4e1d3b >>>> [ 5.847177] RDX: 0000000000008000 RSI: 000055c046802a10 RDI: 0000000000000004 >>>> [ 5.847177] RBP: 00007f9dbd7ddb20 R08: 00007f9dbd7ddbd8 R09: 0000000000000000 >>>> [ 5.847177] R10: 000000000000008f R11: 0000000000000206 R12: 0000000000008041 >>>> [ 5.847177] R13: 00007f9dbd7ddb78 R14: 000000000000270f R15: 00007f9dbd7ddb78 >>>> [ 5.847177] Object at ffff88006c783e80, in cache kmalloc-96 size: 96 >>>> [ 5.847177] Allocated: >>>> [ 5.847177] PID = 1 >>>> [ 5.847177] save_stack_trace+0x1b/0x20 >>>> [ 5.847177] kasan_kmalloc.part.4+0x64/0xf0 >>>> [ 5.847177] kasan_kmalloc+0x85/0xb0 >>>> [ 5.847177] __kmalloc+0x12b/0x320 >>>> [ 5.847177] ext4_htree_store_dirent+0x3e/0x120 >>>> [ 5.847177] htree_dirblock_to_tree+0xb9/0x1a0 >>>> [ 5.847177] ext4_htree_fill_tree+0xa3/0x310 >>>> [ 5.847177] ext4_readdir+0x6a9/0x920 >>>> [ 5.847177] iterate_dir+0x7d/0x190 >>>> [ 5.847177] SyS_getdents+0xac/0x170 >>>> [ 5.847177] entry_SYSCALL_64_fastpath+0x23/0xc6 >>>> [ 5.847177] Freed: >>>> [ 5.847177] PID = 1 >>>> [ 5.847177] save_stack_trace+0x1b/0x20 >>>> [ 5.847177] kasan_slab_free+0xbe/0x190 >>>> [ 5.847177] kfree+0xff/0x2f0 >>>> [ 5.847177] krealloc+0xac/0xc0 >>>> [ 5.847177] create_trace_option_files+0x127/0x270 >>>> [ 5.847177] __update_tracer_options+0x2c/0x40 >>>> [ 5.847177] tracer_init_tracefs+0x1a4/0x1b7 >>>> [ 5.847177] do_one_initcall+0x51/0x1b0 >>>> [ 5.847177] kernel_init_freeable+0x20a/0x2a1 >>>> [ 5.847177] kernel_init+0xe/0x100 >>>> [ 5.847177] ret_from_fork+0x31/0x40 >>>> [ 5.847177] Memory state around the buggy address: >>>> >>>> So the free path is different. >>>> >>>> On a different boot with slab_debug options omitted e.g. no debugging enabled for SLUB >>>> I got: >>>> >>>> [ 5.586620] ================================================================== >>>> [ 5.587445] BUG: KASAN: slab-out-of-bounds in filldir+0xc3/0x160 at addr ffff880000141aae >>>> [ 5.587584] Read of size 20 by task systemd/1 >>>> [ 5.587584] CPU: 0 PID: 1 Comm: systemd Not tainted 4.11.0-rc1-nbor #148 >>>> [ 5.587584] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 >>>> [ 5.587584] Call Trace: >>>> [ 5.587584] dump_stack+0x85/0xc9 >>>> [ 5.587584] kasan_object_err+0x2c/0x90 >>>> [ 5.587584] kasan_report+0x285/0x510 >>>> [ 5.587584] check_memory_region+0x137/0x160 >>>> [ 5.587584] kasan_check_read+0x11/0x20 >>>> [ 5.587584] filldir+0xc3/0x160 >>>> [ 5.587584] call_filldir+0x88/0x140 >>>> [ 5.587584] ext4_readdir+0x757/0x920 >>>> [ 5.587584] ? iterate_dir+0x49/0x190 >>>> [ 5.587584] iterate_dir+0x7d/0x190 >>>> [ 5.587584] ? entry_SYSCALL_64_fastpath+0x5/0xc6 >>>> [ 5.587584] SyS_getdents+0xac/0x170 >>>> [ 5.587584] ? filldir64+0x170/0x170 >>>> [ 5.587584] entry_SYSCALL_64_fastpath+0x23/0xc6 >>>> [ 5.587584] RIP: 0033:0x7f71af785d3b >>>> [ 5.587584] RSP: 002b:00007ffeeda83390 EFLAGS: 00000206 ORIG_RAX: 000000000000004e >>>> [ 5.587584] RAX: ffffffffffffffda RBX: 0000000000000046 RCX: 00007f71af785d3b >>>> [ 5.587584] RDX: 0000000000008000 RSI: 0000561e6483ba10 RDI: 0000000000000004 >>>> [ 5.587584] RBP: 00007f71afa81b20 R08: 00007f71afa81bd8 R09: 0000000000000000 >>>> [ 5.587584] R10: 000000000000008f R11: 0000000000000206 R12: 0000000000008041 >>>> [ 5.587584] R13: 00007f71afa81b78 R14: 000000000000270f R15: 00007f71afa81b78 >>>> [ 5.587584] Object at ffff880000141a80, in cache kmalloc-96 size: 96 >>>> [ 5.587584] Allocated: >>>> [ 5.587584] PID = 1 >>>> [ 5.587584] save_stack_trace+0x1b/0x20 >>>> [ 5.587584] kasan_kmalloc.part.4+0x64/0xf0 >>>> [ 5.587584] kasan_kmalloc+0x85/0xb0 >>>> [ 5.587584] __kmalloc+0x12b/0x320 >>>> [ 5.587584] ext4_htree_store_dirent+0x3e/0x120 >>>> [ 5.587584] htree_dirblock_to_tree+0xb9/0x1a0 >>>> [ 5.587584] ext4_htree_fill_tree+0xa3/0x310 >>>> [ 5.587584] ext4_readdir+0x6a9/0x920 >>>> [ 5.587584] iterate_dir+0x7d/0x190 >>>> [ 5.587584] SyS_getdents+0xac/0x170 >>>> [ 5.587584] entry_SYSCALL_64_fastpath+0x23/0xc6 >>>> [ 5.587584] Freed: >>>> [ 5.587584] PID = 1 >>>> [ 5.587584] save_stack_trace+0x1b/0x20 >>>> [ 5.587584] kasan_slab_free+0xbe/0x190 >>>> [ 5.587584] kfree+0xff/0x2f0 >>>> [ 5.587584] acpi_evaluate_object+0x26c/0x27e >>>> [ 5.587584] acpi_evaluate_integer+0x34/0x53 >>>> [ 5.587584] acpi_get_node+0x2b/0x51 >>>> [ 5.587584] pci_acpi_scan_root+0x2e/0x1d0 >>>> [ 5.587584] acpi_pci_root_add+0x264/0x34b >>>> [ 5.587584] acpi_bus_attach+0xb6/0x15c >>>> [ 5.587584] acpi_bus_attach+0x123/0x15c >>>> [ 5.587584] acpi_bus_attach+0x123/0x15c >>>> [ 5.587584] acpi_bus_scan+0x5b/0x6b >>>> [ 5.587584] acpi_scan_init+0xcd/0x211 >>>> [ 5.587584] acpi_init+0x2e0/0x309 >>>> [ 5.587584] do_one_initcall+0x51/0x1b0 >>>> [ 5.587584] kernel_init_freeable+0x20a/0x2a1 >>>> [ 5.587584] kernel_init+0xe/0x100 >>>> [ 5.587584] ret_from_fork+0x31/0x40 >>>> [ 5.587584] Memory state around the buggy address: >>>> [ 5.587584] ffff880000141980: 00 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc >>>> [ 5.587584] ffff880000141a00: 00 00 00 00 00 00 00 00 00 03 fc fc fc fc fc fc >>>> [ 5.587584] >ffff880000141a80: 00 00 00 00 00 00 00 00 05 fc fc fc fc fc fc fc >>>> [ 5.587584] ^ >>>> [ 5.587584] ffff880000141b00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc >>>> [ 5.587584] ffff880000141b80: 00 00 00 00 00 00 00 00 00 00 00 fc fc fc fc fc >>>> >>>> I'm not sure if this is an ext4 or ACPI problem. >>> >>> If this is a new bug, you can look for the first bad commit using git-bisect. >> >> So apparently this is an ext4 bug, since I managed to bisected it all the way to 1771c6e1a567ea0 >> ("x86/kasan: instrument user memory access API"). So the first bad kernel is 4.7 and ACPI is not to blame . >> >> [EXT4 people might want to start looking from here] >> >> There the splat looks like : >> >> [ 17.003256] ================================================================== >> [ 17.004185] BUG: KASAN: slab-out-of-bounds in filldir+0xc8/0x170 at addr ffff88006a22560e >> [ 17.005177] Read of size 20 by task systemd/1 >> [ 17.005708] ============================================================================= >> [ 17.006688] BUG kmalloc-96 (Not tainted): kasan: bad access detected >> [ 17.007464] ----------------------------------------------------------------------------- >> [ 17.007464] >> [ 17.008584] Disabling lock debugging due to kernel taint >> [ 17.009202] INFO: Allocated in ext4_htree_store_dirent+0x3e/0x120 age=0 cpu=2 pid=1 >> [ 17.010080] ___slab_alloc+0x636/0x6a0 >> [ 17.010514] __slab_alloc+0x4f/0x86 >> [ 17.010927] __kmalloc+0x27a/0x340 >> [ 17.011318] ext4_htree_store_dirent+0x3e/0x120 >> [ 17.011796] htree_dirblock_to_tree+0x16a/0x190 >> [ 17.012270] ext4_htree_fill_tree+0xaa/0x310 >> [ 17.012735] ext4_readdir+0x698/0x950 >> [ 17.013117] iterate_dir+0x7d/0x190 >> [ 17.013485] SyS_getdents+0x91/0x120 >> [ 17.013873] entry_SYSCALL_64_fastpath+0x23/0xc1 >> [ 17.014360] INFO: Freed in ext4_ext_map_blocks+0x7f9/0x23e0 age=1 cpu=2 pid=1 >> [ 17.015110] __slab_free+0x31b/0x440 >> [ 17.015489] kfree+0x27f/0x2d0 >> [ 17.015820] ext4_ext_map_blocks+0x7f9/0x23e0 >> [ 17.016283] ext4_map_blocks+0x3b4/0x5b0 >> [ 17.016699] ext4_getblk+0x54/0x1a0 >> [ 17.017066] ext4_bread+0x13/0x90 >> [ 17.017412] __ext4_read_dirblock+0x3f/0x380 >> [ 17.017861] htree_dirblock_to_tree+0x48/0x190 >> [ 17.018324] ext4_htree_fill_tree+0xaa/0x310 >> [ 17.018776] ext4_readdir+0x698/0x950 >> [ 17.019176] iterate_dir+0x7d/0x190 >> [ 17.019551] SyS_getdents+0x91/0x120 >> [ 17.019932] entry_SYSCALL_64_fastpath+0x23/0xc1 >> [ 17.020431] INFO: Slab 0xffffea0001a88900 objects=20 used=17 fp=0xffff88006a224e10 flags=0x4080 >> [ 17.021348] INFO: Object 0xffff88006a2255e0 @offset=5600 fp=0x45b282a2484c60d4 >> [ 17.021348] >> [ 17.022264] Bytes b4 ffff88006a2255d0: 02 00 00 00 01 00 00 00 c9 ac fb ff 00 00 00 00 ................ >> [ 17.023272] Object ffff88006a2255e0: d4 60 4c 48 a2 82 b2 45 18 8a 82 6a 00 88 ff ff .`LH...E...j.... >> [ 17.024252] Object ffff88006a2255f0: 38 51 22 6a 00 88 ff ff 88 8b 82 6a 00 88 ff ff 8Q"j.......j.... >> [ 17.025166] Object ffff88006a225600: 00 00 00 00 00 00 00 00 28 03 08 00 14 01 66 62 ........(.....fb >> [ 17.026129] Object ffff88006a225610: 64 65 76 2d 62 6c 61 63 6b 6c 69 73 74 2e 63 6f dev-blacklist.co >> [ 17.027156] Object ffff88006a225620: 6e 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nf.............. >> [ 17.028202] Object ffff88006a225630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ >> [ 17.029186] CPU: 2 PID: 1 Comm: systemd Tainted: G B 4.7.0-nbor #171 >> [ 17.029972] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 >> [ 17.030959] 0000000000000000 ffff88006cd97c58 ffffffff8146bd4c ffff8800000946c0 >> [ 17.031776] ffff88006a2255e0 ffff88006cd97c88 ffffffff81198d96 ffff8800000946c0 >> [ 17.032597] ffffea0001a88900 ffff88006a2255e0 0000000000000000 ffff88006cd97cb0 >> [ 17.033425] Call Trace: >> [ 17.033700] [] dump_stack+0x85/0xc9 >> [ 17.034246] [] print_trailer+0x116/0x190 >> [ 17.034840] [] object_err+0x41/0x50 >> [ 17.035390] [] kasan_report+0x282/0x530 >> [ 17.035966] [] check_memory_region+0x137/0x160 >> [ 17.036594] [] kasan_check_read+0x11/0x20 >> [ 17.037181] [] filldir+0xc8/0x170 <--- if (copy_to_user(dirent->d_name, name, namlen)) >> [ 17.037687] [] call_filldir+0x88/0x140 >> [ 17.038244] [] ext4_readdir+0x714/0x950 >> [ 17.038813] [] ? iterate_dir+0x49/0x190 >> [ 17.039399] [] iterate_dir+0x7d/0x190 >> [ 17.039909] [] SyS_getdents+0x91/0x120 >> [ 17.040428] [] ? filldir64+0x180/0x180 >> [ 17.040977] [] entry_SYSCALL_64_fastpath+0x23/0xc1 >> [ 17.041652] Memory state around the buggy address: >> [ 17.042136] ffff88006a225500: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc >> [ 17.042924] ffff88006a225580: fc fc fc fc fc fc fc fc fc fc fc fc 00 00 00 00 >> [ 17.043652] >ffff88006a225600: 00 00 00 00 05 fc fc fc fc fc fc fc fc fc fc fc >> [ 17.044382] ^ >> [ 17.044814] ffff88006a225680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc >> [ 17.045559] ffff88006a225700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc 00 00 >> [ 17.046308] ================================================================== >> >> >> So the buffer containing the dentry name as received from ext4_htree_fill is actually >> freed. >> > > So this is some sort of a race condition. The problem disappeared as > soon as I added the following line: > pr_info("%s:freeing %p\n", __func__, path); > right after the ext4_ext_drop_refs(path); call in out2: label. So this is wrong, the reason why the issues seemed fix is because I switched my compiler to version 5.4.0. So this manifests only if I'm using gcc 4.7.4. With the pr_info added here is the output of a boot. So there are multiple invocations of ext4_ext_map_blocks and the freeing, including with the address being used in subsequent kasan reports : ffff88006ae8fdb0 Another interesting thing is the other freed object in rcu_process_callbacks. --------------0D824C5A40416C4771C8DEA7 Content-Type: text/plain; charset=UTF-8; name="kasan_symbolized2.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kasan_symbolized2.txt" WyAgIDE2LjY5NzM2NV0gZXh0NF9leHRfbWFwX2Jsb2NrczpmcmVlaW5nIGZmZmY4ODAwNmE5 NzhlMTAgPHJlcGVhdGVkIG11bHRpcGxlIHRpbWVzPgpbICAgMTYuNzYyMTU2XSBleHQ0X2V4 dF9tYXBfYmxvY2tzOmZyZWVpbmcgZmZmZjg4MDA2YTk3OGZhMApbICAgMTYuNzgwMjQ1XSBl eHQ0X2V4dF9tYXBfYmxvY2tzOmZyZWVpbmcgZmZmZjg4MDA2YWU4ZmRiMCA8cmVwZWF0ZWQg bXVsdGlwbGUgdGltZXM+Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpCVUc6IEtBU0FOOiBzbGFiLW91dC1vZi1i b3VuZHMgaW4gZmlsbGRpcisweGM4LzB4MTcwIGF0IGFkZHIgZmZmZjg4MDA2YWU4ZmRkZQpS ZWFkIG9mIHNpemUgMjAgYnkgdGFzayBzeXN0ZW1kLzEKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KQlVHIGttYWxsb2MtOTYgKE5vdCB0YWludGVkKToga2FzYW46IGJhZCBhY2Nlc3MgZGV0 ZWN0ZWQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkRpc2FibGluZyBsb2NrIGRlYnVnZ2lu ZyBkdWUgdG8ga2VybmVsIHRhaW50CklORk86IEFsbG9jYXRlZCBpbiBleHQ0X2h0cmVlX3N0 b3JlX2RpcmVudCsweDNlLzB4MTIwIGFnZT0zIGNwdT0wIHBpZD0xCls8ICAgICAgICBub25l ICAgICAgICA+XSBfX19zbGFiX2FsbG9jKzB4NjM2LzB4NmEwIG1tL3NsdWIuYzoyNDQ2Cls8 ICAgICAgICBub25lICAgICAgICA+XSBfX3NsYWJfYWxsb2MrMHg0Zi8weDg2IG1tL3NsdWIu YzoyNDc1Cls8ICAgICBpbmxpbmUgICAgID5dIHNsYWJfYWxsb2Nfbm9kZSBtbS9zbHViLmM6 MjUzOApbPCAgICAgaW5saW5lICAgICA+XSBzbGFiX2FsbG9jIG1tL3NsdWIuYzoyNTgwCls8 ICAgICAgICBub25lICAgICAgICA+XSBfX2ttYWxsb2MrMHgyN2EvMHgzNDAgbW0vc2x1Yi5j OjM1NjEKWzwgICAgIGlubGluZSAgICAgPl0ga21hbGxvYyBpbmNsdWRlL2xpbnV4L3NsYWIu aDo0ODMKWzwgICAgIGlubGluZSAgICAgPl0ga3phbGxvYyBpbmNsdWRlL2xpbnV4L3NsYWIu aDo2MjIKWzwgICAgICAgIG5vbmUgICAgICAgID5dIGV4dDRfaHRyZWVfc3RvcmVfZGlyZW50 KzB4M2UvMHgxMjAgZnMvZXh0NC9kaXIuYzo0NDcKWzwgICAgICAgIG5vbmUgICAgICAgID5d IGh0cmVlX2RpcmJsb2NrX3RvX3RyZWUrMHgxNmEvMHgxOTAgZnMvZXh0NC9uYW1laS5jOjEw MDEKWzwgICAgICAgIG5vbmUgICAgICAgID5dIGV4dDRfaHRyZWVfZmlsbF90cmVlKzB4YWEv MHgzMTAgZnMvZXh0NC9uYW1laS5jOjEwNzUKWzwgICAgIGlubGluZSAgICAgPl0gZXh0NF9k eF9yZWFkZGlyIGZzL2V4dDQvZGlyLmM6NTcxCls8ICAgICAgICBub25lICAgICAgICA+XSBl eHQ0X3JlYWRkaXIrMHg2OTgvMHg5NTAgZnMvZXh0NC9kaXIuYzoxMjEKWzwgICAgICAgIG5v bmUgICAgICAgID5dIGl0ZXJhdGVfZGlyKzB4N2QvMHgxOTAgZnMvcmVhZGRpci5jOjUwCls8 ICAgICBpbmxpbmUgICAgID5dIFNZU0NfZ2V0ZGVudHMgZnMvcmVhZGRpci5jOjIzMApbPCAg ICAgICAgbm9uZSAgICAgICAgPl0gU3lTX2dldGRlbnRzKzB4OTEvMHgxMjAgZnMvcmVhZGRp ci5jOjIxMgpbPCAgICAgICAgbm9uZSAgICAgICAgPl0gZW50cnlfU1lTQ0FMTF82NF9mYXN0 cGF0aCsweDIzLzB4YzEgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzoyMDcKSU5GTzogRnJl ZWQgaW4gZXh0NF9leHRfbWFwX2Jsb2NrcysweDQzNC8weDIwMjAgYWdlPTYgY3B1PTAgcGlk PTEKWzwgICAgICAgIG5vbmUgICAgICAgID5dIF9fc2xhYl9mcmVlKzB4MzFiLzB4NDgwIG1t L3NsdWIuYzoyNjU3Cls8ICAgICBpbmxpbmUgICAgID5dIHNsYWJfZnJlZSBtbS9zbHViLmM6 MjgxMApbPCAgICAgICAgbm9uZSAgICAgICAgPl0ga2ZyZWUrMHgyN2YvMHgyZDAgbW0vc2x1 Yi5jOjM2NjIKWzwgICAgICAgIG5vbmUgICAgICAgID5dIGV4dDRfZXh0X21hcF9ibG9ja3Mr MHg0MzQvMHgyMDIwIGZzL2V4dDQvZXh0ZW50cy5jOjQ2MjAKWzwgICAgICAgIG5vbmUgICAg ICAgID5dIGV4dDRfbWFwX2Jsb2NrcysweDNiNC8weDViMCBmcy9leHQ0L2lub2RlLmM6NTI5 Cls8ICAgICAgICBub25lICAgICAgICA+XSBleHQ0X2dldGJsaysweDU0LzB4MWEwIGZzL2V4 dDQvaW5vZGUuYzo5MjkKWzwgICAgICAgIG5vbmUgICAgICAgID5dIGV4dDRfYnJlYWQrMHgx My8weDkwIGZzL2V4dDQvaW5vZGUuYzo5NzkKWzwgICAgICAgIG5vbmUgICAgICAgID5dIF9f ZXh0NF9yZWFkX2RpcmJsb2NrKzB4M2YvMHgzODAgZnMvZXh0NC9uYW1laS5jOjk5Cls8ICAg ICAgICBub25lICAgICAgICA+XSBodHJlZV9kaXJibG9ja190b190cmVlKzB4NDgvMHgxOTAg ZnMvZXh0NC9uYW1laS5jOjk1OQpbPCAgICAgICAgbm9uZSAgICAgICAgPl0gZXh0NF9odHJl ZV9maWxsX3RyZWUrMHhhYS8weDMxMCBmcy9leHQ0L25hbWVpLmM6MTA3NQpbPCAgICAgaW5s aW5lICAgICA+XSBleHQ0X2R4X3JlYWRkaXIgZnMvZXh0NC9kaXIuYzo1NzEKWzwgICAgICAg IG5vbmUgICAgICAgID5dIGV4dDRfcmVhZGRpcisweDY5OC8weDk1MCBmcy9leHQ0L2Rpci5j OjEyMQpbPCAgICAgICAgbm9uZSAgICAgICAgPl0gaXRlcmF0ZV9kaXIrMHg3ZC8weDE5MCBm cy9yZWFkZGlyLmM6NTAKWzwgICAgIGlubGluZSAgICAgPl0gU1lTQ19nZXRkZW50cyBmcy9y ZWFkZGlyLmM6MjMwCls8ICAgICAgICBub25lICAgICAgICA+XSBTeVNfZ2V0ZGVudHMrMHg5 MS8weDEyMCBmcy9yZWFkZGlyLmM6MjEyCls8ICAgICAgICBub25lICAgICAgICA+XSBlbnRy eV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MjMvMHhjMSBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82 NC5TOjIwNwpJTkZPOiBTbGFiIDB4ZmZmZmVhMDAwMWFiYTM4MCBvYmplY3RzPTIwIHVzZWQ9 MjAgZnA9MHggICAgICAgICAgKG51bGwpIGZsYWdzPTB4NDA4MApJTkZPOiBPYmplY3QgMHhm ZmZmODgwMDZhZThmZGIwIEBvZmZzZXQ9NzYwMCBmcD0weDQ1YjI4MmEyNDg0YzYwZDQKCkJ5 dGVzIGI0IGZmZmY4ODAwNmFlOGZkYTA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uCk9iamVjdCBmZmZmODgwMDZh ZThmZGIwOiBkNCA2MCA0YyA0OCBhMiA4MiBiMiA0NSAzOCBiZSA4NCA2YSAwMCA4OCBmZiBm ZiAgLmBMSC4uLkU4Li5qLi4uLgpPYmplY3QgZmZmZjg4MDA2YWU4ZmRjMDogMDggZjkgZTgg NmEgMDAgODggZmYgZmYgYzggYmMgODQgNmEgMDAgODggZmYgZmYgIC4uLmouLi4uLi4uai4u Li4KT2JqZWN0IGZmZmY4ODAwNmFlOGZkZDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDI4 IDAzIDA4IDAwIDE0IDAxIDY2IDYyICAuLi4uLi4uLiguLi4uLmZiCk9iamVjdCBmZmZmODgw MDZhZThmZGUwOiA2NCA2NSA3NiAyZCA2MiA2YyA2MSA2MyA2YiA2YyA2OSA3MyA3NCAyZSA2 MyA2ZiAgZGV2LWJsYWNrbGlzdC5jbwpPYmplY3QgZmZmZjg4MDA2YWU4ZmRmMDogNmUgNjYg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIG5mLi4uLi4uLi4u Li4uLi4KT2JqZWN0IGZmZmY4ODAwNmFlOGZlMDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uCkNQVTogMCBQSUQ6 IDEgQ29tbTogc3lzdGVtZCBUYWludGVkOiBHICAgIEIgICAgICAgICAgIDQuNy4wLW5ib3Ig IzE4OQpIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAx OTk2KSwgQklPUyBVYnVudHUtMS44LjItMXVidW50dTEgMDQvMDEvMjAxNAogMDAwMDAwMDAw MDAwMDAwMCBmZmZmODgwMDZjZDk3YzU4IGZmZmZmZmZmODE0NzdkZmMgZmZmZjg4MDAwMDA5 NDZjMAogZmZmZjg4MDA2YWU4ZmRiMCBmZmZmODgwMDZjZDk3Yzg4IGZmZmZmZmZmODExOWYw ZTYgZmZmZjg4MDAwMDA5NDZjMAogZmZmZmVhMDAwMWFiYTM4MCBmZmZmODgwMDZhZThmZGIw IDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4MDA2Y2Q5N2NiMApDYWxsIFRyYWNlOgogWzwgICAg IGlubGluZSAgICAgPl0gX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTUKIFs8ZmZm ZmZmZmY4MTQ3N2RmYz5dIGR1bXBfc3RhY2srMHg4NS8weGM5IGxpYi9kdW1wX3N0YWNrLmM6 NTEKIFs8ZmZmZmZmZmY4MTE5ZjBlNj5dIHByaW50X3RyYWlsZXIrMHgxMTYvMHgxOTAgbW0v c2x1Yi5jOjY2NwogWzxmZmZmZmZmZjgxMTlmNjExPl0gb2JqZWN0X2VycisweDQxLzB4NTAg bW0vc2x1Yi5jOjY3NAogWzwgICAgIGlubGluZSAgICAgPl0gcHJpbnRfYWRkcmVzc19kZXNj cmlwdGlvbiBtbS9rYXNhbi9yZXBvcnQuYzoxODAKIFs8ICAgICBpbmxpbmUgICAgID5dIGth c2FuX3JlcG9ydF9lcnJvciBtbS9rYXNhbi9yZXBvcnQuYzoyNzYKIFs8ZmZmZmZmZmY4MTFh NmY4Mj5dIGthc2FuX3JlcG9ydCsweDI4Mi8weDUzMCBtbS9rYXNhbi9yZXBvcnQuYzoyOTgK IFs8ICAgICBpbmxpbmUgICAgID5dIGNoZWNrX21lbW9yeV9yZWdpb25faW5saW5lIG1tL2th c2FuL2thc2FuLmM6MjkyCiBbPGZmZmZmZmZmODExYTY0ZTc+XSBjaGVja19tZW1vcnlfcmVn aW9uKzB4MTM3LzB4MTYwIG1tL2thc2FuL2thc2FuLmM6Mjk5CiBbPGZmZmZmZmZmODExYTY1 ODE+XSBrYXNhbl9jaGVja19yZWFkKzB4MTEvMHgyMCBtbS9rYXNhbi9rYXNhbi5jOjMwNAog WzwgICAgIGlubGluZSAgICAgPl0gY29weV90b191c2VyIC4vYXJjaC94ODYvaW5jbHVkZS9h c20vdWFjY2Vzcy5oOjc2MAogWzxmZmZmZmZmZjgxMWQzYTQ4Pl0gZmlsbGRpcisweGM4LzB4 MTcwIGZzL3JlYWRkaXIuYzoxOTUKIFs8ICAgICBpbmxpbmUgICAgID5dIGRpcl9lbWl0IGlu Y2x1ZGUvbGludXgvZnMuaDozMTM0CiBbPGZmZmZmZmZmODEyNTI0Mzg+XSBjYWxsX2ZpbGxk aXIrMHg4OC8weDE0MCBmcy9leHQ0L2Rpci5jOjUxMAogWzwgICAgIGlubGluZSAgICAgPl0g ZXh0NF9keF9yZWFkZGlyIGZzL2V4dDQvZGlyLmM6NTg2CiBbPGZmZmZmZmZmODEyNTJlMzQ+ XSBleHQ0X3JlYWRkaXIrMHg3MTQvMHg5NTAgZnMvZXh0NC9kaXIuYzoxMjEKIFs8ZmZmZmZm ZmY4MTFkM2I2ZD5dIGl0ZXJhdGVfZGlyKzB4N2QvMHgxOTAgZnMvcmVhZGRpci5jOjUwCiBb PCAgICAgaW5saW5lICAgICA+XSBTWVNDX2dldGRlbnRzIGZzL3JlYWRkaXIuYzoyMzAKIFs8 ZmZmZmZmZmY4MTFkM2RiMT5dIFN5U19nZXRkZW50cysweDkxLzB4MTIwIGZzL3JlYWRkaXIu YzoyMTIKIFs8ZmZmZmZmZmY4MTZjYWE4MD5dIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgr MHgyMy8weGMxIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6MjA3Ck1lbW9yeSBzdGF0ZSBh cm91bmQgdGhlIGJ1Z2d5IGFkZHJlc3M6CiBmZmZmODgwMDZhZThmYzgwOiBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwogZmZmZjg4MDA2YWU4ZmQw MDogZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKPmZm ZmY4ODAwNmFlOGZkODA6IGZjIGZjIGZjIGZjIGZjIGZjIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDA1IGZjCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiBmZmZmODgwMDZhZThmZTAwOiBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwogZmZmZjg4MDA2YWU4ZmU4MDogZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpCVUc6IEtBU0FOOiBzbGFiLW91dC1vZi1ib3VuZHMgaW4gZmls bGRpcisweGM4LzB4MTcwIGF0IGFkZHIgZmZmZjg4MDA2YWMyOWRkZQpSZWFkIG9mIHNpemUg MjcgYnkgdGFzayBzeXN0ZW1kLzEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQlVHIGttYWxs b2MtOTYgKFRhaW50ZWQ6IEcgICAgQiAgICAgICAgICApOiBrYXNhbjogYmFkIGFjY2VzcyBk ZXRlY3RlZAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSU5GTzogQWxsb2NhdGVkIGluIGV4 dDRfaHRyZWVfc3RvcmVfZGlyZW50KzB4M2UvMHgxMjAgYWdlPTM2IGNwdT0wIHBpZD0xCls8 ICAgICAgICBub25lICAgICAgICA+XSBfX19zbGFiX2FsbG9jKzB4NjM2LzB4NmEwIG1tL3Ns dWIuYzoyNDQ2Cls8ICAgICAgICBub25lICAgICAgICA+XSBfX3NsYWJfYWxsb2MrMHg0Zi8w eDg2IG1tL3NsdWIuYzoyNDc1Cls8ICAgICBpbmxpbmUgICAgID5dIHNsYWJfYWxsb2Nfbm9k ZSBtbS9zbHViLmM6MjUzOApbPCAgICAgaW5saW5lICAgICA+XSBzbGFiX2FsbG9jIG1tL3Ns dWIuYzoyNTgwCls8ICAgICAgICBub25lICAgICAgICA+XSBfX2ttYWxsb2MrMHgyN2EvMHgz NDAgbW0vc2x1Yi5jOjM1NjEKWzwgICAgIGlubGluZSAgICAgPl0ga21hbGxvYyBpbmNsdWRl L2xpbnV4L3NsYWIuaDo0ODMKWzwgICAgIGlubGluZSAgICAgPl0ga3phbGxvYyBpbmNsdWRl L2xpbnV4L3NsYWIuaDo2MjIKWzwgICAgICAgIG5vbmUgICAgICAgID5dIGV4dDRfaHRyZWVf c3RvcmVfZGlyZW50KzB4M2UvMHgxMjAgZnMvZXh0NC9kaXIuYzo0NDcKWzwgICAgICAgIG5v bmUgICAgICAgID5dIGh0cmVlX2RpcmJsb2NrX3RvX3RyZWUrMHgxNmEvMHgxOTAgZnMvZXh0 NC9uYW1laS5jOjEwMDEKWzwgICAgICAgIG5vbmUgICAgICAgID5dIGV4dDRfaHRyZWVfZmls bF90cmVlKzB4YWEvMHgzMTAgZnMvZXh0NC9uYW1laS5jOjEwNzUKWzwgICAgIGlubGluZSAg ICAgPl0gZXh0NF9keF9yZWFkZGlyIGZzL2V4dDQvZGlyLmM6NTcxCls8ICAgICAgICBub25l ICAgICAgICA+XSBleHQ0X3JlYWRkaXIrMHg2OTgvMHg5NTAgZnMvZXh0NC9kaXIuYzoxMjEK WzwgICAgICAgIG5vbmUgICAgICAgID5dIGl0ZXJhdGVfZGlyKzB4N2QvMHgxOTAgZnMvcmVh ZGRpci5jOjUwCls8ICAgICBpbmxpbmUgICAgID5dIFNZU0NfZ2V0ZGVudHMgZnMvcmVhZGRp ci5jOjIzMApbPCAgICAgICAgbm9uZSAgICAgICAgPl0gU3lTX2dldGRlbnRzKzB4OTEvMHgx MjAgZnMvcmVhZGRpci5jOjIxMgpbPCAgICAgICAgbm9uZSAgICAgICAgPl0gZW50cnlfU1lT Q0FMTF82NF9mYXN0cGF0aCsweDIzLzB4YzEgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzoy MDcKSU5GTzogRnJlZWQgaW4gcmN1X3Byb2Nlc3NfY2FsbGJhY2tzKzB4MjcxLzB4ODgwIGFn ZT0xMTkgY3B1PTAgcGlkPTEKWzwgICAgICAgIG5vbmUgICAgICAgID5dIF9fc2xhYl9mcmVl KzB4MzFiLzB4NDgwIG1tL3NsdWIuYzoyNjU3Cls8ICAgICBpbmxpbmUgICAgID5dIHNsYWJf ZnJlZSBtbS9zbHViLmM6MjgxMApbPCAgICAgICAgbm9uZSAgICAgICAgPl0ga2ZyZWUrMHgy N2YvMHgyZDAgbW0vc2x1Yi5jOjM2NjIKWzwgICAgIGlubGluZSAgICAgPl0gX19yY3VfcmVj bGFpbSBrZXJuZWwvcmN1L3JjdS5oOjExMwpbPCAgICAgaW5saW5lICAgICA+XSByY3VfZG9f YmF0Y2gga2VybmVsL3JjdS90cmVlLmM6Mjc2NQpbPCAgICAgaW5saW5lICAgICA+XSBpbnZv a2VfcmN1X2NhbGxiYWNrcyBrZXJuZWwvcmN1L3RyZWUuYzozMDMxCls8ICAgICBpbmxpbmUg ICAgID5dIF9fcmN1X3Byb2Nlc3NfY2FsbGJhY2tzIGtlcm5lbC9yY3UvdHJlZS5jOjI5OTgK WzwgICAgICAgIG5vbmUgICAgICAgID5dIHJjdV9wcm9jZXNzX2NhbGxiYWNrcysweDI3MS8w eDg4MCBrZXJuZWwvcmN1L3RyZWUuYzozMDE1Cls8ICAgICAgICBub25lICAgICAgICA+XSBf X2RvX3NvZnRpcnErMHhjNy8weDRiZCBrZXJuZWwvc29mdGlycS5jOjI3MwpbPCAgICAgaW5s aW5lICAgICA+XSBpbnZva2Vfc29mdGlycSBrZXJuZWwvc29mdGlycS5jOjM1MApbPCAgICAg ICAgbm9uZSAgICAgICAgPl0gaXJxX2V4aXQrMHg5MC8weGIwIGtlcm5lbC9zb2Z0aXJxLmM6 MzkxCls8ICAgICBpbmxpbmUgICAgID5dIGV4aXRpbmdfaXJxIC4vYXJjaC94ODYvaW5jbHVk ZS9hc20vYXBpYy5oOjY1OApbPCAgICAgICAgbm9uZSAgICAgICAgPl0gc21wX2FwaWNfdGlt ZXJfaW50ZXJydXB0KzB4NDIvMHg1MCBhcmNoL3g4Ni9rZXJuZWwvYXBpYy9hcGljLmM6OTMy Cls8ICAgICAgICBub25lICAgICAgICA+XSBhcGljX3RpbWVyX2ludGVycnVwdCsweDhjLzB4 YTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo2MTgKWzwgICAgIGlubGluZSAgICAgPl0g c2xhYl9hbGxvY19ub2RlIG1tL3NsdWIuYzoyNTM4Cls8ICAgICBpbmxpbmUgICAgID5dIHNs YWJfYWxsb2MgbW0vc2x1Yi5jOjI1ODAKWzwgICAgICAgIG5vbmUgICAgICAgID5dIGttZW1f Y2FjaGVfYWxsb2MrMHgyMjkvMHgyZDAgbW0vc2x1Yi5jOjI1ODUKWzwgICAgICAgIG5vbmUg ICAgICAgID5dIG1lbXBvb2xfYWxsb2Nfc2xhYisweDE1LzB4MjAgbW0vbWVtcG9vbC5jOjQ2 MQpbPCAgICAgICAgbm9uZSAgICAgICAgPl0gbWVtcG9vbF9hbGxvYysweDdhLzB4MTkwIG1t L21lbXBvb2wuYzozNDAKWzwgICAgICAgIG5vbmUgICAgICAgID5dIGJpb19hbGxvY19iaW9z ZXQrMHgxMDcvMHgxZTAgYmxvY2svYmlvLmM6NDY5Cls8ICAgICBpbmxpbmUgICAgID5dIGJp b19hbGxvYyBpbmNsdWRlL2xpbnV4L2Jpby5oOjQ0NgpbPCAgICAgICAgbm9uZSAgICAgICAg Pl0gc3VibWl0X2JoX3diYy5pc3JhLjMyKzB4NzMvMHgxMzAgZnMvYnVmZmVyLmM6MzAwOQpb PCAgICAgICAgbm9uZSAgICAgICAgPl0gc3VibWl0X2JoKzB4MTAvMHgyMCBmcy9idWZmZXIu YzozMDQ2Cls8ICAgICAgICBub25lICAgICAgICA+XSBsbF9yd19ibG9jaysweDYyLzB4YTAg ZnMvYnVmZmVyLmM6MzA5NQpbPCAgICAgICAgbm9uZSAgICAgICAgPl0gX19icmVhZGFoZWFk KzB4MzMvMHg1MCBmcy9idWZmZXIuYzoxMzk4Cls8ICAgICBpbmxpbmUgICAgID5dIHNiX2Jy ZWFkYWhlYWQgaW5jbHVkZS9saW51eC9idWZmZXJfaGVhZC5oOjMwOQpbPCAgICAgICAgbm9u ZSAgICAgICAgPl0gX19leHQ0X2dldF9pbm9kZV9sb2MrMHg0MWIvMHg0ZjAgZnMvZXh0NC9p bm9kZS5jOjQyNzMKSU5GTzogU2xhYiAweGZmZmZlYTAwMDFhYjBhMDAgb2JqZWN0cz0yMCB1 c2VkPTE4IGZwPTB4ZmZmZjg4MDA2YWMyOTkwMCBmbGFncz0weDQwODAKSU5GTzogT2JqZWN0 IDB4ZmZmZjg4MDA2YWMyOWRiMCBAb2Zmc2V0PTc2MDAgZnA9MHgzYTEzMWNmODU3NzlhNjEy CgpCeXRlcyBiNCBmZmZmODgwMDZhYzI5ZGEwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgpPYmplY3QgZmZmZjg4 MDA2YWMyOWRiMDogMTIgYTYgNzkgNTcgZjggMWMgMTMgM2EgMDggZjkgZTggNmEgMDAgODgg ZmYgZmYgIC4ueVcuLi46Li4uai4uLi4KT2JqZWN0IGZmZmY4ODAwNmFjMjlkYzA6IDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4u Li4uLi4uCk9iamVjdCBmZmZmODgwMDZhYzI5ZGQwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCA4ZSAwMiAwOCAwMCAxYiAwMSA2MiA2YyAgLi4uLi4uLi4uLi4uLi5ibApPYmplY3QgZmZm Zjg4MDA2YWMyOWRlMDogNjEgNjMgNmIgNmMgNjkgNzMgNzQgMmQgNzIgNjEgNzIgNjUgMmQg NmUgNjUgNzQgIGFja2xpc3QtcmFyZS1uZXQKT2JqZWN0IGZmZmY4ODAwNmFjMjlkZjA6IDc3 IDZmIDcyIDZiIDJlIDYzIDZmIDZlIDY2IDAwIDAwIDAwIDAwIDAwIDAwIDAwICB3b3JrLmNv bmYuLi4uLi4uCk9iamVjdCBmZmZmODgwMDZhYzI5ZTAwOiAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgpDUFU6IDAg UElEOiAxIENvbW06IHN5c3RlbWQgVGFpbnRlZDogRyAgICBCICAgICAgICAgICA0LjcuMC1u Ym9yICMxODkKSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJ WCwgMTk5NiksIEJJT1MgVWJ1bnR1LTEuOC4yLTF1YnVudHUxIDA0LzAxLzIwMTQKIDAwMDAw MDAwMDAwMDAwMDAgZmZmZjg4MDA2Y2Q5N2M1OCBmZmZmZmZmZjgxNDc3ZGZjIGZmZmY4ODAw MDAwOTQ2YzAKIGZmZmY4ODAwNmFjMjlkYjAgZmZmZjg4MDA2Y2Q5N2M4OCBmZmZmZmZmZjgx MTlmMGU2IGZmZmY4ODAwMDAwOTQ2YzAKIGZmZmZlYTAwMDFhYjBhMDAgZmZmZjg4MDA2YWMy OWRiMCAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwNmNkOTdjYjAKQ2FsbCBUcmFjZToKIFs8 ICAgICBpbmxpbmUgICAgID5dIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjE1CiBb PGZmZmZmZmZmODE0NzdkZmM+XSBkdW1wX3N0YWNrKzB4ODUvMHhjOSBsaWIvZHVtcF9zdGFj ay5jOjUxCiBbPGZmZmZmZmZmODExOWYwZTY+XSBwcmludF90cmFpbGVyKzB4MTE2LzB4MTkw IG1tL3NsdWIuYzo2NjcKIFs8ZmZmZmZmZmY4MTE5ZjYxMT5dIG9iamVjdF9lcnIrMHg0MS8w eDUwIG1tL3NsdWIuYzo2NzQKIFs8ICAgICBpbmxpbmUgICAgID5dIHByaW50X2FkZHJlc3Nf ZGVzY3JpcHRpb24gbW0va2FzYW4vcmVwb3J0LmM6MTgwCiBbPCAgICAgaW5saW5lICAgICA+ XSBrYXNhbl9yZXBvcnRfZXJyb3IgbW0va2FzYW4vcmVwb3J0LmM6Mjc2CiBbPGZmZmZmZmZm ODExYTZmODI+XSBrYXNhbl9yZXBvcnQrMHgyODIvMHg1MzAgbW0va2FzYW4vcmVwb3J0LmM6 Mjk4CiBbPCAgICAgaW5saW5lICAgICA+XSBjaGVja19tZW1vcnlfcmVnaW9uX2lubGluZSBt bS9rYXNhbi9rYXNhbi5jOjI5MgogWzxmZmZmZmZmZjgxMWE2NGU3Pl0gY2hlY2tfbWVtb3J5 X3JlZ2lvbisweDEzNy8weDE2MCBtbS9rYXNhbi9rYXNhbi5jOjI5OQogWzxmZmZmZmZmZjgx MWE2NTgxPl0ga2FzYW5fY2hlY2tfcmVhZCsweDExLzB4MjAgbW0va2FzYW4va2FzYW4uYzoz MDQKIFs8ICAgICBpbmxpbmUgICAgID5dIGNvcHlfdG9fdXNlciAuL2FyY2gveDg2L2luY2x1 ZGUvYXNtL3VhY2Nlc3MuaDo3NjAKIFs8ZmZmZmZmZmY4MTFkM2E0OD5dIGZpbGxkaXIrMHhj OC8weDE3MCBmcy9yZWFkZGlyLmM6MTk1CiBbPCAgICAgaW5saW5lICAgICA+XSBkaXJfZW1p dCBpbmNsdWRlL2xpbnV4L2ZzLmg6MzEzNAogWzxmZmZmZmZmZjgxMjUyNDM4Pl0gY2FsbF9m aWxsZGlyKzB4ODgvMHgxNDAgZnMvZXh0NC9kaXIuYzo1MTAKIFs8ICAgICBpbmxpbmUgICAg ID5dIGV4dDRfZHhfcmVhZGRpciBmcy9leHQ0L2Rpci5jOjU4NgogWzxmZmZmZmZmZjgxMjUy ZTM0Pl0gZXh0NF9yZWFkZGlyKzB4NzE0LzB4OTUwIGZzL2V4dDQvZGlyLmM6MTIxCiBbPGZm ZmZmZmZmODExZDNiNmQ+XSBpdGVyYXRlX2RpcisweDdkLzB4MTkwIGZzL3JlYWRkaXIuYzo1 MAogWzwgICAgIGlubGluZSAgICAgPl0gU1lTQ19nZXRkZW50cyBmcy9yZWFkZGlyLmM6MjMw CiBbPGZmZmZmZmZmODExZDNkYjE+XSBTeVNfZ2V0ZGVudHMrMHg5MS8weDEyMCBmcy9yZWFk ZGlyLmM6MjEyCiBbPGZmZmZmZmZmODE2Y2FhODA+XSBlbnRyeV9TWVNDQUxMXzY0X2Zhc3Rw YXRoKzB4MjMvMHhjMSBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjIwNwpNZW1vcnkgc3Rh dGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgogZmZmZjg4MDA2YWMyOWM4MDogZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKIGZmZmY4ODAwNmFj MjlkMDA6IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZj Cj5mZmZmODgwMDZhYzI5ZDgwOiBmYyBmYyBmYyBmYyBmYyBmYyAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogZmZmZjg4MDA2YWMyOWUwMDogZmMgZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKIGZmZmY4ODAwNmFjMjll ODA6IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQoK --------------0D824C5A40416C4771C8DEA7--