Re: svn commit: r259016 - in head/sys: conf dev/drm2 dev/drm2/i9
--e89a8f2356bdd4e41304ed1635fa
Content-Type: text/plain; charset=ISO-8859-1
Hello,
I'm on rev. 259102 and hitting drm not being able to attach to fbd
device at X startup (X freezing).
Attaching /var/log/messages, pciconf output and kern.conftxt. Please
let me know if there is something I'm missing here. Posting in this
thread since I thought it might be relevant to this commit?
Thanks,
Markiyan
2013/12/8 Marc UBM <ubm.freebsd@googlemail.com>:
> Hiho! :-)
>
> Thanks a lot for working on this!
>
> As soon as X is started, things work fine. Before that (as soon as vt
> is initialized after the boot menu), output on all ttys is flickering,
> resolution is at 640x480 (guessing here) and changing anything via
> vidcontrol fails with "inappropriate ioctl for device". Also, screen
> output starts overlapping, but a "clear" command fixes that
> temporarily. The "Alt-Gr" key does nothing, manually entering ascii
> keycodes via alt+number (e.g. alt-124 for |) works.
>
> Relevant pciconf output:
>
> vgapci0@pci0:0:2:0: class=0x030000 card=0x40011297 chip=0x2e328086
> rev=0x03 hdr=0x00 vendor = 'Intel Corporation'
> device = '4 Series Chipset Integrated Graphics Controller'
> class = display
> subclass = VGA
>
> vgapci1@pci0:0:2:1: class=0x038000 card=0x40011297 chip=0x2e338086
> rev=0x03 hdr=0x00 vendor = 'Intel Corporation'
> device = '4 Series Chipset Integrated Graphics Controller'
> class = display
>
> Best regards,
> Marc
>
>
>> Author: ray
>> Date: Thu Dec 5 22:38:53 2013
>> New Revision: 259016
>> URL: http://svnweb.freebsd.org/changeset/base/259016
>>
>> Log:
>> Merge VT(9) project (a.k.a. newcons).
>>
>> Reviewed by: nwhitehorn
>> MFC_to_10_after: re approval
>>
>> Sponsored by: The FreeBSD Foundation
>>
>> Added:
>> head/sys/dev/fb/fb_if.m
>> - copied unchanged from r259015, user/ed/newcons/sys/dev/fb/fb_if.m
>> head/sys/dev/fb/fbd.c
>> - copied unchanged from r259015, user/ed/newcons/sys/dev/fb/fbd.c
>> head/sys/dev/vt/
>> - copied from r259015, user/ed/newcons/sys/dev/vt/
>> head/sys/kern/subr_terminal.c
>> - copied unchanged from r259015, user/ed/newcons/sys/kern/subr_terminal.c
>> head/sys/sys/terminal.h
>> - copied unchanged from r259015, user/ed/newcons/sys/sys/terminal.h
>> Modified:
>> head/sys/conf/files
>> head/sys/conf/files.amd64
>> head/sys/conf/files.arm
>> head/sys/conf/files.i386
>> head/sys/conf/files.powerpc
>> head/sys/conf/files.sparc64
>> head/sys/conf/kmod.mk
>> head/sys/conf/options
>> head/sys/dev/drm2/drm_fb_helper.c
>> head/sys/dev/drm2/drm_os_freebsd.h
>> head/sys/dev/drm2/i915/i915_drv.c
>> head/sys/dev/drm2/i915/intel_fb.c
>> head/sys/dev/drm2/radeon/radeon.h
>> head/sys/dev/drm2/radeon/radeon_drv.c
>> head/sys/dev/drm2/radeon/radeon_fb.c
>> head/sys/dev/drm2/radeon/radeon_pm.c
>> head/sys/modules/drm2/i915kms/Makefile
>> head/sys/modules/drm2/radeonkms/Makefile
>> head/sys/sparc64/sparc64/machdep.c
>> head/sys/sys/consio.h
>> head/sys/sys/eventhandler.h
>> head/sys/sys/fbio.h
>> head/sys/sys/tty.h
>> head/sys/teken/teken.c
>> head/sys/teken/teken.h
>> head/sys/teken/teken_subr.h
>> Directory Properties:
>> head/sys/ (props changed)
>> head/sys/conf/ (props changed)
>>
>> Modified: head/sys/conf/files
>> ==============================================================================
>> --- head/sys/conf/files Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/conf/files Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -82,7 +82,7 @@ pccarddevs.h standard \
>> compile-with "${AWK} -f $S/tools/pccarddevs2h.awk $S/dev/pccard/pccarddevs" \
>> no-obj no-implicit-rule before-depend \
>> clean "pccarddevs.h"
>> -teken_state.h optional sc \
>> +teken_state.h optional sc | vt \
>> dependency "$S/teken/gensequences $S/teken/sequences" \
>> compile-with "${AWK} -f $S/teken/gensequences $S/teken/sequences > teken_state.h" \
>> no-obj no-implicit-rule before-depend \
>> @@ -1396,6 +1396,8 @@ dev/ex/if_ex_isa.c optional ex isa
>> dev/ex/if_ex_pccard.c optional ex pccard
>> dev/exca/exca.c optional cbb
>> dev/fatm/if_fatm.c optional fatm pci
>> +dev/fb/fbd.c optional fbd | vt
>> +dev/fb/fb_if.m optional fbd | vt
>> dev/fb/splash.c optional splash
>> dev/fdt/fdt_common.c optional fdt
>> dev/fdt/fdt_ic_if.m optional fdt
>> @@ -2461,6 +2463,17 @@ dev/vge/if_vge.c optional vge
>>
>> dev/vkbd/vkbd.c optional vkbd
>> dev/vr/if_vr.c optional vr pci
>> +dev/vt/colors/vt_termcolors.c optional vt
>> +dev/vt/font/vt_font_default.c optional vt
>> +dev/vt/font/vt_mouse_cursor.c optional vt
>> +dev/vt/hw/fb/vt_fb.c optional vt
>> +dev/vt/hw/vga/vga.c optional vt vt_vga
>> +dev/vt/logo/logo_freebsd.c optional vt
>> +dev/vt/vt_buf.c optional vt
>> +dev/vt/vt_consolectl.c optional vt
>> +dev/vt/vt_core.c optional vt
>> +dev/vt/vt_font.c optional vt
>> +dev/vt/vt_sysmouse.c optional vt
>> dev/vte/if_vte.c optional vte pci
>> dev/vx/if_vx.c optional vx
>> dev/vx/if_vx_eisa.c optional vx eisa
>> @@ -2897,6 +2910,7 @@ kern/subr_sleepqueue.c standard
>> kern/subr_smp.c standard
>> kern/subr_stack.c optional ddb | stack | ktr
>> kern/subr_taskqueue.c standard
>> +kern/subr_terminal.c optional vt
>> kern/subr_trap.c standard
>> kern/subr_turnstile.c standard
>> kern/subr_uio.c standard
>> @@ -3796,7 +3810,7 @@ security/mac_portacl/mac_portacl.c optio
>> security/mac_seeotheruids/mac_seeotheruids.c optional mac_seeotheruids
>> security/mac_stub/mac_stub.c optional mac_stub
>> security/mac_test/mac_test.c optional mac_test
>> -teken/teken.c optional sc
>> +teken/teken.c optional sc | vt
>> ufs/ffs/ffs_alloc.c optional ffs
>> ufs/ffs/ffs_balloc.c optional ffs
>> ufs/ffs/ffs_inode.c optional ffs
>>
>> Modified: head/sys/conf/files.amd64
>> ==============================================================================
>> --- head/sys/conf/files.amd64 Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/conf/files.amd64 Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -241,7 +241,7 @@ dev/hyperv/vmbus/hv_connection.c optio
>> dev/hyperv/vmbus/hv_hv.c optional hyperv
>> dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv
>> dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c optional hyperv
>> -dev/kbd/kbd.c optional atkbd | sc | ukbd
>> +dev/kbd/kbd.c optional atkbd | sc | ukbd | vt
>> dev/lindev/full.c optional lindev
>> dev/lindev/lindev.c optional lindev
>> dev/nfe/if_nfe.c optional nfe pci
>>
>> Modified: head/sys/conf/files.arm
>> ==============================================================================
>> --- head/sys/conf/files.arm Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/conf/files.arm Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -62,7 +62,7 @@ crypto/blowfish/bf_enc.c optional crypto
>> crypto/des/des_enc.c optional crypto | ipsec | netsmb
>> dev/fb/fb.c optional sc
>> dev/hwpmc/hwpmc_arm.c optional hwpmc
>> -dev/kbd/kbd.c optional sc
>> +dev/kbd/kbd.c optional sc | vt
>> dev/syscons/scgfbrndr.c optional sc
>> dev/syscons/scterm-teken.c optional sc
>> dev/syscons/scvtb.c optional sc
>>
>> Modified: head/sys/conf/files.i386
>> ==============================================================================
>> --- head/sys/conf/files.i386 Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/conf/files.i386 Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -249,7 +249,7 @@ dev/ipmi/ipmi_smbios.c optional ipmi
>> dev/ipmi/ipmi_ssif.c optional ipmi smbus
>> dev/ipmi/ipmi_pci.c optional ipmi pci
>> dev/ipmi/ipmi_linux.c optional ipmi compat_linux
>> -dev/kbd/kbd.c optional atkbd | sc | ukbd
>> +dev/kbd/kbd.c optional atkbd | sc | ukbd | vt
>> dev/le/if_le_isa.c optional le isa
>> dev/lindev/full.c optional lindev
>> dev/lindev/lindev.c optional lindev
>> @@ -293,6 +293,7 @@ dev/viawd/viawd.c optional viawd
>> dev/vmware/vmxnet3/if_vmx.c optional vmx
>> dev/acpica/acpi_if.m standard
>> dev/acpi_support/acpi_wmi_if.m standard
>> +dev/vt/hw/xboxfb/xboxfb.c optional vt_xboxfb
>> dev/wbwd/wbwd.c optional wbwd
>> dev/wpi/if_wpi.c optional wpi
>> dev/isci/isci.c optional isci
>>
>> Modified: head/sys/conf/files.powerpc
>> ==============================================================================
>> --- head/sys/conf/files.powerpc Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/conf/files.powerpc Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -35,7 +35,7 @@ dev/iicbus/ad7417.c optional ad7417 pow
>> dev/iicbus/ds1631.c optional ds1631 powermac
>> dev/iicbus/ds1775.c optional ds1775 powermac
>> dev/iicbus/max6690.c optional max6690 powermac
>> -dev/kbd/kbd.c optional sc
>> +dev/kbd/kbd.c optional sc | vt
>> dev/nand/nfc_fsl.c optional nand mpc85xx
>> # ofw can be either aim or fdt: fdt case handled in files. aim only powerpc specific.
>> dev/ofw/openfirm.c optional aim
>> @@ -65,6 +65,7 @@ dev/tsec/if_tsec.c optional tsec
>> dev/tsec/if_tsec_fdt.c optional tsec fdt
>> dev/uart/uart_cpu_powerpc.c optional uart
>> dev/usb/controller/ehci_fsl.c optional ehci mpc85xx
>> +dev/vt/hw/ofwfb/ofwfb.c optional vt aim
>> kern/kern_clocksource.c standard
>> kern/subr_dummy_vdso_tc.c standard
>> kern/syscalls.c optional ktr
>>
>> Modified: head/sys/conf/files.sparc64
>> ==============================================================================
>> --- head/sys/conf/files.sparc64 Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/conf/files.sparc64 Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -39,7 +39,7 @@ dev/fb/fb.c optional sc
>> dev/fb/gallant12x22.c optional sc
>> dev/fb/machfb.c optional machfb sc
>> dev/hwpmc/hwpmc_sparc64.c optional hwpmc
>> -dev/kbd/kbd.c optional atkbd | sc | ukbd
>> +dev/kbd/kbd.c optional atkbd | sc | ukbd | vt
>> dev/le/if_le_lebuffer.c optional le sbus
>> dev/le/if_le_ledma.c optional le sbus
>> dev/le/lebuffer_sbus.c optional le sbus
>> @@ -59,7 +59,8 @@ dev/syscons/scgfbrndr.c optional sc
>> dev/syscons/scterm-teken.c optional sc
>> dev/syscons/scvtb.c optional sc
>> dev/uart/uart_cpu_sparc64.c optional uart
>> -dev/uart/uart_kbd_sun.c optional uart sc
>> +dev/uart/uart_kbd_sun.c optional uart sc | vt
>> +dev/vt/hw/ofwfb/ofwfb.c optional vt
>> kern/kern_clocksource.c standard
>> kern/subr_dummy_vdso_tc.c standard
>> kern/syscalls.c optional ktr
>>
>> Modified: head/sys/conf/kmod.mk
>> ==============================================================================
>> --- head/sys/conf/kmod.mk Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/conf/kmod.mk Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -340,7 +340,7 @@ CFLAGS+= ${CONF_CFLAGS}
>>
>> MFILES?= dev/acpica/acpi_if.m dev/acpi_support/acpi_wmi_if.m \
>> dev/agp/agp_if.m dev/ata/ata_if.m dev/eisa/eisa_if.m \
>> - dev/gpio/gpio_if.m dev/gpio/gpiobus_if.m \
>> + dev/fb/fb_if.m dev/gpio/gpio_if.m dev/gpio/gpiobus_if.m \
>> dev/iicbus/iicbb_if.m dev/iicbus/iicbus_if.m \
>> dev/mmc/mmcbr_if.m dev/mmc/mmcbus_if.m \
>> dev/mii/miibus_if.m dev/mvs/mvs_if.m dev/ofw/ofw_bus_if.m \
>>
>> Modified: head/sys/conf/options
>> ==============================================================================
>> --- head/sys/conf/options Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/conf/options Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -731,8 +731,10 @@ SAFE_DEBUG opt_safe.h
>> SAFE_NO_RNG opt_safe.h
>> SAFE_RNDTEST opt_safe.h
>>
>> -# syscons options
>> +# syscons/vt options
>> MAXCONS opt_syscons.h
>> +VT_FB_DEFAULT_WIDTH opt_syscons.h
>> +VT_FB_DEFAULT_HEIGHT opt_syscons.h
>> SC_ALT_MOUSE_IMAGE opt_syscons.h
>> SC_CUT_SPACES2TABS opt_syscons.h
>> SC_CUT_SEPCHARS opt_syscons.h
>>
>> Modified: head/sys/dev/drm2/drm_fb_helper.c
>> ==============================================================================
>> --- head/sys/dev/drm2/drm_fb_helper.c Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/dev/drm2/drm_fb_helper.c Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -36,6 +36,41 @@ __FBSDID("$FreeBSD$");
>> #include <dev/drm2/drm_fb_helper.h>
>> #include <dev/drm2/drm_crtc_helper.h>
>>
>> +#if defined(__FreeBSD__)
>> +struct vt_kms_softc {
>> + struct drm_fb_helper *fb_helper;
>> + struct task fb_mode_task;
>> +};
>> +
>> +static fb_enter_t vt_kms_postswitch;
>> +static void vt_restore_fbdev_mode(void *, int);
>> +
>> +/* Call restore out of vt(9) locks. */
>> +static void
>> +vt_restore_fbdev_mode(void *arg, int pending)
>> +{
>> + struct drm_fb_helper *fb_helper;
>> + struct vt_kms_softc *sc;
>> +
>> + sc = (struct vt_kms_softc *)arg;
>> + fb_helper = sc->fb_helper;
>> + sx_xlock(&fb_helper->dev->mode_config.mutex);
>> + drm_fb_helper_restore_fbdev_mode(fb_helper);
>> + sx_xunlock(&fb_helper->dev->mode_config.mutex);
>> +}
>> +
>> +static int
>> +vt_kms_postswitch(void *arg)
>> +{
>> + struct vt_kms_softc *sc;
>> +
>> + sc = (struct vt_kms_softc *)arg;
>> + taskqueue_enqueue_fast(taskqueue_thread, &sc->fb_mode_task);
>> +
>> + return (0);
>> +}
>> +#endif
>> +
>> static DRM_LIST_HEAD(kernel_fb_helper_list);
>>
>> /* simple single crtc case helper function */
>> @@ -216,6 +251,10 @@ static int
>> fb_get_options(const char *connector_name, char **option)
>> {
>>
>> + /*
>> + * TODO: store mode options pointer in ${option} for connector with
>> + * name ${connector_name}
>> + */
>> return (1);
>> }
>>
>> @@ -892,11 +931,13 @@ int drm_fb_helper_single_fb_probe(struct
>> int new_fb = 0;
>> int crtc_count = 0;
>> int i;
>> -#if 0
>> struct fb_info *info;
>> -#endif
>> struct drm_fb_helper_surface_size sizes;
>> int gamma_size = 0;
>> +#if defined(__FreeBSD__)
>> + struct vt_kms_softc *sc;
>> + device_t kdev;
>> +#endif
>>
>> memset(&sizes, 0, sizeof(struct drm_fb_helper_surface_size));
>> sizes.surface_depth = 24;
>> @@ -973,8 +1014,21 @@ int drm_fb_helper_single_fb_probe(struct
>> if (new_fb < 0)
>> return new_fb;
>>
>> -#if 0
>> +#if defined(__FreeBSD__)
>> + sc = malloc(sizeof(struct vt_kms_softc), DRM_MEM_KMS,
>> + M_WAITOK | M_ZERO);
>> + sc->fb_helper = fb_helper;
>> + TASK_INIT(&sc->fb_mode_task, 0, vt_restore_fbdev_mode, sc);
>> +
>> info = fb_helper->fbdev;
>> +
>> + info->fb_name = device_get_nameunit(fb_helper->dev->device);
>> + info->fb_depth = fb_helper->fb->bits_per_pixel;
>> + info->fb_height = fb_helper->fb->height;
>> + info->fb_width = fb_helper->fb->width;
>> + info->fb_stride = fb_helper->fb->pitches[0];
>> + info->fb_priv = sc;
>> + info->enter = &vt_kms_postswitch;
>> #endif
>>
>> /* set the fb pointer */
>> @@ -982,7 +1036,18 @@ int drm_fb_helper_single_fb_probe(struct
>> fb_helper->crtc_info[i].mode_set.fb = fb_helper->fb;
>> }
>>
>> -#if 0
>> +#if defined(__FreeBSD__)
>> + if (new_fb) {
>> + device_t fbd;
>> + int ret;
>> +
>> + kdev = fb_helper->dev->device;
>> + fbd = device_add_child(kdev, "fbd", device_get_unit(kdev));
>> + ret = device_probe_and_attach(fbd);
>> + if (ret != 0)
>> + DRM_ERROR("Failed to attach fbd device: %d\n", ret);
>> + }
>> +#else
>> if (new_fb) {
>> info->var.pixclock = 0;
>> if (register_framebuffer(info) < 0) {
>> @@ -1006,7 +1071,6 @@ int drm_fb_helper_single_fb_probe(struct
>> if (new_fb)
>> list_add(&fb_helper->kernel_fb_list, &kernel_fb_helper_list);
>> #endif
>> -
>> return 0;
>> }
>>
>>
>> Modified: head/sys/dev/drm2/drm_os_freebsd.h
>> ==============================================================================
>> --- head/sys/dev/drm2/drm_os_freebsd.h Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/dev/drm2/drm_os_freebsd.h Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -6,6 +6,8 @@
>> #include <sys/cdefs.h>
>> __FBSDID("$FreeBSD$");
>>
>> +#include <sys/fbio.h>
>> +
>> #if _BYTE_ORDER == _BIG_ENDIAN
>> #define __BIG_ENDIAN 4321
>> #else
>>
>> Modified: head/sys/dev/drm2/i915/i915_drv.c
>> ==============================================================================
>> --- head/sys/dev/drm2/i915/i915_drv.c Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/dev/drm2/i915/i915_drv.c Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -40,6 +40,8 @@ __FBSDID("$FreeBSD$");
>> #include <dev/drm2/drm_pciids.h>
>> #include <dev/drm2/i915/intel_drv.h>
>>
>> +#include "fb_if.h"
>> +
>> /* drv_PCI_IDs comes from drm_pciids.h, generated from drm_pciids.txt. */
>> static drm_pci_id_list_t i915_pciidlist[] = {
>> i915_PCI_IDS
>> @@ -380,6 +382,25 @@ i915_attach(device_t kdev)
>> return (drm_attach(kdev, i915_pciidlist));
>> }
>>
>> +static struct fb_info *
>> +i915_fb_helper_getinfo(device_t kdev)
>> +{
>> + struct intel_fbdev *ifbdev;
>> + drm_i915_private_t *dev_priv;
>> + struct drm_device *dev;
>> + struct fb_info *info;
>> +
>> + dev = device_get_softc(kdev);
>> + dev_priv = dev->dev_private;
>> + ifbdev = dev_priv->fbdev;
>> + if (ifbdev == NULL)
>> + return (NULL);
>> +
>> + info = ifbdev->helper.fbdev;
>> +
>> + return (info);
>> +}
>> +
>> const struct intel_device_info *
>> i915_get_device_id(int device)
>> {
>> @@ -400,6 +421,10 @@ static device_method_t i915_methods[] =
>> DEVMETHOD(device_suspend, i915_suspend),
>> DEVMETHOD(device_resume, i915_resume),
>> DEVMETHOD(device_detach, drm_detach),
>> +
>> + /* Framebuffer service methods */
>> + DEVMETHOD(fb_getinfo, i915_fb_helper_getinfo),
>> +
>> DEVMETHOD_END
>> };
>>
>>
>> Modified: head/sys/dev/drm2/i915/intel_fb.c
>> ==============================================================================
>> --- head/sys/dev/drm2/i915/intel_fb.c Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/dev/drm2/i915/intel_fb.c Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -41,8 +41,8 @@ static int intelfb_create(struct intel_f
>> struct drm_device *dev = ifbdev->helper.dev;
>> #if 0
>> struct drm_i915_private *dev_priv = dev->dev_private;
>> - struct fb_info *info;
>> #endif
>> + struct fb_info *info;
>> struct drm_framebuffer *fb;
>> struct drm_mode_fb_cmd2 mode_cmd;
>> struct drm_i915_gem_object *obj;
>> @@ -86,6 +86,16 @@ static int intelfb_create(struct intel_f
>> }
>>
>> info->par = ifbdev;
>> +#else
>> + info = malloc(sizeof(struct fb_info), DRM_MEM_KMS, M_WAITOK | M_ZERO);
>> + info->fb_size = size;
>> + info->fb_bpp = sizes->surface_bpp;
>> + info->fb_width = sizes->fb_width;
>> + info->fb_height = sizes->fb_height;
>> + info->fb_pbase = dev->agp->base + obj->gtt_offset;
>> + info->fb_vbase = (vm_offset_t)pmap_mapdev_attr(info->fb_pbase, size,
>> + PAT_WRITE_COMBINING);
>> +
>> #endif
>>
>> ret = intel_framebuffer_init(dev, &ifbdev->ifb, &mode_cmd, obj);
>> @@ -95,8 +105,8 @@ static int intelfb_create(struct intel_f
>> fb = &ifbdev->ifb.base;
>>
>> ifbdev->helper.fb = fb;
>> -#if 0
>> ifbdev->helper.fbdev = info;
>> +#if 0
>>
>> strcpy(info->fix.id, "inteldrmfb");
>>
>> @@ -135,9 +145,8 @@ static int intelfb_create(struct intel_f
>>
>> /* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */
>> #endif
>> -
>> - DRM_DEBUG_KMS("allocated %dx%d fb: 0x%08x, bo %p\n",
>> - fb->width, fb->height,
>> + DRM_DEBUG_KMS("allocated %dx%d (s %dbits) fb: 0x%08x, bo %p\n",
>> + fb->width, fb->height, fb->depth,
>> obj->gtt_offset, obj);
>>
>> DRM_UNLOCK(dev);
>>
>> Modified: head/sys/dev/drm2/radeon/radeon.h
>> ==============================================================================
>> --- head/sys/dev/drm2/radeon/radeon.h Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/dev/drm2/radeon/radeon.h Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -2041,6 +2041,9 @@ void radeon_pm_acpi_event_handler(struct
>> int radeon_ttm_init(struct radeon_device *rdev);
>> void radeon_ttm_fini(struct radeon_device *rdev);
>>
>> +/* radeon_fb.c */
>> +struct fb_info * radeon_fb_helper_getinfo(device_t kdev);
>> +
>> /* r600.c */
>> int r600_ih_ring_alloc(struct radeon_device *rdev);
>> void r600_ih_ring_fini(struct radeon_device *rdev);
>>
>> Modified: head/sys/dev/drm2/radeon/radeon_drv.c
>> ==============================================================================
>> --- head/sys/dev/drm2/radeon/radeon_drv.c Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/dev/drm2/radeon/radeon_drv.c Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$");
>>
>> #include <dev/drm2/drm_pciids.h>
>>
>> +#include "fb_if.h"
>>
>> /*
>> * KMS wrapper.
>> @@ -495,6 +496,8 @@ radeon_resume(device_t kdev)
>> return (-ret);
>> }
>>
>> +extern struct fb_info * radeon_fb_helper_getinfo(device_t kdev);
>> +
>> static device_method_t radeon_methods[] = {
>> /* Device interface */
>> DEVMETHOD(device_probe, radeon_probe),
>> @@ -502,6 +505,10 @@ static device_method_t radeon_methods[]
>> DEVMETHOD(device_suspend, radeon_suspend),
>> DEVMETHOD(device_resume, radeon_resume),
>> DEVMETHOD(device_detach, drm_detach),
>> +
>> + /* Framebuffer service methods */
>> + DEVMETHOD(fb_getinfo, radeon_fb_helper_getinfo),
>> +
>> DEVMETHOD_END
>> };
>>
>>
>> Modified: head/sys/dev/drm2/radeon/radeon_fb.c
>> ==============================================================================
>> --- head/sys/dev/drm2/radeon/radeon_fb.c Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/dev/drm2/radeon/radeon_fb.c Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -27,6 +27,8 @@
>> #include <sys/cdefs.h>
>> __FBSDID("$FreeBSD$");
>>
>> +#include <machine/_inttypes.h>
>> +
>> #include <dev/drm2/drmP.h>
>> #include <dev/drm2/drm_crtc.h>
>> #include <dev/drm2/drm_crtc_helper.h>
>> @@ -46,7 +48,7 @@ struct radeon_fbdev {
>> struct radeon_device *rdev;
>> };
>>
>> -#ifdef DUMBBELL_WIP
>> +#if defined(__linux__)
>> static struct fb_ops radeonfb_ops = {
>> .owner = THIS_MODULE,
>> .fb_check_var = drm_fb_helper_check_var,
>> @@ -60,7 +62,7 @@ static struct fb_ops radeonfb_ops = {
>> .fb_debug_enter = drm_fb_helper_debug_enter,
>> .fb_debug_leave = drm_fb_helper_debug_leave,
>> };
>> -#endif /* DUMBBELL_WIP */
>> +#endif
>>
>>
>> int radeon_align_pitch(struct radeon_device *rdev, int width, int bpp, bool tiled)
>> @@ -191,20 +193,13 @@ static int radeonfb_create(struct radeon
>> struct drm_fb_helper_surface_size *sizes)
>> {
>> struct radeon_device *rdev = rfbdev->rdev;
>> -#ifdef DUMBBELL_WIP
>> struct fb_info *info;
>> -#endif /* DUMBBELL_WIP */
>> struct drm_framebuffer *fb = NULL;
>> struct drm_mode_fb_cmd2 mode_cmd;
>> struct drm_gem_object *gobj = NULL;
>> struct radeon_bo *rbo = NULL;
>> -#ifdef DUMBBELL_WIP
>> - device_t device = rdev->dev;
>> -#endif /* DUMBBELL_WIP */
>> int ret;
>> -#ifdef DUMBBELL_WIP
>> unsigned long tmp;
>> -#endif /* DUMBBELL_WIP */
>>
>> mode_cmd.width = sizes->surface_width;
>> mode_cmd.height = sizes->surface_height;
>> @@ -224,16 +219,7 @@ static int radeonfb_create(struct radeon
>>
>> rbo = gem_to_radeon_bo(gobj);
>>
>> -#ifdef DUMBBELL_WIP
>> - /* okay we have an object now allocate the framebuffer */
>> - info = framebuffer_alloc(0, device);
>> - if (info == NULL) {
>> - ret = -ENOMEM;
>> - goto out_unref;
>> - }
>> -
>> - info->par = rfbdev;
>> -#endif /* DUMBBELL_WIP */
>> + info = malloc(sizeof(*info), DRM_MEM_KMS, M_WAITOK | M_ZERO);
>>
>> ret = radeon_framebuffer_init(rdev->ddev, &rfbdev->rfb, &mode_cmd, gobj);
>> if (ret) {
>> @@ -245,61 +231,29 @@ static int radeonfb_create(struct radeon
>>
>> /* setup helper */
>> rfbdev->helper.fb = fb;
>> -#ifdef DUMBBELL_WIP
>> rfbdev->helper.fbdev = info;
>>
>> - memset_io(rbo->kptr, 0x0, radeon_bo_size(rbo));
>> -
>> - strcpy(info->fix.id, "radeondrmfb");
>> -
>> - drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth);
>> -
>> - info->flags = FBINFO_DEFAULT | FBINFO_CAN_FORCE_OUTPUT;
>> - info->fbops = &radeonfb_ops;
>> + memset(rbo->kptr, 0x0, radeon_bo_size(rbo));
>>
>> tmp = radeon_bo_gpu_offset(rbo) - rdev->mc.vram_start;
>> - info->fix.smem_start = rdev->mc.aper_base + tmp;
>> - info->fix.smem_len = radeon_bo_size(rbo);
>> - info->screen_base = rbo->kptr;
>> - info->screen_size = radeon_bo_size(rbo);
>> -
>> - drm_fb_helper_fill_var(info, &rfbdev->helper, sizes->fb_width, sizes->fb_height);
>> -
>> - /* setup aperture base/size for vesafb takeover */
>> - info->apertures = alloc_apertures(1);
>> - if (!info->apertures) {
>> - ret = -ENOMEM;
>> - goto out_unref;
>> - }
>> - info->apertures->ranges[0].base = rdev->ddev->mode_config.fb_base;
>> - info->apertures->ranges[0].size = rdev->mc.aper_size;
>> + info->fb_size = radeon_bo_size(rbo);
>> + info->fb_bpp = sizes->surface_bpp;
>> + info->fb_width = sizes->surface_width;
>> + info->fb_height = sizes->surface_height;
>> + info->fb_pbase = rdev->mc.aper_base + tmp;
>> + info->fb_vbase = (vm_offset_t)rbo->kptr;
>>
>> - /* Use default scratch pixmap (info->pixmap.flags = FB_PIXMAP_SYSTEM) */
>> -
>> - if (info->screen_base == NULL) {
>> - ret = -ENOSPC;
>> - goto out_unref;
>> - }
>> -
>> - ret = fb_alloc_cmap(&info->cmap, 256, 0);
>> - if (ret) {
>> - ret = -ENOMEM;
>> - goto out_unref;
>> - }
>> -
>> - DRM_INFO("fb mappable at 0x%lX\n", info->fix.smem_start);
>> + DRM_INFO("fb mappable at 0x%" PRIXPTR "\n", info->fb_pbase);
>> DRM_INFO("vram apper at 0x%lX\n", (unsigned long)rdev->mc.aper_base);
>> DRM_INFO("size %lu\n", (unsigned long)radeon_bo_size(rbo));
>> DRM_INFO("fb depth is %d\n", fb->depth);
>> DRM_INFO(" pitch is %d\n", fb->pitches[0]);
>>
>> - vga_switcheroo_client_fb_set(rdev->ddev->pdev, info);
>> -#endif /* DUMBBELL_WIP */
>> return 0;
>>
>> out_unref:
>> if (rbo) {
>> -
>> + /* TODO? dumbbell@ */
>> }
>> if (fb && ret) {
>> drm_gem_object_unreference(gobj);
>> @@ -332,21 +286,13 @@ void radeon_fb_output_poll_changed(struc
>>
>> static int radeon_fbdev_destroy(struct drm_device *dev, struct radeon_fbdev *rfbdev)
>> {
>> -#ifdef DUMBBELL_WIP
>> struct fb_info *info;
>> -#endif /* DUMBBELL_WIP */
>> struct radeon_framebuffer *rfb = &rfbdev->rfb;
>>
>> -#ifdef DUMBBELL_WIP
>> if (rfbdev->helper.fbdev) {
>> info = rfbdev->helper.fbdev;
>> -
>> - unregister_framebuffer(info);
>> - if (info->cmap.len)
>> - fb_dealloc_cmap(&info->cmap);
>> - framebuffer_release(info);
>> + free(info, DRM_MEM_KMS);
>> }
>> -#endif /* DUMBBELL_WIP */
>>
>> if (rfb->obj) {
>> DRM_UNLOCK(dev); /* Work around lock recursion. dumbbell@ */
>> @@ -431,3 +377,22 @@ bool radeon_fbdev_robj_is_fb(struct rade
>> return true;
>> return false;
>> }
>> +
>> +struct fb_info *
>> +radeon_fb_helper_getinfo(device_t kdev)
>> +{
>> + struct drm_device *dev;
>> + struct radeon_device *rdev;
>> + struct radeon_fbdev *rfbdev;
>> + struct fb_info *info;
>> +
>> + dev = device_get_softc(kdev);
>> + rdev = dev->dev_private;
>> + rfbdev = rdev->mode_info.rfbdev;
>> + if (rfbdev == NULL)
>> + return (NULL);
>> +
>> + info = rfbdev->helper.fbdev;
>> +
>> + return (info);
>> +}
>>
>> Modified: head/sys/dev/drm2/radeon/radeon_pm.c
>> ==============================================================================
>> --- head/sys/dev/drm2/radeon/radeon_pm.c Thu Dec 5 21:58:02 2013 (r259015)
>> +++ head/sys/dev/drm2/radeon/radeon_pm.c Thu Dec 5 22:38:53 2013 (r259016)
>> @@ -248,7 +248,7 @@ static void radeon_pm_set_clocks(struct
>> (rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index))
>> return;
>>
>> - DRM_LOCK(rdev->ddev);
>> + //DRM_LOCK(rdev->ddev); XXX Recursion, already locked in drm_attach/drm_load -- dumbbell@
>> sx_xlock(&rdev->pm.mclk_lock);
>> sx_xlock(&rdev->ring_lock);
>>
>> @@ -263,7 +263,7 @@ static void radeon_pm_set_clocks(struct
>> /* needs a GPU reset dont reset here */
>> sx_xunlock(&rdev->ring_lock);
>> sx_xunlock(&rdev->pm.mclk_lock);
>> - DRM_UNLOCK(rdev->ddev);
>> + //DRM_UNLOCK(rdev->ddev); XXX Recursion, already locked in drm_attach/drm_load -- dumbbell@
>> return;
>> }
>> }
>> @@ -299,7 +299,7 @@ static void radeon_pm_set_clocks(struct
>>
>> sx_xunlock(&rdev->ring_lock);
>> sx_xunlock(&rdev->pm.mclk_lock);
>> - DRM_UNLOCK(rdev->ddev);
>> + //DRM_UNLOCK(rdev->ddev); XXX Recursion, already locked in drm_attach/drm_load -- dumbbell@
>> }
>>
>> static void radeon_pm_print_states(struct radeon_device *rdev)
>>
>> Copied: head/sys/dev/fb/fb_if.m (from r259015, user/ed/newcons/sys/dev/fb/fb_if.m)
>> ==============================================================================
>> --- /dev/null 00:00:00 1970 (empty, because file is newly added)
>> +++ head/sys/dev/fb/fb_if.m Thu Dec 5 22:38:53 2013 (r259016, copy of r259015, user/ed/newcons/sys/dev/fb/fb_if.m)
>> @@ -0,0 +1,13 @@
>> +#include <sys/bus.h>
>> +#include <sys/fbio.h>
>> +
>> +INTERFACE fb;
>> +
>> +METHOD int pin_max {
>> + device_t dev;
>> + int *npins;
>> +};
>> +
>> +METHOD struct fb_info * getinfo {
>> + device_t dev;
>> +};
>>
>> Copied: head/sys/dev/fb/fbd.c (from r259015, user/ed/newcons/sys/dev/fb/fbd.c)
>> ==============================================================================
>> --- /dev/null 00:00:00 1970 (empty, because file is newly added)
>> +++ head/sys/dev/fb/fbd.c Thu Dec 5 22:38:53 2013 (r259016, copy of r259015, user/ed/newcons/sys/dev/fb/fbd.c)
>> @@ -0,0 +1,467 @@
>> +/*-
>> + * Copyright (c) 2013 The FreeBSD Foundation
>> + * All rights reserved.
>> + *
>> + * This software was developed by Aleksandr Rybalko under sponsorship from the
>> + * FreeBSD Foundation.
>> + *
>> + * Redistribution and use in source and binary forms, with or without
>> + * modification, are permitted provided that the following conditions
>> + * are met:
>> + * 1. Redistributions of source code must retain the above copyright
>> + * notice, this list of conditions and the following disclaimer.
>> + * 2. Redistributions in binary form must reproduce the above copyright
>> + * notice, this list of conditions and the following disclaimer in the
>> + * documentation and/or other materials provided with the distribution.
>> + *
>> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
>> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
>> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
>> + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
>> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
>> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
>> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
>> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
>> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
>> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>> + * SUCH DAMAGE.
>> + *
>> + * $FreeBSD$
>> + */
>> +
>> +/* Generic framebuffer */
>> +/* TODO unlink from VT(9) */
>> +/* TODO done normal /dev/fb methods */
>> +
>> +#include <sys/cdefs.h>
>> +__FBSDID("$FreeBSD$");
>> +
>> +#include <sys/param.h>
>> +#include <sys/systm.h>
>> +#include <sys/bus.h>
>> +#include <sys/conf.h>
>> +#include <sys/kernel.h>
>> +#include <sys/malloc.h>
>> +#include <sys/module.h>
>> +#include <sys/queue.h>
>> +#include <sys/fbio.h>
>> +
>> +#include <machine/bus.h>
>> +
>> +#include <dev/vt/vt.h>
>> +#include <dev/vt/hw/fb/vt_fb.h>
>> +
>> +#include "fb_if.h"
>> +
>> +LIST_HEAD(fb_list_head_t, fb_list_entry) fb_list_head =
>> + LIST_HEAD_INITIALIZER(fb_list_head);
>> +struct fb_list_entry {
>> + struct fb_info *fb_info;
>> + struct cdev *fb_si;
>> + LIST_ENTRY(fb_list_entry) fb_list;
>> +};
>> +
>> +struct fbd_softc {
>> + device_t sc_dev;
>> + struct fb_info *sc_info;
>> +};
>> +
>> +static void fbd_evh_init(void *);
>> +/* SI_ORDER_SECOND, just after EVENTHANDLERs initialized. */
>> +SYSINIT(fbd_evh_init, SI_SUB_CONFIGURE, SI_ORDER_SECOND, fbd_evh_init, NULL);
>> +
>> +static d_open_t fb_open;
>> +static d_close_t fb_close;
>> +static d_read_t fb_read;
>> +static d_write_t fb_write;
>> +static d_ioctl_t fb_ioctl;
>> +static d_mmap_t fb_mmap;
>> +
>> +static struct cdevsw fb_cdevsw = {
>> + .d_version = D_VERSION,
>> + .d_flags = D_NEEDGIANT,
>> + .d_open = fb_open,
>> + .d_close = fb_close,
>> + .d_read = fb_read,
>> + .d_write = fb_write,
>> + .d_ioctl = fb_ioctl,
>> + .d_mmap = fb_mmap,
>> + .d_name = "fb",
>> +};
>> +
>> +static int framebuffer_dev_unit = 0;
>> +
>> +static int
>> +fb_open(struct cdev *dev, int oflags, int devtype, struct thread *td)
>> +{
>> +
>> + return (0);
>> +}
>> +
>> +static int
>> +fb_close(struct cdev *dev, int fflag, int devtype, struct thread *td)
>> +{
>> +
>> + return (0);
>> +}
>> +
>> +static int
>> +fb_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag,
>> + struct thread *td)
>> +{
>> + struct fb_info *info;
>> + int error;
>> +
>> + error = 0;
>> + info = dev->si_drv1;
>> +
>> + switch (cmd) {
>> + case FBIOGTYPE:
>> + bcopy(info, (struct fbtype *)data, sizeof(struct fbtype));
>> + break;
>> +
>> + case FBIO_GETWINORG: /* get frame buffer window origin */
>> + *(u_int *)data = 0;
>> + break;
>> +
>> + case FBIO_GETDISPSTART: /* get display start address */
>> + ((video_display_start_t *)data)->x = 0;
>> + ((video_display_start_t *)data)->y = 0;
>> + break;
>> +
>> + case FBIO_GETLINEWIDTH: /* get scan line width in bytes */
>> + *(u_int *)data = info->fb_stride;
>> + break;
>> +
>> + case FBIO_BLANK: /* blank display */
>> + error = 0; /* TODO */
>> + break;
>> +
>> + default:
>> + error = ENOIOCTL;
>> + break;
>> + }
>> + return (error);
>> +}
>> +
>> +static int
>> +fb_read(struct cdev *dev, struct uio *uio, int ioflag)
>> +{
>> +
>> + return (0); /* XXX nothing to read, yet */
>> +}
>> +
>> +static int
>> +fb_write(struct cdev *dev, struct uio *uio, int ioflag)
>> +{
>> +
>> + return (0); /* XXX nothing written */
>> +}
>> +
>> +static int
>> +fb_mmap(struct cdev *dev, vm_ooffset_t offset, vm_paddr_t *paddr, int nprot,
>> + vm_memattr_t *memattr)
>> +{
>> + struct fb_info *info;
>> +
>> + info = dev->si_drv1;
>> + if (offset < info->fb_size) {
>> + *paddr = info->fb_pbase + offset;
>> + return (0);
>> + }
>> + return (EINVAL);
>> +}
>> +
>> +
>> +static void
>> +vt_fb_mem_wr1(struct fb_info *sc, uint32_t o, uint8_t v)
>> +{
>> +
>> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o));
>> + *(uint8_t *)(sc->fb_vbase + o) = v;
>> +}
>> +
>> +static void
>> +vt_fb_mem_wr2(struct fb_info *sc, uint32_t o, uint16_t v)
>> +{
>> +
>> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o));
>> + *(uint16_t *)(sc->fb_vbase + o) = v;
>> +}
>> +
>> +static void
>> +vt_fb_mem_wr4(struct fb_info *sc, uint32_t o, uint32_t v)
>> +{
>> +
>> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o));
>> + *(uint32_t *)(sc->fb_vbase + o) = v;
>> +}
>> +
>> +static void
>> +vt_fb_mem_copy(struct fb_info *sc, uint32_t offset_to, uint32_t offset_from,
>> + uint32_t size)
>> +{
>> +
>> + memmove((void *)(sc->fb_vbase + offset_to), (void *)(sc->fb_vbase +
>> + offset_from), size);
>> +}
>> +
>> +static void
>> +vt_fb_indir_wr1(struct fb_info *sc, uint32_t o, uint8_t v)
>> +{
>> +
>> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o));
>> + sc->fb_write(sc->fb_priv, o, &v, 1);
>> +}
>> +
>> +static void
>> +vt_fb_indir_wr2(struct fb_info *sc, uint32_t o, uint16_t v)
>> +{
>> +
>> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o));
>> + sc->fb_write(sc->fb_priv, o, &v, 2);
>> +}
>> +
>> +static void
>> +vt_fb_indir_wr4(struct fb_info *sc, uint32_t o, uint32_t v)
>> +{
>> +
>> + KASSERT((o < sc->fb_size), ("Offset %#08x out of fb size", o));
>> + sc->fb_write(sc->fb_priv, o, &v, 4);
>> +}
>> +
>> +static void
>> +vt_fb_indir_copy(struct fb_info *sc, uint32_t offset_to, uint32_t offset_from,
>> + uint32_t size)
>> +{
>> +
>> + sc->copy(sc->fb_priv, offset_to, offset_from, size);
>> +}
>> +
>> +int
>> +fb_probe(struct fb_info *info)
>> +{
>> +
>> + if (info->fb_size == 0)
>> + return (ENXIO);
>> +
>> + if (info->fb_write != NULL) {
>> + if (info->fb_write == NULL) {
>> + return (EINVAL);
>> + }
>> + info->fb_flags |= FB_FLAG_NOMMAP;
>> + info->wr1 = &vt_fb_indir_wr1;
>> + info->wr2 = &vt_fb_indir_wr2;
>> + info->wr4 = &vt_fb_indir_wr4;
>> + info->copy = &vt_fb_indir_copy;
>> + } else if (info->fb_vbase != 0) {
>> + if (info->fb_pbase == 0)
>> + info->fb_flags |= FB_FLAG_NOMMAP;
>> + info->wr1 = &vt_fb_mem_wr1;
>> + info->wr2 = &vt_fb_mem_wr2;
>> + info->wr4 = &vt_fb_mem_wr4;
>> + info->copy = &vt_fb_mem_copy;
>> + } else
>> + return (ENXIO);
>> +
>> + return (0);
>> +}
>> +
>> +
>> +static int
>> +fb_init(struct fb_list_entry *entry, int unit)
>> +{
>> + struct fb_info *info;
>> +
>> + info = entry->fb_info;
>> + entry->fb_si = make_dev(&fb_cdevsw, unit, UID_ROOT, GID_WHEEL,
>> + 0600, "fb%d", unit);
>> + entry->fb_si->si_drv1 = info;
>> +
>> + return (0);
>> +}
>> +
>> +int
>> +fbd_list()
>> +{
>> + struct fb_list_entry *entry;
>> +
>> + if (LIST_EMPTY(&fb_list_head))
>> + return (ENOENT);
>> +
>> + LIST_FOREACH(entry, &fb_list_head, fb_list) {
>> + printf("FB %s @%p\n", entry->fb_info->fb_name,
>> + (void *)entry->fb_info->fb_pbase);
>> + }
>> +
>> + return (0);
>> +}
>> +
>> +static struct fb_list_entry *
>> +fbd_find(struct fb_info* info)
>> +{
>> + struct fb_list_entry *entry, *tmp;
>> +
>> + LIST_FOREACH_SAFE(entry, &fb_list_head, fb_list, tmp) {
>> + if (entry->fb_info == info) {
>> + return (entry);
>> + }
>> + }
>> +
>> + return (NULL);
>> +}
>> +
>> +int
>> +fbd_register(struct fb_info* info)
>> +{
>> + struct fb_list_entry *entry;
>> + int err, first;
>> +
>> + first = 0;
>> + if (LIST_EMPTY(&fb_list_head))
>> + first++;
>> +
>> + entry = fbd_find(info);
>> + if (entry != NULL) {
>> + /* XXX Update framebuffer params */
>> + return (0);
>> + }
>> +
>> + err = fb_probe(info);
>> + if (err)
>> + return (err);
>>
>> *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
>> _______________________________________________
>> svn-src-all@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/svn-src-all
>> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
>>
>
>
> --
> Marc "UBM" Bocklet <eternal.ubm@gmail.com>
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
--e89a8f2356bdd4e41304ed1635fa
Content-Type: application/octet-stream; name="kern.conftxt"
Content-Disposition: attachment; filename="kern.conftxt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hozhlpi90
a2Vybi5jb25mdHh0OiBvcHRpb25zCUNPTkZJR19BVVRPR0VORVJBVEVECmlkZW50CU1BUkVLCm1h
Y2hpbmUJYW1kNjQKY3B1CUhBTU1FUgptYWtlb3B0aW9ucwlXSVRIX0NURj0xCm1ha2VvcHRpb25z
CURFQlVHPS1nCm9wdGlvbnMJTElOU1lTRlMKb3B0aW9ucwlMSU5QUk9DRlMKb3B0aW9ucwlDT01Q
QVRfTElOVVgzMgpvcHRpb25zCUVOQUJMRV9BTEFSVApvcHRpb25zCU1TR0JVRl9TSVpFPTY1NTM2
Cm9wdGlvbnMJRFVNTVlORVQKb3B0aW9ucwlJUERJVkVSVApvcHRpb25zCUlQRklSRVdBTEwKb3B0
aW9ucwlBTFRfQlJFQUtfVE9fREVCVUdHRVIKb3B0aW9ucwlLREJfVU5BVFRFTkRFRApvcHRpb25z
CVVTQl9ERUJVRwpvcHRpb25zCVNDX1BJWEVMX01PREUKb3B0aW9ucwlWRVNBCm9wdGlvbnMJQVRB
X1NUQVRJQ19JRApvcHRpb25zCUFDUElfRE1BUgpvcHRpb25zCVNNUApvcHRpb25zCU1BTExPQ19E
RUJVR19NQVhaT05FUz04Cm9wdGlvbnMJV0lUTkVTU19TS0lQU1BJTgpvcHRpb25zCVdJVE5FU1MK
b3B0aW9ucwlJTlZBUklBTlRfU1VQUE9SVApvcHRpb25zCUlOVkFSSUFOVFMKb3B0aW9ucwlERUFE
TEtSRVMKb3B0aW9ucwlHREIKb3B0aW9ucwlEREIKb3B0aW9ucwlLREJfVFJBQ0UKb3B0aW9ucwlL
REIKb3B0aW9ucwlJTkNMVURFX0NPTkZJR19GSUxFCm9wdGlvbnMJRERCX0NURgpvcHRpb25zCUtE
VFJBQ0VfSE9PS1MKb3B0aW9ucwlLRFRSQUNFX0ZSQU1FCm9wdGlvbnMJTUFDCm9wdGlvbnMJQ0FQ
QUJJTElUSUVTCm9wdGlvbnMJQ0FQQUJJTElUWV9NT0RFCm9wdGlvbnMJQVVESVQKb3B0aW9ucwlI
V1BNQ19IT09LUwpvcHRpb25zCUtCRF9JTlNUQUxMX0NERVYKb3B0aW9ucwlQUklOVEZfQlVGUl9T
SVpFPTEyOApvcHRpb25zCV9LUE9TSVhfUFJJT1JJVFlfU0NIRURVTElORwpvcHRpb25zCVNZU1ZT
RU0Kb3B0aW9ucwlTWVNWTVNHCm9wdGlvbnMJU1lTVlNITQpvcHRpb25zCVNUQUNLCm9wdGlvbnMJ
S1RSQUNFCm9wdGlvbnMJU0NTSV9ERUxBWT01MDAwCm9wdGlvbnMJQ09NUEFUX0ZSRUVCU0QzMgpv
cHRpb25zCUdFT01fTEFCRUwKb3B0aW9ucwlHRU9NX1JBSUQKb3B0aW9ucwlHRU9NX1BBUlRfR1BU
Cm9wdGlvbnMJUFNFVURPRlMKb3B0aW9ucwlQUk9DRlMKb3B0aW9ucwlDRDk2NjAKb3B0aW9ucwlN
U0RPU0ZTCm9wdGlvbnMJTkZTX1JPT1QKb3B0aW9ucwlORlNMT0NLRApvcHRpb25zCU5GU0QKb3B0
aW9ucwlORlNDTApvcHRpb25zCU1EX1JPT1QKb3B0aW9ucwlRVU9UQQpvcHRpb25zCVVGU19HSk9V
Uk5BTApvcHRpb25zCVVGU19ESVJIQVNICm9wdGlvbnMJVUZTX0FDTApvcHRpb25zCVNPRlRVUERB
VEVTCm9wdGlvbnMJRkZTCm9wdGlvbnMJU0NUUApvcHRpb25zCVRDUF9PRkZMT0FECm9wdGlvbnMJ
SU5FVDYKb3B0aW9ucwlJTkVUCm9wdGlvbnMJUFJFRU1QVElPTgpvcHRpb25zCVNDSEVEX1VMRQpv
cHRpb25zCU5FV19QQ0lCCm9wdGlvbnMJR0VPTV9QQVJUX01CUgpvcHRpb25zCUdFT01fUEFSVF9F
QlJfQ09NUEFUCm9wdGlvbnMJR0VPTV9QQVJUX0VCUgpvcHRpb25zCUdFT01fUEFSVF9CU0QKZGV2
aWNlCWlzYQpkZXZpY2UJbWVtCmRldmljZQlpbwpkZXZpY2UJdWFydF9uczgyNTAKZGV2aWNlCWNw
dWZyZXEKZGV2aWNlCWFjcGkKZGV2aWNlCXBjaQpkZXZpY2UJYWhjaQpkZXZpY2UJYXRhCmRldmlj
ZQlzY2J1cwpkZXZpY2UJZGEKZGV2aWNlCXBhc3MKZGV2aWNlCWhwdG5yCmRldmljZQlocHQyN3h4
CmRldmljZQlhdGtiZGMKZGV2aWNlCWF0a2JkCmRldmljZQlwc20KZGV2aWNlCWtiZG11eApkZXZp
Y2UJdmdhCmRldmljZQlzcGxhc2gKZGV2aWNlCXNjCmRldmljZQlhZ3AKZGV2aWNlCXVhcnQKZGV2
aWNlCWVtCmRldmljZQltaWlidXMKZGV2aWNlCXJlCmRldmljZQlsb29wCmRldmljZQlyYW5kb20K
ZGV2aWNlCXBhZGxvY2tfcm5nCmRldmljZQlyZHJhbmRfcm5nCmRldmljZQlldGhlcgpkZXZpY2UJ
dmxhbgpkZXZpY2UJdHVuCmRldmljZQltZApkZXZpY2UJZ2lmCmRldmljZQlmYWl0aApkZXZpY2UJ
ZmlybXdhcmUKZGV2aWNlCWJwZgpkZXZpY2UJdWhjaQpkZXZpY2UJb2hjaQpkZXZpY2UJZWhjaQpk
ZXZpY2UJeGhjaQpkZXZpY2UJdXNiCmRldmljZQl1a2JkCmRldmljZQl1bWFzcwpkZXZpY2UJc291
bmQKZGV2aWNlCXNuZF9oZGEKZGV2aWNlCXNuZF9pY2gKZGV2aWNlCXZpcnRpbwpkZXZpY2UJdmly
dGlvX3BjaQpkZXZpY2UJdnRuZXQKZGV2aWNlCXZpcnRpb19ibGsKZGV2aWNlCXZpcnRpb19zY3Np
CmRldmljZQl2aXJ0aW9fYmFsbG9vbgpkZXZpY2UJaHlwZXJ2CmRldmljZQlhZGEKZGV2aWNlCWZp
cmV3aXJlCmRldmljZQlkcG1zCmRldmljZQlzcGVha2VyCmRldmljZQlzbWJpb3MKZGV2aWNlCWNv
cmV0ZW1wCmRldmljZQljcHVjdGwKZGV2aWNlCXNtYgpkZXZpY2UJc21idXMKZGV2aWNlCWljaHNt
YgpkZXZpY2UJaWNod2QKZGV2aWNlCWxpbmRldgoK
--e89a8f2356bdd4e41304ed1635fa
Content-Type: application/octet-stream; name=messages
Content-Disposition: attachment; filename=messages
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hozhlpim1
RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIHN5c2xvZ2Q6IGtlcm5lbCBib290IGZpbGUgaXMgL2Jv
b3Qva2VybmVsL2tlcm5lbApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBXYWl0aW5n
IChtYXggNjAgc2Vjb25kcykgZm9yIHN5c3RlbSBwcm9jZXNzIGB2bmxydScgdG8gc3RvcC4uLmRv
bmUKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogV2FpdGluZyAobWF4IDYwIHNlY29u
ZHMpIGZvciBzeXN0ZW0gcHJvY2VzcyBgYnVmZGFlbW9uJyB0byBzdG9wLi4uZG9uZQpEZWMgIDkg
MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBXYWl0aW5nIChtYXggNjAgc2Vjb25kcykgZm9yIHN5
c3RlbSBwcm9jZXNzIGBzeW5jZXInIHRvIHN0b3AuLi4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogU3luY2luZyBkaXNrcywgdm5vZGVzIHJlbWFpbmluZy4uLjExIDExIDExIDggOCA4
IDQgNCA0IDQgMCAxIDEgMSAwIDEgMSAxIDEgMCAwIDAgMCBkb25lCkRlYyAgOSAxMDoyOTo1MSBt
a3VzaG5pciBrZXJuZWw6IEFsbCBidWZmZXJzIHN5bmNlZC4KRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogQ29weXJpZ2h0IChjKSAxOTkyLTIwMTMgVGhlIEZyZWVCU0QgUHJvamVjdC4K
RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogQ29weXJpZ2h0IChjKSAxOTc5LCAxOTgw
LCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAxOTkyLCAxOTkzLCAxOTk0CkRlYyAgOSAx
MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m
IENhbGlmb3JuaWEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p
ciBrZXJuZWw6IEZyZWVCU0QgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBUaGUgRnJlZUJT
RCBGb3VuZGF0aW9uLgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBGcmVlQlNEIDEx
LjAtQ1VSUkVOVCAjMDogU3VuIERlYyAgOCAyMjoyOToxNCBFRVQgMjAxMwpEZWMgIDkgMTA6Mjk6
NTEgbWt1c2huaXIga2VybmVsOiByb290QHZtLm1rdXNobmlyLnphcHRvLm9yZzovdXNyL29iai91
c3Ivc3JjL3N5cy9NQVJFSyBhbWQ2NApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBG
cmVlQlNEIGNsYW5nIHZlcnNpb24gMy4zICh0YWdzL1JFTEVBU0VfMzMvZmluYWwgMTgzNTAyKSAy
MDEzMDYxMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBXQVJOSU5HOiBXSVRORVNT
IG9wdGlvbiBlbmFibGVkLCBleHBlY3QgcmVkdWNlZCBwZXJmb3JtYW5jZS4KRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogQ1BVOiBJbnRlbChSKSBDb3JlKFRNKSBpNy0zODIwIENQVSBA
IDMuNjBHSHogKDM2MDAuMTAtTUh6IEs4LWNsYXNzIENQVSkKRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogT3JpZ2luID0gIkdlbnVpbmVJbnRlbCIgIElkID0gMHgyMDZkNyAgRmFtaWx5
ID0gMHg2ICBNb2RlbCA9IDB4MmQgIFN0ZXBwaW5nID0gNwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu
aXIga2VybmVsOiBGZWF0dXJlcz0weGJmZWJmYmZmPEZQVSxWTUUsREUsUFNFLFRTQyxNU1IsUEFF
LE1DRSxDWDgsQVBJQyxTRVAsTVRSUixQR0UsTUNBLENNT1YsUEFULFBTRTM2LENMRkxVU0gsRFRT
LEFDUEksTU1YLEZYU1IsU1NFLFNTRTIsU1MsSFRULFRNLFBCRT4KRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogRmVhdHVyZXMyPTB4MWZiZWUzYmY8U1NFMyxQQ0xNVUxRRFEsRFRFUzY0
LE1PTixEU19DUEwsVk1YLEVTVCxUTTIsU1NTRTMsQ1gxNix4VFBSLFBEQ00sUENJRCxEQ0EsU1NF
NC4xLFNTRTQuMix4MkFQSUMsUE9QQ05ULFRTQ0RMVCxBRVNOSSxYU0FWRSxPU1hTQVZFLEFWWD4K
RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogQU1EIEZlYXR1cmVzPTB4MmMxMDA4MDA8
U1lTQ0FMTCxOWCxQYWdlMUdCLFJEVFNDUCxMTT4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl
cm5lbDogQU1EIEZlYXR1cmVzMj0weDE8TEFIRj4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl
cm5lbDogVFNDOiBQLXN0YXRlIGludmFyaWFudCwgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcwpEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiByZWFsIG1lbW9yeSAgPSAzNDM1OTczODM2OCAo
MzI3NjggTUIpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGF2YWlsIG1lbW9yeSA9
IDMzMjY4NDUzMzc2ICgzMTcyNyBNQikKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog
RXZlbnQgdGltZXIgIkxBUElDIiBxdWFsaXR5IDYwMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg
a2VybmVsOiBBQ1BJIEFQSUMgVGFibGU6IDxBTEFTS0EgQSBNIEk+CkRlYyAgOSAxMDoyOTo1MSBt
a3VzaG5pciBrZXJuZWw6IEZyZWVCU0QvU01QOiBNdWx0aXByb2Nlc3NvciBTeXN0ZW0gRGV0ZWN0
ZWQ6IDggQ1BVcwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBGcmVlQlNEL1NNUDog
MSBwYWNrYWdlKHMpIHggNCBjb3JlKHMpIHggMiBTTVQgdGhyZWFkcwpEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBjcHUwIChCU1ApOiBBUElDIElEOiAgMApEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBjcHUxIChBUCk6IEFQSUMgSUQ6ICAxCkRlYyAgOSAxMDoyOTo1MSBt
a3VzaG5pciBrZXJuZWw6IGNwdTIgKEFQKTogQVBJQyBJRDogIDIKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogY3B1MyAoQVApOiBBUElDIElEOiAgMwpEZWMgIDkgMTA6Mjk6NTEgbWt1
c2huaXIga2VybmVsOiBjcHU0IChBUCk6IEFQSUMgSUQ6ICA0CkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IGNwdTUgKEFQKTogQVBJQyBJRDogIDUKRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogY3B1NiAoQVApOiBBUElDIElEOiAgNgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu
aXIga2VybmVsOiBjcHU3IChBUCk6IEFQSUMgSUQ6ICA3CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p
ciBrZXJuZWw6IGlvYXBpYzAgPFZlcnNpb24gMi4wPiBpcnFzIDAtMjMgb24gbW90aGVyYm9hcmQK
RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogQ3VzZTRCU0QgdjAuMS4zMCBAIC9kZXYv
Y3VzZQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBrYmQxIGF0IGtiZG11eDAKRGVj
ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcmFuZG9tOiA8U29mdHdhcmUsIFlhcnJvdz4g
aW5pdGlhbGl6ZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogc21iaW9zMDogPFN5
c3RlbSBNYW5hZ2VtZW50IEJJT1M+IGF0IGlvbWVtIDB4ZjA0YzAtMHhmMDRkZSBvbiBtb3RoZXJi
b2FyZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBzbWJpb3MwOiBWZXJzaW9uOiAy
LjcsIEJDRCBSZXZpc2lvbjogMi43CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFj
cGkwOiA8QUxBU0tBIEEgTSBJPiBvbiBtb3RoZXJib2FyZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu
aXIga2VybmVsOiBhY3BpMDogUG93ZXIgQnV0dG9uIChmaXhlZCkKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogY3B1MDogPEFDUEkgQ1BVPiBvbiBhY3BpMApEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBjcHUxOiA8QUNQSSBDUFU+IG9uIGFjcGkwCkRlYyAgOSAxMDoyOTo1
MSBta3VzaG5pciBrZXJuZWw6IGNwdTI6IDxBQ1BJIENQVT4gb24gYWNwaTAKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogY3B1MzogPEFDUEkgQ1BVPiBvbiBhY3BpMApEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiBjcHU0OiA8QUNQSSBDUFU+IG9uIGFjcGkwCkRlYyAgOSAx
MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGNwdTU6IDxBQ1BJIENQVT4gb24gYWNwaTAKRGVjICA5
IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogY3B1NjogPEFDUEkgQ1BVPiBvbiBhY3BpMApEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBjcHU3OiA8QUNQSSBDUFU+IG9uIGFjcGkwCkRl
YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGF0dGltZXIwOiA8QVQgdGltZXI+IHBvcnQg
MHg0MC0weDQzIGlycSAwIG9uIGFjcGkwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6
IFRpbWVjb3VudGVyICJpODI1NCIgZnJlcXVlbmN5IDExOTMxODIgSHogcXVhbGl0eSAwCkRlYyAg
OSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IEV2ZW50IHRpbWVyICJpODI1NCIgZnJlcXVlbmN5
IDExOTMxODIgSHogcXVhbGl0eSAxMDAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog
YXRydGMwOiA8QVQgcmVhbHRpbWUgY2xvY2s+IHBvcnQgMHg3MC0weDcxIGlycSA4IG9uIGFjcGkw
CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IEV2ZW50IHRpbWVyICJSVEMiIGZyZXF1
ZW5jeSAzMjc2OCBIeiBxdWFsaXR5IDAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog
aHBldDA6IDxIaWdoIFByZWNpc2lvbiBFdmVudCBUaW1lcj4gaW9tZW0gMHhmZWQwMDAwMC0weGZl
ZDAwM2ZmIG9uIGFjcGkwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IFRpbWVjb3Vu
dGVyICJIUEVUIiBmcmVxdWVuY3kgMTQzMTgxODAgSHogcXVhbGl0eSA5NTAKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogRXZlbnQgdGltZXIgIkhQRVQiIGZyZXF1ZW5jeSAxNDMxODE4
MCBIeiBxdWFsaXR5IDU1MApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBUaW1lY291
bnRlciAiQUNQSS1mYXN0IiBmcmVxdWVuY3kgMzU3OTU0NSBIeiBxdWFsaXR5IDkwMApEZWMgIDkg
MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhY3BpX3RpbWVyMDogPDI0LWJpdCB0aW1lciBhdCAz
LjU3OTU0NU1Iej4gcG9ydCAweDQwOC0weDQwYiBvbiBhY3BpMApEZWMgIDkgMTA6Mjk6NTEgbWt1
c2huaXIga2VybmVsOiBwY2liMDogPEFDUEkgSG9zdC1QQ0kgYnJpZGdlPiBwb3J0IDB4Y2Y4LTB4
Y2ZmIG9uIGFjcGkwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6IDxBQ1BJ
IFBDSSBidXM+IG9uIHBjaWIwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaWIx
OiA8QUNQSSBQQ0ktUENJIGJyaWRnZT4gaXJxIDE2IGF0IGRldmljZSAxLjAgb24gcGNpMApEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kxOiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2li
MQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRp
c3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgMS4yIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAx
MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZp
Y2U+IGF0IGRldmljZSAxLjMgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9uLVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2
aWNlIDEuNCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy
bmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgMS41IChu
byBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6
IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZpY2U+IGF0IGRldmljZSAxLjYgKG5vIGRyaXZlciBh
dHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9u
LVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2aWNlIDEuNyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMjogPEFDUEkgUENJLVBDSSBicmlk
Z2U+IGlycSAxNiBhdCBkZXZpY2UgMi4wIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogcGNpMjogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjIKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogdmdhcGNpMDogPFZHQS1jb21wYXRpYmxlIGRpc3BsYXk+IHBvcnQgMHhl
MDAwLTB4ZTBmZiBtZW0gMHhlMDAwMDAwMC0weGVmZmZmZmZmLDB4ZmJlMjAwMDAtMHhmYmUyZmZm
ZiBpcnEgMTYgYXQgZGV2aWNlIDAuMCBvbiBwY2kyCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr
ZXJuZWw6IGhkYWMwOiA8QVRJIFJWNzMwIEhEQSBDb250cm9sbGVyPiBtZW0gMHhmYmUzMDAwMC0w
eGZiZTMzZmZmIGlycSAxNyBhdCBkZXZpY2UgMC4xIG9uIHBjaTIKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9uLVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2
aWNlIDIuNCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy
bmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgMi41IChu
byBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6
IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZpY2U+IGF0IGRldmljZSAyLjYgKG5vIGRyaXZlciBh
dHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9u
LVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2aWNlIDIuNyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMzogPEFDUEkgUENJLVBDSSBicmlk
Z2U+IGlycSAxNiBhdCBkZXZpY2UgMy4wIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogcGNpMzogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjMKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9uLVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2
aWNlIDMuNCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy
bmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgMy41IChu
byBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6
IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZpY2U+IGF0IGRldmljZSAzLjYgKG5vIGRyaXZlciBh
dHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9u
LVZHQSBkaXNwbGF5IGRldmljZT4gYXQgZGV2aWNlIDMuNyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8YmFzZSBwZXJpcGhlcmFsPiBh
dCBkZXZpY2UgNC4wIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p
ciBrZXJuZWw6IHBjaTA6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA0LjEgKG5vIGRyaXZl
ciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPGJhc2Ug
cGVyaXBoZXJhbD4gYXQgZGV2aWNlIDQuMiAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug
NC4zIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6
IHBjaTA6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA0LjQgKG5vIGRyaXZlciBhdHRhY2hl
ZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPGJhc2UgcGVyaXBoZXJh
bD4gYXQgZGV2aWNlIDQuNSAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1
c2huaXIga2VybmVsOiBwY2kwOiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgNC42IChubyBk
cml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6IDxi
YXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA0LjcgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5
IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2
aWNlIDUuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy
bmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBhdCBkZXZpY2UgNS4xIChu
byBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTA6
IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA1LjIgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVj
ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMDogPG9sZCwgbm9uLVZHQSBkaXNwbGF5
IGRldmljZT4gYXQgZGV2aWNlIDUuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6
NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8b2xkLCBub24tVkdBIGRpc3BsYXkgZGV2aWNlPiBh
dCBkZXZpY2UgNS41IChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p
ciBrZXJuZWw6IHBjaTA6IDxvbGQsIG5vbi1WR0EgZGlzcGxheSBkZXZpY2U+IGF0IGRldmljZSA1
LjcgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog
cGNpYjQ6IDxBQ1BJIFBDSS1QQ0kgYnJpZGdlPiBpcnEgMTYgYXQgZGV2aWNlIDE3LjAgb24gcGNp
MApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2k0OiA8QUNQSSBQQ0kgYnVzPiBv
biBwY2liNApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kwOiA8c2ltcGxlIGNv
bW1zPiBhdCBkZXZpY2UgMjIuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBlbTA6IDxJbnRlbChSKSBQUk8vMTAwMCBOZXR3b3JrIENvbm5lY3Rp
b24gNy4zLjg+IHBvcnQgMHhmMDQwLTB4ZjA1ZiBtZW0gMHhmYmYwMDAwMC0weGZiZjFmZmZmLDB4
ZmJmNDgwMDAtMHhmYmY0OGZmZiBpcnEgMjAgYXQgZGV2aWNlIDI1LjAgb24gcGNpMApEZWMgIDkg
MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBlbTA6IFVzaW5nIGFuIE1TSSBpbnRlcnJ1cHQKRGVj
ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogZW0wOiBFdGhlcm5ldCBhZGRyZXNzOiA3NDpk
NDozNToxNTo4ODplYQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBlaGNpMDogPEVI
Q0kgKGdlbmVyaWMpIFVTQiAyLjAgY29udHJvbGxlcj4gbWVtIDB4ZmJmNDcwMDAtMHhmYmY0NzNm
ZiBpcnEgMTYgYXQgZGV2aWNlIDI2LjAgb24gcGNpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg
a2VybmVsOiB1c2J1czA6IEVIQ0kgdmVyc2lvbiAxLjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogdXNidXMwIG9uIGVoY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6
IGhkYWMxOiA8SW50ZWwgUGF0c2J1cmcgSERBIENvbnRyb2xsZXI+IG1lbSAweGZiZjIwMDAwLTB4
ZmJmMjNmZmYgaXJxIDIyIGF0IGRldmljZSAyNy4wIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogcGNpYjU6IDxBQ1BJIFBDSS1QQ0kgYnJpZGdlPiBpcnEgMTcgYXQgZGV2
aWNlIDI4LjAgb24gcGNpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2k1OiA8
QUNQSSBQQ0kgYnVzPiBvbiBwY2liNQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBh
aGNpMDogPE1hcnZlbGwgODhTRTkxNzIgQUhDSSBTQVRBIGNvbnRyb2xsZXI+IHBvcnQgMHhkMDQw
LTB4ZDA0NywweGQwMzAtMHhkMDMzLDB4ZDAyMC0weGQwMjcsMHhkMDEwLTB4ZDAxMywweGQwMDAt
MHhkMDBmIG1lbSAweGZiZDEwMDAwLTB4ZmJkMTAxZmYgaXJxIDE2IGF0IGRldmljZSAwLjAgb24g
cGNpNQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhaGNpMDogQUhDSSB2MS4wMCB3
aXRoIDIgNkdicHMgcG9ydHMsIFBvcnQgTXVsdGlwbGllciBzdXBwb3J0ZWQgd2l0aCBGQlMKRGVj
ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWhjaTA6IHF1aXJrcz0weDEwMDxOT0JTWVJF
Uz4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWhjaWNoMDogPEFIQ0kgY2hhbm5l
bD4gYXQgY2hhbm5lbCAwIG9uIGFoY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6
IGFoY2ljaDE6IDxBSENJIGNoYW5uZWw+IGF0IGNoYW5uZWwgMSBvbiBhaGNpMApEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liNjogPEFDUEkgUENJLVBDSSBicmlkZ2U+IGlycSAx
NiBhdCBkZXZpY2UgMjguMSBvbiBwY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6
IHBjaTY6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWI2CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr
ZXJuZWw6IGFoY2kxOiA8TWFydmVsbCA4OFNFOTE3MiBBSENJIFNBVEEgY29udHJvbGxlcj4gcG9y
dCAweGMwNDAtMHhjMDQ3LDB4YzAzMC0weGMwMzMsMHhjMDIwLTB4YzAyNywweGMwMTAtMHhjMDEz
LDB4YzAwMC0weGMwMGYgbWVtIDB4ZmJjMTAwMDAtMHhmYmMxMDFmZiBpcnEgMTcgYXQgZGV2aWNl
IDAuMCBvbiBwY2k2CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2kxOiBBSENJ
IHYxLjAwIHdpdGggMiA2R2JwcyBwb3J0cywgUG9ydCBNdWx0aXBsaWVyIHN1cHBvcnRlZCB3aXRo
IEZCUwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhaGNpMTogcXVpcmtzPTB4MTAw
PE5PQlNZUkVTPgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhaGNpY2gyOiA8QUhD
SSBjaGFubmVsPiBhdCBjaGFubmVsIDAgb24gYWhjaTEKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogYWhjaWNoMzogPEFIQ0kgY2hhbm5lbD4gYXQgY2hhbm5lbCAxIG9uIGFoY2kxCkRl
YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaWI3OiA8QUNQSSBQQ0ktUENJIGJyaWRn
ZT4gaXJxIDE4IGF0IGRldmljZSAyOC4yIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogcGNpNzogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjcKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogYWhjaTI6IDxNYXJ2ZWxsIDg4U0U5MTcyIEFIQ0kgU0FUQSBjb250cm9s
bGVyPiBwb3J0IDB4YjA0MC0weGIwNDcsMHhiMDMwLTB4YjAzMywweGIwMjAtMHhiMDI3LDB4YjAx
MC0weGIwMTMsMHhiMDAwLTB4YjAwZiBtZW0gMHhmYmIxMDAwMC0weGZiYjEwMWZmIGlycSAxOCBh
dCBkZXZpY2UgMC4wIG9uIHBjaTcKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWhj
aTI6IEFIQ0kgdjEuMDAgd2l0aCAyIDZHYnBzIHBvcnRzLCBQb3J0IE11bHRpcGxpZXIgc3VwcG9y
dGVkIHdpdGggRkJTCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2kyOiBxdWly
a3M9MHgxMDA8Tk9CU1lSRVM+CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2lj
aDQ6IDxBSENJIGNoYW5uZWw+IGF0IGNoYW5uZWwgMCBvbiBhaGNpMgpEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBhaGNpY2g1OiA8QUhDSSBjaGFubmVsPiBhdCBjaGFubmVsIDEgb24g
YWhjaTIKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpYjg6IDxBQ1BJIFBDSS1Q
Q0kgYnJpZGdlPiBpcnEgMTkgYXQgZGV2aWNlIDI4LjMgb24gcGNpMApEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBwY2k4OiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liOApEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiBmd29oY2kwOiA8MTM5NCBPcGVuIEhvc3QgQ29udHJvbGxl
ciBJbnRlcmZhY2U+IHBvcnQgMHhhMDAwLTB4YTBmZiBtZW0gMHhmYmExMDAwMC0weGZiYTEwN2Zm
IGlycSAxOSBhdCBkZXZpY2UgMC4wIG9uIHBjaTgKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl
cm5lbDogZndvaGNpMDogT0hDSSB2ZXJzaW9uIDEuMCAoUk9NPTEpCkRlYyAgOSAxMDoyOTo1MSBt
a3VzaG5pciBrZXJuZWw6IGZ3b2hjaTA6IE5vLiBvZiBJc29jaHJvbm91cyBjaGFubmVscyBpcyA0
LgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBmd29oY2kwOiBFVUk2NCBmZjowMDow
MDowMDowMDowMDowMDowMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBmd29oY2kw
OiBQaHkgMTM5NGEgYXZhaWxhYmxlIFM0MDAsIDIgcG9ydHMuCkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IGZ3b2hjaTA6IExpbmsgUzEwMCwgbWF4X3JlYyAyMDQ4IGJ5dGVzLgpEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBmaXJld2lyZTA6IDxJRUVFMTM5NChGaXJlV2ly
ZSkgYnVzPiBvbiBmd29oY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGZ3b2hj
aTA6IEluaXRpYXRlIGJ1cyByZXNldApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBm
d29oY2kwOiBmd29oY2lfaW50cl9jb3JlOiBCVVMgcmVzZXQKRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogZndvaGNpMDogZndvaGNpX2ludHJfY29yZTogbm9kZV9pZD0weDAwMDAwMDAw
LCBTZWxmSUQgQ291bnQ9MSwgQ1lDTEVNQVNURVIgbW9kZQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu
aXIga2VybmVsOiBhdGFwY2kwOiA8VklBIEFUQSBjb250cm9sbGVyPiBwb3J0IDB4YTE0MC0weGEx
NDcsMHhhMTMwLTB4YTEzMywweGExMjAtMHhhMTI3LDB4YTExMC0weGExMTMsMHhhMTAwLTB4YTEw
ZiBpcnEgMTkgYXQgZGV2aWNlIDAuMSBvbiBwY2k4CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr
ZXJuZWw6IGF0YTI6IDxBVEEgY2hhbm5lbD4gYXQgY2hhbm5lbCAwIG9uIGF0YXBjaTAKRGVjICA5
IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYXRhMzogPEFUQSBjaGFubmVsPiBhdCBjaGFubmVs
IDEgb24gYXRhcGNpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liOTogPEFD
UEkgUENJLVBDSSBicmlkZ2U+IGlycSAxNiBhdCBkZXZpY2UgMjguNSBvbiBwY2kwCkRlYyAgOSAx
MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTk6IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWI5CkRl
YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHhoY2kwOiA8WEhDSSAoZ2VuZXJpYykgVVNC
IDMuMCBjb250cm9sbGVyPiBtZW0gMHhmYjkwMDAwMC0weGZiOTBmZmZmLDB4ZmI5MTEwMDAtMHhm
YjkxMWZmZiwweGZiOTEwMDAwLTB4ZmI5MTBmZmYgaXJxIDE3IGF0IGRldmljZSAwLjAgb24gcGNp
OQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB4aGNpMDogMzIgYnl0ZSBjb250ZXh0
IHNpemUuCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVzYnVzMSBvbiB4aGNpMApE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMTA6IDxBQ1BJIFBDSS1QQ0kgYnJp
ZGdlPiBpcnEgMTggYXQgZGV2aWNlIDI4LjYgb24gcGNpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu
aXIga2VybmVsOiBwY2kxMDogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjEwCkRlYyAgOSAxMDoyOTo1
MSBta3VzaG5pciBrZXJuZWw6IHhoY2kxOiA8WEhDSSAoZ2VuZXJpYykgVVNCIDMuMCBjb250cm9s
bGVyPiBtZW0gMHhmYjgwMDAwMC0weGZiODBmZmZmLDB4ZmI4MTEwMDAtMHhmYjgxMWZmZiwweGZi
ODEwMDAwLTB4ZmI4MTBmZmYgaXJxIDE4IGF0IGRldmljZSAwLjAgb24gcGNpMTAKRGVjICA5IDEw
OjI5OjUxIG1rdXNobmlyIGtlcm5lbDogeGhjaTE6IDMyIGJ5dGUgY29udGV4dCBzaXplLgpEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1c2J1czIgb24geGhjaTEKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogZWhjaTE6IDxFSENJIChnZW5lcmljKSBVU0IgMi4wIGNvbnRy
b2xsZXI+IG1lbSAweGZiZjQ2MDAwLTB4ZmJmNDYzZmYgaXJxIDIzIGF0IGRldmljZSAyOS4wIG9u
IHBjaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdXNidXMzOiBFSENJIHZlcnNp
b24gMS4wCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVzYnVzMyBvbiBlaGNpMQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMTE6IDxBQ1BJIFBDSS1QQ0kgYnJp
ZGdlPiBhdCBkZXZpY2UgMzAuMCBvbiBwY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJu
ZWw6IHBjaTExOiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liMTEKRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogcmUwOiA8UmVhbFRlayA4MTY5LzgxNjlTLzgxNjlTQihMKS84MTEwUy84MTEw
U0IoTCkgR2lnYWJpdCBFdGhlcm5ldD4gcG9ydCAweDkwMDAtMHg5MGZmIG1lbSAweGZiNzEwMDAw
LTB4ZmI3MTAwZmYgaXJxIDE2IGF0IGRldmljZSAwLjAgb24gcGNpMTEKRGVjICA5IDEwOjI5OjUx
IG1rdXNobmlyIGtlcm5lbDogcmUwOiBDaGlwIHJldi4gMHgxMDAwMDAwMApEZWMgIDkgMTA6Mjk6
NTEgbWt1c2huaXIga2VybmVsOiByZTA6IE1BQyByZXYuIDB4MDAwMDAwMDAKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogbWlpYnVzMDogPE1JSSBidXM+IG9uIHJlMApEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiByZ2VwaHkwOiA8UlRMODE2OVMvODExMFMvODIxMSAxMDAw
QkFTRS1UIG1lZGlhIGludGVyZmFjZT4gUEhZIDEgb24gbWlpYnVzMApEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiByZ2VwaHkwOiAgbm9uZSwgMTBiYXNlVCwgMTBiYXNlVC1GRFgsIDEw
YmFzZVQtRkRYLWZsb3csIDEwMGJhc2VUWCwgMTAwYmFzZVRYLUZEWCwgMTAwYmFzZVRYLUZEWC1m
bG93LCAxMDAwYmFzZVQsIDEwMDBiYXNlVC1tYXN0ZXIsIDEwMDBiYXNlVC1GRFgsIDEwMDBiYXNl
VC1GRFgtbWFzdGVyLCAxMDAwYmFzZVQtRkRYLWZsb3csIDEwMDBiYXNlVC1GRFgtZmxvdy1tYXN0
ZXIsIGF1dG8sIGF1dG8tZmxvdwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiByZTA6
IEV0aGVybmV0IGFkZHJlc3M6IDE0OmRhOmU5OmYxOjUyOjI2CkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IGlzYWIwOiA8UENJLUlTQSBicmlkZ2U+IGF0IGRldmljZSAzMS4wIG9uIHBj
aTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogaXNhMDogPElTQSBidXM+IG9uIGlz
YWIwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2kzOiA8SW50ZWwgUGF0c2J1
cmcgQUhDSSBTQVRBIGNvbnRyb2xsZXI+IHBvcnQgMHhmMDkwLTB4ZjA5NywweGYwODAtMHhmMDgz
LDB4ZjA3MC0weGYwNzcsMHhmMDYwLTB4ZjA2MywweGYwMjAtMHhmMDNmIG1lbSAweGZiZjQ1MDAw
LTB4ZmJmNDU3ZmYgaXJxIDE5IGF0IGRldmljZSAzMS4yIG9uIHBjaTAKRGVjICA5IDEwOjI5OjUx
IG1rdXNobmlyIGtlcm5lbDogYWhjaTM6IEFIQ0kgdjEuMzAgd2l0aCA2IDZHYnBzIHBvcnRzLCBQ
b3J0IE11bHRpcGxpZXIgbm90IHN1cHBvcnRlZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy
bmVsOiBhaGNpY2g2OiA8QUhDSSBjaGFubmVsPiBhdCBjaGFubmVsIDAgb24gYWhjaTMKRGVjICA5
IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWhjaWNoNzogPEFIQ0kgY2hhbm5lbD4gYXQgY2hh
bm5lbCAxIG9uIGFoY2kzCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFoY2llbTA6
IDxBSENJIGVuY2xvc3VyZSBtYW5hZ2VtZW50IGJyaWRnZT4gb24gYWhjaTMKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogaWNoc21iMDogPEludGVsIFBhdHNidXJnIFNNQnVzIGNvbnRy
b2xsZXI+IHBvcnQgMHhmMDAwLTB4ZjAxZiBtZW0gMHhmYmY0NDAwMC0weGZiZjQ0MGZmIGlycSAx
OCBhdCBkZXZpY2UgMzEuMyBvbiBwY2kwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6
IHNtYnVzMDogPFN5c3RlbSBNYW5hZ2VtZW50IEJ1cz4gb24gaWNoc21iMApEZWMgIDkgMTA6Mjk6
NTEgbWt1c2huaXIga2VybmVsOiBzbWIwOiA8U01CdXMgZ2VuZXJpYyBJL08+IG9uIHNtYnVzMApE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2liMTI6IDxBQ1BJIEhvc3QtUENJIGJy
aWRnZT4gb24gYWNwaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8
QUNQSSBQQ0kgYnVzPiBvbiBwY2liMTIKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog
cGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgOC4wIChubyBkcml2ZXIgYXR0YWNo
ZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBo
ZXJhbD4gYXQgZGV2aWNlIDguMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA4LjQg
KG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNp
MjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgOS4wIChubyBkcml2ZXIgYXR0YWNoZWQp
CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJh
bD4gYXQgZGV2aWNlIDkuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1
c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSA5LjQgKG5v
IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1
OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTAuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+
IGF0IGRldmljZSAxMC4xIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2aWNlIDEwLjIgKG5v
IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1
OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTAuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+
IGF0IGRldmljZSAxMS4wIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2aWNlIDExLjMgKG5v
IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1
OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTIuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+
IGF0IGRldmljZSAxMi4xIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2aWNlIDEyLjYgKG5v
IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1
OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTIuNyAobm8gZHJpdmVyIGF0dGFjaGVkKQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+
IGF0IGRldmljZSAxMy4wIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVyaXBoZXJhbD4gYXQgZGV2aWNlIDEzLjEgKG5v
IGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1
OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2UgMTMuNiAobm8gZHJpdmVyIGF0dGFjaGVkKQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+
IGF0IGRldmljZSAxNC4wIChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IHBjaTI1NTogPGRhc3A+IGF0IGRldmljZSAxNC4xIChubyBkcml2ZXIgYXR0
YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy
aXBoZXJhbD4gYXQgZGV2aWNlIDE1LjAgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug
MTUuMSAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs
OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNS4yIChubyBkcml2ZXIgYXR0
YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy
aXBoZXJhbD4gYXQgZGV2aWNlIDE1LjMgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug
MTUuNCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs
OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNS41IChubyBkcml2ZXIgYXR0
YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy
aXBoZXJhbD4gYXQgZGV2aWNlIDE1LjYgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug
MTYuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs
OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNi4xIChubyBkcml2ZXIgYXR0
YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy
aXBoZXJhbD4gYXQgZGV2aWNlIDE2LjIgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug
MTYuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs
OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNi40IChubyBkcml2ZXIgYXR0
YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy
aXBoZXJhbD4gYXQgZGV2aWNlIDE2LjUgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug
MTYuNiAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs
OiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRldmljZSAxNi43IChubyBkcml2ZXIgYXR0
YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBjaTI1NTogPGJhc2UgcGVy
aXBoZXJhbD4gYXQgZGV2aWNlIDE3LjAgKG5vIGRyaXZlciBhdHRhY2hlZCkKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogcGNpMjU1OiA8YmFzZSBwZXJpcGhlcmFsPiBhdCBkZXZpY2Ug
MTkuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs
OiBwY2kyNTU6IDxkYXNwPiBhdCBkZXZpY2UgMTkuMSAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxkYXNwPiBhdCBkZXZpY2UgMTku
NCAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBw
Y2kyNTU6IDxkYXNwPiBhdCBkZXZpY2UgMTkuNSAobm8gZHJpdmVyIGF0dGFjaGVkKQpEZWMgIDkg
MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY2kyNTU6IDxiYXNlIHBlcmlwaGVyYWw+IGF0IGRl
dmljZSAxOS42IChubyBkcml2ZXIgYXR0YWNoZWQpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr
ZXJuZWw6IGFjcGlfYnV0dG9uMDogPFBvd2VyIEJ1dHRvbj4gb24gYWNwaTAKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogYXRrYmRjMDogPEtleWJvYXJkIGNvbnRyb2xsZXIgKGk4MDQy
KT4gcG9ydCAweDYwLDB4NjQgaXJxIDEgb24gYWNwaTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogYXRrYmQwOiA8QVQgS2V5Ym9hcmQ+IGlycSAxIG9uIGF0a2JkYzAKRGVjICA5IDEw
OjI5OjUxIG1rdXNobmlyIGtlcm5lbDoga2JkMCBhdCBhdGtiZDAKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogYXRrYmQwOiBbR0lBTlQtTE9DS0VEXQpEZWMgIDkgMTA6Mjk6NTEgbWt1
c2huaXIga2VybmVsOiB1YXJ0MDogPDE2NTUwIG9yIGNvbXBhdGlibGU+IHBvcnQgMHgzZjgtMHgz
ZmYgaXJxIDQgZmxhZ3MgMHgxMCBvbiBhY3BpMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy
bmVsOiBpY2h3ZDAgb24gaXNhMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBvcm0w
OiA8SVNBIE9wdGlvbiBST01zPiBhdCBpb21lbSAweGMwMDAwLTB4Y2ZmZmYsMHhkMDAwMC0weGQz
ZmZmIG9uIGlzYTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogc2MwOiA8U3lzdGVt
IGNvbnNvbGU+IGF0IGZsYWdzIDB4MTAwIG9uIGlzYTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogc2MwOiBWR0EgPDE2IHZpcnR1YWwgY29uc29sZXMsIGZsYWdzPTB4MzAwPgpEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB2Z2EwOiA8R2VuZXJpYyBJU0EgVkdBPiBhdCBw
b3J0IDB4M2MwLTB4M2RmIGlvbWVtIDB4YTAwMDAtMHhiZmZmZiBvbiBpc2EwCkRlYyAgOSAxMDoy
OTo1MSBta3VzaG5pciBrZXJuZWw6IGNvcmV0ZW1wMDogPENQVSBPbi1EaWUgVGhlcm1hbCBTZW5z
b3JzPiBvbiBjcHUwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGVzdDA6IDxFbmhh
bmNlZCBTcGVlZFN0ZXAgRnJlcXVlbmN5IENvbnRyb2w+IG9uIGNwdTAKRGVjICA5IDEwOjI5OjUx
IG1rdXNobmlyIGtlcm5lbDogcDR0Y2MwOiA8Q1BVIEZyZXF1ZW5jeSBUaGVybWFsIENvbnRyb2w+
IG9uIGNwdTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogY29yZXRlbXAxOiA8Q1BV
IE9uLURpZSBUaGVybWFsIFNlbnNvcnM+IG9uIGNwdTEKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogZXN0MTogPEVuaGFuY2VkIFNwZWVkU3RlcCBGcmVxdWVuY3kgQ29udHJvbD4gb24g
Y3B1MQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwNHRjYzE6IDxDUFUgRnJlcXVl
bmN5IFRoZXJtYWwgQ29udHJvbD4gb24gY3B1MQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2Vy
bmVsOiBjb3JldGVtcDI6IDxDUFUgT24tRGllIFRoZXJtYWwgU2Vuc29ycz4gb24gY3B1MgpEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBlc3QyOiA8RW5oYW5jZWQgU3BlZWRTdGVwIEZy
ZXF1ZW5jeSBDb250cm9sPiBvbiBjcHUyCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6
IHA0dGNjMjogPENQVSBGcmVxdWVuY3kgVGhlcm1hbCBDb250cm9sPiBvbiBjcHUyCkRlYyAgOSAx
MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGNvcmV0ZW1wMzogPENQVSBPbi1EaWUgVGhlcm1hbCBT
ZW5zb3JzPiBvbiBjcHUzCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGVzdDM6IDxF
bmhhbmNlZCBTcGVlZFN0ZXAgRnJlcXVlbmN5IENvbnRyb2w+IG9uIGNwdTMKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogcDR0Y2MzOiA8Q1BVIEZyZXF1ZW5jeSBUaGVybWFsIENvbnRy
b2w+IG9uIGNwdTMKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogY29yZXRlbXA0OiA8
Q1BVIE9uLURpZSBUaGVybWFsIFNlbnNvcnM+IG9uIGNwdTQKRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogZXN0NDogPEVuaGFuY2VkIFNwZWVkU3RlcCBGcmVxdWVuY3kgQ29udHJvbD4g
b24gY3B1NApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwNHRjYzQ6IDxDUFUgRnJl
cXVlbmN5IFRoZXJtYWwgQ29udHJvbD4gb24gY3B1NApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg
a2VybmVsOiBjb3JldGVtcDU6IDxDUFUgT24tRGllIFRoZXJtYWwgU2Vuc29ycz4gb24gY3B1NQpE
ZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBlc3Q1OiA8RW5oYW5jZWQgU3BlZWRTdGVw
IEZyZXF1ZW5jeSBDb250cm9sPiBvbiBjcHU1CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJu
ZWw6IHA0dGNjNTogPENQVSBGcmVxdWVuY3kgVGhlcm1hbCBDb250cm9sPiBvbiBjcHU1CkRlYyAg
OSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGNvcmV0ZW1wNjogPENQVSBPbi1EaWUgVGhlcm1h
bCBTZW5zb3JzPiBvbiBjcHU2CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGVzdDY6
IDxFbmhhbmNlZCBTcGVlZFN0ZXAgRnJlcXVlbmN5IENvbnRyb2w+IG9uIGNwdTYKRGVjICA5IDEw
OjI5OjUxIG1rdXNobmlyIGtlcm5lbDogcDR0Y2M2OiA8Q1BVIEZyZXF1ZW5jeSBUaGVybWFsIENv
bnRyb2w+IG9uIGNwdTYKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogY29yZXRlbXA3
OiA8Q1BVIE9uLURpZSBUaGVybWFsIFNlbnNvcnM+IG9uIGNwdTcKRGVjICA5IDEwOjI5OjUxIG1r
dXNobmlyIGtlcm5lbDogZXN0NzogPEVuaGFuY2VkIFNwZWVkU3RlcCBGcmVxdWVuY3kgQ29udHJv
bD4gb24gY3B1NwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwNHRjYzc6IDxDUFUg
RnJlcXVlbmN5IFRoZXJtYWwgQ29udHJvbD4gb24gY3B1NwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu
aXIga2VybmVsOiBUaW1lY291bnRlcnMgdGljayBldmVyeSAxLjAwMCBtc2VjCkRlYyAgOSAxMDoy
OTo1MSBta3VzaG5pciBrZXJuZWw6IGZpcmV3aXJlMDogMSBub2RlcywgbWF4aG9wIDw9IDAgY2Fi
bGUgSVJNIGlybSgwKSAgKG1lKSAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogZmly
ZXdpcmUwOiBidXMgbWFuYWdlciAwIApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBp
cGZ3MiAoK2lwdjYpIGluaXRpYWxpemVkLCBkaXZlcnQgZW5hYmxlZCwgbmF0IGxvYWRhYmxlLCBk
ZWZhdWx0IHRvIGRlbnksIGxvZ2dpbmcgZGlzYWJsZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogRFVNTVlORVQgMCB3aXRoIElQdjYgaW5pdGlhbGl6ZWQgKDEwMDQwOSkKRGVjICA5
IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogbG9hZF9kbl9zY2hlZCBkbl9zY2hlZCBQUklPIGxv
YWRlZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBsb2FkX2RuX3NjaGVkIGRuX3Nj
aGVkIFFGUSBsb2FkZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogbG9hZF9kbl9z
Y2hlZCBkbl9zY2hlZCBSUiBsb2FkZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDog
bG9hZF9kbl9zY2hlZCBkbl9zY2hlZCBXRjJRKyBsb2FkZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogbG9hZF9kbl9zY2hlZCBkbl9zY2hlZCBGSUZPIGxvYWRlZApEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiBoZGFjYzA6IDxBVEkgUjZ4eCBIREEgQ09ERUM+IGF0IGNh
ZCAwIG9uIGhkYWMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGhkYWEwOiA8QVRJ
IFI2eHggQXVkaW8gRnVuY3Rpb24gR3JvdXA+IGF0IG5pZCAxIG9uIGhkYWNjMApEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY20wOiA8QVRJIFI2eHggKEhETUkpPiBhdCBuaWQgMyBv
biBoZGFhMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBoZGFjYzE6IDxSZWFsdGVr
IEFMQzg5MiBIREEgQ09ERUM+IGF0IGNhZCAyIG9uIGhkYWMxCkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IGhkYWExOiA8UmVhbHRlayBBTEM4OTIgQXVkaW8gRnVuY3Rpb24gR3JvdXA+
IGF0IG5pZCAxIG9uIGhkYWNjMQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY20x
OiA8UmVhbHRlayBBTEM4OTIgKFJlYXIgQW5hbG9nIDcuMS8yLjApPiBhdCBuaWQgMjAsMjIsMjEs
MjMgYW5kIDI0LDI2IG9uIGhkYWExCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBj
bTI6IDxSZWFsdGVrIEFMQzg5MiAoRnJvbnQgQW5hbG9nKT4gYXQgbmlkIDI3IGFuZCAyNSBvbiBo
ZGFhMQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBwY20zOiA8UmVhbHRlayBBTEM4
OTIgKE9uYm9hcmQgRGlnaXRhbCk+IGF0IG5pZCAxNyBvbiBoZGFhMQpEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBwY200OiA8UmVhbHRlayBBTEM4OTIgKFJlYXIgRGlnaXRhbCk+IGF0
IG5pZCAzMCBvbiBoZGFhMQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiByYW5kb206
IHVuYmxvY2tpbmcgZGV2aWNlLgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1c2J1
czA6IDQ4ME1icHMgSGlnaCBTcGVlZCBVU0IgdjIuMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg
a2VybmVsOiB1c2J1czE6IDUuMEdicHMgU3VwZXIgU3BlZWQgVVNCIHYzLjAKRGVjICA5IDEwOjI5
OjUxIG1rdXNobmlyIGtlcm5lbDogdXNidXMyOiA1LjBHYnBzIFN1cGVyIFNwZWVkIFVTQiB2My4w
CkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVzYnVzMzogNDgwTWJwcyBIaWdoIFNw
ZWVkIFVTQiB2Mi4wCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVnZW4wLjE6IDxJ
bnRlbD4gYXQgdXNidXMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVodWIwOiA8
SW50ZWwgRUhDSSByb290IEhVQiwgY2xhc3MgOS8wLCByZXYgMi4wMC8xLjAwLCBhZGRyIDE+IG9u
IHVzYnVzMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1Z2VuMy4xOiA8SW50ZWw+
IGF0IHVzYnVzMwpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1aHViMTogPEludGVs
IEVIQ0kgcm9vdCBIVUIsIGNsYXNzIDkvMCwgcmV2IDIuMDAvMS4wMCwgYWRkciAxPiBvbiB1c2J1
czMKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWdlbjIuMTogPDB4MWI3Mz4gYXQg
dXNidXMyCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVodWIyOiA8MHgxYjczIFhI
Q0kgcm9vdCBIVUIsIGNsYXNzIDkvMCwgcmV2IDMuMDAvMS4wMCwgYWRkciAxPiBvbiB1c2J1czIK
RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWdlbjEuMTogPDB4MWI3Mz4gYXQgdXNi
dXMxCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVodWIzOiA8MHgxYjczIFhIQ0kg
cm9vdCBIVUIsIGNsYXNzIDkvMCwgcmV2IDMuMDAvMS4wMCwgYWRkciAxPiBvbiB1c2J1czEKRGVj
ICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWh1YjI6IDQgcG9ydHMgd2l0aCA0IHJlbW92
YWJsZSwgc2VsZiBwb3dlcmVkCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVodWIz
OiA0IHBvcnRzIHdpdGggNCByZW1vdmFibGUsIHNlbGYgcG93ZXJlZApEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBhZGEwIGF0IGFoY2ljaDYgYnVzIDAgc2NidXM4IHRhcmdldCAwIGx1
biAwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFkYTA6IDxXREMgV0QxMDAyRkFF
WC0wMFozQTAgMDUuMDFEMDU+IEFUQS04IFNBVEEgMy54IGRldmljZQpEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiBhZGEwOiBTZXJpYWwgTnVtYmVyIFdELVdDQVRSNTExNDkwMgpEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGEwOiA2MDAuMDAwTUIvcyB0cmFuc2ZlcnMg
KFNBVEEgMy54LCBVRE1BNiwgUElPIDgxOTJieXRlcykKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogYWRhMDogQ29tbWFuZCBRdWV1ZWluZyBlbmFibGVkCkRlYyAgOSAxMDoyOTo1MSBt
a3VzaG5pciBrZXJuZWw6IGFkYTA6IDk1Mzg2OU1CICgxOTUzNTI1MTY4IDUxMiBieXRlIHNlY3Rv
cnM6IDE2SCA2M1MvVCAxNjM4M0MpCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGFk
YTA6IFByZXZpb3VzbHkgd2FzIGtub3duIGFzIGFkMjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogYWRhMSBhdCBhaGNpY2g3IGJ1cyAwIHNjYnVzOSB0YXJnZXQgMCBsdW4gMApEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGExOiA8U1QzMjUwNjIwQVMgMy5BQUM+IEFU
QS03IFNBVEEgMS54IGRldmljZQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGEx
OiBTZXJpYWwgTnVtYmVyIDVRRTBKWFpMCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6
IGFkYTE6IDE1MC4wMDBNQi9zIHRyYW5zZmVycyAoU0FUQSAxLngsIFVETUE2LCBQSU8gODE5MmJ5
dGVzKQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGExOiBDb21tYW5kIFF1ZXVl
aW5nIGVuYWJsZWQKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYWRhMTogMjM4NDc1
TUIgKDQ4ODM5NzE2OCA1MTIgYnl0ZSBzZWN0b3JzOiAxNkggNjNTL1QgMTYzODNDKQpEZWMgIDkg
MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhZGExOiBQcmV2aW91c2x5IHdhcyBrbm93biBhcyBh
ZDIyCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHBhc3MyIGF0IGFoY2llbTAgYnVz
IDAgc2NidXMxMCB0YXJnZXQgMCBsdW4gMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVs
OiBwYXNzMjogPEFIQ0kgU0dQSU8gRW5jbG9zdXJlIDEuMDAgMDAwMT4gU0VNQiBTLUUtUyAyLjAw
IGRldmljZQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBOZXR2c2MgaW5pdGlhbGl6
aW5nLi4uIFNNUDogQVAgQ1BVICMxIExhdW5jaGVkIQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIg
a2VybmVsOiBTTVA6IEFQIENQVSAjMyBMYXVuY2hlZCEKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogU01QOiBBUCBDUFUgIzUgTGF1bmNoZWQhCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p
ciBrZXJuZWw6IFNNUDogQVAgQ1BVICM3IExhdW5jaGVkIQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu
aXIga2VybmVsOiBTTVA6IEFQIENQVSAjNCBMYXVuY2hlZCEKRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogU01QOiBBUCBDUFUgIzIgTGF1bmNoZWQhCkRlYyAgOSAxMDoyOTo1MSBta3Vz
aG5pciBrZXJuZWw6IFNNUDogQVAgQ1BVICM2IExhdW5jaGVkIQpEZWMgIDkgMTA6Mjk6NTEgbWt1
c2huaXIga2VybmVsOiBXQVJOSU5HOiBXSVRORVNTIG9wdGlvbiBlbmFibGVkLCBleHBlY3QgcmVk
dWNlZCBwZXJmb3JtYW5jZS4KRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWh1YjA6
IDIgcG9ydHMgd2l0aCAyIHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkCkRlYyAgOSAxMDoyOTo1MSBt
a3VzaG5pciBrZXJuZWw6IHVodWIxOiAyIHBvcnRzIHdpdGggMiByZW1vdmFibGUsIHNlbGYgcG93
ZXJlZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBSb290IG1vdW50IHdhaXRpbmcg
Zm9yOiB1c2J1czMgdXNidXMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVnZW4w
LjI6IDx2ZW5kb3IgMHg4MDg3PiBhdCB1c2J1czAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl
cm5lbDogdWh1YjQ6IDx2ZW5kb3IgMHg4MDg3IHByb2R1Y3QgMHgwMDI0LCBjbGFzcyA5LzAsIHJl
diAyLjAwLzAuMDAsIGFkZHIgMj4gb24gdXNidXMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBr
ZXJuZWw6IHVnZW4zLjI6IDx2ZW5kb3IgMHg4MDg3PiBhdCB1c2J1czMKRGVjICA5IDEwOjI5OjUx
IG1rdXNobmlyIGtlcm5lbDogdWh1YjU6IDx2ZW5kb3IgMHg4MDg3IHByb2R1Y3QgMHgwMDI0LCBj
bGFzcyA5LzAsIHJldiAyLjAwLzAuMDAsIGFkZHIgMj4gb24gdXNidXMzCkRlYyAgOSAxMDoyOTo1
MSBta3VzaG5pciBrZXJuZWw6IHVodWI0OiA2IHBvcnRzIHdpdGggNiByZW1vdmFibGUsIHNlbGYg
cG93ZXJlZApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBSb290IG1vdW50IHdhaXRp
bmcgZm9yOiB1c2J1czMgdXNidXMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHVo
dWI1OiA4IHBvcnRzIHdpdGggOCByZW1vdmFibGUsIHNlbGYgcG93ZXJlZApEZWMgIDkgMTA6Mjk6
NTEgbWt1c2huaXIga2VybmVsOiB1Z2VuMC4zOiA8dmVuZG9yIDB4MDRkOT4gYXQgdXNidXMwCkRl
YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IFRyeWluZyB0byBtb3VudCByb290IGZyb20g
dWZzOi9kZXYvYWRhMHMxYSBbXS4uLgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBs
b2NrIG9yZGVyIHJldmVyc2FsOgpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiAxc3Qg
MHhmZmZmZjgwMDBmODMzOWEwIHVmcyAodWZzKSBAIC91c3Ivc3JjL3N5cy9rZXJuL3Zmc19tb3Vu
dC5jOjg1MQpEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiAybmQgMHhmZmZmZjgwMDBm
ODMzN2M4IGRldmZzIChkZXZmcykgQCAvdXNyL3NyYy9zeXMva2Vybi92ZnNfc3Vici5jOjIxMDEK
RGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogS0RCOiBzdGFjayBiYWNrdHJhY2U6CkRl
YyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0
IGRiX3RyYWNlX3NlbGZfd3JhcHBlcisweDJiL2ZyYW1lIDB4ZmZmZmZlMDBkOTdiOTI5MApEZWMg
IDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBrZGJfYmFja3RyYWNlKCkgYXQga2RiX2JhY2t0
cmFjZSsweDM5L2ZyYW1lIDB4ZmZmZmZlMDBkOTdiOTM0MApEZWMgIDkgMTA6Mjk6NTEgbWt1c2hu
aXIga2VybmVsOiB3aXRuZXNzX2NoZWNrb3JkZXIoKSBhdCB3aXRuZXNzX2NoZWNrb3JkZXIrMHhk
M2EvZnJhbWUgMHhmZmZmZmUwMGQ5N2I5M2QwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJu
ZWw6IF9fbG9ja21ncl9hcmdzKCkgYXQgX19sb2NrbWdyX2FyZ3MrMHg4NmMvZnJhbWUgMHhmZmZm
ZmUwMGQ5N2I5NTAwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IHZvcF9zdGRsb2Nr
KCkgYXQgdm9wX3N0ZGxvY2srMHgzYy9mcmFtZSAweGZmZmZmZTAwZDk3Yjk1MjAKRGVjICA5IDEw
OjI5OjUxIG1rdXNobmlyIGtlcm5lbDogVk9QX0xPQ0sxX0FQVigpIGF0IFZPUF9MT0NLMV9BUFYr
MHhmNS9mcmFtZSAweGZmZmZmZTAwZDk3Yjk1NTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtl
cm5lbDogX3ZuX2xvY2soKSBhdCBfdm5fbG9jaysweGFiL2ZyYW1lIDB4ZmZmZmZlMDBkOTdiOTVj
MApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB2Z2V0KCkgYXQgdmdldCsweDcwL2Zy
YW1lIDB4ZmZmZmZlMDBkOTdiOTYxMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBk
ZXZmc19hbGxvY3YoKSBhdCBkZXZmc19hbGxvY3YrMHhmZC9mcmFtZSAweGZmZmZmZTAwZDk3Yjk2
NjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogZGV2ZnNfcm9vdCgpIGF0IGRldmZz
X3Jvb3QrMHg0My9mcmFtZSAweGZmZmZmZTAwZDk3Yjk2OTAKRGVjICA5IDEwOjI5OjUxIG1rdXNo
bmlyIGtlcm5lbDogdmZzX2Rvbm1vdW50KCkgYXQgdmZzX2Rvbm1vdW50KzB4MTE1ZS9mcmFtZSAw
eGZmZmZmZTAwZDk3Yjk5NjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogc3lzX25t
b3VudCgpIGF0IHN5c19ubW91bnQrMHg3Mi9mcmFtZSAweGZmZmZmZTAwZDk3Yjk5YTAKRGVjICA5
IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogYW1kNjRfc3lzY2FsbCgpIGF0IGFtZDY0X3N5c2Nh
bGwrMHgyNjUvZnJhbWUgMHhmZmZmZmUwMGQ5N2I5YWIwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5p
ciBrZXJuZWw6IFhmYXN0X3N5c2NhbGwoKSBhdCBYZmFzdF9zeXNjYWxsKzB4ZmIvZnJhbWUgMHhm
ZmZmZmUwMGQ5N2I5YWIwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IC0tLSBzeXNj
YWxsICgzNzgsIEZyZWVCU0QgRUxGNjQsIHN5c19ubW91bnQpLCByaXAgPSAweDgwMGE5ZTIxYSwg
cnNwID0gMHg3ZmZmZmZmZmNjYzgsIHJicCA9IDB4N2ZmZmZmZmZkMjMwIC0tLQpEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1bXMwOiA8dmVuZG9yIDB4MDRkOSBwcm9kdWN0IDB4MDQ5
OSwgY2xhc3MgMC8wLCByZXYgMS4xMC8yLjkwLCBhZGRyIDM+IG9uIHVzYnVzMApEZWMgIDkgMTA6
Mjk6NTEgbWt1c2huaXIga2VybmVsOiB1bXMwOiAzIGJ1dHRvbnMgYW5kIFtYWVpdIGNvb3JkaW5h
dGVzIElEPTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogV0FSTklORzogYXR0ZW1w
dCB0byBkb21haW5fYWRkKG5ldGdyYXBoKSBhZnRlciBkb21haW5maW5hbGl6ZSgpCkRlYyAgOSAx
MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IGxvY2sgb3JkZXIgcmV2ZXJzYWw6CkRlYyAgOSAxMDoy
OTo1MSBta3VzaG5pciBrZXJuZWw6IDFzdCAweGZmZmZmZTAwNDA0MjZkYTAgYnVmd2FpdCAoYnVm
d2FpdCkgQCAvdXNyL3NyYy9zeXMva2Vybi92ZnNfYmlvLmM6MzA4MQpEZWMgIDkgMTA6Mjk6NTEg
bWt1c2huaXIga2VybmVsOiAybmQgMHhmZmZmZjgwMDBmNDJhNDAwIGRpcmhhc2ggKGRpcmhhc2gp
IEAgL3Vzci9zcmMvc3lzL3Vmcy91ZnMvdWZzX2Rpcmhhc2guYzoyODQKRGVjICA5IDEwOjI5OjUx
IG1rdXNobmlyIGtlcm5lbDogS0RCOiBzdGFjayBiYWNrdHJhY2U6CkRlYyAgOSAxMDoyOTo1MSBt
a3VzaG5pciBrZXJuZWw6IGRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0IGRiX3RyYWNlX3NlbGZf
d3JhcHBlcisweDJiL2ZyYW1lIDB4ZmZmZmZlMDBkOTgwNDI3MApEZWMgIDkgMTA6Mjk6NTEgbWt1
c2huaXIga2VybmVsOiBrZGJfYmFja3RyYWNlKCkgYXQga2RiX2JhY2t0cmFjZSsweDM5L2ZyYW1l
IDB4ZmZmZmZlMDBkOTgwNDMyMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiB3aXRu
ZXNzX2NoZWNrb3JkZXIoKSBhdCB3aXRuZXNzX2NoZWNrb3JkZXIrMHhkM2EvZnJhbWUgMHhmZmZm
ZmUwMGQ5ODA0M2IwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IF9zeF94bG9jaygp
IGF0IF9zeF94bG9jaysweDc1L2ZyYW1lIDB4ZmZmZmZlMDBkOTgwNDNmMApEZWMgIDkgMTA6Mjk6
NTEgbWt1c2huaXIga2VybmVsOiB1ZnNkaXJoYXNoX2FkZCgpIGF0IHVmc2Rpcmhhc2hfYWRkKzB4
M2IvZnJhbWUgMHhmZmZmZmUwMGQ5ODA0NDMwCkRlYyAgOSAxMDoyOTo1MSBta3VzaG5pciBrZXJu
ZWw6IHVmc19kaXJlbnRlcigpIGF0IHVmc19kaXJlbnRlcisweDY1Yy9mcmFtZSAweGZmZmZmZTAw
ZDk4MDQ0ZjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogdWZzX21ha2Vpbm9kZSgp
IGF0IHVmc19tYWtlaW5vZGUrMHg1NzMvZnJhbWUgMHhmZmZmZmUwMGQ5ODA0NmIwCkRlYyAgOSAx
MDoyOTo1MSBta3VzaG5pciBrZXJuZWw6IFZPUF9DUkVBVEVfQVBWKCkgYXQgVk9QX0NSRUFURV9B
UFYrMHhlYS9mcmFtZSAweGZmZmZmZTAwZDk4MDQ2ZTAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogdm5fb3Blbl9jcmVkKCkgYXQgdm5fb3Blbl9jcmVkKzB4MzAwL2ZyYW1lIDB4ZmZm
ZmZlMDBkOTgwNDgzMApEZWMgIDkgMTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBrZXJuX29wZW5h
dCgpIGF0IGtlcm5fb3BlbmF0KzB4MjYxL2ZyYW1lIDB4ZmZmZmZlMDBkOTgwNDlhMApEZWMgIDkg
MTA6Mjk6NTEgbWt1c2huaXIga2VybmVsOiBhbWQ2NF9zeXNjYWxsKCkgYXQgYW1kNjRfc3lzY2Fs
bCsweDI2NS9mcmFtZSAweGZmZmZmZTAwZDk4MDRhYjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmly
IGtlcm5lbDogWGZhc3Rfc3lzY2FsbCgpIGF0IFhmYXN0X3N5c2NhbGwrMHhmYi9mcmFtZSAweGZm
ZmZmZTAwZDk4MDRhYjAKRGVjICA5IDEwOjI5OjUxIG1rdXNobmlyIGtlcm5lbDogLS0tIHN5c2Nh
bGwgKDUsIEZyZWVCU0QgRUxGNjQsIHN5c19vcGVuKSwgcmlwID0gMHg4MDA5M2ViNWEsIHJzcCA9
IDB4N2ZmZmZmZmZkOWY4LCByYnAgPSAweDdmZmZmZmZmZGEzMCAtLS0KRGVjICA5IDEwOjMxOjA3
IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gSW5pdGlhbGl6ZWQgZHJtIDEuMS4wIDIwMDYw
ODEwCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGRybW4wOiA8QVRJIFJhZGVvbiBI
RCA0MzUwPiBvbiB2Z2FwY2kwCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86
IFtkcm1dIE1TSSBlbmFibGVkIDEgbWVzc2FnZShzKQpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIg
a2VybmVsOiBpbmZvOiBbZHJtXSBSQURFT05fSVNfUENJRQpEZWMgIDkgMTA6MzE6MDcgbWt1c2hu
aXIga2VybmVsOiBpbmZvOiBbZHJtXSBpbml0aWFsaXppbmcga2VybmVsIG1vZGVzZXR0aW5nIChS
VjcxMCAweDEwMDI6MHg5NTRGIDB4MTA0MzoweDAzNTQpLgpEZWMgIDkgMTA6MzE6MDcgbWt1c2hu
aXIga2VybmVsOiBpbmZvOiBbZHJtXSByZWdpc3RlciBtbWlvIGJhc2U6IDB4RkJFMjAwMDAKRGVj
ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gcmVnaXN0ZXIgbW1pbyBz
aXplOiA2NTUzNgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBy
YWRlb25fYXRybV9nZXRfYmlvczogPT09PiBUcnkgQVRSTS4uLgpEZWMgIDkgMTA6MzE6MDcgbWt1
c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSByYWRlb25fYXRybV9nZXRfYmlvczogcGNpX2ZpbmRf
Y2xhc3MoKSBmb3VuZDogMDoyOjA6MCwgdmVuZG9yPTEwMDIsIGRldmljZT05NTRmCkRlYyAgOSAx
MDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIHJhZGVvbl9hdHJtX2dldF9iaW9z
OiBHZXQgQUNQSSBkZXZpY2UgaGFuZGxlCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6
IGluZm86IFtkcm1dIHJhZGVvbl9hY3BpX3ZmY3RfYmlvczogPT09PiBUcnkgVkZDVC4uLgpEZWMg
IDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSByYWRlb25fYWNwaV92ZmN0
X2Jpb3M6IEdldCAiVkZDVCIgQUNQSSB0YWJsZQpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2Vy
bmVsOiBpbmZvOiBbZHJtXSByYWRlb25fYWNwaV92ZmN0X2Jpb3M6IEZhaWxlZCB0byBnZXQgIlZG
Q1QiIHRhYmxlOiBBRV9OT1RfRk9VTkQKRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDog
aW5mbzogW2RybV0gaWdwX3JlYWRfYmlvc19mcm9tX3ZyYW06ID09PT4gVHJ5IElHUCdzIFZSQU0u
Li4KRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gaWdwX3JlYWRf
Ymlvc19mcm9tX3ZyYW06IFZSQU0gYmFzZSBhZGRyZXNzOiAweGUwMDAwMDAwCkRlYyAgOSAxMDoz
MTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIGlncF9yZWFkX2Jpb3NfZnJvbV92cmFt
OiBNYXAgYWRkcmVzczogMHhmZmZmZjgwMGUwMDAwMDAwICgyNjIxNDQgYnl0ZXMpCkRlYyAgOSAx
MDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIGlncF9yZWFkX2Jpb3NfZnJvbV92
cmFtOiBJbmNvcnJlY3QgQklPUyBzaWduYXR1cmU6IDB4MjA3MApEZWMgIDkgMTA6MzE6MDcgbWt1
c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSByYWRlb25fcmVhZF9iaW9zOiA9PT0+IFRyeSBQQ0kg
RXhwYW5zaW9uIFJPTS4uLgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBb
ZHJtXSByYWRlb25fcmVhZF9iaW9zOiBNYXAgYWRkcmVzczogMHhmZmZmZjgwMDAwMGMwMDAwICgx
MzEwNzIgYnl0ZXMpCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1d
IEFUT00gQklPUzogOTU0Ri4xMS4yMi42LjAuQVMwNApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIg
a2VybmVsOiBkcm1uMDogaW5mbzogVlJBTTogMTAyNE0gMHgwMDAwMDAwMDAwMDAwMDAwIC0gMHgw
MDAwMDAwMDNGRkZGRkZGICgxMDI0TSB1c2VkKQpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2Vy
bmVsOiBkcm1uMDogaW5mbzogR1RUOiA1MTJNIDB4MDAwMDAwMDA0MDAwMDAwMCAtIDB4MDAwMDAw
MDA1RkZGRkZGRgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBE
ZXRlY3RlZCBWUkFNIFJBTT0xMDI0TSwgQkFSPTI1Nk0KRGVjICA5IDEwOjMxOjA3IG1rdXNobmly
IGtlcm5lbDogaW5mbzogW2RybV0gUkFNIHdpZHRoIDY0Yml0cyBERFIKRGVjICA5IDEwOjMxOjA3
IG1rdXNobmlyIGtlcm5lbDogW1RUTV0gWm9uZSAga2VybmVsOiBBdmFpbGFibGUgZ3JhcGhpY3Mg
bWVtb3J5OiAxNjcyMTI2NCBraUIKRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogW1RU
TV0gWm9uZSAgIGRtYTMyOiBBdmFpbGFibGUgZ3JhcGhpY3MgbWVtb3J5OiAyMDk3MTUyIGtpQgpE
ZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBbVFRNXSBJbml0aWFsaXppbmcgcG9vbCBh
bGxvY2F0b3IKRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gcmFk
ZW9uOiAxMDI0TSBvZiBWUkFNIG1lbW9yeSByZWFkeQpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIg
a2VybmVsOiBpbmZvOiBbZHJtXSByYWRlb246IDUxMk0gb2YgR1RUIG1lbW9yeSByZWFkeS4KRGVj
ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gU3VwcG9ydHMgdmJsYW5r
IHRpbWVzdGFtcCBjYWNoaW5nIFJldiAxICgxMC4xMC4yMDEwKS4KRGVjICA5IDEwOjMxOjA3IG1r
dXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gRHJpdmVyIHN1cHBvcnRzIHByZWNpc2UgdmJsYW5r
IHRpbWVzdGFtcCBxdWVyeS4KRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzog
W2RybV0gcmFkZW9uOiBpcnEgaW5pdGlhbGl6ZWQuCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBr
ZXJuZWw6IGluZm86IFtkcm1dIEdBUlQ6IG51bSBjcHUgcGFnZXMgMTMxMDcyLCBudW0gZ3B1IHBh
Z2VzIDEzMTA3MgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBw
cm9iaW5nIGdlbiAyIGNhcHMgZm9yIGRldmljZSA4MDg2OjNjMDQgPSAzL2UKRGVjICA5IDEwOjMx
OjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gZW5hYmxpbmcgUENJRSBnZW4gMiBsaW5r
IHNwZWVkcywgZGlzYWJsZSB3aXRoIHJhZGVvbi5wY2llX2dlbjI9MApEZWMgIDkgMTA6MzE6MDcg
bWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBMb2FkaW5nIFJWNzEwIE1pY3JvY29kZQpEZWMg
IDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBQQ0lFIEdBUlQgb2YgNTEy
TSBlbmFibGVkICh0YWJsZSBhdCAweDAwMDAwMDAwMDAwNDAwMDApLgpEZWMgIDkgMTA6MzE6MDcg
bWt1c2huaXIga2VybmVsOiBkcm1uMDogaW5mbzogV0IgZW5hYmxlZApEZWMgIDkgMTA6MzE6MDcg
bWt1c2huaXIga2VybmVsOiBkcm1uMDogaW5mbzogZmVuY2UgZHJpdmVyIG9uIHJpbmcgMCB1c2Ug
Z3B1IGFkZHIgMHgwMDAwMDAwMDQwMDAwYzAwIGFuZCBjcHUgYWRkciAweDB4ZmZmZmY4MDE1YTUw
M2MwMApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBkcm1uMDogaW5mbzogZmVuY2Ug
ZHJpdmVyIG9uIHJpbmcgMyB1c2UgZ3B1IGFkZHIgMHgwMDAwMDAwMDQwMDAwYzBjIGFuZCBjcHUg
YWRkciAweDB4ZmZmZmY4MDE1YTUwM2MwYwpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVs
OiBpbmZvOiBbZHJtXSByaW5nIHRlc3Qgb24gMCBzdWNjZWVkZWQgaW4gMSB1c2VjcwpEZWMgIDkg
MTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSByaW5nIHRlc3Qgb24gMyBzdWNj
ZWVkZWQgaW4gMSB1c2VjcwpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBb
ZHJtXSBpYiB0ZXN0IG9uIHJpbmcgMCBzdWNjZWVkZWQgaW4gMCB1c2VjcwpEZWMgIDkgMTA6MzE6
MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBpYiB0ZXN0IG9uIHJpbmcgMyBzdWNjZWVk
ZWQgaW4gMCB1c2VjcwpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJt
XSByYWRlb25fZGV2aWNlX2luaXQ6IFRha2luZyBvdmVyIHRoZSBmaWN0aXRpb3VzIHJhbmdlIDB4
ZTAwMDAwMDAtMHhmMDAwMDAwMApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWNi
dXMwOiA8UGhpbGlwcyBJMkMgYnVzPiBvbiBpaWNiYjAgYWRkciAweGZmCkRlYyAgOSAxMDozMTow
NyBta3VzaG5pciBrZXJuZWw6IGlpYzA6IDxJMkMgZ2VuZXJpYyBJL08+IG9uIGlpY2J1czAKRGVj
ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaWljYnVzMTogPFBoaWxpcHMgSTJDIGJ1cz4g
b24gaWljYmIxIGFkZHIgMHhmZgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWMx
OiA8STJDIGdlbmVyaWMgSS9PPiBvbiBpaWNidXMxCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBr
ZXJuZWw6IGlpY2J1czI6IDxQaGlsaXBzIEkyQyBidXM+IG9uIGlpY2JiMiBhZGRyIDB4ZmYKRGVj
ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaWljMjogPEkyQyBnZW5lcmljIEkvTz4gb24g
aWljYnVzMgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWNidXMzOiA8UGhpbGlw
cyBJMkMgYnVzPiBvbiBpaWNiYjMgYWRkciAweGZmCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBr
ZXJuZWw6IGlpYzM6IDxJMkMgZ2VuZXJpYyBJL08+IG9uIGlpY2J1czMKRGVjICA5IDEwOjMxOjA3
IG1rdXNobmlyIGtlcm5lbDogaWljYnVzNDogPFBoaWxpcHMgSTJDIGJ1cz4gb24gaWljYmI0IGFk
ZHIgMHhmZgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWM0OiA8STJDIGdlbmVy
aWMgSS9PPiBvbiBpaWNidXM0CkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGlpY2J1
czU6IDxQaGlsaXBzIEkyQyBidXM+IG9uIGlpY2JiNSBhZGRyIDB4ZmYKRGVjICA5IDEwOjMxOjA3
IG1rdXNobmlyIGtlcm5lbDogaWljNTogPEkyQyBnZW5lcmljIEkvTz4gb24gaWljYnVzNQpEZWMg
IDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpaWNidXM2OiA8UGhpbGlwcyBJMkMgYnVzPiBv
biBpaWNiYjYgYWRkciAweGZmCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGlpYzY6
IDxJMkMgZ2VuZXJpYyBJL08+IG9uIGlpY2J1czYKRGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtl
cm5lbDogaW5mbzogW2RybV0gUmFkZW9uIERpc3BsYXkgQ29ubmVjdG9ycwpEZWMgIDkgMTA6MzE6
MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBDb25uZWN0b3IgMDoKRGVjICA5IDEwOjMx
OjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBIRE1JLUEtMQpEZWMgIDkgMTA6MzE6
MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgIEhQRDEKRGVjICA5IDEwOjMxOjA3IG1r
dXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBEREM6IDB4N2U1MCAweDdlNTAgMHg3ZTU0IDB4
N2U1NCAweDdlNTggMHg3ZTU4IDB4N2U1YyAweDdlNWMKRGVjICA5IDEwOjMxOjA3IG1rdXNobmly
IGtlcm5lbDogaW5mbzogW2RybV0gICBFbmNvZGVyczoKRGVjICA5IDEwOjMxOjA3IG1rdXNobmly
IGtlcm5lbDogaW5mbzogW2RybV0gICAgIERGUDE6IElOVEVSTkFMX1VOSVBIWQpEZWMgIDkgMTA6
MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBDb25uZWN0b3IgMToKRGVjICA5IDEw
OjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBWR0EtMQpEZWMgIDkgMTA6MzE6
MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgIEREQzogMHg3ZTQwIDB4N2U0MCAweDdl
NDQgMHg3ZTQ0IDB4N2U0OCAweDdlNDggMHg3ZTRjIDB4N2U0YwpEZWMgIDkgMTA6MzE6MDcgbWt1
c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgIEVuY29kZXJzOgpEZWMgIDkgMTA6MzE6MDcgbWt1
c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgICAgQ1JUMjogSU5URVJOQUxfS0xEU0NQX0RBQzIK
RGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gQ29ubmVjdG9yIDI6
CkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dICAgRFZJLUktMQpE
ZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSAgIEhQRDQKRGVjICA5
IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBEREM6IDB4N2YxMCAweDdm
MTAgMHg3ZjE0IDB4N2YxNCAweDdmMTggMHg3ZjE4IDB4N2YxYyAweDdmMWMKRGVjICA5IDEwOjMx
OjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICBFbmNvZGVyczoKRGVjICA5IDEwOjMx
OjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICAgIENSVDE6IElOVEVSTkFMX0tMRFND
UF9EQUMxCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dICAgICBE
RlAyOiBJTlRFUk5BTF9VTklQSFkyCkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGlu
Zm86IFtkcm1dIEludGVybmFsIHRoZXJtYWwgY29udHJvbGxlciB3aXRob3V0IGZhbiBjb250cm9s
CkRlYyAgOSAxMDozMTowNyBta3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIHJhZGVvbjogcG93
ZXIgbWFuYWdlbWVudCBpbml0aWFsaXplZApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVs
OiBpbmZvOiBbZHJtXSBmYiBtYXBwYWJsZSBhdCAweEUwMTQyMDAwCkRlYyAgOSAxMDozMTowNyBt
a3VzaG5pciBrZXJuZWw6IGluZm86IFtkcm1dIHZyYW0gYXBwZXIgYXQgMHhFMDAwMDAwMApEZWMg
IDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJtXSBzaXplIDgyOTQ0MDAKRGVj
ICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gZmIgZGVwdGggaXMgMjQK
RGVjICA5IDEwOjMxOjA3IG1rdXNobmlyIGtlcm5lbDogaW5mbzogW2RybV0gICAgcGl0Y2ggaXMg
NzY4MApEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBlcnJvcjogW2RybTpwaWQxNzM4
OmRybV9mYl9oZWxwZXJfc2luZ2xlX2ZiX3Byb2JlXSAqRVJST1IqIEZhaWxlZCB0byBhdHRhY2gg
ZmJkIGRldmljZTogNgpEZWMgIDkgMTA6MzE6MDcgbWt1c2huaXIga2VybmVsOiBpbmZvOiBbZHJt
XSBJbml0aWFsaXplZCByYWRlb24gMi4yOS4wIDIwMDgwNTI4Cg==
--e89a8f2356bdd4e41304ed1635fa
Content-Type: application/octet-stream; name="pciconf.lvbce"
Content-Disposition: attachment; filename="pciconf.lvbce"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hozhlpir2
aG9zdGIwQHBjaTA6MDowOjA6CWNsYXNzPTB4MDYwMDAwIGNhcmQ9MHg1MDAwMTQ1OCBjaGlwPTB4
M2MwMDgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9y
YXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBETUkyJwogICAgY2xhc3Mg
ICAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IEhPU1QtUENJCiAgICBjYXAgMTBbOTBdID0g
UENJLUV4cHJlc3MgMiByb290IHBvcnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MCh4NCkKICAg
ICAgICAgICAgICAgICBzcGVlZCAwLjAoMi41KSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAgIGNh
cCAwMVtlMF0gPSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKICAgIGVj
YXAgMDAwYlsxMDBdID0gVmVuZG9yIDEgSUQgMgogICAgZWNhcCAwMDBiWzE0NF0gPSBWZW5kb3Ig
MSBJRCA0CiAgICBlY2FwIDAwMGJbMWQwXSA9IFZlbmRvciAxIElEIDMKICAgIGVjYXAgMDAwYlsy
ODBdID0gVmVuZG9yIDEgSUQgNAogICAgUENJIGVycm9ycyA9IFNlbnQgVGFyZ2V0LUFib3J0CnBj
aWIxQHBjaTA6MDoxOjA6CWNsYXNzPTB4MDYwNDAwIGNhcmQ9MHg1MDAwMTQ1OCBjaGlwPTB4M2Mw
MjgwODYgcmV2PTB4MDcgaGRyPTB4MDEKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRp
b24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBJSU8gUENJIEV4cHJlc3MgUm9v
dCBQb3J0IDFhJwogICAgY2xhc3MgICAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IFBDSS1Q
Q0kKICAgIGNhcCAwZFs0MF0gPSBQQ0kgQnJpZGdlIGNhcmQ9MHg1MDAwMTQ1OAogICAgY2FwIDA1
WzYwXSA9IE1TSSBzdXBwb3J0cyAyIG1lc3NhZ2VzLCB2ZWN0b3IgbWFza3MgCiAgICBjYXAgMTBb
OTBdID0gUENJLUV4cHJlc3MgMiByb290IHBvcnQgc2xvdCBtYXggZGF0YSAxMjgoMjU2KSBsaW5r
IHgwKHg4KQogICAgICAgICAgICAgICAgIHNwZWVkIDAuMCg4LjApIEFTUE0gZGlzYWJsZWQoTDEp
CiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQw
CiAgICBlY2FwIDAwMGJbMTAwXSA9IFZlbmRvciAxIElEIDIKICAgIGVjYXAgMDAwZFsxMTBdID0g
QUNTIDEKICAgIGVjYXAgMDAwMVsxNDhdID0gQUVSIDEgMCBmYXRhbCAwIG5vbi1mYXRhbCAwIGNv
cnJlY3RlZAogICAgZWNhcCAwMDBiWzFkMF0gPSBWZW5kb3IgMSBJRCAzCiAgICBlY2FwIDAwMTlb
MjUwXSA9IFBDSWUgU2VjIDEgbGFuZSBlcnJvcnMgMAogICAgZWNhcCAwMDBiWzI4MF0gPSBWZW5k
b3IgMSBJRCA0Cm5vbmUwQHBjaTA6MDoxOjI6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAw
MCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQK
ICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUxQHBjaTA6MDoxOjM6
CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAg
aGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRp
c3BsYXkgZGV2aWNlCm5vbmUyQHBjaTA6MDoxOjQ6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAw
MDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBv
bGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUzQHBjaTA6MDox
OjU6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4
MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdB
IGRpc3BsYXkgZGV2aWNlCm5vbmU0QHBjaTA6MDoxOjY6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgw
MDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAg
PSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmU1QHBjaTA6
MDoxOjc6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2
PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24t
VkdBIGRpc3BsYXkgZGV2aWNlCnBjaWIyQHBjaTA6MDoyOjA6CWNsYXNzPTB4MDYwNDAwIGNhcmQ9
MHg1MDAwMTQ1OCBjaGlwPTB4M2MwNDgwODYgcmV2PTB4MDcgaGRyPTB4MDEKICAgIHZlbmRvciAg
ICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBp
NyBJSU8gUENJIEV4cHJlc3MgUm9vdCBQb3J0IDJhJwogICAgY2xhc3MgICAgICA9IGJyaWRnZQog
ICAgc3ViY2xhc3MgICA9IFBDSS1QQ0kKICAgIGNhcCAwZFs0MF0gPSBQQ0kgQnJpZGdlIGNhcmQ9
MHg1MDAwMTQ1OAogICAgY2FwIDA1WzYwXSA9IE1TSSBzdXBwb3J0cyAyIG1lc3NhZ2VzLCB2ZWN0
b3IgbWFza3MgCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IHBvcnQgc2xvdCBt
YXggZGF0YSAxMjgoMjU2KSBsaW5rIHgxNih4MTYpCiAgICAgICAgICAgICAgICAgc3BlZWQgMi41
KDguMCkgQVNQTSBkaXNhYmxlZChMMSkKICAgIGNhcCAwMVtlMF0gPSBwb3dlcnNwZWMgMyAgc3Vw
cG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKICAgIGVjYXAgMDAwYlsxMDBdID0gVmVuZG9yIDEgSUQg
MgogICAgZWNhcCAwMDBkWzExMF0gPSBBQ1MgMQogICAgZWNhcCAwMDAxWzE0OF0gPSBBRVIgMSAw
IGZhdGFsIDAgbm9uLWZhdGFsIDAgY29ycmVjdGVkCiAgICBlY2FwIDAwMGJbMWQwXSA9IFZlbmRv
ciAxIElEIDMKICAgIGVjYXAgMDAxOVsyNTBdID0gUENJZSBTZWMgMSBsYW5lIGVycm9ycyAwCiAg
ICBlY2FwIDAwMGJbMjgwXSA9IFZlbmRvciAxIElEIDQKbm9uZTZAcGNpMDowOjI6NDoJY2xhc3M9
MHgwMDAwMDAgY2FyZD0weDAwMDAwMDAwIGNoaXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9MHgw
MAogICAgY2xhc3MgICAgICA9IG9sZAogICAgc3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxheSBk
ZXZpY2UKbm9uZTdAcGNpMDowOjI6NToJY2xhc3M9MHgwMDAwMDAgY2FyZD0weDAwMDAwMDAwIGNo
aXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9MHgwMAogICAgY2xhc3MgICAgICA9IG9sZAogICAg
c3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxheSBkZXZpY2UKbm9uZThAcGNpMDowOjI6NjoJY2xh
c3M9MHgwMDAwMDAgY2FyZD0weDAwMDAwMDAwIGNoaXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9
MHgwMAogICAgY2xhc3MgICAgICA9IG9sZAogICAgc3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxh
eSBkZXZpY2UKbm9uZTlAcGNpMDowOjI6NzoJY2xhc3M9MHgwMDAwMDAgY2FyZD0weDAwMDAwMDAw
IGNoaXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9MHgwMAogICAgY2xhc3MgICAgICA9IG9sZAog
ICAgc3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxheSBkZXZpY2UKcGNpYjNAcGNpMDowOjM6MDoJ
Y2xhc3M9MHgwNjA0MDAgY2FyZD0weDUwMDAxNDU4IGNoaXA9MHgzYzA4ODA4NiByZXY9MHgwNyBo
ZHI9MHgwMQogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg
ICAgPSAnWGVvbiBFNS9Db3JlIGk3IElJTyBQQ0kgRXhwcmVzcyBSb290IFBvcnQgM2EgaW4gUENJ
IEV4cHJlc3MgTW9kZScKICAgIGNsYXNzICAgICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzICAgPSBQ
Q0ktUENJCiAgICBjYXAgMGRbNDBdID0gUENJIEJyaWRnZSBjYXJkPTB4NTAwMDE0NTgKICAgIGNh
cCAwNVs2MF0gPSBNU0kgc3VwcG9ydHMgMiBtZXNzYWdlcywgdmVjdG9yIG1hc2tzIAogICAgY2Fw
IDEwWzkwXSA9IFBDSS1FeHByZXNzIDIgcm9vdCBwb3J0IHNsb3QgbWF4IGRhdGEgMTI4KDI1Nikg
bGluayB4MCh4MTYpCiAgICAgICAgICAgICAgICAgc3BlZWQgMC4wKDguMCkgQVNQTSBkaXNhYmxl
ZChMMSkKICAgIGNhcCAwMVtlMF0gPSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJl
bnQgRDAKICAgIGVjYXAgMDAwYlsxMDBdID0gVmVuZG9yIDEgSUQgMgogICAgZWNhcCAwMDBkWzEx
MF0gPSBBQ1MgMQogICAgZWNhcCAwMDAxWzE0OF0gPSBBRVIgMSAwIGZhdGFsIDAgbm9uLWZhdGFs
IDAgY29ycmVjdGVkCiAgICBlY2FwIDAwMGJbMWQwXSA9IFZlbmRvciAxIElEIDMKICAgIGVjYXAg
MDAxOVsyNTBdID0gUENJZSBTZWMgMSBsYW5lIGVycm9ycyAwCiAgICBlY2FwIDAwMGJbMjgwXSA9
IFZlbmRvciAxIElEIDQKbm9uZTEwQHBjaTA6MDozOjQ6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgw
MDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAg
PSBvbGQKICAgIHN1YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUxMUBwY2kw
OjA6Mzo1OgljbGFzcz0weDAwMDAwMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDAwMDAwMDAwIHJl
dj0weDAwIGhkcj0weDAwCiAgICBjbGFzcyAgICAgID0gb2xkCiAgICBzdWJjbGFzcyAgID0gbm9u
LVZHQSBkaXNwbGF5IGRldmljZQpub25lMTJAcGNpMDowOjM6NjoJY2xhc3M9MHgwMDAwMDAgY2Fy
ZD0weDAwMDAwMDAwIGNoaXA9MHgwMDAwMDAwMCByZXY9MHgwMCBoZHI9MHgwMAogICAgY2xhc3Mg
ICAgICA9IG9sZAogICAgc3ViY2xhc3MgICA9IG5vbi1WR0EgZGlzcGxheSBkZXZpY2UKbm9uZTEz
QHBjaTA6MDozOjc6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAw
MDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAg
PSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUxNEBwY2kwOjA6NDowOgljbGFzcz0weDA4ODAw
MCBjYXJkPTB4M2MyMDgwODYgY2hpcD0weDNjMjA4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2
ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1
L0NvcmUgaTcgRE1BIENoYW5uZWwgMCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwK
ICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmY0MDAwMCwg
c2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVz
c2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBt
YXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBv
aW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJz
cGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUxNUBwY2kwOjA6NDoxOgljbGFz
cz0weDA4ODAwMCBjYXJkPTB4M2MyMTgwODYgY2hpcD0weDNjMjE4MDg2IHJldj0weDA3IGhkcj0w
eDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9
ICdYZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwgMScKICAgIGNsYXNzICAgICAgPSBiYXNlIHBl
cmlwaGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhm
YmYzYzAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBv
cnRzIDEgbWVzc2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0s
IFBCQSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiBy
b290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBd
ID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUxNkBwY2kwOjA6
NDoyOgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2MyMjgwODYgY2hpcD0weDNjMjI4MDg2IHJldj0w
eDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2
aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwgMicKICAgIGNsYXNzICAgICAg
PSBiYXNlIHBlcmlwaGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQs
IGJhc2UgMHhmYmYzODAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1T
SS1YIHN1cHBvcnRzIDEgbWVzc2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEw
WzB4MjAwMF0sIFBCQSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4
cHJlc3MgMiByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBj
YXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUx
N0BwY2kwOjA6NDozOgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2MyMzgwODYgY2hpcD0weDNjMjM4
MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9u
JwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwgMycKICAgIGNs
YXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwg
cmFuZ2UgNjQsIGJhc2UgMHhmYmYzNDAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDEx
WzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVzc2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGlu
IG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBd
ID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAo
eDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50
IEQwCm5vbmUxOEBwY2kwOjA6NDo0OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2MyNDgwODYgY2hp
cD0weDNjMjQ4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENv
cnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwg
NCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBl
IE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmYzMDAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAog
ICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVzc2FnZQogICAgICAgICAgICAgICAg
IFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBj
YXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgp
IGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQz
ICBjdXJyZW50IEQwCm5vbmUxOUBwY2kwOjA6NDo1OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2My
NTgwODYgY2hpcD0weDNjMjU4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0g
J0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgRE1B
IENoYW5uZWwgNScKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGJhciAgIFsx
MF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmYyYzAwMCwgc2l6ZSAxNjM4NCwg
ZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVzc2FnZQogICAgICAg
ICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBtYXAgMHgxMFsweDMw
MDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBvaW50IG1heCBkYXRh
IDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVjIDMgIHN1cHBv
cnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUyMEBwY2kwOjA6NDo2OgljbGFzcz0weDA4ODAwMCBj
YXJkPTB4M2MyNjgwODYgY2hpcD0weDNjMjY4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5k
b3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0Nv
cmUgaTcgRE1BIENoYW5uZWwgNicKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAg
IGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmYyODAwMCwgc2l6
ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRzIDEgbWVzc2Fn
ZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBCQSBpbiBtYXAg
MHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290IGVuZHBvaW50
IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0gcG93ZXJzcGVj
IDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUyMUBwY2kwOjA6NDo3OgljbGFzcz0w
eDA4ODAwMCBjYXJkPTB4M2MyNzgwODYgY2hpcD0weDNjMjc4MDg2IHJldj0weDA3IGhkcj0weDAw
CiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdY
ZW9uIEU1L0NvcmUgaTcgRE1BIENoYW5uZWwgNycKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlw
aGVyYWwKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmYy
NDAwMCwgc2l6ZSAxNjM4NCwgZW5hYmxlZAogICAgY2FwIDExWzgwXSA9IE1TSS1YIHN1cHBvcnRz
IDEgbWVzc2FnZQogICAgICAgICAgICAgICAgIFRhYmxlIGluIG1hcCAweDEwWzB4MjAwMF0sIFBC
QSBpbiBtYXAgMHgxMFsweDMwMDBdCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMiByb290
IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBjYXAgMDFbZTBdID0g
cG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50IEQwCm5vbmUyMkBwY2kwOjA6NTow
OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4NTAwMDE0NTggY2hpcD0weDNjMjg4MDg2IHJldj0weDA3
IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNl
ICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgQWRkcmVzcyBNYXAsIFZUZF9NaXNjLCBTeXN0ZW0gTWFu
YWdlbWVudCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGNhcCAxMFs0MF0g
PSBQQ0ktRXhwcmVzcyAyIHJvb3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MCh4
MCkKbm9uZTIzQHBjaTA6MDo1OjE6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlw
PTB4MDAwMDAwMDAgcmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1
YmNsYXNzICAgPSBub24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUyNEBwY2kwOjA6NToyOgljbGFz
cz0weDA4ODAwMCBjYXJkPTB4NTAwMDE0NTggY2hpcD0weDNjMmE4MDg2IHJldj0weDA3IGhkcj0w
eDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9
ICdYZW9uIEU1L0NvcmUgaTcgQ29udHJvbCBTdGF0dXMgYW5kIEdsb2JhbCBFcnJvcnMnCiAgICBj
bGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3Mg
MiByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCm5vbmUyNUBwY2kw
OjA6NTozOgljbGFzcz0weDAwMDAwMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDAwMDAwMDAwIHJl
dj0weDAwIGhkcj0weDAwCiAgICBjbGFzcyAgICAgID0gb2xkCiAgICBzdWJjbGFzcyAgID0gbm9u
LVZHQSBkaXNwbGF5IGRldmljZQppb2FwaWMwQHBjaTA6MDo1OjQ6CWNsYXNzPTB4MDgwMDIwIGNh
cmQ9MHg1MDAwMTQ1OCBjaGlwPTB4M2MyYzgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRv
ciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29y
ZSBpNyBJL08gQVBJQycKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIHN1YmNs
YXNzICAgPSBpbnRlcnJ1cHQgY29udHJvbGxlcgogICAgYmFyICAgWzEwXSA9IHR5cGUgTWVtb3J5
LCByYW5nZSAzMiwgYmFzZSAweGZiZjRhMDAwLCBzaXplIDQwOTYsIGVuYWJsZWQKICAgIGNhcCAw
MVs2Y10gPSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKbm9uZTI2QHBj
aTA6MDo1OjU6CWNsYXNzPTB4MDAwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4MDAwMDAwMDAg
cmV2PTB4MDAgaGRyPTB4MDAKICAgIGNsYXNzICAgICAgPSBvbGQKICAgIHN1YmNsYXNzICAgPSBu
b24tVkdBIGRpc3BsYXkgZGV2aWNlCm5vbmUyN0BwY2kwOjA6NTo3OgljbGFzcz0weDAwMDAwMCBj
YXJkPTB4MDAwMDAwMDAgY2hpcD0weDAwMDAwMDAwIHJldj0weDAwIGhkcj0weDAwCiAgICBjbGFz
cyAgICAgID0gb2xkCiAgICBzdWJjbGFzcyAgID0gbm9uLVZHQSBkaXNwbGF5IGRldmljZQpwY2li
NEBwY2kwOjA6MTc6MDoJY2xhc3M9MHgwNjA0MDAgY2FyZD0weDUwMDAxNDU4IGNoaXA9MHgxZDNl
ODA4NiByZXY9MHgwNiBoZHI9MHgwMQogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlv
bicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgUENJIEV4cHJlc3Mg
VmlydHVhbCBSb290IFBvcnQnCiAgICBjbGFzcyAgICAgID0gYnJpZGdlCiAgICBzdWJjbGFzcyAg
ID0gUENJLVBDSQogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDIgcm9vdCBwb3J0IG1heCBk
YXRhIDEyOCgxMjgpIGxpbmsgeDEoeDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgMi41KDIuNSkg
QVNQTSBkaXNhYmxlZChMMHMvTDEpCiAgICBjYXAgMDFbODBdID0gcG93ZXJzcGVjIDMgIHN1cHBv
cnRzIEQwIEQzICBjdXJyZW50IEQwCiAgICBjYXAgMGRbODhdID0gUENJIEJyaWRnZSBjYXJkPTB4
NTAwMDE0NTgKICAgIGNhcCAwNVs5MF0gPSBNU0kgc3VwcG9ydHMgMSBtZXNzYWdlIAogICAgZWNh
cCAwMDAxWzEwMF0gPSBBRVIgMSAwIGZhdGFsIDAgbm9uLWZhdGFsIDAgY29ycmVjdGVkCiAgICBl
Y2FwIDAwMGRbMTM4XSA9IEFDUyAxCm5vbmUyOEBwY2kwOjA6MjI6MDoJY2xhc3M9MHgwNzgwMDAg
Y2FyZD0weDFjM2ExNDU4IGNoaXA9MHgxZDNhODA4NiByZXY9MHgwNSBoZHI9MHgwMAogICAgdmVu
ZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkg
c2VyaWVzIGNoaXBzZXQgTUVJIENvbnRyb2xsZXInCiAgICBjbGFzcyAgICAgID0gc2ltcGxlIGNv
bW1zCiAgICBiYXIgICBbMTBdID0gdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmJmNDkw
MDAsIHNpemUgMTYsIGVuYWJsZWQKICAgIGNhcCAwMVs1MF0gPSBwb3dlcnNwZWMgMyAgc3VwcG9y
dHMgRDAgRDMgIGN1cnJlbnQgRDAKICAgIGNhcCAwNVs4Y10gPSBNU0kgc3VwcG9ydHMgMSBtZXNz
YWdlLCA2NCBiaXQgCmVtMEBwY2kwOjA6MjU6MDoJY2xhc3M9MHgwMjAwMDAgY2FyZD0weGUwMDAx
NDU4IGNoaXA9MHgxNTAyODA4NiByZXY9MHgwNiBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJ
bnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnODI1NzlMTSBHaWdhYml0IE5ldHdv
cmsgQ29ubmVjdGlvbicKICAgIGNsYXNzICAgICAgPSBuZXR3b3JrCiAgICBzdWJjbGFzcyAgID0g
ZXRoZXJuZXQKICAgIGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhm
YmYwMDAwMCwgc2l6ZSAxMzEwNzIsIGVuYWJsZWQKICAgIGJhciAgIFsxNF0gPSB0eXBlIE1lbW9y
eSwgcmFuZ2UgMzIsIGJhc2UgMHhmYmY0ODAwMCwgc2l6ZSA0MDk2LCBlbmFibGVkCiAgICBiYXIg
ICBbMThdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhmMDQwLCBzaXplIDMyLCBl
bmFibGVkCiAgICBjYXAgMDFbYzhdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJy
ZW50IEQwCiAgICBjYXAgMDVbZDBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSwgNjQgYml0IGVu
YWJsZWQgd2l0aCAxIG1lc3NhZ2UKICAgIGNhcCAxM1tlMF0gPSBQQ0kgQWR2YW5jZWQgRmVhdHVy
ZXM6IEZMUiBUUAplaGNpMEBwY2kwOjA6MjY6MDoJY2xhc3M9MHgwYzAzMjAgY2FyZD0weDUwMDYx
NDU4IGNoaXA9MHgxZDJkODA4NiByZXY9MHgwNiBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJ
bnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBz
ZXQgVVNCMiBFbmhhbmNlZCBIb3N0IENvbnRyb2xsZXInCiAgICBjbGFzcyAgICAgID0gc2VyaWFs
IGJ1cwogICAgc3ViY2xhc3MgICA9IFVTQgogICAgYmFyICAgWzEwXSA9IHR5cGUgTWVtb3J5LCBy
YW5nZSAzMiwgYmFzZSAweGZiZjQ3MDAwLCBzaXplIDEwMjQsIGVuYWJsZWQKICAgIGNhcCAwMVs1
MF0gPSBwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKICAgIGNhcCAwYVs1
OF0gPSBFSENJIERlYnVnIFBvcnQgYXQgb2Zmc2V0IDB4YTAgaW4gbWFwIDB4MTQKICAgIGNhcCAx
M1s5OF0gPSBQQ0kgQWR2YW5jZWQgRmVhdHVyZXM6IEZMUiBUUApoZGFjMUBwY2kwOjA6Mjc6MDoJ
Y2xhc3M9MHgwNDAzMDAgY2FyZD0weGEwMDIxNDU4IGNoaXA9MHgxZDIwODA4NiByZXY9MHgwNiBo
ZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg
ICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgSGlnaCBEZWZpbml0aW9uIEF1ZGlvIENvbnRy
b2xsZXInCiAgICBjbGFzcyAgICAgID0gbXVsdGltZWRpYQogICAgc3ViY2xhc3MgICA9IEhEQQog
ICAgYmFyICAgWzEwXSA9IHR5cGUgTWVtb3J5LCByYW5nZSA2NCwgYmFzZSAweGZiZjIwMDAwLCBz
aXplIDE2Mzg0LCBlbmFibGVkCiAgICBjYXAgMDFbNTBdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRz
IEQwIEQzICBjdXJyZW50IEQwCiAgICBjYXAgMDVbNjBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2Fn
ZSwgNjQgYml0IGVuYWJsZWQgd2l0aCAxIG1lc3NhZ2UKICAgIGNhcCAxMFs3MF0gPSBQQ0ktRXhw
cmVzcyAxIHJvb3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgRkxSIGxpbmsgeDAoeDApCiAg
ICBlY2FwIDAwMDJbMTAwXSA9IFZDIDEgbWF4IFZDMQogICAgZWNhcCAwMDA1WzEzMF0gPSBSb290
IENvbXBsZXggTGluayBEZWNsYXJhdGlvbiAxCnBjaWI1QHBjaTA6MDoyODowOgljbGFzcz0weDA2
MDQwMCBjYXJkPTB4NTAwMTE0NTggY2hpcD0weDFkMTA4MDg2IHJldj0weGI2IGhkcj0weDAxCiAg
ICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdDNjAw
L1g3OSBzZXJpZXMgY2hpcHNldCBQQ0kgRXhwcmVzcyBSb290IFBvcnQgMScKICAgIGNsYXNzICAg
ICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzICAgPSBQQ0ktUENJCiAgICBjYXAgMTBbNDBdID0gUENJ
LUV4cHJlc3MgMiByb290IHBvcnQgc2xvdCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgxKHgxKQog
ICAgICAgICAgICAgICAgIHNwZWVkIDUuMCg1LjApCiAgICBjYXAgMDVbODBdID0gTVNJIHN1cHBv
cnRzIDEgbWVzc2FnZSAKICAgIGNhcCAwZFs5MF0gPSBQQ0kgQnJpZGdlIGNhcmQ9MHg1MDAxMTQ1
OAogICAgY2FwIDAxW2EwXSA9IHBvd2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBE
MApwY2liNkBwY2kwOjA6Mjg6MToJY2xhc3M9MHgwNjA0MDAgY2FyZD0weDUwMDExNDU4IGNoaXA9
MHgxZDEyODA4NiByZXY9MHhiNiBoZHI9MHgwMQogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jw
b3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgUENJIEV4
cHJlc3MgUm9vdCBQb3J0IDInCiAgICBjbGFzcyAgICAgID0gYnJpZGdlCiAgICBzdWJjbGFzcyAg
ID0gUENJLVBDSQogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDIgcm9vdCBwb3J0IHNsb3Qg
bWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MSh4MSkKICAgICAgICAgICAgICAgICBzcGVlZCA1LjAo
NS4wKQogICAgY2FwIDA1WzgwXSA9IE1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UgCiAgICBjYXAgMGRb
OTBdID0gUENJIEJyaWRnZSBjYXJkPTB4NTAwMTE0NTgKICAgIGNhcCAwMVthMF0gPSBwb3dlcnNw
ZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKcGNpYjdAcGNpMDowOjI4OjI6CWNsYXNz
PTB4MDYwNDAwIGNhcmQ9MHg1MDAxMTQ1OCBjaGlwPTB4MWQxNDgwODYgcmV2PTB4YjYgaGRyPTB4
MDEKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0g
J0M2MDAvWDc5IHNlcmllcyBjaGlwc2V0IFBDSSBFeHByZXNzIFJvb3QgUG9ydCAzJwogICAgY2xh
c3MgICAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IFBDSS1QQ0kKICAgIGNhcCAxMFs0MF0g
PSBQQ0ktRXhwcmVzcyAyIHJvb3QgcG9ydCBzbG90IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDEo
eDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgNS4wKDUuMCkKICAgIGNhcCAwNVs4MF0gPSBNU0kg
c3VwcG9ydHMgMSBtZXNzYWdlIAogICAgY2FwIDBkWzkwXSA9IFBDSSBCcmlkZ2UgY2FyZD0weDUw
MDExNDU4CiAgICBjYXAgMDFbYTBdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJy
ZW50IEQwCnBjaWI4QHBjaTA6MDoyODozOgljbGFzcz0weDA2MDQwMCBjYXJkPTB4NTAwMTE0NTgg
Y2hpcD0weDFkMTY4MDg2IHJldj0weGI2IGhkcj0weDAxCiAgICB2ZW5kb3IgICAgID0gJ0ludGVs
IENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdDNjAwL1g3OSBzZXJpZXMgY2hpcHNldCBQ
Q0kgRXhwcmVzcyBSb290IFBvcnQgNCcKICAgIGNsYXNzICAgICAgPSBicmlkZ2UKICAgIHN1YmNs
YXNzICAgPSBQQ0ktUENJCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMiByb290IHBvcnQg
c2xvdCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgxKHgxKQogICAgICAgICAgICAgICAgIHNwZWVk
IDIuNSg1LjApCiAgICBjYXAgMDVbODBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSAKICAgIGNh
cCAwZFs5MF0gPSBQQ0kgQnJpZGdlIGNhcmQ9MHg1MDAxMTQ1OAogICAgY2FwIDAxW2EwXSA9IHBv
d2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMApwY2liOUBwY2kwOjA6Mjg6NToJ
Y2xhc3M9MHgwNjA0MDAgY2FyZD0weDUwMDExNDU4IGNoaXA9MHgxZDFhODA4NiByZXY9MHhiNiBo
ZHI9MHgwMQogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg
ICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgUENJIEV4cHJlc3MgUm9vdCBQb3J0IDYnCiAg
ICBjbGFzcyAgICAgID0gYnJpZGdlCiAgICBzdWJjbGFzcyAgID0gUENJLVBDSQogICAgY2FwIDEw
WzQwXSA9IFBDSS1FeHByZXNzIDIgcm9vdCBwb3J0IHNsb3QgbWF4IGRhdGEgMTI4KDEyOCkgbGlu
ayB4MSh4MSkKICAgICAgICAgICAgICAgICBzcGVlZCA1LjAoNS4wKQogICAgY2FwIDA1WzgwXSA9
IE1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UgCiAgICBjYXAgMGRbOTBdID0gUENJIEJyaWRnZSBjYXJk
PTB4NTAwMTE0NTgKICAgIGNhcCAwMVthMF0gPSBwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMg
IGN1cnJlbnQgRDAKICAgIFBDSSBlcnJvcnMgPSBTZW50IFRhcmdldC1BYm9ydAogIFBDSS1lIGVy
cm9ycyA9IE5vbi1GYXRhbCBFcnJvciBEZXRlY3RlZApwY2liMTBAcGNpMDowOjI4OjY6CWNsYXNz
PTB4MDYwNDAwIGNhcmQ9MHg1MDAxMTQ1OCBjaGlwPTB4MWQxYzgwODYgcmV2PTB4YjYgaGRyPTB4
MDEKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0g
J0M2MDAvWDc5IHNlcmllcyBjaGlwc2V0IFBDSSBFeHByZXNzIFJvb3QgUG9ydCA3JwogICAgY2xh
c3MgICAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IFBDSS1QQ0kKICAgIGNhcCAxMFs0MF0g
PSBQQ0ktRXhwcmVzcyAyIHJvb3QgcG9ydCBzbG90IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDEo
eDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgNS4wKDUuMCkKICAgIGNhcCAwNVs4MF0gPSBNU0kg
c3VwcG9ydHMgMSBtZXNzYWdlIAogICAgY2FwIDBkWzkwXSA9IFBDSSBCcmlkZ2UgY2FyZD0weDUw
MDExNDU4CiAgICBjYXAgMDFbYTBdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJy
ZW50IEQwCiAgICBQQ0kgZXJyb3JzID0gU2VudCBUYXJnZXQtQWJvcnQKICBQQ0ktZSBlcnJvcnMg
PSBOb24tRmF0YWwgRXJyb3IgRGV0ZWN0ZWQKZWhjaTFAcGNpMDowOjI5OjA6CWNsYXNzPTB4MGMw
MzIwIGNhcmQ9MHg1MDA2MTQ1OCBjaGlwPTB4MWQyNjgwODYgcmV2PTB4MDYgaGRyPTB4MDAKICAg
IHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ0M2MDAv
WDc5IHNlcmllcyBjaGlwc2V0IFVTQjIgRW5oYW5jZWQgSG9zdCBDb250cm9sbGVyJwogICAgY2xh
c3MgICAgICA9IHNlcmlhbCBidXMKICAgIHN1YmNsYXNzICAgPSBVU0IKICAgIGJhciAgIFsxMF0g
PSB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmYmY0NjAwMCwgc2l6ZSAxMDI0LCBlbmFi
bGVkCiAgICBjYXAgMDFbNTBdID0gcG93ZXJzcGVjIDIgIHN1cHBvcnRzIEQwIEQzICBjdXJyZW50
IEQwCiAgICBjYXAgMGFbNThdID0gRUhDSSBEZWJ1ZyBQb3J0IGF0IG9mZnNldCAweGEwIGluIG1h
cCAweDE0CiAgICBjYXAgMTNbOThdID0gUENJIEFkdmFuY2VkIEZlYXR1cmVzOiBGTFIgVFAKcGNp
YjExQHBjaTA6MDozMDowOgljbGFzcz0weDA2MDQwMSBjYXJkPTB4NTAwMTE0NTggY2hpcD0weDI0
NGU4MDg2IHJldj0weGE2IGhkcj0weDAxCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0
aW9uJwogICAgZGV2aWNlICAgICA9ICc4MjgwMSBQQ0kgQnJpZGdlJwogICAgY2xhc3MgICAgICA9
IGJyaWRnZQogICAgc3ViY2xhc3MgICA9IFBDSS1QQ0kKICAgIGNhcCAwZFs1MF0gPSBQQ0kgQnJp
ZGdlIGNhcmQ9MHg1MDAxMTQ1OAppc2FiMEBwY2kwOjA6MzE6MDoJY2xhc3M9MHgwNjAxMDAgY2Fy
ZD0weDUwMDExNDU4IGNoaXA9MHgxZDQxODA4NiByZXY9MHgwNiBoZHI9MHgwMAogICAgdmVuZG9y
ICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2Vy
aWVzIGNoaXBzZXQgTFBDIENvbnRyb2xsZXInCiAgICBjbGFzcyAgICAgID0gYnJpZGdlCiAgICBz
dWJjbGFzcyAgID0gUENJLUlTQQogICAgY2FwIDA5W2UwXSA9IHZlbmRvciAobGVuZ3RoIDEyKSBJ
bnRlbCBjYXAgMSB2ZXJzaW9uIDAKCQkgZmVhdHVyZXM6IEFNVCwgNCBQQ0ktZSB4MSBzbG90cwph
aGNpM0BwY2kwOjA6MzE6MjoJY2xhc3M9MHgwMTA2MDEgY2FyZD0weGIwMDIxNDU4IGNoaXA9MHgx
ZDAyODA4NiByZXY9MHgwNiBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3Jh
dGlvbicKICAgIGRldmljZSAgICAgPSAnQzYwMC9YNzkgc2VyaWVzIGNoaXBzZXQgNi1Qb3J0IFNB
VEEgQUhDSSBDb250cm9sbGVyJwogICAgY2xhc3MgICAgICA9IG1hc3Mgc3RvcmFnZQogICAgc3Vi
Y2xhc3MgICA9IFNBVEEKICAgIGJhciAgIFsxMF0gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwg
YmFzZSAweGYwOTAsIHNpemUgOCwgZW5hYmxlZAogICAgYmFyICAgWzE0XSA9IHR5cGUgSS9PIFBv
cnQsIHJhbmdlIDMyLCBiYXNlIDB4ZjA4MCwgc2l6ZSA0LCBlbmFibGVkCiAgICBiYXIgICBbMThd
ID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhmMDcwLCBzaXplIDgsIGVuYWJsZWQK
ICAgIGJhciAgIFsxY10gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGYwNjAsIHNp
emUgNCwgZW5hYmxlZAogICAgYmFyICAgWzIwXSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBi
YXNlIDB4ZjAyMCwgc2l6ZSAzMiwgZW5hYmxlZAogICAgYmFyICAgWzI0XSA9IHR5cGUgTWVtb3J5
LCByYW5nZSAzMiwgYmFzZSAweGZiZjQ1MDAwLCBzaXplIDIwNDgsIGVuYWJsZWQKICAgIGNhcCAw
NVs4MF0gPSBNU0kgc3VwcG9ydHMgMSBtZXNzYWdlIGVuYWJsZWQgd2l0aCAxIG1lc3NhZ2UKICAg
IGNhcCAwMVs3MF0gPSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKICAg
IGNhcCAxMlthOF0gPSBTQVRBIEluZGV4LURhdGEgUGFpcgogICAgY2FwIDEzW2IwXSA9IFBDSSBB
ZHZhbmNlZCBGZWF0dXJlczogRkxSIFRQCmljaHNtYjBAcGNpMDowOjMxOjM6CWNsYXNzPTB4MGMw
NTAwIGNhcmQ9MHg1MDAxMTQ1OCBjaGlwPTB4MWQyMjgwODYgcmV2PTB4MDYgaGRyPTB4MDAKICAg
IHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ0M2MDAv
WDc5IHNlcmllcyBjaGlwc2V0IFNNQnVzIEhvc3QgQ29udHJvbGxlcicKICAgIGNsYXNzICAgICAg
PSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyAgID0gU01CdXMKICAgIGJhciAgIFsxMF0gPSB0eXBl
IE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmY0NDAwMCwgc2l6ZSAyNTYsIGVuYWJsZWQKICAg
IGJhciAgIFsyMF0gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGYwMDAsIHNpemUg
MzIsIGVuYWJsZWQKdmdhcGNpMEBwY2kwOjI6MDowOgljbGFzcz0weDAzMDAwMCBjYXJkPTB4MDM1
NDEwNDMgY2hpcD0weDk1NGYxMDAyIHJldj0weDAwIGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0g
J0FkdmFuY2VkIE1pY3JvIERldmljZXMgW0FNRF0gbmVlIEFUSScKICAgIGRldmljZSAgICAgPSAn
UlY3MTAgW1JhZGVvbiBIRCA0MzUwXScKICAgIGNsYXNzICAgICAgPSBkaXNwbGF5CiAgICBzdWJj
bGFzcyAgID0gVkdBCiAgICBiYXIgICBbMTBdID0gdHlwZSBQcmVmZXRjaGFibGUgTWVtb3J5LCBy
YW5nZSA2NCwgYmFzZSAweGUwMDAwMDAwLCBzaXplIDI2ODQzNTQ1NiwgZW5hYmxlZAogICAgYmFy
ICAgWzE4XSA9IHR5cGUgTWVtb3J5LCByYW5nZSA2NCwgYmFzZSAweGZiZTIwMDAwLCBzaXplIDY1
NTM2LCBlbmFibGVkCiAgICBiYXIgICBbMjBdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJh
c2UgMHhlMDAwLCBzaXplIDI1NiwgZW5hYmxlZAogICAgY2FwIDAxWzUwXSA9IHBvd2Vyc3BlYyAz
ICBzdXBwb3J0cyBEMCBEMSBEMiBEMyAgY3VycmVudCBEMAogICAgY2FwIDEwWzU4XSA9IFBDSS1F
eHByZXNzIDIgbGVnYWN5IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDE2KHgxNikK
ICAgICAgICAgICAgICAgICBzcGVlZCAyLjUoMi41KSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAg
IGNhcCAwNVthMF0gPSBNU0kgc3VwcG9ydHMgMSBtZXNzYWdlLCA2NCBiaXQgCiAgICBlY2FwIDAw
MGJbMTAwXSA9IFZlbmRvciAxIElEIDEKICBQQ0ktZSBlcnJvcnMgPSBOb24tRmF0YWwgRXJyb3Ig
RGV0ZWN0ZWQKICAgICAgICAgICAgICAgICBVbnN1cHBvcnRlZCBSZXF1ZXN0IERldGVjdGVkCmhk
YWMwQHBjaTA6MjowOjE6CWNsYXNzPTB4MDQwMzAwIGNhcmQ9MHhhYTM4MTA0MyBjaGlwPTB4YWEz
ODEwMDIgcmV2PTB4MDAgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnQWR2YW5jZWQgTWljcm8g
RGV2aWNlcyBbQU1EXSBuZWUgQVRJJwogICAgZGV2aWNlICAgICA9ICdSVjcxMC83MzAgSERNSSBB
dWRpbyBbUmFkZW9uIEhEIDQwMDAgc2VyaWVzXScKICAgIGNsYXNzICAgICAgPSBtdWx0aW1lZGlh
CiAgICBzdWJjbGFzcyAgID0gSERBCiAgICBiYXIgICBbMTBdID0gdHlwZSBNZW1vcnksIHJhbmdl
IDY0LCBiYXNlIDB4ZmJlMzAwMDAsIHNpemUgMTYzODQsIGVuYWJsZWQKICAgIGNhcCAwMVs1MF0g
PSBwb3dlcnNwZWMgMyAgc3VwcG9ydHMgRDAgRDEgRDIgRDMgIGN1cnJlbnQgRDAKICAgIGNhcCAx
MFs1OF0gPSBQQ0ktRXhwcmVzcyAyIGxlZ2FjeSBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBs
aW5rIHgxNih4MTYpCiAgICAgICAgICAgICAgICAgc3BlZWQgMi41KDIuNSkgQVNQTSBkaXNhYmxl
ZChMMHMvTDEpCiAgICBjYXAgMDVbYTBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSwgNjQgYml0
IGVuYWJsZWQgd2l0aCAxIG1lc3NhZ2UKICAgIGVjYXAgMDAwYlsxMDBdID0gVmVuZG9yIDEgSUQg
MQogIFBDSS1lIGVycm9ycyA9IE5vbi1GYXRhbCBFcnJvciBEZXRlY3RlZAogICAgICAgICAgICAg
ICAgIFVuc3VwcG9ydGVkIFJlcXVlc3QgRGV0ZWN0ZWQKYWhjaTBAcGNpMDo1OjA6MDoJY2xhc3M9
MHgwMTA2MDEgY2FyZD0weGIwMDAxNDU4IGNoaXA9MHg5MTcyMWI0YiByZXY9MHgxMSBoZHI9MHgw
MAogICAgdmVuZG9yICAgICA9ICdNYXJ2ZWxsIFRlY2hub2xvZ3kgR3JvdXAgTHRkLicKICAgIGRl
dmljZSAgICAgPSAnODhTRTkxNzIgU0FUQSA2R2IvcyBDb250cm9sbGVyJwogICAgY2xhc3MgICAg
ICA9IG1hc3Mgc3RvcmFnZQogICAgc3ViY2xhc3MgICA9IFNBVEEKICAgIGJhciAgIFsxMF0gPSB0
eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGQwNDAsIHNpemUgOCwgZW5hYmxlZAogICAg
YmFyICAgWzE0XSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4ZDAzMCwgc2l6ZSA0
LCBlbmFibGVkCiAgICBiYXIgICBbMThdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2Ug
MHhkMDIwLCBzaXplIDgsIGVuYWJsZWQKICAgIGJhciAgIFsxY10gPSB0eXBlIEkvTyBQb3J0LCBy
YW5nZSAzMiwgYmFzZSAweGQwMTAsIHNpemUgNCwgZW5hYmxlZAogICAgYmFyICAgWzIwXSA9IHR5
cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4ZDAwMCwgc2l6ZSAxNiwgZW5hYmxlZAogICAg
YmFyICAgWzI0XSA9IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwgYmFzZSAweGZiZDEwMDAwLCBzaXpl
IDUxMiwgZW5hYmxlZAogICAgY2FwIDAxWzQwXSA9IHBvd2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBE
MyAgY3VycmVudCBEMAogICAgY2FwIDA1WzUwXSA9IE1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UgZW5h
YmxlZCB3aXRoIDEgbWVzc2FnZQogICAgY2FwIDEwWzcwXSA9IFBDSS1FeHByZXNzIDIgbGVnYWN5
IGVuZHBvaW50IG1heCBkYXRhIDEyOCg1MTIpIGxpbmsgeDEoeDEpCiAgICAgICAgICAgICAgICAg
c3BlZWQgNS4wKDUuMCkgQVNQTSBkaXNhYmxlZChMMHMvTDEpCiAgICBlY2FwIDAwMDFbMTAwXSA9
IEFFUiAxIDAgZmF0YWwgMCBub24tZmF0YWwgMSBjb3JyZWN0ZWQKICBQQ0ktZSBlcnJvcnMgPSBD
b3JyZWN0YWJsZSBFcnJvciBEZXRlY3RlZAogICAgICAgICAgICAgICAgIFVuc3VwcG9ydGVkIFJl
cXVlc3QgRGV0ZWN0ZWQKICAgICBDb3JyZWN0ZWQgPSBBZHZpc29yeSBOb24tRmF0YWwgRXJyb3IK
YWhjaTFAcGNpMDo2OjA6MDoJY2xhc3M9MHgwMTA2MDEgY2FyZD0weGIwMDAxNDU4IGNoaXA9MHg5
MTcyMWI0YiByZXY9MHgxMSBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdNYXJ2ZWxsIFRlY2hu
b2xvZ3kgR3JvdXAgTHRkLicKICAgIGRldmljZSAgICAgPSAnODhTRTkxNzIgU0FUQSA2R2IvcyBD
b250cm9sbGVyJwogICAgY2xhc3MgICAgICA9IG1hc3Mgc3RvcmFnZQogICAgc3ViY2xhc3MgICA9
IFNBVEEKICAgIGJhciAgIFsxMF0gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGMw
NDAsIHNpemUgOCwgZW5hYmxlZAogICAgYmFyICAgWzE0XSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdl
IDMyLCBiYXNlIDB4YzAzMCwgc2l6ZSA0LCBlbmFibGVkCiAgICBiYXIgICBbMThdID0gdHlwZSBJ
L08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhjMDIwLCBzaXplIDgsIGVuYWJsZWQKICAgIGJhciAg
IFsxY10gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweGMwMTAsIHNpemUgNCwgZW5h
YmxlZAogICAgYmFyICAgWzIwXSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4YzAw
MCwgc2l6ZSAxNiwgZW5hYmxlZAogICAgYmFyICAgWzI0XSA9IHR5cGUgTWVtb3J5LCByYW5nZSAz
MiwgYmFzZSAweGZiYzEwMDAwLCBzaXplIDUxMiwgZW5hYmxlZAogICAgY2FwIDAxWzQwXSA9IHBv
d2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMAogICAgY2FwIDA1WzUwXSA9IE1T
SSBzdXBwb3J0cyAxIG1lc3NhZ2UgZW5hYmxlZCB3aXRoIDEgbWVzc2FnZQogICAgY2FwIDEwWzcw
XSA9IFBDSS1FeHByZXNzIDIgbGVnYWN5IGVuZHBvaW50IG1heCBkYXRhIDEyOCg1MTIpIGxpbmsg
eDEoeDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgNS4wKDUuMCkgQVNQTSBkaXNhYmxlZChMMHMv
TDEpCiAgICBlY2FwIDAwMDFbMTAwXSA9IEFFUiAxIDAgZmF0YWwgMCBub24tZmF0YWwgMSBjb3Jy
ZWN0ZWQKICBQQ0ktZSBlcnJvcnMgPSBDb3JyZWN0YWJsZSBFcnJvciBEZXRlY3RlZAogICAgICAg
ICAgICAgICAgIFVuc3VwcG9ydGVkIFJlcXVlc3QgRGV0ZWN0ZWQKICAgICBDb3JyZWN0ZWQgPSBB
ZHZpc29yeSBOb24tRmF0YWwgRXJyb3IKYWhjaTJAcGNpMDo3OjA6MDoJY2xhc3M9MHgwMTA2MDEg
Y2FyZD0weGIwMDAxNDU4IGNoaXA9MHg5MTcyMWI0YiByZXY9MHgxMSBoZHI9MHgwMAogICAgdmVu
ZG9yICAgICA9ICdNYXJ2ZWxsIFRlY2hub2xvZ3kgR3JvdXAgTHRkLicKICAgIGRldmljZSAgICAg
PSAnODhTRTkxNzIgU0FUQSA2R2IvcyBDb250cm9sbGVyJwogICAgY2xhc3MgICAgICA9IG1hc3Mg
c3RvcmFnZQogICAgc3ViY2xhc3MgICA9IFNBVEEKICAgIGJhciAgIFsxMF0gPSB0eXBlIEkvTyBQ
b3J0LCByYW5nZSAzMiwgYmFzZSAweGIwNDAsIHNpemUgOCwgZW5hYmxlZAogICAgYmFyICAgWzE0
XSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4YjAzMCwgc2l6ZSA0LCBlbmFibGVk
CiAgICBiYXIgICBbMThdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhiMDIwLCBz
aXplIDgsIGVuYWJsZWQKICAgIGJhciAgIFsxY10gPSB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwg
YmFzZSAweGIwMTAsIHNpemUgNCwgZW5hYmxlZAogICAgYmFyICAgWzIwXSA9IHR5cGUgSS9PIFBv
cnQsIHJhbmdlIDMyLCBiYXNlIDB4YjAwMCwgc2l6ZSAxNiwgZW5hYmxlZAogICAgYmFyICAgWzI0
XSA9IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwgYmFzZSAweGZiYjEwMDAwLCBzaXplIDUxMiwgZW5h
YmxlZAogICAgY2FwIDAxWzQwXSA9IHBvd2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBEMyAgY3VycmVu
dCBEMAogICAgY2FwIDA1WzUwXSA9IE1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UgZW5hYmxlZCB3aXRo
IDEgbWVzc2FnZQogICAgY2FwIDEwWzcwXSA9IFBDSS1FeHByZXNzIDIgbGVnYWN5IGVuZHBvaW50
IG1heCBkYXRhIDEyOCg1MTIpIGxpbmsgeDEoeDEpCiAgICAgICAgICAgICAgICAgc3BlZWQgNS4w
KDUuMCkgQVNQTSBkaXNhYmxlZChMMHMvTDEpCiAgICBlY2FwIDAwMDFbMTAwXSA9IEFFUiAxIDAg
ZmF0YWwgMCBub24tZmF0YWwgMSBjb3JyZWN0ZWQKICBQQ0ktZSBlcnJvcnMgPSBDb3JyZWN0YWJs
ZSBFcnJvciBEZXRlY3RlZAogICAgICAgICAgICAgICAgIFVuc3VwcG9ydGVkIFJlcXVlc3QgRGV0
ZWN0ZWQKICAgICBDb3JyZWN0ZWQgPSBBZHZpc29yeSBOb24tRmF0YWwgRXJyb3IKZndvaGNpMEBw
Y2kwOjg6MDowOgljbGFzcz0weDBjMDAxMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDM0MDMxMTA2
IHJldj0weDAwIGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ1ZJQSBUZWNobm9sb2dpZXMsIElu
Yy4nCiAgICBkZXZpY2UgICAgID0gJ1ZUNjMxNSBTZXJpZXMgRmlyZXdpcmUgQ29udHJvbGxlcicK
ICAgIGNsYXNzICAgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyAgID0gRmlyZVdpcmUKICAg
IGJhciAgIFsxMF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgNjQsIGJhc2UgMHhmYmExMDAwMCwgc2l6
ZSAyMDQ4LCBlbmFibGVkCiAgICBiYXIgICBbMThdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIs
IGJhc2UgMHhhMDAwLCBzaXplIDI1NiwgZW5hYmxlZAogICAgY2FwIDAxWzUwXSA9IHBvd2Vyc3Bl
YyAzICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMAogICAgY2FwIDA1WzgwXSA9IE1TSSBzdXBw
b3J0cyAxIG1lc3NhZ2UsIDY0IGJpdCwgdmVjdG9yIG1hc2tzIAogICAgY2FwIDEwWzk4XSA9IFBD
SS1FeHByZXNzIDEgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MSh4MSkKICAgICAg
ICAgICAgICAgICBzcGVlZCAyLjUoMi41KSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAgIGVjYXAg
MDAwMVsxMDBdID0gQUVSIDEgMCBmYXRhbCAwIG5vbi1mYXRhbCAxIGNvcnJlY3RlZAogICAgZWNh
cCAwMDAzWzEzMF0gPSBTZXJpYWwgMSAwMDAwMDAwMDAwMDAwMDAwCiAgUENJLWUgZXJyb3JzID0g
Q29ycmVjdGFibGUgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAgICAgICAgICBVbnN1cHBvcnRlZCBS
ZXF1ZXN0IERldGVjdGVkCiAgICAgQ29ycmVjdGVkID0gQWR2aXNvcnkgTm9uLUZhdGFsIEVycm9y
CmF0YXBjaTBAcGNpMDo4OjA6MToJY2xhc3M9MHgwMTAxODUgY2FyZD0weDAwMDAwMDAwIGNoaXA9
MHgwNDE1MTEwNiByZXY9MHhhMCBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdWSUEgVGVjaG5v
bG9naWVzLCBJbmMuJwogICAgZGV2aWNlICAgICA9ICdWVDY0MTUgUEFUQSBJREUgSG9zdCBDb250
cm9sbGVyJwogICAgY2xhc3MgICAgICA9IG1hc3Mgc3RvcmFnZQogICAgc3ViY2xhc3MgICA9IEFU
QQogICAgYmFyICAgWzEwXSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4YTE0MCwg
c2l6ZSA4LCBlbmFibGVkCiAgICBiYXIgICBbMTRdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIs
IGJhc2UgMHhhMTMwLCBzaXplIDQsIGVuYWJsZWQKICAgIGJhciAgIFsxOF0gPSB0eXBlIEkvTyBQ
b3J0LCByYW5nZSAzMiwgYmFzZSAweGExMjAsIHNpemUgOCwgZW5hYmxlZAogICAgYmFyICAgWzFj
XSA9IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4YTExMCwgc2l6ZSA0LCBlbmFibGVk
CiAgICBiYXIgICBbMjBdID0gdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHhhMTAwLCBz
aXplIDE2LCBlbmFibGVkCiAgICBjYXAgMDFbNTBdID0gcG93ZXJzcGVjIDMgIHN1cHBvcnRzIEQw
IEQzICBjdXJyZW50IEQwCiAgICBjYXAgMDVbNzBdID0gTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSwg
NjQgYml0LCB2ZWN0b3IgbWFza3MgCiAgICBjYXAgMTBbOTBdID0gUENJLUV4cHJlc3MgMSBsZWdh
Y3kgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MSh4MSkKICAgICAgICAgICAgICAg
ICBzcGVlZCAyLjUoMi41KSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICBQQ0ktZSBlcnJvcnMgPSBD
b3JyZWN0YWJsZSBFcnJvciBEZXRlY3RlZAogICAgICAgICAgICAgICAgIFVuc3VwcG9ydGVkIFJl
cXVlc3QgRGV0ZWN0ZWQKeGhjaTBAcGNpMDo5OjA6MDoJY2xhc3M9MHgwYzAzMzAgY2FyZD0weDUw
MDcxNDU4IGNoaXA9MHgxMDA5MWI3MyByZXY9MHgwMiBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9
ICdGcmVzY28gTG9naWMnCiAgICBkZXZpY2UgICAgID0gJ0ZMMTAwOSBVU0IgMy4wIEhvc3QgQ29u
dHJvbGxlcicKICAgIGNsYXNzICAgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyAgID0gVVNC
CiAgICBiYXIgICBbMTBdID0gdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmI5MDAwMDAs
IHNpemUgNjU1MzYsIGVuYWJsZWQKICAgIGJhciAgIFsxOF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2Ug
NjQsIGJhc2UgMHhmYjkxMTAwMCwgc2l6ZSA0MDk2LCBlbmFibGVkCiAgICBiYXIgICBbMjBdID0g
dHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmI5MTAwMDAsIHNpemUgNDA5NiwgZW5hYmxl
ZAogICAgY2FwIDAxWzQwXSA9IHBvd2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBEMSBEMyAgY3VycmVu
dCBEMAogICAgY2FwIDA1WzUwXSA9IE1TSSBzdXBwb3J0cyA4IG1lc3NhZ2VzLCA2NCBiaXQgZW5h
YmxlZCB3aXRoIDEgbWVzc2FnZQogICAgY2FwIDEwWzcwXSA9IFBDSS1FeHByZXNzIDIgZW5kcG9p
bnQgbWF4IGRhdGEgMTI4KDUxMikgbGluayB4MSh4MSkKICAgICAgICAgICAgICAgICBzcGVlZCA1
LjAoNS4wKSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAgIGNhcCAxMVtiMF0gPSBNU0ktWCBzdXBw
b3J0cyA4IG1lc3NhZ2VzCiAgICAgICAgICAgICAgICAgVGFibGUgaW4gbWFwIDB4MThbMHgwXSwg
UEJBIGluIG1hcCAweDIwWzB4MF0KICAgIGVjYXAgMDAwMVsxMDBdID0gQUVSIDEgMCBmYXRhbCAy
IG5vbi1mYXRhbCAxIGNvcnJlY3RlZAogICAgUENJIGVycm9ycyA9IFNlbnQgVGFyZ2V0LUFib3J0
CiAgUENJLWUgZXJyb3JzID0gQ29ycmVjdGFibGUgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAgICAg
ICAgICBOb24tRmF0YWwgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAgICAgICAgICBVbnN1cHBvcnRl
ZCBSZXF1ZXN0IERldGVjdGVkCiAgICAgTm9uLWZhdGFsID0gQ29tcGxldGVyIEFib3J0CiAgICAg
ICAgICAgICAgICAgVW5zdXBwb3J0ZWQgUmVxdWVzdAogICAgIENvcnJlY3RlZCA9IEFkdmlzb3J5
IE5vbi1GYXRhbCBFcnJvcgp4aGNpMUBwY2kwOjEwOjA6MDoJY2xhc3M9MHgwYzAzMzAgY2FyZD0w
eDUwMDcxNDU4IGNoaXA9MHgxMDA5MWI3MyByZXY9MHgwMiBoZHI9MHgwMAogICAgdmVuZG9yICAg
ICA9ICdGcmVzY28gTG9naWMnCiAgICBkZXZpY2UgICAgID0gJ0ZMMTAwOSBVU0IgMy4wIEhvc3Qg
Q29udHJvbGxlcicKICAgIGNsYXNzICAgICAgPSBzZXJpYWwgYnVzCiAgICBzdWJjbGFzcyAgID0g
VVNCCiAgICBiYXIgICBbMTBdID0gdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmI4MDAw
MDAsIHNpemUgNjU1MzYsIGVuYWJsZWQKICAgIGJhciAgIFsxOF0gPSB0eXBlIE1lbW9yeSwgcmFu
Z2UgNjQsIGJhc2UgMHhmYjgxMTAwMCwgc2l6ZSA0MDk2LCBlbmFibGVkCiAgICBiYXIgICBbMjBd
ID0gdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4ZmI4MTAwMDAsIHNpemUgNDA5NiwgZW5h
YmxlZAogICAgY2FwIDAxWzQwXSA9IHBvd2Vyc3BlYyAzICBzdXBwb3J0cyBEMCBEMSBEMyAgY3Vy
cmVudCBEMAogICAgY2FwIDA1WzUwXSA9IE1TSSBzdXBwb3J0cyA4IG1lc3NhZ2VzLCA2NCBiaXQg
ZW5hYmxlZCB3aXRoIDEgbWVzc2FnZQogICAgY2FwIDEwWzcwXSA9IFBDSS1FeHByZXNzIDIgZW5k
cG9pbnQgbWF4IGRhdGEgMTI4KDUxMikgbGluayB4MSh4MSkKICAgICAgICAgICAgICAgICBzcGVl
ZCA1LjAoNS4wKSBBU1BNIGRpc2FibGVkKEwwcy9MMSkKICAgIGNhcCAxMVtiMF0gPSBNU0ktWCBz
dXBwb3J0cyA4IG1lc3NhZ2VzCiAgICAgICAgICAgICAgICAgVGFibGUgaW4gbWFwIDB4MThbMHgw
XSwgUEJBIGluIG1hcCAweDIwWzB4MF0KICAgIGVjYXAgMDAwMVsxMDBdID0gQUVSIDEgMCBmYXRh
bCAyIG5vbi1mYXRhbCAxIGNvcnJlY3RlZAogICAgUENJIGVycm9ycyA9IFNlbnQgVGFyZ2V0LUFi
b3J0CiAgUENJLWUgZXJyb3JzID0gQ29ycmVjdGFibGUgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAg
ICAgICAgICBOb24tRmF0YWwgRXJyb3IgRGV0ZWN0ZWQKICAgICAgICAgICAgICAgICBVbnN1cHBv
cnRlZCBSZXF1ZXN0IERldGVjdGVkCiAgICAgTm9uLWZhdGFsID0gQ29tcGxldGVyIEFib3J0CiAg
ICAgICAgICAgICAgICAgVW5zdXBwb3J0ZWQgUmVxdWVzdAogICAgIENvcnJlY3RlZCA9IEFkdmlz
b3J5IE5vbi1GYXRhbCBFcnJvcgpyZTBAcGNpMDoxMTowOjA6CWNsYXNzPTB4MDIwMDAwIGNhcmQ9
MHg4MTY5MTBlYyBjaGlwPTB4ODE2OTEwZWMgcmV2PTB4MTAgaGRyPTB4MDAKICAgIHZlbmRvciAg
ICAgPSAnUmVhbHRlayBTZW1pY29uZHVjdG9yIENvLiwgTHRkLicKICAgIGRldmljZSAgICAgPSAn
UlRMODE2OSBQQ0kgR2lnYWJpdCBFdGhlcm5ldCBDb250cm9sbGVyJwogICAgY2xhc3MgICAgICA9
IG5ldHdvcmsKICAgIHN1YmNsYXNzICAgPSBldGhlcm5ldAogICAgYmFyICAgWzEwXSA9IHR5cGUg
SS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4OTAwMCwgc2l6ZSAyNTYsIGVuYWJsZWQKICAgIGJh
ciAgIFsxNF0gPSB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmYjcxMDAwMCwgc2l6ZSAy
NTYsIGVuYWJsZWQKICAgIGNhcCAwMVtkY10gPSBwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDEg
RDIgRDMgIGN1cnJlbnQgRDAKbm9uZTI5QHBjaTA6MjU1Ojg6MDoJY2xhc3M9MHgwODgwMDAgY2Fy
ZD0weDNjODAxNDU4IGNoaXA9MHgzYzgwODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9y
ICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3Jl
IGk3IFFQSSBMaW5rIDAnCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCm5vbmUzMEBw
Y2kwOjI1NTo4OjM6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzYzgzMTQ1OCBjaGlwPTB4M2M4Mzgw
ODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24n
CiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBRUEkgTGluayBSZXV0IDAnCiAgICBj
bGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3Mg
MSByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCiAgICBlY2FwIDAw
MGJbMTAwXSA9IFZlbmRvciAwCm5vbmUzMUBwY2kwOjI1NTo4OjQ6CWNsYXNzPTB4MDg4MDAwIGNh
cmQ9MHgzYzg0MTQ1OCBjaGlwPTB4M2M4NDgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRv
ciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29y
ZSBpNyBRUEkgTGluayBSZXV0IDAnCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAg
ICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgx
MjgpIGxpbmsgeDAoeDApCm5vbmUzMkBwY2kwOjI1NTo5OjA6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9
MHgzYzkwMTQ1OCBjaGlwPTB4M2M5MDgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAg
ICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBp
NyBRUEkgTGluayAxJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lMzNAcGNp
MDoyNTU6OTozOgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2M5MzE0NTggY2hpcD0weDNjOTM4MDg2
IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwog
ICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgUVBJIExpbmsgUmV1dCAxJwogICAgY2xh
c3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEg
cm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQogICAgZWNhcCAwMDBi
WzEwMF0gPSBWZW5kb3IgMApub25lMzRAcGNpMDoyNTU6OTo0OgljbGFzcz0weDA4ODAwMCBjYXJk
PTB4M2M5NDE0NTggY2hpcD0weDNjOTQ4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3Ig
ICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUg
aTcgUVBJIExpbmsgUmV1dCAxJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAg
Y2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4
KSBsaW5rIHgwKHgwKQpub25lMzVAcGNpMDoyNTU6MTA6MDoJY2xhc3M9MHgwODgwMDAgY2FyZD0w
eDNjYzAxNDU4IGNoaXA9MHgzY2MwODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAg
ICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3
IFBvd2VyIENvbnRyb2wgVW5pdCAwJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApu
b25lMzZAcGNpMDoyNTU6MTA6MToJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYzExNDU4IGNoaXA9
MHgzY2MxODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jw
b3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFBvd2VyIENvbnRyb2wg
VW5pdCAxJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lMzdAcGNpMDoyNTU6
MTA6MjoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYzIxNDU4IGNoaXA9MHgzY2MyODA4NiByZXY9
MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRl
dmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFBvd2VyIENvbnRyb2wgVW5pdCAyJwogICAgY2xh
c3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lMzhAcGNpMDoyNTU6MTA6MzoJY2xhc3M9MHgw
ODgwMDAgY2FyZD0weDNjZDAxNDU4IGNoaXA9MHgzY2QwODA4NiByZXY9MHgwNyBoZHI9MHgwMAog
ICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVv
biBFNS9Db3JlIGk3IFBvd2VyIENvbnRyb2wgVW5pdCAzJwogICAgY2xhc3MgICAgICA9IGJhc2Ug
cGVyaXBoZXJhbApub25lMzlAcGNpMDoyNTU6MTE6MDoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNj
ZTAxNDU4IGNoaXA9MHgzY2UwODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9
ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IElu
dGVycnVwdCBDb250cm9sIFJlZ2lzdGVycycKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVy
YWwKbm9uZTQwQHBjaTA6MjU1OjExOjM6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2UzMTQ1OCBj
aGlwPTB4M2NlMzgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwg
Q29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBTZW1hcGhvcmUg
YW5kIFNjcmF0Y2hwYWQgQ29uZmlndXJhdGlvbiBSZWdpc3RlcnMnCiAgICBjbGFzcyAgICAgID0g
YmFzZSBwZXJpcGhlcmFsCm5vbmU0MUBwY2kwOjI1NToxMjowOgljbGFzcz0weDA4ODAwMCBjYXJk
PTB4M2NlODE0NTggY2hpcD0weDNjZTg4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3Ig
ICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUg
aTcgVW5pY2FzdCBSZWdpc3RlciAwJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApu
b25lNDJAcGNpMDoyNTU6MTI6MToJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjZTgxNDU4IGNoaXA9
MHgzY2U4ODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jw
b3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFVuaWNhc3QgUmVnaXN0
ZXIgMCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKbm9uZTQzQHBjaTA6MjU1OjEy
OjY6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2U4MTQ1OCBjaGlwPTB4M2NmNDgwODYgcmV2PTB4
MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZp
Y2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBJbnRlZ3JhdGVkIE1lbW9yeSBDb250cm9sbGVyIFN5
c3RlbSBBZGRyZXNzIERlY29kZXIgMCcKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwK
bm9uZTQ0QHBjaTA6MjU1OjEyOjc6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2U4MTQ1OCBjaGlw
PTB4M2NmNjgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29y
cG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBTeXN0ZW0gQWRkcmVz
cyBEZWNvZGVyJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lNDVAcGNpMDoy
NTU6MTM6MDoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjZTgxNDU4IGNoaXA9MHgzY2U4ODA4NiBy
ZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAg
IGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFVuaWNhc3QgUmVnaXN0ZXIgMCcKICAgIGNs
YXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKbm9uZTQ2QHBjaTA6MjU1OjEzOjE6CWNsYXNzPTB4
MDg4MDAwIGNhcmQ9MHgzY2U4MTQ1OCBjaGlwPTB4M2NlODgwODYgcmV2PTB4MDcgaGRyPTB4MDAK
ICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hl
b24gRTUvQ29yZSBpNyBVbmljYXN0IFJlZ2lzdGVyIDAnCiAgICBjbGFzcyAgICAgID0gYmFzZSBw
ZXJpcGhlcmFsCm5vbmU0N0BwY2kwOjI1NToxMzo2OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2Nl
ODE0NTggY2hpcD0weDNjZjU4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0g
J0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgSW50
ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBTeXN0ZW0gQWRkcmVzcyBEZWNvZGVyIDEnCiAgICBj
bGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCm5vbmU0OEBwY2kwOjI1NToxNDowOgljbGFzcz0w
eDA4ODAwMCBjYXJkPTB4M2NhMDE0NTggY2hpcD0weDNjYTA4MDg2IHJldj0weDA3IGhkcj0weDAw
CiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdY
ZW9uIEU1L0NvcmUgaTcgUHJvY2Vzc29yIEhvbWUgQWdlbnQnCiAgICBjbGFzcyAgICAgID0gYmFz
ZSBwZXJpcGhlcmFsCm5vbmU0OUBwY2kwOjI1NToxNDoxOgljbGFzcz0weDExMDEwMCBjYXJkPTB4
M2M0NjE0NTggY2hpcD0weDNjNDY4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAg
ID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcg
UHJvY2Vzc29yIEhvbWUgQWdlbnQgUGVyZm9ybWFuY2UgTW9uaXRvcmluZycKICAgIGNsYXNzICAg
ICAgPSBkYXNwCm5vbmU1MEBwY2kwOjI1NToxNTowOgljbGFzcz0weDA4ODAwMCBjYXJkPTB4M2Nh
ODE0NTggY2hpcD0weDNjYTg4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0g
J0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgSW50
ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBSZWdpc3RlcnMnCiAgICBjbGFzcyAgICAgID0gYmFz
ZSBwZXJpcGhlcmFsCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50
IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCm5vbmU1MUBwY2kwOjI1NToxNToxOgljbGFz
cz0weDA4ODAwMCBjYXJkPTB4M2M3MTE0NTggY2hpcD0weDNjNzE4MDg2IHJldj0weDA3IGhkcj0w
eDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9
ICdYZW9uIEU1L0NvcmUgaTcgSW50ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBSQVMgUmVnaXN0
ZXJzJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBD
SS1FeHByZXNzIDEgcm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpu
b25lNTJAcGNpMDoyNTU6MTU6MjoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYWExNDU4IGNoaXA9
MHgzY2FhODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jw
b3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVt
b3J5IENvbnRyb2xsZXIgVGFyZ2V0IEFkZHJlc3MgRGVjb2RlciAwJwogICAgY2xhc3MgICAgICA9
IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9vdCBlbmRw
b2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNTNAcGNpMDoyNTU6MTU6MzoJ
Y2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYWIxNDU4IGNoaXA9MHgzY2FiODA4NiByZXY9MHgwNyBo
ZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg
ICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xsZXIgVGFyZ2V0
IEFkZHJlc3MgRGVjb2RlciAxJwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAg
Y2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4
KSBsaW5rIHgwKHgwKQpub25lNTRAcGNpMDoyNTU6MTU6NDoJY2xhc3M9MHgwODgwMDAgY2FyZD0w
eDNjYWMxNDU4IGNoaXA9MHgzY2FjODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAg
ICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3
IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xsZXIgVGFyZ2V0IEFkZHJlc3MgRGVjb2RlciAyJwog
ICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHBy
ZXNzIDEgcm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNTVA
cGNpMDoyNTU6MTU6NToJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYWQxNDU4IGNoaXA9MHgzY2Fk
ODA4NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlv
bicKICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENv
bnRyb2xsZXIgVGFyZ2V0IEFkZHJlc3MgRGVjb2RlciAzJwogICAgY2xhc3MgICAgICA9IGJhc2Ug
cGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9vdCBlbmRwb2ludCBt
YXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNTZAcGNpMDoyNTU6MTU6NjoJY2xhc3M9
MHgwODgwMDAgY2FyZD0weDNjYWUxNDU4IGNoaXA9MHgzY2FlODA4NiByZXY9MHgwNyBoZHI9MHgw
MAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgICAgPSAn
WGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xsZXIgVGFyZ2V0IEFkZHJl
c3MgRGVjb2RlciA0JwogICAgY2xhc3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbApub25lNTdAcGNp
MDoyNTU6MTY6MDoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYjAxNDU4IGNoaXA9MHgzY2IwODA4
NiByZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicK
ICAgIGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRy
b2xsZXIgQ2hhbm5lbCAwLTMgVGhlcm1hbCBDb250cm9sIDAnCiAgICBjbGFzcyAgICAgID0gYmFz
ZSBwZXJpcGhlcmFsCiAgICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50
IG1heCBkYXRhIDEyOCgxMjgpIGxpbmsgeDAoeDApCm5vbmU1OEBwY2kwOjI1NToxNjoxOgljbGFz
cz0weDA4ODAwMCBjYXJkPTB4M2NiMTE0NTggY2hpcD0weDNjYjE4MDg2IHJldj0weDA3IGhkcj0w
eDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9
ICdYZW9uIEU1L0NvcmUgaTcgSW50ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBDaGFubmVsIDAt
MyBUaGVybWFsIENvbnRyb2wgMScKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAg
IGNhcCAxMFs0MF0gPSBQQ0ktRXhwcmVzcyAxIHJvb3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEy
OCkgbGluayB4MCh4MCkKbm9uZTU5QHBjaTA6MjU1OjE2OjI6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9
MHgzY2IyMTQ1OCBjaGlwPTB4M2NiMjgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAg
ICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBp
NyBJbnRlZ3JhdGVkIE1lbW9yeSBDb250cm9sbGVyIEVSUk9SIFJlZ2lzdGVycyAwJwogICAgY2xh
c3MgICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEg
cm9vdCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNjBAcGNpMDoy
NTU6MTY6MzoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYjMxNDU4IGNoaXA9MHgzY2IzODA4NiBy
ZXY9MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAg
IGRldmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xs
ZXIgRVJST1IgUmVnaXN0ZXJzIDEnCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAg
ICBjYXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgx
MjgpIGxpbmsgeDAoeDApCm5vbmU2MUBwY2kwOjI1NToxNjo0OgljbGFzcz0weDA4ODAwMCBjYXJk
PTB4M2NiNDE0NTggY2hpcD0weDNjYjQ4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3Ig
ICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUg
aTcgSW50ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBDaGFubmVsIDAtMyBUaGVybWFsIENvbnRy
b2wgMicKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGNhcCAxMFs0MF0gPSBQ
Q0ktRXhwcmVzcyAxIHJvb3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MCh4MCkK
bm9uZTYyQHBjaTA6MjU1OjE2OjU6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2I1MTQ1OCBjaGlw
PTB4M2NiNTgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29y
cG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBJbnRlZ3JhdGVkIE1l
bW9yeSBDb250cm9sbGVyIENoYW5uZWwgMC0zIFRoZXJtYWwgQ29udHJvbCAzJwogICAgY2xhc3Mg
ICAgICA9IGJhc2UgcGVyaXBoZXJhbAogICAgY2FwIDEwWzQwXSA9IFBDSS1FeHByZXNzIDEgcm9v
dCBlbmRwb2ludCBtYXggZGF0YSAxMjgoMTI4KSBsaW5rIHgwKHgwKQpub25lNjNAcGNpMDoyNTU6
MTY6NjoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjYjYxNDU4IGNoaXA9MHgzY2I2ODA4NiByZXY9
MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRl
dmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IEludGVncmF0ZWQgTWVtb3J5IENvbnRyb2xsZXIg
RVJST1IgUmVnaXN0ZXJzIDInCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCiAgICBj
YXAgMTBbNDBdID0gUENJLUV4cHJlc3MgMSByb290IGVuZHBvaW50IG1heCBkYXRhIDEyOCgxMjgp
IGxpbmsgeDAoeDApCm5vbmU2NEBwY2kwOjI1NToxNjo3OgljbGFzcz0weDA4ODAwMCBjYXJkPTB4
M2NiNzE0NTggY2hpcD0weDNjYjc4MDg2IHJldj0weDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAg
ID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcg
SW50ZWdyYXRlZCBNZW1vcnkgQ29udHJvbGxlciBFUlJPUiBSZWdpc3RlcnMgMycKICAgIGNsYXNz
ICAgICAgPSBiYXNlIHBlcmlwaGVyYWwKICAgIGNhcCAxMFs0MF0gPSBQQ0ktRXhwcmVzcyAxIHJv
b3QgZW5kcG9pbnQgbWF4IGRhdGEgMTI4KDEyOCkgbGluayB4MCh4MCkKbm9uZTY1QHBjaTA6MjU1
OjE3OjA6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgzY2I4MTQ1OCBjaGlwPTB4M2NiODgwODYgcmV2
PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBk
ZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBERFJJTycKICAgIGNsYXNzICAgICAgPSBiYXNl
IHBlcmlwaGVyYWwKbm9uZTY2QHBjaTA6MjU1OjE5OjA6CWNsYXNzPTB4MDg4MDAwIGNhcmQ9MHgz
Y2U0MTQ1OCBjaGlwPTB4M2NlNDgwODYgcmV2PTB4MDcgaGRyPTB4MDAKICAgIHZlbmRvciAgICAg
PSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0gJ1hlb24gRTUvQ29yZSBpNyBS
MlBDSWUnCiAgICBjbGFzcyAgICAgID0gYmFzZSBwZXJpcGhlcmFsCm5vbmU2N0BwY2kwOjI1NTox
OToxOgljbGFzcz0weDExMDEwMCBjYXJkPTB4M2M0MzE0NTggY2hpcD0weDNjNDM4MDg2IHJldj0w
eDA3IGhkcj0weDAwCiAgICB2ZW5kb3IgICAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2
aWNlICAgICA9ICdYZW9uIEU1L0NvcmUgaTcgUmluZyB0byBQQ0kgRXhwcmVzcyBQZXJmb3JtYW5j
ZSBNb25pdG9yJwogICAgY2xhc3MgICAgICA9IGRhc3AKbm9uZTY4QHBjaTA6MjU1OjE5OjQ6CWNs
YXNzPTB4MTEwMTAwIGNhcmQ9MHgzY2U2MTQ1OCBjaGlwPTB4M2NlNjgwODYgcmV2PTB4MDcgaGRy
PTB4MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAg
ID0gJ1hlb24gRTUvQ29yZSBpNyBRdWlja1BhdGggSW50ZXJjb25uZWN0IEFnZW50IFJpbmcgUmVn
aXN0ZXJzJwogICAgY2xhc3MgICAgICA9IGRhc3AKbm9uZTY5QHBjaTA6MjU1OjE5OjU6CWNsYXNz
PTB4MTEwMTAwIGNhcmQ9MHgzYzQ0MTQ1OCBjaGlwPTB4M2M0NDgwODYgcmV2PTB4MDcgaGRyPTB4
MDAKICAgIHZlbmRvciAgICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICAgID0g
J1hlb24gRTUvQ29yZSBpNyBSaW5nIHRvIFF1aWNrUGF0aCBJbnRlcmNvbm5lY3QgTGluayAwIFBl
cmZvcm1hbmNlIE1vbml0b3InCiAgICBjbGFzcyAgICAgID0gZGFzcApub25lNzBAcGNpMDoyNTU6
MTk6NjoJY2xhc3M9MHgwODgwMDAgY2FyZD0weDNjNDUxNDU4IGNoaXA9MHgzYzQ1ODA4NiByZXY9
MHgwNyBoZHI9MHgwMAogICAgdmVuZG9yICAgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRl
dmljZSAgICAgPSAnWGVvbiBFNS9Db3JlIGk3IFJpbmcgdG8gUXVpY2tQYXRoIEludGVyY29ubmVj
dCBMaW5rIDEgUGVyZm9ybWFuY2UgTW9uaXRvcicKICAgIGNsYXNzICAgICAgPSBiYXNlIHBlcmlw
aGVyYWwK
--e89a8f2356bdd4e41304ed1635fa
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
--e89a8f2356bdd4e41304ed1635fa--
討論串 (同標題文章)
完整討論串 (本文為第 10 之 10 篇):