<?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>137363</bug_id>
          
          <creation_ts>2014-10-02 15:17:52 -0700</creation_ts>
          <short_desc>Eliminate update-work-items</short_desc>
          <delta_ts>2014-10-02 16:18:02 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1039007</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-02 15:17:52 -0700</bug_when>
    <thetext>Commit queue and EWS feeders work differently:
- EWS feeder submits attachments individually via submit-to-ews.
- commit queue send the whole list of eligible attachments at once, and then the server figures out which are new, and which disappeared from the queue.

This doesn&apos;t have to be different. Directly manipulating WorkItems from the client is confusing and racy, as the bot will continue processing even if the item is removed (and then the user can start another commit queue with the same patch by flipping cq+ back).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039008</commentid>
    <comment_count>1</comment_count>
      <attachid>239148</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-02 15:25:23 -0700</bug_when>
    <thetext>Created attachment 239148
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039010</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-02 15:28:29 -0700</bug_when>
    <thetext>Attachment 239148 did not pass style-queue:


ERROR: Tools/QueueStatusServer/model/workitems.py:68:  [WorkItems.add_work_item] Instance of &apos;WorkItems&apos; has no &apos;key&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/model/workitems.py:72:  [WorkItems.add_high_priority_work_item] Instance of &apos;WorkItems&apos; has no &apos;key&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/handlers/submittoqueue.py:37:  [SubmitToQueue.get] Instance of &apos;SubmitToQueue&apos; has no &apos;response&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/handlers/submittoqueue.py:40:  [SubmitToQueue._queue_from_request] Instance of &apos;SubmitToQueue&apos; has no &apos;request&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/handlers/submittoqueue.py:43:  [SubmitToQueue._queue_from_request] Instance of &apos;SubmitToQueue&apos; has no &apos;response&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/handlers/submittoqueue.py:65:  [SubmitToQueue.post] Instance of &apos;SubmitToQueue&apos; has no &apos;response&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/handlers/submittoqueue.py:68:  [SubmitToQueue.post] Instance of &apos;SubmitToQueue&apos; has no &apos;_int_from_request&apos; member  [pylint/E1101] [5]
ERROR: Tools/QueueStatusServer/handlers/submittoqueue.py:71:  [SubmitToQueue.post] Instance of &apos;SubmitToQueue&apos; has no &apos;request&apos; member  [pylint/E1101] [5]
ERROR: Tools/Scripts/webkitpy/tool/bot/feeders.py:63:  [CommitQueueFeeder.feed] Instance of &apos;CommitQueueFeeder&apos; has no &apos;_ids_sent_to_server&apos; member  [pylint/E1101] [5]
Total errors found: 9 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039025</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-02 16:17:55 -0700</bug_when>
    <thetext>No, that&apos;s not a good idea. Feeder sends all items to the server every 30 seconds, and now it would be sending them individually, which is not good performance.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239148</attachid>
            <date>2014-10-02 15:25:23 -0700</date>
            <delta_ts>2014-10-02 16:18:02 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>NoUpdateWorkItems.txt</filename>
            <type>text/plain</type>
            <size>24431</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3NDIzMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ0IEBACisyMDE0LTEwLTAyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIEVsaW1pbmF0ZSB1cGRhdGUtd29yay1pdGVtcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9hcHAu
eWFtbDogVXBkYXRlIHZlcnNpb24uCisKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5k
bGVycy9zdWJtaXR0b3F1ZXVlLnB5OiBBZGRlZC4KKyAgICAgICAgU2ltaWxhciB0byBzdWJtaXR0
b2V3cywgYnV0IHRha2VzIGEgcXVldWUgbmFtZSwgYW5kIGFsd2F5cyBhZGRzLCBldmVuIGlmIHN0
YXR1cworICAgICAgICBtZXNzYWdlcyB3ZXJlIGxvZ2dlZCBiZWZvcmUgKFdvcmtJdGVtcyBndWFy
YW50ZWVzIHRoYXQgd2Ugd29uJ3QgaGF2ZSB0aGUgc2FtZSBwYXRjaAorICAgICAgICBpbiB0aGUg
cXVldWUgdHdpY2UpLgorCisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvdXBk
YXRld29ya2l0ZW1zLnB5OiBSZW1vdmVkLgorCisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIv
bWFpbi5weTogVXBkYXRlZCBVUkxzLgorCisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvbW9k
ZWwvd29ya2l0ZW1zLnB5OiBBZGRlZCBhIHdheSB0byBhZGQgYXQgdGhlIGJlZ2dpbm5pbmcgb2YK
KyAgICAgICAgdGhlIHF1ZXVlLgorCisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvdGVtcGxh
dGVzL3N1Ym1pdHRvcXVldWUuaHRtbDogQWRkZWQuCisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2
ZXIvdGVtcGxhdGVzL3VwZGF0ZXdvcmtpdGVtcy5odG1sOiBSZW1vdmVkLgorICAgICAgICBTaWxs
eSBIVE1MIHdyYXBwZXJzIGZvciBtZWNoYW5pemUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHk6CisgICAgICAgIChCdWd6aWxsYVF1
ZXJpZXMuX3BhcnNlX2F0dGFjaG1lbnRfaWRzX3JlcXVlc3RfcXVlcnkpOiBSZW1vdmVkIGFubm95
aW5nIGxvZ2dpbmcgdGhhdAorICAgICAgICB3YXMgY29tcGxpY2F0aW5nIGRlYnVnZ2luZy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9zdGF0dXNzZXJ2ZXIucHk6IFJl
cGxhY2VkIHVwZGF0ZV93b3JrX2l0ZW1zIHdpdGggc3VibWl0X3RvX3F1ZXVlLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZlcl9tb2NrLnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZmVlZGVyc191bml0dGVzdC5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5
OgorICAgICAgICBVcGRhdGVkIHRlc3RzIGFjY29yZGluZ2x5LgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzLnB5OiBTd2l0Y2hlZCB0byBzZW5kaW5nIGNvbW1p
dCBxdWV1ZSB0YXNrcworICAgICAgICBpbmRpdmlkdWFsbHkuIFRoaXMgaGFwcGVucyByZXBlYXRl
ZGx5IGluIGVhY2ggY3ljbGUsIGFzIGl0IHVzZWQgdG8uIE9uZSBkb3duc2lkZQorICAgICAgICBp
cyB0aGF0IHdlIG5vdyBoYXZlIG11bHRpcGxlIFBPU1RzIGVhY2ggY3ljbGUgZm9yIGFsbCBpdGVt
cyBpbiB0aGUgcXVldWUuIElmIHRoYXQKKyAgICAgICAgYmVjb21lcyBhIHByb2JsZW0sIHdlIGNh
biBjaGFuZ2UgdG8gcmUtc3VibWl0IGV4aXN0aW5nIGl0ZW1zIGxlc3MgZnJlcXVlbnRseS4KKwog
MjAxNC0xMC0wMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3NDEyMC4KSW5kZXg6IFRvb2xzL1F1ZXVl
U3RhdHVzU2VydmVyL2FwcC55YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F1ZXVlU3RhdHVzU2Vy
dmVyL2FwcC55YW1sCShyZXZpc2lvbiAxNzQyMzEpCisrKyBUb29scy9RdWV1ZVN0YXR1c1NlcnZl
ci9hcHAueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIGFwcGxpY2F0aW9uOiB3
ZWJraXQtcXVldWVzCi12ZXJzaW9uOiAxNzQxNTggIyBCdWd6aWxsYSBidWcgSUQgb2YgbGFzdCBt
YWpvciBjaGFuZ2UKK3ZlcnNpb246IGFwICMgQnVnemlsbGEgYnVnIElEIG9mIGxhc3QgbWFqb3Ig
Y2hhbmdlCiBydW50aW1lOiBweXRob24KIGFwaV92ZXJzaW9uOiAxCiAKSW5kZXg6IFRvb2xzL1F1
ZXVlU3RhdHVzU2VydmVyL21haW4ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvUXVldWVTdGF0dXNT
ZXJ2ZXIvbWFpbi5weQkocmV2aXNpb24gMTc0MjMxKQorKysgVG9vbHMvUXVldWVTdGF0dXNTZXJ2
ZXIvbWFpbi5weQkod29ya2luZyBjb3B5KQpAQCAtNDgsMTEgKzQ4LDExIEBAIGZyb20gaGFuZGxl
cnMucmVsZWFzZWxvY2sgaW1wb3J0IFJlbGVhc2UKIGZyb20gaGFuZGxlcnMuc2hvd3Jlc3VsdHMg
aW1wb3J0IFNob3dSZXN1bHRzCiBmcm9tIGhhbmRsZXJzLnN0YXR1c2J1YmJsZSBpbXBvcnQgU3Rh
dHVzQnViYmxlCiBmcm9tIGhhbmRsZXJzLnN1Ym1pdHRvZXdzIGltcG9ydCBTdWJtaXRUb0VXUwor
ZnJvbSBoYW5kbGVycy5zdWJtaXR0b3F1ZXVlIGltcG9ydCBTdWJtaXRUb1F1ZXVlCiBmcm9tIGhh
bmRsZXJzLnN2bnJldmlzaW9uIGltcG9ydCBTVk5SZXZpc2lvbgogZnJvbSBoYW5kbGVycy5zeW5j
cXVldWVsb2dzIGltcG9ydCBTeW5jUXVldWVMb2dzCiBmcm9tIGhhbmRsZXJzLnVwZGF0ZXN0YXR1
cyBpbXBvcnQgVXBkYXRlU3RhdHVzCiBmcm9tIGhhbmRsZXJzLnVwZGF0ZXN2bnJldmlzaW9uIGlt
cG9ydCBVcGRhdGVTVk5SZXZpc2lvbgotZnJvbSBoYW5kbGVycy51cGRhdGV3b3JraXRlbXMgaW1w
b3J0IFVwZGF0ZVdvcmtJdGVtcwogCiAKIHdlYmFwcC50ZW1wbGF0ZS5yZWdpc3Rlcl90ZW1wbGF0
ZV9saWJyYXJ5KCdmaWx0ZXJzLndlYmtpdF9leHRyYXMnKQpAQCAtNjQsNiArNjQsNyBAQCByb3V0
ZXMgPSBbCiAgICAgKHInL3BhdGNoLXN0YXR1cy8oLiopLyguKiknLCBQYXRjaFN0YXR1cyksCiAg
ICAgKHInL3BhdGNoLyguKiknLCBQYXRjaCksCiAgICAgKHInL3N1Ym1pdC10by1ld3MnLCBTdWJt
aXRUb0VXUyksCisgICAgKCcvc3VibWl0LXRvLXF1ZXVlJywgU3VibWl0VG9RdWV1ZSksCiAgICAg
KHInL3Jlc3VsdHMvKC4qKScsIFNob3dSZXN1bHRzKSwKICAgICAocicvc3RhdHVzLWJ1YmJsZS8o
LiopJywgU3RhdHVzQnViYmxlKSwKICAgICAocicvc3ZuLXJldmlzaW9uLyguKiknLCBTVk5SZXZp
c2lvbiksCkBAIC03MywxMCArNzQsOSBAQCByb3V0ZXMgPSBbCiAgICAgKHInL3F1ZXVlLXN0YXR1
cy8oLiopJywgUXVldWVTdGF0dXMpLAogICAgIChyJy9xdWV1ZS1zdGF0dXMtanNvbi8oLiopJywg
UXVldWVTdGF0dXNKU09OKSwKICAgICAocicvbmV4dC1wYXRjaC8oLiopJywgTmV4dFBhdGNoKSwK
LSAgICAocicvcmVsZWFzZS1wYXRjaCcsIFJlbGVhc2VQYXRjaCksCi0gICAgKHInL3JlbGVhc2Ut
bG9jaycsIFJlbGVhc2VMb2NrKSwKKyAgICAoJy9yZWxlYXNlLXBhdGNoJywgUmVsZWFzZVBhdGNo
KSwKKyAgICAoJy9yZWxlYXNlLWxvY2snLCBSZWxlYXNlTG9jayksCiAgICAgKCcvdXBkYXRlLXN0
YXR1cycsIFVwZGF0ZVN0YXR1cyksCi0gICAgKCcvdXBkYXRlLXdvcmstaXRlbXMnLCBVcGRhdGVX
b3JrSXRlbXMpLAogICAgICgnL3VwZGF0ZS1zdm4tcmV2aXNpb24nLCBVcGRhdGVTVk5SZXZpc2lv
biksCiAgICAgKCcvYWN0aXZlLWJvdHMnLCBBY3RpdmVCb3RzKSwKIF0KSW5kZXg6IFRvb2xzL1F1
ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N1Ym1pdHRvcXVldWUucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3VibWl0dG9xdWV1ZS5weQkocmV2aXNp
b24gMCkKKysrIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N1Ym1pdHRvcXVldWUu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0IGltcG9ydCB3ZWJh
cHAsIGRiCitmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0LndlYmFwcCBpbXBvcnQgdGVtcGxhdGUK
KworZnJvbSBoYW5kbGVycy51cGRhdGViYXNlIGltcG9ydCBVcGRhdGVCYXNlCitmcm9tIGxvZ2dl
cnMucmVjb3JkcGF0Y2hldmVudCBpbXBvcnQgUmVjb3JkUGF0Y2hFdmVudAorZnJvbSBtb2RlbC5h
dHRhY2htZW50IGltcG9ydCBBdHRhY2htZW50Citmcm9tIG1vZGVsLnF1ZXVlcyBpbXBvcnQgUXVl
dWUKK2Zyb20gbW9kZWwud29ya2l0ZW1zIGltcG9ydCBXb3JrSXRlbXMKKworZnJvbSBkYXRldGlt
ZSBpbXBvcnQgZGF0ZXRpbWUKKworCitjbGFzcyBTdWJtaXRUb1F1ZXVlKFVwZGF0ZUJhc2UpOgor
ICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKHRlbXBs
YXRlLnJlbmRlcigidGVtcGxhdGVzL3N1Ym1pdHRvcXVldWUuaHRtbCIsIE5vbmUpKQorCisgICAg
ZGVmIF9xdWV1ZV9mcm9tX3JlcXVlc3Qoc2VsZik6CisgICAgICAgIHF1ZXVlX25hbWUgPSBzZWxm
LnJlcXVlc3QuZ2V0KCJxdWV1ZV9uYW1lIikKKyAgICAgICAgcXVldWUgPSBRdWV1ZS5xdWV1ZV93
aXRoX25hbWUocXVldWVfbmFtZSkKKyAgICAgICAgaWYgbm90IHF1ZXVlOgorICAgICAgICAgICAg
c2VsZi5yZXNwb25zZS5vdXQud3JpdGUoIlwiJXNcIiBpcyBub3QgYSBrbndvbiBxdWV1ZS4gS25v
d24gcXVldWVzOiAlcyIgJSAocXVldWVfbmFtZSwgUXVldWUuYWxsKCkpKQorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHF1ZXVlCisKKyAgICBkZWYgX3Nob3VsZF9hZGRf
dG9fcXVldWUoc2VsZiwgcXVldWUsIGF0dGFjaG1lbnQpOgorICAgICAgICAjIFRoZSBmZWVkZXIg
cXVldWUgb25seSBzdWJtaXRzIGVhY2ggcGF0Y2ggb25jZSBub3JtYWxseSwgYnV0IGl0IGxvc2Vz
IGl0cyBtZW1vcnkKKyAgICAgICAgIyB3aGVuIHJlc3RhcnRlZC4gV2UgZG8gbm90IHdhbnQgdG8g
cmUtYWRkIGFsbCBwYXRjaGVzIGlmIHRoYXQgaGFwcGVucy4KKyAgICAgICAgbGF0ZXN0X3N0YXR1
cyA9IGF0dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkKKyAgICAgICAgcmV0dXJuIG5v
dCBsYXRlc3Rfc3RhdHVzCisKKyAgICBkZWYgX2FkZF9hdHRhY2htZW50X3RvX3F1ZXVlKHNlbGYs
IHF1ZXVlLCBhdHRhY2htZW50LCBpc19yb2xsb3V0KToKKyAgICAgICAgaWYgbm90IHNlbGYuX3No
b3VsZF9hZGRfdG9fcXVldWUocXVldWUsIGF0dGFjaG1lbnQpOgorICAgICAgICAgICAgcmV0dXJu
CisgICAgICAgIGlmIGlzX3JvbGxvdXQ6CisgICAgICAgICAgICBxdWV1ZS53b3JrX2l0ZW1zKCku
YWRkX2hpZ2hfcHJpb3JpdHlfd29ya19pdGVtKGF0dGFjaG1lbnQuaWQpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBxdWV1ZS53b3JrX2l0ZW1zKCkuYWRkX3dvcmtfaXRlbShhdHRhY2htZW50
LmlkKQorICAgICAgICBSZWNvcmRQYXRjaEV2ZW50LmFkZGVkKGF0dGFjaG1lbnQuaWQsIHF1ZXVl
Lm5hbWUoKSkKKworICAgIGRlZiBwb3N0KHNlbGYpOgorICAgICAgICBxdWV1ZSA9IHNlbGYuX3F1
ZXVlX2Zyb21fcmVxdWVzdCgpCisgICAgICAgIGlmIG5vdCBxdWV1ZToKKyAgICAgICAgICAgIHNl
bGYucmVzcG9uc2Uuc2V0X3N0YXR1cyg1MDApCisgICAgICAgICAgICByZXR1cm4KKworICAgICAg
ICBhdHRhY2htZW50X2lkID0gc2VsZi5faW50X2Zyb21fcmVxdWVzdCgiYXR0YWNobWVudF9pZCIp
CisgICAgICAgIGF0dGFjaG1lbnQgPSBBdHRhY2htZW50KGF0dGFjaG1lbnRfaWQpCisKKyAgICAg
ICAgaXNfcm9sbG91dCA9IHNlbGYucmVxdWVzdC5nZXQoImlzX3JvbGxvdXQiKSA9PSAib24iCisK
KyAgICAgICAgc2VsZi5fYWRkX2F0dGFjaG1lbnRfdG9fcXVldWUocXVldWUsIGF0dGFjaG1lbnQs
IGlzX3JvbGxvdXQpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBUb29scy9RdWV1ZVN0YXR1c1NlcnZl
ci9oYW5kbGVycy9zdWJtaXR0b3F1ZXVlLnB5Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5
bGUKIyMgLTAsMCArMSAjIworTEYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRl
eDogVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvdXBkYXRld29ya2l0ZW1zLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3VwZGF0ZXdvcmtp
dGVtcy5weQkocmV2aXNpb24gMTc0MjMxKQorKysgVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFu
ZGxlcnMvdXBkYXRld29ya2l0ZW1zLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDg3ICswLDAgQEAK
LSMgQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi1mcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0IGltcG9ydCB3ZWJh
cHAsIGRiCi1mcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0LndlYmFwcCBpbXBvcnQgdGVtcGxhdGUK
LQotZnJvbSBoYW5kbGVycy51cGRhdGViYXNlIGltcG9ydCBVcGRhdGVCYXNlCi1mcm9tIGxvZ2dl
cnMucmVjb3JkcGF0Y2hldmVudCBpbXBvcnQgUmVjb3JkUGF0Y2hFdmVudAotZnJvbSBtb2RlbC5x
dWV1ZXMgaW1wb3J0IFF1ZXVlCi1mcm9tIG1vZGVsLndvcmtpdGVtcyBpbXBvcnQgV29ya0l0ZW1z
Ci0KLWZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi0KLQotY2xhc3MgVXBkYXRlV29ya0l0
ZW1zKFVwZGF0ZUJhc2UpOgotICAgIGRlZiBnZXQoc2VsZik6Ci0gICAgICAgIHNlbGYucmVzcG9u
c2Uub3V0LndyaXRlKHRlbXBsYXRlLnJlbmRlcigidGVtcGxhdGVzL3VwZGF0ZXdvcmtpdGVtcy5o
dG1sIiwgTm9uZSkpCi0KLSAgICBkZWYgX3BhcnNlX3dvcmtfaXRlbXNfc3RyaW5nKHNlbGYsIGl0
ZW1zX3N0cmluZyk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGl0ZW1fc3RyaW5ncyA9IGl0
ZW1zX3N0cmluZy5zcGxpdCgiICIpIGlmIGl0ZW1zX3N0cmluZyBlbHNlIFtdCi0gICAgICAgICAg
ICByZXR1cm4gbWFwKGludCwgaXRlbV9zdHJpbmdzKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJv
cjoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgX3VwZGF0ZV93b3JrX2l0ZW1z
X2Zyb21fcmVxdWVzdChzZWxmLCB3b3JrX2l0ZW1zKToKLSAgICAgICAgaXRlbXNfc3RyaW5nID0g
c2VsZi5yZXF1ZXN0LmdldCgid29ya19pdGVtcyIpCi0gICAgICAgIG5ld193b3JrX2l0ZW1zID0g
c2VsZi5fcGFyc2Vfd29ya19pdGVtc19zdHJpbmcoaXRlbXNfc3RyaW5nKQotICAgICAgICBpZiBu
ZXdfd29ya19pdGVtcyA9PSBOb25lOgotICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5vdXQud3Jp
dGUoIkZhaWxlZCB0byBwYXJzZSB3b3JrIGl0ZW1zOiAlcyIgJSBpdGVtc19zdHJpbmcpCi0gICAg
ICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgd29ya19pdGVtcy5pdGVtX2lkcyA9IG5ld193
b3JrX2l0ZW1zCi0gICAgICAgIHdvcmtfaXRlbXMuZGF0ZSA9IGRhdGV0aW1lLnV0Y25vdygpCi0g
ICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgX3F1ZXVlX2Zyb21fcmVxdWVzdChzZWxmKToK
LSAgICAgICAgcXVldWVfbmFtZSA9IHNlbGYucmVxdWVzdC5nZXQoInF1ZXVlX25hbWUiKQotICAg
ICAgICBxdWV1ZSA9IFF1ZXVlLnF1ZXVlX3dpdGhfbmFtZShxdWV1ZV9uYW1lKQotICAgICAgICBp
ZiBub3QgcXVldWU6Ci0gICAgICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgiXCIlc1wi
IGlzIG5vdCBpbiBxdWV1ZXMgJXMiICUgKHF1ZXVlX25hbWUsIFF1ZXVlLmFsbCgpKSkKLSAgICAg
ICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBxdWV1ZQotCi0gICAgZGVmIHBvc3Qo
c2VsZik6Ci0gICAgICAgIHF1ZXVlID0gc2VsZi5fcXVldWVfZnJvbV9yZXF1ZXN0KCkKLSAgICAg
ICAgaWYgbm90IHF1ZXVlOgotICAgICAgICAgICAgc2VsZi5yZXNwb25zZS5zZXRfc3RhdHVzKDUw
MCkKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICB3b3JrX2l0ZW1zID0gcXVldWUud29ya19p
dGVtcygpCi0gICAgICAgIG9sZF9pdGVtcyA9IHNldCh3b3JrX2l0ZW1zLml0ZW1faWRzKQotCi0g
ICAgICAgIHN1Y2Nlc3MgPSBzZWxmLl91cGRhdGVfd29ya19pdGVtc19mcm9tX3JlcXVlc3Qod29y
a19pdGVtcykKLSAgICAgICAgaWYgbm90IHN1Y2Nlc3M6Ci0gICAgICAgICAgICBzZWxmLnJlc3Bv
bnNlLnNldF9zdGF0dXMoNTAwKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIG5ld19pdGVt
cyA9IHNldCh3b3JrX2l0ZW1zLml0ZW1faWRzKQotICAgICAgICB3b3JrX2l0ZW1zLnB1dCgpCi0K
LSAgICAgICAgZm9yIHdvcmtfaXRlbSBpbiBuZXdfaXRlbXMgLSBvbGRfaXRlbXM6Ci0gICAgICAg
ICAgICBSZWNvcmRQYXRjaEV2ZW50LmFkZGVkKHdvcmtfaXRlbSwgcXVldWUubmFtZSgpKQotICAg
ICAgICBmb3Igd29ya19pdGVtIGluIG9sZF9pdGVtcyAtIG5ld19pdGVtczoKLSAgICAgICAgICAg
IFJlY29yZFBhdGNoRXZlbnQuc3RvcHBlZCh3b3JrX2l0ZW0sIHF1ZXVlLm5hbWUoKSkKSW5kZXg6
IFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3dvcmtpdGVtcy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC93b3JraXRlbXMucHkJKHJldmlzaW9uIDE3
NDIzMSkKKysrIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3dvcmtpdGVtcy5weQkod29y
a2luZyBjb3B5KQpAQCAtNTMsMTYgKzUzLDIzIEBAIGNsYXNzIFdvcmtJdGVtcyhkYi5Nb2RlbCwg
UXVldWVQcm9wZXJ0eU0KICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIEBzdGF0aWNtZXRob2QK
LSAgICBkZWYgX3VuZ3VhcmRlZF9hZGQoa2V5LCBhdHRhY2htZW50X2lkKToKKyAgICBkZWYgX3Vu
Z3VhcmRlZF9hZGQoa2V5LCBhdHRhY2htZW50X2lkLCBoaWdoX3ByaW9yaXR5KToKICAgICAgICAg
d29ya19pdGVtcyA9IGRiLmdldChrZXkpCiAgICAgICAgIGlmIGF0dGFjaG1lbnRfaWQgaW4gd29y
a19pdGVtcy5pdGVtX2lkczoKICAgICAgICAgICAgIHJldHVybgotICAgICAgICB3b3JrX2l0ZW1z
Lml0ZW1faWRzLmFwcGVuZChhdHRhY2htZW50X2lkKQorICAgICAgICBpZiBoaWdoX3ByaW9yaXR5
OgorICAgICAgICAgICAgd29ya19pdGVtcy5pdGVtX2lkcy5pbnNlcnQoMCwgYXR0YWNobWVudF9p
ZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdvcmtfaXRlbXMuaXRlbV9pZHMuYXBwZW5k
KGF0dGFjaG1lbnRfaWQpCiAgICAgICAgIHdvcmtfaXRlbXMucHV0KCkKIAogICAgICMgQmVjYXVz
ZSB0aGlzIHVzZXMgLmtleSgpIHNlbGYuaXNfc2F2ZWQoKSBtdXN0IGJlIFRydWUgb3IgdGhpcyB3
aWxsIHRocm93IE5vdFNhdmVkRXJyb3IuCiAgICAgZGVmIGFkZF93b3JrX2l0ZW0oc2VsZiwgYXR0
YWNobWVudF9pZCk6Ci0gICAgICAgIGRiLnJ1bl9pbl90cmFuc2FjdGlvbihzZWxmLl91bmd1YXJk
ZWRfYWRkLCBzZWxmLmtleSgpLCBhdHRhY2htZW50X2lkKQorICAgICAgICBkYi5ydW5faW5fdHJh
bnNhY3Rpb24oc2VsZi5fdW5ndWFyZGVkX2FkZCwgc2VsZi5rZXkoKSwgYXR0YWNobWVudF9pZCwg
RmFsc2UpCisKKyAgICAjIEJlY2F1c2UgdGhpcyB1c2VzIC5rZXkoKSBzZWxmLmlzX3NhdmVkKCkg
bXVzdCBiZSBUcnVlIG9yIHRoaXMgd2lsbCB0aHJvdyBOb3RTYXZlZEVycm9yLgorICAgIGRlZiBh
ZGRfaGlnaF9wcmlvcml0eV93b3JrX2l0ZW0oc2VsZiwgYXR0YWNobWVudF9pZCk6CisgICAgICAg
IGRiLnJ1bl9pbl90cmFuc2FjdGlvbihzZWxmLl91bmd1YXJkZWRfYWRkLCBzZWxmLmtleSgpLCBh
dHRhY2htZW50X2lkLCBUcnVlKQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBfdW5ndWFy
ZGVkX3JlbW92ZShrZXksIGF0dGFjaG1lbnRfaWQpOgpJbmRleDogVG9vbHMvUXVldWVTdGF0dXNT
ZXJ2ZXIvdGVtcGxhdGVzL3N1Ym1pdHRvcXVldWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9R
dWV1ZVN0YXR1c1NlcnZlci90ZW1wbGF0ZXMvc3VibWl0dG9xdWV1ZS5odG1sCShyZXZpc2lvbiAw
KQorKysgVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvdGVtcGxhdGVzL3N1Ym1pdHRvcXVldWUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYgQEAKKzxmb3JtIG5hbWU9InN1Ym1pdF90b19x
dWV1ZSIgbWV0aG9kPSJQT1NUIj4KK0F0dGFjaG1lbnQgaWQgb2YgcGF0Y2ggdG8gc3VibWl0OiA8
aW5wdXQgbmFtZT0iYXR0YWNobWVudF9pZCI+CitRdWV1ZSBuYW1lOiA8aW5wdXQgbmFtZT0icXVl
dWVfbmFtZSIgdmFsdWU9ImNvbW1pdC1xdWV1ZSI+CitJcyBhIHJvbGxvdXQ6IDxpbnB1dCBuYW1l
PSJpc19yb2xsb3V0IiB0eXBlPSJjaGVja2JveCI+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1
ZT0iU3VibWl0IGZvciBwcm9jZXNzaW5nIj4KKzwvZm9ybT4KClByb3BlcnR5IGNoYW5nZXMgb246
IFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL3RlbXBsYXRlcy9zdWJtaXR0b3F1ZXVlLmh0bWwKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMCwwICsxICMjCit0ZXh0L2h0bWwKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogVG9vbHMvUXVldWVTdGF0dXNTZXJ2
ZXIvdGVtcGxhdGVzL3VwZGF0ZXdvcmtpdGVtcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F1
ZXVlU3RhdHVzU2VydmVyL3RlbXBsYXRlcy91cGRhdGV3b3JraXRlbXMuaHRtbAkocmV2aXNpb24g
MTc0MjMxKQorKysgVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvdGVtcGxhdGVzL3VwZGF0ZXdvcmtp
dGVtcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzAsMCBAQAotPGZvcm0gbmFtZT0idXBk
YXRlX3dvcmtfaXRlbXMiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0icG9z
dCI+Ci1VcGRhdGUgd29yayBpdGVtcyBmb3IgYSBxdWV1ZTogPGlucHV0IG5hbWU9InF1ZXVlX25h
bWUiPgotIDxkaXY+Ci0gICAgIFdvcmsgSXRlbXM6Ci0gICAgPGlucHV0IG5hbWU9IndvcmtfaXRl
bXMiPgotIDwvZGl2PgotIDxkaXY+PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlVwZGF0ZSBX
b3JrIEl0ZW1zIj48L2Rpdj4KLTwvZm9ybT4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9zdGF0dXNzZXJ2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZlci5weQkocmV2aXNpb24gMTc0MjMxKQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZlci5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMTAwLDE1ICsxMDAsNiBAQCBjbGFzcyBTdGF0dXNTZXJ2ZXI6CiAgICAgICAg
IHNlbGYuX2Jyb3dzZXJbImJyb2tlbl9ib3QiXSA9IGJyb2tlbl9ib3QKICAgICAgICAgcmV0dXJu
IHNlbGYuX2Jyb3dzZXIuc3VibWl0KCkucmVhZCgpCiAKLSAgICBkZWYgX3Bvc3Rfd29ya19pdGVt
c190b19zZXJ2ZXIoc2VsZiwgcXVldWVfbmFtZSwgd29ya19pdGVtcyk6Ci0gICAgICAgIHVwZGF0
ZV93b3JrX2l0ZW1zX3VybCA9ICIlcy91cGRhdGUtd29yay1pdGVtcyIgJSBzZWxmLnVybAotICAg
ICAgICBzZWxmLl9icm93c2VyLm9wZW4odXBkYXRlX3dvcmtfaXRlbXNfdXJsKQotICAgICAgICBz
ZWxmLl9icm93c2VyLnNlbGVjdF9mb3JtKG5hbWU9InVwZGF0ZV93b3JrX2l0ZW1zIikKLSAgICAg
ICAgc2VsZi5fYnJvd3NlclsicXVldWVfbmFtZSJdID0gcXVldWVfbmFtZQotICAgICAgICB3b3Jr
X2l0ZW1zID0gbWFwKHVuaWNvZGUsIHdvcmtfaXRlbXMpICAjIC5qb2luIGV4cGVjdHMgc3RyaW5n
cwotICAgICAgICBzZWxmLl9icm93c2VyWyJ3b3JrX2l0ZW1zIl0gPSAiICIuam9pbih3b3JrX2l0
ZW1zKQotICAgICAgICByZXR1cm4gc2VsZi5fYnJvd3Nlci5zdWJtaXQoKS5yZWFkKCkKLQogICAg
IGRlZiBfcG9zdF93b3JrX2l0ZW1fdG9fZXdzKHNlbGYsIGF0dGFjaG1lbnRfaWQpOgogICAgICAg
ICBzdWJtaXRfdG9fZXdzX3VybCA9ICIlcy9zdWJtaXQtdG8tZXdzIiAlIHNlbGYudXJsCiAgICAg
ICAgIHNlbGYuX2Jyb3dzZXIub3BlbihzdWJtaXRfdG9fZXdzX3VybCkKQEAgLTE0OSw5ICsxNDAs
MTggQEAgY2xhc3MgU3RhdHVzU2VydmVyOgogICAgICAgICBfbG9nLmluZm8oIlJlbGVhc2luZyBs
b2NrIGZvciB3b3JrIGl0ZW0gJXMgZnJvbSAlcyIgJSAocGF0Y2guaWQoKSwgcXVldWVfbmFtZSkp
CiAgICAgICAgIHJldHVybiBOZXR3b3JrVHJhbnNhY3Rpb24oY29udmVydF80MDRfdG9fTm9uZT1U
cnVlKS5ydW4obGFtYmRhOiBzZWxmLl9wb3N0X3JlbGVhc2VfbG9jayhxdWV1ZV9uYW1lLCBwYXRj
aCkpCiAKLSAgICBkZWYgdXBkYXRlX3dvcmtfaXRlbXMoc2VsZiwgcXVldWVfbmFtZSwgd29ya19p
dGVtcyk6Ci0gICAgICAgIF9sb2cuZGVidWcoIlJlY29yZGluZyB3b3JrIGl0ZW1zOiAlcyBmb3Ig
JXMiICUgKHdvcmtfaXRlbXMsIHF1ZXVlX25hbWUpKQotICAgICAgICByZXR1cm4gTmV0d29ya1Ry
YW5zYWN0aW9uKCkucnVuKGxhbWJkYTogc2VsZi5fcG9zdF93b3JrX2l0ZW1zX3RvX3NlcnZlcihx
dWV1ZV9uYW1lLCB3b3JrX2l0ZW1zKSkKKyAgICBkZWYgX3Bvc3Rfd29ya19pdGVtX3RvX3F1ZXVl
KHNlbGYsIHF1ZXVlX25hbWUsIGF0dGFjaG1lbnRfaWQsIGlzX3JvbGxvdXQpOgorICAgICAgICBz
dWJtaXRfdG9fcXVldWVfdXJsID0gIiVzL3N1Ym1pdC10by1xdWV1ZSIgJSBzZWxmLnVybAorICAg
ICAgICBzZWxmLl9icm93c2VyLm9wZW4oc3VibWl0X3RvX3F1ZXVlX3VybCkKKyAgICAgICAgc2Vs
Zi5fYnJvd3Nlci5zZWxlY3RfZm9ybShuYW1lPSJzdWJtaXRfdG9fcXVldWUiKQorICAgICAgICBz
ZWxmLl9icm93c2VyWyJxdWV1ZV9uYW1lIl0gPSB1bmljb2RlKHF1ZXVlX25hbWUpCisgICAgICAg
IHNlbGYuX2Jyb3dzZXJbImF0dGFjaG1lbnRfaWQiXSA9IHVuaWNvZGUoYXR0YWNobWVudF9pZCkK
KyAgICAgICAgc2VsZi5fYnJvd3Nlci5maW5kX2NvbnRyb2woImlzX3JvbGxvdXQiKS5pdGVtc1sw
XS5zZWxlY3RlZCA9IGlzX3JvbGxvdXQKKyAgICAgICAgc2VsZi5fYnJvd3Nlci5zdWJtaXQoKQor
CisgICAgZGVmIHN1Ym1pdF90b19xdWV1ZShzZWxmLCBxdWV1ZV9uYW1lLCBhdHRhY2htZW50X2lk
LCBpc19yb2xsb3V0KToKKyAgICAgICAgX2xvZy5kZWJ1ZygiU3VibWl0dGluZyBhdHRhY2htZW50
ICVzIHRvICVzIiAlIChhdHRhY2htZW50X2lkLCBxdWV1ZV9uYW1lKSkKKyAgICAgICAgcmV0dXJu
IE5ldHdvcmtUcmFuc2FjdGlvbigpLnJ1bihsYW1iZGE6IHNlbGYuX3Bvc3Rfd29ya19pdGVtX3Rv
X3F1ZXVlKHF1ZXVlX25hbWUsIGF0dGFjaG1lbnRfaWQsIGlzX3JvbGxvdXQpKQogCiAgICAgZGVm
IHVwZGF0ZV9zdGF0dXMoc2VsZiwgcXVldWVfbmFtZSwgc3RhdHVzLCBwYXRjaD1Ob25lLCByZXN1
bHRzX2ZpbGU9Tm9uZSk6CiAgICAgICAgIF9sb2cuaW5mbyhzdGF0dXMpCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyX21vY2sucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZlcl9tb2Nr
LnB5CShyZXZpc2lvbiAxNzQyMzEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvc3RhdHVzc2VydmVyX21vY2sucHkJKHdvcmtpbmcgY29weSkKQEAgLTU1LDkgKzU1LDEyIEBA
IGNsYXNzIE1vY2tTdGF0dXNTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgcmVsZWFzZV9sb2NrKHNl
bGYsIHF1ZXVlX25hbWUsIHBhdGNoKToKICAgICAgICAgX2xvZy5pbmZvKCJNT0NLOiByZWxlYXNl
X2xvY2s6ICVzICVzIiAlIChxdWV1ZV9uYW1lLCBwYXRjaC5pZCgpKSkKIAotICAgIGRlZiB1cGRh
dGVfd29ya19pdGVtcyhzZWxmLCBxdWV1ZV9uYW1lLCB3b3JrX2l0ZW1zKToKLSAgICAgICAgc2Vs
Zi5fd29ya19pdGVtcyA9IHdvcmtfaXRlbXMKLSAgICAgICAgX2xvZy5pbmZvKCJNT0NLOiB1cGRh
dGVfd29ya19pdGVtczogJXMgJXMiICUgKHF1ZXVlX25hbWUsIHdvcmtfaXRlbXMpKQorICAgIGRl
ZiBzdWJtaXRfdG9fcXVldWUoc2VsZiwgcXVldWVfbmFtZSwgYXR0YWNobWVudF9pZCwgaXNfcm9s
bG91dCk6CisgICAgICAgIGlmIGlzX3JvbGxvdXQ6CisgICAgICAgICAgICBzZWxmLl93b3JrX2l0
ZW1zLmluc2VydCgwLCBhdHRhY2htZW50X2lkKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
c2VsZi5fd29ya19pdGVtcy5hcHBlbmQoYXR0YWNobWVudF9pZCkKKyAgICAgICAgX2xvZy5pbmZv
KCJNT0NLOiBzdWJtaXRfdG9fcXVldWU6ICVzICV1IiAlIChxdWV1ZV9uYW1lLCBhdHRhY2htZW50
X2lkKSkKIAogICAgIGRlZiBzdWJtaXRfdG9fZXdzKHNlbGYsIHBhdGNoX2lkKToKICAgICAgICAg
X2xvZy5pbmZvKCJNT0NLOiBzdWJtaXRfdG9fZXdzOiAlcyIgJSAocGF0Y2hfaWQpKQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9i
dWd6aWxsYS5weQkocmV2aXNpb24gMTc0MjMxKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMDQsNyAr
MjA0LDYgQEAgY2xhc3MgQnVnemlsbGFRdWVyaWVzKG9iamVjdCk6CiAgICAgICAgICAgICBwYXRj
aF9pZCA9IGludChkaWdpdHMuc2VhcmNoKHBhdGNoX3RhZ1siaHJlZiJdKS5ncm91cCgwKSkKICAg
ICAgICAgICAgIGRhdGVfdGFnID0gcm93LmZpbmQoInRkIiwgdGV4dD1kYXRlX2Zvcm1hdCkKICAg
ICAgICAgICAgIGlmIGRhdGVfdGFnIGFuZCBkYXRldGltZS5zdHJwdGltZShkYXRlX2Zvcm1hdC5z
ZWFyY2goZGF0ZV90YWcpLmdyb3VwKDApLCAiJVktJW0tJWQgJUg6JU0iKSA8IHNpbmNlOgotICAg
ICAgICAgICAgICAgIF9sb2cuaW5mbygiUGF0Y2ggaXMgb2xkOiAlZCAoJXMpIiAlIChwYXRjaF9p
ZCwgZGF0ZV90YWcpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBwYXRj
aF9pZHMuYXBwZW5kKHBhdGNoX2lkKQogICAgICAgICByZXR1cm4gcGF0Y2hfaWRzCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZlZWRlcnMucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzLnB5CShyZXZpc2lvbiAxNzQy
MzEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZlZWRlcnMucHkJKHdvcmtp
bmcgY29weSkKQEAgLTUwLDE4ICs1MCwxNyBAQCBjbGFzcyBDb21taXRRdWV1ZUZlZWRlcihBYnN0
cmFjdEZlZWRlcik6CiAgICAgICAgIEFic3RyYWN0RmVlZGVyLl9faW5pdF9fKHNlbGYsIHRvb2wp
CiAgICAgICAgIHNlbGYuY29tbWl0dGVyX3ZhbGlkYXRvciA9IENvbW1pdHRlclZhbGlkYXRvcihz
ZWxmLl90b29sKQogCi0gICAgZGVmIF91cGRhdGVfd29ya19pdGVtcyhzZWxmLCBpdGVtX2lkcyk6
Ci0gICAgICAgICMgRklYTUU6IFRoaXMgaXMgdGhlIGxhc3QgdXNlIG9mIHVwZGF0ZV93b3JrX2l0
ZW1zLCB0aGUgY29tbWl0LXF1ZXVlCi0gICAgICAgICMgc2hvdWxkIG1vdmUgdG8gZmVlZGluZyBw
YXRjaGVzIG9uZSBhdCBhIHRpbWUgbGlrZSB0aGUgRVdTIGRvZXMuCi0gICAgICAgIHNlbGYuX3Rv
b2wuc3RhdHVzX3NlcnZlci51cGRhdGVfd29ya19pdGVtcyhzZWxmLnF1ZXVlX25hbWUsIGl0ZW1f
aWRzKQotICAgICAgICBfbG9nLmluZm8oIkZlZWRpbmcgJXMgaXRlbXMgJXMiICUgKHNlbGYucXVl
dWVfbmFtZSwgaXRlbV9pZHMpKQotCiAgICAgZGVmIGZlZWQoc2VsZik6CiAgICAgICAgIHBhdGNo
ZXMgPSBzZWxmLl92YWxpZGF0ZV9wYXRjaGVzKCkKICAgICAgICAgcGF0Y2hlcyA9IHNlbGYuX3Bh
dGNoZXNfd2l0aF9hY2NlcHRhYmxlX3Jldmlld19mbGFnKHBhdGNoZXMpCiAgICAgICAgIHBhdGNo
ZXMgPSBzb3J0ZWQocGF0Y2hlcywgc2VsZi5fcGF0Y2hfY21wKQotICAgICAgICBwYXRjaF9pZHMg
PSBbcGF0Y2guaWQoKSBmb3IgcGF0Y2ggaW4gcGF0Y2hlc10KLSAgICAgICAgc2VsZi5fdXBkYXRl
X3dvcmtfaXRlbXMocGF0Y2hfaWRzKQorICAgICAgICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoKKyAg
ICAgICAgICAgICMgU3VibWl0IHRvIGNvbW1pdCBxdWV1ZSBldmVuIGlmIHRoYXQgd2FzIGFscmVh
ZHkgZG9uZSwgYXMgaXQncyBwb3NzaWJsZSB0bworICAgICAgICAgICAgIyBtYW51YWxseSByZXNl
dCB0aGUgY3ErIGZsYWcgaW4gQnVnemlsbGEgYWZ0ZXIgYSBmYWlsdXJlLgorICAgICAgICAgICAg
YXR0YWNobWVudF9pZCA9IHBhdGNoLmlkKCkKKyAgICAgICAgICAgIF9sb2cuaW5mbygiRmVlZGlu
ZyAldSB0byBjb21taXQgcXVldWUiICUgYXR0YWNobWVudF9pZCkKKyAgICAgICAgICAgIHNlbGYu
X3Rvb2wuc3RhdHVzX3NlcnZlci5zdWJtaXRfdG9fcXVldWUoc2VsZi5xdWV1ZV9uYW1lLCBhdHRh
Y2htZW50X2lkLCBwYXRjaC5pc19yb2xsb3V0KCkpCisgICAgICAgICAgICBzZWxmLl9pZHNfc2Vu
dF90b19zZXJ2ZXIuYWRkKGF0dGFjaG1lbnRfaWQpCiAKICAgICBkZWYgX3BhdGNoZXNfZm9yX2J1
ZyhzZWxmLCBidWdfaWQpOgogICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5idWdzLmZldGNoX2J1
ZyhidWdfaWQpLmNvbW1pdF9xdWV1ZWRfcGF0Y2hlcyhpbmNsdWRlX2ludmFsaWQ9VHJ1ZSkKQEAg
LTc3LDcgKzc2LDcgQEAgY2xhc3MgQ29tbWl0UXVldWVGZWVkZXIoQWJzdHJhY3RGZWVkZXIpOgog
ICAgICAgICByZXR1cm4gc2VsZi5jb21taXR0ZXJfdmFsaWRhdG9yLnBhdGNoZXNfYWZ0ZXJfcmVq
ZWN0aW5nX2ludmFsaWRfY29tbWl0ZXJzX2FuZF9yZXZpZXdlcnMoYWxsX3BhdGNoZXMpCiAKICAg
ICBkZWYgX3BhdGNoX2NtcChzZWxmLCBhLCBiKToKLSAgICAgICAgIyBTb3J0IGZpcnN0IGJ5IGlz
X3JvbGxvdXQsIHRoZW4gYnkgYXR0YWNoX2RhdGUuCisgICAgICAgICMgU29ydCBieSBhdHRhY2gg
ZGF0ZS4gUm9sbG91dHMgYXJlIHByaW9yaXRpemVkIHNlcnZlciBzaWRlLgogICAgICAgICAjIFJl
dmVyc2luZyB0aGUgb3JkZXIgc28gdGhhdCBpc19yb2xsb3V0IGlzIGZpcnN0LgogICAgICAgICBy
b2xsb3V0X2NtcCA9IGNtcChiLmlzX3JvbGxvdXQoKSwgYS5pc19yb2xsb3V0KCkpCiAgICAgICAg
IGlmIHJvbGxvdXRfY21wICE9IDA6CkBAIC04NywxMyArODYsMTMgQEAgY2xhc3MgQ29tbWl0UXVl
dWVGZWVkZXIoQWJzdHJhY3RGZWVkZXIpOgogCiBjbGFzcyBFV1NGZWVkZXIoQWJzdHJhY3RGZWVk
ZXIpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0b29sKToKLSAgICAgICAgc2VsZi5faWRzX3Nl
bnRfdG9fc2VydmVyID0gc2V0KCkKICAgICAgICAgQWJzdHJhY3RGZWVkZXIuX19pbml0X18oc2Vs
ZiwgdG9vbCkKKyAgICAgICAgc2VsZi5faWRzX3NlbnRfdG9fc2VydmVyID0gc2V0KCkKIAogICAg
IGRlZiBmZWVkKHNlbGYpOgogICAgICAgICBpZHNfbmVlZGluZ19yZXZpZXcgPSBzZXQoc2VsZi5f
dG9vbC5idWdzLnF1ZXJpZXMuZmV0Y2hfYXR0YWNobWVudF9pZHNfZnJvbV9yZXZpZXdfcXVldWUo
ZGF0ZXRpbWUudG9kYXkoKSAtIHRpbWVkZWx0YSg3KSkpCiAgICAgICAgIG5ld19pZHMgPSBpZHNf
bmVlZGluZ19yZXZpZXcuZGlmZmVyZW5jZShzZWxmLl9pZHNfc2VudF90b19zZXJ2ZXIpCi0gICAg
ICAgIF9sb2cuaW5mbygiRmVlZGluZyBFV1MgKCVzLCAlcyBuZXcpIiAlIChwbHVyYWxpemUobGVu
KGlkc19uZWVkaW5nX3JldmlldyksICJyPyBwYXRjaCIpLCBsZW4obmV3X2lkcykpKQogICAgICAg
ICBmb3IgYXR0YWNobWVudF9pZCBpbiBuZXdfaWRzOiAgIyBPcmRlciBkb2Vzbid0IHJlYWxseSBt
YXR0ZXIgZm9yIHRoZSBFV1MuCi0gICAgICAgICAgICBzZWxmLl90b29sLnN0YXR1c19zZXJ2ZXIu
c3VibWl0X3RvX2V3cyhhdHRhY2htZW50X2lkKQorICAgICAgICAgICAgX2xvZy5pbmZvKCJGZWVk
aW5nICV1IHRvIEVXUyIgJSBhdHRhY2htZW50X2lkKQorIyAgICAgICAgICAgIHNlbGYuX3Rvb2wu
c3RhdHVzX3NlcnZlci5zdWJtaXRfdG9fZXdzKGF0dGFjaG1lbnRfaWQpCiAgICAgICAgICAgICBz
ZWxmLl9pZHNfc2VudF90b19zZXJ2ZXIuYWRkKGF0dGFjaG1lbnRfaWQpCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZlZWRlcnNfdW5pdHRlc3QucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzX3VuaXR0ZXN0LnB5CShy
ZXZpc2lvbiAxNzQyMzEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZlZWRl
cnNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDggKzQ1LDEwIEBAIE1PQ0sgc2V0
dGluZyBmbGFnICdjb21taXQtcXVldWUnIHRvICctJyAKIC0gSWYgeW91IGRvIG5vdCBoYXZlIGNv
bW1pdHRlciByaWdodHMgcGxlYXNlIHJlYWQgaHR0cDovL3dlYmtpdC5vcmcvY29kaW5nL2NvbnRy
aWJ1dGluZy5odG1sIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHVzZSBidWd6aWxsYSBmbGFn
cy4KIAogLSBJZiB5b3UgaGF2ZSBjb21taXR0ZXIgcmlnaHRzIHBsZWFzZSBjb3JyZWN0IHRoZSBl
cnJvciBpbiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0b3Jz
Lmpzb24gYnkgYWRkaW5nIHlvdXJzZWxmIHRvIHRoZSBmaWxlIChubyByZXZpZXcgbmVlZGVkKS4g
IFRoZSBjb21taXQtcXVldWUgcmVzdGFydHMgaXRzZWxmIGV2ZXJ5IDIgaG91cnMuICBBZnRlciBy
ZXN0YXJ0IHRoZSBjb21taXQtcXVldWUgd2lsbCBjb3JyZWN0bHkgcmVzcGVjdCB5b3VyIGNvbW1p
dHRlciByaWdodHMuJwotTU9DSzogdXBkYXRlX3dvcmtfaXRlbXM6IGNvbW1pdC1xdWV1ZSBbMTAw
MDUsIDEwMDAwXQotRmVlZGluZyBjb21taXQtcXVldWUgaXRlbXMgWzEwMDA1LCAxMDAwMF0KK01P
Q0s6IHN1Ym1pdF90b19xdWV1ZTogY29tbWl0LXF1ZXVlIDEwMDA1CitGZWVkaW5nIDEwMDA1IHRv
IGNvbW1pdCBxdWV1ZQorTU9DSzogc3VibWl0X3RvX3F1ZXVlOiBjb21taXQtcXVldWUgMTAwMDAK
K0ZlZWRpbmcgMTAwMDAgdG8gY29tbWl0IHF1ZXVlCiAiIiIKICAgICAgICAgT3V0cHV0Q2FwdHVy
ZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGZlZWRlci5mZWVkLCBleHBlY3RlZF9sb2dzPWV4cGVj
dGVkX2xvZ3MpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9x
dWV1ZXNfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQkocmV2aXNpb24gMTc0MjMxKQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQkod29y
a2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCw3IEBAIGNsYXNzIEFic3RyYWN0UXVldWVUZXN0KENv
bW1hbmRzVGVzdCk6CiAKIGNsYXNzIEZlZWRlclF1ZXVlVGVzdChRdWV1ZXNUZXN0KToKICAgICBk
ZWYgdGVzdF9mZWVkZXJfcXVldWUoc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUK
ICAgICAgICAgcXVldWUgPSBUZXN0RmVlZGVyUXVldWUoKQogICAgICAgICB0b29sID0gTW9ja1Rv
b2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gewpAQCAtMTM5
LDkgKzE0MCwxMSBAQCBNT0NLIHNldHRpbmcgZmxhZyAnY29tbWl0LXF1ZXVlJyB0byAnLScgCiAt
IElmIHlvdSBkbyBub3QgaGF2ZSBjb21taXR0ZXIgcmlnaHRzIHBsZWFzZSByZWFkIGh0dHA6Ly93
ZWJraXQub3JnL2NvZGluZy9jb250cmlidXRpbmcuaHRtbCBmb3IgaW5zdHJ1Y3Rpb25zIG9uIGhv
dyB0byB1c2UgYnVnemlsbGEgZmxhZ3MuCiAKIC0gSWYgeW91IGhhdmUgY29tbWl0dGVyIHJpZ2h0
cyBwbGVhc2UgY29ycmVjdCB0aGUgZXJyb3IgaW4gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY29uZmlnL2NvbnRyaWJ1dG9ycy5qc29uIGJ5IGFkZGluZyB5b3Vyc2VsZiB0byB0aGUgZmls
ZSAobm8gcmV2aWV3IG5lZWRlZCkuICBUaGUgY29tbWl0LXF1ZXVlIHJlc3RhcnRzIGl0c2VsZiBl
dmVyeSAyIGhvdXJzLiAgQWZ0ZXIgcmVzdGFydCB0aGUgY29tbWl0LXF1ZXVlIHdpbGwgY29ycmVj
dGx5IHJlc3BlY3QgeW91ciBjb21taXR0ZXIgcmlnaHRzLicKLU1PQ0s6IHVwZGF0ZV93b3JrX2l0
ZW1zOiBjb21taXQtcXVldWUgWzEwMDA1LCAxMDAwMF0KLUZlZWRpbmcgY29tbWl0LXF1ZXVlIGl0
ZW1zIFsxMDAwNSwgMTAwMDBdCi1GZWVkaW5nIEVXUyAoMSByPyBwYXRjaCwgMSBuZXcpCitNT0NL
OiBzdWJtaXRfdG9fcXVldWU6IGNvbW1pdC1xdWV1ZSAxMDAwNQorRmVlZGluZyAxMDAwNSB0byBj
b21taXQgcXVldWUKK01PQ0s6IHN1Ym1pdF90b19xdWV1ZTogY29tbWl0LXF1ZXVlIDEwMDAwCitG
ZWVkaW5nIDEwMDAwIHRvIGNvbW1pdCBxdWV1ZQorRmVlZGluZyAxMDAwMiB0byBFV1MKIE1PQ0s6
IHN1Ym1pdF90b19ld3M6IDEwMDAyCiAiIiIsCiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0
ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNzYWdlXG4iLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>