Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754803Ab0BSIKk (ORCPT ); Fri, 19 Feb 2010 03:10:40 -0500 Received: from smtprelay.restena.lu ([158.64.1.62]:42167 "EHLO smtprelay.restena.lu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753914Ab0BSIKi (ORCPT ); Fri, 19 Feb 2010 03:10:38 -0500 Date: Fri, 19 Feb 2010 09:10:34 +0100 From: Bruno =?UTF-8?B?UHLDqW1vbnQ=?= To: "Benjamin Li" Cc: NetDEV , "Michael Chan" , Linux-Kernel Subject: Re: BNX2: Kernel crashes with 2.6.31 and 2.6.31.9 Message-ID: <20100219091034.5fbb0165@pluto.restena.lu> In-Reply-To: <1262149691.2788.63.camel@localhost> References: <20091229084929.54912c0c@pluto.restena.lu> <1262077540.12520.4.camel@localhost> <20091229145403.39f82773@pluto.restena.lu> <1262149691.2788.63.camel@localhost> X-Mailer: Claws Mail 3.7.4 (GTK+ 2.16.6; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/9_rsfuO+p0QfW8ENglFZATg" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 93431 Lines: 1519 --MP_/9_rsfuO+p0QfW8ENglFZATg Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Benjamin, On Tue, 29 Dec 2009 21:08:11 "Benjamin Li" wrote: > Could you try running with the attached patch? This debug patch is > built against the linux-2.6.31.9 kernel. I think the panic is > occuring right before a reset has occured due to a TX timeout. To > see if this is happening, this patch will print hardware state > information when a TX timeout occurs. If you could run with this > patch and send the logs when the panic occurs, I would really > appreciate it. > > Thanks again. > > -Ben Sorry for replying only this late but I've been too busy with other things. Anyhow, I've been doing some more testing yesterday and today and now am able to reproduce the/a crash pretty easily. Either running netconsole and doing 'echo t > /proc/sysrq-trigger' via SSH on otherwise idle server (from local console nothing bad happens), but then I have no means to communicate with the kernel (I guess it's deadlocked somewhere in printk code) The slightly less easy way to trigger it is with a dummy module that kind of simulates netconsole behavior but with dummy data (see attached). I have to have some more traffic (TCP?) going on for the bug to trigger and tell my module multiple times to push data. This way server is still accessible via VGA or serial console. Attached are my 'netbomb.c' (which is a modified netconsole.c) and full kernel log. This time running a 2.6.33-rc8-git3 kernel, having forward-ported your patch above (e.g. half of it was already present) I this time I got the following trace: [ 134.643292] BUG: unable to handle kernel NULL pointer dereference at (null) [ 134.643304] IP: [] bnx2_poll_work+0x32/0x13d0 [bnx2] [ 134.643314] PGD 2a972a067 PUD 2aa245067 PMD 0 [ 134.643319] Oops: 0000 [#1] SMP [ 134.643323] last sysfs file: /sys/devices/pci0000:00/0000:00:1e.0/0000:01:04.6/class [ 134.643328] CPU 4 [ 134.643334] Pid: 3226, comm: cat Not tainted 2.6.33-rc8-git3-x86_64 #3 /ProLiant DL360 G5 [ 134.643339] RIP: 0010:[] [] bnx2_poll_work+0x32/0x13d0 [bnx2] [ 134.643347] RSP: 0018:ffff8802a9643b38 EFLAGS: 00010092 [ 134.643351] RAX: 0000000000000000 RBX: ffff8802afab57c0 RCX: 0000000000000010 [ 134.643355] RDX: 0000000000000000 RSI: ffff8802afab57c0 RDI: ffff8802afab4580 [ 134.643359] RBP: ffff8802a9643cd8 R08: ffff8802af051000 R09: 0000000000000007 [ 134.643363] R10: 000000000000000e R11: 0000000000000000 R12: 0000000000000000 [ 134.643367] R13: 0000000000000010 R14: 0000000000000000 R15: ffff8802afab4580 [ 134.643371] FS: 0000000000000000(0000) GS:ffff880028300000(0063) knlGS:00000000f765f6c0 [ 134.643376] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b [ 134.643380] CR2: 0000000000000000 CR3: 00000002a9606000 CR4: 00000000000006e0 [ 134.643384] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 134.643388] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 134.643392] Process cat (pid: 3226, threadinfo ffff8802a9642000, task ffff8802aa14bff0) [ 134.643396] Stack: [ 134.643398] 0000000000000070 0000000000000002 0000000000000010 ffff8802afab57c0 [ 134.643404] <0> ffff8802afab4580 0000000300000002 0000000000000000 0000000100000002 [ 134.643410] <0> 0000000000000000 0000000200025220 ffffffff81862e80 0000000000000001 [ 134.643418] Call Trace: [ 134.643427] [] ? __alloc_pages_nodemask+0xfe/0x660 [ 134.643433] [] ? msi_set_mask_bit+0x26/0xc0 [ 134.643438] [] ? unmask_msi_irq+0xb/0x10 [ 134.643443] [] ? default_enable+0x24/0x40 [ 134.643448] [] ? check_irq_resend+0x26/0x70 [ 134.643453] [] ? __enable_irq+0x73/0x80 [ 134.643459] [] bnx2_poll_msix+0x3e/0xd0 [bnx2] [ 134.643465] [] netpoll_poll+0xe1/0x3c0 [ 134.643470] [] netpoll_send_skb+0x118/0x210 [ 134.643475] [] netpoll_send_udp+0x1fb/0x210 [ 134.643480] [] write_msg+0x95/0xd0 [netbomb] [ 134.643485] [] netbomb_write+0x55/0xa4 [netbomb] [ 134.643492] [] proc_reg_write+0x71/0xb0 [ 134.643498] [] vfs_write+0xcb/0x180 [ 134.643503] [] sys_write+0x50/0x90 [ 134.643509] [] sysenter_dispatch+0x7/0x2b [ 134.643513] Code: 56 41 55 41 54 53 48 81 ec 78 01 00 00 48 89 bd 80 fe ff ff 48 89 b5 78 fe ff ff 89 95 74 fe ff ff 89 8d 70 fe ff ff 48 8b 46 70 <0f> b7 10 31 c0 80 fa ff 0f 94 c0 01 c2 66 39 96 12 02 00 00 0f [ 134.643551] RIP [] bnx2_poll_work+0x32/0x13d0 [bnx2] [ 134.643557] RSP [ 134.643559] CR2: 0000000000000000 [ 134.643563] ---[ end trace 48bdec67d6d7aadb ]--- Running objdump on kernel compile with debugging symbols this matches: 000000000000ad90 : } } static int bnx2_poll_work(struct bnx2 *bp, struct bnx2_napi *bnapi, int work_done, int budget) { ad90: 55 push %rbp ad91: 48 89 e5 mov %rsp,%rbp ad94: 41 57 push %r15 ad96: 41 56 push %r14 ad98: 41 55 push %r13 ad9a: 41 54 push %r12 ad9c: 53 push %rbx ad9d: 48 81 ec 78 01 00 00 sub $0x178,%rsp ada4: 48 89 bd 80 fe ff ff mov %rdi,-0x180(%rbp) adab: 48 89 b5 78 fe ff ff mov %rsi,-0x188(%rbp) adb2: 89 95 74 fe ff ff mov %edx,-0x18c(%rbp) adb8: 89 8d 70 fe ff ff mov %ecx,-0x190(%rbp) { u16 cons; /* Tell compiler that status block fields can change. */ barrier(); cons = *bnapi->hw_tx_cons_ptr; adbe: 48 8b 46 70 mov 0x70(%rsi),%rax adc2: 0f b7 10 movzwl (%rax),%edx barrier(); if (unlikely((cons & MAX_TX_DESC_CNT) == MAX_TX_DESC_CNT)) cons++; adc5: 31 c0 xor %eax,%eax adc7: 80 fa ff cmp $0xff,%dl adca: 0f 94 c0 sete %al adcd: 01 c2 add %eax,%edx int work_done, int budget) { struct bnx2_tx_ring_info *txr = &bnapi->tx_ring; struct bnx2_rx_ring_info *rxr = &bnapi->rx_ring; if (bnx2_get_hw_tx_cons(bnapi) != txr->hw_tx_cons) adcf: 66 39 96 12 02 00 00 cmp %dx,0x212(%rsi) add6: 0f 84 4f 03 00 00 je b12b So as already determined bnapi->hw_tx_cons_ptr is NULL... but nothing is happening after that on network side. Regards, Bruno --MP_/9_rsfuO+p0QfW8ENglFZATg Content-Type: application/octet-stream; name=bnx2.dmesg Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=bnx2.dmesg WyAgICAwLjAwMDAwMF0gTGludXggdmVyc2lvbiAyLjYuMzMtcmM4LWdpdDMteDg2XzY0IChicnVu b0BwbHV0bykgKGdjYyB2ZXJzaW9uIDQuMy40IChHZW50b28gNC4zLjQgcDEuMCwgcGllLTEwLjEu NSkgKSAjMyBTTVAgRnJpIEZlYiAxOSAwODozMTo1NyBDRVQgMjAxMApbICAgIDAuMDAwMDAwXSBD b21tYW5kIGxpbmU6IHZnYT1ub3JtYWwgcm9vdD0vZGV2L2NjaXNzL2MwZDBwMSByYWRlb24ubW9k ZXNldD0wIG1vZGVzZXQ9MApbICAgIDAuMDAwMDAwXSBCSU9TLXByb3ZpZGVkIHBoeXNpY2FsIFJB TSBtYXA6ClsgICAgMC4wMDAwMDBdICBCSU9TLWU4MjA6IDAwMDAwMDAwMDAwMDAxMDAgLSAwMDAw MDAwMDAwMDlmNDAwICh1c2FibGUpClsgICAgMC4wMDAwMDBdICBCSU9TLWU4MjA6IDAwMDAwMDAw MDAwOWY0MDAgLSAwMDAwMDAwMDAwMGEwMDAwIChyZXNlcnZlZCkKWyAgICAwLjAwMDAwMF0gIEJJ T1MtZTgyMDogMDAwMDAwMDAwMDBmMDAwMCAtIDAwMDAwMDAwMDAxMDAwMDAgKHJlc2VydmVkKQpb ICAgIDAuMDAwMDAwXSAgQklPUy1lODIwOiAwMDAwMDAwMDAwMTAwMDAwIC0gMDAwMDAwMDBjZmU1 ODAwMCAodXNhYmxlKQpbICAgIDAuMDAwMDAwXSAgQklPUy1lODIwOiAwMDAwMDAwMGNmZTU4MDAw IC0gMDAwMDAwMDBjZmU2MDAwMCAoQUNQSSBkYXRhKQpbICAgIDAuMDAwMDAwXSAgQklPUy1lODIw OiAwMDAwMDAwMGNmZTYwMDAwIC0gMDAwMDAwMDBkMDAwMDAwMCAocmVzZXJ2ZWQpClsgICAgMC4w MDAwMDBdICBCSU9TLWU4MjA6IDAwMDAwMDAwZmVjMDAwMDAgLSAwMDAwMDAwMGZlZDAwMDAwIChy ZXNlcnZlZCkKWyAgICAwLjAwMDAwMF0gIEJJT1MtZTgyMDogMDAwMDAwMDBmZWUwMDAwMCAtIDAw MDAwMDAwZmVlMTAwMDAgKHJlc2VydmVkKQpbICAgIDAuMDAwMDAwXSAgQklPUy1lODIwOiAwMDAw MDAwMGZmYzAwMDAwIC0gMDAwMDAwMDEwMDAwMDAwMCAocmVzZXJ2ZWQpClsgICAgMC4wMDAwMDBd ICBCSU9TLWU4MjA6IDAwMDAwMDAxMDAwMDAwMDAgLSAwMDAwMDAwMmFmZmZmMDAwICh1c2FibGUp ClsgICAgMC4wMDAwMDBdIE5YIChFeGVjdXRlIERpc2FibGUpIHByb3RlY3Rpb246IGFjdGl2ZQpb ICAgIDAuMDAwMDAwXSBETUkgMi4zIHByZXNlbnQuClsgICAgMC4wMDAwMDBdIE5vIEFHUCBicmlk Z2UgZm91bmQKWyAgICAwLjAwMDAwMF0gbGFzdF9wZm4gPSAweDJhZmZmZiBtYXhfYXJjaF9wZm4g PSAweDQwMDAwMDAwMApbICAgIDAuMDAwMDAwXSBNVFJSIGRlZmF1bHQgdHlwZTogd3JpdGUtYmFj awpbICAgIDAuMDAwMDAwXSBNVFJSIGZpeGVkIHJhbmdlcyBlbmFibGVkOgpbICAgIDAuMDAwMDAw XSAgIDAwMDAwLTlGRkZGIHdyaXRlLWJhY2sKWyAgICAwLjAwMDAwMF0gICBBMDAwMC1CRkZGRiB1 bmNhY2hhYmxlClsgICAgMC4wMDAwMDBdICAgQzAwMDAtRkZGRkYgd3JpdGUtcHJvdGVjdApbICAg IDAuMDAwMDAwXSBNVFJSIHZhcmlhYmxlIHJhbmdlcyBlbmFibGVkOgpbICAgIDAuMDAwMDAwXSAg IDAgYmFzZSAwRDAwMDAwMDAgbWFzayBGRjAwMDAwMDAgdW5jYWNoYWJsZQpbICAgIDAuMDAwMDAw XSAgIDEgYmFzZSAwRTAwMDAwMDAgbWFzayBGRTAwMDAwMDAgdW5jYWNoYWJsZQpbICAgIDAuMDAw MDAwXSAgIDIgYmFzZSAwRDgwMDAwMDAgbWFzayBGRjgwMDAwMDAgd3JpdGUtY29tYmluaW5nClsg ICAgMC4wMDAwMDBdICAgMyBkaXNhYmxlZApbICAgIDAuMDAwMDAwXSAgIDQgZGlzYWJsZWQKWyAg ICAwLjAwMDAwMF0gICA1IGRpc2FibGVkClsgICAgMC4wMDAwMDBdICAgNiBkaXNhYmxlZApbICAg IDAuMDAwMDAwXSAgIDcgZGlzYWJsZWQKWyAgICAwLjAwMDAwMF0geDg2IFBBVCBlbmFibGVkOiBj cHUgMCwgb2xkIDB4NzAxMDYwMDA3MDEwNiwgbmV3IDB4NzAxMDYwMDA3MDEwNgpbICAgIDAuMDAw MDAwXSBsYXN0X3BmbiA9IDB4Y2ZlNTggbWF4X2FyY2hfcGZuID0gMHg0MDAwMDAwMDAKWyAgICAw LjAwMDAwMF0gaW5pdGlhbCBtZW1vcnkgbWFwcGVkIDogMCAtIDIwMDAwMDAwClsgICAgMC4wMDAw MDBdIGZvdW5kIFNNUCBNUC10YWJsZSBhdCBbZmZmZjg4MDAwMDBmNGY4MF0gZjRmODAKWyAgICAw LjAwMDAwMF0gaW5pdF9tZW1vcnlfbWFwcGluZzogMDAwMDAwMDAwMDAwMDAwMC0wMDAwMDAwMGNm ZTU4MDAwClsgICAgMC4wMDAwMDBdICAwMDAwMDAwMDAwIC0gMDBjZmUwMDAwMCBwYWdlIDJNClsg ICAgMC4wMDAwMDBdICAwMGNmZTAwMDAwIC0gMDBjZmU1ODAwMCBwYWdlIDRrClsgICAgMC4wMDAw MDBdIGtlcm5lbCBkaXJlY3QgbWFwcGluZyB0YWJsZXMgdXAgdG8gY2ZlNTgwMDAgQCA4MDAwLWUw MDAKWyAgICAwLjAwMDAwMF0gaW5pdF9tZW1vcnlfbWFwcGluZzogMDAwMDAwMDEwMDAwMDAwMC0w MDAwMDAwMmFmZmZmMDAwClsgICAgMC4wMDAwMDBdICAwMTAwMDAwMDAwIC0gMDJhZmUwMDAwMCBw YWdlIDJNClsgICAgMC4wMDAwMDBdICAwMmFmZTAwMDAwIC0gMDJhZmZmZjAwMCBwYWdlIDRrClsg ICAgMC4wMDAwMDBdIGtlcm5lbCBkaXJlY3QgbWFwcGluZyB0YWJsZXMgdXAgdG8gMmFmZmZmMDAw IEAgYzAwMC0xOTAwMApbICAgIDAuMDAwMDAwXSBBQ1BJOiBSU0RQIDAwMDAwMDAwMDAwZjRmMDAg MDAwMjQgKHYwMiBIUCAgICApClsgICAgMC4wMDAwMDBdIEFDUEk6IFhTRFQgMDAwMDAwMDBjZmU1 ODMwMCAwMDA1NCAodjAxIEhQICAgICBQNTggICAgICAwMDAwMDAwMiAgIO+/vT8gMDAwMDE2MkUp ClsgICAgMC4wMDAwMDBdIEFDUEk6IEZBQ1AgMDAwMDAwMDBjZmU1ODM4MCAwMDBGNCAodjAzIEhQ ICAgICBQNTggICAgICAwMDAwMDAwMiAgIO+/vT8gMDAwMDE2MkUpClsgICAgMC4wMDAwMDBdIEFD UEkgV2FybmluZzogSW52YWxpZCBsZW5ndGggZm9yIFBtMWFDb250cm9sQmxvY2s6IDMyLCB1c2lu ZyBkZWZhdWx0IDE2ICgyMDA5MTIxNC90YmZhZHQtNjA3KQpbICAgIDAuMDAwMDAwXSBBQ1BJOiBE U0RUIDAwMDAwMDAwY2ZlNTg0ODAgMDFFOTUgKHYwMSBIUCAgICAgICAgIERTRFQgMDAwMDAwMDEg SU5UTCAyMDAzMDIyOCkKWyAgICAwLjAwMDAwMF0gQUNQSTogRkFDUyAwMDAwMDAwMGNmZTU4MGMw IDAwMDQwClsgICAgMC4wMDAwMDBdIEFDUEk6IFNQQ1IgMDAwMDAwMDBjZmU1ODEwMCAwMDA1MCAo djAxIEhQICAgICBTUENSUkJTVSAwMDAwMDAwMSAgIO+/vT8gMDAwMDE2MkUpClsgICAgMC4wMDAw MDBdIEFDUEk6IE1DRkcgMDAwMDAwMDBjZmU1ODE4MCAwMDAzQyAodjAxIEhQICAgICBQcm9MaWFu dCAwMDAwMDAwMSAgICAgIDAwMDAwMDAwKQpbICAgIDAuMDAwMDAwXSBBQ1BJOiBIUEVUIDAwMDAw MDAwY2ZlNTgxYzAgMDAwMzggKHYwMSBIUCAgICAgUDU4ICAgICAgMDAwMDAwMDIgICDvv70/IDAw MDAxNjJFKQpbICAgIDAuMDAwMDAwXSBBQ1BJOiBTUE1JIDAwMDAwMDAwY2ZlNTgyMDAgMDAwNDAg KHYwNSBIUCAgICAgUHJvTGlhbnQgMDAwMDAwMDEgICDvv70/IDAwMDAxNjJFKQpbICAgIDAuMDAw MDAwXSBBQ1BJOiBBUElDIDAwMDAwMDAwY2ZlNTgyNDAgMDAwOUUgKHYwMSBIUCAgICAgMDAwMDAw ODMgMDAwMDAwMDIgICAgICAwMDAwMDAwMCkKWyAgICAwLjAwMDAwMF0gQUNQSTogTG9jYWwgQVBJ QyBhZGRyZXNzIDB4ZmVlMDAwMDAKWyAgICAwLjAwMDAwMF0gKDExIGVhcmx5IHJlc2VydmF0aW9u cykgPT0+IGJvb3RtZW0gWzAwMDAwMDAwMDAgLSAwMmFmZmZmMDAwXQpbICAgIDAuMDAwMDAwXSAg ICMwIFswMDAwMDAwMDAwIC0gMDAwMDAwMTAwMF0gICBCSU9TIGRhdGEgcGFnZSA9PT4gWzAwMDAw MDAwMDAgLSAwMDAwMDAxMDAwXQpbICAgIDAuMDAwMDAwXSAgICMxIFswMDAxMDAwMDAwIC0gMDAw MTkzMjM1MF0gICAgVEVYVCBEQVRBIEJTUyA9PT4gWzAwMDEwMDAwMDAgLSAwMDAxOTMyMzUwXQpb ICAgIDAuMDAwMDAwXSAgICMyIFswMDAxOTMzMDAwIC0gMDAwMTkzMzEzNF0gICAgICAgICAgICAg IEJSSyA9PT4gWzAwMDE5MzMwMDAgLSAwMDAxOTMzMTM0XQpbICAgIDAuMDAwMDAwXSAgICMzIFsw MDAwMGY0ZjkwIC0gMDAwMDEwMDAwMF0gICAgQklPUyByZXNlcnZlZCA9PT4gWzAwMDAwZjRmOTAg LSAwMDAwMTAwMDAwXQpbICAgIDAuMDAwMDAwXSAgICM0IFswMDAwMGY0ZjgwIC0gMDAwMDBmNGY5 MF0gICAgIE1QLXRhYmxlIG1wZiA9PT4gWzAwMDAwZjRmODAgLSAwMDAwMGY0ZjkwXQpbICAgIDAu MDAwMDAwXSAgICM1IFswMDAwMDlmNDAwIC0gMDAwMDBmMWQxMF0gICAgQklPUyByZXNlcnZlZCA9 PT4gWzAwMDAwOWY0MDAgLSAwMDAwMGYxZDEwXQpbICAgIDAuMDAwMDAwXSAgICM2IFswMDAwMGYx ZmNjIC0gMDAwMDBmNGY4MF0gICAgQklPUyByZXNlcnZlZCA9PT4gWzAwMDAwZjFmY2MgLSAwMDAw MGY0ZjgwXQpbICAgIDAuMDAwMDAwXSAgICM3IFswMDAwMGYxZDEwIC0gMDAwMDBmMWZjY10gICAg IE1QLXRhYmxlIG1wYyA9PT4gWzAwMDAwZjFkMTAgLSAwMDAwMGYxZmNjXQpbICAgIDAuMDAwMDAw XSAgICM4IFswMDAwMDAxMDAwIC0gMDAwMDAwMzAwMF0gICAgICAgVFJBTVBPTElORSA9PT4gWzAw MDAwMDEwMDAgLSAwMDAwMDAzMDAwXQpbICAgIDAuMDAwMDAwXSAgICM5IFswMDAwMDA4MDAwIC0g MDAwMDAwYzAwMF0gICAgICAgICAgUEdUQUJMRSA9PT4gWzAwMDAwMDgwMDAgLSAwMDAwMDBjMDAw XQpbICAgIDAuMDAwMDAwXSAgICMxMCBbMDAwMDAwYzAwMCAtIDAwMDAwMTQwMDBdICAgICAgICAg IFBHVEFCTEUgPT0+IFswMDAwMDBjMDAwIC0gMDAwMDAxNDAwMF0KWyAgICAwLjAwMDAwMF0gIFtm ZmZmZWEwMDAwMDAwMDAwLWZmZmZlYTAwMDk3ZmZmZmZdIFBNRCAtPiBbZmZmZjg4MDAyODYwMDAw MC1mZmZmODgwMDMxM2ZmZmZmXSBvbiBub2RlIDAKWyAgICAwLjAwMDAwMF0gWm9uZSBQRk4gcmFu Z2VzOgpbICAgIDAuMDAwMDAwXSAgIERNQSAgICAgIDB4MDAwMDAwMDEgLT4gMHgwMDAwMTAwMApb ICAgIDAuMDAwMDAwXSAgIERNQTMyICAgIDB4MDAwMDEwMDAgLT4gMHgwMDEwMDAwMApbICAgIDAu MDAwMDAwXSAgIE5vcm1hbCAgIDB4MDAxMDAwMDAgLT4gMHgwMDJhZmZmZgpbICAgIDAuMDAwMDAw XSBNb3ZhYmxlIHpvbmUgc3RhcnQgUEZOIGZvciBlYWNoIG5vZGUKWyAgICAwLjAwMDAwMF0gZWFy bHlfbm9kZV9tYXBbM10gYWN0aXZlIFBGTiByYW5nZXMKWyAgICAwLjAwMDAwMF0gICAgIDA6IDB4 MDAwMDAwMDEgLT4gMHgwMDAwMDA5ZgpbICAgIDAuMDAwMDAwXSAgICAgMDogMHgwMDAwMDEwMCAt PiAweDAwMGNmZTU4ClsgICAgMC4wMDAwMDBdICAgICAwOiAweDAwMTAwMDAwIC0+IDB4MDAyYWZm ZmYKWyAgICAwLjAwMDAwMF0gT24gbm9kZSAwIHRvdGFscGFnZXM6IDI2MjA5MTcKWyAgICAwLjAw MDAwMF0gICBETUEgem9uZTogNTYgcGFnZXMgdXNlZCBmb3IgbWVtbWFwClsgICAgMC4wMDAwMDBd ICAgRE1BIHpvbmU6IDExMCBwYWdlcyByZXNlcnZlZApbICAgIDAuMDAwMDAwXSAgIERNQSB6b25l OiAzODMyIHBhZ2VzLCBMSUZPIGJhdGNoOjAKWyAgICAwLjAwMDAwMF0gICBETUEzMiB6b25lOiAx NDI4MCBwYWdlcyB1c2VkIGZvciBtZW1tYXAKWyAgICAwLjAwMDAwMF0gICBETUEzMiB6b25lOiA4 MzMxNjggcGFnZXMsIExJRk8gYmF0Y2g6MzEKWyAgICAwLjAwMDAwMF0gICBOb3JtYWwgem9uZTog MjQxOTIgcGFnZXMgdXNlZCBmb3IgbWVtbWFwClsgICAgMC4wMDAwMDBdICAgTm9ybWFsIHpvbmU6 IDE3NDUyNzkgcGFnZXMsIExJRk8gYmF0Y2g6MzEKWyAgICAwLjAwMDAwMF0gQUNQSTogUE0tVGlt ZXIgSU8gUG9ydDogMHg5MDgKWyAgICAwLjAwMDAwMF0gQUNQSTogTG9jYWwgQVBJQyBhZGRyZXNz IDB4ZmVlMDAwMDAKWyAgICAwLjAwMDAwMF0gQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwMF0gbGFw aWNfaWRbMHgwMF0gZW5hYmxlZCkKWyAgICAwLjAwMDAwMF0gQUNQSTogTEFQSUMgKGFjcGlfaWRb MHgwNF0gbGFwaWNfaWRbMHgwNF0gZW5hYmxlZCkKWyAgICAwLjAwMDAwMF0gQUNQSTogTEFQSUMg KGFjcGlfaWRbMHgwMl0gbGFwaWNfaWRbMHgwMl0gZW5hYmxlZCkKWyAgICAwLjAwMDAwMF0gQUNQ STogTEFQSUMgKGFjcGlfaWRbMHgwNl0gbGFwaWNfaWRbMHgwNl0gZW5hYmxlZCkKWyAgICAwLjAw MDAwMF0gQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwMV0gbGFwaWNfaWRbMHgwMV0gZW5hYmxlZCkK WyAgICAwLjAwMDAwMF0gQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNV0gbGFwaWNfaWRbMHgwNV0g ZW5hYmxlZCkKWyAgICAwLjAwMDAwMF0gQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwM10gbGFwaWNf aWRbMHgwM10gZW5hYmxlZCkKWyAgICAwLjAwMDAwMF0gQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgw N10gbGFwaWNfaWRbMHgwN10gZW5hYmxlZCkKWyAgICAwLjAwMDAwMF0gQUNQSTogTEFQSUNfTk1J IChhY3BpX2lkWzB4ZmZdIGRmbCBkZmwgbGludFsweDFdKQpbICAgIDAuMDAwMDAwXSBBQ1BJOiBJ T0FQSUMgKGlkWzB4MDhdIGFkZHJlc3NbMHhmZWMwMDAwMF0gZ3NpX2Jhc2VbMF0pClsgICAgMC4w MDAwMDBdIElPQVBJQ1swXTogYXBpY19pZCA4LCB2ZXJzaW9uIDMyLCBhZGRyZXNzIDB4ZmVjMDAw MDAsIEdTSSAwLTIzClsgICAgMC4wMDAwMDBdIEFDUEk6IElPQVBJQyAoaWRbMHgwOV0gYWRkcmVz c1sweGZlYzgwMDAwXSBnc2lfYmFzZVsyNF0pClsgICAgMC4wMDAwMDBdIElPQVBJQ1sxXTogYXBp Y19pZCA5LCB2ZXJzaW9uIDMyLCBhZGRyZXNzIDB4ZmVjODAwMDAsIEdTSSAyNC00NwpbICAgIDAu MDAwMDAwXSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVzX2lycSAwIGdsb2JhbF9pcnEgMiBo aWdoIGVkZ2UpClsgICAgMC4wMDAwMDBdIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBidXNfaXJx IDkgZ2xvYmFsX2lycSA5IGhpZ2ggbGV2ZWwpClsgICAgMC4wMDAwMDBdIEFDUEk6IElSUTAgdXNl ZCBieSBvdmVycmlkZS4KWyAgICAwLjAwMDAwMF0gQUNQSTogSVJRMiB1c2VkIGJ5IG92ZXJyaWRl LgpbICAgIDAuMDAwMDAwXSBBQ1BJOiBJUlE5IHVzZWQgYnkgb3ZlcnJpZGUuClsgICAgMC4wMDAw MDBdIFVzaW5nIEFDUEkgKE1BRFQpIGZvciBTTVAgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbgpb ICAgIDAuMDAwMDAwXSBBQ1BJOiBIUEVUIGlkOiAweDgwODZhMjAxIGJhc2U6IDB4ZmVkMDAwMDAK WyAgICAwLjAwMDAwMF0gU01QOiBBbGxvd2luZyA4IENQVXMsIDAgaG90cGx1ZyBDUFVzClsgICAg MC4wMDAwMDBdIG5yX2lycXNfZ3NpOiA0OApbICAgIDAuMDAwMDAwXSBBbGxvY2F0aW5nIFBDSSBy ZXNvdXJjZXMgc3RhcnRpbmcgYXQgZDAwMDAwMDAgKGdhcDogZDAwMDAwMDA6MmVjMDAwMDApClsg ICAgMC4wMDAwMDBdIHNldHVwX3BlcmNwdTogTlJfQ1BVUzo4IG5yX2NwdW1hc2tfYml0czo4IG5y X2NwdV9pZHM6OCBucl9ub2RlX2lkczoxClsgICAgMC4wMDAwMDBdIFBFUkNQVTogRW1iZWRkZWQg MjcgcGFnZXMvY3B1IEBmZmZmODgwMDI4MjAwMDAwIHM3NzkxMiByODE5MiBkMjQ0ODggdTI2MjE0 NApbICAgIDAuMDAwMDAwXSBwY3B1LWFsbG9jOiBzNzc5MTIgcjgxOTIgZDI0NDg4IHUyNjIxNDQg YWxsb2M9MSoyMDk3MTUyClsgICAgMC4wMDAwMDBdIHBjcHUtYWxsb2M6IFswXSAwIDEgMiAzIDQg NSA2IDcKWyAgICAwLjAwMDAwMF0gQnVpbHQgMSB6b25lbGlzdHMgaW4gWm9uZSBvcmRlciwgbW9i aWxpdHkgZ3JvdXBpbmcgb24uICBUb3RhbCBwYWdlczogMjU4MjI3OQpbICAgIDAuMDAwMDAwXSBL ZXJuZWwgY29tbWFuZCBsaW5lOiB2Z2E9bm9ybWFsIHZnYT1ub3JtYWwgcm9vdD0vZGV2L2NjaXNz L2MwZDBwMSByYWRlb24ubW9kZXNldD0wIG1vZGVzZXQ9MApbICAgIDAuMDAwMDAwXSBQSUQgaGFz aCB0YWJsZSBlbnRyaWVzOiA0MDk2IChvcmRlcjogMywgMzI3NjggYnl0ZXMpClsgICAgMC4wMDAw MDBdIERlbnRyeSBjYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDIwOTcxNTIgKG9yZGVyOiAxMiwg MTY3NzcyMTYgYnl0ZXMpClsgICAgMC4wMDAwMDBdIElub2RlLWNhY2hlIGhhc2ggdGFibGUgZW50 cmllczogMTA0ODU3NiAob3JkZXI6IDExLCA4Mzg4NjA4IGJ5dGVzKQpbICAgIDAuMDAwMDAwXSBD aGVja2luZyBhcGVydHVyZS4uLgpbICAgIDAuMDAwMDAwXSBObyBBR1AgYnJpZGdlIGZvdW5kClsg ICAgMC4wMDAwMDBdIE1lbW9yeTogMTAyMzYxOTJrLzExMjcyMTg4ayBhdmFpbGFibGUgKDQxMDhr IGtlcm5lbCBjb2RlLCA3ODg1MjBrIGFic2VudCwgMjQ2NTQ4ayByZXNlcnZlZCwgNDUwOWsgZGF0 YSwgNDM2ayBpbml0KQpbICAgIDAuMDAwMDAwXSBTTFVCOiBHZW5zbGFicz0xMywgSFdhbGlnbj02 NCwgT3JkZXI9MC0zLCBNaW5PYmplY3RzPTAsIENQVXM9OCwgTm9kZXM9MQpbICAgIDAuMDAwMDAw XSBIaWVyYXJjaGljYWwgUkNVIGltcGxlbWVudGF0aW9uLgpbICAgIDAuMDAwMDAwXSBOUl9JUlFT OjUxMgpbICAgIDAuMDAwMDAwXSBFeHRlbmRlZCBDTU9TIHllYXI6IDIwMDAKWyAgICAwLjAwMDAw MF0gQ29uc29sZTogY29sb3VyIFZHQSsgODB4MjUKWyAgICAwLjAwMDAwMF0gY29uc29sZSBbdHR5 MF0gZW5hYmxlZApbICAgIDAuMDAwMDAwXSBocGV0IGNsb2NrZXZlbnQgcmVnaXN0ZXJlZApbICAg IDAuMDAwMDAwXSBGYXN0IFRTQyBjYWxpYnJhdGlvbiB1c2luZyBQSVQKWyAgICAwLjAwMDAwMF0g RGV0ZWN0ZWQgMjMzMy4xNTggTUh6IHByb2Nlc3Nvci4KWyAgICAwLjAyMDAwNl0gQ2FsaWJyYXRp bmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksIHZhbHVlIGNhbGN1bGF0ZWQgdXNpbmcgdGltZXIgZnJl cXVlbmN5Li4gNDY2Ni4zMSBCb2dvTUlQUyAobHBqPTIzMzMxNTgwKQpbICAgIDAuMDIwMjQ1XSBN b3VudC1jYWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDI1NgpbICAgIDAuMDIwNDk2XSBDUFU6IFBo eXNpY2FsIFByb2Nlc3NvciBJRDogMApbICAgIDAuMDIwNjAwXSBDUFU6IFByb2Nlc3NvciBDb3Jl IElEOiAwClsgICAgMC4wMjA3MDNdIG1jZTogQ1BVIHN1cHBvcnRzIDYgTUNFIGJhbmtzClsgICAg MC4wMjA4MTFdIENQVTA6IFRoZXJtYWwgTFZUIHZlY3RvciAoMHhmYSkgYWxyZWFkeSBpbnN0YWxs ZWQKWyAgICAwLjAyMDgxNF0gdXNpbmcgbXdhaXQgaW4gaWRsZSB0aHJlYWRzLgpbICAgIDAuMDIw OTE4XSBQZXJmb3JtYW5jZSBFdmVudHM6IENvcmUyIGV2ZW50cywgSW50ZWwgUE1VIGRyaXZlci4K WyAgICAwLjAyMTA5Ml0gLi4uIHZlcnNpb246ICAgICAgICAgICAgICAgIDIKWyAgICAwLjAyMTE5 NV0gLi4uIGJpdCB3aWR0aDogICAgICAgICAgICAgIDQwClsgICAgMC4wMjEyOThdIC4uLiBnZW5l cmljIHJlZ2lzdGVyczogICAgICAyClsgICAgMC4wMjE0MDJdIC4uLiB2YWx1ZSBtYXNrOiAgICAg ICAgICAgICAwMDAwMDBmZmZmZmZmZmZmClsgICAgMC4wMjE1MDddIC4uLiBtYXggcGVyaW9kOiAg ICAgICAgICAgICAwMDAwMDAwMDdmZmZmZmZmClsgICAgMC4wMjE2MTJdIC4uLiBmaXhlZC1wdXJw b3NlIGV2ZW50czogICAzClsgICAgMC4wMjE3MTZdIC4uLiBldmVudCBtYXNrOiAgICAgICAgICAg ICAwMDAwMDAwNzAwMDAwMDAzClsgICAgMC4wMjE4MzFdIEZyZWVpbmcgU01QIGFsdGVybmF0aXZl czogMjdrIGZyZWVkClsgICAgMC4wMjE5NTddIEFDUEk6IENvcmUgcmV2aXNpb24gMjAwOTEyMTQK WyAgICAwLjAyNTY5NV0gU2V0dGluZyBBUElDIHJvdXRpbmcgdG8gZmxhdApbICAgIDAuMDI2MTYx XSAuLlRJTUVSOiB2ZWN0b3I9MHgzMCBhcGljMT0wIHBpbjE9MiBhcGljMj0tMSBwaW4yPS0xClsg ICAgMC4xMjcwMjddIENQVTA6IEludGVsKFIpIFhlb24oUikgQ1BVICAgICAgICAgICBFNTM0NSAg QCAyLjMzR0h6IHN0ZXBwaW5nIDA3ClsgICAgMC4xMzAwMDBdIEJvb3RpbmcgTm9kZSAgIDAsIFBy b2Nlc3NvcnMgICMxClsgICAgMC4wMzAwMDBdIENQVTE6IFRoZXJtYWwgTFZUIHZlY3RvciAoMHhm YSkgYWxyZWFkeSBpbnN0YWxsZWQKWyAgICAwLjI5MDA3MF0gICMyClsgICAgMC4wMzAwMDBdIENQ VTI6IFRoZXJtYWwgTFZUIHZlY3RvciAoMHhmYSkgYWxyZWFkeSBpbnN0YWxsZWQKWyAgICAwLjQ2 MDA3N10gICMzClsgICAgMC4wMzAwMDBdIENQVTM6IFRoZXJtYWwgTFZUIHZlY3RvciAoMHhmYSkg YWxyZWFkeSBpbnN0YWxsZWQKWyAgICAwLjYzMDA2OV0gICM0ClsgICAgMC4wMzAwMDBdIENQVTQ6 IFRoZXJtYWwgTFZUIHZlY3RvciAoMHhmYSkgYWxyZWFkeSBpbnN0YWxsZWQKWyAgICAwLjgwMDEw M10gICM1ClsgICAgMC4wMzAwMDBdIENQVTU6IFRoZXJtYWwgTFZUIHZlY3RvciAoMHhmYSkgYWxy ZWFkeSBpbnN0YWxsZWQKWyAgICAwLjk3MDA2Nl0gICM2ClsgICAgMC4wMzAwMDBdIENQVTY6IFRo ZXJtYWwgTFZUIHZlY3RvciAoMHhmYSkgYWxyZWFkeSBpbnN0YWxsZWQKWyAgICAxLjE0MDA3MV0g ICM3IE9rLgpbICAgIDAuMDMwMDAwXSBDUFU3OiBUaGVybWFsIExWVCB2ZWN0b3IgKDB4ZmEpIGFs cmVhZHkgaW5zdGFsbGVkClsgICAgMS4zMTAwMzJdIEJyb3VnaHQgdXAgOCBDUFVzClsgICAgMS4z MTAxMzVdIFRvdGFsIG9mIDggcHJvY2Vzc29ycyBhY3RpdmF0ZWQgKDM3MzM0LjUxIEJvZ29NSVBT KS4KWyAgICAxLjMxMzk0Nl0gTkVUOiBSZWdpc3RlcmVkIHByb3RvY29sIGZhbWlseSAxNgpbICAg IDEuMzEzOTQ2XSBBQ1BJOiBidXMgdHlwZSBwY2kgcmVnaXN0ZXJlZApbICAgIDEuMzEzOTQ2XSBk Y2Egc2VydmljZSBzdGFydGVkLCB2ZXJzaW9uIDEuMTIuMQpbICAgIDEuMzEzOTQ2XSBQQ0k6IE1N Q09ORklHIGZvciBkb21haW4gMDAwMCBbYnVzIDAwLWZmXSBhdCBbbWVtIDB4ZTAwMDAwMDAtMHhl ZmZmZmZmZl0gKGJhc2UgMHhlMDAwMDAwMCkKWyAgICAxLjMxMzk0Nl0gUENJOiBub3QgdXNpbmcg TU1DT05GSUcKWyAgICAxLjMxMzk0Nl0gUENJOiBVc2luZyBjb25maWd1cmF0aW9uIHR5cGUgMSBm b3IgYmFzZSBhY2Nlc3MKWyAgICAxLjMxMzk0Nl0gUENJOiBIUCBQcm9MaWFudCBETDM2MCBkZXRl Y3RlZCwgZW5hYmxpbmcgcGNpPWJmc29ydC4KWyAgICAxLjMyMDAzNV0gYmlvOiBjcmVhdGUgc2xh YiA8YmlvLTA+IGF0IDAKWyAgICAxLjMyMDQ4Ml0gQUNQSTogRUM6IExvb2sgdXAgRUMgaW4gRFNE VApbICAgIDEuMzIyNTk3XSBBQ1BJOiBJbnRlcnByZXRlciBlbmFibGVkClsgICAgMS4zMjI3MDFd IEFDUEk6IChzdXBwb3J0cyBTMCBTNSkKWyAgICAxLjMyMjg3NV0gQUNQSTogVXNpbmcgSU9BUElD IGZvciBpbnRlcnJ1cHQgcm91dGluZwpbICAgIDEuMzIzMDEwXSBQQ0k6IE1NQ09ORklHIGZvciBk b21haW4gMDAwMCBbYnVzIDAwLWZmXSBhdCBbbWVtIDB4ZTAwMDAwMDAtMHhlZmZmZmZmZl0gKGJh c2UgMHhlMDAwMDAwMCkKWyAgICAxLjMyMzY5N10gUENJOiBNTUNPTkZJRyBhdCBbbWVtIDB4ZTAw MDAwMDAtMHhlZmZmZmZmZl0gcmVzZXJ2ZWQgaW4gQUNQSSBtb3RoZXJib2FyZCByZXNvdXJjZXMK WyAgICAxLjMzMTcxMl0gQUNQSTogTm8gZG9jayBkZXZpY2VzIGZvdW5kLgpbICAgIDEuMzMxNzEy XSBBQ1BJOiBQQ0kgUm9vdCBCcmlkZ2UgW1BDSTBdICgwMDAwOjAwKQpbICAgIDEuMzMxNzEyXSBw Y2lfcm9vdCBQTlAwQTAzOjAwOiBpZ25vcmluZyBob3N0IGJyaWRnZSB3aW5kb3dzIGZyb20gQUNQ STsgYm9vdCB3aXRoICJwY2k9dXNlX2NycyIgdG8gdXNlIHRoZW0KWyAgICAxLjMzMTcxMl0gcGNp X3Jvb3QgUE5QMEEwMzowMDogaG9zdCBicmlkZ2Ugd2luZG93IFtpbyAgMHgwMDAwLTB4MGNmN10g KGlnbm9yZWQpClsgICAgMS4zMzE3MTJdIHBjaV9yb290IFBOUDBBMDM6MDA6IGhvc3QgYnJpZGdl IHdpbmRvdyBbaW8gIDB4MGQwMC0weGZmZmZdIChpZ25vcmVkKQpbICAgIDEuMzMxNzEyXSBwY2lf cm9vdCBQTlAwQTAzOjAwOiBob3N0IGJyaWRnZSB3aW5kb3cgW21lbSAweDAwMGEwMDAwLTB4MDAw YmZmZmZdIChpZ25vcmVkKQpbICAgIDEuMzMxNzEyXSBwY2lfcm9vdCBQTlAwQTAzOjAwOiBob3N0 IGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZGZmZmZmZmZdIChpZ25vcmVkKQpbICAg IDEuMzMxNzEyXSBwY2lfcm9vdCBQTlAwQTAzOjAwOiBob3N0IGJyaWRnZSB3aW5kb3cgW21lbSAw eGYwMDAwMDAwLTB4ZmViZmZmZmZdIChpZ25vcmVkKQpbICAgIDEuMzMxNzEyXSBwY2kgMDAwMDow MDowMC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuMzMxNzEy XSBwY2kgMDAwMDowMDowMC4wOiBQTUUjIGRpc2FibGVkClsgICAgMS4zMzE3MTJdIHBjaSAwMDAw OjAwOjAyLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAgMS4zMzE3 MTJdIHBjaSAwMDAwOjAwOjAyLjA6IFBNRSMgZGlzYWJsZWQKWyAgICAxLjMzMTcxMl0gcGNpIDAw MDA6MDA6MDMuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjMz MTcxMl0gcGNpIDAwMDA6MDA6MDMuMDogUE1FIyBkaXNhYmxlZApbICAgIDEuMzMxNzEyXSBwY2kg MDAwMDowMDowNC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEu MzMxNzEyXSBwY2kgMDAwMDowMDowNC4wOiBQTUUjIGRpc2FibGVkClsgICAgMS4zMzE3MTJdIHBj aSAwMDAwOjAwOjA1LjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsgICAg MS4zMzE3MTJdIHBjaSAwMDAwOjAwOjA1LjA6IFBNRSMgZGlzYWJsZWQKWyAgICAxLjMzMTcxMl0g cGNpIDAwMDA6MDA6MDYuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAg ICAxLjMzMTcxMl0gcGNpIDAwMDA6MDA6MDYuMDogUE1FIyBkaXNhYmxlZApbICAgIDEuMzMxNzEy XSBwY2kgMDAwMDowMDowNy4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApb ICAgIDEuMzMxNzEyXSBwY2kgMDAwMDowMDowNy4wOiBQTUUjIGRpc2FibGVkClsgICAgMS4zMzE3 MTJdIHBjaSAwMDAwOjAwOjFkLjA6IHJlZyAyMDogW2lvICAweDEwMDAtMHgxMDFmXQpbICAgIDEu MzMxNzEyXSBwY2kgMDAwMDowMDoxZC4xOiByZWcgMjA6IFtpbyAgMHgxMDIwLTB4MTAzZl0KWyAg ICAxLjMzMTcxMl0gcGNpIDAwMDA6MDA6MWQuMjogcmVnIDIwOiBbaW8gIDB4MTA0MC0weDEwNWZd ClsgICAgMS4zMzE3MTJdIHBjaSAwMDAwOjAwOjFkLjM6IHJlZyAyMDogW2lvICAweDEwNjAtMHgx MDdmXQpbICAgIDEuMzMxNzEyXSBwY2kgMDAwMDowMDoxZC43OiByZWcgMTA6IFttZW0gMHhmN2Rm MDAwMC0weGY3ZGYwM2ZmXQpbICAgIDEuMzMxNzEyXSBwY2kgMDAwMDowMDoxZC43OiBQTUUjIHN1 cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuMzMxNzEyXSBwY2kgMDAwMDowMDox ZC43OiBQTUUjIGRpc2FibGVkClsgICAgMS4zMzE3MTJdIHBjaSAwMDAwOjAwOjFmLjE6IHJlZyAx MDogW2lvICAweDAxZjAtMHgwMWY3XQpbICAgIDEuMzMxNzEyXSBwY2kgMDAwMDowMDoxZi4xOiBy ZWcgMTQ6IFtpbyAgMHgwM2Y0LTB4MDNmN10KWyAgICAxLjMzMTcxMl0gcGNpIDAwMDA6MDA6MWYu MTogcmVnIDE4OiBbaW8gIDB4MDE3MC0weDAxNzddClsgICAgMS4zMzE3MTJdIHBjaSAwMDAwOjAw OjFmLjE6IHJlZyAxYzogW2lvICAweDAzNzQtMHgwMzc3XQpbICAgIDEuMzMxNzEyXSBwY2kgMDAw MDowMDoxZi4xOiByZWcgMjA6IFtpbyAgMHgwNTAwLTB4MDUwZl0KWyAgICAxLjMzMzM1MV0gcGNp IDAwMDA6MDk6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAx LjMzMzQ0Ml0gcGNpIDAwMDA6MDk6MDAuMDogUE1FIyBkaXNhYmxlZApbICAgIDEuMzQxNDYxXSBw Y2kgMDAwMDowOTowMC4zOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAg IDEuMzQxNTA3XSBwY2kgMDAwMDowOTowMC4zOiBQTUUjIGRpc2FibGVkClsgICAgMS4zNDE5NDdd IHBjaSAwMDAwOjAwOjAyLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwOS0xMl0KWyAgICAxLjM0MjA1 NF0gcGNpIDAwMDA6MDA6MDIuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHg1MDAwLTB4NmZmZl0K WyAgICAxLjM0MjA1N10gcGNpIDAwMDA6MDA6MDIuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhm ZGQwMDAwMC0weGZkZmZmZmZmXQpbICAgIDEuMzQyMDYyXSBwY2kgMDAwMDowMDowMi4wOiAgIGJy aWRnZSB3aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZDAxZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAx LjM0NDY2MV0gcGNpIDAwMDA6MGE6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBE M2NvbGQKWyAgICAxLjM0NDc1Ml0gcGNpIDAwMDA6MGE6MDAuMDogUE1FIyBkaXNhYmxlZApbICAg IDEuMzQ3Njc4XSBwY2kgMDAwMDowYTowMS4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90 IEQzY29sZApbICAgIDEuMzQ3NzY5XSBwY2kgMDAwMDowYTowMS4wOiBQTUUjIGRpc2FibGVkClsg ICAgMS4zNTA2ODVdIHBjaSAwMDAwOjBhOjAyLjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNo b3QgRDNjb2xkClsgICAgMS4zNTA3NzZdIHBjaSAwMDAwOjBhOjAyLjA6IFBNRSMgZGlzYWJsZWQK WyAgICAxLjM1MjU1OV0gcGNpIDAwMDA6MDk6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDBhLTBm XQpbICAgIDEuMzUyNzQyXSBwY2kgMDAwMDowOTowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAw eDUwMDAtMHg1ZmZmXQpbICAgIDEuMzUyODMzXSBwY2kgMDAwMDowOTowMC4wOiAgIGJyaWRnZSB3 aW5kb3cgW21lbSAweGZkZTAwMDAwLTB4ZmRlZmZmZmZdClsgICAgMS4zNTMwMTZdIHBjaSAwMDAw OjA5OjAwLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDAwMDAwMDAtMHhkMDBmZmZmZiA2NGJp dCBwcmVmXQpbICAgIDEuMzUzOTc2XSBwY2kgMDAwMDowYjowMC4wOiByZWcgMTA6IFttZW0gMHhm ZGVlMDAwMC0weGZkZWZmZmZmXQpbICAgIDEuMzU0MTU5XSBwY2kgMDAwMDowYjowMC4wOiByZWcg MTQ6IFttZW0gMHhmZGVjMDAwMC0weGZkZWRmZmZmXQpbICAgIDEuMzU0MzQyXSBwY2kgMDAwMDow YjowMC4wOiByZWcgMTg6IFtpbyAgMHg1MDAwLTB4NTAxZl0KWyAgICAxLjM1NTA3M10gcGNpIDAw MDA6MGI6MDAuMDogcmVnIDMwOiBbbWVtIDB4MDAwMDAwMDAtMHgwMDAxZmZmZiBwcmVmXQpbICAg IDEuMzU2MDMzXSBwY2kgMDAwMDowYjowMC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90 IEQzY29sZApbICAgIDEuMzU2MTI0XSBwY2kgMDAwMDowYjowMC4wOiBQTUUjIGRpc2FibGVkClsg ICAgMS4zNTc0MDVdIHBjaSAwMDAwOjBiOjAwLjE6IHJlZyAxMDogW21lbSAweGZkZWEwMDAwLTB4 ZmRlYmZmZmZdClsgICAgMS4zNTc1ODddIHBjaSAwMDAwOjBiOjAwLjE6IHJlZyAxNDogW21lbSAw eGZkZTgwMDAwLTB4ZmRlOWZmZmZdClsgICAgMS4zNTc3NzBdIHBjaSAwMDAwOjBiOjAwLjE6IHJl ZyAxODogW2lvICAweDUwMjAtMHg1MDNmXQpbICAgIDEuMzU4NTAyXSBwY2kgMDAwMDowYjowMC4x OiByZWcgMzA6IFttZW0gMHgwMDAwMDAwMC0weDAwMDFmZmZmIHByZWZdClsgICAgMS4zNTk0NjFd IHBjaSAwMDAwOjBiOjAwLjE6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xkClsg ICAgMS4zNTk1NTNdIHBjaSAwMDAwOjBiOjAwLjE6IFBNRSMgZGlzYWJsZWQKWyAgICAxLjM2MTY0 NF0gcGNpIDAwMDA6MGE6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDBiLTBkXQpbICAgIDEuMzYx ODI3XSBwY2kgMDAwMDowYTowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDUwMDAtMHg1ZmZm XQpbICAgIDEuMzYxOTE5XSBwY2kgMDAwMDowYTowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAw eGZkZTAwMDAwLTB4ZmRlZmZmZmZdClsgICAgMS4zNjIxMDFdIHBjaSAwMDAwOjBhOjAwLjA6ICAg YnJpZGdlIHdpbmRvdyBbbWVtIDB4ZDAwMDAwMDAtMHhkMDBmZmZmZiA2NGJpdCBwcmVmXQpbICAg IDEuMzYzNzQ3XSBwY2kgMDAwMDowYTowMS4wOiBQQ0kgYnJpZGdlIHRvIFtidXMgMGUtMGVdClsg ICAgMS4zNjU4NTBdIHBjaSAwMDAwOjBhOjAyLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwZi0wZl0K WyAgICAxLjM2ODIyN10gcGNpIDAwMDA6MTA6MDEuMDogcmVnIDEwOiBbaW8gIDB4NjAwMC0weDYw ZmZdClsgICAgMS4zNjg1OTNdIHBjaSAwMDAwOjEwOjAxLjA6IHJlZyAxNDogW21lbSAweGZkZmYw MDAwLTB4ZmRmZjBmZmYgNjRiaXRdClsgICAgMS4zNjkzMjRdIHBjaSAwMDAwOjEwOjAxLjA6IHJl ZyAzMDogW21lbSAweDAwMDAwMDAwLTB4MDAwM2ZmZmYgcHJlZl0KWyAgICAxLjM3MjA1Nl0gcGNp IDAwMDA6MDk6MDAuMzogUENJIGJyaWRnZSB0byBbYnVzIDEwLTEyXQpbICAgIDEuMzcyMTk0XSBw Y2kgMDAwMDowOTowMC4zOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDYwMDAtMHg2ZmZmXQpbICAg IDEuMzcyMjQwXSBwY2kgMDAwMDowOTowMC4zOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGZkZjAw MDAwLTB4ZmRmZmZmZmZdClsgICAgMS4zNzIzMzFdIHBjaSAwMDAwOjA5OjAwLjM6ICAgYnJpZGdl IHdpbmRvdyBbbWVtIDB4ZDAxMDAwMDAtMHhkMDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuMzcy Njc3XSBwY2kgMDAwMDowNjowMC4wOiByZWcgMTA6IFttZW0gMHhmZGMwMDAwMC0weGZkY2ZmZmZm IDY0Yml0XQpbICAgIDEuMzcyNjgzXSBwY2kgMDAwMDowNjowMC4wOiByZWcgMTg6IFtpbyAgMHg0 MDAwLTB4NDBmZl0KWyAgICAxLjM3MjY5M10gcGNpIDAwMDA6MDY6MDAuMDogcmVnIDFjOiBbbWVt IDB4ZmRiZjAwMDAtMHhmZGJmMGZmZiA2NGJpdF0KWyAgICAxLjM3MjcwNF0gcGNpIDAwMDA6MDY6 MDAuMDogcmVnIDMwOiBbbWVtIDB4MDAwMDAwMDAtMHgwMDAzZmZmZiBwcmVmXQpbICAgIDEuMzcy NzI5XSBwY2kgMDAwMDowNjowMC4wOiBzdXBwb3J0cyBEMQpbICAgIDEuMzcyNzY4XSBwY2kgMDAw MDowMDowMy4wOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDYtMDhdClsgICAgMS4zNzI4NzVdIHBjaSAw MDAwOjAwOjAzLjA6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4NDAwMC0weDRmZmZdClsgICAgMS4z NzI4NzhdIHBjaSAwMDAwOjAwOjAzLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmRiMDAwMDAt MHhmZGNmZmZmZl0KWyAgICAxLjM3Mjg4Ml0gcGNpIDAwMDA6MDA6MDMuMDogICBicmlkZ2Ugd2lu ZG93IFttZW0gMHhkMDIwMDAwMC0weGQwMmZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4zNzI5MTdd IHBjaSAwMDAwOjAwOjA0LjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAxMy0xNV0KWyAgICAxLjM3MzA2 MV0gcGNpIDAwMDA6MDA6MDUuMDogUENJIGJyaWRnZSB0byBbYnVzIDE2LTE2XQpbICAgIDEuMzcz MjE3XSBwY2kgMDAwMDowMjowMC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29s ZApbICAgIDEuMzczMjIxXSBwY2kgMDAwMDowMjowMC4wOiBQTUUjIGRpc2FibGVkClsgICAgMS4z NzMyNTldIHBjaSAwMDAwOjAwOjA2LjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwMi0wM10KWyAgICAx LjM3MzM2N10gcGNpIDAwMDA6MDA6MDYuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmODAwMDAw MC0weGY5ZmZmZmZmXQpbICAgIDEuMzczMzcyXSBwY2kgMDAwMDowMDowNi4wOiAgIGJyaWRnZSB3 aW5kb3cgW21lbSAweGQwMzAwMDAwLTB4ZDAzZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjM3MzQw NV0gcGNpIDAwMDA6MDM6MDAuMDogcmVnIDEwOiBbbWVtIDB4ZjgwMDAwMDAtMHhmOWZmZmZmZiA2 NGJpdF0KWyAgICAxLjM3MzQyN10gcGNpIDAwMDA6MDM6MDAuMDogcmVnIDMwOiBbbWVtIDB4MDAw MDAwMDAtMHgwMDAxZmZmZiBwcmVmXQpbICAgIDEuMzczNDUwXSBwY2kgMDAwMDowMzowMC4wOiBQ TUUjIHN1cHBvcnRlZCBmcm9tIEQzaG90IEQzY29sZApbICAgIDEuMzczNDUzXSBwY2kgMDAwMDow MzowMC4wOiBQTUUjIGRpc2FibGVkClsgICAgMS4zNzM0OTRdIHBjaSAwMDAwOjAyOjAwLjA6IFBD SSBicmlkZ2UgdG8gW2J1cyAwMy0wM10KWyAgICAxLjM3MzYwNl0gcGNpIDAwMDA6MDI6MDAuMDog ICBicmlkZ2Ugd2luZG93IFttZW0gMHhmODAwMDAwMC0weGY5ZmZmZmZmXQpbICAgIDEuMzczNjEy XSBwY2kgMDAwMDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMzAwMDAwLTB4ZDAz ZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjM3MzY2Nl0gcGNpIDAwMDA6MDQ6MDAuMDogUE1FIyBz dXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2NvbGQKWyAgICAxLjM3MzY2OV0gcGNpIDAwMDA6MDQ6 MDAuMDogUE1FIyBkaXNhYmxlZApbICAgIDEuMzczNzA4XSBwY2kgMDAwMDowMDowNy4wOiBQQ0kg YnJpZGdlIHRvIFtidXMgMDQtMDVdClsgICAgMS4zNzM4MTZdIHBjaSAwMDAwOjAwOjA3LjA6ICAg YnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmEwMDAwMDAtMHhmYmZmZmZmZl0KWyAgICAxLjM3MzgyMF0g cGNpIDAwMDA6MDA6MDcuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhkMDQwMDAwMC0weGQwNGZm ZmZmIDY0Yml0IHByZWZdClsgICAgMS4zNzM4NTRdIHBjaSAwMDAwOjA1OjAwLjA6IHJlZyAxMDog W21lbSAweGZhMDAwMDAwLTB4ZmJmZmZmZmYgNjRiaXRdClsgICAgMS4zNzM4NzVdIHBjaSAwMDAw OjA1OjAwLjA6IHJlZyAzMDogW21lbSAweDAwMDAwMDAwLTB4MDAwMWZmZmYgcHJlZl0KWyAgICAx LjM3Mzg5OF0gcGNpIDAwMDA6MDU6MDAuMDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEM2hvdCBEM2Nv bGQKWyAgICAxLjM3MzkwMV0gcGNpIDAwMDA6MDU6MDAuMDogUE1FIyBkaXNhYmxlZApbICAgIDEu MzczOTQyXSBwY2kgMDAwMDowNDowMC4wOiBQQ0kgYnJpZGdlIHRvIFtidXMgMDUtMDVdClsgICAg MS4zNzQwNTRdIHBjaSAwMDAwOjA0OjAwLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmEwMDAw MDAtMHhmYmZmZmZmZl0KWyAgICAxLjM3NDA2MF0gcGNpIDAwMDA6MDQ6MDAuMDogICBicmlkZ2Ug d2luZG93IFttZW0gMHhkMDQwMDAwMC0weGQwNGZmZmZmIDY0Yml0IHByZWZdClsgICAgMS4zNzQw OTddIHBjaSAwMDAwOjAxOjAzLjA6IHJlZyAxMDogW21lbSAweGQ4MDAwMDAwLTB4ZGZmZmZmZmYg cHJlZl0KWyAgICAxLjM3NDEwNF0gcGNpIDAwMDA6MDE6MDMuMDogcmVnIDE0OiBbaW8gIDB4MzAw MC0weDMwZmZdClsgICAgMS4zNzQxMTFdIHBjaSAwMDAwOjAxOjAzLjA6IHJlZyAxODogW21lbSAw eGY3ZmYwMDAwLTB4ZjdmZmZmZmZdClsgICAgMS4zNzQxMzJdIHBjaSAwMDAwOjAxOjAzLjA6IHJl ZyAzMDogW21lbSAweDAwMDAwMDAwLTB4MDAwMWZmZmYgcHJlZl0KWyAgICAxLjM3NDE1MV0gcGNp IDAwMDA6MDE6MDMuMDogc3VwcG9ydHMgRDEgRDIKWyAgICAxLjM3NDE3OF0gcGNpIDAwMDA6MDE6 MDQuMDogcmVnIDEwOiBbaW8gIDB4MjgwMC0weDI4ZmZdClsgICAgMS4zNzQxODVdIHBjaSAwMDAw OjAxOjA0LjA6IHJlZyAxNDogW21lbSAweGY3ZmUwMDAwLTB4ZjdmZTAxZmZdClsgICAgMS4zNzQy MjZdIHBjaSAwMDAwOjAxOjA0LjA6IFBNRSMgc3VwcG9ydGVkIGZyb20gRDAgRDNob3QgRDNjb2xk ClsgICAgMS4zNzQyMzBdIHBjaSAwMDAwOjAxOjA0LjA6IFBNRSMgZGlzYWJsZWQKWyAgICAxLjM3 NDI2MV0gcGNpIDAwMDA6MDE6MDQuMjogcmVnIDEwOiBbaW8gIDB4MzQwMC0weDM0ZmZdClsgICAg MS4zNzQyNjldIHBjaSAwMDAwOjAxOjA0LjI6IHJlZyAxNDogW21lbSAweGY3ZmQwMDAwLTB4Zjdm ZDA3ZmZdClsgICAgMS4zNzQyNzZdIHBjaSAwMDAwOjAxOjA0LjI6IHJlZyAxODogW21lbSAweGY3 ZmMwMDAwLTB4ZjdmYzNmZmZdClsgICAgMS4zNzQyODRdIHBjaSAwMDAwOjAxOjA0LjI6IHJlZyAx YzogW21lbSAweGY3ZjAwMDAwLTB4ZjdmN2ZmZmZdClsgICAgMS4zNzQzMDFdIHBjaSAwMDAwOjAx OjA0LjI6IHJlZyAzMDogW21lbSAweDAwMDAwMDAwLTB4MDAwMGZmZmYgcHJlZl0KWyAgICAxLjM3 NDMyMl0gcGNpIDAwMDA6MDE6MDQuMjogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hvdCBEM2Nv bGQKWyAgICAxLjM3NDMyNl0gcGNpIDAwMDA6MDE6MDQuMjogUE1FIyBkaXNhYmxlZApbICAgIDEu Mzc0Mzc5XSBwY2kgMDAwMDowMTowNC40OiByZWcgMjA6IFtpbyAgMHgzODAwLTB4MzgxZl0KWyAg ICAxLjM3NDQxMF0gcGNpIDAwMDA6MDE6MDQuNDogUE1FIyBzdXBwb3J0ZWQgZnJvbSBEMCBEM2hv dCBEM2NvbGQKWyAgICAxLjM3NDQxNF0gcGNpIDAwMDA6MDE6MDQuNDogUE1FIyBkaXNhYmxlZApb ICAgIDEuMzc0NDQzXSBwY2kgMDAwMDowMTowNC42OiByZWcgMTA6IFttZW0gMHhmN2VmMDAwMC0w eGY3ZWYwMGZmXQpbICAgIDEuMzc0NDg5XSBwY2kgMDAwMDowMTowNC42OiBQTUUjIHN1cHBvcnRl ZCBmcm9tIEQwIEQzaG90IEQzY29sZApbICAgIDEuMzc0NDkzXSBwY2kgMDAwMDowMTowNC42OiBQ TUUjIGRpc2FibGVkClsgICAgMS4zNzQ1MzRdIHBjaSAwMDAwOjAwOjFlLjA6IFBDSSBicmlkZ2Ug dG8gW2J1cyAwMS0wMV0gKHN1YnRyYWN0aXZlIGRlY29kZSkKWyAgICAxLjM3NDY0NV0gcGNpIDAw MDA6MDA6MWUuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHgyMDAwLTB4M2ZmZl0KWyAgICAxLjM3 NDY0OF0gcGNpIDAwMDA6MDA6MWUuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmN2UwMDAwMC0w eGY3ZmZmZmZmXQpbICAgIDEuMzc0NjU0XSBwY2kgMDAwMDowMDoxZS4wOiAgIGJyaWRnZSB3aW5k b3cgW21lbSAweGQ4MDAwMDAwLTB4ZGZmZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjM3NDY3NF0g cGNpX2J1cyAwMDAwOjAwOiBvbiBOVU1BIG5vZGUgMApbICAgIDEuMzc0Njc4XSBBQ1BJOiBQQ0kg SW50ZXJydXB0IFJvdXRpbmcgVGFibGUgW1xfU0JfLlBDSTAuX1BSVF0KWyAgICAxLjM3NDc1Ml0g QUNQSTogUENJIEludGVycnVwdCBSb3V0aW5nIFRhYmxlIFtcX1NCXy5QQ0kwLklQMlAuX1BSVF0K WyAgICAxLjM3NDgwM10gQUNQSTogUENJIEludGVycnVwdCBSb3V0aW5nIFRhYmxlIFtcX1NCXy5Q Q0kwLlBUMDIuX1BSVF0KWyAgICAxLjM3NDgyNl0gQUNQSSBXYXJuaW5nIGZvciBcX1NCXy5QQ0kw LlBUMDIuX1BSVDogUmV0dXJuIFBhY2thZ2UgaGFzIG5vIGVsZW1lbnRzIChlbXB0eSkgKDIwMDkx MjE0L25zcHJlZGVmLTQ1NSkKWyAgICAxLjM3NTA3N10gQUNQSTogUENJIEludGVycnVwdCBSb3V0 aW5nIFRhYmxlIFtcX1NCXy5QQ0kwLlBUMDIuSVBFNC5fUFJUXQpbICAgIDEuMzc1MTI4XSBBQ1BJ OiBQQ0kgSW50ZXJydXB0IFJvdXRpbmcgVGFibGUgW1xfU0JfLlBDSTAuUFQwMi5JUEU0LklQRTEu X1BSVF0KWyAgICAxLjM3NTE4M10gQUNQSTogUENJIEludGVycnVwdCBSb3V0aW5nIFRhYmxlIFtc X1NCXy5QQ0kwLlBUMDIuUDJQMi5fUFJUXQpbICAgIDEuMzc1MjM1XSBBQ1BJOiBQQ0kgSW50ZXJy dXB0IFJvdXRpbmcgVGFibGUgW1xfU0JfLlBDSTAuUFQwMy5fUFJUXQpbICAgIDEuMzc1Mjg2XSBB Q1BJOiBQQ0kgSW50ZXJydXB0IFJvdXRpbmcgVGFibGUgW1xfU0JfLlBDSTAuUFQwNC5fUFJUXQpb ICAgIDEuMzc1MzQzXSBBQ1BJOiBQQ0kgSW50ZXJydXB0IFJvdXRpbmcgVGFibGUgW1xfU0JfLlBD STAuUFQwNi5OQjAxLl9QUlRdClsgICAgMS4zNzUzOTldIEFDUEk6IFBDSSBJbnRlcnJ1cHQgUm91 dGluZyBUYWJsZSBbXF9TQl8uUENJMC5QVDA3Lk5CMDIuX1BSVF0KWyAgICAxLjM4MDA1N10gQUNQ STogUENJIEludGVycnVwdCBMaW5rIFtMTktBXSAoSVJRcyAqNSA3IDEwIDExKSwgZGlzYWJsZWQu ClsgICAgMS4zODA0NjFdIEFDUEk6IFBDSSBJbnRlcnJ1cHQgTGluayBbTE5LQl0gKElSUXMgNSAq NyAxMCAxMSksIGRpc2FibGVkLgpbICAgIDEuMzgwODYyXSBBQ1BJOiBQQ0kgSW50ZXJydXB0IExp bmsgW0xOS0NdIChJUlFzIDUgNyAqMTAgMTEpLCBkaXNhYmxlZC4KWyAgICAxLjM4MTI2M10gQUNQ STogUENJIEludGVycnVwdCBMaW5rIFtMTktEXSAoSVJRcyA1IDcgKjEwIDExKSwgZGlzYWJsZWQu ClsgICAgMS4zODE2NjFdIEFDUEk6IFBDSSBJbnRlcnJ1cHQgTGluayBbTE5LRV0gKElSUXMgNSA3 IDEwIDExKSAqMCwgZGlzYWJsZWQuClsgICAgMS4zODIwOTNdIEFDUEk6IFBDSSBJbnRlcnJ1cHQg TGluayBbTE5LRl0gKElSUXMgKjUgNyAxMCAxMSksIGRpc2FibGVkLgpbICAgIDEuMzgyNDkzXSBB Q1BJOiBQQ0kgSW50ZXJydXB0IExpbmsgW0xOS0ddIChJUlFzIDUgNyAqMTAgMTEpLCBkaXNhYmxl ZC4KWyAgICAxLjM4Mjg5Ml0gQUNQSTogUENJIEludGVycnVwdCBMaW5rIFtMTktIXSAoSVJRcyA1 ICo3IDEwIDExKSwgZGlzYWJsZWQuClsgICAgMS4zODMyNjVdIHZnYWFyYjogZGV2aWNlIGFkZGVk OiBQQ0k6MDAwMDowMTowMy4wLGRlY29kZXM9aW8rbWVtLG93bnM9aW8rbWVtLGxvY2tzPW5vbmUK WyAgICAxLjM4MzI2NV0gdmdhYXJiOiBsb2FkZWQKWyAgICAxLjM4MzI2NV0gU0NTSSBzdWJzeXN0 ZW0gaW5pdGlhbGl6ZWQKWyAgICAxLjM4MzI2NV0gdXNiY29yZTogcmVnaXN0ZXJlZCBuZXcgaW50 ZXJmYWNlIGRyaXZlciB1c2JmcwpbICAgIDEuMzgzMjY1XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5l dyBpbnRlcmZhY2UgZHJpdmVyIGh1YgpbICAgIDEuMzgzMjY1XSB1c2Jjb3JlOiByZWdpc3RlcmVk IG5ldyBkZXZpY2UgZHJpdmVyIHVzYgpbICAgIDEuMzgzMjY1XSBQQ0k6IFVzaW5nIEFDUEkgZm9y IElSUSByb3V0aW5nClsgICAgMS4zODMyNjVdIFBDSTogcGNpX2NhY2hlX2xpbmVfc2l6ZSBzZXQg dG8gNjQgYnl0ZXMKWyAgICAxLjM4MzI2NV0gSFBFVDogMyB0aW1lcnMgaW4gdG90YWwsIDAgdGlt ZXJzIHdpbGwgYmUgdXNlZCBmb3IgcGVyLWNwdSB0aW1lcgpbICAgIDEuMzgzMjY1XSBocGV0MDog YXQgTU1JTyAweGZlZDAwMDAwLCBJUlFzIDIsIDgsIDAKWyAgICAxLjM4MzI2NV0gaHBldDA6IDMg Y29tcGFyYXRvcnMsIDY0LWJpdCAxNC4zMTgxODAgTUh6IGNvdW50ZXIKWyAgICAxLjQzMDAwNl0g U3dpdGNoaW5nIHRvIGNsb2Nrc291cmNlIHRzYwpbICAgIDEuNDMwMjg4XSBwbnA6IFBuUCBBQ1BJ IGluaXQKWyAgICAxLjQzMDQxM10gQUNQSTogYnVzIHR5cGUgcG5wIHJlZ2lzdGVyZWQKWyAgICAx LjQzMjI1OV0gcG5wOiBQblAgQUNQSTogZm91bmQgMTAgZGV2aWNlcwpbICAgIDEuNDMyMzY1XSBB Q1BJOiBBQ1BJIGJ1cyB0eXBlIHBucCB1bnJlZ2lzdGVyZWQKWyAgICAxLjQzMjQ4MV0gc3lzdGVt IDAwOjAxOiBbaW8gIDB4MDQwOC0weDA0MGZdIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS40MzI1 OTBdIHN5c3RlbSAwMDowMTogW2lvICAweDA0ZDAtMHgwNGQxXSBoYXMgYmVlbiByZXNlcnZlZApb ICAgIDEuNDMyNjk5XSBzeXN0ZW0gMDA6MDE6IFtpbyAgMHgwNzAwLTB4MDcxZl0gaGFzIGJlZW4g cmVzZXJ2ZWQKWyAgICAxLjQzMjgwN10gc3lzdGVtIDAwOjAxOiBbaW8gIDB4MDgwMC0weDA4M2Zd IGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS40MzI5MTVdIHN5c3RlbSAwMDowMTogW2lvICAweDA5 MDAtMHgwOTdmXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuNDMzMDI0XSBzeXN0ZW0gMDA6MDE6 IFtpbyAgMHgwYzgwLTB4MGM4M10gaGFzIGJlZW4gcmVzZXJ2ZWQKWyAgICAxLjQzMzEzMl0gc3lz dGVtIDAwOjAxOiBbaW8gIDB4MGNkNC0weDBjZDddIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS40 MzMyNDFdIHN5c3RlbSAwMDowMTogW2lvICAweDBmNTAtMHgwZjU4XSBoYXMgYmVlbiByZXNlcnZl ZApbICAgIDEuNDMzMzUwXSBzeXN0ZW0gMDA6MDE6IFtpbyAgMHgwY2EwLTB4MGNhMV0gaGFzIGJl ZW4gcmVzZXJ2ZWQKWyAgICAxLjQzMzQ1OF0gc3lzdGVtIDAwOjAxOiBbaW8gIDB4MGNhNC0weDBj YTVdIGhhcyBiZWVuIHJlc2VydmVkClsgICAgMS40MzM1NjZdIHN5c3RlbSAwMDowMTogW2lvICAw eDAyZjgtMHgwMmZmXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEuNDMzNjc2XSBzeXN0ZW0gMDA6 MDE6IFttZW0gMHhlMDAwMDAwMC0weGVmZmZmZmZmXSBoYXMgYmVlbiByZXNlcnZlZApbICAgIDEu NDMzNzg2XSBzeXN0ZW0gMDA6MDE6IFttZW0gMHhmZTAwMDAwMC0weGZlYmZmZmZmXSBoYXMgYmVl biByZXNlcnZlZApbICAgIDEuNDQwMzQwXSBwY2kgMDAwMDowYjowMC4wOiBCQVIgNjogYXNzaWdu ZWQgW21lbSAweGQwMDAwMDAwLTB4ZDAwMWZmZmYgcHJlZl0KWyAgICAxLjQ0MDUxNl0gcGNpIDAw MDA6MGI6MDAuMTogQkFSIDY6IGFzc2lnbmVkIFttZW0gMHhkMDAyMDAwMC0weGQwMDNmZmZmIHBy ZWZdClsgICAgMS40NDA2OTFdIHBjaSAwMDAwOjBhOjAwLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAw Yi0wZF0KWyAgICAxLjQ0MDc5OF0gcGNpIDAwMDA6MGE6MDAuMDogICBicmlkZ2Ugd2luZG93IFtp byAgMHg1MDAwLTB4NWZmZl0KWyAgICAxLjQ0MTAyN10gcGNpIDAwMDA6MGE6MDAuMDogICBicmlk Z2Ugd2luZG93IFttZW0gMHhmZGUwMDAwMC0weGZkZWZmZmZmXQpbICAgIDEuNDQxMjEwXSBwY2kg MDAwMDowYTowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZDAwZmZmZmYg NjRiaXQgcHJlZl0KWyAgICAxLjQ0MTUyOV0gcGNpIDAwMDA6MGE6MDEuMDogUENJIGJyaWRnZSB0 byBbYnVzIDBlLTBlXQpbICAgIDEuNDQxNjM2XSBwY2kgMDAwMDowYTowMS4wOiAgIGJyaWRnZSB3 aW5kb3cgW2lvICBkaXNhYmxlZF0KWyAgICAxLjQ0MTg0OV0gcGNpIDAwMDA6MGE6MDEuMDogICBi cmlkZ2Ugd2luZG93IFttZW0gZGlzYWJsZWRdClsgICAgMS40NDIwMzddIHBjaSAwMDAwOjBhOjAx LjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIHByZWYgZGlzYWJsZWRdClsgICAgMS40NDIzMTFdIHBj aSAwMDAwOjBhOjAyLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwZi0wZl0KWyAgICAxLjQ0MjQxOF0g cGNpIDAwMDA6MGE6MDIuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgZGlzYWJsZWRdClsgICAgMS40 NDI2MzFdIHBjaSAwMDAwOjBhOjAyLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIGRpc2FibGVkXQpb ICAgIDEuNDQyODE0XSBwY2kgMDAwMDowYTowMi4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSBwcmVm IGRpc2FibGVkXQpbICAgIDEuNDQzMDg4XSBwY2kgMDAwMDowOTowMC4wOiBQQ0kgYnJpZGdlIHRv IFtidXMgMGEtMGZdClsgICAgMS40NDMyMjZdIHBjaSAwMDAwOjA5OjAwLjA6ICAgYnJpZGdlIHdp bmRvdyBbaW8gIDB4NTAwMC0weDVmZmZdClsgICAgMS40NDM0NTRdIHBjaSAwMDAwOjA5OjAwLjA6 ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmRlMDAwMDAtMHhmZGVmZmZmZl0KWyAgICAxLjQ0MzYz N10gcGNpIDAwMDA6MDk6MDAuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhkMDAwMDAwMC0weGQw MGZmZmZmIDY0Yml0IHByZWZdClsgICAgMS40NDM5NThdIHBjaSAwMDAwOjEwOjAxLjA6IEJBUiA2 OiBhc3NpZ25lZCBbbWVtIDB4ZDAxMDAwMDAtMHhkMDEzZmZmZiBwcmVmXQpbICAgIDEuNDQ0MTMy XSBwY2kgMDAwMDowOTowMC4zOiBQQ0kgYnJpZGdlIHRvIFtidXMgMTAtMTJdClsgICAgMS40NDQy NzddIHBjaSAwMDAwOjA5OjAwLjM6ICAgYnJpZGdlIHdpbmRvdyBbaW8gIDB4NjAwMC0weDZmZmZd ClsgICAgMS40NDQ1MDVdIHBjaSAwMDAwOjA5OjAwLjM6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4 ZmRmMDAwMDAtMHhmZGZmZmZmZl0KWyAgICAxLjQ0NDY4OF0gcGNpIDAwMDA6MDk6MDAuMzogICBi cmlkZ2Ugd2luZG93IFttZW0gMHhkMDEwMDAwMC0weGQwMWZmZmZmIDY0Yml0IHByZWZdClsgICAg MS40NDUwMDhdIHBjaSAwMDAwOjAwOjAyLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwOS0xMl0KWyAg ICAxLjQ0NTExNV0gcGNpIDAwMDA6MDA6MDIuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHg1MDAw LTB4NmZmZl0KWyAgICAxLjQ0NTIyNV0gcGNpIDAwMDA6MDA6MDIuMDogICBicmlkZ2Ugd2luZG93 IFttZW0gMHhmZGQwMDAwMC0weGZkZmZmZmZmXQpbICAgIDEuNDQ1MzM2XSBwY2kgMDAwMDowMDow Mi4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMDAwMDAwLTB4ZDAxZmZmZmYgNjRiaXQgcHJl Zl0KWyAgICAxLjQ0NTUxNF0gcGNpIDAwMDA6MDY6MDAuMDogQkFSIDY6IGFzc2lnbmVkIFttZW0g MHhkMDIwMDAwMC0weGQwMjNmZmZmIHByZWZdClsgICAgMS40NDU2ODldIHBjaSAwMDAwOjAwOjAz LjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNi0wOF0KWyAgICAxLjQ0NTc5Nl0gcGNpIDAwMDA6MDA6 MDMuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgMHg0MDAwLTB4NGZmZl0KWyAgICAxLjQ0NTkwNV0g cGNpIDAwMDA6MDA6MDMuMDogICBicmlkZ2Ugd2luZG93IFttZW0gMHhmZGIwMDAwMC0weGZkY2Zm ZmZmXQpbICAgIDEuNDQ2MDE2XSBwY2kgMDAwMDowMDowMy4wOiAgIGJyaWRnZSB3aW5kb3cgW21l bSAweGQwMjAwMDAwLTB4ZDAyZmZmZmYgNjRiaXQgcHJlZl0KWyAgICAxLjQ0NjE5NF0gcGNpIDAw MDA6MDA6MDQuMDogUENJIGJyaWRnZSB0byBbYnVzIDEzLTE1XQpbICAgIDEuNDQ2MzAwXSBwY2kg MDAwMDowMDowNC4wOiAgIGJyaWRnZSB3aW5kb3cgW2lvICBkaXNhYmxlZF0KWyAgICAxLjQ0NjQw OV0gcGNpIDAwMDA6MDA6MDQuMDogICBicmlkZ2Ugd2luZG93IFttZW0gZGlzYWJsZWRdClsgICAg MS40NDY1MTddIHBjaSAwMDAwOjAwOjA0LjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIHByZWYgZGlz YWJsZWRdClsgICAgMS40NDY2MjhdIHBjaSAwMDAwOjAwOjA1LjA6IFBDSSBicmlkZ2UgdG8gW2J1 cyAxNi0xNl0KWyAgICAxLjQ0NjczNF0gcGNpIDAwMDA6MDA6MDUuMDogICBicmlkZ2Ugd2luZG93 IFtpbyAgZGlzYWJsZWRdClsgICAgMS40NDY4NDNdIHBjaSAwMDAwOjAwOjA1LjA6ICAgYnJpZGdl IHdpbmRvdyBbbWVtIGRpc2FibGVkXQpbICAgIDEuNDQ2OTUxXSBwY2kgMDAwMDowMDowNS4wOiAg IGJyaWRnZSB3aW5kb3cgW21lbSBwcmVmIGRpc2FibGVkXQpbICAgIDEuNDQ3MDYzXSBwY2kgMDAw MDowMzowMC4wOiBCQVIgNjogYXNzaWduZWQgW21lbSAweGQwMzAwMDAwLTB4ZDAzMWZmZmYgcHJl Zl0KWyAgICAxLjQ0NzIzN10gcGNpIDAwMDA6MDI6MDAuMDogUENJIGJyaWRnZSB0byBbYnVzIDAz LTAzXQpbICAgIDEuNDQ3MzQzXSBwY2kgMDAwMDowMjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW2lv ICBkaXNhYmxlZF0KWyAgICAxLjQ0NzQ1M10gcGNpIDAwMDA6MDI6MDAuMDogICBicmlkZ2Ugd2lu ZG93IFttZW0gMHhmODAwMDAwMC0weGY5ZmZmZmZmXQpbICAgIDEuNDQ3NTY0XSBwY2kgMDAwMDow MjowMC4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMzAwMDAwLTB4ZDAzZmZmZmYgNjRiaXQg cHJlZl0KWyAgICAxLjQ0ODA3MF0gcGNpIDAwMDA6MDA6MDYuMDogUENJIGJyaWRnZSB0byBbYnVz IDAyLTAzXQpbICAgIDEuNDQ4MTc2XSBwY2kgMDAwMDowMDowNi4wOiAgIGJyaWRnZSB3aW5kb3cg W2lvICBkaXNhYmxlZF0KWyAgICAxLjQ0ODI4Nl0gcGNpIDAwMDA6MDA6MDYuMDogICBicmlkZ2Ug d2luZG93IFttZW0gMHhmODAwMDAwMC0weGY5ZmZmZmZmXQpbICAgIDEuNDQ4Mzk2XSBwY2kgMDAw MDowMDowNi4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGQwMzAwMDAwLTB4ZDAzZmZmZmYgNjRi aXQgcHJlZl0KWyAgICAxLjQ0ODU3NF0gcGNpIDAwMDA6MDU6MDAuMDogQkFSIDY6IGFzc2lnbmVk IFttZW0gMHhkMDQwMDAwMC0weGQwNDFmZmZmIHByZWZdClsgICAgMS40NDg3NDhdIHBjaSAwMDAw OjA0OjAwLjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNS0wNV0KWyAgICAxLjQ0ODg1NF0gcGNpIDAw MDA6MDQ6MDAuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgZGlzYWJsZWRdClsgICAgMS40NDg5NjRd IHBjaSAwMDAwOjA0OjAwLjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmEwMDAwMDAtMHhmYmZm ZmZmZl0KWyAgICAxLjQ0OTA3Nl0gcGNpIDAwMDA6MDQ6MDAuMDogICBicmlkZ2Ugd2luZG93IFtt ZW0gMHhkMDQwMDAwMC0weGQwNGZmZmZmIDY0Yml0IHByZWZdClsgICAgMS40NDkyNTVdIHBjaSAw MDAwOjAwOjA3LjA6IFBDSSBicmlkZ2UgdG8gW2J1cyAwNC0wNV0KWyAgICAxLjQ0OTM2MV0gcGNp IDAwMDA6MDA6MDcuMDogICBicmlkZ2Ugd2luZG93IFtpbyAgZGlzYWJsZWRdClsgICAgMS40NDk0 NzBdIHBjaSAwMDAwOjAwOjA3LjA6ICAgYnJpZGdlIHdpbmRvdyBbbWVtIDB4ZmEwMDAwMDAtMHhm YmZmZmZmZl0KWyAgICAxLjQ0OTU4MV0gcGNpIDAwMDA6MDA6MDcuMDogICBicmlkZ2Ugd2luZG93 IFttZW0gMHhkMDQwMDAwMC0weGQwNGZmZmZmIDY0Yml0IHByZWZdClsgICAgMS40NDk3NjBdIHBj aSAwMDAwOjAxOjAzLjA6IEJBUiA2OiBhc3NpZ25lZCBbbWVtIDB4ZjdlMDAwMDAtMHhmN2UxZmZm ZiBwcmVmXQpbICAgIDEuNDQ5OTM0XSBwY2kgMDAwMDowMTowNC4yOiBCQVIgNjogYXNzaWduZWQg W21lbSAweGY3ZTIwMDAwLTB4ZjdlMmZmZmYgcHJlZl0KWyAgICAxLjQ1MDEwOF0gcGNpIDAwMDA6 MDA6MWUuMDogUENJIGJyaWRnZSB0byBbYnVzIDAxLTAxXQpbICAgIDEuNDUwMjE2XSBwY2kgMDAw MDowMDoxZS4wOiAgIGJyaWRnZSB3aW5kb3cgW2lvICAweDIwMDAtMHgzZmZmXQpbICAgIDEuNDUw MzI3XSBwY2kgMDAwMDowMDoxZS4wOiAgIGJyaWRnZSB3aW5kb3cgW21lbSAweGY3ZTAwMDAwLTB4 ZjdmZmZmZmZdClsgICAgMS40NTA0MzhdIHBjaSAwMDAwOjAwOjFlLjA6ICAgYnJpZGdlIHdpbmRv dyBbbWVtIDB4ZDgwMDAwMDAtMHhkZmZmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNDUwNjI0XSBw Y2kgMDAwMDowMDowMi4wOiBzZXR0aW5nIGxhdGVuY3kgdGltZXIgdG8gNjQKWyAgICAxLjQ1MDg1 N10gcGNpIDAwMDA6MDk6MDAuMDogc2V0dGluZyBsYXRlbmN5IHRpbWVyIHRvIDY0ClsgICAgMS40 NTEwOTBdIHBjaSAwMDAwOjBhOjAwLjA6IFBDSSBJTlQgQSAtPiBHU0kgMTYgKGxldmVsLCBsb3cp IC0+IElSUSAxNgpbICAgIDEuNDUxMjY4XSBwY2kgMDAwMDowYTowMC4wOiBzZXR0aW5nIGxhdGVu Y3kgdGltZXIgdG8gNjQKWyAgICAxLjQ1MTQ5OV0gcGNpIDAwMDA6MGE6MDEuMDogUENJIElOVCBB IC0+IEdTSSAxNyAobGV2ZWwsIGxvdykgLT4gSVJRIDE3ClsgICAgMS40NTE2NzldIHBjaSAwMDAw OjBhOjAxLjA6IHNldHRpbmcgbGF0ZW5jeSB0aW1lciB0byA2NApbICAgIDEuNDUxOTMxXSBwY2kg MDAwMDowYTowMi4wOiBQQ0kgSU5UIEEgLT4gR1NJIDE4IChsZXZlbCwgbG93KSAtPiBJUlEgMTgK WyAgICAxLjQ1MjExMV0gcGNpIDAwMDA6MGE6MDIuMDogc2V0dGluZyBsYXRlbmN5IHRpbWVyIHRv IDY0ClsgICAgMS40NTI0MzFdIHBjaSAwMDAwOjA5OjAwLjM6IHNldHRpbmcgbGF0ZW5jeSB0aW1l ciB0byA2NApbICAgIDEuNDUyNDgxXSBwY2kgMDAwMDowMDowMy4wOiBzZXR0aW5nIGxhdGVuY3kg dGltZXIgdG8gNjQKWyAgICAxLjQ1MjQ4N10gcGNpIDAwMDA6MDA6MDQuMDogc2V0dGluZyBsYXRl bmN5IHRpbWVyIHRvIDY0ClsgICAgMS40NTI0OTRdIHBjaSAwMDAwOjAwOjA1LjA6IHNldHRpbmcg bGF0ZW5jeSB0aW1lciB0byA2NApbICAgIDEuNDUyNTAxXSBwY2kgMDAwMDowMDowNi4wOiBzZXR0 aW5nIGxhdGVuY3kgdGltZXIgdG8gNjQKWyAgICAxLjQ1MjUwOV0gcGNpIDAwMDA6MDI6MDAuMDog c2V0dGluZyBsYXRlbmN5IHRpbWVyIHRvIDY0ClsgICAgMS40NTI1MTZdIHBjaSAwMDAwOjAwOjA3 LjA6IHNldHRpbmcgbGF0ZW5jeSB0aW1lciB0byA2NApbICAgIDEuNDUyNTI1XSBwY2kgMDAwMDow NDowMC4wOiBzZXR0aW5nIGxhdGVuY3kgdGltZXIgdG8gNjQKWyAgICAxLjQ1MjUzMV0gcGNpIDAw MDA6MDA6MWUuMDogc2V0dGluZyBsYXRlbmN5IHRpbWVyIHRvIDY0ClsgICAgMS40NTI1MzVdIHBj aV9idXMgMDAwMDowMDogcmVzb3VyY2UgMCBbaW8gIDB4MDAwMC0weGZmZmZdClsgICAgMS40NTI1 MzddIHBjaV9idXMgMDAwMDowMDogcmVzb3VyY2UgMSBbbWVtIDB4MDAwMDAwMDAtMHhmZmZmZmZm ZmZmZmZmZmZmXQpbICAgIDEuNDUyNTM5XSBwY2lfYnVzIDAwMDA6MDk6IHJlc291cmNlIDAgW2lv ICAweDUwMDAtMHg2ZmZmXQpbICAgIDEuNDUyNTQxXSBwY2lfYnVzIDAwMDA6MDk6IHJlc291cmNl IDEgW21lbSAweGZkZDAwMDAwLTB4ZmRmZmZmZmZdClsgICAgMS40NTI1NDRdIHBjaV9idXMgMDAw MDowOTogcmVzb3VyY2UgMiBbbWVtIDB4ZDAwMDAwMDAtMHhkMDFmZmZmZiA2NGJpdCBwcmVmXQpb ICAgIDEuNDUyNTQ2XSBwY2lfYnVzIDAwMDA6MGE6IHJlc291cmNlIDAgW2lvICAweDUwMDAtMHg1 ZmZmXQpbICAgIDEuNDUyNTQ4XSBwY2lfYnVzIDAwMDA6MGE6IHJlc291cmNlIDEgW21lbSAweGZk ZTAwMDAwLTB4ZmRlZmZmZmZdClsgICAgMS40NTI1NTBdIHBjaV9idXMgMDAwMDowYTogcmVzb3Vy Y2UgMiBbbWVtIDB4ZDAwMDAwMDAtMHhkMDBmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNDUyNTUz XSBwY2lfYnVzIDAwMDA6MGI6IHJlc291cmNlIDAgW2lvICAweDUwMDAtMHg1ZmZmXQpbICAgIDEu NDUyNTU1XSBwY2lfYnVzIDAwMDA6MGI6IHJlc291cmNlIDEgW21lbSAweGZkZTAwMDAwLTB4ZmRl ZmZmZmZdClsgICAgMS40NTI1NTddIHBjaV9idXMgMDAwMDowYjogcmVzb3VyY2UgMiBbbWVtIDB4 ZDAwMDAwMDAtMHhkMDBmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNDUyNTYwXSBwY2lfYnVzIDAw MDA6MTA6IHJlc291cmNlIDAgW2lvICAweDYwMDAtMHg2ZmZmXQpbICAgIDEuNDUyNTYyXSBwY2lf YnVzIDAwMDA6MTA6IHJlc291cmNlIDEgW21lbSAweGZkZjAwMDAwLTB4ZmRmZmZmZmZdClsgICAg MS40NTI1NjRdIHBjaV9idXMgMDAwMDoxMDogcmVzb3VyY2UgMiBbbWVtIDB4ZDAxMDAwMDAtMHhk MDFmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNDUyNTY2XSBwY2lfYnVzIDAwMDA6MDY6IHJlc291 cmNlIDAgW2lvICAweDQwMDAtMHg0ZmZmXQpbICAgIDEuNDUyNTY4XSBwY2lfYnVzIDAwMDA6MDY6 IHJlc291cmNlIDEgW21lbSAweGZkYjAwMDAwLTB4ZmRjZmZmZmZdClsgICAgMS40NTI1NzFdIHBj aV9idXMgMDAwMDowNjogcmVzb3VyY2UgMiBbbWVtIDB4ZDAyMDAwMDAtMHhkMDJmZmZmZiA2NGJp dCBwcmVmXQpbICAgIDEuNDUyNTczXSBwY2lfYnVzIDAwMDA6MDI6IHJlc291cmNlIDEgW21lbSAw eGY4MDAwMDAwLTB4ZjlmZmZmZmZdClsgICAgMS40NTI1NzZdIHBjaV9idXMgMDAwMDowMjogcmVz b3VyY2UgMiBbbWVtIDB4ZDAzMDAwMDAtMHhkMDNmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNDUy NTc4XSBwY2lfYnVzIDAwMDA6MDM6IHJlc291cmNlIDEgW21lbSAweGY4MDAwMDAwLTB4ZjlmZmZm ZmZdClsgICAgMS40NTI1ODBdIHBjaV9idXMgMDAwMDowMzogcmVzb3VyY2UgMiBbbWVtIDB4ZDAz MDAwMDAtMHhkMDNmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNDUyNTgzXSBwY2lfYnVzIDAwMDA6 MDQ6IHJlc291cmNlIDEgW21lbSAweGZhMDAwMDAwLTB4ZmJmZmZmZmZdClsgICAgMS40NTI1ODVd IHBjaV9idXMgMDAwMDowNDogcmVzb3VyY2UgMiBbbWVtIDB4ZDA0MDAwMDAtMHhkMDRmZmZmZiA2 NGJpdCBwcmVmXQpbICAgIDEuNDUyNTg3XSBwY2lfYnVzIDAwMDA6MDU6IHJlc291cmNlIDEgW21l bSAweGZhMDAwMDAwLTB4ZmJmZmZmZmZdClsgICAgMS40NTI1OTBdIHBjaV9idXMgMDAwMDowNTog cmVzb3VyY2UgMiBbbWVtIDB4ZDA0MDAwMDAtMHhkMDRmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEu NDUyNTkyXSBwY2lfYnVzIDAwMDA6MDE6IHJlc291cmNlIDAgW2lvICAweDIwMDAtMHgzZmZmXQpb ICAgIDEuNDUyNTk0XSBwY2lfYnVzIDAwMDA6MDE6IHJlc291cmNlIDEgW21lbSAweGY3ZTAwMDAw LTB4ZjdmZmZmZmZdClsgICAgMS40NTI1OTZdIHBjaV9idXMgMDAwMDowMTogcmVzb3VyY2UgMiBb bWVtIDB4ZDgwMDAwMDAtMHhkZmZmZmZmZiA2NGJpdCBwcmVmXQpbICAgIDEuNDUyNTk5XSBwY2lf YnVzIDAwMDA6MDE6IHJlc291cmNlIDMgW2lvICAweDAwMDAtMHhmZmZmXQpbICAgIDEuNDUyNjAx XSBwY2lfYnVzIDAwMDA6MDE6IHJlc291cmNlIDQgW21lbSAweDAwMDAwMDAwLTB4ZmZmZmZmZmZm ZmZmZmZmZl0KWyAgICAxLjQ1MjYyMl0gTkVUOiBSZWdpc3RlcmVkIHByb3RvY29sIGZhbWlseSAy ClsgICAgMS40NTI3ODZdIElQIHJvdXRlIGNhY2hlIGhhc2ggdGFibGUgZW50cmllczogNTI0Mjg4 IChvcmRlcjogMTAsIDQxOTQzMDQgYnl0ZXMpClsgICAgMS40NTQyNzBdIFRDUCBlc3RhYmxpc2hl ZCBoYXNoIHRhYmxlIGVudHJpZXM6IDI2MjE0NCAob3JkZXI6IDEwLCA0MTk0MzA0IGJ5dGVzKQpb ICAgIDEuNDU2NTAzXSBUQ1AgYmluZCBoYXNoIHRhYmxlIGVudHJpZXM6IDY1NTM2IChvcmRlcjog OCwgMTA0ODU3NiBieXRlcykKWyAgICAxLjQ1NzE2MV0gVENQOiBIYXNoIHRhYmxlcyBjb25maWd1 cmVkIChlc3RhYmxpc2hlZCAyNjIxNDQgYmluZCA2NTUzNikKWyAgICAxLjQ1NzI3MF0gVENQIHJl bm8gcmVnaXN0ZXJlZApbICAgIDEuNDU3MzgxXSBVRFAgaGFzaCB0YWJsZSBlbnRyaWVzOiA4MTky IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzKQpbICAgIDEuNDU3NjcxXSBVRFAtTGl0ZSBoYXNoIHRh YmxlIGVudHJpZXM6IDgxOTIgKG9yZGVyOiA2LCAyNjIxNDQgYnl0ZXMpClsgICAgMS40NTgwNThd IE5FVDogUmVnaXN0ZXJlZCBwcm90b2NvbCBmYW1pbHkgMQpbICAgIDEuNDU4MzA1XSBwY2kgMDAw MDowMTowMy4wOiBCb290IHZpZGVvIGRldmljZQpbICAgIDEuNDU5NjEwXSBQQ0k6IENMUyA2NCBi eXRlcywgZGVmYXVsdCA2NApbICAgIDEuNDU5NjMyXSBQQ0ktRE1BOiBVc2luZyBzb2Z0d2FyZSBi b3VuY2UgYnVmZmVyaW5nIGZvciBJTyAoU1dJT1RMQikKWyAgICAxLjQ1OTc0M10gUGxhY2luZyA2 NE1CIHNvZnR3YXJlIElPIFRMQiBiZXR3ZWVuIGZmZmY4ODAwMjAwMDAwMDAgLSBmZmZmODgwMDI0 MDAwMDAwClsgICAgMS40NTk5MThdIHNvZnR3YXJlIElPIFRMQiBhdCBwaHlzIDB4MjAwMDAwMDAg LSAweDI0MDAwMDAwClsgICAgMS40NjAzMzJdIHBsYXRmb3JtIHJ0Y19jbW9zOiByZWdpc3RlcmVk IHBsYXRmb3JtIFJUQyBkZXZpY2UgKG5vIFBOUCBkZXZpY2UgZm91bmQpClsgICAgMS40NjM2MTRd IG1pY3JvY29kZTogQ1BVMCBzaWc9MHg2ZjcsIHBmPTB4NDAsIHJldmlzaW9uPTB4NjYKWyAgICAx LjQ2MzczMF0gbWljcm9jb2RlOiBDUFUxIHNpZz0weDZmNywgcGY9MHg0MCwgcmV2aXNpb249MHg2 NgpbICAgIDEuNDYzODY3XSBtaWNyb2NvZGU6IENQVTIgc2lnPTB4NmY3LCBwZj0weDQwLCByZXZp c2lvbj0weDY2ClsgICAgMS40NjM5ODRdIG1pY3JvY29kZTogQ1BVMyBzaWc9MHg2ZjcsIHBmPTB4 NDAsIHJldmlzaW9uPTB4NjYKWyAgICAxLjQ2NDA5OV0gbWljcm9jb2RlOiBDUFU0IHNpZz0weDZm NywgcGY9MHg0MCwgcmV2aXNpb249MHg2NgpbICAgIDEuNDY0MjE1XSBtaWNyb2NvZGU6IENQVTUg c2lnPTB4NmY3LCBwZj0weDQwLCByZXZpc2lvbj0weDY2ClsgICAgMS40NjQzMzFdIG1pY3JvY29k ZTogQ1BVNiBzaWc9MHg2ZjcsIHBmPTB4NDAsIHJldmlzaW9uPTB4NjYKWyAgICAxLjQ2NDQ0Nl0g bWljcm9jb2RlOiBDUFU3IHNpZz0weDZmNywgcGY9MHg0MCwgcmV2aXNpb249MHg2NgpbICAgIDEu NDY0NjExXSBtaWNyb2NvZGU6IE1pY3JvY29kZSBVcGRhdGUgRHJpdmVyOiB2Mi4wMCA8dGlncmFu QGFpdmF6aWFuLmZzbmV0LmNvLnVrPiwgUGV0ZXIgT3J1YmEKWyAgICAxLjQ2OTMxOF0gU0dJIFhG UyB3aXRoIEFDTHMsIHNlY3VyaXR5IGF0dHJpYnV0ZXMsIGxhcmdlIGJsb2NrL2lub2RlIG51bWJl cnMsIG5vIGRlYnVnIGVuYWJsZWQKWyAgICAxLjQ3MDY1M10gbXNnbW5pIGhhcyBiZWVuIHNldCB0 byAxOTk5NApbICAgIDEuNDcwODYxXSBpbyBzY2hlZHVsZXIgbm9vcCByZWdpc3RlcmVkClsgICAg MS40NzEwOTZdIGlvIHNjaGVkdWxlciBjZnEgcmVnaXN0ZXJlZCAoZGVmYXVsdCkKWyAgICAxLjQ3 MTM0NF0gcGNpZXBvcnQgMDAwMDowMDowMi4wOiBzZXR0aW5nIGxhdGVuY3kgdGltZXIgdG8gNjQK WyAgICAxLjQ3MTM3M10gcGNpZXBvcnQgMDAwMDowMDowMi4wOiBpcnEgNDggZm9yIE1TSS9NU0kt WApbICAgIDEuNDcxNDk5XSBwY2llcG9ydCAwMDAwOjAwOjAzLjA6IHNldHRpbmcgbGF0ZW5jeSB0 aW1lciB0byA2NApbICAgIDEuNDcxNTIzXSBwY2llcG9ydCAwMDAwOjAwOjAzLjA6IGlycSA0OSBm b3IgTVNJL01TSS1YClsgICAgMS40NzE2NTBdIHBjaWVwb3J0IDAwMDA6MDA6MDQuMDogc2V0dGlu ZyBsYXRlbmN5IHRpbWVyIHRvIDY0ClsgICAgMS40NzE2NzNdIHBjaWVwb3J0IDAwMDA6MDA6MDQu MDogaXJxIDUwIGZvciBNU0kvTVNJLVgKWyAgICAxLjQ3MTc5Ml0gcGNpZXBvcnQgMDAwMDowMDow NS4wOiBzZXR0aW5nIGxhdGVuY3kgdGltZXIgdG8gNjQKWyAgICAxLjQ3MTgxNl0gcGNpZXBvcnQg MDAwMDowMDowNS4wOiBpcnEgNTEgZm9yIE1TSS9NU0ktWApbICAgIDEuNDcxOTUwXSBwY2llcG9y dCAwMDAwOjAwOjA2LjA6IHNldHRpbmcgbGF0ZW5jeSB0aW1lciB0byA2NApbICAgIDEuNDcxOTcz XSBwY2llcG9ydCAwMDAwOjAwOjA2LjA6IGlycSA1MiBmb3IgTVNJL01TSS1YClsgICAgMS40NzIw OTVdIHBjaWVwb3J0IDAwMDA6MDA6MDcuMDogc2V0dGluZyBsYXRlbmN5IHRpbWVyIHRvIDY0Clsg ICAgMS40NzIxMThdIHBjaWVwb3J0IDAwMDA6MDA6MDcuMDogaXJxIDUzIGZvciBNU0kvTVNJLVgK WyAgICAxLjQ3MjM5M10gcGNpZXBvcnQgMDAwMDowOTowMC4wOiBzZXR0aW5nIGxhdGVuY3kgdGlt ZXIgdG8gNjQKWyAgICAxLjQ3MzM1Ml0gcGNpZXBvcnQgMDAwMDowYTowMC4wOiBzZXR0aW5nIGxh dGVuY3kgdGltZXIgdG8gNjQKWyAgICAxLjQ3NDk1Ml0gcGNpZXBvcnQgMDAwMDowYTowMC4wOiBp cnEgNTQgZm9yIE1TSS9NU0ktWApbICAgIDEuNDc2NjUwXSBwY2llcG9ydCAwMDAwOjBhOjAxLjA6 IHNldHRpbmcgbGF0ZW5jeSB0aW1lciB0byA2NApbICAgIDEuNDc4MjQ5XSBwY2llcG9ydCAwMDAw OjBhOjAxLjA6IGlycSA1NSBmb3IgTVNJL01TSS1YClsgICAgMS40Nzk5NDhdIHBjaWVwb3J0IDAw MDA6MGE6MDIuMDogc2V0dGluZyBsYXRlbmN5IHRpbWVyIHRvIDY0ClsgICAgMS40ODE1NDddIHBj aWVwb3J0IDAwMDA6MGE6MDIuMDogaXJxIDU2IGZvciBNU0kvTVNJLVgKWyAgICAxLjQ4MzEyM10g YWVyIDAwMDA6MDA6MDIuMDpwY2llMDI6IEFFUiBzZXJ2aWNlIGNvdWxkbid0IGluaXQgZGV2aWNl OiBubyBfT1NDIHN1cHBvcnQKWyAgICAxLjQ4MzEyOV0gYWVyIDAwMDA6MDA6MDMuMDpwY2llMDI6 IEFFUiBzZXJ2aWNlIGNvdWxkbid0IGluaXQgZGV2aWNlOiBubyBfT1NDIHN1cHBvcnQKWyAgICAx LjQ4MzEzNF0gYWVyIDAwMDA6MDA6MDQuMDpwY2llMDI6IEFFUiBzZXJ2aWNlIGNvdWxkbid0IGlu aXQgZGV2aWNlOiBubyBfT1NDIHN1cHBvcnQKWyAgICAxLjQ4MzEzOV0gYWVyIDAwMDA6MDA6MDUu MDpwY2llMDI6IEFFUiBzZXJ2aWNlIGNvdWxkbid0IGluaXQgZGV2aWNlOiBubyBfT1NDIHN1cHBv cnQKWyAgICAxLjQ4MzE0NF0gYWVyIDAwMDA6MDA6MDYuMDpwY2llMDI6IEFFUiBzZXJ2aWNlIGNv dWxkbid0IGluaXQgZGV2aWNlOiBubyBfT1NDIHN1cHBvcnQKWyAgICAxLjQ4MzE0OV0gYWVyIDAw MDA6MDA6MDcuMDpwY2llMDI6IEFFUiBzZXJ2aWNlIGNvdWxkbid0IGluaXQgZGV2aWNlOiBubyBf T1NDIHN1cHBvcnQKWyAgICAxLjQ4MzUzOF0gaW5wdXQ6IFBvd2VyIEJ1dHRvbiBhcyAvZGV2aWNl cy9MTlhTWVNUTTowMC9MTlhQV1JCTjowMC9pbnB1dC9pbnB1dDAKWyAgICAxLjQ4MzcxNF0gQUNQ STogUG93ZXIgQnV0dG9uIFtQV1JGXQpbICAgIDEuNDg0ODkyXSB0aGVybWFsIExOWFRIRVJNOjAx OiByZWdpc3RlcmVkIGFzIHRoZXJtYWxfem9uZTAKWyAgICAxLjQ4NTAwOF0gQUNQSTogVGhlcm1h bCBab25lIFtUSE0wXSAoOCBDKQpbICAgIDEuNDg4ODYzXSBMaW51eCBhZ3BnYXJ0IGludGVyZmFj ZSB2MC4xMDMKWyAgICAxLjQ4OTA4Ml0gW2RybV0gSW5pdGlhbGl6ZWQgZHJtIDEuMS4wIDIwMDYw ODEwClsgICAgMS40ODk1NjZdIHBjaSAwMDAwOjAxOjAzLjA6IFBDSSBJTlQgQSAtPiBHU0kgMjMg KGxldmVsLCBsb3cpIC0+IElSUSAyMwpbICAgIDEuNDg5ODA2XSBbZHJtXSBJbml0aWFsaXplZCBy YWRlb24gMS4zMS4wIDIwMDgwNTI4IGZvciAwMDAwOjAxOjAzLjAgb24gbWlub3IgMApbICAgIDEu NDkxMTMxXSBTZXJpYWw6IDgyNTAvMTY1NTAgZHJpdmVyLCA0IHBvcnRzLCBJUlEgc2hhcmluZyBk aXNhYmxlZApbICAgIDEuNDkxMzY5XSBzZXJpYWw4MjUwOiB0dHlTMCBhdCBJL08gMHgzZjggKGly cSA9IDQpIGlzIGEgMTY1NTBBClsgICAgMS40OTE1ODBdIHNlcmlhbDgyNTA6IHR0eVMxIGF0IEkv TyAweDJmOCAoaXJxID0gMykgaXMgYSAxNjU1MEEKWyAgICAxLjQ5MjE1Nl0gMDA6MDk6IHR0eVMw IGF0IEkvTyAweDNmOCAoaXJxID0gNCkgaXMgYSAxNjU1MEEKWyAgICAxLjQ5MjQ2M10gSFAgQ0lT UyBEcml2ZXIgKHYgMy42LjIwKQpbICAgIDEuNDkyNjc0XSBjY2lzcyAwMDAwOjA2OjAwLjA6IFBD SSBJTlQgQSAtPiBHU0kgMTYgKGxldmVsLCBsb3cpIC0+IElSUSAxNgpbICAgIDEuNDkyODE5XSBj Y2lzcyAwMDAwOjA2OjAwLjA6IGlycSA1NyBmb3IgTVNJL01TSS1YClsgICAgMS40OTI4MjNdIGNj aXNzIDAwMDA6MDY6MDAuMDogaXJxIDU4IGZvciBNU0kvTVNJLVgKWyAgICAxLjQ5MjgyNl0gY2Np c3MgMDAwMDowNjowMC4wOiBpcnEgNTkgZm9yIE1TSS9NU0ktWApbICAgIDEuNDkyODI5XSBjY2lz cyAwMDAwOjA2OjAwLjA6IGlycSA2MCBmb3IgTVNJL01TSS1YClsgICAgMS41MzE5NDBdIElSUSA1 OS9jY2lzczA6IElSUUZfRElTQUJMRUQgaXMgbm90IGd1YXJhbnRlZWQgb24gc2hhcmVkIElSUXMK WyAgICAxLjUzMjA2M10gY2Npc3MwOiA8MHgzMjMwPiBhdCBQQ0kgMDAwMDowNjowMC4wIElSUSA1 OSB1c2luZyBEQUMKWyAgICAxLjUzMzk4Ml0gIGNjaXNzL2MwZDA6IHAxIHAyClsgICAgMS41MzQ3 OTRdIGhwaWxvIDAwMDA6MDE6MDQuMjogUENJIElOVCBCIC0+IEdTSSAyMiAobGV2ZWwsIGxvdykg LT4gSVJRIDIyClsgICAgMS41MzU4NTZdIFBOUDogUFMvMiBDb250cm9sbGVyIFtQTlAwMzAzOktC RCxQTlAwZjBlOlBTMk1dIGF0IDB4NjAsMHg2NCBpcnEgMSwxMgpbICAgIDEuNTM3NzIwXSBzZXJp bzogaTgwNDIgS0JEIHBvcnQgYXQgMHg2MCwweDY0IGlycSAxClsgICAgMS41Mzc4MzddIHNlcmlv OiBpODA0MiBBVVggcG9ydCBhdCAweDYwLDB4NjQgaXJxIDEyClsgICAgMS41MzgxNTJdIG1pY2U6 IFBTLzIgbW91c2UgZGV2aWNlIGNvbW1vbiBmb3IgYWxsIG1pY2UKWyAgICAxLjUzODQ3MF0gcnRj X2Ntb3MgcnRjX2Ntb3M6IFJUQyBjYW4gd2FrZSBmcm9tIFM0ClsgICAgMS41Mzg2NDldIHJ0Y19j bW9zIHJ0Y19jbW9zOiBydGMgY29yZTogcmVnaXN0ZXJlZCBydGNfY21vcyBhcyBydGMwClsgICAg MS41Mzg3NzldIHJ0YzA6IGFsYXJtcyB1cCB0byBvbmUgeWVhciwgeTNrLCAxMTQgYnl0ZXMgbnZy YW0sIGhwZXQgaXJxcwpbICAgIDEuNTM5MTUyXSBjcHVpZGxlOiB1c2luZyBnb3Zlcm5vciBsYWRk ZXIKWyAgICAxLjUzOTI1N10gY3B1aWRsZTogdXNpbmcgZ292ZXJub3IgbWVudQpbICAgIDEuNTM5 MzYxXSBpb2F0ZG1hOiBJbnRlbChSKSBRdWlja0RhdGEgVGVjaG5vbG9neSBEcml2ZXIgNC4wMApb ICAgIDEuNTQwODA1XSB1c2Jjb3JlOiByZWdpc3RlcmVkIG5ldyBpbnRlcmZhY2UgZHJpdmVyIHVz YmhpZApbICAgIDEuNTQwOTEzXSB1c2JoaWQ6IFVTQiBISUQgY29yZSBkcml2ZXIKWyAgICAxLjU0 MTAxN10gTmV0ZmlsdGVyIG1lc3NhZ2VzIHZpYSBORVRMSU5LIHYwLjMwLgpbICAgIDEuNTQxMTQ2 XSBuZl9jb25udHJhY2sgdmVyc2lvbiAwLjUuMCAoMTYzODQgYnVja2V0cywgNjU1MzYgbWF4KQpb ICAgIDEuNTQxNDAzXSBDT05GSUdfTkZfQ1RfQUNDVCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJl IHJlbW92ZWQgc29vbi4gUGxlYXNlIHVzZQpbICAgIDEuNTQzMDA3XSBuZl9jb25udHJhY2suYWNj dD0xIGtlcm5lbCBwYXJhbWV0ZXIsIGFjY3Q9MSBuZl9jb25udHJhY2sgbW9kdWxlIG9wdGlvbiBv cgpbICAgIDEuNTQzMTgyXSBzeXNjdGwgbmV0Lm5ldGZpbHRlci5uZl9jb25udHJhY2tfYWNjdD0x IHRvIGVuYWJsZSBpdC4KWyAgICAxLjU0MzMxM10geHRfdGltZToga2VybmVsIHRpbWV6b25lIGlz IC0wMDAwClsgICAgMS41NDM0NjldIGlwX3RhYmxlczogKEMpIDIwMDAtMjAwNiBOZXRmaWx0ZXIg Q29yZSBUZWFtClsgICAgMS41NDM1ODddIFRDUCBjdWJpYyByZWdpc3RlcmVkClsgICAgMS41NDQw MDJdIE5FVDogUmVnaXN0ZXJlZCBwcm90b2NvbCBmYW1pbHkgMTAKWyAgICAxLjU0NDMwN10gaXA2 X3RhYmxlczogKEMpIDIwMDAtMjAwNiBOZXRmaWx0ZXIgQ29yZSBUZWFtClsgICAgMS41NDQ0MzNd IE5FVDogUmVnaXN0ZXJlZCBwcm90b2NvbCBmYW1pbHkgMTcKWyAgICAxLjU0OTExN10gcnRjX2Nt b3MgcnRjX2Ntb3M6IHNldHRpbmcgc3lzdGVtIGNsb2NrIHRvIDIwMTAtMDItMTkgMDc6NDI6MTQg VVRDICgxMjY2NTY1MzM0KQpbICAgIDEuNTkyNTY5XSBpbnB1dDogQVQgVHJhbnNsYXRlZCBTZXQg MiBrZXlib2FyZCBhcyAvZGV2aWNlcy9wbGF0Zm9ybS9pODA0Mi9zZXJpbzAvaW5wdXQvaW5wdXQx ClsgICAgMi40NzQyMjFdIGlucHV0OiBJbUV4UFMvMiBHZW5lcmljIEV4cGxvcmVyIE1vdXNlIGFz IC9kZXZpY2VzL3BsYXRmb3JtL2k4MDQyL3NlcmlvMS9pbnB1dC9pbnB1dDIKWyAgICAyLjQ3OTMy NV0gRmlsZXN5c3RlbSAiY2Npc3MvYzBkMHAxIjogRGlzYWJsaW5nIGJhcnJpZXJzLCB0cmlhbCBi YXJyaWVyIHdyaXRlIGZhaWxlZApbICAgIDIuNDg2NDYzXSBYRlMgbW91bnRpbmcgZmlsZXN5c3Rl bSBjY2lzcy9jMGQwcDEKWyAgICAyLjUzMTQ2MV0gRW5kaW5nIGNsZWFuIFhGUyBtb3VudCBmb3Ig ZmlsZXN5c3RlbTogY2Npc3MvYzBkMHAxClsgICAgMi41MzE1MDldIFZGUzogTW91bnRlZCByb290 ICh4ZnMgZmlsZXN5c3RlbSkgcmVhZG9ubHkgb24gZGV2aWNlIDEwNDoxLgpbICAgIDIuNTMxNjM2 XSBGcmVlaW5nIHVudXNlZCBrZXJuZWwgbWVtb3J5OiA0MzZrIGZyZWVkClsgICAgMi41MzE4OTVd IFdyaXRlIHByb3RlY3RpbmcgdGhlIGtlcm5lbCByZWFkLW9ubHkgZGF0YTogODE5MmsKWyAgICAy LjUzMjIyOF0gRnJlZWluZyB1bnVzZWQga2VybmVsIG1lbW9yeTogMjAxMmsgZnJlZWQKWyAgICAy LjUzMzEzNV0gRnJlZWluZyB1bnVzZWQga2VybmVsIG1lbW9yeTogNjg4ayBmcmVlZApbICAgIDIu OTMzNTQxXSBpb2N0bDMyKHNob3djb25zb2xlOjczNSk6IFVua25vd24gY21kIGZkKDApIGNtZCg4 MDA0NTQzMil7dDonVCc7c3o6NH0gYXJnKGZmOTU0MzU4KSBvbiAvZGV2L2NvbnNvbGUKWyAgICAz LjI3ODIyNl0gdWRldmQgdmVyc2lvbiAxMjggc3RhcnRlZApbICAgIDMuMzgxNjIzXSBlaGNpX2hj ZDogVVNCIDIuMCAnRW5oYW5jZWQnIEhvc3QgQ29udHJvbGxlciAoRUhDSSkgRHJpdmVyClsgICAg My4zODE4NDFdIGVoY2lfaGNkIDAwMDA6MDA6MWQuNzogUENJIElOVCBBIC0+IEdTSSAxNiAobGV2 ZWwsIGxvdykgLT4gSVJRIDE2ClsgICAgMy4zODE5OTZdIGVoY2lfaGNkIDAwMDA6MDA6MWQuNzog c2V0dGluZyBsYXRlbmN5IHRpbWVyIHRvIDY0ClsgICAgMy4zODIwMDBdIGVoY2lfaGNkIDAwMDA6 MDA6MWQuNzogRUhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAzLjM4MjExNV0gZWhjaV9oY2QgMDAw MDowMDoxZC43OiBuZXcgVVNCIGJ1cyByZWdpc3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDEK WyAgICAzLjM4MjMyOV0gZWhjaV9oY2QgMDAwMDowMDoxZC43OiBkZWJ1ZyBwb3J0IDEKWyAgICAz LjM4NjMwOV0gZWhjaV9oY2QgMDAwMDowMDoxZC43OiBjYWNoZSBsaW5lIHNpemUgb2YgNjQgaXMg bm90IHN1cHBvcnRlZApbICAgIDMuMzg2MzMyXSBlaGNpX2hjZCAwMDAwOjAwOjFkLjc6IGlycSAx NiwgaW8gbWVtIDB4ZjdkZjAwMDAKWyAgICAzLjQwMjUyMF0gZWhjaV9oY2QgMDAwMDowMDoxZC43 OiBVU0IgMi4wIHN0YXJ0ZWQsIEVIQ0kgMS4wMApbICAgIDMuNDAyNjU5XSB1c2IgdXNiMTogTmV3 IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAyClsgICAgMy40 MDI3NjldIHVzYiB1c2IxOiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9MywgUHJvZHVjdD0y LCBTZXJpYWxOdW1iZXI9MQpbICAgIDMuNDAyOTQzXSB1c2IgdXNiMTogUHJvZHVjdDogRUhDSSBI b3N0IENvbnRyb2xsZXIKWyAgICAzLjQwMzA0OV0gdXNiIHVzYjE6IE1hbnVmYWN0dXJlcjogTGlu dXggMi42LjMzLXJjOC1naXQzLXg4Nl82NCBlaGNpX2hjZApbICAgIDMuNDAzMTU4XSB1c2IgdXNi MTogU2VyaWFsTnVtYmVyOiAwMDAwOjAwOjFkLjcKWyAgICAzLjQwMzM1OV0gaHViIDEtMDoxLjA6 IFVTQiBodWIgZm91bmQKWyAgICAzLjQwMzQ2Nl0gaHViIDEtMDoxLjA6IDggcG9ydHMgZGV0ZWN0 ZWQKWyAgICAzLjQ1MzQxOV0gbGliYXRhIHZlcnNpb24gMy4wMCBsb2FkZWQuClsgICAgMy41Mjcx ODddIGlwbWkgbWVzc2FnZSBoYW5kbGVyIHZlcnNpb24gMzkuMgpbICAgIDMuNjEwMDQyXSBRTG9n aWMgRmlicmUgQ2hhbm5lbCBIQkEgRHJpdmVyOiA4LjAzLjAxLWsxMApbICAgIDMuNjEwMzM4XSBx bGEyeHh4IDAwMDA6MTA6MDEuMDogUENJIElOVCBBIC0+IEdTSSAyNCAobGV2ZWwsIGxvdykgLT4g SVJRIDI0ClsgICAgMy42MTE2MDVdIHFsYTJ4eHggMDAwMDoxMDowMS4wOiBGb3VuZCBhbiBJU1Ay NDIyLCBpcnEgMjQsIGlvYmFzZSAweGZmZmZjOTAwMTAwYWUwMDAKWyAgICAzLjYxMzI2N10gcWxh Mnh4eCAwMDAwOjEwOjAxLjA6IGlycSA2MSBmb3IgTVNJL01TSS1YClsgICAgMy42MTM4MjhdIHFs YTJ4eHggMDAwMDoxMDowMS4wOiBDb25maWd1cmluZyBQQ0kgc3BhY2UuLi4KWyAgICAzLjY0NDM5 OF0gcWxhMnh4eCAwMDAwOjEwOjAxLjA6IENvbmZpZ3VyZSBOVlJBTSBwYXJhbWV0ZXJzLi4uClsg ICAgMy42NjkyMzBdIEJyb2FkY29tIE5ldFh0cmVtZSBJSSBHaWdhYml0IEV0aGVybmV0IERyaXZl ciBibngyIHYyLjAuMyAoRGVjIDAzLCAyMDA5KQpbICAgIDMuNjY5NDMwXSBibngyIDAwMDA6MDM6 MDAuMDogQkFSIDA6IHNldCB0byBbbWVtIDB4ZjgwMDAwMDAtMHhmOWZmZmZmZiA2NGJpdF0gKFBD SSBhZGRyZXNzIFsweGY4MDAwMDAwLTB4ZjlmZmZmZmZdClsgICAgMy42Njk2MThdIGJueDIgMDAw MDowMzowMC4wOiBQQ0kgSU5UIEEgLT4gR1NJIDE4IChsZXZlbCwgbG93KSAtPiBJUlEgMTgKWyAg ICAzLjY3OTk1OF0gcWxhMnh4eCAwMDAwOjEwOjAxLjA6IFZlcmlmeWluZyBsb2FkZWQgUklTQyBj b2RlLi4uClsgICAgMy42OTQ0MDJdIHFsYTJ4eHggMDAwMDoxMDowMS4wOiBmaXJtd2FyZTogcmVx dWVzdGluZyBxbDI0MDBfZncuYmluClsgICAgMy43MzIzOTZdIGhwd2R0IDAwMDA6MDE6MDQuMDog UENJIElOVCBBIC0+IEdTSSAyMSAobGV2ZWwsIGxvdykgLT4gSVJRIDIxClsgICAgMy43MzI1NTFd IGhwd2R0OiBOZXcgdGltZXIgcGFzc2VkIGluIGlzIDMwIHNlY29uZHMuClsgICAgMy43MzI2Mjhd IGhwIFdhdGNoZG9nIFRpbWVyIERyaXZlcjogMS4xLjEsIHRpbWVyIG1hcmdpbjogMzAgc2Vjb25k cyAobm93YXlvdXQ9MCksIGFsbG93IGtlcm5lbCBkdW1wOiBPRkYgKGRlZmF1bHQgPSAwL09GRiks IHByaW9yaXR5OiBMQVNUIChkZWZhdWx0ID0gMC9MQVNUKS4KWyAgICAzLjc0NjE4Ml0gdWhjaV9o Y2Q6IFVTQiBVbml2ZXJzYWwgSG9zdCBDb250cm9sbGVyIEludGVyZmFjZSBkcml2ZXIKWyAgICAz Ljc0NjM5MV0gdWhjaV9oY2QgMDAwMDowMDoxZC4wOiBQQ0kgSU5UIEEgLT4gR1NJIDE2IChsZXZl bCwgbG93KSAtPiBJUlEgMTYKWyAgICAzLjc0NjUxMl0gdWhjaV9oY2QgMDAwMDowMDoxZC4wOiBz ZXR0aW5nIGxhdGVuY3kgdGltZXIgdG8gNjQKWyAgICAzLjc0NjUxNV0gdWhjaV9oY2QgMDAwMDow MDoxZC4wOiBVSENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDMuNzQ2NjMwXSB1aGNpX2hjZCAwMDAw OjAwOjFkLjA6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2lnbmVkIGJ1cyBudW1iZXIgMgpb ICAgIDMuNzQ2ODMyXSB1aGNpX2hjZCAwMDAwOjAwOjFkLjA6IGlycSAxNiwgaW8gYmFzZSAweDAw MDAxMDAwClsgICAgMy43NDY5OTJdIHVzYiB1c2IyOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRW ZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDEKWyAgICAzLjc0NzEwMl0gdXNiIHVzYjI6IE5ldyBV U0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0xClsgICAg My43NDcyNzZdIHVzYiB1c2IyOiBQcm9kdWN0OiBVSENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDMu NzQ3MzgyXSB1c2IgdXNiMjogTWFudWZhY3R1cmVyOiBMaW51eCAyLjYuMzMtcmM4LWdpdDMteDg2 XzY0IHVoY2lfaGNkClsgICAgMy43NDc0OTJdIHVzYiB1c2IyOiBTZXJpYWxOdW1iZXI6IDAwMDA6 MDA6MWQuMApbICAgIDMuNzQ3Njc1XSBodWIgMi0wOjEuMDogVVNCIGh1YiBmb3VuZApbICAgIDMu NzQ3NzgzXSBodWIgMi0wOjEuMDogMiBwb3J0cyBkZXRlY3RlZApbICAgIDMuNzQ3OTMyXSB1aGNp X2hjZCAwMDAwOjAwOjFkLjE6IFBDSSBJTlQgQiAtPiBHU0kgMTcgKGxldmVsLCBsb3cpIC0+IElS USAxNwpbICAgIDMuNzQ4MDQ3XSB1aGNpX2hjZCAwMDAwOjAwOjFkLjE6IHNldHRpbmcgbGF0ZW5j eSB0aW1lciB0byA2NApbICAgIDMuNzQ4MDUwXSB1aGNpX2hjZCAwMDAwOjAwOjFkLjE6IFVIQ0kg SG9zdCBDb250cm9sbGVyClsgICAgMy43NDgxNjFdIHVoY2lfaGNkIDAwMDA6MDA6MWQuMTogbmV3 IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciAzClsgICAgMy43NDgzNjhd IHVoY2lfaGNkIDAwMDA6MDA6MWQuMTogaXJxIDE3LCBpbyBiYXNlIDB4MDAwMDEwMjAKWyAgICAz Ljc0ODUwOV0gdXNiIHVzYjM6IE5ldyBVU0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBp ZFByb2R1Y3Q9MDAwMQpbICAgIDMuNzQ4NjIwXSB1c2IgdXNiMzogTmV3IFVTQiBkZXZpY2Ugc3Ry aW5nczogTWZyPTMsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTEKWyAgICAzLjc0ODc5NF0gdXNi IHVzYjM6IFByb2R1Y3Q6IFVIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMy43NDg5MDBdIHVzYiB1 c2IzOiBNYW51ZmFjdHVyZXI6IExpbnV4IDIuNi4zMy1yYzgtZ2l0My14ODZfNjQgdWhjaV9oY2QK WyAgICAzLjc0OTAxMF0gdXNiIHVzYjM6IFNlcmlhbE51bWJlcjogMDAwMDowMDoxZC4xClsgICAg My43NDkxNzhdIGh1YiAzLTA6MS4wOiBVU0IgaHViIGZvdW5kClsgICAgMy43NDkyODddIGh1YiAz LTA6MS4wOiAyIHBvcnRzIGRldGVjdGVkClsgICAgMy43NDk0MjldIHVoY2lfaGNkIDAwMDA6MDA6 MWQuMjogUENJIElOVCBDIC0+IEdTSSAxOCAobGV2ZWwsIGxvdykgLT4gSVJRIDE4ClsgICAgMy43 NDk1NDNdIHVoY2lfaGNkIDAwMDA6MDA6MWQuMjogc2V0dGluZyBsYXRlbmN5IHRpbWVyIHRvIDY0 ClsgICAgMy43NDk1NDZdIHVoY2lfaGNkIDAwMDA6MDA6MWQuMjogVUhDSSBIb3N0IENvbnRyb2xs ZXIKWyAgICAzLjc0OTY1OF0gdWhjaV9oY2QgMDAwMDowMDoxZC4yOiBuZXcgVVNCIGJ1cyByZWdp c3RlcmVkLCBhc3NpZ25lZCBidXMgbnVtYmVyIDQKWyAgICAzLjc0OTg1OV0gdWhjaV9oY2QgMDAw MDowMDoxZC4yOiBpcnEgMTgsIGlvIGJhc2UgMHgwMDAwMTA0MApbICAgIDMuNzUwMDAyXSB1c2Ig dXNiNDogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTFkNmIsIGlkUHJvZHVjdD0wMDAx ClsgICAgMy43NTAxMTJdIHVzYiB1c2I0OiBOZXcgVVNCIGRldmljZSBzdHJpbmdzOiBNZnI9Mywg UHJvZHVjdD0yLCBTZXJpYWxOdW1iZXI9MQpbICAgIDMuNzUwMjg4XSB1c2IgdXNiNDogUHJvZHVj dDogVUhDSSBIb3N0IENvbnRyb2xsZXIKWyAgICAzLjc1MDM5NF0gdXNiIHVzYjQ6IE1hbnVmYWN0 dXJlcjogTGludXggMi42LjMzLXJjOC1naXQzLXg4Nl82NCB1aGNpX2hjZApbICAgIDMuNzUwNTA0 XSB1c2IgdXNiNDogU2VyaWFsTnVtYmVyOiAwMDAwOjAwOjFkLjIKWyAgICAzLjc1MDY2Nl0gaHVi IDQtMDoxLjA6IFVTQiBodWIgZm91bmQKWyAgICAzLjc1MDc3M10gaHViIDQtMDoxLjA6IDIgcG9y dHMgZGV0ZWN0ZWQKWyAgICAzLjc1MDkxN10gdWhjaV9oY2QgMDAwMDowMDoxZC4zOiBQQ0kgSU5U IEQgLT4gR1NJIDE5IChsZXZlbCwgbG93KSAtPiBJUlEgMTkKWyAgICAzLjc1MTAzMl0gdWhjaV9o Y2QgMDAwMDowMDoxZC4zOiBzZXR0aW5nIGxhdGVuY3kgdGltZXIgdG8gNjQKWyAgICAzLjc1MTAz NV0gdWhjaV9oY2QgMDAwMDowMDoxZC4zOiBVSENJIEhvc3QgQ29udHJvbGxlcgpbICAgIDMuNzUx MTQ1XSB1aGNpX2hjZCAwMDAwOjAwOjFkLjM6IG5ldyBVU0IgYnVzIHJlZ2lzdGVyZWQsIGFzc2ln bmVkIGJ1cyBudW1iZXIgNQpbICAgIDMuNzUxMzQ2XSB1aGNpX2hjZCAwMDAwOjAwOjFkLjM6IGly cSAxOSwgaW8gYmFzZSAweDAwMDAxMDYwClsgICAgMy43NTE0ODJdIHVzYiB1c2I1OiBOZXcgVVNC IGRldmljZSBmb3VuZCwgaWRWZW5kb3I9MWQ2YiwgaWRQcm9kdWN0PTAwMDEKWyAgICAzLjc1MTU5 Ml0gdXNiIHVzYjU6IE5ldyBVU0IgZGV2aWNlIHN0cmluZ3M6IE1mcj0zLCBQcm9kdWN0PTIsIFNl cmlhbE51bWJlcj0xClsgICAgMy43NTE3NjVdIHVzYiB1c2I1OiBQcm9kdWN0OiBVSENJIEhvc3Qg Q29udHJvbGxlcgpbICAgIDMuNzUxODcxXSB1c2IgdXNiNTogTWFudWZhY3R1cmVyOiBMaW51eCAy LjYuMzMtcmM4LWdpdDMteDg2XzY0IHVoY2lfaGNkClsgICAgMy43NTE5ODBdIHVzYiB1c2I1OiBT ZXJpYWxOdW1iZXI6IDAwMDA6MDA6MWQuMwpbICAgIDMuNzUyMTQxXSBodWIgNS0wOjEuMDogVVNC IGh1YiBmb3VuZApbICAgIDMuNzUyMjQ4XSBodWIgNS0wOjEuMDogMiBwb3J0cyBkZXRlY3RlZApb ICAgIDMuNzUyMzk2XSB1aGNpX2hjZCAwMDAwOjAxOjA0LjQ6IFBDSSBJTlQgQiAtPiBHU0kgMjIg KGxldmVsLCBsb3cpIC0+IElSUSAyMgpbICAgIDMuNzUyNTExXSB1aGNpX2hjZCAwMDAwOjAxOjA0 LjQ6IFVIQ0kgSG9zdCBDb250cm9sbGVyClsgICAgMy43NTI2MjJdIHVoY2lfaGNkIDAwMDA6MDE6 MDQuNDogbmV3IFVTQiBidXMgcmVnaXN0ZXJlZCwgYXNzaWduZWQgYnVzIG51bWJlciA2ClsgICAg My43NTI4MDZdIHVoY2lfaGNkIDAwMDA6MDE6MDQuNDogcG9ydCBjb3VudCBtaXNkZXRlY3RlZD8g Zm9yY2luZyB0byAyIHBvcnRzClsgICAgMy43NTM4OTddIHVoY2lfaGNkIDAwMDA6MDE6MDQuNDog aXJxIDIyLCBpbyBiYXNlIDB4MDAwMDM4MDAKWyAgICAzLjc1NDI1MF0gdXNiIHVzYjY6IE5ldyBV U0IgZGV2aWNlIGZvdW5kLCBpZFZlbmRvcj0xZDZiLCBpZFByb2R1Y3Q9MDAwMQpbICAgIDMuNzU0 MzYwXSB1c2IgdXNiNjogTmV3IFVTQiBkZXZpY2Ugc3RyaW5nczogTWZyPTMsIFByb2R1Y3Q9Miwg U2VyaWFsTnVtYmVyPTEKWyAgICAzLjc1NDUzNV0gdXNiIHVzYjY6IFByb2R1Y3Q6IFVIQ0kgSG9z dCBDb250cm9sbGVyClsgICAgMy43NTQ2NDFdIHVzYiB1c2I2OiBNYW51ZmFjdHVyZXI6IExpbnV4 IDIuNi4zMy1yYzgtZ2l0My14ODZfNjQgdWhjaV9oY2QKWyAgICAzLjc1NDc1MV0gdXNiIHVzYjY6 IFNlcmlhbE51bWJlcjogMDAwMDowMTowNC40ClsgICAgMy43NTQ5MThdIGh1YiA2LTA6MS4wOiBV U0IgaHViIGZvdW5kClsgICAgMy43NTUwMjZdIGh1YiA2LTA6MS4wOiAyIHBvcnRzIGRldGVjdGVk ClsgICAgMy43NTg2NjRdIGF0YV9waWl4IDAwMDA6MDA6MWYuMTogdmVyc2lvbiAyLjEzClsgICAg My43NTg2ODBdIGF0YV9waWl4IDAwMDA6MDA6MWYuMTogUENJIElOVCBBIC0+IEdTSSAxNyAobGV2 ZWwsIGxvdykgLT4gSVJRIDE3ClsgICAgMy43NTg4NDBdIGF0YV9waWl4IDAwMDA6MDA6MWYuMTog c2V0dGluZyBsYXRlbmN5IHRpbWVyIHRvIDY0ClsgICAgMy43NTg5MjVdIHNjc2kxIDogYXRhX3Bp aXgKWyAgICAzLjc1OTE0NF0gc2NzaTIgOiBhdGFfcGlpeApbICAgIDMuNzU5Mjc3XSBhdGExOiBQ QVRBIG1heCBVRE1BLzEwMCBjbWQgMHgxZjAgY3RsIDB4M2Y2IGJtZG1hIDB4NTAwIGlycSAxNApb ICAgIDMuNzU5Mzg3XSBhdGEyOiBQQVRBIG1heCBVRE1BLzEwMCBjbWQgMHgxNzAgY3RsIDB4Mzc2 IGJtZG1hIDB4NTA4IGlycSAxNQpbICAgIDMuNzg5MTc3XSBJUE1JIFN5c3RlbSBJbnRlcmZhY2Ug ZHJpdmVyLgpbICAgIDMuNzg5Mjg4XSBpcG1pX3NpOiBUcnlpbmcgU01CSU9TLXNwZWNpZmllZCBr Y3Mgc3RhdGUgbWFjaGluZSBhdCBpL28gYWRkcmVzcyAweGNhMiwgc2xhdmUgYWRkcmVzcyAweDIw LCBpcnEgMApbICAgIDMuODE1MTE3XSBxbGEyeHh4IDAwMDA6MTA6MDEuMDogRlc6IExvYWRpbmcg dmlhIHJlcXVlc3QtZmlybXdhcmUuLi4KWyAgICAzLjkzMDMwNF0gYXRhMS4wMDogQVRBUEk6IEhM LURULVNUQ0QtUlcvRFZEIERSSVZFIEdDQy00MjQ0TiwgMi4wMCwgbWF4IFVETUEvMzMKWyAgICAz Ljk3MDE5N10gYXRhMS4wMDogY29uZmlndXJlZCBmb3IgVURNQS8zMwpbICAgIDMuOTc1MzI1XSBz Y3NpIDE6MDowOjA6IENELVJPTSAgICAgICAgICAgIEhMLURULVNUIFJXL0RWRCBHQ0MtNDI0NE4g Mi4wMCBQUTogMCBBTlNJOiA1ClsgICAgNC4wMDgxMDJdIHNyMDogc2NzaTMtbW1jIGRyaXZlOiAy NHgvMjR4IHdyaXRlciBjZC9ydyB4YS9mb3JtMiBjZGRhIHRyYXkKWyAgICA0LjAwODIxNV0gVW5p Zm9ybSBDRC1ST00gZHJpdmVyIFJldmlzaW9uOiAzLjIwClsgICAgNC4wMDgzOTVdIHNyIDE6MDow OjA6IEF0dGFjaGVkIHNjc2kgQ0QtUk9NIHNyMApbICAgIDQuMDEyNDg5XSBzciAxOjA6MDowOiBB dHRhY2hlZCBzY3NpIGdlbmVyaWMgc2cwIHR5cGUgNQpbICAgIDQuMDczMTQxXSB1c2IgNi0xOiBu ZXcgZnVsbCBzcGVlZCBVU0IgZGV2aWNlIHVzaW5nIHVoY2lfaGNkIGFuZCBhZGRyZXNzIDIKWyAg ICA0LjA5NjM5NV0gaXBtaTogRm91bmQgbmV3IEJNQyAobWFuX2lkOiAweDAwMDAwYiwgIHByb2Rf aWQ6IDB4MDAwMCwgZGV2X2lkOiAweDExKQpbICAgIDQuMDk2NTc5XSBJUE1JIGtjcyBpbnRlcmZh Y2UgaW5pdGlhbGl6ZWQKWyAgICA0LjA5NjY5NV0gaXBtaV9zaTogVHJ5aW5nIFNQTUktc3BlY2lm aWVkIGtjcyBzdGF0ZSBtYWNoaW5lIGF0IGkvbyBhZGRyZXNzIDB4Y2EyLCBzbGF2ZSBhZGRyZXNz IDB4MCwgaXJxIDAKWyAgICA0LjA5Njg3NF0gaXBtaV9zaTogZHVwbGljYXRlIGludGVyZmFjZQpb ICAgIDQuMTUxOTM5XSBpcG1pX3NpOiBUcnlpbmcgQUNQSS1zcGVjaWZpZWQga2NzIHN0YXRlIG1h Y2hpbmUgYXQgaS9vIGFkZHJlc3MgMHhjYTIsIHNsYXZlIGFkZHJlc3MgMHgwLCBpcnEgMApbICAg IDQuMTUyMTE4XSBpcG1pX3NpOiBkdXBsaWNhdGUgaW50ZXJmYWNlClsgICAgNC4yMTQ0MDBdIHFs YTJ4eHggMDAwMDoxMDowMS4wOiBBbGxvY2F0ZWQgKDY0IEtCKSBmb3IgRUZULi4uClsgICAgNC4y MTQ1OTJdIHFsYTJ4eHggMDAwMDoxMDowMS4wOiBBbGxvY2F0ZWQgKDEyODUgS0IpIGZvciBmaXJt d2FyZSBkdW1wLi4uClsgICAgNC4yMzE4OTBdIGlwbWlfc2k6IHByb2JlIG9mIDAwOjAyIGZhaWxl ZCB3aXRoIGVycm9yIC0xNgpbICAgIDQuMjMyMDQwXSBpcG1pX3NpIDAwMDA6MDE6MDQuNjogUENJ IElOVCBBIC0+IEdTSSAyMSAobGV2ZWwsIGxvdykgLT4gSVJRIDIxClsgICAgNC4yMzIxNTJdIGlw bWlfc2k6IFRyeWluZyBQQ0ktc3BlY2lmaWVkIGtjcyBzdGF0ZSBtYWNoaW5lIGF0IG1lbSBhZGRy ZXNzIDB4ZjdlZjAwMDAsIHNsYXZlIGFkZHJlc3MgMHgwLCBpcnEgMjEKWyAgICA0LjIzNDQzM10g c2NzaTAgOiBxbGEyeHh4ClsgICAgNC4yMzUxOTddIHFsYTJ4eHggMDAwMDoxMDowMS4wOgpbICAg IDQuMjM1MTk5XSAgUUxvZ2ljIEZpYnJlIENoYW5uZWwgSEJBIERyaXZlcjogOC4wMy4wMS1rMTAK WyAgICA0LjIzNTIwMF0gICBRTG9naWMgUUxBMjQ2MCAtIFBDSS1YIDIuMCBTaW5nbGUgQ2hhbm5l bCA0R2IgRmlicmUgQ2hhbm5lbCBIQkEKWyAgICA0LjIzNTIwMV0gICBJU1AyNDIyOiBQQ0ktWCBN b2RlIDEgKDEzMyBNSHopIEAgMDAwMDoxMDowMS4wIGhkbWErLCBob3N0Iz0wLCBmdz00LjAwLjE2 ICgyKQpbICAgIDQuMjM5MjM5XSB1c2IgNi0xOiBOZXcgVVNCIGRldmljZSBmb3VuZCwgaWRWZW5k b3I9MDNmMCwgaWRQcm9kdWN0PTEwMjcKWyAgICA0LjIzOTM1M10gdXNiIDYtMTogTmV3IFVTQiBk ZXZpY2Ugc3RyaW5nczogTWZyPTEsIFByb2R1Y3Q9MiwgU2VyaWFsTnVtYmVyPTAKWyAgICA0LjIz OTQ2NF0gdXNiIDYtMTogUHJvZHVjdDogVmlydHVhbCBLZXlib2FyZApbICAgIDQuMjM5NTcwXSB1 c2IgNi0xOiBNYW51ZmFjdHVyZXI6IEhQClsgICAgNC4yNDk0MjZdIGlucHV0OiBIUCBWaXJ0dWFs IEtleWJvYXJkIGFzIC9kZXZpY2VzL3BjaTAwMDA6MDAvMDAwMDowMDoxZS4wLzAwMDA6MDE6MDQu NC91c2I2LzYtMS82LTE6MS4wL2lucHV0L2lucHV0MwpbICAgIDQuMjUxMDcwXSBnZW5lcmljLXVz YiAwMDAzOjAzRjA6MTAyNy4wMDAxOiBpbnB1dDogVVNCIEhJRCB2MS4wMSBLZXlib2FyZCBbSFAg VmlydHVhbCBLZXlib2FyZF0gb24gdXNiLTAwMDA6MDE6MDQuNC0xL2lucHV0MApbICAgIDQuMjU5 MTA4XSBpbnB1dDogSFAgVmlydHVhbCBLZXlib2FyZCBhcyAvZGV2aWNlcy9wY2kwMDAwOjAwLzAw MDA6MDA6MWUuMC8wMDAwOjAxOjA0LjQvdXNiNi82LTEvNi0xOjEuMS9pbnB1dC9pbnB1dDQKWyAg ICA0LjI1OTMyM10gZ2VuZXJpYy11c2IgMDAwMzowM0YwOjEwMjcuMDAwMjogaW5wdXQ6IFVTQiBI SUQgdjEuMDEgTW91c2UgW0hQIFZpcnR1YWwgS2V5Ym9hcmRdIG9uIHVzYi0wMDAwOjAxOjA0LjQt MS9pbnB1dDEKWyAgICA0LjI5NDM5Ml0gYm54MiAwMDAwOjAzOjAwLjA6IGZpcm13YXJlOiByZXF1 ZXN0aW5nIGJueDIvYm54Mi1taXBzLTA2LTUuMC4wLmozLmZ3ClsgICAgNC4zMTA1NzddIGJueDIg MDAwMDowMzowMC4wOiBmaXJtd2FyZTogcmVxdWVzdGluZyBibngyL2JueDItcnYycC0wNi01LjAu MC5qMy5mdwpbICAgIDQuMzE1MTk2XSBldGgwOiBCcm9hZGNvbSBOZXRYdHJlbWUgSUkgQkNNNTcw OCAxMDAwQmFzZS1UIChCMikgUENJLVggNjQtYml0IDEzM01IeiBmb3VuZCBhdCBtZW0gZjgwMDAw MDAsIElSUSAxOCwgbm9kZSBhZGRyIHh4Onh4Onh4Onh4Onh4Onh4ClsgICAgNC4zMTU0MDddIGJu eDIgMDAwMDowNTowMC4wOiBQQ0kgSU5UIEEgLT4gR1NJIDE5IChsZXZlbCwgbG93KSAtPiBJUlEg MTkKWyAgICA0LjM4MTI2M10gdXNiIDYtMjogbmV3IGZ1bGwgc3BlZWQgVVNCIGRldmljZSB1c2lu ZyB1aGNpX2hjZCBhbmQgYWRkcmVzcyAzClsgICAgNC40OTE4ODldIElSUSAyMS9pcG1pX3NpOiBJ UlFGX0RJU0FCTEVEIGlzIG5vdCBndWFyYW50ZWVkIG9uIHNoYXJlZCBJUlFzClsgICAgNC40OTIw MTZdICAgVXNpbmcgaXJxIDIxClsgICAgNC40OTYwNDJdIHFsYTJ4eHggMDAwMDoxMDowMS4wOiBM SVAgcmVzZXQgb2NjdXJyZWQgKGY3ZjcpLgpbICAgIDQuNTI0OTE1XSBpcG1pOiBpbnRlcmZhY2lu ZyBleGlzdGluZyBCTUMgKG1hbl9pZDogMHgwMDAwMGIsIHByb2RfaWQ6IDB4MDAwMCwgZGV2X2lk OiAweDExKQpbICAgIDQuNTI1MTA4XSBJUE1JIGtjcyBpbnRlcmZhY2UgaW5pdGlhbGl6ZWQKWyAg ICA0LjUzOTUxNV0gdXNiIDYtMjogTmV3IFVTQiBkZXZpY2UgZm91bmQsIGlkVmVuZG9yPTAzZjAs IGlkUHJvZHVjdD0xMzI3ClsgICAgNC41Mzk2MjZdIHVzYiA2LTI6IE5ldyBVU0IgZGV2aWNlIHN0 cmluZ3M6IE1mcj0xLCBQcm9kdWN0PTIsIFNlcmlhbE51bWJlcj0wClsgICAgNC41Mzk3MzddIHVz YiA2LTI6IFByb2R1Y3Q6IFZpcnR1YWwgSHViClsgICAgNC41Mzk4NDFdIHVzYiA2LTI6IE1hbnVm YWN0dXJlcjogSFAKWyAgICA0LjU0NTAxNl0gaHViIDYtMjoxLjA6IFVTQiBodWIgZm91bmQKWyAg ICA0LjU0NzIxNl0gaHViIDYtMjoxLjA6IDcgcG9ydHMgZGV0ZWN0ZWQKWyAgICA0LjYxMTU3MF0g cWxhMnh4eCAwMDAwOjEwOjAxLjA6IExPT1AgVVAgZGV0ZWN0ZWQgKDQgR2JwcykuClsgICAgNC45 MTAwMTZdIGJueDIgMDAwMDowNTowMC4wOiBmaXJtd2FyZTogcmVxdWVzdGluZyBibngyL2JueDIt bWlwcy0wNi01LjAuMC5qMy5mdwpbICAgIDQuOTE0NzQxXSBibngyIDAwMDA6MDU6MDAuMDogZmly bXdhcmU6IHJlcXVlc3RpbmcgYm54Mi9ibngyLXJ2MnAtMDYtNS4wLjAuajMuZncKWyAgICA0Ljkx OTYxNF0gZXRoMTogQnJvYWRjb20gTmV0WHRyZW1lIElJIEJDTTU3MDggMTAwMEJhc2UtVCAoQjIp IFBDSS1YIDY0LWJpdCAxMzNNSHogZm91bmQgYXQgbWVtIGZhMDAwMDAwLCBJUlEgMTksIG5vZGUg YWRkciB4eDp4eDp4eDp4eDp4eDp4eApbICAgIDUuMjU2NjgzXSBzY3NpIDA6MDowOjA6IERpcmVj dC1BY2Nlc3MgICAgIElCTSAgICAgIDE4MTQgICAgICBGQVN0VCAgMTA2MCBQUTogMCBBTlNJOiA1 ClsgICAgNS4yNTcwMjNdIHNkIDA6MDowOjA6IEF0dGFjaGVkIHNjc2kgZ2VuZXJpYyBzZzEgdHlw ZSAwClsgICAgNS4yNjI2MjJdIHNjc2kgMDowOjA6MTogRGlyZWN0LUFjY2VzcyAgICAgSUJNICAg ICAgMTgxNCAgICAgIEZBU3RUICAxMDYwIFBROiAwIEFOU0k6IDUKWyAgICA1LjI2MjY1NV0gc2Qg MDowOjA6MDogW3NkYV0gNDE5NDMwNDAgNTEyLWJ5dGUgbG9naWNhbCBibG9ja3M6ICgyMS40IEdC LzIwLjAgR2lCKQpbICAgIDUuMjYzMTEzXSBzZCAwOjA6MDoxOiBBdHRhY2hlZCBzY3NpIGdlbmVy aWMgc2cyIHR5cGUgMApbICAgIDUuMjYzNjg4XSBzZCAwOjA6MDowOiBbc2RhXSBXcml0ZSBQcm90 ZWN0IGlzIG9mZgpbICAgIDUuMjYzNzEwXSBzZCAwOjA6MDoxOiBbc2RiXSAxMDQ4NTc2MCA1MTIt Ynl0ZSBsb2dpY2FsIGJsb2NrczogKDUuMzYgR0IvNS4wMCBHaUIpClsgICAgNS4yNjM5NzFdIHNk IDA6MDowOjA6IFtzZGFdIE1vZGUgU2Vuc2U6IDc3IDAwIDEwIDA4ClsgICAgNS4yNjQxOTJdIHNk IDA6MDowOjA6IFtzZGFdIFdyaXRlIGNhY2hlOiBlbmFibGVkLCByZWFkIGNhY2hlOiBlbmFibGVk LCBzdXBwb3J0cyBEUE8gYW5kIEZVQQpbICAgIDUuMjY0MjgwXSBzZCAwOjA6MDoxOiBbc2RiXSBX cml0ZSBQcm90ZWN0IGlzIG9mZgpbICAgIDUuMjY0MjgzXSBzZCAwOjA6MDoxOiBbc2RiXSBNb2Rl IFNlbnNlOiA3NyAwMCAxMCAwOApbICAgIDUuMjY0MzgzXSBzY3NpIDA6MDoxOjA6IERpcmVjdC1B Y2Nlc3MgICAgIElCTSAgICAgIDE4MTQgICAgICBGQVN0VCAgMTA2MCBQUTogMCBBTlNJOiA1Clsg ICAgNS4yNjQ1MDVdIHNkIDA6MDowOjE6IFtzZGJdIFdyaXRlIGNhY2hlOiBlbmFibGVkLCByZWFk IGNhY2hlOiBlbmFibGVkLCBzdXBwb3J0cyBEUE8gYW5kIEZVQQpbICAgIDUuMjY0NTM3XSBzZCAw OjA6MTowOiBBdHRhY2hlZCBzY3NpIGdlbmVyaWMgc2czIHR5cGUgMApbICAgIDUuMjY1ODQ3XSAg c2RiOgpbICAgIDUuMjY2MDQ2XSAgc2RhOgpbICAgIDUuMjY2ODc1XSBzZCAwOjA6MTowOiBbc2Rj XSA0MTk0MzA0MCA1MTItYnl0ZSBsb2dpY2FsIGJsb2NrczogKDIxLjQgR0IvMjAuMCBHaUIpClsg ICAgNS4yNjY5MjBdIHNjc2kgMDowOjE6MTogRGlyZWN0LUFjY2VzcyAgICAgSUJNICAgICAgMTgx NCAgICAgIEZBU3RUICAxMDYwIFBROiAwIEFOU0k6IDUKWyAgICA1LjI2NzA2MV0gc2QgMDowOjE6 MTogQXR0YWNoZWQgc2NzaSBnZW5lcmljIHNnNCB0eXBlIDAKWyAgICA1LjI2NzIyN10gc2QgMDow OjE6MTogW3NkZF0gMTA0ODU3NjAgNTEyLWJ5dGUgbG9naWNhbCBibG9ja3M6ICg1LjM2IEdCLzUu MDAgR2lCKQpbICAgIDUuMjY3ODgwXSBzZCAwOjA6MToxOiBbc2RkXSBXcml0ZSBQcm90ZWN0IGlz IG9mZgpbICAgIDUuMjY3OTkyXSBzZCAwOjA6MToxOiBbc2RkXSBNb2RlIFNlbnNlOiA3NyAwMCAx MCAwOApbICAgIDUuMjY4MTU5XSBzZCAwOjA6MTowOiBbc2RjXSBXcml0ZSBQcm90ZWN0IGlzIG9m ZgpbICAgIDUuMjY4MjEwXSBzZCAwOjA6MToxOiBbc2RkXSBXcml0ZSBjYWNoZTogZW5hYmxlZCwg cmVhZCBjYWNoZTogZW5hYmxlZCwgc3VwcG9ydHMgRFBPIGFuZCBGVUEKWyAgICA1LjI2ODQ0Nl0g c2QgMDowOjE6MDogW3NkY10gTW9kZSBTZW5zZTogNzcgMDAgMTAgMDgKWyAgICA1LjI2ODY5MF0g c2QgMDowOjE6MDogW3NkY10gV3JpdGUgY2FjaGU6IGVuYWJsZWQsIHJlYWQgY2FjaGU6IGVuYWJs ZWQsIHN1cHBvcnRzIERQTyBhbmQgRlVBClsgICAgNS4yNjkwNjNdICBzZGQ6IHVua25vd24gcGFy dGl0aW9uIHRhYmxlClsgICAgNS4yNzAwNDddICBzZGM6IHVua25vd24gcGFydGl0aW9uIHRhYmxl ClsgICAgNS4yNzAzMzRdIHNkIDA6MDoxOjE6IFtzZGRdIEF0dGFjaGVkIFNDU0kgZGlzawpbICAg IDUuMjcxMTg5XSBzZCAwOjA6MTowOiBbc2RjXSBBdHRhY2hlZCBTQ1NJIGRpc2sKWyAgICA1LjU1 NjYzOV0gZGV2aWNlLW1hcHBlcjogaW9jdGw6IDQuMTYuMC1pb2N0bCAoMjAwOS0xMS0wNSkgaW5p dGlhbGlzZWQ6IGRtLWRldmVsQHJlZGhhdC5jb20KWyAgICA1LjkyNTYzN10gIHVua25vd24gcGFy dGl0aW9uIHRhYmxlClsgICAgNS45MjU4NTJdICB1bmtub3duIHBhcnRpdGlvbiB0YWJsZQpbICAg IDUuOTI2OTQ3XSBzZCAwOjA6MDoxOiBbc2RiXSBBdHRhY2hlZCBTQ1NJIGRpc2sKWyAgICA1Ljky Njk5NV0gc2QgMDowOjA6MDogW3NkYV0gQXR0YWNoZWQgU0NTSSBkaXNrClsgICAgNi45OTg2NzJd IGxvb3A6IG1vZHVsZSBsb2FkZWQKWyAgICA3LjAwOTkzMl0gRmlsZXN5c3RlbSAiY2Npc3MvYzBk MHAyIjogRGlzYWJsaW5nIGJhcnJpZXJzLCB0cmlhbCBiYXJyaWVyIHdyaXRlIGZhaWxlZApbICAg IDcuMDE3ODExXSBYRlMgbW91bnRpbmcgZmlsZXN5c3RlbSBjY2lzcy9jMGQwcDIKWyAgICA3LjEy MDMwMV0gRW5kaW5nIGNsZWFuIFhGUyBtb3VudCBmb3IgZmlsZXN5c3RlbTogY2Npc3MvYzBkMHAy ClsgICAgNy4zNjI3NTVdIGlvY3RsMzIoc2hvd2NvbnNvbGU6MTgxMCk6IFVua25vd24gY21kIGZk KDApIGNtZCg4MDA0NTQzMil7dDonVCc7c3o6NH0gYXJnKGZmZThhYmY4KSBvbiAvZGV2L2NvbnNv bGUKWyAgICA4LjU1NTEzM10gaW9jdGwzMihzaG93Y29uc29sZToyMDczKTogVW5rbm93biBjbWQg ZmQoMCkgY21kKDgwMDQ1NDMyKXt0OidUJztzejo0fSBhcmcoZmY5M2I5NjgpIG9uIC9kZXYvY29u c29sZQpbICAgIDkuNzE2MTY5XSBibngyIDAwMDA6MDM6MDAuMDogaXJxIDYyIGZvciBNU0kvTVNJ LVgKWyAgICA5LjgzNjY3M10gYm54MjogZXRoMDogdXNpbmcgTVNJClsgICAgOS44Mzk0NjldIEFE RFJDT05GKE5FVERFVl9VUCk6IGV0aDA6IGxpbmsgaXMgbm90IHJlYWR5ClsgICAxMC41MjExOThd IGlwbWkgZGV2aWNlIGludGVyZmFjZQpbICAgMTMuMDQ4MTU3XSBibngyOiBldGgwIE5JQyBDb3Bw ZXIgTGluayBpcyBVcCwgMTAwMCBNYnBzIGZ1bGwgZHVwbGV4ClsgICAxMy4wNTEwMDVdIEFERFJD T05GKE5FVERFVl9DSEFOR0UpOiBldGgwOiBsaW5rIGJlY29tZXMgcmVhZHkKWyAgIDIzLjkyMDAw Nl0gZXRoMDogbm8gSVB2NiByb3V0ZXJzIHByZXNlbnQKWyAgIDg4Ljc0NDI2OV0gbmV0Ym9tYjog bG9jYWwgcG9ydCAxMDAwMApbICAgODguNzQ0MjczXSBuZXRib21iOiBsb2NhbCBJUCB4eHgueHh4 Lnh4eC54eHgKWyAgIDg4Ljc0NDI3NF0gbmV0Ym9tYjogaW50ZXJmYWNlIGV0aDAKWyAgIDg4Ljc0 NDI3Nl0gbmV0Ym9tYjogcmVtb3RlIHBvcnQgNTE1ClsgICA4OC43NDQyNzddIG5ldGJvbWI6IHJl bW90ZSBJUCB4eHgueHh4Lnh4eC54eHgKWyAgIDg4Ljc0NDI3OV0gbmV0Ym9tYjogcmVtb3RlIGV0 aGVybmV0IGFkZHJlc3MgeHg6eHg6eHg6eHg6eHg6eHgKWyAgIDg4LjgyMzg0OV0gbmV0Ym9tYjog bmV0d29yayBsb2dnaW5nIHN0YXJ0ZWQKWyAgMTM0LjY0MzI5Ml0gQlVHOiB1bmFibGUgdG8gaGFu ZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgKG51bGwpClsgIDEzNC42NDMz MDRdIElQOiBbPGZmZmZmZmZmYTAwM2VkYzI+XSBibngyX3BvbGxfd29yaysweDMyLzB4MTNkMCBb Ym54Ml0KWyAgMTM0LjY0MzMxNF0gUEdEIDJhOTcyYTA2NyBQVUQgMmFhMjQ1MDY3IFBNRCAwClsg IDEzNC42NDMzMTldIE9vcHM6IDAwMDAgWyMxXSBTTVAKWyAgMTM0LjY0MzMyM10gbGFzdCBzeXNm cyBmaWxlOiAvc3lzL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAwOjFlLjAvMDAwMDowMTowNC42 L2NsYXNzClsgIDEzNC42NDMzMjhdIENQVSA0ClsgIDEzNC42NDMzMzRdIFBpZDogMzIyNiwgY29t bTogY2F0IE5vdCB0YWludGVkIDIuNi4zMy1yYzgtZ2l0My14ODZfNjQgIzMgL1Byb0xpYW50IERM MzYwIEc1ClsgIDEzNC42NDMzMzldIFJJUDogMDAxMDpbPGZmZmZmZmZmYTAwM2VkYzI+XSAgWzxm ZmZmZmZmZmEwMDNlZGMyPl0gYm54Ml9wb2xsX3dvcmsrMHgzMi8weDEzZDAgW2JueDJdClsgIDEz NC42NDMzNDddIFJTUDogMDAxODpmZmZmODgwMmE5NjQzYjM4ICBFRkxBR1M6IDAwMDEwMDkyClsg IDEzNC42NDMzNTFdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY4ODAyYWZhYjU3YzAg UkNYOiAwMDAwMDAwMDAwMDAwMDEwClsgIDEzNC42NDMzNTVdIFJEWDogMDAwMDAwMDAwMDAwMDAw MCBSU0k6IGZmZmY4ODAyYWZhYjU3YzAgUkRJOiBmZmZmODgwMmFmYWI0NTgwClsgIDEzNC42NDMz NTldIFJCUDogZmZmZjg4MDJhOTY0M2NkOCBSMDg6IGZmZmY4ODAyYWYwNTEwMDAgUjA5OiAwMDAw MDAwMDAwMDAwMDA3ClsgIDEzNC42NDMzNjNdIFIxMDogMDAwMDAwMDAwMDAwMDAwZSBSMTE6IDAw MDAwMDAwMDAwMDAwMDAgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClsgIDEzNC42NDMzNjddIFIxMzog MDAwMDAwMDAwMDAwMDAxMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiBmZmZmODgwMmFmYWI0 NTgwClsgIDEzNC42NDMzNzFdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgw MDI4MzAwMDAwKDAwNjMpIGtubEdTOjAwMDAwMDAwZjc2NWY2YzAKWyAgMTM0LjY0MzM3Nl0gQ1M6 ICAwMDEwIERTOiAwMDJiIEVTOiAwMDJiIENSMDogMDAwMDAwMDA4MDA1MDAzYgpbICAxMzQuNjQz MzgwXSBDUjI6IDAwMDAwMDAwMDAwMDAwMDAgQ1IzOiAwMDAwMDAwMmE5NjA2MDAwIENSNDogMDAw MDAwMDAwMDAwMDZlMApbICAxMzQuNjQzMzg0XSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAw MDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAxMzQuNjQzMzg4XSBEUjM6 IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmYwZmYwIERSNzogMDAwMDAwMDAwMDAw MDQwMApbICAxMzQuNjQzMzkyXSBQcm9jZXNzIGNhdCAocGlkOiAzMjI2LCB0aHJlYWRpbmZvIGZm ZmY4ODAyYTk2NDIwMDAsIHRhc2sgZmZmZjg4MDJhYTE0YmZmMCkKWyAgMTM0LjY0MzM5Nl0gU3Rh Y2s6ClsgIDEzNC42NDMzOThdICAwMDAwMDAwMDAwMDAwMDcwIDAwMDAwMDAwMDAwMDAwMDIgMDAw MDAwMDAwMDAwMDAxMCBmZmZmODgwMmFmYWI1N2MwClsgIDEzNC42NDM0MDRdIDwwPiBmZmZmODgw MmFmYWI0NTgwIDAwMDAwMDAzMDAwMDAwMDIgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMTAwMDAw MDAyClsgIDEzNC42NDM0MTBdIDwwPiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAyMDAwMjUyMjAg ZmZmZmZmZmY4MTg2MmU4MCAwMDAwMDAwMDAwMDAwMDAxClsgIDEzNC42NDM0MThdIENhbGwgVHJh Y2U6ClsgIDEzNC42NDM0MjddICBbPGZmZmZmZmZmODEwN2UzZmU+XSA/IF9fYWxsb2NfcGFnZXNf bm9kZW1hc2srMHhmZS8weDY2MApbICAxMzQuNjQzNDMzXSAgWzxmZmZmZmZmZjgxMWI2ZGU2Pl0g PyBtc2lfc2V0X21hc2tfYml0KzB4MjYvMHhjMApbICAxMzQuNjQzNDM4XSAgWzxmZmZmZmZmZjgx MWI2ZThiPl0gPyB1bm1hc2tfbXNpX2lycSsweGIvMHgxMApbICAxMzQuNjQzNDQzXSAgWzxmZmZm ZmZmZjgxMDZkYjU0Pl0gPyBkZWZhdWx0X2VuYWJsZSsweDI0LzB4NDAKWyAgMTM0LjY0MzQ0OF0g IFs8ZmZmZmZmZmY4MTA2ZDliNj5dID8gY2hlY2tfaXJxX3Jlc2VuZCsweDI2LzB4NzAKWyAgMTM0 LjY0MzQ1M10gIFs8ZmZmZmZmZmY4MTA2Y2MyMz5dID8gX19lbmFibGVfaXJxKzB4NzMvMHg4MApb ICAxMzQuNjQzNDU5XSAgWzxmZmZmZmZmZmEwMDQwMTllPl0gYm54Ml9wb2xsX21zaXgrMHgzZS8w eGQwIFtibngyXQpbICAxMzQuNjQzNDY1XSAgWzxmZmZmZmZmZjgxMzViY2QxPl0gbmV0cG9sbF9w b2xsKzB4ZTEvMHgzYzAKWyAgMTM0LjY0MzQ3MF0gIFs8ZmZmZmZmZmY4MTM1YzE2OD5dIG5ldHBv bGxfc2VuZF9za2IrMHgxMTgvMHgyMTAKWyAgMTM0LjY0MzQ3NV0gIFs8ZmZmZmZmZmY4MTM1YzQ1 Yj5dIG5ldHBvbGxfc2VuZF91ZHArMHgxZmIvMHgyMTAKWyAgMTM0LjY0MzQ4MF0gIFs8ZmZmZmZm ZmZhMDA5ODFjNT5dIHdyaXRlX21zZysweDk1LzB4ZDAgW25ldGJvbWJdClsgIDEzNC42NDM0ODVd ICBbPGZmZmZmZmZmYTAwOTgyNTU+XSBuZXRib21iX3dyaXRlKzB4NTUvMHhhNCBbbmV0Ym9tYl0K WyAgMTM0LjY0MzQ5Ml0gIFs8ZmZmZmZmZmY4MTBmNjU4MT5dIHByb2NfcmVnX3dyaXRlKzB4NzEv MHhiMApbICAxMzQuNjQzNDk4XSAgWzxmZmZmZmZmZjgxMGFiNmNiPl0gdmZzX3dyaXRlKzB4Y2Iv MHgxODAKWyAgMTM0LjY0MzUwM10gIFs8ZmZmZmZmZmY4MTBhYjg3MD5dIHN5c193cml0ZSsweDUw LzB4OTAKWyAgMTM0LjY0MzUwOV0gIFs8ZmZmZmZmZmY4MTAyYTFhND5dIHN5c2VudGVyX2Rpc3Bh dGNoKzB4Ny8weDJiClsgIDEzNC42NDM1MTNdIENvZGU6IDU2IDQxIDU1IDQxIDU0IDUzIDQ4IDgx IGVjIDc4IDAxIDAwIDAwIDQ4IDg5IGJkIDgwIGZlIGZmIGZmIDQ4IDg5IGI1IDc4IGZlIGZmIGZm IDg5IDk1IDc0IGZlIGZmIGZmIDg5IDhkIDcwIGZlIGZmIGZmIDQ4IDhiIDQ2IDcwIDwwZj4gYjcg MTAgMzEgYzAgODAgZmEgZmYgMGYgOTQgYzAgMDEgYzIgNjYgMzkgOTYgMTIgMDIgMDAgMDAgMGYK WyAgMTM0LjY0MzU1MV0gUklQICBbPGZmZmZmZmZmYTAwM2VkYzI+XSBibngyX3BvbGxfd29yaysw eDMyLzB4MTNkMCBbYm54Ml0KWyAgMTM0LjY0MzU1N10gIFJTUCA8ZmZmZjg4MDJhOTY0M2IzOD4K WyAgMTM0LjY0MzU1OV0gQ1IyOiAwMDAwMDAwMDAwMDAwMDAwClsgIDEzNC42NDM1NjNdIC0tLVsg ZW5kIHRyYWNlIDQ4YmRlYzY3ZDZkN2FhZGIgXS0tLQo= --MP_/9_rsfuO+p0QfW8ENglFZATg Content-Type: text/x-c++src Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=netbomb.c /* * linux/drivers/net/netbomb.c * * Based on linux/drivers/net/netconsole.c, * adapted by Bruno Pr=C3=A9mont */ /**************************************************************** * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * ****************************************************************/ #include #include #include #include #include #include #include #include #include #include MODULE_AUTHOR("Maintainer: Bruno Premont "); MODULE_DESCRIPTION("Network traffic generator"); MODULE_LICENSE("GPL"); #define MAX_PARAM_LENGTH 256 #define MAX_PRINT_CHUNK 1000 static char config[MAX_PARAM_LENGTH]; module_param_string(netbomb, config, MAX_PARAM_LENGTH, 0); MODULE_PARM_DESC(netbomb, " netbomb=3D[src-port]@[src-ip]/[dev],[tgt-port]@= /[tgt-macaddr]"); #ifndef MODULE static int __init option_setup(char *opt) { strlcpy(config, opt, MAX_PARAM_LENGTH); return 1; } __setup("netbomb=3D", option_setup); #endif /* MODULE */ /* Linked list of all configured targets */ static LIST_HEAD(target_list); /* This needs to be a spinlock because write_msg() cannot sleep */ static DEFINE_SPINLOCK(target_list_lock); /** * struct netbomb_target - Represents a configured netbomb target. * @list: Links this target into the target_list. * @item: Links us into the configfs subsystem hierarchy. * @enabled: On / off knob to enable / disable target. * Visible from userspace (read-write). * We maintain a strict 1:1 correspondence between this and * whether the corresponding netpoll is active or inactive. * Also, other parameters of a target may be modified at * runtime only when it is disabled (enabled =3D=3D 0). * @np: The netpoll structure for this target. * Contains the other userspace visible parameters: * dev_name (read-write) * local_port (read-write) * remote_port (read-write) * local_ip (read-write) * remote_ip (read-write) * local_mac (read-only) * remote_mac (read-write) */ struct netbomb_target { struct list_head list; int enabled; struct netpoll np; }; /* * No danger of targets going away from under us when dynamic * reconfigurability is off. */ static void netbomb_target_get(struct netbomb_target *nt) { } static void netbomb_target_put(struct netbomb_target *nt) { } /* Allocate new target (from boot/module param) and setup netpoll for it */ static struct netbomb_target *alloc_param_target(char *target_config) { int err =3D -ENOMEM; struct netbomb_target *nt; /* * Allocate and initialize with defaults. * Note that these targets get their config_item fields zeroed-out. */ nt =3D kzalloc(sizeof(*nt), GFP_KERNEL); if (!nt) { printk(KERN_ERR "netbomb: failed to allocate memory\n"); goto fail; } nt->np.name =3D "netbomb"; strlcpy(nt->np.dev_name, "eth0", IFNAMSIZ); nt->np.local_port =3D 6665; nt->np.remote_port =3D 6666; memset(nt->np.remote_mac, 0xff, ETH_ALEN); /* Parse parameters and setup netpoll */ err =3D netpoll_parse_options(&nt->np, target_config); if (err) goto fail; err =3D netpoll_setup(&nt->np); if (err) goto fail; nt->enabled =3D 1; return nt; fail: kfree(nt); return ERR_PTR(err); } /* Cleanup netpoll for given target (from boot/module param) and free it */ static void free_param_target(struct netbomb_target *nt) { netpoll_cleanup(&nt->np); kfree(nt); } /* Handle network interface device notifications */ static int netbomb_netdev_event(struct notifier_block *this, unsigned long event, void *ptr) { unsigned long flags; struct netbomb_target *nt; struct net_device *dev =3D ptr; if (!(event =3D=3D NETDEV_CHANGENAME || event =3D=3D NETDEV_UNREGISTER)) goto done; spin_lock_irqsave(&target_list_lock, flags); list_for_each_entry(nt, &target_list, list) { netbomb_target_get(nt); if (nt->np.dev =3D=3D dev) { switch (event) { case NETDEV_CHANGENAME: strlcpy(nt->np.dev_name, dev->name, IFNAMSIZ); break; case NETDEV_UNREGISTER: if (!nt->enabled) break; netpoll_cleanup(&nt->np); nt->enabled =3D 0; printk(KERN_INFO "netbomb: network logging stopped" ", interface %s unregistered\n", dev->name); break; } } netbomb_target_put(nt); } spin_unlock_irqrestore(&target_list_lock, flags); done: return NOTIFY_DONE; } static struct notifier_block netbomb_netdev_notifier =3D { .notifier_call =3D netbomb_netdev_event, }; static void write_msg(struct console *con, const char *msg, unsigned int le= n) { int frag, left; unsigned long flags; struct netbomb_target *nt; const char *tmp; /* Avoid taking lock and disabling interrupts unnecessarily */ if (list_empty(&target_list)) return; spin_lock_irqsave(&target_list_lock, flags); list_for_each_entry(nt, &target_list, list) { netbomb_target_get(nt); if (nt->enabled && netif_running(nt->np.dev)) { /* * We nest this inside the for-each-target loop above * so that we're able to get as much logging out to * at least one target if we die inside here, instead * of unnecessarily keeping all targets in lock-step. */ tmp =3D msg; for (left =3D len; left;) { frag =3D min(left, MAX_PRINT_CHUNK); netpoll_send_udp(&nt->np, tmp, frag); tmp +=3D frag; left -=3D frag; } } netbomb_target_put(nt); } spin_unlock_irqrestore(&target_list_lock, flags); } static struct console netbomb =3D { .name =3D "netcon", .flags =3D CON_ENABLED, .write =3D write_msg, }; static int netbomb_show(struct seq_file *m, void *v) { seq_printf(m, "Array of bytes indicating packet lengths\n"); return 0; } static int netbomb_open(struct inode *inode, struct file *file) { return single_open(file, netbomb_show, NULL); } static const char * bufs[256]; static ssize_t netbomb_write(struct file *file, const char __user *buffer, size_t count, loff_t *pos) { int i; for (i =3D 0; i < count; i++) { unsigned char c; const char *buff; if (copy_from_user(&c, buffer+i, 1)) return -EFAULT; if ((buff =3D bufs[c]) !=3D NULL) write_msg(NULL, buff, strlen(buff)); } return count; } static const struct file_operations netbomb_fops =3D { .owner =3D THIS_MODULE, .open =3D netbomb_open, .read =3D seq_read, .llseek =3D seq_lseek, .release =3D single_release, .write =3D netbomb_write, }; static int __init init_netbomb(void) { int err, i; struct netbomb_target *nt, *tmp; unsigned long flags; char *target_config; char *input =3D config; if (strnlen(input, MAX_PARAM_LENGTH)) { while ((target_config =3D strsep(&input, ";"))) { nt =3D alloc_param_target(target_config); if (IS_ERR(nt)) { err =3D PTR_ERR(nt); goto fail; } /* Dump existing printks when we register */ netbomb.flags |=3D CON_PRINTBUFFER; spin_lock_irqsave(&target_list_lock, flags); list_add(&nt->list, &target_list); spin_unlock_irqrestore(&target_list_lock, flags); } } for (i =3D 0; i < 256; i++) { char *p =3D kmalloc(i > 0 ? i+1 : 2, GFP_KERNEL); bufs[i] =3D p; if (p =3D=3D NULL) continue; if (i =3D=3D 0) { p[0] =3D '\n'; p[1] =3D '\0'; } else { memset(p, '_', i > 0 ? i+1 : 2); if (i < 10) sprintf(p + i - 1, "%d", i); else if (i < 100) sprintf(p + i - 2, "%d", i); else sprintf(p + i - 3, "%d", i); p[i] =3D '\0'; } } err =3D register_netdevice_notifier(&netbomb_netdev_notifier); if (err) goto fail; proc_create("netbomb-trigger", 0, NULL, &netbomb_fops); printk(KERN_INFO "netbomb: network logging started\n"); return err; undonotifier: unregister_netdevice_notifier(&netbomb_netdev_notifier); fail: printk(KERN_ERR "netbomb: cleaning up\n"); /* * Remove all targets and destroy them (only targets created * from the boot/module option exist here). Skipping the list * lock is safe here, and netpoll_cleanup() will sleep. */ list_for_each_entry_safe(nt, tmp, &target_list, list) { list_del(&nt->list); free_param_target(nt); } return err; } static void __exit cleanup_netbomb(void) { struct netbomb_target *nt, *tmp; int i; remove_proc_entry("netbomb-trigger", NULL); unregister_netdevice_notifier(&netbomb_netdev_notifier); /* * Targets created via configfs pin references on our module * and would first be rmdir(2)'ed from userspace. We reach * here only when they are already destroyed, and only those * created from the boot/module option are left, so remove and * destroy them. Skipping the list lock is safe here, and * netpoll_cleanup() will sleep. */ list_for_each_entry_safe(nt, tmp, &target_list, list) { list_del(&nt->list); free_param_target(nt); } for (i =3D 0; i < 256; i++) kfree(bufs[i]); } module_init(init_netbomb); module_exit(cleanup_netbomb); --MP_/9_rsfuO+p0QfW8ENglFZATg-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/