<?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>10870</bug_id>
          
          <creation_ts>2006-09-15 08:58:23 -0700</creation_ts>
          <short_desc>Auto-generate DOMNode for the Objective-C bindings</short_desc>
          <delta_ts>2006-09-15 20:48:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>55590</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-15 08:58:23 -0700</bug_when>
    <thetext>This seems pretty doable now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55631</commentid>
    <comment_count>1</comment_count>
      <attachid>10584</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-15 20:16:05 -0700</bug_when>
    <thetext>Created attachment 10584
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55632</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-15 20:25:05 -0700</bug_when>
    <thetext>Landed in r16387.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10584</attachid>
            <date>2006-09-15 20:16:05 -0700</date>
            <delta_ts>2006-09-15 20:20:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoDOMNode.diff</filename>
            <type>text/plain</type>
            <size>35835</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjM4NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDYtMDktMTUgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
YXRjaCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDg3MAorICAgICAgICBBdXRvLWdlbmVyYXRlIERPTU5vZGUgZm9yIHRoZSBPYmplY3RpdmUtQyBi
aW5kaW5ncworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9E
T00ubW06CisgICAgICAgICgtW0RPTU5vZGUgYm91bmRpbmdCb3hdKToKKyAgICAgICAgKC1bRE9N
Tm9kZSBsaW5lQm94UmVjdHNdKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50cy5o
OgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXh0ZW5zaW9ucy5oOgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NTm9kZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NTm9kZS5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUlu
dGVyZmFjZXMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpD
LnBtOgorICAgICAgICAqIGRvbS9Ob2RlLmlkbDoKKwogMjAwNi0wOS0xNSAgVGltb3RoeSBIYXRj
aGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSnVzdGluLgpJ
bmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTYzODYpCisrKyBXZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsNyBAQCBhbGwgOiBcCiAg
ICAgRE9NTW91c2VFdmVudC5oIFwKICAgICBET01NdXRhdGlvbkV2ZW50LmggXAogICAgIERPTU5h
bWVkTm9kZU1hcC5oIFwKKyAgICBET01Ob2RlLmggXAogICAgIERPTU5vZGVJdGVyYXRvci5oIFwK
ICAgICBET01Ob2RlTGlzdC5oIFwKICAgICBET01Ob3RhdGlvbi5oIFwKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjM4NikKKysrIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC00NzAsNiArNDcwLDExIEBACiAJCTg1MkI5RTg4MEFBNzlDNDcwMDJBREE2RSAvKiBET01IVE1M
QXBwbGV0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1MkI5RTg0MEFBNzlDNDcwMDJBREE2RSAvKiBET01IVE1MQXBwbGV0RWxlbWVudC5t
bSAqLzsgfTsKIAkJODUyQjlFODkwQUE3OUM0NzAwMkFEQTZFIC8qIERPTUhUTUxPcHRpb25FbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTJC
OUU4NTBBQTc5QzQ3MDAyQURBNkUgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTJCOUU4QTBBQTc5QzQ3
MDAyQURBNkUgLyogRE9NSFRNTE9wdGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTJCOUU4NjBBQTc5QzQ3MDAyQURBNkUgLyogRE9N
SFRNTE9wdGlvbkVsZW1lbnQubW0gKi87IH07CisJCTg1M0JGNERCMEFCQjZCNTUwMDg2NDdCQiAv
KiBET01Ob2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NTNCRjREOTBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oICovOyB9OworCQk4NTNCRjRE
QzBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1M0JGNERBMEFCQjZCNTUwMDg2NDdCQiAvKiBET01Ob2Rl
Lm1tICovOyB9OworCQk4NTNCRjRFQjBBQkI2RTk3MDA4NjQ3QkIgLyogRE9NTm9kZVByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1M0JGNEVB
MEFCQjZFOTcwMDg2NDdCQiAvKiBET01Ob2RlUHJpdmF0ZS5oICovOyB9OworCQk4NTNCRjRFQzBB
QkI2RUI5MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTNCRjREOTBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5o
ICovOyB9OworCQk4NTNCRjRFRDBBQkI2RUI5MDA4NjQ3QkIgLyogRE9NTm9kZVByaXZhdGUuaCBp
biBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQkY0RUEw
QUJCNkU5NzAwODY0N0JCIC8qIERPTU5vZGVQcml2YXRlLmggKi87IH07CiAJCTg1NEZFNzMwMEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI2MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmls
dGVyLmNwcCAqLzsgfTsKIAkJODU0RkU3MzEwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI3
MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi87IH07CiAJCTg1NEZFNzMyMEEyMjk3
QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NEZFNzI4MEEyMjk3QkUwMDU4RDdBRCAvKiBO
b2RlRmlsdGVyQ29uZGl0aW9uLmNwcCAqLzsgfTsKQEAgLTQ4OCw4ICs0OTMsNiBAQAogCQk4NTUy
NkNEMjBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1MjZDRDAwQUIwQjdEOTAwMDMwMkVBIC8q
IERPTVRyZWVXYWxrZXIuaCAqLzsgfTsKIAkJODU1MjZDRDMwQUIwQjdEQTAwMDMwMkVBIC8qIERP
TVRyZWVXYWxrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTUyNkNEMTBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5tbSAqLzsgfTsK
IAkJODU1MjZEMDUwQUIwQjk3OTAwMDMwMkVBIC8qIERPTVRyZWVXYWxrZXIuaCBpbiBDb3B5Rmls
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1MjZDRDAwQUIwQjdEOTAw
MDMwMkVBIC8qIERPTVRyZWVXYWxrZXIuaCAqLzsgfTsKLQkJODU2Qzg5RkMwQTkwRjA2ODAwNUM2
ODdCIC8qIERPTU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1NkM4OUZBMEE5MEYwNjgwMDVDNjg3QiAvKiBET01Ob2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODU2Qzg5RkQwQTkwRjA2ODAw
NUM2ODdCIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NTZDODlGQjBBOTBGMDY4MDA1QzY4N0IgLyogRE9NTm9kZS5tbSAqLzsgfTsK
IAkJODU2QzhBRTQwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU2QzhBRTIwQTkxMjY0OTAwNUM2ODdC
IC8qIERPTU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTg1NkM4QUU1MEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmplY3QubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZDOEFFMzBBOTEyNjQ5
MDA1QzY4N0IgLyogRE9NT2JqZWN0Lm1tICovOyB9OwogCQk4NTc1REY3RTBBQTYxMjdFMDBGNURC
QjUgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTlBOUM0NTBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0
eWxlRWxlbWVudC5oICovOyB9OwpAQCAtMjE3OCw2ICsyMTgxLDggQEAKIAkJCWRzdFBhdGggPSBW
ZXJzaW9ucy9BL1ByaXZhdGVIZWFkZXJzOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDE7CiAJCQlm
aWxlcyA9ICgKKwkJCQk4NTNCRjRFQzBBQkI2RUI5MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIENv
cHlGaWxlcyAqLywKKwkJCQk4NTNCRjRFRDBBQkI2RUI5MDA4NjQ3QkIgLyogRE9NTm9kZVByaXZh
dGUuaCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJODVFOUUwQTgwQUIzQTExOTAwMDY5Q0QwIC8qIERP
TVhQYXRoRXhwcmVzc2lvbi5oIGluIENvcHlGaWxlcyAqLywKIAkJCQk4NUU5RTBBOTBBQjNBMTE5
MDAwNjlDRDAgLyogRE9NWFBhdGhFeHByZXNzaW9uUHJpdmF0ZS5oIGluIENvcHlGaWxlcyAqLywK
IAkJCQk4NUU5RTBBQTBBQjNBMTE5MDAwNjlDRDAgLyogRE9NWFBhdGhOU1Jlc29sdmVyLmggaW4g
Q29weUZpbGVzICovLApAQCAtMjg0OSw2ICsyODU0LDkgQEAKIAkJODUyQjlFODQwQUE3OUM0NzAw
MkFEQTZFIC8qIERPTUhUTUxBcHBsZXRFbGVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxBcHBsZXRFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NTJCOUU4NTBBQTc5QzQ3MDAyQURBNkUgLyogRE9NSFRNTE9wdGlv
bkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxPcHRp
b25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MkI5RTg2MEFBNzlD
NDcwMDJBREE2RSAvKiBET01IVE1MT3B0aW9uRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MT3B0aW9uRWxlbWVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODUzQkY0RDkwQUJCNkI1NTAwODY0N0JCIC8qIERPTU5vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU5vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODUzQkY0REEwQUJCNkI1NTAwODY0N0JCIC8qIERPTU5vZGUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTm9kZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODUzQkY0RUEwQUJCNkU5NzAwODY0N0JCIC8q
IERPTU5vZGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01O
b2RlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTRGRTcyNjBBMjI5
N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTm9kZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg1NEZFNzI3MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg1NEZFNzI4MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlRmlsdGVyQ29uZGl0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NzUsOCArMjg4Myw2IEBA
CiAJCTg1NTU0Mjk3MEFBNDkzODgwMEJBODlGMiAvKiBIVE1MSUZyYW1lRWxlbWVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxJRnJhbWVFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODU1NTQyOTgwQUE0OTM4ODAwQkE4OUYyIC8qIEhUTUxPYmplY3RF
bGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE9iamVjdEVsZW1lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTU1NDI5OTBBQTQ5Mzg4MDBCQTg5RjIg
LyogSFRNTFNlbGVjdEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MU2Vs
ZWN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1NkM4OUZBMEE5
MEYwNjgwMDVDNjg3QiAvKiBET01Ob2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU5vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU2Qzg5RkIwQTkwRjA2ODAwNUM2ODdCIC8qIERP
TU5vZGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTm9k
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU2QzhBRTIwQTkxMjY0OTAwNUM2
ODdCIC8qIERPTU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1NkM4QUUzMEE5MTI2NDkw
MDVDNjg3QiAvKiBET01PYmplY3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRE9NT2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTdF
MEIyMzBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NTW91c2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTQyNyw4ICs1NDMzLDYgQEAKIAkJODU0RjEyQUMwQThFQkMxODAwMDk0MEI1IC8q
IENvcmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTg1
NkM4OUZBMEE5MEYwNjgwMDVDNjg3QiAvKiBET01Ob2RlLmggKi8sCi0JCQkJODU2Qzg5RkIwQTkw
RjA2ODAwNUM2ODdCIC8qIERPTU5vZGUubW0gKi8sCiAJCQkJODU2QzhBRTIwQTkxMjY0OTAwNUM2
ODdCIC8qIERPTU9iamVjdC5oICovLAogCQkJCTg1NkM4QUUzMEE5MTI2NDkwMDVDNjg3QiAvKiBE
T01PYmplY3QubW0gKi8sCiAJCQkpOwpAQCAtNTQ4OCw2ICs1NDkyLDkgQEAKIAkJCQkxQ0ZDRUVF
MTBBQUNDNkMwMDAzNDg3NTAgLyogRE9NTmFtZWROb2RlTWFwUHJpdmF0ZS5oICovLAogCQkJCTg1
MThERDc2MEE5Q0YzMUIwMDkxQjdBNiAvKiBET01OYW1lZE5vZGVNYXAuaCAqLywKIAkJCQk4NTE4
REQ3NzBBOUNGMzFCMDA5MUI3QTYgLyogRE9NTmFtZWROb2RlTWFwLm1tICovLAorCQkJCTg1M0JG
NEVBMEFCQjZFOTcwMDg2NDdCQiAvKiBET01Ob2RlUHJpdmF0ZS5oICovLAorCQkJCTg1M0JGNEQ5
MEFCQjZCNTUwMDg2NDdCQiAvKiBET01Ob2RlLmggKi8sCisJCQkJODUzQkY0REEwQUJCNkI1NTAw
ODY0N0JCIC8qIERPTU5vZGUubW0gKi8sCiAJCQkJODVBQ0FBODkwQTlCNzU5QzAwNjcxRTkwIC8q
IERPTU5vZGVMaXN0LmggKi8sCiAJCQkJODVBQ0FBOEEwQTlCNzU5QzAwNjcxRTkwIC8qIERPTU5v
ZGVMaXN0Lm1tICovLAogCQkJCTg1Q0E5NkU4MEE5NjI0RTkwMDY5MENDRiAvKiBET01Ob3RhdGlv
bi5oICovLApAQCAtODE1Miw3ICs4MTU5LDYgQEAKIAkJCQlCQ0FBOTBBMDBBN0VCMDNBMDA4QjEy
MjkgLyogUGxhdGZvcm1TY3JvbGxCYXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RUM5QUZBMEE3
MUEyQzYwMEVFRUFFRCAvKiBGb250RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFQzlBRkIw
QTcxQTJDNjAwRUVFQUVEIC8qIExhbmd1YWdlLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NTZDODlG
QzBBOTBGMDY4MDA1QzY4N0IgLyogRE9NTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU2QzhB
RTQwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVD
QTk2QjgwQTk2MjFBNjAwNjkwQ0NGIC8qIERPTUVudGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODVDQTk2RUEwQTk2MjRFOTAwNjkwQ0NGIC8qIERPTU5vdGF0aW9uLmggaW4gSGVhZGVycyAqLywK
QEAgLTg0MjcsNiArODQzMyw4IEBACiAJCQkJQjIyMkY2OTkwQUI3NzE5NTAwMjJFRkFEIC8qIEpT
U1ZHQW5nbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjJGNjlEMEFCNzcxQjgwMDIyRUZBRCAv
KiBKU1NWR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMDExMTA4MEFCNzc0MDUwMERC
MEU2OCAvKiBKU1NWR0FFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk4NTNCRjREQjBBQkI2
QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODUzQkY0RUIwQUJC
NkU5NzAwODY0N0JCIC8qIERPTU5vZGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTg0NjEs
NyArODQ2OSw2IEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVj
dCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0
ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87Ci0JCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJY
Y29kZSAyLjQiOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lv
bnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTg0NzYsNyArODQ4Myw2IEBACiAJCQlwcm9kdWN0UmVm
R3JvdXAgPSAwMzQ3NjhERkZGMzhBNTA0MTFEQjlDOEIgLyogUHJvZHVjdHMgKi87CiAJCQlwcm9q
ZWN0RGlyUGF0aCA9ICIiOwogCQkJcHJvamVjdFJvb3QgPSAiIjsKLQkJCXNob3VsZENoZWNrQ29t
cGF0aWJpbGl0eSA9IDE7CiAJCQl0YXJnZXRzID0gKAogCQkJCTkzRjE5OEE1MDgyNDVFNTkwMDFF
OUFCQyAvKiBXZWJDb3JlICovLAogCQkJCUREMDQxRkJFMDlEOUREQkUwMDEwQUYyQSAvKiBEZXJp
dmVkIFNvdXJjZXMgKi8sCkBAIC05MjQzLDcgKzkyNDksNiBAQAogCQkJCUJDQUE5MEMzMEE3RUJB
NjAwMDhCMTIyOSAvKiBTY3JvbGxCYXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCMEZEOEEw
QTc1OUJFRDAwODBBRDQ0IC8qIFN0cmluZ0ltcGxNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5
M0IwRkQ4QjBBNzU5QkVEMDA4MEFENDQgLyogU3RyaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0J
CQkJODU2Qzg5RkQwQTkwRjA2ODAwNUM2ODdCIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLywK
IAkJCQk4NTZDOEFFNTBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODVDQTk2QjkwQTk2MjFBNjAwNjkwQ0NGIC8qIERPTUVudGl0eS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1Q0E5NkVCMEE5NjI0RTkwMDY5MENDRiAvKiBET01Ob3RhdGlvbi5tbSBp
biBTb3VyY2VzICovLApAQCAtOTUxNSw2ICs5NTIwLDcgQEAKIAkJCQlCMjIyRjY5ODBBQjc3MTk1
MDAyMkVGQUQgLyogSlNTVkdBbmdsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyRjY5QzBB
Qjc3MUI4MDAyMkVGQUQgLyogSlNTVkdFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
MDExMTA3MEFCNzc0MDUwMERCMEU2OCAvKiBKU1NWR0FFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTg1M0JGNERDMEFCQjZCNTUwMDg2NDdCQiAvKiBET01Ob2RlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0JKHJldmlzaW9uIDE2Mzg2KQorKysgV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzk5LDYgKzM5OSwzMyBAQCBz
dGF0aWMgQ2xhc3MgZWxlbWVudENsYXNzKGNvbnN0IEF0b21pY1N0CiAKIEBlbmQKIAorQGltcGxl
bWVudGF0aW9uIERPTU5vZGUgKERPTU5vZGVFeHRlbnNpb25zKQorCistIChOU1JlY3QpYm91bmRp
bmdCb3gKK3sKKyAgICBXZWJDb3JlOjpSZW5kZXJPYmplY3QgKnJlbmRlcmVyID0gW3NlbGYgX25v
ZGVdLT5yZW5kZXJlcigpOworICAgIGlmIChyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIHJlbmRl
cmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOworICAgIHJldHVybiBOU1plcm9SZWN0Owor
fQorCistIChOU0FycmF5ICopbGluZUJveFJlY3RzCit7CisgICAgV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0ICpyZW5kZXJlciA9IFtzZWxmIF9ub2RlXS0+cmVuZGVyZXIoKTsKKyAgICBpZiAocmVuZGVy
ZXIpIHsKKyAgICAgICAgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+IHJlY3RzOworICAgICAgICBy
ZW5kZXJlci0+bGluZUJveFJlY3RzKHJlY3RzKTsKKyAgICAgICAgc2l6ZV90IHNpemUgPSByZWN0
cy5zaXplKCk7CisgICAgICAgIE5TTXV0YWJsZUFycmF5ICpyZXN1bHRzID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5V2l0aENhcGFjaXR5OnNpemVdOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHNpemU7ICsraSkKKyAgICAgICAgICAgIFtyZXN1bHRzIGFkZE9iamVjdDpbTlNWYWx1ZSB2
YWx1ZVdpdGhSZWN0OnJlY3RzW2ldXV07CisgICAgICAgIHJldHVybiByZXN1bHRzOworICAgIH0K
KyAgICByZXR1cm4gbmlsOworfQorCitAZW5kCisKIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBh
dXRvLWdlbmVuZXJhdGUgaW4gRE9NTm9kZS5tbQogQGltcGxlbWVudGF0aW9uIERPTU5vZGUgKERP
TUV2ZW50VGFyZ2V0KQogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50cy5oCShyZXZpc2lv
biAxNjM4NikKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHMuaAkod29ya2luZyBj
b3B5KQpAQCAtNDgsMyArNDgsNiBAQCBlbnVtIERPTUV2ZW50RXhjZXB0aW9uQ29kZSB7CiBAaW50
ZXJmYWNlIERPTUtleWJvYXJkRXZlbnQgKE5vblN0YW5kYXJkQWRkaXRpb25zKQogLSAoQk9PTCln
ZXRNb2RpZmllclN0YXRlOihOU1N0cmluZyAqKWtleUlkZW50aWZpZXJBcmc7CiBAZW5kCisKK0Bp
bnRlcmZhY2UgRE9NTm9kZSAoRE9NRXZlbnRUYXJnZXQpIDxET01FdmVudFRhcmdldD4KK0BlbmQK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FeHRlbnNpb25zLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV4dGVuc2lvbnMuaAkocmV2aXNpb24gMTYzODYp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXh0ZW5zaW9ucy5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw2ICs0NSwxMSBAQAogCiBAY2xhc3MgTlNJbWFnZTsKIAorQGludGVyZmFjZSBET01O
b2RlIChET01Ob2RlRXh0ZW5zaW9ucykKKy0gKE5TUmVjdClib3VuZGluZ0JveDsKKy0gKE5TQXJy
YXkgKilsaW5lQm94UmVjdHM7CitAZW5kCisKIEBpbnRlcmZhY2UgRE9NRG9jdW1lbnQgKERPTURv
Y3VtZW50Q1NTRXh0ZW5zaW9ucykKIC0gKERPTUNTU1J1bGVMaXN0ICopZ2V0TWF0Y2hlZENTU1J1
bGVzOihET01FbGVtZW50ICopZWx0IDooTlNTdHJpbmcgKilwc2V1ZG9FbHQ7CiBAZW5kCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01Ob2RlLmgJKHJldmlzaW9uIDE2Mzg2KQorKysgV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTU5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4OCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53
ZWluaWdAZ21haWwuY29tPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0IDxXZWJDb3JlL0RPTU9iamVjdC5oPgot
I2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudFRhcmdldC5oPgotCi1AY2xhc3MgRE9NRG9jdW1lbnQ7
IAotQGNsYXNzIERPTU5hbWVkTm9kZU1hcDsKLUBjbGFzcyBET01Ob2RlTGlzdDsKLQotLy8gRE9N
IG5vZGUgdHlwZXMKLWVudW0gewotICAgIERPTV9FTEVNRU5UX05PREUgICAgICAgICAgICAgICAg
ICA9IDEsCi0gICAgRE9NX0FUVFJJQlVURV9OT0RFICAgICAgICAgICAgICAgID0gMiwKLSAgICBE
T01fVEVYVF9OT0RFICAgICAgICAgICAgICAgICAgICAgPSAzLAotICAgIERPTV9DREFUQV9TRUNU
SU9OX05PREUgICAgICAgICAgICA9IDQsCi0gICAgRE9NX0VOVElUWV9SRUZFUkVOQ0VfTk9ERSAg
ICAgICAgID0gNSwKLSAgICBET01fRU5USVRZX05PREUgICAgICAgICAgICAgICAgICAgPSA2LAot
ICAgIERPTV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREUgICA9IDcsCi0gICAgRE9NX0NPTU1F
TlRfTk9ERSAgICAgICAgICAgICAgICAgID0gOCwKLSAgICBET01fRE9DVU1FTlRfTk9ERSAgICAg
ICAgICAgICAgICAgPSA5LAotICAgIERPTV9ET0NVTUVOVF9UWVBFX05PREUgICAgICAgICAgICA9
IDEwLAotICAgIERPTV9ET0NVTUVOVF9GUkFHTUVOVF9OT0RFICAgICAgICA9IDExLAotICAgIERP
TV9OT1RBVElPTl9OT0RFICAgICAgICAgICAgICAgICA9IDEyCi19OwotCi1AaW50ZXJmYWNlIERP
TU5vZGUgOiBET01PYmplY3QKLS0gKE5TU3RyaW5nICopbm9kZU5hbWU7Ci0tIChOU1N0cmluZyAq
KW5vZGVWYWx1ZTsKLS0gKHZvaWQpc2V0Tm9kZVZhbHVlOihOU1N0cmluZyAqKXN0cmluZzsKLS0g
KHVuc2lnbmVkIHNob3J0KW5vZGVUeXBlOwotLSAoRE9NTm9kZSAqKXBhcmVudE5vZGU7Ci0tIChE
T01Ob2RlTGlzdCAqKWNoaWxkTm9kZXM7Ci0tIChET01Ob2RlICopZmlyc3RDaGlsZDsKLS0gKERP
TU5vZGUgKilsYXN0Q2hpbGQ7Ci0tIChET01Ob2RlICopcHJldmlvdXNTaWJsaW5nOwotLSAoRE9N
Tm9kZSAqKW5leHRTaWJsaW5nOwotLSAoRE9NTmFtZWROb2RlTWFwICopYXR0cmlidXRlczsKLS0g
KERPTURvY3VtZW50ICopb3duZXJEb2N1bWVudDsKLS0gKERPTU5vZGUgKilpbnNlcnRCZWZvcmU6
KERPTU5vZGUgKiluZXdDaGlsZCA6KERPTU5vZGUgKilyZWZDaGlsZDsKLS0gKERPTU5vZGUgKily
ZXBsYWNlQ2hpbGQ6KERPTU5vZGUgKiluZXdDaGlsZCA6KERPTU5vZGUgKilvbGRDaGlsZDsKLS0g
KERPTU5vZGUgKilyZW1vdmVDaGlsZDooRE9NTm9kZSAqKW9sZENoaWxkOwotLSAoRE9NTm9kZSAq
KWFwcGVuZENoaWxkOihET01Ob2RlICopbmV3Q2hpbGQ7Ci0tIChCT09MKWhhc0NoaWxkTm9kZXM7
Ci0tIChET01Ob2RlICopY2xvbmVOb2RlOihCT09MKWRlZXA7Ci0tICh2b2lkKW5vcm1hbGl6ZTsK
LS0gKEJPT0wpaXNTdXBwb3J0ZWQ6KE5TU3RyaW5nICopZmVhdHVyZSA6KE5TU3RyaW5nICopdmVy
c2lvbjsKLS0gKE5TU3RyaW5nICopbmFtZXNwYWNlVVJJOwotLSAoTlNTdHJpbmcgKilwcmVmaXg7
Ci0tICh2b2lkKXNldFByZWZpeDooTlNTdHJpbmcgKilwcmVmaXg7Ci0tIChOU1N0cmluZyAqKWxv
Y2FsTmFtZTsKLS0gKEJPT0wpaGFzQXR0cmlidXRlczsKLS0gKEJPT0wpaXNTYW1lTm9kZTooRE9N
Tm9kZSAqKW90aGVyOwotLSAoQk9PTClpc0VxdWFsTm9kZTooRE9NTm9kZSAqKW90aGVyOwotLSAo
TlNTdHJpbmcgKil0ZXh0Q29udGVudDsKLS0gKHZvaWQpc2V0VGV4dENvbnRlbnQ6KE5TU3RyaW5n
ICopdGV4dDsKLUBlbmQKLQotQGludGVyZmFjZSBET01Ob2RlIChET01Ob2RlRXh0ZW5zaW9ucykK
LS0gKE5TUmVjdClib3VuZGluZ0JveDsKLS0gKE5TQXJyYXkgKilsaW5lQm94UmVjdHM7Ci1AZW5k
Ci0KLUBpbnRlcmZhY2UgRE9NTm9kZSAoRE9NRXZlbnRUYXJnZXQpIDxET01FdmVudFRhcmdldD4K
LUBlbmQKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Ob2RlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Ob2RlLm1tCShyZXZpc2lvbiAxNjM4NikKKysr
IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Ob2RlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDI5
MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgSmFtZXMg
Ry4gU3BldGggPHNwZXRoQGVuZC5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdl
aW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgot
I2ltcG9ydCAiRE9NTm9kZS5oIgotCi0jaW1wb3J0ICJBdG9taWNTdHJpbmcuaCIKLSNpbXBvcnQg
IkRPTURvY3VtZW50LmgiCi0jaW1wb3J0ICJET01JbnRlcm5hbC5oIgotI2ltcG9ydCAiRE9NTmFt
ZWROb2RlTWFwLmgiCi0jaW1wb3J0ICJET01Ob2RlTGlzdC5oIgotI2ltcG9ydCAiSW50UmVjdC5o
IgotI2ltcG9ydCAiTmFtZWRBdHRyTWFwLmgiCi0jaW1wb3J0ICJOYW1lZE5vZGVNYXAuaCIKLSNp
bXBvcnQgIk5vZGUuaCIKLSNpbXBvcnQgIk5vZGVMaXN0LmgiCi0jaW1wb3J0ICJQbGF0Zm9ybVN0
cmluZy5oIgotI2ltcG9ydCAiUmVuZGVyT2JqZWN0LmgiCi0jaW1wb3J0IDx3dGYvQXNzZXJ0aW9u
cy5oPgotI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgotCi1AaW1wbGVtZW50YXRpb24gRE9NTm9kZQot
Ci0jZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFs
KQotCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBpZiAoX2ludGVybmFsKQotICAgICAgICBJTVBM
LT5kZXJlZigpOwotICAgIFtzdXBlciBkZWFsbG9jXTsKLX0KLQotLSAodm9pZClmaW5hbGl6ZQot
ewotICAgIGlmIChfaW50ZXJuYWwpCi0gICAgICAgIElNUEwtPmRlcmVmKCk7Ci0gICAgW3N1cGVy
IGZpbmFsaXplXTsKLX0KLQotLSAoTlNTdHJpbmcgKilub2RlTmFtZQotewotICAgIHJldHVybiBJ
TVBMLT5ub2RlTmFtZSgpOwotfQotCi0tIChOU1N0cmluZyAqKW5vZGVWYWx1ZQotewotICAgIC8v
IERvY3VtZW50YXRpb24gc2F5cyB3ZSBjYW4gcmFpc2UgYSBET01TVFJJTkdfU0laRV9FUlIuCi0g
ICAgLy8gSG93ZXZlciwgdGhlIGxvd2VyIGxheWVyIGRvZXMgbm90IHJlcG9ydCB0aGF0IGVycm9y
IHVwIHRvIHVzLgotICAgIHJldHVybiBJTVBMLT5ub2RlVmFsdWUoKTsKLX0KLQotLSAodm9pZClz
ZXROb2RlVmFsdWU6KE5TU3RyaW5nICopc3RyaW5nCi17Ci0gICAgQVNTRVJUKHN0cmluZyk7Ci0g
ICAgCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0Tm9k
ZVZhbHVlKHN0cmluZywgZWMpOwotICAgIHJhaXNlT25ET01FcnJvcihlYyk7Ci19Ci0KLS0gKHVu
c2lnbmVkIHNob3J0KW5vZGVUeXBlCi17Ci0gICAgcmV0dXJuIElNUEwtPm5vZGVUeXBlKCk7Ci19
Ci0KLS0gKERPTU5vZGUgKilwYXJlbnROb2RlCi17Ci0gICAgcmV0dXJuIFtET01Ob2RlIF9ub2Rl
V2l0aDpJTVBMLT5wYXJlbnROb2RlKCldOwotfQotCi0tIChET01Ob2RlTGlzdCAqKWNoaWxkTm9k
ZXMKLXsKLSAgICByZXR1cm4gW0RPTU5vZGVMaXN0IF9ub2RlTGlzdFdpdGg6SU1QTC0+Y2hpbGRO
b2RlcygpLmdldCgpXTsKLX0KLQotLSAoRE9NTm9kZSAqKWZpcnN0Q2hpbGQKLXsKLSAgICByZXR1
cm4gW0RPTU5vZGUgX25vZGVXaXRoOklNUEwtPmZpcnN0Q2hpbGQoKV07Ci19Ci0KLS0gKERPTU5v
ZGUgKilsYXN0Q2hpbGQKLXsKLSAgICByZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRoOklNUEwtPmxh
c3RDaGlsZCgpXTsKLX0KLQotLSAoRE9NTm9kZSAqKXByZXZpb3VzU2libGluZwotewotICAgIHJl
dHVybiBbRE9NTm9kZSBfbm9kZVdpdGg6SU1QTC0+cHJldmlvdXNTaWJsaW5nKCldOwotfQotCi0t
IChET01Ob2RlICopbmV4dFNpYmxpbmcKLXsKLSAgICByZXR1cm4gW0RPTU5vZGUgX25vZGVXaXRo
OklNUEwtPm5leHRTaWJsaW5nKCldOwotfQotCi0tIChET01OYW1lZE5vZGVNYXAgKilhdHRyaWJ1
dGVzCi17Ci0gICAgcmV0dXJuIFtET01OYW1lZE5vZGVNYXAgX25hbWVkTm9kZU1hcFdpdGg6SU1Q
TC0+YXR0cmlidXRlcygpXTsKLX0KLQotLSAoRE9NRG9jdW1lbnQgKilvd25lckRvY3VtZW50Ci17
Ci0gICAgcmV0dXJuIFtET01Eb2N1bWVudCBfZG9jdW1lbnRXaXRoOklNUEwtPmRvY3VtZW50KCld
OwotfQotCi0tIChET01Ob2RlICopaW5zZXJ0QmVmb3JlOihET01Ob2RlICopbmV3Q2hpbGQgOihE
T01Ob2RlICopcmVmQ2hpbGQKLXsKLSAgICBBU1NFUlQobmV3Q2hpbGQpOwotICAgIEFTU0VSVChy
ZWZDaGlsZCk7Ci0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpZiAo
SU1QTC0+aW5zZXJ0QmVmb3JlKFtuZXdDaGlsZCBfbm9kZV0sIFtyZWZDaGlsZCBfbm9kZV0sIGVj
KSkKLSAgICAgICAgcmV0dXJuIG5ld0NoaWxkOwotICAgIHJhaXNlT25ET01FcnJvcihlYyk7Ci0g
ICAgcmV0dXJuIG5pbDsKLX0KLQotLSAoRE9NTm9kZSAqKXJlcGxhY2VDaGlsZDooRE9NTm9kZSAq
KW5ld0NoaWxkIDooRE9NTm9kZSAqKW9sZENoaWxkCi17Ci0gICAgQVNTRVJUKG5ld0NoaWxkKTsK
LSAgICBBU1NFUlQob2xkQ2hpbGQpOwotCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgaWYgKElNUEwtPnJlcGxhY2VDaGlsZChbbmV3Q2hpbGQgX25vZGVdLCBbb2xkQ2hp
bGQgX25vZGVdLCBlYykpCi0gICAgICAgIHJldHVybiBvbGRDaGlsZDsKLSAgICByYWlzZU9uRE9N
RXJyb3IoZWMpOwotICAgIHJldHVybiBuaWw7Ci19Ci0KLS0gKERPTU5vZGUgKilyZW1vdmVDaGls
ZDooRE9NTm9kZSAqKW9sZENoaWxkCi17Ci0gICAgQVNTRVJUKG9sZENoaWxkKTsKLQotICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGlmIChJTVBMLT5yZW1vdmVDaGlsZChb
b2xkQ2hpbGQgX25vZGVdLCBlYykpCi0gICAgICAgIHJldHVybiBvbGRDaGlsZDsKLSAgICByYWlz
ZU9uRE9NRXJyb3IoZWMpOwotICAgIHJldHVybiBuaWw7Ci19Ci0KLS0gKERPTU5vZGUgKilhcHBl
bmRDaGlsZDooRE9NTm9kZSAqKW5ld0NoaWxkCi17Ci0gICAgQVNTRVJUKG5ld0NoaWxkKTsKLQot
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGlmIChJTVBMLT5hcHBlbmRD
aGlsZChbbmV3Q2hpbGQgX25vZGVdLCBlYykpCi0gICAgICAgIHJldHVybiBuZXdDaGlsZDsKLSAg
ICByYWlzZU9uRE9NRXJyb3IoZWMpOwotICAgIHJldHVybiBuaWw7Ci19Ci0KLS0gKEJPT0wpaGFz
Q2hpbGROb2RlcwotewotICAgIHJldHVybiBJTVBMLT5oYXNDaGlsZE5vZGVzKCk7Ci19Ci0KLS0g
KERPTU5vZGUgKiljbG9uZU5vZGU6KEJPT0wpZGVlcAotewotICAgIHJldHVybiBbRE9NTm9kZSBf
bm9kZVdpdGg6SU1QTC0+Y2xvbmVOb2RlKGRlZXApLmdldCgpXTsKLX0KLQotLSAodm9pZClub3Jt
YWxpemUKLXsKLSAgICBJTVBMLT5ub3JtYWxpemUoKTsKLX0KLQotLSAoQk9PTClpc1N1cHBvcnRl
ZDooTlNTdHJpbmcgKilmZWF0dXJlIDooTlNTdHJpbmcgKil2ZXJzaW9uCi17Ci0gICAgQVNTRVJU
KGZlYXR1cmUpOwotICAgIEFTU0VSVCh2ZXJzaW9uKTsKLQotICAgIHJldHVybiBJTVBMLT5pc1N1
cHBvcnRlZChmZWF0dXJlLCB2ZXJzaW9uKTsKLX0KLQotLSAoTlNTdHJpbmcgKiluYW1lc3BhY2VV
UkkKLXsKLSAgICByZXR1cm4gSU1QTC0+bmFtZXNwYWNlVVJJKCk7Ci19Ci0KLS0gKE5TU3RyaW5n
ICopcHJlZml4Ci17Ci0gICAgcmV0dXJuIElNUEwtPnByZWZpeCgpOwotfQotCi0tICh2b2lkKXNl
dFByZWZpeDooTlNTdHJpbmcgKilwcmVmaXgKLXsKLSAgICBBU1NFUlQocHJlZml4KTsKLQotICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFByZWZpeChwcmVm
aXgsIGVjKTsKLSAgICByYWlzZU9uRE9NRXJyb3IoZWMpOwotfQotCi0tIChOU1N0cmluZyAqKWxv
Y2FsTmFtZQotewotICAgIHJldHVybiBJTVBMLT5sb2NhbE5hbWUoKTsKLX0KLQotLSAoQk9PTClo
YXNBdHRyaWJ1dGVzCi17Ci0gICAgcmV0dXJuIElNUEwtPmhhc0F0dHJpYnV0ZXMoKTsKLX0KLQot
LSAoQk9PTClpc1NhbWVOb2RlOihET01Ob2RlICopb3RoZXIKLXsKLSAgICByZXR1cm4gSU1QTC0+
aXNTYW1lTm9kZShbb3RoZXIgX25vZGVdKTsKLX0KLQotLSAoQk9PTClpc0VxdWFsTm9kZTooRE9N
Tm9kZSAqKW90aGVyCi17Ci0gICAgcmV0dXJuIElNUEwtPmlzRXF1YWxOb2RlKFtvdGhlciBfbm9k
ZV0pOwotfQotCi0tIChCT09MKWlzRGVmYXVsdE5hbWVzcGFjZTooTlNTdHJpbmcgKiluYW1lc3Bh
Y2VVUkkKLXsKLSAgICByZXR1cm4gSU1QTC0+aXNEZWZhdWx0TmFtZXNwYWNlKG5hbWVzcGFjZVVS
SSk7Ci19Ci0KLS0gKE5TU3RyaW5nICopbG9va3VwUHJlZml4OihOU1N0cmluZyAqKW5hbWVzcGFj
ZVVSSQotewotICAgIHJldHVybiBJTVBMLT5sb29rdXBQcmVmaXgobmFtZXNwYWNlVVJJKTsKLX0K
LQotLSAoTlNTdHJpbmcgKilsb29rdXBOYW1lc3BhY2VVUkk6KE5TU3RyaW5nICopcHJlZml4Ci17
Ci0gICAgcmV0dXJuIElNUEwtPmxvb2t1cE5hbWVzcGFjZVVSSShwcmVmaXgpOwotfQotCi0tIChO
U1N0cmluZyAqKXRleHRDb250ZW50Ci17Ci0gICAgcmV0dXJuIElNUEwtPnRleHRDb250ZW50KCk7
Ci19Ci0KLS0gKHZvaWQpc2V0VGV4dENvbnRlbnQ6KE5TU3RyaW5nICopdGV4dAotewotICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFRleHRDb250ZW50KHRl
eHQsIGVjKTsKLSAgICByYWlzZU9uRE9NRXJyb3IoZWMpOwotfQotCi1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBET01Ob2RlIChET01Ob2RlRXh0ZW5zaW9ucykKLQotLSAoTlNSZWN0KWJvdW5kaW5n
Qm94Ci17Ci0gICAgV2ViQ29yZTo6UmVuZGVyT2JqZWN0ICpyZW5kZXJlciA9IElNUEwtPnJlbmRl
cmVyKCk7Ci0gICAgaWYgKHJlbmRlcmVyKQotICAgICAgICByZXR1cm4gcmVuZGVyZXItPmFic29s
dXRlQm91bmRpbmdCb3hSZWN0KCk7Ci0gICAgcmV0dXJuIE5TWmVyb1JlY3Q7Ci19Ci0KLS0gKE5T
QXJyYXkgKilsaW5lQm94UmVjdHMKLXsKLSAgICBXZWJDb3JlOjpSZW5kZXJPYmplY3QgKnJlbmRl
cmVyID0gSU1QTC0+cmVuZGVyZXIoKTsKLSAgICBpZiAocmVuZGVyZXIpIHsKLSAgICAgICAgVmVj
dG9yPFdlYkNvcmU6OkludFJlY3Q+IHJlY3RzOwotICAgICAgICByZW5kZXJlci0+bGluZUJveFJl
Y3RzKHJlY3RzKTsKLSAgICAgICAgc2l6ZV90IHNpemUgPSByZWN0cy5zaXplKCk7Ci0gICAgICAg
IE5TTXV0YWJsZUFycmF5ICpyZXN1bHRzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFj
aXR5OnNpemVdOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAg
ICAgICAgICAgIFtyZXN1bHRzIGFkZE9iamVjdDpbTlNWYWx1ZSB2YWx1ZVdpdGhSZWN0OnJlY3Rz
W2ldXV07Ci0gICAgICAgIHJldHVybiByZXN1bHRzOwotICAgIH0KLSAgICByZXR1cm4gbmlsOwot
fQotCi1AZW5kCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNl
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZh
Y2VzLmgJKHJldmlzaW9uIDE2Mzg2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RP
TUludGVyZmFjZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTg2LDYgKzE4NiwzOCBAQAogLy8tIChE
T01Ob2RlICopcmVtb3ZlTmFtZWRJdGVtTlM6KE5TU3RyaW5nICopbmFtZXNwYWNlVVJJIGxvY2Fs
TmFtZTooTlNTdHJpbmcgKilsb2NhbE5hbWU7CiBAZW5kCiAKK0BpbnRlcmZhY2UgRE9NTm9kZSA6
IERPTU9iamVjdAorQHByb3BlcnR5KHJlYWRvbmx5KSBOU1N0cmluZyAqbm9kZU5hbWU7CitAcHJv
cGVydHkgTlNTdHJpbmcgKm5vZGVWYWx1ZTsKK0Bwcm9wZXJ0eShyZWFkb25seSkgdW5zaWduZWQg
c2hvcnQgbm9kZVR5cGU7CitAcHJvcGVydHkocmVhZG9ubHkpIERPTU5vZGUgKnBhcmVudE5vZGU7
CitAcHJvcGVydHkocmVhZG9ubHkpIERPTU5vZGVMaXN0ICpjaGlsZE5vZGVzOworQHByb3BlcnR5
KHJlYWRvbmx5KSBET01Ob2RlICpmaXJzdENoaWxkOworQHByb3BlcnR5KHJlYWRvbmx5KSBET01O
b2RlICpsYXN0Q2hpbGQ7CitAcHJvcGVydHkocmVhZG9ubHkpIERPTU5vZGUgKnByZXZpb3VzU2li
bGluZzsKK0Bwcm9wZXJ0eShyZWFkb25seSkgRE9NTm9kZSAqbmV4dFNpYmxpbmc7CitAcHJvcGVy
dHkocmVhZG9ubHkpIERPTU5hbWVkTm9kZU1hcCAqYXR0cmlidXRlczsKK0Bwcm9wZXJ0eShyZWFk
b25seSkgRE9NRG9jdW1lbnQgKm93bmVyRG9jdW1lbnQ7CitAcHJvcGVydHkocmVhZG9ubHkpIE5T
U3RyaW5nICpuYW1lc3BhY2VVUkk7CitAcHJvcGVydHkgTlNTdHJpbmcgKnByZWZpeDsKK0Bwcm9w
ZXJ0eShyZWFkb25seSkgTlNTdHJpbmcgKmxvY2FsTmFtZTsKK0Bwcm9wZXJ0eSBOU1N0cmluZyAq
dGV4dENvbnRlbnQ7CistIChET01Ob2RlICopaW5zZXJ0QmVmb3JlOihET01Ob2RlICopbmV3Q2hp
bGQgOihET01Ob2RlICopcmVmQ2hpbGQ7CisvLy0gKERPTU5vZGUgKilpbnNlcnRCZWZvcmU6KERP
TU5vZGUgKiluZXdDaGlsZCByZWZDaGlsZDooRE9NTm9kZSAqKXJlZkNoaWxkOworLSAoRE9NTm9k
ZSAqKXJlcGxhY2VDaGlsZDooRE9NTm9kZSAqKW5ld0NoaWxkIDooRE9NTm9kZSAqKW9sZENoaWxk
OworLy8tIChET01Ob2RlICopcmVwbGFjZUNoaWxkOihET01Ob2RlICopbmV3Q2hpbGQgb2xkQ2hp
bGQ6KERPTU5vZGUgKilvbGRDaGlsZDsKKy0gKERPTU5vZGUgKilyZW1vdmVDaGlsZDooRE9NTm9k
ZSAqKW9sZENoaWxkOworLSAoRE9NTm9kZSAqKWFwcGVuZENoaWxkOihET01Ob2RlICopbmV3Q2hp
bGQ7CistIChCT09MKWhhc0NoaWxkTm9kZXM7CistIChET01Ob2RlICopY2xvbmVOb2RlOihCT09M
KWRlZXA7CistICh2b2lkKW5vcm1hbGl6ZTsKKy0gKEJPT0wpaXNTdXBwb3J0ZWQ6KE5TU3RyaW5n
ICopZmVhdHVyZSA6KE5TU3RyaW5nICopdmVyc2lvbjsKKy8vLSAoQk9PTClpc1N1cHBvcnRlZDoo
TlNTdHJpbmcgKilmZWF0dXJlIHZlcnNpb246KE5TU3RyaW5nICopdmVyc2lvbjsKKy0gKEJPT0wp
aGFzQXR0cmlidXRlczsKKy0gKEJPT0wpaXNTYW1lTm9kZTooRE9NTm9kZSAqKW90aGVyOworLSAo
Qk9PTClpc0VxdWFsTm9kZTooRE9NTm9kZSAqKW90aGVyOworQGVuZAorCiBAaW50ZXJmYWNlIERP
TU5vZGVMaXN0IDogRE9NT2JqZWN0CiBAcHJvcGVydHkocmVhZG9ubHkpIHVuc2lnbmVkIGxlbmd0
aDsKIC0gKERPTU5vZGUgKilpdGVtOih1bnNpZ25lZClpbmRleDsKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHJldmlzaW9uIDE2Mzg2KQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCSh3b3JraW5n
IGNvcHkpCkBAIC0zOTIsMTMgKzM5Miw2IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgICMgVGVtcCBET01YUGF0aC5oCi0gICAgaWYgKCR0eXBl
IGVxICJYUGF0aEV4cHJlc3Npb24iIG9yICR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiIG9yICR0
eXBlIGVxICJYUGF0aFJlc3VsdCIpIHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NWFBhdGgu
aCJ9ID0gMTsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siJHR5cGUuaCJ9ID0gMTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQogICAgICMgVGVtcCBET01JbXBsZW1lbnRhdGlvbkZyb250LmgKICAg
ICBpZiAoJHR5cGUgZXEgIkRPTUltcGxlbWVudGF0aW9uIikgewogICAgICAgICAkaW1wbEluY2x1
ZGVzeyJET01JbXBsZW1lbnRhdGlvbkZyb250LmgifSA9IDE7CkBAIC00MDgsMTQgKzQwMSwxNyBA
QCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiAKICAgICBpZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0
IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJET00kdHlwZS5oIn0gPSAxOworICAgICAgICAk
aW1wbEluY2x1ZGVzeyJFdmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgICMgRklYTUU6IGZvciBzb21lIHJlYXNvbiBpdCB3b24ndCBjb21waWxlIHdp
dGhvdXQgYm90aCBDU1NTdHlsZURlY2xhcmF0aW9uLmgKICAgICAjIGFuZCBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5oCi0gICAgaWYgKCR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIikg
ewotICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0g
PSAxOwotICAgIH0KKyAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5oIn0gPSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKworICAgICMgRklY
TUU6IGZvciBzb21lIHJlYXNvbiBpdCB3b24ndCBjb21waWxlIHdpdGhvdXQgYm90aCBOYW1lZE5v
ZGVNYXAuaAorICAgICMgYW5kIE5hbWVkQXR0ck1hcC5oCisgICAgJGltcGxJbmNsdWRlc3siTmFt
ZWRBdHRyTWFwLmgifSA9IDEgaWYgJHR5cGUgZXEgIk5hbWVkTm9kZU1hcCI7CiAKICAgICAjIERl
ZmF1bHQsIGluY2x1ZGUgdGhlIHNhbWUgbmFtZWQgZmlsZSAodGhlIGltcGxlbWVudGF0aW9uKSBh
bmQgdGhlIHNhbWUgbmFtZSBwcmVmaXhlZCB3aXRoICJET00iLiAKICAgICAkaW1wbEluY2x1ZGVz
eyIkdHlwZS5oIn0gPSAxOwpAQCAtODkyLDYgKzg4OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVyTmFtZXMsICRpbXBsR2V0dGVy
KTsKICAgICAgICAgICAgICAgICAkbmVlZHNDdXN0b217IlhQYXRoTlNSZXNvbHZlciJ9ID0gJHBh
cmFtTmFtZSBpZiAkaWRsVHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsKICAgICAgICAgICAgICAg
ICAkbmVlZHNDdXN0b217IkV2ZW50VGFyZ2V0In0gPSAkcGFyYW1OYW1lIGlmICRpZGxUeXBlIGVx
ICJFdmVudFRhcmdldCI7CisgICAgICAgICAgICAgICAgJG5lZWRzQ3VzdG9teyJOb2RlVG9SZXR1
cm4ifSA9ICRwYXJhbU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJu
In07CiAKICAgICAgICAgICAgICAgICB1bmxlc3MgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2
ZVR5cGUoJGlkbFR5cGUpIG9yIElzU3RyaW5nVHlwZSgkaWRsVHlwZSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAbmVlZHNBc3NlcnQsICIgICAgQVNTRVJUKCRwYXJhbU5hbWUpO1xuIik7
CkBAIC05MjYsNyArOTIzLDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXRO
b2RlKiAke3BhcmFtTmFtZX1FdmVudFRhcmdldCA9ICgke3BhcmFtTmFtZX1Ob2RlICYmICR7cGFy
YW1OYW1lfU5vZGUtPmlzRXZlbnRUYXJnZXROb2RlKCkpID8gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RXZlbnRUYXJnZXROb2RlKj4oJHtwYXJhbU5hbWV9Tm9kZSkgOiAwO1xuXG4iKTsKICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01Ob2RlLmgifSA9IDE7CiAgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siTm9kZS5oIn0gPSAxOwotICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IkV2ZW50VGFyZ2V0Tm9kZS5oIn0gPSAxOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBwdXNoKEBwYXJhbWV0ZXJOYW1lcywgImVjIikgaWYgJHJhaXNlc0V4Y2VwdGlvbnM7CkBAIC05
NDIsNiArOTM4LDIxIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAi
ICAgICRjb250ZW50O1xuIik7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNp
ZiAoZGVmaW5lZCAkbmVlZHNDdXN0b217Ik5vZGVUb1JldHVybiJ9KSB7CisgICAgICAgICAgICAg
ICAgIyBTcGVjaWFsIGNhc2UgdGhlIGluc2VydEJlZm9yZSwgcmVwbGFjZUNoaWxkLCByZW1vdmVD
aGlsZCAKKyAgICAgICAgICAgICAgICAjIGFuZCBhcHBlbmRDaGlsZCBmdW5jdGlvbnMgZnJvbSBE
T01Ob2RlIAorICAgICAgICAgICAgICAgIG15ICR0b1JldHVybiA9ICRuZWVkc0N1c3RvbXsiTm9k
ZVRvUmV0dXJuIn07CisgICAgICAgICAgICAgICAgaWYgKCRyYWlzZXNFeGNlcHRpb25zKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkZXhjZXB0aW9u
SW5pdFxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAg
ICBpZiAoJGNvbnRlbnQpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25D
b250ZW50LCAiICAgICAgICByZXR1cm4gJHRvUmV0dXJuO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkZXhjZXB0aW9uUmFpc2VPbkVycm9yXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIHJldHVy
biBuaWw7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgaWYgKCRjb250ZW50KVxuIik7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAgcmV0dXJuICR0b1Jl
dHVybjtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIg
ICAgcmV0dXJuIG5pbDtcbiIpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgbXkgJHR5cGVNYWtlciA9IEdldE9iakNUeXBlTWFrZXIoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpOwogICAgICAgICAgICAgICAgIHVubGVzcyAoJHR5cGVN
YWtlciBlcSAiIikgewpAQCAtMTAzMSw3ICsxMDQyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLSAoaWQpJGluaXRXaXRoSW1w
bE5hbWU6KCRpbXBsQ2xhc3NOYW1lV2l0aE5hbWVzcGFjZSAqKWltcGxcbiIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIFtzdXBlciBfaW5pdF07XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIF9pbnRlcm5hbCA9IERPTV9jYXN0PERPTU9iamVjdEludGVybmFsKj4oaW1wbCk7
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIF9pbnRlcm5hbCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0SW50ZXJuYWwqPihpbXBsKTtcbiIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wbC0+cmVmKCk7XG4iKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGFkZERPTVdyYXBwZXIoc2VsZiwgaW1wbCk7XG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBzZWxmO1xuIik7Cklu
ZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Ob2Rl
LmlkbAkocmV2aXNpb24gMTYzODYpCisrKyBXZWJDb3JlL2RvbS9Ob2RlLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2Vp
bmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTksMTAgKzIwLDcgQEAKIAog
bW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJlbnQ9S0pTOjpET01Ob2Rl
LCBHZW5lcmF0ZUNvbnN0cnVjdG9yXSBOb2RlIHsKLQotICAgICAgICAvLyBET00gTGV2ZWwgMiBD
b3JlCi0gICAgICAgIAorICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6RE9NTm9kZSwg
R2VuZXJhdGVDb25zdHJ1Y3RvciwgT2JqQ05vSW50ZXJuYWxdIE5vZGUgeyAgICAgICAgCiAgICAg
ICAgIC8vIE5vZGVUeXBlCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgRUxFTUVO
VF9OT0RFICAgICAgICAgICAgICAgICAgID0gMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgICAgICBBVFRSSUJVVEVfTk9ERSAgICAgICAgICAgICAgICAgPSAyOwpAQCAtMzYsNSArMzQs
ODIgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIERP
Q1VNRU5UX1RZUEVfTk9ERSAgICAgICAgICAgICA9IDEwOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCAgICAgIERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgICAgICAgICA9IDExOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIE5PVEFUSU9OX05PREUgICAgICAgICAgICAgICAg
ICA9IDEyOworCisjaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbm9kZU5hbWU7CisKKyAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IHRoZSBzcGVjIHNheXMgdGhpcyBjYW4gYWxzbyByYWlzZSBvbiByZXRy
aWV2YWwuCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5vZGVW
YWx1ZQorICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCAgIG5vZGVUeXBlOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgICAgICAgICBwYXJlbnROb2RlOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgICAgICAgICBjaGlsZE5vZGVzOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgICAgICAgICBmaXJzdENoaWxkOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgICAgICAgICBsYXN0Q2hpbGQ7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAgICAgICAgICAgIHByZXZpb3VzU2libGlu
ZzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgICAgICAgICAgICAgbmV4dFNpYmxp
bmc7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOYW1lZE5vZGVNYXAgICAgIGF0dHJpYnV0
ZXM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCAgICAgICAgIG93bmVyRG9j
dW1lbnQ7CisKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gTm9kZSBpbnNlcnRCZWZvcmUoaW4gW1Jl
dHVybl0gTm9kZSBuZXdDaGlsZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIE5vZGUgcmVmQ2hpbGQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gTm9kZSByZXBsYWNlQ2hpbGQoaW4gTm9kZSBuZXdD
aGlsZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtSZXR1
cm5dIE5vZGUgb2xkQ2hpbGQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgTm9kZSAgICAgICAgICAgICAgIHJlbW92ZUNoaWxkKGluIFtSZXR1cm5dIE5vZGUgb2xk
Q2hpbGQpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSAg
ICAgICAgICAgICAgIGFwcGVuZENoaWxkKGluIFtSZXR1cm5dIE5vZGUgbmV3Q2hpbGQpCisgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgICAg
IGhhc0NoaWxkTm9kZXMoKTsKKyAgICAgICAgTm9kZSAgICAgICAgICAgICAgIGNsb25lTm9kZShp
biBib29sZWFuIGRlZXApOworICAgICAgICB2b2lkICAgICAgICAgICAgICAgbm9ybWFsaXplKCk7
CisKKyAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKKworICAgICAgICBbT2xk
U3R5bGVPYmpDXSBib29sZWFuIGlzU3VwcG9ydGVkKGluIERPTVN0cmluZyBmZWF0dXJlLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgdmVy
c2lvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWVz
cGFjZVVSSTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgcHJl
Zml4CisgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIGxvY2FsTmFtZTsKKyAg
ICAgICAgYm9vbGVhbiAgICAgICAgICAgIGhhc0F0dHJpYnV0ZXMoKTsKKworICAgICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAzOgorCisgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0
aGUgc3BlYyBzYXlzIHRoaXMgY2FuIGFsc28gcmFpc2Ugb24gcmV0cmlldmFsLgorICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHRleHRDb250ZW50CisgICAgICAgICAg
ICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgYm9vbGVh
biAgICAgICAgICAgIGlzU2FtZU5vZGUoaW4gTm9kZSBvdGhlcik7CisgICAgICAgIGJvb2xlYW4g
ICAgICAgICAgICBpc0VxdWFsTm9kZShpbiBOb2RlIG90aGVyKTsKKyAgICAgICAgRE9NU3RyaW5n
ICAgICAgICAgIGxvb2t1cFByZWZpeChpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJKTsKKyAgICAg
ICAgYm9vbGVhbiAgICAgICAgICAgIGlzRGVmYXVsdE5hbWVzcGFjZShpbiBET01TdHJpbmcgbmFt
ZXNwYWNlVVJJKTsKKyAgICAgICAgRE9NU3RyaW5nICAgICAgICAgIGxvb2t1cE5hbWVzcGFjZVVS
SShpbiBET01TdHJpbmcgcHJlZml4KTsKKworI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElW
RV9DKQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIGJhc2VVUkk7
CisKKyAgICAgICAgLy8gRG9jdW1lbnRQb3NpdGlvbgorICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCA9IDB4MDE7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HICAg
ID0gMHgwMjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBET0NVTUVOVF9QT1NJ
VElPTl9GT0xMT1dJTkcgICAgPSAweDA0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAg
ICAgIERPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TICAgICA9IDB4MDg7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0ICAgICAgRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZID0gMHgx
MDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBET0NVTUVOVF9QT1NJVElPTl9J
TVBMRU1FTlRBVElPTl9TUEVDSUZJQyA9IDB4MjA7CisKKyAgICAgICAgdW5zaWduZWQgc2hvcnQg
ICAgIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGluIE5vZGUgb3RoZXIpCisgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBET01PYmplY3QgICAgICAgICAgZ2V0RmVh
dHVyZShpbiBET01TdHJpbmcgZmVhdHVyZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIERPTVN0cmluZyB2ZXJzaW9uKTsKKyAgICAgICAgRE9NVXNlckRhdGEgICAg
ICAgIHNldFVzZXJEYXRhKGluIERPTVN0cmluZyBrZXksIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gRE9NVXNlckRhdGEgZGF0YSwgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBVc2VyRGF0YUhhbmRsZXIgaGFuZGxlcik7CisgICAg
ICAgIERPTVVzZXJEYXRhICAgICAgICBnZXRVc2VyRGF0YShpbiBET01TdHJpbmcga2V5KTsKKyNl
bmRpZiAvKiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgKi8KKyNlbmRpZiAvKiAhZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAqLwogICAgIH07CisKIH0KSW5kZXg6IFdlYktpdC9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMTYzODYp
CisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MDYtMDktMTUgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBmb3IgaHR0cDovL2J1
Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3MAorICAgICAgICBBdXRv
LWdlbmVyYXRlIERPTU5vZGUgZm9yIHRoZSBPYmplY3RpdmUtQyBiaW5kaW5ncworCisgICAgICAg
ICogTWlncmF0ZUhlYWRlcnMubWFrZToKKwogMjAwNi0wOS0xNSAgVGltb3RoeSBIYXRjaGVyICA8
dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSnVzdGluLgpJbmRleDog
V2ViS2l0L01pZ3JhdGVIZWFkZXJzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L01pZ3JhdGVI
ZWFkZXJzLm1ha2UJKHJldmlzaW9uIDE2Mzg2KQorKysgV2ViS2l0L01pZ3JhdGVIZWFkZXJzLm1h
a2UJKHdvcmtpbmcgY29weSkKQEAgLTE1Nyw2ICsxNTcsNyBAQCBhbGwgOiBcCiAgICAgJChQVUJM
SUNfSEVBREVSU19ESVIpL0RPTU5hbWVkTm9kZU1hcC5oIFwKICAgICAkKFBSSVZBVEVfSEVBREVS
U19ESVIpL0RPTU5hbWVkTm9kZU1hcFByaXZhdGUuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19E
SVIpL0RPTU5vZGUuaCBcCisgICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01Ob2RlUHJpdmF0
ZS5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NTm9kZUZpbHRlci5oIFwKICAgICAk
KFBVQkxJQ19IRUFERVJTX0RJUikvRE9NTm9kZUl0ZXJhdG9yLmggXAogICAgICQoUFJJVkFURV9I
RUFERVJTX0RJUikvRE9NTm9kZUl0ZXJhdG9yUHJpdmF0ZS5oIFwK
</data>
<flag name="review"
          id="3437"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>