<?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>87386</bug_id>
          
          <creation_ts>2012-05-24 06:18:53 -0700</creation_ts>
          <short_desc>Move StyleRuleImport to a file of its own</short_desc>
          <delta_ts>2012-05-24 08:07:26 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>632712</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-05-24 06:18:53 -0700</bug_when>
    <thetext>From CSSStyleRule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632725</commentid>
    <comment_count>1</comment_count>
      <attachid>143817</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-05-24 06:36:59 -0700</bug_when>
    <thetext>Created attachment 143817
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632817</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-05-24 08:07:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/118376</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143817</attachid>
            <date>2012-05-24 06:36:59 -0700</date>
            <delta_ts>2012-05-24 08:07:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>styleruleimport-file.patch</filename>
            <type>text/plain</type>
            <size>31824</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExODM1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA1LTI0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFN0eWxlUnVsZUltcG9y
dCB0byBhIGZpbGUgb2YgaXRzIG93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODczODYKKworICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBBbmRyZWFz
IEtsaW5nLgorCisgICAgICAgIE1vdmUgU3R5bGVSdWxlSW1wb3J0IG91dCBmcm9tIENTU0ltcG9y
dFJ1bGUuY3BwL2guCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NT
SW1wb3J0UnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltcG9ydFJ1bGU6OmhyZWYpOgorICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKENTU0ltcG9ydFJ1bGUpOgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuY3BwOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSdWxlSW1wb3J0Lmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKwogMjAxMi0wNS0yNCAgUmFrZXNoIEtO
ICA8cmFrZXNoLmtuQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBGaWx0ZXIgZm9yIFJhZGlvTm9k
ZUxpc3Qgc2hvdWxkIGJlIGNhc2Ugc2Vuc2l0aXZlLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDExODMzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC01MjUsNiArNTI1LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNz
cy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmNwcAogICAgIGNzcy9TdHlsZVJlc29sdmVyLmNwcAog
ICAgIGNzcy9TdHlsZVJ1bGUuY3BwCisgICAgY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKICAgICBj
c3MvU3R5bGVTaGVldC5jcHAKICAgICBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAogICAgIGNz
cy9TdHlsZVNoZWV0TGlzdC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQko
cmV2aXNpb24gMTE4MzM2KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQko
d29ya2luZyBjb3B5KQpAQCAtMTczMiw2ICsxNzMyLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSdWxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBcCisJU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUnVsZUltcG9ydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24g
MTE4MzM2KQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAt
NDk3LDYgKzQ5Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9TdHlsZVByb3BlcnR5U2hvcnRo
YW5kLmNwcCBcCiAgICAgY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIFwKICAgICBjc3MvU3R5bGVSdWxl
LmNwcCBcCisgICAgY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgXAogICAgIGNzcy9TdHlsZVNoZWV0
LmNwcCBcCiAgICAgY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAgXAogICAgIGNzcy9TdHlsZVNo
ZWV0TGlzdC5jcHAgXApAQCAtMTY2NCw2ICsxNjY1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgY3Nz
L1N0eWxlUHJvcGVydHlTaG9ydGhhbmQuaCBcCiAgICAgY3NzL1N0eWxlUmVzb2x2ZXIuaCBcCiAg
ICAgY3NzL1N0eWxlUnVsZS5oIFwKKyAgICBjc3MvU3R5bGVSdWxlSW1wb3J0LmggXAogICAgIGNz
cy9TdHlsZVNoZWV0LmggXAogICAgIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaCBcCiAgICAgY3Nz
L1N0eWxlU2hlZXRMaXN0LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTE4MzM2
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQ1
LDYgKzI1NDUsOCBAQAogICAgICAgICAgICAgJ2Nzcy9TdHlsZVJlc29sdmVyLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9TdHlsZVJ1bGUuY3BwJywKICAgICAgICAgICAgICdjc3MvU3R5bGVSdWxlLmgn
LAorICAgICAgICAgICAgJ2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwJywKKyAgICAgICAgICAgICdj
c3MvU3R5bGVSdWxlSW1wb3J0LmgnLAogICAgICAgICAgICAgJ2Nzcy9TdHlsZVNoZWV0LmNwcCcs
CiAgICAgICAgICAgICAnY3NzL1N0eWxlU2hlZXQuaCcsCiAgICAgICAgICAgICAnY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDExODMzNikKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zNzI0OSw2ICsz
NzI0OSwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFN0eWxlUnVsZS5oIgogCQkJCT4K
IAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3Nc
U3R5bGVSdWxlSW1wb3J0LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cY3NzXFN0eWxlUnVsZUltcG9ydC5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
IAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcU3R5bGVTaGVldC5jcHAiCiAJCQkJ
PgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMTE4MzM2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MDIxLDYgKzYwMjEsOCBA
QAogCQlFNDc3OEI4MDExNUE1ODFBMDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3NzhCN0UxMTVBNTgxQTAw
QjVEMzcyIC8qIEpTQ3VzdG9tRXZlbnQuaCAqLzsgfTsKIAkJRTQ3QjRCRTgwRTcxMjQxNjAwMDM4
ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDdCNEJFNjBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3QjRC
RTcwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmNwcCAqLzsgfTsKKwkJ
RTQ5NDZFQUUxNTZFNjRERDAwRDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDk0NkVBQzE1NkU2NEREMDBE
MzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0LmNwcCAqLzsgfTsKKwkJRTQ5NDZFQUYxNTZFNjRERDAw
RDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTQ5NDZFQUQxNTZFNjRERDAwRDMyOTdGIC8qIFN0eWxlUnVsZUlt
cG9ydC5oICovOyB9OwogCQlFNDlCRDlGQTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NTVmFsdWVQb29s
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlCRDlG
OTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggKi87IH07CiAJCUU0OUJEQTBCMTMx
RkQzRTUwMDNDNTZGMCAvKiBDU1NWYWx1ZVBvb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5QkRBMEExMzFGRDNFNTAwM0M1NkYwIC8qIENTU1Zh
bHVlUG9vbC5jcHAgKi87IH07CiAJCUU0QUZDRkE1MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6
aWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEFG
Q0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovOyB9OwpAQCAtMTMyMTcsNiAr
MTMyMTksOCBAQAogCQlFNDc3OEI3RTExNUE1ODFBMDBCNUQzNzIgLyogSlNDdXN0b21FdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0N1c3RvbUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0N0I0QkU2MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNo
ZWRSZXNvdXJjZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNo
ZWRSZXNvdXJjZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDdCNEJF
NzBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDk0NkVBQzE1NkU2NEREMDBEMzI5N0YgLyogU3R5
bGVSdWxlSW1wb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0
eWxlUnVsZUltcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0OTQ2RUFE
MTU2RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJbXBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3R5bGVSdWxlSW1wb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0OUJEOUY5MTMxRkQyRUQwMDNDNTZGMCAvKiBDU1NWYWx1ZVBvb2wuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWVQb29sLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0OUJEQTBBMTMxRkQzRTUwMDNDNTZGMCAvKiBDU1NWYWx1ZVBvb2wu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTVmFsdWVQb29sLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVD
IC8qIFVuaXRCZXppZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5pdEJl
emllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3ODYsNiArMjA3OTAsOCBA
QAogCQkJCUUxMzk4NjYyMTU0Nzg0NzQwMDFFM0Y2NSAvKiBTdHlsZVJlc29sdmVyLmggKi8sCiAJ
CQkJRTRCQkVENEExNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5jcHAgKi8sCiAJCQkJRTRC
QkVENEIxNEZDREJBMTAwM0YwQjk4IC8qIFN0eWxlUnVsZS5oICovLAorCQkJCUU0OTQ2RUFDMTU2
RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJbXBvcnQuY3BwICovLAorCQkJCUU0OTQ2RUFEMTU2
RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJbXBvcnQuaCAqLywKIAkJCQlBOEVBODAwNTBBMTk1
MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldC5jcHAgKi8sCiAJCQkJQThFQTgwMDQwQTE5NTE2RTAw
QThFRjVGIC8qIFN0eWxlU2hlZXQuaCAqLywKIAkJCQk4NTA2NTZEQzBBQUI0NEQ5MDAyRDE1QzAg
LyogU3R5bGVTaGVldC5pZGwgKi8sCkBAIC0yNDk0MCw2ICsyNDk0Niw3IEBACiAJCQkJMTQ4MkUw
QzcxNTZDMzZERTAwOTY1MDY1IC8qIEZyYWN0aW9uYWxMYXlvdXRCb3hFeHRlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0RjlFRUYzMTU2REEwMDcwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVu
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUJERjI1MTU2QzE4QzcwMDFDMTI0MyAvKiBET01F
cnJvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ5NDZFQUYxNTZFNjRERDAwRDMyOTdGIC8qIFN0
eWxlUnVsZUltcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzk2OSw2ICsyNzk3Niw3IEBACiAJ
CQkJMTQ4MkUwQzYxNTZDMzZERTAwOTY1MDY1IC8qIEZyYWN0aW9uYWxMYXlvdXRCb3hFeHRlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRGOUVFRjIxNTZEOUZGQTAwRDIzRTdFIC8qIFN0eWxl
U2hlZXRDb250ZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzFCREYyNDE1NkMxODgzMDAx
QzEyNDMgLyogRE9NRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTQ5NDZFQUUxNTZFNjRE
RDAwRDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAJKHJldmlzaW9uIDExODMzNikKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTA5
ICsyOCwxMiBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0Lmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5o
IgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxTdHlsZVJ1
bGVJbXBvcnQ+IFN0eWxlUnVsZUltcG9ydDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgaHJlZiwgUGFz
c1JlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBtZWRpYSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFN0eWxlUnVsZUltcG9ydChocmVmLCBtZWRpYSkpOwotfQotCi1TdHlsZVJ1bGVJbXBvcnQ6OlN0
eWxlUnVsZUltcG9ydChjb25zdCBTdHJpbmcmIGhyZWYsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNl
dD4gbWVkaWEpCi0gICAgOiBTdHlsZVJ1bGVCYXNlKEltcG9ydCwgMCkKLSAgICAsIG1fcGFyZW50
U3R5bGVTaGVldCgwKQotICAgICwgbV9zdHlsZVNoZWV0Q2xpZW50KHRoaXMpCi0gICAgLCBtX3N0
ckhyZWYoaHJlZikKLSAgICAsIG1fbWVkaWFRdWVyaWVzKG1lZGlhKQotICAgICwgbV9jYWNoZWRT
aGVldCgwKQotICAgICwgbV9sb2FkaW5nKGZhbHNlKQotewotICAgIGlmICghbV9tZWRpYVF1ZXJp
ZXMpCi0gICAgICAgIG1fbWVkaWFRdWVyaWVzID0gTWVkaWFRdWVyeVNldDo6Y3JlYXRlKFN0cmlu
ZygpKTsKLX0KLQotU3R5bGVSdWxlSW1wb3J0Ojp+U3R5bGVSdWxlSW1wb3J0KCkKLXsKLSAgICBp
ZiAobV9zdHlsZVNoZWV0KQotICAgICAgICBtX3N0eWxlU2hlZXQtPmNsZWFyT3duZXJSdWxlKCk7
Ci0gICAgaWYgKG1fY2FjaGVkU2hlZXQpCi0gICAgICAgIG1fY2FjaGVkU2hlZXQtPnJlbW92ZUNs
aWVudCgmbV9zdHlsZVNoZWV0Q2xpZW50KTsKLX0KLQotdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnNl
dENTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBj
b25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IENhY2hlZENTU1N0eWxlU2hlZXQqIGNhY2hlZFN0
eWxlU2hlZXQpCi17Ci0gICAgaWYgKG1fc3R5bGVTaGVldCkKLSAgICAgICAgbV9zdHlsZVNoZWV0
LT5jbGVhck93bmVyUnVsZSgpOwotCi0gICAgQ1NTUGFyc2VyQ29udGV4dCBjb250ZXh0ID0gbV9w
YXJlbnRTdHlsZVNoZWV0ID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5wYXJzZXJDb250ZXh0KCkgOiBD
U1NTdHJpY3RNb2RlOwotICAgIGNvbnRleHQuY2hhcnNldCA9IGNoYXJzZXQ7Ci0gICAgaWYgKCFi
YXNlVVJMLmlzTnVsbCgpKQotICAgICAgICBjb250ZXh0LmJhc2VVUkwgPSBiYXNlVVJMOwotCi0g
ICAgbV9zdHlsZVNoZWV0ID0gU3R5bGVTaGVldENvbnRlbnRzOjpjcmVhdGUodGhpcywgaHJlZiwg
YmFzZVVSTCwgY29udGV4dCk7Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3BhcmVudFN0
eWxlU2hlZXQgPyBtX3BhcmVudFN0eWxlU2hlZXQtPnNpbmdsZU93bmVyRG9jdW1lbnQoKSA6IDA7
Ci0gICAgbV9zdHlsZVNoZWV0LT5wYXJzZUF1dGhvclN0eWxlU2hlZXQoY2FjaGVkU3R5bGVTaGVl
dCwgZG9jdW1lbnQgPyBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSA6IDApOwotCi0gICAgbV9s
b2FkaW5nID0gZmFsc2U7Ci0KLSAgICBpZiAobV9wYXJlbnRTdHlsZVNoZWV0KSB7Ci0gICAgICAg
IG1fcGFyZW50U3R5bGVTaGVldC0+bm90aWZ5TG9hZGVkU2hlZXQoY2FjaGVkU3R5bGVTaGVldCk7
Ci0gICAgICAgIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hlY2tMb2FkZWQoKTsKLSAgICB9Ci19Ci0K
LWJvb2wgU3R5bGVSdWxlSW1wb3J0Ojppc0xvYWRpbmcoKSBjb25zdAotewotICAgIHJldHVybiBt
X2xvYWRpbmcgfHwgKG1fc3R5bGVTaGVldCAmJiBtX3N0eWxlU2hlZXQtPmlzTG9hZGluZygpKTsK
LX0KLQotdm9pZCBTdHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKLXsKLSAgICBp
ZiAoIW1fcGFyZW50U3R5bGVTaGVldCkKLSAgICAgICAgcmV0dXJuOwotICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1fcGFyZW50U3R5bGVTaGVldC0+c2luZ2xlT3duZXJEb2N1bWVudCgpOwotICAg
IGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIENhY2hlZFJlc291cmNlTG9h
ZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpOwotICAgIGlmICghY2FjaGVkUmVzb3VyY2VMb2FkZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIFN0cmluZyBhYnNIcmVmID0gbV9zdHJIcmVmOwotICAgIGlmICghbV9wYXJlbnRTdHlsZVNo
ZWV0LT5maW5hbFVSTCgpLmlzTnVsbCgpKQotICAgICAgICAvLyB1c2UgcGFyZW50IHN0eWxlaGVl
dCdzIFVSTCBhcyB0aGUgYmFzZSBVUkwKLSAgICAgICAgYWJzSHJlZiA9IEtVUkwobV9wYXJlbnRT
dHlsZVNoZWV0LT5maW5hbFVSTCgpLCBtX3N0ckhyZWYpLnN0cmluZygpOwotCi0gICAgLy8gQ2hl
Y2sgZm9yIGEgY3ljbGUgaW4gb3VyIGltcG9ydCBjaGFpbi4gIElmIHdlIGVuY291bnRlciBhIHN0
eWxlc2hlZXQKLSAgICAvLyBpbiBvdXIgcGFyZW50IGNoYWluIHdpdGggdGhlIHNhbWUgVVJMLCB0
aGVuIGp1c3QgYmFpbC4KLSAgICBTdHlsZVNoZWV0Q29udGVudHMqIHJvb3RTaGVldCA9IG1fcGFy
ZW50U3R5bGVTaGVldDsKLSAgICBmb3IgKFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQgPSBtX3Bh
cmVudFN0eWxlU2hlZXQ7IHNoZWV0OyBzaGVldCA9IHNoZWV0LT5wYXJlbnRTdHlsZVNoZWV0KCkp
IHsKLSAgICAgICAgaWYgKGFic0hyZWYgPT0gc2hlZXQtPmZpbmFsVVJMKCkuc3RyaW5nKCkgfHwg
YWJzSHJlZiA9PSBzaGVldC0+b3JpZ2luYWxVUkwoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgcm9vdFNoZWV0ID0gc2hlZXQ7Ci0gICAgfQotCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGFic0hyZWYpKTsKLSAgICBpZiAobV9wYXJlbnRT
dHlsZVNoZWV0LT5pc1VzZXJTdHlsZVNoZWV0KCkpCi0gICAgICAgIG1fY2FjaGVkU2hlZXQgPSBj
YWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIG1f
cGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fY2FjaGVk
U2hlZXQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVz
dCwgbV9wYXJlbnRTdHlsZVNoZWV0LT5jaGFyc2V0KCkpOwotICAgIGlmIChtX2NhY2hlZFNoZWV0
KSB7Ci0gICAgICAgIC8vIGlmIHRoZSBpbXBvcnQgcnVsZSBpcyBpc3N1ZWQgZHluYW1pY2FsbHks
IHRoZSBzaGVldCBtYXkgYmUKLSAgICAgICAgLy8gcmVtb3ZlZCBmcm9tIHRoZSBwZW5kaW5nIHNo
ZWV0IGNvdW50LCBzbyBsZXQgdGhlIGRvYyBrbm93Ci0gICAgICAgIC8vIHRoZSBzaGVldCBiZWlu
ZyBpbXBvcnRlZCBpcyBwZW5kaW5nLgotICAgICAgICBpZiAobV9wYXJlbnRTdHlsZVNoZWV0ICYm
IG1fcGFyZW50U3R5bGVTaGVldC0+bG9hZENvbXBsZXRlZCgpICYmIHJvb3RTaGVldCA9PSBtX3Bh
cmVudFN0eWxlU2hlZXQpCi0gICAgICAgICAgICBtX3BhcmVudFN0eWxlU2hlZXQtPnN0YXJ0TG9h
ZGluZ0R5bmFtaWNTaGVldCgpOwotICAgICAgICBtX2xvYWRpbmcgPSB0cnVlOwotICAgICAgICBt
X2NhY2hlZFNoZWV0LT5hZGRDbGllbnQoJm1fc3R5bGVTaGVldENsaWVudCk7Ci0gICAgfQotfQot
CiBDU1NJbXBvcnRSdWxlOjpDU1NJbXBvcnRSdWxlKFN0eWxlUnVsZUltcG9ydCogaW1wb3J0UnVs
ZSwgQ1NTU3R5bGVTaGVldCogcGFyZW50KQogICAgIDogQ1NTUnVsZShwYXJlbnQsIENTU1J1bGU6
OklNUE9SVF9SVUxFKQogICAgICwgbV9pbXBvcnRSdWxlKGltcG9ydFJ1bGUpCkBAIC0xNDUsNiAr
NDgsMTEgQEAgQ1NTSW1wb3J0UnVsZTo6fkNTU0ltcG9ydFJ1bGUoKQogICAgICAgICBtX21lZGlh
Q1NTT01XcmFwcGVyLT5jbGVhclBhcmVudFJ1bGUoKTsKIH0KIAorU3RyaW5nIENTU0ltcG9ydFJ1
bGU6OmhyZWYoKSBjb25zdAoreworICAgIHJldHVybiBtX2ltcG9ydFJ1bGUtPmhyZWYoKTsKK30K
KwogTWVkaWFMaXN0KiBDU1NJbXBvcnRSdWxlOjptZWRpYSgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X21lZGlhQ1NTT01XcmFwcGVyKQpAQCAtMTc4LDUgKzg2LDQgQEAgQ1NTU3R5bGVTaGVldCogQ1NT
SW1wb3J0UnVsZTo6c3R5bGVTaGVldAogICAgIHJldHVybiBtX3N0eWxlU2hlZXRDU1NPTVdyYXBw
ZXIuZ2V0KCk7IAogfQogCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUuaAkocmV2aXNpb24gMTE4MzM0KQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNjUgKzIzLDEzIEBACiAj
ZGVmaW5lIENTU0ltcG9ydFJ1bGVfaAogCiAjaW5jbHVkZSAiQ1NTUnVsZS5oIgotI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiQ2FjaGVkU3R5bGVTaGVldENsaWVu
dC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiU3R5bGVSdWxlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVldDsKIGNs
YXNzIE1lZGlhTGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlTZXQ7Ci1jbGFzcyBTdHlsZVNoZWV0Q29u
dGVudHM7Ci0KLWNsYXNzIFN0eWxlUnVsZUltcG9ydCA6IHB1YmxpYyBTdHlsZVJ1bGVCYXNlIHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVJ1bGVJbXBvcnQ+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIGhyZWYsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4pOwotCi0gICAgflN0
eWxlUnVsZUltcG9ydCgpOwotICAgIAotICAgIFN0eWxlU2hlZXRDb250ZW50cyogcGFyZW50U3R5
bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50U3R5bGVTaGVldDsgfQotICAgIHZvaWQg
c2V0UGFyZW50U3R5bGVTaGVldChTdHlsZVNoZWV0Q29udGVudHMqIHNoZWV0KSB7IEFTU0VSVChz
aGVldCk7IG1fcGFyZW50U3R5bGVTaGVldCA9IHNoZWV0OyB9Ci0gICAgdm9pZCBjbGVhclBhcmVu
dFN0eWxlU2hlZXQoKSB7IG1fcGFyZW50U3R5bGVTaGVldCA9IDA7IH0KLQotICAgIFN0cmluZyBo
cmVmKCkgY29uc3QgeyByZXR1cm4gbV9zdHJIcmVmOyB9Ci0gICAgU3R5bGVTaGVldENvbnRlbnRz
KiBzdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVNoZWV0LmdldCgpOyB9Ci0KLSAg
ICBib29sIGlzTG9hZGluZygpIGNvbnN0OwotICAgIE1lZGlhUXVlcnlTZXQqIG1lZGlhUXVlcmll
cygpIHsgcmV0dXJuIG1fbWVkaWFRdWVyaWVzLmdldCgpOyB9Ci0KLSAgICB2b2lkIHJlcXVlc3RT
dHlsZVNoZWV0KCk7Ci0KLXByaXZhdGU6Ci0gICAgLy8gTk9URTogV2UgcHV0IHRoZSBDYWNoZWRT
dHlsZVNoZWV0Q2xpZW50IGluIGEgbWVtYmVyIGluc3RlYWQgb2YgaW5oZXJpdGluZyBmcm9tIGl0
Ci0gICAgLy8gdG8gYXZvaWQgYWRkaW5nIGEgdnB0ciB0byBTdHlsZVJ1bGVJbXBvcnQuCi0gICAg
Y2xhc3MgSW1wb3J0ZWRTdHlsZVNoZWV0Q2xpZW50IDogcHVibGljIENhY2hlZFN0eWxlU2hlZXRD
bGllbnQgewotICAgIHB1YmxpYzoKLSAgICAgICAgSW1wb3J0ZWRTdHlsZVNoZWV0Q2xpZW50KFN0
eWxlUnVsZUltcG9ydCogb3duZXJSdWxlKSA6IG1fb3duZXJSdWxlKG93bmVyUnVsZSkgeyB9Ci0g
ICAgICAgIHZpcnR1YWwgfkltcG9ydGVkU3R5bGVTaGVldENsaWVudCgpIHsgfQotICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q1NTU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IEtV
UkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQ2FjaGVkQ1NTU3R5bGVT
aGVldCogc2hlZXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1fb3duZXJSdWxlLT5zZXRDU1NT
dHlsZVNoZWV0KGhyZWYsIGJhc2VVUkwsIGNoYXJzZXQsIHNoZWV0KTsKLSAgICAgICAgfQotICAg
IHByaXZhdGU6Ci0gICAgICAgIFN0eWxlUnVsZUltcG9ydCogbV9vd25lclJ1bGU7Ci0gICAgfTsK
LQotICAgIHZvaWQgc2V0Q1NTU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IEtV
UkwmIGJhc2VVUkwsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQ2FjaGVkQ1NTU3R5bGVT
aGVldCopOwotICAgIGZyaWVuZCBjbGFzcyBJbXBvcnRlZFN0eWxlU2hlZXRDbGllbnQ7Ci0KLSAg
ICBTdHlsZVJ1bGVJbXBvcnQoY29uc3QgU3RyaW5nJiBocmVmLCBQYXNzUmVmUHRyPE1lZGlhUXVl
cnlTZXQ+KTsKLQotICAgIFN0eWxlU2hlZXRDb250ZW50cyogbV9wYXJlbnRTdHlsZVNoZWV0Owot
Ci0gICAgSW1wb3J0ZWRTdHlsZVNoZWV0Q2xpZW50IG1fc3R5bGVTaGVldENsaWVudDsKLSAgICBT
dHJpbmcgbV9zdHJIcmVmOwotICAgIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBtX21lZGlhUXVlcmll
czsKLSAgICBSZWZQdHI8U3R5bGVTaGVldENvbnRlbnRzPiBtX3N0eWxlU2hlZXQ7Ci0gICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gbV9jYWNoZWRTaGVldDsKLSAg
ICBib29sIG1fbG9hZGluZzsKLX07CitjbGFzcyBTdHlsZVJ1bGVJbXBvcnQ7CiAKIGNsYXNzIENT
U0ltcG9ydFJ1bGUgOiBwdWJsaWMgQ1NTUnVsZSB7CiBwdWJsaWM6CkBAIC04OSw3ICszNyw3IEBA
IHB1YmxpYzoKICAgICAKICAgICB+Q1NTSW1wb3J0UnVsZSgpOwogCi0gICAgU3RyaW5nIGhyZWYo
KSBjb25zdCB7IHJldHVybiBtX2ltcG9ydFJ1bGUtPmhyZWYoKTsgfQorICAgIFN0cmluZyBocmVm
KCkgY29uc3Q7CiAgICAgTWVkaWFMaXN0KiBtZWRpYSgpIGNvbnN0OwogICAgIENTU1N0eWxlU2hl
ZXQqIHN0eWxlU2hlZXQoKSBjb25zdDsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCShyZXZpc2lvbiAxMTgzMzYpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIkNTU0ltYWdlU2V0
VmFsdWUuaCIKICNlbmRpZgogI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKLSNpbmNsdWRlICJD
U1NJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTSW5oZXJpdGVkVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NJbml0aWFsVmFsdWUuaCIKICNpbmNsdWRlICJDU1NMaW5lQm94Q29udGFpblZhbHVlLmgi
CkBAIC01MCw3ICs0OSw2IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmgiCiAj
aW5jbHVkZSAiQ1NTUmVmbGVjdFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3IuaCIKLSNp
bmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1
ZUtleXdvcmRzLmgiCkBAIC03Niw2ICs3NCw3IEBACiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNl
dC5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTaG9ydGhhbmQuaCIKICNpbmNsdWRlICJTdHls
ZVJ1bGUuaCIKKyNpbmNsdWRlICJTdHlsZVJ1bGVJbXBvcnQuaCIKICNpbmNsdWRlICJTdHlsZVNo
ZWV0Q29udGVudHMuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAkocmV2
aXNpb24gMTE4MzM2KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHA6
MTE4MzM2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgKiAoQykgMTk5OS0yMDAzIExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCisgKiAoQykgMjAwMi0yMDAzIERpcmsgTXVlbGxlciAobXVlbGxl
ckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1LCAyMDA2LCAyMDA4LCAyMDA5
LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKKworI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQu
aCIKKyNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk1lZGlhTGlz
dC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
KyNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8U3R5bGVSdWxlSW1wb3J0PiBTdHlsZVJ1bGVJbXBvcnQ6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIGhyZWYsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVk
aWEpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZVJ1bGVJbXBvcnQoaHJlZiwgbWVk
aWEpKTsKK30KKworU3R5bGVSdWxlSW1wb3J0OjpTdHlsZVJ1bGVJbXBvcnQoY29uc3QgU3RyaW5n
JiBocmVmLCBQYXNzUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1lZGlhKQorICAgIDogU3R5bGVSdWxl
QmFzZShJbXBvcnQsIDApCisgICAgLCBtX3BhcmVudFN0eWxlU2hlZXQoMCkKKyAgICAsIG1fc3R5
bGVTaGVldENsaWVudCh0aGlzKQorICAgICwgbV9zdHJIcmVmKGhyZWYpCisgICAgLCBtX21lZGlh
UXVlcmllcyhtZWRpYSkKKyAgICAsIG1fY2FjaGVkU2hlZXQoMCkKKyAgICAsIG1fbG9hZGluZyhm
YWxzZSkKK3sKKyAgICBpZiAoIW1fbWVkaWFRdWVyaWVzKQorICAgICAgICBtX21lZGlhUXVlcmll
cyA9IE1lZGlhUXVlcnlTZXQ6OmNyZWF0ZShTdHJpbmcoKSk7Cit9CisKK1N0eWxlUnVsZUltcG9y
dDo6flN0eWxlUnVsZUltcG9ydCgpCit7CisgICAgaWYgKG1fc3R5bGVTaGVldCkKKyAgICAgICAg
bV9zdHlsZVNoZWV0LT5jbGVhck93bmVyUnVsZSgpOworICAgIGlmIChtX2NhY2hlZFNoZWV0KQor
ICAgICAgICBtX2NhY2hlZFNoZWV0LT5yZW1vdmVDbGllbnQoJm1fc3R5bGVTaGVldENsaWVudCk7
Cit9CisKK3ZvaWQgU3R5bGVSdWxlSW1wb3J0OjpzZXRDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmlu
ZyYgaHJlZiwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25z
dCBDYWNoZWRDU1NTdHlsZVNoZWV0KiBjYWNoZWRTdHlsZVNoZWV0KQoreworICAgIGlmIChtX3N0
eWxlU2hlZXQpCisgICAgICAgIG1fc3R5bGVTaGVldC0+Y2xlYXJPd25lclJ1bGUoKTsKKworICAg
IENTU1BhcnNlckNvbnRleHQgY29udGV4dCA9IG1fcGFyZW50U3R5bGVTaGVldCA/IG1fcGFyZW50
U3R5bGVTaGVldC0+cGFyc2VyQ29udGV4dCgpIDogQ1NTU3RyaWN0TW9kZTsKKyAgICBjb250ZXh0
LmNoYXJzZXQgPSBjaGFyc2V0OworICAgIGlmICghYmFzZVVSTC5pc051bGwoKSkKKyAgICAgICAg
Y29udGV4dC5iYXNlVVJMID0gYmFzZVVSTDsKKworICAgIG1fc3R5bGVTaGVldCA9IFN0eWxlU2hl
ZXRDb250ZW50czo6Y3JlYXRlKHRoaXMsIGhyZWYsIGJhc2VVUkwsIGNvbnRleHQpOworCisgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gbV9wYXJlbnRTdHlsZVNoZWV0ID8gbV9wYXJlbnRTdHlsZVNo
ZWV0LT5zaW5nbGVPd25lckRvY3VtZW50KCkgOiAwOworICAgIG1fc3R5bGVTaGVldC0+cGFyc2VB
dXRob3JTdHlsZVNoZWV0KGNhY2hlZFN0eWxlU2hlZXQsIGRvY3VtZW50ID8gZG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCkgOiAwKTsKKworICAgIG1fbG9hZGluZyA9IGZhbHNlOworCisgICAgaWYg
KG1fcGFyZW50U3R5bGVTaGVldCkgeworICAgICAgICBtX3BhcmVudFN0eWxlU2hlZXQtPm5vdGlm
eUxvYWRlZFNoZWV0KGNhY2hlZFN0eWxlU2hlZXQpOworICAgICAgICBtX3BhcmVudFN0eWxlU2hl
ZXQtPmNoZWNrTG9hZGVkKCk7CisgICAgfQorfQorCitib29sIFN0eWxlUnVsZUltcG9ydDo6aXNM
b2FkaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2FkaW5nIHx8IChtX3N0eWxlU2hlZXQg
JiYgbV9zdHlsZVNoZWV0LT5pc0xvYWRpbmcoKSk7Cit9CisKK3ZvaWQgU3R5bGVSdWxlSW1wb3J0
OjpyZXF1ZXN0U3R5bGVTaGVldCgpCit7CisgICAgaWYgKCFtX3BhcmVudFN0eWxlU2hlZXQpCisg
ICAgICAgIHJldHVybjsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3BhcmVudFN0eWxlU2hl
ZXQtPnNpbmdsZU93bmVyRG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIg
PSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKKyAgICBpZiAoIWNhY2hlZFJlc291
cmNlTG9hZGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgYWJzSHJlZiA9IG1fc3Ry
SHJlZjsKKyAgICBpZiAoIW1fcGFyZW50U3R5bGVTaGVldC0+ZmluYWxVUkwoKS5pc051bGwoKSkK
KyAgICAgICAgLy8gdXNlIHBhcmVudCBzdHlsZWhlZXQncyBVUkwgYXMgdGhlIGJhc2UgVVJMCisg
ICAgICAgIGFic0hyZWYgPSBLVVJMKG1fcGFyZW50U3R5bGVTaGVldC0+ZmluYWxVUkwoKSwgbV9z
dHJIcmVmKS5zdHJpbmcoKTsKKworICAgIC8vIENoZWNrIGZvciBhIGN5Y2xlIGluIG91ciBpbXBv
cnQgY2hhaW4uICBJZiB3ZSBlbmNvdW50ZXIgYSBzdHlsZXNoZWV0CisgICAgLy8gaW4gb3VyIHBh
cmVudCBjaGFpbiB3aXRoIHRoZSBzYW1lIFVSTCwgdGhlbiBqdXN0IGJhaWwuCisgICAgU3R5bGVT
aGVldENvbnRlbnRzKiByb290U2hlZXQgPSBtX3BhcmVudFN0eWxlU2hlZXQ7CisgICAgZm9yIChT
dHlsZVNoZWV0Q29udGVudHMqIHNoZWV0ID0gbV9wYXJlbnRTdHlsZVNoZWV0OyBzaGVldDsgc2hl
ZXQgPSBzaGVldC0+cGFyZW50U3R5bGVTaGVldCgpKSB7CisgICAgICAgIGlmIChhYnNIcmVmID09
IHNoZWV0LT5maW5hbFVSTCgpLnN0cmluZygpIHx8IGFic0hyZWYgPT0gc2hlZXQtPm9yaWdpbmFs
VVJMKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHJvb3RTaGVldCA9IHNoZWV0Owor
ICAgIH0KKworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVS
TChhYnNIcmVmKSk7CisgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldC0+aXNVc2VyU3R5bGVTaGVl
dCgpKQorICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVl
c3RVc2VyQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQo
KSk7CisgICAgZWxzZQorICAgICAgICBtX2NhY2hlZFNoZWV0ID0gY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPnJlcXVlc3RDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hh
cnNldCgpKTsKKyAgICBpZiAobV9jYWNoZWRTaGVldCkgeworICAgICAgICAvLyBpZiB0aGUgaW1w
b3J0IHJ1bGUgaXMgaXNzdWVkIGR5bmFtaWNhbGx5LCB0aGUgc2hlZXQgbWF5IGJlCisgICAgICAg
IC8vIHJlbW92ZWQgZnJvbSB0aGUgcGVuZGluZyBzaGVldCBjb3VudCwgc28gbGV0IHRoZSBkb2Mg
a25vdworICAgICAgICAvLyB0aGUgc2hlZXQgYmVpbmcgaW1wb3J0ZWQgaXMgcGVuZGluZy4KKyAg
ICAgICAgaWYgKG1fcGFyZW50U3R5bGVTaGVldCAmJiBtX3BhcmVudFN0eWxlU2hlZXQtPmxvYWRD
b21wbGV0ZWQoKSAmJiByb290U2hlZXQgPT0gbV9wYXJlbnRTdHlsZVNoZWV0KQorICAgICAgICAg
ICAgbV9wYXJlbnRTdHlsZVNoZWV0LT5zdGFydExvYWRpbmdEeW5hbWljU2hlZXQoKTsKKyAgICAg
ICAgbV9sb2FkaW5nID0gdHJ1ZTsKKyAgICAgICAgbV9jYWNoZWRTaGVldC0+YWRkQ2xpZW50KCZt
X3N0eWxlU2hlZXRDbGllbnQpOworICAgIH0KK30KKworQ1NTSW1wb3J0UnVsZTo6Q1NTSW1wb3J0
UnVsZShTdHlsZVJ1bGVJbXBvcnQqIGltcG9ydFJ1bGUsIENTU1N0eWxlU2hlZXQqIHBhcmVudCkK
KyAgICA6IENTU1J1bGUocGFyZW50LCBDU1NSdWxlOjpJTVBPUlRfUlVMRSkKKyAgICAsIG1faW1w
b3J0UnVsZShpbXBvcnRSdWxlKQoreworfQorCitDU1NJbXBvcnRSdWxlOjp+Q1NTSW1wb3J0UnVs
ZSgpCit7CisgICAgaWYgKG1fc3R5bGVTaGVldENTU09NV3JhcHBlcikKKyAgICAgICAgbV9zdHls
ZVNoZWV0Q1NTT01XcmFwcGVyLT5jbGVhck93bmVyUnVsZSgpOworICAgIGlmIChtX21lZGlhQ1NT
T01XcmFwcGVyKQorICAgICAgICBtX21lZGlhQ1NTT01XcmFwcGVyLT5jbGVhclBhcmVudFJ1bGUo
KTsKK30KKworTWVkaWFMaXN0KiBDU1NJbXBvcnRSdWxlOjptZWRpYSgpIGNvbnN0Cit7CisgICAg
aWYgKCFtX21lZGlhQ1NTT01XcmFwcGVyKQorICAgICAgICBtX21lZGlhQ1NTT01XcmFwcGVyID0g
TWVkaWFMaXN0OjpjcmVhdGUobV9pbXBvcnRSdWxlLT5tZWRpYVF1ZXJpZXMoKSwgY29uc3RfY2Fz
dDxDU1NJbXBvcnRSdWxlKj4odGhpcykpOworICAgIHJldHVybiBtX21lZGlhQ1NTT01XcmFwcGVy
LmdldCgpOworfQorCitTdHJpbmcgQ1NTSW1wb3J0UnVsZTo6Y3NzVGV4dCgpIGNvbnN0Cit7Cisg
ICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgcmVzdWx0LmFwcGVuZCgiQGltcG9ydCB1cmwo
XCIiKTsKKyAgICByZXN1bHQuYXBwZW5kKG1faW1wb3J0UnVsZS0+aHJlZigpKTsKKyAgICByZXN1
bHQuYXBwZW5kKCJcIikiKTsKKworICAgIGlmIChtX2ltcG9ydFJ1bGUtPm1lZGlhUXVlcmllcygp
KSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCht
X2ltcG9ydFJ1bGUtPm1lZGlhUXVlcmllcygpLT5tZWRpYVRleHQoKSk7CisgICAgfQorICAgIHJl
c3VsdC5hcHBlbmQoJzsnKTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7Cit9
CisKK0NTU1N0eWxlU2hlZXQqIENTU0ltcG9ydFJ1bGU6OnN0eWxlU2hlZXQoKSBjb25zdAoreyAK
KyAgICBpZiAoIW1faW1wb3J0UnVsZS0+c3R5bGVTaGVldCgpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIGlmICghbV9zdHlsZVNoZWV0Q1NTT01XcmFwcGVyKQorICAgICAgICBtX3N0eWxlU2hl
ZXRDU1NPTVdyYXBwZXIgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUobV9pbXBvcnRSdWxlLT5zdHls
ZVNoZWV0KCksIGNvbnN0X2Nhc3Q8Q1NTSW1wb3J0UnVsZSo+KHRoaXMpKTsKKyAgICByZXR1cm4g
bV9zdHlsZVNoZWV0Q1NTT01XcmFwcGVyLmdldCgpOyAKK30KKworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAkocmV2aXNp
b24gMTE4MzM0KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogICogKEMpIDE5OTktMjAwMyBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQogICogKEMpIDIwMDItMjAwMyBEaXJrIE11ZWxsZXIgKG11ZWxs
ZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiwgMjAwOCwgMjAw
OSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDIsIDIwMDUsIDIwMDYsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCwxOCArMjAsMTUgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgor
I2luY2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgogCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5o
IgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiTWVkaWFMaXN0
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMTMxLDUyICsxMjgsNCBAQCB2b2lkIFN0eWxlUnVsZUltcG9ydDo6cmVx
dWVzdFN0eWxlU2hlZXQoCiAgICAgfQogfQogCi1DU1NJbXBvcnRSdWxlOjpDU1NJbXBvcnRSdWxl
KFN0eWxlUnVsZUltcG9ydCogaW1wb3J0UnVsZSwgQ1NTU3R5bGVTaGVldCogcGFyZW50KQotICAg
IDogQ1NTUnVsZShwYXJlbnQsIENTU1J1bGU6OklNUE9SVF9SVUxFKQotICAgICwgbV9pbXBvcnRS
dWxlKGltcG9ydFJ1bGUpCi17Ci19Ci0KLUNTU0ltcG9ydFJ1bGU6On5DU1NJbXBvcnRSdWxlKCkK
LXsKLSAgICBpZiAobV9zdHlsZVNoZWV0Q1NTT01XcmFwcGVyKQotICAgICAgICBtX3N0eWxlU2hl
ZXRDU1NPTVdyYXBwZXItPmNsZWFyT3duZXJSdWxlKCk7Ci0gICAgaWYgKG1fbWVkaWFDU1NPTVdy
YXBwZXIpCi0gICAgICAgIG1fbWVkaWFDU1NPTVdyYXBwZXItPmNsZWFyUGFyZW50UnVsZSgpOwot
fQotCi1NZWRpYUxpc3QqIENTU0ltcG9ydFJ1bGU6Om1lZGlhKCkgY29uc3QKLXsKLSAgICBpZiAo
IW1fbWVkaWFDU1NPTVdyYXBwZXIpCi0gICAgICAgIG1fbWVkaWFDU1NPTVdyYXBwZXIgPSBNZWRp
YUxpc3Q6OmNyZWF0ZShtX2ltcG9ydFJ1bGUtPm1lZGlhUXVlcmllcygpLCBjb25zdF9jYXN0PENT
U0ltcG9ydFJ1bGUqPih0aGlzKSk7Ci0gICAgcmV0dXJuIG1fbWVkaWFDU1NPTVdyYXBwZXIuZ2V0
KCk7Ci19Ci0KLVN0cmluZyBDU1NJbXBvcnRSdWxlOjpjc3NUZXh0KCkgY29uc3QKLXsKLSAgICBT
dHJpbmdCdWlsZGVyIHJlc3VsdDsKLSAgICByZXN1bHQuYXBwZW5kKCJAaW1wb3J0IHVybChcIiIp
OwotICAgIHJlc3VsdC5hcHBlbmQobV9pbXBvcnRSdWxlLT5ocmVmKCkpOwotICAgIHJlc3VsdC5h
cHBlbmQoIlwiKSIpOwotCi0gICAgaWYgKG1faW1wb3J0UnVsZS0+bWVkaWFRdWVyaWVzKCkpIHsK
LSAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpOwotICAgICAgICByZXN1bHQuYXBwZW5kKG1faW1w
b3J0UnVsZS0+bWVkaWFRdWVyaWVzKCktPm1lZGlhVGV4dCgpKTsKLSAgICB9Ci0gICAgcmVzdWx0
LmFwcGVuZCgnOycpOwotICAgIAotICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKLX0KLQot
Q1NTU3R5bGVTaGVldCogQ1NTSW1wb3J0UnVsZTo6c3R5bGVTaGVldCgpIGNvbnN0Ci17IAotICAg
IGlmICghbV9pbXBvcnRSdWxlLT5zdHlsZVNoZWV0KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0g
ICAgaWYgKCFtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXIpCi0gICAgICAgIG1fc3R5bGVTaGVldENT
U09NV3JhcHBlciA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShtX2ltcG9ydFJ1bGUtPnN0eWxlU2hl
ZXQoKSwgY29uc3RfY2FzdDxDU1NJbXBvcnRSdWxlKj4odGhpcykpOwotICAgIHJldHVybiBtX3N0
eWxlU2hlZXRDU1NPTVdyYXBwZXIuZ2V0KCk7IAotfQotCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmgJKHJldmlzaW9uIDExODMz
NCkJKGZyb20gU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuaDoxMTgzMzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMDkgQEAKKy8qCisgKiAoQykgMTk5OS0yMDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCisgKiAoQykgMjAwMi0yMDAzIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICog
Q29weXJpZ2h0IChDKSAyMDAyLCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2lmbmRlZiBDU1NJbXBvcnRSdWxlX2gKKyNkZWZpbmUgQ1NTSW1wb3J0UnVsZV9oCisK
KyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIK
KyNpbmNsdWRlICJDYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKKyNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0OworY2xhc3MgTWVkaWFMaXN0OworY2xhc3MgTWVk
aWFRdWVyeVNldDsKK2NsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKKworY2xhc3MgU3R5bGVSdWxl
SW1wb3J0IDogcHVibGljIFN0eWxlUnVsZUJhc2UgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0eWxlUnVsZUltcG9ydD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgaHJlZiwgUGFzc1Jl
ZlB0cjxNZWRpYVF1ZXJ5U2V0Pik7CisKKyAgICB+U3R5bGVSdWxlSW1wb3J0KCk7CisgICAgCisg
ICAgU3R5bGVTaGVldENvbnRlbnRzKiBwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4g
bV9wYXJlbnRTdHlsZVNoZWV0OyB9CisgICAgdm9pZCBzZXRQYXJlbnRTdHlsZVNoZWV0KFN0eWxl
U2hlZXRDb250ZW50cyogc2hlZXQpIHsgQVNTRVJUKHNoZWV0KTsgbV9wYXJlbnRTdHlsZVNoZWV0
ID0gc2hlZXQ7IH0KKyAgICB2b2lkIGNsZWFyUGFyZW50U3R5bGVTaGVldCgpIHsgbV9wYXJlbnRT
dHlsZVNoZWV0ID0gMDsgfQorCisgICAgU3RyaW5nIGhyZWYoKSBjb25zdCB7IHJldHVybiBtX3N0
ckhyZWY7IH0KKyAgICBTdHlsZVNoZWV0Q29udGVudHMqIHN0eWxlU2hlZXQoKSBjb25zdCB7IHJl
dHVybiBtX3N0eWxlU2hlZXQuZ2V0KCk7IH0KKworICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7
CisgICAgTWVkaWFRdWVyeVNldCogbWVkaWFRdWVyaWVzKCkgeyByZXR1cm4gbV9tZWRpYVF1ZXJp
ZXMuZ2V0KCk7IH0KKworICAgIHZvaWQgcmVxdWVzdFN0eWxlU2hlZXQoKTsKKworcHJpdmF0ZToK
KyAgICAvLyBOT1RFOiBXZSBwdXQgdGhlIENhY2hlZFN0eWxlU2hlZXRDbGllbnQgaW4gYSBtZW1i
ZXIgaW5zdGVhZCBvZiBpbmhlcml0aW5nIGZyb20gaXQKKyAgICAvLyB0byBhdm9pZCBhZGRpbmcg
YSB2cHRyIHRvIFN0eWxlUnVsZUltcG9ydC4KKyAgICBjbGFzcyBJbXBvcnRlZFN0eWxlU2hlZXRD
bGllbnQgOiBwdWJsaWMgQ2FjaGVkU3R5bGVTaGVldENsaWVudCB7CisgICAgcHVibGljOgorICAg
ICAgICBJbXBvcnRlZFN0eWxlU2hlZXRDbGllbnQoU3R5bGVSdWxlSW1wb3J0KiBvd25lclJ1bGUp
IDogbV9vd25lclJ1bGUob3duZXJSdWxlKSB7IH0KKyAgICAgICAgdmlydHVhbCB+SW1wb3J0ZWRT
dHlsZVNoZWV0Q2xpZW50KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRDU1NTdHlsZVNo
ZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0LCBjb25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0KiBzaGVldCkKKyAgICAgICAgewor
ICAgICAgICAgICAgbV9vd25lclJ1bGUtPnNldENTU1N0eWxlU2hlZXQoaHJlZiwgYmFzZVVSTCwg
Y2hhcnNldCwgc2hlZXQpOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgU3R5bGVS
dWxlSW1wb3J0KiBtX293bmVyUnVsZTsKKyAgICB9OworCisgICAgdm9pZCBzZXRDU1NTdHlsZVNo
ZWV0KGNvbnN0IFN0cmluZyYgaHJlZiwgY29uc3QgS1VSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0LCBjb25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0Kik7CisgICAgZnJpZW5kIGNsYXNz
IEltcG9ydGVkU3R5bGVTaGVldENsaWVudDsKKworICAgIFN0eWxlUnVsZUltcG9ydChjb25zdCBT
dHJpbmcmIGhyZWYsIFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4pOworCisgICAgU3R5bGVTaGVl
dENvbnRlbnRzKiBtX3BhcmVudFN0eWxlU2hlZXQ7CisKKyAgICBJbXBvcnRlZFN0eWxlU2hlZXRD
bGllbnQgbV9zdHlsZVNoZWV0Q2xpZW50OworICAgIFN0cmluZyBtX3N0ckhyZWY7CisgICAgUmVm
UHRyPE1lZGlhUXVlcnlTZXQ+IG1fbWVkaWFRdWVyaWVzOworICAgIFJlZlB0cjxTdHlsZVNoZWV0
Q29udGVudHM+IG1fc3R5bGVTaGVldDsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRD
U1NTdHlsZVNoZWV0PiBtX2NhY2hlZFNoZWV0OworICAgIGJvb2wgbV9sb2FkaW5nOworfTsKKwor
Y2xhc3MgQ1NTSW1wb3J0UnVsZSA6IHB1YmxpYyBDU1NSdWxlIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDU1NJbXBvcnRSdWxlPiBjcmVhdGUoU3R5bGVSdWxlSW1wb3J0KiBydWxl
LCBDU1NTdHlsZVNoZWV0KiBzaGVldCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENTU0ltcG9ydFJ1
bGUocnVsZSwgc2hlZXQpKTsgfQorICAgIAorICAgIH5DU1NJbXBvcnRSdWxlKCk7CisKKyAgICBT
dHJpbmcgaHJlZigpIGNvbnN0IHsgcmV0dXJuIG1faW1wb3J0UnVsZS0+aHJlZigpOyB9CisgICAg
TWVkaWFMaXN0KiBtZWRpYSgpIGNvbnN0OworICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQo
KSBjb25zdDsKKyAgICAKKyAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OworCitwcml2YXRlOgor
ICAgIENTU0ltcG9ydFJ1bGUoU3R5bGVSdWxlSW1wb3J0KiwgQ1NTU3R5bGVTaGVldCopOworCisg
ICAgUmVmUHRyPFN0eWxlUnVsZUltcG9ydD4gbV9pbXBvcnRSdWxlOworCisgICAgbXV0YWJsZSBS
ZWZQdHI8TWVkaWFMaXN0PiBtX21lZGlhQ1NTT01XcmFwcGVyOworICAgIG11dGFibGUgUmVmUHRy
PENTU1N0eWxlU2hlZXQ+IG1fc3R5bGVTaGVldENTU09NV3JhcHBlcjsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENTU0ltcG9ydFJ1bGVfaApJbmRleDogU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuaAkocmV2aXNpb24gMTE4MzM0KQorKysgU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogLyoKICAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqIChD
KSAyMDAyLTIwMDMgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDIsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDAyLCAyMDA2LCAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTksMTkgKzE5LDE2IEBACiAgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIENTU0ltcG9ydFJ1bGVf
aAotI2RlZmluZSBDU1NJbXBvcnRSdWxlX2gKKyNpZm5kZWYgU3R5bGVSdWxlSW1wb3J0X2gKKyNk
ZWZpbmUgU3R5bGVSdWxlSW1wb3J0X2gKIAotI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRDbGll
bnQuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7Ci1j
bGFzcyBNZWRpYUxpc3Q7CiBjbGFzcyBNZWRpYVF1ZXJ5U2V0OwogY2xhc3MgU3R5bGVTaGVldENv
bnRlbnRzOwogCkBAIC04MywyNyArODAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9sb2FkaW5n
OwogfTsKIAotY2xhc3MgQ1NTSW1wb3J0UnVsZSA6IHB1YmxpYyBDU1NSdWxlIHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NJbXBvcnRSdWxlPiBjcmVhdGUoU3R5bGVSdWxlSW1w
b3J0KiBydWxlLCBDU1NTdHlsZVNoZWV0KiBzaGVldCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0ltcG9ydFJ1bGUocnVsZSwgc2hlZXQpKTsgfQotICAgIAotICAgIH5DU1NJbXBvcnRSdWxlKCk7
Ci0KLSAgICBTdHJpbmcgaHJlZigpIGNvbnN0IHsgcmV0dXJuIG1faW1wb3J0UnVsZS0+aHJlZigp
OyB9Ci0gICAgTWVkaWFMaXN0KiBtZWRpYSgpIGNvbnN0OwotICAgIENTU1N0eWxlU2hlZXQqIHN0
eWxlU2hlZXQoKSBjb25zdDsKLSAgICAKLSAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwotCi1w
cml2YXRlOgotICAgIENTU0ltcG9ydFJ1bGUoU3R5bGVSdWxlSW1wb3J0KiwgQ1NTU3R5bGVTaGVl
dCopOwotCi0gICAgUmVmUHRyPFN0eWxlUnVsZUltcG9ydD4gbV9pbXBvcnRSdWxlOwotCi0gICAg
bXV0YWJsZSBSZWZQdHI8TWVkaWFMaXN0PiBtX21lZGlhQ1NTT01XcmFwcGVyOwotICAgIG11dGFi
bGUgUmVmUHRyPENTU1N0eWxlU2hlZXQ+IG1fc3R5bGVTaGVldENTU09NV3JhcHBlcjsKLX07Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIENTU0ltcG9ydFJ1bGVfaApJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAJKHJldmlzaW9uIDEx
ODMzNikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisj
aW5jbHVkZSAiU3R5bGVSdWxlSW1wb3J0LmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>