<?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>63433</bug_id>
          
          <creation_ts>2011-06-27 00:40:24 -0700</creation_ts>
          <short_desc>Move apache_http_server.py to webkitpy.layout_package.servers</short_desc>
          <delta_ts>2011-06-27 00:43:42 -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>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>427735</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 00:40:24 -0700</bug_when>
    <thetext>Move apache_http_server.py to webkitpy.layout_package.servers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427737</commentid>
    <comment_count>1</comment_count>
      <attachid>98676</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 00:40:56 -0700</bug_when>
    <thetext>Created attachment 98676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427738</commentid>
    <comment_count>2</comment_count>
      <attachid>98676</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-27 00:43:00 -0700</bug_when>
    <thetext>Comment on attachment 98676
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427739</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-27 00:43:42 -0700</bug_when>
    <thetext>Committed r89795: &lt;http://trac.webkit.org/changeset/89795&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98676</attachid>
            <date>2011-06-27 00:40:56 -0700</date>
            <delta_ts>2011-06-27 00:43:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63433-20110627004055.patch</filename>
            <type>text/plain</type>
            <size>23818</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg5Nzk0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTEtMDYtMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGFwYWNo
ZV9odHRwX3NlcnZlci5weSB0byB3ZWJraXRweS5sYXlvdXRfcGFja2FnZS5zZXJ2ZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQzMworCisgICAg
ICAgIFRoZSBhcGFjaGVfaHR0cF9zZXJ2ZXIucHkgaXMgYSBzZXJ2ZXIsIG5vdCBhIHBvcnQuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2FwYWNoZV9odHRw
X3NlcnZlci5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvc2VydmVyczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvc2VydmVycy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvc2VydmVycy9hcGFjaGVfaHR0cF9zZXJ2ZXIucHk6IENvcGllZCBmcm9t
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYXBhY2hlX2h0dHBfc2Vy
dmVyLnB5LgorCiAyMDExLTA2LTI3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2FwYWNoZV9odHRwX3NlcnZlci5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2FwYWNoZV9odHRw
X3NlcnZlci5weQkocmV2aXNpb24gODk3ODUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2FwYWNoZV9odHRwX3NlcnZlci5weQkod29ya2luZyBjb3B5KQpAQCAt
MSwyMTMgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
IiIiQSBjbGFzcyB0byBzdGFydC9zdG9wIHRoZSBhcGFjaGUgaHR0cCBzZXJ2ZXIgdXNlZCBieSBs
YXlvdXQgdGVzdHMuIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHJl
Ci1pbXBvcnQgc3lzCi0KLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IGh0
dHBfc2VydmVyX2Jhc2UKLQotX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweS5sYXlv
dXRfdGVzdHMucG9ydC5hcGFjaGVfaHR0cF9zZXJ2ZXIiKQotCi0KLWNsYXNzIExheW91dFRlc3RB
cGFjaGVIdHRwZChodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJCYXNlKToKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwb3J0X29iaiwgb3V0cHV0X2Rpcik6Ci0gICAgICAgICIiIkFyZ3M6Ci0g
ICAgICAgICAgcG9ydF9vYmo6IGhhbmRsZSB0byB0aGUgcGxhdGZvcm0tc3BlY2lmaWMgcm91dGlu
ZXMKLSAgICAgICAgICBvdXRwdXRfZGlyOiB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgbGF5b3V0
IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQotICAgICAgICAiIiIKLSAgICAgICAgaHR0cF9zZXJ2ZXJf
YmFzZS5IdHRwU2VydmVyQmFzZS5fX2luaXRfXyhzZWxmLCBwb3J0X29iaikKLSAgICAgICAgc2Vs
Zi5fbmFtZSA9ICdhcGFjaGUnCi0gICAgICAgIHNlbGYuX21hcHBpbmdzID0gW3sncG9ydCc6IDgw
MDB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICB7J3BvcnQnOiA4MDgwfSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgeydwb3J0JzogODA4MX0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHsncG9ydCc6IDg0NDMsICdzc2xjZXJ0JzogVHJ1ZX1dCi0gICAgICAgIHNlbGYuX291dHB1
dF9kaXIgPSBvdXRwdXRfZGlyCi0gICAgICAgIHBvcnRfb2JqLm1heWJlX21ha2VfZGlyZWN0b3J5
KG91dHB1dF9kaXIpCi0KLSAgICAgICAgc2VsZi5fcGlkX2ZpbGUgPSBzZWxmLl9maWxlc3lzdGVt
LmpvaW4oc2VsZi5fcnVudGltZV9wYXRoLCAnJXMucGlkJyAlIHNlbGYuX25hbWUpCi0KLSAgICAg
ICAgdGVzdF9kaXIgPSBzZWxmLl9wb3J0X29iai5sYXlvdXRfdGVzdHNfZGlyKCkKLSAgICAgICAg
anNfdGVzdF9yZXNvdXJjZXNfZGlyID0gc2VsZi5fY3lnd2luX3NhZmVfam9pbih0ZXN0X2Rpciwg
ImZhc3QiLCAianMiLAotICAgICAgICAgICAgInJlc291cmNlcyIpCi0gICAgICAgIG1lZGlhX3Jl
c291cmNlc19kaXIgPSBzZWxmLl9jeWd3aW5fc2FmZV9qb2luKHRlc3RfZGlyLCAibWVkaWEiKQot
ICAgICAgICBtaW1lX3R5cGVzX3BhdGggPSBzZWxmLl9jeWd3aW5fc2FmZV9qb2luKHRlc3RfZGly
LCAiaHR0cCIsICJjb25mIiwKLSAgICAgICAgICAgICJtaW1lLnR5cGVzIikKLSAgICAgICAgY2Vy
dF9maWxlID0gc2VsZi5fY3lnd2luX3NhZmVfam9pbih0ZXN0X2RpciwgImh0dHAiLCAiY29uZiIs
Ci0gICAgICAgICAgICAid2Via2l0LWh0dHBkLnBlbSIpCi0gICAgICAgIGFjY2Vzc19sb2cgPSBz
ZWxmLl9jeWd3aW5fc2FmZV9qb2luKG91dHB1dF9kaXIsICJhY2Nlc3NfbG9nLnR4dCIpCi0gICAg
ICAgIGVycm9yX2xvZyA9IHNlbGYuX2N5Z3dpbl9zYWZlX2pvaW4ob3V0cHV0X2RpciwgImVycm9y
X2xvZy50eHQiKQotICAgICAgICBkb2N1bWVudF9yb290ID0gc2VsZi5fY3lnd2luX3NhZmVfam9p
bih0ZXN0X2RpciwgImh0dHAiLCAidGVzdHMiKQotCi0gICAgICAgICMgRklYTUU6IFdlIHNob3Vs
ZG4ndCBiZSBjYWxsaW5nIGEgcHJvdGVjdGVkIG1ldGhvZCBvZiBfcG9ydF9vYmohCi0gICAgICAg
IGV4ZWN1dGFibGUgPSBzZWxmLl9wb3J0X29iai5fcGF0aF90b19hcGFjaGUoKQotICAgICAgICBp
ZiBzZWxmLl9pc19jeWd3aW4oKToKLSAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBzZWxmLl9nZXRf
Y3lnd2luX3BhdGgoZXhlY3V0YWJsZSkKLQotICAgICAgICBzdGFydF9jbWQgPSBbZXhlY3V0YWJs
ZSwKLSAgICAgICAgICAgICctZicsICJcIiVzXCIiICUgc2VsZi5fZ2V0X2FwYWNoZV9jb25maWdf
ZmlsZV9wYXRoKHRlc3RfZGlyLCBvdXRwdXRfZGlyKSwKLSAgICAgICAgICAgICctQycsICJcJ0Rv
Y3VtZW50Um9vdCBcIiVzXCJcJyIgJSBkb2N1bWVudF9yb290LAotICAgICAgICAgICAgJy1jJywg
IlwnQWxpYXMgL2pzLXRlc3QtcmVzb3VyY2VzIFwiJXNcIiciICUganNfdGVzdF9yZXNvdXJjZXNf
ZGlyLAotICAgICAgICAgICAgJy1jJywgIlwnQWxpYXMgL21lZGlhLXJlc291cmNlcyBcIiVzXCIn
IiAlIG1lZGlhX3Jlc291cmNlc19kaXIsCi0gICAgICAgICAgICAnLUMnLCAiXCdMaXN0ZW4gJXNc
JyIgJSAiMTI3LjAuMC4xOjgwMDAiLAotICAgICAgICAgICAgJy1DJywgIlwnTGlzdGVuICVzXCci
ICUgIjEyNy4wLjAuMTo4MDgxIiwKLSAgICAgICAgICAgICctYycsICJcJ1R5cGVzQ29uZmlnIFwi
JXNcIlwnIiAlIG1pbWVfdHlwZXNfcGF0aCwKLSAgICAgICAgICAgICctYycsICJcJ0N1c3RvbUxv
ZyBcIiVzXCIgY29tbW9uXCciICUgYWNjZXNzX2xvZywKLSAgICAgICAgICAgICctYycsICJcJ0Vy
cm9yTG9nIFwiJXNcIlwnIiAlIGVycm9yX2xvZywKLSAgICAgICAgICAgICctQycsICJcJ1VzZXIg
XCIlc1wiXCciICUgb3MuZW52aXJvbi5nZXQoIlVTRVJOQU1FIiwKLSAgICAgICAgICAgICAgICBv
cy5lbnZpcm9uLmdldCgiVVNFUiIsICIiKSksCi0gICAgICAgICAgICAnLWMnLCAiXCdQaWRGaWxl
ICVzJyIgJSBzZWxmLl9waWRfZmlsZSwKLSAgICAgICAgICAgICctaycsICJzdGFydCJdCi0KLSAg
ICAgICAgc3RvcF9jbWQgPSBbZXhlY3V0YWJsZSwKLSAgICAgICAgICAgICctZicsICJcIiVzXCIi
ICUgc2VsZi5fZ2V0X2FwYWNoZV9jb25maWdfZmlsZV9wYXRoKHRlc3RfZGlyLCBvdXRwdXRfZGly
KSwKLSAgICAgICAgICAgICctYycsICJcJ1BpZEZpbGUgJXMnIiAlIHNlbGYuX3BpZF9maWxlLAot
ICAgICAgICAgICAgJy1rJywgInN0b3AiXQotCi0gICAgICAgIGlmIHNlbGYuX2lzX2N5Z3dpbigp
OgotICAgICAgICAgICAgY3lnYmluID0gc2VsZi5fcG9ydF9vYmouX3BhdGhfZnJvbV9iYXNlKCd0
aGlyZF9wYXJ0eScsICdjeWd3aW4nLAotICAgICAgICAgICAgICAgICdiaW4nKQotICAgICAgICAg
ICAgIyBOb3QgZW50aXJlbHkgc3VyZSB3aHksIGJ1dCBmcm9tIGN5Z3dpbiB3ZSBuZWVkIHRvIHJ1
biB0aGUKLSAgICAgICAgICAgICMgaHR0cGQgY29tbWFuZCB0aHJvdWdoIGJhc2guCi0gICAgICAg
ICAgICBzZWxmLl9zdGFydF9jbWQgPSBbCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKGN5
Z2JpbiwgJ2Jhc2guZXhlJyksCi0gICAgICAgICAgICAgICAgJy1jJywKLSAgICAgICAgICAgICAg
ICAnUEFUSD0lcyAlcycgJSAoc2VsZi5fZ2V0X2N5Z3dpbl9wYXRoKGN5Z2JpbiksICIgIi5qb2lu
KHN0YXJ0X2NtZCkpLAotICAgICAgICAgICAgICBdCi0gICAgICAgICAgICBzZWxmLl9zdG9wX2Nt
ZCA9IFsKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oY3lnYmluLCAnYmFzaC5leGUnKSwK
LSAgICAgICAgICAgICAgICAnLWMnLAotICAgICAgICAgICAgICAgICdQQVRIPSVzICVzJyAlIChz
ZWxmLl9nZXRfY3lnd2luX3BhdGgoY3lnYmluKSwgIiAiLmpvaW4oc3RvcF9jbWQpKSwKLSAgICAg
ICAgICAgICAgXQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBUT0RPKG9qYW4pOiBXaGVu
IHdlIGdldCBjeWd3aW4gdXNpbmcgQXBhY2hlIDIsIHVzZSBzZXQgdGhlCi0gICAgICAgICAgICAj
IGNlcnQgZmlsZSBmb3IgY3lnd2luIGFzIHdlbGwuCi0gICAgICAgICAgICBzdGFydF9jbWQuZXh0
ZW5kKFsnLWMnLCAiXCdTU0xDZXJ0aWZpY2F0ZUZpbGUgJXNcJyIgJSBjZXJ0X2ZpbGVdKQotICAg
ICAgICAgICAgIyBKb2luIHRoZSBzdHJpbmcgaGVyZSBzbyB0aGF0IEN5Z3dpbi9XaW5kb3dzIGFu
ZCBNYWMvTGludXgKLSAgICAgICAgICAgICMgY2FuIHVzZSB0aGUgc2FtZSBjb2RlLiBPdGhlcndp
c2UsIHdlIGNvdWxkIHJlbW92ZSB0aGUgc2luZ2xlCi0gICAgICAgICAgICAjIHF1b3RlcyBhYm92
ZSBhbmQga2VlcCBjbWQgYXMgYSBzZXF1ZW5jZS4KLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0X2Nt
ZCA9ICIgIi5qb2luKHN0YXJ0X2NtZCkKLSAgICAgICAgICAgIHNlbGYuX3N0b3BfY21kID0gIiAi
LmpvaW4oc3RvcF9jbWQpCi0KLSAgICBkZWYgX2lzX2N5Z3dpbihzZWxmKToKLSAgICAgICAgcmV0
dXJuIHN5cy5wbGF0Zm9ybSBpbiAoIndpbjMyIiwgImN5Z3dpbiIpCi0KLSAgICBkZWYgX2N5Z3dp
bl9zYWZlX2pvaW4oc2VsZiwgKnBhcnRzKToKLSAgICAgICAgIiIiUmV0dXJucyBhIHBsYXRmb3Jt
IGFwcHJvcHJpYXRlIHBhdGguIiIiCi0gICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oKnBhcnRz
KQotICAgICAgICBpZiBzZWxmLl9pc19jeWd3aW4oKToKLSAgICAgICAgICAgIHJldHVybiBzZWxm
Ll9nZXRfY3lnd2luX3BhdGgocGF0aCkKLSAgICAgICAgcmV0dXJuIHBhdGgKLQotICAgIGRlZiBf
Z2V0X2N5Z3dpbl9wYXRoKHNlbGYsIHBhdGgpOgotICAgICAgICAiIiJDb252ZXJ0IGEgV2luZG93
cyBwYXRoIHRvIGEgY3lnd2luIHBhdGguCi0KLSAgICAgICAgVGhlIGN5Z3BhdGggdXRpbGl0eSBp
bnNpc3RzIG9uIGNvbnZlcnRpbmcgcGF0aHMgdGhhdCBpdCB0aGlua3MgYXJlCi0gICAgICAgIEN5
Z3dpbiByb290IHBhdGhzIHRvIHdoYXQgaXQgdGhpbmtzIHRoZSBjb3JyZWN0IHJvb3RzIGFyZS4g
IFNvIHBhdGhzCi0gICAgICAgIHN1Y2ggYXMgIkM6XGJcc2xhdmVcd2Via2l0LXJlbGVhc2VcYnVp
bGRcdGhpcmRfcGFydHlcY3lnd2luXGJpbiIKLSAgICAgICAgYXJlIGNvbnZlcnRlZCB0byBwbGFp
biAiL3Vzci9iaW4iLiAgVG8gYXZvaWQgdGhpcywgd2UKLSAgICAgICAgZG8gdGhlIGNvbnZlcnNp
b24gbWFudWFsbHkuCi0KLSAgICAgICAgVGhlIHBhdGggaXMgZXhwZWN0ZWQgdG8gYmUgYW4gYWJz
b2x1dGUgcGF0aCwgb24gYW55IGRyaXZlLgotICAgICAgICAiIiIKLSAgICAgICAgZHJpdmVfcmVn
ZXhwID0gcmUuY29tcGlsZShyJyhbYS16XSk6Wy9cXF0nLCByZS5JR05PUkVDQVNFKQotCi0gICAg
ICAgIGRlZiBsb3dlcl9kcml2ZShtYXRjaG9iaik6Ci0gICAgICAgICAgICByZXR1cm4gJy9jeWdk
cml2ZS8lcy8nICUgbWF0Y2hvYmouZ3JvdXAoMSkubG93ZXIoKQotICAgICAgICBwYXRoID0gZHJp
dmVfcmVnZXhwLnN1Yihsb3dlcl9kcml2ZSwgcGF0aCkKLSAgICAgICAgcmV0dXJuIHBhdGgucmVw
bGFjZSgnXFwnLCAnLycpCi0KLSAgICBkZWYgX2dldF9hcGFjaGVfY29uZmlnX2ZpbGVfcGF0aChz
ZWxmLCB0ZXN0X2Rpciwgb3V0cHV0X2Rpcik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIHBhdGgg
dG8gdGhlIGFwYWNoZSBjb25maWcgZmlsZSB0byB1c2UuCi0gICAgICAgIEFyZ3M6Ci0gICAgICAg
ICAgdGVzdF9kaXI6IGFic29sdXRlIHBhdGggdG8gdGhlIExheW91dFRlc3RzIGRpcmVjdG9yeS4K
LSAgICAgICAgICBvdXRwdXRfZGlyOiBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBsYXlvdXQgdGVzdCBy
ZXN1bHRzIGRpcmVjdG9yeS4KLSAgICAgICAgIiIiCi0gICAgICAgIGh0dHBkX2NvbmZpZyA9IHNl
bGYuX3BvcnRfb2JqLl9wYXRoX3RvX2FwYWNoZV9jb25maWdfZmlsZSgpCi0gICAgICAgIGh0dHBk
X2NvbmZpZ19jb3B5ID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIsICJodHRwZC5jb25mIikKLSAg
ICAgICAgaHR0cGRfY29uZiA9IHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUoaHR0cGRf
Y29uZmlnKQotICAgICAgICBpZiBzZWxmLl9pc19jeWd3aW4oKToKLSAgICAgICAgICAgICMgVGhp
cyBpcyBhIGdyb3NzIGhhY2ssIGJ1dCBpdCBsZXRzIHVzIHVzZSB0aGUgdXBzdHJlYW0gLmNvbmYg
ZmlsZQotICAgICAgICAgICAgIyBhbmQgb3VyIGNoZWNrZWQgaW4gY3lnd2luLiBUaGlzIHRlbGxz
IHRoZSBzZXJ2ZXIgdGhlIHJvb3QKLSAgICAgICAgICAgICMgZGlyZWN0b3J5IHRvIGxvb2sgaW4g
Zm9yIC5zbyBtb2R1bGVzLiBJdCB3aWxsIHVzZSB0aGlzIHBhdGgKLSAgICAgICAgICAgICMgcGx1
cyB0aGUgcmVsYXRpdmUgcGF0aHMgdG8gdGhlIC5zbyBmaWxlcyBsaXN0ZWQgaW4gdGhlIC5jb25m
Ci0gICAgICAgICAgICAjIGZpbGUuIFdlIGhhdmUgYXBhY2hlL2N5Z3dpbiBjaGVja2VkIGludG8g
b3VyIHRyZWUgc28KLSAgICAgICAgICAgICMgcGVvcGxlIGRvbid0IGhhdmUgdG8gaW5zdGFsbCBp
dCBpbnRvIHRoZWlyIGN5Z3dpbi4KLSAgICAgICAgICAgIGN5Z3VzciA9IHNlbGYuX3BvcnRfb2Jq
Ll9wYXRoX2Zyb21fYmFzZSgndGhpcmRfcGFydHknLCAnY3lnd2luJywKLSAgICAgICAgICAgICAg
ICAndXNyJykKLSAgICAgICAgICAgIGh0dHBkX2NvbmYgPSBodHRwZF9jb25mLnJlcGxhY2UoJ1Nl
cnZlclJvb3QgIi91c3IiJywKLSAgICAgICAgICAgICAgICAnU2VydmVyUm9vdCAiJXMiJyAlIHNl
bGYuX2dldF9jeWd3aW5fcGF0aChjeWd1c3IpKQotCi0gICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0u
d3JpdGVfdGV4dF9maWxlKGh0dHBkX2NvbmZpZ19jb3B5LCBodHRwZF9jb25mKQotCi0gICAgICAg
IGlmIHNlbGYuX2lzX2N5Z3dpbigpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2dldF9jeWd3
aW5fcGF0aChodHRwZF9jb25maWdfY29weSkKLSAgICAgICAgcmV0dXJuIGh0dHBkX2NvbmZpZ19j
b3B5Ci0KLSAgICBkZWYgX3NwYXduX3Byb2Nlc3Moc2VsZik6Ci0gICAgICAgIF9sb2cuZGVidWco
J1N0YXJ0aW5nICVzIHNlcnZlciwgY21kPSIlcyInICUgKHNlbGYuX25hbWUsIHN0cihzZWxmLl9z
dGFydF9jbWQpKSkKLSAgICAgICAgcmV0dmFsLCBlcnIgPSBzZWxmLl9ydW4oc2VsZi5fc3RhcnRf
Y21kKQotICAgICAgICBpZiByZXR2YWwgb3IgbGVuKGVycik6Ci0gICAgICAgICAgICByYWlzZSBo
dHRwX3NlcnZlcl9iYXNlLlNlcnZlckVycm9yKCdGYWlsZWQgdG8gc3RhcnQgJXM6ICVzJyAlIChz
ZWxmLl9uYW1lLCBlcnIpKQotCi0gICAgICAgICMgRm9yIHNvbWUgcmVhc29uIGFwYWNoZSBpc24n
dCBndWFyYW50ZWVkIHRvIGhhdmUgY3JlYXRlZCB0aGUgcGlkIGZpbGUgYmVmb3JlCi0gICAgICAg
ICMgdGhlIHByb2Nlc3MgZXhpdHMsIHNvIHdlIHdhaXQgYSBsaXR0bGUgd2hpbGUgbG9uZ2VyLgot
ICAgICAgICBpZiBub3Qgc2VsZi5fd2FpdF9mb3JfYWN0aW9uKGxhbWJkYTogc2VsZi5fZmlsZXN5
c3RlbS5leGlzdHMoc2VsZi5fcGlkX2ZpbGUpKToKLSAgICAgICAgICAgIHJhaXNlIGh0dHBfc2Vy
dmVyX2Jhc2UuU2VydmVyRXJyb3IoJ0ZhaWxlZCB0byBzdGFydCAlczogbm8gcGlkIGZpbGUgZm91
bmQnICUgc2VsZi5fbmFtZSkKLQotICAgICAgICByZXR1cm4gaW50KHNlbGYuX2ZpbGVzeXN0ZW0u
cmVhZF90ZXh0X2ZpbGUoc2VsZi5fcGlkX2ZpbGUpKQotCi0gICAgZGVmIF9zdG9wX3J1bm5pbmdf
c2VydmVyKHNlbGYpOgotICAgICAgICByZXR2YWwsIGVyciA9IHNlbGYuX3J1bihzZWxmLl9zdG9w
X2NtZCkKLSAgICAgICAgaWYgcmV0dmFsIG9yIGxlbihlcnIpOgotICAgICAgICAgICAgcmFpc2Ug
aHR0cF9zZXJ2ZXJfYmFzZS5TZXJ2ZXJFcnJvcignRmFpbGVkIHRvIHN0b3AgJXM6ICVzJyAlIChz
ZWxmLl9uYW1lLCBlcnIpKQotCi0gICAgICAgICMgRm9yIHNvbWUgcmVhc29uIGFwYWNoZSBpc24n
dCBndWFyYW50ZWVkIHRvIGhhdmUgYWN0dWFsbHkgc3RvcHBlZCBhZnRlcgotICAgICAgICAjIHRo
ZSBzdG9wIGNvbW1hbmQgcmV0dXJucywgc28gd2Ugd2FpdCBhIGxpdHRsZSB3aGlsZSBsb25nZXIg
Zm9yIHRoZQotICAgICAgICAjIHBpZCBmaWxlIHRvIGJlIHJlbW92ZWQuCi0gICAgICAgIGlmIG5v
dCBzZWxmLl93YWl0X2Zvcl9hY3Rpb24obGFtYmRhOiBub3Qgc2VsZi5fZmlsZXN5c3RlbS5leGlz
dHMoc2VsZi5fcGlkX2ZpbGUpKToKLSAgICAgICAgICAgIHJhaXNlIGh0dHBfc2VydmVyX2Jhc2Uu
U2VydmVyRXJyb3IoJ0ZhaWxlZCB0byBzdG9wICVzOiBwaWQgZmlsZSBzdGlsbCBleGlzdHMnICUg
c2VsZi5fbmFtZSkKLQotICAgIGRlZiBfcnVuKHNlbGYsIGNtZCk6Ci0gICAgICAgICMgVXNlIHNo
ZWxsPVRydWUgYmVjYXVzZSB3ZSBqb2luIHRoZSBhcmd1bWVudHMgaW50byBhIHN0cmluZyBmb3IK
LSAgICAgICAgIyB0aGUgc2FrZSBvZiBXaW5kb3cvQ3lnd2luIGFuZCBpdCBuZWVkcyBxdW90aW5n
IHRoYXQgYnJlYWtzCi0gICAgICAgICMgc2hlbGw9RmFsc2UuCi0gICAgICAgICMgRklYTUU6IFdl
IHNob3VsZCBub3QgbmVlZCB0byBiZSBqb2luaW5nIHNoZWxsIGFyZ3VtZW50cyBpbnRvIHN0cmlu
Z3MuCi0gICAgICAgICMgc2hlbGw9VHJ1ZSBpcyBhIHRyYWlsIG9mIHRlYXJzLgotICAgICAgICAj
IE5vdGU6IE5vdCB0aHJlYWQgc2FmZTogaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTIzMjAK
LSAgICAgICAgcHJvY2VzcyA9IHNlbGYuX2V4ZWN1dGl2ZS5wb3BlbihjbWQsIHNoZWxsPVRydWUs
IHN0ZGVycj1zZWxmLl9leGVjdXRpdmUuUElQRSkKLSAgICAgICAgcHJvY2Vzcy53YWl0KCkKLSAg
ICAgICAgcmV0dmFsID0gcHJvY2Vzcy5yZXR1cm5jb2RlCi0gICAgICAgIGVyciA9IHByb2Nlc3Mu
c3RkZXJyLnJlYWQoKQotICAgICAgICByZXR1cm4gKHJldHZhbCwgZXJyKQpJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQkocmV2aXNp
b24gODk3ODUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jh
c2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTU1LDEyICs1NSwxMiBAQCBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVj
dXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS51c2VyIGltcG9ydCBVc2VyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cyBpbXBv
cnQgcmVhZF9jaGVja3N1bV9mcm9tX3BuZwotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9y
dCBpbXBvcnQgYXBhY2hlX2h0dHBfc2VydmVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5w
b3J0IGltcG9ydCBjb25maWcgYXMgcG9ydF9jb25maWcKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLnBvcnQgaW1wb3J0IGh0dHBfbG9jawogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9y
dCBpbXBvcnQgaHR0cF9zZXJ2ZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1w
b3J0IHRlc3RfZmlsZXMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IHdl
YnNvY2tldF9zZXJ2ZXIKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0
IGFwYWNoZV9odHRwX3NlcnZlcgogCiBfbG9nID0gbG9ndXRpbHMuZ2V0X2xvZ2dlcihfX2ZpbGVf
XykKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9f
X2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL19faW5pdF9fLnB5CShyZXZpc2lvbiAwKQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9fX2luaXRfXy5weQkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSBAQAorIyBSZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlIGZpbGVzCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlci5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlci5w
eQkocmV2aXNpb24gODk3ODUpCShmcm9tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvYXBhY2hlX2h0dHBfc2VydmVyLnB5Ojg5Nzg1KQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9hcGFjaGVfaHR0cF9zZXJ2ZXIucHkJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwyMTMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyIiIkEgY2xhc3MgdG8gc3RhcnQvc3RvcCB0aGUgYXBhY2hlIGh0dHAgc2Vy
dmVyIHVzZWQgYnkgbGF5b3V0IHRlc3RzLiIiIgorCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQg
b3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cworCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5w
b3J0IGltcG9ydCBodHRwX3NlcnZlcl9iYXNlCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigi
d2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuYXBhY2hlX2h0dHBfc2VydmVyIikKKworCitjbGFz
cyBMYXlvdXRUZXN0QXBhY2hlSHR0cGQoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9vYmosIG91dHB1dF9kaXIpOgorICAgICAg
ICAiIiJBcmdzOgorICAgICAgICAgIHBvcnRfb2JqOiBoYW5kbGUgdG8gdGhlIHBsYXRmb3JtLXNw
ZWNpZmljIHJvdXRpbmVzCisgICAgICAgICAgb3V0cHV0X2RpcjogdGhlIGFic29sdXRlIHBhdGgg
dG8gdGhlIGxheW91dCB0ZXN0IHJlc3VsdCBkaXJlY3RvcnkKKyAgICAgICAgIiIiCisgICAgICAg
IGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2UuX19pbml0X18oc2VsZiwgcG9ydF9vYmop
CisgICAgICAgIHNlbGYuX25hbWUgPSAnYXBhY2hlJworICAgICAgICBzZWxmLl9tYXBwaW5ncyA9
IFt7J3BvcnQnOiA4MDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeydwb3J0JzogODA4
MH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsncG9ydCc6IDgwODF9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICB7J3BvcnQnOiA4NDQzLCAnc3NsY2VydCc6IFRydWV9XQorICAgICAg
ICBzZWxmLl9vdXRwdXRfZGlyID0gb3V0cHV0X2RpcgorICAgICAgICBwb3J0X29iai5tYXliZV9t
YWtlX2RpcmVjdG9yeShvdXRwdXRfZGlyKQorCisgICAgICAgIHNlbGYuX3BpZF9maWxlID0gc2Vs
Zi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3J1bnRpbWVfcGF0aCwgJyVzLnBpZCcgJSBzZWxmLl9u
YW1lKQorCisgICAgICAgIHRlc3RfZGlyID0gc2VsZi5fcG9ydF9vYmoubGF5b3V0X3Rlc3RzX2Rp
cigpCisgICAgICAgIGpzX3Rlc3RfcmVzb3VyY2VzX2RpciA9IHNlbGYuX2N5Z3dpbl9zYWZlX2pv
aW4odGVzdF9kaXIsICJmYXN0IiwgImpzIiwKKyAgICAgICAgICAgICJyZXNvdXJjZXMiKQorICAg
ICAgICBtZWRpYV9yZXNvdXJjZXNfZGlyID0gc2VsZi5fY3lnd2luX3NhZmVfam9pbih0ZXN0X2Rp
ciwgIm1lZGlhIikKKyAgICAgICAgbWltZV90eXBlc19wYXRoID0gc2VsZi5fY3lnd2luX3NhZmVf
am9pbih0ZXN0X2RpciwgImh0dHAiLCAiY29uZiIsCisgICAgICAgICAgICAibWltZS50eXBlcyIp
CisgICAgICAgIGNlcnRfZmlsZSA9IHNlbGYuX2N5Z3dpbl9zYWZlX2pvaW4odGVzdF9kaXIsICJo
dHRwIiwgImNvbmYiLAorICAgICAgICAgICAgIndlYmtpdC1odHRwZC5wZW0iKQorICAgICAgICBh
Y2Nlc3NfbG9nID0gc2VsZi5fY3lnd2luX3NhZmVfam9pbihvdXRwdXRfZGlyLCAiYWNjZXNzX2xv
Zy50eHQiKQorICAgICAgICBlcnJvcl9sb2cgPSBzZWxmLl9jeWd3aW5fc2FmZV9qb2luKG91dHB1
dF9kaXIsICJlcnJvcl9sb2cudHh0IikKKyAgICAgICAgZG9jdW1lbnRfcm9vdCA9IHNlbGYuX2N5
Z3dpbl9zYWZlX2pvaW4odGVzdF9kaXIsICJodHRwIiwgInRlc3RzIikKKworICAgICAgICAjIEZJ
WE1FOiBXZSBzaG91bGRuJ3QgYmUgY2FsbGluZyBhIHByb3RlY3RlZCBtZXRob2Qgb2YgX3BvcnRf
b2JqIQorICAgICAgICBleGVjdXRhYmxlID0gc2VsZi5fcG9ydF9vYmouX3BhdGhfdG9fYXBhY2hl
KCkKKyAgICAgICAgaWYgc2VsZi5faXNfY3lnd2luKCk6CisgICAgICAgICAgICBleGVjdXRhYmxl
ID0gc2VsZi5fZ2V0X2N5Z3dpbl9wYXRoKGV4ZWN1dGFibGUpCisKKyAgICAgICAgc3RhcnRfY21k
ID0gW2V4ZWN1dGFibGUsCisgICAgICAgICAgICAnLWYnLCAiXCIlc1wiIiAlIHNlbGYuX2dldF9h
cGFjaGVfY29uZmlnX2ZpbGVfcGF0aCh0ZXN0X2Rpciwgb3V0cHV0X2RpciksCisgICAgICAgICAg
ICAnLUMnLCAiXCdEb2N1bWVudFJvb3QgXCIlc1wiXCciICUgZG9jdW1lbnRfcm9vdCwKKyAgICAg
ICAgICAgICctYycsICJcJ0FsaWFzIC9qcy10ZXN0LXJlc291cmNlcyBcIiVzXCInIiAlIGpzX3Rl
c3RfcmVzb3VyY2VzX2RpciwKKyAgICAgICAgICAgICctYycsICJcJ0FsaWFzIC9tZWRpYS1yZXNv
dXJjZXMgXCIlc1wiJyIgJSBtZWRpYV9yZXNvdXJjZXNfZGlyLAorICAgICAgICAgICAgJy1DJywg
IlwnTGlzdGVuICVzXCciICUgIjEyNy4wLjAuMTo4MDAwIiwKKyAgICAgICAgICAgICctQycsICJc
J0xpc3RlbiAlc1wnIiAlICIxMjcuMC4wLjE6ODA4MSIsCisgICAgICAgICAgICAnLWMnLCAiXCdU
eXBlc0NvbmZpZyBcIiVzXCJcJyIgJSBtaW1lX3R5cGVzX3BhdGgsCisgICAgICAgICAgICAnLWMn
LCAiXCdDdXN0b21Mb2cgXCIlc1wiIGNvbW1vblwnIiAlIGFjY2Vzc19sb2csCisgICAgICAgICAg
ICAnLWMnLCAiXCdFcnJvckxvZyBcIiVzXCJcJyIgJSBlcnJvcl9sb2csCisgICAgICAgICAgICAn
LUMnLCAiXCdVc2VyIFwiJXNcIlwnIiAlIG9zLmVudmlyb24uZ2V0KCJVU0VSTkFNRSIsCisgICAg
ICAgICAgICAgICAgb3MuZW52aXJvbi5nZXQoIlVTRVIiLCAiIikpLAorICAgICAgICAgICAgJy1j
JywgIlwnUGlkRmlsZSAlcyciICUgc2VsZi5fcGlkX2ZpbGUsCisgICAgICAgICAgICAnLWsnLCAi
c3RhcnQiXQorCisgICAgICAgIHN0b3BfY21kID0gW2V4ZWN1dGFibGUsCisgICAgICAgICAgICAn
LWYnLCAiXCIlc1wiIiAlIHNlbGYuX2dldF9hcGFjaGVfY29uZmlnX2ZpbGVfcGF0aCh0ZXN0X2Rp
ciwgb3V0cHV0X2RpciksCisgICAgICAgICAgICAnLWMnLCAiXCdQaWRGaWxlICVzJyIgJSBzZWxm
Ll9waWRfZmlsZSwKKyAgICAgICAgICAgICctaycsICJzdG9wIl0KKworICAgICAgICBpZiBzZWxm
Ll9pc19jeWd3aW4oKToKKyAgICAgICAgICAgIGN5Z2JpbiA9IHNlbGYuX3BvcnRfb2JqLl9wYXRo
X2Zyb21fYmFzZSgndGhpcmRfcGFydHknLCAnY3lnd2luJywKKyAgICAgICAgICAgICAgICAnYmlu
JykKKyAgICAgICAgICAgICMgTm90IGVudGlyZWx5IHN1cmUgd2h5LCBidXQgZnJvbSBjeWd3aW4g
d2UgbmVlZCB0byBydW4gdGhlCisgICAgICAgICAgICAjIGh0dHBkIGNvbW1hbmQgdGhyb3VnaCBi
YXNoLgorICAgICAgICAgICAgc2VsZi5fc3RhcnRfY21kID0gWworICAgICAgICAgICAgICAgIG9z
LnBhdGguam9pbihjeWdiaW4sICdiYXNoLmV4ZScpLAorICAgICAgICAgICAgICAgICctYycsCisg
ICAgICAgICAgICAgICAgJ1BBVEg9JXMgJXMnICUgKHNlbGYuX2dldF9jeWd3aW5fcGF0aChjeWdi
aW4pLCAiICIuam9pbihzdGFydF9jbWQpKSwKKyAgICAgICAgICAgICAgXQorICAgICAgICAgICAg
c2VsZi5fc3RvcF9jbWQgPSBbCisgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKGN5Z2Jpbiwg
J2Jhc2guZXhlJyksCisgICAgICAgICAgICAgICAgJy1jJywKKyAgICAgICAgICAgICAgICAnUEFU
SD0lcyAlcycgJSAoc2VsZi5fZ2V0X2N5Z3dpbl9wYXRoKGN5Z2JpbiksICIgIi5qb2luKHN0b3Bf
Y21kKSksCisgICAgICAgICAgICAgIF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgVE9E
TyhvamFuKTogV2hlbiB3ZSBnZXQgY3lnd2luIHVzaW5nIEFwYWNoZSAyLCB1c2Ugc2V0IHRoZQor
ICAgICAgICAgICAgIyBjZXJ0IGZpbGUgZm9yIGN5Z3dpbiBhcyB3ZWxsLgorICAgICAgICAgICAg
c3RhcnRfY21kLmV4dGVuZChbJy1jJywgIlwnU1NMQ2VydGlmaWNhdGVGaWxlICVzXCciICUgY2Vy
dF9maWxlXSkKKyAgICAgICAgICAgICMgSm9pbiB0aGUgc3RyaW5nIGhlcmUgc28gdGhhdCBDeWd3
aW4vV2luZG93cyBhbmQgTWFjL0xpbnV4CisgICAgICAgICAgICAjIGNhbiB1c2UgdGhlIHNhbWUg
Y29kZS4gT3RoZXJ3aXNlLCB3ZSBjb3VsZCByZW1vdmUgdGhlIHNpbmdsZQorICAgICAgICAgICAg
IyBxdW90ZXMgYWJvdmUgYW5kIGtlZXAgY21kIGFzIGEgc2VxdWVuY2UuCisgICAgICAgICAgICBz
ZWxmLl9zdGFydF9jbWQgPSAiICIuam9pbihzdGFydF9jbWQpCisgICAgICAgICAgICBzZWxmLl9z
dG9wX2NtZCA9ICIgIi5qb2luKHN0b3BfY21kKQorCisgICAgZGVmIF9pc19jeWd3aW4oc2VsZik6
CisgICAgICAgIHJldHVybiBzeXMucGxhdGZvcm0gaW4gKCJ3aW4zMiIsICJjeWd3aW4iKQorCisg
ICAgZGVmIF9jeWd3aW5fc2FmZV9qb2luKHNlbGYsICpwYXJ0cyk6CisgICAgICAgICIiIlJldHVy
bnMgYSBwbGF0Zm9ybSBhcHByb3ByaWF0ZSBwYXRoLiIiIgorICAgICAgICBwYXRoID0gb3MucGF0
aC5qb2luKCpwYXJ0cykKKyAgICAgICAgaWYgc2VsZi5faXNfY3lnd2luKCk6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fZ2V0X2N5Z3dpbl9wYXRoKHBhdGgpCisgICAgICAgIHJldHVybiBwYXRo
CisKKyAgICBkZWYgX2dldF9jeWd3aW5fcGF0aChzZWxmLCBwYXRoKToKKyAgICAgICAgIiIiQ29u
dmVydCBhIFdpbmRvd3MgcGF0aCB0byBhIGN5Z3dpbiBwYXRoLgorCisgICAgICAgIFRoZSBjeWdw
YXRoIHV0aWxpdHkgaW5zaXN0cyBvbiBjb252ZXJ0aW5nIHBhdGhzIHRoYXQgaXQgdGhpbmtzIGFy
ZQorICAgICAgICBDeWd3aW4gcm9vdCBwYXRocyB0byB3aGF0IGl0IHRoaW5rcyB0aGUgY29ycmVj
dCByb290cyBhcmUuICBTbyBwYXRocworICAgICAgICBzdWNoIGFzICJDOlxiXHNsYXZlXHdlYmtp
dC1yZWxlYXNlXGJ1aWxkXHRoaXJkX3BhcnR5XGN5Z3dpblxiaW4iCisgICAgICAgIGFyZSBjb252
ZXJ0ZWQgdG8gcGxhaW4gIi91c3IvYmluIi4gIFRvIGF2b2lkIHRoaXMsIHdlCisgICAgICAgIGRv
IHRoZSBjb252ZXJzaW9uIG1hbnVhbGx5LgorCisgICAgICAgIFRoZSBwYXRoIGlzIGV4cGVjdGVk
IHRvIGJlIGFuIGFic29sdXRlIHBhdGgsIG9uIGFueSBkcml2ZS4KKyAgICAgICAgIiIiCisgICAg
ICAgIGRyaXZlX3JlZ2V4cCA9IHJlLmNvbXBpbGUocicoW2Etel0pOlsvXFxdJywgcmUuSUdOT1JF
Q0FTRSkKKworICAgICAgICBkZWYgbG93ZXJfZHJpdmUobWF0Y2hvYmopOgorICAgICAgICAgICAg
cmV0dXJuICcvY3lnZHJpdmUvJXMvJyAlIG1hdGNob2JqLmdyb3VwKDEpLmxvd2VyKCkKKyAgICAg
ICAgcGF0aCA9IGRyaXZlX3JlZ2V4cC5zdWIobG93ZXJfZHJpdmUsIHBhdGgpCisgICAgICAgIHJl
dHVybiBwYXRoLnJlcGxhY2UoJ1xcJywgJy8nKQorCisgICAgZGVmIF9nZXRfYXBhY2hlX2NvbmZp
Z19maWxlX3BhdGgoc2VsZiwgdGVzdF9kaXIsIG91dHB1dF9kaXIpOgorICAgICAgICAiIiJSZXR1
cm5zIHRoZSBwYXRoIHRvIHRoZSBhcGFjaGUgY29uZmlnIGZpbGUgdG8gdXNlLgorICAgICAgICBB
cmdzOgorICAgICAgICAgIHRlc3RfZGlyOiBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBMYXlvdXRUZXN0
cyBkaXJlY3RvcnkuCisgICAgICAgICAgb3V0cHV0X2RpcjogYWJzb2x1dGUgcGF0aCB0byB0aGUg
bGF5b3V0IHRlc3QgcmVzdWx0cyBkaXJlY3RvcnkuCisgICAgICAgICIiIgorICAgICAgICBodHRw
ZF9jb25maWcgPSBzZWxmLl9wb3J0X29iai5fcGF0aF90b19hcGFjaGVfY29uZmlnX2ZpbGUoKQor
ICAgICAgICBodHRwZF9jb25maWdfY29weSA9IG9zLnBhdGguam9pbihvdXRwdXRfZGlyLCAiaHR0
cGQuY29uZiIpCisgICAgICAgIGh0dHBkX2NvbmYgPSBzZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4
dF9maWxlKGh0dHBkX2NvbmZpZykKKyAgICAgICAgaWYgc2VsZi5faXNfY3lnd2luKCk6CisgICAg
ICAgICAgICAjIFRoaXMgaXMgYSBncm9zcyBoYWNrLCBidXQgaXQgbGV0cyB1cyB1c2UgdGhlIHVw
c3RyZWFtIC5jb25mIGZpbGUKKyAgICAgICAgICAgICMgYW5kIG91ciBjaGVja2VkIGluIGN5Z3dp
bi4gVGhpcyB0ZWxscyB0aGUgc2VydmVyIHRoZSByb290CisgICAgICAgICAgICAjIGRpcmVjdG9y
eSB0byBsb29rIGluIGZvciAuc28gbW9kdWxlcy4gSXQgd2lsbCB1c2UgdGhpcyBwYXRoCisgICAg
ICAgICAgICAjIHBsdXMgdGhlIHJlbGF0aXZlIHBhdGhzIHRvIHRoZSAuc28gZmlsZXMgbGlzdGVk
IGluIHRoZSAuY29uZgorICAgICAgICAgICAgIyBmaWxlLiBXZSBoYXZlIGFwYWNoZS9jeWd3aW4g
Y2hlY2tlZCBpbnRvIG91ciB0cmVlIHNvCisgICAgICAgICAgICAjIHBlb3BsZSBkb24ndCBoYXZl
IHRvIGluc3RhbGwgaXQgaW50byB0aGVpciBjeWd3aW4uCisgICAgICAgICAgICBjeWd1c3IgPSBz
ZWxmLl9wb3J0X29iai5fcGF0aF9mcm9tX2Jhc2UoJ3RoaXJkX3BhcnR5JywgJ2N5Z3dpbicsCisg
ICAgICAgICAgICAgICAgJ3VzcicpCisgICAgICAgICAgICBodHRwZF9jb25mID0gaHR0cGRfY29u
Zi5yZXBsYWNlKCdTZXJ2ZXJSb290ICIvdXNyIicsCisgICAgICAgICAgICAgICAgJ1NlcnZlclJv
b3QgIiVzIicgJSBzZWxmLl9nZXRfY3lnd2luX3BhdGgoY3lndXNyKSkKKworICAgICAgICBzZWxm
Ll9maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZShodHRwZF9jb25maWdfY29weSwgaHR0cGRfY29u
ZikKKworICAgICAgICBpZiBzZWxmLl9pc19jeWd3aW4oKToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9nZXRfY3lnd2luX3BhdGgoaHR0cGRfY29uZmlnX2NvcHkpCisgICAgICAgIHJldHVybiBo
dHRwZF9jb25maWdfY29weQorCisgICAgZGVmIF9zcGF3bl9wcm9jZXNzKHNlbGYpOgorICAgICAg
ICBfbG9nLmRlYnVnKCdTdGFydGluZyAlcyBzZXJ2ZXIsIGNtZD0iJXMiJyAlIChzZWxmLl9uYW1l
LCBzdHIoc2VsZi5fc3RhcnRfY21kKSkpCisgICAgICAgIHJldHZhbCwgZXJyID0gc2VsZi5fcnVu
KHNlbGYuX3N0YXJ0X2NtZCkKKyAgICAgICAgaWYgcmV0dmFsIG9yIGxlbihlcnIpOgorICAgICAg
ICAgICAgcmFpc2UgaHR0cF9zZXJ2ZXJfYmFzZS5TZXJ2ZXJFcnJvcignRmFpbGVkIHRvIHN0YXJ0
ICVzOiAlcycgJSAoc2VsZi5fbmFtZSwgZXJyKSkKKworICAgICAgICAjIEZvciBzb21lIHJlYXNv
biBhcGFjaGUgaXNuJ3QgZ3VhcmFudGVlZCB0byBoYXZlIGNyZWF0ZWQgdGhlIHBpZCBmaWxlIGJl
Zm9yZQorICAgICAgICAjIHRoZSBwcm9jZXNzIGV4aXRzLCBzbyB3ZSB3YWl0IGEgbGl0dGxlIHdo
aWxlIGxvbmdlci4KKyAgICAgICAgaWYgbm90IHNlbGYuX3dhaXRfZm9yX2FjdGlvbihsYW1iZGE6
IHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3RzKHNlbGYuX3BpZF9maWxlKSk6CisgICAgICAgICAgICBy
YWlzZSBodHRwX3NlcnZlcl9iYXNlLlNlcnZlckVycm9yKCdGYWlsZWQgdG8gc3RhcnQgJXM6IG5v
IHBpZCBmaWxlIGZvdW5kJyAlIHNlbGYuX25hbWUpCisKKyAgICAgICAgcmV0dXJuIGludChzZWxm
Ll9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHNlbGYuX3BpZF9maWxlKSkKKworICAgIGRlZiBf
c3RvcF9ydW5uaW5nX3NlcnZlcihzZWxmKToKKyAgICAgICAgcmV0dmFsLCBlcnIgPSBzZWxmLl9y
dW4oc2VsZi5fc3RvcF9jbWQpCisgICAgICAgIGlmIHJldHZhbCBvciBsZW4oZXJyKToKKyAgICAg
ICAgICAgIHJhaXNlIGh0dHBfc2VydmVyX2Jhc2UuU2VydmVyRXJyb3IoJ0ZhaWxlZCB0byBzdG9w
ICVzOiAlcycgJSAoc2VsZi5fbmFtZSwgZXJyKSkKKworICAgICAgICAjIEZvciBzb21lIHJlYXNv
biBhcGFjaGUgaXNuJ3QgZ3VhcmFudGVlZCB0byBoYXZlIGFjdHVhbGx5IHN0b3BwZWQgYWZ0ZXIK
KyAgICAgICAgIyB0aGUgc3RvcCBjb21tYW5kIHJldHVybnMsIHNvIHdlIHdhaXQgYSBsaXR0bGUg
d2hpbGUgbG9uZ2VyIGZvciB0aGUKKyAgICAgICAgIyBwaWQgZmlsZSB0byBiZSByZW1vdmVkLgor
ICAgICAgICBpZiBub3Qgc2VsZi5fd2FpdF9mb3JfYWN0aW9uKGxhbWJkYTogbm90IHNlbGYuX2Zp
bGVzeXN0ZW0uZXhpc3RzKHNlbGYuX3BpZF9maWxlKSk6CisgICAgICAgICAgICByYWlzZSBodHRw
X3NlcnZlcl9iYXNlLlNlcnZlckVycm9yKCdGYWlsZWQgdG8gc3RvcCAlczogcGlkIGZpbGUgc3Rp
bGwgZXhpc3RzJyAlIHNlbGYuX25hbWUpCisKKyAgICBkZWYgX3J1bihzZWxmLCBjbWQpOgorICAg
ICAgICAjIFVzZSBzaGVsbD1UcnVlIGJlY2F1c2Ugd2Ugam9pbiB0aGUgYXJndW1lbnRzIGludG8g
YSBzdHJpbmcgZm9yCisgICAgICAgICMgdGhlIHNha2Ugb2YgV2luZG93L0N5Z3dpbiBhbmQgaXQg
bmVlZHMgcXVvdGluZyB0aGF0IGJyZWFrcworICAgICAgICAjIHNoZWxsPUZhbHNlLgorICAgICAg
ICAjIEZJWE1FOiBXZSBzaG91bGQgbm90IG5lZWQgdG8gYmUgam9pbmluZyBzaGVsbCBhcmd1bWVu
dHMgaW50byBzdHJpbmdzLgorICAgICAgICAjIHNoZWxsPVRydWUgaXMgYSB0cmFpbCBvZiB0ZWFy
cy4KKyAgICAgICAgIyBOb3RlOiBOb3QgdGhyZWFkIHNhZmU6IGh0dHA6Ly9idWdzLnB5dGhvbi5v
cmcvaXNzdWUyMzIwCisgICAgICAgIHByb2Nlc3MgPSBzZWxmLl9leGVjdXRpdmUucG9wZW4oY21k
LCBzaGVsbD1UcnVlLCBzdGRlcnI9c2VsZi5fZXhlY3V0aXZlLlBJUEUpCisgICAgICAgIHByb2Nl
c3Mud2FpdCgpCisgICAgICAgIHJldHZhbCA9IHByb2Nlc3MucmV0dXJuY29kZQorICAgICAgICBl
cnIgPSBwcm9jZXNzLnN0ZGVyci5yZWFkKCkKKyAgICAgICAgcmV0dXJuIChyZXR2YWwsIGVycikK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvYXBhY2hl
X2h0dHBfc2VydmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3NlcnZlcnMvYXBhY2hlX2h0dHBfc2VydmVyLnB5CShyZXZpc2lvbiAwKQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9hcGFjaGVfaHR0cF9z
ZXJ2ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgaW1wb3J0IHN5cwogCiBm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBodHRwX3NlcnZlcl9iYXNlCiAK
LV9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuYXBh
Y2hlX2h0dHBfc2VydmVyIikKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigid2Via2l0cHkubGF5
b3V0X3Rlc3RzLnNlcnZlcnMuYXBhY2hlX2h0dHBfc2VydmVyIikKIAogCiBjbGFzcyBMYXlvdXRU
ZXN0QXBhY2hlSHR0cGQoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZSk6Cg==
</data>
<flag name="review"
          id="92951"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>