<?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>45695</bug_id>
          
          <creation_ts>2010-09-13 12:15:12 -0700</creation_ts>
          <short_desc>Preparation for eliminating deprecatedParseURL</short_desc>
          <delta_ts>2010-09-13 16:42:22 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>26599</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>278382</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 12:15:12 -0700</bug_when>
    <thetext>Preparation for eliminating deprecatedParseURL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278392</commentid>
    <comment_count>1</comment_count>
      <attachid>67451</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 12:23:04 -0700</bug_when>
    <thetext>Created attachment 67451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278412</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-13 12:53:21 -0700</bug_when>
    <thetext>Attachment 67451 did not build on qt:
Build output: http://queues.webkit.org/results/3989080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278419</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 13:13:05 -0700</bug_when>
    <thetext>I’ll have to add an include to make things compile on Qt.

    HTMLParserIdioms.cpp:82: error: &apos;isfinite&apos; was not declared in this scope

&lt;math.h&gt; or &lt;wtf/MathExtras.h&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278491</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-13 14:50:01 -0700</bug_when>
    <thetext>Attachment 67451 did not build on chromium:
Build output: http://queues.webkit.org/results/3938448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278493</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 14:51:16 -0700</bug_when>
    <thetext>Chromium build issue is the same as the Qt one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278494</commentid>
    <comment_count>6</comment_count>
      <attachid>67451</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 14:59:53 -0700</bug_when>
    <thetext>Comment on attachment 67451
Patch

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

&gt; JavaScriptCore/wtf/text/WTFString.h:56
&gt; +struct StringHash;
Not sure how this is related.

&gt; WebCore/html/parser/HTMLParserIdioms.h:38
&gt; +// Strip leading and trailing whitespace as defined by the HTML specification. 
&gt; +String stripLeadingAndTrailingHTMLSpaces(const String&amp;);
This function doesn&apos;t seem to be used yet, but presumably that&apos;s the next step?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278497</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-13 15:05:39 -0700</bug_when>
    <thetext>Attachment 67451 did not build on gtk:
Build output: http://queues.webkit.org/results/3964437</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278558</commentid>
    <comment_count>8</comment_count>
      <attachid>67451</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 16:11:22 -0700</bug_when>
    <thetext>Comment on attachment 67451
Patch

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

Thanks for the review.

&gt; JavaScriptCore/wtf/text/WTFString.h:56
&gt; +struct StringHash;
Just moved this up to the top of the file where the other forward class declarations are instead of down at the bottom of the file where it’s used.

&gt; WebCore/html/parser/HTMLParserIdioms.h:38
&gt; +String stripLeadingAndTrailingHTMLSpaces(const String&amp;);
Yes. I considered calling it at one particular call site, but on balance decided it was OK to land without that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278568</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 16:42:22 -0700</bug_when>
    <thetext>Committed r67423: &lt;http://trac.webkit.org/changeset/67423&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67451</attachid>
            <date>2010-09-13 12:23:04 -0700</date>
            <delta_ts>2010-09-13 16:11:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45695-20100913122302.patch</filename>
            <type>text/plain</type>
            <size>32283</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3NDAyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDktMTMgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFByZXBhcmF0aW9uIGZvciBlbGltaW5hdGluZyBkZXByZWNhdGVkUGFy
c2VVUkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
Njk1CisKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDogQWRkZWQgaXNBbGxTcGVjaWFs
Q2hhcmFjdGVycywgbW92ZWQgaGVyZSBmcm9tCisgICAgICAgIHRoZSBIVE1MIHRyZWUgYnVpbGRl
ci4KKwogMjAxMC0wOS0xMyAgRGFyaW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogSmF2YVNjcmlwdENvcmUvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
V1RGU3RyaW5nLmgJKHJldmlzaW9uIDY3NDAyKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
V1RGU3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgQlN0cmlu
ZzsKIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBDU3RyaW5nOworc3RydWN0IFN0cmluZ0hhc2g7
CiAKIC8vIERlY2xhcmF0aW9ucyBvZiBzdHJpbmcgb3BlcmF0aW9ucwogCkBAIC03Miw2ICs3Myw4
IEBAIGludHB0cl90IGNoYXJhY3RlcnNUb0ludFB0cihjb25zdCBVQ2hhcioKIGRvdWJsZSBjaGFy
YWN0ZXJzVG9Eb3VibGUoY29uc3QgVUNoYXIqLCBzaXplX3QsIGJvb2wqIG9rID0gMCk7CiBmbG9h
dCBjaGFyYWN0ZXJzVG9GbG9hdChjb25zdCBVQ2hhciosIHNpemVfdCwgYm9vbCogb2sgPSAwKTsK
IAordGVtcGxhdGU8Ym9vbCBpc1NwZWNpYWxDaGFyYWN0ZXIoVUNoYXIpPiBib29sIGlzQWxsU3Bl
Y2lhbENoYXJhY3RlcnMoY29uc3QgVUNoYXIqLCBzaXplX3QpOworCiBjbGFzcyBTdHJpbmcgewog
cHVibGljOgogICAgIC8vIENvbnN0cnVjdCBhIG51bGwgc3RyaW5nLCBkaXN0aW5ndWlzaGFibGUg
ZnJvbSBhbiBlbXB0eSBzdHJpbmcuCkBAIC0yMjAsNiArMjIzLDcgQEAgcHVibGljOgogICAgIFN0
cmluZyBzaW1wbGlmeVdoaXRlU3BhY2UoKSBjb25zdDsKIAogICAgIFN0cmluZyByZW1vdmVDaGFy
YWN0ZXJzKENoYXJhY3Rlck1hdGNoRnVuY3Rpb25QdHIpIGNvbnN0OworICAgIHRlbXBsYXRlPGJv
b2wgaXNTcGVjaWFsQ2hhcmFjdGVyKFVDaGFyKT4gYm9vbCBpc0FsbFNwZWNpYWxDaGFyYWN0ZXJz
KCkgY29uc3Q7CiAKICAgICAvLyBSZXR1cm4gdGhlIHN0cmluZyB3aXRoIGNhc2UgZm9sZGVkIGZv
ciBjYXNlIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24uCiAgICAgU3RyaW5nIGZvbGRDYXNlKCkgY29u
c3Q7CkBAIC00MjMsNyArNDI3LDE5IEBAIGlubGluZSB2b2lkIGFwcGVuZE51bWJlcihWZWN0b3I8
VUNoYXI+JiAKICAgICB9CiB9CiAKLXN0cnVjdCBTdHJpbmdIYXNoOwordGVtcGxhdGU8Ym9vbCBp
c1NwZWNpYWxDaGFyYWN0ZXIoVUNoYXIpPiBpbmxpbmUgYm9vbCBpc0FsbFNwZWNpYWxDaGFyYWN0
ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3RoKQoreworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCFpc1NwZWNpYWxD
aGFyYWN0ZXIoY2hhcmFjdGVyc1tpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworfQorCit0ZW1wbGF0ZTxib29sIGlzU3BlY2lhbENoYXJhY3Rl
cihVQ2hhcik+IGlubGluZSBib29sIFN0cmluZzo6aXNBbGxTcGVjaWFsQ2hhcmFjdGVycygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIFdURjo6aXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxpc1NwZWNpYWxD
aGFyYWN0ZXI+KGNoYXJhY3RlcnMoKSwgbGVuZ3RoKCkpOworfQogCiAvLyBTdHJpbmdIYXNoIGlz
IHRoZSBkZWZhdWx0IGhhc2ggZm9yIFN0cmluZwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IERlZmF1bHRIYXNoOwpAQCAtNDQwLDE3ICs0NTYsMTcgQEAgdGVtcGxhdGUgPD4gc3RydWN0IFZl
Y3RvclRyYWl0czxTdHJpbmc+IAogCiB1c2luZyBXVEY6OkNTdHJpbmc7CiB1c2luZyBXVEY6OlN0
cmluZzsKLQotdXNpbmcgV1RGOjppc1NwYWNlT3JOZXdsaW5lOwotdXNpbmcgV1RGOjpmaW5kOwot
dXNpbmcgV1RGOjpyZXZlcnNlRmluZDsKIHVzaW5nIFdURjo6YXBwZW5kOwogdXNpbmcgV1RGOjph
cHBlbmROdW1iZXI7Ci11c2luZyBXVEY6OmVxdWFsOwotdXNpbmcgV1RGOjplcXVhbElnbm9yaW5n
Q2FzZTsKIHVzaW5nIFdURjo6Y2hhcmFjdGVyc0FyZUFsbEFTQ0lJOwotdXNpbmcgV1RGOjpjaGFy
YWN0ZXJzVG9JbnQ7Ci11c2luZyBXVEY6OmNoYXJhY3RlcnNUb0Zsb2F0OwogdXNpbmcgV1RGOjpj
aGFyYWN0ZXJzVG9Eb3VibGU7Cit1c2luZyBXVEY6OmNoYXJhY3RlcnNUb0Zsb2F0OwordXNpbmcg
V1RGOjpjaGFyYWN0ZXJzVG9JbnQ7Cit1c2luZyBXVEY6OmVxdWFsOwordXNpbmcgV1RGOjplcXVh
bElnbm9yaW5nQ2FzZTsKK3VzaW5nIFdURjo6ZmluZDsKK3VzaW5nIFdURjo6aXNBbGxTcGVjaWFs
Q2hhcmFjdGVyczsKK3VzaW5nIFdURjo6aXNTcGFjZU9yTmV3bGluZTsKK3VzaW5nIFdURjo6cmV2
ZXJzZUZpbmQ7CiAKICNlbmRpZgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY3NDAyKQorKysgV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOS0xMyAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUHJlcGFyYXRpb24gZm9yIGVsaW1pbmF0aW5nIGRlcHJlY2F0ZWRQYXJz
ZVVSTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU2
OTUKKworICAgICAgICBBZGRlZCBuZXcgSFRNTFBhcnNlcklkaW9tcyBzb3VyY2UgZmlsZSwgd2l0
aCBhIG5hbWUgaW5zcGlyZWQgYnkgdGhlIEhUTUwKKyAgICAgICAgc3BlY2lmaWNhdGlvbiwgd2hp
Y2ggaGFzIGEgc2VjdGlvbiBkZWZpbmluZyB0aGluZ3MgbGlrZSAic3BhY2UgY2hhcmFjdGVyIgor
ICAgICAgICB0aGF0IHRhbGtzIGFib3V0IGNvbW1vbiBwYXJzZXIgaWRpb21zLiBUaGVzZSBhcmUg
aWRpb21zIGZvciB0aGUgbWFpbiBIVE1MCisgICAgICAgIHBhcnNlciBhbmQgZm9yIHBhcnNlcnMg
Zm9yIHZhcmlvdXMgbWljcm9sYW5ndWFnZXMgYXMgd2VsbC4KKworICAgICAgICAqIEFuZHJvaWQu
bWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkZWQgSFRNTFBhcnNlcklkaW9tcy4K
KworICAgICAgICAqIGNzcy9DU1NIZWxwZXIuaDogRml4ZWQgaW5kZW50YXRpb24gYW5kIGNvbW1l
bnRzIGhlcmUuIFBvaW50IHRvIHRoZSBuZXcKKyAgICAgICAgc3RyaXBMZWFkaW5nQW5kVHJhaWxp
bmdIVE1MU3BhY2VzIGZ1bmN0aW9uLgorCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFBhcnNl
cklkaW9tcy5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlv
bXMuaDogQWRkZWQuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpFeHRlcm5hbENoYXJhY3RlclRv
a2VuQnVmZmVyOjpza2lwTGVhZGluZ1doaXRlc3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRyZWVCdWlsZGVyOjpFeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyOjp0YWtlTGVhZGluZ1do
aXRlc3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpFeHRlcm5hbENo
YXJhY3RlclRva2VuQnVmZmVyOjp0YWtlTGVhZGluZ05vbldoaXRlc3BhY2UpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpFeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyOjp0
YWtlUmVtYWluaW5nV2hpdGVzcGFjZSk6CisgICAgICAgIFVwZGF0ZWQgZm9yIG5hbWUgY2hhbmdl
cy4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOiBNb3ZlZCBmdW5j
dGlvbnMgdG8gSFRNTFBhcnNlcklkaW9tcy5oLgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAg
ICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9TdGVwUmFu
Z2UuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICBV
cGRhdGVkIGluY2x1ZGVzLgorCisgICAgICAgICogc3ZnL1NWR0ltYWdlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlTG9hZGVyOjpzb3VyY2VVUkkpOiBGaXhlZCBpbmNvcnJl
Y3QgdXNlIG9mIGRlcHJlY2F0ZWRQYXJzZVVSTC4KKyAgICAgICAgVGhpcyBpcyBmb3IgdXNlIG9u
IHRoZSBhdHRyaWJ1dGUgdmFsdWUgYmVmb3JlIGJ1aWxkaW5nIHRoZSBVUkwsIG5vdCBvbiB0aGUg
VVJMCisgICAgICAgIGFmdGVyIGJ1aWxkaW5nIGl0LiBJIGRpZCBub3QgYWRkIGEgdGVzdCBjYXNl
OyB0aGlzIGlzIGFuIG9ic2N1cmUgY29ybmVyIGFuZCBzb29uCisgICAgICAgIHdlIHdpbGwgYmUg
bW92aW5nIHRvIHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyBhbnl3YXkuCisgICAg
ICAgICogd21sL1dNTEltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTEltYWdl
TG9hZGVyOjpzb3VyY2VVUkkpOiBEaXR0by4KKwogMjAxMC0wOS0xMyAgQWxlamFuZHJvIEcuIENh
c3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbi4KSW5kZXg6IFdlYkNvcmUvQW5kcm9pZC5tawo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0FuZHJvaWQubWsJKHJldmlzaW9uIDY3NDAyKQorKysgV2ViQ29yZS9BbmRyb2lk
Lm1rCSh3b3JraW5nIGNvcHkpCkBAIC0yOTksNiArMjk5LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9
ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAg
XAogCWh0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwIFwKIAlodG1sL3BhcnNlci9IVE1M
Rm9ybWF0dGluZ0VsZW1lbnRMaXN0LmNwcCBcCisJaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9t
cy5jcHAgXAogCWh0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwIFwKIAlodG1sL3Bh
cnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIFwKIAlodG1sL3BhcnNlci9IVE1MU2NyaXB0UnVu
bmVyLmNwcCBcCkluZGV4OiBXZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDY3NDAyKQorKysgV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTA0Nyw2ICsxMDQ3LDcgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGh0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCiAgICAgaHRtbC9w
YXJzZXIvSFRNTEVudGl0eVBhcnNlci5jcHAKICAgICBodG1sL3BhcnNlci9IVE1MRW50aXR5U2Vh
cmNoLmNwcAorICAgIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwCiAgICAgaHRtbC9w
YXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAKICAgICBodG1sL3BhcnNlci9IVE1MRm9ybWF0
dGluZ0VsZW1lbnRMaXN0LmNwcAogICAgIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5j
cHAKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNjc0MDIpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjQyLDYgKzE2NDIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdC5jcHAgXAog
CVdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEZvcm1hdHRpbmdFbGVtZW50TGlzdC5oIFwKIAlXZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxJbnB1dFN0cmVhbS5oIFwKKwlXZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxQYXJzZXJJZGlvbXMuY3BwIFwKKwlXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJ
ZGlvbXMuaCBcCiAJV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCBc
CiAJV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmggXAogCVdlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNv
cmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjc0
MDIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTc4Myw2ICsx
NzgzLDggQEAKICAgICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MRm9ybWF0dGluZ0VsZW1lbnRM
aXN0LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTEZvcm1hdHRpbmdFbGVtZW50
TGlzdC5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaCcsCisg
ICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5jcHAnLAorICAgICAgICAg
ICAgJ2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaCcsCiAgICAgICAgICAgICAnaHRtbC9w
YXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2Vy
L0hUTUxQYXJzZXJTY2hlZHVsZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmNwcCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDY3NDAyKQorKysgV2ViQ29yZS9XZWJD
b3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtOTQ1LDYgKzk0NSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGh0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJzZXIuY3BwIFwKICAgICBodG1sL3BhcnNlci9I
VE1MRW50aXR5U2VhcmNoLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTEZvcm1hdHRpbmdFbGVt
ZW50TGlzdC5jcHAgXAorICAgIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwIFwKICAg
ICBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIv
SFRNTFByZWxvYWRTY2FubmVyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5l
ci5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lv
biA2NzQwMikKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtp
bmcgY29weSkKQEAgLTQyMDEyLDYgKzQyMDEyLDE0IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0K
IAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHBhcnNlclxIVE1MUGFyc2Vy
SWRpb21zLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxodG1sXHBhcnNlclxIVE1MUGFyc2VySWRpb21zLmgiDQorCQkJCQk+DQor
CQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJz
ZXJcSFRNTFBhcnNlclNjaGVkdWxlci5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjc0
MDIpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMjY2Miw2ICsyNjYyLDggQEAKIAkJOTNFMjI3RTQwQUY1ODlBRDAwRDQ4MzI0
IC8qIFN1YnJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRTIyN0RGMEFGNTg5QUQwMEQ0ODMyNCAvKiBTdWJyZXNvdXJjZUxv
YWRlci5jcHAgKi87IH07CiAJCTkzRTI0MUZGMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVP
d25lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTI0MUZFMEIyQjRFNDAwMEM3MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0UyNDI1
RjBCMkI1MDk1MDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI0MjVFMEIyQjUwOTUwMEM3
MzJBMSAvKiBIVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwICovOyB9OworCQk5M0UyQTMwNjEyM0U5
REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTMwNDEyM0U5REMwMDA5RkUxMkEgLyogSFRN
TFBhcnNlcklkaW9tcy5jcHAgKi87IH07CisJCTkzRTJBMzA3MTIzRTlEQzAwMDlGRTEyQSAvKiBI
VE1MUGFyc2VySWRpb21zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0UyQTMwNTEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oICov
OyB9OwogCQk5M0U2MkQ5QjA5ODVGNDE2MDBFMUI1RTMgLyogU3lzdGVtVGltZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNjJEOTkwOTg1RjQxNjAw
RTFCNUUzIC8qIFN5c3RlbVRpbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5M0VCMTY5NTA5Rjg4MEIwMDA5MUY4RkYgLyogV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRUIxNjk0MDlGODgwQjAwMDkxRjhGRiAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1t
ICovOyB9OwogCQk5M0VCMTY5NzA5Rjg4MEMwMDA5MUY4RkYgLyogV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNF
QjE2OTYwOUY4ODBDMDAwOTFGOEZGIC8qIFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODU4NCw2ICs4NTg2
LDggQEAKIAkJOTNFMjI3REYwQUY1ODlBRDAwRDQ4MzI0IC8qIFN1YnJlc291cmNlTG9hZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN1YnJlc291cmNlTG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMjQxRkUwQjJCNEU0MDAwQzcz
MkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVE1MRnJhbWVPd25lckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNFMjQyNUUwQjJCNTA5NTAwQzczMkExIC8qIEhUTUxGcmFtZU93bmVyRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRnJhbWVPd25lckVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0UyQTMwNDEyM0U5REMw
MDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBIVE1MUGFyc2VySWRpb21zLmNwcDsgcGF0aCA9IHBhcnNlci9IVE1MUGFy
c2VySWRpb21zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFMkEzMDUxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gSFRNTFBhcnNlcklkaW9tcy5oOyBwYXRoID0gcGFyc2VyL0hUTUxQYXJzZXJJ
ZGlvbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFNjJEOTkwOTg1RjQxNjAw
RTFCNUUzIC8qIFN5c3RlbVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3lzdGVtVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0VCMTY5NDA5Rjg4
MEIwMDA5MUY4RkYgLyogV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRUIxNjk2MDlGODgwQzAwMDkxRjhGRiAvKiBXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
NDk2LDYgKzE0NTAwLDggQEAKIAkJCQk5NzdCMzg1NTEyMjg4M0U5MDBCODFGRjggLyogSFRNTEZv
cm1hdHRpbmdFbGVtZW50TGlzdC5jcHAgKi8sCiAJCQkJOTc3QjM4NTYxMjI4ODNFOTAwQjgxRkY4
IC8qIEhUTUxGb3JtYXR0aW5nRWxlbWVudExpc3QuaCAqLywKIAkJCQk5N0JDODQ5QTEyMzcwQTRC
MDAwQzYxNjEgLyogSFRNTElucHV0U3RyZWFtLmggKi8sCisJCQkJOTNFMkEzMDQxMjNFOURDMDAw
OUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuY3BwICovLAorCQkJCTkzRTJBMzA1MTIzRTlEQzAw
MDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi8sCiAJCQkJOTc3QjM4NTcxMjI4ODNFOTAw
QjgxRkY4IC8qIEhUTUxQYXJzZXJTY2hlZHVsZXIuY3BwICovLAogCQkJCTk3N0IzODU4MTIyODgz
RTkwMEI4MUZGOCAvKiBIVE1MUGFyc2VyU2NoZWR1bGVyLmggKi8sCiAJCQkJOTc3QjM4NTkxMjI4
ODNFOTAwQjgxRkY4IC8qIEhUTUxQcmVsb2FkU2Nhbm5lci5jcHAgKi8sCkBAIC0yMDU1Nyw2ICsy
MDU2Myw3IEBACiAJCQkJODkzQzQ3QjgxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTNDNDdCQzEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxl
V3JpdGVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5QzlGMTIzOTUwQkUwMENC
OTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNF
MkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjMwMzEsNiArMjMwMzgsNyBAQAogCQkJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3ODVCMyAv
KiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5M0M0N0I3MTIz
OEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
OTNDNDdCQjEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTNFMkEzMDYxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlv
bXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NIZWxwZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NIZWxwZXIuaAkocmV2aXNpb24gNjc0MDIpCisrKyBX
ZWJDb3JlL2Nzcy9DU1NIZWxwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTcgKzI2LDE0IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIC8vIFVzZWQgaW4gbWFueSBpbmFwcHJvcHJp
YXRlIGNvbnRleHRzIHRocm91Z2hvdXQgV2ViQ29yZS4gV2UnbGwgaGF2ZSB0byBleGFtaW5lIGFu
ZCB0ZXN0Ci0gICAgLy8gZWFjaCBjYWxsIHNpdGUgdG8gZmluZCBvdXQgd2hldGhlciBpdCBuZWVk
cyB0aGUgdmFyaW91cyB0aGluZ3MgdGhpcyBmdW5jdGlvbiBkb2VzLiBUaGF0Ci0gICAgLy8gaW5j
bHVkZXMgdHJpbW1pbmcgbGVhZGluZyBhbmQgdHJhaWxpbmcgY29udHJvbCBjaGFyYWN0ZXJzIChp
bmNsdWRpbmcgd2hpdGVzcGFjZSksIHJlbW92aW5nCi0gICAgLy8gdXJsKCkgb3IgVVJMKCkgaWYg
aXQgc3Vycm91bmRzIHRoZSBlbnRpcmUgc3RyaW5nLCByZW1vdmluZyBtYXRjaGluZyBxdW90ZSBt
YXJrcyBpZiBwcmVzZW50LAotICAgIC8vIGFuZCBzdHJpcHBpbmcgYWxsIGNoYXJhY3RlcnMgaW4g
dGhlIHJhbmdlIFUrMDAwMC1VKzAwMEMuIFByb2JhYmx5IG5vIGNhbGxlciBuZWVkcyB0aGlzLgot
ICAgIFN0cmluZyBkZXByZWNhdGVkUGFyc2VVUkwoY29uc3QgU3RyaW5nJik7CisvLyBVc2VkIGlu
IG1hbnkgaW5hcHByb3ByaWF0ZSBjb250ZXh0cyB0aHJvdWdob3V0IFdlYkNvcmUuIE1vc3QgY2Fs
bGVycyBzaG91bGQgYmUgdXNpbmcKKy8vIHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNl
cyBpbnN0ZWFkLgorU3RyaW5nIGRlcHJlY2F0ZWRQYXJzZVVSTChjb25zdCBTdHJpbmcmKTsKIAot
ICAgIC8vIFdlIGFsd2F5cyBhc3N1bWUgOTYgQ1NTIHBpeGVscyBpbiBhIENTUyBpbmNoLiBUaGlz
IGlzIHRoZSBjb2xkIGhhcmQgdHJ1dGggb2YgdGhlIFdlYi4KLSAgICAvLyBBdCBoaWdoIERQSSwg
d2UgbWF5IHNjYWxlIGEgQ1NTIHBpeGVsLCBidXQgdGhlIHJhdGlvIG9mIHRoZSBDU1MgcGl4ZWwg
dG8gdGhlIHNvLWNhbGxlZAotICAgIC8vICJhYnNvbHV0ZSIgQ1NTIGxlbmd0aCB1bml0cyBsaWtl
IGluY2ggYW5kIHB0IGlzIGFsd2F5cyBmaXhlZCBhbmQgbmV2ZXIgY2hhbmdlcy4KLSAgICBjb25z
dCBmbG9hdCBjc3NQaXhlbHNQZXJJbmNoID0gOTY7CisvLyBXZSBhbHdheXMgYXNzdW1lIDk2IENT
UyBwaXhlbHMgaW4gYSBDU1MgaW5jaC4gVGhpcyBpcyB0aGUgY29sZCBoYXJkIHRydXRoIG9mIHRo
ZSBXZWIuCisvLyBBdCBoaWdoIERQSSwgd2UgbWF5IHNjYWxlIGEgQ1NTIHBpeGVsLCBidXQgdGhl
IHJhdGlvIG9mIHRoZSBDU1MgcGl4ZWwgdG8gdGhlIHNvLWNhbGxlZAorLy8gImFic29sdXRlIiBD
U1MgbGVuZ3RoIHVuaXRzIGxpa2UgaW5jaCBhbmQgcHQgaXMgYWx3YXlzIGZpeGVkIGFuZCBuZXZl
ciBjaGFuZ2VzLgorY29uc3QgZmxvYXQgY3NzUGl4ZWxzUGVySW5jaCA9IDk2OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJldmlz
aW9uIDY3NDAyKQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MCw3ICs1MCw3IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKLSNp
bmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgi
CiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA2NzQwMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkZvcm1EYXRhTGlz
dC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgotI2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJSZW5kZXJNZXRlci5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAkocmV2aXNpb24g
Njc0MDIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJGb3JtRGF0YUxpc3QuaCIKICNpbmNs
dWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRl
ICJIVE1MVHJlZUJ1aWxkZXIuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5j
bHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAK
SW5kZXg6IFdlYkNvcmUvaHRtbC9TdGVwUmFuZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9TdGVwUmFuZ2UuY3BwCShyZXZpc2lvbiA2NzQwMikKKysrIFdlYkNvcmUvaHRtbC9TdGVw
UmFuZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw5ICsyMyw5IEBACiAKICNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRN
TFRyZWVCdWlsZGVyLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApJbmRleDog
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorCisjaW5jbHVkZSA8d3RmL2R0b2EuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJp
bmcgc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQoreworICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gc3RyaW5nLmNoYXJhY3RlcnMoKTsK
KyAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisKKyAgICB1bnNpZ25lZCBu
dW1MZWFkaW5nU3BhY2VzOworICAgIGZvciAobnVtTGVhZGluZ1NwYWNlcyA9IDA7IG51bUxlYWRp
bmdTcGFjZXMgPCBsZW5ndGg7ICsrbnVtTGVhZGluZ1NwYWNlcykgeworICAgICAgICBpZiAoaXNO
b3RIVE1MU3BhY2UoY2hhcmFjdGVyc1tudW1MZWFkaW5nU3BhY2VzXSkpCisgICAgICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBpZiAobnVtTGVhZGluZ1NwYWNlcyA9PSBsZW5ndGgpCisgICAg
ICAgIHJldHVybiBlbXB0eUF0b207CisKKyAgICB1bnNpZ25lZCBudW1UcmFpbGluZ1NwYWNlczsK
KyAgICBmb3IgKG51bVRyYWlsaW5nU3BhY2VzID0gMDsgbnVtVHJhaWxpbmdTcGFjZXMgPCBsZW5n
dGg7ICsrbnVtVHJhaWxpbmdTcGFjZXMpIHsKKyAgICAgICAgaWYgKGlzTm90SFRNTFNwYWNlKGNo
YXJhY3RlcnNbbGVuZ3RoIC0gbnVtVHJhaWxpbmdTcGFjZXMgLSAxXSkpCisgICAgICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBBU1NFUlQobnVtTGVhZGluZ1NwYWNlcyArIG51bVRyYWlsaW5n
U3BhY2VzIDwgbGVuZ3RoKTsKKworICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKG51bUxlYWRp
bmdTcGFjZXMsIGxlbmd0aCAtIG51bVRyYWlsaW5nU3BhY2VzKTsKK30KKworU3RyaW5nIHNlcmlh
bGl6ZUZvck51bWJlclR5cGUoZG91YmxlIG51bWJlcikKK3sKKyAgICAvLyBBY2NvcmRpbmcgdG8g
SFRNTDUsICJ0aGUgYmVzdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyIG4gYXMgYSBmbG9h
dGluZworICAgIC8vIHBvaW50IG51bWJlciIgaXMgYSBzdHJpbmcgcHJvZHVjZWQgYnkgYXBwbHlp
bmcgVG9TdHJpbmcoKSB0byBuLgorICAgIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlcjsKKyAg
ICB1bnNpZ25lZCBsZW5ndGggPSBudW1iZXJUb1N0cmluZyhudW1iZXIsIGJ1ZmZlcik7CisgICAg
cmV0dXJuIFN0cmluZyhidWZmZXIsIGxlbmd0aCk7Cit9CisKK2Jvb2wgcGFyc2VUb0RvdWJsZUZv
ck51bWJlclR5cGUoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGRvdWJsZSogcmVzdWx0KQoreworICAg
IC8vIFNlZSBIVE1MNSAyLjQuNC4zIGBSZWFsIG51bWJlcnMuJworCisgICAgLy8gU3RyaW5nOjp0
b0RvdWJsZSgpIGFjY2VwdHMgbGVhZGluZyArIGFuZCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMsIHdo
aWNoIGFyZSBub3QgdmFsaWQgaGVyZS4KKyAgICBVQ2hhciBmaXJzdENoYXJhY3RlciA9IHN0cmlu
Z1swXTsKKyAgICBpZiAoZmlyc3RDaGFyYWN0ZXIgIT0gJy0nICYmICFpc0FTQ0lJRGlnaXQoZmly
c3RDaGFyYWN0ZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIHZhbGlkID0g
ZmFsc2U7CisgICAgZG91YmxlIHZhbHVlID0gc3RyaW5nLnRvRG91YmxlKCZ2YWxpZCk7CisgICAg
aWYgKCF2YWxpZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTmFOIGFuZCBpbmZp
bml0eSBhcmUgY29uc2lkZXJlZCB2YWxpZCBieSBTdHJpbmc6OnRvRG91YmxlLCBidXQgbm90IHZh
bGlkIGhlcmUuCisgICAgaWYgKCFpc2Zpbml0ZSh2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBleHByZXNz
aW9uIGNvbnZlcnRzIC0wIHRvICswLgorICAgICAgICAqcmVzdWx0ID0gdmFsdWUgPyB2YWx1ZSA6
IDA7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30KClByb3BlcnR5IGNoYW5nZXMg
b246IFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5jcHAKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpB
ZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFBhcnNlcklkaW9tcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFBhcnNlcklkaW9tcy5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MUGFyc2VySWRpb21zLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBIVE1MUGFyc2VySWRpb21zX2gKKyNkZWZpbmUgSFRNTFBhcnNlcklkaW9t
c19oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL1Vu
aWNvZGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBTcGFjZSBjaGFyYWN0ZXJzIGFz
IGRlZmluZWQgYnkgdGhlIEhUTUwgc3BlY2lmaWNhdGlvbi4KK2Jvb2wgaXNIVE1MU3BhY2UoVUNo
YXIpOworYm9vbCBpc05vdEhUTUxTcGFjZShVQ2hhcik7CisKKy8vIFN0cmlwIGxlYWRpbmcgYW5k
IHRyYWlsaW5nIHdoaXRlc3BhY2UgYXMgZGVmaW5lZCBieSB0aGUgSFRNTCBzcGVjaWZpY2F0aW9u
LiAKK1N0cmluZyBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoY29uc3QgU3RyaW5n
Jik7CisKKy8vIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBIVE1MIHNwZWNpZmljYXRpb24ncyBh
bGdvcml0aG0gdG8gY29udmVydCBhIG51bWJlciB0byBhIHN0cmluZyBmb3IgbnVtYmVyIGFuZCBy
YW5nZSB0eXBlcy4KK1N0cmluZyBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKGRvdWJsZSk7CisKKy8v
IENvbnZlcnQgdGhlIHNwZWNpZmllZCBzdHJpbmcgdG8gYSBkb3VibGUuIElmIHRoZSBjb252ZXJz
aW9uIGZhaWxzLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGZhbHNlLgorLy8gTGVhZGluZyBvciB0cmFp
bGluZyBpbGxlZ2FsIGNoYXJhY3RlcnMgY2F1c2UgZmFpbHVyZSwgYXMgZG9lcyBwYXNzaW5nIGFu
IGVtcHR5IHN0cmluZy4KKy8vIFRoZSBkb3VibGUqIHBhcmFtZXRlciBtYXkgYmUgMCB0byBjaGVj
ayBpZiB0aGUgc3RyaW5nIGNhbiBiZSBwYXJzZWQgd2l0aG91dCBnZXR0aW5nIHRoZSByZXN1bHQu
Citib29sIHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSop
OworCisvLyBJbmxpbmUgaW1wbGVtZW50YXRpb25zIG9mIHNvbWUgb2YgdGhlIGZ1bmN0aW9ucyBk
ZWNsYXJlZCBhYm92ZS4KKworaW5saW5lIGJvb2wgaXNIVE1MU3BhY2UoVUNoYXIgY2hhcmFjdGVy
KQoreworICAgIC8vIEZJWE1FOiBDb25zaWRlciBicmFuY2ggcGVybXV0YXRpb25zIGFzIHdlIGRp
ZCBpbiBpc0FTQ0lJU3BhY2UuCisgICAgcmV0dXJuIGNoYXJhY3RlciA9PSAnXHQnIHx8IGNoYXJh
Y3RlciA9PSAnXHgwQScgfHwgY2hhcmFjdGVyID09ICdceDBDJyB8fCBjaGFyYWN0ZXIgPT0gJ1x4
MEQnIHx8IGNoYXJhY3RlciA9PSAnICc7Cit9CisKK2lubGluZSBib29sIGlzTm90SFRNTFNwYWNl
KFVDaGFyIGNoYXJhY3RlcikKK3sKKyAgICByZXR1cm4gIWlzSFRNTFNwYWNlKGNoYXJhY3Rlcik7
Cit9CisKK30KKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxQYXJzZXJJZGlvbXMuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgbmF0aXZlCgpJbmRleDogV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAko
cmV2aXNpb24gNjc0MDIpCisrKyBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE2ICsyNiwxNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgogCisjaW5jbHVkZSAiQ2hhcmFjdGVyTmFt
ZXMuaCIKICNpbmNsdWRlICJDb21tZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxF
bGVtZW50RmFjdG9yeS5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxIdG1sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhU
TUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKQEAgLTQ0LDE1ICs0
NSwxMCBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgogI2luY2x1ZGUgIlhN
TE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgotLy8gRklYTUU6IFJlbW92ZSB0aGlz
IGluY2x1ZGUgb25jZSB3ZSBmaW5kIGEgaG9tZSBmb3IgdGhlIGZyZWUgZnVuY3Rpb25zIHRoYXQK
LS8vIGFyZSB1c2luZyBpdC4KLSNpbmNsdWRlIDx3dGYvZHRvYS5oPgotI2luY2x1ZGUgPHd0Zi9V
bnVzZWRQYXJhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYyLDQyICs1OCwxOSBA
QCBzdGF0aWMgY29uc3QgaW50IHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyCiAKIG5hbWVzcGFjZSB7
CiAKLWlubGluZSBib29sIGlzVHJlZUJ1aWxkZXJXaGl0ZXBhY2UoVUNoYXIgYykKK2lubGluZSBi
b29sIGlzSFRNTFNwYWNlT3JSZXBsYWNlbWVudENoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIpCiB7
Ci0gICAgLy8gRklYTUU6IENvbnNpZGVyIGJyYW5jaCBwZXJtdXRhdGlvbnMuCi0gICAgcmV0dXJu
IGMgPT0gJ1x0JyB8fCBjID09ICdceDBBJyB8fCBjID09ICdceDBDJyB8fCBjID09ICdceDBEJyB8
fCBjID09ICcgJzsKLX0KLQotaW5saW5lIGJvb2wgaXNOb3RUcmVlQnVpbGRlcldoaXRlcGFjZShV
Q2hhciBjKQotewotICAgIHJldHVybiAhaXNUcmVlQnVpbGRlcldoaXRlcGFjZShjKTsKLX0KLQot
aW5saW5lIGJvb2wgaXNUcmVlQnVpbGRlcldoaXRlcGFjZU9yUmVwbGFjZW1lbnRDaGFyYWN0ZXIo
VUNoYXIgYykKLXsKLSAgICByZXR1cm4gaXNUcmVlQnVpbGRlcldoaXRlcGFjZShjKSB8fCBjID09
IDB4RkZGRDsKLX0KLQotdGVtcGxhdGU8Ym9vbCBpc1NwZWNpYWxDaGFyYWN0ZXIoVUNoYXIgYyk+
Ci1pbmxpbmUgYm9vbCBpc0FsbFNwZWNpYWxDaGFyYWN0ZXJzKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQotewotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gc3RyaW5nLmNoYXJhY3RlcnMoKTsK
LSAgICBjb25zdCB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICghaXNTcGVjaWFs
Q2hhcmFjdGVyKGNoYXJhY3RlcnNbaV0pKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNIVE1MU3BhY2UoY2hhcmFjdGVyKSB8
fCBjaGFyYWN0ZXIgPT0gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7CiB9CiAKIGlubGluZSBib29sIGlz
QWxsV2hpdGVzcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICByZXR1cm4gaXNBbGxT
cGVjaWFsQ2hhcmFjdGVyczxpc1RyZWVCdWlsZGVyV2hpdGVwYWNlPihzdHJpbmcpOworICAgIHJl
dHVybiBzdHJpbmcuaXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxpc0hUTUxTcGFjZT4oKTsKIH0KIAog
aW5saW5lIGJvb2wgaXNBbGxXaGl0ZXNwYWNlT3JSZXBsYWNlbWVudENoYXJhY3RlcnMoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgcmV0dXJuIGlzQWxsU3BlY2lhbENoYXJhY3RlcnM8aXNU
cmVlQnVpbGRlcldoaXRlcGFjZU9yUmVwbGFjZW1lbnRDaGFyYWN0ZXI+KHN0cmluZyk7CisgICAg
cmV0dXJuIHN0cmluZy5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzSFRNTFNwYWNlT3JSZXBsYWNl
bWVudENoYXJhY3Rlcj4oKTsKIH0KIAogYm9vbCBpc051bWJlcmVkSGVhZGVyVGFnKGNvbnN0IEF0
b21pY1N0cmluZyYgdGFnTmFtZSkKQEAgLTI3OSwxNyArMjUyLDE3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2tpcExlYWRpbmdXaGl0ZXNwYWNlKCkKICAgICB7Ci0gICAgICAgIHNraXBMZWFkaW5n
PGlzVHJlZUJ1aWxkZXJXaGl0ZXBhY2U+KCk7CisgICAgICAgIHNraXBMZWFkaW5nPGlzSFRNTFNw
YWNlPigpOwogICAgIH0KIAogICAgIFN0cmluZyB0YWtlTGVhZGluZ1doaXRlc3BhY2UoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHRha2VMZWFkaW5nPGlzVHJlZUJ1aWxkZXJXaGl0ZXBhY2U+KCk7
CisgICAgICAgIHJldHVybiB0YWtlTGVhZGluZzxpc0hUTUxTcGFjZT4oKTsKICAgICB9CiAKICAg
ICBTdHJpbmcgdGFrZUxlYWRpbmdOb25XaGl0ZXNwYWNlKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biB0YWtlTGVhZGluZzxpc05vdFRyZWVCdWlsZGVyV2hpdGVwYWNlPigpOworICAgICAgICByZXR1
cm4gdGFrZUxlYWRpbmc8aXNOb3RIVE1MU3BhY2U+KCk7CiAgICAgfQogCiAgICAgU3RyaW5nIHRh
a2VSZW1haW5pbmcoKQpAQCAtMzEyLDcgKzI4NSw3IEBAIHB1YmxpYzoKICAgICAgICAgVmVjdG9y
PFVDaGFyPiB3aGl0ZXNwYWNlOwogICAgICAgICBkbyB7CiAgICAgICAgICAgICBVQ2hhciBjYyA9
ICptX2N1cnJlbnQrKzsKLSAgICAgICAgICAgIGlmIChpc1RyZWVCdWlsZGVyV2hpdGVwYWNlKGNj
KSkKKyAgICAgICAgICAgIGlmIChpc0hUTUxTcGFjZShjYykpCiAgICAgICAgICAgICAgICAgd2hp
dGVzcGFjZS5hcHBlbmQoY2MpOwogICAgICAgICB9IHdoaWxlIChtX2N1cnJlbnQgPCBtX2VuZCk7
CiAgICAgICAgIC8vIFJldHVybmluZyB0aGUgbnVsbCBzdHJpbmcgd2hlbiB0aGVyZSBhcmVuJ3Qg
YW55IHdoaXRlc3BhY2UKQEAgLTI4MTMsNDEgKzI3ODYsNCBAQCBib29sIEhUTUxUcmVlQnVpbGRl
cjo6cGx1Z2luc0VuYWJsZWQoRnJhCiAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+c3ViZnJh
bWVMb2FkZXIoKS0+YWxsb3dQbHVnaW5zKE5vdEFib3V0VG9JbnN0YW50aWF0ZVBsdWdpbik7CiB9
CiAKLS8vIEZJWE1FOiBNb3ZlIHRoaXMgZnVuY3Rpb24gdG8gYSBtb3JlIGFwcHJvcHJpYXRlIHBs
YWNlLgotU3RyaW5nIHNlcmlhbGl6ZUZvck51bWJlclR5cGUoZG91YmxlIG51bWJlcikKLXsKLSAg
ICAvLyBBY2NvcmRpbmcgdG8gSFRNTDUsICJ0aGUgYmVzdCByZXByZXNlbnRhdGlvbiBvZiB0aGUg
bnVtYmVyIG4gYXMgYSBmbG9hdGluZwotICAgIC8vIHBvaW50IG51bWJlciIgaXMgYSBzdHJpbmcg
cHJvZHVjZWQgYnkgYXBwbHlpbmcgVG9TdHJpbmcoKSB0byBuLgotICAgIE51bWJlclRvU3RyaW5n
QnVmZmVyIGJ1ZmZlcjsKLSAgICB1bnNpZ25lZCBsZW5ndGggPSBudW1iZXJUb1N0cmluZyhudW1i
ZXIsIGJ1ZmZlcik7Ci0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIsIGxlbmd0aCk7Ci19Ci0KLS8v
IEZJWE1FOiBNb3ZlIHRoaXMgZnVuY3Rpb24gdG8gYSBtb3JlIGFwcHJvcHJpYXRlIHBsYWNlLgot
Ym9vbCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShjb25zdCBTdHJpbmcmIHNyYywgZG91Ymxl
KiBvdXQpCi17Ci0gICAgLy8gU2VlIEhUTUw1IDIuNC40LjMgYFJlYWwgbnVtYmVycy4nCi0KLSAg
ICBpZiAoc3JjLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIFN0cmlu
Zzo6dG9Eb3VibGUoKSBhY2NlcHRzIGxlYWRpbmcgKyBcdCBcbiBcdiBcZiBcciBhbmQgU1BBQ0Us
IHdoaWNoIGFyZSBpbnZhbGlkIGluIEhUTUw1LgotICAgIC8vIFNvLCBjaGVjayB0aGUgZmlyc3Qg
Y2hhcmFjdGVyLgotICAgIGlmIChzcmNbMF0gIT0gJy0nICYmIChzcmNbMF0gPCAnMCcgfHwgc3Jj
WzBdID4gJzknKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYm9vbCB2YWxpZCA9IGZh
bHNlOwotICAgIGRvdWJsZSB2YWx1ZSA9IHNyYy50b0RvdWJsZSgmdmFsaWQpOwotICAgIGlmICgh
dmFsaWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBOYU4gYW5kIEluZmluaXR5IGFy
ZSBub3QgdmFsaWQgbnVtYmVycyBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkLgotICAgIGlmICgh
aXNmaW5pdGUodmFsdWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gLTAgLT4gMAot
ICAgIGlmICghdmFsdWUpCi0gICAgICAgIHZhbHVlID0gMDsKLSAgICBpZiAob3V0KQotICAgICAg
ICAqb3V0ID0gdmFsdWU7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIH0KSW5kZXg6IFdlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAkocmV2aXNpb24gNjc0MDIpCisrKyBXZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYsMTggKzI1
Niw2IEBAIHByaXZhdGU6CiAgICAgaW50IG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmU7CiB9
OwogCi0vLyBGSVhNRTogTW92ZSB0aGVzZSBmdW5jdGlvbnMgdG8gYSBtb3JlIGFwcHJvcHJpYXRl
IHBsYWNlLgotCi0vLyBDb252ZXJ0cyB0aGUgc3BlY2lmaWVkIHN0cmluZyB0byBhIGZsb2F0aW5n
IG51bWJlci4KLS8vIElmIHRoZSBjb252ZXJzaW9uIGZhaWxzLCB0aGUgcmV0dXJuIHZhbHVlIGlz
IGZhbHNlLiBUYWtlIGNhcmUgdGhhdCBsZWFkaW5nCi0vLyBvciB0cmFpbGluZyB1bm5lY2Vzc2Fy
eSBjaGFyYWN0ZXJzIG1ha2UgZmFpbHVyZXMuICBUaGlzIHJldHVybnMgZmFsc2UgZm9yIGFuCi0v
LyBlbXB0eSBzdHJpbmcgaW5wdXQuCi0vLyBUaGUgZG91YmxlKiBwYXJhbWV0ZXIgbWF5IGJlIDAu
Ci1ib29sIHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSop
OwotLy8gQ29udmVydHMgdGhlIHNwZWNpZmllZCBudW1iZXIgdG8gYSBzdHJpbmcuIFRoaXMgaXMg
YW4gaW1wbGVtZW50YXRpb24gb2YKLS8vIEhUTUw1J3MgImFsZ29yaXRobSB0byBjb252ZXJ0IGEg
bnVtYmVyIHRvIGEgc3RyaW5nIiBmb3IgTlVNQkVSL1JBTkdFIHR5cGVzLgotU3RyaW5nIHNlcmlh
bGl6ZUZvck51bWJlclR5cGUoZG91YmxlKTsKLQogfQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2xpZGVyLmNwcAkocmV2aXNpb24gNjc0MDIpCisrKyBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbGlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCisjaW5jbHVkZSAiSFRN
TFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdJbWFnZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VMb2FkZXIuY3BwCShyZXZpc2lvbiA2NzQwMikKKysrIFdlYkNvcmUvc3ZnL1NWR0ltYWdl
TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCB2b2lkIFNWR0ltYWdl
TG9hZGVyOjpkaXNwYXRjaExvYWRFdmVudCgpCiAKIFN0cmluZyBTVkdJbWFnZUxvYWRlcjo6c291
cmNlVVJJKGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cikgY29uc3QKIHsKLSAgICByZXR1cm4gZGVw
cmVjYXRlZFBhcnNlVVJMKEtVUkwoZWxlbWVudCgpLT5iYXNlVVJJKCksIGF0dHIpLnN0cmluZygp
KTsKKyAgICByZXR1cm4gS1VSTChlbGVtZW50KCktPmJhc2VVUkkoKSwgZGVwcmVjYXRlZFBhcnNl
VVJMKGF0dHIpKS5zdHJpbmcoKTsKIH0KIAogfQpJbmRleDogV2ViQ29yZS93bWwvV01MSW1hZ2VM
b2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEltYWdlTG9hZGVyLmNwcAko
cmV2aXNpb24gNjc0MDIpCisrKyBXZWJDb3JlL3dtbC9XTUxJbWFnZUxvYWRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0vKioKKy8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
VG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2ht
b2JpbGUuY29tLykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC00OSw3ICs0OSw3IEBAIHZvaWQgV01MSW1hZ2VM
b2FkZXI6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIAogU3RyaW5nIFdNTEltYWdlTG9hZGVyOjpzb3Vy
Y2VVUkkoY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyKSBjb25zdAogewotICAgIHJldHVybiBkZXBy
ZWNhdGVkUGFyc2VVUkwoS1VSTChlbGVtZW50KCktPmJhc2VVUkkoKSwgYXR0cikuc3RyaW5nKCkp
OworICAgIHJldHVybiBLVVJMKGVsZW1lbnQoKS0+YmFzZVVSSSgpLCBkZXByZWNhdGVkUGFyc2VV
UkwoYXR0cikpOwogfQogCiB2b2lkIFdNTEltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNo
ZWRSZXNvdXJjZSogaW1hZ2UpCkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNjc0MDIpCisrKyBXZWJLaXQvbWFj
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA5LTEzICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcmVwYXJhdGlvbiBmb3IgZWxpbWluYXRpbmcgZGVwcmVj
YXRlZFBhcnNlVVJMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTY5NQorCisgICAgICAgICogRE9NL1dlYkRPTU9wZXJhdGlvbnMubW06CisgICAgICAg
ICgtW0RPTURvY3VtZW50IHdlYkZyYW1lXSk6IEdldCByaWQgb2YgdW5uZWVkZWQgbG9jYWwgdmFy
aWFibGUuCisgICAgICAgICgtW0RPTURvY3VtZW50IFVSTFdpdGhBdHRyaWJ1dGVTdHJpbmc6XSk6
IFJlbW92ZSB1bmhlbHBmdWwgY29tbWVudC4KKwogMjAxMC0wOS0xMyAgSm9obiBTdWxsaXZhbiAg
PHN1bGxpdmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgpJ
bmRleDogV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9ucy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCShyZXZpc2lvbiA2NzQwMikKKysrIFdl
YktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyMSw4
ICsxMjEsNyBAQCAtIChOU0FycmF5ICopX3N1YnJlc291cmNlVVJMcwogCiAtIChXZWJGcmFtZSAq
KXdlYkZyYW1lCiB7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29yZShzZWxmKTsKLSAgICBG
cmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBjb3Jl
KHNlbGYpLT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgcmV0dXJuIGtpdChmcmFtZSk7CkBAIC0xMzAsNyArMTI5LDYgQEAgLSAoV2ViRnJhbWUgKil3
ZWJGcmFtZQogCiAtIChOU1VSTCAqKVVSTFdpdGhBdHRyaWJ1dGVTdHJpbmc6KE5TU3RyaW5nICop
c3RyaW5nCiB7Ci0gICAgLy8gRklYTUU6IElzIGRlcHJlY2F0ZWRQYXJzZVVSTCBhcHByb3ByaWF0
ZSBoZXJlPwogICAgIHJldHVybiBjb3JlKHNlbGYpLT5jb21wbGV0ZVVSTChkZXByZWNhdGVkUGFy
c2VVUkwoc3RyaW5nKSk7CiB9CiAK
</data>
<flag name="review"
          id="56752"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>