<?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>30035</bug_id>
          
          <creation_ts>2009-10-02 16:57:11 -0700</creation_ts>
          <short_desc>Move PolicyCheck out of FrameLoader.{h,cpp}</short_desc>
          <delta_ts>2009-10-02 21:45:49 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>29947</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>152025</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-02 16:57:11 -0700</bug_when>
    <thetext>One class per file, please!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152026</commentid>
    <comment_count>1</comment_count>
      <attachid>40558</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-02 16:58:59 -0700</bug_when>
    <thetext>Created attachment 40558
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152027</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-02 16:59:47 -0700</bug_when>
    <thetext>Darin, I didn&apos;t understand your comment about starting new files with svn copy.  Is there some way to do that with git?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152035</commentid>
    <comment_count>3</comment_count>
      <attachid>40562</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-02 18:32:25 -0700</bug_when>
    <thetext>Created attachment 40562
Move PolicyCheck</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152036</commentid>
    <comment_count>4</comment_count>
      <attachid>40562</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-02 18:37:19 -0700</bug_when>
    <thetext>Comment on attachment 40562
Move PolicyCheck

No need to review again.  Just added some missing includes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152043</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-02 21:45:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/49059</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40558</attachid>
            <date>2009-10-02 16:58:59 -0700</date>
            <delta_ts>2009-10-02 18:32:21 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30035-20091002165859.patch</filename>
            <type>text/plain</type>
            <size>19888</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTRlNmY2Zi4uOTEzZDdkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0xMC0wMiAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmUgUG9saWN5Q2hlY2sgb3V0IG9mIEZyYW1lTG9hZGVyLntoLGNwcH0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMDM1CisK
KyAgICAgICAgUHVyZWx5IGNvZGUgbW90aW9uIChhbmQgYWRkaW5nIGEgZGVzdHJ1Y3RvcikuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Lmg6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNoZWNrLmNwcDoKKyAgICAgICAgKiBsb2FkZXIv
UG9saWN5Q2hlY2suaDoKKwogMjAwOS0xMC0wMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBjOGY4
Y2VkLi5lODIzNWFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTEyNDIsNiArMTI0Miw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJV2ViQ29yZS9sb2FkZXIvUGxhY2Vob2xkZXJEb2N1bWVudC5oIFwKIAlXZWJDb3Jl
L2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL1BsdWdpbkRvY3Vt
ZW50LmggXAorCVdlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrLmNwcCBcCisJV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2suaCBcCiAJV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcCBc
CiAJV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmggXAogCVdlYkNvcmUvbG9hZGVyL1Jl
ZGlyZWN0U2NoZWR1bGVyLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQ1ZWQ2ODAuLjg0ZTBhMDcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNjI2
LDYgKzE2MjYsOCBAQAogICAgICAgICAgICAgJ2xvYWRlci9QbGFjZWhvbGRlckRvY3VtZW50Lmgn
LAogICAgICAgICAgICAgJ2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAnLAogICAgICAgICAgICAg
J2xvYWRlci9QbHVnaW5Eb2N1bWVudC5oJywKKyAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2hl
Y2suY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2hlY2suaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmNw
cCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBy
bwppbmRleCAxNjg0ZGUyLi43NTdmNzBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTExMDYsNiArMTEwNiw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgXAogICAgIGxv
YWRlci9QbGFjZWhvbGRlckRvY3VtZW50LmNwcCBcCiAgICAgbG9hZGVyL1BsdWdpbkRvY3VtZW50
LmNwcCBcCisgICAgbG9hZGVyL1BvbGljeUNoZWNrLmNwcCBcCiAgICAgbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5jcHAgXAogICAgIGxvYWRlci9SZWRpcmVjdFNjaGVkdWxlci5jcHAgXAogICAgIGxv
YWRlci9SZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBhOGYzYmZkLi4zNzI5OGE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTE3NDQxLDYgKzE3NDQxLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxQb2xpY3lDaGVjay5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcUG9saWN5
Q2hlY2suaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGxvYWRlclxQcm9ncmVzc1RyYWNrZXIuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmYwNDVkNy4u
MmIwMzg2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTIzNDYsNiArMjM0Niw4IEBACiAJCTkzRkRBRkNBMEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJ
bnNlcnRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzlGNDNEMzEw
NzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5RjQzRDExMDc1RTQ0QTAwMDBGODNCIC8q
IFJlZGlyZWN0U2NoZWR1bGVyLmNwcCAqLzsgfTsKIAkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNC
IC8qIFJlZGlyZWN0U2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzlGNDNEMjEwNzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVs
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
N0JDNjNCODEwNzZDOTdGMDAyQzIxNDIgLyogUG9saWN5Q2hlY2suY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdCQzYzQjYxMDc2Qzk3RjAwMkMyMTQy
IC8qIFBvbGljeUNoZWNrLmNwcCAqLzsgfTsKKwkJOTdCQzYzQjkxMDc2Qzk3RjAwMkMyMTQyIC8q
IFBvbGljeUNoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5N0JDNjNCNzEwNzZDOTdGMDAyQzIxNDIgLyogUG9saWN5Q2hlY2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5N0RENEQ4NjBGREY0RDZF
MDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5N0RENEQ4NDBGREY0RDZEMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5j
cHAgKi87IH07CiAJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5N0RENEQ4NTBGREY0
RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oICovOyB9OwogCQlBMTdDODEyMjBGMkE1Q0Y3MDA1
REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxl
bWVudEZhY3RvcnkuY3BwICovOyB9OwpAQCAtNzUyNiw2ICs3NTI4LDggQEAKIAkJOTNGREFGQzkw
QjExMzA3NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3OUY0M0QxMTA3NUU0NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWRpcmVjdFNjaGVk
dWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OUY0M0QyMTA3NUU0NEEw
MDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZWRpcmVjdFNjaGVkdWxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5N0JDNjNCNjEwNzZDOTdGMDAyQzIxNDIgLyogUG9saWN5Q2hlY2suY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9saWN5Q2hlY2suY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5N0JDNjNCNzEwNzZDOTdGMDAyQzIxNDIgLyogUG9saWN5Q2hlY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9saWN5Q2hlY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTdERDREODQwRkRGNEQ2RDAwRUNGOUE0IC8qIFhTU0F1
ZGl0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFNTQXVkaXRv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3REQ0RDg1MEZERjRENkUwMEVD
RjlBNCAvKiBYU1NBdWRpdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhT
U0F1ZGl0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjAwRjJBNUNG
NzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBIVE1MRWxlbWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQ1NjMsNiArMTQ1NjcsOCBAQAogCQkJCTM3N0M0Q0REMTAxNEU5RjYw
MEI5QUU0MiAvKiBQbGFjZWhvbGRlckRvY3VtZW50LmggKi8sCiAJCQkJMUFDNjk0QzUwQTNCMTY3
NjAwM0Y1MDQ5IC8qIFBsdWdpbkRvY3VtZW50LmNwcCAqLywKIAkJCQkxQUM2OTRDNjBBM0IxNjc2
MDAzRjUwNDkgLyogUGx1Z2luRG9jdW1lbnQuaCAqLywKKwkJCQk5N0JDNjNCNjEwNzZDOTdGMDAy
QzIxNDIgLyogUG9saWN5Q2hlY2suY3BwICovLAorCQkJCTk3QkM2M0I3MTA3NkM5N0YwMDJDMjE0
MiAvKiBQb2xpY3lDaGVjay5oICovLAogCQkJCTFBMkE2ODIxMEI1QkVERTcwMDAyQTQ4MCAvKiBQ
cm9ncmVzc1RyYWNrZXIuY3BwICovLAogCQkJCTFBMkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQ
cm9ncmVzc1RyYWNrZXIuaCAqLywKIAkJCQk5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogUmVk
aXJlY3RTY2hlZHVsZXIuY3BwICovLApAQCAtMTc5MzIsNiArMTc5MzgsNyBAQAogCQkJCTVEQjFC
QzZBMTA3MTVBNjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMEZDNjhBMTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIFJlZGlyZWN0U2NoZWR1
bGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5N0JDNjNCOTEwNzZDOTdGMDAyQzIxNDIgLyogUG9s
aWN5Q2hlY2suaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjAwNDksNiArMjAwNTYsNyBAQAogCQkJCUJD
QUNGM0JDMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNURCMUJDNkIxMDcxNUE2NDAwRUZBQTQ5IC8qIFRyYW5zZm9ybVNvdXJj
ZUxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc5RjQzRDMxMDc1RTQ0QTAwMDBGODNC
IC8qIFJlZGlyZWN0U2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3QkM2M0I4MTA3
NkM5N0YwMDJDMjE0MiAvKiBQb2xpY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCA3YWRkYWNkLi44NzI0MDlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC00NzcwLDk0ICs0NzcwLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QKICAgICBtX2Ns
aWVudC0+ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShsb2FkZXItPmRv
Y3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBjdXJyZW50V2ViQ2hhbGxlbmdl
KTsKIH0KIAotUG9saWN5Q2hlY2s6OlBvbGljeUNoZWNrKCkKLSAgICA6IG1fbmF2aWdhdGlvbkZ1
bmN0aW9uKDApCi0gICAgLCBtX25ld1dpbmRvd0Z1bmN0aW9uKDApCi0gICAgLCBtX2NvbnRlbnRG
dW5jdGlvbigwKQotewotfQotCi12b2lkIFBvbGljeUNoZWNrOjpjbGVhcigpCi17Ci0gICAgY2xl
YXJSZXF1ZXN0KCk7Ci0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSAwOwotICAgIG1fbmV3V2lu
ZG93RnVuY3Rpb24gPSAwOwotICAgIG1fY29udGVudEZ1bmN0aW9uID0gMDsKLX0KLQotdm9pZCBQ
b2xpY3lDaGVjazo6c2V0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0
cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwKLSAgICBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5j
dGlvbiBmdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpCi17Ci0gICAgbV9yZXF1ZXN0ID0gcmVxdWVz
dDsKLSAgICBtX2Zvcm1TdGF0ZSA9IGZvcm1TdGF0ZTsKLSAgICBtX2ZyYW1lTmFtZSA9IFN0cmlu
ZygpOwotCi0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSBmdW5jdGlvbjsKLSAgICBtX25ld1dp
bmRvd0Z1bmN0aW9uID0gMDsKLSAgICBtX2NvbnRlbnRGdW5jdGlvbiA9IDA7Ci0gICAgbV9hcmd1
bWVudCA9IGFyZ3VtZW50OwotfQotCi12b2lkIFBvbGljeUNoZWNrOjpzZXQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLAotICAg
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9u
IGZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCkKLXsKLSAgICBtX3JlcXVlc3QgPSByZXF1ZXN0Owot
ICAgIG1fZm9ybVN0YXRlID0gZm9ybVN0YXRlOwotICAgIG1fZnJhbWVOYW1lID0gZnJhbWVOYW1l
OwotCi0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSAwOwotICAgIG1fbmV3V2luZG93RnVuY3Rp
b24gPSBmdW5jdGlvbjsKLSAgICBtX2NvbnRlbnRGdW5jdGlvbiA9IDA7Ci0gICAgbV9hcmd1bWVu
dCA9IGFyZ3VtZW50OwotfQotCi12b2lkIFBvbGljeUNoZWNrOjpzZXQoQ29udGVudFBvbGljeURl
Y2lzaW9uRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KQotewotICAgIG1fcmVxdWVz
dCA9IFJlc291cmNlUmVxdWVzdCgpOwotICAgIG1fZm9ybVN0YXRlID0gMDsKLSAgICBtX2ZyYW1l
TmFtZSA9IFN0cmluZygpOwotCi0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSAwOwotICAgIG1f
bmV3V2luZG93RnVuY3Rpb24gPSAwOwotICAgIG1fY29udGVudEZ1bmN0aW9uID0gZnVuY3Rpb247
Ci0gICAgbV9hcmd1bWVudCA9IGFyZ3VtZW50OwotfQotCi12b2lkIFBvbGljeUNoZWNrOjpjYWxs
KGJvb2wgc2hvdWxkQ29udGludWUpCi17Ci0gICAgaWYgKG1fbmF2aWdhdGlvbkZ1bmN0aW9uKQot
ICAgICAgICBtX25hdmlnYXRpb25GdW5jdGlvbihtX2FyZ3VtZW50LCBtX3JlcXVlc3QsIG1fZm9y
bVN0YXRlLmdldCgpLCBzaG91bGRDb250aW51ZSk7Ci0gICAgaWYgKG1fbmV3V2luZG93RnVuY3Rp
b24pCi0gICAgICAgIG1fbmV3V2luZG93RnVuY3Rpb24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBt
X2Zvcm1TdGF0ZS5nZXQoKSwgbV9mcmFtZU5hbWUsIHNob3VsZENvbnRpbnVlKTsKLSAgICBBU1NF
UlQoIW1fY29udGVudEZ1bmN0aW9uKTsKLX0KLQotdm9pZCBQb2xpY3lDaGVjazo6Y2FsbChQb2xp
Y3lBY3Rpb24gYWN0aW9uKQotewotICAgIEFTU0VSVCghbV9uYXZpZ2F0aW9uRnVuY3Rpb24pOwot
ICAgIEFTU0VSVCghbV9uZXdXaW5kb3dGdW5jdGlvbik7Ci0gICAgQVNTRVJUKG1fY29udGVudEZ1
bmN0aW9uKTsKLSAgICBtX2NvbnRlbnRGdW5jdGlvbihtX2FyZ3VtZW50LCBhY3Rpb24pOwotfQot
Ci12b2lkIFBvbGljeUNoZWNrOjpjbGVhclJlcXVlc3QoKQotewotICAgIG1fcmVxdWVzdCA9IFJl
c291cmNlUmVxdWVzdCgpOwotICAgIG1fZm9ybVN0YXRlID0gMDsKLSAgICBtX2ZyYW1lTmFtZSA9
IFN0cmluZygpOwotfQotCi12b2lkIFBvbGljeUNoZWNrOjpjYW5jZWwoKQotewotICAgIGNsZWFy
UmVxdWVzdCgpOwotICAgIGlmIChtX25hdmlnYXRpb25GdW5jdGlvbikKLSAgICAgICAgbV9uYXZp
Z2F0aW9uRnVuY3Rpb24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBtX2Zvcm1TdGF0ZS5nZXQoKSwg
ZmFsc2UpOwotICAgIGlmIChtX25ld1dpbmRvd0Z1bmN0aW9uKQotICAgICAgICBtX25ld1dpbmRv
d0Z1bmN0aW9uKG1fYXJndW1lbnQsIG1fcmVxdWVzdCwgbV9mb3JtU3RhdGUuZ2V0KCksIG1fZnJh
bWVOYW1lLCBmYWxzZSk7Ci0gICAgaWYgKG1fY29udGVudEZ1bmN0aW9uKQotICAgICAgICBtX2Nv
bnRlbnRGdW5jdGlvbihtX2FyZ3VtZW50LCBQb2xpY3lJZ25vcmUpOwotfQotCiB2b2lkIEZyYW1l
TG9hZGVyOjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAgIGRvY3VtZW50TG9h
ZGVyKCktPnNldFRpdGxlKHRpdGxlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDZmYjYzOWYuLmM1
ZmQ0MmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAi
Q2FjaGVQb2xpY3kuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCisjaW5jbHVkZSAi
UG9saWN5Q2hlY2suaCIKICNpbmNsdWRlICJSZWRpcmVjdFNjaGVkdWxlci5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKQEAgLTc3
LDQxICs3OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGJvb2wgaXNCYWNrRm9yd2Fy
ZExvYWRUeXBlKEZyYW1lTG9hZFR5cGUpOwogCi0gICAgdHlwZWRlZiB2b2lkICgqTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uRnVuY3Rpb24pKHZvaWQqIGFyZ3VtZW50LAotICAgICAgICBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxkQ29udGlu
dWUpOwotICAgIHR5cGVkZWYgdm9pZCAoKk5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24p
KHZvaWQqIGFyZ3VtZW50LAotICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVm
UHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29sIHNob3VsZENvbnRp
bnVlKTsKLSAgICB0eXBlZGVmIHZvaWQgKCpDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiko
dm9pZCogYXJndW1lbnQsIFBvbGljeUFjdGlvbik7Ci0KLSAgICBjbGFzcyBQb2xpY3lDaGVjayB7
Ci0gICAgcHVibGljOgotICAgICAgICBQb2xpY3lDaGVjaygpOwotCi0gICAgICAgIHZvaWQgY2xl
YXIoKTsKLSAgICAgICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0
cjxGb3JtU3RhdGU+LAotICAgICAgICAgICAgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rp
b24sIHZvaWQqIGFyZ3VtZW50KTsKLSAgICAgICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwKLSAg
ICAgICAgICAgIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50
KTsKLSAgICAgICAgdm9pZCBzZXQoQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQq
IGFyZ3VtZW50KTsKLQotICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBj
b25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLSAgICAgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsK
LQotICAgICAgICB2b2lkIGNhbGwoYm9vbCBzaG91bGRDb250aW51ZSk7Ci0gICAgICAgIHZvaWQg
Y2FsbChQb2xpY3lBY3Rpb24pOwotICAgICAgICB2b2lkIGNhbmNlbCgpOwotCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKLSAgICAgICAgUmVmUHRyPEZv
cm1TdGF0ZT4gbV9mb3JtU3RhdGU7Ci0gICAgICAgIFN0cmluZyBtX2ZyYW1lTmFtZTsKLQotICAg
ICAgICBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX25hdmlnYXRpb25GdW5jdGlv
bjsKLSAgICAgICAgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX25ld1dpbmRvd0Z1
bmN0aW9uOwotICAgICAgICBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX2NvbnRlbnRG
dW5jdGlvbjsKLSAgICAgICAgdm9pZCogbV9hcmd1bWVudDsKLSAgICB9OwotCiAgICAgY2xhc3Mg
RnJhbWVMb2FkZXIgOiBwdWJsaWMgTm9uY29weWFibGUgewogICAgIHB1YmxpYzoKICAgICAgICAg
RnJhbWVMb2FkZXIoRnJhbWUqLCBGcmFtZUxvYWRlckNsaWVudCopOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvUG9saWN5Q2hlY2suY3BwIGIvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2su
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkN2Y5ZmEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVjay5jcHAKQEAgLTAsMCArMSwxMzEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3
LnRvcmNobW9iaWxlLmNvbS8pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvbGlj
eUNoZWNrLmgiCisKKyNpbmNsdWRlICJGb3JtU3RhdGUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BvbGljeUNoZWNrOjpQb2xpY3lDaGVjaygp
CisgICAgOiBtX25hdmlnYXRpb25GdW5jdGlvbigwKQorICAgICwgbV9uZXdXaW5kb3dGdW5jdGlv
bigwKQorICAgICwgbV9jb250ZW50RnVuY3Rpb24oMCkKK3sKK30KKworUG9saWN5Q2hlY2s6On5Q
b2xpY3lDaGVjaygpCit7Cit9CisKK3ZvaWQgUG9saWN5Q2hlY2s6OmNsZWFyKCkKK3sKKyAgICBj
bGVhclJlcXVlc3QoKTsKKyAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IDA7CisgICAgbV9uZXdX
aW5kb3dGdW5jdGlvbiA9IDA7CisgICAgbV9jb250ZW50RnVuY3Rpb24gPSAwOworfQorCit2b2lk
IFBvbGljeUNoZWNrOjpzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNzUmVm
UHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLAorICAgIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1
bmN0aW9uIGZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCkKK3sKKyAgICBtX3JlcXVlc3QgPSByZXF1
ZXN0OworICAgIG1fZm9ybVN0YXRlID0gZm9ybVN0YXRlOworICAgIG1fZnJhbWVOYW1lID0gU3Ry
aW5nKCk7CisKKyAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IGZ1bmN0aW9uOworICAgIG1fbmV3
V2luZG93RnVuY3Rpb24gPSAwOworICAgIG1fY29udGVudEZ1bmN0aW9uID0gMDsKKyAgICBtX2Fy
Z3VtZW50ID0gYXJndW1lbnQ7Cit9CisKK3ZvaWQgUG9saWN5Q2hlY2s6OnNldChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUsCisg
ICAgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rp
b24gZnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KQoreworICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7
CisgICAgbV9mb3JtU3RhdGUgPSBmb3JtU3RhdGU7CisgICAgbV9mcmFtZU5hbWUgPSBmcmFtZU5h
bWU7CisKKyAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IDA7CisgICAgbV9uZXdXaW5kb3dGdW5j
dGlvbiA9IGZ1bmN0aW9uOworICAgIG1fY29udGVudEZ1bmN0aW9uID0gMDsKKyAgICBtX2FyZ3Vt
ZW50ID0gYXJndW1lbnQ7Cit9CisKK3ZvaWQgUG9saWN5Q2hlY2s6OnNldChDb250ZW50UG9saWN5
RGVjaXNpb25GdW5jdGlvbiBmdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpCit7CisgICAgbV9yZXF1
ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CisgICAgbV9mb3JtU3RhdGUgPSAwOworICAgIG1fZnJh
bWVOYW1lID0gU3RyaW5nKCk7CisKKyAgICBtX25hdmlnYXRpb25GdW5jdGlvbiA9IDA7CisgICAg
bV9uZXdXaW5kb3dGdW5jdGlvbiA9IDA7CisgICAgbV9jb250ZW50RnVuY3Rpb24gPSBmdW5jdGlv
bjsKKyAgICBtX2FyZ3VtZW50ID0gYXJndW1lbnQ7Cit9CisKK3ZvaWQgUG9saWN5Q2hlY2s6OmNh
bGwoYm9vbCBzaG91bGRDb250aW51ZSkKK3sKKyAgICBpZiAobV9uYXZpZ2F0aW9uRnVuY3Rpb24p
CisgICAgICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uKG1fYXJndW1lbnQsIG1fcmVxdWVzdCwgbV9m
b3JtU3RhdGUuZ2V0KCksIHNob3VsZENvbnRpbnVlKTsKKyAgICBpZiAobV9uZXdXaW5kb3dGdW5j
dGlvbikKKyAgICAgICAgbV9uZXdXaW5kb3dGdW5jdGlvbihtX2FyZ3VtZW50LCBtX3JlcXVlc3Qs
IG1fZm9ybVN0YXRlLmdldCgpLCBtX2ZyYW1lTmFtZSwgc2hvdWxkQ29udGludWUpOworICAgIEFT
U0VSVCghbV9jb250ZW50RnVuY3Rpb24pOworfQorCit2b2lkIFBvbGljeUNoZWNrOjpjYWxsKFBv
bGljeUFjdGlvbiBhY3Rpb24pCit7CisgICAgQVNTRVJUKCFtX25hdmlnYXRpb25GdW5jdGlvbik7
CisgICAgQVNTRVJUKCFtX25ld1dpbmRvd0Z1bmN0aW9uKTsKKyAgICBBU1NFUlQobV9jb250ZW50
RnVuY3Rpb24pOworICAgIG1fY29udGVudEZ1bmN0aW9uKG1fYXJndW1lbnQsIGFjdGlvbik7Cit9
CisKK3ZvaWQgUG9saWN5Q2hlY2s6OmNsZWFyUmVxdWVzdCgpCit7CisgICAgbV9yZXF1ZXN0ID0g
UmVzb3VyY2VSZXF1ZXN0KCk7CisgICAgbV9mb3JtU3RhdGUgPSAwOworICAgIG1fZnJhbWVOYW1l
ID0gU3RyaW5nKCk7Cit9CisKK3ZvaWQgUG9saWN5Q2hlY2s6OmNhbmNlbCgpCit7CisgICAgY2xl
YXJSZXF1ZXN0KCk7CisgICAgaWYgKG1fbmF2aWdhdGlvbkZ1bmN0aW9uKQorICAgICAgICBtX25h
dmlnYXRpb25GdW5jdGlvbihtX2FyZ3VtZW50LCBtX3JlcXVlc3QsIG1fZm9ybVN0YXRlLmdldCgp
LCBmYWxzZSk7CisgICAgaWYgKG1fbmV3V2luZG93RnVuY3Rpb24pCisgICAgICAgIG1fbmV3V2lu
ZG93RnVuY3Rpb24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBtX2Zvcm1TdGF0ZS5nZXQoKSwgbV9m
cmFtZU5hbWUsIGZhbHNlKTsKKyAgICBpZiAobV9jb250ZW50RnVuY3Rpb24pCisgICAgICAgIG1f
Y29udGVudEZ1bmN0aW9uKG1fYXJndW1lbnQsIFBvbGljeUlnbm9yZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrLmgg
Yi9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjc2MzVkNTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVjay5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQb2xpY3lDaGVja19oCisj
ZGVmaW5lIFBvbGljeUNoZWNrX2gKKworI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xh
c3MgRm9ybVN0YXRlOworCisgICAgdHlwZWRlZiB2b2lkICgqTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uRnVuY3Rpb24pKHZvaWQqIGFyZ3VtZW50LAorICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxkQ29udGludWUpOworICAgIHR5
cGVkZWYgdm9pZCAoKk5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24pKHZvaWQqIGFyZ3Vt
ZW50LAorICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0
ZT4sIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29sIHNob3VsZENvbnRpbnVlKTsKKyAgICB0
eXBlZGVmIHZvaWQgKCpDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbikodm9pZCogYXJndW1l
bnQsIFBvbGljeUFjdGlvbik7CisKKyAgICBjbGFzcyBQb2xpY3lDaGVjayB7CisgICAgcHVibGlj
OgorICAgICAgICBQb2xpY3lDaGVjaygpOworICAgICAgICB+UG9saWN5Q2hlY2soKTsKKworICAg
ICAgICB2b2lkIGNsZWFyKCk7CisgICAgICAgIHZvaWQgc2V0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwKKyAgICAgICAgICAgIE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbkZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCk7CisgICAgICAgIHZvaWQgc2V0KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsCisgICAgICAgICAgICBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uLCB2
b2lkKiBhcmd1bWVudCk7CisgICAgICAgIHZvaWQgc2V0KENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1
bmN0aW9uLCB2b2lkKiBhcmd1bWVudCk7CisKKyAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisgICAgICAgIHZvaWQgY2xl
YXJSZXF1ZXN0KCk7CisKKyAgICAgICAgdm9pZCBjYWxsKGJvb2wgc2hvdWxkQ29udGludWUpOwor
ICAgICAgICB2b2lkIGNhbGwoUG9saWN5QWN0aW9uKTsKKyAgICAgICAgdm9pZCBjYW5jZWwoKTsK
KworICAgIHByaXZhdGU6CisgICAgICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAg
ICAgIFJlZlB0cjxGb3JtU3RhdGU+IG1fZm9ybVN0YXRlOworICAgICAgICBTdHJpbmcgbV9mcmFt
ZU5hbWU7CisKKyAgICAgICAgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24gbV9uYXZp
Z2F0aW9uRnVuY3Rpb247CisgICAgICAgIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24g
bV9uZXdXaW5kb3dGdW5jdGlvbjsKKyAgICAgICAgQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rp
b24gbV9jb250ZW50RnVuY3Rpb247CisgICAgICAgIHZvaWQqIG1fYXJndW1lbnQ7CisgICAgfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUG9saWN5Q2hlY2tfaA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40562</attachid>
            <date>2009-10-02 18:32:25 -0700</date>
            <delta_ts>2009-10-02 18:37:19 -0700</delta_ts>
            <desc>Move PolicyCheck</desc>
            <filename>bug-30035-20091002183224.patch</filename>
            <type>text/plain</type>
            <size>19938</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTRlNmY2Zi4uOTEzZDdkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0xMC0wMiAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmUgUG9saWN5Q2hlY2sgb3V0IG9mIEZyYW1lTG9hZGVyLntoLGNwcH0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMDM1CisK
KyAgICAgICAgUHVyZWx5IGNvZGUgbW90aW9uIChhbmQgYWRkaW5nIGEgZGVzdHJ1Y3RvcikuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Lmg6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNoZWNrLmNwcDoKKyAgICAgICAgKiBsb2FkZXIv
UG9saWN5Q2hlY2suaDoKKwogMjAwOS0xMC0wMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBjOGY4
Y2VkLi5lODIzNWFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTEyNDIsNiArMTI0Miw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJV2ViQ29yZS9sb2FkZXIvUGxhY2Vob2xkZXJEb2N1bWVudC5oIFwKIAlXZWJDb3Jl
L2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAgXAogCVdlYkNvcmUvbG9hZGVyL1BsdWdpbkRvY3Vt
ZW50LmggXAorCVdlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrLmNwcCBcCisJV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2suaCBcCiAJV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcCBc
CiAJV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmggXAogCVdlYkNvcmUvbG9hZGVyL1Jl
ZGlyZWN0U2NoZWR1bGVyLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQ1ZWQ2ODAuLjg0ZTBhMDcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNjI2
LDYgKzE2MjYsOCBAQAogICAgICAgICAgICAgJ2xvYWRlci9QbGFjZWhvbGRlckRvY3VtZW50Lmgn
LAogICAgICAgICAgICAgJ2xvYWRlci9QbHVnaW5Eb2N1bWVudC5jcHAnLAogICAgICAgICAgICAg
J2xvYWRlci9QbHVnaW5Eb2N1bWVudC5oJywKKyAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2hl
Y2suY3BwJywKKyAgICAgICAgICAgICdsb2FkZXIvUG9saWN5Q2hlY2suaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXIuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmNw
cCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBy
bwppbmRleCAxNjg0ZGUyLi43NTdmNzBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTExMDYsNiArMTEwNiw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgXAogICAgIGxv
YWRlci9QbGFjZWhvbGRlckRvY3VtZW50LmNwcCBcCiAgICAgbG9hZGVyL1BsdWdpbkRvY3VtZW50
LmNwcCBcCisgICAgbG9hZGVyL1BvbGljeUNoZWNrLmNwcCBcCiAgICAgbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5jcHAgXAogICAgIGxvYWRlci9SZWRpcmVjdFNjaGVkdWxlci5jcHAgXAogICAgIGxv
YWRlci9SZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBhOGYzYmZkLi4zNzI5OGE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTE3NDQxLDYgKzE3NDQxLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxQb2xpY3lDaGVjay5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcUG9saWN5
Q2hlY2suaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGxvYWRlclxQcm9ncmVzc1RyYWNrZXIuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmYwNDVkNy4u
MmIwMzg2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTIzNDYsNiArMjM0Niw4IEBACiAJCTkzRkRBRkNBMEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJ
bnNlcnRBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzlGNDNEMzEw
NzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5RjQzRDExMDc1RTQ0QTAwMDBGODNCIC8q
IFJlZGlyZWN0U2NoZWR1bGVyLmNwcCAqLzsgfTsKIAkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNC
IC8qIFJlZGlyZWN0U2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzlGNDNEMjEwNzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVs
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
N0JDNjNCODEwNzZDOTdGMDAyQzIxNDIgLyogUG9saWN5Q2hlY2suY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdCQzYzQjYxMDc2Qzk3RjAwMkMyMTQy
IC8qIFBvbGljeUNoZWNrLmNwcCAqLzsgfTsKKwkJOTdCQzYzQjkxMDc2Qzk3RjAwMkMyMTQyIC8q
IFBvbGljeUNoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5N0JDNjNCNzEwNzZDOTdGMDAyQzIxNDIgLyogUG9saWN5Q2hlY2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5N0RENEQ4NjBGREY0RDZF
MDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5N0RENEQ4NDBGREY0RDZEMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5j
cHAgKi87IH07CiAJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5N0RENEQ4NTBGREY0
RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oICovOyB9OwogCQlBMTdDODEyMjBGMkE1Q0Y3MDA1
REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxl
bWVudEZhY3RvcnkuY3BwICovOyB9OwpAQCAtNzUyNiw2ICs3NTI4LDggQEAKIAkJOTNGREFGQzkw
QjExMzA3NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3OUY0M0QxMTA3NUU0NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWRpcmVjdFNjaGVk
dWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OUY0M0QyMTA3NUU0NEEw
MDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZWRpcmVjdFNjaGVkdWxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5N0JDNjNCNjEwNzZDOTdGMDAyQzIxNDIgLyogUG9saWN5Q2hlY2suY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9saWN5Q2hlY2suY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5N0JDNjNCNzEwNzZDOTdGMDAyQzIxNDIgLyogUG9saWN5Q2hlY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9saWN5Q2hlY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTdERDREODQwRkRGNEQ2RDAwRUNGOUE0IC8qIFhTU0F1
ZGl0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFNTQXVkaXRv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3REQ0RDg1MEZERjRENkUwMEVD
RjlBNCAvKiBYU1NBdWRpdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhT
U0F1ZGl0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjAwRjJBNUNG
NzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBIVE1MRWxlbWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQ1NjMsNiArMTQ1NjcsOCBAQAogCQkJCTM3N0M0Q0REMTAxNEU5RjYw
MEI5QUU0MiAvKiBQbGFjZWhvbGRlckRvY3VtZW50LmggKi8sCiAJCQkJMUFDNjk0QzUwQTNCMTY3
NjAwM0Y1MDQ5IC8qIFBsdWdpbkRvY3VtZW50LmNwcCAqLywKIAkJCQkxQUM2OTRDNjBBM0IxNjc2
MDAzRjUwNDkgLyogUGx1Z2luRG9jdW1lbnQuaCAqLywKKwkJCQk5N0JDNjNCNjEwNzZDOTdGMDAy
QzIxNDIgLyogUG9saWN5Q2hlY2suY3BwICovLAorCQkJCTk3QkM2M0I3MTA3NkM5N0YwMDJDMjE0
MiAvKiBQb2xpY3lDaGVjay5oICovLAogCQkJCTFBMkE2ODIxMEI1QkVERTcwMDAyQTQ4MCAvKiBQ
cm9ncmVzc1RyYWNrZXIuY3BwICovLAogCQkJCTFBMkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQ
cm9ncmVzc1RyYWNrZXIuaCAqLywKIAkJCQk5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogUmVk
aXJlY3RTY2hlZHVsZXIuY3BwICovLApAQCAtMTc5MzIsNiArMTc5MzgsNyBAQAogCQkJCTVEQjFC
QzZBMTA3MTVBNjQwMEVGQUE0OSAvKiBUcmFuc2Zvcm1Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMEZDNjhBMTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIFJlZGlyZWN0U2NoZWR1
bGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5N0JDNjNCOTEwNzZDOTdGMDAyQzIxNDIgLyogUG9s
aWN5Q2hlY2suaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjAwNDksNiArMjAwNTYsNyBAQAogCQkJCUJD
QUNGM0JDMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNURCMUJDNkIxMDcxNUE2NDAwRUZBQTQ5IC8qIFRyYW5zZm9ybVNvdXJj
ZUxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc5RjQzRDMxMDc1RTQ0QTAwMDBGODNC
IC8qIFJlZGlyZWN0U2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3QkM2M0I4MTA3
NkM5N0YwMDJDMjE0MiAvKiBQb2xpY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCA3YWRkYWNkLi44NzI0MDlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC00NzcwLDk0ICs0NzcwLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QKICAgICBtX2Ns
aWVudC0+ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShsb2FkZXItPmRv
Y3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigpLCBjdXJyZW50V2ViQ2hhbGxlbmdl
KTsKIH0KIAotUG9saWN5Q2hlY2s6OlBvbGljeUNoZWNrKCkKLSAgICA6IG1fbmF2aWdhdGlvbkZ1
bmN0aW9uKDApCi0gICAgLCBtX25ld1dpbmRvd0Z1bmN0aW9uKDApCi0gICAgLCBtX2NvbnRlbnRG
dW5jdGlvbigwKQotewotfQotCi12b2lkIFBvbGljeUNoZWNrOjpjbGVhcigpCi17Ci0gICAgY2xl
YXJSZXF1ZXN0KCk7Ci0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSAwOwotICAgIG1fbmV3V2lu
ZG93RnVuY3Rpb24gPSAwOwotICAgIG1fY29udGVudEZ1bmN0aW9uID0gMDsKLX0KLQotdm9pZCBQ
b2xpY3lDaGVjazo6c2V0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0
cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwKLSAgICBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5j
dGlvbiBmdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpCi17Ci0gICAgbV9yZXF1ZXN0ID0gcmVxdWVz
dDsKLSAgICBtX2Zvcm1TdGF0ZSA9IGZvcm1TdGF0ZTsKLSAgICBtX2ZyYW1lTmFtZSA9IFN0cmlu
ZygpOwotCi0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSBmdW5jdGlvbjsKLSAgICBtX25ld1dp
bmRvd0Z1bmN0aW9uID0gMDsKLSAgICBtX2NvbnRlbnRGdW5jdGlvbiA9IDA7Ci0gICAgbV9hcmd1
bWVudCA9IGFyZ3VtZW50OwotfQotCi12b2lkIFBvbGljeUNoZWNrOjpzZXQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLAotICAg
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9u
IGZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCkKLXsKLSAgICBtX3JlcXVlc3QgPSByZXF1ZXN0Owot
ICAgIG1fZm9ybVN0YXRlID0gZm9ybVN0YXRlOwotICAgIG1fZnJhbWVOYW1lID0gZnJhbWVOYW1l
OwotCi0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSAwOwotICAgIG1fbmV3V2luZG93RnVuY3Rp
b24gPSBmdW5jdGlvbjsKLSAgICBtX2NvbnRlbnRGdW5jdGlvbiA9IDA7Ci0gICAgbV9hcmd1bWVu
dCA9IGFyZ3VtZW50OwotfQotCi12b2lkIFBvbGljeUNoZWNrOjpzZXQoQ29udGVudFBvbGljeURl
Y2lzaW9uRnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KQotewotICAgIG1fcmVxdWVz
dCA9IFJlc291cmNlUmVxdWVzdCgpOwotICAgIG1fZm9ybVN0YXRlID0gMDsKLSAgICBtX2ZyYW1l
TmFtZSA9IFN0cmluZygpOwotCi0gICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24gPSAwOwotICAgIG1f
bmV3V2luZG93RnVuY3Rpb24gPSAwOwotICAgIG1fY29udGVudEZ1bmN0aW9uID0gZnVuY3Rpb247
Ci0gICAgbV9hcmd1bWVudCA9IGFyZ3VtZW50OwotfQotCi12b2lkIFBvbGljeUNoZWNrOjpjYWxs
KGJvb2wgc2hvdWxkQ29udGludWUpCi17Ci0gICAgaWYgKG1fbmF2aWdhdGlvbkZ1bmN0aW9uKQot
ICAgICAgICBtX25hdmlnYXRpb25GdW5jdGlvbihtX2FyZ3VtZW50LCBtX3JlcXVlc3QsIG1fZm9y
bVN0YXRlLmdldCgpLCBzaG91bGRDb250aW51ZSk7Ci0gICAgaWYgKG1fbmV3V2luZG93RnVuY3Rp
b24pCi0gICAgICAgIG1fbmV3V2luZG93RnVuY3Rpb24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBt
X2Zvcm1TdGF0ZS5nZXQoKSwgbV9mcmFtZU5hbWUsIHNob3VsZENvbnRpbnVlKTsKLSAgICBBU1NF
UlQoIW1fY29udGVudEZ1bmN0aW9uKTsKLX0KLQotdm9pZCBQb2xpY3lDaGVjazo6Y2FsbChQb2xp
Y3lBY3Rpb24gYWN0aW9uKQotewotICAgIEFTU0VSVCghbV9uYXZpZ2F0aW9uRnVuY3Rpb24pOwot
ICAgIEFTU0VSVCghbV9uZXdXaW5kb3dGdW5jdGlvbik7Ci0gICAgQVNTRVJUKG1fY29udGVudEZ1
bmN0aW9uKTsKLSAgICBtX2NvbnRlbnRGdW5jdGlvbihtX2FyZ3VtZW50LCBhY3Rpb24pOwotfQot
Ci12b2lkIFBvbGljeUNoZWNrOjpjbGVhclJlcXVlc3QoKQotewotICAgIG1fcmVxdWVzdCA9IFJl
c291cmNlUmVxdWVzdCgpOwotICAgIG1fZm9ybVN0YXRlID0gMDsKLSAgICBtX2ZyYW1lTmFtZSA9
IFN0cmluZygpOwotfQotCi12b2lkIFBvbGljeUNoZWNrOjpjYW5jZWwoKQotewotICAgIGNsZWFy
UmVxdWVzdCgpOwotICAgIGlmIChtX25hdmlnYXRpb25GdW5jdGlvbikKLSAgICAgICAgbV9uYXZp
Z2F0aW9uRnVuY3Rpb24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBtX2Zvcm1TdGF0ZS5nZXQoKSwg
ZmFsc2UpOwotICAgIGlmIChtX25ld1dpbmRvd0Z1bmN0aW9uKQotICAgICAgICBtX25ld1dpbmRv
d0Z1bmN0aW9uKG1fYXJndW1lbnQsIG1fcmVxdWVzdCwgbV9mb3JtU3RhdGUuZ2V0KCksIG1fZnJh
bWVOYW1lLCBmYWxzZSk7Ci0gICAgaWYgKG1fY29udGVudEZ1bmN0aW9uKQotICAgICAgICBtX2Nv
bnRlbnRGdW5jdGlvbihtX2FyZ3VtZW50LCBQb2xpY3lJZ25vcmUpOwotfQotCiB2b2lkIEZyYW1l
TG9hZGVyOjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAgIGRvY3VtZW50TG9h
ZGVyKCktPnNldFRpdGxlKHRpdGxlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDZmYjYzOWYuLmM1
ZmQ0MmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzIsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAi
Q2FjaGVQb2xpY3kuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCisjaW5jbHVkZSAi
UG9saWN5Q2hlY2suaCIKICNpbmNsdWRlICJSZWRpcmVjdFNjaGVkdWxlci5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKQEAgLTc3
LDQxICs3OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGJvb2wgaXNCYWNrRm9yd2Fy
ZExvYWRUeXBlKEZyYW1lTG9hZFR5cGUpOwogCi0gICAgdHlwZWRlZiB2b2lkICgqTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uRnVuY3Rpb24pKHZvaWQqIGFyZ3VtZW50LAotICAgICAgICBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGJvb2wgc2hvdWxkQ29udGlu
dWUpOwotICAgIHR5cGVkZWYgdm9pZCAoKk5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24p
KHZvaWQqIGFyZ3VtZW50LAotICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVm
UHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBib29sIHNob3VsZENvbnRp
bnVlKTsKLSAgICB0eXBlZGVmIHZvaWQgKCpDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiko
dm9pZCogYXJndW1lbnQsIFBvbGljeUFjdGlvbik7Ci0KLSAgICBjbGFzcyBQb2xpY3lDaGVjayB7
Ci0gICAgcHVibGljOgotICAgICAgICBQb2xpY3lDaGVjaygpOwotCi0gICAgICAgIHZvaWQgY2xl
YXIoKTsKLSAgICAgICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0
cjxGb3JtU3RhdGU+LAotICAgICAgICAgICAgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rp
b24sIHZvaWQqIGFyZ3VtZW50KTsKLSAgICAgICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwKLSAg
ICAgICAgICAgIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50
KTsKLSAgICAgICAgdm9pZCBzZXQoQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQq
IGFyZ3VtZW50KTsKLQotICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBj
b25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KLSAgICAgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsK
LQotICAgICAgICB2b2lkIGNhbGwoYm9vbCBzaG91bGRDb250aW51ZSk7Ci0gICAgICAgIHZvaWQg
Y2FsbChQb2xpY3lBY3Rpb24pOwotICAgICAgICB2b2lkIGNhbmNlbCgpOwotCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKLSAgICAgICAgUmVmUHRyPEZv
cm1TdGF0ZT4gbV9mb3JtU3RhdGU7Ci0gICAgICAgIFN0cmluZyBtX2ZyYW1lTmFtZTsKLQotICAg
ICAgICBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX25hdmlnYXRpb25GdW5jdGlv
bjsKLSAgICAgICAgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX25ld1dpbmRvd0Z1
bmN0aW9uOwotICAgICAgICBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX2NvbnRlbnRG
dW5jdGlvbjsKLSAgICAgICAgdm9pZCogbV9hcmd1bWVudDsKLSAgICB9OwotCiAgICAgY2xhc3Mg
RnJhbWVMb2FkZXIgOiBwdWJsaWMgTm9uY29weWFibGUgewogICAgIHB1YmxpYzoKICAgICAgICAg
RnJhbWVMb2FkZXIoRnJhbWUqLCBGcmFtZUxvYWRlckNsaWVudCopOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9sb2FkZXIvUG9saWN5Q2hlY2suY3BwIGIvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2su
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YTM4ZmEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVjay5jcHAKQEAgLTAsMCArMSwxMzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA4
LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3
LnRvcmNobW9iaWxlLmNvbS8pCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvbGlj
eUNoZWNrLmgiCisKKyNpbmNsdWRlICJGb3JtU3RhdGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUG9saWN5Q2hlY2s6OlBvbGljeUNoZWNrKCkKKyAgICA6
IG1fbmF2aWdhdGlvbkZ1bmN0aW9uKDApCisgICAgLCBtX25ld1dpbmRvd0Z1bmN0aW9uKDApCisg
ICAgLCBtX2NvbnRlbnRGdW5jdGlvbigwKQoreworfQorCitQb2xpY3lDaGVjazo6flBvbGljeUNo
ZWNrKCkKK3sKK30KKwordm9pZCBQb2xpY3lDaGVjazo6Y2xlYXIoKQoreworICAgIGNsZWFyUmVx
dWVzdCgpOworICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uID0gMDsKKyAgICBtX25ld1dpbmRvd0Z1
bmN0aW9uID0gMDsKKyAgICBtX2NvbnRlbnRGdW5jdGlvbiA9IDA7Cit9CisKK3ZvaWQgUG9saWN5
Q2hlY2s6OnNldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9y
bVN0YXRlPiBmb3JtU3RhdGUsCisgICAgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24g
ZnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KQoreworICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7Cisg
ICAgbV9mb3JtU3RhdGUgPSBmb3JtU3RhdGU7CisgICAgbV9mcmFtZU5hbWUgPSBTdHJpbmcoKTsK
KworICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uID0gZnVuY3Rpb247CisgICAgbV9uZXdXaW5kb3dG
dW5jdGlvbiA9IDA7CisgICAgbV9jb250ZW50RnVuY3Rpb24gPSAwOworICAgIG1fYXJndW1lbnQg
PSBhcmd1bWVudDsKK30KKwordm9pZCBQb2xpY3lDaGVjazo6c2V0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSwKKyAgICBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiBmdW5j
dGlvbiwgdm9pZCogYXJndW1lbnQpCit7CisgICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICBt
X2Zvcm1TdGF0ZSA9IGZvcm1TdGF0ZTsKKyAgICBtX2ZyYW1lTmFtZSA9IGZyYW1lTmFtZTsKKwor
ICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uID0gMDsKKyAgICBtX25ld1dpbmRvd0Z1bmN0aW9uID0g
ZnVuY3Rpb247CisgICAgbV9jb250ZW50RnVuY3Rpb24gPSAwOworICAgIG1fYXJndW1lbnQgPSBh
cmd1bWVudDsKK30KKwordm9pZCBQb2xpY3lDaGVjazo6c2V0KENvbnRlbnRQb2xpY3lEZWNpc2lv
bkZ1bmN0aW9uIGZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCkKK3sKKyAgICBtX3JlcXVlc3QgPSBS
ZXNvdXJjZVJlcXVlc3QoKTsKKyAgICBtX2Zvcm1TdGF0ZSA9IDA7CisgICAgbV9mcmFtZU5hbWUg
PSBTdHJpbmcoKTsKKworICAgIG1fbmF2aWdhdGlvbkZ1bmN0aW9uID0gMDsKKyAgICBtX25ld1dp
bmRvd0Z1bmN0aW9uID0gMDsKKyAgICBtX2NvbnRlbnRGdW5jdGlvbiA9IGZ1bmN0aW9uOworICAg
IG1fYXJndW1lbnQgPSBhcmd1bWVudDsKK30KKwordm9pZCBQb2xpY3lDaGVjazo6Y2FsbChib29s
IHNob3VsZENvbnRpbnVlKQoreworICAgIGlmIChtX25hdmlnYXRpb25GdW5jdGlvbikKKyAgICAg
ICAgbV9uYXZpZ2F0aW9uRnVuY3Rpb24obV9hcmd1bWVudCwgbV9yZXF1ZXN0LCBtX2Zvcm1TdGF0
ZS5nZXQoKSwgc2hvdWxkQ29udGludWUpOworICAgIGlmIChtX25ld1dpbmRvd0Z1bmN0aW9uKQor
ICAgICAgICBtX25ld1dpbmRvd0Z1bmN0aW9uKG1fYXJndW1lbnQsIG1fcmVxdWVzdCwgbV9mb3Jt
U3RhdGUuZ2V0KCksIG1fZnJhbWVOYW1lLCBzaG91bGRDb250aW51ZSk7CisgICAgQVNTRVJUKCFt
X2NvbnRlbnRGdW5jdGlvbik7Cit9CisKK3ZvaWQgUG9saWN5Q2hlY2s6OmNhbGwoUG9saWN5QWN0
aW9uIGFjdGlvbikKK3sKKyAgICBBU1NFUlQoIW1fbmF2aWdhdGlvbkZ1bmN0aW9uKTsKKyAgICBB
U1NFUlQoIW1fbmV3V2luZG93RnVuY3Rpb24pOworICAgIEFTU0VSVChtX2NvbnRlbnRGdW5jdGlv
bik7CisgICAgbV9jb250ZW50RnVuY3Rpb24obV9hcmd1bWVudCwgYWN0aW9uKTsKK30KKwordm9p
ZCBQb2xpY3lDaGVjazo6Y2xlYXJSZXF1ZXN0KCkKK3sKKyAgICBtX3JlcXVlc3QgPSBSZXNvdXJj
ZVJlcXVlc3QoKTsKKyAgICBtX2Zvcm1TdGF0ZSA9IDA7CisgICAgbV9mcmFtZU5hbWUgPSBTdHJp
bmcoKTsKK30KKwordm9pZCBQb2xpY3lDaGVjazo6Y2FuY2VsKCkKK3sKKyAgICBjbGVhclJlcXVl
c3QoKTsKKyAgICBpZiAobV9uYXZpZ2F0aW9uRnVuY3Rpb24pCisgICAgICAgIG1fbmF2aWdhdGlv
bkZ1bmN0aW9uKG1fYXJndW1lbnQsIG1fcmVxdWVzdCwgbV9mb3JtU3RhdGUuZ2V0KCksIGZhbHNl
KTsKKyAgICBpZiAobV9uZXdXaW5kb3dGdW5jdGlvbikKKyAgICAgICAgbV9uZXdXaW5kb3dGdW5j
dGlvbihtX2FyZ3VtZW50LCBtX3JlcXVlc3QsIG1fZm9ybVN0YXRlLmdldCgpLCBtX2ZyYW1lTmFt
ZSwgZmFsc2UpOworICAgIGlmIChtX2NvbnRlbnRGdW5jdGlvbikKKyAgICAgICAgbV9jb250ZW50
RnVuY3Rpb24obV9hcmd1bWVudCwgUG9saWN5SWdub3JlKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2suaCBiL1dlYkNv
cmUvbG9hZGVyL1BvbGljeUNoZWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNzYzNWQ1MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
LmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6
Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBvbGljeUNoZWNrX2gKKyNkZWZpbmUg
UG9saWN5Q2hlY2tfaAorCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBGb3Jt
U3RhdGU7CisKKyAgICB0eXBlZGVmIHZvaWQgKCpOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5j
dGlvbikodm9pZCogYXJndW1lbnQsCisgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBh
c3NSZWZQdHI8Rm9ybVN0YXRlPiwgYm9vbCBzaG91bGRDb250aW51ZSk7CisgICAgdHlwZWRlZiB2
b2lkICgqTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbikodm9pZCogYXJndW1lbnQsCisg
ICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgc2hvdWxkQ29udGludWUpOworICAgIHR5cGVkZWYg
dm9pZCAoKkNvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uKSh2b2lkKiBhcmd1bWVudCwgUG9s
aWN5QWN0aW9uKTsKKworICAgIGNsYXNzIFBvbGljeUNoZWNrIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIFBvbGljeUNoZWNrKCk7CisgICAgICAgIH5Qb2xpY3lDaGVjaygpOworCisgICAgICAgIHZv
aWQgY2xlYXIoKTsKKyAgICAgICAgdm9pZCBzZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+LAorICAgICAgICAgICAgTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
RnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsKKyAgICAgICAgdm9pZCBzZXQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwKKyAgICAgICAgICAgIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24sIHZvaWQqIGFy
Z3VtZW50KTsKKyAgICAgICAgdm9pZCBzZXQoQ29udGVudFBvbGljeURlY2lzaW9uRnVuY3Rpb24s
IHZvaWQqIGFyZ3VtZW50KTsKKworICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KKyAgICAgICAgdm9pZCBjbGVhclJlcXVl
c3QoKTsKKworICAgICAgICB2b2lkIGNhbGwoYm9vbCBzaG91bGRDb250aW51ZSk7CisgICAgICAg
IHZvaWQgY2FsbChQb2xpY3lBY3Rpb24pOworICAgICAgICB2b2lkIGNhbmNlbCgpOworCisgICAg
cHJpdmF0ZToKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICAgICAgUmVm
UHRyPEZvcm1TdGF0ZT4gbV9mb3JtU3RhdGU7CisgICAgICAgIFN0cmluZyBtX2ZyYW1lTmFtZTsK
KworICAgICAgICBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX25hdmlnYXRpb25G
dW5jdGlvbjsKKyAgICAgICAgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX25ld1dp
bmRvd0Z1bmN0aW9uOworICAgICAgICBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiBtX2Nv
bnRlbnRGdW5jdGlvbjsKKyAgICAgICAgdm9pZCogbV9hcmd1bWVudDsKKyAgICB9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQb2xpY3lDaGVja19o
</data>

          </attachment>
      

    </bug>

</bugzilla>