<?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>122341</bug_id>
          
          <creation_ts>2013-10-04 12:39:01 -0700</creation_ts>
          <short_desc>Unify rubberband control</short_desc>
          <delta_ts>2014-01-29 12:13:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>andersca</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>936314</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-10-04 12:39:01 -0700</bug_when>
    <thetext>Unify rubberband control</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936401</commentid>
    <comment_count>1</comment_count>
      <attachid>213411</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-10-04 15:38:19 -0700</bug_when>
    <thetext>Created attachment 213411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936416</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-10-04 16:24:28 -0700</bug_when>
    <thetext>Committed r156924: &lt;http://trac.webkit.org/changeset/156924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973438</commentid>
    <comment_count>3</comment_count>
      <attachid>213411</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-29 12:13:14 -0800</bug_when>
    <thetext>Comment on attachment 213411
Patch

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

&gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:64
&gt; +    static bool linkedAgainstExecutableExpectingImplicitRubberBandControl = NSVersionOfLinkTimeLibrary(&quot;WebKit2&quot;) &lt; 0x021A0200 /* 538.2.0 */;
&gt; +    return linkedAgainstExecutableExpectingImplicitRubberBandControl;

NSVersionOfLinkTimeLibrary returns 0xffffffff for clients who don&apos;t link directly against WebKit2, like Safari. So, Safari is still getting the legacy implicit rubber-band control, while MiniBrowser is not, causing a great deal of confusion.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213411</attachid>
            <date>2013-10-04 15:38:19 -0700</date>
            <delta_ts>2014-01-29 12:13:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122341-20131004153819.patch</filename>
            <type>text/plain</type>
            <size>32221</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjkwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEzLTEwLTA0ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5pZnkgcnViYmVyYmFuZCBjb250cm9s
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIzNDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIENvbnNv
bGlkYXRlcyB0aGUgdHdvIHdheXMgd2Ugd2VyZSBwYXNzaW5nIHN0YXRlIGFib3V0IHdoZXRoZXIK
KyAgICAgICAgICB0byBydWJiZXItYmFuZCBvbiBhIHBhcnRpY3VsYXIgZWRnZSBkb3duIHRvIG9u
ZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
Ojppc1J1YmJlckJhbmRJblByb2dyZXNzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OlNjcm9sbGlu
Z1RyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFu
ZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRM
ZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRSaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0Qm90dG9t
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRUb3ApOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBl
R2VzdHVyZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5oOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKToKKwogMjAxMy0xMC0wNCAgQmVhciBUcmF2aXMgIDxi
ZXRyYXZpc0BhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFwZXNdIFNoYXBlIE91dHNpZGUg
c2hvdWxkIHJlbGF5b3V0IHdoZW4gc2V0IGR5bmFtaWNhbGx5CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgkocmV2aXNpb24gMTU2ODcwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTg2OCw3ICs4NjgsNiBAQCBfX1pON1dlYkNvcmU0UGFnZTE4c2V0
UGFnZVNjYWxlRmFjdG9yRWZSCiBfX1pON1dlYkNvcmU0UGFnZTE5YWRkRm9vdGVyV2l0aEhlaWdo
dEVpCiBfX1pON1dlYkNvcmU0UGFnZTE5YWRkSGVhZGVyV2l0aEhlaWdodEVpCiBfX1pON1dlYkNv
cmU0UGFnZTE5YWRkTGF5b3V0TWlsZXN0b25lc0VqCi1fX1pON1dlYkNvcmU0UGFnZTE5c2V0UnVi
YmVyQmFuZHNBdFRvcEViCiBfX1pON1dlYkNvcmU0UGFnZTE5dmlzaXRlZFN0YXRlQ2hhbmdlZEVQ
TlNfOVBhZ2VHcm91cEV5CiBfX1pON1dlYkNvcmU0UGFnZTIwc2V0RGV2aWNlU2NhbGVGYWN0b3JF
ZgogX19aTjdXZWJDb3JlNFBhZ2UyMHVubWFya0FsbFRleHRNYXRjaGVzRXYKQEAgLTg3Niw3ICs4
NzUsNiBAQCBfX1pON1dlYkNvcmU0UGFnZTIxbWFya0FsbE1hdGNoZXNGb3JUZXh0CiBfX1pON1dl
YkNvcmU0UGFnZTIyYWxsVmlzaXRlZFN0YXRlQ2hhbmdlZEVQTlNfOVBhZ2VHcm91cEUKIF9fWk43
V2ViQ29yZTRQYWdlMjJub25GYXN0U2Nyb2xsYWJsZVJlY3RzRVBLTlNfNUZyYW1lRQogX19aTjdX
ZWJDb3JlNFBhZ2UyMnJlbW92ZUxheW91dE1pbGVzdG9uZXNFagotX19aTjdXZWJDb3JlNFBhZ2Uy
MnNldFJ1YmJlckJhbmRzQXRCb3R0b21FYgogX19aTjdXZWJDb3JlNFBhZ2UyM2NsZWFyVW5kb1Jl
ZG9PcGVyYXRpb25zRXYKIF9fWk43V2ViQ29yZTRQYWdlMjRmaW5kU3RyaW5nTWF0Y2hpbmdSYW5n
ZXNFUktOM1dURjZTdHJpbmdFamlQTlMxXzZWZWN0b3JJTlMxXzZSZWZQdHJJTlNfNVJhbmdlRUVF
TG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRVJpCiBfX1pON1dlYkNvcmU0UGFnZTI0cmVzdW1l
U2NyaXB0ZWRBbmltYXRpb25zRXYKQEAgLTI3MjksMTcgKzI3MjcsMTMgQEAgX19aTjdXZWJDb3Jl
OERvY3VtZW50MTlhY2Nlc3NTVkdFeHRlbnNpbwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVEhSRUFE
RURfU0NST0xMSU5HKQotX19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlMzdzZXRTY3JvbGxpbmdQ
ZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkRWIKK19fWk43V2ViQ29yZTEzU2Nyb2xsaW5nVHJlZTIx
c2V0Q2FuUnViYmVyQmFuZFN0YXRlRWJiYmIKIF9fWk43V2ViQ29yZTEzU2Nyb2xsaW5nVHJlZTIx
dHJ5VG9IYW5kbGVXaGVlbEV2ZW50RVJLTlNfMThQbGF0Zm9ybVdoZWVsRXZlbnRFCi1fX1pON1dl
YkNvcmUxM1Njcm9sbGluZ1RyZWUyMnVwZGF0ZUJhY2tGb3J3YXJkU3RhdGVFYmIKK19fWk43V2Vi
Q29yZTEzU2Nyb2xsaW5nVHJlZTM3c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxl
ZEViCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1RyZWVEMUV2CiBfX1pON1dlYkNvcmUxNVNjcm9s
bGluZ1RocmVhZDE1ZGlzcGF0Y2hCYXJyaWVyRVJLTjNXVEY4RnVuY3Rpb25JRnZ2RUVFCiBfX1pO
N1dlYkNvcmUxNVNjcm9sbGluZ1RocmVhZDhkaXNwYXRjaEVSS04zV1RGOEZ1bmN0aW9uSUZ2dkVF
RQogX19aTjdXZWJDb3JlMjBTY3JvbGxpbmdDb29yZGluYXRvcjQ0c2V0Rm9yY2VNYWluVGhyZWFk
U2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXNFYgotX19aTks3V2ViQ29yZTIzU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMxOXJ1YmJlckJhbmRzQXRCb3R0b21FdgotX19aTks3V2ViQ29yZTIzU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMxNnJ1YmJlckJhbmRzQXRUb3BFdgotX19aTjdXZWJDb3JlMjNTY3Jv
bGxpbmdDb29yZGluYXRvck1hYzIyc2V0UnViYmVyQmFuZHNBdEJvdHRvbUViCi1fX1pON1dlYkNv
cmUyM1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjMTlzZXRSdWJiZXJCYW5kc0F0VG9wRWIKIF9fWk43
V2ViQ29yZTRQYWdlMjBzY3JvbGxpbmdDb29yZGluYXRvckV2CiAjZW5kaWYKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxNTY4NzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzcsMzQgKzgzNyw2IEBAIHZvaWQgUGFnZTo6bG9j
a0FsbE92ZXJsYXlTY3JvbGxiYXJzVG9IaWQKICAgICB9CiB9CiAKLWJvb2wgUGFnZTo6cnViYmVy
QmFuZHNBdEJvdHRvbSgpCi17Ci0gICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxp
bmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCi0gICAgICAgIHJl
dHVybiBzY3JvbGxpbmdDb29yZGluYXRvci0+cnViYmVyQmFuZHNBdEJvdHRvbSgpOwotCi0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFBhZ2U6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9v
bCBydWJiZXJCYW5kc0F0Qm90dG9tKQotewotICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciog
c2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQotICAg
ICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0UnViYmVyQmFuZHNBdEJvdHRvbShydWJiZXJC
YW5kc0F0Qm90dG9tKTsKLX0KLQotYm9vbCBQYWdlOjpydWJiZXJCYW5kc0F0VG9wKCkKLXsKLSAg
ICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+
c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKLSAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yLT5ydWJiZXJCYW5kc0F0VG9wKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQg
UGFnZTo6c2V0UnViYmVyQmFuZHNBdFRvcChib29sIHJ1YmJlckJhbmRzQXRUb3ApCi17Ci0gICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKCkpCi0gICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRS
dWJiZXJCYW5kc0F0VG9wKHJ1YmJlckJhbmRzQXRUb3ApOwotfQotCiB2b2lkIFBhZ2U6OnNldFBh
Z2luYXRpb24oY29uc3QgUGFnaW5hdGlvbiYgcGFnaW5hdGlvbikKIHsKICAgICBpZiAobV9wYWdp
bmF0aW9uID09IHBhZ2luYXRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMTU2ODcw
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NCwx
MSArMjg0LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkU3VwcHJlc3NTY3JvbGxiYXJB
bmltYXRpb25zKGJvb2wgc3VwcHJlc3NBbmltYXRpb25zKTsKICAgICB2b2lkIGxvY2tBbGxPdmVy
bGF5U2Nyb2xsYmFyc1RvSGlkZGVuKGJvb2wgbG9ja092ZXJsYXlTY3JvbGxiYXJzKTsKIAotICAg
IGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpOwotICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdEJv
dHRvbShib29sKTsKLSAgICBib29sIHJ1YmJlckJhbmRzQXRUb3AoKTsKLSAgICB2b2lkIHNldFJ1
YmJlckJhbmRzQXRUb3AoYm9vbCk7Ci0KICAgICAvLyBQYWdlIGFuZCBGcmFtZVZpZXcgYm90aCBz
dG9yZSBhIFBhZ2luYXRpb24gdmFsdWUuIFBhZ2U6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBi
eSBBUEksCiAgICAgLy8gYW5kIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIGlzIHNldCBvbmx5IGJ5
IENTUy4gUGFnZTo6cGFnaW5hdGlvbigpIHdpbGwgYWZmZWN0IGFsbAogICAgIC8vIEZyYW1lVmll
d3MgaW4gdGhlIHBhZ2UgY2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBvbmx5IGFm
ZmVjdHMgdGhlIGN1cnJlbnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAkocmV2aXNpb24gMTU2ODcwKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI0LDEwICsxMjQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN5
bmNDaGlsZFBvc2l0aW9ucyhjb25zdCBMYXlvdXRSZWN0JikgeyB9CiAgICAgdmlydHVhbCBTdHJp
bmcgc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlz
UnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sKSB7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgcnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihTY3JvbGxQaW5uaW5nQmVoYXZpb3IpIHsgfQog
CiAgICAgLy8gR2VuZXJhdGVkIGEgdW5pcXVlIGlkIGZvciBzY3JvbGwgbGF5ZXJzLgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHJl
dmlzaW9uIDE1Njg3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMiArNDksMTIgQEAgUGFzc1JlZlB0cjxT
Y3JvbGxpbmdUcmVlPiBTY3JvbGxpbmdUcmVlOgogU2Nyb2xsaW5nVHJlZTo6U2Nyb2xsaW5nVHJl
ZShTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgOiBtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICwgbV9oYXNXaGVl
bEV2ZW50SGFuZGxlcnMoZmFsc2UpCi0gICAgLCBtX2NhbkdvQmFjayhmYWxzZSkKLSAgICAsIG1f
Y2FuR29Gb3J3YXJkKGZhbHNlKQorICAgICwgbV9ydWJiZXJCYW5kc0F0TGVmdCh0cnVlKQorICAg
ICwgbV9ydWJiZXJCYW5kc0F0UmlnaHQodHJ1ZSkKKyAgICAsIG1fcnViYmVyQmFuZHNBdFRvcCh0
cnVlKQorICAgICwgbV9ydWJiZXJCYW5kc0F0Qm90dG9tKHRydWUpCiAgICAgLCBtX21haW5GcmFt
ZVBpbm5lZFRvVGhlTGVmdChmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVSaWdo
dChmYWxzZSkKLSAgICAsIG1fcnViYmVyQmFuZHNBdEJvdHRvbSh0cnVlKQotICAgICwgbV9ydWJi
ZXJCYW5kc0F0VG9wKHRydWUpCiAgICAgLCBtX21haW5GcmFtZVBpbm5lZFRvVGhlVG9wKGZhbHNl
KQogICAgICwgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJvdHRvbShmYWxzZSkKICAgICAsIG1fbWFp
bkZyYW1lSXNSdWJiZXJCYW5kaW5nKGZhbHNlKQpAQCAtOTMsMTQgKzkzLDYgQEAgU2Nyb2xsaW5n
VHJlZTo6RXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZQogICAgIHJldHVybiBEaWRIYW5kbGVFdmVu
dDsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVCYWNrRm9yd2FyZFN0YXRlKGJvb2wg
Y2FuR29CYWNrLCBib29sIGNhbkdvRm9yd2FyZCkKLXsKLSAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9zd2lwZVN0YXRlTXV0ZXgpOwotCi0gICAgbV9jYW5Hb0JhY2sgPSBjYW5Hb0JhY2s7Ci0gICAg
bV9jYW5Hb0ZvcndhcmQgPSBjYW5Hb0ZvcndhcmQ7Ci19Ci0KIHZvaWQgU2Nyb2xsaW5nVHJlZTo6
aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7
CiAgICAgQVNTRVJUKFNjcm9sbGluZ1RocmVhZDo6aXNDdXJyZW50VGhyZWFkKCkpOwpAQCAtMjcy
LDIwICsyNjQsNiBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRQaGFzCiB9
CiAjZW5kaWYKIAotYm9vbCBTY3JvbGxpbmdUcmVlOjpjYW5Hb0JhY2soKQotewotICAgIE11dGV4
TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwotCi0gICAgcmV0dXJuIG1fY2FuR29CYWNr
OwotfQotCi1ib29sIFNjcm9sbGluZ1RyZWU6OmNhbkdvRm9yd2FyZCgpCi17Ci0gICAgTXV0ZXhM
b2NrZXIgbG9jayhtX3N3aXBlU3RhdGVNdXRleCk7Ci0KLSAgICByZXR1cm4gbV9jYW5Hb0Zvcndh
cmQ7Ci19Ci0KIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpCiB7
CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX211dGV4KTsgICAgCkBAIC0zMDAsMzIgKzI3OCw0MiBA
QCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUlzUnViYmVyCiAgICAgbV9tYWluRnJh
bWVJc1J1YmJlckJhbmRpbmcgPSBpc1J1YmJlckJhbmRpbmc7CiB9CiAKLWJvb2wgU2Nyb2xsaW5n
VHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSgpCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldENhblJ1
YmJlckJhbmRTdGF0ZShib29sIGNhblJ1YmJlckJhbmRzQXRMZWZ0LCBib29sIGNhblJ1YmJlckJh
bmRzQXRSaWdodCwgYm9vbCBjYW5SdWJiZXJCYW5kc0F0VG9wLCBib29sIGNhblJ1YmJlckJhbmRz
QXRCb3R0b20pCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsK
KworICAgIG1fcnViYmVyQmFuZHNBdExlZnQgPSBjYW5SdWJiZXJCYW5kc0F0TGVmdDsKKyAgICBt
X3J1YmJlckJhbmRzQXRSaWdodCA9IGNhblJ1YmJlckJhbmRzQXRSaWdodDsKKyAgICBtX3J1YmJl
ckJhbmRzQXRUb3AgPSBjYW5SdWJiZXJCYW5kc0F0VG9wOworICAgIG1fcnViYmVyQmFuZHNBdEJv
dHRvbSA9IGNhblJ1YmJlckJhbmRzQXRCb3R0b207Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZTo6
cnViYmVyQmFuZHNBdExlZnQoKQogewogICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRl
TXV0ZXgpOwogCi0gICAgcmV0dXJuIG1fcnViYmVyQmFuZHNBdEJvdHRvbTsKKyAgICByZXR1cm4g
bV9ydWJiZXJCYW5kc0F0TGVmdDsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRSdWJiZXJC
YW5kc0F0Qm90dG9tKGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSkKK2Jvb2wgU2Nyb2xsaW5nVHJl
ZTo6cnViYmVyQmFuZHNBdFJpZ2h0KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lw
ZVN0YXRlTXV0ZXgpOworICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwog
Ci0gICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFuZHNBdEJvdHRvbTsKKyAgICBy
ZXR1cm4gbV9ydWJiZXJCYW5kc0F0UmlnaHQ7CiB9CiAKLWJvb2wgU2Nyb2xsaW5nVHJlZTo6cnVi
YmVyQmFuZHNBdFRvcCgpCitib29sIFNjcm9sbGluZ1RyZWU6OnJ1YmJlckJhbmRzQXRCb3R0b20o
KQogewogICAgIE11dGV4TG9ja2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCi0gICAgcmV0
dXJuIG1fcnViYmVyQmFuZHNBdFRvcDsKKyAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0Qm90dG9t
OwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCBydWJi
ZXJCYW5kc0F0VG9wKQorYm9vbCBTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0VG9wKCkKIHsK
LSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIE11dGV4TG9j
a2VyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCi0gICAgbV9ydWJiZXJCYW5kc0F0VG9wID0g
cnViYmVyQmFuZHNBdFRvcDsKKyAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0VG9wOwogfQogICAg
IAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlu
bmluZ0JlaGF2aW9yIHBpbm5pbmcpCkBAIC0zNDksOSArMzM3LDkgQEAgYm9vbCBTY3JvbGxpbmdU
cmVlOjp3aWxsV2hlZWxFdmVudFN0YXJ0UwogCiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3N3aXBl
U3RhdGVNdXRleCk7CiAKLSAgICBpZiAod2hlZWxFdmVudC5kZWx0YVgoKSA+IDAgJiYgbV9tYWlu
RnJhbWVQaW5uZWRUb1RoZUxlZnQgJiYgbV9jYW5Hb0JhY2spCisgICAgaWYgKHdoZWVsRXZlbnQu
ZGVsdGFYKCkgPiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3J1YmJlckJh
bmRzQXRMZWZ0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAod2hlZWxFdmVudC5kZWx0
YVgoKSA8IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0ICYmIG1fY2FuR29Gb3J3YXJk
KQorICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpIDwgMCAmJiBtX21haW5GcmFtZVBpbm5lZFRv
VGhlUmlnaHQgJiYgIW1fcnViYmVyQmFuZHNBdFJpZ2h0KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICBpZiAod2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgJiYgbV9tYWluRnJhbWVQaW5uZWRUb1Ro
ZVRvcCAmJiAhbV9ydWJiZXJCYW5kc0F0VG9wKQogICAgICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHJldmlz
aW9uIDE1Njg3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsOSArNzMsNiBAQCBwdWJsaWM6CiAgICAgRXZlbnRS
ZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwog
ICAgIGJvb2wgaGFzV2hlZWxFdmVudEhhbmRsZXJzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNXaGVl
bEV2ZW50SGFuZGxlcnM7IH0KIAotICAgIC8vIENhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFk
LiBXaWxsIHVwZGF0ZSB0aGUgYmFjayBmb3J3YXJkIHN0YXRlIG9mIHRoZSBwYWdlLCB1c2VkIGZv
ciBydWJiZXItYmFuZGluZy4KLSAgICB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkU3RhdGUoYm9vbCBj
YW5Hb0JhY2ssIGJvb2wgY2FuR29Gb3J3YXJkKTsKLQogICAgIC8vIE11c3QgYmUgY2FsbGVkIGZy
b20gdGhlIHNjcm9sbGluZyB0aHJlYWQuIEhhbmRsZXMgdGhlIHdoZWVsIGV2ZW50LgogICAgIHZv
aWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIApAQCAtOTQs
MTMgKzkxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZSk7CiAjZW5kaWYKIAotICAgIGJvb2wgY2FuR29CYWNrKCk7Ci0g
ICAgYm9vbCBjYW5Hb0ZvcndhcmQoKTsKKyAgICAvLyBDYW4gYmUgY2FsbGVkIGZyb20gYW55IHRo
cmVhZC4gV2lsbCB1cGRhdGUgd2hhdCBlZGdlcyBhbGxvdyBydWJiZXItYmFuZGluZy4KKyAgICB2
b2lkIHNldENhblJ1YmJlckJhbmRTdGF0ZShib29sIGNhblJ1YmJlckJhbmRzQXRMZWZ0LCBib29s
IGNhblJ1YmJlckJhbmRzQXRSaWdodCwgYm9vbCBjYW5SdWJiZXJCYW5kc0F0VG9wLCBib29sIGNh
blJ1YmJlckJhbmRzQXRCb3R0b20pOwogCi0gICAgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKCk7
Ci0gICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOworICAgIGJvb2wgcnViYmVy
QmFuZHNBdExlZnQoKTsKKyAgICBib29sIHJ1YmJlckJhbmRzQXRSaWdodCgpOwogICAgIGJvb2wg
cnViYmVyQmFuZHNBdFRvcCgpOwotICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdFRvcChib29sKTsK
KyAgICBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20oKTsKICAgICAKICAgICB2b2lkIHNldFNjcm9s
bFBpbm5pbmdCZWhhdmlvcihTY3JvbGxQaW5uaW5nQmVoYXZpb3IpOwogICAgIFNjcm9sbFBpbm5p
bmdCZWhhdmlvciBzY3JvbGxQaW5uaW5nQmVoYXZpb3IoKTsKQEAgLTEzMCwxMiArMTI3LDEyIEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1doZWVsRXZlbnRIYW5kbGVyczsKIAogICAgIE11dGV4
IG1fc3dpcGVTdGF0ZU11dGV4OwotICAgIGJvb2wgbV9jYW5Hb0JhY2s7Ci0gICAgYm9vbCBtX2Nh
bkdvRm9yd2FyZDsKKyAgICBib29sIG1fcnViYmVyQmFuZHNBdExlZnQ7CisgICAgYm9vbCBtX3J1
YmJlckJhbmRzQXRSaWdodDsKKyAgICBib29sIG1fcnViYmVyQmFuZHNBdFRvcDsKKyAgICBib29s
IG1fcnViYmVyQmFuZHNBdEJvdHRvbTsKICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVM
ZWZ0OwogICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0OwotICAgIGJvb2wgbV9y
dWJiZXJCYW5kc0F0Qm90dG9tOwotICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wOwogICAgIGJv
b2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZVRvcDsKICAgICBib29sIG1fbWFpbkZyYW1lUGlubmVk
VG9UaGVCb3R0b207CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUnViYmVyQmFuZGluZzsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5oCShyZXZpc2lvbiAxNTY4NzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAkod29ya2luZyBj
b3B5KQpAQCAtNzMsMTAgKzczLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIHNjcm9s
bGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29s
IGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBydWJiZXJCYW5kc0F0VG9wKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFJ1YmJlckJhbmRzQXRUb3AoYm9vbCkgT1ZFUlJJREU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lk
IHNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihTY3JvbGxQaW5uaW5nQmVoYXZpb3IpIE9WRVJSSURF
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCShyZXZpc2lvbiAxNTY4NzApCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTkyLDI2ICs5Miw2IEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWM6OmlzUnViYmVyQmEKICAgICByZXR1cm4gc2Nyb2xsaW5nVHJlZSgpLT5pc1J1YmJl
ckJhbmRJblByb2dyZXNzKCk7CiB9CiAKLWJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnJ1
YmJlckJhbmRzQXRCb3R0b20oKSBjb25zdAotewotICAgIHJldHVybiBzY3JvbGxpbmdUcmVlKCkt
PnJ1YmJlckJhbmRzQXRCb3R0b20oKTsKLX0KLQotdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1h
Yzo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCi17Ci0g
ICAgc2Nyb2xsaW5nVHJlZSgpLT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRC
b3R0b20pOwotfQotCi1ib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpydWJiZXJCYW5kc0F0
VG9wKCkgY29uc3QKLXsKLSAgICByZXR1cm4gc2Nyb2xsaW5nVHJlZSgpLT5ydWJiZXJCYW5kc0F0
VG9wKCk7Ci19Ci0KLXZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNldFJ1YmJlckJhbmRz
QXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0VG9wKQotewotICAgIHNjcm9sbGluZ1RyZWUoKS0+c2V0
UnViYmVyQmFuZHNBdFRvcChydWJiZXJCYW5kc0F0VG9wKTsKLX0KLSAgICAKIHZvaWQgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWM6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihTY3JvbGxQaW5uaW5n
QmVoYXZpb3IgcGlubmluZykKIHsKICAgICBzY3JvbGxpbmdUcmVlKCktPnNldFNjcm9sbFBpbm5p
bmdCZWhhdmlvcihwaW5uaW5nKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVN
YWMubW0JKHJldmlzaW9uIDE1Njg3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjIyLDE1ICsyMjIsOSBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpjYW5T
CiAgICAgcmV0dXJuIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhcigpOwogfQogCi1ib29sIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
U2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbikKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVNYWM6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pCiB7Ci0g
ICAgaWYgKGRpcmVjdGlvbiA9PSBTY3JvbGxMZWZ0KQotICAgICAgICByZXR1cm4gIXNjcm9sbGlu
Z1RyZWUoKS0+Y2FuR29CYWNrKCk7Ci0gICAgaWYgKGRpcmVjdGlvbiA9PSBTY3JvbGxSaWdodCkK
LSAgICAgICAgcmV0dXJuICFzY3JvbGxpbmdUcmVlKCktPmNhbkdvRm9yd2FyZCgpOwotCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVl
OwogfQogCiBJbnRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6YWJzb2x1dGVT
Y3JvbGxQb3NpdGlvbigpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTY5MDYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0OCBAQAorMjAx
My0xMC0wNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IHJ1
YmJlci1iYW5kIGNvbnRyb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyMjM0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIC0gQ29uc29saWRhdGVzIHRoZSB0d28gd2F5cyB3ZSB3ZXJlIHBhc3Npbmcgc3Rh
dGUgYWJvdXQgd2hldGhlcgorICAgICAgICAgIHRvIHJ1YmJlci1iYW5kIG9uIGEgcGFydGljdWxh
ciBlZGdlIGRvd24gdG8gb25lLgorICAgICAgICAtIEFkZHMgU1BJIHRvIGNvbnRyb2wgd2hldGhl
ciB5b3UgY2FuIHJ1YmJlciBiYW5kIG9uIHRoZSBsZWZ0CisgICAgICAgICAgb3IgcmlnaHQgZWRn
ZS4KKyAgICAgICAgLSBBZGQgYSBsaW5rZWQtb24tb3ItYWZ0ZXIgY2hlY2sgdG8gY29udHJvbCB3
aGV0aGVyIHdlIHVzZSB0aGUKKyAgICAgICAgICBsZWdhY3kgaW1wbGljaXQgcnViYmVyIGJhbmQg
Y29udHJvbCBiYXNlZCBvbiBiYWNrL2ZvcndhcmQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJhbmRzQXRMZWZ0KToKKyAgICAg
ICAgKFdLUGFnZVNldFJ1YmJlckJhbmRzQXRMZWZ0KToKKyAgICAgICAgKFdLUGFnZVJ1YmJlckJh
bmRzQXRSaWdodCk6CisgICAgICAgIChXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0UmlnaHQpOgorICAg
ICAgICAoV0tQYWdlUnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAgICAgIChXS1BhZ2VTZXRSdWJi
ZXJCYW5kc0F0Qm90dG9tKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzZW5kV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnViYmVy
QmFuZHNBdExlZnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFJ1YmJlckJh
bmRzQXRMZWZ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydWJiZXJCYW5kc0F0
UmlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldFJ1YmJlckJhbmRzQXRS
aWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNBdFRvcCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdFRvcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRVc2VMZWdhY3lJbXBs
aWNpdFJ1YmJlckJhbmRDb250cm9sKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpw
bGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZl
bnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDEzLTEwLTA0ICBMb3JlbnpvIFRpbHZlICA8bHRpbHZl
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRW5hYmxlIHRleHQgZWRpdGlvbiBVbmRvT3Bl
cmF0aW9ucyBzdXBwb3J0IGluIFdlYktpdDIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAxNTY4NzApCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk1LDggKzI5NSwx
MSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwCiAgICAgLCBtX21h
aW5GcmFtZUlzUGlubmVkVG9SaWdodFNpZGUoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZUlzUGlu
bmVkVG9Ub3BTaWRlKGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lk
ZShmYWxzZSkKLSAgICAsIG1fcnViYmVyQmFuZHNBdEJvdHRvbShmYWxzZSkKLSAgICAsIG1fcnVi
YmVyQmFuZHNBdFRvcChmYWxzZSkKKyAgICAsIG1fdXNlTGVnYWN5SW1wbGljaXRSdWJiZXJCYW5k
Q29udHJvbChmYWxzZSkKKyAgICAsIG1fcnViYmVyQmFuZHNBdExlZnQodHJ1ZSkKKyAgICAsIG1f
cnViYmVyQmFuZHNBdFJpZ2h0KHRydWUpCisgICAgLCBtX3J1YmJlckJhbmRzQXRUb3AodHJ1ZSkK
KyAgICAsIG1fcnViYmVyQmFuZHNBdEJvdHRvbSh0cnVlKQogICAgICwgbV9tYWluRnJhbWVJblZp
ZXdTb3VyY2VNb2RlKGZhbHNlKQogICAgICwgbV9wYWdlQ291bnQoMCkKICAgICAsIG1fcmVuZGVy
VHJlZVNpemUoMCkKQEAgLTMxNiw2ICszMTksOCBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94
eShQYWdlQ2xpZW50KiBwCiAjZW5kaWYKICAgICAsIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yKERv
Tm90UGluKQogeworICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOworCiAjaWYgRU5BQkxFKFBBR0Vf
VklTSUJJTElUWV9BUEkpCiAgICAgaWYgKCFtX2lzVmlzaWJsZSkKICAgICAgICAgbV92aXNpYmls
aXR5U3RhdGUgPSBQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuOwpAQCAtMzM3LDEwICszNDIsNiBA
QCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBwCiAjaWYgRU5BQkxFKFZJ
QlJBVElPTikKICAgICBtX3ZpYnJhdGlvbiA9IFdlYlZpYnJhdGlvblByb3h5OjpjcmVhdGUodGhp
cyk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoVEhSRUFERURfU0NST0xMSU5HKQotICAgIG1fcnViYmVy
QmFuZHNBdEJvdHRvbSA9IHRydWU7Ci0gICAgbV9ydWJiZXJCYW5kc0F0VG9wID0gdHJ1ZTsKLSNl
bmRpZgogCiAgICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgdGhpcyk7CiAKQEAgLTEz
OTUsNyArMTM5NiwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2VuZFdoZWVsRXZlbnQoY29uc3Qg
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OkV2ZW50RGlzcGF0Y2hlcjo6V2hlZWxFdmVudChtX3BhZ2VJRCwgZXZlbnQsIGNhbkdvQmFjaygp
LCBjYW5Hb0ZvcndhcmQoKSksIDApOworICAgIG1fcHJvY2Vzcy0+c2VuZCgKKyAgICAgICAgTWVz
c2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6V2hlZWxFdmVudCgKKyAgICAgICAgICAgIG1fcGFnZUlE
LAorICAgICAgICAgICAgZXZlbnQsCisgICAgICAgICAgICBtX3VzZUxlZ2FjeUltcGxpY2l0UnVi
YmVyQmFuZENvbnRyb2wgPyAhY2FuR29CYWNrKCkgOiBydWJiZXJCYW5kc0F0TGVmdCgpLAorICAg
ICAgICAgICAgbV91c2VMZWdhY3lJbXBsaWNpdFJ1YmJlckJhbmRDb250cm9sID8gIWNhbkdvRm9y
d2FyZCgpIDogcnViYmVyQmFuZHNBdFJpZ2h0KCksCisgICAgICAgICAgICBydWJiZXJCYW5kc0F0
VG9wKCksCisgICAgICAgICAgICBydWJiZXJCYW5kc0F0Qm90dG9tKCkKKyAgICAgICAgKSwgMCk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQpAQCAtMTgyOCwzMCArMTgzNyw0NCBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0U3VwcHJlc3NTY3JvbGxiYXJBCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZXRTdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMoc3VwcHJlc3NB
bmltYXRpb25zKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVy
QmFuZHNBdEJvdHRvbShib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCitib29sIFdlYlBhZ2VQcm94
eTo6cnViYmVyQmFuZHNBdExlZnQoKSBjb25zdAogewotICAgIGlmIChydWJiZXJCYW5kc0F0Qm90
dG9tID09IG1fcnViYmVyQmFuZHNBdEJvdHRvbSkKLSAgICAgICAgcmV0dXJuOworICAgIHJldHVy
biBtX3J1YmJlckJhbmRzQXRMZWZ0OworfQogCi0gICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0g
cnViYmVyQmFuZHNBdEJvdHRvbTsKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRSdWJiZXJCYW5kc0F0
TGVmdChib29sIHJ1YmJlckJhbmRzQXRMZWZ0KQoreworICAgIG1fcnViYmVyQmFuZHNBdExlZnQg
PSBydWJiZXJCYW5kc0F0TGVmdDsKK30KIAotICAgIGlmICghaXNWYWxpZCgpKQotICAgICAgICBy
ZXR1cm47Citib29sIFdlYlBhZ2VQcm94eTo6cnViYmVyQmFuZHNBdFJpZ2h0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0UmlnaHQ7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzZXRSdWJiZXJCYW5kc0F0UmlnaHQoYm9vbCBydWJiZXJCYW5kc0F0UmlnaHQpCit7CisgICAg
bV9ydWJiZXJCYW5kc0F0UmlnaHQgPSBydWJiZXJCYW5kc0F0UmlnaHQ7Cit9CiAKLSAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFJ1YmJlckJhbmRzQXRCb3R0b20ocnVi
YmVyQmFuZHNBdEJvdHRvbSksIG1fcGFnZUlEKTsKK2Jvb2wgV2ViUGFnZVByb3h5OjpydWJiZXJC
YW5kc0F0VG9wKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0VG9wOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdFRvcChib29sIHJ1YmJlckJhbmRz
QXRUb3ApCiB7Ci0gICAgaWYgKHJ1YmJlckJhbmRzQXRUb3AgPT0gbV9ydWJiZXJCYW5kc0F0VG9w
KQotICAgICAgICByZXR1cm47Ci0KICAgICBtX3J1YmJlckJhbmRzQXRUb3AgPSBydWJiZXJCYW5k
c0F0VG9wOworfQogCi0gICAgaWYgKCFpc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybjsKK2Jvb2wg
V2ViUGFnZVByb3h5OjpydWJiZXJCYW5kc0F0Qm90dG9tKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9ydWJiZXJCYW5kc0F0Qm90dG9tOworfQogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpTZXRSdWJiZXJCYW5kc0F0VG9wKHJ1YmJlckJhbmRzQXRUb3ApLCBtX3BhZ2VJ
RCk7Cit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sIHJ1YmJl
ckJhbmRzQXRCb3R0b20pCit7CisgICAgbV9ydWJiZXJCYW5kc0F0Qm90dG9tID0gcnViYmVyQmFu
ZHNBdEJvdHRvbTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldFBhZ2luYXRpb25Nb2RlKFdl
YkNvcmU6OlBhZ2luYXRpb246Ok1vZGUgbW9kZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDE1Njg3MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNDkzLDEwICs0OTMsMTQg
QEAgcHVibGljOgogICAgIGJvb2wgaXNQaW5uZWRUb1RvcFNpZGUoKSBjb25zdCB7IHJldHVybiBt
X21haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlOyB9CiAgICAgYm9vbCBpc1Bpbm5lZFRvQm90dG9t
U2lkZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGU7IH0K
IAotICAgIGJvb2wgcnViYmVyQmFuZHNBdEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcnViYmVy
QmFuZHNBdEJvdHRvbTsgfQotICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdEJvdHRvbShib29sKTsK
LSAgICBib29sIHJ1YmJlckJhbmRzQXRUb3AoKSBjb25zdCB7IHJldHVybiBtX3J1YmJlckJhbmRz
QXRUb3A7IH0KKyAgICBib29sIHJ1YmJlckJhbmRzQXRMZWZ0KCkgY29uc3Q7CisgICAgdm9pZCBz
ZXRSdWJiZXJCYW5kc0F0TGVmdChib29sKTsKKyAgICBib29sIHJ1YmJlckJhbmRzQXRSaWdodCgp
IGNvbnN0OworICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdFJpZ2h0KGJvb2wpOworICAgIGJvb2wg
cnViYmVyQmFuZHNBdFRvcCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UnViYmVyQmFuZHNBdFRvcChi
b29sKTsKKyAgICBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20oKSBjb25zdDsKKyAgICB2b2lkIHNl
dFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCk7CiAKICAgICB2b2lkIHNldFBhZ2luYXRpb25Nb2Rl
KFdlYkNvcmU6OlBhZ2luYXRpb246Ok1vZGUpOwogICAgIFdlYkNvcmU6OlBhZ2luYXRpb246Ok1v
ZGUgcGFnaW5hdGlvbk1vZGUoKSBjb25zdCB7IHJldHVybiBtX3BhZ2luYXRpb25Nb2RlOyB9CkBA
IC03NjEsNiArNzY1LDcgQEAgcHVibGljOgogICAgICAgICAKIHByaXZhdGU6CiAgICAgV2ViUGFn
ZVByb3h5KFBhZ2VDbGllbnQqLCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4sIFdlYlBhZ2VH
cm91cCosIHVpbnQ2NF90IHBhZ2VJRCk7CisgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsK
IAogICAgIHZvaWQgcmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc0V4aXRlZCgpOwogCkBAIC0xMjE0LDgg
KzEyMTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1RvcFNp
ZGU7CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlOwogCi0gICAgYm9v
bCBtX3J1YmJlckJhbmRzQXRCb3R0b207CisgICAgYm9vbCBtX3VzZUxlZ2FjeUltcGxpY2l0UnVi
YmVyQmFuZENvbnRyb2w7CisgICAgYm9vbCBtX3J1YmJlckJhbmRzQXRMZWZ0OworICAgIGJvb2wg
bV9ydWJiZXJCYW5kc0F0UmlnaHQ7CiAgICAgYm9vbCBtX3J1YmJlckJhbmRzQXRUb3A7CisgICAg
Ym9vbCBtX3J1YmJlckJhbmRzQXRCb3R0b207CiAKICAgICBib29sIG1fbWFpbkZyYW1lSW5WaWV3
U291cmNlTW9kZTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcAkocmV2aXNpb24gMTU2ODcwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1NCwxNSArNDU0LDI0IEBA
IGJvb2wgV0tQYWdlSXNQaW5uZWRUb0JvdHRvbVNpZGUoV0tQYWdlUmUKICAgICByZXR1cm4gdG9J
bXBsKHBhZ2VSZWYpLT5pc1Bpbm5lZFRvQm90dG9tU2lkZSgpOwogfQogCitib29sIFdLUGFnZVJ1
YmJlckJhbmRzQXRMZWZ0KFdLUGFnZVJlZiBwYWdlUmVmKQoreworICAgIHJldHVybiB0b0ltcGwo
cGFnZVJlZiktPnJ1YmJlckJhbmRzQXRMZWZ0KCk7Cit9CiAKLWJvb2wgV0tQYWdlUnViYmVyQmFu
ZHNBdEJvdHRvbShXS1BhZ2VSZWYgcGFnZVJlZikKK3ZvaWQgV0tQYWdlU2V0UnViYmVyQmFuZHNB
dExlZnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdExlZnQpCiB7Ci0gICAg
cmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cnViYmVyQmFuZHNBdEJvdHRvbSgpOworICAgIHRvSW1w
bChwYWdlUmVmKS0+c2V0UnViYmVyQmFuZHNBdExlZnQocnViYmVyQmFuZHNBdExlZnQpOwogfQog
Ci12b2lkIFdLUGFnZVNldFJ1YmJlckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmIHBhZ2VSZWYsIGJv
b2wgcnViYmVyQmFuZHNBdEJvdHRvbSkKK2Jvb2wgV0tQYWdlUnViYmVyQmFuZHNBdFJpZ2h0KFdL
UGFnZVJlZiBwYWdlUmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0UnViYmVyQmFuZHNB
dEJvdHRvbShydWJiZXJCYW5kc0F0Qm90dG9tKTsKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYp
LT5ydWJiZXJCYW5kc0F0UmlnaHQoKTsKK30KKwordm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0
UmlnaHQoV0tQYWdlUmVmIHBhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdFJpZ2h0KQoreworICAg
IHRvSW1wbChwYWdlUmVmKS0+c2V0UnViYmVyQmFuZHNBdFJpZ2h0KHJ1YmJlckJhbmRzQXRSaWdo
dCk7CiB9CiAKIGJvb2wgV0tQYWdlUnViYmVyQmFuZHNBdFRvcChXS1BhZ2VSZWYgcGFnZVJlZikK
QEAgLTQ3NSw2ICs0ODQsMTYgQEAgdm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0VG9wKFdLUGFn
ZVJlZgogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0UnViYmVyQmFuZHNBdFRvcChydWJiZXJCYW5k
c0F0VG9wKTsKIH0KIAorYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZiBw
YWdlUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnJ1YmJlckJhbmRzQXRCb3R0
b20oKTsKK30KKwordm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKFdLUGFnZVJlZiBw
YWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pCit7CisgICAgdG9JbXBsKHBhZ2VSZWYp
LT5zZXRSdWJiZXJCYW5kc0F0Qm90dG9tKHJ1YmJlckJhbmRzQXRCb3R0b20pOworfQorCiB2b2lk
IFdLUGFnZVNldFBhZ2luYXRpb25Nb2RlKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1BhZ2luYXRpb25N
b2RlIHBhZ2luYXRpb25Nb2RlKQogewogICAgIFBhZ2luYXRpb246Ok1vZGUgbW9kZTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHJldmlzaW9uIDE1Njg3MCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkod29ya2luZyBjb3B5
KQpAQCAtNDcwLDEwICs0NzAsMTQgQEAgV0tfRVhQT1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRUb1Jp
Z2h0U2lkZQogV0tfRVhQT1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRUb1RvcFNpZGUoV0tQYWdlUmVm
IHBhZ2UpOwogV0tfRVhQT1JUIGJvb2wgV0tQYWdlSXNQaW5uZWRUb0JvdHRvbVNpZGUoV0tQYWdl
UmVmIHBhZ2UpOwogCi1XS19FWFBPUlQgYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0Qm90dG9tKFdL
UGFnZVJlZik7Ci1XS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0Qm90dG9tKFdL
UGFnZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKTsKK1dLX0VYUE9SVCBib29sIFdLUGFn
ZVJ1YmJlckJhbmRzQXRMZWZ0KFdLUGFnZVJlZik7CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRS
dWJiZXJCYW5kc0F0TGVmdChXS1BhZ2VSZWYsIGJvb2wgcnViYmVyQmFuZHNBdExlZnQpOworV0tf
RVhQT1JUIGJvb2wgV0tQYWdlUnViYmVyQmFuZHNBdFJpZ2h0KFdLUGFnZVJlZik7CitXS19FWFBP
UlQgdm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0UmlnaHQoV0tQYWdlUmVmLCBib29sIHJ1YmJl
ckJhbmRzQXRSaWdodCk7CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VSdWJiZXJCYW5kc0F0VG9wKFdL
UGFnZVJlZik7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VTZXRSdWJiZXJCYW5kc0F0VG9wKFdLUGFn
ZVJlZiwgYm9vbCBydWJiZXJCYW5kc0F0VG9wKTsKK1dLX0VYUE9SVCBib29sIFdLUGFnZVJ1YmJl
ckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLUGFnZVNldFJ1YmJl
ckJhbmRzQXRCb3R0b20oV0tQYWdlUmVmLCBib29sIHJ1YmJlckJhbmRzQXRCb3R0b20pOwogCiBX
S19FWFBPUlQgYm9vbCBXS1BhZ2VDYW5EZWxldGUoV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JU
IGJvb2wgV0tQYWdlSGFzU2VsZWN0ZWRSYW5nZShXS1BhZ2VSZWYgcGFnZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkocmV2aXNp
b24gMTU2ODcwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CisjaW1wb3J0IDxt
YWNoLW8vZHlsZC5oPgogCiBAaW50ZXJmYWNlIE5TQXBwbGljYXRpb24gKERldGFpbHMpCiAtICh2
b2lkKXNwZWFrU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZzsKQEAgLTU3LDYgKzU4LDE3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RhdGljIGJv
b2wgc2hvdWxkVXNlTGVnYWN5SW1wbGljaXRSdWJiZXJCYW5kQ29udHJvbCgpCit7CisgICAgc3Rh
dGljIGJvb2wgbGlua2VkQWdhaW5zdEV4ZWN1dGFibGVFeHBlY3RpbmdJbXBsaWNpdFJ1YmJlckJh
bmRDb250cm9sID0gTlNWZXJzaW9uT2ZMaW5rVGltZUxpYnJhcnkoIldlYktpdDIiKSA8IDB4MDIx
QTAyMDAgLyogNTM4LjIuMCAqLzsKKyAgICByZXR1cm4gbGlua2VkQWdhaW5zdEV4ZWN1dGFibGVF
eHBlY3RpbmdJbXBsaWNpdFJ1YmJlckJhbmRDb250cm9sOworfQorCit2b2lkIFdlYlBhZ2VQcm94
eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBtX3VzZUxlZ2FjeUltcGxpY2l0UnViYmVy
QmFuZENvbnRyb2wgPSBzaG91bGRVc2VMZWdhY3lJbXBsaWNpdFJ1YmJlckJhbmRDb250cm9sKCk7
Cit9CisKICNpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKQogI2RlZmlu
ZSBQUk9DRVNTT1IgIlBQQyIKICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194
ODZfNjRfXykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCShyZXZpc2lvbiAxNTY4NzApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODQsNyArODQsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6aW5pdGlhbGl6ZUNvbm5l
Y3RpCiAgICAgY29ubmVjdGlvbi0+YWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpFdmVudERpc3BhdGNoZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9xdWV1ZS5nZXQoKSwg
dGhpcyk7CiB9CiAKLXZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KHVpbnQ2NF90IHBh
Z2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgYm9vbCBjYW5Hb0JhY2ssIGJv
b2wgY2FuR29Gb3J3YXJkKQordm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQodWludDY0
X3QgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBib29sIGNhblJ1YmJl
ckJhbmRzQXRMZWZ0LCBib29sIGNhblJ1YmJlckJhbmRzQXRSaWdodCwgYm9vbCBjYW5SdWJiZXJC
YW5kc0F0VG9wLCBib29sIGNhblJ1YmJlckJhbmRzQXRCb3R0b20pCiB7CiAjaWYgRU5BQkxFKFRI
UkVBREVEX1NDUk9MTElORykKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVl
c011dGV4KTsKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZl
bnQodWludDY0XwogICAgICAgICAvLyBzY3JvbGxpbmcgdHJlZSBjYW4gYmUgbm90aWZpZWQuCiAg
ICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhl
IGdlc3R1cmUuCiAgICAgICAgIGlmIChwbGF0Zm9ybVdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuKQotICAgICAgICAgICAgU2Nyb2xsaW5nVGhyZWFkOjpk
aXNwYXRjaChiaW5kKCZTY3JvbGxpbmdUcmVlOjp1cGRhdGVCYWNrRm9yd2FyZFN0YXRlLCBzY3Jv
bGxpbmdUcmVlLCBjYW5Hb0JhY2ssIGNhbkdvRm9yd2FyZCkpOworICAgICAgICAgICAgU2Nyb2xs
aW5nVGhyZWFkOjpkaXNwYXRjaChiaW5kKCZTY3JvbGxpbmdUcmVlOjpzZXRDYW5SdWJiZXJCYW5k
U3RhdGUsIHNjcm9sbGluZ1RyZWUsIGNhblJ1YmJlckJhbmRzQXRMZWZ0LCBjYW5SdWJiZXJCYW5k
c0F0UmlnaHQsIGNhblJ1YmJlckJhbmRzQXRUb3AsIGNhblJ1YmJlckJhbmRzQXRCb3R0b20pKTsK
IAogICAgICAgICBTY3JvbGxpbmdUcmVlOjpFdmVudFJlc3VsdCByZXN1bHQgPSBzY3JvbGxpbmdU
cmVlLT50cnlUb0hhbmRsZVdoZWVsRXZlbnQocGxhdGZvcm1XaGVlbEV2ZW50KTsKICAgICAgICAg
aWYgKHJlc3VsdCA9PSBTY3JvbGxpbmdUcmVlOjpEaWRIYW5kbGVFdmVudCB8fCByZXN1bHQgPT0g
U2Nyb2xsaW5nVHJlZTo6RGlkTm90SGFuZGxlRXZlbnQpIHsKQEAgLTEwNCw5ICsxMDQsNiBAQCB2
b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCh1aW50NjRfCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjYW5Hb0JhY2sp
OwotICAgIFVOVVNFRF9QQVJBTShjYW5Hb0ZvcndhcmQpOwogI2VuZGlmCiAKICAgICBSdW5Mb29w
OjptYWluKCktPmRpc3BhdGNoKGJpbmQoJkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hXaGVlbEV2
ZW50LCB0aGlzLCBwYWdlSUQsIHdoZWVsRXZlbnQpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgJKHJldmlzaW9uIDE1
Njg3MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKLSAg
ICB2b2lkIHdoZWVsRXZlbnQodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50Jiwg
Ym9vbCBjYW5Hb0JhY2ssIGJvb2wgY2FuR29Gb3J3YXJkKTsKKyAgICB2b2lkIHdoZWVsRXZlbnQo
dWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiwgYm9vbCBjYW5SdWJiZXJCYW5k
c0F0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kc0F0UmlnaHQsIGJvb2wgY2FuUnViYmVyQmFuZHNB
dFRvcCwgYm9vbCBjYW5SdWJiZXJCYW5kc0F0Qm90dG9tKTsKICNpZiBFTkFCTEUoR0VTVFVSRV9F
VkVOVFMpCiAgICAgdm9pZCBnZXN0dXJlRXZlbnQodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJH
ZXN0dXJlRXZlbnQmKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiAxNTY4NzApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw3IEBA
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IEV2ZW50RGlzcGF0Y2hlciB7Ci0gICAgV2hl
ZWxFdmVudCh1aW50NjRfdCBwYWdlSUQsIFdlYktpdDo6V2ViV2hlZWxFdmVudCBldmVudCwgYm9v
bCBjYW5Hb0JhY2ssIGJvb2wgY2FuR29Gb3J3YXJkKQorICAgIFdoZWVsRXZlbnQodWludDY0X3Qg
cGFnZUlELCBXZWJLaXQ6OldlYldoZWVsRXZlbnQgZXZlbnQsIGJvb2wgY2FuUnViYmVyQmFuZHNB
dExlZnQsIGJvb2wgY2FuUnViYmVyQmFuZHNBdFJpZ2h0LCBib29sIGNhblJ1YmJlckJhbmRzQXRU
b3AsIGJvb2wgY2FuUnViYmVyQmFuZHNBdEJvdHRvbSkKIAogI2lmIEVOQUJMRShHRVNUVVJFX0VW
RU5UUykKICAgICBHZXN0dXJlRXZlbnQodWludDY0X3QgcGFnZUlELCBXZWJLaXQ6OldlYkdlc3R1
cmVFdmVudCBldmVudCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDE1Njg3MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4MSwxNiArMTI4
MSw2IEBAIHZvaWQgV2ViUGFnZTo6c2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXQKICAgICBtX3Bh
Z2UtPnNldFNob3VsZFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhzdXBwcmVzc0FuaW1hdGlv
bnMpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJi
ZXJCYW5kc0F0Qm90dG9tKQotewotICAgIG1fcGFnZS0+c2V0UnViYmVyQmFuZHNBdEJvdHRvbShy
dWJiZXJCYW5kc0F0Qm90dG9tKTsKLX0KLQotdm9pZCBXZWJQYWdlOjpzZXRSdWJiZXJCYW5kc0F0
VG9wKGJvb2wgcnViYmVyQmFuZHNBdFRvcCkKLXsKLSAgICBtX3BhZ2UtPnNldFJ1YmJlckJhbmRz
QXRUb3AocnViYmVyQmFuZHNBdFRvcCk7Ci19Ci0KIHZvaWQgV2ViUGFnZTo6c2V0UGFnaW5hdGlv
bk1vZGUodWludDMyX3QgbW9kZSkKIHsKICAgICBQYWdpbmF0aW9uIHBhZ2luYXRpb24gPSBtX3Bh
Z2UtPnBhZ2luYXRpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gMTU2ODcwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzEyLDkgKzMxMiw2IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zKGJvb2wp
OwogCi0gICAgdm9pZCBzZXRSdWJiZXJCYW5kc0F0Qm90dG9tKGJvb2wpOwotICAgIHZvaWQgc2V0
UnViYmVyQmFuZHNBdFRvcChib29sKTsKLQogICAgIHZvaWQgc2V0UGFnaW5hdGlvbk1vZGUodWlu
dDMyX3QgLyogV2ViQ29yZTo6UGFnaW5hdGlvbjo6TW9kZSAqLyk7CiAgICAgdm9pZCBzZXRQYWdp
bmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKGJvb2wpOwogICAgIHZvaWQgc2V0UGFnZUxlbmd0aChk
b3VibGUpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE1Njg3MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzYsOSArMTM2LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7
CiAgICAgTGlzdGVuRm9yTGF5b3V0TWlsZXN0b25lcyh1aW50MzJfdCBtaWxlc3RvbmVzKQogICAg
IFNldFN1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhib29sIHN1cHByZXNzQW5pbWF0aW9ucykK
IAotICAgIFNldFJ1YmJlckJhbmRzQXRCb3R0b20oYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tKQot
ICAgIFNldFJ1YmJlckJhbmRzQXRUb3AoYm9vbCBydWJiZXJCYW5kc0F0VG9wKQotCiAgICAgU2V0
UGFnaW5hdGlvbk1vZGUodWludDMyX3QgbW9kZSkKICAgICBTZXRQYWdpbmF0aW9uQmVoYXZlc0xp
a2VDb2x1bW5zKGJvb2wgYmVoYXZlc0xpa2VDb2x1bW5zKQogICAgIFNldFBhZ2VMZW5ndGgoZG91
YmxlIHBhZ2VMZW5ndGgpCg==
</data>
<flag name="review"
          id="235770"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>