<?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>196065</bug_id>
          
          <creation_ts>2019-03-21 00:23:53 -0700</creation_ts>
          <short_desc>Remove the SVG property tear off objects for SVGAnimatedString</short_desc>
          <delta_ts>2019-03-21 14:47:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>196037</dependson>
          <blocked>191237</blocked>
    
    <blocked>195905</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1519530</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-21 00:23:53 -0700</bug_when>
    <thetext>This is part of removing the tear off objects of the SVG properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519535</commentid>
    <comment_count>1</comment_count>
      <attachid>365511</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-21 00:36:52 -0700</bug_when>
    <thetext>Created attachment 365511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519892</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-21 13:42:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/49121837&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519951</commentid>
    <comment_count>3</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-03-21 14:46:57 -0700</bug_when>
    <thetext>Committed r243333: &lt;https://trac.webkit.org/changeset/243333&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365511</attachid>
            <date>2019-03-21 00:36:52 -0700</date>
            <delta_ts>2019-03-21 14:47:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196065-20190321003651.patch</filename>
            <type>text/plain</type>
            <size>116565</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzMjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA4NTNkMzEzN2Q4NGJh
MGNhNzE1MzQzZDdkZmMzMjEzODEwNmZmYS4uMjljNTIxOWZmNjM4NGY5ZGU4Yzk3NTJiNTE4NTc3
MDk5OWM4Y2QwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MSBAQAorMjAxOS0wMy0yMSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIFNW
RyBwcm9wZXJ0eSB0ZWFyIG9mZiBvYmplY3RzIGZvciBTVkdBbmltYXRlZFN0cmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MDY1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLS0gRGVmaW5lIFNWR0Fu
aW1hdGVkU3RyaW5nIHRvIGJlIFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHk8U3RyaW5nPi4K
KworICAgICAgICAtLSBBZGQgU1ZHQW5pbWF0ZWRTdHJpbmdBY2Nlc3NvciB0byBhc3NvY2lhdGUg
YW4gYXR0cmlidXRlIG5hbWUgd2l0aCBhIAorICAgICAgICAgICBwb2ludGVyIHRvIGFuIFNWR0Fu
aW1hdGVkU3RyaW5nIG1lbWJlciBvZiBhbiBTVkdFbGVtZW50LiBHaXZlbiBhIAorICAgICAgICAg
ICBwb2ludGVyIHRvIGFuIFNWR0VsZW1lbnQsIHRoaXMgYWNjZXNzb3Igd2lsbCBhbmQgY3JlYXRl
IGFuIGFuaW1hdG9yCisgICAgICAgICAgIGZvciB0aGUgYW5pbWF0ZWQgcHJvcGVydHkuCisKKyAg
ICAgICAgLS0gQWRkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3IgdG8gYW5pbWF0ZWQgYW4gU1ZH
QW5pbWF0ZWRTdHJpbmcuCisKKyAgICAgICAgLS0gQWRkIFNWR0FuaW1hdGlvblN0cmluZ0Z1bmN0
aW9uIHdoaWNoIGlzIGEgZGlzY3JldGUgZnVuY3Rpb24gYW5kIGlzIAorICAgICAgICAgICByZXNw
b25zaWJsZSBmb3IgcHJvZ3Jlc3NpbmcgYW4gYW5pbWF0ZWQgU3RyaW5nIG92ZXIgYSBwZXJpb2Qg
b2YgdGltZS4KKworICAgICAgICAtLSBEZWZpbmUgU1ZHU3RyaW5nQW5pbWF0b3IgdG8gYmUgU1ZH
UHJpbWl0aXZlUHJvcGVydHlBbmltYXRvcjxTdHJpbmcsCisgICAgICAgICAgIFNWR0FuaW1hdGlv
blN0cmluZ0Z1bmN0aW9uPi4gU1ZHU3RyaW5nQW5pbWF0b3IgaXMgcmVzcG9uc2libGUgZm9yCisg
ICAgICAgICAgIGFuaW1hdGluZyBhdHRyaWJ1dGVzIHdpdGggbm8gcmVmbGVjdGluZyBhbmltYXRl
ZCBwcm9wZXJ0aWVzLCBlLmcuCisgICAgICAgICAgICJmb250LWZhbWlseSIuCisKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogc3ZnL1NWR0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FFbGVtZW50OjpTVkdBRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQUVsZW1lbnQ6OnJlZ2lzdGVy
QXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0FFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlRWxlbWVudEJhc2U6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlRWxlbWVudEJhc2U6OmlzRGlzY3JldGVBbmltYXRvciBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5oOgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL1NWR0Fu
aW1hdGVkU3RyaW5nLmg6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0aW9uRWxlbWVudDo6Y3VycmVudFZh
bHVlc0ZvclZhbHVlc0FuaW1hdGlvbik6CisgICAgICAgIFRoZSBhbmltYXRpb24gY29udHJvbGxl
ciBoYXMgdG8gdGVsbCB3aGV0aGVyIHRoZSBhbmltYXRvciBpcyBkaXNjcmV0ZSBvcgorICAgICAg
ICBub3QuIFRoZSBwcm9wZXJ0aWVzIGFyZSBub3cgcmVnaXN0ZXJlZCBlaXRoZXIgaW4gU1ZHQXR0
cmlidXRlUmVnaXN0cnkgd2hpY2gKKyAgICAgICAgcmVsaWVzIG9uIHRoZSB0ZWFyIG9mZiBvYmpl
Y3RzIHRvIGtub3cgdGhlIEFuaW1hdGVkUHJvcGVydHlUeXBlIG9mIHRoZQorICAgICAgICBwcm9w
ZXJ0eS4gT3IgaXQgaXMgcmVnaXN0ZXJlZCBpbiBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnkgd2hp
Y2ggY3JlYXRlcworICAgICAgICB0aGUgYW5pbWF0b3JzIHRocm91Z2ggdGhlIGFjY2Vzc29ycy4g
RWFjaCBhbmltYXRvciBrbm93cyB3aGV0aGVyIGl0IGlzCisgICAgICAgIGRpc2NyZXRlIG9yIG5v
dC4KKworICAgICAgICAqIHN2Zy9TVkdBbmltYXRvckZhY3RvcnkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQXR0cmli
dXRlQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBdHRyaWJ1
dGVBbmltYXRpb25Db250cm9sbGVyOjppc0Rpc2NyZXRlQW5pbWF0b3IgY29uc3QpOgorICAgICAg
ICAqIHN2Zy9TVkdBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICogc3Zn
L1NWR0F0dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xsZXJCYXNlLmg6CisgICAgICAgICogc3ZnL1NW
R0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdFbGVtZW50OjpTVkdFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6
OnJlZ2lzdGVyQXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmlzS25vd25BdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0VsZW1lbnQ6OmNsYXNzTmFtZUFuaW1hdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0VsZW1lbnQ6OmF0dHJpYnV0ZVJlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcv
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5jcHA6CisgICAgICAgICogc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpTVkdG
RUJsZW5kRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUJsZW5kRWxlbWVudDo6cmVn
aXN0ZXJBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6cmVnaXN0ZXJBdHRyaWJ1dGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpTVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogc3Zn
L1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29t
cG9zaXRlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1l
bnQ6OlNWR0ZFQ29tcG9zaXRlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBv
c2l0ZUVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RUNvbXBvc2l0ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVD
b21wb3NpdGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpT
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICog
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQ6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6cmVnaXN0ZXJBdHRy
aWJ1dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OlNWR0ZFRGlzcGxh
Y2VtZW50TWFwRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURp
c3BsYWNlbWVudE1hcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRv
d0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6
U1ZHRkVEcm9wU2hhZG93RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFk
b3dFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BT
aGFkb3dFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAg
ICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVH
YXVzc2lhbkJsdXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudDo6U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAg
ICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RkVNZXJnZU5vZGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudDo6U1ZHRkVNZXJnZU5vZGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
TWVyZ2VOb2RlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RkVNZXJnZU5vZGVFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIHN2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1vcnBob2xvZ3lFbGVt
ZW50OjpTVkdGRU1vcnBob2xvZ3lFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9y
cGhvbG9neUVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NW
R0ZFTW9ycGhvbG9neUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVPZmZzZXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFT2Zmc2V0RWxlbWVudDo6U1ZHRkVPZmZzZXRF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFT2Zmc2V0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVPZmZzZXRFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFT2Zmc2V0RWxlbWVudDo6cmVnaXN0
ZXJBdHRyaWJ1dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVPZmZzZXRFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6U1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUaWxlRWxlbWVudDo6
U1ZHRkVUaWxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVRpbGVFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVRpbGVFbGVtZW50OjpyZWdp
c3RlckF0dHJpYnV0ZXMpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdGRVRpbGVFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnJlZ2lzdGVyQXR0cmli
dXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnJlc3VsdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnJlc3VsdEFuaW1hdGVkKToKKyAg
ICAgICAgKiBzdmcvU1ZHTGVnYWN5QXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMZWdhY3lBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyOjpp
c0Rpc2NyZXRlQW5pbWF0b3IgY29uc3QpOgorICAgICAgICAqIHN2Zy9TVkdMZWdhY3lBdHRyaWJ1
dGVBbmltYXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VS
SVJlZmVyZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVUklSZWZlcmVuY2U6OlNWR1VS
SVJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVUklSZWZlcmVuY2U6OmlzS25vd25B
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVUklSZWZlcmVuY2U6OnJlZ2lzdGVyQXR0cmli
dXRlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdVUklSZWZlcmVuY2U6OmhyZWYg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHVVJJUmVmZXJlbmNlOjpocmVm
QW5pbWF0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9TVkdVUklSZWZlcmVuY2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1VSSVJlZmVyZW5jZTo6aHJlZiBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdVUklSZWZlcmVuY2U6OmhyZWZBbmltYXRlZCk6CisgICAgICAgICogc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29ySW1wbC5oOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5SW1wbC5oOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5OjphdHRyaWJ1dGVBbmlt
YXRvckNyZWF0b3IpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5Ojpy
ZWdpc3RlclByb3BlcnR5KToKKwogMjAxOS0wMy0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgSW5jbHVkZSBXQUwgYW5kIFNITSBmaWxlIHNpemUgaW4gSURC
IGRhdGFiYXNlIHNpemUgY29tcHV0YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNmVkYzQ2MTc4NzU2
YTExODJiMTVjY2YwZWRmYzBlNDIyZWY2NDNjYy4uNGRmNmFiYzY1MWE1ZGRlOTEwOWUxNDNmYzEz
Njk1NGVkZWZjZjU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIyNzYsNyArMjI3Niw2IEBAIHN2Zy9T
VkdBbmltYXRlZExlbmd0aExpc3QuY3BwCiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcAog
c3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKIHN2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5jcHAKLXN2
Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKIHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3Bw
CiBzdmcvU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IuY3BwCiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlMGYxM2M1YmViYjAyNmFkOGE0NTg3MzQzMzcwNjc0ZjM1MTExODViLi4wYWU3
MTZjZGFjNWY3OGFhMjdjMWQ1NTgzZjkyYWZlOTE3ZTA1OTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDcsNyArMjQ3LDYg
QEAKIAkJMDgzREFFQTcwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sTXVsdGlM
aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODNE
QUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCAqLzsg
fTsKIAkJMDgzREFFQTkwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgz
REFFQTUwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oICov
OyB9OwogCQkwODQ1NjgwODEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYw
MDk2MEE5RiAvKiBGb250TWV0cmljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTA4NERCNTlCMTI4MDA4Q0MwMDJBNkQ2NCAvKiBTVkdBbmltYXRl
ZFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg0REI1OUExMjgwMDhDQzAwMkE2RDY0IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmggKi87IH07CiAJ
CTA4NTI1RTYzMTI3OEMwMDEwMEE4NDc3OCAvKiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1
MjVFNjIxMjc4QzAwMTAwQTg0Nzc4IC8qIFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2Zm
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDg1
NEIwMTUxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMDMxMjU1RTRFNjAwQjlDREQw
IC8qIFJlbmRlclNWR0lubGluZS5oICovOyB9OwogCQkwODU0QjAxNzEyNTVFNEU2MDBCOUNERDAg
LyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDg1NEIwMDUxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGlu
ZVRleHQuaCAqLzsgfTsKQEAgLTU2MDksNyArNTYwOCw2IEBACiAJCTA4M0RBRUE0MEYwMUE3RkIw
MDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTUwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRNZXRyaWNzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTA4NERCNTlBMTI4MDA4Q0MwMDJBNkQ2NCAvKiBTVkdBbmltYXRl
ZFN0cmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFN0
cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODUyNUU2MjEyNzhDMDAxMDBB
ODQ3NzggLyogU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDIxMjU1RTRFNjAwQjlDREQwIC8q
IFJlbmRlclNWR0lubGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW5kZXJTVkdJbmxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODU0
QjAwMzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR0lubGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNzY2NCw3ICs3NjYyLDYgQEAKIAkJNDM5RDMzNDAxM0E2OTExQzAwQzIwRjRG
IC8qIFNWR0FuaW1hdGVkVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdBbmltYXRlZFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM5RDMzNDEx
M0E2OTExQzAwQzIwRjRGIC8qIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzOUQzMzQyMTNBNjkxMUMwMEMyMEY0RiAvKiBTVkdBbmlt
YXRvckZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0
b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQTYyNjY2MTNCM0Qx
MTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzQjg1RUQwMThDQkVBQ0UwMEUzMUFGNCAvKiBtYWtlU2VsZWN0b3JQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucHl0aG9uOyBwYXRoID0gbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5
RWxlbWVudE1hcC5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNCODVFRDIxOENC
RUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVu
dE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTZWxlY3RvclBz
ZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRN
YXAuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0M0I4NUVEMzE4
Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVt
ZW50TWFwLmdwZXJmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNlbGVjdG9yUHNldWRvQ2xhc3NB
bmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZjsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmdwZXJm
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMjQxNTAsOCArMjQxNDcs
NiBAQAogCQkJCTQzQjkzMzY3MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlz
dC5oICovLAogCQkJCUIyMjI3N0Y0MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW8uaWRsICovLAogCQkJCUIyMjI3N0Y1MEQwMEJGMUYwMDcxQjc4MiAvKiBT
VkdBbmltYXRlZFJlY3QuaWRsICovLAotCQkJCTQzQTYyNjY2MTNCM0QxMTAwMEFDOTRCOCAvKiBT
VkdBbmltYXRlZFN0cmluZy5jcHAgKi8sCi0JCQkJMDg0REI1OUExMjgwMDhDQzAwMkE2RDY0IC8q
IFNWR0FuaW1hdGVkU3RyaW5nLmggKi8sCiAJCQkJQjIyMjc3RjYwRDAwQkYxRjAwNzFCNzgyIC8q
IFNWR0FuaW1hdGVkU3RyaW5nLmlkbCAqLywKIAkJCQk3MTU3RjA2MTE1MEI2NTY0MDA2RUFBQkQg
LyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCAqLywKIAkJCQkwODI1MDkzODEyOEJENEQ4
MDBFMkVEOEUgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggKi8sCkBAIC0zMTkyOSw3ICsz
MTkyNCw2IEBACiAJCQkJMDg4QTBFMDgxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJv
cGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUZBN0ZGRjIxMTEwRTZFMDA1QUVG
RTcgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NTI1
RTYzMTI3OEMwMDEwMEE4NDc3OCAvKiBTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMDg0REI1OUIxMjgwMDhDQzAwMkE2RDY0IC8qIFNWR0FuaW1h
dGVkU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODI1MDkzOTEyOEJENEQ4MDBFMkVEOEUg
LyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODVBMTU5
MzEyODlBOEREMDAyNzEwRTMgLyogU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0UHJvcGVydHlUZWFy
T2ZmLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzlEMzM0MzEzQTY5MTFDMDBDMjBGNEYgLyogU1ZH
QW5pbWF0ZWRUeXBlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3Bw
CmluZGV4IGNhOWNkZjA2YjliODI1OGQ2M2M4MjRiOTRmODdjNDE1YjU1NjYwNjEuLjhlMGM1ZmZm
OGE4ODgyYjZjNzllMDMyZGJjZDc4NjcwNjVhNzc1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVt
ZW50LmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
OCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0
IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTUyLDcgKzUyLDExIEBAIGlubGluZSBTVkdBRWxlbWVudDo6U1ZHQUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50CiAgICAg
LCBTVkdVUklSZWZlcmVuY2UodGhpcykKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1l
czo6YVRhZykpOwotICAgIHJlZ2lzdGVyQXR0cmlidXRlcygpOworCisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Cisg
ICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnRhcmdl
dEF0dHIsICZTVkdBRWxlbWVudDo6bV90YXJnZXQ+KCk7CisgICAgfSk7CiB9CiAKIFJlZjxTVkdB
RWxlbWVudD4gU1ZHQUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC03MSwxOCArNzUsMTAgQEAgU3RyaW5nIFNWR0FFbGVt
ZW50Ojp0aXRsZSgpIGNvbnN0CiAgICAgcmV0dXJuIFNWR0VsZW1lbnQ6OnRpdGxlKCk7CiB9CiAK
LXZvaWQgU1ZHQUVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcygpCi17Ci0gICAgYXV0byYgcmVn
aXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgpOwotICAgIGlmICghcmVnaXN0cnkuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFt
ZXM6OnRhcmdldEF0dHIsICZTVkdBRWxlbWVudDo6bV90YXJnZXQ+KCk7Ci19Ci0KIHZvaWQgU1ZH
QUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnRhcmdl
dEF0dHIpIHsKLSAgICAgICAgbV90YXJnZXQuc2V0VmFsdWUodmFsdWUpOworICAgICAgICBtX3Rh
cmdldC0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAppbmRleCAwNTc3OTRiMGU3Y2YzMTQ0ZWI0OGJlZjIw
ZWE0ODkwMzBiZTM0YTAxLi4zYzk5MDliYzFiZDA1MGE4Njc5Mzk5Y2JjODdkNTcxMGQzMWRkYTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaApAQCAtMzMsMTUgKzMzLDEzIEBAIGNsYXNzIFNW
R0FFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0dyYXBoaWNzRWxlbWVudCwgcHVibGljIFNWR0V4
dGVybmFsUmVzb3VyY2VzCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdBRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgU3RyaW5nIHRhcmdl
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdGFyZ2V0LmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVP
d25lclByb3h5KCkpOyB9Ci0gICAgUmVmUHRyPFNWR0FuaW1hdGVkU3RyaW5nPiB0YXJnZXRBbmlt
YXRlZCgpIHsgcmV0dXJuIG1fdGFyZ2V0LmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQ
cm94eSgpKTsgfQorICAgIFN0cmluZyB0YXJnZXQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Rh
cmdldC0+Y3VycmVudFZhbHVlKCk7IH0KKyAgICBSZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+JiB0YXJn
ZXRBbmltYXRlZCgpIHsgcmV0dXJuIG1fdGFyZ2V0OyB9CiAKIHByaXZhdGU6CiAgICAgU1ZHQUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB1c2luZyBBdHRy
aWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUltcGw8U1ZHQUVsZW1lbnQs
IFNWR0dyYXBoaWNzRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHVVJJ
UmVmZXJlbmNlPjsKLSAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVn
aXN0cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6
YXR0cmlidXRlUmVnaXN0cnkoKTsgfQotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRl
cygpOwogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJv
eHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KIAogICAg
IHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHQUVs
ZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwg
U1ZHVVJJUmVmZXJlbmNlPjsKQEAgLTY4LDcgKzY2LDcgQEAgcHJpdmF0ZToKIAogICAgIEF0dHJp
YnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9w
ZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgU1ZHQW5pbWF0
ZWRTdHJpbmdBdHRyaWJ1dGUgbV90YXJnZXQ7CisgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBt
X3RhcmdldCB7IFNWR0FuaW1hdGVkU3RyaW5nOjpjcmVhdGUodGhpcykgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlRWxlbWVudEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50
QmFzZS5jcHAKaW5kZXggOGEzNDcwNGQ0ZTJlMGNlZDJjNWY1NWRhNTE0NGI0ZDA0NWM2M2RhNi4u
MDRkMzVhMGQ3OGYyOWM4YzVlZWM3NjM2YTY5ZWQ0NzY2NzQ3NzQ3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgYm9v
bCBTVkdBbmltYXRlRWxlbWVudEJhc2U6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0CiAg
ICAgaWYgKGRldGVybWluZUFuaW1hdGVkUHJvcGVydHlUeXBlKCp0YXJnZXRFbGVtZW50KCkpICE9
IEFuaW1hdGVkVW5rbm93bikKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4gdGFy
Z2V0RWxlbWVudCgpLT5pc0FuaW1hdGVkUHJvcGVydHlBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSgp
KTsKKyAgICByZXR1cm4gdGFyZ2V0RWxlbWVudCgpLT5pc0FuaW1hdGVkQXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUoKSk7CiB9CiAKIEFuaW1hdGVkUHJvcGVydHlUeXBlIFNWR0FuaW1hdGVFbGVtZW50
QmFzZTo6ZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUoU1ZHRWxlbWVudCYgdGFyZ2V0RWxl
bWVudCkgY29uc3QKQEAgLTc0LDYgKzc0LDExIEBAIEFuaW1hdGVkUHJvcGVydHlUeXBlIFNWR0Fu
aW1hdGVFbGVtZW50QmFzZTo6ZGV0ZXJtaW5lQW5pbWF0ZWRQcm9wZXJ0eVR5cGUoU1ZHRWxlCiAg
ICAgcmV0dXJuIFNWR0F0dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xsZXJCYXNlOjpkZXRlcm1pbmVB
bmltYXRlZFByb3BlcnR5VHlwZSgqdGhpcywgdGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFtZSgp
KTsKIH0KIAorYm9vbCBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmlzRGlzY3JldGVBbmltYXRvcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpICYmIGF0dHJpYnV0
ZUFuaW1hdGlvbkNvbnRyb2xsZXJJZkV4aXN0cygpICYmIGF0dHJpYnV0ZUFuaW1hdGlvbkNvbnRy
b2xsZXJJZkV4aXN0cygpLT5pc0Rpc2NyZXRlQW5pbWF0b3IoKTsKK30KKwogdm9pZCBTVkdBbmlt
YXRlRWxlbWVudEJhc2U6OmNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwg
dW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRFbGVtZW50KQogewog
ICAgIGlmICghdGFyZ2V0RWxlbWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVFbGVtZW50QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVF
bGVtZW50QmFzZS5oCmluZGV4IDI0NmNhNGJlMWY5ZjgzZTcyMDM2MDNlNjQwODhkZWRjNDdhMDc2
NmEuLmIwN2NkYzNhZmRhYzkxODE3Zjg2ZWYwMjQ3ZDFiNDZlZDIyNDc4ODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudEJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVi
bGljOgogICAgIFNWR0F0dHJpYnV0ZUFuaW1hdGlvbkNvbnRyb2xsZXJCYXNlKiBhdHRyaWJ1dGVB
bmltYXRpb25Db250cm9sbGVySWZFeGlzdHMoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZUFu
aW1hdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KIAogICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIGRl
dGVybWluZUFuaW1hdGVkUHJvcGVydHlUeXBlKFNWR0VsZW1lbnQmKSBjb25zdDsKKyAgICBib29s
IGlzRGlzY3JldGVBbmltYXRvcigpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHQW5pbWF0
ZUVsZW1lbnRCYXNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk5YzBkYWMyYjg2MmJmNTIwYzZhZGRmNDhlZDRjMTgzN2FhYzRjMjQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkU3RyaW5nLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0
cmluZy5oIgotCi0jaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6U1ZHQW5pbWF0ZWRTdHJp
bmdBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiBhbmltYXRpb25FbGVtZW50LCBTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCkKLSAgICA6IFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yKEFuaW1h
dGVkU3RyaW5nLCBhbmltYXRpb25FbGVtZW50LCBjb250ZXh0RWxlbWVudCkKLXsKLX0KLQotc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6
Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICByZXR1cm4g
U1ZHQW5pbWF0ZWRUeXBlOjpjcmVhdGUoU1ZHUHJvcGVydHlUcmFpdHM8U3RyaW5nPjo6ZnJvbVN0
cmluZyhzdHJpbmcpKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKLXsKLSAgICByZXR1cm4g
Y29uc3RydWN0RnJvbUJhc2VWYWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcyk7
Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6c3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQot
ewotICAgIHN0b3BBbmltVmFsQW5pbWF0aW9uRm9yVHlwZTxTVkdBbmltYXRlZFN0cmluZz4oYW5p
bWF0ZWRUeXBlcyk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6cmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5p
bWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlJiB0eXBlKQotewotICAgIHJlc2V0RnJvbUJhc2VW
YWx1ZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcywgdHlwZSk7Ci19Ci0KLXZvaWQg
U1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQotewotICAgIGFuaW1WYWxX
aWxsQ2hhbmdlRm9yVHlwZTxTVkdBbmltYXRlZFN0cmluZz4oYW5pbWF0ZWRUeXBlcyk7Ci19Ci0K
LXZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6YW5pbVZhbERpZENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCi17Ci0gICAgYW5p
bVZhbERpZENoYW5nZUZvclR5cGU8U1ZHQW5pbWF0ZWRTdHJpbmc+KGFuaW1hdGVkVHlwZXMpOwot
fQotCi12b2lkIFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I6OmFkZEFuaW1hdGVkVHlwZXMoU1ZH
QW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLX0KLQotc3RhdGljIFN0cmluZyBwYXJzZVN0cmluZ0Zyb21TdHJpbmcoU1ZHQW5pbWF0
aW9uRWxlbWVudCosIGNvbnN0IFN0cmluZyYgc3RyaW5nKQotewotICAgIHJldHVybiBzdHJpbmc7
Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0ZWRTdHJpbmdBbmltYXRvcjo6Y2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCwgU1ZHQW5pbWF0ZWRUeXBlKiBmcm9tLCBT
VkdBbmltYXRlZFR5cGUqIHRvLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqIGFu
aW1hdGVkKQotewotICAgIEFTU0VSVChtX2FuaW1hdGlvbkVsZW1lbnQpOwotICAgIEFTU0VSVCht
X2NvbnRleHRFbGVtZW50KTsKLQotICAgIGF1dG8gZnJvbVN0cmluZyA9IGZyb20tPmFzPFN0cmlu
Zz4oKTsKLSAgICBhdXRvIHRvU3RyaW5nID0gdG8tPmFzPFN0cmluZz4oKTsKLSAgICBhdXRvJiBh
bmltYXRlZFN0cmluZyA9IGFuaW1hdGVkLT5hczxTdHJpbmc+KCk7Ci0KLSAgICAvLyBBcHBseSBD
U1MgaW5oZXJpdGFuY2UgcnVsZXMuCi0gICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJ
bmhlcml0YW5jZTxTdHJpbmc+KHBhcnNlU3RyaW5nRnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVt
ZW50LT5mcm9tUHJvcGVydHlWYWx1ZVR5cGUoKSwgZnJvbVN0cmluZywgbV9jb250ZXh0RWxlbWVu
dCk7Ci0gICAgbV9hbmltYXRpb25FbGVtZW50LT5hZGp1c3RGb3JJbmhlcml0YW5jZTxTdHJpbmc+
KHBhcnNlU3RyaW5nRnJvbVN0cmluZywgbV9hbmltYXRpb25FbGVtZW50LT50b1Byb3BlcnR5VmFs
dWVUeXBlKCksIHRvU3RyaW5nLCBtX2NvbnRleHRFbGVtZW50KTsKLQotICAgIG1fYW5pbWF0aW9u
RWxlbWVudC0+YW5pbWF0ZURpc2NyZXRlVHlwZTxTdHJpbmc+KHBlcmNlbnRhZ2UsIGZyb21TdHJp
bmcsIHRvU3RyaW5nLCBhbmltYXRlZFN0cmluZyk7Ci19Ci0KLWZsb2F0IFNWR0FuaW1hdGVkU3Ry
aW5nQW5pbWF0b3I6OmNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpCi17Ci0gICAgLy8gTm8gcGFjZWQgYW5pbWF0aW9ucyBmb3Igc3RyaW5ncy4KLSAgICByZXR1
cm4gLTE7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFN0cmluZy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwOTg3MzE2ZjA3OGI3ZjcyZGJhOTA5M2U5YTU0MmRl
ZGQzYWE5MTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGlt
aXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJT
VkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yLmgiCi0jaW5jbHVkZSAiU1ZHQXR0cmlidXRlQWNjZXNzb3IuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTVkdBbmltYXRpb25FbGVtZW50OwotCi11c2luZyBT
VkdBbmltYXRlZFN0cmluZyA9IFNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmPFN0cmlu
Zz47Ci11c2luZyBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSA9IFNWR0FuaW1hdGVkQXR0cmli
dXRlPFNWR0FuaW1hdGVkU3RyaW5nPjsKLQotdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlPgot
dXNpbmcgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGVBY2Nlc3NvciA9IFNWR0FuaW1hdGVkQXR0
cmlidXRlQWNjZXNzb3I8T3duZXJUeXBlLCBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSwgQW5p
bWF0ZWRTdHJpbmc+OwotCi1jbGFzcyBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yIGZpbmFsIDog
cHVibGljIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKLXB1YmxpYzoKLSAgICBTVkdBbmltYXRl
ZFN0cmluZ0FuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7Ci0KLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNW
R0FuaW1hdGVkVHlwZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBh
bmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92
ZXJyaWRlOwotCi0gICAgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNW
R0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOwotICAgIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1
ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBl
KiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikg
b3ZlcnJpZGU7Ci0gICAgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9t
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSBvdmVycmlkZTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNw
cAppbmRleCA1YjZiNTZmYmJiNDgyMmY2NzJjMDNlMTE2MzViOTg4NWI0Njg1NmMzLi4yOTgyYzQz
Yzc0NDQ2ZDI0ZGZlMWY3MzExMjE0OGQ3YTVjZjEyNmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCkBAIC00OTEsOCArNDkxLDcgQEAgdm9pZCBTVkdBbmlt
YXRpb25FbGVtZW50OjpjdXJyZW50VmFsdWVzRm9yVmFsdWVzQW5pbWF0aW9uKGZsb2F0IHBlcmNl
bnQsIGZsb2F0JgogICAgIENhbGNNb2RlIGNhbGNNb2RlID0gdGhpcy0+Y2FsY01vZGUoKTsKICAg
ICBpZiAoaXM8U1ZHQW5pbWF0ZUVsZW1lbnQ+KCp0aGlzKSB8fCBpczxTVkdBbmltYXRlQ29sb3JF
bGVtZW50PigqdGhpcykpIHsKICAgICAgICAgQVNTRVJUKHRhcmdldEVsZW1lbnQoKSk7Ci0gICAg
ICAgIEFuaW1hdGVkUHJvcGVydHlUeXBlIHR5cGUgPSBkb3duY2FzdDxTVkdBbmltYXRlRWxlbWVu
dEJhc2U+KCp0aGlzKS5kZXRlcm1pbmVBbmltYXRlZFByb3BlcnR5VHlwZSgqdGFyZ2V0RWxlbWVu
dCgpKTsKLSAgICAgICAgaWYgKHR5cGUgPT0gQW5pbWF0ZWRCb29sZWFuIHx8IHR5cGUgPT0gQW5p
bWF0ZWRFbnVtZXJhdGlvbiB8fCB0eXBlID09IEFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyB8
fCB0eXBlID09IEFuaW1hdGVkU3RyaW5nKQorICAgICAgICBpZiAoZG93bmNhc3Q8U1ZHQW5pbWF0
ZUVsZW1lbnRCYXNlPigqdGhpcykuaXNEaXNjcmV0ZUFuaW1hdG9yKCkpCiAgICAgICAgICAgICBj
YWxjTW9kZSA9IENhbGNNb2RlOjpEaXNjcmV0ZTsKICAgICB9CiAgICAgaWYgKCFtX2tleVBvaW50
cy5pc0VtcHR5KCkgJiYgY2FsY01vZGUgIT0gQ2FsY01vZGU6OlBhY2VkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdG9yRmFjdG9yeS5oCmluZGV4IDgwZTUwYmQwNDVmNjhlOTVjMTk5NDQyMzQ2
NzEwMDc0ODhmZmZjNzcuLjQ0NjY0YmRjNjMxZThiOGRiNjA3MTY3Y2NmMTJlMWE4OTEyOGYwOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRvckZhY3RvcnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0b3JGYWN0b3J5LmgKQEAgLTI2LDcgKzI2LDYg
QEAKICNpbmNsdWRlICJTVkdBbmltYXRlZE51bWJlckxpc3QuaCIKICNpbmNsdWRlICJTVkdBbmlt
YXRlZFBhdGguaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50TGlzdC5oIgotI2luY2x1ZGUg
IlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDYgKzQ4LDcgQEAgcHVibGljOgogICAg
ICAgICBjYXNlIEFuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXI6CiAgICAgICAgIGNhc2UgQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOgogICAgICAgICBjYXNlIEFuaW1hdGVkUmVjdDoKKyAg
ICAgICAgY2FzZSBBbmltYXRlZFN0cmluZzoKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRBbmdsZToKQEAgLTY1LDggKzY1LDYgQEAgcHVibGljOgog
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0
b3I+KGFuaW1hdGlvbkVsZW1lbnQsIGNvbnRleHRFbGVtZW50KTsKICAgICAgICAgY2FzZSBBbmlt
YXRlZFBvaW50czoKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNWR0FuaW1h
dGVkUG9pbnRMaXN0QW5pbWF0b3I+KGFuaW1hdGlvbkVsZW1lbnQsIGNvbnRleHRFbGVtZW50KTsK
LSAgICAgICAgY2FzZSBBbmltYXRlZFN0cmluZzoKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3I+KGFuaW1hdGlvbkVsZW1lbnQsIGNv
bnRleHRFbGVtZW50KTsKICAgICAgICAgY2FzZSBBbmltYXRlZFRyYW5zZm9ybUxpc3Q6CiAgICAg
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RB
bmltYXRvcj4oYW5pbWF0aW9uRWxlbWVudCwgY29udGV4dEVsZW1lbnQpOwogICAgICAgICBjYXNl
IEFuaW1hdGVkVW5rbm93bjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRy
aWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRy
aWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBmOWNjYjY3ODgwNTJkMDQxY2JmYWQx
YzY0MWU4OGM2NzBkY2QxYzc3Li5iMmZmMDMyZjljOWU3MTk2ZjRmMjljY2VjM2NlNDYxYzhkMzI1
N2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQXR0cmlidXRlQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0F0dHJpYnV0ZUFuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFNWR0F0dHJpYnV0ZUFuaW1hdG9y
KiBTVkdBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRvcigpIGNvbnN0CiAKIGJv
b2wgU1ZHQXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlcjo6aXNEaXNjcmV0ZUFuaW1hdG9yKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gaGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkgJiYgbV9hbmltYXRv
ciAmJiBtX2FuaW1hdG9yLT5pc0Rpc2NyZXRlKCk7CisgICAgcmV0dXJuIGhhc1ZhbGlkQXR0cmli
dXRlVHlwZSgpICYmIGFuaW1hdG9ySWZFeGlzdHMoKSAmJiBhbmltYXRvcklmRXhpc3RzKCktPmlz
RGlzY3JldGUoKTsKIH0KIAogYm9vbCBTVkdBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVyOjpp
c0FkZGl0aXZlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRy
aWJ1dGVBbmltYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQXR0cmli
dXRlQW5pbWF0aW9uQ29udHJvbGxlci5oCmluZGV4IDFlYzAyZDNlY2M5ZGVlOGZhNWU3ODA4NWQx
NmY3ZTlmYjg5Zjg3MzguLjc5MzZmMGI2NDJmZWU4NTc5NGIwOTNhZmZkYTFlNTY2ODVhODgyZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRyaWJ1dGVBbmltYXRpb25Db250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0F0dHJpYnV0ZUFuaW1hdGlvbkNv
bnRyb2xsZXIuaApAQCAtNTcsOCArNTcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIGJvb2wgaXNB
ZGRpdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaGFzVmFsaWRBdHRyaWJ1dGVUeXBl
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGlzRGlzY3JldGVBbmltYXRvcigpIGNvbnN0
OworICAgIGJvb2wgaXNEaXNjcmV0ZUFuaW1hdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBt
dXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gbV9hbmltYXRvcjsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQXR0cmlidXRlQW5pbWF0aW9u
Q29udHJvbGxlckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRyaWJ1dGVBbmltYXRp
b25Db250cm9sbGVyQmFzZS5oCmluZGV4IDQ4ODkxNDhjMDA4Y2VjZGIwMTQ1ZWUwNmM5YmE4MmRh
MTY3YmQyMTAuLmRhYTg5NWRiNTcwNmM3NDUzMzc3NzkwODIwNGU5ODFiYjk0YmM0MTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRyaWJ1dGVBbmltYXRpb25Db250cm9sbGVy
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBdHRyaWJ1dGVBbmltYXRpb25Db250
cm9sbGVyQmFzZS5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBpc0FkZGl0aXZlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNWYWxpZEF0dHJp
YnV0ZVR5cGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzRGlzY3JldGVBbmltYXRv
cigpIGNvbnN0ID0gMDsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRlZFR5cGUo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyQW5pbWF0ZWRUeXBlKFNWR0VsZW1lbnQqIHRh
cmdldEVsZW1lbnQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJz
b3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCmluZGV4
IDhkNjk1Y2FmMTMxNDRmZjExZmJmOThiYzdjZWU2OTk3N2E1N2NjNDAuLjY0NTFlY2UxOWU1M2M4
ZDI1YTM4OGQwYzIwNTYzY2U3YTFmYjBiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDdXJzb3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVs
ZW1lbnQuaApAQCAtMjIsNyArMjIsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTVkdB
bmltYXRlZExlbmd0aC5oIgotI2luY2x1ZGUgIlNWR0FuaW1hdGVkU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQu
aCIKICNpbmNsdWRlICJTVkdUZXN0cy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCmluZGV4
IDlkMzU4NzBhNzQ3OWI5MGI3ZmZkZjQ5MzkyZTg0ZDU4ZTRkZTc0ODguLjJjMWYyZmRhNjg1NDI1
ZDI1MGQyMTFjODI1MTdkMWNhYTZlZDk5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAK
QEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
ICAqIENvcHlyaWdodCAoQykgMjAwOSBDYW1lcm9uIE1jQ29ybWFjayA8Y2FtQG1jYy5pZC5hdT4K
ICAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgpAQCAtMjc4LDcgKzI3OCwxMCBAQCBTVkdFbGVtZW50OjpTVkdFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICAsIFNWR0xh
bmdTcGFjZSh0aGlzKQogICAgICwgbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeShzdGQ6Om1ha2Vf
dW5pcXVlPFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5PigpKQogewotICAgIHJlZ2lzdGVyQXR0
cmlidXRlcygpOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6
OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdp
c3RlclByb3BlcnR5PEhUTUxOYW1lczo6Y2xhc3NBdHRyLCAmU1ZHRWxlbWVudDo6bV9jbGFzc05h
bWU+KCk7CisgICAgfSk7CiB9CiAKIFNWR0VsZW1lbnQ6On5TVkdFbGVtZW50KCkKQEAgLTQ1Mywx
OCArNDU2LDEwIEBAIHZvaWQgU1ZHRWxlbWVudDo6c2V0Q29ycmVzcG9uZGluZ0VsZW1lbnQoU1ZH
RWxlbWVudCogY29ycmVzcG9uZGluZ0VsZW1lbnQpCiAgICAgICAgIGNvcnJlc3BvbmRpbmdFbGVt
ZW50LT5lbnN1cmVTVkdSYXJlRGF0YSgpLmluc3RhbmNlcygpLmFkZCh0aGlzKTsKIH0KIAotdm9p
ZCBTVkdFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMoKQotewotICAgIGF1dG8mIHJlZ2lzdHJ5
ID0gYXR0cmlidXRlUmVnaXN0cnkoKTsKLSAgICBpZiAoIXJlZ2lzdHJ5LmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPEhUTUxOYW1lczo6
Y2xhc3NBdHRyLCAmU1ZHRWxlbWVudDo6bV9jbGFzc05hbWU+KCk7Ci19Ci0KIHZvaWQgU1ZHRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6OmNsYXNzQXR0
cikgewotICAgICAgICBtX2NsYXNzTmFtZS5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgICAgIG1fY2xh
c3NOYW1lLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAppbmRleCBjOGJiMWJhNGJlMDZmMTgzYmNhY2EyNzA2
YjNiYWZiY2VkYjMxYjVkLi4wZjc1ZTkwYmM2YTM5Mjk0ZDcwYWRmNWNlMmU3ZDk5ZTE2NmIzZGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKQEAgLTEzNiw5ICsxMzYsNiBAQCBwdWJsaWM6CiAK
ICAgICAvLyBUaGUgZGVmaW5pdGlvbiBvZiB0aGUgb3duZXIgcHJveHkgaGFzIHRvIG1hdGNoIHRo
ZSBjbGFzcyBpbmhlcml0YW5jZSBidXQgd2UgYXJlIGludGVyZXN0ZWQgaW4gdGhlIFNWRyBvYmpl
Y3RzIG9ubHkuCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93
bmVyUHJveHlJbXBsPFNWR0VsZW1lbnQsIFNWR0xhbmdTcGFjZT47Ci0gICAgc3RhdGljIGF1dG8m
IGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmli
dXRlUmVnaXN0cnkoKTsgfQotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94
eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQotICAgIHN0YXRpYyB2b2lkIHJl
Z2lzdGVyQXR0cmlidXRlcygpOwogCiAgICAgLy8gQSBzdXBlciBjbGFzcyB3aWxsIG92ZXJyaWRl
IHRoaXMgZnVuY3Rpb24gdG8gcmV0dXJuIGl0cyBvd25lciBwcm94eS4gVGhlIGF0dHJpYnV0ZXMg
b2YgdGhlIHN1cGVyIGNsYXNzIHdpbGwKICAgICAvLyBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggdGhl
IHJlZ2lzdHJ5IG9mIHRoZSBvd25lciBwcm94eS4KQEAgLTE1Myw2ICsxNTAsOCBAQCBwdWJsaWM6
CiAgICAgVmVjdG9yPFJlZlB0cjxTVkdMZWdhY3lBbmltYXRlZFByb3BlcnR5Pj4gbG9va3VwT3JD
cmVhdGVBbmltYXRlZFByb3BlcnRpZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgeyByZXR1
cm4gYXR0cmlidXRlT3duZXJQcm94eSgpLmxvb2t1cE9yQ3JlYXRlQW5pbWF0ZWRQcm9wZXJ0aWVz
KG5hbWUpOyB9CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5PFNWR0VsZW1lbnQ+OworICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgeyByZXR1cm4gUHJvcGVydHlSZWdp
c3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsgfQorCiAgICAgdmlydHVhbCBj
b25zdCBTVkdQcm9wZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgeyByZXR1
cm4gbV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CiAKICAgICBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CkBAIC0xNjcsOCArMTY2LDggQEAg
cHVibGljOgogICAgIHZvaWQgYW5pbWF0b3JXaWxsQmVEZWxldGVkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKIAogICAgIC8vIFRoZXNlIGFyZSBuZWVkZWQgZm9yIHRoZSBSZW5kZXJUcmVlLCBhbmlt
YXRpb24gYW5kIERPTS4KLSAgICBjb25zdCBhdXRvJiBjbGFzc05hbWUoKSBjb25zdCB7IHJldHVy
biBtX2NsYXNzTmFtZS5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQotICAg
IGF1dG8gY2xhc3NOYW1lQW5pbWF0ZWQoKSB7IHJldHVybiBtX2NsYXNzTmFtZS5hbmltYXRlZFBy
b3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBTdHJpbmcgY2xhc3NOYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9jbGFzc05hbWUtPmN1cnJlbnRWYWx1ZSgpOyB9CisgICAgU1ZHQW5p
bWF0ZWRTdHJpbmcmIGNsYXNzTmFtZUFuaW1hdGVkKCkgeyByZXR1cm4gbV9jbGFzc05hbWU7IH0K
IAogcHJvdGVjdGVkOgogICAgIFNWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CkBAIC0yMjIsNyArMjIxLDcgQEAgcHJpdmF0ZToKIAogICAgIEF0dHJpYnV0ZU93bmVy
UHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9wZXJ0eVJlZ2lz
dHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgU1ZHQW5pbWF0ZWRTdHJpbmdB
dHRyaWJ1dGUgbV9jbGFzc05hbWU7CisgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX2NsYXNz
TmFtZSB7IFNWR0FuaW1hdGVkU3RyaW5nOjpjcmVhdGUodGhpcykgfTsKIH07CiAKIGNsYXNzIFNW
R0VsZW1lbnQ6Okluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuY3BwCmluZGV4IGFmMjYxYjY4
NjEyOGUyNzAwMjNlMDJkZjg5NmE2NTk2Yzk2NDU2YzUuLmJlZjU5MjZmZWNiOGFjNTExOTIyNWE4
NmNmOWMxZGIwOGNkZDM5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5jcHAKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAKKyNp
bmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1NoYXBlLmgi
CiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IGZiOWU4OTZhMzhmOWUyMGRl
YTFmZDc5MzljNzIyNzVmOGM3NTZjMmEuLjQxMDgzMTI3NjRlODNhMDc2NWU5ODNlOGZkYTgxMWIy
NGVkODhjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcApAQCAt
Miw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNyBOaWtvbGFzIFpp
bW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDE0IEFk
b2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMzgsNiArMzgsMTIgQEAgaW5saW5lIFNWR0ZFQmxlbmRFbGVtZW50OjpT
VkdGRUJsZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVCbGVuZFRhZykpOwogICAgIHJlZ2lz
dGVyQXR0cmlidXRlcygpOworICAgIAorICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxh
ZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBQcm9wZXJ0eVJl
Z2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjppbkF0dHIsICZTVkdGRUJsZW5kRWxl
bWVudDo6bV9pbjE+KCk7CisgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVy
dHk8U1ZHTmFtZXM6OmluMkF0dHIsICZTVkdGRUJsZW5kRWxlbWVudDo6bV9pbjI+KCk7CisgICAg
fSk7CiB9CiAKIFJlZjxTVkdGRUJsZW5kRWxlbWVudD4gU1ZHRkVCbGVuZEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC01
MCw4ICs1Niw2IEBAIHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcygp
CiAgICAgYXV0byYgcmVnaXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgpOwogICAgIGlmICghcmVn
aXN0cnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJB
dHRyaWJ1dGU8U1ZHTmFtZXM6OmluQXR0ciwgJlNWR0ZFQmxlbmRFbGVtZW50OjptX2luMT4oKTsK
LSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6aW4yQXR0ciwgJlNWR0ZF
QmxlbmRFbGVtZW50OjptX2luMj4oKTsKICAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxT
VkdOYW1lczo6bW9kZUF0dHIsIEJsZW5kTW9kZSwgJlNWR0ZFQmxlbmRFbGVtZW50OjptX21vZGU+
KCk7CiB9CiAKQEAgLTY1LDEyICs2OSwxMiBAQCB2b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdAogICAg
IH0KIAogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKLSAgICAgICAgbV9pbjEu
c2V0VmFsdWUodmFsdWUpOworICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpp
bjJBdHRyKSB7Ci0gICAgICAgIG1faW4yLnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAgbV9pbjIt
PnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKaW5kZXggOWZiOTA2NDNiZWU3ZWNlNzg2
OTI3NmRhYjFkZTJjZDY1NmQ4YzQwNS4uMmJmN2Y4NTljMGRlYzk2ZTg2MjA5MjFhY2FiMjAzODY2
YzdhMmE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKQEAgLTQ2LDEy
ICs0NiwxMiBAQCBjbGFzcyBTVkdGRUJsZW5kRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
U1ZHRkVCbGVuZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAotICAgIFN0cmluZyBpbjEoKSBjb25zdCB7IHJldHVybiBtX2luMS5jdXJyZW50VmFsdWUo
YXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQotICAgIFN0cmluZyBpbjIoKSBjb25zdCB7IHJldHVy
biBtX2luMi5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQorICAgIFN0cmlu
ZyBpbjEoKSBjb25zdCB7IHJldHVybiBtX2luMS0+Y3VycmVudFZhbHVlKCk7IH0KKyAgICBTdHJp
bmcgaW4yKCkgY29uc3QgeyByZXR1cm4gbV9pbjItPmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAgQmxl
bmRNb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGUuY3VycmVudFZhbHVlKGF0dHJpYnV0
ZU93bmVyUHJveHkoKSk7IH0KIAotICAgIFJlZlB0cjxTVkdBbmltYXRlZFN0cmluZz4gaW4xQW5p
bWF0ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJv
eHkoKSk7IH0KLSAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRTdHJpbmc+IGluMkFuaW1hdGVkKCkgeyBy
ZXR1cm4gbV9pbjIuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Cisg
ICAgU1ZHQW5pbWF0ZWRTdHJpbmcmIGluMUFuaW1hdGVkKCkgeyByZXR1cm4gbV9pbjE7IH0KKyAg
ICBTVkdBbmltYXRlZFN0cmluZyYgaW4yQW5pbWF0ZWQoKSB7IHJldHVybiBtX2luMjsgfQogICAg
IFJlZlB0cjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtb2RlQW5pbWF0ZWQoKSB7IHJldHVybiBt
X21vZGUuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAKIHByaXZh
dGU6CkBAIC03OCw4ICs3OCw4IEBAIHByaXZhdGU6CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5
IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CiAgICAgUHJvcGVydHlSZWdpc3RyeSBt
X3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmli
dXRlIG1faW4xOwotICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmlidXRlIG1faW4yOworICAgIFJl
ZjxTVkdBbmltYXRlZFN0cmluZz4gbV9pbjEgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRo
aXMpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX2luMiB7IFNWR0FuaW1hdGVkU3Ry
aW5nOjpjcmVhdGUodGhpcykgfTsKICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uQXR0cmlidXRl
PEJsZW5kTW9kZT4gbV9tb2RlIHsgQmxlbmRNb2RlOjpOb3JtYWwgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDQ1OGQ2M2U3
NTc5OWEzNDVhNWI5OGNiZDQ3OTE5M2MyNjI4YjczNDUuLmUzZDA3ZTA4ZDQ3OTllOTIzZjcwMjEx
NDNhM2NjZDZmMGU5NzU5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bG9yTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50LmNwcApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
LSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDYgKzM2LDExIEBAIGlubGluZSBTVkdGRUNvbG9y
TWF0cml4RWxlbWVudDo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlQ29sb3JNYXRyaXhU
YWcpKTsKICAgICByZWdpc3RlckF0dHJpYnV0ZXMoKTsKKyAgICAKKyAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAg
ICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6aW5BdHRy
LCAmU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6Om1faW4xPigpOworICAgIH0pOwogfQogCiBSZWY8
U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtNDgs
NyArNTMsNiBAQCB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0
ZXMoKQogICAgIGF1dG8mIHJlZ2lzdHJ5ID0gYXR0cmlidXRlUmVnaXN0cnkoKTsKICAgICBpZiAo
IXJlZ2lzdHJ5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHJlZ2lzdHJ5LnJlZ2lz
dGVyQXR0cmlidXRlPFNWR05hbWVzOjppbkF0dHIsICZTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6
bV9pbjE+KCk7CiAgICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6OnR5cGVB
dHRyLCBDb2xvck1hdHJpeFR5cGUsICZTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6bV90eXBlPigp
OwogICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjp2YWx1ZXNBdHRyLCAm
U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6Om1fdmFsdWVzPigpOwogfQpAQCAtNjMsNyArNjcsNyBA
QCB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdAogICAgIH0KIAogICAgIGlmIChuYW1lID09IFNWR05h
bWVzOjppbkF0dHIpIHsKLSAgICAgICAgbV9pbjEuc2V0VmFsdWUodmFsdWUpOworICAgICAgICBt
X2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAppbmRleCBh
MzIwNzY3MGJkOTM1YmQxMjgzOWY4YmFkOWQ2M2U5OTgyOGI3ZWI3Li42OGEyNjhhMGJkYjg5MjY1
YTg3YTc0ZDZiNmFhOWIxOWU2OGJlNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQuaApAQCAtNzAsMTEgKzcwLDExIEBAIGNsYXNzIFNWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50IGZpbmFsIDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdGRUNvbG9yTWF0cml4RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgU3RyaW5nIGlu
MSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5
KCkpOyB9CisgICAgU3RyaW5nIGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLT5jdXJyZW50VmFs
dWUoKTsgfQogICAgIENvbG9yTWF0cml4VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
LmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgY29uc3QgU1ZHTnVt
YmVyTGlzdFZhbHVlcyYgdmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuY3VycmVudFZh
bHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KIAotICAgIFJlZlB0cjxTVkdBbmltYXRlZFN0
cmluZz4gaW4xQW5pbWF0ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3BlcnR5KGF0dHJp
YnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBTVkdBbmltYXRlZFN0cmluZyYgaW4xQW5pbWF0ZWQo
KSB7IHJldHVybiBtX2luMTsgfQogICAgIFJlZlB0cjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiB0
eXBlQW5pbWF0ZWQoKSB7IHJldHVybiBtX3R5cGUuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVP
d25lclByb3h5KCkpOyB9CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkTnVtYmVyTGlzdD4gdmFsdWVz
QW5pbWF0ZWQoKSB7IHJldHVybiBtX3ZhbHVlcy5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93
bmVyUHJveHkoKSk7IH0KIApAQCAtMTAyLDcgKzEwMiw3IEBAIHByaXZhdGU6CiAKICAgICBBdHRy
aWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CiAgICAgUHJv
cGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAgIFNWR0FuaW1h
dGVkU3RyaW5nQXR0cmlidXRlIG1faW4xOworICAgIFJlZjxTVkdBbmltYXRlZFN0cmluZz4gbV9p
bjEgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiAgICAgU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbkF0dHJpYnV0ZTxDb2xvck1hdHJpeFR5cGU+IG1fdHlwZSB7IEZFQ09MT1JNQVRS
SVhfVFlQRV9NQVRSSVggfTsKICAgICBTVkdBbmltYXRlZE51bWJlckxpc3RBdHRyaWJ1dGUgbV92
YWx1ZXM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRy
YW5zZmVyRWxlbWVudC5jcHAKaW5kZXggOTA2MzVkYzllNjhjM2FjYWI2ZWM5NDc1NDk2MzVmODNj
NGZhMmRmNS4uZWM1MTVlMTE0YTJhY2YyYTc2MDU0ZWUwYTU3YTNkMTNiM2JkNGZhMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQu
Y3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
OC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtNDAsNyArNDAsMTEgQEAgaW5saW5lIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
OjpTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudChjb25zdCBRdWFsaWYKICAgICA6IFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAg
ICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVDb21wb25lbnRUcmFuc2ZlclRhZykpOwot
ICAgIHJlZ2lzdGVyQXR0cmlidXRlcygpOworCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9u
Y2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIFByb3Bl
cnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OmluQXR0ciwgJlNWR0ZFQ29t
cG9uZW50VHJhbnNmZXJFbGVtZW50OjptX2luMT4oKTsKKyAgICB9KTsKIH0KIAogUmVmPFNWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50PiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
QEAgLTQ4LDE4ICs1MiwxMCBAQCBSZWY8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+IFNW
R0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUQogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OnJlZ2lzdGVy
QXR0cmlidXRlcygpCi17Ci0gICAgYXV0byYgcmVnaXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgp
OwotICAgIGlmICghcmVnaXN0cnkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgcmVn
aXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6OmluQXR0ciwgJlNWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50OjptX2luMT4oKTsKLX0KLQogdm9pZCBTVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6aW5B
dHRyKSB7Ci0gICAgICAgIG1faW4xLnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAgbV9pbjEtPnNl
dEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKaW5k
ZXggNWZmYjFlMTZlZjA2YjJjMmMxNTllNmRhZTRiMDY5NGM4ZGIzNmFlNS4uYzAxMjFhYzllMjIz
NmFhMGU1NjIxYWM0OWRjYTUzY2E3ZmUzZjQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKQEAgLTMxLDE1ICszMSwxMyBAQCBj
bGFzcyBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dAogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1ZHRkVDb21w
b25lbnRUcmFuc2ZlckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAotICAgIFN0cmluZyBpbjEoKSBjb25zdCB7IHJldHVybiBtX2luMS5jdXJyZW50VmFs
dWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQotICAgIFJlZlB0cjxTVkdBbmltYXRlZFN0cmlu
Zz4gaW4xQW5pbWF0ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0
ZU93bmVyUHJveHkoKSk7IH0KKyAgICBTdHJpbmcgaW4xKCkgY29uc3QgeyByZXR1cm4gbV9pbjEt
PmN1cnJlbnRWYWx1ZSgpOyB9CisgICAgU1ZHQW5pbWF0ZWRTdHJpbmcmIGluMUFuaW1hdGVkKCkg
eyByZXR1cm4gbV9pbjE7IH0KIAogcHJpdmF0ZToKICAgICBTVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIEF0
dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
PjsKLSAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0cnkmIGF0
dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0cmlidXRl
UmVnaXN0cnkoKTsgfQotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwogICAg
IGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHkoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KIAogICAgIHVzaW5nIFBy
b3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CkBA
IC01Miw3ICs1MCw3IEBAIHByaXZhdGU6CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0
cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3Bl
cnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmlidXRlIG1f
aW4xOworICAgIFJlZjxTVkdBbmltYXRlZFN0cmluZz4gbV9pbjEgeyBTVkdBbmltYXRlZFN0cmlu
Zzo6Y3JlYXRlKHRoaXMpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCmluZGV4IDI2NTdhZTk5Nzkw
MDcxZjc3YmVjNWIzODQ5MjNjMGFkMWE4ODIzYmEuLjRhZjM5MDBmNjQwNTM5MWMzMDY5ODkxNzcw
N2MzZTEzZDZjYjcyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBv
c2l0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuY3BwCkBAIC0zOSw2ICszOSw4IEBAIGlubGluZSBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6
OlNWR0ZFQ29tcG9zaXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lCiAgICAg
CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNl
KG9uY2VGbGFnLCBbXSB7CisgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVy
dHk8U1ZHTmFtZXM6OmluQXR0ciwgJlNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6bV9pbjE+KCk7Cisg
ICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OmluMkF0
dHIsICZTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6Om1faW4yPigpOwogICAgICAgICBQcm9wZXJ0eVJl
Z2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjprMUF0dHIsICZTVkdGRUNvbXBvc2l0
ZUVsZW1lbnQ6Om1fazE+KCk7CiAgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJv
cGVydHk8U1ZHTmFtZXM6OmsyQXR0ciwgJlNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6bV9rMj4oKTsK
ICAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6azNB
dHRyLCAmU1ZHRkVDb21wb3NpdGVFbGVtZW50OjptX2szPigpOwpAQCAtNTYsOCArNTgsNiBAQCB2
b2lkIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKCkKICAgICBhdXRv
JiByZWdpc3RyeSA9IGF0dHJpYnV0ZVJlZ2lzdHJ5KCk7CiAgICAgaWYgKCFyZWdpc3RyeS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxT
VkdOYW1lczo6aW5BdHRyLCAmU1ZHRkVDb21wb3NpdGVFbGVtZW50OjptX2luMT4oKTsKLSAgICBy
ZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6aW4yQXR0ciwgJlNWR0ZFQ29tcG9z
aXRlRWxlbWVudDo6bV9pbjI+KCk7CiAgICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZH
TmFtZXM6Om9wZXJhdG9yQXR0ciwgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSwgJlNWR0ZFQ29tcG9z
aXRlRWxlbWVudDo6bV9zdmdPcGVyYXRvcj4oKTsKIH0KIApAQCAtNzEsMTIgKzcxLDEyIEBAIHZv
aWQgU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tCiAgICAgfQogCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OmluQXR0cikgewotICAgICAgICBtX2luMS5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgICAgIG1faW4x
LT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluMkF0dHIpIHsKLSAgICAgICAgbV9pbjIuc2V0VmFs
dWUodmFsdWUpOworICAgICAgICBtX2luMi0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29tcG9zaXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRl
RWxlbWVudC5oCmluZGV4IDAzYTdkYmViNTVlNDk1ODQxZjg0MmVlZDA4OWFiMTljY2Y1ZjFlNGYu
LmNlZTgxMDM2ZDg5NTE3ZWM3NjRhZmQwMTk2NWQ4ZjM1OWIxMjRjYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgKQEAgLTg0LDE2ICs4NCwxNiBAQCBjbGFz
cyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdGRUNvbXBvc2l0
ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IFN0cmluZyBpbjEoKSBjb25zdCB7IHJldHVybiBtX2luMS5jdXJyZW50VmFsdWUoYXR0cmlidXRl
T3duZXJQcm94eSgpKTsgfQotICAgIFN0cmluZyBpbjIoKSBjb25zdCB7IHJldHVybiBtX2luMi5j
dXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQorICAgIFN0cmluZyBpbjEoKSBj
b25zdCB7IHJldHVybiBtX2luMS0+Y3VycmVudFZhbHVlKCk7IH0KKyAgICBTdHJpbmcgaW4yKCkg
Y29uc3QgeyByZXR1cm4gbV9pbjItPmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAgQ29tcG9zaXRlT3Bl
cmF0aW9uVHlwZSBzdmdPcGVyYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3ZnT3BlcmF0b3IuY3Vy
cmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBmbG9hdCBrMSgpIGNvbnN0
IHsgcmV0dXJuIG1fazEtPmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAgZmxvYXQgazIoKSBjb25zdCB7
IHJldHVybiBtX2syLT5jdXJyZW50VmFsdWUoKTsgfQogICAgIGZsb2F0IGszKCkgY29uc3QgeyBy
ZXR1cm4gbV9rMy0+Y3VycmVudFZhbHVlKCk7IH0KICAgICBmbG9hdCBrNCgpIGNvbnN0IHsgcmV0
dXJuIG1fazQtPmN1cnJlbnRWYWx1ZSgpOyB9CiAKLSAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRTdHJp
bmc+IGluMUFuaW1hdGVkKCkgeyByZXR1cm4gbV9pbjEuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1
dGVPd25lclByb3h5KCkpOyB9Ci0gICAgUmVmUHRyPFNWR0FuaW1hdGVkU3RyaW5nPiBpbjJBbmlt
YXRlZCgpIHsgcmV0dXJuIG1faW4yLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQcm94
eSgpKTsgfQorICAgIFNWR0FuaW1hdGVkU3RyaW5nJiBpbjFBbmltYXRlZCgpIHsgcmV0dXJuIG1f
aW4xOyB9CisgICAgU1ZHQW5pbWF0ZWRTdHJpbmcmIGluMkFuaW1hdGVkKCkgeyByZXR1cm4gbV9p
bjI7IH0KICAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gc3ZnT3BlcmF0b3JBbmlt
YXRlZCgpIHsgcmV0dXJuIG1fc3ZnT3BlcmF0b3IuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVP
d25lclByb3h5KCkpOyB9CiAgICAgU1ZHQW5pbWF0ZWROdW1iZXImIGsxQW5pbWF0ZWQoKSB7IHJl
dHVybiBtX2sxOyB9CiAgICAgU1ZHQW5pbWF0ZWROdW1iZXImIGsyQW5pbWF0ZWQoKSB7IHJldHVy
biBtX2syOyB9CkBAIC0xMjQsOCArMTI0LDggQEAgcHJpdmF0ZToKIAogICAgIEF0dHJpYnV0ZU93
bmVyUHJveHkgbV9hdHRyaWJ1dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9wZXJ0eVJl
Z2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgU1ZHQW5pbWF0ZWRTdHJp
bmdBdHRyaWJ1dGUgbV9pbjE7Ci0gICAgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGUgbV9pbjI7
CisgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX2luMSB7IFNWR0FuaW1hdGVkU3RyaW5nOjpj
cmVhdGUodGhpcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+IG1faW4yIHsgU1ZHQW5p
bWF0ZWRTdHJpbmc6OmNyZWF0ZSh0aGlzKSB9OwogICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25B
dHRyaWJ1dGU8Q29tcG9zaXRlT3BlcmF0aW9uVHlwZT4gbV9zdmdPcGVyYXRvciB7IEZFQ09NUE9T
SVRFX09QRVJBVE9SX09WRVIgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IG1fazEgeyBT
VkdBbmltYXRlZE51bWJlcjo6Y3JlYXRlKHRoaXMpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTnVt
YmVyPiBtX2syIHsgU1ZHQW5pbWF0ZWROdW1iZXI6OmNyZWF0ZSh0aGlzKSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKaW5kZXggZTIw
OTY2MTljMDFmMmU3MzBhZDNiYmNkYzg4NGEyZWYxZWYwYjAyMC4uOGNlNWEwM2U2Y2I1MjRlNTVh
M2U1OGE5ZjFiMjgyYWU0YzllZGUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCkBAIC00Myw2ICs0Myw3IEBAIGlubGluZSBTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudDo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtCiAKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAg
c3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6
cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6aW5BdHRyLCAmU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6Om1faW4xPigpOwogICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3Bl
cnR5PFNWR05hbWVzOjpvcmRlckF0dHIsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6bV9v
cmRlclgsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6bV9vcmRlclk+KCk7CiAgICAgICAg
IFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OmRpdmlzb3JBdHRy
LCAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fZGl2aXNvcj4oKTsKICAgICAgICAgUHJv
cGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6Ymlhc0F0dHIsICZTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudDo6bV9iaWFzPigpOwpAQCAtNjMsNyArNjQsNiBAQCB2b2lk
IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpyZWdpc3RlckF0dHJpYnV0ZXMoKQogICAgIGF1
dG8mIHJlZ2lzdHJ5ID0gYXR0cmlidXRlUmVnaXN0cnkoKTsKICAgICBpZiAoIXJlZ2lzdHJ5Lmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRl
PFNWR05hbWVzOjppbkF0dHIsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6bV9pbjE+KCk7
CiAgICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6Omtlcm5lbE1hdHJpeEF0
dHIsICZTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6bV9rZXJuZWxNYXRyaXg+KCk7CiAgICAg
cmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6OmVkZ2VNb2RlQXR0ciwgRWRnZU1v
ZGVUeXBlLCAmU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6Om1fZWRnZU1vZGU+KCk7CiB9CkBA
IC03MSw3ICs3MSw3IEBAIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnJlZ2lzdGVy
QXR0cmlidXRlcygpCiB2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
KQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKLSAgICAgICAgbV9pbjEu
c2V0VmFsdWUodmFsdWUpOworICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaAppbmRleCA0NTJkYzczZjY1YTdhMjI3ZTZkNWI1NDli
MDAzOWIwZTYyZGIwN2UyLi5mNGNlODllNmE2OWY1OTNmZDBmYTk2MDU3NTdmMGVlMzExOGIzNTQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQu
aApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcmRlcihmbG9hdCBvcmRl
clgsIGZsb2F0IG9yZGVyWSk7CiAgICAgdm9pZCBzZXRLZXJuZWxVbml0TGVuZ3RoKGZsb2F0IGtl
cm5lbFVuaXRMZW5ndGhYLCBmbG9hdCBrZXJuZWxVbml0TGVuZ3RoWSk7CiAKLSAgICBTdHJpbmcg
aW4xKCkgY29uc3QgeyByZXR1cm4gbV9pbjEuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJv
eHkoKSk7IH0KKyAgICBTdHJpbmcgaW4xKCkgY29uc3QgeyByZXR1cm4gbV9pbjEtPmN1cnJlbnRW
YWx1ZSgpOyB9CiAgICAgaW50IG9yZGVyWCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JkZXJYLT5jdXJy
ZW50VmFsdWUoKTsgfQogICAgIGludCBvcmRlclkoKSBjb25zdCB7IHJldHVybiBtX29yZGVyWS0+
Y3VycmVudFZhbHVlKCk7IH0KICAgICBjb25zdCBTVkdOdW1iZXJMaXN0VmFsdWVzJiBrZXJuZWxN
YXRyaXgoKSBjb25zdCB7IHJldHVybiBtX2tlcm5lbE1hdHJpeC5jdXJyZW50VmFsdWUoYXR0cmli
dXRlT3duZXJQcm94eSgpKTsgfQpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgZmxvYXQg
a2VybmVsVW5pdExlbmd0aFkoKSBjb25zdCB7IHJldHVybiBtX2tlcm5lbFVuaXRMZW5ndGhZLT5j
dXJyZW50VmFsdWUoKTsgfQogICAgIGJvb2wgcHJlc2VydmVBbHBoYSgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJlc2VydmVBbHBoYS0+Y3VycmVudFZhbHVlKCk7IH0KIAotICAgIFJlZlB0cjxTVkdBbmlt
YXRlZFN0cmluZz4gaW4xQW5pbWF0ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3BlcnR5
KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBTVkdBbmltYXRlZFN0cmluZyYgaW4xQW5p
bWF0ZWQoKSB7IHJldHVybiBtX2luMTsgfQogICAgIFNWR0FuaW1hdGVkSW50ZWdlciYgb3JkZXJY
QW5pbWF0ZWQoKSB7IHJldHVybiBtX29yZGVyWDsgfQogICAgIFNWR0FuaW1hdGVkSW50ZWdlciYg
b3JkZXJZQW5pbWF0ZWQoKSB7IHJldHVybiBtX29yZGVyWTsgfQogICAgIFJlZlB0cjxTVkdBbmlt
YXRlZE51bWJlckxpc3Q+IGtlcm5lbE1hdHJpeEFuaW1hdGVkKCkgeyByZXR1cm4gbV9rZXJuZWxN
YXRyaXguYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CkBAIC0xMTcs
NyArMTE3LDcgQEAgcHJpdmF0ZToKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1
dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlS
ZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGUgbV9pbjE7
CisgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX2luMSB7IFNWR0FuaW1hdGVkU3RyaW5nOjpj
cmVhdGUodGhpcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRJbnRlZ2VyPiBtX29yZGVyWCB7IFNW
R0FuaW1hdGVkSW50ZWdlcjo6Y3JlYXRlKHRoaXMpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkSW50
ZWdlcj4gbV9vcmRlclkgeyBTVkdBbmltYXRlZEludGVnZXI6OmNyZWF0ZSh0aGlzKSB9OwogICAg
IFNWR0FuaW1hdGVkTnVtYmVyTGlzdEF0dHJpYnV0ZSBtX2tlcm5lbE1hdHJpeDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXgg
YjU3MGM4YjEyYzFhNDdjZWQ3OWM1YTAzYTI0MjcyOTdkNTM1MTU5Ny4uZTNkZjViOGQ2NWFjNjgx
NDNiOWNmZGU2ODFkMGM1YTk0NDY2M2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTM4LDEwICszOCwxMCBAQCBpbmxp
bmUgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTgogICAgIDogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzKHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05h
bWVzOjpmZURpZmZ1c2VMaWdodGluZ1RhZykpOwotICAgIHJlZ2lzdGVyQXR0cmlidXRlcygpOwog
CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNl
KG9uY2VGbGFnLCBbXSB7CisgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVy
dHk8U1ZHTmFtZXM6OmluQXR0ciwgJlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6bV9pbjE+
KCk7CiAgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6
OmRpZmZ1c2VDb25zdGFudEF0dHIsICZTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6Om1fZGlm
ZnVzZUNvbnN0YW50PigpOwogICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3Bl
cnR5PFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyLCAmU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50OjptX3N1cmZhY2VTY2FsZT4oKTsKICAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0
ZXJQcm9wZXJ0eTxTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIsICZTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQ6Om1fa2VybmVsVW5pdExlbmd0aFgsICZTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQ6Om1fa2VybmVsVW5pdExlbmd0aFk+KCk7CkBAIC01MywxOCArNTMsMTAgQEAgUmVm
PFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcygpCi17Ci0gICAgYXV0byYg
cmVnaXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgpOwotICAgIGlmICghcmVnaXN0cnkuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZH
TmFtZXM6OmluQXR0ciwgJlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6bV9pbjE+KCk7Ci19
Ci0KIHZvaWQgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKLSAgICAgICAgbV9pbjEuc2V0VmFsdWUo
dmFsdWUpOworICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudC5oCmluZGV4IDc2MTQwNzhlMWJhMThlYjlhYzJiOWJkMmQ3YTU2ZTcy
MGQ4YjY5ODQuLmYyNjJmYzk0NzJiNDNmZWM3Njc0ZjhlOTY2OTVkYjllMmIwMGJmNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKQEAg
LTM2LDEzICszNiwxMyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAg
ICB2b2lkIGxpZ2h0RWxlbWVudEF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgU1ZHRkVMaWdodEVsZW1l
bnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICBTdHJpbmcgaW4xKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbjEuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBT
dHJpbmcgaW4xKCkgY29uc3QgeyByZXR1cm4gbV9pbjEtPmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAg
ZmxvYXQgZGlmZnVzZUNvbnN0YW50KCkgY29uc3QgeyByZXR1cm4gbV9kaWZmdXNlQ29uc3RhbnQt
PmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAgZmxvYXQgc3VyZmFjZVNjYWxlKCkgY29uc3QgeyByZXR1
cm4gbV9zdXJmYWNlU2NhbGUtPmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAgZmxvYXQga2VybmVsVW5p
dExlbmd0aFgoKSBjb25zdCB7IHJldHVybiBtX2tlcm5lbFVuaXRMZW5ndGhYLT5jdXJyZW50VmFs
dWUoKTsgfQogICAgIGZsb2F0IGtlcm5lbFVuaXRMZW5ndGhZKCkgY29uc3QgeyByZXR1cm4gbV9r
ZXJuZWxVbml0TGVuZ3RoWS0+Y3VycmVudFZhbHVlKCk7IH0KIAotICAgIFJlZlB0cjxTVkdBbmlt
YXRlZFN0cmluZz4gaW4xQW5pbWF0ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3BlcnR5
KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBTVkdBbmltYXRlZFN0cmluZyYgaW4xQW5p
bWF0ZWQoKSB7IHJldHVybiBtX2luMTsgfQogICAgIFNWR0FuaW1hdGVkTnVtYmVyJiBkaWZmdXNl
Q29uc3RhbnRBbmltYXRlZCgpIHsgcmV0dXJuIG1fZGlmZnVzZUNvbnN0YW50OyB9CiAgICAgU1ZH
QW5pbWF0ZWROdW1iZXImIHN1cmZhY2VTY2FsZUFuaW1hdGVkKCkgeyByZXR1cm4gbV9zdXJmYWNl
U2NhbGU7IH0KICAgICBTVkdBbmltYXRlZE51bWJlciYga2VybmVsVW5pdExlbmd0aFhBbmltYXRl
ZCgpIHsgcmV0dXJuIG1fa2VybmVsVW5pdExlbmd0aFg7IH0KQEAgLTUyLDE4ICs1MiwxMSBAQCBw
cml2YXRlOgogICAgIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdB
dHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQsIFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47Ci0gICAgc3RhdGljIEF0dHJpYnV0ZU93
bmVyUHJveHk6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBhdHRyaWJ1dGVSZWdpc3RyeSgpIHsgcmV0dXJu
IEF0dHJpYnV0ZU93bmVyUHJveHk6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCk7IH0KLSAgICBzdGF0aWMg
dm9pZCByZWdpc3RlckF0dHJpYnV0ZXMoKTsKICAgICBjb25zdCBTVkdBdHRyaWJ1dGVPd25lclBy
b3h5JiBhdHRyaWJ1dGVPd25lclByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hdHRyaWJ1
dGVPd25lclByb3h5OyB9CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVy
dHlPd25lclJlZ2lzdHJ5PFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCwgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKICAgICBjb25zdCBTVkdQcm9wZXJ0eVJlZ2lzdHJ5
JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm9wZXJ0eVJlZ2lz
dHJ5OyB9CiAgICAgCi0gICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEF0dHJpYnV0
ZU93bmVyUHJveHk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgfHwgUHJvcGVydHlS
ZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKLSAgICB9Ci0KICAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIG92ZXJyaWRlOwogCkBAIC03Miw3ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICBB
dHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0aGlzIH07CiAgICAg
UHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAgIFNWR0Fu
aW1hdGVkU3RyaW5nQXR0cmlidXRlIG1faW4xOworICAgIFJlZjxTVkdBbmltYXRlZFN0cmluZz4g
bV9pbjEgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiAgICAgUmVmPFNWR0Fu
aW1hdGVkTnVtYmVyPiBtX2RpZmZ1c2VDb25zdGFudCB7IFNWR0FuaW1hdGVkTnVtYmVyOjpjcmVh
dGUodGhpcywgMSkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IG1fc3VyZmFjZVNjYWxl
IHsgU1ZHQW5pbWF0ZWROdW1iZXI6OmNyZWF0ZSh0aGlzLCAxKSB9OwogICAgIFJlZjxTVkdBbmlt
YXRlZE51bWJlcj4gbV9rZXJuZWxVbml0TGVuZ3RoWCB7IFNWR0FuaW1hdGVkTnVtYmVyOjpjcmVh
dGUodGhpcykgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHAKaW5kZXggYjJhMjZhYzhkZDExZmVmOWE2YzAyNTA0MmZkMDc3NTFmYTU1
NThmOS4uZTdiZmM5ZTMwZmYwMjJmYjRiOWYwYWY3ZjJhMmVmODFkMjA2MWFkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKQEAg
LTM4LDYgKzM4LDggQEAgaW5saW5lIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6U1ZHRkVE
aXNwbGFjZW1lbnRNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE4KICAgICAKICAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtd
IHsKKyAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6
aW5BdHRyLCAmU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjptX2luMT4oKTsKKyAgICAgICAg
UHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6aW4yQXR0ciwgJlNW
R0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6bV9pbjI+KCk7CiAgICAgICAgIFByb3BlcnR5UmVn
aXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnNjYWxlQXR0ciwgJlNWR0ZFRGlzcGxh
Y2VtZW50TWFwRWxlbWVudDo6bV9zY2FsZT4oKTsKICAgICB9KTsKIH0KQEAgLTUyLDggKzU0LDYg
QEAgdm9pZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcygp
CiAgICAgYXV0byYgcmVnaXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgpOwogICAgIGlmICghcmVn
aXN0cnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJB
dHRyaWJ1dGU8U1ZHTmFtZXM6OmluQXR0ciwgJlNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6
bV9pbjE+KCk7Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6OmluMkF0
dHIsICZTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6Om1faW4yPigpOwogICAgIHJlZ2lzdHJ5
LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjp4Q2hhbm5lbFNlbGVjdG9yQXR0ciwgQ2hhbm5l
bFNlbGVjdG9yVHlwZSwgJlNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6bV94Q2hhbm5lbFNl
bGVjdG9yPigpOwogICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjp5Q2hh
bm5lbFNlbGVjdG9yQXR0ciwgQ2hhbm5lbFNlbGVjdG9yVHlwZSwgJlNWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudDo6bV95Q2hhbm5lbFNlbGVjdG9yPigpOwogfQpAQCAtNzUsMTIgKzc1LDEyIEBA
IHZvaWQgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zCiAgICAgfQogCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OmluQXR0cikgewotICAgICAgICBtX2luMS5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgICAgIG1f
aW4xLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluMkF0dHIpIHsKLSAgICAgICAgbV9pbjIuc2V0
VmFsdWUodmFsdWUpOworICAgICAgICBtX2luMi0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCmluZGV4IGY0OWVlMGMzM2YyNzQ1NGE5MjI2NGZlMTli
ZmM0NTNjYmIwM2VmMmYuLjc1NGZhYjExNjQ5NDgzMzMwYTdjMzUxZGFlY2ZiNzAyMjBmZDc1ZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
LmgKQEAgLTcwLDE0ICs3MCwxNCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgQ2hhbm5lbFNlbGVj
dG9yVHlwZSBzdHJpbmdUb0NoYW5uZWwoY29uc3QgU3RyaW5nJik7CiAKLSAgICBTdHJpbmcgaW4x
KCkgY29uc3QgeyByZXR1cm4gbV9pbjEuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHko
KSk7IH0KLSAgICBTdHJpbmcgaW4yKCkgY29uc3QgeyByZXR1cm4gbV9pbjIuY3VycmVudFZhbHVl
KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBTdHJpbmcgaW4xKCkgY29uc3QgeyByZXR1
cm4gbV9pbjEtPmN1cnJlbnRWYWx1ZSgpOyB9CisgICAgU3RyaW5nIGluMigpIGNvbnN0IHsgcmV0
dXJuIG1faW4yLT5jdXJyZW50VmFsdWUoKTsgfQogICAgIENoYW5uZWxTZWxlY3RvclR5cGUgeENo
YW5uZWxTZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1feENoYW5uZWxTZWxlY3Rvci5jdXJyZW50
VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIENoYW5uZWxTZWxlY3RvclR5cGUg
eUNoYW5uZWxTZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1feUNoYW5uZWxTZWxlY3Rvci5jdXJy
ZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIGZsb2F0IHNjYWxlKCkgY29u
c3QgeyByZXR1cm4gbV9zY2FsZS0+Y3VycmVudFZhbHVlKCk7IH0KIAotICAgIFJlZlB0cjxTVkdB
bmltYXRlZFN0cmluZz4gaW4xQW5pbWF0ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3Bl
cnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KLSAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRTdHJp
bmc+IGluMkFuaW1hdGVkKCkgeyByZXR1cm4gbV9pbjIuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1
dGVPd25lclByb3h5KCkpOyB9CisgICAgU1ZHQW5pbWF0ZWRTdHJpbmcmIGluMUFuaW1hdGVkKCkg
eyByZXR1cm4gbV9pbjE7IH0KKyAgICBTVkdBbmltYXRlZFN0cmluZyYgaW4yQW5pbWF0ZWQoKSB7
IHJldHVybiBtX2luMjsgfQogICAgIFJlZlB0cjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiB4Q2hh
bm5lbFNlbGVjdG9yQW5pbWF0ZWQoKSB7IHJldHVybiBtX3hDaGFubmVsU2VsZWN0b3IuYW5pbWF0
ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgUmVmUHRyPFNWR0FuaW1h
dGVkRW51bWVyYXRpb24+IHlDaGFubmVsU2VsZWN0b3JBbmltYXRlZCgpIHsgcmV0dXJuIG1feUNo
YW5uZWxTZWxlY3Rvci5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0K
ICAgICBTVkdBbmltYXRlZE51bWJlciYgc2NhbGVBbmltYXRlZCgpIHsgcmV0dXJuIG1fc2NhbGU7
IH0KQEAgLTEwNiw4ICsxMDYsOCBAQCBwcml2YXRlOgogCiAgICAgQXR0cmlidXRlT3duZXJQcm94
eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OwogICAgIFByb3BlcnR5UmVnaXN0cnkg
bV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJp
YnV0ZSBtX2luMTsKLSAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBtX2luMjsKKyAgICBS
ZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+IG1faW4xIHsgU1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0ZSh0
aGlzKSB9OworICAgIFJlZjxTVkdBbmltYXRlZFN0cmluZz4gbV9pbjIgeyBTVkdBbmltYXRlZFN0
cmluZzo6Y3JlYXRlKHRoaXMpIH07CiAgICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkF0dHJpYnV0
ZTxDaGFubmVsU2VsZWN0b3JUeXBlPiBtX3hDaGFubmVsU2VsZWN0b3IgeyBDSEFOTkVMX0EgfTsK
ICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uQXR0cmlidXRlPENoYW5uZWxTZWxlY3RvclR5cGU+
IG1feUNoYW5uZWxTZWxlY3RvciB7IENIQU5ORUxfQSB9OwogICAgIFJlZjxTVkdBbmltYXRlZE51
bWJlcj4gbV9zY2FsZSB7IFNWR0FuaW1hdGVkTnVtYmVyOjpjcmVhdGUodGhpcykgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAppbmRleCA0Yjg1MDJi
M2RiMWNmMjQ1MzcyNGJkZWRjNThmY2Y0ZmY0ZmQ0OTYxLi5mNjFkYzhhOTM5NTA4YmMyYzJmZmQ3
NzlhNzQ2MzIwNGE2N2IxM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVE
cm9wU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAgaW5saW5lIFNWR0ZFRHJvcFNoYWRv
d0VsZW1lbnQ6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmEKICAgICA6IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyh0YWdOYW1lLCBk
b2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVEcm9wU2hhZG93
VGFnKSk7Ci0gICAgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7CiAgICAgCiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Cisg
ICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OmluQXR0
ciwgJlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6Om1faW4xPigpOwogICAgICAgICBQcm9wZXJ0eVJl
Z2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjpkeEF0dHIsICZTVkdGRURyb3BTaGFk
b3dFbGVtZW50OjptX2R4PigpOwogICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclBy
b3BlcnR5PFNWR05hbWVzOjpkeUF0dHIsICZTVkdGRURyb3BTaGFkb3dFbGVtZW50OjptX2R5Pigp
OwogICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjpz
dGREZXZpYXRpb25BdHRyLCAmU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6bV9zdGREZXZpYXRpb25Y
LCAmU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6bV9zdGREZXZpYXRpb25ZPigpOwpAQCAtNTgsMTQg
KzU4LDYgQEAgdm9pZCBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxv
YXQgeCwgZmxvYXQgeSkKICAgICBpbnZhbGlkYXRlKCk7CiB9CiAKLXZvaWQgU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKCkKLXsKLSAgICBhdXRvJiByZWdpc3RyeSA9
IGF0dHJpYnV0ZVJlZ2lzdHJ5KCk7Ci0gICAgaWYgKCFyZWdpc3RyeS5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybjsKLSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6aW5B
dHRyLCAmU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6bV9pbjE+KCk7Ci19Ci0KIHZvaWQgU1ZHRkVE
cm9wU2hhZG93RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1l
czo6c3RkRGV2aWF0aW9uQXR0cikgewpAQCAtNzgsNyArNzAsNyBAQCB2b2lkIFNWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0bwogICAgIH0KIAogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKLSAg
ICAgICAgbV9pbjEuc2V0VmFsdWUodmFsdWUpOworICAgICAgICBtX2luMS0+c2V0QmFzZVZhbElu
dGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtOTcsNyArODksNyBA
QCB2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0bwogCiB2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0g
ICAgaWYgKGlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CisgICAgaWYgKFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52
YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBpbnZhbGlkYXRlKCk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFk
b3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5o
CmluZGV4IGEwZTY1YzJlMzY5ZTI3ZDMzNzA5ODM2NzllOTMxNmI2ZGU4MWQxYzIuLjViZTg3YjY1
ZGM3NGUyY2RjZTgyZGE0ZDExMzc3MTU5NzdjMTJjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaApAQCAtMzIsMTMgKzMyLDEzIEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIHNldFN0ZERldmlhdGlvbihmbG9hdCBzdGREZXZpYXRpb25YLCBmbG9hdCBz
dGREZXZpYXRpb25ZKTsKIAotICAgIFN0cmluZyBpbjEoKSBjb25zdCB7IHJldHVybiBtX2luMS5j
dXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQorICAgIFN0cmluZyBpbjEoKSBj
b25zdCB7IHJldHVybiBtX2luMS0+Y3VycmVudFZhbHVlKCk7IH0KICAgICBmbG9hdCBkeCgpIGNv
bnN0IHsgcmV0dXJuIG1fZHgtPmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAgZmxvYXQgZHkoKSBjb25z
dCB7IHJldHVybiBtX2R5LT5jdXJyZW50VmFsdWUoKTsgfQogICAgIGZsb2F0IHN0ZERldmlhdGlv
blgoKSBjb25zdCB7IHJldHVybiBtX3N0ZERldmlhdGlvblgtPmN1cnJlbnRWYWx1ZSgpOyB9CiAg
ICAgZmxvYXQgc3RkRGV2aWF0aW9uWSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RkRGV2aWF0aW9uWS0+
Y3VycmVudFZhbHVlKCk7IH0KIAotICAgIFJlZlB0cjxTVkdBbmltYXRlZFN0cmluZz4gaW4xQW5p
bWF0ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJv
eHkoKSk7IH0KKyAgICBTVkdBbmltYXRlZFN0cmluZyYgaW4xQW5pbWF0ZWQoKSB7IHJldHVybiBt
X2luMTsgfQogICAgIFNWR0FuaW1hdGVkTnVtYmVyJiBkeEFuaW1hdGVkKCkgeyByZXR1cm4gbV9k
eDsgfQogICAgIFNWR0FuaW1hdGVkTnVtYmVyJiBkeUFuaW1hdGVkKCkgeyByZXR1cm4gbV9keTsg
fQogICAgIFNWR0FuaW1hdGVkTnVtYmVyJiBzdGREZXZpYXRpb25YQW5pbWF0ZWQoKSB7IHJldHVy
biBtX3N0ZERldmlhdGlvblg7IH0KQEAgLTQ4LDE4ICs0OCwxMSBAQCBwcml2YXRlOgogICAgIFNW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB1c2luZyBBdHRyaWJ1dGVPd25lclByb3h5ID0gU1ZHQXR0cmlidXRlT3duZXJQcm94eUlt
cGw8U1ZHRkVEcm9wU2hhZG93RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzPjsKLSAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRlUmVnaXN0
cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6YXR0
cmlidXRlUmVnaXN0cnkoKTsgfQotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygp
OwogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVyUHJveHko
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KLSAgICAKKwog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
RkVEcm9wU2hhZG93RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
PjsKICAgICBjb25zdCBTVkdQcm9wZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CiAKLSAgICBzdGF0aWMgYm9v
bCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCi0g
ICAgewotICAgICAgICByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0
ZShhdHRyaWJ1dGVOYW1lKSB8fCBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0
dHJpYnV0ZU5hbWUpOwotICAgIH0KLQogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKQEAgLTY3
LDcgKzYwLDcgQEAgcHJpdmF0ZToKIAogICAgIEF0dHJpYnV0ZU93bmVyUHJveHkgbV9hdHRyaWJ1
dGVPd25lclByb3h5IHsgKnRoaXMgfTsKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlS
ZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgU1ZHQW5pbWF0ZWRTdHJpbmdBdHRyaWJ1dGUgbV9pbjE7
CisgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX2luMSB7IFNWR0FuaW1hdGVkU3RyaW5nOjpj
cmVhdGUodGhpcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IG1fZHggeyBTVkdBbmlt
YXRlZE51bWJlcjo6Y3JlYXRlKHRoaXMsIDIpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTnVtYmVy
PiBtX2R5IHsgU1ZHQW5pbWF0ZWROdW1iZXI6OmNyZWF0ZSh0aGlzLCAyKSB9OwogICAgIFJlZjxT
VkdBbmltYXRlZE51bWJlcj4gbV9zdGREZXZpYXRpb25YIHsgU1ZHQW5pbWF0ZWROdW1iZXI6OmNy
ZWF0ZSh0aGlzLCAyKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmNwcAppbmRleCAwYTkyN2ZlYTdkZmFjMmJhMzBiMDVjOThjZDA0MGI0Y2M4MjZh
YjZlLi42ZWViYWFjN2IxZjQyMWM2N2YyNWE2MzE3MjA0MzhiNjM5MTExMjMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcApAQCAtNDAsNiAr
NDAsNyBAQCBpbmxpbmUgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpTVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdAogCiAgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAg
IFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OmluQXR0ciwgJlNW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6bV9pbjE+KCk7CiAgICAgICAgIFByb3BlcnR5UmVnaXN0
cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnN0ZERldmlhdGlvbkF0dHIsICZTVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQ6Om1fc3RkRGV2aWF0aW9uWCwgJlNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudDo6bV9zdGREZXZpYXRpb25ZPigpOwogICAgIH0pOwogfQpAQCAtNjEsNyArNjIsNiBAQCB2
b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKCkKICAgICBh
dXRvJiByZWdpc3RyeSA9IGF0dHJpYnV0ZVJlZ2lzdHJ5KCk7CiAgICAgaWYgKCFyZWdpc3RyeS5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKLSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0
ZTxTVkdOYW1lczo6aW5BdHRyLCAmU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjptX2luMT4oKTsK
ICAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6ZWRnZU1vZGVBdHRyLCBF
ZGdlTW9kZVR5cGUsICZTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6Om1fZWRnZU1vZGU+KCk7CiB9
CiAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEEKICAgICB9CiAKICAg
ICBpZiAobmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7Ci0gICAgICAgIG1faW4xLnNldFZhbHVl
KHZhbHVlKTsKKyAgICAgICAgbV9pbjEtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQuaAppbmRleCBiMDQ1MDI4MTQ4MGI0YTI2Yzc2N2M1ZjQwYmEyZDU5YjBlMTE1
MmE3Li41ZDNlNmRmOGIxM2Q3NWNjNDYyMjA4NjI1OGJmNmM1MWE2MDhkZGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCkBAIC0zNSwxMiArMzUs
MTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTdGREZXZpYXRpb24oZmxvYXQgc3RkRGV2aWF0
aW9uWCwgZmxvYXQgc3RkRGV2aWF0aW9uWSk7CiAKLSAgICBTdHJpbmcgaW4xKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbjEuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KKyAgICBT
dHJpbmcgaW4xKCkgY29uc3QgeyByZXR1cm4gbV9pbjEtPmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAg
ZmxvYXQgc3RkRGV2aWF0aW9uWCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RkRGV2aWF0aW9uWC0+Y3Vy
cmVudFZhbHVlKCk7IH0KICAgICBmbG9hdCBzdGREZXZpYXRpb25ZKCkgY29uc3QgeyByZXR1cm4g
bV9zdGREZXZpYXRpb25ZLT5jdXJyZW50VmFsdWUoKTsgfQogICAgIEVkZ2VNb2RlVHlwZSBlZGdl
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWRnZU1vZGUuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93
bmVyUHJveHkoKSk7IH0KIAotICAgIFJlZlB0cjxTVkdBbmltYXRlZFN0cmluZz4gaW4xQW5pbWF0
ZWQoKSB7IHJldHVybiBtX2luMS5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93bmVyUHJveHko
KSk7IH0KKyAgICBTVkdBbmltYXRlZFN0cmluZyYgaW4xQW5pbWF0ZWQoKSB7IHJldHVybiBtX2lu
MTsgfQogICAgIFNWR0FuaW1hdGVkTnVtYmVyJiBzdGREZXZpYXRpb25YQW5pbWF0ZWQoKSB7IHJl
dHVybiBtX3N0ZERldmlhdGlvblg7IH0KICAgICBTVkdBbmltYXRlZE51bWJlciYgc3RkRGV2aWF0
aW9uWUFuaW1hdGVkKCkgeyByZXR1cm4gbV9zdGREZXZpYXRpb25ZOyB9CiAgICAgUmVmUHRyPFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+IGVkZ2VNb2RlQW5pbWF0ZWQoKSB7IHJldHVybiBtX2VkZ2VN
b2RlLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQpAQCAtNjgsNyAr
NjgsNyBAQCBwcml2YXRlOgogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93
bmVyUHJveHkgeyAqdGhpcyB9OwogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lz
dHJ5IHsgKnRoaXMgfTsKLSAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBtX2luMTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+IG1faW4xIHsgU1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0
ZSh0aGlzKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZE51bWJlcj4gbV9zdGREZXZpYXRpb25YIHsg
U1ZHQW5pbWF0ZWROdW1iZXI6OmNyZWF0ZSh0aGlzKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZE51
bWJlcj4gbV9zdGREZXZpYXRpb25ZIHsgU1ZHQW5pbWF0ZWROdW1iZXI6OmNyZWF0ZSh0aGlzKSB9
OwogICAgIFNWR0FuaW1hdGVkRW51bWVyYXRpb25BdHRyaWJ1dGU8RWRnZU1vZGVUeXBlPiBtX2Vk
Z2VNb2RlIHsgRURHRU1PREVfTk9ORSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50LmNwcAppbmRleCA2OWNkZWYwYTUyYjA2ZjgzNmYyOGZiODU1ZjgxYzAwYjM1
NDIzNTZhLi5lODJiYmZjNTVmNjc1ZDcwOWI0NjgzZjI2NTRlODQxY2JjYTRhZmZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcApAQCAtMSw3ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDcgKzM2LDEx
IEBAIGlubGluZSBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OlNWR0ZFTWVyZ2VOb2RlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVzOjpmZU1lcmdlTm9kZVRh
ZykpOwotICAgIHJlZ2lzdGVyQXR0cmlidXRlcygpOworICAgIAorICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAg
ICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3RlclByb3BlcnR5PFNWR05hbWVzOjppbkF0dHIs
ICZTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6Om1faW4xPigpOworICAgIH0pOwogfQogCiBSZWY8U1ZH
RkVNZXJnZU5vZGVFbGVtZW50PiBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC00NCwxOCArNDgs
MTAgQEAgUmVmPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4gU1ZHRkVNZXJnZU5vZGVFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdGRU1lcmdlTm9kZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdG
RU1lcmdlTm9kZUVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcygpCi17Ci0gICAgYXV0byYgcmVn
aXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgpOwotICAgIGlmICghcmVnaXN0cnkuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFt
ZXM6OmluQXR0ciwgJlNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6bV9pbjE+KCk7Ci19Ci0KIHZvaWQg
U1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewogICAgIGlmIChuYW1lID09IFNW
R05hbWVzOjppbkF0dHIpIHsKLSAgICAgICAgbV9pbjEuc2V0VmFsdWUodmFsdWUpOworICAgICAg
ICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCmluZGV4IDcy
NmZiNjIzNjEyNjgxOWE0MWU0NDEzODZlZWJiNTdlYzkwZGNjZWQuLjliYzYxNDRiNjM5ODc1ZjJj
OGE1M2YwNmM3MTE1MjU0ODM3N2VkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlTm9kZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50LmgKQEAgLTIxLDcgKzIxLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzEsMjUgKzMwLDE4IEBAIGNsYXNzIFNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCi0gICAgU3RyaW5nIGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLmN1cnJl
bnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9Ci0gICAgUmVmUHRyPFNWR0FuaW1hdGVk
U3RyaW5nPiBpbjFBbmltYXRlZCgpIHsgcmV0dXJuIG1faW4xLmFuaW1hdGVkUHJvcGVydHkoYXR0
cmlidXRlT3duZXJQcm94eSgpKTsgfQorICAgIFN0cmluZyBpbjEoKSBjb25zdCB7IHJldHVybiBt
X2luMS0+Y3VycmVudFZhbHVlKCk7IH0KKyAgICBTVkdBbmltYXRlZFN0cmluZyYgaW4xQW5pbWF0
ZWQoKSB7IHJldHVybiBtX2luMTsgfQogCiBwcml2YXRlOgogICAgIFNWR0ZFTWVyZ2VOb2RlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIEF0dHJp
YnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRU1lcmdlTm9k
ZUVsZW1lbnQsIFNWR0VsZW1lbnQ+OwotICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclByb3h5OjpB
dHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRyaWJ1dGVP
d25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJBdHRyaWJ1dGVzKCk7CiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYgYXR0cmli
dXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3duZXJQcm94
eTsgfQogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdp
c3RyeTxTVkdGRU1lcmdlTm9kZUVsZW1lbnQsIFNWR0VsZW1lbnQ+OwogICAgIGNvbnN0IFNWR1By
b3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3Byb3BlcnR5UmVnaXN0cnk7IH0KIAotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8
IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7Ci0gICAg
fQotCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIApAQCAtNTcsNyArNDksNyBAQCBwcml2YXRlOgogCiAg
ICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9Owog
ICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBT
VkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBtX2luMTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRTdHJp
bmc+IG1faW4xIHsgU1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0ZSh0aGlzKSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwCmluZGV4IDYyZmYyNGFjYzRmMTY3OTgwZmU5ZjRlYTQ1Yzc4N2ZlY2EyMTJk
YTYuLjkzNzZkZDg3MGM5ZGVjZWQ1ZDVhNWNkMzliMjljZTQ3OGU4NmM5NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTM5LDYgKzM5LDcg
QEAgaW5saW5lIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmEKICAgICAKICAgICBzdGF0aWMgc3RkOjpvbmNlX2Zs
YWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAg
UHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6aW5BdHRyLCAmU1ZH
RkVNb3JwaG9sb2d5RWxlbWVudDo6bV9pbjE+KCk7CiAgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6
OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFtZXM6OnJhZGl1c0F0dHIsICZTVkdGRU1vcnBob2xvZ3lF
bGVtZW50OjptX3JhZGl1c1gsICZTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjptX3JhZGl1c1k+KCk7
CiAgICAgfSk7CiB9CkBAIC02MCw3ICs2MSw2IEBAIHZvaWQgU1ZHRkVNb3JwaG9sb2d5RWxlbWVu
dDo6cmVnaXN0ZXJBdHRyaWJ1dGVzKCkKICAgICBhdXRvJiByZWdpc3RyeSA9IGF0dHJpYnV0ZVJl
Z2lzdHJ5KCk7CiAgICAgaWYgKCFyZWdpc3RyeS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6aW5BdHRyLCAmU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudDo6bV9pbjE+KCk7CiAgICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1
dGU8U1ZHTmFtZXM6Om9wZXJhdG9yQXR0ciwgTW9ycGhvbG9neU9wZXJhdG9yVHlwZSwgJlNWR0ZF
TW9ycGhvbG9neUVsZW1lbnQ6Om1fc3ZnT3BlcmF0b3I+KCk7CiB9CiAKQEAgLTc0LDcgKzc0LDcg
QEAgdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG8KICAgICB9CiAKICAgICBpZiAobmFtZSA9PSBTVkdO
YW1lczo6aW5BdHRyKSB7Ci0gICAgICAgIG1faW4xLnNldFZhbHVlKHZhbHVlKTsKKyAgICAgICAg
bV9pbjEtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCmluZGV4IGVl
NzU1ZmQyNDU3ZWVlNjQ5MmNjOTllNzNlMThmZTFkMWRjZGMxYTguLjYxZjQ0YzU0MzM2ZGNiZjQw
MTAyNzgwMTBhYTNiMDBmMDgyNjY2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9y
cGhvbG9neUVsZW1lbnQuaApAQCAtNjIsMTIgKzYyLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2V0UmFkaXVzKGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJhZGl1c1kpOwogCi0gICAgU3RyaW5nIGlu
MSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5
KCkpOyB9CisgICAgU3RyaW5nIGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLT5jdXJyZW50VmFs
dWUoKTsgfQogICAgIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUgc3ZnT3BlcmF0b3IoKSBjb25zdCB7
IHJldHVybiBtX3N2Z09wZXJhdG9yLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkp
OyB9CiAgICAgZmxvYXQgcmFkaXVzWCgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWC0+Y3VycmVu
dFZhbHVlKCk7IH0KICAgICBmbG9hdCByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNZ
LT5jdXJyZW50VmFsdWUoKTsgfQogCi0gICAgUmVmUHRyPFNWR0FuaW1hdGVkU3RyaW5nPiBpbjFB
bmltYXRlZCgpIHsgcmV0dXJuIG1faW4xLmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQ
cm94eSgpKTsgfQorICAgIFNWR0FuaW1hdGVkU3RyaW5nJiBpbjFBbmltYXRlZCgpIHsgcmV0dXJu
IG1faW4xOyB9CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IHN2Z09wZXJhdG9y
QW5pbWF0ZWQoKSB7IHJldHVybiBtX3N2Z09wZXJhdG9yLmFuaW1hdGVkUHJvcGVydHkoYXR0cmli
dXRlT3duZXJQcm94eSgpKTsgfQogICAgIFNWR0FuaW1hdGVkTnVtYmVyJiByYWRpdXNYQW5pbWF0
ZWQoKSB7IHJldHVybiBtX3JhZGl1c1g7IH0KICAgICBTVkdBbmltYXRlZE51bWJlciYgcmFkaXVz
WUFuaW1hdGVkKCkgeyByZXR1cm4gbV9yYWRpdXNZOyB9CkBAIC05Niw3ICs5Niw3IEBAIHByaXZh
dGU6CiAKICAgICBBdHRyaWJ1dGVPd25lclByb3h5IG1fYXR0cmlidXRlT3duZXJQcm94eSB7ICp0
aGlzIH07CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9
OwotICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmlidXRlIG1faW4xOworICAgIFJlZjxTVkdBbmlt
YXRlZFN0cmluZz4gbV9pbjEgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiAg
ICAgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkF0dHJpYnV0ZTxNb3JwaG9sb2d5T3BlcmF0b3JUeXBl
PiBtX3N2Z09wZXJhdG9yIHsgRkVNT1JQSE9MT0dZX09QRVJBVE9SX0VST0RFIH07CiAgICAgUmVm
PFNWR0FuaW1hdGVkTnVtYmVyPiBtX3JhZGl1c1ggeyBTVkdBbmltYXRlZE51bWJlcjo6Y3JlYXRl
KHRoaXMpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTnVtYmVyPiBtX3JhZGl1c1kgeyBTVkdBbmlt
YXRlZE51bWJlcjo6Y3JlYXRlKHRoaXMpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNl
dEVsZW1lbnQuY3BwCmluZGV4IDI1YjgxYjBkMmIyNDVjZDc5OTZiN2Y4MTdlYmQwZDdjZmJmMDdh
ZTcuLmRiMTBkZTg2MzE0ZjM4MWU3NDgxNjEwNTRiYjAzMzg0Y2IyMTQyZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAgaW5s
aW5lIFNWR0ZFT2Zmc2V0RWxlbWVudDo6U1ZHRkVPZmZzZXRFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3UKICAgICA6IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdO
YW1lczo6ZmVPZmZzZXRUYWcpKTsKLSAgICByZWdpc3RlckF0dHJpYnV0ZXMoKTsKICAgICAKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25j
ZUZsYWcsIFtdIHsKKyAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxT
VkdOYW1lczo6aW5BdHRyLCAmU1ZHRkVPZmZzZXRFbGVtZW50OjptX2luMT4oKTsKICAgICAgICAg
UHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6ZHhBdHRyLCAmU1ZH
RkVPZmZzZXRFbGVtZW50OjptX2R4PigpOwogICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdp
c3RlclByb3BlcnR5PFNWR05hbWVzOjpkeUF0dHIsICZTVkdGRU9mZnNldEVsZW1lbnQ6Om1fZHk+
KCk7CiAgICAgfSk7CkBAIC01MCwxNCArNTAsNiBAQCBSZWY8U1ZHRkVPZmZzZXRFbGVtZW50PiBT
VkdGRU9mZnNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFT2Zmc2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCi12b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6cmVnaXN0ZXJBdHRyaWJ1dGVz
KCkKLXsKLSAgICBhdXRvJiByZWdpc3RyeSA9IGF0dHJpYnV0ZVJlZ2lzdHJ5KCk7Ci0gICAgaWYg
KCFyZWdpc3RyeS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLSAgICByZWdpc3RyeS5yZWdp
c3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6aW5BdHRyLCAmU1ZHRkVPZmZzZXRFbGVtZW50OjptX2lu
MT4oKTsKLX0KLQogdm9pZCBTVkdGRU9mZnNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAg
aWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmR4QXR0cikgewpAQCAtNzEsNyArNjMsNyBAQCB2b2lkIFNW
R0ZFT2Zmc2V0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbWljUwogICAgIH0KIAogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0
dHIpIHsKLSAgICAgICAgbV9pbjEuc2V0VmFsdWUodmFsdWUpOworICAgICAgICBtX2luMS0+c2V0
QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODAs
NyArNzIsNyBAQCB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljUwogCiB2b2lkIFNWR0ZFT2Zmc2V0RWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
IHsKLSAgICBpZiAoaXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKKyAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGludmFsaWRhdGUoKTsK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zm
c2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCmlu
ZGV4IGU4ZmIxNDY3OGZmZTkwYzE4MjgwNWU3MzRiYWM5YjY3YjI2OTZhZTYuLjBkNDIxMDM5OWRm
YTYxZTk1ZjdkMjEwOWU3NjM2ZmNlYjM2NDkxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVP
ZmZzZXRFbGVtZW50LmgKQEAgLTMwLDExICszMCwxMSBAQCBjbGFzcyBTVkdGRU9mZnNldEVsZW1l
bnQgZmluYWwgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR0ZFT2Zmc2V0RWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgU3RyaW5nIGluMSgpIGNvbnN0IHsg
cmV0dXJuIG1faW4xLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CisgICAg
U3RyaW5nIGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLT5jdXJyZW50VmFsdWUoKTsgfQogICAg
IGZsb2F0IGR4KCkgY29uc3QgeyByZXR1cm4gbV9keC0+Y3VycmVudFZhbHVlKCk7IH0KICAgICBm
bG9hdCBkeSgpIGNvbnN0IHsgcmV0dXJuIG1fZHktPmN1cnJlbnRWYWx1ZSgpOyB9CiAKLSAgICBS
ZWZQdHI8U1ZHQW5pbWF0ZWRTdHJpbmc+IGluMUFuaW1hdGVkKCkgeyByZXR1cm4gbV9pbjEuYW5p
bWF0ZWRQcm9wZXJ0eShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CisgICAgU1ZHQW5pbWF0ZWRT
dHJpbmcmIGluMUFuaW1hdGVkKCkgeyByZXR1cm4gbV9pbjE7IH0KICAgICBTVkdBbmltYXRlZE51
bWJlciYgZHhBbmltYXRlZCgpIHsgcmV0dXJuIG1fZHg7IH0KICAgICBTVkdBbmltYXRlZE51bWJl
ciYgZHlBbmltYXRlZCgpIHsgcmV0dXJuIG1fZHk7IH0KIApAQCAtNDIsMTggKzQyLDExIEBAIHBy
aXZhdGU6CiAgICAgU1ZHRkVPZmZzZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgdXNpbmcgQXR0cmlidXRlT3duZXJQcm94eSA9IFNWR0F0dHJpYnV0ZU93
bmVyUHJveHlJbXBsPFNWR0ZFT2Zmc2V0RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzPjsKLSAgICBzdGF0aWMgQXR0cmlidXRlT3duZXJQcm94eTo6QXR0cmlidXRl
UmVnaXN0cnkmIGF0dHJpYnV0ZVJlZ2lzdHJ5KCkgeyByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94
eTo6YXR0cmlidXRlUmVnaXN0cnkoKTsgfQotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmli
dXRlcygpOwogICAgIGNvbnN0IFNWR0F0dHJpYnV0ZU93bmVyUHJveHkmIGF0dHJpYnV0ZU93bmVy
UHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2F0dHJpYnV0ZU93bmVyUHJveHk7IH0KIAog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
RkVPZmZzZXRFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+Owog
ICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHByb3BlcnR5UmVnaXN0cnkoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7IH0KIAotICAgIHN0YXRpYyBib29sIGlz
S25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclByb3h5Ojppc0tub3duQXR0cmlidXRlKGF0
dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSk7Ci0gICAgfQotCiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIApAQCAtNjEsNyAr
NTQsNyBAQCBwcml2YXRlOgogCiAgICAgQXR0cmlidXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93
bmVyUHJveHkgeyAqdGhpcyB9OwogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lz
dHJ5IHsgKnRoaXMgfTsKLSAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBtX2luMTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+IG1faW4xIHsgU1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0
ZSh0aGlzKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZE51bWJlcj4gbV9keCB7IFNWR0FuaW1hdGVk
TnVtYmVyOjpjcmVhdGUodGhpcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IG1fZHkg
eyBTVkdBbmltYXRlZE51bWJlcjo6Y3JlYXRlKHRoaXMpIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IDlmMWM1
MTYwNmNhMzE3ZGNjYjJjNDMzNmMzMTUwMTgxNjg4MWM1ZGIuLjc2NzM4MWUzODFhNzY4OGU2OGFi
YWIyZDA1N2QzODkzYWZhMDhjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTM5LDEwICszOSwxMCBAQCBpbmxpbmUg
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVu
dChjb25zdCBRdWFsaWZpZQogICAgIDogU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzKHRhZ05hbWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKFNWR05hbWVz
OjpmZVNwZWN1bGFyTGlnaHRpbmdUYWcpKTsKLSAgICByZWdpc3RlckF0dHJpYnV0ZXMoKTsKICAg
ICAKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9w
ZXJ0eTxTVkdOYW1lczo6aW5BdHRyLCAmU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6bV9p
bjE+KCk7CiAgICAgICAgIFByb3BlcnR5UmVnaXN0cnk6OnJlZ2lzdGVyUHJvcGVydHk8U1ZHTmFt
ZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyLCAmU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6
bV9zcGVjdWxhckNvbnN0YW50PigpOwogICAgICAgICBQcm9wZXJ0eVJlZ2lzdHJ5OjpyZWdpc3Rl
clByb3BlcnR5PFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0ciwgJlNWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQ6Om1fc3BlY3VsYXJFeHBvbmVudD4oKTsKICAgICAgICAgUHJvcGVydHlS
ZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6c3VyZmFjZVNjYWxlQXR0ciwgJlNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6Om1fc3VyZmFjZVNjYWxlPigpOwpAQCAtNTUsMTgg
KzU1LDEwIEBAIFJlZjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQog
Ci12b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcygp
Ci17Ci0gICAgYXV0byYgcmVnaXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgpOwotICAgIGlmICgh
cmVnaXN0cnkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0
ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6OmluQXR0ciwgJlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1l
bnQ6Om1faW4xPigpOwotfQotCiB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewotICAgICAg
ICBtX2luMS5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgICAgIG1faW4xLT5zZXRCYXNlVmFsSW50ZXJu
YWwodmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAppbmRleCBiZjdiZDg3NTAyZWIy
OGFlNWY5OTRjZmY1NzRiZTZmNDE0OWEzNTVlLi5jNDdjMGI0NDJmNzg2M2QwMzFmOTE3MzEyODM4
YzIwMTk1MjMwNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50LmgKQEAgLTM0LDE0ICszNCwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAgICAgdm9pZCBsaWdodEVsZW1lbnRBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFNWR0ZFTGlnaHRFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAg
U3RyaW5nIGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLmN1cnJlbnRWYWx1ZShhdHRyaWJ1dGVP
d25lclByb3h5KCkpOyB9CisgICAgU3RyaW5nIGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4xLT5j
dXJyZW50VmFsdWUoKTsgfQogICAgIGZsb2F0IHNwZWN1bGFyQ29uc3RhbnQoKSBjb25zdCB7IHJl
dHVybiBtX3NwZWN1bGFyQ29uc3RhbnQtPmN1cnJlbnRWYWx1ZSgpOyB9CiAgICAgZmxvYXQgc3Bl
Y3VsYXJFeHBvbmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY3VsYXJFeHBvbmVudC0+Y3VycmVu
dFZhbHVlKCk7IH0KICAgICBmbG9hdCBzdXJmYWNlU2NhbGUoKSBjb25zdCB7IHJldHVybiBtX3N1
cmZhY2VTY2FsZS0+Y3VycmVudFZhbHVlKCk7IH0KICAgICBmbG9hdCBrZXJuZWxVbml0TGVuZ3Ro
WCgpIGNvbnN0IHsgcmV0dXJuIG1fa2VybmVsVW5pdExlbmd0aFgtPmN1cnJlbnRWYWx1ZSgpOyB9
CiAgICAgZmxvYXQga2VybmVsVW5pdExlbmd0aFkoKSBjb25zdCB7IHJldHVybiBtX2tlcm5lbFVu
aXRMZW5ndGhZLT5jdXJyZW50VmFsdWUoKTsgfQogCi0gICAgUmVmUHRyPFNWR0FuaW1hdGVkU3Ry
aW5nPiBpbjFBbmltYXRlZCgpIHsgcmV0dXJuIG1faW4xLmFuaW1hdGVkUHJvcGVydHkoYXR0cmli
dXRlT3duZXJQcm94eSgpKTsgfQorICAgIFNWR0FuaW1hdGVkU3RyaW5nJiBpbjFBbmltYXRlZCgp
IHsgcmV0dXJuIG1faW4xOyB9CiAgICAgU1ZHQW5pbWF0ZWROdW1iZXImIHNwZWN1bGFyQ29uc3Rh
bnRBbmltYXRlZCgpIHsgcmV0dXJuIG1fc3BlY3VsYXJDb25zdGFudDsgfQogICAgIFNWR0FuaW1h
dGVkTnVtYmVyJiBzcGVjdWxhckV4cG9uZW50QW5pbWF0ZWQoKSB7IHJldHVybiBtX3NwZWN1bGFy
RXhwb25lbnQ7IH0KICAgICBTVkdBbmltYXRlZE51bWJlciYgc3VyZmFjZVNjYWxlQW5pbWF0ZWQo
KSB7IHJldHVybiBtX3N1cmZhY2VTY2FsZTsgfQpAQCAtNTIsMTggKzUyLDExIEBAIHByaXZhdGU6
CiAgICAgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVyUHJveHkgPSBTVkdBdHRyaWJ1
dGVPd25lclByb3h5SW1wbDxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwotICAgIHN0YXRpYyBBdHRyaWJ1dGVPd25lclBy
b3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVybiBBdHRy
aWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGljIHZvaWQg
cmVnaXN0ZXJBdHRyaWJ1dGVzKCk7CiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQcm94eSYg
YXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmlidXRlT3du
ZXJQcm94eTsgfQogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3du
ZXJSZWdpc3RyeTxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogICAgIGNvbnN0IFNWR1Byb3BlcnR5UmVnaXN0cnkmIHBy
b3BlcnR5UmVnaXN0cnkoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3BlcnR5UmVnaXN0cnk7
IH0KIAotICAgIHN0YXRpYyBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBBdHRyaWJ1dGVPd25lclBy
b3h5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpIHx8IFByb3BlcnR5UmVnaXN0cnk6
OmlzS25vd25BdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7Ci0gICAgfQotCiAgICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBvdmVycmlkZTsKIApAQCAtNzIsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgQXR0cmlidXRl
T3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OwogICAgIFByb3BlcnR5
UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBTVkdBbmltYXRlZFN0
cmluZ0F0dHJpYnV0ZSBtX2luMTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+IG1faW4xIHsg
U1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0ZSh0aGlzKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZE51
bWJlcj4gbV9zcGVjdWxhckNvbnN0YW50IHsgU1ZHQW5pbWF0ZWROdW1iZXI6OmNyZWF0ZSh0aGlz
LCAxKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZE51bWJlcj4gbV9zcGVjdWxhckV4cG9uZW50IHsg
U1ZHQW5pbWF0ZWROdW1iZXI6OmNyZWF0ZSh0aGlzLCAxKSB9OwogICAgIFJlZjxTVkdBbmltYXRl
ZE51bWJlcj4gbV9zdXJmYWNlU2NhbGUgeyBTVkdBbmltYXRlZE51bWJlcjo6Y3JlYXRlKHRoaXMs
IDEpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKaW5kZXggOTQ1ZDFk
MDRmMDhkMGU1MTU2ZGQ0NmJmMzE5MmI3MDFkNTQzZWRjYS4uOTg4N2U0YTM4MDgxYWQ2MTdkNDBm
ZDdiNmQwZjc3MzllNzNkNTljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
VGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50
LmNwcApAQCAtMzcsNyArMzcsMTEgQEAgaW5saW5lIFNWR0ZFVGlsZUVsZW1lbnQ6OlNWR0ZFVGls
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQKICAgICA6IFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyh0YWdOYW1lLCBkb2N1bWVudCkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShTVkdOYW1lczo6ZmVUaWxlVGFnKSk7Ci0gICAgcmVnaXN0
ZXJBdHRyaWJ1dGVzKCk7CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Cisg
ICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgUHJvcGVydHlSZWdpc3Ry
eTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6aW5BdHRyLCAmU1ZHRkVUaWxlRWxlbWVudDo6
bV9pbjE+KCk7CisgICAgfSk7CiB9CiAKIFJlZjxTVkdGRVRpbGVFbGVtZW50PiBTVkdGRVRpbGVF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQpAQCAtNDUsMTggKzQ5LDEwIEBAIFJlZjxTVkdGRVRpbGVFbGVtZW50PiBTVkdGRVRp
bGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVUaWxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogfQogCi12b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnJlZ2lzdGVyQXR0cmlidXRlcygpCi17Ci0g
ICAgYXV0byYgcmVnaXN0cnkgPSBhdHRyaWJ1dGVSZWdpc3RyeSgpOwotICAgIGlmICghcmVnaXN0
cnkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRy
aWJ1dGU8U1ZHTmFtZXM6OmluQXR0ciwgJlNWR0ZFVGlsZUVsZW1lbnQ6Om1faW4xPigpOwotfQot
CiB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0g
U1ZHTmFtZXM6OmluQXR0cikgewotICAgICAgICBtX2luMS5zZXRWYWx1ZSh2YWx1ZSk7CisgICAg
ICAgIG1faW4xLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAppbmRleCA4ZDVkYzliZTg0
YmE0NzEzNmIxNWQ2ZWVjMTQ5ZjlhNWU2MThhNGQ4Li44YWVlMmJlYmJkZDIyNDMwZTJkYmRkOGI1
YzZiMzlkZTcyYjM2MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgKQEAg
LTMwLDE1ICszMCwxMyBAQCBjbGFzcyBTVkdGRVRpbGVFbGVtZW50IGZpbmFsIDogcHVibGljIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxTVkdGRVRpbGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKLSAgICBTdHJpbmcgaW4xKCkgY29uc3QgeyByZXR1cm4gbV9pbjEuY3VycmVudFZh
bHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KLSAgICBSZWZQdHI8U1ZHQW5pbWF0ZWRTdHJp
bmc+IGluMUFuaW1hdGVkKCkgeyByZXR1cm4gbV9pbjEuYW5pbWF0ZWRQcm9wZXJ0eShhdHRyaWJ1
dGVPd25lclByb3h5KCkpOyB9CisgICAgU3RyaW5nIGluMSgpIGNvbnN0IHsgcmV0dXJuIG1faW4x
LT5jdXJyZW50VmFsdWUoKTsgfQorICAgIFNWR0FuaW1hdGVkU3RyaW5nJiBpbjFBbmltYXRlZCgp
IHsgcmV0dXJuIG1faW4xOyB9CiAKIHByaXZhdGU6CiAgICAgU1ZHRkVUaWxlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIEF0dHJpYnV0ZU93bmVy
UHJveHkgPSBTVkdBdHRyaWJ1dGVPd25lclByb3h5SW1wbDxTVkdGRVRpbGVFbGVtZW50LCBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwotICAgIHN0YXRpYyBBdHRyaWJ1dGVP
d25lclByb3h5OjpBdHRyaWJ1dGVSZWdpc3RyeSYgYXR0cmlidXRlUmVnaXN0cnkoKSB7IHJldHVy
biBBdHRyaWJ1dGVPd25lclByb3h5OjphdHRyaWJ1dGVSZWdpc3RyeSgpOyB9Ci0gICAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7CiAgICAgY29uc3QgU1ZHQXR0cmlidXRlT3duZXJQ
cm94eSYgYXR0cmlidXRlT3duZXJQcm94eSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fYXR0cmli
dXRlT3duZXJQcm94eTsgfQogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdGRVRpbGVFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM+OwpAQCAtNTYsNyArNTQsNyBAQCBwcml2YXRlOgogCiAgICAgQXR0cmli
dXRlT3duZXJQcm94eSBtX2F0dHJpYnV0ZU93bmVyUHJveHkgeyAqdGhpcyB9OwogICAgIFByb3Bl
cnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBTVkdBbmltYXRl
ZFN0cmluZ0F0dHJpYnV0ZSBtX2luMTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+IG1faW4x
IHsgU1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0ZSh0aGlzKSB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAppbmRleCA4ODgwNmZiOTcyZjQxMDE3OTE1
ZTIzZDJiYjI1NjI2YWQ2ZjA2ZmJlLi43NWZlZGUzN2E3ZjU2ZjNhNzljOTllYzE4YTc5MmNlY2Nj
MzMwMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcApAQCAtMzcsNiArMzcsMTEgQEAgU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMoY29uc3QKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7
CiAgICAgcmVnaXN0ZXJBdHRyaWJ1dGVzKCk7CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgUHJv
cGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxTVkdOYW1lczo6cmVzdWx0QXR0ciwgJlNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6bV9yZXN1bHQ+KCk7CisgICAgfSk7
CiB9CiAKIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpyZWdpc3Rl
ckF0dHJpYnV0ZXMoKQpAQCAtNDgsNyArNTMsNiBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlczo6cmVnaXN0ZXJBdHRyaWJ1dGVzKCkKICAgICByZWdpc3RyeS5yZWdp
c3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6eUF0dHIsICZTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXM6Om1feT4oKTsKICAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdO
YW1lczo6d2lkdGhBdHRyLCAmU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpt
X3dpZHRoPigpOwogICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQXR0cmlidXRlPFNWR05hbWVzOjpoZWln
aHRBdHRyLCAmU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjptX2hlaWdodD4o
KTsKLSAgICByZWdpc3RyeS5yZWdpc3RlckF0dHJpYnV0ZTxTVkdOYW1lczo6cmVzdWx0QXR0ciwg
JlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6bV9yZXN1bHQ+KCk7CiB9CiAK
IHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpA
QCAtNjQsNyArNjgsNyBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
czo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbgogICAgIGVsc2UgaWYgKG5h
bWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpCiAgICAgICAgIG1faGVpZ2h0LnNldFZhbHVlKFNW
R0xlbmd0aFZhbHVlOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJy
b3IpKTsKICAgICBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjpyZXN1bHRBdHRyKQotICAgICAg
ICBtX3Jlc3VsdC5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgICAgIG1fcmVzdWx0LT5zZXRCYXNlVmFs
SW50ZXJuYWwodmFsdWUpOwogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNl
RXJyb3IsIG5hbWUsIHZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCmluZGV4IGZlZmViZWE3MDJj
NjhjN2Q1OTgzZjIwMzFiOTIyZjlkMDk3NmYwNWQuLmE4MWJiMGRkODMwODQ3NGY5NjY1MWNjN2I3
Y2UyMDg4NjNhY2ViOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKQEAgLTI0LDcgKzI0LDYgQEAKICNp
bmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jl
c291cmNlRmlsdGVyUHJpbWl0aXZlLmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGguaCIK
LSNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUzLDEz
ICs1MiwxMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHkoKSBjb25zdCB7
IHJldHVybiBtX3kuY3VycmVudFZhbHVlKGF0dHJpYnV0ZU93bmVyUHJveHkoKSk7IH0KICAgICBj
b25zdCBTVkdMZW5ndGhWYWx1ZSYgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoLmN1cnJl
bnRWYWx1ZShhdHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgY29uc3QgU1ZHTGVuZ3RoVmFs
dWUmIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0LmN1cnJlbnRWYWx1ZShhdHRyaWJ1
dGVPd25lclByb3h5KCkpOyB9Ci0gICAgY29uc3QgU3RyaW5nJiByZXN1bHQoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc3VsdC5jdXJyZW50VmFsdWUoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQorICAg
IFN0cmluZyByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdC0+Y3VycmVudFZhbHVlKCk7
IH0KIAogICAgIFJlZlB0cjxTVkdBbmltYXRlZExlbmd0aD4geEFuaW1hdGVkKCkgeyByZXR1cm4g
bV94LmFuaW1hdGVkUHJvcGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIFJlZlB0
cjxTVkdBbmltYXRlZExlbmd0aD4geUFuaW1hdGVkKCkgeyByZXR1cm4gbV95LmFuaW1hdGVkUHJv
cGVydHkoYXR0cmlidXRlT3duZXJQcm94eSgpKTsgfQogICAgIFJlZlB0cjxTVkdBbmltYXRlZExl
bmd0aD4gd2lkdGhBbmltYXRlZCgpIHsgcmV0dXJuIG1fd2lkdGguYW5pbWF0ZWRQcm9wZXJ0eShh
dHRyaWJ1dGVPd25lclByb3h5KCkpOyB9CiAgICAgUmVmUHRyPFNWR0FuaW1hdGVkTGVuZ3RoPiBo
ZWlnaHRBbmltYXRlZCgpIHsgcmV0dXJuIG1faGVpZ2h0LmFuaW1hdGVkUHJvcGVydHkoYXR0cmli
dXRlT3duZXJQcm94eSgpKTsgfQotICAgIFJlZlB0cjxTVkdBbmltYXRlZFN0cmluZz4gcmVzdWx0
QW5pbWF0ZWQoKSB7IHJldHVybiBtX3Jlc3VsdC5hbmltYXRlZFByb3BlcnR5KGF0dHJpYnV0ZU93
bmVyUHJveHkoKSk7IH0KKyAgICBTVkdBbmltYXRlZFN0cmluZyYgcmVzdWx0QW5pbWF0ZWQoKSB7
IHJldHVybiBtX3Jlc3VsdDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwpAQCAt
OTYsNyArOTUsNyBAQCBwcml2YXRlOgogICAgIFNWR0FuaW1hdGVkTGVuZ3RoQXR0cmlidXRlIG1f
eSB7IExlbmd0aE1vZGVIZWlnaHQsICIwJSIgfTsKICAgICBTVkdBbmltYXRlZExlbmd0aEF0dHJp
YnV0ZSBtX3dpZHRoIHsgTGVuZ3RoTW9kZVdpZHRoLCAiMTAwJSIgfTsKICAgICBTVkdBbmltYXRl
ZExlbmd0aEF0dHJpYnV0ZSBtX2hlaWdodCB7IExlbmd0aE1vZGVIZWlnaHQsICIxMDAlIiB9Owot
ICAgIFNWR0FuaW1hdGVkU3RyaW5nQXR0cmlidXRlIG1fcmVzdWx0OworICAgIFJlZjxTVkdBbmlt
YXRlZFN0cmluZz4gbV9yZXN1bHQgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07
CiB9OwogCiB2b2lkIGludmFsaWRhdGVGaWx0ZXJQcmltaXRpdmVQYXJlbnQoU1ZHRWxlbWVudCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlZ2FjeUF0dHJpYnV0ZUFuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlZ2FjeUF0dHJpYnV0
ZUFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGZkYTJiY2EwYWI3ZDQ4OWJmZjdlYzdmZGNj
ODU5NzEzN2M5OWYwNWYuLmNjYjQ5MmY4ODcxZTJlY2IxZTc0NzkzYjE2ZGY5MmE1YzE2OWFmZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZWdhY3lBdHRyaWJ1dGVBbmltYXRp
b25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVnYWN5QXR0cmli
dXRlQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTg4LDYgKzg4LDE0IEBAIGJvb2wgU1ZHTGVn
YWN5QXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlcjo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkg
Y29uc3QKICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5VHlwZSAhPSBBbmltYXRlZFVua25v
d247CiB9CiAKK2Jvb2wgU1ZHTGVnYWN5QXR0cmlidXRlQW5pbWF0aW9uQ29udHJvbGxlcjo6aXNE
aXNjcmV0ZUFuaW1hdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5
VHlwZSA9PSBBbmltYXRlZEJvb2xlYW4KKyAgICAgICAgfHwgbV9hbmltYXRlZFByb3BlcnR5VHlw
ZSA9PSBBbmltYXRlZEVudW1lcmF0aW9uCisgICAgICAgIHx8IG1fYW5pbWF0ZWRQcm9wZXJ0eVR5
cGUgPT0gQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvCisgICAgICAgIHx8IG1fYW5pbWF0ZWRQ
cm9wZXJ0eVR5cGUgPT0gQW5pbWF0ZWRTdHJpbmc7Cit9CisKIGJvb2wgU1ZHTGVnYWN5QXR0cmli
dXRlQW5pbWF0aW9uQ29udHJvbGxlcjo6Y2FsY3VsYXRlRnJvbUFuZFRvVmFsdWVzKGNvbnN0IFN0
cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykKIHsKICAgICBtX2FuaW1h
dGlvbkVsZW1lbnQuZGV0ZXJtaW5lUHJvcGVydHlWYWx1ZVR5cGVzKGZyb21TdHJpbmcsIHRvU3Ry
aW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZWdhY3lBdHRyaWJ1dGVB
bmltYXRpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVnYWN5QXR0cmli
dXRlQW5pbWF0aW9uQ29udHJvbGxlci5oCmluZGV4IGJkMzFiMjM0YmUwZWIxNjJkYTgzZjJmY2Rj
Mzc3YzdlNTg3OTZhYjEuLmNjMjRkOTVhODljMmU5ZTk5ZjAxYTIwODQyN2EzZGQ2NGIwZGNkMTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZWdhY3lBdHRyaWJ1dGVBbmltYXRp
b25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlZ2FjeUF0dHJpYnV0
ZUFuaW1hdGlvbkNvbnRyb2xsZXIuaApAQCAtNTYsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIAog
ICAgIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaGFzVmFsaWRB
dHRyaWJ1dGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc0Rpc2NyZXRlQW5pbWF0
b3IoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGNvbnN0IEFuaW1hdGVkUHJvcGVydHlUeXBlIG1f
YW5pbWF0ZWRQcm9wZXJ0eVR5cGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApp
bmRleCAyNTk3N2VmY2I3MzdkYTRjZGViNzdmYmNjMGI2OTYwOTRkZmE4NDJiLi42ZjdiOTU1YjI5
NjU5YjNlOTU4YzhlMGVhNzBmMWY4YjA0OTAzNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRo
RWxlbWVudC5oCkBAIC0yMCw3ICsyMCw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
U1ZHQW5pbWF0ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAi
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA2NzYwY2NkMzE5MmY3OTdlYWJl
ZTRmZWYwNTA1Zjc5OWE0ZGMwMGZjLi45NmRhZTI5MDUwNzJjNWE4OTdhYWRlODdkZGNiZTkwOTM2
M2U2MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTIxLDcgKzIx
LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgog
I2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVUklSZWZlcmVuY2UuY3BwCmluZGV4IDk5OGUyZjRjMjU2MzU4NDFmOTIwYjIzOTFkMGFhOTE0
ZDc5Y2QyNWIuLjE0MjRiYmY1NThlZjEyZDc4MmM3NmI0MzQ0ZDQ1NWIwZTM0ZjgyNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsMTcgKzMzLDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHVVJJUmVmZXJlbmNlOjpTVkdVUklSZWZlcmVuY2Uo
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpCiAgICAgOiBtX2F0dHJpYnV0ZU93bmVyUHJveHko
c3RkOjptYWtlX3VuaXF1ZTxBdHRyaWJ1dGVPd25lclByb3h5PigqdGhpcywgKmNvbnRleHRFbGVt
ZW50KSkKKyAgICAsIG1faHJlZihTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKGNvbnRleHRFbGVt
ZW50KSkKIHsKLSAgICByZWdpc3RlckF0dHJpYnV0ZXMoKTsKLX0KLQotdm9pZCBTVkdVUklSZWZl
cmVuY2U6OnJlZ2lzdGVyQXR0cmlidXRlcygpCi17Ci0gICAgYXV0byYgcmVnaXN0cnkgPSBhdHRy
aWJ1dGVSZWdpc3RyeSgpOwotICAgIGlmICghcmVnaXN0cnkuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRyaWJ1dGU8U1ZHTmFtZXM6OmhyZWZBdHRy
LCAmU1ZHVVJJUmVmZXJlbmNlOjptX2hyZWY+KCk7Ci0gICAgcmVnaXN0cnkucmVnaXN0ZXJBdHRy
aWJ1dGU8WExpbmtOYW1lczo6aHJlZkF0dHIsICZTVkdVUklSZWZlcmVuY2U6Om1faHJlZj4oKTsK
KyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uo
b25jZUZsYWcsIFtdIHsKKyAgICAgICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0
eTxTVkdOYW1lczo6aHJlZkF0dHIsICZTVkdVUklSZWZlcmVuY2U6Om1faHJlZj4oKTsKKyAgICAg
ICAgUHJvcGVydHlSZWdpc3RyeTo6cmVnaXN0ZXJQcm9wZXJ0eTxYTGlua05hbWVzOjpocmVmQXR0
ciwgJlNWR1VSSVJlZmVyZW5jZTo6bV9ocmVmPigpOworICAgIH0pOwogfQogCiBTVkdVUklSZWZl
cmVuY2U6OkF0dHJpYnV0ZVJlZ2lzdHJ5JiBTVkdVUklSZWZlcmVuY2U6OmF0dHJpYnV0ZVJlZ2lz
dHJ5KCkKQEAgLTUzLDIzICs0OSwxMyBAQCBTVkdVUklSZWZlcmVuY2U6OkF0dHJpYnV0ZVJlZ2lz
dHJ5JiBTVkdVUklSZWZlcmVuY2U6OmF0dHJpYnV0ZVJlZ2lzdHJ5KCkKIAogYm9vbCBTVkdVUklS
ZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSkKIHsKLSAgICByZXR1cm4gQXR0cmlidXRlT3duZXJQcm94eTo6aXNLbm93bkF0dHJpYnV0
ZShhdHRyaWJ1dGVOYW1lKTsKKyAgICByZXR1cm4gUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTsKIH0KIAogdm9pZCBTVkdVUklSZWZlcmVuY2U6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCiB7CiAgICAgaWYgKGlzS25vd25BdHRyaWJ1dGUobmFtZSkpCi0gICAgICAgIG1faHJl
Zi5zZXRWYWx1ZSh2YWx1ZSk7Ci19Ci0KLWNvbnN0IFN0cmluZyYgU1ZHVVJJUmVmZXJlbmNlOjpo
cmVmKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9ocmVmLmN1cnJlbnRWYWx1ZSgqbV9hdHRyaWJ1
dGVPd25lclByb3h5KTsKLX0KLQotUmVmUHRyPFNWR0FuaW1hdGVkU3RyaW5nPiBTVkdVUklSZWZl
cmVuY2U6OmhyZWZBbmltYXRlZCgpCi17Ci0gICAgcmV0dXJuIG1faHJlZi5hbmltYXRlZFByb3Bl
cnR5KCptX2F0dHJpYnV0ZU93bmVyUHJveHkpOworICAgICAgICBtX2hyZWYtPnNldEJhc2VWYWxJ
bnRlcm5hbCh2YWx1ZSk7CiB9CiAKIFN0cmluZyBTVkdVUklSZWZlcmVuY2U6OmZyYWdtZW50SWRl
bnRpZmllckZyb21JUklTdHJpbmcoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IERvY3VtZW50JiBk
b2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuaAppbmRleCAzMTcyMDM2ZmUz
NDMwMzExOWI1YmYzZDBiMDhkZDE3MDQxN2YwMDE1Li5mMjQ0YzdlMDYzYjNiMWMxNTUwZDczMDE4
NjQwYzYxYjNkNDkwZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVm
ZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5oCkBAIC0y
Myw3ICsyMyw2IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlF1YWxpZmll
ZE5hbWUuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR1By
b3BlcnR5T3duZXJSZWdpc3RyeS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OSw4ICs2
OCw4IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHVVJJUmVmZXJlbmNlPjsKIAotICAgIGNvbnN0IFN0cmluZyYgaHJl
ZigpIGNvbnN0OwotICAgIFJlZlB0cjxTVkdBbmltYXRlZFN0cmluZz4gaHJlZkFuaW1hdGVkKCk7
CisgICAgU3RyaW5nIGhyZWYoKSBjb25zdCB7IHJldHVybiBtX2hyZWYtPmN1cnJlbnRWYWx1ZSgp
OyB9CisgICAgU1ZHQW5pbWF0ZWRTdHJpbmcmIGhyZWZBbmltYXRlZCgpIHsgcmV0dXJuIG1faHJl
ZjsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU1ZHVVJJUmVmZXJlbmNlKFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50KTsKQEAgLTc4LDEwICs3Nyw4IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9v
bCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpOwog
CiBwcml2YXRlOgotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQXR0cmlidXRlcygpOwotCiAgICAg
c3RkOjp1bmlxdWVfcHRyPEF0dHJpYnV0ZU93bmVyUHJveHk+IG1fYXR0cmlidXRlT3duZXJQcm94
eTsKLSAgICBTVkdBbmltYXRlZFN0cmluZ0F0dHJpYnV0ZSBtX2hyZWY7CisgICAgUmVmPFNWR0Fu
aW1hdGVkU3RyaW5nPiBtX2hyZWY7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
QWNjZXNzb3JJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5QWNjZXNzb3JJbXBsLmgKaW5kZXggZDMwNDliYjM3NzUwOTNjZDJlMTc2ZTU2ZmUy
N2EyYjgxZjNkMWRmMS4uM2QzMzFlZjEyYmRlZmYxNjE3YTI5ZTVjNmNmZThiMGM4MGJlYWQ2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eUFjY2Vzc29ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlBY2Nlc3NvckltcGwuaApAQCAtMTQyLDQgKzE0MiwyNiBAQCBwcml2
YXRlOgogICAgIH0KIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KK2NsYXNzIFNW
R0FuaW1hdGVkU3RyaW5nQWNjZXNzb3IgZmluYWwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRQcm9wZXJ0
eUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRTdHJpbmc+IHsKKyAgICB1c2luZyBCYXNl
ID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFjY2Vzc29yPE93bmVyVHlwZSwgU1ZHQW5pbWF0ZWRTdHJp
bmc+OworICAgIHVzaW5nIEJhc2U6OnByb3BlcnR5OworCitwdWJsaWM6CisgICAgdXNpbmcgQmFz
ZTo6QmFzZTsKKyAgICB0ZW1wbGF0ZTxSZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+IE93bmVyVHlwZTo6
KnByb3BlcnR5PgorICAgIGNvbnN0ZXhwciBzdGF0aWMgY29uc3QgU1ZHTWVtYmVyQWNjZXNzb3I8
T3duZXJUeXBlPiYgc2luZ2xldG9uKCkgeyByZXR1cm4gQmFzZTo6dGVtcGxhdGUgc2luZ2xldG9u
PFNWR0FuaW1hdGVkU3RyaW5nQWNjZXNzb3IsIHByb3BlcnR5PigpOyB9CisKK3ByaXZhdGU6Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiBjcmVhdGVBbmltYXRvcihP
d25lclR5cGUmIG93bmVyLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBBbmlt
YXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11
bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVy
biBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yOjpjcmVhdGUoYXR0cmlidXRlTmFtZSwgcHJvcGVy
dHkob3duZXIpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRp
dGl2ZSk7CisgICAgfQorCisgICAgdm9pZCBhcHBlbmRBbmltYXRlZEluc3RhbmNlKE93bmVyVHlw
ZSYgb3duZXIsIFNWR0F0dHJpYnV0ZUFuaW1hdG9yJiBhbmltYXRvcikgY29uc3QgZmluYWwKKyAg
ICB7CisgICAgICAgIHN0YXRpY19jYXN0PFNWR0FuaW1hdGVkU3RyaW5nQW5pbWF0b3ImPihhbmlt
YXRvcikuYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShwcm9wZXJ0eShvd25lcikpOworICAgIH0KK307
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJvcGVydHlBbmltYXRvckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvckltcGwuaAppbmRleCA5ODZhOWQ4YjUxOWI2MTI5
ODQ3MjNhNTViZWIyMTM3MjVjY2MwMTdkLi5jZjUzYWMxODBlZGFkZDY1OTJjM2ZjMGZkYmU5OTVi
NzY3NWZlNDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByb3BlcnR5QW5pbWF0b3JJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCkBAIC0xMzEsNCArMTMx
LDIyIEBAIHByaXZhdGU6CiAgICAgfQogfTsKIAorY2xhc3MgU1ZHQW5pbWF0ZWRTdHJpbmdBbmlt
YXRvciBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlZFByb3BlcnR5QW5pbWF0b3I8U1ZHQW5pbWF0
ZWRTdHJpbmcsIFNWR0FuaW1hdGlvblN0cmluZ0Z1bmN0aW9uPiB7CisgICAgdXNpbmcgQmFzZSA9
IFNWR0FuaW1hdGVkUHJvcGVydHlBbmltYXRvcjxTVkdBbmltYXRlZFN0cmluZywgU1ZHQW5pbWF0
aW9uU3RyaW5nRnVuY3Rpb24+OworICAgIHVzaW5nIEJhc2U6OkJhc2U7CisKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
UmVmPFNWR0FuaW1hdGVkU3RyaW5nPiYgYW5pbWF0ZWQsIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9u
TW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0
aXZlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8U1ZHQW5pbWF0ZWRT
dHJpbmdBbmltYXRvcj4oYXR0cmlidXRlTmFtZSwgYW5pbWF0ZWQsIGFuaW1hdGlvbk1vZGUsIGNh
bGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0aXZlKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgdm9pZCBwcm9ncmVzcyhTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBmbG9hdCBwZXJjZW50
YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCkgZmluYWwKKyAgICB7CisgICAgICAgIFN0cmluZyYg
YW5pbWF0ZWQgPSBtX2FuaW1hdGVkLT5hbmltVmFsKCk7CisgICAgICAgIG1fZnVuY3Rpb24ucHJv
Z3Jlc3ModGFyZ2V0RWxlbWVudCwgcGVyY2VudGFnZSwgcmVwZWF0Q291bnQsIGFuaW1hdGVkKTsK
KyAgICB9Cit9OworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUltcGwuaAppbmRleCBlYTUzMDY0NDBiMzhjODk2NDE0ZTUw
Y2FmYmZiZWZlYzYzYzdkNzJjLi4yZTQ1ZGZjNTcxODY3ODcyZWI5OTFhODY2YjY5ZGM0Y2JmMmE3
MWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUHJvcGVydHlJbXBsLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJTVkdBbmlt
YXRlZE51bWJlckxpc3QuaCIKICNpbmNsdWRlICJTVkdBbmltYXRlZFBvaW50TGlzdC5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaCIKLSNpbmNsdWRlICJTVkdBbmlt
YXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIgogI2lu
Y2x1ZGUgIlNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIlNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8uaCIKQEAgLTQzLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNp
bmcgU1ZHQW5pbWF0ZWRCb29sZWFuID0gU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eTxib29s
PjsKIHVzaW5nIFNWR0FuaW1hdGVkSW50ZWdlciA9IFNWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVy
dHk8aW50PjsKIHVzaW5nIFNWR0FuaW1hdGVkTnVtYmVyID0gU1ZHQW5pbWF0ZWRQcmltaXRpdmVQ
cm9wZXJ0eTxmbG9hdD47Cit1c2luZyBTVkdBbmltYXRlZFN0cmluZyA9IFNWR0FuaW1hdGVkUHJp
bWl0aXZlUHJvcGVydHk8U3RyaW5nPjsKIAogdXNpbmcgU1ZHQW5pbWF0ZWRSZWN0ID0gU1ZHQW5p
bWF0ZWRWYWx1ZVByb3BlcnR5PFNWR1JlY3Q+OwogdXNpbmcgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvID0gU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5PFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmli
dXRlUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0
ZVJlZ2lzdHJ5LmgKaW5kZXggYTBkMjVlYmRkYTU3OTBkNDBiOGMzZGMyZWMxMWQ4OThiMjBiM2Vl
NS4uNjI1NDZkZjljMGNhNGNhNDc5NzZiZGJjMDkyOWUxNDY1Yjg0OGE0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQXR0cmlidXRlUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVSZWdpc3RyeS5oCkBA
IC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgiCiAjaW5j
bHVkZSAiU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQb2lu
dExpc3QuaCIKLSNpbmNsdWRlICJTVkdBbmltYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkVHJhbnNmb3JtTGlzdC5oIgogI2luY2x1ZGUgIlNWR0F0dHJpYnV0ZUFjY2Vzc29yLmgi
CiAjaW5jbHVkZSAiU1ZHTGVnYWN5QW5pbWF0ZWRQcm9wZXJ0eS5oIgpAQCAtODUsMTIgKzg0LDYg
QEAgcHVibGljOgogICAgICAgICByZWdpc3RlckF0dHJpYnV0ZShTVkdBbmltYXRlZFBvaW50TGlz
dEF0dHJpYnV0ZUFjY2Vzc29yPE93bmVyVHlwZT46OnRlbXBsYXRlIHNpbmdsZXRvbjxhdHRyaWJ1
dGVOYW1lLCBhdHRyaWJ1dGU+KCkpOwogICAgIH0KIAotICAgIHRlbXBsYXRlPGNvbnN0IExhenlO
ZXZlckRlc3Ryb3llZDxjb25zdCBRdWFsaWZpZWROYW1lPiYgYXR0cmlidXRlTmFtZSwgU1ZHQW5p
bWF0ZWRTdHJpbmdBdHRyaWJ1dGUgT3duZXJUeXBlOjoqYXR0cmlidXRlPgotICAgIHZvaWQgcmVn
aXN0ZXJBdHRyaWJ1dGUoKQotICAgIHsKLSAgICAgICAgcmVnaXN0ZXJBdHRyaWJ1dGUoU1ZHQW5p
bWF0ZWRTdHJpbmdBdHRyaWJ1dGVBY2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0
b248YXR0cmlidXRlTmFtZSwgYXR0cmlidXRlPigpKTsKLSAgICB9Ci0KICAgICB0ZW1wbGF0ZTxj
b25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5h
bWUsIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdEF0dHJpYnV0ZSBPd25lclR5cGU6OiphdHRyaWJ1
dGU+CiAgICAgdm9pZCByZWdpc3RlckF0dHJpYnV0ZSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvcklt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5
QW5pbWF0b3JJbXBsLmgKaW5kZXggZWI4ZTMzYWUxNGYwOGNlMTk1OTNmOGZlYTQzM2FiNzAwNGRk
MWUzNy4uZTgyMDY4NWFkMGY0OTc0YjhhZTBhOGJlY2QwZDhhNjA0M2UwYzI1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmlt
YXRvckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcmltaXRp
dmVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCkBAIC0zMiw1ICszMiw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgU1ZHQ29sb3JBbmltYXRvciA9IFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5p
bWF0b3I8Q29sb3IsIFNWR0FuaW1hdGlvbkNvbG9yRnVuY3Rpb24+OwogdXNpbmcgU1ZHTnVtYmVy
QW5pbWF0b3IgPSBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yPGZsb2F0LCBTVkdBbmltYXRp
b25OdW1iZXJGdW5jdGlvbj47Cit1c2luZyBTVkdTdHJpbmdBbmltYXRvciA9IFNWR1ByaW1pdGl2
ZVByb3BlcnR5QW5pbWF0b3I8U3RyaW5nLCBTVkdBbmltYXRpb25TdHJpbmdGdW5jdGlvbj47CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
QW5pbWF0b3JGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eUFuaW1hdG9yRmFjdG9yeS5oCmluZGV4IDdhN2E2ZTU0ZjBhNDYzMDM5MGMxZTQwYWZhNmEz
MTBjNGU4ZjYzNzguLjUzOWQ0NmE4MDljNTVjZWFmYjc5OTQ0OTE4MjFlY2QwNzQ1ZTg5OTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0
b3JGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3RvcnkuaApAQCAtODQsNiArODQsMTEgQEAgcHJpdmF0ZToKICAgICB7CiAg
ICAgICAgIHJldHVybiBTVkdOdW1iZXJBbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5hbWUsICBX
VEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQs
IGlzQWRkaXRpdmUpOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYXV0byBjcmVhdGVTdHJpbmdB
bmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVy
dHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2Fs
Y01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFNWR1N0cmluZ0FuaW1hdG9yOjpjcmVhdGUoYXR0cmlidXRlTmFtZSwgV1RGTW92
ZShwcm9wZXJ0eSksIGFuaW1hdGlvbk1vZGUsIGNhbGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0Fk
ZGl0aXZlKTsKKyAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQXR0cmlidXRlQW5pbWF0b3JDcmVh
dG9yJiBhdHRyaWJ1dGVBbmltYXRvckNyZWF0b3IoKQogICAgIHsKQEAgLTEwMSw2ICsxMDYsNDMg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIHsgU1ZHTmFtZXM6OnN0b3Bfb3BhY2l0eUF0dHItPmlt
cGwoKSwgICAgICAgc3RkOjptYWtlX3BhaXIoU1ZHVmFsdWVQcm9wZXJ0eTxmbG9hdD46OmNyZWF0
ZSwgU1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZU51bWJlckFuaW1hdG9yKSB9LAog
ICAgICAgICAgICAgeyBTVkdOYW1lczo6c3Ryb2tlX21pdGVybGltaXRBdHRyLT5pbXBsKCksICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PGZsb2F0Pjo6Y3JlYXRlLCBTVkdQcm9wZXJ0
eUFuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlTnVtYmVyQW5pbWF0b3IpIH0sCiAgICAgICAgICAgICB7
IFNWR05hbWVzOjpzdHJva2Vfb3BhY2l0eUF0dHItPmltcGwoKSwgICAgIHN0ZDo6bWFrZV9wYWly
KFNWR1ZhbHVlUHJvcGVydHk8ZmxvYXQ+OjpjcmVhdGUsIFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0
b3J5OjpjcmVhdGVOdW1iZXJBbmltYXRvcikgfSwKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6YWxpZ25tZW50X2Jhc2VsaW5lQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6YmFzZWxpbmVfc2hpZnRBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6YnVmZmVyZWRfcmVuZGVyaW5nQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Y2xpcF9wYXRoQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Y2xpcF9ydWxlQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Y29sb3JfaW50ZXJwb2xhdGlvbkF0dHItPmltcGwoKSwgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Y29sb3JfaW50ZXJwb2xhdGlvbl9maWx0ZXJzQXR0ci0+aW1wbCgpLCAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Y29sb3JfcHJvZmlsZUF0dHItPmltcGwoKSwgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Y29sb3JfcmVuZGVyaW5nQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Y3Vyc29yQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6ZGlzcGxheUF0dHItPmltcGwoKSwgICAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6ZG9taW5hbnRfYmFzZWxpbmVBdHRyLT5pbXBsKCksICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6ZmlsbF9ydWxlQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6ZmlsdGVyQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Zm9udF9mYW1pbHlBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Zm9udF9zdHJldGNoQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Zm9udF9zdHlsZUF0dHItPmltcGwoKSwgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Zm9udF92YXJpYW50QXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6Zm9udF93ZWlnaHRBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6aW1hZ2VfcmVuZGVyaW5nQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6bWFya2VyX2VuZEF0dHItPmltcGwoKSwgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6bWFya2VyX21pZEF0dHItPmltcGwoKSwgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6bWFya2VyX3N0YXJ0QXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6bWFza0F0dHItPmltcGwoKSwgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6bWFza190eXBlQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6b3ZlcmZsb3dBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6cGFpbnRfb3JkZXJBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6cG9pbnRlcl9ldmVudHNBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6c2hhcGVfcmVuZGVyaW5nQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6c3Ryb2tlX2xpbmVjYXBBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6c3Ryb2tlX2xpbmVqb2luQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6dGV4dF9hbmNob3JBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6dGV4dF9kZWNvcmF0aW9uQXR0ci0+aW1wbCgpLCAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6dGV4dF9yZW5kZXJpbmdBdHRyLT5pbXBsKCksICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6dmVjdG9yX2VmZmVjdEF0dHItPmltcGwoKSwgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9LAorICAgICAgICAgICAg
eyBTVkdOYW1lczo6dmlzaWJpbGl0eUF0dHItPmltcGwoKSwgICAgICAgICAgICAgICAgICAgICBz
dGQ6Om1ha2VfcGFpcihTVkdWYWx1ZVByb3BlcnR5PFN0cmluZz46OmNyZWF0ZSwgU1ZHUHJvcGVy
dHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKSB9CiAgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm4gbWFwOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKaW5kZXggOTFiZGRhNDMy
NDlhM2E3ZmExNWQ2MWY1MTAyZmQ3OWVlODMyMGUyMi4uNDM3ZDZiZDk1Yzg0ZWY2MWU5NjYxMGQ3
YjBiMWExODY5OGM4N2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKQEAgLTc5LDYgKzc5LDEyIEBAIHB1
YmxpYzoKICAgICAgICAgcmVnaXN0ZXJQcm9wZXJ0eShhdHRyaWJ1dGVOYW1lLCBTVkdBbmltYXRl
ZFJlY3RBY2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0b248cHJvcGVydHk+KCkp
OwogICAgIH0KIAorICAgIHRlbXBsYXRlPGNvbnN0IExhenlOZXZlckRlc3Ryb3llZDxjb25zdCBR
dWFsaWZpZWROYW1lPiYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBPd25l
clR5cGU6Oipwcm9wZXJ0eT4KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlclByb3BlcnR5KCkKKyAg
ICB7CisgICAgICAgIHJlZ2lzdGVyUHJvcGVydHkoYXR0cmlidXRlTmFtZSwgU1ZHQW5pbWF0ZWRT
dHJpbmdBY2Nlc3NvcjxPd25lclR5cGU+Ojp0ZW1wbGF0ZSBzaW5nbGV0b248cHJvcGVydHk+KCkp
OworICAgIH0KKyAgICAKICAgICB0ZW1wbGF0ZTxjb25zdCBMYXp5TmV2ZXJEZXN0cm95ZWQ8Y29u
c3QgUXVhbGlmaWVkTmFtZT4mIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdBbmltYXRlZEludGVnZXI+
IE93bmVyVHlwZTo6KnByb3BlcnR5MSwgUmVmPFNWR0FuaW1hdGVkSW50ZWdlcj4gT3duZXJUeXBl
OjoqcHJvcGVydHkyPgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoKQogICAgIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>