<?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>79585</bug_id>
          
          <creation_ts>2012-02-25 16:09:23 -0800</creation_ts>
          <short_desc>perf-o-matic needs a better admin page</short_desc>
          <delta_ts>2012-02-25 17:22:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Website</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>
          
          <blocked>77037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>565038</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-25 16:09:23 -0800</bug_when>
    <thetext>Redesign /admin/* pages to make my eyes happier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565044</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-25 16:15:03 -0800</bug_when>
    <thetext>Screenshots:

Old create-models page: https://bugs.webkit.org/attachment.cgi?id=128888
Old merge-tests page: https://bugs.webkit.org/attachment.cgi?id=128889
Shiny(tm) new admin page: https://bugs.webkit.org/attachment.cgi?id=128890</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565052</commentid>
    <comment_count>2</comment_count>
      <attachid>128893</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-25 16:28:13 -0800</bug_when>
    <thetext>Created attachment 128893
Needs a rubber stamp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565055</commentid>
    <comment_count>3</comment_count>
      <attachid>128894</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-25 16:30:05 -0800</bug_when>
    <thetext>Created attachment 128894
Reverted app.yaml change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565061</commentid>
    <comment_count>4</comment_count>
      <attachid>128894</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-02-25 17:19:03 -0800</bug_when>
    <thetext>Comment on attachment 128894
Reverted app.yaml change

Sure, whatever. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565062</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-25 17:22:45 -0800</bug_when>
    <thetext>Committed r108917: &lt;http://trac.webkit.org/changeset/108917&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128893</attachid>
            <date>2012-02-25 16:28:13 -0800</date>
            <delta_ts>2012-02-25 16:30:00 -0800</delta_ts>
            <desc>Needs a rubber stamp</desc>
            <filename>bug-79585-20120225162812.patch</filename>
            <type>text/plain</type>
            <size>17217</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEwODkx
MikKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAy
LTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHBlcmYtby1t
YXRpYyBuZWVkcyBhIGJldHRlciBhZG1pbiBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIGFkbWluLyB0byByZXBsYWNlIGFkbWlu
L2NyZWF0ZS1tb2RlbHMuaHRtbCBhbmQgYWRtaW4vbWVyZ2UtdGVzdHMuCisKKyAgICAgICAgQWxz
byB1cGRhdGUgTWVyZ2VUZXN0SGFuZGxlciB0byBhY2NlcHQgSlNPTiByZXF1ZXN0cyBhbmQgYWRk
ICJBZG1pbiIgbmF2aWdhdGlvbiBsaW5rIG9uIGFsbCBwYWdlcy4KKworICAgICAgICAqIFdlYnNp
dGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2FkbWluX2hhbmRsZXJzLnB5OiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9hcHAueWFtbDoKKyAgICAg
ICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9jb250cm9sbGVyLnB5OgorICAg
ICAgICAoUnVuc1VwZGF0ZUhhbmRsZXIucG9zdCk6CisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0
LXBlcmYuYXBwc3BvdC5jb20vY3NzL2FkbWluLmNzczogQWRkZWQuCisgICAgICAgICogV2Vic2l0
ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vanMvYWRtaW4uanM6IEFkZGVkLgorICAgICAgICAq
IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2pzL2NvbmZpZy5qczoKKyAgICAgICAg
KiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9tYWluLnB5OgorICAgICAgICAqIFdl
YnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21lcmdlX3Rlc3RzLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vbWVyZ2VfdGVzdHNf
aGFuZGxlci5weToKKyAgICAgICAgKE1lcmdlVGVzdHNIYW5kbGVyKToKKyAgICAgICAgKE1lcmdl
VGVzdHNIYW5kbGVyLnBvc3QpOgorICAgICAgICAqIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNw
b3QuY29tL3N0YXRpYzogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5h
cHBzcG90LmNvbS9zdGF0aWMvY3JlYXRlLW1vZGVscy5odG1sOiBSZW1vdmVkLgorCiAyMDEyLTAy
LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEluY3JlbWVu
dCBwZXJmLW8tbWF0aWMgdmVyc2lvbi4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNw
b3QuY29tL2FkbWluX2hhbmRsZXJzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1w
ZXJmLmFwcHNwb3QuY29tL2FkbWluX2hhbmRsZXJzLnB5CShyZXZpc2lvbiAwKQorKysgV2Vic2l0
ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vYWRtaW5faGFuZGxlcnMucHkJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsODMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCB3ZWJhcHAyCitpbXBvcnQganNvbgorCitmcm9tIGdvb2dsZS5hcHBlbmdpbmUu
YXBpIGltcG9ydCB1c2VycworZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC5kYiBpbXBvcnQgR3Fs
UXVlcnkKK2Zyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQud2ViYXBwIGltcG9ydCB0ZW1wbGF0ZQor
Citmcm9tIG1vZGVscyBpbXBvcnQgQnJhbmNoCitmcm9tIG1vZGVscyBpbXBvcnQgQnVpbGRlcgor
ZnJvbSBtb2RlbHMgaW1wb3J0IFBsYXRmb3JtCitmcm9tIG1vZGVscyBpbXBvcnQgUmVwb3J0TG9n
Citmcm9tIG1vZGVscyBpbXBvcnQgVGVzdAorCisKK2NsYXNzIElzQWRtaW5IYW5kbGVyKHdlYmFw
cDIuUmVxdWVzdEhhbmRsZXIpOgorICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgIHNlbGYucmVz
cG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbicKKyAgICAg
ICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJ3RydWUnIGlmIHVzZXJzLmlzX2N1cnJlbnRfdXNl
cl9hZG1pbigpIGVsc2UgJ2ZhbHNlJykKKworCitjbGFzcyBBZG1pbkRhc2hib2FyZEhhbmRsZXIo
d2ViYXBwMi5SZXF1ZXN0SGFuZGxlcik6CisgICAgZGVmIGdldChzZWxmLCB0YXNrKToKKyAgICAg
ICAgdGFza19tZXRob2RfbmFtZSA9ICdnZXRfJyArIHRhc2sKKyAgICAgICAgaWYgdGFza19tZXRo
b2RfbmFtZSBpbiBkaXIoc2VsZikgYW5kIHRhc2tfbWV0aG9kX25hbWUgbm90IGluIGRpcihzdXBl
cik6CisgICAgICAgICAgICBtZXRob2QgPSBnZXRhdHRyKHNlbGYsIHRhc2tfbWV0aG9kX25hbWUp
CisgICAgICAgICAgICByZXR1cm4gbWV0aG9kKCkKKworICAgICAgICByZXBvcnRfbG9nX3RvdGFs
ID0gR3FsUXVlcnkoIlNFTEVDVCBfX2tleV9fIEZST00gUmVwb3J0TG9nIikuY291bnQoKQorICAg
ICAgICByZXBvcnRfbG9nX2NvbW1pdHRlZCA9IEdxbFF1ZXJ5KCJTRUxFQ1QgX19rZXlfXyBGUk9N
IFJlcG9ydExvZyBXSEVSRSBjb21taXQgPSBUcnVlIikuY291bnQoKQorCisgICAgICAgIHNlbGYu
cmVzcG9uc2Uub3V0LndyaXRlKHRlbXBsYXRlLnJlbmRlcignYWRtaW4uaHRtbCcsCisgICAgICAg
ICAgICB7J3JlcG9ydF9sb2dfdG90YWwnOiByZXBvcnRfbG9nX3RvdGFsLCAncmVwb3J0X2xvZ19j
b21taXR0ZWQnOiByZXBvcnRfbG9nX2NvbW1pdHRlZH0pKQorCisgICAgZGVmIGdldF9icmFuY2hl
cyhzZWxmKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUnXSA9
ICdhcHBsaWNhdGlvbi9qc29uJworICAgICAgICByZXN1bHQgPSB7fQorICAgICAgICBmb3IgYnJh
bmNoIGluIEJyYW5jaC5hbGwoKS5mZXRjaChsaW1pdD0xMDApOgorICAgICAgICAgICAgcmVzdWx0
W2JyYW5jaC5rZXkoKS5uYW1lKCldID0gYnJhbmNoLm5hbWUKKyAgICAgICAgc2VsZi5yZXNwb25z
ZS5vdXQud3JpdGUoanNvbi5kdW1wcyhyZXN1bHQpKQorCisgICAgZGVmIGdldF9wbGF0Zm9ybXMo
c2VsZik6CisgICAgICAgIHNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAn
YXBwbGljYXRpb24vanNvbicKKyAgICAgICAgcmVzdWx0ID0ge30KKyAgICAgICAgZm9yIHBsYXRm
b3JtIGluIFBsYXRmb3JtLmFsbCgpLmZldGNoKGxpbWl0PTEwMCk6CisgICAgICAgICAgICByZXN1
bHRbcGxhdGZvcm0ua2V5KCkubmFtZSgpXSA9IHBsYXRmb3JtLm5hbWUKKyAgICAgICAgc2VsZi5y
ZXNwb25zZS5vdXQud3JpdGUoanNvbi5kdW1wcyhyZXN1bHQpKQorCisgICAgZGVmIGdldF9idWls
ZGVycyhzZWxmKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5cGUn
XSA9ICdhcHBsaWNhdGlvbi9qc29uJworICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZShq
c29uLmR1bXBzKFtidWlsZGVyLm5hbWUgZm9yIGJ1aWxkZXIgaW4gQnVpbGRlci5hbGwoKS5mZXRj
aChsaW1pdD0xMDApXSkpCisKKyAgICBkZWYgZ2V0X3Rlc3RzKHNlbGYpOgorICAgICAgICBzZWxm
LnJlc3BvbnNlLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nCisg
ICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKGpzb24uZHVtcHMoW3Rlc3QubmFtZSBmb3Ig
dGVzdCBpbiBUZXN0LmFsbCgpLmZldGNoKGxpbWl0PTIwMCldKSkKSW5kZXg6IFdlYnNpdGVzL3dl
YmtpdC1wZXJmLmFwcHNwb3QuY29tL2FwcC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dl
YmtpdC1wZXJmLmFwcHNwb3QuY29tL2FwcC55YW1sCShyZXZpc2lvbiAxMDg4NDUpCisrKyBXZWJz
aXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9hcHAueWFtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDYgQEAKIGFwcGxpY2F0aW9uOiB3ZWJraXQtcGVyZgogdmVyc2lvbjogMTQKLXJ1bnRp
bWU6IHB5dGhvbjI3CitydW50aW1lOiBweXRob24KIGFwaV92ZXJzaW9uOiAxCiB0aHJlYWRzYWZl
OiBmYWxzZQogCkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9jb250cm9s
bGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2Nv
bnRyb2xsZXIucHkJKHJldmlzaW9uIDEwODU1MSkKKysrIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFw
cHNwb3QuY29tL2NvbnRyb2xsZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBA
QCBjbGFzcyBSdW5zVXBkYXRlSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RICiAgICAgZGVmIGdldChz
ZWxmKToKICAgICAgICAgc2VsZi5wb3N0KCkKIAotICAgIGRlZiBnZXQoc2VsZik6CisgICAgZGVm
IHBvc3Qoc2VsZik6CiAgICAgICAgIHNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBl
J10gPSAndGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOCcKICAgICAgICAgdGVzdF9pZCwgYnJhbmNo
X2lkLCBwbGF0Zm9ybV9pZCA9IF9nZXRfdGVzdF9icmFuY2hfcGxhdGZvcm1faWRzKHNlbGYpCiAK
SW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21haW4ucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vbWFpbi5weQkocmV2aXNpb24g
MTA4NTUxKQorKysgV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vbWFpbi5weQkod29y
a2luZyBjb3B5KQpAQCAtMjAsNiArMjAsOCBAQCBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0Lndl
YmFwcCBpbXBvcnQgCiAKIGltcG9ydCBqc29uCiAKK2Zyb20gYWRtaW5faGFuZGxlcnMgaW1wb3J0
IElzQWRtaW5IYW5kbGVyCitmcm9tIGFkbWluX2hhbmRsZXJzIGltcG9ydCBBZG1pbkRhc2hib2Fy
ZEhhbmRsZXIKIGZyb20gY29udHJvbGxlciBpbXBvcnQgQ2FjaGVkRGFzaGJvYXJkSGFuZGxlcgog
ZnJvbSBjb250cm9sbGVyIGltcG9ydCBDYWNoZWRNYW5pZmVzdEhhbmRsZXIKIGZyb20gY29udHJv
bGxlciBpbXBvcnQgQ2FjaGVkUnVuc0hhbmRsZXIKQEAgLTM4LDYgKzQwLDggQEAgcm91dGVzID0g
WwogICAgICgnL2FkbWluL21lcmdlLXRlc3RzLz8nLCBNZXJnZVRlc3RzSGFuZGxlciksCiAgICAg
KCcvYWRtaW4vcmVwb3J0LWxvZ3MvPycsIFJlcG9ydExvZ3NIYW5kbGVyKSwKICAgICAoJy9hZG1p
bi9jcmVhdGUvKC4qKScsIENyZWF0ZUhhbmRsZXIpLAorICAgIChyJy9hZG1pbi8oW0EtWmEtelwt
XSopJywgQWRtaW5EYXNoYm9hcmRIYW5kbGVyKSwKKyAgICAoJy9hcGkvdXNlci9pcy1hZG1pbics
IElzQWRtaW5IYW5kbGVyKSwKICAgICAoJy9hcGkvdGVzdC8/JywgQ2FjaGVkTWFuaWZlc3RIYW5k
bGVyKSwKICAgICAoJy9hcGkvdGVzdC91cGRhdGUnLCBNYW5pZmVzdFVwZGF0ZUhhbmRsZXIpLAog
ICAgICgnL2FwaS90ZXN0L3JlcG9ydC8/JywgUmVwb3J0SGFuZGxlciksCkluZGV4OiBXZWJzaXRl
cy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9tZXJnZV90ZXN0cy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21lcmdlX3Rlc3RzLmh0bWwJKHJldmlz
aW9uIDEwODU1MSkKKysrIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21lcmdlX3Rl
c3RzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxib2R5PgotPGgxPk1lcmdlIHRlc3RzPC9oMT4KLTxmb3JtIG1ldGhvZD0icG9z
dCIgYWN0aW9uPSIvYWRtaW4vbWVyZ2UtdGVzdHMiPgotCi08bGFiZWwgZm9yPSJtZXJnZSI+TWVy
Z2U8L2xhYmVsPjoKLTxzZWxlY3QgaWQ9Im1lcmdlIiBuYW1lPSJtZXJnZSI+Ci17JSBmb3IgdGVz
dCBpbiB0ZXN0cyAlfQotICAgIDxvcHRpb24gdmFsdWU9Int7IHRlc3QubmFtZSB9fSI+e3sgdGVz
dC5uYW1lIH19PC9vcHRpb24+Ci17JSBlbmRmb3IgJX0KLTwvc2VsZWN0PgotCi08bGFiZWwgZm9y
PSJpbnRvIj5JbnRvPC9sYWJlbD46Ci08c2VsZWN0IGlkPSJpbnRvIiBuYW1lPSJpbnRvIj4KLXsl
IGZvciB0ZXN0IGluIHRlc3RzICV9Ci0gICAgPG9wdGlvbiB2YWx1ZT0ie3sgdGVzdC5uYW1lIH19
Ij57eyB0ZXN0Lm5hbWUgfX08L29wdGlvbj4KLXslIGVuZGZvciAlfQotPC9zZWxlY3Q+Ci0KLTxi
dXR0b24gdHlwZT0ic3VibWl0Ij5NZXJnZTwvYnV0dG9uPgotCi08L2Zvcm0+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9tZXJnZV90ZXN0
c19oYW5kbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3Qu
Y29tL21lcmdlX3Rlc3RzX2hhbmRsZXIucHkJKHJldmlzaW9uIDEwODU1MSkKKysrIFdlYnNpdGVz
L3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21lcmdlX3Rlc3RzX2hhbmRsZXIucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIGltcG9ydCB3ZWJhcHAyCiBmcm9tIGdvb2dsZS5hcHBl
bmdpbmUuZXh0LndlYmFwcCBpbXBvcnQgdGVtcGxhdGUKIAoraW1wb3J0IGpzb24KIGltcG9ydCBv
cwogCiBmcm9tIGNvbnRyb2xsZXIgaW1wb3J0IHNjaGVkdWxlX3J1bnNfdXBkYXRlCkBAIC00MSwx
NCArNDIsMTkgQEAgZnJvbSBtb2RlbHMgaW1wb3J0IGRlbGV0ZV9tb2RlbF93aXRoX251bQogCiAK
IGNsYXNzIE1lcmdlVGVzdHNIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgotICAgIGRl
ZiBnZXQoc2VsZik6Ci0gICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKHRlbXBsYXRlLnJl
bmRlcignbWVyZ2VfdGVzdHMuaHRtbCcsIHsndGVzdHMnOiBUZXN0LmFsbCgpfSkpCi0KICAgICBk
ZWYgcG9zdChzZWxmKToKICAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250ZW50LVR5
cGUnXSA9ICd0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04JzsKIAotICAgICAgICBtZXJnZSA9IFRl
c3QuZ2V0X2J5X2tleV9uYW1lKHNlbGYucmVxdWVzdC5nZXQoJ21lcmdlJykpCi0gICAgICAgIGlu
dG8gPSBUZXN0LmdldF9ieV9rZXlfbmFtZShzZWxmLnJlcXVlc3QuZ2V0KCdpbnRvJykpCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHBheWxvYWQgPSBqc29uLmxvYWRzKHNlbGYucmVxdWVzdC5i
b2R5KQorICAgICAgICAgICAgbWVyZ2UgPSBwYXlsb2FkLmdldCgnbWVyZ2UnLCAnJykKKyAgICAg
ICAgICAgIGludG8gPSBwYXlsb2FkLmdldCgnaW50bycsICcnKQorICAgICAgICBleGNlcHQ6Cisg
ICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgiRmFpbGVkIHRvIHBhcnNlIHRoZSBw
YXlsb2FkOiAlcyIgJSBzZWxmLnJlcXVlc3QuYm9keSkKKyAgICAgICAgICAgIHJldHVybgorCisg
ICAgICAgIG1lcmdlID0gVGVzdC5nZXRfYnlfa2V5X25hbWUobWVyZ2UpCisgICAgICAgIGludG8g
PSBUZXN0LmdldF9ieV9rZXlfbmFtZShpbnRvKQogICAgICAgICBpZiBub3QgbWVyZ2Ugb3Igbm90
IGludG86CiAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnSW52YWxpZCB0ZXN0
IG5hbWVzJykKICAgICAgICAgICAgIHJldHVybgpJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYu
YXBwc3BvdC5jb20vY3NzL2FkbWluLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQt
cGVyZi5hcHBzcG90LmNvbS9jc3MvYWRtaW4uY3NzCShyZXZpc2lvbiAwKQorKysgV2Vic2l0ZXMv
d2Via2l0LXBlcmYuYXBwc3BvdC5jb20vY3NzL2FkbWluLmNzcwkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw4NiBAQAoraHRtbCB7CisgICAgcGFkZGluZzogMHB4OworICAgIG1hcmdpbjogMHB4Owor
fQorCisjc3VtbWFyeSB7CisgICAgbWFyZ2luLXRvcDogNDlweDsKKyAgICBmb250LXNpemU6IDE0
cHg7CisgICAgbGluZS1oZWlnaHQ6IDM2cHg7CisgICAgZGlzcGxheTogdGFibGU7CisgICAgYm9y
ZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKK30KKworc2VjdGlvbiB7CisgICAgZGlzcGxheTogdGFi
bGUtY2VsbDsKKyAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBs
aWdodGdyZXk7CisgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKKyAgICBtaW4taGVpZ2h0
OiAzMDBweDsKKyAgICBtYXgtd2lkdGg6IDQwMHB4OworfQorCitoMiB7CisgICAgY2xlYXI6IGJv
dGg7CisgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoLTkwZGVnLCAjZjhmOGY4
LCAjZTdlN2U3KTsKKyAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVm
dCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKCNmOGY4ZjgpLCB0bygjZTdlN2U3KSk7CisgICAgcGFk
ZGluZzogMCAxMHB4OworICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGdyZXk7Cit9
CisKK2RsLCBzZWN0aW9uID4gdWwgPiBsaSB7CisgICAgcGFkZGluZzogMCAxMHB4OworfQorCitk
dCwgZGQgeworICAgIGZsb2F0OiBsZWZ0OworfQorCitkdCB7CisgICAgdGV4dC1hbGlnbjogcmln
aHQ7CisgICAgY2xlYXI6IGJvdGg7Cit9CisKK2R0OmFmdGVyIHsKKyAgICBjb250ZW50OiAiIDog
IjsKK30KKworZGQgeworICAgIHRleHQtaW5kZW50OiAwLjVleDsKK30KKworLmNvdW50cyBkdCB7
CisgICAgd2lkdGg6IDEwMHB4OworfQorCisuY291bnRzIGRkIHsKKyAgICB3aWR0aDogNTBweDsK
K30KKworbGkuZm9ybSB7CisgICAgcGFkZGluZzogMDsKKyAgICBib3JkZXItdG9wOiBzb2xpZCAx
cHggbGlnaHRncmV5OworfQorCitmb3JtIHsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKKyAgICBw
YWRkaW5nOiAxMHB4OworfQorCitpbnB1dCB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgZm9udC1z
aXplOiAxNHB4OworICAgIGJvcmRlcjogc29saWQgMXB4IGxpZ2h0Z3JleTsKK30KKworZm9ybSBk
dCB7CisgICAgd2lkdGg6IDcwcHg7Cit9CisKK2Zvcm0gZGQgeworICAgIHdpZHRoOiAxNTBweDsK
K30KKworI2Zvb3RlciB7CisgICAgbWFyZ2luOiAxMHB4OworfQpJbmRleDogV2Vic2l0ZXMvd2Vi
a2l0LXBlcmYuYXBwc3BvdC5jb20vanMvYWRtaW4uanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
d2Via2l0LXBlcmYuYXBwc3BvdC5jb20vanMvYWRtaW4uanMJKHJldmlzaW9uIDApCisrKyBXZWJz
aXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9qcy9hZG1pbi5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw4MCBAQAorZnVuY3Rpb24gcmVtb3ZlTm9uRm9ybUxpc3RJdGVtcyhsaXN0KSB7Cisg
ICAgbGlzdC5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAoJC5pbkFy
cmF5KCdmb3JtJywgdGhpcy5jbGFzc0xpc3QpKQorICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmUo
KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlS2V5TmFtZVJlbG9hZGVyKG5hbWUpIHsK
KyAgICByZXR1cm4gZnVuY3Rpb24gKCkgeworICAgICAgICAkLmdldEpTT04obmFtZSwgZnVuY3Rp
b24gKHBsYXRmb3JtcykgeworICAgICAgICAgICAgdmFyIGxpc3QgPSAkKCcjJyArIG5hbWUgKyAn
IHVsJyk7CisgICAgICAgICAgICByZW1vdmVOb25Gb3JtTGlzdEl0ZW1zKGxpc3QpOworICAgICAg
ICAgICAgJC5lYWNoKHBsYXRmb3JtcywgZnVuY3Rpb24gKGtleSwgbmFtZSkgeworICAgICAgICAg
ICAgICAgIGxpc3QuYXBwZW5kKCc8bGk+JyArIGtleSArICcgOiAnICsgbmFtZSArICc8L2xpPicp
OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBsaXN0LmFwcGVuZCgkKCcjJyArIG5hbWUg
KyAnIHVsIC5mb3JtJykpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKKyQoJyNicmFuY2hlcyBm
b3JtJykuYmluZCgncmVsb2FkJywgY3JlYXRlS2V5TmFtZVJlbG9hZGVyKCdicmFuY2hlcycpKTsK
KyQoJyNwbGF0Zm9ybXMgZm9ybScpLmJpbmQoJ3JlbG9hZCcsIGNyZWF0ZUtleU5hbWVSZWxvYWRl
cigncGxhdGZvcm1zJykpOworCiskKCcjYnVpbGRlcnMgZm9ybScpLmJpbmQoJ3JlbG9hZCcsIGZ1
bmN0aW9uICgpIHsKKyAgICAkLmdldEpTT04oJ2J1aWxkZXJzJywgZnVuY3Rpb24gKGJ1aWxkZXJz
KSB7CisgICAgICAgIHZhciBsaXN0ID0gJCgnI2J1aWxkZXJzIHVsJyk7CisgICAgICAgIHJlbW92
ZU5vbkZvcm1MaXN0SXRlbXMobGlzdCk7CisgICAgICAgIGJ1aWxkZXJzID0gYnVpbGRlcnMuc29y
dCgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkZXJzLmxlbmd0aDsgaSsrKQor
ICAgICAgICAgICAgbGlzdC5hcHBlbmQoJzxsaT48YSBocmVmPSJodHRwOi8vYnVpbGQud2Via2l0
Lm9yZy9idWlsZGVycy8nICsgYnVpbGRlcnNbaV0gKyAnIj4nICsgYnVpbGRlcnNbaV0gKyAnPC9h
PjwvbGk+Jyk7CisgICAgICAgIGxpc3QuYXBwZW5kKCQoJyNidWlsZGVycyB1bCAuZm9ybScpKTsK
KyAgICB9KTsKK30pOworCiskKCcjdGVzdHMgZm9ybScpLmJpbmQoJ3JlbG9hZCcsIGZ1bmN0aW9u
ICgpIHsKKyAgICAkLmdldEpTT04oJ3Rlc3RzJywgZnVuY3Rpb24gKHRlc3RzKSB7CisgICAgICAg
IHZhciBsaXN0ID0gJCgnI3Rlc3RzIHVsJyk7CisgICAgICAgIHJlbW92ZU5vbkZvcm1MaXN0SXRl
bXMobGlzdCk7CisgICAgICAgIHZhciBzZWxlY3QgPSAkKCcjdGVzdHMgc2VsZWN0Jyk7CisgICAg
ICAgIHNlbGVjdC5jaGlsZHJlbigpLnJlbW92ZSgpOworCisgICAgICAgIHRlc3RzID0gdGVzdHMu
c29ydCgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgICAgICBsaXN0LmFwcGVuZCgnPGxpPicgKyB0ZXN0c1tpXSArICc8L2xpPicpOyAv
LyBGSVhNRTogQWRkIGEgbGluayB0byB0cmFjIHBhZ2UuCisgICAgICAgICAgICBzZWxlY3QuYXBw
ZW5kKCc8b3B0aW9uIHZhbHVlPSInICsgdGVzdHNbaV0gKyAnIj4nICsgdGVzdHNbaV0gKyAnPC9v
cHRpb24+Jyk7CisgICAgICAgIH0KKworICAgICAgICBsaXN0LmFwcGVuZCgkKCcjdGVzdHMgdWwg
LmZvcm0nKSk7CisgICAgfSk7Cit9KTsKKworJC5hamF4U2V0dXAoeworICAgICdlcnJvcic6IGZ1
bmN0aW9uKHhociwgZSwgbWVzc2FnZSkgeyBjb25zb2xlLmxvZyh4aHIpOyBlcnJvcignRmFpbGVk
IHdpdGggSFRUUCBzdGF0dXM6ICcgKyB4aHIuc3RhdHVzLCBlKTsgfSwKKyAgICBjYWNoZTogdHJ1
ZSwKK30pOworCiskKCdmb3JtJykudHJpZ2dlcigncmVsb2FkJyk7CisKKyQoJ2Zvcm0nKS5iaW5k
KCdzdWJtaXQnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OworCisgICAgdmFyIGNvbnRlbnRzID0ge30KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
ZWxlbWVudHMubGVuZ3RoOyBpKyspCisgICAgICAgIGNvbnRlbnRzW3RoaXMuZWxlbWVudHNbaV0u
bmFtZV0gPSB0aGlzLmVsZW1lbnRzW2ldLnZhbHVlOworCisgICAgdmFyIHhociA9IG5ldyBYTUxI
dHRwUmVxdWVzdDsKKyAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewor
ICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgIT0gNCkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgaWYgKHhoci5zdGF0dXMgIT0gMjAwKQorICAgICAgICAgICAgZXJyb3IoJ0hUVFAgc3Rh
dHVzOiAnICsgeGhyLnN0YXR1cyk7CisgICAgICAgIGVsc2UgaWYgKHhoci5yZXNwb25zZVRleHQg
IT0gJ09LJykKKyAgICAgICAgICAgIGVycm9yKHhoci5yZXNwb25zZVRleHQpOworICAgICAgICAK
KyAgICB9CisgICAgeGhyLm9wZW4odGhpcy5tZXRob2QsIHRoaXMuYWN0aW9uLCB0cnVlKTsKKyAg
ICB4aHIuc2VuZChKU09OLnN0cmluZ2lmeShjb250ZW50cykpOworCisgICAgJCh0aGlzKS50cmln
Z2VyKCdyZWxvYWQnKTsKK30pOwpJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5j
b20vanMvY29uZmlnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNw
b3QuY29tL2pzL2NvbmZpZy5qcwkocmV2aXNpb24gMTA4NTUxKQorKysgV2Vic2l0ZXMvd2Via2l0
LXBlcmYuYXBwc3BvdC5jb20vanMvY29uZmlnLmpzCSh3b3JraW5nIGNvcHkpCkBAIC05OSwzICs5
OSwyMSBAQCBmdW5jdGlvbiBmZXRjaERhc2hib2FyZE1hbmlmZXN0KGNhbGxiYWNrCiAgICAgICAg
IGNhbGxiYWNrKGRhc2hib2FyZE1hbmlmZXN0KTsKICAgICB9KTsKIH0KKworKGZ1bmN0aW9uKCkg
eworICAgICQuYWpheFNldHVwKHsKKyAgICAgICAgJ2Vycm9yJzogZnVuY3Rpb24oeGhyLCBlLCBt
ZXNzYWdlKSB7CisgICAgICAgICAgICBlcnJvcignQ291bGQgbm90IGRldGVybWluZSB0aGUgdGhl
IGxvZ2luIHN0YXR1cycsIGUpOworICAgICAgICB9LAorICAgICAgICBjYWNoZTogdHJ1ZSwKKyAg
ICB9KTsKKworICAgICQuZ2V0SlNPTignL2FwaS91c2VyL2lzLWFkbWluJywgZnVuY3Rpb24gKGlz
QWRtaW4pIHsKKyAgICAgICAgaWYgKGlzQWRtaW4pIHsKKyAgICAgICAgICAgICQoJyNoZWFkZXIg
bmF2JykuYXBwZW5kKCc8YSBocmVmPSIvYWRtaW4vIj5BZG1pbjwvYT4nKTsKKyAgICAgICAgICAg
IGlmICghJCgnI2hlYWRlciBuYXYgLnNlbGVjdGVkJykubGVuZ3RoKSB7CisgICAgICAgICAgICAg
ICAgJCgnI2hlYWRlciBuYXYgYScpLmxhc3QoKS5hZGRDbGFzcygnc2VsZWN0ZWQnKQorICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfSkKK30pKCk7CkluZGV4OiBXZWJzaXRlcy93ZWJraXQt
cGVyZi5hcHBzcG90LmNvbS9zdGF0aWMvY3JlYXRlLW1vZGVscy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3N0YXRpYy9jcmVhdGUtbW9kZWxzLmh0
bWwJKHJldmlzaW9uIDEwODU1MSkKKysrIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29t
L3N0YXRpYy9jcmVhdGUtbW9kZWxzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNjkgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkNyZWF0ZSBuZXcgbW9k
ZWxzPC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci1lbSB7IGZvbnQtc3R5bGU6IG5v
cm1hbDsgY29sb3I6IHJlZDsgfQotcHJlIHtib3JkZXI6IHNvbGlkIDFweCBibGFjazsgcGFkZGlu
ZzogNXB4O30KLWgzIHtmb250LXNpemU6IDFlbTt9Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+
Ci08aDE+Q3JlYXRlIG5ldyBtb2RlbHM8L2gxPgotCi08cD5LZXk6IGNhbm9uaWNhbGl6ZWQgbmFt
ZSB1c2VkIGJ5IGJ1aWxkIGJvdHMgYW5kIHN0b3JhZ2UuIE5hbWU6IGh1bWFuIGZyaWVuZGx5IG5h
bWU8L3A+Ci0KLTxoMj5CdWlsZGVyPC9oMj4KLTxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIv
YWRtaW4vY3JlYXRlL2J1aWxkZXIiIG9uc3VibWl0PSJyZXR1cm4gc3VibWl0QnlYSFIodGhpcywg
ZXZlbnQpIj4KLTxsYWJlbCBmb3I9Im5hbWUiPk5hbWUvS2V5PC9sYWJlbD48aW5wdXQgdHlwZT0i
dGV4dCIgbmFtZT0ibmFtZSI+Ci08bGFiZWwgZm9yPSJwYXNzd29yZCI+UGFzc3dvcmQ8L2xhYmVs
PjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiPgotPGJ1dHRvbiB0eXBlPSJz
dWJtaXQiPkNyZWF0ZTwvYnV0dG9uPgotPC9mb3JtPgotCi08aDI+QnJhbmNoPC9oMj4KLTxmb3Jt
IG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvYWRtaW4vY3JlYXRlL2JyYW5jaCIgb25zdWJtaXQ9InJl
dHVybiBzdWJtaXRCeVhIUih0aGlzLCBldmVudCk7Ij4KLTxsYWJlbCBmb3I9ImtleSI+S2V5PC9s
YWJlbD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ia2V5Ij4KLTxsYWJlbCBmb3I9Im5hbWUiPk5h
bWU8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIj4KLTxidXR0b24gdHlwZT0i
c3VibWl0Ij5DcmVhdGU8L2J1dHRvbj4KLTwvZm9ybT4KLQotPGgyPlBsYXRmb3JtPC9oMj4KLTxm
b3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvYWRtaW4vY3JlYXRlL3BsYXRmb3JtIiBvbnN1Ym1p
dD0icmV0dXJuIHN1Ym1pdEJ5WEhSKHRoaXMsIGV2ZW50KSI+Ci08bGFiZWwgZm9yPSJrZXkiPktl
eTwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImtleSI+Ci08bGFiZWwgZm9yPSJuYW1l
Ij5OYW1lPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibmFtZSI+Ci08YnV0dG9uIHR5
cGU9InN1Ym1pdCI+Q3JlYXRlPC9idXR0b24+Ci08L2Zvcm0+Ci0KLTxoMj5SZXN1bHQ6PC9oMj4K
LTxoMz5TdGF0dXMgY29kZTwvaDM+Ci08cCBpZD0ic3RhdHVzIj48L3A+Ci08aDM+SGVhZGVyczwv
aDM+Ci08cHJlIGlkPSJoZWFkZXJzIj48L3ByZT4KLTxoMz5SZXNwb25zZTwvaDM+Ci08cHJlIGlk
PSJyZXNwb25zZSIgbmFtZT0icmVzcG9uc2UiPjwvcHJlPgotPHNjcmlwdD4KLQotJCA9IGZ1bmN0
aW9uIChpZCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyB9Ci0KLWZ1bmN0
aW9uIHN1Ym1pdEJ5WEhSKGZvcm0sIGV2ZW50KSB7Ci0gICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKLQotICAgIHZhciBjb250ZW50cyA9IHt9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3Jt
LmVsZW1lbnRzLmxlbmd0aDsgaSsrKQotICAgICAgICBjb250ZW50c1tmb3JtLmVsZW1lbnRzW2ld
Lm5hbWVdID0gZm9ybS5lbGVtZW50c1tpXS52YWx1ZTsKLQotICAgIHZhciB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3Q7Ci0gICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlICE9IDQpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICQoJ3N0YXR1cycpLmlubmVyVGV4dCA9IHhoci5zdGF0dXM7Ci0gICAgICAgICQoJ2hl
YWRlcnMnKS5pbm5lclRleHQgPSB4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCk7Ci0gICAgICAg
ICQoJ3Jlc3BvbnNlJykuaW5uZXJIVE1MID0geGhyLnJlc3BvbnNlVGV4dDsKLSAgICB9Ci0gICAg
eGhyLm9wZW4oZm9ybS5tZXRob2QsIGZvcm0uYWN0aW9uLCB0cnVlKTsKLSAgICB4aHIuc2VuZChK
U09OLnN0cmluZ2lmeShjb250ZW50cykpOwotfQotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128894</attachid>
            <date>2012-02-25 16:30:05 -0800</date>
            <delta_ts>2012-02-25 17:19:03 -0800</delta_ts>
            <desc>Reverted app.yaml change</desc>
            <filename>bug-79585-20120225163003.patch</filename>
            <type>text/plain</type>
            <size>16824</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEwODkx
MikKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAy
LTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIHBlcmYtby1t
YXRpYyBuZWVkcyBhIGJldHRlciBhZG1pbiBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTU4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIGFkbWluLyB0byByZXBsYWNlIGFkbWlu
L2NyZWF0ZS1tb2RlbHMuaHRtbCBhbmQgYWRtaW4vbWVyZ2UtdGVzdHMuCisKKyAgICAgICAgQWxz
byB1cGRhdGUgTWVyZ2VUZXN0SGFuZGxlciB0byBhY2NlcHQgSlNPTiByZXF1ZXN0cyBhbmQgYWRk
ICJBZG1pbiIgbmF2aWdhdGlvbiBsaW5rIG9uIGFsbCBwYWdlcy4KKworICAgICAgICAqIFdlYnNp
dGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2FkbWluX2hhbmRsZXJzLnB5OiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9jb250cm9sbGVyLnB5Ogor
ICAgICAgICAoUnVuc1VwZGF0ZUhhbmRsZXIucG9zdCk6IEZpeCBhIHJlZ3Jlc3Npb24gZnJvbSBy
MTA4Mzk5LgorICAgICAgICAqIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL2Nzcy9h
ZG1pbi5jc3M6IEFkZGVkLgorICAgICAgICAqIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3Qu
Y29tL2pzL2FkbWluLmpzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5h
cHBzcG90LmNvbS9qcy9jb25maWcuanM6CisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0LXBlcmYu
YXBwc3BvdC5jb20vbWFpbi5weToKKyAgICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBz
cG90LmNvbS9tZXJnZV90ZXN0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIFdlYnNpdGVzL3dl
YmtpdC1wZXJmLmFwcHNwb3QuY29tL21lcmdlX3Rlc3RzX2hhbmRsZXIucHk6CisgICAgICAgIChN
ZXJnZVRlc3RzSGFuZGxlcik6CisgICAgICAgIChNZXJnZVRlc3RzSGFuZGxlci5wb3N0KToKKyAg
ICAgICAgKiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9zdGF0aWM6IFJlbW92ZWQu
CisgICAgICAgICogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vc3RhdGljL2NyZWF0
ZS1tb2RlbHMuaHRtbDogUmVtb3ZlZC4KKwogMjAxMi0wMi0yNCAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJbmNyZW1lbnQgcGVyZi1vLW1hdGljIHZlcnNpb24u
CkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9hZG1pbl9oYW5kbGVycy5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9hZG1pbl9o
YW5kbGVycy5weQkocmV2aXNpb24gMCkKKysrIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3Qu
Y29tL2FkbWluX2hhbmRsZXJzLnB5CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgzIEBACisjIS91
c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoK
KyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgd2ViYXBwMgoraW1w
b3J0IGpzb24KKworZnJvbSBnb29nbGUuYXBwZW5naW5lLmFwaSBpbXBvcnQgdXNlcnMKK2Zyb20g
Z29vZ2xlLmFwcGVuZ2luZS5leHQuZGIgaW1wb3J0IEdxbFF1ZXJ5Citmcm9tIGdvb2dsZS5hcHBl
bmdpbmUuZXh0LndlYmFwcCBpbXBvcnQgdGVtcGxhdGUKKworZnJvbSBtb2RlbHMgaW1wb3J0IEJy
YW5jaAorZnJvbSBtb2RlbHMgaW1wb3J0IEJ1aWxkZXIKK2Zyb20gbW9kZWxzIGltcG9ydCBQbGF0
Zm9ybQorZnJvbSBtb2RlbHMgaW1wb3J0IFJlcG9ydExvZworZnJvbSBtb2RlbHMgaW1wb3J0IFRl
c3QKKworCitjbGFzcyBJc0FkbWluSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RIYW5kbGVyKToKKyAg
ICBkZWYgZ2V0KHNlbGYpOgorICAgICAgICBzZWxmLnJlc3BvbnNlLmhlYWRlcnNbJ0NvbnRlbnQt
VHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nCisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0Lndy
aXRlKCd0cnVlJyBpZiB1c2Vycy5pc19jdXJyZW50X3VzZXJfYWRtaW4oKSBlbHNlICdmYWxzZScp
CisKKworY2xhc3MgQWRtaW5EYXNoYm9hcmRIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIp
OgorICAgIGRlZiBnZXQoc2VsZiwgdGFzayk6CisgICAgICAgIHRhc2tfbWV0aG9kX25hbWUgPSAn
Z2V0XycgKyB0YXNrCisgICAgICAgIGlmIHRhc2tfbWV0aG9kX25hbWUgaW4gZGlyKHNlbGYpIGFu
ZCB0YXNrX21ldGhvZF9uYW1lIG5vdCBpbiBkaXIoc3VwZXIpOgorICAgICAgICAgICAgbWV0aG9k
ID0gZ2V0YXR0cihzZWxmLCB0YXNrX21ldGhvZF9uYW1lKQorICAgICAgICAgICAgcmV0dXJuIG1l
dGhvZCgpCisKKyAgICAgICAgcmVwb3J0X2xvZ190b3RhbCA9IEdxbFF1ZXJ5KCJTRUxFQ1QgX19r
ZXlfXyBGUk9NIFJlcG9ydExvZyIpLmNvdW50KCkKKyAgICAgICAgcmVwb3J0X2xvZ19jb21taXR0
ZWQgPSBHcWxRdWVyeSgiU0VMRUNUIF9fa2V5X18gRlJPTSBSZXBvcnRMb2cgV0hFUkUgY29tbWl0
ID0gVHJ1ZSIpLmNvdW50KCkKKworICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSh0ZW1w
bGF0ZS5yZW5kZXIoJ2FkbWluLmh0bWwnLAorICAgICAgICAgICAgeydyZXBvcnRfbG9nX3RvdGFs
JzogcmVwb3J0X2xvZ190b3RhbCwgJ3JlcG9ydF9sb2dfY29tbWl0dGVkJzogcmVwb3J0X2xvZ19j
b21taXR0ZWR9KSkKKworICAgIGRlZiBnZXRfYnJhbmNoZXMoc2VsZik6CisgICAgICAgIHNlbGYu
cmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbicKKyAg
ICAgICAgcmVzdWx0ID0ge30KKyAgICAgICAgZm9yIGJyYW5jaCBpbiBCcmFuY2guYWxsKCkuZmV0
Y2gobGltaXQ9MTAwKToKKyAgICAgICAgICAgIHJlc3VsdFticmFuY2gua2V5KCkubmFtZSgpXSA9
IGJyYW5jaC5uYW1lCisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKGpzb24uZHVtcHMo
cmVzdWx0KSkKKworICAgIGRlZiBnZXRfcGxhdGZvcm1zKHNlbGYpOgorICAgICAgICBzZWxmLnJl
c3BvbnNlLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb24nCisgICAg
ICAgIHJlc3VsdCA9IHt9CisgICAgICAgIGZvciBwbGF0Zm9ybSBpbiBQbGF0Zm9ybS5hbGwoKS5m
ZXRjaChsaW1pdD0xMDApOgorICAgICAgICAgICAgcmVzdWx0W3BsYXRmb3JtLmtleSgpLm5hbWUo
KV0gPSBwbGF0Zm9ybS5uYW1lCisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKGpzb24u
ZHVtcHMocmVzdWx0KSkKKworICAgIGRlZiBnZXRfYnVpbGRlcnMoc2VsZik6CisgICAgICAgIHNl
bGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbicK
KyAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoanNvbi5kdW1wcyhbYnVpbGRlci5uYW1l
IGZvciBidWlsZGVyIGluIEJ1aWxkZXIuYWxsKCkuZmV0Y2gobGltaXQ9MTAwKV0pKQorCisgICAg
ZGVmIGdldF90ZXN0cyhzZWxmKToKKyAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250
ZW50LVR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJworICAgICAgICBzZWxmLnJlc3BvbnNlLm91
dC53cml0ZShqc29uLmR1bXBzKFt0ZXN0Lm5hbWUgZm9yIHRlc3QgaW4gVGVzdC5hbGwoKS5mZXRj
aChsaW1pdD0yMDApXSkpCkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9j
b250cm9sbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3Qu
Y29tL2NvbnRyb2xsZXIucHkJKHJldmlzaW9uIDEwODU1MSkKKysrIFdlYnNpdGVzL3dlYmtpdC1w
ZXJmLmFwcHNwb3QuY29tL2NvbnRyb2xsZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsx
MTQsNyBAQCBjbGFzcyBSdW5zVXBkYXRlSGFuZGxlcih3ZWJhcHAyLlJlcXVlc3RICiAgICAgZGVm
IGdldChzZWxmKToKICAgICAgICAgc2VsZi5wb3N0KCkKIAotICAgIGRlZiBnZXQoc2VsZik6Cisg
ICAgZGVmIHBvc3Qoc2VsZik6CiAgICAgICAgIHNlbGYucmVzcG9uc2UuaGVhZGVyc1snQ29udGVu
dC1UeXBlJ10gPSAndGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOCcKICAgICAgICAgdGVzdF9pZCwg
YnJhbmNoX2lkLCBwbGF0Zm9ybV9pZCA9IF9nZXRfdGVzdF9icmFuY2hfcGxhdGZvcm1faWRzKHNl
bGYpCiAKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21haW4ucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vbWFpbi5weQkocmV2
aXNpb24gMTA4NTUxKQorKysgV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vbWFpbi5w
eQkod29ya2luZyBjb3B5KQpAQCAtMjAsNiArMjAsOCBAQCBmcm9tIGdvb2dsZS5hcHBlbmdpbmUu
ZXh0LndlYmFwcCBpbXBvcnQgCiAKIGltcG9ydCBqc29uCiAKK2Zyb20gYWRtaW5faGFuZGxlcnMg
aW1wb3J0IElzQWRtaW5IYW5kbGVyCitmcm9tIGFkbWluX2hhbmRsZXJzIGltcG9ydCBBZG1pbkRh
c2hib2FyZEhhbmRsZXIKIGZyb20gY29udHJvbGxlciBpbXBvcnQgQ2FjaGVkRGFzaGJvYXJkSGFu
ZGxlcgogZnJvbSBjb250cm9sbGVyIGltcG9ydCBDYWNoZWRNYW5pZmVzdEhhbmRsZXIKIGZyb20g
Y29udHJvbGxlciBpbXBvcnQgQ2FjaGVkUnVuc0hhbmRsZXIKQEAgLTM4LDYgKzQwLDggQEAgcm91
dGVzID0gWwogICAgICgnL2FkbWluL21lcmdlLXRlc3RzLz8nLCBNZXJnZVRlc3RzSGFuZGxlciks
CiAgICAgKCcvYWRtaW4vcmVwb3J0LWxvZ3MvPycsIFJlcG9ydExvZ3NIYW5kbGVyKSwKICAgICAo
Jy9hZG1pbi9jcmVhdGUvKC4qKScsIENyZWF0ZUhhbmRsZXIpLAorICAgIChyJy9hZG1pbi8oW0Et
WmEtelwtXSopJywgQWRtaW5EYXNoYm9hcmRIYW5kbGVyKSwKKyAgICAoJy9hcGkvdXNlci9pcy1h
ZG1pbicsIElzQWRtaW5IYW5kbGVyKSwKICAgICAoJy9hcGkvdGVzdC8/JywgQ2FjaGVkTWFuaWZl
c3RIYW5kbGVyKSwKICAgICAoJy9hcGkvdGVzdC91cGRhdGUnLCBNYW5pZmVzdFVwZGF0ZUhhbmRs
ZXIpLAogICAgICgnL2FwaS90ZXN0L3JlcG9ydC8/JywgUmVwb3J0SGFuZGxlciksCkluZGV4OiBX
ZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9tZXJnZV90ZXN0cy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21lcmdlX3Rlc3RzLmh0bWwJ
KHJldmlzaW9uIDEwODU1MSkKKysrIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21l
cmdlX3Rlc3RzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjUgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxib2R5PgotPGgxPk1lcmdlIHRlc3RzPC9oMT4KLTxmb3JtIG1ldGhv
ZD0icG9zdCIgYWN0aW9uPSIvYWRtaW4vbWVyZ2UtdGVzdHMiPgotCi08bGFiZWwgZm9yPSJtZXJn
ZSI+TWVyZ2U8L2xhYmVsPjoKLTxzZWxlY3QgaWQ9Im1lcmdlIiBuYW1lPSJtZXJnZSI+Ci17JSBm
b3IgdGVzdCBpbiB0ZXN0cyAlfQotICAgIDxvcHRpb24gdmFsdWU9Int7IHRlc3QubmFtZSB9fSI+
e3sgdGVzdC5uYW1lIH19PC9vcHRpb24+Ci17JSBlbmRmb3IgJX0KLTwvc2VsZWN0PgotCi08bGFi
ZWwgZm9yPSJpbnRvIj5JbnRvPC9sYWJlbD46Ci08c2VsZWN0IGlkPSJpbnRvIiBuYW1lPSJpbnRv
Ij4KLXslIGZvciB0ZXN0IGluIHRlc3RzICV9Ci0gICAgPG9wdGlvbiB2YWx1ZT0ie3sgdGVzdC5u
YW1lIH19Ij57eyB0ZXN0Lm5hbWUgfX08L29wdGlvbj4KLXslIGVuZGZvciAlfQotPC9zZWxlY3Q+
Ci0KLTxidXR0b24gdHlwZT0ic3VibWl0Ij5NZXJnZTwvYnV0dG9uPgotCi08L2Zvcm0+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9tZXJn
ZV90ZXN0c19oYW5kbGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFw
cHNwb3QuY29tL21lcmdlX3Rlc3RzX2hhbmRsZXIucHkJKHJldmlzaW9uIDEwODU1MSkKKysrIFdl
YnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL21lcmdlX3Rlc3RzX2hhbmRsZXIucHkJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIGltcG9ydCB3ZWJhcHAyCiBmcm9tIGdvb2ds
ZS5hcHBlbmdpbmUuZXh0LndlYmFwcCBpbXBvcnQgdGVtcGxhdGUKIAoraW1wb3J0IGpzb24KIGlt
cG9ydCBvcwogCiBmcm9tIGNvbnRyb2xsZXIgaW1wb3J0IHNjaGVkdWxlX3J1bnNfdXBkYXRlCkBA
IC00MSwxNCArNDIsMTkgQEAgZnJvbSBtb2RlbHMgaW1wb3J0IGRlbGV0ZV9tb2RlbF93aXRoX251
bQogCiAKIGNsYXNzIE1lcmdlVGVzdHNIYW5kbGVyKHdlYmFwcDIuUmVxdWVzdEhhbmRsZXIpOgot
ICAgIGRlZiBnZXQoc2VsZik6Ci0gICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKHRlbXBs
YXRlLnJlbmRlcignbWVyZ2VfdGVzdHMuaHRtbCcsIHsndGVzdHMnOiBUZXN0LmFsbCgpfSkpCi0K
ICAgICBkZWYgcG9zdChzZWxmKToKICAgICAgICAgc2VsZi5yZXNwb25zZS5oZWFkZXJzWydDb250
ZW50LVR5cGUnXSA9ICd0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04JzsKIAotICAgICAgICBtZXJn
ZSA9IFRlc3QuZ2V0X2J5X2tleV9uYW1lKHNlbGYucmVxdWVzdC5nZXQoJ21lcmdlJykpCi0gICAg
ICAgIGludG8gPSBUZXN0LmdldF9ieV9rZXlfbmFtZShzZWxmLnJlcXVlc3QuZ2V0KCdpbnRvJykp
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBheWxvYWQgPSBqc29uLmxvYWRzKHNlbGYucmVx
dWVzdC5ib2R5KQorICAgICAgICAgICAgbWVyZ2UgPSBwYXlsb2FkLmdldCgnbWVyZ2UnLCAnJykK
KyAgICAgICAgICAgIGludG8gPSBwYXlsb2FkLmdldCgnaW50bycsICcnKQorICAgICAgICBleGNl
cHQ6CisgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgiRmFpbGVkIHRvIHBhcnNl
IHRoZSBwYXlsb2FkOiAlcyIgJSBzZWxmLnJlcXVlc3QuYm9keSkKKyAgICAgICAgICAgIHJldHVy
bgorCisgICAgICAgIG1lcmdlID0gVGVzdC5nZXRfYnlfa2V5X25hbWUobWVyZ2UpCisgICAgICAg
IGludG8gPSBUZXN0LmdldF9ieV9rZXlfbmFtZShpbnRvKQogICAgICAgICBpZiBub3QgbWVyZ2Ug
b3Igbm90IGludG86CiAgICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgnSW52YWxp
ZCB0ZXN0IG5hbWVzJykKICAgICAgICAgICAgIHJldHVybgpJbmRleDogV2Vic2l0ZXMvd2Via2l0
LXBlcmYuYXBwc3BvdC5jb20vY3NzL2FkbWluLmNzcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93
ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9jc3MvYWRtaW4uY3NzCShyZXZpc2lvbiAwKQorKysgV2Vi
c2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vY3NzL2FkbWluLmNzcwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw4NiBAQAoraHRtbCB7CisgICAgcGFkZGluZzogMHB4OworICAgIG1hcmdpbjog
MHB4OworfQorCisjc3VtbWFyeSB7CisgICAgbWFyZ2luLXRvcDogNDlweDsKKyAgICBmb250LXNp
emU6IDE0cHg7CisgICAgbGluZS1oZWlnaHQ6IDM2cHg7CisgICAgZGlzcGxheTogdGFibGU7Cisg
ICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKK30KKworc2VjdGlvbiB7CisgICAgZGlzcGxh
eTogdGFibGUtY2VsbDsKKyAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKKyAgICBib3JkZXI6IDFweCBz
b2xpZCBsaWdodGdyZXk7CisgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKKyAgICBtaW4t
aGVpZ2h0OiAzMDBweDsKKyAgICBtYXgtd2lkdGg6IDQwMHB4OworfQorCitoMiB7CisgICAgY2xl
YXI6IGJvdGg7CisgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoLTkwZGVnLCAj
ZjhmOGY4LCAjZTdlN2U3KTsKKyAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVh
ciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKCNmOGY4ZjgpLCB0bygjZTdlN2U3KSk7Cisg
ICAgcGFkZGluZzogMCAxMHB4OworICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCBsaWdodGdy
ZXk7Cit9CisKK2RsLCBzZWN0aW9uID4gdWwgPiBsaSB7CisgICAgcGFkZGluZzogMCAxMHB4Owor
fQorCitkdCwgZGQgeworICAgIGZsb2F0OiBsZWZ0OworfQorCitkdCB7CisgICAgdGV4dC1hbGln
bjogcmlnaHQ7CisgICAgY2xlYXI6IGJvdGg7Cit9CisKK2R0OmFmdGVyIHsKKyAgICBjb250ZW50
OiAiIDogIjsKK30KKworZGQgeworICAgIHRleHQtaW5kZW50OiAwLjVleDsKK30KKworLmNvdW50
cyBkdCB7CisgICAgd2lkdGg6IDEwMHB4OworfQorCisuY291bnRzIGRkIHsKKyAgICB3aWR0aDog
NTBweDsKK30KKworbGkuZm9ybSB7CisgICAgcGFkZGluZzogMDsKKyAgICBib3JkZXItdG9wOiBz
b2xpZCAxcHggbGlnaHRncmV5OworfQorCitmb3JtIHsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsK
KyAgICBwYWRkaW5nOiAxMHB4OworfQorCitpbnB1dCB7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
Zm9udC1zaXplOiAxNHB4OworICAgIGJvcmRlcjogc29saWQgMXB4IGxpZ2h0Z3JleTsKK30KKwor
Zm9ybSBkdCB7CisgICAgd2lkdGg6IDcwcHg7Cit9CisKK2Zvcm0gZGQgeworICAgIHdpZHRoOiAx
NTBweDsKK30KKworI2Zvb3RlciB7CisgICAgbWFyZ2luOiAxMHB4OworfQpJbmRleDogV2Vic2l0
ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vanMvYWRtaW4uanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
c2l0ZXMvd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vanMvYWRtaW4uanMJKHJldmlzaW9uIDApCisr
KyBXZWJzaXRlcy93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9qcy9hZG1pbi5qcwkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw4MCBAQAorZnVuY3Rpb24gcmVtb3ZlTm9uRm9ybUxpc3RJdGVtcyhsaXN0
KSB7CisgICAgbGlzdC5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAo
JC5pbkFycmF5KCdmb3JtJywgdGhpcy5jbGFzc0xpc3QpKQorICAgICAgICAgICAgJCh0aGlzKS5y
ZW1vdmUoKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlS2V5TmFtZVJlbG9hZGVyKG5h
bWUpIHsKKyAgICByZXR1cm4gZnVuY3Rpb24gKCkgeworICAgICAgICAkLmdldEpTT04obmFtZSwg
ZnVuY3Rpb24gKHBsYXRmb3JtcykgeworICAgICAgICAgICAgdmFyIGxpc3QgPSAkKCcjJyArIG5h
bWUgKyAnIHVsJyk7CisgICAgICAgICAgICByZW1vdmVOb25Gb3JtTGlzdEl0ZW1zKGxpc3QpOwor
ICAgICAgICAgICAgJC5lYWNoKHBsYXRmb3JtcywgZnVuY3Rpb24gKGtleSwgbmFtZSkgeworICAg
ICAgICAgICAgICAgIGxpc3QuYXBwZW5kKCc8bGk+JyArIGtleSArICcgOiAnICsgbmFtZSArICc8
L2xpPicpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBsaXN0LmFwcGVuZCgkKCcjJyAr
IG5hbWUgKyAnIHVsIC5mb3JtJykpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKKyQoJyNicmFu
Y2hlcyBmb3JtJykuYmluZCgncmVsb2FkJywgY3JlYXRlS2V5TmFtZVJlbG9hZGVyKCdicmFuY2hl
cycpKTsKKyQoJyNwbGF0Zm9ybXMgZm9ybScpLmJpbmQoJ3JlbG9hZCcsIGNyZWF0ZUtleU5hbWVS
ZWxvYWRlcigncGxhdGZvcm1zJykpOworCiskKCcjYnVpbGRlcnMgZm9ybScpLmJpbmQoJ3JlbG9h
ZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAkLmdldEpTT04oJ2J1aWxkZXJzJywgZnVuY3Rpb24gKGJ1
aWxkZXJzKSB7CisgICAgICAgIHZhciBsaXN0ID0gJCgnI2J1aWxkZXJzIHVsJyk7CisgICAgICAg
IHJlbW92ZU5vbkZvcm1MaXN0SXRlbXMobGlzdCk7CisgICAgICAgIGJ1aWxkZXJzID0gYnVpbGRl
cnMuc29ydCgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkZXJzLmxlbmd0aDsg
aSsrKQorICAgICAgICAgICAgbGlzdC5hcHBlbmQoJzxsaT48YSBocmVmPSJodHRwOi8vYnVpbGQu
d2Via2l0Lm9yZy9idWlsZGVycy8nICsgYnVpbGRlcnNbaV0gKyAnIj4nICsgYnVpbGRlcnNbaV0g
KyAnPC9hPjwvbGk+Jyk7CisgICAgICAgIGxpc3QuYXBwZW5kKCQoJyNidWlsZGVycyB1bCAuZm9y
bScpKTsKKyAgICB9KTsKK30pOworCiskKCcjdGVzdHMgZm9ybScpLmJpbmQoJ3JlbG9hZCcsIGZ1
bmN0aW9uICgpIHsKKyAgICAkLmdldEpTT04oJ3Rlc3RzJywgZnVuY3Rpb24gKHRlc3RzKSB7Cisg
ICAgICAgIHZhciBsaXN0ID0gJCgnI3Rlc3RzIHVsJyk7CisgICAgICAgIHJlbW92ZU5vbkZvcm1M
aXN0SXRlbXMobGlzdCk7CisgICAgICAgIHZhciBzZWxlY3QgPSAkKCcjdGVzdHMgc2VsZWN0Jyk7
CisgICAgICAgIHNlbGVjdC5jaGlsZHJlbigpLnJlbW92ZSgpOworCisgICAgICAgIHRlc3RzID0g
dGVzdHMuc29ydCgpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsg
aSsrKSB7CisgICAgICAgICAgICBsaXN0LmFwcGVuZCgnPGxpPicgKyB0ZXN0c1tpXSArICc8L2xp
PicpOyAvLyBGSVhNRTogQWRkIGEgbGluayB0byB0cmFjIHBhZ2UuCisgICAgICAgICAgICBzZWxl
Y3QuYXBwZW5kKCc8b3B0aW9uIHZhbHVlPSInICsgdGVzdHNbaV0gKyAnIj4nICsgdGVzdHNbaV0g
KyAnPC9vcHRpb24+Jyk7CisgICAgICAgIH0KKworICAgICAgICBsaXN0LmFwcGVuZCgkKCcjdGVz
dHMgdWwgLmZvcm0nKSk7CisgICAgfSk7Cit9KTsKKworJC5hamF4U2V0dXAoeworICAgICdlcnJv
cic6IGZ1bmN0aW9uKHhociwgZSwgbWVzc2FnZSkgeyBjb25zb2xlLmxvZyh4aHIpOyBlcnJvcign
RmFpbGVkIHdpdGggSFRUUCBzdGF0dXM6ICcgKyB4aHIuc3RhdHVzLCBlKTsgfSwKKyAgICBjYWNo
ZTogdHJ1ZSwKK30pOworCiskKCdmb3JtJykudHJpZ2dlcigncmVsb2FkJyk7CisKKyQoJ2Zvcm0n
KS5iaW5kKCdzdWJtaXQnLCBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICBldmVudC5wcmV2ZW50RGVm
YXVsdCgpOworCisgICAgdmFyIGNvbnRlbnRzID0ge30KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuZWxlbWVudHMubGVuZ3RoOyBpKyspCisgICAgICAgIGNvbnRlbnRzW3RoaXMuZWxlbWVu
dHNbaV0ubmFtZV0gPSB0aGlzLmVsZW1lbnRzW2ldLnZhbHVlOworCisgICAgdmFyIHhociA9IG5l
dyBYTUxIdHRwUmVxdWVzdDsKKyAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24g
KCkgeworICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgIT0gNCkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKHhoci5zdGF0dXMgIT0gMjAwKQorICAgICAgICAgICAgZXJyb3IoJ0hU
VFAgc3RhdHVzOiAnICsgeGhyLnN0YXR1cyk7CisgICAgICAgIGVsc2UgaWYgKHhoci5yZXNwb25z
ZVRleHQgIT0gJ09LJykKKyAgICAgICAgICAgIGVycm9yKHhoci5yZXNwb25zZVRleHQpOworICAg
ICAgICAKKyAgICB9CisgICAgeGhyLm9wZW4odGhpcy5tZXRob2QsIHRoaXMuYWN0aW9uLCB0cnVl
KTsKKyAgICB4aHIuc2VuZChKU09OLnN0cmluZ2lmeShjb250ZW50cykpOworCisgICAgJCh0aGlz
KS50cmlnZ2VyKCdyZWxvYWQnKTsKK30pOwpJbmRleDogV2Vic2l0ZXMvd2Via2l0LXBlcmYuYXBw
c3BvdC5jb20vanMvY29uZmlnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJm
LmFwcHNwb3QuY29tL2pzL2NvbmZpZy5qcwkocmV2aXNpb24gMTA4NTUxKQorKysgV2Vic2l0ZXMv
d2Via2l0LXBlcmYuYXBwc3BvdC5jb20vanMvY29uZmlnLmpzCSh3b3JraW5nIGNvcHkpCkBAIC05
OSwzICs5OSwyMSBAQCBmdW5jdGlvbiBmZXRjaERhc2hib2FyZE1hbmlmZXN0KGNhbGxiYWNrCiAg
ICAgICAgIGNhbGxiYWNrKGRhc2hib2FyZE1hbmlmZXN0KTsKICAgICB9KTsKIH0KKworKGZ1bmN0
aW9uKCkgeworICAgICQuYWpheFNldHVwKHsKKyAgICAgICAgJ2Vycm9yJzogZnVuY3Rpb24oeGhy
LCBlLCBtZXNzYWdlKSB7CisgICAgICAgICAgICBlcnJvcignQ291bGQgbm90IGRldGVybWluZSB0
aGUgdGhlIGxvZ2luIHN0YXR1cycsIGUpOworICAgICAgICB9LAorICAgICAgICBjYWNoZTogdHJ1
ZSwKKyAgICB9KTsKKworICAgICQuZ2V0SlNPTignL2FwaS91c2VyL2lzLWFkbWluJywgZnVuY3Rp
b24gKGlzQWRtaW4pIHsKKyAgICAgICAgaWYgKGlzQWRtaW4pIHsKKyAgICAgICAgICAgICQoJyNo
ZWFkZXIgbmF2JykuYXBwZW5kKCc8YSBocmVmPSIvYWRtaW4vIj5BZG1pbjwvYT4nKTsKKyAgICAg
ICAgICAgIGlmICghJCgnI2hlYWRlciBuYXYgLnNlbGVjdGVkJykubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgJCgnI2hlYWRlciBuYXYgYScpLmxhc3QoKS5hZGRDbGFzcygnc2VsZWN0ZWQnKQor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSkKK30pKCk7CkluZGV4OiBXZWJzaXRlcy93
ZWJraXQtcGVyZi5hcHBzcG90LmNvbS9zdGF0aWMvY3JlYXRlLW1vZGVscy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tL3N0YXRpYy9jcmVhdGUtbW9k
ZWxzLmh0bWwJKHJldmlzaW9uIDEwODU1MSkKKysrIFdlYnNpdGVzL3dlYmtpdC1wZXJmLmFwcHNw
b3QuY29tL3N0YXRpYy9jcmVhdGUtbW9kZWxzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNjkg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkNyZWF0ZSBu
ZXcgbW9kZWxzPC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci1lbSB7IGZvbnQtc3R5
bGU6IG5vcm1hbDsgY29sb3I6IHJlZDsgfQotcHJlIHtib3JkZXI6IHNvbGlkIDFweCBibGFjazsg
cGFkZGluZzogNXB4O30KLWgzIHtmb250LXNpemU6IDFlbTt9Ci08L3N0eWxlPgotPC9oZWFkPgot
PGJvZHk+Ci08aDE+Q3JlYXRlIG5ldyBtb2RlbHM8L2gxPgotCi08cD5LZXk6IGNhbm9uaWNhbGl6
ZWQgbmFtZSB1c2VkIGJ5IGJ1aWxkIGJvdHMgYW5kIHN0b3JhZ2UuIE5hbWU6IGh1bWFuIGZyaWVu
ZGx5IG5hbWU8L3A+Ci0KLTxoMj5CdWlsZGVyPC9oMj4KLTxmb3JtIG1ldGhvZD0icG9zdCIgYWN0
aW9uPSIvYWRtaW4vY3JlYXRlL2J1aWxkZXIiIG9uc3VibWl0PSJyZXR1cm4gc3VibWl0QnlYSFIo
dGhpcywgZXZlbnQpIj4KLTxsYWJlbCBmb3I9Im5hbWUiPk5hbWUvS2V5PC9sYWJlbD48aW5wdXQg
dHlwZT0idGV4dCIgbmFtZT0ibmFtZSI+Ci08bGFiZWwgZm9yPSJwYXNzd29yZCI+UGFzc3dvcmQ8
L2xhYmVsPjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiPgotPGJ1dHRvbiB0
eXBlPSJzdWJtaXQiPkNyZWF0ZTwvYnV0dG9uPgotPC9mb3JtPgotCi08aDI+QnJhbmNoPC9oMj4K
LTxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvYWRtaW4vY3JlYXRlL2JyYW5jaCIgb25zdWJt
aXQ9InJldHVybiBzdWJtaXRCeVhIUih0aGlzLCBldmVudCk7Ij4KLTxsYWJlbCBmb3I9ImtleSI+
S2V5PC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ia2V5Ij4KLTxsYWJlbCBmb3I9Im5h
bWUiPk5hbWU8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIj4KLTxidXR0b24g
dHlwZT0ic3VibWl0Ij5DcmVhdGU8L2J1dHRvbj4KLTwvZm9ybT4KLQotPGgyPlBsYXRmb3JtPC9o
Mj4KLTxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvYWRtaW4vY3JlYXRlL3BsYXRmb3JtIiBv
bnN1Ym1pdD0icmV0dXJuIHN1Ym1pdEJ5WEhSKHRoaXMsIGV2ZW50KSI+Ci08bGFiZWwgZm9yPSJr
ZXkiPktleTwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImtleSI+Ci08bGFiZWwgZm9y
PSJuYW1lIj5OYW1lPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibmFtZSI+Ci08YnV0
dG9uIHR5cGU9InN1Ym1pdCI+Q3JlYXRlPC9idXR0b24+Ci08L2Zvcm0+Ci0KLTxoMj5SZXN1bHQ6
PC9oMj4KLTxoMz5TdGF0dXMgY29kZTwvaDM+Ci08cCBpZD0ic3RhdHVzIj48L3A+Ci08aDM+SGVh
ZGVyczwvaDM+Ci08cHJlIGlkPSJoZWFkZXJzIj48L3ByZT4KLTxoMz5SZXNwb25zZTwvaDM+Ci08
cHJlIGlkPSJyZXNwb25zZSIgbmFtZT0icmVzcG9uc2UiPjwvcHJlPgotPHNjcmlwdD4KLQotJCA9
IGZ1bmN0aW9uIChpZCkgeyByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyB9Ci0K
LWZ1bmN0aW9uIHN1Ym1pdEJ5WEhSKGZvcm0sIGV2ZW50KSB7Ci0gICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKLQotICAgIHZhciBjb250ZW50cyA9IHt9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBmb3JtLmVsZW1lbnRzLmxlbmd0aDsgaSsrKQotICAgICAgICBjb250ZW50c1tmb3JtLmVsZW1l
bnRzW2ldLm5hbWVdID0gZm9ybS5lbGVtZW50c1tpXS52YWx1ZTsKLQotICAgIHZhciB4aHIgPSBu
ZXcgWE1MSHR0cFJlcXVlc3Q7Ci0gICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlICE9IDQpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICQoJ3N0YXR1cycpLmlubmVyVGV4dCA9IHhoci5zdGF0dXM7Ci0gICAgICAg
ICQoJ2hlYWRlcnMnKS5pbm5lclRleHQgPSB4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCk7Ci0g
ICAgICAgICQoJ3Jlc3BvbnNlJykuaW5uZXJIVE1MID0geGhyLnJlc3BvbnNlVGV4dDsKLSAgICB9
Ci0gICAgeGhyLm9wZW4oZm9ybS5tZXRob2QsIGZvcm0uYWN0aW9uLCB0cnVlKTsKLSAgICB4aHIu
c2VuZChKU09OLnN0cmluZ2lmeShjb250ZW50cykpOwotfQotCi08L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4K
</data>
<flag name="review"
          id="131399"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>