From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.free-electrons.com ([62.4.15.54]) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1e36aV-0002Fg-Lc for linux-mtd@lists.infradead.org; Fri, 13 Oct 2017 20:29:46 +0000 Date: Fri, 13 Oct 2017 22:29:07 +0200 From: Boris Brezillon To: Roger Quadros Cc: Tony Lindgren , linux-omap , "linux-mtd@lists.infradead.org" , "Cooper Jr., Franklin" Subject: Re: gpmc-nand broken since v4.12 Message-ID: <20171013222907.16adf410@bbrezillon> In-Reply-To: <20171013222458.3f4c103e@bbrezillon> References: <7eae9266-558f-6578-66d7-7ab0eb659a81@ti.com> <20171013145033.5d1d9647@bbrezillon> <20171013222458.3f4c103e@bbrezillon> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Fri, 13 Oct 2017 22:24:58 +0200 Boris Brezillon wrote: > On Fri, 13 Oct 2017 14:50:33 +0200 > Boris Brezillon wrote: >=20 > > On Fri, 13 Oct 2017 14:57:29 +0300 > > Roger Quadros wrote: > > =20 > > > =EF=BB=BFHi Boris, > > >=20 > > > NAND on gpmc-omap breaks for me while doing a unmount of a ubi volume= since v4.12 > > >=20 > > > Behaviour follows through in v4.13 and v4.14-rc as well. > > >=20 > > > Do you have any idea about this? =20 >=20 > More info on what has changed in 4.12: we no longer allocate the > nand_buffer struct + its internal buffer using a single big kmalloc > call, which means the nand_buffer struct is now likely to be allocated > in a small object slab (sizeof(nand_buffers) =3D 12). If you have a > use-after-free bug somewhere in the kernel, it might corrupt the I meant buffer-overflow, not use-after-free. > nand_buffers object, which might explain the bug you see here. >=20 > >=20 > > Can you try with this patch [1] applied and paste me the values printed > > just before the crash? > >=20 > > [1]http://code.bulix.org/lc8xk0-209746 > > =20 > > >=20 > > > =3D=3D unmounting volume > > > [ 30.128584] Unable to handle kernel NULL pointer dereference at vi= rtual address 00000000 > > > [ 30.137234] pgd =3D ed3d0000 > > > [ 30.140079] [00000000] *pgd=3Dfd67a835 > > > [ 30.143843] Internal error: Oops: 17 [#1] SMP ARM > > > [ 30.148781] Modules linked in: snd_soc_davinci_mcasp xhci_plat_hcd= snd_soc_edma xhci_hcd snd_soc_tlv320aic3x snd_soc_simple_card snd_soc_omap= snd_soc_simple_card_utils snd_soc_core usbcoe > > > [ 30.193881] CPU: 1 PID: 2149 Comm: umount Not tainted 4.12.0-00001= -g2c09531 #1440 > > > [ 30.201734] Hardware name: Generic DRA74X (Flattened Device Tree) > > > [ 30.208130] task: ec870140 task.stack: ed406000 > > > [ 30.212889] PC is at memcpy+0xe8/0x330 > > > [ 30.216833] LR is at mtd_ooblayout_set_bytes+0x7c/0xa4 > > > [ 30.222231] pc : [] lr : [] psr: 60000013 > > > [ 30.222231] sp : ed407b74 ip : 00000002 fp : 00000200 > > > [ 30.234276] r10: ed082800 r9 : 00000000 r8 : ed079010 > > > [ 30.239761] r7 : c05d76d8 r6 : 00000000 r5 : 00000038 r4 : 0000= 0038 > > > [ 30.246614] r3 : 00000038 r2 : 00000034 r1 : 00000000 r0 : ed08= 2802 > > > [ 30.253468] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM S= egment none > > > [ 30.260957] Control: 10c5387d Table: ad3d006a DAC: 00000051 > > > [ 30.266986] Process umount (pid: 2149, stack limit =3D 0xed406218) > > > [ 30.273296] Stack: (0xed407b74 to 0xed408000) > > > [ 30.277868] 7b60: ed0= 82802 00000038 c05d7490 > > > [ 30.286458] 7b80: c05d76d8 ed082600 0000ffff 00000000 00000002 000= 00038 00000004 ed082800 > > > [ 30.295047] 7ba0: ed079010 00000000 00000000 ed082800 ed079010 c05= d74fc 00000038 c05d76d8 > > > [ 30.303635] 7bc0: ed0e8f6a c05e8388 00000038 00000000 c0dc60f0 000= 00001 00000010 0000000e > > > [ 30.312216] 7be0: 00000004 00000001 00000001 00000001 c05f2668 ed0= 79010 00000200 00000200 > > > [ 30.320806] 7c00: 000095c0 00000200 ed082000 ed312200 000095c0 c05= e9658 ed082000 00000000 > > > [ 30.329392] 7c20: 000095c0 00000002 00000200 00000000 ed082000 ed4= 07c80 00000000 00000000 > > > [ 30.337975] 7c40: 00000000 00000001 00000040 00000000 00000000 04a= e0200 00000000 ed079010 > > > [ 30.346563] 7c60: ed407c80 ed407d30 00000200 ed312200 ed312200 c05= e9994 ed407c80 c0191f70 > > > [ 30.355150] 7c80: 00000000 00000200 00000000 00000000 00000000 000= 00000 ed312200 00000000 > > > [ 30.363738] 7ca0: 00a00000 00000000 00000200 00000000 0f600000 000= 00000 ed407d30 c05d9fbc > > > [ 30.372328] 7cc0: 00000200 ed407d30 ed312200 00000000 9188fed8 c05= d9f7c 00000000 c05d6c7c > > > [ 30.380917] 7ce0: 00000200 ed407d30 ed312200 ed312200 040e0200 000= 00000 ed628000 00000200 > > > [ 30.389509] 7d00: 00000200 00000207 00000000 c0604cd0 00000200 ed4= 07d30 ed312200 60000013 > > > [ 30.398097] 7d20: 00000200 00000000 ed208040 c019269c 00000000 000= 00004 ed628dd8 ed312200 > > > [ 30.406676] 7d40: ed628000 00000207 ed312200 00000800 00000207 000= 00000 ffffffff c060536c > > > [ 30.415267] 7d60: 00000200 c0607fb8 ed18c800 ed628000 ed2a0800 000= 00008 00000000 c0601178 > > > [ 30.423851] 7d80: ed312200 ed628550 00000000 ed628000 ed312200 ed1= 8c800 ed2a0800 ed628000 > > > [ 30.432437] 7da0: ed312200 00000008 00000004 ed18c800 ed2a0800 000= 01014 ed208040 c0601cf0 > > > [ 30.441020] 7dc0: 00000000 00000800 00000000 ec870140 00000003 600= 00013 c1568e2c c060154c > > > [ 30.449605] 7de0: ed18c800 c019269c 00000000 00000002 ed628000 000= 00800 ed628000 00000000 > > > [ 30.458191] 7e00: 00000008 ed18c800 00000000 00000088 ed18c800 c06= 00538 00000000 00000800 > > > [ 30.466779] 7e20: ed18c800 ed770000 00000000 00000008 ed770000 c04= 26a90 00000800 00000000 > > > [ 30.475366] 7e40: 00000088 00000000 00000800 000000a0 ed770000 c04= 30904 00000800 c08002e8 > > > [ 30.483952] 7e60: 00000000 00000000 000000d8 00000000 00000000 000= 00000 00000000 00000000 > > > [ 30.492545] 7e80: ed18c800 ed407eb4 00000001 ed770000 00000000 000= 00288 00000003 ed51b5d4 > > > [ 30.501126] 7ea0: ed406000 00000000 00000000 c0431880 ed77014c 76e= cb30e 5c265a59 ec870140 > > > [ 30.509709] 7ec0: 00000003 60000013 c1568e2c c0431f38 00000000 c01= 9269c ed77014c 00000002 > > > [ 30.518301] 7ee0: ed51b5d4 ed77014c ed77014c ed770104 ed51b5d4 ed7= 70000 ed406000 00000000 > > > [ 30.526886] 7f00: ed77014c c08039c8 00000000 00000288 00000003 ed5= 1b5d4 ed770000 c042201c > > > [ 30.535471] 7f20: ed1cb000 00000000 c0dcbbe0 00000534 ec870140 c02= e6324 edf88a10 ed1cb000 > > > [ 30.544056] 7f40: c0926528 c02afaf4 c0421714 00000015 c0d823cc c02= afc40 ed770000 c0421720 > > > [ 30.552643] 7f60: ed1cb000 c02b0288 ec870140 ed61a600 00000000 c02= d0950 ec870634 c0159b34 > > > [ 30.561220] 7f80: ed61a61c 00000000 ed407fb0 c0107ae4 00000034 c01= 07ae4 00000000 c010b09c > > > [ 30.569803] 7fa0: 00021cb8 0001e320 00021cb8 c0107968 00000000 000= 00000 00000000 00000000 > > > [ 30.578392] 7fc0: 00021cb8 0001e320 00021cb8 00000034 00021ca8 000= 00000 00000000 00000000 > > > [ 30.586973] 7fe0: 00021ce8 bec06600 b6e11dbc b6e11ddc 60000010 000= 21cb8 afffd861 afffdc61 > > > [ 30.595558] [] (memcpy) from [] (mtd_ooblayout= _set_bytes+0x7c/0xa4) > > > [ 30.603968] [] (mtd_ooblayout_set_bytes) from [] (mtd_ooblayout_set_eccbytes+0x1c/0x28) > > > [ 30.614207] [] (mtd_ooblayout_set_eccbytes) from [] (nand_write_subpage_hwecc+0x1a8/0x1d0) > > > [ 30.624707] [] (nand_write_subpage_hwecc) from [] (nand_do_write_ops+0x22c/0x50c) > > > [ 30.634397] [] (nand_do_write_ops) from [] (na= nd_write+0x5c/0x7c) > > > [ 30.642621] [] (nand_write) from [] (part_writ= e+0x40/0x48) > > > [ 30.650211] [] (part_write) from [] (mtd_write= +0x90/0xa8) > > > [ 30.657718] [] (mtd_write) from [] (ubi_io_wri= te+0x114/0x6b8) > > > [ 30.665573] [] (ubi_io_write) from [] (ubi_io_= write_vid_hdr+0xf8/0x148) > > > [ 30.674342] [] (ubi_io_write_vid_hdr) from [] = (try_write_vid_and_data+0x54/0x1a4) > > > [ 30.684030] [] (try_write_vid_and_data) from [= ] (ubi_eba_write_leb+0x1f8/0x7bc) > > > [ 30.693525] [] (ubi_eba_write_leb) from [] (ub= i_leb_write+0xbc/0xdc) > > > [ 30.702021] [] (ubi_leb_write) from [] (ubifs_= leb_write+0x9c/0x11c) > > > [ 30.710426] [] (ubifs_leb_write) from [] (ubif= s_log_start_commit+0x27c/0x444) > > > [ 30.719743] [] (ubifs_log_start_commit) from [= ] (do_commit+0x1b8/0x7e8) > > > [ 30.728521] [] (do_commit) from [] (ubifs_sync= _fs+0x8c/0xa0) > > > [ 30.736292] [] (ubifs_sync_fs) from [] (sync_f= ilesystem+0x88/0xac) > > > [ 30.744616] [] (sync_filesystem) from [] (gene= ric_shutdown_super+0x24/0xf8) > > > [ 30.753754] [] (generic_shutdown_super) from [= ] (kill_anon_super+0xc/0x18) > > > [ 30.762807] [] (kill_anon_super) from [] (kill= _ubifs_super+0xc/0x18) > > > [ 30.771308] [] (kill_ubifs_super) from [] (dea= ctivate_locked_super+0x5c/0x80) > > > [ 30.780627] [] (deactivate_locked_super) from [] (cleanup_mnt+0x38/0x78) > > > [ 30.789492] [] (cleanup_mnt) from [] (task_wor= k_run+0xc0/0xe8) > > > [ 30.797444] [] (task_work_run) from [] (do_wor= k_pending+0xd4/0xd8) > > > [ 30.805759] [] (do_work_pending) from [] (slow= _work_pending+0xc/0x20) > > > [ 30.814345] Code: e8bd8011 e26cc004 e35c0002 c4d13001 (a4d14001)=20 > > > [ 30.820843] ---[ end trace bc240a5a583e6e02 ]--- > > > =20 > >=20 > >=20 > > ______________________________________________________ > > Linux MTD discussion mailing list > > http://lists.infradead.org/mailman/listinfo/linux-mtd/ =20 >=20 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: gpmc-nand broken since v4.12 Date: Fri, 13 Oct 2017 22:29:07 +0200 Message-ID: <20171013222907.16adf410@bbrezillon> References: <7eae9266-558f-6578-66d7-7ab0eb659a81@ti.com> <20171013145033.5d1d9647@bbrezillon> <20171013222458.3f4c103e@bbrezillon> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171013222458.3f4c103e@bbrezillon> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+gldm-linux-mtd-36=gmane.org@lists.infradead.org To: Roger Quadros Cc: Tony Lindgren , linux-omap , "linux-mtd@lists.infradead.org" , "Cooper Jr., Franklin" List-Id: linux-omap@vger.kernel.org T24gRnJpLCAxMyBPY3QgMjAxNyAyMjoyNDo1OCArMDIwMApCb3JpcyBCcmV6aWxsb24gPGJvcmlz LmJyZXppbGxvbkBmcmVlLWVsZWN0cm9ucy5jb20+IHdyb3RlOgoKPiBPbiBGcmksIDEzIE9jdCAy MDE3IDE0OjUwOjMzICswMjAwCj4gQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AZnJl ZS1lbGVjdHJvbnMuY29tPiB3cm90ZToKPiAKPiA+IE9uIEZyaSwgMTMgT2N0IDIwMTcgMTQ6NTc6 MjkgKzAzMDAKPiA+IFJvZ2VyIFF1YWRyb3MgPHJvZ2VycUB0aS5jb20+IHdyb3RlOgo+ID4gICAK PiA+ID4g77u/SGkgQm9yaXMsCj4gPiA+IAo+ID4gPiBOQU5EIG9uIGdwbWMtb21hcCBicmVha3Mg Zm9yIG1lIHdoaWxlIGRvaW5nIGEgdW5tb3VudCBvZiBhIHViaSB2b2x1bWUgc2luY2UgdjQuMTIK PiA+ID4gCj4gPiA+IEJlaGF2aW91ciBmb2xsb3dzIHRocm91Z2ggaW4gdjQuMTMgYW5kIHY0LjE0 LXJjIGFzIHdlbGwuCj4gPiA+IAo+ID4gPiBEbyB5b3UgaGF2ZSBhbnkgaWRlYSBhYm91dCB0aGlz PyAgCj4gCj4gTW9yZSBpbmZvIG9uIHdoYXQgaGFzIGNoYW5nZWQgaW4gNC4xMjogd2Ugbm8gbG9u Z2VyIGFsbG9jYXRlIHRoZQo+IG5hbmRfYnVmZmVyIHN0cnVjdCArIGl0cyBpbnRlcm5hbCBidWZm ZXIgdXNpbmcgYSBzaW5nbGUgYmlnIGttYWxsb2MKPiBjYWxsLCB3aGljaCBtZWFucyB0aGUgbmFu ZF9idWZmZXIgc3RydWN0IGlzIG5vdyBsaWtlbHkgdG8gYmUgYWxsb2NhdGVkCj4gaW4gYSBzbWFs bCBvYmplY3Qgc2xhYiAoc2l6ZW9mKG5hbmRfYnVmZmVycykgPSAxMikuIElmIHlvdSBoYXZlIGEK PiB1c2UtYWZ0ZXItZnJlZSBidWcgc29tZXdoZXJlIGluIHRoZSBrZXJuZWwsIGl0IG1pZ2h0IGNv cnJ1cHQgdGhlCgpJIG1lYW50IGJ1ZmZlci1vdmVyZmxvdywgbm90IHVzZS1hZnRlci1mcmVlLgoK PiBuYW5kX2J1ZmZlcnMgb2JqZWN0LCB3aGljaCBtaWdodCBleHBsYWluIHRoZSBidWcgeW91IHNl ZSBoZXJlLgo+IAo+ID4gCj4gPiBDYW4geW91IHRyeSB3aXRoIHRoaXMgcGF0Y2ggWzFdIGFwcGxp ZWQgYW5kIHBhc3RlIG1lIHRoZSB2YWx1ZXMgcHJpbnRlZAo+ID4ganVzdCBiZWZvcmUgdGhlIGNy YXNoPwo+ID4gCj4gPiBbMV1odHRwOi8vY29kZS5idWxpeC5vcmcvbGM4eGswLTIwOTc0Ngo+ID4g ICAKPiA+ID4gCj4gPiA+ID09IHVubW91bnRpbmcgdm9sdW1lCj4gPiA+IFsgICAzMC4xMjg1ODRd IFVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCB2aXJ0 dWFsIGFkZHJlc3MgMDAwMDAwMDAKPiA+ID4gWyAgIDMwLjEzNzIzNF0gcGdkID0gZWQzZDAwMDAK PiA+ID4gWyAgIDMwLjE0MDA3OV0gWzAwMDAwMDAwXSAqcGdkPWZkNjdhODM1Cj4gPiA+IFsgICAz MC4xNDM4NDNdIEludGVybmFsIGVycm9yOiBPb3BzOiAxNyBbIzFdIFNNUCBBUk0KPiA+ID4gWyAg IDMwLjE0ODc4MV0gTW9kdWxlcyBsaW5rZWQgaW46IHNuZF9zb2NfZGF2aW5jaV9tY2FzcCB4aGNp X3BsYXRfaGNkIHNuZF9zb2NfZWRtYSB4aGNpX2hjZCBzbmRfc29jX3RsdjMyMGFpYzN4IHNuZF9z b2Nfc2ltcGxlX2NhcmQgc25kX3NvY19vbWFwIHNuZF9zb2Nfc2ltcGxlX2NhcmRfdXRpbHMgc25k X3NvY19jb3JlIHVzYmNvZQo+ID4gPiBbICAgMzAuMTkzODgxXSBDUFU6IDEgUElEOiAyMTQ5IENv bW06IHVtb3VudCBOb3QgdGFpbnRlZCA0LjEyLjAtMDAwMDEtZzJjMDk1MzEgIzE0NDAKPiA+ID4g WyAgIDMwLjIwMTczNF0gSGFyZHdhcmUgbmFtZTogR2VuZXJpYyBEUkE3NFggKEZsYXR0ZW5lZCBE ZXZpY2UgVHJlZSkKPiA+ID4gWyAgIDMwLjIwODEzMF0gdGFzazogZWM4NzAxNDAgdGFzay5zdGFj azogZWQ0MDYwMDAKPiA+ID4gWyAgIDMwLjIxMjg4OV0gUEMgaXMgYXQgbWVtY3B5KzB4ZTgvMHgz MzAKPiA+ID4gWyAgIDMwLjIxNjgzM10gTFIgaXMgYXQgbXRkX29vYmxheW91dF9zZXRfYnl0ZXMr MHg3Yy8weGE0Cj4gPiA+IFsgICAzMC4yMjIyMzFdIHBjIDogWzxjMDRhYmU2OD5dICAgIGxyIDog WzxjMDVkNzQ5MD5dICAgIHBzcjogNjAwMDAwMTMKPiA+ID4gWyAgIDMwLjIyMjIzMV0gc3AgOiBl ZDQwN2I3NCAgaXAgOiAwMDAwMDAwMiAgZnAgOiAwMDAwMDIwMAo+ID4gPiBbICAgMzAuMjM0Mjc2 XSByMTA6IGVkMDgyODAwICByOSA6IDAwMDAwMDAwICByOCA6IGVkMDc5MDEwCj4gPiA+IFsgICAz MC4yMzk3NjFdIHI3IDogYzA1ZDc2ZDggIHI2IDogMDAwMDAwMDAgIHI1IDogMDAwMDAwMzggIHI0 IDogMDAwMDAwMzgKPiA+ID4gWyAgIDMwLjI0NjYxNF0gcjMgOiAwMDAwMDAzOCAgcjIgOiAwMDAw MDAzNCAgcjEgOiAwMDAwMDAwMCAgcjAgOiBlZDA4MjgwMgo+ID4gPiBbICAgMzAuMjUzNDY4XSBG bGFnczogblpDdiAgSVJRcyBvbiAgRklRcyBvbiAgTW9kZSBTVkNfMzIgIElTQSBBUk0gIFNlZ21l bnQgbm9uZQo+ID4gPiBbICAgMzAuMjYwOTU3XSBDb250cm9sOiAxMGM1Mzg3ZCAgVGFibGU6IGFk M2QwMDZhICBEQUM6IDAwMDAwMDUxCj4gPiA+IFsgICAzMC4yNjY5ODZdIFByb2Nlc3MgdW1vdW50 IChwaWQ6IDIxNDksIHN0YWNrIGxpbWl0ID0gMHhlZDQwNjIxOCkKPiA+ID4gWyAgIDMwLjI3MzI5 Nl0gU3RhY2s6ICgweGVkNDA3Yjc0IHRvIDB4ZWQ0MDgwMDApCj4gPiA+IFsgICAzMC4yNzc4Njhd IDdiNjA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkMDgy ODAyIDAwMDAwMDM4IGMwNWQ3NDkwCj4gPiA+IFsgICAzMC4yODY0NThdIDdiODA6IGMwNWQ3NmQ4 IGVkMDgyNjAwIDAwMDBmZmZmIDAwMDAwMDAwIDAwMDAwMDAyIDAwMDAwMDM4IDAwMDAwMDA0IGVk MDgyODAwCj4gPiA+IFsgICAzMC4yOTUwNDddIDdiYTA6IGVkMDc5MDEwIDAwMDAwMDAwIDAwMDAw MDAwIGVkMDgyODAwIGVkMDc5MDEwIGMwNWQ3NGZjIDAwMDAwMDM4IGMwNWQ3NmQ4Cj4gPiA+IFsg ICAzMC4zMDM2MzVdIDdiYzA6IGVkMGU4ZjZhIGMwNWU4Mzg4IDAwMDAwMDM4IDAwMDAwMDAwIGMw ZGM2MGYwIDAwMDAwMDAxIDAwMDAwMDEwIDAwMDAwMDBlCj4gPiA+IFsgICAzMC4zMTIyMTZdIDdi ZTA6IDAwMDAwMDA0IDAwMDAwMDAxIDAwMDAwMDAxIDAwMDAwMDAxIGMwNWYyNjY4IGVkMDc5MDEw IDAwMDAwMjAwIDAwMDAwMjAwCj4gPiA+IFsgICAzMC4zMjA4MDZdIDdjMDA6IDAwMDA5NWMwIDAw MDAwMjAwIGVkMDgyMDAwIGVkMzEyMjAwIDAwMDA5NWMwIGMwNWU5NjU4IGVkMDgyMDAwIDAwMDAw MDAwCj4gPiA+IFsgICAzMC4zMjkzOTJdIDdjMjA6IDAwMDA5NWMwIDAwMDAwMDAyIDAwMDAwMjAw IDAwMDAwMDAwIGVkMDgyMDAwIGVkNDA3YzgwIDAwMDAwMDAwIDAwMDAwMDAwCj4gPiA+IFsgICAz MC4zMzc5NzVdIDdjNDA6IDAwMDAwMDAwIDAwMDAwMDAxIDAwMDAwMDQwIDAwMDAwMDAwIDAwMDAw MDAwIDA0YWUwMjAwIDAwMDAwMDAwIGVkMDc5MDEwCj4gPiA+IFsgICAzMC4zNDY1NjNdIDdjNjA6 IGVkNDA3YzgwIGVkNDA3ZDMwIDAwMDAwMjAwIGVkMzEyMjAwIGVkMzEyMjAwIGMwNWU5OTk0IGVk NDA3YzgwIGMwMTkxZjcwCj4gPiA+IFsgICAzMC4zNTUxNTBdIDdjODA6IDAwMDAwMDAwIDAwMDAw MjAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGVkMzEyMjAwIDAwMDAwMDAw Cj4gPiA+IFsgICAzMC4zNjM3MzhdIDdjYTA6IDAwYTAwMDAwIDAwMDAwMDAwIDAwMDAwMjAwIDAw MDAwMDAwIDBmNjAwMDAwIDAwMDAwMDAwIGVkNDA3ZDMwIGMwNWQ5ZmJjCj4gPiA+IFsgICAzMC4z NzIzMjhdIDdjYzA6IDAwMDAwMjAwIGVkNDA3ZDMwIGVkMzEyMjAwIDAwMDAwMDAwIDkxODhmZWQ4 IGMwNWQ5ZjdjIDAwMDAwMDAwIGMwNWQ2YzdjCj4gPiA+IFsgICAzMC4zODA5MTddIDdjZTA6IDAw MDAwMjAwIGVkNDA3ZDMwIGVkMzEyMjAwIGVkMzEyMjAwIDA0MGUwMjAwIDAwMDAwMDAwIGVkNjI4 MDAwIDAwMDAwMjAwCj4gPiA+IFsgICAzMC4zODk1MDldIDdkMDA6IDAwMDAwMjAwIDAwMDAwMjA3 IDAwMDAwMDAwIGMwNjA0Y2QwIDAwMDAwMjAwIGVkNDA3ZDMwIGVkMzEyMjAwIDYwMDAwMDEzCj4g PiA+IFsgICAzMC4zOTgwOTddIDdkMjA6IDAwMDAwMjAwIDAwMDAwMDAwIGVkMjA4MDQwIGMwMTky NjljIDAwMDAwMDAwIDAwMDAwMDA0IGVkNjI4ZGQ4IGVkMzEyMjAwCj4gPiA+IFsgICAzMC40MDY2 NzZdIDdkNDA6IGVkNjI4MDAwIDAwMDAwMjA3IGVkMzEyMjAwIDAwMDAwODAwIDAwMDAwMjA3IDAw MDAwMDAwIGZmZmZmZmZmIGMwNjA1MzZjCj4gPiA+IFsgICAzMC40MTUyNjddIDdkNjA6IDAwMDAw MjAwIGMwNjA3ZmI4IGVkMThjODAwIGVkNjI4MDAwIGVkMmEwODAwIDAwMDAwMDA4IDAwMDAwMDAw IGMwNjAxMTc4Cj4gPiA+IFsgICAzMC40MjM4NTFdIDdkODA6IGVkMzEyMjAwIGVkNjI4NTUwIDAw MDAwMDAwIGVkNjI4MDAwIGVkMzEyMjAwIGVkMThjODAwIGVkMmEwODAwIGVkNjI4MDAwCj4gPiA+ IFsgICAzMC40MzI0MzddIDdkYTA6IGVkMzEyMjAwIDAwMDAwMDA4IDAwMDAwMDA0IGVkMThjODAw IGVkMmEwODAwIDAwMDAxMDE0IGVkMjA4MDQwIGMwNjAxY2YwCj4gPiA+IFsgICAzMC40NDEwMjBd IDdkYzA6IDAwMDAwMDAwIDAwMDAwODAwIDAwMDAwMDAwIGVjODcwMTQwIDAwMDAwMDAzIDYwMDAw MDEzIGMxNTY4ZTJjIGMwNjAxNTRjCj4gPiA+IFsgICAzMC40NDk2MDVdIDdkZTA6IGVkMThjODAw IGMwMTkyNjljIDAwMDAwMDAwIDAwMDAwMDAyIGVkNjI4MDAwIDAwMDAwODAwIGVkNjI4MDAwIDAw MDAwMDAwCj4gPiA+IFsgICAzMC40NTgxOTFdIDdlMDA6IDAwMDAwMDA4IGVkMThjODAwIDAwMDAw MDAwIDAwMDAwMDg4IGVkMThjODAwIGMwNjAwNTM4IDAwMDAwMDAwIDAwMDAwODAwCj4gPiA+IFsg ICAzMC40NjY3NzldIDdlMjA6IGVkMThjODAwIGVkNzcwMDAwIDAwMDAwMDAwIDAwMDAwMDA4IGVk NzcwMDAwIGMwNDI2YTkwIDAwMDAwODAwIDAwMDAwMDAwCj4gPiA+IFsgICAzMC40NzUzNjZdIDdl NDA6IDAwMDAwMDg4IDAwMDAwMDAwIDAwMDAwODAwIDAwMDAwMGEwIGVkNzcwMDAwIGMwNDMwOTA0 IDAwMDAwODAwIGMwODAwMmU4Cj4gPiA+IFsgICAzMC40ODM5NTJdIDdlNjA6IDAwMDAwMDAwIDAw MDAwMDAwIDAwMDAwMGQ4IDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAw MDAwCj4gPiA+IFsgICAzMC40OTI1NDVdIDdlODA6IGVkMThjODAwIGVkNDA3ZWI0IDAwMDAwMDAx IGVkNzcwMDAwIDAwMDAwMDAwIDAwMDAwMjg4IDAwMDAwMDAzIGVkNTFiNWQ0Cj4gPiA+IFsgICAz MC41MDExMjZdIDdlYTA6IGVkNDA2MDAwIDAwMDAwMDAwIDAwMDAwMDAwIGMwNDMxODgwIGVkNzcw MTRjIDc2ZWNiMzBlIDVjMjY1YTU5IGVjODcwMTQwCj4gPiA+IFsgICAzMC41MDk3MDldIDdlYzA6 IDAwMDAwMDAzIDYwMDAwMDEzIGMxNTY4ZTJjIGMwNDMxZjM4IDAwMDAwMDAwIGMwMTkyNjljIGVk NzcwMTRjIDAwMDAwMDAyCj4gPiA+IFsgICAzMC41MTgzMDFdIDdlZTA6IGVkNTFiNWQ0IGVkNzcw MTRjIGVkNzcwMTRjIGVkNzcwMTA0IGVkNTFiNWQ0IGVkNzcwMDAwIGVkNDA2MDAwIDAwMDAwMDAw Cj4gPiA+IFsgICAzMC41MjY4ODZdIDdmMDA6IGVkNzcwMTRjIGMwODAzOWM4IDAwMDAwMDAwIDAw MDAwMjg4IDAwMDAwMDAzIGVkNTFiNWQ0IGVkNzcwMDAwIGMwNDIyMDFjCj4gPiA+IFsgICAzMC41 MzU0NzFdIDdmMjA6IGVkMWNiMDAwIDAwMDAwMDAwIGMwZGNiYmUwIDAwMDAwNTM0IGVjODcwMTQw IGMwMmU2MzI0IGVkZjg4YTEwIGVkMWNiMDAwCj4gPiA+IFsgICAzMC41NDQwNTZdIDdmNDA6IGMw OTI2NTI4IGMwMmFmYWY0IGMwNDIxNzE0IDAwMDAwMDE1IGMwZDgyM2NjIGMwMmFmYzQwIGVkNzcw MDAwIGMwNDIxNzIwCj4gPiA+IFsgICAzMC41NTI2NDNdIDdmNjA6IGVkMWNiMDAwIGMwMmIwMjg4 IGVjODcwMTQwIGVkNjFhNjAwIDAwMDAwMDAwIGMwMmQwOTUwIGVjODcwNjM0IGMwMTU5YjM0Cj4g PiA+IFsgICAzMC41NjEyMjBdIDdmODA6IGVkNjFhNjFjIDAwMDAwMDAwIGVkNDA3ZmIwIGMwMTA3 YWU0IDAwMDAwMDM0IGMwMTA3YWU0IDAwMDAwMDAwIGMwMTBiMDljCj4gPiA+IFsgICAzMC41Njk4 MDNdIDdmYTA6IDAwMDIxY2I4IDAwMDFlMzIwIDAwMDIxY2I4IGMwMTA3OTY4IDAwMDAwMDAwIDAw MDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwCj4gPiA+IFsgICAzMC41NzgzOTJdIDdmYzA6IDAwMDIx Y2I4IDAwMDFlMzIwIDAwMDIxY2I4IDAwMDAwMDM0IDAwMDIxY2E4IDAwMDAwMDAwIDAwMDAwMDAw IDAwMDAwMDAwCj4gPiA+IFsgICAzMC41ODY5NzNdIDdmZTA6IDAwMDIxY2U4IGJlYzA2NjAwIGI2 ZTExZGJjIGI2ZTExZGRjIDYwMDAwMDEwIDAwMDIxY2I4IGFmZmZkODYxIGFmZmZkYzYxCj4gPiA+ IFsgICAzMC41OTU1NThdIFs8YzA0YWJlNjg+XSAobWVtY3B5KSBmcm9tIFs8YzA1ZDc0OTA+XSAo bXRkX29vYmxheW91dF9zZXRfYnl0ZXMrMHg3Yy8weGE0KQo+ID4gPiBbICAgMzAuNjAzOTY4XSBb PGMwNWQ3NDkwPl0gKG10ZF9vb2JsYXlvdXRfc2V0X2J5dGVzKSBmcm9tIFs8YzA1ZDc0ZmM+XSAo bXRkX29vYmxheW91dF9zZXRfZWNjYnl0ZXMrMHgxYy8weDI4KQo+ID4gPiBbICAgMzAuNjE0MjA3 XSBbPGMwNWQ3NGZjPl0gKG10ZF9vb2JsYXlvdXRfc2V0X2VjY2J5dGVzKSBmcm9tIFs8YzA1ZTgz ODg+XSAobmFuZF93cml0ZV9zdWJwYWdlX2h3ZWNjKzB4MWE4LzB4MWQwKQo+ID4gPiBbICAgMzAu NjI0NzA3XSBbPGMwNWU4Mzg4Pl0gKG5hbmRfd3JpdGVfc3VicGFnZV9od2VjYykgZnJvbSBbPGMw NWU5NjU4Pl0gKG5hbmRfZG9fd3JpdGVfb3BzKzB4MjJjLzB4NTBjKQo+ID4gPiBbICAgMzAuNjM0 Mzk3XSBbPGMwNWU5NjU4Pl0gKG5hbmRfZG9fd3JpdGVfb3BzKSBmcm9tIFs8YzA1ZTk5OTQ+XSAo bmFuZF93cml0ZSsweDVjLzB4N2MpCj4gPiA+IFsgICAzMC42NDI2MjFdIFs8YzA1ZTk5OTQ+XSAo bmFuZF93cml0ZSkgZnJvbSBbPGMwNWQ5ZmJjPl0gKHBhcnRfd3JpdGUrMHg0MC8weDQ4KQo+ID4g PiBbICAgMzAuNjUwMjExXSBbPGMwNWQ5ZmJjPl0gKHBhcnRfd3JpdGUpIGZyb20gWzxjMDVkNmM3 Yz5dIChtdGRfd3JpdGUrMHg5MC8weGE4KQo+ID4gPiBbICAgMzAuNjU3NzE4XSBbPGMwNWQ2Yzdj Pl0gKG10ZF93cml0ZSkgZnJvbSBbPGMwNjA0Y2QwPl0gKHViaV9pb193cml0ZSsweDExNC8weDZi OCkKPiA+ID4gWyAgIDMwLjY2NTU3M10gWzxjMDYwNGNkMD5dICh1YmlfaW9fd3JpdGUpIGZyb20g WzxjMDYwNTM2Yz5dICh1YmlfaW9fd3JpdGVfdmlkX2hkcisweGY4LzB4MTQ4KQo+ID4gPiBbICAg MzAuNjc0MzQyXSBbPGMwNjA1MzZjPl0gKHViaV9pb193cml0ZV92aWRfaGRyKSBmcm9tIFs8YzA2 MDExNzg+XSAodHJ5X3dyaXRlX3ZpZF9hbmRfZGF0YSsweDU0LzB4MWE0KQo+ID4gPiBbICAgMzAu Njg0MDMwXSBbPGMwNjAxMTc4Pl0gKHRyeV93cml0ZV92aWRfYW5kX2RhdGEpIGZyb20gWzxjMDYw MWNmMD5dICh1YmlfZWJhX3dyaXRlX2xlYisweDFmOC8weDdiYykKPiA+ID4gWyAgIDMwLjY5MzUy NV0gWzxjMDYwMWNmMD5dICh1YmlfZWJhX3dyaXRlX2xlYikgZnJvbSBbPGMwNjAwNTM4Pl0gKHVi aV9sZWJfd3JpdGUrMHhiYy8weGRjKQo+ID4gPiBbICAgMzAuNzAyMDIxXSBbPGMwNjAwNTM4Pl0g KHViaV9sZWJfd3JpdGUpIGZyb20gWzxjMDQyNmE5MD5dICh1Ymlmc19sZWJfd3JpdGUrMHg5Yy8w eDExYykKPiA+ID4gWyAgIDMwLjcxMDQyNl0gWzxjMDQyNmE5MD5dICh1Ymlmc19sZWJfd3JpdGUp IGZyb20gWzxjMDQzMDkwND5dICh1Ymlmc19sb2dfc3RhcnRfY29tbWl0KzB4MjdjLzB4NDQ0KQo+ ID4gPiBbICAgMzAuNzE5NzQzXSBbPGMwNDMwOTA0Pl0gKHViaWZzX2xvZ19zdGFydF9jb21taXQp IGZyb20gWzxjMDQzMTg4MD5dIChkb19jb21taXQrMHgxYjgvMHg3ZTgpCj4gPiA+IFsgICAzMC43 Mjg1MjFdIFs8YzA0MzE4ODA+XSAoZG9fY29tbWl0KSBmcm9tIFs8YzA0MjIwMWM+XSAodWJpZnNf c3luY19mcysweDhjLzB4YTApCj4gPiA+IFsgICAzMC43MzYyOTJdIFs8YzA0MjIwMWM+XSAodWJp ZnNfc3luY19mcykgZnJvbSBbPGMwMmU2MzI0Pl0gKHN5bmNfZmlsZXN5c3RlbSsweDg4LzB4YWMp Cj4gPiA+IFsgICAzMC43NDQ2MTZdIFs8YzAyZTYzMjQ+XSAoc3luY19maWxlc3lzdGVtKSBmcm9t IFs8YzAyYWZhZjQ+XSAoZ2VuZXJpY19zaHV0ZG93bl9zdXBlcisweDI0LzB4ZjgpCj4gPiA+IFsg ICAzMC43NTM3NTRdIFs8YzAyYWZhZjQ+XSAoZ2VuZXJpY19zaHV0ZG93bl9zdXBlcikgZnJvbSBb PGMwMmFmYzQwPl0gKGtpbGxfYW5vbl9zdXBlcisweGMvMHgxOCkKPiA+ID4gWyAgIDMwLjc2Mjgw N10gWzxjMDJhZmM0MD5dIChraWxsX2Fub25fc3VwZXIpIGZyb20gWzxjMDQyMTcyMD5dIChraWxs X3ViaWZzX3N1cGVyKzB4Yy8weDE4KQo+ID4gPiBbICAgMzAuNzcxMzA4XSBbPGMwNDIxNzIwPl0g KGtpbGxfdWJpZnNfc3VwZXIpIGZyb20gWzxjMDJiMDI4OD5dIChkZWFjdGl2YXRlX2xvY2tlZF9z dXBlcisweDVjLzB4ODApCj4gPiA+IFsgICAzMC43ODA2MjddIFs8YzAyYjAyODg+XSAoZGVhY3Rp dmF0ZV9sb2NrZWRfc3VwZXIpIGZyb20gWzxjMDJkMDk1MD5dIChjbGVhbnVwX21udCsweDM4LzB4 NzgpCj4gPiA+IFsgICAzMC43ODk0OTJdIFs8YzAyZDA5NTA+XSAoY2xlYW51cF9tbnQpIGZyb20g WzxjMDE1OWIzND5dICh0YXNrX3dvcmtfcnVuKzB4YzAvMHhlOCkKPiA+ID4gWyAgIDMwLjc5NzQ0 NF0gWzxjMDE1OWIzND5dICh0YXNrX3dvcmtfcnVuKSBmcm9tIFs8YzAxMGIwOWM+XSAoZG9fd29y a19wZW5kaW5nKzB4ZDQvMHhkOCkKPiA+ID4gWyAgIDMwLjgwNTc1OV0gWzxjMDEwYjA5Yz5dIChk b193b3JrX3BlbmRpbmcpIGZyb20gWzxjMDEwNzk2OD5dIChzbG93X3dvcmtfcGVuZGluZysweGMv MHgyMCkKPiA+ID4gWyAgIDMwLjgxNDM0NV0gQ29kZTogZThiZDgwMTEgZTI2Y2MwMDQgZTM1YzAw MDIgYzRkMTMwMDEgKGE0ZDE0MDAxKSAKPiA+ID4gWyAgIDMwLjgyMDg0M10gLS0tWyBlbmQgdHJh Y2UgYmMyNDBhNWE1ODNlNmUwMiBdLS0tCj4gPiA+ICAgICAKPiA+IAo+ID4gCj4gPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IExpbnV4 IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdAo+ID4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvICAKPiAKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24g bWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtbXRkLwo=