<?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>155021</bug_id>
          
          <creation_ts>2016-03-04 08:55:01 -0800</creation_ts>
          <short_desc>Added missing override specifiers under Source/WebCore.</short_desc>
          <delta_ts>2016-03-04 15:28:17 -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>WebCore Misc.</component>
          <version>WebKit Local 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="Konstantin Tokarev">annulen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1170708</commentid>
    <comment_count>0</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-03-04 08:55:01 -0800</bug_when>
    <thetext>Added missing override specifiers under Source/WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170725</commentid>
    <comment_count>1</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-03-04 08:58:38 -0800</bug_when>
    <thetext>Also added #if(SOUP) guard to ResourceHandleStreamingClient::getOrCreateReadBuffer because it is not an overridden method otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170728</commentid>
    <comment_count>2</comment_count>
      <attachid>272981</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-03-04 08:59:08 -0800</bug_when>
    <thetext>Created attachment 272981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170752</commentid>
    <comment_count>3</comment_count>
      <attachid>272981</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-04 09:06:59 -0800</bug_when>
    <thetext>Comment on attachment 272981
Patch

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

Neat!

&gt; Source/WebCore/page/DebugPageOverlays.cpp:62
&gt; +    void pageOverlayDestroyed(PageOverlay&amp;) final;
&gt; +    void willMoveToPage(PageOverlay&amp;, Page*) final;
&gt; +    void didMoveToPage(PageOverlay&amp;, Page*) final;
&gt; +    void drawRect(PageOverlay&amp;, GraphicsContext&amp;, const IntRect&amp; dirtyRect) final;
&gt; +    bool mouseEvent(PageOverlay&amp;, const PlatformMouseEvent&amp;) final;
&gt; +    void didScrollFrame(PageOverlay&amp;, Frame&amp;) final;

Looks wrong. We removed virtual here but did not add override. Maybe a bug in the tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170918</commentid>
    <comment_count>4</comment_count>
      <attachid>272981</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-04 10:00:16 -0800</bug_when>
    <thetext>Comment on attachment 272981
Patch

Rejecting attachment 272981 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 272981, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 197565 = 1a4d6f9449d5b75e25c145f5a1f6efa1363823f8
r197566 = 49cc03e4bf77a42908478cfbda938088cf1a8567
r197567 = af1f071f0d7cca1b5b368272929370991d9a6402
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/922791</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170928</commentid>
    <comment_count>5</comment_count>
      <attachid>273014</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-03-04 10:23:47 -0800</bug_when>
    <thetext>Created attachment 273014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170961</commentid>
    <comment_count>6</comment_count>
      <attachid>273014</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-03-04 11:39:25 -0800</bug_when>
    <thetext>Comment on attachment 273014
Patch

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

Amazing there are so few instances of this to change

&gt; Source/WebCore/ChangeLog:18
&gt; +        * page/DebugPageOverlays.cpp:

Got to remove this from the changelog.

The change to DebugPageOverlays.cpp was good, by the way; as discussed elsewhere, override and final are redundant. But I agree it doesn&apos;t need to be part of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171000</commentid>
    <comment_count>7</comment_count>
      <attachid>273014</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-03-04 13:21:51 -0800</bug_when>
    <thetext>Comment on attachment 273014
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:18
&gt;&gt; +        * page/DebugPageOverlays.cpp:
&gt; 
&gt; Got to remove this from the changelog.
&gt; 
&gt; The change to DebugPageOverlays.cpp was good, by the way; as discussed elsewhere, override and final are redundant. But I agree it doesn&apos;t need to be part of this patch.

That changes just disappeared when I rebased it on top of Darin&apos;s patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171003</commentid>
    <comment_count>8</comment_count>
      <attachid>273030</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-03-04 13:26:11 -0800</bug_when>
    <thetext>Created attachment 273030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171007</commentid>
    <comment_count>9</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-03-04 13:29:45 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 273014 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=273014&amp;action=review
&gt; 
&gt; Amazing there are so few instances of this to change

zandobersek have done a series of similar patches before, you can find them by words &quot;missing override specifiers&quot;. Maybe we need to enforce policy with appropriate Werror.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171069</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-03-04 14:54:28 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; zandobersek have done a series of similar patches before, you can find them
&gt; by words &quot;missing override specifiers&quot;. Maybe we need to enforce policy with
&gt; appropriate Werror.

Bug #155049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171079</commentid>
    <comment_count>11</comment_count>
      <attachid>273030</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-04 15:28:14 -0800</bug_when>
    <thetext>Comment on attachment 273030
Patch

Clearing flags on attachment: 273030

Committed r197591: &lt;http://trac.webkit.org/changeset/197591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171080</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-04 15:28:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272981</attachid>
            <date>2016-03-04 08:59:08 -0800</date>
            <delta_ts>2016-03-04 10:23:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155021-20160304195852.patch</filename>
            <type>text/plain</type>
            <size>24895</size>
            <attacher name="Konstantin Tokarev">annulen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVjMTNkNmIzNjc1MTll
MGY3ZDg4MjllYzQ5OWNlYzk3NDIzZjA4OS4uYWRmNGE3MGI4MmI0ZjU3NTY0YjhkODNlMWM4NzU4
YzgwZDc3MGNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTAzLTA0ICBLb25z
dGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KKworICAgICAgICBBZGRlZCBtaXNz
aW5nIG92ZXJyaWRlIHNwZWNpZmllcnMgdW5kZXIgU291cmNlL1dlYkNvcmUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUwMjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVk
LgorCisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgICogZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAg
ICAgICAqIGxvYWRlci9TaW5rRG9jdW1lbnQuY3BwOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKiBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcDoKKyAgICAgICAgKiBw
YWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIEFsc28gYWRkZWQgI2lmKFNPVVApIGd1YXJkIHRvCisgICAgICAgIFJlc291cmNlSGFuZGxl
U3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIKKyAgICAgICAgYmVjYXVzZSBp
dCBpcyBub3QgYW4gb3ZlcnJpZGRlbiBtZXRob2Qgb3RoZXJ3aXNlLgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTGluZUVuZGluZy5jcHA6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVu
dFBhcnNlckxpYnhtbDIuY3BwOgorCiAyMDE2LTAzLTAzICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBDb21wb3NlZFRyZWVJdGVyYXRvciBtYXkgdHJhdmVyc2Ug
c2xvdHRlZCBub2RlcyBtdWx0aXBsZSB0aW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL05QX2pzb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVj
dC5jcHAKaW5kZXggNDBlYmI4MGNlMDZkMWJmNDk3NjU4NGFiZDllNTkwYjcyYjM3YTJlZC4uYTM5
ODVkNzZiZThhZTIzZTM4NDI4NDNkZmY3ZDUwNGJmMzU3Y2E0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvTlBfanNvYmplY3QuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBzdHJ1Y3QgUm9vdE9iamVjdEludmFsaWRhdGlvbkNhbGxiYWNrIDogcHVibGljIFJvb3RP
YmplY3Q6OkludmFsaWRhdGlvbkNhbGxiYWNrIHsKLSAgICAgICAgdmlydHVhbCB2b2lkIG9wZXJh
dG9yKCkoUm9vdE9iamVjdCopOworICAgICAgICB2b2lkIG9wZXJhdG9yKCkoUm9vdE9iamVjdCop
IG92ZXJyaWRlOwogICAgIH07CiAgICAgUm9vdE9iamVjdEludmFsaWRhdGlvbkNhbGxiYWNrIG1f
aW52YWxpZGF0aW9uQ2FsbGJhY2s7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApp
bmRleCAxZmM4OTM5MjVhY2YwYTk3YzIxNzAzOTEwMWE3OGQzNmM5NGViZmRjLi41NDVmYTUyZjkw
YzUwODVhYzU5NzMxZmNmMjNlZDVmOTNiNGU0ZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuY3BwCkBAIC01MiwxMyArNTIsMTMgQEAgcHVibGljOgogICAgIFN0eWxlU2hlZXRDU1NS
dWxlTGlzdChDU1NTdHlsZVNoZWV0KiBzaGVldCkgOiBtX3N0eWxlU2hlZXQoc2hlZXQpIHsgfQog
ICAgIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgeyBtX3N0eWxlU2hlZXQtPnJl
ZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgeyBtX3N0eWxlU2hlZXQtPmRlcmVmKCk7
IH0KLSAgICAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3R5bGVTaGVldC0+bGVuZ3RoKCk7IH0KLSAgICB2aXJ0dWFsIENTU1J1bGUqIGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGVTaGVldC0+aXRlbShpbmRleCk7IH0KLSAg
ICAKLSAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQoKSBjb25zdCB7IHJldHVy
biBtX3N0eWxlU2hlZXQ7IH0KKyAgICB2b2lkIHJlZigpIG92ZXJyaWRlIHsgbV9zdHlsZVNoZWV0
LT5yZWYoKTsgfQorICAgIHZvaWQgZGVyZWYoKSBvdmVycmlkZSB7IG1fc3R5bGVTaGVldC0+ZGVy
ZWYoKTsgfQorCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zdHlsZVNoZWV0LT5sZW5ndGgoKTsgfQorICAgIENTU1J1bGUqIGl0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc3R5bGVTaGVldC0+aXRlbShpbmRleCk7IH0K
KworICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3N0eWxlU2hlZXQ7IH0KIAogICAgIENTU1N0eWxlU2hlZXQqIG1fc3R5bGVTaGVldDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKaW5kZXggODdmYmJiZDgzZjNi
YmY3NzBiODYyYTU3ODQwMjQwYzI2YzIyNzhkMy4uYjI3YTRjMWQwNTRkOGEzMDg3YmMzZWVlNjRm
MTgyZDQxNzBjZmM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcApA
QCAtMTY3LDggKzE2Nyw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi1wcml2YXRlOiAgICAK
LSAgICB2aXJ0dWFsIFJlc3VsdCBydW4oKQorcHJpdmF0ZToKKyAgICBSZXN1bHQgcnVuKCkgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIG11dGF0aW9uT2JzZXJ2ZXJDb21wb3VuZE1pY3JvdGFza1F1
ZXVlZEZsYWcgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
aWN0YXRpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29t
bWFuZC5jcHAKaW5kZXggYmM1YjZhNWYxOWY5NjZjNjAxZjE2ZWY4YTkzN2Q0MGE1YjMzMjYzMy4u
OTkyOTVjNmRmZmU2OGJiZjZkNmJjMzdmOGE0NTU3OThkZjU3OGU5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGljdGF0aW9uTWFya2VyU3VwcGxpZXIo
YWx0ZXJuYXRpdmVzKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZE1hcmtlcnNUb1Rl
eHROb2RlKFRleHQqIHRleHROb2RlLCB1bnNpZ25lZCBvZmZzZXRPZkluc2VydGlvbiwgY29uc3Qg
U3RyaW5nJiB0ZXh0VG9CZUluc2VydGVkKQorICAgIHZvaWQgYWRkTWFya2Vyc1RvVGV4dE5vZGUo
VGV4dCogdGV4dE5vZGUsIHVuc2lnbmVkIG9mZnNldE9mSW5zZXJ0aW9uLCBjb25zdCBTdHJpbmcm
IHRleHRUb0JlSW5zZXJ0ZWQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBEb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXImIG1hcmtlckNvbnRyb2xsZXIgPSB0ZXh0Tm9kZS0+ZG9jdW1lbnQoKS5tYXJr
ZXJzKCk7CiAgICAgICAgIGZvciAoYXV0byYgYWx0ZXJuYXRpdmUgOiBtX2FsdGVybmF0aXZlcykg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDRjNzkxMDMzNGFk
ZWYwYTk2NGFiNjg5YTc0MzcwY2U3MzlmODg3OTQuLjIzMTRkZTU3M2M1YzRiZWZmZTBhNjJiYjYw
ZjI4YWVmNmU3MjBkMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z1N0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAK
QEAgLTI1MSwxMCArMjUxLDEwIEBAIHB1YmxpYzoKICAgICBIVE1MQXR0cmlidXRlRXF1aXZhbGVu
dChDU1NQcm9wZXJ0eUlELCBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSk7CiAgICAgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQoQ1NTUHJv
cGVydHlJRCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpOwogCi0gICAgYm9vbCBtYXRj
aGVzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0IHsgcmV0dXJuIEhUTUxFbGVtZW50RXF1
aXZhbGVudDo6bWF0Y2hlcyhlbGVtZW50KSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShtX2F0dHJO
YW1lKTsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNBdHRyaWJ1dGUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHZhbHVlSXNQcmVzZW50SW5TdHlsZShFbGVtZW50Jiwg
Y29uc3QgRWRpdGluZ1N0eWxlJikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGFkZFRvU3R5bGUo
RWxlbWVudCosIEVkaXRpbmdTdHlsZSopIGNvbnN0OworICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBF
bGVtZW50JiBlbGVtZW50KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBIVE1MRWxlbWVudEVxdWl2
YWxlbnQ6Om1hdGNoZXMoZWxlbWVudCkgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUobV9hdHRyTmFt
ZSk7IH0KKyAgICBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICBib29sIHZhbHVlSXNQcmVzZW50SW5TdHlsZShFbGVtZW50JiwgY29uc3QgRWRp
dGluZ1N0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBhZGRUb1N0eWxlKEVsZW1lbnQq
LCBFZGl0aW5nU3R5bGUqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IGF0dHJpYnV0ZVZhbHVlQXNDU1NWYWx1ZShFbGVtZW50KikgY29uc3Q7CiAgICAg
aW5saW5lIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUoKSBjb25zdCB7IHJldHVy
biBtX2F0dHJOYW1lOyB9CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBjbGFzcyBIVE1MRm9udFNpemVF
cXVpdmFsZW50IDogcHVibGljIEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50IHsKIHB1YmxpYzoKICAg
ICBIVE1MRm9udFNpemVFcXVpdmFsZW50KCk7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NT
VmFsdWU+IGF0dHJpYnV0ZVZhbHVlQXNDU1NWYWx1ZShFbGVtZW50KikgY29uc3Q7CisgICAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gYXR0cmlidXRlVmFsdWVBc0NTU1ZhbHVlKEVsZW1lbnQqKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKIEhUTUxGb250U2l6ZUVxdWl2YWxlbnQ6OkhUTUxGb250U2l6ZUVx
dWl2YWxlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA2Y2M0
ZDI2OGEzNDNmZWM4MDRiNGE1YjAzNjQxMzZhYjk0NjhiNDk1Li4wNGU4Y2M2ZDYzNzE2NGVlNzg2
ZDdhNzcwNDhlZDhjZjM4N2JkOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcApAQCAtMTQxLDE4ICsxNDEsMTggQEAgdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdl
Q29uZmlndXJhdGlvbiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAKIGNsYXNzIEVtcHR5UG9wdXBNZW51
IDogcHVibGljIFBvcHVwTWVudSB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNob3coY29u
c3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGhpZGUo
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZGlzY29ubmVjdENsaWVudCgpIHsgfQorICAgIHZvaWQgc2hvdyhjb25zdCBJbnRS
ZWN0JiwgRnJhbWVWaWV3KiwgaW50KSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGhpZGUoKSBvdmVy
cmlkZSB7IH0KKyAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgb3ZlcnJpZGUgeyB9CisgICAg
dm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgb3ZlcnJpZGUgeyB9CiB9OwogCiBjbGFzcyBFbXB0eVNl
YXJjaFBvcHVwTWVudSA6IHB1YmxpYyBTZWFyY2hQb3B1cE1lbnUgewogcHVibGljOgotICAgIHZp
cnR1YWwgUG9wdXBNZW51KiBwb3B1cE1lbnUoKSB7IHJldHVybiBtX3BvcHVwLmdldCgpOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBj
b25zdCBWZWN0b3I8UmVjZW50U2VhcmNoPiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVj
ZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgVmVjdG9yPFJlY2VudFNlYXJjaD4mKSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgUG9w
dXBNZW51KiBwb3B1cE1lbnUoKSBvdmVycmlkZSB7IHJldHVybiBtX3BvcHVwLmdldCgpOyB9Cisg
ICAgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVj
dG9yPFJlY2VudFNlYXJjaD4mKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8UmVjZW50U2VhcmNoPiYpIG92ZXJyaWRl
IHsgfQorICAgIGJvb2wgZW5hYmxlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKIHBy
aXZhdGU6CiAgICAgUmVmUHRyPEVtcHR5UG9wdXBNZW51PiBtX3BvcHVwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU2lua0RvY3VtZW50LmNwcAppbmRleCBhNTMwZmIwOGY4MmRmNDBkYmUyMTEwMmZhMmZh
Yjg4NjIzNzExODViLi5hMWJmNTJhM2MyODY5YTkwMmEwN2ViYWJlZDlmNjhhMzJhYjlmYzMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcApAQCAtNDQsNyArNDQsNyBAQCBw
cml2YXRlOgogICAgIH0KIAogICAgIC8vIElnbm9yZSBhbGwgZGF0YS4KLSAgICB2aXJ0dWFsIHZv
aWQgYXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KQorICAg
IHZvaWQgYXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXImLCBjb25zdCBjaGFyKiwgc2l6ZV90KSBv
dmVycmlkZQogICAgIHsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4
IGQ5MTQyMGM1OGE2YmNiNGE2NzU1MjMyZDc5MGNlZDE2NTUzODFkZjkuLmQxNzdiYzdlNzgyYThl
NDczNzBiZTQ2ZDVkMzEyNTFhNzZhOTU2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
QEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgU2NyaXB0Q2FsbFN0YWNrKiBzdGFja1Ry
YWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja1RyYWNlLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0g
ICAgdmlydHVhbCB2b2lkIGZpcmVkKCkKKyAgICB2b2lkIGZpcmVkKCkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIC8vIFRoaXMgb2JqZWN0IGdldHMgZGVsZXRlZCB3aGVuIHN0ZDo6dW5pcXVlX3B0
ciBmYWxscyBvdXQgb2Ygc2NvcGUuLgogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UG9zdE1lc3Nh
Z2VUaW1lcj4gdGltZXIodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rl
YnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3Zlcmxh
eXMuY3BwCmluZGV4IGM5Nzc4MWNjMWFmMmY4N2NiMGVlNmY3ZWNhM2Y2NjBlNTQ0Yjc5NjUuLmFl
N2FiMjI3NWExYTUzMWQxMDk5MWUwZjlhOWVmYTEwNzJlZmRjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC01NCwxMiArNTQsMTIgQEAgcHJvdGVjdGVk
OgogICAgIFJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiwgQ29sb3IpOwogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgdm9pZCBwYWdlT3ZlcmxheURlc3Ryb3llZChQYWdlT3ZlcmxheSYpIGZpbmFsOwot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2UqKSBmaW5h
bDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2UqKSBm
aW5hbDsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlY3QoUGFnZU92ZXJsYXkmLCBHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpIGZpbmFsOwotICAgIHZpcnR1YWwgYm9v
bCBtb3VzZUV2ZW50KFBhZ2VPdmVybGF5JiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgZmlu
YWw7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFNjcm9sbEZyYW1lKFBhZ2VPdmVybGF5JiwgRnJhbWUm
KSBmaW5hbDsKKyAgICB2b2lkIHBhZ2VPdmVybGF5RGVzdHJveWVkKFBhZ2VPdmVybGF5JikgZmlu
YWw7CisgICAgdm9pZCB3aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2UqKSBmaW5hbDsK
KyAgICB2b2lkIGRpZE1vdmVUb1BhZ2UoUGFnZU92ZXJsYXkmLCBQYWdlKikgZmluYWw7CisgICAg
dm9pZCBkcmF3UmVjdChQYWdlT3ZlcmxheSYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJl
Y3QmIGRpcnR5UmVjdCkgZmluYWw7CisgICAgYm9vbCBtb3VzZUV2ZW50KFBhZ2VPdmVybGF5Jiwg
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgZmluYWw7CisgICAgdm9pZCBkaWRTY3JvbGxGcmFt
ZShQYWdlT3ZlcmxheSYsIEZyYW1lJikgZmluYWw7CiAKIHByb3RlY3RlZDoKICAgICAvLyBSZXR1
cm5zIHRydWUgaWYgdGhlIHJlZ2lvbiBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IDQ1NWM3NTAz
Y2IwNmI5ODRmMDI4Y2QzZGMwNjQ1ZDU0ODQxNDg0MTMuLjg0YjdjNjRhNWVlOTIxOWE3Y2EwNDdj
NGRhZGEyMzkyZTA2MDliNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTQwMSw3ICs0MDEsNyBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVy
U3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1YWxzKGNv
bnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIGlmIChhID09IGIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTQ3OSw3ICs0NzksNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25z
dAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHls
ZSogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8vIElmIHRoZSBzdHlsZSBwb2lu
dGVycyBhcmUgdGhlIHNhbWUsIGRvbid0IGJvdGhlciBkb2luZyB0aGUgdGVzdC4KICAgICAgICAg
Ly8gSWYgZWl0aGVyIGlzIG51bGwsIHJldHVybiBmYWxzZS4gSWYgYm90aCBhcmUgbnVsbCwgcmV0
dXJuIHRydWUuCkBAIC01MDcsNyArNTA3LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJT
dHlsZSogYikgY29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29u
c3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICAvLyBJZiB0
aGUgc3R5bGUgcG9pbnRlcnMgYXJlIHRoZSBzYW1lLCBkb24ndCBib3RoZXIgZG9pbmcgdGhlIHRl
c3QuCiAgICAgICAgIC8vIElmIGVpdGhlciBpcyBudWxsLCByZXR1cm4gZmFsc2UuIElmIGJvdGgg
YXJlIG51bGwsIHJldHVybiB0cnVlLgpAQCAtNTM1LDcgKzUzNSw3IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwg
Y29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0CisgICAgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVy
U3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAg
ICAgICBpZiAoYSA9PSBiKQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTU1Nyw3ICs1NTcs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBibGVuZChjb25z
dCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHls
ZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICB2
b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNv
bnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNz
KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgKGRzdC0+Km1fc2V0dGVyKShibGVuZEZ1
bmMoYW5pbSwgKGEtPipQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8Q29sb3I+OjptX2dldHRlcikoKSwg
KGItPipQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8Q29sb3I+OjptX2dldHRlcikoKSwgcHJvZ3Jlc3Mp
KTsKICAgICB9CkBAIC01NzUsOSArNTc1LDkgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgYW5pbWF0aW9uSXNBY2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICBib29sIGFuaW1hdGlvbklzQWNjZWxlcmF0ZWQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9u
QmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0
IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChj
b25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJT
dHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIGZsb2F0IGZyb21PcGFjaXR5ID0gYS0+b3BhY2l0eSgpOwog
CkBAIC01OTQsOSArNTk0LDkgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgYW5pbWF0aW9uSXNBY2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICBib29sIGFuaW1hdGlvbklzQWNjZWxlcmF0ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5p
bSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0
eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBBbmlt
YXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwg
Y29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUKICAg
ICB7CiAgICAgICAgIGRzdC0+c2V0VHJhbnNmb3JtKGJsZW5kRnVuYyhhbmltLCBhLT50cmFuc2Zv
cm0oKSwgYi0+dHJhbnNmb3JtKCksIHByb2dyZXNzKSk7CiAgICAgfQpAQCAtNjEwLDkgKzYxMCw5
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGFuaW1hdGlvbklz
QWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBhbmltYXRpb25J
c0FjY2VsZXJhdGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmly
dHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBk
c3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHBy
b2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwg
UmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxl
KiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBkc3Qt
PnNldEZpbHRlcihibGVuZEZ1bmMoYW5pbSwgYS0+ZmlsdGVyKCksIGItPmZpbHRlcigpLCBwcm9n
cmVzcykpOwogICAgIH0KQEAgLTY3MCw3ICs2NzAsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0K
IAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJl
bmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBh
LCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlm
IChhID09IGIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTY5OSw3ICs2OTksNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBi
bGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBS
ZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29u
c3QKKyAgICB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxl
KiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91Ymxl
IHByb2dyZXNzKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgY29uc3QgU2hhZG93RGF0
YSogc2hhZG93QSA9IChhLT4qbV9nZXR0ZXIpKCk7CiAgICAgICAgIGNvbnN0IFNoYWRvd0RhdGEq
IHNoYWRvd0IgPSAoYi0+Km1fZ2V0dGVyKSgpOwpAQCAtNzkxLDcgKzc5MSw3IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHls
ZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0CisgICAgYm9vbCBlcXVhbHMoY29uc3Qg
UmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdCBvdmVycmlkZQogICAg
IHsKICAgICAgICAgaWYgKGEgPT0gYikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtODEy
LDcgKzgxMiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZyb21Db2xvciA9PSB0b0NvbG9y
OwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBh
bmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVy
U3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICB2b2lkIGJsZW5kKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBh
LCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdCBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgQ29sb3IgZnJvbUNvbG9yID0gKGEtPiptX2dldHRlcikoKTsKICAgICAg
ICAgQ29sb3IgdG9Db2xvciA9IChiLT4qbV9nZXR0ZXIpKCk7CkBAIC04NTEsMTEgKzg1MSwxMSBA
QCBwdWJsaWM6CiAgICAgICAgICwgbV92aXNpdGVkV3JhcHBlcihzdGQ6Om1ha2VfdW5pcXVlPFBy
b3BlcnR5V3JhcHBlck1heWJlSW52YWxpZENvbG9yPihwcm9wLCB2aXNpdGVkR2V0dGVyLCB2aXNp
dGVkU2V0dGVyKSkKICAgICB7CiAgICAgfQotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3Qg
UmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1
YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBtX3dyYXBwZXItPmVxdWFscyhhLCBiKSAmJiBt
X3Zpc2l0ZWRXcmFwcGVyLT5lcXVhbHMoYSwgYik7CiAgICAgfQotICAgIHZpcnR1YWwgdm9pZCBi
bGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBS
ZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29u
c3QKKyAgICB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxl
KiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91Ymxl
IHByb2dyZXNzKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV93cmFwcGVyLT5ibGVu
ZChhbmltLCBkc3QsIGEsIGIsIHByb2dyZXNzKTsKICAgICAgICAgbV92aXNpdGVkV3JhcHBlci0+
YmxlbmQoYW5pbSwgZHN0LCBhLCBiLCBwcm9ncmVzcyk7CkBAIC04OTAsNyArODkwLDcgQEAgcHVi
bGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IEZpbGxM
YXllciogYSwgY29uc3QgRmlsbExheWVyKiBiKSBjb25zdAorICAgIGJvb2wgZXF1YWxzKGNvbnN0
IEZpbGxMYXllciogYSwgY29uc3QgRmlsbExheWVyKiBiKSBjb25zdCBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgaWYgKGEgPT0gYikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtOTQ5LDcg
Kzk0OSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGVxdWFs
cyhjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYikgY29uc3QKKyAgICBib29s
IGVxdWFscyhjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYikgY29uc3Qgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgaWYgKGEgPT0gYikKICAgICAgICAgICAgcmV0dXJuIHRydWU7
CkBAIC05OTUsNyArOTk1LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmly
dHVhbCBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUq
IGIpIGNvbnN0CisgICAgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJl
bmRlclN0eWxlKiBiKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGEgPT0gYikK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29u
c3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5
bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAg
dm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBj
b25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVz
cykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGNvbnN0IEZpbGxMYXllciogYUxheWVy
ID0gKGEtPiptX2xheWVyc0dldHRlcikoKTsKICAgICAgICAgY29uc3QgRmlsbExheWVyKiBiTGF5
ZXIgPSAoYi0+Km1fbGF5ZXJzR2V0dGVyKSgpOwpAQCAtMTA0Niw5ICsxMDQ2LDkgQEAgcHVibGlj
OgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNTaG9ydGhhbmRXcmFwcGVyKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgaXNTaG9ydGhhbmRXcmFwcGVyKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGVxdWFscyhj
b25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0CisgICAgYm9v
bCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25z
dCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGEgPT0gYikKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMTA2Miw3ICsxMDYyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSog
YW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRl
clN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBB
bmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSog
YSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIGZvciAoYXV0byYgd3JhcHBlciA6IG1fcHJvcGVydHlXcmFwcGVycykK
ICAgICAgICAgICAgIHdyYXBwZXItPmJsZW5kKGFuaW0sIGRzdCwgYSwgYiwgcHJvZ3Jlc3MpOwpA
QCAtMTA4Miw3ICsxMDgyLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikg
Y29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVy
U3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoYSA9PSBiKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMDkyLDcgKzEwOTIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhLT5mbGV4QmFzaXMoKSA9PSBiLT5mbGV4QmFzaXMoKSAmJiBhLT5mbGV4R3Jv
dygpID09IGItPmZsZXhHcm93KCkgJiYgYS0+ZmxleFNocmluaygpID09IGItPmZsZXhTaHJpbmso
KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSog
YW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRl
clN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBB
bmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSog
YSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIGRzdC0+c2V0RmxleEJhc2lzKGJsZW5kRnVuYyhhbmltLCBhLT5mbGV4
QmFzaXMoKSwgYi0+ZmxleEJhc2lzKCksIHByb2dyZXNzKSk7CiAgICAgICAgIGRzdC0+c2V0Rmxl
eEdyb3coYmxlbmRGdW5jKGFuaW0sIGEtPmZsZXhHcm93KCksIGItPmZsZXhHcm93KCksIHByb2dy
ZXNzKSk7CkBAIC0xMTExLDcgKzExMTEsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAg
IHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0
eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25z
dCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChhID09
IGIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNDEsNyArMTE0MSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5k
KGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRl
clN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAor
ICAgIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRz
dCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJv
Z3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoKGEtPiptX3BhaW50VHlw
ZUdldHRlcikoKSAhPSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9SR0JDT0xPUgogICAgICAgICAg
ICAgfHwgKGItPiptX3BhaW50VHlwZUdldHRlcikoKSAhPSBTVkdQYWludDo6U1ZHX1BBSU5UVFlQ
RV9SR0JDT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAK
aW5kZXggM2M1NTQ3NDA4ZDM5MDZkYzIwYjRmMDFiMGJhZjMzYzRhM2EzZDM3OC4uNmNkMDMyM2Rl
ZGIyZTUyZDYxOGE1NTBkOGFjNTVjYWM4NzdiNWI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTkyLDE1ICs5MiwxNyBAQCBjbGFzcyBSZXNvdXJj
ZUhhbmRsZVN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBSZXNvdXJjZUhhbmRsZUNsaWVudCwgcHVi
bGljIFN0cmVhbQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gUmVzb3VyY2VIYW5kbGVDbGll
bnQgdmlydHVhbCBtZXRob2RzLgotICAgICAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRlUmVh
ZEJ1ZmZlcihzaXplX3QgcmVxdWVzdGVkU2l6ZSwgc2l6ZV90JiBhY3R1YWxTaXplKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUJ1ZmZlcihSZXNvdXJjZUhhbmRsZSosIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwg
aW50IGVuY29kZWRMZW5ndGgpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOworI2lmIFVTRShT
T1VQKQorICAgICAgICBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3Rl
ZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICAgICAgdm9p
ZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRl
OworICAgICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hh
ciosIHVuc2lnbmVkLCBpbnQpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVCdWZm
ZXIoUmVzb3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVk
TGVuZ3RoKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNl
SGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBk
aWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwor
ICAgICAgICB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7CiAKICAgICAg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX3Jlc291cmNlOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwCmluZGV4IGFlMjRmYjA5NzRlYzBhMjliMTUy
MmFmMDIzYTQ3MGZiYTdkM2Y3MjcuLmMwYjA3NjU5ZTZiZGM4MDQ5ZTNhYWM0YzAzMzIwYjE3YWVj
NDIzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcApA
QCAtNTIsMTQgKzUyLDE0IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB+Q1N0cmluZ0J1
ZmZlcigpIHsgfQogCi0gICAgdmlydHVhbCBjaGFyKiBhbGxvY2F0ZShzaXplX3Qgc2l6ZSkKKyAg
ICBjaGFyKiBhbGxvY2F0ZShzaXplX3Qgc2l6ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGNo
YXIqIHB0cjsKICAgICAgICAgbV9idWZmZXIgPSBDU3RyaW5nOjpuZXdVbmluaXRpYWxpemVkKHNp
emUsIHB0cik7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lk
IGNvcHkoY29uc3QgQ1N0cmluZyYgc291cmNlKQorICAgIHZvaWQgY29weShjb25zdCBDU3RyaW5n
JiBzb3VyY2UpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBtX2J1ZmZlciA9IHNvdXJjZTsKICAg
ICB9CkBAIC03OCwxNCArNzgsMTQgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5WZWN0
b3JDaGFyQXBwZW5kQnVmZmVyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGNoYXIqIGFsbG9jYXRlKHNp
emVfdCBzaXplKQorICAgIGNoYXIqIGFsbG9jYXRlKHNpemVfdCBzaXplKSBvdmVycmlkZQogICAg
IHsKICAgICAgICAgc2l6ZV90IG9sZFNpemUgPSBtX2J1ZmZlci5zaXplKCk7CiAgICAgICAgIG1f
YnVmZmVyLmdyb3cob2xkU2l6ZSArIHNpemUpOwogICAgICAgICByZXR1cm4gbV9idWZmZXIuZGF0
YSgpICsgb2xkU2l6ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29weShjb25zdCBDU3Ry
aW5nJiBzb3VyY2UpCisgICAgdm9pZCBjb3B5KGNvbnN0IENTdHJpbmcmIHNvdXJjZSkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIG1fYnVmZmVyLmFwcGVuZChzb3VyY2UuZGF0YSgpLCBzb3VyY2Uu
bGVuZ3RoKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
WE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
WE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCAwZTc3ZWFjNGRhZDMwYzBmZGRiODhl
N2UzMzU5MWY5ZTExOGY2NGIyLi4xNDYyOTQ1MDEzM2NkYWY2ODEwZTBjOTgwMGE4YmYyNGM3N2M4
OTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFy
c2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVu
dFBhcnNlckxpYnhtbDIuY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHhtbEZyZWUoYXR0cmlidXRlcyk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZv
aWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQorICAgICAgICB2b2lkIGNhbGwoWE1M
RG9jdW1lbnRQYXJzZXIqIHBhcnNlcikgb3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAg
cGFyc2VyLT5zdGFydEVsZW1lbnROcyh4bWxMb2NhbE5hbWUsIHhtbFByZWZpeCwgeG1sVVJJLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9uYW1lc3BhY2VzLCBjb25z
dF9jYXN0PGNvbnN0IHhtbENoYXIqKj4obmFtZXNwYWNlcyksCkBAIC0yNDUsNyArMjQ1LDcgQEAg
cHJpdmF0ZToKICAgICB9OwogCiAgICAgc3RydWN0IFBlbmRpbmdFbmRFbGVtZW50TlNDYWxsYmFj
ayA6IHB1YmxpYyBQZW5kaW5nQ2FsbGJhY2sgewotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChY
TUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQorICAgICAgICB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQ
YXJzZXIqIHBhcnNlcikgb3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgcGFyc2VyLT5l
bmRFbGVtZW50TnMoKTsKICAgICAgICAgfQpAQCAtMjU3LDcgKzI1Nyw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICB4bWxGcmVlKHMpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lk
IGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxsKFhNTERv
Y3VtZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIHBh
cnNlci0+Y2hhcmFjdGVycyhzLCBsZW4pOwogICAgICAgICB9CkBAIC0yNzMsNyArMjczLDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHhtbEZyZWUoZGF0YSk7CiAgICAgICAgIH0KIAotICAgICAg
ICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQorICAgICAgICB2
b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikgb3ZlcnJpZGUKICAgICAgICAgewog
ICAgICAgICAgICAgcGFyc2VyLT5wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24odGFyZ2V0LCBkYXRhKTsK
ICAgICAgICAgfQpAQCAtMjg4LDcgKzI4OCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB4bWxG
cmVlKHMpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1l
bnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBw
YXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIHBhcnNlci0+Y2RhdGFCbG9j
ayhzLCBsZW4pOwogICAgICAgICB9CkBAIC0zMDMsNyArMzAzLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIHhtbEZyZWUocyk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fs
bChYTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQorICAgICAgICB2b2lkIGNhbGwoWE1MRG9jdW1l
bnRQYXJzZXIqIHBhcnNlcikgb3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgcGFyc2Vy
LT5jb21tZW50KHMpOwogICAgICAgICB9CkBAIC0zMTksNyArMzE5LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHhtbEZyZWUoc3lzdGVtSUQpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVh
bCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxs
KFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHBhcnNlci0+aW50ZXJuYWxTdWJzZXQobmFtZSwgZXh0ZXJuYWxJRCwgc3lzdGVtSUQpOwog
ICAgICAgICB9CkBAIC0zMzUsNyArMzM1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHhtbEZy
ZWUobWVzc2FnZSk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FsbChYTUxE
b2N1bWVudFBhcnNlciogcGFyc2VyKQorICAgICAgICB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJz
ZXIqIHBhcnNlcikgb3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgcGFyc2VyLT5oYW5k
bGVFcnJvcih0eXBlLCByZWludGVycHJldF9jYXN0PGNoYXIqPihtZXNzYWdlKSwgVGV4dFBvc2l0
aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikpOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273014</attachid>
            <date>2016-03-04 10:23:47 -0800</date>
            <delta_ts>2016-03-04 13:26:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155021-20160304212331.patch</filename>
            <type>text/plain</type>
            <size>23693</size>
            <attacher name="Konstantin Tokarev">annulen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDEzZjhiZmMzZjdjMDI3
YzM1NGM3YmRlZmEwZjllOTMyNDNmY2M2NC4uNWJiMDY5YmI4Y2UwNTZlZGFjMzQ4ODdhZTdhMWRl
NDAyNmNmYTIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTAzLTA0ICBLb25z
dGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KKworICAgICAgICBBZGRlZCBtaXNz
aW5nIG92ZXJyaWRlIHNwZWNpZmllcnMgdW5kZXIgU291cmNlL1dlYkNvcmUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUwMjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVk
LgorCisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgICogZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAg
ICAgICAqIGxvYWRlci9TaW5rRG9jdW1lbnQuY3BwOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKiBwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcDoKKyAgICAgICAgKiBw
YWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIEFsc28gYWRkZWQgI2lmKFNPVVApIGd1YXJkIHRvCisgICAgICAgIFJlc291cmNlSGFuZGxl
U3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIKKyAgICAgICAgYmVjYXVzZSBp
dCBpcyBub3QgYW4gb3ZlcnJpZGRlbiBtZXRob2Qgb3RoZXJ3aXNlLgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTGluZUVuZGluZy5jcHA6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVu
dFBhcnNlckxpYnhtbDIuY3BwOgorCiAyMDE2LTAzLTA0ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1v
dGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBJbmZvcm0gV2ViS2l0IGFuZCBXZWJDb3JlIGlmIGEg
cGFnZSBpcyBjb250cm9sbGVkIGJ5IGF1dG9tYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pz
b2JqZWN0LmNwcAppbmRleCA0MGViYjgwY2UwNmQxYmY0OTc2NTg0YWJkOWU1OTBiNzJiMzdhMmVk
Li5hMzk4NWQ3NmJlOGFlMjNlMzg0Mjg0M2RmZjdkNTA0YmYzNTdjYTRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9OUF9qc29iamVjdC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIHN0cnVjdCBSb290T2JqZWN0SW52YWxpZGF0aW9uQ2FsbGJhY2sgOiBwdWJsaWMg
Um9vdE9iamVjdDo6SW52YWxpZGF0aW9uQ2FsbGJhY2sgewotICAgICAgICB2aXJ0dWFsIHZvaWQg
b3BlcmF0b3IoKShSb290T2JqZWN0Kik7CisgICAgICAgIHZvaWQgb3BlcmF0b3IoKShSb290T2Jq
ZWN0Kikgb3ZlcnJpZGU7CiAgICAgfTsKICAgICBSb290T2JqZWN0SW52YWxpZGF0aW9uQ2FsbGJh
Y2sgbV9pbnZhbGlkYXRpb25DYWxsYmFjazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQu
Y3BwCmluZGV4IDFmYzg5MzkyNWFjZjBhOTdjMjE3MDM5MTAxYTc4ZDM2Yzk0ZWJmZGMuLjU0NWZh
NTJmOTBjNTA4NWFjNTk3MzFmY2YyM2VkNWY5M2I0ZTRmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5jcHAKQEAgLTUyLDEzICs1MiwxMyBAQCBwdWJsaWM6CiAgICAgU3R5bGVTaGVl
dENTU1J1bGVMaXN0KENTU1N0eWxlU2hlZXQqIHNoZWV0KSA6IG1fc3R5bGVTaGVldChzaGVldCkg
eyB9CiAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCByZWYoKSB7IG1fc3R5bGVTaGVl
dC0+cmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSB7IG1fc3R5bGVTaGVldC0+ZGVy
ZWYoKTsgfQotICAgIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9zdHlsZVNoZWV0LT5sZW5ndGgoKTsgfQotICAgIHZpcnR1YWwgQ1NTUnVsZSogaXRlbSh1
bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVNoZWV0LT5pdGVtKGluZGV4KTsg
fQotICAgIAotICAgIHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3R5bGVTaGVldDsgfQorICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBtX3N0eWxl
U2hlZXQtPnJlZigpOyB9CisgICAgdm9pZCBkZXJlZigpIG92ZXJyaWRlIHsgbV9zdHlsZVNoZWV0
LT5kZXJlZigpOyB9CisKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3N0eWxlU2hlZXQtPmxlbmd0aCgpOyB9CisgICAgQ1NTUnVsZSogaXRlbSh1bnNpZ25l
ZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdHlsZVNoZWV0LT5pdGVtKGluZGV4
KTsgfQorCisgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fc3R5bGVTaGVldDsgfQogCiAgICAgQ1NTU3R5bGVTaGVldCogbV9zdHlsZVNoZWV0
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAppbmRleCA4N2ZiYmJk
ODNmM2JiZjc3MGI4NjJhNTc4NDAyNDBjMjZjMjI3OGQzLi5iMjdhNGMxZDA1NGQ4YTMwODdiYzNl
ZWU2NGYxODJkNDE3MGNmYzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRp
b25PYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIu
Y3BwCkBAIC0xNjcsOCArMTY3LDggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLXByaXZhdGU6
ICAgIAotICAgIHZpcnR1YWwgUmVzdWx0IHJ1bigpCitwcml2YXRlOgorICAgIFJlc3VsdCBydW4o
KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWljcm90
YXNrUXVldWVkRmxhZyA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EaWN0YXRp
b25Db21tYW5kLmNwcAppbmRleCBiYzViNmE1ZjE5Zjk2NmM2MDFmMTZlZjhhOTM3ZDQwYTViMzMy
NjMzLi45OTI5NWM2ZGZmZTY4YmJmNmQ2YmMzN2Y4YTQ1NTc5OGRmNTc4ZTk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0YXRpb25NYXJrZXJTdXBw
bGllcihhbHRlcm5hdGl2ZXMpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWFya2Vy
c1RvVGV4dE5vZGUoVGV4dCogdGV4dE5vZGUsIHVuc2lnbmVkIG9mZnNldE9mSW5zZXJ0aW9uLCBj
b25zdCBTdHJpbmcmIHRleHRUb0JlSW5zZXJ0ZWQpCisgICAgdm9pZCBhZGRNYXJrZXJzVG9UZXh0
Tm9kZShUZXh0KiB0ZXh0Tm9kZSwgdW5zaWduZWQgb2Zmc2V0T2ZJbnNlcnRpb24sIGNvbnN0IFN0
cmluZyYgdGV4dFRvQmVJbnNlcnRlZCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIERvY3VtZW50
TWFya2VyQ29udHJvbGxlciYgbWFya2VyQ29udHJvbGxlciA9IHRleHROb2RlLT5kb2N1bWVudCgp
Lm1hcmtlcnMoKTsKICAgICAgICAgZm9yIChhdXRvJiBhbHRlcm5hdGl2ZSA6IG1fYWx0ZXJuYXRp
dmVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKaW5kZXggNGM3OTEw
MzM0YWRlZjBhOTY0YWI2ODlhNzQzNzBjZTczOWY4ODc5NC4uMjMxNGRlNTczYzVjNGJlZmZlMGE2
MmJiNjBmMjhhZWY2ZTcyMGQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmNwcApAQCAtMjUxLDEwICsyNTEsMTAgQEAgcHVibGljOgogICAgIEhUTUxBdHRyaWJ1dGVFcXVp
dmFsZW50KENTU1Byb3BlcnR5SUQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKTsKICAgICBIVE1MQXR0cmlidXRlRXF1aXZhbGVudChD
U1NQcm9wZXJ0eUlELCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSk7CiAKLSAgICBib29s
IG1hdGNoZXMoY29uc3QgRWxlbWVudCYgZWxlbWVudCkgY29uc3QgeyByZXR1cm4gSFRNTEVsZW1l
bnRFcXVpdmFsZW50OjptYXRjaGVzKGVsZW1lbnQpICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKG1f
YXR0ck5hbWUpOyB9Ci0gICAgdmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZSgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgdmFsdWVJc1ByZXNlbnRJblN0eWxlKEVsZW1l
bnQmLCBjb25zdCBFZGl0aW5nU3R5bGUmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkVG9T
dHlsZShFbGVtZW50KiwgRWRpdGluZ1N0eWxlKikgY29uc3Q7CisgICAgYm9vbCBtYXRjaGVzKGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEhUTUxFbGVtZW50
RXF1aXZhbGVudDo6bWF0Y2hlcyhlbGVtZW50KSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShtX2F0
dHJOYW1lKTsgfQorICAgIGJvb2wgaGFzQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIGJvb2wgdmFsdWVJc1ByZXNlbnRJblN0eWxlKEVsZW1lbnQmLCBjb25z
dCBFZGl0aW5nU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGFkZFRvU3R5bGUoRWxl
bWVudCosIEVkaXRpbmdTdHlsZSopIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gYXR0cmlidXRlVmFsdWVBc0NTU1ZhbHVlKEVsZW1lbnQqKSBjb25zdDsK
ICAgICBpbmxpbmUgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fYXR0ck5hbWU7IH0KIApAQCAtMzA1LDcgKzMwNSw3IEBAIGNsYXNzIEhUTUxGb250
U2l6ZUVxdWl2YWxlbnQgOiBwdWJsaWMgSFRNTEF0dHJpYnV0ZUVxdWl2YWxlbnQgewogcHVibGlj
OgogICAgIEhUTUxGb250U2l6ZUVxdWl2YWxlbnQoKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gYXR0cmlidXRlVmFsdWVBc0NTU1ZhbHVlKEVsZW1lbnQqKSBjb25zdDsKKyAg
ICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBhdHRyaWJ1dGVWYWx1ZUFzQ1NTVmFsdWUoRWxlbWVudCop
IGNvbnN0IG92ZXJyaWRlOwogfTsKIAogSFRNTEZvbnRTaXplRXF1aXZhbGVudDo6SFRNTEZvbnRT
aXplRXF1aXZhbGVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4
IDZjYzRkMjY4YTM0M2ZlYzgwNGI0YTViMDM2NDEzNmFiOTQ2OGI0OTUuLjA0ZThjYzZkNjM3MTY0
ZWU3ODZkN2E3NzA0OGVkOGNmMzg3YmQ5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCkBAIC0xNDEsMTggKzE0MSwxOCBAQCB2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRz
KFBhZ2VDb25maWd1cmF0aW9uJiBwYWdlQ29uZmlndXJhdGlvbikKIAogY2xhc3MgRW1wdHlQb3B1
cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgc2hv
dyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
aGlkZSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyB9CisgICAgdm9pZCBzaG93KGNvbnN0
IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgaGlkZSgp
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSBvdmVycmlkZSB7IH0KIH07CiAKIGNsYXNzIEVt
cHR5U2VhcmNoUG9wdXBNZW51IDogcHVibGljIFNlYXJjaFBvcHVwTWVudSB7CiBwdWJsaWM6Ci0g
ICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpIHsgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIGNvbnN0IFZlY3RvcjxSZWNlbnRTZWFyY2g+JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGxv
YWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8UmVjZW50U2VhcmNo
PiYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICBQb3B1cE1lbnUqIHBvcHVwTWVudSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fcG9wdXAuZ2V0KCk7
IH0KKyAgICB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25z
dCBWZWN0b3I8UmVjZW50U2VhcmNoPiYpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgbG9hZFJlY2Vu
dFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxSZWNlbnRTZWFyY2g+Jikgb3Zl
cnJpZGUgeyB9CisgICAgYm9vbCBlbmFibGVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
IAogcHJpdmF0ZToKICAgICBSZWZQdHI8RW1wdHlQb3B1cE1lbnU+IG1fcG9wdXA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCmluZGV4IGE1MzBmYjA4ZjgyZGY0MGRiZTIxMTAy
ZmEyZmFiODg2MjM3MTE4NWIuLmExYmY1MmEzYzI4NjlhOTAyYTA3ZWJhYmVkOWY2OGEzMmFiOWZj
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8gSWdub3JlIGFsbCBkYXRhLgotICAgIHZpcnR1
YWwgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3Qp
CisgICAgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXpl
X3QpIG92ZXJyaWRlCiAgICAgewogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
aW5kZXggZDkxNDIwYzU4YTZiY2I0YTY3NTUyMzJkNzkwY2VkMTY1NTM4MWRmOS4uZDE3N2JjN2U3
ODJhOGU0NzM3MGJlNDZkNWQzMTI1MWE3NmE5NTZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIHB1YmxpYzoKICAgICBTY3JpcHRDYWxsU3RhY2sqIHN0
YWNrVHJhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrVHJhY2UuZ2V0KCk7IH0KIAogcHJpdmF0
ZToKLSAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKQorICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgLy8gVGhpcyBvYmplY3QgZ2V0cyBkZWxldGVkIHdoZW4gc3RkOjp1bmlx
dWVfcHRyIGZhbGxzIG91dCBvZiBzY29wZS4uCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQb3N0
TWVzc2FnZVRpbWVyPiB0aW1lcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA0NTVjNzUwM2NiMDZi
OTg0ZjAyOGNkM2RjMDY0NWQ1NDg0MTQ4NDEzLi44NGI3YzY0YTVlZTkyMTlhN2NhMDQ3YzRkYWRh
MjM5MmUwNjA5Yjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
U1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC00MDEsNyArNDAxLDcgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxl
KiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBS
ZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBpZiAoYSA9PSBiKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00Nzks
NyArNDc5LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXF1
YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QKKyAg
ICBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIp
IGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICAvLyBJZiB0aGUgc3R5bGUgcG9pbnRlcnMg
YXJlIHRoZSBzYW1lLCBkb24ndCBib3RoZXIgZG9pbmcgdGhlIHRlc3QuCiAgICAgICAgIC8vIElm
IGVpdGhlciBpcyBudWxsLCByZXR1cm4gZmFsc2UuIElmIGJvdGggYXJlIG51bGwsIHJldHVybiB0
cnVlLgpAQCAtNTA3LDcgKzUwNyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmly
dHVhbCBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUq
IGIpIGNvbnN0CisgICAgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJl
bmRlclN0eWxlKiBiKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgLy8gSWYgdGhlIHN0
eWxlIHBvaW50ZXJzIGFyZSB0aGUgc2FtZSwgZG9uJ3QgYm90aGVyIGRvaW5nIHRoZSB0ZXN0Lgog
ICAgICAgICAvLyBJZiBlaXRoZXIgaXMgbnVsbCwgcmV0dXJuIGZhbHNlLiBJZiBib3RoIGFyZSBu
dWxsLCByZXR1cm4gdHJ1ZS4KQEAgLTUzNSw3ICs1MzUsNyBAQCBwdWJsaWM6CiAgICAgewogICAg
IH0KIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0
IFJlbmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxl
KiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAg
aWYgKGEgPT0gYikKICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC01NTcsNyArNTU3LDcgQEAg
cHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5p
bWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEs
IGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBi
bGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBS
ZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29u
c3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIChkc3QtPiptX3NldHRlcikoYmxlbmRGdW5jKGFu
aW0sIChhLT4qUHJvcGVydHlXcmFwcGVyR2V0dGVyPENvbG9yPjo6bV9nZXR0ZXIpKCksIChiLT4q
UHJvcGVydHlXcmFwcGVyR2V0dGVyPENvbG9yPjo6bV9nZXR0ZXIpKCksIHByb2dyZXNzKSk7CiAg
ICAgfQpAQCAtNTc1LDkgKzU3NSw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmly
dHVhbCBib29sIGFuaW1hdGlvbklzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisgICAgYm9vbCBhbmltYXRpb25Jc0FjY2VsZXJhdGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2Uq
IGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5k
ZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxlbmQoY29uc3Qg
QW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUq
IGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRl
CiAgICAgewogICAgICAgICBmbG9hdCBmcm9tT3BhY2l0eSA9IGEtPm9wYWNpdHkoKTsKIApAQCAt
NTk0LDkgKzU5NCw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29s
IGFuaW1hdGlvbklzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9v
bCBhbmltYXRpb25Jc0FjY2VsZXJhdGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJl
bmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSog
YiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9u
QmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0
IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAgewog
ICAgICAgICBkc3QtPnNldFRyYW5zZm9ybShibGVuZEZ1bmMoYW5pbSwgYS0+dHJhbnNmb3JtKCks
IGItPnRyYW5zZm9ybSgpLCBwcm9ncmVzcykpOwogICAgIH0KQEAgLTYxMCw5ICs2MTAsOSBAQCBw
dWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBhbmltYXRpb25Jc0FjY2Vs
ZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgYW5pbWF0aW9uSXNBY2Nl
bGVyYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBj
b25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVz
cykgY29uc3QKKyAgICB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRl
clN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwg
ZG91YmxlIHByb2dyZXNzKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgZHN0LT5zZXRG
aWx0ZXIoYmxlbmRGdW5jKGFuaW0sIGEtPmZpbHRlcigpLCBiLT5maWx0ZXIoKSwgcHJvZ3Jlc3Mp
KTsKICAgICB9CkBAIC02NzAsNyArNjcwLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJT
dHlsZSogYikgY29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29u
c3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoYSA9
PSBiKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC02OTksNyArNjk5LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQo
Y29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVy
U3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0Cisg
ICAgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0
LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9n
cmVzcykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGNvbnN0IFNoYWRvd0RhdGEqIHNo
YWRvd0EgPSAoYS0+Km1fZ2V0dGVyKSgpOwogICAgICAgICBjb25zdCBTaGFkb3dEYXRhKiBzaGFk
b3dCID0gKGItPiptX2dldHRlcikoKTsKQEAgLTc5MSw3ICs3OTEsNyBAQCBwdWJsaWM6CiAgICAg
ewogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEs
IGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRl
clN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIGlmIChhID09IGIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTgxMiw3ICs4
MTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmcm9tQ29sb3IgPT0gdG9Db2xvcjsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwg
UmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxl
KiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBBbmltYXRp
b25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29u
c3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIENvbG9yIGZyb21Db2xvciA9IChhLT4qbV9nZXR0ZXIpKCk7CiAgICAgICAgIENv
bG9yIHRvQ29sb3IgPSAoYi0+Km1fZ2V0dGVyKSgpOwpAQCAtODUxLDExICs4NTEsMTEgQEAgcHVi
bGljOgogICAgICAgICAsIG1fdmlzaXRlZFdyYXBwZXIoc3RkOjptYWtlX3VuaXF1ZTxQcm9wZXJ0
eVdyYXBwZXJNYXliZUludmFsaWRDb2xvcj4ocHJvcCwgdmlzaXRlZEdldHRlciwgdmlzaXRlZFNl
dHRlcikpCiAgICAgewogICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRl
clN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QKKyAgICBib29sIGVxdWFscyhj
b25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRl
CiAgICAgewogICAgICAgICByZXR1cm4gbV93cmFwcGVyLT5lcXVhbHMoYSwgYikgJiYgbV92aXNp
dGVkV3JhcHBlci0+ZXF1YWxzKGEsIGIpOwogICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQo
Y29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVy
U3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0Cisg
ICAgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0
LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9n
cmVzcykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIG1fd3JhcHBlci0+YmxlbmQoYW5p
bSwgZHN0LCBhLCBiLCBwcm9ncmVzcyk7CiAgICAgICAgIG1fdmlzaXRlZFdyYXBwZXItPmJsZW5k
KGFuaW0sIGRzdCwgYSwgYiwgcHJvZ3Jlc3MpOwpAQCAtODkwLDcgKzg5MCw3IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBGaWxsTGF5ZXIq
IGEsIGNvbnN0IEZpbGxMYXllciogYikgY29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBGaWxs
TGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIGlmIChhID09IGIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk0OSw3ICs5NDks
NyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29u
c3QgRmlsbExheWVyKiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIpIGNvbnN0CisgICAgYm9vbCBlcXVh
bHMoY29uc3QgRmlsbExheWVyKiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIpIGNvbnN0IG92ZXJyaWRl
CiAgICAgewogICAgICAgIGlmIChhID09IGIpCiAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
OTk1LDcgKzk5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIHZpcnR1YWwg
Ym9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBj
b25zdAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJT
dHlsZSogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChhID09IGIpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMTYsNyArMTAxNiw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBh
LCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQg
YmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3Qg
UmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBjb25zdCBGaWxsTGF5ZXIqIGFMYXllciA9IChh
LT4qbV9sYXllcnNHZXR0ZXIpKCk7CiAgICAgICAgIGNvbnN0IEZpbGxMYXllciogYkxheWVyID0g
KGItPiptX2xheWVyc0dldHRlcikoKTsKQEAgLTEwNDYsOSArMTA0Niw5IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGlzU2hvcnRoYW5kV3JhcHBlcigpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzU2hvcnRoYW5kV3JhcHBlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3Qg
UmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1
YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIGlmIChhID09IGIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTEwNjIsNyArMTA2Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0s
IFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHls
ZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0
aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNv
bnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBmb3IgKGF1dG8mIHdyYXBwZXIgOiBtX3Byb3BlcnR5V3JhcHBlcnMpCiAgICAg
ICAgICAgICB3cmFwcGVyLT5ibGVuZChhbmltLCBkc3QsIGEsIGIsIHByb2dyZXNzKTsKQEAgLTEw
ODIsNyArMTA4Miw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29s
IGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0
CisgICAgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxl
KiBiKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKGEgPT0gYikKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYS0+ZmxleEJhc2lzKCkgPT0gYi0+ZmxleEJhc2lzKCkgJiYgYS0+ZmxleEdyb3coKSA9
PSBiLT5mbGV4R3JvdygpICYmIGEtPmZsZXhTaHJpbmsoKSA9PSBiLT5mbGV4U2hyaW5rKCk7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0s
IFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHls
ZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0
aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNv
bnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBkc3QtPnNldEZsZXhCYXNpcyhibGVuZEZ1bmMoYW5pbSwgYS0+ZmxleEJhc2lz
KCksIGItPmZsZXhCYXNpcygpLCBwcm9ncmVzcykpOwogICAgICAgICBkc3QtPnNldEZsZXhHcm93
KGJsZW5kRnVuYyhhbmltLCBhLT5mbGV4R3JvdygpLCBiLT5mbGV4R3JvdygpLCBwcm9ncmVzcykp
OwpAQCAtMTExMSw3ICsxMTExLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSog
YikgY29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVu
ZGVyU3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoYSA9PSBiKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMTQxLDcgKzExNDEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBibGVuZChjb25z
dCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHls
ZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICB2
b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNv
bnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNz
KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKChhLT4qbV9wYWludFR5cGVHZXR0
ZXIpKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfUkdCQ09MT1IKICAgICAgICAgICAgIHx8
IChiLT4qbV9wYWludFR5cGVHZXR0ZXIpKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfUkdC
Q09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4
IDNjNTU0NzQwOGQzOTA2ZGMyMGI0ZjAxYjBiYWYzM2M0YTNhM2QzNzguLjZjZDAzMjNkZWRiMmU1
MmQ2MThhNTUwZDhhYzU1Y2FjODc3YjViNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwCkBAIC05MiwxNSArOTIsMTcgQEAgY2xhc3MgUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBT
dHJlYW0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIFJlc291cmNlSGFuZGxlQ2xpZW50IHZp
cnR1YWwgbWV0aG9kcy4KLSAgICAgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0ZVJlYWRCdWZm
ZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFsU2l6ZSk7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGludCBl
bmNvZGVkTGVuZ3RoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKTsKKyNpZiBVU0UoU09VUCkK
KyAgICAgICAgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXpl
LCBzaXplX3QmIGFjdHVhbFNpemUpIG92ZXJyaWRlOworI2VuZGlmCisgICAgICAgIHZvaWQgd2ls
bFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1
bnNpZ25lZCwgaW50KSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJl
c291cmNlSGFuZGxlKiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBpbnQgZW5jb2RlZExlbmd0
aCkgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkRmFp
bChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7CisgICAgICAgIHZv
aWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwogCiAgICAgICAgIFJl
ZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9yZXNvdXJjZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcAppbmRleCBhZTI0ZmIwOTc0ZWMwYTI5YjE1MjJhZjAy
M2E0NzBmYmE3ZDNmNzI3Li5jMGIwNzY1OWU2YmRjODA0OWUzYWFjNGMwMzMyMGIxN2FlYzQyM2Uw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5jcHAKQEAgLTUy
LDE0ICs1MiwxNCBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgfkNTdHJpbmdCdWZmZXIo
KSB7IH0KIAotICAgIHZpcnR1YWwgY2hhciogYWxsb2NhdGUoc2l6ZV90IHNpemUpCisgICAgY2hh
ciogYWxsb2NhdGUoc2l6ZV90IHNpemUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBjaGFyKiBw
dHI7CiAgICAgICAgIG1fYnVmZmVyID0gQ1N0cmluZzo6bmV3VW5pbml0aWFsaXplZChzaXplLCBw
dHIpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBjb3B5
KGNvbnN0IENTdHJpbmcmIHNvdXJjZSkKKyAgICB2b2lkIGNvcHkoY29uc3QgQ1N0cmluZyYgc291
cmNlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9idWZmZXIgPSBzb3VyY2U7CiAgICAgfQpA
QCAtNzgsMTQgKzc4LDE0IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB+VmVjdG9yQ2hh
ckFwcGVuZEJ1ZmZlcigpIHsgfQogCi0gICAgdmlydHVhbCBjaGFyKiBhbGxvY2F0ZShzaXplX3Qg
c2l6ZSkKKyAgICBjaGFyKiBhbGxvY2F0ZShzaXplX3Qgc2l6ZSkgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIHNpemVfdCBvbGRTaXplID0gbV9idWZmZXIuc2l6ZSgpOwogICAgICAgICBtX2J1ZmZl
ci5ncm93KG9sZFNpemUgKyBzaXplKTsKICAgICAgICAgcmV0dXJuIG1fYnVmZmVyLmRhdGEoKSAr
IG9sZFNpemU7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvcHkoY29uc3QgQ1N0cmluZyYg
c291cmNlKQorICAgIHZvaWQgY29weShjb25zdCBDU3RyaW5nJiBzb3VyY2UpIG92ZXJyaWRlCiAg
ICAgewogICAgICAgICBtX2J1ZmZlci5hcHBlbmQoc291cmNlLmRhdGEoKSwgc291cmNlLmxlbmd0
aCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggMGU3N2VhYzRkYWQzMGMwZmRkYjg4ZTdlMzM1
OTFmOWUxMThmNjRiMi4uMTQ2Mjk0NTAxMzNjZGFmNjgxMGUwYzk4MDBhOGJmMjRjNzdjODk1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxp
YnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJz
ZXJMaWJ4bWwyLmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB4
bWxGcmVlKGF0dHJpYnV0ZXMpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNh
bGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxsKFhNTERvY3Vt
ZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIHBhcnNl
ci0+c3RhcnRFbGVtZW50TnMoeG1sTG9jYWxOYW1lLCB4bWxQcmVmaXgsIHhtbFVSSSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJfbmFtZXNwYWNlcywgY29uc3RfY2Fz
dDxjb25zdCB4bWxDaGFyKio+KG5hbWVzcGFjZXMpLApAQCAtMjQ1LDcgKzI0NSw3IEBAIHByaXZh
dGU6CiAgICAgfTsKIAogICAgIHN0cnVjdCBQZW5kaW5nRW5kRWxlbWVudE5TQ2FsbGJhY2sgOiBw
dWJsaWMgUGVuZGluZ0NhbGxiYWNrIHsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9j
dW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2Vy
KiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIHBhcnNlci0+ZW5kRWxl
bWVudE5zKCk7CiAgICAgICAgIH0KQEAgLTI1Nyw3ICsyNTcsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgeG1sRnJlZShzKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxs
KFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCisgICAgICAgIHZvaWQgY2FsbChYTUxEb2N1bWVu
dFBhcnNlciogcGFyc2VyKSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBwYXJzZXIt
PmNoYXJhY3RlcnMocywgbGVuKTsKICAgICAgICAgfQpAQCAtMjczLDcgKzI3Myw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICB4bWxGcmVlKGRhdGEpOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBj
YWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAg
ICAgICAgIHBhcnNlci0+cHJvY2Vzc2luZ0luc3RydWN0aW9uKHRhcmdldCwgZGF0YSk7CiAgICAg
ICAgIH0KQEAgLTI4OCw3ICsyODgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgeG1sRnJlZShz
KTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFy
c2VyKiBwYXJzZXIpCisgICAgICAgIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogcGFyc2Vy
KSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBwYXJzZXItPmNkYXRhQmxvY2socywg
bGVuKTsKICAgICAgICAgfQpAQCAtMzAzLDcgKzMwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICB4bWxGcmVlKHMpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1M
RG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFy
c2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIHBhcnNlci0+Y29t
bWVudChzKTsKICAgICAgICAgfQpAQCAtMzE5LDcgKzMxOSw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICB4bWxGcmVlKHN5c3RlbUlEKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCisgICAgICAgIHZvaWQgY2FsbChYTUxE
b2N1bWVudFBhcnNlciogcGFyc2VyKSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBw
YXJzZXItPmludGVybmFsU3Vic2V0KG5hbWUsIGV4dGVybmFsSUQsIHN5c3RlbUlEKTsKICAgICAg
ICAgfQpAQCAtMzM1LDcgKzMzNSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB4bWxGcmVlKG1l
c3NhZ2UpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1l
bnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBw
YXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIHBhcnNlci0+aGFuZGxlRXJy
b3IodHlwZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWVzc2FnZSksIFRleHRQb3NpdGlvbihs
aW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273030</attachid>
            <date>2016-03-04 13:26:11 -0800</date>
            <delta_ts>2016-03-04 15:28:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155021-20160305002556.patch</filename>
            <type>text/plain</type>
            <size>23654</size>
            <attacher name="Konstantin Tokarev">annulen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDEzZjhiZmMzZjdjMDI3
YzM1NGM3YmRlZmEwZjllOTMyNDNmY2M2NC4uZWJjN2RjYTg2MWRlMDQ3OGVhZDkyNDI5YjkxMjUw
MmIzNGI5MWJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTAzLTA0ICBLb25z
dGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KKworICAgICAgICBBZGRlZCBtaXNz
aW5nIG92ZXJyaWRlIHNwZWNpZmllcnMgdW5kZXIgU291cmNlL1dlYkNvcmUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUwMjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgbmVlZGVk
LgorCisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTaGVldC5jcHA6CisgICAgICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAg
ICAgICAqIGVkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHA6CisgICAgICAgICogZWRpdGluZy9F
ZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAg
ICAgICAqIGxvYWRlci9TaW5rRG9jdW1lbnQuY3BwOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHA6CisgICAgICAgIEFsc28gYWRkZWQgI2lmKFNPVVApIGd1YXJkIHRvCisgICAg
ICAgIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpnZXRPckNyZWF0ZVJlYWRCdWZmZXIK
KyAgICAgICAgYmVjYXVzZSBpdCBpcyBub3QgYW4gb3ZlcnJpZGRlbiBtZXRob2Qgb3RoZXJ3aXNl
LgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTGluZUVuZGluZy5jcHA6CisgICAgICAgICogeG1s
L3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorCiAyMDE2LTAzLTA0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBJbmZvcm0gV2ViS2l0
IGFuZCBXZWJDb3JlIGlmIGEgcGFnZSBpcyBjb250cm9sbGVkIGJ5IGF1dG9tYXRpb24uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAppbmRleCA0MGViYjgwY2UwNmQxYmY0OTc2NTg0
YWJkOWU1OTBiNzJiMzdhMmVkLi5hMzk4NWQ3NmJlOGFlMjNlMzg0Mjg0M2RmZjdkNTA0YmYzNTdj
YTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKQEAgLTg4LDcgKzg4LDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0cnVjdCBSb290T2JqZWN0SW52YWxpZGF0aW9u
Q2FsbGJhY2sgOiBwdWJsaWMgUm9vdE9iamVjdDo6SW52YWxpZGF0aW9uQ2FsbGJhY2sgewotICAg
ICAgICB2aXJ0dWFsIHZvaWQgb3BlcmF0b3IoKShSb290T2JqZWN0Kik7CisgICAgICAgIHZvaWQg
b3BlcmF0b3IoKShSb290T2JqZWN0Kikgb3ZlcnJpZGU7CiAgICAgfTsKICAgICBSb290T2JqZWN0
SW52YWxpZGF0aW9uQ2FsbGJhY2sgbV9pbnZhbGlkYXRpb25DYWxsYmFjazsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDFmYzg5MzkyNWFjZjBhOTdjMjE3MDM5MTAxYTc4
ZDM2Yzk0ZWJmZGMuLjU0NWZhNTJmOTBjNTA4NWFjNTk3MzFmY2YyM2VkNWY5M2I0ZTRmMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTUyLDEzICs1MiwxMyBAQCBwdWJs
aWM6CiAgICAgU3R5bGVTaGVldENTU1J1bGVMaXN0KENTU1N0eWxlU2hlZXQqIHNoZWV0KSA6IG1f
c3R5bGVTaGVldChzaGVldCkgeyB9CiAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBy
ZWYoKSB7IG1fc3R5bGVTaGVldC0+cmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSB7
IG1fc3R5bGVTaGVldC0+ZGVyZWYoKTsgfQotICAgIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVNoZWV0LT5sZW5ndGgoKTsgfQotICAgIHZpcnR1
YWwgQ1NTUnVsZSogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVNo
ZWV0LT5pdGVtKGluZGV4KTsgfQotICAgIAotICAgIHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogc3R5
bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGVTaGVldDsgfQorICAgIHZvaWQgcmVmKCkg
b3ZlcnJpZGUgeyBtX3N0eWxlU2hlZXQtPnJlZigpOyB9CisgICAgdm9pZCBkZXJlZigpIG92ZXJy
aWRlIHsgbV9zdHlsZVNoZWV0LT5kZXJlZigpOyB9CisKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3N0eWxlU2hlZXQtPmxlbmd0aCgpOyB9CisgICAgQ1NT
UnVsZSogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdHls
ZVNoZWV0LT5pdGVtKGluZGV4KTsgfQorCisgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc3R5bGVTaGVldDsgfQogCiAgICAgQ1NTU3R5bGVT
aGVldCogbV9zdHlsZVNoZWV0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
dXRhdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVy
LmNwcAppbmRleCA4N2ZiYmJkODNmM2JiZjc3MGI4NjJhNTc4NDAyNDBjMjZjMjI3OGQzLi5iMjdh
NGMxZDA1NGQ4YTMwODdiYzNlZWU2NGYxODJkNDE3MGNmYzc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L011dGF0aW9uT2JzZXJ2ZXIuY3BwCkBAIC0xNjcsOCArMTY3LDggQEAgcHVibGljOgogICAgIHsK
ICAgICB9CiAKLXByaXZhdGU6ICAgIAotICAgIHZpcnR1YWwgUmVzdWx0IHJ1bigpCitwcml2YXRl
OgorICAgIFJlc3VsdCBydW4oKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbXV0YXRpb25PYnNl
cnZlckNvbXBvdW5kTWljcm90YXNrUXVldWVkRmxhZyA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9EaWN0YXRpb25Db21tYW5kLmNwcAppbmRleCBiYzViNmE1ZjE5Zjk2NmM2MDFm
MTZlZjhhOTM3ZDQwYTViMzMyNjMzLi45OTI5NWM2ZGZmZTY4YmJmNmQ2YmMzN2Y4YTQ1NTc5OGRm
NTc4ZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RpY3RhdGlvbkNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGljdGF0aW9uQ29tbWFuZC5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
aWN0YXRpb25NYXJrZXJTdXBwbGllcihhbHRlcm5hdGl2ZXMpKTsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgYWRkTWFya2Vyc1RvVGV4dE5vZGUoVGV4dCogdGV4dE5vZGUsIHVuc2lnbmVkIG9m
ZnNldE9mSW5zZXJ0aW9uLCBjb25zdCBTdHJpbmcmIHRleHRUb0JlSW5zZXJ0ZWQpCisgICAgdm9p
ZCBhZGRNYXJrZXJzVG9UZXh0Tm9kZShUZXh0KiB0ZXh0Tm9kZSwgdW5zaWduZWQgb2Zmc2V0T2ZJ
bnNlcnRpb24sIGNvbnN0IFN0cmluZyYgdGV4dFRvQmVJbnNlcnRlZCkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIERvY3VtZW50TWFya2VyQ29udHJvbGxlciYgbWFya2VyQ29udHJvbGxlciA9IHRl
eHROb2RlLT5kb2N1bWVudCgpLm1hcmtlcnMoKTsKICAgICAgICAgZm9yIChhdXRvJiBhbHRlcm5h
dGl2ZSA6IG1fYWx0ZXJuYXRpdmVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHAKaW5kZXggNGM3OTEwMzM0YWRlZjBhOTY0YWI2ODlhNzQzNzBjZTczOWY4ODc5NC4uMjMx
NGRlNTczYzVjNGJlZmZlMGE2MmJiNjBmMjhhZWY2ZTcyMGQwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcApAQCAtMjUxLDEwICsyNTEsMTAgQEAgcHVibGljOgogICAg
IEhUTUxBdHRyaWJ1dGVFcXVpdmFsZW50KENTU1Byb3BlcnR5SUQsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKTsKICAgICBIVE1MQXR0
cmlidXRlRXF1aXZhbGVudChDU1NQcm9wZXJ0eUlELCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSk7CiAKLSAgICBib29sIG1hdGNoZXMoY29uc3QgRWxlbWVudCYgZWxlbWVudCkgY29uc3Qg
eyByZXR1cm4gSFRNTEVsZW1lbnRFcXVpdmFsZW50OjptYXRjaGVzKGVsZW1lbnQpICYmIGVsZW1l
bnQuaGFzQXR0cmlidXRlKG1fYXR0ck5hbWUpOyB9Ci0gICAgdmlydHVhbCBib29sIGhhc0F0dHJp
YnV0ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgdmFsdWVJc1By
ZXNlbnRJblN0eWxlKEVsZW1lbnQmLCBjb25zdCBFZGl0aW5nU3R5bGUmKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHZvaWQgYWRkVG9TdHlsZShFbGVtZW50KiwgRWRpdGluZ1N0eWxlKikgY29uc3Q7Cisg
ICAgYm9vbCBtYXRjaGVzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIEhUTUxFbGVtZW50RXF1aXZhbGVudDo6bWF0Y2hlcyhlbGVtZW50KSAmJiBlbGVtZW50
Lmhhc0F0dHJpYnV0ZShtX2F0dHJOYW1lKTsgfQorICAgIGJvb2wgaGFzQXR0cmlidXRlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgdmFsdWVJc1ByZXNlbnRJblN0
eWxlKEVsZW1lbnQmLCBjb25zdCBFZGl0aW5nU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
b2lkIGFkZFRvU3R5bGUoRWxlbWVudCosIEVkaXRpbmdTdHlsZSopIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gYXR0cmlidXRlVmFsdWVBc0NTU1ZhbHVl
KEVsZW1lbnQqKSBjb25zdDsKICAgICBpbmxpbmUgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXR0ck5hbWU7IH0KIApAQCAtMzA1LDcgKzMwNSw3
IEBAIGNsYXNzIEhUTUxGb250U2l6ZUVxdWl2YWxlbnQgOiBwdWJsaWMgSFRNTEF0dHJpYnV0ZUVx
dWl2YWxlbnQgewogcHVibGljOgogICAgIEhUTUxGb250U2l6ZUVxdWl2YWxlbnQoKTsKIAotICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gYXR0cmlidXRlVmFsdWVBc0NTU1ZhbHVlKEVs
ZW1lbnQqKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBhdHRyaWJ1dGVWYWx1ZUFz
Q1NTVmFsdWUoRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogSFRNTEZvbnRTaXplRXF1
aXZhbGVudDo6SFRNTEZvbnRTaXplRXF1aXZhbGVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCmluZGV4IDZjYzRkMjY4YTM0M2ZlYzgwNGI0YTViMDM2NDEzNmFiOTQ2OGI0
OTUuLjA0ZThjYzZkNjM3MTY0ZWU3ODZkN2E3NzA0OGVkOGNmMzg3YmQ5YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0xNDEsMTggKzE0MSwxOCBAQCB2b2lkIGZp
bGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9uJiBwYWdlQ29uZmlndXJhdGlvbikK
IAogY2xhc3MgRW1wdHlQb3B1cE1lbnUgOiBwdWJsaWMgUG9wdXBNZW51IHsKIHB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBJbnRSZWN0JiwgRnJhbWVWaWV3KiwgaW50KSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9t
RWxlbWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgeyB9Cisg
ICAgdm9pZCBzaG93KGNvbnN0IEludFJlY3QmLCBGcmFtZVZpZXcqLCBpbnQpIG92ZXJyaWRlIHsg
fQorICAgIHZvaWQgaGlkZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1l
bnQoKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSBvdmVycmlkZSB7
IH0KIH07CiAKIGNsYXNzIEVtcHR5U2VhcmNoUG9wdXBNZW51IDogcHVibGljIFNlYXJjaFBvcHVw
TWVudSB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBQb3B1cE1lbnUqIHBvcHVwTWVudSgpIHsgcmV0
dXJuIG1fcG9wdXAuZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJjaGVz
KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxSZWNlbnRTZWFyY2g+JikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcmLCBW
ZWN0b3I8UmVjZW50U2VhcmNoPiYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBQb3B1cE1lbnUqIHBvcHVwTWVudSgpIG92ZXJyaWRlIHsgcmV0
dXJuIG1fcG9wdXAuZ2V0KCk7IH0KKyAgICB2b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8UmVjZW50U2VhcmNoPiYpIG92ZXJyaWRlIHsgfQor
ICAgIHZvaWQgbG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxS
ZWNlbnRTZWFyY2g+Jikgb3ZlcnJpZGUgeyB9CisgICAgYm9vbCBlbmFibGVkKCkgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0ZToKICAgICBSZWZQdHI8RW1wdHlQb3B1cE1lbnU+
IG1fcG9wdXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCmluZGV4IGE1MzBm
YjA4ZjgyZGY0MGRiZTIxMTAyZmEyZmFiODg2MjM3MTE4NWIuLmExYmY1MmEzYzI4NjlhOTAyYTA3
ZWJhYmVkOWY2OGEzMmFiOWZjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
aW5rRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQu
Y3BwCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgLy8gSWdub3JlIGFs
bCBkYXRhLgotICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNv
bnN0IGNoYXIqLCBzaXplX3QpCisgICAgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYs
IGNvbnN0IGNoYXIqLCBzaXplX3QpIG92ZXJyaWRlCiAgICAgewogICAgIH0KIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZDkxNDIwYzU4YTZiY2I0YTY3NTUyMzJkNzkwY2VkMTY1
NTM4MWRmOS4uZDE3N2JjN2U3ODJhOGU0NzM3MGJlNDZkNWQzMTI1MWE3NmE5NTZmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIHB1YmxpYzoKICAgICBT
Y3JpcHRDYWxsU3RhY2sqIHN0YWNrVHJhY2UoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrVHJhY2Uu
Z2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKQorICAgIHZvaWQg
ZmlyZWQoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgLy8gVGhpcyBvYmplY3QgZ2V0cyBkZWxl
dGVkIHdoZW4gc3RkOjp1bmlxdWVfcHRyIGZhbGxzIG91dCBvZiBzY29wZS4uCiAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxQb3N0TWVzc2FnZVRpbWVyPiB0aW1lcih0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApp
bmRleCA0NTVjNzUwM2NiMDZiOTg0ZjAyOGNkM2RjMDY0NWQ1NDg0MTQ4NDEzLi44NGI3YzY0YTVl
ZTkyMTlhN2NhMDQ3YzRkYWRhMjM5MmUwNjA5Yjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC00MDEsNyAr
NDAxLDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxz
KGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QKKyAgICBi
b29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoYSA9PSBiKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CkBAIC00NzksNyArNDc5LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJT
dHlsZSogYikgY29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29u
c3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICAvLyBJZiB0
aGUgc3R5bGUgcG9pbnRlcnMgYXJlIHRoZSBzYW1lLCBkb24ndCBib3RoZXIgZG9pbmcgdGhlIHRl
c3QuCiAgICAgICAgIC8vIElmIGVpdGhlciBpcyBudWxsLCByZXR1cm4gZmFsc2UuIElmIGJvdGgg
YXJlIG51bGwsIHJldHVybiB0cnVlLgpAQCAtNTA3LDcgKzUwNyw3IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwg
Y29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0CisgICAgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVy
U3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgLy8gSWYgdGhlIHN0eWxlIHBvaW50ZXJzIGFyZSB0aGUgc2FtZSwgZG9uJ3QgYm90aGVy
IGRvaW5nIHRoZSB0ZXN0LgogICAgICAgICAvLyBJZiBlaXRoZXIgaXMgbnVsbCwgcmV0dXJuIGZh
bHNlLiBJZiBib3RoIGFyZSBudWxsLCByZXR1cm4gdHJ1ZS4KQEAgLTUzNSw3ICs1MzUsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgUmVu
ZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1YWxz
KGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgaWYgKGEgPT0gYikKICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC01NTcsNyArNTU3LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29u
c3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3Mp
IGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJT
dHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRv
dWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIChkc3QtPiptX3Nl
dHRlcikoYmxlbmRGdW5jKGFuaW0sIChhLT4qUHJvcGVydHlXcmFwcGVyR2V0dGVyPENvbG9yPjo6
bV9nZXR0ZXIpKCksIChiLT4qUHJvcGVydHlXcmFwcGVyR2V0dGVyPENvbG9yPjo6bV9nZXR0ZXIp
KCksIHByb2dyZXNzKSk7CiAgICAgfQpAQCAtNTc1LDkgKzU3NSw5IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGFuaW1hdGlvbklzQWNjZWxlcmF0ZWQoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBhbmltYXRpb25Jc0FjY2VsZXJhdGVkKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNv
bnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0
eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAg
IHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwg
Y29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jl
c3MpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBmbG9hdCBmcm9tT3BhY2l0eSA9IGEt
Pm9wYWNpdHkoKTsKIApAQCAtNTk0LDkgKzU5NCw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBib29sIGFuaW1hdGlvbklzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CisgICAgYm9vbCBhbmltYXRpb25Jc0FjY2VsZXJhdGVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFuaW1h
dGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBj
b25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQgYmxl
bmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVu
ZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBkc3QtPnNldFRyYW5zZm9ybShibGVuZEZ1bmMoYW5p
bSwgYS0+dHJhbnNmb3JtKCksIGItPnRyYW5zZm9ybSgpLCBwcm9ncmVzcykpOwogICAgIH0KQEAg
LTYxMCw5ICs2MTAsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBhbmltYXRpb25Jc0FjY2VsZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJv
b2wgYW5pbWF0aW9uSXNBY2NlbGVyYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBS
ZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUq
IGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3QKKyAgICB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25z
dCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdCBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgZHN0LT5zZXRGaWx0ZXIoYmxlbmRGdW5jKGFuaW0sIGEtPmZpbHRlcigpLCBiLT5m
aWx0ZXIoKSwgcHJvZ3Jlc3MpKTsKICAgICB9CkBAIC02NzAsNyArNjcwLDcgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxl
KiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBS
ZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBpZiAoYSA9PSBiKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC02OTks
NyArNjk5LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUq
IGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUg
cHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
LCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5
bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGNv
bnN0IFNoYWRvd0RhdGEqIHNoYWRvd0EgPSAoYS0+Km1fZ2V0dGVyKSgpOwogICAgICAgICBjb25z
dCBTaGFkb3dEYXRhKiBzaGFkb3dCID0gKGItPiptX2dldHRlcikoKTsKQEAgLTc5MSw3ICs3OTEs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29u
c3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wg
ZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChhID09IGIpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTgxMiw3ICs4MTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmcm9tQ29s
b3IgPT0gdG9Db2xvcjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5p
bWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEs
IGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBi
bGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBS
ZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29u
c3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIENvbG9yIGZyb21Db2xvciA9IChhLT4qbV9nZXR0
ZXIpKCk7CiAgICAgICAgIENvbG9yIHRvQ29sb3IgPSAoYi0+Km1fZ2V0dGVyKSgpOwpAQCAtODUx
LDExICs4NTEsMTEgQEAgcHVibGljOgogICAgICAgICAsIG1fdmlzaXRlZFdyYXBwZXIoc3RkOjpt
YWtlX3VuaXF1ZTxQcm9wZXJ0eVdyYXBwZXJNYXliZUludmFsaWRDb2xvcj4ocHJvcCwgdmlzaXRl
ZEdldHRlciwgdmlzaXRlZFNldHRlcikpCiAgICAgewogICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wg
ZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QK
KyAgICBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUq
IGIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gbV93cmFwcGVyLT5lcXVh
bHMoYSwgYikgJiYgbV92aXNpdGVkV3JhcHBlci0+ZXF1YWxzKGEsIGIpOwogICAgIH0KLSAgICB2
aXJ0dWFsIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUq
IGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUg
cHJvZ3Jlc3MpIGNvbnN0CisgICAgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
LCBSZW5kZXJTdHlsZSogZHN0LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5
bGUqIGIsIGRvdWJsZSBwcm9ncmVzcykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIG1f
d3JhcHBlci0+YmxlbmQoYW5pbSwgZHN0LCBhLCBiLCBwcm9ncmVzcyk7CiAgICAgICAgIG1fdmlz
aXRlZFdyYXBwZXItPmJsZW5kKGFuaW0sIGRzdCwgYSwgYiwgcHJvZ3Jlc3MpOwpAQCAtODkwLDcg
Kzg5MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGVxdWFs
cyhjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYikgY29uc3QKKyAgICBib29s
IGVxdWFscyhjb25zdCBGaWxsTGF5ZXIqIGEsIGNvbnN0IEZpbGxMYXllciogYikgY29uc3Qgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIGlmIChhID09IGIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTk0OSw3ICs5NDksNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1
YWwgYm9vbCBlcXVhbHMoY29uc3QgRmlsbExheWVyKiBhLCBjb25zdCBGaWxsTGF5ZXIqIGIpIGNv
bnN0CisgICAgYm9vbCBlcXVhbHMoY29uc3QgRmlsbExheWVyKiBhLCBjb25zdCBGaWxsTGF5ZXIq
IGIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgIGlmIChhID09IGIpCiAgICAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtOTk1LDcgKzk5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAg
IH0KIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0
IFJlbmRlclN0eWxlKiBiKSBjb25zdAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxl
KiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAg
IGlmIChhID09IGIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwMTYsNyArMTAxNiw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNv
bnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNz
KSBjb25zdAorICAgIHZvaWQgYmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVy
U3R5bGUqIGRzdCwgY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBk
b3VibGUgcHJvZ3Jlc3MpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBjb25zdCBGaWxs
TGF5ZXIqIGFMYXllciA9IChhLT4qbV9sYXllcnNHZXR0ZXIpKCk7CiAgICAgICAgIGNvbnN0IEZp
bGxMYXllciogYkxheWVyID0gKGItPiptX2xheWVyc0dldHRlcikoKTsKQEAgLTEwNDYsOSArMTA0
Niw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGlzU2hvcnRo
YW5kV3JhcHBlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGlzU2hvcnRoYW5k
V3JhcHBlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwg
Ym9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiKSBj
b25zdAorICAgIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJT
dHlsZSogYikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChhID09IGIpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwNjIsNyArMTA2Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBh
LCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQg
YmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3Qg
UmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBmb3IgKGF1dG8mIHdyYXBwZXIgOiBtX3Byb3Bl
cnR5V3JhcHBlcnMpCiAgICAgICAgICAgICB3cmFwcGVyLT5ibGVuZChhbmltLCBkc3QsIGEsIGIs
IHByb2dyZXNzKTsKQEAgLTEwODIsNyArMTA4Miw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVu
ZGVyU3R5bGUqIGIpIGNvbnN0CisgICAgYm9vbCBlcXVhbHMoY29uc3QgUmVuZGVyU3R5bGUqIGEs
IGNvbnN0IFJlbmRlclN0eWxlKiBiKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYg
KGEgPT0gYikKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTA5Miw3ICsxMDkyLDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYS0+ZmxleEJhc2lzKCkgPT0gYi0+ZmxleEJhc2lzKCkg
JiYgYS0+ZmxleEdyb3coKSA9PSBiLT5mbGV4R3JvdygpICYmIGEtPmZsZXhTaHJpbmsoKSA9PSBi
LT5mbGV4U2hyaW5rKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGJsZW5kKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBh
LCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNzKSBjb25zdAorICAgIHZvaWQg
YmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgUmVuZGVyU3R5bGUqIGRzdCwgY29uc3Qg
UmVuZGVyU3R5bGUqIGEsIGNvbnN0IFJlbmRlclN0eWxlKiBiLCBkb3VibGUgcHJvZ3Jlc3MpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBkc3QtPnNldEZsZXhCYXNpcyhibGVuZEZ1bmMo
YW5pbSwgYS0+ZmxleEJhc2lzKCksIGItPmZsZXhCYXNpcygpLCBwcm9ncmVzcykpOwogICAgICAg
ICBkc3QtPnNldEZsZXhHcm93KGJsZW5kRnVuYyhhbmltLCBhLT5mbGV4R3JvdygpLCBiLT5mbGV4
R3JvdygpLCBwcm9ncmVzcykpOwpAQCAtMTExMSw3ICsxMTExLDcgQEAgcHVibGljOgogICAgIHsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IFJlbmRlclN0eWxlKiBhLCBj
b25zdCBSZW5kZXJTdHlsZSogYikgY29uc3QKKyAgICBib29sIGVxdWFscyhjb25zdCBSZW5kZXJT
dHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBpZiAoYSA9PSBiKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMTQxLDcgKzEx
NDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCBibGVuZChjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBSZW5kZXJTdHlsZSogZHN0
LCBjb25zdCBSZW5kZXJTdHlsZSogYSwgY29uc3QgUmVuZGVyU3R5bGUqIGIsIGRvdWJsZSBwcm9n
cmVzcykgY29uc3QKKyAgICB2b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJl
bmRlclN0eWxlKiBkc3QsIGNvbnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSog
YiwgZG91YmxlIHByb2dyZXNzKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKChh
LT4qbV9wYWludFR5cGVHZXR0ZXIpKCkgIT0gU1ZHUGFpbnQ6OlNWR19QQUlOVFRZUEVfUkdCQ09M
T1IKICAgICAgICAgICAgIHx8IChiLT4qbV9wYWludFR5cGVHZXR0ZXIpKCkgIT0gU1ZHUGFpbnQ6
OlNWR19QQUlOVFRZUEVfUkdCQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwCmluZGV4IDNjNTU0NzQwOGQzOTA2ZGMyMGI0ZjAxYjBiYWYzM2M0YTNhM2Qz
NzguLjZjZDAzMjNkZWRiMmU1MmQ2MThhNTUwZDhhYzU1Y2FjODc3YjViNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC05MiwxNSArOTIsMTcgQEAg
Y2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5k
bGVDbGllbnQsIHB1YmxpYyBTdHJlYW0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIFJlc291
cmNlSGFuZGxlQ2xpZW50IHZpcnR1YWwgbWV0aG9kcy4KLSAgICAgICAgdmlydHVhbCBjaGFyKiBn
ZXRPckNyZWF0ZVJlYWRCdWZmZXIoc2l6ZV90IHJlcXVlc3RlZFNpemUsIHNpemVfdCYgYWN0dWFs
U2l6ZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5k
bGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50KTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVkTGVuZ3RoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5k
bGUqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUq
KTsKKyNpZiBVU0UoU09VUCkKKyAgICAgICAgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNp
emVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpIG92ZXJyaWRlOworI2VuZGlm
CisgICAgICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgICAgICB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgaW50KSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBk
aWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
LCBpbnQgZW5jb2RlZExlbmd0aCkgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgb3ZlcnJpZGU7Cisg
ICAgICAgIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3Im
KSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKikgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIG92ZXJy
aWRlOwogCiAgICAgICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9yZXNvdXJjZTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcAppbmRleCBhZTI0ZmIw
OTc0ZWMwYTI5YjE1MjJhZjAyM2E0NzBmYmE3ZDNmNzI3Li5jMGIwNzY1OWU2YmRjODA0OWUzYWFj
NGMwMzMyMGIxN2FlYzQyM2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xpbmVFbmRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTGlu
ZUVuZGluZy5jcHAKQEAgLTUyLDE0ICs1MiwxNCBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1
YWwgfkNTdHJpbmdCdWZmZXIoKSB7IH0KIAotICAgIHZpcnR1YWwgY2hhciogYWxsb2NhdGUoc2l6
ZV90IHNpemUpCisgICAgY2hhciogYWxsb2NhdGUoc2l6ZV90IHNpemUpIG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBjaGFyKiBwdHI7CiAgICAgICAgIG1fYnVmZmVyID0gQ1N0cmluZzo6bmV3VW5p
bml0aWFsaXplZChzaXplLCBwdHIpOwogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAg
IHZpcnR1YWwgdm9pZCBjb3B5KGNvbnN0IENTdHJpbmcmIHNvdXJjZSkKKyAgICB2b2lkIGNvcHko
Y29uc3QgQ1N0cmluZyYgc291cmNlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9idWZmZXIg
PSBzb3VyY2U7CiAgICAgfQpAQCAtNzgsMTQgKzc4LDE0IEBAIHB1YmxpYzoKICAgICB9CiAgICAg
dmlydHVhbCB+VmVjdG9yQ2hhckFwcGVuZEJ1ZmZlcigpIHsgfQogCi0gICAgdmlydHVhbCBjaGFy
KiBhbGxvY2F0ZShzaXplX3Qgc2l6ZSkKKyAgICBjaGFyKiBhbGxvY2F0ZShzaXplX3Qgc2l6ZSkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHNpemVfdCBvbGRTaXplID0gbV9idWZmZXIuc2l6ZSgp
OwogICAgICAgICBtX2J1ZmZlci5ncm93KG9sZFNpemUgKyBzaXplKTsKICAgICAgICAgcmV0dXJu
IG1fYnVmZmVyLmRhdGEoKSArIG9sZFNpemU7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGNv
cHkoY29uc3QgQ1N0cmluZyYgc291cmNlKQorICAgIHZvaWQgY29weShjb25zdCBDU3RyaW5nJiBz
b3VyY2UpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBtX2J1ZmZlci5hcHBlbmQoc291cmNlLmRh
dGEoKSwgc291cmNlLmxlbmd0aCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggMGU3N2VhYzRk
YWQzMGMwZmRkYjg4ZTdlMzM1OTFmOWUxMThmNjRiMi4uMTQ2Mjk0NTAxMzNjZGFmNjgxMGUwYzk4
MDBhOGJmMjRjNzdjODk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICB4bWxGcmVlKGF0dHJpYnV0ZXMpOwogICAgICAgICB9CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAg
dm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsK
ICAgICAgICAgICAgIHBhcnNlci0+c3RhcnRFbGVtZW50TnMoeG1sTG9jYWxOYW1lLCB4bWxQcmVm
aXgsIHhtbFVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJfbmFt
ZXNwYWNlcywgY29uc3RfY2FzdDxjb25zdCB4bWxDaGFyKio+KG5hbWVzcGFjZXMpLApAQCAtMjQ1
LDcgKzI0NSw3IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHN0cnVjdCBQZW5kaW5nRW5kRWxl
bWVudE5TQ2FsbGJhY2sgOiBwdWJsaWMgUGVuZGluZ0NhbGxiYWNrIHsKLSAgICAgICAgdmlydHVh
bCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxs
KFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHBhcnNlci0+ZW5kRWxlbWVudE5zKCk7CiAgICAgICAgIH0KQEAgLTI1Nyw3ICsyNTcsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgeG1sRnJlZShzKTsKICAgICAgICAgfQogCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCisgICAgICAgIHZv
aWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKSBvdmVycmlkZQogICAgICAgICB7CiAg
ICAgICAgICAgICBwYXJzZXItPmNoYXJhY3RlcnMocywgbGVuKTsKICAgICAgICAgfQpAQCAtMjcz
LDcgKzI3Myw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB4bWxGcmVlKGRhdGEpOwogICAgICAg
ICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNl
cikKKyAgICAgICAgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRl
CiAgICAgICAgIHsKICAgICAgICAgICAgIHBhcnNlci0+cHJvY2Vzc2luZ0luc3RydWN0aW9uKHRh
cmdldCwgZGF0YSk7CiAgICAgICAgIH0KQEAgLTI4OCw3ICsyODgsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgeG1sRnJlZShzKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBj
YWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCisgICAgICAgIHZvaWQgY2FsbChYTUxEb2N1
bWVudFBhcnNlciogcGFyc2VyKSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBwYXJz
ZXItPmNkYXRhQmxvY2socywgbGVuKTsKICAgICAgICAgfQpAQCAtMzAzLDcgKzMwMyw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICB4bWxGcmVlKHMpOwogICAgICAgICB9CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBj
YWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAg
ICAgICAgIHBhcnNlci0+Y29tbWVudChzKTsKICAgICAgICAgfQpAQCAtMzE5LDcgKzMxOSw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICB4bWxGcmVlKHN5c3RlbUlEKTsKICAgICAgICAgfQogCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBjYWxsKFhNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCisgICAg
ICAgIHZvaWQgY2FsbChYTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKSBvdmVycmlkZQogICAgICAg
ICB7CiAgICAgICAgICAgICBwYXJzZXItPmludGVybmFsU3Vic2V0KG5hbWUsIGV4dGVybmFsSUQs
IHN5c3RlbUlEKTsKICAgICAgICAgfQpAQCAtMzM1LDcgKzMzNSw3IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICB4bWxGcmVlKG1lc3NhZ2UpOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2
b2lkIGNhbGwoWE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKKyAgICAgICAgdm9pZCBjYWxsKFhN
TERvY3VtZW50UGFyc2VyKiBwYXJzZXIpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAg
IHBhcnNlci0+aGFuZGxlRXJyb3IodHlwZSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWVzc2Fn
ZSksIFRleHRQb3NpdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpKTsKICAgICAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>