<?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>42379</bug_id>
          
          <creation_ts>2010-07-15 08:47:36 -0700</creation_ts>
          <short_desc>Web Inspector: Rename method for CSS rule source range retrieval and fix return object format</short_desc>
          <delta_ts>2010-07-22 06:27:16 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</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>251909</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-15 08:47:36 -0700</bug_when>
    <thetext>getRuleRangesForStyleSheetId looks too long compared to other InspectorBackend methods.
Also, it is more convenient to use styleId rather than ruleId as the key in the response object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251944</commentid>
    <comment_count>1</comment_count>
      <attachid>61676</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-15 09:46:22 -0700</bug_when>
    <thetext>Created attachment 61676
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252987</commentid>
    <comment_count>2</comment_count>
      <attachid>61676</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-18 12:25:46 -0700</bug_when>
    <thetext>Comment on attachment 61676
[PATCH] Suggested solution

WebCore/inspector/InspectorCSSStore.cpp:141
 +          return result;
Nit: I&apos;d suggest not using result here and moving declaration to where it is used (bottom of this method).

WebCore/inspector/InspectorCSSStore.cpp:149
 +          result.set(bindStyle(rule-&gt;style()), offsetVector-&gt;at(ruleIndex));
I think binding rule makes more sense. Why did this change? r- here unless you explain please!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253003</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-18 14:22:50 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 61676 [details])
&gt; WebCore/inspector/InspectorCSSStore.cpp:141
&gt;  +          return result;
&gt; Nit: I&apos;d suggest not using result here and moving declaration to where it is used (bottom of this method).

Will do.

&gt; WebCore/inspector/InspectorCSSStore.cpp:149
&gt;  +          result.set(bindStyle(rule-&gt;style()), offsetVector-&gt;at(ruleIndex));
&gt; I think binding rule makes more sense. Why did this change? r- here unless you explain please!

It is quite logical to bind rules instead of styles. However:

(a) Styles sidebar (and my new code) uses style bindings (rather than rule bindings) returned from InspectorDOMAgent::applyStyleText:
m_frontend-&gt;didApplyStyleText(callId, true, buildObjectForStyle(style, true), toArray(changedProperties));
I will need another internal map to handle rule bindings if they are used in place of style bindings.

(b) I can see this method (perhaps after getting a better name and a slight refactoring) return positions for rules in external CSS, inline CSS, and style descriptions as values of the &quot;style&quot; element attributes. In the latter case, there are no rules, only styles. It doesn&apos;t seem logical to return both bound rules and bound styles in similar cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253620</commentid>
    <comment_count>4</comment_count>
      <attachid>62045</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-20 02:14:42 -0700</bug_when>
    <thetext>Created attachment 62045
[PATCH] Comment addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253628</commentid>
    <comment_count>5</comment_count>
      <attachid>62046</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-20 02:46:18 -0700</bug_when>
    <thetext>Created attachment 62046
[PATCH] Revert a removed blank line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254755</commentid>
    <comment_count>6</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-07-22 06:27:16 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       LayoutTests/ChangeLog
        M       LayoutTests/inspector/styles-source-offsets.html
        M       WebCore/ChangeLog
        M       WebCore/inspector/Inspector.idl
        M       WebCore/inspector/InspectorBackend.cpp
        M       WebCore/inspector/InspectorBackend.h
        M       WebCore/inspector/InspectorBackend.idl
        M       WebCore/inspector/InspectorCSSStore.cpp
        M       WebCore/inspector/InspectorCSSStore.h
        M       WebCore/inspector/InspectorDOMAgent.cpp
        M       WebCore/inspector/InspectorDOMAgent.h
        M       WebCore/inspector/front-end/DOMAgent.js
        M       WebKit/chromium/ChangeLog
        M       WebKit/chromium/src/js/InspectorControllerImpl.js
Committed r63886</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61676</attachid>
            <date>2010-07-15 09:46:22 -0700</date>
            <delta_ts>2010-07-20 02:14:42 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>rangesmethod.patch</filename>
            <type>text/plain</type>
            <size>13567</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhM2U0OWYwLi40YjEyNmJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDct
MTUgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW5h
bWUgbWV0aG9kIGZvciBDU1MgcnVsZSBzb3VyY2UgcmFuZ2UgcmV0cmlldmFsIGFuZCBmaXggcmV0
dXJuIG9iamVjdCBmb3JtYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQyMzc5CisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZz
ZXRzLmh0bWw6CisKIDIwMTAtMDctMTUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbAppbmRleCA4
Nzg2MDJkLi4yZDU5OTcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
LXNvdXJjZS1vZmZzZXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1z
b3VyY2Utb2Zmc2V0cy5odG1sCkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIGZyb250ZW5kX3J1
blRlc3QodGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRzKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFJ1bGVSYW5n
ZXNGb3JTdHlsZVNoZWV0SWQoV2ViSW5zcGVjdG9yLkNhbGxiYWNrLndyYXAoZnJvbnRlbmRfcnVs
ZVJhbmdlc1JlY2VpdmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIsIHBhcmVudFN0eWxlU2hl
ZXRJZCwgbWF0Y2hlZENTU1J1bGVzKSksIHBhcmVudFN0eWxlU2hlZXRJZCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldFJ1bGVSYW5nZXMoV2ViSW5zcGVjdG9yLkNhbGxiYWNrLndy
YXAoZnJvbnRlbmRfcnVsZVJhbmdlc1JlY2VpdmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIs
IHBhcmVudFN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzKSksIHBhcmVudFN0eWxlU2hlZXRJ
ZCk7CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZXMoV2ViSW5z
cGVjdG9yLkNhbGxiYWNrLndyYXAoc3R5bGVzQ2FsbGJhY2suYmluZChudWxsLCB0ZXN0Q29udHJv
bGxlcikpLCBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYm9keS5pZCwgdHJ1ZSk7CiAg
ICAgfSk7CkBAIC01MSw3ICs1MSw3IEBAIGZ1bmN0aW9uIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNl
aXZlZCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsCiB7CiAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBtYXRjaGVkQ1NTUnVsZXMubGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgdmFyIHJ1bGUgPSBtYXRjaGVkQ1NTUnVsZXNbaV07Ci0gICAgICAgIHRlc3RDb250cm9sbGVy
LnJlc3VsdHMucHVzaChydWxlLnNlbGVjdG9yVGV4dCArICI6IFsiICsgcnVsZVJhbmdlc1tydWxl
LmlkXS5ib2R5UmFuZ2Uuc3RhcnQgKyAiLSIgKyBydWxlUmFuZ2VzW3J1bGUuaWRdLmJvZHlSYW5n
ZS5lbmQgKyAiXSIpOworICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2gocnVsZS5z
ZWxlY3RvclRleHQgKyAiOiBbIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdl
LnN0YXJ0ICsgIi0iICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFuZ2UuZW5kICsg
Il0iKTsKICAgICB9CiAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNoZWV0KFdlYkluc3Bl
Y3Rvci5DYWxsYmFjay53cmFwKGZyb250ZW5kX2hhbmRsZVN0eWxlU2hlZXQuYmluZChudWxsLCB0
ZXN0Q29udHJvbGxlcikpLCBzdHlsZVNoZWV0SWQpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YmZjM2I0Li4wYjlmYWE3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDEwLTA3LTE1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogUmVuYW1lIG1ldGhvZCBmb3IgQ1NTIHJ1bGUgc291cmNlIHJhbmdlIHJl
dHJpZXZhbCBhbmQgZml4IHJldHVybiBvYmplY3QgZm9ybWF0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjM3OQorCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvci5pZGw6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZDo6Z2V0UnVsZVJhbmdlcyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZC5pZGw6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNT
U1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpnZXRSdWxl
UmFuZ2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OmdldFJ1bGVSYW5nZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdl
bnQuanM6CisKIDIwMTAtMDctMTUgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lh
LmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IDQ3NmQwNDAuLmQ4NWYzMjMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtMTI3LDcgKzEyNyw3IEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZShpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxl
KTsKICAgICAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFs
dWUgc3R5bGUpOwogICAgICAgICB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBzdHlsZVNoZWV0
SWQsIG91dCBWYWx1ZSBzdHlsZVNoZWV0KTsKLSAgICAgICAgdm9pZCBnZXRSdWxlUmFuZ2VzRm9y
U3R5bGVTaGVldElkKGluIGxvbmcgc3R5bGVTaGVldElkKTsKKyAgICAgICAgdm9pZCBnZXRSdWxl
UmFuZ2VzKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IFZhbHVlIHJh
bmdlcyk7CiAgICAgICAgIHZvaWQgYXBwbHlTdHlsZVRleHQoaW4gbG9uZyBzdHlsZUlkLCBpbiBT
dHJpbmcgc3R5bGVUZXh0LCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBvdXQgYm9vbGVhbiBzdWNj
ZXNzLCBvdXQgVmFsdWUgc3R5bGUsIG91dCBBcnJheSBjaGFuZ2VkUHJvcGVydGllcyk7CiAgICAg
ICAgIHZvaWQgc2V0U3R5bGVUZXh0KGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0eWxlVGV4
dCwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CiAgICAgICAgIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShp
biBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUsIG91dCBib29s
ZWFuIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcAppbmRleCA5
ZjcxMzA3Li41YmNjMDUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JC
YWNrZW5kLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcApA
QCAtNDQ4LDEwICs0NDgsMTAgQEAgdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpnZXRTdHlsZVNoZWV0
KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZXRJZCkKICAgICAgICAgZG9tQWdlbnQtPmdldFN0
eWxlU2hlZXQoY2FsbElkLCBzdHlsZVNoZWV0SWQpOwogfQogCi12b2lkIEluc3BlY3RvckJhY2tl
bmQ6OmdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0SWQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVT
aGVldElkKQordm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpnZXRSdWxlUmFuZ2VzKGxvbmcgY2FsbElk
LCBsb25nIHN0eWxlU2hlZXRJZCkKIHsKICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFn
ZW50ID0gaW5zcGVjdG9yRE9NQWdlbnQoKSkKLSAgICAgICAgZG9tQWdlbnQtPmdldFJ1bGVSYW5n
ZXNGb3JTdHlsZVNoZWV0SWQoY2FsbElkLCBzdHlsZVNoZWV0SWQpOworICAgICAgICBkb21BZ2Vu
dC0+Z2V0UnVsZVJhbmdlcyhjYWxsSWQsIHN0eWxlU2hlZXRJZCk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yQmFja2VuZDo6YXBwbHlTdHlsZVRleHQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29u
c3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oCmluZGV4IDc4ZDM0YjYuLmI1ZjFmMTYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaAorKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKQEAgLTE0MCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBnZXRJbmxpbmVTdHlsZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpOwogICAgIHZv
aWQgZ2V0Q29tcHV0ZWRTdHlsZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpOwogICAgIHZvaWQg
Z2V0U3R5bGVTaGVldChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpOwotICAgIHZvaWQg
Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJZChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0
SWQpOworICAgIHZvaWQgZ2V0UnVsZVJhbmdlcyhsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0
SWQpOwogICAgIHZvaWQgYXBwbHlTdHlsZVRleHQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwg
Y29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKTsKICAg
ICB2b2lkIHNldFN0eWxlVGV4dChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJp
bmcmIGNzc1RleHQpOwogICAgIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShsb25nIGNhbGxJZCwgbG9u
ZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGwgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbAppbmRleCAzYzQ2MGExLi41YWM2MWFiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbApAQCAtMTE3LDcgKzExNyw3IEBA
IG1vZHVsZSBjb3JlIHsKICAgICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZShpbiBsb25nIGNhbGxJ
ZCwgaW4gbG9uZyBub2RlSWQpOwogICAgICAgICB2b2lkIGdldENvbXB1dGVkU3R5bGUoaW4gbG9u
ZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkKTsKICAgICAgICAgdm9pZCBnZXRTdHlsZVNoZWV0KGlu
IGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlU2hlZXRJZCk7Ci0gICAgICAgIHZvaWQgZ2V0UnVs
ZVJhbmdlc0ZvclN0eWxlU2hlZXRJZChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZVNoZWV0
SWQpOworICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcg
c3R5bGVTaGVldElkKTsKICAgICAgICAgdm9pZCBhcHBseVN0eWxlVGV4dChpbiBsb25nIGNhbGxJ
ZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBET01TdHJpbmcgc3R5bGVUZXh0LCBpbiBET01TdHJpbmcg
cHJvcGVydHlOYW1lKTsKICAgICAgICAgdm9pZCBzZXRTdHlsZVRleHQoaW4gbG9uZyBjYWxsSWQs
IGluIGxvbmcgc3R5bGVJZCwgaW4gRE9NU3RyaW5nIHN0eWxlVGV4dCk7CiAgICAgICAgIHZvaWQg
c2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBET01T
dHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmNwcAppbmRleCA5ZGZmZWY5Li42NzM3NzUyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTU3RvcmUuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgQ1NTU3R5bGVTaGVldCog
SW5zcGVjdG9yQ1NTU3RvcmU6Omluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQqIG93bmVyRG9j
dW1lbnQsIGIKICAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldDsKIH0KIAotSGFzaE1hcDxs
b25nLCBTb3VyY2VSYW5nZT4gSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFJ1bGVSYW5nZXNGb3JTdHls
ZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQpCitIYXNoTWFwPGxvbmcsIFNvdXJjZVJh
bmdlPiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0KiBzdHls
ZVNoZWV0KQogewogICAgIGlmICghc3R5bGVTaGVldCkKICAgICAgICAgcmV0dXJuIEhhc2hNYXA8
bG9uZywgU291cmNlUmFuZ2U+KCk7CkBAIC0xMzgsMTQgKzEzOCwxNSBAQCBIYXNoTWFwPGxvbmcs
IFNvdXJjZVJhbmdlPiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hl
ZXQoQ1NTU3R5bAogICAgIH0gZWxzZQogICAgICAgICBvZmZzZXRWZWN0b3IgPSBpdC0+c2Vjb25k
OwogICAgIGlmICghb2Zmc2V0VmVjdG9yKQotICAgICAgICByZXR1cm4gSGFzaE1hcDxsb25nLCBT
b3VyY2VSYW5nZT4oKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB1bnNpZ25lZCBydWxl
SW5kZXggPSAwOwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHN0eWxlU2hlZXQt
Pmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgQVNTRVJUKHJ1bGVJbmRleCA8
IG9mZnNldFZlY3Rvci0+c2l6ZSgpKTsKICAgICAgICAgQ1NTU3R5bGVSdWxlKiBydWxlID0gYXND
U1NTdHlsZVJ1bGUoc3R5bGVTaGVldC0+aXRlbShpKSk7CiAgICAgICAgIGlmICghcnVsZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICByZXN1bHQuc2V0KGJpbmRSdWxlKHJ1bGUpLCBv
ZmZzZXRWZWN0b3ItPmF0KHJ1bGVJbmRleCkpOworICAgICAgICAvLyBUaGlzIG1hcHMgdGhlIHN0
eWxlIGlkIHRvIHRoZSBydWxlIGJvZHkgcmFuZ2UuCisgICAgICAgIHJlc3VsdC5zZXQoYmluZFN0
eWxlKHJ1bGUtPnN0eWxlKCkpLCBvZmZzZXRWZWN0b3ItPmF0KHJ1bGVJbmRleCkpOwogICAgICAg
ICBydWxlSW5kZXgrKzsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmggYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NTdG9yZS5oCmluZGV4IDRiN2VmNTEuLjA5MTA1M2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgSW5z
cGVjdG9yQ1NTU3RvcmUoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlcik7
CiAgICAgfkluc3BlY3RvckNTU1N0b3JlKCk7CiAgICAgdm9pZCByZXNldCgpOwotICAgIEhhc2hN
YXA8bG9uZywgU291cmNlUmFuZ2U+IGdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0KENTU1N0eWxl
U2hlZXQqKTsKKyAgICBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBnZXRSdWxlUmFuZ2VzKENT
U1N0eWxlU2hlZXQqKTsKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZUZvcklkKGxvbmcg
c3R5bGVJZCk7CiAgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldEZvcklkKGxvbmcgc3R5bGVT
aGVldElkKTsKICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGVGb3JJZChsb25nIHN0eWxlUnVsZUlkKTsK
QEAgLTgwLDcgKzgwLDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0YXRpYyBDU1NTdHls
ZVJ1bGUqIGFzQ1NTU3R5bGVSdWxlKFN0eWxlQmFzZSopOwotCiAgICAgU3R5bGVUb0lkTWFwIG1f
c3R5bGVUb0lkOwogICAgIElkVG9TdHlsZU1hcCBtX2lkVG9TdHlsZTsKICAgICBSdWxlVG9JZE1h
cCBtX3J1bGVUb0lkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4
IGUzZDFiZjUuLjNhMTQ4MzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKQEAgLTEwNzUsMTEgKzEwNzUsMTEgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0U3R5
bGVTaGVldChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpCiAgICAgICAgIG1fZnJvbnRl
bmQtPmRpZEdldFN0eWxlU2hlZXQoY2FsbElkLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJ
ZChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpCit2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpnZXRSdWxlUmFuZ2VzKGxvbmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZXRJZCkKIHsKICAgICBD
U1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gY3NzU3RvcmUoKS0+c3R5bGVTaGVldEZvcklkKHN0
eWxlU2hlZXRJZCk7CiAgICAgaWYgKHN0eWxlU2hlZXQgJiYgc3R5bGVTaGVldC0+ZG9jKCkpIHsK
LSAgICAgICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gcnVsZVJhbmdlcyA9IGNzc1N0b3Jl
KCktPmdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0KHN0eWxlU2hlZXQpOworICAgICAgICBIYXNo
TWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBydWxlUmFuZ2VzID0gY3NzU3RvcmUoKS0+Z2V0UnVsZVJh
bmdlcyhzdHlsZVNoZWV0KTsKICAgICAgICAgaWYgKCFydWxlUmFuZ2VzLnNpemUoKSkgewogICAg
ICAgICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0U3R5bGVTaGVldChjYWxsSWQsIEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTA5NSw5ICsxMDk1LDkg
QEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJZChs
b25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWUKICAgICAgICAgICAgICAgICBib2R5UmFuZ2UtPnNl
dE51bWJlcigiZW5kIiwgaXQtPnNlY29uZC5zZWNvbmQpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIG1fZnJvbnRlbmQtPmRpZEdldFN0eWxlU2hlZXQoY2FsbElkLCByZXN1bHQp
OworICAgICAgICBtX2Zyb250ZW5kLT5kaWRHZXRSdWxlUmFuZ2VzKGNhbGxJZCwgcmVzdWx0KTsK
ICAgICB9IGVsc2UKLSAgICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0U3R5bGVTaGVldChjYWxsSWQs
IEluc3BlY3RvclZhbHVlOjpudWxsKCkpOworICAgICAgICBtX2Zyb250ZW5kLT5kaWRHZXRSdWxl
UmFuZ2VzKGNhbGxJZCwgSW5zcGVjdG9yVmFsdWU6Om51bGwoKSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OmdldElubGluZVN0eWxlKGxvbmcgY2FsbElkLCBsb25nIG5vZGVJZCkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDZmOWM1ZmIuLjE0MDYwOTkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTE2LDcgKzExNiw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZShsb25nIGNhbGxJ
ZCwgbG9uZyBub2RlSWQpOwogICAgICAgICB2b2lkIGdldENvbXB1dGVkU3R5bGUobG9uZyBjYWxs
SWQsIGxvbmcgbm9kZUlkKTsKICAgICAgICAgdm9pZCBnZXRTdHlsZVNoZWV0KGxvbmcgY2FsbElk
LCBsb25nIHN0eWxlU2hlZXRJZCk7Ci0gICAgICAgIHZvaWQgZ2V0UnVsZVJhbmdlc0ZvclN0eWxl
U2hlZXRJZChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpOworICAgICAgICB2b2lkIGdl
dFJ1bGVSYW5nZXMobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVTaGVldElkKTsKICAgICAgICAgdm9p
ZCBhcHBseVN0eWxlVGV4dChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcm
IHN0eWxlVGV4dCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2b2lkIHNl
dFN0eWxlVGV4dChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIGNzc1Rl
eHQpOwogICAgICAgICB2b2lkIHNldFN0eWxlUHJvcGVydHkobG9uZyBjYWxsSWQsIGxvbmcgc3R5
bGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwppbmRleCAwN2IxNmIxLi5iY2JlOTFlIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC02OTgsNiArNjk4LDcgQEAg
V2ViSW5zcGVjdG9yLmRpZEdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZSA9IFdlYkluc3BlY3Rvci5D
YWxsYmFjay5wcm9jZXNzQ2FsbGJhY2sKIFdlYkluc3BlY3Rvci5kaWRHZXRTdHlsZXMgPSBXZWJJ
bnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vzc0NhbGxiYWNrOwogV2ViSW5zcGVjdG9yLmRpZEdldEFs
bFN0eWxlcyA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay5wcm9jZXNzQ2FsbGJhY2s7CiBXZWJJbnNw
ZWN0b3IuZGlkR2V0U3R5bGVTaGVldCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay5wcm9jZXNzQ2Fs
bGJhY2s7CitXZWJJbnNwZWN0b3IuZGlkR2V0UnVsZVJhbmdlcyA9IFdlYkluc3BlY3Rvci5DYWxs
YmFjay5wcm9jZXNzQ2FsbGJhY2s7CiBXZWJJbnNwZWN0b3IuZGlkR2V0SW5saW5lU3R5bGUgPSBX
ZWJJbnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vzc0NhbGxiYWNrOwogV2ViSW5zcGVjdG9yLmRpZEdl
dENvbXB1dGVkU3R5bGUgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vzc0NhbGxiYWNrOwog
V2ViSW5zcGVjdG9yLmRpZEFwcGx5U3R5bGVUZXh0ID0gV2ViSW5zcGVjdG9yLkNhbGxiYWNrLnBy
b2Nlc3NDYWxsYmFjazsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDIzMjQ2MDguLjQzNGZiODEgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA3LTE1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVuYW1lIG1ldGhvZCBmb3IgQ1NTIHJ1bGUgc291
cmNlIHJhbmdlIHJldHJpZXZhbCBhbmQgZml4IHJldHVybiBvYmplY3QgZm9ybWF0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjM3OQorCisgICAgICAg
ICogc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzOgorICAgICAgICAoZGV2dG9vbHMu
SW5zcGVjdG9yQmFja2VuZEltcGwpOgorCiAyMDEwLTA3LTE1ICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRz
a3kuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xs
ZXJJbXBsLmpzIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1w
bC5qcwppbmRleCA1ZWQ1MDZhLi5hNzk1ODkxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMKQEAgLTk0LDcgKzk0LDcgQEAgZGV2dG9v
bHMuSW5zcGVjdG9yQmFja2VuZEltcGwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5pbnN0YWxsSW5z
cGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0Q29tcHV0ZWRTdHlsZSIpOwogICAgIHRoaXMu
aW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldElubGluZVN0eWxlIik7CiAg
ICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0U3R5bGVTaGVl
dCIpOwotICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldFJ1
bGVSYW5nZXNGb3JTdHlsZVNoZWV0SWQiKTsKKyAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250
cm9sbGVyRGVsZWdhdGVfKCJnZXRSdWxlUmFuZ2VzIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVj
dG9yQ29udHJvbGxlckRlbGVnYXRlXygiYXBwbHlTdHlsZVRleHQiKTsKICAgICB0aGlzLmluc3Rh
bGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJzZXRTdHlsZVRleHQiKTsKICAgICB0aGlz
Lmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJzZXRTdHlsZVByb3BlcnR5Iik7
Cg==
</data>
<flag name="review"
          id="49737"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62045</attachid>
            <date>2010-07-20 02:14:42 -0700</date>
            <delta_ts>2010-07-20 02:46:18 -0700</delta_ts>
            <desc>[PATCH] Comment addressed</desc>
            <filename>rangesmethod.patch</filename>
            <type>text/plain</type>
            <size>14055</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMWE2NzUxLi44MDYyNWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDct
MjAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW5h
bWUgbWV0aG9kIGZvciBDU1MgcnVsZSBzb3VyY2UgcmFuZ2UgcmV0cmlldmFsIGFuZCBmaXggcmV0
dXJuIG9iamVjdCBmb3JtYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQyMzc5CisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZz
ZXRzLmh0bWw6CisKIDIwMTAtMDctMjAgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5u
QHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXgg
ODc4NjAyZC4uMmQ1OTk3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy1zb3VyY2Utb2Zmc2V0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMt
c291cmNlLW9mZnNldHMuaHRtbApAQCAtNDEsNyArNDEsNyBAQCBmdW5jdGlvbiBmcm9udGVuZF9y
dW5UZXN0KHRlc3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSdWxlUmFu
Z2VzRm9yU3R5bGVTaGVldElkKFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKGZyb250ZW5kX3J1
bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyLCBwYXJlbnRTdHlsZVNo
ZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpLCBwYXJlbnRTdHlsZVNoZWV0SWQpOworICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSdWxlUmFuZ2VzKFdlYkluc3BlY3Rvci5DYWxsYmFjay53
cmFwKGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVy
LCBwYXJlbnRTdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpLCBwYXJlbnRTdHlsZVNoZWV0
SWQpOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKFdlYklu
c3BlY3Rvci5DYWxsYmFjay53cmFwKHN0eWxlc0NhbGxiYWNrLmJpbmQobnVsbCwgdGVzdENvbnRy
b2xsZXIpKSwgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmJvZHkuaWQsIHRydWUpOwog
ICAgIH0pOwpAQCAtNTEsNyArNTEsNyBAQCBmdW5jdGlvbiBmcm9udGVuZF9ydWxlUmFuZ2VzUmVj
ZWl2ZWQodGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bAogewogICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKSB7CiAgICAg
ICAgIHZhciBydWxlID0gbWF0Y2hlZENTU1J1bGVzW2ldOwotICAgICAgICB0ZXN0Q29udHJvbGxl
ci5yZXN1bHRzLnB1c2gocnVsZS5zZWxlY3RvclRleHQgKyAiOiBbIiArIHJ1bGVSYW5nZXNbcnVs
ZS5pZF0uYm9keVJhbmdlLnN0YXJ0ICsgIi0iICsgcnVsZVJhbmdlc1tydWxlLmlkXS5ib2R5UmFu
Z2UuZW5kICsgIl0iKTsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHJ1bGUu
c2VsZWN0b3JUZXh0ICsgIjogWyIgKyBydWxlUmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5n
ZS5zdGFydCArICItIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdlLmVuZCAr
ICJdIik7CiAgICAgfQogICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTaGVldChXZWJJbnNw
ZWN0b3IuQ2FsbGJhY2sud3JhcChmcm9udGVuZF9oYW5kbGVTdHlsZVNoZWV0LmJpbmQobnVsbCwg
dGVzdENvbnRyb2xsZXIpKSwgc3R5bGVTaGVldElkKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc5NmFiZC4uZTQ2YWJmMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMC0wNy0yMCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFJlbmFtZSBtZXRob2QgZm9yIENTUyBydWxlIHNvdXJjZSByYW5nZSBy
ZXRyaWV2YWwgYW5kIGZpeCByZXR1cm4gb2JqZWN0IGZvcm1hdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzNzkKKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmQ6OmdldFJ1bGVSYW5nZXMpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmQuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
U1NTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UnVs
ZVJhbmdlcyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpnZXRSdWxlUmFuZ2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFn
ZW50LmpzOgorCiAyMDEwLTA3LTIwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApp
bmRleCAzYzk2ZGIxLi44NGE1NmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTEyNyw3
ICsxMjcsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQgZ2V0SW5saW5lU3R5bGUoaW4g
bG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOwogICAgICAgICB2
b2lkIGdldENvbXB1dGVkU3R5bGUoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBvdXQg
VmFsdWUgc3R5bGUpOwogICAgICAgICB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBjYWxsSWQs
IGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFsdWUgc3R5bGVTaGVldCk7Ci0gICAgICAgIHZv
aWQgZ2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJZChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBz
dHlsZVNoZWV0SWQpOworICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBjYWxsSWQs
IGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFsdWUgcmFuZ2VzKTsKICAgICAgICAgdm9pZCBh
cHBseVN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcg
c3R5bGVUZXh0LCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBvdXQgYm9vbGVhbiBzdWNjZXNzLCBv
dXQgVmFsdWUgc3R5bGUsIG91dCBBcnJheSBjaGFuZ2VkUHJvcGVydGllcyk7CiAgICAgICAgIHZv
aWQgc2V0U3R5bGVUZXh0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlSWQsIGluIFN0cmlu
ZyBzdHlsZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwogICAgICAgICB2b2lkIHNldFN0eWxl
UHJvcGVydHkoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIG5hbWUs
IGluIFN0cmluZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmQuY3BwCmluZGV4IDlmNzEzMDcuLjViY2MwNTIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCkBAIC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIEluc3Bl
Y3RvckJhY2tlbmQ6OmdldFN0eWxlU2hlZXQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVTaGVldElk
KQogICAgICAgICBkb21BZ2VudC0+Z2V0U3R5bGVTaGVldChjYWxsSWQsIHN0eWxlU2hlZXRJZCk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJ
ZChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpCit2b2lkIEluc3BlY3RvckJhY2tlbmQ6
OmdldFJ1bGVSYW5nZXMobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVTaGVldElkKQogewogICAgIGlm
IChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAg
ICAgICBkb21BZ2VudC0+Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJZChjYWxsSWQsIHN0eWxl
U2hlZXRJZCk7CisgICAgICAgIGRvbUFnZW50LT5nZXRSdWxlUmFuZ2VzKGNhbGxJZCwgc3R5bGVT
aGVldElkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjphcHBseVN0eWxlVGV4dChsb25n
IGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKaW5kZXgg
NzhkMzRiNi4uYjVmMWYxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaApAQCAt
MTQwLDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldElubGluZVN0eWxlKGxvbmcgY2Fs
bElkLCBsb25nIG5vZGVJZCk7CiAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlKGxvbmcgY2FsbElk
LCBsb25nIG5vZGVJZCk7CiAgICAgdm9pZCBnZXRTdHlsZVNoZWV0KGxvbmcgY2FsbElkLCBsb25n
IHN0eWxlU2hlZXRJZCk7Ci0gICAgdm9pZCBnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldElkKGxv
bmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZXRJZCk7CisgICAgdm9pZCBnZXRSdWxlUmFuZ2VzKGxv
bmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAgdm9pZCBhcHBseVN0eWxlVGV4dChs
b25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwogICAgIHZvaWQgc2V0U3R5bGVUZXh0KGxvbmcgY2FsbElk
LCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCk7CiAgICAgdm9pZCBzZXRTdHls
ZVByb3BlcnR5KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JCYWNrZW5kLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRs
CmluZGV4IDNjNDYwYTEuLjVhYzYxYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmQuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmQuaWRsCkBAIC0xMTcsNyArMTE3LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIGdl
dElubGluZVN0eWxlKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCk7CiAgICAgICAgIHZv
aWQgZ2V0Q29tcHV0ZWRTdHlsZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQpOwogICAg
ICAgICB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVTaGVl
dElkKTsKLSAgICAgICAgdm9pZCBnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldElkKGluIGxvbmcg
Y2FsbElkLCBpbiBsb25nIHN0eWxlU2hlZXRJZCk7CisgICAgICAgIHZvaWQgZ2V0UnVsZVJhbmdl
cyhpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZVNoZWV0SWQpOwogICAgICAgICB2b2lkIGFw
cGx5U3R5bGVUZXh0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlSWQsIGluIERPTVN0cmlu
ZyBzdHlsZVRleHQsIGluIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2b2lkIHNl
dFN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBET01TdHJpbmcg
c3R5bGVUZXh0KTsKICAgICAgICAgdm9pZCBzZXRTdHlsZVByb3BlcnR5KGluIGxvbmcgY2FsbElk
LCBpbiBsb25nIHN0eWxlSWQsIGluIERPTVN0cmluZyBuYW1lLCBpbiBET01TdHJpbmcgdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4IDlkZmZlZjkuLmQw
OTgyMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNw
cAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTEwOSwx
MyArMTA5LDEyIEBAIENTU1N0eWxlU2hlZXQqIEluc3BlY3RvckNTU1N0b3JlOjppbnNwZWN0b3JT
dHlsZVNoZWV0KERvY3VtZW50KiBvd25lckRvY3VtZW50LCBiCiAgICAgcmV0dXJuIGluc3BlY3Rv
clN0eWxlU2hlZXQ7CiB9CiAKLUhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IEluc3BlY3RvckNT
U1N0b3JlOjpnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldChDU1NTdHlsZVNoZWV0KiBzdHlsZVNo
ZWV0KQorSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFJ1
bGVSYW5nZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKIHsKICAgICBpZiAoIXN0eWxlU2hl
ZXQpCiAgICAgICAgIHJldHVybiBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPigpOwogICAgIFJl
ZlB0cjxDU1NSdWxlTGlzdD4gb3JpZ2luYWxSdWxlTGlzdCA9IENTU1J1bGVMaXN0OjpjcmVhdGUo
c3R5bGVTaGVldCwgZmFsc2UpOwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9zdHlsZVNoZWV0VG9PZmZzZXRzLmZpbmQoc3R5bGVTaGVldCk7Ci0gICAgSGFzaE1h
cDxsb25nLCBTb3VyY2VSYW5nZT4gcmVzdWx0OwogICAgIFZlY3RvcjxTb3VyY2VSYW5nZT4qIG9m
ZnNldFZlY3RvciA9IDA7CiAgICAgaWYgKGl0ID09IG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5lbmQo
KSkgewogICAgICAgICBJbnNwZWN0b3JSZXNvdXJjZSogcmVzb3VyY2UgPSBtX2luc3BlY3RvckNv
bnRyb2xsZXItPnJlc291cmNlRm9yVVJMKHN0eWxlU2hlZXQtPmZpbmFsVVJMKCkuc3RyaW5nKCkp
OwpAQCAtMTM5LDEzICsxMzgsMTYgQEAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gSW5zcGVj
dG9yQ1NTU3RvcmU6OmdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0KENTU1N0eWwKICAgICAgICAg
b2Zmc2V0VmVjdG9yID0gaXQtPnNlY29uZDsKICAgICBpZiAoIW9mZnNldFZlY3RvcikKICAgICAg
ICAgcmV0dXJuIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+KCk7CisKICAgICB1bnNpZ25lZCBy
dWxlSW5kZXggPSAwOworICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJlc3VsdDsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8
IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIEFTU0VSVChydWxlSW5kZXggPCBvZmZzZXRWZWN0b3It
PnNpemUoKSk7CiAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKHN0
eWxlU2hlZXQtPml0ZW0oaSkpOwogICAgICAgICBpZiAoIXJ1bGUpCiAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgcmVzdWx0LnNldChiaW5kUnVsZShydWxlKSwgb2Zmc2V0VmVjdG9yLT5h
dChydWxlSW5kZXgpKTsKKyAgICAgICAgLy8gVGhpcyBtYXBzIHRoZSBzdHlsZSBpZCB0byB0aGUg
cnVsZSBib2R5IHJhbmdlLgorICAgICAgICByZXN1bHQuc2V0KGJpbmRTdHlsZShydWxlLT5zdHls
ZSgpKSwgb2Zmc2V0VmVjdG9yLT5hdChydWxlSW5kZXgpKTsKICAgICAgICAgcnVsZUluZGV4Kys7
CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NTdG9yZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3Rv
cmUuaAppbmRleCA0YjdlZjUxLi4wOTEwNTNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NTdG9yZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U1N0b3JlLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIEluc3BlY3RvckNTU1N0b3Jl
KEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIpOwogICAgIH5JbnNwZWN0
b3JDU1NTdG9yZSgpOwogICAgIHZvaWQgcmVzZXQoKTsKLSAgICBIYXNoTWFwPGxvbmcsIFNvdXJj
ZVJhbmdlPiBnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldChDU1NTdHlsZVNoZWV0Kik7CisgICAg
SGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gZ2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0Kik7
CiAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGVGb3JJZChsb25nIHN0eWxlSWQpOwogICAg
IENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXRGb3JJZChsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAg
Q1NTU3R5bGVSdWxlKiBydWxlRm9ySWQobG9uZyBzdHlsZVJ1bGVJZCk7CkBAIC04MCw3ICs4MCw2
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0
eWxlUnVsZShTdHlsZUJhc2UqKTsKLQogICAgIFN0eWxlVG9JZE1hcCBtX3N0eWxlVG9JZDsKICAg
ICBJZFRvU3R5bGVNYXAgbV9pZFRvU3R5bGU7CiAgICAgUnVsZVRvSWRNYXAgbV9ydWxlVG9JZDsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBlM2QxYmY1Li4zYTE0
ODMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0xMDc1LDEx
ICsxMDc1LDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU2hlZXQobG9uZyBj
YWxsSWQsIGxvbmcgc3R5bGVTaGVldElkKQogICAgICAgICBtX2Zyb250ZW5kLT5kaWRHZXRTdHls
ZVNoZWV0KGNhbGxJZCwgSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0SWQobG9uZyBjYWxsSWQs
IGxvbmcgc3R5bGVTaGVldElkKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0UnVsZVJhbmdl
cyhsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpCiB7CiAgICAgQ1NTU3R5bGVTaGVldCog
c3R5bGVTaGVldCA9IGNzc1N0b3JlKCktPnN0eWxlU2hlZXRGb3JJZChzdHlsZVNoZWV0SWQpOwog
ICAgIGlmIChzdHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmRvYygpKSB7Ci0gICAgICAgIEhhc2hN
YXA8bG9uZywgU291cmNlUmFuZ2U+IHJ1bGVSYW5nZXMgPSBjc3NTdG9yZSgpLT5nZXRSdWxlUmFu
Z2VzRm9yU3R5bGVTaGVldChzdHlsZVNoZWV0KTsKKyAgICAgICAgSGFzaE1hcDxsb25nLCBTb3Vy
Y2VSYW5nZT4gcnVsZVJhbmdlcyA9IGNzc1N0b3JlKCktPmdldFJ1bGVSYW5nZXMoc3R5bGVTaGVl
dCk7CiAgICAgICAgIGlmICghcnVsZVJhbmdlcy5zaXplKCkpIHsKICAgICAgICAgICAgIG1fZnJv
bnRlbmQtPmRpZEdldFN0eWxlU2hlZXQoY2FsbElkLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwOTUsOSArMTA5NSw5IEBAIHZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OmdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0SWQobG9uZyBjYWxsSWQsIGxv
bmcgc3R5bGVTaGVlCiAgICAgICAgICAgICAgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoImVuZCIs
IGl0LT5zZWNvbmQuc2Vjb25kKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBt
X2Zyb250ZW5kLT5kaWRHZXRTdHlsZVNoZWV0KGNhbGxJZCwgcmVzdWx0KTsKKyAgICAgICAgbV9m
cm9udGVuZC0+ZGlkR2V0UnVsZVJhbmdlcyhjYWxsSWQsIHJlc3VsdCk7CiAgICAgfSBlbHNlCi0g
ICAgICAgIG1fZnJvbnRlbmQtPmRpZEdldFN0eWxlU2hlZXQoY2FsbElkLCBJbnNwZWN0b3JWYWx1
ZTo6bnVsbCgpKTsKKyAgICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0UnVsZVJhbmdlcyhjYWxsSWQs
IEluc3BlY3RvclZhbHVlOjpudWxsKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpn
ZXRJbmxpbmVTdHlsZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuaAppbmRleCA2ZjljNWZiLi4xNDA2MDk5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTExNiw3ICsxMTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgZ2V0SW5saW5lU3R5bGUobG9uZyBjYWxsSWQsIGxvbmcgbm9kZUlk
KTsKICAgICAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlKGxvbmcgY2FsbElkLCBsb25nIG5vZGVJ
ZCk7CiAgICAgICAgIHZvaWQgZ2V0U3R5bGVTaGVldChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNo
ZWV0SWQpOwotICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0SWQobG9uZyBj
YWxsSWQsIGxvbmcgc3R5bGVTaGVldElkKTsKKyAgICAgICAgdm9pZCBnZXRSdWxlUmFuZ2VzKGxv
bmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAgICAgIHZvaWQgYXBwbHlTdHlsZVRl
eHQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdm9pZCBzZXRTdHlsZVRleHQobG9u
ZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBjc3NUZXh0KTsKICAgICAgICAg
dm9pZCBzZXRTdHlsZVByb3BlcnR5KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKaW5kZXggMDdiMTZiMS4uYmNiZTkxZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtNjk4LDYgKzY5OCw3IEBAIFdlYkluc3BlY3Rvci5k
aWRHZXRFdmVudExpc3RlbmVyc0Zvck5vZGUgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vz
c0NhbGxiYWNrCiBXZWJJbnNwZWN0b3IuZGlkR2V0U3R5bGVzID0gV2ViSW5zcGVjdG9yLkNhbGxi
YWNrLnByb2Nlc3NDYWxsYmFjazsKIFdlYkluc3BlY3Rvci5kaWRHZXRBbGxTdHlsZXMgPSBXZWJJ
bnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vzc0NhbGxiYWNrOwogV2ViSW5zcGVjdG9yLmRpZEdldFN0
eWxlU2hlZXQgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vzc0NhbGxiYWNrOworV2ViSW5z
cGVjdG9yLmRpZEdldFJ1bGVSYW5nZXMgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vzc0Nh
bGxiYWNrOwogV2ViSW5zcGVjdG9yLmRpZEdldElubGluZVN0eWxlID0gV2ViSW5zcGVjdG9yLkNh
bGxiYWNrLnByb2Nlc3NDYWxsYmFjazsKIFdlYkluc3BlY3Rvci5kaWRHZXRDb21wdXRlZFN0eWxl
ID0gV2ViSW5zcGVjdG9yLkNhbGxiYWNrLnByb2Nlc3NDYWxsYmFjazsKIFdlYkluc3BlY3Rvci5k
aWRBcHBseVN0eWxlVGV4dCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay5wcm9jZXNzQ2FsbGJhY2s7
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA4YTg3YTY0Li5mZTA4MDBkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMC0wNy0yMCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFJlbmFtZSBtZXRob2QgZm9yIENTUyBydWxlIHNvdXJjZSByYW5nZSByZXRy
aWV2YWwgYW5kIGZpeCByZXR1cm4gb2JqZWN0IGZvcm1hdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzNzkKKworICAgICAgICAqIHNyYy9qcy9JbnNw
ZWN0b3JDb250cm9sbGVySW1wbC5qczoKKyAgICAgICAgKGRldnRvb2xzLkluc3BlY3RvckJhY2tl
bmRJbXBsKToKKwogMjAxMC0wNy0xOSAgVmljdG9yaWEgS2lyc3QgIDx2cmtAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCmluZGV4IDVlZDUwNmEuLmE3OTU4
OTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxl
ckltcGwuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVy
SW1wbC5qcwpAQCAtOTQsNyArOTQsNyBAQCBkZXZ0b29scy5JbnNwZWN0b3JCYWNrZW5kSW1wbCA9
IGZ1bmN0aW9uKCkKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVf
KCJnZXRDb21wdXRlZFN0eWxlIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxl
ckRlbGVnYXRlXygiZ2V0SW5saW5lU3R5bGUiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JD
b250cm9sbGVyRGVsZWdhdGVfKCJnZXRTdHlsZVNoZWV0Iik7Ci0gICAgdGhpcy5pbnN0YWxsSW5z
cGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJZCIp
OworICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldFJ1bGVS
YW5nZXMiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJh
cHBseVN0eWxlVGV4dCIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxl
Z2F0ZV8oInNldFN0eWxlVGV4dCIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xs
ZXJEZWxlZ2F0ZV8oInNldFN0eWxlUHJvcGVydHkiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62046</attachid>
            <date>2010-07-20 02:46:18 -0700</date>
            <delta_ts>2010-07-22 05:44:14 -0700</delta_ts>
            <desc>[PATCH] Revert a removed blank line</desc>
            <filename>rangesmethod.patch</filename>
            <type>text/plain</type>
            <size>13870</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMWE2NzUxLi44MDYyNWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDct
MjAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW5h
bWUgbWV0aG9kIGZvciBDU1MgcnVsZSBzb3VyY2UgcmFuZ2UgcmV0cmlldmFsIGFuZCBmaXggcmV0
dXJuIG9iamVjdCBmb3JtYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQyMzc5CisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZz
ZXRzLmh0bWw6CisKIDIwMTAtMDctMjAgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5u
QHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXgg
ODc4NjAyZC4uMmQ1OTk3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy1zb3VyY2Utb2Zmc2V0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMt
c291cmNlLW9mZnNldHMuaHRtbApAQCAtNDEsNyArNDEsNyBAQCBmdW5jdGlvbiBmcm9udGVuZF9y
dW5UZXN0KHRlc3RDb250cm9sbGVyKQogICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSdWxlUmFu
Z2VzRm9yU3R5bGVTaGVldElkKFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKGZyb250ZW5kX3J1
bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyLCBwYXJlbnRTdHlsZVNo
ZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpLCBwYXJlbnRTdHlsZVNoZWV0SWQpOworICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSdWxlUmFuZ2VzKFdlYkluc3BlY3Rvci5DYWxsYmFjay53
cmFwKGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVy
LCBwYXJlbnRTdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpLCBwYXJlbnRTdHlsZVNoZWV0
SWQpOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKFdlYklu
c3BlY3Rvci5DYWxsYmFjay53cmFwKHN0eWxlc0NhbGxiYWNrLmJpbmQobnVsbCwgdGVzdENvbnRy
b2xsZXIpKSwgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmJvZHkuaWQsIHRydWUpOwog
ICAgIH0pOwpAQCAtNTEsNyArNTEsNyBAQCBmdW5jdGlvbiBmcm9udGVuZF9ydWxlUmFuZ2VzUmVj
ZWl2ZWQodGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bAogewogICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKSB7CiAgICAg
ICAgIHZhciBydWxlID0gbWF0Y2hlZENTU1J1bGVzW2ldOwotICAgICAgICB0ZXN0Q29udHJvbGxl
ci5yZXN1bHRzLnB1c2gocnVsZS5zZWxlY3RvclRleHQgKyAiOiBbIiArIHJ1bGVSYW5nZXNbcnVs
ZS5pZF0uYm9keVJhbmdlLnN0YXJ0ICsgIi0iICsgcnVsZVJhbmdlc1tydWxlLmlkXS5ib2R5UmFu
Z2UuZW5kICsgIl0iKTsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHJ1bGUu
c2VsZWN0b3JUZXh0ICsgIjogWyIgKyBydWxlUmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5n
ZS5zdGFydCArICItIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdlLmVuZCAr
ICJdIik7CiAgICAgfQogICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTaGVldChXZWJJbnNw
ZWN0b3IuQ2FsbGJhY2sud3JhcChmcm9udGVuZF9oYW5kbGVTdHlsZVNoZWV0LmJpbmQobnVsbCwg
dGVzdENvbnRyb2xsZXIpKSwgc3R5bGVTaGVldElkKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc5NmFiZC4uZTQ2YWJmMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMC0wNy0yMCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFJlbmFtZSBtZXRob2QgZm9yIENTUyBydWxlIHNvdXJjZSByYW5nZSBy
ZXRyaWV2YWwgYW5kIGZpeCByZXR1cm4gb2JqZWN0IGZvcm1hdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzNzkKKworICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmQ6OmdldFJ1bGVSYW5nZXMpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmQuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
U1NTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UnVs
ZVJhbmdlcyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpnZXRSdWxlUmFuZ2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFn
ZW50LmpzOgorCiAyMDEwLTA3LTIwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApp
bmRleCAzYzk2ZGIxLi44NGE1NmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTEyNyw3
ICsxMjcsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQgZ2V0SW5saW5lU3R5bGUoaW4g
bG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOwogICAgICAgICB2
b2lkIGdldENvbXB1dGVkU3R5bGUoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBvdXQg
VmFsdWUgc3R5bGUpOwogICAgICAgICB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBjYWxsSWQs
IGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFsdWUgc3R5bGVTaGVldCk7Ci0gICAgICAgIHZv
aWQgZ2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJZChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBz
dHlsZVNoZWV0SWQpOworICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBjYWxsSWQs
IGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFsdWUgcmFuZ2VzKTsKICAgICAgICAgdm9pZCBh
cHBseVN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcg
c3R5bGVUZXh0LCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBvdXQgYm9vbGVhbiBzdWNjZXNzLCBv
dXQgVmFsdWUgc3R5bGUsIG91dCBBcnJheSBjaGFuZ2VkUHJvcGVydGllcyk7CiAgICAgICAgIHZv
aWQgc2V0U3R5bGVUZXh0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlSWQsIGluIFN0cmlu
ZyBzdHlsZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwogICAgICAgICB2b2lkIHNldFN0eWxl
UHJvcGVydHkoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIG5hbWUs
IGluIFN0cmluZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmQuY3BwCmluZGV4IDlmNzEzMDcuLjViY2MwNTIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCkBAIC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIEluc3Bl
Y3RvckJhY2tlbmQ6OmdldFN0eWxlU2hlZXQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVTaGVldElk
KQogICAgICAgICBkb21BZ2VudC0+Z2V0U3R5bGVTaGVldChjYWxsSWQsIHN0eWxlU2hlZXRJZCk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yQmFja2VuZDo6Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJ
ZChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZVNoZWV0SWQpCit2b2lkIEluc3BlY3RvckJhY2tlbmQ6
OmdldFJ1bGVSYW5nZXMobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVTaGVldElkKQogewogICAgIGlm
IChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JET01BZ2VudCgpKQotICAg
ICAgICBkb21BZ2VudC0+Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hlZXRJZChjYWxsSWQsIHN0eWxl
U2hlZXRJZCk7CisgICAgICAgIGRvbUFnZW50LT5nZXRSdWxlUmFuZ2VzKGNhbGxJZCwgc3R5bGVT
aGVldElkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjphcHBseVN0eWxlVGV4dChsb25n
IGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKaW5kZXgg
NzhkMzRiNi4uYjVmMWYxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaApAQCAt
MTQwLDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldElubGluZVN0eWxlKGxvbmcgY2Fs
bElkLCBsb25nIG5vZGVJZCk7CiAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlKGxvbmcgY2FsbElk
LCBsb25nIG5vZGVJZCk7CiAgICAgdm9pZCBnZXRTdHlsZVNoZWV0KGxvbmcgY2FsbElkLCBsb25n
IHN0eWxlU2hlZXRJZCk7Ci0gICAgdm9pZCBnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldElkKGxv
bmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZXRJZCk7CisgICAgdm9pZCBnZXRSdWxlUmFuZ2VzKGxv
bmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAgdm9pZCBhcHBseVN0eWxlVGV4dChs
b25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpOwogICAgIHZvaWQgc2V0U3R5bGVUZXh0KGxvbmcgY2FsbElk
LCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCk7CiAgICAgdm9pZCBzZXRTdHls
ZVByb3BlcnR5KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JCYWNrZW5kLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRs
CmluZGV4IDNjNDYwYTEuLjVhYzYxYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmQuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmQuaWRsCkBAIC0xMTcsNyArMTE3LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIGdl
dElubGluZVN0eWxlKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCk7CiAgICAgICAgIHZv
aWQgZ2V0Q29tcHV0ZWRTdHlsZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQpOwogICAg
ICAgICB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVTaGVl
dElkKTsKLSAgICAgICAgdm9pZCBnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldElkKGluIGxvbmcg
Y2FsbElkLCBpbiBsb25nIHN0eWxlU2hlZXRJZCk7CisgICAgICAgIHZvaWQgZ2V0UnVsZVJhbmdl
cyhpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZVNoZWV0SWQpOwogICAgICAgICB2b2lkIGFw
cGx5U3R5bGVUZXh0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxlSWQsIGluIERPTVN0cmlu
ZyBzdHlsZVRleHQsIGluIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2b2lkIHNl
dFN0eWxlVGV4dChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBET01TdHJpbmcg
c3R5bGVUZXh0KTsKICAgICAgICAgdm9pZCBzZXRTdHlsZVByb3BlcnR5KGluIGxvbmcgY2FsbElk
LCBpbiBsb25nIHN0eWxlSWQsIGluIERPTVN0cmluZyBuYW1lLCBpbiBET01TdHJpbmcgdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4IDlkZmZlZjkuLmQw
OTgyMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNw
cAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTEwOSwx
MyArMTA5LDEyIEBAIENTU1N0eWxlU2hlZXQqIEluc3BlY3RvckNTU1N0b3JlOjppbnNwZWN0b3JT
dHlsZVNoZWV0KERvY3VtZW50KiBvd25lckRvY3VtZW50LCBiCiAgICAgcmV0dXJuIGluc3BlY3Rv
clN0eWxlU2hlZXQ7CiB9CiAKLUhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IEluc3BlY3RvckNT
U1N0b3JlOjpnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldChDU1NTdHlsZVNoZWV0KiBzdHlsZVNo
ZWV0KQorSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFJ1
bGVSYW5nZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKIHsKICAgICBpZiAoIXN0eWxlU2hl
ZXQpCiAgICAgICAgIHJldHVybiBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPigpOwogICAgIFJl
ZlB0cjxDU1NSdWxlTGlzdD4gb3JpZ2luYWxSdWxlTGlzdCA9IENTU1J1bGVMaXN0OjpjcmVhdGUo
c3R5bGVTaGVldCwgZmFsc2UpOwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9zdHlsZVNoZWV0VG9PZmZzZXRzLmZpbmQoc3R5bGVTaGVldCk7Ci0gICAgSGFzaE1h
cDxsb25nLCBTb3VyY2VSYW5nZT4gcmVzdWx0OwogICAgIFZlY3RvcjxTb3VyY2VSYW5nZT4qIG9m
ZnNldFZlY3RvciA9IDA7CiAgICAgaWYgKGl0ID09IG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5lbmQo
KSkgewogICAgICAgICBJbnNwZWN0b3JSZXNvdXJjZSogcmVzb3VyY2UgPSBtX2luc3BlY3RvckNv
bnRyb2xsZXItPnJlc291cmNlRm9yVVJMKHN0eWxlU2hlZXQtPmZpbmFsVVJMKCkuc3RyaW5nKCkp
OwpAQCAtMTM5LDEzICsxMzgsMTYgQEAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gSW5zcGVj
dG9yQ1NTU3RvcmU6OmdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0KENTU1N0eWwKICAgICAgICAg
b2Zmc2V0VmVjdG9yID0gaXQtPnNlY29uZDsKICAgICBpZiAoIW9mZnNldFZlY3RvcikKICAgICAg
ICAgcmV0dXJuIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+KCk7CisKICAgICB1bnNpZ25lZCBy
dWxlSW5kZXggPSAwOworICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJlc3VsdDsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8
IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIEFTU0VSVChydWxlSW5kZXggPCBvZmZzZXRWZWN0b3It
PnNpemUoKSk7CiAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKHN0
eWxlU2hlZXQtPml0ZW0oaSkpOwogICAgICAgICBpZiAoIXJ1bGUpCiAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgcmVzdWx0LnNldChiaW5kUnVsZShydWxlKSwgb2Zmc2V0VmVjdG9yLT5h
dChydWxlSW5kZXgpKTsKKyAgICAgICAgLy8gVGhpcyBtYXBzIHRoZSBzdHlsZSBpZCB0byB0aGUg
cnVsZSBib2R5IHJhbmdlLgorICAgICAgICByZXN1bHQuc2V0KGJpbmRTdHlsZShydWxlLT5zdHls
ZSgpKSwgb2Zmc2V0VmVjdG9yLT5hdChydWxlSW5kZXgpKTsKICAgICAgICAgcnVsZUluZGV4Kys7
CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NTdG9yZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3Rv
cmUuaAppbmRleCA0YjdlZjUxLi40ZjdkZjAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NTdG9yZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U1N0b3JlLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIEluc3BlY3RvckNTU1N0b3Jl
KEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIpOwogICAgIH5JbnNwZWN0
b3JDU1NTdG9yZSgpOwogICAgIHZvaWQgcmVzZXQoKTsKLSAgICBIYXNoTWFwPGxvbmcsIFNvdXJj
ZVJhbmdlPiBnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldChDU1NTdHlsZVNoZWV0Kik7CisgICAg
SGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gZ2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0Kik7
CiAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGVGb3JJZChsb25nIHN0eWxlSWQpOwogICAg
IENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXRGb3JJZChsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAg
Q1NTU3R5bGVSdWxlKiBydWxlRm9ySWQobG9uZyBzdHlsZVJ1bGVJZCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggZTNkMWJmNS4uM2ExNDgzMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMTA3NSwxMSArMTA3NSwxMSBAQCB2
b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNoZWV0KGxvbmcgY2FsbElkLCBsb25nIHN0
eWxlU2hlZXRJZCkKICAgICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0U3R5bGVTaGVldChjYWxsSWQs
IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCkpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFnZW50
OjpnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldElkKGxvbmcgY2FsbElkLCBsb25nIHN0eWxlU2hl
ZXRJZCkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFJ1bGVSYW5nZXMobG9uZyBjYWxsSWQs
IGxvbmcgc3R5bGVTaGVldElkKQogewogICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBj
c3NTdG9yZSgpLT5zdHlsZVNoZWV0Rm9ySWQoc3R5bGVTaGVldElkKTsKICAgICBpZiAoc3R5bGVT
aGVldCAmJiBzdHlsZVNoZWV0LT5kb2MoKSkgewotICAgICAgICBIYXNoTWFwPGxvbmcsIFNvdXJj
ZVJhbmdlPiBydWxlUmFuZ2VzID0gY3NzU3RvcmUoKS0+Z2V0UnVsZVJhbmdlc0ZvclN0eWxlU2hl
ZXQoc3R5bGVTaGVldCk7CisgICAgICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJ1bGVS
YW5nZXMgPSBjc3NTdG9yZSgpLT5nZXRSdWxlUmFuZ2VzKHN0eWxlU2hlZXQpOwogICAgICAgICBp
ZiAoIXJ1bGVSYW5nZXMuc2l6ZSgpKSB7CiAgICAgICAgICAgICBtX2Zyb250ZW5kLT5kaWRHZXRT
dHlsZVNoZWV0KGNhbGxJZCwgSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKSk7CiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0xMDk1LDkgKzEwOTUsOSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpn
ZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldElkKGxvbmcgY2FsbElkLCBsb25nIHN0eWxlU2hlZQog
ICAgICAgICAgICAgICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBpdC0+c2Vjb25kLnNl
Y29uZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgbV9mcm9udGVuZC0+ZGlk
R2V0U3R5bGVTaGVldChjYWxsSWQsIHJlc3VsdCk7CisgICAgICAgIG1fZnJvbnRlbmQtPmRpZEdl
dFJ1bGVSYW5nZXMoY2FsbElkLCByZXN1bHQpOwogICAgIH0gZWxzZQotICAgICAgICBtX2Zyb250
ZW5kLT5kaWRHZXRTdHlsZVNoZWV0KGNhbGxJZCwgSW5zcGVjdG9yVmFsdWU6Om51bGwoKSk7Cisg
ICAgICAgIG1fZnJvbnRlbmQtPmRpZEdldFJ1bGVSYW5nZXMoY2FsbElkLCBJbnNwZWN0b3JWYWx1
ZTo6bnVsbCgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0SW5saW5lU3R5bGUo
bG9uZyBjYWxsSWQsIGxvbmcgbm9kZUlkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmgKaW5kZXggNmY5YzVmYi4uMTQwNjA5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIGdldElubGluZVN0eWxlKGxvbmcgY2FsbElkLCBsb25nIG5vZGVJZCk7CiAgICAgICAgIHZv
aWQgZ2V0Q29tcHV0ZWRTdHlsZShsb25nIGNhbGxJZCwgbG9uZyBub2RlSWQpOwogICAgICAgICB2
b2lkIGdldFN0eWxlU2hlZXQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVTaGVldElkKTsKLSAgICAg
ICAgdm9pZCBnZXRSdWxlUmFuZ2VzRm9yU3R5bGVTaGVldElkKGxvbmcgY2FsbElkLCBsb25nIHN0
eWxlU2hlZXRJZCk7CisgICAgICAgIHZvaWQgZ2V0UnVsZVJhbmdlcyhsb25nIGNhbGxJZCwgbG9u
ZyBzdHlsZVNoZWV0SWQpOwogICAgICAgICB2b2lkIGFwcGx5U3R5bGVUZXh0KGxvbmcgY2FsbElk
LCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgc3R5bGVUZXh0LCBjb25zdCBTdHJpbmcmIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIHZvaWQgc2V0U3R5bGVUZXh0KGxvbmcgY2FsbElkLCBsb25n
IHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCk7CiAgICAgICAgIHZvaWQgc2V0U3R5bGVQ
cm9wZXJ0eShsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50Lmpz
CmluZGV4IDA3YjE2YjEuLmJjYmU5MWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9ET01BZ2VudC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9N
QWdlbnQuanMKQEAgLTY5OCw2ICs2OTgsNyBAQCBXZWJJbnNwZWN0b3IuZGlkR2V0RXZlbnRMaXN0
ZW5lcnNGb3JOb2RlID0gV2ViSW5zcGVjdG9yLkNhbGxiYWNrLnByb2Nlc3NDYWxsYmFjawogV2Vi
SW5zcGVjdG9yLmRpZEdldFN0eWxlcyA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay5wcm9jZXNzQ2Fs
bGJhY2s7CiBXZWJJbnNwZWN0b3IuZGlkR2V0QWxsU3R5bGVzID0gV2ViSW5zcGVjdG9yLkNhbGxi
YWNrLnByb2Nlc3NDYWxsYmFjazsKIFdlYkluc3BlY3Rvci5kaWRHZXRTdHlsZVNoZWV0ID0gV2Vi
SW5zcGVjdG9yLkNhbGxiYWNrLnByb2Nlc3NDYWxsYmFjazsKK1dlYkluc3BlY3Rvci5kaWRHZXRS
dWxlUmFuZ2VzID0gV2ViSW5zcGVjdG9yLkNhbGxiYWNrLnByb2Nlc3NDYWxsYmFjazsKIFdlYklu
c3BlY3Rvci5kaWRHZXRJbmxpbmVTdHlsZSA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay5wcm9jZXNz
Q2FsbGJhY2s7CiBXZWJJbnNwZWN0b3IuZGlkR2V0Q29tcHV0ZWRTdHlsZSA9IFdlYkluc3BlY3Rv
ci5DYWxsYmFjay5wcm9jZXNzQ2FsbGJhY2s7CiBXZWJJbnNwZWN0b3IuZGlkQXBwbHlTdHlsZVRl
eHQgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sucHJvY2Vzc0NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggOGE4N2E2NC4uZmUwODAwZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAt
MDctMjAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW5hbWUgbWV0aG9kIGZvciBDU1MgcnVsZSBzb3VyY2UgcmFuZ2UgcmV0cmlldmFsIGFuZCBmaXgg
cmV0dXJuIG9iamVjdCBmb3JtYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyMzc5CisKKyAgICAgICAgKiBzcmMvanMvSW5zcGVjdG9yQ29udHJvbGxl
ckltcGwuanM6CisgICAgICAgIChkZXZ0b29scy5JbnNwZWN0b3JCYWNrZW5kSW1wbCk6CisKIDIw
MTAtMDctMTkgIFZpY3RvcmlhIEtpcnN0ICA8dnJrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL2pz
L0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNw
ZWN0b3JDb250cm9sbGVySW1wbC5qcwppbmRleCA1ZWQ1MDZhLi5hNzk1ODkxIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMKQEAgLTk0
LDcgKzk0LDcgQEAgZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZEltcGwgPSBmdW5jdGlvbigpCiAg
ICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0Q29tcHV0ZWRT
dHlsZSIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdl
dElubGluZVN0eWxlIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVn
YXRlXygiZ2V0U3R5bGVTaGVldCIpOwotICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xs
ZXJEZWxlZ2F0ZV8oImdldFJ1bGVSYW5nZXNGb3JTdHlsZVNoZWV0SWQiKTsKKyAgICB0aGlzLmlu
c3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJnZXRSdWxlUmFuZ2VzIik7CiAgICAg
dGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiYXBwbHlTdHlsZVRleHQi
KTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJzZXRTdHls
ZVRleHQiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJz
ZXRTdHlsZVByb3BlcnR5Iik7Cg==
</data>
<flag name="review"
          id="50164"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>