<?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>71108</bug_id>
          
          <creation_ts>2011-10-28 04:13:05 -0700</creation_ts>
          <short_desc>Autogenerate Exception-downcast code in bindings</short_desc>
          <delta_ts>2011-10-28 13:20:56 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>492371</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-28 04:13:05 -0700</bug_when>
    <thetext>Autogenerate Exception-downcast code in bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492372</commentid>
    <comment_count>1</comment_count>
      <attachid>112846</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-28 04:17:27 -0700</bug_when>
    <thetext>Created attachment 112846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492609</commentid>
    <comment_count>2</comment_count>
      <attachid>112846</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-28 12:35:16 -0700</bug_when>
    <thetext>Comment on attachment 112846
Patch

Very nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492629</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-28 13:20:56 -0700</bug_when>
    <thetext>Committed r98755: &lt;http://trac.webkit.org/changeset/98755&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112846</attachid>
            <date>2011-10-28 04:17:27 -0700</date>
            <delta_ts>2011-10-28 12:51:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71108-20111028041726.patch</filename>
            <type>text/plain</type>
            <size>32561</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4NzE1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTEtMTAtMjggIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBdXRvZ2VuZXJhdGUgRXhjZXB0aW9u
LWRvd25jYXN0IGNvZGUgaW4gYmluZGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcxMTA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCB1c2VzIHRoZSBzYW1lIGdlbmVyYXRlZCBjb2Rl
IHN0eWxlIGFzIHdlJ3JlIHVzaW5nIGZvciBFdmVudHMKKyAgICAgICAgdG8gZ2VuZXJhdGUgdGhl
IGRvd25jYXN0cyBmb3IgdGhlIEV4Y2VwdGlvbiB0eXBlcyBpbiB0aGUgYmluZGluZ3MuCisgICAg
ICAgIFRoaXMgY2F1c2UgbWUgdG8gcmVmYWN0b3IgbW9yZSBjb2RlIGZyb20gbWFrZV9ldmVudF9m
YWN0b3J5LnBsIGludG8KKyAgICAgICAgSW5GaWxlc0NvbXBpbGVyLnBtLgorCisgICAgICAgIEFm
dGVyIHRoaXMgcGF0Y2gsIHNvbWUgb2YgdGhlc2UgZmlsZXMgYW5kIHNjcmlwdHMgYXJlIG1pc25h
bWVkLiAgSSdsbAorICAgICAgICByZW5hbWUgdGhlbSBpbiBhIGZvbGxvd3VwIHBhdGNoLgorCisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwL1dl
YkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldERPTUV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9F
eGNlcHRpb25IYW5kbGVycy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJhaXNlRE9NRXhjZXB0aW9u
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNDb21waWxlci5wbToKKyAgICAg
ICAgKGluaXRpYWxpemVGcm9tQ29tbWFuZExpbmUpOgorICAgICAgICAoY29tcGlsZSk6CisgICAg
ICAgIChpbnRlcmZhY2VGb3JJdGVtKToKKyAgICAgICAgKHRvTWFjcm9TdHlsZSk6CisgICAgICAg
IChnZW5lcmF0ZUludGVyZmFjZXNIZWFkZXIpOgorICAgICAgICAoZ2VuZXJhdGVIZWFkZXJzSGVh
ZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4UHJveHk6OnNldERPTUV4Y2VwdGlvbik6CisgICAgICAgICogZG9tL0V4Y2VwdGlvbkNv
ZGVEZXNjcmlwdGlvbi5pbjoKKyAgICAgICAgKiBkb20vbWFrZV9ldmVudF9mYWN0b3J5LnBsOgor
ICAgICAgICAoZ2VuZXJhdGVDb2RlKToKKyAgICAgICAgKGdlbmVyYXRlSW1wbGVtZW50YXRpb24p
OgorICAgICAgICAqIGRvbS9tYWtlX2V4Y2VwdGlvbl9jb2RlX2Rlc2NyaXB0aW9uLnBsOgorICAg
ICAgICAoZGVmYXVsdEl0ZW1GYWN0b3J5KToKKyAgICAgICAgKGdlbmVyYXRlQ29kZSk6CisKIDIw
MTEtMTAtMjggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1v
dmUgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQkocmV2aXNpb24gOTg3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC04NTcsNyArODU3LDcgQEAgRXZlbnRGYWN0b3J5
LmNwcCBFdmVudEhlYWRlcnMuaCBFdmVudEludAogRXZlbnRUYXJnZXRIZWFkZXJzLmggRXZlbnRU
YXJnZXRJbnRlcmZhY2VzLmggOiBkb20vbWFrZV9ldmVudF9mYWN0b3J5LnBsIGRvbS9FdmVudFRh
cmdldEZhY3RvcnkuaW4KIAlwZXJsIC1JICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAt
LWlucHV0ICQoV2ViQ29yZSkvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgogCi1FeGNlcHRpb25D
b2RlRGVzY3JpcHRpb24uY3BwIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5oIDogZG9tL21ha2Vf
ZXhjZXB0aW9uX2NvZGVfZGVzY3JpcHRpb24ucGwgZG9tL0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlv
bi5pbgorRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmNwcCBFeGNlcHRpb25Db2RlRGVzY3JpcHRp
b24uaCBFeGNlcHRpb25IZWFkZXJzLmggRXhjZXB0aW9uSW50ZXJmYWNlcy5oIDogZG9tL21ha2Vf
ZXhjZXB0aW9uX2NvZGVfZGVzY3JpcHRpb24ucGwgZG9tL0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlv
bi5pbgogCXBlcmwgLUkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0taW5wdXQgJChX
ZWJDb3JlKS9kb20vRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmluCiAKICMgLS0tLS0tLS0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA5ODcxNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC02OTYsNyArNjk2LDcgQEAgRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9FdmVudEZhY3RvcnkuY3BwIAogRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9FdmVudFRhcmdldEhlYWRlcnMuaCBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0V2ZW50VGFyZ2V0
SW50ZXJmYWNlcy5oOiAkKFdlYkNvcmUpL2RvbS9tYWtlX2V2ZW50X2ZhY3RvcnkucGwgJChXZWJD
b3JlKS9kb20vRXZlbnRUYXJnZXRGYWN0b3J5LmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0taW5wdXQgJChXZWJDb3JlKS9kb20vRXZlbnRU
YXJnZXRGYWN0b3J5LmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKLURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmNwcCBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5oOiAkKFdlYkNvcmUpL2Rv
bS9tYWtlX2V4Y2VwdGlvbl9jb2RlX2Rlc2NyaXB0aW9uLnBsICQoV2ViQ29yZSkvZG9tL0V4Y2Vw
dGlvbkNvZGVEZXNjcmlwdGlvbi5pbgorRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25D
b2RlRGVzY3JpcHRpb24uY3BwIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uLmggRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25IZWFkZXJzLmggRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25JbnRlcmZhY2VzLmg6ICQoV2ViQ29yZSkvZG9t
L21ha2VfZXhjZXB0aW9uX2NvZGVfZGVzY3JpcHRpb24ucGwgJChXZWJDb3JlKS9kb20vRXhjZXB0
aW9uQ29kZURlc2NyaXB0aW9uLmluCiAJJChBTV9WX0dFTikkKFBFUkwpIC1JJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzICQ8IC0taW5wdXQgJChXZWJDb3JlKS9kb20vRXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNfV0VCQ09SRSkiCiAKICMgQWxs
IFdlYiBJbnNwZWN0b3IgZ2VuZXJhdGVkIGZpbGVzIGFyZSBjcmVhdGVkIHdpdGggdGhpcyBvbmUg
Y2FsbCB0byBDb2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHJldmlzaW9uIDk4NzE0KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMTUsNiArMTUsOCBAQCB3ZWJjb3JlX2J1aWx0
X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRUYXJnZXRIZWFkZXJz
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRUYXJnZXRJbnRlcmZhY2VzLmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9FeGNlcHRpb25IZWFkZXJzLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvRXhjZXB0aW9uSW50ZXJmYWNlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0hUTUxFbGVtZW50RmFjdG9yeS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRN
TEVsZW1lbnRGYWN0b3J5LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTEVudGl0eVRh
YmxlLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA5ODcxNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNzA4MSw2ICs3MDgxLDgg
QEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0V2
ZW50VGFyZ2V0SW50ZXJmYWNlcy5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5jcHAnLAogICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXhjZXB0aW9uQ29k
ZURlc2NyaXB0aW9uLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvRXhjZXB0aW9uSGVhZGVycy5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0V4Y2VwdGlvbkludGVyZmFjZXMuaCcsCiAgICAg
ICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9IVE1MRWxlbWVu
dEZhY3RvcnkuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0hUTUxFbGVtZW50RmFjdG9yeS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxFbnRpdHlUYWJsZS5jcHAnLApJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDk4NzE0KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkKQEAg
LTcwNCw2ICs3MDQsOCBAQAogICAgICAgICAgICdvdXRwdXRzJzogWwogICAgICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24u
Y3BwJywKICAgICAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvRXhj
ZXB0aW9uQ29kZURlc2NyaXB0aW9uLmgnLAorICAgICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVE
SUFURV9ESVIpL3dlYmtpdC9FeGNlcHRpb25IZWFkZXJzLmgnLAorICAgICAgICAgICAgJzwoU0hB
UkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9FeGNlcHRpb25JbnRlcmZhY2VzLmgnLAogICAg
ICAgICAgIF0sCiAgICAgICAgICAgJ2FjdGlvbic6IFsKICAgICAgICAgICAgICdweXRob24nLApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJl
dmlzaW9uIDk4NzE0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTU3MCw2ICs1NzAsMTQgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xFeGNlcHRpb25IZWFkZXJzLmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcRXhjZXB0aW9u
SW50ZXJmYWNlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEhUTUxFbGVtZW50RmFjdG9yeS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDk4NzE0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMjExLDYgKzMyMTEsOCBAQAogCQk5NzVDQTJB
MjEzMDM2NzlEMDBFOTlBRDkgLyogSlNDcnlwdG8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NUNBMkEwMTMwMzY3OUQwMEU5OUFEOSAvKiBKU0NyeXB0
by5oICovOyB9OwogCQk5NzY2NTAxMzE0NEZBQTQyMDBGNkJCNTEgLyogRXZlbnRGYWN0b3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzY2NTAxMTE0
NEZBQTQyMDBGNkJCNTEgLyogRXZlbnRGYWN0b3J5LmggKi87IH07CiAJCTk3NjY1MDRGMTQ0RkJG
RkUwMEY2QkI1MSAvKiBFdmVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2NjUwNEUxNDRGQkZGRTAwRjZCQjUxIC8qIEV2ZW50RmFj
dG9yeS5jcHAgKi87IH07CisJCTk3NjdDRTBCMTQ1QUJDMTMwMDVFNjREQiAvKiBFeGNlcHRpb25I
ZWFkZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzY3Q0UwOTE0NUFCQzEyMDA1RTY0REIgLyogRXhjZXB0aW9uSGVhZGVycy5oICovOyB9OworCQk5
NzY3Q0UwQzE0NUFCQzEzMDA1RTY0REIgLyogRXhjZXB0aW9uSW50ZXJmYWNlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2N0NFMEExNDVBQkMxMzAw
NUU2NERCIC8qIEV4Y2VwdGlvbkludGVyZmFjZXMuaCAqLzsgfTsKIAkJOTc2RDZDNzcxMjJCOEEz
RDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNTgxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmls
ZVdyaXRlci5oICovOyB9OwogCQk5NzZENkM3ODEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM1OTEy
MkI4QTNEMDAxRkQxRjcgLyogQmxvYi5jcHAgKi87IH07CiAJCTk3NkQ2Qzc5MTIyQjhBM0QwMDFG
RDFGNyAvKiBCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzZENkM1QTEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYi5oICovOyB9OwpAQCAtMTAzNTYs
NiArMTAzNTgsOCBAQAogCQk5NzVDQTJBMDEzMDM2NzlEMDBFOTlBRDkgLyogSlNDcnlwdG8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDcnlwdG8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTc2NjUwMTExNDRGQUE0MjAwRjZCQjUxIC8qIEV2ZW50RmFjdG9y
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudEZhY3RvcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2NjUwNEUxNDRGQkZGRTAwRjZCQjUxIC8qIEV2
ZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVu
dEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzY3Q0UwOTE0NUFC
QzEyMDA1RTY0REIgLyogRXhjZXB0aW9uSGVhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFeGNlcHRpb25IZWFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk3NjdDRTBBMTQ1QUJDMTMwMDVFNjREQiAvKiBFeGNlcHRpb25JbnRlcmZhY2VzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkludGVyZmFjZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2RDZDNTgxMjJCOEEzRDAwMUZEMUY3IC8qIEFz
eW5jRmlsZVdyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBc3luY0Zp
bGVXcml0ZXIuaDsgcGF0aCA9IGZpbGVhcGkvQXN5bmNGaWxlV3JpdGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2QzU5MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2IuY3BwOyBwYXRoID0gZmls
ZWFwaS9CbG9iLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2RDZDNUExMjJC
OEEzRDAwMUZEMUY3IC8qIEJsb2IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
QmxvYi5oOyBwYXRoID0gZmlsZWFwaS9CbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNTE4NSw2ICsxNTE4OSw4IEBACiAJCQkJOTdBQTNDQTQxNDUyMzdDQzAwM0UxREE2IC8q
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlcy5oICovLAogCQkJCTk3M0RDNjNEMTQ1QTk0MDkwMDI4NDJD
MiAvKiBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uY3BwICovLAogCQkJCTk3M0RDNjNFMTQ1QTk0
MDkwMDI4NDJDMiAvKiBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uaCAqLywKKwkJCQk5NzY3Q0Uw
OTE0NUFCQzEyMDA1RTY0REIgLyogRXhjZXB0aW9uSGVhZGVycy5oICovLAorCQkJCTk3NjdDRTBB
MTQ1QUJDMTMwMDVFNjREQiAvKiBFeGNlcHRpb25JbnRlcmZhY2VzLmggKi8sCiAJCQkJQTE3Qzgx
MjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi8sCiAJCQkJQTE3
QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUE4
QkMwNDkxMTIxNEY2OTYwMEI1RjEyMiAvKiBIVE1MRW50aXR5VGFibGUuY3BwICovLApAQCAtMjQ1
MjksNiArMjQ1MzUsOCBAQAogCQkJCTk3NjY1MDEzMTQ0RkFBNDIwMEY2QkI1MSAvKiBFdmVudEZh
Y3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwRUUwREY2MTQ0RjgyNTUwMEY4MEIwRCAvKiBX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEVFMERGODE0NEY4
MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3
NjdDRTBCMTQ1QUJDMTMwMDVFNjREQiAvKiBFeGNlcHRpb25IZWFkZXJzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5NzY3Q0UwQzE0NUFCQzEzMDA1RTY0REIgLyogRXhjZXB0aW9uSW50ZXJmYWNlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTczREM2NDAxNDVBOTQwOTAwMjg0MkMyIC8qIEV4Y2VwdGlv
bkNvZGVEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdBQTNDQTUxNDUyMzdDQzAw
M0UxREE2IC8qIEV2ZW50VGFyZ2V0SGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdBQTND
QTYxNDUyMzdDQzAwM0UxREE2IC8qIEV2ZW50VGFyZ2V0SW50ZXJmYWNlcy5oIGluIEhlYWRlcnMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJ
KHJldmlzaW9uIDk4NzE1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsMzggKzIxLDE0IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAKLSNpbmNsdWRlICJET01Db3JlRXhj
ZXB0aW9uLmgiCiAjaW5jbHVkZSAiRE9NT2JqZWN0SGFzaFRhYmxlTWFwLmgiCi0jaW5jbHVkZSAi
RXZlbnRFeGNlcHRpb24uaCIKLSNpbmNsdWRlICJFeGNlcHRpb25CYXNlLmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkZpbGVFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJF
eGNlcHRpb25IZWFkZXJzLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uSW50ZXJmYWNlcy5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKLSNpbmNs
dWRlICJKU0RPTUNvcmVFeGNlcHRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5o
IgotI2luY2x1ZGUgIkpTRXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJKU0V4Y2VwdGlvbkJh
c2UuaCIKLSNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQotI2luY2x1ZGUg
IkpTRmlsZUV4Y2VwdGlvbi5oIgotI2luY2x1ZGUgIkpTT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2Vw
dGlvbi5oIgotI2VuZGlmCi0jaW5jbHVkZSAiSlNSYW5nZUV4Y2VwdGlvbi5oIgotI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCi0jaW5jbHVkZSAiSlNTUUxFeGNlcHRpb24uaCIKLSNlbmRpZgotI2lm
IEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiSlNTVkdFeGNlcHRpb24uaCIKLSNlbmRpZgotI2luY2x1
ZGUgIkpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCIKLSNpbmNsdWRlICJKU1hQYXRoRXhjZXB0
aW9uLmgiCi0jaW5jbHVkZSAiT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5oIgotI2luY2x1
ZGUgIlJhbmdlRXhjZXB0aW9uLmgiCi0jaW5jbHVkZSAiU1FMRXhjZXB0aW9uLmgiCi0jaW5jbHVk
ZSAiU1ZHRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCi0jaW5jbHVk
ZSAiWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCIKLSNpbmNsdWRlICJYUGF0aEV4Y2VwdGlvbi5o
IgogI2luY2x1ZGUgPHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9F
cnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oPgpAQCAtMTk5LDYg
KzE3NSwxMSBAQCB2b2lkIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oRXhlY1N0YXRlKiBlCiAgICAg
cmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7CiB9CiAKKyNkZWZpbmUgVFJZX1RPX0NS
RUFURV9FWENFUFRJT04oaW50ZXJmYWNlTmFtZSkgXAorICAgIGNhc2UgaW50ZXJmYWNlTmFtZSMj
VHlwZTogXAorICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBp
bnRlcmZhY2VOYW1lOjpjcmVhdGUoZGVzY3JpcHRpb24pKTsgXAorICAgICAgICBicmVhazsKKwog
dm9pZCBzZXRET01FeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb25Db2RlIGVjKQog
ewogICAgIGlmICghZWMgfHwgZXhlYy0+aGFkRXhjZXB0aW9uKCkpCkBAIC0yMTMsNTAgKzE5NCwx
NSBAQCB2b2lkIHNldERPTUV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEV4CiAKICAgICBKU1Zh
bHVlIGVycm9yT2JqZWN0OwogICAgIHN3aXRjaCAoZGVzY3JpcHRpb24udHlwZSkgewotICAgICAg
ICBjYXNlIERPTUNvcmVFeGNlcHRpb25UeXBlOgotICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgRE9NQ29yZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0
aW9uKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBSYW5nZUV4Y2VwdGlvblR5
cGU6Ci0gICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBS
YW5nZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBFdmVudEV4Y2VwdGlvblR5cGU6Ci0gICAgICAgICAgICBlcnJvck9iamVj
dCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBFdmVudEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2Ny
aXB0aW9uKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBYTUxIdHRwUmVxdWVz
dEV4Y2VwdGlvblR5cGU6Ci0gICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoU1ZHKQotICAgICAgICBjYXNlIFNWR0V4
Y2VwdGlvblR5cGU6Ci0gICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBTVkdFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikuZ2V0KCkpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICAgICAgY2FzZSBYUGF0aEV4Y2VwdGlvblR5cGU6Ci0g
ICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBYUGF0aEV4
Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNpZiBF
TkFCTEUoU1FMX0RBVEFCQVNFKQotICAgICAgICBjYXNlIFNRTEV4Y2VwdGlvblR5cGU6Ci0gICAg
ICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBTUUxFeGNlcHRp
b246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNp
ZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQotICAgICAgICBjYXNlIEZpbGVF
eGNlcHRpb25UeXBlOgotICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgRmlsZUV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uVHlwZToK
LSAgICAgICAgICAgIGVycm9yT2JqZWN0ID0gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIE9wZXJh
dGlvbk5vdEFsbG93ZWRFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICAgICAg
Y2FzZSBJREJEYXRhYmFzZUV4Y2VwdGlvblR5cGU6Ci0gICAgICAgICAgICBlcnJvck9iamVjdCA9
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Y3JlYXRlKGRl
c2NyaXB0aW9uKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgorICAgICAgICBET01fRVhD
RVBUSU9OX0lOVEVSRkFDRVNfRk9SX0VBQ0goVFJZX1RPX0NSRUFURV9FWENFUFRJT04pCiAgICAg
fQogCiAgICAgQVNTRVJUKGVycm9yT2JqZWN0KTsKICAgICB0aHJvd0Vycm9yKGV4ZWMsIGVycm9y
T2JqZWN0KTsKIH0KIAorI3VuZGVmIFRSWV9UT19DUkVBVEVfRVhDRVBUSU9OCisKIERPTVdpbmRv
dyogYWN0aXZlRE9NV2luZG93KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gYXNKU0RP
TVdpbmRvdyhleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0V4Y2VwdGlvbkhhbmRsZXJzLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRXhjZXB0aW9uSGFuZGxlcnMubW0JKHJl
dmlzaW9uIDk4NzE1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9FeGNlcHRpb25I
YW5kbGVycy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCB2b2lkIHJhaXNlRE9N
RXhjZXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMpCiAgICAgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uKGVjKTsKIAogICAgIE5TU3RyaW5nICpleGNlcHRpb25OYW1lOworICAgIC8v
IEZJWE1FOiBXZSBjYW4gdXNlIHRoZSBlbnVtIHRvIGRvIHRoZXNlIGNvbXBhcmlzb25zIGZhc3Rl
ci4KICAgICBpZiAoc3RyY21wKGRlc2NyaXB0aW9uLnR5cGVOYW1lLCAiRE9NIFJhbmdlIikgPT0g
MCkKICAgICAgICAgZXhjZXB0aW9uTmFtZSA9IERPTVJhbmdlRXhjZXB0aW9uOwogICAgIGVsc2Ug
aWYgKHN0cmNtcChkZXNjcmlwdGlvbi50eXBlTmFtZSwgIkRPTSBFdmVudHMiKSA9PSAwKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzQ29tcGlsZXIucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzQ29tcGls
ZXIucG0JKHJldmlzaW9uIDk4NzE0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JbkZpbGVzQ29tcGlsZXIucG0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiwxOSBAQAog
CiB1c2Ugc3RyaWN0OwogCit1c2UgQ29uZmlnOwordXNlIEdldG9wdDo6TG9uZzsKK3VzZSBGaWxl
OjpQYXRoOwordXNlIEZpbGU6OlNwZWM7CiB1c2UgSU86OkZpbGU7CiB1c2UgSW5GaWxlc1BhcnNl
cjsKIAorcmVxdWlyZSBDb25maWc7CisKIHBhY2thZ2UgSW5GaWxlc0NvbXBpbGVyOwogCitteSAk
aW5wdXRGaWxlID0gIiI7CitteSAkb3V0cHV0RGlyID0gIi4iOwogbXkgJGRlZmF1bHRJdGVtRmFj
dG9yeTsKIAogbXkgJXBhcnNlZEl0ZW1zOwpAQCAtNzEsMTEgKzc5LDI0IEBAIHN1YiBuZXcoKQog
ICAgIHJldHVybiAkcmVmZXJlbmNlOwogfQogCitzdWIgaW5pdGlhbGl6ZUZyb21Db21tYW5kTGlu
ZSgpCit7CisgICAgOjpHZXRPcHRpb25zKAorICAgICAgICAnaW5wdXQ9cycgPT4gXCRpbnB1dEZp
bGUsCisgICAgICAgICdvdXRwdXREaXI9cycgPT4gXCRvdXRwdXREaXIsCisgICAgKTsKKworICAg
IGRpZSAiWW91IG11c3Qgc3BlY2lmeSAtLWlucHV0IDxmaWxlPiIgdW5sZXNzIGxlbmd0aCgkaW5w
dXRGaWxlKTsKKworICAgIDo6bWtwYXRoKCRvdXRwdXREaXIpOworCisgICAgIyBGSVhNRTogU2hv
dWxkIHdlIHByb3ZpZGUgb3V0cHV0RGlyIHZpYSBhbiBhY2Nlc3Nvcj8KKyAgICByZXR1cm4gJG91
dHB1dERpcjsKK30KKwogc3ViIGNvbXBpbGUoKQogewogICAgIG15ICRvYmplY3QgPSBzaGlmdDsK
LQotICAgIG15ICRpbnB1dEZpbGUgPSBzaGlmdDsKICAgICBteSAkZ2VuZXJhdGVDb2RlID0gc2hp
ZnQ7CiAKICAgICBteSAkZmlsZSA9IG5ldyBJTzo6RmlsZTsKQEAgLTEyMiw0ICsxNDMsMTM1IEBA
IHN1YiBsaWNlbnNlKCkKICI7CiB9CiAKK3N1YiBpbnRlcmZhY2VGb3JJdGVtKCQpCit7CisgICAg
bXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRpdGVtTmFtZSA9IHNoaWZ0OworCisgICAgbXkg
JGludGVyZmFjZU5hbWUgPSAkcGFyc2VkSXRlbXN7JGl0ZW1OYW1lfXsiaW50ZXJmYWNlTmFtZSJ9
OworICAgICRpbnRlcmZhY2VOYW1lID0gJGl0ZW1OYW1lIHVubGVzcyAkaW50ZXJmYWNlTmFtZTsK
KworICAgIHJldHVybiAkaW50ZXJmYWNlTmFtZTsKK30KKworc3ViIHRvTWFjcm9TdHlsZSgkJCkK
K3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGNhbWVsQ2FzZSA9IHNoaWZ0Owor
CisgICAgcmV0dXJuICJFVkVOVCIgaWYgJGNhbWVsQ2FzZSBlcSAiRXZlbnQiOworICAgIHJldHVy
biAiRVZFTlRfVEFSR0VUIiBpZiAkY2FtZWxDYXNlIGVxICJFdmVudFRhcmdldCI7CisgICAgcmV0
dXJuICJFWENFUFRJT04iIGlmICRjYW1lbENhc2UgZXEgIkV4Y2VwdGlvbiI7CisKKyAgICBkaWUg
Ik9rLCB5b3UgZ290IG1lLiBUaGlzIHNjcmlwdCBpcyByZWFsbHkganVzdCBhIGdpYW50IGhhY2su
IChcJGNhbWVsQ2FzZT0ke2NhbWVsQ2FzZX0pIjsKK30KKworc3ViIGdlbmVyYXRlSW50ZXJmYWNl
c0hlYWRlcigpCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworCisgICAgbXkgJEY7CisgICAg
bXkgJG5hbWVzcGFjZSA9ICRwYXJzZWRQYXJhbWV0ZXJzeyJuYW1lc3BhY2UifTsKKyAgICBteSAk
b3V0cHV0RmlsZSA9ICIkb3V0cHV0RGlyLyR7bmFtZXNwYWNlfUludGVyZmFjZXMuaCI7CisKKyAg
ICBvcGVuIEYsICI+JG91dHB1dEZpbGUiIG9yIGRpZSAiRmFpbGVkIHRvIG9wZW4gZmlsZTogJCEi
OworCisgICAgcHJpbnQgRiBsaWNlbnNlKCk7CisKKyAgICBwcmludCBGICIjaWZuZGVmICR7bmFt
ZXNwYWNlfUludGVyZmFjZXNfaFxuIjsKKyAgICBwcmludCBGICIjZGVmaW5lICR7bmFtZXNwYWNl
fUludGVyZmFjZXNfaFxuIjsKKyAgICBwcmludCBGICJcbiI7CisKKyAgICBteSAldW5jb25kaXRp
b25hbEludGVyZmFjZXMgPSAoKTsKKyAgICBteSAlaW50ZXJmYWNlc0J5Q29uZGl0aW9uYWwgPSAo
KTsKKworICAgIGZvciBteSAkaXRlbU5hbWUgKHNvcnQga2V5cyAlcGFyc2VkSXRlbXMpIHsKKyAg
ICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJHBhcnNlZEl0ZW1zeyRpdGVtTmFtZX17ImNvbmRpdGlv
bmFsIn07CisgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJG9iamVjdC0+aW50ZXJmYWNlRm9y
SXRlbSgkaXRlbU5hbWUpOworCisgICAgICAgIGlmICgkY29uZGl0aW9uYWwpIHsKKyAgICAgICAg
ICAgIGlmICghZGVmaW5lZCgkaW50ZXJmYWNlc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFsfSkp
IHsKKyAgICAgICAgICAgICAgICAkaW50ZXJmYWNlc0J5Q29uZGl0aW9uYWx7JGNvbmRpdGlvbmFs
fSA9ICgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJGludGVyZmFjZXNCeUNvbmRpdGlv
bmFseyRjb25kaXRpb25hbH17JGludGVyZmFjZU5hbWV9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICR1bmNvbmRpdGlvbmFsSW50ZXJmYWNlc3skaW50ZXJmYWNlTmFtZX0gPSAx
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBteSAkbWFjcm9TdHlsZWROYW1lc3BhY2UgPSAkb2Jq
ZWN0LT50b01hY3JvU3R5bGUoJG5hbWVzcGFjZSk7CisKKyAgICBmb3IgbXkgJGNvbmRpdGlvbmFs
IChzb3J0IGtleXMgJWludGVyZmFjZXNCeUNvbmRpdGlvbmFsKSB7CisgICAgICAgIHByaW50IEYg
IiNpZiBFTkFCTEUoJGNvbmRpdGlvbmFsKVxuIjsKKyAgICAgICAgcHJpbnQgRiAiI2RlZmluZSBE
T01fJHttYWNyb1N0eWxlZE5hbWVzcGFjZX1fSU5URVJGQUNFU19GT1JfRUFDSF8kY29uZGl0aW9u
YWwobWFjcm8pIFxcXG4iOworCisgICAgICAgIGZvciBteSAkaW50ZXJmYWNlIChzb3J0IGtleXMg
JXsgJGludGVyZmFjZXNCeUNvbmRpdGlvbmFseyRjb25kaXRpb25hbH0gfSkgeworICAgICAgICAg
ICAgbmV4dCBpZiBkZWZpbmVkKCR1bmNvbmRpdGlvbmFsSW50ZXJmYWNlc3skaW50ZXJmYWNlfSk7
CisgICAgICAgICAgICBwcmludCBGICIgICAgbWFjcm8oJGludGVyZmFjZSkgXFxcbiI7CisgICAg
ICAgIH0KKworICAgICAgICBwcmludCBGICIvLyBFbmQgb2YgRE9NXyR7bWFjcm9TdHlsZWROYW1l
c3BhY2V9X0lOVEVSRkFDRVNfRk9SX0VBQ0hfJGNvbmRpdGlvbmFsXG4iOworICAgICAgICBwcmlu
dCBGICIjZWxzZVxuIjsKKyAgICAgICAgcHJpbnQgRiAiI2RlZmluZSBET01fJHttYWNyb1N0eWxl
ZE5hbWVzcGFjZX1fSU5URVJGQUNFU19GT1JfRUFDSF8kY29uZGl0aW9uYWwobWFjcm8pXG4iOwor
ICAgICAgICBwcmludCBGICIjZW5kaWZcbiI7CisgICAgICAgIHByaW50IEYgIlxuIjsKKyAgICB9
CisKKyAgICBwcmludCBGICIjZGVmaW5lIERPTV8ke21hY3JvU3R5bGVkTmFtZXNwYWNlfV9JTlRF
UkZBQ0VTX0ZPUl9FQUNIKG1hY3JvKSBcXFxuIjsKKyAgICBwcmludCBGICIgICAgXFxcbiI7Cisg
ICAgZm9yIG15ICRpbnRlcmZhY2UgKHNvcnQga2V5cyAldW5jb25kaXRpb25hbEludGVyZmFjZXMp
IHsKKyAgICAgICAgICAgIHByaW50IEYgIiAgICBtYWNybygkaW50ZXJmYWNlKSBcXFxuIjsKKyAg
ICB9CisgICAgcHJpbnQgRiAiICAgIFxcXG4iOworICAgIGZvciBteSAkY29uZGl0aW9uYWwgKHNv
cnQga2V5cyAlaW50ZXJmYWNlc0J5Q29uZGl0aW9uYWwpIHsKKyAgICAgICAgcHJpbnQgRiAiICAg
IERPTV8ke21hY3JvU3R5bGVkTmFtZXNwYWNlfV9JTlRFUkZBQ0VTX0ZPUl9FQUNIXyRjb25kaXRp
b25hbChtYWNybykgXFxcbiI7CisgICAgfQorCisgICAgcHJpbnQgRiAiXG4iOworICAgIHByaW50
IEYgIiNlbmRpZiAvLyAke25hbWVzcGFjZX1JbnRlcmZhY2VzX2hcbiI7CisKKyAgICBjbG9zZSBG
OworfQorCitzdWIgZ2VuZXJhdGVIZWFkZXJzSGVhZGVyKCkKK3sKKyAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CisKKyAgICBteSAkRjsKKyAgICBteSAkbmFtZXNwYWNlID0gJHBhcnNlZFBhcmFtZXRl
cnN7Im5hbWVzcGFjZSJ9OworICAgIG15ICRvdXRwdXRGaWxlID0gIiRvdXRwdXREaXIvJHtuYW1l
c3BhY2V9SGVhZGVycy5oIjsKKworICAgIG9wZW4gRiwgIj4kb3V0cHV0RmlsZSIgb3IgZGllICJG
YWlsZWQgdG8gb3BlbiBmaWxlOiAkISI7CisKKyAgICBwcmludCBGIGxpY2Vuc2UoKTsKKworICAg
IHByaW50IEYgIiNpZm5kZWYgJHtuYW1lc3BhY2V9SGVhZGVyc19oXG4iOworICAgIHByaW50IEYg
IiNkZWZpbmUgJHtuYW1lc3BhY2V9SGVhZGVyc19oXG4iOworICAgIHByaW50IEYgIlxuIjsKKwor
ICAgIG15ICVpbmNsdWRlZEludGVyZmFjZXMgPSAoKTsKKworICAgIGZvciBteSAkaXRlbU5hbWUg
KHNvcnQga2V5cyAlcGFyc2VkSXRlbXMpIHsKKyAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJHBh
cnNlZEl0ZW1zeyRpdGVtTmFtZX17ImNvbmRpdGlvbmFsIn07CisgICAgICAgIG15ICRpbnRlcmZh
Y2VOYW1lID0gJG9iamVjdC0+aW50ZXJmYWNlRm9ySXRlbSgkaXRlbU5hbWUpOworCisgICAgICAg
IG5leHQgaWYgZGVmaW5lZCgkaW5jbHVkZWRJbnRlcmZhY2VzeyRpbnRlcmZhY2VOYW1lfSk7Cisg
ICAgICAgICRpbmNsdWRlZEludGVyZmFjZXN7JGludGVyZmFjZU5hbWV9ID0gMTsKKworICAgICAg
ICBwcmludCBGICIjaWYgRU5BQkxFKCRjb25kaXRpb25hbClcbiIgaWYgJGNvbmRpdGlvbmFsOwor
ICAgICAgICBwcmludCBGICIjaW5jbHVkZSBcIiRpbnRlcmZhY2VOYW1lLmhcIlxuIjsKKyAgICAg
ICAgcHJpbnQgRiAiI2lmIFVTRShKU0MpXG4iOworICAgICAgICBwcmludCBGICIjaW5jbHVkZSBc
IkpTJGludGVyZmFjZU5hbWUuaFwiXG4iOworICAgICAgICBwcmludCBGICIjZWxpZiBVU0UoVjgp
XG4iOworICAgICAgICBwcmludCBGICIjaW5jbHVkZSBcIlY4JGludGVyZmFjZU5hbWUuaFwiXG4i
OworICAgICAgICBwcmludCBGICIjZW5kaWZcbiI7CisgICAgICAgIHByaW50IEYgIiNlbmRpZlxu
IiBpZiAkY29uZGl0aW9uYWw7CisgICAgfQorCisgICAgcHJpbnQgRiAiXG4iOworICAgIHByaW50
IEYgIiNlbmRpZiAvLyAke25hbWVzcGFjZX1IZWFkZXJzX2hcbiI7CisKKyAgICBjbG9zZSBGOwor
fQorCiAxOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAJKHJldmlz
aW9uIDk4NzE1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDEwIEBACiAjaW5jbHVkZSAiRGF0ZUV4dGVuc2lvbi5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNp
bmNsdWRlICJFeGNlcHRpb25IZWFkZXJzLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uSW50ZXJmYWNl
cy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIK
LSNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIklEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRv
ci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgpAQCAtNTYsMjcgKzU3
LDEyIEBACiAjaW5jbHVkZSAiVjhET01Db3JlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiVjhET01N
YXAuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgotI2luY2x1ZGUgIlY4RXZlbnRFeGNlcHRp
b24uaCIKLSNpbmNsdWRlICJWOEZpbGVFeGNlcHRpb24uaCIKICNpbmNsdWRlICJWOEhpZGRlblBy
b3BlcnR5TmFtZS5oIgogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCi0jaW5jbHVkZSAi
VjhPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmgiCi0jaW5jbHVkZSAiVjhSYW5nZUV4Y2Vw
dGlvbi5oIgotI2luY2x1ZGUgIlY4U1FMRXhjZXB0aW9uLmgiCi0jaW5jbHVkZSAiVjhYTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbi5oIgotI2luY2x1ZGUgIlY4WFBhdGhFeGNlcHRpb24uaCIKICNpbmNs
dWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5o
IgogI2luY2x1ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgogCi0jaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCi0jaW5jbHVkZSAiVjhJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoU1ZHKQotI2luY2x1ZGUgIlY4U1ZHRXhjZXB0aW9uLmgiCi0j
ZW5kaWYKLQogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1
ZGUgPHV0aWxpdHk+CkBAIC02NDksNiArNjM1LDExIEBAIHZvaWQgVjhQcm94eTo6Y2xlYXJGb3JO
YXZpZ2F0aW9uKCkKICAgICB3aW5kb3dTaGVsbCgpLT5jbGVhckZvck5hdmlnYXRpb24oKTsKIH0K
IAorI2RlZmluZSBUUllfVE9fQ1JFQVRFX0VYQ0VQVElPTihpbnRlcmZhY2VOYW1lKSBcCisgICAg
Y2FzZSBpbnRlcmZhY2VOYW1lIyNUeXBlOiBcCisgICAgICAgIGV4Y2VwdGlvbiA9IHRvVjgoaW50
ZXJmYWNlTmFtZTo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7IFwKKyAgICAgICAgYnJlYWs7CisKIHZv
aWQgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGludCBlYykKIHsKICAgICBpZiAoZWMgPD0gMCkK
QEAgLTY1OCw1MiArNjQ5LDE1IEBAIHZvaWQgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGludCBl
YykKIAogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBleGNlcHRpb247CiAgICAgc3dpdGNoIChk
ZXNjcmlwdGlvbi50eXBlKSB7Ci0gICAgY2FzZSBET01Db3JlRXhjZXB0aW9uVHlwZToKLSAgICAg
ICAgZXhjZXB0aW9uID0gdG9WOChET01Db3JlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24p
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSYW5nZUV4Y2VwdGlvblR5cGU6Ci0gICAgICAg
IGV4Y2VwdGlvbiA9IHRvVjgoUmFuZ2VFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEV2ZW50RXhjZXB0aW9uVHlwZToKLSAgICAgICAgZXhj
ZXB0aW9uID0gdG9WOChFdmVudEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25UeXBlOgotICAgICAg
ICBleGNlcHRpb24gPSB0b1Y4KFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpjcmVhdGUoZGVzY3Jp
cHRpb24pKTsKLSAgICAgICAgYnJlYWs7Ci0jaWYgRU5BQkxFKFNWRykKLSAgICBjYXNlIFNWR0V4
Y2VwdGlvblR5cGU6Ci0gICAgICAgIGV4Y2VwdGlvbiA9IHRvVjgoU1ZHRXhjZXB0aW9uOjpjcmVh
dGUoZGVzY3JpcHRpb24pKTsKLSAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICBjYXNlIFhQYXRo
RXhjZXB0aW9uVHlwZToKLSAgICAgICAgZXhjZXB0aW9uID0gdG9WOChYUGF0aEV4Y2VwdGlvbjo6
Y3JlYXRlKGRlc2NyaXB0aW9uKSk7Ci0gICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShTUUxfREFU
QUJBU0UpCi0gICAgY2FzZSBTUUxFeGNlcHRpb25UeXBlOgotICAgICAgICBleGNlcHRpb24gPSB0
b1Y4KFNRTEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7Ci0gICAgICAgIGJyZWFrOwot
I2VuZGlmCi0jaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKLSAgICBjYXNl
IEZpbGVFeGNlcHRpb25UeXBlOgotICAgICAgICBleGNlcHRpb24gPSB0b1Y4KEZpbGVFeGNlcHRp
b246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE9wZXJh
dGlvbk5vdEFsbG93ZWRFeGNlcHRpb25UeXBlOgotICAgICAgICBleGNlcHRpb24gPSB0b1Y4KE9w
ZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb246OmNyZWF0ZShkZXNjcmlwdGlvbikpOwotICAgICAg
ICBicmVhazsKLSNlbmRpZgotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIGNhc2Ug
SURCRGF0YWJhc2VFeGNlcHRpb25UeXBlOgotICAgICAgICBleGNlcHRpb24gPSB0b1Y4KElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRpb24pKTsKLSAgICAgICAgYnJlYWs7Ci0j
ZW5kaWYKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgRE9NX0VYQ0VQVElPTl9JTlRFUkZBQ0VTX0ZPUl9FQUNIKFRSWV9UT19DUkVBVEVfRVhDRVBU
SU9OKQogICAgIH0KIAogICAgIGlmICghZXhjZXB0aW9uLklzRW1wdHkoKSkKICAgICAgICAgdjg6
OlRocm93RXhjZXB0aW9uKGV4Y2VwdGlvbik7CiB9CiAKKyN1bmRlZiBUUllfVE9fQ1JFQVRFX0VY
Q0VQVElPTgorCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhQcm94eTo6dGhyb3dFcnJvcihFcnJv
clR5cGUgdHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5p
bgkocmV2aXNpb24gOTg3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotbmFtZXNwYWNlPUV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbgorbmFtZXNwYWNlPUV4Y2VwdGlvbgogCiBET01Db3JlRXhj
ZXB0aW9uCiBFdmVudEV4Y2VwdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL21ha2VfZXZl
bnRfZmFjdG9yeS5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9ldmVu
dF9mYWN0b3J5LnBsCShyZXZpc2lvbiA5ODcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9tYWtl
X2V2ZW50X2ZhY3RvcnkucGwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDM1ICszMiwxMiBAQAogCiB1
c2Ugc3RyaWN0OwogCi11c2UgQ29uZmlnOwotdXNlIEdldG9wdDo6TG9uZzsKLXVzZSBGaWxlOjpQ
YXRoOwotdXNlIEZpbGU6OlNwZWM7Ci11c2UgSU86OkZpbGU7CiB1c2UgSW5GaWxlc0NvbXBpbGVy
OwogCi1yZXF1aXJlIENvbmZpZzsKLQotbXkgJGlucHV0RmlsZSA9ICIiOwotbXkgJG91dHB1dERp
ciA9ICIuIjsKLQotR2V0T3B0aW9ucygKLSAgICAnaW5wdXQ9cycgPT4gXCRpbnB1dEZpbGUsCi0g
ICAgJ291dHB1dERpcj1zJyA9PiBcJG91dHB1dERpciwKLSk7Ci0KLW1rcGF0aCgkb3V0cHV0RGly
KTsKLQotZGllICJZb3UgbXVzdCBzcGVjaWZ5IC0taW5wdXQgPGZpbGU+IiB1bmxlc3MgbGVuZ3Ro
KCRpbnB1dEZpbGUpOwotCiBteSAlZGVmYXVsdFBhcmFtZXRlcnMgPSAoCiAgICAgJ25hbWVzcGFj
ZScgPT4gMAogKTsKIAotbXkgJEluQ29tcGlsZXIgPSBJbkZpbGVzQ29tcGlsZXItPm5ldyhcJWRl
ZmF1bHRQYXJhbWV0ZXJzLCBcJmRlZmF1bHRJdGVtRmFjdG9yeSk7Ci0KLSRJbkNvbXBpbGVyLT5j
b21waWxlKCRpbnB1dEZpbGUsIFwmZ2VuZXJhdGVDb2RlKTsKLQogc3ViIGRlZmF1bHRJdGVtRmFj
dG9yeQogewogICAgIHJldHVybiAoCkBAIC02OSwzOSArNDYsMjIgQEAgc3ViIGRlZmF1bHRJdGVt
RmFjdG9yeQogICAgICk7CiB9CiAKLXN1YiBpbnRlcmZhY2VGb3JFdmVudCgkJCkKLXsKLSAgICBt
eSAoJGV2ZW50TmFtZSwgJHBhcnNlZEl0ZW1zUmVmKSA9IEBfOwotCi0gICAgbXkgJXBhcnNlZEl0
ZW1zID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07Ci0KLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRw
YXJzZWRJdGVtc3skZXZlbnROYW1lfXsiaW50ZXJmYWNlTmFtZSJ9OwotICAgICRpbnRlcmZhY2VO
YW1lID0gJGV2ZW50TmFtZSB1bmxlc3MgJGludGVyZmFjZU5hbWU7Ci0KLSAgICByZXR1cm4gJGlu
dGVyZmFjZU5hbWU7Ci19Ci0KLXN1YiB0b01hY3JvU3R5bGUoJCkKLXsKLSAgICBteSAoJGNhbWVs
Q2FzZSkgPSBAXzsKLQotICAgIHJldHVybiAiRVZFTlQiIGlmICRjYW1lbENhc2UgZXEgIkV2ZW50
IjsKLSAgICByZXR1cm4gIkVWRU5UX1RBUkdFVCIgaWYgJGNhbWVsQ2FzZSBlcSAiRXZlbnRUYXJn
ZXQiOworbXkgJEluQ29tcGlsZXIgPSBJbkZpbGVzQ29tcGlsZXItPm5ldyhcJWRlZmF1bHRQYXJh
bWV0ZXJzLCBcJmRlZmF1bHRJdGVtRmFjdG9yeSk7CiAKLSAgICBkaWUgIk9rLCB5b3UgZ290IG1l
LiBUaGlzIHNjcmlwdCBpcyByZWFsbHkganVzdCBhIGdpYW50IGhhY2suIChcJGNhbWVsQ2FzZT0k
e2NhbWVsQ2FzZX0pIjsKLX0KK215ICRvdXRwdXREaXIgPSAkSW5Db21waWxlci0+aW5pdGlhbGl6
ZUZyb21Db21tYW5kTGluZSgpOworJEluQ29tcGlsZXItPmNvbXBpbGUoXCZnZW5lcmF0ZUNvZGUp
OwogCiBzdWIgZ2VuZXJhdGVDb2RlKCkKIHsKICAgICBteSAkcGFyc2VkUGFyYW1ldGVyc1JlZiA9
IHNoaWZ0OwogICAgIG15ICRwYXJzZWRJdGVtc1JlZiA9IHNoaWZ0OwogCi0gICAgcHJpbnRGYWN0
b3J5RmlsZSgkcGFyc2VkUGFyYW1ldGVyc1JlZiwgJHBhcnNlZEl0ZW1zUmVmKTsKLSAgICBwcmlu
dE1hY3JvRmlsZSgkcGFyc2VkUGFyYW1ldGVyc1JlZiwgJHBhcnNlZEl0ZW1zUmVmKTsKLSAgICBw
cmludEhlYWRlcnNGaWxlKCRwYXJzZWRQYXJhbWV0ZXJzUmVmLCAkcGFyc2VkSXRlbXNSZWYpOwor
ICAgIGdlbmVyYXRlSW1wbGVtZW50YXRpb24oJHBhcnNlZFBhcmFtZXRlcnNSZWYsICRwYXJzZWRJ
dGVtc1JlZik7CisgICAgJEluQ29tcGlsZXItPmdlbmVyYXRlSW50ZXJmYWNlc0hlYWRlcigpOwor
ICAgICRJbkNvbXBpbGVyLT5nZW5lcmF0ZUhlYWRlcnNIZWFkZXIoKQogfQogCi1zdWIgcHJpbnRG
YWN0b3J5RmlsZSgpCitzdWIgZ2VuZXJhdGVJbXBsZW1lbnRhdGlvbigpCiB7CiAgICAgbXkgJHBh
cnNlZFBhcmFtZXRlcnNSZWYgPSBzaGlmdDsKICAgICBteSAkcGFyc2VkSXRlbXNSZWYgPSBzaGlm
dDsKQEAgLTEzMyw3ICs5Myw3IEBAIHN1YiBwcmludEZhY3RvcnlGaWxlKCkKIAogICAgIGZvciBt
eSAkZXZlbnROYW1lIChzb3J0IGtleXMgJXBhcnNlZEV2ZW50cykgewogICAgICAgICBteSAkY29u
ZGl0aW9uYWwgPSAkcGFyc2VkRXZlbnRzeyRldmVudE5hbWV9eyJjb25kaXRpb25hbCJ9OwotICAg
ICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IGludGVyZmFjZUZvckV2ZW50KCRldmVudE5hbWUsICRw
YXJzZWRJdGVtc1JlZik7CisgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJEluQ29tcGlsZXIt
PmludGVyZmFjZUZvckl0ZW0oJGV2ZW50TmFtZSk7CiAKICAgICAgICAgcHJpbnQgRiAiI2lmIEVO
QUJMRSgkY29uZGl0aW9uYWwpXG4iIGlmICRjb25kaXRpb25hbDsKICAgICAgICAgcHJpbnQgRiAi
ICAgIGlmICh0eXBlID09IFwiJGV2ZW50TmFtZVwiKVxuIjsKQEAgLTE0OCwxMjEgKzEwOCwzIEBA
IHN1YiBwcmludEZhY3RvcnlGaWxlKCkKIAogICAgIGNsb3NlIEY7CiB9Ci0KLXN1YiBwcmludE1h
Y3JvRmlsZSgpCi17Ci0gICAgbXkgJHBhcnNlZFBhcmFtZXRlcnNSZWYgPSBzaGlmdDsKLSAgICBt
eSAkcGFyc2VkSXRlbXNSZWYgPSBzaGlmdDsKLQotICAgIG15ICRGOwotICAgIG15ICVwYXJzZWRF
dmVudHMgPSAleyAkcGFyc2VkSXRlbXNSZWYgfTsKLSAgICBteSAlcGFyc2VkUGFyYW1ldGVycyA9
ICV7ICRwYXJzZWRQYXJhbWV0ZXJzUmVmIH07Ci0KLSAgICBteSAkbmFtZXNwYWNlID0gJHBhcnNl
ZFBhcmFtZXRlcnN7Im5hbWVzcGFjZSJ9OwotCi0gICAgbXkgJG91dHB1dEZpbGUgPSAiJG91dHB1
dERpci8ke25hbWVzcGFjZX1JbnRlcmZhY2VzLmgiOwotCi0gICAgb3BlbiBGLCAiPiRvdXRwdXRG
aWxlIiBvciBkaWUgIkZhaWxlZCB0byBvcGVuIGZpbGU6ICQhIjsKLQotICAgIHByaW50IEYgJElu
Q29tcGlsZXItPmxpY2Vuc2UoKTsKLQotICAgIHByaW50IEYgIiNpZm5kZWYgJHtuYW1lc3BhY2V9
SW50ZXJmYWNlc19oXG4iOwotICAgIHByaW50IEYgIiNkZWZpbmUgJHtuYW1lc3BhY2V9SW50ZXJm
YWNlc19oXG4iOwotICAgIHByaW50IEYgIlxuIjsKLQotICAgIG15ICV1bmNvbmRpdGlvbmFsSW50
ZXJmYWNlcyA9ICgpOwotICAgIG15ICVpbnRlcmZhY2VzQnlDb25kaXRpb25hbCA9ICgpOwotCi0g
ICAgZm9yIG15ICRldmVudE5hbWUgKHNvcnQga2V5cyAlcGFyc2VkRXZlbnRzKSB7Ci0gICAgICAg
IG15ICRjb25kaXRpb25hbCA9ICRwYXJzZWRFdmVudHN7JGV2ZW50TmFtZX17ImNvbmRpdGlvbmFs
In07Ci0gICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gaW50ZXJmYWNlRm9yRXZlbnQoJGV2ZW50
TmFtZSwgJHBhcnNlZEl0ZW1zUmVmKTsKLQotICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7Ci0g
ICAgICAgICAgICBpZiAoIWRlZmluZWQoJGludGVyZmFjZXNCeUNvbmRpdGlvbmFseyRjb25kaXRp
b25hbH0pKSB7Ci0gICAgICAgICAgICAgICAgJGludGVyZmFjZXNCeUNvbmRpdGlvbmFseyRjb25k
aXRpb25hbH0gPSAoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICRpbnRlcmZhY2VzQnlD
b25kaXRpb25hbHskY29uZGl0aW9uYWx9eyRpbnRlcmZhY2VOYW1lfSA9IDE7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAkdW5jb25kaXRpb25hbEludGVyZmFjZXN7JGludGVyZmFjZU5h
bWV9ID0gMQotICAgICAgICB9Ci0gICAgfQotCi0gICAgbXkgJG1hY3JvU3R5bGVkTmFtZXNwYWNl
ID0gdG9NYWNyb1N0eWxlKCRuYW1lc3BhY2UpOwotCi0gICAgZm9yIG15ICRjb25kaXRpb25hbCAo
c29ydCBrZXlzICVpbnRlcmZhY2VzQnlDb25kaXRpb25hbCkgewotICAgICAgICBwcmludCBGICIj
aWYgRU5BQkxFKCRjb25kaXRpb25hbClcbiI7Ci0gICAgICAgIHByaW50IEYgIiNkZWZpbmUgRE9N
XyR7bWFjcm9TdHlsZWROYW1lc3BhY2V9X0lOVEVSRkFDRVNfRk9SX0VBQ0hfJGNvbmRpdGlvbmFs
KG1hY3JvKSBcXFxuIjsKLQotICAgICAgICBmb3IgbXkgJGludGVyZmFjZSAoc29ydCBrZXlzICV7
ICRpbnRlcmZhY2VzQnlDb25kaXRpb25hbHskY29uZGl0aW9uYWx9IH0pIHsKLSAgICAgICAgICAg
IG5leHQgaWYgZGVmaW5lZCgkdW5jb25kaXRpb25hbEludGVyZmFjZXN7JGludGVyZmFjZX0pOwot
ICAgICAgICAgICAgcHJpbnQgRiAiICAgIG1hY3JvKCRpbnRlcmZhY2UpIFxcXG4iOwotICAgICAg
ICB9Ci0KLSAgICAgICAgcHJpbnQgRiAiLy8gRW5kIG9mIERPTV8ke21hY3JvU3R5bGVkTmFtZXNw
YWNlfV9JTlRFUkZBQ0VTX0ZPUl9FQUNIXyRjb25kaXRpb25hbFxuIjsKLSAgICAgICAgcHJpbnQg
RiAiI2Vsc2VcbiI7Ci0gICAgICAgIHByaW50IEYgIiNkZWZpbmUgRE9NXyR7bWFjcm9TdHlsZWRO
YW1lc3BhY2V9X0lOVEVSRkFDRVNfRk9SX0VBQ0hfJGNvbmRpdGlvbmFsKG1hY3JvKVxuIjsKLSAg
ICAgICAgcHJpbnQgRiAiI2VuZGlmXG4iOwotICAgICAgICBwcmludCBGICJcbiI7Ci0gICAgfQot
Ci0gICAgcHJpbnQgRiAiI2RlZmluZSBET01fJHttYWNyb1N0eWxlZE5hbWVzcGFjZX1fSU5URVJG
QUNFU19GT1JfRUFDSChtYWNybykgXFxcbiI7Ci0gICAgcHJpbnQgRiAiICAgIFxcXG4iOwotICAg
IGZvciBteSAkaW50ZXJmYWNlIChzb3J0IGtleXMgJXVuY29uZGl0aW9uYWxJbnRlcmZhY2VzKSB7
Ci0gICAgICAgICAgICBwcmludCBGICIgICAgbWFjcm8oJGludGVyZmFjZSkgXFxcbiI7Ci0gICAg
fQotICAgIHByaW50IEYgIiAgICBcXFxuIjsKLSAgICBmb3IgbXkgJGNvbmRpdGlvbmFsIChzb3J0
IGtleXMgJWludGVyZmFjZXNCeUNvbmRpdGlvbmFsKSB7Ci0gICAgICAgIHByaW50IEYgIiAgICBE
T01fJHttYWNyb1N0eWxlZE5hbWVzcGFjZX1fSU5URVJGQUNFU19GT1JfRUFDSF8kY29uZGl0aW9u
YWwobWFjcm8pIFxcXG4iOwotICAgIH0KLQotICAgIHByaW50IEYgIlxuIjsKLSAgICBwcmludCBG
ICIjZW5kaWYgLy8gJHtuYW1lc3BhY2V9SW50ZXJmYWNlc19oXG4iOwotCi0gICAgY2xvc2UgRjsK
LX0KLQotc3ViIHByaW50SGVhZGVyc0ZpbGUoKQotewotICAgIG15ICRwYXJzZWRQYXJhbWV0ZXJz
UmVmID0gc2hpZnQ7Ci0gICAgbXkgJHBhcnNlZEl0ZW1zUmVmID0gc2hpZnQ7Ci0KLSAgICBteSAk
RjsKLSAgICBteSAlcGFyc2VkRXZlbnRzID0gJXsgJHBhcnNlZEl0ZW1zUmVmIH07Ci0gICAgbXkg
JXBhcnNlZFBhcmFtZXRlcnMgPSAleyAkcGFyc2VkUGFyYW1ldGVyc1JlZiB9OwotCi0gICAgbXkg
JG5hbWVzcGFjZSA9ICRwYXJzZWRQYXJhbWV0ZXJzeyJuYW1lc3BhY2UifTsKLQotICAgIG15ICRv
dXRwdXRGaWxlID0gIiRvdXRwdXREaXIvJHtuYW1lc3BhY2V9SGVhZGVycy5oIjsKLQotICAgIG9w
ZW4gRiwgIj4kb3V0cHV0RmlsZSIgb3IgZGllICJGYWlsZWQgdG8gb3BlbiBmaWxlOiAkISI7Ci0K
LSAgICBwcmludCBGICRJbkNvbXBpbGVyLT5saWNlbnNlKCk7Ci0KLSAgICBwcmludCBGICIjaWZu
ZGVmICR7bmFtZXNwYWNlfUhlYWRlcnNfaFxuIjsKLSAgICBwcmludCBGICIjZGVmaW5lICR7bmFt
ZXNwYWNlfUhlYWRlcnNfaFxuIjsKLSAgICBwcmludCBGICJcbiI7Ci0KLSAgICBteSAlaW5jbHVk
ZWRJbnRlcmZhY2VzID0gKCk7Ci0KLSAgICBmb3IgbXkgJGV2ZW50TmFtZSAoc29ydCBrZXlzICVw
YXJzZWRFdmVudHMpIHsKLSAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJHBhcnNlZEV2ZW50c3sk
ZXZlbnROYW1lfXsiY29uZGl0aW9uYWwifTsKLSAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSBp
bnRlcmZhY2VGb3JFdmVudCgkZXZlbnROYW1lLCAkcGFyc2VkSXRlbXNSZWYpOwotCi0gICAgICAg
IG5leHQgaWYgZGVmaW5lZCgkaW5jbHVkZWRJbnRlcmZhY2VzeyRpbnRlcmZhY2VOYW1lfSk7Ci0g
ICAgICAgICRpbmNsdWRlZEludGVyZmFjZXN7JGludGVyZmFjZU5hbWV9ID0gMTsKLQotICAgICAg
ICBwcmludCBGICIjaWYgRU5BQkxFKCRjb25kaXRpb25hbClcbiIgaWYgJGNvbmRpdGlvbmFsOwot
ICAgICAgICBwcmludCBGICIjaW5jbHVkZSBcIiRpbnRlcmZhY2VOYW1lLmhcIlxuIjsKLSAgICAg
ICAgcHJpbnQgRiAiI2lmIFVTRShKU0MpXG4iOwotICAgICAgICBwcmludCBGICIjaW5jbHVkZSBc
IkpTJGludGVyZmFjZU5hbWUuaFwiXG4iOwotICAgICAgICBwcmludCBGICIjZWxpZiBVU0UoVjgp
XG4iOwotICAgICAgICBwcmludCBGICIjaW5jbHVkZSBcIlY4JGludGVyZmFjZU5hbWUuaFwiXG4i
OwotICAgICAgICBwcmludCBGICIjZW5kaWZcbiI7Ci0gICAgICAgIHByaW50IEYgIiNlbmRpZlxu
IiBpZiAkY29uZGl0aW9uYWw7Ci0gICAgfQotCi0gICAgcHJpbnQgRiAiXG4iOwotICAgIHByaW50
IEYgIiNlbmRpZiAvLyAke25hbWVzcGFjZX1IZWFkZXJzX2hcbiI7Ci0KLSAgICBjbG9zZSBGOwot
fQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL21ha2VfZXhjZXB0aW9uX2NvZGVfZGVzY3JpcHRp
b24ucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL21ha2VfZXhjZXB0aW9uX2Nv
ZGVfZGVzY3JpcHRpb24ucGwJKHJldmlzaW9uIDk4NzE1KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L21ha2VfZXhjZXB0aW9uX2NvZGVfZGVzY3JpcHRpb24ucGwJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDQ5ICszMiwzNCBAQAogCiB1c2Ugc3RyaWN0OwogCi11c2UgQ29uZmlnOwotdXNlIEdldG9wdDo6
TG9uZzsKLXVzZSBGaWxlOjpQYXRoOwotdXNlIEZpbGU6OlNwZWM7Ci11c2UgSU86OkZpbGU7CiB1
c2UgSW5GaWxlc0NvbXBpbGVyOwogCi1yZXF1aXJlIENvbmZpZzsKLQotbXkgJGlucHV0RmlsZTsK
LW15ICRvdXRwdXREaXIgPSAiLiI7Ci0KLUdldE9wdGlvbnMoCi0gICAgJ2lucHV0PXMnID0+IFwk
aW5wdXRGaWxlLAotICAgICdvdXRwdXREaXI9cycgPT4gXCRvdXRwdXREaXIsCi0pOwotCi1ta3Bh
dGgoJG91dHB1dERpcik7Ci0KLWRpZSAiWW91IG11c3Qgc3BlY2lmeSAtLWlucHV0IDxmaWxlPiIg
dW5sZXNzIGxlbmd0aCgkaW5wdXRGaWxlKTsKLQogbXkgJWRlZmF1bHRQYXJhbWV0ZXJzID0gKAog
ICAgICduYW1lc3BhY2UnID0+IDAKICk7CiAKLW15ICRJbkNvbXBpbGVyID0gSW5GaWxlc0NvbXBp
bGVyLT5uZXcoXCVkZWZhdWx0UGFyYW1ldGVycywgXCZkZWZhdWx0SXRlbUZhY3RvcnkpOwotCi0k
SW5Db21waWxlci0+Y29tcGlsZSgkaW5wdXRGaWxlLCBcJmdlbmVyYXRlQ29kZSk7Ci0KIHN1YiBk
ZWZhdWx0SXRlbUZhY3RvcnkKIHsKICAgICByZXR1cm4gKAorICAgICAgICAnaW50ZXJmYWNlTmFt
ZScgPT4gMCwKICAgICAgICAgJ2NvbmRpdGlvbmFsJyA9PiAwCiAgICAgKTsKIH0KIAorbXkgJElu
Q29tcGlsZXIgPSBJbkZpbGVzQ29tcGlsZXItPm5ldyhcJWRlZmF1bHRQYXJhbWV0ZXJzLCBcJmRl
ZmF1bHRJdGVtRmFjdG9yeSk7CisKK215ICRvdXRwdXREaXIgPSAkSW5Db21waWxlci0+aW5pdGlh
bGl6ZUZyb21Db21tYW5kTGluZSgpOworJEluQ29tcGlsZXItPmNvbXBpbGUoXCZnZW5lcmF0ZUNv
ZGUpOworCiBzdWIgZ2VuZXJhdGVDb2RlKCkKIHsKLSAgICBteSAkcGFyc2VkUGFyYW1ldGVycyA9
IHNoaWZ0OwotICAgIG15ICRwYXJzZWRJdGVtcyA9IHNoaWZ0OworICAgIG15ICRwYXJzZWRQYXJh
bWV0ZXJzUmVmID0gc2hpZnQ7CisgICAgbXkgJHBhcnNlZEl0ZW1zUmVmID0gc2hpZnQ7CiAKLSAg
ICBnZW5lcmF0ZUhlYWRlcigkcGFyc2VkUGFyYW1ldGVycywgJHBhcnNlZEl0ZW1zKTsKLSAgICBn
ZW5lcmF0ZUltcGxlbWVudGF0aW9uKCRwYXJzZWRQYXJhbWV0ZXJzLCAkcGFyc2VkSXRlbXMpOwor
ICAgIGdlbmVyYXRlSGVhZGVyKCRwYXJzZWRQYXJhbWV0ZXJzUmVmLCAkcGFyc2VkSXRlbXNSZWYp
OworICAgIGdlbmVyYXRlSW1wbGVtZW50YXRpb24oJHBhcnNlZFBhcmFtZXRlcnNSZWYsICRwYXJz
ZWRJdGVtc1JlZik7CisgICAgJEluQ29tcGlsZXItPmdlbmVyYXRlSW50ZXJmYWNlc0hlYWRlcigp
OworICAgICRJbkNvbXBpbGVyLT5nZW5lcmF0ZUhlYWRlcnNIZWFkZXIoKQogfQogCiBzdWIgZ2Vu
ZXJhdGVIZWFkZXIoKQo=
</data>
<flag name="review"
          id="111021"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="111091"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>