<?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>131797</bug_id>
          
          <creation_ts>2014-04-17 11:35:57 -0700</creation_ts>
          <short_desc>Remove some includes from image-related headers, and Document.h</short_desc>
          <delta_ts>2014-07-07 04:58:36 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>134679</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>burg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pdr</cc>
    
    <cc>roger_fong</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1001621</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-17 11:35:57 -0700</bug_when>
    <thetext>Remove some includes from image-related headers, and Document.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001622</commentid>
    <comment_count>1</comment_count>
      <attachid>229564</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-17 11:37:05 -0700</bug_when>
    <thetext>Created attachment 229564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001631</commentid>
    <comment_count>2</comment_count>
      <attachid>229564</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-17 11:44:14 -0700</bug_when>
    <thetext>Comment on attachment 229564
Patch

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

Looks reasonable to me.

&gt; Source/WebCore/page/Page.cpp:98
&gt; +#include &lt;replay/InputCursor.h&gt;
&gt;  #include &quot;ReplayController.h&quot;

I think this technically sorts the other way, but it&apos;s not a big deal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001642</commentid>
    <comment_count>3</comment_count>
      <attachid>229567</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-17 12:29:33 -0700</bug_when>
    <thetext>Created attachment 229567
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001947</commentid>
    <comment_count>4</comment_count>
      <attachid>229653</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-18 10:44:57 -0700</bug_when>
    <thetext>Created attachment 229653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001960</commentid>
    <comment_count>5</comment_count>
      <attachid>229653</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-18 11:35:48 -0700</bug_when>
    <thetext>Comment on attachment 229653
Patch

Clearing flags on attachment: 229653

Committed r167497: &lt;http://trac.webkit.org/changeset/167497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001961</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-18 11:35:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229564</attachid>
            <date>2014-04-17 11:37:05 -0700</date>
            <delta_ts>2014-04-17 12:29:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131797-20140417113643.patch</filename>
            <type>text/plain</type>
            <size>23676</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODVlMWI3ODEzOWRiZmJk
MjI5MzIxNGM1YTYxYTA2Y2Y0ODU3OTdmYy4uMzIyZDk5MjZhMmM1NTg2MzcwYzI2MmM5NTg2ODc5
MmFmZTk2ZTM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE0LTA0LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzb21l
IGluY2x1ZGVzIGZyb20gaW1hZ2UtcmVsYXRlZCBoZWFkZXJzLCBhbmQgRG9jdW1lbnQuaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNzk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHNvbWUg
I2luY2x1ZGVzIGZyb20gRG9jdW1lbnQuaCwgRHJhZ0ltYWdlLmgsIEdyYWRpZW50SW1hZ2UuaCwK
KyAgICAgICAgSW1hZ2UuaCwgYW5kIEltYWdlQnVmZmVyLmggYW5kIGRlYWwgd2l0aCB0aGUgZmFs
bG91dC4KKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRJbnB1dEN1cnNvcik6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
aW5wdXRDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldElucHV0Q3Vyc29y
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5j
cHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2Uu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50SW1hZ2U6OkdyYWRp
ZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnRJbWFnZTo6fkdyYWRpZW50SW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6aW50ZXJuYWxTaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVyOjpsb2dpY2FsU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6YmFzZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6c3BhY2VT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpzZXRTcGFjZVNpemUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHVVJJUmVmZXJlbmNl
Lmg6CisKIDIwMTQtMDQtMTYgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5l
ci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBJbXByb3ZlIHNlY3VyaXR5IG1pdGlnYXRpb24gYWRk
ZWQgaW4gd2Via2l0IHI5NDAwMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4IDMy
MWVkYTZhYjNmYTY2YTBlYjMxMzdmODNlMTRhNTk4ODk4ZDZmMDQuLjc1MDgwOTEwNTEyODI3YTRk
YTVkYjQ1ZDM2YTZjNTIxMGY1MGU3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApA
QCAtMzMsNiArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9hdFBvaW50
OworY2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFJlbmRlckVsZW1lbnQ7CiAKIHR5cGVkZWYg
dm9pZCAoKk5vZGVDYWxsYmFjaykoTm9kZSYsIHVuc2lnbmVkKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IDIxYzI5ZGFkZTViNzY4ZWJiOTIxMmYxY2U1YjNiYTg4MGQ2MDM0MjIuLmRkYTQx
MGU1N2ZjMjIxZDM4ZjI3ZWE1NjNhMzQwODI3ZGZmMWFhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtMjIxLDYgKzIyMSw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKICNpbmNs
dWRlIDxyZXBsYXkvRW1wdHlJbnB1dEN1cnNvci5oPgorI2luY2x1ZGUgPHJlcGxheS9JbnB1dEN1
cnNvci5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CkBAIC02MTc4LDQgKzYxNzks
MTEgQEAgYm9vbCBEb2N1bWVudDo6aGFzRm9jdXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorI2lmIEVOQUJMRShXRUJfUkVQTEFZKQordm9pZCBEb2N1bWVudDo6c2V0SW5wdXRDdXJz
b3IoUGFzc1JlZlB0cjxJbnB1dEN1cnNvcj4gY3Vyc29yKQoreworICAgIG1faW5wdXRDdXJzb3Ig
PSBjdXJzb3I7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAppbmRleCBmYTkwZjhmYTBhNDU5ZjBhNDdlYjBmNzI3YmNjYmU4YWNmNWFiNjNmLi4w
M2I1NmI3MWRkOGE2ZTRjMDllZTZlZDAxMTg5Yzg5Nzk4Y2NjYjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaApAQCAtMzUsMTIgKzM1LDEwIEBACiAjaW5jbHVkZSAiRG9jdW1lbnRTdHlsZVNoZWV0Q29s
bGVjdGlvbi5oIgogI2luY2x1ZGUgIkRvY3VtZW50VGltaW5nLmgiCiAjaW5jbHVkZSAiRm9jdXNE
aXJlY3Rpb24uaCIKLSNpbmNsdWRlICJIaXRUZXN0UmVxdWVzdC5oIgogI2luY2x1ZGUgIkljb25V
UkwuaCIKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUGFnZVZpc2li
aWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCi0jaW5jbHVkZSAiUXVh
bGlmaWVkTmFtZS5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyUHRyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNTksOSAr
NTcsMTIgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CiAKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgRXhlY1N0YXRlOwogI2lmIEVOQUJMRShX
RUJfUkVQTEFZKQotI2luY2x1ZGUgPHJlcGxheS9JbnB1dEN1cnNvci5oPgorY2xhc3MgSW5wdXRD
dXJzb3I7CiAjZW5kaWYKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04OCw3ICs4OSw2
IEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
OwogY2xhc3MgRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2w7
Ci1jbGFzcyBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOwogY2xhc3MgRG9jdW1lbnRUeXBl
OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEVudGl0eVJlZmVyZW5jZTsKQEAgLTEzMCw2ICsxMzAs
NyBAQCBjbGFzcyBOb2RlSXRlcmF0b3I7CiBjbGFzcyBQYWdlOwogY2xhc3MgUGxhdGZvcm1Nb3Vz
ZUV2ZW50OwogY2xhc3MgUHJvY2Vzc2luZ0luc3RydWN0aW9uOworY2xhc3MgUXVhbGlmaWVkTmFt
ZTsKIGNsYXNzIFJhbmdlOwogY2xhc3MgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBS
ZW5kZXJWaWV3OwpAQCAtNDc5LDggKzQ4MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFVSTCBi
YXNlVVJJKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKLSAgICBJ
bnB1dEN1cnNvciYgaW5wdXRDdXJzb3IoKSBjb25zdCB7IHJldHVybiAqbV9pbnB1dEN1cnNvcjsg
fQotICAgIHZvaWQgc2V0SW5wdXRDdXJzb3IoUGFzc1JlZlB0cjxJbnB1dEN1cnNvcj4gY3Vyc29y
KSB7IG1faW5wdXRDdXJzb3IgPSBjdXJzb3I7IH0KKyAgICBKU0M6OklucHV0Q3Vyc29yJiBpbnB1
dEN1cnNvcigpIGNvbnN0IHsgcmV0dXJuICptX2lucHV0Q3Vyc29yOyB9CisgICAgdm9pZCBzZXRJ
bnB1dEN1cnNvcihQYXNzUmVmUHRyPEpTQzo6SW5wdXRDdXJzb3I+KTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCkBAIC0xNjkyLDcgKzE2OTMsNyBAQCBwcml2YXRl
OgogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKLSAgICBSZWZQdHI8SW5wdXRDdXJz
b3I+IG1faW5wdXRDdXJzb3I7CisgICAgUmVmUHRyPEpTQzo6SW5wdXRDdXJzb3I+IG1faW5wdXRD
dXJzb3I7CiAjZW5kaWYKIAogICAgIFRpbWVyPERvY3VtZW50PiBtX2RpZEFzc29jaWF0ZUZvcm1D
b250cm9sc1RpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDEyZTBiNDQxZjBlNGY3ZWMwZDJkZmMyZDdlNGMxNjAw
NzMxYWQ2OGUuLmM3NThhOWYxZDkxMjQ3OWMzZWZhYzQ3ZDRmYzYwNzg2ZTAxZmE1ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5j
cHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAzYTFhMDM3OGNkYTM5YjM5
ZTQxMGQzMGE1ZDAxNjk3ODU1Mjg3OTcyLi4wNjk4MzliOTE1YmFjYTI3Y2ZkZGIyZTkyMTUyNDQ2
M2M4MWJiNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZh
c0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TFZpZGVvRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVNu
YXBzaG90dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNw
cAppbmRleCA4ZjFkMjJhY2ZlNGQ3ZTk3NTU0Zjc2YjA2YzJjZWEzMmQ4MGY1MjgxLi40Y2MyODJk
YTRlZmQxZWJhZWYyZDhiOGJmYzdjMmI4NDQxMTQ3OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lU25hcHNob3R0aW5nLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IDg1MTgxODc4MzU1YmIxNzVkMzNkNTUyZWZiOWY0OGNlNmY1MGE3MDEuLjY1NGVi
NjUxNWUwOTA1YmM5YzVmZTQ4ZWFmZjI4OTQ0N2QyNDdlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApA
QCAtOTQsNiArOTQsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogI2lm
IEVOQUJMRShXRUJfUkVQTEFZKQorI2luY2x1ZGUgPHJlcGxheS9JbnB1dEN1cnNvci5oPgogI2lu
Y2x1ZGUgIlJlcGxheUNvbnRyb2xsZXIuaCIKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Ry
YWdJbWFnZS5oCmluZGV4IDRmNDEwNTc0NDQyYjdjYTViNjBlZjY5MjdlMDMxZTVhZGI2MGEzOGUu
LjkxNzk4MzkzMjRiYmMxMWI4NzA4ZjE5NzI4ZmIwZTUxYzBkNGE4N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RyYWdJbWFnZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJGbG9hdFNp
emUuaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5nTW9kZS5oIgotI2luY2x1ZGUgIkZyYW1lU25h
cHNob3R0aW5nLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIklu
dFNpemUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDE0YjJiNTQ4YWQ1OWUxZWRj
NzE2MWExMWM0OTMwZWIxMGZjN2MxZTMuLmVkYzczZmFhMjViZmVkMTlhYzA2NGJlNDBlMWQxZWRm
YmNkNDFjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgog
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAj
aW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCiAjaW5j
bHVkZSAiSW50UmVjdC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudEltYWdlLmNwcAppbmRleCA2ZTY5MjM2YjQzYzBkNTc3YzA1YzJiZGJkOThhNTEw
MjZkOGNkYmMwLi4wNTI3MTIwMGVhM2I4YjQyZWU2ZDk4NDFlNTI5NWFkMjQ3NzYzMmZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNw
cApAQCAtMjgsMTAgKzI4LDIxIEBACiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUg
Ikxlbmd0aC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0dyYWRpZW50SW1hZ2U6OkdyYWRp
ZW50SW1hZ2UoUGFzc1JlZlB0cjxHcmFkaWVudD4gZ2VuZXJhdG9yLCBjb25zdCBGbG9hdFNpemUm
IHNpemUpCisgICAgOiBtX2dyYWRpZW50KGdlbmVyYXRvcikKK3sKKyAgICBzZXRDb250YWluZXJT
aXplKHNpemUpOworfQorCitHcmFkaWVudEltYWdlOjp+R3JhZGllbnRJbWFnZSgpCit7Cit9CisK
IHZvaWQgR3JhZGllbnRJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGRlc3RDb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9y
U3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGVTYXZlciBzdGF0ZVNhdmVyKCpkZXN0Q29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmgKaW5kZXggNjY1NjdjNmY0OTIwMDE3Mzll
ZTE1ZDA3MTQ3YTFlM2VjOWQ2MmU0Yy4uNDAxYzVmYTIwMWFkMTAzODYwZWFiYzhjOTYzYTBkZjRj
NGVhYjM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRp
ZW50SW1hZ2UuaApAQCAtMzAsMTEgKzMwLDEyIEBACiAjaW5jbHVkZSAiR2VuZXJhdGVkSW1hZ2Uu
aCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAi
SW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgSW1hZ2VCdWZmZXI7CisKIGNsYXNzIEdyYWRpZW50SW1hZ2UgZmluYWwg
OiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEdyYWRpZW50SW1hZ2U+IGNyZWF0ZShQYXNzUmVmUHRyPEdyYWRpZW50PiBnZW5lcmF0b3IsIGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSkKQEAgLTQyLDE4ICs0MywxNCBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgR3JhZGllbnRJbWFnZShnZW5lcmF0b3IsIHNpemUpKTsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIH5HcmFkaWVudEltYWdlKCkgeyB9CisgICAgdmlydHVhbCB+R3Jh
ZGllbnRJbWFnZSgpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKICAgICAgICAg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlKSBvdmVy
cmlkZTsKIAotICAgIEdyYWRpZW50SW1hZ2UoUGFzc1JlZlB0cjxHcmFkaWVudD4gZ2VuZXJhdG9y
LCBjb25zdCBGbG9hdFNpemUmIHNpemUpCi0gICAgICAgIDogbV9ncmFkaWVudChnZW5lcmF0b3Ip
Ci0gICAgewotICAgICAgICBzZXRDb250YWluZXJTaXplKHNpemUpOwotICAgIH0KKyAgICBHcmFk
aWVudEltYWdlKFBhc3NSZWZQdHI8R3JhZGllbnQ+LCBjb25zdCBGbG9hdFNpemUmKTsKIAogcHJp
dmF0ZToKICAgICBSZWZQdHI8R3JhZGllbnQ+IG1fZ3JhZGllbnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCA2MTE3NmQ4NWMzOTIzYmVlNzNkZmJiMDYyOGE3
YzQyZTUwMDA1MzAxLi5iZTlmZGUyOWM4ODJjODZkMDcyZjBmMTQ4ODM0ZGQxOGU0NTcxNDI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTMzLDcgKzMzLDYg
QEAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAj
aW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNs
dWRlICJOYXRpdmVJbWFnZVB0ci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmNwcAppbmRleCAxMGM2YWQwYTYxODhiZDc5YmNkNDRlMTVjNWFk
ODYxNjZiNzg5NDZjLi5iMzg0MzcyZWYzZTExODZkZDRlNWZkZGQzMjljYjhkOTc5MDY4OTcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VC
dWZmZXIuaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkludFJl
Y3QuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCBiMDgwZjU4MDM0YTc4NDY1MjE5
Njk5M2MxMzM4ZTZhYjUwZWI0YzM3Li41Yzk5NDk5MTk1YjdlZGFiMDk0YjJjYTlkNmNmMDY2NTdm
NTAzZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTMwLDE1ICszMCwxMSBAQAogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgi
CiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNs
dWRlICJHcmFwaGljc1R5cGVzM0QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAi
SW1hZ2VCdWZmZXJEYXRhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgotI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSW5saW5lcy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvVHlwZWRBcnJheUlubGlu
ZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC00NywxMjQgKzQzLDEy
NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBJbWFnZTsKLSAgICBjbGFz
cyBJbWFnZURhdGE7Ci0gICAgY2xhc3MgSW50UG9pbnQ7Ci0gICAgY2xhc3MgSW50UmVjdDsKLSAg
ICBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKLQotICAgIGVudW0gTXVsdGlwbHkgewotICAgICAg
ICBQcmVtdWx0aXBsaWVkLAotICAgICAgICBVbm11bHRpcGxpZWQKLSAgICB9OwotCi0gICAgZW51
bSBSZW5kZXJpbmdNb2RlIHsKLSAgICAgICAgVW5hY2NlbGVyYXRlZCwKLSAgICAgICAgVW5hY2Nl
bGVyYXRlZE5vblBsYXRmb3JtQnVmZmVyLCAvLyBVc2UgcGxhaW4gbWVtb3J5IGFsbG9jYXRpb24g
cmF0aGVyIHRoYW4gcGxhdGZvcm0gQVBJIHRvIGFsbG9jYXRlIGJhY2tpbmcgc3RvcmUuCi0gICAg
ICAgIEFjY2VsZXJhdGVkCi0gICAgfTsKK2NsYXNzIEZsb2F0UmVjdDsKK2NsYXNzIEdyYXBoaWNz
Q29udGV4dDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDNEOworY2xhc3MgSW1hZ2U7CitjbGFzcyBJ
bWFnZURhdGE7CitjbGFzcyBJbnRQb2ludDsKK2NsYXNzIEludFJlY3Q7CisKK2VudW0gTXVsdGlw
bHkgeworICAgIFByZW11bHRpcGxpZWQsCisgICAgVW5tdWx0aXBsaWVkCit9OworCitlbnVtIFJl
bmRlcmluZ01vZGUgeworICAgIFVuYWNjZWxlcmF0ZWQsCisgICAgVW5hY2NlbGVyYXRlZE5vblBs
YXRmb3JtQnVmZmVyLCAvLyBVc2UgcGxhaW4gbWVtb3J5IGFsbG9jYXRpb24gcmF0aGVyIHRoYW4g
cGxhdGZvcm0gQVBJIHRvIGFsbG9jYXRlIGJhY2tpbmcgc3RvcmUuCisgICAgQWNjZWxlcmF0ZWQK
K307CisKK2VudW0gQmFja2luZ1N0b3JlQ29weSB7CisgICAgQ29weUJhY2tpbmdTdG9yZSwgLy8g
R3VhcmFudGVlIHN1YnNlcXVlbnQgZHJhd3MgZG9uJ3QgYWZmZWN0IHRoZSBjb3B5LgorICAgIERv
bnRDb3B5QmFja2luZ1N0b3JlIC8vIFN1YnNlcXVlbnQgZHJhd3MgbWF5IGFmZmVjdCB0aGUgY29w
eS4KK307CisKK2VudW0gU2NhbGVCZWhhdmlvciB7CisgICAgU2NhbGVkLAorICAgIFVuc2NhbGVk
Cit9OworCitjbGFzcyBJbWFnZUJ1ZmZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW1h
Z2VCdWZmZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICAvLyBXaWxs
IHJldHVybiBhIG51bGwgcG9pbnRlciBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29s
b3JTcGFjZURldmljZVJHQiwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVy
YXRlZCkKKyAgICB7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlcihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCBzdWNjZXNzKSk7CisgICAg
ICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBy
ZXR1cm4gYnVmZmVyOworICAgIH0KKworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXI+IGNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBjb25zdCBHcmFwaGljc0NvbnRleHQqLCBib29sIGhh
c0FscGhhKTsKKworICAgIH5JbWFnZUJ1ZmZlcigpOworCisgICAgLy8gVGhlIGFjdHVhbCByZXNv
bHV0aW9uIG9mIHRoZSBiYWNraW5nIHN0b3JlCisgICAgY29uc3QgSW50U2l6ZSYgaW50ZXJuYWxT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisgICAgY29uc3QgSW50U2l6ZSYgbG9naWNh
bFNpemUoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxTaXplOyB9CisKKyAgICBHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQoKSBjb25zdDsKKworICAgIFBhc3NSZWZQdHI8SW1hZ2U+IGNvcHlJbWFn
ZShCYWNraW5nU3RvcmVDb3B5ID0gQ29weUJhY2tpbmdTdG9yZSwgU2NhbGVCZWhhdmlvciA9IFNj
YWxlZCkgY29uc3Q7CisgICAgLy8gR2l2ZSBoaW50cyBvbiB0aGUgZmFzdGVyIGNvcHlJbWFnZSBN
b2RlLCByZXR1cm4gRG9udENvcHlCYWNraW5nU3RvcmUgaWYgaXQgc3VwcG9ydHMgdGhlIERvbnRD
b3B5QmFja2luZ1N0b3JlIGJlaGF2aW9yCisgICAgLy8gb3IgcmV0dXJuIENvcHlCYWNraW5nU3Rv
cmUgaWYgaXQgZG9lc24ndC4gIAorICAgIHN0YXRpYyBCYWNraW5nU3RvcmVDb3B5IGZhc3RDb3B5
SW1hZ2VNb2RlKCk7CisKKyAgICBlbnVtIENvb3JkaW5hdGVTeXN0ZW0geyBMb2dpY2FsQ29vcmRp
bmF0ZVN5c3RlbSwgQmFja2luZ1N0b3JlQ29vcmRpbmF0ZVN5c3RlbSB9OworCisgICAgUGFzc1Jl
ZlB0cjxVaW50OENsYW1wZWRBcnJheT4gZ2V0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhKGNvbnN0IElu
dFJlY3QmLCBDb29yZGluYXRlU3lzdGVtID0gTG9naWNhbENvb3JkaW5hdGVTeXN0ZW0pIGNvbnN0
OworICAgIFBhc3NSZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IGdldFByZW11bHRpcGxpZWRJbWFn
ZURhdGEoY29uc3QgSW50UmVjdCYsIENvb3JkaW5hdGVTeXN0ZW0gPSBMb2dpY2FsQ29vcmRpbmF0
ZVN5c3RlbSkgY29uc3Q7CisKKyAgICB2b2lkIHB1dEJ5dGVBcnJheShNdWx0aXBseSBtdWx0aXBs
aWVkLCBVaW50OENsYW1wZWRBcnJheSosIGNvbnN0IEludFNpemUmIHNvdXJjZVNpemUsIGNvbnN0
IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIENvb3JkaW5h
dGVTeXN0ZW0gPSBMb2dpY2FsQ29vcmRpbmF0ZVN5c3RlbSk7CiAgICAgCi0gICAgZW51bSBCYWNr
aW5nU3RvcmVDb3B5IHsKLSAgICAgICAgQ29weUJhY2tpbmdTdG9yZSwgLy8gR3VhcmFudGVlIHN1
YnNlcXVlbnQgZHJhd3MgZG9uJ3QgYWZmZWN0IHRoZSBjb3B5LgotICAgICAgICBEb250Q29weUJh
Y2tpbmdTdG9yZSAvLyBTdWJzZXF1ZW50IGRyYXdzIG1heSBhZmZlY3QgdGhlIGNvcHkuCi0gICAg
fTsKLQotICAgIGVudW0gU2NhbGVCZWhhdmlvciB7Ci0gICAgICAgIFNjYWxlZCwKLSAgICAgICAg
VW5zY2FsZWQKLSAgICB9OwotCi0gICAgY2xhc3MgSW1hZ2VCdWZmZXIgewotICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShJbWFnZUJ1ZmZlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwot
ICAgIHB1YmxpYzoKLSAgICAgICAgLy8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxs
b2NhdGlvbiBmYWlsdXJlLgotICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUg
PSAxLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UgPSBDb2xvclNwYWNlRGV2aWNlUkdCLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4gYnVmZmVyKG5ldyBJbWFnZUJ1ZmZlcihzaXplLCByZXNvbHV0aW9uU2NhbGUs
IGNvbG9yU3BhY2UsIHJlbmRlcmluZ01vZGUsIHN1Y2Nlc3MpKTsKLSAgICAgICAgICAgIGlmICgh
c3VjY2VzcykKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIHJl
dHVybiBidWZmZXI7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGZs
b2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0Kiwg
Ym9vbCBoYXNBbHBoYSk7Ci0KLSAgICAgICAgfkltYWdlQnVmZmVyKCk7Ci0KLSAgICAgICAgLy8g
VGhlIGFjdHVhbCByZXNvbHV0aW9uIG9mIHRoZSBiYWNraW5nIHN0b3JlCi0gICAgICAgIGNvbnN0
IEludFNpemUmIGludGVybmFsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQotICAgICAg
ICBjb25zdCBJbnRTaXplJiBsb2dpY2FsU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFNp
emU7IH0KLQotICAgICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKLQotICAg
ICAgICBQYXNzUmVmUHRyPEltYWdlPiBjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlC
YWNraW5nU3RvcmUsIFNjYWxlQmVoYXZpb3IgPSBTY2FsZWQpIGNvbnN0OwotICAgICAgICAvLyBH
aXZlIGhpbnRzIG9uIHRoZSBmYXN0ZXIgY29weUltYWdlIE1vZGUsIHJldHVybiBEb250Q29weUJh
Y2tpbmdTdG9yZSBpZiBpdCBzdXBwb3J0cyB0aGUgRG9udENvcHlCYWNraW5nU3RvcmUgYmVoYXZp
b3IKLSAgICAgICAgLy8gb3IgcmV0dXJuIENvcHlCYWNraW5nU3RvcmUgaWYgaXQgZG9lc24ndC4g
IAotICAgICAgICBzdGF0aWMgQmFja2luZ1N0b3JlQ29weSBmYXN0Q29weUltYWdlTW9kZSgpOwot
Ci0gICAgICAgIGVudW0gQ29vcmRpbmF0ZVN5c3RlbSB7IExvZ2ljYWxDb29yZGluYXRlU3lzdGVt
LCBCYWNraW5nU3RvcmVDb29yZGluYXRlU3lzdGVtIH07Ci0KLSAgICAgICAgUGFzc1JlZlB0cjxV
aW50OENsYW1wZWRBcnJheT4gZ2V0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhKGNvbnN0IEludFJlY3Qm
LCBDb29yZGluYXRlU3lzdGVtID0gTG9naWNhbENvb3JkaW5hdGVTeXN0ZW0pIGNvbnN0OwotICAg
ICAgICBQYXNzUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBnZXRQcmVtdWx0aXBsaWVkSW1hZ2VE
YXRhKGNvbnN0IEludFJlY3QmLCBDb29yZGluYXRlU3lzdGVtID0gTG9naWNhbENvb3JkaW5hdGVT
eXN0ZW0pIGNvbnN0OwotCi0gICAgICAgIHZvaWQgcHV0Qnl0ZUFycmF5KE11bHRpcGx5IG11bHRp
cGxpZWQsIFVpbnQ4Q2xhbXBlZEFycmF5KiwgY29uc3QgSW50U2l6ZSYgc291cmNlU2l6ZSwgY29u
c3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgQ29vcmRp
bmF0ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKTsKLSAgICAgICAgCi0gICAgICAg
IHZvaWQgY29udmVydFRvTHVtaW5hbmNlTWFzaygpOwotICAgICAgICAKLSAgICAgICAgU3RyaW5n
IHRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdHkg
PSAwLCBDb29yZGluYXRlU3lzdGVtID0gTG9naWNhbENvb3JkaW5hdGVTeXN0ZW0pIGNvbnN0Owor
ICAgIHZvaWQgY29udmVydFRvTHVtaW5hbmNlTWFzaygpOworICAgIAorICAgIFN0cmluZyB0b0Rh
dGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgZG91YmxlKiBxdWFsaXR5ID0gMCwg
Q29vcmRpbmF0ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKSBjb25zdDsKICNpZiAh
VVNFKENHKQotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0IHsg
cmV0dXJuIEFmZmluZVRyYW5zZm9ybSgpOyB9Ci0gICAgICAgIHZvaWQgdHJhbnNmb3JtQ29sb3JT
cGFjZShDb2xvclNwYWNlIHNyY0NvbG9yU3BhY2UsIENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSk7
Ci0gICAgICAgIHZvaWQgcGxhdGZvcm1UcmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IFZlY3Rvcjxp
bnQ+Jik7CisgICAgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVy
biBBZmZpbmVUcmFuc2Zvcm0oKTsgfQorICAgIHZvaWQgdHJhbnNmb3JtQ29sb3JTcGFjZShDb2xv
clNwYWNlIHNyY0NvbG9yU3BhY2UsIENvbG9yU3BhY2UgZHN0Q29sb3JTcGFjZSk7CisgICAgdm9p
ZCBwbGF0Zm9ybVRyYW5zZm9ybUNvbG9yU3BhY2UoY29uc3QgVmVjdG9yPGludD4mKTsKICNlbHNl
Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4g
QWZmaW5lVHJhbnNmb3JtKDEsIDAsIDAsIC0xLCAwLCBtX2RhdGEubV9iYWNraW5nU3RvcmVTaXpl
LmhlaWdodCgpKTsgfQorICAgIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3Qg
eyByZXR1cm4gQWZmaW5lVHJhbnNmb3JtKDEsIDAsIDAsIC0xLCAwLCBtX2RhdGEubV9iYWNraW5n
U3RvcmVTaXplLmhlaWdodCgpKTsgfQogI2VuZGlmCi0gICAgICAgIFBsYXRmb3JtTGF5ZXIqIHBs
YXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkg
Y29uc3Q7CiAKLSAgICAgICAgLy8gRklYTUU6IGN1cnJlbnQgaW1wbGVtZW50YXRpb25zIG9mIHRo
aXMgbWV0aG9kIGhhdmUgdGhlIHJlc3RyaWN0aW9uIHRoYXQgdGhleSBvbmx5IHdvcmsKLSAgICAg
ICAgLy8gd2l0aCB0ZXh0dXJlcyB0aGF0IGFyZSBSR0Igb3IgUkdCQSBmb3JtYXQsIGFuZCBVTlNJ
R05FRF9CWVRFIHR5cGUuCi0gICAgICAgIGJvb2wgY29weVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBo
aWNzQ29udGV4dDNEJiwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIGJvb2wsIGJvb2wpOwor
ICAgIC8vIEZJWE1FOiBjdXJyZW50IGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBoYXZl
IHRoZSByZXN0cmljdGlvbiB0aGF0IHRoZXkgb25seSB3b3JrCisgICAgLy8gd2l0aCB0ZXh0dXJl
cyB0aGF0IGFyZSBSR0Igb3IgUkdCQSBmb3JtYXQsIGFuZCBVTlNJR05FRF9CWVRFIHR5cGUuCisg
ICAgYm9vbCBjb3B5VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QmLCBQbGF0Zm9y
bTNET2JqZWN0LCBHQzNEZW51bSwgYm9vbCwgYm9vbCk7CiAKLSAgICAgICAgRmxvYXRTaXplIHNw
YWNlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3BhY2U7IH0KLSAgICAgICAgdm9pZCBzZXRTcGFj
ZVNpemUoY29uc3QgRmxvYXRTaXplJiBzcGFjZSkKLSAgICAgICAgewotICAgICAgICAgICAgbV9z
cGFjZSA9IHNwYWNlOwotICAgICAgICB9CisgICAgRmxvYXRTaXplIHNwYWNlU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3BhY2U7IH0KKyAgICB2b2lkIHNldFNwYWNlU2l6ZShjb25zdCBGbG9hdFNp
emUmIHNwYWNlKQorICAgIHsKKyAgICAgICAgbV9zcGFjZSA9IHNwYWNlOworICAgIH0KIAotICAg
IHByaXZhdGU6Citwcml2YXRlOgogI2lmIFVTRShDRykKLSAgICAgICAgLy8gVGhlIHJldHVybmVk
IGltYWdlIG1pZ2h0IGJlIGxhcmdlciB0aGFuIHRoZSBpbnRlcm5hbFNpemUoKS4gSWYgeW91IHdh
bnQgdGhlIHNtYWxsZXIKLSAgICAgICAgLy8gaW1hZ2UsIGNyb3AgdGhlIHJlc3VsdC4KLSAgICAg
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5
ID0gQ29weUJhY2tpbmdTdG9yZSkgY29uc3Q7Ci0gICAgICAgIHZvaWQgZmx1c2hDb250ZXh0KCkg
Y29uc3Q7CisgICAgLy8gVGhlIHJldHVybmVkIGltYWdlIG1pZ2h0IGJlIGxhcmdlciB0aGFuIHRo
ZSBpbnRlcm5hbFNpemUoKS4gSWYgeW91IHdhbnQgdGhlIHNtYWxsZXIKKyAgICAvLyBpbWFnZSwg
Y3JvcCB0aGUgcmVzdWx0LgorICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjb3B5TmF0aXZlSW1h
Z2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlCYWNraW5nU3RvcmUpIGNvbnN0OworICAgIHZvaWQg
Zmx1c2hDb250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKLSAgICAgICAgdm9pZCBjbGlwKEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OworICAgIHZvaWQgY2xpcChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKIAotICAgICAgICB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2Rl
Tm9ybWFsLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKLSAgICAgICAgdm9pZCBk
cmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYg
cGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsKTsKKyAg
ICB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0x
LCAtMSksIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2Rl
ID0gQmxlbmRNb2RlTm9ybWFsLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAg
ICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9h
dFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJh
dG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBCbGVuZE1vZGUgPSBCbGVuZE1vZGVOb3Jt
YWwpOwogCi0gICAgICAgIGlubGluZSB2b2lkIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VNYXNr
KCk7CisgICAgaW5saW5lIHZvaWQgZ2VuZXJpY0NvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIAot
ICAgICAgICBmcmllbmQgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwotICAgICAgICBmcmllbmQgY2xh
c3MgR2VuZXJhdGVkSW1hZ2U7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZTsKLSAgICAgICAgZnJpZW5kIGNsYXNzIEdyYWRpZW50SW1hZ2U7CisgICAgZnJpZW5k
IGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKKyAgICBmcmllbmQgY2xhc3MgR2VuZXJhdGVkSW1hZ2U7
CisgICAgZnJpZW5kIGNsYXNzIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBj
bGFzcyBHcmFkaWVudEltYWdlOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgSW1hZ2VCdWZmZXJE
YXRhIG1fZGF0YTsKLSAgICAgICAgSW50U2l6ZSBtX3NpemU7Ci0gICAgICAgIEludFNpemUgbV9s
b2dpY2FsU2l6ZTsKLSAgICAgICAgZmxvYXQgbV9yZXNvbHV0aW9uU2NhbGU7Ci0gICAgICAgIE93
blB0cjxHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsKLSAgICAgICAgRmxvYXRTaXplIG1fc3Bh
Y2U7Citwcml2YXRlOgorICAgIEltYWdlQnVmZmVyRGF0YSBtX2RhdGE7CisgICAgSW50U2l6ZSBt
X3NpemU7CisgICAgSW50U2l6ZSBtX2xvZ2ljYWxTaXplOworICAgIGZsb2F0IG1fcmVzb2x1dGlv
blNjYWxlOworICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsKKyAgICBGbG9h
dFNpemUgbV9zcGFjZTsKIAotICAgICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIHdpbGwgcGxhY2Ug
aXRzIHN1Y2Nlc3MgaW50byB0aGUgZ2l2ZW4gb3V0LXZhcmlhYmxlCi0gICAgICAgIC8vIHNvIHRo
YXQgY3JlYXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQgcmV0dXJuIGZhaWx1cmUuCi0gICAgICAg
IEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29s
b3JTcGFjZSwgUmVuZGVyaW5nTW9kZSwgYm9vbCYgc3VjY2Vzcyk7Ci0gICAgfTsKKyAgICAvLyBU
aGlzIGNvbnN0cnVjdG9yIHdpbGwgcGxhY2UgaXRzIHN1Y2Nlc3MgaW50byB0aGUgZ2l2ZW4gb3V0
LXZhcmlhYmxlCisgICAgLy8gc28gdGhhdCBjcmVhdGUoKSBrbm93cyB3aGVuIGl0IHNob3VsZCBy
ZXR1cm4gZmFpbHVyZS4KKyAgICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBmbG9hdCBy
ZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3Mp
OworfTsKIAogI2lmIFVTRShDRykKLSAgICBTdHJpbmcgSW1hZ2VEYXRhVG9EYXRhVVJMKGNvbnN0
IEltYWdlRGF0YSYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IGRvdWJsZSogcXVhbGl0
eSk7CitTdHJpbmcgSW1hZ2VEYXRhVG9EYXRhVVJMKGNvbnN0IEltYWdlRGF0YSYsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IGRvdWJsZSogcXVhbGl0eSk7CiAjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9TaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNw
cAppbmRleCA1NjM4MzQ2NmVkNTg2ZWMzOTUwY2YwY2E4ZTZhMzQwNWIxMTdiMmViLi41ZmUxYTI4
YjA3ZWM3OTFhOTM4YTYxNTYyYmFkNTFiNjNhMTc4M2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkJveFNo
YXBlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIK
KyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlBvbHlnb25TaGFwZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWlu
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIu
Y3BwCmluZGV4IDgwM2E4YjZlMDIxZjVlZTQ4YTcxNmIzN2JlMzFjY2QyZGQxZWMwMDguLjY4OWEz
ZDBlMWE2NGZlZGFiMTI1MGYwMDc5MzdmNzY0MmY5M2NlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKQEAgLTI1LDYgKzI1
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdDb250YWluZXIuaCIKIAogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTGF5
b3V0UmVwYWludGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJS
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VSSVJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5o
CmluZGV4IDk5ZGI4Zjc4M2RkMTg4ZmI5ZGNiYjVmZWQ3NjgxMTdlZGRiNTEwZDEuLjkwYmIxYjQ5
ODQ5MzFmMjY3NDhlYWRiYjAzMzNjMGIyNWFmNjgyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJ
UmVmZXJlbmNlLmgKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZpbmUgU1ZHVVJJUmVmZXJlbmNlX2gK
IAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229567</attachid>
            <date>2014-04-17 12:29:33 -0700</date>
            <delta_ts>2014-04-18 10:44:51 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-131797-20140417122913.patch</filename>
            <type>text/plain</type>
            <size>23663</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFhOWJhYzcxZDkwYzA5
OWUzMWNhMDU2MzIzMTg2ZmE4ZTA4YjFkYi4uNjFkYjVjMTMyZDQ0MzhmNDkwZWU3NTY4YjFjNjY5
NTk3MmU0ZDZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE0LTA0LTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzb21l
IGluY2x1ZGVzIGZyb20gaW1hZ2UtcmVsYXRlZCBoZWFkZXJzLCBhbmQgRG9jdW1lbnQuaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNzk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgorCisgICAgICAgIFJlbW92ZSBzb21l
ICNpbmNsdWRlcyBmcm9tIERvY3VtZW50LmgsIERyYWdJbWFnZS5oLCBHcmFkaWVudEltYWdlLmgs
CisgICAgICAgIEltYWdlLmgsIGFuZCBJbWFnZUJ1ZmZlci5oIGFuZCBkZWFsIHdpdGggdGhlIGZh
bGxvdXQuCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5oOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SW5wdXRDdXJzb3Ip
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmlucHV0Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRJbnB1dEN1cnNv
cik6IERlbGV0ZWQuCisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgICogcGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHA6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhZGllbnRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFkaWVudEltYWdlOjpHcmFk
aWVudEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50SW1hZ2U6On5HcmFkaWVudElt
YWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmludGVybmFsU2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6bG9naWNhbFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZm
ZXI6OmJhc2VUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OnNwYWNl
U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6c2V0U3BhY2VTaXplKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHA6CisgICAgICAgICogc3ZnL1NWR1VSSVJlZmVyZW5j
ZS5oOgorCiAyMDE0LTA0LTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5dIEEgZmV3IGZpbmFsIGNsZWFudXBzIHRvIHRoZSBEYXRhT2JqZWN0IGNs
YXNzZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCAzMjFlZGE2YWIzZmE2NmEw
ZWIzMTM3ZjgzZTE0YTU5ODg5OGQ2ZjA0Li43NTA4MDkxMDUxMjgyN2E0ZGE1ZGI0NWQzNmE2YzUy
MTBmNTBlN2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTMzLDYgKzMzLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKK2NsYXNzIFF1YWxp
ZmllZE5hbWU7CiBjbGFzcyBSZW5kZXJFbGVtZW50OwogCiB0eXBlZGVmIHZvaWQgKCpOb2RlQ2Fs
bGJhY2spKE5vZGUmLCB1bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmYzYw
MGQ1OWU0MjA2NDQyNTY4MWQxYzNjYjBhY2EzOWY5YzFiNDI4Li5jZWFiMjE3OTBiZGY0ODk1YjVk
ZDViY2VkYWEwM2UxNWIyMWFiZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIyMiw2
ICsyMjIsNyBAQAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQogI2luY2x1ZGUgIldlYlJlcGxheUlu
cHV0cy5oIgogI2luY2x1ZGUgPHJlcGxheS9FbXB0eUlucHV0Q3Vyc29yLmg+CisjaW5jbHVkZSA8
cmVwbGF5L0lucHV0Q3Vyc29yLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTYxODgsNCArNjE4OSwxMSBAQCBib29sIERvY3VtZW50OjpoYXNGb2N1cygpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCit2b2lkIERvY3VtZW50
OjpzZXRJbnB1dEN1cnNvcihQYXNzUmVmUHRyPElucHV0Q3Vyc29yPiBjdXJzb3IpCit7CisgICAg
bV9pbnB1dEN1cnNvciA9IGN1cnNvcjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGZhOTBmOGZhMGE0NTlmMGE0N2ViMGY3MjdiY2Ni
ZThhY2Y1YWI2M2YuLjAzYjU2YjcxZGQ4YTZlNGMwOWVlNmVkMDExODljODk3OThjY2NiNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zNSwxMiArMzUsMTAgQEAKICNpbmNsdWRlICJEb2N1bWVu
dFN0eWxlU2hlZXRDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1pbmcuaCIKICNp
bmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgotI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiSWNvblVSTC5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIK
LSNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIK
ICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCkBAIC01OSw5ICs1NywxMiBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBFeGVjU3RhdGU7
CiAjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCi0jaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vyc29yLmg+
CitjbGFzcyBJbnB1dEN1cnNvcjsKICNlbmRpZgorfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTg4LDcgKzg5LDYgQEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXI7CiBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNsYXNzIERvY3VtZW50U2hh
cmVkT2JqZWN0UG9vbDsKLWNsYXNzIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb247CiBjbGFz
cyBEb2N1bWVudFR5cGU7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRW50aXR5UmVmZXJlbmNlOwpA
QCAtMTMwLDYgKzEzMCw3IEBAIGNsYXNzIE5vZGVJdGVyYXRvcjsKIGNsYXNzIFBhZ2U7CiBjbGFz
cyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CitjbGFz
cyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUmFuZ2U7CiBjbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lcjsKIGNsYXNzIFJlbmRlclZpZXc7CkBAIC00NzksOCArNDgwLDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgVVJMIGJhc2VVUkkoKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShXRUJf
UkVQTEFZKQotICAgIElucHV0Q3Vyc29yJiBpbnB1dEN1cnNvcigpIGNvbnN0IHsgcmV0dXJuICpt
X2lucHV0Q3Vyc29yOyB9Ci0gICAgdm9pZCBzZXRJbnB1dEN1cnNvcihQYXNzUmVmUHRyPElucHV0
Q3Vyc29yPiBjdXJzb3IpIHsgbV9pbnB1dEN1cnNvciA9IGN1cnNvcjsgfQorICAgIEpTQzo6SW5w
dXRDdXJzb3ImIGlucHV0Q3Vyc29yKCkgY29uc3QgeyByZXR1cm4gKm1faW5wdXRDdXJzb3I7IH0K
KyAgICB2b2lkIHNldElucHV0Q3Vyc29yKFBhc3NSZWZQdHI8SlNDOjpJbnB1dEN1cnNvcj4pOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKQEAgLTE2OTIsNyArMTY5
Myw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQotICAgIFJl
ZlB0cjxJbnB1dEN1cnNvcj4gbV9pbnB1dEN1cnNvcjsKKyAgICBSZWZQdHI8SlNDOjpJbnB1dEN1
cnNvcj4gbV9pbnB1dEN1cnNvcjsKICNlbmRpZgogCiAgICAgVGltZXI8RG9jdW1lbnQ+IG1fZGlk
QXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggMTJlMGI0NDFmMGU0ZjdlYzBk
MmRmYzJkN2U0YzE2MDA3MzFhZDY4ZS4uYzc1OGE5ZjFkOTEyNDc5YzNlZmFjNDdkNGZjNjA3ODZl
MDFmYTU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk11dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24uaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
UXVhbGlmaWVkTmFtZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDNh
MWEwMzc4Y2RhMzliMzllNDEwZDMwYTVkMDE2OTc4NTUyODc5NzIuLjA2OTgzOWI5MTViYWNhMjdj
ZmRkYjJlOTIxNTI0NDYzYzgxYmI0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNs
dWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVT
bmFwc2hvdHRpbmcuY3BwCmluZGV4IDhmMWQyMmFjZmU0ZDdlOTc1NTRmNzZiMDZjMmNlYTMyZDgw
ZjUyODEuLjRjYzI4MmRhNGVmZDFlYmFlZjJkOGI4YmZjN2MyYjg0NDExNDc5NTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIklt
YWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggODUxODE4NzgzNTViYjE3NWQzM2Q1NTJlZmI5ZjQ4Y2U2
ZjUwYTcwMS4uZTM5ZjY3ZGU3YzE0NGU1ZTk2YWIzNzI3YTMyZDVlNDU1NjM2Y2M1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC05NSw2ICs5NSw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkK
ICNpbmNsdWRlICJSZXBsYXlDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vy
c29yLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
cmFnSW1hZ2UuaAppbmRleCA0ZjQxMDU3NDQ0MmI3Y2E1YjYwZWY2OTI3ZTAzMWU1YWRiNjBhMzhl
Li45MTc5ODM5MzI0YmJjMTFiODcwOGYxOTcyOGZiMGU1MWMwZDRhODdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EcmFnSW1hZ2UuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiRmxvYXRT
aXplLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKLSNpbmNsdWRlICJGcmFtZVNu
YXBzaG90dGluZy5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJJ
bnRTaXplLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCAxNGIyYjU0OGFkNTllMWVk
YzcxNjFhMTFjNDkzMGViMTBmYzdjMWUzLi5lZGM3M2ZhYTI1YmZlZDE5YWMwNjRiZTQwZTFkMWVk
ZmJjZDQxY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIK
IAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgog
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnRJbWFnZS5jcHAKaW5kZXggNmU2OTIzNmI0M2MwZDU3N2MwNWMyYmRiZDk4YTUx
MDI2ZDhjZGJjMC4uMDUyNzEyMDBlYTNiOGI0MmVlNmQ5ODQxZTUyOTVhZDI0Nzc2MzJmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5j
cHAKQEAgLTI4LDEwICsyOCwyMSBAQAogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRl
ICJMZW5ndGguaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitHcmFkaWVudEltYWdlOjpHcmFk
aWVudEltYWdlKFBhc3NSZWZQdHI8R3JhZGllbnQ+IGdlbmVyYXRvciwgY29uc3QgRmxvYXRTaXpl
JiBzaXplKQorICAgIDogbV9ncmFkaWVudChnZW5lcmF0b3IpCit7CisgICAgc2V0Q29udGFpbmVy
U2l6ZShzaXplKTsKK30KKworR3JhZGllbnRJbWFnZTo6fkdyYWRpZW50SW1hZ2UoKQoreworfQor
CiB2b2lkIEdyYWRpZW50SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBkZXN0Q29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9k
ZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcigqZGVzdENvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oCmluZGV4IDY2NTY3YzZmNDkyMDAxNzM5
ZWUxNWQwNzE0N2ExZTNlYzlkNjJlNGMuLjQwMWM1ZmEyMDFhZDEwMzg2MGVhYmM4Yzk2M2EwZGY0
YzRlYWIzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YWRpZW50SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFk
aWVudEltYWdlLmgKQEAgLTMwLDExICszMCwxMiBAQAogI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdl
LmgiCiAjaW5jbHVkZSAiR3JhZGllbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIEltYWdlQnVmZmVyOworCiBjbGFzcyBHcmFkaWVudEltYWdlIGZpbmFs
IDogcHVibGljIEdlbmVyYXRlZEltYWdlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxHcmFkaWVudEltYWdlPiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFkaWVudD4gZ2VuZXJhdG9yLCBj
b25zdCBGbG9hdFNpemUmIHNpemUpCkBAIC00MiwxOCArNDMsMTQgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEdyYWRpZW50SW1hZ2UoZ2VuZXJhdG9yLCBzaXplKSk7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB+R3JhZGllbnRJbWFnZSgpIHsgfQorICAgIHZpcnR1YWwgfkdy
YWRpZW50SW1hZ2UoKTsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJs
ZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCiAgICAgICAg
IGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29t
cG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSkgb3Zl
cnJpZGU7CiAKLSAgICBHcmFkaWVudEltYWdlKFBhc3NSZWZQdHI8R3JhZGllbnQ+IGdlbmVyYXRv
ciwgY29uc3QgRmxvYXRTaXplJiBzaXplKQotICAgICAgICA6IG1fZ3JhZGllbnQoZ2VuZXJhdG9y
KQotICAgIHsKLSAgICAgICAgc2V0Q29udGFpbmVyU2l6ZShzaXplKTsKLSAgICB9CisgICAgR3Jh
ZGllbnRJbWFnZShQYXNzUmVmUHRyPEdyYWRpZW50PiwgY29uc3QgRmxvYXRTaXplJik7CiAKIHBy
aXZhdGU6CiAgICAgUmVmUHRyPEdyYWRpZW50PiBtX2dyYWRpZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggNjExNzZkODVjMzkyM2JlZTczZGZiYjA2Mjhh
N2M0MmU1MDAwNTMwMS4uYmU5ZmRlMjljODgyYzg2ZDA3MmYwZjE0ODgzNGRkMThlNDU3MTQyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC0zMyw3ICszMyw2
IEBACiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgog
I2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXggMTBjNmFkMGE2MTg4YmQ3OWJjZDQ0ZTE1YzVh
ZDg2MTY2Yjc4OTQ2Yy4uYjM4NDM3MmVmM2UxMTg2ZGQ0ZTVmZGRkMzI5Y2I4ZDk3OTA2ODk3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNw
cApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkltYWdl
QnVmZmVyLmgiCiAKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggYjA4MGY1ODAzNGE3ODQ2NTIx
OTY5OTNjMTMzOGU2YWI1MGViNGMzNy4uNWM5OTQ5OTE5NWI3ZWRhYjA5NGIyY2E5ZDZjZjA2NjU3
ZjUwM2U3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCkBAIC0zMCwxNSArMzAsMTEgQEAKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5o
IgogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUg
IkltYWdlQnVmZmVyRGF0YS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKLSNpbmNsdWRl
IDxydW50aW1lL0pTQ0lubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL1R5cGVkQXJyYXlJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8cnVudGltZS9VaW50OENsYW1wZWRBcnJheS5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNDcsMTI0ICs0Mywx
MjYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgSW1hZ2U7Ci0gICAgY2xh
c3MgSW1hZ2VEYXRhOwotICAgIGNsYXNzIEludFBvaW50OwotICAgIGNsYXNzIEludFJlY3Q7Ci0g
ICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7Ci0KLSAgICBlbnVtIE11bHRpcGx5IHsKLSAgICAg
ICAgUHJlbXVsdGlwbGllZCwKLSAgICAgICAgVW5tdWx0aXBsaWVkCi0gICAgfTsKLQotICAgIGVu
dW0gUmVuZGVyaW5nTW9kZSB7Ci0gICAgICAgIFVuYWNjZWxlcmF0ZWQsCi0gICAgICAgIFVuYWNj
ZWxlcmF0ZWROb25QbGF0Zm9ybUJ1ZmZlciwgLy8gVXNlIHBsYWluIG1lbW9yeSBhbGxvY2F0aW9u
IHJhdGhlciB0aGFuIHBsYXRmb3JtIEFQSSB0byBhbGxvY2F0ZSBiYWNraW5nIHN0b3JlLgotICAg
ICAgICBBY2NlbGVyYXRlZAotICAgIH07CitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CitjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKK2NsYXNzIEltYWdlOworY2xhc3Mg
SW1hZ2VEYXRhOworY2xhc3MgSW50UG9pbnQ7CitjbGFzcyBJbnRSZWN0OworCitlbnVtIE11bHRp
cGx5IHsKKyAgICBQcmVtdWx0aXBsaWVkLAorICAgIFVubXVsdGlwbGllZAorfTsKKworZW51bSBS
ZW5kZXJpbmdNb2RlIHsKKyAgICBVbmFjY2VsZXJhdGVkLAorICAgIFVuYWNjZWxlcmF0ZWROb25Q
bGF0Zm9ybUJ1ZmZlciwgLy8gVXNlIHBsYWluIG1lbW9yeSBhbGxvY2F0aW9uIHJhdGhlciB0aGFu
IHBsYXRmb3JtIEFQSSB0byBhbGxvY2F0ZSBiYWNraW5nIHN0b3JlLgorICAgIEFjY2VsZXJhdGVk
Cit9OworCitlbnVtIEJhY2tpbmdTdG9yZUNvcHkgeworICAgIENvcHlCYWNraW5nU3RvcmUsIC8v
IEd1YXJhbnRlZSBzdWJzZXF1ZW50IGRyYXdzIGRvbid0IGFmZmVjdCB0aGUgY29weS4KKyAgICBE
b250Q29weUJhY2tpbmdTdG9yZSAvLyBTdWJzZXF1ZW50IGRyYXdzIG1heSBhZmZlY3QgdGhlIGNv
cHkuCit9OworCitlbnVtIFNjYWxlQmVoYXZpb3IgeworICAgIFNjYWxlZCwKKyAgICBVbnNjYWxl
ZAorfTsKKworY2xhc3MgSW1hZ2VCdWZmZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElt
YWdlQnVmZmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgLy8gV2ls
bCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgorICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNp
emUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENv
bG9yU3BhY2VEZXZpY2VSR0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxl
cmF0ZWQpCisgICAgeworICAgICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJl
c29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgc3VjY2VzcykpOworICAg
ICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
cmV0dXJuIGJ1ZmZlcjsKKyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdl
QnVmZmVyPiBjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCBo
YXNBbHBoYSk7CisKKyAgICB+SW1hZ2VCdWZmZXIoKTsKKworICAgIC8vIFRoZSBhY3R1YWwgcmVz
b2x1dGlvbiBvZiB0aGUgYmFja2luZyBzdG9yZQorICAgIGNvbnN0IEludFNpemUmIGludGVybmFs
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIGNvbnN0IEludFNpemUmIGxvZ2lj
YWxTaXplKCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsU2l6ZTsgfQorCisgICAgR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CisKKyAgICBQYXNzUmVmUHRyPEltYWdlPiBjb3B5SW1h
Z2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlCYWNraW5nU3RvcmUsIFNjYWxlQmVoYXZpb3IgPSBT
Y2FsZWQpIGNvbnN0OworICAgIC8vIEdpdmUgaGludHMgb24gdGhlIGZhc3RlciBjb3B5SW1hZ2Ug
TW9kZSwgcmV0dXJuIERvbnRDb3B5QmFja2luZ1N0b3JlIGlmIGl0IHN1cHBvcnRzIHRoZSBEb250
Q29weUJhY2tpbmdTdG9yZSBiZWhhdmlvcgorICAgIC8vIG9yIHJldHVybiBDb3B5QmFja2luZ1N0
b3JlIGlmIGl0IGRvZXNuJ3QuICAKKyAgICBzdGF0aWMgQmFja2luZ1N0b3JlQ29weSBmYXN0Q29w
eUltYWdlTW9kZSgpOworCisgICAgZW51bSBDb29yZGluYXRlU3lzdGVtIHsgTG9naWNhbENvb3Jk
aW5hdGVTeXN0ZW0sIEJhY2tpbmdTdG9yZUNvb3JkaW5hdGVTeXN0ZW0gfTsKKworICAgIFBhc3NS
ZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IGdldFVubXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJ
bnRSZWN0JiwgQ29vcmRpbmF0ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKSBjb25z
dDsKKyAgICBQYXNzUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBnZXRQcmVtdWx0aXBsaWVkSW1h
Z2VEYXRhKGNvbnN0IEludFJlY3QmLCBDb29yZGluYXRlU3lzdGVtID0gTG9naWNhbENvb3JkaW5h
dGVTeXN0ZW0pIGNvbnN0OworCisgICAgdm9pZCBwdXRCeXRlQXJyYXkoTXVsdGlwbHkgbXVsdGlw
bGllZCwgVWludDhDbGFtcGVkQXJyYXkqLCBjb25zdCBJbnRTaXplJiBzb3VyY2VTaXplLCBjb25z
dCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBDb29yZGlu
YXRlU3lzdGVtID0gTG9naWNhbENvb3JkaW5hdGVTeXN0ZW0pOwogICAgIAotICAgIGVudW0gQmFj
a2luZ1N0b3JlQ29weSB7Ci0gICAgICAgIENvcHlCYWNraW5nU3RvcmUsIC8vIEd1YXJhbnRlZSBz
dWJzZXF1ZW50IGRyYXdzIGRvbid0IGFmZmVjdCB0aGUgY29weS4KLSAgICAgICAgRG9udENvcHlC
YWNraW5nU3RvcmUgLy8gU3Vic2VxdWVudCBkcmF3cyBtYXkgYWZmZWN0IHRoZSBjb3B5LgotICAg
IH07Ci0KLSAgICBlbnVtIFNjYWxlQmVoYXZpb3IgewotICAgICAgICBTY2FsZWQsCi0gICAgICAg
IFVuc2NhbGVkCi0gICAgfTsKLQotICAgIGNsYXNzIEltYWdlQnVmZmVyIHsKLSAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSW1hZ2VCdWZmZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LSAgICBwdWJsaWM6Ci0gICAgICAgIC8vIFdpbGwgcmV0dXJuIGEgbnVsbCBwb2ludGVyIG9uIGFs
bG9jYXRpb24gZmFpbHVyZS4KLSAgICAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4gY3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
ID0gMSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gQ29sb3JTcGFjZURldmljZVJHQiwgUmVuZGVy
aW5nTW9kZSByZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVyYXRlZCkKLSAgICAgICAgewotICAgICAg
ICAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW1hZ2VCdWZmZXI+IGJ1ZmZlcihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxl
LCBjb2xvclNwYWNlLCByZW5kZXJpbmdNb2RlLCBzdWNjZXNzKSk7Ci0gICAgICAgICAgICBpZiAo
IXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgICAgICBy
ZXR1cm4gYnVmZmVyOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBm
bG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCos
IGJvb2wgaGFzQWxwaGEpOwotCi0gICAgICAgIH5JbWFnZUJ1ZmZlcigpOwotCi0gICAgICAgIC8v
IFRoZSBhY3R1YWwgcmVzb2x1dGlvbiBvZiB0aGUgYmFja2luZyBzdG9yZQotICAgICAgICBjb25z
dCBJbnRTaXplJiBpbnRlcm5hbFNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KLSAgICAg
ICAgY29uc3QgSW50U2l6ZSYgbG9naWNhbFNpemUoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxT
aXplOyB9Ci0KLSAgICAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7Ci0KLSAg
ICAgICAgUGFzc1JlZlB0cjxJbWFnZT4gY29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgPSBDb3B5
QmFja2luZ1N0b3JlLCBTY2FsZUJlaGF2aW9yID0gU2NhbGVkKSBjb25zdDsKLSAgICAgICAgLy8g
R2l2ZSBoaW50cyBvbiB0aGUgZmFzdGVyIGNvcHlJbWFnZSBNb2RlLCByZXR1cm4gRG9udENvcHlC
YWNraW5nU3RvcmUgaWYgaXQgc3VwcG9ydHMgdGhlIERvbnRDb3B5QmFja2luZ1N0b3JlIGJlaGF2
aW9yCi0gICAgICAgIC8vIG9yIHJldHVybiBDb3B5QmFja2luZ1N0b3JlIGlmIGl0IGRvZXNuJ3Qu
ICAKLSAgICAgICAgc3RhdGljIEJhY2tpbmdTdG9yZUNvcHkgZmFzdENvcHlJbWFnZU1vZGUoKTsK
LQotICAgICAgICBlbnVtIENvb3JkaW5hdGVTeXN0ZW0geyBMb2dpY2FsQ29vcmRpbmF0ZVN5c3Rl
bSwgQmFja2luZ1N0b3JlQ29vcmRpbmF0ZVN5c3RlbSB9OwotCi0gICAgICAgIFBhc3NSZWZQdHI8
VWludDhDbGFtcGVkQXJyYXk+IGdldFVubXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJbnRSZWN0
JiwgQ29vcmRpbmF0ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKSBjb25zdDsKLSAg
ICAgICAgUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gZ2V0UHJlbXVsdGlwbGllZEltYWdl
RGF0YShjb25zdCBJbnRSZWN0JiwgQ29vcmRpbmF0ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRl
U3lzdGVtKSBjb25zdDsKLQotICAgICAgICB2b2lkIHB1dEJ5dGVBcnJheShNdWx0aXBseSBtdWx0
aXBsaWVkLCBVaW50OENsYW1wZWRBcnJheSosIGNvbnN0IEludFNpemUmIHNvdXJjZVNpemUsIGNv
bnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIENvb3Jk
aW5hdGVTeXN0ZW0gPSBMb2dpY2FsQ29vcmRpbmF0ZVN5c3RlbSk7Ci0gICAgICAgIAotICAgICAg
ICB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKLSAgICAgICAgCi0gICAgICAgIFN0cmlu
ZyB0b0RhdGFVUkwoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgZG91YmxlKiBxdWFsaXR5
ID0gMCwgQ29vcmRpbmF0ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKSBjb25zdDsK
KyAgICB2b2lkIGNvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKKyAgICAKKyAgICBTdHJpbmcgdG9E
YXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IGRvdWJsZSogcXVhbGl0eSA9IDAs
IENvb3JkaW5hdGVTeXN0ZW0gPSBMb2dpY2FsQ29vcmRpbmF0ZVN5c3RlbSkgY29uc3Q7CiAjaWYg
IVVTRShDRykKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0oKSBjb25zdCB7
IHJldHVybiBBZmZpbmVUcmFuc2Zvcm0oKTsgfQotICAgICAgICB2b2lkIHRyYW5zZm9ybUNvbG9y
U3BhY2UoQ29sb3JTcGFjZSBzcmNDb2xvclNwYWNlLCBDb2xvclNwYWNlIGRzdENvbG9yU3BhY2Up
OwotICAgICAgICB2b2lkIHBsYXRmb3JtVHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBWZWN0b3I8
aW50PiYpOworICAgIEFmZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1
cm4gQWZmaW5lVHJhbnNmb3JtKCk7IH0KKyAgICB2b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoQ29s
b3JTcGFjZSBzcmNDb2xvclNwYWNlLCBDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpOworICAgIHZv
aWQgcGxhdGZvcm1UcmFuc2Zvcm1Db2xvclNwYWNlKGNvbnN0IFZlY3RvcjxpbnQ+Jik7CiAjZWxz
ZQotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJu
IEFmZmluZVRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgbV9kYXRhLm1fYmFja2luZ1N0b3JlU2l6
ZS5oZWlnaHQoKSk7IH0KKyAgICBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0
IHsgcmV0dXJuIEFmZmluZVRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgbV9kYXRhLm1fYmFja2lu
Z1N0b3JlU2l6ZS5oZWlnaHQoKSk7IH0KICNlbmRpZgotICAgICAgICBQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKCkgY29uc3Q7CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigp
IGNvbnN0OwogCi0gICAgICAgIC8vIEZJWE1FOiBjdXJyZW50IGltcGxlbWVudGF0aW9ucyBvZiB0
aGlzIG1ldGhvZCBoYXZlIHRoZSByZXN0cmljdGlvbiB0aGF0IHRoZXkgb25seSB3b3JrCi0gICAg
ICAgIC8vIHdpdGggdGV4dHVyZXMgdGhhdCBhcmUgUkdCIG9yIFJHQkEgZm9ybWF0LCBhbmQgVU5T
SUdORURfQllURSB0eXBlLgotICAgICAgICBib29sIGNvcHlUb1BsYXRmb3JtVGV4dHVyZShHcmFw
aGljc0NvbnRleHQzRCYsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBib29sLCBib29sKTsK
KyAgICAvLyBGSVhNRTogY3VycmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBtZXRob2QgaGF2
ZSB0aGUgcmVzdHJpY3Rpb24gdGhhdCB0aGV5IG9ubHkgd29yaworICAgIC8vIHdpdGggdGV4dHVy
ZXMgdGhhdCBhcmUgUkdCIG9yIFJHQkEgZm9ybWF0LCBhbmQgVU5TSUdORURfQllURSB0eXBlLgor
ICAgIGJvb2wgY29weVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEJiwgUGxhdGZv
cm0zRE9iamVjdCwgR0MzRGVudW0sIGJvb2wsIGJvb2wpOwogCi0gICAgICAgIEZsb2F0U2l6ZSBz
cGFjZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3NwYWNlOyB9Ci0gICAgICAgIHZvaWQgc2V0U3Bh
Y2VTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1f
c3BhY2UgPSBzcGFjZTsKLSAgICAgICAgfQorICAgIEZsb2F0U2l6ZSBzcGFjZVNpemUoKSBjb25z
dCB7IHJldHVybiBtX3NwYWNlOyB9CisgICAgdm9pZCBzZXRTcGFjZVNpemUoY29uc3QgRmxvYXRT
aXplJiBzcGFjZSkKKyAgICB7CisgICAgICAgIG1fc3BhY2UgPSBzcGFjZTsKKyAgICB9CiAKLSAg
ICBwcml2YXRlOgorcHJpdmF0ZToKICNpZiBVU0UoQ0cpCi0gICAgICAgIC8vIFRoZSByZXR1cm5l
ZCBpbWFnZSBtaWdodCBiZSBsYXJnZXIgdGhhbiB0aGUgaW50ZXJuYWxTaXplKCkuIElmIHlvdSB3
YW50IHRoZSBzbWFsbGVyCi0gICAgICAgIC8vIGltYWdlLCBjcm9wIHRoZSByZXN1bHQuCi0gICAg
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29w
eSA9IENvcHlCYWNraW5nU3RvcmUpIGNvbnN0OwotICAgICAgICB2b2lkIGZsdXNoQ29udGV4dCgp
IGNvbnN0OworICAgIC8vIFRoZSByZXR1cm5lZCBpbWFnZSBtaWdodCBiZSBsYXJnZXIgdGhhbiB0
aGUgaW50ZXJuYWxTaXplKCkuIElmIHlvdSB3YW50IHRoZSBzbWFsbGVyCisgICAgLy8gaW1hZ2Us
IGNyb3AgdGhlIHJlc3VsdC4KKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY29weU5hdGl2ZUlt
YWdlKEJhY2tpbmdTdG9yZUNvcHkgPSBDb3B5QmFja2luZ1N0b3JlKSBjb25zdDsKKyAgICB2b2lk
IGZsdXNoQ29udGV4dCgpIGNvbnN0OwogI2VuZGlmCi0gICAgICAgIHZvaWQgY2xpcChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKKyAgICB2b2lkIGNsaXAoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBkcmF3
KEdyYXBoaWNzQ29udGV4dCosIENvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLCBDb21w
b3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9k
ZU5vcm1hbCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQg
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQm
IHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCk7Cisg
ICAgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIENvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAt
MSwgLTEpLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9k
ZSA9IEJsZW5kTW9kZU5vcm1hbCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Cisg
ICAgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9y
bWFsKTsKIAotICAgICAgICBpbmxpbmUgdm9pZCBnZW5lcmljQ29udmVydFRvTHVtaW5hbmNlTWFz
aygpOworICAgIGlubGluZSB2b2lkIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiAK
LSAgICAgICAgZnJpZW5kIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLSAgICAgICAgZnJpZW5kIGNs
YXNzIEdlbmVyYXRlZEltYWdlOwotICAgICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2U7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBHcmFkaWVudEltYWdlOworICAgIGZyaWVu
ZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdl
OworICAgIGZyaWVuZCBjbGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQg
Y2xhc3MgR3JhZGllbnRJbWFnZTsKIAotICAgIHByaXZhdGU6Ci0gICAgICAgIEltYWdlQnVmZmVy
RGF0YSBtX2RhdGE7Ci0gICAgICAgIEludFNpemUgbV9zaXplOwotICAgICAgICBJbnRTaXplIG1f
bG9naWNhbFNpemU7Ci0gICAgICAgIGZsb2F0IG1fcmVzb2x1dGlvblNjYWxlOwotICAgICAgICBP
d25QdHI8R3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7Ci0gICAgICAgIEZsb2F0U2l6ZSBtX3Nw
YWNlOworcHJpdmF0ZToKKyAgICBJbWFnZUJ1ZmZlckRhdGEgbV9kYXRhOworICAgIEludFNpemUg
bV9zaXplOworICAgIEludFNpemUgbV9sb2dpY2FsU2l6ZTsKKyAgICBmbG9hdCBtX3Jlc29sdXRp
b25TY2FsZTsKKyAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CisgICAgRmxv
YXRTaXplIG1fc3BhY2U7CiAKLSAgICAgICAgLy8gVGhpcyBjb25zdHJ1Y3RvciB3aWxsIHBsYWNl
IGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91dC12YXJpYWJsZQotICAgICAgICAvLyBzbyB0
aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hvdWxkIHJldHVybiBmYWlsdXJlLgotICAgICAg
ICBJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENv
bG9yU3BhY2UsIFJlbmRlcmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpOwotICAgIH07CisgICAgLy8g
VGhpcyBjb25zdHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91
dC12YXJpYWJsZQorICAgIC8vIHNvIHRoYXQgY3JlYXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQg
cmV0dXJuIGZhaWx1cmUuCisgICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNz
KTsKK307CiAKICNpZiBVU0UoQ0cpCi0gICAgU3RyaW5nIEltYWdlRGF0YVRvRGF0YVVSTChjb25z
dCBJbWFnZURhdGEmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxp
dHkpOworU3RyaW5nIEltYWdlRGF0YVRvRGF0YVVSTChjb25zdCBJbWFnZURhdGEmLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdHkpOwogI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
aGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5j
cHAKaW5kZXggMmFiMDUwZTVlYjM4YmM3MmFiYTFmMjI0YzdhMDE3ODFlYWQ5NmE3MC4uZjZjMzE3
ZTNhYzViMWRmZWJkODlkMGZiMjMyMDRkNDczZmVhYjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUgIkJh
c2ljU2hhcGVGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJCb3hTaGFwZS5oIgorI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiTGVu
Z3RoRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiUG9seWdvblNoYXBlLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKaW5kZXggODAz
YThiNmUwMjFmNWVlNDhhNzE2YjM3YmUzMWNjZDJkZDFlYzAwOC4uNjg5YTNkMGUxYTY0ZmVkYWIx
MjUwZjAwNzkzN2Y3NjQyZjkzY2U2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1
ZGUgIlJlbmRlclNWR0NvbnRhaW5lci5oIgogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CisjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291
cmNlRmlsdGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJl
bmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmgKaW5kZXggOTlkYjhm
NzgzZGQxODhmYjlkY2JiNWZlZDc2ODExN2VkZGI1MTBkMS4uOTBiYjFiNDk4NDkzMWYyNjc0OGVh
ZGJiMDMzM2MwYjI1YWY2ODJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VS
SVJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuaApA
QCAtMjIsNiArMjIsNyBAQAogI2RlZmluZSBTVkdVUklSZWZlcmVuY2VfaAogCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229653</attachid>
            <date>2014-04-18 10:44:57 -0700</date>
            <delta_ts>2014-04-18 11:35:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131797-20140418104519.patch</filename>
            <type>text/plain</type>
            <size>24151</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGFhOWJhYzcxZDkwYzA5
OWUzMWNhMDU2MzIzMTg2ZmE4ZTA4YjFkYi4uMzZkNmE4YzY3NDRjOTM5NWI3YzkzN2Y3N2FiYjQ0
OGRhYWQ2ODE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE0LTA0LTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzb21l
IGluY2x1ZGVzIGZyb20gaW1hZ2UtcmVsYXRlZCBoZWFkZXJzLCBhbmQgRG9jdW1lbnQuaAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxNzk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgorCisgICAgICAgIFJlbW92ZSBzb21l
ICNpbmNsdWRlcyBmcm9tIERvY3VtZW50LmgsIERyYWdJbWFnZS5oLCBHcmFkaWVudEltYWdlLmgs
CisgICAgICAgIEltYWdlLmgsIGFuZCBJbWFnZUJ1ZmZlci5oIGFuZCBkZWFsIHdpdGggdGhlIGZh
bGxvdXQuCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5oOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SW5wdXRDdXJzb3Ip
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OmlucHV0Q3Vyc29yKToKKyAgICAgICAgKiBkb20vTXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlv
bi5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoK
KyAgICAgICAgKiBwYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcDoKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFkaWVudEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYWRpZW50SW1hZ2U6Okdy
YWRpZW50SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGllbnRJbWFnZTo6fkdyYWRpZW50
SW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlQnVmZmVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6aW50ZXJuYWxTaXplKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlQnVmZmVyOjpsb2dpY2FsU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6YmFzZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6c3Bh
Y2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpzZXRTcGFjZVNpemUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKiByZW5kZXJp
bmcvc2hhcGVzL1NoYXBlLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Nv
bnRhaW5lci5jcHA6CisgICAgICAgICogc3ZnL1NWR1VSSVJlZmVyZW5jZS5oOgorCiAyMDE0LTA0
LTE2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5d
IEEgZmV3IGZpbmFsIGNsZWFudXBzIHRvIHRoZSBEYXRhT2JqZWN0IGNsYXNzZXMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCAzMjFlZGE2YWIzZmE2NmEwZWIzMTM3ZjgzZTE0YTU5
ODg5OGQ2ZjA0Li43NTA4MDkxMDUxMjgyN2E0ZGE1ZGI0NWQzNmE2YzUyMTBmNTBlN2RmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTMzLDYgKzMzLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRmxvYXRQb2ludDsKK2NsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFz
cyBSZW5kZXJFbGVtZW50OwogCiB0eXBlZGVmIHZvaWQgKCpOb2RlQ2FsbGJhY2spKE5vZGUmLCB1
bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmYzYwMGQ1OWU0MjA2NDQyNTY4
MWQxYzNjYjBhY2EzOWY5YzFiNDI4Li5jZWFiMjE3OTBiZGY0ODk1YjVkZDViY2VkYWEwM2UxNWIy
MWFiZDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIyMiw2ICsyMjIsNyBAQAogI2lm
IEVOQUJMRShXRUJfUkVQTEFZKQogI2luY2x1ZGUgIldlYlJlcGxheUlucHV0cy5oIgogI2luY2x1
ZGUgPHJlcGxheS9FbXB0eUlucHV0Q3Vyc29yLmg+CisjaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vy
c29yLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTYxODgsNCArNjE4OSwx
MSBAQCBib29sIERvY3VtZW50OjpoYXNGb2N1cygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCisjaWYgRU5BQkxFKFdFQl9SRVBMQVkpCit2b2lkIERvY3VtZW50OjpzZXRJbnB1dEN1cnNv
cihQYXNzUmVmUHRyPElucHV0Q3Vyc29yPiBjdXJzb3IpCit7CisgICAgbV9pbnB1dEN1cnNvciA9
IGN1cnNvcjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IGZhOTBmOGZhMGE0NTlmMGE0N2ViMGY3MjdiY2NiZThhY2Y1YWI2M2YuLjAz
YjU2YjcxZGQ4YTZlNGMwOWVlNmVkMDExODljODk3OThjY2NiNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0zNSwxMiArMzUsMTAgQEAKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1pbmcuaCIKICNpbmNsdWRlICJGb2N1c0Rp
cmVjdGlvbi5oIgotI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSWNvblVS
TC5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJQYWdlVmlzaWJp
bGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKLSNpbmNsdWRlICJRdWFs
aWZpZWROYW1lLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKICNpbmNsdWRlICJSZW5k
ZXJQdHIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC01OSw5ICs1
NywxMiBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBFeGVjU3RhdGU7CiAjaWYgRU5BQkxFKFdF
Ql9SRVBMQVkpCi0jaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vyc29yLmg+CitjbGFzcyBJbnB1dEN1
cnNvcjsKICNlbmRpZgorfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg4LDcgKzg5LDYg
QEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI7
CiBjbGFzcyBEb2N1bWVudFBhcnNlcjsKIGNsYXNzIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbDsK
LWNsYXNzIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb247CiBjbGFzcyBEb2N1bWVudFR5cGU7
CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRW50aXR5UmVmZXJlbmNlOwpAQCAtMTMwLDYgKzEzMCw3
IEBAIGNsYXNzIE5vZGVJdGVyYXRvcjsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBQbGF0Zm9ybU1vdXNl
RXZlbnQ7CiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CitjbGFzcyBRdWFsaWZpZWROYW1l
OwogY2xhc3MgUmFuZ2U7CiBjbGFzcyBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIFJl
bmRlclZpZXc7CkBAIC00NzksOCArNDgwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgVVJMIGJh
c2VVUkkoKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQotICAgIElu
cHV0Q3Vyc29yJiBpbnB1dEN1cnNvcigpIGNvbnN0IHsgcmV0dXJuICptX2lucHV0Q3Vyc29yOyB9
Ci0gICAgdm9pZCBzZXRJbnB1dEN1cnNvcihQYXNzUmVmUHRyPElucHV0Q3Vyc29yPiBjdXJzb3Ip
IHsgbV9pbnB1dEN1cnNvciA9IGN1cnNvcjsgfQorICAgIEpTQzo6SW5wdXRDdXJzb3ImIGlucHV0
Q3Vyc29yKCkgY29uc3QgeyByZXR1cm4gKm1faW5wdXRDdXJzb3I7IH0KKyAgICB2b2lkIHNldElu
cHV0Q3Vyc29yKFBhc3NSZWZQdHI8SlNDOjpJbnB1dEN1cnNvcj4pOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKQEAgLTE2OTIsNyArMTY5Myw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQotICAgIFJlZlB0cjxJbnB1dEN1cnNv
cj4gbV9pbnB1dEN1cnNvcjsKKyAgICBSZWZQdHI8SlNDOjpJbnB1dEN1cnNvcj4gbV9pbnB1dEN1
cnNvcjsKICNlbmRpZgogCiAgICAgVGltZXI8RG9jdW1lbnQ+IG1fZGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNl
cnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZl
clJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggMTJlMGI0NDFmMGU0ZjdlYzBkMmRmYzJkN2U0YzE2MDA3
MzFhZDY4ZS4uYzc1OGE5ZjFkOTEyNDc5YzNlZmFjNDdkNGZjNjA3ODZlMDFmYTU4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRp
b24uaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDNhMWEwMzc4Y2RhMzliMzll
NDEwZDMwYTVkMDE2OTc4NTUyODc5NzIuLjA2OTgzOWI5MTViYWNhMjdjZmRkYjJlOTIxNTI0NDYz
YzgxYmI0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFz
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
VmlkZW9FbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25h
cHNob3R0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3Bw
CmluZGV4IDhmMWQyMmFjZmU0ZDdlOTc1NTRmNzZiMDZjMmNlYTMyZDgwZjUyODEuLjRjYzI4MmRh
NGVmZDFlYmFlZjJkOGI4YmZjN2MyYjg0NDExNDc5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVTbmFwc2hvdHRpbmcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKaW5kZXggODUxODE4NzgzNTViYjE3NWQzM2Q1NTJlZmI5ZjQ4Y2U2ZjUwYTcwMS4uZTM5ZjY3
ZGU3YzE0NGU1ZTk2YWIzNzI3YTMyZDVlNDU1NjM2Y2M1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBA
IC05NSw2ICs5NSw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKICNpbmNsdWRlICJSZXBs
YXlDb250cm9sbGVyLmgiCisjaW5jbHVkZSA8cmVwbGF5L0lucHV0Q3Vyc29yLmg+CiAjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAppbmRl
eCA0ZjQxMDU3NDQ0MmI3Y2E1YjYwZWY2OTI3ZTAzMWU1YWRiNjBhMzhlLi45MTc5ODM5MzI0YmJj
MTFiODcwOGYxOTcyOGZiMGU1MWMwZDRhODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVk
ZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKLSNpbmNsdWRlICJGcmFtZVNuYXBzaG90dGluZy5oIgog
I2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCAxNGIyYjU0OGFkNTllMWVkYzcxNjFhMTFjNDkzMGVi
MTBmYzdjMWUzLi5lZGM3M2ZhYTI1YmZlZDE5YWMwNjRiZTQwZTFkMWVkZmJjZDQxY2QwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKIAogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdl
QnVmZmVyLmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIkludFJlY3Qu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFn
ZS5jcHAKaW5kZXggNmU2OTIzNmI0M2MwZDU3N2MwNWMyYmRiZDk4YTUxMDI2ZDhjZGJjMC4uMDUy
NzEyMDBlYTNiOGI0MmVlNmQ5ODQxZTUyOTVhZDI0Nzc2MzJmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAKQEAgLTI4LDEwICsy
OCwyMSBAQAogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0LmgiCisjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJMZW5ndGguaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitHcmFkaWVudEltYWdlOjpHcmFkaWVudEltYWdlKFBhc3NS
ZWZQdHI8R3JhZGllbnQ+IGdlbmVyYXRvciwgY29uc3QgRmxvYXRTaXplJiBzaXplKQorICAgIDog
bV9ncmFkaWVudChnZW5lcmF0b3IpCit7CisgICAgc2V0Q29udGFpbmVyU2l6ZShzaXplKTsKK30K
KworR3JhZGllbnRJbWFnZTo6fkdyYWRpZW50SW1hZ2UoKQoreworfQorCiB2b2lkIEdyYWRpZW50
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3Np
dGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVT
YXZlcigqZGVzdENvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhZGllbnRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnRJbWFnZS5oCmluZGV4IDY2NTY3YzZmNDkyMDAxNzM5ZWUxNWQwNzE0N2ExZTNl
YzlkNjJlNGMuLjQwMWM1ZmEyMDFhZDEwMzg2MGVhYmM4Yzk2M2EwZGY0YzRlYWIzN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmgKQEAg
LTMwLDExICszMCwxMiBAQAogI2luY2x1ZGUgIkdlbmVyYXRlZEltYWdlLmgiCiAjaW5jbHVkZSAi
R3JhZGllbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgi
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IEltYWdlQnVmZmVyOworCiBjbGFzcyBHcmFkaWVudEltYWdlIGZpbmFsIDogcHVibGljIEdlbmVy
YXRlZEltYWdlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHcmFkaWVudEltYWdl
PiBjcmVhdGUoUGFzc1JlZlB0cjxHcmFkaWVudD4gZ2VuZXJhdG9yLCBjb25zdCBGbG9hdFNpemUm
IHNpemUpCkBAIC00MiwxOCArNDMsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEdyYWRpZW50SW1hZ2UoZ2VuZXJhdG9yLCBzaXplKSk7CiAgICAgfQogCi0gICAgdmly
dHVhbCB+R3JhZGllbnRJbWFnZSgpIHsgfQorICAgIHZpcnR1YWwgfkdyYWRpZW50SW1hZ2UoKTsK
IAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VP
cmllbnRhdGlvbkRlc2NyaXB0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1Bh
dHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCiAgICAgICAgIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Is
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSkgb3ZlcnJpZGU7CiAKLSAgICBH
cmFkaWVudEltYWdlKFBhc3NSZWZQdHI8R3JhZGllbnQ+IGdlbmVyYXRvciwgY29uc3QgRmxvYXRT
aXplJiBzaXplKQotICAgICAgICA6IG1fZ3JhZGllbnQoZ2VuZXJhdG9yKQotICAgIHsKLSAgICAg
ICAgc2V0Q29udGFpbmVyU2l6ZShzaXplKTsKLSAgICB9CisgICAgR3JhZGllbnRJbWFnZShQYXNz
UmVmUHRyPEdyYWRpZW50PiwgY29uc3QgRmxvYXRTaXplJik7CiAKIHByaXZhdGU6CiAgICAgUmVm
UHRyPEdyYWRpZW50PiBtX2dyYWRpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlLmgKaW5kZXggNjExNzZkODVjMzkyM2JlZTczZGZiYjA2MjhhN2M0MmU1MDAwNTMwMS4u
YmU5ZmRlMjljODgyYzg2ZDA3MmYwZjE0ODgzNGRkMThlNDU3MTQyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAi
RmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkltYWdl
T3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1h
Z2VQdHIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5jcHAKaW5kZXggMTBjNmFkMGE2MTg4YmQ3OWJjZDQ0ZTE1YzVhZDg2MTY2Yjc4OTQ2Yy4u
YjM4NDM3MmVmM2UxMTg2ZGQ0ZTVmZGRkMzI5Y2I4ZDk3OTA2ODk3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcApAQCAtMjcsNiArMjcs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAKKyNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggYjA4MGY1ODAzNGE3ODQ2NTIxOTY5OTNjMTMzOGU2YWI1
MGViNGMzNy4uNWM5OTQ5OTE5NWI3ZWRhYjA5NGIyY2E5ZDZjZjA2NjU3ZjUwM2U3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0zMCwx
NSArMzAsMTEgQEAKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIkNv
bG9yU3BhY2UuaCIKLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NU
eXBlczNELmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyRGF0
YS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTQ0lu
bGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9VaW50OENsYW1wZWRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNDcsMTI0ICs0MywxMjYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgSW1hZ2U7Ci0gICAgY2xhc3MgSW1hZ2VEYXRhOwot
ICAgIGNsYXNzIEludFBvaW50OwotICAgIGNsYXNzIEludFJlY3Q7Ci0gICAgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0M0Q7Ci0KLSAgICBlbnVtIE11bHRpcGx5IHsKLSAgICAgICAgUHJlbXVsdGlwbGll
ZCwKLSAgICAgICAgVW5tdWx0aXBsaWVkCi0gICAgfTsKLQotICAgIGVudW0gUmVuZGVyaW5nTW9k
ZSB7Ci0gICAgICAgIFVuYWNjZWxlcmF0ZWQsCi0gICAgICAgIFVuYWNjZWxlcmF0ZWROb25QbGF0
Zm9ybUJ1ZmZlciwgLy8gVXNlIHBsYWluIG1lbW9yeSBhbGxvY2F0aW9uIHJhdGhlciB0aGFuIHBs
YXRmb3JtIEFQSSB0byBhbGxvY2F0ZSBiYWNraW5nIHN0b3JlLgotICAgICAgICBBY2NlbGVyYXRl
ZAotICAgIH07CitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFz
cyBHcmFwaGljc0NvbnRleHQzRDsKK2NsYXNzIEltYWdlOworY2xhc3MgSW1hZ2VEYXRhOworY2xh
c3MgSW50UG9pbnQ7CitjbGFzcyBJbnRSZWN0OworCitlbnVtIE11bHRpcGx5IHsKKyAgICBQcmVt
dWx0aXBsaWVkLAorICAgIFVubXVsdGlwbGllZAorfTsKKworZW51bSBSZW5kZXJpbmdNb2RlIHsK
KyAgICBVbmFjY2VsZXJhdGVkLAorICAgIFVuYWNjZWxlcmF0ZWROb25QbGF0Zm9ybUJ1ZmZlciwg
Ly8gVXNlIHBsYWluIG1lbW9yeSBhbGxvY2F0aW9uIHJhdGhlciB0aGFuIHBsYXRmb3JtIEFQSSB0
byBhbGxvY2F0ZSBiYWNraW5nIHN0b3JlLgorICAgIEFjY2VsZXJhdGVkCit9OworCitlbnVtIEJh
Y2tpbmdTdG9yZUNvcHkgeworICAgIENvcHlCYWNraW5nU3RvcmUsIC8vIEd1YXJhbnRlZSBzdWJz
ZXF1ZW50IGRyYXdzIGRvbid0IGFmZmVjdCB0aGUgY29weS4KKyAgICBEb250Q29weUJhY2tpbmdT
dG9yZSAvLyBTdWJzZXF1ZW50IGRyYXdzIG1heSBhZmZlY3QgdGhlIGNvcHkuCit9OworCitlbnVt
IFNjYWxlQmVoYXZpb3IgeworICAgIFNjYWxlZCwKKyAgICBVbnNjYWxlZAorfTsKKworY2xhc3Mg
SW1hZ2VCdWZmZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgLy8gV2lsbCByZXR1cm4gYSBudWxs
IHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWlsdXJlLgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+IGNyZWF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0IHJlc29s
dXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IENvbG9yU3BhY2VEZXZpY2VS
R0IsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQpCisgICAgewor
ICAgICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBidWZmZXIobmV3IEltYWdlQnVmZmVyKHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgc3VjY2VzcykpOworICAgICAgICBpZiAoIXN1Y2Nl
c3MpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlcjsK
KyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBjcmVhdGVD
b21wYXRpYmxlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwg
Q29sb3JTcGFjZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCBoYXNBbHBoYSk7CisKKyAg
ICB+SW1hZ2VCdWZmZXIoKTsKKworICAgIC8vIFRoZSBhY3R1YWwgcmVzb2x1dGlvbiBvZiB0aGUg
YmFja2luZyBzdG9yZQorICAgIGNvbnN0IEludFNpemUmIGludGVybmFsU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2l6ZTsgfQorICAgIGNvbnN0IEludFNpemUmIGxvZ2ljYWxTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9sb2dpY2FsU2l6ZTsgfQorCisgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
KCkgY29uc3Q7CisKKyAgICBQYXNzUmVmUHRyPEltYWdlPiBjb3B5SW1hZ2UoQmFja2luZ1N0b3Jl
Q29weSA9IENvcHlCYWNraW5nU3RvcmUsIFNjYWxlQmVoYXZpb3IgPSBTY2FsZWQpIGNvbnN0Owor
ICAgIC8vIEdpdmUgaGludHMgb24gdGhlIGZhc3RlciBjb3B5SW1hZ2UgTW9kZSwgcmV0dXJuIERv
bnRDb3B5QmFja2luZ1N0b3JlIGlmIGl0IHN1cHBvcnRzIHRoZSBEb250Q29weUJhY2tpbmdTdG9y
ZSBiZWhhdmlvcgorICAgIC8vIG9yIHJldHVybiBDb3B5QmFja2luZ1N0b3JlIGlmIGl0IGRvZXNu
J3QuICAKKyAgICBzdGF0aWMgQmFja2luZ1N0b3JlQ29weSBmYXN0Q29weUltYWdlTW9kZSgpOwor
CisgICAgZW51bSBDb29yZGluYXRlU3lzdGVtIHsgTG9naWNhbENvb3JkaW5hdGVTeXN0ZW0sIEJh
Y2tpbmdTdG9yZUNvb3JkaW5hdGVTeXN0ZW0gfTsKKworICAgIFBhc3NSZWZQdHI8VWludDhDbGFt
cGVkQXJyYXk+IGdldFVubXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJbnRSZWN0JiwgQ29vcmRp
bmF0ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKSBjb25zdDsKKyAgICBQYXNzUmVm
UHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBnZXRQcmVtdWx0aXBsaWVkSW1hZ2VEYXRhKGNvbnN0IElu
dFJlY3QmLCBDb29yZGluYXRlU3lzdGVtID0gTG9naWNhbENvb3JkaW5hdGVTeXN0ZW0pIGNvbnN0
OworCisgICAgdm9pZCBwdXRCeXRlQXJyYXkoTXVsdGlwbHkgbXVsdGlwbGllZCwgVWludDhDbGFt
cGVkQXJyYXkqLCBjb25zdCBJbnRTaXplJiBzb3VyY2VTaXplLCBjb25zdCBJbnRSZWN0JiBzb3Vy
Y2VSZWN0LCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBDb29yZGluYXRlU3lzdGVtID0gTG9n
aWNhbENvb3JkaW5hdGVTeXN0ZW0pOwogICAgIAotICAgIGVudW0gQmFja2luZ1N0b3JlQ29weSB7
Ci0gICAgICAgIENvcHlCYWNraW5nU3RvcmUsIC8vIEd1YXJhbnRlZSBzdWJzZXF1ZW50IGRyYXdz
IGRvbid0IGFmZmVjdCB0aGUgY29weS4KLSAgICAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8g
U3Vic2VxdWVudCBkcmF3cyBtYXkgYWZmZWN0IHRoZSBjb3B5LgotICAgIH07Ci0KLSAgICBlbnVt
IFNjYWxlQmVoYXZpb3IgewotICAgICAgICBTY2FsZWQsCi0gICAgICAgIFVuc2NhbGVkCi0gICAg
fTsKLQotICAgIGNsYXNzIEltYWdlQnVmZmVyIHsKLSAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoSW1hZ2VCdWZmZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIC8vIFdpbGwgcmV0dXJuIGEgbnVsbCBwb2ludGVyIG9uIGFsbG9jYXRpb24gZmFpbHVy
ZS4KLSAgICAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY3JlYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlID0gQ29sb3JTcGFjZURldmljZVJHQiwgUmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlID0gVW5hY2NlbGVyYXRlZCkKLSAgICAgICAgewotICAgICAgICAgICAgYm9vbCBzdWNj
ZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1
ZmZlcihuZXcgSW1hZ2VCdWZmZXIoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBy
ZW5kZXJpbmdNb2RlLCBzdWNjZXNzKSk7Ci0gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgICAgICByZXR1cm4gYnVmZmVyOwot
ICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4g
Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9u
U2NhbGUsIENvbG9yU3BhY2UsIGNvbnN0IEdyYXBoaWNzQ29udGV4dCosIGJvb2wgaGFzQWxwaGEp
OwotCi0gICAgICAgIH5JbWFnZUJ1ZmZlcigpOwotCi0gICAgICAgIC8vIFRoZSBhY3R1YWwgcmVz
b2x1dGlvbiBvZiB0aGUgYmFja2luZyBzdG9yZQotICAgICAgICBjb25zdCBJbnRTaXplJiBpbnRl
cm5hbFNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KLSAgICAgICAgY29uc3QgSW50U2l6
ZSYgbG9naWNhbFNpemUoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxTaXplOyB9Ci0KLSAgICAg
ICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7Ci0KLSAgICAgICAgUGFzc1JlZlB0
cjxJbWFnZT4gY29weUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgPSBDb3B5QmFja2luZ1N0b3JlLCBT
Y2FsZUJlaGF2aW9yID0gU2NhbGVkKSBjb25zdDsKLSAgICAgICAgLy8gR2l2ZSBoaW50cyBvbiB0
aGUgZmFzdGVyIGNvcHlJbWFnZSBNb2RlLCByZXR1cm4gRG9udENvcHlCYWNraW5nU3RvcmUgaWYg
aXQgc3VwcG9ydHMgdGhlIERvbnRDb3B5QmFja2luZ1N0b3JlIGJlaGF2aW9yCi0gICAgICAgIC8v
IG9yIHJldHVybiBDb3B5QmFja2luZ1N0b3JlIGlmIGl0IGRvZXNuJ3QuICAKLSAgICAgICAgc3Rh
dGljIEJhY2tpbmdTdG9yZUNvcHkgZmFzdENvcHlJbWFnZU1vZGUoKTsKLQotICAgICAgICBlbnVt
IENvb3JkaW5hdGVTeXN0ZW0geyBMb2dpY2FsQ29vcmRpbmF0ZVN5c3RlbSwgQmFja2luZ1N0b3Jl
Q29vcmRpbmF0ZVN5c3RlbSB9OwotCi0gICAgICAgIFBhc3NSZWZQdHI8VWludDhDbGFtcGVkQXJy
YXk+IGdldFVubXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJbnRSZWN0JiwgQ29vcmRpbmF0ZVN5
c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKSBjb25zdDsKLSAgICAgICAgUGFzc1JlZlB0
cjxVaW50OENsYW1wZWRBcnJheT4gZ2V0UHJlbXVsdGlwbGllZEltYWdlRGF0YShjb25zdCBJbnRS
ZWN0JiwgQ29vcmRpbmF0ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKSBjb25zdDsK
LQotICAgICAgICB2b2lkIHB1dEJ5dGVBcnJheShNdWx0aXBseSBtdWx0aXBsaWVkLCBVaW50OENs
YW1wZWRBcnJheSosIGNvbnN0IEludFNpemUmIHNvdXJjZVNpemUsIGNvbnN0IEludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIENvb3JkaW5hdGVTeXN0ZW0gPSBM
b2dpY2FsQ29vcmRpbmF0ZVN5c3RlbSk7Ci0gICAgICAgIAotICAgICAgICB2b2lkIGNvbnZlcnRU
b0x1bWluYW5jZU1hc2soKTsKLSAgICAgICAgCi0gICAgICAgIFN0cmluZyB0b0RhdGFVUkwoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgZG91YmxlKiBxdWFsaXR5ID0gMCwgQ29vcmRpbmF0
ZVN5c3RlbSA9IExvZ2ljYWxDb29yZGluYXRlU3lzdGVtKSBjb25zdDsKKyAgICB2b2lkIGNvbnZl
cnRUb0x1bWluYW5jZU1hc2soKTsKKyAgICAKKyAgICBTdHJpbmcgdG9EYXRhVVJMKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IGRvdWJsZSogcXVhbGl0eSA9IDAsIENvb3JkaW5hdGVTeXN0
ZW0gPSBMb2dpY2FsQ29vcmRpbmF0ZVN5c3RlbSkgY29uc3Q7CiAjaWYgIVVTRShDRykKLSAgICAg
ICAgQWZmaW5lVHJhbnNmb3JtIGJhc2VUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBBZmZpbmVU
cmFuc2Zvcm0oKTsgfQotICAgICAgICB2b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFj
ZSBzcmNDb2xvclNwYWNlLCBDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpOwotICAgICAgICB2b2lk
IHBsYXRmb3JtVHJhbnNmb3JtQ29sb3JTcGFjZShjb25zdCBWZWN0b3I8aW50PiYpOworICAgIEFm
ZmluZVRyYW5zZm9ybSBiYXNlVHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gQWZmaW5lVHJhbnNm
b3JtKCk7IH0KKyAgICB2b2lkIHRyYW5zZm9ybUNvbG9yU3BhY2UoQ29sb3JTcGFjZSBzcmNDb2xv
clNwYWNlLCBDb2xvclNwYWNlIGRzdENvbG9yU3BhY2UpOworICAgIHZvaWQgcGxhdGZvcm1UcmFu
c2Zvcm1Db2xvclNwYWNlKGNvbnN0IFZlY3RvcjxpbnQ+Jik7CiAjZWxzZQotICAgICAgICBBZmZp
bmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIEFmZmluZVRyYW5zZm9y
bSgxLCAwLCAwLCAtMSwgMCwgbV9kYXRhLm1fYmFja2luZ1N0b3JlU2l6ZS5oZWlnaHQoKSk7IH0K
KyAgICBBZmZpbmVUcmFuc2Zvcm0gYmFzZVRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIEFmZmlu
ZVRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgbV9kYXRhLm1fYmFja2luZ1N0b3JlU2l6ZS5oZWln
aHQoKSk7IH0KICNlbmRpZgotICAgICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkg
Y29uc3Q7CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OwogCi0gICAg
ICAgIC8vIEZJWE1FOiBjdXJyZW50IGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBoYXZl
IHRoZSByZXN0cmljdGlvbiB0aGF0IHRoZXkgb25seSB3b3JrCi0gICAgICAgIC8vIHdpdGggdGV4
dHVyZXMgdGhhdCBhcmUgUkdCIG9yIFJHQkEgZm9ybWF0LCBhbmQgVU5TSUdORURfQllURSB0eXBl
LgotICAgICAgICBib29sIGNvcHlUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRCYs
IFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBib29sLCBib29sKTsKKyAgICAvLyBGSVhNRTog
Y3VycmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBtZXRob2QgaGF2ZSB0aGUgcmVzdHJpY3Rp
b24gdGhhdCB0aGV5IG9ubHkgd29yaworICAgIC8vIHdpdGggdGV4dHVyZXMgdGhhdCBhcmUgUkdC
IG9yIFJHQkEgZm9ybWF0LCBhbmQgVU5TSUdORURfQllURSB0eXBlLgorICAgIGJvb2wgY29weVRv
UGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEJiwgUGxhdGZvcm0zRE9iamVjdCwgR0Mz
RGVudW0sIGJvb2wsIGJvb2wpOwogCi0gICAgICAgIEZsb2F0U2l6ZSBzcGFjZVNpemUoKSBjb25z
dCB7IHJldHVybiBtX3NwYWNlOyB9Ci0gICAgICAgIHZvaWQgc2V0U3BhY2VTaXplKGNvbnN0IEZs
b2F0U2l6ZSYgc3BhY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1fc3BhY2UgPSBzcGFjZTsK
LSAgICAgICAgfQorICAgIEZsb2F0U2l6ZSBzcGFjZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3Nw
YWNlOyB9CisgICAgdm9pZCBzZXRTcGFjZVNpemUoY29uc3QgRmxvYXRTaXplJiBzcGFjZSkKKyAg
ICB7CisgICAgICAgIG1fc3BhY2UgPSBzcGFjZTsKKyAgICB9CiAKLSAgICBwcml2YXRlOgorcHJp
dmF0ZToKICNpZiBVU0UoQ0cpCi0gICAgICAgIC8vIFRoZSByZXR1cm5lZCBpbWFnZSBtaWdodCBi
ZSBsYXJnZXIgdGhhbiB0aGUgaW50ZXJuYWxTaXplKCkuIElmIHlvdSB3YW50IHRoZSBzbWFsbGVy
Ci0gICAgICAgIC8vIGltYWdlLCBjcm9wIHRoZSByZXN1bHQuCi0gICAgICAgIFJldGFpblB0cjxD
R0ltYWdlUmVmPiBjb3B5TmF0aXZlSW1hZ2UoQmFja2luZ1N0b3JlQ29weSA9IENvcHlCYWNraW5n
U3RvcmUpIGNvbnN0OwotICAgICAgICB2b2lkIGZsdXNoQ29udGV4dCgpIGNvbnN0OworICAgIC8v
IFRoZSByZXR1cm5lZCBpbWFnZSBtaWdodCBiZSBsYXJnZXIgdGhhbiB0aGUgaW50ZXJuYWxTaXpl
KCkuIElmIHlvdSB3YW50IHRoZSBzbWFsbGVyCisgICAgLy8gaW1hZ2UsIGNyb3AgdGhlIHJlc3Vs
dC4KKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9y
ZUNvcHkgPSBDb3B5QmFja2luZ1N0b3JlKSBjb25zdDsKKyAgICB2b2lkIGZsdXNoQ29udGV4dCgp
IGNvbnN0OwogI2VuZGlmCi0gICAgICAgIHZvaWQgY2xpcChHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBGbG9hdFJlY3QmKSBjb25zdDsKKyAgICB2b2lkIGNsaXAoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4
dCosIENvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLCBDb21wb3NpdGVPcGVyYXRvciA9
IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCwgYm9vbCB1
c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd1BhdHRlcm4oR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCk7CisgICAgdm9pZCBkcmF3KEdy
YXBoaWNzQ29udGV4dCosIENvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCA9IEZsb2F0UmVjdCgwLCAwLCAtMSwgLTEpLCBDb21wb3Np
dGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5v
cm1hbCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CisgICAgdm9pZCBkcmF3UGF0
dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsKTsKIAotICAgICAg
ICBpbmxpbmUgdm9pZCBnZW5lcmljQ29udmVydFRvTHVtaW5hbmNlTWFzaygpOworICAgIGlubGlu
ZSB2b2lkIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiAKLSAgICAgICAgZnJpZW5k
IGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLSAgICAgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZElt
YWdlOwotICAgICAgICBmcmllbmQgY2xhc3MgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U7Ci0gICAg
ICAgIGZyaWVuZCBjbGFzcyBHcmFkaWVudEltYWdlOworICAgIGZyaWVuZCBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CisgICAgZnJpZW5kIGNsYXNzIEdlbmVyYXRlZEltYWdlOworICAgIGZyaWVuZCBj
bGFzcyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTsKKyAgICBmcmllbmQgY2xhc3MgR3JhZGllbnRJ
bWFnZTsKIAotICAgIHByaXZhdGU6Ci0gICAgICAgIEltYWdlQnVmZmVyRGF0YSBtX2RhdGE7Ci0g
ICAgICAgIEludFNpemUgbV9zaXplOwotICAgICAgICBJbnRTaXplIG1fbG9naWNhbFNpemU7Ci0g
ICAgICAgIGZsb2F0IG1fcmVzb2x1dGlvblNjYWxlOwotICAgICAgICBPd25QdHI8R3JhcGhpY3ND
b250ZXh0PiBtX2NvbnRleHQ7Ci0gICAgICAgIEZsb2F0U2l6ZSBtX3NwYWNlOworcHJpdmF0ZToK
KyAgICBJbWFnZUJ1ZmZlckRhdGEgbV9kYXRhOworICAgIEludFNpemUgbV9zaXplOworICAgIElu
dFNpemUgbV9sb2dpY2FsU2l6ZTsKKyAgICBmbG9hdCBtX3Jlc29sdXRpb25TY2FsZTsKKyAgICBP
d25QdHI8R3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CisgICAgRmxvYXRTaXplIG1fc3BhY2U7
CiAKLSAgICAgICAgLy8gVGhpcyBjb25zdHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGlu
dG8gdGhlIGdpdmVuIG91dC12YXJpYWJsZQotICAgICAgICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtu
b3dzIHdoZW4gaXQgc2hvdWxkIHJldHVybiBmYWlsdXJlLgotICAgICAgICBJbWFnZUJ1ZmZlcihj
b25zdCBGbG9hdFNpemUmLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhY2UsIFJlbmRl
cmluZ01vZGUsIGJvb2wmIHN1Y2Nlc3MpOwotICAgIH07CisgICAgLy8gVGhpcyBjb25zdHJ1Y3Rv
ciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91dC12YXJpYWJsZQorICAg
IC8vIHNvIHRoYXQgY3JlYXRlKCkga25vd3Mgd2hlbiBpdCBzaG91bGQgcmV0dXJuIGZhaWx1cmUu
CisgICAgSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxl
LCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKTsKK307CiAKICNpZiBV
U0UoQ0cpCi0gICAgU3RyaW5nIEltYWdlRGF0YVRvRGF0YVVSTChjb25zdCBJbWFnZURhdGEmLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdHkpOworU3RyaW5nIElt
YWdlRGF0YVRvRGF0YVVSTChjb25zdCBJbWFnZURhdGEmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBjb25zdCBkb3VibGUqIHF1YWxpdHkpOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCBkM2Y5
Mjk4ZWM4MDg2ZDM4ODFmNWQzNDgxODQ2OTU2ZTFhZGE0MDM5Li4yNThjN2FlMmIyZmJhZGIyNTBi
MWI0NDhlNDA4NjJhOTllYzA2ODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tCkBAIC02NSw2ICs2NSw3IEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+
CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDxDYXJib24vQ2Fy
Ym9uLmg+CiAjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgogI2ltcG9ydCA8bWF0aC5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAppbmRleCAyYWIwNTBlNWViMzhiYzcy
YWJhMWYyMjRjN2EwMTc4MWVhZDk2YTcwLi5mNmMzMTdlM2FjNWIxZGZlYmQ4OWQwZmIyMzIwNGQ0
NzNmZWFiMjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgogI2lu
Y2x1ZGUgIkJveFNoYXBlLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJMZW5ndGhGdW5jdGlvbnMuaCIKICNpbmNsdWRl
ICJQb2x5Z29uU2hhcGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHQ29udGFpbmVyLmNwcAppbmRleCA4MDNhOGI2ZTAyMWY1ZWU0OGE3MTZiMzdiZTMx
Y2NkMmRkMWVjMDA4Li42ODlhM2QwZTFhNjRmZWRhYjEyNTBmMDA3OTM3Zjc2NDJmOTNjZTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWlu
ZXIuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZHQ29udGFpbmVyLmgi
CiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJIaXRUZXN0UmVxdWVz
dC5oIgogI2luY2x1ZGUgIkxheW91dFJlcGFpbnRlci5oIgogI2luY2x1ZGUgIlJlbmRlckl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVUklSZWZlcmVuY2UuaAppbmRleCA5OWRiOGY3ODNkZDE4OGZiOWRjYmI1ZmVkNzY4MTE3
ZWRkYjUxMGQxLi45MGJiMWI0OTg0OTMxZjI2NzQ4ZWFkYmIwMzMzYzBiMjVhZjY4MmY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5oCkBAIC0yMiw2ICsyMiw3IEBACiAjZGVmaW5l
IFNWR1VSSVJlZmVyZW5jZV9oCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlF1
YWxpZmllZE5hbWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>