<?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>74084</bug_id>
          
          <creation_ts>2011-12-08 06:20:49 -0800</creation_ts>
          <short_desc>Web Inspector: Introduce a Map class allowing to store values indexed by arbitrary objects.</short_desc>
          <delta_ts>2011-12-09 01:26:21 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>73086</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>517360</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 06:20:49 -0800</bug_when>
    <thetext>Introduce a Map class allowing to store values indexed by arbitrary objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517368</commentid>
    <comment_count>1</comment_count>
      <attachid>118381</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 06:31:00 -0800</bug_when>
    <thetext>Created attachment 118381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517372</commentid>
    <comment_count>2</comment_count>
      <attachid>118381</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-08 06:39:43 -0800</bug_when>
    <thetext>Comment on attachment 118381
Patch

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

&gt; Source/WebCore/inspector/front-end/Map.js:49
&gt; +            key[this._mapFieldName] = this._lastObjectIdentifier++;

Why would you need such complexity? Why lastObjectIdentifier can&apos;t be static and keys have the same identifiers in all the maps? Also, the pattern for this kind of code it

var objectIdentifier = key[name];
if (!objectIdentifier) {
    objectIdentifier = ++this.lastObjectIdentifier;
    key[name] = objectIdentifier
}

but as I mentioned, you should not need it.

&gt; Source/WebCore/inspector/front-end/inspector.html:42
&gt; +    &lt;script type=&quot;text/javascript&quot; src=&quot;treeoutline.js&quot;&gt;&lt;/script&gt;

treeoutline and utilities.s were considered reusable utilities with no WebInspector* dependency. I don&apos;t think we should change that.

&gt; Source/WebCore/inspector/front-end/treeoutline.js:-41
&gt; -    this._knownTreeElements = [];

Just leave this as it or define Map in the utilities.js with no WebInspector prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517502</commentid>
    <comment_count>3</comment_count>
      <attachid>118381</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2011-12-08 10:04:20 -0800</bug_when>
    <thetext>Comment on attachment 118381
Patch

What is the motivation for this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517607</commentid>
    <comment_count>4</comment_count>
      <attachid>118433</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 11:29:56 -0800</bug_when>
    <thetext>Created attachment 118433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517611</commentid>
    <comment_count>5</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 11:36:40 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 118381 [details])
&gt; What is the motivation for this change?

The Map class is added because I am going to need it the new scripts panel navigator I am developing to map script to a tree elements that is representing it. Note, that I am going to have several TreeOutlines there (scripts, content scripts, later snippets), so using tree outline&apos;s findTreeElement is not convenient.

Similar functionality is currently used in scripts panel when we set file select options as a field on UISourceCode. This is making code hard to understand and can be abstracted out using this Map class.

Moving TreeOutline to use Map once we have it seems natural to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517612</commentid>
    <comment_count>6</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-08 11:37:45 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 118381 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118381&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/Map.js:49
&gt; &gt; +            key[this._mapFieldName] = this._lastObjectIdentifier++;
&gt; 
&gt; Why would you need such complexity? Why lastObjectIdentifier can&apos;t be static and keys have the same identifiers in all the maps? Also, the pattern for this kind of code it

It was done to make it possible to remove identifiers from an object once object is not a key in any map anymore, but you are right, this seems redundant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518177</commentid>
    <comment_count>7</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2011-12-09 01:26:21 -0800</bug_when>
    <thetext>Committed r102447: &lt;http://trac.webkit.org/changeset/102447&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118381</attachid>
            <date>2011-12-08 06:31:00 -0800</date>
            <delta_ts>2011-12-08 11:29:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74084-20111208183058.patch</filename>
            <type>text/plain</type>
            <size>17297</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkYTQzZWNlYWUyNmUx
NjExZDQwZmVmNTEwNWUwYmU5ZmEyNWIyMC4uYTY3ZGJjODY1YTY3MzE1YzZhNjY4MjE2MjdjZTFj
NTBmOTQ5ZTliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTA4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEludHJvZHVjZSBhIE1hcCBjbGFzcyBhbGxvd2luZyB0byBzdG9yZSB2YWx1ZXMgaW5kZXhl
ZCBieSBhcmJpdHJhcnkgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc0MDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlZCBuZXcgV2ViSW5zcGVjdG9yLk1hcCBjbGFzcy4gTWFk
ZSBUcmVlT3V0bGluZSB1c2UgaXQgaW5zdGVhZCBvZiBvYmplY3RzIC8gVHJlZUVsZW1lbnQncyBp
ZGVudGlmaWVycworICAgICAgICB0byBzdG9yZSBtYXBwaW5ncyBiZXR3ZWVuIHJlcHJlc2VudGVk
IG9iamVjdHMgYW5kIFRyZWVFbGVtZW50cyBhbmQgdGhlaXIgZXhwYW5kZWQgc3RhdGUuCisKKyAg
ICAgICAgVGVzdDogaW5zcGVjdG9yL21hcC5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NYXAuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1h
cCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWFwLnByb3RvdHlwZS5wdXQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk1hcC5wcm90b3R5cGUucmVtb3ZlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpz
OgorICAgICAgICAoVHJlZU91dGxpbmUpOgorICAgICAgICAoKToKKyAgICAgICAgKFRyZWVFbGVt
ZW50LnByb3RvdHlwZS5jb2xsYXBzZSk6CisgICAgICAgIChUcmVlRWxlbWVudC5wcm90b3R5cGUu
ZXhwYW5kKToKKwogMjAxMS0xMi0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwMjMyMS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBmNDMyYTU1YTNlNWEyMGY5ZjUxZGFhNTY1MThhNWYyZmVkMzIyNzQz
Li5jOTkyYjVkZjUxMWUwZmM1YjkzMGQ1OTJiYzRiNmZmMDQ5M2M5NGNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC02MzgzLDYgKzYzODMsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvSmF2YVNjcmlwdEZvcm1hdHRlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvS2V5Ym9hcmRTaG9ydGN1dC5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9NYXAuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTWV0cmlj
c1NpZGViYXJQYW5lLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtJdGVtVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3Jr
TWFuYWdlci5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IDIyNjRmYmI2YzAzNmMzMDVhMjNiMzBlODAxMzBiZTdjNGQ2YTYzOGEuLjZlYmYz
OTUyNzNiMzY3M2FhOWViMTNhZDM1Mjg5NGJiN2MxYjMyMzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02OTA4MSw2ICs2OTA4MSwxMCBAQAog
CQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5z
cGVjdG9yXGZyb250LWVuZFxNYXAuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUK
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXE1ldHJpY3NTaWRlYmFy
UGFuZS5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvTWFwLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9NYXAuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBmNjU1OTgzZjVmMDI1MjI5NjM0ZmNiYmQ5Njg3
ODdmNzY3OTU2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTWFwLmpzCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4KKyAqIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisg
KiBAY29uc3RydWN0b3IKKyAqLworV2ViSW5zcGVjdG9yLk1hcCA9IGZ1bmN0aW9uKCkKK3sKKyAg
ICB0aGlzLl9pZCA9IFdlYkluc3BlY3Rvci5NYXAuX21hcElkKys7CisgICAgdGhpcy5fbWFwRmll
bGROYW1lID0gIl9faWRlbnRpZmllckZvck1hcF8iICsgdGhpcy5faWQ7CisgICAgdGhpcy5fbGFz
dE9iamVjdElkZW50aWZpZXIgPSAwOworICAgIHRoaXMuX21hcCA9IHt9OworfQorCitXZWJJbnNw
ZWN0b3IuTWFwLl9tYXBJZCA9IDA7CisKK1dlYkluc3BlY3Rvci5NYXAucHJvdG90eXBlID0gewor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBrZXkKKyAgICAgKi8KKyAgICBwdXQ6IGZ1
bmN0aW9uKGtleSwgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoIWtleVt0aGlzLl9tYXBGaWVs
ZE5hbWVdKQorICAgICAgICAgICAga2V5W3RoaXMuX21hcEZpZWxkTmFtZV0gPSB0aGlzLl9sYXN0
T2JqZWN0SWRlbnRpZmllcisrOworICAgICAgICB2YXIgb2JqZWN0SWRlbnRpZmllciA9IGtleVt0
aGlzLl9tYXBGaWVsZE5hbWVdOworICAgICAgICB0aGlzLl9tYXBbb2JqZWN0SWRlbnRpZmllcl0g
PSB2YWx1ZTsKKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBr
ZXkKKyAgICAgKi8KKyAgICByZW1vdmU6IGZ1bmN0aW9uKGtleSkKKyAgICB7CisgICAgICAgIGlm
ICgha2V5W3RoaXMuX21hcEZpZWxkTmFtZV0pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IHZhciBvYmplY3RJZGVudGlmaWVyID0ga2V5W3RoaXMuX21hcEZpZWxkTmFtZV07CisgICAgICAg
IGRlbGV0ZSBrZXlbdGhpcy5fbWFwRmllbGROYW1lXTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX21h
cFtvYmplY3RJZGVudGlmaWVyXTsKKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7T2JqZWN0fSBrZXkKKyAgICAgKi8KKyAgICBnZXQ6IGZ1bmN0aW9uKGtleSkKKyAgICB7Cisg
ICAgICAgIGlmICh0eXBlb2Yoa2V5W3RoaXMuX21hcEZpZWxkTmFtZV0pID09PSB1bmRlZmluZWQp
CisgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICB2YXIgb2JqZWN0SWRlbnRp
ZmllciA9IGtleVt0aGlzLl9tYXBGaWVsZE5hbWVdOworICAgICAgICByZXR1cm4gdGhpcy5fbWFw
W29iamVjdElkZW50aWZpZXJdOworICAgIH0sCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggNTQ1ZjFkYmU3ZTkyM2JkZjAzYmU5YWM0NjY0
NjIzNThkMzZmNTdlMi4uODU4ZDMyYWNkZWMzOTg1MDVkZmNmMjg3ZjUzNWU0OWZlZTYwZjE4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJj
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAt
NzQsNiArNzQsNyBAQAogICAgIDxmaWxlPkphdmFTY3JpcHRGb3JtYXR0ZXIuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzPC9maWxlPgogICAgIDxmaWxlPktleWJv
YXJkU2hvcnRjdXQuanM8L2ZpbGU+CisgICAgPGZpbGU+TWFwLmpzPC9maWxlPgogICAgIDxmaWxl
Pk1ldHJpY3NTaWRlYmFyUGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5OZXR3b3JrSXRlbVZpZXcu
anM8L2ZpbGU+CiAgICAgPGZpbGU+TmV0d29ya0xvZy5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmluZGV4IDIzNGVhN2Ri
Y2NmMzNkYzQ4YzFmZDgyZTY4YmI0ODBhY2ExY2VkNDcuLjU0ZTk5YTAxMGFlZmU3Y2RiZjQxYjFm
NDgzNTJjNTVmMmY5ODdkZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMzcsOCArMzcsOSBAQCBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InBvcG92ZXIuY3NzIj4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ1dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkJpbmFyeVNl
YXJjaC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0idHJlZW91dGxpbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Imluc3BlY3Rvci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iTWFwLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0cmVlb3V0bGluZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVUlVdGlscy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSW5zcGVjdG9yQmFja2VuZC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSW5z
cGVjdG9yQmFja2VuZFN0dWIuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMKaW5kZXggYWNjZWRhZmM1Zjk3ZmRhMjg1
MTY1ZmEwYjA1ZDFjNmFiMzY5M2MwNC4uNmYwMDBjNjllZjA2NDkxZTBkMmZkZWRiYzA2OTZlN2Nj
NDE4OGRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90
cmVlb3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Ry
ZWVvdXRsaW5lLmpzCkBAIC0zOCw4ICszOCw2IEBAIGZ1bmN0aW9uIFRyZWVPdXRsaW5lKGxpc3RO
b2RlKQogICAgIHRoaXMuc2VsZWN0ZWRUcmVlRWxlbWVudCA9IG51bGw7CiAgICAgdGhpcy5fY2hp
bGRyZW5MaXN0Tm9kZSA9IGxpc3ROb2RlOwogICAgIHRoaXMuX2NoaWxkcmVuTGlzdE5vZGUucmVt
b3ZlQ2hpbGRyZW4oKTsKLSAgICB0aGlzLl9rbm93blRyZWVFbGVtZW50cyA9IFtdOwotICAgIHRo
aXMuX3RyZWVFbGVtZW50c0V4cGFuZGVkU3RhdGUgPSBbXTsKICAgICB0aGlzLmV4cGFuZFRyZWVF
bGVtZW50c1doZW5BcnJvd2luZyA9IGZhbHNlOwogICAgIHRoaXMucm9vdCA9IHRydWU7CiAgICAg
dGhpcy5oYXNDaGlsZHJlbiA9IGZhbHNlOwpAQCAtNDksMTAgKzQ3LDExIEBAIGZ1bmN0aW9uIFRy
ZWVPdXRsaW5lKGxpc3ROb2RlKQogCiAgICAgdGhpcy5fY2hpbGRyZW5MaXN0Tm9kZS50YWJJbmRl
eCA9IDA7CiAgICAgdGhpcy5fY2hpbGRyZW5MaXN0Tm9kZS5hZGRFdmVudExpc3RlbmVyKCJrZXlk
b3duIiwgdGhpcy5fdHJlZUtleURvd24uYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgCisgICAgdGhp
cy5fdHJlZUVsZW1lbnRzTWFwID0gbmV3IFdlYkluc3BlY3Rvci5NYXAoKTsKKyAgICB0aGlzLl9l
eHBhbmRlZFN0YXRlTWFwID0gbmV3IFdlYkluc3BlY3Rvci5NYXAoKTsKIH0KIAotVHJlZU91dGxp
bmUuX2tub3duVHJlZUVsZW1lbnROZXh0SWRlbnRpZmllciA9IDE7Ci0KIFRyZWVPdXRsaW5lLnBy
b3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uKGNoaWxkKQogewogICAgIGlmICghY2hpbGQp
CkBAIC04MCw4ICs3OSw3IEBAIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1
bmN0aW9uKGNoaWxkKQogICAgICAgICBjdXJyZW50ID0gY3VycmVudC50cmF2ZXJzZU5leHRUcmVl
RWxlbWVudChmYWxzZSwgY2hpbGQsIHRydWUpOwogICAgIH0KIAotICAgIGlmIChjaGlsZC5oYXND
aGlsZHJlbiAmJiBjaGlsZC50cmVlT3V0bGluZS5fdHJlZUVsZW1lbnRzRXhwYW5kZWRTdGF0ZVtj
aGlsZC5pZGVudGlmaWVyXSAhPT0gdW5kZWZpbmVkKQotICAgICAgICBjaGlsZC5leHBhbmRlZCA9
IGNoaWxkLnRyZWVPdXRsaW5lLl90cmVlRWxlbWVudHNFeHBhbmRlZFN0YXRlW2NoaWxkLmlkZW50
aWZpZXJdOworICAgIGNoaWxkLmV4cGFuZGVkID0gY2hpbGQuaGFzQ2hpbGRyZW4gJiYgISFjaGls
ZC50cmVlT3V0bGluZS5fZXhwYW5kZWRTdGF0ZU1hcC5nZXQoY2hpbGQucmVwcmVzZW50ZWRPYmpl
Y3QpOwogCiAgICAgaWYgKCF0aGlzLl9jaGlsZHJlbkxpc3ROb2RlKSB7CiAgICAgICAgIHRoaXMu
X2NoaWxkcmVuTGlzdE5vZGUgPSB0aGlzLnRyZWVPdXRsaW5lLl9jaGlsZHJlbkxpc3ROb2RlLm93
bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wiKTsKQEAgLTEzMSw4ICsxMjksNyBAQCBUcmVl
T3V0bGluZS5wcm90b3R5cGUuaW5zZXJ0Q2hpbGQgPSBmdW5jdGlvbihjaGlsZCwgaW5kZXgpCiAg
ICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnRyYXZlcnNlTmV4dFRyZWVFbGVtZW50KGZhbHNlLCBj
aGlsZCwgdHJ1ZSk7CiAgICAgfQogCi0gICAgaWYgKGNoaWxkLmhhc0NoaWxkcmVuICYmIGNoaWxk
LnRyZWVPdXRsaW5lLl90cmVlRWxlbWVudHNFeHBhbmRlZFN0YXRlW2NoaWxkLmlkZW50aWZpZXJd
ICE9PSB1bmRlZmluZWQpCi0gICAgICAgIGNoaWxkLmV4cGFuZGVkID0gY2hpbGQudHJlZU91dGxp
bmUuX3RyZWVFbGVtZW50c0V4cGFuZGVkU3RhdGVbY2hpbGQuaWRlbnRpZmllcl07CisgICAgY2hp
bGQuZXhwYW5kZWQgPSBjaGlsZC5oYXNDaGlsZHJlbiAmJiAhIWNoaWxkLnRyZWVPdXRsaW5lLl9l
eHBhbmRlZFN0YXRlTWFwLmdldChjaGlsZC5yZXByZXNlbnRlZE9iamVjdCk7CiAKICAgICBpZiAo
IXRoaXMuX2NoaWxkcmVuTGlzdE5vZGUpIHsKICAgICAgICAgdGhpcy5fY2hpbGRyZW5MaXN0Tm9k
ZSA9IHRoaXMudHJlZU91dGxpbmUuX2NoaWxkcmVuTGlzdE5vZGUub3duZXJEb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJvbCIpOwpAQCAtMjQ1LDExICsyNDIsMTEgQEAgVHJlZU91dGxpbmUucHJvdG90
eXBlLnJlbW92ZUNoaWxkcmVuUmVjdXJzaXZlID0gZnVuY3Rpb24oKQogCiBUcmVlT3V0bGluZS5w
cm90b3R5cGUuX3JlbWVtYmVyVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihlbGVtZW50KQogewotICAg
IGlmICghdGhpcy5fa25vd25UcmVlRWxlbWVudHNbZWxlbWVudC5pZGVudGlmaWVyXSkKLSAgICAg
ICAgdGhpcy5fa25vd25UcmVlRWxlbWVudHNbZWxlbWVudC5pZGVudGlmaWVyXSA9IFtdOwotCisg
ICAgaWYgKCF0aGlzLl90cmVlRWxlbWVudHNNYXAuZ2V0KGVsZW1lbnQucmVwcmVzZW50ZWRPYmpl
Y3QpKQorICAgICAgICB0aGlzLl90cmVlRWxlbWVudHNNYXAucHV0KGVsZW1lbnQucmVwcmVzZW50
ZWRPYmplY3QsIFtdKTsKKyAgICAgICAgCiAgICAgLy8gY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMg
YWxyZWFkeSBrbm93bgotICAgIHZhciBlbGVtZW50cyA9IHRoaXMuX2tub3duVHJlZUVsZW1lbnRz
W2VsZW1lbnQuaWRlbnRpZmllcl07CisgICAgdmFyIGVsZW1lbnRzID0gdGhpcy5fdHJlZUVsZW1l
bnRzTWFwLmdldChlbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKICAgICBpZiAoZWxlbWVudHMu
aW5kZXhPZihlbGVtZW50KSAhPT0gLTEpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjU5LDggKzI1
Niw4IEBAIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5fcmVtZW1iZXJUcmVlRWxlbWVudCA9IGZ1bmN0
aW9uKGVsZW1lbnQpCiAKIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5fZm9yZ2V0VHJlZUVsZW1lbnQg
PSBmdW5jdGlvbihlbGVtZW50KQogewotICAgIGlmICh0aGlzLl9rbm93blRyZWVFbGVtZW50c1tl
bGVtZW50LmlkZW50aWZpZXJdKQotICAgICAgICB0aGlzLl9rbm93blRyZWVFbGVtZW50c1tlbGVt
ZW50LmlkZW50aWZpZXJdLnJlbW92ZShlbGVtZW50LCB0cnVlKTsKKyAgICBpZiAodGhpcy5fdHJl
ZUVsZW1lbnRzTWFwLmdldChlbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KSkKKyAgICAgICAgdGhp
cy5fdHJlZUVsZW1lbnRzTWFwLmdldChlbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KS5yZW1vdmUo
ZWxlbWVudCwgdHJ1ZSk7CiB9CiAKIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5fZm9yZ2V0Q2hpbGRy
ZW5SZWN1cnNpdmUgPSBmdW5jdGlvbihwYXJlbnRFbGVtZW50KQpAQCAtMjc3LDE2ICsyNzQsOSBA
QCBUcmVlT3V0bGluZS5wcm90b3R5cGUuZ2V0Q2FjaGVkVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihy
ZXByZXNlbnRlZE9iamVjdCkKICAgICBpZiAoIXJlcHJlc2VudGVkT2JqZWN0KQogICAgICAgICBy
ZXR1cm4gbnVsbDsKIAotICAgIGlmICgiX190cmVlRWxlbWVudElkZW50aWZpZXIiIGluIHJlcHJl
c2VudGVkT2JqZWN0KSB7Ci0gICAgICAgIC8vIElmIHRoaXMgcmVwcmVzZW50ZWRPYmplY3QgaGFz
IGEgdHJlZSBlbGVtZW50IGlkZW50aWZpZXIsIGFuZCBpdCBpcyBhIGtub3duIFRyZWVFbGVtZW50
Ci0gICAgICAgIC8vIGluIG91ciB0cmVlIHdlIGNhbiBqdXN0IHJldHVybiB0aGF0IHRyZWUgZWxl
bWVudC4KLSAgICAgICAgdmFyIGVsZW1lbnRzID0gdGhpcy5fa25vd25UcmVlRWxlbWVudHNbcmVw
cmVzZW50ZWRPYmplY3QuX190cmVlRWxlbWVudElkZW50aWZpZXJdOwotICAgICAgICBpZiAoZWxl
bWVudHMpIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3Ro
OyArK2kpCi0gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzW2ldLnJlcHJlc2VudGVkT2JqZWN0
ID09PSByZXByZXNlbnRlZE9iamVjdCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1l
bnRzW2ldOwotICAgICAgICB9Ci0gICAgfQorICAgIHZhciBlbGVtZW50cyA9IHRoaXMuX3RyZWVF
bGVtZW50c01hcC5nZXQocmVwcmVzZW50ZWRPYmplY3QpOworICAgIGlmIChlbGVtZW50cyAmJiBl
bGVtZW50cy5sZW5ndGgpCisgICAgICAgIHJldHVybiBlbGVtZW50c1swXTsKICAgICByZXR1cm4g
bnVsbDsKIH0KIApAQCAtNDc5LDEzICs0NjksNiBAQCBmdW5jdGlvbiBUcmVlRWxlbWVudCh0aXRs
ZSwgcmVwcmVzZW50ZWRPYmplY3QsIGhhc0NoaWxkcmVuKQogICAgIHRoaXMuX3RpdGxlID0gdGl0
bGU7CiAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdCA9IChyZXByZXNlbnRlZE9iamVjdCB8fCB7
fSk7CiAKLSAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5fX3RyZWVFbGVtZW50SWRlbnRp
ZmllcikKLSAgICAgICAgdGhpcy5pZGVudGlmaWVyID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5f
X3RyZWVFbGVtZW50SWRlbnRpZmllcjsKLSAgICBlbHNlIHsKLSAgICAgICAgdGhpcy5pZGVudGlm
aWVyID0gVHJlZU91dGxpbmUuX2tub3duVHJlZUVsZW1lbnROZXh0SWRlbnRpZmllcisrOwotICAg
ICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Ll9fdHJlZUVsZW1lbnRJZGVudGlmaWVyID0gdGhp
cy5pZGVudGlmaWVyOwotICAgIH0KLQogICAgIHRoaXMuX2hpZGRlbiA9IGZhbHNlOwogICAgIHRo
aXMuX3NlbGVjdGFibGUgPSB0cnVlOwogICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTsKQEAgLTc0
Miw4ICs3MjUsOSBAQCBUcmVlRWxlbWVudC5wcm90b3R5cGUuY29sbGFwc2UgPSBmdW5jdGlvbigp
CiAgICAgICAgIHRoaXMuX2NoaWxkcmVuTGlzdE5vZGUuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5k
ZWQiKTsKIAogICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTsKKyAgICAKICAgICBpZiAodGhpcy50
cmVlT3V0bGluZSkKLSAgICAgICAgdGhpcy50cmVlT3V0bGluZS5fdHJlZUVsZW1lbnRzRXhwYW5k
ZWRTdGF0ZVt0aGlzLmlkZW50aWZpZXJdID0gZmFsc2U7CisgICAgICAgIHRoaXMudHJlZU91dGxp
bmUuX2V4cGFuZGVkU3RhdGVNYXAucHV0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIGZhbHNlKTsK
IAogICAgIGlmICh0aGlzLm9uY29sbGFwc2UpCiAgICAgICAgIHRoaXMub25jb2xsYXBzZSh0aGlz
KTsKQEAgLTc3MCw3ICs3NTQsNyBAQCBUcmVlRWxlbWVudC5wcm90b3R5cGUuZXhwYW5kID0gZnVu
Y3Rpb24oKQogCiAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CiAgICAgaWYgKHRoaXMudHJlZU91
dGxpbmUpCi0gICAgICAgIHRoaXMudHJlZU91dGxpbmUuX3RyZWVFbGVtZW50c0V4cGFuZGVkU3Rh
dGVbdGhpcy5pZGVudGlmaWVyXSA9IHRydWU7CisgICAgICAgIHRoaXMudHJlZU91dGxpbmUuX2V4
cGFuZGVkU3RhdGVNYXAucHV0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIHRydWUpOwogCiAgICAg
aWYgKHRoaXMudHJlZU91dGxpbmUgJiYgKCF0aGlzLl9jaGlsZHJlbkxpc3ROb2RlIHx8IHRoaXMu
X3Nob3VsZFJlZnJlc2hDaGlsZHJlbikpIHsKICAgICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuTGlz
dE5vZGUgJiYgdGhpcy5fY2hpbGRyZW5MaXN0Tm9kZS5wYXJlbnROb2RlKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY4MTY3
OTQ3ZjRjNWU0NDFjODA1ZGQ1NTFlNDVjZDhiOGYzNjhjODAuLmIzMDU0MWY2NmVlYzU3OTYwZTg0
YjdmZjk2MDUwNmQ4ODVhN2YwNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0wOCAg
VnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBJbnRyb2R1Y2UgYSBNYXAgY2xhc3MgYWxsb3dpbmcgdG8gc3RvcmUgdmFsdWVzIGlu
ZGV4ZWQgYnkgYXJiaXRyYXJ5IG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NDA4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL21hcC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9tYXAuaHRtbDogQWRkZWQuCisKIDIwMTEtMTItMDggIFRha2Fz
aGkgVG95b3NoaW1hICA8dG95b3NoaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBmYWls
ZWQgbGF5b3V0IHRlc3QsIGJ1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWluLWJ1c3kuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21hcC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvbWFwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmFhODEyMjRk
MDY2MmIxMjFiOTc2MjgwYmNlN2QyOTBiNTY0NWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL21hcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDAgQEAKK1Rlc3Rz
IFdlYkluc3BlY3Rvci5NYXAgY2xhc3MuCisKK0J1ZyA3NDA4NAorRHVtcGluZyBtYXBzOgorICBG
aXJzdCBtYXA6CisgICAga2V5MSA6IHVuZGVmaW5lZAorICAgIGtleTIgOiB1bmRlZmluZWQKKyAg
U2Vjb25kIG1hcDoKKyAgICBrZXkxIDogdW5kZWZpbmVkCisgICAga2V5MiA6IHVuZGVmaW5lZAor
CitEdW1waW5nIG1hcHM6CisgIEZpcnN0IG1hcDoKKyAgICBrZXkxIDogMgorICAgIGtleTIgOiB1
bmRlZmluZWQKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkxIDogdW5kZWZpbmVkCisgICAga2V5MiA6
IHVuZGVmaW5lZAorCitEdW1waW5nIG1hcHM6CisgIEZpcnN0IG1hcDoKKyAgICBrZXkxIDogMQor
ICAgIGtleTIgOiB1bmRlZmluZWQKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkxIDogdW5kZWZpbmVk
CisgICAga2V5MiA6IHVuZGVmaW5lZAorCitEdW1waW5nIG1hcHM6CisgIEZpcnN0IG1hcDoKKyAg
ICBrZXkxIDogMQorICAgIGtleTIgOiB1bmRlZmluZWQKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkx
IDogMQorICAgIGtleTIgOiB1bmRlZmluZWQKKworRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6
CisgICAga2V5MSA6IDEKKyAgICBrZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6CisgICAg
a2V5MSA6IDIKKyAgICBrZXkyIDogdW5kZWZpbmVkCisKK0R1bXBpbmcgbWFwczoKKyAgRmlyc3Qg
bWFwOgorICAgIGtleTEgOiAxCisgICAga2V5MiA6IDIKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkx
IDogMgorICAgIGtleTIgOiB1bmRlZmluZWQKKworRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6
CisgICAga2V5MSA6IDEKKyAgICBrZXkyIDogMgorICBTZWNvbmQgbWFwOgorICAgIGtleTEgOiAy
CisgICAga2V5MiA6IDEKKworRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6CisgICAga2V5MSA6
IDEKKyAgICBrZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6CisgICAga2V5MSA6IDIKKyAg
ICBrZXkyIDogMQorCitEdW1waW5nIG1hcHM6CisgIEZpcnN0IG1hcDoKKyAgICBrZXkxIDogMQor
ICAgIGtleTIgOiB1bmRlZmluZWQKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkxIDogMgorICAgIGtl
eTIgOiB1bmRlZmluZWQKKworRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6CisgICAga2V5MSA6
IDEKKyAgICBrZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6CisgICAga2V5MSA6IDIKKyAg
ICBrZXkyIDogdW5kZWZpbmVkCisKK0R1bXBpbmcgbWFwczoKKyAgRmlyc3QgbWFwOgorICAgIGtl
eTEgOiB1bmRlZmluZWQKKyAgICBrZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6CisgICAg
a2V5MSA6IDIKKyAgICBrZXkyIDogdW5kZWZpbmVkCisKK0R1bXBpbmcgbWFwczoKKyAgRmlyc3Qg
bWFwOgorICAgIGtleTEgOiB1bmRlZmluZWQKKyAgICBrZXkyIDogdW5kZWZpbmVkCisgIFNlY29u
ZCBtYXA6CisgICAga2V5MSA6IHVuZGVmaW5lZAorICAgIGtleTIgOiB1bmRlZmluZWQKKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbWFwLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvbWFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQxMzE0YTExYWYwYWI3Y2MwMzdiMjM3MWY5
YzNiMzJjZjBmYThkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9t
YXAuaHRtbApAQCAtMCwwICsxLDcxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwordmFyIHRlc3QgPSBmdW5jdGlvbigpCit7Cisg
ICAgZnVuY3Rpb24gZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5MikKKyAgICB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIG1hcHM6Iik7CisgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgIEZpcnN0IG1hcDoiKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiAgICBrZXkxIDogIiArIG1hcDEuZ2V0KGtleTEpKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBrZXkyIDogIiArIG1hcDEuZ2V0KGtleTIpKTsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgU2Vjb25kIG1hcDoiKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBrZXkxIDogIiArIG1hcDIuZ2V0KGtleTEp
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBrZXkyIDogIiArIG1hcDIu
Z2V0KGtleTIpKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOworICAgIH0K
KworICAgIHZhciBrZXkxID0ge307CisgICAgdmFyIGtleTIgPSB7fTsKKyAgICB2YXIgdmFsdWUx
ID0gMTsKKyAgICB2YXIgdmFsdWUyID0gMjsKKyAgICB2YXIgbWFwMSA9IG5ldyBXZWJJbnNwZWN0
b3IuTWFwKCk7CisgICAgdmFyIG1hcDIgPSBuZXcgV2ViSW5zcGVjdG9yLk1hcCgpOworCisgICAg
ZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7CisKKyAgICBtYXAxLnB1dChrZXkxLCB2
YWx1ZTIpOworICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOworCisgICAgbWFw
MS5wdXQoa2V5MSwgdmFsdWUxKTsKKyAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXky
KTsKKworICAgIG1hcDIucHV0KGtleTEsIHZhbHVlMSk7CisgICAgZHVtcE1hcHMobWFwMSwgbWFw
Miwga2V5MSwga2V5Mik7CisKKyAgICBtYXAyLnB1dChrZXkxLCB2YWx1ZTIpOworICAgIGR1bXBN
YXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOworCisgICAgbWFwMS5wdXQoa2V5MiwgdmFsdWUy
KTsKKyAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXkyKTsKKworICAgIG1hcDIucHV0
KGtleTIsIHZhbHVlMSk7CisgICAgZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7CisK
KyAgICBtYXAxLnJlbW92ZShrZXkyKTsKKyAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBr
ZXkyKTsKKworICAgIG1hcDIucmVtb3ZlKGtleTIpOworICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIs
IGtleTEsIGtleTIpOworCisgICAgbWFwMi5yZW1vdmUoa2V5Mik7CisgICAgZHVtcE1hcHMobWFw
MSwgbWFwMiwga2V5MSwga2V5Mik7CisKKyAgICBtYXAxLnJlbW92ZShrZXkxKTsKKyAgICBkdW1w
TWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXkyKTsKKworICAgIG1hcDIucmVtb3ZlKGtleTEpOwor
ICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOworCisgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8cD5UZXN0cyBXZWJJbnNwZWN0b3IuTWFwIGNsYXNzLjwvcD4KKzxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA4NCI+QnVnIDc0
MDg0PC9hPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118433</attachid>
            <date>2011-12-08 11:29:56 -0800</date>
            <delta_ts>2011-12-08 14:33:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74084-20111208232954.patch</filename>
            <type>text/plain</type>
            <size>12233</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkYTQzZWNlYWUyNmUx
NjExZDQwZmVmNTEwNWUwYmU5ZmEyNWIyMC4uMzZjMjJkMjBiNjg0ZTU0MmQ2MzY0YWFiYTkwY2Rj
ZDBkNzBmYjAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTA4ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEludHJvZHVjZSBhIE1hcCBjbGFzcyBhbGxvd2luZyB0byBzdG9yZSB2YWx1ZXMgaW5kZXhl
ZCBieSBhcmJpdHJhcnkgb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc0MDg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL21hcC5odG1sCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzOgorICAgICAgICAoVHJlZU91dGxpbmUpOgor
ICAgICAgICAoKToKKyAgICAgICAgKFRyZWVFbGVtZW50LnByb3RvdHlwZS5jb2xsYXBzZSk6Cisg
ICAgICAgIChUcmVlRWxlbWVudC5wcm90b3R5cGUuZXhwYW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qczoKKyAgICAgICAgKCk6CisKIDIwMTEtMTItMDggIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDIzMjEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcwppbmRleCBhY2NlZGFmYzVmOTdmZGEyODUxNjVm
YTBiMDVkMWM2YWIzNjkzYzA0Li4yNzZjY2ZmZTNkNDFhMzZjYmVlYjJiMTBjNGZlMTFkZWFmOTdj
NWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVv
dXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91
dGxpbmUuanMKQEAgLTM4LDggKzM4LDYgQEAgZnVuY3Rpb24gVHJlZU91dGxpbmUobGlzdE5vZGUp
CiAgICAgdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50ID0gbnVsbDsKICAgICB0aGlzLl9jaGlsZHJl
bkxpc3ROb2RlID0gbGlzdE5vZGU7CiAgICAgdGhpcy5fY2hpbGRyZW5MaXN0Tm9kZS5yZW1vdmVD
aGlsZHJlbigpOwotICAgIHRoaXMuX2tub3duVHJlZUVsZW1lbnRzID0gW107Ci0gICAgdGhpcy5f
dHJlZUVsZW1lbnRzRXhwYW5kZWRTdGF0ZSA9IFtdOwogICAgIHRoaXMuZXhwYW5kVHJlZUVsZW1l
bnRzV2hlbkFycm93aW5nID0gZmFsc2U7CiAgICAgdGhpcy5yb290ID0gdHJ1ZTsKICAgICB0aGlz
Lmhhc0NoaWxkcmVuID0gZmFsc2U7CkBAIC00OSwxMCArNDcsMTEgQEAgZnVuY3Rpb24gVHJlZU91
dGxpbmUobGlzdE5vZGUpCiAKICAgICB0aGlzLl9jaGlsZHJlbkxpc3ROb2RlLnRhYkluZGV4ID0g
MDsKICAgICB0aGlzLl9jaGlsZHJlbkxpc3ROb2RlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24i
LCB0aGlzLl90cmVlS2V5RG93bi5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICAKKyAgICB0aGlzLl90
cmVlRWxlbWVudHNNYXAgPSBuZXcgTWFwKCk7CisgICAgdGhpcy5fZXhwYW5kZWRTdGF0ZU1hcCA9
IG5ldyBNYXAoKTsKIH0KIAotVHJlZU91dGxpbmUuX2tub3duVHJlZUVsZW1lbnROZXh0SWRlbnRp
ZmllciA9IDE7Ci0KIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9u
KGNoaWxkKQogewogICAgIGlmICghY2hpbGQpCkBAIC04MCw4ICs3OSw3IEBAIFRyZWVPdXRsaW5l
LnByb3RvdHlwZS5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uKGNoaWxkKQogICAgICAgICBjdXJyZW50
ID0gY3VycmVudC50cmF2ZXJzZU5leHRUcmVlRWxlbWVudChmYWxzZSwgY2hpbGQsIHRydWUpOwog
ICAgIH0KIAotICAgIGlmIChjaGlsZC5oYXNDaGlsZHJlbiAmJiBjaGlsZC50cmVlT3V0bGluZS5f
dHJlZUVsZW1lbnRzRXhwYW5kZWRTdGF0ZVtjaGlsZC5pZGVudGlmaWVyXSAhPT0gdW5kZWZpbmVk
KQotICAgICAgICBjaGlsZC5leHBhbmRlZCA9IGNoaWxkLnRyZWVPdXRsaW5lLl90cmVlRWxlbWVu
dHNFeHBhbmRlZFN0YXRlW2NoaWxkLmlkZW50aWZpZXJdOworICAgIGNoaWxkLmV4cGFuZGVkID0g
Y2hpbGQuaGFzQ2hpbGRyZW4gJiYgISFjaGlsZC50cmVlT3V0bGluZS5fZXhwYW5kZWRTdGF0ZU1h
cC5nZXQoY2hpbGQucmVwcmVzZW50ZWRPYmplY3QpOwogCiAgICAgaWYgKCF0aGlzLl9jaGlsZHJl
bkxpc3ROb2RlKSB7CiAgICAgICAgIHRoaXMuX2NoaWxkcmVuTGlzdE5vZGUgPSB0aGlzLnRyZWVP
dXRsaW5lLl9jaGlsZHJlbkxpc3ROb2RlLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib2wi
KTsKQEAgLTEzMSw4ICsxMjksNyBAQCBUcmVlT3V0bGluZS5wcm90b3R5cGUuaW5zZXJ0Q2hpbGQg
PSBmdW5jdGlvbihjaGlsZCwgaW5kZXgpCiAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnRyYXZl
cnNlTmV4dFRyZWVFbGVtZW50KGZhbHNlLCBjaGlsZCwgdHJ1ZSk7CiAgICAgfQogCi0gICAgaWYg
KGNoaWxkLmhhc0NoaWxkcmVuICYmIGNoaWxkLnRyZWVPdXRsaW5lLl90cmVlRWxlbWVudHNFeHBh
bmRlZFN0YXRlW2NoaWxkLmlkZW50aWZpZXJdICE9PSB1bmRlZmluZWQpCi0gICAgICAgIGNoaWxk
LmV4cGFuZGVkID0gY2hpbGQudHJlZU91dGxpbmUuX3RyZWVFbGVtZW50c0V4cGFuZGVkU3RhdGVb
Y2hpbGQuaWRlbnRpZmllcl07CisgICAgY2hpbGQuZXhwYW5kZWQgPSBjaGlsZC5oYXNDaGlsZHJl
biAmJiAhIWNoaWxkLnRyZWVPdXRsaW5lLl9leHBhbmRlZFN0YXRlTWFwLmdldChjaGlsZC5yZXBy
ZXNlbnRlZE9iamVjdCk7CiAKICAgICBpZiAoIXRoaXMuX2NoaWxkcmVuTGlzdE5vZGUpIHsKICAg
ICAgICAgdGhpcy5fY2hpbGRyZW5MaXN0Tm9kZSA9IHRoaXMudHJlZU91dGxpbmUuX2NoaWxkcmVu
TGlzdE5vZGUub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpOwpAQCAtMjQ1LDExICsy
NDIsMTEgQEAgVHJlZU91dGxpbmUucHJvdG90eXBlLnJlbW92ZUNoaWxkcmVuUmVjdXJzaXZlID0g
ZnVuY3Rpb24oKQogCiBUcmVlT3V0bGluZS5wcm90b3R5cGUuX3JlbWVtYmVyVHJlZUVsZW1lbnQg
PSBmdW5jdGlvbihlbGVtZW50KQogewotICAgIGlmICghdGhpcy5fa25vd25UcmVlRWxlbWVudHNb
ZWxlbWVudC5pZGVudGlmaWVyXSkKLSAgICAgICAgdGhpcy5fa25vd25UcmVlRWxlbWVudHNbZWxl
bWVudC5pZGVudGlmaWVyXSA9IFtdOwotCisgICAgaWYgKCF0aGlzLl90cmVlRWxlbWVudHNNYXAu
Z2V0KGVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpKQorICAgICAgICB0aGlzLl90cmVlRWxlbWVu
dHNNYXAucHV0KGVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QsIFtdKTsKKyAgICAgICAgCiAgICAg
Ly8gY2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSBrbm93bgotICAgIHZhciBlbGVtZW50
cyA9IHRoaXMuX2tub3duVHJlZUVsZW1lbnRzW2VsZW1lbnQuaWRlbnRpZmllcl07CisgICAgdmFy
IGVsZW1lbnRzID0gdGhpcy5fdHJlZUVsZW1lbnRzTWFwLmdldChlbGVtZW50LnJlcHJlc2VudGVk
T2JqZWN0KTsKICAgICBpZiAoZWxlbWVudHMuaW5kZXhPZihlbGVtZW50KSAhPT0gLTEpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMjU5LDggKzI1Niw4IEBAIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5f
cmVtZW1iZXJUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKGVsZW1lbnQpCiAKIFRyZWVPdXRsaW5lLnBy
b3RvdHlwZS5fZm9yZ2V0VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihlbGVtZW50KQogewotICAgIGlm
ICh0aGlzLl9rbm93blRyZWVFbGVtZW50c1tlbGVtZW50LmlkZW50aWZpZXJdKQotICAgICAgICB0
aGlzLl9rbm93blRyZWVFbGVtZW50c1tlbGVtZW50LmlkZW50aWZpZXJdLnJlbW92ZShlbGVtZW50
LCB0cnVlKTsKKyAgICBpZiAodGhpcy5fdHJlZUVsZW1lbnRzTWFwLmdldChlbGVtZW50LnJlcHJl
c2VudGVkT2JqZWN0KSkKKyAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnRzTWFwLmdldChlbGVtZW50
LnJlcHJlc2VudGVkT2JqZWN0KS5yZW1vdmUoZWxlbWVudCwgdHJ1ZSk7CiB9CiAKIFRyZWVPdXRs
aW5lLnByb3RvdHlwZS5fZm9yZ2V0Q2hpbGRyZW5SZWN1cnNpdmUgPSBmdW5jdGlvbihwYXJlbnRF
bGVtZW50KQpAQCAtMjc3LDE2ICsyNzQsOSBAQCBUcmVlT3V0bGluZS5wcm90b3R5cGUuZ2V0Q2Fj
aGVkVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVjdCkKICAgICBpZiAoIXJl
cHJlc2VudGVkT2JqZWN0KQogICAgICAgICByZXR1cm4gbnVsbDsKIAotICAgIGlmICgiX190cmVl
RWxlbWVudElkZW50aWZpZXIiIGluIHJlcHJlc2VudGVkT2JqZWN0KSB7Ci0gICAgICAgIC8vIElm
IHRoaXMgcmVwcmVzZW50ZWRPYmplY3QgaGFzIGEgdHJlZSBlbGVtZW50IGlkZW50aWZpZXIsIGFu
ZCBpdCBpcyBhIGtub3duIFRyZWVFbGVtZW50Ci0gICAgICAgIC8vIGluIG91ciB0cmVlIHdlIGNh
biBqdXN0IHJldHVybiB0aGF0IHRyZWUgZWxlbWVudC4KLSAgICAgICAgdmFyIGVsZW1lbnRzID0g
dGhpcy5fa25vd25UcmVlRWxlbWVudHNbcmVwcmVzZW50ZWRPYmplY3QuX190cmVlRWxlbWVudElk
ZW50aWZpZXJdOwotICAgICAgICBpZiAoZWxlbWVudHMpIHsKLSAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgaWYgKGVs
ZW1lbnRzW2ldLnJlcHJlc2VudGVkT2JqZWN0ID09PSByZXByZXNlbnRlZE9iamVjdCkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzW2ldOwotICAgICAgICB9Ci0gICAgfQorICAg
IHZhciBlbGVtZW50cyA9IHRoaXMuX3RyZWVFbGVtZW50c01hcC5nZXQocmVwcmVzZW50ZWRPYmpl
Y3QpOworICAgIGlmIChlbGVtZW50cyAmJiBlbGVtZW50cy5sZW5ndGgpCisgICAgICAgIHJldHVy
biBlbGVtZW50c1swXTsKICAgICByZXR1cm4gbnVsbDsKIH0KIApAQCAtNDc5LDEzICs0NjksNiBA
QCBmdW5jdGlvbiBUcmVlRWxlbWVudCh0aXRsZSwgcmVwcmVzZW50ZWRPYmplY3QsIGhhc0NoaWxk
cmVuKQogICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CiAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVj
dCA9IChyZXByZXNlbnRlZE9iamVjdCB8fCB7fSk7CiAKLSAgICBpZiAodGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5fX3RyZWVFbGVtZW50SWRlbnRpZmllcikKLSAgICAgICAgdGhpcy5pZGVudGlmaWVy
ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5fX3RyZWVFbGVtZW50SWRlbnRpZmllcjsKLSAgICBl
bHNlIHsKLSAgICAgICAgdGhpcy5pZGVudGlmaWVyID0gVHJlZU91dGxpbmUuX2tub3duVHJlZUVs
ZW1lbnROZXh0SWRlbnRpZmllcisrOwotICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Ll9f
dHJlZUVsZW1lbnRJZGVudGlmaWVyID0gdGhpcy5pZGVudGlmaWVyOwotICAgIH0KLQogICAgIHRo
aXMuX2hpZGRlbiA9IGZhbHNlOwogICAgIHRoaXMuX3NlbGVjdGFibGUgPSB0cnVlOwogICAgIHRo
aXMuZXhwYW5kZWQgPSBmYWxzZTsKQEAgLTc0Miw4ICs3MjUsOSBAQCBUcmVlRWxlbWVudC5wcm90
b3R5cGUuY29sbGFwc2UgPSBmdW5jdGlvbigpCiAgICAgICAgIHRoaXMuX2NoaWxkcmVuTGlzdE5v
ZGUuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKTsKIAogICAgIHRoaXMuZXhwYW5kZWQgPSBm
YWxzZTsKKyAgICAKICAgICBpZiAodGhpcy50cmVlT3V0bGluZSkKLSAgICAgICAgdGhpcy50cmVl
T3V0bGluZS5fdHJlZUVsZW1lbnRzRXhwYW5kZWRTdGF0ZVt0aGlzLmlkZW50aWZpZXJdID0gZmFs
c2U7CisgICAgICAgIHRoaXMudHJlZU91dGxpbmUuX2V4cGFuZGVkU3RhdGVNYXAucHV0KHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QsIGZhbHNlKTsKIAogICAgIGlmICh0aGlzLm9uY29sbGFwc2UpCiAg
ICAgICAgIHRoaXMub25jb2xsYXBzZSh0aGlzKTsKQEAgLTc3MCw3ICs3NTQsNyBAQCBUcmVlRWxl
bWVudC5wcm90b3R5cGUuZXhwYW5kID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5leHBhbmRlZCA9
IHRydWU7CiAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUpCi0gICAgICAgIHRoaXMudHJlZU91dGxp
bmUuX3RyZWVFbGVtZW50c0V4cGFuZGVkU3RhdGVbdGhpcy5pZGVudGlmaWVyXSA9IHRydWU7Cisg
ICAgICAgIHRoaXMudHJlZU91dGxpbmUuX2V4cGFuZGVkU3RhdGVNYXAucHV0KHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QsIHRydWUpOwogCiAgICAgaWYgKHRoaXMudHJlZU91dGxpbmUgJiYgKCF0aGlz
Ll9jaGlsZHJlbkxpc3ROb2RlIHx8IHRoaXMuX3Nob3VsZFJlZnJlc2hDaGlsZHJlbikpIHsKICAg
ICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuTGlzdE5vZGUgJiYgdGhpcy5fY2hpbGRyZW5MaXN0Tm9k
ZS5wYXJlbnROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC91dGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0
aWxpdGllcy5qcwppbmRleCA5ZTZhMTQxZWU0NTk2ZDkyMTM2NGE2MjY5ZTJkY2ExNWNjMzA1NmM2
Li41YmVlNjI0ZGI1NDllMzlmYmNiZDE5YmIwMjE5NmMxOTc0ZmUxZjE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwpAQCAtMTE0OSwzICsx
MTQ5LDQ0IEBAIFRleHREaWZmLmNvbXB1dGUgPSBmdW5jdGlvbihiYXNlQ29udGVudCwgbmV3Q29u
dGVudCkKICAgICB9CiAgICAgcmV0dXJuIGRpZmZEYXRhOwogfQorCisvKioKKyAqIEBjb25zdHJ1
Y3RvcgorICovCitNYXAgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fbWFwID0ge307Cit9CisK
K01hcC5fbGFzdE9iamVjdElkZW50aWZpZXIgPSAwOworCitNYXAucHJvdG90eXBlID0geworICAg
IC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBrZXkKKyAgICAgKi8KKyAgICBwdXQ6IGZ1bmN0
aW9uKGtleSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0SWRlbnRpZmllciA9IGtl
eS5fX2lkZW50aWZpZXI7CisgICAgICAgIGlmICghb2JqZWN0SWRlbnRpZmllcikgeworICAgICAg
ICAgICAgb2JqZWN0SWRlbnRpZmllciA9ICsrTWFwLl9sYXN0T2JqZWN0SWRlbnRpZmllcjsKKyAg
ICAgICAgICAgIGtleS5fX2lkZW50aWZpZXIgPSBvYmplY3RJZGVudGlmaWVyOworICAgICAgICB9
CisgICAgICAgIHRoaXMuX21hcFtvYmplY3RJZGVudGlmaWVyXSA9IHZhbHVlOworICAgIH0sCisg
ICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtPYmplY3R9IGtleQorICAgICAqLworICAgIHJl
bW92ZTogZnVuY3Rpb24oa2V5KQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX21hcFtrZXku
X19pZGVudGlmaWVyXTsKKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2Jq
ZWN0fSBrZXkKKyAgICAgKi8KKyAgICBnZXQ6IGZ1bmN0aW9uKGtleSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9tYXBba2V5Ll9faWRlbnRpZmllcl07CisgICAgfSwKK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2
ODE2Nzk0N2Y0YzVlNDQxYzgwNWRkNTUxZTQ1Y2Q4YjhmMzY4YzgwLi5iMzA1NDFmNjZlZWM1Nzk2
MGU4NGI3ZmY5NjA1MDZkODg1YTdmMDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTIt
MDggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogSW50cm9kdWNlIGEgTWFwIGNsYXNzIGFsbG93aW5nIHRvIHN0b3JlIHZhbHVl
cyBpbmRleGVkIGJ5IGFyYml0cmFyeSBvYmplY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9tYXAtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvbWFwLmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTA4ICBU
YWthc2hpIFRveW9zaGltYSAgPHRveW9zaGltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXgg
ZmFpbGVkIGxheW91dCB0ZXN0LCBidWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1pbi1idXN5Lmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tYXAtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL21hcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTMwZTky
NzliMTUxNWQ3NzQ1NWY1ZjAwODQyMjUwNGEyNTE3OTM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9tYXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAwIEBACitU
ZXN0cyBNYXAgY2xhc3MuCisKK0J1ZyA3NDA4NAorRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6
CisgICAga2V5MSA6IHVuZGVmaW5lZAorICAgIGtleTIgOiB1bmRlZmluZWQKKyAgU2Vjb25kIG1h
cDoKKyAgICBrZXkxIDogdW5kZWZpbmVkCisgICAga2V5MiA6IHVuZGVmaW5lZAorCitEdW1waW5n
IG1hcHM6CisgIEZpcnN0IG1hcDoKKyAgICBrZXkxIDogMgorICAgIGtleTIgOiB1bmRlZmluZWQK
KyAgU2Vjb25kIG1hcDoKKyAgICBrZXkxIDogdW5kZWZpbmVkCisgICAga2V5MiA6IHVuZGVmaW5l
ZAorCitEdW1waW5nIG1hcHM6CisgIEZpcnN0IG1hcDoKKyAgICBrZXkxIDogMQorICAgIGtleTIg
OiB1bmRlZmluZWQKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkxIDogdW5kZWZpbmVkCisgICAga2V5
MiA6IHVuZGVmaW5lZAorCitEdW1waW5nIG1hcHM6CisgIEZpcnN0IG1hcDoKKyAgICBrZXkxIDog
MQorICAgIGtleTIgOiB1bmRlZmluZWQKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkxIDogMQorICAg
IGtleTIgOiB1bmRlZmluZWQKKworRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6CisgICAga2V5
MSA6IDEKKyAgICBrZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6CisgICAga2V5MSA6IDIK
KyAgICBrZXkyIDogdW5kZWZpbmVkCisKK0R1bXBpbmcgbWFwczoKKyAgRmlyc3QgbWFwOgorICAg
IGtleTEgOiAxCisgICAga2V5MiA6IDIKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkxIDogMgorICAg
IGtleTIgOiB1bmRlZmluZWQKKworRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6CisgICAga2V5
MSA6IDEKKyAgICBrZXkyIDogMgorICBTZWNvbmQgbWFwOgorICAgIGtleTEgOiAyCisgICAga2V5
MiA6IDEKKworRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6CisgICAga2V5MSA6IDEKKyAgICBr
ZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6CisgICAga2V5MSA6IDIKKyAgICBrZXkyIDog
MQorCitEdW1waW5nIG1hcHM6CisgIEZpcnN0IG1hcDoKKyAgICBrZXkxIDogMQorICAgIGtleTIg
OiB1bmRlZmluZWQKKyAgU2Vjb25kIG1hcDoKKyAgICBrZXkxIDogMgorICAgIGtleTIgOiB1bmRl
ZmluZWQKKworRHVtcGluZyBtYXBzOgorICBGaXJzdCBtYXA6CisgICAga2V5MSA6IDEKKyAgICBr
ZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6CisgICAga2V5MSA6IDIKKyAgICBrZXkyIDog
dW5kZWZpbmVkCisKK0R1bXBpbmcgbWFwczoKKyAgRmlyc3QgbWFwOgorICAgIGtleTEgOiB1bmRl
ZmluZWQKKyAgICBrZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6CisgICAga2V5MSA6IDIK
KyAgICBrZXkyIDogdW5kZWZpbmVkCisKK0R1bXBpbmcgbWFwczoKKyAgRmlyc3QgbWFwOgorICAg
IGtleTEgOiB1bmRlZmluZWQKKyAgICBrZXkyIDogdW5kZWZpbmVkCisgIFNlY29uZCBtYXA6Cisg
ICAga2V5MSA6IHVuZGVmaW5lZAorICAgIGtleTIgOiB1bmRlZmluZWQKKworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbWFwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bWFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNjYWU1MjRhMDU5NTg3Yzc5MjAwNzU0MWVhZTI1OWZhYmMz
MDgyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tYXAuaHRtbApA
QCAtMCwwICsxLDcxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKwordmFyIHRlc3QgPSBmdW5jdGlvbigpCit7CisgICAgZnVuY3Rp
b24gZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5MikKKyAgICB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIG1hcHM6Iik7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCIgIEZpcnN0IG1hcDoiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIiAgICBrZXkxIDogIiArIG1hcDEuZ2V0KGtleTEpKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiAgICBrZXkyIDogIiArIG1hcDEuZ2V0KGtleTIpKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgU2Vjb25kIG1hcDoiKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiAgICBrZXkxIDogIiArIG1hcDIuZ2V0KGtleTEpKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBrZXkyIDogIiArIG1hcDIuZ2V0KGtleTIp
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOworICAgIH0KKworICAgIHZh
ciBrZXkxID0ge307CisgICAgdmFyIGtleTIgPSB7fTsKKyAgICB2YXIgdmFsdWUxID0gMTsKKyAg
ICB2YXIgdmFsdWUyID0gMjsKKyAgICB2YXIgbWFwMSA9IG5ldyBNYXAoKTsKKyAgICB2YXIgbWFw
MiA9IG5ldyBNYXAoKTsKKworICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOwor
CisgICAgbWFwMS5wdXQoa2V5MSwgdmFsdWUyKTsKKyAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBr
ZXkxLCBrZXkyKTsKKworICAgIG1hcDEucHV0KGtleTEsIHZhbHVlMSk7CisgICAgZHVtcE1hcHMo
bWFwMSwgbWFwMiwga2V5MSwga2V5Mik7CisKKyAgICBtYXAyLnB1dChrZXkxLCB2YWx1ZTEpOwor
ICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOworCisgICAgbWFwMi5wdXQoa2V5
MSwgdmFsdWUyKTsKKyAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXkyKTsKKworICAg
IG1hcDEucHV0KGtleTIsIHZhbHVlMik7CisgICAgZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwg
a2V5Mik7CisKKyAgICBtYXAyLnB1dChrZXkyLCB2YWx1ZTEpOworICAgIGR1bXBNYXBzKG1hcDEs
IG1hcDIsIGtleTEsIGtleTIpOworCisgICAgbWFwMS5yZW1vdmUoa2V5Mik7CisgICAgZHVtcE1h
cHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7CisKKyAgICBtYXAyLnJlbW92ZShrZXkyKTsKKyAg
ICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXkyKTsKKworICAgIG1hcDIucmVtb3ZlKGtl
eTIpOworICAgIGR1bXBNYXBzKG1hcDEsIG1hcDIsIGtleTEsIGtleTIpOworCisgICAgbWFwMS5y
ZW1vdmUoa2V5MSk7CisgICAgZHVtcE1hcHMobWFwMSwgbWFwMiwga2V5MSwga2V5Mik7CisKKyAg
ICBtYXAyLnJlbW92ZShrZXkxKTsKKyAgICBkdW1wTWFwcyhtYXAxLCBtYXAyLCBrZXkxLCBrZXky
KTsKKworICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cit9CisKKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgTWFwIGNsYXNzLjwv
cD4KKzxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA4
NCI+QnVnIDc0MDg0PC9hPgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="118184"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>