<?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>60993</bug_id>
          
          <creation_ts>2011-05-17 15:01:44 -0700</creation_ts>
          <short_desc>Refactor queues.webkit.org&apos;s locktable to deal with LockEntry objects (and teach it about bot_id)</short_desc>
          <delta_ts>2017-07-18 08:30:21 -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>NEW</bug_status>
          <resolution></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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>levin</cc>
    
    <cc>mihaip</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>405314</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-17 15:01:44 -0700</bug_when>
    <thetext>Refactor queues.webkit.org&apos;s locktable to deal with LockEntry objects (and teach it about bot_id)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405315</commentid>
    <comment_count>1</comment_count>
      <attachid>93823</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-17 15:02:30 -0700</bug_when>
    <thetext>Created attachment 93823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405321</commentid>
    <comment_count>2</comment_count>
      <attachid>93825</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-17 15:08:59 -0700</bug_when>
    <thetext>Created attachment 93825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405326</commentid>
    <comment_count>3</comment_count>
      <attachid>93825</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-17 15:15:55 -0700</bug_when>
    <thetext>Comment on attachment 93825
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=93825&amp;action=review

I&apos;m so unfamiliar with this code that it would take me a long time to parse this.

&gt; Tools/ChangeLog:13
&gt; +        It also became clear that we need to clean up who&apos;s responsibility

s/who&apos;s/whose/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405416</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-17 17:20:24 -0700</bug_when>
    <thetext>That&apos;s fine.  Perfectly valid feedback is always &quot;this is too complicated, you need to do it in smaller pieces&quot;. :) I&apos;ll see if I can walk through it with Adam in person tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484469</commentid>
    <comment_count>5</comment_count>
      <attachid>93825</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-14 22:46:12 -0700</bug_when>
    <thetext>Comment on attachment 93825
Patch

Clearing review flag to remove this from pending-review.  Please feel encouraged to discuss this patch with me in person if you still think there&apos;s a problem to solve here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93823</attachid>
            <date>2011-05-17 15:02:30 -0700</date>
            <delta_ts>2011-05-17 15:08:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60993-20110517150227.patch</filename>
            <type>text/plain</type>
            <size>16302</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY3MDQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MTQxMDk5Y2Y2ZjIwMTg4NmExZTI4ODljNjNiYjlkY2Q5
MjdjNjI0Li5mMGNhZTIzMzI3OGMxMDMwNGIxMGZjMjQ4MzY3ZDc0NmM5OThiZGRlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTEtMDUtMTcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIHF1ZXVlcy53
ZWJraXQub3JnJ3MgbG9ja3RhYmxlIHRvIGRlYWwgd2l0aCBMb2NrRW50cnkgb2JqZWN0cyAoYW5k
IHRlYWNoIGl0IGFib3V0IGJvdF9pZCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYwOTkzCisKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5k
bGVycy9uZXh0cGF0Y2gucHk6CisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMv
cXVldWVzdGF0dXMucHk6CisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvcmVs
ZWFzZXBhdGNoLnB5OgorICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2luZGV4LnlhbWw6Cisg
ICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvYWN0aXZld29ya2l0ZW1zLnB5OgorICAg
ICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL21vZGVsL2FjdGl2ZXdvcmtpdGVtc191bml0dGVzdC5w
eToKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXMucHk6CisgICAgICAg
ICogUXVldWVTdGF0dXNTZXJ2ZXIvdGVtcGxhdGVzL3F1ZXVlc3RhdHVzLmh0bWw6CisKIDIwMTEt
MDUtMTcgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBPamFuIFZhZmFpLgpkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFu
ZGxlcnMvbmV4dHBhdGNoLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvbmV4
dHBhdGNoLnB5CmluZGV4IDVmNmQ3MWRhZGZiODlhMjBmNTUzOThhOTdmM2NiMjZiY2VmN2Y5MjUu
LjYyMDI5NjRiMTliOTlmZTZlNTBmNTY0MGI0ZjFiZjljMzY4MWMwNGIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL25leHRwYXRjaC5weQorKysgYi9Ub29scy9R
dWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9uZXh0cGF0Y2gucHkKQEAgLTI2LDM0ICsyNiwyMyBA
QAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotZnJvbSBkYXRldGltZSBpbXBvcnQg
ZGF0ZXRpbWUKLQotZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dCBpbXBvcnQgZGIKIGZyb20gZ29v
Z2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IHdlYmFwcAogCiBmcm9tIG1vZGVsLnF1ZXVlcyBpbXBv
cnQgUXVldWUKIAogCiBjbGFzcyBOZXh0UGF0Y2god2ViYXBwLlJlcXVlc3RIYW5kbGVyKToKLSAg
ICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBhIHBvc3QsIG9yIGFuIGV4cGxpY3Qg
bG9ja19wYXRjaAotICAgICMgc2luY2UgR0VUIHJlcXVlc3RzIHNob3VsZG4ndCByZWFsbHkgbW9k
aWZ5IHRoZSBkYXRhc3RvcmUuCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgUE9TVCwgb3Ig
YW4gZXhwbGljdCBsb2NrX3BhdGNoCisgICAgIyBHRVQgcmVxdWVzdHMgc2hvdWxkIE5PVCBtb2Rp
ZnkgdGhlIGRhdGFzdG9yZQorICAgICMgYXMtaXMsIHRlc3RpbmcgdGhpcyBpbiBDaHJvbWUgZGlm
ZmljdWx0IGR1ZSB1cmwgcHJlZmV0Y2ghCiAgICAgZGVmIGdldChzZWxmLCBxdWV1ZV9uYW1lKToK
ICAgICAgICAgcXVldWUgPSBRdWV1ZS5xdWV1ZV93aXRoX25hbWUocXVldWVfbmFtZSkKKyAgICAg
ICAgYm90X2lkID0gc2VsZi5yZXF1ZXN0LmdldCgnYm90X2lkJywgTm9uZSkKICAgICAgICAgaWYg
bm90IHF1ZXVlOgogICAgICAgICAgICAgc2VsZi5lcnJvcig0MDQpCiAgICAgICAgICAgICByZXR1
cm4KLSAgICAgICAgIyBGSVhNRTogUGF0Y2ggYXNzaWdubWVudCBzaG91bGQgcHJvYmFibHkgbW92
ZSBpbnRvIFF1ZXVlLgotICAgICAgICBwYXRjaF9pZCA9IGRiLnJ1bl9pbl90cmFuc2FjdGlvbihz
ZWxmLl9hc3NpZ25fcGF0Y2gsIHF1ZXVlLmFjdGl2ZV93b3JrX2l0ZW1zKCkua2V5KCksIHF1ZXVl
LndvcmtfaXRlbXMoKS5pdGVtX2lkcykKKyAgICAgICAgcGF0Y2hfaWQgPSBxdWV1ZS5hc3NpZ25f
bmV4dF9pdGVtKGJvdF9pZCkKICAgICAgICAgaWYgbm90IHBhdGNoX2lkOgogICAgICAgICAgICAg
c2VsZi5lcnJvcig0MDQpCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgc2VsZi5yZXNwb25z
ZS5vdXQud3JpdGUocGF0Y2hfaWQpCi0KLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIF9hc3Np
Z25fcGF0Y2goa2V5LCB3b3JrX2l0ZW1faWRzKToKLSAgICAgICAgbm93ID0gZGF0ZXRpbWUubm93
KCkKLSAgICAgICAgYWN0aXZlX3dvcmtfaXRlbXMgPSBkYi5nZXQoa2V5KQotICAgICAgICBhY3Rp
dmVfd29ya19pdGVtcy5kZWFjdGl2YXRlX2V4cGlyZWQobm93KQotICAgICAgICBuZXh0X2l0ZW0g
PSBhY3RpdmVfd29ya19pdGVtcy5uZXh0X2l0ZW0od29ya19pdGVtX2lkcywgbm93KQotICAgICAg
ICBhY3RpdmVfd29ya19pdGVtcy5wdXQoKQotICAgICAgICByZXR1cm4gbmV4dF9pdGVtCmRpZmYg
LS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9xdWV1ZXN0YXR1cy5weSBi
L1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3F1ZXVlc3RhdHVzLnB5CmluZGV4IDkw
NTRmY2FiMWI2ZDE4NmQ4NjlkM2JjYTU5ZTZiYzJmMzNmN2I3NmIuLmZjMzMzZDRhMTY4NTc3M2Vl
ZGVmN2VjZDg2NjliOTE4N2RkMjMxYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2Vy
dmVyL2hhbmRsZXJzL3F1ZXVlc3RhdHVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L2hhbmRsZXJzL3F1ZXVlc3RhdHVzLnB5CkBAIC0zOSwxNSArMzksMTYgQEAgZnJvbSBtb2RlbCBp
bXBvcnQgcXVldWVzdGF0dXMKIGNsYXNzIFF1ZXVlU3RhdHVzKHdlYmFwcC5SZXF1ZXN0SGFuZGxl
cik6CiAgICAgZGVmIF9yb3dzX2Zvcl93b3JrX2l0ZW1zKHNlbGYsIHF1ZXVlKToKICAgICAgICAg
cXVldWVkX2l0ZW1zID0gcXVldWUud29ya19pdGVtcygpCi0gICAgICAgIGFjdGl2ZV9pdGVtcyA9
IHF1ZXVlLmFjdGl2ZV93b3JrX2l0ZW1zKCkKKyAgICAgICAgbG9ja190YWJsZSA9IHF1ZXVlLmxv
Y2tfdGFibGUoKQogICAgICAgICBpZiBub3QgcXVldWVkX2l0ZW1zOgogICAgICAgICAgICAgcmV0
dXJuIFtdCiAgICAgICAgIHJvd3MgPSBbXQogICAgICAgICBmb3IgaXRlbV9pZCBpbiBxdWV1ZWRf
aXRlbXMuaXRlbV9pZHM6CisgICAgICAgICAgICBsb2NrID0gbG9ja190YWJsZSBhbmQgbG9ja190
YWJsZS5sb2NrX2Zvcl9pdGVtKGl0ZW1faWQpCiAgICAgICAgICAgICByb3dzLmFwcGVuZCh7CiAg
ICAgICAgICAgICAgICAgImF0dGFjaG1lbnRfaWQiOiBpdGVtX2lkLAotICAgICAgICAgICAgICAg
ICJidWdfaWQiOiAxLAotICAgICAgICAgICAgICAgICJsb2NrX3RpbWUiOiBhY3RpdmVfaXRlbXMg
YW5kIGFjdGl2ZV9pdGVtcy50aW1lX2Zvcl9pdGVtKGl0ZW1faWQpLAorICAgICAgICAgICAgICAg
ICJsb2NrX3RpbWUiOiBsb2NrIGFuZCBsb2NrLmxvY2tfdGltZSgpLAorICAgICAgICAgICAgICAg
ICJsb2NrX2JvdF9pZCI6IGxvY2sgYW5kIGxvY2suYm90X2lkKCksCiAgICAgICAgICAgICB9KQog
ICAgICAgICByZXR1cm4gcm93cwogCkBAIC0xMDgsNiArMTA5LDcgQEAgY2xhc3MgUXVldWVTdGF0
dXMod2ViYXBwLlJlcXVlc3RIYW5kbGVyKToKICAgICAgICAgICAgICJ3b3JrX2l0ZW1fcm93cyI6
IHNlbGYuX3Jvd3NfZm9yX3dvcmtfaXRlbXMocXVldWUpLAogICAgICAgICAgICAgInN0YXR1c19n
cm91cHMiOiBzZWxmLl9idWlsZF9zdGF0dXNfZ3JvdXBzKHN0YXR1c2VzKSwKICAgICAgICAgICAg
ICJib3RfaWQiOiBib3RfaWQsCisgICAgICAgICAgICAicXVldWVfbmFtZSI6IHF1ZXVlX25hbWUs
CiAgICAgICAgICAgICAibGFzdF9wYXNzIjogc2VsZi5fZmV0Y2hfbGFzdF9tZXNzYWdlX21hdGNo
aW5nKHF1ZXVlLCBib3RfaWQsICJQYXNzIiksCiAgICAgICAgICAgICAibGFzdF9ib290Ijogc2Vs
Zi5fZmV0Y2hfbGFzdF9tZXNzYWdlX21hdGNoaW5nKHF1ZXVlLCBib3RfaWQsICJTdGFydGluZyBR
dWV1ZSIpLAogICAgICAgICAgICAgInRyYWlsaW5nX21vbnRoX3Bhc3NfY291bnQiOiBzZWxmLl9m
ZXRjaF90cmFpbGluZ19kYXlzX3Bhc3NfY291bnRfc3RyaW5nKHF1ZXVlLCBib3RfaWQsIDMwKSwK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3JlbGVhc2VwYXRj
aC5weSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3JlbGVhc2VwYXRjaC5weQpp
bmRleCAwZTQ2ZTY5ZjRhM2MyMmQ5NzUxNTg1YjRhZWVhYTQxMjAyOWEwYTIyLi4yZmRlZDYyNmI4
MDdlZDM0MGNlNGViYzMxNzQyMTc3OTQ3MDIwMjRiIDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0
YXR1c1NlcnZlci9oYW5kbGVycy9yZWxlYXNlcGF0Y2gucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0
dXNTZXJ2ZXIvaGFuZGxlcnMvcmVsZWFzZXBhdGNoLnB5CkBAIC01OSw0ICs1OSw0IEBAIGNsYXNz
IFJlbGVhc2VQYXRjaChVcGRhdGVCYXNlKToKICAgICAgICAgICAgIHF1ZXVlLndvcmtfaXRlbXMo
KS5yZW1vdmVfd29ya19pdGVtKGF0dGFjaG1lbnRfaWQpCiAKICAgICAgICAgIyBBbHdheXMgcmVs
ZWFzZSB0aGUgbG9jayBvbiB0aGUgaXRlbS4KLSAgICAgICAgcXVldWUuYWN0aXZlX3dvcmtfaXRl
bXMoKS5leHBpcmVfaXRlbShhdHRhY2htZW50X2lkKQorICAgICAgICBxdWV1ZS5sb2NrX3RhYmxl
KCkuZXhwaXJlX2l0ZW0oYXR0YWNobWVudF9pZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3Rh
dHVzU2VydmVyL2luZGV4LnlhbWwgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9pbmRleC55YW1s
CmluZGV4IDM0ZWI3MmU1YTU2ZTM3YzRlYTU3YWJlNTVhNzlkZGRhMmQyNjA2ZmUuLjMwYTU5MDJk
ZmE1ZTY4NWZlMTZjOTNlNjg4NDQ0NWQ5NWIwYzdiMzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVl
U3RhdHVzU2VydmVyL2luZGV4LnlhbWwKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaW5k
ZXgueWFtbApAQCAtMjksNiArMjksMTMgQEAgaW5kZXhlczoKICAgLSBuYW1lOiBtZXNzYWdlCiAg
IC0gbmFtZTogcXVldWVfbmFtZQogICAtIG5hbWU6IGRhdGUKKworLSBraW5kOiBRdWV1ZVN0YXR1
cworICBwcm9wZXJ0aWVzOgorICAtIG5hbWU6IGJvdF9pZAorICAtIG5hbWU6IG1lc3NhZ2UKKyAg
LSBuYW1lOiBxdWV1ZV9uYW1lCisgIC0gbmFtZTogZGF0ZQogICAgIGRpcmVjdGlvbjogZGVzYwog
CiAtIGtpbmQ6IFF1ZXVlU3RhdHVzCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZl
ci9tb2RlbC9hY3RpdmV3b3JraXRlbXMucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2Rl
bC9hY3RpdmV3b3JraXRlbXMucHkKaW5kZXggMDIzMjU4YTZlOTA1OGQ4Y2FjMDgwNDlmZDhlNjE4
ZmE4NzRmMDBjYS4uZDEzNjAzZjFhN2M3ZGYyY2ZlZWQ3YWM0N2Q0MzkyZGYwODQyZTE5NiAxMDA2
NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvYWN0aXZld29ya2l0ZW1zLnB5
CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL2FjdGl2ZXdvcmtpdGVtcy5weQpA
QCAtMzQsMzIgKzM0LDcyIEBAIGltcG9ydCB0aW1lCiBmcm9tIG1vZGVsLnF1ZXVlcHJvcGVydHlt
aXhpbiBpbXBvcnQgUXVldWVQcm9wZXJ0eU1peGluCiAKIAorIyBMb2NrRW50cnkgaXMgcHJvdmlk
ZWQgdG8gbWFrZSBtYW5pcHVsYXRpb24gb2YgdGhlIHRhYmxlIGVhc2llciwgYnV0CisjIGlzIGlz
IGEgcmVhZC1vbmx5IGNsYXNzLiAgTm8gbW9kaWZpY2F0aW9ucyB3aWxsIGJlIHJlZmxlY3RlZCBi
YWNrIGluIHRoZSB0YWJsZS4KKyMgRklYTUU6IFRoaXMgY291bGQgYmUgaXRzIG93biB0YWJsZSwg
YnV0IHRoZW4gbG9ja2luZyB3b3VsZCBiZSB0cmlja2llcgorIyBiZWNhdXNlIHdlJ2QgaGF2ZSB0
byB1c2UgQXBwRW5naW5lJ3MgZGVwZW5kZW50IGtleSBzeXN0ZW0gKG5vdCBoYXJkLCBqdXN0IHdp
bGwgcmVxdWlyZSBzb21lIHRob3VnaHQpLgorY2xhc3MgTG9ja0VudHJ5KG9iamVjdCk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW1faWQsIGxvY2tfdGltZT1Ob25lLCBib3RfaWQ9Tm9uZSk6
CisgICAgICAgIHNlbGYuX2l0ZW1faWQgPSBpdGVtX2lkCisgICAgICAgIHNlbGYuX2xvY2tfdGlt
ZSA9IGxvY2tfdGltZSBvciBkYXRldGltZS5ub3coKQorICAgICAgICBzZWxmLl9ib3RfaWQgPSBi
b3RfaWQKKworICAgIGRlZiBsb2NrX3RpbWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9s
b2NrX3RpbWUKKworICAgIGRlZiBpdGVtX2lkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
aXRlbV9pZAorCisgICAgZGVmIGJvdF9pZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Jv
dF9pZAorCisKKyMgVGhpcyBzaG91bGQgYmUgY2FsbGVkIExvY2tUYWJsZQogY2xhc3MgQWN0aXZl
V29ya0l0ZW1zKGRiLk1vZGVsLCBRdWV1ZVByb3BlcnR5TWl4aW4pOgogICAgIHF1ZXVlX25hbWUg
PSBkYi5TdHJpbmdQcm9wZXJ0eSgpCiAgICAgaXRlbV9pZHMgPSBkYi5MaXN0UHJvcGVydHkoaW50
KQogICAgIGl0ZW1fZGF0ZXMgPSBkYi5MaXN0UHJvcGVydHkoZmxvYXQpCisgICAgYm90X2lkcyA9
IGRiLlN0cmluZ0xpc3RQcm9wZXJ0eSgpCiAgICAgZGF0ZSA9IGRiLkRhdGVUaW1lUHJvcGVydHko
YXV0b19ub3dfYWRkPVRydWUpCiAKLSAgICAjIFRoZSBpZC9kYXRlIHBhaXJzIHNob3VsZCBwcm9i
YWJseSBqdXN0IGJlIHRoZWlyIG93biBjbGFzcy4KLSAgICBkZWYgX2l0ZW1fdGltZV9wYWlycyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHppcChzZWxmLml0ZW1faWRzLCBzZWxmLml0ZW1fZGF0ZXMp
CisgICAgZGVmIF9sb2NrX3R1cGxlX2Zyb21fbG9ja19lbnRyeShzZWxmLCBlbnRyeSk6CisgICAg
ICAgICMgU3RyaW5nTGlzdFByb3BlcnR5IGRvZXNuJ3QgbGlrZSAiTm9uZSIsIHNvIHdlIG1hcCBO
b25lIHRvICIiCisgICAgICAgIHJldHVybiAoZW50cnkuaXRlbV9pZCgpLCB0aW1lLm1rdGltZShl
bnRyeS5sb2NrX3RpbWUoKS50aW1ldHVwbGUoKSksIGVudHJ5LmJvdF9pZCgpIG9yICIiKQogCi0g
ICAgZGVmIF9zZXRfaXRlbV90aW1lX3BhaXJzKHNlbGYsIHBhaXJzKToKLSAgICAgICAgaWYgcGFp
cnM6CisgICAgZGVmIF9zZXRfbG9ja19lbnRyaWVzKHNlbGYsIGVudHJpZXMpOgorICAgICAgICBp
ZiBlbnRyaWVzOgorICAgICAgICAgICAgdHVwbGVzID0gbWFwKHNlbGYuX2xvY2tfdHVwbGVfZnJv
bV9sb2NrX2VudHJ5LCBlbnRyaWVzKQogICAgICAgICAgICAgIyBUaGUgKiBvcGVyYXRvciByYWlz
ZXMgb24gYW4gZW1wdHkgbGlzdC4KLSAgICAgICAgICAgICMgZGIuTW9kZWwgZG9lcyBub3QgdHVw
bGVzLCB3ZSBoYXZlIHRvIG1ha2UgbGlzdHMuCi0gICAgICAgICAgICBzZWxmLml0ZW1faWRzLCBz
ZWxmLml0ZW1fZGF0ZXMgPSBtYXAobGlzdCwgemlwKCpwYWlycykpCisgICAgICAgICAgICAjIGRi
Lk1vZGVsIGRvZXMgbm90IHVuZGVyc3RhbmQgdHVwbGVzLCB3ZSBoYXZlIHRvIG1ha2UgbGlzdHMu
CisgICAgICAgICAgICBzZWxmLml0ZW1faWRzLCBzZWxmLml0ZW1fZGF0ZXMsIHNlbGYuYm90X2lk
cyA9IG1hcChsaXN0LCB6aXAoKnR1cGxlcykpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBz
ZWxmLml0ZW1faWRzID0gW10KICAgICAgICAgICAgIHNlbGYuaXRlbV9kYXRlcyA9IFtdCisgICAg
ICAgICAgICBzZWxmLmJvdF9pZHMgPSBbXQorCisgICAgZGVmIF9sb2NrX2VudHJ5X2Zyb21fbG9j
a190dXBsZShzZWxmLCBsb2NrX3R1cGxlKToKKyAgICAgICAgIyBXZSBtYXAgIiIgYmFjayB0byBO
b25lLCBzaW5jZSBTdHJpbmdMaXN0UHJvcGVydHkgZG9lc24ndCB1bmRlcnN0YW5kIHN0b3Jpbmcg
Tm9uZS4KKyAgICAgICAgYm90X2lkID0gbG9ja190dXBsZVsyXSBpZiBsb2NrX3R1cGxlWzJdIGVs
c2UgTm9uZQorICAgICAgICByZXR1cm4gTG9ja0VudHJ5KAorICAgICAgICAgICAgaXRlbV9pZD1s
b2NrX3R1cGxlWzBdLAorICAgICAgICAgICAgbG9ja190aW1lPWRhdGV0aW1lLmZyb210aW1lc3Rh
bXAobG9ja190dXBsZVsxXSksCisgICAgICAgICAgICBib3RfaWQ9Ym90X2lkKQorCisgICAgZGVm
IF9sb2NrX2VudHJpZXMoc2VsZik6CisgICAgICAgIHJldHVybiBtYXAoc2VsZi5fbG9ja19lbnRy
eV9mcm9tX2xvY2tfdHVwbGUsIHppcChzZWxmLml0ZW1faWRzLCBzZWxmLml0ZW1fZGF0ZXMsIHNl
bGYuYm90X2lkcykpCisKKyAgICBkZWYgX2l0ZW1faXNfbG9ja2VkKHNlbGYsIGl0ZW1faWQpOgor
ICAgICAgICByZXR1cm4gaXRlbV9pZCBpbiBzZWxmLml0ZW1faWRzCiAKLSAgICBkZWYgX2FwcGVu
ZF9pdGVtX3RpbWVfcGFpcihzZWxmLCBwYWlyKToKLSAgICAgICAgc2VsZi5pdGVtX2lkcy5hcHBl
bmQocGFpclswXSkKLSAgICAgICAgc2VsZi5pdGVtX2RhdGVzLmFwcGVuZChwYWlyWzFdKQorICAg
IGRlZiBfbG9ja19pdGVtKHNlbGYsIGl0ZW1faWQsIG5vdywgYm90X2lkKToKKyAgICAgICAgYXNz
ZXJ0KG5vdCBzZWxmLl9pdGVtX2lzX2xvY2tlZChpdGVtX2lkKSkKKyAgICAgICAgbmV3X2xvY2sg
PSBMb2NrRW50cnkoaXRlbV9pZD1pdGVtX2lkLCBib3RfaWQ9Ym90X2lkLCBsb2NrX3RpbWU9bm93
KQorICAgICAgICAjIFRoaXMgaXMgaW5lZmZpY2llbnQsIGJ1dCByb2J1c3QgYW5kIGVhc3kgdG8g
cmVhZC4KKyAgICAgICAgc2VsZi5fc2V0X2xvY2tfZW50cmllcyhzZWxmLl9sb2NrX2VudHJpZXMo
KSArIFtuZXdfbG9ja10pCiAKICAgICBkZWYgX3JlbW92ZV9pdGVtKHNlbGYsIGl0ZW1faWQpOgot
ICAgICAgICBub25leHBpcmVkX3BhaXJzID0gW3BhaXIgZm9yIHBhaXIgaW4gc2VsZi5faXRlbV90
aW1lX3BhaXJzKCkgaWYgcGFpclswXSAhPSBpdGVtX2lkXQotICAgICAgICBzZWxmLl9zZXRfaXRl
bV90aW1lX3BhaXJzKG5vbmV4cGlyZWRfcGFpcnMpCisgICAgICAgIG5vbmV4cGlyZWRfbG9ja3Mg
PSBbbG9jayBmb3IgbG9jayBpbiBzZWxmLl9sb2NrX2VudHJpZXMoKSBpZiBsb2NrLml0ZW1faWQo
KSAhPSBpdGVtX2lkXQorICAgICAgICBzZWxmLl9zZXRfbG9ja19lbnRyaWVzKG5vbmV4cGlyZWRf
bG9ja3MpCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYga2V5X2Zvcl9xdWV1ZShjbHMsIHF1
ZXVlX25hbWUpOgpAQCAtNzEsMjcgKzExMSw0MyBAQCBjbGFzcyBBY3RpdmVXb3JrSXRlbXMoZGIu
TW9kZWwsIFF1ZXVlUHJvcGVydHlNaXhpbik6CiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVm
IF9leHBpcmVfaXRlbShrZXksIGl0ZW1faWQpOgotICAgICAgICBhY3RpdmVfd29ya19pdGVtcyA9
IGRiLmdldChrZXkpCi0gICAgICAgIGFjdGl2ZV93b3JrX2l0ZW1zLl9yZW1vdmVfaXRlbShpdGVt
X2lkKQotICAgICAgICBhY3RpdmVfd29ya19pdGVtcy5wdXQoKQorICAgICAgICBsb2NrX3RhYmxl
ID0gZGIuZ2V0KGtleSkKKyAgICAgICAgbG9ja190YWJsZS5fcmVtb3ZlX2l0ZW0oaXRlbV9pZCkK
KyAgICAgICAgbG9ja190YWJsZS5wdXQoKQorCisgICAgIyBOb3RlOiBFdmVyeXRoaW5nIGJlbG93
IHRoaXMgbGluZSBpcyBhIHB1YmxpYyBtZXRob2QuCisgICAgIyBBbGwgcHVibGljIG1ldGhvZHMg
b2YgdGhpcyBsb2NrIHRhYmxlIHNob3VsZAorICAgICMgZG8gYWxsIHdvcmsgaW5zaWRlIGEgdHJh
bnNhY3Rpb24uCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYga2V5X2Zvcl9xdWV1ZShjbHMs
IHF1ZXVlX25hbWUpOgorICAgICAgICByZXR1cm4gImxvY2stdGFibGUtJXMiICUgKHF1ZXVlX25h
bWUpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbG9va3VwX2J5X3F1ZXVlKGNscywgcXVl
dWVfbmFtZSk6CisgICAgICAgIHJldHVybiBjbHMuZ2V0X29yX2luc2VydChrZXlfbmFtZT1jbHMu
a2V5X2Zvcl9xdWV1ZShxdWV1ZV9uYW1lKSwgcXVldWVfbmFtZT1xdWV1ZV9uYW1lKQogCiAgICAg
ZGVmIGV4cGlyZV9pdGVtKHNlbGYsIGl0ZW1faWQpOgogICAgICAgICByZXR1cm4gZGIucnVuX2lu
X3RyYW5zYWN0aW9uKHNlbGYuX2V4cGlyZV9pdGVtLCBzZWxmLmtleSgpLCBpdGVtX2lkKQogCisg
ICAgIyBkZWFjdGl2YXRlX2V4cGlyZWQgYW5kIG5leHRfaXRlbSBhc3N1bWUgdGhhdCB0aGUgY2Fs
bGVyIGlzIHJ1bm5pbmcgdGhlbQorICAgICMgaW4gYSB0cmFuc2FjdGlvbi4gV2UgZG8gbm90IGFz
c2VydChkYi5pc19pbl90cmFuc2FjdGlvbigpKSwgdG8gYWxsb3cgZWFzeSB1bml0IHRlc3Rpbmcu
CiAgICAgZGVmIGRlYWN0aXZhdGVfZXhwaXJlZChzZWxmLCBub3cpOgotICAgICAgICBvbmVfaG91
cl9hZ28gPSB0aW1lLm1rdGltZSgobm93IC0gdGltZWRlbHRhKG1pbnV0ZXM9NjApKS50aW1ldHVw
bGUoKSkKLSAgICAgICAgbm9uZXhwaXJlZF9wYWlycyA9IFtwYWlyIGZvciBwYWlyIGluIHNlbGYu
X2l0ZW1fdGltZV9wYWlycygpIGlmIHBhaXJbMV0gPiBvbmVfaG91cl9hZ29dCi0gICAgICAgIHNl
bGYuX3NldF9pdGVtX3RpbWVfcGFpcnMobm9uZXhwaXJlZF9wYWlycykKKyAgICAgICAgIyBDdXJy
ZW50bHkgYWxsIGxvY2tzIGV4cGlyZSBhZnRlciBvbmUgaG91ci4KKyAgICAgICAgZXhwaXJhdGlv
bl90aW1lID0gbm93IC0gdGltZWRlbHRhKG1pbnV0ZXM9NjApCisgICAgICAgIG5vbmV4cGlyZWRf
cGFpcnMgPSBbbG9jayBmb3IgbG9jayBpbiBzZWxmLl9sb2NrX2VudHJpZXMoKSBpZiBsb2NrLmxv
Y2tfdGltZSgpID4gZXhwaXJhdGlvbl90aW1lXQorICAgICAgICBzZWxmLl9zZXRfbG9ja19lbnRy
aWVzKG5vbmV4cGlyZWRfcGFpcnMpCiAKLSAgICBkZWYgbmV4dF9pdGVtKHNlbGYsIHdvcmtfaXRl
bV9pZHMsIG5vdyk6CisgICAgZGVmIG5leHRfaXRlbShzZWxmLCB3b3JrX2l0ZW1faWRzLCBub3cs
IGJvdF9pZCk6CiAgICAgICAgIGZvciBpdGVtX2lkIGluIHdvcmtfaXRlbV9pZHM6Ci0gICAgICAg
ICAgICBpZiBpdGVtX2lkIG5vdCBpbiBzZWxmLml0ZW1faWRzOgotICAgICAgICAgICAgICAgIHNl
bGYuX2FwcGVuZF9pdGVtX3RpbWVfcGFpcihbaXRlbV9pZCwgdGltZS5ta3RpbWUobm93LnRpbWV0
dXBsZSgpKV0pCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5faXRlbV9pc19sb2NrZWQoaXRlbV9p
ZCk6CisgICAgICAgICAgICAgICAgc2VsZi5fbG9ja19pdGVtKGl0ZW1faWQsIG5vdywgYm90X2lk
KQogICAgICAgICAgICAgICAgIHJldHVybiBpdGVtX2lkCiAgICAgICAgIHJldHVybiBOb25lCiAK
LSAgICBkZWYgdGltZV9mb3JfaXRlbShzZWxmLCBpdGVtX2lkKToKLSAgICAgICAgZm9yIGFjdGl2
ZV9pdGVtX2lkLCB0aW1lIGluIHNlbGYuX2l0ZW1fdGltZV9wYWlycygpOgotICAgICAgICAgICAg
aWYgYWN0aXZlX2l0ZW1faWQgPT0gaXRlbV9pZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gZGF0
ZXRpbWUuZnJvbXRpbWVzdGFtcCh0aW1lKQorICAgIGRlZiBsb2NrX2Zvcl9pdGVtKHNlbGYsIGl0
ZW1faWQpOgorICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBydW4gaW4gYSB0
cmFuc2FjdGlvbi4KKyAgICAgICAgZm9yIGxvY2sgaW4gc2VsZi5fbG9ja19lbnRyaWVzKCk6Cisg
ICAgICAgICAgICBpZiBsb2NrLml0ZW1faWQoKSA9PSBpdGVtX2lkOgorICAgICAgICAgICAgICAg
IHJldHVybiBsb2NrCiAgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1
ZVN0YXR1c1NlcnZlci9tb2RlbC9hY3RpdmV3b3JraXRlbXNfdW5pdHRlc3QucHkgYi9Ub29scy9R
dWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9hY3RpdmV3b3JraXRlbXNfdW5pdHRlc3QucHkKaW5kZXgg
YjhjNjIwYWEwNTExOGVjNWIwNzUyODdkZjg0ZDNkMzM3MTljOTk0Zi4uOTI3MmNmZTYzMmMzMTgw
YWYwYWUxMmYwOTVlNDcxMGQ4YWNjODcxNSAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNT
ZXJ2ZXIvbW9kZWwvYWN0aXZld29ya2l0ZW1zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1F1ZXVl
U3RhdHVzU2VydmVyL21vZGVsL2FjdGl2ZXdvcmtpdGVtc191bml0dGVzdC5weQpAQCAtNDksMTYg
KzQ5LDIwIEBAIGNsYXNzIEFjdGl2ZVdvcmtJdGVtc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBxdWV1ZWRfaXRlbXMgPSBbMSwgMl0KICAgICAgICAgIyBkYi5Nb2RlbCBvbmx5IHN0
b3JlcyBkYXRlcyB0byBzZWNvbmQgcmVzb2x1dGlvbiwgc28gd2UgdXNlIGFuIGV4cGxpY2l0IGRh
dGV0aW1lIHdpdGhvdXQgbWlsbGlzZWNvbmRzLgogICAgICAgICB0aW1lID0gZGF0ZXRpbWUoMjAx
MSwgNCwgMTgsIDE4LCA1MCwgNDQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXRlbXMubmV4
dF9pdGVtKHF1ZXVlZF9pdGVtcywgdGltZSksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
aXRlbXMubmV4dF9pdGVtKFsxXSwgdGltZSksIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoaXRlbXMubmV4dF9pdGVtKFtdLCB0aW1lKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChpdGVtcy5uZXh0X2l0ZW0ocXVldWVkX2l0ZW1zLCB0aW1lLCAidGVzdC1ib3QiKSwgMSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5uZXh0X2l0ZW0oWzFdLCB0aW1lLCAidGVz
dC1ib3QiKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5uZXh0X2l0ZW0o
W10sIHRpbWUsICJ0ZXN0LWJvdCIpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGl0
ZW1zLm5leHRfaXRlbShxdWV1ZWRfaXRlbXMsIHRpbWUsIE5vbmUpLCAyKQogCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoaXRlbXMudGltZV9mb3JfaXRlbSgxKSwgdGltZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChpdGVtcy50aW1lX2Zvcl9pdGVtKDIpLCBOb25lKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGl0ZW1zLmxvY2tfZm9yX2l0ZW0oMSkubG9ja190aW1lKCksIHRpbWUpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXRlbXMubG9ja19mb3JfaXRlbSgxKS5ib3RfaWQoKSwg
InRlc3QtYm90IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5sb2NrX2Zvcl9pdGVt
KDIpLmxvY2tfdGltZSgpLCB0aW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGl0ZW1zLmxv
Y2tfZm9yX2l0ZW0oMikuYm90X2lkKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
aXRlbXMubG9ja19mb3JfaXRlbSgzKSwgTm9uZSkKIAogICAgICAgICBpdGVtcy5leHBpcmVfaXRl
bSgxKQogICAgICAgICAjIGV4cGlyZV9pdGVtIHVzZXMgYSB0cmFuc2FjdGlvbiBzbyBpdCBkb2Vz
bid0IHRha2UgZWZmZWN0IG9uIHRoZSBjdXJyZW50IG9iamVjdC4KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChpdGVtcy50aW1lX2Zvcl9pdGVtKDEpLCB0aW1lKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGl0ZW1zLmxvY2tfZm9yX2l0ZW0oMSkubG9ja190aW1lKCksIHRpbWUpCiAgICAgICAg
ICMgSWYgd2UgbG9vayB1cCB0aGUgc2F2ZWQgb2JqZWN0LCB3ZSBzZWUgaXQncyBiZWVuIHVwZGF0
ZWQuCiAgICAgICAgIGl0ZW1zID0gQWN0aXZlV29ya0l0ZW1zLmxvb2t1cF9ieV9xdWV1ZSgidGVz
dC1xdWV1ZSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXRlbXMudGltZV9mb3JfaXRlbSgx
KSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5sb2NrX2Zvcl9pdGVtKDEp
LCBOb25lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVz
LnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzLnB5CmluZGV4IGJkNWU3
ZWQ2Mjg0ZTNkNGI1NGE4ZDViM2YxMjBkOGUzMWQzMDljM2QuLjc4NTViMmZmMjIxY2ZmYTJjZWVi
NTllMDQxNDg0YTU3OGZjYzM0ZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L21vZGVsL3F1ZXVlcy5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1
ZXMucHkKQEAgLTI4LDYgKzI4LDkgQEAKIAogCiBpbXBvcnQgcmUKK2Zyb20gZGF0ZXRpbWUgaW1w
b3J0IGRhdGV0aW1lCisKK2Zyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IGRiCiAKIGZy
b20gbW9kZWwuYWN0aXZld29ya2l0ZW1zIGltcG9ydCBBY3RpdmVXb3JrSXRlbXMKIGZyb20gbW9k
ZWwud29ya2l0ZW1zIGltcG9ydCBXb3JrSXRlbXMKQEAgLTcyLDEzICs3NSwyNSBAQCBjbGFzcyBR
dWV1ZShvYmplY3QpOgogICAgIGRlZiB3b3JrX2l0ZW1zKHNlbGYpOgogICAgICAgICByZXR1cm4g
V29ya0l0ZW1zLmxvb2t1cF9ieV9xdWV1ZShzZWxmLl9uYW1lKQogCi0gICAgIyBGSVhNRTogYWN0
aXZlX3dvcmtfaXRlbXMgaXMgYSBiYWQgbmFtZSBmb3IgdGhpcyBsb2NrLXRhYmxlLgotICAgIGRl
ZiBhY3RpdmVfd29ya19pdGVtcyhzZWxmKToKKyAgICBkZWYgbG9ja190YWJsZShzZWxmKToKICAg
ICAgICAgcmV0dXJuIEFjdGl2ZVdvcmtJdGVtcy5sb29rdXBfYnlfcXVldWUoc2VsZi5fbmFtZSkK
IAogICAgIGRlZiBfY2FwbGl0YWxpemVfYWZ0ZXJfZGFzaChzZWxmLCBzdHJpbmcpOgogICAgICAg
ICByZXR1cm4gIi0iLmpvaW4oW3dvcmRbMF0udXBwZXIoKSArIHdvcmRbMTpdIGZvciB3b3JkIGlu
IHN0cmluZy5zcGxpdCgiLSIpXSkKIAorICAgICMgTWF5YmUgdGhpcyBzaG91bGQgYmUgaW4gQWN0
aXZlV29ya0l0ZW1zPworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX2Fzc2lnbl9wYXRjaChr
ZXksIHdvcmtfaXRlbV9pZHMsIGJvdF9pZCk6CisgICAgICAgIG5vdyA9IGRhdGV0aW1lLm5vdygp
CisgICAgICAgIGxvY2tfdGFibGUgPSBkYi5nZXQoa2V5KQorICAgICAgICBsb2NrX3RhYmxlLmRl
YWN0aXZhdGVfZXhwaXJlZChub3cpCisgICAgICAgIG5leHRfaXRlbSA9IGxvY2tfdGFibGUubmV4
dF9pdGVtKHdvcmtfaXRlbV9pZHMsIG5vdywgYm90X2lkKQorICAgICAgICBsb2NrX3RhYmxlLnB1
dCgpCisgICAgICAgIHJldHVybiBuZXh0X2l0ZW0KKworICAgIGRlZiBhc3NpZ25fbmV4dF9pdGVt
KHNlbGYsIGJvdF9pZD1Ob25lKToKKyAgICAgICAgcmV0dXJuIGRiLnJ1bl9pbl90cmFuc2FjdGlv
bihzZWxmLl9hc3NpZ25fcGF0Y2gsIHNlbGYubG9ja190YWJsZSgpLmtleSgpLCBzZWxmLndvcmtf
aXRlbXMoKS5pdGVtX2lkcywgYm90X2lkKQorCiAgICAgIyBGb3IgdXNlIGluIHN0YXR1cyBidWJi
bGVzIG9yIHRhYmxlIGhlYWRlcnMKICAgICBkZWYgc2hvcnRfbmFtZShzZWxmKToKICAgICAgICAg
IyBIQUNLOiBjaHJvbWl1bS1ld3MgaXMgaW5jb3JyZWN0bHkgbmFtZWQuCmRpZmYgLS1naXQgYS9U
b29scy9RdWV1ZVN0YXR1c1NlcnZlci90ZW1wbGF0ZXMvcXVldWVzdGF0dXMuaHRtbCBiL1Rvb2xz
L1F1ZXVlU3RhdHVzU2VydmVyL3RlbXBsYXRlcy9xdWV1ZXN0YXR1cy5odG1sCmluZGV4IGY4ZWI2
MWU0ZWYwN2IxNTBjOTE4ODJhMmMwNDE0ZDcwNDBmOGNjMDEuLjVlM2YyMmRkY2M4MmVhMzQ5ZTJm
MjE5MDVhNmU4MjAwMDQzZjE5YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L3RlbXBsYXRlcy9xdWV1ZXN0YXR1cy5odG1sCisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L3RlbXBsYXRlcy9xdWV1ZXN0YXR1cy5odG1sCkBAIC02OSw2ICs2OSw5IEBAIGJ5IDxhIGhyZWY9
Ii9xdWV1ZS1zdGF0dXMve3tsYXN0X2Jvb3QucXVldWVfbmFtZX19L2JvdHMve3tsYXN0X2Jvb3Qu
Ym90X2lkfX0iPnt7CiAgICAgICAgICAgICB7JSBpZiByb3cubG9ja190aW1lICV9CiAgICAgICAg
ICAgICAgICAge3sgcm93LmxvY2tfdGltZXx0aW1lc2luY2UgfX0gYWdvCiAgICAgICAgICAgICB7
JSBlbmRpZiAlfQorICAgICAgICAgICAgeyUgaWYgcm93LmxvY2tfYm90X2lkICV9CisgICAgICAg
ICAgICAgICAgYnkgPGEgaHJlZj0iL3F1ZXVlLXN0YXR1cy97e3F1ZXVlX25hbWV9fS9ib3RzL3t7
cm93LmxvY2tfYm90X2lkfX0iPnt7IHJvdy5sb2NrX2JvdF9pZCB9fTwvYT4KKyAgICAgICAgICAg
IHslIGVuZGlmICV9CiAgICAgICAgIDwvdGQ+CiAgICAgPC90cj4KICAgICB7JSBlbmRmb3IgJX0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93825</attachid>
            <date>2011-05-17 15:08:59 -0700</date>
            <delta_ts>2011-10-14 22:46:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60993-20110517150857.patch</filename>
            <type>text/plain</type>
            <size>17318</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY3MDQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MTQxMDk5Y2Y2ZjIwMTg4NmExZTI4ODljNjNiYjlkY2Q5
MjdjNjI0Li45MDBmMDNlNTVlMTNjNjdjODlmNTFjM2E3ZDhhZGE3MzdkN2ZmM2Y2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTEtMDUtMTcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIHF1ZXVlcy53
ZWJraXQub3JnJ3MgbG9ja3RhYmxlIHRvIGRlYWwgd2l0aCBMb2NrRW50cnkgb2JqZWN0cyAoYW5k
IHRlYWNoIGl0IGFib3V0IGJvdF9pZCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYwOTkzCisKKyAgICAgICAgSXQgYmVjYW1lIGNsZWFyIHRocm91Z2gg
dGhpcyBwcm9jZXNzIHRoYXQgd2Ugc2hvdWxkIHJlYWxseSBoYXZlIGEgc2VwYXJhdGUKKyAgICAg
ICAgdGFibGUgZm9yIExvY2tFbnRyaWVzLiAgSG93ZXZlciwgdGhhdCdzIG91dCBvZiBzY29wZSBm
b3IgdGhpcyBwYXRjaC4KKyAgICAgICAgSSdsbCBoYXZlIHRvIGRvIHNvbWUgcmVhZGluZyB0byBs
ZWFybiBob3cgdG8gZGVhbCB3aXRoIEdBRSBkZXBlbmRlbnQKKyAgICAgICAga2V5cyBwcm9wZXJs
eS4KKworICAgICAgICBJdCBhbHNvIGJlY2FtZSBjbGVhciB0aGF0IHdlIG5lZWQgdG8gY2xlYW4g
dXAgd2hvJ3MgcmVzcG9uc2liaWxpdHkKKyAgICAgICAgaXQgaXMgdG8gcnVuIHRoZSB0cmFuc2Fj
dGlvbi4gIEknbSBsZWFuaW5nIHRvd2FyZHMgbWFraW5nCisgICAgICAgIEFjdGl2ZVdvcmtJdGVt
cyBub3Qga25vdyBhbnl0aGluZyBhYm91dCB0cmFuc2FjdGlvbnMgZXhjZXB0CisgICAgICAgIGFz
c2VydChkYi5pbl90cmFuc2FjdGlvbigpKS4KKworICAgICAgICBPbmNlIEkgZmFjdG9yZWQgb3V0
IExvY2tFbnRyeSBpbnRvIGEgc2VwYXJhdGUgY2xhc3MsIGl0IHdhcyB0cml2aWFsIHRvIGFkZAor
ICAgICAgICBhIG5ldyAiYm90X2lkIiBmaWVsZCBhbmQgZGlzcGxheSBib3RfaWRzIG9uIHRoZSBx
dWV1ZV9zdGF0dXMgcGFnZS4KKyAgICAgICAgSG93ZXZlciByaWdodCBub3cgbm9uZSBvZiB0aGUg
Ym90cyBrbm93IGhvdyB0byBwYXNzIHRoZWlyIGJvdF9pZCB0bworICAgICAgICBuZXh0LXBhdGNo
LiAgVGhhdCB3aWxsIGJlIGEgc2VwYXJhdGUgcGF0Y2guCisKKyAgICAgICAgRnVydGhlcm1vcmUs
IGluIHRlc3RpbmcsIGl0IGJlY2FtZSBvYnZpb3VzIHRoYXQgbmV4dC1wYXRjaCBlaXRoZXIgc2hv
dWxkbid0CisgICAgICAgIGRvIHRoZSBsb2NraW5nIGl0c2VsZiwgb3IgaXQgc2hvdWxkbid0IHVz
ZSBHRVQuICBJIHRoaW5rIHdlIHNob3VsZCBtb3ZlIGl0CisgICAgICAgIHRvIFBPU1QgaW4gYSBs
YXRlciBwYXRjaC4KKworICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL25leHRw
YXRjaC5weToKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9xdWV1ZXN0YXR1
cy5weToKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9yZWxlYXNlcGF0Y2gu
cHk6CisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvaW5kZXgueWFtbDoKKyAgICAgICAgKiBR
dWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9hY3RpdmV3b3JraXRlbXMucHk6CisgICAgICAgICogUXVl
dWVTdGF0dXNTZXJ2ZXIvbW9kZWwvYWN0aXZld29ya2l0ZW1zX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAqIFF1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlcy5weToKKyAgICAgICAgKiBRdWV1ZVN0
YXR1c1NlcnZlci90ZW1wbGF0ZXMvcXVldWVzdGF0dXMuaHRtbDoKKwogMjAxMS0wNS0xNyAgVG9u
eSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4g
VmFmYWkuCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9uZXh0
cGF0Y2gucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9uZXh0cGF0Y2gucHkK
aW5kZXggNWY2ZDcxZGFkZmI4OWEyMGY1NTM5OGE5N2YzY2IyNmJjZWY3ZjkyNS4uNjIwMjk2NGIx
OWI5OWZlNmU1MGY1NjQwYjRmMWJmOWMzNjgxYzA0YiAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVT
dGF0dXNTZXJ2ZXIvaGFuZGxlcnMvbmV4dHBhdGNoLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL2hhbmRsZXJzL25leHRwYXRjaC5weQpAQCAtMjYsMzQgKzI2LDIzIEBACiAjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQot
Ci1mcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0IGltcG9ydCBkYgogZnJvbSBnb29nbGUuYXBwZW5n
aW5lLmV4dCBpbXBvcnQgd2ViYXBwCiAKIGZyb20gbW9kZWwucXVldWVzIGltcG9ydCBRdWV1ZQog
CiAKIGNsYXNzIE5leHRQYXRjaCh3ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgotICAgICMgRklYTUU6
IFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGEgcG9zdCwgb3IgYW4gZXhwbGljdCBsb2NrX3BhdGNo
Ci0gICAgIyBzaW5jZSBHRVQgcmVxdWVzdHMgc2hvdWxkbid0IHJlYWxseSBtb2RpZnkgdGhlIGRh
dGFzdG9yZS4KKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBQT1NULCBvciBhbiBleHBsaWN0
IGxvY2tfcGF0Y2gKKyAgICAjIEdFVCByZXF1ZXN0cyBzaG91bGQgTk9UIG1vZGlmeSB0aGUgZGF0
YXN0b3JlCisgICAgIyBhcy1pcywgdGVzdGluZyB0aGlzIGluIENocm9tZSBkaWZmaWN1bHQgZHVl
IHVybCBwcmVmZXRjaCEKICAgICBkZWYgZ2V0KHNlbGYsIHF1ZXVlX25hbWUpOgogICAgICAgICBx
dWV1ZSA9IFF1ZXVlLnF1ZXVlX3dpdGhfbmFtZShxdWV1ZV9uYW1lKQorICAgICAgICBib3RfaWQg
PSBzZWxmLnJlcXVlc3QuZ2V0KCdib3RfaWQnLCBOb25lKQogICAgICAgICBpZiBub3QgcXVldWU6
CiAgICAgICAgICAgICBzZWxmLmVycm9yKDQwNCkKICAgICAgICAgICAgIHJldHVybgotICAgICAg
ICAjIEZJWE1FOiBQYXRjaCBhc3NpZ25tZW50IHNob3VsZCBwcm9iYWJseSBtb3ZlIGludG8gUXVl
dWUuCi0gICAgICAgIHBhdGNoX2lkID0gZGIucnVuX2luX3RyYW5zYWN0aW9uKHNlbGYuX2Fzc2ln
bl9wYXRjaCwgcXVldWUuYWN0aXZlX3dvcmtfaXRlbXMoKS5rZXkoKSwgcXVldWUud29ya19pdGVt
cygpLml0ZW1faWRzKQorICAgICAgICBwYXRjaF9pZCA9IHF1ZXVlLmFzc2lnbl9uZXh0X2l0ZW0o
Ym90X2lkKQogICAgICAgICBpZiBub3QgcGF0Y2hfaWQ6CiAgICAgICAgICAgICBzZWxmLmVycm9y
KDQwNCkKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0
ZShwYXRjaF9pZCkKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX2Fzc2lnbl9wYXRjaChr
ZXksIHdvcmtfaXRlbV9pZHMpOgotICAgICAgICBub3cgPSBkYXRldGltZS5ub3coKQotICAgICAg
ICBhY3RpdmVfd29ya19pdGVtcyA9IGRiLmdldChrZXkpCi0gICAgICAgIGFjdGl2ZV93b3JrX2l0
ZW1zLmRlYWN0aXZhdGVfZXhwaXJlZChub3cpCi0gICAgICAgIG5leHRfaXRlbSA9IGFjdGl2ZV93
b3JrX2l0ZW1zLm5leHRfaXRlbSh3b3JrX2l0ZW1faWRzLCBub3cpCi0gICAgICAgIGFjdGl2ZV93
b3JrX2l0ZW1zLnB1dCgpCi0gICAgICAgIHJldHVybiBuZXh0X2l0ZW0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3F1ZXVlc3RhdHVzLnB5IGIvVG9vbHMvUXVl
dWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvcXVldWVzdGF0dXMucHkKaW5kZXggOTA1NGZjYWIxYjZk
MTg2ZDg2OWQzYmNhNTllNmJjMmYzM2Y3Yjc2Yi4uZmMzMzNkNGExNjg1NzczZWVkZWY3ZWNkODY2
OWI5MTg3ZGQyMzFhMyAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxl
cnMvcXVldWVzdGF0dXMucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMv
cXVldWVzdGF0dXMucHkKQEAgLTM5LDE1ICszOSwxNiBAQCBmcm9tIG1vZGVsIGltcG9ydCBxdWV1
ZXN0YXR1cwogY2xhc3MgUXVldWVTdGF0dXMod2ViYXBwLlJlcXVlc3RIYW5kbGVyKToKICAgICBk
ZWYgX3Jvd3NfZm9yX3dvcmtfaXRlbXMoc2VsZiwgcXVldWUpOgogICAgICAgICBxdWV1ZWRfaXRl
bXMgPSBxdWV1ZS53b3JrX2l0ZW1zKCkKLSAgICAgICAgYWN0aXZlX2l0ZW1zID0gcXVldWUuYWN0
aXZlX3dvcmtfaXRlbXMoKQorICAgICAgICBsb2NrX3RhYmxlID0gcXVldWUubG9ja190YWJsZSgp
CiAgICAgICAgIGlmIG5vdCBxdWV1ZWRfaXRlbXM6CiAgICAgICAgICAgICByZXR1cm4gW10KICAg
ICAgICAgcm93cyA9IFtdCiAgICAgICAgIGZvciBpdGVtX2lkIGluIHF1ZXVlZF9pdGVtcy5pdGVt
X2lkczoKKyAgICAgICAgICAgIGxvY2sgPSBsb2NrX3RhYmxlIGFuZCBsb2NrX3RhYmxlLmxvY2tf
Zm9yX2l0ZW0oaXRlbV9pZCkKICAgICAgICAgICAgIHJvd3MuYXBwZW5kKHsKICAgICAgICAgICAg
ICAgICAiYXR0YWNobWVudF9pZCI6IGl0ZW1faWQsCi0gICAgICAgICAgICAgICAgImJ1Z19pZCI6
IDEsCi0gICAgICAgICAgICAgICAgImxvY2tfdGltZSI6IGFjdGl2ZV9pdGVtcyBhbmQgYWN0aXZl
X2l0ZW1zLnRpbWVfZm9yX2l0ZW0oaXRlbV9pZCksCisgICAgICAgICAgICAgICAgImxvY2tfdGlt
ZSI6IGxvY2sgYW5kIGxvY2subG9ja190aW1lKCksCisgICAgICAgICAgICAgICAgImxvY2tfYm90
X2lkIjogbG9jayBhbmQgbG9jay5ib3RfaWQoKSwKICAgICAgICAgICAgIH0pCiAgICAgICAgIHJl
dHVybiByb3dzCiAKQEAgLTEwOCw2ICsxMDksNyBAQCBjbGFzcyBRdWV1ZVN0YXR1cyh3ZWJhcHAu
UmVxdWVzdEhhbmRsZXIpOgogICAgICAgICAgICAgIndvcmtfaXRlbV9yb3dzIjogc2VsZi5fcm93
c19mb3Jfd29ya19pdGVtcyhxdWV1ZSksCiAgICAgICAgICAgICAic3RhdHVzX2dyb3VwcyI6IHNl
bGYuX2J1aWxkX3N0YXR1c19ncm91cHMoc3RhdHVzZXMpLAogICAgICAgICAgICAgImJvdF9pZCI6
IGJvdF9pZCwKKyAgICAgICAgICAgICJxdWV1ZV9uYW1lIjogcXVldWVfbmFtZSwKICAgICAgICAg
ICAgICJsYXN0X3Bhc3MiOiBzZWxmLl9mZXRjaF9sYXN0X21lc3NhZ2VfbWF0Y2hpbmcocXVldWUs
IGJvdF9pZCwgIlBhc3MiKSwKICAgICAgICAgICAgICJsYXN0X2Jvb3QiOiBzZWxmLl9mZXRjaF9s
YXN0X21lc3NhZ2VfbWF0Y2hpbmcocXVldWUsIGJvdF9pZCwgIlN0YXJ0aW5nIFF1ZXVlIiksCiAg
ICAgICAgICAgICAidHJhaWxpbmdfbW9udGhfcGFzc19jb3VudCI6IHNlbGYuX2ZldGNoX3RyYWls
aW5nX2RheXNfcGFzc19jb3VudF9zdHJpbmcocXVldWUsIGJvdF9pZCwgMzApLApkaWZmIC0tZ2l0
IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvcmVsZWFzZXBhdGNoLnB5IGIvVG9v
bHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvcmVsZWFzZXBhdGNoLnB5CmluZGV4IDBlNDZl
NjlmNGEzYzIyZDk3NTE1ODViNGFlZWFhNDEyMDI5YTBhMjIuLjJmZGVkNjI2YjgwN2VkMzQwY2U0
ZWJjMzE3NDIxNzc5NDcwMjAyNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L2hhbmRsZXJzL3JlbGVhc2VwYXRjaC5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9o
YW5kbGVycy9yZWxlYXNlcGF0Y2gucHkKQEAgLTU5LDQgKzU5LDQgQEAgY2xhc3MgUmVsZWFzZVBh
dGNoKFVwZGF0ZUJhc2UpOgogICAgICAgICAgICAgcXVldWUud29ya19pdGVtcygpLnJlbW92ZV93
b3JrX2l0ZW0oYXR0YWNobWVudF9pZCkKIAogICAgICAgICAjIEFsd2F5cyByZWxlYXNlIHRoZSBs
b2NrIG9uIHRoZSBpdGVtLgotICAgICAgICBxdWV1ZS5hY3RpdmVfd29ya19pdGVtcygpLmV4cGly
ZV9pdGVtKGF0dGFjaG1lbnRfaWQpCisgICAgICAgIHF1ZXVlLmxvY2tfdGFibGUoKS5leHBpcmVf
aXRlbShhdHRhY2htZW50X2lkKQpkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIv
aW5kZXgueWFtbCBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2luZGV4LnlhbWwKaW5kZXggMzRl
YjcyZTVhNTZlMzdjNGVhNTdhYmU1NWE3OWRkZGEyZDI2MDZmZS4uMzBhNTkwMmRmYTVlNjg1ZmUx
NmM5M2U2ODg0NDQ1ZDk1YjBjN2IzNiAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2
ZXIvaW5kZXgueWFtbAorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9pbmRleC55YW1sCkBA
IC0yOSw2ICsyOSwxMyBAQCBpbmRleGVzOgogICAtIG5hbWU6IG1lc3NhZ2UKICAgLSBuYW1lOiBx
dWV1ZV9uYW1lCiAgIC0gbmFtZTogZGF0ZQorCistIGtpbmQ6IFF1ZXVlU3RhdHVzCisgIHByb3Bl
cnRpZXM6CisgIC0gbmFtZTogYm90X2lkCisgIC0gbmFtZTogbWVzc2FnZQorICAtIG5hbWU6IHF1
ZXVlX25hbWUKKyAgLSBuYW1lOiBkYXRlCiAgICAgZGlyZWN0aW9uOiBkZXNjCiAKIC0ga2luZDog
UXVldWVTdGF0dXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL2Fj
dGl2ZXdvcmtpdGVtcy5weSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL2FjdGl2ZXdv
cmtpdGVtcy5weQppbmRleCAwMjMyNThhNmU5MDU4ZDhjYWMwODA0OWZkOGU2MThmYTg3NGYwMGNh
Li5kMTM2MDNmMWE3YzdkZjJjZmVlZDdhYzQ3ZDQzOTJkZjA4NDJlMTk2IDEwMDY0NAotLS0gYS9U
b29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9hY3RpdmV3b3JraXRlbXMucHkKKysrIGIvVG9v
bHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvYWN0aXZld29ya2l0ZW1zLnB5CkBAIC0zNCwzMiAr
MzQsNzIgQEAgaW1wb3J0IHRpbWUKIGZyb20gbW9kZWwucXVldWVwcm9wZXJ0eW1peGluIGltcG9y
dCBRdWV1ZVByb3BlcnR5TWl4aW4KIAogCisjIExvY2tFbnRyeSBpcyBwcm92aWRlZCB0byBtYWtl
IG1hbmlwdWxhdGlvbiBvZiB0aGUgdGFibGUgZWFzaWVyLCBidXQKKyMgaXMgaXMgYSByZWFkLW9u
bHkgY2xhc3MuICBObyBtb2RpZmljYXRpb25zIHdpbGwgYmUgcmVmbGVjdGVkIGJhY2sgaW4gdGhl
IHRhYmxlLgorIyBGSVhNRTogVGhpcyBjb3VsZCBiZSBpdHMgb3duIHRhYmxlLCBidXQgdGhlbiBs
b2NraW5nIHdvdWxkIGJlIHRyaWNraWVyCisjIGJlY2F1c2Ugd2UnZCBoYXZlIHRvIHVzZSBBcHBF
bmdpbmUncyBkZXBlbmRlbnQga2V5IHN5c3RlbSAobm90IGhhcmQsIGp1c3Qgd2lsbCByZXF1aXJl
IHNvbWUgdGhvdWdodCkuCitjbGFzcyBMb2NrRW50cnkob2JqZWN0KToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgaXRlbV9pZCwgbG9ja190aW1lPU5vbmUsIGJvdF9pZD1Ob25lKToKKyAgICAgICAg
c2VsZi5faXRlbV9pZCA9IGl0ZW1faWQKKyAgICAgICAgc2VsZi5fbG9ja190aW1lID0gbG9ja190
aW1lIG9yIGRhdGV0aW1lLm5vdygpCisgICAgICAgIHNlbGYuX2JvdF9pZCA9IGJvdF9pZAorCisg
ICAgZGVmIGxvY2tfdGltZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2xvY2tfdGltZQor
CisgICAgZGVmIGl0ZW1faWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9pdGVtX2lkCisK
KyAgICBkZWYgYm90X2lkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYm90X2lkCisKKwor
IyBUaGlzIHNob3VsZCBiZSBjYWxsZWQgTG9ja1RhYmxlCiBjbGFzcyBBY3RpdmVXb3JrSXRlbXMo
ZGIuTW9kZWwsIFF1ZXVlUHJvcGVydHlNaXhpbik6CiAgICAgcXVldWVfbmFtZSA9IGRiLlN0cmlu
Z1Byb3BlcnR5KCkKICAgICBpdGVtX2lkcyA9IGRiLkxpc3RQcm9wZXJ0eShpbnQpCiAgICAgaXRl
bV9kYXRlcyA9IGRiLkxpc3RQcm9wZXJ0eShmbG9hdCkKKyAgICBib3RfaWRzID0gZGIuU3RyaW5n
TGlzdFByb3BlcnR5KCkKICAgICBkYXRlID0gZGIuRGF0ZVRpbWVQcm9wZXJ0eShhdXRvX25vd19h
ZGQ9VHJ1ZSkKIAotICAgICMgVGhlIGlkL2RhdGUgcGFpcnMgc2hvdWxkIHByb2JhYmx5IGp1c3Qg
YmUgdGhlaXIgb3duIGNsYXNzLgotICAgIGRlZiBfaXRlbV90aW1lX3BhaXJzKHNlbGYpOgotICAg
ICAgICByZXR1cm4gemlwKHNlbGYuaXRlbV9pZHMsIHNlbGYuaXRlbV9kYXRlcykKKyAgICBkZWYg
X2xvY2tfdHVwbGVfZnJvbV9sb2NrX2VudHJ5KHNlbGYsIGVudHJ5KToKKyAgICAgICAgIyBTdHJp
bmdMaXN0UHJvcGVydHkgZG9lc24ndCBsaWtlICJOb25lIiwgc28gd2UgbWFwIE5vbmUgdG8gIiIK
KyAgICAgICAgcmV0dXJuIChlbnRyeS5pdGVtX2lkKCksIHRpbWUubWt0aW1lKGVudHJ5LmxvY2tf
dGltZSgpLnRpbWV0dXBsZSgpKSwgZW50cnkuYm90X2lkKCkgb3IgIiIpCiAKLSAgICBkZWYgX3Nl
dF9pdGVtX3RpbWVfcGFpcnMoc2VsZiwgcGFpcnMpOgotICAgICAgICBpZiBwYWlyczoKKyAgICBk
ZWYgX3NldF9sb2NrX2VudHJpZXMoc2VsZiwgZW50cmllcyk6CisgICAgICAgIGlmIGVudHJpZXM6
CisgICAgICAgICAgICB0dXBsZXMgPSBtYXAoc2VsZi5fbG9ja190dXBsZV9mcm9tX2xvY2tfZW50
cnksIGVudHJpZXMpCiAgICAgICAgICAgICAjIFRoZSAqIG9wZXJhdG9yIHJhaXNlcyBvbiBhbiBl
bXB0eSBsaXN0LgotICAgICAgICAgICAgIyBkYi5Nb2RlbCBkb2VzIG5vdCB0dXBsZXMsIHdlIGhh
dmUgdG8gbWFrZSBsaXN0cy4KLSAgICAgICAgICAgIHNlbGYuaXRlbV9pZHMsIHNlbGYuaXRlbV9k
YXRlcyA9IG1hcChsaXN0LCB6aXAoKnBhaXJzKSkKKyAgICAgICAgICAgICMgZGIuTW9kZWwgZG9l
cyBub3QgdW5kZXJzdGFuZCB0dXBsZXMsIHdlIGhhdmUgdG8gbWFrZSBsaXN0cy4KKyAgICAgICAg
ICAgIHNlbGYuaXRlbV9pZHMsIHNlbGYuaXRlbV9kYXRlcywgc2VsZi5ib3RfaWRzID0gbWFwKGxp
c3QsIHppcCgqdHVwbGVzKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuaXRlbV9p
ZHMgPSBbXQogICAgICAgICAgICAgc2VsZi5pdGVtX2RhdGVzID0gW10KKyAgICAgICAgICAgIHNl
bGYuYm90X2lkcyA9IFtdCisKKyAgICBkZWYgX2xvY2tfZW50cnlfZnJvbV9sb2NrX3R1cGxlKHNl
bGYsIGxvY2tfdHVwbGUpOgorICAgICAgICAjIFdlIG1hcCAiIiBiYWNrIHRvIE5vbmUsIHNpbmNl
IFN0cmluZ0xpc3RQcm9wZXJ0eSBkb2Vzbid0IHVuZGVyc3RhbmQgc3RvcmluZyBOb25lLgorICAg
ICAgICBib3RfaWQgPSBsb2NrX3R1cGxlWzJdIGlmIGxvY2tfdHVwbGVbMl0gZWxzZSBOb25lCisg
ICAgICAgIHJldHVybiBMb2NrRW50cnkoCisgICAgICAgICAgICBpdGVtX2lkPWxvY2tfdHVwbGVb
MF0sCisgICAgICAgICAgICBsb2NrX3RpbWU9ZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChsb2NrX3R1
cGxlWzFdKSwKKyAgICAgICAgICAgIGJvdF9pZD1ib3RfaWQpCisKKyAgICBkZWYgX2xvY2tfZW50
cmllcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIG1hcChzZWxmLl9sb2NrX2VudHJ5X2Zyb21fbG9j
a190dXBsZSwgemlwKHNlbGYuaXRlbV9pZHMsIHNlbGYuaXRlbV9kYXRlcywgc2VsZi5ib3RfaWRz
KSkKKworICAgIGRlZiBfaXRlbV9pc19sb2NrZWQoc2VsZiwgaXRlbV9pZCk6CisgICAgICAgIHJl
dHVybiBpdGVtX2lkIGluIHNlbGYuaXRlbV9pZHMKIAotICAgIGRlZiBfYXBwZW5kX2l0ZW1fdGlt
ZV9wYWlyKHNlbGYsIHBhaXIpOgotICAgICAgICBzZWxmLml0ZW1faWRzLmFwcGVuZChwYWlyWzBd
KQotICAgICAgICBzZWxmLml0ZW1fZGF0ZXMuYXBwZW5kKHBhaXJbMV0pCisgICAgZGVmIF9sb2Nr
X2l0ZW0oc2VsZiwgaXRlbV9pZCwgbm93LCBib3RfaWQpOgorICAgICAgICBhc3NlcnQobm90IHNl
bGYuX2l0ZW1faXNfbG9ja2VkKGl0ZW1faWQpKQorICAgICAgICBuZXdfbG9jayA9IExvY2tFbnRy
eShpdGVtX2lkPWl0ZW1faWQsIGJvdF9pZD1ib3RfaWQsIGxvY2tfdGltZT1ub3cpCisgICAgICAg
ICMgVGhpcyBpcyBpbmVmZmljaWVudCwgYnV0IHJvYnVzdCBhbmQgZWFzeSB0byByZWFkLgorICAg
ICAgICBzZWxmLl9zZXRfbG9ja19lbnRyaWVzKHNlbGYuX2xvY2tfZW50cmllcygpICsgW25ld19s
b2NrXSkKIAogICAgIGRlZiBfcmVtb3ZlX2l0ZW0oc2VsZiwgaXRlbV9pZCk6Ci0gICAgICAgIG5v
bmV4cGlyZWRfcGFpcnMgPSBbcGFpciBmb3IgcGFpciBpbiBzZWxmLl9pdGVtX3RpbWVfcGFpcnMo
KSBpZiBwYWlyWzBdICE9IGl0ZW1faWRdCi0gICAgICAgIHNlbGYuX3NldF9pdGVtX3RpbWVfcGFp
cnMobm9uZXhwaXJlZF9wYWlycykKKyAgICAgICAgbm9uZXhwaXJlZF9sb2NrcyA9IFtsb2NrIGZv
ciBsb2NrIGluIHNlbGYuX2xvY2tfZW50cmllcygpIGlmIGxvY2suaXRlbV9pZCgpICE9IGl0ZW1f
aWRdCisgICAgICAgIHNlbGYuX3NldF9sb2NrX2VudHJpZXMobm9uZXhwaXJlZF9sb2NrcykKIAog
ICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBrZXlfZm9yX3F1ZXVlKGNscywgcXVldWVfbmFtZSk6
CkBAIC03MSwyNyArMTExLDQzIEBAIGNsYXNzIEFjdGl2ZVdvcmtJdGVtcyhkYi5Nb2RlbCwgUXVl
dWVQcm9wZXJ0eU1peGluKToKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgX2V4cGlyZV9p
dGVtKGtleSwgaXRlbV9pZCk6Ci0gICAgICAgIGFjdGl2ZV93b3JrX2l0ZW1zID0gZGIuZ2V0KGtl
eSkKLSAgICAgICAgYWN0aXZlX3dvcmtfaXRlbXMuX3JlbW92ZV9pdGVtKGl0ZW1faWQpCi0gICAg
ICAgIGFjdGl2ZV93b3JrX2l0ZW1zLnB1dCgpCisgICAgICAgIGxvY2tfdGFibGUgPSBkYi5nZXQo
a2V5KQorICAgICAgICBsb2NrX3RhYmxlLl9yZW1vdmVfaXRlbShpdGVtX2lkKQorICAgICAgICBs
b2NrX3RhYmxlLnB1dCgpCisKKyAgICAjIE5vdGU6IEV2ZXJ5dGhpbmcgYmVsb3cgdGhpcyBsaW5l
IGlzIGEgcHVibGljIG1ldGhvZC4KKyAgICAjIEFsbCBwdWJsaWMgbWV0aG9kcyBvZiB0aGlzIGxv
Y2sgdGFibGUgc2hvdWxkCisgICAgIyBkbyBhbGwgd29yayBpbnNpZGUgYSB0cmFuc2FjdGlvbi4K
KworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBrZXlfZm9yX3F1ZXVlKGNscywgcXVldWVfbmFt
ZSk6CisgICAgICAgIHJldHVybiAibG9jay10YWJsZS0lcyIgJSAocXVldWVfbmFtZSkKKworICAg
IEBjbGFzc21ldGhvZAorICAgIGRlZiBsb29rdXBfYnlfcXVldWUoY2xzLCBxdWV1ZV9uYW1lKToK
KyAgICAgICAgcmV0dXJuIGNscy5nZXRfb3JfaW5zZXJ0KGtleV9uYW1lPWNscy5rZXlfZm9yX3F1
ZXVlKHF1ZXVlX25hbWUpLCBxdWV1ZV9uYW1lPXF1ZXVlX25hbWUpCiAKICAgICBkZWYgZXhwaXJl
X2l0ZW0oc2VsZiwgaXRlbV9pZCk6CiAgICAgICAgIHJldHVybiBkYi5ydW5faW5fdHJhbnNhY3Rp
b24oc2VsZi5fZXhwaXJlX2l0ZW0sIHNlbGYua2V5KCksIGl0ZW1faWQpCiAKKyAgICAjIGRlYWN0
aXZhdGVfZXhwaXJlZCBhbmQgbmV4dF9pdGVtIGFzc3VtZSB0aGF0IHRoZSBjYWxsZXIgaXMgcnVu
bmluZyB0aGVtCisgICAgIyBpbiBhIHRyYW5zYWN0aW9uLiBXZSBkbyBub3QgYXNzZXJ0KGRiLmlz
X2luX3RyYW5zYWN0aW9uKCkpLCB0byBhbGxvdyBlYXN5IHVuaXQgdGVzdGluZy4KICAgICBkZWYg
ZGVhY3RpdmF0ZV9leHBpcmVkKHNlbGYsIG5vdyk6Ci0gICAgICAgIG9uZV9ob3VyX2FnbyA9IHRp
bWUubWt0aW1lKChub3cgLSB0aW1lZGVsdGEobWludXRlcz02MCkpLnRpbWV0dXBsZSgpKQotICAg
ICAgICBub25leHBpcmVkX3BhaXJzID0gW3BhaXIgZm9yIHBhaXIgaW4gc2VsZi5faXRlbV90aW1l
X3BhaXJzKCkgaWYgcGFpclsxXSA+IG9uZV9ob3VyX2Fnb10KLSAgICAgICAgc2VsZi5fc2V0X2l0
ZW1fdGltZV9wYWlycyhub25leHBpcmVkX3BhaXJzKQorICAgICAgICAjIEN1cnJlbnRseSBhbGwg
bG9ja3MgZXhwaXJlIGFmdGVyIG9uZSBob3VyLgorICAgICAgICBleHBpcmF0aW9uX3RpbWUgPSBu
b3cgLSB0aW1lZGVsdGEobWludXRlcz02MCkKKyAgICAgICAgbm9uZXhwaXJlZF9wYWlycyA9IFts
b2NrIGZvciBsb2NrIGluIHNlbGYuX2xvY2tfZW50cmllcygpIGlmIGxvY2subG9ja190aW1lKCkg
PiBleHBpcmF0aW9uX3RpbWVdCisgICAgICAgIHNlbGYuX3NldF9sb2NrX2VudHJpZXMobm9uZXhw
aXJlZF9wYWlycykKIAotICAgIGRlZiBuZXh0X2l0ZW0oc2VsZiwgd29ya19pdGVtX2lkcywgbm93
KToKKyAgICBkZWYgbmV4dF9pdGVtKHNlbGYsIHdvcmtfaXRlbV9pZHMsIG5vdywgYm90X2lkKToK
ICAgICAgICAgZm9yIGl0ZW1faWQgaW4gd29ya19pdGVtX2lkczoKLSAgICAgICAgICAgIGlmIGl0
ZW1faWQgbm90IGluIHNlbGYuaXRlbV9pZHM6Ci0gICAgICAgICAgICAgICAgc2VsZi5fYXBwZW5k
X2l0ZW1fdGltZV9wYWlyKFtpdGVtX2lkLCB0aW1lLm1rdGltZShub3cudGltZXR1cGxlKCkpXSkK
KyAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9pdGVtX2lzX2xvY2tlZChpdGVtX2lkKToKKyAgICAg
ICAgICAgICAgICBzZWxmLl9sb2NrX2l0ZW0oaXRlbV9pZCwgbm93LCBib3RfaWQpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGl0ZW1faWQKICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgIGRlZiB0
aW1lX2Zvcl9pdGVtKHNlbGYsIGl0ZW1faWQpOgotICAgICAgICBmb3IgYWN0aXZlX2l0ZW1faWQs
IHRpbWUgaW4gc2VsZi5faXRlbV90aW1lX3BhaXJzKCk6Ci0gICAgICAgICAgICBpZiBhY3RpdmVf
aXRlbV9pZCA9PSBpdGVtX2lkOgotICAgICAgICAgICAgICAgIHJldHVybiBkYXRldGltZS5mcm9t
dGltZXN0YW1wKHRpbWUpCisgICAgZGVmIGxvY2tfZm9yX2l0ZW0oc2VsZiwgaXRlbV9pZCk6Cisg
ICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IHJ1biBpbiBhIHRyYW5zYWN0aW9u
LgorICAgICAgICBmb3IgbG9jayBpbiBzZWxmLl9sb2NrX2VudHJpZXMoKToKKyAgICAgICAgICAg
IGlmIGxvY2suaXRlbV9pZCgpID09IGl0ZW1faWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIGxv
Y2sKICAgICAgICAgcmV0dXJuIE5vbmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2Vy
dmVyL21vZGVsL2FjdGl2ZXdvcmtpdGVtc191bml0dGVzdC5weSBiL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL21vZGVsL2FjdGl2ZXdvcmtpdGVtc191bml0dGVzdC5weQppbmRleCBiOGM2MjBhYTA1
MTE4ZWM1YjA3NTI4N2RmODRkM2QzMzcxOWM5OTRmLi45MjcyY2ZlNjMyYzMxODBhZjBhZTEyZjA5
NWU0NzEwZDhhY2M4NzE1IDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2Rl
bC9hY3RpdmV3b3JraXRlbXNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2
ZXIvbW9kZWwvYWN0aXZld29ya2l0ZW1zX3VuaXR0ZXN0LnB5CkBAIC00OSwxNiArNDksMjAgQEAg
Y2xhc3MgQWN0aXZlV29ya0l0ZW1zVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHF1
ZXVlZF9pdGVtcyA9IFsxLCAyXQogICAgICAgICAjIGRiLk1vZGVsIG9ubHkgc3RvcmVzIGRhdGVz
IHRvIHNlY29uZCByZXNvbHV0aW9uLCBzbyB3ZSB1c2UgYW4gZXhwbGljaXQgZGF0ZXRpbWUgd2l0
aG91dCBtaWxsaXNlY29uZHMuCiAgICAgICAgIHRpbWUgPSBkYXRldGltZSgyMDExLCA0LCAxOCwg
MTgsIDUwLCA0NCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5uZXh0X2l0ZW0ocXVl
dWVkX2l0ZW1zLCB0aW1lKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5uZXh0
X2l0ZW0oWzFdLCB0aW1lKSwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5u
ZXh0X2l0ZW0oW10sIHRpbWUpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGl0ZW1z
Lm5leHRfaXRlbShxdWV1ZWRfaXRlbXMsIHRpbWUsICJ0ZXN0LWJvdCIpLCAxKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGl0ZW1zLm5leHRfaXRlbShbMV0sIHRpbWUsICJ0ZXN0LWJvdCIpLCBO
b25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGl0ZW1zLm5leHRfaXRlbShbXSwgdGltZSwg
InRlc3QtYm90IiksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXRlbXMubmV4dF9p
dGVtKHF1ZXVlZF9pdGVtcywgdGltZSwgTm9uZSksIDIpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChpdGVtcy50aW1lX2Zvcl9pdGVtKDEpLCB0aW1lKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGl0ZW1zLnRpbWVfZm9yX2l0ZW0oMiksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoaXRlbXMubG9ja19mb3JfaXRlbSgxKS5sb2NrX3RpbWUoKSwgdGltZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChpdGVtcy5sb2NrX2Zvcl9pdGVtKDEpLmJvdF9pZCgpLCAidGVzdC1ib3Qi
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGl0ZW1zLmxvY2tfZm9yX2l0ZW0oMikubG9ja190
aW1lKCksIHRpbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXRlbXMubG9ja19mb3JfaXRl
bSgyKS5ib3RfaWQoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy5sb2Nr
X2Zvcl9pdGVtKDMpLCBOb25lKQogCiAgICAgICAgIGl0ZW1zLmV4cGlyZV9pdGVtKDEpCiAgICAg
ICAgICMgZXhwaXJlX2l0ZW0gdXNlcyBhIHRyYW5zYWN0aW9uIHNvIGl0IGRvZXNuJ3QgdGFrZSBl
ZmZlY3Qgb24gdGhlIGN1cnJlbnQgb2JqZWN0LgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGl0
ZW1zLnRpbWVfZm9yX2l0ZW0oMSksIHRpbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXRl
bXMubG9ja19mb3JfaXRlbSgxKS5sb2NrX3RpbWUoKSwgdGltZSkKICAgICAgICAgIyBJZiB3ZSBs
b29rIHVwIHRoZSBzYXZlZCBvYmplY3QsIHdlIHNlZSBpdCdzIGJlZW4gdXBkYXRlZC4KICAgICAg
ICAgaXRlbXMgPSBBY3RpdmVXb3JrSXRlbXMubG9va3VwX2J5X3F1ZXVlKCJ0ZXN0LXF1ZXVlIikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtcy50aW1lX2Zvcl9pdGVtKDEpLCBOb25lKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGl0ZW1zLmxvY2tfZm9yX2l0ZW0oMSksIE5vbmUpCmRp
ZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXMucHkgYi9Ub29s
cy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXMucHkKaW5kZXggYmQ1ZTdlZDYyODRlM2Q0
YjU0YThkNWIzZjEyMGQ4ZTMxZDMwOWMzZC4uNzg1NWIyZmYyMjFjZmZhMmNlZWI1OWUwNDE0ODRh
NTc4ZmNjMzRmMSAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVl
dWVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlcy5weQpAQCAt
MjgsNiArMjgsOSBAQAogCiAKIGltcG9ydCByZQorZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
bWUKKworZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dCBpbXBvcnQgZGIKIAogZnJvbSBtb2RlbC5h
Y3RpdmV3b3JraXRlbXMgaW1wb3J0IEFjdGl2ZVdvcmtJdGVtcwogZnJvbSBtb2RlbC53b3JraXRl
bXMgaW1wb3J0IFdvcmtJdGVtcwpAQCAtNzIsMTMgKzc1LDI1IEBAIGNsYXNzIFF1ZXVlKG9iamVj
dCk6CiAgICAgZGVmIHdvcmtfaXRlbXMoc2VsZik6CiAgICAgICAgIHJldHVybiBXb3JrSXRlbXMu
bG9va3VwX2J5X3F1ZXVlKHNlbGYuX25hbWUpCiAKLSAgICAjIEZJWE1FOiBhY3RpdmVfd29ya19p
dGVtcyBpcyBhIGJhZCBuYW1lIGZvciB0aGlzIGxvY2stdGFibGUuCi0gICAgZGVmIGFjdGl2ZV93
b3JrX2l0ZW1zKHNlbGYpOgorICAgIGRlZiBsb2NrX3RhYmxlKHNlbGYpOgogICAgICAgICByZXR1
cm4gQWN0aXZlV29ya0l0ZW1zLmxvb2t1cF9ieV9xdWV1ZShzZWxmLl9uYW1lKQogCiAgICAgZGVm
IF9jYXBsaXRhbGl6ZV9hZnRlcl9kYXNoKHNlbGYsIHN0cmluZyk6CiAgICAgICAgIHJldHVybiAi
LSIuam9pbihbd29yZFswXS51cHBlcigpICsgd29yZFsxOl0gZm9yIHdvcmQgaW4gc3RyaW5nLnNw
bGl0KCItIildKQogCisgICAgIyBNYXliZSB0aGlzIHNob3VsZCBiZSBpbiBBY3RpdmVXb3JrSXRl
bXM/CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfYXNzaWduX3BhdGNoKGtleSwgd29ya19p
dGVtX2lkcywgYm90X2lkKToKKyAgICAgICAgbm93ID0gZGF0ZXRpbWUubm93KCkKKyAgICAgICAg
bG9ja190YWJsZSA9IGRiLmdldChrZXkpCisgICAgICAgIGxvY2tfdGFibGUuZGVhY3RpdmF0ZV9l
eHBpcmVkKG5vdykKKyAgICAgICAgbmV4dF9pdGVtID0gbG9ja190YWJsZS5uZXh0X2l0ZW0od29y
a19pdGVtX2lkcywgbm93LCBib3RfaWQpCisgICAgICAgIGxvY2tfdGFibGUucHV0KCkKKyAgICAg
ICAgcmV0dXJuIG5leHRfaXRlbQorCisgICAgZGVmIGFzc2lnbl9uZXh0X2l0ZW0oc2VsZiwgYm90
X2lkPU5vbmUpOgorICAgICAgICByZXR1cm4gZGIucnVuX2luX3RyYW5zYWN0aW9uKHNlbGYuX2Fz
c2lnbl9wYXRjaCwgc2VsZi5sb2NrX3RhYmxlKCkua2V5KCksIHNlbGYud29ya19pdGVtcygpLml0
ZW1faWRzLCBib3RfaWQpCisKICAgICAjIEZvciB1c2UgaW4gc3RhdHVzIGJ1YmJsZXMgb3IgdGFi
bGUgaGVhZGVycwogICAgIGRlZiBzaG9ydF9uYW1lKHNlbGYpOgogICAgICAgICAjIEhBQ0s6IGNo
cm9taXVtLWV3cyBpcyBpbmNvcnJlY3RseSBuYW1lZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVl
U3RhdHVzU2VydmVyL3RlbXBsYXRlcy9xdWV1ZXN0YXR1cy5odG1sIGIvVG9vbHMvUXVldWVTdGF0
dXNTZXJ2ZXIvdGVtcGxhdGVzL3F1ZXVlc3RhdHVzLmh0bWwKaW5kZXggZjhlYjYxZTRlZjA3YjE1
MGM5MTg4MmEyYzA0MTRkNzA0MGY4Y2MwMS4uNWUzZjIyZGRjYzgyZWEzNDllMmYyMTkwNWE2ZTgy
MDAwNDNmMTliMyAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvdGVtcGxhdGVz
L3F1ZXVlc3RhdHVzLmh0bWwKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvdGVtcGxhdGVz
L3F1ZXVlc3RhdHVzLmh0bWwKQEAgLTY5LDYgKzY5LDkgQEAgYnkgPGEgaHJlZj0iL3F1ZXVlLXN0
YXR1cy97e2xhc3RfYm9vdC5xdWV1ZV9uYW1lfX0vYm90cy97e2xhc3RfYm9vdC5ib3RfaWR9fSI+
e3sKICAgICAgICAgICAgIHslIGlmIHJvdy5sb2NrX3RpbWUgJX0KICAgICAgICAgICAgICAgICB7
eyByb3cubG9ja190aW1lfHRpbWVzaW5jZSB9fSBhZ28KICAgICAgICAgICAgIHslIGVuZGlmICV9
CisgICAgICAgICAgICB7JSBpZiByb3cubG9ja19ib3RfaWQgJX0KKyAgICAgICAgICAgICAgICBi
eSA8YSBocmVmPSIvcXVldWUtc3RhdHVzL3t7cXVldWVfbmFtZX19L2JvdHMve3tyb3cubG9ja19i
b3RfaWR9fSI+e3sgcm93LmxvY2tfYm90X2lkIH19PC9hPgorICAgICAgICAgICAgeyUgZW5kaWYg
JX0KICAgICAgICAgPC90ZD4KICAgICA8L3RyPgogICAgIHslIGVuZGZvciAlfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>