<?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>112467</bug_id>
          
          <creation_ts>2013-03-15 14:51:37 -0700</creation_ts>
          <short_desc>[BlackBerry] BlackBerry::Platform::Graphics::GraphicsContext integration related changes in Source/WebKit/blackberry</short_desc>
          <delta_ts>2013-03-15 17:38:35 -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>WebKit BlackBerry</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="Arvid Nilsson">anilsson</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>anilsson</cc>
    
    <cc>jpetsovits</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>856300</commentid>
    <comment_count>0</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-03-15 14:51:37 -0700</bug_when>
    <thetext>The WebKit/blackberry equivalent of bug #111072.

PR 293208</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856338</commentid>
    <comment_count>1</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-03-15 15:22:21 -0700</bug_when>
    <thetext>Author list:

Mike Lattanzio
Arvid Nilsson
Jakob Petsovits
Konrad Piascik
Jeff Rogers
Filip Spacek
George Staikos
Iris Wu</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856363</commentid>
    <comment_count>2</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-03-15 15:57:17 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Author list:
&gt; 
&gt; Mike Lattanzio
&gt; Arvid Nilsson
&gt; Jakob Petsovits
&gt; Konrad Piascik
&gt; Jeff Rogers
&gt; Filip Spacek
&gt; George Staikos
&gt; Iris Wu

Iris&apos;s contributions were already upstreamed as part of bug# 111335</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856380</commentid>
    <comment_count>3</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-03-15 16:11:59 -0700</bug_when>
    <thetext>And George&apos;s contributions were related to BB::P::String and already upstreamed separately, bug #99248</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856389</commentid>
    <comment_count>4</comment_count>
      <attachid>193396</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2013-03-15 16:23:39 -0700</bug_when>
    <thetext>Created attachment 193396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856397</commentid>
    <comment_count>5</comment_count>
      <attachid>193396</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2013-03-15 16:37:30 -0700</bug_when>
    <thetext>Comment on attachment 193396
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856435</commentid>
    <comment_count>6</comment_count>
      <attachid>193396</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 17:38:32 -0700</bug_when>
    <thetext>Comment on attachment 193396
Patch

Clearing flags on attachment: 193396

Committed r145968: &lt;http://trac.webkit.org/changeset/145968&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856436</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 17:38:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193396</attachid>
            <date>2013-03-15 16:23:39 -0700</date>
            <delta_ts>2013-03-15 17:38:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112467-20130316001934.patch</filename>
            <type>text/plain</type>
            <size>46767</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA4MzM2OWM1NWJkOGIxZWVhNWFiNjhjNWQ1NmZlODc2YmFkMDVjMjZhLi5iZGY0OGE1MzAx
ZjA0ZWU3NjBlMzllYzkwZTI2Yjg0YWQxZDgwMzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsNSArMSw4NiBAQAogMjAxMy0wMy0xNSAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxz
c29uQHJpbS5jb20+CiAKKyAgICAgICAgW0JsYWNrQmVycnldIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpHcmFwaGljczo6R3JhcGhpY3NDb250ZXh0IGludGVncmF0aW9uIHJlbGF0ZWQgY2hhbmdlcyBp
biBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMjQ2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFBSIDI5MzIwOAorCisgICAgICAgIFRoaXMgcGF0Y2ggY29udGFp
bnMgY29udHJpYnV0aW9ucyBmcm9tIG1hbnkgbWVtYmVycyBvZiB0aGUgQmxhY2tCZXJyeQorICAg
ICAgICBXZWJLaXQgdGVhbToKKworICAgICAgICBNaWtlIExhdHRhbnppbworICAgICAgICBBcnZp
ZCBOaWxzc29uCisgICAgICAgIEpha29iIFBldHNvdml0cworICAgICAgICBLb25yYWQgUGlhc2Np
aworICAgICAgICBKZWZmIFJvZ2VycworICAgICAgICBGaWxpcCBTcGFjZWsKKworICAgICAgICAq
IEFwaS9CYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNr
aW5nU3RvcmVQcml2YXRlOjpyZW5kZXIpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpC
YWNraW5nU3RvcmVQcml2YXRlOjpibGl0VmlzaWJsZUNvbnRlbnRzKToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6QmFja2luZ1N0b3JlUHJpdmF0ZTo6Y29tcG9zaXRlQ29udGVudHMpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVQcml2YXRlOjp0aWxlU2l6
ZSk6CisgICAgICAgICogQXBpL1dlYk92ZXJsYXkuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJPdmVybGF5UHJpdmF0ZTo6ZHJhd0NvbnRlbnRzKToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6V2ViT3ZlcmxheVByaXZhdGVXZWJLaXRUaHJlYWQ6OnBhaW50Q29udGVu
dHMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5TGF5ZXJDb21wb3Np
dGluZ1RocmVhZENsaWVudDo6V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGlu
Z1RocmVhZENsaWVudDo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OmNsZWFyVXBs
b2FkZWRDb250ZW50cyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJsYXlM
YXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpzZXRDb250ZW50c1RvQ29sb3IpOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENs
aWVudDo6dXBsb2FkVGV4dHVyZXNJZk5lZWRlZCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpkcmF3VGV4dHVyZXMp
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0
aW5nVGhyZWFkOjpXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6V2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZDo6
cmVtb3ZlRnJvbVBhcmVudCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYk92ZXJs
YXlQcml2YXRlQ29tcG9zaXRpbmdUaHJlYWQ6OnNldENvbnRlbnRzVG9JbWFnZSk6CisgICAgICAg
ICogQXBpL1dlYk92ZXJsYXkuaDoKKyAgICAgICAgKiBBcGkvV2ViT3ZlcmxheUNsaWVudC5oOgor
ICAgICAgICAqIEFwaS9XZWJPdmVybGF5X3AuaDoKKyAgICAgICAgKFdlYk92ZXJsYXlQcml2YXRl
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViT3ZlcmxheVByaXZhdGVXZWJLaXRU
aHJlYWQ6OnNob3dEZWJ1Z0JvcmRlcnMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpX
ZWJPdmVybGF5UHJpdmF0ZVdlYktpdFRocmVhZDo6c2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50KToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6
OmltYWdlKToKKyAgICAgICAgKFdlYk92ZXJsYXlQcml2YXRlQ29tcG9zaXRpbmdUaHJlYWQpOgor
ICAgICAgICAqIEFwaS9XZWJQYWdlQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlBhZ2VDb21wb3NpdG9yUHJpdmF0ZTo6V2ViUGFnZUNvbXBvc2l0b3JQcml2
YXRlKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZVRpbGUuY3BwOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpUaWxlQnVmZmVyOjp+VGlsZUJ1ZmZlcik6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlRpbGVCdWZmZXI6Om5hdGl2ZUJ1ZmZlcik6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlRpbGVCdWZmZXI6OnBhaW50QmFja2dyb3VuZCk6Cisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcDoKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6RGVmYXVsdFRhcEhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkRlZmF1bHRUYXBIaWdobGlnaHQ6OnNob3dE
ZWJ1Z0JvcmRlcnMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6RGVmYXVsdFRhcEhpZ2hsaWdodDo6c2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAg
KiBXZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuaDoKKyAgICAgICAgKERlZmF1bHRU
YXBIaWdobGlnaHQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJs
YWNrQmVycnkuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnNwZWN0b3JPdmVy
bGF5OjpzaG93RGVidWdCb3JkZXJzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJsYXk6OnNob3dSZXBhaW50Q291bnRlcik6Cisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5oOgorICAg
ICAgICAoSW5zcGVjdG9yT3ZlcmxheSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TZWxlY3Rp
b25PdmVybGF5LmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9uT3Zl
cmxheTo6ZHJhdyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlNlbGVjdGlvbk92ZXJs
YXk6OmhpZGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5
OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6U2VsZWN0aW9u
T3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpTZWxlY3Rpb25PdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIp
OgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oOgorICAgICAgICAo
U2VsZWN0aW9uT3ZlcmxheSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9TdXJmYWNlUG9vbC5j
cHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlN1cmZhY2VQb29sOjpjcmVhdGVQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlN1cmZh
Y2VQb29sOjpkZXN0cm95UGxhdGZvcm1HcmFwaGljc0NvbnRleHQpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpTdXJmYWNlUG9vbDo6d2FpdEZvckJ1ZmZlcik6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OlN1cmZhY2VQb29sOjpub3RpZnlCdWZmZXJzQ29tcG9zaXRlZCk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OlN1cmZhY2VQb29sOjpkZXN0cm95UGxhdGZvcm1T
eW5jKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmg6CisKKzIwMTMtMDMt
MTUgIEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgorCiAgICAgICAgIFtCbGFja0Jl
cnJ5XSBBbGxvdyBhbiBlbWJlZGRlciB0byBwb3NpdGlvbiBjaGlsZCB3aW5kb3dzIHVzaW5nIHdp
bmRvdyBjb29yZGluYXRlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyMjM2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFja2lu
Z1N0b3JlLmNwcAppbmRleCBhODE4MDk1Zjc1ZmE4NGZlNWUzZjkyZGU5YmQ4Yzk5YTM4ZGIwNjk0
Li5jMDMzYzBlODEzZjI2OWZkNjVkZWQxOTdlN2EyNTA0YTVkNDNlNmM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuY3BwCkBAIC00OSw4ICs0OSw2IEBA
CiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtVmlld3BvcnRBY2Nlc3Nvci5oPgogI2luY2x1
ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybVdpbmRvdy5oPgogCi0jaW5jbHVkZSA8U2tJbWFnZURlY29k
ZXIuaD4KLQogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL05vdEZvdW5kLmg+CkBAIC0xMDY0LDEyICsxMDYyLDcg
QEAgVGlsZUluZGV4TGlzdCBCYWNraW5nU3RvcmVQcml2YXRlOjpyZW5kZXIoY29uc3QgVGlsZUlu
ZGV4TGlzdCYgdGlsZUluZGV4TGlzdCkKICAgICAgICAgVGlsZUJ1ZmZlciogYmFja0J1ZmZlciA9
IFN1cmZhY2VQb29sOjpnbG9iYWxTdXJmYWNlUG9vbCgpLT50YWtlQmFja0J1ZmZlcigpOwogICAg
ICAgICBBU1NFUlQoYmFja0J1ZmZlcik7CiAKLSAgICAgICAgLy8gSWYgdGhlIHRpbGUgaGFzIGJl
ZW4gY3JlYXRlZCwgYnV0IHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgd2UgYXJlIHBhaW50aW5nIG9u
IGl0Ci0gICAgICAgIC8vIHRoZW4gaXQgaGFzbid0IGJlZW4gZ2l2ZW4gYSBkZWZhdWx0IGJhY2tn
cm91bmQgeWV0IHNvIHRoYXQgd2UgY2FuIHNhdmUgdGltZSBkdXJpbmcKLSAgICAgICAgLy8gc3Rh
cnR1cC4gVGhhdCdzIHdoeSB3ZSBhcmUgZG9pbmcgaXQgaGVyZSBpbnN0ZWFkLi4uCi0gICAgICAg
IGlmICghYmFja0J1ZmZlci0+YmFja2dyb3VuZFBhaW50ZWQoKSkKLSAgICAgICAgICAgIGJhY2tC
dWZmZXItPnBhaW50QmFja2dyb3VuZCgpOwotCisgICAgICAgIGJhY2tCdWZmZXItPnBhaW50QmFj
a2dyb3VuZCgpOwogICAgICAgICBiYWNrQnVmZmVyLT5zZXRMYXN0UmVuZGVyU2NhbGUoY3VycmVu
dFNjYWxlKTsKICAgICAgICAgYmFja0J1ZmZlci0+c2V0TGFzdFJlbmRlck9yaWdpbih0aWxlT3Jp
Z2luKTsKICAgICAgICAgYmFja0J1ZmZlci0+Y2xlYXJSZW5kZXJlZFJlZ2lvbigpOwpAQCAtMTIy
Myw2ICsxMjE2LDE4IEBAIHZvaWQgQmFja2luZ1N0b3JlUHJpdmF0ZTo6YmxpdFZpc2libGVDb250
ZW50cyhib29sIGZvcmNlKQogICAgICAgICBkc3RSZWN0LnRvU3RyaW5nKCkuY19zdHIoKSwgZG9j
dW1lbnRTcmNSZWN0LnRvU3RyaW5nKCkuY19zdHIoKSwgdmlld3BvcnRBY2Nlc3Nvci0+c2NhbGUo
KSk7CiAjZW5kaWYKIAorICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6QnVmZmVy
KiBkc3RCdWZmZXIgPSBidWZmZXIoKTsKKyAgICBBU1NFUlQoZHN0QnVmZmVyKTsKKyAgICBpZiAo
ZHN0QnVmZmVyKSB7CisgICAgICAgIC8vIE9uIHRoZSBHUFUsIGNsZWFyaW5nIGlzIGZyZWUgYW5k
IGFsbG93cyBmb3Igb3B0aW1pemF0aW9ucywKKyAgICAgICAgLy8gc28gd2UgYWx3YXlzIHdhbnQg
dG8gZG8gdGhpcyBmaXJzdCBmb3IgdGhlIHdob2xlIHN1cmZhY2UuCisgICAgICAgIC8vIERvbid0
IGNhbGwgY2xlYXJXaW5kb3coKSBhcyB3ZSBkb24ndCB3YW50IHRvIGFkZCBpdCB0byB0aGUgcG9z
dGVkIHJlY3QuCisgICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6Y2xlYXJC
dWZmZXIoZHN0QnVmZmVyLAorICAgICAgICAgICAgbV93ZWJQYWdlQmFja2dyb3VuZENvbG9yLnJl
ZCgpLCBtX3dlYlBhZ2VCYWNrZ3JvdW5kQ29sb3IuZ3JlZW4oKSwKKyAgICAgICAgICAgIG1fd2Vi
UGFnZUJhY2tncm91bmRDb2xvci5ibHVlKCksIG1fd2ViUGFnZUJhY2tncm91bmRDb2xvci5hbHBo
YSgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgUGxhdGZvcm06OmxvZ0Fsd2F5cyhQbGF0Zm9ybTo6
TG9nTGV2ZWxXYXJuLCAiRW1wdHkgd2luZG93IGJ1ZmZlciwgY2FuJ3QgYmxpdCBjb250ZW50cy4i
KTsKKwogI2lmIERFQlVHX0NIRUNLRVJCT0FSRAogICAgIGJvb2wgYmxpdENoZWNrZXJlZCA9IGZh
bHNlOwogI2VuZGlmCkBAIC0xNDI1LDEzICsxNDMwLDE0IEBAIHZvaWQgQmFja2luZ1N0b3JlUHJp
dmF0ZTo6Y29tcG9zaXRlQ29udGVudHMoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlciogbGF5ZXJSZW5k
ZXJlCiAKICAgICBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiB0cmFuc2Zvcm1lZENvbnRlbnRzUmVn
aW9uID0gdHJhbnNmb3JtZWRDb250ZW50czsKICAgICBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiBi
YWNraW5nU3RvcmVSZWdpb24gPSBnZW9tZXRyeS0+YmFja2luZ1N0b3JlUmVjdCgpOwotICAgIFBs
YXRmb3JtOjpJbnRSZWN0UmVnaW9uIGNoZWNrZXJlZFJlZ2lvbgorICAgIFBsYXRmb3JtOjpJbnRS
ZWN0UmVnaW9uIGNsZWFyUmVnaW9uCiAgICAgICAgID0gUGxhdGZvcm06OkludFJlY3RSZWdpb246
OnN1YnRyYWN0UmVnaW9ucyh0cmFuc2Zvcm1lZENvbnRlbnRzUmVnaW9uLCBiYWNraW5nU3RvcmVS
ZWdpb24pOwogCi0gICAgLy8gQmxpdCBjaGVja2VyZWQgdG8gdGhvc2UgcGFydHMgdGhhdCBhcmUg
bm90IGNvdmVyZWQgYnkgdGhlIGJhY2tpbmdTdG9yZVJlY3QuCi0gICAgc3RkOjp2ZWN0b3I8UGxh
dGZvcm06OkludFJlY3Q+IGNoZWNrZXJlZFJlY3RzID0gY2hlY2tlcmVkUmVnaW9uLnJlY3RzKCk7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGVja2VyZWRSZWN0cy5zaXplKCk7ICsraSkK
LSAgICAgICAgbGF5ZXJSZW5kZXJlci0+ZHJhd0NoZWNrZXJib2FyZFBhdHRlcm4odHJhbnNmb3Jt
LCBtX3dlYlBhZ2UtPmQtPm1hcEZyb21UcmFuc2Zvcm1lZEZsb2F0UmVjdChXZWJDb3JlOjpJbnRS
ZWN0KGNoZWNrZXJlZFJlY3RzLmF0KGkpKSkpOworICAgIC8vIENsZWFyIHRob3NlIHBhcnRzIHRo
YXQgYXJlIG5vdCBjb3ZlcmVkIGJ5IHRoZSBiYWNraW5nU3RvcmVSZWN0LgorICAgIENvbG9yIGNs
ZWFyQ29sb3IoQ29sb3I6OndoaXRlKTsKKyAgICBzdGQ6OnZlY3RvcjxQbGF0Zm9ybTo6SW50UmVj
dD4gY2xlYXJSZWN0cyA9IGNsZWFyUmVnaW9uLnJlY3RzKCk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBjbGVhclJlY3RzLnNpemUoKTsgKytpKQorICAgICAgICBsYXllclJlbmRlcmVyLT5k
cmF3Q29sb3IodHJhbnNmb3JtLCBtX3dlYlBhZ2UtPmQtPm1hcEZyb21UcmFuc2Zvcm1lZEZsb2F0
UmVjdChXZWJDb3JlOjpJbnRSZWN0KGNsZWFyUmVjdHMuYXQoaSkpKSwgY2xlYXJDb2xvcik7CiAK
ICAgICAvLyBHZXQgdGhlIGxpc3Qgb2YgdGlsZSByZWN0cyB0aGF0IG1ha2V1cCB0aGUgY29udGVu
dC4KICAgICBUaWxlUmVjdExpc3QgdGlsZVJlY3RMaXN0ID0gbWFwRnJvbVBpeGVsQ29udGVudHNU
b1RpbGVzKHRyYW5zZm9ybWVkQ29udGVudHMsIGdlb21ldHJ5KTsKQEAgLTE0NDIsNyArMTQ0OCw3
IEBAIHZvaWQgQmFja2luZ1N0b3JlUHJpdmF0ZTo6Y29tcG9zaXRlQ29udGVudHMoV2ViQ29yZTo6
TGF5ZXJSZW5kZXJlciogbGF5ZXJSZW5kZXJlCiAgICAgICAgIFRpbGVCdWZmZXIqIHRpbGVCdWZm
ZXIgPSBjdXJyZW50TWFwLmdldChpbmRleCk7CiAKICAgICAgICAgaWYgKCF0aWxlQnVmZmVyIHx8
ICFnZW9tZXRyeS0+aXNUaWxlQ29ycmVzcG9uZGluZ1RvQnVmZmVyKGluZGV4LCB0aWxlQnVmZmVy
KSkKLSAgICAgICAgICAgIGxheWVyUmVuZGVyZXItPmRyYXdDaGVja2VyYm9hcmRQYXR0ZXJuKHRy
YW5zZm9ybSwgbV93ZWJQYWdlLT5kLT5tYXBGcm9tVHJhbnNmb3JtZWRGbG9hdFJlY3QoUGxhdGZv
cm06OkZsb2F0UmVjdChkaXJ0eVJlY3QpKSk7CisgICAgICAgICAgICBsYXllclJlbmRlcmVyLT5k
cmF3Q29sb3IodHJhbnNmb3JtLCBtX3dlYlBhZ2UtPmQtPm1hcEZyb21UcmFuc2Zvcm1lZEZsb2F0
UmVjdChQbGF0Zm9ybTo6RmxvYXRSZWN0KGRpcnR5UmVjdCkpLCBjbGVhckNvbG9yKTsKICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICBQbGF0Zm9ybTo6SW50UG9pbnQgdGlsZU9yaWdpbiA9IHRp
bGVCdWZmZXItPmxhc3RSZW5kZXJPcmlnaW4oKTsKICAgICAgICAgICAgIFBsYXRmb3JtOjpGbG9h
dFJlY3QgdGlsZURvY3VtZW50Q29udGVudHNSZWN0ID0gbV93ZWJQYWdlLT5kLT5tYXBGcm9tVHJh
bnNmb3JtZWRGbG9hdFJlY3QoUGxhdGZvcm06OkZsb2F0UmVjdCh0aWxlQnVmZmVyLT5waXhlbENv
bnRlbnRzUmVjdCgpKSk7CkBAIC0xNDU2LDcgKzE0NjIsNyBAQCB2b2lkIEJhY2tpbmdTdG9yZVBy
aXZhdGU6OmNvbXBvc2l0ZUNvbnRlbnRzKFdlYkNvcmU6OkxheWVyUmVuZGVyZXIqIGxheWVyUmVu
ZGVyZQogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBub3RSZW5kZXJlZFJlY3Rz
LnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICAgICAgUGxhdGZvcm06OkludFJlY3QgdGlsZVN1
cmZhY2VSZWN0ID0gbm90UmVuZGVyZWRSZWN0cy5hdChpKTsKICAgICAgICAgICAgICAgICB0aWxl
U3VyZmFjZVJlY3QubW92ZSgtdGlsZU9yaWdpbi54KCksIC10aWxlT3JpZ2luLnkoKSk7Ci0gICAg
ICAgICAgICAgICAgbGF5ZXJSZW5kZXJlci0+ZHJhd0NoZWNrZXJib2FyZFBhdHRlcm4odHJhbnNm
b3JtLCBtX3dlYlBhZ2UtPmQtPm1hcEZyb21UcmFuc2Zvcm1lZEZsb2F0UmVjdChQbGF0Zm9ybTo6
RmxvYXRSZWN0KHRpbGVTdXJmYWNlUmVjdCkpKTsKKyAgICAgICAgICAgICAgICBsYXllclJlbmRl
cmVyLT5kcmF3Q29sb3IodHJhbnNmb3JtLCBtX3dlYlBhZ2UtPmQtPm1hcEZyb21UcmFuc2Zvcm1l
ZEZsb2F0UmVjdChQbGF0Zm9ybTo6RmxvYXRSZWN0KHRpbGVTdXJmYWNlUmVjdCkpLCBjbGVhckNv
bG9yKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE4MDgsNyArMTgxNCw3
IEBAIGludCBCYWNraW5nU3RvcmVQcml2YXRlOjp0aWxlSGVpZ2h0KCkKIAogUGxhdGZvcm06Oklu
dFNpemUgQmFja2luZ1N0b3JlUHJpdmF0ZTo6dGlsZVNpemUoKQogewotICAgIHN0YXRpYyBQbGF0
Zm9ybTo6SW50U2l6ZSB0aWxlU2l6ZSA9IFBsYXRmb3JtOjpTZXR0aW5nczo6aW5zdGFuY2UoKS0+
dGlsZVNpemUoUGxhdGZvcm06OkJhY2tpbmdTdG9yZVRpbGVVc2FnZSk7CisgICAgc3RhdGljIFBs
YXRmb3JtOjpJbnRTaXplIHRpbGVTaXplID0gUGxhdGZvcm06OlNldHRpbmdzOjppbnN0YW5jZSgp
LT50aWxlU2l6ZSgpOwogICAgIHJldHVybiB0aWxlU2l6ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5jcHAKaW5kZXggZDhiMmJkYzA0ZTU1ZTNjMjFmNjVk
ZTcxYzEyNWZmM2YwMmJlNzQxOS4uNjlhMmE2MGZmYWMxNjhlNzU4Zjc0ODI1MjI3MWY2YmE2Zjcx
OTBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxMyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCkBAIC0yNCw3ICsyNCw2IEBACiAKICNpbmNsdWRlICJMYXllcldlYktp
dFRocmVhZC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUGxhdGZv
cm1Db250ZXh0U2tpYS5oIgogI2luY2x1ZGUgIlRleHR1cmVDYWNoZUNvbXBvc2l0aW5nVGhyZWFk
LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uX3Au
aCIKQEAgLTM1LDE2ICszNCwxNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VDb21wb3NpdG9yX3AuaCIK
ICNpbmNsdWRlICJXZWJQYWdlX3AuaCIKIAorI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybU1lc3NhZ2VDbGll
bnQuaD4KICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1TdHJpbmcuaD4KICNpbmNsdWRlIDxH
TEVTMi9nbDIuaD4KLSNpbmNsdWRlIDxTa0RldmljZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKK3VzaW5nIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6R0xFUzJQcm9ncmFt
OwogCiBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KIFdlYk92ZXJsYXk6OldlYk92ZXJsYXkoKQogICAgIDogZCgw
KQogewpAQCAtMjI1LDEyICsyMjUsMTIgQEAgV2ViT3ZlcmxheU92ZXJyaWRlKiBXZWJPdmVybGF5
UHJpdmF0ZTo6b3ZlcnJpZGUoKQogICAgIHJldHVybiBtX292ZXJyaWRlLmdldCgpOwogfQogCi12
b2lkIFdlYk92ZXJsYXlQcml2YXRlOjpkcmF3Q29udGVudHMoU2tDYW52YXMqIGNhbnZhcykKK3Zv
aWQgV2ViT3ZlcmxheVByaXZhdGU6OmRyYXdDb250ZW50cyhQbGF0Zm9ybTo6R3JhcGhpY3M6OkRy
YXdhYmxlKiBkcmF3YWJsZSkKIHsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgY2xpZW50LT5kcmF3T3ZlcmxheUNvbnRlbnRzKHEsIGNhbnZhcyk7CisgICAgY2xpZW50
LT5kcmF3T3ZlcmxheUNvbnRlbnRzKHEsIGRyYXdhYmxlKTsKIH0KIAogdm9pZCBXZWJPdmVybGF5
UHJpdmF0ZTo6c2NoZWR1bGVDb21wb3NpdGluZ1J1bigpCkBAIC0zNzIsMTIgKzM3MiwxMSBAQCB2
b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhyZWFkOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTAogCiB2b2lkIFdlYk92ZXJsYXlQcml2YXRlV2ViS2l0VGhy
ZWFkOjpwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQmIGMsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikKIHsKLSAgICBkcmF3Q29udGVudHMoYy5wbGF0Zm9y
bUNvbnRleHQoKS0+Y2FudmFzKCkpOworICAgIGRyYXdDb250ZW50cyhjLnBsYXRmb3JtQ29udGV4
dCgpKTsKIH0KIAogV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6OldlYk92
ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50KCkKICAgICA6IG1fZHJhd3NDb250ZW50
KGZhbHNlKQotICAgICwgbV9sYXllckNvbXBvc2l0aW5nVGhyZWFkKDApCiAgICAgLCBtX2NsaWVu
dCgwKQogewogfQpAQCAtMzkzLDkgKzM5Miw5IEBAIHZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9z
aXRpbmdUaHJlYWRDbGllbnQ6OmludmFsaWRhdGUoKQogICAgIGNsZWFyVXBsb2FkZWRDb250ZW50
cygpOwogfQogCi12b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50Ojpz
ZXRDb250ZW50cyhjb25zdCBTa0JpdG1hcCYgY29udGVudHMpCit2b2lkIFdlYk92ZXJsYXlMYXll
ckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpzZXRDb250ZW50c1RvSW1hZ2UoY29uc3QgQmxhY2tC
ZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpUaWxlZEltYWdlJiBpbWFnZSkKIHsKLSAgICBtX2Nv
bnRlbnRzID0gY29udGVudHM7CisgICAgbV9pbWFnZSA9IGltYWdlOwogICAgIG1fY29sb3IgPSBD
b2xvcigpOwogICAgIG1fdGV4dHVyZS5jbGVhcigpOwogICAgIGNsZWFyVXBsb2FkZWRDb250ZW50
cygpOwpAQCAtNDAzLDEyICs0MDIsMTIgQEAgdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGlu
Z1RocmVhZENsaWVudDo6c2V0Q29udGVudHMoY29uc3QgU2tCaXRtYXAmIGNvbnRlbnQKIAogdm9p
ZCBXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6Y2xlYXJVcGxvYWRlZENv
bnRlbnRzKCkKIHsKLSAgICBtX3VwbG9hZGVkQ29udGVudHMgPSBTa0JpdG1hcCgpOworICAgIG1f
dXBsb2FkZWRJbWFnZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6VGlsZWRJbWFn
ZSgpOwogfQogCiB2b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50Ojpz
ZXRDb250ZW50c1RvQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogewotICAgIG1fY29udGVudHMg
PSBTa0JpdG1hcCgpOworICAgIG1faW1hZ2UgPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhp
Y3M6OlRpbGVkSW1hZ2UoKTsKICAgICBtX2NvbG9yID0gY29sb3I7CiAgICAgbV90ZXh0dXJlLmNs
ZWFyKCk7CiAgICAgY2xlYXJVcGxvYWRlZENvbnRlbnRzKCk7CkBAIC00MjMsOSArNDIyLDkgQEAg
dm9pZCBXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudDo6bGF5ZXJWaXNpYmls
aXR5Q2hhbmdlZChMYXllckNvbXBvc2kKIHsKIH0KIAotdm9pZCBXZWJPdmVybGF5TGF5ZXJDb21w
b3NpdGluZ1RocmVhZENsaWVudDo6dXBsb2FkVGV4dHVyZXNJZk5lZWRlZChMYXllckNvbXBvc2l0
aW5nVGhyZWFkKikKK3ZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQ6
OnVwbG9hZFRleHR1cmVzSWZOZWVkZWQoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIpCiB7
Ci0gICAgaWYgKG1fY29udGVudHMuaXNOdWxsKCkgJiYgIW1fY29sb3IuaXNWYWxpZCgpICYmICFt
X2RyYXdzQ29udGVudCkKKyAgICBpZiAobV9pbWFnZS5pc051bGwoKSAmJiAhbV9jb2xvci5pc1Zh
bGlkKCkgJiYgIW1fZHJhd3NDb250ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV90
ZXh0dXJlICYmIG1fdGV4dHVyZS0+dGV4dHVyZUlkKCkpCkBAIC00MzYsMzggKzQzNSw2OSBAQCB2
b2lkIFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50Ojp1cGxvYWRUZXh0dXJl
c0lmTmVlZGVkKExheWVyQ29tcG9zaQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgVGV4
dHVyZTo6SG9zdFR5cGUgdGV4dHVyZUNvbnRlbnRzID0gVGV4dHVyZTo6SG9zdFR5cGUoKTsKKyAg
ICBJbnRTaXplIHRleHR1cmVTaXplOworCiAgICAgaWYgKG1fZHJhd3NDb250ZW50KSB7CiAgICAg
ICAgIGlmICghbV9jbGllbnQgfHwgIW1fb3duZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgaWYgKG1fY29udGVudHMuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIG1fY29udGVudHMu
c2V0Q29uZmlnKFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgbV9sYXllckNvbXBvc2l0aW5n
VGhyZWFkLT5ib3VuZHMoKS53aWR0aCgpLCBtX2xheWVyQ29tcG9zaXRpbmdUaHJlYWQtPmJvdW5k
cygpLmhlaWdodCgpKTsKLSAgICAgICAgICAgIG1fY29udGVudHMuYWxsb2NQaXhlbHMoKTsKLSAg
ICAgICAgfQorICAgICAgICB0ZXh0dXJlU2l6ZSA9IGxheWVyLT5ib3VuZHMoKTsKKyAgICAgICAg
dGV4dHVyZUNvbnRlbnRzID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpjcmVhdGVC
dWZmZXIoSW50U2l6ZSgwLCAwKSwgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpOZXZl
ckJhY2tlZCk7CisgICAgICAgIGlmICghdGV4dHVyZUNvbnRlbnRzKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGNsZWFyQnVmZmVyKHRleHR1cmVDb250ZW50cywgMCwgMCwgMCwgMCk7
CisgICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9ybUNvbnRleHQgPSBsb2Nr
QnVmZmVyRHJhd2FibGUodGV4dHVyZUNvbnRlbnRzKTsKKyAgICAgICAgZG91YmxlIHRyYW5zZm9y
bVtdID0geworICAgICAgICAgICAgMSwgMCwKKyAgICAgICAgICAgIDAsIDEsCisgICAgICAgICAg
ICAtbGF5ZXItPmJvdW5kcygpLndpZHRoKCkgLyAyLjAsIC1sYXllci0+Ym91bmRzKCkuaGVpZ2h0
KCkgLyAyLjAKKyAgICAgICAgfTsKKyAgICAgICAgcGxhdGZvcm1Db250ZXh0LT5zZXRUcmFuc2Zv
cm0odHJhbnNmb3JtKTsKKyAgICAgICAgbV9jbGllbnQtPmRyYXdPdmVybGF5Q29udGVudHMobV9v
d25lciwgcGxhdGZvcm1Db250ZXh0KTsKKworICAgICAgICByZWxlYXNlQnVmZmVyRHJhd2FibGUo
dGV4dHVyZUNvbnRlbnRzKTsKKyAgICB9IGVsc2UgaWYgKCFtX2ltYWdlLmlzTnVsbCgpKSB7Cisg
ICAgICAgIHRleHR1cmVTaXplID0gSW50U2l6ZShtX2ltYWdlLndpZHRoKCksIG1faW1hZ2UuaGVp
Z2h0KCkpOworICAgICAgICB0ZXh0dXJlQ29udGVudHMgPSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
R3JhcGhpY3M6OmNyZWF0ZUJ1ZmZlcihJbnRTaXplKDAsIDApLCBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6R3JhcGhpY3M6Ok5ldmVyQmFja2VkKTsKKyAgICAgICAgaWYgKCF0ZXh0dXJlQ29udGVudHMp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQq
IHBsYXRmb3JtQ29udGV4dCA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6bG9ja0J1
ZmZlckRyYXdhYmxlKHRleHR1cmVDb250ZW50cyk7CiAKLSAgICAgICAgU2tEZXZpY2UgZGV2aWNl
KG1fY29udGVudHMpOwotICAgICAgICBTa0NhbnZhcyBjYW52YXMoJmRldmljZSk7Ci0gICAgICAg
IG1fY2xpZW50LT5kcmF3T3ZlcmxheUNvbnRlbnRzKG1fb3duZXIsICZjYW52YXMpOwotICAgICAg
ICBjYW52YXMuZmx1c2goKTsKKyAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybTsKKyAg
ICAgICAgcGxhdGZvcm1Db250ZXh0LT5nZXRUcmFuc2Zvcm0ocmVpbnRlcnByZXRfY2FzdDxkb3Vi
bGUqPigmdHJhbnNmb3JtKSk7CisgICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUoLW1faW1hZ2Uu
d2lkdGgoKSAvIDIuMCwgLW1faW1hZ2UuaGVpZ2h0KCkgLyAyLjApOworICAgICAgICBwbGF0Zm9y
bUNvbnRleHQtPnNldFRyYW5zZm9ybShyZWludGVycHJldF9jYXN0PGRvdWJsZSo+KCZ0cmFuc2Zv
cm0pKTsKKworICAgICAgICBGbG9hdFJlY3QgcmVjdCgwLCAwLCBtX2ltYWdlLndpZHRoKCksIG1f
aW1hZ2UuaGVpZ2h0KCkpOworICAgICAgICBwbGF0Zm9ybUNvbnRleHQtPmFkZEltYWdlKHJlY3Qs
IHJlY3QsICZtX2ltYWdlKTsKKyAgICAgICAgcmVsZWFzZUJ1ZmZlckRyYXdhYmxlKHRleHR1cmVD
b250ZW50cyk7CisgICAgICAgIG1fdXBsb2FkZWRJbWFnZSA9IG1faW1hZ2U7CiAgICAgfQogCiAg
ICAgbV90ZXh0dXJlID0gVGV4dHVyZTo6Y3JlYXRlKCk7Ci0gICAgbV90ZXh0dXJlLT5wcm90ZWN0
KEludFNpemUobV9jb250ZW50cy53aWR0aCgpLCBtX2NvbnRlbnRzLmhlaWdodCgpKSk7Ci0gICAg
SW50UmVjdCBiaXRtYXBSZWN0KDAsIDAsIG1fY29udGVudHMud2lkdGgoKSwgbV9jb250ZW50cy5o
ZWlnaHQoKSk7Ci0gICAgbV91cGxvYWRlZENvbnRlbnRzID0gbV9jb250ZW50czsKLSAgICBtX3Rl
eHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1fdXBsb2FkZWRDb250ZW50cywgYml0bWFwUmVjdCwgYml0
bWFwUmVjdCwgZmFsc2UpOworICAgIG1fdGV4dHVyZS0+cHJvdGVjdChJbnRTaXplKCksIEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6QmFja2VkV2hlbk5lY2Vzc2FyeSk7CisgICAgSW50
UmVjdCBiaXRtYXBSZWN0KDAsIDAsIHRleHR1cmVTaXplLndpZHRoKCksIHRleHR1cmVTaXplLmhl
aWdodCgpKTsKKyAgICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKHRleHR1cmVDb250ZW50cywg
Yml0bWFwUmVjdCwgYml0bWFwUmVjdCwgZmFsc2UpOwogfQogCi12b2lkIFdlYk92ZXJsYXlMYXll
ckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpkcmF3VGV4dHVyZXMoTGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZCogbGF5ZXIsIGRvdWJsZSAvKnNjYWxlKi8sIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQg
dGV4Q29vcmRMb2NhdGlvbikKK3ZvaWQgV2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRD
bGllbnQ6OmRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKiBsYXllciwgZG91Ymxl
IHNjYWxlLCBjb25zdCBHTEVTMlByb2dyYW0mIHByb2dyYW0pCiB7CiAgICAgaWYgKCFtX3RleHR1
cmUgfHwgIW1fdGV4dHVyZS0+dGV4dHVyZUlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlLT50ZXh0dXJlSWQoKSk7Ci0gICAg
Z2xWZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc2l0aW9uTG9jYXRpb24sIDIsIEdMX0ZMT0FULCBHTF9G
QUxTRSwgMCwgJmxheWVyLT5nZXRUcmFuc2Zvcm1lZEJvdW5kcygpKTsKLSAgICBmbG9hdCB0ZXhj
b29yZHNbNCAqIDJdID0geyAwLCAwLCAgMCwgMSwgIDEsIDEsICAxLCAwIH07Ci0gICAgZ2xWZXJ0
ZXhBdHRyaWJQb2ludGVyKHRleENvb3JkTG9jYXRpb24sIDIsIEdMX0ZMT0FULCBHTF9GQUxTRSwg
MCwgdGV4Y29vcmRzKTsKLSAgICBnbERyYXdBcnJheXMoR0xfVFJJQU5HTEVfRkFOLCAwLCA0KTsK
KyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYXRyaXggPSBsYXllci0+ZHJhd1RyYW5zZm9ybSgp
OworICAgIGlmICghbV9pbWFnZS5pc051bGwoKSkgeworICAgICAgICBpZiAobV9pbWFnZS5zaXpl
KCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1hdHJpeC5zY2Fs
ZU5vblVuaWZvcm0oc3RhdGljX2Nhc3Q8ZG91YmxlPihsYXllci0+Ym91bmRzKCkud2lkdGgoKSkg
LyBtX2ltYWdlLndpZHRoKCksIHN0YXRpY19jYXN0PGRvdWJsZT4obGF5ZXItPmJvdW5kcygpLmhl
aWdodCgpKSAvIG1faW1hZ2UuaGVpZ2h0KCkpOworICAgIH0KKyAgICBtYXRyaXguc2NhbGUobGF5
ZXItPnNpemVJc1NjYWxlSW52YXJpYW50KCkgPyAxLjAgLyBzY2FsZSA6IDEuMCk7CisgICAgYmxp
dFRvQnVmZmVyKDAsIG1fdGV4dHVyZS0+dGV4dHVyZUlkKCksIHJlaW50ZXJwcmV0X2Nhc3Q8Qmxh
Y2tCZXJyeTo6UGxhdGZvcm06OlRyYW5zZm9ybWF0aW9uTWF0cml4Jj4obWF0cml4KSwKKyAgICAg
ICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpTb3VyY2VPdmVyLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBjaGFyPihsYXllci0+ZHJhd09wYWNpdHkoKSAqIDI1NSkpOwogfQogCiB2b2lk
IFdlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpkZWxldGVUZXh0dXJlcyhM
YXllckNvbXBvc2l0aW5nVGhyZWFkKikKQEAgLTQ3OCw2ICs1MDgsNyBAQCB2b2lkIFdlYk92ZXJs
YXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50OjpkZWxldGVUZXh0dXJlcyhMYXllckNvbXBv
c2l0aW5nVGhyZQogCiBXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjpXZWJPdmVy
bGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkKFBhc3NSZWZQdHI8TGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZD4gbGF5ZXJDb21wb3NpdGluZ1RocmVhZCkKICAgICA6IG1fbGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZENsaWVudCgwKQorICAgICwgbV9kYXRhKDApCiB7CiAgICAgbV9sYXllckNvbXBvc2l0aW5n
VGhyZWFkID0gbGF5ZXJDb21wb3NpdGluZ1RocmVhZDsKIH0KQEAgLTQ4Niw3ICs1MTcsNiBAQCBX
ZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjpXZWJPdmVybGF5UHJpdmF0ZUNvbXBv
c2l0aW5nVGhyZWFkKCkKICAgICA6IG1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudChuZXcg
V2ViT3ZlcmxheUxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQpCiB7CiAgICAgbV9sYXllckNv
bXBvc2l0aW5nVGhyZWFkID0gTGF5ZXJDb21wb3NpdGluZ1RocmVhZDo6Y3JlYXRlKExheWVyRGF0
YTo6Q3VzdG9tTGF5ZXIsIG1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudCk7Ci0gICAgbV9s
YXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50LT5zZXRMYXllcihtX2xheWVyQ29tcG9zaXRpbmdU
aHJlYWQuZ2V0KCkpOwogfQogCiBXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjp+
V2ViT3ZlcmxheVByaXZhdGVDb21wb3NpdGluZ1RocmVhZCgpCkBAIC01OTcsOCArNjI3LDggQEAg
dm9pZCBXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5nVGhyZWFkOjphZGRDaGlsZChXZWJPdmVy
bGF5UHJpdmF0ZSogb3ZlcmxheSkKIAogdm9pZCBXZWJPdmVybGF5UHJpdmF0ZUNvbXBvc2l0aW5n
VGhyZWFkOjpyZW1vdmVGcm9tUGFyZW50KCkKIHsKLSAgICBpZiAobV9sYXllckNvbXBvc2l0aW5n
VGhyZWFkLT5zdXBlcmxheWVyKCkgPT0gcGFnZSgpLT5tX2NvbXBvc2l0b3ItPmNvbXBvc2l0aW5n
VGhyZWFkT3ZlcmxheUxheWVyKCkpCi0gICAgICAgIHBhZ2UoKS0+bV9jb21wb3NpdG9yLT5yZW1v
dmVPdmVybGF5KG1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZC5nZXQoKSk7CisgICAgaWYgKHBhZ2Uo
KSAmJiBtX2xheWVyQ29tcG9zaXRpbmdUaHJlYWQtPnN1cGVybGF5ZXIoKSA9PSBwYWdlKCktPmNv
bXBvc2l0b3IoKS0+Y29tcG9zaXRpbmdUaHJlYWRPdmVybGF5TGF5ZXIoKSkKKyAgICAgICAgcGFn
ZSgpLT5tX3dlYlBhZ2UtPnJlbW92ZUNvbXBvc2l0aW5nVGhyZWFkT3ZlcmxheShxKTsKICAgICBl
bHNlCiAgICAgICAgIG1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZC0+cmVtb3ZlRnJvbVN1cGVybGF5
ZXIoKTsKICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nUnVuKCk7CkBAIC02MDksMzMgKzYzOSwxNCBA
QCB2b2lkIFdlYk92ZXJsYXlQcml2YXRlQ29tcG9zaXRpbmdUaHJlYWQ6OnNldENvbnRlbnRzVG9J
bWFnZShjb25zdCB1bnNpZ25lZCBjaGFyKgogICAgIGlmICghbV9sYXllckNvbXBvc2l0aW5nVGhy
ZWFkQ2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBTa0JpdG1hcCYgb2xkQ29u
dGVudHMgPSBtX2xheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQtPmNvbnRlbnRzKCk7Ci0gICAg
aWYgKCFvbGRDb250ZW50cy5pc051bGwoKSkgewotICAgICAgICBTa0F1dG9Mb2NrUGl4ZWxzIGxv
Y2sob2xkQ29udGVudHMpOwotICAgICAgICBpZiAoZGF0YSA9PSBvbGRDb250ZW50cy5nZXRQaXhl
bHMoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKGRhdGEgPT0gbV9kYXRh
KQorICAgICAgICByZXR1cm47CiAKLSAgICBTa0JpdG1hcCBjb250ZW50czsKLSAgICBjb250ZW50
cy5zZXRDb25maWcoU2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnLCBpbWFnZVNpemUud2lkdGgo
KSwgaW1hZ2VTaXplLmhlaWdodCgpKTsKLQotICAgIHN3aXRjaCAoYWRvcHRpb25UeXBlKSB7Ci0g
ICAgY2FzZSBXZWJPdmVybGF5OjpSZWZlcmVuY2VJbWFnZURhdGE6Ci0gICAgICAgIGNvbnRlbnRz
LnNldFBpeGVscyhjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgV2ViT3ZlcmxheTo6Q29weUltYWdlRGF0YToKLSAgICAgICAgaWYgKGNv
bnRlbnRzLmFsbG9jUGl4ZWxzKCkpIHsKLSAgICAgICAgICAgIGNvbnRlbnRzLmxvY2tQaXhlbHMo
KTsKLSAgICAgICAgICAgIHNpemVfdCBieXRlcyA9IFNrQml0bWFwOjpDb21wdXRlU2l6ZShTa0Jp
dG1hcDo6a0FSR0JfODg4OF9Db25maWcsIGltYWdlU2l6ZS53aWR0aCgpLCBpbWFnZVNpemUuaGVp
Z2h0KCkpOwotICAgICAgICAgICAgbWVtY3B5KGNvbnRlbnRzLmdldFBpeGVscygpLCBkYXRhLCBi
eXRlcyk7Ci0gICAgICAgICAgICBjb250ZW50cy51bmxvY2tQaXhlbHMoKTsKLSAgICAgICAgfQot
ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICB9CisgICAgbV9kYXRhID0gZGF0YTsKKworICAgIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpHcmFwaGljczo6VGlsZWRJbWFnZSBpbWFnZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFw
aGljczo6VGlsZWRJbWFnZShpbWFnZVNpemUsIHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IHVu
c2lnbmVkKj4oZGF0YSksIHRydWUsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6VGls
ZWRJbWFnZTo6SGFyZHdhcmUpOwogCi0gICAgbV9sYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50
LT5zZXRDb250ZW50cyhjb250ZW50cyk7CisgICAgbV9sYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xp
ZW50LT5zZXRDb250ZW50c1RvSW1hZ2UoaW1hZ2UpOwogICAgIG1fbGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZC0+c2V0TmVlZHNUZXh0dXJlKHRydWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViT3ZlcmxheS5oCmluZGV4IGQ2Y2Q3YjJjNGNjNjZkZTE2ZjU0MmNmOWQ0ODkxNjU0
YTcxNDRkOWEuLjRhODEwZWUxNTk0NzVkY2VhMTE3MGI1MTUzZWMzZmVhNzdiYWVlMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViT3ZlcmxheS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgIC8vIFdpbGwgcmVzdWx0IGluIGEgZnV0
dXJlIGNhbGwgdG8gV2ViT3ZlcmxheUNsaWVudDo6ZHJhd0NvbnRlbnRzLCBpZiB0aGUgbGF5ZXIg
ZHJhd3MgY3VzdG9tIGNvbnRlbnRzLgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCi0gICAgLy8g
VGhlIGNsaWVudCBjYW4gYmUgdXNlZCB0byBkcmF3IGxheWVyIGNvbnRlbnRzIHVzaW5nIFNraWEu
CisgICAgLy8gVGhlIGNsaWVudCBjYW4gYmUgdXNlZCB0byBkcmF3IGxheWVyIGNvbnRlbnRzLgog
ICAgIHZvaWQgc2V0Q2xpZW50KFdlYk92ZXJsYXlDbGllbnQqKTsKIAogICAgIC8vIE11c3QgYmUg
Y2FsbGVkIG9uIFVJIHRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViT3ZlcmxheUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJPdmVybGF5Q2xpZW50LmgKaW5kZXggYmZlYjI2M2NkMDQ1Y2Q4MjFkNzU5MWJlZWE2NjkzZTc5
ODZhYjc3Yi4uODJkOWM5YmQyNTQ5YTZhZDhhNDI4Njc2Yjk5NDg0YjRmMTM3MjdkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5Q2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5Q2xpZW50LmgKQEAgLTIw
LDggKzIwLDcgQEAKICNkZWZpbmUgV2ViT3ZlcmxheUNsaWVudF9oCiAKICNpbmNsdWRlICJCbGFj
a0JlcnJ5R2xvYmFsLmgiCi0KLWNsYXNzIFNrQ2FudmFzOworI2luY2x1ZGUgPEJsYWNrQmVycnlQ
bGF0Zm9ybUdyYXBoaWNzLmg+CiAKIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtMzQsNyArMzMsNyBAQCBjbGFzcyBCTEFDS0JFUlJZX0VYUE9SVCBXZWJPdmVy
bGF5Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJPdmVybGF5Q2xpZW50KCkgeyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd092ZXJsYXlDb250ZW50cyhXZWJPdmVybGF5KiwgU2tD
YW52YXMqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdPdmVybGF5Q29udGVudHMoV2ViT3Zl
cmxheSosIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6RHJhd2FibGUqKSA9IDA7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYk92ZXJs
YXlfcC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJPdmVybGF5X3AuaAppbmRl
eCA3NDJmZTBiYjFhMjk0N2JkMmEzNWM1YzRjZjA1ZDA1MTk1MmU0Y2I4Li4yMTNjNDM3OWExNDVh
ZDk5NTI0OGUzZjc4YjVhZTRlYTQ5OGJiMDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYk92ZXJsYXlfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViT3ZlcmxheV9wLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTI3LDEzICsyNywxMSBA
QAogI2luY2x1ZGUgIldlYk92ZXJsYXkuaCIKICNpbmNsdWRlICJXZWJPdmVybGF5T3ZlcnJpZGUu
aCIKIAotI2luY2x1ZGUgPFNrQml0bWFwLmg+CisjaW5jbHVkZSA8VGlsZWRJbWFnZS5oPgogI2lu
Y2x1ZGUgPHB0aHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCi1jbGFzcyBTa0NhbnZhczsKLQogbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBT
dHJpbmc7CiB9CkBAIC0xMDEsNyArOTksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXIoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSA9IDA7Ci0gICAgdm9p
ZCBkcmF3Q29udGVudHMoU2tDYW52YXMqKTsKKyAgICB2b2lkIGRyYXdDb250ZW50cyhQbGF0Zm9y
bTo6R3JhcGhpY3M6OkRyYXdhYmxlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRPdmVycmlk
ZXMoKSA9IDA7CiAKQEAgLTE2Nyw3ICsxNjUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRv
dWJsZSB0aW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBjb250ZW50c1Zpc2libGUoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRS
ZWN0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0Jv
cmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0ZToKICAgICBP
d25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9sYXllcjsKQEAgLTE4MCwzNSArMTc5LDMz
IEBAIHB1YmxpYzoKICAgICBXZWJPdmVybGF5TGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudCgp
OwogICAgIHZpcnR1YWwgfldlYk92ZXJsYXlMYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50KCkg
eyB9CiAKLSAgICB2b2lkIHNldExheWVyKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQq
IGxheWVyKSB7IG1fbGF5ZXJDb21wb3NpdGluZ1RocmVhZCA9IGxheWVyOyB9CiAgICAgdm9pZCBz
ZXRDbGllbnQoV2ViT3ZlcmxheSogb3duZXIsIFdlYk92ZXJsYXlDbGllbnQqIGNsaWVudCkgeyBt
X293bmVyID0gb3duZXI7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAKICAgICBib29sIGRyYXdzQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NDb250ZW50OyB9CiAgICAgdm9pZCBzZXREcmF3
c0NvbnRlbnQoYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAgICBjb25zdCBTa0Jp
dG1hcCYgY29udGVudHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzOyB9Ci0gICAgdm9pZCBz
ZXRDb250ZW50cyhjb25zdCBTa0JpdG1hcCYpOwotCisgICAgdm9pZCBzZXRDb250ZW50c1RvSW1h
Z2UoY29uc3QgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpUaWxlZEltYWdlJik7CiAg
ICAgdm9pZCBzZXRDb250ZW50c1RvQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKIAorICAg
IGNvbnN0IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6VGlsZWRJbWFnZSYgaW1hZ2Uo
KSBjb25zdCB7IHJldHVybiBtX2ltYWdlOyB9CisKICAgICAvLyBMYXllckNvbXBvc2l0aW5nVGhy
ZWFkQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGxheWVyQ29tcG9zaXRpbmdUaHJlYWREZXN0cm95
ZWQoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGluZ1RocmVhZCopOwogICAgIHZpcnR1YWwgdm9pZCBs
YXllclZpc2liaWxpdHlDaGFuZ2VkKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBi
b29sIHZpc2libGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGxvYWRUZXh0dXJlc0lmTmVlZGVkKFdl
YkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1Rl
eHR1cmVzKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBkb3VibGUgc2NhbGUsIGlu
dCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbik7CisgICAgdmlydHVhbCB2
b2lkIGRyYXdUZXh0dXJlcyhXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFkKiwgZG91Ymxl
IHNjYWxlLCBjb25zdCBQbGF0Zm9ybTo6R3JhcGhpY3M6OkdMRVMyUHJvZ3JhbSYpOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVUZXh0dXJlcyhXZWJDb3JlOjpMYXllckNvbXBvc2l0aW5nVGhyZWFk
Kik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhclVwbG9hZGVkQ29udGVudHMoKTsKIAogcHJp
dmF0ZToKLSAgICBSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZT4gbV90ZXh0dXJlOwogICAgIGJvb2wg
bV9kcmF3c0NvbnRlbnQ7Ci0gICAgU2tCaXRtYXAgbV9jb250ZW50czsKLSAgICBTa0JpdG1hcCBt
X3VwbG9hZGVkQ29udGVudHM7CisgICAgUmVmUHRyPFdlYkNvcmU6OlRleHR1cmU+IG1fdGV4dHVy
ZTsKKyAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OlRpbGVkSW1hZ2UgbV9pbWFn
ZTsKKyAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OlRpbGVkSW1hZ2UgbV91cGxv
YWRlZEltYWdlOwogICAgIFdlYkNvcmU6OkNvbG9yIG1fY29sb3I7Ci0gICAgV2ViQ29yZTo6TGF5
ZXJDb21wb3NpdGluZ1RocmVhZCogbV9sYXllckNvbXBvc2l0aW5nVGhyZWFkOwogICAgIFdlYk92
ZXJsYXkqIG1fb3duZXI7CiAgICAgV2ViT3ZlcmxheUNsaWVudCogbV9jbGllbnQ7CiB9OwpAQCAt
MjU2LDYgKzI1Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBXZWJPdmVybGF5TGF5ZXJD
b21wb3NpdGluZ1RocmVhZENsaWVudCogbV9sYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50Owor
ICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIG1fZGF0YTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ29tcG9zaXRvci5jcHAKaW5kZXggZDhhM2I3
MWE0ZjBkODIxMjg2NTczYTg5N2E5Y2Q5MTVlY2M3NTdlMC4uMmE0MjU2MzAxMWMxNGRhYjI2NGM3
NTM5NWNhM2NjYmYyMzJhY2I2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlQ29tcG9zaXRvci5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBXZWJQYWdlQ29tcG9zaXRvclByaXZhdGU6OldlYlBhZ2VDb21wb3NpdG9yUHJpdmF0
ZShXZWJQYWdlUHJpdmF0ZSogcGFnZSwgV2ViUGFnZUNvbXBvc2l0b3JDbGllbnQqIGNsaWVudCkK
ICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fd2ViUGFnZShwYWdlKQorICAgICwgbV9j
b250ZXh0KDApCiAgICAgLCBtX2RyYXdzUm9vdExheWVyKGZhbHNlKQogICAgICwgbV9jaGlsZFdp
bmRvd1BsYWNlbWVudChXZWJQYWdlQ29tcG9zaXRvcjo6RG9jdW1lbnRDb29yZGluYXRlcykKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tp
bmdTdG9yZVRpbGUuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
QmFja2luZ1N0b3JlVGlsZS5jcHAKaW5kZXggZWIxMWViMGFhMjk2NDQ2NmU2ODRmYmU1Nzk5NWVl
ODBhMTc4YmUzMy4uM2Q0NWIwMGI1YjAwMWVmZDNiMThhMzFmZjIzNzBhNDk4Y2U5NjNjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0
b3JlVGlsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
QmFja2luZ1N0b3JlVGlsZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgVGlsZUJ1ZmZlcjo6VGlsZUJ1
ZmZlcihjb25zdCBQbGF0Zm9ybTo6SW50U2l6ZSYgc2l6ZSkKIAogVGlsZUJ1ZmZlcjo6flRpbGVC
dWZmZXIoKQogewotICAgIGRlc3Ryb3lCdWZmZXIobV9uYXRpdmVCdWZmZXIpOworICAgIFBsYXRm
b3JtOjpHcmFwaGljczo6ZGVzdHJveUJ1ZmZlcihtX25hdGl2ZUJ1ZmZlcik7CiB9CiAKIFBsYXRm
b3JtOjpJbnRTaXplIFRpbGVCdWZmZXI6OnNpemUoKSBjb25zdApAQCAtMTAxLDcgKzEwMSw3IEBA
IFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIFRpbGVCdWZmZXI6Om5vdFJlbmRlcmVkUmVnaW9uKCkg
Y29uc3QKIFBsYXRmb3JtOjpHcmFwaGljczo6QnVmZmVyKiBUaWxlQnVmZmVyOjpuYXRpdmVCdWZm
ZXIoKSBjb25zdAogewogICAgIGlmICghbV9uYXRpdmVCdWZmZXIpCi0gICAgICAgIG1fbmF0aXZl
QnVmZmVyID0gY3JlYXRlQnVmZmVyKG1fc2l6ZSwgUGxhdGZvcm06OkdyYXBoaWNzOjpBbHdheXNC
YWNrZWQsIFN1cmZhY2VQb29sOjpnbG9iYWxTdXJmYWNlUG9vbCgpLT5zaGFyZWRQaXhtYXBHcm91
cCgpKTsKKyAgICAgICAgbV9uYXRpdmVCdWZmZXIgPSBQbGF0Zm9ybTo6R3JhcGhpY3M6OmNyZWF0
ZUJ1ZmZlcihtX3NpemUsIFBsYXRmb3JtOjpHcmFwaGljczo6QWx3YXlzQmFja2VkLCBTdXJmYWNl
UG9vbDo6Z2xvYmFsU3VyZmFjZVBvb2woKS0+c2hhcmVkUGl4bWFwR3JvdXAoKSk7CiAKICAgICBy
ZXR1cm4gbV9uYXRpdmVCdWZmZXI7CiB9CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBUaWxlQnVm
ZmVyOjpwYWludEJhY2tncm91bmQoKQogewogICAgIG1fYmFja2dyb3VuZFBhaW50ZWQgPSB0cnVl
OwogCi0gICAgY2xlYXJCdWZmZXIobmF0aXZlQnVmZmVyKCksIDAsIDAsIDAsIDApOworICAgIFBs
YXRmb3JtOjpHcmFwaGljczo6Y2xlYXJCdWZmZXIobmF0aXZlQnVmZmVyKCksIDAsIDAsIDAsIDAp
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EZWZhdWx0VGFwSGlnaGxpZ2h0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCmluZGV4IGQ1ZWZlMGJmZWZmNjIy
OGEyYjk0NzMxNzU1MmFlZmJiYTgxYjA5ZDYuLmExNjE2ZDA4ZDM4ZGIwMGI2MGRlYmU5NTI2NmM5
NTRiYzFkNDhjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGlnaHQuY3BwCkBAIC0yNCwxMCArMjQs
MTAgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhdGguaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCiAKKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZv
cm1HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1NZXNzYWdl
Q2xpZW50Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTI3LDI1ICsxMjcsMTMg
QEAgdm9pZCBEZWZhdWx0VGFwSGlnaGxpZ2h0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqIGxheWVyKQogCiB2b2lkIERlZmF1bHRUYXBIaWdobGlnaHQ6OnBhaW50Q29u
dGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgYywgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIC8qaW5DbGlwKi8pCiB7Ci0gICAgc3Rk
Ojp2ZWN0b3I8UGxhdGZvcm06OkludFJlY3Q+IHJlY3RzID0gbV9yZWdpb24ucmVjdHMoKTsKLSAg
ICBQbGF0Zm9ybTo6SW50UmVjdCByZWN0ID0gbV9yZWdpb24uZXh0ZW50cygpOwotICAgIFNrUmVn
aW9uIG92ZXJsYXlSZWdpb247Ci0KLSAgICB1bnNpZ25lZCByZWN0Q291bnQgPSBtX3JlZ2lvbi5u
dW1SZWN0cygpOwotICAgIGlmICghcmVjdENvdW50KQorICAgIGlmICghbV9yZWdpb24ubnVtUmVj
dHMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJl
Y3RDb3VudDsgKytpKSB7Ci0gICAgICAgIFBsYXRmb3JtOjpJbnRSZWN0IHJlY3RUb1BhaW50ID0g
cmVjdHNbaV07Ci0gICAgICAgIFNrSVJlY3QgciA9IFNrSVJlY3Q6Ok1ha2VYWVdIKHJlY3RUb1Bh
aW50LngoKSwgcmVjdFRvUGFpbnQueSgpLCByZWN0VG9QYWludC53aWR0aCgpLCByZWN0VG9QYWlu
dC5oZWlnaHQoKSk7Ci0gICAgICAgIG92ZXJsYXlSZWdpb24ub3AociwgU2tSZWdpb246OmtVbmlv
bl9PcCk7Ci0gICAgfQotCi0gICAgU2tQYXRoIHBhdGhUb1BhaW50OwotICAgIG92ZXJsYXlSZWdp
b24uZ2V0Qm91bmRhcnlQYXRoKCZwYXRoVG9QYWludCk7CisgICAgUGF0aCBwYXRoKG1fcmVnaW9u
LmJvdW5kYXJ5UGF0aCgpKTsKIAotICAgIFBhdGggcGF0aChwYXRoVG9QYWludCk7CiAgICAgYy5z
YXZlKCk7CisgICAgY29uc3QgUGxhdGZvcm06OkludFJlY3QmIHJlY3QgPSBtX3JlZ2lvbi5leHRl
bnRzKCk7CiAgICAgYy50cmFuc2xhdGUoLXJlY3QueCgpLCAtcmVjdC55KCkpOwogCiAgICAgLy8g
RHJhdyB0YXAgaGlnaGxpZ2h0CkBAIC0xNTgsMTEgKzE0NiwxNCBAQCB2b2lkIERlZmF1bHRUYXBI
aWdobGlnaHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29u
dGV4dCYgYwogICAgIGMucmVzdG9yZSgpOwogfQogCi1ib29sIERlZmF1bHRUYXBIaWdobGlnaHQ6
OmNvbnRlbnRzVmlzaWJsZShjb25zdCBHcmFwaGljc0xheWVyKiwgY29uc3QgSW50UmVjdCYgY29u
dGVudFJlY3QpIGNvbnN0Citib29sIERlZmF1bHRUYXBIaWdobGlnaHQ6OnNob3dEZWJ1Z0JvcmRl
cnMoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFn
ZS0+c2hvd0RlYnVnQm9yZGVycyhsYXllcik7Cit9CisKK2Jvb2wgRGVmYXVsdFRhcEhpZ2hsaWdo
dDo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAog
ewotICAgIC8vIFRoaXMgbGF5ZXIgaXMgdHlwaWNhbGx5IHNtYWxsIGVub3VnaCB0aGF0IHdlIGNh
biBhZmZvcmQgdG8gY2FjaGUgYWxsIHRpbGVzIGFuZCBuZXZlcgotICAgIC8vIHJpc2sgY2hlY2tl
cmJvYXJkaW5nLgotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX3BhZ2UtPnNob3dSZXBh
aW50Q291bnRlcihsYXllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRhcEhpZ2hs
aWdodC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRGVmYXVsdFRh
cEhpZ2hsaWdodC5oCmluZGV4IGI1YjM0YjlhZTI3YmE3ZjJhMTFjZGY1ZmI5Y2IzMmQ0YTY4ZDg5
N2QuLjViNDRkZDU2NWI3ZjcyM2RjMTg3Yzk3MGQ1M2Y0OTZmYzA4YjE2ZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0RlZmF1bHRUYXBIaWdobGln
aHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EZWZhdWx0
VGFwSGlnaGxpZ2h0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEx
LCAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTU3LDcgKzU3
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
OwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAgICB2aXJ0
dWFsIGJvb2wgY29udGVudHNWaXNpYmxlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb250ZW50UmVjdCkgY29uc3Q7CisgICAgdmlydHVhbCBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0
OworICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIERlZmF1bHRUYXBIaWdobGlnaHQo
V2ViUGFnZVByaXZhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmNw
cAppbmRleCA1MmM5YzRkMmU4NjI5ZjY4N2I0NDk3NWI5MWQyNTBiZTZjNDgwMzI2Li4zYWQ2YTc3
MzdlNTJkMmY0NmNmNjI3MjEyN2ZhOWY4MGFlZjlmN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9y
T3ZlcmxheUJsYWNrQmVycnkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC01Niw2ICs1NiwxNSBA
QCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciosIFdlYkNvcmU6OkdyYQogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQogCiti
b29sIEluc3BlY3Rvck92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd0Rl
YnVnQm9yZGVycyhsYXllcik7Cit9CisKK2Jvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd1JlcGFp
bnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAorewor
ICAgIHJldHVybiBtX3dlYlBhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXllcik7Cit9CiAjZW5k
aWYKIAogSW5zcGVjdG9yT3ZlcmxheTo6fkluc3BlY3Rvck92ZXJsYXkoKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJs
YXlCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9J
bnNwZWN0b3JPdmVybGF5QmxhY2tCZXJyeS5oCmluZGV4IDZkZjRiYTYyYWY4N2JmNzc5NTRjMzRl
NTFlOWNlMGE5OGZkNzU5OTIuLjkyMWNhNDk0NDU2MDMyZWU1OWE5ZDA0NWQ5ODQwODdkMDE0YzY5
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lu
c3BlY3Rvck92ZXJsYXlCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheUJsYWNrQmVycnkuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgUmVzZWFy
Y2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYwpAQCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFu
aW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1l
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBp
bkNsaXApOworICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3Vu
dGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKICNlbmRpZgogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
U2VsZWN0aW9uT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcAppbmRleCBkMzUyYjE3N2E0MzkwY2MxNDkxODZhY2Jm
OWJkYTRiYzRiNDNiNDhlLi5kZmY2ZDMzYjMzYTNiYzVjODYzNjIzYjAzZjM5MDBjMzY4MTc0Y2Y0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxl
Y3Rpb25PdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9TZWxlY3Rpb25PdmVybGF5LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0
ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjQsOCArMjQs
OCBAQAogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5ZXJNZXNz
YWdlLmgiCisjaW5jbHVkZSAiTGF5ZXJXZWJLaXRUaHJlYWQuaCIKICNpbmNsdWRlICJQYXRoLmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1l
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCiAKQEAgLTQ1LDM3ICs0NSw0MSBAQCBTZWxlY3Rp
b25PdmVybGF5Ojp+U2VsZWN0aW9uT3ZlcmxheSgpCiB7CiB9CiAKLXZvaWQgU2VsZWN0aW9uT3Zl
cmxheTo6ZHJhdyhjb25zdCBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiYgcmVnaW9uKQordm9pZCBT
ZWxlY3Rpb25PdmVybGF5OjpkcmF3KGNvbnN0IFNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewogICAg
IEFTU0VSVChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6d2ViS2l0VGhyZWFkTWVzc2FnZUNsaWVudCgp
LT5pc0N1cnJlbnRUaHJlYWQoKSk7CiAKLSAgICBtX3JlZ2lvbiA9IHJlZ2lvbjsKLSAgICBGbG9h
dFJlY3QgcmVjdCA9IEludFJlY3QobV9yZWdpb24uZXh0ZW50cygpKTsKLSAgICBpZiAocmVjdC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgaGlkZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
IG1fc2VsZWN0aW9uID0gc2VsZWN0aW9uOworCisgICAgd2hpbGUgKG1fbGF5ZXJzLnNpemUoKSA8
IG1fc2VsZWN0aW9uLnNpemUoKSkKKyAgICAgICAgbV9sYXllcnMuYXBwZW5kKEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZSh0aGlzKSk7CiAKLSAgICBpZiAoIW1fb3ZlcmxheSkKLSAgICAgICAgbV9vdmVy
bGF5ID0gYWRvcHRQdHIobmV3IFdlYk92ZXJsYXkodGhpcykpOworICAgIG1fbGF5ZXJzLnJlc2l6
ZShtX3NlbGVjdGlvbi5zaXplKCkpOwogCi0gICAgbV9wYWdlLT5tX3dlYlBhZ2UtPmFkZE92ZXJs
YXkobV9vdmVybGF5LmdldCgpKTsKLSAgICBtX292ZXJsYXktPnJlc2V0T3ZlcnJpZGVzKCk7Ci0g
ICAgbV9vdmVybGF5LT5zZXRQb3NpdGlvbihyZWN0LmxvY2F0aW9uKCkpOwotICAgIG1fb3Zlcmxh
eS0+c2V0U2l6ZShyZWN0LnNpemUoKSk7Ci0gICAgbV9vdmVybGF5LT5zZXREcmF3c0NvbnRlbnQo
dHJ1ZSk7Ci0gICAgbV9vdmVybGF5LT5zZXRPcGFjaXR5KDEuMCk7Ci0gICAgbV9vdmVybGF5LT5p
bnZhbGlkYXRlKCk7CisgICAgc2l6ZV90IGkgPSAwOworICAgIGZvciAoU2VsZWN0aW9uOjppdGVy
YXRvciBpdCA9IG1fc2VsZWN0aW9uLmJlZ2luKCk7IGl0ICE9IG1fc2VsZWN0aW9uLmVuZCgpOyAr
K2l0LCArK2kpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllciogcGFyZW50ID0gaXQtPmtleTsKKyAg
ICAgICAgR3JhcGhpY3NMYXllciogb3ZlcmxheSA9IG1fbGF5ZXJzW2ldLmdldCgpOworCisgICAg
ICAgIHBhcmVudC0+cGxhdGZvcm1MYXllcigpLT5hZGRPdmVybGF5KG92ZXJsYXktPnBsYXRmb3Jt
TGF5ZXIoKSk7CisgICAgICAgIG92ZXJsYXktPnNldFBvc2l0aW9uKEZsb2F0UG9pbnQ6Onplcm8o
KSk7CisgICAgICAgIGlmIChwYXJlbnQgPT0gbV9wYWdlLT5tX292ZXJsYXlMYXllcikKKyAgICAg
ICAgICAgIG92ZXJsYXktPnNldFNpemUobV9wYWdlLT5jb250ZW50c1NpemUoKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG92ZXJsYXktPnNldFNpemUocGFyZW50LT5zaXplKCkpOworICAg
ICAgICBvdmVybGF5LT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoMCwgMCwgMCkpOworICAg
ICAgICBvdmVybGF5LT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgICAgIG92ZXJsYXktPnNl
dE5lZWRzRGlzcGxheSgpOworICAgIH0KIH0KIAogdm9pZCBTZWxlY3Rpb25PdmVybGF5OjpoaWRl
KCkKIHsKICAgICBBU1NFUlQoQmxhY2tCZXJyeTo6UGxhdGZvcm06OndlYktpdFRocmVhZE1lc3Nh
Z2VDbGllbnQoKS0+aXNDdXJyZW50VGhyZWFkKCkpOwogCi0gICAgaWYgKCFtX292ZXJsYXkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fcGFnZS0+bV93ZWJQYWdlLT5yZW1vdmVPdmVybGF5KG1f
b3ZlcmxheS5nZXQoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheWVycy5zaXpl
KCk7ICsraSkKKyAgICAgICAgbV9sYXllcnNbaV0tPnBsYXRmb3JtTGF5ZXIoKS0+cmVtb3ZlRnJv
bVN1cGVybGF5ZXIoKTsKKyAgICBtX3NlbGVjdGlvbi5jbGVhcigpOwogfQogCiB2b2lkIFNlbGVj
dGlvbk92ZXJsYXk6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciogbGF5
ZXIpCkBAIC04Myw0MCArODcsNDQgQEAgdm9pZCBTZWxlY3Rpb25PdmVybGF5Ojpub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgIG1fcGFnZS0+bm90aWZ5
Rmx1c2hSZXF1aXJlZChsYXllcik7CiB9CiAKLXZvaWQgU2VsZWN0aW9uT3ZlcmxheTo6cGFpbnRD
b250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjLCBHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgaW5DbGlwKQordm9pZCBTZWxlY3Rp
b25PdmVybGF5OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBHcmFw
aGljc0NvbnRleHQmIGMsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0
JiBjbGlwKQogewotICAgIHN0ZDo6dmVjdG9yPFBsYXRmb3JtOjpJbnRSZWN0PiByZWN0cyA9IG1f
cmVnaW9uLnJlY3RzKCk7Ci0gICAgUGxhdGZvcm06OkludFJlY3QgcmVjdCA9IG1fcmVnaW9uLmV4
dGVudHMoKTsKLSAgICBTa1JlZ2lvbiB3aW5kb3dSZWdpb247Ci0KLSAgICB1bnNpZ25lZCByZWN0
Q291bnQgPSBtX3JlZ2lvbi5udW1SZWN0cygpOwotICAgIGlmICghcmVjdENvdW50KQorICAgIGlm
ICghbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c3VwZXJsYXllcigpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBJbnRSZWN0IGNsaXAoaW5DbGlwKTsKLSAgICBjbGlwLm1vdmUocmVjdC54KCksIHJl
Y3QueSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVjdENvdW50OyArK2kpIHsK
LSAgICAgICAgSW50UmVjdCByZWN0VG9QYWludCA9IHJlY3RzW2ldOwotICAgICAgICByZWN0VG9Q
YWludC5pbnRlcnNlY3QoY2xpcCk7Ci0gICAgICAgIFNrSVJlY3QgciA9IFNrSVJlY3Q6Ok1ha2VY
WVdIKHJlY3RUb1BhaW50LngoKSwgcmVjdFRvUGFpbnQueSgpLCByZWN0VG9QYWludC53aWR0aCgp
LCByZWN0VG9QYWludC5oZWlnaHQoKSk7Ci0gICAgICAgIHdpbmRvd1JlZ2lvbi5vcChyLCBTa1Jl
Z2lvbjo6a1VuaW9uX09wKTsKLSAgICB9CisgICAgU2VsZWN0aW9uOjppdGVyYXRvciBpdCA9IG1f
c2VsZWN0aW9uLmZpbmQobGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c3VwZXJsYXllcigpLT5vd25l
cigpKTsKKyAgICBpZiAoaXQgPT0gbV9zZWxlY3Rpb24uZW5kKCkpCisgICAgICAgIHJldHVybjsK
IAotICAgIFNrUGF0aCBwYXRoVG9QYWludDsKLSAgICB3aW5kb3dSZWdpb24uZ2V0Qm91bmRhcnlQ
YXRoKCZwYXRoVG9QYWludCk7CisgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4m
IHF1YWRzID0gaXQtPnZhbHVlOwogCi0gICAgUGF0aCBwYXRoKHBhdGhUb1BhaW50KTsKICAgICBj
LnNhdmUoKTsKLSAgICBjLnRyYW5zbGF0ZSgtcmVjdC54KCksIC1yZWN0LnkoKSk7CiAKLSAgICAv
LyBEcmF3IHNlbGVjdGlvbiBvdmVybGF5CiAgICAgQ29sb3IgY29sb3IgPSBSZW5kZXJUaGVtZTo6
ZGVmYXVsdFRoZW1lKCktPmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwogICAgIGMu
c2V0RmlsbENvbG9yKGNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBjLmZpbGxQYXRo
KHBhdGgpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHF1YWRzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIEZsb2F0UmVjdCByZWN0VG9QYWludCA9IHF1YWRzW2ldLmJvdW5kaW5nQm94
KCk7CisgICAgICAgIHJlY3RUb1BhaW50LmludGVyc2VjdChjbGlwKTsKKyAgICAgICAgaWYgKHJl
Y3RUb1BhaW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGMu
ZmlsbFJlY3QocmVjdFRvUGFpbnQpOworICAgIH0KIAogICAgIGMucmVzdG9yZSgpOwogfQogCiti
b29sIFNlbGVjdGlvbk92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgR3JhcGhpY3NMYXll
ciogbGF5ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+c2hvd0RlYnVnQm9yZGVycyhs
YXllcik7Cit9CisKK2Jvb2wgU2VsZWN0aW9uT3ZlcmxheTo6c2hvd1JlcGFpbnRDb3VudGVyKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UtPnNo
b3dSZXBhaW50Q291bnRlcihsYXllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogfSAv
LyBuYW1lc3BhY2UgQmxhY2tCZXJyeQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25PdmVybGF5LmgKaW5kZXggZDI3MDRkYzNm
N2I3MjAxZWVjMjc0ZTNlYjE3NDNhODBmNmJlYTM4MS4uOTU3MWY3NDhhMDE2YzlkOGZiZmEwN2Rk
Mjg1OWExN2E2NTNiMzU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU2VsZWN0aW9uT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L1NlbGVjdGlvbk92ZXJsYXkuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgUmVzZWFyY2ggSW4g
TW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpA
QCAtMjQsMTIgKzI0LDE1IEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAj
aW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJHcmFw
aGljc0xheWVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViT3ZlcmxheS5oIgorI2luY2x1ZGUgIklu
dFJlY3QuaCIKIAogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUludFJlY3RSZWdpb24uaD4K
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIEJsYWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOCwyNyArNDEsMzEgQEAg
Y2xhc3MgV2ViUGFnZVByaXZhdGU7CiAKIGNsYXNzIFNlbGVjdGlvbk92ZXJsYXkgOiBwdWJsaWMg
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CisgICAgdHlwZWRlZiBIYXNo
TWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiA+
IFNlbGVjdGlvbjsKKwogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNlbGVjdGlvbk92ZXJsYXk+IGNy
ZWF0ZShXZWJQYWdlUHJpdmF0ZSogcGFnZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgU2VsZWN0aW9uT3ZlcmxheShwYWdlKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+U2Vs
ZWN0aW9uT3ZlcmxheSgpOworICAgIH5TZWxlY3Rpb25PdmVybGF5KCk7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZHJhdyhjb25zdCBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiYpOwotICAgIHZpcnR1YWwg
dm9pZCBoaWRlKCk7CisgICAgdm9pZCBkcmF3KGNvbnN0IFNlbGVjdGlvbiYpOworICAgIHZvaWQg
aGlkZSgpOwogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3Vi
bGUgdGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgaW5DbGlwKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgU2VsZWN0aW9u
T3ZlcmxheShXZWJQYWdlUHJpdmF0ZSopOwogCiAgICAgV2ViUGFnZVByaXZhdGUqIG1fcGFnZTsK
LSAgICBPd25QdHI8V2ViT3ZlcmxheT4gbV9vdmVybGF5OwotICAgIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpJbnRSZWN0UmVnaW9uIG1fcmVnaW9uOworICAgIFNlbGVjdGlvbiBtX3NlbGVjdGlvbjsK
KyAgICBWZWN0b3I8T3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+ID4gbV9sYXllcnM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmNwcAppbmRleCAyMGFiNjI2NGU1ZDVh
MTUyYjgwMDZiNjE1ZTkxZmUzN2ExMWNhZTJmLi5hNjkzNjgwYzBhODhmNWU0OTFhNzg2ZmZiNzFh
MGM0NzVmY2E0MDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9TdXJmYWNlUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvU3VyZmFjZVBvb2wuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMiwgMjAx
MyBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCkBAIC0xOSw4ICsxOSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiU3VyZmFjZVBvb2wuaCIKIAotI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIK
LQogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUV4ZWN1dGFibGVNZXNzYWdlLmg+CiAjaW5j
bHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtR3JhcGhpY3MuaD4KICNpbmNsdWRlIDxCbGFja0JlcnJ5
UGxhdGZvcm1Mb2cuaD4KQEAgLTEyMiwxMiArMTIwLDExIEBAIHZvaWQgU3VyZmFjZVBvb2w6Omlu
aXRpYWxpemUoY29uc3QgUGxhdGZvcm06OkludFNpemUmIHRpbGVTaXplKQogCiBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dCogU3VyZmFjZVBvb2w6OmNyZWF0ZVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
KFBsYXRmb3JtOjpHcmFwaGljczo6RHJhd2FibGUqIGRyYXdhYmxlKSBjb25zdAogewotICAgIHJl
dHVybiBuZXcgV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYShkcmF3YWJsZSk7CisgICAgcmV0
dXJuIGRyYXdhYmxlOwogfQogCiB2b2lkIFN1cmZhY2VQb29sOjpkZXN0cm95UGxhdGZvcm1HcmFw
aGljc0NvbnRleHQoUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIHBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0KSBjb25zdAogewotICAgIGRlbGV0ZSBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKIH0KIAog
dW5zaWduZWQgU3VyZmFjZVBvb2w6Om51bWJlck9mQXZhaWxhYmxlQmFja0J1ZmZlcnMoKSBjb25z
dApAQCAtMjAzLDY1ICsyMDAsMTYgQEAgdm9pZCBTdXJmYWNlUG9vbDo6d2FpdEZvckJ1ZmZlcihU
aWxlQnVmZmVyKiB0aWxlQnVmZmVyKQogewogICAgIGlmICghbV9oYXNGZW5jZUV4dGVuc2lvbikK
ICAgICAgICAgcmV0dXJuOwotCi0jaWYgQkxBQ0tCRVJSWV9QTEFURk9STV9HUkFQSElDU19FR0wK
LSAgICBFR0xTeW5jS0hSIHBsYXRmb3JtU3luYzsKLQotICAgIHsKLSAgICAgICAgUGxhdGZvcm06
Ok11dGV4TG9ja2VyIGxvY2tlcigmbV9tdXRleCk7Ci0gICAgICAgIHBsYXRmb3JtU3luYyA9IHRp
bGVCdWZmZXItPmZlbmNlKCktPnRha2VQbGF0Zm9ybVN5bmMoKTsKLSAgICB9Ci0KLSAgICBpZiAo
IXBsYXRmb3JtU3luYykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFlZ2xDbGllbnRXYWl0
U3luY0tIUihQbGF0Zm9ybTo6R3JhcGhpY3M6OmVnbERpc3BsYXkoKSwgcGxhdGZvcm1TeW5jLCAw
LCAxMDAwMDAwMDBMTCkpCi0gICAgICAgIFBsYXRmb3JtOjpsb2dBbHdheXMoUGxhdGZvcm06Okxv
Z0xldmVsV2FybiwgIkZhaWxlZCB0byB3YWl0IGZvciBFR0xTeW5jS0hSIG9iamVjdCFcbiIpOwot
Ci0gICAgLy8gSW5zdGVhZCBvZiBhc3N1bWluZyBlZ2xEZXN0cm95U3luY0tIUiBpcyB0aHJlYWQg
c2FmZSwgd2UgYWRkIGl0IHRvCi0gICAgLy8gYSBnYXJiYWdlIGxpc3QgZm9yIGxhdGVyIGNvbGxl
Y3Rpb24gb24gdGhlIHRocmVhZCB0aGF0IGNyZWF0ZWQgaXQuCi0gICAgewotICAgICAgICBQbGF0
Zm9ybTo6TXV0ZXhMb2NrZXIgbG9ja2VyKCZtX211dGV4KTsKLSAgICAgICAgbV9nYXJiYWdlLmlu
c2VydChwbGF0Zm9ybVN5bmMpOwotICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIFN1cmZhY2VQb29s
Ojpub3RpZnlCdWZmZXJzQ29tcG9zaXRlZChjb25zdCBUaWxlQnVmZmVyTGlzdCYgdGlsZUJ1ZmZl
cnMpCiB7CiAgICAgaWYgKCFtX2hhc0ZlbmNlRXh0ZW5zaW9uKQogICAgICAgICByZXR1cm47Ci0K
LSNpZiBCTEFDS0JFUlJZX1BMQVRGT1JNX0dSQVBISUNTX0VHTAotICAgIFBsYXRmb3JtOjpNdXRl
eExvY2tlciBsb2NrZXIoJm1fbXV0ZXgpOwotCi0gICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gUGxh
dGZvcm06OkdyYXBoaWNzOjplZ2xEaXNwbGF5KCk7Ci0KLSAgICAvLyBUaGUgRUdMX0tIUl9mZW5j
ZV9zeW5jIHNwZWMgaXMgbmljZSBlbm91Z2ggdG8gc3BlY2lmeSB0aGF0IHRoZSBzeW5jIG9iamVj
dAotICAgIC8vIGlzIG5vdCBhY3R1YWxseSBkZWxldGVkIHVudGlsIGV2ZXJ5b25lIGhhcyBzdG9w
cGVkIHVzaW5nIGl0LgotICAgIGZvciAoc3RkOjpzZXQ8dm9pZCo+Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1fZ2FyYmFnZS5iZWdpbigpOyBpdCAhPSBtX2dhcmJhZ2UuZW5kKCk7ICsraXQpCi0gICAg
ICAgIGVnbERlc3Ryb3lTeW5jS0hSKGRpc3BsYXksICppdCk7Ci0gICAgbV9nYXJiYWdlLmNsZWFy
KCk7Ci0KLSAgICAvLyBJZiB3ZSBkaWRuJ3QgYmxpdCBhbnl0aGluZywgd2UgZG9uJ3QgbmVlZCB0
byBjcmVhdGUgYSBuZXcgZmVuY2UuCi0gICAgaWYgKHRpbGVCdWZmZXJzLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgLy8gQ3JlYXRlIGEgbmV3IGZlbmNlIGFuZCBhc3NpZ24gdG8g
dGhlIHRpbGVzIHRoYXQgd2VyZSBibGl0LiBJbnZhbGlkYXRlIGFueSBwcmV2aW91cwotICAgIC8v
IGZlbmNlIHRoYXQgbWF5IGJlIGFjdGl2ZSBhbW9uZyB0aGVzZSB0aWxlcyBhbmQgYWRkIGl0cyBz
eW5jIG9iamVjdCB0byB0aGUgZ2FyYmFnZSBzZXQKLSAgICAvLyBmb3IgbGF0ZXIgZGVzdHJ1Y3Rp
b24gdG8gbWFrZSBzdXJlIGl0IGRvZXNuJ3QgbGVhay4KLSAgICBSZWZQdHI8RmVuY2U+IGZlbmNl
ID0gRmVuY2U6OmNyZWF0ZShlZ2xDcmVhdGVTeW5jS0hSKGRpc3BsYXksIEVHTF9TWU5DX0ZFTkNF
X0tIUiwgMCkpOwotICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgdGlsZUJ1ZmZlcnMu
c2l6ZSgpOyArK2kpCi0gICAgICAgIHRpbGVCdWZmZXJzW2ldLT5zZXRGZW5jZShmZW5jZSk7Ci0j
ZW5kaWYKIH0KIAogdm9pZCBTdXJmYWNlUG9vbDo6ZGVzdHJveVBsYXRmb3JtU3luYyh2b2lkKiBw
bGF0Zm9ybVN5bmMpCiB7Ci0jaWYgQkxBQ0tCRVJSWV9QTEFURk9STV9HUkFQSElDU19FR0wgJiYg
VVNFKFNLSUEpCi0gICAgUGxhdGZvcm06Ok11dGV4TG9ja2VyIGxvY2tlcigmbV9tdXRleCk7Ci0g
ICAgbV9nYXJiYWdlLmluc2VydChwbGF0Zm9ybVN5bmMpOwotI2VuZGlmCiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29s
LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TdXJmYWNlUG9vbC5o
CmluZGV4IGRjNDliMzlhMmUwMzI5ZWZjOTUyZmU5MWExNzM5MjU3YTUyOWZhODIuLmY1ZmQ2YmQz
YjJiYmFiOGI2ODYyMzcyZGQ4ZTZjZDM4OGFhMDZmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1N1cmZhY2VQb29sLmgKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvU3VyZmFjZVBvb2wuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIgUmVzZWFyY2ggSW4gTW90
aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IDIwMTEsIDIwMTIsIDIwMTMgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsOCArMjAsNyBAQAogI2RlZmluZSBT
dXJmYWNlUG9vbF9oCiAKICNpbmNsdWRlICJCYWNraW5nU3RvcmVUaWxlLmgiCi0KLSNpbmNsdWRl
ICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAK
ICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1HcmFwaGljcy5oPgogI2luY2x1ZGUgPEJsYWNr
QmVycnlQbGF0Zm9ybVByaW1pdGl2ZXMuaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>