<?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>81042</bug_id>
          
          <creation_ts>2012-03-13 15:20:05 -0700</creation_ts>
          <short_desc>[WK2] WTR needs an implementation of setAsynchronousSpellCheckingEnabled</short_desc>
          <delta_ts>2013-03-05 05:32:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</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>InRadar, LayoutTestFailure, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>91854</dependson>
    
    <dependson>108172</dependson>
    
    <dependson>109577</dependson>
          <blocked>108528</blocked>
    
    <blocked>111295</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jessie Berlin">jberlin</reporter>
          <assigned_to name="Grzegorz Czajkowski">g.czajkowski</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>enrica</cc>
    
    <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jberlin</cc>
    
    <cc>jeffrey+webkit</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>577874</commentid>
    <comment_count>0</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-03-13 15:20:05 -0700</bug_when>
    <thetext>The lack of it is causing failures on the Lion Intel Debug WebKit 2 bots:

http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r110608%20(4861)/editing/spelling/grammar-paste-pretty-diff.html
http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r110608%20(4861)/editing/spelling/spellcheck-async-mutation-pretty-diff.html
http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r110608%20(4861)/editing/spelling/spellcheck-async-pretty-diff.html
http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r110608%20(4861)/editing/spelling/spellcheck-queue-pretty-diff.html
http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r110608%20(4861)/editing/spelling/spellcheck-sequencenum-pretty-diff.html

They should be added to the mac-wk2 skipped list for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577880</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-03-13 15:23:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/11042016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577911</commentid>
    <comment_count>2</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-03-13 15:43:08 -0700</bug_when>
    <thetext>Added to the mac-wk2 Skipped list in http://trac.webkit.org/changeset/110625</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629049</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-05-21 06:49:52 -0700</bug_when>
    <thetext>It isn&apos;t mac-wk2 spefific bug, but general wk2 bug, so I moved tests
to wk2/Skipped list and added one more test. - http://trac.webkit.org/changeset/117776</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640966</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-06-04 16:25:08 -0700</bug_when>
    <thetext>Just implementing setAsynchronousSpellCheckingEnabled is not sufficient to make those tests work, at least not for the Mac port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641007</commentid>
    <comment_count>5</comment_count>
      <attachid>145657</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-06-04 17:02:56 -0700</bug_when>
    <thetext>Created attachment 145657
insufficient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671282</commentid>
    <comment_count>6</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-07-17 08:04:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=145657) [details]
&gt; insufficient

WebKit2-EFL needs this patch as we&apos;ve almost done spellchecker feature and we would like to perform the tests from editing/spelling directory, btw:

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2010
&gt; +    settings-&gt;setFullScreenEnabled(store.getBoolValueForKey(WebPreferencesKey::asynchronousSpellCheckingEnabledKey()));

should be settings-&gt;setAsynchronousSpellCheckingEnabled(...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677444</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-07-24 17:57:43 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Created an attachment (id=145657) [details] [details]
&gt; &gt; insufficient
&gt; 
&gt; WebKit2-EFL needs this patch as we&apos;ve almost done spellchecker feature and we would like to perform the tests from editing/spelling directory, btw:
&gt; 
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145657&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2010
&gt; &gt; +    settings-&gt;setFullScreenEnabled(store.getBoolValueForKey(WebPreferencesKey::asynchronousSpellCheckingEnabledKey()));
&gt; 
&gt; should be settings-&gt;setAsynchronousSpellCheckingEnabled(...)

Erg, good catch. That explains why it didn&apos;t work! You&apos;re welcome to pick up the patch and fix that and see if it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688060</commentid>
    <comment_count>8</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-08-06 06:04:25 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; Created an attachment (id=145657) [details] [details] [details]
&gt; &gt; &gt; insufficient
&gt; &gt; 
&gt; &gt; WebKit2-EFL needs this patch as we&apos;ve almost done spellchecker feature and we would like to perform the tests from editing/spelling directory, btw:
&gt; &gt; 
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145657&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2010
&gt; &gt; &gt; +    settings-&gt;setFullScreenEnabled(store.getBoolValueForKey(WebPreferencesKey::asynchronousSpellCheckingEnabledKey()));
&gt; &gt; 
&gt; &gt; should be settings-&gt;setAsynchronousSpellCheckingEnabled(...)
&gt; 
&gt; Erg, good catch. That explains why it didn&apos;t work! You&apos;re welcome to pick up the patch and fix that and see if it works.

Ok thanks. I will submit this patch with the fix and ChangeLog entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740193</commentid>
    <comment_count>9</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-10-11 13:12:33 -0700</bug_when>
    <thetext>Skipping editing/spelling/grammar-markers-hidpi.html in r131090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841946</commentid>
    <comment_count>10</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-26 06:27:21 -0800</bug_when>
    <thetext>Hi Tim,

I am adapting your patch to the trunk. The required patches (bug 108172 and bug 109577) are likely to land.
I would like to expose asynchronous spell checking setting in this patch as it may be useful for WK2 ports that are going to enable it. In my opinion it doesn&apos;t make sense to implement it as private and then make another commit to make it public.
This patch will contain gardening of asynchronous spell checking tests. I am planing to skip them for GtK, Mac, Qt unless they implement TextChecker::requestCheckingOfString() method.
Is it ok for you if I add myself as co-author of the patch?
Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842134</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-26 10:10:05 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Hi Tim,
&gt; 
&gt; I am adapting your patch to the trunk. The required patches (bug 108172 and bug 109577) are likely to land.
&gt; I would like to expose asynchronous spell checking setting in this patch as it may be useful for WK2 ports that are going to enable it. In my opinion it doesn&apos;t make sense to implement it as private and then make another commit to make it public.
&gt; This patch will contain gardening of asynchronous spell checking tests. I am planing to skip them for GtK, Mac, Qt unless they implement TextChecker::requestCheckingOfString() method.
&gt; Is it ok for you if I add myself as co-author of the patch?

Go for it!

&gt; Thanks

Thanks for picking this up!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842892</commentid>
    <comment_count>12</comment_count>
      <attachid>190483</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-27 03:24:25 -0800</bug_when>
    <thetext>Created attachment 190483
adapt Tim&apos;s patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842960</commentid>
    <comment_count>13</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-27 05:27:28 -0800</bug_when>
    <thetext>FYI, with this patch (and its dependencies bug 109577 and 108172) the below asynchronous spell checking tests are passing for EFL:

editing/spelling/spellcheck-async-remove-frame.html
editing/spelling/spellcheck-async.html
editing/spelling/spellcheck-sequencenum.html

The remaining asynchronous tests:
editing/spelling/spellcheck-async-mutation.html
editing/spelling/spellcheck-queue.html
editing/spelling/spellcheck-paste-disabled.html
editing/spelling/spellcheck-paste.html
editing/spelling/grammar-markers.html
editing/spelling/grammar-markers-hidpi.html
editing/spelling/grammar-paste.html
editing/spelling/spelling-marker-description.html

are failing for EFL due to not implemented features (pasteboard, grammar checking and text replacement). More details in TestExpectations file.
I was trying to do some tricks to pass the failing tests like replacing missing Paste command with InsertText and as a result, they start passing.

Recently, the bunch of spell checking tests have been landed (bug 108405). Those require asynchronous spell checking and smartInsertDelete feature (bug 107840).

I&apos;d appreciate if wk2&apos;s owners could review the mentioned patches to support asynchronous spell checking in WK2 (bug 109577, bug 108405, bug 108172 and bug 81042)
Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846776</commentid>
    <comment_count>14</comment_count>
      <attachid>190483</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2013-03-04 13:17:51 -0800</bug_when>
    <thetext>Comment on attachment 190483
adapt Tim&apos;s patch

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

Looks good to me. Please remove all the unnecessary lines from the ChangeLog.

&gt; Source/WebKit2/ChangeLog:15
&gt; +        (WebKit):

Remove.

&gt; Source/WebKit2/ChangeLog:25
&gt; +        (WebKit):

Remove.

&gt; Source/WebKit2/ChangeLog:27
&gt; +        (InjectedBundle):

Remove.

&gt; Tools/ChangeLog:15
&gt; +        (WTR):

Remove.

&gt; Tools/ChangeLog:17
&gt; +        (TestRunner):

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847583</commentid>
    <comment_count>15</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-03-05 05:32:26 -0800</bug_when>
    <thetext>Committed r144752: &lt;http://trac.webkit.org/changeset/144752&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145657</attachid>
            <date>2012-06-04 17:02:56 -0700</date>
            <delta_ts>2013-02-27 03:24:25 -0800</delta_ts>
            <desc>insufficient</desc>
            <filename>insufficient-spellcheck.diff</filename>
            <type>text/plain</type>
            <size>11407</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggODlkZjYzOS4uOTE3MDAxMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1NraXBwZWQKQEAgLTEwMzUsMTcgKzEwMzUsNiBAQCBmYXN0L2Jsb2NrL2xpbmVi
b3hjb250YWluL2Jsb2NrLWZvbnQuaHRtbAogZmFzdC9ibG9jay9saW5lYm94Y29udGFpbi9ibG9j
ay1nbHlwaHMuaHRtbAogZmFzdC9ibG9jay9saW5lYm94Y29udGFpbi9mb250Lmh0bWwKIAotIyBb
V0syXSBXVFIgbmVlZHMgYW4gaW1wbGVtZW50YXRpb24gb2Ygc2V0QXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQuCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MTA0MgotZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLW1hcmtlcnMuaHRtbAotZWRpdGluZy9z
cGVsbGluZy9ncmFtbWFyLXBhc3RlLmh0bWwKLWVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1h
c3luYy1tdXRhdGlvbi5odG1sCi1lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtcmVt
b3ZlLWZyYW1lLmh0bWwKLWVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy5odG1sCi1l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcXVldWUuaHRtbAotZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXNlcXVlbmNlbnVtLmh0bWwKLWVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFy
a2VyLWRlc2NyaXB0aW9uLmh0bWwKLQogIyBXVFIgbmVlZHMgYW4gaW1wbGVtZW50YXRpb24gb2Yg
c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NzE2MgogZWRpdGluZy9pbnNlcnRpbmcvdHlwaW5nLXNwYWNl
LXRvLXRyaWdnZXItc21hcnQtbGluay5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzU3RvcmUuaAppbmRleCAwNGUxODJjLi5iMDk4YzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKQEAgLTkxLDYgKzkxLDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAgICAgbWFjcm8oSmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgamF2
YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNy
byhTaG91bGRQcmludEJhY2tncm91bmRzLCBzaG91bGRQcmludEJhY2tncm91bmRzLCBCb29sLCBi
b29sLCBmYWxzZSkgXAogICAgIG1hY3JvKEZ1bGxTY3JlZW5FbmFibGVkLCBmdWxsU2NyZWVuRW5h
YmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCwgYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oV2ViU2VjdXJpdHlFbmFibGVkLCB3ZWJTZWN1cml0eUVu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhBbGxvd1VuaXZlcnNhbEFjY2Vz
c0Zyb21GaWxlVVJMcywgYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzLCBhbGxv
d0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggOWZlOGQ2
YS4uNzlhZmZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcApAQCAtNjA4LDYgKzYwOCwxNiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRG
dWxsU2NyZWVuRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJl
dHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5mdWxsU2NyZWVuRW5hYmxlZCgpOwogfQogCit2
b2lkIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoZW5h
YmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJu
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldEFWRm91bmRhdGlvbkVuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQogewogICAgIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnNldEFWRm91bmRhdGlvbkVuYWJsZWQoZW5hYmxlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
CmluZGV4IDZkYmM0NzMuLmU3MjQ1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0xODcsNiArMTg3LDEwIEBA
IFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0
UmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKIFdL
X0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVk
KFdLUHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byBmYWxzZQorV0tfRVhQT1JUIHZv
aWQgV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7CitXS19FWFBPUlQgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CisKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5j
ZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
Zik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAppbmRleCBiYmI2
YWRiLi44YzNjYzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcApAQCAtMTk2LDYgKzE5NiwxMSBA
QCB2b2lkIFdLQnVuZGxlUmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKFdLQnVuZGxlUmVmIGJ1
bmRsZVJlZikKICAgICB0b0ltcGwoYnVuZGxlUmVmKS0+cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RzKCk7CiB9CiAKK3ZvaWQgV0tCdW5kbGVTZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZChXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cFJlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChidW5kbGVSZWYpLT5zZXRBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0b0ltcGwocGFnZUdyb3VwUmVmKSwgZW5hYmxlZCk7
Cit9CisKIHZvaWQgV0tCdW5kbGVSZXBvcnRFeGNlcHRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTVmFsdWVSZWYgZXhjZXB0aW9uKQogewogICAgIEluamVjdGVkQnVuZGxlOjpyZXBvcnRFeGNl
cHRpb24oY29udGV4dCwgZXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5o
CmluZGV4IGNjZGEzNjcuLjc3YzYyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUu
aApAQCAtODYsNiArODYsNyBAQCBXS19FWFBPUlQgYm9vbCBXS0J1bmRsZUlzUGFnZUJveFZpc2li
bGUoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYQogV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVBZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShXS0J1bmRsZVJlZiBidW5k
bGUsIFdLU3RyaW5nUmVmLCBXS1N0cmluZ1JlZiwgV0tTdHJpbmdSZWYsIGJvb2wpOwogV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVSZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShXS0J1bmRs
ZVJlZiBidW5kbGUsIFdLU3RyaW5nUmVmLCBXS1N0cmluZ1JlZiwgV0tTdHJpbmdSZWYsIGJvb2wp
OwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVSZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoV0tC
dW5kbGVSZWYgYnVuZGxlKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VH
cm91cFJlZiBwYWdlR3JvdXBSZWYsIGJvb2wgZW5hYmxlZCk7CiAKIFdLX0VYUE9SVCBib29sIFdL
QnVuZGxlSXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoV0tCdW5kbGVSZWYgYnVuZGxlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAppbmRleCBjNmU5YTYwLi5mOTg1ZjlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcApAQCAtMjY1LDYgKzI2NSwxNCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpyZXNldE9y
aWdpbkFjY2Vzc1doaXRlbGlzdHMoKQogICAgIFNlY3VyaXR5UG9saWN5OjpyZXNldE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdHMoKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9v
bCBlbmFibGVkKQoreworICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91
cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKKyAgICBIYXNo
U2V0PFBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gcGFnZXMuZW5kKCk7CisgICAgZm9yIChI
YXNoU2V0PFBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIg
IT0gZW5kOyArK2l0ZXIpCisgICAgICAgICgqaXRlciktPnNldHRpbmdzKCktPnNldEFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCFlbmFibGVkKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1
bmRsZTo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hh
cmVkKCkuZGVsZXRlQWxsRGF0YWJhc2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggNWJhMWEy
Zi4uZTlkMTViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTE4LDYgKzExOCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGJvb2wpOwogICAgIHZvaWQgcmVtb3ZlT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgYm9vbCk7CiAgICAgdm9pZCByZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMo
KTsKKyAgICB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKFdlYlBhZ2VH
cm91cFByb3h5KiwgYm9vbCk7CiAgICAgaW50IG51bWJlck9mUGFnZXMoV2ViRnJhbWUqLCBkb3Vi
bGUsIGRvdWJsZSk7CiAgICAgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChXZWJGcmFtZSos
IGNvbnN0IFN0cmluZyYsIGRvdWJsZSwgZG91YmxlKTsKICAgICBTdHJpbmcgcGFnZVNpemVBbmRN
YXJnaW5zSW5QaXhlbHMoV2ViRnJhbWUqLCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBp
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IDZmMTgyN2MuLjJlODJlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIwMDYsNiArMjAwNiw4IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIHNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZ1bGxTY3JlZW5FbmFi
bGVkS2V5KCkpKTsKICNlbmRpZgorICAgIAorICAgIHNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5h
YmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkS2V5KCkpKTsKIAogICAgIHNldHRpbmdzLT5zZXRMb2Nh
bFN0b3JhZ2VEYXRhYmFzZVBhdGgoV2ViUHJvY2Vzczo6c2hhcmVkKCkubG9jYWxTdG9yYWdlRGly
ZWN0b3J5KCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRs
CmluZGV4IDgxOWVhNDYuLjdmMjkyZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaWRsCkBAIC02Miw2ICs2Miw3IEBAIG1vZHVsZSBXVFIgewogICAgICAgICB2
b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGluIGJvb2xlYW4gdmFsdWUpOwogICAg
ICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGluIERPTVN0cmluZyBzb3Vy
Y2VPcmlnaW4sIGluIERPTVN0cmluZyBkZXN0aW5hdGlvblByb3RvY29sLCBpbiBET01TdHJpbmcg
ZGVzdGluYXRpb25Ib3N0LCBpbiBib29sZWFuIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsK
ICAgICAgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShpbiBET01TdHJp
bmcgc291cmNlT3JpZ2luLCBpbiBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgaW4gRE9N
U3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgaW4gYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucyk7CisgICAgICAgIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
aW4gYm9vbGVhbiB2YWx1ZSk7CiAKICAgICAgICAgLy8gU3BlY2lhbCBET00gZnVuY3Rpb25zLgog
ICAgICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IGNjYTRkZTYuLjdlMDVkMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC00MTEsNiArNDExLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92
ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yCiAgICAgV0tC
dW5kbGVSZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkuYnVuZGxlKCksIHRvV0soc291cmNlT3JpZ2luKS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlv
blByb3RvY29sKS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlvbkhvc3QpLmdldCgpLCBhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWlucyk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBXS0J1
bmRsZVNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKEluamVjdGVkQnVuZGxlOjpz
aGFyZWQoKS5idW5kbGUoKSwgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2VHcm91cCgpLCBl
bmFibGVkKTsKK30KKwogaW50IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZlBhZ2VzKGRv
dWJsZSBwYWdlV2lkdGhJblBpeGVscywgZG91YmxlIHBhZ2VIZWlnaHRJblBpeGVscykKIHsKICAg
ICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCmluZGV4IDk0NWE2NjAuLjJlOGY3ZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
QEAgLTk3LDYgKzk3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUgPSBmYWxzZSk7CiAgICAgdm9pZCBhZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3Ry
aW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwg
Ym9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgdm9pZCByZW1vdmVPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVm
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZChib29sKTsKIAogICAgIC8vIFNwZWNpYWwgRE9NIGZ1bmN0aW9ucy4K
ICAgICBKU1ZhbHVlUmVmIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU1ZhbHVl
UmVmIGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApp
bmRleCBmZmRjMmNjLi4xMDJkODk1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcApAQCAtNDc3LDYgKzQ3Nyw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFdLUHJlZmVyZW5jZXNTZXRTZXJpZkZvbnRG
YW1pbHkocHJlZmVyZW5jZXMsIHNlcmlmRm9udEZhbWlseSk7CiAjZW5kaWYKICAgICBXS1ByZWZl
cmVuY2VzU2V0SW5zcGVjdG9yVXNlc1dlYktpdFVzZXJJbnRlcmZhY2UocHJlZmVyZW5jZXMsIHRy
dWUpOworICAgIFdLUHJlZmVyZW5jZXNTZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZChwcmVmZXJlbmNlcywgZmFsc2UpOwogCiAgICAgLy8gaW4gdGhlIGNhc2UgdGhhdCBhIHRlc3Qg
dXNpbmcgdGhlIGNocm9tZSBpbnB1dCBmaWVsZCBmYWlsZWQsIGJlIHN1cmUgdG8gY2xlYW4gdXAg
Zm9yIHRoZSBuZXh0IHRlc3QKICAgICBtX21haW5XZWJWaWV3LT5yZW1vdmVDaHJvbWVJbnB1dEZp
ZWxkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190483</attachid>
            <date>2013-02-27 03:24:25 -0800</date>
            <delta_ts>2013-03-04 13:17:51 -0800</delta_ts>
            <desc>adapt Tim&apos;s patch</desc>
            <filename>spelling-asynchronous-spell-checking-WKTR.patch</filename>
            <type>text/plain</type>
            <size>20841</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYTk0NmU4Li4wNWVhNTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMtMDIt
MjcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+LCBHcnplZ29yeiBDemFq
a293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtXSzJdIFdUUiBu
ZWVkcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEw
NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHYXJk
ZW5pbmcgb2YgdGhlIGFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2luZyB0ZXN0cy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgU29tZSB0ZXN0cyBuZWVkIHRvIGJlIHNr
aXBwZWQgYXMgdGhleSByZXF1aXJlIGZlYXR1cmVzIG5vdAorICAgICAgICBpbXBsZW1lbnRlZCBm
b3IgRUZMIHlldCAocGFzdGVib2FyZCwgZ3JhbW1hciBjaGVja2luZywgdGV4dCByZXBsYWNlbWVu
dCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGstd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRm
b3JtL3F0LTUuMC13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgU2tpcCBhc3luY2hyb25v
dXMgc3BlbGwgY2hlY2tpbmcgZm9yIEdUSyssIE1hYywgUXQgdW5sZXNzCisgICAgICAgIHRoZXkg
aW1wbGVtZW50IFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlRleHQuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgUmVtb3ZlIGFzeW5jaHJv
bm91cyBzcGVsbCBjaGVja2luZyB0ZXN0cyBmcm9tIGdsb2JhbCB3azIncworICAgICAgICBhcyB0
aGV5IGFyZSBwYXNzaW5nIGZvciBFRkwuCisKIDIwMTMtMDItMjUgIFZzZXZvbG9kIFZsYXNvdiAg
PHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSB0ZXN0
IGV4cGVjdGF0aW9ucyB1cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
Zmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYzg2ZWI0ZS4uNzM5YmIyYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzI2LDggKzMyNiwxNCBAQCBC
dWcoRUZMKSBmYXN0L2V2ZW50cy90b3VjaC9iYXNpYy1zaW5nbGUtdG91Y2gtZXZlbnRzLmh0bWwg
WyBGYWlsdXJlIF0KIAogIyBOZWVkcyBncmFtbWFyIGNoZWNraW5nCiBCdWcoRUZMKSBlZGl0aW5n
L3NwZWxsaW5nL2dyYW1tYXItZWRpdC13b3JkLmh0bWwgWyBGYWlsdXJlIF0KK0J1ZyhFRkwpIGVk
aXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1tYXJrZXJzLmh0bWwgWyBGYWlsdXJlIF0KK0J1ZyhFRkwp
IGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1tYXJrZXJzLWhpZHBpLmh0bWwgWyBGYWlsdXJlIF0K
K0J1ZyhFRkwpIGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sIFsgRmFpbHVyZSBd
CiBCdWcoRUZMKSBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbCBbIEZhaWx1cmUgXQogCisj
IEVGTCdzIHRleHQgY2hlY2tlciBkb2Vzbid0IHN1cHBvcnQgdGhlIHRleHQgcmVwbGFjZW1lbnQg
ZmVhdHVyZS4KK0J1ZyhFRkwpIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2Ny
aXB0aW9uLmh0bWwgWyBGYWlsdXJlIF0KKwogIyBGYWlscyBiZWNhdXNlIE11dGF0aW9uT2JzZXJ2
ZXJzIGFyZSBub3Qgbm90aWZpZWQgYXQgZW5kLW9mLXRhc2suCiB3ZWJraXQub3JnL2IvNzgyOTAg
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9lbmQtb2YtdGFzay1kZWxpdmVyeS5odG1sIFsgRmFp
bHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
NDFhMzRlZi4uMDcyYTNmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEwMjcsNiArMTAyNywxMCBAQCB3ZWJraXQub3JnL2IvODQzMzggZWRpdGluZy9w
YXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
ODQzMzggZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLWluLXRleHQtY29udHJvbC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODQzMzggZWRpdGluZy9wYXN0ZWJvYXJkL3N0eWxl
LWZyb20tcnVsZXMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg0MzM4IGVkaXRpbmcv
cGFzdGVib2FyZC90ZXN0Y2FzZS05NTA3Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84
NDMzOCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzg0MzM4IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1x
dWV1ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODQzMzggZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLXBhc3RlLWRpc2FibGVkLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi84NDMzOCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbCBbIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzg0MzM4IGVkaXRpbmcvc3R5bGUvYXBwbHktdGhyb3VnaC1lbmQtb2Yt
ZG9jdW1lbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg0MzM4IGVkaXRpbmcvc3R5
bGUvbm9uLWluaGVyaXRhYmxlLXN0eWxlcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
ODQzMzggZWRpdGluZy9zdHlsZS9zbW9vc2gtc3R5bGVzLTAwMy5odG1sIFsgRmFpbHVyZSBdCkBA
IC0xNDE5LDE1ICsxNDIzLDYgQEAgd2Via2l0Lm9yZy9iLzg4MTM4IGh0dHAvdGVzdHMvbWVkaWEv
dmlkZW8tYnVmZmVyZWQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg5ODMwIGZhc3Qv
dGV4dC9oeXBoZW4tbWluLXByZWZlcnJlZC13aWR0aC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvODk4MzAgZmFzdC90ZXh0L2h5cGhlbmF0ZS1sb2NhbGUuaHRtbCBbIFNr
aXAgXQogCi0jIEVGTCdzIExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGltcGxlbWVudCBz
ZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZAotd2Via2l0Lm9yZy9iLzg2NjM3IGVk
aXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvODY2MzcgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjYzNyBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGUuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2NjM3IGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS1kaXNhYmxlZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvODY2MzcgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXF1ZXVlLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjYzNyBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2st
c2VxdWVuY2VudW0uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2NjM3IGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLQog
IyBNaXNzaW5nIHRlc3QgaW5mcmFzdHJ1Y3R1cmUsIG5vIGdhbWVwYWRzIGF2YWlsYWJsZS4KIEJ1
ZyhFRkwpIGdhbWVwYWQvZ2FtZXBhZC1wb2xsaW5nLWFjY2Vzcy5odG1sIFsgRmFpbHVyZSBdCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAy
MjI3ZWFjLi42N2Y1MzBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xODUsNiArMTg1LDE3IEBAIHdlYmtpdC5vcmcvYi80MjE5NCBmYXN0
L2RvbS92ZXJ0aWNhbC1zY3JvbGxiYXItaW4tcnRsLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi80MjE5NCBmYXN0L2V2ZW50cy81MDU2NjE5Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi80MjE5NCBodHRwL3Rlc3RzL3NlY3VyaXR5L2RyYWctZHJvcC1zYW1lLXVuaXF1ZS1vcmln
aW4uaHRtbCBbIEZhaWx1cmUgXQogCisjIE1pc3NpbmcgVGV4dENoZWNrZXI6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKCkgaW1wbGVtZW50YXRpb24gZm9yIEd0ay4KK0J1ZyhHVEspIGVkaXRpbmcv
c3BlbGxpbmcvZ3JhbW1hci1tYXJrZXJzLmh0bWwgWyBTa2lwIF0KK0J1ZyhHVEspIGVkaXRpbmcv
c3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sIFsgU2tpcCBdCitCdWcoR1RLKSBlZGl0aW5nL3Nw
ZWxsaW5nL2dyYW1tYXItbWFya2Vycy1oaWRwaS5odG1sIFsgU2tpcCBdCitCdWcoR1RLKSBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbCBbIFNraXAgXQorQnVn
KEdUSykgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLXJlbW92ZS1mcmFtZS5odG1s
IFsgU2tpcCBdCitCdWcoR1RLKSBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMuaHRt
bCBbIFNraXAgXQorQnVnKEdUSykgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXF1ZXVlLmh0
bWwgWyBTa2lwIF0KK0J1ZyhHVEspIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1zZXF1ZW5j
ZW51bS5odG1sIFsgU2tpcCBdCitCdWcoR1RLKSBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1h
cmtlci1kZXNjcmlwdGlvbi5odG1sIFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAjIEVuZCBvZiBFeHBlY3RlZCBmYWlsdXJlcwogIy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAyZWJjMDEzLi42YTA2Y2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjAsNiArMzIwLDE3IEBAIHdlYmtpdC5v
cmcvYi8xMDk4OTAgWyBEZWJ1ZyBdIHBsYXRmb3JtL21hYy13azIvcGx1Z2lucy9kZXN0cm95LWR1
cmluZy1hc3luYy1ucHAtCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
CiAjIyMgU1RBUlQgT0YgKDIpIENsYXNzaWZpZWQgZmFpbHVyZXMgd2l0aG91dCBidWcgcmVwb3J0
cyAoeWV0KQogCisjIE1pc3NpbmcgVGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KCkgaW1wbGVtZW50YXRpb24gZm9yIE1hYy4KK2VkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1tYXJr
ZXJzLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sCitlZGl0aW5nL3Nw
ZWxsaW5nL2dyYW1tYXItbWFya2Vycy1oaWRwaS5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFz
eW5jLXJlbW92ZS1mcmFtZS5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMu
aHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXF1ZXVlLmh0bWwKK2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1zZXF1ZW5jZW51bS5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLW1hcmtlci1kZXNjcmlwdGlvbi5odG1sCisKICMjIyBFTkQgT0YgKDIpIENsYXNzaWZpZWQg
ZmFpbHVyZXMgd2l0aG91dCBidWcgcmVwb3J0cyAoeWV0KQogIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC01LjAtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjFkMTQxZS4uM2FjZWQzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzQxLDMg
Kzc0MSwxNCBAQCB3ZWJraXQub3JnL2IvMTA1MTgyIGNvbXBvc2l0aW5nL3JlcGFpbnQvcmVzaXpl
LXJlcGFpbnQuaHRtbAogc3ZnL3RleHQvc2VsZWN0LXRleHRMZW5ndGgtc3BhY2luZy1zdHJldGNo
LTEuc3ZnCiBzdmcvdGV4dC9zZWxlY3QteC1saXN0LXdpdGgtdHNwYW5zLTEuc3ZnCiBzdmcvdGV4
dC9zZWxlY3QteC1saXN0LTEuc3ZnCisKKyMgTWlzc2luZyBUZXh0Q2hlY2tlcjo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoKSBpbXBsZW1lbnRhdGlvbiBmb3IgUXQuCitlZGl0aW5nL3NwZWxsaW5n
L2dyYW1tYXItbWFya2Vycy5odG1sCitlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUuaHRt
bAorZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLW1hcmtlcnMtaGlkcGkuaHRtbAorZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1hc3luYy1yZW1vdmUtZnJhbWUuaHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLWFzeW5jLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1xdWV1ZS5odG1s
CitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stc2VxdWVuY2VudW0uaHRtbAorZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmZTQ0MTIxLi5iMGZiNGQ3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTM2LDE4ICs1MzYsNiBA
QCBmYXN0L2Jsb2NrL2xpbmVib3hjb250YWluL2Jsb2NrLWZvbnQuaHRtbAogZmFzdC9ibG9jay9s
aW5lYm94Y29udGFpbi9ibG9jay1nbHlwaHMuaHRtbAogZmFzdC9ibG9jay9saW5lYm94Y29udGFp
bi9mb250Lmh0bWwKIAotIyBbV0syXSBXVFIgbmVlZHMgYW4gaW1wbGVtZW50YXRpb24gb2Ygc2V0
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQuCi0jIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MTA0MgotZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLW1hcmtl
cnMuaHRtbAotZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLXBhc3RlLmh0bWwKLWVkaXRpbmcvc3Bl
bGxpbmcvZ3JhbW1hci1tYXJrZXJzLWhpZHBpLmh0bWwKLWVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1hc3luYy1tdXRhdGlvbi5odG1sCi1lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5
bmMtcmVtb3ZlLWZyYW1lLmh0bWwKLWVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy5o
dG1sCi1lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcXVldWUuaHRtbAotZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXNlcXVlbmNlbnVtLmh0bWwKLWVkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctbWFya2VyLWRlc2NyaXB0aW9uLmh0bWwKLQogIyBXVFIgbmVlZHMgYW4gaW1wbGVtZW50YXRp
b24gb2Ygc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQuCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzE2MgogZWRpdGluZy9pbnNlcnRpbmcvc21hcnQt
bGluay13aGVuLWNhcmV0LWlzLW1vdmVkLWJlZm9yZS1VUkwuaHRtbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDBm
Y2I1MTMuLjlmODA2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMy0wMi0yNyAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4sIEdyemVnb3J6IEN6YWprb3dz
a2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dLMl0gV1RSIG5lZWRz
IGFuIGltcGxlbWVudGF0aW9uIG9mIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTA0Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBX
SzIgc2V0dGluZyB0byBlbmFibGUvZGlzYWJsZWQgYXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5n
LgorICAgICAgICBJdCdzIHVzZWQgYnkgV2ViS2l0VGVzdFJ1bm5lciB0byByZXNldCB0aGUgc2V0
dGluZyBhdCB0aGUgYmVnaW5uaW5nCisgICAgICAgIG9mIHRoZSB0ZXN0LgorICAgICAgICBXZWJL
aXQyIHBvcnRzIG1pZ2h0IGJlIGludGVyZXN0ZWQgaW4gdGhpcyBzZXR0aW5nIGlmIHRoZXkgYXJl
IGdvaW5nCisgICAgICAgIHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUuCisKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2Vz
U2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJl
bmNlc0dldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorICAgICAgICAoV0tCdW5kbGVTZXRBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGU6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorCiAyMDEzLTAyLTI1ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293
c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtXSzJdW0VGTF0gSW1wbGVtZW50IGFzeW5jaHJv
bm91cyBzcGVsbCBjaGVja2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c1N0b3JlLmgKaW5kZXggOGY0ZTU2YS4uNzdiMjAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCkBAIC05OSw2ICs5OSw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogICAgIG1hY3JvKEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIGphdmFTY3JpcHRD
YW5BY2Nlc3NDbGlwYm9hcmQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oU2hvdWxk
UHJpbnRCYWNrZ3JvdW5kcywgc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcywgQm9vbCwgYm9vbCwgZmFs
c2UpIFwKICAgICBtYWNybyhGdWxsU2NyZWVuRW5hYmxlZCwgZnVsbFNjcmVlbkVuYWJsZWQsIEJv
b2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQsIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxz
ZSkgXAogICAgIG1hY3JvKFdlYlNlY3VyaXR5RW5hYmxlZCwgd2ViU2VjdXJpdHlFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oQWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHMsIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxz
ZSkgXAogICAgIG1hY3JvKEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcywgYWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxzZSkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDZjMWI2OGEuLjY2N2Nj
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAKQEAgLTY1OCw2ICs2NTgsMTYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RnVsbFNjcmVl
bkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9J
bXBsKHByZWZlcmVuY2VzUmVmKS0+ZnVsbFNjcmVlbkVuYWJsZWQoKTsKIH0KIAordm9pZCBXS1By
ZWZlcmVuY2VzU2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJl
bmNlc1JlZiktPnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGVuYWJsZWQpOwor
fQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworfQor
CiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRBVkZvdW5kYXRpb25FbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKIHsKICAgICB0b0ltcGwocHJlZmVyZW5j
ZXNSZWYpLT5zZXRBVkZvdW5kYXRpb25FbmFibGVkKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKaW5kZXggZDQ1ZWYwMi4uN2FlZDQ2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5o
CkBAIC0yMzIsNiArMjMyLDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRUZXh0
QXV0b3NpemluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlCiBXS19FWFBPUlQg
dm9pZCBXS1ByZWZlcmVuY2VzU2V0UVRLaXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0
UVRLaXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZh
dWx0cyB0byBmYWxzZQorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgZW5hYmxlZCk7CitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CisK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4
IGI3N2ZkMDIuLjhmZWU0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0yMTMsNiArMjEz
LDExIEBAIHZvaWQgV0tCdW5kbGVSZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoV0tCdW5kbGVS
ZWYgYnVuZGxlUmVmKQogICAgIHRvSW1wbChidW5kbGVSZWYpLT5yZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMoKTsKIH0KIAordm9pZCBXS0J1bmRsZVNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFn
ZUdyb3VwUmVmLCBib29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldEFz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRvSW1wbChwYWdlR3JvdXBSZWYpLCBlbmFi
bGVkKTsKK30KKwogdm9pZCBXS0J1bmRsZVJlcG9ydEV4Y2VwdGlvbihKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNWYWx1ZVJlZiBleGNlcHRpb24pCiB7CiAgICAgSW5qZWN0ZWRCdW5kbGU6OnJlcG9y
dEV4Y2VwdGlvbihjb250ZXh0LCBleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2
YXRlLmgKaW5kZXggODg2Y2RlMy4uYWYxOGUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJp
dmF0ZS5oCkBAIC02Nyw2ICs2Nyw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0V2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbihXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlCiBXS19FWFBP
UlQgdm9pZCBXS0J1bmRsZVJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKFdLQnVu
ZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHVpbnQ2NF90
IFdLQnVuZGxlR2V0V2ViTm90aWZpY2F0aW9uSUQoV0tCdW5kbGVSZWYgYnVuZGxlLCBKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub3RpZmljYXRpb24pOwogV0tfRVhQT1JUIFdLRGF0
YVJlZiBXS0J1bmRsZUNyZWF0ZVdLRGF0YUZyb21VSW50OEFycmF5KFdLQnVuZGxlUmVmIGJ1bmRs
ZSwgSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgZGF0YSk7CitXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZVNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKFdLQnVuZGxlUmVm
IGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBib29sIGVuYWJs
ZWQpOwogCiAvLyBVc2VyQ29udGVudCBBUEkKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlQWRkVXNl
clNjcmlwdChXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cCwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZCwgV0tTdHJpbmdSZWYgc291cmNl
LCBXS1VSTFJlZiB1cmwsIFdLQXJyYXlSZWYgd2hpdGVsaXN0LCBXS0FycmF5UmVmIGJsYWNrbGlz
dCwgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lLCBXS1VzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRl
eCA5MzkzOWI1Li4yYmM5ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzQ2LDYgKzM0
NiwxMyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMo
KQogICAgIFNlY3VyaXR5UG9saWN5OjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIH0K
IAordm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVkKQoreworICAgIGNv
bnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91
cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKKyAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVy
YXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQor
ICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChlbmFibGVkKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZTo6Y2xlYXJBbGxEYXRh
YmFzZXMoKQogewogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5k
ZXggNTIxMTdlYS4uM2ZlOWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTE5LDYgKzExOSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGJvb2wpOwogICAgIHZvaWQg
cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7CiAgICAgdm9pZCByZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMoKTsKKyAgICB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KFdlYlBhZ2VHcm91cFByb3h5KiwgYm9vbCk7CiAgICAgaW50IG51bWJlck9mUGFnZXMoV2ViRnJh
bWUqLCBkb3VibGUsIGRvdWJsZSk7CiAgICAgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChX
ZWJGcmFtZSosIGNvbnN0IFN0cmluZyYsIGRvdWJsZSwgZG91YmxlKTsKICAgICBTdHJpbmcgcGFn
ZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoV2ViRnJhbWUqLCBpbnQsIGludCwgaW50LCBpbnQsIGlu
dCwgaW50LCBpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDEyNmZhYjEuLmY5MjlkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIzOTAsNiArMjM5MCw3IEBAIHZvaWQgV2Vi
UGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUp
CiAjZW5kaWYKIAogICAgIHNldHRpbmdzLT5zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25z
b2xlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Omxv
Z3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkS2V5KCkpKTsKKyAgICBzZXR0aW5n
cy0+c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojphc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZEtleSgpKSk7CiAKICAgICBwbGF0Zm9ybVByZWZlcmVuY2VzRGlkQ2hhbmdlKHN0b3JlKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRkMTI0
MWQuLjk3ZmYxZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMy0wMi0yNyAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4sIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW1dLMl0gV1RSIG5lZWRzIGFuIGltcGxlbWVudGF0aW9uIG9m
IHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTA0MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCBpbXBsZW1lbnRhdGlvbiBmb3IKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciB0
byBoYXZlIGEgcG9zc2liaWxpdHkgdG8gdGVzdCBhc3luY2hyb25vdXMKKyAgICAgICAgc3BlbGwg
Y2hlY2tpbmcgaW1wbGVtZW50YXRpb24gZnJvbSBidWcgMTA5NTc3LgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCk6CisgICAgICAgIChXVFIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAxMy0wMi0yNSAg
TmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWFrZSBTY3JpcHRF
cnJvciBub3QgY3Jhc2ggd2hlbiBhcmdzIGlzIGEgdHVwbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCmluZGV4IDI0MmY1YWIuLmJlMTUyYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApA
QCAtNzEsNiArNzEsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRTZXJp
YWxpemVIVFRQTG9hZHMoKTsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygp
OwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChpbiBpbnQgbW9kZWwpOworICAgIHZvaWQgc2V0QXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoaW4gYm9vbGVhbiB2YWx1ZSk7CiAKICAgICAv
LyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkTGlzdCgp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggYWUxODE3Ni4uYTY5YzcyMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC02NzYsNiArNjc2
LDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0Q2FjaGVNb2RlbChpbnQgbW9kZWwpCiAgICAgV0tC
dW5kbGVTZXRDYWNoZU1vZGVsKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgbW9k
ZWwpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBXS0J1bmRsZVNldEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgSW5qZWN0
ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2VHcm91cCgpLCBlbmFibGVkKTsKK30KKwogdm9pZCBUZXN0
UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2lu
KQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW5XSyA9IHRvV0sob3JpZ2lu
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKaW5kZXggY2RhNjFhYS4uOTA0ZDRiYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRTZXJpYWxpemVIVFRQTG9hZHMoKTsKICAgICB2b2lkIGRpc3Bh
dGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChpbnQpOwor
ICAgIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCk7CiAKICAg
ICAvLyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgSlNWYWx1ZVJlZiBjb21wdXRlZFN0eWxl
SW5jbHVkaW5nVmlzaXRlZEluZm8oSlNWYWx1ZVJlZiBlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNmM4ZGU5NS4uZTc2MDlkNCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTU2Niw2ICs1NjYsNyBA
QCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkKICNl
bmRpZgogICAgIFdLUHJlZmVyZW5jZXNTZXRTY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZChw
cmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldEluc3BlY3RvclVzZXNXZWJL
aXRVc2VySW50ZXJmYWNlKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKICNp
ZiAhUExBVEZPUk0oTUFDKQogICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CiAjZW5kaWYK
</data>
<flag name="review"
          id="211155"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
      

    </bug>

</bugzilla>