<?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>40550</bug_id>
          
          <creation_ts>2010-06-13 17:02:42 -0700</creation_ts>
          <short_desc>XMLHttpRequest constructor object should expose the constants from the IDL.</short_desc>
          <delta_ts>2010-06-14 10:38:33 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>237624</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-13 17:02:42 -0700</bug_when>
    <thetext>The XMLHttpRequest constructor object should expose the constants from the IDL.  For example, XMLHttpRequest.DONE should equal 4.  This matches what we do for all other constructors and WebIDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237627</commentid>
    <comment_count>1</comment_count>
      <attachid>58604</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-13 17:05:21 -0700</bug_when>
    <thetext>Created attachment 58604
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237629</commentid>
    <comment_count>2</comment_count>
      <attachid>58604</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-13 17:12:31 -0700</bug_when>
    <thetext>Comment on attachment 58604
patch

Should we test that the constants have the right values?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237632</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-13 17:19:49 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 58604 [details])
&gt; Should we test that the constants have the right values?

That seems reasonable.  I&apos;ll add a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237637</commentid>
    <comment_count>4</comment_count>
      <attachid>58608</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-13 17:32:46 -0700</bug_when>
    <thetext>Created attachment 58608
Updated patch with new test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237668</commentid>
    <comment_count>5</comment_count>
      <attachid>58608</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-06-13 19:23:59 -0700</bug_when>
    <thetext>Comment on attachment 58608
Updated patch with new test

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237669</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-13 19:27:30 -0700</bug_when>
    <thetext>Landed in r61100.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237670</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-13 19:34:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61100 might have broken Chromium Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237878</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-14 10:00:30 -0700</bug_when>
    <thetext>&gt; This matches what we do for all other constructors and WebIDL.

However, this doesn&apos;t match Firefox - even though it supports e.g. XPathResult.ANY_TYPE, it doesn&apos;t support XMLHttpRequest.DONE. Firefox doesn&apos;t expose those constants under their old names either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237881</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-14 10:04:34 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; This matches what we do for all other constructors and WebIDL.
&gt; 
&gt; However, this doesn&apos;t match Firefox - even though it supports e.g. XPathResult.ANY_TYPE, it doesn&apos;t support XMLHttpRequest.DONE. Firefox doesn&apos;t expose those constants under their old names either.

I don&apos;t think this will be a compat issue, do you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237900</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-14 10:38:33 -0700</bug_when>
    <thetext>This is unlikely to be a Web compatibility issue, but it may become a standards compatibility issue if we disagree with all other browsers, and some future spec codifies their behavior.

I think it&apos;s a good change, I just wanted to do the due diligence.

See also: bug 13148.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58604</attachid>
            <date>2010-06-13 17:05:21 -0700</date>
            <delta_ts>2010-06-13 17:32:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>xhrpatch.diff</filename>
            <type>text/plain</type>
            <size>31563</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTA5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDYtMTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDU1MAorICAgICAgICBY
TUxIdHRwUmVxdWVzdCBjb25zdHJ1Y3RvciBvYmplY3Qgc2hvdWxkIGV4cG9zZSB0aGUgY29uc3Rh
bnRzIGZyb20gdGhlIElETC4KKworICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6Cisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmg6IFJlbW92
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6CisKIDIwMTAtMDYtMTMg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXhleSBQcm9za3VyeWFrb3YuCkluZGV4OiBXZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCShyZXZpc2lvbiA2
MTA3MCkKKysrIFdlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawkod29ya2luZyBjb3B5KQpA
QCAtMTU4LDcgKzE1OCw2IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNX
b3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJy
b3JIYW5kbGVyLmNwcCBcCiAJYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKLQliaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwIFwKIAliaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dFVwbG9hZEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVj
dG9yLmNwcCBcCkluZGV4OiBXZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDYxMDcwKQorKysgV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjQ2LDcgKzY0Niw2IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTV29ya2VyQ3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25z
dHJ1Y3Rvci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwCkluZGV4OiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDYxMDcwKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
NTEyLDggKzUxMiw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVw
bG9hZEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29u
c3RydWN0b3IuY3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA2MTA3MCkKKysrIFdlYkNvcmUvV2ViQ29y
ZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC02NTAsOCArNjUwLDYgQEAKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwJywKLSAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAnLApJbmRleDogV2ViQ29y
ZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lv
biA2MTA3MCkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTMzOSw3
ICszMzksNiBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0
b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNw
cCBcCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcCBcCi0gICAg
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcCBcCiAgICAgYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkN1
c3RvbS5jcHAgXApAQCAtMTA4Myw3ICsxMDgyLDYgQEAgSEVBREVSUyArPSBcCiAgICAgYmluZGlu
Z3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRCYXNlLmggXAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaCBcCiAg
ICAgYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaCBcCiAgICAgYmluZGlu
Z3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRB
Y3Rpb24uaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlz
aW9uIDYxMDcwKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29y
a2luZyBjb3B5KQpAQCAtNDE2MDQsNjIgKzQxNjA0LDYgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+
DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTWE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAiDQotCQkJCQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCi0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxX
aW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJ
PFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
LQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
LQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIN
Ci0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wN
Ci0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaCINCi0JCQkJ
CT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA2MTA3MCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MzU3LDggKzQzNTcsNiBAQAogCQlCQzM0
OEJCRTBEQjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzM0OEJCRDBEQjdGNTMx
MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgKi87IH07CiAJCUJDMzQ4QkQz
MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzQ4QkQxMERCN0Y4MDQwMDRBQkFCOSAv
KiBKU1hNTEh0dHBSZXF1ZXN0LmNwcCAqLzsgfTsKIAkJQkMzNDhCRDQwREI3RjgwNDAwNEFCQUI5
IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMzQ4QkQyMERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0
LmggKi87IH07Ci0JCUJDMzQ4QkU5MERCODAzNTQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMzNDhCRTcwREI4MDM1NDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1
Y3Rvci5jcHAgKi87IH07Ci0JCUJDMzQ4QkVBMERCODAzNTQwMDRBQkFCOSAvKiBKU1hNTEh0dHBS
ZXF1ZXN0Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMzQ4QkU4MERCODAzNTQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q29u
c3RydWN0b3IuaCAqLzsgfTsKIAkJQkMzQkMyOUMwRTkxQUIwRjAwODM1NTg4IC8qIEhvc3RXaW5k
b3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0JD
MjlCMEU5MUFCMEYwMDgzNTU4OCAvKiBIb3N0V2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMzQkUxMkIwRTk4MDkyRjAwODM1NTg4IC8q
IFBvcHVwTWVudVN0eWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzNCRTk5MzBF
OUMxQzdDMDA4MzU1ODggLyogUmVuZGVyU2Nyb2xsYmFyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0JFOTkwMEU5QzFDN0MwMDgzNTU4OCAvKiBS
ZW5kZXJTY3JvbGxiYXIuY3BwICovOyB9OwpAQCAtODEzNiw3ICs4MTM0LDcgQEAKIAkJOTNGMTlC
MUEwODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gV2ViQ29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTkzRjFEMzFBMDU1OENDNUMwMDgyMUJDMCAvKiBsaWJpY3Vj
b3JlLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJpY3Vjb3JlLmR5bGliOyBwYXRo
ID0gL3Vzci9saWIvbGliaWN1Y29yZS5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+Ijsg
fTsKIAkJOTNGOEIzMDUwQTMwMEZFMTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3IucG0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBuYW1lID0gQ29kZUdlbmVyYXRvci5wbTsgcGF0aCA9IHNj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNG
OEIzMDYwQTMwMEZFQTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuc2NyaXB0LnBlcmw7IG5hbWUgPSBDb2RlR2VuZXJhdG9ySlMucG07IHBhdGggPSAuLi9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNG
OEIzMDYwQTMwMEZFQTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuc2NyaXB0LnBlcmw7IG5hbWUgPSBDb2RlR2VuZXJhdG9ySlMucG07IHBhdGggPSAuLi9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsgd3JhcHNMaW5l
cyA9IDA7IH07CiAJCTkzRjhCMzA3MEEzMDBGRUEwMEY2MUFCOCAvKiBnZW5lcmF0ZS1iaW5kaW5n
cy5wbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBlcmw7IG5hbWUgPSAiZ2VuZXJhdGUtYmluZGlu
Z3MucGwiOyBwYXRoID0gInNjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y4QjMwODBBMzAwRkVBMDBGNjFBQjggLyogSURMU3RydWN0
dXJlLnBtICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgbmFtZSA9IElETFN0cnVjdHVyZS5w
bTsgcGF0aCA9IHNjcmlwdHMvSURMU3RydWN0dXJlLnBtOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0Y5MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogQ2hlY2tlZFJhZGlvQnV0dG9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGVja2VkUmFkaW9CdXR0b25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05ODc0LDggKzk4NzIsNiBAQAogCQlCQzM0
OEJCRDBEQjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzNDhCRDEwREI3RjgwNDAwNEFCQUI5
IC8qIEpTWE1MSHR0cFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNYTUxIdHRwUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDMzQ4QkQyMERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQkMzNDhCRTcwREI4MDM1NDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJl
cXVlc3RDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlCQzM0OEJFODBEQjgwMzU0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVl
c3RDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzNCQzI5QjBF
OTFBQjBGMDA4MzU1ODggLyogSG9zdFdpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIb3N0V2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDM0JF
MTJBMEU5ODA5MkYwMDgzNTU4OCAvKiBQb3B1cE1lbnVTdHlsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQb3B1cE1lbnVTdHlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzNCRTk5MDBFOUMxQzdDMDA4MzU1ODggLyogUmVuZGVyU2Nyb2xsYmFyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNjcm9sbGJhci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTg3NCw4ICsxNTg3MCw2IEBACiAJCQkJ
NTE4QTM0QzUxMDI2QzhDOTAwMUI2ODk2IC8qIEpTV2ViU29ja2V0Q29uc3RydWN0b3IuaCAqLywK
IAkJCQlFMUNBNUNENTBFOENERUU5MDBFOEVGOTAgLyogSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAg
Ki8sCiAJCQkJRTFDQTVDRDIwRThDREU4MDAwRThFRjkwIC8qIEpTV29ya2VyQ29uc3RydWN0b3Iu
aCAqLywKLQkJCQlCQzM0OEJFNzBEQjgwMzU0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdENv
bnN0cnVjdG9yLmNwcCAqLywKLQkJCQlCQzM0OEJFODBEQjgwMzU0MDA0QUJBQjkgLyogSlNYTUxI
dHRwUmVxdWVzdENvbnN0cnVjdG9yLmggKi8sCiAJCQkJQkNFOTlFQzEwRENBNjI0MTAwMTgyNjgz
IC8qIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcCAqLywKIAkJCQlCQ0U5OUVDMjBEQ0E2
MjQxMDAxODI2ODMgLyogSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaCAqLywKIAkJCSk7CkBA
IC0xODYyOSw3ICsxODYyMyw2IEBACiAJCQkJRTFDMzYyRUYwRUFGMkFBOTAwNzQxMEJDIC8qIEpT
V29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxQTU4MEVFRUNERTQwMEY2
MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzNDhCRDQw
REI3RjgwNDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUJDMzQ4QkVBMERCODAzNTQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGOTE2QzQ4RTBEQjUxMEY4
MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDREZENDk2MEUzMDU5MkYwMDlEMTBBRCAvKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2Fk
LmggaW4gSGVhZGVycyAqLywKQEAgLTIxMDMyLDcgKzIxMDI1LDYgQEAKIAkJCQlFMUMzNjJGMDBF
QUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFMTI3MUE1OTBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMzNDhCRDMwREI3RjgwNDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMzNDhCRTkwREI4MDM1NDAwNEFCQUI5IC8qIEpT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzM0OEJC
RTBEQjdGNTMxMDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzYwREEzOTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGOTE2QzQ4RDBEQjUxMEY4MDA3NkNEODMg
LyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA2
MTA3MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTI3LDcgKzEyNyw2IEBACiAjaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0
Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwIgog
I2luY2x1ZGUgIkpTV29ya2VyQ3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IuY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpT
WFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcCIKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiA2MTA3MCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBACiAjaW5jbHVkZSAiSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5oIgogI2VuZGlmCiAjaW5jbHVk
ZSAiSlNXb3JrZXJDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RDb25z
dHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNsdWRlICJKU1hT
TFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXIuaCIKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDYxMDcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3
IEBACiAjaW5jbHVkZSAiSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTV29y
a2VyTG9jYXRpb24uaCIKICNpbmNsdWRlICJKU1dvcmtlck5hdmlnYXRvci5oIgotI2luY2x1ZGUg
IkpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVl
c3QuaCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJXb3JrZXJDb250
ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9jYXRpb24uaCIKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9u
IDYxMDcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAbnlwb3Au
Y29tPgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oIgotCi0jaW5jbHVkZSAi
SlNYTUxIdHRwUmVxdWVzdC5oIgotI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
LSNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4K
LQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1BU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcik7Ci0KLWNvbnN0
IENsYXNzSW5mbyBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlhNTEh0
dHBSZXF1ZXN0Q29uc3RydWN0b3IiLCAwLCAwLCAwIH07Ci0KLUpTWE1MSHR0cFJlcXVlc3RDb25z
dHJ1Y3Rvcjo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0
KEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVj
dC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCi17Ci0gICAgcHV0RGlyZWN0KGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTWE1MSHR0cFJlcXVlc3RQcm90b3R5cGU6
OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFhNTEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhl
YykKLXsKLSAgICBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBz
dGF0aWNfY2FzdDxKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7
Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IGpzQ29uc3RydWN0b3ItPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmVmZXJlbmNlRXJyb3IoZXhlYywgIlhNTEh0dHBS
ZXF1ZXN0IGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQgZG9jdW1lbnQgaXMgdW5hdmFpbGFibGUiKSk7
Ci0KLSAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3Q+IHhtbEh0dHBSZXF1ZXN0ID0gWE1MSHR0cFJl
cXVlc3Q6OmNyZWF0ZShjb250ZXh0KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFU
RV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCks
IFhNTEh0dHBSZXF1ZXN0LCB4bWxIdHRwUmVxdWVzdC5nZXQoKSkpOwotfQotCi1Db25zdHJ1Y3RU
eXBlIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1
Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gY29uc3RydWN0WE1MSHR0cFJlcXVlc3Q7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGVI
b3N0OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDYxMDcw
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMSwzOCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAw
MywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgQ29weXJpZ2h0IChD
KSAyMDA1LCAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQG55cG9wLmNvbT4KLSAqCi0gKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVj
dG9yX2gKLSNkZWZpbmUgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yX2gKLQotI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTWE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7Ci1wdWJs
aWM6Ci0gICAgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKLSAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZv
OwotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpOwotICAgIHZpcnR1YWwgY29uc3QgSlNDOjpDbGFzc0lu
Zm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0KLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcl9o
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5j
cHAJKHJldmlzaW9uIDYxMDcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDQgKzEyNywxNSBAQCBKU1ZhbHVl
IEpTWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dChFCiAgICAgcmV0dXJuIGpzT3duZWRTdHJp
bmdPck51bGwoZXhlYywgaW1wbCgpLT5yZXNwb25zZVRleHQoKSk7CiB9CiAKK0VuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RK
U1hNTEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCA9IGpzQ29uc3RydWN0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAg
ICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
UmVmZXJlbmNlRXJyb3IoZXhlYywgIlhNTEh0dHBSZXF1ZXN0IGNvbnN0cnVjdG9yIGFzc29jaWF0
ZWQgZG9jdW1lbnQgaXMgdW5hdmFpbGFibGUiKSk7CisKKyAgICBSZWZQdHI8WE1MSHR0cFJlcXVl
c3Q+IHhtbEh0dHBSZXF1ZXN0ID0gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0KTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywg
anNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFhNTEh0dHBSZXF1ZXN0LCB4bWxIdHRwUmVx
dWVzdC5nZXQoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDYxMDcwKQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBj
b3B5KQpAQCAtOTg0LDYgKzk4NCwxMiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAorICAgICMgQ29uZGl0aW9uYWxseSBlbWl0IHRo
ZSBjb25zdHJ1Y3RvciBvYmplY3QncyBkZWNsYXJhdGlvbgorICAgIGlmICgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiJ9KSB7CisgICAgICAg
IEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbihcQGhlYWRlckNvbnRlbnQsICRjbGFzc05h
bWUsICRkYXRhTm9kZSk7CisgICAgfQorCisKICAgICBpZiAoJG51bUZ1bmN0aW9ucyA+IDApIHsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwiLy8gRnVuY3Rpb25zXG5cbiIpOwogICAgICAg
ICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKQEAgLTEy
MzEsMTAgKzEyMzcsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUy
KTsKIAotICAgICAgICBteSAkcHJvdG9DbGFzc05hbWU7Ci0gICAgICAgICRwcm90b0NsYXNzTmFt
ZSA9ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOworICAgICAgICBteSAkcHJvdG9DbGFzc05hbWUg
PSAiJHtjbGFzc05hbWV9UHJvdG90eXBlIjsKIAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
Y29uc3RydWN0b3JGb3IoJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkaW50ZXJmYWNlTmFt
ZSwgJHZpc2libGVDbGFzc05hbWUsICRkYXRhTm9kZSkpOworICAgICAgICBHZW5lcmF0ZUNvbnN0
cnVjdG9yRGVjbGFyYXRpb24oXEBpbXBsQ29udGVudCwgJGNsYXNzTmFtZSwgJGRhdGFOb2RlKSB1
bmxlc3MgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0RnVu
Y3Rpb24ifTsKKyAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oXEBpbXBsQ29u
dGVudCwgJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkaW50ZXJmYWNlTmFtZSwgJHZpc2li
bGVDbGFzc05hbWUsICRkYXRhTm9kZSk7CiAgICAgfQogCiAgICAgIyAtIEFkZCBmdW5jdGlvbnMg
YW5kIGNvbnN0YW50cyB0byBhIGhhc2h0YWJsZSBkZWZpbml0aW9uCkBAIC0yNzEyLDg2ICsyNzE4
LDk0IEBAIHN1YiBXcml0ZURhdGEKICAgICB9CiB9CiAKLXN1YiBjb25zdHJ1Y3RvckZvcgorc3Vi
IEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbgogeworICAgIG15ICRvdXRwdXRBcnJheSA9
IHNoaWZ0OwogICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKLSAgICBteSAkcHJvdG9DbGFzc05h
bWUgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OwotICAgIG15ICR2aXNp
YmxlQ2xhc3NOYW1lID0gc2hpZnQ7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKICAgICBt
eSAkY29uc3RydWN0b3JDbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9Q29uc3RydWN0b3IiOwogICAg
IG15ICRjYW5Db25zdHJ1Y3QgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYW5C
ZUNvbnN0cnVjdGVkIn07CiAgICAgbXkgJGNhbGxXaXRoID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsKIAotbXkgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Ci1j
bGFzcyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVj
dCB7Ci1wdWJsaWM6Ci0gICAgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgICAgICA6IERPTUNvbnN0cnVj
dG9yT2JqZWN0KCR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKLSAgICB7Ci0gICAgICAg
IHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCAke3Byb3RvQ2xhc3NO
YW1lfTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwot
ICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKLSAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkg
Y29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQotICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19p
bmZvOwotCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90bykgCi0gICAgeyAKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCk7IAotICAgIH0KLSAgICAKLXByb3RlY3RlZDoKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbXBs
ZW1lbnRzSGFzSW5zdGFuY2UgfCBET01Db25zdHJ1Y3Rvck9iamVjdDo6U3RydWN0dXJlRmxhZ3M7
Ci1FT0YKLQotICAgIGlmICgkY2FuQ29uc3RydWN0KSB7Ci0kaW1wbENvbnRlbnQgLj0gPDwgIkVP
RiI7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0JHtp
bnRlcmZhY2VOYW1lfShFeGVjU3RhdGUqIGV4ZWMpCi0gICAgewotRU9GCisgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiY2xhc3MgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0gOiBwdWJsaWMgRE9NQ29u
c3RydWN0b3JPYmplY3Qge1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAicHVibGljOlxu
Iik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICR7Y29uc3RydWN0b3JDbGFzc05hbWV9
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTtcblxuIik7CisKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7
XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYs
IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyBy
ZXR1cm4gJnNfaW5mbzsgfVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRp
YyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKKworICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAge1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlND
OjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCk7XG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgfVxuIik7CiAKLSAgICBteSAkY29uc3RydWN0b3JBcmcgPSAi
IjsKLSAgICBpZiAoJGNhbGxXaXRoIGFuZCAkY2FsbFdpdGggZXEgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQiKSB7Ci0gICAgICAgICRjb25zdHJ1Y3RvckFyZyA9ICJjb250ZXh0IjsKLSRpbXBsQ29u
dGVudCAuPSA8PCAiRU9GIjsKLSAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCA9IHN0YXRpY19jYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oZXhlYy0+Y2FsbGVlKCkp
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgICAgIGlmICghY29udGV4dCkKLSAgICAg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmVmZXJlbmNlRXJyb3IoZXhl
YywgIlJlZmVyZW5jZSBlcnJvciIpKTsKLUVPRgotICAgIH0KKyAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICJwcm90ZWN0ZWQ6XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU0M6OkltcGxlbWVudHNIYXNJbnN0YW5jZSB8IERPTUNvbnN0cnVjdG9yT2Jq
ZWN0OjpTdHJ1Y3R1cmVGbGFncztcbiIpOwogCi0kaW1wbENvbnRlbnQgLj0gPDwgIkVPRiI7Ci0g
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBzdGF0aWNf
Y2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSo+KGV4ZWMtPmNhbGxlZSgpKS0+Z2xvYmFsT2Jq
ZWN0KCksICR7aW50ZXJmYWNlTmFtZX06OmNyZWF0ZSgke2NvbnN0cnVjdG9yQXJnfSkpKSk7Ci0g
ICAgfQotICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCi0gICAgewotICAgICAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdCR7aW50ZXJmYWNlTmFtZX07Ci0gICAgICAgIHJldHVybiBD
b25zdHJ1Y3RUeXBlSG9zdDsKLSAgICB9Ci1FT0YKKyAgICBpZiAoJGNhbkNvbnN0cnVjdCkgewor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3Qke2NsYXNzTmFtZX0oSlNDOjpFeGVjU3RhdGUqKTtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdmlydHVhbCBKU0M6OkNvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTtcbiIpOwogICAg
IH0KLQotJGltcGxDb250ZW50IC49IDw8ICJFT0YiOwotfTsKLQotY29uc3QgQ2xhc3NJbmZvICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9OjpzX2luZm8gPSB7ICIke3Zpc2libGVDbGFzc05hbWV9Q29u
c3RydWN0b3IiLCAwLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgMCB9OwotCi1ib29s
ICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
LXsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9
LCBET01PYmplY3Q+KGV4ZWMsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn07XG5cbiIpOwog
fQogCi1ib29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK3N1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5p
dGlvbgogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8JHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX0sIERPTU9iamVjdD4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFi
bGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7Ci19CisgICAgbXkgJG91dHB1dEFy
cmF5ID0gc2hpZnQ7CisKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgbXkgJHByb3Rv
Q2xhc3NOYW1lID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBt
eSAkdmlzaWJsZUNsYXNzTmFtZSA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owor
CisgICAgbXkgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lID0gIiR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9y
IjsKKyAgICBteSAkY2FuQ29uc3RydWN0ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2FuQmVDb25zdHJ1Y3RlZCJ9OworICAgIG15ICRjdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiA9
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9u
In07CisgICAgbXkgJGNhbGxXaXRoID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q2FsbFdpdGgifTsKIAotRU9GCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiY29uc3QgQ2xhc3NJ
bmZvICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlQ2xhc3NO
YW1lfUNvbnN0cnVjdG9yXCIsIDAsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCAwIH07
XG5cbiIpOwogCi0gICAgJGltcGxKU0NJbmNsdWRleyJKU051bWJlckNlbGwuaCJ9ID0gMTsgIyBG
SVhNRTogV2hhdCBpcyB0aGlzIGZvcj8KKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIke2NvbnN0
cnVjdG9yQ2xhc3NOYW1lfTo6JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CisgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX06OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xv
YmFsT2JqZWN0KVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CisgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJv
dG90eXBlLCAke3Byb3RvQ2xhc3NOYW1lfTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4i
KTsKKworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX06OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CisgICAgcHVzaChAJG91dHB1
dEFycmF5LCAie1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnZXRT
dGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0sIERPTU9iamVjdD4oZXhlYywg
JiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworCisgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiYm9vbCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICJ7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlRGVzY3JpcHRvcjwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgRE9NT2JqZWN0Pihl
eGVjLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yKTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAKLSAg
ICByZXR1cm4gJGltcGxDb250ZW50OworICAgIGlmICgkY2FuQ29uc3RydWN0KSB7CisgICAgICAg
IGlmICghJGN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uKSB7CisgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7Y29uc3RydWN0b3JDbGFz
c05hbWV9Ojpjb25zdHJ1Y3Qke2NsYXNzTmFtZX0oRXhlY1N0YXRlKiBleGVjKVxuIik7CisgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKKyAgICAgICAgICAgIG15ICRjb25z
dHJ1Y3RvckFyZyA9ICIiOworICAgICAgICAgICAgaWYgKCRjYWxsV2l0aCBhbmQgJGNhbGxXaXRo
IGVxICJTY3JpcHRFeGVjdXRpb25Db250ZXh0IikgeworICAgICAgICAgICAgICAgICRjb25zdHJ1
Y3RvckFyZyA9ICJjb250ZXh0IjsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0PCR7Y29u
c3RydWN0b3JDbGFzc05hbWV9Kj4oZXhlYy0+Y2FsbGVlKCkpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYg
KCFjb250ZXh0KVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGV4ZWMs
IFwiUmVmZXJlbmNlIGVycm9yXCIpKTtcbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3Qo
dG9KUyhleGVjLCBzdGF0aWNfY2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSo+KGV4ZWMtPmNh
bGxlZSgpKS0+Z2xvYmFsT2JqZWN0KCksICR7aW50ZXJmYWNlTmFtZX06OmNyZWF0ZSgke2NvbnN0
cnVjdG9yQXJnfSkpKSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1c
blxuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJDb25zdHJ1
Y3RUeXBlICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
e1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBjb25zdHJ1Y3REYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdCR7Y2xhc3NOYW1lfTtcbiIpOworICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0O1xuIik7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CisgICAgfQogfQogCiAxOwpJbmRleDog
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmlkbAkocmV2aXNpb24gNjEwNzApCisrKyBXZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDggQEAKIG1vZHVsZSB4
bWwgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCisgICAg
ICAgIENhbkJlQ29uc3RydWN0ZWQsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uLAog
ICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAg
ICBOb1N0YXRpY1RhYmxlcwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjEwOTYpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNi0xMyAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0cyBmb3IgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNTUwCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0IGNvbnN0
cnVjdG9yIG9iamVjdCBzaG91bGQgZXhwb3NlIHRoZSBjb25zdGFudHMgZnJvbSB0aGUgSURMLgor
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dDoKKwogMjAxMC0wNi0xMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlZCBXaW5kb3dzLXBsYXRmb3JtIHJlc3VsdHMgZm9yIHRoZSBmaXggZm9yIGJ1ZyA0
MDM5NC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjEwNzApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xOTIzLDYgKzE5MjMsMTEgQEAgd2luZG93Lldvcmtlci5wcm90b3R5
cGUucmVtb3ZlRXZlbnRMaXN0ZQogd2luZG93Lldvcmtlci5wcm90b3R5cGUudGVybWluYXRlIFtm
dW5jdGlvbl0KIHdpbmRvdy5YTUxEb2N1bWVudCBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRG9j
dW1lbnRdCiB3aW5kb3cuWE1MSHR0cFJlcXVlc3QgW29iamVjdCBYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yXQord2luZG93LlhNTEh0dHBSZXF1ZXN0LkRPTkUgW251bWJlcl0KK3dpbmRvdy5YTUxI
dHRwUmVxdWVzdC5IRUFERVJTX1JFQ0VJVkVEIFtudW1iZXJdCit3aW5kb3cuWE1MSHR0cFJlcXVl
c3QuTE9BRElORyBbbnVtYmVyXQord2luZG93LlhNTEh0dHBSZXF1ZXN0Lk9QRU5FRCBbbnVtYmVy
XQord2luZG93LlhNTEh0dHBSZXF1ZXN0LlVOU0VOVCBbbnVtYmVyXQogd2luZG93LlhNTEh0dHBS
ZXF1ZXN0LnByb3RvdHlwZSBbb2JqZWN0IFhNTEh0dHBSZXF1ZXN0UHJvdG90eXBlXQogd2luZG93
LlhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZS5ET05FIFtudW1iZXJdCiB3aW5kb3cuWE1MSHR0cFJl
cXVlc3QucHJvdG90eXBlLkhFQURFUlNfUkVDRUlWRUQgW251bWJlcl0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58608</attachid>
            <date>2010-06-13 17:32:46 -0700</date>
            <delta_ts>2010-06-13 19:23:58 -0700</delta_ts>
            <desc>Updated patch with new test</desc>
            <filename>update.diff</filename>
            <type>text/plain</type>
            <size>35215</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTA5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDYtMTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDU1MAorICAgICAgICBY
TUxIdHRwUmVxdWVzdCBjb25zdHJ1Y3RvciBvYmplY3Qgc2hvdWxkIGV4cG9zZSB0aGUgY29uc3Rh
bnRzIGZyb20gdGhlIElETC4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9YTUxIdHRwUmVxdWVz
dC1jb25zdGFudHMuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5qc2NiaW5kaW5ncy5tazoKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNY
TUxIdHRwUmVxdWVzdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbDoKKwogMjAxMC0wNi0xMyAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsJKHJldmlzaW9uIDYx
MDcwKQorKysgV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTgsNyArMTU4LDYgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAotCWJpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAgXAogCWJpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
VXBsb2FkQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0
b3IuY3BwIFwKSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNjEwNzApCisrKyBXZWJDb3JlL0NNYWtlTGlz
dHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NDYsNyArNjQ2LDYgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuY3BwCiAgICAgYmluZGluZ3MvanMv
SlNXb3JrZXJDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAKSW5kZXg6IFdlYkNvcmUvR05V
bWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNp
b24gNjEwNzApCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01
MTIsOCArNTEyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBS
ZXF1ZXN0Q29uc3RydWN0b3IuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBs
b2FkQ3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25z
dHJ1Y3Rvci5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDYxMDcwKQorKysgV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTY1MCw4ICs2NTAsNiBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAnLAotICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcCcsCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9u
IDYxMDcwKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMzM5LDcg
KzMzOSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3Rv
bS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3Bw
IFwKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIFwKLSAgICBi
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwIFwKICAgICBiaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luQ3Vz
dG9tLmNwcCBcCkBAIC0xMDgzLDcgKzEwODIsNiBAQCBIRUFERVJTICs9IFwKICAgICBiaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmggXAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuaCBcCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVy
LmggXAotICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oIFwKICAg
ICBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5n
cy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAogICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFj
dGlvbi5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNp
b24gNjEwNzApCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTYwNCw2MiArNDE2MDQsNiBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4N
CiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yLmNwcCINCi0JCQkJCT4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KLQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdp
bjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8
VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQot
CQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQot
CQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
LQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0K
LQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0K
LQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oIg0KLQkJCQkJ
Pg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDYxMDcwKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQzNTcsOCArNDM1Nyw2IEBACiAJCUJDMzQ4
QkJFMERCN0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzQ4QkJEMERCN0Y1MzEw
MDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkMzNDhCRDMw
REI3RjgwNDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzNDhCRDEwREI3RjgwNDAwNEFCQUI5IC8q
IEpTWE1MSHR0cFJlcXVlc3QuY3BwICovOyB9OwogCQlCQzM0OEJENDBEQjdGODA0MDA0QUJBQjkg
LyogSlNYTUxIdHRwUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMzNDhCRDIwREI3RjgwNDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3Qu
aCAqLzsgfTsKLQkJQkMzNDhCRTkwREI4MDM1NDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3RD
b25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzM0OEJFNzBEQjgwMzU0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVj
dG9yLmNwcCAqLzsgfTsKLQkJQkMzNDhCRUEwREI4MDM1NDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJl
cXVlc3RDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMzNDhCRTgwREI4MDM1NDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3RDb25z
dHJ1Y3Rvci5oICovOyB9OwogCQlCQzNCQzI5QzBFOTFBQjBGMDA4MzU1ODggLyogSG9zdFdpbmRv
dy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQkMy
OUIwRTkxQUIwRjAwODM1NTg4IC8qIEhvc3RXaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzNCRTEyQjBFOTgwOTJGMDA4MzU1ODggLyog
UG9wdXBNZW51U3R5bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDM0JFMTJBMEU5ODA5MkYwMDgzNTU4OCAvKiBQb3B1cE1lbnVTdHlsZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDM0JFOTkzMEU5
QzFDN0MwMDgzNTU4OCAvKiBSZW5kZXJTY3JvbGxiYXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzQkU5OTAwRTlDMUM3QzAwODM1NTg4IC8qIFJl
bmRlclNjcm9sbGJhci5jcHAgKi87IH07CkBAIC04MTM2LDcgKzgxMzQsNyBAQAogCQk5M0YxOUIx
QTA4MjQ1RTVBMDAxRTlBQkMgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRl
SW5JbmRleCA9IDA7IHBhdGggPSBXZWJDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJOTNGMUQzMUEwNTU4Q0M1QzAwODIxQkMwIC8qIGxpYmljdWNv
cmUuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYmljdWNvcmUuZHlsaWI7IHBhdGgg
PSAvdXNyL2xpYi9saWJpY3Vjb3JlLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9
OwogCQk5M0Y4QjMwNTBBMzAwRkUxMDBGNjFBQjggLyogQ29kZUdlbmVyYXRvci5wbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuc2NyaXB0LnBlcmw7IG5hbWUgPSBDb2RlR2VuZXJhdG9yLnBtOyBwYXRoID0gc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yLnBtOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0Y4
QjMwNjBBMzAwRkVBMDBGNjFBQjggLyogQ29kZUdlbmVyYXRvckpTLnBtICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5zY3JpcHQucGVybDsgbmFtZSA9IENvZGVHZW5lcmF0b3JKUy5wbTsgcGF0aCA9IC4uL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y4
QjMwNjBBMzAwRkVBMDBGNjFBQjggLyogQ29kZUdlbmVyYXRvckpTLnBtICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5zY3JpcHQucGVybDsgbmFtZSA9IENvZGVHZW5lcmF0b3JKUy5wbTsgcGF0aCA9IC4uL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB3cmFwc0xpbmVz
ID0gMDsgfTsKIAkJOTNGOEIzMDcwQTMwMEZFQTAwRjYxQUI4IC8qIGdlbmVyYXRlLWJpbmRpbmdz
LnBsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgbmFtZSA9ICJnZW5lcmF0ZS1iaW5kaW5n
cy5wbCI7IHBhdGggPSAic2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzRjhCMzA4MEEzMDBGRUEwMEY2MUFCOCAvKiBJRExTdHJ1Y3R1
cmUucG0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBuYW1lID0gSURMU3RydWN0dXJlLnBt
OyBwYXRoID0gc2NyaXB0cy9JRExTdHJ1Y3R1cmUucG07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjkyNTQxMEY3RUY1QjgwMDdFMzdDOSAvKiBDaGVja2VkUmFkaW9CdXR0b25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoZWNrZWRSYWRpb0J1dHRvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk4NzQsOCArOTg3Miw2IEBACiAJCUJDMzQ4
QkJEMERCN0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzM0OEJEMTBEQjdGODA0MDA0QUJBQjkg
LyogSlNYTUxIdHRwUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1hNTEh0dHBSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMzNDhCRDIwREI3RjgwNDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYTUxIdHRwUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQzM0OEJFNzBEQjgwMzU0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVx
dWVzdENvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDMzQ4QkU4MERCODAzNTQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q29uc3Ry
dWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNYTUxIdHRwUmVxdWVz
dENvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDM0JDMjlCMEU5
MUFCMEYwMDgzNTU4OCAvKiBIb3N0V2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhvc3RXaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQkUx
MkEwRTk4MDkyRjAwODM1NTg4IC8qIFBvcHVwTWVudVN0eWxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBvcHVwTWVudVN0eWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDM0JFOTkwMEU5QzFDN0MwMDgzNTU4OCAvKiBSZW5kZXJTY3JvbGxiYXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU2Nyb2xsYmFyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODc0LDggKzE1ODcwLDYgQEAKIAkJCQk1
MThBMzRDNTEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5oICovLAog
CQkJCUUxQ0E1Q0Q1MEU4Q0RFRTkwMEU4RUY5MCAvKiBKU1dvcmtlckNvbnN0cnVjdG9yLmNwcCAq
LywKIAkJCQlFMUNBNUNEMjBFOENERTgwMDBFOEVGOTAgLyogSlNXb3JrZXJDb25zdHJ1Y3Rvci5o
ICovLAotCQkJCUJDMzQ4QkU3MERCODAzNTQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q29u
c3RydWN0b3IuY3BwICovLAotCQkJCUJDMzQ4QkU4MERCODAzNTQwMDRBQkFCOSAvKiBKU1hNTEh0
dHBSZXF1ZXN0Q29uc3RydWN0b3IuaCAqLywKIAkJCQlCQ0U5OUVDMTBEQ0E2MjQxMDAxODI2ODMg
LyogSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwICovLAogCQkJCUJDRTk5RUMyMERDQTYy
NDEwMDE4MjY4MyAvKiBKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5oICovLAogCQkJKTsKQEAg
LTE4NjI5LDcgKzE4NjIzLDYgQEAKIAkJCQlFMUMzNjJFRjBFQUYyQUE5MDA3NDEwQkMgLyogSlNX
b3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBNTgwRUVFQ0RFNDAwRjYx
MjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzM0OEJENDBE
QjdGODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QkMzNDhCRUEwREI4MDM1NDAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY5MTZDNDhFMERCNTEwRjgw
MDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNERkQ0OTYwRTMwNTkyRjAwOUQxMEFEIC8qIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjEwMzIsNyArMjEwMjUsNiBAQAogCQkJCUUxQzM2MkYwMEVB
RjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUxMjcxQTU5MEVFRUNERTQwMEY2MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzM0OEJEMzBEQjdGODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVz
dC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQzM0OEJFOTBEQjgwMzU0MDA0QUJBQjkgLyogSlNY
TUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzQ4QkJF
MERCN0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNjBEQTM5MEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY5MTZDNDhEMERCNTEwRjgwMDc2Q0Q4MyAv
KiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDYx
MDcwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjcsNyArMTI3LDYgQEAKICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5jcHAiCiAj
aW5jbHVkZSAiSlNXb3JrZXJDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RD
b25zdHJ1Y3Rvci5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNY
U0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwIgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAJKHJldmlzaW9uIDYxMDcwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcg
QEAKICNpbmNsdWRlICJKU1dlYlNvY2tldENvbnN0cnVjdG9yLmgiCiAjZW5kaWYKICNpbmNsdWRl
ICJKU1dvcmtlckNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yLmgiCisjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5oIgogI2luY2x1ZGUgIkpTWFNM
VFByb2Nlc3NvckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiTG9jYXRpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVBsYXllci5oIgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gNjEwNzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcg
QEAKICNpbmNsdWRlICJKU1dlYlNvY2tldENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNXb3Jr
ZXJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkpTV29ya2VyTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAi
SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVz
dC5oIgogI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRl
eHQuaCIKICNpbmNsdWRlICJXb3JrZXJMb2NhdGlvbi5oIgpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24g
NjEwNzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
IENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEBueXBvcC5j
b20+Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmgiCi0KLSNpbmNsdWRlICJK
U1hNTEh0dHBSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgot
I2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgot
Ci11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUFTU0VSVF9D
TEFTU19GSVRTX0lOX0NFTEwoSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKTsKLQotY29uc3Qg
Q2xhc3NJbmZvIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiWE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKLQotSlNYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yOjpKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3Qo
SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0
LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXREaXJlY3QoZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNYTUxIdHRwUmVxdWVzdFByb3RvdHlwZTo6
c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0WE1MSHR0cFJlcXVlc3QoRXhlY1N0YXRlKiBleGVj
KQotewotICAgIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0
YXRpY19jYXN0PEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsK
LSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiWE1MSHR0cFJl
cXVlc3QgY29uc3RydWN0b3IgYXNzb2NpYXRlZCBkb2N1bWVudCBpcyB1bmF2YWlsYWJsZSIpKTsK
LQotICAgIFJlZlB0cjxYTUxIdHRwUmVxdWVzdD4geG1sSHR0cFJlcXVlc3QgPSBYTUxIdHRwUmVx
dWVzdDo6Y3JlYXRlKGNvbnRleHQpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRF
X0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwg
WE1MSHR0cFJlcXVlc3QsIHhtbEh0dHBSZXF1ZXN0LmdldCgpKSk7Ci19Ci0KLUNvbnN0cnVjdFR5
cGUgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjb25zdHJ1Y3RYTUxIdHRwUmVxdWVzdDsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhv
c3Q7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNjEwNzAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDUsIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAbnlwb3AuY29tPgotICoKLSAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAg
MDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRlZiBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0
b3JfaAotI2RlZmluZSBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3JfaAotCi0jaW5jbHVkZSAi
SlNET01CaW5kaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKLXB1Ymxp
YzoKLSAgICBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCopOwotICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87
Ci1wcml2YXRlOgotICAgIHZpcnR1YWwgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERh
dGEoSlNDOjpDb25zdHJ1Y3REYXRhJik7Ci0gICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5m
byogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yX2gK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cAkocmV2aXNpb24gNjEwNzApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNCArMTI3LDE1IEBAIEpTVmFsdWUg
SlNYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KEUKICAgICByZXR1cm4ganNPd25lZFN0cmlu
Z09yTnVsbChleGVjLCBpbXBsKCktPnJlc3BvbnNlVGV4dCgpKTsKIH0KIAorRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
WE1MSHR0cFJlcXVlc3QoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTWE1MSHR0cFJlcXVlc3RD
b25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTWE1MSHR0cFJlcXVlc3RD
b25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVS
ZWZlcmVuY2VFcnJvcihleGVjLCAiWE1MSHR0cFJlcXVlc3QgY29uc3RydWN0b3IgYXNzb2NpYXRl
ZCBkb2N1bWVudCBpcyB1bmF2YWlsYWJsZSIpKTsKKworICAgIFJlZlB0cjxYTUxIdHRwUmVxdWVz
dD4geG1sSHR0cFJlcXVlc3QgPSBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBq
c0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgWE1MSHR0cFJlcXVlc3QsIHhtbEh0dHBSZXF1
ZXN0LmdldCgpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNjEwNzApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNv
cHkpCkBAIC05ODQsNiArOTg0LDEyIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIn07XG5cbiIpOwogCisgICAgIyBDb25kaXRpb25hbGx5IGVtaXQgdGhl
IGNvbnN0cnVjdG9yIG9iamVjdCdzIGRlY2xhcmF0aW9uCisgICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uIn0pIHsKKyAgICAgICAg
R2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKFxAaGVhZGVyQ29udGVudCwgJGNsYXNzTmFt
ZSwgJGRhdGFOb2RlKTsKKyAgICB9CisKKwogICAgIGlmICgkbnVtRnVuY3Rpb25zID4gMCkgewog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCIvLyBGdW5jdGlvbnNcblxuIik7CiAgICAgICAg
IGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewpAQCAtMTIz
MSwxMCArMTIzNywxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcQGhhc2hLZXlzLCBcQGhhc2hTcGVjaWFscywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIp
OwogCi0gICAgICAgIG15ICRwcm90b0NsYXNzTmFtZTsKLSAgICAgICAgJHByb3RvQ2xhc3NOYW1l
ID0gIiR7Y2xhc3NOYW1lfVByb3RvdHlwZSI7CisgICAgICAgIG15ICRwcm90b0NsYXNzTmFtZSA9
ICIke2NsYXNzTmFtZX1Qcm90b3R5cGUiOwogCi0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCBj
b25zdHJ1Y3RvckZvcigkY2xhc3NOYW1lLCAkcHJvdG9DbGFzc05hbWUsICRpbnRlcmZhY2VOYW1l
LCAkdmlzaWJsZUNsYXNzTmFtZSwgJGRhdGFOb2RlKSk7CisgICAgICAgIEdlbmVyYXRlQ29uc3Ry
dWN0b3JEZWNsYXJhdGlvbihcQGltcGxDb250ZW50LCAkY2xhc3NOYW1lLCAkZGF0YU5vZGUpIHVu
bGVzcyAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RGdW5j
dGlvbiJ9OworICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbihcQGltcGxDb250
ZW50LCAkY2xhc3NOYW1lLCAkcHJvdG9DbGFzc05hbWUsICRpbnRlcmZhY2VOYW1lLCAkdmlzaWJs
ZUNsYXNzTmFtZSwgJGRhdGFOb2RlKTsKICAgICB9CiAKICAgICAjIC0gQWRkIGZ1bmN0aW9ucyBh
bmQgY29uc3RhbnRzIHRvIGEgaGFzaHRhYmxlIGRlZmluaXRpb24KQEAgLTI3MTIsODYgKzI3MTgs
OTQgQEAgc3ViIFdyaXRlRGF0YQogICAgIH0KIH0KIAotc3ViIGNvbnN0cnVjdG9yRm9yCitzdWIg
R2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uCiB7CisgICAgbXkgJG91dHB1dEFycmF5ID0g
c2hpZnQ7CiAgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OwotICAgIG15ICRwcm90b0NsYXNzTmFt
ZSA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7Ci0gICAgbXkgJHZpc2li
bGVDbGFzc05hbWUgPSBzaGlmdDsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKwogICAgIG15
ICRjb25zdHJ1Y3RvckNsYXNzTmFtZSA9ICIke2NsYXNzTmFtZX1Db25zdHJ1Y3RvciI7CiAgICAg
bXkgJGNhbkNvbnN0cnVjdCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbkJl
Q29uc3RydWN0ZWQifTsKICAgICBteSAkY2FsbFdpdGggPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDYWxsV2l0aCJ9OwogCi1teSAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKLWNs
YXNzICR7Y29uc3RydWN0b3JDbGFzc05hbWV9IDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0
IHsKLXB1YmxpYzoKLSAgICAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShFeGVjU3RhdGUqIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgICAgIDogRE9NQ29uc3RydWN0
b3JPYmplY3QoJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxP
YmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQotICAgIHsKLSAgICAgICAg
cHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsICR7cHJvdG9DbGFzc05h
bWV9OjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7Ci0g
ICAgfQotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOwotICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBj
b25zdCB7IHJldHVybiAmc19pbmZvOyB9Ci0gICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShK
U1ZhbHVlIHByb3RvKSAKLSAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50KTsgCi0gICAgfQotICAgIAotcHJvdGVjdGVkOgotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEltcGxl
bWVudHNIYXNJbnN0YW5jZSB8IERPTUNvbnN0cnVjdG9yT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsK
LUVPRgotCi0gICAgaWYgKCRjYW5Db25zdHJ1Y3QpIHsKLSRpbXBsQ29udGVudCAuPSA8PCAiRU9G
IjsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3Qke2lu
dGVyZmFjZU5hbWV9KEV4ZWNTdGF0ZSogZXhlYykKLSAgICB7Ci1FT0YKKyAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJjbGFzcyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSA6IHB1YmxpYyBET01Db25z
dHJ1Y3Rvck9iamVjdCB7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJwdWJsaWM6XG4i
KTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0o
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopO1xuXG4iKTsKKworICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtc
biIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwg
SlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJl
dHVybiAmc19pbmZvOyB9XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOworCisgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICB7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTtcbiIpOworICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKIAotICAgIG15ICRjb25zdHJ1Y3RvckFyZyA9ICIi
OwotICAgIGlmICgkY2FsbFdpdGggYW5kICRjYWxsV2l0aCBlcSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCIpIHsKLSAgICAgICAgJGNvbnN0cnVjdG9yQXJnID0gImNvbnRleHQiOwotJGltcGxDb250
ZW50IC49IDw8ICJFT0YiOwotICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
ID0gc3RhdGljX2Nhc3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qPihleGVjLT5jYWxsZWUoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICAgICAgaWYgKCFjb250ZXh0KQotICAgICAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVj
LCAiUmVmZXJlbmNlIGVycm9yIikpOwotRU9GCi0gICAgfQorICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgInByb3RlY3RlZDpcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzO1xuIik7CiAKLSRpbXBsQ29udGVudCAuPSA8PCAiRU9GIjsKLSAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIHN0YXRpY19j
YXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmpl
Y3QoKSwgJHtpbnRlcmZhY2VOYW1lfTo6Y3JlYXRlKCR7Y29uc3RydWN0b3JBcmd9KSkpKTsKLSAg
ICB9Ci0gICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0
RGF0YSYgY29uc3RydWN0RGF0YSkKLSAgICB7Ci0gICAgICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0JHtpbnRlcmZhY2VOYW1lfTsKLSAgICAgICAgcmV0dXJuIENv
bnN0cnVjdFR5cGVIb3N0OwotICAgIH0KLUVPRgorICAgIGlmICgkY2FuQ29uc3RydWN0KSB7Cisg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdCR7Y2xhc3NOYW1lfShKU0M6OkV4ZWNTdGF0ZSopO1xu
Iik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2aXJ0dWFsIEpTQzo6Q29uc3Ry
dWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpO1xuIik7CiAgICAg
fQotCi0kaW1wbENvbnRlbnQgLj0gPDwgIkVPRiI7Ci19OwotCi1jb25zdCBDbGFzc0luZm8gJHtj
b25zdHJ1Y3RvckNsYXNzTmFtZX06OnNfaW5mbyA9IHsgIiR7dmlzaWJsZUNsYXNzTmFtZX1Db25z
dHJ1Y3RvciIsIDAsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCAwIH07Ci0KLWJvb2wg
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQot
ewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0s
IERPTU9iamVjdD4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIHRoaXMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAifTtcblxuIik7CiB9
CiAKLWJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0
aW9uCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjwke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfSwgRE9NT2JqZWN0PihleGVjLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJs
ZSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKLX0KKyAgICBteSAkb3V0cHV0QXJy
YXkgPSBzaGlmdDsKKworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICBteSAkcHJvdG9D
bGFzc05hbWUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OworICAgIG15
ICR2aXNpYmxlQ2xhc3NOYW1lID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisK
KyAgICBteSAkY29uc3RydWN0b3JDbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9Q29uc3RydWN0b3Ii
OworICAgIG15ICRjYW5Db25zdHJ1Y3QgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDYW5CZUNvbnN0cnVjdGVkIn07CisgICAgbXkgJGN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uID0g
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24i
fTsKKyAgICBteSAkY2FsbFdpdGggPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
YWxsV2l0aCJ9OwogCi1FT0YKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJjb25zdCBDbGFzc0lu
Zm8gJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05h
bWV9Q29uc3RydWN0b3JcIiwgMCwgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIDAgfTtc
blxuIik7CiAKLSAgICAkaW1wbEpTQ0luY2x1ZGV7IkpTTnVtYmVyQ2VsbC5oIn0gPSAxOyAjIEZJ
WE1FOiBXaGF0IGlzIHRoaXMgZm9yPworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiR7Y29uc3Ry
dWN0b3JDbGFzc05hbWV9Ojoke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfShFeGVjU3RhdGUqIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdCgke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9i
YWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90
b3R5cGUsICR7cHJvdG9DbGFzc05hbWV9OjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIERvbnRE
ZWxldGUgfCBSZWFkT25seSk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIp
OworCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICJ7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlU2xvdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgRE9NT2JqZWN0PihleGVjLCAm
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtc
biIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CisKKyAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJib29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOworICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIntcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3Rh
dGljVmFsdWVEZXNjcmlwdG9yPCR7Y29uc3RydWN0b3JDbGFzc05hbWV9LCBET01PYmplY3Q+KGV4
ZWMsICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIAotICAg
IHJldHVybiAkaW1wbENvbnRlbnQ7CisgICAgaWYgKCRjYW5Db25zdHJ1Y3QpIHsKKyAgICAgICAg
aWYgKCEkY3VzdG9tQ29uc3RydWN0RnVuY3Rpb24pIHsKKyAgICAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtjb25zdHJ1Y3RvckNsYXNz
TmFtZX06OmNvbnN0cnVjdCR7Y2xhc3NOYW1lfShFeGVjU3RhdGUqIGV4ZWMpXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOworICAgICAgICAgICAgbXkgJGNvbnN0
cnVjdG9yQXJnID0gIiI7CisgICAgICAgICAgICBpZiAoJGNhbGxXaXRoIGFuZCAkY2FsbFdpdGgg
ZXEgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKSB7CisgICAgICAgICAgICAgICAgJGNvbnN0cnVj
dG9yQXJnID0gImNvbnRleHQiOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8JHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX0qPihleGVjLT5jYWxsZWUoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAo
IWNvbnRleHQpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmVmZXJlbmNlRXJyb3IoZXhlYywg
XCJSZWZlcmVuY2UgZXJyb3JcIikpO1xuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0
b0pTKGV4ZWMsIHN0YXRpY19jYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oZXhlYy0+Y2Fs
bGVlKCkpLT5nbG9iYWxPYmplY3QoKSwgJHtpbnRlcmZhY2VOYW1lfTo6Y3JlYXRlKCR7Y29uc3Ry
dWN0b3JBcmd9KSkpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxu
XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkNvbnN0cnVj
dFR5cGUgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0
RGF0YSYgY29uc3RydWN0RGF0YSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7
XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGNvbnN0cnVjdERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0JHtjbGFzc05hbWV9O1xuIik7CisgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7XG4iKTsKKyAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKKyAgICB9CiB9CiAKIDE7CkluZGV4OiBX
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaWRsCShyZXZpc2lvbiA2MTA3MCkKKysrIFdlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksOCBAQAogbW9kdWxlIHht
bCB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKKyAgICAg
ICAgQ2FuQmVDb25zdHJ1Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCiAg
ICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgRXZlbnRUYXJnZXQsCiAgICAgICAg
IE5vU3RhdGljVGFibGVzCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MTA5NikKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA2LTEzICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3RzIGZvciBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA1NTAKKyAgICAgICAgWE1MSHR0cFJlcXVlc3QgY29uc3Ry
dWN0b3Igb2JqZWN0IHNob3VsZCBleHBvc2UgdGhlIGNvbnN0YW50cyBmcm9tIHRoZSBJREwuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZG9tL1hNTEh0dHBSZXF1ZXN0LWNvbnN0YW50cy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1hNTEh0dHBSZXF1ZXN0LWNvbnN0YW50cy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQtdGVzdHMvWE1MSHR0cFJlcXVl
c3QtY29uc3RhbnRzLmpzOiBBZGRlZC4KKwogMjAxMC0wNi0xMyAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlZCBXaW5kb3dzLXBsYXRmb3JtIHJlc3VsdHMg
Zm9yIHRoZSBmaXggZm9yIGJ1ZyA0MDM5NC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1hN
TEh0dHBSZXF1ZXN0LWNvbnN0YW50cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vWE1MSHR0cFJlcXVlc3QtY29uc3RhbnRzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1hNTEh0dHBSZXF1ZXN0LWNvbnN0YW50
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcgQEAKK1RoaXMgdGVzdCBj
aGVja3MgdGhlIGNvbnN0YW50cyBvbiB0aGUgWE1MSHR0cFJlcXVzdCBvYmplY3QsIGFzIHdlbGwg
YXMgaXRzIHByb3RvdHlwZSBhbmQgY29uc3RydWN0b3IuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitUZXN0IHRoZSBjb25zdGFudHMgb24gdGhlIFhNTEh0dHBSZXF1ZXN0IG9iamVj
dCBpdHNlbGYuCitQQVNTIG5ldyBYTUxIdHRwUmVxdWVzdCgpLlVOU0VOVCBpcyAwCitQQVNTIG5l
dyBYTUxIdHRwUmVxdWVzdCgpLk9QRU5FRCBpcyAxCitQQVNTIG5ldyBYTUxIdHRwUmVxdWVzdCgp
LkhFQURFUlNfUkVDRUlWRUQgaXMgMgorUEFTUyBuZXcgWE1MSHR0cFJlcXVlc3QoKS5MT0FESU5H
IGlzIDMKK1BBU1MgbmV3IFhNTEh0dHBSZXF1ZXN0KCkuRE9ORSBpcyA0CitUZXN0IHRoZSBjb25z
dGFudHMgb24gdGhlIFhNTEh0dHBSZXF1ZXN0IHByb3RvdHlwZSBvYmplY3QuCitQQVNTIFhNTEh0
dHBSZXF1ZXN0LnByb3RvdHlwZS5VTlNFTlQgaXMgMAorUEFTUyBYTUxIdHRwUmVxdWVzdC5wcm90
b3R5cGUuT1BFTkVEIGlzIDEKK1BBU1MgWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLkhFQURFUlNf
UkVDRUlWRUQgaXMgMgorUEFTUyBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuTE9BRElORyBpcyAz
CitQQVNTIFhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZS5ET05FIGlzIDQKK1Rlc3QgdGhlIGNvbnN0
YW50cyBvbiB0aGUgWE1MSHR0cFJlcXVlc3QgY29uc3RydWN0b3Igb2JqZWN0LgorUEFTUyBYTUxI
dHRwUmVxdWVzdC5VTlNFTlQgaXMgMAorUEFTUyBYTUxIdHRwUmVxdWVzdC5PUEVORUQgaXMgMQor
UEFTUyBYTUxIdHRwUmVxdWVzdC5IRUFERVJTX1JFQ0VJVkVEIGlzIDIKK1BBU1MgWE1MSHR0cFJl
cXVlc3QuTE9BRElORyBpcyAzCitQQVNTIFhNTEh0dHBSZXF1ZXN0LkRPTkUgaXMgNAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL1hNTEh0dHBSZXF1ZXN0LWNvbnN0YW50cy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1hNTEh0dHBSZXF1ZXN0LWNvbnN0YW50cy5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vWE1MSHR0cFJlcXVlc3QtY29uc3Rh
bnRzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvWE1MSHR0cFJlcXVlc3QtY29uc3Rh
bnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gNjEwNzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOTIzLDYgKzE5
MjMsMTEgQEAgd2luZG93Lldvcmtlci5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZQogd2luZG93
Lldvcmtlci5wcm90b3R5cGUudGVybWluYXRlIFtmdW5jdGlvbl0KIHdpbmRvdy5YTUxEb2N1bWVu
dCBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRG9jdW1lbnRdCiB3aW5kb3cuWE1MSHR0cFJlcXVl
c3QgW29iamVjdCBYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yXQord2luZG93LlhNTEh0dHBSZXF1
ZXN0LkRPTkUgW251bWJlcl0KK3dpbmRvdy5YTUxIdHRwUmVxdWVzdC5IRUFERVJTX1JFQ0VJVkVE
IFtudW1iZXJdCit3aW5kb3cuWE1MSHR0cFJlcXVlc3QuTE9BRElORyBbbnVtYmVyXQord2luZG93
LlhNTEh0dHBSZXF1ZXN0Lk9QRU5FRCBbbnVtYmVyXQord2luZG93LlhNTEh0dHBSZXF1ZXN0LlVO
U0VOVCBbbnVtYmVyXQogd2luZG93LlhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZSBbb2JqZWN0IFhN
TEh0dHBSZXF1ZXN0UHJvdG90eXBlXQogd2luZG93LlhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZS5E
T05FIFtudW1iZXJdCiB3aW5kb3cuWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLkhFQURFUlNfUkVD
RUlWRUQgW251bWJlcl0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC1jb25zdGFudHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2NyaXB0LXRlc3RzL1hNTEh0dHBSZXF1ZXN0LWNvbnN0YW50cy5qcwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9YTUxIdHRwUmVxdWVzdC1j
b25zdGFudHMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKK2Rlc2NyaXB0aW9uKCJU
aGlzIHRlc3QgY2hlY2tzIHRoZSBjb25zdGFudHMgb24gdGhlIFhNTEh0dHBSZXF1c3Qgb2JqZWN0
LCBhcyB3ZWxsIGFzIGl0cyBwcm90b3R5cGUgYW5kIGNvbnN0cnVjdG9yLiIpOworCitkZWJ1Zygi
VGVzdCB0aGUgY29uc3RhbnRzIG9uIHRoZSBYTUxIdHRwUmVxdWVzdCBvYmplY3QgaXRzZWxmLiIp
CitzaG91bGRCZSgibmV3IFhNTEh0dHBSZXF1ZXN0KCkuVU5TRU5UIiwgIjAiKTsKK3Nob3VsZEJl
KCJuZXcgWE1MSHR0cFJlcXVlc3QoKS5PUEVORUQiLCAiMSIpOworc2hvdWxkQmUoIm5ldyBYTUxI
dHRwUmVxdWVzdCgpLkhFQURFUlNfUkVDRUlWRUQiLCAiMiIpOworc2hvdWxkQmUoIm5ldyBYTUxI
dHRwUmVxdWVzdCgpLkxPQURJTkciLCAiMyIpOworc2hvdWxkQmUoIm5ldyBYTUxIdHRwUmVxdWVz
dCgpLkRPTkUiLCAiNCIpOworCitkZWJ1ZygiVGVzdCB0aGUgY29uc3RhbnRzIG9uIHRoZSBYTUxI
dHRwUmVxdWVzdCBwcm90b3R5cGUgb2JqZWN0LiIpCitzaG91bGRCZSgiWE1MSHR0cFJlcXVlc3Qu
cHJvdG90eXBlLlVOU0VOVCIsICIwIik7CitzaG91bGRCZSgiWE1MSHR0cFJlcXVlc3QucHJvdG90
eXBlLk9QRU5FRCIsICIxIik7CitzaG91bGRCZSgiWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLkhF
QURFUlNfUkVDRUlWRUQiLCAiMiIpOworc2hvdWxkQmUoIlhNTEh0dHBSZXF1ZXN0LnByb3RvdHlw
ZS5MT0FESU5HIiwgIjMiKTsKK3Nob3VsZEJlKCJYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuRE9O
RSIsICI0Iik7CisKK2RlYnVnKCJUZXN0IHRoZSBjb25zdGFudHMgb24gdGhlIFhNTEh0dHBSZXF1
ZXN0IGNvbnN0cnVjdG9yIG9iamVjdC4iKQorc2hvdWxkQmUoIlhNTEh0dHBSZXF1ZXN0LlVOU0VO
VCIsICIwIik7CitzaG91bGRCZSgiWE1MSHR0cFJlcXVlc3QuT1BFTkVEIiwgIjEiKTsKK3Nob3Vs
ZEJlKCJYTUxIdHRwUmVxdWVzdC5IRUFERVJTX1JFQ0VJVkVEIiwgIjIiKTsKK3Nob3VsZEJlKCJY
TUxIdHRwUmVxdWVzdC5MT0FESU5HIiwgIjMiKTsKK3Nob3VsZEJlKCJYTUxIdHRwUmVxdWVzdC5E
T05FIiwgIjQiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="44982"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>