<?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>77934</bug_id>
          
          <creation_ts>2012-02-06 22:11:56 -0800</creation_ts>
          <short_desc>Replacement text should be available from the marker.</short_desc>
          <delta_ts>2022-10-05 16:04:32 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>gustavo</cc>
    
    <cc>hbono</cc>
    
    <cc>pnormand</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>550627</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-06 22:11:56 -0800</bug_when>
    <thetext>On spellchecking, TextCheckingResult contains a replacement text
which can be used both for an automatic replacement and for showing a suggestion.

But when marking a misspelled word, Editor uses only the misspelled range data
but discards the replacement value. Then it asks the same value again
when showing suggestion/autocorrection.

It would be great if the marker holds the replacement text
and Editor can use it on suggesting a correction, without any re-asking.
This is especially true in the case when we need IPC messaging to spelling correction:
We can save one roundtrip by doing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551611</commentid>
    <comment_count>1</comment_count>
      <attachid>125967</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-07 17:42:17 -0800</bug_when>
    <thetext>Created attachment 125967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551614</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-07 17:43:34 -0800</bug_when>
    <thetext>Kent-san, Ryosuke, could you take a look? We need this for reducing round-trip over IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551653</commentid>
    <comment_count>3</comment_count>
      <attachid>125967</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-07 18:18:09 -0800</bug_when>
    <thetext>Comment on attachment 125967
Patch

Attachment 125967 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11459208</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551746</commentid>
    <comment_count>4</comment_count>
      <attachid>125992</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-07 20:39:25 -0800</bug_when>
    <thetext>Created attachment 125992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552802</commentid>
    <comment_count>5</comment_count>
      <attachid>125992</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-08 20:24:21 -0800</bug_when>
    <thetext>Comment on attachment 125992
Patch

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

&gt; Source/WebCore/testing/Internals.h:84
&gt; +    String markerDescriptionForNode(Node*, const String&amp;, unsigned, ExceptionCode&amp;);

nit: We shouldn&apos;t omit the argument names of 2nd and 3rd arguments. It&apos;s hard to understand what they are.

&gt; Source/WebCore/testing/Internals.h:118
&gt; +    DocumentMarker* markerAt(Node*, const String&amp;, unsigned, ExceptionCode&amp;);

ditto.

&gt; LayoutTests/editing/spelling/spelling-marker-description.html:43
&gt; +    window.setTimeout(function() { verify(nretry-1); }, 0);

nit: Should have whitespace around &apos;-&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552803</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-08 20:25:08 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; On spellchecking, TextCheckingResult contains a replacement text
&gt; which can be used both for an automatic replacement and for showing a suggestion.
&gt; 
&gt; But when marking a misspelled word, Editor uses only the misspelled range data
&gt; but discards the replacement value. Then it asks the same value again
&gt; when showing suggestion/autocorrection.
&gt; 
&gt; It would be great if the marker holds the replacement text
&gt; and Editor can use it on suggesting a correction, without any re-asking.
&gt; This is especially true in the case when we need IPC messaging to spelling correction:
&gt; We can save one roundtrip by doing this.

It would be helpful if ChangeLog has such information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552822</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-08 21:04:22 -0800</bug_when>
    <thetext>Kent-san, thanks for taking a review for this! I&apos;ll address these points before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552827</commentid>
    <comment_count>8</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-08 21:23:56 -0800</bug_when>
    <thetext>Committed r107176: &lt;http://trac.webkit.org/changeset/107176&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723767</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-09-19 13:30:31 -0700</bug_when>
    <thetext>editing/spelling/spelling-marker-description.html still fails, and is on the Skipped list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1903581</commentid>
    <comment_count>10</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-10-05 16:04:32 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #9)
&gt; editing/spelling/spelling-marker-description.html still fails, and is on the
&gt; Skipped list.

Still on SKIP list:

https://github.com/WebKit/WebKit/blob/95606b13126e82a5cf2534a05e107d0aa69ccc0a/LayoutTests/platform/win/TestExpectations#L1610

and this seems to have landed in this commit:

https://github.com/WebKit/WebKit/commit/7c6135b1f0fb885d404a2e8678715cc5dbf6747e

Since original bug is fixed, can we mark this as &quot;RESOLVED FIXED&quot; and for skipped test, we have another bug? Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125967</attachid>
            <date>2012-02-07 17:42:17 -0800</date>
            <delta_ts>2012-02-07 20:39:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77934-20120208104215.patch</filename>
            <type>text/plain</type>
            <size>18540</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q3YzMzZGI5NzUwYzE4
NTc0ZTRjMWY2YzljOGFkNmMyYmI5OWY5ZS4uNTQzYjcyYjYyNmMxOTUxOThiN2Y2ODlmZDYwZTlk
MmUwMzViM2Q2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAyLTA3ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJlcGxhY2VtZW50IHRl
eHQgc2hvdWxkIGJlIGF2YWlsYWJsZSBmcm9tIHRoZSBtYXJrZXIuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkzNAorCisgICAgICAgIC0gUGFzc2Vk
IHRoZSByZXBsYWNlbWVudCB0ZXh0IHRvIGFkZE1hcmtlcigpIGZvciBmb3IgbWlzc3BlbGxpbmcg
bWFya2Vycy4KKyAgICAgICAgICBOb3RlIHRoYXQgdGhpcyBpcyBkb25lIG9ubHkgZm9yIHRoZSB1
bmlmaWVkIGNoZWNrZXIgcGF0aCBiZWNhdXNlIGxlZ2FjeQorICAgICAgICAgIFRleHRDaGVja2Vy
Q2xpZW50IEFQSSBkb2Vzbid0IHByb3ZpZGUgc3VjaCBhIHJlcGxhY2VtZW50LgorICAgICAgICAt
IEFkZGVkIGFuIEludGVybmFscyBBUEkgdG8gcmV0cmlldmUgYSBkZXNjcmlwdGlvbiB0ZXh0IG9u
IGEgbWFya2VyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6bWFya2VyQXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
Om1hcmtlckRlc2NyaXB0aW9uRm9yTm9kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDItMDcgIERhdmlkIFJldmVtYW4gIDxyZXZl
bWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIENyYXNoIHdoZW4gdXNpbmcg
cGVyLXRpbGUgcGFpbnRpbmcgb24gV2luZG93cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggMWJjODU0M2VkMTBkNTEzM2Y0M2E0NDgxMzE2NzE2OTNhYTdhMGJmZS4uNmE0MjUwZGRhYzU0
OTcwNzY3ZmZhN2E3ODNjY2FiNGNkOWNjMTcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0wNyAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXBsYWNlbWVudCB0ZXh0IHNob3VsZCBiZSBhdmFpbGFibGUg
ZnJvbSB0aGUgbWFya2VyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzc5MzQKKworICAgICAgICBkaWRGaW5pc2hDaGVja2luZ1RleHQoKSBhY2NpZGVu
dGFsbHkgZHJvcHBlZCB0aGUgZGVzY3JpcHRpb24gdGV4dAorICAgICAgICBnaXZlbiBmcm9tIHRo
ZSBiYWNrZW5kLiBGaXhlZCB0byBjb3B5IGl0IG9uIHRoZSBBUEktdG8tQ29yZQorICAgICAgICBj
b252ZXJ0aW9uLiBUaGUgdGVzdCB3b24ndCB3b3JrIHdpdGhvdXQgdGhpcyBmaXguCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViVGV4dENo
ZWNraW5nQ29tcGxldGlvbkltcGwuY3BwOgorICAgICAgICAoV2ViS2l0Ojp0b0NvcmVSZXN1bHRz
KToKKwogMjAxMi0wMi0wNyAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVuaXQgdGVzdCBmb3IgYnVnICM3Nzk5NgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCBlYzI3YWVjNGY2MGI3MDQwMjdkOTNmZGFhOWE0YzIzZjQxMGJiN2ExLi5kODM5
YzUzZDljY2Y1ODkwZTIwMmM2NWYzOGE2MDI1NTJmZDcyMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMTI0Niw2ICsxMjQ2LDcgQEAgX19aTks3V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIxOW9y
aWdpbmFsUmVxdWVzdENvcHlFdgogX19aTks3V2ViQ29yZTE0RG9jdW1lbnRMb2FkZXIyMWlzTG9h
ZGluZ01haW5SZXNvdXJjZUV2CiBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRlcjI4dXJsRm9y
SGlzdG9yeVJlZmxlY3RzRmFpbHVyZUV2CiBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRlcjN1
cmxFdgorX19aTks3V2ViQ29yZTE0RG9jdW1lbnRNYXJrZXIxMWRlc2NyaXB0aW9uRXYKIF9fWk5L
N1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uMTFjdXJyZW50Rm9ybUV2CiBfX1pOSzdXZWJDb3JlMTRG
cmFtZVNlbGVjdGlvbjE1Y29weVR5cGluZ1N0eWxlRXYKIF9fWk5LN1dlYkNvcmUxNEZyYW1lU2Vs
ZWN0aW9uMTdpc0luUGFzc3dvcmRGaWVsZEV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5k
ZXggN2ZlOTVmNzJhN2RjYjJkMmI5NjExZDMzZWJkMmVmOWRiZTcxODg5Yy4uOTdiMTUzMzY1MTIz
NDAxYTNkMDEzN2JiMDI5NjFmNjkzZjU2OGY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cApAQCAtMjA5MCw3ICsyMDkwLDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFBh
c3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IHJlcXVlc3QsIGNvbnN0IFZlY3QKICAgICAgICAg
ICAgIFJlZlB0cjxSYW5nZT4gbWlzc3BlbGxpbmdSYW5nZSA9IHBhcmFncmFwaC5zdWJyYW5nZShy
ZXN1bHRMb2NhdGlvbiwgcmVzdWx0TGVuZ3RoKTsKICAgICAgICAgICAgIGlmICghbV9zcGVsbGlu
Z0NvcnJlY3Rvci0+aXNTcGVsbGluZ01hcmtlckFsbG93ZWQobWlzc3BlbGxpbmdSYW5nZSkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBtaXNzcGVsbGluZ1JhbmdlLT5z
dGFydENvbnRhaW5lcigpLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihtaXNzcGVs
bGluZ1JhbmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpOworICAgICAgICAgICAg
bWlzc3BlbGxpbmdSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFya2Vycygp
LT5hZGRNYXJrZXIobWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlNwZWxs
aW5nLCByZXN1bHQtPnJlcGxhY2VtZW50KTsKICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRNYXJr
R3JhbW1hciAmJiByZXN1bHQtPnR5cGUgPT0gVGV4dENoZWNraW5nVHlwZUdyYW1tYXIgJiYgcGFy
YWdyYXBoLmNoZWNraW5nUmFuZ2VDb3ZlcnMocmVzdWx0TG9jYXRpb24sIHJlc3VsdExlbmd0aCkp
IHsKICAgICAgICAgICAgIEFTU0VSVChyZXN1bHRMZW5ndGggPiAwICYmIHJlc3VsdExvY2F0aW9u
ID49IDApOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IHJlc3VsdC0+ZGV0
YWlscy5zaXplKCk7IGorKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDEyMTJmOGQ3ODgwYTFhNzQwMGMxMTg4MmJjODBlYTVjZDcwMmNkYTIuLjA2ZTM0Y2QzY2JiYzBk
ZTE3OGIxMjE3ZmE0MDM4OTliNzIwOTdiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Om1hcmtlckNvdW50
Rm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIEV4YwogICAgIHJl
dHVybiBub2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSwgbWFya2Vy
VHlwZXMpLnNpemUoKTsKIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjptYXJrZXJS
YW5nZUZvck5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25l
ZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCitEb2N1bWVudE1hcmtlciogSW50ZXJuYWxzOjpt
YXJrZXJBdChOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGlu
ZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIW5vZGUpIHsKICAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7CkBAIC0yOTcsNyArMjk3LDIzIEBAIFBhc3NSZWZQdHI8UmFu
Z2U+IEludGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmlu
ZyYgbWFya2VyCiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4gbWFya2VycyA9IG5vZGUtPmRv
Y3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0Zvcihub2RlLCBtYXJrZXJUeXBlcyk7CiAgICAg
aWYgKG1hcmtlcnMuc2l6ZSgpIDw9IGluZGV4KQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gUmFuZ2U6OmNyZWF0ZShub2RlLT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXJzW2luZGV4XS0+
c3RhcnRPZmZzZXQoKSwgbm9kZSwgbWFya2Vyc1tpbmRleF0tPmVuZE9mZnNldCgpKTsKKyAgICBy
ZXR1cm4gbWFya2Vyc1tpbmRleF07Cit9CisKK1Bhc3NSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6
bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwg
dW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERvY3VtZW50TWFya2Vy
KiBtYXJrZXIgPSBtYXJrZXJBdChub2RlLCBtYXJrZXJUeXBlLCBpbmRleCwgZWMpOworICAgIGlm
ICghbWFya2VyKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gUmFuZ2U6OmNyZWF0ZShu
b2RlLT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXItPnN0YXJ0T2Zmc2V0KCksIG5vZGUsIG1hcmtl
ci0+ZW5kT2Zmc2V0KCkpOworfQorCitTdHJpbmcgSW50ZXJuYWxzOjptYXJrZXJEZXNjcmlwdGlv
bkZvck5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25lZCBp
bmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgRG9jdW1lbnRNYXJrZXIqIG1hcmtlciA9
IG1hcmtlckF0KG5vZGUsIG1hcmtlclR5cGUsIGluZGV4LCBlYyk7CisgICAgaWYgKCFtYXJrZXIp
CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gbWFya2VyLT5kZXNjcmlwdGlv
bigpOwogfQogCiB2b2lkIEludGVybmFsczo6c2V0U2Nyb2xsVmlld1Bvc2l0aW9uKERvY3VtZW50
KiBkb2N1bWVudCwgbG9uZyB4LCBsb25nIHksIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNThkNzVkNjRiYzRhZGFhM2MyNjdiYTUyZjc1ZDZlNDQy
YmJmN2FmMC4uNjcxMTY0NDUzZGFmODYwNzBjM2QzMTVjY2NhYjg3MzRmZDk4ZDhiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQ2xpZW50UmVjdDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRG9jdW1l
bnRNYXJrZXI7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgSW50ZXJuYWxTZXR0aW5nczsKIGNsYXNz
IE5vZGU7CkBAIC04MCw2ICs4MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIG1hcmtlckNv
dW50Rm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBh
c3NSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwg
dW5zaWduZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBTdHJpbmcgbWFya2VyRGVzY3JpcHRpb25G
b3JOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYpOwog
CiAgICAgdm9pZCBzZXRTY3JvbGxWaWV3UG9zaXRpb24oRG9jdW1lbnQqLCBsb25nIHgsIGxvbmcg
eSwgRXhjZXB0aW9uQ29kZSYpOwogCkBAIC0xMTMsNiArMTE1LDcgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1bWVudCopOworICAgIERvY3VtZW50TWFy
a2VyKiBtYXJrZXJBdChOb2RlKiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAogICAgIFJlZlB0cjxJbnRlcm5hbFNldHRpbmdzPiBtX3NldHRpbmdzOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA1NGYzZDU1YWJmODNiNjcyZjVlNDM2
ODQ3ZDc2MjkxMDljZjYyNzNlLi45YmYwNTc1MWQ5YjZhMmY0YTgxZjA3MDk5YzkzYzdhNmQzYThh
MDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01Myw2ICs1Myw3IEBA
IG1vZHVsZSB3aW5kb3cgewogICAgICAgICBDbGllbnRSZWN0IGJvdW5kaW5nQm94KGluIEVsZW1l
bnQgZWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcg
bWFya2VyQ291bnRGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3RyaW5nIG1hcmtlclR5cGUp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBSYW5nZSBtYXJrZXJSYW5nZUZvck5vZGUo
aW4gTm9kZSBub2RlLCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSwgaW4gdW5zaWduZWQgbG9uZyBp
bmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIERPTVN0cmluZyBtYXJrZXJEZXNj
cmlwdGlvbkZvck5vZGUoaW4gTm9kZSBub2RlLCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSwgaW4g
dW5zaWduZWQgbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9p
ZCBzZXRTY3JvbGxWaWV3UG9zaXRpb24oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgeCwg
aW4gbG9uZyB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwuY3Bw
CmluZGV4IDBmNTlhOTNkMGVmOWYwYjMyMjY3Y2VmN2E0NzRiNjQzY2ExZjBkYjMuLjBkNmU0ZGI3
ODg0Mzk5ZWNjYjgzNTlmZDNlMjJkZGQwYzlmODcxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlRleHRDaGVja2luZ0NvbXBsZXRpb25JbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uSW1wbC5j
cHAKQEAgLTQxLDI1ICs0MSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLXN0YXRpYyBUZXh0Q2hlY2tpbmdUeXBlIHRvQ29yZUNoZWNraW5nVHlw
ZShXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ6OkVycm9yIGVycm9yKQotewotICAgIGlmIChlcnJvciA9
PSBXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ6OkVycm9yU3BlbGxpbmcpCi0gICAgICAgIHJldHVybiBU
ZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7Ci0gICAgQVNTRVJUKGVycm9yID09IFdlYlRleHRDaGVj
a2luZ1Jlc3VsdDo6RXJyb3JHcmFtbWFyKTsKLSAgICByZXR1cm4gVGV4dENoZWNraW5nVHlwZUdy
YW1tYXI7Ci19Ci0KIHN0YXRpYyBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiB0b0NvcmVSZXN1
bHRzKGNvbnN0IFdlYlZlY3RvcjxXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQogewog
ICAgIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IGNvcmVSZXN1bHRzOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7ICsraSkgeyAKLSAgICAgICAgVGV4dENoZWNr
aW5nUmVzdWx0IGNvcmVSZXN1bHQ7Ci0gICAgICAgIGNvcmVSZXN1bHQudHlwZSA9IHRvQ29yZUNo
ZWNraW5nVHlwZShyZXN1bHRzW2ldLmVycm9yKTsKLSAgICAgICAgY29yZVJlc3VsdC5sb2NhdGlv
biA9IHJlc3VsdHNbaV0ucG9zaXRpb247Ci0gICAgICAgIGNvcmVSZXN1bHQubGVuZ3RoID0gcmVz
dWx0c1tpXS5sZW5ndGg7Ci0gICAgICAgIGNvcmVSZXN1bHRzLmFwcGVuZChjb3JlUmVzdWx0KTsK
LSAgICB9Ci0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kp
CisgICAgICAgIGNvcmVSZXN1bHRzLmFwcGVuZChyZXN1bHRzW2ldKTsKICAgICByZXR1cm4gY29y
ZVJlc3VsdHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDhlYzdmZDkxYjJhYTE3
ZjhhYjZhMTA3YjAyYjMyZjg4YTVjYTZkNzYuLjg4OWRlMjk0YmMwMjdlNGNhYzA2MjJhNmFjYTQx
MmUzYmU5NmY0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
KysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtODMsNiArODMsNyBAQCBf
Wk5LN1dlYkNvcmU4RG9jdW1lbnQ0cGFnZUV2OwogX1pOSzdXZWJDb3JlOERvY3VtZW50OHNldHRp
bmdzRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0dmlld0V2OwogX1pOSzdXZWJDb3JlOVRyZWVT
Y29wZTE0Z2V0RWxlbWVudEJ5SWRFUktOM1dURjEyQXRvbWljU3RyaW5nRTsKK19aTks3V2ViQ29y
ZTE0RG9jdW1lbnRNYXJrZXIxMWRlc2NyaXB0aW9uRXYKIF9aTjdXZWJDb3JlMTRTY3JvbGxhYmxl
QXJlYTI4c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0VSS05TXzhJbnRQb2ludEU7CiBfWk43
V2ViQ29yZTEwU2Nyb2xsVmlldzIzc2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRFYmI7CiBfWk43V2Vi
Q29yZThTZXR0aW5nczI0c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkRWI7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzI5NDBkYzgyODUzOTg5YjQy
MmE3YmI1NWFjNmUwNTM0YWZmOWI3OC4uZjBkM2ZjMmRmOGJjYjg4YzVlMWFmYjkzYjY2MDMwMDFi
NGEwYjA5MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAyLTA3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJlcGxhY2VtZW50IHRleHQgc2hvdWxkIGJlIGF2YWlsYWJs
ZSBmcm9tIHRoZSBtYXJrZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NzkzNAorCisgICAgICAgIE1hZGUgdGhlIG1vY2sgcmVxdWVzdENoZWNraW5n
T2ZUZXh0KCkgaW1wbGVtZW50YXRpb24gdG8gcmV0dXJuCisgICAgICAgIGEgcmVwbGFjZW1lbnQg
dGV4dCBmb3IgZWFjaCBtaXNzcGVsbGVkIHdvcmQgaWYgYXZhaWxhYmxlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmZpbmlzaExhc3RU
ZXh0Q2hlY2spOgorCiAyMDEyLTAyLTA3ICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5j
b20+CiAKICAgICAgICAgQWRkIENocmlzIFJvZ2VycyB0byByZXZpZXdlcnMgc2VjdGlvbgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDMyYjIw
ZGJmMDhmZjFmMzhlZjljZjM3M2JlZGRlMjk1MWRkZGU0ZjYuLmJlZmEzYjcxODAyNGFjMTVhODI3
YzQ5ZjU4ZmFlMDZmNTUwYjY2M2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTQ3MSw3ICs0NzEsMTAgQEAgdm9pZCBXZWJWaWV3SG9zdDo6
ZmluaXNoTGFzdFRleHRDaGVjaygpCiAgICAgICAgIG1fc3BlbGxjaGVjay5zcGVsbENoZWNrV29y
ZChXZWJTdHJpbmcodGV4dC5jaGFyYWN0ZXJzKCksIHRleHQubGVuZ3RoKCkpLCAmbWlzc3BlbGxl
ZFBvc2l0aW9uLCAmbWlzc3BlbGxlZExlbmd0aCk7CiAgICAgICAgIGlmICghbWlzc3BlbGxlZExl
bmd0aCkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICByZXN1bHRzLmFwcGVuZChXZWJUZXh0
Q2hlY2tpbmdSZXN1bHQoV2ViVGV4dENoZWNraW5nUmVzdWx0OjpFcnJvclNwZWxsaW5nLCBvZmZz
ZXQgKyBtaXNzcGVsbGVkUG9zaXRpb24sIG1pc3NwZWxsZWRMZW5ndGgpKTsKKyAgICAgICAgVmVj
dG9yPFdlYlN0cmluZz4gc3VnZ2VzdGlvbnM7CisgICAgICAgIG1fc3BlbGxjaGVjay5maWxsU3Vn
Z2VzdGlvbkxpc3QoV2ViU3RyaW5nKHRleHQuY2hhcmFjdGVycygpICsgbWlzc3BlbGxlZFBvc2l0
aW9uLCBtaXNzcGVsbGVkTGVuZ3RoKSwgJnN1Z2dlc3Rpb25zKTsKKyAgICAgICAgcmVzdWx0cy5h
cHBlbmQoV2ViVGV4dENoZWNraW5nUmVzdWx0KFdlYlRleHRDaGVja2luZ1R5cGVTcGVsbGluZywg
b2Zmc2V0ICsgbWlzc3BlbGxlZFBvc2l0aW9uLCBtaXNzcGVsbGVkTGVuZ3RoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnMuaXNFbXB0eSgp
ID8gV2ViU3RyaW5nKCkgOiBzdWdnZXN0aW9uc1swXSkpOwogICAgICAgICB0ZXh0ID0gdGV4dC5z
dWJzdHJpbmcobWlzc3BlbGxlZFBvc2l0aW9uICsgbWlzc3BlbGxlZExlbmd0aCk7CiAgICAgICAg
IG9mZnNldCArPSBtaXNzcGVsbGVkUG9zaXRpb24gKyBtaXNzcGVsbGVkTGVuZ3RoOwogICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNGU2ZDhmMDA1MjJmNDkyMWUxYzZiZDE4ZDBkZjk1OTNhYzM0MGZiLi42ZWUzNWNh
M2JmNGRkOGU2YjA2YTY3ODI5Mjk4ZDExMWY2ZGY4NDFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMDItMDcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmVwbGFjZW1lbnQgdGV4dCBzaG91bGQgYmUgYXZhaWxhYmxlIGZyb20gdGhlIG1hcmtlci4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTM0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlci1kZXNjcmlwdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9u
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTItMDItMDcgIEp1bGllbiBDaGFm
ZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJk
ZW5pbmcgYWZ0ZXIgcjEwNjk4Mi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NzBiNGM5NDM4ZWIwNmExM2Y4MzkyZWQ3ODk2ZTIzMTFlODI2OTgz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1tYXJrZXItZGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoZSBz
cGVsbGNoZWNrZXIgc2hvdWxkIHN0b3JlIHJlcGxhY2VtZW50IHRleHQgaW4gZWFjaCBtYXJrZXIu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hcmtlZFRleHQgaXMgIndl
bGxjb21lIgorUEFTUyBtYXJrZXJEZXNjcmlwdGlvbiBpcyAid2VsY29tZSIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQord2VsbGNvbWUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlci1kZXNjcmlw
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXIt
ZGVzY3JpcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODg3NTUwNmNmMzdiYmNhYTdkYWRmNjQwY2Y1
ZTdlMmExNTMxZjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24uaHRtbApAQCAtMCwwICsxLDY4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJkZXN0aW5hdGlvbiIgY29udGVudEVkaXRh
YmxlPjwvZGl2PgorPC9kaXY+CisKKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2luZ0Vu
YWJsZWQoZmFsc2UpOworICAgIGZpbmlzaEpTVGVzdCgpCit9CisKK2Z1bmN0aW9uIHZlcmlmeShu
cmV0cnkpCit7CisgICAgaWYgKCFucmV0cnkpIHsKKyAgICAgICBkb25lKCk7CisgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHZhciB0ZXh0cyA9IGRlc3RpbmF0aW9uLmNoaWxkTm9kZXM7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0cy5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAo
aW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZSh0ZXh0c1tpXSwgInNwZWxsaW5nIikpIHsgCisg
ICAgICAgICAgICBtYXJrZWRUZXh0ID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSh0ZXh0
c1tpXSwgInNwZWxsaW5nIiwgMCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIG1hcmtlckRlc2Ny
aXB0aW9uID0gaW50ZXJuYWxzLm1hcmtlckRlc2NyaXB0aW9uRm9yTm9kZSh0ZXh0c1tpXSwgInNw
ZWxsaW5nIiwgMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChtYXJrZWRUZXh0KSB7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWFya2Vk
VGV4dCIsICJ3ZWxsY29tZSIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1hcmtl
ckRlc2NyaXB0aW9uIiwgIndlbGNvbWUiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKworICAg
IC8vIFdhaXQgdW50aWwgdGhlIGFzeW5jIHNwZWxsY2hlY2tpbmcgaXMgZG9uZS4KKyAgICB3aW5k
b3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsgdmVyaWZ5KG5yZXRyeS0xKTsgfSwgMCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0
cnVlKTsKKworICAgIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgdmFyIGRl
c3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc3RpbmF0aW9uIik7CisgICAg
ZGVzdGluYXRpb24uZm9jdXMoKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0SFRN
TCIsIGZhbHNlLCAid2VsbGNvbWUiKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0
VGV4dCIsIGZhbHNlLCAiLiIpOworCisgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IHZlcmlmeSgxMCk7IH0sIDApOworfQorCitkZXNjcmlwdGlvbigiVGhlIHNwZWxsY2hlY2tlciBz
aG91bGQgc3RvcmUgcmVwbGFjZW1lbnQgdGV4dCBpbiBlYWNoIG1hcmtlci4iKTsKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIHRlc3QoKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggNTE2MDQ1Nzg2ZGY5NjA1NWY3
NzAzN2M1ZmQyOGMzZGE3MzQ3YTRjMS4uOGEzN2U1ZmQ1YzhhOGExZmEyYTAxNjEyYjdhZTFhM2Jk
MDE1YmI4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTEyNCw2ICsxMjQsOSBAQCBl
ZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtdGV4dC0wMDguaHRtbAogZWRpdGluZy91bmRvL3VuZG8t
c21hcnQtZGVsZXRlLXJldmVyc2VkLXNlbGVjdGlvbi5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi9k
aXJlY3Rpb25hbGl0eS1hZnRlci11bmRvLXJlcGxhY2UuaHRtbAogCisjIEVkaXRvckNsaWVudDo6
Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoKSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0bWwKKwogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MzAKIGVkaXRpbmcvc2VsZWN0aW9uL2VkaXRhYmxl
LWh0bWwtZWxlbWVudC5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggOTg2NTcz
MGM0MWEwZTQ0MjFmMDFmNjVlNDY5NTlhYjk2MzYzMDgwZC4uMjJkYTczZTkwYzg5MGRhMjk3NjIx
NGJmNzQyYzQwYWFhYWQ1ZjRjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTM0Miw2
ICszNDIsMTAgQEAgZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtaW1hZ2Ut
cG5nLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWRyYWctZHJv
cC1maWxlLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWRyYWct
ZHJvcC1zdHJpbmcuaHRtbAogCisjIFJlcGxhY2VtZW50IHRleHQgZm9yIG1pc3NwZWxsaW5nIGlz
IG5vdCBnaXZlbiBmcm9tIE5TU3BlbGxDaGVja2VyLgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2Vy
LWRlc2NyaXB0aW9uLmh0bWwKKwogIyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRy
YW5zZmVyIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCiBlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJv
YXJkLWN1c3RvbURhdGEuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGFiMTQwMTJmM2ZkZmRjODYxZjJiM2IyZDU2NDQyZjFk
YmYyOGFhZGEuLjA1ZDg4NmNlMzY5MzRlOTlmYjdiZjAzY2FjNTE0ZmQxYjg4Y2NiNGEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtNzM0LDYgKzczNCw4IEBAIGVkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcXVldWUu
aHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXNlcXVlbmNlbnVtLmh0bWwKIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sCisjIEVkaXRvckNsaWVu
dDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoKSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0bWwKIAogIyBbUXRdW0dUS10gZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwgZmFpbHMKICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMDAzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVk
CmluZGV4IGZkMTAwMGE2MDg5YzczMTAyMDg0MTVkOTUyNjhmOTU1YWUyNzdhNjYuLjI1NGMzMTNi
MTNmNzMwNTc2NDVmNGVjMjU5YjRlODgxOGRmNGVmZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCkBAIC0xMDU3LDYgKzEwNTcsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAog
CiAjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVt
ZW50ZWQKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisjIFJlcGxhY2Vt
ZW50IHRleHQgZm9yIG1pc3NwZWxsaW5nIGlzIG5vdCBnaXZlbi4KKyMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTM0CitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5n
LW1hcmtlci1kZXNjcmlwdGlvbi5odG1sCiAKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxl
ZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK
aW5kZXggNjYxZjRjNzVhNTNjYjAxZWIxZDcxZWVjZGZmNjgzZDFiOWRlZmQ2MC4uZGI4NDA5NzY1
MDA5NzlmYTdiMDFkNzdiNGY0ZWY1YjA4MmEwOGVjNyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisr
KyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAyLTA3ICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJlcGxhY2VtZW50IHRleHQgc2hvdWxk
IGJlIGF2YWlsYWJsZSBmcm9tIHRoZSBtYXJrZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjog
QWRkZWQgYW4gZXhwb3J0aW5nIHN5bWJvbC4KKwogMjAxMi0wMi0wNyAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEYXNoYm9hcmQgb24gcGVyZi1vLW1hdGljIHNo
b3VsZCBiZSBzb3J0ZWQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125992</attachid>
            <date>2012-02-07 20:39:25 -0800</date>
            <delta_ts>2012-02-08 20:24:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77934-20120208133924.patch</filename>
            <type>text/plain</type>
            <size>22997</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAwMzYxNjY4OWY5OWUx
MWY1MWNkZTY5MTkwMTcyOWNjOWY2YzI5ZS4uM2QwYTg3YzQxOGZhODRlNmYxMjZhMjJmODEzNDhl
Y2ZiNTcwNzg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAyLTA3ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJlcGxhY2VtZW50IHRl
eHQgc2hvdWxkIGJlIGF2YWlsYWJsZSBmcm9tIHRoZSBtYXJrZXIuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzkzNAorCisgICAgICAgIC0gUGFzc2Vk
IHRoZSByZXBsYWNlbWVudCB0ZXh0IHRvIGFkZE1hcmtlcigpIGZvciBmb3IgbWlzc3BlbGxpbmcg
bWFya2Vycy4KKyAgICAgICAgICBOb3RlIHRoYXQgdGhpcyBpcyBkb25lIG9ubHkgZm9yIHRoZSB1
bmlmaWVkIGNoZWNrZXIgcGF0aCBiZWNhdXNlIGxlZ2FjeQorICAgICAgICAgIFRleHRDaGVja2Vy
Q2xpZW50IEFQSSBkb2Vzbid0IHByb3ZpZGUgc3VjaCBhIHJlcGxhY2VtZW50LgorICAgICAgICAt
IEFkZGVkIGFuIEludGVybmFscyBBUEkgdG8gcmV0cmlldmUgYSBkZXNjcmlwdGlvbiB0ZXh0IG9u
IGEgbWFya2VyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6bWFya2VyQXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
Om1hcmtlckRlc2NyaXB0aW9uRm9yTm9kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDItMDcgIFhpbmduYW4gV2FuZyAgPHhpbmdu
YW4ud2FuZ0BpbnRlbC5jb20+CiAKICAgICAgICAgRW5hYmxlIElQUCBmb3IgRkZURnJhbWUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOGNiOGM3NmE4YzEyODlhOTViZmZlZWI0ZjRlZDVk
ZjUwNzQ0N2E4ZS4uYmQxYzkyMGQ3OGJjMTNhYmRjNTA4NjM5OWI0OGVjNTkxYWJiZmRmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0wNyAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXBsYWNlbWVudCB0
ZXh0IHNob3VsZCBiZSBhdmFpbGFibGUgZnJvbSB0aGUgbWFya2VyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzQKKworICAgICAgICBkaWRGaW5p
c2hDaGVja2luZ1RleHQoKSBhY2NpZGVudGFsbHkgZHJvcHBlZCB0aGUgZGVzY3JpcHRpb24gdGV4
dAorICAgICAgICBnaXZlbiBmcm9tIHRoZSBiYWNrZW5kLiBGaXhlZCB0byBjb3B5IGl0IG9uIHRo
ZSBBUEktdG8tQ29yZQorICAgICAgICBjb252ZXJ0aW9uLiBUaGUgdGVzdCB3b24ndCB3b3JrIHdp
dGhvdXQgdGhpcyBmaXguCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzcmMvV2ViVGV4dENoZWNraW5nQ29tcGxldGlvbkltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0Ojp0b0NvcmVSZXN1bHRzKToKKwogMjAxMi0wMi0wNyAgRGF2aWQgUmV2ZW1hbiAg
PHJldmVtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUkVHUkVTU0lPTihy
MTAxODU0KTogQ2F1c2luZyBsYXJnZSBhbW91bnRzIG9mIHVubmVjZXNzYXJ5IHJlcGFpbnRpbmcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKaW5kZXggZDNlNDYzYTcwM2YxNTlhOWE2ZmUxYzY3YWY5MjBjMWM1NWZh
YWI3YS4uODM0YTJkZGI3ZjUwYTM1NmE4NjMwNTRmNmE1YjI5Nzg4NjUwMDg4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTA3ICBNT1JJVEEgSGFqaW1lICA8bW9y
cml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJlcGxhY2VtZW50IHRleHQgc2hvdWxkIGJlIGF2
YWlsYWJsZSBmcm9tIHRoZSBtYXJrZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NzkzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViS2l0LnZjcHJvai9XZWJLaXRfQ2Fpcm8uZGVmOgorICAgICAg
ICAqIFdlYktpdC52Y3Byb2ovV2ViS2l0X0NhaXJvX2RlYnVnLmRlZjoKKwogMjAxMi0wMi0wMiAg
Sm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgc2hvd24gbm90aWZp
Y2F0aW9ucyB3aGVuIGNvbnRleHQgaXMgbm8gbG9uZ2VyIGFjdGl2ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZh
MWFiMTVkNTUwZjNhMTIxMTdiYmEzMTBiYzI2MDQwOWY1MDgzNjcuLmY1NWYzZmExYTZiZGZhM2Ix
MTRhMjYyMmNjM2M5Y2EyOGMxNzNiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0wMi0wNyAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXBsYWNlbWVudCB0ZXh0IHNob3VsZCBiZSBhdmFpbGFibGUgZnJvbSB0aGUgbWFya2VyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi9XZWJLaXQy
LmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDItMDcgIEd5
dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbQ01BS0Vd
IFVzZSAqYmluKiBhbmQgKmxpYiogZGlyZWN0b3JpZXMgZm9yIGV4ZWN1dGFibGUgYW5kIGxpYnJh
cmllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZWMyN2FlYzRmNjBiNzA0MDI3ZDkzZmRhYTlh
NGMyM2Y0MTBiYjdhMS4uZDgzOWM1M2Q5Y2NmNTg5MGUyMDJjNjVmMzhhNjAyNTUyZmQ3MjBhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEyNDYsNiArMTI0Niw3IEBAIF9fWk5LN1dlYkNvcmUx
NERvY3VtZW50TG9hZGVyMTlvcmlnaW5hbFJlcXVlc3RDb3B5RXYKIF9fWk5LN1dlYkNvcmUxNERv
Y3VtZW50TG9hZGVyMjFpc0xvYWRpbmdNYWluUmVzb3VyY2VFdgogX19aTks3V2ViQ29yZTE0RG9j
dW1lbnRMb2FkZXIyOHVybEZvckhpc3RvcnlSZWZsZWN0c0ZhaWx1cmVFdgogX19aTks3V2ViQ29y
ZTE0RG9jdW1lbnRMb2FkZXIzdXJsRXYKK19fWk5LN1dlYkNvcmUxNERvY3VtZW50TWFya2VyMTFk
ZXNjcmlwdGlvbkV2CiBfX1pOSzdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjExY3VycmVudEZvcm1F
dgogX19aTks3V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb24xNWNvcHlUeXBpbmdTdHlsZUV2CiBfX1pO
SzdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjE3aXNJblBhc3N3b3JkRmllbGRFdgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCmluZGV4IDdmZTk1ZjcyYTdkY2IyZDJiOTYxMWQzM2ViZDJlZjlkYmU3
MTg4OWMuLjk3YjE1MzM2NTEyMzQwMWEzZDAxMzdiYjAyOTYxZjY5M2Y1NjhmNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTIwOTAsNyArMjA5MCw3IEBAIHZvaWQgRWRpdG9yOjpt
YXJrQW5kUmVwbGFjZUZvcihQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0LCBj
b25zdCBWZWN0CiAgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IG1pc3NwZWxsaW5nUmFuZ2UgPSBw
YXJhZ3JhcGguc3VicmFuZ2UocmVzdWx0TG9jYXRpb24sIHJlc3VsdExlbmd0aCk7CiAgICAgICAg
ICAgICBpZiAoIW1fc3BlbGxpbmdDb3JyZWN0b3ItPmlzU3BlbGxpbmdNYXJrZXJBbGxvd2VkKG1p
c3NwZWxsaW5nUmFuZ2UpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
bWlzc3BlbGxpbmdSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+ZG9jdW1lbnQoKS0+bWFya2Vycygp
LT5hZGRNYXJrZXIobWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlNwZWxs
aW5nKTsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmRv
Y3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIERv
Y3VtZW50TWFya2VyOjpTcGVsbGluZywgcmVzdWx0LT5yZXBsYWNlbWVudCk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoc2hvdWxkTWFya0dyYW1tYXIgJiYgcmVzdWx0LT50eXBlID09IFRleHRDaGVja2lu
Z1R5cGVHcmFtbWFyICYmIHBhcmFncmFwaC5jaGVja2luZ1JhbmdlQ292ZXJzKHJlc3VsdExvY2F0
aW9uLCByZXN1bHRMZW5ndGgpKSB7CiAgICAgICAgICAgICBBU1NFUlQocmVzdWx0TGVuZ3RoID4g
MCAmJiByZXN1bHRMb2NhdGlvbiA+PSAwKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9
IDA7IGogPCByZXN1bHQtPmRldGFpbHMuc2l6ZSgpOyBqKyspIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCAxMjEyZjhkNzg4MGExYTc0MDBjMTE4ODJiYzgwZWE1Y2Q3MDJj
ZGEyLi4wNmUzNGNkM2NiYmMwZGUxNzhiMTIxN2ZhNDAzODk5YjcyMDk3YmY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgdW5zaWduZWQgSW50
ZXJuYWxzOjptYXJrZXJDb3VudEZvck5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJr
ZXJUeXBlLCBFeGMKICAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJr
ZXJzRm9yKG5vZGUsIG1hcmtlclR5cGVzKS5zaXplKCk7CiB9CiAKLVBhc3NSZWZQdHI8UmFuZ2U+
IEludGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYg
bWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorRG9jdW1lbnRN
YXJrZXIqIEludGVybmFsczo6bWFya2VyQXQoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJr
ZXJUeXBlLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFu
b2RlKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwpAQCAtMjk3LDcgKzI5Nywy
MyBAQCBQYXNzUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2Rl
KiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlcgogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+
IG1hcmtlcnMgPSBub2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSwg
bWFya2VyVHlwZXMpOwogICAgIGlmIChtYXJrZXJzLnNpemUoKSA8PSBpbmRleCkKICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9k
ZSwgbWFya2Vyc1tpbmRleF0tPnN0YXJ0T2Zmc2V0KCksIG5vZGUsIG1hcmtlcnNbaW5kZXhdLT5l
bmRPZmZzZXQoKSk7CisgICAgcmV0dXJuIG1hcmtlcnNbaW5kZXhdOworfQorCitQYXNzUmVmUHRy
PFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBT
dHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBEb2N1bWVudE1hcmtlciogbWFya2VyID0gbWFya2VyQXQobm9kZSwgbWFya2VyVHlwZSwg
aW5kZXgsIGVjKTsKKyAgICBpZiAoIW1hcmtlcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSwgbWFya2VyLT5zdGFydE9m
ZnNldCgpLCBub2RlLCBtYXJrZXItPmVuZE9mZnNldCgpKTsKK30KKworU3RyaW5nIEludGVybmFs
czo6bWFya2VyRGVzY3JpcHRpb25Gb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERvY3Vt
ZW50TWFya2VyKiBtYXJrZXIgPSBtYXJrZXJBdChub2RlLCBtYXJrZXJUeXBlLCBpbmRleCwgZWMp
OworICAgIGlmICghbWFya2VyKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJu
IG1hcmtlci0+ZGVzY3JpcHRpb24oKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNldFNjcm9sbFZp
ZXdQb3NpdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIGxvbmcgeCwgbG9uZyB5LCBFeGNlcHRpb25D
b2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDU4ZDc1ZDY0YmM0YWRh
YTNjMjY3YmE1MmY3NWQ2ZTQ0MmJiZjdhZjAuLjY3MTE2NDQ1M2RhZjg2MDcwYzNkMzE1Y2NjYWI4
NzM0ZmQ5OGQ4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMzYsNiArMzYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENsaWVudFJlY3Q7CiBjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIERvY3VtZW50TWFya2VyOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEludGVy
bmFsU2V0dGluZ3M7CiBjbGFzcyBOb2RlOwpAQCAtODAsNiArODEsNyBAQCBwdWJsaWM6CiAKICAg
ICB1bnNpZ25lZCBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSosIGNvbnN0IFN0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPFJhbmdlPiBtYXJrZXJSYW5nZUZvck5vZGUoTm9k
ZSosIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgU3RyaW5n
IG1hcmtlckRlc2NyaXB0aW9uRm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZvaWQgc2V0U2Nyb2xsVmlld1Bvc2l0aW9uKERvY3Vt
ZW50KiwgbG9uZyB4LCBsb25nIHksIEV4Y2VwdGlvbkNvZGUmKTsKIApAQCAtMTEzLDYgKzExNSw3
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQq
KTsKKyAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQXQoTm9kZSosIGNvbnN0IFN0cmluZyYsIHVu
c2lnbmVkLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBSZWZQdHI8SW50ZXJuYWxTZXR0aW5ncz4g
bV9zZXR0aW5nczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggNTRm
M2Q1NWFiZjgzYjY3MmY1ZTQzNjg0N2Q3NjI5MTA5Y2Y2MjczZS4uOWJmMDU3NTFkOWI2YTJmNGE4
MWYwNzA5OWM5M2M3YTZkM2E4YTA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bApAQCAtNTMsNiArNTMsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgQ2xpZW50UmVjdCBi
b3VuZGluZ0JveChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
ICAgICB1bnNpZ25lZCBsb25nIG1hcmtlckNvdW50Rm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIERP
TVN0cmluZyBtYXJrZXJUeXBlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgUmFuZ2Ug
bWFya2VyUmFuZ2VGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3RyaW5nIG1hcmtlclR5cGUs
IGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBE
T01TdHJpbmcgbWFya2VyRGVzY3JpcHRpb25Gb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3Ry
aW5nIG1hcmtlclR5cGUsIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRp
b24pOwogCiAgICAgICAgIHZvaWQgc2V0U2Nyb2xsVmlld1Bvc2l0aW9uKGluIERvY3VtZW50IGRv
Y3VtZW50LCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlRleHRDaGVja2luZ0NvbXBs
ZXRpb25JbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlRleHRDaGVja2lu
Z0NvbXBsZXRpb25JbXBsLmNwcAppbmRleCAwZjU5YTkzZDBlZjlmMGIzMjI2N2NlZjdhNDc0YjY0
M2NhMWYwZGIzLi4wZDZlNGRiNzg4NDM5OWVjY2I4MzU5ZmQzZTIyZGRkMGM5Zjg3MTkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJUZXh0Q2hlY2tpbmdDb21wbGV0
aW9uSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVGV4dENoZWNr
aW5nQ29tcGxldGlvbkltcGwuY3BwCkBAIC00MSwyNSArNDEsMTEgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgVGV4dENoZWNraW5nVHlw
ZSB0b0NvcmVDaGVja2luZ1R5cGUoV2ViVGV4dENoZWNraW5nUmVzdWx0OjpFcnJvciBlcnJvcikK
LXsKLSAgICBpZiAoZXJyb3IgPT0gV2ViVGV4dENoZWNraW5nUmVzdWx0OjpFcnJvclNwZWxsaW5n
KQotICAgICAgICByZXR1cm4gVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOwotICAgIEFTU0VSVChl
cnJvciA9PSBXZWJUZXh0Q2hlY2tpbmdSZXN1bHQ6OkVycm9yR3JhbW1hcik7Ci0gICAgcmV0dXJu
IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyOwotfQotCiBzdGF0aWMgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4gdG9Db3JlUmVzdWx0cyhjb25zdCBXZWJWZWN0b3I8V2ViVGV4dENoZWNraW5nUmVz
dWx0PiYgcmVzdWx0cykKIHsKICAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBjb3JlUmVz
dWx0czsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kpIHsg
Ci0gICAgICAgIFRleHRDaGVja2luZ1Jlc3VsdCBjb3JlUmVzdWx0OwotICAgICAgICBjb3JlUmVz
dWx0LnR5cGUgPSB0b0NvcmVDaGVja2luZ1R5cGUocmVzdWx0c1tpXS5lcnJvcik7Ci0gICAgICAg
IGNvcmVSZXN1bHQubG9jYXRpb24gPSByZXN1bHRzW2ldLnBvc2l0aW9uOwotICAgICAgICBjb3Jl
UmVzdWx0Lmxlbmd0aCA9IHJlc3VsdHNbaV0ubGVuZ3RoOwotICAgICAgICBjb3JlUmVzdWx0cy5h
cHBlbmQoY29yZVJlc3VsdCk7Ci0gICAgfQotCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBy
ZXN1bHRzLnNpemUoKTsgKytpKQorICAgICAgICBjb3JlUmVzdWx0cy5hcHBlbmQocmVzdWx0c1tp
XSk7CiAgICAgcmV0dXJuIGNvcmVSZXN1bHRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdF9DYWlyby5kZWYgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJLaXQudmNwcm9qL1dlYktpdF9DYWlyby5kZWYKaW5kZXggOGQzNTI4MTM5ZjY5ZTMyN2Vk
NGZmY2NmMGFmMjcwZjVhZDdhNGE0MS4uODliMGEyYTYxYjgwMmU5Yzg5YWQ4NDVmMDQ5YmI2MTUx
ZmJmODUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJL
aXRfQ2Fpcm8uZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0
X0NhaXJvLmRlZgpAQCAtMTEwLDYgKzExMCw3IEBAIEVYUE9SVFMKICAgICAgICAgPz8wQ2xpZW50
UmVjdEBXZWJDb3JlQEBBQUVAQUJWSW50UmVjdEAxQEBaCiAgICAgICAgID8/MENsaWVudFJlY3RA
V2ViQ29yZUBAQUFFQFhaCiAgICAgICAgID9hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEBSZW5kZXJP
YmplY3RAV2ViQ29yZUBAUUFFP0FWSW50UmVjdEAyQF9OQFoKKwk/ZGVzY3JpcHRpb25ARG9jdW1l
bnRNYXJrZXJAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP2Zhc3RNYWxs
b2NAV1RGQEBZQVBBWElAWgogICAgICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBa
CiAgICAgICAgID9mYXN0RnJlZUBXVEZAQFlBWFBBWEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdF9DYWlyb19kZWJ1Zy5kZWYgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdF9DYWlyb19kZWJ1Zy5kZWYKaW5kZXggNTUyMjY3
MmI0MmE3NzAzNWVkYjI3MjdjMzRiYjRkMWMwODA2YmQyZi4uMWIxYjcyZGY0OTBmYWNlMGNlOGI0
Yzk0ZWYyNTY2YjJlMDg2NWFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0
LnZjcHJvai9XZWJLaXRfQ2Fpcm9fZGVidWcuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YktpdC52Y3Byb2ovV2ViS2l0X0NhaXJvX2RlYnVnLmRlZgpAQCAtMTEwLDYgKzExMCw3IEBAIEVY
UE9SVFMKICAgICAgICAgPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBQUVAQUJWSW50UmVjdEAxQEBa
CiAgICAgICAgID8/MENsaWVudFJlY3RAV2ViQ29yZUBAQUFFQFhaCiAgICAgICAgID9hYnNvbHV0
ZUJvdW5kaW5nQm94UmVjdEBSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUFFP0FWSW50UmVjdEAyQF9O
QFoKKwk/ZGVzY3JpcHRpb25ARG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdU
RkBAWFoKICAgICAgICAgP2Zhc3RNYWxsb2NAV1RGQEBZQVBBWElAWgogICAgICAgICA/ZmFzdFpl
cm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBaCiAgICAgICAgID9mYXN0RnJlZUBXVEZAQFlBWFBBWEBa
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggNTQ3ODVjNDIxNDc4NTZhYzZhMTFjYTc4NzhiNjEw
MmRjODg4MzZlOC4uNzY4MzBlMDFjOWRjNDM2MTU1ZjIyY2RjZmI1YjYzODU4MGE5YWYzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTQ2LDYgKzE0Niw3IEBAIEVYUE9SVFMKICAgICAgICAg
Pz8wRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFFBRUBQQVZGcmFtZUAxQEBaCiAg
ICAgICAgID9hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEBSZW5kZXJPYmplY3RAV2ViQ29yZUBAUUJF
P0FWSW50UmVjdEAyQF9OQFoKICAgICAgICAgP2Fic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3Jp
bmdUcmFuc2Zvcm1zQFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkU/QVZJbnRSZWN0QDJAWFoKKwk/
ZGVzY3JpcHRpb25ARG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoK
ICAgICAgICAgP2FkZEBBdG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5n
SW1wbEBXVEZAQEAyQFBCREBaCiAgICAgICAgID9hZGRAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/
JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMkBQQkVAWgogICAgICAgICA/YWRkU2xvd0Nh
c2VAQXRvbWljU3RyaW5nQFdURkBAQ0E/QVY/JFBhc3NSZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBA
MkBQQVZTdHJpbmdJbXBsQDJAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRl
eCBmYTVjYmY3YzViNjY4YTI2MWM0ZTEzOTQwZjAyNzI4MTc3ZWZkNWY1Li4zYTkyN2MyN2NlZTY5
ZmNhYzJhNDY2ODZkODcxNDBkMjEzYzMyMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxp
dGUuZGVmCkBAIC0xNDAsNiArMTQwLDcgQEAgRVhQT1JUUwogICAgICAgICA/PzBGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXJAV2ViQ29yZUBAUUFFQFBBVkZyYW1lQDFAQFoKICAgICAgICAgP2Fic29s
dXRlQm91bmRpbmdCb3hSZWN0QFJlbmRlck9iamVjdEBXZWJDb3JlQEBRQkU/QVZJbnRSZWN0QDJA
X05AWgogICAgICAgICA/YWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXNA
UmVuZGVyT2JqZWN0QFdlYkNvcmVAQFFCRT9BVkludFJlY3RAMkBYWgorCT9kZXNjcmlwdGlvbkBE
b2N1bWVudE1hcmtlckBXZWJDb3JlQEBRQkVBQlZTdHJpbmdAV1RGQEBYWgogICAgICAgICA/YWRk
QEF0b21pY1N0cmluZ0BXVEZAQENBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDJA
UEJEQFoKICAgICAgICAgP2FkZEBBdG9taWNTdHJpbmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBW
U3RyaW5nSW1wbEBXVEZAQEAyQFBCRUBaCiAgICAgICAgID9hZGRTbG93Q2FzZUBBdG9taWNTdHJp
bmdAV1RGQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAyQFBBVlN0cmluZ0lt
cGxAMkBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggOGVjN2ZkOTFiMmFhMTdmOGFiNmEx
MDdiMDJiMzJmODhhNWNhNmQ3Ni4uZjBjZGMxYTBjNTRmNWZkZjA5Y2MzNGEyODA4YzEyN2VmZjZj
YWQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9T
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC04Myw2ICs4Myw3IEBAIF9aTks3V2Vi
Q29yZThEb2N1bWVudDRwYWdlRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ4c2V0dGluZ3NFdjsK
IF9aTks3V2ViQ29yZThEb2N1bWVudDR2aWV3RXY7CiBfWk5LN1dlYkNvcmU5VHJlZVNjb3BlMTRn
ZXRFbGVtZW50QnlJZEVSS04zV1RGMTJBdG9taWNTdHJpbmdFOworX1pOSzdXZWJDb3JlMTREb2N1
bWVudE1hcmtlcjExZGVzY3JpcHRpb25FdjsKIF9aTjdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTI4
c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0VSS05TXzhJbnRQb2ludEU7CiBfWk43V2ViQ29y
ZTEwU2Nyb2xsVmlldzIzc2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRFYmI7CiBfWk43V2ViQ29yZThT
ZXR0aW5nczI0c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkRWI7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDk2M2Y2OGFkOWRiNDMzY2RmYzEzNDgy
NWY3ZDg5NmEzYzIwM2I4MS4uODE1ZGViMTRjNDg1N2YwNjhmOThjMWU1N2M5ZDdlNzE2ZjZhNGU0
YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEyLTAyLTA3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUu
Y29tPgorCisgICAgICAgIFJlcGxhY2VtZW50IHRleHQgc2hvdWxkIGJlIGF2YWlsYWJsZSBmcm9t
IHRoZSBtYXJrZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzkzNAorCisgICAgICAgIE1hZGUgdGhlIG1vY2sgcmVxdWVzdENoZWNraW5nT2ZUZXh0
KCkgaW1wbGVtZW50YXRpb24gdG8gcmV0dXJuCisgICAgICAgIGEgcmVwbGFjZW1lbnQgdGV4dCBm
b3IgZWFjaCBtaXNzcGVsbGVkIHdvcmQgaWYgYXZhaWxhYmxlLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmZpbmlzaExhc3RUZXh0Q2hl
Y2spOgorCiAyMDEyLTAyLTA3ICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIGFkZCBvcHRpb24gZm9yIDJkIGNhbnZhcyBkZWZlcmVkIHJl
bmRlcmluZyB0byBEdW1wUmVuZGVyVHJlZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDMyYjIwZGJmMDhmZjFmMzhlZjljZjM3M2JlZGRlMjk1
MWRkZGU0ZjYuLmJlZmEzYjcxODAyNGFjMTVhODI3YzQ5ZjU4ZmFlMDZmNTUwYjY2M2UgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTQ3MSw3
ICs0NzEsMTAgQEAgdm9pZCBXZWJWaWV3SG9zdDo6ZmluaXNoTGFzdFRleHRDaGVjaygpCiAgICAg
ICAgIG1fc3BlbGxjaGVjay5zcGVsbENoZWNrV29yZChXZWJTdHJpbmcodGV4dC5jaGFyYWN0ZXJz
KCksIHRleHQubGVuZ3RoKCkpLCAmbWlzc3BlbGxlZFBvc2l0aW9uLCAmbWlzc3BlbGxlZExlbmd0
aCk7CiAgICAgICAgIGlmICghbWlzc3BlbGxlZExlbmd0aCkKICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICByZXN1bHRzLmFwcGVuZChXZWJUZXh0Q2hlY2tpbmdSZXN1bHQoV2ViVGV4dENoZWNr
aW5nUmVzdWx0OjpFcnJvclNwZWxsaW5nLCBvZmZzZXQgKyBtaXNzcGVsbGVkUG9zaXRpb24sIG1p
c3NwZWxsZWRMZW5ndGgpKTsKKyAgICAgICAgVmVjdG9yPFdlYlN0cmluZz4gc3VnZ2VzdGlvbnM7
CisgICAgICAgIG1fc3BlbGxjaGVjay5maWxsU3VnZ2VzdGlvbkxpc3QoV2ViU3RyaW5nKHRleHQu
Y2hhcmFjdGVycygpICsgbWlzc3BlbGxlZFBvc2l0aW9uLCBtaXNzcGVsbGVkTGVuZ3RoKSwgJnN1
Z2dlc3Rpb25zKTsKKyAgICAgICAgcmVzdWx0cy5hcHBlbmQoV2ViVGV4dENoZWNraW5nUmVzdWx0
KFdlYlRleHRDaGVja2luZ1R5cGVTcGVsbGluZywgb2Zmc2V0ICsgbWlzc3BlbGxlZFBvc2l0aW9u
LCBtaXNzcGVsbGVkTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3VnZ2VzdGlvbnMuaXNFbXB0eSgpID8gV2ViU3RyaW5nKCkgOiBzdWdnZXN0aW9u
c1swXSkpOwogICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcobWlzc3BlbGxlZFBvc2l0aW9u
ICsgbWlzc3BlbGxlZExlbmd0aCk7CiAgICAgICAgIG9mZnNldCArPSBtaXNzcGVsbGVkUG9zaXRp
b24gKyBtaXNzcGVsbGVkTGVuZ3RoOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5OGUwMmZlZDhmNzFjNjY0MzAz
NWRkNWU2ZTc3NDQzMjY3NjNhZmE0Li4xNDJlOTIwNGQ5MDUwMGMwYWM5YzM4Y2E2NDUwODZiYTMy
MTQzYmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDItMDcgIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZW1lbnQgdGV4dCBzaG91bGQg
YmUgYXZhaWxhYmxlIGZyb20gdGhlIG1hcmtlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlci1k
ZXNjcmlwdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBw
ZWQ6CisKIDIwMTItMDItMDcgIENocmlzIFBhbG1lciAgPHBhbG1lckBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJlc29sdmUgY3Jhc2ggaW4gRnJhbWVMb2FkZXI6OmNoZWNrVGltZXJGaXJlZC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRl
c2NyaXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzBiNGM5
NDM4ZWIwNmExM2Y4MzkyZWQ3ODk2ZTIzMTFlODI2OTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoZSBzcGVsbGNoZWNrZXIgc2hvdWxkIHN0b3Jl
IHJlcGxhY2VtZW50IHRleHQgaW4gZWFjaCBtYXJrZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIG1hcmtlZFRleHQgaXMgIndlbGxjb21lIgorUEFTUyBtYXJrZXJEZXNj
cmlwdGlvbiBpcyAid2VsY29tZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQord2VsbGNvbWUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlci1kZXNjcmlwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zODg3NTUwNmNmMzdiYmNhYTdkYWRmNjQwY2Y1ZTdlMmExNTMxZjNjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXItZGVz
Y3JpcHRpb24uaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8
ZGl2IGlkPSJkZXN0aW5hdGlvbiIgY29udGVudEVkaXRhYmxlPjwvZGl2PgorPC9kaXY+CisKKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZmFsc2UpOworICAgIGZpbmlz
aEpTVGVzdCgpCit9CisKK2Z1bmN0aW9uIHZlcmlmeShucmV0cnkpCit7CisgICAgaWYgKCFucmV0
cnkpIHsKKyAgICAgICBkb25lKCk7CisgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciB0
ZXh0cyA9IGRlc3RpbmF0aW9uLmNoaWxkTm9kZXM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
ZXh0cy5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9y
Tm9kZSh0ZXh0c1tpXSwgInNwZWxsaW5nIikpIHsgCisgICAgICAgICAgICBtYXJrZWRUZXh0ID0g
aW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSh0ZXh0c1tpXSwgInNwZWxsaW5nIiwgMCkudG9T
dHJpbmcoKTsKKyAgICAgICAgICAgIG1hcmtlckRlc2NyaXB0aW9uID0gaW50ZXJuYWxzLm1hcmtl
ckRlc2NyaXB0aW9uRm9yTm9kZSh0ZXh0c1tpXSwgInNwZWxsaW5nIiwgMCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChtYXJrZWRUZXh0KSB7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWFya2VkVGV4dCIsICJ3ZWxsY29tZSIpOworICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1hcmtlckRlc2NyaXB0aW9uIiwgIndlbGNvbWUi
KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKworICAgIC8vIFdhaXQgdW50aWwgdGhlIGFzeW5j
IHNwZWxsY2hlY2tpbmcgaXMgZG9uZS4KKyAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigp
IHsgdmVyaWZ5KG5yZXRyeS0xKTsgfSwgMCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVk
VGV4dENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKworICAgIHZhciBzZWwgPSB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgdmFyIGRlc3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRlc3RpbmF0aW9uIik7CisgICAgZGVzdGluYXRpb24uZm9jdXMoKTsKKyAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0SFRNTCIsIGZhbHNlLCAid2VsbGNvbWUiKTsK
KyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAiLiIpOworCisg
ICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHZlcmlmeSgxMCk7IH0sIDApOworfQor
CitkZXNjcmlwdGlvbigiVGhlIHNwZWxsY2hlY2tlciBzaG91bGQgc3RvcmUgcmVwbGFjZW1lbnQg
dGV4dCBpbiBlYWNoIG1hcmtlci4iKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHRlc3Qo
KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQKaW5kZXggNTE2MDQ1Nzg2ZGY5NjA1NWY3NzAzN2M1ZmQyOGMzZGE3MzQ3YTRjMS4u
OGEzN2U1ZmQ1YzhhOGExZmEyYTAxNjEyYjdhZTFhM2JkMDE1YmI4OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKQEAgLTEyNCw2ICsxMjQsOSBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUt
dGV4dC0wMDguaHRtbAogZWRpdGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXJldmVyc2VkLXNl
bGVjdGlvbi5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi9kaXJlY3Rpb25hbGl0eS1hZnRlci11bmRv
LXJlcGxhY2UuaHRtbAogCisjIEVkaXRvckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoKSBp
cyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2Ny
aXB0aW9uLmh0bWwKKwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjQ1MzAKIGVkaXRpbmcvc2VsZWN0aW9uL2VkaXRhYmxlLWh0bWwtZWxlbWVudC5odG1sCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggOTg2NTczMGM0MWEwZTQ0MjFmMDFmNjVlNDY5NTlh
Yjk2MzYzMDgwZC4uMjJkYTczZTkwYzg5MGRhMjk3NjIxNGJmNzQyYzQwYWFhYWQ1ZjRjNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTM0Miw2ICszNDIsMTAgQEAgZWRpdGluZy9wYXN0
ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtaW1hZ2UtcG5nLmh0bWwKIGVkaXRpbmcvcGFzdGVi
b2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWRyYWctZHJvcC1maWxlLmh0bWwKIGVkaXRpbmcvcGFz
dGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWRyYWctZHJvcC1zdHJpbmcuaHRtbAogCisjIFJl
cGxhY2VtZW50IHRleHQgZm9yIG1pc3NwZWxsaW5nIGlzIG5vdCBnaXZlbiBmcm9tIE5TU3BlbGxD
aGVja2VyLgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5MzQK
K2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0bWwKKwogIyBD
dXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIGlzIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQuCiBlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAogZmFz
dC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4
IGFiMTQwMTJmM2ZkZmRjODYxZjJiM2IyZDU2NDQyZjFkYmYyOGFhZGEuLjA1ZDg4NmNlMzY5MzRl
OTlmYjdiZjAzY2FjNTE0ZmQxYjg4Y2NiNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAt
NzM0LDYgKzczNCw4IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcXVldWUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXNlcXVlbmNlbnVtLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1h
c3luYy1tdXRhdGlvbi5odG1sCisjIEVkaXRvckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRl
c2NyaXB0aW9uLmh0bWwKIAogIyBbUXRdW0dUS10gZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LWFzeW5jLmh0bWwgZmFpbHMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTczMDAzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IGZkMTAwMGE2MDg5YzczMTAy
MDg0MTVkOTUyNjhmOTU1YWUyNzdhNjYuLjI1NGMzMTNiMTNmNzMwNTc2NDVmNGVjMjU5YjRlODgx
OGRmNGVmZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xMDU3LDYgKzEwNTcsOSBA
QCBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAogCiAjIEVkaXRvckNsaWVudDo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50ZWQKIGVkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZS5odG1sCisjIFJlcGxhY2VtZW50IHRleHQgZm9yIG1pc3NwZWxsaW5n
IGlzIG5vdCBnaXZlbi4KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3OTM0CitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlci1kZXNjcmlwdGlvbi5odG1s
CiAKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMjhlZThmYWU4ZDM1NTE5MDZj
MGQ0NTQ3MzUwMjEyOTQ5MzVmNzVlOS4uYjVkZjMxY2JmZGU5MTNkZWMwNGFlNDM3YWNkZDZlNTg2
NTRlYzFkZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDEyLTAyLTA3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgor
CisgICAgICAgIFJlcGxhY2VtZW50IHRleHQgc2hvdWxkIGJlIGF2YWlsYWJsZSBmcm9tIHRoZSBt
YXJrZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NzkzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjogQWRkZWQgYW4gZXhwb3J0aW5nIHN5bWJv
bC4KKwogMjAxMi0wMi0wNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFtDTUFLRV0gVXNlICpiaW4qIGFuZCAqbGliKiBkaXJlY3RvcmllcyBmb3Ig
ZXhlY3V0YWJsZSBhbmQgbGlicmFyaWVzLgo=
</data>
<flag name="review"
          id="127675"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>