<?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>28194</bug_id>
          
          <creation_ts>2009-08-11 15:25:48 -0700</creation_ts>
          <short_desc>Custom properties on DOM objects are lost after GC (as demonstrated by the gc-9.html test)</short_desc>
          <delta_ts>2009-08-12 16:41:19 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>139133</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-11 15:25:48 -0700</bug_when>
    <thetext>The gc-9.html test shows that custom properties on some DOM objects are lost after GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139197</commentid>
    <comment_count>1</comment_count>
      <attachid>34630</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-11 18:22:46 -0700</bug_when>
    <thetext>Created attachment 34630
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139426</commentid>
    <comment_count>2</comment_count>
      <attachid>34630</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2009-08-12 11:00:17 -0700</bug_when>
    <thetext>Comment on attachment 34630
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139610</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 15:39:22 -0700</bug_when>
    <thetext>I&apos;ll leave this beauty for Darin to commit.  If he&apos;d rather have the script commit it for him, he can always set commit-queue+ himself.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139644</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-12 16:41:19 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/47165</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34630</attachid>
            <date>2009-08-11 18:22:46 -0700</date>
            <delta_ts>2009-08-12 11:00:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>CustomPropertyGCPatch.txt</filename>
            <type>text/plain</type>
            <size>46234</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzA4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjkgQEAKKzIwMDktMDgtMTEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1c3Rv
bSBwcm9wZXJ0aWVzIG9uIERPTSBvYmplY3RzIGFyZSBsb3N0IGFmdGVyIEdDIChhcyBkZW1vbnN0
cmF0ZWQgYnkgdGhlIGdjLTkuaHRtbCB0ZXN0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgxOTQKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBB
ZGRlZCB0aGUgdHdvIG5ldyBzb3VyY2UgZmlsZXMuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOiBE
aXR0by4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTUnVsZUxpc3Q6Om1hcmtDaGlsZHJlbik6IENh
bGwgbWFya0RPTU9iamVjdFdyYXBwZXIKKyAgICAgICAgb24gcnVsZXMgaW4gdGhlIGxpc3QuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNDU1NTdHlsZURlY2xhcmF0aW9uOjptYXJrQ2hpbGRyZW4pOiBB
ZGRlZC4gQ2FsbAorICAgICAgICBtYXJrRE9NT2JqZWN0V3JhcHBlciBvbiB0aGUgQ1NTVmFsdWUg
b2JqZWN0cyB0aGF0IGFyZSBvd25lZCBieSB0aGUKKyAgICAgICAgZGVjbGFyYXRpb24gYXMgdmFs
dWVzIG9mIHRoZSBwcm9wZXJ0aWVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzT2JzZXJ2YWJsZVRocm91Z2hET00pOiBBZGRl
ZCBjb2RlIHRvIGhhbmRsZSBzb21lCisgICAgICAgIGNhc2VzIHdoZXJlIG5vZGVzIGFyZSBvYnNl
cnZhYmxlIGJlY2F1c2UgdGhleSBvd24gb2JqZWN0cyB0aGF0CisgICAgICAgIGluIHR1cm4gaGF2
ZSBjdXN0b20gcHJvcGVydGllcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oOiBGaXggYSB0eXBvIGluIHRoZSBoZWFkZXIuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRG9jdW1lbnQ6Om1hcmtD
aGlsZHJlbik6IEFkZGVkIGNhbGwgdG8gbWFya0RPTU9iamVjdFdyYXBwZXIKKyAgICAgICAgZm9y
IGltcGxlbWVudGF0aW9uIGFuZCBzdHlsZVNoZWV0cy4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRWxlbWVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0VsZW1lbnQ6Om1hcmtD
aGlsZHJlbik6IEFkZGVkLiBDYWxscyBtYXJrRE9NT2JqZWN0V3JhcHBlcgorICAgICAgICBmb3Ig
YXR0cmlidXRlcyBhbmQgc3R5bGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxDYW52
YXNFbGVtZW50Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxDYW52
YXNFbGVtZW50OjptYXJrQ2hpbGRyZW4pOiBDYWxsIG1hcmtET01PYmplY3RXcmFwcGVyCisgICAg
ICAgIG9uIHRoZSByZW5kZXJpbmcgY29udGV4dC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
U3R5bGVTaGVldEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N0eWxlU2hlZXQ6Om1h
cmtDaGlsZHJlbik6IENhbGwgbWFya0RPTU9iamVjdFdyYXBwZXIgb24KKyAgICAgICAgaXRlbXMg
aW4gdGhlIHN0eWxlc2hlZXQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRM
aXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU3R5bGVTaGVldExpc3Q6Om1hcmtD
aGlsZHJlbik6IEFkZGVkLiBDYWxscworICAgICAgICBtYXJrRE9NT2JqZWN0V3JhcHBlciBvbiBz
dHlsZXNoZWV0cyBpbiB0aGUgbGlzdC4KKworICAgICAgICAqIGNzcy9DU1NSdWxlTGlzdC5pZGw6
IEFkZGVkIEN1c3RvbU1hcmtGdW5jdGlvbi4KKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJh
dGlvbi5pZGw6IERpdHRvLgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0TGlzdC5pZGw6IERpdHRv
LgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5pZGw6IERpdHRvLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuaDogTWFk
ZSBldmVyeXRoaW5nIHByaXZhdGUgdGhhdCBjb3VsZCBiZS4KKyAgICAgICAgQWRkZWQgYWNjZXNz
IHRvIHRoZSBhdHRyaWJ1dGVNYXAgdGhhdCBkb2VzIHJldHVybnMKKyAgICAgICAgdGhlIGV4aXN0
aW5nIG1hcCB3aXRob3V0IGRvaW5nIGFueSBvZiB0aGUgbGF6eS11cGRhdGluZyB3b3JrLiBUaGlz
CisgICAgICAgIGlzIG5lZWRlZCB0byBnZXQgYXQgdGhlIGV4aXN0aW5nIGF0dHJpYnV0ZXMgZHVy
aW5nIGdhcmJhZ2UgY29sbGVjdGlvbgorICAgICAgICB3aXRob3V0IGhhdmluZyBzaWRlIGVmZmVj
dHMuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6IENsZWFuZWQgdXAgdGhl
IGhlYWRlciBhIGJpdCwgbWFraW5nCisgICAgICAgIG1lbWJlcnMgcHJpdmF0ZS4gQWRkZWQgcmVu
ZGVyaW5nQ29udGV4dDJEIGZ1bmN0aW9uIGZvciB1c2UgaW4KKyAgICAgICAgSlNIVE1MQ2FudmFz
RWxlbWVudDo6bWFya0NoaWxkcmVuLgorCiAyMDA5LTA4LTExICBEcmV3IFdpbHNvbiAgPGF0d2ls
c29uQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4
OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDQ3MDgwKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzE0LDYgKzMxNCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RhdGFHcmlkRGF0YVNvdXJjZS5jcHAgXAogCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNEYXRhR3JpZERhdGFTb3VyY2UuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NT
U1J1bGVDdXN0b20uY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0
b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3Rv
bS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9t
LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAgXApAQCAtMzUy
LDYgKzM1Myw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxBbGxDb2xsZWN0aW9uLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0
RWxlbWVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxl
bWVudEN1c3RvbS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRD
dXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20u
Y3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERhdGFHcmlkRWxlbWVudEN1c3RvbS5j
cHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwIFwKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCShyZXZpc2lvbiA0NzA4MCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNv
cHkpCkBAIC00MTQsNiArNDE0LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NvbnNv
bGVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0Nvb3JkaW5hdGVzQ3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcCcsCkBAIC00NjQs
NiArNDY1LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9u
LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0hUTUxBcHBsZXRFbGVtZW50Q3VzdG9t
LmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3Bw
JywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNDcwODApCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC02MjksNiArNjI5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgYmluZGluZ3MvanMv
SlNDbGlwYm9hcmRDdXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0NvbnNvbGVDdXN0b20u
Y3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwIFwKKyAgICBiaW5kaW5n
cy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNDU1NTdHls
ZURlY2xhcmF0aW9uQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3Rv
bS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTQ29vcmRpbmF0ZXNDdXN0b20uY3BwIFwKQEAgLTY1
MSw2ICs2NTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xs
ZWN0aW9uLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcCBcCiAgICAg
YmluZGluZ3MvanMvSlNIVE1MQXBwbGV0RWxlbWVudEN1c3RvbS5jcHAgXAorICAgIGJpbmRpbmdz
L2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU0hU
TUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNIVE1MRGF0YUdyaWRF
bGVtZW50Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20u
Y3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCShyZXZpc2lvbiA0NzA4MCkKKysrIFdlYkNvcmUvV2Vi
Q29yZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBAIFRoaXMgZmls
ZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWUKICAgICAgICAgYmluZGluZ3MvanMvSlND
bGlwYm9hcmRDdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTQ29uc29sZUN1c3RvbS5j
cHAKICAgICAgICAgYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAorICAgICAgICBiaW5k
aW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcAogICAgICAgICBiaW5kaW5ncy9qcy9KU0NT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTQ1NTVmFs
dWVDdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTQ29vcmRpbmF0ZXNDdXN0b20uY3Bw
CkBAIC05MCw2ICs5MSw3IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBu
ZWUKICAgICAgICAgYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbi5jcHAKICAgICAgICAg
YmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcAogICAgICAgICBiaW5kaW5ncy9qcy9KU0hU
TUxBcHBsZXRFbGVtZW50Q3VzdG9tLmNwcAorICAgICAgICBiaW5kaW5ncy9qcy9KU0hUTUxDYW52
YXNFbGVtZW50Q3VzdG9tLmNwcAogICAgICAgICBiaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9u
Q3VzdG9tLmNwcAogICAgICAgICBiaW5kaW5ncy9qcy9KU0hUTUxEYXRhR3JpZEVsZW1lbnRDdXN0
b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcApJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA0NzA4MCkKKysr
IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAg
LTI4NjE5LDYgKzI4NjE5LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0NTU1J1bGVMaXN0Q3VzdG9tLmNw
cCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwIg0KIAkJCQkJ
Pg0KIAkJCQk8L0ZpbGU+DQpAQCAtMjg4MDMsNiArMjg4MDcsMTAgQEAKIAkJCQkJPg0KIAkJCQk8
L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
SFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJ
CTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSFRNTENvbGxlY3Rp
b25DdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQ3MDgwKQorKysgV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY0
NCw3ICs2NDQsNiBAQAogCQkzMzUwM0NDNzEwMTdBMUIxMDAzQjQ3RTEgLyogTm90aWZpY2F0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNTAz
Q0M2MTAxN0ExQjEwMDNCNDdFMSAvKiBOb3RpZmljYXRpb24uY3BwICovOyB9OwogCQkzMzkwQ0E1
NTBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzOTBDQTUxMEZGQzE1N0IwMDkyMTk2
MiAvKiBOb3RpZmljYXRpb25DZW50ZXIuY3BwICovOyB9OwogCQkzMzkwQ0E1NjBGRkMxNTdCMDA5
MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMzkwQ0E1MjBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0
aW9uQ2VudGVyLmggKi87IH07Ci0JCTMzOTBDQTU3MEZGQzE1N0IwMDkyMTk2MiAvKiBOb3RpZmlj
YXRpb25DZW50ZXIuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMzkwQ0E1MzBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ2VudGVyLmlk
bCAqLzsgfTsKIAkJMzM5MENBNTgwRkZDMTU3QjAwOTIxOTYyIC8qIE5vdGlmaWNhdGlvbkNvbnRl
bnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzkw
Q0E1NDBGRkMxNTdCMDA5MjE5NjIgLyogTm90aWZpY2F0aW9uQ29udGVudHMuaCAqLzsgfTsKIAkJ
MzcxRjRGNDAwRDI1QjlBRjAwRUNFMEQ1IC8qIEZvbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFGNEYzRTBEMjVCOUFGMDBFQ0UwRDUgLyog
Rm9udERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkzNzFGNEY0MTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERhdGEuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRjRGM0YwRDI1QjlBRjAwRUNF
MEQ1IC8qIEZvbnREYXRhLmNwcCAqLzsgfTsKQEAgLTIwOTksNiArMjA5OCw4IEBACiAJCTkzOEU2
NUY3MDlGMDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4RTY1RjYwOUYw
OTg1RDAwOEE0OEVDIC8qIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi87IH07CiAJ
CTkzOEU2NjYwMDlGMDlCODEwMDhBNDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEU2NjVGMDlGMDlC
ODEwMDhBNDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmNwcCAqLzsgfTsKIAkJOTM4RTY2NjIw
OUYwOUI4NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEU2NjYxMDlGMDlCODcwMDhBNDhFQyAv
KiBKU0hUTUxDYW52YXNFbGVtZW50LmggKi87IH07CisJCTkzOTIyNjJEMTAzMjEwN0IwMDZFN0Q1
RCAvKiBKU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTIyNjJDMTAzMjEwN0IwMDZFN0Q1RCAvKiBKU0hU
TUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKKwkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3
RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MjI2MkUxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVs
ZUxpc3RDdXN0b20uY3BwICovOyB9OwogCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUmVu
ZGVyQ291bnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuaCAqLzsgfTsKIAkJ
OTM5MkYxNDQwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDMwQUQxODVGRTAwNjkx
QkQ0IC8qIFJlbmRlckNvdW50ZXIuY3BwICovOyB9OwogCQk5MzkyRjE0QzBBRDE4NjFCMDA2OTFC
RDQgLyogQ291bnRlck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oICovOyB9
OwpAQCAtNzEyMSw2ICs3MTIyLDggQEAKIAkJOTM4RTY2MjUwOUYwOTk1NjAwOEE0OEVDIC8qIEhU
TUxDYW52YXNFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MQ2FudmFzRWxl
bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOEU2NjVGMDlGMDlCODEw
MDhBNDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTENhbnZhc0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzhFNjY2MTA5RjA5Qjg3MDA4QTQ4RUMgLyogSlNIVE1MQ2FudmFzRWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxDYW52YXNFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTIyNjJDMTAzMjEwN0IwMDZF
N0Q1RCAvKiBKU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzkyMjYyRTEwMzIxMDg0MDA2RTdENUQgLyogSlNDU1NS
dWxlTGlzdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0NTU1J1bGVMaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5
MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckNvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckNvdW50ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkyRjE0QjBBRDE4NjFCMDA2OTFCRDQgLyog
Q291bnRlck5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZXJO
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzc5NCw2ICsxMzc5Nyw3IEBA
CiAJCQkJQzBERkM4NkYwREI2ODQxQTAwM0VBRTdDIC8qIEpTQ29uc29sZUN1c3RvbS5jcHAgKi8s
CiAJCQkJRkU3MDBERDAwRjkyRDgxQTAwOEUyQkZFIC8qIEpTQ29vcmRpbmF0ZXNDdXN0b20uY3Bw
ICovLAogCQkJCUJDNDZDMUVEMEMwRERCREYwMDIwQ0ZDMyAvKiBKU0NTU1J1bGVDdXN0b20uY3Bw
ICovLAorCQkJCTkzOTIyNjJFMTAzMjEwODQwMDZFN0Q1RCAvKiBKU0NTU1J1bGVMaXN0Q3VzdG9t
LmNwcCAqLywKIAkJCQlCQzU4MjVGMjBDMEI4OTM4MDA1M0YxQjUgLyogSlNDU1NTdHlsZURlY2xh
cmF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlCQzIwRkI3RTBDMEU4RTZDMDBEMTQ0N0YgLyogSlND
U1NWYWx1ZUN1c3RvbS5jcHAgKi8sCiAJCQkJRkU4MEQ3QTIwRTlDMUVEMjAwMEQ2Rjc1IC8qIEpT
Q3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAgKi8sCkBAIC0xMzgyNyw2ICsxMzgzMSw3IEBACiAJ
CQkJRkU4MEQ3QTYwRTlDMUVEMjAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb25DdXN0b20uY3BwICov
LAogCQkJCUJDRTdCMTkyMEQ0RTg2OTYwMDc1QTUzOSAvKiBKU0hpc3RvcnlDdXN0b20uY3BwICov
LAogCQkJCUJDNEVERUYzMEMwOEYzRkIwMDdFREQ0OSAvKiBKU0hUTUxBcHBsZXRFbGVtZW50Q3Vz
dG9tLmNwcCAqLywKKwkJCQk5MzkyMjYyQzEwMzIxMDdCMDA2RTdENUQgLyogSlNIVE1MQ2FudmFz
RWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNDQkFEM0EwQzE4QkZGODAwQ0U4OTBGIC8qIEpT
SFRNTENvbGxlY3Rpb25DdXN0b20uY3BwICovLAogCQkJCUJDQkNBRTUzMEZGMUEyOUUwMDA3NjJB
RSAvKiBKU0hUTUxEYXRhR3JpZEVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDNTE1ODBBMEMw
M0Q0MDQwMDhCQjBFRSAvKiBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8sCkBAIC0xOTMwMyw2
ICsxOTMwOCw4IEBACiAJCQkJNDk0ODRGQzcxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BpeGVs
QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRGQ0ExMDJDRjIzQzAwMTg3REQzIC8q
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTQ4NEZD
RDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OTM5MjI2MkQxMDMyMTA3QjAwNkU3RDVEIC8qIEpTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVs
ZUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0IHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0NTU1J1bGVMaXN0
LmgiCisKKyNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNDU1NSdWxlTGlzdDo6bWFya0NoaWxkcmVu
KE1hcmtTdGFjayYgbWFya1N0YWNrKQoreworICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJrU3Rh
Y2spOworCisgICAgQ1NTUnVsZUxpc3QqIGxpc3QgPSBpbXBsKCk7CisgICAgSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhID0gKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKTsKKworICAgIHVu
c2lnbmVkIGxlbmd0aCA9IGxpc3QtPmxlbmd0aCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgbWFya0RPTU9iamVjdFdyYXBwZXIobWFya1N0YWNr
LCBnbG9iYWxEYXRhLCBsaXN0LT5pdGVtKGkpKTsKK30KKworfQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24g
NDcwODApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3Rv
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRl
ICJKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uaCIKIAogI2luY2x1ZGUgIkF0b21pY1N0cmlu
Zy5oIgorI2luY2x1ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAi
Q1NTUHJpbWl0aXZlVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAj
aW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1
ZGUgPHJ1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaD4KQEAg
LTQwLDYgKzQwLDIxIEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAordm9pZCBKU0NTU1N0eWxlRGVjbGFyYXRpb246Om1hcmtDaGlsZHJlbihNYXJrU3RhY2sm
IG1hcmtTdGFjaykKK3sKKyAgICBCYXNlOjptYXJrQ2hpbGRyZW4obWFya1N0YWNrKTsKKworICAg
IENTU1N0eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uID0gaW1wbCgpOworICAgIEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSA9ICpIZWFwOjpoZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCk7CisKKyAg
ICBpZiAoZGVjbGFyYXRpb24tPmlzTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSkgeworICAgICAg
ICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogbXV0YWJsZURlY2xhcmF0aW9uID0gc3RhdGlj
X2Nhc3Q8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPihkZWNsYXJhdGlvbik7CisgICAgICAg
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtdXRhYmxl
RGVjbGFyYXRpb24tPmVuZCgpOworICAgICAgICBmb3IgKENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uOjpjb25zdF9pdGVyYXRvciBpdCA9IG11dGFibGVEZWNsYXJhdGlvbi0+YmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KQorICAgICAgICAgICAgbWFya0RPTU9iamVjdFdyYXBwZXIobWFya1N0YWNr
LCBnbG9iYWxEYXRhLCBpdC0+dmFsdWUoKSk7CisgICAgfQorfQorCiAvLyBDaGVjayBmb3IgYSBD
U1MgcHJlZml4LgogLy8gUGFzc2VkIHByZWZpeCBpcyBhbGwgbG93ZXJjYXNlLgogLy8gRmlyc3Qg
Y2hhcmFjdGVyIG9mIHRoZSBwcmVmaXggd2l0aGluIHRoZSBwcm9wZXJ0eSBuYW1lIG1heSBiZSB1
cHBlciBvciBsb3dlcmNhc2UuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
CShyZXZpc2lvbiA0NzA4MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxBdWRpb0VsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgpAQCAtMjY0LDE4ICsyNjUsNDggQEAgc3RhdGljIGlubGluZSBib29sIGlzT2JzZXJ2YWJs
ZVRocm91Z2hETwogICAgIE5vZGUqIG5vZGUgPSBqc05vZGUtPmltcGwoKTsKIAogICAgIGlmIChu
b2RlLT5pbkRvY3VtZW50KCkpIHsKLSAgICAgICAgLy8gMS4gSWYgYSBub2RlIGlzIGluIHRoZSBk
b2N1bWVudCwgYW5kIGl0cyB3cmFwcGVyIGhhcyBjdXN0b20gcHJvcGVydGllcywKKyAgICAgICAg
Ly8gSWYgYSBub2RlIGlzIGluIHRoZSBkb2N1bWVudCwgYW5kIGl0cyB3cmFwcGVyIGhhcyBjdXN0
b20gcHJvcGVydGllcywKICAgICAgICAgLy8gdGhlIHdyYXBwZXIgaXMgb2JzZXJ2YWJsZSBiZWNh
dXNlIGZ1dHVyZSBhY2Nlc3MgdG8gdGhlIG5vZGUgdGhyb3VnaCB0aGUKICAgICAgICAgLy8gRE9N
IG11c3QgcmVmbGVjdCB0aG9zZSBwcm9wZXJ0aWVzLgogICAgICAgICBpZiAoanNOb2RlLT5oYXND
dXN0b21Qcm9wZXJ0aWVzKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICAv
LyAyLiBJZiBhIG5vZGUgaXMgaW4gdGhlIGRvY3VtZW50LCBhbmQgaGFzIGV2ZW50IGxpc3RlbmVy
cywgaXRzIHdyYXBwZXIgaXMKKyAgICAgICAgLy8gSWYgYSBub2RlIGlzIGluIHRoZSBkb2N1bWVu
dCwgYW5kIGhhcyBldmVudCBsaXN0ZW5lcnMsIGl0cyB3cmFwcGVyIGlzCiAgICAgICAgIC8vIG9i
c2VydmFibGUgYmVjYXVzZSBpdHMgd3JhcHBlciBpcyByZXNwb25zaWJsZSBmb3IgbWFya2luZyB0
aG9zZSBldmVudCBsaXN0ZW5lcnMuCiAgICAgICAgIGlmIChub2RlLT5ldmVudExpc3RlbmVycygp
LnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyBUZWNobmljYWxseSwgd2UgbWF5
IG92ZXJ6ZWFsb3VzbHkgbWFyayBhIHdyYXBwZXIgZm9yIGEgbm9kZSB0aGF0IGhhcyBvbmx5IG5v
bi1KUyBldmVudCBsaXN0ZW5lcnMuIE9oIHdlbGwuCisKKyAgICAgICAgLy8gSWYgYSBub2RlIG93
bnMgYW5vdGhlciBvYmplY3Qgd2l0aCBhIHdyYXBwZXIgd2l0aCBjdXN0b20gcHJvcGVydGllcywK
KyAgICAgICAgLy8gdGhlIHdyYXBwZXIgbXVzdCBiZSB0cmVhdGVkIGFzIG9ic2VydmFibGUsIGJl
Y2F1c2UgZnV0dXJlIGFjY2VzcyB0bworICAgICAgICAvLyB0aG9zZSBvYmplY3RzIHRocm91Z2gg
dGhlIERPTSBtdXN0IHJlZmxlY3QgdGhvc2UgcHJvcGVydGllcy4KKyAgICAgICAgLy8gRklYTUU6
IEl0IHdvdWxkIGJlIGJldHRlciBpZiB0aGlzIGxvZ2ljIGNvdWxkIGJlIGluIHRoZSBub2RlIG5l
eHQgdG8KKyAgICAgICAgLy8gdGhlIGN1c3RvbSBtYXJrQ2hpbGRyZW4gZnVuY3Rpb25zIHJhdGhl
ciB0aGFuIGhlcmUuCisgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAg
ICAgICAgIGlmIChOYW1lZE5vZGVNYXAqIGF0dHJpYnV0ZXMgPSBzdGF0aWNfY2FzdDxFbGVtZW50
Kj4obm9kZSktPmF0dHJpYnV0ZU1hcCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKERPTU9iamVj
dCogd3JhcHBlciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoKmpzTm9kZS0+Z2xvYmFsT2Jq
ZWN0KCktPmdsb2JhbERhdGEoKSwgYXR0cmlidXRlcykpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHdyYXBwZXItPmhhc0N1c3RvbVByb3BlcnRpZXMoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmIChub2RlLT5pc1N0eWxlZEVsZW1lbnQoKSkgeworICAgICAgICAgICAgICAgIGlm
IChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBzdGF0aWNfY2FzdDxTdHlsZWRF
bGVtZW50Kj4obm9kZSktPmlubGluZVN0eWxlRGVjbCgpKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChET01PYmplY3QqIHdyYXBwZXIgPSBnZXRDYWNoZWRET01PYmplY3RXcmFwcGVyKCpqc05v
ZGUtPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxEYXRhKCksIHN0eWxlKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHdyYXBwZXItPmhhc0N1c3RvbVByb3BlcnRpZXMoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdGF0aWNf
Y2FzdDxFbGVtZW50Kj4obm9kZSktPmhhc1RhZ05hbWUoY2FudmFzVGFnKSkgeworICAgICAgICAg
ICAgICAgIGlmIChDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGNvbnRleHQgPSBzdGF0aWNfY2Fz
dDxIVE1MQ2FudmFzRWxlbWVudCo+KG5vZGUpLT5yZW5kZXJpbmdDb250ZXh0MkQoKSkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoRE9NT2JqZWN0KiB3cmFwcGVyID0gZ2V0Q2FjaGVkRE9NT2Jq
ZWN0V3JhcHBlcigqanNOb2RlLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRGF0YSgpLCBjb250ZXh0
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdyYXBwZXItPmhhc0N1c3RvbVByb3Bl
cnRpZXMoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIDMuIElmIGEgd3JhcHBlciBpcyB0aGUgbGFz
dCByZWZlcmVuY2UgdG8gYW4gaW1hZ2Ugb3Igc2NyaXB0IGVsZW1lbnQKKyAgICAgICAgLy8gSWYg
YSB3cmFwcGVyIGlzIHRoZSBsYXN0IHJlZmVyZW5jZSB0byBhbiBpbWFnZSBvciBzY3JpcHQgZWxl
bWVudAogICAgICAgICAvLyB0aGF0IGlzIGxvYWRpbmcgYnV0IG5vdCBpbiB0aGUgZG9jdW1lbnQs
IHRoZSB3cmFwcGVyIGlzIG9ic2VydmFibGUKICAgICAgICAgLy8gYmVjYXVzZSBpdCBpcyB0aGUg
b25seSB0aGluZyBrZWVwaW5nIHRoZSBpbWFnZSBlbGVtZW50IGFsaXZlLCBhbmQgaWYKICAgICAg
ICAgLy8gdGhlIGltYWdlIGVsZW1lbnQgaXMgZGVzdHJveWVkLCBpdHMgbG9hZCBldmVudCB3aWxs
IG5vdCBmaXJlLgpAQCAtMzQ4LDYgKzM3OSw5IEBAIHZvaWQgdXBkYXRlRE9NTm9kZURvY3VtZW50
KE5vZGUqIG5vZGUsIEQKIAogdm9pZCBtYXJrRE9NT2JqZWN0V3JhcHBlcihNYXJrU3RhY2smIG1h
cmtTdGFjaywgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCB2b2lkKiBvYmplY3QpCiB7CisgICAg
Ly8gRklYTUU6IFRoaXMgY291bGQgYmUgY2hhbmdlZCB0byBvbmx5IG1hcmsgd3JhcHBlcnMgdGhh
dCBhcmUgIm9ic2VydmFibGUiCisgICAgLy8gYXMgbWFya0RPTU5vZGVzRm9yRG9jdW1lbnQgZG9l
cywgYWxsb3dpbmcgdXMgdG8gY29sbGVjdCBtb3JlIHdyYXBwZXJzLAorICAgIC8vIGJ1dCBkb2lu
ZyB0aGlzIGNvcnJlY3RseSB3b3VsZCBiZSBjaGFsbGVuZ2luZy4KICAgICBpZiAoIW9iamVjdCkK
ICAgICAgICAgcmV0dXJuOwogICAgIERPTU9iamVjdCogd3JhcHBlciA9IGdldENhY2hlZERPTU9i
amVjdFdyYXBwZXIoZ2xvYmFsRGF0YSwgb2JqZWN0KTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAkocmV2aXNpb24gNDcwODApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICNlbmRpZgogICAgIH07CiAKLSAgICAvLyBGSVhNRTogVGhpcyBjbGFzcyBzaG91bGQg
Y29sYXBzZSBpbnRvIERPTU9iamVjdCBvbmNlIGFsbCBET01PYmplY3RzIGFyZQorICAgIC8vIEZJ
WE1FOiBUaGlzIGNsYXNzIHNob3VsZCBjb2xsYXBzZSBpbnRvIERPTU9iamVjdCBvbmNlIGFsbCBE
T01PYmplY3RzIGFyZQogICAgIC8vIHVwZGF0ZWQgdG8gc3RvcmUgYSBnbG9iYWxPYmplY3QgcG9p
bnRlci4KICAgICBjbGFzcyBET01PYmplY3RXaXRoR2xvYmFsUG9pbnRlciA6IHB1YmxpYyBET01P
YmplY3QgewogICAgIHB1YmxpYzoKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVu
dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50
Q3VzdG9tLmNwcAkocmV2aXNpb24gNDcwODApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9j
dW1lbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0MiwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB2b2lkIEpTRG9jdW1lbnQ6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1h
cmtTdGFjaykKIHsKICAgICBKU05vZGU6Om1hcmtDaGlsZHJlbihtYXJrU3RhY2spOwotICAgIG1h
cmtET01Ob2Rlc0ZvckRvY3VtZW50KG1hcmtTdGFjaywgaW1wbCgpKTsKLSAgICBtYXJrQWN0aXZl
T2JqZWN0c0ZvckNvbnRleHQobWFya1N0YWNrLCAqSGVhcDo6aGVhcCh0aGlzKS0+Z2xvYmFsRGF0
YSgpLCBpbXBsKCkpOworCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gaW1wbCgpOworICAgIEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9ICpIZWFwOjpoZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCk7
CisKKyAgICBtYXJrRE9NTm9kZXNGb3JEb2N1bWVudChtYXJrU3RhY2ssIGRvY3VtZW50KTsKKyAg
ICBtYXJrQWN0aXZlT2JqZWN0c0ZvckNvbnRleHQobWFya1N0YWNrLCBnbG9iYWxEYXRhLCBkb2N1
bWVudCk7CisgICAgbWFya0RPTU9iamVjdFdyYXBwZXIobWFya1N0YWNrLCBnbG9iYWxEYXRhLCBk
b2N1bWVudC0+aW1wbGVtZW50YXRpb24oKSk7CisgICAgbWFya0RPTU9iamVjdFdyYXBwZXIobWFy
a1N0YWNrLCBnbG9iYWxEYXRhLCBkb2N1bWVudC0+c3R5bGVTaGVldHMoKSk7CiB9CiAKIEpTVmFs
dWUgSlNEb2N1bWVudDo6bG9jYXRpb24oRXhlY1N0YXRlKiBleGVjKSBjb25zdApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gNDcwODApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUxLDYgKzUxLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKIAordm9pZCBKU0VsZW1lbnQ6Om1hcmtDaGlsZHJlbihNYXJrU3Rh
Y2smIG1hcmtTdGFjaykKK3sKKyAgICBCYXNlOjptYXJrQ2hpbGRyZW4obWFya1N0YWNrKTsKKwor
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBsKCk7CisgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhID0gKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKTsKKworICAgIG1hcmtET01PYmpl
Y3RXcmFwcGVyKG1hcmtTdGFjaywgZ2xvYmFsRGF0YSwgZWxlbWVudC0+YXR0cmlidXRlTWFwKCkp
OworICAgIGlmIChlbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSkKKyAgICAgICAgbWFya0RPTU9i
amVjdFdyYXBwZXIobWFya1N0YWNrLCBnbG9iYWxEYXRhLCBzdGF0aWNfY2FzdDxTdHlsZWRFbGVt
ZW50Kj4oZWxlbWVudCktPmlubGluZVN0eWxlRGVjbCgpKTsKK30KKwogc3RhdGljIGlubGluZSBi
b29sIGFsbG93U2V0dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChFeGVjU3RhdGUqIGV4ZWMsIEVsZW1l
bnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICBpZiAoKGVsZW1lbnQtPmhhc1RhZ05hbWUoaWZyYW1lVGFnKSB8fCBlbGVtZW50LT5oYXNU
YWdOYW1lKGZyYW1lVGFnKSkgJiYgZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgInNyYyIpICYmIHBy
b3RvY29sSXNKYXZhU2NyaXB0KGRlcHJlY2F0ZWRQYXJzZVVSTCh2YWx1ZSkpKSB7CkBAIC01OSw3
ICs3MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhbGxvd1NldHRpbmdTcmNUb0phdmEKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7Ci19IAorfQogCiBK
U1ZhbHVlIEpTRWxlbWVudDo6c2V0QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJn
TGlzdCYgYXJncykKIHsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxl
bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxD
YW52YXNFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTSFRNTENhbnZh
c0VsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU0hUTUxDYW52YXNF
bGVtZW50OjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6
bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7CisKKyAgICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFz
ID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihpbXBsKCkpOworICAgIEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSA9ICpIZWFwOjpoZWFwKHRoaXMpLT5nbG9iYWxEYXRhKCk7CisKKyAg
ICBtYXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssIGdsb2JhbERhdGEsIGNhbnZhcy0+cmVu
ZGVyaW5nQ29udGV4dDJEKCkpOworfQorCit9CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU3R5bGVTaGVldEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCShyZXZpc2lvbiA0NzA4MCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsMTIg
KzU2LDE5IEBAIHZvaWQgSlNTdHlsZVNoZWV0OjptYXJrQ2hpbGRyZW4oTWFya1N0YWMKIHsKICAg
ICBCYXNlOjptYXJrQ2hpbGRyZW4obWFya1N0YWNrKTsKIAorICAgIFN0eWxlU2hlZXQqIHNoZWV0
ID0gaW1wbCgpOworICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9ICpIZWFwOjpoZWFwKHRo
aXMpLT5nbG9iYWxEYXRhKCk7CisKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBzaGVldC0+bGVuZ3Ro
KCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBt
YXJrRE9NT2JqZWN0V3JhcHBlcihtYXJrU3RhY2ssIGdsb2JhbERhdGEsIHNoZWV0LT5pdGVtKGkp
KTsKKwogICAgIC8vIFRoaXMgcHJldmVudHMgdXMgZnJvbSBoYXZpbmcgYSBzdHlsZSBzaGVldCB3
aXRoIGEgZGFuZ2xpbmcgb3duZXJOb2RlIHBvaW50ZXIuCiAgICAgLy8gQSBiZXR0ZXIgc29sdXRp
b24gd291bGQgYmUgdG8gaGFuZGxlIHRoaXMgb24gdGhlIERPTSBzaWRlIC0tIGlmIHRoZSBzdHls
ZSBzaGVldAogICAgIC8vIGlzIGtlcHQgYXJvdW5kLCB0aGVuIHdlIHdhbnQgdGhlIG5vZGUgdG8g
c3RheSBhcm91bmQgdG9vLiBPbmUgcG9zc2liaWxpdHkgd291bGQKICAgICAvLyBiZSB0byBtYWtl
IHJlZi9kZXJlZiBvbiB0aGUgc3R5bGUgc2hlZXQgcmVmL2RlcmVmIHRoZSBub2RlIGluc3RlYWQs
IGJ1dCB0aGVyZSdzCiAgICAgLy8gYSBsb3Qgb2YgZGlzZW50YW5nbGluZyBvZiB0aGUgQ1NTIERP
TSBvYmplY3RzIHRoYXQgd291bGQgbmVlZCB0byBoYXBwZW4gZmlyc3QuCi0gICAgaWYgKE5vZGUq
IG93bmVyTm9kZSA9IGltcGwoKS0+b3duZXJOb2RlKCkpIHsKKyAgICBpZiAoTm9kZSogb3duZXJO
b2RlID0gc2hlZXQtPm93bmVyTm9kZSgpKSB7CiAgICAgICAgIGlmIChKU05vZGUqIG93bmVyTm9k
ZVdyYXBwZXIgPSBnZXRDYWNoZWRET01Ob2RlV3JhcHBlcihvd25lck5vZGUtPmRvY3VtZW50KCks
IG93bmVyTm9kZSkpCiAgICAgICAgICAgICBtYXJrU3RhY2suYXBwZW5kKG93bmVyTm9kZVdyYXBw
ZXIpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRM
aXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gNDcwODApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
U3R5bGVTaGVldExpc3RDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw2ICszNSwxOCBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3ZvaWQgSlNTdHls
ZVNoZWV0TGlzdDo6bWFya0NoaWxkcmVuKE1hcmtTdGFjayYgbWFya1N0YWNrKQoreworICAgIEJh
c2U6Om1hcmtDaGlsZHJlbihtYXJrU3RhY2spOworCisgICAgU3R5bGVTaGVldExpc3QqIGxpc3Qg
PSBpbXBsKCk7CisgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gKkhlYXA6OmhlYXAodGhp
cyktPmdsb2JhbERhdGEoKTsKKworICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxpc3QtPmxlbmd0aCgp
OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgbWFy
a0RPTU9iamVjdFdyYXBwZXIobWFya1N0YWNrLCBnbG9iYWxEYXRhLCBsaXN0LT5pdGVtKGkpKTsK
K30KKwogYm9vbCBKU1N0eWxlU2hlZXRMaXN0OjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRl
KiwgU3R5bGVTaGVldExpc3QqIHN0eWxlU2hlZXRMaXN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIHN0eWxlU2hlZXRMaXN0LT5nZXROYW1lZEl0ZW0ocHJv
cGVydHlOYW1lKTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5pZGwJKHJldmlzaW9uIDQ3MDgwKQorKysgV2Vi
Q29yZS9jc3MvQ1NTUnVsZUxpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcs
NiArMjcsNyBAQCBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVs
IDI6CiAgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAg
ICBHZW5lcmF0ZUNvbnN0cnVjdG9yLAogICAgICAgICBIYXNJbmRleEdldHRlciwKICAgICAgICAg
SW50ZXJmYWNlVVVJRD02NGMzNDZhMC0xZTM0LTQ5ZDMtOTQ3Mi01N2VjOGUwZmRjY2IsCkluZGV4
OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkocmV2aXNpb24gNDcwODApCisrKyBXZWJD
b3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2Vp
bmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yMiw2ICsyMiw3IEBA
IG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICBp
bnRlcmZhY2UgWworICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEdlbmVyYXRl
Q29uc3RydWN0b3IsCiAgICAgICAgIERlbGVnYXRpbmdQdXRGdW5jdGlvbiwKICAgICAgICAgSGFz
TmFtZUdldHRlciwKSW5kZXg6IFdlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwJKHJldmlzaW9uIDQ3MDgwKQor
KysgV2ViQ29yZS9jc3MvU3R5bGVTaGVldExpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBX
ZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTIyLDYgKzIyLDcg
QEAgbW9kdWxlIHN0eWxlc2hlZXRzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVs
IDI6CiAgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAg
ICBHZW5lcmF0ZUNvbnN0cnVjdG9yLAogICAgICAgICBIYXNJbmRleEdldHRlciwKICAgICAgICAg
SGFzTmFtZUdldHRlciwKSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDQ3MDgwKQorKysgV2ViQ29yZS9kb20v
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCiAgKiAgICAgICAgICAgKEMpIDIwMDEg
RGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtNDIsNyArNDIsNyBAQCBjbGFzcyBJbnRTaXplOwogY2xhc3MgRWxlbWVudCA6IHB1YmxpYyBD
b250YWluZXJOb2RlIHsKIHB1YmxpYzoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOwotICAgIH5FbGVtZW50KCk7CisgICAgdmlydHVhbCB+RWxlbWVudCgpOwog
CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBnZXRJREF0dHJpYnV0ZSgpIGNvbnN0OwogICAgIGJv
b2wgaGFzQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKQEAgLTY0LDcgKzY0
LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wID0g
dHJ1ZSk7CiAgICAgdm9pZCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKGJvb2wgY2VudGVySWZOZWVk
ZWQgPSB0cnVlKTsKIAotICAgIHZvaWQgc2Nyb2xsQnlVbml0cyhpbnQgdW5pdHMsIFNjcm9sbEdy
YW51bGFyaXR5KTsKICAgICB2b2lkIHNjcm9sbEJ5TGluZXMoaW50IGxpbmVzKTsKICAgICB2b2lk
IHNjcm9sbEJ5UGFnZXMoaW50IHBhZ2VzKTsKIApAQCAtMTA4LDE3ICsxMDcsMTEgQEAgcHVibGlj
OgogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUoKSBjb25zdCB7IHJldHVybiBt
X3RhZ05hbWUubG9jYWxOYW1lKCk7IH0KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGFnTmFtZS5wcmVmaXgoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3QgeyByZXR1cm4gbV90YWdOYW1lLm5h
bWVzcGFjZVVSSSgpOyB9CiAKICAgICB2aXJ0dWFsIEtVUkwgYmFzZVVSSSgpIGNvbnN0OwogCi0g
ICAgLy8gRE9NIG1ldGhvZHMgb3ZlcnJpZGRlbiBmcm9tIHBhcmVudCBjbGFzc2VzCi0gICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVO
YW1lKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9y
ZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9
IDApOwogCiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4o
KTsKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbigp
OwpAQCAtMTM2LDEzICsxMjksOSBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgY2Fs
bGVkIHdoZW5ldmVyIGFuIGF0dHJpYnV0ZSBpcyBhZGRlZCwgY2hhbmdlZCBvciByZW1vdmVkLgog
ICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSosIGJvb2wgcHJlc2Vy
dmVEZWNscyA9IGZhbHNlKTsKIAotICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKCkgY2FsbHMgdGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zLgot
ICAgIC8vIFRoZXkgYXJlIHNlcGFyYXRlZCB0byBhbGxvdyBhIGRpZmZlcmVudCBmbG93IG9mIGNv
bnRyb2wgaW4gU3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCgpLgotICAgIHZvaWQgcmVj
YWxjU3R5bGVJZk5lZWRlZEFmdGVyQXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqKTsKLSAgICB2
b2lkIHVwZGF0ZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqKTsKLQogICAgIC8vIG5v
dCBwYXJ0IG9mIHRoZSBET00KICAgICB2b2lkIHNldEF0dHJpYnV0ZU1hcChQYXNzUmVmUHRyPE5h
bWVkTm9kZU1hcD4pOworICAgIE5hbWVkTm9kZU1hcCogYXR0cmlidXRlTWFwKCkgY29uc3QgeyBy
ZXR1cm4gbmFtZWRBdHRyTWFwLmdldCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgY29weU5vbkF0
dHJpYnV0ZVByb3BlcnRpZXMoY29uc3QgRWxlbWVudCogLypzb3VyY2UqLykgeyB9CiAKQEAgLTE1
MywxMCArMTQyLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogY29tcHV0
ZWRTdHlsZSgpOwogCi0gICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUp
OwotCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEF0dHJpYnV0ZT4gY3JlYXRlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKTsKLSAgICAKICAg
ICB2b2lkIGRpc3BhdGNoQXR0clJlbW92YWxFdmVudChBdHRyaWJ1dGUqKTsKICAgICB2b2lkIGRp
c3BhdGNoQXR0ckFkZGl0aW9uRXZlbnQoQXR0cmlidXRlKik7CiAKQEAgLTE3MSwxMiArMTU2LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9vbCBy
ZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwogICAgIHZvaWQgYmx1cigpOwogCi0jaWZuZGVmIE5E
RUJVRwotICAgIHZpcnR1YWwgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVu
c2lnbmVkIGxlbmd0aCkgY29uc3Q7Ci0jZW5kaWYKLQotICAgIGJvb2wgcHNldWRvU3R5bGVDYWNo
ZUlzSW52YWxpZChjb25zdCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHlsZSog
bmV3U3R5bGUpOwotCiAgICAgU3RyaW5nIGlubmVyVGV4dCgpIGNvbnN0OwogICAgIFN0cmluZyBv
dXRlclRleHQoKSBjb25zdDsKICAKQEAgLTIwNyw3ICsxODYsNiBAQCBwdWJsaWM6CiAgICAgRWxl
bWVudCogbmV4dEVsZW1lbnRTaWJsaW5nKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgY2hpbGRFbGVt
ZW50Q291bnQoKSBjb25zdDsKIAotICAgIC8vIEZvcm1Db250cm9sRWxlbWVudCBBUEkKICAgICB2
aXJ0dWFsIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkT25seUZvcm1Db250cm9sKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KQEAgLTIyNiwxMyArMjA0LDM3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKSB7IH0KIAorcHJvdGVj
dGVkOgorICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOworICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVu
Q2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2Ug
PSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKKwor
ICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKCkg
Y2FsbHMgdGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zLgorICAgIC8vIFRoZXkgYXJlIHNlcGFy
YXRlZCB0byBhbGxvdyBhIGRpZmZlcmVudCBmbG93IG9mIGNvbnRyb2wgaW4gU3R5bGVkRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZCgpLgorICAgIHZvaWQgcmVjYWxjU3R5bGVJZk5lZWRlZEFmdGVy
QXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqKTsKKyAgICB2b2lkIHVwZGF0ZUFmdGVyQXR0cmli
dXRlQ2hhbmdlZChBdHRyaWJ1dGUqKTsKKwogcHJpdmF0ZToKKyAgICB2b2lkIHNjcm9sbEJ5VW5p
dHMoaW50IHVuaXRzLCBTY3JvbGxHcmFudWxhcml0eSk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
UHJlZml4KGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFs
IE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFs
bG93ZWQoTm9kZVR5cGUpOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEF0dHJpYnV0ZT4gY3Jl
YXRlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlKTsKKyAgICAKKyNpZm5kZWYgTkRFQlVHCisgICAgdmlydHVhbCB2b2lkIGZvcm1hdEZvckRl
YnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKKyNlbmRpZgorCisg
ICAgYm9vbCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKGNvbnN0IFJlbmRlclN0eWxlKiBjdXJy
ZW50U3R5bGUsIFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CisKICAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlQXR0cmlidXRlTWFwKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3R5bGVB
dHRyaWJ1dGUoKSBjb25zdCB7fQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdHlsZUF0dHJpYnV0
ZSgpIGNvbnN0IHsgfQogCiAjaWYgRU5BQkxFKFNWRykKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
QW5pbWF0ZWRTVkdBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJikgY29uc3Qge30KKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlQW5pbWF0ZWRTVkdBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJikgY29uc3QgeyB9
CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlU29vbkFmdGVyQXR0YWNo
KCk7CkBAIC0yNDksMTAgKzI1MSwxMCBAQCBwcml2YXRlOgogICAgIFF1YWxpZmllZE5hbWUgbV90
YWdOYW1lOwogICAgIHZpcnR1YWwgTm9kZVJhcmVEYXRhKiBjcmVhdGVSYXJlRGF0YSgpOwogCi1w
cm90ZWN0ZWQ6CiAgICAgRWxlbWVudFJhcmVEYXRhKiByYXJlRGF0YSgpIGNvbnN0OwogICAgIEVs
ZW1lbnRSYXJlRGF0YSogZW5zdXJlUmFyZURhdGEoKTsKICAgICAKK3Byb3RlY3RlZDoKICAgICBt
dXRhYmxlIFJlZlB0cjxOYW1lZE5vZGVNYXA+IG5hbWVkQXR0ck1hcDsKIH07CiAgICAgCkluZGV4
OiBXZWJDb3JlL2RvbS9FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FbGVt
ZW50LmlkbAkocmV2aXNpb24gNDcwODApCisrKyBXZWJDb3JlL2RvbS9FbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBHZW5lcmF0ZUNvbnN0
cnVjdG9yLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKICAgICAgICAgSW5saW5l
R2V0T3duUHJvcGVydHlTbG90LApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHJldmlz
aW9uIDQ3MDgwKQorKysgV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtMzUsNyArMzUsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ7Ci10eXBlZGVmIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0OwogY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZsb2F0UmVj
dDsKIGNsYXNzIEZsb2F0U2l6ZTsKQEAgLTQ1LDkgKzQ0LDExIEBAIGNsYXNzIEltYWdlQnVmZmVy
OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRTaXplOwogCit0eXBlZGVmIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCBDYW52YXNSZW5kZXJpbmdDb250ZXh0OworCiBjbGFzcyBDYW52YXNPYnNl
cnZlciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+Q2FudmFzT2JzZXJ2ZXIoKSB7fTsKKyAgICB2
aXJ0dWFsIH5DYW52YXNPYnNlcnZlcigpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNhbnZhc0No
YW5nZWQoSFRNTENhbnZhc0VsZW1lbnQqLCBjb25zdCBGbG9hdFJlY3QmIGNoYW5nZWRSZWN0KSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbnZhc1Jlc2l6ZWQoSFRNTENhbnZhc0VsZW1lbnQqKSA9
IDA7CkBAIC01OSwxMSArNjAsNiBAQCBwdWJsaWM6CiAgICAgSFRNTENhbnZhc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+SFRNTENhbnZhc0Vs
ZW1lbnQoKTsKIAotI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLSAgICB2aXJ0dWFsIEhU
TUxUYWdTdGF0dXMgZW5kVGFnUmVxdWlyZW1lbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGludCB0
YWdQcmlvcml0eSgpIGNvbnN0OwotI2VuZGlmCi0KICAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX3NpemUud2lkdGgoKTsgfQogICAgIGludCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBt
X3NpemUuaGVpZ2h0KCk7IH0KICAgICB2b2lkIHNldFdpZHRoKGludCk7CkBAIC03MywxMCArNjks
NyBAQCBwdWJsaWM6CiAKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBnZXRDb250ZXh0KGNv
bnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1h
cHBlZEF0dHJpYnV0ZSopOwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7Ci0KLSAgICBJbnRTaXplIHNpemUoKSBjb25z
dCB7IHJldHVybiBtX3NpemU7IH0KKyAgICBjb25zdCBJbnRTaXplJiBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaXplOyB9CiAgICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAg
ICAgeyAKICAgICAgICAgaWYgKHNpemUgPT0gbV9zaXplKQpAQCAtMTAzLDE1ICs5NiwyNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRPcmlnaW5UYWludGVkKCkgeyBtX29yaWdpbkNsZWFuID0gZmFs
c2U7IH0gCiAgICAgYm9vbCBvcmlnaW5DbGVhbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luQ2xl
YW47IH0KIAotICAgIHN0YXRpYyBjb25zdCBmbG9hdCBNYXhDYW52YXNBcmVhOwotCi0gICAgdm9p
ZCBzZXRPYnNlcnZlcihDYW52YXNPYnNlcnZlciogbykgeyBtX29ic2VydmVyID0gbzsgfQorICAg
IHZvaWQgc2V0T2JzZXJ2ZXIoQ2FudmFzT2JzZXJ2ZXIqIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXIg
PSBvYnNlcnZlcjsgfQogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggYmFzZVRyYW5zZm9ybSgp
IGNvbnN0OworCisgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiByZW5kZXJpbmdDb250ZXh0
MkQoKSB7IHJldHVybiBtXzJEQ29udGV4dC5nZXQoKTsgfQorCiBwcml2YXRlOgorI2lmIEVOQUJM
RShEQVNIQk9BUkRfU1VQUE9SVCkKKyAgICB2aXJ0dWFsIEhUTUxUYWdTdGF0dXMgZW5kVGFnUmVx
dWlyZW1lbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCB0YWdQcmlvcml0eSgpIGNvbnN0Owor
I2VuZGlmCisKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0
cmlidXRlKik7CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCdWZmZXIoKSBj
b25zdDsKICAgICB2b2lkIHJlc2V0KCk7CiAKKyAgICBzdGF0aWMgY29uc3QgZmxvYXQgTWF4Q2Fu
dmFzQXJlYTsKKwogICAgIGJvb2wgbV9yZW5kZXJlcklzQ2FudmFzOwogCiAgICAgT3duUHRyPENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRD4gbV8yRENvbnRleHQ7CkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5pZGwJKHJldmlzaW9uIDQ3MDgwKQorKysgV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAK
IG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBbCisgICAgICAgIEN1c3RvbU1hcmtGdW5j
dGlvbiwKICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvciwKICAgICAgICAgSW50ZXJmYWNlVVVJ
RD1hMTRkODhjOC1jNmFmLTRlMzQtYWQxNy02NTk3MDBjNzdhMTAsCiAgICAgICAgIEltcGxlbWVu
dGF0aW9uVVVJRD03YWU3MzFiYy1jMjY0LTRlZTMtYTRiNC01ZDQ1NDBhZjI2YzMKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDQ3MDgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDgtMTEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1
c3RvbSBwcm9wZXJ0aWVzIG9uIERPTSBvYmplY3RzIGFyZSBsb3N0IGFmdGVyIEdDIChhcyBkZW1v
bnN0cmF0ZWQgYnkgdGhlIGdjLTkuaHRtbCB0ZXN0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgxOTQKKworICAgICAgICAqIGZhc3QvZG9tL2djLTkt
ZXhwZWN0ZWQudHh0OiBSZWdlbmVyYXRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6
IFVwZGF0ZWQgdG8gZXhwZWN0IGNvcnJlY3QgYmVoYXZpb3IgaW5zdGVhZCBvZiBmYWlsdXJlcy4K
KwogMjAwOS0wOC0xMSAgTWlrZSBGZW50b24gIDxtaWtlLmZlbnRvbkB0b3JjaG1vYmlsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL2djLTktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL2djLTktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0NzA4MCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL2djLTktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0MSwxMiBA
QCBQQVNTOiBuZXcgWFBhdGhFdmFsdWF0b3IoKS5ldmFsdWF0ZSgnLycsCiBQQVNTOiBkb2N1bWVu
dC5jcmVhdGVOU1Jlc29sdmVyKGRvY3VtZW50KS5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1
bmRlZmluZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuY3JlYXRlRXhwcmVzc2lvbignLycsIGRv
Y3VtZW50LmNyZWF0ZU5TUmVzb2x2ZXIoZG9jdW1lbnQpKS5teUN1c3RvbVByb3BlcnR5IHNob3Vs
ZCBiZSB1bmRlZmluZWQgYW5kIGlzLgogRE9NIE9CSkVDVFMgQUZURVIgR0FSQkFHRSBDT0xMRUNU
SU9OOgorUEFTUzogZG9jdW1lbnQuaW1wbGVtZW50YXRpb24ubXlDdXN0b21Qcm9wZXJ0eSBzaG91
bGQgYmUgMSBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBi
ZSAxIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmJvZHkubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQg
YmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5ib2R5LmF0dHJpYnV0ZXMubXlDdXN0b21Qcm9w
ZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnYm9keScpLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMu
CitQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FudmFzJylbMF0uZ2V0Q29u
dGV4dCgnMmQnKS5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjYW52YXMnKVswXS5nZXRDb250ZXh0KCcyZCcp
LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIDAsIDAsIDApLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxk
IGJlIHVuZGVmaW5lZCBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgnY2FudmFzJylbMF0uZ2V0Q29udGV4dCgnMmQnKS5jcmVhdGVQYXR0ZXJuKG5ldyBJbWFnZSgp
LCAnbm8tcmVwZWF0JykubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBp
cy4KIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVswXS5vcHRp
b25zLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCkBAIC02Myw3
ICs2NiwxMiBAQCBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGFiCiBQQVNT
OiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGFibGUnKVswXS50Qm9kaWVzWzBdLnJv
d3MubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KIFBBU1M6IGRv
Y3VtZW50LmJvZHkuY2hpbGRyZW4ubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVk
IGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXAnKVswXS5h
cmVhcy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgorUEFTUzog
ZG9jdW1lbnQuYm9keS5zdHlsZS5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4K
K1BBU1M6IGRvY3VtZW50LmJvZHkuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnY29sb3InKS5t
eUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LnN0eWxl
U2hlZXRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5kIGlzLgorUEFTUzogZG9jdW1l
bnQuc3R5bGVTaGVldHNbMF0ubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCiBQ
QVNTOiBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5jc3NSdWxlcy5teUN1c3RvbVByb3BlcnR5IHNo
b3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0u
Y3NzUnVsZXNbMF0ubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCiBQQVNTOiBu
ZXcgWFBhdGhFdmFsdWF0b3IoKS5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQg
YW5kIGlzLgogUEFTUzogbmV3IFhQYXRoRXZhbHVhdG9yKCkuZXZhbHVhdGUoJy8nLCBkb2N1bWVu
dCwgbnVsbCwgMCwgbnVsbCkubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFu
ZCBpcy4KIFBBU1M6IGRvY3VtZW50LmNyZWF0ZU5TUmVzb2x2ZXIoZG9jdW1lbnQpLm15Q3VzdG9t
UHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9nYy05Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2Mt
OS5odG1sCShyZXZpc2lvbiA0NzA4MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDE1ICsxMDMsMTUgQEAgZnVuY3Rpb24gdGVzdCgpIAog
Ly8gSWYgImFsbG93IGN1c3RvbSIgaXMgc3BlY2lmaWVkLCB0aGVuIGN1c3RvbSBwcm9wZXJ0aWVz
IGFyZSBhbGxvd2VkIGFuZCBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4KIC8vIElmICJhbGxv
dyBjdXN0b20gc2tpcCIgaXMgc3BlY2lmaWVkLCB0aGlzIG1lYW5zIHRoaXMgcHJvcGVydHkgaXMg
bm90IGd1YXJhbnRlZWQgdG8gc3Vydml2ZSBnYXJiYWdlCiAvLyBjb2xsZWN0aW9uLCBzbyB3ZSBk
b24ndCB0ZXN0IGl0IGF0IGFsbCwgc2luY2UgdGhlcmUgaXMgYSBjaGFuY2UgaXQgbWlnaHQgZHVl
IHRvIGNvbnNlcnZhdGl2ZSBHQyBhbGdvcml0aG0uCi0vLyBBbGwgImFsbG93IGN1c3RvbSBza2lw
IiByZXByZXNlbnQgYnVncyB0aGF0IG5lZWQgdG8gYmUgZml4ZWQuCisvLyBBbnkgdXNlcyBvZiAi
YWxsb3cgY3VzdG9tIHNraXAiIHJlcHJlc2VudCBidWdzIHRoYXQgbmVlZCB0byBiZSBmaXhlZC4K
IAogdmFyIG9iamVjdHNUb1Rlc3QgPSBbCi0gICAgWyAiZG9jdW1lbnQuaW1wbGVtZW50YXRpb24i
LCAiYWxsb3cgY3VzdG9tIHNraXAiIF0sIC8vIERPTUltcGxlbWVudGF0aW9uCisgICAgWyAiZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24iLCAiYWxsb3cgY3VzdG9tIiBdLCAvLyBET01JbXBsZW1lbnRh
dGlvbgogICAgIFsgImRvY3VtZW50IiwgImFsbG93IGN1c3RvbSIgXSwKICAgICBbICJkb2N1bWVu
dC5ib2R5IiwgImFsbG93IGN1c3RvbSIgXSwKLSAgICBbICJkb2N1bWVudC5ib2R5LmF0dHJpYnV0
ZXMiLCAiYWxsb3cgY3VzdG9tIHNraXAiIF0sIC8vIE5hbWVkTm9kZU1hcAorICAgIFsgImRvY3Vt
ZW50LmJvZHkuYXR0cmlidXRlcyIsICJhbGxvdyBjdXN0b20iIF0sIC8vIE5hbWVkTm9kZU1hcAog
ICAgIFsgImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JykiIF0sIC8vIE5vZGVM
aXN0Ci0gICAgWyAiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NhbnZhcycpWzBdLmdl
dENvbnRleHQoJzJkJykiLCAiYWxsb3cgY3VzdG9tIHNraXAiIF0sIC8vIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRAorICAgIFsgImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjYW52YXMn
KVswXS5nZXRDb250ZXh0KCcyZCcpIiwgImFsbG93IGN1c3RvbSIgXSwgLy8gQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJECiAgICAgWyAiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NhbnZh
cycpWzBdLmdldENvbnRleHQoJzJkJykuY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgMCwgMCki
IF0sIC8vIENhbnZhc0dyYWRpZW50CiAgICAgWyAiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoJ2NhbnZhcycpWzBdLmdldENvbnRleHQoJzJkJykuY3JlYXRlUGF0dGVybihuZXcgSW1hZ2Uo
KSwgJ25vLXJlcGVhdCcpIiBdLCAvLyBDYW52YXNQYXR0ZXJuCiAgICAgWyAiZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdLm9wdGlvbnMiIF0sCkBAIC0xMzQsMTIgKzEz
NCwxMiBAQCB2YXIgb2JqZWN0c1RvVGVzdCA9IFsKICAgICBbICJkb2N1bWVudC5ib2R5LmNoaWxk
cmVuIiBdLAogICAgIFsgImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXAnKVswXS5h
cmVhcyIgXSwKICAgICAKLSAgICBbICJkb2N1bWVudC5ib2R5LnN0eWxlIiwgImFsbG93IGN1c3Rv
bSBza2lwIiBdLAotICAgIFsgImRvY3VtZW50LmJvZHkuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZSgnY29sb3InKSIsICJhbGxvdyBjdXN0b20gc2tpcCIgXSwKLSAgICBbICJkb2N1bWVudC5zdHls
ZVNoZWV0cyIsICJhbGxvdyBjdXN0b20gc2tpcCIgXSwKLSAgICBbICJkb2N1bWVudC5zdHlsZVNo
ZWV0c1swXSIsICJhbGxvdyBjdXN0b20gc2tpcCIgXSwKKyAgICBbICJkb2N1bWVudC5ib2R5LnN0
eWxlIiwgImFsbG93IGN1c3RvbSIgXSwKKyAgICBbICJkb2N1bWVudC5ib2R5LnN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUoJ2NvbG9yJykiLCAiYWxsb3cgY3VzdG9tIiBdLAorICAgIFsgImRvY3Vt
ZW50LnN0eWxlU2hlZXRzIiwgImFsbG93IGN1c3RvbSIgXSwKKyAgICBbICJkb2N1bWVudC5zdHls
ZVNoZWV0c1swXSIsICJhbGxvdyBjdXN0b20iIF0sCiAgICAgWyAiZG9jdW1lbnQuc3R5bGVTaGVl
dHNbMF0uY3NzUnVsZXMiIF0sCi0gICAgWyAiZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uY3NzUnVs
ZXNbMF0iLCAiYWxsb3cgY3VzdG9tIHNraXAiIF0sCisgICAgWyAiZG9jdW1lbnQuc3R5bGVTaGVl
dHNbMF0uY3NzUnVsZXNbMF0iLCAiYWxsb3cgY3VzdG9tIiBdLAogCiAgICAgWyAibmV3IFhQYXRo
RXZhbHVhdG9yKCkiIF0sIC8vIFhQYXRoRXZhbHVhdG9yCiAgICAgWyAibmV3IFhQYXRoRXZhbHVh
dG9yKCkuZXZhbHVhdGUoJy8nLCBkb2N1bWVudCwgbnVsbCwgMCwgbnVsbCkiIF0sIC8vIFhQYXRo
UmVzdWx0Cg==
</data>
<flag name="review"
          id="18780"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>