From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Date: Tue, 03 Dec 2019 16:38:50 +0000 Subject: [PATCH v3 08/12] video: constify fb ops across all drivers Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org Cc: jani.nikula@intel.com, Daniel Vetter , intel-gfx@lists.freedesktop.org Now that the fbops member of struct fb_info is const, we can start making the ops const as well. This does not cover all drivers; some actually modify the fbops struct, for example to adjust for different configurations, and others do more involved things that I'd rather not touch in practically obsolete drivers. Mostly this is the low hanging fruit where we can add "const" and be done with it. v3: - un-constify atyfb, mb862xx, nvidia and uvesabf (0day) v2: - fix typo (Christophe de Dinechin) - use "static const" instead of "const static" in mx3fb.c - also constify smscufx.c Cc: linux-fbdev@vger.kernel.org Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula --- drivers/video/fbdev/68328fb.c | 2 +- drivers/video/fbdev/acornfb.c | 2 +- drivers/video/fbdev/amba-clcd.c | 2 +- drivers/video/fbdev/amifb.c | 2 +- drivers/video/fbdev/arcfb.c | 2 +- drivers/video/fbdev/arkfb.c | 2 +- drivers/video/fbdev/asiliantfb.c | 2 +- drivers/video/fbdev/atmel_lcdfb.c | 2 +- drivers/video/fbdev/aty/aty128fb.c | 2 +- drivers/video/fbdev/aty/radeon_base.c | 2 +- drivers/video/fbdev/au1100fb.c | 2 +- drivers/video/fbdev/au1200fb.c | 2 +- drivers/video/fbdev/broadsheetfb.c | 2 +- drivers/video/fbdev/bw2.c | 2 +- drivers/video/fbdev/carminefb.c | 2 +- drivers/video/fbdev/cg14.c | 2 +- drivers/video/fbdev/cg3.c | 2 +- drivers/video/fbdev/cg6.c | 2 +- drivers/video/fbdev/chipsfb.c | 2 +- drivers/video/fbdev/cirrusfb.c | 2 +- drivers/video/fbdev/clps711x-fb.c | 2 +- drivers/video/fbdev/cobalt_lcdfb.c | 2 +- drivers/video/fbdev/controlfb.c | 2 +- drivers/video/fbdev/cyber2000fb.c | 2 +- drivers/video/fbdev/da8xx-fb.c | 2 +- drivers/video/fbdev/dnfb.c | 2 +- drivers/video/fbdev/efifb.c | 2 +- drivers/video/fbdev/ep93xx-fb.c | 2 +- drivers/video/fbdev/fb-puv3.c | 2 +- drivers/video/fbdev/ffb.c | 2 +- drivers/video/fbdev/fm2fb.c | 2 +- drivers/video/fbdev/fsl-diu-fb.c | 2 +- drivers/video/fbdev/g364fb.c | 2 +- drivers/video/fbdev/gbefb.c | 2 +- drivers/video/fbdev/geode/gx1fb_core.c | 2 +- drivers/video/fbdev/geode/gxfb_core.c | 2 +- drivers/video/fbdev/geode/lxfb_core.c | 2 +- drivers/video/fbdev/goldfishfb.c | 2 +- drivers/video/fbdev/grvga.c | 2 +- drivers/video/fbdev/gxt4500.c | 2 +- drivers/video/fbdev/hecubafb.c | 2 +- drivers/video/fbdev/hgafb.c | 2 +- drivers/video/fbdev/hitfb.c | 2 +- drivers/video/fbdev/hpfb.c | 2 +- drivers/video/fbdev/hyperv_fb.c | 2 +- drivers/video/fbdev/i740fb.c | 2 +- drivers/video/fbdev/imsttfb.c | 2 +- drivers/video/fbdev/imxfb.c | 2 +- drivers/video/fbdev/intelfb/intelfbdrv.c | 2 +- drivers/video/fbdev/kyro/fbdev.c | 2 +- drivers/video/fbdev/leo.c | 2 +- drivers/video/fbdev/macfb.c | 2 +- drivers/video/fbdev/matrox/matroxfb_crtc2.c | 2 +- drivers/video/fbdev/maxinefb.c | 2 +- drivers/video/fbdev/mbx/mbxfb.c | 2 +- drivers/video/fbdev/metronomefb.c | 2 +- drivers/video/fbdev/mmp/fb/mmpfb.c | 2 +- drivers/video/fbdev/mx3fb.c | 5 +++-- drivers/video/fbdev/neofb.c | 2 +- drivers/video/fbdev/ocfb.c | 2 +- drivers/video/fbdev/offb.c | 2 +- drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +- drivers/video/fbdev/p9100.c | 2 +- drivers/video/fbdev/platinumfb.c | 2 +- drivers/video/fbdev/pm2fb.c | 2 +- drivers/video/fbdev/pm3fb.c | 2 +- drivers/video/fbdev/pmag-aa-fb.c | 2 +- drivers/video/fbdev/pmag-ba-fb.c | 2 +- drivers/video/fbdev/pmagb-b-fb.c | 2 +- drivers/video/fbdev/ps3fb.c | 2 +- drivers/video/fbdev/pvr2fb.c | 2 +- drivers/video/fbdev/pxa168fb.c | 2 +- drivers/video/fbdev/pxafb.c | 4 ++-- drivers/video/fbdev/q40fb.c | 2 +- drivers/video/fbdev/riva/fbdev.c | 2 +- drivers/video/fbdev/s3c-fb.c | 2 +- drivers/video/fbdev/s3c2410fb.c | 2 +- drivers/video/fbdev/s3fb.c | 2 +- drivers/video/fbdev/sa1100fb.c | 2 +- drivers/video/fbdev/savage/savagefb_driver.c | 2 +- drivers/video/fbdev/sh7760fb.c | 2 +- drivers/video/fbdev/sh_mobile_lcdcfb.c | 4 ++-- drivers/video/fbdev/simplefb.c | 2 +- drivers/video/fbdev/sis/sis_main.c | 2 +- drivers/video/fbdev/skeletonfb.c | 2 +- drivers/video/fbdev/sm712fb.c | 2 +- drivers/video/fbdev/smscufx.c | 2 +- drivers/video/fbdev/ssd1307fb.c | 2 +- drivers/video/fbdev/sstfb.c | 2 +- drivers/video/fbdev/stifb.c | 2 +- drivers/video/fbdev/sunxvr1000.c | 2 +- drivers/video/fbdev/sunxvr2500.c | 2 +- drivers/video/fbdev/sunxvr500.c | 2 +- drivers/video/fbdev/tcx.c | 2 +- drivers/video/fbdev/tdfxfb.c | 2 +- drivers/video/fbdev/tgafb.c | 2 +- drivers/video/fbdev/tmiofb.c | 2 +- drivers/video/fbdev/tridentfb.c | 2 +- drivers/video/fbdev/valkyriefb.c | 2 +- drivers/video/fbdev/vfb.c | 2 +- drivers/video/fbdev/vga16fb.c | 2 +- drivers/video/fbdev/vt8500lcdfb.c | 2 +- drivers/video/fbdev/vt8623fb.c | 2 +- drivers/video/fbdev/w100fb.c | 2 +- drivers/video/fbdev/wm8505fb.c | 2 +- drivers/video/fbdev/xen-fbfront.c | 2 +- drivers/video/fbdev/xilinxfb.c | 2 +- 107 files changed, 111 insertions(+), 110 deletions(-) diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c index d48e96088f76..491fd5a82993 100644 --- a/drivers/video/fbdev/68328fb.c +++ b/drivers/video/fbdev/68328fb.c @@ -96,7 +96,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info); static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma); -static struct fb_ops mc68x328fb_ops = { +static const struct fb_ops mc68x328fb_ops = { .fb_check_var = mc68x328fb_check_var, .fb_set_par = mc68x328fb_set_par, .fb_setcolreg = mc68x328fb_setcolreg, diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c index 7cacae5a8797..a3af49529173 100644 --- a/drivers/video/fbdev/acornfb.c +++ b/drivers/video/fbdev/acornfb.c @@ -604,7 +604,7 @@ acornfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) return 0; } -static struct fb_ops acornfb_ops = { +static const struct fb_ops acornfb_ops = { .owner = THIS_MODULE, .fb_check_var = acornfb_check_var, .fb_set_par = acornfb_set_par, diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c index 7de43be6ef2c..c3d55fc6c4e0 100644 --- a/drivers/video/fbdev/amba-clcd.c +++ b/drivers/video/fbdev/amba-clcd.c @@ -423,7 +423,7 @@ static int clcdfb_mmap(struct fb_info *info, return ret; } -static struct fb_ops clcdfb_ops = { +static const struct fb_ops clcdfb_ops = { .owner = THIS_MODULE, .fb_check_var = clcdfb_check_var, .fb_set_par = clcdfb_set_par, diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c index 91ddc9602014..20e03e00b66d 100644 --- a/drivers/video/fbdev/amifb.c +++ b/drivers/video/fbdev/amifb.c @@ -3493,7 +3493,7 @@ static irqreturn_t amifb_interrupt(int irq, void *dev_id) } -static struct fb_ops amifb_ops = { +static const struct fb_ops amifb_ops = { .owner = THIS_MODULE, .fb_check_var = amifb_check_var, .fb_set_par = amifb_set_par, diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c index a48741aab240..314ab82e01c0 100644 --- a/drivers/video/fbdev/arcfb.c +++ b/drivers/video/fbdev/arcfb.c @@ -491,7 +491,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf, return err; } -static struct fb_ops arcfb_ops = { +static const struct fb_ops arcfb_ops = { .owner = THIS_MODULE, .fb_open = arcfb_open, .fb_read = fb_sys_read, diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c index f940e8b66b85..11ab9a153860 100644 --- a/drivers/video/fbdev/arkfb.c +++ b/drivers/video/fbdev/arkfb.c @@ -917,7 +917,7 @@ static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info /* Frame buffer operations */ -static struct fb_ops arkfb_ops = { +static const struct fb_ops arkfb_ops = { .owner = THIS_MODULE, .fb_open = arkfb_open, .fb_release = arkfb_release, diff --git a/drivers/video/fbdev/asiliantfb.c b/drivers/video/fbdev/asiliantfb.c index ea31054a28ca..3e006da47752 100644 --- a/drivers/video/fbdev/asiliantfb.c +++ b/drivers/video/fbdev/asiliantfb.c @@ -95,7 +95,7 @@ static int asiliantfb_set_par(struct fb_info *info); static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, u_int transp, struct fb_info *info); -static struct fb_ops asiliantfb_ops = { +static const struct fb_ops asiliantfb_ops = { .owner = THIS_MODULE, .fb_check_var = asiliantfb_check_var, .fb_set_par = asiliantfb_set_par, diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atmel_lcdfb.c index 5ff8e0320d95..d567f5d56c13 100644 --- a/drivers/video/fbdev/atmel_lcdfb.c +++ b/drivers/video/fbdev/atmel_lcdfb.c @@ -824,7 +824,7 @@ static int atmel_lcdfb_blank(int blank_mode, struct fb_info *info) return ((blank_mode = FB_BLANK_NORMAL) ? 1 : 0); } -static struct fb_ops atmel_lcdfb_ops = { +static const struct fb_ops atmel_lcdfb_ops = { .owner = THIS_MODULE, .fb_check_var = atmel_lcdfb_check_var, .fb_set_par = atmel_lcdfb_set_par, diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c index fc1e45d44719..d7e41c8dd533 100644 --- a/drivers/video/fbdev/aty/aty128fb.c +++ b/drivers/video/fbdev/aty/aty128fb.c @@ -509,7 +509,7 @@ static void aty128_bl_set_power(struct fb_info *info, int power); (readb(bios + (v) + 3) << 24)) -static struct fb_ops aty128fb_ops = { +static const struct fb_ops aty128fb_ops = { .owner = THIS_MODULE, .fb_check_var = aty128fb_check_var, .fb_set_par = aty128fb_set_par, diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c index 4ca07866f2f6..3af00e3b965e 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -1965,7 +1965,7 @@ static int radeonfb_set_par(struct fb_info *info) } -static struct fb_ops radeonfb_ops = { +static const struct fb_ops radeonfb_ops = { .owner = THIS_MODULE, .fb_check_var = radeonfb_check_var, .fb_set_par = radeonfb_set_par, diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c index 99941ae1f3a1..37a6512feda0 100644 --- a/drivers/video/fbdev/au1100fb.c +++ b/drivers/video/fbdev/au1100fb.c @@ -348,7 +348,7 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma) fbdev->fb_len); } -static struct fb_ops au1100fb_ops +static const struct fb_ops au1100fb_ops { .owner = THIS_MODULE, .fb_setcolreg = au1100fb_fb_setcolreg, diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c index 265d3b45efd0..c00e01a17368 100644 --- a/drivers/video/fbdev/au1200fb.c +++ b/drivers/video/fbdev/au1200fb.c @@ -1483,7 +1483,7 @@ static int au1200fb_ioctl(struct fb_info *info, unsigned int cmd, } -static struct fb_ops au1200fb_fb_ops = { +static const struct fb_ops au1200fb_fb_ops = { .owner = THIS_MODULE, .fb_check_var = au1200fb_fb_check_var, .fb_set_par = au1200fb_fb_set_par, diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c index d6ba348deb9f..fd66f4d4a621 100644 --- a/drivers/video/fbdev/broadsheetfb.c +++ b/drivers/video/fbdev/broadsheetfb.c @@ -1048,7 +1048,7 @@ static ssize_t broadsheetfb_write(struct fb_info *info, const char __user *buf, return (err) ? err : count; } -static struct fb_ops broadsheetfb_ops = { +static const struct fb_ops broadsheetfb_ops = { .owner = THIS_MODULE, .fb_read = fb_sys_read, .fb_write = broadsheetfb_write, diff --git a/drivers/video/fbdev/bw2.c b/drivers/video/fbdev/bw2.c index 436f10f3d375..0d9a6bb57a09 100644 --- a/drivers/video/fbdev/bw2.c +++ b/drivers/video/fbdev/bw2.c @@ -37,7 +37,7 @@ static int bw2_ioctl(struct fb_info *, unsigned int, unsigned long); * Frame buffer operations */ -static struct fb_ops bw2_ops = { +static const struct fb_ops bw2_ops = { .owner = THIS_MODULE, .fb_blank = bw2_blank, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/carminefb.c b/drivers/video/fbdev/carminefb.c index 9f3be0258623..bf3f2a9598b1 100644 --- a/drivers/video/fbdev/carminefb.c +++ b/drivers/video/fbdev/carminefb.c @@ -527,7 +527,7 @@ static int init_hardware(struct carmine_hw *hw) return 0; } -static struct fb_ops carminefb_ops = { +static const struct fb_ops carminefb_ops = { .owner = THIS_MODULE, .fb_fillrect = cfb_fillrect, .fb_copyarea = cfb_copyarea, diff --git a/drivers/video/fbdev/cg14.c b/drivers/video/fbdev/cg14.c index d80d99db3a46..a620b51cf7d0 100644 --- a/drivers/video/fbdev/cg14.c +++ b/drivers/video/fbdev/cg14.c @@ -39,7 +39,7 @@ static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *); * Frame buffer operations */ -static struct fb_ops cg14_ops = { +static const struct fb_ops cg14_ops = { .owner = THIS_MODULE, .fb_setcolreg = cg14_setcolreg, .fb_pan_display = cg14_pan_display, diff --git a/drivers/video/fbdev/cg3.c b/drivers/video/fbdev/cg3.c index 09f616dddfd7..77f6470ce665 100644 --- a/drivers/video/fbdev/cg3.c +++ b/drivers/video/fbdev/cg3.c @@ -39,7 +39,7 @@ static int cg3_ioctl(struct fb_info *, unsigned int, unsigned long); * Frame buffer operations */ -static struct fb_ops cg3_ops = { +static const struct fb_ops cg3_ops = { .owner = THIS_MODULE, .fb_setcolreg = cg3_setcolreg, .fb_blank = cg3_blank, diff --git a/drivers/video/fbdev/cg6.c b/drivers/video/fbdev/cg6.c index d5888aecc2fb..a1c68cd48d7e 100644 --- a/drivers/video/fbdev/cg6.c +++ b/drivers/video/fbdev/cg6.c @@ -44,7 +44,7 @@ static int cg6_pan_display(struct fb_var_screeninfo *, struct fb_info *); * Frame buffer operations */ -static struct fb_ops cg6_ops = { +static const struct fb_ops cg6_ops = { .owner = THIS_MODULE, .fb_setcolreg = cg6_setcolreg, .fb_blank = cg6_blank, diff --git a/drivers/video/fbdev/chipsfb.c b/drivers/video/fbdev/chipsfb.c index f4dc320dcafe..998067b701fa 100644 --- a/drivers/video/fbdev/chipsfb.c +++ b/drivers/video/fbdev/chipsfb.c @@ -79,7 +79,7 @@ static int chipsfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, u_int transp, struct fb_info *info); static int chipsfb_blank(int blank, struct fb_info *info); -static struct fb_ops chipsfb_ops = { +static const struct fb_ops chipsfb_ops = { .owner = THIS_MODULE, .fb_check_var = chipsfb_check_var, .fb_set_par = chipsfb_set_par, diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c index e4ce5667b125..c3a3e344cee3 100644 --- a/drivers/video/fbdev/cirrusfb.c +++ b/drivers/video/fbdev/cirrusfb.c @@ -1956,7 +1956,7 @@ static void cirrusfb_zorro_unmap(struct fb_info *info) #endif /* CONFIG_ZORRO */ /* function table of the above functions */ -static struct fb_ops cirrusfb_ops = { +static const struct fb_ops cirrusfb_ops = { .owner = THIS_MODULE, .fb_open = cirrusfb_open, .fb_release = cirrusfb_release, diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c index cabbc721f894..c5d15c6db287 100644 --- a/drivers/video/fbdev/clps711x-fb.c +++ b/drivers/video/fbdev/clps711x-fb.c @@ -153,7 +153,7 @@ static int clps711x_fb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops clps711x_fb_ops = { +static const struct fb_ops clps711x_fb_ops = { .owner = THIS_MODULE, .fb_setcolreg = clps711x_fb_setcolreg, .fb_check_var = clps711x_fb_check_var, diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c index 544946901e8b..5f8b6324d2e8 100644 --- a/drivers/video/fbdev/cobalt_lcdfb.c +++ b/drivers/video/fbdev/cobalt_lcdfb.c @@ -269,7 +269,7 @@ static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor) return 0; } -static struct fb_ops cobalt_lcd_fbops = { +static const struct fb_ops cobalt_lcd_fbops = { .owner = THIS_MODULE, .fb_read = cobalt_lcdfb_read, .fb_write = cobalt_lcdfb_write, diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c index 9a680ef3ffc3..38b61cdb5ca4 100644 --- a/drivers/video/fbdev/controlfb.c +++ b/drivers/video/fbdev/controlfb.c @@ -157,7 +157,7 @@ static int default_vmode __initdata = VMODE_NVRAM; static int default_cmode __initdata = CMODE_NVRAM; -static struct fb_ops controlfb_ops = { +static const struct fb_ops controlfb_ops = { .owner = THIS_MODULE, .fb_check_var = controlfb_check_var, .fb_set_par = controlfb_set_par, diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c index 3a2d9ff0aa42..460826a7ad55 100644 --- a/drivers/video/fbdev/cyber2000fb.c +++ b/drivers/video/fbdev/cyber2000fb.c @@ -1060,7 +1060,7 @@ static int cyber2000fb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops cyber2000fb_ops = { +static const struct fb_ops cyber2000fb_ops = { .owner = THIS_MODULE, .fb_check_var = cyber2000fb_check_var, .fb_set_par = cyber2000fb_set_par, diff --git a/drivers/video/fbdev/da8xx-fb.c b/drivers/video/fbdev/da8xx-fb.c index 2d3dcc52fcf3..73c3c4c8cc12 100644 --- a/drivers/video/fbdev/da8xx-fb.c +++ b/drivers/video/fbdev/da8xx-fb.c @@ -1294,7 +1294,7 @@ static int da8xxfb_set_par(struct fb_info *info) return 0; } -static struct fb_ops da8xx_fb_ops = { +static const struct fb_ops da8xx_fb_ops = { .owner = THIS_MODULE, .fb_check_var = fb_check_var, .fb_set_par = da8xxfb_set_par, diff --git a/drivers/video/fbdev/dnfb.c b/drivers/video/fbdev/dnfb.c index 8da517eaa4a3..3688f9165848 100644 --- a/drivers/video/fbdev/dnfb.c +++ b/drivers/video/fbdev/dnfb.c @@ -108,7 +108,7 @@ static int dnfb_blank(int blank, struct fb_info *info); static void dnfb_copyarea(struct fb_info *info, const struct fb_copyarea *area); -static struct fb_ops dn_fb_ops = { +static const struct fb_ops dn_fb_ops = { .owner = THIS_MODULE, .fb_blank = dnfb_blank, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c index 51d97ec4f58f..f03f9fb60c26 100644 --- a/drivers/video/fbdev/efifb.c +++ b/drivers/video/fbdev/efifb.c @@ -255,7 +255,7 @@ static void efifb_destroy(struct fb_info *info) fb_dealloc_cmap(&info->cmap); } -static struct fb_ops efifb_ops = { +static const struct fb_ops efifb_ops = { .owner = THIS_MODULE, .fb_destroy = efifb_destroy, .fb_setcolreg = efifb_setcolreg, diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c index d04a047094fc..cda2ef337423 100644 --- a/drivers/video/fbdev/ep93xx-fb.c +++ b/drivers/video/fbdev/ep93xx-fb.c @@ -402,7 +402,7 @@ static int ep93xxfb_setcolreg(unsigned int regno, unsigned int red, return 0; } -static struct fb_ops ep93xxfb_ops = { +static const struct fb_ops ep93xxfb_ops = { .owner = THIS_MODULE, .fb_check_var = ep93xxfb_check_var, .fb_set_par = ep93xxfb_set_par, diff --git a/drivers/video/fbdev/fb-puv3.c b/drivers/video/fbdev/fb-puv3.c index fa62c4dff7d1..75df6aabac21 100644 --- a/drivers/video/fbdev/fb-puv3.c +++ b/drivers/video/fbdev/fb-puv3.c @@ -644,7 +644,7 @@ int unifb_mmap(struct fb_info *info, return vm_iomap_memory(vma, info->fix.smem_start, info->fix.smem_len); } -static struct fb_ops unifb_ops = { +static const struct fb_ops unifb_ops = { .fb_read = fb_sys_read, .fb_write = fb_sys_write, .fb_check_var = unifb_check_var, diff --git a/drivers/video/fbdev/ffb.c b/drivers/video/fbdev/ffb.c index cd2d1db239a2..948b73184433 100644 --- a/drivers/video/fbdev/ffb.c +++ b/drivers/video/fbdev/ffb.c @@ -44,7 +44,7 @@ static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *); * Frame buffer operations */ -static struct fb_ops ffb_ops = { +static const struct fb_ops ffb_ops = { .owner = THIS_MODULE, .fb_setcolreg = ffb_setcolreg, .fb_blank = ffb_blank, diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c index ac7a4ebfd390..3b727d528fde 100644 --- a/drivers/video/fbdev/fm2fb.c +++ b/drivers/video/fbdev/fm2fb.c @@ -165,7 +165,7 @@ static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, u_int transp, struct fb_info *info); static int fm2fb_blank(int blank, struct fb_info *info); -static struct fb_ops fm2fb_ops = { +static const struct fb_ops fm2fb_ops = { .owner = THIS_MODULE, .fb_setcolreg = fm2fb_setcolreg, .fb_blank = fm2fb_blank, diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c index d19f58263b4e..7cacabdd5f12 100644 --- a/drivers/video/fbdev/fsl-diu-fb.c +++ b/drivers/video/fbdev/fsl-diu-fb.c @@ -1448,7 +1448,7 @@ static int fsl_diu_release(struct fb_info *info, int user) return res; } -static struct fb_ops fsl_diu_ops = { +static const struct fb_ops fsl_diu_ops = { .owner = THIS_MODULE, .fb_check_var = fsl_diu_check_var, .fb_set_par = fsl_diu_set_par, diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c index 223896cc5f7d..845b79da2a7c 100644 --- a/drivers/video/fbdev/g364fb.c +++ b/drivers/video/fbdev/g364fb.c @@ -111,7 +111,7 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green, static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor); static int g364fb_blank(int blank, struct fb_info *info); -static struct fb_ops g364fb_ops = { +static const struct fb_ops g364fb_ops = { .owner = THIS_MODULE, .fb_setcolreg = g364fb_setcolreg, .fb_pan_display = g364fb_pan_display, diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c index b9f6a82a0495..31270a8986e8 100644 --- a/drivers/video/fbdev/gbefb.c +++ b/drivers/video/fbdev/gbefb.c @@ -1044,7 +1044,7 @@ static int gbefb_mmap(struct fb_info *info, return 0; } -static struct fb_ops gbefb_ops = { +static const struct fb_ops gbefb_ops = { .owner = THIS_MODULE, .fb_check_var = gbefb_check_var, .fb_set_par = gbefb_set_par, diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c index 737e472fac14..5d34d89fb665 100644 --- a/drivers/video/fbdev/geode/gx1fb_core.c +++ b/drivers/video/fbdev/geode/gx1fb_core.c @@ -252,7 +252,7 @@ static int parse_panel_option(struct fb_info *info) return 0; } -static struct fb_ops gx1fb_ops = { +static const struct fb_ops gx1fb_ops = { .owner = THIS_MODULE, .fb_check_var = gx1fb_check_var, .fb_set_par = gx1fb_set_par, diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c index 435ce2aa4240..d38a148d4746 100644 --- a/drivers/video/fbdev/geode/gxfb_core.c +++ b/drivers/video/fbdev/geode/gxfb_core.c @@ -265,7 +265,7 @@ static int gxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev) return 0; } -static struct fb_ops gxfb_ops = { +static const struct fb_ops gxfb_ops = { .owner = THIS_MODULE, .fb_check_var = gxfb_check_var, .fb_set_par = gxfb_set_par, diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c index b0f07d676eb3..adc2d9c2395e 100644 --- a/drivers/video/fbdev/geode/lxfb_core.c +++ b/drivers/video/fbdev/geode/lxfb_core.c @@ -386,7 +386,7 @@ static int lxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev) return 0; } -static struct fb_ops lxfb_ops = { +static const struct fb_ops lxfb_ops = { .owner = THIS_MODULE, .fb_check_var = lxfb_check_var, .fb_set_par = lxfb_set_par, diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c index f60ac276703d..9c83ec3f8e1f 100644 --- a/drivers/video/fbdev/goldfishfb.c +++ b/drivers/video/fbdev/goldfishfb.c @@ -160,7 +160,7 @@ static int goldfish_fb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops goldfish_fb_ops = { +static const struct fb_ops goldfish_fb_ops = { .owner = THIS_MODULE, .fb_check_var = goldfish_fb_check_var, .fb_set_par = goldfish_fb_set_par, diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c index d22e8b0c906d..07dda03e0957 100644 --- a/drivers/video/fbdev/grvga.c +++ b/drivers/video/fbdev/grvga.c @@ -251,7 +251,7 @@ static int grvga_pan_display(struct fb_var_screeninfo *var, return 0; } -static struct fb_ops grvga_ops = { +static const struct fb_ops grvga_ops = { .owner = THIS_MODULE, .fb_check_var = grvga_check_var, .fb_set_par = grvga_set_par, diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c index c7502fd8f447..13ded3a10708 100644 --- a/drivers/video/fbdev/gxt4500.c +++ b/drivers/video/fbdev/gxt4500.c @@ -599,7 +599,7 @@ static const struct fb_fix_screeninfo gxt4500_fix = { .mmio_len = 0x20000, }; -static struct fb_ops gxt4500_ops = { +static const struct fb_ops gxt4500_ops = { .owner = THIS_MODULE, .fb_check_var = gxt4500_check_var, .fb_set_par = gxt4500_set_par, diff --git a/drivers/video/fbdev/hecubafb.c b/drivers/video/fbdev/hecubafb.c index 8577195cb533..00d77105161a 100644 --- a/drivers/video/fbdev/hecubafb.c +++ b/drivers/video/fbdev/hecubafb.c @@ -197,7 +197,7 @@ static ssize_t hecubafb_write(struct fb_info *info, const char __user *buf, return (err) ? err : count; } -static struct fb_ops hecubafb_ops = { +static const struct fb_ops hecubafb_ops = { .owner = THIS_MODULE, .fb_read = fb_sys_read, .fb_write = hecubafb_write, diff --git a/drivers/video/fbdev/hgafb.c b/drivers/video/fbdev/hgafb.c index 59e1cae57948..a45fcff1461f 100644 --- a/drivers/video/fbdev/hgafb.c +++ b/drivers/video/fbdev/hgafb.c @@ -523,7 +523,7 @@ static void hgafb_imageblit(struct fb_info *info, const struct fb_image *image) } } -static struct fb_ops hgafb_ops = { +static const struct fb_ops hgafb_ops = { .owner = THIS_MODULE, .fb_open = hgafb_open, .fb_release = hgafb_release, diff --git a/drivers/video/fbdev/hitfb.c b/drivers/video/fbdev/hitfb.c index abe3e54d4506..009e5d2aa100 100644 --- a/drivers/video/fbdev/hitfb.c +++ b/drivers/video/fbdev/hitfb.c @@ -311,7 +311,7 @@ static int hitfb_set_par(struct fb_info *info) return 0; } -static struct fb_ops hitfb_ops = { +static const struct fb_ops hitfb_ops = { .owner = THIS_MODULE, .fb_check_var = hitfb_check_var, .fb_set_par = hitfb_set_par, diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c index a79af8f069d1..f02be0db335e 100644 --- a/drivers/video/fbdev/hpfb.c +++ b/drivers/video/fbdev/hpfb.c @@ -184,7 +184,7 @@ static int hpfb_sync(struct fb_info *info) return 0; } -static struct fb_ops hpfb_ops = { +static const struct fb_ops hpfb_ops = { .owner = THIS_MODULE, .fb_setcolreg = hpfb_setcolreg, .fb_blank = hpfb_blank, diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c index 2dcb7c58b31e..fcd546e5c031 100644 --- a/drivers/video/fbdev/hyperv_fb.c +++ b/drivers/video/fbdev/hyperv_fb.c @@ -623,7 +623,7 @@ static void hvfb_cfb_imageblit(struct fb_info *p, synthvid_update(p); } -static struct fb_ops hvfb_ops = { +static const struct fb_ops hvfb_ops = { .owner = THIS_MODULE, .fb_check_var = hvfb_check_var, .fb_set_par = hvfb_set_par, diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c index 347cf8babc3e..c65ec7386e87 100644 --- a/drivers/video/fbdev/i740fb.c +++ b/drivers/video/fbdev/i740fb.c @@ -981,7 +981,7 @@ static int i740fb_blank(int blank_mode, struct fb_info *info) return (blank_mode = FB_BLANK_NORMAL) ? 1 : 0; } -static struct fb_ops i740fb_ops = { +static const struct fb_ops i740fb_ops = { .owner = THIS_MODULE, .fb_open = i740fb_open, .fb_release = i740fb_release, diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c index 58b01c7d9056..3ac053b88495 100644 --- a/drivers/video/fbdev/imsttfb.c +++ b/drivers/video/fbdev/imsttfb.c @@ -1333,7 +1333,7 @@ static struct pci_driver imsttfb_pci_driver = { .remove = imsttfb_remove, }; -static struct fb_ops imsttfb_ops = { +static const struct fb_ops imsttfb_ops = { .owner = THIS_MODULE, .fb_check_var = imsttfb_check_var, .fb_set_par = imsttfb_set_par, diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c index b3286d1fa543..08a17eb2a5c7 100644 --- a/drivers/video/fbdev/imxfb.c +++ b/drivers/video/fbdev/imxfb.c @@ -566,7 +566,7 @@ static int imxfb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops imxfb_ops = { +static const struct fb_ops imxfb_ops = { .owner = THIS_MODULE, .fb_check_var = imxfb_check_var, .fb_set_par = imxfb_set_par, diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index a76c61512c60..c744891781a5 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -193,7 +193,7 @@ static const struct pci_device_id intelfb_pci_table[] = { static int num_registered = 0; /* fb ops */ -static struct fb_ops intel_fb_ops = { +static const struct fb_ops intel_fb_ops = { .owner = THIS_MODULE, .fb_open = intelfb_open, .fb_release = intelfb_release, diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c index a7bd9f25911b..72dff2e42e3a 100644 --- a/drivers/video/fbdev/kyro/fbdev.c +++ b/drivers/video/fbdev/kyro/fbdev.c @@ -648,7 +648,7 @@ static struct pci_driver kyrofb_pci_driver = { .remove = kyrofb_remove, }; -static struct fb_ops kyrofb_ops = { +static const struct fb_ops kyrofb_ops = { .owner = THIS_MODULE, .fb_check_var = kyrofb_check_var, .fb_set_par = kyrofb_set_par, diff --git a/drivers/video/fbdev/leo.c b/drivers/video/fbdev/leo.c index 5b1141ac182b..40b11cce0ad6 100644 --- a/drivers/video/fbdev/leo.c +++ b/drivers/video/fbdev/leo.c @@ -39,7 +39,7 @@ static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *); * Frame buffer operations */ -static struct fb_ops leo_ops = { +static const struct fb_ops leo_ops = { .owner = THIS_MODULE, .fb_setcolreg = leo_setcolreg, .fb_blank = leo_blank, diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c index 9a6feee96133..e05a97662ca8 100644 --- a/drivers/video/fbdev/macfb.c +++ b/drivers/video/fbdev/macfb.c @@ -496,7 +496,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green, return 0; } -static struct fb_ops macfb_ops = { +static const struct fb_ops macfb_ops = { .owner = THIS_MODULE, .fb_setcolreg = macfb_setcolreg, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/matrox/matroxfb_crtc2.c b/drivers/video/fbdev/matrox/matroxfb_crtc2.c index d2a81a2c3ac0..7655afa3fd50 100644 --- a/drivers/video/fbdev/matrox/matroxfb_crtc2.c +++ b/drivers/video/fbdev/matrox/matroxfb_crtc2.c @@ -563,7 +563,7 @@ static int matroxfb_dh_blank(int blank, struct fb_info* info) { #undef m2info } -static struct fb_ops matroxfb_dh_ops = { +static const struct fb_ops matroxfb_dh_ops = { .owner = THIS_MODULE, .fb_open = matroxfb_dh_open, .fb_release = matroxfb_dh_release, diff --git a/drivers/video/fbdev/maxinefb.c b/drivers/video/fbdev/maxinefb.c index 5bb1b5c308a7..ae1a42bcb0ea 100644 --- a/drivers/video/fbdev/maxinefb.c +++ b/drivers/video/fbdev/maxinefb.c @@ -105,7 +105,7 @@ static int maxinefb_setcolreg(unsigned regno, unsigned red, unsigned green, return 0; } -static struct fb_ops maxinefb_ops = { +static const struct fb_ops maxinefb_ops = { .owner = THIS_MODULE, .fb_setcolreg = maxinefb_setcolreg, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/mbx/mbxfb.c b/drivers/video/fbdev/mbx/mbxfb.c index 50935252b50b..25dad4507d77 100644 --- a/drivers/video/fbdev/mbx/mbxfb.c +++ b/drivers/video/fbdev/mbx/mbxfb.c @@ -671,7 +671,7 @@ static int mbxfb_ioctl(struct fb_info *info, unsigned int cmd, return -EINVAL; } -static struct fb_ops mbxfb_ops = { +static const struct fb_ops mbxfb_ops = { .owner = THIS_MODULE, .fb_check_var = mbxfb_check_var, .fb_set_par = mbxfb_set_par, diff --git a/drivers/video/fbdev/metronomefb.c b/drivers/video/fbdev/metronomefb.c index bb4fee52e501..a42e2eceee48 100644 --- a/drivers/video/fbdev/metronomefb.c +++ b/drivers/video/fbdev/metronomefb.c @@ -558,7 +558,7 @@ static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf, return (err) ? err : count; } -static struct fb_ops metronomefb_ops = { +static const struct fb_ops metronomefb_ops = { .owner = THIS_MODULE, .fb_write = metronomefb_write, .fb_fillrect = metronomefb_fillrect, diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c index 47bc7c59bbd8..33db0850086f 100644 --- a/drivers/video/fbdev/mmp/fb/mmpfb.c +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c @@ -454,7 +454,7 @@ static int mmpfb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops mmpfb_ops = { +static const struct fb_ops mmpfb_ops = { .owner = THIS_MODULE, .fb_blank = mmpfb_blank, .fb_check_var = mmpfb_check_var, diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c index bafd5f5fac5a..4af28e4421e5 100644 --- a/drivers/video/fbdev/mx3fb.c +++ b/drivers/video/fbdev/mx3fb.c @@ -1249,7 +1249,7 @@ static int mx3fb_pan_display(struct fb_var_screeninfo *var, * invoked by the core framebuffer driver to perform operations like * blitting, rectangle filling, copy regions and cursor definition. */ -static struct fb_ops mx3fb_ops = { +static const struct fb_ops mx3fb_ops = { .owner = THIS_MODULE, .fb_set_par = mx3fb_set_par, .fb_check_var = mx3fb_check_var, @@ -1389,7 +1389,8 @@ static int mx3fb_unmap_video_memory(struct fb_info *fbi) * mx3fb_init_fbinfo() - initialize framebuffer information object. * @return: initialized framebuffer structure. */ -static struct fb_info *mx3fb_init_fbinfo(struct device *dev, struct fb_ops *ops) +static struct fb_info *mx3fb_init_fbinfo(struct device *dev, + const struct fb_ops *ops) { struct fb_info *fbi; struct mx3fb_info *mx3fbi; diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c index b770946a0920..e6ea853c1723 100644 --- a/drivers/video/fbdev/neofb.c +++ b/drivers/video/fbdev/neofb.c @@ -1610,7 +1610,7 @@ neofb_cursor(struct fb_info *info, struct fb_cursor *cursor) } */ -static struct fb_ops neofb_ops = { +static const struct fb_ops neofb_ops = { .owner = THIS_MODULE, .fb_open = neofb_open, .fb_release = neofb_release, diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c index a970edc2a6f8..c8cee2d890dc 100644 --- a/drivers/video/fbdev/ocfb.c +++ b/drivers/video/fbdev/ocfb.c @@ -285,7 +285,7 @@ static int ocfb_init_var(struct ocfb_dev *fbdev) return 0; } -static struct fb_ops ocfb_ops = { +static const struct fb_ops ocfb_ops = { .owner = THIS_MODULE, .fb_setcolreg = ocfb_setcolreg, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c index fbc6eafb63c7..5cd0f5f6a4ae 100644 --- a/drivers/video/fbdev/offb.c +++ b/drivers/video/fbdev/offb.c @@ -286,7 +286,7 @@ static void offb_destroy(struct fb_info *info) framebuffer_release(info); } -static struct fb_ops offb_ops = { +static const struct fb_ops offb_ops = { .owner = THIS_MODULE, .fb_destroy = offb_destroy, .fb_setcolreg = offb_setcolreg, diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c index 858c2c011d19..8dfa9158ba78 100644 --- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c @@ -1280,7 +1280,7 @@ ssize_t omapfb_write(struct fb_info *info, const char __user *buf, } #endif -static struct fb_ops omapfb_ops = { +static const struct fb_ops omapfb_ops = { .owner = THIS_MODULE, .fb_open = omapfb_open, .fb_release = omapfb_release, diff --git a/drivers/video/fbdev/p9100.c b/drivers/video/fbdev/p9100.c index 8c18cc51aae2..6da672e92643 100644 --- a/drivers/video/fbdev/p9100.c +++ b/drivers/video/fbdev/p9100.c @@ -37,7 +37,7 @@ static int p9100_ioctl(struct fb_info *, unsigned int, unsigned long); * Frame buffer operations */ -static struct fb_ops p9100_ops = { +static const struct fb_ops p9100_ops = { .owner = THIS_MODULE, .fb_setcolreg = p9100_setcolreg, .fb_blank = p9100_blank, diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c index 632b246ca35f..ce413a9df06e 100644 --- a/drivers/video/fbdev/platinumfb.c +++ b/drivers/video/fbdev/platinumfb.c @@ -96,7 +96,7 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var, * Interface used by the world */ -static struct fb_ops platinumfb_ops = { +static const struct fb_ops platinumfb_ops = { .owner = THIS_MODULE, .fb_check_var = platinumfb_check_var, .fb_set_par = platinumfb_set_par, diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c index 1dcf02e12af4..8f933bad461c 100644 --- a/drivers/video/fbdev/pm2fb.c +++ b/drivers/video/fbdev/pm2fb.c @@ -1483,7 +1483,7 @@ static int pm2fb_cursor(struct fb_info *info, struct fb_cursor *cursor) * Frame buffer operations */ -static struct fb_ops pm2fb_ops = { +static const struct fb_ops pm2fb_ops = { .owner = THIS_MODULE, .fb_check_var = pm2fb_check_var, .fb_set_par = pm2fb_set_par, diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c index 6130aa56a1e9..15a2b495235b 100644 --- a/drivers/video/fbdev/pm3fb.c +++ b/drivers/video/fbdev/pm3fb.c @@ -1200,7 +1200,7 @@ static int pm3fb_blank(int blank_mode, struct fb_info *info) * Frame buffer operations */ -static struct fb_ops pm3fb_ops = { +static const struct fb_ops pm3fb_ops = { .owner = THIS_MODULE, .fb_check_var = pm3fb_check_var, .fb_set_par = pm3fb_set_par, diff --git a/drivers/video/fbdev/pmag-aa-fb.c b/drivers/video/fbdev/pmag-aa-fb.c index d1e78ce3a9c2..7b33b52b2526 100644 --- a/drivers/video/fbdev/pmag-aa-fb.c +++ b/drivers/video/fbdev/pmag-aa-fb.c @@ -147,7 +147,7 @@ static int aafb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops aafb_ops = { +static const struct fb_ops aafb_ops = { .owner = THIS_MODULE, .fb_blank = aafb_blank, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/pmag-ba-fb.c b/drivers/video/fbdev/pmag-ba-fb.c index 56b912bb28de..a60e56d8980b 100644 --- a/drivers/video/fbdev/pmag-ba-fb.c +++ b/drivers/video/fbdev/pmag-ba-fb.c @@ -117,7 +117,7 @@ static int pmagbafb_setcolreg(unsigned int regno, unsigned int red, return 0; } -static struct fb_ops pmagbafb_ops = { +static const struct fb_ops pmagbafb_ops = { .owner = THIS_MODULE, .fb_setcolreg = pmagbafb_setcolreg, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/pmagb-b-fb.c b/drivers/video/fbdev/pmagb-b-fb.c index 2822b2225924..f02080f21077 100644 --- a/drivers/video/fbdev/pmagb-b-fb.c +++ b/drivers/video/fbdev/pmagb-b-fb.c @@ -121,7 +121,7 @@ static int pmagbbfb_setcolreg(unsigned int regno, unsigned int red, return 0; } -static struct fb_ops pmagbbfb_ops = { +static const struct fb_ops pmagbbfb_ops = { .owner = THIS_MODULE, .fb_setcolreg = pmagbbfb_setcolreg, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c index 5ed2db39d823..834f63edf700 100644 --- a/drivers/video/fbdev/ps3fb.c +++ b/drivers/video/fbdev/ps3fb.c @@ -934,7 +934,7 @@ static irqreturn_t ps3fb_vsync_interrupt(int irq, void *ptr) } -static struct fb_ops ps3fb_ops = { +static const struct fb_ops ps3fb_ops = { .fb_open = ps3fb_open, .fb_release = ps3fb_release, .fb_read = fb_sys_read, diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c index 0a3b2b7c7891..fcb16eabbb0d 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -707,7 +707,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf, } #endif /* CONFIG_PVR2_DMA */ -static struct fb_ops pvr2fb_ops = { +static const struct fb_ops pvr2fb_ops = { .owner = THIS_MODULE, .fb_setcolreg = pvr2fb_setcolreg, .fb_blank = pvr2fb_blank, diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c index 1410f476e135..c672c3354a2c 100644 --- a/drivers/video/fbdev/pxa168fb.c +++ b/drivers/video/fbdev/pxa168fb.c @@ -545,7 +545,7 @@ static irqreturn_t pxa168fb_handle_irq(int irq, void *dev_id) return IRQ_NONE; } -static struct fb_ops pxa168fb_ops = { +static const struct fb_ops pxa168fb_ops = { .owner = THIS_MODULE, .fb_check_var = pxa168fb_check_var, .fb_set_par = pxa168fb_set_par, diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c index f70c9f79622e..6f7e9fb63190 100644 --- a/drivers/video/fbdev/pxafb.c +++ b/drivers/video/fbdev/pxafb.c @@ -597,7 +597,7 @@ static int pxafb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops pxafb_ops = { +static const struct fb_ops pxafb_ops = { .owner = THIS_MODULE, .fb_check_var = pxafb_check_var, .fb_set_par = pxafb_set_par, @@ -865,7 +865,7 @@ static int overlayfb_set_par(struct fb_info *info) return 0; } -static struct fb_ops overlay_fb_ops = { +static const struct fb_ops overlay_fb_ops = { .owner = THIS_MODULE, .fb_open = overlayfb_open, .fb_release = overlayfb_release, diff --git a/drivers/video/fbdev/q40fb.c b/drivers/video/fbdev/q40fb.c index 0b93aa964d43..79ff14a35c85 100644 --- a/drivers/video/fbdev/q40fb.c +++ b/drivers/video/fbdev/q40fb.c @@ -75,7 +75,7 @@ static int q40fb_setcolreg(unsigned regno, unsigned red, unsigned green, return 0; } -static struct fb_ops q40fb_ops = { +static const struct fb_ops q40fb_ops = { .owner = THIS_MODULE, .fb_setcolreg = q40fb_setcolreg, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c index ca593a3e41d7..764ec3285e62 100644 --- a/drivers/video/fbdev/riva/fbdev.c +++ b/drivers/video/fbdev/riva/fbdev.c @@ -1673,7 +1673,7 @@ static int rivafb_sync(struct fb_info *info) * ------------------------------------------------------------------------- */ /* kernel interface */ -static struct fb_ops riva_fb_ops = { +static const struct fb_ops riva_fb_ops = { .owner = THIS_MODULE, .fb_open = rivafb_open, .fb_release = rivafb_release, diff --git a/drivers/video/fbdev/s3c-fb.c b/drivers/video/fbdev/s3c-fb.c index ba04d7a67829..f4871c430f8d 100644 --- a/drivers/video/fbdev/s3c-fb.c +++ b/drivers/video/fbdev/s3c-fb.c @@ -1035,7 +1035,7 @@ static int s3c_fb_ioctl(struct fb_info *info, unsigned int cmd, return ret; } -static struct fb_ops s3c_fb_ops = { +static const struct fb_ops s3c_fb_ops = { .owner = THIS_MODULE, .fb_check_var = s3c_fb_check_var, .fb_set_par = s3c_fb_set_par, diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c index a702da89910b..2fb15a540167 100644 --- a/drivers/video/fbdev/s3c2410fb.c +++ b/drivers/video/fbdev/s3c2410fb.c @@ -618,7 +618,7 @@ static int s3c2410fb_debug_store(struct device *dev, static DEVICE_ATTR(debug, 0664, s3c2410fb_debug_show, s3c2410fb_debug_store); -static struct fb_ops s3c2410fb_ops = { +static const struct fb_ops s3c2410fb_ops = { .owner = THIS_MODULE, .fb_check_var = s3c2410fb_check_var, .fb_set_par = s3c2410fb_set_par, diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c index be16c349c10f..60c424fae988 100644 --- a/drivers/video/fbdev/s3fb.c +++ b/drivers/video/fbdev/s3fb.c @@ -1037,7 +1037,7 @@ static int s3fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) /* Frame buffer operations */ -static struct fb_ops s3fb_ops = { +static const struct fb_ops s3fb_ops = { .owner = THIS_MODULE, .fb_open = s3fb_open, .fb_release = s3fb_release, diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c index 81ad3aa1ca06..4680cc3efb81 100644 --- a/drivers/video/fbdev/sa1100fb.c +++ b/drivers/video/fbdev/sa1100fb.c @@ -574,7 +574,7 @@ static int sa1100fb_mmap(struct fb_info *info, return vm_iomap_memory(vma, info->fix.mmio_start, info->fix.mmio_len); } -static struct fb_ops sa1100fb_ops = { +static const struct fb_ops sa1100fb_ops = { .owner = THIS_MODULE, .fb_check_var = sa1100fb_check_var, .fb_set_par = sa1100fb_set_par, diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c index 512789f5f884..aab312a7d9da 100644 --- a/drivers/video/fbdev/savage/savagefb_driver.c +++ b/drivers/video/fbdev/savage/savagefb_driver.c @@ -1637,7 +1637,7 @@ static int savagefb_release(struct fb_info *info, int user) return 0; } -static struct fb_ops savagefb_ops = { +static const struct fb_ops savagefb_ops = { .owner = THIS_MODULE, .fb_open = savagefb_open, .fb_release = savagefb_release, diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c index ab8fe838c776..b8ec8d9bb4c8 100644 --- a/drivers/video/fbdev/sh7760fb.c +++ b/drivers/video/fbdev/sh7760fb.c @@ -341,7 +341,7 @@ static int sh7760fb_set_par(struct fb_info *info) return 0; } -static struct fb_ops sh7760fb_ops = { +static const struct fb_ops sh7760fb_ops = { .owner = THIS_MODULE, .fb_blank = sh7760fb_blank, .fb_check_var = sh7760fb_check_var, diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c index c249763dbf0b..25f119efebc0 100644 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c @@ -1490,7 +1490,7 @@ sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct vm_area_struct *vma) ovl->dma_handle, ovl->fb_size); } -static struct fb_ops sh_mobile_lcdc_overlay_ops = { +static const struct fb_ops sh_mobile_lcdc_overlay_ops = { .owner = THIS_MODULE, .fb_read = fb_sys_read, .fb_write = fb_sys_write, @@ -1964,7 +1964,7 @@ sh_mobile_lcdc_mmap(struct fb_info *info, struct vm_area_struct *vma) ch->dma_handle, ch->fb_size); } -static struct fb_ops sh_mobile_lcdc_ops = { +static const struct fb_ops sh_mobile_lcdc_ops = { .owner = THIS_MODULE, .fb_setcolreg = sh_mobile_lcdc_setcolreg, .fb_read = fb_sys_read, diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c index 7dc0105f700d..533a047d07a2 100644 --- a/drivers/video/fbdev/simplefb.c +++ b/drivers/video/fbdev/simplefb.c @@ -78,7 +78,7 @@ static void simplefb_destroy(struct fb_info *info) iounmap(info->screen_base); } -static struct fb_ops simplefb_ops = { +static const struct fb_ops simplefb_ops = { .owner = THIS_MODULE, .fb_destroy = simplefb_destroy, .fb_setcolreg = simplefb_setcolreg, diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c index b443a8ed4600..ac140962b1bf 100644 --- a/drivers/video/fbdev/sis/sis_main.c +++ b/drivers/video/fbdev/sis/sis_main.c @@ -1906,7 +1906,7 @@ sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info) /* ---------------- fb_ops structures ----------------- */ -static struct fb_ops sisfb_ops = { +static const struct fb_ops sisfb_ops = { .owner = THIS_MODULE, .fb_open = sisfb_open, .fb_release = sisfb_release, diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c index 812a36cb60c3..bcacfb6934fa 100644 --- a/drivers/video/fbdev/skeletonfb.c +++ b/drivers/video/fbdev/skeletonfb.c @@ -634,7 +634,7 @@ int xxxfb_sync(struct fb_info *info) * Frame buffer operations */ -static struct fb_ops xxxfb_ops = { +static const struct fb_ops xxxfb_ops = { .owner = THIS_MODULE, .fb_open = xxxfb_open, .fb_read = xxxfb_read, diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c index 207d0add684b..6a1b4a853d9e 100644 --- a/drivers/video/fbdev/sm712fb.c +++ b/drivers/video/fbdev/sm712fb.c @@ -1369,7 +1369,7 @@ static int smtc_set_par(struct fb_info *info) return 0; } -static struct fb_ops smtcfb_ops = { +static const struct fb_ops smtcfb_ops = { .owner = THIS_MODULE, .fb_check_var = smtc_check_var, .fb_set_par = smtc_set_par, diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c index e362d7da87fc..bfac3ee4a642 100644 --- a/drivers/video/fbdev/smscufx.c +++ b/drivers/video/fbdev/smscufx.c @@ -1268,7 +1268,7 @@ static int ufx_ops_blank(int blank_mode, struct fb_info *info) return 0; } -static struct fb_ops ufx_ops = { +static const struct fb_ops ufx_ops = { .owner = THIS_MODULE, .fb_read = fb_sys_read, .fb_write = ufx_ops_write, diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c index 78ca7ffc40c2..142535267fec 100644 --- a/drivers/video/fbdev/ssd1307fb.c +++ b/drivers/video/fbdev/ssd1307fb.c @@ -280,7 +280,7 @@ static void ssd1307fb_imageblit(struct fb_info *info, const struct fb_image *ima ssd1307fb_update_display(par); } -static struct fb_ops ssd1307fb_ops = { +static const struct fb_ops ssd1307fb_ops = { .owner = THIS_MODULE, .fb_read = fb_sys_read, .fb_write = ssd1307fb_write, diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c index 4e22ae383c87..82e707a48e4e 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -1307,7 +1307,7 @@ static int sstfb_setup(char *options) } -static struct fb_ops sstfb_ops = { +static const struct fb_ops sstfb_ops = { .owner = THIS_MODULE, .fb_check_var = sstfb_check_var, .fb_set_par = sstfb_set_par, diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c index 9e88e3f594c2..5400ab79fbbd 100644 --- a/drivers/video/fbdev/stifb.c +++ b/drivers/video/fbdev/stifb.c @@ -1101,7 +1101,7 @@ stifb_init_display(struct stifb_info *fb) /* ------------ Interfaces to hardware functions ------------ */ -static struct fb_ops stifb_ops = { +static const struct fb_ops stifb_ops = { .owner = THIS_MODULE, .fb_setcolreg = stifb_setcolreg, .fb_blank = stifb_blank, diff --git a/drivers/video/fbdev/sunxvr1000.c b/drivers/video/fbdev/sunxvr1000.c index 784c9bd5d502..15b079505a00 100644 --- a/drivers/video/fbdev/sunxvr1000.c +++ b/drivers/video/fbdev/sunxvr1000.c @@ -59,7 +59,7 @@ static int gfb_setcolreg(unsigned regno, return 0; } -static struct fb_ops gfb_ops = { +static const struct fb_ops gfb_ops = { .owner = THIS_MODULE, .fb_setcolreg = gfb_setcolreg, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/sunxvr2500.c b/drivers/video/fbdev/sunxvr2500.c index 31683e5a8b79..1d3bacd9d5ac 100644 --- a/drivers/video/fbdev/sunxvr2500.c +++ b/drivers/video/fbdev/sunxvr2500.c @@ -63,7 +63,7 @@ static int s3d_setcolreg(unsigned regno, return 0; } -static struct fb_ops s3d_ops = { +static const struct fb_ops s3d_ops = { .owner = THIS_MODULE, .fb_setcolreg = s3d_setcolreg, .fb_fillrect = cfb_fillrect, diff --git a/drivers/video/fbdev/sunxvr500.c b/drivers/video/fbdev/sunxvr500.c index d392976126a6..9daf17b11106 100644 --- a/drivers/video/fbdev/sunxvr500.c +++ b/drivers/video/fbdev/sunxvr500.c @@ -186,7 +186,7 @@ static void e3d_copyarea(struct fb_info *info, const struct fb_copyarea *area) spin_unlock_irqrestore(&ep->lock, flags); } -static struct fb_ops e3d_ops = { +static const struct fb_ops e3d_ops = { .owner = THIS_MODULE, .fb_setcolreg = e3d_setcolreg, .fb_fillrect = e3d_fillrect, diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c index 7897f86fb23e..34b2e5b6e84a 100644 --- a/drivers/video/fbdev/tcx.c +++ b/drivers/video/fbdev/tcx.c @@ -40,7 +40,7 @@ static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *); * Frame buffer operations */ -static struct fb_ops tcx_ops = { +static const struct fb_ops tcx_ops = { .owner = THIS_MODULE, .fb_setcolreg = tcx_setcolreg, .fb_blank = tcx_blank, diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index fdbb1ea66e6c..0349cf69652f 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -1141,7 +1141,7 @@ static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor) return 0; } -static struct fb_ops tdfxfb_ops = { +static const struct fb_ops tdfxfb_ops = { .owner = THIS_MODULE, .fb_check_var = tdfxfb_check_var, .fb_set_par = tdfxfb_set_par, diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c index 286b2371c7dd..7cd262858241 100644 --- a/drivers/video/fbdev/tgafb.c +++ b/drivers/video/fbdev/tgafb.c @@ -70,7 +70,7 @@ static struct tc_driver tgafb_tc_driver; * Frame buffer operations */ -static struct fb_ops tgafb_ops = { +static const struct fb_ops tgafb_ops = { .owner = THIS_MODULE, .fb_check_var = tgafb_check_var, .fb_set_par = tgafb_set_par, diff --git a/drivers/video/fbdev/tmiofb.c b/drivers/video/fbdev/tmiofb.c index 4f2fcea10d2b..50111966c981 100644 --- a/drivers/video/fbdev/tmiofb.c +++ b/drivers/video/fbdev/tmiofb.c @@ -646,7 +646,7 @@ static int tmiofb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops tmiofb_ops = { +static const struct fb_ops tmiofb_ops = { .owner = THIS_MODULE, .fb_ioctl = tmiofb_ioctl, diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c index da74bf6c5996..715509917eaa 100644 --- a/drivers/video/fbdev/tridentfb.c +++ b/drivers/video/fbdev/tridentfb.c @@ -1443,7 +1443,7 @@ static int tridentfb_blank(int blank_mode, struct fb_info *info) return (blank_mode = FB_BLANK_NORMAL) ? 1 : 0; } -static struct fb_ops tridentfb_ops = { +static const struct fb_ops tridentfb_ops = { .owner = THIS_MODULE, .fb_setcolreg = tridentfb_setcolreg, .fb_pan_display = tridentfb_pan_display, diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c index e04fde9c1fcd..ca8d7343aaa1 100644 --- a/drivers/video/fbdev/valkyriefb.c +++ b/drivers/video/fbdev/valkyriefb.c @@ -113,7 +113,7 @@ static int valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p); static void valkyrie_par_to_fix(struct fb_par_valkyrie *par, struct fb_fix_screeninfo *fix); static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p); -static struct fb_ops valkyriefb_ops = { +static const struct fb_ops valkyriefb_ops = { .owner = THIS_MODULE, .fb_check_var = valkyriefb_check_var, .fb_set_par = valkyriefb_set_par, diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c index 54127905bfe7..95d3c59867d0 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -78,7 +78,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var, static int vfb_mmap(struct fb_info *info, struct vm_area_struct *vma); -static struct fb_ops vfb_ops = { +static const struct fb_ops vfb_ops = { .fb_read = fb_sys_read, .fb_write = fb_sys_write, .fb_check_var = vfb_check_var, diff --git a/drivers/video/fbdev/vga16fb.c b/drivers/video/fbdev/vga16fb.c index 2c6a576ed84c..a20eeb8308ff 100644 --- a/drivers/video/fbdev/vga16fb.c +++ b/drivers/video/fbdev/vga16fb.c @@ -1270,7 +1270,7 @@ static void vga16fb_destroy(struct fb_info *info) framebuffer_release(info); } -static struct fb_ops vga16fb_ops = { +static const struct fb_ops vga16fb_ops = { .owner = THIS_MODULE, .fb_open = vga16fb_open, .fb_release = vga16fb_release, diff --git a/drivers/video/fbdev/vt8500lcdfb.c b/drivers/video/fbdev/vt8500lcdfb.c index be8d9702cbb2..f744479dc7df 100644 --- a/drivers/video/fbdev/vt8500lcdfb.c +++ b/drivers/video/fbdev/vt8500lcdfb.c @@ -238,7 +238,7 @@ static int vt8500lcd_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops vt8500lcd_ops = { +static const struct fb_ops vt8500lcd_ops = { .owner = THIS_MODULE, .fb_set_par = vt8500lcd_set_par, .fb_setcolreg = vt8500lcd_setcolreg, diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c index c339a8fbad81..7b3eef1b893f 100644 --- a/drivers/video/fbdev/vt8623fb.c +++ b/drivers/video/fbdev/vt8623fb.c @@ -634,7 +634,7 @@ static int vt8623fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *i /* Frame buffer operations */ -static struct fb_ops vt8623fb_ops = { +static const struct fb_ops vt8623fb_ops = { .owner = THIS_MODULE, .fb_open = vt8623fb_open, .fb_release = vt8623fb_release, diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c index 3be07807edcd..fe628ec20149 100644 --- a/drivers/video/fbdev/w100fb.c +++ b/drivers/video/fbdev/w100fb.c @@ -549,7 +549,7 @@ static int w100fb_set_par(struct fb_info *info) /* * Frame buffer operations */ -static struct fb_ops w100fb_ops = { +static const struct fb_ops w100fb_ops = { .owner = THIS_MODULE, .fb_check_var = w100fb_check_var, .fb_set_par = w100fb_set_par, diff --git a/drivers/video/fbdev/wm8505fb.c b/drivers/video/fbdev/wm8505fb.c index 17c780315ca5..b656eff58c23 100644 --- a/drivers/video/fbdev/wm8505fb.c +++ b/drivers/video/fbdev/wm8505fb.c @@ -246,7 +246,7 @@ static int wm8505fb_blank(int blank, struct fb_info *info) return 0; } -static struct fb_ops wm8505fb_ops = { +static const struct fb_ops wm8505fb_ops = { .owner = THIS_MODULE, .fb_set_par = wm8505fb_set_par, .fb_setcolreg = wm8505fb_setcolreg, diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c index a3d6b6db221b..00307b8693bf 100644 --- a/drivers/video/fbdev/xen-fbfront.c +++ b/drivers/video/fbdev/xen-fbfront.c @@ -328,7 +328,7 @@ static int xenfb_set_par(struct fb_info *info) return 0; } -static struct fb_ops xenfb_fb_ops = { +static const struct fb_ops xenfb_fb_ops = { .owner = THIS_MODULE, .fb_read = fb_sys_read, .fb_write = xenfb_write, diff --git a/drivers/video/fbdev/xilinxfb.c b/drivers/video/fbdev/xilinxfb.c index 8628829b470d..ca4ff658cad0 100644 --- a/drivers/video/fbdev/xilinxfb.c +++ b/drivers/video/fbdev/xilinxfb.c @@ -247,7 +247,7 @@ xilinx_fb_blank(int blank_mode, struct fb_info *fbi) return 0; /* success */ } -static struct fb_ops xilinxfb_ops = { +static const struct fb_ops xilinxfb_ops = { .owner = THIS_MODULE, .fb_setcolreg = xilinx_fb_setcolreg, .fb_blank = xilinx_fb_blank, -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3386CC432C0 for ; Tue, 3 Dec 2019 16:39:58 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 15497205ED for ; Tue, 3 Dec 2019 16:39:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 15497205ED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 427616EA02; Tue, 3 Dec 2019 16:39:57 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE49B6E9FE; Tue, 3 Dec 2019 16:39:55 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 08:39:55 -0800 X-IronPort-AV: E=Sophos;i="5.69,273,1571727600"; d="scan'208";a="222881577" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 08:39:50 -0800 From: Jani Nikula To: dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org Subject: [PATCH v3 08/12] video: constify fb ops across all drivers Date: Tue, 3 Dec 2019 18:38:50 +0200 Message-Id: X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jani.nikula@intel.com, Daniel Vetter , intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Tm93IHRoYXQgdGhlIGZib3BzIG1lbWJlciBvZiBzdHJ1Y3QgZmJfaW5mbyBpcyBjb25zdCwgd2Ug Y2FuIHN0YXJ0Cm1ha2luZyB0aGUgb3BzIGNvbnN0IGFzIHdlbGwuCgpUaGlzIGRvZXMgbm90IGNv dmVyIGFsbCBkcml2ZXJzOyBzb21lIGFjdHVhbGx5IG1vZGlmeSB0aGUgZmJvcHMgc3RydWN0LApm b3IgZXhhbXBsZSB0byBhZGp1c3QgZm9yIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucywgYW5kIG90 aGVycyBkbyBtb3JlCmludm9sdmVkIHRoaW5ncyB0aGF0IEknZCByYXRoZXIgbm90IHRvdWNoIGlu IHByYWN0aWNhbGx5IG9ic29sZXRlCmRyaXZlcnMuIE1vc3RseSB0aGlzIGlzIHRoZSBsb3cgaGFu Z2luZyBmcnVpdCB3aGVyZSB3ZSBjYW4gYWRkICJjb25zdCIKYW5kIGJlIGRvbmUgd2l0aCBpdC4K CnYzOgotIHVuLWNvbnN0aWZ5IGF0eWZiLCBtYjg2Mnh4LCBudmlkaWEgYW5kIHV2ZXNhYmYgKDBk YXkpCgp2MjoKLSBmaXggdHlwbyAoQ2hyaXN0b3BoZSBkZSBEaW5lY2hpbikKLSB1c2UgInN0YXRp YyBjb25zdCIgaW5zdGVhZCBvZiAiY29uc3Qgc3RhdGljIiBpbiBteDNmYi5jCi0gYWxzbyBjb25z dGlmeSBzbXNjdWZ4LmMKCkNjOiBsaW51eC1mYmRldkB2Z2VyLmtlcm5lbC5vcmcKUmV2aWV3ZWQt Ynk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6 IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy92aWRlby9m YmRldi82ODMyOGZiLmMgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJk ZXYvYWNvcm5mYi5jICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2 L2FtYmEtY2xjZC5jICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9h bWlmYi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvYXJj ZmIuYyAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2Fya2Zi LmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9hc2lsaWFu dGZiLmMgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvYXRtZWxfbGNk ZmIuYyAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9hdHkxMjhm Yi5jICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9hdHkvcmFkZW9uX2Jh c2UuYyAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvYXUxMTAwZmIuYyAgICAg ICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1MTIwMGZiLmMgICAgICAg ICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9icm9hZHNoZWV0ZmIuYyAgICAg ICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvYncyLmMgICAgICAgICAgICAgICAg ICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2Nhcm1pbmVmYi5jICAgICAgICAgICAg ICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9jZzE0LmMgICAgICAgICAgICAgICAgICAg ICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvY2czLmMgICAgICAgICAgICAgICAgICAgICAg fCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2NnNi5jICAgICAgICAgICAgICAgICAgICAgIHwg MiArLQogZHJpdmVycy92aWRlby9mYmRldi9jaGlwc2ZiLmMgICAgICAgICAgICAgICAgICB8IDIg Ky0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvY2lycnVzZmIuYyAgICAgICAgICAgICAgICAgfCAyICst CiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2NscHM3MTF4LWZiLmMgICAgICAgICAgICAgIHwgMiArLQog ZHJpdmVycy92aWRlby9mYmRldi9jb2JhbHRfbGNkZmIuYyAgICAgICAgICAgICB8IDIgKy0KIGRy aXZlcnMvdmlkZW8vZmJkZXYvY29udHJvbGZiLmMgICAgICAgICAgICAgICAgfCAyICstCiBkcml2 ZXJzL3ZpZGVvL2ZiZGV2L2N5YmVyMjAwMGZiLmMgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVy cy92aWRlby9mYmRldi9kYTh4eC1mYi5jICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMv dmlkZW8vZmJkZXYvZG5mYi5jICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3Zp ZGVvL2ZiZGV2L2VmaWZiLmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRl by9mYmRldi9lcDkzeHgtZmIuYyAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8v ZmJkZXYvZmItcHV2My5jICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2Zi ZGV2L2ZmYi5jICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRl di9mbTJmYi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYv ZnNsLWRpdS1mYi5jICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2cz NjRmYi5jICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9nYmVm Yi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvZ2VvZGUv Z3gxZmJfY29yZS5jICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2d4 ZmJfY29yZS5jICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9nZW9kZS9seGZi X2NvcmUuYyAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvZ29sZGZpc2hmYi5j ICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2dydmdhLmMgICAgICAg ICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9neHQ0NTAwLmMgICAgICAg ICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvaGVjdWJhZmIuYyAgICAgICAg ICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2hnYWZiLmMgICAgICAgICAgICAg ICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9oaXRmYi5jICAgICAgICAgICAgICAg ICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvaHBmYi5jICAgICAgICAgICAgICAgICAg ICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2h5cGVydl9mYi5jICAgICAgICAgICAgICAg IHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9pNzQwZmIuYyAgICAgICAgICAgICAgICAgICB8 IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvaW1zdHRmYi5jICAgICAgICAgICAgICAgICAgfCAy ICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2lteGZiLmMgICAgICAgICAgICAgICAgICAgIHwgMiAr LQogZHJpdmVycy92aWRlby9mYmRldi9pbnRlbGZiL2ludGVsZmJkcnYuYyAgICAgICB8IDIgKy0K IGRyaXZlcnMvdmlkZW8vZmJkZXYva3lyby9mYmRldi5jICAgICAgICAgICAgICAgfCAyICstCiBk cml2ZXJzL3ZpZGVvL2ZiZGV2L2xlby5jICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJp dmVycy92aWRlby9mYmRldi9tYWNmYi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZl cnMvdmlkZW8vZmJkZXYvbWF0cm94L21hdHJveGZiX2NydGMyLmMgICAgfCAyICstCiBkcml2ZXJz L3ZpZGVvL2ZiZGV2L21heGluZWZiLmMgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92 aWRlby9mYmRldi9tYngvbWJ4ZmIuYyAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlk ZW8vZmJkZXYvbWV0cm9ub21lZmIuYyAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVv L2ZiZGV2L21tcC9mYi9tbXBmYi5jICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9m YmRldi9teDNmYi5jICAgICAgICAgICAgICAgICAgICB8IDUgKysrLS0KIGRyaXZlcnMvdmlkZW8v ZmJkZXYvbmVvZmIuYyAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2Zi ZGV2L29jZmIuYyAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRl di9vZmZiLmMgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYv b21hcDIvb21hcGZiL29tYXBmYi1tYWluLmMgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3A5 MTAwLmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9wbGF0 aW51bWZiLmMgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcG0yZmIu YyAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtM2ZiLmMg ICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9wbWFnLWFhLWZi LmMgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcG1hZy1iYS1mYi5j ICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtYWdiLWItZmIuYyAg ICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9wczNmYi5jICAgICAgICAg ICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcHZyMmZiLmMgICAgICAgICAg ICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2OGZiLmMgICAgICAgICAg ICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9weGFmYi5jICAgICAgICAgICAgICAg ICAgICB8IDQgKystLQogZHJpdmVycy92aWRlby9mYmRldi9xNDBmYi5jICAgICAgICAgICAgICAg ICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcml2YS9mYmRldi5jICAgICAgICAgICAg ICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3MzYy1mYi5jICAgICAgICAgICAgICAgICAg IHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9zM2MyNDEwZmIuYyAgICAgICAgICAgICAgICB8 IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvczNmYi5jICAgICAgICAgICAgICAgICAgICAgfCAy ICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3NhMTEwMGZiLmMgICAgICAgICAgICAgICAgIHwgMiAr LQogZHJpdmVycy92aWRlby9mYmRldi9zYXZhZ2Uvc2F2YWdlZmJfZHJpdmVyLmMgICB8IDIgKy0K IGRyaXZlcnMvdmlkZW8vZmJkZXYvc2g3NzYwZmIuYyAgICAgICAgICAgICAgICAgfCAyICstCiBk cml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYyAgICAgICAgIHwgNCArKy0tCiBk cml2ZXJzL3ZpZGVvL2ZiZGV2L3NpbXBsZWZiLmMgICAgICAgICAgICAgICAgIHwgMiArLQogZHJp dmVycy92aWRlby9mYmRldi9zaXMvc2lzX21haW4uYyAgICAgICAgICAgICB8IDIgKy0KIGRyaXZl cnMvdmlkZW8vZmJkZXYvc2tlbGV0b25mYi5jICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJz L3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYyAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92 aWRlby9mYmRldi9zbXNjdWZ4LmMgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlk ZW8vZmJkZXYvc3NkMTMwN2ZiLmMgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVv L2ZiZGV2L3NzdGZiLmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9m YmRldi9zdGlmYi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJk ZXYvc3VueHZyMTAwMC5jICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2 L3N1bnh2cjI1MDAuYyAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9z dW54dnI1MDAuYyAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvdGN4 LmMgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3RkZnhm Yi5jICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi90Z2FmYi5j ICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvdG1pb2ZiLmMg ICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5j ICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi92YWxreXJpZWZiLmMg ICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvdmZiLmMgICAgICAgICAg ICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3ZnYTE2ZmIuYyAgICAgICAg ICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi92dDg1MDBsY2RmYi5jICAgICAg ICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvdnQ4NjIzZmIuYyAgICAgICAgICAg ICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jICAgICAgICAgICAgICAg ICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi93bTg1MDVmYi5jICAgICAgICAgICAgICAg ICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYveGVuLWZiZnJvbnQuYyAgICAgICAgICAgICAg fCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3hpbGlueGZiLmMgICAgICAgICAgICAgICAgIHwg MiArLQogMTA3IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCAxMTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi82ODMyOGZiLmMgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2LzY4MzI4ZmIuYwppbmRleCBkNDhlOTYwODhmNzYuLjQ5MWZkNWE4Mjk5MyAx MDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi82ODMyOGZiLmMKKysrIGIvZHJpdmVycy92 aWRlby9mYmRldi82ODMyOGZiLmMKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIGludCBtYzY4eDMy OGZiX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLAogCQkJICAgc3Ry dWN0IGZiX2luZm8gKmluZm8pOwogc3RhdGljIGludCBtYzY4eDMyOGZiX21tYXAoc3RydWN0IGZi X2luZm8gKmluZm8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIAotc3RhdGljIHN0cnVj dCBmYl9vcHMgbWM2OHgzMjhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBt YzY4eDMyOGZiX29wcyA9IHsKIAkuZmJfY2hlY2tfdmFyCT0gbWM2OHgzMjhmYl9jaGVja192YXIs CiAJLmZiX3NldF9wYXIJPSBtYzY4eDMyOGZiX3NldF9wYXIsCiAJLmZiX3NldGNvbHJlZwk9IG1j Njh4MzI4ZmJfc2V0Y29scmVnLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9hY29y bmZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Fjb3JuZmIuYwppbmRleCA3Y2FjYWU1YTg3OTcu LmEzYWY0OTUyOTE3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9hY29ybmZiLmMK KysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hY29ybmZiLmMKQEAgLTYwNCw3ICs2MDQsNyBAQCBh Y29ybmZiX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLCBzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgYWNv cm5mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBhY29ybmZiX29wcyA9IHsK IAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGFjb3JuZmJfY2hlY2tf dmFyLAogCS5mYl9zZXRfcGFyCT0gYWNvcm5mYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aWRlby9mYmRldi9hbWJhLWNsY2QuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYW1iYS1jbGNk LmMKaW5kZXggN2RlNDNiZTZlZjJjLi5jM2Q1NWZjNmM0ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dmlkZW8vZmJkZXYvYW1iYS1jbGNkLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hbWJhLWNs Y2QuYwpAQCAtNDIzLDcgKzQyMyw3IEBAIHN0YXRpYyBpbnQgY2xjZGZiX21tYXAoc3RydWN0IGZi X2luZm8gKmluZm8sCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgY2xj ZGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGNsY2RmYl9vcHMgPSB7CiAJ Lm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBjbGNkZmJfY2hlY2tfdmFy LAogCS5mYl9zZXRfcGFyCT0gY2xjZGZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L2FtaWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2FtaWZiLmMKaW5kZXggOTFk ZGM5NjAyMDE0Li4yMGUwM2UwMGI2NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv YW1pZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2FtaWZiLmMKQEAgLTM0OTMsNyArMzQ5 Myw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBhbWlmYl9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAq ZGV2X2lkKQogfQogCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGFtaWZiX29wcyA9IHsKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGFtaWZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RV TEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGFtaWZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGFt aWZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2FyY2ZiLmMgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L2FyY2ZiLmMKaW5kZXggYTQ4NzQxYWFiMjQwLi4zMTRhYjgyZTAx YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXJjZmIuYworKysgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2FyY2ZiLmMKQEAgLTQ5MSw3ICs0OTEsNyBAQCBzdGF0aWMgc3NpemVfdCBh cmNmYl93cml0ZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwK IAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBhcmNmYl9vcHMgPSB7Citz dGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBhcmNmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNf TU9EVUxFLAogCS5mYl9vcGVuCT0gYXJjZmJfb3BlbiwKIAkuZmJfcmVhZCAgICAgICAgPSBmYl9z eXNfcmVhZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXJrZmIuYyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvYXJrZmIuYwppbmRleCBmOTQwZThiNjZiODUuLjExYWI5YTE1Mzg2MCAx MDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9hcmtmYi5jCisrKyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvYXJrZmIuYwpAQCAtOTE3LDcgKzkxNyw3IEBAIHN0YXRpYyBpbnQgYXJrZmJfcGFu X2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICpp bmZvCiAKIC8qIEZyYW1lIGJ1ZmZlciBvcGVyYXRpb25zICovCiAKLXN0YXRpYyBzdHJ1Y3QgZmJf b3BzIGFya2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGFya2ZiX29wcyA9 IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX29wZW4JPSBhcmtmYl9vcGVuLAogCS5m Yl9yZWxlYXNlCT0gYXJrZmJfcmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvYXNpbGlhbnRmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9hc2lsaWFudGZiLmMKaW5kZXgg ZWEzMTA1NGEyOGNhLi4zZTAwNmRhNDc3NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvYXNpbGlhbnRmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXNpbGlhbnRmYi5jCkBA IC05NSw3ICs5NSw3IEBAIHN0YXRpYyBpbnQgYXNpbGlhbnRmYl9zZXRfcGFyKHN0cnVjdCBmYl9p bmZvICppbmZvKTsKIHN0YXRpYyBpbnQgYXNpbGlhbnRmYl9zZXRjb2xyZWcodV9pbnQgcmVnbm8s IHVfaW50IHJlZCwgdV9pbnQgZ3JlZW4sIHVfaW50IGJsdWUsCiAJCQkJdV9pbnQgdHJhbnNwLCBz dHJ1Y3QgZmJfaW5mbyAqaW5mbyk7CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGFzaWxpYW50ZmJf b3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgYXNpbGlhbnRmYl9vcHMgPSB7CiAJ Lm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBhc2lsaWFudGZiX2NoZWNr X3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGFzaWxpYW50ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlkZW8vZmJkZXYvYXRtZWxfbGNkZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXRt ZWxfbGNkZmIuYwppbmRleCA1ZmY4ZTAzMjBkOTUuLmQ1NjdmNWQ1NmMxMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy92aWRlby9mYmRldi9hdG1lbF9sY2RmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJk ZXYvYXRtZWxfbGNkZmIuYwpAQCAtODI0LDcgKzgyNCw3IEBAIHN0YXRpYyBpbnQgYXRtZWxfbGNk ZmJfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAo KGJsYW5rX21vZGUgPT0gRkJfQkxBTktfTk9STUFMKSA/IDEgOiAwKTsKIH0KIAotc3RhdGljIHN0 cnVjdCBmYl9vcHMgYXRtZWxfbGNkZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9v cHMgYXRtZWxfbGNkZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfY2hl Y2tfdmFyCT0gYXRtZWxfbGNkZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyCT0gYXRtZWxfbGNk ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L2F0eTEyOGZi LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9hdHkxMjhmYi5jCmluZGV4IGZjMWU0NWQ0NDcx OS4uZDdlNDFjOGRkNTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9hdHkx MjhmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L2F0eTEyOGZiLmMKQEAgLTUwOSw3 ICs1MDksNyBAQCBzdGF0aWMgdm9pZCBhdHkxMjhfYmxfc2V0X3Bvd2VyKHN0cnVjdCBmYl9pbmZv ICppbmZvLCBpbnQgcG93ZXIpOwogCQkJICAocmVhZGIoYmlvcyArICh2KSArIDMpIDw8IDI0KSkK IAogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBhdHkxMjhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qg c3RydWN0IGZiX29wcyBhdHkxMjhmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAog CS5mYl9jaGVja192YXIJPSBhdHkxMjhmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSBhdHkx MjhmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9hdHkvcmFkZW9u X2Jhc2UuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L3JhZGVvbl9iYXNlLmMKaW5kZXggNGNh MDc4NjZmMmY2Li4zYWYwMGUzYjk2NWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv YXR5L3JhZGVvbl9iYXNlLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hdHkvcmFkZW9uX2Jh c2UuYwpAQCAtMTk2NSw3ICsxOTY1LDcgQEAgc3RhdGljIGludCByYWRlb25mYl9zZXRfcGFyKHN0 cnVjdCBmYl9pbmZvICppbmZvKQogfQogCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHJhZGVvbmZi X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHJhZGVvbmZiX29wcyA9IHsKIAku b3duZXIJCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJCT0gcmFkZW9uZmJfY2hlY2tf dmFyLAogCS5mYl9zZXRfcGFyCQk9IHJhZGVvbmZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2F1MTEwMGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1MTEwMGZi LmMKaW5kZXggOTk5NDFhZTFmM2ExLi4zN2E2NTEyZmVkYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dmlkZW8vZmJkZXYvYXUxMTAwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1MTEwMGZi LmMKQEAgLTM0OCw3ICszNDgsNyBAQCBpbnQgYXUxMTAwZmJfZmJfbW1hcChzdHJ1Y3QgZmJfaW5m byAqZmJpLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkJCWZiZGV2LT5mYl9sZW4pOwog fQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBhdTExMDBmYl9vcHMgPQorc3RhdGljIGNvbnN0IHN0 cnVjdCBmYl9vcHMgYXUxMTAwZmJfb3BzID0KIHsKIAkub3duZXIJCQk9IFRISVNfTU9EVUxFLAog CS5mYl9zZXRjb2xyZWcJCT0gYXUxMTAwZmJfZmJfc2V0Y29scmVnLApkaWZmIC0tZ2l0IGEvZHJp dmVycy92aWRlby9mYmRldi9hdTEyMDBmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9hdTEyMDBm Yi5jCmluZGV4IDI2NWQzYjQ1ZWZkMC4uYzAwZTAxYTE3MzY4IDEwMDY0NAotLS0gYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2F1MTIwMGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hdTEyMDBm Yi5jCkBAIC0xNDgzLDcgKzE0ODMsNyBAQCBzdGF0aWMgaW50IGF1MTIwMGZiX2lvY3RsKHN0cnVj dCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLAogfQogCiAKLXN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIGF1MTIwMGZiX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGF1 MTIwMGZiX2ZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zh cgk9IGF1MTIwMGZiX2ZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGF1MTIwMGZiX2ZiX3Nl dF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Jyb2Fkc2hlZXRmYi5jIGIv ZHJpdmVycy92aWRlby9mYmRldi9icm9hZHNoZWV0ZmIuYwppbmRleCBkNmJhMzQ4ZGViOWYuLmZk NjZmNGQ0YTYyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9icm9hZHNoZWV0ZmIu YworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Jyb2Fkc2hlZXRmYi5jCkBAIC0xMDQ4LDcgKzEw NDgsNyBAQCBzdGF0aWMgc3NpemVfdCBicm9hZHNoZWV0ZmJfd3JpdGUoc3RydWN0IGZiX2luZm8g KmluZm8sIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJcmV0dXJuIChlcnIpID8gZXJyIDogY291 bnQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGJyb2Fkc2hlZXRmYl9vcHMgPSB7CitzdGF0 aWMgY29uc3Qgc3RydWN0IGZiX29wcyBicm9hZHNoZWV0ZmJfb3BzID0gewogCS5vd25lcgkJPSBU SElTX01PRFVMRSwKIAkuZmJfcmVhZCAgICAgICAgPSBmYl9zeXNfcmVhZCwKIAkuZmJfd3JpdGUJ PSBicm9hZHNoZWV0ZmJfd3JpdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2J3 Mi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9idzIuYwppbmRleCA0MzZmMTBmM2QzNzUuLjBkOWE2 YmI1N2EwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9idzIuYworKysgYi9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2J3Mi5jCkBAIC0zNyw3ICszNyw3IEBAIHN0YXRpYyBpbnQgYncyX2lv Y3RsKHN0cnVjdCBmYl9pbmZvICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiAgKiAg RnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBidzJf b3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgYncyX29wcyA9IHsKIAkub3duZXIJ CQk9IFRISVNfTU9EVUxFLAogCS5mYl9ibGFuawkJPSBidzJfYmxhbmssCiAJLmZiX2ZpbGxyZWN0 CQk9IGNmYl9maWxscmVjdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2FybWlu ZWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Nhcm1pbmVmYi5jCmluZGV4IDlmM2JlMDI1ODYy My4uYmYzZjJhOTU5OGIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Nhcm1pbmVm Yi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2FybWluZWZiLmMKQEAgLTUyNyw3ICs1Mjcs NyBAQCBzdGF0aWMgaW50IGluaXRfaGFyZHdhcmUoc3RydWN0IGNhcm1pbmVfaHcgKmh3KQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBjYXJtaW5lZmJfb3BzID0geworc3Rh dGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgY2FybWluZWZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX2ZpbGxyZWN0CT0gY2ZiX2ZpbGxyZWN0LAogCS5mYl9jb3B5YXJlYQk9 IGNmYl9jb3B5YXJlYSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2cxNC5jIGIv ZHJpdmVycy92aWRlby9mYmRldi9jZzE0LmMKaW5kZXggZDgwZDk5ZGIzYTQ2Li5hNjIwYjUxY2Y3 ZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2cxNC5jCisrKyBiL2RyaXZlcnMv dmlkZW8vZmJkZXYvY2cxNC5jCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBpbnQgY2cxNF9wYW5f ZGlzcGxheShzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKiwgc3RydWN0IGZiX2luZm8gKik7CiAg KiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBj ZzE0X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGNnMTRfb3BzID0gewogCS5v d25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBjZzE0X3NldGNvbHJlZywK IAkuZmJfcGFuX2Rpc3BsYXkJCT0gY2cxNF9wYW5fZGlzcGxheSwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdmlkZW8vZmJkZXYvY2czLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NnMy5jCmluZGV4IDA5 ZjYxNmRkZGZkNy4uNzdmNjQ3MGNlNjY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L2NnMy5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2czLmMKQEAgLTM5LDcgKzM5LDcgQEAg c3RhdGljIGludCBjZzNfaW9jdGwoc3RydWN0IGZiX2luZm8gKiwgdW5zaWduZWQgaW50LCB1bnNp Z25lZCBsb25nKTsKICAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwogICovCiAKLXN0YXRpYyBz dHJ1Y3QgZmJfb3BzIGNnM19vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBjZzNf b3BzID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBjZzNf c2V0Y29scmVnLAogCS5mYl9ibGFuawkJPSBjZzNfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2NnNi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9jZzYuYwppbmRleCBkNTg4 OGFlY2MyZmIuLmExYzY4Y2Q0OGQ3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9j ZzYuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NnNi5jCkBAIC00NCw3ICs0NCw3IEBAIHN0 YXRpYyBpbnQgY2c2X3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqLCBzdHJ1 Y3QgZmJfaW5mbyAqKTsKICAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwogICovCiAKLXN0YXRp YyBzdHJ1Y3QgZmJfb3BzIGNnNl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBj ZzZfb3BzID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBj ZzZfc2V0Y29scmVnLAogCS5mYl9ibGFuawkJPSBjZzZfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2NoaXBzZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2hpcHNmYi5j CmluZGV4IGY0ZGMzMjBkY2FmZS4uOTk4MDY3YjcwMWZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L2NoaXBzZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NoaXBzZmIuYwpA QCAtNzksNyArNzksNyBAQCBzdGF0aWMgaW50IGNoaXBzZmJfc2V0Y29scmVnKHVfaW50IHJlZ25v LCB1X2ludCByZWQsIHVfaW50IGdyZWVuLCB1X2ludCBibHVlLAogCQkJICAgICB1X2ludCB0cmFu c3AsIHN0cnVjdCBmYl9pbmZvICppbmZvKTsKIHN0YXRpYyBpbnQgY2hpcHNmYl9ibGFuayhpbnQg YmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKTsKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgY2hp cHNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBjaGlwc2ZiX29wcyA9IHsK IAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGNoaXBzZmJfY2hlY2tf dmFyLAogCS5mYl9zZXRfcGFyCT0gY2hpcHNmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aWRlby9mYmRldi9jaXJydXNmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9jaXJydXNmYi5j CmluZGV4IGU0Y2U1NjY3YjEyNS4uYzNhM2UzNDRjZWUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L2NpcnJ1c2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jaXJydXNmYi5j CkBAIC0xOTU2LDcgKzE5NTYsNyBAQCBzdGF0aWMgdm9pZCBjaXJydXNmYl96b3Jyb191bm1hcChz dHJ1Y3QgZmJfaW5mbyAqaW5mbykKICNlbmRpZiAvKiBDT05GSUdfWk9SUk8gKi8KIAogLyogZnVu Y3Rpb24gdGFibGUgb2YgdGhlIGFib3ZlIGZ1bmN0aW9ucyAqLwotc3RhdGljIHN0cnVjdCBmYl9v cHMgY2lycnVzZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgY2lycnVzZmJf b3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfb3Blbgk9IGNpcnJ1c2ZiX29w ZW4sCiAJLmZiX3JlbGVhc2UJPSBjaXJydXNmYl9yZWxlYXNlLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aWRlby9mYmRldi9jbHBzNzExeC1mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9jbHBzNzEx eC1mYi5jCmluZGV4IGNhYmJjNzIxZjg5NC4uYzVkMTVjNmRiMjg3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2NscHM3MTF4LWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9j bHBzNzExeC1mYi5jCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIGludCBjbHBzNzExeF9mYl9i bGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgc3RydWN0IGZiX29wcyBjbHBzNzExeF9mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBjbHBzNzExeF9mYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAog CS5mYl9zZXRjb2xyZWcJPSBjbHBzNzExeF9mYl9zZXRjb2xyZWcsCiAJLmZiX2NoZWNrX3Zhcgk9 IGNscHM3MTF4X2ZiX2NoZWNrX3ZhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv Y29iYWx0X2xjZGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvYmFsdF9sY2RmYi5jCmluZGV4 IDU0NDk0NjkwMWU4Yi4uNWY4YjYzMjRkMmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2NvYmFsdF9sY2RmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29iYWx0X2xjZGZi LmMKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgaW50IGNvYmFsdF9sY2RmYl9jdXJzb3Ioc3Ry dWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBmYl9jdXJzb3IgKmN1cnNvcikKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgY29iYWx0X2xjZF9mYm9wcyA9IHsKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZmJfb3BzIGNvYmFsdF9sY2RfZmJvcHMgPSB7CiAJLm93bmVyCQk9IFRISVNf TU9EVUxFLAogCS5mYl9yZWFkCT0gY29iYWx0X2xjZGZiX3JlYWQsCiAJLmZiX3dyaXRlCT0gY29i YWx0X2xjZGZiX3dyaXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jb250cm9s ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29udHJvbGZiLmMKaW5kZXggOWE2ODBlZjNmZmMz Li4zOGI2MWNkYjVjYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29udHJvbGZi LmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb250cm9sZmIuYwpAQCAtMTU3LDcgKzE1Nyw3 IEBAIHN0YXRpYyBpbnQgZGVmYXVsdF92bW9kZSBfX2luaXRkYXRhID0gVk1PREVfTlZSQU07CiBz dGF0aWMgaW50IGRlZmF1bHRfY21vZGUgX19pbml0ZGF0YSA9IENNT0RFX05WUkFNOwogCiAKLXN0 YXRpYyBzdHJ1Y3QgZmJfb3BzIGNvbnRyb2xmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0 IGZiX29wcyBjb250cm9sZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJf Y2hlY2tfdmFyCT0gY29udHJvbGZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGNvbnRyb2xm Yl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jeWJlcjIwMDBmYi5j IGIvZHJpdmVycy92aWRlby9mYmRldi9jeWJlcjIwMDBmYi5jCmluZGV4IDNhMmQ5ZmYwYWE0Mi4u NDYwODI2YTdhZDU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2N5YmVyMjAwMGZi LmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jeWJlcjIwMDBmYi5jCkBAIC0xMDYwLDcgKzEw NjAsNyBAQCBzdGF0aWMgaW50IGN5YmVyMjAwMGZiX2JsYW5rKGludCBibGFuaywgc3RydWN0IGZi X2luZm8gKmluZm8pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGN5YmVy MjAwMGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGN5YmVyMjAwMGZiX29w cyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGN5YmVyMjAw MGZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGN5YmVyMjAwMGZiX3NldF9wYXIsCmRpZmYg LS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2RhOHh4LWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2RhOHh4LWZiLmMKaW5kZXggMmQzZGNjNTJmY2YzLi43M2MzYzRjOGNjMTIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZGE4eHgtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2RhOHh4LWZiLmMKQEAgLTEyOTQsNyArMTI5NCw3IEBAIHN0YXRpYyBpbnQgZGE4eHhmYl9z ZXRfcGFyKHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3Ry dWN0IGZiX29wcyBkYTh4eF9mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBk YTh4eF9mYl9vcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3ZhciA9 IGZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3BhciA9IGRhOHh4ZmJfc2V0X3BhciwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZG5mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9kbmZi LmMKaW5kZXggOGRhNTE3ZWFhNGEzLi4zNjg4ZjkxNjU4NDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dmlkZW8vZmJkZXYvZG5mYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZG5mYi5jCkBAIC0x MDgsNyArMTA4LDcgQEAKIHN0YXRpYyBpbnQgZG5mYl9ibGFuayhpbnQgYmxhbmssIHN0cnVjdCBm Yl9pbmZvICppbmZvKTsKIHN0YXRpYyB2b2lkIGRuZmJfY29weWFyZWEoc3RydWN0IGZiX2luZm8g KmluZm8sIGNvbnN0IHN0cnVjdCBmYl9jb3B5YXJlYSAqYXJlYSk7CiAKLXN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIGRuX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGRuX2ZiX29w cyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2JsYW5rCT0gZG5mYl9ibGFuaywK IAkuZmJfZmlsbHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2VmaWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2VmaWZiLmMKaW5kZXggNTFkOTdl YzRmNThmLi5mMDNmOWZiNjBjMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZWZp ZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2VmaWZiLmMKQEAgLTI1NSw3ICsyNTUsNyBA QCBzdGF0aWMgdm9pZCBlZmlmYl9kZXN0cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKQogCWZiX2Rl YWxsb2NfY21hcCgmaW5mby0+Y21hcCk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGVmaWZi X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGVmaWZiX29wcyA9IHsKIAkub3du ZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2Rlc3Ryb3kJPSBlZmlmYl9kZXN0cm95LAogCS5mYl9z ZXRjb2xyZWcJPSBlZmlmYl9zZXRjb2xyZWcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2VwOTN4eC1mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9lcDkzeHgtZmIuYwppbmRleCBk MDRhMDQ3MDk0ZmMuLmNkYTJlZjMzNzQyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRl di9lcDkzeHgtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2VwOTN4eC1mYi5jCkBAIC00 MDIsNyArNDAyLDcgQEAgc3RhdGljIGludCBlcDkzeHhmYl9zZXRjb2xyZWcodW5zaWduZWQgaW50 IHJlZ25vLCB1bnNpZ25lZCBpbnQgcmVkLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0 IGZiX29wcyBlcDkzeHhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBlcDkz eHhmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBl cDkzeHhmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSBlcDkzeHhmYl9zZXRfcGFyLApkaWZm IC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9mYi1wdXYzLmMgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2ZiLXB1djMuYwppbmRleCBmYTYyYzRkZmY3ZDEuLjc1ZGY2YWFiYWMyMSAxMDA2NDQKLS0t IGEvZHJpdmVycy92aWRlby9mYmRldi9mYi1wdXYzLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRl di9mYi1wdXYzLmMKQEAgLTY0NCw3ICs2NDQsNyBAQCBpbnQgdW5pZmJfbW1hcChzdHJ1Y3QgZmJf aW5mbyAqaW5mbywKIAlyZXR1cm4gdm1faW9tYXBfbWVtb3J5KHZtYSwgaW5mby0+Zml4LnNtZW1f c3RhcnQsIGluZm8tPmZpeC5zbWVtX2xlbik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHVu aWZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHVuaWZiX29wcyA9IHsKIAku ZmJfcmVhZCAgICAgICAgPSBmYl9zeXNfcmVhZCwKIAkuZmJfd3JpdGUgICAgICAgPSBmYl9zeXNf d3JpdGUsCiAJLmZiX2NoZWNrX3Zhcgk9IHVuaWZiX2NoZWNrX3ZhciwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlkZW8vZmJkZXYvZmZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2ZmYi5jCmluZGV4 IGNkMmQxZGIyMzlhMi4uOTQ4YjczMTg0NDMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2ZmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZmZiLmMKQEAgLTQ0LDcgKzQ0LDcg QEAgc3RhdGljIGludCBmZmJfcGFuX2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICos IHN0cnVjdCBmYl9pbmZvICopOwogICogIEZyYW1lIGJ1ZmZlciBvcGVyYXRpb25zCiAgKi8KIAot c3RhdGljIHN0cnVjdCBmYl9vcHMgZmZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJf b3BzIGZmYl9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKIAkuZmJfc2V0Y29scmVn CQk9IGZmYl9zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCQk9IGZmYl9ibGFuaywKZGlmZiAtLWdpdCBh L2RyaXZlcnMvdmlkZW8vZmJkZXYvZm0yZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZm0yZmIu YwppbmRleCBhYzdhNGViZmQzOTAuLjNiNzI3ZDUyOGZkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aWRlby9mYmRldi9mbTJmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZm0yZmIuYwpAQCAt MTY1LDcgKzE2NSw3IEBAIHN0YXRpYyBpbnQgZm0yZmJfc2V0Y29scmVnKHVfaW50IHJlZ25vLCB1 X2ludCByZWQsIHVfaW50IGdyZWVuLCB1X2ludCBibHVlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgdV9pbnQgdHJhbnNwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbyk7CiBzdGF0aWMgaW50IGZt MmZiX2JsYW5rKGludCBibGFuaywgc3RydWN0IGZiX2luZm8gKmluZm8pOwogCi1zdGF0aWMgc3Ry dWN0IGZiX29wcyBmbTJmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBmbTJm Yl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJPSBmbTJm Yl9zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCT0gZm0yZmJfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2ZzbC1kaXUtZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZnNsLWRp dS1mYi5jCmluZGV4IGQxOWY1ODI2M2I0ZS4uN2NhY2FiZGQ1ZjEyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2ZzbC1kaXUtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Zz bC1kaXUtZmIuYwpAQCAtMTQ0OCw3ICsxNDQ4LDcgQEAgc3RhdGljIGludCBmc2xfZGl1X3JlbGVh c2Uoc3RydWN0IGZiX2luZm8gKmluZm8sIGludCB1c2VyKQogCXJldHVybiByZXM7CiB9CiAKLXN0 YXRpYyBzdHJ1Y3QgZmJfb3BzIGZzbF9kaXVfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBm Yl9vcHMgZnNsX2RpdV9vcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNr X3ZhciA9IGZzbF9kaXVfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyID0gZnNsX2RpdV9zZXRfcGFy LApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9nMzY0ZmIuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvZzM2NGZiLmMKaW5kZXggMjIzODk2Y2M1ZjdkLi44NDViNzlkYTJhN2MgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZzM2NGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9m YmRldi9nMzY0ZmIuYwpAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyBpbnQgZzM2NGZiX3NldGNv bHJlZyh1X2ludCByZWdubywgdV9pbnQgcmVkLCB1X2ludCBncmVlbiwKIHN0YXRpYyBpbnQgZzM2 NGZiX2N1cnNvcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3RydWN0IGZiX2N1cnNvciAqY3Vyc29y KTsKIHN0YXRpYyBpbnQgZzM2NGZiX2JsYW5rKGludCBibGFuaywgc3RydWN0IGZiX2luZm8gKmlu Zm8pOwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBnMzY0ZmJfb3BzID0geworc3RhdGljIGNvbnN0 IHN0cnVjdCBmYl9vcHMgZzM2NGZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJ LmZiX3NldGNvbHJlZwk9IGczNjRmYl9zZXRjb2xyZWcsCiAJLmZiX3Bhbl9kaXNwbGF5CT0gZzM2 NGZiX3Bhbl9kaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9nYmVmYi5j IGIvZHJpdmVycy92aWRlby9mYmRldi9nYmVmYi5jCmluZGV4IGI5ZjZhODJhMDQ5NS4uMzEyNzBh ODk4NmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2diZWZiLmMKKysrIGIvZHJp dmVycy92aWRlby9mYmRldi9nYmVmYi5jCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBzdGF0aWMgaW50 IGdiZWZiX21tYXAoc3RydWN0IGZiX2luZm8gKmluZm8sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBzdHJ1Y3QgZmJfb3BzIGdiZWZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3Bz IGdiZWZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9 IGdiZWZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGdiZWZiX3NldF9wYXIsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2d4MWZiX2NvcmUuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvZ2VvZGUvZ3gxZmJfY29yZS5jCmluZGV4IDczN2U0NzJmYWMxNC4uNWQzNGQ4OWZi NjY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2d4MWZiX2NvcmUuYwor KysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2d4MWZiX2NvcmUuYwpAQCAtMjUyLDcgKzI1 Miw3IEBAIHN0YXRpYyBpbnQgcGFyc2VfcGFuZWxfb3B0aW9uKHN0cnVjdCBmYl9pbmZvICppbmZv KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBneDFmYl9vcHMgPSB7Citz dGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBneDFmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNf TU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBneDFmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJ PSBneDFmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9nZW9kZS9n eGZiX2NvcmUuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZ2VvZGUvZ3hmYl9jb3JlLmMKaW5kZXgg NDM1Y2UyYWE0MjQwLi5kMzhhMTQ4ZDQ3NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvZ2VvZGUvZ3hmYl9jb3JlLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9nZW9kZS9neGZi X2NvcmUuYwpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBpbnQgZ3hmYl9tYXBfdmlkZW9fbWVt b3J5KHN0cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCXJldHVybiAw OwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBneGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZmJfb3BzIGd4ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJf Y2hlY2tfdmFyCT0gZ3hmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSBneGZiX3NldF9wYXIs CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2x4ZmJfY29yZS5jIGIvZHJp dmVycy92aWRlby9mYmRldi9nZW9kZS9seGZiX2NvcmUuYwppbmRleCBiMGYwN2Q2NzZlYjMuLmFk YzJkOWMyMzk1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9nZW9kZS9seGZiX2Nv cmUuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2x4ZmJfY29yZS5jCkBAIC0zODYs NyArMzg2LDcgQEAgc3RhdGljIGludCBseGZiX21hcF92aWRlb19tZW1vcnkoc3RydWN0IGZiX2lu Zm8gKmluZm8sIHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBz dHJ1Y3QgZmJfb3BzIGx4ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgbHhm Yl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBseGZi X2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGx4ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlkZW8vZmJkZXYvZ29sZGZpc2hmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9nb2xk ZmlzaGZiLmMKaW5kZXggZjYwYWMyNzY3MDNkLi45YzgzZWMzZjhlMWYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdmlkZW8vZmJkZXYvZ29sZGZpc2hmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv Z29sZGZpc2hmYi5jCkBAIC0xNjAsNyArMTYwLDcgQEAgc3RhdGljIGludCBnb2xkZmlzaF9mYl9i bGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgc3RydWN0IGZiX29wcyBnb2xkZmlzaF9mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBnb2xkZmlzaF9mYl9vcHMgPSB7CiAJLm93bmVyICAgICAgICAgID0gVEhJU19N T0RVTEUsCiAJLmZiX2NoZWNrX3ZhciAgID0gZ29sZGZpc2hfZmJfY2hlY2tfdmFyLAogCS5mYl9z ZXRfcGFyICAgICA9IGdvbGRmaXNoX2ZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L2dydmdhLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dydmdhLmMKaW5kZXggZDIy ZThiMGM5MDZkLi4wN2RkYTAzZTA5NTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv Z3J2Z2EuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dydmdhLmMKQEAgLTI1MSw3ICsyNTEs NyBAQCBzdGF0aWMgaW50IGdydmdhX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5m byAqdmFyLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBncnZnYV9vcHMg PSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBncnZnYV9vcHMgPSB7CiAJLm93bmVyICAg ICAgICAgID0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3ZhciAgID0gZ3J2Z2FfY2hlY2tfdmFy LAogCS5mYl9zZXRfcGFyCT0gZ3J2Z2Ffc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlk ZW8vZmJkZXYvZ3h0NDUwMC5jIGIvZHJpdmVycy92aWRlby9mYmRldi9neHQ0NTAwLmMKaW5kZXgg Yzc1MDJmZDhmNDQ3Li4xM2RlZDNhMTA3MDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvZ3h0NDUwMC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZ3h0NDUwMC5jCkBAIC01OTks NyArNTk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9maXhfc2NyZWVuaW5mbyBneHQ0NTAw X2ZpeCA9IHsKIAkubW1pb19sZW4gPSAweDIwMDAwLAogfTsKIAotc3RhdGljIHN0cnVjdCBmYl9v cHMgZ3h0NDUwMF9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBneHQ0NTAwX29w cyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyID0gZ3h0NDUwMF9j aGVja192YXIsCiAJLmZiX3NldF9wYXIgPSBneHQ0NTAwX3NldF9wYXIsCmRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L2hlY3ViYWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2hlY3Vi YWZiLmMKaW5kZXggODU3NzE5NWNiNTMzLi4wMGQ3NzEwNTE2MWEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdmlkZW8vZmJkZXYvaGVjdWJhZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2hlY3Vi YWZiLmMKQEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0aWMgc3NpemVfdCBoZWN1YmFmYl93cml0ZShz dHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAlyZXR1cm4gKGVy cikgPyBlcnIgOiBjb3VudDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgaGVjdWJhZmJfb3Bz ID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgaGVjdWJhZmJfb3BzID0gewogCS5vd25l cgkJPSBUSElTX01PRFVMRSwKIAkuZmJfcmVhZCAgICAgICAgPSBmYl9zeXNfcmVhZCwKIAkuZmJf d3JpdGUJPSBoZWN1YmFmYl93cml0ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv aGdhZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaGdhZmIuYwppbmRleCA1OWUxY2FlNTc5NDgu LmE0NWZjZmYxNDYxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9oZ2FmYi5jCisr KyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaGdhZmIuYwpAQCAtNTIzLDcgKzUyMyw3IEBAIHN0YXRp YyB2b2lkIGhnYWZiX2ltYWdlYmxpdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3Qgc3RydWN0 IGZiX2ltYWdlICppbWFnZSkKIAl9CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGhnYWZiX29w cyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGhnYWZiX29wcyA9IHsKIAkub3duZXIJ CT0gVEhJU19NT0RVTEUsCiAJLmZiX29wZW4JPSBoZ2FmYl9vcGVuLAogCS5mYl9yZWxlYXNlCT0g aGdhZmJfcmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvaGl0ZmIuYyBi L2RyaXZlcnMvdmlkZW8vZmJkZXYvaGl0ZmIuYwppbmRleCBhYmUzZTU0ZDQ1MDYuLjAwOWU1ZDJh YTEwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9oaXRmYi5jCisrKyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvaGl0ZmIuYwpAQCAtMzExLDcgKzMxMSw3IEBAIHN0YXRpYyBpbnQgaGl0 ZmJfc2V0X3BhcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IHN0cnVjdCBmYl9vcHMgaGl0ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMg aGl0ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyCT0g aGl0ZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyCQk9IGhpdGZiX3NldF9wYXIsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2hwZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaHBm Yi5jCmluZGV4IGE3OWFmOGYwNjlkMS4uZjAyYmUwZGIzMzVlIDEwMDY0NAotLS0gYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2hwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2hwZmIuYwpAQCAt MTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBpbnQgaHBmYl9zeW5jKHN0cnVjdCBmYl9pbmZvICppbmZv KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBocGZiX29wcyA9IHsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGhwZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01P RFVMRSwKIAkuZmJfc2V0Y29scmVnCT0gaHBmYl9zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCT0gaHBm Yl9ibGFuaywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvaHlwZXJ2X2ZiLmMgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L2h5cGVydl9mYi5jCmluZGV4IDJkY2I3YzU4YjMxZS4uZmNkNTQ2 ZTVjMDMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2h5cGVydl9mYi5jCisrKyBi L2RyaXZlcnMvdmlkZW8vZmJkZXYvaHlwZXJ2X2ZiLmMKQEAgLTYyMyw3ICs2MjMsNyBAQCBzdGF0 aWMgdm9pZCBodmZiX2NmYl9pbWFnZWJsaXQoc3RydWN0IGZiX2luZm8gKnAsCiAJCXN5bnRodmlk X3VwZGF0ZShwKTsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgaHZmYl9vcHMgPSB7CitzdGF0 aWMgY29uc3Qgc3RydWN0IGZiX29wcyBodmZiX29wcyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVM RSwKIAkuZmJfY2hlY2tfdmFyID0gaHZmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIgPSBodmZi X3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2k3NDBmYi5jIGIvZHJp dmVycy92aWRlby9mYmRldi9pNzQwZmIuYwppbmRleCAzNDdjZjhiYWJjM2UuLmM2NWVjNzM4NmU4 NyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9pNzQwZmIuYworKysgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2k3NDBmYi5jCkBAIC05ODEsNyArOTgxLDcgQEAgc3RhdGljIGludCBpNzQw ZmJfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAo YmxhbmtfbW9kZSA9PSBGQl9CTEFOS19OT1JNQUwpID8gMSA6IDA7CiB9CiAKLXN0YXRpYyBzdHJ1 Y3QgZmJfb3BzIGk3NDBmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBpNzQw ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfb3Blbgk9IGk3NDBmYl9v cGVuLAogCS5mYl9yZWxlYXNlCT0gaTc0MGZiX3JlbGVhc2UsCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2ltc3R0ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW1zdHRmYi5jCmlu ZGV4IDU4YjAxYzdkOTA1Ni4uM2FjMDUzYjg4NDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2ltc3R0ZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2ltc3R0ZmIuYwpAQCAt MTMzMyw3ICsxMzMzLDcgQEAgc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGltc3R0ZmJfcGNpX2Ry aXZlciA9IHsKIAkucmVtb3ZlID0JaW1zdHRmYl9yZW1vdmUsCiB9OwogCi1zdGF0aWMgc3RydWN0 IGZiX29wcyBpbXN0dGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGltc3R0 ZmJfb3BzID0gewogCS5vd25lciAJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGlt c3R0ZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyIAk9IGltc3R0ZmJfc2V0X3BhciwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW14ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv aW14ZmIuYwppbmRleCBiMzI4NmQxZmE1NDMuLjA4YTE3ZWIyYTVjNyAxMDA2NDQKLS0tIGEvZHJp dmVycy92aWRlby9mYmRldi9pbXhmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW14ZmIu YwpAQCAtNTY2LDcgKzU2Niw3IEBAIHN0YXRpYyBpbnQgaW14ZmJfYmxhbmsoaW50IGJsYW5rLCBz dHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9v cHMgaW14ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgaW14ZmJfb3BzID0g ewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyCT0gaW14ZmJfY2hlY2tf dmFyLAogCS5mYl9zZXRfcGFyCT0gaW14ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv dmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZiZHJ2LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2lu dGVsZmIvaW50ZWxmYmRydi5jCmluZGV4IGE3NmM2MTUxMmM2MC4uYzc0NDg5MTc4MWE1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2ludGVsZmIvaW50ZWxmYmRydi5jCisrKyBiL2Ry aXZlcnMvdmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZiZHJ2LmMKQEAgLTE5Myw3ICsxOTMsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaW50ZWxmYl9wY2lfdGFibGVbXSA9 IHsKIHN0YXRpYyBpbnQgbnVtX3JlZ2lzdGVyZWQgPSAwOwogCiAvKiBmYiBvcHMgKi8KLXN0YXRp YyBzdHJ1Y3QgZmJfb3BzIGludGVsX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJf b3BzIGludGVsX2ZiX29wcyA9IHsKIAkub3duZXIgPQkJVEhJU19NT0RVTEUsCiAJLmZiX29wZW4g PSAgICAgICAgICAgICAgaW50ZWxmYl9vcGVuLAogCS5mYl9yZWxlYXNlID0gICAgICAgICAgIGlu dGVsZmJfcmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYva3lyby9mYmRl di5jIGIvZHJpdmVycy92aWRlby9mYmRldi9reXJvL2ZiZGV2LmMKaW5kZXggYTdiZDlmMjU5MTFi Li43MmRmZjJlNDJlM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYva3lyby9mYmRl di5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYva3lyby9mYmRldi5jCkBAIC02NDgsNyArNjQ4 LDcgQEAgc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGt5cm9mYl9wY2lfZHJpdmVyID0gewogCS5y ZW1vdmUJCT0ga3lyb2ZiX3JlbW92ZSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGt5cm9m Yl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBreXJvZmJfb3BzID0gewogCS5v d25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyCT0ga3lyb2ZiX2NoZWNrX3ZhciwK IAkuZmJfc2V0X3Bhcgk9IGt5cm9mYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRl by9mYmRldi9sZW8uYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvbGVvLmMKaW5kZXggNWIxMTQxYWMx ODJiLi40MGIxMWNjZTBhZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvbGVvLmMK KysrIGIvZHJpdmVycy92aWRlby9mYmRldi9sZW8uYwpAQCAtMzksNyArMzksNyBAQCBzdGF0aWMg aW50IGxlb19wYW5fZGlzcGxheShzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKiwgc3RydWN0IGZi X2luZm8gKik7CiAgKiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAqLwogCi1zdGF0aWMgc3Ry dWN0IGZiX29wcyBsZW9fb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgbGVvX29w cyA9IHsKIAkub3duZXIJCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJCT0gbGVvX3Nl dGNvbHJlZywKIAkuZmJfYmxhbmsJCT0gbGVvX2JsYW5rLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9tYWNmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9tYWNmYi5jCmluZGV4IDlh NmZlZWU5NjEzMy4uZTA1YTk3NjYyY2E4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L21hY2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9tYWNmYi5jCkBAIC00OTYsNyArNDk2 LDcgQEAgc3RhdGljIGludCBtYWNmYl9zZXRjb2xyZWcodW5zaWduZWQgcmVnbm8sIHVuc2lnbmVk IHJlZCwgdW5zaWduZWQgZ3JlZW4sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJf b3BzIG1hY2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG1hY2ZiX29wcyA9 IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwk9IG1hY2ZiX3NldGNv bHJlZywKIAkuZmJfZmlsbHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L21hdHJveC9tYXRyb3hmYl9jcnRjMi5jIGIvZHJpdmVycy92aWRlby9mYmRl di9tYXRyb3gvbWF0cm94ZmJfY3J0YzIuYwppbmRleCBkMmE4MWEyYzNhYzAuLjc2NTVhZmEzZmQ1 MCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9tYXRyb3gvbWF0cm94ZmJfY3J0YzIu YworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21hdHJveC9tYXRyb3hmYl9jcnRjMi5jCkBAIC01 NjMsNyArNTYzLDcgQEAgc3RhdGljIGludCBtYXRyb3hmYl9kaF9ibGFuayhpbnQgYmxhbmssIHN0 cnVjdCBmYl9pbmZvKiBpbmZvKSB7CiAjdW5kZWYgbTJpbmZvCiB9CiAKLXN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIG1hdHJveGZiX2RoX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG1h dHJveGZiX2RoX29wcyA9IHsKIAkub3duZXIgPQlUSElTX01PRFVMRSwKIAkuZmJfb3BlbiA9CW1h dHJveGZiX2RoX29wZW4sCiAJLmZiX3JlbGVhc2UgPQltYXRyb3hmYl9kaF9yZWxlYXNlLApkaWZm IC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9tYXhpbmVmYi5jIGIvZHJpdmVycy92aWRlby9m YmRldi9tYXhpbmVmYi5jCmluZGV4IDViYjFiNWMzMDhhNy4uYWUxYTQyYmNiMGVhIDEwMDY0NAot LS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21heGluZWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9m YmRldi9tYXhpbmVmYi5jCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGludCBtYXhpbmVmYl9z ZXRjb2xyZWcodW5zaWduZWQgcmVnbm8sIHVuc2lnbmVkIHJlZCwgdW5zaWduZWQgZ3JlZW4sCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG1heGluZWZiX29wcyA9IHsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG1heGluZWZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwk9IG1heGluZWZiX3NldGNvbHJlZywKIAkuZmJfZmls bHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21i eC9tYnhmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9tYngvbWJ4ZmIuYwppbmRleCA1MDkzNTI1 MmI1MGIuLjI1ZGFkNDUwN2Q3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9tYngv bWJ4ZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21ieC9tYnhmYi5jCkBAIC02NzEsNyAr NjcxLDcgQEAgc3RhdGljIGludCBtYnhmYl9pb2N0bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5z aWduZWQgaW50IGNtZCwKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9v cHMgbWJ4ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgbWJ4ZmJfb3BzID0g ewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIgPSBtYnhmYl9jaGVja192 YXIsCiAJLmZiX3NldF9wYXIgPSBtYnhmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9tZXRyb25vbWVmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9tZXRyb25vbWVm Yi5jCmluZGV4IGJiNGZlZTUyZTUwMS4uYTQyZTJlY2VlZTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L21ldHJvbm9tZWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9tZXRy b25vbWVmYi5jCkBAIC01NTgsNyArNTU4LDcgQEAgc3RhdGljIHNzaXplX3QgbWV0cm9ub21lZmJf d3JpdGUoc3RydWN0IGZiX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJcmV0 dXJuIChlcnIpID8gZXJyIDogY291bnQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG1ldHJv bm9tZWZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG1ldHJvbm9tZWZiX29w cyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3dyaXRlCT0gbWV0cm9ub21lZmJf d3JpdGUsCiAJLmZiX2ZpbGxyZWN0CT0gbWV0cm9ub21lZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQg YS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21tcC9mYi9tbXBmYi5jIGIvZHJpdmVycy92aWRlby9mYmRl di9tbXAvZmIvbW1wZmIuYwppbmRleCA0N2JjN2M1OWJiZDguLjMzZGIwODUwMDg2ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9tbXAvZmIvbW1wZmIuYworKysgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L21tcC9mYi9tbXBmYi5jCkBAIC00NTQsNyArNDU0LDcgQEAgc3RhdGljIGludCBt bXBmYl9ibGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAwOwog fQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBtbXBmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBtbXBmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9i bGFuawk9IG1tcGZiX2JsYW5rLAogCS5mYl9jaGVja192YXIJPSBtbXBmYl9jaGVja192YXIsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L214M2ZiLmMgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L214M2ZiLmMKaW5kZXggYmFmZDVmNWZhYzVhLi40YWYyOGU0NDIxZTUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdmlkZW8vZmJkZXYvbXgzZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L214 M2ZiLmMKQEAgLTEyNDksNyArMTI0OSw3IEBAIHN0YXRpYyBpbnQgbXgzZmJfcGFuX2Rpc3BsYXko c3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsCiAgKiBpbnZva2VkIGJ5IHRoZSBjb3JlIGZy YW1lYnVmZmVyIGRyaXZlciB0byBwZXJmb3JtIG9wZXJhdGlvbnMgbGlrZQogICogYmxpdHRpbmcs IHJlY3RhbmdsZSBmaWxsaW5nLCBjb3B5IHJlZ2lvbnMgYW5kIGN1cnNvciBkZWZpbml0aW9uLgog ICovCi1zdGF0aWMgc3RydWN0IGZiX29wcyBteDNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBteDNmYl9vcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLmZiX3Nl dF9wYXIgPSBteDNmYl9zZXRfcGFyLAogCS5mYl9jaGVja192YXIgPSBteDNmYl9jaGVja192YXIs CkBAIC0xMzg5LDcgKzEzODksOCBAQCBzdGF0aWMgaW50IG14M2ZiX3VubWFwX3ZpZGVvX21lbW9y eShzdHJ1Y3QgZmJfaW5mbyAqZmJpKQogICogbXgzZmJfaW5pdF9mYmluZm8oKSAtIGluaXRpYWxp emUgZnJhbWVidWZmZXIgaW5mb3JtYXRpb24gb2JqZWN0LgogICogQHJldHVybjoJaW5pdGlhbGl6 ZWQgZnJhbWVidWZmZXIgc3RydWN0dXJlLgogICovCi1zdGF0aWMgc3RydWN0IGZiX2luZm8gKm14 M2ZiX2luaXRfZmJpbmZvKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGZiX29wcyAqb3BzKQor c3RhdGljIHN0cnVjdCBmYl9pbmZvICpteDNmYl9pbml0X2ZiaW5mbyhzdHJ1Y3QgZGV2aWNlICpk ZXYsCisJCQkJCSBjb25zdCBzdHJ1Y3QgZmJfb3BzICpvcHMpCiB7CiAJc3RydWN0IGZiX2luZm8g KmZiaTsKIAlzdHJ1Y3QgbXgzZmJfaW5mbyAqbXgzZmJpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9uZW9mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9uZW9mYi5jCmluZGV4IGI3 NzA5NDZhMDkyMC4uZTZlYTg1M2MxNzIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L25lb2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9uZW9mYi5jCkBAIC0xNjEwLDcgKzE2 MTAsNyBAQCBuZW9mYl9jdXJzb3Ioc3RydWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBmYl9jdXJz b3IgKmN1cnNvcikKIH0KICovCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG5lb2ZiX29wcyA9IHsK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG5lb2ZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX29wZW4JPSBuZW9mYl9vcGVuLAogCS5mYl9yZWxlYXNlCT0gbmVvZmJf cmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvb2NmYi5jIGIvZHJpdmVy cy92aWRlby9mYmRldi9vY2ZiLmMKaW5kZXggYTk3MGVkYzJhNmY4Li5jOGNlZTJkODkwZGMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvb2NmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvb2NmYi5jCkBAIC0yODUsNyArMjg1LDcgQEAgc3RhdGljIGludCBvY2ZiX2luaXRfdmFy KHN0cnVjdCBvY2ZiX2RldiAqZmJkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIG9jZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgb2NmYl9vcHMg PSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJPSBvY2ZiX3NldGNv bHJlZywKIAkuZmJfZmlsbHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L29mZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb2ZmYi5jCmluZGV4IGZi YzZlYWZiNjNjNy4uNWNkMGY1ZjZhNGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L29mZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29mZmIuYwpAQCAtMjg2LDcgKzI4Niw3 IEBAIHN0YXRpYyB2b2lkIG9mZmJfZGVzdHJveShzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlmcmFt ZWJ1ZmZlcl9yZWxlYXNlKGluZm8pOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBvZmZiX29w cyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG9mZmJfb3BzID0gewogCS5vd25lcgkJ PSBUSElTX01PRFVMRSwKIAkuZmJfZGVzdHJveQk9IG9mZmJfZGVzdHJveSwKIAkuZmJfc2V0Y29s cmVnCT0gb2ZmYl9zZXRjb2xyZWcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29t YXAyL29tYXBmYi9vbWFwZmItbWFpbi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFw ZmIvb21hcGZiLW1haW4uYwppbmRleCA4NThjMmMwMTFkMTkuLjhkZmE5MTU4YmE3OCAxMDA2NDQK LS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvb21hcGZiLW1haW4uYworKysg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9vbWFwZmItbWFpbi5jCkBAIC0xMjgw LDcgKzEyODAsNyBAQCBzc2l6ZV90IG9tYXBmYl93cml0ZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywg Y29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIH0KICNlbmRpZgogCi1zdGF0aWMgc3RydWN0IGZiX29w cyBvbWFwZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgb21hcGZiX29wcyA9 IHsKIAkub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKIAkuZmJfb3BlbiAgICAgICAgPSBv bWFwZmJfb3BlbiwKIAkuZmJfcmVsZWFzZSAgICAgPSBvbWFwZmJfcmVsZWFzZSwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcDkxMDAuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcDkx MDAuYwppbmRleCA4YzE4Y2M1MWFhZTIuLjZkYTY3MmU5MjY0MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy92aWRlby9mYmRldi9wOTEwMC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcDkxMDAuYwpA QCAtMzcsNyArMzcsNyBAQCBzdGF0aWMgaW50IHA5MTAwX2lvY3RsKHN0cnVjdCBmYl9pbmZvICos IHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiAgKiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlv bnMKICAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBwOTEwMF9vcHMgPSB7CitzdGF0aWMgY29u c3Qgc3RydWN0IGZiX29wcyBwOTEwMF9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwK IAkuZmJfc2V0Y29scmVnCQk9IHA5MTAwX3NldGNvbHJlZywKIAkuZmJfYmxhbmsJCT0gcDkxMDBf YmxhbmssCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BsYXRpbnVtZmIuYyBiL2Ry aXZlcnMvdmlkZW8vZmJkZXYvcGxhdGludW1mYi5jCmluZGV4IDYzMmIyNDZjYTM1Zi4uY2U0MTNh OWRmMDZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BsYXRpbnVtZmIuYworKysg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BsYXRpbnVtZmIuYwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0 aWMgaW50IHBsYXRpbnVtX3Zhcl90b19wYXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIs CiAgKiBJbnRlcmZhY2UgdXNlZCBieSB0aGUgd29ybGQKICAqLwogCi1zdGF0aWMgc3RydWN0IGZi X29wcyBwbGF0aW51bWZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHBsYXRp bnVtZmJfb3BzID0gewogCS5vd25lciA9CVRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBw bGF0aW51bWZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IHBsYXRpbnVtZmJfc2V0X3BhciwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG0yZmIuYyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvcG0yZmIuYwppbmRleCAxZGNmMDJlMTJhZjQuLjhmOTMzYmFkNDYxYyAxMDA2NDQKLS0t IGEvZHJpdmVycy92aWRlby9mYmRldi9wbTJmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv cG0yZmIuYwpAQCAtMTQ4Myw3ICsxNDgzLDcgQEAgc3RhdGljIGludCBwbTJmYl9jdXJzb3Ioc3Ry dWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBmYl9jdXJzb3IgKmN1cnNvcikKICAqICBGcmFtZSBi dWZmZXIgb3BlcmF0aW9ucwogICovCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHBtMmZiX29wcyA9 IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHBtMmZiX29wcyA9IHsKIAkub3duZXIJCT0g VEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IHBtMmZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0 X3Bhcgk9IHBtMmZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Bt M2ZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtM2ZiLmMKaW5kZXggNjEzMGFhNTZhMWU5Li4x NWEyYjQ5NTIzNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG0zZmIuYworKysg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtM2ZiLmMKQEAgLTEyMDAsNyArMTIwMCw3IEBAIHN0YXRp YyBpbnQgcG0zZmJfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZvICppbmZvKQog CSAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwogCSAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29w cyBwbTNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBwbTNmYl9vcHMgPSB7 CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBwbTNmYl9jaGVja192 YXIsCiAJLmZiX3NldF9wYXIJPSBwbTNmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9wbWFnLWFhLWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtYWctYWEtZmIu YwppbmRleCBkMWU3OGNlM2E5YzIuLjdiMzNiNTJiMjUyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aWRlby9mYmRldi9wbWFnLWFhLWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9wbWFnLWFh LWZiLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgaW50IGFhZmJfYmxhbmsoaW50IGJsYW5r LCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBm Yl9vcHMgYWFmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBhYWZiX29wcyA9 IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2JsYW5rCT0gYWFmYl9ibGFuaywKIAku ZmJfZmlsbHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3BtYWctYmEtZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG1hZy1iYS1mYi5jCmluZGV4 IDU2YjkxMmJiMjhkZS4uYTYwZTU2ZDg5ODBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3BtYWctYmEtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtYWctYmEtZmIuYwpA QCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBpbnQgcG1hZ2JhZmJfc2V0Y29scmVnKHVuc2lnbmVk IGludCByZWdubywgdW5zaWduZWQgaW50IHJlZCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0 cnVjdCBmYl9vcHMgcG1hZ2JhZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMg cG1hZ2JhZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfc2V0Y29scmVn CT0gcG1hZ2JhZmJfc2V0Y29scmVnLAogCS5mYl9maWxscmVjdAk9IGNmYl9maWxscmVjdCwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG1hZ2ItYi1mYi5jIGIvZHJpdmVycy92aWRl by9mYmRldi9wbWFnYi1iLWZiLmMKaW5kZXggMjgyMmIyMjI1OTI0Li5mMDIwODBmMjEwNzcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG1hZ2ItYi1mYi5jCisrKyBiL2RyaXZlcnMv dmlkZW8vZmJkZXYvcG1hZ2ItYi1mYi5jCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIGludCBw bWFnYmJmYl9zZXRjb2xyZWcodW5zaWduZWQgaW50IHJlZ25vLCB1bnNpZ25lZCBpbnQgcmVkLAog CXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBwbWFnYmJmYl9vcHMgPSB7Citz dGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBwbWFnYmJmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRI SVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJPSBwbWFnYmJmYl9zZXRjb2xyZWcsCiAJLmZiX2Zp bGxyZWN0CT0gY2ZiX2ZpbGxyZWN0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9w czNmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9wczNmYi5jCmluZGV4IDVlZDJkYjM5ZDgyMy4u ODM0ZjYzZWRmNzAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BzM2ZiLmMKKysr IGIvZHJpdmVycy92aWRlby9mYmRldi9wczNmYi5jCkBAIC05MzQsNyArOTM0LDcgQEAgc3RhdGlj IGlycXJldHVybl90IHBzM2ZiX3ZzeW5jX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpwdHIpCiB9 CiAKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgcHMzZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0 cnVjdCBmYl9vcHMgcHMzZmJfb3BzID0gewogCS5mYl9vcGVuCT0gcHMzZmJfb3BlbiwKIAkuZmJf cmVsZWFzZQk9IHBzM2ZiX3JlbGVhc2UsCiAJLmZiX3JlYWQgICAgICAgID0gZmJfc3lzX3JlYWQs CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B2cjJmYi5jIGIvZHJpdmVycy92aWRl by9mYmRldi9wdnIyZmIuYwppbmRleCAwYTNiMmI3Yzc4OTEuLmZjYjE2ZWFiYmIwZCAxMDA2NDQK LS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9wdnIyZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3B2cjJmYi5jCkBAIC03MDcsNyArNzA3LDcgQEAgc3RhdGljIHNzaXplX3QgcHZyMmZiX3dy aXRlKHN0cnVjdCBmYl9pbmZvICppbmZvLCBjb25zdCBjaGFyICpidWYsCiB9CiAjZW5kaWYgLyog Q09ORklHX1BWUjJfRE1BICovCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHB2cjJmYl9vcHMgPSB7 CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBwdnIyZmJfb3BzID0gewogCS5vd25lcgkJPSBU SElTX01PRFVMRSwKIAkuZmJfc2V0Y29scmVnCT0gcHZyMmZiX3NldGNvbHJlZywKIAkuZmJfYmxh bmsJPSBwdnIyZmJfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2 OGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2OGZiLmMKaW5kZXggMTQxMGY0NzZlMTM1 Li5jNjcyYzMzNTRhMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcHhhMTY4ZmIu YworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2OGZiLmMKQEAgLTU0NSw3ICs1NDUsNyBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgcHhhMTY4ZmJfaGFuZGxlX2lycShpbnQgaXJxLCB2b2lkICpk ZXZfaWQpCiAJcmV0dXJuIElSUV9OT05FOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBweGEx NjhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBweGExNjhmYl9vcHMgPSB7 CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBweGExNjhmYl9jaGVj a192YXIsCiAJLmZiX3NldF9wYXIJPSBweGExNjhmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJp dmVycy92aWRlby9mYmRldi9weGFmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9weGFmYi5jCmlu ZGV4IGY3MGM5Zjc5NjIyZS4uNmY3ZTlmYjYzMTkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3B4YWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9weGFmYi5jCkBAIC01OTcs NyArNTk3LDcgQEAgc3RhdGljIGludCBweGFmYl9ibGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9p bmZvICppbmZvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBweGFmYl9v cHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBweGFmYl9vcHMgPSB7CiAJLm93bmVy CQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBweGFmYl9jaGVja192YXIsCiAJLmZi X3NldF9wYXIJPSBweGFmYl9zZXRfcGFyLApAQCAtODY1LDcgKzg2NSw3IEBAIHN0YXRpYyBpbnQg b3ZlcmxheWZiX3NldF9wYXIoc3RydWN0IGZiX2luZm8gKmluZm8pCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG92ZXJsYXlfZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0 cnVjdCBmYl9vcHMgb3ZlcmxheV9mYl9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwK IAkuZmJfb3BlbgkJPSBvdmVybGF5ZmJfb3BlbiwKIAkuZmJfcmVsZWFzZQkJPSBvdmVybGF5ZmJf cmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcTQwZmIuYyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvcTQwZmIuYwppbmRleCAwYjkzYWE5NjRkNDMuLjc5ZmYxNGEzNWM4NSAx MDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9xNDBmYi5jCisrKyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvcTQwZmIuYwpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgaW50IHE0MGZiX3NldGNv bHJlZyh1bnNpZ25lZCByZWdubywgdW5zaWduZWQgcmVkLCB1bnNpZ25lZCBncmVlbiwKICAgICBy ZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgcTQwZmJfb3BzID0geworc3RhdGlj IGNvbnN0IHN0cnVjdCBmYl9vcHMgcTQwZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVM RSwKIAkuZmJfc2V0Y29scmVnCT0gcTQwZmJfc2V0Y29scmVnLAogCS5mYl9maWxscmVjdAk9IGNm Yl9maWxscmVjdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcml2YS9mYmRldi5j IGIvZHJpdmVycy92aWRlby9mYmRldi9yaXZhL2ZiZGV2LmMKaW5kZXggY2E1OTNhM2U0MWQ3Li43 NjRlYzMyODVlNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcml2YS9mYmRldi5j CisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcml2YS9mYmRldi5jCkBAIC0xNjczLDcgKzE2NzMs NyBAQCBzdGF0aWMgaW50IHJpdmFmYl9zeW5jKHN0cnVjdCBmYl9pbmZvICppbmZvKQogICogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAqLwogCiAvKiBrZXJuZWwgaW50ZXJmYWNlICovCi1zdGF0aWMgc3RydWN0 IGZiX29wcyByaXZhX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHJpdmFf ZmJfb3BzID0gewogCS5vd25lciAJCT0gVEhJU19NT0RVTEUsCiAJLmZiX29wZW4JPSByaXZhZmJf b3BlbiwKIAkuZmJfcmVsZWFzZQk9IHJpdmFmYl9yZWxlYXNlLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aWRlby9mYmRldi9zM2MtZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvczNjLWZiLmMKaW5k ZXggYmEwNGQ3YTY3ODI5Li5mNDg3MWM0MzBmOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8v ZmJkZXYvczNjLWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9zM2MtZmIuYwpAQCAtMTAz NSw3ICsxMDM1LDcgQEAgc3RhdGljIGludCBzM2NfZmJfaW9jdGwoc3RydWN0IGZiX2luZm8gKmlu Zm8sIHVuc2lnbmVkIGludCBjbWQsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHN0cnVjdCBm Yl9vcHMgczNjX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHMzY19mYl9v cHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBzM2NfZmJf Y2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyCT0gczNjX2ZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3MzYzI0MTBmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9zM2My NDEwZmIuYwppbmRleCBhNzAyZGE4OTkxMGIuLjJmYjE1YTU0MDE2NyAxMDA2NDQKLS0tIGEvZHJp dmVycy92aWRlby9mYmRldi9zM2MyNDEwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Mz YzI0MTBmYi5jCkBAIC02MTgsNyArNjE4LDcgQEAgc3RhdGljIGludCBzM2MyNDEwZmJfZGVidWdf c3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCiBzdGF0aWMgREVWSUNFX0FUVFIoZGVidWcsIDA2 NjQsIHMzYzI0MTBmYl9kZWJ1Z19zaG93LCBzM2MyNDEwZmJfZGVidWdfc3RvcmUpOwogCi1zdGF0 aWMgc3RydWN0IGZiX29wcyBzM2MyNDEwZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBm Yl9vcHMgczNjMjQxMGZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2No ZWNrX3Zhcgk9IHMzYzI0MTBmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSBzM2MyNDEwZmJf c2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvczNmYi5jIGIvZHJpdmVy cy92aWRlby9mYmRldi9zM2ZiLmMKaW5kZXggYmUxNmMzNDljMTBmLi42MGM0MjRmYWU5ODggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvczNmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvczNmYi5jCkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBzdGF0aWMgaW50IHMzZmJfcGFuX2Rp c3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZv KQogCiAvKiBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucyAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29w cyBzM2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHMzZmJfb3BzID0gewog CS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfb3Blbgk9IHMzZmJfb3BlbiwKIAkuZmJfcmVs ZWFzZQk9IHMzZmJfcmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2Ex MTAwZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2ExMTAwZmIuYwppbmRleCA4MWFkM2FhMWNh MDYuLjQ2ODBjYzNlZmI4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9zYTExMDBm Yi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2ExMTAwZmIuYwpAQCAtNTc0LDcgKzU3NCw3 IEBAIHN0YXRpYyBpbnQgc2ExMTAwZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKIAlyZXR1 cm4gdm1faW9tYXBfbWVtb3J5KHZtYSwgaW5mby0+Zml4Lm1taW9fc3RhcnQsIGluZm8tPmZpeC5t bWlvX2xlbik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHNhMTEwMGZiX29wcyA9IHsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHNhMTEwMGZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IHNhMTEwMGZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0 X3Bhcgk9IHNhMTEwMGZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L3NhdmFnZS9zYXZhZ2VmYl9kcml2ZXIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2F2YWdlL3Nh dmFnZWZiX2RyaXZlci5jCmluZGV4IDUxMjc4OWY1Zjg4NC4uYWFiMzEyYTdkOWRhIDEwMDY0NAot LS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NhdmFnZS9zYXZhZ2VmYl9kcml2ZXIuYworKysgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3NhdmFnZS9zYXZhZ2VmYl9kcml2ZXIuYwpAQCAtMTYzNyw3ICsx NjM3LDcgQEAgc3RhdGljIGludCBzYXZhZ2VmYl9yZWxlYXNlKHN0cnVjdCBmYl9pbmZvICppbmZv LCBpbnQgdXNlcikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgc2F2YWdl ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgc2F2YWdlZmJfb3BzID0gewog CS5vd25lciAgICAgICAgICA9IFRISVNfTU9EVUxFLAogCS5mYl9vcGVuICAgICAgICA9IHNhdmFn ZWZiX29wZW4sCiAJLmZiX3JlbGVhc2UgICAgID0gc2F2YWdlZmJfcmVsZWFzZSwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2g3NzYwZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv c2g3NzYwZmIuYwppbmRleCBhYjhmZTgzOGM3NzYuLmI4ZWM4ZDliYjRjOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy92aWRlby9mYmRldi9zaDc3NjBmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv c2g3NzYwZmIuYwpAQCAtMzQxLDcgKzM0MSw3IEBAIHN0YXRpYyBpbnQgc2g3NzYwZmJfc2V0X3Bh cihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBm Yl9vcHMgc2g3NzYwZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgc2g3NzYw ZmJfb3BzID0gewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5mYl9ibGFuayA9IHNoNzc2MGZi X2JsYW5rLAogCS5mYl9jaGVja192YXIgPSBzaDc3NjBmYl9jaGVja192YXIsCmRpZmYgLS1naXQg YS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvc2hfbW9iaWxlX2xjZGNmYi5jCmluZGV4IGMyNDk3NjNkYmYwYi4uMjVmMTE5ZWZlYmMw IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYworKysg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYwpAQCAtMTQ5MCw3ICsxNDkw LDcgQEAgc2hfbW9iaWxlX2xjZGNfb3ZlcmxheV9tbWFwKHN0cnVjdCBmYl9pbmZvICppbmZvLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkJCQkgb3ZsLT5kbWFfaGFuZGxlLCBvdmwtPmZi X3NpemUpOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBzaF9tb2JpbGVfbGNkY19vdmVybGF5 X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHNoX21vYmlsZV9sY2RjX292ZXJs YXlfb3BzID0gewogCS5vd25lciAgICAgICAgICA9IFRISVNfTU9EVUxFLAogCS5mYl9yZWFkICAg ICAgICA9IGZiX3N5c19yZWFkLAogCS5mYl93cml0ZSAgICAgICA9IGZiX3N5c193cml0ZSwKQEAg LTE5NjQsNyArMTk2NCw3IEBAIHNoX21vYmlsZV9sY2RjX21tYXAoc3RydWN0IGZiX2luZm8gKmlu Zm8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCQkJCSBjaC0+ZG1hX2hhbmRsZSwgY2gt PmZiX3NpemUpOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBzaF9tb2JpbGVfbGNkY19vcHMg PSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBzaF9tb2JpbGVfbGNkY19vcHMgPSB7CiAJ Lm93bmVyICAgICAgICAgID0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwk9IHNoX21vYmls ZV9sY2RjX3NldGNvbHJlZywKIAkuZmJfcmVhZCAgICAgICAgPSBmYl9zeXNfcmVhZCwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2ltcGxlZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJk ZXYvc2ltcGxlZmIuYwppbmRleCA3ZGMwMTA1ZjcwMGQuLjUzM2EwNDdkMDdhMiAxMDA2NDQKLS0t IGEvZHJpdmVycy92aWRlby9mYmRldi9zaW1wbGVmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJk ZXYvc2ltcGxlZmIuYwpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBzaW1wbGVmYl9kZXN0 cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKQogCQlpb3VubWFwKGluZm8tPnNjcmVlbl9iYXNlKTsK IH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgc2ltcGxlZmJfb3BzID0geworc3RhdGljIGNvbnN0 IHN0cnVjdCBmYl9vcHMgc2ltcGxlZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwK IAkuZmJfZGVzdHJveQk9IHNpbXBsZWZiX2Rlc3Ryb3ksCiAJLmZiX3NldGNvbHJlZwk9IHNpbXBs ZWZiX3NldGNvbHJlZywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2lzL3Npc19t YWluLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Npcy9zaXNfbWFpbi5jCmluZGV4IGI0NDNhOGVk NDYwMC4uYWMxNDA5NjJiMWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Npcy9z aXNfbWFpbi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2lzL3Npc19tYWluLmMKQEAgLTE5 MDYsNyArMTkwNiw3IEBAIHNpc2ZiX2dldF9maXgoc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvICpm aXgsIGludCBjb24sIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCiAvKiAtLS0tLS0tLS0tLS0tLS0t ICBmYl9vcHMgc3RydWN0dXJlcyAtLS0tLS0tLS0tLS0tLS0tLSAqLwogCi1zdGF0aWMgc3RydWN0 IGZiX29wcyBzaXNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBzaXNmYl9v cHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9vcGVuCT0gc2lzZmJfb3BlbiwK IAkuZmJfcmVsZWFzZQk9IHNpc2ZiX3JlbGVhc2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3NrZWxldG9uZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2tlbGV0b25mYi5jCmlu ZGV4IDgxMmEzNmNiNjBjMy4uYmNhY2ZiNjkzNGZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3NrZWxldG9uZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NrZWxldG9uZmIu YwpAQCAtNjM0LDcgKzYzNCw3IEBAIGludCB4eHhmYl9zeW5jKHN0cnVjdCBmYl9pbmZvICppbmZv KQogICAgICAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwogICAgICAqLwogCi1zdGF0aWMgc3Ry dWN0IGZiX29wcyB4eHhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyB4eHhm Yl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9vcGVuCT0geHh4ZmJfb3Bl biwKIAkuZmJfcmVhZAk9IHh4eGZiX3JlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3NtNzEyZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc203MTJmYi5jCmluZGV4IDIwN2Qw YWRkNjg0Yi4uNmExYjRhODUzZDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Nt NzEyZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYwpAQCAtMTM2OSw3ICsx MzY5LDcgQEAgc3RhdGljIGludCBzbXRjX3NldF9wYXIoc3RydWN0IGZiX2luZm8gKmluZm8pCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHNtdGNmYl9vcHMgPSB7CitzdGF0 aWMgY29uc3Qgc3RydWN0IGZiX29wcyBzbXRjZmJfb3BzID0gewogCS5vd25lciAgICAgICAgPSBU SElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyID0gc210Y19jaGVja192YXIsCiAJLmZiX3NldF9w YXIgICA9IHNtdGNfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc21z Y3VmeC5jIGIvZHJpdmVycy92aWRlby9mYmRldi9zbXNjdWZ4LmMKaW5kZXggZTM2MmQ3ZGE4N2Zj Li5iZmFjM2VlNGE2NDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc21zY3VmeC5j CisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc21zY3VmeC5jCkBAIC0xMjY4LDcgKzEyNjgsNyBA QCBzdGF0aWMgaW50IHVmeF9vcHNfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZv ICppbmZvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB1Znhfb3BzID0g eworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgdWZ4X29wcyA9IHsKIAkub3duZXIgPSBUSElT X01PRFVMRSwKIAkuZmJfcmVhZCA9IGZiX3N5c19yZWFkLAogCS5mYl93cml0ZSA9IHVmeF9vcHNf d3JpdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NzZDEzMDdmYi5jIGIvZHJp dmVycy92aWRlby9mYmRldi9zc2QxMzA3ZmIuYwppbmRleCA3OGNhN2ZmYzQwYzIuLjE0MjUzNTI2 N2ZlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9zc2QxMzA3ZmIuYworKysgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3NzZDEzMDdmYi5jCkBAIC0yODAsNyArMjgwLDcgQEAgc3RhdGlj IHZvaWQgc3NkMTMwN2ZiX2ltYWdlYmxpdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3Qgc3Ry dWN0IGZiX2ltYWdlICppbWEKIAlzc2QxMzA3ZmJfdXBkYXRlX2Rpc3BsYXkocGFyKTsKIH0KIAot c3RhdGljIHN0cnVjdCBmYl9vcHMgc3NkMTMwN2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZmJfb3BzIHNzZDEzMDdmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5m Yl9yZWFkCT0gZmJfc3lzX3JlYWQsCiAJLmZiX3dyaXRlCT0gc3NkMTMwN2ZiX3dyaXRlLApkaWZm IC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9zc3RmYi5jIGIvZHJpdmVycy92aWRlby9mYmRl di9zc3RmYi5jCmluZGV4IDRlMjJhZTM4M2M4Ny4uODJlNzA3YTQ4ZTRlIDEwMDY0NAotLS0gYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3NzdGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9zc3Rm Yi5jCkBAIC0xMzA3LDcgKzEzMDcsNyBAQCBzdGF0aWMgaW50IHNzdGZiX3NldHVwKGNoYXIgKm9w dGlvbnMpCiB9CiAKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgc3N0ZmJfb3BzID0geworc3RhdGlj IGNvbnN0IHN0cnVjdCBmYl9vcHMgc3N0ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVM RSwKIAkuZmJfY2hlY2tfdmFyCT0gc3N0ZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyCT0gc3N0 ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc3RpZmIuYyBiL2Ry aXZlcnMvdmlkZW8vZmJkZXYvc3RpZmIuYwppbmRleCA5ZTg4ZTNmNTk0YzIuLjU0MDBhYjc5ZmJi ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9zdGlmYi5jCisrKyBiL2RyaXZlcnMv dmlkZW8vZmJkZXYvc3RpZmIuYwpAQCAtMTEwMSw3ICsxMTAxLDcgQEAgc3RpZmJfaW5pdF9kaXNw bGF5KHN0cnVjdCBzdGlmYl9pbmZvICpmYikKIAogLyogLS0tLS0tLS0tLS0tIEludGVyZmFjZXMg dG8gaGFyZHdhcmUgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLSAqLwogCi1zdGF0aWMgc3RydWN0IGZi X29wcyBzdGlmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBzdGlmYl9vcHMg PSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJPSBzdGlmYl9zZXRj b2xyZWcsCiAJLmZiX2JsYW5rCT0gc3RpZmJfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3N1bnh2cjEwMDAuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc3VueHZyMTAwMC5j CmluZGV4IDc4NGM5YmQ1ZDUwMi4uMTViMDc5NTA1YTAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3N1bnh2cjEwMDAuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2cjEw MDAuYwpAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgaW50IGdmYl9zZXRjb2xyZWcodW5zaWduZWQg cmVnbm8sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGdmYl9vcHMgPSB7 CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBnZmJfb3BzID0gewogCS5vd25lcgkJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBnZmJfc2V0Y29scmVnLAogCS5mYl9maWxscmVj dAkJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2 cjI1MDAuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc3VueHZyMjUwMC5jCmluZGV4IDMxNjgzZTVh OGI3OS4uMWQzYmFjZDlkNWFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2 cjI1MDAuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2cjI1MDAuYwpAQCAtNjMsNyAr NjMsNyBAQCBzdGF0aWMgaW50IHMzZF9zZXRjb2xyZWcodW5zaWduZWQgcmVnbm8sCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHMzZF9vcHMgPSB7CitzdGF0aWMgY29uc3Qg c3RydWN0IGZiX29wcyBzM2Rfb3BzID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZi X3NldGNvbHJlZwkJPSBzM2Rfc2V0Y29scmVnLAogCS5mYl9maWxscmVjdAkJPSBjZmJfZmlsbHJl Y3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2cjUwMC5jIGIvZHJpdmVy cy92aWRlby9mYmRldi9zdW54dnI1MDAuYwppbmRleCBkMzkyOTc2MTI2YTYuLjlkYWYxN2IxMTEw NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9zdW54dnI1MDAuYworKysgYi9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2cjUwMC5jCkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIHZv aWQgZTNkX2NvcHlhcmVhKHN0cnVjdCBmYl9pbmZvICppbmZvLCBjb25zdCBzdHJ1Y3QgZmJfY29w eWFyZWEgKmFyZWEpCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZXAtPmxvY2ssIGZsYWdzKTsK IH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgZTNkX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZmJfb3BzIGUzZF9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKIAkuZmJfc2V0 Y29scmVnCQk9IGUzZF9zZXRjb2xyZWcsCiAJLmZiX2ZpbGxyZWN0CQk9IGUzZF9maWxscmVjdCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdGN4LmMgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3RjeC5jCmluZGV4IDc4OTdmODZmYjIzZS4uMzRiMmU1YjZlODRhIDEwMDY0NAotLS0gYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3RjeC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdGN4LmMK QEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIGludCB0Y3hfcGFuX2Rpc3BsYXkoc3RydWN0IGZiX3Zh cl9zY3JlZW5pbmZvICosIHN0cnVjdCBmYl9pbmZvICopOwogICogIEZyYW1lIGJ1ZmZlciBvcGVy YXRpb25zCiAgKi8KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgdGN4X29wcyA9IHsKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZmJfb3BzIHRjeF9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwK IAkuZmJfc2V0Y29scmVnCQk9IHRjeF9zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCQk9IHRjeF9ibGFu aywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdGRmeGZiLmMgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3RkZnhmYi5jCmluZGV4IGZkYmIxZWE2NmU2Yy4uMDM0OWNmNjk2NTJmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RkZnhmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvdGRmeGZiLmMKQEAgLTExNDEsNyArMTE0MSw3IEBAIHN0YXRpYyBpbnQgdGRmeGZiX2N1 cnNvcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3RydWN0IGZiX2N1cnNvciAqY3Vyc29yKQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB0ZGZ4ZmJfb3BzID0geworc3RhdGlj IGNvbnN0IHN0cnVjdCBmYl9vcHMgdGRmeGZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RV TEUsCiAJLmZiX2NoZWNrX3Zhcgk9IHRkZnhmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSB0 ZGZ4ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdGdhZmIuYyBi L2RyaXZlcnMvdmlkZW8vZmJkZXYvdGdhZmIuYwppbmRleCAyODZiMjM3MWM3ZGQuLjdjZDI2Mjg1 ODI0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi90Z2FmYi5jCisrKyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvdGdhZmIuYwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgc3RydWN0IHRj X2RyaXZlciB0Z2FmYl90Y19kcml2ZXI7CiAgKiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAq LwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB0Z2FmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyB0Z2FmYl9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKIAkuZmJf Y2hlY2tfdmFyCQk9IHRnYWZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3BhcgkJPSB0Z2FmYl9zZXRf cGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi90bWlvZmIuYyBiL2RyaXZlcnMv dmlkZW8vZmJkZXYvdG1pb2ZiLmMKaW5kZXggNGYyZmNlYTEwZDJiLi41MDExMTk2NmM5ODEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdG1pb2ZiLmMKKysrIGIvZHJpdmVycy92aWRl by9mYmRldi90bWlvZmIuYwpAQCAtNjQ2LDcgKzY0Niw3IEBAIHN0YXRpYyBpbnQgdG1pb2ZiX2Js YW5rKGludCBibGFuaywgc3RydWN0IGZiX2luZm8gKmluZm8pCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBzdHJ1Y3QgZmJfb3BzIHRtaW9mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZi X29wcyB0bWlvZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAogCS5mYl9pb2N0 bAk9IHRtaW9mYl9pb2N0bCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVu dGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jCmluZGV4IGRhNzRiZjZjNTk5 Ni4uNzE1NTA5OTE3ZWFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRm Yi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmMKQEAgLTE0NDMsNyArMTQ0 Myw3IEBAIHN0YXRpYyBpbnQgdHJpZGVudGZiX2JsYW5rKGludCBibGFua19tb2RlLCBzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gKGJsYW5rX21vZGUgPT0gRkJfQkxBTktfTk9STUFMKSA/ IDEgOiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB0cmlkZW50ZmJfb3BzID0geworc3Rh dGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgdHJpZGVudGZiX29wcyA9IHsKIAkub3duZXIgPSBUSElT X01PRFVMRSwKIAkuZmJfc2V0Y29scmVnID0gdHJpZGVudGZiX3NldGNvbHJlZywKIAkuZmJfcGFu X2Rpc3BsYXkgPSB0cmlkZW50ZmJfcGFuX2Rpc3BsYXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3ZhbGt5cmllZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdmFsa3lyaWVmYi5j CmluZGV4IGUwNGZkZTljMWZjZC4uY2E4ZDczNDNhYWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3ZhbGt5cmllZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3ZhbGt5cmll ZmIuYwpAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBpbnQgdmFsa3lyaWVfaW5pdF9pbmZvKHN0 cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3QgZmJfaW5mb192YWxreXJpZSAqcCk7CiBzdGF0aWMg dm9pZCB2YWxreXJpZV9wYXJfdG9fZml4KHN0cnVjdCBmYl9wYXJfdmFsa3lyaWUgKnBhciwgc3Ry dWN0IGZiX2ZpeF9zY3JlZW5pbmZvICpmaXgpOwogc3RhdGljIHZvaWQgdmFsa3lyaWVfaW5pdF9m aXgoc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvICpmaXgsIHN0cnVjdCBmYl9pbmZvX3ZhbGt5cmll ICpwKTsKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgdmFsa3lyaWVmYl9vcHMgPSB7CitzdGF0aWMg Y29uc3Qgc3RydWN0IGZiX29wcyB2YWxreXJpZWZiX29wcyA9IHsKIAkub3duZXIgPQlUSElTX01P RFVMRSwKIAkuZmJfY2hlY2tfdmFyID0JdmFsa3lyaWVmYl9jaGVja192YXIsCiAJLmZiX3NldF9w YXIgPQl2YWxreXJpZWZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L3ZmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi92ZmIuYwppbmRleCA1NDEyNzkwNWJmZTcuLjk1 ZDNjNTk4NjdkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi92ZmIuYworKysgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3ZmYi5jCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBpbnQgdmZi X3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLAogc3RhdGljIGludCB2 ZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKIAkJICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hKTsKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgdmZiX29wcyA9IHsKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZmJfb3BzIHZmYl9vcHMgPSB7CiAJLmZiX3JlYWQgICAgICAgID0gZmJfc3lzX3Jl YWQsCiAJLmZiX3dyaXRlICAgICAgID0gZmJfc3lzX3dyaXRlLAogCS5mYl9jaGVja192YXIJPSB2 ZmJfY2hlY2tfdmFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi92Z2ExNmZiLmMg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3ZnYTE2ZmIuYwppbmRleCAyYzZhNTc2ZWQ4NGMuLmEyMGVl YjgzMDhmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi92Z2ExNmZiLmMKKysrIGIv ZHJpdmVycy92aWRlby9mYmRldi92Z2ExNmZiLmMKQEAgLTEyNzAsNyArMTI3MCw3IEBAIHN0YXRp YyB2b2lkIHZnYTE2ZmJfZGVzdHJveShzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlmcmFtZWJ1ZmZl cl9yZWxlYXNlKGluZm8pOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB2Z2ExNmZiX29wcyA9 IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHZnYTE2ZmJfb3BzID0gewogCS5vd25lcgkJ PSBUSElTX01PRFVMRSwKIAkuZmJfb3BlbiAgICAgICAgPSB2Z2ExNmZiX29wZW4sCiAJLmZiX3Jl bGVhc2UgICAgID0gdmdhMTZmYl9yZWxlYXNlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9m YmRldi92dDg1MDBsY2RmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi92dDg1MDBsY2RmYi5jCmlu ZGV4IGJlOGQ5NzAyY2JiMi4uZjc0NDQ3OWRjN2RmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3Z0ODUwMGxjZGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi92dDg1MDBsY2Rm Yi5jCkBAIC0yMzgsNyArMjM4LDcgQEAgc3RhdGljIGludCB2dDg1MDBsY2RfYmxhbmsoaW50IGJs YW5rLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVj dCBmYl9vcHMgdnQ4NTAwbGNkX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHZ0 ODUwMGxjZF9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRfcGFyCT0g dnQ4NTAwbGNkX3NldF9wYXIsCiAJLmZiX3NldGNvbHJlZwk9IHZ0ODUwMGxjZF9zZXRjb2xyZWcs CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Z0ODYyM2ZiLmMgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3Z0ODYyM2ZiLmMKaW5kZXggYzMzOWE4ZmJhZDgxLi43YjNlZWYxYjg5M2YgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdnQ4NjIzZmIuYworKysgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3Z0ODYyM2ZiLmMKQEAgLTYzNCw3ICs2MzQsNyBAQCBzdGF0aWMgaW50IHZ0ODYy M2ZiX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLCBzdHJ1Y3QgZmJf aW5mbyAqaQogCiAvKiBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucyAqLwogCi1zdGF0aWMgc3RydWN0 IGZiX29wcyB2dDg2MjNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyB2dDg2 MjNmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9vcGVuCT0gdnQ4NjIz ZmJfb3BlbiwKIAkuZmJfcmVsZWFzZQk9IHZ0ODYyM2ZiX3JlbGVhc2UsCmRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi93MTAwZmIu YwppbmRleCAzYmUwNzgwN2VkY2QuLmZlNjI4ZWMyMDE0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aWRlby9mYmRldi93MTAwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jCkBA IC01NDksNyArNTQ5LDcgQEAgc3RhdGljIGludCB3MTAwZmJfc2V0X3BhcihzdHJ1Y3QgZmJfaW5m byAqaW5mbykKIC8qCiAgKiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAqLwotc3RhdGljIHN0 cnVjdCBmYl9vcHMgdzEwMGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHcx MDBmYl9vcHMgPSB7CiAJLm93bmVyICAgICAgICA9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192 YXIgPSB3MTAwZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyICAgPSB3MTAwZmJfc2V0X3BhciwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvd204NTA1ZmIuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvd204NTA1ZmIuYwppbmRleCAxN2M3ODAzMTVjYTUuLmI2NTZlZmY1OGMyMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi93bTg1MDVmYi5jCisrKyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvd204NTA1ZmIuYwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRpYyBpbnQgd204NTA1 ZmJfYmxhbmsoaW50IGJsYW5rLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIHN0cnVjdCBmYl9vcHMgd204NTA1ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0 cnVjdCBmYl9vcHMgd204NTA1ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAku ZmJfc2V0X3Bhcgk9IHdtODUwNWZiX3NldF9wYXIsCiAJLmZiX3NldGNvbHJlZwk9IHdtODUwNWZi X3NldGNvbHJlZywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYveGVuLWZiZnJvbnQu YyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYveGVuLWZiZnJvbnQuYwppbmRleCBhM2Q2YjZkYjIyMWIu LjAwMzA3Yjg2OTNiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi94ZW4tZmJmcm9u dC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYveGVuLWZiZnJvbnQuYwpAQCAtMzI4LDcgKzMy OCw3IEBAIHN0YXRpYyBpbnQgeGVuZmJfc2V0X3BhcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgeGVuZmJfZmJfb3BzID0geworc3Rh dGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgeGVuZmJfZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElT X01PRFVMRSwKIAkuZmJfcmVhZAk9IGZiX3N5c19yZWFkLAogCS5mYl93cml0ZQk9IHhlbmZiX3dy aXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi94aWxpbnhmYi5jIGIvZHJpdmVy cy92aWRlby9mYmRldi94aWxpbnhmYi5jCmluZGV4IDg2Mjg4MjliNDcwZC4uY2E0ZmY2NThjYWQw IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3hpbGlueGZiLmMKKysrIGIvZHJpdmVy cy92aWRlby9mYmRldi94aWxpbnhmYi5jCkBAIC0yNDcsNyArMjQ3LDcgQEAgeGlsaW54X2ZiX2Js YW5rKGludCBibGFua19tb2RlLCBzdHJ1Y3QgZmJfaW5mbyAqZmJpKQogCXJldHVybiAwOyAvKiBz dWNjZXNzICovCiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHhpbGlueGZiX29wcyA9IHsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHhpbGlueGZiX29wcyA9IHsKIAkub3duZXIJCQk9IFRI SVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJCT0geGlsaW54X2ZiX3NldGNvbHJlZywKIAkuZmJf YmxhbmsJCT0geGlsaW54X2ZiX2JsYW5rLAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3AEB6C432C3 for ; Tue, 3 Dec 2019 16:39:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1CD81205ED for ; Tue, 3 Dec 2019 16:39:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1CD81205ED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A7ACD6E9FE; Tue, 3 Dec 2019 16:39:56 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE49B6E9FE; Tue, 3 Dec 2019 16:39:55 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 08:39:55 -0800 X-IronPort-AV: E=Sophos;i="5.69,273,1571727600"; d="scan'208";a="222881577" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 08:39:50 -0800 From: Jani Nikula To: dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org Date: Tue, 3 Dec 2019 18:38:50 +0200 Message-Id: X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo Subject: [Intel-gfx] [PATCH v3 08/12] video: constify fb ops across all drivers X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jani.nikula@intel.com, Daniel Vetter , intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Tm93IHRoYXQgdGhlIGZib3BzIG1lbWJlciBvZiBzdHJ1Y3QgZmJfaW5mbyBpcyBjb25zdCwgd2Ug Y2FuIHN0YXJ0Cm1ha2luZyB0aGUgb3BzIGNvbnN0IGFzIHdlbGwuCgpUaGlzIGRvZXMgbm90IGNv dmVyIGFsbCBkcml2ZXJzOyBzb21lIGFjdHVhbGx5IG1vZGlmeSB0aGUgZmJvcHMgc3RydWN0LApm b3IgZXhhbXBsZSB0byBhZGp1c3QgZm9yIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucywgYW5kIG90 aGVycyBkbyBtb3JlCmludm9sdmVkIHRoaW5ncyB0aGF0IEknZCByYXRoZXIgbm90IHRvdWNoIGlu IHByYWN0aWNhbGx5IG9ic29sZXRlCmRyaXZlcnMuIE1vc3RseSB0aGlzIGlzIHRoZSBsb3cgaGFu Z2luZyBmcnVpdCB3aGVyZSB3ZSBjYW4gYWRkICJjb25zdCIKYW5kIGJlIGRvbmUgd2l0aCBpdC4K CnYzOgotIHVuLWNvbnN0aWZ5IGF0eWZiLCBtYjg2Mnh4LCBudmlkaWEgYW5kIHV2ZXNhYmYgKDBk YXkpCgp2MjoKLSBmaXggdHlwbyAoQ2hyaXN0b3BoZSBkZSBEaW5lY2hpbikKLSB1c2UgInN0YXRp YyBjb25zdCIgaW5zdGVhZCBvZiAiY29uc3Qgc3RhdGljIiBpbiBteDNmYi5jCi0gYWxzbyBjb25z dGlmeSBzbXNjdWZ4LmMKCkNjOiBsaW51eC1mYmRldkB2Z2VyLmtlcm5lbC5vcmcKUmV2aWV3ZWQt Ynk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6 IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy92aWRlby9m YmRldi82ODMyOGZiLmMgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJk ZXYvYWNvcm5mYi5jICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2 L2FtYmEtY2xjZC5jICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9h bWlmYi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvYXJj ZmIuYyAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2Fya2Zi LmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9hc2lsaWFu dGZiLmMgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvYXRtZWxfbGNk ZmIuYyAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9hdHkxMjhm Yi5jICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9hdHkvcmFkZW9uX2Jh c2UuYyAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvYXUxMTAwZmIuYyAgICAg ICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1MTIwMGZiLmMgICAgICAg ICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9icm9hZHNoZWV0ZmIuYyAgICAg ICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvYncyLmMgICAgICAgICAgICAgICAg ICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2Nhcm1pbmVmYi5jICAgICAgICAgICAg ICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9jZzE0LmMgICAgICAgICAgICAgICAgICAg ICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvY2czLmMgICAgICAgICAgICAgICAgICAgICAg fCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2NnNi5jICAgICAgICAgICAgICAgICAgICAgIHwg MiArLQogZHJpdmVycy92aWRlby9mYmRldi9jaGlwc2ZiLmMgICAgICAgICAgICAgICAgICB8IDIg Ky0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvY2lycnVzZmIuYyAgICAgICAgICAgICAgICAgfCAyICst CiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2NscHM3MTF4LWZiLmMgICAgICAgICAgICAgIHwgMiArLQog ZHJpdmVycy92aWRlby9mYmRldi9jb2JhbHRfbGNkZmIuYyAgICAgICAgICAgICB8IDIgKy0KIGRy aXZlcnMvdmlkZW8vZmJkZXYvY29udHJvbGZiLmMgICAgICAgICAgICAgICAgfCAyICstCiBkcml2 ZXJzL3ZpZGVvL2ZiZGV2L2N5YmVyMjAwMGZiLmMgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVy cy92aWRlby9mYmRldi9kYTh4eC1mYi5jICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMv dmlkZW8vZmJkZXYvZG5mYi5jICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3Zp ZGVvL2ZiZGV2L2VmaWZiLmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRl by9mYmRldi9lcDkzeHgtZmIuYyAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8v ZmJkZXYvZmItcHV2My5jICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2Zi ZGV2L2ZmYi5jICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRl di9mbTJmYi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYv ZnNsLWRpdS1mYi5jICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2cz NjRmYi5jICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9nYmVm Yi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvZ2VvZGUv Z3gxZmJfY29yZS5jICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2d4 ZmJfY29yZS5jICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9nZW9kZS9seGZi X2NvcmUuYyAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvZ29sZGZpc2hmYi5j ICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2dydmdhLmMgICAgICAg ICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9neHQ0NTAwLmMgICAgICAg ICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvaGVjdWJhZmIuYyAgICAgICAg ICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2hnYWZiLmMgICAgICAgICAgICAg ICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9oaXRmYi5jICAgICAgICAgICAgICAg ICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvaHBmYi5jICAgICAgICAgICAgICAgICAg ICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2h5cGVydl9mYi5jICAgICAgICAgICAgICAg IHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9pNzQwZmIuYyAgICAgICAgICAgICAgICAgICB8 IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvaW1zdHRmYi5jICAgICAgICAgICAgICAgICAgfCAy ICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L2lteGZiLmMgICAgICAgICAgICAgICAgICAgIHwgMiAr LQogZHJpdmVycy92aWRlby9mYmRldi9pbnRlbGZiL2ludGVsZmJkcnYuYyAgICAgICB8IDIgKy0K IGRyaXZlcnMvdmlkZW8vZmJkZXYva3lyby9mYmRldi5jICAgICAgICAgICAgICAgfCAyICstCiBk cml2ZXJzL3ZpZGVvL2ZiZGV2L2xlby5jICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJp dmVycy92aWRlby9mYmRldi9tYWNmYi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZl cnMvdmlkZW8vZmJkZXYvbWF0cm94L21hdHJveGZiX2NydGMyLmMgICAgfCAyICstCiBkcml2ZXJz L3ZpZGVvL2ZiZGV2L21heGluZWZiLmMgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92 aWRlby9mYmRldi9tYngvbWJ4ZmIuYyAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlk ZW8vZmJkZXYvbWV0cm9ub21lZmIuYyAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVv L2ZiZGV2L21tcC9mYi9tbXBmYi5jICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9m YmRldi9teDNmYi5jICAgICAgICAgICAgICAgICAgICB8IDUgKysrLS0KIGRyaXZlcnMvdmlkZW8v ZmJkZXYvbmVvZmIuYyAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2Zi ZGV2L29jZmIuYyAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRl di9vZmZiLmMgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYv b21hcDIvb21hcGZiL29tYXBmYi1tYWluLmMgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3A5 MTAwLmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9wbGF0 aW51bWZiLmMgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcG0yZmIu YyAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtM2ZiLmMg ICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9wbWFnLWFhLWZi LmMgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcG1hZy1iYS1mYi5j ICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtYWdiLWItZmIuYyAg ICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9wczNmYi5jICAgICAgICAg ICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcHZyMmZiLmMgICAgICAgICAg ICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2OGZiLmMgICAgICAgICAg ICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9weGFmYi5jICAgICAgICAgICAgICAg ICAgICB8IDQgKystLQogZHJpdmVycy92aWRlby9mYmRldi9xNDBmYi5jICAgICAgICAgICAgICAg ICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcml2YS9mYmRldi5jICAgICAgICAgICAg ICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3MzYy1mYi5jICAgICAgICAgICAgICAgICAg IHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9zM2MyNDEwZmIuYyAgICAgICAgICAgICAgICB8 IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvczNmYi5jICAgICAgICAgICAgICAgICAgICAgfCAy ICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3NhMTEwMGZiLmMgICAgICAgICAgICAgICAgIHwgMiAr LQogZHJpdmVycy92aWRlby9mYmRldi9zYXZhZ2Uvc2F2YWdlZmJfZHJpdmVyLmMgICB8IDIgKy0K IGRyaXZlcnMvdmlkZW8vZmJkZXYvc2g3NzYwZmIuYyAgICAgICAgICAgICAgICAgfCAyICstCiBk cml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYyAgICAgICAgIHwgNCArKy0tCiBk cml2ZXJzL3ZpZGVvL2ZiZGV2L3NpbXBsZWZiLmMgICAgICAgICAgICAgICAgIHwgMiArLQogZHJp dmVycy92aWRlby9mYmRldi9zaXMvc2lzX21haW4uYyAgICAgICAgICAgICB8IDIgKy0KIGRyaXZl cnMvdmlkZW8vZmJkZXYvc2tlbGV0b25mYi5jICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJz L3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYyAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92 aWRlby9mYmRldi9zbXNjdWZ4LmMgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlk ZW8vZmJkZXYvc3NkMTMwN2ZiLmMgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVv L2ZiZGV2L3NzdGZiLmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9m YmRldi9zdGlmYi5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJk ZXYvc3VueHZyMTAwMC5jICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2 L3N1bnh2cjI1MDAuYyAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi9z dW54dnI1MDAuYyAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvdGN4 LmMgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3RkZnhm Yi5jICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi90Z2FmYi5j ICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvdG1pb2ZiLmMg ICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5j ICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi92YWxreXJpZWZiLmMg ICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvdmZiLmMgICAgICAgICAg ICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3ZnYTE2ZmIuYyAgICAgICAg ICAgICAgICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi92dDg1MDBsY2RmYi5jICAgICAg ICAgICAgICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvdnQ4NjIzZmIuYyAgICAgICAgICAg ICAgICAgfCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jICAgICAgICAgICAgICAg ICAgIHwgMiArLQogZHJpdmVycy92aWRlby9mYmRldi93bTg1MDVmYi5jICAgICAgICAgICAgICAg ICB8IDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYveGVuLWZiZnJvbnQuYyAgICAgICAgICAgICAg fCAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3hpbGlueGZiLmMgICAgICAgICAgICAgICAgIHwg MiArLQogMTA3IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCAxMTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi82ODMyOGZiLmMgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2LzY4MzI4ZmIuYwppbmRleCBkNDhlOTYwODhmNzYuLjQ5MWZkNWE4Mjk5MyAx MDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi82ODMyOGZiLmMKKysrIGIvZHJpdmVycy92 aWRlby9mYmRldi82ODMyOGZiLmMKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIGludCBtYzY4eDMy OGZiX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLAogCQkJICAgc3Ry dWN0IGZiX2luZm8gKmluZm8pOwogc3RhdGljIGludCBtYzY4eDMyOGZiX21tYXAoc3RydWN0IGZi X2luZm8gKmluZm8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIAotc3RhdGljIHN0cnVj dCBmYl9vcHMgbWM2OHgzMjhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBt YzY4eDMyOGZiX29wcyA9IHsKIAkuZmJfY2hlY2tfdmFyCT0gbWM2OHgzMjhmYl9jaGVja192YXIs CiAJLmZiX3NldF9wYXIJPSBtYzY4eDMyOGZiX3NldF9wYXIsCiAJLmZiX3NldGNvbHJlZwk9IG1j Njh4MzI4ZmJfc2V0Y29scmVnLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9hY29y bmZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Fjb3JuZmIuYwppbmRleCA3Y2FjYWU1YTg3OTcu LmEzYWY0OTUyOTE3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9hY29ybmZiLmMK KysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hY29ybmZiLmMKQEAgLTYwNCw3ICs2MDQsNyBAQCBh Y29ybmZiX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLCBzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgYWNv cm5mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBhY29ybmZiX29wcyA9IHsK IAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGFjb3JuZmJfY2hlY2tf dmFyLAogCS5mYl9zZXRfcGFyCT0gYWNvcm5mYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aWRlby9mYmRldi9hbWJhLWNsY2QuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYW1iYS1jbGNk LmMKaW5kZXggN2RlNDNiZTZlZjJjLi5jM2Q1NWZjNmM0ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dmlkZW8vZmJkZXYvYW1iYS1jbGNkLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hbWJhLWNs Y2QuYwpAQCAtNDIzLDcgKzQyMyw3IEBAIHN0YXRpYyBpbnQgY2xjZGZiX21tYXAoc3RydWN0IGZi X2luZm8gKmluZm8sCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgY2xj ZGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGNsY2RmYl9vcHMgPSB7CiAJ Lm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBjbGNkZmJfY2hlY2tfdmFy LAogCS5mYl9zZXRfcGFyCT0gY2xjZGZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L2FtaWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2FtaWZiLmMKaW5kZXggOTFk ZGM5NjAyMDE0Li4yMGUwM2UwMGI2NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv YW1pZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2FtaWZiLmMKQEAgLTM0OTMsNyArMzQ5 Myw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBhbWlmYl9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAq ZGV2X2lkKQogfQogCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGFtaWZiX29wcyA9IHsKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGFtaWZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RV TEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGFtaWZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGFt aWZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2FyY2ZiLmMgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L2FyY2ZiLmMKaW5kZXggYTQ4NzQxYWFiMjQwLi4zMTRhYjgyZTAx YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXJjZmIuYworKysgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2FyY2ZiLmMKQEAgLTQ5MSw3ICs0OTEsNyBAQCBzdGF0aWMgc3NpemVfdCBh cmNmYl93cml0ZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwK IAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBhcmNmYl9vcHMgPSB7Citz dGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBhcmNmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNf TU9EVUxFLAogCS5mYl9vcGVuCT0gYXJjZmJfb3BlbiwKIAkuZmJfcmVhZCAgICAgICAgPSBmYl9z eXNfcmVhZCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXJrZmIuYyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvYXJrZmIuYwppbmRleCBmOTQwZThiNjZiODUuLjExYWI5YTE1Mzg2MCAx MDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9hcmtmYi5jCisrKyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvYXJrZmIuYwpAQCAtOTE3LDcgKzkxNyw3IEBAIHN0YXRpYyBpbnQgYXJrZmJfcGFu X2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICpp bmZvCiAKIC8qIEZyYW1lIGJ1ZmZlciBvcGVyYXRpb25zICovCiAKLXN0YXRpYyBzdHJ1Y3QgZmJf b3BzIGFya2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGFya2ZiX29wcyA9 IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX29wZW4JPSBhcmtmYl9vcGVuLAogCS5m Yl9yZWxlYXNlCT0gYXJrZmJfcmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvYXNpbGlhbnRmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9hc2lsaWFudGZiLmMKaW5kZXgg ZWEzMTA1NGEyOGNhLi4zZTAwNmRhNDc3NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvYXNpbGlhbnRmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXNpbGlhbnRmYi5jCkBA IC05NSw3ICs5NSw3IEBAIHN0YXRpYyBpbnQgYXNpbGlhbnRmYl9zZXRfcGFyKHN0cnVjdCBmYl9p bmZvICppbmZvKTsKIHN0YXRpYyBpbnQgYXNpbGlhbnRmYl9zZXRjb2xyZWcodV9pbnQgcmVnbm8s IHVfaW50IHJlZCwgdV9pbnQgZ3JlZW4sIHVfaW50IGJsdWUsCiAJCQkJdV9pbnQgdHJhbnNwLCBz dHJ1Y3QgZmJfaW5mbyAqaW5mbyk7CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGFzaWxpYW50ZmJf b3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgYXNpbGlhbnRmYl9vcHMgPSB7CiAJ Lm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBhc2lsaWFudGZiX2NoZWNr X3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGFzaWxpYW50ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlkZW8vZmJkZXYvYXRtZWxfbGNkZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXRt ZWxfbGNkZmIuYwppbmRleCA1ZmY4ZTAzMjBkOTUuLmQ1NjdmNWQ1NmMxMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy92aWRlby9mYmRldi9hdG1lbF9sY2RmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJk ZXYvYXRtZWxfbGNkZmIuYwpAQCAtODI0LDcgKzgyNCw3IEBAIHN0YXRpYyBpbnQgYXRtZWxfbGNk ZmJfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAo KGJsYW5rX21vZGUgPT0gRkJfQkxBTktfTk9STUFMKSA/IDEgOiAwKTsKIH0KIAotc3RhdGljIHN0 cnVjdCBmYl9vcHMgYXRtZWxfbGNkZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9v cHMgYXRtZWxfbGNkZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfY2hl Y2tfdmFyCT0gYXRtZWxfbGNkZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyCT0gYXRtZWxfbGNk ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L2F0eTEyOGZi LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9hdHkxMjhmYi5jCmluZGV4IGZjMWU0NWQ0NDcx OS4uZDdlNDFjOGRkNTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0eS9hdHkx MjhmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L2F0eTEyOGZiLmMKQEAgLTUwOSw3 ICs1MDksNyBAQCBzdGF0aWMgdm9pZCBhdHkxMjhfYmxfc2V0X3Bvd2VyKHN0cnVjdCBmYl9pbmZv ICppbmZvLCBpbnQgcG93ZXIpOwogCQkJICAocmVhZGIoYmlvcyArICh2KSArIDMpIDw8IDI0KSkK IAogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBhdHkxMjhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qg c3RydWN0IGZiX29wcyBhdHkxMjhmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAog CS5mYl9jaGVja192YXIJPSBhdHkxMjhmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSBhdHkx MjhmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9hdHkvcmFkZW9u X2Jhc2UuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L3JhZGVvbl9iYXNlLmMKaW5kZXggNGNh MDc4NjZmMmY2Li4zYWYwMGUzYjk2NWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv YXR5L3JhZGVvbl9iYXNlLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hdHkvcmFkZW9uX2Jh c2UuYwpAQCAtMTk2NSw3ICsxOTY1LDcgQEAgc3RhdGljIGludCByYWRlb25mYl9zZXRfcGFyKHN0 cnVjdCBmYl9pbmZvICppbmZvKQogfQogCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHJhZGVvbmZi X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHJhZGVvbmZiX29wcyA9IHsKIAku b3duZXIJCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJCT0gcmFkZW9uZmJfY2hlY2tf dmFyLAogCS5mYl9zZXRfcGFyCQk9IHJhZGVvbmZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2F1MTEwMGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1MTEwMGZi LmMKaW5kZXggOTk5NDFhZTFmM2ExLi4zN2E2NTEyZmVkYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dmlkZW8vZmJkZXYvYXUxMTAwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1MTEwMGZi LmMKQEAgLTM0OCw3ICszNDgsNyBAQCBpbnQgYXUxMTAwZmJfZmJfbW1hcChzdHJ1Y3QgZmJfaW5m byAqZmJpLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkJCWZiZGV2LT5mYl9sZW4pOwog fQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBhdTExMDBmYl9vcHMgPQorc3RhdGljIGNvbnN0IHN0 cnVjdCBmYl9vcHMgYXUxMTAwZmJfb3BzID0KIHsKIAkub3duZXIJCQk9IFRISVNfTU9EVUxFLAog CS5mYl9zZXRjb2xyZWcJCT0gYXUxMTAwZmJfZmJfc2V0Y29scmVnLApkaWZmIC0tZ2l0IGEvZHJp dmVycy92aWRlby9mYmRldi9hdTEyMDBmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9hdTEyMDBm Yi5jCmluZGV4IDI2NWQzYjQ1ZWZkMC4uYzAwZTAxYTE3MzY4IDEwMDY0NAotLS0gYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2F1MTIwMGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hdTEyMDBm Yi5jCkBAIC0xNDgzLDcgKzE0ODMsNyBAQCBzdGF0aWMgaW50IGF1MTIwMGZiX2lvY3RsKHN0cnVj dCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLAogfQogCiAKLXN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIGF1MTIwMGZiX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGF1 MTIwMGZiX2ZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zh cgk9IGF1MTIwMGZiX2ZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGF1MTIwMGZiX2ZiX3Nl dF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Jyb2Fkc2hlZXRmYi5jIGIv ZHJpdmVycy92aWRlby9mYmRldi9icm9hZHNoZWV0ZmIuYwppbmRleCBkNmJhMzQ4ZGViOWYuLmZk NjZmNGQ0YTYyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9icm9hZHNoZWV0ZmIu YworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Jyb2Fkc2hlZXRmYi5jCkBAIC0xMDQ4LDcgKzEw NDgsNyBAQCBzdGF0aWMgc3NpemVfdCBicm9hZHNoZWV0ZmJfd3JpdGUoc3RydWN0IGZiX2luZm8g KmluZm8sIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJcmV0dXJuIChlcnIpID8gZXJyIDogY291 bnQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGJyb2Fkc2hlZXRmYl9vcHMgPSB7CitzdGF0 aWMgY29uc3Qgc3RydWN0IGZiX29wcyBicm9hZHNoZWV0ZmJfb3BzID0gewogCS5vd25lcgkJPSBU SElTX01PRFVMRSwKIAkuZmJfcmVhZCAgICAgICAgPSBmYl9zeXNfcmVhZCwKIAkuZmJfd3JpdGUJ PSBicm9hZHNoZWV0ZmJfd3JpdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2J3 Mi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9idzIuYwppbmRleCA0MzZmMTBmM2QzNzUuLjBkOWE2 YmI1N2EwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9idzIuYworKysgYi9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2J3Mi5jCkBAIC0zNyw3ICszNyw3IEBAIHN0YXRpYyBpbnQgYncyX2lv Y3RsKHN0cnVjdCBmYl9pbmZvICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiAgKiAg RnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBidzJf b3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgYncyX29wcyA9IHsKIAkub3duZXIJ CQk9IFRISVNfTU9EVUxFLAogCS5mYl9ibGFuawkJPSBidzJfYmxhbmssCiAJLmZiX2ZpbGxyZWN0 CQk9IGNmYl9maWxscmVjdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2FybWlu ZWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Nhcm1pbmVmYi5jCmluZGV4IDlmM2JlMDI1ODYy My4uYmYzZjJhOTU5OGIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Nhcm1pbmVm Yi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2FybWluZWZiLmMKQEAgLTUyNyw3ICs1Mjcs NyBAQCBzdGF0aWMgaW50IGluaXRfaGFyZHdhcmUoc3RydWN0IGNhcm1pbmVfaHcgKmh3KQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBjYXJtaW5lZmJfb3BzID0geworc3Rh dGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgY2FybWluZWZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX2ZpbGxyZWN0CT0gY2ZiX2ZpbGxyZWN0LAogCS5mYl9jb3B5YXJlYQk9 IGNmYl9jb3B5YXJlYSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2cxNC5jIGIv ZHJpdmVycy92aWRlby9mYmRldi9jZzE0LmMKaW5kZXggZDgwZDk5ZGIzYTQ2Li5hNjIwYjUxY2Y3 ZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2cxNC5jCisrKyBiL2RyaXZlcnMv dmlkZW8vZmJkZXYvY2cxNC5jCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBpbnQgY2cxNF9wYW5f ZGlzcGxheShzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKiwgc3RydWN0IGZiX2luZm8gKik7CiAg KiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBj ZzE0X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGNnMTRfb3BzID0gewogCS5v d25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBjZzE0X3NldGNvbHJlZywK IAkuZmJfcGFuX2Rpc3BsYXkJCT0gY2cxNF9wYW5fZGlzcGxheSwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdmlkZW8vZmJkZXYvY2czLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NnMy5jCmluZGV4IDA5 ZjYxNmRkZGZkNy4uNzdmNjQ3MGNlNjY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L2NnMy5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2czLmMKQEAgLTM5LDcgKzM5LDcgQEAg c3RhdGljIGludCBjZzNfaW9jdGwoc3RydWN0IGZiX2luZm8gKiwgdW5zaWduZWQgaW50LCB1bnNp Z25lZCBsb25nKTsKICAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwogICovCiAKLXN0YXRpYyBz dHJ1Y3QgZmJfb3BzIGNnM19vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBjZzNf b3BzID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBjZzNf c2V0Y29scmVnLAogCS5mYl9ibGFuawkJPSBjZzNfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2NnNi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9jZzYuYwppbmRleCBkNTg4 OGFlY2MyZmIuLmExYzY4Y2Q0OGQ3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9j ZzYuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NnNi5jCkBAIC00NCw3ICs0NCw3IEBAIHN0 YXRpYyBpbnQgY2c2X3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqLCBzdHJ1 Y3QgZmJfaW5mbyAqKTsKICAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwogICovCiAKLXN0YXRp YyBzdHJ1Y3QgZmJfb3BzIGNnNl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBj ZzZfb3BzID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBj ZzZfc2V0Y29scmVnLAogCS5mYl9ibGFuawkJPSBjZzZfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2NoaXBzZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY2hpcHNmYi5j CmluZGV4IGY0ZGMzMjBkY2FmZS4uOTk4MDY3YjcwMWZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L2NoaXBzZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NoaXBzZmIuYwpA QCAtNzksNyArNzksNyBAQCBzdGF0aWMgaW50IGNoaXBzZmJfc2V0Y29scmVnKHVfaW50IHJlZ25v LCB1X2ludCByZWQsIHVfaW50IGdyZWVuLCB1X2ludCBibHVlLAogCQkJICAgICB1X2ludCB0cmFu c3AsIHN0cnVjdCBmYl9pbmZvICppbmZvKTsKIHN0YXRpYyBpbnQgY2hpcHNmYl9ibGFuayhpbnQg YmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKTsKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgY2hp cHNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBjaGlwc2ZiX29wcyA9IHsK IAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGNoaXBzZmJfY2hlY2tf dmFyLAogCS5mYl9zZXRfcGFyCT0gY2hpcHNmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aWRlby9mYmRldi9jaXJydXNmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9jaXJydXNmYi5j CmluZGV4IGU0Y2U1NjY3YjEyNS4uYzNhM2UzNDRjZWUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L2NpcnJ1c2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jaXJydXNmYi5j CkBAIC0xOTU2LDcgKzE5NTYsNyBAQCBzdGF0aWMgdm9pZCBjaXJydXNmYl96b3Jyb191bm1hcChz dHJ1Y3QgZmJfaW5mbyAqaW5mbykKICNlbmRpZiAvKiBDT05GSUdfWk9SUk8gKi8KIAogLyogZnVu Y3Rpb24gdGFibGUgb2YgdGhlIGFib3ZlIGZ1bmN0aW9ucyAqLwotc3RhdGljIHN0cnVjdCBmYl9v cHMgY2lycnVzZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgY2lycnVzZmJf b3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfb3Blbgk9IGNpcnJ1c2ZiX29w ZW4sCiAJLmZiX3JlbGVhc2UJPSBjaXJydXNmYl9yZWxlYXNlLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aWRlby9mYmRldi9jbHBzNzExeC1mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9jbHBzNzEx eC1mYi5jCmluZGV4IGNhYmJjNzIxZjg5NC4uYzVkMTVjNmRiMjg3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2NscHM3MTF4LWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9j bHBzNzExeC1mYi5jCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIGludCBjbHBzNzExeF9mYl9i bGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgc3RydWN0IGZiX29wcyBjbHBzNzExeF9mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBjbHBzNzExeF9mYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAog CS5mYl9zZXRjb2xyZWcJPSBjbHBzNzExeF9mYl9zZXRjb2xyZWcsCiAJLmZiX2NoZWNrX3Zhcgk9 IGNscHM3MTF4X2ZiX2NoZWNrX3ZhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv Y29iYWx0X2xjZGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvYmFsdF9sY2RmYi5jCmluZGV4 IDU0NDk0NjkwMWU4Yi4uNWY4YjYzMjRkMmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2NvYmFsdF9sY2RmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29iYWx0X2xjZGZi LmMKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgaW50IGNvYmFsdF9sY2RmYl9jdXJzb3Ioc3Ry dWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBmYl9jdXJzb3IgKmN1cnNvcikKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgY29iYWx0X2xjZF9mYm9wcyA9IHsKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZmJfb3BzIGNvYmFsdF9sY2RfZmJvcHMgPSB7CiAJLm93bmVyCQk9IFRISVNf TU9EVUxFLAogCS5mYl9yZWFkCT0gY29iYWx0X2xjZGZiX3JlYWQsCiAJLmZiX3dyaXRlCT0gY29i YWx0X2xjZGZiX3dyaXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jb250cm9s ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29udHJvbGZiLmMKaW5kZXggOWE2ODBlZjNmZmMz Li4zOGI2MWNkYjVjYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvY29udHJvbGZi LmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb250cm9sZmIuYwpAQCAtMTU3LDcgKzE1Nyw3 IEBAIHN0YXRpYyBpbnQgZGVmYXVsdF92bW9kZSBfX2luaXRkYXRhID0gVk1PREVfTlZSQU07CiBz dGF0aWMgaW50IGRlZmF1bHRfY21vZGUgX19pbml0ZGF0YSA9IENNT0RFX05WUkFNOwogCiAKLXN0 YXRpYyBzdHJ1Y3QgZmJfb3BzIGNvbnRyb2xmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0 IGZiX29wcyBjb250cm9sZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJf Y2hlY2tfdmFyCT0gY29udHJvbGZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGNvbnRyb2xm Yl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jeWJlcjIwMDBmYi5j IGIvZHJpdmVycy92aWRlby9mYmRldi9jeWJlcjIwMDBmYi5jCmluZGV4IDNhMmQ5ZmYwYWE0Mi4u NDYwODI2YTdhZDU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2N5YmVyMjAwMGZi LmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jeWJlcjIwMDBmYi5jCkBAIC0xMDYwLDcgKzEw NjAsNyBAQCBzdGF0aWMgaW50IGN5YmVyMjAwMGZiX2JsYW5rKGludCBibGFuaywgc3RydWN0IGZi X2luZm8gKmluZm8pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGN5YmVy MjAwMGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGN5YmVyMjAwMGZiX29w cyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGN5YmVyMjAw MGZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGN5YmVyMjAwMGZiX3NldF9wYXIsCmRpZmYg LS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2RhOHh4LWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2RhOHh4LWZiLmMKaW5kZXggMmQzZGNjNTJmY2YzLi43M2MzYzRjOGNjMTIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZGE4eHgtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2RhOHh4LWZiLmMKQEAgLTEyOTQsNyArMTI5NCw3IEBAIHN0YXRpYyBpbnQgZGE4eHhmYl9z ZXRfcGFyKHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3Ry dWN0IGZiX29wcyBkYTh4eF9mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBk YTh4eF9mYl9vcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3ZhciA9 IGZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3BhciA9IGRhOHh4ZmJfc2V0X3BhciwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZG5mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9kbmZi LmMKaW5kZXggOGRhNTE3ZWFhNGEzLi4zNjg4ZjkxNjU4NDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv dmlkZW8vZmJkZXYvZG5mYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZG5mYi5jCkBAIC0x MDgsNyArMTA4LDcgQEAKIHN0YXRpYyBpbnQgZG5mYl9ibGFuayhpbnQgYmxhbmssIHN0cnVjdCBm Yl9pbmZvICppbmZvKTsKIHN0YXRpYyB2b2lkIGRuZmJfY29weWFyZWEoc3RydWN0IGZiX2luZm8g KmluZm8sIGNvbnN0IHN0cnVjdCBmYl9jb3B5YXJlYSAqYXJlYSk7CiAKLXN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIGRuX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGRuX2ZiX29w cyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2JsYW5rCT0gZG5mYl9ibGFuaywK IAkuZmJfZmlsbHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2VmaWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2VmaWZiLmMKaW5kZXggNTFkOTdl YzRmNThmLi5mMDNmOWZiNjBjMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZWZp ZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2VmaWZiLmMKQEAgLTI1NSw3ICsyNTUsNyBA QCBzdGF0aWMgdm9pZCBlZmlmYl9kZXN0cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKQogCWZiX2Rl YWxsb2NfY21hcCgmaW5mby0+Y21hcCk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGVmaWZi X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGVmaWZiX29wcyA9IHsKIAkub3du ZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2Rlc3Ryb3kJPSBlZmlmYl9kZXN0cm95LAogCS5mYl9z ZXRjb2xyZWcJPSBlZmlmYl9zZXRjb2xyZWcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2VwOTN4eC1mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9lcDkzeHgtZmIuYwppbmRleCBk MDRhMDQ3MDk0ZmMuLmNkYTJlZjMzNzQyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRl di9lcDkzeHgtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2VwOTN4eC1mYi5jCkBAIC00 MDIsNyArNDAyLDcgQEAgc3RhdGljIGludCBlcDkzeHhmYl9zZXRjb2xyZWcodW5zaWduZWQgaW50 IHJlZ25vLCB1bnNpZ25lZCBpbnQgcmVkLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0 IGZiX29wcyBlcDkzeHhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBlcDkz eHhmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBl cDkzeHhmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSBlcDkzeHhmYl9zZXRfcGFyLApkaWZm IC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9mYi1wdXYzLmMgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2ZiLXB1djMuYwppbmRleCBmYTYyYzRkZmY3ZDEuLjc1ZGY2YWFiYWMyMSAxMDA2NDQKLS0t IGEvZHJpdmVycy92aWRlby9mYmRldi9mYi1wdXYzLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRl di9mYi1wdXYzLmMKQEAgLTY0NCw3ICs2NDQsNyBAQCBpbnQgdW5pZmJfbW1hcChzdHJ1Y3QgZmJf aW5mbyAqaW5mbywKIAlyZXR1cm4gdm1faW9tYXBfbWVtb3J5KHZtYSwgaW5mby0+Zml4LnNtZW1f c3RhcnQsIGluZm8tPmZpeC5zbWVtX2xlbik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHVu aWZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHVuaWZiX29wcyA9IHsKIAku ZmJfcmVhZCAgICAgICAgPSBmYl9zeXNfcmVhZCwKIAkuZmJfd3JpdGUgICAgICAgPSBmYl9zeXNf d3JpdGUsCiAJLmZiX2NoZWNrX3Zhcgk9IHVuaWZiX2NoZWNrX3ZhciwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlkZW8vZmJkZXYvZmZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2ZmYi5jCmluZGV4 IGNkMmQxZGIyMzlhMi4uOTQ4YjczMTg0NDMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L2ZmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZmZiLmMKQEAgLTQ0LDcgKzQ0LDcg QEAgc3RhdGljIGludCBmZmJfcGFuX2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICos IHN0cnVjdCBmYl9pbmZvICopOwogICogIEZyYW1lIGJ1ZmZlciBvcGVyYXRpb25zCiAgKi8KIAot c3RhdGljIHN0cnVjdCBmYl9vcHMgZmZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJf b3BzIGZmYl9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKIAkuZmJfc2V0Y29scmVn CQk9IGZmYl9zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCQk9IGZmYl9ibGFuaywKZGlmZiAtLWdpdCBh L2RyaXZlcnMvdmlkZW8vZmJkZXYvZm0yZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZm0yZmIu YwppbmRleCBhYzdhNGViZmQzOTAuLjNiNzI3ZDUyOGZkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aWRlby9mYmRldi9mbTJmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZm0yZmIuYwpAQCAt MTY1LDcgKzE2NSw3IEBAIHN0YXRpYyBpbnQgZm0yZmJfc2V0Y29scmVnKHVfaW50IHJlZ25vLCB1 X2ludCByZWQsIHVfaW50IGdyZWVuLCB1X2ludCBibHVlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgdV9pbnQgdHJhbnNwLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbyk7CiBzdGF0aWMgaW50IGZt MmZiX2JsYW5rKGludCBibGFuaywgc3RydWN0IGZiX2luZm8gKmluZm8pOwogCi1zdGF0aWMgc3Ry dWN0IGZiX29wcyBmbTJmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBmbTJm Yl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJPSBmbTJm Yl9zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCT0gZm0yZmJfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2ZzbC1kaXUtZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZnNsLWRp dS1mYi5jCmluZGV4IGQxOWY1ODI2M2I0ZS4uN2NhY2FiZGQ1ZjEyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L2ZzbC1kaXUtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Zz bC1kaXUtZmIuYwpAQCAtMTQ0OCw3ICsxNDQ4LDcgQEAgc3RhdGljIGludCBmc2xfZGl1X3JlbGVh c2Uoc3RydWN0IGZiX2luZm8gKmluZm8sIGludCB1c2VyKQogCXJldHVybiByZXM7CiB9CiAKLXN0 YXRpYyBzdHJ1Y3QgZmJfb3BzIGZzbF9kaXVfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBm Yl9vcHMgZnNsX2RpdV9vcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNr X3ZhciA9IGZzbF9kaXVfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyID0gZnNsX2RpdV9zZXRfcGFy LApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9nMzY0ZmIuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvZzM2NGZiLmMKaW5kZXggMjIzODk2Y2M1ZjdkLi44NDViNzlkYTJhN2MgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvZzM2NGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9m YmRldi9nMzY0ZmIuYwpAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyBpbnQgZzM2NGZiX3NldGNv bHJlZyh1X2ludCByZWdubywgdV9pbnQgcmVkLCB1X2ludCBncmVlbiwKIHN0YXRpYyBpbnQgZzM2 NGZiX2N1cnNvcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3RydWN0IGZiX2N1cnNvciAqY3Vyc29y KTsKIHN0YXRpYyBpbnQgZzM2NGZiX2JsYW5rKGludCBibGFuaywgc3RydWN0IGZiX2luZm8gKmlu Zm8pOwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBnMzY0ZmJfb3BzID0geworc3RhdGljIGNvbnN0 IHN0cnVjdCBmYl9vcHMgZzM2NGZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJ LmZiX3NldGNvbHJlZwk9IGczNjRmYl9zZXRjb2xyZWcsCiAJLmZiX3Bhbl9kaXNwbGF5CT0gZzM2 NGZiX3Bhbl9kaXNwbGF5LApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9nYmVmYi5j IGIvZHJpdmVycy92aWRlby9mYmRldi9nYmVmYi5jCmluZGV4IGI5ZjZhODJhMDQ5NS4uMzEyNzBh ODk4NmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2diZWZiLmMKKysrIGIvZHJp dmVycy92aWRlby9mYmRldi9nYmVmYi5jCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBzdGF0aWMgaW50 IGdiZWZiX21tYXAoc3RydWN0IGZiX2luZm8gKmluZm8sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBzdHJ1Y3QgZmJfb3BzIGdiZWZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3Bz IGdiZWZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9 IGdiZWZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGdiZWZiX3NldF9wYXIsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2d4MWZiX2NvcmUuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvZ2VvZGUvZ3gxZmJfY29yZS5jCmluZGV4IDczN2U0NzJmYWMxNC4uNWQzNGQ4OWZi NjY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2d4MWZiX2NvcmUuYwor KysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2d4MWZiX2NvcmUuYwpAQCAtMjUyLDcgKzI1 Miw3IEBAIHN0YXRpYyBpbnQgcGFyc2VfcGFuZWxfb3B0aW9uKHN0cnVjdCBmYl9pbmZvICppbmZv KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBneDFmYl9vcHMgPSB7Citz dGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBneDFmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNf TU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBneDFmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJ PSBneDFmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9nZW9kZS9n eGZiX2NvcmUuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZ2VvZGUvZ3hmYl9jb3JlLmMKaW5kZXgg NDM1Y2UyYWE0MjQwLi5kMzhhMTQ4ZDQ3NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvZ2VvZGUvZ3hmYl9jb3JlLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9nZW9kZS9neGZi X2NvcmUuYwpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBpbnQgZ3hmYl9tYXBfdmlkZW9fbWVt b3J5KHN0cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCXJldHVybiAw OwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBneGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZmJfb3BzIGd4ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJf Y2hlY2tfdmFyCT0gZ3hmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSBneGZiX3NldF9wYXIs CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2x4ZmJfY29yZS5jIGIvZHJp dmVycy92aWRlby9mYmRldi9nZW9kZS9seGZiX2NvcmUuYwppbmRleCBiMGYwN2Q2NzZlYjMuLmFk YzJkOWMyMzk1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9nZW9kZS9seGZiX2Nv cmUuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dlb2RlL2x4ZmJfY29yZS5jCkBAIC0zODYs NyArMzg2LDcgQEAgc3RhdGljIGludCBseGZiX21hcF92aWRlb19tZW1vcnkoc3RydWN0IGZiX2lu Zm8gKmluZm8sIHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBz dHJ1Y3QgZmJfb3BzIGx4ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgbHhm Yl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBseGZi X2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IGx4ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlkZW8vZmJkZXYvZ29sZGZpc2hmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9nb2xk ZmlzaGZiLmMKaW5kZXggZjYwYWMyNzY3MDNkLi45YzgzZWMzZjhlMWYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdmlkZW8vZmJkZXYvZ29sZGZpc2hmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv Z29sZGZpc2hmYi5jCkBAIC0xNjAsNyArMTYwLDcgQEAgc3RhdGljIGludCBnb2xkZmlzaF9mYl9i bGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgc3RydWN0IGZiX29wcyBnb2xkZmlzaF9mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBnb2xkZmlzaF9mYl9vcHMgPSB7CiAJLm93bmVyICAgICAgICAgID0gVEhJU19N T0RVTEUsCiAJLmZiX2NoZWNrX3ZhciAgID0gZ29sZGZpc2hfZmJfY2hlY2tfdmFyLAogCS5mYl9z ZXRfcGFyICAgICA9IGdvbGRmaXNoX2ZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L2dydmdhLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dydmdhLmMKaW5kZXggZDIy ZThiMGM5MDZkLi4wN2RkYTAzZTA5NTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv Z3J2Z2EuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2dydmdhLmMKQEAgLTI1MSw3ICsyNTEs NyBAQCBzdGF0aWMgaW50IGdydmdhX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5m byAqdmFyLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBncnZnYV9vcHMg PSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBncnZnYV9vcHMgPSB7CiAJLm93bmVyICAg ICAgICAgID0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3ZhciAgID0gZ3J2Z2FfY2hlY2tfdmFy LAogCS5mYl9zZXRfcGFyCT0gZ3J2Z2Ffc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlk ZW8vZmJkZXYvZ3h0NDUwMC5jIGIvZHJpdmVycy92aWRlby9mYmRldi9neHQ0NTAwLmMKaW5kZXgg Yzc1MDJmZDhmNDQ3Li4xM2RlZDNhMTA3MDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvZ3h0NDUwMC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvZ3h0NDUwMC5jCkBAIC01OTks NyArNTk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9maXhfc2NyZWVuaW5mbyBneHQ0NTAw X2ZpeCA9IHsKIAkubW1pb19sZW4gPSAweDIwMDAwLAogfTsKIAotc3RhdGljIHN0cnVjdCBmYl9v cHMgZ3h0NDUwMF9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBneHQ0NTAwX29w cyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyID0gZ3h0NDUwMF9j aGVja192YXIsCiAJLmZiX3NldF9wYXIgPSBneHQ0NTAwX3NldF9wYXIsCmRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L2hlY3ViYWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2hlY3Vi YWZiLmMKaW5kZXggODU3NzE5NWNiNTMzLi4wMGQ3NzEwNTE2MWEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdmlkZW8vZmJkZXYvaGVjdWJhZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2hlY3Vi YWZiLmMKQEAgLTE5Nyw3ICsxOTcsNyBAQCBzdGF0aWMgc3NpemVfdCBoZWN1YmFmYl93cml0ZShz dHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAlyZXR1cm4gKGVy cikgPyBlcnIgOiBjb3VudDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgaGVjdWJhZmJfb3Bz ID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgaGVjdWJhZmJfb3BzID0gewogCS5vd25l cgkJPSBUSElTX01PRFVMRSwKIAkuZmJfcmVhZCAgICAgICAgPSBmYl9zeXNfcmVhZCwKIAkuZmJf d3JpdGUJPSBoZWN1YmFmYl93cml0ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYv aGdhZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaGdhZmIuYwppbmRleCA1OWUxY2FlNTc5NDgu LmE0NWZjZmYxNDYxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9oZ2FmYi5jCisr KyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaGdhZmIuYwpAQCAtNTIzLDcgKzUyMyw3IEBAIHN0YXRp YyB2b2lkIGhnYWZiX2ltYWdlYmxpdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3Qgc3RydWN0 IGZiX2ltYWdlICppbWFnZSkKIAl9CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGhnYWZiX29w cyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGhnYWZiX29wcyA9IHsKIAkub3duZXIJ CT0gVEhJU19NT0RVTEUsCiAJLmZiX29wZW4JPSBoZ2FmYl9vcGVuLAogCS5mYl9yZWxlYXNlCT0g aGdhZmJfcmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvaGl0ZmIuYyBi L2RyaXZlcnMvdmlkZW8vZmJkZXYvaGl0ZmIuYwppbmRleCBhYmUzZTU0ZDQ1MDYuLjAwOWU1ZDJh YTEwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9oaXRmYi5jCisrKyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvaGl0ZmIuYwpAQCAtMzExLDcgKzMxMSw3IEBAIHN0YXRpYyBpbnQgaGl0 ZmJfc2V0X3BhcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IHN0cnVjdCBmYl9vcHMgaGl0ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMg aGl0ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyCT0g aGl0ZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyCQk9IGhpdGZiX3NldF9wYXIsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2hwZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaHBm Yi5jCmluZGV4IGE3OWFmOGYwNjlkMS4uZjAyYmUwZGIzMzVlIDEwMDY0NAotLS0gYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2hwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2hwZmIuYwpAQCAt MTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBpbnQgaHBmYl9zeW5jKHN0cnVjdCBmYl9pbmZvICppbmZv KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBocGZiX29wcyA9IHsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGhwZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01P RFVMRSwKIAkuZmJfc2V0Y29scmVnCT0gaHBmYl9zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCT0gaHBm Yl9ibGFuaywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvaHlwZXJ2X2ZiLmMgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L2h5cGVydl9mYi5jCmluZGV4IDJkY2I3YzU4YjMxZS4uZmNkNTQ2 ZTVjMDMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2h5cGVydl9mYi5jCisrKyBi L2RyaXZlcnMvdmlkZW8vZmJkZXYvaHlwZXJ2X2ZiLmMKQEAgLTYyMyw3ICs2MjMsNyBAQCBzdGF0 aWMgdm9pZCBodmZiX2NmYl9pbWFnZWJsaXQoc3RydWN0IGZiX2luZm8gKnAsCiAJCXN5bnRodmlk X3VwZGF0ZShwKTsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgaHZmYl9vcHMgPSB7CitzdGF0 aWMgY29uc3Qgc3RydWN0IGZiX29wcyBodmZiX29wcyA9IHsKIAkub3duZXIgPSBUSElTX01PRFVM RSwKIAkuZmJfY2hlY2tfdmFyID0gaHZmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIgPSBodmZi X3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2k3NDBmYi5jIGIvZHJp dmVycy92aWRlby9mYmRldi9pNzQwZmIuYwppbmRleCAzNDdjZjhiYWJjM2UuLmM2NWVjNzM4NmU4 NyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9pNzQwZmIuYworKysgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2k3NDBmYi5jCkBAIC05ODEsNyArOTgxLDcgQEAgc3RhdGljIGludCBpNzQw ZmJfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAo YmxhbmtfbW9kZSA9PSBGQl9CTEFOS19OT1JNQUwpID8gMSA6IDA7CiB9CiAKLXN0YXRpYyBzdHJ1 Y3QgZmJfb3BzIGk3NDBmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBpNzQw ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfb3Blbgk9IGk3NDBmYl9v cGVuLAogCS5mYl9yZWxlYXNlCT0gaTc0MGZiX3JlbGVhc2UsCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L2ltc3R0ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW1zdHRmYi5jCmlu ZGV4IDU4YjAxYzdkOTA1Ni4uM2FjMDUzYjg4NDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2ltc3R0ZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2ltc3R0ZmIuYwpAQCAt MTMzMyw3ICsxMzMzLDcgQEAgc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGltc3R0ZmJfcGNpX2Ry aXZlciA9IHsKIAkucmVtb3ZlID0JaW1zdHRmYl9yZW1vdmUsCiB9OwogCi1zdGF0aWMgc3RydWN0 IGZiX29wcyBpbXN0dGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIGltc3R0 ZmJfb3BzID0gewogCS5vd25lciAJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IGlt c3R0ZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyIAk9IGltc3R0ZmJfc2V0X3BhciwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW14ZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv aW14ZmIuYwppbmRleCBiMzI4NmQxZmE1NDMuLjA4YTE3ZWIyYTVjNyAxMDA2NDQKLS0tIGEvZHJp dmVycy92aWRlby9mYmRldi9pbXhmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvaW14ZmIu YwpAQCAtNTY2LDcgKzU2Niw3IEBAIHN0YXRpYyBpbnQgaW14ZmJfYmxhbmsoaW50IGJsYW5rLCBz dHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9v cHMgaW14ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgaW14ZmJfb3BzID0g ewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyCT0gaW14ZmJfY2hlY2tf dmFyLAogCS5mYl9zZXRfcGFyCT0gaW14ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv dmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZiZHJ2LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2lu dGVsZmIvaW50ZWxmYmRydi5jCmluZGV4IGE3NmM2MTUxMmM2MC4uYzc0NDg5MTc4MWE1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2ludGVsZmIvaW50ZWxmYmRydi5jCisrKyBiL2Ry aXZlcnMvdmlkZW8vZmJkZXYvaW50ZWxmYi9pbnRlbGZiZHJ2LmMKQEAgLTE5Myw3ICsxOTMsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaW50ZWxmYl9wY2lfdGFibGVbXSA9 IHsKIHN0YXRpYyBpbnQgbnVtX3JlZ2lzdGVyZWQgPSAwOwogCiAvKiBmYiBvcHMgKi8KLXN0YXRp YyBzdHJ1Y3QgZmJfb3BzIGludGVsX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJf b3BzIGludGVsX2ZiX29wcyA9IHsKIAkub3duZXIgPQkJVEhJU19NT0RVTEUsCiAJLmZiX29wZW4g PSAgICAgICAgICAgICAgaW50ZWxmYl9vcGVuLAogCS5mYl9yZWxlYXNlID0gICAgICAgICAgIGlu dGVsZmJfcmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYva3lyby9mYmRl di5jIGIvZHJpdmVycy92aWRlby9mYmRldi9reXJvL2ZiZGV2LmMKaW5kZXggYTdiZDlmMjU5MTFi Li43MmRmZjJlNDJlM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYva3lyby9mYmRl di5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYva3lyby9mYmRldi5jCkBAIC02NDgsNyArNjQ4 LDcgQEAgc3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGt5cm9mYl9wY2lfZHJpdmVyID0gewogCS5y ZW1vdmUJCT0ga3lyb2ZiX3JlbW92ZSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGt5cm9m Yl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBreXJvZmJfb3BzID0gewogCS5v d25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyCT0ga3lyb2ZiX2NoZWNrX3ZhciwK IAkuZmJfc2V0X3Bhcgk9IGt5cm9mYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRl by9mYmRldi9sZW8uYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvbGVvLmMKaW5kZXggNWIxMTQxYWMx ODJiLi40MGIxMWNjZTBhZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvbGVvLmMK KysrIGIvZHJpdmVycy92aWRlby9mYmRldi9sZW8uYwpAQCAtMzksNyArMzksNyBAQCBzdGF0aWMg aW50IGxlb19wYW5fZGlzcGxheShzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKiwgc3RydWN0IGZi X2luZm8gKik7CiAgKiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAqLwogCi1zdGF0aWMgc3Ry dWN0IGZiX29wcyBsZW9fb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgbGVvX29w cyA9IHsKIAkub3duZXIJCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJCT0gbGVvX3Nl dGNvbHJlZywKIAkuZmJfYmxhbmsJCT0gbGVvX2JsYW5rLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9tYWNmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9tYWNmYi5jCmluZGV4IDlh NmZlZWU5NjEzMy4uZTA1YTk3NjYyY2E4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L21hY2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9tYWNmYi5jCkBAIC00OTYsNyArNDk2 LDcgQEAgc3RhdGljIGludCBtYWNmYl9zZXRjb2xyZWcodW5zaWduZWQgcmVnbm8sIHVuc2lnbmVk IHJlZCwgdW5zaWduZWQgZ3JlZW4sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJf b3BzIG1hY2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG1hY2ZiX29wcyA9 IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwk9IG1hY2ZiX3NldGNv bHJlZywKIAkuZmJfZmlsbHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L21hdHJveC9tYXRyb3hmYl9jcnRjMi5jIGIvZHJpdmVycy92aWRlby9mYmRl di9tYXRyb3gvbWF0cm94ZmJfY3J0YzIuYwppbmRleCBkMmE4MWEyYzNhYzAuLjc2NTVhZmEzZmQ1 MCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9tYXRyb3gvbWF0cm94ZmJfY3J0YzIu YworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21hdHJveC9tYXRyb3hmYl9jcnRjMi5jCkBAIC01 NjMsNyArNTYzLDcgQEAgc3RhdGljIGludCBtYXRyb3hmYl9kaF9ibGFuayhpbnQgYmxhbmssIHN0 cnVjdCBmYl9pbmZvKiBpbmZvKSB7CiAjdW5kZWYgbTJpbmZvCiB9CiAKLXN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIG1hdHJveGZiX2RoX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG1h dHJveGZiX2RoX29wcyA9IHsKIAkub3duZXIgPQlUSElTX01PRFVMRSwKIAkuZmJfb3BlbiA9CW1h dHJveGZiX2RoX29wZW4sCiAJLmZiX3JlbGVhc2UgPQltYXRyb3hmYl9kaF9yZWxlYXNlLApkaWZm IC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9tYXhpbmVmYi5jIGIvZHJpdmVycy92aWRlby9m YmRldi9tYXhpbmVmYi5jCmluZGV4IDViYjFiNWMzMDhhNy4uYWUxYTQyYmNiMGVhIDEwMDY0NAot LS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21heGluZWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9m YmRldi9tYXhpbmVmYi5jCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGludCBtYXhpbmVmYl9z ZXRjb2xyZWcodW5zaWduZWQgcmVnbm8sIHVuc2lnbmVkIHJlZCwgdW5zaWduZWQgZ3JlZW4sCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG1heGluZWZiX29wcyA9IHsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG1heGluZWZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwk9IG1heGluZWZiX3NldGNvbHJlZywKIAkuZmJfZmls bHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21i eC9tYnhmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9tYngvbWJ4ZmIuYwppbmRleCA1MDkzNTI1 MmI1MGIuLjI1ZGFkNDUwN2Q3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9tYngv bWJ4ZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21ieC9tYnhmYi5jCkBAIC02NzEsNyAr NjcxLDcgQEAgc3RhdGljIGludCBtYnhmYl9pb2N0bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5z aWduZWQgaW50IGNtZCwKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9v cHMgbWJ4ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgbWJ4ZmJfb3BzID0g ewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIgPSBtYnhmYl9jaGVja192 YXIsCiAJLmZiX3NldF9wYXIgPSBtYnhmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9tZXRyb25vbWVmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9tZXRyb25vbWVm Yi5jCmluZGV4IGJiNGZlZTUyZTUwMS4uYTQyZTJlY2VlZTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L21ldHJvbm9tZWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9tZXRy b25vbWVmYi5jCkBAIC01NTgsNyArNTU4LDcgQEAgc3RhdGljIHNzaXplX3QgbWV0cm9ub21lZmJf d3JpdGUoc3RydWN0IGZiX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgX191c2VyICpidWYsCiAJcmV0 dXJuIChlcnIpID8gZXJyIDogY291bnQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG1ldHJv bm9tZWZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG1ldHJvbm9tZWZiX29w cyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3dyaXRlCT0gbWV0cm9ub21lZmJf d3JpdGUsCiAJLmZiX2ZpbGxyZWN0CT0gbWV0cm9ub21lZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQg YS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21tcC9mYi9tbXBmYi5jIGIvZHJpdmVycy92aWRlby9mYmRl di9tbXAvZmIvbW1wZmIuYwppbmRleCA0N2JjN2M1OWJiZDguLjMzZGIwODUwMDg2ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9tbXAvZmIvbW1wZmIuYworKysgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L21tcC9mYi9tbXBmYi5jCkBAIC00NTQsNyArNDU0LDcgQEAgc3RhdGljIGludCBt bXBmYl9ibGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXJldHVybiAwOwog fQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBtbXBmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBtbXBmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9i bGFuawk9IG1tcGZiX2JsYW5rLAogCS5mYl9jaGVja192YXIJPSBtbXBmYl9jaGVja192YXIsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L214M2ZiLmMgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L214M2ZiLmMKaW5kZXggYmFmZDVmNWZhYzVhLi40YWYyOGU0NDIxZTUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdmlkZW8vZmJkZXYvbXgzZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L214 M2ZiLmMKQEAgLTEyNDksNyArMTI0OSw3IEBAIHN0YXRpYyBpbnQgbXgzZmJfcGFuX2Rpc3BsYXko c3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsCiAgKiBpbnZva2VkIGJ5IHRoZSBjb3JlIGZy YW1lYnVmZmVyIGRyaXZlciB0byBwZXJmb3JtIG9wZXJhdGlvbnMgbGlrZQogICogYmxpdHRpbmcs IHJlY3RhbmdsZSBmaWxsaW5nLCBjb3B5IHJlZ2lvbnMgYW5kIGN1cnNvciBkZWZpbml0aW9uLgog ICovCi1zdGF0aWMgc3RydWN0IGZiX29wcyBteDNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyBteDNmYl9vcHMgPSB7CiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLmZiX3Nl dF9wYXIgPSBteDNmYl9zZXRfcGFyLAogCS5mYl9jaGVja192YXIgPSBteDNmYl9jaGVja192YXIs CkBAIC0xMzg5LDcgKzEzODksOCBAQCBzdGF0aWMgaW50IG14M2ZiX3VubWFwX3ZpZGVvX21lbW9y eShzdHJ1Y3QgZmJfaW5mbyAqZmJpKQogICogbXgzZmJfaW5pdF9mYmluZm8oKSAtIGluaXRpYWxp emUgZnJhbWVidWZmZXIgaW5mb3JtYXRpb24gb2JqZWN0LgogICogQHJldHVybjoJaW5pdGlhbGl6 ZWQgZnJhbWVidWZmZXIgc3RydWN0dXJlLgogICovCi1zdGF0aWMgc3RydWN0IGZiX2luZm8gKm14 M2ZiX2luaXRfZmJpbmZvKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGZiX29wcyAqb3BzKQor c3RhdGljIHN0cnVjdCBmYl9pbmZvICpteDNmYl9pbml0X2ZiaW5mbyhzdHJ1Y3QgZGV2aWNlICpk ZXYsCisJCQkJCSBjb25zdCBzdHJ1Y3QgZmJfb3BzICpvcHMpCiB7CiAJc3RydWN0IGZiX2luZm8g KmZiaTsKIAlzdHJ1Y3QgbXgzZmJfaW5mbyAqbXgzZmJpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9uZW9mYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9uZW9mYi5jCmluZGV4IGI3 NzA5NDZhMDkyMC4uZTZlYTg1M2MxNzIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L25lb2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9uZW9mYi5jCkBAIC0xNjEwLDcgKzE2 MTAsNyBAQCBuZW9mYl9jdXJzb3Ioc3RydWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBmYl9jdXJz b3IgKmN1cnNvcikKIH0KICovCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG5lb2ZiX29wcyA9IHsK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG5lb2ZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX29wZW4JPSBuZW9mYl9vcGVuLAogCS5mYl9yZWxlYXNlCT0gbmVvZmJf cmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvb2NmYi5jIGIvZHJpdmVy cy92aWRlby9mYmRldi9vY2ZiLmMKaW5kZXggYTk3MGVkYzJhNmY4Li5jOGNlZTJkODkwZGMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvb2NmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvb2NmYi5jCkBAIC0yODUsNyArMjg1LDcgQEAgc3RhdGljIGludCBvY2ZiX2luaXRfdmFy KHN0cnVjdCBvY2ZiX2RldiAqZmJkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qg ZmJfb3BzIG9jZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgb2NmYl9vcHMg PSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJPSBvY2ZiX3NldGNv bHJlZywKIAkuZmJfZmlsbHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2ZiZGV2L29mZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvb2ZmYi5jCmluZGV4IGZi YzZlYWZiNjNjNy4uNWNkMGY1ZjZhNGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L29mZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29mZmIuYwpAQCAtMjg2LDcgKzI4Niw3 IEBAIHN0YXRpYyB2b2lkIG9mZmJfZGVzdHJveShzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlmcmFt ZWJ1ZmZlcl9yZWxlYXNlKGluZm8pOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBvZmZiX29w cyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIG9mZmJfb3BzID0gewogCS5vd25lcgkJ PSBUSElTX01PRFVMRSwKIAkuZmJfZGVzdHJveQk9IG9mZmJfZGVzdHJveSwKIAkuZmJfc2V0Y29s cmVnCT0gb2ZmYl9zZXRjb2xyZWcsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29t YXAyL29tYXBmYi9vbWFwZmItbWFpbi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFw ZmIvb21hcGZiLW1haW4uYwppbmRleCA4NThjMmMwMTFkMTkuLjhkZmE5MTU4YmE3OCAxMDA2NDQK LS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9vbWFwMi9vbWFwZmIvb21hcGZiLW1haW4uYworKysg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L29tYXAyL29tYXBmYi9vbWFwZmItbWFpbi5jCkBAIC0xMjgw LDcgKzEyODAsNyBAQCBzc2l6ZV90IG9tYXBmYl93cml0ZShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywg Y29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIH0KICNlbmRpZgogCi1zdGF0aWMgc3RydWN0IGZiX29w cyBvbWFwZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgb21hcGZiX29wcyA9 IHsKIAkub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKIAkuZmJfb3BlbiAgICAgICAgPSBv bWFwZmJfb3BlbiwKIAkuZmJfcmVsZWFzZSAgICAgPSBvbWFwZmJfcmVsZWFzZSwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcDkxMDAuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcDkx MDAuYwppbmRleCA4YzE4Y2M1MWFhZTIuLjZkYTY3MmU5MjY0MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy92aWRlby9mYmRldi9wOTEwMC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcDkxMDAuYwpA QCAtMzcsNyArMzcsNyBAQCBzdGF0aWMgaW50IHA5MTAwX2lvY3RsKHN0cnVjdCBmYl9pbmZvICos IHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiAgKiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlv bnMKICAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBwOTEwMF9vcHMgPSB7CitzdGF0aWMgY29u c3Qgc3RydWN0IGZiX29wcyBwOTEwMF9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwK IAkuZmJfc2V0Y29scmVnCQk9IHA5MTAwX3NldGNvbHJlZywKIAkuZmJfYmxhbmsJCT0gcDkxMDBf YmxhbmssCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BsYXRpbnVtZmIuYyBiL2Ry aXZlcnMvdmlkZW8vZmJkZXYvcGxhdGludW1mYi5jCmluZGV4IDYzMmIyNDZjYTM1Zi4uY2U0MTNh OWRmMDZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BsYXRpbnVtZmIuYworKysg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BsYXRpbnVtZmIuYwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0 aWMgaW50IHBsYXRpbnVtX3Zhcl90b19wYXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIs CiAgKiBJbnRlcmZhY2UgdXNlZCBieSB0aGUgd29ybGQKICAqLwogCi1zdGF0aWMgc3RydWN0IGZi X29wcyBwbGF0aW51bWZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHBsYXRp bnVtZmJfb3BzID0gewogCS5vd25lciA9CVRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBw bGF0aW51bWZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3Bhcgk9IHBsYXRpbnVtZmJfc2V0X3BhciwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG0yZmIuYyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvcG0yZmIuYwppbmRleCAxZGNmMDJlMTJhZjQuLjhmOTMzYmFkNDYxYyAxMDA2NDQKLS0t IGEvZHJpdmVycy92aWRlby9mYmRldi9wbTJmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv cG0yZmIuYwpAQCAtMTQ4Myw3ICsxNDgzLDcgQEAgc3RhdGljIGludCBwbTJmYl9jdXJzb3Ioc3Ry dWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBmYl9jdXJzb3IgKmN1cnNvcikKICAqICBGcmFtZSBi dWZmZXIgb3BlcmF0aW9ucwogICovCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHBtMmZiX29wcyA9 IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHBtMmZiX29wcyA9IHsKIAkub3duZXIJCT0g VEhJU19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IHBtMmZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0 X3Bhcgk9IHBtMmZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Bt M2ZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtM2ZiLmMKaW5kZXggNjEzMGFhNTZhMWU5Li4x NWEyYjQ5NTIzNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG0zZmIuYworKysg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtM2ZiLmMKQEAgLTEyMDAsNyArMTIwMCw3IEBAIHN0YXRp YyBpbnQgcG0zZmJfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZvICppbmZvKQog CSAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwogCSAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29w cyBwbTNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBwbTNmYl9vcHMgPSB7 CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBwbTNmYl9jaGVja192 YXIsCiAJLmZiX3NldF9wYXIJPSBwbTNmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9mYmRldi9wbWFnLWFhLWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtYWctYWEtZmIu YwppbmRleCBkMWU3OGNlM2E5YzIuLjdiMzNiNTJiMjUyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aWRlby9mYmRldi9wbWFnLWFhLWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9wbWFnLWFh LWZiLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgaW50IGFhZmJfYmxhbmsoaW50IGJsYW5r LCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBm Yl9vcHMgYWFmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBhYWZiX29wcyA9 IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2JsYW5rCT0gYWFmYl9ibGFuaywKIAku ZmJfZmlsbHJlY3QJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3BtYWctYmEtZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG1hZy1iYS1mYi5jCmluZGV4 IDU2YjkxMmJiMjhkZS4uYTYwZTU2ZDg5ODBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3BtYWctYmEtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BtYWctYmEtZmIuYwpA QCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBpbnQgcG1hZ2JhZmJfc2V0Y29scmVnKHVuc2lnbmVk IGludCByZWdubywgdW5zaWduZWQgaW50IHJlZCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0 cnVjdCBmYl9vcHMgcG1hZ2JhZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMg cG1hZ2JhZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfc2V0Y29scmVn CT0gcG1hZ2JhZmJfc2V0Y29scmVnLAogCS5mYl9maWxscmVjdAk9IGNmYl9maWxscmVjdCwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG1hZ2ItYi1mYi5jIGIvZHJpdmVycy92aWRl by9mYmRldi9wbWFnYi1iLWZiLmMKaW5kZXggMjgyMmIyMjI1OTI0Li5mMDIwODBmMjEwNzcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcG1hZ2ItYi1mYi5jCisrKyBiL2RyaXZlcnMv dmlkZW8vZmJkZXYvcG1hZ2ItYi1mYi5jCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIGludCBw bWFnYmJmYl9zZXRjb2xyZWcodW5zaWduZWQgaW50IHJlZ25vLCB1bnNpZ25lZCBpbnQgcmVkLAog CXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBwbWFnYmJmYl9vcHMgPSB7Citz dGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBwbWFnYmJmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRI SVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJPSBwbWFnYmJmYl9zZXRjb2xyZWcsCiAJLmZiX2Zp bGxyZWN0CT0gY2ZiX2ZpbGxyZWN0LApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9w czNmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9wczNmYi5jCmluZGV4IDVlZDJkYjM5ZDgyMy4u ODM0ZjYzZWRmNzAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3BzM2ZiLmMKKysr IGIvZHJpdmVycy92aWRlby9mYmRldi9wczNmYi5jCkBAIC05MzQsNyArOTM0LDcgQEAgc3RhdGlj IGlycXJldHVybl90IHBzM2ZiX3ZzeW5jX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpwdHIpCiB9 CiAKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgcHMzZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0 cnVjdCBmYl9vcHMgcHMzZmJfb3BzID0gewogCS5mYl9vcGVuCT0gcHMzZmJfb3BlbiwKIAkuZmJf cmVsZWFzZQk9IHBzM2ZiX3JlbGVhc2UsCiAJLmZiX3JlYWQgICAgICAgID0gZmJfc3lzX3JlYWQs CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B2cjJmYi5jIGIvZHJpdmVycy92aWRl by9mYmRldi9wdnIyZmIuYwppbmRleCAwYTNiMmI3Yzc4OTEuLmZjYjE2ZWFiYmIwZCAxMDA2NDQK LS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9wdnIyZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3B2cjJmYi5jCkBAIC03MDcsNyArNzA3LDcgQEAgc3RhdGljIHNzaXplX3QgcHZyMmZiX3dy aXRlKHN0cnVjdCBmYl9pbmZvICppbmZvLCBjb25zdCBjaGFyICpidWYsCiB9CiAjZW5kaWYgLyog Q09ORklHX1BWUjJfRE1BICovCiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHB2cjJmYl9vcHMgPSB7 CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBwdnIyZmJfb3BzID0gewogCS5vd25lcgkJPSBU SElTX01PRFVMRSwKIAkuZmJfc2V0Y29scmVnCT0gcHZyMmZiX3NldGNvbHJlZywKIAkuZmJfYmxh bmsJPSBwdnIyZmJfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2 OGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2OGZiLmMKaW5kZXggMTQxMGY0NzZlMTM1 Li5jNjcyYzMzNTRhMmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcHhhMTY4ZmIu YworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2OGZiLmMKQEAgLTU0NSw3ICs1NDUsNyBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgcHhhMTY4ZmJfaGFuZGxlX2lycShpbnQgaXJxLCB2b2lkICpk ZXZfaWQpCiAJcmV0dXJuIElSUV9OT05FOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBweGEx NjhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBweGExNjhmYl9vcHMgPSB7 CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBweGExNjhmYl9jaGVj a192YXIsCiAJLmZiX3NldF9wYXIJPSBweGExNjhmYl9zZXRfcGFyLApkaWZmIC0tZ2l0IGEvZHJp dmVycy92aWRlby9mYmRldi9weGFmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9weGFmYi5jCmlu ZGV4IGY3MGM5Zjc5NjIyZS4uNmY3ZTlmYjYzMTkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3B4YWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9weGFmYi5jCkBAIC01OTcs NyArNTk3LDcgQEAgc3RhdGljIGludCBweGFmYl9ibGFuayhpbnQgYmxhbmssIHN0cnVjdCBmYl9p bmZvICppbmZvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBweGFmYl9v cHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBweGFmYl9vcHMgPSB7CiAJLm93bmVy CQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBweGFmYl9jaGVja192YXIsCiAJLmZi X3NldF9wYXIJPSBweGFmYl9zZXRfcGFyLApAQCAtODY1LDcgKzg2NSw3IEBAIHN0YXRpYyBpbnQg b3ZlcmxheWZiX3NldF9wYXIoc3RydWN0IGZiX2luZm8gKmluZm8pCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIG92ZXJsYXlfZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0 cnVjdCBmYl9vcHMgb3ZlcmxheV9mYl9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwK IAkuZmJfb3BlbgkJPSBvdmVybGF5ZmJfb3BlbiwKIAkuZmJfcmVsZWFzZQkJPSBvdmVybGF5ZmJf cmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcTQwZmIuYyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvcTQwZmIuYwppbmRleCAwYjkzYWE5NjRkNDMuLjc5ZmYxNGEzNWM4NSAx MDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9xNDBmYi5jCisrKyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvcTQwZmIuYwpAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgaW50IHE0MGZiX3NldGNv bHJlZyh1bnNpZ25lZCByZWdubywgdW5zaWduZWQgcmVkLCB1bnNpZ25lZCBncmVlbiwKICAgICBy ZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgcTQwZmJfb3BzID0geworc3RhdGlj IGNvbnN0IHN0cnVjdCBmYl9vcHMgcTQwZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVM RSwKIAkuZmJfc2V0Y29scmVnCT0gcTQwZmJfc2V0Y29scmVnLAogCS5mYl9maWxscmVjdAk9IGNm Yl9maWxscmVjdCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcml2YS9mYmRldi5j IGIvZHJpdmVycy92aWRlby9mYmRldi9yaXZhL2ZiZGV2LmMKaW5kZXggY2E1OTNhM2U0MWQ3Li43 NjRlYzMyODVlNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcml2YS9mYmRldi5j CisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcml2YS9mYmRldi5jCkBAIC0xNjczLDcgKzE2NzMs NyBAQCBzdGF0aWMgaW50IHJpdmFmYl9zeW5jKHN0cnVjdCBmYl9pbmZvICppbmZvKQogICogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAqLwogCiAvKiBrZXJuZWwgaW50ZXJmYWNlICovCi1zdGF0aWMgc3RydWN0 IGZiX29wcyByaXZhX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHJpdmFf ZmJfb3BzID0gewogCS5vd25lciAJCT0gVEhJU19NT0RVTEUsCiAJLmZiX29wZW4JPSByaXZhZmJf b3BlbiwKIAkuZmJfcmVsZWFzZQk9IHJpdmFmYl9yZWxlYXNlLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy92aWRlby9mYmRldi9zM2MtZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvczNjLWZiLmMKaW5k ZXggYmEwNGQ3YTY3ODI5Li5mNDg3MWM0MzBmOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8v ZmJkZXYvczNjLWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9zM2MtZmIuYwpAQCAtMTAz NSw3ICsxMDM1LDcgQEAgc3RhdGljIGludCBzM2NfZmJfaW9jdGwoc3RydWN0IGZiX2luZm8gKmlu Zm8sIHVuc2lnbmVkIGludCBjbWQsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHN0cnVjdCBm Yl9vcHMgczNjX2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHMzY19mYl9v cHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192YXIJPSBzM2NfZmJf Y2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyCT0gczNjX2ZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3MzYzI0MTBmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9zM2My NDEwZmIuYwppbmRleCBhNzAyZGE4OTkxMGIuLjJmYjE1YTU0MDE2NyAxMDA2NDQKLS0tIGEvZHJp dmVycy92aWRlby9mYmRldi9zM2MyNDEwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Mz YzI0MTBmYi5jCkBAIC02MTgsNyArNjE4LDcgQEAgc3RhdGljIGludCBzM2MyNDEwZmJfZGVidWdf c3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCiBzdGF0aWMgREVWSUNFX0FUVFIoZGVidWcsIDA2 NjQsIHMzYzI0MTBmYl9kZWJ1Z19zaG93LCBzM2MyNDEwZmJfZGVidWdfc3RvcmUpOwogCi1zdGF0 aWMgc3RydWN0IGZiX29wcyBzM2MyNDEwZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBm Yl9vcHMgczNjMjQxMGZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmZiX2No ZWNrX3Zhcgk9IHMzYzI0MTBmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSBzM2MyNDEwZmJf c2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvczNmYi5jIGIvZHJpdmVy cy92aWRlby9mYmRldi9zM2ZiLmMKaW5kZXggYmUxNmMzNDljMTBmLi42MGM0MjRmYWU5ODggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvczNmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvczNmYi5jCkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBzdGF0aWMgaW50IHMzZmJfcGFuX2Rp c3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZv KQogCiAvKiBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucyAqLwogCi1zdGF0aWMgc3RydWN0IGZiX29w cyBzM2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHMzZmJfb3BzID0gewog CS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkuZmJfb3Blbgk9IHMzZmJfb3BlbiwKIAkuZmJfcmVs ZWFzZQk9IHMzZmJfcmVsZWFzZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2Ex MTAwZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2ExMTAwZmIuYwppbmRleCA4MWFkM2FhMWNh MDYuLjQ2ODBjYzNlZmI4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9zYTExMDBm Yi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2ExMTAwZmIuYwpAQCAtNTc0LDcgKzU3NCw3 IEBAIHN0YXRpYyBpbnQgc2ExMTAwZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKIAlyZXR1 cm4gdm1faW9tYXBfbWVtb3J5KHZtYSwgaW5mby0+Zml4Lm1taW9fc3RhcnQsIGluZm8tPmZpeC5t bWlvX2xlbik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHNhMTEwMGZiX29wcyA9IHsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHNhMTEwMGZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX2NoZWNrX3Zhcgk9IHNhMTEwMGZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0 X3Bhcgk9IHNhMTEwMGZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L3NhdmFnZS9zYXZhZ2VmYl9kcml2ZXIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2F2YWdlL3Nh dmFnZWZiX2RyaXZlci5jCmluZGV4IDUxMjc4OWY1Zjg4NC4uYWFiMzEyYTdkOWRhIDEwMDY0NAot LS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NhdmFnZS9zYXZhZ2VmYl9kcml2ZXIuYworKysgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3NhdmFnZS9zYXZhZ2VmYl9kcml2ZXIuYwpAQCAtMTYzNyw3ICsx NjM3LDcgQEAgc3RhdGljIGludCBzYXZhZ2VmYl9yZWxlYXNlKHN0cnVjdCBmYl9pbmZvICppbmZv LCBpbnQgdXNlcikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgc2F2YWdl ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgc2F2YWdlZmJfb3BzID0gewog CS5vd25lciAgICAgICAgICA9IFRISVNfTU9EVUxFLAogCS5mYl9vcGVuICAgICAgICA9IHNhdmFn ZWZiX29wZW4sCiAJLmZiX3JlbGVhc2UgICAgID0gc2F2YWdlZmJfcmVsZWFzZSwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2g3NzYwZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv c2g3NzYwZmIuYwppbmRleCBhYjhmZTgzOGM3NzYuLmI4ZWM4ZDliYjRjOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy92aWRlby9mYmRldi9zaDc3NjBmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv c2g3NzYwZmIuYwpAQCAtMzQxLDcgKzM0MSw3IEBAIHN0YXRpYyBpbnQgc2g3NzYwZmJfc2V0X3Bh cihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBm Yl9vcHMgc2g3NzYwZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgc2g3NzYw ZmJfb3BzID0gewogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5mYl9ibGFuayA9IHNoNzc2MGZi X2JsYW5rLAogCS5mYl9jaGVja192YXIgPSBzaDc3NjBmYl9jaGVja192YXIsCmRpZmYgLS1naXQg YS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvc2hfbW9iaWxlX2xjZGNmYi5jCmluZGV4IGMyNDk3NjNkYmYwYi4uMjVmMTE5ZWZlYmMw IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYworKysg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NoX21vYmlsZV9sY2RjZmIuYwpAQCAtMTQ5MCw3ICsxNDkw LDcgQEAgc2hfbW9iaWxlX2xjZGNfb3ZlcmxheV9tbWFwKHN0cnVjdCBmYl9pbmZvICppbmZvLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkJCQkgb3ZsLT5kbWFfaGFuZGxlLCBvdmwtPmZi X3NpemUpOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBzaF9tb2JpbGVfbGNkY19vdmVybGF5 X29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHNoX21vYmlsZV9sY2RjX292ZXJs YXlfb3BzID0gewogCS5vd25lciAgICAgICAgICA9IFRISVNfTU9EVUxFLAogCS5mYl9yZWFkICAg ICAgICA9IGZiX3N5c19yZWFkLAogCS5mYl93cml0ZSAgICAgICA9IGZiX3N5c193cml0ZSwKQEAg LTE5NjQsNyArMTk2NCw3IEBAIHNoX21vYmlsZV9sY2RjX21tYXAoc3RydWN0IGZiX2luZm8gKmlu Zm8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogCQkJCSBjaC0+ZG1hX2hhbmRsZSwgY2gt PmZiX3NpemUpOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyBzaF9tb2JpbGVfbGNkY19vcHMg PSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBzaF9tb2JpbGVfbGNkY19vcHMgPSB7CiAJ Lm93bmVyICAgICAgICAgID0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwk9IHNoX21vYmls ZV9sY2RjX3NldGNvbHJlZywKIAkuZmJfcmVhZCAgICAgICAgPSBmYl9zeXNfcmVhZCwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2ltcGxlZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJk ZXYvc2ltcGxlZmIuYwppbmRleCA3ZGMwMTA1ZjcwMGQuLjUzM2EwNDdkMDdhMiAxMDA2NDQKLS0t IGEvZHJpdmVycy92aWRlby9mYmRldi9zaW1wbGVmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJk ZXYvc2ltcGxlZmIuYwpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgdm9pZCBzaW1wbGVmYl9kZXN0 cm95KHN0cnVjdCBmYl9pbmZvICppbmZvKQogCQlpb3VubWFwKGluZm8tPnNjcmVlbl9iYXNlKTsK IH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgc2ltcGxlZmJfb3BzID0geworc3RhdGljIGNvbnN0 IHN0cnVjdCBmYl9vcHMgc2ltcGxlZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwK IAkuZmJfZGVzdHJveQk9IHNpbXBsZWZiX2Rlc3Ryb3ksCiAJLmZiX3NldGNvbHJlZwk9IHNpbXBs ZWZiX3NldGNvbHJlZywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2lzL3Npc19t YWluLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Npcy9zaXNfbWFpbi5jCmluZGV4IGI0NDNhOGVk NDYwMC4uYWMxNDA5NjJiMWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Npcy9z aXNfbWFpbi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2lzL3Npc19tYWluLmMKQEAgLTE5 MDYsNyArMTkwNiw3IEBAIHNpc2ZiX2dldF9maXgoc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvICpm aXgsIGludCBjb24sIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCiAvKiAtLS0tLS0tLS0tLS0tLS0t ICBmYl9vcHMgc3RydWN0dXJlcyAtLS0tLS0tLS0tLS0tLS0tLSAqLwogCi1zdGF0aWMgc3RydWN0 IGZiX29wcyBzaXNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBzaXNmYl9v cHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9vcGVuCT0gc2lzZmJfb3BlbiwK IAkuZmJfcmVsZWFzZQk9IHNpc2ZiX3JlbGVhc2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3NrZWxldG9uZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc2tlbGV0b25mYi5jCmlu ZGV4IDgxMmEzNmNiNjBjMy4uYmNhY2ZiNjkzNGZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3NrZWxldG9uZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NrZWxldG9uZmIu YwpAQCAtNjM0LDcgKzYzNCw3IEBAIGludCB4eHhmYl9zeW5jKHN0cnVjdCBmYl9pbmZvICppbmZv KQogICAgICAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwogICAgICAqLwogCi1zdGF0aWMgc3Ry dWN0IGZiX29wcyB4eHhmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyB4eHhm Yl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9vcGVuCT0geHh4ZmJfb3Bl biwKIAkuZmJfcmVhZAk9IHh4eGZiX3JlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3NtNzEyZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc203MTJmYi5jCmluZGV4IDIwN2Qw YWRkNjg0Yi4uNmExYjRhODUzZDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Nt NzEyZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NtNzEyZmIuYwpAQCAtMTM2OSw3ICsx MzY5LDcgQEAgc3RhdGljIGludCBzbXRjX3NldF9wYXIoc3RydWN0IGZiX2luZm8gKmluZm8pCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHNtdGNmYl9vcHMgPSB7CitzdGF0 aWMgY29uc3Qgc3RydWN0IGZiX29wcyBzbXRjZmJfb3BzID0gewogCS5vd25lciAgICAgICAgPSBU SElTX01PRFVMRSwKIAkuZmJfY2hlY2tfdmFyID0gc210Y19jaGVja192YXIsCiAJLmZiX3NldF9w YXIgICA9IHNtdGNfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc21z Y3VmeC5jIGIvZHJpdmVycy92aWRlby9mYmRldi9zbXNjdWZ4LmMKaW5kZXggZTM2MmQ3ZGE4N2Zj Li5iZmFjM2VlNGE2NDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc21zY3VmeC5j CisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc21zY3VmeC5jCkBAIC0xMjY4LDcgKzEyNjgsNyBA QCBzdGF0aWMgaW50IHVmeF9vcHNfYmxhbmsoaW50IGJsYW5rX21vZGUsIHN0cnVjdCBmYl9pbmZv ICppbmZvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB1Znhfb3BzID0g eworc3RhdGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgdWZ4X29wcyA9IHsKIAkub3duZXIgPSBUSElT X01PRFVMRSwKIAkuZmJfcmVhZCA9IGZiX3N5c19yZWFkLAogCS5mYl93cml0ZSA9IHVmeF9vcHNf d3JpdGUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3NzZDEzMDdmYi5jIGIvZHJp dmVycy92aWRlby9mYmRldi9zc2QxMzA3ZmIuYwppbmRleCA3OGNhN2ZmYzQwYzIuLjE0MjUzNTI2 N2ZlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9zc2QxMzA3ZmIuYworKysgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3NzZDEzMDdmYi5jCkBAIC0yODAsNyArMjgwLDcgQEAgc3RhdGlj IHZvaWQgc3NkMTMwN2ZiX2ltYWdlYmxpdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3Qgc3Ry dWN0IGZiX2ltYWdlICppbWEKIAlzc2QxMzA3ZmJfdXBkYXRlX2Rpc3BsYXkocGFyKTsKIH0KIAot c3RhdGljIHN0cnVjdCBmYl9vcHMgc3NkMTMwN2ZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZmJfb3BzIHNzZDEzMDdmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5m Yl9yZWFkCT0gZmJfc3lzX3JlYWQsCiAJLmZiX3dyaXRlCT0gc3NkMTMwN2ZiX3dyaXRlLApkaWZm IC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9zc3RmYi5jIGIvZHJpdmVycy92aWRlby9mYmRl di9zc3RmYi5jCmluZGV4IDRlMjJhZTM4M2M4Ny4uODJlNzA3YTQ4ZTRlIDEwMDY0NAotLS0gYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3NzdGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9zc3Rm Yi5jCkBAIC0xMzA3LDcgKzEzMDcsNyBAQCBzdGF0aWMgaW50IHNzdGZiX3NldHVwKGNoYXIgKm9w dGlvbnMpCiB9CiAKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgc3N0ZmJfb3BzID0geworc3RhdGlj IGNvbnN0IHN0cnVjdCBmYl9vcHMgc3N0ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVM RSwKIAkuZmJfY2hlY2tfdmFyCT0gc3N0ZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyCT0gc3N0 ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvc3RpZmIuYyBiL2Ry aXZlcnMvdmlkZW8vZmJkZXYvc3RpZmIuYwppbmRleCA5ZTg4ZTNmNTk0YzIuLjU0MDBhYjc5ZmJi ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9zdGlmYi5jCisrKyBiL2RyaXZlcnMv dmlkZW8vZmJkZXYvc3RpZmIuYwpAQCAtMTEwMSw3ICsxMTAxLDcgQEAgc3RpZmJfaW5pdF9kaXNw bGF5KHN0cnVjdCBzdGlmYl9pbmZvICpmYikKIAogLyogLS0tLS0tLS0tLS0tIEludGVyZmFjZXMg dG8gaGFyZHdhcmUgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLSAqLwogCi1zdGF0aWMgc3RydWN0IGZi X29wcyBzdGlmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBzdGlmYl9vcHMg PSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJPSBzdGlmYl9zZXRj b2xyZWcsCiAJLmZiX2JsYW5rCT0gc3RpZmJfYmxhbmssCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3N1bnh2cjEwMDAuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc3VueHZyMTAwMC5j CmluZGV4IDc4NGM5YmQ1ZDUwMi4uMTViMDc5NTA1YTAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3N1bnh2cjEwMDAuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2cjEw MDAuYwpAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgaW50IGdmYl9zZXRjb2xyZWcodW5zaWduZWQg cmVnbm8sCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIGdmYl9vcHMgPSB7 CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyBnZmJfb3BzID0gewogCS5vd25lcgkJCT0gVEhJ U19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBnZmJfc2V0Y29scmVnLAogCS5mYl9maWxscmVj dAkJPSBjZmJfZmlsbHJlY3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2 cjI1MDAuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvc3VueHZyMjUwMC5jCmluZGV4IDMxNjgzZTVh OGI3OS4uMWQzYmFjZDlkNWFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2 cjI1MDAuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2cjI1MDAuYwpAQCAtNjMsNyAr NjMsNyBAQCBzdGF0aWMgaW50IHMzZF9zZXRjb2xyZWcodW5zaWduZWQgcmVnbm8sCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHMzZF9vcHMgPSB7CitzdGF0aWMgY29uc3Qg c3RydWN0IGZiX29wcyBzM2Rfb3BzID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZi X3NldGNvbHJlZwkJPSBzM2Rfc2V0Y29scmVnLAogCS5mYl9maWxscmVjdAkJPSBjZmJfZmlsbHJl Y3QsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2cjUwMC5jIGIvZHJpdmVy cy92aWRlby9mYmRldi9zdW54dnI1MDAuYwppbmRleCBkMzkyOTc2MTI2YTYuLjlkYWYxN2IxMTEw NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi9zdW54dnI1MDAuYworKysgYi9kcml2 ZXJzL3ZpZGVvL2ZiZGV2L3N1bnh2cjUwMC5jCkBAIC0xODYsNyArMTg2LDcgQEAgc3RhdGljIHZv aWQgZTNkX2NvcHlhcmVhKHN0cnVjdCBmYl9pbmZvICppbmZvLCBjb25zdCBzdHJ1Y3QgZmJfY29w eWFyZWEgKmFyZWEpCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZXAtPmxvY2ssIGZsYWdzKTsK IH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgZTNkX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZmJfb3BzIGUzZF9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKIAkuZmJfc2V0 Y29scmVnCQk9IGUzZF9zZXRjb2xyZWcsCiAJLmZiX2ZpbGxyZWN0CQk9IGUzZF9maWxscmVjdCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdGN4LmMgYi9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3RjeC5jCmluZGV4IDc4OTdmODZmYjIzZS4uMzRiMmU1YjZlODRhIDEwMDY0NAotLS0gYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3RjeC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdGN4LmMK QEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIGludCB0Y3hfcGFuX2Rpc3BsYXkoc3RydWN0IGZiX3Zh cl9zY3JlZW5pbmZvICosIHN0cnVjdCBmYl9pbmZvICopOwogICogIEZyYW1lIGJ1ZmZlciBvcGVy YXRpb25zCiAgKi8KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgdGN4X29wcyA9IHsKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZmJfb3BzIHRjeF9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwK IAkuZmJfc2V0Y29scmVnCQk9IHRjeF9zZXRjb2xyZWcsCiAJLmZiX2JsYW5rCQk9IHRjeF9ibGFu aywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdGRmeGZiLmMgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3RkZnhmYi5jCmluZGV4IGZkYmIxZWE2NmU2Yy4uMDM0OWNmNjk2NTJmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RkZnhmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8v ZmJkZXYvdGRmeGZiLmMKQEAgLTExNDEsNyArMTE0MSw3IEBAIHN0YXRpYyBpbnQgdGRmeGZiX2N1 cnNvcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgc3RydWN0IGZiX2N1cnNvciAqY3Vyc29yKQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB0ZGZ4ZmJfb3BzID0geworc3RhdGlj IGNvbnN0IHN0cnVjdCBmYl9vcHMgdGRmeGZiX29wcyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RV TEUsCiAJLmZiX2NoZWNrX3Zhcgk9IHRkZnhmYl9jaGVja192YXIsCiAJLmZiX3NldF9wYXIJPSB0 ZGZ4ZmJfc2V0X3BhciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdGdhZmIuYyBi L2RyaXZlcnMvdmlkZW8vZmJkZXYvdGdhZmIuYwppbmRleCAyODZiMjM3MWM3ZGQuLjdjZDI2Mjg1 ODI0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi90Z2FmYi5jCisrKyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvdGdhZmIuYwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgc3RydWN0IHRj X2RyaXZlciB0Z2FmYl90Y19kcml2ZXI7CiAgKiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAq LwogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB0Z2FmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZiX29wcyB0Z2FmYl9vcHMgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKIAkuZmJf Y2hlY2tfdmFyCQk9IHRnYWZiX2NoZWNrX3ZhciwKIAkuZmJfc2V0X3BhcgkJPSB0Z2FmYl9zZXRf cGFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi90bWlvZmIuYyBiL2RyaXZlcnMv dmlkZW8vZmJkZXYvdG1pb2ZiLmMKaW5kZXggNGYyZmNlYTEwZDJiLi41MDExMTk2NmM5ODEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdG1pb2ZiLmMKKysrIGIvZHJpdmVycy92aWRl by9mYmRldi90bWlvZmIuYwpAQCAtNjQ2LDcgKzY0Niw3IEBAIHN0YXRpYyBpbnQgdG1pb2ZiX2Js YW5rKGludCBibGFuaywgc3RydWN0IGZiX2luZm8gKmluZm8pCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBzdHJ1Y3QgZmJfb3BzIHRtaW9mYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZi X29wcyB0bWlvZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAogCS5mYl9pb2N0 bAk9IHRtaW9mYl9pb2N0bCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVu dGZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRmYi5jCmluZGV4IGRhNzRiZjZjNTk5 Ni4uNzE1NTA5OTE3ZWFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3RyaWRlbnRm Yi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdHJpZGVudGZiLmMKQEAgLTE0NDMsNyArMTQ0 Myw3IEBAIHN0YXRpYyBpbnQgdHJpZGVudGZiX2JsYW5rKGludCBibGFua19tb2RlLCBzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gKGJsYW5rX21vZGUgPT0gRkJfQkxBTktfTk9STUFMKSA/ IDEgOiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB0cmlkZW50ZmJfb3BzID0geworc3Rh dGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgdHJpZGVudGZiX29wcyA9IHsKIAkub3duZXIgPSBUSElT X01PRFVMRSwKIAkuZmJfc2V0Y29scmVnID0gdHJpZGVudGZiX3NldGNvbHJlZywKIAkuZmJfcGFu X2Rpc3BsYXkgPSB0cmlkZW50ZmJfcGFuX2Rpc3BsYXksCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3ZhbGt5cmllZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdmFsa3lyaWVmYi5j CmluZGV4IGUwNGZkZTljMWZjZC4uY2E4ZDczNDNhYWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3ZhbGt5cmllZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3ZhbGt5cmll ZmIuYwpAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBpbnQgdmFsa3lyaWVfaW5pdF9pbmZvKHN0 cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3QgZmJfaW5mb192YWxreXJpZSAqcCk7CiBzdGF0aWMg dm9pZCB2YWxreXJpZV9wYXJfdG9fZml4KHN0cnVjdCBmYl9wYXJfdmFsa3lyaWUgKnBhciwgc3Ry dWN0IGZiX2ZpeF9zY3JlZW5pbmZvICpmaXgpOwogc3RhdGljIHZvaWQgdmFsa3lyaWVfaW5pdF9m aXgoc3RydWN0IGZiX2ZpeF9zY3JlZW5pbmZvICpmaXgsIHN0cnVjdCBmYl9pbmZvX3ZhbGt5cmll ICpwKTsKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgdmFsa3lyaWVmYl9vcHMgPSB7CitzdGF0aWMg Y29uc3Qgc3RydWN0IGZiX29wcyB2YWxreXJpZWZiX29wcyA9IHsKIAkub3duZXIgPQlUSElTX01P RFVMRSwKIAkuZmJfY2hlY2tfdmFyID0JdmFsa3lyaWVmYl9jaGVja192YXIsCiAJLmZiX3NldF9w YXIgPQl2YWxreXJpZWZiX3NldF9wYXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L3ZmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi92ZmIuYwppbmRleCA1NDEyNzkwNWJmZTcuLjk1 ZDNjNTk4NjdkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi92ZmIuYworKysgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3ZmYi5jCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBpbnQgdmZi X3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLAogc3RhdGljIGludCB2 ZmJfbW1hcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKIAkJICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hKTsKIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgdmZiX29wcyA9IHsKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZmJfb3BzIHZmYl9vcHMgPSB7CiAJLmZiX3JlYWQgICAgICAgID0gZmJfc3lzX3Jl YWQsCiAJLmZiX3dyaXRlICAgICAgID0gZmJfc3lzX3dyaXRlLAogCS5mYl9jaGVja192YXIJPSB2 ZmJfY2hlY2tfdmFyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi92Z2ExNmZiLmMg Yi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3ZnYTE2ZmIuYwppbmRleCAyYzZhNTc2ZWQ4NGMuLmEyMGVl YjgzMDhmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi92Z2ExNmZiLmMKKysrIGIv ZHJpdmVycy92aWRlby9mYmRldi92Z2ExNmZiLmMKQEAgLTEyNzAsNyArMTI3MCw3IEBAIHN0YXRp YyB2b2lkIHZnYTE2ZmJfZGVzdHJveShzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlmcmFtZWJ1ZmZl cl9yZWxlYXNlKGluZm8pOwogfQogCi1zdGF0aWMgc3RydWN0IGZiX29wcyB2Z2ExNmZiX29wcyA9 IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHZnYTE2ZmJfb3BzID0gewogCS5vd25lcgkJ PSBUSElTX01PRFVMRSwKIAkuZmJfb3BlbiAgICAgICAgPSB2Z2ExNmZiX29wZW4sCiAJLmZiX3Jl bGVhc2UgICAgID0gdmdhMTZmYl9yZWxlYXNlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9m YmRldi92dDg1MDBsY2RmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi92dDg1MDBsY2RmYi5jCmlu ZGV4IGJlOGQ5NzAyY2JiMi4uZjc0NDQ3OWRjN2RmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L3Z0ODUwMGxjZGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi92dDg1MDBsY2Rm Yi5jCkBAIC0yMzgsNyArMjM4LDcgQEAgc3RhdGljIGludCB2dDg1MDBsY2RfYmxhbmsoaW50IGJs YW5rLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVj dCBmYl9vcHMgdnQ4NTAwbGNkX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHZ0 ODUwMGxjZF9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9zZXRfcGFyCT0g dnQ4NTAwbGNkX3NldF9wYXIsCiAJLmZiX3NldGNvbHJlZwk9IHZ0ODUwMGxjZF9zZXRjb2xyZWcs CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3Z0ODYyM2ZiLmMgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3Z0ODYyM2ZiLmMKaW5kZXggYzMzOWE4ZmJhZDgxLi43YjNlZWYxYjg5M2YgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdnQ4NjIzZmIuYworKysgYi9kcml2ZXJzL3Zp ZGVvL2ZiZGV2L3Z0ODYyM2ZiLmMKQEAgLTYzNCw3ICs2MzQsNyBAQCBzdGF0aWMgaW50IHZ0ODYy M2ZiX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLCBzdHJ1Y3QgZmJf aW5mbyAqaQogCiAvKiBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucyAqLwogCi1zdGF0aWMgc3RydWN0 IGZiX29wcyB2dDg2MjNmYl9vcHMgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGZiX29wcyB2dDg2 MjNmYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9vcGVuCT0gdnQ4NjIz ZmJfb3BlbiwKIAkuZmJfcmVsZWFzZQk9IHZ0ODYyM2ZiX3JlbGVhc2UsCmRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi93MTAwZmIu YwppbmRleCAzYmUwNzgwN2VkY2QuLmZlNjI4ZWMyMDE0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aWRlby9mYmRldi93MTAwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jCkBA IC01NDksNyArNTQ5LDcgQEAgc3RhdGljIGludCB3MTAwZmJfc2V0X3BhcihzdHJ1Y3QgZmJfaW5m byAqaW5mbykKIC8qCiAgKiAgRnJhbWUgYnVmZmVyIG9wZXJhdGlvbnMKICAqLwotc3RhdGljIHN0 cnVjdCBmYl9vcHMgdzEwMGZiX29wcyA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHcx MDBmYl9vcHMgPSB7CiAJLm93bmVyICAgICAgICA9IFRISVNfTU9EVUxFLAogCS5mYl9jaGVja192 YXIgPSB3MTAwZmJfY2hlY2tfdmFyLAogCS5mYl9zZXRfcGFyICAgPSB3MTAwZmJfc2V0X3BhciwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvd204NTA1ZmIuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvd204NTA1ZmIuYwppbmRleCAxN2M3ODAzMTVjYTUuLmI2NTZlZmY1OGMyMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi93bTg1MDVmYi5jCisrKyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvd204NTA1ZmIuYwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRpYyBpbnQgd204NTA1 ZmJfYmxhbmsoaW50IGJsYW5rLCBzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIHN0cnVjdCBmYl9vcHMgd204NTA1ZmJfb3BzID0geworc3RhdGljIGNvbnN0IHN0 cnVjdCBmYl9vcHMgd204NTA1ZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAku ZmJfc2V0X3Bhcgk9IHdtODUwNWZiX3NldF9wYXIsCiAJLmZiX3NldGNvbHJlZwk9IHdtODUwNWZi X3NldGNvbHJlZywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYveGVuLWZiZnJvbnQu YyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYveGVuLWZiZnJvbnQuYwppbmRleCBhM2Q2YjZkYjIyMWIu LjAwMzA3Yjg2OTNiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYmRldi94ZW4tZmJmcm9u dC5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYveGVuLWZiZnJvbnQuYwpAQCAtMzI4LDcgKzMy OCw3IEBAIHN0YXRpYyBpbnQgeGVuZmJfc2V0X3BhcihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBmYl9vcHMgeGVuZmJfZmJfb3BzID0geworc3Rh dGljIGNvbnN0IHN0cnVjdCBmYl9vcHMgeGVuZmJfZmJfb3BzID0gewogCS5vd25lcgkJPSBUSElT X01PRFVMRSwKIAkuZmJfcmVhZAk9IGZiX3N5c19yZWFkLAogCS5mYl93cml0ZQk9IHhlbmZiX3dy aXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi94aWxpbnhmYi5jIGIvZHJpdmVy cy92aWRlby9mYmRldi94aWxpbnhmYi5jCmluZGV4IDg2Mjg4MjliNDcwZC4uY2E0ZmY2NThjYWQw IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3hpbGlueGZiLmMKKysrIGIvZHJpdmVy cy92aWRlby9mYmRldi94aWxpbnhmYi5jCkBAIC0yNDcsNyArMjQ3LDcgQEAgeGlsaW54X2ZiX2Js YW5rKGludCBibGFua19tb2RlLCBzdHJ1Y3QgZmJfaW5mbyAqZmJpKQogCXJldHVybiAwOyAvKiBz dWNjZXNzICovCiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHhpbGlueGZiX29wcyA9IHsKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgZmJfb3BzIHhpbGlueGZiX29wcyA9IHsKIAkub3duZXIJCQk9IFRI SVNfTU9EVUxFLAogCS5mYl9zZXRjb2xyZWcJCT0geGlsaW54X2ZiX3NldGNvbHJlZywKIAkuZmJf YmxhbmsJCT0geGlsaW54X2ZiX2JsYW5rLAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=