<?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>23454</bug_id>
          
          <creation_ts>2009-01-21 08:51:13 -0800</creation_ts>
          <short_desc>Add WML &lt;option&gt;/&lt;optgroup&gt; support</short_desc>
          <delta_ts>2009-01-22 20:20:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>
          
          <blocked>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>staikos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106459</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-21 08:51:13 -0800</bug_when>
    <thetext>Create stub-implementations for WMLOptionElement/WMLOptGroupElement.
Stub-implementations, because the interessting functionality can be implemented, only of WMLSelectElement is also available.

The SelectElement abstraction, and the WMLSelectElement creation should be done in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106460</commentid>
    <comment_count>1</comment_count>
      <attachid>26893</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-21 08:53:22 -0800</bug_when>
    <thetext>Created attachment 26893
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106461</commentid>
    <comment_count>2</comment_count>
      <attachid>26893</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-21 09:12:13 -0800</bug_when>
    <thetext>Comment on attachment 26893
Initial patch

Uploaded wrong patch, need to leave now - uploading correct one later -&gt; clearing review flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106644</commentid>
    <comment_count>3</comment_count>
      <attachid>26939</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-22 13:59:59 -0800</bug_when>
    <thetext>Created attachment 26939
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106685</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-01-22 20:20:47 -0800</bug_when>
    <thetext>Landed in r40134.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26893</attachid>
            <date>2009-01-21 08:53:22 -0800</date>
            <delta_ts>2009-01-22 13:59:59 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>AddWMLOptionOptGroupElement.diff</filename>
            <type>text/plain</type>
            <size>24819</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQwMDg1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjAgQEAKKzIwMDktMDEt
MjEgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1NAorCisgICAg
ICAgIEFkZCBXTUwgPG9wdGlvbj4vPG9wdGdyb3VwPiBlbGVtZW50IHN1cHBvcnQuCisgICAgICAg
IEN1cnJlbnRseSB0aGUgaW1wbGVtZW50YXRpb24gaXMgc3R1YmJlZCwgYWxsIHJlbGV2YW50IHBh
cnRzIGNhbiBiZSBlbmFibGVkCisgICAgICAgIG9uY2UgV01MU2VsZWN0RWxlbWVudC9TZWxlY3RF
bGVtZW50IGhhcyBiZWVuIGNyZWF0ZWQuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd21sL1dNTE9wdEdyb3VwRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V01MT3B0R3JvdXBFbGVtZW50OjpXTUxPcHRHcm91cEVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6V01MT3B0R3JvdXBFbGVtZW50Ojp+V01MT3B0R3JvdXBFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdlYkNv
cmU6OldNTE9wdEdyb3VwRWxlbWVudDo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
V01MT3B0R3JvdXBFbGVtZW50OjphcHBlbmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxP
cHRHcm91cEVsZW1lbnQ6OnJlbW92ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6Om93bmVy
U2VsZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OmFj
Y2Vzc0tleUFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OmNo
aWxkcmVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVu
dDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6ZGV0YWNo
KToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6c2V0UmVuZGVyU3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0R3JvdXBFbGVtZW50Ojpub25SZW5kZXJlclJlbmRl
clN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6cmVjYWxjU2Vs
ZWN0T3B0aW9ucyk6CisgICAgICAgICogd21sL1dNTE9wdEdyb3VwRWxlbWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6dGl0bGUpOgorICAgICAgICAo
V2ViQ29yZTo6V01MT3B0R3JvdXBFbGVtZW50Ojp2YWx1ZU1hdGNoZXNSZW5kZXJlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OnNldFZhbHVlTWF0Y2hlc1JlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6cmVuZGVyZXJJc05lZWRl
ZCk6CisgICAgICAgICogd21sL1dNTE9wdGlvbkVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldNTE9wdGlvbkVsZW1lbnQ6OldNTE9wdGlvbkVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6fldNTE9wdGlvbkVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6b3duZXJTZWxlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdGlv
bkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25F
bGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9u
RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdGlvbkVsZW1lbnQ6OmRl
dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25FbGVtZW50OjpzZXRSZW5kZXJTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25FbGVtZW50OjppbnNlcnRlZEludG9Eb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25FbGVtZW50Ojpub25SZW5kZXJlclJl
bmRlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdGlvbkVsZW1lbnQ6OmhhbmRsZUlu
dHJpbnNpY0V2ZW50SWZOZWVkZWQpOgorICAgICAgICAqIHdtbC9XTUxPcHRpb25FbGVtZW50Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6dGl0bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6dmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6V01MT3B0aW9uRWxlbWVudDo6dmFsdWVNYXRjaGVzUmVuZGVyZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V01MT3B0aW9uRWxlbWVudDo6c2V0VmFsdWVNYXRjaGVzUmVuZGVyZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6CisgICAgICAg
ICogd21sL1dNTFRhZ05hbWVzLmluOgorCiAyMDA5LTAxLTIwICBOaWtvbGFzIFppbW1lcm1hbm4g
IDxuaWtvbGFzLnppbW1lcm1hbm5AdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEdlb3JnZSBTdGFpa29zLgpJbmRleDogR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
R05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQwMDg1KQorKysgR05VbWFrZWZpbGUuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTIyMjUsNiArMjIyNSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2Vi
Q29yZS93bWwvV01MTm9vcEVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL3dtbC9XTUxPbkV2ZW50RWxl
bWVudC5jcHAgXAogCVdlYkNvcmUvd21sL1dNTFBFbGVtZW50LmNwcCBcCisJV2ViQ29yZS93bWwv
V01MT3B0R3JvdXBFbGVtZW50LmNwcCBcCisJV2ViQ29yZS93bWwvV01MT3B0aW9uRWxlbWVudC5j
cHAgXAogCVdlYkNvcmUvd21sL1dNTFBhZ2VTdGF0ZS5jcHAgXAogCVdlYkNvcmUvd21sL1dNTFBv
c3RmaWVsZEVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL3dtbC9XTUxQcmV2RWxlbWVudC5jcHAgXApJ
bmRleDogV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS5wcm8JKHJldmlzaW9uIDQw
MDg1KQorKysgV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTE0MjYsNiArMTQyNiw4IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XTUw9MSkgewogICAgICAgICB3bWwvV01MTm9vcEVs
ZW1lbnQuY3BwIFwKICAgICAgICAgd21sL1dNTE9uRXZlbnRFbGVtZW50LmNwcCBcCiAgICAgICAg
IHdtbC9XTUxQRWxlbWVudC5jcHAgXAorICAgICAgICB3bWwvV01MT3B0R3JvdXBFbGVtZW50LmNw
cCBcCisgICAgICAgIHdtbC9XTUxPcHRpb25FbGVtZW50LmNwcCBcCiAgICAgICAgIHdtbC9XTUxQ
YWdlU3RhdGUuY3BwIFwKICAgICAgICAgd21sL1dNTFBvc3RmaWVsZEVsZW1lbnQuY3BwIFwKICAg
ICAgICAgd21sL1dNTFByZXZFbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
cmV2aXNpb24gNDAwODUpCisrKyBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTY4MTAsNiArMTY4MTAsMjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd21sXFdNTE9wdEdyb3VwRWxlbWVudC5jcHAi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx3
bWxcV01MT3B0R3JvdXBFbGVtZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlx3bWxcV01MT3B0aW9uRWxlbWVudC5jcHAiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx3bWxcV01MT3B0
aW9uRWxlbWVudC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cd21sXFdNTFBhZ2VTdGF0ZS5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpJ
bmRleDogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDAwODUpCisrKyBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExNiw2ICsx
MTYsMTAgQEAKIAkJMDhDNEM1MUIwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlTG9hZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEM0QzUxNzBF
RjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VMb2FkZXIuaCAqLzsgfTsKIAkJMDhDRDYxQkMwRUQz
OTI5QzAwMkRERjUxIC8qIFdNTFRhc2tFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4Q0Q2MUI4MEVEMzkyOUMwMDJEREY1MSAvKiBXTUxU
YXNrRWxlbWVudC5jcHAgKi87IH07CiAJCTA4Q0Q2MUJEMEVEMzkyOUMwMDJEREY1MSAvKiBXTUxU
YXNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDhDRDYxQjkwRUQzOTI5QzAwMkRERjUxIC8qIFdNTFRhc2tFbGVtZW50LmggKi87IH07CisJ
CTA4RDZGQzZGMEYyNzg4RjgwMERERUZDMyAvKiBXTUxPcHRHcm91cEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhENkZDNkIwRjI3ODhG
ODAwRERFRkMzIC8qIFdNTE9wdEdyb3VwRWxlbWVudC5jcHAgKi87IH07CisJCTA4RDZGQzcwMEYy
Nzg4RjgwMERERUZDMyAvKiBXTUxPcHRHcm91cEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4RDZGQzZDMEYyNzg4RjgwMERERUZDMyAvKiBX
TUxPcHRHcm91cEVsZW1lbnQuaCAqLzsgfTsKKwkJMDhENkZDNzEwRjI3ODhGODAwRERFRkMzIC8q
IFdNTE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDhENkZDNkQwRjI3ODhGODAwRERFRkMzIC8qIFdNTE9wdGlvbkVsZW1lbnQu
Y3BwICovOyB9OworCQkwOEQ2RkM3MjBGMjc4OEY4MDBEREVGQzMgLyogV01MT3B0aW9uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhENkZD
NkUwRjI3ODhGODAwRERFRkMzIC8qIFdNTE9wdGlvbkVsZW1lbnQuaCAqLzsgfTsKIAkJMDhFMTky
NTMwRURFMEMzQTAwODdCNzgwIC8qIFdNTEVycm9ySGFuZGxpbmcuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhFMTkyNTEwRURFMEMzOTAwODdCNzgw
IC8qIFdNTEVycm9ySGFuZGxpbmcuY3BwICovOyB9OwogCQkwOEUxOTI1NDBFREUwQzNBMDA4N0I3
ODAgLyogV01MRXJyb3JIYW5kbGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDhFMTkyNTIwRURFMEMzQTAwODdCNzgwIC8qIFdNTEVycm9ySGFuZGxp
bmcuaCAqLzsgfTsKIAkJMDhFNEZFNDYwRTJCRDQxNDAwRjRDQUUwIC8qIEpTU1ZHTGVuZ3RoQ3Vz
dG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4
RTRGRTQ1MEUyQkQ0MTQwMEY0Q0FFMCAvKiBKU1NWR0xlbmd0aEN1c3RvbS5jcHAgKi87IH07CkBA
IC00OTM4LDYgKzQ5NDIsMTAgQEAKIAkJMDhDNEM1MTcwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTElt
YWdlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdNTEltYWdlTG9h
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4Q0Q2MUI4MEVEMzkyOUMwMDJE
REY1MSAvKiBXTUxUYXNrRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXTUxUYXNrRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4Q0Q2MUI5MEVEMzkyOUMwMDJEREY1MSAvKiBXTUxUYXNrRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxUYXNrRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwOEQ2RkM2QjBGMjc4OEY4MDBEREVGQzMgLyogV01MT3B0R3JvdXBFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTE9wdEdyb3Vw
RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4RDZGQzZDMEYyNzg4
RjgwMERERUZDMyAvKiBXTUxPcHRHcm91cEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV01MT3B0R3JvdXBFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA4RDZGQzZEMEYyNzg4RjgwMERERUZDMyAvKiBXTUxPcHRpb25FbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTE9wdGlvbkVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwOEQ2RkM2RTBGMjc4OEY4MDBEREVGQzMg
LyogV01MT3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
TUxPcHRpb25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4RTE5MjUx
MEVERTBDMzkwMDg3Qjc4MCAvKiBXTUxFcnJvckhhbmRsaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTEVycm9ySGFuZGxpbmcuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwOEUxOTI1MjBFREUwQzNBMDA4N0I3ODAgLyogV01MRXJyb3JIYW5k
bGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxFcnJvckhhbmRsaW5n
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4RTRGRTQ1MEUyQkQ0MTQwMEY0Q0FF
MCAvKiBKU1NWR0xlbmd0aEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1NWR0xlbmd0aEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC05NzExLDYgKzk3MTksMTAgQEAKIAkJCQkwODY1Q0NFNTBFRERGNTFCMDBERjlFQzMgLyog
V01MTm9vcEVsZW1lbnQuaCAqLywKIAkJCQkwODc0NEJBOTBFREI3RDg2MDA0QzlFNjMgLyogV01M
T25FdmVudEVsZW1lbnQuY3BwICovLAogCQkJCTA4NzQ0QkFEMEVEQjdEOTIwMDRDOUU2MyAvKiBX
TUxPbkV2ZW50RWxlbWVudC5oICovLAorCQkJCTA4RDZGQzZCMEYyNzg4RjgwMERERUZDMyAvKiBX
TUxPcHRHcm91cEVsZW1lbnQuY3BwICovLAorCQkJCTA4RDZGQzZDMEYyNzg4RjgwMERERUZDMyAv
KiBXTUxPcHRHcm91cEVsZW1lbnQuaCAqLywKKwkJCQkwOEQ2RkM2RDBGMjc4OEY4MDBEREVGQzMg
LyogV01MT3B0aW9uRWxlbWVudC5jcHAgKi8sCisJCQkJMDhENkZDNkUwRjI3ODhGODAwRERFRkMz
IC8qIFdNTE9wdGlvbkVsZW1lbnQuaCAqLywKIAkJCQk0QzZCOTkzNTBFNTJFMzczMDA0ODdCQjcg
LyogV01MUEVsZW1lbnQuY3BwICovLAogCQkJCTRDNkI5OTM2MEU1MkUzNzMwMDQ4N0JCNyAvKiBX
TUxQRWxlbWVudC5oICovLAogCQkJCTA4OTNFNDY1MEVDQjY4RjQwMEEyODU2MyAvKiBXTUxQYWdl
U3RhdGUuY3BwICovLApAQCAtMTY0NzcsNiArMTY0ODksOCBAQAogCQkJCTA4OEM5NzEzMEVDQjZE
OUQwMDA1MzRCQSAvKiBXTUxOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg2NUNDRTcwRURE
RjUxQjAwREY5RUMzIC8qIFdNTE5vb3BFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODc0
NEJBRTBFREI3RDkyMDA0QzlFNjMgLyogV01MT25FdmVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTA4RDZGQzcwMEYyNzg4RjgwMERERUZDMyAvKiBXTUxPcHRHcm91cEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTA4RDZGQzcyMEYyNzg4RjgwMERERUZDMyAvKiBXTUxPcHRpb25F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhDOTc2RjBFQ0I2RTI5MDAwNTM0QkEgLyog
V01MUEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEM5NzZEMEVDQjZFMjkwMDA1MzRC
QSAvKiBXTUxQYWdlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RTZBMkU5MEVFRTAzNTIw
MEFDMTIwNiAvKiBXTUxQb3N0ZmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTE4NDUy
LDYgKzE4NDY2LDggQEAKIAkJCQkwODhDOTcxMjBFQ0I2RDkyMDAwNTM0QkEgLyogV01MTmFtZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg2NUNDRTYwRURERjUxQjAwREY5RUMzIC8qIFdNTE5v
b3BFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4NzQ0QkFBMEVEQjdEODYwMDRDOUU2
MyAvKiBXTUxPbkV2ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwOEQ2RkM2RjBG
Mjc4OEY4MDBEREVGQzMgLyogV01MT3B0R3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTA4RDZGQzcxMEYyNzg4RjgwMERERUZDMyAvKiBXTUxPcHRpb25FbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA4OEM5NzZFMEVDQjZFMjkwMDA1MzRCQSAvKiBXTUxQRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwODhDOTc2QzBFQ0I2RTI5MDAwNTM0QkEgLyogV01MUGFn
ZVN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4RTZBMkU4MEVFRTAzNTIwMEFDMTIwNiAv
KiBXTUxQb3N0ZmllbGRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogd21sL1dNTE9w
dEdyb3VwRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTE9wdEdyb3VwRWxlbWVudC5j
cHAJKHJldmlzaW9uIDApCisrKyB3bWwvV01MT3B0R3JvdXBFbGVtZW50LmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNjMgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1v
YmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNv
bS8pCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUg
IldNTE9wdEdyb3VwRWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJXTUxOYW1lcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBXTUxOYW1lczsKKworV01MT3B0R3JvdXBFbGVtZW50
OjpXTUxPcHRHcm91cEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvYykKKyAgICA6IFdNTEVsZW1lbnQodGFnTmFtZSwgZG9jKQorICAgICwgbV92YWx1ZU1h
dGNoZXNSZW5kZXJlcihmYWxzZSkKK3sKK30KKworV01MT3B0R3JvdXBFbGVtZW50Ojp+V01MT3B0
R3JvdXBFbGVtZW50KCkKK3sKK30KKworYm9vbCBXTUxPcHRHcm91cEVsZW1lbnQ6Omluc2VydEJl
Zm9yZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiByZWZDaGlsZCwgRXhjZXB0aW9u
Q29kZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK3sKKyAgICBib29sIHJlc3VsdCA9IFdN
TEVsZW1lbnQ6Omluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQsIGVjLCBzaG91bGRMYXp5
QXR0YWNoKTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZWNhbGNTZWxlY3RPcHRpb25zKCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBXTUxPcHRHcm91cEVsZW1lbnQ6OnJlcGxh
Y2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0
aW9uQ29kZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK3sKKyAgICBib29sIHJlc3VsdCA9
IFdNTEVsZW1lbnQ6OnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQsIGVjLCBzaG91bGRM
YXp5QXR0YWNoKTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZWNhbGNTZWxlY3RPcHRpb25z
KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBXTUxPcHRHcm91cEVsZW1lbnQ6OnJl
bW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBib29s
IHJlc3VsdCA9IFdNTEVsZW1lbnQ6OnJlbW92ZUNoaWxkKG9sZENoaWxkLCBlYyk7CisgICAgaWYg
KHJlc3VsdCkKKyAgICAgICAgcmVjYWxjU2VsZWN0T3B0aW9ucygpOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK2Jvb2wgV01MT3B0R3JvdXBFbGVtZW50OjphcHBlbmRDaGlsZChQYXNzUmVmUHRy
PE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRMYXp5QXR0YWNo
KQoreworICAgIGJvb2wgcmVzdWx0ID0gV01MRWxlbWVudDo6YXBwZW5kQ2hpbGQobmV3Q2hpbGQs
IGVjLCBzaG91bGRMYXp5QXR0YWNoKTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICByZWNhbGNT
ZWxlY3RPcHRpb25zKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBXTUxPcHRHcm91
cEVsZW1lbnQ6OnJlbW92ZUNoaWxkcmVuKCkKK3sKKyAgICBib29sIHJlc3VsdCA9IFdNTEVsZW1l
bnQ6OnJlbW92ZUNoaWxkcmVuKCk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmVjYWxjU2Vs
ZWN0T3B0aW9ucygpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIEZJWE1FOiBBY3RpdmF0
ZSBvbmNlIFdNTFNlbGVjdEVsZW1lbnQgaXMgYXZhaWxhYmxlIAorI2lmIDAKK3N0YXRpYyBpbmxp
bmUgV01MRWxlbWVudCogb3duZXJTZWxlY3RFbGVtZW50KCkKK3sKKyAgICBOb2RlKiBzZWxlY3Qg
PSBwYXJlbnROb2RlKCk7CisgICAgd2hpbGUgKHNlbGVjdCAmJiAhc2VsZWN0LT5oYXNUYWdOYW1l
KHNlbGVjdFRhZykpCisgICAgICAgIHNlbGVjdCA9IHNlbGVjdC0+cGFyZW50Tm9kZSgpOworCisg
ICAgaWYgKCFzZWxlY3QpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFdNTFNlbGVjdEVsZW1lbnQqPihzZWxlY3QpOworfQorI2VuZGlmCisKK3ZvaWQgV01MT3B0
R3JvdXBFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCkKK3sKKyAgICAvLyBGSVhNRTogQWN0
aXZhdGUgb25jZSBXTUxTZWxlY3RFbGVtZW50IGlzIGF2YWlsYWJsZSAKKyNpZiAwCisgICAgV01M
U2VsZWN0RWxlbWVudCogc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCk7CisgICAgaWYgKCFz
ZWxlY3QgfHwgc2VsZWN0LT5mb2N1c2VkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIHNl
bmQgdG8gdGhlIHBhcmVudCB0byBicmluZyBmb2N1cyB0byB0aGUgbGlzdCBib3gKKyAgICBzZWxl
Y3QtPmFjY2Vzc0tleUFjdGlvbihmYWxzZSk7CisjZW5kaWYKK30KKwordm9pZCBXTUxPcHRHcm91
cEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVm
b3JlQ2hhbmdlLCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkKK3sKKyAg
ICByZWNhbGNTZWxlY3RPcHRpb25zKCk7CisgICAgV01MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2Vk
KGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERl
bHRhKTsKK30KKwordm9pZCBXTUxPcHRHcm91cEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKK3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IEhUTUxO
YW1lczo6dGl0bGVBdHRyKSB7CisgICAgICAgIG1fdGl0bGUgPSBwYXJzZVZhbHVlU3Vic3RpdHV0
aW5nVmFyaWFibGVSZWZlcmVuY2VzKGF0dHItPnZhbHVlKCkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgV01MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CisgICAg
cmVjYWxjU2VsZWN0T3B0aW9ucygpOworfQorCit2b2lkIFdNTE9wdEdyb3VwRWxlbWVudDo6YXR0
YWNoKCkKK3sKKyAgICBpZiAocGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQorICAgICAgICBz
ZXRSZW5kZXJTdHlsZShzdHlsZUZvclJlbmRlcmVyKCkpOworICAgIFdNTEVsZW1lbnQ6OmF0dGFj
aCgpOworfQorCit2b2lkIFdNTE9wdEdyb3VwRWxlbWVudDo6ZGV0YWNoKCkKK3sKKyAgICBtX3N0
eWxlLmNsZWFyKCk7CisgICAgV01MRWxlbWVudDo6ZGV0YWNoKCk7Cit9CisKK3ZvaWQgV01MT3B0
R3JvdXBFbGVtZW50OjpzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHls
ZSkKK3sKKyAgICBtX3N0eWxlID0gc3R5bGU7Cit9CisKK1JlbmRlclN0eWxlKiBXTUxPcHRHcm91
cEVsZW1lbnQ6Om5vblJlbmRlcmVyUmVuZGVyU3R5bGUoKSBjb25zdAoreworICAgIHJldHVybiBt
X3N0eWxlLmdldCgpOworfQorIAordm9pZCBXTUxPcHRHcm91cEVsZW1lbnQ6OnJlY2FsY1NlbGVj
dE9wdGlvbnMoKQoreworICAgIC8vIEZJWE1FOiBBY3RpdmF0ZSBvbmNlIFdNTFNlbGVjdEVsZW1l
bnQgaXMgYXZhaWxhYmxlIAorI2lmIDAKKyAgICBpZiAoV01MU2VsZWN0RWxlbWVudCogc2VsZWN0
ID0gb3duZXJTZWxlY3RFbGVtZW50KCkpCisgICAgICAgIHNlbGVjdC0+c2V0UmVjYWxjTGlzdEl0
ZW1zKCk7CisjZW5kaWYKK30KKworfQorCisjZW5kaWYKSW5kZXg6IHdtbC9XTUxPcHRHcm91cEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MT3B0R3JvdXBFbGVtZW50LmgJKHJldmlzaW9u
IDApCisrKyB3bWwvV01MT3B0R3JvdXBFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjkgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IFdNTE9wdEdyb3VwRWxlbWVudF9oCisjZGVmaW5lIFdNTE9wdEdyb3VwRWxlbWVudF9oCisKKyNp
ZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIkZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUg
IldNTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXTUxPcHRHcm91
cEVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVudCwgcHVibGljIEZvcm1Db250cm9sRWxlbWVudCB7
CitwdWJsaWM6CisgICAgV01MT3B0R3JvdXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+V01MT3B0R3JvdXBFbGVtZW50KCk7CisK
KyAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgdmFsdWVNYXRjaGVzUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlTWF0
Y2hlc1JlbmRlcmVyOyB9CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlTWF0Y2hlc1JlbmRlcmVy
KGJvb2wgYiA9IHRydWUpIHsgbV92YWx1ZU1hdGNoZXNSZW5kZXJlciA9IGI7IH0KKworICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKikgeyByZXR1cm4gZmFsc2U7
IH0KKworICAgIHZpcnR1YWwgYm9vbCBpbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdD
aGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBib29sIHNob3VsZExhenlBdHRh
Y2ggPSBmYWxzZSk7CisgICAgdmlydHVhbCBib29sIHJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxk
TGF6eUF0dGFjaCA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlQ2hpbGQoTm9kZSog
Y2hpbGQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYsIGJvb2wgc2hvdWxkTGF6eUF0
dGFjaCA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlQ2hpbGRyZW4oKTsKKworICAg
IHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kVG9BbnlFbGVtZW50KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFs
c2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNo
aWxkQ291bnREZWx0YSA9IDApOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0
ZShNYXBwZWRBdHRyaWJ1dGUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclN0eWxlKFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIFJlbmRlclN0
eWxlKiBub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3Q7CisgICAgdm9pZCByZWNhbGNTZWxl
Y3RPcHRpb25zKCk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVy
OworICAgIFN0cmluZyBtX3RpdGxlOworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsK
K307CisKK30KKworI2VuZGlmCisjZW5kaWYKSW5kZXg6IHdtbC9XTUxPcHRpb25FbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSB3bWwvV01MT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisr
KyB3bWwvV01MT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQyIEBA
CisvKioKKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJXTUxPcHRpb25FbGVtZW50Lmgi
CisKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2lu
Y2x1ZGUgIldNTE5hbWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNw
YWNlIFdNTE5hbWVzOworCitXTUxPcHRpb25FbGVtZW50OjpXTUxPcHRpb25FbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCisgICAgOiBXTUxFdmVudEhh
bmRsaW5nRWxlbWVudCh0YWdOYW1lLCBkb2MpCisgICAgLCBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVy
KGZhbHNlKQoreworfQorCitXTUxPcHRpb25FbGVtZW50Ojp+V01MT3B0aW9uRWxlbWVudCgpCit7
Cit9CisKKy8vIEZJWE1FOiBBY3RpdmF0ZSBvbmNlIFdNTFNlbGVjdEVsZW1lbnQgaXMgYXZhaWxh
YmxlIAorI2lmIDAKK3N0YXRpYyBpbmxpbmUgV01MRWxlbWVudCogb3duZXJTZWxlY3RFbGVtZW50
KCkKK3sKKyAgICBOb2RlKiBzZWxlY3QgPSBwYXJlbnROb2RlKCk7CisgICAgd2hpbGUgKHNlbGVj
dCAmJiAhc2VsZWN0LT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpCisgICAgICAgIHNlbGVjdCA9IHNl
bGVjdC0+cGFyZW50Tm9kZSgpOworCisgICAgaWYgKCFzZWxlY3QpCisgICAgICAgIHJldHVybiAw
OworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdNTFNlbGVjdEVsZW1lbnQqPihzZWxlY3QpOwor
fQorI2VuZGlmCisKK3ZvaWQgV01MT3B0aW9uRWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wp
Cit7CisgICAgLy8gRklYTUU6IEFjdGl2YXRlIG9uY2UgV01MU2VsZWN0RWxlbWVudCBpcyBhdmFp
bGFibGUgCisjaWYgMAorICAgIGlmIChXTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBvd25lclNl
bGVjdEVsZW1lbnQoKSkKKyAgICAgICAgc2VsZWN0LT5hY2Nlc3NLZXlTZXRTZWxlY3RlZEluZGV4
KGluZGV4KCkpOworI2VuZGlmCit9CisKK3ZvaWQgV01MT3B0aW9uRWxlbWVudDo6Y2hpbGRyZW5D
aGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFm
dGVyQ2hhbmdlLCBpbnQgY2hpbGRDb3VudERlbHRhKQoreworICAgIC8vIEZJWE1FOiBBY3RpdmF0
ZSBvbmNlIFdNTFNlbGVjdEVsZW1lbnQgaXMgYXZhaWxhYmxlIAorI2lmIDAKKyAgICBpZiAoV01M
U2VsZWN0RWxlbWVudCogc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCkpCisgICAgICAgIHNl
bGVjdC0+Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlcik7CisjZW5kaWYKKworICAgIFdN
TEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2VkQnlQYXJzZXIsIGJlZm9yZUNoYW5nZSwg
YWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7Cit9CisKK3ZvaWQgV01MT3B0aW9uRWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQoreworICAgIGlm
IChhdHRyLT5uYW1lKCkgPT0gSFRNTE5hbWVzOjp2YWx1ZUF0dHIpCisgICAgICAgIG1fdmFsdWUg
PSBwYXJzZVZhbHVlU3Vic3RpdHV0aW5nVmFyaWFibGVSZWZlcmVuY2VzKGF0dHItPnZhbHVlKCkp
OworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBIVE1MTmFtZXM6OnRpdGxlQXR0cikKKyAg
ICAgICAgbV90aXRsZSA9IHBhcnNlVmFsdWVTdWJzdGl0dXRpbmdWYXJpYWJsZVJlZmVyZW5jZXMo
YXR0ci0+dmFsdWUoKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ucGlja0F0dHIp
IHsKKyAgICAgICAgLy8gUmVnaXN0ZXIgaW50cmluc2ljIGV2ZW50IGluIGNhcmQKKyAgICAgICAg
UmVmUHRyPFdNTEludHJpbnNpY0V2ZW50PiBldmVudCA9IFdNTEludHJpbnNpY0V2ZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSwgYXR0ci0+dmFsdWUoKSk7CisKKyAgICAgICAgY3JlYXRlRXZlbnRIYW5k
bGVySWZOZWVkZWQoKTsKKyAgICAgICAgZXZlbnRIYW5kbGVyKCktPnJlZ2lzdGVySW50cmluc2lj
RXZlbnQoV01MSW50cmluc2ljRXZlbnRPblBpY2ssIGV2ZW50KTsKKyAgICB9IGVsc2UKKyAgICAg
ICAgV01MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK3ZvaWQgV01M
T3B0aW9uRWxlbWVudDo6YXR0YWNoKCkKK3sKKyAgICBpZiAocGFyZW50Tm9kZSgpLT5yZW5kZXJT
dHlsZSgpKQorICAgICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZvclJlbmRlcmVyKCkpOworICAg
IFdNTEVsZW1lbnQ6OmF0dGFjaCgpOworfQorCit2b2lkIFdNTE9wdGlvbkVsZW1lbnQ6OmRldGFj
aCgpCit7CisgICAgbV9zdHlsZS5jbGVhcigpOworICAgIFdNTEVsZW1lbnQ6OmRldGFjaCgpOwor
fQorCit2b2lkIFdNTE9wdGlvbkVsZW1lbnQ6OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlKQoreworICAgIG1fc3R5bGUgPSBzdHlsZTsKK30KKwordm9pZCBXTUxP
cHRpb25FbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgLy8gRklYTUU6IEFj
dGl2YXRlIG9uY2UgV01MU2VsZWN0RWxlbWVudCBpcyBhdmFpbGFibGUgCisjaWYgMAorICAgIFdN
TFNlbGVjdEVsZW1lbnQqIHNlbGVjdDsKKyAgICBpZiAoc2VsZWN0ZWQoKSAmJiAoc2VsZWN0ID0g
b3duZXJTZWxlY3RFbGVtZW50KCkpKQorICAgICAgICBzZWxlY3QtPnNjcm9sbFRvU2VsZWN0aW9u
KCk7CisjZW5kaWYKKworICAgIFdNTEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCk7Cit9
CisKK1JlbmRlclN0eWxlKiBXTUxPcHRpb25FbGVtZW50Ojpub25SZW5kZXJlclJlbmRlclN0eWxl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdHlsZS5nZXQoKTsKK30KKwordm9pZCBXTUxPcHRp
b25FbGVtZW50OjpoYW5kbGVJbnRyaW5zaWNFdmVudElmTmVlZGVkKCkKK3sKKyAgICBXTUxJbnRy
aW5zaWNFdmVudEhhbmRsZXIqIGV2ZW50SGFuZGxlciA9IHRoaXMtPmV2ZW50SGFuZGxlcigpOwor
ICAgIGlmICghZXZlbnRIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZXZlbnRI
YW5kbGVyLT5oYXNJbnRyaW5zaWNFdmVudChXTUxJbnRyaW5zaWNFdmVudE9uUGljaykpCisgICAg
ICAgIGV2ZW50SGFuZGxlci0+dHJpZ2dlckludHJpbnNpY0V2ZW50KFdNTEludHJpbnNpY0V2ZW50
T25QaWNrKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6IHdtbC9XTUxPcHRpb25FbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gd21sL1dNTE9wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIHdt
bC9XTUxPcHRpb25FbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjcgQEAKKy8qKgor
ICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFdNTE9wdGlvbkVs
ZW1lbnRfaAorI2RlZmluZSBXTUxPcHRpb25FbGVtZW50X2gKKworI2lmIEVOQUJMRShXTUwpCisj
aW5jbHVkZSAiRm9ybUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiV01MRXZlbnRIYW5kbGlu
Z0VsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXTUxPcHRpb25FbGVt
ZW50IDogcHVibGljIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50LCBwdWJsaWMgRm9ybUNvbnRyb2xF
bGVtZW50IHsKK3B1YmxpYzoKKyAgICBXTUxPcHRpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+V01MT3B0aW9uRWxlbWVudCgp
OworCisgICAgU3RyaW5nIHRpdGxlKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsgfQorICAgIFN0
cmluZyB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKworICAgIHZpcnR1YWwgYm9v
bCB2YWx1ZU1hdGNoZXNSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVNYXRjaGVzUmVu
ZGVyZXI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVNYXRjaGVzUmVuZGVyZXIoYm9vbCBi
ID0gdHJ1ZSkgeyBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVyID0gYjsgfQorCisgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJldHVybiBmYWxzZTsgfQorCisg
ICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0FueUVsZW1lbnQpOwor
ICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBm
YWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQg
Y2hpbGRDb3VudERlbHRhID0gMCk7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmli
dXRlKE1hcHBlZEF0dHJpYnV0ZSopOworCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOworICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyU3R5bGUo
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pOworCisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50
b0RvY3VtZW50KCk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVu
ZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0OworICAgIHZvaWQgaGFuZGxlSW50cmluc2ljRXZlbnRJ
Zk5lZWRlZCgpOworCitwcml2YXRlOgorICAgIGJvb2wgbV92YWx1ZU1hdGNoZXNSZW5kZXJlcjsK
KyAgICBTdHJpbmcgbV90aXRsZTsKKyAgICBTdHJpbmcgbV92YWx1ZTsKKyAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IG1fc3R5bGU7Cit9OworCit9CisKKyNlbmRpZgorI2VuZGlmCkluZGV4OiB3bWwv
V01MVGFnTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTFRhZ05hbWVzLmluCShyZXZpc2lv
biA0MDA4NCkKKysrIHdtbC9XTUxUYWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTgsNiAr
MTgsOCBAQCBpbnNlcnRlZExlZ2VuZCBpbnRlcmZhY2VOYW1lPVdNTEluc2VydGVkCiBtZXRhCiBu
b29wCiBvbmV2ZW50IGludGVyZmFjZU5hbWU9V01MT25FdmVudEVsZW1lbnQKK29wdGdyb3VwIGlu
dGVyZmFjZU5hbWU9V01MT3B0R3JvdXBFbGVtZW50CitvcHRpb24KIHAKIHBvc3RmaWVsZAogcHJl
dgpAQCAtMzEsNSArMzMsNSBAQCB0ciBpbnRlcmZhY2VOYW1lPVdNTEVsZW1lbnQKIAogI2lmIDAK
ICMgVGhlc2UgZWxlbWVudHMgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgSFRNTCpFbGVtZW50IGNsYXNz
LCB0aGF0IHdlIHdhbnQgdG8gc2hhcmUgY29kZSB3aXRoLgotIyBvcHRncm91cCwgb3B0aW9uLCBz
ZWxlY3QKKyMgc2VsZWN0CiAjZW5kaWYK
</data>
<flag name="review"
          id="12905"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26939</attachid>
            <date>2009-01-22 13:59:59 -0800</date>
            <delta_ts>2009-01-22 14:02:40 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>AddWMLOptionOptGroupElement.diff</filename>
            <type>text/plain</type>
            <size>26335</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQwMTMz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMDktMDEt
MjIgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1NAorCisgICAg
ICAgIEFkZCBXTUwgPG9wdGlvbj4vPG9wdGdyb3VwPiBlbGVtZW50IHN1cHBvcnQuCisgICAgICAg
IEN1cnJlbnRseSB0aGUgaW1wbGVtZW50YXRpb24gaXMgc3R1YmJlZCwgYWxsIHJlbGV2YW50IHBh
cnRzIGNhbiBiZSBlbmFibGVkCisgICAgICAgIG9uY2UgV01MU2VsZWN0RWxlbWVudC9TZWxlY3RF
bGVtZW50IGhhcyBiZWVuIGNyZWF0ZWQuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd21sL1dNTE9wdEdyb3VwRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V01MT3B0R3JvdXBFbGVtZW50OjpXTUxPcHRHcm91cEVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6V01MT3B0R3JvdXBFbGVtZW50Ojp+V01MT3B0R3JvdXBFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6cmVwbGFjZUNoaWxkKToKKyAgICAgICAgKFdlYkNv
cmU6OldNTE9wdEdyb3VwRWxlbWVudDo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
V01MT3B0R3JvdXBFbGVtZW50OjphcHBlbmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxP
cHRHcm91cEVsZW1lbnQ6OnJlbW92ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6Om93bmVy
U2VsZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OmFj
Y2Vzc0tleUFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OmNo
aWxkcmVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVu
dDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6ZGV0YWNo
KToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6c2V0UmVuZGVyU3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0R3JvdXBFbGVtZW50Ojpub25SZW5kZXJlclJlbmRl
clN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6Z3JvdXBMYWJl
bFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0R3JvdXBFbGVtZW50OjpyZWNhbGNTZWxl
Y3RPcHRpb25zKToKKyAgICAgICAgKiB3bWwvV01MT3B0R3JvdXBFbGVtZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V01MT3B0R3JvdXBFbGVtZW50Ojp0aXRsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OnZhbHVlTWF0Y2hlc1JlbmRlcmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldNTE9wdEdyb3VwRWxlbWVudDo6c2V0VmFsdWVNYXRjaGVzUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0R3JvdXBFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVk
KToKKyAgICAgICAgKiB3bWwvV01MT3B0aW9uRWxlbWVudC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6V01MT3B0aW9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpXTUxPcHRpb25FbGVtZW50Ojp+V01MT3B0aW9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpvd25lclNlbGVjdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9u
RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdGlvbkVs
ZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25FbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25F
bGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6ZGV0
YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdGlvbkVsZW1lbnQ6OnNldFJlbmRlclN0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdGlvbkVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdGlvbkVsZW1lbnQ6OnNlbGVjdGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OldNTE9wdGlvbkVsZW1lbnQ6OnNldFNlbGVjdGVkU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6dmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6V01MT3B0aW9uRWxlbWVudDo6dGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25FbGVtZW50Ojpub25SZW5kZXJlclJlbmRlclN0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OldNTE9wdGlvbkVsZW1lbnQ6OmhhbmRsZUludHJpbnNpY0V2
ZW50SWZOZWVkZWQpOgorICAgICAgICAqIHdtbC9XTUxPcHRpb25FbGVtZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6dmFsdWVNYXRjaGVzUmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6c2V0VmFsdWVNYXRjaGVzUmVu
ZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6V01MT3B0aW9uRWxlbWVudDo6cmVuZGVyZXJJc05l
ZWRlZCk6CisgICAgICAgICogd21sL1dNTFRhZ05hbWVzLmluOgorCiAyMDA5LTAxLTIyICBFcmlj
IFJvbWFuICA8ZXJvbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KSW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxl
LmFtCShyZXZpc2lvbiA0MDEzMCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjMzLDYgKzIyMzMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvd21sL1dN
TE5vb3BFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS93bWwvV01MT25FdmVudEVsZW1lbnQuY3BwIFwK
IAlXZWJDb3JlL3dtbC9XTUxQRWxlbWVudC5jcHAgXAorCVdlYkNvcmUvd21sL1dNTE9wdEdyb3Vw
RWxlbWVudC5jcHAgXAorCVdlYkNvcmUvd21sL1dNTE9wdGlvbkVsZW1lbnQuY3BwIFwKIAlXZWJD
b3JlL3dtbC9XTUxQYWdlU3RhdGUuY3BwIFwKIAlXZWJDb3JlL3dtbC9XTUxQb3N0ZmllbGRFbGVt
ZW50LmNwcCBcCiAJV2ViQ29yZS93bWwvV01MUHJldkVsZW1lbnQuY3BwIFwKSW5kZXg6IFdlYkNv
cmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUucHJvCShyZXZpc2lvbiA0MDEzMCkKKysrIFdl
YkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMwLDYgKzE0MzAsOCBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfV01MPTEpIHsKICAgICAgICAgd21sL1dNTE5vb3BFbGVtZW50LmNwcCBc
CiAgICAgICAgIHdtbC9XTUxPbkV2ZW50RWxlbWVudC5jcHAgXAogICAgICAgICB3bWwvV01MUEVs
ZW1lbnQuY3BwIFwKKyAgICAgICAgd21sL1dNTE9wdEdyb3VwRWxlbWVudC5jcHAgXAorICAgICAg
ICB3bWwvV01MT3B0aW9uRWxlbWVudC5jcHAgXAogICAgICAgICB3bWwvV01MUGFnZVN0YXRlLmNw
cCBcCiAgICAgICAgIHdtbC9XTUxQb3N0ZmllbGRFbGVtZW50LmNwcCBcCiAgICAgICAgIHdtbC9X
TUxQcmV2RWxlbWVudC5jcHAgXApJbmRleDogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDQw
MTMwKQorKysgV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE2Nzk0LDYgKzE2Nzk0LDIyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHdtbFxXTUxPcHRHcm91cEVsZW1lbnQuY3BwIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd21sXFdNTE9wdEdy
b3VwRWxlbWVudC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cd21sXFdNTE9wdGlvbkVsZW1lbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd21sXFdNTE9wdGlvbkVsZW1lbnQu
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHdtbFxXTUxQYWdlU3RhdGUuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQwMTMwKQorKysgV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1NywxMCBAQAogCQkw
ODNEQUVBNzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUEzMEYw
MUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICovOyB9OwogCQkw
ODNEQUVBODBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUE0
MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwICovOyB9
OwogCQkwODNEQUVBOTBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODNE
QUVBNTBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi87
IH07CisJCTA4NENFNUNCMEYyN0RBREMwMEU2MjQwRSAvKiBXTUxPcHRHcm91cEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0Q0U1Qzcw
RjI3REFEQzAwRTYyNDBFIC8qIFdNTE9wdEdyb3VwRWxlbWVudC5jcHAgKi87IH07CisJCTA4NENF
NUNDMEYyN0RBREMwMEU2MjQwRSAvKiBXTUxPcHRHcm91cEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NENFNUM4MEYyN0RBREMwMEU2MjQw
RSAvKiBXTUxPcHRHcm91cEVsZW1lbnQuaCAqLzsgfTsKKwkJMDg0Q0U1Q0QwRjI3REFEQzAwRTYy
NDBFIC8qIFdNTE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDg0Q0U1QzkwRjI3REFEQzAwRTYyNDBFIC8qIFdNTE9wdGlvbkVs
ZW1lbnQuY3BwICovOyB9OworCQkwODRDRTVDRTBGMjdEQURDMDBFNjI0MEUgLyogV01MT3B0aW9u
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDg0Q0U1Q0EwRjI3REFEQzAwRTYyNDBFIC8qIFdNTE9wdGlvbkVsZW1lbnQuaCAqLzsgfTsKIAkJ
MDg0REJBQTEwRUQzOUQzNjAwMzhDMjI2IC8qIFdNTFZhcmlhYmxlcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODREQkE5RDBFRDM5RDM1MDAzOEMy
MjYgLyogV01MVmFyaWFibGVzLmNwcCAqLzsgfTsKIAkJMDg0REJBQTIwRUQzOUQzNjAwMzhDMjI2
IC8qIFdNTFZhcmlhYmxlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDg0REJBOUUwRUQzOUQzNjAwMzhDMjI2IC8qIFdNTFZhcmlhYmxlcy5oICovOyB9
OwogCQkwODU3NzMzNTBGMDg0NjAxMDA4MDU4M0UgLyogRm9ybUNvbnRyb2xFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODU3NzMzNDBGMDg0
NjAxMDA4MDU4M0UgLyogRm9ybUNvbnRyb2xFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ4OTksNiArNDkwMywxMCBAQAogCQkwODNE
QUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTQwRjAxQTdGQjAwMzQyNzU0
IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBNTBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwODRDRTVDNzBGMjdEQURDMDBFNjI0MEUgLyogV01MT3B0R3JvdXBFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTE9wdEdyb3VwRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NENFNUM4MEYyN0RBREMwMEU2MjQw
RSAvKiBXTUxPcHRHcm91cEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV01MT3B0R3JvdXBFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4
NENFNUM5MEYyN0RBREMwMEU2MjQwRSAvKiBXTUxPcHRpb25FbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTE9wdGlvbkVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwODRDRTVDQTBGMjdEQURDMDBFNjI0MEUgLyogV01MT3B0
aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxPcHRpb25F
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NERCQTlEMEVEMzlEMzUw
MDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV01MVmFyaWFibGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDg0REJBOUUwRUQzOUQzNjAwMzhDMjI2IC8qIFdNTFZhcmlhYmxlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXTUxWYXJpYWJsZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDg1NzczMzQwRjA4NDYwMTAwODA1ODNFIC8qIEZvcm1Db250cm9sRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtQ29udHJvbEVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3MjcsNiArOTczNSwxMCBAQAogCQkJCTA4
NjVDQ0U1MEVEREY1MUIwMERGOUVDMyAvKiBXTUxOb29wRWxlbWVudC5oICovLAogCQkJCTA4NzQ0
QkE5MEVEQjdEODYwMDRDOUU2MyAvKiBXTUxPbkV2ZW50RWxlbWVudC5jcHAgKi8sCiAJCQkJMDg3
NDRCQUQwRURCN0Q5MjAwNEM5RTYzIC8qIFdNTE9uRXZlbnRFbGVtZW50LmggKi8sCisJCQkJMDg0
Q0U1QzcwRjI3REFEQzAwRTYyNDBFIC8qIFdNTE9wdEdyb3VwRWxlbWVudC5jcHAgKi8sCisJCQkJ
MDg0Q0U1QzgwRjI3REFEQzAwRTYyNDBFIC8qIFdNTE9wdEdyb3VwRWxlbWVudC5oICovLAorCQkJ
CTA4NENFNUM5MEYyN0RBREMwMEU2MjQwRSAvKiBXTUxPcHRpb25FbGVtZW50LmNwcCAqLywKKwkJ
CQkwODRDRTVDQTBGMjdEQURDMDBFNjI0MEUgLyogV01MT3B0aW9uRWxlbWVudC5oICovLAogCQkJ
CTRDNkI5OTM1MEU1MkUzNzMwMDQ4N0JCNyAvKiBXTUxQRWxlbWVudC5jcHAgKi8sCiAJCQkJNEM2
Qjk5MzYwRTUyRTM3MzAwNDg3QkI3IC8qIFdNTFBFbGVtZW50LmggKi8sCiAJCQkJMDg5M0U0NjUw
RUNCNjhGNDAwQTI4NTYzIC8qIFdNTFBhZ2VTdGF0ZS5jcHAgKi8sCkBAIC0xNjUwNSw2ICsxNjUx
Nyw4IEBACiAJCQkJMDg4Qzk3MTMwRUNCNkQ5RDAwMDUzNEJBIC8qIFdNTE5hbWVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwODY1Q0NFNzBFRERGNTFCMDBERjlFQzMgLyogV01MTm9vcEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4NzQ0QkFFMEVEQjdEOTIwMDRDOUU2MyAvKiBXTUxPbkV2
ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg0Q0U1Q0MwRjI3REFEQzAwRTYyNDBF
IC8qIFdNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg0Q0U1Q0UwRjI3
REFEQzAwRTYyNDBFIC8qIFdNTE9wdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
OEM5NzZGMEVDQjZFMjkwMDA1MzRCQSAvKiBXTUxQRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDg4Qzk3NkQwRUNCNkUyOTAwMDUzNEJBIC8qIFdNTFBhZ2VTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDhFNkEyRTkwRUVFMDM1MjAwQUMxMjA2IC8qIFdNTFBvc3RmaWVsZEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMTg0ODQsNiArMTg0OTgsOCBAQAogCQkJCTA4OEM5NzEyMEVD
QjZEOTIwMDA1MzRCQSAvKiBXTUxOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODY1Q0NF
NjBFRERGNTFCMDBERjlFQzMgLyogV01MTm9vcEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDg3NDRCQUEwRURCN0Q4NjAwNEM5RTYzIC8qIFdNTE9uRXZlbnRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTA4NENFNUNCMEYyN0RBREMwMEU2MjQwRSAvKiBXTUxPcHRHcm91cEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDg0Q0U1Q0QwRjI3REFEQzAwRTYyNDBFIC8q
IFdNTE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg4Qzk3NkUwRUNCNkUy
OTAwMDUzNEJBIC8qIFdNTFBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4OEM5NzZD
MEVDQjZFMjkwMDA1MzRCQSAvKiBXTUxQYWdlU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDhFNkEyRTgwRUVFMDM1MjAwQUMxMjA2IC8qIFdNTFBvc3RmaWVsZEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiB3bWwvV01MT3B0R3JvdXBFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSB3bWwvV01MT3B0R3JvdXBFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIHdtbC9XTUxPcHRH
cm91cEVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3NiBAQAorLyoqCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
KGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIEVOQUJMRShXTUwpCisjaW5jbHVkZSAiV01MT3B0R3JvdXBFbGVtZW50LmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRl
clN0eWxlLmgiCisjaW5jbHVkZSAiV01MTmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBuYW1lc3BhY2UgV01MTmFtZXM7CisKK1dNTE9wdEdyb3VwRWxlbWVudDo6V01MT3B0
R3JvdXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2Mp
CisgICAgOiBXTUxFbGVtZW50KHRhZ05hbWUsIGRvYykKKyAgICAsIG1fdmFsdWVNYXRjaGVzUmVu
ZGVyZXIoZmFsc2UpCit7Cit9CisKK1dNTE9wdEdyb3VwRWxlbWVudDo6fldNTE9wdEdyb3VwRWxl
bWVudCgpCit7Cit9CisKK2Jvb2wgV01MT3B0R3JvdXBFbGVtZW50OjppbnNlcnRCZWZvcmUoUGFz
c1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVj
LCBib29sIHNob3VsZExhenlBdHRhY2gpCit7CisgICAgYm9vbCByZXN1bHQgPSBXTUxFbGVtZW50
OjppbnNlcnRCZWZvcmUobmV3Q2hpbGQsIHJlZkNoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFjaCk7
CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmVjYWxjU2VsZWN0T3B0aW9ucygpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgV01MT3B0R3JvdXBFbGVtZW50OjpyZXBsYWNlQ2hpbGQo
UGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUm
IGVjLCBib29sIHNob3VsZExhenlBdHRhY2gpCit7CisgICAgYm9vbCByZXN1bHQgPSBXTUxFbGVt
ZW50OjpyZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkLCBlYywgc2hvdWxkTGF6eUF0dGFj
aCk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmVjYWxjU2VsZWN0T3B0aW9ucygpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgV01MT3B0R3JvdXBFbGVtZW50OjpyZW1vdmVDaGls
ZChOb2RlKiBvbGRDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgYm9vbCByZXN1bHQg
PSBXTUxFbGVtZW50OjpyZW1vdmVDaGlsZChvbGRDaGlsZCwgZWMpOworICAgIGlmIChyZXN1bHQp
CisgICAgICAgIHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Citib29sIFdNTE9wdEdyb3VwRWxlbWVudDo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBu
ZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvb2wgc2hvdWxkTGF6eUF0dGFjaCkKK3sKKyAg
ICBib29sIHJlc3VsdCA9IFdNTEVsZW1lbnQ6OmFwcGVuZENoaWxkKG5ld0NoaWxkLCBlYywgc2hv
dWxkTGF6eUF0dGFjaCk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmVjYWxjU2VsZWN0T3B0
aW9ucygpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgV01MT3B0R3JvdXBFbGVtZW50
OjpyZW1vdmVDaGlsZHJlbigpCit7CisgICAgYm9vbCByZXN1bHQgPSBXTUxFbGVtZW50OjpyZW1v
dmVDaGlsZHJlbigpOworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJlY2FsY1NlbGVjdE9wdGlv
bnMoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBGSVhNRTogQWN0aXZhdGUgb25jZSBX
TUxTZWxlY3RFbGVtZW50IGlzIGF2YWlsYWJsZSAKKyNpZiAwCitzdGF0aWMgaW5saW5lIFdNTEVs
ZW1lbnQqIG93bmVyU2VsZWN0RWxlbWVudCgpCit7CisgICAgTm9kZSogc2VsZWN0ID0gcGFyZW50
Tm9kZSgpOworICAgIHdoaWxlIChzZWxlY3QgJiYgIXNlbGVjdC0+aGFzVGFnTmFtZShzZWxlY3RU
YWcpKQorICAgICAgICBzZWxlY3QgPSBzZWxlY3QtPnBhcmVudE5vZGUoKTsKKworICAgIGlmICgh
c2VsZWN0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXTUxT
ZWxlY3RFbGVtZW50Kj4oc2VsZWN0KTsKK30KKyNlbmRpZgorCit2b2lkIFdNTE9wdEdyb3VwRWxl
bWVudDo6YWNjZXNzS2V5QWN0aW9uKGJvb2wpCit7CisgICAgLy8gRklYTUU6IEFjdGl2YXRlIG9u
Y2UgV01MU2VsZWN0RWxlbWVudCBpcyBhdmFpbGFibGUgCisjaWYgMAorICAgIFdNTFNlbGVjdEVs
ZW1lbnQqIHNlbGVjdCA9IG93bmVyU2VsZWN0RWxlbWVudCgpOworICAgIGlmICghc2VsZWN0IHx8
IHNlbGVjdC0+Zm9jdXNlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBzZW5kIHRvIHRo
ZSBwYXJlbnQgdG8gYnJpbmcgZm9jdXMgdG8gdGhlIGxpc3QgYm94CisgICAgc2VsZWN0LT5hY2Nl
c3NLZXlBY3Rpb24oZmFsc2UpOworI2VuZGlmCit9CisKK3ZvaWQgV01MT3B0R3JvdXBFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5n
ZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpCit7CisgICAgcmVjYWxj
U2VsZWN0T3B0aW9ucygpOworICAgIFdNTEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2Vk
QnlQYXJzZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7Cit9
CisKK3ZvaWQgV01MT3B0R3JvdXBFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRB
dHRyaWJ1dGUqIGF0dHIpCit7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBIVE1MTmFtZXM6OnRp
dGxlQXR0cikgeworICAgICAgICBtX3RpdGxlID0gcGFyc2VWYWx1ZVN1YnN0aXR1dGluZ1Zhcmlh
YmxlUmVmZXJlbmNlcyhhdHRyLT52YWx1ZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIFdNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworICAgIHJlY2FsY1Nl
bGVjdE9wdGlvbnMoKTsKK30KKwordm9pZCBXTUxPcHRHcm91cEVsZW1lbnQ6OmF0dGFjaCgpCit7
CisgICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKKyAgICAgICAgc2V0UmVuZGVy
U3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKKyAgICBXTUxFbGVtZW50OjphdHRhY2goKTsKK30K
Kwordm9pZCBXTUxPcHRHcm91cEVsZW1lbnQ6OmRldGFjaCgpCit7CisgICAgbV9zdHlsZS5jbGVh
cigpOworICAgIFdNTEVsZW1lbnQ6OmRldGFjaCgpOworfQorCit2b2lkIFdNTE9wdEdyb3VwRWxl
bWVudDo6c2V0UmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUpCit7Cisg
ICAgbV9zdHlsZSA9IHN0eWxlOworfQorCitSZW5kZXJTdHlsZSogV01MT3B0R3JvdXBFbGVtZW50
Ojpub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdHlsZS5n
ZXQoKTsKK30KKworU3RyaW5nIFdNTE9wdEdyb3VwRWxlbWVudDo6Z3JvdXBMYWJlbFRleHQoKSBj
b25zdAoreworICAgIFN0cmluZyBpdGVtVGV4dCA9IGRvY3VtZW50KCktPmRpc3BsYXlTdHJpbmdN
b2RpZmllZEJ5RW5jb2RpbmcobV90aXRsZSk7CisKKyAgICAvLyBJbiBXaW5JRSwgbGVhZGluZyBh
bmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyBpZ25vcmVkIGluIG9wdGlvbnMgYW5kIG9wdGdyb3Vw
cy4gV2UgbWF0Y2ggdGhpcyBiZWhhdmlvci4KKyAgICBpdGVtVGV4dCA9IGl0ZW1UZXh0LnN0cmlw
V2hpdGVTcGFjZSgpOworICAgIC8vIFdlIHdhbnQgdG8gY29sbGFwc2Ugb3VyIHdoaXRlc3BhY2Ug
dG9vLiAgVGhpcyB3aWxsIG1hdGNoIG90aGVyIGJyb3dzZXJzLgorICAgIGl0ZW1UZXh0ID0gaXRl
bVRleHQuc2ltcGxpZnlXaGl0ZVNwYWNlKCk7CisKKyAgICByZXR1cm4gaXRlbVRleHQ7Cit9CisK
K3ZvaWQgV01MT3B0R3JvdXBFbGVtZW50OjpyZWNhbGNTZWxlY3RPcHRpb25zKCkKK3sKKyAgICAv
LyBGSVhNRTogQWN0aXZhdGUgb25jZSBXTUxTZWxlY3RFbGVtZW50IGlzIGF2YWlsYWJsZSAKKyNp
ZiAwCisgICAgaWYgKFdNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IG93bmVyU2VsZWN0RWxlbWVu
dCgpKQorICAgICAgICBzZWxlY3QtPnNldFJlY2FsY0xpc3RJdGVtcygpOworI2VuZGlmCit9CisK
K30KKworI2VuZGlmCkluZGV4OiB3bWwvV01MT3B0R3JvdXBFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gd21sL1dNTE9wdEdyb3VwRWxlbWVudC5oCShyZXZpc2lvbiAwKQorKysgd21sL1dNTE9wdEdy
b3VwRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcyIEBACisvKioKKyAqIENvcHly
aWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0
cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXTUxPcHRHcm91cEVsZW1lbnRf
aAorI2RlZmluZSBXTUxPcHRHcm91cEVsZW1lbnRfaAorCisjaWYgRU5BQkxFKFdNTCkKKyNpbmNs
dWRlICJGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJPcHRpb25Hcm91cEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJXTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV01MT3B0R3JvdXBFbGVtZW50IDogcHVibGljIFdNTEVsZW1lbnQsIHB1YmxpYyBGb3JtQ29u
dHJvbEVsZW1lbnQsIHB1YmxpYyBPcHRpb25Hcm91cEVsZW1lbnQgeworcHVibGljOgorICAgIFdN
TE9wdEdyb3VwRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCop
OworICAgIHZpcnR1YWwgfldNTE9wdEdyb3VwRWxlbWVudCgpOworCisgICAgU3RyaW5nIHRpdGxl
KCkgY29uc3QgeyByZXR1cm4gbV90aXRsZTsgfQorCisgICAgdmlydHVhbCBib29sIHZhbHVlTWF0
Y2hlc1JlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZU1hdGNoZXNSZW5kZXJlcjsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZU1hdGNoZXNSZW5kZXJlcihib29sIGIgPSB0cnVlKSB7
IG1fdmFsdWVNYXRjaGVzUmVuZGVyZXIgPSBiOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFs
IGJvb2wgaW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNo
aWxkLCBFeGNlcHRpb25Db2RlJiwgYm9vbCBzaG91bGRMYXp5QXR0YWNoID0gZmFsc2UpOworICAg
IHZpcnR1YWwgYm9vbCByZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBib29sIHNob3VsZExhenlBdHRhY2ggPSBmYWxz
ZSk7CisgICAgdmlydHVhbCBib29sIHJlbW92ZUNoaWxkKE5vZGUqIGNoaWxkLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdmlydHVhbCBib29sIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmLCBib29sIHNob3VsZExhenlBdHRhY2ggPSBmYWxzZSk7Cisg
ICAgdmlydHVhbCBib29sIHJlbW92ZUNoaWxkcmVuKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxlbWVudCk7CisgICAgdmlydHVhbCB2b2lkIGNo
aWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVD
aGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAw
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRl
Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIGRldGFj
aCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPik7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBncm91cExhYmVsVGV4dCgpIGNvbnN0OworCitw
cml2YXRlOgorICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUqIG5vblJlbmRlcmVyUmVuZGVyU3R5bGUo
KSBjb25zdDsKKyAgICB2b2lkIHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsKKworcHJpdmF0ZToKKyAg
ICBib29sIG1fdmFsdWVNYXRjaGVzUmVuZGVyZXI7CisgICAgU3RyaW5nIG1fdGl0bGU7CisgICAg
UmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOworfTsKKworfQorCisjZW5kaWYKKyNlbmRpZgpJ
bmRleDogd21sL1dNTE9wdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdtbC9XTUxPcHRp
b25FbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIHdtbC9XTUxPcHRpb25FbGVtZW50LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjMgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA5
IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNo
bW9iaWxlLmNvbS8pCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV01MKQor
I2luY2x1ZGUgIldNTE9wdGlvbkVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgor
I2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiV01MTmFtZXMuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgV01MTmFtZXM7CisKK1dNTE9wdGlvbkVs
ZW1lbnQ6OldNTE9wdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvYykKKyAgICA6IFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50KHRhZ05hbWUsIGRvYykK
KyAgICAsIG1fZGF0YSh0aGlzKQorICAgICwgbV92YWx1ZU1hdGNoZXNSZW5kZXJlcihmYWxzZSkK
K3sKK30KKworV01MT3B0aW9uRWxlbWVudDo6fldNTE9wdGlvbkVsZW1lbnQoKQoreworfQorCisv
LyBGSVhNRTogQWN0aXZhdGUgb25jZSBXTUxTZWxlY3RFbGVtZW50IGlzIGF2YWlsYWJsZSAKKyNp
ZiAwCitzdGF0aWMgaW5saW5lIFdNTEVsZW1lbnQqIG93bmVyU2VsZWN0RWxlbWVudCgpCit7Cisg
ICAgTm9kZSogc2VsZWN0ID0gcGFyZW50Tm9kZSgpOworICAgIHdoaWxlIChzZWxlY3QgJiYgIXNl
bGVjdC0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKQorICAgICAgICBzZWxlY3QgPSBzZWxlY3QtPnBh
cmVudE5vZGUoKTsKKworICAgIGlmICghc2VsZWN0KQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxXTUxTZWxlY3RFbGVtZW50Kj4oc2VsZWN0KTsKK30KKyNlbmRp
ZgorCit2b2lkIFdNTE9wdGlvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sKQoreworICAg
IC8vIEZJWE1FOiBBY3RpdmF0ZSBvbmNlIFdNTFNlbGVjdEVsZW1lbnQgaXMgYXZhaWxhYmxlIAor
I2lmIDAKKyAgICBpZiAoV01MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVt
ZW50KCkpCisgICAgICAgIHNlbGVjdC0+YWNjZXNzS2V5U2V0U2VsZWN0ZWRJbmRleChpbmRleCgp
KTsKKyNlbmRpZgorfQorCit2b2lkIFdNTE9wdGlvbkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChi
b29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRlckNoYW5n
ZSwgaW50IGNoaWxkQ291bnREZWx0YSkKK3sKKyAgICAvLyBGSVhNRTogQWN0aXZhdGUgb25jZSBX
TUxTZWxlY3RFbGVtZW50IGlzIGF2YWlsYWJsZSAKKyNpZiAwCisgICAgaWYgKFdNTFNlbGVjdEVs
ZW1lbnQqIHNlbGVjdCA9IG93bmVyU2VsZWN0RWxlbWVudCgpKQorICAgICAgICBzZWxlY3QtPmNo
aWxkcmVuQ2hhbmdlZChjaGFuZ2VkQnlQYXJzZXIpOworI2VuZGlmCisKKyAgICBXTUxFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hh
bmdlLCBjaGlsZENvdW50RGVsdGEpOworfQorCit2b2lkIFdNTE9wdGlvbkVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKK3sKKyAgICBpZiAoYXR0ci0+
bmFtZSgpID09IEhUTUxOYW1lczo6dmFsdWVBdHRyKQorICAgICAgICBtX2RhdGEuc2V0VmFsdWUo
cGFyc2VWYWx1ZVN1YnN0aXR1dGluZ1ZhcmlhYmxlUmVmZXJlbmNlcyhhdHRyLT52YWx1ZSgpKSk7
CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IEhUTUxOYW1lczo6dGl0bGVBdHRyKQorICAg
ICAgICBtX2RhdGEuc2V0TGFiZWwocGFyc2VWYWx1ZVN1YnN0aXR1dGluZ1ZhcmlhYmxlUmVmZXJl
bmNlcyhhdHRyLT52YWx1ZSgpKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ucGlj
a0F0dHIpIHsKKyAgICAgICAgLy8gUmVnaXN0ZXIgaW50cmluc2ljIGV2ZW50IGluIGNhcmQKKyAg
ICAgICAgUmVmUHRyPFdNTEludHJpbnNpY0V2ZW50PiBldmVudCA9IFdNTEludHJpbnNpY0V2ZW50
OjpjcmVhdGUoZG9jdW1lbnQoKSwgYXR0ci0+dmFsdWUoKSk7CisKKyAgICAgICAgY3JlYXRlRXZl
bnRIYW5kbGVySWZOZWVkZWQoKTsKKyAgICAgICAgZXZlbnRIYW5kbGVyKCktPnJlZ2lzdGVySW50
cmluc2ljRXZlbnQoV01MSW50cmluc2ljRXZlbnRPblBpY2ssIGV2ZW50KTsKKyAgICB9IGVsc2UK
KyAgICAgICAgV01MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK3Zv
aWQgV01MT3B0aW9uRWxlbWVudDo6YXR0YWNoKCkKK3sKKyAgICBpZiAocGFyZW50Tm9kZSgpLT5y
ZW5kZXJTdHlsZSgpKQorICAgICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZvclJlbmRlcmVyKCkp
OworICAgIFdNTEVsZW1lbnQ6OmF0dGFjaCgpOworfQorCit2b2lkIFdNTE9wdGlvbkVsZW1lbnQ6
OmRldGFjaCgpCit7CisgICAgbV9zdHlsZS5jbGVhcigpOworICAgIFdNTEVsZW1lbnQ6OmRldGFj
aCgpOworfQorCit2b2lkIFdNTE9wdGlvbkVsZW1lbnQ6OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IHN0eWxlKQoreworICAgIG1fc3R5bGUgPSBzdHlsZTsKK30KKwordm9p
ZCBXTUxPcHRpb25FbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAgLy8gRklY
TUU6IEFjdGl2YXRlIG9uY2UgV01MU2VsZWN0RWxlbWVudCBpcyBhdmFpbGFibGUgCisjaWYgMAor
ICAgIFdNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdDsKKyAgICBpZiAoc2VsZWN0ZWQoKSAmJiAoc2Vs
ZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCkpKQorICAgICAgICBzZWxlY3QtPnNjcm9sbFRvU2Vs
ZWN0aW9uKCk7CisjZW5kaWYKKworICAgIFdNTEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50
KCk7Cit9CisKK2Jvb2wgV01MT3B0aW9uRWxlbWVudDo6c2VsZWN0ZWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX2RhdGEuc2VsZWN0ZWQoKTsKK30KKwordm9pZCBXTUxPcHRpb25FbGVtZW50Ojpz
ZXRTZWxlY3RlZFN0YXRlKGJvb2wgc2VsZWN0ZWQpCit7CisgICAgT3B0aW9uRWxlbWVudDo6c2V0
U2VsZWN0ZWRTdGF0ZShtX2RhdGEsIHNlbGVjdGVkKTsKK30KKworU3RyaW5nIFdNTE9wdGlvbkVs
ZW1lbnQ6OnZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gT3B0aW9uRWxlbWVudDo6Y29sbGVj
dE9wdGlvblZhbHVlKG1fZGF0YSwgZG9jdW1lbnQoKSk7Cit9CisKK1N0cmluZyBXTUxPcHRpb25F
bGVtZW50Ojp0ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gT3B0aW9uRWxlbWVudDo6Y29sbGVjdE9wdGlvblRleHRSZXNwZWN0aW5nR3JvdXBMYWJl
bChtX2RhdGEsIGRvY3VtZW50KCkpOworfQorCitSZW5kZXJTdHlsZSogV01MT3B0aW9uRWxlbWVu
dDo6bm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3R5bGUu
Z2V0KCk7Cit9CisKK3ZvaWQgV01MT3B0aW9uRWxlbWVudDo6aGFuZGxlSW50cmluc2ljRXZlbnRJ
Zk5lZWRlZCgpCit7CisgICAgV01MSW50cmluc2ljRXZlbnRIYW5kbGVyKiBldmVudEhhbmRsZXIg
PSB0aGlzLT5ldmVudEhhbmRsZXIoKTsKKyAgICBpZiAoIWV2ZW50SGFuZGxlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKGV2ZW50SGFuZGxlci0+aGFzSW50cmluc2ljRXZlbnQoV01MSW50
cmluc2ljRXZlbnRPblBpY2spKQorICAgICAgICBldmVudEhhbmRsZXItPnRyaWdnZXJJbnRyaW5z
aWNFdmVudChXTUxJbnRyaW5zaWNFdmVudE9uUGljayk7Cit9CisKK30KKworI2VuZGlmCkluZGV4
OiB3bWwvV01MT3B0aW9uRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdtbC9XTUxPcHRpb25FbGVt
ZW50LmgJKHJldmlzaW9uIDApCisrKyB3bWwvV01MT3B0aW9uRWxlbWVudC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDcwIEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2Jp
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20v
KQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBXTUxPcHRpb25FbGVtZW50X2gKKyNkZWZpbmUgV01MT3B0aW9uRWxlbWVu
dF9oCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIkZvcm1Db250cm9sRWxlbWVudC5oIgor
I2luY2x1ZGUgIk9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJXTUxFdmVudEhhbmRsaW5nRWxl
bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdNTE9wdGlvbkVsZW1lbnQg
OiBwdWJsaWMgV01MRXZlbnRIYW5kbGluZ0VsZW1lbnQsIHB1YmxpYyBGb3JtQ29udHJvbEVsZW1l
bnQsIHB1YmxpYyBPcHRpb25FbGVtZW50IHsKK3B1YmxpYzoKKyAgICBXTUxPcHRpb25FbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+
V01MT3B0aW9uRWxlbWVudCgpOworCisgICAgdmlydHVhbCBib29sIHZhbHVlTWF0Y2hlc1JlbmRl
cmVyKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZU1hdGNoZXNSZW5kZXJlcjsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZU1hdGNoZXNSZW5kZXJlcihib29sIGIgPSB0cnVlKSB7IG1fdmFsdWVN
YXRjaGVzUmVuZGVyZXIgPSBiOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxlbWVudCk7CisgICAgdmlydHVhbCB2b2lkIGNo
aWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVD
aGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAw
KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRl
Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIGRldGFj
aCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPik7CisKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKKworICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RlZCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxl
Y3RlZFN0YXRlKGJvb2wpOworCisgICAgdmlydHVhbCBTdHJpbmcgdGV4dEluZGVudGVkVG9SZXNw
ZWN0R3JvdXBMYWJlbCgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJSZW5kZXJT
dHlsZSgpIGNvbnN0OworICAgIHZvaWQgaGFuZGxlSW50cmluc2ljRXZlbnRJZk5lZWRlZCgpOwor
Citwcml2YXRlOgorICAgIE9wdGlvbkVsZW1lbnREYXRhIG1fZGF0YTsKKyAgICBib29sIG1fdmFs
dWVNYXRjaGVzUmVuZGVyZXI7CisgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOworfTsK
KworfQorCisjZW5kaWYKKyNlbmRpZgpJbmRleDogd21sL1dNTFRhZ05hbWVzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHdtbC9XTUxUYWdOYW1lcy5pbgkocmV2aXNpb24gNDAxMzApCisrKyB3bWwvV01MVGFn
TmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE4LDYgKzE4LDggQEAgaW5zZXJ0ZWRMZWdlbmQg
aW50ZXJmYWNlTmFtZT1XTUxJbnNlcnRlZAogbWV0YQogbm9vcAogb25ldmVudCBpbnRlcmZhY2VO
YW1lPVdNTE9uRXZlbnRFbGVtZW50CitvcHRncm91cCBpbnRlcmZhY2VOYW1lPVdNTE9wdEdyb3Vw
RWxlbWVudAorb3B0aW9uCiBwCiBwb3N0ZmllbGQKIHByZXYKQEAgLTMxLDUgKzMzLDUgQEAgdHIg
aW50ZXJmYWNlTmFtZT1XTUxFbGVtZW50CiAKICNpZiAwCiAjIFRoZXNlIGVsZW1lbnRzIGhhdmUg
YSBjb3JyZXNwb25kaW5nIEhUTUwqRWxlbWVudCBjbGFzcywgdGhhdCB3ZSB3YW50IHRvIHNoYXJl
IGNvZGUgd2l0aC4KLSMgb3B0Z3JvdXAsIG9wdGlvbiwgc2VsZWN0CisjIHNlbGVjdAogI2VuZGlm
Cg==
</data>
<flag name="review"
          id="12906"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>