<?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>139796</bug_id>
          
          <creation_ts>2014-12-18 15:48:47 -0800</creation_ts>
          <short_desc>Ref-ify various Document-related things.</short_desc>
          <delta_ts>2014-12-18 19:11:43 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>andersca</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1056928</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-18 15:48:47 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056930</commentid>
    <comment_count>1</comment_count>
      <attachid>243526</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-18 15:49:31 -0800</bug_when>
    <thetext>Created attachment 243526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056938</commentid>
    <comment_count>2</comment_count>
      <attachid>243528</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-18 16:14:26 -0800</bug_when>
    <thetext>Created attachment 243528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056978</commentid>
    <comment_count>3</comment_count>
      <attachid>243528</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-18 19:11:39 -0800</bug_when>
    <thetext>Comment on attachment 243528
Patch

Clearing flags on attachment: 243528

Committed r177559: &lt;http://trac.webkit.org/changeset/177559&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056979</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-18 19:11:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243526</attachid>
            <date>2014-12-18 15:49:31 -0800</date>
            <delta_ts>2014-12-18 16:14:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139796.diff</filename>
            <type>text/plain</type>
            <size>46892</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNWVlZGJmLi5kZDBhODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODgg
QEAKKzIwMTQtMTItMTggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlZi1pZnkgdmFyaW91cyBEb2N1bWVudC1yZWxhdGVkIHRoaW5ncy4KKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTc5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTC5tbToKKyAgICAgICAg
KC1bRE9NSFRNTERvY3VtZW50IGNyZWF0ZURvY3VtZW50RnJhZ21lbnRXaXRoVGV4dDpdKToKKyAg
ICAgICAgKiBkb20vQ0RBVEFTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNEQVRBU2Vj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNEQVRBU2VjdGlvbjo6dmlydHVhbENy
ZWF0ZSk6CisgICAgICAgICogZG9tL0NEQVRBU2VjdGlvbi5oOgorICAgICAgICAqIGRvbS9Db21t
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZG9tL0NvbW1lbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRl
VGV4dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZUNvbW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y3JlYXRlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZVBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xvbmVOb2RlSW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRXaXRob3V0Q2hp
bGRyZW4pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlWEhUTUwp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZU5vblJlbmRlcmVkUGxhY2Vob2xk
ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJh
Z21lbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRUeXBlLmg6CisgICAgICAgICogZG9tL0Vu
dGl0eVJlZmVyZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbnRpdHlSZWZlcmVuY2U6OmNy
ZWF0ZSk6CisgICAgICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5oOgorICAgICAgICAqIGRvbS9U
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0OjpjcmVhdGVFZGl0aW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojpz
cGxpdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6dmlydHVhbENyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0OjpjcmVhdGVXaXRoTGVuZ3RoTGltaXQpOgorICAgICAgICAqIGRv
bS9UZXh0Lmg6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RlRQRGlyZWN0b3J5RG9jdW1lbnQ6OmNy
ZWF0ZVBhcnNlcik6CisgICAgICAgICogaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1
bWVudDo6Y3JlYXRlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6Y2xv
bmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbik6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEb2N1bWVudDo6Y3JlYXRlU3ludGhlc2l6ZWREb2N1bWVudCk6CisgICAgICAg
ICogaHRtbC9JbWFnZURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRG9jdW1l
bnQ6OmNyZWF0ZVBhcnNlcik6CisgICAgICAgICogaHRtbC9JbWFnZURvY3VtZW50Lmg6CisgICAg
ICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9j
dW1lbnQ6OmNyZWF0ZVBhcnNlcik6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5Eb2N1bWVudDo6Y3JlYXRlUGFyc2VyKToKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50
Lmg6CisgICAgICAgICogaHRtbC9UZXh0RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dERvY3VtZW50OjpjcmVhdGVQYXJzZXIpOgorICAgICAgICAqIGh0bWwvVGV4dERvY3VtZW50
Lmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvU2lua0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbmtEb2N1bWVudDo6Y3JlYXRlUGFyc2Vy
KToKKyAgICAgICAgKiBsb2FkZXIvU2lua0RvY3VtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50OjpjbG9uZURvY3VtZW50
V2l0aG91dENoaWxkcmVuKToKKyAgICAgICAgKiBzdmcvU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAg
KiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpYTUxE
b2N1bWVudFBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50
UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxQYXJzZXJDb250ZXh0Ojpj
cmVhdGVTdHJpbmdQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6
Y3JlYXRlTWVtb3J5UGFyc2VyKToKKwogMjAxNC0xMi0xOCAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFTU0VSVCBzZWVuIGNs
b3Npbmcvb3BlbmluZyBtdWx0aXBsZSBpbnNwZWN0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUwubW0KaW5kZXggZDZjNGRkZi4uNDFjODMzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTC5tbQpAQCAtMTUyLDcgKzE1Miw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJhZ21l
bnRXaXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0CiB7CiAgICAgLy8gRklYTUU6IFNpbmNlIHRoaXMg
aXMgbm90IGEgY29udGV4dHVhbCBmcmFnbWVudCwgaXQgd29uJ3QgaGFuZGxlIHdoaXRlc3BhY2Ug
cHJvcGVybHkuCi0gICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb3JlKHNl
bGYpLT5jcmVhdGVSYW5nZSgpLmdldCgpLCB0ZXh0KS5nZXQoKSk7CisgICAgcmV0dXJuIGtpdChj
cmVhdGVGcmFnbWVudEZyb21UZXh0KGNvcmUoc2VsZiktPmNyZWF0ZVJhbmdlKCksIHRleHQpLmdl
dCgpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2Vj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNwcAppbmRleCA1MmI5
ZmFmLi5jNTliZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNwcApAQCAtMzEsOSAr
MzEsOSBAQCBpbmxpbmUgQ0RBVEFTZWN0aW9uOjpDREFUQVNlY3Rpb24oRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7CiB9CiAKLVJlZlB0cjxDREFUQVNlY3Rpb24+IENE
QVRBU2VjdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBkYXRh
KQorUmVmPENEQVRBU2VjdGlvbj4gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDREFU
QVNlY3Rpb24oZG9jdW1lbnQsIGRhdGEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDREFU
QVNlY3Rpb24oZG9jdW1lbnQsIGRhdGEpKTsKIH0KIAogU3RyaW5nIENEQVRBU2VjdGlvbjo6bm9k
ZU5hbWUoKSBjb25zdApAQCAtNTYsNyArNTYsNyBAQCBib29sIENEQVRBU2VjdGlvbjo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0
cjxUZXh0PiBDREFUQVNlY3Rpb246OnZpcnR1YWxDcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhKQor
UmVmPFRleHQ+IENEQVRBU2VjdGlvbjo6dmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGEp
CiB7CiAgICAgcmV0dXJuIGNyZWF0ZShkb2N1bWVudCgpLCBkYXRhKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
REFUQVNlY3Rpb24uaAppbmRleCBjNzhlYThhLi5iZjVhNjFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRB
U2VjdGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q0RBVEFTZWN0aW9uIGZpbmFsIDogcHVibGljIFRleHQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8Q0RBVEFTZWN0aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKKyAg
ICBzdGF0aWMgUmVmPENEQVRBU2VjdGlvbj4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
Jik7CiAKIHByaXZhdGU6CiAgICAgQ0RBVEFTZWN0aW9uKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
Jik7CkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2Rl
VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgUmVmUHRyPFRleHQ+IHZpcnR1YWxDcmVhdGUoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZWY8VGV4dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmNw
cAppbmRleCBlMGZiNzE3Li40OWY1NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29tbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCkBAIC0zMSwx
NCArMzEsMTQgQEAgaW5saW5lIENvbW1lbnQ6OkNvbW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIHRleHQpCiB7CiB9CiAKLVJlZlB0cjxDb21tZW50PiBDb21tZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQpCitSZWY8Q29tbWVudD4g
Q29tbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ29tbWVudChkb2N1bWVudCwgdGV4dCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENvbW1lbnQoZG9jdW1lbnQsIHRleHQpKTsKIH0KIAotUmVm
UHRyPENvbW1lbnQ+IENvbW1lbnQ6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIHRleHQpCitSZWY8Q29tbWVudD4gQ29tbWVudDo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IENvbW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQp
LCB0ZXh0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29tbWVudChkb3duY2FzdDxEb2N1
bWVudD4oY29udGV4dCksIHRleHQpKTsKIH0KIAogU3RyaW5nIENvbW1lbnQ6Om5vZGVOYW1lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29tbWVudC5oCmluZGV4IGM2OTI4MDYuLjNmNDRlNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bW1lbnQuaApAQCAtMjksOCArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENv
bW1lbnQgZmluYWwgOiBwdWJsaWMgQ2hhcmFjdGVyRGF0YSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZlB0cjxDb21tZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKLSAgICBz
dGF0aWMgUmVmUHRyPENvbW1lbnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgU3RyaW5nJik7CisgICAgc3RhdGljIFJlZjxDb21tZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgUmVmPENvbW1lbnQ+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CiAgICAgQ29tbWVudChE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYmZl
MWM1Yy4uMGUxYTVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NjQsMTEgKzU2NCwx
MSBAQCBzdGF0aWMgYm9vbCBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGNvbnN0IFdlYkNvcmU6OlF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZSwgY29ucwogfQogI2VuZGlmCiAKLVJlZlB0cjxEb2N1bWVu
dD4gRG9jdW1lbnQ6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorUmVm
PERvY3VtZW50PiBEb2N1bWVudDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpCiB7Ci0gICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IGFkb3B0UmVmKG5ldyBEb2N1
bWVudChudWxscHRyLCBVUkwoKSkpOworICAgIFJlZjxEb2N1bWVudD4gZG9jdW1lbnQgPSBhZG9w
dFJlZigqbmV3IERvY3VtZW50KG51bGxwdHIsIFVSTCgpKSk7CiAgICAgZG9jdW1lbnQtPnNldFNl
Y3VyaXR5T3JpZ2luKGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSk7Ci0gICAgcmV0dXJuIGRvY3Vt
ZW50LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQ7CiB9CiAKIERvY3VtZW50Ojp+RG9j
dW1lbnQoKQpAQCAtODYwLDE3ICs4NjAsMTcgQEAgUmVmUHRyPEVsZW1lbnQ+IERvY3VtZW50Ojpj
cmVhdGVFbGVtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYKICAg
ICByZXR1cm4gY3JlYXRlRWxlbWVudChRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBuYW1lLCBudWxs
QXRvbSksIGZhbHNlKTsKIH0KIAotUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50Ojpj
cmVhdGVEb2N1bWVudEZyYWdtZW50KCkKK1JlZjxEb2N1bWVudEZyYWdtZW50PiBEb2N1bWVudDo6
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpCiB7CiAgICAgcmV0dXJuIERvY3VtZW50RnJhZ21lbnQ6
OmNyZWF0ZShkb2N1bWVudCgpKTsKIH0KIAotUmVmUHRyPFRleHQ+IERvY3VtZW50OjpjcmVhdGVU
ZXh0Tm9kZShjb25zdCBTdHJpbmcmIGRhdGEpCitSZWY8VGV4dD4gRG9jdW1lbnQ6OmNyZWF0ZVRl
eHROb2RlKGNvbnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICByZXR1cm4gVGV4dDo6Y3JlYXRlKCp0
aGlzLCBkYXRhKTsKIH0KIAotUmVmUHRyPENvbW1lbnQ+IERvY3VtZW50OjpjcmVhdGVDb21tZW50
KGNvbnN0IFN0cmluZyYgZGF0YSkKK1JlZjxDb21tZW50PiBEb2N1bWVudDo6Y3JlYXRlQ29tbWVu
dChjb25zdCBTdHJpbmcmIGRhdGEpCiB7CiAgICAgcmV0dXJuIENvbW1lbnQ6OmNyZWF0ZSgqdGhp
cywgZGF0YSk7CiB9CkBAIC05MTAsMTUgKzkxMCwxNSBAQCBSZWZQdHI8RW50aXR5UmVmZXJlbmNl
PiBEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhj
ZQogICAgIHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0ZSgqdGhpcywgbmFtZSk7CiB9CiAK
LVJlZlB0cjxUZXh0PiBEb2N1bWVudDo6Y3JlYXRlRWRpdGluZ1RleHROb2RlKGNvbnN0IFN0cmlu
ZyYgdGV4dCkKK1JlZjxUZXh0PiBEb2N1bWVudDo6Y3JlYXRlRWRpdGluZ1RleHROb2RlKGNvbnN0
IFN0cmluZyYgdGV4dCkKIHsKICAgICByZXR1cm4gVGV4dDo6Y3JlYXRlRWRpdGluZ1RleHQoKnRo
aXMsIHRleHQpOwogfQogCi1SZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gRG9jdW1lbnQ6OmNy
ZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24oKQorUmVmPENTU1N0eWxlRGVjbGFyYXRpb24+IERvY3Vt
ZW50OjpjcmVhdGVDU1NTdHlsZURlY2xhcmF0aW9uKCkKIHsKICAgICBSZWY8TXV0YWJsZVN0eWxl
UHJvcGVydGllcz4gcHJvcGVydHlTZXQoTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCkp
OwotICAgIHJldHVybiBwcm9wZXJ0eVNldC0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwor
ICAgIHJldHVybiAqcHJvcGVydHlTZXQtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKIH0K
IAogUmVmUHRyPE5vZGU+IERvY3VtZW50OjppbXBvcnROb2RlKE5vZGUqIGltcG9ydGVkTm9kZSwg
Ym9vbCBkZWVwLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEwMzEsNyArMTAzMSw3IEBAIGJvb2wg
RG9jdW1lbnQ6Omhhc1ZhbGlkTmFtZXNwYWNlRm9yQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWRO
YW1lJiBxTmFtZSkKIH0KIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBpbiBhIHBv
c3NpYmxlIEVsZW1lbnRGYWN0b3J5IGNsYXNzLgotUmVmUHRyPEVsZW1lbnQ+IERvY3VtZW50Ojpj
cmVhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQorUmVmPEVsZW1lbnQ+IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogewogICAgIFJlZlB0cjxFbGVtZW50
PiBlbGVtZW50OwogCkBAIC0xMDUzLDcgKzEwNTMsNyBAQCBSZWZQdHI8RWxlbWVudD4gRG9jdW1l
bnQ6OmNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgYm9vbCBjcmVhdGVk
QgogICAgIC8vIDxpbWFnZT4gdXNlcyBpbWdUYWcgc28gd2UgbmVlZCBhIHNwZWNpYWwgcnVsZS4K
ICAgICBBU1NFUlQoKG5hbWUubWF0Y2hlcyhpbWFnZVRhZykgJiYgZWxlbWVudC0+dGFnUU5hbWUo
KS5tYXRjaGVzKGltZ1RhZykgJiYgZWxlbWVudC0+dGFnUU5hbWUoKS5wcmVmaXgoKSA9PSBuYW1l
LnByZWZpeCgpKSB8fCBuYW1lID09IGVsZW1lbnQtPnRhZ1FOYW1lKCkpOwogCi0gICAgcmV0dXJu
IGVsZW1lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2VOb25OdWxsKCk7
CiB9CiAKIGJvb2wgRG9jdW1lbnQ6OmNzc1JlZ2lvbnNFbmFibGVkKCkgY29uc3QKQEAgLTE2NTIs
NyArMTY1Miw3IEBAIFNldHRpbmdzKiBEb2N1bWVudDo6c2V0dGluZ3MoKSBjb25zdAogICAgIHJl
dHVybiBtX2ZyYW1lID8gJm1fZnJhbWUtPnNldHRpbmdzKCkgOiBudWxscHRyOwogfQogCi1SZWZQ
dHI8UmFuZ2U+IERvY3VtZW50OjpjcmVhdGVSYW5nZSgpCitSZWY8UmFuZ2U+IERvY3VtZW50Ojpj
cmVhdGVSYW5nZSgpCiB7CiAgICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUoKnRoaXMpOwogfQpAQCAt
MjIxOCw3ICsyMjE4LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VmlzdWFsbHlPcmRlcmVkKCkKICAg
ICAgICAgcmVuZGVyVmlldygpLT5zdHlsZSgpLnNldFJUTE9yZGVyaW5nKFZpc3VhbE9yZGVyKTsK
IH0KIAotUmVmUHRyPERvY3VtZW50UGFyc2VyPiBEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKK1Jl
ZjxEb2N1bWVudFBhcnNlcj4gRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiB7CiAgICAgLy8gRklY
TUU6IHRoaXMgc2hvdWxkIHByb2JhYmx5IHBhc3MgdGhlIGZyYW1lIGluc3RlYWQKICAgICByZXR1
cm4gWE1MRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcywgdmlldygpKTsKQEAgLTMxNjMsMjAg
KzMxNjMsMjAgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0NoaWxk
LCBOb2RlKiBvbGRDaGlsZCkKIAogUmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKLSAgICBSZWZQdHI8RG9j
dW1lbnQ+IGNsb25lID0gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpOworICAgIFJlZjxE
b2N1bWVudD4gY2xvbmUgPSBjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVuKCk7CiAgICAgY2xv
bmUtPmNsb25lRGF0YUZyb21Eb2N1bWVudCgqdGhpcyk7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAg
ICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoKICAgICBjYXNlIENsb25pbmdPcGVy
YXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNl
IENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2Rlcyhj
bG9uZS5nZXQoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5wdHIoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92
ZShjbG9uZSk7CiB9CiAKLVJlZlB0cjxEb2N1bWVudD4gRG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRX
aXRob3V0Q2hpbGRyZW4oKSBjb25zdAorUmVmPERvY3VtZW50PiBEb2N1bWVudDo6Y2xvbmVEb2N1
bWVudFdpdGhvdXRDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzWEhUTUxEb2N1bWVu
dCgpID8gY3JlYXRlWEhUTUwobnVsbHB0ciwgdXJsKCkpIDogY3JlYXRlKG51bGxwdHIsIHVybCgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNGE3ZmVmMi4uZWM0OGYyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTI1NywxOSArMjU3LDE5IEBAIGVudW0gY2xhc3MgRG9jdW1lbnRDb21w
YXRpYmlsaXR5TW9kZSA6IHVuc2lnbmVkIGNoYXIgewogCiBjbGFzcyBEb2N1bWVudCA6IHB1Ymxp
YyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxEb2N1bWVudD4gY3JlYXRlKEZy
YW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCisgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3Jl
YXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERvY3VtZW50KGZyYW1lLCB1cmwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRG9jdW1lbnQoZnJhbWUsIHVybCkpOwogICAgIH0KLSAgICBzdGF0aWMgUmVmUHRy
PERvY3VtZW50PiBjcmVhdGVYSFRNTChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAg
IHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZVhIVE1MKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJM
JiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50KGZyYW1l
LCB1cmwsIFhIVE1MRG9jdW1lbnRDbGFzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEb2N1bWVudChmcmFtZSwgdXJsLCBYSFRNTERvY3VtZW50Q2xhc3MpKTsKICAgICB9Ci0gICAg
c3RhdGljIFJlZlB0cjxEb2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRlcihGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0
ZU5vblJlbmRlcmVkUGxhY2Vob2xkZXIoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRG9jdW1lbnQoZnJhbWUsIHVybCwgRGVm
YXVsdERvY3VtZW50Q2xhc3MsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRG9jdW1lbnQoZnJhbWUsIHVybCwgRGVmYXVsdERvY3VtZW50Q2xh
c3MsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIpKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZlB0cjxE
b2N1bWVudD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgUmVm
PERvY3VtZW50PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAgdmlydHVh
bCB+RG9jdW1lbnQoKTsKIApAQCAtNDIyLDkgKzQyMiw5IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c01hbmlmZXN0KCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlRWxlbWVudChjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUsIEV4Y2VwdGlvbkNvZGUmKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxUZXh0PiBjcmVhdGVUZXh0
Tm9kZShjb25zdCBTdHJpbmcmIGRhdGEpOwotICAgIFJlZlB0cjxDb21tZW50PiBjcmVhdGVDb21t
ZW50KGNvbnN0IFN0cmluZyYgZGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPERvY3VtZW50
RnJhZ21lbnQ+IGNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBS
ZWY8VGV4dD4gY3JlYXRlVGV4dE5vZGUoY29uc3QgU3RyaW5nJiBkYXRhKTsKKyAgICBSZWY8Q29t
bWVudD4gY3JlYXRlQ29tbWVudChjb25zdCBTdHJpbmcmIGRhdGEpOwogICAgIFJlZlB0cjxDREFU
QVNlY3Rpb24+IGNyZWF0ZUNEQVRBU2VjdGlvbihjb25zdCBTdHJpbmcmIGRhdGEsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBjcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgZGF0YSwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxBdHRyPiBjcmVhdGVBdHRyaWJ1dGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CkBAIC00MzMsNyArNDMzLDcgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxOb2RlPiBpbXBvcnROb2RlKE5vZGUqIGltcG9ydGVkTm9kZSwgRXhjZXB0
aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGltcG9ydE5vZGUoaW1wb3J0ZWROb2RlLCB0cnVlLCBlYyk7
IH0KICAgICBSZWZQdHI8Tm9kZT4gaW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wg
ZGVlcCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxFbGVtZW50
PiBjcmVhdGVFbGVtZW50TlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmlu
ZyYgcXVhbGlmaWVkTmFtZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJl
ZlB0cjxFbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBib29sIGNy
ZWF0ZWRCeVBhcnNlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAogICAg
IGJvb2wgY3NzUmVnaW9uc0VuYWJsZWQoKSBjb25zdDsKICAgICBib29sIGNzc0NvbXBvc2l0aW5n
RW5hYmxlZCgpIGNvbnN0OwpAQCAtNTgyLDcgKzU4Miw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8
UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPFJhbmdlPiBjcmVh
dGVSYW5nZSgpOwogCiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9y
KE5vZGUqIHJvb3QsIHVuc2lnbmVkIHdoYXRUb1Nob3csCiAgICAgICAgIFBhc3NSZWZQdHI8Tm9k
ZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOwpA
QCAtNTkxLDggKzU5MSw4IEBAIHB1YmxpYzoKICAgICAgICAgUGFzc1JlZlB0cjxOb2RlRmlsdGVy
PiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAv
LyBTcGVjaWFsIHN1cHBvcnQgZm9yIGVkaXRpbmcKLSAgICBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJh
dGlvbj4gY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwotICAgIFJlZlB0cjxUZXh0PiBjcmVh
dGVFZGl0aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5nJik7CisgICAgUmVmPENTU1N0eWxlRGVjbGFy
YXRpb24+IGNyZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKKyAgICBSZWY8VGV4dD4gY3JlYXRl
RWRpdGluZ1RleHROb2RlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCByZWNhbGNTdHlsZShT
dHlsZTo6Q2hhbmdlID0gU3R5bGU6Ok5vQ2hhbmdlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKQEAgLTY4OSw3ICs2ODksNyBAQCBwdWJsaWM6CiAKICAg
ICBDU1NTdHlsZVNoZWV0JiBlbGVtZW50U2hlZXQoKTsKICAgICAKLSAgICB2aXJ0dWFsIFJlZlB0
cjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCk7CisgICAgdmlydHVhbCBSZWY8RG9jdW1l
bnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpOwogICAgIERvY3VtZW50UGFyc2VyKiBwYXJzZXIoKSBj
b25zdCB7IHJldHVybiBtX3BhcnNlci5nZXQoKTsgfQogICAgIFNjcmlwdGFibGVEb2N1bWVudFBh
cnNlciogc2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkgY29uc3Q7CiAgICAgCkBAIC0xMjg3LDcg
KzEyODcsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNsZWFyWE1MVmVyc2lvbigpIHsgbV94
bWxWZXJzaW9uID0gU3RyaW5nKCk7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPERvY3VtZW50PiBj
bG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVuKCkgY29uc3Q7CisgICAgdmlydHVhbCBSZWY8RG9j
dW1lbnQ+IGNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdDsKIAogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgTm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50
LmNwcAppbmRleCA2ZmUwMzc4Li5hMDE5MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RnJhZ21lbnQuY3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgRG9jdW1lbnRGcmFnbWVudDo6RG9jdW1l
bnRGcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIENvbnN0cnVjdGlvblR5cGUgY29uc3RydWMK
IHsKIH0KIAotUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RG9jdW1lbnRGcmFnbWVudD4gRG9jdW1lbnRGcmFn
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQsIE5vZGU6OkNyZWF0ZURvY3VtZW50RnJhZ21l
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudEZyYWdtZW50KGRvY3VtZW50
LCBOb2RlOjpDcmVhdGVEb2N1bWVudEZyYWdtZW50KSk7CiB9CiAKLVJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkKK1JlZjxEb2N1bWVudEZyYWdtZW50PiBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERvY3VtZW50RnJhZ21lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBOb2RlOjpD
cmVhdGVEb2N1bWVudEZyYWdtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRG9jdW1l
bnRGcmFnbWVudChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIE5vZGU6OkNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQpKTsKIH0KIAogU3RyaW5nIERvY3VtZW50RnJhZ21lbnQ6Om5vZGVOYW1lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IGE5ZDRlNjkuLjEx
OTk4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtMzMsOCArMzMs
OCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBEb2N1bWVudEZyYWdt
ZW50IDogcHVibGljIENvbnRhaW5lck5vZGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHN0
YXRpYyBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGlj
IFJlZjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwog
CiAgICAgdm9pZCBwYXJzZUhUTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1l
bnQsIFBhcnNlckNvbnRlbnRQb2xpY3kgPSBBbGxvd1NjcmlwdGluZ0NvbnRlbnQpOwogICAgIGJv
b2wgcGFyc2VYTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFBhcnNl
ckNvbnRlbnRQb2xpY3kgPSBBbGxvd1NjcmlwdGluZ0NvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50VHlwZS5oCmluZGV4IDYzZjkxMjguLmM3YTFkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRU
eXBlLmgKQEAgLTMyLDkgKzMyLDkgQEAgY2xhc3MgTmFtZWROb2RlTWFwOwogCiBjbGFzcyBEb2N1
bWVudFR5cGUgZmluYWwgOiBwdWJsaWMgTm9kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxEb2N1bWVudFR5cGU+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiBwdWJsaWNJZCwgY29uc3QgU3RyaW5nJiBzeXN0ZW1JZCkKKyAg
ICBzdGF0aWMgUmVmPERvY3VtZW50VHlwZT4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBjb25zdCBTdHJpbmcmIHN5
c3RlbUlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudFR5cGUo
ZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEb2N1bWVudFR5cGUoZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1J
ZCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSByZXR1cm4gbnVsbCBlbnRpdGllcyBhbmQg
bm90YXRpb25zLiBDdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIE5hbWVkTm9kZU1hcCBkb2Vzbid0
IHdvcmsgd2l0aG91dCBhbiBhc3NvY2lhdGVkIEVsZW1lbnQgeWV0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RW50aXR5UmVmZXJlbmNlLmNwcAppbmRleCA4OGFkNjg4Li5hMmZmNjNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcApAQCAtMzEsOSArMzEsOSBAQCBpbmxpbmUgRW50aXR5
UmVmZXJlbmNlOjpFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIGVudGl0eQogewogfQogCi1SZWZQdHI8RW50aXR5UmVmZXJlbmNlPiBFbnRpdHlSZWZlcmVu
Y2U6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZW50aXR5TmFtZSkK
K1JlZjxFbnRpdHlSZWZlcmVuY2U+IEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRW50aXR5UmVmZXJlbmNlKGRvY3VtZW50LCBlbnRpdHlOYW1lKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRW50aXR5UmVmZXJlbmNlKGRvY3VtZW50LCBlbnRpdHlOYW1lKSk7CiB9
CiAKIFN0cmluZyBFbnRpdHlSZWZlcmVuY2U6Om5vZGVOYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbnRpdHlSZWZlcmVuY2UuaAppbmRleCA1ZThkYThkLi4wM2Y0M2NkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VudGl0eVJlZmVyZW5jZS5oCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRW50aXR5UmVmZXJlbmNlIGZpbmFsIDogcHVibGljIENvbnRhaW5lck5vZGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8RW50aXR5UmVmZXJlbmNlPiBjcmVhdGUoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpOworICAgIHN0YXRpYyBSZWY8RW50aXR5
UmVmZXJlbmNlPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpOwog
CiBwcml2YXRlOgogICAgIEVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYg
ZW50aXR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggNzA2OTdhNC4uMmI1ZTk2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcApAQCAtMzgsMTkgKzM4LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmUHRyPFRleHQ+IFRleHQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgZGF0YSkKK1JlZjxUZXh0PiBUZXh0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmIGRhdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0KGRvY3VtZW50
LCBkYXRhLCBDcmVhdGVUZXh0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dChkb2N1
bWVudCwgZGF0YSwgQ3JlYXRlVGV4dCkpOwogfQogCi1SZWZQdHI8VGV4dD4gVGV4dDo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YSkKK1Jl
ZjxUZXh0PiBUZXh0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiBkYXRhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dChkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCksIGRhdGEsIENyZWF0ZVRleHQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUZXh0KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgZGF0YSwgQ3JlYXRl
VGV4dCkpOwogfQogCi1SZWZQdHI8VGV4dD4gVGV4dDo6Y3JlYXRlRWRpdGluZ1RleHQoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCitSZWY8VGV4dD4gVGV4dDo6Y3JlYXRl
RWRpdGluZ1RleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0KGRvY3VtZW50LCBkYXRhLCBDcmVhdGVFZGl0aW5n
VGV4dCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHQoZG9jdW1lbnQsIGRhdGEsIENy
ZWF0ZUVkaXRpbmdUZXh0KSk7CiB9CiAKIFRleHQ6On5UZXh0KCkKQEAgLTcxLDEzICs3MSwxMyBA
QCBSZWZQdHI8VGV4dD4gVGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAKICAgICBFdmVudFF1ZXVlU2NvcGUgc2NvcGU7CiAgICAgU3RyaW5nIG9sZFN0
ciA9IGRhdGEoKTsKLSAgICBSZWZQdHI8VGV4dD4gbmV3VGV4dCA9IHZpcnR1YWxDcmVhdGUob2xk
U3RyLnN1YnN0cmluZyhvZmZzZXQpKTsKKyAgICBSZWY8VGV4dD4gbmV3VGV4dCA9IHZpcnR1YWxD
cmVhdGUob2xkU3RyLnN1YnN0cmluZyhvZmZzZXQpKTsKICAgICBzZXREYXRhV2l0aG91dFVwZGF0
ZShvbGRTdHIuc3Vic3RyaW5nKDAsIG9mZnNldCkpOwogCiAgICAgZGlzcGF0Y2hNb2RpZmllZEV2
ZW50KG9sZFN0cik7CiAKICAgICBpZiAocGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJlbnROb2Rl
KCktPmluc2VydEJlZm9yZShuZXdUZXh0LmdldCgpLCBuZXh0U2libGluZygpLCBlYyk7CisgICAg
ICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld1RleHQucHRyKCksIG5leHRTaWJsaW5n
KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC04Nyw3ICs4Nyw3
IEBAIFJlZlB0cjxUZXh0PiBUZXh0OjpzcGxpdFRleHQodW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICBpZiAocmVuZGVyZXIoKSkKICAgICAgICAgcmVuZGVyZXIoKS0+c2V0
VGV4dFdpdGhPZmZzZXQoZGF0YUltcGwoKSwgMCwgb2xkU3RyLmxlbmd0aCgpKTsKIAotICAgIHJl
dHVybiBuZXdUZXh0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKG5ld1RleHQpOwog
fQogCiBzdGF0aWMgY29uc3QgVGV4dCogZWFybGllc3RMb2dpY2FsbHlBZGphY2VudFRleHROb2Rl
KGNvbnN0IFRleHQqIHRleHQpCkBAIC0yMDMsMjEgKzIwMywyMCBAQCBib29sIFRleHQ6OmNoaWxk
VHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQ
dHI8VGV4dD4gVGV4dDo6dmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGEpCitSZWY8VGV4
dD4gVGV4dDo6dmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGEpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZShkb2N1bWVudCgpLCBkYXRhKTsKIH0KIAotUmVmUHRyPFRleHQ+IFRleHQ6OmNyZWF0
ZVdpdGhMZW5ndGhMaW1pdChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGF0YSwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aExpbWl0KQorUmVmPFRleHQ+IFRleHQ6OmNy
ZWF0ZVdpdGhMZW5ndGhMaW1pdChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGF0
YSwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aExpbWl0KQogewogICAgIHVuc2lnbmVk
IGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aCgpOwogCiAgICAgaWYgKCFzdGFydCAmJiBkYXRhTGVu
Z3RoIDw9IGxlbmd0aExpbWl0KQogICAgICAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50LCBkYXRh
KTsKIAotICAgIFJlZlB0cjxUZXh0PiByZXN1bHQgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIFN0
cmluZygpKTsKKyAgICBSZWY8VGV4dD4gcmVzdWx0ID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBT
dHJpbmcoKSk7CiAgICAgcmVzdWx0LT5wYXJzZXJBcHBlbmREYXRhKGRhdGEsIHN0YXJ0LCBsZW5n
dGhMaW1pdCk7Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaAppbmRleCAyYjNk
NDA3Li45MWNkZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKQEAgLTM1LDEwICszNSwxMCBAQCBjbGFzcyBUZXh0
IDogcHVibGljIENoYXJhY3RlckRhdGEgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBkZWZhdWx0TGVuZ3RoTGltaXQgPSAxIDw8IDE2OwogCi0gICAgc3RhdGljIFJlZlB0cjxU
ZXh0PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgUmVmUHRy
PFRleHQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJik7Ci0g
ICAgc3RhdGljIFJlZlB0cjxUZXh0PiBjcmVhdGVXaXRoTGVuZ3RoTGltaXQoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmLCB1bnNpZ25lZCBwb3NpdGlvbkluU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGhM
aW1pdCA9IGRlZmF1bHRMZW5ndGhMaW1pdCk7Ci0gICAgc3RhdGljIFJlZlB0cjxUZXh0PiBjcmVh
dGVFZGl0aW5nVGV4dChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBSZWY8
VGV4dD4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIFJlZjxU
ZXh0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYpOworICAg
IHN0YXRpYyBSZWY8VGV4dD4gY3JlYXRlV2l0aExlbmd0aExpbWl0KERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQgcG9zaXRpb25JblN0cmluZywgdW5zaWduZWQgbGVuZ3RoTGltaXQg
PSBkZWZhdWx0TGVuZ3RoTGltaXQpOworICAgIHN0YXRpYyBSZWY8VGV4dD4gY3JlYXRlRWRpdGlu
Z1RleHQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgflRleHQoKTsK
IApAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBSZWZQdHI8VGV4dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcm
KTsKKyAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpOwog
CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKaW5kZXggZGMzMTE2Ni4uYmJlMmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFy
a3VwLmNwcApAQCAtOTk0LDE1ICs5OTQsMTUgQEAgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4
dChDb250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXAKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IFRleHQ6
OmNyZWF0ZShjb250YWluZXJOb2RlLT5kb2N1bWVudCgpLCB0ZXh0KTsKKyAgICBSZWY8VGV4dD4g
dGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoY29udGFpbmVyTm9kZS0+ZG9jdW1lbnQoKSwgdGV4dCk7
CiAKICAgICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29udGFp
bmVyTm9kZS0+cmVwbGFjZUNoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgY29udGFpbmVyTm9kZS0+
Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChX
VEY6Om1vdmUodGV4dE5vZGUpLCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxkcmVu
KCk7Ci0gICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgpLCBl
Yyk7CisgICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwg
ZWMpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9y
eURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQu
Y3BwCmluZGV4IDY3OTY0ODAuLjY2NjFmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQ
RGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC00OCw5ICs0OCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAgICAgCiBjbGFzcyBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlciBmaW5hbCA6
IHB1YmxpYyBIVE1MRG9jdW1lbnRQYXJzZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8
RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShIVE1MRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIHN0YXRpYyBSZWY8RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShIVE1M
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
VFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOwogICAgIH0K
IAogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikgb3ZlcnJp
ZGU7CkBAIC00MzIsNyArNDMyLDcgQEAgRlRQRGlyZWN0b3J5RG9jdW1lbnQ6OkZUUERpcmVjdG9y
eURvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAjZW5kaWYKIH0KIAotUmVm
UHRyPERvY3VtZW50UGFyc2VyPiBGVFBEaXJlY3RvcnlEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkK
K1JlZjxEb2N1bWVudFBhcnNlcj4gRlRQRGlyZWN0b3J5RG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigp
CiB7CiAgICAgcmV0dXJuIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oCmluZGV4IDdj
YTE5ZTcuLmQxZDNkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0
b3J5RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3Vt
ZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEZUUERpcmVj
dG9yeURvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJik7Ci0gICAgdmlydHVhbCBSZWZQdHI8RG9j
dW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPERv
Y3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKIH07CiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXggYTY5
M2ViMC4uODhiOWIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcApAQCAtMjI0
LDcgKzIyNCw3IEBAIHZvaWQgSFRNTERvY3VtZW50OjpyZWxlYXNlRXZlbnRzKCkKIHsKIH0KIAot
UmVmUHRyPERvY3VtZW50UGFyc2VyPiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCitSZWY8
RG9jdW1lbnRQYXJzZXI+IEhUTUxEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsKICAgICByZXR1
cm4gSFRNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMpOwogfQpAQCAtMzQyLDcgKzM0Miw3
IEBAIGJvb2wgSFRNTERvY3VtZW50Ojppc0ZyYW1lU2V0KCkgY29uc3QKICAgICByZXR1cm4gaXM8
SFRNTEZyYW1lU2V0RWxlbWVudD4oYm9keSgpKTsKIH0KIAotUmVmUHRyPERvY3VtZW50PiBIVE1M
RG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdAorUmVmPERvY3Vt
ZW50PiBIVE1MRG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdAog
ewogICAgIHJldHVybiBjcmVhdGUobnVsbHB0ciwgdXJsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmgKaW5kZXggOWU5YWEyNS4uNGE2YTQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudC5oCkBAIC0zMSwxNCArMzEsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBIVE1MRG9jdW1lbnQgOiBwdWJsaWMgRG9jdW1lbnQsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZShG
cmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8SFRNTERvY3VtZW50
PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTERvY3VtZW50KGZyYW1lLCB1cmwsIEhUTUxEb2N1bWVudENs
YXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxEb2N1bWVudChmcmFtZSwg
dXJsLCBIVE1MRG9jdW1lbnRDbGFzcykpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWZQdHI8SFRN
TERvY3VtZW50PiBjcmVhdGVTeW50aGVzaXplZERvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3Qg
VVJMJiB1cmwpCisgICAgc3RhdGljIFJlZjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZVN5bnRoZXNpemVk
RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTERvY3VtZW50KGZyYW1lLCB1cmwsIEhUTUxEb2N1bWVudENs
YXNzLCBTeW50aGVzaXplZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MRG9j
dW1lbnQoZnJhbWUsIHVybCwgSFRNTERvY3VtZW50Q2xhc3MsIFN5bnRoZXNpemVkKSk7CiAgICAg
fQogCiAgICAgdmlydHVhbCB+SFRNTERvY3VtZW50KCk7CkBAIC04OSw4ICs4OSw4IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHRhZ05hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1
YWwgYm9vbCBpc0ZyYW1lU2V0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8
RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVm
UHRyPERvY3VtZW50PiBjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVuKCkgY29uc3Qgb3ZlcnJp
ZGUgZmluYWw7CisgICAgdmlydHVhbCBSZWY8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPERvY3VtZW50PiBjbG9uZURvY3VtZW50V2l0aG91
dENoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBEb2N1bWVudE9yZGVyZWRN
YXAgbV9kb2N1bWVudE5hbWVkSXRlbTsKICAgICBEb2N1bWVudE9yZGVyZWRNYXAgbV93aW5kb3dO
YW1lZEl0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAppbmRleCBhM2JjMWRi
Li44OTFlNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKQEAgLTU0LDcg
KzU0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICNpZiAhUExBVEZPUk0oSU9TKQog
Y2xhc3MgSW1hZ2VFdmVudExpc3RlbmVyIGZpbmFsIDogcHVibGljIEV2ZW50TGlzdGVuZXIgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VFdmVudExpc3RlbmVyPiBjcmVhdGUoSW1h
Z2VEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbWFnZUV2ZW50TGlz
dGVuZXIoZG9jdW1lbnQpKTsgfQorICAgIHN0YXRpYyBSZWY8SW1hZ2VFdmVudExpc3RlbmVyPiBj
cmVhdGUoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1h
Z2VFdmVudExpc3RlbmVyKGRvY3VtZW50KSk7IH0KIAogcHJpdmF0ZToKICAgICBJbWFnZUV2ZW50
TGlzdGVuZXIoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC03Miw5ICs3Miw5IEBAIHByaXZh
dGU6CiAKIGNsYXNzIEltYWdlRG9jdW1lbnRQYXJzZXIgZmluYWwgOiBwdWJsaWMgUmF3RGF0YURv
Y3VtZW50UGFyc2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlRG9jdW1lbnRQ
YXJzZXI+IGNyZWF0ZShJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPElt
YWdlRG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1hZ2VEb2N1bWVudFBhcnNlcihkb2N1bWVu
dCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZURvY3VtZW50UGFyc2VyKGRv
Y3VtZW50KSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMjAyLDcgKzIwMiw3IEBAIEltYWdlRG9j
dW1lbnQ6OkltYWdlRG9jdW1lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICBs
b2NrQ29tcGF0aWJpbGl0eU1vZGUoKTsKIH0KICAgICAKLVJlZlB0cjxEb2N1bWVudFBhcnNlcj4g
SW1hZ2VEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKK1JlZjxEb2N1bWVudFBhcnNlcj4gSW1hZ2VE
b2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsKICAgICByZXR1cm4gSW1hZ2VEb2N1bWVudFBhcnNl
cjo6Y3JlYXRlKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmgKaW5kZXgg
NzFkNWJhYy4uNWU3ZTRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmgKQEAgLTM0
LDkgKzM0LDkgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIAogY2xhc3MgSW1hZ2VEb2N1bWVu
dCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQ
dHI8SW1hZ2VEb2N1bWVudD4gY3JlYXRlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCisg
ICAgc3RhdGljIFJlZjxJbWFnZURvY3VtZW50PiBjcmVhdGUoRnJhbWUmIGZyYW1lLCBjb25zdCBV
UkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1hZ2VEb2N1bWVu
dChmcmFtZSwgdXJsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlRG9jdW1l
bnQoZnJhbWUsIHVybCkpOwogICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxJbWFnZUVs
ZW1lbnQqIGltYWdlRWxlbWVudCgpIGNvbnN0OwpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIEltYWdlRG9jdW1lbnQoRnJhbWUmLCBjb25zdCBVUkwmKTsKIAotICAgIHZp
cnR1YWwgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiAK
ICAgICBMYXlvdXRTaXplIGltYWdlU2l6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3Vt
ZW50LmNwcAppbmRleCA0MWEzNzAxLi41MWUwNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFE
b2N1bWVudC5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCBNZWRpYURvY3VtZW50Ojp+TWVkaWFEb2N1
bWVudCgpCiAgICAgQVNTRVJUKCFtX3JlcGxhY2VNZWRpYUVsZW1lbnRUaW1lci5pc0FjdGl2ZSgp
KTsKIH0KIAotUmVmUHRyPERvY3VtZW50UGFyc2VyPiBNZWRpYURvY3VtZW50OjpjcmVhdGVQYXJz
ZXIoKQorUmVmPERvY3VtZW50UGFyc2VyPiBNZWRpYURvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQog
ewogICAgIHJldHVybiBNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuaAppbmRleCA5MTc5ODhjLi4xY2NhNzg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRG9jdW1lbnQuaApAQCAtMzQsOSArMzQsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIE1lZGlhRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMgSFRNTERvY3VtZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPE1lZGlhRG9jdW1lbnQ+IGNyZWF0ZShGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8TWVkaWFEb2N1bWVudD4g
Y3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1lZGlhRG9jdW1lbnQoZnJhbWUsIHVybCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURvY3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAgICAg
dmlydHVhbCB+TWVkaWFEb2N1bWVudCgpOwogCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgTWVkaWFEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYpOwogCi0gICAgdmly
dHVhbCBSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKaW5kZXggNzdlMTRjZC4uNzc5NmMy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKQEAgLTQ2LDkgKzQ2LDkg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIC8vIEZJWE1FOiBTaGFyZSBtb3JlIGNvZGUg
d2l0aCBNZWRpYURvY3VtZW50UGFyc2VyLgogY2xhc3MgUGx1Z2luRG9jdW1lbnRQYXJzZXIgZmlu
YWwgOiBwdWJsaWMgUmF3RGF0YURvY3VtZW50UGFyc2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmUHRyPFBsdWdpbkRvY3VtZW50UGFyc2VyPiBjcmVhdGUoUGx1Z2luRG9jdW1lbnQmIGRvY3Vt
ZW50KQorICAgIHN0YXRpYyBSZWY8UGx1Z2luRG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShQbHVnaW5E
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBs
dWdpbkRvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFBsdWdpbkRvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7CiAgICAgfQogCiBwcml2YXRlOgpA
QCAtMTQ4LDcgKzE0OCw3IEBAIFBsdWdpbkRvY3VtZW50OjpQbHVnaW5Eb2N1bWVudChGcmFtZSog
ZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwogfQog
Ci1SZWZQdHI8RG9jdW1lbnRQYXJzZXI+IFBsdWdpbkRvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQor
UmVmPERvY3VtZW50UGFyc2VyPiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsKICAg
ICByZXR1cm4gUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcyk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKaW5kZXggYTI4MWRlOS4uYWUyMzc5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaApAQCAtMzQsOSArMzQsOSBAQCBjbGFzcyBXaWRnZXQ7
CiAKIGNsYXNzIFBsdWdpbkRvY3VtZW50IGZpbmFsIDogcHVibGljIEhUTUxEb2N1bWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxQbHVnaW5Eb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBm
cmFtZSwgY29uc3QgVVJMJiB1cmwpCisgICAgc3RhdGljIFJlZjxQbHVnaW5Eb2N1bWVudD4gY3Jl
YXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFBsdWdpbkRvY3VtZW50KGZyYW1lLCB1cmwpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgUGx1Z2luRG9jdW1lbnQoZnJhbWUsIHVybCkpOwogICAgIH0KIAogICAg
IHZvaWQgc2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQbHVnSW5FbGVtZW50Pik7CkBA
IC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUGx1Z2luRG9jdW1lbnQoRnJh
bWUqLCBjb25zdCBVUkwmKTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBj
cmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxEb2N1bWVudFBhcnNlcj4g
Y3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFNob3VsZExvYWRQbHVnaW5N
YW51YWxseShib29sIGxvYWRNYW51YWxseSkgeyBtX3Nob3VsZExvYWRQbHVnaW5NYW51YWxseSA9
IGxvYWRNYW51YWxseTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRE
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVudC5jcHAKaW5kZXgg
NjZiMGY4Zi4uNzFiM2VmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50LmNwcApAQCAt
MzYsNyArMzYsNyBAQCBUZXh0RG9jdW1lbnQ6OlRleHREb2N1bWVudChGcmFtZSogZnJhbWUsIGNv
bnN0IFVSTCYgdXJsKQogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwogfQogCi1SZWZQdHI8
RG9jdW1lbnRQYXJzZXI+IFRleHREb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKK1JlZjxEb2N1bWVu
dFBhcnNlcj4gVGV4dERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogewogICAgIHJldHVybiBUZXh0
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHREb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RG9jdW1l
bnQuaAppbmRleCBhNWQyN2ZhLi5kOTQ3ZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHREb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3VtZW50
LmgKQEAgLTMxLDE1ICszMSwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRleHRE
b2N1bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWZQdHI8VGV4dERvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVy
bCkKKyAgICBzdGF0aWMgUmVmPFRleHREb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29u
c3QgVVJMJiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHREb2N1
bWVudChmcmFtZSwgdXJsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHREb2N1
bWVudChmcmFtZSwgdXJsKSk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIFRleHREb2N1bWVudChG
cmFtZSosIGNvbnN0IFVSTCYpOwogICAgIAotICAgIHZpcnR1YWwgUmVmUHRyPERvY3VtZW50UGFy
c2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxEb2N1bWVudFBh
cnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKaW5kZXggOGQ2M2Iy
Yi4uMzUwODE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENv
bnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxD
b25zdHJ1Y3Rpb25TaXRlLmNwcApAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQgSFRNTENvbnN0cnVj
dGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVycywgV2hpdGVz
cGFjZU1vCiAgICAgfQogCiAgICAgd2hpbGUgKGN1cnJlbnRQb3NpdGlvbiA8IGNoYXJhY3RlcnMu
bGVuZ3RoKCkpIHsKLSAgICAgICAgUmVmUHRyPFRleHQ+IHRleHROb2RlID0gVGV4dDo6Y3JlYXRl
V2l0aExlbmd0aExpbWl0KHRhc2sucGFyZW50LT5kb2N1bWVudCgpLCBzaG91bGRVc2VBdG9taWNT
dHJpbmcgPyBBdG9taWNTdHJpbmcoY2hhcmFjdGVycykuc3RyaW5nKCkgOiBjaGFyYWN0ZXJzLCBj
dXJyZW50UG9zaXRpb24sIGxlbmd0aExpbWl0KTsKKyAgICAgICAgUmVmPFRleHQ+IHRleHROb2Rl
ID0gVGV4dDo6Y3JlYXRlV2l0aExlbmd0aExpbWl0KHRhc2sucGFyZW50LT5kb2N1bWVudCgpLCBz
aG91bGRVc2VBdG9taWNTdHJpbmcgPyBBdG9taWNTdHJpbmcoY2hhcmFjdGVycykuc3RyaW5nKCkg
OiBjaGFyYWN0ZXJzLCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aExpbWl0KTsKICAgICAgICAgLy8g
SWYgd2UgaGF2ZSBhIHdob2xlIHN0cmluZyBvZiB1bmJyZWFrYWJsZSBjaGFyYWN0ZXJzIHRoZSBh
Ym92ZSBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3AuIEV4Y2VlZGluZyB0aGUgbGVuZ3Ro
IGxpbWl0IGlzIHRoZSBsZXNzZXIgZXZpbC4KICAgICAgICAgaWYgKCF0ZXh0Tm9kZS0+bGVuZ3Ro
KCkpIHsKICAgICAgICAgICAgIFN0cmluZyBzdWJzdHJpbmcgPSBjaGFyYWN0ZXJzLnN1YnN0cmlu
ZyhjdXJyZW50UG9zaXRpb24pOwpAQCAtNTYyLDcgKzU2Miw3IEBAIHZvaWQgSFRNTENvbnN0cnVj
dGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVycywgV2hpdGVz
cGFjZU1vCiAKICAgICAgICAgY3VycmVudFBvc2l0aW9uICs9IHRleHROb2RlLT5sZW5ndGgoKTsK
ICAgICAgICAgQVNTRVJUKGN1cnJlbnRQb3NpdGlvbiA8PSBjaGFyYWN0ZXJzLmxlbmd0aCgpKTsK
LSAgICAgICAgdGFzay5jaGlsZCA9IHRleHROb2RlLnJlbGVhc2UoKTsKKyAgICAgICAgdGFzay5j
aGlsZCA9IFdURjo6bW92ZSh0ZXh0Tm9kZSk7CiAKICAgICAgICAgZXhlY3V0ZVRhc2sodGFzayk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuaAppbmRleCA5MWFkYzNkLi42Y2ZlOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNjIsOSArNjIsOSBAQCBjbGFzcyBQdW1w
U2Vzc2lvbjsKIGNsYXNzIEhUTUxEb2N1bWVudFBhcnNlciA6ICBwdWJsaWMgU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyLCBIVE1MU2NyaXB0UnVubmVySG9zdCwgQ2FjaGVkUmVzb3VyY2VDbGllbnQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBSZWZQ
dHI8SFRNTERvY3VtZW50UGFyc2VyPiBjcmVhdGUoSFRNTERvY3VtZW50JiBkb2N1bWVudCkKKyAg
ICBzdGF0aWMgUmVmPEhUTUxEb2N1bWVudFBhcnNlcj4gY3JlYXRlKEhUTUxEb2N1bWVudCYgZG9j
dW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEb2N1bWVudFBh
cnNlcihkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MRG9jdW1l
bnRQYXJzZXIoZG9jdW1lbnQpKTsKICAgICB9CiAgICAgdmlydHVhbCB+SFRNTERvY3VtZW50UGFy
c2VyKCk7CiAKQEAgLTkzLDkgKzkzLDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZm9yY2VQbGFp
bnRleHRGb3JUZXh0RG9jdW1lbnQoKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgUmVmUHRyPEhU
TUxEb2N1bWVudFBhcnNlcj4gY3JlYXRlKERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZW50LCBFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250ZW50UG9s
aWN5KQorICAgIHN0YXRpYyBSZWY8SFRNTERvY3VtZW50UGFyc2VyPiBjcmVhdGUoRG9jdW1lbnRG
cmFnbWVudCYgZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQYXJzZXJDb250ZW50
UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3kpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEhUTUxEb2N1bWVudFBhcnNlcihmcmFnbWVudCwgY29udGV4dEVsZW1lbnQsIHBhcnNl
ckNvbnRlbnRQb2xpY3kpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTERvY3Vt
ZW50UGFyc2VyKGZyYWdtZW50LCBjb250ZXh0RWxlbWVudCwgcGFyc2VyQ29udGVudFBvbGljeSkp
OwogICAgIH0KIAogICAgIC8vIERvY3VtZW50UGFyc2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5r
RG9jdW1lbnQuY3BwCmluZGV4IGZjNGJiM2EuLmE1MzBmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TaW5rRG9jdW1lbnQuY3BwCkBAIC0zMiw5ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU2lua0RvY3VtZW50UGFyc2VyIGZpbmFsIDogcHVibGljIFJhd0RhdGFEb2N1bWVu
dFBhcnNlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxTaW5rRG9jdW1lbnRQYXJzZXI+
IGNyZWF0ZShTaW5rRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8U2lua0RvY3Vt
ZW50UGFyc2VyPiBjcmVhdGUoU2lua0RvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU2lua0RvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNpbmtEb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOwog
ICAgIH0KICAgICAKIHByaXZhdGU6CkBAIC01Niw3ICs1Niw3IEBAIFNpbmtEb2N1bWVudDo6U2lu
a0RvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgbG9ja0NvbXBhdGli
aWxpdHlNb2RlKCk7CiB9CiAKLVJlZlB0cjxEb2N1bWVudFBhcnNlcj4gU2lua0RvY3VtZW50Ojpj
cmVhdGVQYXJzZXIoKQorUmVmPERvY3VtZW50UGFyc2VyPiBTaW5rRG9jdW1lbnQ6OmNyZWF0ZVBh
cnNlcigpCiB7CiAgICAgcmV0dXJuIFNpbmtEb2N1bWVudFBhcnNlcjo6Y3JlYXRlKCp0aGlzKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuaAppbmRleCBjNzgxZjY5Li5lNzkzNDNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5oCkBAIC0zMiwxNSArMzIsMTUgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTaW5rRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTERvY3VtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPFNpbmtEb2N1bWVudD4g
Y3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCisgICAgc3RhdGljIFJlZjxTaW5r
RG9jdW1lbnQ+IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaW5rRG9jdW1lbnQoZnJhbWUsIHVybCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaW5rRG9jdW1lbnQoZnJhbWUsIHVybCkpOwogICAg
IH0KIAogcHJpdmF0ZToKICAgICBTaW5rRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmKTsKICAg
ICAKLSAgICB2aXJ0dWFsIFJlZlB0cjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCk7Cisg
ICAgdmlydHVhbCBSZWY8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpOwogfTsKIAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0RvY3VtZW50LmNwcAppbmRleCAwZGVhMDhmLi4zODc3OWFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdEb2N1bWVudC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBTVkdEb2N1bWVu
dDo6dXBkYXRlUGFuKGNvbnN0IEZsb2F0UG9pbnQmIHBvcykgY29uc3QKICAgICB9CiB9CiAKLVJl
ZlB0cjxEb2N1bWVudD4gU1ZHRG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4o
KSBjb25zdAorUmVmPERvY3VtZW50PiBTVkdEb2N1bWVudDo6Y2xvbmVEb2N1bWVudFdpdGhvdXRD
aGlsZHJlbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNyZWF0ZShudWxscHRyLCB1cmwoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5oCmluZGV4IGZmNTFkNTYuLjJiYWM5OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdEb2N1bWVudC5oCkBAIC0zMiw5ICszMiw5IEBAIGNsYXNzIFNWR1NWR0VsZW1lbnQ7
CiAKIGNsYXNzIFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIERvY3VtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPFNWR0RvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25z
dCBVUkwmIHVybCkKKyAgICBzdGF0aWMgUmVmPFNWR0RvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZy
YW1lLCBjb25zdCBVUkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U1ZHRG9jdW1lbnQoZnJhbWUsIHVybCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdEb2N1bWVudChmcmFtZSwgdXJsKSk7CiAgICAgfQogCiAgICAgU1ZHU1ZHRWxlbWVudCogcm9v
dEVsZW1lbnQoKSBjb25zdDsKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBTVkdEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYpOwogCi0gICAgdmlydHVhbCBSZWZQdHI8
RG9jdW1lbnQ+IGNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlZjxEb2N1bWVudD4gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgRmxvYXRQb2ludCBtX3RyYW5zbGF0ZTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmggYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggMzFmMDJi
Yy4uMjJlODc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXIuaApAQCAtNTIsOCArNTIsOCBAQCBjbGFzcyBUZXh0OwogCiAgICAgY2xhc3MgWE1MUGFy
c2VyQ29udGV4dCA6IHB1YmxpYyBSZWZDb3VudGVkPFhNTFBhcnNlckNvbnRleHQ+IHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhNTFBhcnNlckNvbnRleHQ+IGNyZWF0
ZU1lbW9yeVBhcnNlcih4bWxTQVhIYW5kbGVyUHRyLCB2b2lkKiB1c2VyRGF0YSwgY29uc3QgQ1N0
cmluZyYgY2h1bmspOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxYTUxQYXJzZXJDb250ZXh0
PiBjcmVhdGVTdHJpbmdQYXJzZXIoeG1sU0FYSGFuZGxlclB0ciwgdm9pZCogdXNlckRhdGEpOwor
ICAgICAgICBzdGF0aWMgUmVmUHRyPFhNTFBhcnNlckNvbnRleHQ+IGNyZWF0ZU1lbW9yeVBhcnNl
cih4bWxTQVhIYW5kbGVyUHRyLCB2b2lkKiB1c2VyRGF0YSwgY29uc3QgQ1N0cmluZyYgY2h1bmsp
OworICAgICAgICBzdGF0aWMgUmVmPFhNTFBhcnNlckNvbnRleHQ+IGNyZWF0ZVN0cmluZ1BhcnNl
cih4bWxTQVhIYW5kbGVyUHRyLCB2b2lkKiB1c2VyRGF0YSk7CiAgICAgICAgIH5YTUxQYXJzZXJD
b250ZXh0KCk7CiAgICAgICAgIHhtbFBhcnNlckN0eHRQdHIgY29udGV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGV4dDsgfQogCkBAIC02OCwxMyArNjgsMTMgQEAgY2xhc3MgVGV4dDsKICAgICBj
bGFzcyBYTUxEb2N1bWVudFBhcnNlciA6IHB1YmxpYyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIs
IHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8WE1MRG9jdW1l
bnRQYXJzZXI+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZyYW1lVmlldyogdmlldykKKyAg
ICAgICAgc3RhdGljIFJlZjxYTUxEb2N1bWVudFBhcnNlcj4gY3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgRnJhbWVWaWV3KiB2aWV3KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFhNTERvY3VtZW50UGFyc2VyKGRvY3VtZW50LCB2aWV3KSk7CisgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBYTUxEb2N1bWVudFBhcnNlcihkb2N1bWVudCwgdmlldykp
OwogICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhNTERvY3VtZW50UGFyc2Vy
PiBjcmVhdGUoRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lbnQsIEVsZW1lbnQqIGVsZW1lbnQsIFBh
cnNlckNvbnRlbnRQb2xpY3kgcGFyc2VyQ29udGVudFBvbGljeSkKKyAgICAgICAgc3RhdGljIFJl
ZjxYTUxEb2N1bWVudFBhcnNlcj4gY3JlYXRlKERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZW50LCBF
bGVtZW50KiBlbGVtZW50LCBQYXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3kp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgWE1MRG9jdW1lbnRQ
YXJzZXIoZnJhZ21lbnQsIGVsZW1lbnQsIHBhcnNlckNvbnRlbnRQb2xpY3kpKTsKKyAgICAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhNTERvY3VtZW50UGFyc2VyKGZyYWdtZW50LCBlbGVt
ZW50LCBwYXJzZXJDb250ZW50UG9saWN5KSk7CiAgICAgICAgIH0KIAogICAgICAgICB+WE1MRG9j
dW1lbnRQYXJzZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCBhZjEwYzZjLi5lZmE4YzUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnht
bDIuY3BwCkBAIC01MDgsNyArNTA4LDcgQEAgc3RhdGljIHZvaWQgZXJyb3JGdW5jKHZvaWQqLCBj
b25zdCBjaGFyKiwgLi4uKQogCiBzdGF0aWMgYm9vbCBkaWRJbml0ID0gZmFsc2U7CiAKLVBhc3NS
ZWZQdHI8WE1MUGFyc2VyQ29udGV4dD4gWE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlU3RyaW5nUGFy
c2VyKHhtbFNBWEhhbmRsZXJQdHIgaGFuZGxlcnMsIHZvaWQqIHVzZXJEYXRhKQorUmVmPFhNTFBh
cnNlckNvbnRleHQ+IFhNTFBhcnNlckNvbnRleHQ6OmNyZWF0ZVN0cmluZ1BhcnNlcih4bWxTQVhI
YW5kbGVyUHRyIGhhbmRsZXJzLCB2b2lkKiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIWRpZEluaXQp
IHsKICAgICAgICAgeG1sSW5pdFBhcnNlcigpOwpAQCAtNTMxLDcgKzUzMSw3IEBAIFBhc3NSZWZQ
dHI8WE1MUGFyc2VyQ29udGV4dD4gWE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlU3RyaW5nUGFyc2Vy
KHhtbFNBWEhhbmRsZXJQCiAKIAogLy8gQ2h1bmsgc2hvdWxkIGJlIGVuY29kZWQgaW4gVVRGLTgK
LVBhc3NSZWZQdHI8WE1MUGFyc2VyQ29udGV4dD4gWE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVt
b3J5UGFyc2VyKHhtbFNBWEhhbmRsZXJQdHIgaGFuZGxlcnMsIHZvaWQqIHVzZXJEYXRhLCBjb25z
dCBDU3RyaW5nJiBjaHVuaykKK1JlZlB0cjxYTUxQYXJzZXJDb250ZXh0PiBYTUxQYXJzZXJDb250
ZXh0OjpjcmVhdGVNZW1vcnlQYXJzZXIoeG1sU0FYSGFuZGxlclB0ciBoYW5kbGVycywgdm9pZCog
dXNlckRhdGEsIGNvbnN0IENTdHJpbmcmIGNodW5rKQogewogICAgIGlmICghZGlkSW5pdCkgewog
ICAgICAgICB4bWxJbml0UGFyc2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggODg5ZWQyZC4uOGI4
ODhlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTEyLTE4ICBBbmRy
ZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBSZWYtaWZ5IHZhcmlvdXMg
RG9jdW1lbnQtcmVsYXRlZCB0aGluZ3MuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8x
Mzk3OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfcmVwbGFjZVNlbGVj
dGlvbldpdGhOb2RlOnNlbGVjdFJlcGxhY2VtZW50OnNtYXJ0UmVwbGFjZTptYXRjaFN0eWxlOl0p
OgorCiAyMDE0LTEyLTE4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgYWx3YXlzVXNlQmFzZWxpbmVPZlByaW1hcnlGb250IHNldHRpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDE3MGJmOGQuLjEwYzljZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtOTEzLDcgKzkxMyw3IEBAIHN0YXRp
YyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVy
KQogCiAtICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9uV2l0aE5vZGU6KERPTU5vZGUgKilub2RlIHNl
bGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTooQk9P
TClzbWFydFJlcGxhY2UgbWF0Y2hTdHlsZTooQk9PTCltYXRjaFN0eWxlCiB7Ci0gICAgRE9NRG9j
dW1lbnRGcmFnbWVudCAqZnJhZ21lbnQgPSBraXQoX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZG9jdW1l
bnQoKS0+Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLmdldCgpKTsKKyAgICBET01Eb2N1bWVudEZy
YWdtZW50ICpmcmFnbWVudCA9IGtpdChfcHJpdmF0ZS0+Y29yZUZyYW1lLT5kb2N1bWVudCgpLT5j
cmVhdGVEb2N1bWVudEZyYWdtZW50KCkucHRyKCkpOwogICAgIFtmcmFnbWVudCBhcHBlbmRDaGls
ZDpub2RlXTsKICAgICBbc2VsZiBfcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudDpmcmFnbWVu
dCBzZWxlY3RSZXBsYWNlbWVudDpzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6c21hcnRS
ZXBsYWNlIG1hdGNoU3R5bGU6bWF0Y2hTdHlsZV07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzdjMWRmZS4u
MjYyYmI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTEyLTE4ICBBbmRyZWFz
IEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBSZWYtaWZ5IHZhcmlvdXMgRG9j
dW1lbnQtcmVsYXRlZCB0aGluZ3MuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzk3
OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbToKKyAgICAg
ICAgKC1bV0tET01Eb2N1bWVudCBjcmVhdGVUZXh0Tm9kZTpdKToKKwogMjAxNC0xMi0xOCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIE1hY2hT
ZW5kUmlnaHQgY2xhc3MgdG8gV2ViQ29yZSBhbmQgdXNlIGl0IGluIElPU3VyZmFjZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQppbmRleCA4MzE2NjI5Li41MTNjY2JmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tE
T01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQpAQCAtNDQsNyArNDQsNyBAQAogCiAtIChXS0RP
TVRleHQgKiljcmVhdGVUZXh0Tm9kZTooTlNTdHJpbmcgKilkYXRhCiB7Ci0gICAgcmV0dXJuIFdl
YktpdDo6dG9XS0RPTVRleHQoZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KCpfaW1wbCkuY3Jl
YXRlVGV4dE5vZGUoZGF0YSkuZ2V0KCkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvV0tET01UZXh0
KGRvd25jYXN0PFdlYkNvcmU6OkRvY3VtZW50PigqX2ltcGwpLmNyZWF0ZVRleHROb2RlKGRhdGEp
LnB0cigpKTsKIH0KIAogLSAoV0tET01FbGVtZW50ICopYm9keQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243528</attachid>
            <date>2014-12-18 16:14:26 -0800</date>
            <delta_ts>2014-12-18 19:11:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139796-2.diff</filename>
            <type>text/plain</type>
            <size>48538</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNWVlZGJmLi5kZDBhODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODgg
QEAKKzIwMTQtMTItMTggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlZi1pZnkgdmFyaW91cyBEb2N1bWVudC1yZWxhdGVkIHRoaW5ncy4KKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTc5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTC5tbToKKyAgICAgICAg
KC1bRE9NSFRNTERvY3VtZW50IGNyZWF0ZURvY3VtZW50RnJhZ21lbnRXaXRoVGV4dDpdKToKKyAg
ICAgICAgKiBkb20vQ0RBVEFTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNEQVRBU2Vj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNEQVRBU2VjdGlvbjo6dmlydHVhbENy
ZWF0ZSk6CisgICAgICAgICogZG9tL0NEQVRBU2VjdGlvbi5oOgorICAgICAgICAqIGRvbS9Db21t
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICog
ZG9tL0NvbW1lbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3Jl
YXRlRG9jdW1lbnRGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRl
VGV4dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZUNvbW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZUVkaXRpbmdUZXh0Tm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6Y3JlYXRlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZVBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xvbmVOb2RlSW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRXaXRob3V0Q2hp
bGRyZW4pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlWEhUTUwp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZU5vblJlbmRlcmVkUGxhY2Vob2xk
ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJh
Z21lbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRUeXBlLmg6CisgICAgICAgICogZG9tL0Vu
dGl0eVJlZmVyZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbnRpdHlSZWZlcmVuY2U6OmNy
ZWF0ZSk6CisgICAgICAgICogZG9tL0VudGl0eVJlZmVyZW5jZS5oOgorICAgICAgICAqIGRvbS9U
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0OjpjcmVhdGVFZGl0aW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojpz
cGxpdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dDo6dmlydHVhbENyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0OjpjcmVhdGVXaXRoTGVuZ3RoTGltaXQpOgorICAgICAgICAqIGRv
bS9UZXh0Lmg6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVwbGFjZUNoaWxkcmVuV2l0aFRleHQpOgorICAgICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RlRQRGlyZWN0b3J5RG9jdW1lbnQ6OmNy
ZWF0ZVBhcnNlcik6CisgICAgICAgICogaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1
bWVudDo6Y3JlYXRlUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6Y2xv
bmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbik6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxEb2N1bWVudDo6Y3JlYXRlU3ludGhlc2l6ZWREb2N1bWVudCk6CisgICAgICAg
ICogaHRtbC9JbWFnZURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRG9jdW1l
bnQ6OmNyZWF0ZVBhcnNlcik6CisgICAgICAgICogaHRtbC9JbWFnZURvY3VtZW50Lmg6CisgICAg
ICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9j
dW1lbnQ6OmNyZWF0ZVBhcnNlcik6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5Eb2N1bWVudDo6Y3JlYXRlUGFyc2VyKToKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50
Lmg6CisgICAgICAgICogaHRtbC9UZXh0RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dERvY3VtZW50OjpjcmVhdGVQYXJzZXIpOgorICAgICAgICAqIGh0bWwvVGV4dERvY3VtZW50
Lmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvU2lua0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbmtEb2N1bWVudDo6Y3JlYXRlUGFyc2Vy
KToKKyAgICAgICAgKiBsb2FkZXIvU2lua0RvY3VtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RvY3VtZW50OjpjbG9uZURvY3VtZW50
V2l0aG91dENoaWxkcmVuKToKKyAgICAgICAgKiBzdmcvU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAg
KiB4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpYTUxE
b2N1bWVudFBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTERvY3VtZW50
UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxQYXJzZXJDb250ZXh0Ojpj
cmVhdGVTdHJpbmdQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MUGFyc2VyQ29udGV4dDo6
Y3JlYXRlTWVtb3J5UGFyc2VyKToKKwogMjAxNC0xMi0xOCAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFTU0VSVCBzZWVuIGNs
b3Npbmcvb3BlbmluZyBtdWx0aXBsZSBpbnNwZWN0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUwubW0KaW5kZXggZDZjNGRkZi4uNDFjODMzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTC5tbQpAQCAtMTUyLDcgKzE1Miw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKWNyZWF0ZURvY3VtZW50RnJhZ21l
bnRXaXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0CiB7CiAgICAgLy8gRklYTUU6IFNpbmNlIHRoaXMg
aXMgbm90IGEgY29udGV4dHVhbCBmcmFnbWVudCwgaXQgd29uJ3QgaGFuZGxlIHdoaXRlc3BhY2Ug
cHJvcGVybHkuCi0gICAgcmV0dXJuIGtpdChjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpjb3JlKHNl
bGYpLT5jcmVhdGVSYW5nZSgpLmdldCgpLCB0ZXh0KS5nZXQoKSk7CisgICAgcmV0dXJuIGtpdChj
cmVhdGVGcmFnbWVudEZyb21UZXh0KGNvcmUoc2VsZiktPmNyZWF0ZVJhbmdlKCksIHRleHQpLmdl
dCgpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2Vj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNwcAppbmRleCA1MmI5
ZmFmLi5jNTliZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmNwcApAQCAtMzEsOSAr
MzEsOSBAQCBpbmxpbmUgQ0RBVEFTZWN0aW9uOjpDREFUQVNlY3Rpb24oRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7CiB9CiAKLVJlZlB0cjxDREFUQVNlY3Rpb24+IENE
QVRBU2VjdGlvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBkYXRh
KQorUmVmPENEQVRBU2VjdGlvbj4gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDREFU
QVNlY3Rpb24oZG9jdW1lbnQsIGRhdGEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDREFU
QVNlY3Rpb24oZG9jdW1lbnQsIGRhdGEpKTsKIH0KIAogU3RyaW5nIENEQVRBU2VjdGlvbjo6bm9k
ZU5hbWUoKSBjb25zdApAQCAtNTYsNyArNTYsNyBAQCBib29sIENEQVRBU2VjdGlvbjo6Y2hpbGRU
eXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0
cjxUZXh0PiBDREFUQVNlY3Rpb246OnZpcnR1YWxDcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhKQor
UmVmPFRleHQ+IENEQVRBU2VjdGlvbjo6dmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGEp
CiB7CiAgICAgcmV0dXJuIGNyZWF0ZShkb2N1bWVudCgpLCBkYXRhKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
REFUQVNlY3Rpb24uaAppbmRleCBjNzhlYThhLi5iZjVhNjFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRB
U2VjdGlvbi5oCkBAIC0yOSw3ICsyOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q0RBVEFTZWN0aW9uIGZpbmFsIDogcHVibGljIFRleHQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8Q0RBVEFTZWN0aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKKyAg
ICBzdGF0aWMgUmVmPENEQVRBU2VjdGlvbj4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
Jik7CiAKIHByaXZhdGU6CiAgICAgQ0RBVEFTZWN0aW9uKERvY3VtZW50JiwgY29uc3QgU3RyaW5n
Jik7CkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2Rl
VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNsb25lTm9k
ZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgUmVmUHRyPFRleHQ+IHZpcnR1YWxDcmVhdGUoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBSZWY8VGV4dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db21tZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmNw
cAppbmRleCBlMGZiNzE3Li40OWY1NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29tbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwCkBAIC0zMSwx
NCArMzEsMTQgQEAgaW5saW5lIENvbW1lbnQ6OkNvbW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdHJpbmcmIHRleHQpCiB7CiB9CiAKLVJlZlB0cjxDb21tZW50PiBDb21tZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHRleHQpCitSZWY8Q29tbWVudD4g
Q29tbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0KQog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ29tbWVudChkb2N1bWVudCwgdGV4dCkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENvbW1lbnQoZG9jdW1lbnQsIHRleHQpKTsKIH0KIAotUmVm
UHRyPENvbW1lbnQ+IENvbW1lbnQ6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIHRleHQpCitSZWY8Q29tbWVudD4gQ29tbWVudDo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IENvbW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQp
LCB0ZXh0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29tbWVudChkb3duY2FzdDxEb2N1
bWVudD4oY29udGV4dCksIHRleHQpKTsKIH0KIAogU3RyaW5nIENvbW1lbnQ6Om5vZGVOYW1lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29tbWVudC5oCmluZGV4IGM2OTI4MDYuLjNmNDRlNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bW1lbnQuaApAQCAtMjksOCArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENv
bW1lbnQgZmluYWwgOiBwdWJsaWMgQ2hhcmFjdGVyRGF0YSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZlB0cjxDb21tZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKLSAgICBz
dGF0aWMgUmVmUHRyPENvbW1lbnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgU3RyaW5nJik7CisgICAgc3RhdGljIFJlZjxDb21tZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgUmVmPENvbW1lbnQ+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CiAgICAgQ29tbWVudChE
b2N1bWVudCYsIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYmZl
MWM1Yy4uMGUxYTVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01NjQsMTEgKzU2NCwx
MSBAQCBzdGF0aWMgYm9vbCBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGNvbnN0IFdlYkNvcmU6OlF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZSwgY29ucwogfQogI2VuZGlmCiAKLVJlZlB0cjxEb2N1bWVu
dD4gRG9jdW1lbnQ6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorUmVm
PERvY3VtZW50PiBEb2N1bWVudDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpCiB7Ci0gICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IGFkb3B0UmVmKG5ldyBEb2N1
bWVudChudWxscHRyLCBVUkwoKSkpOworICAgIFJlZjxEb2N1bWVudD4gZG9jdW1lbnQgPSBhZG9w
dFJlZigqbmV3IERvY3VtZW50KG51bGxwdHIsIFVSTCgpKSk7CiAgICAgZG9jdW1lbnQtPnNldFNl
Y3VyaXR5T3JpZ2luKGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSk7Ci0gICAgcmV0dXJuIGRvY3Vt
ZW50LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQ7CiB9CiAKIERvY3VtZW50Ojp+RG9j
dW1lbnQoKQpAQCAtODYwLDE3ICs4NjAsMTcgQEAgUmVmUHRyPEVsZW1lbnQ+IERvY3VtZW50Ojpj
cmVhdGVFbGVtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYKICAg
ICByZXR1cm4gY3JlYXRlRWxlbWVudChRdWFsaWZpZWROYW1lKG51bGxBdG9tLCBuYW1lLCBudWxs
QXRvbSksIGZhbHNlKTsKIH0KIAotUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50Ojpj
cmVhdGVEb2N1bWVudEZyYWdtZW50KCkKK1JlZjxEb2N1bWVudEZyYWdtZW50PiBEb2N1bWVudDo6
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpCiB7CiAgICAgcmV0dXJuIERvY3VtZW50RnJhZ21lbnQ6
OmNyZWF0ZShkb2N1bWVudCgpKTsKIH0KIAotUmVmUHRyPFRleHQ+IERvY3VtZW50OjpjcmVhdGVU
ZXh0Tm9kZShjb25zdCBTdHJpbmcmIGRhdGEpCitSZWY8VGV4dD4gRG9jdW1lbnQ6OmNyZWF0ZVRl
eHROb2RlKGNvbnN0IFN0cmluZyYgZGF0YSkKIHsKICAgICByZXR1cm4gVGV4dDo6Y3JlYXRlKCp0
aGlzLCBkYXRhKTsKIH0KIAotUmVmUHRyPENvbW1lbnQ+IERvY3VtZW50OjpjcmVhdGVDb21tZW50
KGNvbnN0IFN0cmluZyYgZGF0YSkKK1JlZjxDb21tZW50PiBEb2N1bWVudDo6Y3JlYXRlQ29tbWVu
dChjb25zdCBTdHJpbmcmIGRhdGEpCiB7CiAgICAgcmV0dXJuIENvbW1lbnQ6OmNyZWF0ZSgqdGhp
cywgZGF0YSk7CiB9CkBAIC05MTAsMTUgKzkxMCwxNSBAQCBSZWZQdHI8RW50aXR5UmVmZXJlbmNl
PiBEb2N1bWVudDo6Y3JlYXRlRW50aXR5UmVmZXJlbmNlKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhj
ZQogICAgIHJldHVybiBFbnRpdHlSZWZlcmVuY2U6OmNyZWF0ZSgqdGhpcywgbmFtZSk7CiB9CiAK
LVJlZlB0cjxUZXh0PiBEb2N1bWVudDo6Y3JlYXRlRWRpdGluZ1RleHROb2RlKGNvbnN0IFN0cmlu
ZyYgdGV4dCkKK1JlZjxUZXh0PiBEb2N1bWVudDo6Y3JlYXRlRWRpdGluZ1RleHROb2RlKGNvbnN0
IFN0cmluZyYgdGV4dCkKIHsKICAgICByZXR1cm4gVGV4dDo6Y3JlYXRlRWRpdGluZ1RleHQoKnRo
aXMsIHRleHQpOwogfQogCi1SZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gRG9jdW1lbnQ6OmNy
ZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24oKQorUmVmPENTU1N0eWxlRGVjbGFyYXRpb24+IERvY3Vt
ZW50OjpjcmVhdGVDU1NTdHlsZURlY2xhcmF0aW9uKCkKIHsKICAgICBSZWY8TXV0YWJsZVN0eWxl
UHJvcGVydGllcz4gcHJvcGVydHlTZXQoTXV0YWJsZVN0eWxlUHJvcGVydGllczo6Y3JlYXRlKCkp
OwotICAgIHJldHVybiBwcm9wZXJ0eVNldC0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwor
ICAgIHJldHVybiAqcHJvcGVydHlTZXQtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKIH0K
IAogUmVmUHRyPE5vZGU+IERvY3VtZW50OjppbXBvcnROb2RlKE5vZGUqIGltcG9ydGVkTm9kZSwg
Ym9vbCBkZWVwLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEwMzEsNyArMTAzMSw3IEBAIGJvb2wg
RG9jdW1lbnQ6Omhhc1ZhbGlkTmFtZXNwYWNlRm9yQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWRO
YW1lJiBxTmFtZSkKIH0KIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBpbiBhIHBv
c3NpYmxlIEVsZW1lbnRGYWN0b3J5IGNsYXNzLgotUmVmUHRyPEVsZW1lbnQ+IERvY3VtZW50Ojpj
cmVhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQorUmVmPEVsZW1lbnQ+IERvY3VtZW50OjpjcmVhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogewogICAgIFJlZlB0cjxFbGVtZW50
PiBlbGVtZW50OwogCkBAIC0xMDUzLDcgKzEwNTMsNyBAQCBSZWZQdHI8RWxlbWVudD4gRG9jdW1l
bnQ6OmNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgYm9vbCBjcmVhdGVk
QgogICAgIC8vIDxpbWFnZT4gdXNlcyBpbWdUYWcgc28gd2UgbmVlZCBhIHNwZWNpYWwgcnVsZS4K
ICAgICBBU1NFUlQoKG5hbWUubWF0Y2hlcyhpbWFnZVRhZykgJiYgZWxlbWVudC0+dGFnUU5hbWUo
KS5tYXRjaGVzKGltZ1RhZykgJiYgZWxlbWVudC0+dGFnUU5hbWUoKS5wcmVmaXgoKSA9PSBuYW1l
LnByZWZpeCgpKSB8fCBuYW1lID09IGVsZW1lbnQtPnRhZ1FOYW1lKCkpOwogCi0gICAgcmV0dXJu
IGVsZW1lbnQucmVsZWFzZSgpOworICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2VOb25OdWxsKCk7
CiB9CiAKIGJvb2wgRG9jdW1lbnQ6OmNzc1JlZ2lvbnNFbmFibGVkKCkgY29uc3QKQEAgLTE2NTIs
NyArMTY1Miw3IEBAIFNldHRpbmdzKiBEb2N1bWVudDo6c2V0dGluZ3MoKSBjb25zdAogICAgIHJl
dHVybiBtX2ZyYW1lID8gJm1fZnJhbWUtPnNldHRpbmdzKCkgOiBudWxscHRyOwogfQogCi1SZWZQ
dHI8UmFuZ2U+IERvY3VtZW50OjpjcmVhdGVSYW5nZSgpCitSZWY8UmFuZ2U+IERvY3VtZW50Ojpj
cmVhdGVSYW5nZSgpCiB7CiAgICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUoKnRoaXMpOwogfQpAQCAt
MjIxOCw3ICsyMjE4LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VmlzdWFsbHlPcmRlcmVkKCkKICAg
ICAgICAgcmVuZGVyVmlldygpLT5zdHlsZSgpLnNldFJUTE9yZGVyaW5nKFZpc3VhbE9yZGVyKTsK
IH0KIAotUmVmUHRyPERvY3VtZW50UGFyc2VyPiBEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKK1Jl
ZjxEb2N1bWVudFBhcnNlcj4gRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiB7CiAgICAgLy8gRklY
TUU6IHRoaXMgc2hvdWxkIHByb2JhYmx5IHBhc3MgdGhlIGZyYW1lIGluc3RlYWQKICAgICByZXR1
cm4gWE1MRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcywgdmlldygpKTsKQEAgLTMxNjMsMjAg
KzMxNjMsMjAgQEAgYm9vbCBEb2N1bWVudDo6Y2FuUmVwbGFjZUNoaWxkKE5vZGUqIG5ld0NoaWxk
LCBOb2RlKiBvbGRDaGlsZCkKIAogUmVmUHRyPE5vZGU+IERvY3VtZW50OjpjbG9uZU5vZGVJbnRl
cm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24gdHlwZSkKIHsKLSAgICBSZWZQdHI8RG9j
dW1lbnQ+IGNsb25lID0gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpOworICAgIFJlZjxE
b2N1bWVudD4gY2xvbmUgPSBjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVuKCk7CiAgICAgY2xv
bmUtPmNsb25lRGF0YUZyb21Eb2N1bWVudCgqdGhpcyk7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAg
ICAgY2FzZSBDbG9uaW5nT3BlcmF0aW9uOjpPbmx5U2VsZjoKICAgICBjYXNlIENsb25pbmdPcGVy
YXRpb246OlNlbGZXaXRoVGVtcGxhdGVDb250ZW50OgogICAgICAgICBicmVhazsKICAgICBjYXNl
IENsb25pbmdPcGVyYXRpb246OkV2ZXJ5dGhpbmc6Ci0gICAgICAgIGNsb25lQ2hpbGROb2Rlcyhj
bG9uZS5nZXQoKSk7CisgICAgICAgIGNsb25lQ2hpbGROb2RlcyhjbG9uZS5wdHIoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gY2xvbmU7CisgICAgcmV0dXJuIFdURjo6bW92
ZShjbG9uZSk7CiB9CiAKLVJlZlB0cjxEb2N1bWVudD4gRG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRX
aXRob3V0Q2hpbGRyZW4oKSBjb25zdAorUmVmPERvY3VtZW50PiBEb2N1bWVudDo6Y2xvbmVEb2N1
bWVudFdpdGhvdXRDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzWEhUTUxEb2N1bWVu
dCgpID8gY3JlYXRlWEhUTUwobnVsbHB0ciwgdXJsKCkpIDogY3JlYXRlKG51bGxwdHIsIHVybCgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNGE3ZmVmMi4uZWM0OGYyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTI1NywxOSArMjU3LDE5IEBAIGVudW0gY2xhc3MgRG9jdW1lbnRDb21w
YXRpYmlsaXR5TW9kZSA6IHVuc2lnbmVkIGNoYXIgewogCiBjbGFzcyBEb2N1bWVudCA6IHB1Ymxp
YyBDb250YWluZXJOb2RlLCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxEb2N1bWVudD4gY3JlYXRlKEZy
YW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCisgICAgc3RhdGljIFJlZjxEb2N1bWVudD4gY3Jl
YXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERvY3VtZW50KGZyYW1lLCB1cmwpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRG9jdW1lbnQoZnJhbWUsIHVybCkpOwogICAgIH0KLSAgICBzdGF0aWMgUmVmUHRy
PERvY3VtZW50PiBjcmVhdGVYSFRNTChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAg
IHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0ZVhIVE1MKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJM
JiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50KGZyYW1l
LCB1cmwsIFhIVE1MRG9jdW1lbnRDbGFzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEb2N1bWVudChmcmFtZSwgdXJsLCBYSFRNTERvY3VtZW50Q2xhc3MpKTsKICAgICB9Ci0gICAg
c3RhdGljIFJlZlB0cjxEb2N1bWVudD4gY3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRlcihGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8RG9jdW1lbnQ+IGNyZWF0
ZU5vblJlbmRlcmVkUGxhY2Vob2xkZXIoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRG9jdW1lbnQoZnJhbWUsIHVybCwgRGVm
YXVsdERvY3VtZW50Q2xhc3MsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRG9jdW1lbnQoZnJhbWUsIHVybCwgRGVmYXVsdERvY3VtZW50Q2xh
c3MsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIpKTsKICAgICB9Ci0gICAgc3RhdGljIFJlZlB0cjxE
b2N1bWVudD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgUmVm
PERvY3VtZW50PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAgdmlydHVh
bCB+RG9jdW1lbnQoKTsKIApAQCAtNDIyLDkgKzQyMiw5IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c01hbmlmZXN0KCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlRWxlbWVudChjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUsIEV4Y2VwdGlvbkNvZGUmKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRG9jdW1l
bnRGcmFnbWVudCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxUZXh0PiBjcmVhdGVUZXh0
Tm9kZShjb25zdCBTdHJpbmcmIGRhdGEpOwotICAgIFJlZlB0cjxDb21tZW50PiBjcmVhdGVDb21t
ZW50KGNvbnN0IFN0cmluZyYgZGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPERvY3VtZW50
RnJhZ21lbnQ+IGNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBS
ZWY8VGV4dD4gY3JlYXRlVGV4dE5vZGUoY29uc3QgU3RyaW5nJiBkYXRhKTsKKyAgICBSZWY8Q29t
bWVudD4gY3JlYXRlQ29tbWVudChjb25zdCBTdHJpbmcmIGRhdGEpOwogICAgIFJlZlB0cjxDREFU
QVNlY3Rpb24+IGNyZWF0ZUNEQVRBU2VjdGlvbihjb25zdCBTdHJpbmcmIGRhdGEsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBSZWZQdHI8UHJvY2Vzc2luZ0luc3RydWN0aW9uPiBjcmVhdGVQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oY29uc3QgU3RyaW5nJiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgZGF0YSwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIFJlZlB0cjxBdHRyPiBjcmVhdGVBdHRyaWJ1dGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CkBAIC00MzMsNyArNDMzLDcgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxOb2RlPiBpbXBvcnROb2RlKE5vZGUqIGltcG9ydGVkTm9kZSwgRXhjZXB0
aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGltcG9ydE5vZGUoaW1wb3J0ZWROb2RlLCB0cnVlLCBlYyk7
IH0KICAgICBSZWZQdHI8Tm9kZT4gaW1wb3J0Tm9kZShOb2RlKiBpbXBvcnRlZE5vZGUsIGJvb2wg
ZGVlcCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxFbGVtZW50
PiBjcmVhdGVFbGVtZW50TlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmlu
ZyYgcXVhbGlmaWVkTmFtZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJl
ZlB0cjxFbGVtZW50PiBjcmVhdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBib29sIGNy
ZWF0ZWRCeVBhcnNlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEVsZW1lbnQ+IGNyZWF0ZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAogICAg
IGJvb2wgY3NzUmVnaW9uc0VuYWJsZWQoKSBjb25zdDsKICAgICBib29sIGNzc0NvbXBvc2l0aW5n
RW5hYmxlZCgpIGNvbnN0OwpAQCAtNTgyLDcgKzU4Miw3IEBAIHB1YmxpYzoKIAogICAgIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8
UmFuZ2U+IGNyZWF0ZVJhbmdlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmPFJhbmdlPiBjcmVh
dGVSYW5nZSgpOwogCiAgICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gY3JlYXRlTm9kZUl0ZXJhdG9y
KE5vZGUqIHJvb3QsIHVuc2lnbmVkIHdoYXRUb1Nob3csCiAgICAgICAgIFBhc3NSZWZQdHI8Tm9k
ZUZpbHRlcj4sIGJvb2wgZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgRXhjZXB0aW9uQ29kZSYpOwpA
QCAtNTkxLDggKzU5MSw4IEBAIHB1YmxpYzoKICAgICAgICAgUGFzc1JlZlB0cjxOb2RlRmlsdGVy
PiwgYm9vbCBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAv
LyBTcGVjaWFsIHN1cHBvcnQgZm9yIGVkaXRpbmcKLSAgICBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJh
dGlvbj4gY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwotICAgIFJlZlB0cjxUZXh0PiBjcmVh
dGVFZGl0aW5nVGV4dE5vZGUoY29uc3QgU3RyaW5nJik7CisgICAgUmVmPENTU1N0eWxlRGVjbGFy
YXRpb24+IGNyZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKKyAgICBSZWY8VGV4dD4gY3JlYXRl
RWRpdGluZ1RleHROb2RlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCByZWNhbGNTdHlsZShT
dHlsZTo6Q2hhbmdlID0gU3R5bGU6Ok5vQ2hhbmdlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKQEAgLTY4OSw3ICs2ODksNyBAQCBwdWJsaWM6CiAKICAg
ICBDU1NTdHlsZVNoZWV0JiBlbGVtZW50U2hlZXQoKTsKICAgICAKLSAgICB2aXJ0dWFsIFJlZlB0
cjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCk7CisgICAgdmlydHVhbCBSZWY8RG9jdW1l
bnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpOwogICAgIERvY3VtZW50UGFyc2VyKiBwYXJzZXIoKSBj
b25zdCB7IHJldHVybiBtX3BhcnNlci5nZXQoKTsgfQogICAgIFNjcmlwdGFibGVEb2N1bWVudFBh
cnNlciogc2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkgY29uc3Q7CiAgICAgCkBAIC0xMjg3LDcg
KzEyODcsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNsZWFyWE1MVmVyc2lvbigpIHsgbV94
bWxWZXJzaW9uID0gU3RyaW5nKCk7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPERvY3VtZW50PiBj
bG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVuKCkgY29uc3Q7CisgICAgdmlydHVhbCBSZWY8RG9j
dW1lbnQ+IGNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdDsKIAogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgTm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEZyYWdtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50
LmNwcAppbmRleCA2ZmUwMzc4Li5hMDE5MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RnJhZ21lbnQuY3BwCkBAIC0zNiwxNCArMzYsMTQgQEAgRG9jdW1lbnRGcmFnbWVudDo6RG9jdW1l
bnRGcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIENvbnN0cnVjdGlvblR5cGUgY29uc3RydWMK
IHsKIH0KIAotUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpCitSZWY8RG9jdW1lbnRGcmFnbWVudD4gRG9jdW1lbnRGcmFn
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQsIE5vZGU6OkNyZWF0ZURvY3VtZW50RnJhZ21l
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudEZyYWdtZW50KGRvY3VtZW50
LCBOb2RlOjpDcmVhdGVEb2N1bWVudEZyYWdtZW50KSk7CiB9CiAKLVJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkKK1JlZjxEb2N1bWVudEZyYWdtZW50PiBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERvY3VtZW50RnJhZ21lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBOb2RlOjpD
cmVhdGVEb2N1bWVudEZyYWdtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRG9jdW1l
bnRGcmFnbWVudChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIE5vZGU6OkNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQpKTsKIH0KIAogU3RyaW5nIERvY3VtZW50RnJhZ21lbnQ6Om5vZGVOYW1lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IGE5ZDRlNjkuLjEx
OTk4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtMzMsOCArMzMs
OCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBEb2N1bWVudEZyYWdt
ZW50IDogcHVibGljIENvbnRhaW5lck5vZGUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Ci0gICAgc3RhdGljIFJlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIHN0
YXRpYyBSZWY8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGlj
IFJlZjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwog
CiAgICAgdm9pZCBwYXJzZUhUTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1l
bnQsIFBhcnNlckNvbnRlbnRQb2xpY3kgPSBBbGxvd1NjcmlwdGluZ0NvbnRlbnQpOwogICAgIGJv
b2wgcGFyc2VYTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIFBhcnNl
ckNvbnRlbnRQb2xpY3kgPSBBbGxvd1NjcmlwdGluZ0NvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50VHlwZS5oCmluZGV4IDYzZjkxMjguLmM3YTFkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRU
eXBlLmgKQEAgLTMyLDkgKzMyLDkgQEAgY2xhc3MgTmFtZWROb2RlTWFwOwogCiBjbGFzcyBEb2N1
bWVudFR5cGUgZmluYWwgOiBwdWJsaWMgTm9kZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxEb2N1bWVudFR5cGU+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiBwdWJsaWNJZCwgY29uc3QgU3RyaW5nJiBzeXN0ZW1JZCkKKyAg
ICBzdGF0aWMgUmVmPERvY3VtZW50VHlwZT4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBjb25zdCBTdHJpbmcmIHN5
c3RlbUlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEb2N1bWVudFR5cGUo
ZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEb2N1bWVudFR5cGUoZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1J
ZCkpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSByZXR1cm4gbnVsbCBlbnRpdGllcyBhbmQg
bm90YXRpb25zLiBDdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIE5hbWVkTm9kZU1hcCBkb2Vzbid0
IHdvcmsgd2l0aG91dCBhbiBhc3NvY2lhdGVkIEVsZW1lbnQgeWV0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RW50aXR5UmVmZXJlbmNlLmNwcAppbmRleCA4OGFkNjg4Li5hMmZmNjNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRW50aXR5UmVmZXJlbmNlLmNwcApAQCAtMzEsOSArMzEsOSBAQCBpbmxpbmUgRW50aXR5
UmVmZXJlbmNlOjpFbnRpdHlSZWZlcmVuY2UoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIGVudGl0eQogewogfQogCi1SZWZQdHI8RW50aXR5UmVmZXJlbmNlPiBFbnRpdHlSZWZlcmVu
Y2U6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZW50aXR5TmFtZSkK
K1JlZjxFbnRpdHlSZWZlcmVuY2U+IEVudGl0eVJlZmVyZW5jZTo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgU3RyaW5nJiBlbnRpdHlOYW1lKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRW50aXR5UmVmZXJlbmNlKGRvY3VtZW50LCBlbnRpdHlOYW1lKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRW50aXR5UmVmZXJlbmNlKGRvY3VtZW50LCBlbnRpdHlOYW1lKSk7CiB9
CiAKIFN0cmluZyBFbnRpdHlSZWZlcmVuY2U6Om5vZGVOYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbnRpdHlSZWZlcmVuY2UuaAppbmRleCA1ZThkYThkLi4wM2Y0M2NkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VudGl0eVJlZmVyZW5jZS5oCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRW50aXR5UmVmZXJlbmNlIGZpbmFsIDogcHVibGljIENvbnRhaW5lck5vZGUg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8RW50aXR5UmVmZXJlbmNlPiBjcmVhdGUoRG9j
dW1lbnQmLCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpOworICAgIHN0YXRpYyBSZWY8RW50aXR5
UmVmZXJlbmNlPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGVudGl0eU5hbWUpOwog
CiBwcml2YXRlOgogICAgIEVudGl0eVJlZmVyZW5jZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYg
ZW50aXR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKaW5kZXggNzA2OTdhNC4uMmI1ZTk2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0LmNwcApAQCAtMzgsMTkgKzM4LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmUHRyPFRleHQ+IFRleHQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgZGF0YSkKK1JlZjxUZXh0PiBUZXh0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmIGRhdGEpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0KGRvY3VtZW50
LCBkYXRhLCBDcmVhdGVUZXh0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dChkb2N1
bWVudCwgZGF0YSwgQ3JlYXRlVGV4dCkpOwogfQogCi1SZWZQdHI8VGV4dD4gVGV4dDo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YSkKK1Jl
ZjxUZXh0PiBUZXh0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiBkYXRhKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dChkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCksIGRhdGEsIENyZWF0ZVRleHQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUZXh0KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgZGF0YSwgQ3JlYXRl
VGV4dCkpOwogfQogCi1SZWZQdHI8VGV4dD4gVGV4dDo6Y3JlYXRlRWRpdGluZ1RleHQoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCitSZWY8VGV4dD4gVGV4dDo6Y3JlYXRl
RWRpdGluZ1RleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGRhdGEpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0KGRvY3VtZW50LCBkYXRhLCBDcmVhdGVFZGl0aW5n
VGV4dCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRleHQoZG9jdW1lbnQsIGRhdGEsIENy
ZWF0ZUVkaXRpbmdUZXh0KSk7CiB9CiAKIFRleHQ6On5UZXh0KCkKQEAgLTcxLDEzICs3MSwxMyBA
QCBSZWZQdHI8VGV4dD4gVGV4dDo6c3BsaXRUZXh0KHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAKICAgICBFdmVudFF1ZXVlU2NvcGUgc2NvcGU7CiAgICAgU3RyaW5nIG9sZFN0
ciA9IGRhdGEoKTsKLSAgICBSZWZQdHI8VGV4dD4gbmV3VGV4dCA9IHZpcnR1YWxDcmVhdGUob2xk
U3RyLnN1YnN0cmluZyhvZmZzZXQpKTsKKyAgICBSZWY8VGV4dD4gbmV3VGV4dCA9IHZpcnR1YWxD
cmVhdGUob2xkU3RyLnN1YnN0cmluZyhvZmZzZXQpKTsKICAgICBzZXREYXRhV2l0aG91dFVwZGF0
ZShvbGRTdHIuc3Vic3RyaW5nKDAsIG9mZnNldCkpOwogCiAgICAgZGlzcGF0Y2hNb2RpZmllZEV2
ZW50KG9sZFN0cik7CiAKICAgICBpZiAocGFyZW50Tm9kZSgpKQotICAgICAgICBwYXJlbnROb2Rl
KCktPmluc2VydEJlZm9yZShuZXdUZXh0LmdldCgpLCBuZXh0U2libGluZygpLCBlYyk7CisgICAg
ICAgIHBhcmVudE5vZGUoKS0+aW5zZXJ0QmVmb3JlKG5ld1RleHQucHRyKCksIG5leHRTaWJsaW5n
KCksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC04Nyw3ICs4Nyw3
IEBAIFJlZlB0cjxUZXh0PiBUZXh0OjpzcGxpdFRleHQodW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICBpZiAocmVuZGVyZXIoKSkKICAgICAgICAgcmVuZGVyZXIoKS0+c2V0
VGV4dFdpdGhPZmZzZXQoZGF0YUltcGwoKSwgMCwgb2xkU3RyLmxlbmd0aCgpKTsKIAotICAgIHJl
dHVybiBuZXdUZXh0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKG5ld1RleHQpOwog
fQogCiBzdGF0aWMgY29uc3QgVGV4dCogZWFybGllc3RMb2dpY2FsbHlBZGphY2VudFRleHROb2Rl
KGNvbnN0IFRleHQqIHRleHQpCkBAIC0yMDMsMjEgKzIwMywyMCBAQCBib29sIFRleHQ6OmNoaWxk
VHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQ
dHI8VGV4dD4gVGV4dDo6dmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGEpCitSZWY8VGV4
dD4gVGV4dDo6dmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGEpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZShkb2N1bWVudCgpLCBkYXRhKTsKIH0KIAotUmVmUHRyPFRleHQ+IFRleHQ6OmNyZWF0
ZVdpdGhMZW5ndGhMaW1pdChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGF0YSwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aExpbWl0KQorUmVmPFRleHQ+IFRleHQ6OmNy
ZWF0ZVdpdGhMZW5ndGhMaW1pdChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZGF0
YSwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aExpbWl0KQogewogICAgIHVuc2lnbmVk
IGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aCgpOwogCiAgICAgaWYgKCFzdGFydCAmJiBkYXRhTGVu
Z3RoIDw9IGxlbmd0aExpbWl0KQogICAgICAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50LCBkYXRh
KTsKIAotICAgIFJlZlB0cjxUZXh0PiByZXN1bHQgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIFN0
cmluZygpKTsKKyAgICBSZWY8VGV4dD4gcmVzdWx0ID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBT
dHJpbmcoKSk7CiAgICAgcmVzdWx0LT5wYXJzZXJBcHBlbmREYXRhKGRhdGEsIHN0YXJ0LCBsZW5n
dGhMaW1pdCk7Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaAppbmRleCAyYjNk
NDA3Li45MWNkZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKQEAgLTM1LDEwICszNSwxMCBAQCBjbGFzcyBUZXh0
IDogcHVibGljIENoYXJhY3RlckRhdGEgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBkZWZhdWx0TGVuZ3RoTGltaXQgPSAxIDw8IDE2OwogCi0gICAgc3RhdGljIFJlZlB0cjxU
ZXh0PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgUmVmUHRy
PFRleHQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJik7Ci0g
ICAgc3RhdGljIFJlZlB0cjxUZXh0PiBjcmVhdGVXaXRoTGVuZ3RoTGltaXQoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmLCB1bnNpZ25lZCBwb3NpdGlvbkluU3RyaW5nLCB1bnNpZ25lZCBsZW5ndGhM
aW1pdCA9IGRlZmF1bHRMZW5ndGhMaW1pdCk7Ci0gICAgc3RhdGljIFJlZlB0cjxUZXh0PiBjcmVh
dGVFZGl0aW5nVGV4dChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBSZWY8
VGV4dD4gY3JlYXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIFJlZjxU
ZXh0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYpOworICAg
IHN0YXRpYyBSZWY8VGV4dD4gY3JlYXRlV2l0aExlbmd0aExpbWl0KERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQgcG9zaXRpb25JblN0cmluZywgdW5zaWduZWQgbGVuZ3RoTGltaXQg
PSBkZWZhdWx0TGVuZ3RoTGltaXQpOworICAgIHN0YXRpYyBSZWY8VGV4dD4gY3JlYXRlRWRpdGlu
Z1RleHQoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgflRleHQoKTsK
IApAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVmUHRyPE5vZGU+IGNs
b25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBSZWZQdHI8VGV4dD4gdmlydHVhbENyZWF0ZShjb25zdCBTdHJpbmcm
KTsKKyAgICB2aXJ0dWFsIFJlZjxUZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpOwog
CiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFy
KiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKaW5kZXggZGMzMTE2Ni4uYmJlMmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFy
a3VwLmNwcApAQCAtOTk0LDE1ICs5OTQsMTUgQEAgdm9pZCByZXBsYWNlQ2hpbGRyZW5XaXRoVGV4
dChDb250YWluZXJOb2RlJiBjb250YWluZXIsIGNvbnN0IFN0cmluZyYgdGV4dCwgRXhjZXAKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJlZlB0cjxUZXh0PiB0ZXh0Tm9kZSA9IFRleHQ6
OmNyZWF0ZShjb250YWluZXJOb2RlLT5kb2N1bWVudCgpLCB0ZXh0KTsKKyAgICBSZWY8VGV4dD4g
dGV4dE5vZGUgPSBUZXh0OjpjcmVhdGUoY29udGFpbmVyTm9kZS0+ZG9jdW1lbnQoKSwgdGV4dCk7
CiAKICAgICBpZiAoaGFzT25lQ2hpbGQoY29udGFpbmVyTm9kZSkpIHsKLSAgICAgICAgY29udGFp
bmVyTm9kZS0+cmVwbGFjZUNoaWxkKHRleHROb2RlLnJlbGVhc2UoKSwgY29udGFpbmVyTm9kZS0+
Zmlyc3RDaGlsZCgpLCBlYyk7CisgICAgICAgIGNvbnRhaW5lck5vZGUtPnJlcGxhY2VDaGlsZChX
VEY6Om1vdmUodGV4dE5vZGUpLCBjb250YWluZXJOb2RlLT5maXJzdENoaWxkKCksIGVjKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbnRhaW5lck5vZGUtPnJlbW92ZUNoaWxkcmVu
KCk7Ci0gICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQodGV4dE5vZGUucmVsZWFzZSgpLCBl
Yyk7CisgICAgY29udGFpbmVyTm9kZS0+YXBwZW5kQ2hpbGQoV1RGOjptb3ZlKHRleHROb2RlKSwg
ZWMpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9y
eURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQu
Y3BwCmluZGV4IDY3OTY0ODAuLjY2NjFmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQ
RGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC00OCw5ICs0OCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAgICAgCiBjbGFzcyBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlciBmaW5hbCA6
IHB1YmxpYyBIVE1MRG9jdW1lbnRQYXJzZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8
RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShIVE1MRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIHN0YXRpYyBSZWY8RlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShIVE1M
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBG
VFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOwogICAgIH0K
IAogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikgb3ZlcnJp
ZGU7CkBAIC00MzIsNyArNDMyLDcgQEAgRlRQRGlyZWN0b3J5RG9jdW1lbnQ6OkZUUERpcmVjdG9y
eURvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAjZW5kaWYKIH0KIAotUmVm
UHRyPERvY3VtZW50UGFyc2VyPiBGVFBEaXJlY3RvcnlEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkK
K1JlZjxEb2N1bWVudFBhcnNlcj4gRlRQRGlyZWN0b3J5RG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigp
CiB7CiAgICAgcmV0dXJuIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5oCmluZGV4IDdj
YTE5ZTcuLmQxZDNkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0
b3J5RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3Vt
ZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEZUUERpcmVj
dG9yeURvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJik7Ci0gICAgdmlydHVhbCBSZWZQdHI8RG9j
dW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPERv
Y3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKIH07CiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKaW5kZXggYTY5
M2ViMC4uODhiOWIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcApAQCAtMjI0
LDcgKzIyNCw3IEBAIHZvaWQgSFRNTERvY3VtZW50OjpyZWxlYXNlRXZlbnRzKCkKIHsKIH0KIAot
UmVmUHRyPERvY3VtZW50UGFyc2VyPiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCitSZWY8
RG9jdW1lbnRQYXJzZXI+IEhUTUxEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsKICAgICByZXR1
cm4gSFRNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMpOwogfQpAQCAtMzQyLDcgKzM0Miw3
IEBAIGJvb2wgSFRNTERvY3VtZW50Ojppc0ZyYW1lU2V0KCkgY29uc3QKICAgICByZXR1cm4gaXM8
SFRNTEZyYW1lU2V0RWxlbWVudD4oYm9keSgpKTsKIH0KIAotUmVmUHRyPERvY3VtZW50PiBIVE1M
RG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdAorUmVmPERvY3Vt
ZW50PiBIVE1MRG9jdW1lbnQ6OmNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdAog
ewogICAgIHJldHVybiBjcmVhdGUobnVsbHB0ciwgdXJsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmgKaW5kZXggOWU5YWEyNS4uNGE2YTQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudC5oCkBAIC0zMSwxNCArMzEsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBIVE1MRG9jdW1lbnQgOiBwdWJsaWMgRG9jdW1lbnQsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZShG
cmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8SFRNTERvY3VtZW50
PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTERvY3VtZW50KGZyYW1lLCB1cmwsIEhUTUxEb2N1bWVudENs
YXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxEb2N1bWVudChmcmFtZSwg
dXJsLCBIVE1MRG9jdW1lbnRDbGFzcykpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWZQdHI8SFRN
TERvY3VtZW50PiBjcmVhdGVTeW50aGVzaXplZERvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3Qg
VVJMJiB1cmwpCisgICAgc3RhdGljIFJlZjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZVN5bnRoZXNpemVk
RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSFRNTERvY3VtZW50KGZyYW1lLCB1cmwsIEhUTUxEb2N1bWVudENs
YXNzLCBTeW50aGVzaXplZCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MRG9j
dW1lbnQoZnJhbWUsIHVybCwgSFRNTERvY3VtZW50Q2xhc3MsIFN5bnRoZXNpemVkKSk7CiAgICAg
fQogCiAgICAgdmlydHVhbCB+SFRNTERvY3VtZW50KCk7CkBAIC04OSw4ICs4OSw4IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBSZWZQdHI8RWxlbWVudD4gY3JlYXRlRWxlbWVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHRhZ05hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1
YWwgYm9vbCBpc0ZyYW1lU2V0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQdHI8
RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUmVm
UHRyPERvY3VtZW50PiBjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVuKCkgY29uc3Qgb3ZlcnJp
ZGUgZmluYWw7CisgICAgdmlydHVhbCBSZWY8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPERvY3VtZW50PiBjbG9uZURvY3VtZW50V2l0aG91
dENoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBEb2N1bWVudE9yZGVyZWRN
YXAgbV9kb2N1bWVudE5hbWVkSXRlbTsKICAgICBEb2N1bWVudE9yZGVyZWRNYXAgbV93aW5kb3dO
YW1lZEl0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAppbmRleCBhM2JjMWRi
Li44OTFlNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKQEAgLTU0LDcg
KzU0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICNpZiAhUExBVEZPUk0oSU9TKQog
Y2xhc3MgSW1hZ2VFdmVudExpc3RlbmVyIGZpbmFsIDogcHVibGljIEV2ZW50TGlzdGVuZXIgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8SW1hZ2VFdmVudExpc3RlbmVyPiBjcmVhdGUoSW1h
Z2VEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbWFnZUV2ZW50TGlz
dGVuZXIoZG9jdW1lbnQpKTsgfQorICAgIHN0YXRpYyBSZWY8SW1hZ2VFdmVudExpc3RlbmVyPiBj
cmVhdGUoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW1h
Z2VFdmVudExpc3RlbmVyKGRvY3VtZW50KSk7IH0KIAogcHJpdmF0ZToKICAgICBJbWFnZUV2ZW50
TGlzdGVuZXIoSW1hZ2VEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC03Miw5ICs3Miw5IEBAIHByaXZh
dGU6CiAKIGNsYXNzIEltYWdlRG9jdW1lbnRQYXJzZXIgZmluYWwgOiBwdWJsaWMgUmF3RGF0YURv
Y3VtZW50UGFyc2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEltYWdlRG9jdW1lbnRQ
YXJzZXI+IGNyZWF0ZShJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPElt
YWdlRG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShJbWFnZURvY3VtZW50JiBkb2N1bWVudCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1hZ2VEb2N1bWVudFBhcnNlcihkb2N1bWVu
dCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbWFnZURvY3VtZW50UGFyc2VyKGRv
Y3VtZW50KSk7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMjAyLDcgKzIwMiw3IEBAIEltYWdlRG9j
dW1lbnQ6OkltYWdlRG9jdW1lbnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICBs
b2NrQ29tcGF0aWJpbGl0eU1vZGUoKTsKIH0KICAgICAKLVJlZlB0cjxEb2N1bWVudFBhcnNlcj4g
SW1hZ2VEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKK1JlZjxEb2N1bWVudFBhcnNlcj4gSW1hZ2VE
b2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKIHsKICAgICByZXR1cm4gSW1hZ2VEb2N1bWVudFBhcnNl
cjo6Y3JlYXRlKCp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmgKaW5kZXgg
NzFkNWJhYy4uNWU3ZTRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmgKQEAgLTM0
LDkgKzM0LDkgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIAogY2xhc3MgSW1hZ2VEb2N1bWVu
dCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQ
dHI8SW1hZ2VEb2N1bWVudD4gY3JlYXRlKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCisg
ICAgc3RhdGljIFJlZjxJbWFnZURvY3VtZW50PiBjcmVhdGUoRnJhbWUmIGZyYW1lLCBjb25zdCBV
UkwmIHVybCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1hZ2VEb2N1bWVu
dChmcmFtZSwgdXJsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEltYWdlRG9jdW1l
bnQoZnJhbWUsIHVybCkpOwogICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIEhUTUxJbWFnZUVs
ZW1lbnQqIGltYWdlRWxlbWVudCgpIGNvbnN0OwpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIEltYWdlRG9jdW1lbnQoRnJhbWUmLCBjb25zdCBVUkwmKTsKIAotICAgIHZp
cnR1YWwgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiAK
ICAgICBMYXlvdXRTaXplIGltYWdlU2l6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3Vt
ZW50LmNwcAppbmRleCA0MWEzNzAxLi44OTJiODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFE
b2N1bWVudC5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IC8vIEZJWE1FOiBTaGFyZSBtb3JlIGNvZGUgd2l0aCBQbHVnaW5Eb2N1bWVudFBhcnNlci4KIGNs
YXNzIE1lZGlhRG9jdW1lbnRQYXJzZXIgZmluYWwgOiBwdWJsaWMgUmF3RGF0YURvY3VtZW50UGFy
c2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPE1lZGlhRG9jdW1lbnRQYXJzZXI+IGNy
ZWF0ZShNZWRpYURvY3VtZW50JiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPE1lZGlhRG9jdW1l
bnRQYXJzZXI+IGNyZWF0ZShNZWRpYURvY3VtZW50JiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFEb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7
CiAgICAgfQogICAgIAogcHJpdmF0ZToKQEAgLTE1Myw3ICsxNTMsNyBAQCBNZWRpYURvY3VtZW50
Ojp+TWVkaWFEb2N1bWVudCgpCiAgICAgQVNTRVJUKCFtX3JlcGxhY2VNZWRpYUVsZW1lbnRUaW1l
ci5pc0FjdGl2ZSgpKTsKIH0KIAotUmVmUHRyPERvY3VtZW50UGFyc2VyPiBNZWRpYURvY3VtZW50
OjpjcmVhdGVQYXJzZXIoKQorUmVmPERvY3VtZW50UGFyc2VyPiBNZWRpYURvY3VtZW50OjpjcmVh
dGVQYXJzZXIoKQogewogICAgIHJldHVybiBNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRo
aXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuaAppbmRleCA5MTc5ODhjLi4xY2Nh
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuaApAQCAtMzQsOSArMzQsOSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMg
SFRNTERvY3VtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPE1lZGlhRG9jdW1lbnQ+
IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8TWVk
aWFEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhRG9jdW1lbnQoZnJhbWUsIHVybCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYURvY3VtZW50KGZyYW1lLCB1cmwpKTsK
ICAgICB9CiAgICAgdmlydHVhbCB+TWVkaWFEb2N1bWVudCgpOwogCkBAIC00Niw3ICs0Niw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVkaWFEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYp
OwogCi0gICAgdmlydHVhbCBSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUmVmPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKaW5kZXggNzdl
MTRjZC4uNzc5NmMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKQEAg
LTQ2LDkgKzQ2LDkgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIC8vIEZJWE1FOiBTaGFy
ZSBtb3JlIGNvZGUgd2l0aCBNZWRpYURvY3VtZW50UGFyc2VyLgogY2xhc3MgUGx1Z2luRG9jdW1l
bnRQYXJzZXIgZmluYWwgOiBwdWJsaWMgUmF3RGF0YURvY3VtZW50UGFyc2VyIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPFBsdWdpbkRvY3VtZW50UGFyc2VyPiBjcmVhdGUoUGx1Z2luRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIHN0YXRpYyBSZWY8UGx1Z2luRG9jdW1lbnRQYXJzZXI+IGNy
ZWF0ZShQbHVnaW5Eb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFBsdWdpbkRvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBsdWdpbkRvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7CiAgICAgfQog
CiBwcml2YXRlOgpAQCAtMTQ4LDcgKzE0OCw3IEBAIFBsdWdpbkRvY3VtZW50OjpQbHVnaW5Eb2N1
bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIGxvY2tDb21wYXRpYmlsaXR5
TW9kZSgpOwogfQogCi1SZWZQdHI8RG9jdW1lbnRQYXJzZXI+IFBsdWdpbkRvY3VtZW50OjpjcmVh
dGVQYXJzZXIoKQorUmVmPERvY3VtZW50UGFyc2VyPiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlUGFy
c2VyKCkKIHsKICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcyk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmgKaW5kZXggYTI4MWRlOS4uYWUyMzc5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaApAQCAtMzQsOSArMzQsOSBAQCBj
bGFzcyBXaWRnZXQ7CiAKIGNsYXNzIFBsdWdpbkRvY3VtZW50IGZpbmFsIDogcHVibGljIEhUTUxE
b2N1bWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxQbHVnaW5Eb2N1bWVudD4gY3Jl
YXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCisgICAgc3RhdGljIFJlZjxQbHVnaW5E
b2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsdWdpbkRvY3VtZW50KGZyYW1lLCB1cmwpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGx1Z2luRG9jdW1lbnQoZnJhbWUsIHVybCkpOwog
ICAgIH0KIAogICAgIHZvaWQgc2V0UGx1Z2luRWxlbWVudChQYXNzUmVmUHRyPEhUTUxQbHVnSW5F
bGVtZW50Pik7CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUGx1Z2lu
RG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmKTsKIAotICAgIHZpcnR1YWwgUmVmUHRyPERvY3Vt
ZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlZjxEb2N1
bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFNob3Vs
ZExvYWRQbHVnaW5NYW51YWxseShib29sIGxvYWRNYW51YWxseSkgeyBtX3Nob3VsZExvYWRQbHVn
aW5NYW51YWxseSA9IGxvYWRNYW51YWxseTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHREb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVu
dC5jcHAKaW5kZXggNjZiMGY4Zi4uNzFiM2VmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dERvY3Vt
ZW50LmNwcApAQCAtMzYsNyArMzYsNyBAQCBUZXh0RG9jdW1lbnQ6OlRleHREb2N1bWVudChGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIGxvY2tDb21wYXRpYmlsaXR5TW9kZSgpOwog
fQogCi1SZWZQdHI8RG9jdW1lbnRQYXJzZXI+IFRleHREb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkK
K1JlZjxEb2N1bWVudFBhcnNlcj4gVGV4dERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogewogICAg
IHJldHVybiBUZXh0RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcyk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0RG9jdW1lbnQuaAppbmRleCBhNWQyN2ZhLi5kOTQ3ZDc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHREb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dERvY3VtZW50LmgKQEAgLTMxLDE1ICszMSwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFRleHREb2N1bWVudCBmaW5hbCA6IHB1YmxpYyBIVE1MRG9jdW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWZQdHI8VGV4dERvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBj
b25zdCBVUkwmIHVybCkKKyAgICBzdGF0aWMgUmVmPFRleHREb2N1bWVudD4gY3JlYXRlKEZyYW1l
KiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFRleHREb2N1bWVudChmcmFtZSwgdXJsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFRleHREb2N1bWVudChmcmFtZSwgdXJsKSk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIFRl
eHREb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYpOwogICAgIAotICAgIHZpcnR1YWwgUmVmUHRy
PERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
ZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAK
aW5kZXggOGQ2M2IyYi4uMzUwODE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcApAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQg
SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFj
dGVycywgV2hpdGVzcGFjZU1vCiAgICAgfQogCiAgICAgd2hpbGUgKGN1cnJlbnRQb3NpdGlvbiA8
IGNoYXJhY3RlcnMubGVuZ3RoKCkpIHsKLSAgICAgICAgUmVmUHRyPFRleHQ+IHRleHROb2RlID0g
VGV4dDo6Y3JlYXRlV2l0aExlbmd0aExpbWl0KHRhc2sucGFyZW50LT5kb2N1bWVudCgpLCBzaG91
bGRVc2VBdG9taWNTdHJpbmcgPyBBdG9taWNTdHJpbmcoY2hhcmFjdGVycykuc3RyaW5nKCkgOiBj
aGFyYWN0ZXJzLCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aExpbWl0KTsKKyAgICAgICAgUmVmPFRl
eHQ+IHRleHROb2RlID0gVGV4dDo6Y3JlYXRlV2l0aExlbmd0aExpbWl0KHRhc2sucGFyZW50LT5k
b2N1bWVudCgpLCBzaG91bGRVc2VBdG9taWNTdHJpbmcgPyBBdG9taWNTdHJpbmcoY2hhcmFjdGVy
cykuc3RyaW5nKCkgOiBjaGFyYWN0ZXJzLCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aExpbWl0KTsK
ICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIHdob2xlIHN0cmluZyBvZiB1bmJyZWFrYWJsZSBjaGFy
YWN0ZXJzIHRoZSBhYm92ZSBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3AuIEV4Y2VlZGlu
ZyB0aGUgbGVuZ3RoIGxpbWl0IGlzIHRoZSBsZXNzZXIgZXZpbC4KICAgICAgICAgaWYgKCF0ZXh0
Tm9kZS0+bGVuZ3RoKCkpIHsKICAgICAgICAgICAgIFN0cmluZyBzdWJzdHJpbmcgPSBjaGFyYWN0
ZXJzLnN1YnN0cmluZyhjdXJyZW50UG9zaXRpb24pOwpAQCAtNTYyLDcgKzU2Miw3IEBAIHZvaWQg
SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydFRleHROb2RlKGNvbnN0IFN0cmluZyYgY2hhcmFj
dGVycywgV2hpdGVzcGFjZU1vCiAKICAgICAgICAgY3VycmVudFBvc2l0aW9uICs9IHRleHROb2Rl
LT5sZW5ndGgoKTsKICAgICAgICAgQVNTRVJUKGN1cnJlbnRQb3NpdGlvbiA8PSBjaGFyYWN0ZXJz
Lmxlbmd0aCgpKTsKLSAgICAgICAgdGFzay5jaGlsZCA9IHRleHROb2RlLnJlbGVhc2UoKTsKKyAg
ICAgICAgdGFzay5jaGlsZCA9IFdURjo6bW92ZSh0ZXh0Tm9kZSk7CiAKICAgICAgICAgZXhlY3V0
ZVRhc2sodGFzayk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuaAppbmRleCA5MWFkYzNkLi42Y2ZlOGRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNjIsOSArNjIsOSBA
QCBjbGFzcyBQdW1wU2Vzc2lvbjsKIGNsYXNzIEhUTUxEb2N1bWVudFBhcnNlciA6ICBwdWJsaWMg
U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLCBIVE1MU2NyaXB0UnVubmVySG9zdCwgQ2FjaGVkUmVz
b3VyY2VDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWZQdHI8SFRNTERvY3VtZW50UGFyc2VyPiBjcmVhdGUoSFRNTERvY3VtZW50JiBk
b2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPEhUTUxEb2N1bWVudFBhcnNlcj4gY3JlYXRlKEhUTUxE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxEb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIVE1MRG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpKTsKICAgICB9CiAgICAgdmlydHVhbCB+SFRN
TERvY3VtZW50UGFyc2VyKCk7CiAKQEAgLTkzLDkgKzkzLDkgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgZm9yY2VQbGFpbnRleHRGb3JUZXh0RG9jdW1lbnQoKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0
aWMgUmVmUHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gY3JlYXRlKERvY3VtZW50RnJhZ21lbnQmIGZy
YWdtZW50LCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgUGFyc2VyQ29udGVudFBvbGljeSBwYXJz
ZXJDb250ZW50UG9saWN5KQorICAgIHN0YXRpYyBSZWY8SFRNTERvY3VtZW50UGFyc2VyPiBjcmVh
dGUoRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQ
YXJzZXJDb250ZW50UG9saWN5IHBhcnNlckNvbnRlbnRQb2xpY3kpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEb2N1bWVudFBhcnNlcihmcmFnbWVudCwgY29udGV4dEVs
ZW1lbnQsIHBhcnNlckNvbnRlbnRQb2xpY3kpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSFRNTERvY3VtZW50UGFyc2VyKGZyYWdtZW50LCBjb250ZXh0RWxlbWVudCwgcGFyc2VyQ29u
dGVudFBvbGljeSkpOwogICAgIH0KIAogICAgIC8vIERvY3VtZW50UGFyc2VyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5oCmluZGV4IGUzYzdhNTMu
LjVjNzhlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1
bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVu
dFBhcnNlci5oCkBAIC0zMiw5ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
VGV4dERvY3VtZW50UGFyc2VyIGZpbmFsIDogcHVibGljIEhUTUxEb2N1bWVudFBhcnNlciB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dERvY3VtZW50UGFyc2VyPiBjcmVhdGUo
SFRNTERvY3VtZW50JiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUmVmPFRleHREb2N1bWVudFBhcnNl
cj4gY3JlYXRlKEhUTUxEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFRleHREb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUZXh0RG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpKTsKICAgICB9CiAg
ICAgdmlydHVhbCB+VGV4dERvY3VtZW50UGFyc2VyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Np
bmtEb2N1bWVudC5jcHAKaW5kZXggZmM0YmIzYS4uYTUzMGZiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1NpbmtEb2N1bWVudC5jcHAKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTaW5rRG9jdW1lbnRQYXJzZXIgZmluYWwgOiBwdWJsaWMgUmF3RGF0YURvY3Vt
ZW50UGFyc2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPFNpbmtEb2N1bWVudFBhcnNl
cj4gY3JlYXRlKFNpbmtEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgc3RhdGljIFJlZjxTaW5rRG9j
dW1lbnRQYXJzZXI+IGNyZWF0ZShTaW5rRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaW5rRG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2lua0RvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7
CiAgICAgfQogICAgIAogcHJpdmF0ZToKQEAgLTU2LDcgKzU2LDcgQEAgU2lua0RvY3VtZW50OjpT
aW5rRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKICAgICBsb2NrQ29tcGF0
aWJpbGl0eU1vZGUoKTsKIH0KIAotUmVmUHRyPERvY3VtZW50UGFyc2VyPiBTaW5rRG9jdW1lbnQ6
OmNyZWF0ZVBhcnNlcigpCitSZWY8RG9jdW1lbnRQYXJzZXI+IFNpbmtEb2N1bWVudDo6Y3JlYXRl
UGFyc2VyKCkKIHsKICAgICByZXR1cm4gU2lua0RvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1NpbmtEb2N1bWVudC5oCmluZGV4IGM3ODFmNjkuLmU3OTM0
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TaW5rRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU2lua0RvY3VtZW50LmgKQEAgLTMyLDE1ICszMiwxNSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNpbmtEb2N1bWVudCBmaW5hbCA6IHB1Ymxp
YyBIVE1MRG9jdW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8U2lua0RvY3VtZW50
PiBjcmVhdGUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCkKKyAgICBzdGF0aWMgUmVmPFNp
bmtEb2N1bWVudD4gY3JlYXRlKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNpbmtEb2N1bWVudChmcmFtZSwgdXJsKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNpbmtEb2N1bWVudChmcmFtZSwgdXJsKSk7CiAg
ICAgfQogCiBwcml2YXRlOgogICAgIFNpbmtEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYpOwog
ICAgIAotICAgIHZpcnR1YWwgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKTsK
KyAgICB2aXJ0dWFsIFJlZjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCk7CiB9OwogCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuY3BwCmluZGV4IDBkZWEwOGYuLjM4Nzc5YWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0RvY3VtZW50LmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFNWR0RvY3Vt
ZW50Ojp1cGRhdGVQYW4oY29uc3QgRmxvYXRQb2ludCYgcG9zKSBjb25zdAogICAgIH0KIH0KIAot
UmVmUHRyPERvY3VtZW50PiBTVkdEb2N1bWVudDo6Y2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJl
bigpIGNvbnN0CitSZWY8RG9jdW1lbnQ+IFNWR0RvY3VtZW50OjpjbG9uZURvY3VtZW50V2l0aG91
dENoaWxkcmVuKCkgY29uc3QKIHsKICAgICByZXR1cm4gY3JlYXRlKG51bGxwdHIsIHVybCgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKaW5kZXggZmY1MWQ1Ni4uMmJhYzk5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RvY3VtZW50LmgKQEAgLTMyLDkgKzMyLDkgQEAgY2xhc3MgU1ZHU1ZHRWxlbWVu
dDsKIAogY2xhc3MgU1ZHRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMgRG9jdW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWZQdHI8U1ZHRG9jdW1lbnQ+IGNyZWF0ZShGcmFtZSogZnJhbWUsIGNv
bnN0IFVSTCYgdXJsKQorICAgIHN0YXRpYyBSZWY8U1ZHRG9jdW1lbnQ+IGNyZWF0ZShGcmFtZSog
ZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTVkdEb2N1bWVudChmcmFtZSwgdXJsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0RvY3VtZW50KGZyYW1lLCB1cmwpKTsKICAgICB9CiAKICAgICBTVkdTVkdFbGVtZW50KiBy
b290RWxlbWVudCgpIGNvbnN0OwpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIFNWR0RvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0
cjxEb2N1bWVudD4gY2xvbmVEb2N1bWVudFdpdGhvdXRDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVmPERvY3VtZW50PiBjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVu
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBGbG9hdFBvaW50IG1fdHJhbnNsYXRlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCAzMWYw
MmJjLi4yMmU4Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERv
Y3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVu
dFBhcnNlci5oCkBAIC01Miw4ICs1Miw4IEBAIGNsYXNzIFRleHQ7CiAKICAgICBjbGFzcyBYTUxQ
YXJzZXJDb250ZXh0IDogcHVibGljIFJlZkNvdW50ZWQ8WE1MUGFyc2VyQ29udGV4dD4gewogICAg
IHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8WE1MUGFyc2VyQ29udGV4dD4gY3Jl
YXRlTWVtb3J5UGFyc2VyKHhtbFNBWEhhbmRsZXJQdHIsIHZvaWQqIHVzZXJEYXRhLCBjb25zdCBD
U3RyaW5nJiBjaHVuayk7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhNTFBhcnNlckNvbnRl
eHQ+IGNyZWF0ZVN0cmluZ1BhcnNlcih4bWxTQVhIYW5kbGVyUHRyLCB2b2lkKiB1c2VyRGF0YSk7
CisgICAgICAgIHN0YXRpYyBSZWZQdHI8WE1MUGFyc2VyQ29udGV4dD4gY3JlYXRlTWVtb3J5UGFy
c2VyKHhtbFNBWEhhbmRsZXJQdHIsIHZvaWQqIHVzZXJEYXRhLCBjb25zdCBDU3RyaW5nJiBjaHVu
ayk7CisgICAgICAgIHN0YXRpYyBSZWY8WE1MUGFyc2VyQ29udGV4dD4gY3JlYXRlU3RyaW5nUGFy
c2VyKHhtbFNBWEhhbmRsZXJQdHIsIHZvaWQqIHVzZXJEYXRhKTsKICAgICAgICAgflhNTFBhcnNl
ckNvbnRleHQoKTsKICAgICAgICAgeG1sUGFyc2VyQ3R4dFB0ciBjb250ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZXh0OyB9CiAKQEAgLTY4LDEzICs2OCwxMyBAQCBjbGFzcyBUZXh0OwogICAg
IGNsYXNzIFhNTERvY3VtZW50UGFyc2VyIDogcHVibGljIFNjcmlwdGFibGVEb2N1bWVudFBhcnNl
ciwgcHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxYTUxEb2N1
bWVudFBhcnNlcj4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRnJhbWVWaWV3KiB2aWV3KQor
ICAgICAgICBzdGF0aWMgUmVmPFhNTERvY3VtZW50UGFyc2VyPiBjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBGcmFtZVZpZXcqIHZpZXcpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgWE1MRG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQsIHZpZXcpKTsKKyAgICAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFhNTERvY3VtZW50UGFyc2VyKGRvY3VtZW50LCB2aWV3
KSk7CiAgICAgICAgIH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8WE1MRG9jdW1lbnRQYXJz
ZXI+IGNyZWF0ZShEb2N1bWVudEZyYWdtZW50JiBmcmFnbWVudCwgRWxlbWVudCogZWxlbWVudCwg
UGFyc2VyQ29udGVudFBvbGljeSBwYXJzZXJDb250ZW50UG9saWN5KQorICAgICAgICBzdGF0aWMg
UmVmPFhNTERvY3VtZW50UGFyc2VyPiBjcmVhdGUoRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lbnQs
IEVsZW1lbnQqIGVsZW1lbnQsIFBhcnNlckNvbnRlbnRQb2xpY3kgcGFyc2VyQ29udGVudFBvbGlj
eSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBYTUxEb2N1bWVu
dFBhcnNlcihmcmFnbWVudCwgZWxlbWVudCwgcGFyc2VyQ29udGVudFBvbGljeSkpOworICAgICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWE1MRG9jdW1lbnRQYXJzZXIoZnJhZ21lbnQsIGVs
ZW1lbnQsIHBhcnNlckNvbnRlbnRQb2xpY3kpKTsKICAgICAgICAgfQogCiAgICAgICAgIH5YTUxE
b2N1bWVudFBhcnNlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCmluZGV4IGFmMTBjNmMuLjcyYzliOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGli
eG1sMi5jcHAKQEAgLTUwOCw3ICs1MDgsNyBAQCBzdGF0aWMgdm9pZCBlcnJvckZ1bmModm9pZCos
IGNvbnN0IGNoYXIqLCAuLi4pCiAKIHN0YXRpYyBib29sIGRpZEluaXQgPSBmYWxzZTsKIAotUGFz
c1JlZlB0cjxYTUxQYXJzZXJDb250ZXh0PiBYTUxQYXJzZXJDb250ZXh0OjpjcmVhdGVTdHJpbmdQ
YXJzZXIoeG1sU0FYSGFuZGxlclB0ciBoYW5kbGVycywgdm9pZCogdXNlckRhdGEpCitSZWY8WE1M
UGFyc2VyQ29udGV4dD4gWE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlU3RyaW5nUGFyc2VyKHhtbFNB
WEhhbmRsZXJQdHIgaGFuZGxlcnMsIHZvaWQqIHVzZXJEYXRhKQogewogICAgIGlmICghZGlkSW5p
dCkgewogICAgICAgICB4bWxJbml0UGFyc2VyKCk7CkBAIC01MjYsMTIgKzUyNiwxMiBAQCBQYXNz
UmVmUHRyPFhNTFBhcnNlckNvbnRleHQ+IFhNTFBhcnNlckNvbnRleHQ6OmNyZWF0ZVN0cmluZ1Bh
cnNlcih4bWxTQVhIYW5kbGVyUAogCiAgICAgc3dpdGNoVG9VVEYxNihwYXJzZXIpOwogCi0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBYTUxQYXJzZXJDb250ZXh0KHBhcnNlcikpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFhNTFBhcnNlckNvbnRleHQocGFyc2VyKSk7CiB9CiAKIAogLy8gQ2h1
bmsgc2hvdWxkIGJlIGVuY29kZWQgaW4gVVRGLTgKLVBhc3NSZWZQdHI8WE1MUGFyc2VyQ29udGV4
dD4gWE1MUGFyc2VyQ29udGV4dDo6Y3JlYXRlTWVtb3J5UGFyc2VyKHhtbFNBWEhhbmRsZXJQdHIg
aGFuZGxlcnMsIHZvaWQqIHVzZXJEYXRhLCBjb25zdCBDU3RyaW5nJiBjaHVuaykKK1JlZlB0cjxY
TUxQYXJzZXJDb250ZXh0PiBYTUxQYXJzZXJDb250ZXh0OjpjcmVhdGVNZW1vcnlQYXJzZXIoeG1s
U0FYSGFuZGxlclB0ciBoYW5kbGVycywgdm9pZCogdXNlckRhdGEsIGNvbnN0IENTdHJpbmcmIGNo
dW5rKQogewogICAgIGlmICghZGlkSW5pdCkgewogICAgICAgICB4bWxJbml0UGFyc2VyKCk7CkBA
IC01NjIsNyArNTYyLDcgQEAgUGFzc1JlZlB0cjxYTUxQYXJzZXJDb250ZXh0PiBYTUxQYXJzZXJD
b250ZXh0OjpjcmVhdGVNZW1vcnlQYXJzZXIoeG1sU0FYSGFuZGxlclAKICAgICBwYXJzZXItPnN0
cl94bWxfbnMgPSB4bWxEaWN0TG9va3VwKHBhcnNlci0+ZGljdCwgWE1MX1hNTF9OQU1FU1BBQ0Us
IDM2KTsKICAgICBwYXJzZXItPl9wcml2YXRlID0gdXNlckRhdGE7CiAKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFhNTFBhcnNlckNvbnRleHQocGFyc2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgWE1MUGFyc2VyQ29udGV4dChwYXJzZXIpKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ODllZDJkLi44Yjg4OGUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMTItMTggIEFuZHJlYXMgS2xp
bmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlZi1pZnkgdmFyaW91cyBEb2N1bWVu
dC1yZWxhdGVkIHRoaW5ncy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTc5Nj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZp
ZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIF9yZXBsYWNlU2VsZWN0aW9uV2l0
aE5vZGU6c2VsZWN0UmVwbGFjZW1lbnQ6c21hcnRSZXBsYWNlOm1hdGNoU3R5bGU6XSk6CisKIDIw
MTQtMTItMTggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSBhbHdheXNVc2VCYXNlbGluZU9mUHJpbWFyeUZvbnQgc2V0dGluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggMTcwYmY4ZC4uMTBjOWNmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05MTMsNyArOTEzLDcgQEAgc3RhdGljIGlubGlu
ZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAKIC0g
KHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoTm9kZTooRE9NTm9kZSAqKW5vZGUgc2VsZWN0UmVw
bGFjZW1lbnQ6KEJPT0wpc2VsZWN0UmVwbGFjZW1lbnQgc21hcnRSZXBsYWNlOihCT09MKXNtYXJ0
UmVwbGFjZSBtYXRjaFN0eWxlOihCT09MKW1hdGNoU3R5bGUKIHsKLSAgICBET01Eb2N1bWVudEZy
YWdtZW50ICpmcmFnbWVudCA9IGtpdChfcHJpdmF0ZS0+Y29yZUZyYW1lLT5kb2N1bWVudCgpLT5j
cmVhdGVEb2N1bWVudEZyYWdtZW50KCkuZ2V0KCkpOworICAgIERPTURvY3VtZW50RnJhZ21lbnQg
KmZyYWdtZW50ID0ga2l0KF9wcml2YXRlLT5jb3JlRnJhbWUtPmRvY3VtZW50KCktPmNyZWF0ZURv
Y3VtZW50RnJhZ21lbnQoKS5wdHIoKSk7CiAgICAgW2ZyYWdtZW50IGFwcGVuZENoaWxkOm5vZGVd
OwogICAgIFtzZWxmIF9yZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50OmZyYWdtZW50IHNlbGVj
dFJlcGxhY2VtZW50OnNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTpzbWFydFJlcGxhY2Ug
bWF0Y2hTdHlsZTptYXRjaFN0eWxlXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjN2MxZGZlLi4yNjJiYjli
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMTItMTggIEFuZHJlYXMgS2xpbmcg
IDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlZi1pZnkgdmFyaW91cyBEb2N1bWVudC1y
ZWxhdGVkIHRoaW5ncy4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTc5Nj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tOgorICAgICAgICAoLVtX
S0RPTURvY3VtZW50IGNyZWF0ZVRleHROb2RlOl0pOgorCiAyMDE0LTEyLTE4ICBBbmRlcnMgQ2Fy
bHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgTWFjaFNlbmRSaWdo
dCBjbGFzcyB0byBXZWJDb3JlIGFuZCB1c2UgaXQgaW4gSU9TdXJmYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1
bWVudC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTURvY3VtZW50Lm1tCmluZGV4IDgzMTY2MjkuLjUxM2NjYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3Vt
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS0RPTURvY3VtZW50Lm1tCkBAIC00NCw3ICs0NCw3IEBACiAKIC0gKFdLRE9NVGV4dCAq
KWNyZWF0ZVRleHROb2RlOihOU1N0cmluZyAqKWRhdGEKIHsKLSAgICByZXR1cm4gV2ViS2l0Ojp0
b1dLRE9NVGV4dChkb3duY2FzdDxXZWJDb3JlOjpEb2N1bWVudD4oKl9pbXBsKS5jcmVhdGVUZXh0
Tm9kZShkYXRhKS5nZXQoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS0RPTVRleHQoZG93bmNh
c3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KCpfaW1wbCkuY3JlYXRlVGV4dE5vZGUoZGF0YSkucHRyKCkp
OwogfQogCiAtIChXS0RPTUVsZW1lbnQgKilib2R5Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>