<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>183882</bug_id>
          
          <creation_ts>2018-03-21 17:40:34 -0700</creation_ts>
          <short_desc>Adopt USE(OPENGL[_ES]) in more places</short_desc>
          <delta_ts>2018-03-22 11:37:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>bdakin</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mitz</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>noam</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1408241</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-03-21 17:40:34 -0700</bug_when>
    <thetext>Adopt USE(OPENGL[_ES]) in more places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408242</commentid>
    <comment_count>1</comment_count>
      <attachid>336247</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-03-21 17:41:02 -0700</bug_when>
    <thetext>Created attachment 336247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408243</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-03-21 17:41:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/37912195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408244</commentid>
    <comment_count>3</comment_count>
      <attachid>336248</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-03-21 17:55:29 -0700</bug_when>
    <thetext>Created attachment 336248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408245</commentid>
    <comment_count>4</comment_count>
      <attachid>336249</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-03-21 17:57:21 -0700</bug_when>
    <thetext>Created attachment 336249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408249</commentid>
    <comment_count>5</comment_count>
      <attachid>336251</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-03-21 18:13:12 -0700</bug_when>
    <thetext>Created attachment 336251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408295</commentid>
    <comment_count>6</comment_count>
      <attachid>336251</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-03-21 21:28:31 -0700</bug_when>
    <thetext>Comment on attachment 336251
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=336251&amp;action=review

&gt; Source/WebCore/ChangeLog:8
&gt; +        Adopt USE(OPENGL[_ES]) in more places
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=183882
&gt; +        &lt;rdar://problem/37912195&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +

This could use a terse why, even if that is just that being more specific makes things clearer.

&gt; Source/WebCore/platform/graphics/cocoa/WebGLLayer.mm:67
&gt; +#if USE(OPENGL)
&gt;  // On Mac, we need to flip the layer to take into account

This comment feels a bit wrong now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408303</commentid>
    <comment_count>7</comment_count>
      <attachid>336262</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-03-21 23:17:18 -0700</bug_when>
    <thetext>Created attachment 336262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408424</commentid>
    <comment_count>8</comment_count>
      <attachid>336262</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-22 11:37:22 -0700</bug_when>
    <thetext>Comment on attachment 336262
Patch

Clearing flags on attachment: 336262

Committed r229858: &lt;https://trac.webkit.org/changeset/229858&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408425</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-22 11:37:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336247</attachid>
            <date>2018-03-21 17:41:02 -0700</date>
            <delta_ts>2018-03-21 17:55:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183882-20180321174102.patch</filename>
            <type>text/plain</type>
            <size>26338</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ0ZmRmZjg1YWM0ZDJkZWM4M2VhNGM3
N2Q5MWMyNGZmOGE1MWZhZTMuLjI3YzRkM2ZhNGIzYmJhZWM3MzM4NjYzNDk4ZGVlYTgyZTMxMzEx
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDMtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVVNFKE9QRU5HTFtfRVNdKSBpbiBt
b3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzODgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzkxMjE5NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgor
CiAyMDE4LTAzLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEludHJvZHVjZSBIQVZFX01FRElBX1BMQVlFUiBhbmQgSEFWRV9DT1JFX1ZJREVPCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNDFhMzU5NjkyOTI1NzE5NzUyMmFkN2FjOGNlOTkyYmFmNTVkOWNjNS4uNDJh
Y2MyODg4OGViMzBjZTc2YTk0ZjMyZWIxMTBkMGNjMzBjZjUzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ0IEBACisyMDE4LTAzLTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0IFVTRShPUEVOR0xbX0VTXSkgaW4gbW9yZSBwbGFjZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzg4MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzc5MTIxOTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dDNEQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpoYXNNdXhhYmxlR1BVKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6dXBkYXRlSGlnaFBlcmZvcm1hbmNl
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3ND
b250ZXh0M0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250
ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tH
UFVTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdl
SU9TdXJmYWNlMkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tOgor
ICAgICAgICAoLVtXZWJHTExheWVyIGluaXRXaXRoR3JhcGhpY3NDb250ZXh0M0Q6XSk6CisgICAg
ICAgICgtW1dlYkdMTGF5ZXIgY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTpdKToKKyAg
ICAgICAgKC1bV2ViR0xMYXllciBkaXNwbGF5XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RPcGVuR0w6OmJsaXRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RPcGVuR0w6OmNyZWF0ZVZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6
OkV4dGVuc2lvbnMzRE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2Vi
Q29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjppc1ZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6YmluZFZlcnRleEFycmF5T0VTKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5l
Y2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVuZGVyYnVm
ZmVyU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW50
ZWdlcnYpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorCiAyMDE4LTAzLTIxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBEaXNwYXRjaCBET00gZXZlbnRz
IGZvciBDU1MgVHJhbnNpdGlvbnMgYW5kIENTUyBBbmltYXRpb25zIGltcGxlbWVudGVkIGFzIFdl
YiBBbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCAwOTUyN2Y1NTYwOGQwMmE4Mjk1YzE4OTFjZWMx
NTQyNWFjNjgwMDU4Li5kYTRiOTBhNmZjZjBjZjU4ODk1MzY3YWUzMTBjOTQyNDY1MmI5Y2U2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmgKQEAgLTExNTEsNiArMTE1MSw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQykKKyNkZWZpbmUgSEFWRV9BUFBMRV9HUkFQSElDU19DT05UUk9MIDEKICNkZWZpbmUgVVNF
X0NPUkVBVURJTyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggMmU3NDg3OWQ4ZDJjNjJiNjBiNDEy
Y2Q4YTIzMmM0MjM5MjM4YTY5ZC4uODk0NGM3NzAyYjE1OTk3YjcxYWE1YTM4ZTQ2MWE4MzkzNTdm
OWI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCkBAIC0xMTQ0LDE3ICsxMTQ0LDE3IEBAIHB1YmxpYzoKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIGJvb2wgdGV4SW1hZ2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBo
ZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmLCBHQzNE
dWludCBwbGFuZSk7Ci0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdM
X0VTKQogICAgIHZvaWQgcHJlc2VudFJlbmRlcmJ1ZmZlcigpOwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICB2b2lkIGFsbG9jYXRlSU9TdXJmYWNlQmFj
a2luZ1N0b3JlKEludFNpemUpOwogICAgIHZvaWQgdXBkYXRlRnJhbWVidWZmZXJUZXh0dXJlQmFj
a2luZ1N0b3JlRnJvbUxheWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDR0xDb250ZXh0KCk7CiAjZW5k
aWYKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogICAgIHZvaWQgc2V0Q29udGV4dFZpc2li
aWxpdHkoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCmluZGV4IGEwYzI2
ZTRkODEyZmVlYjJjOWJlMWY2ZTg2NjgwYjFlM2NiZGQzNDkuLmY3YzhjMDVhZWVjMzFiNzRkYTc1
YWZkNjU0MGRlNTZmYzk0YmY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQpA
QCAtNDcsNyArNDcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0Uo
T1BFTkdMX0VTKQogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgogI2ltcG9ydCA8T3BlbkdMRVMv
RUFHTERyYXdhYmxlLmg+CiAjaW1wb3J0IDxPcGVuR0xFUy9FQUdMSU9TdXJmYWNlLmg+CkBAIC02
NCw3ICs2NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHN0YXR1c0NoZWNrVGhyZXNob2xkID0gNTsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBIQVZF
KEFQUExFX0dSQVBISUNTX0NPTlRST0wpCiAKIGVudW0gewogICAgIGtBR0NPcGVuLApAQCAtMTMy
LDEzICsxMzIsMTcgQEAgc3RhdGljIGJvb2wgaGFzTXV4Q2FwYWJpbGl0eSgpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorI2VuZGlmCisKIHN0YXRpYyBib29sIGhhc011eGFibGVHUFUoKQogewor
I2lmIEhBVkUoQVBQTEVfR1JBUEhJQ1NfQ09OVFJPTCkKICAgICBzdGF0aWMgYm9vbCBjYW5NdXgg
PSBoYXNNdXhDYXBhYmlsaXR5KCk7CiAgICAgcmV0dXJuIGNhbk11eDsKLX0KLQorI2Vsc2UKKyAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKK30KIAogY29uc3QgdW5zaWduZWQgTWF4Q29udGV4dHMg
PSAxNjsKIApAQCAtMTY5LDcgKzE3Myw3IEBAIHByaXZhdGU6CiAKICAgICBUaW1lciBtX2Rpc2Fi
bGVIaWdoUGVyZm9ybWFuY2VHUFVUaW1lcjsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0Uo
T1BFTkdMKQogICAgIENHTFBpeGVsRm9ybWF0T2JqIG1fcGl4ZWxGb3JtYXRPYmogeyBudWxscHRy
IH07CiAjZW5kaWYKIH07CkBAIC0yNTMsNyArMjU3LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RE1hbmFnZXI6OnJlbW92ZUNvbnRleHRSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UoR3JhcGhpY3ND
b24KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnVwZGF0ZUhpZ2hQZXJmb3JtYW5j
ZVN0YXRlKCkKIHsKLSNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFoYXNNdXhhYmxlR1BVKCkp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMjg0LDcgKzI4Nyw2IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0RNYW5hZ2VyOjp1cGRhdGVIaWdoUGVyZm9ybWFuY2VTdGF0ZSgpCiAgICAgICAgICAgICBt
X2Rpc2FibGVIaWdoUGVyZm9ybWFuY2VHUFVUaW1lci5zdGFydE9uZVNob3QodGltZVRvS2VlcEhp
Z2hQZXJmb3JtYW5jZUdQVUFsaXZlKTsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZgogfQogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6ZGlzYWJsZUhpZ2hQZXJmb3JtYW5jZUdQVVRp
bWVyRmlyZWQoKQpAQCAtMzE1LDcgKzMxNyw3IEBAIHB1YmxpYzoKICAgICB+R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlKCkgeyB9CiB9OwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVO
R0wpCiAKIHN0YXRpYyB2b2lkIHNldFBpeGVsRm9ybWF0KFZlY3RvcjxDR0xQaXhlbEZvcm1hdEF0
dHJpYnV0ZT4mIGF0dHJpYnMsIGludCBjb2xvckJpdHMsIGludCBkZXB0aEJpdHMsIGJvb2wgYWNj
ZWxlcmF0ZWQsIGJvb2wgc3VwZXJzYW1wbGUsIGJvb2wgY2xvc2VzdCwgYm9vbCBhbnRpYWxpYXMs
IGJvb2wgdXNlR0xFUzMpCiB7CkBAIC0zNjMsNyArMzY1LDggQEAgc3RhdGljIHZvaWQgc2V0UGl4
ZWxGb3JtYXQoVmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPiYgYXR0cmlicywgaW50IGNv
bG9yQmkKICAgICAgICAgCiAgICAgYXR0cmlicy5hcHBlbmQoc3RhdGljX2Nhc3Q8Q0dMUGl4ZWxG
b3JtYXRBdHRyaWJ1dGU+KDApKTsKIH0KLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQorCisjZW5k
aWYgLy8gVVNFKE9QRU5HTCkKIAogUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdp
bmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0
eWxlKQogewpAQCAtNDAyLDcgKzQwNSw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0Nv
bnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAjZW5k
aWYKICAgICAsIG1fcHJpdmF0ZShzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZT4odGhpcykpCiB7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAg
ICAgRUFHTFJlbmRlcmluZ0FQSSBhcGkgPSBtX2F0dHJzLnVzZUdMRVMzID8ga0VBR0xSZW5kZXJp
bmdBUElPcGVuR0xFUzMgOiBrRUFHTFJlbmRlcmluZ0FQSU9wZW5HTEVTMjsKICAgICBpZiAoIXNo
YXJlZENvbnRleHQpCiAgICAgICAgIG1fY29udGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxsb2Nd
IGluaXRXaXRoQVBJOmFwaV07CkBAIC00NTYsMTIgKzQ1OSw3IEBAIEdyYXBoaWNzQ29udGV4dDNE
OjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhv
c3RXaW5kCiAKICAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVDb250ZXh0KHBpeGVsRm9ybWF0
T2JqLCBzaGFyZWRDb250ZXh0ID8gc2hhcmVkQ29udGV4dC0+bV9jb250ZXh0T2JqIDogbnVsbHB0
ciwgJm1fY29udGV4dE9iaik7CiAgICAgR0xpbnQgYWJvcnRPbkJsYWNrbGlzdCA9IDA7Ci0jaWYg
UExBVEZPUk0oTUFDKQogICAgIENHTFNldFBhcmFtZXRlcihtX2NvbnRleHRPYmosIGtDR0xDUEFi
b3J0T25HUFVSZXN0YXJ0U3RhdHVzQmxhY2tsaXN0ZWQsICZhYm9ydE9uQmxhY2tsaXN0KTsKLSNl
bGlmIFBMQVRGT1JNKElPUykKLSAgICBDR0xTZXRQYXJhbWV0ZXIobV9jb250ZXh0T2JqLCBrRUFH
TENQQWJvcnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCwgJmFib3J0T25CbGFja2xpc3Qp
OwotI2VuZGlmCi0KICAgICBDR0xEZXN0cm95UGl4ZWxGb3JtYXQocGl4ZWxGb3JtYXRPYmopOwog
ICAgIAogICAgIGlmIChlcnIgIT0ga0NHTE5vRXJyb3IgfHwgIW1fY29udGV4dE9iaikgewpAQCAt
NDc1LDcgKzQ3Myw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgLy8gU2V0IHRoZSBj
dXJyZW50IGNvbnRleHQgdG8gdGhlIG9uZSBnaXZlbiB0byB1cy4KICAgICBDR0xTZXRDdXJyZW50
Q29udGV4dChtX2NvbnRleHRPYmopOwogCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKKyNlbmRp
ZiAvLyAhVVNFKE9QRU5HTF9FUykKICAgICAKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKIApA
QCAtNDg3LDEzICs0ODUsMTMgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNE
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICNlbmRpZgogICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNF
KE9QRU5HTCkKICAgICBpZiAodXNlTXVsdGlzYW1wbGluZykKICAgICAgICAgOjpnbEVuYWJsZShH
TF9NVUxUSVNBTVBMRSk7CiAjZW5kaWYKIAogICAgIC8vIENyZWF0ZSB0aGUgdGV4dHVyZSB0aGF0
IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGZyYW1lYnVmZmVyLgotI2lmIFBMQVRGT1JNKElPUykKKyNp
ZiBVU0UoT1BFTkdMX0VTKQogICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3RleHR1cmUp
OwogI2Vsc2UKICAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CkBAIC01NDcsNyAr
NTQ1LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29u
dGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKIAogICAgIG1fY29tcGlsZXIuc2V0UmVz
b3VyY2VzKEFOR0xFUmVzb3VyY2VzKTsKICAgICAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFVT
RShPUEVOR0wpCiAgICAgOjpnbEVuYWJsZShHTF9WRVJURVhfUFJPR1JBTV9QT0lOVF9TSVpFKTsK
ICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgOjpnbEVuYWJsZShHTF9QT0lO
VF9TUFJJVEUpOwpAQCAtNTYzLDcgKzU2MSw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhp
Y3NDb250ZXh0M0QoKQogICAgIG1hbmFnZXIoKS5yZW1vdmVDb250ZXh0KHRoaXMpOwogCiAgICAg
aWYgKG1fY29udGV4dE9iaikgewotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VT
KQogICAgICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICAgICAgW21fY29udGV4dE9iaiBy
ZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBmcm9tRHJhd2FibGU6bmlsXTsKICAg
ICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fdGV4dHVyZSk7CkBAIC01ODEsNyAr
NTc5LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgICAg
ICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fZGVwdGhTdGVuY2lsQnVm
ZmVyKTsKICAgICAgICAgfQogICAgICAgICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzRVhUKDEsICZt
X2Zibyk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIFtF
QUdMQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDowXTsKICAgICAgICAgW3N0YXRpY19jYXN0PEVB
R0xDb250ZXh0Kj4obV9jb250ZXh0T2JqKSByZWxlYXNlXTsKICNlbHNlCkBAIC01OTQsNyArNTky
LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgTE9HKFdl
YkdMLCAiRGVzdHJveWVkIGEgR3JhcGhpY3NDb250ZXh0M0QgKCVwKS4iLCB0aGlzKTsKIH0KIAot
I2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQogdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6c2V0UmVuZGVyYnVmZmVyU3RvcmFnZUZyb21EcmF3YWJsZShHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQpCiB7CiAgICAgLy8gV2UgbmVlZCB0byBtYWtlIGEgY2FsbCB0byBz
ZXRCb3VuZHMgYmVsb3cgdG8gdXBkYXRlIHRoZSBiYWNraW5nIHN0b3JlIHNpemUgYnV0IHdlIGFs
c28KQEAgLTYxNSw3ICs2MTMsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4
dEN1cnJlbnQoKQogICAgIGlmICghbV9jb250ZXh0T2JqKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTF9FUykKICAgICBpZiAoW0VBR0xD
b250ZXh0IGN1cnJlbnRDb250ZXh0XSAhPSBtX2NvbnRleHRPYmopCiAgICAgICAgIHJldHVybiBb
RUFHTENvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6c3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPiht
X2NvbnRleHRPYmopXTsKICNlbHNlCkBAIC02MzIsNyArNjMwLDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogICAgICAgICBMT0coV2ViR0wsICJQcmV0ZW5kaW5n
IHRoZSBHUFUgaGFzIHJlc2V0ICglcCkuIExvc2UgdGhlIGNvbnRleHQuIiwgdGhpcyk7CiAgICAg
ICAgIG1fZmFpbE5leHRTdGF0dXNDaGVjayA9IGZhbHNlOwogICAgICAgICBmb3JjZUNvbnRleHRM
b3N0KCk7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAgICAgICAgIENHTFNl
dEN1cnJlbnRDb250ZXh0KDApOwogI2Vsc2UKICAgICAgICAgW0VBR0xDb250ZXh0IHNldEN1cnJl
bnRDb250ZXh0OjBdOwpAQCAtNjQ3LDcgKzY0NSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmNoZWNrR1BVU3RhdHVzKCkKICAgICBtX3N0YXR1c0NoZWNrQ291bnQgPSAobV9zdGF0dXNDaGVj
a0NvdW50ICsgMSkgJSBzdGF0dXNDaGVja1RocmVzaG9sZDsKIAogICAgIEdMaW50IHJlc3RhcnRT
dGF0dXMgPSAwOwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogICAgIENHTEdl
dFBhcmFtZXRlcihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIGtDR0xDUEdQVVJlc3RhcnRT
dGF0dXMsICZyZXN0YXJ0U3RhdHVzKTsKICAgICBpZiAocmVzdGFydFN0YXR1cyA9PSBrQ0dMQ1BH
UFVSZXN0YXJ0U3RhdHVzQmxhY2tsaXN0ZWQpIHsKICAgICAgICAgTE9HKFdlYkdMLCAiVGhlIEdQ
VSBoYXMgYmxhY2tsaXN0ZWQgdXMgKCVwKS4gVGVybWluYXRpbmcuIiwgdGhpcyk7CkBAIC02Njks
NyArNjY3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogI2Vu
ZGlmCiB9CiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTF9FUykKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnByZXNlbnRSZW5kZXJidWZmZXIoKQogewogICAgIG1ha2VDb250ZXh0
Q3VycmVudCgpOwpAQCAtNjg1LDkgKzY4Myw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnBy
ZXNlbnRSZW5kZXJidWZmZXIoKQogCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlP
U3VyZmFjZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0Rz
aXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0
eXBlLCBJT1N1cmZhY2VSZWYgc3VyZmFjZSwgR0MzRHVpbnQgcGxhbmUpCiB7Ci0jaWYgUExBVEZP
Uk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAgICAgcmV0dXJuIGtDR0xOb0Vycm9yID09IENHTFRl
eEltYWdlSU9TdXJmYWNlMkQocGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCB0YXJnZXQsIGlu
dGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN1cmZhY2UsIHBsYW5l
KTsKLSNlbGlmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisjZWxp
ZiBVU0UoT1BFTkdMX0VTKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKICAgICByZXR1cm4g
W3BsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSB0ZXhJbWFnZUlPU3VyZmFjZTpzdXJmYWNlIHRh
cmdldDp0YXJnZXQgaW50ZXJuYWxGb3JtYXQ6aW50ZXJuYWxGb3JtYXQgd2lkdGg6d2lkdGggaGVp
Z2h0OmhlaWdodCBmb3JtYXQ6Zm9ybWF0IHR5cGU6dHlwZSBwbGFuZTpwbGFuZV07CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTSh0YXJnZXQpOwpAQCAtNzAyLDcgKzcwMCw3IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OnRleEltYWdlSU9TdXJmYWNlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbEZvCiAjZW5kaWYKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BF
TkdMKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3Rv
cmUoSW50U2l6ZSBzaXplKQogewogICAgIExPRyhXZWJHTCwgIkdyYXBoaWNzQ29udGV4dDNEOjph
bGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZSBhdCAlZCB4ICVkLiAoJXApIiwgc2l6ZS53aWR0
aCgpLCBzaXplLmhlaWdodCgpLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAppbmRleCA1YjRiNTE4NDAxZWU5OWNjZWE3
Y2IxNmU4YzA5MmRiY2NkMGZjYzdhLi4xMjMxZGZlODY1MThkNGEyZDc4OTQwMDg3NTcyMDYxNmY0
Mzc2ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJHTExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBj
bGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0Uo
T1BFTkdMKQogQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgogI2Vsc2UKIEBpbnRlcmZh
Y2UgV2ViR0xMYXllciA6IENBRUFHTExheWVyCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDNEOwogewogICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiBfY29udGV4
dDsKICAgICBmbG9hdCBfZGV2aWNlUGl4ZWxSYXRpbzsKLSNpZiBQTEFURk9STShNQUMpCisjaWYg
VVNFKE9QRU5HTCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBfY29u
dGVudHNCdWZmZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gX2Ry
YXdpbmdCdWZmZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gX3Nw
YXJlQnVmZmVyOwpAQCAtNTcsNyArNTcsNyBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIAog
LSAoQ0dJbWFnZVJlZiljb3B5SW1hZ2VTbmFwc2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3Bh
Y2VSZWYpY29sb3JTcGFjZTsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQog
LSAodm9pZClhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOihXZWJDb3JlOjpJ
bnRTaXplKXNpemUgdXNpbmdBbHBoYTooQk9PTCl1c2luZ0FscGhhOwogLSAodm9pZCliaW5kRnJh
bWVidWZmZXJUb05leHRBdmFpbGFibGVTdXJmYWNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQppbmRleCBhMzA0
ZDlmZTQ0MGE3ZDZlNzMyNDk2YzFmZmI2MGU2MGQxZGM0ZmY0Li44OTE3NjhjYTIxZmM5MjYxN2Zl
ZjM5ZjNlY2NkMTEyOTg4OGU4YThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KQEAgLTM3LDcgKzM3LDcgQEAKICNpbXBv
cnQgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQ
TEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKICNpbXBvcnQgPE9wZW5HTC9PcGVuR0wuaD4K
ICNpbXBvcnQgPE9wZW5HTC9nbC5oPgogI2VuZGlmCkBAIC01Myw3ICs1Myw3IEBAIC0oaWQpaW5p
dFdpdGhHcmFwaGljc0NvbnRleHQzRDooR3JhcGhpY3NDb250ZXh0M0QqKWNvbnRleHQKICAgICBf
Y29udGV4dCA9IGNvbnRleHQ7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBfZGV2aWNl
UGl4ZWxSYXRpbyA9IGNvbnRleHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuZGV2aWNlUGl4ZWxS
YXRpbzsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICBzZWxmLmNvbnRl
bnRzT3BhcXVlID0gIWNvbnRleHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7CiAgICAg
c2VsZi50cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CiAgICAgc2VsZi5jb250ZW50
c1NjYWxlID0gX2RldmljZVBpeGVsUmF0aW87CkBAIC02Myw3ICs2Myw3IEBAIC0oaWQpaW5pdFdp
dGhHcmFwaGljc0NvbnRleHQzRDooR3JhcGhpY3NDb250ZXh0M0QqKWNvbnRleHQKICAgICByZXR1
cm4gc2VsZjsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogLy8gT24g
TWFjLCB3ZSBuZWVkIHRvIGZsaXAgdGhlIGxheWVyIHRvIHRha2UgaW50byBhY2NvdW50CiAvLyB0
aGF0IHRoZSBJT1N1cmZhY2UgcHJvdmlkZXMgY29udGVudCBpbiBZLXVwLiBUaGlzCiAvLyBtZWFu
cyB0aGF0IGFueSBpbmNvbWluZyB0cmFuc2Zvcm0gKHVubGlrZWx5LCBzaW5jZSB0aGlzCkBAIC05
MiwxMCArOTIsNyBAQCAtKENHSW1hZ2VSZWYpY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFj
ZTooQ0dDb2xvclNwYWNlUmVmKWNvbG9yU3BhY2UKICAgICBpZiAoIV9jb250ZXh0KQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBVTlVTRURfUEFSQU0o
Y29sb3JTcGFjZSk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci0jZWxzZQorI2lmIFVTRShPUEVOR0wp
CiAgICAgQ0dMU2V0Q3VycmVudENvbnRleHQoX2NvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0M0QoKSk7CiAKICAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBpbWFnZUNvbG9yU3Bh
Y2UgPSBjb2xvclNwYWNlOwpAQCAtMTIxLDYgKzExOCw5IEBAIC0oQ0dJbWFnZVJlZiljb3B5SW1h
Z2VTbmFwc2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYpY29sb3JTcGFjZQogICAg
ICAgICBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVy
MzJIb3N0LCBwcm92aWRlciwgMCwgdHJ1ZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCk7CiAg
ICAgQ0dEYXRhUHJvdmlkZXJSZWxlYXNlKHByb3ZpZGVyKTsKICAgICByZXR1cm4gaW1hZ2U7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShjb2xvclNwYWNlKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
ICNlbmRpZgogfQogCkBAIC0xMjksNyArMTI5LDcgQEAgLSAodm9pZClkaXNwbGF5CiAgICAgaWYg
KCFfY29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVT
RShPUEVOR0wpCiAgICAgX2NvbnRleHQtPnByZXBhcmVUZXh0dXJlKCk7CiAgICAgaWYgKF9kcmF3
aW5nQnVmZmVyKSB7CiAgICAgICAgIHN0ZDo6c3dhcChfY29udGVudHNCdWZmZXIsIF9kcmF3aW5n
QnVmZmVyKTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCAtICh2b2lkKWRpc3BsYXkKICAgICAgICAgbGF5
ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllcik7CiB9CiAK
LSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKIC0gKHZvaWQpYWxsb2NhdGVJT1N1
cmZhY2VCYWNraW5nU3RvcmVXaXRoU2l6ZTooSW50U2l6ZSlzaXplIHVzaW5nQWxwaGE6KEJPT0wp
dXNpbmdBbHBoYQogewogICAgIF9idWZmZXJTaXplID0gc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9HcmFwaGljc0NvbnRleHQzRElPUy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9T
LmgKaW5kZXggMDE4Y2YxOTUzZGU1MWYzYzc3MWVjMGQyMDJhNjhkYzdiOTBlZDQxNC4uZjhlZTEw
MzE4NmM4MDlkMjZhMTEwZDJlZjhjMDgwNjcwMzM2YzNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9T
LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBQTEFURk9STShJT1Mp
CisjaWYgVVNFKE9QRU5HTF9FUykKIAogI2RlZmluZSBnbEJpbmRGcmFtZWJ1ZmZlckVYVCBnbEJp
bmRGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEJpbmRSZW5kZXJidWZmZXJFWFQgZ2xCaW5kUmVuZGVy
YnVmZmVyCkBAIC03MSw0ICs3MSw0IEBACiAjZGVmaW5lIEdMX1NURU5DSUxfQVRUQUNITUVOVF9F
WFQgR0xfU1RFTkNJTF9BVFRBQ0hNRU5UCiAjZGVmaW5lIEdMX1VOU0lHTkVEX0lOVF84XzhfOF84
X1JFViBHTF9VTlNJR05FRF9CWVRFCiAKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCisjZW5kaWYg
Ly8gVVNFKE9QRU5HTF9FUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKaW5kZXggZTA1ZGVj
MWNkYjkwZDJjMjA4MDE4ZTRiYmRlYzQ2M2QyYTAyMDlmNy4uM2UwMTI2MjE1NDlmMTBmZmIyMzYz
NmEwZmYzYTk3ZDQ3NGYzZThlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKQEAgLTMx
LDEyICszMSwxMiBAQAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKIAotI2lmIFBM
QVRGT1JNKElPUykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKKyNpbmNsdWRl
ICJPcGVuR0xTaGltcy5oIgorI2VsaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xF
Uy9FUzIvZ2xleHQuaD4KLSNlbGlmIFBMQVRGT1JNKE1BQykKKyNlbGlmIFVTRShPUEVOR0wpCiAj
aW5jbHVkZSA8T3BlbkdML2dsLmg+Ci0jZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJ
TikKLSNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Mp
CkBAIC01NSw3ICs1NSw3IEBAIEV4dGVuc2lvbnMzRE9wZW5HTDo6fkV4dGVuc2lvbnMzRE9wZW5H
TCgpID0gZGVmYXVsdDsKIAogdm9pZCBFeHRlbnNpb25zM0RPcGVuR0w6OmJsaXRGcmFtZWJ1ZmZl
cihsb25nIHNyY1gwLCBsb25nIHNyY1kwLCBsb25nIHNyY1gxLCBsb25nIHNyY1kxLCBsb25nIGRz
dFgwLCBsb25nIGRzdFkwLCBsb25nIGRzdFgxLCBsb25nIGRzdFkxLCB1bnNpZ25lZCBsb25nIG1h
c2ssIHVuc2lnbmVkIGxvbmcgZmlsdGVyKQogewotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICBVTlVTRURfUEFSQU0oc3JjWDApOwog
ICAgIFVOVVNFRF9QQVJBTShzcmNZMCk7CiAgICAgVU5VU0VEX1BBUkFNKHNyY1gxKTsKQEAgLTgx
LDcgKzgxLDcgQEAgUGxhdGZvcm0zRE9iamVjdCBFeHRlbnNpb25zM0RPcGVuR0w6OmNyZWF0ZVZl
cnRleEFycmF5T0VTKCkKIHsKICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwog
ICAgIEdMdWludCBhcnJheSA9IDA7Ci0jaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lO
KSB8fCBQTEFURk9STShJT1MpKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgaWYgKGlzVmVydGV4
QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAgZ2xHZW5WZXJ0ZXhBcnJheXMoMSwgJmFy
cmF5KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xf
QVBQTEVfdmVydGV4X2FycmF5X29iamVjdApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEV4dGVuc2lv
bnMzRE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsK
LSNpZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKElPUykpCisj
aWYgVVNFKE9QRU5HTF9FUykKICAgICBpZiAoaXNWZXJ0ZXhBcnJheU9iamVjdFN1cHBvcnRlZCgp
KQogICAgICAgICBnbERlbGV0ZVZlcnRleEFycmF5cygxLCAmYXJyYXkpOwogI2VsaWYgZGVmaW5l
ZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlf
b2JqZWN0CkBAIC0xMTAsNyArMTEwLDcgQEAgR0MzRGJvb2xlYW4gRXh0ZW5zaW9uczNET3BlbkdM
Ojppc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QgYXJyYXkpCiAgICAgICAgIHJldHVy
biBHTF9GQUxTRTsKIAogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0jaWYg
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShJT1MpKQorI2lmIFVT
RShPUEVOR0xfRVMpCiAgICAgaWYgKGlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAg
ICAgICAgcmV0dXJuIGdsSXNWZXJ0ZXhBcnJheShhcnJheSk7CiAjZWxpZiBkZWZpbmVkKEdMX0FQ
UExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYmIEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QK
QEAgLTEyMiw3ICsxMjIsNyBAQCBHQzNEYm9vbGVhbiBFeHRlbnNpb25zM0RPcGVuR0w6OmlzVmVy
dGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKIHZvaWQgRXh0ZW5zaW9uczNET3Bl
bkdMOjpiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKIHsKICAgICBt
X2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotI2lmIChQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdJTikgfHwgUExBVEZPUk0oSU9TKSkKKyNpZiBVU0UoT1BFTkdMX0VTKQogICAgIGlm
IChpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCkpCiAgICAgICAgIGdsQmluZFZlcnRleEFy
cmF5KGFycmF5KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdCkg
JiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdApAQCAtMjk4LDcgKzI5OCw3IEBAIFN0cmlu
ZyBFeHRlbnNpb25zM0RPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQogICAgIHJldHVybiBTdHJpbmco
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05T
KSkpOwogfQogCi0jaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9S
TShJT1MpKQorI2lmIFVTRShPUEVOR0xfRVMpCiBib29sIEV4dGVuc2lvbnMzRE9wZW5HTDo6aXNW
ZXJ0ZXhBcnJheU9iamVjdFN1cHBvcnRlZCgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgc3Vw
cG9ydHNWZXJ0ZXhBcnJheU9iamVjdCA9IHN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29i
amVjdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCmluZGV4IGNiOTM3NDNkZDk4ZjgyMjczMTIw
NDAyNDBkZGYwNmY2NTYwZDdiZjEuLjdkZGI4MGJkNTI0NzRjZDI0YzA5NjAyMjcwOWYzY2I5ZjE1
ZDJkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJvdGVj
dGVkOgogICAgIFN0cmluZyBnZXRFeHRlbnNpb25zKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0j
aWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShJT1MpKQorI2lm
IFVTRShPUEVOR0xfRVMpCiAgICAgYm9vbCBpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCk7
CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAppbmRleCA0
Y2U2MWQyNTE2NzE0YWQ5N2EwM2ZhN2NhOWZhOTFmYTA1ZDkwZTM1Li5hNmZmZmQwMTI4MGZlNmNm
ZTcxNTAyYjgyODhjZWE5ZThmNTg2YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTC5jcHAKQEAgLTQ3LDE4ICs0NywxOCBAQAogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxl
cmF0ZS5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXSU4pCisjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKKyNlbGlmIFVTRShPUEVO
R0xfRVMpCiAjaW1wb3J0IDxPcGVuR0xFUy9FUzIvZ2xleHQuaD4KIC8vIEZyb20gPE9wZW5HTEVT
L2dsZXh0Lmg+CiAjZGVmaW5lIEdMX1JHQkEzMkZfQVJCICAgICAgICAgICAgICAgICAgICAgIDB4
ODgxNAogI2RlZmluZSBHTF9SR0IzMkZfQVJCICAgICAgICAgICAgICAgICAgICAgICAweDg4MTUK
LSNlbGlmIFBMQVRGT1JNKE1BQykKKyNlbGlmIFVTRShPUEVOR0wpCiAjZGVmaW5lIEdMX0RPX05P
VF9XQVJOX0lGX01VTFRJX0dMX1ZFUlNJT05fSEVBREVSU19JTkNMVURFRAogI2luY2x1ZGUgPE9w
ZW5HTC9nbC5oPgogI2luY2x1ZGUgPE9wZW5HTC9nbDMuaD4KICN1bmRlZiBHTF9ET19OT1RfV0FS
Tl9JRl9NVUxUSV9HTF9WRVJTSU9OX0hFQURFUlNfSU5DTFVERUQKLSNlbGlmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV0lOKQotI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTQxLDcgKzE0MSw3IEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIGlmIChleHRl
bnNpb25zLnN1cHBvcnRzKCJHTF9FWFRfcGFja2VkX2RlcHRoX3N0ZW5jaWwiKSkKICAgICAgICAg
ICAgIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEgyNF9TVEVOQ0lMOF9FWFQ7
CiAgICAgICAgIGVsc2UKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IFVTRShPUEVOR0xfRVMpCiAgICAgICAgICAgICBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9
IEdMX0RFUFRIX0NPTVBPTkVOVDE2OwogI2Vsc2UKICAgICAgICAgICAgIGludGVybmFsRGVwdGhT
dGVuY2lsRm9ybWF0ID0gR0xfREVQVEhfQ09NUE9ORU5UOwpAQCAtMTU3LDcgKzE1Nyw3IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAg
ICAgICAgIEdMaW50IHNhbXBsZUNvdW50ID0gc3RkOjptaW4oNCwgbWF4U2FtcGxlQ291bnQpOwog
ICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0
aXNhbXBsZUZCTyk7CiAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJV
RkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0jaWYgUExBVEZPUk0oSU9TKQor
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQogICAgICAgICA6OmdsUmVuZGVy
YnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIHNhbXBsZUNv
dW50LCBHTF9SR0JBOF9PRVMsIHdpZHRoLCBoZWlnaHQpOwogI2Vsc2UKICAgICAgICAgOjpnbFJl
bmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBzYW1w
bGVDb3VudCwgbV9pbnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKQEAgLTE4MSwx
NCArMTgxLDE2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IElu
dFNpemUmIHNpemUpCiAgICAgLy8gcmVzaXplIHJlZ3VsYXIgRkJPCiAgICAgOjpnbEJpbmRGcmFt
ZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fZmJvKTsKICAgICBBU1NFUlQobV90ZXh0
dXJlKTsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgVVNFKE9Q
RU5HTF9FUykKICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fdGV4
dHVyZSk7CiAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBH
TF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfUkVOREVSQlVGRkVSLCBtX3RleHR1cmUpOwogICAgIHNl
dFJlbmRlcmJ1ZmZlclN0b3JhZ2VGcm9tRHJhd2FibGUobV9jdXJyZW50V2lkdGgsIG1fY3VycmVu
dEhlaWdodCk7Ci0jZWxpZiBQTEFURk9STShNQUMpCisjZWxzZQogICAgIGFsbG9jYXRlSU9TdXJm
YWNlQmFja2luZ1N0b3JlKEludFNpemUod2lkdGgsIGhlaWdodCkpOwogICAgIHVwZGF0ZUZyYW1l
YnVmZmVyVGV4dHVyZUJhY2tpbmdTdG9yZUZyb21MYXllcigpOwogICAgIDo6Z2xGcmFtZWJ1ZmZl
clRleHR1cmUyREVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VY
VCwgR0xfVEVYVFVSRV9SRUNUQU5HTEVfQVJCLCBtX3RleHR1cmUsIDApOworI2VuZGlmIC8vICFV
U0UoT1BFTkdMX0VTKSkKICNlbHNlCiAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQs
IG1fdGV4dHVyZSk7CiAgICAgOjpnbFRleEltYWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgbV9pbnRl
cm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdO
RURfQllURSwgMCk7CkBAIC0yNDYsMTQgKzI0OCwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpyZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KGNvbnN0IEludFJlY3QmIHJlY3QpCiAg
ICAgVGVtcG9yYXJ5T3BlbkdMU2V0dGluZyBzY29wZWREZXB0aChHTF9ERVBUSF9URVNULCBHTF9G
QUxTRSk7CiAgICAgVGVtcG9yYXJ5T3BlbkdMU2V0dGluZyBzY29wZWRTdGVuY2lsKEdMX1NURU5D
SUxfVEVTVCwgR0xfRkFMU0UpOwogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBVU0UoT1BFTkdMX0VTKQogICAgIEdMaW50IGJvdW5kRnJhbWVCdWZmZXI7CiAgICAg
OjpnbEdldEludGVnZXJ2KEdMX0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZEZyYW1lQnVmZmVy
KTsKICNlbmRpZgogCiAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9SRUFEX0ZSQU1FQlVG
RkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChH
TF9EUkFXX0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8pOwotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICBVTlVTRURfUEFSQU0ocmVjdCk7
CiAgICAgOjpnbEZsdXNoKCk7CiAgICAgOjpnbFJlc29sdmVNdWx0aXNhbXBsZUZyYW1lYnVmZmVy
QVBQTEUoKTsKQEAgLTI3Miw3ICsyNzQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNv
bHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KGNvbnN0IEludFJlY3QmIHJlY3QpCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpyZW5kZXJidWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkK
IHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFVT
RShPUEVOR0wpCiAgICAgc3dpdGNoIChpbnRlcm5hbGZvcm1hdCkgewogICAgIGNhc2UgREVQVEhf
U1RFTkNJTDoKICAgICAgICAgaW50ZXJuYWxmb3JtYXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X0VY
VDsKQEAgLTMwMCw3ICszMDIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlZ2Vy
dihHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpCiAgICAgLy8gVGhlcmVmb3JlLCB0aGUg
dmFsdWUgcmV0dXJuZWQgYnkgZGVza3RvcCBHTCBuZWVkcyB0byBiZSBkaXZpZGVkIGJ5IDQuCiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgc3dpdGNoIChwbmFtZSkgewotI2lmICFQTEFU
Rk9STShJT1MpCisjaWYgVVNFKE9QRU5HTCkKICAgICBjYXNlIE1BWF9GUkFHTUVOVF9VTklGT1JN
X1ZFQ1RPUlM6CiAgICAgICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9NQVhfRlJBR01FTlRfVU5JRk9S
TV9DT01QT05FTlRTLCB2YWx1ZSk7CiAgICAgICAgICp2YWx1ZSAvPSA0OwpAQCAtMzkyLDcgKzM5
NCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlCiAKICAgICBHQzNEZW51bSBvcGVuR0xGb3Jt
YXQgPSBmb3JtYXQ7CiAgICAgR0MzRGVudW0gb3BlbkdMSW50ZXJuYWxGb3JtYXQgPSBpbnRlcm5h
bGZvcm1hdDsKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0wpCiAgICAgaWYgKHR5
cGUgPT0gR0xfRkxPQVQpIHsKICAgICAgICAgaWYgKGZvcm1hdCA9PSBHTF9SR0JBKQogICAgICAg
ICAgICAgb3BlbkdMSW50ZXJuYWxGb3JtYXQgPSBHTF9SR0JBMzJGX0FSQjsKQEAgLTQ1Miw3ICs0
NTQsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
ZGVwdGhSYW5nZShHQzNEY2xhbXBmIHpOZWFyLCBHQzNEY2xhbXBmIHpGYXIpCiB7CiAgICAgbWFr
ZUNvbnRleHRDdXJyZW50KCk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBVU0UoT1BFTkdMX0VTKQogICAgIDo6Z2xEZXB0aFJhbmdlZihzdGF0aWNfY2FzdDxmbG9h
dD4oek5lYXIpLCBzdGF0aWNfY2FzdDxmbG9hdD4oekZhcikpOwogI2Vsc2UKICAgICA6OmdsRGVw
dGhSYW5nZSh6TmVhciwgekZhcik7CkBAIC00NjIsNyArNDY0LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6ZGVwdGhSYW5nZShHQzNEY2xhbXBmIHpOZWFyLCBHQzNEY2xhbXBmIHpGYXIpCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKEdDM0RjbGFtcGYgZGVwdGgpCiB7CiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQogICAgIDo6Z2xDbGVhckRlcHRoZihzdGF0aWNfY2Fz
dDxmbG9hdD4oZGVwdGgpKTsKICNlbHNlCiAgICAgOjpnbENsZWFyRGVwdGgoZGVwdGgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggNTQ3Mjc0
ZmZhNjhhNTJlNDVlMGQ3MmQyOGIyYTEzOWM2ZjViMGIxZC4uNWJkZDY2MzA3NTlhZWMzNzJjYzQ2
MzViN2M0NDE3MTk1NmI5MjE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RP
cGVuR0xDb21tb24uY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVy
KQogCiAgICAgcGFpbnRUb0NhbnZhcyhwaXhlbHMuZ2V0KCksIEludFNpemUobV9jdXJyZW50V2lk
dGgsIG1fY3VycmVudEhlaWdodCksIGltYWdlQnVmZmVyLT5pbnRlcm5hbFNpemUoKSwgaW1hZ2VC
dWZmZXItPmNvbnRleHQoKSk7CiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIFVTRShPUEVOR0xfRVMpCiAgICAgcHJlc2VudFJlbmRlcmJ1ZmZlcigpOwogI2VuZGlm
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336248</attachid>
            <date>2018-03-21 17:55:29 -0700</date>
            <delta_ts>2018-03-21 17:57:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183882-20180321175528.patch</filename>
            <type>text/plain</type>
            <size>26662</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ0ZmRmZjg1YWM0ZDJkZWM4M2VhNGM3
N2Q5MWMyNGZmOGE1MWZhZTMuLjI3YzRkM2ZhNGIzYmJhZWM3MzM4NjYzNDk4ZGVlYTgyZTMxMzEx
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDMtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVVNFKE9QRU5HTFtfRVNdKSBpbiBt
b3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzODgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzkxMjE5NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgor
CiAyMDE4LTAzLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEludHJvZHVjZSBIQVZFX01FRElBX1BMQVlFUiBhbmQgSEFWRV9DT1JFX1ZJREVPCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMDdjOWJjZWFjYjcxYWJiZTU5NzU3Y2EyY2RlNmUyMmNlNGJiOTFhZi4uZDZh
NmU4MzY4Y2ZjY2IxZjAxYzAxNjY3ZGQ2OGY4YmMwMTc5YTAxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ0IEBACisyMDE4LTAzLTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0IFVTRShPUEVOR0xbX0VTXSkgaW4gbW9yZSBwbGFjZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzg4MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzc5MTIxOTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dDNEQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpoYXNNdXhhYmxlR1BVKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6dXBkYXRlSGlnaFBlcmZvcm1hbmNl
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3ND
b250ZXh0M0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250
ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tH
UFVTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdl
SU9TdXJmYWNlMkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tOgor
ICAgICAgICAoLVtXZWJHTExheWVyIGluaXRXaXRoR3JhcGhpY3NDb250ZXh0M0Q6XSk6CisgICAg
ICAgICgtW1dlYkdMTGF5ZXIgY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTpdKToKKyAg
ICAgICAgKC1bV2ViR0xMYXllciBkaXNwbGF5XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RPcGVuR0w6OmJsaXRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RPcGVuR0w6OmNyZWF0ZVZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6
OkV4dGVuc2lvbnMzRE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2Vi
Q29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjppc1ZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6YmluZFZlcnRleEFycmF5T0VTKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5l
Y2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVuZGVyYnVm
ZmVyU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW50
ZWdlcnYpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorCiAyMDE4LTAzLTIxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzY29ubmVjdCB0aGUgU1ZHUGF0aFNlZ0xp
c3QgaXRlbXMgZnJvbSB0aGVpciBTVkdQYXRoRWxlbWVudCBiZWZvcmUgcmVidWlsZGluZyBhIG5l
dyBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAppbmRleCAwOTUyN2Y1NTYwOGQwMmE4Mjk1YzE4OTFjZWMxNTQyNWFj
NjgwMDU4Li5kYTRiOTBhNmZjZjBjZjU4ODk1MzY3YWUzMTBjOTQyNDY1MmI5Y2U2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKQEAgLTExNTEsNiArMTE1MSw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
KyNkZWZpbmUgSEFWRV9BUFBMRV9HUkFQSElDU19DT05UUk9MIDEKICNkZWZpbmUgVVNFX0NPUkVB
VURJTyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggMmU3NDg3OWQ4ZDJjNjJiNjBiNDEyY2Q4YTIz
MmM0MjM5MjM4YTY5ZC4uODk0NGM3NzAyYjE1OTk3YjcxYWE1YTM4ZTQ2MWE4MzkzNTdmOWI1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRC5oCkBAIC0xMTQ0LDE3ICsxMTQ0LDE3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGJvb2wgdGV4SW1hZ2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQs
IEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmLCBHQzNEdWludCBw
bGFuZSk7Ci0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQog
ICAgIHZvaWQgcHJlc2VudFJlbmRlcmJ1ZmZlcigpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShN
QUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICB2b2lkIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0
b3JlKEludFNpemUpOwogICAgIHZvaWQgdXBkYXRlRnJhbWVidWZmZXJUZXh0dXJlQmFja2luZ1N0
b3JlRnJvbUxheWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDR0xDb250ZXh0KCk7CiAjZW5kaWYKKyNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogICAgIHZvaWQgc2V0Q29udGV4dFZpc2liaWxpdHko
Ym9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCmluZGV4IGEwYzI2ZTRkODEy
ZmVlYjJjOWJlMWY2ZTg2NjgwYjFlM2NiZGQzNDkuLmY3YzhjMDVhZWVjMzFiNzRkYTc1YWZkNjU0
MGRlNTZmYzk0YmY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQpAQCAtNDcs
NyArNDcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdM
X0VTKQogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTERy
YXdhYmxlLmg+CiAjaW1wb3J0IDxPcGVuR0xFUy9FQUdMSU9TdXJmYWNlLmg+CkBAIC02NCw3ICs2
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0YXR1
c0NoZWNrVGhyZXNob2xkID0gNTsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBIQVZFKEFQUExF
X0dSQVBISUNTX0NPTlRST0wpCiAKIGVudW0gewogICAgIGtBR0NPcGVuLApAQCAtMTMyLDEzICsx
MzIsMTcgQEAgc3RhdGljIGJvb2wgaGFzTXV4Q2FwYWJpbGl0eSgpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorI2VuZGlmCisKIHN0YXRpYyBib29sIGhhc011eGFibGVHUFUoKQogeworI2lmIEhB
VkUoQVBQTEVfR1JBUEhJQ1NfQ09OVFJPTCkKICAgICBzdGF0aWMgYm9vbCBjYW5NdXggPSBoYXNN
dXhDYXBhYmlsaXR5KCk7CiAgICAgcmV0dXJuIGNhbk11eDsKLX0KLQorI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKK30KIAogY29uc3QgdW5zaWduZWQgTWF4Q29udGV4dHMgPSAxNjsK
IApAQCAtMTY5LDcgKzE3Myw3IEBAIHByaXZhdGU6CiAKICAgICBUaW1lciBtX2Rpc2FibGVIaWdo
UGVyZm9ybWFuY2VHUFVUaW1lcjsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdM
KQogICAgIENHTFBpeGVsRm9ybWF0T2JqIG1fcGl4ZWxGb3JtYXRPYmogeyBudWxscHRyIH07CiAj
ZW5kaWYKIH07CkBAIC0yNTMsNyArMjU3LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRE1hbmFn
ZXI6OnJlbW92ZUNvbnRleHRSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UoR3JhcGhpY3NDb24KIAog
dm9pZCBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnVwZGF0ZUhpZ2hQZXJmb3JtYW5jZVN0YXRl
KCkKIHsKLSNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFoYXNNdXhhYmxlR1BVKCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMjg0LDcgKzI4Nyw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RN
YW5hZ2VyOjp1cGRhdGVIaWdoUGVyZm9ybWFuY2VTdGF0ZSgpCiAgICAgICAgICAgICBtX2Rpc2Fi
bGVIaWdoUGVyZm9ybWFuY2VHUFVUaW1lci5zdGFydE9uZVNob3QodGltZVRvS2VlcEhpZ2hQZXJm
b3JtYW5jZUdQVUFsaXZlKTsKICAgICAgICAgfQogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNETWFuYWdlcjo6ZGlzYWJsZUhpZ2hQZXJmb3JtYW5jZUdQVVRpbWVyRmly
ZWQoKQpAQCAtMzE1LDcgKzMxNyw3IEBAIHB1YmxpYzoKICAgICB+R3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlKCkgeyB9CiB9OwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAK
IHN0YXRpYyB2b2lkIHNldFBpeGVsRm9ybWF0KFZlY3RvcjxDR0xQaXhlbEZvcm1hdEF0dHJpYnV0
ZT4mIGF0dHJpYnMsIGludCBjb2xvckJpdHMsIGludCBkZXB0aEJpdHMsIGJvb2wgYWNjZWxlcmF0
ZWQsIGJvb2wgc3VwZXJzYW1wbGUsIGJvb2wgY2xvc2VzdCwgYm9vbCBhbnRpYWxpYXMsIGJvb2wg
dXNlR0xFUzMpCiB7CkBAIC0zNjMsNyArMzY1LDggQEAgc3RhdGljIHZvaWQgc2V0UGl4ZWxGb3Jt
YXQoVmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPiYgYXR0cmlicywgaW50IGNvbG9yQmkK
ICAgICAgICAgCiAgICAgYXR0cmlicy5hcHBlbmQoc3RhdGljX2Nhc3Q8Q0dMUGl4ZWxGb3JtYXRB
dHRyaWJ1dGU+KDApKTsKIH0KLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8g
VVNFKE9QRU5HTCkKIAogUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQz
RDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQog
ewpAQCAtNDAyLDcgKzQwNSw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQz
RChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAjZW5kaWYKICAg
ICAsIG1fcHJpdmF0ZShzdGQ6Om1ha2VfdW5pcXVlPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4o
dGhpcykpCiB7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgRUFH
TFJlbmRlcmluZ0FQSSBhcGkgPSBtX2F0dHJzLnVzZUdMRVMzID8ga0VBR0xSZW5kZXJpbmdBUElP
cGVuR0xFUzMgOiBrRUFHTFJlbmRlcmluZ0FQSU9wZW5HTEVTMjsKICAgICBpZiAoIXNoYXJlZENv
bnRleHQpCiAgICAgICAgIG1fY29udGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxsb2NdIGluaXRX
aXRoQVBJOmFwaV07CkBAIC00NTYsMTIgKzQ1OSw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5k
CiAKICAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVDb250ZXh0KHBpeGVsRm9ybWF0T2JqLCBz
aGFyZWRDb250ZXh0ID8gc2hhcmVkQ29udGV4dC0+bV9jb250ZXh0T2JqIDogbnVsbHB0ciwgJm1f
Y29udGV4dE9iaik7CiAgICAgR0xpbnQgYWJvcnRPbkJsYWNrbGlzdCA9IDA7Ci0jaWYgUExBVEZP
Uk0oTUFDKQogICAgIENHTFNldFBhcmFtZXRlcihtX2NvbnRleHRPYmosIGtDR0xDUEFib3J0T25H
UFVSZXN0YXJ0U3RhdHVzQmxhY2tsaXN0ZWQsICZhYm9ydE9uQmxhY2tsaXN0KTsKLSNlbGlmIFBM
QVRGT1JNKElPUykKLSAgICBDR0xTZXRQYXJhbWV0ZXIobV9jb250ZXh0T2JqLCBrRUFHTENQQWJv
cnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCwgJmFib3J0T25CbGFja2xpc3QpOwotI2Vu
ZGlmCi0KICAgICBDR0xEZXN0cm95UGl4ZWxGb3JtYXQocGl4ZWxGb3JtYXRPYmopOwogICAgIAog
ICAgIGlmIChlcnIgIT0ga0NHTE5vRXJyb3IgfHwgIW1fY29udGV4dE9iaikgewpAQCAtNDc1LDcg
KzQ3Myw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0Nv
bnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgLy8gU2V0IHRoZSBjdXJyZW50
IGNvbnRleHQgdG8gdGhlIG9uZSBnaXZlbiB0byB1cy4KICAgICBDR0xTZXRDdXJyZW50Q29udGV4
dChtX2NvbnRleHRPYmopOwogCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyAh
VVNFKE9QRU5HTF9FUykKICAgICAKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKIApAQCAtNDg3
LDEzICs0ODUsMTMgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICNlbmRpZgogICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5H
TCkKICAgICBpZiAodXNlTXVsdGlzYW1wbGluZykKICAgICAgICAgOjpnbEVuYWJsZShHTF9NVUxU
SVNBTVBMRSk7CiAjZW5kaWYKIAogICAgIC8vIENyZWF0ZSB0aGUgdGV4dHVyZSB0aGF0IHdpbGwg
YmUgdXNlZCBmb3IgdGhlIGZyYW1lYnVmZmVyLgotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0Uo
T1BFTkdMX0VTKQogICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3RleHR1cmUpOwogI2Vs
c2UKICAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CkBAIC01NDcsNyArNTQ1LDcg
QEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNE
QXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKIAogICAgIG1fY29tcGlsZXIuc2V0UmVzb3VyY2Vz
KEFOR0xFUmVzb3VyY2VzKTsKICAgICAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVO
R0wpCiAgICAgOjpnbEVuYWJsZShHTF9WRVJURVhfUFJPR1JBTV9QT0lOVF9TSVpFKTsKICAgICBp
ZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgOjpnbEVuYWJsZShHTF9QT0lOVF9TUFJJ
VEUpOwpAQCAtNTYzLDcgKzU2MSw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250
ZXh0M0QoKQogICAgIG1hbmFnZXIoKS5yZW1vdmVDb250ZXh0KHRoaXMpOwogCiAgICAgaWYgKG1f
Y29udGV4dE9iaikgewotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQogICAg
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICAgICAgW21fY29udGV4dE9iaiByZW5kZXJi
dWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBmcm9tRHJhd2FibGU6bmlsXTsKICAgICAgICAg
OjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fdGV4dHVyZSk7CkBAIC01ODEsNyArNTc5LDcg
QEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgICAgICAgICAg
ICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsK
ICAgICAgICAgfQogICAgICAgICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzRVhUKDEsICZtX2Zibyk7
Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIFtFQUdMQ29u
dGV4dCBzZXRDdXJyZW50Q29udGV4dDowXTsKICAgICAgICAgW3N0YXRpY19jYXN0PEVBR0xDb250
ZXh0Kj4obV9jb250ZXh0T2JqKSByZWxlYXNlXTsKICNlbHNlCkBAIC01OTQsNyArNTkyLDcgQEAg
R3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgTE9HKFdlYkdMLCAi
RGVzdHJveWVkIGEgR3JhcGhpY3NDb250ZXh0M0QgKCVwKS4iLCB0aGlzKTsKIH0KIAotI2lmIFBM
QVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
c2V0UmVuZGVyYnVmZmVyU3RvcmFnZUZyb21EcmF3YWJsZShHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQpCiB7CiAgICAgLy8gV2UgbmVlZCB0byBtYWtlIGEgY2FsbCB0byBzZXRCb3Vu
ZHMgYmVsb3cgdG8gdXBkYXRlIHRoZSBiYWNraW5nIHN0b3JlIHNpemUgYnV0IHdlIGFsc28KQEAg
LTYxNSw3ICs2MTMsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJl
bnQoKQogICAgIGlmICghbV9jb250ZXh0T2JqKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNp
ZiBQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTF9FUykKICAgICBpZiAoW0VBR0xDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSAhPSBtX2NvbnRleHRPYmopCiAgICAgICAgIHJldHVybiBbRUFHTENv
bnRleHQgc2V0Q3VycmVudENvbnRleHQ6c3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPihtX2NvbnRl
eHRPYmopXTsKICNlbHNlCkBAIC02MzIsNyArNjMwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6Y2hlY2tHUFVTdGF0dXMoKQogICAgICAgICBMT0coV2ViR0wsICJQcmV0ZW5kaW5nIHRoZSBH
UFUgaGFzIHJlc2V0ICglcCkuIExvc2UgdGhlIGNvbnRleHQuIiwgdGhpcyk7CiAgICAgICAgIG1f
ZmFpbE5leHRTdGF0dXNDaGVjayA9IGZhbHNlOwogICAgICAgICBmb3JjZUNvbnRleHRMb3N0KCk7
Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAgICAgICAgIENHTFNldEN1cnJl
bnRDb250ZXh0KDApOwogI2Vsc2UKICAgICAgICAgW0VBR0xDb250ZXh0IHNldEN1cnJlbnRDb250
ZXh0OjBdOwpAQCAtNjQ3LDcgKzY0NSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNr
R1BVU3RhdHVzKCkKICAgICBtX3N0YXR1c0NoZWNrQ291bnQgPSAobV9zdGF0dXNDaGVja0NvdW50
ICsgMSkgJSBzdGF0dXNDaGVja1RocmVzaG9sZDsKIAogICAgIEdMaW50IHJlc3RhcnRTdGF0dXMg
PSAwOwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogICAgIENHTEdldFBhcmFt
ZXRlcihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIGtDR0xDUEdQVVJlc3RhcnRTdGF0dXMs
ICZyZXN0YXJ0U3RhdHVzKTsKICAgICBpZiAocmVzdGFydFN0YXR1cyA9PSBrQ0dMQ1BHUFVSZXN0
YXJ0U3RhdHVzQmxhY2tsaXN0ZWQpIHsKICAgICAgICAgTE9HKFdlYkdMLCAiVGhlIEdQVSBoYXMg
YmxhY2tsaXN0ZWQgdXMgKCVwKS4gVGVybWluYXRpbmcuIiwgdGhpcyk7CkBAIC02NjksNyArNjY3
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogI2VuZGlmCiB9
CiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTF9FUykKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnByZXNlbnRSZW5kZXJidWZmZXIoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVu
dCgpOwpAQCAtNjg1LDkgKzY4Myw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnByZXNlbnRS
ZW5kZXJidWZmZXIoKQogCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFj
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJ
T1N1cmZhY2VSZWYgc3VyZmFjZSwgR0MzRHVpbnQgcGxhbmUpCiB7Ci0jaWYgUExBVEZPUk0oTUFD
KQorI2lmIFVTRShPUEVOR0wpCiAgICAgcmV0dXJuIGtDR0xOb0Vycm9yID09IENHTFRleEltYWdl
SU9TdXJmYWNlMkQocGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCB0YXJnZXQsIGludGVybmFs
Rm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN1cmZhY2UsIHBsYW5lKTsKLSNl
bGlmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisjZWxpZiBVU0Uo
T1BFTkdMX0VTKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKICAgICByZXR1cm4gW3BsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QoKSB0ZXhJbWFnZUlPU3VyZmFjZTpzdXJmYWNlIHRhcmdldDp0
YXJnZXQgaW50ZXJuYWxGb3JtYXQ6aW50ZXJuYWxGb3JtYXQgd2lkdGg6d2lkdGggaGVpZ2h0Omhl
aWdodCBmb3JtYXQ6Zm9ybWF0IHR5cGU6dHlwZSBwbGFuZTpwbGFuZV07CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTSh0YXJnZXQpOwpAQCAtNzAyLDcgKzcwMCw3IEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OnRleEltYWdlSU9TdXJmYWNlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRl
cm5hbEZvCiAjZW5kaWYKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQog
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUoSW50
U2l6ZSBzaXplKQogewogICAgIExPRyhXZWJHTCwgIkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0
ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZSBhdCAlZCB4ICVkLiAoJXApIiwgc2l6ZS53aWR0aCgpLCBz
aXplLmhlaWdodCgpLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAppbmRleCA1YjRiNTE4NDAxZWU5OWNjZWE3Y2IxNmU4
YzA5MmRiY2NkMGZjYzdhLi4xMjMxZGZlODY1MThkNGEyZDc4OTQwMDg3NTcyMDYxNmY0Mzc2ZjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJH
TExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R0xMYXllci5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBH
cmFwaGljc0NvbnRleHQzRDsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdM
KQogQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FMYXllcgogI2Vsc2UKIEBpbnRlcmZhY2UgV2Vi
R0xMYXllciA6IENBRUFHTExheWVyCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDNEOwogewogICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiBfY29udGV4dDsKICAg
ICBmbG9hdCBfZGV2aWNlUGl4ZWxSYXRpbzsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9Q
RU5HTCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBfY29udGVudHNC
dWZmZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gX2RyYXdpbmdC
dWZmZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4gX3NwYXJlQnVm
ZmVyOwpAQCAtNTcsNyArNTcsNyBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIAogLSAoQ0dJ
bWFnZVJlZiljb3B5SW1hZ2VTbmFwc2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYp
Y29sb3JTcGFjZTsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogLSAodm9p
ZClhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOihXZWJDb3JlOjpJbnRTaXpl
KXNpemUgdXNpbmdBbHBoYTooQk9PTCl1c2luZ0FscGhhOwogLSAodm9pZCliaW5kRnJhbWVidWZm
ZXJUb05leHRBdmFpbGFibGVTdXJmYWNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQppbmRleCBhMzA0ZDlmZTQ0
MGE3ZDZlNzMyNDk2YzFmZmI2MGU2MGQxZGM0ZmY0Li44OTE3NjhjYTIxZmM5MjYxN2ZlZjM5ZjNl
Y2NkMTEyOTg4OGU4YThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJHTExheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KQEAgLTM3LDcgKzM3LDcgQEAKICNpbXBvcnQgPHd0
Zi9GYXN0TWFsbG9jLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9S
TShNQUMpCisjaWYgVVNFKE9QRU5HTCkKICNpbXBvcnQgPE9wZW5HTC9PcGVuR0wuaD4KICNpbXBv
cnQgPE9wZW5HTC9nbC5oPgogI2VuZGlmCkBAIC01Myw3ICs1Myw3IEBAIC0oaWQpaW5pdFdpdGhH
cmFwaGljc0NvbnRleHQzRDooR3JhcGhpY3NDb250ZXh0M0QqKWNvbnRleHQKICAgICBfY29udGV4
dCA9IGNvbnRleHQ7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBfZGV2aWNlUGl4ZWxS
YXRpbyA9IGNvbnRleHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuZGV2aWNlUGl4ZWxSYXRpbzsK
LSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICBzZWxmLmNvbnRlbnRzT3Bh
cXVlID0gIWNvbnRleHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7CiAgICAgc2VsZi50
cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CiAgICAgc2VsZi5jb250ZW50c1NjYWxl
ID0gX2RldmljZVBpeGVsUmF0aW87CkBAIC02Myw3ICs2Myw3IEBAIC0oaWQpaW5pdFdpdGhHcmFw
aGljc0NvbnRleHQzRDooR3JhcGhpY3NDb250ZXh0M0QqKWNvbnRleHQKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogLy8gT24gTWFjLCB3
ZSBuZWVkIHRvIGZsaXAgdGhlIGxheWVyIHRvIHRha2UgaW50byBhY2NvdW50CiAvLyB0aGF0IHRo
ZSBJT1N1cmZhY2UgcHJvdmlkZXMgY29udGVudCBpbiBZLXVwLiBUaGlzCiAvLyBtZWFucyB0aGF0
IGFueSBpbmNvbWluZyB0cmFuc2Zvcm0gKHVubGlrZWx5LCBzaW5jZSB0aGlzCkBAIC05MiwxMCAr
OTIsNyBAQCAtKENHSW1hZ2VSZWYpY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTooQ0dD
b2xvclNwYWNlUmVmKWNvbG9yU3BhY2UKICAgICBpZiAoIV9jb250ZXh0KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBVTlVTRURfUEFSQU0oY29sb3JT
cGFjZSk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci0jZWxzZQorI2lmIFVTRShPUEVOR0wpCiAgICAg
Q0dMU2V0Q3VycmVudENvbnRleHQoX2NvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qo
KSk7CiAKICAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBpbWFnZUNvbG9yU3BhY2UgPSBj
b2xvclNwYWNlOwpAQCAtMTIxLDYgKzExOCw5IEBAIC0oQ0dJbWFnZVJlZiljb3B5SW1hZ2VTbmFw
c2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYpY29sb3JTcGFjZQogICAgICAgICBr
Q0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0
LCBwcm92aWRlciwgMCwgdHJ1ZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCk7CiAgICAgQ0dE
YXRhUHJvdmlkZXJSZWxlYXNlKHByb3ZpZGVyKTsKICAgICByZXR1cm4gaW1hZ2U7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShjb2xvclNwYWNlKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRp
ZgogfQogCkBAIC0xMjksNyArMTI5LDcgQEAgLSAodm9pZClkaXNwbGF5CiAgICAgaWYgKCFfY29u
dGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVO
R0wpCiAgICAgX2NvbnRleHQtPnByZXBhcmVUZXh0dXJlKCk7CiAgICAgaWYgKF9kcmF3aW5nQnVm
ZmVyKSB7CiAgICAgICAgIHN0ZDo6c3dhcChfY29udGVudHNCdWZmZXIsIF9kcmF3aW5nQnVmZmVy
KTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCAtICh2b2lkKWRpc3BsYXkKICAgICAgICAgbGF5ZXItPm93
bmVyKCktPnBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShsYXllcik7CiB9CiAKLSNpZiBQ
TEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKIC0gKHZvaWQpYWxsb2NhdGVJT1N1cmZhY2VC
YWNraW5nU3RvcmVXaXRoU2l6ZTooSW50U2l6ZSlzaXplIHVzaW5nQWxwaGE6KEJPT0wpdXNpbmdB
bHBoYQogewogICAgIF9idWZmZXJTaXplID0gc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9HcmFwaGljc0NvbnRleHQzRElPUy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmgKaW5k
ZXggMDE4Y2YxOTUzZGU1MWYzYzc3MWVjMGQyMDJhNjhkYzdiOTBlZDQxNC4uZjhlZTEwMzE4NmM4
MDlkMjZhMTEwZDJlZjhjMDgwNjcwMzM2YzNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmgKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYg
VVNFKE9QRU5HTF9FUykKIAogI2RlZmluZSBnbEJpbmRGcmFtZWJ1ZmZlckVYVCBnbEJpbmRGcmFt
ZWJ1ZmZlcgogI2RlZmluZSBnbEJpbmRSZW5kZXJidWZmZXJFWFQgZ2xCaW5kUmVuZGVyYnVmZmVy
CkBAIC03MSw0ICs3MSw0IEBACiAjZGVmaW5lIEdMX1NURU5DSUxfQVRUQUNITUVOVF9FWFQgR0xf
U1RFTkNJTF9BVFRBQ0hNRU5UCiAjZGVmaW5lIEdMX1VOU0lHTkVEX0lOVF84XzhfOF84X1JFViBH
TF9VTlNJR05FRF9CWVRFCiAKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCisjZW5kaWYgLy8gVVNF
KE9QRU5HTF9FUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKaW5kZXggZTA1ZGVjMWNkYjkw
ZDJjMjA4MDE4ZTRiYmRlYzQ2M2QyYTAyMDlmNy4uNGFmNDBlZGJmNDMyNmU4YzhlYjZmNjJlN2Uy
YzYxN2RkN2NlZjc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKQEAgLTMxLDEyICsz
MSwxMiBAQAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKIAotI2lmIFBMQVRGT1JN
KElPUykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlICJPcGVu
R0xTaGltcy5oIgorI2VsaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xFUy9FUzIv
Z2xleHQuaD4KLSNlbGlmIFBMQVRGT1JNKE1BQykKKyNlbGlmIFVTRShPUEVOR0wpCiAjaW5jbHVk
ZSA8T3BlbkdML2dsLmg+Ci0jZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKLSNp
bmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC01
NSw3ICs1NSw3IEBAIEV4dGVuc2lvbnMzRE9wZW5HTDo6fkV4dGVuc2lvbnMzRE9wZW5HTCgpID0g
ZGVmYXVsdDsKIAogdm9pZCBFeHRlbnNpb25zM0RPcGVuR0w6OmJsaXRGcmFtZWJ1ZmZlcihsb25n
IHNyY1gwLCBsb25nIHNyY1kwLCBsb25nIHNyY1gxLCBsb25nIHNyY1kxLCBsb25nIGRzdFgwLCBs
b25nIGRzdFkwLCBsb25nIGRzdFgxLCBsb25nIGRzdFkxLCB1bnNpZ25lZCBsb25nIG1hc2ssIHVu
c2lnbmVkIGxvbmcgZmlsdGVyKQogewotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICBVTlVTRURfUEFSQU0oc3JjWDApOwogICAgIFVO
VVNFRF9QQVJBTShzcmNZMCk7CiAgICAgVU5VU0VEX1BBUkFNKHNyY1gxKTsKQEAgLTgxLDcgKzgx
LDcgQEAgUGxhdGZvcm0zRE9iamVjdCBFeHRlbnNpb25zM0RPcGVuR0w6OmNyZWF0ZVZlcnRleEFy
cmF5T0VTKCkKIHsKICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIEdM
dWludCBhcnJheSA9IDA7Ci0jaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQ
TEFURk9STShJT1MpKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCAoUExB
VEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpKQogICAgIGlmIChpc1ZlcnRleEFycmF5T2Jq
ZWN0U3VwcG9ydGVkKCkpCiAgICAgICAgIGdsR2VuVmVydGV4QXJyYXlzKDEsICZhcnJheSk7CiAj
ZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYmIEdMX0FQUExFX3Zl
cnRleF9hcnJheV9vYmplY3QKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBFeHRlbnNpb25zM0RPcGVu
R0w6OmRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QgYXJyYXkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0jaWYgKFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShJT1MpKQorI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVO
R0xfRVMpKQogICAgIGlmIChpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCkpCiAgICAgICAg
IGdsRGVsZXRlVmVydGV4QXJyYXlzKDEsICZhcnJheSk7CiAjZWxpZiBkZWZpbmVkKEdMX0FQUExF
X3ZlcnRleF9hcnJheV9vYmplY3QpICYmIEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKQEAg
LTExMCw3ICsxMTAsNyBAQCBHQzNEYm9vbGVhbiBFeHRlbnNpb25zM0RPcGVuR0w6OmlzVmVydGV4
QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKICAgICAgICAgcmV0dXJuIEdMX0ZBTFNF
OwogCiAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiAoUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKElPUykpCisjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykp
CiAgICAgaWYgKGlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAgcmV0dXJu
IGdsSXNWZXJ0ZXhBcnJheShhcnJheSk7CiAjZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9h
cnJheV9vYmplY3QpICYmIEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKQEAgLTEyMiw3ICsx
MjIsNyBAQCBHQzNEYm9vbGVhbiBFeHRlbnNpb25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlPRVMo
UGxhdGZvcm0zRE9iamVjdCBhcnJheSkKIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpiaW5kVmVy
dGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKIHsKICAgICBtX2NvbnRleHQtPm1h
a2VDb250ZXh0Q3VycmVudCgpOwotI2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oSU9TKSkKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwg
KFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKSkKICAgICBpZiAoaXNWZXJ0ZXhBcnJh
eU9iamVjdFN1cHBvcnRlZCgpKQogICAgICAgICBnbEJpbmRWZXJ0ZXhBcnJheShhcnJheSk7CiAj
ZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYmIEdMX0FQUExFX3Zl
cnRleF9hcnJheV9vYmplY3QKQEAgLTI5OCw3ICsyOTgsNyBAQCBTdHJpbmcgRXh0ZW5zaW9uczNE
T3BlbkdMOjpnZXRFeHRlbnNpb25zKCkKICAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAotI2lm
IChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oSU9TKSkKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKENPQ09BKSAmJiBVU0Uo
T1BFTkdMX0VTKSkKIGJvb2wgRXh0ZW5zaW9uczNET3BlbkdMOjppc1ZlcnRleEFycmF5T2JqZWN0
U3VwcG9ydGVkKCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzdXBwb3J0c1ZlcnRleEFycmF5
T2JqZWN0ID0gc3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMLmgKaW5kZXggY2I5Mzc0M2RkOThmODIyNzMxMjA0MDI0MGRkZjA2ZjY1NjBk
N2JmMS4uNDUyNTA4YTUzMWRhYTIwZDhhZDlkOTkxZmJhOTQ4NWJjOTk0M2VjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0wuaApAQCAtNjEsNyArNjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgU3RyaW5n
IGdldEV4dGVuc2lvbnMoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSNpZiAoUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKElPUykpCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykpCiAg
ICAgYm9vbCBpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCk7CiAjZW5kaWYKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAppbmRleCA0Y2U2MWQyNTE2NzE0YWQ5N2Ew
M2ZhN2NhOWZhOTFmYTA1ZDkwZTM1Li5hNmZmZmQwMTI4MGZlNmNmZTcxNTAyYjgyODhjZWE5ZThm
NTg2YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKQEAgLTQ3LDE4
ICs0NywxOCBAQAogI2luY2x1ZGUgPEFjY2VsZXJhdGUvQWNjZWxlcmF0ZS5oPgogI2VuZGlmCiAK
LSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCisj
aW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKKyNlbGlmIFVTRShPUEVOR0xfRVMpCiAjaW1wb3J0IDxP
cGVuR0xFUy9FUzIvZ2xleHQuaD4KIC8vIEZyb20gPE9wZW5HTEVTL2dsZXh0Lmg+CiAjZGVmaW5l
IEdMX1JHQkEzMkZfQVJCICAgICAgICAgICAgICAgICAgICAgIDB4ODgxNAogI2RlZmluZSBHTF9S
R0IzMkZfQVJCICAgICAgICAgICAgICAgICAgICAgICAweDg4MTUKLSNlbGlmIFBMQVRGT1JNKE1B
QykKKyNlbGlmIFVTRShPUEVOR0wpCiAjZGVmaW5lIEdMX0RPX05PVF9XQVJOX0lGX01VTFRJX0dM
X1ZFUlNJT05fSEVBREVSU19JTkNMVURFRAogI2luY2x1ZGUgPE9wZW5HTC9nbC5oPgogI2luY2x1
ZGUgPE9wZW5HTC9nbDMuaD4KICN1bmRlZiBHTF9ET19OT1RfV0FSTl9JRl9NVUxUSV9HTF9WRVJT
SU9OX0hFQURFUlNfSU5DTFVERUQKLSNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lO
KQotI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMTQxLDcgKzE0MSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9z
KGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKCJH
TF9FWFRfcGFja2VkX2RlcHRoX3N0ZW5jaWwiKSkKICAgICAgICAgICAgIGludGVybmFsRGVwdGhT
dGVuY2lsRm9ybWF0ID0gR0xfREVQVEgyNF9TVEVOQ0lMOF9FWFQ7CiAgICAgICAgIGVsc2UKLSNp
ZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiAg
ICAgICAgICAgICBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIX0NPTVBPTkVO
VDE2OwogI2Vsc2UKICAgICAgICAgICAgIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xf
REVQVEhfQ09NUE9ORU5UOwpAQCAtMTU3LDcgKzE1Nyw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0
M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIEdMaW50IHNhbXBs
ZUNvdW50ID0gc3RkOjptaW4oNCwgbWF4U2FtcGxlQ291bnQpOwogICAgICAgICA6OmdsQmluZEZy
YW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAg
ICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlz
YW1wbGVDb2xvckJ1ZmZlcik7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBVU0UoT1BFTkdMX0VTKQogICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRp
c2FtcGxlRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIHNhbXBsZUNvdW50LCBHTF9SR0JBOF9PRVMs
IHdpZHRoLCBoZWlnaHQpOwogI2Vsc2UKICAgICAgICAgOjpnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VN
dWx0aXNhbXBsZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBzYW1wbGVDb3VudCwgbV9pbnRlcm5h
bENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKQEAgLTE4MSwxNCArMTgxLDE2IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAg
Ly8gcmVzaXplIHJlZ3VsYXIgRkJPCiAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFN
RUJVRkZFUl9FWFQsIG1fZmJvKTsKICAgICBBU1NFUlQobV90ZXh0dXJlKTsKLSNpZiBQTEFURk9S
TShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgVVNFKE9QRU5HTF9FUykKICAgICA6Omds
QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fdGV4dHVyZSk7CiAgICAgOjpnbEZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5U
MCwgR0xfUkVOREVSQlVGRkVSLCBtX3RleHR1cmUpOwogICAgIHNldFJlbmRlcmJ1ZmZlclN0b3Jh
Z2VGcm9tRHJhd2FibGUobV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCk7Ci0jZWxpZiBQ
TEFURk9STShNQUMpCisjZWxzZQogICAgIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlKElu
dFNpemUod2lkdGgsIGhlaWdodCkpOwogICAgIHVwZGF0ZUZyYW1lYnVmZmVyVGV4dHVyZUJhY2tp
bmdTdG9yZUZyb21MYXllcigpOwogICAgIDo6Z2xGcmFtZWJ1ZmZlclRleHR1cmUyREVYVChHTF9G
UkFNRUJVRkZFUl9FWFQsIEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCwgR0xfVEVYVFVSRV9SRUNU
QU5HTEVfQVJCLCBtX3RleHR1cmUsIDApOworI2VuZGlmIC8vICFVU0UoT1BFTkdMX0VTKSkKICNl
bHNlCiAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CiAgICAg
OjpnbFRleEltYWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgbV9pbnRlcm5hbENvbG9yRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgMCk7CkBAIC0y
NDYsMTQgKzI0OCwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNvbHZlTXVsdGlzYW1w
bGluZ0lmTmVjZXNzYXJ5KGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgVGVtcG9yYXJ5T3BlbkdM
U2V0dGluZyBzY29wZWREZXB0aChHTF9ERVBUSF9URVNULCBHTF9GQUxTRSk7CiAgICAgVGVtcG9y
YXJ5T3BlbkdMU2V0dGluZyBzY29wZWRTdGVuY2lsKEdMX1NURU5DSUxfVEVTVCwgR0xfRkFMU0Up
OwogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdM
X0VTKQogICAgIEdMaW50IGJvdW5kRnJhbWVCdWZmZXI7CiAgICAgOjpnbEdldEludGVnZXJ2KEdM
X0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZib3VuZEZyYW1lQnVmZmVyKTsKICNlbmRpZgogCiAgICAg
OjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9SRUFEX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNh
bXBsZUZCTyk7CiAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9EUkFXX0ZSQU1FQlVGRkVS
X0VYVCwgbV9mYm8pOwotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkgJiYg
VVNFKE9QRU5HTF9FUykKICAgICBVTlVTRURfUEFSQU0ocmVjdCk7CiAgICAgOjpnbEZsdXNoKCk7
CiAgICAgOjpnbFJlc29sdmVNdWx0aXNhbXBsZUZyYW1lYnVmZmVyQVBQTEUoKTsKQEAgLTI3Miw3
ICsyNzQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNvbHZlTXVsdGlzYW1wbGluZ0lm
TmVjZXNzYXJ5KGNvbnN0IEludFJlY3QmIHJlY3QpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpy
ZW5kZXJidWZmZXJTdG9yYWdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0wpCiAgICAgc3dp
dGNoIChpbnRlcm5hbGZvcm1hdCkgewogICAgIGNhc2UgREVQVEhfU1RFTkNJTDoKICAgICAgICAg
aW50ZXJuYWxmb3JtYXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X0VYVDsKQEAgLTMwMCw3ICszMDIs
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlZ2VydihHQzNEZW51bSBwbmFtZSwg
R0MzRGludCogdmFsdWUpCiAgICAgLy8gVGhlcmVmb3JlLCB0aGUgdmFsdWUgcmV0dXJuZWQgYnkg
ZGVza3RvcCBHTCBuZWVkcyB0byBiZSBkaXZpZGVkIGJ5IDQuCiAgICAgbWFrZUNvbnRleHRDdXJy
ZW50KCk7CiAgICAgc3dpdGNoIChwbmFtZSkgewotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNF
KE9QRU5HTCkKICAgICBjYXNlIE1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlM6CiAgICAgICAg
IDo6Z2xHZXRJbnRlZ2VydihHTF9NQVhfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTLCB2YWx1
ZSk7CiAgICAgICAgICp2YWx1ZSAvPSA0OwpAQCAtMzkyLDcgKzM5NCw3IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEZW51bSBpbnRlCiAKICAgICBHQzNEZW51bSBvcGVuR0xGb3JtYXQgPSBmb3JtYXQ7CiAgICAg
R0MzRGVudW0gb3BlbkdMSW50ZXJuYWxGb3JtYXQgPSBpbnRlcm5hbGZvcm1hdDsKLSNpZiAhUExB
VEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0wpCiAgICAgaWYgKHR5cGUgPT0gR0xfRkxPQVQpIHsK
ICAgICAgICAgaWYgKGZvcm1hdCA9PSBHTF9SR0JBKQogICAgICAgICAgICAgb3BlbkdMSW50ZXJu
YWxGb3JtYXQgPSBHTF9SR0JBMzJGX0FSQjsKQEAgLTQ1Miw3ICs0NTQsNyBAQCBib29sIEdyYXBo
aWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwg
R0MzRGVudW0gaW50ZQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhSYW5nZShHQzNEY2xh
bXBmIHpOZWFyLCBHQzNEY2xhbXBmIHpGYXIpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7
Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VT
KQogICAgIDo6Z2xEZXB0aFJhbmdlZihzdGF0aWNfY2FzdDxmbG9hdD4oek5lYXIpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oekZhcikpOwogI2Vsc2UKICAgICA6OmdsRGVwdGhSYW5nZSh6TmVhciwgekZh
cik7CkBAIC00NjIsNyArNDY0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhSYW5n
ZShHQzNEY2xhbXBmIHpOZWFyLCBHQzNEY2xhbXBmIHpGYXIpCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpjbGVhckRlcHRoKEdDM0RjbGFtcGYgZGVwdGgpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJy
ZW50KCk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BF
TkdMX0VTKQogICAgIDo6Z2xDbGVhckRlcHRoZihzdGF0aWNfY2FzdDxmbG9hdD4oZGVwdGgpKTsK
ICNlbHNlCiAgICAgOjpnbENsZWFyRGVwdGgoZGVwdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggNTQ3Mjc0ZmZhNjhhNTJlNDVlMGQ3MmQy
OGIyYTEzOWM2ZjViMGIxZC4uNWJkZDY2MzA3NTlhZWMzNzJjYzQ2MzViN2M0NDE3MTk1NmI5MjE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBA
IC0xODYsNyArMTg2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMoSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyKQogCiAgICAgcGFpbnRUb0Nh
bnZhcyhwaXhlbHMuZ2V0KCksIEludFNpemUobV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdo
dCksIGltYWdlQnVmZmVyLT5pbnRlcm5hbFNpemUoKSwgaW1hZ2VCdWZmZXItPmNvbnRleHQoKSk7
CiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xf
RVMpCiAgICAgcHJlc2VudFJlbmRlcmJ1ZmZlcigpOwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336249</attachid>
            <date>2018-03-21 17:57:21 -0700</date>
            <delta_ts>2018-03-21 18:13:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183882-20180321175720.patch</filename>
            <type>text/plain</type>
            <size>26154</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ0ZmRmZjg1YWM0ZDJkZWM4M2VhNGM3
N2Q5MWMyNGZmOGE1MWZhZTMuLjI3YzRkM2ZhNGIzYmJhZWM3MzM4NjYzNDk4ZGVlYTgyZTMxMzEx
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDMtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVVNFKE9QRU5HTFtfRVNdKSBpbiBt
b3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzODgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzkxMjE5NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgor
CiAyMDE4LTAzLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEludHJvZHVjZSBIQVZFX01FRElBX1BMQVlFUiBhbmQgSEFWRV9DT1JFX1ZJREVPCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMDdjOWJjZWFjYjcxYWJiZTU5NzU3Y2EyY2RlNmUyMmNlNGJiOTFhZi4uZDZh
NmU4MzY4Y2ZjY2IxZjAxYzAxNjY3ZGQ2OGY4YmMwMTc5YTAxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ0IEBACisyMDE4LTAzLTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0IFVTRShPUEVOR0xbX0VTXSkgaW4gbW9yZSBwbGFjZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzg4MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzc5MTIxOTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dDNEQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpoYXNNdXhhYmxlR1BVKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6dXBkYXRlSGlnaFBlcmZvcm1hbmNl
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3ND
b250ZXh0M0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250
ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tH
UFVTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdl
SU9TdXJmYWNlMkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tOgor
ICAgICAgICAoLVtXZWJHTExheWVyIGluaXRXaXRoR3JhcGhpY3NDb250ZXh0M0Q6XSk6CisgICAg
ICAgICgtW1dlYkdMTGF5ZXIgY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTpdKToKKyAg
ICAgICAgKC1bV2ViR0xMYXllciBkaXNwbGF5XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RPcGVuR0w6OmJsaXRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RPcGVuR0w6OmNyZWF0ZVZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6
OkV4dGVuc2lvbnMzRE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2Vi
Q29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjppc1ZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6YmluZFZlcnRleEFycmF5T0VTKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5l
Y2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVuZGVyYnVm
ZmVyU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW50
ZWdlcnYpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorCiAyMDE4LTAzLTIxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzY29ubmVjdCB0aGUgU1ZHUGF0aFNlZ0xp
c3QgaXRlbXMgZnJvbSB0aGVpciBTVkdQYXRoRWxlbWVudCBiZWZvcmUgcmVidWlsZGluZyBhIG5l
dyBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAppbmRleCAwOTUyN2Y1NTYwOGQwMmE4Mjk1YzE4OTFjZWMxNTQyNWFj
NjgwMDU4Li5kYTRiOTBhNmZjZjBjZjU4ODk1MzY3YWUzMTBjOTQyNDY1MmI5Y2U2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKQEAgLTExNTEsNiArMTE1MSw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
KyNkZWZpbmUgSEFWRV9BUFBMRV9HUkFQSElDU19DT05UUk9MIDEKICNkZWZpbmUgVVNFX0NPUkVB
VURJTyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggMmU3NDg3OWQ4ZDJjNjJiNjBiNDEyY2Q4YTIz
MmM0MjM5MjM4YTY5ZC4uODk0NGM3NzAyYjE1OTk3YjcxYWE1YTM4ZTQ2MWE4MzkzNTdmOWI1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRC5oCkBAIC0xMTQ0LDE3ICsxMTQ0LDE3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGJvb2wgdGV4SW1hZ2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQs
IEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmLCBHQzNEdWludCBw
bGFuZSk7Ci0jZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQog
ICAgIHZvaWQgcHJlc2VudFJlbmRlcmJ1ZmZlcigpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShN
QUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICB2b2lkIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0
b3JlKEludFNpemUpOwogICAgIHZvaWQgdXBkYXRlRnJhbWVidWZmZXJUZXh0dXJlQmFja2luZ1N0
b3JlRnJvbUxheWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDR0xDb250ZXh0KCk7CiAjZW5kaWYKKyNl
bmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogICAgIHZvaWQgc2V0Q29udGV4dFZpc2liaWxpdHko
Ym9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCmluZGV4IGEwYzI2ZTRkODEy
ZmVlYjJjOWJlMWY2ZTg2NjgwYjFlM2NiZGQzNDkuLjIxMDdmMWVlMDYwMDkyZTQ1ODg5MTUzNDFk
NjA5MTliMWJkYmU1M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQpAQCAtNDcs
NyArNDcsNyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdM
X0VTKQogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTERy
YXdhYmxlLmg+CiAjaW1wb3J0IDxPcGVuR0xFUy9FQUdMSU9TdXJmYWNlLmg+CkBAIC02NCw3ICs2
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHN0YXR1
c0NoZWNrVGhyZXNob2xkID0gNTsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBIQVZFKEFQUExF
X0dSQVBISUNTX0NPTlRST0wpCiAKIGVudW0gewogICAgIGtBR0NPcGVuLApAQCAtMTMyLDEzICsx
MzIsMTcgQEAgc3RhdGljIGJvb2wgaGFzTXV4Q2FwYWJpbGl0eSgpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorI2VuZGlmCisKIHN0YXRpYyBib29sIGhhc011eGFibGVHUFUoKQogeworI2lmIEhB
VkUoQVBQTEVfR1JBUEhJQ1NfQ09OVFJPTCkKICAgICBzdGF0aWMgYm9vbCBjYW5NdXggPSBoYXNN
dXhDYXBhYmlsaXR5KCk7CiAgICAgcmV0dXJuIGNhbk11eDsKLX0KLQorI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKK30KIAogY29uc3QgdW5zaWduZWQgTWF4Q29udGV4dHMgPSAxNjsK
IApAQCAtMTY5LDcgKzE3Myw3IEBAIHByaXZhdGU6CiAKICAgICBUaW1lciBtX2Rpc2FibGVIaWdo
UGVyZm9ybWFuY2VHUFVUaW1lcjsKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdM
KQogICAgIENHTFBpeGVsRm9ybWF0T2JqIG1fcGl4ZWxGb3JtYXRPYmogeyBudWxscHRyIH07CiAj
ZW5kaWYKIH07CkBAIC0zMTUsNyArMzE5LDcgQEAgcHVibGljOgogICAgIH5HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUoKSB7IH0KIH07CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5H
TCkKIAogc3RhdGljIHZvaWQgc2V0UGl4ZWxGb3JtYXQoVmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0
cmlidXRlPiYgYXR0cmlicywgaW50IGNvbG9yQml0cywgaW50IGRlcHRoQml0cywgYm9vbCBhY2Nl
bGVyYXRlZCwgYm9vbCBzdXBlcnNhbXBsZSwgYm9vbCBjbG9zZXN0LCBib29sIGFudGlhbGlhcywg
Ym9vbCB1c2VHTEVTMykKIHsKQEAgLTM2Myw3ICszNjcsOCBAQCBzdGF0aWMgdm9pZCBzZXRQaXhl
bEZvcm1hdChWZWN0b3I8Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1dGU+JiBhdHRyaWJzLCBpbnQgY29s
b3JCaQogICAgICAgICAKICAgICBhdHRyaWJzLmFwcGVuZChzdGF0aWNfY2FzdDxDR0xQaXhlbEZv
cm1hdEF0dHJpYnV0ZT4oMCkpOwogfQotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisKKyNlbmRp
ZiAvLyBVU0UoT1BFTkdMKQogCiBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29u
dGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2lu
ZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5
bGUpCiB7CkBAIC00MDIsNyArNDA3LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICNlbmRp
ZgogICAgICwgbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlPih0aGlzKSkKIHsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTF9FUykKICAg
ICBFQUdMUmVuZGVyaW5nQVBJIGFwaSA9IG1fYXR0cnMudXNlR0xFUzMgPyBrRUFHTFJlbmRlcmlu
Z0FQSU9wZW5HTEVTMyA6IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMyOwogICAgIGlmICghc2hh
cmVkQ29udGV4dCkKICAgICAgICAgbV9jb250ZXh0T2JqID0gW1tFQUdMQ29udGV4dCBhbGxvY10g
aW5pdFdpdGhBUEk6YXBpXTsKQEAgLTQ1NiwxMiArNDYxLDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6
OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9z
dFdpbmQKIAogICAgIENHTEVycm9yIGVyciA9IENHTENyZWF0ZUNvbnRleHQocGl4ZWxGb3JtYXRP
YmosIHNoYXJlZENvbnRleHQgPyBzaGFyZWRDb250ZXh0LT5tX2NvbnRleHRPYmogOiBudWxscHRy
LCAmbV9jb250ZXh0T2JqKTsKICAgICBHTGludCBhYm9ydE9uQmxhY2tsaXN0ID0gMDsKLSNpZiBQ
TEFURk9STShNQUMpCiAgICAgQ0dMU2V0UGFyYW1ldGVyKG1fY29udGV4dE9iaiwga0NHTENQQWJv
cnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCwgJmFib3J0T25CbGFja2xpc3QpOwotI2Vs
aWYgUExBVEZPUk0oSU9TKQotICAgIENHTFNldFBhcmFtZXRlcihtX2NvbnRleHRPYmosIGtFQUdM
Q1BBYm9ydE9uR1BVUmVzdGFydFN0YXR1c0JsYWNrbGlzdGVkLCAmYWJvcnRPbkJsYWNrbGlzdCk7
Ci0jZW5kaWYKLQogICAgIENHTERlc3Ryb3lQaXhlbEZvcm1hdChwaXhlbEZvcm1hdE9iaik7CiAg
ICAgCiAgICAgaWYgKGVyciAhPSBrQ0dMTm9FcnJvciB8fCAhbV9jb250ZXh0T2JqKSB7CkBAIC00
NzUsNyArNDc1LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICAgICAvLyBTZXQgdGhlIGN1
cnJlbnQgY29udGV4dCB0byB0aGUgb25lIGdpdmVuIHRvIHVzLgogICAgIENHTFNldEN1cnJlbnRD
b250ZXh0KG1fY29udGV4dE9iaik7CiAKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQorI2VuZGlm
IC8vICFVU0UoT1BFTkdMX0VTKQogICAgIAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogCkBA
IC00ODcsMTMgKzQ4NywxMyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0Qo
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogI2VuZGlmCiAgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBVU0Uo
T1BFTkdMKQogICAgIGlmICh1c2VNdWx0aXNhbXBsaW5nKQogICAgICAgICA6OmdsRW5hYmxlKEdM
X01VTFRJU0FNUExFKTsKICNlbmRpZgogCiAgICAgLy8gQ3JlYXRlIHRoZSB0ZXh0dXJlIHRoYXQg
d2lsbCBiZSB1c2VkIGZvciB0aGUgZnJhbWVidWZmZXIuCi0jaWYgUExBVEZPUk0oSU9TKQorI2lm
IFVTRShPUEVOR0xfRVMpCiAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fdGV4dHVyZSk7
CiAjZWxzZQogICAgIDo6Z2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKQEAgLTU0Nyw3ICs1
NDcsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250
ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogCiAgICAgbV9jb21waWxlci5zZXRSZXNv
dXJjZXMoQU5HTEVSZXNvdXJjZXMpOwogICAgIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNF
KE9QRU5HTCkKICAgICA6OmdsRW5hYmxlKEdMX1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkUpOwog
ICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpKQogICAgICAgICA6OmdsRW5hYmxlKEdMX1BPSU5U
X1NQUklURSk7CkBAIC01NjMsNyArNTYzLDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGlj
c0NvbnRleHQzRCgpCiAgICAgbWFuYWdlcigpLnJlbW92ZUNvbnRleHQodGhpcyk7CiAKICAgICBp
ZiAobV9jb250ZXh0T2JqKSB7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMp
CiAgICAgICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgICAgICBbbV9jb250ZXh0T2JqIHJl
bmRlcmJ1ZmZlclN0b3JhZ2U6R0xfUkVOREVSQlVGRkVSIGZyb21EcmF3YWJsZTpuaWxdOwogICAg
ICAgICA6OmdsRGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV90ZXh0dXJlKTsKQEAgLTU4MSw3ICs1
ODEsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAg
ICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVmZmVyc0VYVCgxLCAmbV9kZXB0aFN0ZW5jaWxCdWZm
ZXIpOwogICAgICAgICB9CiAgICAgICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1f
ZmJvKTsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTF9FUykKICAgICAgICAgW0VB
R0xDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OjBdOwogICAgICAgICBbc3RhdGljX2Nhc3Q8RUFH
TENvbnRleHQqPihtX2NvbnRleHRPYmopIHJlbGVhc2VdOwogI2Vsc2UKQEAgLTU5NCw3ICs1OTQs
NyBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICBMT0coV2Vi
R0wsICJEZXN0cm95ZWQgYSBHcmFwaGljc0NvbnRleHQzRCAoJXApLiIsIHRoaXMpOwogfQogCi0j
aWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKEdDM0RzaXplaSB3aWR0aCwg
R0MzRHNpemVpIGhlaWdodCkKIHsKICAgICAvLyBXZSBuZWVkIHRvIG1ha2UgYSBjYWxsIHRvIHNl
dEJvdW5kcyBiZWxvdyB0byB1cGRhdGUgdGhlIGJhY2tpbmcgc3RvcmUgc2l6ZSBidXQgd2UgYWxz
bwpAQCAtNjE1LDcgKzYxNSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0
Q3VycmVudCgpCiAgICAgaWYgKCFtX2NvbnRleHRPYmopCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQogICAgIGlmIChbRUFHTENv
bnRleHQgY3VycmVudENvbnRleHRdICE9IG1fY29udGV4dE9iaikKICAgICAgICAgcmV0dXJuIFtF
QUdMQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDpzdGF0aWNfY2FzdDxFQUdMQ29udGV4dCo+KG1f
Y29udGV4dE9iaildOwogI2Vsc2UKQEAgLTYzMiw3ICs2MzIsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiAgICAgICAgIExPRyhXZWJHTCwgIlByZXRlbmRpbmcg
dGhlIEdQVSBoYXMgcmVzZXQgKCVwKS4gTG9zZSB0aGUgY29udGV4dC4iLCB0aGlzKTsKICAgICAg
ICAgbV9mYWlsTmV4dFN0YXR1c0NoZWNrID0gZmFsc2U7CiAgICAgICAgIGZvcmNlQ29udGV4dExv
c3QoKTsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICAgICAgQ0dMU2V0
Q3VycmVudENvbnRleHQoMCk7CiAjZWxzZQogICAgICAgICBbRUFHTENvbnRleHQgc2V0Q3VycmVu
dENvbnRleHQ6MF07CkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
Y2hlY2tHUFVTdGF0dXMoKQogICAgIG1fc3RhdHVzQ2hlY2tDb3VudCA9IChtX3N0YXR1c0NoZWNr
Q291bnQgKyAxKSAlIHN0YXR1c0NoZWNrVGhyZXNob2xkOwogCiAgICAgR0xpbnQgcmVzdGFydFN0
YXR1cyA9IDA7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAgICAgQ0dMR2V0
UGFyYW1ldGVyKHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwga0NHTENQR1BVUmVzdGFydFN0
YXR1cywgJnJlc3RhcnRTdGF0dXMpOwogICAgIGlmIChyZXN0YXJ0U3RhdHVzID09IGtDR0xDUEdQ
VVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCkgewogICAgICAgICBMT0coV2ViR0wsICJUaGUgR1BV
IGhhcyBibGFja2xpc3RlZCB1cyAoJXApLiBUZXJtaW5hdGluZy4iLCB0aGlzKTsKQEAgLTY2OSw3
ICs2NjksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiAjZW5k
aWYKIH0KIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQogdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6cHJlc2VudFJlbmRlcmJ1ZmZlcigpCiB7CiAgICAgbWFrZUNvbnRleHRD
dXJyZW50KCk7CkBAIC02ODUsOSArNjg1LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJl
c2VudFJlbmRlcmJ1ZmZlcigpCiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlSU9T
dXJmYWNlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRHNp
emVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5
cGUsIElPU3VyZmFjZVJlZiBzdXJmYWNlLCBHQzNEdWludCBwbGFuZSkKIHsKLSNpZiBQTEFURk9S
TShNQUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICByZXR1cm4ga0NHTE5vRXJyb3IgPT0gQ0dMVGV4
SW1hZ2VJT1N1cmZhY2UyRChwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIHRhcmdldCwgaW50
ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3VyZmFjZSwgcGxhbmUp
OwotI2VsaWYgUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKyNlbGlm
IFVTRShPUEVOR0xfRVMpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQogICAgIHJldHVybiBb
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIHRleEltYWdlSU9TdXJmYWNlOnN1cmZhY2UgdGFy
Z2V0OnRhcmdldCBpbnRlcm5hbEZvcm1hdDppbnRlcm5hbEZvcm1hdCB3aWR0aDp3aWR0aCBoZWln
aHQ6aGVpZ2h0IGZvcm1hdDpmb3JtYXQgdHlwZTp0eXBlIHBsYW5lOnBsYW5lXTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7CkBAIC03MDIsNyArNzAyLDcgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHQzRDo6dGV4SW1hZ2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IGludGVybmFsRm8KICNlbmRpZgogfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVO
R0wpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9y
ZShJbnRTaXplIHNpemUpCiB7CiAgICAgTE9HKFdlYkdMLCAiR3JhcGhpY3NDb250ZXh0M0Q6OmFs
bG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlIGF0ICVkIHggJWQuICglcCkiLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCksIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IDViNGI1MTg0MDFlZTk5Y2NlYTdj
YjE2ZThjMDkyZGJjY2QwZmNjN2EuLjEyMzFkZmU4NjUxOGQ0YTJkNzg5NDAwODc1NzIwNjE2ZjQz
NzZmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJHTExheWVyLmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDNEOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShP
UEVOR0wpCiBAaW50ZXJmYWNlIFdlYkdMTGF5ZXIgOiBDQUxheWVyCiAjZWxzZQogQGludGVyZmFj
ZSBXZWJHTExheWVyIDogQ0FFQUdMTGF5ZXIKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0M0Q7CiB7CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIF9jb250ZXh0
OwogICAgIGZsb2F0IF9kZXZpY2VQaXhlbFJhdGlvOwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBV
U0UoT1BFTkdMKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IF9jb250
ZW50c0J1ZmZlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBfZHJh
d2luZ0J1ZmZlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBfc3Bh
cmVCdWZmZXI7CkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCiAt
IChDR0ltYWdlUmVmKWNvcHlJbWFnZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29sb3JTcGFj
ZVJlZiljb2xvclNwYWNlOwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAt
ICh2b2lkKWFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6KFdlYkNvcmU6Oklu
dFNpemUpc2l6ZSB1c2luZ0FscGhhOihCT09MKXVzaW5nQWxwaGE7CiAtICh2b2lkKWJpbmRGcmFt
ZWJ1ZmZlclRvTmV4dEF2YWlsYWJsZVN1cmZhY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IGEzMDRk
OWZlNDQwYTdkNmU3MzI0OTZjMWZmYjYwZTYwZDFkYzRmZjQuLjg5MTc2OGNhMjFmYzkyNjE3ZmVm
MzlmM2VjY2QxMTI5ODg4ZThhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpAQCAtMzcsNyArMzcsNyBAQAogI2ltcG9y
dCA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBM
QVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogI2ltcG9ydCA8T3BlbkdML09wZW5HTC5oPgog
I2ltcG9ydCA8T3BlbkdML2dsLmg+CiAjZW5kaWYKQEAgLTUzLDcgKzUzLDcgQEAgLShpZClpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOihHcmFwaGljc0NvbnRleHQzRCopY29udGV4dAogICAgIF9j
b250ZXh0ID0gY29udGV4dDsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIF9kZXZpY2VQ
aXhlbFJhdGlvID0gY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5kZXZpY2VQaXhlbFJh
dGlvOwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogICAgIHNlbGYuY29udGVu
dHNPcGFxdWUgPSAhY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsKICAgICBz
ZWxmLnRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RJZGVudGl0eTsKICAgICBzZWxmLmNvbnRlbnRz
U2NhbGUgPSBfZGV2aWNlUGl4ZWxSYXRpbzsKQEAgLTYzLDcgKzYzLDcgQEAgLShpZClpbml0V2l0
aEdyYXBoaWNzQ29udGV4dDNEOihHcmFwaGljc0NvbnRleHQzRCopY29udGV4dAogICAgIHJldHVy
biBzZWxmOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAvLyBPbiBN
YWMsIHdlIG5lZWQgdG8gZmxpcCB0aGUgbGF5ZXIgdG8gdGFrZSBpbnRvIGFjY291bnQKIC8vIHRo
YXQgdGhlIElPU3VyZmFjZSBwcm92aWRlcyBjb250ZW50IGluIFktdXAuIFRoaXMKIC8vIG1lYW5z
IHRoYXQgYW55IGluY29taW5nIHRyYW5zZm9ybSAodW5saWtlbHksIHNpbmNlIHRoaXMKQEAgLTky
LDEwICs5Miw3IEBAIC0oQ0dJbWFnZVJlZiljb3B5SW1hZ2VTbmFwc2hvdFdpdGhDb2xvclNwYWNl
OihDR0NvbG9yU3BhY2VSZWYpY29sb3JTcGFjZQogICAgIGlmICghX2NvbnRleHQpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIFVOVVNFRF9QQVJBTShj
b2xvclNwYWNlKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbHNlCisjaWYgVVNFKE9QRU5HTCkK
ICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChfY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQzRCgpKTsKIAogICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGltYWdlQ29sb3JTcGFj
ZSA9IGNvbG9yU3BhY2U7CkBAIC0xMjEsNiArMTE4LDkgQEAgLShDR0ltYWdlUmVmKWNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29sb3JTcGFjZVJlZiljb2xvclNwYWNlCiAgICAg
ICAgIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIz
Mkhvc3QsIHByb3ZpZGVyLCAwLCB0cnVlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KTsKICAg
ICBDR0RhdGFQcm92aWRlclJlbGVhc2UocHJvdmlkZXIpOwogICAgIHJldHVybiBpbWFnZTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKGNvbG9yU3BhY2UpOworICAgIHJldHVybiBudWxscHRyOwog
I2VuZGlmCiB9CiAKQEAgLTEyOSw3ICsxMjksNyBAQCAtICh2b2lkKWRpc3BsYXkKICAgICBpZiAo
IV9jb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNF
KE9QRU5HTCkKICAgICBfY29udGV4dC0+cHJlcGFyZVRleHR1cmUoKTsKICAgICBpZiAoX2RyYXdp
bmdCdWZmZXIpIHsKICAgICAgICAgc3RkOjpzd2FwKF9jb250ZW50c0J1ZmZlciwgX2RyYXdpbmdC
dWZmZXIpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIC0gKHZvaWQpZGlzcGxheQogICAgICAgICBsYXll
ci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyKTsKIH0KIAot
I2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogLSAodm9pZClhbGxvY2F0ZUlPU3Vy
ZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOihJbnRTaXplKXNpemUgdXNpbmdBbHBoYTooQk9PTCl1
c2luZ0FscGhhCiB7CiAgICAgX2J1ZmZlclNpemUgPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvR3JhcGhpY3NDb250ZXh0M0RJT1Mu
aAppbmRleCAwMThjZjE5NTNkZTUxZjNjNzcxZWMwZDIwMmE2OGRjN2I5MGVkNDE0Li5mOGVlMTAz
MTg2YzgwOWQyNmExMTBkMmVmOGMwODA2NzAzMzZjM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvR3JhcGhpY3NDb250ZXh0M0RJT1MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvR3JhcGhpY3NDb250ZXh0M0RJT1Mu
aApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIFBMQVRGT1JNKElPUykK
KyNpZiBVU0UoT1BFTkdMX0VTKQogCiAjZGVmaW5lIGdsQmluZEZyYW1lYnVmZmVyRVhUIGdsQmlu
ZEZyYW1lYnVmZmVyCiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZlckVYVCBnbEJpbmRSZW5kZXJi
dWZmZXIKQEAgLTcxLDQgKzcxLDQgQEAKICNkZWZpbmUgR0xfU1RFTkNJTF9BVFRBQ0hNRU5UX0VY
VCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQKICNkZWZpbmUgR0xfVU5TSUdORURfSU5UXzhfOF84Xzhf
UkVWIEdMX1VOU0lHTkVEX0JZVEUKIAotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKyNlbmRpZiAv
LyBVU0UoT1BFTkdMX0VTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAppbmRleCBlMDVkZWMx
Y2RiOTBkMmMyMDgwMThlNGJiZGVjNDYzZDJhMDIwOWY3Li40YWY0MGVkYmY0MzI2ZThjOGViNmY2
MmU3ZTJjNjE3ZGQ3Y2VmNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcApAQCAtMzEs
MTIgKzMxLDEyIEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogCi0jaWYgUExB
VEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUg
Ik9wZW5HTFNoaW1zLmgiCisjZWxpZiBVU0UoT1BFTkdMX0VTKQogI2luY2x1ZGUgPE9wZW5HTEVT
L0VTMi9nbGV4dC5oPgotI2VsaWYgUExBVEZPUk0oTUFDKQorI2VsaWYgVVNFKE9QRU5HTCkKICNp
bmNsdWRlIDxPcGVuR0wvZ2wuaD4KLSNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lO
KQotI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykK
QEAgLTU1LDcgKzU1LDcgQEAgRXh0ZW5zaW9uczNET3BlbkdMOjp+RXh0ZW5zaW9uczNET3BlbkdM
KCkgPSBkZWZhdWx0OwogCiB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6YmxpdEZyYW1lYnVmZmVy
KGxvbmcgc3JjWDAsIGxvbmcgc3JjWTAsIGxvbmcgc3JjWDEsIGxvbmcgc3JjWTEsIGxvbmcgZHN0
WDAsIGxvbmcgZHN0WTAsIGxvbmcgZHN0WDEsIGxvbmcgZHN0WTEsIHVuc2lnbmVkIGxvbmcgbWFz
aywgdW5zaWduZWQgbG9uZyBmaWx0ZXIpCiB7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQogICAgIFVOVVNFRF9QQVJBTShzcmNYMCk7CiAg
ICAgVU5VU0VEX1BBUkFNKHNyY1kwKTsKICAgICBVTlVTRURfUEFSQU0oc3JjWDEpOwpAQCAtODEs
NyArODEsNyBAQCBQbGF0Zm9ybTNET2JqZWN0IEV4dGVuc2lvbnMzRE9wZW5HTDo6Y3JlYXRlVmVy
dGV4QXJyYXlPRVMoKQogewogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgR0x1aW50IGFycmF5ID0gMDsKLSNpZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4p
IHx8IFBMQVRGT1JNKElPUykpCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8
IChQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykpCiAgICAgaWYgKGlzVmVydGV4QXJy
YXlPYmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAgZ2xHZW5WZXJ0ZXhBcnJheXMoMSwgJmFycmF5
KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xfQVBQ
TEVfdmVydGV4X2FycmF5X29iamVjdApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEV4dGVuc2lvbnMz
RE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKLSNp
ZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKElPUykpCisjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNF
KE9QRU5HTF9FUykpCiAgICAgaWYgKGlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAg
ICAgICAgZ2xEZWxldGVWZXJ0ZXhBcnJheXMoMSwgJmFycmF5KTsKICNlbGlmIGRlZmluZWQoR0xf
QVBQTEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVj
dApAQCAtMTEwLDcgKzExMCw3IEBAIEdDM0Rib29sZWFuIEV4dGVuc2lvbnMzRE9wZW5HTDo6aXNW
ZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0IGFycmF5KQogICAgICAgICByZXR1cm4gR0xf
RkFMU0U7CiAKICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotI2lmIChQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oSU9TKSkKKyNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdM
X0VTKSkKICAgICBpZiAoaXNWZXJ0ZXhBcnJheU9iamVjdFN1cHBvcnRlZCgpKQogICAgICAgICBy
ZXR1cm4gZ2xJc1ZlcnRleEFycmF5KGFycmF5KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVy
dGV4X2FycmF5X29iamVjdCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdApAQCAtMTIy
LDcgKzEyMiw3IEBAIEdDM0Rib29sZWFuIEV4dGVuc2lvbnMzRE9wZW5HTDo6aXNWZXJ0ZXhBcnJh
eU9FUyhQbGF0Zm9ybTNET2JqZWN0IGFycmF5KQogdm9pZCBFeHRlbnNpb25zM0RPcGVuR0w6OmJp
bmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0IGFycmF5KQogewogICAgIG1fY29udGV4
dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0jaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V0lOKSB8fCBQTEFURk9STShJT1MpKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lO
KSB8fCAoUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpKQogICAgIGlmIChpc1ZlcnRl
eEFycmF5T2JqZWN0U3VwcG9ydGVkKCkpCiAgICAgICAgIGdsQmluZFZlcnRleEFycmF5KGFycmF5
KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xfQVBQ
TEVfdmVydGV4X2FycmF5X29iamVjdApAQCAtMjk4LDcgKzI5OCw3IEBAIFN0cmluZyBFeHRlbnNp
b25zM0RPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQogICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQog
Ci0jaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShJT1MpKQor
I2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oQ09DT0EpICYm
IFVTRShPUEVOR0xfRVMpKQogYm9vbCBFeHRlbnNpb25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlP
YmplY3RTdXBwb3J0ZWQoKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHN1cHBvcnRzVmVydGV4
QXJyYXlPYmplY3QgPSBzdXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zM0RPcGVuR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0wuaAppbmRleCBjYjkzNzQzZGQ5OGY4MjI3MzEyMDQwMjQwZGRmMDZm
NjU2MGQ3YmYxLi40NTI1MDhhNTMxZGFhMjBkOGFkOWQ5OTFmYmE5NDg1YmM5OTQzZWNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnMzRE9wZW5HTC5oCkBAIC02MSw3ICs2MSw3IEBAIHByb3RlY3RlZDoKICAgICBT
dHJpbmcgZ2V0RXh0ZW5zaW9ucygpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotI2lmIChQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oSU9TKSkKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VT
KSkKICAgICBib29sIGlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKTsKICNlbmRpZgogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCmluZGV4IDRjZTYxZDI1MTY3MTRh
ZDk3YTAzZmE3Y2E5ZmE5MWZhMDVkOTBlMzUuLmE2ZmZmZDAxMjgwZmU2Y2ZlNzE1MDJiODI4OGNl
YTllOGY1ODZiYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcApAQCAt
NDcsMTggKzQ3LDE4IEBACiAjaW5jbHVkZSA8QWNjZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJ
TikKKyNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgorI2VsaWYgVVNFKE9QRU5HTF9FUykKICNpbXBv
cnQgPE9wZW5HTEVTL0VTMi9nbGV4dC5oPgogLy8gRnJvbSA8T3BlbkdMRVMvZ2xleHQuaD4KICNk
ZWZpbmUgR0xfUkdCQTMyRl9BUkIgICAgICAgICAgICAgICAgICAgICAgMHg4ODE0CiAjZGVmaW5l
IEdMX1JHQjMyRl9BUkIgICAgICAgICAgICAgICAgICAgICAgIDB4ODgxNQotI2VsaWYgUExBVEZP
Uk0oTUFDKQorI2VsaWYgVVNFKE9QRU5HTCkKICNkZWZpbmUgR0xfRE9fTk9UX1dBUk5fSUZfTVVM
VElfR0xfVkVSU0lPTl9IRUFERVJTX0lOQ0xVREVECiAjaW5jbHVkZSA8T3BlbkdML2dsLmg+CiAj
aW5jbHVkZSA8T3BlbkdML2dsMy5oPgogI3VuZGVmIEdMX0RPX05PVF9XQVJOX0lGX01VTFRJX0dM
X1ZFUlNJT05fSEVBREVSU19JTkNMVURFRAotI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXSU4pCi0jaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0xNDEsNyArMTQxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFw
ZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9y
dHMoIkdMX0VYVF9wYWNrZWRfZGVwdGhfc3RlbmNpbCIpKQogICAgICAgICAgICAgaW50ZXJuYWxE
ZXB0aFN0ZW5jaWxGb3JtYXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X0VYVDsKICAgICAgICAgZWxz
ZQotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9F
UykKICAgICAgICAgICAgIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEhfQ09N
UE9ORU5UMTY7CiAjZWxzZQogICAgICAgICAgICAgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQg
PSBHTF9ERVBUSF9DT01QT05FTlQ7CkBAIC0xNTcsNyArMTU3LDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgR0xpbnQg
c2FtcGxlQ291bnQgPSBzdGQ6Om1pbig0LCBtYXhTYW1wbGVDb3VudCk7CiAgICAgICAgIDo6Z2xC
aW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRkJPKTsK
ICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9t
dWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0o
Q09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdl
TXVsdGlzYW1wbGVFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2FtcGxlQ291bnQsIEdMX1JHQkE4
X09FUywgd2lkdGgsIGhlaWdodCk7CiAjZWxzZQogICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3Rv
cmFnZU11bHRpc2FtcGxlRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIHNhbXBsZUNvdW50LCBtX2lu
dGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwpAQCAtMTgxLDE0ICsxODEsMTYgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
ICAgICAvLyByZXNpemUgcmVndWxhciBGQk8KICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdM
X0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8pOwogICAgIEFTU0VSVChtX3RleHR1cmUpOwotI2lmIFBM
QVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpZiBVU0UoT1BFTkdMX0VTKQogICAg
IDo6Z2xCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV90ZXh0dXJlKTsKICAgICA6
OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFD
SE1FTlQwLCBHTF9SRU5ERVJCVUZGRVIsIG1fdGV4dHVyZSk7CiAgICAgc2V0UmVuZGVyYnVmZmVy
U3RvcmFnZUZyb21EcmF3YWJsZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KTsKLSNl
bGlmIFBMQVRGT1JNKE1BQykKKyNlbHNlCiAgICAgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3Rv
cmUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CiAgICAgdXBkYXRlRnJhbWVidWZmZXJUZXh0dXJl
QmFja2luZ1N0b3JlRnJvbUxheWVyKCk7CiAgICAgOjpnbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhU
KEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfQ09MT1JfQVRUQUNITUVOVDBfRVhULCBHTF9URVhUVVJF
X1JFQ1RBTkdMRV9BUkIsIG1fdGV4dHVyZSwgMCk7CisjZW5kaWYgLy8gIVVTRShPUEVOR0xfRVMp
KQogI2Vsc2UKICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsK
ICAgICA6OmdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBtX2ludGVybmFsQ29sb3JGb3Jt
YXQsIHdpZHRoLCBoZWlnaHQsIDAsIGNvbG9yRm9ybWF0LCBHTF9VTlNJR05FRF9CWVRFLCAwKTsK
QEAgLTI0NiwxNCArMjQ4LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc29sdmVNdWx0
aXNhbXBsaW5nSWZOZWNlc3NhcnkoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBUZW1wb3JhcnlP
cGVuR0xTZXR0aW5nIHNjb3BlZERlcHRoKEdMX0RFUFRIX1RFU1QsIEdMX0ZBTFNFKTsKICAgICBU
ZW1wb3JhcnlPcGVuR0xTZXR0aW5nIHNjb3BlZFN0ZW5jaWwoR0xfU1RFTkNJTF9URVNULCBHTF9G
QUxTRSk7CiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShP
UEVOR0xfRVMpCiAgICAgR0xpbnQgYm91bmRGcmFtZUJ1ZmZlcjsKICAgICA6OmdsR2V0SW50ZWdl
cnYoR0xfRlJBTUVCVUZGRVJfQklORElORywgJmJvdW5kRnJhbWVCdWZmZXIpOwogI2VuZGlmCiAK
ICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX1JFQURfRlJBTUVCVUZGRVJfRVhULCBtX211
bHRpc2FtcGxlRkJPKTsKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0RSQVdfRlJBTUVC
VUZGRVJfRVhULCBtX2Zibyk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBVU0UoT1BFTkdMX0VTKQogICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKICAgICA6OmdsRmx1
c2goKTsKICAgICA6OmdsUmVzb2x2ZU11bHRpc2FtcGxlRnJhbWVidWZmZXJBUFBMRSgpOwpAQCAt
MjcyLDcgKzI3NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc29sdmVNdWx0aXNhbXBs
aW5nSWZOZWNlc3NhcnkoY29uc3QgSW50UmVjdCYgcmVjdCkKIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5h
bGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogewogICAgIG1ha2VD
b250ZXh0Q3VycmVudCgpOwotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTCkKICAg
ICBzd2l0Y2ggKGludGVybmFsZm9ybWF0KSB7CiAgICAgY2FzZSBERVBUSF9TVEVOQ0lMOgogICAg
ICAgICBpbnRlcm5hbGZvcm1hdCA9IEdMX0RFUFRIMjRfU1RFTkNJTDhfRVhUOwpAQCAtMzAwLDcg
KzMwMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVnZXJ2KEdDM0RlbnVtIHBu
YW1lLCBHQzNEaW50KiB2YWx1ZSkKICAgICAvLyBUaGVyZWZvcmUsIHRoZSB2YWx1ZSByZXR1cm5l
ZCBieSBkZXNrdG9wIEdMIG5lZWRzIHRvIGJlIGRpdmlkZWQgYnkgNC4KICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKICAgICBzd2l0Y2ggKHBuYW1lKSB7Ci0jaWYgIVBMQVRGT1JNKElPUykKKyNp
ZiBVU0UoT1BFTkdMKQogICAgIGNhc2UgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUzoKICAg
ICAgICAgOjpnbEdldEludGVnZXJ2KEdMX01BWF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMs
IHZhbHVlKTsKICAgICAgICAgKnZhbHVlIC89IDQ7CkBAIC0zOTIsNyArMzk0LDcgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RlbnVtIGludGUKIAogICAgIEdDM0RlbnVtIG9wZW5HTEZvcm1hdCA9IGZvcm1hdDsK
ICAgICBHQzNEZW51bSBvcGVuR0xJbnRlcm5hbEZvcm1hdCA9IGludGVybmFsZm9ybWF0OwotI2lm
ICFQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTCkKICAgICBpZiAodHlwZSA9PSBHTF9GTE9B
VCkgewogICAgICAgICBpZiAoZm9ybWF0ID09IEdMX1JHQkEpCiAgICAgICAgICAgICBvcGVuR0xJ
bnRlcm5hbEZvcm1hdCA9IEdMX1JHQkEzMkZfQVJCOwpAQCAtNDUyLDcgKzQ1NCw3IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxl
dmVsLCBHQzNEZW51bSBpbnRlCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aFJhbmdlKEdD
M0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikKIHsKICAgICBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVO
R0xfRVMpCiAgICAgOjpnbERlcHRoUmFuZ2VmKHN0YXRpY19jYXN0PGZsb2F0Pih6TmVhciksIHN0
YXRpY19jYXN0PGZsb2F0Pih6RmFyKSk7CiAjZWxzZQogICAgIDo6Z2xEZXB0aFJhbmdlKHpOZWFy
LCB6RmFyKTsKQEAgLTQ2Miw3ICs0NjQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0
aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmNsZWFyRGVwdGgoR0MzRGNsYW1wZiBkZXB0aCkKIHsKICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVT
RShPUEVOR0xfRVMpCiAgICAgOjpnbENsZWFyRGVwdGhmKHN0YXRpY19jYXN0PGZsb2F0PihkZXB0
aCkpOwogI2Vsc2UKICAgICA6OmdsQ2xlYXJEZXB0aChkZXB0aCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCA1NDcyNzRmZmE2OGE1MmU0NWUw
ZDcyZDI4YjJhMTM5YzZmNWIwYjFkLi41YmRkNjYzMDc1OWFlYzM3MmNjNDYzNWI3YzQ0MTcxOTU2
YjkyMTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAKQEAgLTE4Niw3ICsxODYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRl
cmluZ1Jlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiAKICAgICBwYWlu
dFRvQ2FudmFzKHBpeGVscy5nZXQoKSwgSW50U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50
SGVpZ2h0KSwgaW1hZ2VCdWZmZXItPmludGVybmFsU2l6ZSgpLCBpbWFnZUJ1ZmZlci0+Y29udGV4
dCgpKTsKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKE9Q
RU5HTF9FUykKICAgICBwcmVzZW50UmVuZGVyYnVmZmVyKCk7CiAjZW5kaWYKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336251</attachid>
            <date>2018-03-21 18:13:12 -0700</date>
            <delta_ts>2018-03-21 23:17:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183882-20180321181311.patch</filename>
            <type>text/plain</type>
            <size>27783</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ0ZmRmZjg1YWM0ZDJkZWM4M2VhNGM3
N2Q5MWMyNGZmOGE1MWZhZTMuLjI3YzRkM2ZhNGIzYmJhZWM3MzM4NjYzNDk4ZGVlYTgyZTMxMzEx
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDMtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVVNFKE9QRU5HTFtfRVNdKSBpbiBt
b3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzODgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzkxMjE5NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgor
CiAyMDE4LTAzLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEludHJvZHVjZSBIQVZFX01FRElBX1BMQVlFUiBhbmQgSEFWRV9DT1JFX1ZJREVPCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMDdjOWJjZWFjYjcxYWJiZTU5NzU3Y2EyY2RlNmUyMmNlNGJiOTFhZi4uZDZh
NmU4MzY4Y2ZjY2IxZjAxYzAxNjY3ZGQ2OGY4YmMwMTc5YTAxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ0IEBACisyMDE4LTAzLTIxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0IFVTRShPUEVOR0xbX0VTXSkgaW4gbW9yZSBwbGFjZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzg4MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzc5MTIxOTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dDNEQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpoYXNNdXhhYmxlR1BVKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6dXBkYXRlSGlnaFBlcmZvcm1hbmNl
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3ND
b250ZXh0M0QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250
ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tH
UFVTdGF0dXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdl
SU9TdXJmYWNlMkQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tOgor
ICAgICAgICAoLVtXZWJHTExheWVyIGluaXRXaXRoR3JhcGhpY3NDb250ZXh0M0Q6XSk6CisgICAg
ICAgICgtW1dlYkdMTGF5ZXIgY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTpdKToKKyAg
ICAgICAgKC1bV2ViR0xMYXllciBkaXNwbGF5XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RPcGVuR0w6OmJsaXRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
bnNpb25zM0RPcGVuR0w6OmNyZWF0ZVZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6
OkV4dGVuc2lvbnMzRE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2Vi
Q29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjppc1ZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6YmluZFZlcnRleEFycmF5T0VTKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5l
Y2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVuZGVyYnVm
ZmVyU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW50
ZWdlcnYpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorCiAyMDE4LTAzLTIxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzY29ubmVjdCB0aGUgU1ZHUGF0aFNlZ0xp
c3QgaXRlbXMgZnJvbSB0aGVpciBTVkdQYXRoRWxlbWVudCBiZWZvcmUgcmVidWlsZGluZyBhIG5l
dyBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaAppbmRleCAwOTUyN2Y1NTYwOGQwMmE4Mjk1YzE4OTFjZWMxNTQyNWFj
NjgwMDU4Li5kYTRiOTBhNmZjZjBjZjU4ODk1MzY3YWUzMTBjOTQyNDY1MmI5Y2U2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKQEAgLTExNTEsNiArMTE1MSw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
KyNkZWZpbmUgSEFWRV9BUFBMRV9HUkFQSElDU19DT05UUk9MIDEKICNkZWZpbmUgVVNFX0NPUkVB
VURJTyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCmluZGV4IDMyMmJlZDBiOGM1NzlmYzk1MWZiNjU2
MTI3Nzg0YzhiMDM0MDg0MGYuLmM3YjM3NGQyMTA1ZjhlYmI0YWY4NmRlNGZjYmU5NzhiMDZkMTlh
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5jcHAKQEAgLTY1Niw3ICs2NTYsNyBAQCB1bnNpZ25lZCBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdChHQzNEZW51bSBmb3JtYXQpCiAgICAgfQog
fQogCi0jaWYgIVBMQVRGT1JNKE1BQykKKyNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BF
TkdMKSkKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAppbmRleCAyZTc0ODc5ZDhkMmM2MmI2MGI0MTJjZDhhMjMyYzQyMzkyMzhh
NjlkLi44OTQ0Yzc3MDJiMTU5OTdiNzFhYTVhMzhlNDYxYTgzOTM1N2Y5YjU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
QEAgLTExNDQsMTcgKzExNDQsMTcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgYm9vbCB0ZXhJbWFnZUlPU3VyZmFjZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50
ZXJuYWxGb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0g
Zm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYsIEdDM0R1aW50IHBsYW5lKTsKLSNl
bmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgdm9pZCBw
cmVzZW50UmVuZGVyYnVmZmVyKCk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBV
U0UoT1BFTkdMKQogICAgIHZvaWQgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUoSW50U2l6
ZSk7CiAgICAgdm9pZCB1cGRhdGVGcmFtZWJ1ZmZlclRleHR1cmVCYWNraW5nU3RvcmVGcm9tTGF5
ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNHTENvbnRleHQoKTsKICNlbmRpZgorI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQogCiAgICAgdm9pZCBzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0M0RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KaW5kZXggYTBjMjZlNGQ4MTJmZWViMmM5YmUx
ZjZlODY2ODBiMWUzY2JkZDM0OS4uM2JhZWUzYThmMGMxNzYyNzQ1MDJhMDdhNWM4NTgyNDY0OTJk
NTUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCkBAIC00Nyw3ICs0Nyw3IEBA
CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAjaW1w
b3J0IDxPcGVuR0xFUy9FQUdMLmg+CiAjaW1wb3J0IDxPcGVuR0xFUy9FQUdMRHJhd2FibGUuaD4K
ICNpbXBvcnQgPE9wZW5HTEVTL0VBR0xJT1N1cmZhY2UuaD4KQEAgLTY0LDcgKzY0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgc3RhdHVzQ2hlY2tUaHJl
c2hvbGQgPSA1OwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIEhBVkUoQVBQTEVfR1JBUEhJQ1Nf
Q09OVFJPTCkKIAogZW51bSB7CiAgICAga0FHQ09wZW4sCkBAIC0xMzcsNyArMTM3LDYgQEAgc3Rh
dGljIGJvb2wgaGFzTXV4YWJsZUdQVSgpCiAgICAgc3RhdGljIGJvb2wgY2FuTXV4ID0gaGFzTXV4
Q2FwYWJpbGl0eSgpOwogICAgIHJldHVybiBjYW5NdXg7CiB9Ci0KICNlbmRpZgogCiBjb25zdCB1
bnNpZ25lZCBNYXhDb250ZXh0cyA9IDE2OwpAQCAtMTY5LDcgKzE2OCw3IEBAIHByaXZhdGU6CiAK
ICAgICBUaW1lciBtX2Rpc2FibGVIaWdoUGVyZm9ybWFuY2VHUFVUaW1lcjsKIAotI2lmIFBMQVRG
T1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogICAgIENHTFBpeGVsRm9ybWF0T2JqIG1fcGl4ZWxG
b3JtYXRPYmogeyBudWxscHRyIH07CiAjZW5kaWYKIH07CkBAIC0zMTUsNyArMzE0LDcgQEAgcHVi
bGljOgogICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKSB7IH0KIH07CiAKLSNpZiBQTEFU
Rk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKIAogc3RhdGljIHZvaWQgc2V0UGl4ZWxGb3JtYXQo
VmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPiYgYXR0cmlicywgaW50IGNvbG9yQml0cywg
aW50IGRlcHRoQml0cywgYm9vbCBhY2NlbGVyYXRlZCwgYm9vbCBzdXBlcnNhbXBsZSwgYm9vbCBj
bG9zZXN0LCBib29sIGFudGlhbGlhcywgYm9vbCB1c2VHTEVTMykKIHsKQEAgLTMzMCw4ICszMjks
MTAgQEAgc3RhdGljIHZvaWQgc2V0UGl4ZWxGb3JtYXQoVmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0
cmlidXRlPiYgYXR0cmlicywgaW50IGNvbG9yQmkKICAgICAvLyBhbGxvd2luZyB1cyB0byByZXF1
ZXN0IHRoZSBpbnRlZ3JhdGVkIGdyYXBoaWNzIG9uIGEgZHVhbCBHUFUKICAgICAvLyBzeXN0ZW0s
IGFuZCBub3QgZm9yY2UgdGhlIGRpc2NyZXRlIEdQVS4KICAgICAvLyBTZWUgaHR0cHM6Ly9kZXZl
bG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvbWFjL3RlY2hub3Rlcy90bjIyMjkvX2luZGV4Lmh0bWwK
KyNpZiBIQVZFKEFQUExFX0dSQVBISUNTX0NPTlRST0wpCiAgICAgaWYgKGhhc011eGFibGVHUFUo
KSkKICAgICAgICAgYXR0cmlicy5hcHBlbmQoa0NHTFBGQUFsbG93T2ZmbGluZVJlbmRlcmVycyk7
CisjZW5kaWYKIAogICAgIGlmIChhY2NlbGVyYXRlZCkKICAgICAgICAgYXR0cmlicy5hcHBlbmQo
a0NHTFBGQUFjY2VsZXJhdGVkKTsKQEAgLTM2Myw3ICszNjQsOCBAQCBzdGF0aWMgdm9pZCBzZXRQ
aXhlbEZvcm1hdChWZWN0b3I8Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1dGU+JiBhdHRyaWJzLCBpbnQg
Y29sb3JCaQogICAgICAgICAKICAgICBhdHRyaWJzLmFwcGVuZChzdGF0aWNfY2FzdDxDR0xQaXhl
bEZvcm1hdEF0dHJpYnV0ZT4oMCkpOwogfQotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisKKyNl
bmRpZiAvLyBVU0UoT1BFTkdMKQogCiBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNz
Q29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0
V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVy
U3R5bGUpCiB7CkBAIC00MDIsNyArNDA0LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNz
Q29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICNl
bmRpZgogICAgICwgbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlPih0aGlzKSkKIHsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTF9FUykK
ICAgICBFQUdMUmVuZGVyaW5nQVBJIGFwaSA9IG1fYXR0cnMudXNlR0xFUzMgPyBrRUFHTFJlbmRl
cmluZ0FQSU9wZW5HTEVTMyA6IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMyOwogICAgIGlmICgh
c2hhcmVkQ29udGV4dCkKICAgICAgICAgbV9jb250ZXh0T2JqID0gW1tFQUdMQ29udGV4dCBhbGxv
Y10gaW5pdFdpdGhBUEk6YXBpXTsKQEAgLTQzMCw3ICs0MzIsMTEgQEAgR3JhcGhpY3NDb250ZXh0
M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywg
SG9zdFdpbmQKIAogICAgIGJvb2wgdXNlTXVsdGlzYW1wbGluZyA9IG1fYXR0cnMuYW50aWFsaWFz
OwogCisjaWYgSEFWRShBUFBMRV9HUkFQSElDU19DT05UUk9MKQogICAgIG1fcG93ZXJQcmVmZXJl
bmNlVXNlZEZvckNyZWF0aW9uID0gKGhhc011eGFibGVHUFUoKSAmJiBhdHRycy5wb3dlclByZWZl
cmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5j
ZSkgPyBHcmFwaGljc0NvbnRleHQzRFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlIDog
R3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQ7CisjZWxzZQorICAgIG1f
cG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9uID0gR3JhcGhpY3NDb250ZXh0M0RQb3dlclBy
ZWZlcmVuY2U6OkRlZmF1bHQ7CisjZW5kaWYKIAogICAgIHNldFBpeGVsRm9ybWF0KGF0dHJpYnMs
IDMyLCAzMiwgIWF0dHJzLmZvcmNlU29mdHdhcmVSZW5kZXJlciwgdHJ1ZSwgZmFsc2UsIHVzZU11
bHRpc2FtcGxpbmcsIGF0dHJzLnVzZUdMRVMzKTsKICAgICBDR0xDaG9vc2VQaXhlbEZvcm1hdChh
dHRyaWJzLmRhdGEoKSwgJnBpeGVsRm9ybWF0T2JqLCAmbnVtUGl4ZWxGb3JtYXRzKTsKQEAgLTQ1
NiwxMiArNDYyLDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKIAogICAgIENHTEVycm9yIGVy
ciA9IENHTENyZWF0ZUNvbnRleHQocGl4ZWxGb3JtYXRPYmosIHNoYXJlZENvbnRleHQgPyBzaGFy
ZWRDb250ZXh0LT5tX2NvbnRleHRPYmogOiBudWxscHRyLCAmbV9jb250ZXh0T2JqKTsKICAgICBH
TGludCBhYm9ydE9uQmxhY2tsaXN0ID0gMDsKLSNpZiBQTEFURk9STShNQUMpCiAgICAgQ0dMU2V0
UGFyYW1ldGVyKG1fY29udGV4dE9iaiwga0NHTENQQWJvcnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFj
a2xpc3RlZCwgJmFib3J0T25CbGFja2xpc3QpOwotI2VsaWYgUExBVEZPUk0oSU9TKQotICAgIENH
TFNldFBhcmFtZXRlcihtX2NvbnRleHRPYmosIGtFQUdMQ1BBYm9ydE9uR1BVUmVzdGFydFN0YXR1
c0JsYWNrbGlzdGVkLCAmYWJvcnRPbkJsYWNrbGlzdCk7Ci0jZW5kaWYKLQogICAgIENHTERlc3Ry
b3lQaXhlbEZvcm1hdChwaXhlbEZvcm1hdE9iaik7CiAgICAgCiAgICAgaWYgKGVyciAhPSBrQ0dM
Tm9FcnJvciB8fCAhbV9jb250ZXh0T2JqKSB7CkBAIC00NzUsNyArNDc2LDcgQEAgR3JhcGhpY3ND
b250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBh
dHRycywgSG9zdFdpbmQKICAgICAvLyBTZXQgdGhlIGN1cnJlbnQgY29udGV4dCB0byB0aGUgb25l
IGdpdmVuIHRvIHVzLgogICAgIENHTFNldEN1cnJlbnRDb250ZXh0KG1fY29udGV4dE9iaik7CiAK
LSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQorI2VuZGlmIC8vICFVU0UoT1BFTkdMX0VTKQogICAg
IAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogCkBAIC00ODcsMTMgKzQ4OCwxMyBAQCBHcmFw
aGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzIGF0dHJzLCBIb3N0V2luZAogI2VuZGlmCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMKQogICAgIGlmICh1c2VNdWx0
aXNhbXBsaW5nKQogICAgICAgICA6OmdsRW5hYmxlKEdMX01VTFRJU0FNUExFKTsKICNlbmRpZgog
CiAgICAgLy8gQ3JlYXRlIHRoZSB0ZXh0dXJlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgZnJh
bWVidWZmZXIuCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgOjpn
bEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fdGV4dHVyZSk7CiAjZWxzZQogICAgIDo6Z2xHZW5UZXh0
dXJlcygxLCAmbV90ZXh0dXJlKTsKQEAgLTU0Nyw3ICs1NDgsNyBAQCBHcmFwaGljc0NvbnRleHQz
RDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBI
b3N0V2luZAogCiAgICAgbV9jb21waWxlci5zZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJjZXMpOwog
ICAgIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTCkKICAgICA6OmdsRW5hYmxl
KEdMX1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkUpOwogICAgIGlmICghaXNHTEVTMkNvbXBsaWFu
dCgpKQogICAgICAgICA6OmdsRW5hYmxlKEdMX1BPSU5UX1NQUklURSk7CkBAIC01NjMsNyArNTY0
LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgbWFuYWdl
cigpLnJlbW92ZUNvbnRleHQodGhpcyk7CiAKICAgICBpZiAobV9jb250ZXh0T2JqKSB7Ci0jaWYg
UExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIG1ha2VDb250ZXh0Q3Vy
cmVudCgpOwogICAgICAgICBbbV9jb250ZXh0T2JqIHJlbmRlcmJ1ZmZlclN0b3JhZ2U6R0xfUkVO
REVSQlVGRkVSIGZyb21EcmF3YWJsZTpuaWxdOwogICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVm
ZmVycygxLCAmbV90ZXh0dXJlKTsKQEAgLTU4MSw3ICs1ODIsNyBAQCBHcmFwaGljc0NvbnRleHQz
RDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAgICAgICAgICA6OmdsRGVsZXRlUmVuZGVy
YnVmZmVyc0VYVCgxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAg
IDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fZmJvKTsKLSNpZiBQTEFURk9STShJT1Mp
CisjaWYgVVNFKE9QRU5HTF9FUykKICAgICAgICAgW0VBR0xDb250ZXh0IHNldEN1cnJlbnRDb250
ZXh0OjBdOwogICAgICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPihtX2NvbnRleHRPYmop
IHJlbGVhc2VdOwogI2Vsc2UKQEAgLTU5NCw3ICs1OTUsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6
fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICBMT0coV2ViR0wsICJEZXN0cm95ZWQgYSBHcmFwaGlj
c0NvbnRleHQzRCAoJXApLiIsIHRoaXMpOwogfQogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVT
RShPUEVOR0xfRVMpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9y
YWdlRnJvbURyYXdhYmxlKEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKICAg
ICAvLyBXZSBuZWVkIHRvIG1ha2UgYSBjYWxsIHRvIHNldEJvdW5kcyBiZWxvdyB0byB1cGRhdGUg
dGhlIGJhY2tpbmcgc3RvcmUgc2l6ZSBidXQgd2UgYWxzbwpAQCAtNjE1LDcgKzYxNiw3IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAgICAgaWYgKCFtX2Nv
bnRleHRPYmopCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKElPUykKKyNp
ZiBVU0UoT1BFTkdMX0VTKQogICAgIGlmIChbRUFHTENvbnRleHQgY3VycmVudENvbnRleHRdICE9
IG1fY29udGV4dE9iaikKICAgICAgICAgcmV0dXJuIFtFQUdMQ29udGV4dCBzZXRDdXJyZW50Q29u
dGV4dDpzdGF0aWNfY2FzdDxFQUdMQ29udGV4dCo+KG1fY29udGV4dE9iaildOwogI2Vsc2UKQEAg
LTYzMiw3ICs2MzMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygp
CiAgICAgICAgIExPRyhXZWJHTCwgIlByZXRlbmRpbmcgdGhlIEdQVSBoYXMgcmVzZXQgKCVwKS4g
TG9zZSB0aGUgY29udGV4dC4iLCB0aGlzKTsKICAgICAgICAgbV9mYWlsTmV4dFN0YXR1c0NoZWNr
ID0gZmFsc2U7CiAgICAgICAgIGZvcmNlQ29udGV4dExvc3QoKTsKLSNpZiBQTEFURk9STShNQUMp
CisjaWYgVVNFKE9QRU5HTCkKICAgICAgICAgQ0dMU2V0Q3VycmVudENvbnRleHQoMCk7CiAjZWxz
ZQogICAgICAgICBbRUFHTENvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6MF07CkBAIC02NDcsNyAr
NjQ4LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogICAgIG1f
c3RhdHVzQ2hlY2tDb3VudCA9IChtX3N0YXR1c0NoZWNrQ291bnQgKyAxKSAlIHN0YXR1c0NoZWNr
VGhyZXNob2xkOwogCiAgICAgR0xpbnQgcmVzdGFydFN0YXR1cyA9IDA7Ci0jaWYgUExBVEZPUk0o
TUFDKQorI2lmIFVTRShPUEVOR0wpCiAgICAgQ0dMR2V0UGFyYW1ldGVyKHBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0M0QoKSwga0NHTENQR1BVUmVzdGFydFN0YXR1cywgJnJlc3RhcnRTdGF0dXMpOwog
ICAgIGlmIChyZXN0YXJ0U3RhdHVzID09IGtDR0xDUEdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3Rl
ZCkgewogICAgICAgICBMT0coV2ViR0wsICJUaGUgR1BVIGhhcyBibGFja2xpc3RlZCB1cyAoJXAp
LiBUZXJtaW5hdGluZy4iLCB0aGlzKTsKQEAgLTY2OSw3ICs2NzAsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiAjZW5kaWYKIH0KIAotI2lmIFBMQVRGT1JNKElP
UykKKyNpZiBVU0UoT1BFTkdMX0VTKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlc2VudFJl
bmRlcmJ1ZmZlcigpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CkBAIC02ODUsOSArNjg2
LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlc2VudFJlbmRlcmJ1ZmZlcigpCiAKIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlSU9TdXJmYWNlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIElPU3VyZmFjZVJlZiBzdXJmYWNl
LCBHQzNEdWludCBwbGFuZSkKIHsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkK
ICAgICByZXR1cm4ga0NHTE5vRXJyb3IgPT0gQ0dMVGV4SW1hZ2VJT1N1cmZhY2UyRChwbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEKCksIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWln
aHQsIGZvcm1hdCwgdHlwZSwgc3VyZmFjZSwgcGxhbmUpOwotI2VsaWYgUExBVEZPUk0oSU9TKSAm
JiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKyNlbGlmIFVTRShPUEVOR0xfRVMpICYmICFQTEFU
Rk9STShJT1NfU0lNVUxBVE9SKQogICAgIHJldHVybiBbcGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCgpIHRleEltYWdlSU9TdXJmYWNlOnN1cmZhY2UgdGFyZ2V0OnRhcmdldCBpbnRlcm5hbEZvcm1h
dDppbnRlcm5hbEZvcm1hdCB3aWR0aDp3aWR0aCBoZWlnaHQ6aGVpZ2h0IGZvcm1hdDpmb3JtYXQg
dHlwZTp0eXBlIHBsYW5lOnBsYW5lXTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRhcmdldCk7
CkBAIC03MDIsNyArNzAzLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2VJT1N1
cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsRm8KICNlbmRpZgogfQog
Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZShJbnRTaXplIHNpemUpCiB7CiAgICAg
TE9HKFdlYkdMLCAiR3JhcGhpY3NDb250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0
b3JlIGF0ICVkIHggJWQuICglcCkiLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5oCmluZGV4IDViNGI1MTg0MDFlZTk5Y2NlYTdjYjE2ZThjMDkyZGJjY2QwZmNjN2EuLjEy
MzFkZmU4NjUxOGQ0YTJkNzg5NDAwODc1NzIwNjE2ZjQzNzZmMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTM0LDcg
KzM0LDcgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwog
fQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiBAaW50ZXJmYWNlIFdlYkdM
TGF5ZXIgOiBDQUxheWVyCiAjZWxzZQogQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FFQUdMTGF5
ZXIKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiB7CiAgICAgV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIF9jb250ZXh0OwogICAgIGZsb2F0IF9kZXZpY2VQaXhl
bFJhdGlvOwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IF9jb250ZW50c0J1ZmZlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBfZHJhd2luZ0J1ZmZlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBfc3BhcmVCdWZmZXI7CkBAIC01Nyw3ICs1Nyw3
IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCiAtIChDR0ltYWdlUmVmKWNvcHlJbWFnZVNu
YXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29sb3JTcGFjZVJlZiljb2xvclNwYWNlOwogCi0jaWYg
UExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAtICh2b2lkKWFsbG9jYXRlSU9TdXJmYWNl
QmFja2luZ1N0b3JlV2l0aFNpemU6KFdlYkNvcmU6OkludFNpemUpc2l6ZSB1c2luZ0FscGhhOihC
T09MKXVzaW5nQWxwaGE7CiAtICh2b2lkKWJpbmRGcmFtZWJ1ZmZlclRvTmV4dEF2YWlsYWJsZVN1
cmZhY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IGEzMDRkOWZlNDQwYTdkNmU3MzI0OTZjMWZmYjYw
ZTYwZDFkYzRmZjQuLjg5MTc2OGNhMjFmYzkyNjE3ZmVmMzlmM2VjY2QxMTI5ODg4ZThhOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbQpAQCAtMzcsNyArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BF
TkdMKQogI2ltcG9ydCA8T3BlbkdML09wZW5HTC5oPgogI2ltcG9ydCA8T3BlbkdML2dsLmg+CiAj
ZW5kaWYKQEAgLTUzLDcgKzUzLDcgQEAgLShpZClpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOihH
cmFwaGljc0NvbnRleHQzRCopY29udGV4dAogICAgIF9jb250ZXh0ID0gY29udGV4dDsKICAgICBz
ZWxmID0gW3N1cGVyIGluaXRdOwogICAgIF9kZXZpY2VQaXhlbFJhdGlvID0gY29udGV4dC0+Z2V0
Q29udGV4dEF0dHJpYnV0ZXMoKS5kZXZpY2VQaXhlbFJhdGlvOwotI2lmIFBMQVRGT1JNKE1BQykK
KyNpZiBVU0UoT1BFTkdMKQogICAgIHNlbGYuY29udGVudHNPcGFxdWUgPSAhY29udGV4dC0+Z2V0
Q29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsKICAgICBzZWxmLnRyYW5zZm9ybSA9IENBVHJhbnNm
b3JtM0RJZGVudGl0eTsKICAgICBzZWxmLmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNlUGl4ZWxSYXRp
bzsKQEAgLTYzLDcgKzYzLDcgQEAgLShpZClpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNEOihHcmFw
aGljc0NvbnRleHQzRCopY29udGV4dAogICAgIHJldHVybiBzZWxmOwogfQogCi0jaWYgUExBVEZP
Uk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAvLyBPbiBNYWMsIHdlIG5lZWQgdG8gZmxpcCB0aGUg
bGF5ZXIgdG8gdGFrZSBpbnRvIGFjY291bnQKIC8vIHRoYXQgdGhlIElPU3VyZmFjZSBwcm92aWRl
cyBjb250ZW50IGluIFktdXAuIFRoaXMKIC8vIG1lYW5zIHRoYXQgYW55IGluY29taW5nIHRyYW5z
Zm9ybSAodW5saWtlbHksIHNpbmNlIHRoaXMKQEAgLTkyLDEwICs5Miw3IEBAIC0oQ0dJbWFnZVJl
Ziljb3B5SW1hZ2VTbmFwc2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYpY29sb3JT
cGFjZQogICAgIGlmICghX2NvbnRleHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0jaWYg
UExBVEZPUk0oSU9TKQotICAgIFVOVVNFRF9QQVJBTShjb2xvclNwYWNlKTsKLSAgICByZXR1cm4g
bnVsbHB0cjsKLSNlbHNlCisjaWYgVVNFKE9QRU5HTCkKICAgICBDR0xTZXRDdXJyZW50Q29udGV4
dChfY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKTsKIAogICAgIFJldGFpblB0
cjxDR0NvbG9yU3BhY2VSZWY+IGltYWdlQ29sb3JTcGFjZSA9IGNvbG9yU3BhY2U7CkBAIC0xMjEs
NiArMTE4LDkgQEAgLShDR0ltYWdlUmVmKWNvcHlJbWFnZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6
KENHQ29sb3JTcGFjZVJlZiljb2xvclNwYWNlCiAgICAgICAgIGtDR0ltYWdlQWxwaGFQcmVtdWx0
aXBsaWVkRmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QsIHByb3ZpZGVyLCAwLCB0cnVl
LCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KTsKICAgICBDR0RhdGFQcm92aWRlclJlbGVhc2Uo
cHJvdmlkZXIpOwogICAgIHJldHVybiBpbWFnZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGNv
bG9yU3BhY2UpOworICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCiB9CiAKQEAgLTEyOSw3ICsx
MjksNyBAQCAtICh2b2lkKWRpc3BsYXkKICAgICBpZiAoIV9jb250ZXh0KQogICAgICAgICByZXR1
cm47CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICBfY29udGV4dC0+
cHJlcGFyZVRleHR1cmUoKTsKICAgICBpZiAoX2RyYXdpbmdCdWZmZXIpIHsKICAgICAgICAgc3Rk
Ojpzd2FwKF9jb250ZW50c0J1ZmZlciwgX2RyYXdpbmdCdWZmZXIpOwpAQCAtMTQ3LDcgKzE0Nyw3
IEBAIC0gKHZvaWQpZGlzcGxheQogICAgICAgICBsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxh
eWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyKTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBV
U0UoT1BFTkdMKQogLSAodm9pZClhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXpl
OihJbnRTaXplKXNpemUgdXNpbmdBbHBoYTooQk9PTCl1c2luZ0FscGhhCiB7CiAgICAgX2J1ZmZl
clNpemUgPSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL0dyYXBoaWNzQ29udGV4dDNESU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9pb3MvR3JhcGhpY3NDb250ZXh0M0RJT1MuaAppbmRleCAwMThjZjE5NTNkZTUxZjNj
NzcxZWMwZDIwMmE2OGRjN2I5MGVkNDE0Li5mOGVlMTAzMTg2YzgwOWQyNmExMTBkMmVmOGMwODA2
NzAzMzZjM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9p
b3MvR3JhcGhpY3NDb250ZXh0M0RJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9pb3MvR3JhcGhpY3NDb250ZXh0M0RJT1MuaApAQCAtMjUsNyArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQogCiAj
ZGVmaW5lIGdsQmluZEZyYW1lYnVmZmVyRVhUIGdsQmluZEZyYW1lYnVmZmVyCiAjZGVmaW5lIGds
QmluZFJlbmRlcmJ1ZmZlckVYVCBnbEJpbmRSZW5kZXJidWZmZXIKQEAgLTcxLDQgKzcxLDQgQEAK
ICNkZWZpbmUgR0xfU1RFTkNJTF9BVFRBQ0hNRU5UX0VYVCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQK
ICNkZWZpbmUgR0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVWIEdMX1VOU0lHTkVEX0JZVEUKIAot
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyBVU0UoT1BFTkdMX0VTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMLmNwcAppbmRleCBlMDVkZWMxY2RiOTBkMmMyMDgwMThlNGJiZGVjNDYz
ZDJhMDIwOWY3Li40YWY0MGVkYmY0MzI2ZThjOGViNmY2MmU3ZTJjNjE3ZGQ3Y2VmNzU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcApAQCAtMzEsMTIgKzMxLDEyIEBACiAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRC5oIgogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCisjZWxpZiBV
U0UoT1BFTkdMX0VTKQogI2luY2x1ZGUgPE9wZW5HTEVTL0VTMi9nbGV4dC5oPgotI2VsaWYgUExB
VEZPUk0oTUFDKQorI2VsaWYgVVNFKE9QRU5HTCkKICNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KLSNl
bGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQotI2luY2x1ZGUgIk9wZW5HTFNoaW1z
LmgiCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTU1LDcgKzU1LDcgQEAgRXh0ZW5z
aW9uczNET3BlbkdMOjp+RXh0ZW5zaW9uczNET3BlbkdMKCkgPSBkZWZhdWx0OwogCiB2b2lkIEV4
dGVuc2lvbnMzRE9wZW5HTDo6YmxpdEZyYW1lYnVmZmVyKGxvbmcgc3JjWDAsIGxvbmcgc3JjWTAs
IGxvbmcgc3JjWDEsIGxvbmcgc3JjWTEsIGxvbmcgZHN0WDAsIGxvbmcgZHN0WTAsIGxvbmcgZHN0
WDEsIGxvbmcgZHN0WTEsIHVuc2lnbmVkIGxvbmcgbWFzaywgdW5zaWduZWQgbG9uZyBmaWx0ZXIp
CiB7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdM
X0VTKQogICAgIFVOVVNFRF9QQVJBTShzcmNYMCk7CiAgICAgVU5VU0VEX1BBUkFNKHNyY1kwKTsK
ICAgICBVTlVTRURfUEFSQU0oc3JjWDEpOwpAQCAtODEsNyArODEsNyBAQCBQbGF0Zm9ybTNET2Jq
ZWN0IEV4dGVuc2lvbnMzRE9wZW5HTDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMoKQogewogICAgIG1f
Y29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgR0x1aW50IGFycmF5ID0gMDsKLSNp
ZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKElPUykpCisjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNF
KE9QRU5HTF9FUykpCiAgICAgaWYgKGlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAg
ICAgICAgZ2xHZW5WZXJ0ZXhBcnJheXMoMSwgJmFycmF5KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQ
TEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdApA
QCAtOTYsNyArOTYsNyBAQCB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6ZGVsZXRlVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9j
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pIHx8IFBMQVRGT1JNKElPUykpCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXSU4pIHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykpCiAgICAgaWYgKGlz
VmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAgZ2xEZWxldGVWZXJ0ZXhBcnJh
eXMoMSwgJmFycmF5KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVj
dCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdApAQCAtMTEwLDcgKzExMCw3IEBAIEdD
M0Rib29sZWFuIEV4dGVuc2lvbnMzRE9wZW5HTDo6aXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNE
T2JqZWN0IGFycmF5KQogICAgICAgICByZXR1cm4gR0xfRkFMU0U7CiAKICAgICBtX2NvbnRleHQt
Pm1ha2VDb250ZXh0Q3VycmVudCgpOwotI2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJ
TikgfHwgUExBVEZPUk0oSU9TKSkKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikg
fHwgKFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKSkKICAgICBpZiAoaXNWZXJ0ZXhB
cnJheU9iamVjdFN1cHBvcnRlZCgpKQogICAgICAgICByZXR1cm4gZ2xJc1ZlcnRleEFycmF5KGFy
cmF5KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xf
QVBQTEVfdmVydGV4X2FycmF5X29iamVjdApAQCAtMTIyLDcgKzEyMiw3IEBAIEdDM0Rib29sZWFu
IEV4dGVuc2lvbnMzRE9wZW5HTDo6aXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0IGFy
cmF5KQogdm9pZCBFeHRlbnNpb25zM0RPcGVuR0w6OmJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9y
bTNET2JqZWN0IGFycmF5KQogewogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7
Ci0jaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShJT1MpKQor
I2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oQ09DT0EpICYm
IFVTRShPUEVOR0xfRVMpKQogICAgIGlmIChpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCkp
CiAgICAgICAgIGdsQmluZFZlcnRleEFycmF5KGFycmF5KTsKICNlbGlmIGRlZmluZWQoR0xfQVBQ
TEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdApA
QCAtMjk4LDcgKzI5OCw3IEBAIFN0cmluZyBFeHRlbnNpb25zM0RPcGVuR0w6OmdldEV4dGVuc2lv
bnMoKQogICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpn
bEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogfQogCi0jaWYgKFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShJT1MpKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpKQogYm9vbCBF
eHRlbnNpb25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKQogewogICAg
IHN0YXRpYyBjb25zdCBib29sIHN1cHBvcnRzVmVydGV4QXJyYXlPYmplY3QgPSBzdXBwb3J0cygi
R0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAppbmRl
eCBjYjkzNzQzZGQ5OGY4MjI3MzEyMDQwMjQwZGRmMDZmNjU2MGQ3YmYxLi40NTI1MDhhNTMxZGFh
MjBkOGFkOWQ5OTFmYmE5NDg1YmM5OTQzZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCkBA
IC02MSw3ICs2MSw3IEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgZ2V0RXh0ZW5zaW9ucygpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgotI2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oSU9TKSkKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwg
KFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKSkKICAgICBib29sIGlzVmVydGV4QXJy
YXlPYmplY3RTdXBwb3J0ZWQoKTsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0wuY3BwCmluZGV4IDRjZTYxZDI1MTY3MTRhZDk3YTAzZmE3Y2E5ZmE5MWZhMDVkOTBl
MzUuLmE2ZmZmZDAxMjgwZmU2Y2ZlNzE1MDJiODI4OGNlYTllOGY1ODZiYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcApAQCAtNDcsMTggKzQ3LDE4IEBACiAjaW5jbHVk
ZSA8QWNjZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykK
KyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKKyNpbmNsdWRlICJPcGVuR0xTaGlt
cy5oIgorI2VsaWYgVVNFKE9QRU5HTF9FUykKICNpbXBvcnQgPE9wZW5HTEVTL0VTMi9nbGV4dC5o
PgogLy8gRnJvbSA8T3BlbkdMRVMvZ2xleHQuaD4KICNkZWZpbmUgR0xfUkdCQTMyRl9BUkIgICAg
ICAgICAgICAgICAgICAgICAgMHg4ODE0CiAjZGVmaW5lIEdMX1JHQjMyRl9BUkIgICAgICAgICAg
ICAgICAgICAgICAgIDB4ODgxNQotI2VsaWYgUExBVEZPUk0oTUFDKQorI2VsaWYgVVNFKE9QRU5H
TCkKICNkZWZpbmUgR0xfRE9fTk9UX1dBUk5fSUZfTVVMVElfR0xfVkVSU0lPTl9IRUFERVJTX0lO
Q0xVREVECiAjaW5jbHVkZSA8T3BlbkdML2dsLmg+CiAjaW5jbHVkZSA8T3BlbkdML2dsMy5oPgog
I3VuZGVmIEdMX0RPX05PVF9XQVJOX0lGX01VTFRJX0dMX1ZFUlNJT05fSEVBREVSU19JTkNMVURF
RAotI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCi0jaW5jbHVkZSAiT3BlbkdM
U2hpbXMuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNDEsNyArMTQxLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6
ZSkKICAgICAgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMoIkdMX0VYVF9wYWNrZWRfZGVwdGhf
c3RlbmNpbCIpKQogICAgICAgICAgICAgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPSBHTF9E
RVBUSDI0X1NURU5DSUw4X0VYVDsKICAgICAgICAgZWxzZQotI2lmIFBMQVRGT1JNKElPUykKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICAgICAgICAgIGludGVybmFs
RGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEhfQ09NUE9ORU5UMTY7CiAjZWxzZQogICAgICAg
ICAgICAgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPSBHTF9ERVBUSF9DT01QT05FTlQ7CkBA
IC0xNTcsNyArMTU3LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgR0xpbnQgc2FtcGxlQ291bnQgPSBzdGQ6Om1pbig0
LCBtYXhTYW1wbGVDb3VudCk7CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJB
TUVCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgOjpnbEJpbmRSZW5kZXJi
dWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsK
LSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMp
CiAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xfUkVOREVS
QlVGRkVSX0VYVCwgc2FtcGxlQ291bnQsIEdMX1JHQkE4X09FUywgd2lkdGgsIGhlaWdodCk7CiAj
ZWxzZQogICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKEdMX1JF
TkRFUkJVRkZFUl9FWFQsIHNhbXBsZUNvdW50LCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRo
LCBoZWlnaHQpOwpAQCAtMTgxLDE0ICsxODEsMTYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6
cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAvLyByZXNpemUgcmVndWxhciBG
Qk8KICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8p
OwogICAgIEFTU0VSVChtX3RleHR1cmUpOwotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyNpZiBVU0UoT1BFTkdMX0VTKQogICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyKEdM
X1JFTkRFUkJVRkZFUiwgbV90ZXh0dXJlKTsKICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9SRU5ERVJCVUZGRVIs
IG1fdGV4dHVyZSk7CiAgICAgc2V0UmVuZGVyYnVmZmVyU3RvcmFnZUZyb21EcmF3YWJsZShtX2N1
cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KTsKLSNlbGlmIFBMQVRGT1JNKE1BQykKKyNlbHNl
CiAgICAgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0
KSk7CiAgICAgdXBkYXRlRnJhbWVidWZmZXJUZXh0dXJlQmFja2luZ1N0b3JlRnJvbUxheWVyKCk7
CiAgICAgOjpnbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xf
Q09MT1JfQVRUQUNITUVOVDBfRVhULCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIsIG1fdGV4dHVy
ZSwgMCk7CisjZW5kaWYgLy8gIVVTRShPUEVOR0xfRVMpKQogI2Vsc2UKICAgICA6OmdsQmluZFRl
eHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsKICAgICA6OmdsVGV4SW1hZ2UyRChHTF9U
RVhUVVJFXzJELCAwLCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAsIGNv
bG9yRm9ybWF0LCBHTF9VTlNJR05FRF9CWVRFLCAwKTsKQEAgLTI0NiwxNCArMjQ4LDE0IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoY29u
c3QgSW50UmVjdCYgcmVjdCkKICAgICBUZW1wb3JhcnlPcGVuR0xTZXR0aW5nIHNjb3BlZERlcHRo
KEdMX0RFUFRIX1RFU1QsIEdMX0ZBTFNFKTsKICAgICBUZW1wb3JhcnlPcGVuR0xTZXR0aW5nIHNj
b3BlZFN0ZW5jaWwoR0xfU1RFTkNJTF9URVNULCBHTF9GQUxTRSk7CiAKLSNpZiBQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiAgICAgR0xpbnQgYm91
bmRGcmFtZUJ1ZmZlcjsKICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfRlJBTUVCVUZGRVJfQklORElO
RywgJmJvdW5kRnJhbWVCdWZmZXIpOwogI2VuZGlmCiAKICAgICA6OmdsQmluZEZyYW1lYnVmZmVy
RVhUKEdMX1JFQURfRlJBTUVCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRkJPKTsKICAgICA6Omds
QmluZEZyYW1lYnVmZmVyRVhUKEdMX0RSQVdfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0jaWYg
UExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQogICAg
IFVOVVNFRF9QQVJBTShyZWN0KTsKICAgICA6OmdsRmx1c2goKTsKICAgICA6OmdsUmVzb2x2ZU11
bHRpc2FtcGxlRnJhbWVidWZmZXJBUFBMRSgpOwpAQCAtMjcyLDcgKzI3NCw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoY29uc3QgSW50
UmVjdCYgcmVjdCkKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlbmRlcmJ1ZmZlclN0b3JhZ2Uo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRo
LCBHQzNEc2l6ZWkgaGVpZ2h0KQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotI2lmICFQ
TEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTCkKICAgICBzd2l0Y2ggKGludGVybmFsZm9ybWF0
KSB7CiAgICAgY2FzZSBERVBUSF9TVEVOQ0lMOgogICAgICAgICBpbnRlcm5hbGZvcm1hdCA9IEdM
X0RFUFRIMjRfU1RFTkNJTDhfRVhUOwpAQCAtMzAwLDcgKzMwMiw3IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEludGVnZXJ2KEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkKICAg
ICAvLyBUaGVyZWZvcmUsIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBkZXNrdG9wIEdMIG5lZWRzIHRv
IGJlIGRpdmlkZWQgYnkgNC4KICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBzd2l0Y2gg
KHBuYW1lKSB7Ci0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMKQogICAgIGNhc2Ug
TUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUzoKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdM
X01BWF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMsIHZhbHVlKTsKICAgICAgICAgKnZhbHVl
IC89IDQ7CkBAIC0zOTIsNyArMzk0LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1h
Z2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGUKIAogICAg
IEdDM0RlbnVtIG9wZW5HTEZvcm1hdCA9IGZvcm1hdDsKICAgICBHQzNEZW51bSBvcGVuR0xJbnRl
cm5hbEZvcm1hdCA9IGludGVybmFsZm9ybWF0OwotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNF
KE9QRU5HTCkKICAgICBpZiAodHlwZSA9PSBHTF9GTE9BVCkgewogICAgICAgICBpZiAoZm9ybWF0
ID09IEdMX1JHQkEpCiAgICAgICAgICAgICBvcGVuR0xJbnRlcm5hbEZvcm1hdCA9IEdMX1JHQkEz
MkZfQVJCOwpAQCAtNDUyLDcgKzQ1NCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnRleElt
YWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFt
cGYgekZhcikKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiBQTEFURk9STShJT1Mp
CisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiAgICAgOjpnbERlcHRoUmFu
Z2VmKHN0YXRpY19jYXN0PGZsb2F0Pih6TmVhciksIHN0YXRpY19jYXN0PGZsb2F0Pih6RmFyKSk7
CiAjZWxzZQogICAgIDo6Z2xEZXB0aFJhbmdlKHpOZWFyLCB6RmFyKTsKQEAgLTQ2Miw3ICs0NjQs
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIs
IEdDM0RjbGFtcGYgekZhcikKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgoR0Mz
RGNsYW1wZiBkZXB0aCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiBQTEFURk9S
TShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiAgICAgOjpnbENs
ZWFyRGVwdGhmKHN0YXRpY19jYXN0PGZsb2F0PihkZXB0aCkpOwogI2Vsc2UKICAgICA6OmdsQ2xl
YXJEZXB0aChkZXB0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcAppbmRleCA1NDcyNzRmZmE2OGE1MmU0NWUwZDcyZDI4YjJhMTM5YzZmNWIwYjFkLi41
YmRkNjYzMDc1OWFlYzM3MmNjNDYzNWI3YzQ0MTcxOTU2YjkyMTkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTE4Niw3ICsxODYsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhJbWFn
ZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiAKICAgICBwYWludFRvQ2FudmFzKHBpeGVscy5nZXQoKSwg
SW50U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KSwgaW1hZ2VCdWZmZXItPmlu
dGVybmFsU2l6ZSgpLCBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpKTsKIAotI2lmIFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICBwcmVzZW50UmVu
ZGVyYnVmZmVyKCk7CiAjZW5kaWYKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336262</attachid>
            <date>2018-03-21 23:17:18 -0700</date>
            <delta_ts>2018-03-22 11:37:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183882-20180321231718.patch</filename>
            <type>text/plain</type>
            <size>28400</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQyNTdhZGMzYWU5MDE5MDk3OTMwZTcw
MGZkNjEyNTU1YTkyMjdhNjUuLmU2ZWU2YjgxMWE4MGRlMDk5YmE1YWZkM2VkZTliNWM2ZTgwNjhi
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMDMtMjEgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVVNFKE9QRU5HTFtfRVNdKSBpbiBt
b3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzODgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzkxMjE5NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgor
CiAyMDE4LTAzLTIwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIENyZWF0ZSBhbiBhc3NlcnRpb24gbWVjaGFuaXNtIHRvIGVuc3VyZSBwcm9wZXIgV2ViQ29y
ZSB1c2UgaW4gZWFjaCBXZWJLaXQgUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk2NGZmZTQ5OWE4MDM2
NDdlYzJkMTRjZDhlZTY4OGE1NTRjYTJjZGYuLjIzNGI4YTBmYmQ2MzIzNWVlMDQ3Zjk2YWQ4MjMw
ZjMxZDdhMDY1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxOC0wMy0yMSAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBVU0Uo
T1BFTkdMW19FU10pIGluIG1vcmUgcGxhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODM4ODIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3OTEy
MTk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6aGFzTXV4YWJsZUdQVSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RE1hbmFnZXI6OnVwZGF0ZUhpZ2hQZXJmb3JtYW5jZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgZGlzcGxh
eV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9HcmFwaGljc0NvbnRleHQzRElP
Uy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjpibGl0RnJhbWVi
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjpjcmVhdGVWZXJ0
ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmRlbGV0
ZVZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6
aXNWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6
OmJpbmRWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnMzRE9wZW5HTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OnJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlbmRlcmJ1ZmZlclN0b3JhZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVnZXJ2KToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpkZXB0aFJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpjbGVhckRlcHRoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAg
TWFrZSBpdCBhIGJpdCBtb3JlIGNsZWFyIHdoaWNoIGNvZGUgaXMgcGxhdGZvcm0tZGVwZW5kZW50
IGFuZCB3aGljaCBjb2RlIGlzIEdML0dMRVMtZGVwZW5kZW50LgorCiAyMDE4LTAzLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMjI5ODI4
KTogV2ViS2l0Lk5vSGlzdG9yeUl0ZW1TY3JvbGxUb0ZyYWdtZW50IEFQSSB0ZXN0IGlzIGZhaWxp
bmcgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaAppbmRleCAwOTUyN2Y1NTYwOGQwMmE4Mjk1YzE4OTFjZWMxNTQy
NWFjNjgwMDU4Li5kYTRiOTBhNmZjZjBjZjU4ODk1MzY3YWUzMTBjOTQyNDY1MmI5Y2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKQEAgLTExNTEsNiArMTE1MSw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1B
QykKKyNkZWZpbmUgSEFWRV9BUFBMRV9HUkFQSElDU19DT05UUk9MIDEKICNkZWZpbmUgVVNFX0NP
UkVBVURJTyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCmluZGV4IDMyMmJlZDBiOGM1NzlmYzk1MWZi
NjU2MTI3Nzg0YzhiMDM0MDg0MGYuLmM3YjM3NGQyMTA1ZjhlYmI0YWY4NmRlNGZjYmU5NzhiMDZk
MTlhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5jcHAKQEAgLTY1Niw3ICs2NTYsNyBAQCB1bnNpZ25lZCBHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdChHQzNEZW51bSBmb3JtYXQpCiAgICAg
fQogfQogCi0jaWYgIVBMQVRGT1JNKE1BQykKKyNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiBVU0Uo
T1BFTkdMKSkKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRWaXNpYmlsaXR5KGJv
b2wpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0QuaAppbmRleCAyZTc0ODc5ZDhkMmM2MmI2MGI0MTJjZDhhMjMyYzQyMzky
MzhhNjlkLi44OTQ0Yzc3MDJiMTU5OTdiNzFhYTVhMzhlNDYxYTgzOTM1N2Y5YjU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmgKQEAgLTExNDQsMTcgKzExNDQsMTcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgYm9vbCB0ZXhJbWFnZUlPU3VyZmFjZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYsIEdDM0R1aW50IHBsYW5lKTsK
LSNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgdm9p
ZCBwcmVzZW50UmVuZGVyYnVmZmVyKCk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNp
ZiBVU0UoT1BFTkdMKQogICAgIHZvaWQgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUoSW50
U2l6ZSk7CiAgICAgdm9pZCB1cGRhdGVGcmFtZWJ1ZmZlclRleHR1cmVCYWNraW5nU3RvcmVGcm9t
TGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNHTENvbnRleHQoKTsKICNlbmRpZgorI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKQogCiAgICAgdm9pZCBzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0M0RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KaW5kZXggYTBjMjZlNGQ4MTJmZWViMmM5
YmUxZjZlODY2ODBiMWUzY2JkZDM0OS4uM2JhZWUzYThmMGMxNzYyNzQ1MDJhMDdhNWM4NTgyNDY0
OTJkNTUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCkBAIC00Nyw3ICs0Nyw3
IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAj
aW1wb3J0IDxPcGVuR0xFUy9FQUdMLmg+CiAjaW1wb3J0IDxPcGVuR0xFUy9FQUdMRHJhd2FibGUu
aD4KICNpbXBvcnQgPE9wZW5HTEVTL0VBR0xJT1N1cmZhY2UuaD4KQEAgLTY0LDcgKzY0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgc3RhdHVzQ2hlY2tU
aHJlc2hvbGQgPSA1OwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIEhBVkUoQVBQTEVfR1JBUEhJ
Q1NfQ09OVFJPTCkKIAogZW51bSB7CiAgICAga0FHQ09wZW4sCkBAIC0xMzcsNyArMTM3LDYgQEAg
c3RhdGljIGJvb2wgaGFzTXV4YWJsZUdQVSgpCiAgICAgc3RhdGljIGJvb2wgY2FuTXV4ID0gaGFz
TXV4Q2FwYWJpbGl0eSgpOwogICAgIHJldHVybiBjYW5NdXg7CiB9Ci0KICNlbmRpZgogCiBjb25z
dCB1bnNpZ25lZCBNYXhDb250ZXh0cyA9IDE2OwpAQCAtMTY5LDcgKzE2OCw3IEBAIHByaXZhdGU6
CiAKICAgICBUaW1lciBtX2Rpc2FibGVIaWdoUGVyZm9ybWFuY2VHUFVUaW1lcjsKIAotI2lmIFBM
QVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogICAgIENHTFBpeGVsRm9ybWF0T2JqIG1fcGl4
ZWxGb3JtYXRPYmogeyBudWxscHRyIH07CiAjZW5kaWYKIH07CkBAIC0zMTUsNyArMzE0LDcgQEAg
cHVibGljOgogICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKSB7IH0KIH07CiAKLSNpZiBQ
TEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5HTCkKIAogc3RhdGljIHZvaWQgc2V0UGl4ZWxGb3Jt
YXQoVmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPiYgYXR0cmlicywgaW50IGNvbG9yQml0
cywgaW50IGRlcHRoQml0cywgYm9vbCBhY2NlbGVyYXRlZCwgYm9vbCBzdXBlcnNhbXBsZSwgYm9v
bCBjbG9zZXN0LCBib29sIGFudGlhbGlhcywgYm9vbCB1c2VHTEVTMykKIHsKQEAgLTMzMCw4ICsz
MjksMTAgQEAgc3RhdGljIHZvaWQgc2V0UGl4ZWxGb3JtYXQoVmVjdG9yPENHTFBpeGVsRm9ybWF0
QXR0cmlidXRlPiYgYXR0cmlicywgaW50IGNvbG9yQmkKICAgICAvLyBhbGxvd2luZyB1cyB0byBy
ZXF1ZXN0IHRoZSBpbnRlZ3JhdGVkIGdyYXBoaWNzIG9uIGEgZHVhbCBHUFUKICAgICAvLyBzeXN0
ZW0sIGFuZCBub3QgZm9yY2UgdGhlIGRpc2NyZXRlIEdQVS4KICAgICAvLyBTZWUgaHR0cHM6Ly9k
ZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvbWFjL3RlY2hub3Rlcy90bjIyMjkvX2luZGV4Lmh0
bWwKKyNpZiBIQVZFKEFQUExFX0dSQVBISUNTX0NPTlRST0wpCiAgICAgaWYgKGhhc011eGFibGVH
UFUoKSkKICAgICAgICAgYXR0cmlicy5hcHBlbmQoa0NHTFBGQUFsbG93T2ZmbGluZVJlbmRlcmVy
cyk7CisjZW5kaWYKIAogICAgIGlmIChhY2NlbGVyYXRlZCkKICAgICAgICAgYXR0cmlicy5hcHBl
bmQoa0NHTFBGQUFjY2VsZXJhdGVkKTsKQEAgLTM2Myw3ICszNjQsOCBAQCBzdGF0aWMgdm9pZCBz
ZXRQaXhlbEZvcm1hdChWZWN0b3I8Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1dGU+JiBhdHRyaWJzLCBp
bnQgY29sb3JCaQogICAgICAgICAKICAgICBhdHRyaWJzLmFwcGVuZChzdGF0aWNfY2FzdDxDR0xQ
aXhlbEZvcm1hdEF0dHJpYnV0ZT4oMCkpOwogfQotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisK
KyNlbmRpZiAvLyBVU0UoT1BFTkdMKQogCiBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBo
aWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBI
b3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVu
ZGVyU3R5bGUpCiB7CkBAIC00MDIsNyArNDA0LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBo
aWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQK
ICNlbmRpZgogICAgICwgbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlPih0aGlzKSkKIHsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTF9F
UykKICAgICBFQUdMUmVuZGVyaW5nQVBJIGFwaSA9IG1fYXR0cnMudXNlR0xFUzMgPyBrRUFHTFJl
bmRlcmluZ0FQSU9wZW5HTEVTMyA6IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMyOwogICAgIGlm
ICghc2hhcmVkQ29udGV4dCkKICAgICAgICAgbV9jb250ZXh0T2JqID0gW1tFQUdMQ29udGV4dCBh
bGxvY10gaW5pdFdpdGhBUEk6YXBpXTsKQEAgLTQzMCw3ICs0MzIsMTEgQEAgR3JhcGhpY3NDb250
ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRy
cywgSG9zdFdpbmQKIAogICAgIGJvb2wgdXNlTXVsdGlzYW1wbGluZyA9IG1fYXR0cnMuYW50aWFs
aWFzOwogCisjaWYgSEFWRShBUFBMRV9HUkFQSElDU19DT05UUk9MKQogICAgIG1fcG93ZXJQcmVm
ZXJlbmNlVXNlZEZvckNyZWF0aW9uID0gKGhhc011eGFibGVHUFUoKSAmJiBhdHRycy5wb3dlclBy
ZWZlcmVuY2UgPT0gR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3Jt
YW5jZSkgPyBHcmFwaGljc0NvbnRleHQzRFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNl
IDogR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQ7CisjZWxzZQorICAg
IG1fcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9uID0gR3JhcGhpY3NDb250ZXh0M0RQb3dl
clByZWZlcmVuY2U6OkRlZmF1bHQ7CisjZW5kaWYKIAogICAgIHNldFBpeGVsRm9ybWF0KGF0dHJp
YnMsIDMyLCAzMiwgIWF0dHJzLmZvcmNlU29mdHdhcmVSZW5kZXJlciwgdHJ1ZSwgZmFsc2UsIHVz
ZU11bHRpc2FtcGxpbmcsIGF0dHJzLnVzZUdMRVMzKTsKICAgICBDR0xDaG9vc2VQaXhlbEZvcm1h
dChhdHRyaWJzLmRhdGEoKSwgJnBpeGVsRm9ybWF0T2JqLCAmbnVtUGl4ZWxGb3JtYXRzKTsKQEAg
LTQ1NiwxMiArNDYyLDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdy
YXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKIAogICAgIENHTEVycm9y
IGVyciA9IENHTENyZWF0ZUNvbnRleHQocGl4ZWxGb3JtYXRPYmosIHNoYXJlZENvbnRleHQgPyBz
aGFyZWRDb250ZXh0LT5tX2NvbnRleHRPYmogOiBudWxscHRyLCAmbV9jb250ZXh0T2JqKTsKICAg
ICBHTGludCBhYm9ydE9uQmxhY2tsaXN0ID0gMDsKLSNpZiBQTEFURk9STShNQUMpCiAgICAgQ0dM
U2V0UGFyYW1ldGVyKG1fY29udGV4dE9iaiwga0NHTENQQWJvcnRPbkdQVVJlc3RhcnRTdGF0dXNC
bGFja2xpc3RlZCwgJmFib3J0T25CbGFja2xpc3QpOwotI2VsaWYgUExBVEZPUk0oSU9TKQotICAg
IENHTFNldFBhcmFtZXRlcihtX2NvbnRleHRPYmosIGtFQUdMQ1BBYm9ydE9uR1BVUmVzdGFydFN0
YXR1c0JsYWNrbGlzdGVkLCAmYWJvcnRPbkJsYWNrbGlzdCk7Ci0jZW5kaWYKLQogICAgIENHTERl
c3Ryb3lQaXhlbEZvcm1hdChwaXhlbEZvcm1hdE9iaik7CiAgICAgCiAgICAgaWYgKGVyciAhPSBr
Q0dMTm9FcnJvciB8fCAhbV9jb250ZXh0T2JqKSB7CkBAIC00NzUsNyArNDc2LDcgQEAgR3JhcGhp
Y3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cyBhdHRycywgSG9zdFdpbmQKICAgICAvLyBTZXQgdGhlIGN1cnJlbnQgY29udGV4dCB0byB0aGUg
b25lIGdpdmVuIHRvIHVzLgogICAgIENHTFNldEN1cnJlbnRDb250ZXh0KG1fY29udGV4dE9iaik7
CiAKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQorI2VuZGlmIC8vICFVU0UoT1BFTkdMX0VTKQog
ICAgIAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwogCkBAIC00ODcsMTMgKzQ4OCwxMyBAQCBH
cmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogI2VuZGlmCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMKQogICAgIGlmICh1c2VN
dWx0aXNhbXBsaW5nKQogICAgICAgICA6OmdsRW5hYmxlKEdMX01VTFRJU0FNUExFKTsKICNlbmRp
ZgogCiAgICAgLy8gQ3JlYXRlIHRoZSB0ZXh0dXJlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUg
ZnJhbWVidWZmZXIuCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAg
OjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fdGV4dHVyZSk7CiAjZWxzZQogICAgIDo6Z2xHZW5U
ZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKQEAgLTU0Nyw3ICs1NDgsNyBAQCBHcmFwaGljc0NvbnRl
eHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJz
LCBIb3N0V2luZAogCiAgICAgbV9jb21waWxlci5zZXRSZXNvdXJjZXMoQU5HTEVSZXNvdXJjZXMp
OwogICAgIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgVVNFKE9QRU5HTCkKICAgICA6OmdsRW5h
YmxlKEdMX1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkUpOwogICAgIGlmICghaXNHTEVTMkNvbXBs
aWFudCgpKQogICAgICAgICA6OmdsRW5hYmxlKEdMX1BPSU5UX1NQUklURSk7CkBAIC01NjMsNyAr
NTY0LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgbWFu
YWdlcigpLnJlbW92ZUNvbnRleHQodGhpcyk7CiAKICAgICBpZiAobV9jb250ZXh0T2JqKSB7Ci0j
aWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogICAgICAgICBbbV9jb250ZXh0T2JqIHJlbmRlcmJ1ZmZlclN0b3JhZ2U6R0xf
UkVOREVSQlVGRkVSIGZyb21EcmF3YWJsZTpuaWxdOwogICAgICAgICA6OmdsRGVsZXRlUmVuZGVy
YnVmZmVycygxLCAmbV90ZXh0dXJlKTsKQEAgLTU4MSw3ICs1ODIsNyBAQCBHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAgICAgICAgICA6OmdsRGVsZXRlUmVu
ZGVyYnVmZmVyc0VYVCgxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAg
ICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fZmJvKTsKLSNpZiBQTEFURk9STShJ
T1MpCisjaWYgVVNFKE9QRU5HTF9FUykKICAgICAgICAgW0VBR0xDb250ZXh0IHNldEN1cnJlbnRD
b250ZXh0OjBdOwogICAgICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPihtX2NvbnRleHRP
YmopIHJlbGVhc2VdOwogI2Vsc2UKQEAgLTU5NCw3ICs1OTUsNyBAQCBHcmFwaGljc0NvbnRleHQz
RDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICBMT0coV2ViR0wsICJEZXN0cm95ZWQgYSBHcmFw
aGljc0NvbnRleHQzRCAoJXApLiIsIHRoaXMpOwogfQogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lm
IFVTRShPUEVOR0xfRVMpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRSZW5kZXJidWZmZXJT
dG9yYWdlRnJvbURyYXdhYmxlKEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsK
ICAgICAvLyBXZSBuZWVkIHRvIG1ha2UgYSBjYWxsIHRvIHNldEJvdW5kcyBiZWxvdyB0byB1cGRh
dGUgdGhlIGJhY2tpbmcgc3RvcmUgc2l6ZSBidXQgd2UgYWxzbwpAQCAtNjE1LDcgKzYxNiw3IEBA
IGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAgICAgaWYgKCFt
X2NvbnRleHRPYmopCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKElPUykK
KyNpZiBVU0UoT1BFTkdMX0VTKQogICAgIGlmIChbRUFHTENvbnRleHQgY3VycmVudENvbnRleHRd
ICE9IG1fY29udGV4dE9iaikKICAgICAgICAgcmV0dXJuIFtFQUdMQ29udGV4dCBzZXRDdXJyZW50
Q29udGV4dDpzdGF0aWNfY2FzdDxFQUdMQ29udGV4dCo+KG1fY29udGV4dE9iaildOwogI2Vsc2UK
QEAgLTYzMiw3ICs2MzMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1
cygpCiAgICAgICAgIExPRyhXZWJHTCwgIlByZXRlbmRpbmcgdGhlIEdQVSBoYXMgcmVzZXQgKCVw
KS4gTG9zZSB0aGUgY29udGV4dC4iLCB0aGlzKTsKICAgICAgICAgbV9mYWlsTmV4dFN0YXR1c0No
ZWNrID0gZmFsc2U7CiAgICAgICAgIGZvcmNlQ29udGV4dExvc3QoKTsKLSNpZiBQTEFURk9STShN
QUMpCisjaWYgVVNFKE9QRU5HTCkKICAgICAgICAgQ0dMU2V0Q3VycmVudENvbnRleHQoMCk7CiAj
ZWxzZQogICAgICAgICBbRUFHTENvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6MF07CkBAIC02NDcs
NyArNjQ4LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogICAg
IG1fc3RhdHVzQ2hlY2tDb3VudCA9IChtX3N0YXR1c0NoZWNrQ291bnQgKyAxKSAlIHN0YXR1c0No
ZWNrVGhyZXNob2xkOwogCiAgICAgR0xpbnQgcmVzdGFydFN0YXR1cyA9IDA7Ci0jaWYgUExBVEZP
Uk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAgICAgQ0dMR2V0UGFyYW1ldGVyKHBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0M0QoKSwga0NHTENQR1BVUmVzdGFydFN0YXR1cywgJnJlc3RhcnRTdGF0dXMp
OwogICAgIGlmIChyZXN0YXJ0U3RhdHVzID09IGtDR0xDUEdQVVJlc3RhcnRTdGF0dXNCbGFja2xp
c3RlZCkgewogICAgICAgICBMT0coV2ViR0wsICJUaGUgR1BVIGhhcyBibGFja2xpc3RlZCB1cyAo
JXApLiBUZXJtaW5hdGluZy4iLCB0aGlzKTsKQEAgLTY2OSw3ICs2NzAsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiAjZW5kaWYKIH0KIAotI2lmIFBMQVRGT1JN
KElPUykKKyNpZiBVU0UoT1BFTkdMX0VTKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlc2Vu
dFJlbmRlcmJ1ZmZlcigpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CkBAIC02ODUsOSAr
Njg2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlc2VudFJlbmRlcmJ1ZmZlcigpCiAK
IGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlSU9TdXJmYWNlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIElPU3VyZmFjZVJlZiBzdXJm
YWNlLCBHQzNEdWludCBwbGFuZSkKIHsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFKE9QRU5H
TCkKICAgICByZXR1cm4ga0NHTE5vRXJyb3IgPT0gQ0dMVGV4SW1hZ2VJT1N1cmZhY2UyRChwbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3VyZmFjZSwgcGxhbmUpOwotI2VsaWYgUExBVEZPUk0oSU9T
KSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKyNlbGlmIFVTRShPUEVOR0xfRVMpICYmICFQ
TEFURk9STShJT1NfU0lNVUxBVE9SKQogICAgIHJldHVybiBbcGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQzRCgpIHRleEltYWdlSU9TdXJmYWNlOnN1cmZhY2UgdGFyZ2V0OnRhcmdldCBpbnRlcm5hbEZv
cm1hdDppbnRlcm5hbEZvcm1hdCB3aWR0aDp3aWR0aCBoZWlnaHQ6aGVpZ2h0IGZvcm1hdDpmb3Jt
YXQgdHlwZTp0eXBlIHBsYW5lOnBsYW5lXTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRhcmdl
dCk7CkBAIC03MDIsNyArNzAzLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2VJ
T1N1cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsRm8KICNlbmRpZgog
fQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZShJbnRTaXplIHNpemUpCiB7CiAg
ICAgTE9HKFdlYkdMLCAiR3JhcGhpY3NDb250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJmYWNlQmFja2lu
Z1N0b3JlIGF0ICVkIHggJWQuICglcCkiLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R0xMYXllci5oCmluZGV4IDViNGI1MTg0MDFlZTk5Y2NlYTdjYjE2ZThjMDkyZGJjY2QwZmNjN2Eu
LjEyMzFkZmU4NjUxOGQ0YTJkNzg5NDAwODc1NzIwNjE2ZjQzNzZmMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTM0
LDcgKzM0LDcgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNE
OwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiBAaW50ZXJmYWNlIFdl
YkdMTGF5ZXIgOiBDQUxheWVyCiAjZWxzZQogQGludGVyZmFjZSBXZWJHTExheWVyIDogQ0FFQUdM
TGF5ZXIKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiB7CiAgICAg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIF9jb250ZXh0OwogICAgIGZsb2F0IF9kZXZpY2VQ
aXhlbFJhdGlvOwotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IF9jb250ZW50c0J1ZmZlcjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBfZHJhd2luZ0J1ZmZlcjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBfc3BhcmVCdWZmZXI7CkBAIC01Nyw3ICs1
Nyw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCiAtIChDR0ltYWdlUmVmKWNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29sb3JTcGFjZVJlZiljb2xvclNwYWNlOwogCi0j
aWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wpCiAtICh2b2lkKWFsbG9jYXRlSU9TdXJm
YWNlQmFja2luZ1N0b3JlV2l0aFNpemU6KFdlYkNvcmU6OkludFNpemUpc2l6ZSB1c2luZ0FscGhh
OihCT09MKXVzaW5nQWxwaGE7CiAtICh2b2lkKWJpbmRGcmFtZWJ1ZmZlclRvTmV4dEF2YWlsYWJs
ZVN1cmZhY2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IGEzMDRkOWZlNDQwYTdkNmU3MzI0OTZjMWZm
YjYwZTYwZDFkYzRmZjQuLmZhNzdkYzQyNWJjNzljYWE1ZTgyYmZmN2U4ZTY3NDRjZDA5Mjg2N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdM
TGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
R0xMYXllci5tbQpAQCAtMzcsNyArMzcsNyBAQAogI2ltcG9ydCA8d3RmL0Zhc3RNYWxsb2MuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0Uo
T1BFTkdMKQogI2ltcG9ydCA8T3BlbkdML09wZW5HTC5oPgogI2ltcG9ydCA8T3BlbkdML2dsLmg+
CiAjZW5kaWYKQEAgLTUzLDcgKzUzLDcgQEAgLShpZClpbml0V2l0aEdyYXBoaWNzQ29udGV4dDNE
OihHcmFwaGljc0NvbnRleHQzRCopY29udGV4dAogICAgIF9jb250ZXh0ID0gY29udGV4dDsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIF9kZXZpY2VQaXhlbFJhdGlvID0gY29udGV4dC0+
Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5kZXZpY2VQaXhlbFJhdGlvOwotI2lmIFBMQVRGT1JNKE1B
QykKKyNpZiBVU0UoT1BFTkdMKQogICAgIHNlbGYuY29udGVudHNPcGFxdWUgPSAhY29udGV4dC0+
Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsKICAgICBzZWxmLnRyYW5zZm9ybSA9IENBVHJh
bnNmb3JtM0RJZGVudGl0eTsKICAgICBzZWxmLmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNlUGl4ZWxS
YXRpbzsKQEAgLTYzLDEzICs2MywxMiBAQCAtKGlkKWluaXRXaXRoR3JhcGhpY3NDb250ZXh0M0Q6
KEdyYXBoaWNzQ29udGV4dDNEKiljb250ZXh0CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLSNpZiBQ
TEFURk9STShNQUMpCi0vLyBPbiBNYWMsIHdlIG5lZWQgdG8gZmxpcCB0aGUgbGF5ZXIgdG8gdGFr
ZSBpbnRvIGFjY291bnQKLS8vIHRoYXQgdGhlIElPU3VyZmFjZSBwcm92aWRlcyBjb250ZW50IGlu
IFktdXAuIFRoaXMKLS8vIG1lYW5zIHRoYXQgYW55IGluY29taW5nIHRyYW5zZm9ybSAodW5saWtl
bHksIHNpbmNlIHRoaXMKLS8vIGlzIGEgY29udGVudHMgbGF5ZXIpIGFuZCBhbmNob3IgcG9pbnQg
bXVzdCBhZGQgYQotLy8gWSBzY2FsZSBvZiAtMSBhbmQgbWFrZSBzdXJlIHRoZSB0cmFuc2Zvcm0g
aGFwcGVucyBmcm9tCi0vLyB0aGUgdG9wLgorI2lmIFVTRShPUEVOR0wpCisvLyBXaGVuIHVzaW5n
IGFuIElPU3VyZmFjZSBhcyBsYXllciBjb250ZW50cywgd2UgbmVlZCB0byBmbGlwIHRoZQorLy8g
bGF5ZXIgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhhdCB0aGUgSU9TdXJmYWNlIHByb3ZpZGVzIGNv
bnRlbnQKKy8vIGluIFktdXAuIFRoaXMgbWVhbnMgdGhhdCBhbnkgaW5jb21pbmcgdHJhbnNmb3Jt
ICh1bmxpa2VseSwgc2luY2UKKy8vIHRoaXMgaXMgYSBjb250ZW50cyBsYXllcikgYW5kIGFuY2hv
ciBwb2ludCBtdXN0IGFkZCBhIFkgc2NhbGUgb2YKKy8vIC0xIGFuZCBtYWtlIHN1cmUgdGhlIHRy
YW5zZm9ybSBoYXBwZW5zIGZyb20gdGhlIHRvcC4KIAogLSAodm9pZClzZXRUcmFuc2Zvcm06KENB
VHJhbnNmb3JtM0QpdAogewpAQCAtOTIsMTAgKzkxLDcgQEAgLShDR0ltYWdlUmVmKWNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29sb3JTcGFjZVJlZiljb2xvclNwYWNlCiAgICAg
aWYgKCFfY29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgVU5VU0VEX1BBUkFNKGNvbG9yU3BhY2UpOwotICAgIHJldHVybiBudWxscHRyOwot
I2Vsc2UKKyNpZiBVU0UoT1BFTkdMKQogICAgIENHTFNldEN1cnJlbnRDb250ZXh0KF9jb250ZXh0
LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOwogCiAgICAgUmV0YWluUHRyPENHQ29sb3JT
cGFjZVJlZj4gaW1hZ2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKQEAgLTEyMSw2ICsxMTcsOSBA
QCAtKENHSW1hZ2VSZWYpY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTooQ0dDb2xvclNw
YWNlUmVmKWNvbG9yU3BhY2UKICAgICAgICAga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRGaXJz
dCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCwgcHJvdmlkZXIsIDAsIHRydWUsIGtDR1JlbmRl
cmluZ0ludGVudERlZmF1bHQpOwogICAgIENHRGF0YVByb3ZpZGVyUmVsZWFzZShwcm92aWRlcik7
CiAgICAgcmV0dXJuIGltYWdlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29sb3JTcGFjZSk7
CisgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtMTI5LDcgKzEyOCw3IEBAIC0g
KHZvaWQpZGlzcGxheQogICAgIGlmICghX2NvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAotI2lm
IFBMQVRGT1JNKE1BQykKKyNpZiBVU0UoT1BFTkdMKQogICAgIF9jb250ZXh0LT5wcmVwYXJlVGV4
dHVyZSgpOwogICAgIGlmIChfZHJhd2luZ0J1ZmZlcikgewogICAgICAgICBzdGQ6OnN3YXAoX2Nv
bnRlbnRzQnVmZmVyLCBfZHJhd2luZ0J1ZmZlcik7CkBAIC0xNDcsNyArMTQ2LDcgQEAgLSAodm9p
ZClkaXNwbGF5CiAgICAgICAgIGxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJMYXllckRp
ZERpc3BsYXkobGF5ZXIpOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRShPUEVOR0wp
CiAtICh2b2lkKWFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6KEludFNpemUp
c2l6ZSB1c2luZ0FscGhhOihCT09MKXVzaW5nQWxwaGEKIHsKICAgICBfYnVmZmVyU2l6ZSA9IHNp
emU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvR3Jh
cGhpY3NDb250ZXh0M0RJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lv
cy9HcmFwaGljc0NvbnRleHQzRElPUy5oCmluZGV4IDAxOGNmMTk1M2RlNTFmM2M3NzFlYzBkMjAy
YTY4ZGM3YjkwZWQ0MTQuLmY4ZWUxMDMxODZjODA5ZDI2YTExMGQyZWY4YzA4MDY3MDMzNmMzYjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9HcmFwaGlj
c0NvbnRleHQzRElPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lv
cy9HcmFwaGljc0NvbnRleHQzRElPUy5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0xfRVMpCiAKICNkZWZpbmUgZ2xC
aW5kRnJhbWVidWZmZXJFWFQgZ2xCaW5kRnJhbWVidWZmZXIKICNkZWZpbmUgZ2xCaW5kUmVuZGVy
YnVmZmVyRVhUIGdsQmluZFJlbmRlcmJ1ZmZlcgpAQCAtNzEsNCArNzEsNCBAQAogI2RlZmluZSBH
TF9TVEVOQ0lMX0FUVEFDSE1FTlRfRVhUIEdMX1NURU5DSUxfQVRUQUNITUVOVAogI2RlZmluZSBH
TF9VTlNJR05FRF9JTlRfOF84XzhfOF9SRVYgR0xfVU5TSUdORURfQllURQogCi0jZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQorI2VuZGlmIC8vIFVTRShPUEVOR0xfRVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0wuY3BwCmluZGV4IGUwNWRlYzFjZGI5MGQyYzIwODAxOGU0YmJkZWM0NjNkMmEwMjA5Zjcu
LjRhZjQwZWRiZjQzMjZlOGM4ZWI2ZjYyZTdlMmM2MTdkZDdjZWY3NTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNp
b25zM0RPcGVuR0wuY3BwCkBAIC0zMSwxMiArMzEsMTIgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dDNELmgiCiAKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXSU4pCisjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKKyNlbGlmIFVTRShPUEVOR0xf
RVMpCiAjaW5jbHVkZSA8T3BlbkdMRVMvRVMyL2dsZXh0Lmg+Ci0jZWxpZiBQTEFURk9STShNQUMp
CisjZWxpZiBVU0UoT1BFTkdMKQogI2luY2x1ZGUgPE9wZW5HTC9nbC5oPgotI2VsaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXSU4pCi0jaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtNTUsNyArNTUsNyBAQCBFeHRlbnNpb25zM0RPcGVu
R0w6On5FeHRlbnNpb25zM0RPcGVuR0woKSA9IGRlZmF1bHQ7CiAKIHZvaWQgRXh0ZW5zaW9uczNE
T3BlbkdMOjpibGl0RnJhbWVidWZmZXIobG9uZyBzcmNYMCwgbG9uZyBzcmNZMCwgbG9uZyBzcmNY
MSwgbG9uZyBzcmNZMSwgbG9uZyBkc3RYMCwgbG9uZyBkc3RZMCwgbG9uZyBkc3RYMSwgbG9uZyBk
c3RZMSwgdW5zaWduZWQgbG9uZyBtYXNrLCB1bnNpZ25lZCBsb25nIGZpbHRlcikKIHsKLSNpZiBQ
TEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiAgICAg
VU5VU0VEX1BBUkFNKHNyY1gwKTsKICAgICBVTlVTRURfUEFSQU0oc3JjWTApOwogICAgIFVOVVNF
RF9QQVJBTShzcmNYMSk7CkBAIC04MSw3ICs4MSw3IEBAIFBsYXRmb3JtM0RPYmplY3QgRXh0ZW5z
aW9uczNET3BlbkdMOjpjcmVhdGVWZXJ0ZXhBcnJheU9FUygpCiB7CiAgICAgbV9jb250ZXh0LT5t
YWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBHTHVpbnQgYXJyYXkgPSAwOwotI2lmIChQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oSU9TKSkKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VT
KSkKICAgICBpZiAoaXNWZXJ0ZXhBcnJheU9iamVjdFN1cHBvcnRlZCgpKQogICAgICAgICBnbEdl
blZlcnRleEFycmF5cygxLCAmYXJyYXkpOwogI2VsaWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhf
YXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CkBAIC05Niw3ICs5
Niw3IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0
Zm9ybTNET2JqZWN0IGFycmF5KQogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbnRleHQtPm1h
a2VDb250ZXh0Q3VycmVudCgpOwotI2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oSU9TKSkKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwg
KFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKSkKICAgICBpZiAoaXNWZXJ0ZXhBcnJh
eU9iamVjdFN1cHBvcnRlZCgpKQogICAgICAgICBnbERlbGV0ZVZlcnRleEFycmF5cygxLCAmYXJy
YXkpOwogI2VsaWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9B
UFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CkBAIC0xMTAsNyArMTEwLDcgQEAgR0MzRGJvb2xlYW4g
RXh0ZW5zaW9uczNET3BlbkdMOjppc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QgYXJy
YXkpCiAgICAgICAgIHJldHVybiBHTF9GQUxTRTsKIAogICAgIG1fY29udGV4dC0+bWFrZUNvbnRl
eHRDdXJyZW50KCk7Ci0jaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFU
Rk9STShJT1MpKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZP
Uk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpKQogICAgIGlmIChpc1ZlcnRleEFycmF5T2JqZWN0
U3VwcG9ydGVkKCkpCiAgICAgICAgIHJldHVybiBnbElzVmVydGV4QXJyYXkoYXJyYXkpOwogI2Vs
aWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0
ZXhfYXJyYXlfb2JqZWN0CkBAIC0xMjIsNyArMTIyLDcgQEAgR0MzRGJvb2xlYW4gRXh0ZW5zaW9u
czNET3BlbkdMOjppc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QgYXJyYXkpCiB2b2lk
IEV4dGVuc2lvbnMzRE9wZW5HTDo6YmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3Qg
YXJyYXkpCiB7CiAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiAoUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKElPUykpCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5H
TF9FUykpCiAgICAgaWYgKGlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKICAgICAgICAg
Z2xCaW5kVmVydGV4QXJyYXkoYXJyYXkpOwogI2VsaWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhf
YXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CkBAIC0yOTgsNyAr
Mjk4LDcgQEAgU3RyaW5nIEV4dGVuc2lvbnMzRE9wZW5HTDo6Z2V0RXh0ZW5zaW9ucygpCiAgICAg
cmV0dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPig6OmdsR2V0U3RyaW5n
KEdMX0VYVEVOU0lPTlMpKSk7CiB9CiAKLSNpZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
SU4pIHx8IFBMQVRGT1JNKElPUykpCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4p
IHx8IChQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykpCiBib29sIEV4dGVuc2lvbnMz
RE9wZW5HTDo6aXNWZXJ0ZXhBcnJheU9iamVjdFN1cHBvcnRlZCgpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgc3VwcG9ydHNWZXJ0ZXhBcnJheU9iamVjdCA9IHN1cHBvcnRzKCJHTF9PRVNfdmVy
dGV4X2FycmF5X29iamVjdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCmluZGV4IGNiOTM3NDNk
ZDk4ZjgyMjczMTIwNDAyNDBkZGYwNmY2NTYwZDdiZjEuLjQ1MjUwOGE1MzFkYWEyMGQ4YWQ5ZDk5
MWZiYTk0ODViYzk5NDNlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBnZXRFeHRlbnNpb25zKCkgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6Ci0jaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9S
TShJT1MpKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0o
Q09DT0EpICYmIFVTRShPUEVOR0xfRVMpKQogICAgIGJvb2wgaXNWZXJ0ZXhBcnJheU9iamVjdFN1
cHBvcnRlZCgpOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5j
cHAKaW5kZXggNGNlNjFkMjUxNjcxNGFkOTdhMDNmYTdjYTlmYTkxZmEwNWQ5MGUzNS4uYTZmZmZk
MDEyODBmZTZjZmU3MTUwMmI4Mjg4Y2VhOWU4ZjU4NmJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0wuY3BwCkBAIC00NywxOCArNDcsMTggQEAKICNpbmNsdWRlIDxBY2NlbGVy
YXRlL0FjY2VsZXJhdGUuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKQorI2luY2x1ZGUgIk9wZW5HTFNoaW1zLmgiCisjZWxp
ZiBVU0UoT1BFTkdMX0VTKQogI2ltcG9ydCA8T3BlbkdMRVMvRVMyL2dsZXh0Lmg+CiAvLyBGcm9t
IDxPcGVuR0xFUy9nbGV4dC5oPgogI2RlZmluZSBHTF9SR0JBMzJGX0FSQiAgICAgICAgICAgICAg
ICAgICAgICAweDg4MTQKICNkZWZpbmUgR0xfUkdCMzJGX0FSQiAgICAgICAgICAgICAgICAgICAg
ICAgMHg4ODE1Ci0jZWxpZiBQTEFURk9STShNQUMpCisjZWxpZiBVU0UoT1BFTkdMKQogI2RlZmlu
ZSBHTF9ET19OT1RfV0FSTl9JRl9NVUxUSV9HTF9WRVJTSU9OX0hFQURFUlNfSU5DTFVERUQKICNp
bmNsdWRlIDxPcGVuR0wvZ2wuaD4KICNpbmNsdWRlIDxPcGVuR0wvZ2wzLmg+CiAjdW5kZWYgR0xf
RE9fTk9UX1dBUk5fSUZfTVVMVElfR0xfVkVSU0lPTl9IRUFERVJTX0lOQ0xVREVECi0jZWxpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKLSNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE0MSw3ICsxNDEsNyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgICAg
ICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfRVhUX3BhY2tlZF9kZXB0aF9zdGVuY2lsIikp
CiAgICAgICAgICAgICBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIMjRfU1RF
TkNJTDhfRVhUOwogICAgICAgICBlbHNlCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JN
KENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQogICAgICAgICAgICAgaW50ZXJuYWxEZXB0aFN0ZW5j
aWxGb3JtYXQgPSBHTF9ERVBUSF9DT01QT05FTlQxNjsKICNlbHNlCiAgICAgICAgICAgICBpbnRl
cm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIX0NPTVBPTkVOVDsKQEAgLTE1Nyw3ICsx
NTcsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXpl
JiBzaXplKQogICAgICAgICBHTGludCBzYW1wbGVDb3VudCA9IHN0ZDo6bWluKDQsIG1heFNhbXBs
ZUNvdW50KTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9F
WFQsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlckVYVChH
TF9SRU5ERVJCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotI2lmIFBMQVRG
T1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICAgICAg
OjpnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhU
LCBzYW1wbGVDb3VudCwgR0xfUkdCQThfT0VTLCB3aWR0aCwgaGVpZ2h0KTsKICNlbHNlCiAgICAg
ICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xfUkVOREVSQlVGRkVS
X0VYVCwgc2FtcGxlQ291bnQsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCk7
CkBAIC0xODEsMTQgKzE4MSwxNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJP
cyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIC8vIHJlc2l6ZSByZWd1bGFyIEZCTwogICAgIDo6
Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7CiAgICAgQVNT
RVJUKG1fdGV4dHVyZSk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKENPQ09BKQor
I2lmIFVTRShPUEVOR0xfRVMpCiAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVG
RkVSLCBtX3RleHR1cmUpOwogICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFN
RUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1JFTkRFUkJVRkZFUiwgbV90ZXh0dXJl
KTsKICAgICBzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKG1fY3VycmVudFdpZHRo
LCBtX2N1cnJlbnRIZWlnaHQpOwotI2VsaWYgUExBVEZPUk0oTUFDKQorI2Vsc2UKICAgICBhbGxv
Y2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKICAgICB1
cGRhdGVGcmFtZWJ1ZmZlclRleHR1cmVCYWNraW5nU3RvcmVGcm9tTGF5ZXIoKTsKICAgICA6Omds
RnJhbWVidWZmZXJUZXh0dXJlMkRFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9DT0xPUl9BVFRB
Q0hNRU5UMF9FWFQsIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQiwgbV90ZXh0dXJlLCAwKTsKKyNl
bmRpZiAvLyAhVVNFKE9QRU5HTF9FUykpCiAjZWxzZQogICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9U
RVhUVVJFXzJELCBtX3RleHR1cmUpOwogICAgIDo6Z2xUZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQs
IDAsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCwgMCwgY29sb3JGb3JtYXQs
IEdMX1VOU0lHTkVEX0JZVEUsIDApOwpAQCAtMjQ2LDE0ICsyNDgsMTQgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShjb25zdCBJbnRSZWN0
JiByZWN0KQogICAgIFRlbXBvcmFyeU9wZW5HTFNldHRpbmcgc2NvcGVkRGVwdGgoR0xfREVQVEhf
VEVTVCwgR0xfRkFMU0UpOwogICAgIFRlbXBvcmFyeU9wZW5HTFNldHRpbmcgc2NvcGVkU3RlbmNp
bChHTF9TVEVOQ0lMX1RFU1QsIEdMX0ZBTFNFKTsKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICBHTGludCBib3VuZEZyYW1lQnVm
ZmVyOwogICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmYm91bmRG
cmFtZUJ1ZmZlcik7CiAjZW5kaWYKIAogICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfUkVB
RF9GUkFNRUJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgIDo6Z2xCaW5kRnJhbWVi
dWZmZXJFWFQoR0xfRFJBV19GUkFNRUJVRkZFUl9FWFQsIG1fZmJvKTsKLSNpZiBQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShPUEVOR0xfRVMpCiAgICAgVU5VU0VEX1BB
UkFNKHJlY3QpOwogICAgIDo6Z2xGbHVzaCgpOwogICAgIDo6Z2xSZXNvbHZlTXVsdGlzYW1wbGVG
cmFtZWJ1ZmZlckFQUExFKCk7CkBAIC0yNzIsNyArMjc0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6cmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShjb25zdCBJbnRSZWN0JiByZWN0
KQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVuZGVyYnVmZmVyU3RvcmFnZShHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXpl
aSBoZWlnaHQpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0jaWYgIVBMQVRGT1JNKElP
UykKKyNpZiBVU0UoT1BFTkdMKQogICAgIHN3aXRjaCAoaW50ZXJuYWxmb3JtYXQpIHsKICAgICBj
YXNlIERFUFRIX1NURU5DSUw6CiAgICAgICAgIGludGVybmFsZm9ybWF0ID0gR0xfREVQVEgyNF9T
VEVOQ0lMOF9FWFQ7CkBAIC0zMDAsNyArMzAyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0SW50ZWdlcnYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKQogICAgIC8vIFRoZXJl
Zm9yZSwgdGhlIHZhbHVlIHJldHVybmVkIGJ5IGRlc2t0b3AgR0wgbmVlZHMgdG8gYmUgZGl2aWRl
ZCBieSA0LgogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIHN3aXRjaCAocG5hbWUpIHsK
LSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFVTRShPUEVOR0wpCiAgICAgY2FzZSBNQVhfRlJBR01F
TlRfVU5JRk9STV9WRUNUT1JTOgogICAgICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTUFYX0ZSQUdN
RU5UX1VOSUZPUk1fQ09NUE9ORU5UUywgdmFsdWUpOwogICAgICAgICAqdmFsdWUgLz0gNDsKQEAg
LTM5Miw3ICszOTQsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZQogCiAgICAgR0MzRGVudW0g
b3BlbkdMRm9ybWF0ID0gZm9ybWF0OwogICAgIEdDM0RlbnVtIG9wZW5HTEludGVybmFsRm9ybWF0
ID0gaW50ZXJuYWxmb3JtYXQ7Ci0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBVU0UoT1BFTkdMKQog
ICAgIGlmICh0eXBlID09IEdMX0ZMT0FUKSB7CiAgICAgICAgIGlmIChmb3JtYXQgPT0gR0xfUkdC
QSkKICAgICAgICAgICAgIG9wZW5HTEludGVybmFsRm9ybWF0ID0gR0xfUkdCQTMyRl9BUkI7CkBA
IC00NTIsNyArNDU0LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2UyRChHQzNE
ZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGUKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVhciwgR0MzRGNsYW1wZiB6RmFyKQog
ewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICA6OmdsRGVwdGhSYW5nZWYoc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHpOZWFyKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHpGYXIpKTsKICNlbHNlCiAg
ICAgOjpnbERlcHRoUmFuZ2Uoek5lYXIsIHpGYXIpOwpAQCAtNDYyLDcgKzQ2NCw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVhciwgR0MzRGNsYW1w
ZiB6RmFyKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXJEZXB0aChHQzNEY2xhbXBmIGRl
cHRoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotI2lmIFBMQVRGT1JNKElPUykKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICA6OmdsQ2xlYXJEZXB0aGYo
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGRlcHRoKSk7CiAjZWxzZQogICAgIDo6Z2xDbGVhckRlcHRoKGRl
cHRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmlu
ZGV4IDU0NzI3NGZmYTY4YTUyZTQ1ZTBkNzJkMjhiMmExMzljNmY1YjBiMWQuLjViZGQ2NjMwNzU5
YWVjMzcyY2M0NjM1YjdjNDQxNzE5NTZiOTIxOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyKiBp
bWFnZUJ1ZmZlcikKIAogICAgIHBhaW50VG9DYW52YXMocGl4ZWxzLmdldCgpLCBJbnRTaXplKG1f
Y3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQpLCBpbWFnZUJ1ZmZlci0+aW50ZXJuYWxTaXpl
KCksIGltYWdlQnVmZmVyLT5jb250ZXh0KCkpOwogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiBVU0UoT1BFTkdMX0VTKQogICAgIHByZXNlbnRSZW5kZXJidWZmZXIo
KTsKICNlbmRpZgogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>