<?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>94524</bug_id>
          
          <creation_ts>2012-08-20 14:05:51 -0700</creation_ts>
          <short_desc>Remove redundant TOUCH_LISTENER event type</short_desc>
          <delta_ts>2012-08-22 06:40:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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>94016</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Adam Klein">adamk</assigned_to>
          <cc>benjamin</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>699927</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-08-20 14:05:51 -0700</bug_when>
    <thetext>Remove redundant TOUCH_LISTENER event type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699955</commentid>
    <comment_count>1</comment_count>
      <attachid>159517</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-08-20 14:20:12 -0700</bug_when>
    <thetext>Created attachment 159517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699980</commentid>
    <comment_count>2</comment_count>
      <attachid>159517</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-20 14:34:00 -0700</bug_when>
    <thetext>Comment on attachment 159517
Patch

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700051</commentid>
    <comment_count>3</comment_count>
      <attachid>159517</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 15:24:54 -0700</bug_when>
    <thetext>Comment on attachment 159517
Patch

Clearing flags on attachment: 159517

Committed r126080: &lt;http://trac.webkit.org/changeset/126080&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700053</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 15:24:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700639</commentid>
    <comment_count>5</comment_count>
      <attachid>159517</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-21 05:12:19 -0700</bug_when>
    <thetext>Comment on attachment 159517
Patch

The BlackBerry was checking the ChromeClient &apos;needs touch event&apos; notification to a whole logic we have to handle touch events, if there is no listeners attached to any document in the page. ChromeClient::needTouchEvent used to be updated when any touch event was attached to any document in the page, but now it is only called by CachedFrame::restore and  Frame::setDocument.

Now you changed that logic and made the notification useless (from a brief look at the patch), and if so it breaks the behavior that we had. Please correct me if I am wrong.

To make use of Document::touchEventHandlerCount(), I have to manually recursively check all documents in the page, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700842</commentid>
    <comment_count>6</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-21 09:45:57 -0700</bug_when>
    <thetext>Looks to me like it should still work. See Document::didAddTouchEventHandler, which still sets needs touch-events on the Page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700904</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2012-08-21 10:42:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Looks to me like it should still work. See Document::didAddTouchEventHandler, which still sets needs touch-events on the Page.

It should be pointed out that didAddTouchEventHandler is called by both Node::addEventListener and DOMWindow::addEventListener, in just the same cases that addListenerTypeIfNeeded() used to call it (that is, when EventNames::isTouchEventType() is true). It may be that addListenerTypeIfNeeded should be made responsible for calling didAddTouchEventHandler; that would be a fine followup change, imho. The main point of this change was to get rid of the TOUCH_LISTENER enum which doesn&apos;t match up with the usage of the other ListenerType enums.

I will say that there was one functional change here: it used to be that every call to addEventListener() with a touch event would call into ChromeClient, whereas now we only call for the _first_ event handler on the page. From my archaeology of the patches that added this functionality, that seemed to fit the use cases, and it does for Chromium (which simply sets a bool on the browser side when the first touch listener is added). But if some ChromeClients want to be notified every time, the proper was is to modify the logic in didAddTouchEventHandler, since that catches more cases than addEventListenerTypeIfNeeded().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701856</commentid>
    <comment_count>8</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-22 06:40:29 -0700</bug_when>
    <thetext>
&gt; I will say that there was one functional change here: it used to be that every call to addEventListener() with a touch event would call into ChromeClient, whereas now we only call for the _first_ event handler on the page. 

That is ok. Thanks guys.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159517</attachid>
            <date>2012-08-20 14:20:12 -0700</date>
            <delta_ts>2012-08-21 05:12:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94524-20120820141939.patch</filename>
            <type>text/plain</type>
            <size>26726</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFiZDZjOGQyOGQzYjlh
ZDdhNjcwZjcxNzlkNDBhNDEzNjAzODNmNC4uMGQxNTJiMzZhNTI5MWY1Nzg1MGQzOTZlMDM0MjBk
NDA1ZDgwYjVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA4LTIwICBBZGFt
IEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSByZWR1bmRhbnQg
VE9VQ0hfTElTVEVORVIgZXZlbnQgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTQ1MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDb2RlIHRoYXQgbmVlZHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhl
cmUgYXJlIHRvdWNoIGxpc3RlbmVycworICAgICAgICBjYW4gaW5zdGVhZCBjYWxsIERvY3VtZW50
Ojp0b3VjaEV2ZW50SGFuZGxlckNvdW50KCksIGFkZGVkIGluIHIxMDc4MzIuCisgICAgICAgIFRP
VUNIX0xJU1RFTkVSIGRpZG4ndCBmaXQgdmVyeSB3ZWxsIGludG8gdGhlIGhhc0xpc3RlbmVyVHlw
ZSgpIG1vZGVsCisgICAgICAgIGFueXdheSwgYXMgdGhlcmUncyBub3QgYSAxOjEgY29ycmVzcG9u
ZGFuY2UgYmV0d2VlbiB0aGUgZW51bSB2YWx1ZSBhbmQKKyAgICAgICAgYW4gZXZlbnQuCisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFk
ZExpc3RlbmVyVHlwZUlmTmVlZGVkKTogUmVtb3ZlIHR3byBiaXRzIG9mIGNvZGU6CisgICAgICAg
IHRoZSBib29ra2VlcGluZyBmb3IgVE9VQ0hfTElTVEVORVIsIGFuZCB0aGUgbm90aWZpY2F0aW9u
IGludG8KKyAgICAgICAgQ2hyb21lQ2xpZW50ICh3aGljaCBpcyBoYW5kbGVkIGJ5IGNhbGxzIHRv
IGRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyIGluCisgICAgICAgIGFsbCB0aGUgcGxhY2VzIHRoYXQg
Y2FsbCBhZGRMaXN0ZW5lclR5cGVJZk5lZWRlZCkuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIpOiBSZW1vdmUgYm9va2tlZXBpbmcgZm9yIFRP
VUNIX0xJU1RFTkVSLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGhpc3Rv
cnkvQ2FjaGVkRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRnJhbWVCYXNlOjpy
ZXN0b3JlKTogQ2FsbCB0b3VjaEV2ZW50SGFuZGxlckNvdW50IGluc3RlYWQgb2YgaGFzTGlzdGVu
ZXJUeXBlLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKTogZGl0dG8KKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Omhh
bmRsZVRvdWNoRXZlbnQpOiBkaXR0bworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWU6OnNldERvY3VtZW50KTogZGl0dG8KKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6IFJlbW92ZSBoYXNUb3VjaEV2ZW50TGlzdGVuZXIgbWV0aG9kIHNpbmNl
IGl0cworICAgICAgICBkYXRhIHNvdXJjZSBubyBsb25nZXIgZXhpc3RzLgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6IGRpdHRvCisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDogZGl0dG8KKwogMjAxMi0wOC0wOSAgUm9iZXJ0IEhvZ2Fu
ICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTIDIuMSBmYWlsdXJlOiAnVGV4dC1p
bmRlbnQnIG9ubHkgYWZmZWN0cyBhIGxpbmUgaWYgaXQgaXMgdGhlIGZpcnN0IGZvcm1hdHRlZCBs
aW5lIG9mIGFuIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMzRhZjM4OTgz
ZjJlNTBiMzAxZTA0MTY3Y2NlNDg5NzVmNDY4N2ZjYi4uNzI1NmM1YzdhZWI1YTJjMzVmMGJiY2Ez
N2RlMDE1YzI3MmM2ZTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMi0wOC0yMCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZW1vdmUgcmVkdW5kYW50IFRPVUNIX0xJU1RFTkVSIGV2ZW50IHR5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NTI0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6
OnNldElzQWNjZXB0aW5nVG91Y2hFdmVudHMpOiBSZW1vdmUKKyAgICAgICAgYm9va2tlZXBpbmcg
Zm9yIFRPVUNIX0xJU1RFTkVSLgorCiAyMDEyLTA4LTA5ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRG8gcGFydGlhbC1zd2FwIHNjaXNz
b3Jpbmcgb24gcXVhZHMgZHVyaW5nIGRyYXcgaW5zdGVhZCBvZiBvbiBsYXllcnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IGM4NmI0MmFlZDE5MjUyOTJkNWFhZmI0MjQxM2Y1OTJhMmQ2NjIy
OTkuLmNkYTNhZmZkOTM4YzFjNzE4MjZlMDMwYWM1YTNmNGZlNjExMDBlN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNDEzNCwxNiArNDEzNCw2IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZExp
c3RlbmVyVHlwZUlmTmVlZGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQogICAgICAg
ICBhZGRMaXN0ZW5lclR5cGUoVFJBTlNJVElPTkVORF9MSVNURU5FUik7CiAgICAgZWxzZSBpZiAo
ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmVsb2FkRXZlbnQpCiAgICAgICAgIGFkZExp
c3RlbmVyVHlwZShCRUZPUkVMT0FEX0xJU1RFTkVSKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudG91Y2hzdGFydEV2ZW50
Ci0gICAgICAgICAgICAgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50b3VjaG1vdmVFdmVu
dAotICAgICAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudG91Y2hlbmRFdmVu
dAotICAgICAgICAgICAgIHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudG91Y2hjYW5jZWxF
dmVudCkgewotICAgICAgICBhZGRMaXN0ZW5lclR5cGUoVE9VQ0hfTElTVEVORVIpOwotICAgICAg
ICBpZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9t
ZSgpLT5jbGllbnQoKS0+bmVlZFRvdWNoRXZlbnRzKHRydWUpOwotICAgIH0KLSNlbmRpZgogICAg
IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuc2Nyb2xsRXZlbnQpCiAgICAgICAg
IGFkZExpc3RlbmVyVHlwZShTQ1JPTExfTElTVEVORVIpOwogfQpAQCAtNTk2NSw3ICs1OTU1LDYg
QEAgdm9pZCBEb2N1bWVudDo6ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKQogICAgIGlmICht
X3RvdWNoRXZlbnRIYW5kbGVyQ291bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fbGlzdGVu
ZXJUeXBlcyAmPSB+VE9VQ0hfTElTVEVORVI7CiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2Uo
KTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggYzY3NjdmODY0M2JlN2RkODUxM2M3NjFlNzhjZjllNzE2ODcwNDMzMy4uMzkwNGY0Y2NjYzA5
MjM1ZTM1ODcwYTZjNTkzNGIxMTk2NzljZDAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTc5
Myw4ICs3OTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFOSU1BVElPTklURVJBVElPTl9MSVNURU5F
UiAgICAgICAgICA9IDB4NDAwLAogICAgICAgICBUUkFOU0lUSU9ORU5EX0xJU1RFTkVSICAgICAg
ICAgICAgICAgPSAweDgwMCwKICAgICAgICAgQkVGT1JFTE9BRF9MSVNURU5FUiAgICAgICAgICAg
ICAgICAgID0gMHgxMDAwLAotICAgICAgICBUT1VDSF9MSVNURU5FUiAgICAgICAgICAgICAgICAg
ICAgICAgPSAweDIwMDAsCi0gICAgICAgIFNDUk9MTF9MSVNURU5FUiAgICAgICAgICAgICAgICAg
ICAgICA9IDB4NDAwMAorICAgICAgICBTQ1JPTExfTElTVEVORVIgICAgICAgICAgICAgICAgICAg
ICAgPSAweDIwMDAKICAgICB9OwogCiAgICAgYm9vbCBoYXNMaXN0ZW5lclR5cGUoTGlzdGVuZXJU
eXBlIGxpc3RlbmVyVHlwZSkgY29uc3QgeyByZXR1cm4gKG1fbGlzdGVuZXJUeXBlcyAmIGxpc3Rl
bmVyVHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKaW5kZXggODdk
NGFmMWFkMzAzYjIwNTU0ZTVkZDI4NjA2YTQ4NTFlMTQ1MmRiOC4uNmNlMDk4YmIzMDQzMDcwYjJk
MTYxZTQ3ZDA0MzJhYjI4ODAyYzY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9DYWNoZWRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFt
ZS5jcHAKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgp
CiAgICAgbV9kb2N1bWVudC0+ZW5xdWV1ZVBvcHN0YXRlRXZlbnQoaGlzdG9yeUl0ZW0gJiYgaGlz
dG9yeUl0ZW0tPnN0YXRlT2JqZWN0KCkgPyBoaXN0b3J5SXRlbS0+c3RhdGVPYmplY3QoKSA6IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVsbFZhbHVlKCkpOwogICAgIAogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCi0gICAgaWYgKG1fZG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6
VE9VQ0hfTElTVEVORVIpKQorICAgIGlmIChtX2RvY3VtZW50LT50b3VjaEV2ZW50SGFuZGxlckNv
dW50KCkpCiAgICAgICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5u
ZWVkVG91Y2hFdmVudHModHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKaW5kZXggZTA3MDY3YzY2ZGNmMzNjZjQ3NTlkM2Y4MTE0ZWRiNjU0NTY4
MTc2My4uMWU0MjJjMzk5Yzc5OTI0MTg2MjI4MDhjMTY4ZDUwMTg3MzI3NjYyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00MzksMTAgKzQzOSw5IEBAIHZv
aWQgSFRNTElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSgpCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVyID0gbV9pbnB1dFR5cGUtPmhhc1RvdWNo
RXZlbnRIYW5kbGVyKCk7CiAgICAgaWYgKGhhc1RvdWNoRXZlbnRIYW5kbGVyICE9IG1faGFzVG91
Y2hFdmVudEhhbmRsZXIpIHsKLSAgICAgIGlmIChoYXNUb3VjaEV2ZW50SGFuZGxlcikgeworICAg
ICAgaWYgKGhhc1RvdWNoRXZlbnRIYW5kbGVyKQogICAgICAgICBkb2N1bWVudCgpLT5kaWRBZGRU
b3VjaEV2ZW50SGFuZGxlcigpOwotICAgICAgICBkb2N1bWVudCgpLT5hZGRMaXN0ZW5lclR5cGUo
RG9jdW1lbnQ6OlRPVUNIX0xJU1RFTkVSKTsKLSAgICAgIH0gZWxzZQorICAgICAgZWxzZQogICAg
ICAgICBkb2N1bWVudCgpLT5kaWRSZW1vdmVUb3VjaEV2ZW50SGFuZGxlcigpOwogICAgICAgbV9o
YXNUb3VjaEV2ZW50SGFuZGxlciA9IGhhc1RvdWNoRXZlbnRIYW5kbGVyOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA3YTA3OGU4NTI2YTExMDhlZmJiYmViYmE2
NDk1OTgwZDE2ZGExNTkxLi4wNDM5OTNmYTJjMDVhOTEzMjlkOTM0MmY0ZTEyOGZmMWJjMTlmOTVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zNTg3LDcgKzM1ODcsNyBA
QCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNo
RXZlbnQmIGV2ZW50KQogICAgICAgICAgICAgRG9jdW1lbnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50
KCk7CiAgICAgICAgICAgICBpZiAoIWRvYykKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIGlmICghZG9jLT5oYXNMaXN0ZW5lclR5cGUoRG9jdW1lbnQ6OlRPVUNIX0xJU1RF
TkVSKSkKKyAgICAgICAgICAgIGlmICghZG9jLT50b3VjaEV2ZW50SGFuZGxlckNvdW50KCkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIG1fb3JpZ2luYXRpbmdUb3Vj
aFBvaW50VGFyZ2V0cy5zZXQodG91Y2hQb2ludFRhcmdldEtleSwgbm9kZSk7CkBAIC0zNjA3LDcg
KzM2MDcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0
Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQogICAgICAgICBEb2N1bWVudCogZG9jID0gdG91Y2hUYXJn
ZXQtPnRvTm9kZSgpLT5kb2N1bWVudCgpOwogICAgICAgICBpZiAoIWRvYykKICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICBpZiAoIWRvYy0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpU
T1VDSF9MSVNURU5FUikpCisgICAgICAgIGlmICghZG9jLT50b3VjaEV2ZW50SGFuZGxlckNvdW50
KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgRnJhbWUqIHRhcmdldEZyYW1lID0g
ZG9jLT5mcmFtZSgpOwogICAgICAgICBpZiAoIXRhcmdldEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cAppbmRleCAwOTg4MTBkY2Q4MmM0ZmY4ZWY2MjU3NmM1YzA4MTY2YWY4YWRmNDkxLi5kODQwYWMz
ODAwYTA4NGZiOGIyYzk1MWVhOGFhMzA5Nzk2NmRkMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApA
QCAtMzA5LDcgKzMwOSw3IEBAIHZvaWQgRnJhbWU6OnNldERvY3VtZW50KFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IG5ld0RvYykKICAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkgPT0g
dGhpcykgewogICAgICAgICBub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50
Q2hhbmdlZCgpOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgICAgIGlmIChtX2RvYyAm
JiBtX2RvYy0+aGFzTGlzdGVuZXJUeXBlKERvY3VtZW50OjpUT1VDSF9MSVNURU5FUikpCisgICAg
ICAgIGlmIChtX2RvYyAmJiBtX2RvYy0+dG91Y2hFdmVudEhhbmRsZXJDb3VudCgpKQogICAgICAg
ICAgICAgbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm5lZWRUb3VjaEV2ZW50cyh0cnVlKTsK
ICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2YWFh
N2YxNzI4NzU3YTFlNGJjMDRhN2Q5OTFjMzNmNjkyZWIyNzQyLi5iYzVmNzcyZmNjMGMxODg5ZDgy
Y2I5NWJiNzU2MzY5OWIzM2ZjMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC05MjcsMTcgKzkyNyw2IEBAIHVuc2lnbmVkIEludGVybmFsczo6dG91Y2hFdmVudEhhbmRs
ZXJDb3VudChEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgcmV0dXJu
IGRvY3VtZW50LT50b3VjaEV2ZW50SGFuZGxlckNvdW50KCk7CiB9CiAKLWJvb2wgSW50ZXJuYWxz
OjpoYXNUb3VjaEV2ZW50TGlzdGVuZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2Rl
JiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50KSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZG9jdW1lbnQt
Pmhhc0xpc3RlbmVyVHlwZShEb2N1bWVudDo6VE9VQ0hfTElTVEVORVIpOwotfQotCi0KIFBhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IEludGVybmFsczo6bm9kZXNGcm9tUmVjdChEb2N1bWVudCogZG9jdW1l
bnQsIGludCB4LCBpbnQgeSwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRk
aW5nLAogICAgIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLCBi
b29sIGlnbm9yZUNsaXBwaW5nLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAxNTc2NjJj
M2RlNmI0ZWQxNDRhMjk5OTgzNjAzY2NlYjY0MDBhYmRlLi42OGRhMWViZmM2MzYyMGViYzc0MzA1
NWUxNDVlZTI3ZjgzMjNkODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE1
Niw3ICsxNTYsNiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCB3aGVlbEV2ZW50SGFuZGxlckNv
dW50KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIHRvdWNoRXZlbnRI
YW5kbGVyQ291bnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCBoYXNUb3Vj
aEV2ZW50TGlzdGVuZXIoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2Rlc0Zyb21SZWN0KERvY3VtZW50KiwgaW50IHgsIGludCB5LCB1bnNp
Z25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsCiAgICAgICAgIHVuc2lnbmVk
IGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLCBib29sIGlnbm9yZUNsaXBwaW5n
LCBib29sIGFsbG93U2hhZG93Q29udGVudCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDYwMWU4YTc0ZjlmMTBkMjRlNDE4ZjEzODMz
ODZlMDU3ZjU4YTA0YmYuLjY1ZTFjZDA3NzEzMmRjMGVmMTA3ZWFhYmE5MDQ3ZDQ5ZmFkNzJjNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTEzMyw3ICsxMzMsNiBAQCBt
b2R1bGUgd2luZG93IHsKIAogICAgICAgICB1bnNpZ25lZCBsb25nIHdoZWVsRXZlbnRIYW5kbGVy
Q291bnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgdW5zaWduZWQgbG9uZyB0b3VjaEV2ZW50SGFuZGxlckNvdW50KGluIERvY3VtZW50IGRvY3Vt
ZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGJvb2xlYW4gaGFzVG91Y2hFdmVu
dExpc3RlbmVyKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAK
ICAgICAgICAgTm9kZUxpc3Qgbm9kZXNGcm9tUmVjdChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4g
bG9uZyB4LCBpbiBsb25nIHksCiAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIHRvcFBhZGRp
bmcsIGluIHVuc2lnbmVkIGxvbmcgcmlnaHRQYWRkaW5nLCBpbiB1bnNpZ25lZCBsb25nIGJvdHRv
bVBhZGRpbmcsIGluIHVuc2lnbmVkIGxvbmcgbGVmdFBhZGRpbmcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCmluZGV4IDcx
MzYxNzgwYjQ1YWI0YjlmMDg3MGFmYzRlMDU3ZTRjMTI5ZTQ3MjAuLmEzNWEwNDA3ZjQ5NGI2Y2Jj
MGQ5ZmRhMjJjMTk3OTFlN2FlZmIyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCkBAIC01MTIsMTAgKzUxMiw5IEBA
IHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhi
b29sIGFjY2VwdGluZ1RvdWNoRXZlbnRzCiAgICAgaWYgKG1faXNBY2NlcHRpbmdUb3VjaEV2ZW50
cyA9PSBhY2NlcHRpbmdUb3VjaEV2ZW50cykKICAgICAgICAgcmV0dXJuOwogICAgIG1faXNBY2Nl
cHRpbmdUb3VjaEV2ZW50cyA9IGFjY2VwdGluZ1RvdWNoRXZlbnRzOwotICAgIGlmIChtX2lzQWNj
ZXB0aW5nVG91Y2hFdmVudHMpIHsKKyAgICBpZiAobV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzKQog
ICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCk7
Ci0gICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+YWRkTGlzdGVuZXJUeXBlKERvY3VtZW50
OjpUT1VDSF9MSVNURU5FUik7Ci0gICAgfSBlbHNlCisgICAgZWxzZQogICAgICAgICBtX2VsZW1l
bnQtPmRvY3VtZW50KCktPmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3YTY3NTQ0OGU3NGY2MmRjMzZkYmFmOGRkZDM1YmRmZjk1ZjhmOWMzLi44MTgwMTlhYThjZTVk
MzljOTg3ODAzMDUxZTkwZDFkMmY1YmJjMzM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTIt
MDgtMjAgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3Zl
IHJlZHVuZGFudCBUT1VDSF9MSVNURU5FUiBldmVudCB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDUyNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgdGVzdHMgZm9yIGhhc1RvdWNoRXZl
bnRMaXN0ZW5lciBhcyB0aGV5J3JlIHJlZHVuZGFudAorICAgICAgICB3aXRoIHRlc3RzIGZvciB0
b3VjaEV2ZW50SGFuZGxlckNvdW50LgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvdG91
Y2gtaGFuZGxlci1jb3VudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvdG91Y2gtaGFuZGxlci1jb3VudC5odG1sOgorCiAyMDEyLTA4LTA5ICBSb2JlcnQgSG9nYW4g
IDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1MgMi4xIGZhaWx1cmU6ICdUZXh0LWlu
ZGVudCcgb25seSBhZmZlY3RzIGEgbGluZSBpZiBpdCBpcyB0aGUgZmlyc3QgZm9ybWF0dGVkIGxp
bmUgb2YgYW4gZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91
Y2gvdG91Y2gtaGFuZGxlci1jb3VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC90b3VjaC1oYW5kbGVyLWNvdW50LWV4cGVjdGVkLnR4dAppbmRleCAwMTRhOTgw
YzNhZGRhM2NmMDYxYjM3MWExMDM3OGQzZjRkZDA3NWNlLi4xZjgxNjM3MzRmODY1MTNjODdmZDRk
ZTI5N2EzMTdjZDgxNzI3MmM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC90b3VjaC1oYW5kbGVyLWNvdW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC90b3VjaC1oYW5kbGVyLWNvdW50LWV4cGVjdGVkLnR4dApAQCAtNSw5
ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogVGVzdCBhZGRFdmVudExpc3RlbmVy
L3JlbW92ZUV2ZW50TGlzdGVuZXIgb24gdGhlIGRvY3VtZW50LgogUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDAKLVBBU1Mgd2luZG93Lmlu
dGVybmFscy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQpIGlzIGZhbHNlCiBQQVNTIHdp
bmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMQotUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCkgaXMgdHJ1
ZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQp
IGlzIDIKIFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3Vt
ZW50KSBpcyAzCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChk
b2N1bWVudCkgaXMgMgpAQCAtMTUsMjIgKzEzLDE2IEBAIFBBU1Mgd2luZG93LmludGVybmFscy50
b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAxCiBQQVNTIHdpbmRvdy5pbnRlcm5h
bHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMQogUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDEKIFBBU1Mgd2luZG93
LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAwCi1QQVNTIHdp
bmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KSBpcyBmYWxzZQog
VGVzdCBzZXR0aW5nIHRvdWNoIGhhbmRsZXJzIG9uIHRoZSBkb2N1bWVudC4KIFBBU1Mgd2luZG93
LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAwCi1QQVNTIHdp
bmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KSBpcyBmYWxzZQog
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlz
IDQKLVBBU1Mgd2luZG93LmludGVybmFscy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQp
IGlzIHRydWUKIFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRv
Y3VtZW50KSBpcyA0CiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3Vu
dChkb2N1bWVudCkgaXMgMwogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVy
Q291bnQoZG9jdW1lbnQpIGlzIDMKIFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFu
ZGxlckNvdW50KGRvY3VtZW50KSBpcyAwCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hF
dmVudExpc3RlbmVyKGRvY3VtZW50KSBpcyBmYWxzZQogVGVzdCBhZGRFdmVudExpc3RlbmVyL3Jl
bW92ZUV2ZW50TGlzdGVuZXIgb24gdGhlIHdpbmRvdy4KIFBBU1Mgd2luZG93LmludGVybmFscy50
b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAwCi1QQVNTIHdpbmRvdy5pbnRlcm5h
bHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KSBpcyBmYWxzZQogUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDEKLVBBU1Mgd2lu
ZG93LmludGVybmFscy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQpIGlzIHRydWUKIFBB
U1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAy
CiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkg
aXMgMwogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1l
bnQpIGlzIDIKQEAgLTM4LDIyICszMCwxNiBAQCBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hF
dmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRv
dWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDEKIFBBU1Mgd2luZG93LmludGVybmFs
cy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAxCiBQQVNTIHdpbmRvdy5pbnRl
cm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMAotUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCkgaXMgZmFsc2UKIFRlc3Qg
c2V0dGluZyB0b3VjaCBoYW5kbGVycyBvbiB0aGUgd2luZG93LgogUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDAKLVBBU1Mgd2luZG93Lmlu
dGVybmFscy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQpIGlzIGZhbHNlCiBQQVNTIHdp
bmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgNAotUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCkgaXMgdHJ1
ZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQp
IGlzIDQKIFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3Vt
ZW50KSBpcyAzCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChk
b2N1bWVudCkgaXMgMwogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291
bnQoZG9jdW1lbnQpIGlzIDAKLVBBU1Mgd2luZG93LmludGVybmFscy5oYXNUb3VjaEV2ZW50TGlz
dGVuZXIoZG9jdW1lbnQpIGlzIGZhbHNlCiBUZXN0IGFkZEV2ZW50TGlzdGVuZXIvcmVtb3ZlRXZl
bnRMaXN0ZW5lciBvbiBhIGRpdi4KIFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFu
ZGxlckNvdW50KGRvY3VtZW50KSBpcyAwCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hF
dmVudExpc3RlbmVyKGRvY3VtZW50KSBpcyBmYWxzZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRv
dWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDEKLVBBU1Mgd2luZG93LmludGVybmFs
cy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQpIGlzIHRydWUKIFBBU1Mgd2luZG93Lmlu
dGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAyCiBQQVNTIHdpbmRv
dy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMwogUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDIKQEAg
LTYxLDM4ICs0NywyOCBAQCBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJD
b3VudChkb2N1bWVudCkgaXMgMQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5k
bGVyQ291bnQoZG9jdW1lbnQpIGlzIDEKIFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50
SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAxCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hF
dmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMAotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmhh
c1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCkgaXMgZmFsc2UKIFRlc3Qgc2V0dGluZyB0b3Vj
aCBoYW5kbGVycyBvbiBhIGRpdi4KIFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFu
ZGxlckNvdW50KGRvY3VtZW50KSBpcyAwCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hF
dmVudExpc3RlbmVyKGRvY3VtZW50KSBpcyBmYWxzZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRv
dWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDQKLVBBU1Mgd2luZG93LmludGVybmFs
cy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQpIGlzIHRydWUKIFBBU1Mgd2luZG93Lmlu
dGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyA0CiBQQVNTIHdpbmRv
dy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMwogUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDMKIFBB
U1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAw
Ci1QQVNTIHdpbmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KSBp
cyBmYWxzZQogVGVzdCBhZGRFdmVudExpc3RlbmVyL3JlbW92ZUV2ZW50TGlzdGVuZXIgb24gYSBu
ZXcgZGl2LgogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9j
dW1lbnQpIGlzIDAKLVBBU1Mgd2luZG93LmludGVybmFscy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIo
ZG9jdW1lbnQpIGlzIGZhbHNlCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRs
ZXJDb3VudChkb2N1bWVudCkgaXMgMgotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZl
bnRMaXN0ZW5lcihkb2N1bWVudCkgaXMgdHJ1ZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNo
RXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDIKIFBBU1Mgd2luZG93LmludGVybmFscy50
b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAzCiBQQVNTIHdpbmRvdy5pbnRlcm5h
bHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMgogUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDIKIFBBU1Mgd2luZG93
LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBpcyAyCiBQQVNTIHdp
bmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMAotUEFT
UyB3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCkgaXMgZmFs
c2UKIFRlc3Qgc2V0dGluZyB0b3VjaCBoYW5kbGVycyBvbiBhIG5ldyBkaXYuCiBQQVNTIHdpbmRv
dy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkgaXMgMAotUEFTUyB3
aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCkgaXMgZmFsc2UK
IFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KSBp
cyAyCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50
KSBpcyB0cnVlCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChk
b2N1bWVudCkgaXMgMgogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291
bnQoZG9jdW1lbnQpIGlzIDMKIFBBU1Mgd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxl
ckNvdW50KGRvY3VtZW50KSBpcyAyCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhh
bmRsZXJDb3VudChkb2N1bWVudCkgaXMgMgogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZl
bnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpIGlzIDAKLVBBU1Mgd2luZG93LmludGVybmFscy5oYXNU
b3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQpIGlzIGZhbHNlCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWhhbmRsZXItY291bnQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3RvdWNoLWhhbmRsZXItY291bnQuaHRtbAppbmRleCA4
OGIxNzhhMjdkYjRmOWFkMTJlYjgxODkwMTRiOTQwYjkwNzg3MTQ1Li5mMThlYjk2MWI4YWQ0OGJm
YWFlMzNmYmM3NzhmNzRjMDJjOGRmNjJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC90b3VjaC1oYW5kbGVyLWNvdW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvdG91Y2gtaGFuZGxlci1jb3VudC5odG1sCkBAIC04LDEwICs4LDggQEAg
ZGVidWcoIlRlc3QgYWRkRXZlbnRMaXN0ZW5lci9yZW1vdmVFdmVudExpc3RlbmVyIG9uIHRoZSBk
b2N1bWVudC4iKTsKICAgICB2YXIgbGlzdGVuZXIgPSBmdW5jdGlvbigpIHsgfQogCiAgICAgc2hv
dWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCkn
LCAnMCcpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0
ZW5lcihkb2N1bWVudCknLCAnZmFsc2UnKTsKICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVy
KCd0b3VjaHN0YXJ0JywgbGlzdGVuZXIsIHRydWUpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuaW50
ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpJywgJzEnKTsKLSAgICBzaG91
bGRCZSgnd2luZG93LmludGVybmFscy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQpJywg
J3RydWUnKTsKICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBsaXN0
ZW5lciwgdHJ1ZSk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhh
bmRsZXJDb3VudChkb2N1bWVudCknLCAnMicpOwogICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoJ3RvdWNoc3RhcnQnLCBsaXN0ZW5lciwgZmFsc2UpOwpAQCAtMjksMTkgKzI3LDE2IEBAIGRl
YnVnKCJUZXN0IGFkZEV2ZW50TGlzdGVuZXIvcmVtb3ZlRXZlbnRMaXN0ZW5lciBvbiB0aGUgZG9j
dW1lbnQuIik7CiAKICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0
JywgbGlzdGVuZXIsIGZhbHNlKTsKICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3Vj
aEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRv
dy5pbnRlcm5hbHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KScsICdmYWxzZScpOwog
fSkoKTsKIAogZGVidWcoIlRlc3Qgc2V0dGluZyB0b3VjaCBoYW5kbGVycyBvbiB0aGUgZG9jdW1l
bnQuIik7CiAoZnVuY3Rpb24oKSB7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91
Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCknLCAnMCcpOwotICAgIHNob3VsZEJlKCd3aW5k
b3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCknLCAnZmFsc2UnKTsK
ICAgICBkb2N1bWVudC5vbnRvdWNoc3RhcnQgPSBmdW5jdGlvbigpIHsgfQogICAgIGRvY3VtZW50
Lm9udG91Y2htb3ZlID0gZnVuY3Rpb24oKSB7fQogICAgIGRvY3VtZW50Lm9udG91Y2hlbmQgPSBm
dW5jdGlvbigpIHt9CiAgICAgZG9jdW1lbnQub250b3VjaGNhbmNlbCA9IGZ1bmN0aW9uKCkge30K
ICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRv
Y3VtZW50KScsICc0Jyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hF
dmVudExpc3RlbmVyKGRvY3VtZW50KScsICd0cnVlJyk7CiAgICAgZG9jdW1lbnQub250b3VjaHN0
YXJ0ID0gZnVuY3Rpb24oKSB7IH0KICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3Vj
aEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KScsICc0Jyk7CiAgICAgZG9jdW1lbnQub250b3Vj
aHN0YXJ0ID0gbnVsbDsKQEAgLTUyLDcgKzQ3LDYgQEAgZGVidWcoIlRlc3Qgc2V0dGluZyB0b3Vj
aCBoYW5kbGVycyBvbiB0aGUgZG9jdW1lbnQuIik7CiAgICAgZG9jdW1lbnQub250b3VjaGVuZCA9
IG51bGw7CiAgICAgZG9jdW1lbnQub250b3VjaGNhbmNlbCA9IG51bGw7CiAgICAgc2hvdWxkQmUo
J3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCknLCAnMCcp
OwotICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihk
b2N1bWVudCknLCAnZmFsc2UnKTsKIH0pKCk7CiAKIGRlYnVnKCJUZXN0IGFkZEV2ZW50TGlzdGVu
ZXIvcmVtb3ZlRXZlbnRMaXN0ZW5lciBvbiB0aGUgd2luZG93LiIpOwpAQCAtNjAsMTAgKzU0LDgg
QEAgZGVidWcoIlRlc3QgYWRkRXZlbnRMaXN0ZW5lci9yZW1vdmVFdmVudExpc3RlbmVyIG9uIHRo
ZSB3aW5kb3cuIik7CiAgICAgdmFyIGxpc3RlbmVyID0gZnVuY3Rpb24oKSB7IH0KIAogICAgIHNo
b3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQp
JywgJzAnKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy5oYXNUb3VjaEV2ZW50TGlz
dGVuZXIoZG9jdW1lbnQpJywgJ2ZhbHNlJyk7CiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J3RvdWNoc3RhcnQnLCBsaXN0ZW5lciwgdHJ1ZSk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRl
cm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCknLCAnMScpOwotICAgIHNob3Vs
ZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCknLCAn
dHJ1ZScpOwogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBsaXN0ZW5l
ciwgdHJ1ZSk7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRs
ZXJDb3VudChkb2N1bWVudCknLCAnMicpOwogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0
b3VjaHN0YXJ0JywgbGlzdGVuZXIsIGZhbHNlKTsKQEAgLTgxLDE5ICs3MywxNiBAQCBkZWJ1Zygi
VGVzdCBhZGRFdmVudExpc3RlbmVyL3JlbW92ZUV2ZW50TGlzdGVuZXIgb24gdGhlIHdpbmRvdy4i
KTsKIAogICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgbGlzdGVu
ZXIsIGZhbHNlKTsKICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFu
ZGxlckNvdW50KGRvY3VtZW50KScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5h
bHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KScsICdmYWxzZScpOwogfSkoKTsKIAog
ZGVidWcoIlRlc3Qgc2V0dGluZyB0b3VjaCBoYW5kbGVycyBvbiB0aGUgd2luZG93LiIpOwogKGZ1
bmN0aW9uKCkgewogICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5k
bGVyQ291bnQoZG9jdW1lbnQpJywgJzAnKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFs
cy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1lbnQpJywgJ2ZhbHNlJyk7CiAgICAgd2luZG93
Lm9udG91Y2hzdGFydCA9IGZ1bmN0aW9uKCkgeyB9CiAgICAgd2luZG93Lm9udG91Y2htb3ZlID0g
ZnVuY3Rpb24oKSB7fQogICAgIHdpbmRvdy5vbnRvdWNoZW5kID0gZnVuY3Rpb24oKSB7fQogICAg
IHdpbmRvdy5vbnRvdWNoY2FuY2VsID0gZnVuY3Rpb24oKSB7fQogICAgIHNob3VsZEJlKCd3aW5k
b3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9jdW1lbnQpJywgJzQnKTsKLSAg
ICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy5oYXNUb3VjaEV2ZW50TGlzdGVuZXIoZG9jdW1l
bnQpJywgJ3RydWUnKTsKICAgICB3aW5kb3cub250b3VjaHN0YXJ0ID0gZnVuY3Rpb24oKSB7IH0K
ICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRv
Y3VtZW50KScsICc0Jyk7CiAgICAgd2luZG93Lm9udG91Y2hzdGFydCA9IG51bGw7CkBAIC0xMDQs
NyArOTMsNiBAQCBkZWJ1ZygiVGVzdCBzZXR0aW5nIHRvdWNoIGhhbmRsZXJzIG9uIHRoZSB3aW5k
b3cuIik7CiAgICAgd2luZG93Lm9udG91Y2hlbmQgPSBudWxsOwogICAgIHdpbmRvdy5vbnRvdWNo
Y2FuY2VsID0gbnVsbDsKICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3VjaEV2ZW50
SGFuZGxlckNvdW50KGRvY3VtZW50KScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRl
cm5hbHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KScsICdmYWxzZScpOwogfSkoKTsK
IAogZGVidWcoIlRlc3QgYWRkRXZlbnRMaXN0ZW5lci9yZW1vdmVFdmVudExpc3RlbmVyIG9uIGEg
ZGl2LiIpOwpAQCAtMTEzLDEwICsxMDEsOCBAQCBkZWJ1ZygiVGVzdCBhZGRFdmVudExpc3RlbmVy
L3JlbW92ZUV2ZW50TGlzdGVuZXIgb24gYSBkaXYuIik7CiAgICAgdmFyIGRpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0b3VjaHRhcmdldCcpOwogCiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5p
bnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCknLCAnMCcpOwotICAgIHNo
b3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCkn
LCAnZmFsc2UnKTsKICAgICBkaXYuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGxpc3Rl
bmVyLCB0cnVlKTsKICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFu
ZGxlckNvdW50KGRvY3VtZW50KScsICcxJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5h
bHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KScsICd0cnVlJyk7CiAgICAgZGl2LmFk
ZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGxpc3RlbmVyLCB0cnVlKTsKICAgICBzaG91bGRC
ZSgnd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KScsICcy
Jyk7CiAgICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBsaXN0ZW5lciwgZmFs
c2UpOwpAQCAtMTM0LDcgKzEyMCw2IEBAIGRlYnVnKCJUZXN0IGFkZEV2ZW50TGlzdGVuZXIvcmVt
b3ZlRXZlbnRMaXN0ZW5lciBvbiBhIGRpdi4iKTsKIAogICAgIGRpdi5yZW1vdmVFdmVudExpc3Rl
bmVyKCd0b3VjaHN0YXJ0JywgbGlzdGVuZXIsIGZhbHNlKTsKICAgICBzaG91bGRCZSgnd2luZG93
LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KScsICcwJyk7Ci0gICAg
c2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50
KScsICdmYWxzZScpOwogfSkoKTsKIAogZGVidWcoIlRlc3Qgc2V0dGluZyB0b3VjaCBoYW5kbGVy
cyBvbiBhIGRpdi4iKTsKQEAgLTE0MiwxMyArMTI3LDExIEBAIGRlYnVnKCJUZXN0IHNldHRpbmcg
dG91Y2ggaGFuZGxlcnMgb24gYSBkaXYuIik7CiAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0b3VjaHRhcmdldCcpOwogCiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5h
bHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCknLCAnMCcpOwotICAgIHNob3VsZEJl
KCd3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCknLCAnZmFs
c2UnKTsKICAgICBkaXYub250b3VjaHN0YXJ0ID0gZnVuY3Rpb24oKSB7IH0KICAgICBkaXYub250
b3VjaG1vdmUgPSBmdW5jdGlvbigpIHsgfQogICAgIGRpdi5vbnRvdWNoZW5kID0gZnVuY3Rpb24o
KSB7IH0KICAgICBkaXYub250b3VjaGNhbmNlbCA9IGZ1bmN0aW9uKCkgeyB9CiAgICAgc2hvdWxk
QmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVudCknLCAn
NCcpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRMaXN0ZW5l
cihkb2N1bWVudCknLCAndHJ1ZScpOwogICAgIGRpdi5vbnRvdWNoc3RhcnQgPSBmdW5jdGlvbigp
IHsgfQogICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291
bnQoZG9jdW1lbnQpJywgJzQnKTsKICAgICBkaXYub250b3VjaHN0YXJ0ID0gbnVsbDsKQEAgLTE1
OSw3ICsxNDIsNiBAQCBkZWJ1ZygiVGVzdCBzZXR0aW5nIHRvdWNoIGhhbmRsZXJzIG9uIGEgZGl2
LiIpOwogICAgIGRpdi5vbnRvdWNoZW5kID0gbnVsbDsKICAgICBkaXYub250b3VjaGNhbmNlbCA9
IG51bGw7CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJD
b3VudChkb2N1bWVudCknLCAnMCcpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhh
c1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCknLCAnZmFsc2UnKTsKIH0pKCk7CiAKIGRlYnVn
KCJUZXN0IGFkZEV2ZW50TGlzdGVuZXIvcmVtb3ZlRXZlbnRMaXN0ZW5lciBvbiBhIG5ldyBkaXYu
Iik7CkBAIC0xNjksMTIgKzE1MSwxMCBAQCBkZWJ1ZygiVGVzdCBhZGRFdmVudExpc3RlbmVyL3Jl
bW92ZUV2ZW50TGlzdGVuZXIgb24gYSBuZXcgZGl2LiIpOwogICAgIHZhciBsaXN0ZW5lciA9IGZ1
bmN0aW9uKCkgeyB9CiAKICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3VjaEV2ZW50
SGFuZGxlckNvdW50KGRvY3VtZW50KScsICcwJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRl
cm5hbHMuaGFzVG91Y2hFdmVudExpc3RlbmVyKGRvY3VtZW50KScsICdmYWxzZScpOwogCiAgICAg
ZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBsaXN0ZW5lciwgdHJ1ZSk7CiAgICAg
ZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGxpc3RlbmVyLCB0cnVlKTsKICAgICBz
aG91bGRCZSgnd2luZG93LmludGVybmFscy50b3VjaEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50
KScsICcyJyk7Ci0gICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMuaGFzVG91Y2hFdmVudExp
c3RlbmVyKGRvY3VtZW50KScsICd0cnVlJyk7CiAKICAgICB0b3VjaHRhcmdldC5hcHBlbmRDaGls
ZChkaXYpOwogICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVy
Q291bnQoZG9jdW1lbnQpJywgJzInKTsKQEAgLTE5NCw3ICsxNzQsNiBAQCBkZWJ1ZygiVGVzdCBh
ZGRFdmVudExpc3RlbmVyL3JlbW92ZUV2ZW50TGlzdGVuZXIgb24gYSBuZXcgZGl2LiIpOwogICAg
IGRpdi5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBsaXN0ZW5lciwgdHJ1ZSk7CiAg
ICAgZGl2LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgbGlzdGVuZXIsIHRydWUpOwog
ICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLnRvdWNoRXZlbnRIYW5kbGVyQ291bnQoZG9j
dW1lbnQpJywgJzAnKTsKLSAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy5oYXNUb3VjaEV2
ZW50TGlzdGVuZXIoZG9jdW1lbnQpJywgJ2ZhbHNlJyk7CiB9KSgpOwogCiBkZWJ1ZygiVGVzdCBz
ZXR0aW5nIHRvdWNoIGhhbmRsZXJzIG9uIGEgbmV3IGRpdi4iKTsKQEAgLTIwMywxMiArMTgyLDEw
IEBAIGRlYnVnKCJUZXN0IHNldHRpbmcgdG91Y2ggaGFuZGxlcnMgb24gYSBuZXcgZGl2LiIpOwog
ICAgIHZhciB0b3VjaHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3VjaHRhcmdl
dCcpOwogCiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJD
b3VudChkb2N1bWVudCknLCAnMCcpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhh
c1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCknLCAnZmFsc2UnKTsKIAogICAgIGRpdi5vbnRv
dWNoc3RhcnQgPSBmdW5jdGlvbigpIHsgfQogICAgIGRpdi5vbnRvdWNobW92ZSA9IGZ1bmN0aW9u
KCkgeyB9CiAgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJD
b3VudChkb2N1bWVudCknLCAnMicpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhh
c1RvdWNoRXZlbnRMaXN0ZW5lcihkb2N1bWVudCknLCAndHJ1ZScpOwogCiAgICAgdG91Y2h0YXJn
ZXQuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICBzaG91bGRCZSgnd2luZG93LmludGVybmFscy50b3Vj
aEV2ZW50SGFuZGxlckNvdW50KGRvY3VtZW50KScsICcyJyk7CkBAIC0yMjUsNyArMjAyLDYgQEAg
ZGVidWcoIlRlc3Qgc2V0dGluZyB0b3VjaCBoYW5kbGVycyBvbiBhIG5ldyBkaXYuIik7CiAgICAg
ZGl2Lm9udG91Y2hlbmQgPSBudWxsOwogICAgIGRpdi5vbnRvdWNobW92ZSA9IG51bGw7CiAgICAg
c2hvdWxkQmUoJ3dpbmRvdy5pbnRlcm5hbHMudG91Y2hFdmVudEhhbmRsZXJDb3VudChkb2N1bWVu
dCknLCAnMCcpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuaW50ZXJuYWxzLmhhc1RvdWNoRXZlbnRM
aXN0ZW5lcihkb2N1bWVudCknLCAnZmFsc2UnKTsKIH0pKCk7CiAKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>