<?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>130596</bug_id>
          
          <creation_ts>2014-03-21 09:05:08 -0700</creation_ts>
          <short_desc>Subpixel rendering: Make &lt;img&gt; positioning subpixel aware.</short_desc>
          <delta_ts>2014-03-21 15:09:39 -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>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rmondello</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>993116</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-03-21 09:05:08 -0700</bug_when>
    <thetext>+ this also enables proper hairline bordering for &lt;img&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993118</commentid>
    <comment_count>1</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-03-21 09:05:20 -0700</bug_when>
    <thetext>patch is coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993238</commentid>
    <comment_count>2</comment_count>
      <attachid>227467</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-03-21 11:50:24 -0700</bug_when>
    <thetext>Created attachment 227467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993249</commentid>
    <comment_count>3</comment_count>
      <attachid>227467</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-21 12:05:24 -0700</bug_when>
    <thetext>Comment on attachment 227467
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:562
&gt; +    drawImage(image, styleColorSpace, FloatRect(p, FloatSize(image-&gt;size())), FloatRect(FloatPoint(), FloatSize(image-&gt;size())), op, description);

Doesn&apos;t implicit IntSize -&gt; FloatSize conversion happen?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993266</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-03-21 12:28:47 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 227467 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=227467&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:562
&gt; &gt; +    drawImage(image, styleColorSpace, FloatRect(p, FloatSize(image-&gt;size())), FloatRect(FloatPoint(), FloatSize(image-&gt;size())), op, description);
&gt; 
&gt; Doesn&apos;t implicit IntSize -&gt; FloatSize conversion happen?
yes, it  happens. I had that first but changed to explicit conversion. I guess it does not really bring any value, so I&apos;ll change it back to implicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993271</commentid>
    <comment_count>5</comment_count>
      <attachid>227472</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-03-21 12:37:52 -0700</bug_when>
    <thetext>Created attachment 227472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993322</commentid>
    <comment_count>6</comment_count>
      <attachid>227472</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 14:26:24 -0700</bug_when>
    <thetext>Comment on attachment 227472
Patch

Rejecting attachment 227472 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 227472, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/4758999488528384</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993326</commentid>
    <comment_count>7</comment_count>
      <attachid>227492</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-03-21 14:32:50 -0700</bug_when>
    <thetext>Created attachment 227492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993339</commentid>
    <comment_count>8</comment_count>
      <attachid>227492</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 15:09:33 -0700</bug_when>
    <thetext>Comment on attachment 227492
Patch

Clearing flags on attachment: 227492

Committed r166100: &lt;http://trac.webkit.org/changeset/166100&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993340</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 15:09:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227467</attachid>
            <date>2014-03-21 11:50:24 -0700</date>
            <delta_ts>2014-03-21 12:37:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130596-20140321115000.patch</filename>
            <type>text/plain</type>
            <size>20956</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkZTZjMmY2NzVjMGU1
MDY1Mzc1YjgzMDMwZmIwYzk4M2VjMjAxYi4uYjk1YWZmYTM2NGJmZWRkODc0ZDNiN2RiNTE3NzJi
M2NlYmY2MDFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDE0LTAzLTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIDxpbWc+IHBvc2l0aW9uaW5nIHN1YnBpeGVsIGF3YXJlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNTk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIDxpbWc+IHBvc2l0aW9uaW5n
IGZyb20gaW50ZWdyYWwgdG8gZGV2aWNlIHBpeGVsLiBJdCBlbmFibGVzIHVzCisgICAgICAgIHRv
IHBhaW50IGhhaXJsaW5lIGJvcmRlcnMgYXJvdW5kIDxpbWc+IHByb3Blcmx5LgorICAgICAgICBU
aGlzIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGJyb2tlbiBpbWFnZSByZXByZXNlbnRh
dGlvbiBmcm9tIGNvbnN0YW50IDEgQ1NTIHB4IGJvcmRlcgorICAgICAgICB0byBhIGR5bmFtaWMg
MSBkZXZpY2UgcHguCisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMvaGlkcGktaW1hZ2UtcG9z
aXRpb24tb24tZGV2aWNlLXBpeGVscy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd1JlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkcmF3UGxhdGZvcm1SZXNpemVySW1hZ2Up
OgorCisyMDE0LTAzLTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKICAgICAg
ICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBSZW5kZXJCb3ggaXMgcG9zaXRpb25lZCBvZmYgYnkgb25l
IHdoZW4gbm9uLWNvbXBvc2l0aW5nIHRyYW5zZm9ybSBpcyBwcmVzZW50LgogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNDMwCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggYTAyMjllYzRkMWVmMDU3MDBkMjNmYzNmN2U5MTE2YWE1ODg5MDNiZS4uMGM5
YTU2Y2MwYzM4NzUxYzJiNDUzMjUzZDllZjhjMzEzZmU2NWE3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTUxMyw3ICs1MTMsNyBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDhmaWxs
UGF0aEVSS05TXzRQYXRoRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ4ZmlsbFJlY3RF
UktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ4ZmlsbFJlY3RF
UktOU185RmxvYXRSZWN0RVJLTlNfNUNvbG9yRU5TXzEwQ29sb3JTcGFjZUUKIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NDb250ZXh0OWNsZWFyUmVjdEVSS05TXzlGbG9hdFJlY3RFCi1fX1pON1dlYkNv
cmUxNUdyYXBoaWNzQ29udGV4dDlkcmF3SW1hZ2VFUE5TXzVJbWFnZUVOU18xMENvbG9yU3BhY2VF
UktOU184SW50UG9pbnRFTlNfMTdDb21wb3NpdGVPcGVyYXRvckVOU18yN0ltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbkUKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OWRyYXdJbWFnZUVQ
TlNfNUltYWdlRU5TXzEwQ29sb3JTcGFjZUVSS05TXzEwRmxvYXRQb2ludEVOU18xN0NvbXBvc2l0
ZU9wZXJhdG9yRU5TXzI3SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uRQogX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0NvbnRleHQ5c2V0U2hhZG93RVJLTlNfOUZsb2F0U2l6ZUVmUktOU181Q29sb3JF
TlNfMTBDb2xvclNwYWNlRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ5dHJhbnNsYXRl
RWZmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dEQxRXYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IGY1MjRi
M2EzYjA1MGQxYTExZGJlZDYzZWE4Y2FmMGE0Njc2MTMwZWQuLmQ2Yjk1MGU5ZjAzY2Q3MDRiYWYx
ZjhiNTExMzBhYzhhZDcwN2NhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNTU1LDIzICs1NTUsMjMgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdIaWdobGlnaHRGb3JUZXh0KGNvbnN0IEZvbnQmIGZvbnQs
IGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBmaWxsUmVjdChmb250LnNlbGVjdGlvblJlY3RGb3JU
ZXh0KHJ1biwgcG9pbnQsIGgsIGZyb20sIHRvKSwgYmFja2dyb3VuZENvbG9yLCBjb2xvclNwYWNl
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikKK3ZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgY29uc3QgRmxvYXRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikKIHsKICAgICBpZiAoIWltYWdl
KQogICAgICAgICByZXR1cm47Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2Us
IEZsb2F0UmVjdChJbnRSZWN0KHAsIGltYWdlLT5zaXplKCkpKSwgRmxvYXRSZWN0KEZsb2F0UG9p
bnQoKSwgRmxvYXRTaXplKGltYWdlLT5zaXplKCkpKSwgb3AsIGRlc2NyaXB0aW9uKTsKKyAgICBk
cmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KHAsIEZsb2F0U2l6ZShp
bWFnZS0+c2l6ZSgpKSksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZsb2F0U2l6ZShpbWFnZS0+
c2l6ZSgpKSksIG9wLCBkZXNjcmlwdGlvbik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
SW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlw
dGlvbiBkZXNjcmlwdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEZsb2F0UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7
CiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIGRyYXdJbWFnZShpbWFnZSwg
c3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QociksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZs
b2F0U2l6ZShpbWFnZS0+c2l6ZSgpKSksIG9wLCBkZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgRmxvYXRSZWN0
KEZsb2F0UG9pbnQoKSwgRmxvYXRTaXplKGltYWdlLT5zaXplKCkpKSwgb3AsIGRlc2NyaXB0aW9u
LCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0lt
YWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBv
aW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQordm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBGbG9hdFBvaW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciBvcCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQog
ewotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoSW50UmVj
dChkZXN0LCBzcmNSZWN0LnNpemUoKSkpLCBGbG9hdFJlY3Qoc3JjUmVjdCksIG9wLCBkZXNjcmlw
dGlvbik7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChk
ZXN0LCBGbG9hdFNpemUoc3JjUmVjdC5zaXplKCkpKSwgRmxvYXRSZWN0KHNyY1JlY3QpLCBvcCwg
ZGVzY3JpcHRpb24pOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdl
KiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQpA
QCAtNTc5LDEzICs1NzksNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdl
KiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0CiAgICAgZHJhd0ltYWdl
KGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIEJsZW5kTW9kZU5vcm1hbCwg
ZGVzY3JpcHRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0KQotewotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVy
bjsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgRmxvYXRSZWN0
KEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSkpKTsKLX0KLQogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3Np
dGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uIGRlc2NyaXB0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggNzUy
NGQyMDU1Y2NjNDA5MjkyNzJlODdmMGQ3NmM3ZGRjYWZiZjdjYi4uYWU3NmIxMDkxOWQ2N2Y2ZmE1
MjUwZTc2YWUwNzVmM2ZjZWMwNDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTI3MSw3ICsyNzEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIEZJWE1FOiAuLi5leGNlcHQgZHJhd1JlY3QoKSwgd2hp
Y2ggZmlsbHMgcHJvcGVybHkgYnV0IGFsd2F5cyBzdHJva2VzCiAgICAgICAgIC8vIHVzaW5nIGEg
MS1waXhlbCBzdHJva2UgaW5zZXQgZnJvbSB0aGUgcmVjdCBib3JkZXJzIChvZiB0aGUgY29ycmVj
dAogICAgICAgICAvLyBzdHJva2UgY29sb3IpLgotICAgICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0
IEZsb2F0UmVjdCYpOworICAgICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZs
b2F0IGJvcmRlclRoaWNrbmVzcyA9IDEpOwogICAgICAgICB2b2lkIGRyYXdMaW5lKGNvbnN0IEZs
b2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0z
MDIsMTAgKzMwMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHN0cm9r
ZVJlY3QoY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAotICAgICAgICB2b2lk
IGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQ
b2ludCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwotICAg
ICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBJbnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBJ
bWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24o
KSwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd0lt
YWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBk
ZXN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uKCkpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKyAg
ICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgRmxvYXRQb2ludCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zl
ciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKCkpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0
ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAg
ICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29u
c3QgRmxvYXRQb2ludCYgZGVzdFBvaW50LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlw
dGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKICAgICAgICAgdm9pZCBkcmF3
SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9
IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdl
T3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNl
KTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUgPSBmYWxzZSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDRjNzJkODRjODcz
YmM5MGY5YjczNjdkZjUwYWJkMjFhYzBmMmQ2MDkuLjY4NGMxMDY5YjFkMTRhYjA5MmY0OTllODlm
MWViNWZkMDA5ZWU5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTI4MCw3ICsyODAsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKFBhc3NOYXRpdmVJbWFnZVB0ciBp
bWFnZVB0ciwgY29uc3QgRmxvYXRTaQogfQogCiAvLyBEcmF3cyBhIGZpbGxlZCByZWN0YW5nbGUg
d2l0aCBhIHN0cm9rZWQgYm9yZGVyLgotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKIHsKICAgICAvLyBGSVhN
RTogdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBoYW5kbGUgcGF0dGVybnMgYW5kIGdyYWRpZW50cwog
ICAgIC8vIGxpa2UgZHJhd1BhdGggZG9lcywgaXQgcHJvYmFibHkgc2hvdWxkLgpAQCAtMjk5LDEw
ICsyOTksMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKICAgICAgICAgaWYgKG9sZEZpbGxDb2xvciAhPSBzdHJva2VDb2xvcigpKQogICAg
ICAgICAgICAgc2V0Q0dGaWxsQ29sb3IoY29udGV4dCwgc3Ryb2tlQ29sb3IoKSwgc3Ryb2tlQ29s
b3JTcGFjZSgpKTsKICAgICAgICAgQ0dSZWN0IHJlY3RzWzRdID0gewotICAgICAgICAgICAgRmxv
YXRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCAxKSwKLSAgICAgICAgICAg
IEZsb2F0UmVjdChyZWN0LngoKSwgcmVjdC5tYXhZKCkgLSAxLCByZWN0LndpZHRoKCksIDEpLAot
ICAgICAgICAgICAgRmxvYXRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSArIDEsIDEsIHJlY3QuaGVp
Z2h0KCkgLSAyKSwKLSAgICAgICAgICAgIEZsb2F0UmVjdChyZWN0Lm1heFgoKSAtIDEsIHJlY3Qu
eSgpICsgMSwgMSwgcmVjdC5oZWlnaHQoKSAtIDIpCisgICAgICAgICAgICBGbG9hdFJlY3QocmVj
dC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIGJvcmRlclRoaWNrbmVzcyksCisgICAgICAg
ICAgICBGbG9hdFJlY3QocmVjdC54KCksIHJlY3QubWF4WSgpIC0gYm9yZGVyVGhpY2tuZXNzLCBy
ZWN0LndpZHRoKCksIGJvcmRlclRoaWNrbmVzcyksCisgICAgICAgICAgICBGbG9hdFJlY3QocmVj
dC54KCksIHJlY3QueSgpICsgYm9yZGVyVGhpY2tuZXNzLCBib3JkZXJUaGlja25lc3MsIHJlY3Qu
aGVpZ2h0KCkgLSAyICogYm9yZGVyVGhpY2tuZXNzKSwKKyAgICAgICAgICAgIEZsb2F0UmVjdChy
ZWN0Lm1heFgoKSAtIGJvcmRlclRoaWNrbmVzcywgcmVjdC55KCkgKyBib3JkZXJUaGlja25lc3Ms
IGJvcmRlclRoaWNrbmVzcywgcmVjdC5oZWlnaHQoKSAtIDIgKiBib3JkZXJUaGlja25lc3MpCiAg
ICAgICAgIH07CiAgICAgICAgIENHQ29udGV4dEZpbGxSZWN0cyhjb250ZXh0LCByZWN0cywgNCk7
CiAgICAgICAgIGlmIChvbGRGaWxsQ29sb3IgIT0gc3Ryb2tlQ29sb3IoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDYyMTQ3NjMyMGFjNTQ4MDE3OWJhOTFj
ZGUwMWUzNTIwYjk0Y2JjNGUuLmMxODY2OGRmOGEzOWQ3ZjIxMTgyNDNlZTdkYjVkNDE4YjE1Nzdl
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzkwLDYg
KzM5MCw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgTGF5b3V0VW5pdCB0b3BQYWQg
PSBwYWRkaW5nVG9wKCk7CiAKICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludElu
Zm8uY29udGV4dDsKKyAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IGRvY3VtZW50KCkuZGV2
aWNlU2NhbGVGYWN0b3IoKTsKIAogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKIApA
QCAtNDAxLDEzICs0MDIsMTMgQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICAgICAgICAgICAg
IHBhZ2UtPmFkZFJlbGV2YW50VW5wYWludGVkT2JqZWN0KHRoaXMsIHZpc3VhbE92ZXJmbG93UmVj
dCgpKTsKIAogICAgICAgICBpZiAoY1dpZHRoID4gMiAmJiBjSGVpZ2h0ID4gMikgewotICAgICAg
ICAgICAgY29uc3QgaW50IGJvcmRlcldpZHRoID0gMTsKKyAgICAgICAgICAgIExheW91dFVuaXQg
Ym9yZGVyV2lkdGggPSBMYXlvdXRVbml0KDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKICAgICAg
ICAgICAgIC8vIERyYXcgYW4gb3V0bGluZSByZWN0IHdoZXJlIHRoZSBpbWFnZSBzaG91bGQgYmUu
CiAgICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZShTb2xpZFN0cm9rZSk7CiAgICAg
ICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihDb2xvcjo6bGlnaHRHcmF5LCBzdHlsZSgp
LmNvbG9yU3BhY2UoKSk7CiAgICAgICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3I6
OnRyYW5zcGFyZW50LCBzdHlsZSgpLmNvbG9yU3BhY2UoKSk7Ci0gICAgICAgICAgICBjb250ZXh0
LT5kcmF3UmVjdChwaXhlbFNuYXBwZWRJbnRSZWN0KExheW91dFJlY3QocGFpbnRPZmZzZXQueCgp
ICsgbGVmdEJvcmRlciArIGxlZnRQYWQsIHBhaW50T2Zmc2V0LnkoKSArIHRvcEJvcmRlciArIHRv
cFBhZCwgY1dpZHRoLCBjSGVpZ2h0KSkpOworICAgICAgICAgICAgY29udGV4dC0+ZHJhd1JlY3Qo
cGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoTGF5b3V0UmVjdChwYWludE9mZnNldC54KCkgKyBsZWZ0
Qm9yZGVyICsgbGVmdFBhZCwgcGFpbnRPZmZzZXQueSgpICsgdG9wQm9yZGVyICsgdG9wUGFkLCBj
V2lkdGgsIGNIZWlnaHQpLCBkZXZpY2VTY2FsZUZhY3RvciksIGJvcmRlcldpZHRoKTsKIAogICAg
ICAgICAgICAgYm9vbCBlcnJvclBpY3R1cmVEcmF3biA9IGZhbHNlOwogICAgICAgICAgICAgTGF5
b3V0U2l6ZSBpbWFnZU9mZnNldDsKQEAgLTQzNyw3ICs0MzgsNyBAQCB2b2lkIFJlbmRlckltYWdl
OjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZgogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAgICAgICAgICAg
ICAgb3JpZW50YXRpb25EZXNjcmlwdGlvbi5zZXRJbWFnZU9yaWVudGF0aW9uRW51bShzdHlsZSgp
LmltYWdlT3JpZW50YXRpb24oKSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5k
cmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCkuY29sb3JTcGFjZSgpLCBwaXhlbFNuYXBwZWRJ
bnRSZWN0KExheW91dFJlY3QocGFpbnRPZmZzZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VTaXplKSks
IENvbXBvc2l0ZVNvdXJjZU92ZXIsIG9yaWVudGF0aW9uRGVzY3JpcHRpb24pOworICAgICAgICAg
ICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS5jb2xvclNwYWNl
KCksIHBpeGVsU25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3QocGFpbnRPZmZzZXQgKyBpbWFn
ZU9mZnNldCwgaW1hZ2VTaXplKSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBDb21wb3NpdGVTb3VyY2VP
dmVyLCBvcmllbnRhdGlvbkRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgICAgICBlcnJvclBpY3R1
cmVEcmF3biA9IHRydWU7CiAgICAgICAgICAgICB9CiAKQEAgLTQ3OCw3ICs0NzksNyBAQCB2b2lk
IFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICBpZiAoY2xpcCkKICAgICAgICAgICAgIGNvbnRl
eHQtPmNsaXAoY29udGVudFJlY3QpOwogCi0gICAgICAgIHBhaW50SW50b1JlY3QoY29udGV4dCwg
cGFpbnRSZWN0KTsKKyAgICAgICAgcGFpbnRJbnRvUmVjdChjb250ZXh0LCBwaXhlbFNuYXBwZWRG
b3JQYWludGluZyhwYWludFJlY3QsIGRldmljZVNjYWxlRmFjdG9yKSk7CiAgICAgICAgIAogICAg
ICAgICBpZiAoY2FjaGVkSW1hZ2UoKSAmJiBwYWdlICYmIHBhaW50SW5mby5waGFzZSA9PSBQYWlu
dFBoYXNlRm9yZWdyb3VuZCkgewogICAgICAgICAgICAgLy8gRm9yIG5vdywgY291bnQgaW1hZ2Vz
IGFzIHVucGFpbnRlZCBpZiB0aGV5IGFyZSBzdGlsbCBwcm9ncmVzc2l2ZWx5IGxvYWRpbmcuIFdl
IG1heSB3YW50IApAQCAtNTQ5LDI1ICs1NTAsMjQgQEAgdm9pZCBSZW5kZXJJbWFnZTo6YXJlYUVs
ZW1lbnRGb2N1c0NoYW5nZWQoSFRNTEFyZWFFbGVtZW50KiBlbGVtZW50KQogICAgIHJlcGFpbnQo
KTsKIH0KIAotdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdChHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QpCit2b2lkIFJlbmRlckltYWdlOjpwYWlu
dEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogewotICAgIEludFJlY3QgYWxpZ25lZFJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlY3Qp
OwotICAgIGlmICghaW1hZ2VSZXNvdXJjZSgpLmhhc0ltYWdlKCkgfHwgaW1hZ2VSZXNvdXJjZSgp
LmVycm9yT2NjdXJyZWQoKSB8fCBhbGlnbmVkUmVjdC53aWR0aCgpIDw9IDAgfHwgYWxpZ25lZFJl
Y3QuaGVpZ2h0KCkgPD0gMCkKKyAgICBpZiAoIWltYWdlUmVzb3VyY2UoKS5oYXNJbWFnZSgpIHx8
IGltYWdlUmVzb3VyY2UoKS5lcnJvck9jY3VycmVkKCkgfHwgcmVjdC53aWR0aCgpIDw9IDAgfHwg
cmVjdC5oZWlnaHQoKSA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8SW1hZ2U+
IGltZyA9IGltYWdlUmVzb3VyY2UoKS5pbWFnZShhbGlnbmVkUmVjdC53aWR0aCgpLCBhbGlnbmVk
UmVjdC5oZWlnaHQoKSk7CisgICAgUmVmUHRyPEltYWdlPiBpbWcgPSBpbWFnZVJlc291cmNlKCku
aW1hZ2UocmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKICAgICBpZiAoIWltZyB8fCBpbWct
PmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFn
ZUVsdCA9IChlbGVtZW50KCkgJiYgaXNIVE1MSW1hZ2VFbGVtZW50KGVsZW1lbnQoKSkpID8gdG9I
VE1MSW1hZ2VFbGVtZW50KGVsZW1lbnQoKSkgOiAwOwogICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wZXJhdG9yID0gaW1hZ2VFbHQgPyBpbWFnZUVsdC0+Y29tcG9zaXRlT3BlcmF0b3Io
KSA6IENvbXBvc2l0ZVNvdXJjZU92ZXI7CiAgICAgSW1hZ2UqIGltYWdlID0gaW1hZ2VSZXNvdXJj
ZSgpLmltYWdlKCkuZ2V0KCk7Ci0gICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3Vs
ZFBhaW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBpbWFnZSwgYWxpZ25lZFJlY3Quc2l6
ZSgpKTsKKyAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1
YWxpdHkoY29udGV4dCwgaW1hZ2UsIGltYWdlLCBMYXlvdXRTaXplKHJlY3Quc2l6ZSgpKSk7CiAg
ICAgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIG9yaWVudGF0aW9uRGVzY3JpcHRpb24oc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSk7CiAjaWYgRU5BQkxFKENTU19JTUFHRV9PUklF
TlRBVElPTikKICAgICBvcmllbnRhdGlvbkRlc2NyaXB0aW9uLnNldEltYWdlT3JpZW50YXRpb25F
bnVtKHN0eWxlKCkuaW1hZ2VPcmllbnRhdGlvbigpKTsKICNlbmRpZgotICAgIGNvbnRleHQtPmRy
YXdJbWFnZShpbWFnZVJlc291cmNlKCkuaW1hZ2UoYWxpZ25lZFJlY3Qud2lkdGgoKSwgYWxpZ25l
ZFJlY3QuaGVpZ2h0KCkpLmdldCgpLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3Qs
IGNvbXBvc2l0ZU9wZXJhdG9yLCBvcmllbnRhdGlvbkRlc2NyaXB0aW9uLCB1c2VMb3dRdWFsaXR5
U2NhbGluZyk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlUmVzb3VyY2UoKS5pbWFnZShy
ZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpLmdldCgpLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSwg
cmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIG9yaWVudGF0aW9uRGVzY3JpcHRpb24sIHVzZUxvd1F1
YWxpdHlTY2FsaW5nKTsKIH0KIAogYm9vbCBSZW5kZXJJbWFnZTo6Ym94U2hhZG93U2hvdWxkQmVB
cHBsaWVkVG9CYWNrZ3JvdW5kKEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5j
ZSwgSW5saW5lRmxvd0JveCopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5oCmluZGV4IGUyZGU0ZjZkNmRmZWU3MmE2MjcyMDAyMzI3NDcwYmI3MmIxMjIzNDYuLmEyOGI4
MTk1YTFjZWUwOWYyZjJhYmE5MzgxMjE5Yzg5OTc3MGE3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5oCkBAIC03Niw3ICs3Niw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZp
cnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9
IDApIG92ZXJyaWRlOwogCi0gICAgdm9pZCBwYWludEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IExheW91dFJlY3QmKTsKKyAgICB2b2lkIHBhaW50SW50b1JlY3QoR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lk
IGxheW91dCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAppbmRleCBjNTA5OWQ5NmUxYTgwYmU0NzRmMDUxYmZhOGYzYTE3NGIzYjU5MTI3Li42MDBl
Y2RhMDE0MGY5OTdkNWEyMDI5MzEzYjZiNmEyYjA2NDk3MmQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTM0ODIsMTIgKzM0ODIsMTIgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgTGF5b3UKICAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogICAgICAgICBjb250ZXh0
LT50cmFuc2xhdGUocmVzaXplckNvcm5lclJlY3QueCgpICsgY29ybmVyUmVzaXplclNpemUud2lk
dGgoKSwgcmVzaXplckNvcm5lclJlY3QueSgpICsgcmVzaXplckNvcm5lclJlY3QuaGVpZ2h0KCkg
LSBjb3JuZXJSZXNpemVyU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIGNvbnRleHQtPnNjYWxlKEZs
b2F0U2l6ZSgtMS4wLCAxLjApKTsKLSAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKHJlc2l6ZUNv
cm5lckltYWdlLmdldCgpLCByZW5kZXJlcigpLnN0eWxlKCkuY29sb3JTcGFjZSgpLCBJbnRSZWN0
KEludFBvaW50KCksIGNvcm5lclJlc2l6ZXJTaXplKSk7CisgICAgICAgIGNvbnRleHQtPmRyYXdJ
bWFnZShyZXNpemVDb3JuZXJJbWFnZS5nZXQoKSwgcmVuZGVyZXIoKS5zdHlsZSgpLmNvbG9yU3Bh
Y2UoKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgY29ybmVyUmVzaXplclNpemUpKTsKICAgICAg
ICAgY29udGV4dC0+cmVzdG9yZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIExheW91
dFJlY3QgaW1hZ2VSZWN0KHJlc2l6ZXJDb3JuZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCkgLSBjb3Ju
ZXJSZXNpemVyU2l6ZSwgY29ybmVyUmVzaXplclNpemUpOwotICAgIGNvbnRleHQtPmRyYXdJbWFn
ZShyZXNpemVDb3JuZXJJbWFnZS5nZXQoKSwgcmVuZGVyZXIoKS5zdHlsZSgpLmNvbG9yU3BhY2Uo
KSwgcGl4ZWxTbmFwcGVkSW50UmVjdChpbWFnZVJlY3QpKTsKKyAgICBGbG9hdFJlY3QgaW1hZ2VS
ZWN0ID0gcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoTGF5b3V0UmVjdChyZXNpemVyQ29ybmVyUmVj
dC5tYXhYTWF4WUNvcm5lcigpIC0gY29ybmVyUmVzaXplclNpemUsIGNvcm5lclJlc2l6ZXJTaXpl
KSwgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIGNvbnRl
eHQtPmRyYXdJbWFnZShyZXNpemVDb3JuZXJJbWFnZS5nZXQoKSwgcmVuZGVyZXIoKS5zdHlsZSgp
LmNvbG9yU3BhY2UoKSwgaW1hZ2VSZWN0KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRS
ZXNpemVyKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50
T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0JiBkYW1hZ2VSZWN0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ0MzJlNWYxMmNj
MjRhYmFkOGZhMzY0NTk4NGE2OWY0MGJmYjE3YjUuLmJiNWZkNjY5M2JjMmY4YTBkNjQyYjc1ZDc5
YTUxZmJmN2M1MGNiMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMCBAQAogMjAxNC0wMy0yMSAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCisgICAgICAgIFN1YnBpeGVsIHJlbmRlcmluZzog
TWFrZSA8aW1nPiBwb3NpdGlvbmluZyBzdWJwaXhlbCBhd2FyZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDU5NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSA8aW1nPiBwb3NpdGlvbmluZyBm
cm9tIGludGVncmFsIHRvIGRldmljZSBwaXhlbC4gSXQgZW5hYmxlcyB1cworICAgICAgICB0byBw
YWludCBoYWlybGluZSBib3JkZXJzIGFyb3VuZCA8aW1nPiBwcm9wZXJseS4KKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBicm9rZW4gaW1hZ2UgcmVwcmVzZW50YXRp
b24gZnJvbSBjb25zdGFudCAxIENTUyBweCBib3JkZXIKKyAgICAgICAgdG8gYSBkeW5hbWljIDEg
ZGV2aWNlIHB4LgorCisgICAgICAgICogZmFzdC9pbWFnZXMvaGlkcGktaW1hZ2UtcG9zaXRpb24t
b24tZGV2aWNlLXBpeGVscy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2lt
YWdlcy9oaWRwaS1pbWFnZS1wb3NpdGlvbi1vbi1kZXZpY2UtcGl4ZWxzLmh0bWw6IEFkZGVkLgor
CisyMDE0LTAzLTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKICAgICAgICAg
U3VicGl4ZWwgcmVuZGVyaW5nOiBSZW5kZXJCb3ggaXMgcG9zaXRpb25lZCBvZmYgYnkgb25lIHdo
ZW4gbm9uLWNvbXBvc2l0aW5nIHRyYW5zZm9ybSBpcyBwcmVzZW50LgogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNDMwCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBvc2l0aW9uLW9uLWRldmljZS1waXhl
bHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBv
c2l0aW9uLW9uLWRldmljZS1waXhlbHMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzQwMzli
ZDRmZGE5ZjQzMDI1NGFjNjM0MzE5YzU3ZTdiMzJlZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaGlkcGktaW1hZ2UtcG9zaXRpb24tb24tZGV2aWNlLXBpeGVs
cy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoYXQgd2UgY2FuIHBhaW50IGltYWdlcyBvbiBk
ZXZpY2UgcGl4ZWwgcG9zaXRpb25zLjwvdGl0bGU+Cis8c3R5bGU+CisgZGl2IHsKKyAgcG9zaXRp
b246IGFic29sdXRlOworICBiYWNrZ3JvdW5kOiB5ZWxsb3c7Cit9Cis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iY29udGFpbmVyIj48L3A+Cis8c2NyaXB0PgorICB2YXIgY29udGFp
bmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICBhZGp1c3RtZW50
ID0gMC4xOworICB3ID0gNTA7IGggPSA1MDsKKyAgZm9yIChpID0gMDsgaSA8IDEwOyArK2kpIHsK
KyAgICBhZGp1c3RtZW50ICs9IDAuMTsKKyAgICBmb3IgKGogPSAwOyBqIDwgMTA7ICsraikgewor
ICAgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgIGUuc3R5
bGUudG9wID0gKCh3ICsgMSkgKiBpICsgaiAqIGFkanVzdG1lbnQpICsgInB4IjsKKyAgICAgIGUu
c3R5bGUubGVmdCA9ICgodyArIDEpICogaiArIGkgKiBhZGp1c3RtZW50KSArICJweCI7CisgICAg
ICBlLnN0eWxlLndpZHRoID0gdyArICJweCI7CisgICAgICBlLnN0eWxlLmhlaWdodCA9IGggKyAi
cHgiOworICAgICAgdyArPSAwLjE7CisgICAgICBoICs9IDAuMTsKKyAgICAgIGNvbnRhaW5lci5h
cHBlbmRDaGlsZChlKTsKKyAgICB9CisgIH0KKzwvc2NyaXB0PjwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9oaWRwaS1pbWFnZS1wb3NpdGlvbi1vbi1kZXZpY2UtcGl4ZWxzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9oaWRwaS1pbWFnZS1wb3NpdGlvbi1vbi1kZXZpY2UtcGl4ZWxzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzFiZjY3NTNjMmE5ZGYzNDk0Y2Q5OTJkMGE3NTVlNzBmZjY4ZTk2ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBv
c2l0aW9uLW9uLWRldmljZS1waXhlbHMuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIGNhbiBwYWlu
dCBpbWFnZXMgb24gZGV2aWNlIHBpeGVsIHBvc2l0aW9ucy48L3RpdGxlPgorPHN0eWxlPgorIGlt
ZyB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJjb250YWluZXIiPjwvcD4KKzxzY3JpcHQ+CisgIHZhciBjb250YWluZXIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgIGFkanVzdG1lbnQgPSAwLjE7Cisg
IHcgPSA1MDsgaCA9IDUwOworICBmb3IgKGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgIGFkanVz
dG1lbnQgKz0gMC4xOworICAgIGZvciAoaiA9IDA7IGogPCAxMDsgKytqKSB7CisgICAgICB2YXIg
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworICAgICAgZS5zcmMgPSAiZGF0YTpp
bWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FJQUFBQ1Fk
MVBlQUFBQURFbEVRVlI0Mm1QNCUyRjU4QkFBVCUyRkFmOWpnTkVyQUFBQUFFbEZUa1N1UW1DQyIK
KyAgICAgIGUuc3R5bGUudG9wID0gKCh3ICsgMSkgKiBpICsgaiAqIGFkanVzdG1lbnQpICsgInB4
IjsKKyAgICAgIGUuc3R5bGUubGVmdCA9ICgodyArIDEpICogaiArIGkgKiBhZGp1c3RtZW50KSAr
ICJweCI7CisgICAgICBlLnN0eWxlLndpZHRoID0gdyArICJweCI7CisgICAgICBlLnN0eWxlLmhl
aWdodCA9IGggKyAicHgiOworICAgICAgdyArPSAwLjE7CisgICAgICBoICs9IDAuMTsKKyAgICAg
IGNvbnRhaW5lci5hcHBlbmRDaGlsZChlKTsKKyAgICB9CisgIH0KKzwvc2NyaXB0PjwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227472</attachid>
            <date>2014-03-21 12:37:52 -0700</date>
            <delta_ts>2014-03-21 14:32:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130596-20140321123727.patch</filename>
            <type>text/plain</type>
            <size>22256</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZkZTZjMmY2NzVjMGU1
MDY1Mzc1YjgzMDMwZmIwYzk4M2VjMjAxYi4uMjFmZGQ0NzU1ZDQ4OGFhNDYwOWZmMDRjNzZhYjdl
NTE3NDYxODIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDE0LTAzLTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIDxpbWc+IHBvc2l0aW9uaW5nIHN1YnBpeGVsIGF3YXJlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNTk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIENoYW5nZSA8aW1nPiBwb3NpdGlvbmluZyBm
cm9tIGludGVncmFsIHRvIGRldmljZSBwaXhlbC4gSXQgZW5hYmxlcyB1cworICAgICAgICB0byBw
YWludCBoYWlybGluZSBib3JkZXJzIGFyb3VuZCA8aW1nPiBwcm9wZXJseS4KKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBicm9rZW4gaW1hZ2UgcmVwcmVzZW50YXRp
b24gZnJvbSBjb25zdGFudCAxIENTUyBweCBib3JkZXIKKyAgICAgICAgdG8gYSBkeW5hbWljIDEg
ZGV2aWNlIHB4LgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBvc2l0
aW9uLW9uLWRldmljZS1waXhlbHMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmRyYXdSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToK
KworMjAxNC0wMy0yMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCiAgICAgICAg
IFN1YnBpeGVsIHJlbmRlcmluZzogUmVuZGVyQm94IGlzIHBvc2l0aW9uZWQgb2ZmIGJ5IG9uZSB3
aGVuIG5vbi1jb21wb3NpdGluZyB0cmFuc2Zvcm0gaXMgcHJlc2VudC4KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDQzMAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCmluZGV4IGEwMjI5ZWM0ZDFlZjA1NzAwZDIzZmMzZjdlOTExNmFhNTg4OTAzYmUuLjBjOWE1
NmNjMGMzODc1MWMyYjQ1MzI1M2Q5ZWY4YzMxM2ZlNjVhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC01MTMsNyArNTEzLDcgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ4ZmlsbFBh
dGhFUktOU180UGF0aEUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OGZpbGxSZWN0RVJL
TlNfOUZsb2F0UmVjdEUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OGZpbGxSZWN0RVJL
TlNfOUZsb2F0UmVjdEVSS05TXzVDb2xvckVOU18xMENvbG9yU3BhY2VFCiBfX1pON1dlYkNvcmUx
NUdyYXBoaWNzQ29udGV4dDljbGVhclJlY3RFUktOU185RmxvYXRSZWN0RQotX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0NvbnRleHQ5ZHJhd0ltYWdlRVBOU181SW1hZ2VFTlNfMTBDb2xvclNwYWNlRVJL
TlNfOEludFBvaW50RU5TXzE3Q29tcG9zaXRlT3BlcmF0b3JFTlNfMjdJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb25FCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDlkcmF3SW1hZ2VFUE5T
XzVJbWFnZUVOU18xMENvbG9yU3BhY2VFUktOU18xMEZsb2F0UG9pbnRFTlNfMTdDb21wb3NpdGVP
cGVyYXRvckVOU18yN0ltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbkUKIF9fWk43V2ViQ29yZTE1
R3JhcGhpY3NDb250ZXh0OXNldFNoYWRvd0VSS05TXzlGbG9hdFNpemVFZlJLTlNfNUNvbG9yRU5T
XzEwQ29sb3JTcGFjZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OXRyYW5zbGF0ZUVm
ZgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHREMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBmNTI0YjNh
M2IwNTBkMWExMWRiZWQ2M2VhOGNhZjBhNDY3NjEzMGVkLi5hMDU1NTYzZjQ2MTNiMDAwNjg3YmMy
NzFmOTE0ZjUyZjg5NWNjMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTU1NSwyMyArNTU1LDIzIEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiBmb250LCBj
b25zdCBUZXh0UnVuJiBydW4sCiAgICAgZmlsbFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4
dChydW4sIHBvaW50LCBoLCBmcm9tLCB0byksIGJhY2tncm91bmRDb2xvciwgY29sb3JTcGFjZSk7
CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pCit2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIGNvbnN0IEZsb2F0UG9pbnQmIHAsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pCiB7CiAgICAgaWYgKCFpbWFnZSkK
ICAgICAgICAgcmV0dXJuOwotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBG
bG9hdFJlY3QoSW50UmVjdChwLCBpbWFnZS0+c2l6ZSgpKSksIEZsb2F0UmVjdChGbG9hdFBvaW50
KCksIEZsb2F0U2l6ZShpbWFnZS0+c2l6ZSgpKSksIG9wLCBkZXNjcmlwdGlvbik7CisgICAgZHJh
d0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChwLCBpbWFnZS0+c2l6ZSgp
KSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSksIG9wLCBkZXNjcmlwdGlv
bik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgYm9vbCB1
c2VMb3dRdWFsaXR5U2NhbGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdl
KiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgciwg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlw
dGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAgaWYgKCFpbWFnZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJl
Y3QociksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZsb2F0U2l6ZShpbWFnZS0+c2l6ZSgpKSks
IG9wLCBkZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICBkcmF3SW1hZ2UoaW1h
Z2UsIHN0eWxlQ29sb3JTcGFjZSwgciwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgaW1hZ2UtPnNp
emUoKSksIG9wLCBkZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlw
dGlvbikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRQb2ludCYgZGVzdCwgY29uc3QgSW50
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbiBkZXNjcmlwdGlvbikKIHsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JT
cGFjZSwgRmxvYXRSZWN0KEludFJlY3QoZGVzdCwgc3JjUmVjdC5zaXplKCkpKSwgRmxvYXRSZWN0
KHNyY1JlY3QpLCBvcCwgZGVzY3JpcHRpb24pOworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVD
b2xvclNwYWNlLCBGbG9hdFJlY3QoZGVzdCwgc3JjUmVjdC5zaXplKCkpLCBGbG9hdFJlY3Qoc3Jj
UmVjdCksIG9wLCBkZXNjcmlwdGlvbik7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3As
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgYm9vbCB1c2VMb3dRdWFs
aXR5U2NhbGUpCkBAIC01NzksMTMgKzU3OSw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QKICAg
ICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBvcCwgQmxlbmRN
b2RlTm9ybWFsLCBkZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAotdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QpCi17Ci0gICAgaWYgKCFpbWFnZSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0
LCBGbG9hdFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+c2l6ZSgpKSkpOwotfQotCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQog
eyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFpbWFnZSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAppbmRleCA3NTI0ZDIwNTVjY2M0MDkyOTI3MmU4N2YwZDc2YzdkZGNhZmJmN2NiLi5hZTc2YjEw
OTE5ZDY3ZjZmYTUyNTBlNzZhZTA3NWYzZmNlYzA0MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMjcxLDcgKzI3MSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gRklYTUU6IC4uLmV4Y2VwdCBkcmF3
UmVjdCgpLCB3aGljaCBmaWxscyBwcm9wZXJseSBidXQgYWx3YXlzIHN0cm9rZXMKICAgICAgICAg
Ly8gdXNpbmcgYSAxLXBpeGVsIHN0cm9rZSBpbnNldCBmcm9tIHRoZSByZWN0IGJvcmRlcnMgKG9m
IHRoZSBjb3JyZWN0CiAgICAgICAgIC8vIHN0cm9rZSBjb2xvcikuCi0gICAgICAgIHZvaWQgZHJh
d1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgICAgIHZvaWQgZHJhd1JlY3QoY29uc3QgRmxv
YXRSZWN0JiwgZmxvYXQgYm9yZGVyVGhpY2tuZXNzID0gMSk7CiAgICAgICAgIHZvaWQgZHJhd0xp
bmUoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmKTsKIAogI2lmIFBMQVRGT1JN
KElPUykKQEAgLTMwMiwxMCArMzAyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAg
IHZvaWQgc3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBsaW5lV2lkdGgpOwogCi0g
ICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0IEludFBvaW50JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVy
LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24oKSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIGNvbnN0IEludFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNv
dXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbigpLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKLSAgICAgICAg
dm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
SW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3Bl
cmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24g
PSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdl
KEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVz
dFJlY3QpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdCBGbG9hdFBvaW50JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0
aW9uRGVzY3JpcHRpb24oKSk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9y
ID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFs
c2UpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBjb25zdCBGbG9hdFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1Jl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogICAgICAg
ICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0
ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIGJvb2wgdXNlTG93UXVhbGl0eVNj
YWxlID0gZmFsc2UpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxv
d1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAKaW5kZXggZDQzOTdlMTZjNDJkMzdjYmY0MTY3NGYxOWUwZTM1ODczN2VjODAzMC4uMzAw
YWQ5NjdmODk1NmUzOGExMmM4YTY4MTAzY2ZlOGY3ZWI0M2U1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dENhaXJvLmNwcApAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpy
ZXN0b3JlUGxhdGZvcm1TdGF0ZSgpCiB9CiAKIC8vIERyYXdzIGEgZmlsbGVkIHJlY3RhbmdsZSB3
aXRoIGEgc3Ryb2tlZCBib3JkZXIuCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDRjNzJkODRjODczYmM5MGY5
YjczNjdkZjUwYWJkMjFhYzBmMmQ2MDkuLjY4NGMxMDY5YjFkMTRhYjA5MmY0OTllODlmMWViNWZk
MDA5ZWU5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTI4MCw3ICsyODAsNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKFBhc3NOYXRpdmVJbWFnZVB0ciBpbWFnZVB0
ciwgY29uc3QgRmxvYXRTaQogfQogCiAvLyBEcmF3cyBhIGZpbGxlZCByZWN0YW5nbGUgd2l0aCBh
IHN0cm9rZWQgYm9yZGVyLgotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGZsb2F0IGJvcmRlclRoaWNrbmVzcykKIHsKICAgICAvLyBGSVhNRTogdGhp
cyBmdW5jdGlvbiBkb2VzIG5vdCBoYW5kbGUgcGF0dGVybnMgYW5kIGdyYWRpZW50cwogICAgIC8v
IGxpa2UgZHJhd1BhdGggZG9lcywgaXQgcHJvYmFibHkgc2hvdWxkLgpAQCAtMjk5LDEwICsyOTks
MTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKICAgICAgICAgaWYgKG9sZEZpbGxDb2xvciAhPSBzdHJva2VDb2xvcigpKQogICAgICAgICAg
ICAgc2V0Q0dGaWxsQ29sb3IoY29udGV4dCwgc3Ryb2tlQ29sb3IoKSwgc3Ryb2tlQ29sb3JTcGFj
ZSgpKTsKICAgICAgICAgQ0dSZWN0IHJlY3RzWzRdID0gewotICAgICAgICAgICAgRmxvYXRSZWN0
KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCAxKSwKLSAgICAgICAgICAgIEZsb2F0
UmVjdChyZWN0LngoKSwgcmVjdC5tYXhZKCkgLSAxLCByZWN0LndpZHRoKCksIDEpLAotICAgICAg
ICAgICAgRmxvYXRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSArIDEsIDEsIHJlY3QuaGVpZ2h0KCkg
LSAyKSwKLSAgICAgICAgICAgIEZsb2F0UmVjdChyZWN0Lm1heFgoKSAtIDEsIHJlY3QueSgpICsg
MSwgMSwgcmVjdC5oZWlnaHQoKSAtIDIpCisgICAgICAgICAgICBGbG9hdFJlY3QocmVjdC54KCks
IHJlY3QueSgpLCByZWN0LndpZHRoKCksIGJvcmRlclRoaWNrbmVzcyksCisgICAgICAgICAgICBG
bG9hdFJlY3QocmVjdC54KCksIHJlY3QubWF4WSgpIC0gYm9yZGVyVGhpY2tuZXNzLCByZWN0Lndp
ZHRoKCksIGJvcmRlclRoaWNrbmVzcyksCisgICAgICAgICAgICBGbG9hdFJlY3QocmVjdC54KCks
IHJlY3QueSgpICsgYm9yZGVyVGhpY2tuZXNzLCBib3JkZXJUaGlja25lc3MsIHJlY3QuaGVpZ2h0
KCkgLSAyICogYm9yZGVyVGhpY2tuZXNzKSwKKyAgICAgICAgICAgIEZsb2F0UmVjdChyZWN0Lm1h
eFgoKSAtIGJvcmRlclRoaWNrbmVzcywgcmVjdC55KCkgKyBib3JkZXJUaGlja25lc3MsIGJvcmRl
clRoaWNrbmVzcywgcmVjdC5oZWlnaHQoKSAtIDIgKiBib3JkZXJUaGlja25lc3MpCiAgICAgICAg
IH07CiAgICAgICAgIENHQ29udGV4dEZpbGxSZWN0cyhjb250ZXh0LCByZWN0cywgNCk7CiAgICAg
ICAgIGlmIChvbGRGaWxsQ29sb3IgIT0gc3Ryb2tlQ29sb3IoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4
dFdpbkNFLmNwcAppbmRleCAyMWQ4OTlkNTgwZDBiOTA3Njg5YTE5NGNlY2ZjNzUwNGYzZDNhODM2
Li4wMjY5ZjAwNTU5NDczNDJiMzQyZGFkNjQ3MmY0OGQwNzEzY2M4YjUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5D
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhp
Y3NDb250ZXh0V2luQ0UuY3BwCkBAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKCkKICAgICBtX2RhdGEtPnJlc3RvcmUoKTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0
KQogewogICAgIGlmICghbV9kYXRhLT5tX29wYWNpdHkgfHwgcGFpbnRpbmdEaXNhYmxlZCgpIHx8
IHJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAppbmRleCA2MjE0NzYzMjBhYzU0ODAxNzliYTkxY2RlMDFlMzUyMGI5
NGNiYzRlLi5jMTg2NjhkZjhhMzlkN2YyMTE4MjQzZWU3ZGI1ZDQxOGIxNTc3ZWY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTM5MCw2ICszOTAsNyBAQCB2
b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgIExheW91dFVuaXQgdG9wUGFkID0gcGFkZGluZ1Rv
cCgpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7
CisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBkb2N1bWVudCgpLmRldmljZVNjYWxlRmFj
dG9yKCk7CiAKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAKQEAgLTQwMSwxMyAr
NDAyLDEzIEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgICAgICAgICBwYWdlLT5hZGRS
ZWxldmFudFVucGFpbnRlZE9iamVjdCh0aGlzLCB2aXN1YWxPdmVyZmxvd1JlY3QoKSk7CiAKICAg
ICAgICAgaWYgKGNXaWR0aCA+IDIgJiYgY0hlaWdodCA+IDIpIHsKLSAgICAgICAgICAgIGNvbnN0
IGludCBib3JkZXJXaWR0aCA9IDE7CisgICAgICAgICAgICBMYXlvdXRVbml0IGJvcmRlcldpZHRo
ID0gTGF5b3V0VW5pdCgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOwogCiAgICAgICAgICAgICAvLyBE
cmF3IGFuIG91dGxpbmUgcmVjdCB3aGVyZSB0aGUgaW1hZ2Ugc2hvdWxkIGJlLgogICAgICAgICAg
ICAgY29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoU29saWRTdHJva2UpOwogICAgICAgICAgICAgY29u
dGV4dC0+c2V0U3Ryb2tlQ29sb3IoQ29sb3I6OmxpZ2h0R3JheSwgc3R5bGUoKS5jb2xvclNwYWNl
KCkpOwogICAgICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yOjp0cmFuc3BhcmVu
dCwgc3R5bGUoKS5jb2xvclNwYWNlKCkpOwotICAgICAgICAgICAgY29udGV4dC0+ZHJhd1JlY3Qo
cGl4ZWxTbmFwcGVkSW50UmVjdChMYXlvdXRSZWN0KHBhaW50T2Zmc2V0LngoKSArIGxlZnRCb3Jk
ZXIgKyBsZWZ0UGFkLCBwYWludE9mZnNldC55KCkgKyB0b3BCb3JkZXIgKyB0b3BQYWQsIGNXaWR0
aCwgY0hlaWdodCkpKTsKKyAgICAgICAgICAgIGNvbnRleHQtPmRyYXdSZWN0KHBpeGVsU25hcHBl
ZEZvclBhaW50aW5nKExheW91dFJlY3QocGFpbnRPZmZzZXQueCgpICsgbGVmdEJvcmRlciArIGxl
ZnRQYWQsIHBhaW50T2Zmc2V0LnkoKSArIHRvcEJvcmRlciArIHRvcFBhZCwgY1dpZHRoLCBjSGVp
Z2h0KSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBib3JkZXJXaWR0aCk7CiAKICAgICAgICAgICAgIGJv
b2wgZXJyb3JQaWN0dXJlRHJhd24gPSBmYWxzZTsKICAgICAgICAgICAgIExheW91dFNpemUgaW1h
Z2VPZmZzZXQ7CkBAIC00MzcsNyArNDM4LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRSZXBs
YWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2YKICNp
ZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAgICAgICAgICAgICAgIG9yaWVudGF0
aW9uRGVzY3JpcHRpb24uc2V0SW1hZ2VPcmllbnRhdGlvbkVudW0oc3R5bGUoKS5pbWFnZU9yaWVu
dGF0aW9uKCkpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGlt
YWdlLmdldCgpLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSwgcGl4ZWxTbmFwcGVkSW50UmVjdChMYXlv
dXRSZWN0KHBhaW50T2Zmc2V0ICsgaW1hZ2VPZmZzZXQsIGltYWdlU2l6ZSkpLCBDb21wb3NpdGVT
b3VyY2VPdmVyLCBvcmllbnRhdGlvbkRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICBjb250
ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCkuY29sb3JTcGFjZSgpLCBwaXhlbFNu
YXBwZWRGb3JQYWludGluZyhMYXlvdXRSZWN0KHBhaW50T2Zmc2V0ICsgaW1hZ2VPZmZzZXQsIGlt
YWdlU2l6ZSksIGRldmljZVNjYWxlRmFjdG9yKSwgQ29tcG9zaXRlU291cmNlT3Zlciwgb3JpZW50
YXRpb25EZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgZXJyb3JQaWN0dXJlRHJhd24gPSB0
cnVlOwogICAgICAgICAgICAgfQogCkBAIC00NzgsNyArNDc5LDcgQEAgdm9pZCBSZW5kZXJJbWFn
ZTo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2YKICAgICAgICAgaWYgKGNsaXApCiAgICAgICAgICAgICBjb250ZXh0LT5jbGlwKGNv
bnRlbnRSZWN0KTsKIAotICAgICAgICBwYWludEludG9SZWN0KGNvbnRleHQsIHBhaW50UmVjdCk7
CisgICAgICAgIHBhaW50SW50b1JlY3QoY29udGV4dCwgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmco
cGFpbnRSZWN0LCBkZXZpY2VTY2FsZUZhY3RvcikpOwogICAgICAgICAKICAgICAgICAgaWYgKGNh
Y2hlZEltYWdlKCkgJiYgcGFnZSAmJiBwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZvcmVn
cm91bmQpIHsKICAgICAgICAgICAgIC8vIEZvciBub3csIGNvdW50IGltYWdlcyBhcyB1bnBhaW50
ZWQgaWYgdGhleSBhcmUgc3RpbGwgcHJvZ3Jlc3NpdmVseSBsb2FkaW5nLiBXZSBtYXkgd2FudCAK
QEAgLTU0OSwyNSArNTUwLDI0IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmFyZWFFbGVtZW50Rm9jdXND
aGFuZ2VkKEhUTUxBcmVhRWxlbWVudCogZWxlbWVudCkKICAgICByZXBhaW50KCk7CiB9CiAKLXZv
aWQgUmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBMYXlvdXRSZWN0JiByZWN0KQordm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBJ
bnRSZWN0IGFsaWduZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZWN0KTsKLSAgICBpZiAo
IWltYWdlUmVzb3VyY2UoKS5oYXNJbWFnZSgpIHx8IGltYWdlUmVzb3VyY2UoKS5lcnJvck9jY3Vy
cmVkKCkgfHwgYWxpZ25lZFJlY3Qud2lkdGgoKSA8PSAwIHx8IGFsaWduZWRSZWN0LmhlaWdodCgp
IDw9IDApCisgICAgaWYgKCFpbWFnZVJlc291cmNlKCkuaGFzSW1hZ2UoKSB8fCBpbWFnZVJlc291
cmNlKCkuZXJyb3JPY2N1cnJlZCgpIHx8IHJlY3Qud2lkdGgoKSA8PSAwIHx8IHJlY3QuaGVpZ2h0
KCkgPD0gMCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPEltYWdlPiBpbWcgPSBpbWFn
ZVJlc291cmNlKCkuaW1hZ2UoYWxpZ25lZFJlY3Qud2lkdGgoKSwgYWxpZ25lZFJlY3QuaGVpZ2h0
KCkpOworICAgIFJlZlB0cjxJbWFnZT4gaW1nID0gaW1hZ2VSZXNvdXJjZSgpLmltYWdlKHJlY3Qu
d2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgaWYgKCFpbWcgfHwgaW1nLT5pc051bGwoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgSFRNTEltYWdlRWxlbWVudCogaW1hZ2VFbHQgPSAoZWxl
bWVudCgpICYmIGlzSFRNTEltYWdlRWxlbWVudChlbGVtZW50KCkpKSA/IHRvSFRNTEltYWdlRWxl
bWVudChlbGVtZW50KCkpIDogMDsKICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVy
YXRvciA9IGltYWdlRWx0ID8gaW1hZ2VFbHQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3Np
dGVTb3VyY2VPdmVyOwogICAgIEltYWdlKiBpbWFnZSA9IGltYWdlUmVzb3VyY2UoKS5pbWFnZSgp
LmdldCgpOwotICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93
UXVhbGl0eShjb250ZXh0LCBpbWFnZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7CisgICAg
Ym9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dRdWFsaXR5KGNvbnRl
eHQsIGltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUoKSkpOwogICAgIEltYWdlT3Jp
ZW50YXRpb25EZXNjcmlwdGlvbiBvcmllbnRhdGlvbkRlc2NyaXB0aW9uKHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKCkpOwogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAg
ICAgb3JpZW50YXRpb25EZXNjcmlwdGlvbi5zZXRJbWFnZU9yaWVudGF0aW9uRW51bShzdHlsZSgp
LmltYWdlT3JpZW50YXRpb24oKSk7CiAjZW5kaWYKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1h
Z2VSZXNvdXJjZSgpLmltYWdlKGFsaWduZWRSZWN0LndpZHRoKCksIGFsaWduZWRSZWN0LmhlaWdo
dCgpKS5nZXQoKSwgc3R5bGUoKS5jb2xvclNwYWNlKCksIGFsaWduZWRSZWN0LCBjb21wb3NpdGVP
cGVyYXRvciwgb3JpZW50YXRpb25EZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwor
ICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZVJlc291cmNlKCkuaW1hZ2UocmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpKS5nZXQoKSwgc3R5bGUoKS5jb2xvclNwYWNlKCksIHJlY3QsIGNvbXBv
c2l0ZU9wZXJhdG9yLCBvcmllbnRhdGlvbkRlc2NyaXB0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGlu
Zyk7CiB9CiAKIGJvb2wgUmVuZGVySW1hZ2U6OmJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFj
a2dyb3VuZChCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIElubGluZUZs
b3dCb3gqKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCBl
MmRlNGY2ZDZkZmVlNzJhNjI3MjAwMjMyNzQ3MGJiNzJiMTIyMzQ2Li5hMjhiODE5NWExY2VlMDlm
MmYyYWJhOTM4MTIxOWM4OTk3NzBhNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuaApAQCAtNzYsNyArNzYsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIHZvaWQg
aW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlk
ZTsKIAotICAgIHZvaWQgcGFpbnRJbnRvUmVjdChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlv
dXRSZWN0Jik7CisgICAgdm9pZCBwYWludEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEZsb2F0UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXgg
YzUwOTlkOTZlMWE4MGJlNDc0ZjA1MWJmYThmM2ExNzRiM2I1OTEyNy4uNjAwZWNkYTAxNDBmOTk3
ZDVhMjAyOTMxM2I2YjZhMmIwNjQ5NzJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCkBAIC0zNDgyLDEyICszNDgyLDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRy
YXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExh
eW91CiAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRl
KHJlc2l6ZXJDb3JuZXJSZWN0LngoKSArIGNvcm5lclJlc2l6ZXJTaXplLndpZHRoKCksIHJlc2l6
ZXJDb3JuZXJSZWN0LnkoKSArIHJlc2l6ZXJDb3JuZXJSZWN0LmhlaWdodCgpIC0gY29ybmVyUmVz
aXplclNpemUuaGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoLTEu
MCwgMS4wKSk7Ci0gICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShyZXNpemVDb3JuZXJJbWFnZS5n
ZXQoKSwgcmVuZGVyZXIoKS5zdHlsZSgpLmNvbG9yU3BhY2UoKSwgSW50UmVjdChJbnRQb2ludCgp
LCBjb3JuZXJSZXNpemVyU2l6ZSkpOworICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UocmVzaXpl
Q29ybmVySW1hZ2UuZ2V0KCksIHJlbmRlcmVyKCkuc3R5bGUoKS5jb2xvclNwYWNlKCksIEZsb2F0
UmVjdChGbG9hdFBvaW50KCksIGNvcm5lclJlc2l6ZXJTaXplKSk7CiAgICAgICAgIGNvbnRleHQt
PnJlc3RvcmUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBMYXlvdXRSZWN0IGltYWdl
UmVjdChyZXNpemVyQ29ybmVyUmVjdC5tYXhYTWF4WUNvcm5lcigpIC0gY29ybmVyUmVzaXplclNp
emUsIGNvcm5lclJlc2l6ZXJTaXplKTsKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2UocmVzaXplQ29y
bmVySW1hZ2UuZ2V0KCksIHJlbmRlcmVyKCkuc3R5bGUoKS5jb2xvclNwYWNlKCksIHBpeGVsU25h
cHBlZEludFJlY3QoaW1hZ2VSZWN0KSk7CisgICAgRmxvYXRSZWN0IGltYWdlUmVjdCA9IHBpeGVs
U25hcHBlZEZvclBhaW50aW5nKExheW91dFJlY3QocmVzaXplckNvcm5lclJlY3QubWF4WE1heFlD
b3JuZXIoKSAtIGNvcm5lclJlc2l6ZXJTaXplLCBjb3JuZXJSZXNpemVyU2l6ZSksIHJlbmRlcmVy
KCkuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICBjb250ZXh0LT5kcmF3SW1h
Z2UocmVzaXplQ29ybmVySW1hZ2UuZ2V0KCksIHJlbmRlcmVyKCkuc3R5bGUoKS5jb2xvclNwYWNl
KCksIGltYWdlUmVjdCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50UmVzaXplcihHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgY29u
c3QgTGF5b3V0UmVjdCYgZGFtYWdlUmVjdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NDMyZTVmMTJjYzI0YWJhZDhmYTM2
NDU5ODRhNjlmNDBiZmIxN2I1Li5iYjVmZDY2OTNiYzJmOGEwZDY0MmI3NWQ3OWE1MWZiZjdjNTBj
YjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAKIDIwMTQtMDMtMjEgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAorICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IE1ha2UgPGltZz4g
cG9zaXRpb25pbmcgc3VicGl4ZWwgYXdhcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzA1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgPGltZz4gcG9zaXRpb25pbmcgZnJvbSBpbnRlZ3Jh
bCB0byBkZXZpY2UgcGl4ZWwuIEl0IGVuYWJsZXMgdXMKKyAgICAgICAgdG8gcGFpbnQgaGFpcmxp
bmUgYm9yZGVycyBhcm91bmQgPGltZz4gcHJvcGVybHkuCisgICAgICAgIFRoaXMgcGF0Y2ggY2hh
bmdlcyB0aGUgYmVoYXZpb3Igb2YgYnJva2VuIGltYWdlIHJlcHJlc2VudGF0aW9uIGZyb20gY29u
c3RhbnQgMSBDU1MgcHggYm9yZGVyCisgICAgICAgIHRvIGEgZHluYW1pYyAxIGRldmljZSBweC4K
KworICAgICAgICAqIGZhc3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBvc2l0aW9uLW9uLWRldmljZS1w
aXhlbHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvaGlkcGkt
aW1hZ2UtcG9zaXRpb24tb24tZGV2aWNlLXBpeGVscy5odG1sOiBBZGRlZC4KKworMjAxNC0wMy0y
MSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCiAgICAgICAgIFN1YnBpeGVsIHJl
bmRlcmluZzogUmVuZGVyQm94IGlzIHBvc2l0aW9uZWQgb2ZmIGJ5IG9uZSB3aGVuIG5vbi1jb21w
b3NpdGluZyB0cmFuc2Zvcm0gaXMgcHJlc2VudC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDQzMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9oaWRwaS1pbWFnZS1wb3NpdGlvbi1vbi1kZXZpY2UtcGl4ZWxzLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9oaWRwaS1pbWFnZS1wb3NpdGlvbi1vbi1k
ZXZpY2UtcGl4ZWxzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M0MDM5YmQ0ZmRhOWY0MzAy
NTRhYzYzNDMxOWM1N2U3YjMyZWViOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBvc2l0aW9uLW9uLWRldmljZS1waXhlbHMtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IHdlIGNhbiBwYWludCBpbWFnZXMgb24gZGV2aWNlIHBpeGVs
IHBvc2l0aW9ucy48L3RpdGxlPgorPHN0eWxlPgorIGRpdiB7CisgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgYmFja2dyb3VuZDogeWVsbG93OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PHAgaWQ9ImNvbnRhaW5lciI+PC9wPgorPHNjcmlwdD4KKyAgdmFyIGNvbnRhaW5lciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgYWRqdXN0bWVudCA9IDAuMTsKKyAg
dyA9IDUwOyBoID0gNTA7CisgIGZvciAoaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgYWRqdXN0
bWVudCArPSAwLjE7CisgICAgZm9yIChqID0gMDsgaiA8IDEwOyArK2opIHsKKyAgICAgIHZhciBl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICBlLnN0eWxlLnRvcCA9ICgo
dyArIDEpICogaSArIGogKiBhZGp1c3RtZW50KSArICJweCI7CisgICAgICBlLnN0eWxlLmxlZnQg
PSAoKHcgKyAxKSAqIGogKyBpICogYWRqdXN0bWVudCkgKyAicHgiOworICAgICAgZS5zdHlsZS53
aWR0aCA9IHcgKyAicHgiOworICAgICAgZS5zdHlsZS5oZWlnaHQgPSBoICsgInB4IjsKKyAgICAg
IHcgKz0gMC4xOworICAgICAgaCArPSAwLjE7CisgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
ZSk7CisgICAgfQorICB9Cis8L3NjcmlwdD48L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaGlkcGkt
aW1hZ2UtcG9zaXRpb24tb24tZGV2aWNlLXBpeGVscy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaGlkcGktaW1hZ2UtcG9zaXRpb24tb24tZGV2aWNlLXBpeGVscy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxYmY2NzUzYzJhOWRmMzQ5NGNkOTkyZDBhNzU1ZTcwZmY2OGU5NmQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9oaWRwaS1pbWFnZS1wb3NpdGlvbi1vbi1k
ZXZpY2UtcGl4ZWxzLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHRpdGxlPlRoaXMgdGVzdHMgdGhhdCB3ZSBjYW4gcGFpbnQgaW1hZ2VzIG9u
IGRldmljZSBwaXhlbCBwb3NpdGlvbnMuPC90aXRsZT4KKzxzdHlsZT4KKyBpbWcgeworICBwb3Np
dGlvbjogYWJzb2x1dGU7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iY29u
dGFpbmVyIj48L3A+Cis8c2NyaXB0PgorICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnRhaW5lciIpOworICBhZGp1c3RtZW50ID0gMC4xOworICB3ID0gNTA7IGgg
PSA1MDsKKyAgZm9yIChpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICBhZGp1c3RtZW50ICs9IDAu
MTsKKyAgICBmb3IgKGogPSAwOyBqIDwgMTA7ICsraikgeworICAgICAgdmFyIGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbWciKTsKKyAgICAgIGUuc3JjID0gImRhdGE6aW1hZ2UvcG5nO2Jh
c2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBSUFBQUNRZDFQZUFBQUFERWxF
UVZSNDJtUDQlMkY1OEJBQVQlMkZBZjlqZ05FckFBQUFBRWxGVGtTdVFtQ0MiCisgICAgICBlLnN0
eWxlLnRvcCA9ICgodyArIDEpICogaSArIGogKiBhZGp1c3RtZW50KSArICJweCI7CisgICAgICBl
LnN0eWxlLmxlZnQgPSAoKHcgKyAxKSAqIGogKyBpICogYWRqdXN0bWVudCkgKyAicHgiOworICAg
ICAgZS5zdHlsZS53aWR0aCA9IHcgKyAicHgiOworICAgICAgZS5zdHlsZS5oZWlnaHQgPSBoICsg
InB4IjsKKyAgICAgIHcgKz0gMC4xOworICAgICAgaCArPSAwLjE7CisgICAgICBjb250YWluZXIu
YXBwZW5kQ2hpbGQoZSk7CisgICAgfQorICB9Cis8L3NjcmlwdD48L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227492</attachid>
            <date>2014-03-21 14:32:50 -0700</date>
            <delta_ts>2014-03-21 15:09:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130596-20140321143224.patch</filename>
            <type>text/plain</type>
            <size>22234</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTlmMjU1ZmIwNWZlZjEy
MDg4NjFjN2U2ZjhkNWU5ZWUyNmRhMjBmMS4uZTlmZjk4ZmZmYTExMzc3ZTlmNjMwODVjMzczZWFh
MDFjMTc4NWNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAzLTIxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIDxpbWc+IHBvc2l0aW9uaW5nIHN1YnBpeGVsIGF3YXJlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwNTk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIENoYW5nZSA8aW1nPiBwb3NpdGlvbmluZyBm
cm9tIGludGVncmFsIHRvIGRldmljZSBwaXhlbC4gSXQgZW5hYmxlcyB1cworICAgICAgICB0byBw
YWludCBoYWlybGluZSBib3JkZXJzIGFyb3VuZCA8aW1nPiBwcm9wZXJseS4KKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBicm9rZW4gaW1hZ2UgcmVwcmVzZW50YXRp
b24gZnJvbSBjb25zdGFudCAxIENTUyBweCBib3JkZXIKKyAgICAgICAgdG8gYSBkeW5hbWljIDEg
ZGV2aWNlIHB4LgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBvc2l0
aW9uLW9uLWRldmljZS1waXhlbHMuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OmRyYXdSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OmRyYXdSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0Nv
bnRleHRXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdS
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFn
ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllcjo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKwogMjAxNC0wMy0y
MSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXJnZSBW
VFRTY2FubmVyIENvZGUgZnJvbSBCbGluawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmODA3YWIx
ZTcwZWJmMTY0YzZjMmI5YjNmZDk4NTBjZjhiMDJiODRkLi4zMDViMWIyZTE2NmQxNDY1OTBjODIy
OTQwNWIyYzAzNGFmZDRhZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTEzLDcgKzUxMyw3
IEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OGZpbGxQYXRoRVJLTlNfNFBhdGhFCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDhmaWxsUmVjdEVSS05TXzlGbG9hdFJlY3RFCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDhmaWxsUmVjdEVSS05TXzlGbG9hdFJlY3RFUktO
U181Q29sb3JFTlNfMTBDb2xvclNwYWNlRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ5
Y2xlYXJSZWN0RVJLTlNfOUZsb2F0UmVjdEUKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0
OWRyYXdJbWFnZUVQTlNfNUltYWdlRU5TXzEwQ29sb3JTcGFjZUVSS05TXzhJbnRQb2ludEVOU18x
N0NvbXBvc2l0ZU9wZXJhdG9yRU5TXzI3SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uRQorX19a
TjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ5ZHJhd0ltYWdlRVBOU181SW1hZ2VFTlNfMTBDb2xv
clNwYWNlRVJLTlNfMTBGbG9hdFBvaW50RU5TXzE3Q29tcG9zaXRlT3BlcmF0b3JFTlNfMjdJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb25FCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDlz
ZXRTaGFkb3dFUktOU185RmxvYXRTaXplRWZSS05TXzVDb2xvckVOU18xMENvbG9yU3BhY2VFCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDl0cmFuc2xhdGVFZmYKIF9fWk43V2ViQ29yZTE1
R3JhcGhpY3NDb250ZXh0RDFFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggZjUyNGIzYTNiMDUwZDFhMTFkYmVkNjNl
YThjYWYwYTQ2NzYxMzBlZC4uYTA1NTU2M2Y0NjEzYjAwMDY4N2JjMjcxZjkxNGY1MmY4OTVjYzI3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuY3BwCkBAIC01NTUsMjMgKzU1NSwyMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0hpZ2hsaWdodEZvclRleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVu
LAogICAgIGZpbGxSZWN0KGZvbnQuc2VsZWN0aW9uUmVjdEZvclRleHQocnVuLCBwb2ludCwgaCwg
ZnJvbSwgdG8pLCBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yU3BhY2UpOwogfQogCi12b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIGNvbnN0IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBG
bG9hdFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uIGRlc2NyaXB0aW9uKQogewogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybjsK
LSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KEludFJlY3Qo
cCwgaW1hZ2UtPnNpemUoKSkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1h
Z2UtPnNpemUoKSkpLCBvcCwgZGVzY3JpcHRpb24pOworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5
bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QocCwgaW1hZ2UtPnNpemUoKSksIEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIGltYWdlLT5zaXplKCkpLCBvcCwgZGVzY3JpcHRpb24pOwogfQogCi12b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIHIsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxl
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIHIsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlKQogewogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBk
cmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KHIpLCBGbG9hdFJlY3Qo
RmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2UtPnNpemUoKSkpLCBvcCwgZGVzY3JpcHRpb24s
IHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3Bh
Y2UsIHIsIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGltYWdlLT5zaXplKCkpLCBvcCwgZGVzY3Jp
cHRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
SW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIGNvbnN0IEZsb2F0UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENv
bXBvc2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRp
b24pCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChJ
bnRSZWN0KGRlc3QsIHNyY1JlY3Quc2l6ZSgpKSksIEZsb2F0UmVjdChzcmNSZWN0KSwgb3AsIGRl
c2NyaXB0aW9uKTsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRS
ZWN0KGRlc3QsIHNyY1JlY3Quc2l6ZSgpKSwgRmxvYXRSZWN0KHNyY1JlY3QpLCBvcCwgZGVzY3Jp
cHRpb24pOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFn
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQpAQCAtNTc5
LDEzICs1NzksNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFn
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0CiAgICAgZHJhd0ltYWdlKGltYWdl
LCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIEJsZW5kTW9kZU5vcm1hbCwgZGVzY3Jp
cHRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0KQotewotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybjsKLSAg
ICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdCwgRmxvYXRSZWN0KEludFJl
Y3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNpemUoKSkpKTsKLX0KLQogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsgICAgaWYgKHBhaW50aW5n
RGlzYWJsZWQoKSB8fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggNzUyNGQyMDU1
Y2NjNDA5MjkyNzJlODdmMGQ3NmM3ZGRjYWZiZjdjYi4uYWU3NmIxMDkxOWQ2N2Y2ZmE1MjUwZTc2
YWUwNzVmM2ZjZWMwNDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTI3MSw3ICsyNzEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIC8vIEZJWE1FOiAuLi5leGNlcHQgZHJhd1JlY3QoKSwgd2hpY2ggZmls
bHMgcHJvcGVybHkgYnV0IGFsd2F5cyBzdHJva2VzCiAgICAgICAgIC8vIHVzaW5nIGEgMS1waXhl
bCBzdHJva2UgaW5zZXQgZnJvbSB0aGUgcmVjdCBib3JkZXJzIChvZiB0aGUgY29ycmVjdAogICAg
ICAgICAvLyBzdHJva2UgY29sb3IpLgotICAgICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0
UmVjdCYpOworICAgICAgICB2b2lkIGRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGJv
cmRlclRoaWNrbmVzcyA9IDEpOwogICAgICAgICB2b2lkIGRyYXdMaW5lKGNvbnN0IEZsb2F0UG9p
bnQmLCBjb25zdCBGbG9hdFBvaW50Jik7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zMDIsMTAg
KzMwMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHN0cm9rZVJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAotICAgICAgICB2b2lkIGRyYXdJ
bWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYs
IENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwotICAgICAgICB2
b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgYm9v
bCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlKElt
YWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9p
bnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRl
U291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uKCkpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KTsKKyAgICAgICAg
dm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
RmxvYXRQb2ludCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkp
OworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBjb25zdCBGbG9hdFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJj
ZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbigpLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAgICAgdm9p
ZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxv
YXRQb2ludCYgZGVzdFBvaW50LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVy
YXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2Uo
SW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBv
c2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKICAg
ICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJ
bWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBm
YWxzZSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGQ0Mzk3
ZTE2YzQyZDM3Y2JmNDE2NzRmMTllMGUzNTg3MzdlYzgwMzAuLjMwMGFkOTY3Zjg5NTZlMzhhMTJj
OGE2ODEwM2NmZThmN2ViNDNlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAg
LTIzMCw3ICsyMzAsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cmVzdG9yZVBsYXRmb3JtU3Rh
dGUoKQogfQogCiAvLyBEcmF3cyBhIGZpbGxlZCByZWN0YW5nbGUgd2l0aCBhIHN0cm9rZWQgYm9y
ZGVyLgotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3Qs
IGZsb2F0KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcAppbmRleCA0YzcyZDg0Yzg3M2JjOTBmOWI3MzY3ZGY1MGFiZDIxYWMw
ZjJkNjA5Li42ODRjMTA2OWIxZDE0YWIwOTJmNDk5ZTg5ZjFlYjVmZDAwOWVlOTBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRD
Ry5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwCkBAIC0yODAsNyArMjgwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdOYXRpdmVJbWFnZShQYXNzTmF0aXZlSW1hZ2VQdHIgaW1hZ2VQdHIsIGNvbnN0IEZsb2F0U2kK
IH0KIAogLy8gRHJhd3MgYSBmaWxsZWQgcmVjdGFuZ2xlIHdpdGggYSBzdHJva2VkIGJvcmRlci4K
LXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9h
dCBib3JkZXJUaGlja25lc3MpCiB7CiAgICAgLy8gRklYTUU6IHRoaXMgZnVuY3Rpb24gZG9lcyBu
b3QgaGFuZGxlIHBhdHRlcm5zIGFuZCBncmFkaWVudHMKICAgICAvLyBsaWtlIGRyYXdQYXRoIGRv
ZXMsIGl0IHByb2JhYmx5IHNob3VsZC4KQEAgLTI5OSwxMCArMjk5LDEwIEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgICAgIGlmIChv
bGRGaWxsQ29sb3IgIT0gc3Ryb2tlQ29sb3IoKSkKICAgICAgICAgICAgIHNldENHRmlsbENvbG9y
KGNvbnRleHQsIHN0cm9rZUNvbG9yKCksIHN0cm9rZUNvbG9yU3BhY2UoKSk7CiAgICAgICAgIENH
UmVjdCByZWN0c1s0XSA9IHsKLSAgICAgICAgICAgIEZsb2F0UmVjdChyZWN0LngoKSwgcmVjdC55
KCksIHJlY3Qud2lkdGgoKSwgMSksCi0gICAgICAgICAgICBGbG9hdFJlY3QocmVjdC54KCksIHJl
Y3QubWF4WSgpIC0gMSwgcmVjdC53aWR0aCgpLCAxKSwKLSAgICAgICAgICAgIEZsb2F0UmVjdChy
ZWN0LngoKSwgcmVjdC55KCkgKyAxLCAxLCByZWN0LmhlaWdodCgpIC0gMiksCi0gICAgICAgICAg
ICBGbG9hdFJlY3QocmVjdC5tYXhYKCkgLSAxLCByZWN0LnkoKSArIDEsIDEsIHJlY3QuaGVpZ2h0
KCkgLSAyKQorICAgICAgICAgICAgRmxvYXRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53
aWR0aCgpLCBib3JkZXJUaGlja25lc3MpLAorICAgICAgICAgICAgRmxvYXRSZWN0KHJlY3QueCgp
LCByZWN0Lm1heFkoKSAtIGJvcmRlclRoaWNrbmVzcywgcmVjdC53aWR0aCgpLCBib3JkZXJUaGlj
a25lc3MpLAorICAgICAgICAgICAgRmxvYXRSZWN0KHJlY3QueCgpLCByZWN0LnkoKSArIGJvcmRl
clRoaWNrbmVzcywgYm9yZGVyVGhpY2tuZXNzLCByZWN0LmhlaWdodCgpIC0gMiAqIGJvcmRlclRo
aWNrbmVzcyksCisgICAgICAgICAgICBGbG9hdFJlY3QocmVjdC5tYXhYKCkgLSBib3JkZXJUaGlj
a25lc3MsIHJlY3QueSgpICsgYm9yZGVyVGhpY2tuZXNzLCBib3JkZXJUaGlja25lc3MsIHJlY3Qu
aGVpZ2h0KCkgLSAyICogYm9yZGVyVGhpY2tuZXNzKQogICAgICAgICB9OwogICAgICAgICBDR0Nv
bnRleHRGaWxsUmVjdHMoY29udGV4dCwgcmVjdHMsIDQpOwogICAgICAgICBpZiAob2xkRmlsbENv
bG9yICE9IHN0cm9rZUNvbG9yKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5DRS5jcHAKaW5kZXgg
MjFkODk5ZDU4MGQwYjkwNzY4OWExOTRjZWNmYzc1MDRmM2QzYTgzNi4uMDI2OWYwMDU1OTQ3MzQy
YjM0MmRhZDY0NzJmNDhkMDcxM2NjOGI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNw
cApAQCAtNjI1LDcgKzYyNSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpyZXN0b3JlUGxhdGZv
cm1TdGF0ZSgpCiAgICAgbV9kYXRhLT5yZXN0b3JlKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCkKIHsKICAgICBpZiAoIW1f
ZGF0YS0+bV9vcGFjaXR5IHx8IHBhaW50aW5nRGlzYWJsZWQoKSB8fCByZWN0LmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
aW5kZXggNjIxNDc2MzIwYWM1NDgwMTc5YmE5MWNkZTAxZTM1MjBiOTRjYmM0ZS4uYzE4NjY4ZGY4
YTM5ZDdmMjExODI0M2VlN2RiNWQ0MThiMTU3N2VmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0zOTAsNiArMzkwLDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6
cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2YKICAgICBMYXlvdXRVbml0IHRvcFBhZCA9IHBhZGRpbmdUb3AoKTsKIAogICAgIEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0OworICAgIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yID0gZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpOwogCiAgICAgUGFn
ZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogCkBAIC00MDEsMTMgKzQwMiwxMyBAQCB2b2lkIFJl
bmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZgogICAgICAgICAgICAgcGFnZS0+YWRkUmVsZXZhbnRVbnBhaW50ZWRP
YmplY3QodGhpcywgdmlzdWFsT3ZlcmZsb3dSZWN0KCkpOwogCiAgICAgICAgIGlmIChjV2lkdGgg
PiAyICYmIGNIZWlnaHQgPiAyKSB7Ci0gICAgICAgICAgICBjb25zdCBpbnQgYm9yZGVyV2lkdGgg
PSAxOworICAgICAgICAgICAgTGF5b3V0VW5pdCBib3JkZXJXaWR0aCA9IExheW91dFVuaXQoMSAv
IGRldmljZVNjYWxlRmFjdG9yKTsKIAogICAgICAgICAgICAgLy8gRHJhdyBhbiBvdXRsaW5lIHJl
Y3Qgd2hlcmUgdGhlIGltYWdlIHNob3VsZCBiZS4KICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0
cm9rZVN0eWxlKFNvbGlkU3Ryb2tlKTsKICAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNv
bG9yKENvbG9yOjpsaWdodEdyYXksIHN0eWxlKCkuY29sb3JTcGFjZSgpKTsKICAgICAgICAgICAg
IGNvbnRleHQtPnNldEZpbGxDb2xvcihDb2xvcjo6dHJhbnNwYXJlbnQsIHN0eWxlKCkuY29sb3JT
cGFjZSgpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPmRyYXdSZWN0KHBpeGVsU25hcHBlZEludFJl
Y3QoTGF5b3V0UmVjdChwYWludE9mZnNldC54KCkgKyBsZWZ0Qm9yZGVyICsgbGVmdFBhZCwgcGFp
bnRPZmZzZXQueSgpICsgdG9wQm9yZGVyICsgdG9wUGFkLCBjV2lkdGgsIGNIZWlnaHQpKSk7Cisg
ICAgICAgICAgICBjb250ZXh0LT5kcmF3UmVjdChwaXhlbFNuYXBwZWRGb3JQYWludGluZyhMYXlv
dXRSZWN0KHBhaW50T2Zmc2V0LngoKSArIGxlZnRCb3JkZXIgKyBsZWZ0UGFkLCBwYWludE9mZnNl
dC55KCkgKyB0b3BCb3JkZXIgKyB0b3BQYWQsIGNXaWR0aCwgY0hlaWdodCksIGRldmljZVNjYWxl
RmFjdG9yKSwgYm9yZGVyV2lkdGgpOwogCiAgICAgICAgICAgICBib29sIGVycm9yUGljdHVyZURy
YXduID0gZmFsc2U7CiAgICAgICAgICAgICBMYXlvdXRTaXplIGltYWdlT2Zmc2V0OwpAQCAtNDM3
LDcgKzQzOCw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAjaWYgRU5BQkxFKENTU19JTUFH
RV9PUklFTlRBVElPTikKICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbkRlc2NyaXB0aW9uLnNl
dEltYWdlT3JpZW50YXRpb25FbnVtKHN0eWxlKCkuaW1hZ2VPcmllbnRhdGlvbigpKTsKICNlbmRp
ZgotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUo
KS5jb2xvclNwYWNlKCksIHBpeGVsU25hcHBlZEludFJlY3QoTGF5b3V0UmVjdChwYWludE9mZnNl
dCArIGltYWdlT2Zmc2V0LCBpbWFnZVNpemUpKSwgQ29tcG9zaXRlU291cmNlT3Zlciwgb3JpZW50
YXRpb25EZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGlt
YWdlLmdldCgpLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSwgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmco
TGF5b3V0UmVjdChwYWludE9mZnNldCArIGltYWdlT2Zmc2V0LCBpbWFnZVNpemUpLCBkZXZpY2VT
Y2FsZUZhY3RvciksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIG9yaWVudGF0aW9uRGVzY3JpcHRpb24p
OwogICAgICAgICAgICAgICAgIGVycm9yUGljdHVyZURyYXduID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KIApAQCAtNDc4LDcgKzQ3OSw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgICAg
IGlmIChjbGlwKQogICAgICAgICAgICAgY29udGV4dC0+Y2xpcChjb250ZW50UmVjdCk7CiAKLSAg
ICAgICAgcGFpbnRJbnRvUmVjdChjb250ZXh0LCBwYWludFJlY3QpOworICAgICAgICBwYWludElu
dG9SZWN0KGNvbnRleHQsIHBpeGVsU25hcHBlZEZvclBhaW50aW5nKHBhaW50UmVjdCwgZGV2aWNl
U2NhbGVGYWN0b3IpKTsKICAgICAgICAgCiAgICAgICAgIGlmIChjYWNoZWRJbWFnZSgpICYmIHBh
Z2UgJiYgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7CiAgICAgICAg
ICAgICAvLyBGb3Igbm93LCBjb3VudCBpbWFnZXMgYXMgdW5wYWludGVkIGlmIHRoZXkgYXJlIHN0
aWxsIHByb2dyZXNzaXZlbHkgbG9hZGluZy4gV2UgbWF5IHdhbnQgCkBAIC01NDksMjUgKzU1MCwy
NCBAQCB2b2lkIFJlbmRlckltYWdlOjphcmVhRWxlbWVudEZvY3VzQ2hhbmdlZChIVE1MQXJlYUVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgcmVwYWludCgpOwogfQogCi12b2lkIFJlbmRlckltYWdlOjpw
YWludEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYg
cmVjdCkKK3ZvaWQgUmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgSW50UmVjdCBhbGlnbmVkUmVj
dCA9IHBpeGVsU25hcHBlZEludFJlY3QocmVjdCk7Ci0gICAgaWYgKCFpbWFnZVJlc291cmNlKCku
aGFzSW1hZ2UoKSB8fCBpbWFnZVJlc291cmNlKCkuZXJyb3JPY2N1cnJlZCgpIHx8IGFsaWduZWRS
ZWN0LndpZHRoKCkgPD0gMCB8fCBhbGlnbmVkUmVjdC5oZWlnaHQoKSA8PSAwKQorICAgIGlmICgh
aW1hZ2VSZXNvdXJjZSgpLmhhc0ltYWdlKCkgfHwgaW1hZ2VSZXNvdXJjZSgpLmVycm9yT2NjdXJy
ZWQoKSB8fCByZWN0LndpZHRoKCkgPD0gMCB8fCByZWN0LmhlaWdodCgpIDw9IDApCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJlZlB0cjxJbWFnZT4gaW1nID0gaW1hZ2VSZXNvdXJjZSgpLmltYWdl
KGFsaWduZWRSZWN0LndpZHRoKCksIGFsaWduZWRSZWN0LmhlaWdodCgpKTsKKyAgICBSZWZQdHI8
SW1hZ2U+IGltZyA9IGltYWdlUmVzb3VyY2UoKS5pbWFnZShyZWN0LndpZHRoKCksIHJlY3QuaGVp
Z2h0KCkpOwogICAgIGlmICghaW1nIHx8IGltZy0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWx0ID0gKGVsZW1lbnQoKSAmJiBpc0hUTUxJ
bWFnZUVsZW1lbnQoZWxlbWVudCgpKSkgPyB0b0hUTUxJbWFnZUVsZW1lbnQoZWxlbWVudCgpKSA6
IDA7CiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBpbWFnZUVsdCA/
IGltYWdlRWx0LT5jb21wb3NpdGVPcGVyYXRvcigpIDogQ29tcG9zaXRlU291cmNlT3ZlcjsKICAg
ICBJbWFnZSogaW1hZ2UgPSBpbWFnZVJlc291cmNlKCkuaW1hZ2UoKS5nZXQoKTsKLSAgICBib29s
IHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwg
aW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOworICAgIGJvb2wgdXNlTG93UXVhbGl0
eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0LCBpbWFnZSwgaW1hZ2Us
IExheW91dFNpemUocmVjdC5zaXplKCkpKTsKICAgICBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24gb3JpZW50YXRpb25EZXNjcmlwdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigp
KTsKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAgIG9yaWVudGF0aW9uRGVz
Y3JpcHRpb24uc2V0SW1hZ2VPcmllbnRhdGlvbkVudW0oc3R5bGUoKS5pbWFnZU9yaWVudGF0aW9u
KCkpOwogI2VuZGlmCi0gICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlUmVzb3VyY2UoKS5pbWFn
ZShhbGlnbmVkUmVjdC53aWR0aCgpLCBhbGlnbmVkUmVjdC5oZWlnaHQoKSkuZ2V0KCksIHN0eWxl
KCkuY29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIG9yaWVudGF0
aW9uRGVzY3JpcHRpb24sIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKKyAgICBjb250ZXh0LT5kcmF3
SW1hZ2UoaW1hZ2VSZXNvdXJjZSgpLmltYWdlKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSku
Z2V0KCksIHN0eWxlKCkuY29sb3JTcGFjZSgpLCByZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgb3Jp
ZW50YXRpb25EZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwogfQogCiBib29sIFJl
bmRlckltYWdlOjpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoQmFja2dyb3Vu
ZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKaW5kZXggZTJkZTRmNmQ2ZGZlZTcyYTYy
NzIwMDIzMjc0NzBiYjcyYjEyMjM0Ni4uYTI4YjgxOTVhMWNlZTA5ZjJmMmFiYTkzODEyMTljODk5
NzcwYTc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTc2LDcg
Kzc2LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFw
cGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHBh
aW50SW50b1JlY3QoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYpOworICAgIHZv
aWQgcGFpbnRJbnRvUmVjdChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVy
cmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGM1MDk5ZDk2ZTFhODBiZTQ3
NGYwNTFiZmE4ZjNhMTc0YjNiNTkxMjcuLjYwMGVjZGEwMTQwZjk5N2Q1YTIwMjkzMTNiNmI2YTJi
MDY0OTcyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAt
MzQ4MiwxMiArMzQ4MiwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpkcmF3UGxhdGZvcm1SZXNpemVy
SW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdQogICAgICAgICBjb250
ZXh0LT5zYXZlKCk7CiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZShyZXNpemVyQ29ybmVyUmVj
dC54KCkgKyBjb3JuZXJSZXNpemVyU2l6ZS53aWR0aCgpLCByZXNpemVyQ29ybmVyUmVjdC55KCkg
KyByZXNpemVyQ29ybmVyUmVjdC5oZWlnaHQoKSAtIGNvcm5lclJlc2l6ZXJTaXplLmhlaWdodCgp
KTsKICAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKC0xLjAsIDEuMCkpOwotICAgICAg
ICBjb250ZXh0LT5kcmF3SW1hZ2UocmVzaXplQ29ybmVySW1hZ2UuZ2V0KCksIHJlbmRlcmVyKCku
c3R5bGUoKS5jb2xvclNwYWNlKCksIEludFJlY3QoSW50UG9pbnQoKSwgY29ybmVyUmVzaXplclNp
emUpKTsKKyAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKHJlc2l6ZUNvcm5lckltYWdlLmdldCgp
LCByZW5kZXJlcigpLnN0eWxlKCkuY29sb3JTcGFjZSgpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgp
LCBjb3JuZXJSZXNpemVyU2l6ZSkpOwogICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgTGF5b3V0UmVjdCBpbWFnZVJlY3QocmVzaXplckNvcm5l
clJlY3QubWF4WE1heFlDb3JuZXIoKSAtIGNvcm5lclJlc2l6ZXJTaXplLCBjb3JuZXJSZXNpemVy
U2l6ZSk7Ci0gICAgY29udGV4dC0+ZHJhd0ltYWdlKHJlc2l6ZUNvcm5lckltYWdlLmdldCgpLCBy
ZW5kZXJlcigpLnN0eWxlKCkuY29sb3JTcGFjZSgpLCBwaXhlbFNuYXBwZWRJbnRSZWN0KGltYWdl
UmVjdCkpOworICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QgPSBwaXhlbFNuYXBwZWRGb3JQYWludGlu
ZyhMYXlvdXRSZWN0KHJlc2l6ZXJDb3JuZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCkgLSBjb3JuZXJS
ZXNpemVyU2l6ZSwgY29ybmVyUmVzaXplclNpemUpLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZGV2
aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKHJlc2l6ZUNvcm5lcklt
YWdlLmdldCgpLCByZW5kZXJlcigpLnN0eWxlKCkuY29sb3JTcGFjZSgpLCBpbWFnZVJlY3QpOwog
fQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IExheW91dFJlY3QmIGRh
bWFnZVJlY3QpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMWYwODQ4MTcxMmU0YjQ5YWY3NTlhN2UzNWRlNmM4NThkYjBjMGZi
Ni4uMjQxMGFmMjFkNWEwMzg3ZjY0MmNkMDVjYWQ1YmM0MDJjOGQ2M2U2NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDE0LTAzLTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBNYWtlIDxpbWc+IHBvc2l0aW9uaW5nIHN1YnBp
eGVsIGF3YXJlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMwNTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAg
IENoYW5nZSA8aW1nPiBwb3NpdGlvbmluZyBmcm9tIGludGVncmFsIHRvIGRldmljZSBwaXhlbC4g
SXQgZW5hYmxlcyB1cworICAgICAgICB0byBwYWludCBoYWlybGluZSBib3JkZXJzIGFyb3VuZCA8
aW1nPiBwcm9wZXJseS4KKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBv
ZiBicm9rZW4gaW1hZ2UgcmVwcmVzZW50YXRpb24gZnJvbSBjb25zdGFudCAxIENTUyBweCBib3Jk
ZXIKKyAgICAgICAgdG8gYSBkeW5hbWljIDEgZGV2aWNlIHB4LgorCisgICAgICAgICogZmFzdC9p
bWFnZXMvaGlkcGktaW1hZ2UtcG9zaXRpb24tb24tZGV2aWNlLXBpeGVscy1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9oaWRwaS1pbWFnZS1wb3NpdGlvbi1vbi1k
ZXZpY2UtcGl4ZWxzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTAzLTIxICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBmaXggYWZ0ZXIg
cjE2NjA4MC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2hpZHBpLWltYWdl
LXBvc2l0aW9uLW9uLWRldmljZS1waXhlbHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBvc2l0aW9uLW9uLWRldmljZS1waXhlbHMtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zYzQwMzliZDRmZGE5ZjQzMDI1NGFjNjM0MzE5YzU3ZTdiMzJlZWI5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaGlkcGktaW1hZ2Ut
cG9zaXRpb24tb24tZGV2aWNlLXBpeGVscy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzIgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5UaGlzIHRlc3RzIHRoYXQg
d2UgY2FuIHBhaW50IGltYWdlcyBvbiBkZXZpY2UgcGl4ZWwgcG9zaXRpb25zLjwvdGl0bGU+Cis8
c3R5bGU+CisgZGl2IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBiYWNrZ3JvdW5kOiB5ZWxs
b3c7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iY29udGFpbmVyIj48L3A+
Cis8c2NyaXB0PgorICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnRhaW5lciIpOworICBhZGp1c3RtZW50ID0gMC4xOworICB3ID0gNTA7IGggPSA1MDsKKyAgZm9y
IChpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICBhZGp1c3RtZW50ICs9IDAuMTsKKyAgICBmb3Ig
KGogPSAwOyBqIDwgMTA7ICsraikgeworICAgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICAgIGUuc3R5bGUudG9wID0gKCh3ICsgMSkgKiBpICsgaiAqIGFkanVz
dG1lbnQpICsgInB4IjsKKyAgICAgIGUuc3R5bGUubGVmdCA9ICgodyArIDEpICogaiArIGkgKiBh
ZGp1c3RtZW50KSArICJweCI7CisgICAgICBlLnN0eWxlLndpZHRoID0gdyArICJweCI7CisgICAg
ICBlLnN0eWxlLmhlaWdodCA9IGggKyAicHgiOworICAgICAgdyArPSAwLjE7CisgICAgICBoICs9
IDAuMTsKKyAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlKTsKKyAgICB9CisgIH0KKzwvc2Ny
aXB0PjwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9oaWRwaS1pbWFnZS1wb3NpdGlvbi1vbi1kZXZp
Y2UtcGl4ZWxzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9oaWRwaS1pbWFnZS1wb3Np
dGlvbi1vbi1kZXZpY2UtcGl4ZWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFiZjY3NTNjMmE5ZGYzNDk0
Y2Q5OTJkMGE3NTVlNzBmZjY4ZTk2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2hpZHBpLWltYWdlLXBvc2l0aW9uLW9uLWRldmljZS1waXhlbHMuaHRtbApAQCAt
MCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhp
cyB0ZXN0cyB0aGF0IHdlIGNhbiBwYWludCBpbWFnZXMgb24gZGV2aWNlIHBpeGVsIHBvc2l0aW9u
cy48L3RpdGxlPgorPHN0eWxlPgorIGltZyB7CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJjb250YWluZXIiPjwvcD4KKzxzY3JpcHQ+
CisgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7
CisgIGFkanVzdG1lbnQgPSAwLjE7CisgIHcgPSA1MDsgaCA9IDUwOworICBmb3IgKGkgPSAwOyBp
IDwgMTA7ICsraSkgeworICAgIGFkanVzdG1lbnQgKz0gMC4xOworICAgIGZvciAoaiA9IDA7IGog
PCAxMDsgKytqKSB7CisgICAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIp
OworICAgICAgZS5zcmMgPSAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T
VWhFVWdBQUFBRUFBQUFCQ0FJQUFBQ1FkMVBlQUFBQURFbEVRVlI0Mm1QNCUyRjU4QkFBVCUyRkFm
OWpnTkVyQUFBQUFFbEZUa1N1UW1DQyIKKyAgICAgIGUuc3R5bGUudG9wID0gKCh3ICsgMSkgKiBp
ICsgaiAqIGFkanVzdG1lbnQpICsgInB4IjsKKyAgICAgIGUuc3R5bGUubGVmdCA9ICgodyArIDEp
ICogaiArIGkgKiBhZGp1c3RtZW50KSArICJweCI7CisgICAgICBlLnN0eWxlLndpZHRoID0gdyAr
ICJweCI7CisgICAgICBlLnN0eWxlLmhlaWdodCA9IGggKyAicHgiOworICAgICAgdyArPSAwLjE7
CisgICAgICBoICs9IDAuMTsKKyAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlKTsKKyAgICB9
CisgIH0KKzwvc2NyaXB0PjwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>