<?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>52855</bug_id>
          
          <creation_ts>2011-01-20 17:05:54 -0800</creation_ts>
          <short_desc>WebKit2: Implement showModalDialog</short_desc>
          <delta_ts>2011-01-21 12:04:41 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>337737</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-20 17:05:54 -0800</bug_when>
    <thetext>WebKit2: Implement showModalDialog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337777</commentid>
    <comment_count>1</comment_count>
      <attachid>79675</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-20 18:19:32 -0800</bug_when>
    <thetext>Created attachment 79675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337799</commentid>
    <comment_count>2</comment_count>
      <attachid>79675</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-20 18:55:16 -0800</bug_when>
    <thetext>Comment on attachment 79675
Patch

New patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337802</commentid>
    <comment_count>3</comment_count>
      <attachid>79680</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-20 19:06:03 -0800</bug_when>
    <thetext>Created attachment 79680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337808</commentid>
    <comment_count>4</comment_count>
      <attachid>79680</attachid>
    <who name="">mitz</who>
    <bug_when>2011-01-20 19:15:45 -0800</bug_when>
    <thetext>Comment on attachment 79680
Patch

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

Looks good but missing a piece.

&gt; Source/WebKit2/ChangeLog:47
&gt; +        * WebProcess/WebPage/WebPage.h: Defined them canRunModal function

Typo: them

&gt; Source/WebKit2/ChangeLog:48
&gt; +        and declared these runModal function.

Another typo(?): these

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:173
&gt; -    const void *                                                        clientInfo;
&gt; +    const void*                                                         clientInfo;

I believe “void *” is the CF API convention.

&gt; Tools/ChangeLog:19
&gt; +        * WebKitTestRunner/TestController.cpp:
&gt; +        (WTR::TestController::runModal): Added. Calls through to the
&gt; +        platform-specific version of runModal.
&gt; +        (WTR::TestController::createOtherPage): Changed to be a private
&gt; +        static member function so it can refer to runModal, which is
&gt; +        a private static member function.
&gt; +        (WTR::TestController::initialize): Pass 0 for the runModal
&gt; +        function since we don&apos;t need to run the main window modal.
&gt; +        I suspect this is wrong and will need to change.

These changes aren’t included in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337810</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-20 19:20:25 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; These changes aren’t included in the patch.

This must be due to a bug in webkit-patch upload, since I used that to upload the patch. Something like this happened to me another time recently, and resulted in a broken build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337811</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-20 19:21:29 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.h:173
&gt; &gt; -    const void *                                                        clientInfo;
&gt; &gt; +    const void*                                                         clientInfo;
&gt; 
&gt; I believe “void *” is the CF API convention.

Sam told me my change is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337812</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-01-20 19:22:02 -0800</bug_when>
    <thetext>Attachment 79680 did not build on qt:
Build output: http://queues.webkit.org/results/7534275</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337814</commentid>
    <comment_count>8</comment_count>
      <attachid>79683</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-20 19:26:31 -0800</bug_when>
    <thetext>Created attachment 79683
Patch addressing Mitz’s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337817</commentid>
    <comment_count>9</comment_count>
      <attachid>79683</attachid>
    <who name="">mitz</who>
    <bug_when>2011-01-20 19:29:29 -0800</bug_when>
    <thetext>Comment on attachment 79683
Patch addressing Mitz’s comments

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

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:173
&gt; -    const void *                                                        clientInfo;
&gt; +    const void*                                                         clientInfo;

This change is inconsistent with other client interfaces in WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337819</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-01-20 19:30:42 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/C/WKPage.h:173
&gt; &gt; &gt; -    const void *                                                        clientInfo;
&gt; &gt; &gt; +    const void*                                                         clientInfo;
&gt; &gt; 
&gt; &gt; I believe “void *” is the CF API convention.
&gt; 
&gt; Sam told me my change is OK.

Didn’t see this comment. I think if we want to change this, we should change all interfaces at once and not just one of them as part of an unrelated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337822</commentid>
    <comment_count>11</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-20 19:34:46 -0800</bug_when>
    <thetext>Attachment 79680 did not build on win:
Build output: http://queues.webkit.org/results/7640003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337825</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-20 19:37:59 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; These changes aren’t included in the patch.
&gt; 
&gt; This must be due to a bug in webkit-patch upload, since I used that to upload the patch. Something like this happened to me another time recently, and resulted in a broken build.

I assume you use SVN?

Could this be related to the recent &quot;respect the current directory&quot; support Maciej added?  How often have you seen these sorts of mis-uploads?  Do you happen to remember if the changes appeared in the pretty diff it showed you before upload?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337831</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-20 20:03:27 -0800</bug_when>
    <thetext>*** Bug 51259 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337836</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-20 20:08:34 -0800</bug_when>
    <thetext>Attachment 79680 did not build on mac:
Build output: http://queues.webkit.org/results/7605227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>337855</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-20 21:04:16 -0800</bug_when>
    <thetext>Attachment 79683 did not build on mac:
Build output: http://queues.webkit.org/results/7588231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338157</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-21 10:45:10 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76361
http://trac.webkit.org/changeset/76362</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338235</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-21 12:00:26 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; These changes aren’t included in the patch.
&gt; &gt; 
&gt; &gt; This must be due to a bug in webkit-patch upload, since I used that to upload the patch. Something like this happened to me another time recently, and resulted in a broken build.
&gt; 
&gt; I assume you use SVN?

Yes.

&gt; Could this be related to the recent &quot;respect the current directory&quot; support Maciej added?

Seems unlikely. The previous time it happened was before Maciej’s change, and my current directory was the top level.

&gt; How often have you seen these sorts of mis-uploads?

Twice.

&gt; Do you happen to remember if the changes appeared in the pretty diff it showed you before upload?

I don’t remember, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338239</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-21 12:04:41 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; How often have you seen these sorts of mis-uploads?
&gt; 
&gt; Twice.

Thank you for the info.  We&apos;ll just have to keep our eyes open.

The only bug like this that I know of is webkit-patch upload fails to include rename information when working from Git checkouts.  This is the first I&apos;ve heard of missing diff information from svn checkouts.  webkit-patch just uses &quot;svn-create-patch&quot; under the covers:

http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/checkout/scm.py#L479

However, these days it does use an explicit list of changed files (which was gathered at an earlier part of the command).  So it&apos;s possible it won&apos;t pick up modifications to files done while it&apos;s stopped showing you the diff.  (I&apos;m not sure of that, but Adam would know.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79675</attachid>
            <date>2011-01-20 18:19:32 -0800</date>
            <delta_ts>2011-01-20 19:06:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52855-20110120181930.patch</filename>
            <type>text/plain</type>
            <size>27804</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2MzE4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDEtMjAgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYktpdDI6IEltcGxlbWVudCBzaG93TW9kYWxEaWFsb2cKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODU1CisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOiBBZGRlZCBjYW5SdW5Nb2Rh
bC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgYSBydW5Nb2Rh
bCBmdW5jdGlvbiBwb2ludGVyIHRvCisgICAgICAgIFdLUGFnZVVJQ2xpZW50LiBBbHNvIHJlbW92
ZWQgYSBsb3Qgb2YgcmVkdW5kYW50IHR5cGVkZWZzIGFuZCBhZGRlZAorICAgICAgICBhIG5ldyBv
bmUsIFdLUGFnZUNhbGxiYWNrLCBmb3IgY2FsbGJhY2tzIHdpdGhvdXQgYXJndW1lbnRzIG9yIHJl
dHVybgorICAgICAgICB2YWx1ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwOgorICAgICAgICAoUVdLUGFnZTo6UVdLUGFnZSk6IEFkZGVkIGEgcnVuTW9kYWwgZnVu
Y3Rpb24gcG9pbnRlciBvZiAwLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKTog
U2V0IGNhblJ1bk1vZGFsCisgICAgICAgIGJhc2VkIG9uIHJldHVybiB2YWx1ZSBvZiBXZWJVSUNs
aWVudDo6Y2FuUnVuTW9kYWwuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
IEFkZGVkIHJ1bk1vZGFsLgorICAgICAgICBDYWxscyBXZWJVSUNsaWVudDo6cnVuTW9kYWwuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZCBSdW5N
b2RhbCBtZXNzYWdlLgorICAgICAgICBBbHNvIHJlbW92ZWQgdGhlIHBlcmlvZHMgZnJvbSB0aGUg
cGhyYXNlcyBpbiB0aGUgY29tbWVudHMKKyAgICAgICAgYXMgTWFjaWVqIHJlcXVlc3RlZCBhIHdo
aWxlIGJhY2suCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6Y2FuUnVuTW9kYWwpOiBBZGRlZC4gUmV0dXJucyB0cnVl
IG9yIGZhbHNlCisgICAgICAgIGJhc2VkIG9uIHdoZXRoZXIgYSBydW5Nb2RhbCBmdW5jdGlvbiB3
YXMgc3VwcGxpZWQgaW4gdGhlCisgICAgICAgIFdLUGFnZVVJQ2xpZW50IHN0cnVjdHVyZS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OnJ1bk1vZGFsKTogQWRkZWQuIENhbGxzIHRoZSBy
dW5Nb2RhbAorICAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBXS1BhZ2VVSUNsaWVudCBzdHJ1Y3R1
cmUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6IERlY2xhcmVkIHRoZSBhYm92
ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y2FuUnVu
TW9kYWwpOiBDYWxsIHRocm91Z2ggdG8gV2ViUGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpydW5Nb2RhbCk6IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogSW5p
dGlhbGl6ZSBtX2NhblJ1bk1vZGFsIGJhc2VkIG9uIHRoZQorICAgICAgICBjcmVhdGlvbiBwYXJh
bWV0ZXJzLiBJbml0aWFsaXplIG1faXNSdW5uaW5nTW9kYWwgdG8gZmFsc2UuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKTogU3RvcCB0aGUgbmVzdGVkIHJ1biBsb29wIGlmIHdlIGFy
ZSBydW5uaW5nIG1vZGFsLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5Nb2RhbCk6IFNl
bmQgYSBtZXNzYWdlIHRvIGFzayB0aGUgVUkgcHJvY2VzcyB0byBydW4KKyAgICAgICAgbW9kYWwg
YW5kIHRoZW4gc3RhcnQgYSBuZXN0ZWQgcnVuIGxvb3AuIEl0IGdldHMgc3RvcHBlZCB3aGVuIHRo
ZSBwYWdlIGlzIGNsb3NlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OiBEZWZpbmVkIHRoZW0gY2FuUnVuTW9kYWwgZnVuY3Rpb24KKyAgICAgICAgYW5kIGRlY2xhcmVk
IHRoZXNlIHJ1bk1vZGFsIGZ1bmN0aW9uLgorCiAyMDExLTAxLTIwICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oCShyZXZpc2lvbiA3NjI2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Niw5ICs2NiwxMiBAQCBzdHJ1
Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU2Vzc2lvblN0YXRlIHNlc3Npb25T
dGF0ZTsKICAgICB1aW50NjRfdCBoaWdoZXN0VXNlZEJhY2tGb3J3YXJkSXRlbUlEOwogCisgICAg
Ym9vbCBjYW5SdW5Nb2RhbDsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIGlzU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOwogI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAgSFdO
RCBuYXRpdmVXaW5kb3c7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA3NjI2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMjcwLDcgKzIyNzAsNiBAQCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiAgICAgcGFyYW1ldGVycy5p
c0ZvY3VzZWQgPSBtX3BhZ2VDbGllbnQtPmlzVmlld0ZvY3VzZWQoKTsKICAgICBwYXJhbWV0ZXJz
LmlzVmlzaWJsZSA9IG1fcGFnZUNsaWVudC0+aXNWaWV3VmlzaWJsZSgpOwogICAgIHBhcmFtZXRl
cnMuaXNJbldpbmRvdyA9IG1fcGFnZUNsaWVudC0+aXNWaWV3SW5XaW5kb3coKTsKLQogICAgIHBh
cmFtZXRlcnMuZHJhd2luZ0FyZWFJbmZvID0gbV9kcmF3aW5nQXJlYS0+aW5mbygpOwogICAgIHBh
cmFtZXRlcnMuc3RvcmUgPSBtX3BhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS0+c3RvcmUoKTsKICAg
ICBwYXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEgPSBtX3BhZ2VHcm91cC0+ZGF0YSgpOwpAQCAtMjI4
MSw2ICsyMjgwLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6Ogog
ICAgIHBhcmFtZXRlcnMudXNlckFnZW50ID0gdXNlckFnZW50KCk7CiAgICAgcGFyYW1ldGVycy5z
ZXNzaW9uU3RhdGUgPSBTZXNzaW9uU3RhdGUobV9iYWNrRm9yd2FyZExpc3QtPmVudHJpZXMoKSwg
bV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJbmRleCgpKTsKICAgICBwYXJhbWV0ZXJzLmhpZ2hl
c3RVc2VkQmFja0ZvcndhcmRJdGVtSUQgPSBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpoaWdoZWRV
c2VkSXRlbUlEKCk7CisgICAgcGFyYW1ldGVycy5jYW5SdW5Nb2RhbCA9IG1fdWlDbGllbnQuY2Fu
UnVuTW9kYWwoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBwYXJhbWV0ZXJzLmlzU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkID0gbV9pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDc2MjY4KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC00NDAsNiArNDQwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJ1bk9wZW5QYW5lbCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOjpEYXRhJik7CiAgICAgdm9p
ZCBleGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5n
JiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50VXNh
Z2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIHVpbnQ2NF90JiBuZXdRdW90YSk7CiAgICAgdm9p
ZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRp
b25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOworICAgIHZv
aWQgcnVuTW9kYWwoKSB7IG1fdWlDbGllbnQucnVuTW9kYWwodGhpcyk7IH0KIAogICAgIHZvaWQg
cmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0
aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA3NjI2OCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKLSAgICAjIFVJIG1lc3NhZ2VzLgorICAgICMgVUkgbWVzc2FnZXMKICAgICBDcmVhdGVO
ZXdQYWdlKFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzLCB1aW50MzJfdCBt
b2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24pIC0+ICh1aW50NjRfdCBuZXdQYWdlSUQsIFdl
YktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBuZXdQYWdlUGFyYW1ldGVycykKICAgICBT
aG93UGFnZSgpCiAgICAgQ2xvc2VQYWdlKCkKQEAgLTUzLDYgKzUzLDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV1RGOjpTdHJp
bmcgbWVzc2FnZSwgdWludDY0X3QgZnJhbWVJRCkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpCiAgICAg
UGFnZURpZFNjcm9sbCgpCiAgICAgUnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktp
dDo6V2ViT3BlblBhbmVsUGFyYW1ldGVyczo6RGF0YSBwYXJhbWV0ZXJzKQorICAgIFJ1bk1vZGFs
KCkKIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIFBhZ2VEaWRSZXF1ZXN0
U2Nyb2xsKFdlYkNvcmU6OkludFNpemUgZGVsdGEpCkBAIC02MiwyMyArNjMsMjMgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRGaW5kWm9vbWFibGVBcmVhKFdlYkNvcmU6Oklu
dFJlY3QgYXJlYSkKICNlbmRpZgogCi0gICAgIyBQb2xpY3kgbWVzc2FnZXMuCisgICAgIyBQb2xp
Y3kgbWVzc2FnZXMKICAgICBEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSh1aW50NjRfdCBmcmFtZUlE
LCBXVEY6OlN0cmluZyBNSU1FVHlwZSwgV1RGOjpTdHJpbmcgdXJsLCB1aW50NjRfdCBsaXN0ZW5l
cklEKSAtPiAoYm9vbCByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QgcG9saWN5QWN0aW9u
LCB1aW50NjRfdCBkb3dubG9hZElEKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3QgbmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG1v
ZGlmaWVycywgaW50MzJfdCBtb3VzZUJ1dHRvbiwgV1RGOjpTdHJpbmcgdXJsLCB1aW50NjRfdCBs
aXN0ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBm
cmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQz
Ml90IG1vdXNlQnV0dG9uLCBXVEY6OlN0cmluZyB1cmwsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiAK
LSAgICAjIFByb2dyZXNzIG1lc3NhZ2VzLgorICAgICMgUHJvZ3Jlc3MgbWVzc2FnZXMKICAgICBE
aWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUgdmFsdWUpCiAgICAgRGlkRmluaXNoUHJvZ3Jlc3MoKQog
ICAgIERpZFN0YXJ0UHJvZ3Jlc3MoKQogCi0gICAgIyBGcmFtZSBsaWZldGltZSBtZXNzYWdlcy4K
KyAgICAjIEZyYW1lIGxpZmV0aW1lIG1lc3NhZ2VzCiAgICAgRGlkQ3JlYXRlTWFpbkZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpCiAgICAgRGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgcGFyZW50RnJhbWVJRCkKICAgICBEaWRTYXZlRnJhbWVUb1BhZ2VDYWNoZSh1aW50
NjRfdCBmcmFtZUlEKTsKICAgICBEaWRSZXN0b3JlRnJhbWVGcm9tUGFnZUNhY2hlKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogCi0gICAgIyBGcmFtZSBsb2FkIG1l
c3NhZ2VzLgorICAgICMgRnJhbWUgbG9hZCBtZXNzYWdlcwogICAgIERpZENvbW1pdExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXNDdXN0
b21SZXByZXNlbnRhdGlvbiwgV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZp
Y2F0ZUluZm8sIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRh
dGEpCiAgICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyIHVzZXJEYXRhKQogICAgIERpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OkluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQpAQCAtOTYsNyArOTcsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgRnJhbWVEaWRCZWNvbWVGcmFtZVNldCh1aW50
NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQogCi0gICAgIyBSZXNvdXJjZSBsb2FkIG1lc3NhZ2Vz
LgorICAgICMgUmVzb3VyY2UgbG9hZCBtZXNzYWdlcwogICAgIERpZEluaXRpYXRlTG9hZEZvclJl
c291cmNlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCiAgICAgRGlkU2VuZFJlcXVlc3RGb3JSZXNv
dXJjZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
ZGlyZWN0UmVzcG9uc2UpCiAgICAgRGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKQpAQCAtMTA3LDIxICsxMDgsMjEgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICAjIEN1c3RvbSByZXByZXNlbnRhdGlvbnMKICAgICBEaWRGaW5pc2hM
b2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKENvcmVJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YSkKIAotICAgICMgRm9ybXMgbWVzc2FnZXMuCisgICAgIyBGb3JtcyBtZXNzYWdlcwogICAg
IFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQs
IFdlYktpdDo6U3RyaW5nUGFpclZlY3RvciB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEp
CiAKLSAgICAjIENhbGxiYWNrIG1lc3NhZ2VzLgorICAgICMgQ2FsbGJhY2sgbWVzc2FnZXMKICAg
ICBEYXRhQ2FsbGJhY2soQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSByZXN1bHREYXRhLCB1aW50NjRf
dCBjYWxsYmFja0lEKQogICAgIFN0cmluZ0NhbGxiYWNrKFdURjo6U3RyaW5nIHJlc3VsdFN0cmlu
ZywgdWludDY0X3QgY2FsbGJhY2tJRCkKIAogICAgIERpZFJlY2VpdmVBY2Nlc3NpYmlsaXR5UGFn
ZVRva2VuKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICAjIEtleWJvYXJkIHN1cHBvcnQgbWVzc2FnZXMuCisgICAgIyBLZXlib2FyZCBzdXBwb3J0
IG1lc3NhZ2VzCiAgICAgSW50ZXJwcmV0S2V5RXZlbnQodWludDMyX3QgdHlwZSkgLT4gKFZlY3Rv
cjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmROYW1lLCB1aW50MzJfdCBzZWxlY3Rp
b25TdGFydCwgdWludDMyX3Qgc2VsZWN0aW9uRW5kLCBWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRp
b25VbmRlcmxpbmU+IHVuZGVybGluZXMpCiAjZW5kaWYKICAgICAKLSAgICAjIEJhY2tGb3J3YXJk
IG1lc3NhZ2VzLgorICAgICMgQmFja0ZvcndhcmQgbWVzc2FnZXMKICAgICBCYWNrRm9yd2FyZEFk
ZEl0ZW0odWludDY0X3QgaXRlbUlEKQogICAgIEJhY2tGb3J3YXJkR29Ub0l0ZW0odWludDY0X3Qg
aXRlbUlEKQogICAgIEJhY2tGb3J3YXJkSXRlbUF0SW5kZXgoaW50MzJfdCBpdGVtSW5kZXgpIC0+
ICh1aW50NjRfdCBpdGVtSUQpCkBAIC0xMjksNjcgKzEzMCw2NyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIEJhY2tGb3J3YXJkRm9yd2FyZExpc3RDb3VudCgpIC0+IChpbnQzMl90
IGNvdW50KQogICAgIEJhY2tGb3J3YXJkQ2xlYXIoKQogCi0gICAgIyBVbmRvL1JlZG8gbWVzc2Fn
ZXMuCisgICAgIyBVbmRvL1JlZG8gbWVzc2FnZXMKICAgICBSZWdpc3RlckVkaXRDb21tYW5kRm9y
VW5kbyh1aW50NjRfdCBjb21tYW5kSUQsIHVpbnQzMl90IGVkaXRBY3Rpb24pCiAgICAgQ2xlYXJB
bGxFZGl0Q29tbWFuZHMoKQogICAgIAotICAgICMgU2VsZWN0aW9uIG1lc3NhZ2VzLgorICAgICMg
U2VsZWN0aW9uIG1lc3NhZ2VzCiAgICAgU2VsZWN0aW9uU3RhdGVDaGFuZ2VkKFdlYktpdDo6U2Vs
ZWN0aW9uU3RhdGUgc2VsZWN0aW9uU3RhdGUpCiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgRGlk
Q2hhbmdlQ29tcG9zaXRpb25TZWxlY3Rpb24oYm9vbCBoYXNDaGFuZ2VkKQogI2VuZGlmCiAKLSAg
ICAjIEZpbmQgbWVzc2FnZXMuCisgICAgIyBGaW5kIG1lc3NhZ2VzCiAgICAgRGlkQ291bnRTdHJp
bmdNYXRjaGVzKFdURjo6U3RyaW5nIHN0cmluZywgdWludDMyX3QgbWF0Y2hDb3VudCkKICAgICBT
ZXRGaW5kSW5kaWNhdG9yKFdlYkNvcmU6OkZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0LCBWZWN0b3I8
V2ViQ29yZTo6RmxvYXRSZWN0PiB0ZXh0UmVjdHMsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5k
bGUgY29udGVudEltYWdlSGFuZGxlLCBib29sIGZhZGVPdXQpCiAgICAgRGlkRmluZFN0cmluZyhX
VEY6OlN0cmluZyBzdHJpbmcsIHVpbnQzMl90IG1hdGNoQ291bnQpCiAgICAgRGlkRmFpbFRvRmlu
ZFN0cmluZyhXVEY6OlN0cmluZyBzdHJpbmcpCiAKLSAgICAjIFBvcHVwTWVudSBtZXNzYWdlcy4K
KyAgICAjIFBvcHVwTWVudSBtZXNzYWdlcwogICAgIFNob3dQb3B1cE1lbnUoV2ViQ29yZTo6SW50
UmVjdCByZWN0LCBWZWN0b3I8V2ViS2l0OjpXZWJQb3B1cEl0ZW0+IGl0ZW1zLCBpbnQzMl90IHNl
bGVjdGVkSW5kZXgsIFdlYktpdDo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhIGRhdGEpCiAgICAgSGlk
ZVBvcHVwTWVudSgpCiAgICAgCi0gICAgIyBDb250ZXh0TWVudSBtZXNzYWdlcy4KKyAgICAjIENv
bnRleHRNZW51IG1lc3NhZ2VzCiAgICAgU2hvd0NvbnRleHRNZW51KFdlYkNvcmU6OkludFBvaW50
IG1lbnVMb2NhdGlvbiwgV2ViS2l0OjpDb250ZXh0TWVudVN0YXRlIHN0YXRlLCBWZWN0b3I8V2Vi
S2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBpdGVtcywgV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICAjIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1lc3NhZ2VzLgorICAgICMg
QWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbWVzc2FnZXMKICAgICBEaWRDaGFuZ2VBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nKGJvb2wgY29tcG9zaXRpbmcpIC0+IChXZWJLaXQ6OkRyYXdpbmdBcmVhSW5m
byBuZXdEcmF3aW5nQXJlYSkKICNlbmRpZgogCi0gICAgIyBBdXRoZW50aWNhdGlvbiBtZXNzYWdl
cy4KKyAgICAjIEF1dGhlbnRpY2F0aW9uIG1lc3NhZ2VzCiAgICAgQ2FuQXV0aGVudGljYXRlQWdh
aW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFjZSkgLT4gKGJvb2wgY2FuQXV0aGVudGljYXRlKQog
ICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxs
ZW5nZUlEKQogCi0gICAgIyBEYXRhYmFzZSBtZXNzYWdlcy4KKyAgICAjIERhdGFiYXNlIG1lc3Nh
Z2VzCiAgICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIsIFdURjo6U3RyaW5nIGRhdGFiYXNlTmFtZSwgV1RGOjpTdHJp
bmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBj
dXJyZW50VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90
YSkKIAotICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMuCisgICAgIyBHZW9sb2NhdGlvbiBtZXNz
YWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBn
ZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlm
aWVyKQogCi0gICAgIyBQbHVnLWluIGNvbXBsZXggdGV4dCBpbnB1dCBzdXBwb3J0IG1lc3NhZ2Vz
LgogI2lmIFBMQVRGT1JNKE1BQykKKyAgICAjIFBsdWctaW4gY29tcGxleCB0ZXh0IGlucHV0IHN1
cHBvcnQgbWVzc2FnZXMKICAgICBTZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5h
YmxlZCkKICNlbmRpZgogCi0gICAgIyBTcGVlY2ggbWVzc2FnZXMuCiAjaWYgUExBVEZPUk0oTUFD
KQorICAgICMgU3BlZWNoIG1lc3NhZ2VzCiAgICAgR2V0SXNTcGVha2luZygpIC0+IChib29sIGlz
U3BlYWtpbmcpCiAgICAgU3BlYWsoV1RGOjpTdHJpbmcgc3RyaW5nKQogICAgIFN0b3BTcGVha2lu
ZygpCiAjZW5kaWYKIAotICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIuCisgICAgIyBTcGVsbGlu
ZyBhbmQgZ3JhbW1hciBtZXNzYWdlcwogICAgIENoZWNrVGV4dE9mUGFyYWdyYXBoKFdURjo6U3Ry
aW5nIHRleHQsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMpIC0+IChWZWN0b3I8V2ViQ29yZTo6VGV4
dENoZWNraW5nUmVzdWx0PiByZXN1bHRzKQogICAgIFVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3Bl
bGxlZFdvcmQoV1RGOjpTdHJpbmcgbWlzc3BlbGxlZFdvcmQpCiAgICAgR2V0R3Vlc3Nlc0Zvcldv
cmQoV1RGOjpTdHJpbmcgd29yZCwgV1RGOjpTdHJpbmcgY29udGV4dCkgLT4gKFZlY3RvcjxXVEY6
OlN0cmluZz4gZ3Vlc3NlcykKICAgICBMZWFybldvcmQoV1RGOjpTdHJpbmcgd29yZCk7CiAgICAg
SWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsKICAgICAKLSAgICAjIERyYWcgYW5kIGRyb3Au
CisgICAgIyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2VzCiAgICAgRGlkUGVyZm9ybURyYWdDb250cm9s
bGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJhdGlvbikKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgU2V0RHJhZ0ltYWdlKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3Jl
OjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBkcmFnSW1h
Z2VIYW5kbGUsIGJvb2wgbGlua0RyYWcpCisgICAgU2V0RHJhZ0ltYWdlKFdlYkNvcmU6OkludFBv
aW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpT
aGFyZWRNZW1vcnk6OkhhbmRsZSBkcmFnSW1hZ2UsIGJvb2wgbGlua0RyYWcpCiAjZW5kaWYKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAkocmV2aXNpb24g
NzYyNjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMDUsNCArMzA1LDE3IEBAIHZvaWQgV2ViVUlDbGllbnQ6OmRyYXdGb290ZXIo
V2ViUGFnZVByb3gKICAgICBtX2NsaWVudC5kcmF3Rm9vdGVyKHRvQVBJKHBhZ2UpLCB0b0FQSShm
cmFtZSksIHRvQVBJKHJlY3QpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAorYm9vbCBXZWJV
SUNsaWVudDo6Y2FuUnVuTW9kYWwoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC5ydW5N
b2RhbDsKK30KKwordm9pZCBXZWJVSUNsaWVudDo6cnVuTW9kYWwoV2ViUGFnZVByb3h5KiBwYWdl
KQoreworICAgIGlmICghbV9jbGllbnQucnVuTW9kYWwpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY2xpZW50LnJ1bk1vZGFsKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VUlDbGllbnQuaAkocmV2aXNpb24gNzYyNjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTIsNiArOTIsOSBAQCBwdWJsaWM6CiAgICAg
ZmxvYXQgZm9vdGVySGVpZ2h0KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqKTsKICAgICB2
b2lkIGRyYXdIZWFkZXIoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpOwogICAgIHZvaWQgZHJhd0Zvb3RlcihXZWJQYWdlUHJveHkqLCBXZWJG
cmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisKKyAgICBib29sIGNhblJ1
bk1vZGFsKCkgY29uc3Q7CisgICAgdm9pZCBydW5Nb2RhbChXZWJQYWdlUHJveHkqKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaAkocmV2aXNpb24gNzYyNjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDYgKzQxLDggQEAKIGV4dGVybiAiQyIg
ewogI2VuZGlmCiAKK3R5cGVkZWYgdm9pZCAoKldLUGFnZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKIC8vIEZyYW1lTG9hZCBDbGllbnQKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZURpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKQEAgLTU5LDE5ICs2MSw2IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJ1
bkluc2VjdXJlQ29udGUKIHR5cGVkZWYgYm9vbCAoKldLUGFnZUNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2VJbkZyYW1lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS1Byb3RlY3Rpb25TcGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlSW5GcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiBhdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKLS8vIFByb2dyZXNzIENsaWVudAotdHlw
ZWRlZiB2b2lkICgqV0tQYWdlRGlkU3RhcnRQcm9ncmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDaGFu
Z2VQcm9ncmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRGaW5pc2hQcm9ncmVzc0NhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci0KLS8vIFdlYlByb2Nlc3MgQ2xp
ZW50Ci0vLyBGSVhNRTogVGhlc2UgdGhyZWUgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgcGFydCBv
ZiB0aGlzIGNsaWVudC4KLXR5cGVkZWYgdm9pZCAoKldLUGFnZVByb2Nlc3NEaWRCZWNvbWVVbnJl
c3BvbnNpdmVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
OwotdHlwZWRlZiB2b2lkICgqV0tQYWdlUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmVDYWxsYmFj
aykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lk
ICgqV0tQYWdlUHJvY2Vzc0RpZENyYXNoQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKLQotdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkQ2hhbmdlQmFja0Zv
cndhcmRMaXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKLQogc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9u
OwogICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKQEAgLTkzLDE2ICs4MiwxNiBAQCBzdHJ1Y3Qg
V0tQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBXS1BhZ2VEaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VJbkZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgIGRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUluRnJhbWU7CiAKICAgICAvLyBGSVhNRTogTW92ZSB0byBwcm9ncmVzcyBj
bGllbnQuCi0gICAgV0tQYWdlRGlkU3RhcnRQcm9ncmVzc0NhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaWRTdGFydFByb2dyZXNzOwotICAgIFdLUGFnZURpZENo
YW5nZVByb2dyZXNzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkQ2hhbmdlUHJvZ3Jlc3M7Ci0gICAgV0tQYWdlRGlkRmluaXNoUHJvZ3Jlc3NDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hQcm9ncmVzczsKKyAg
ICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZFN0YXJ0UHJvZ3Jlc3M7CisgICAgV0tQYWdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDaGFuZ2VQ
cm9ncmVzczsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZpbmlzaFByb2dyZXNzOwogCiAgICAgLy8gRklY
TUU6IFRoZXNlIHRocmVlIGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhpcyBjbGll
bnQuCi0gICAgV0tQYWdlUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOwotICAgIFdL
UGFnZVByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU7Ci0gICAgV0tQYWdlUHJvY2Vzc0Rp
ZENyYXNoQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9j
ZXNzRGlkQ3Jhc2g7CisgICAgV0tQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZl
OworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU7CisgICAgV0tQYWdl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzRGlkQ3Jhc2g7CiAKLSAgICBXS1BhZ2VEaWRDaGFuZ2VCYWNrRm9yd2FyZExp
c3RDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUJhY2tGb3J3
YXJkTGlzdDsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdDsKIH07CiB0
eXBlZGVmIHN0cnVjdCBXS1BhZ2VMb2FkZXJDbGllbnQgV0tQYWdlTG9hZGVyQ2xpZW50OwogCkBA
IC0xNTIsOCArMTQxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlUmVzb3VyY2VMb2FkQ2xpZW50
IAogCiAvLyBVSSBDbGllbnQKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFn
ZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2
ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZVNob3dQYWdlQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYg
dm9pZCAoKldLUGFnZUNsb3NlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZy
YW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgYm9vbCAoKldLUGFnZVJ1bkph
dmFTY3JpcHRDb25maXJtQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNz
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYg
V0tTdHJpbmdSZWYgKCpXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdL
RnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMTcyLDggKzE1OSw2
IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNldElzUmVzaXphYmxlQ2FsbGIKIHR5cGVkZWYgV0tS
ZWN0ICgqV0tQYWdlR2V0V2luZG93RnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0V2luZG93RnJhbWVD
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUmVjdCBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbyk7CiB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxD
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlk
RHJhd0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10
eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRTY3JvbGxDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgKCpXS1Bh
Z2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBXS1N0cmluZ1JlZiBkYXRhYmFz
ZU5hbWUsIFdLU3RyaW5nUmVmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVu
dFF1b3RhLCB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFVzYWdlLCB1bnNpZ25lZCBsb25nIGxv
bmcgZXhwZWN0ZWRVc2FnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLT3BlblBhbmVsUGFyYW1ldGVyc1JlZiBwYXJhbWV0ZXJzLCBXS09wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlP
cmlnaW5SZWYgb3JpZ2luLCBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlz
c2lvblJlcXVlc3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpAQCAtMTg0LDEwICsxNjksMTAg
QEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRHJhd0Zvb3RlcikoV0tQYWdlUgogCiBzdHJ1Y3QgV0tQ
YWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKLSAgICBjb25zdCB2b2lkICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
aWVudEluZm87CisgICAgY29uc3Qgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOwogICAgIFdLUGFnZUNyZWF0ZU5l
d1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
YXRlTmV3UGFnZTsKLSAgICBXS1BhZ2VTaG93UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOwotICAgIFdLUGFnZUNsb3NlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xv
c2U7CisgICAgV0tQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaG93UGFnZTsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlOwogICAg
IFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0OwogICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRD
b25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNj
cmlwdENvbmZpcm07CiAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OwpAQCAtMjA2
LDggKzE5MSw4IEBAIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCB7CiAgICAgV0tQYWdlR2V0V2luZG93
RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRX
aW5kb3dGcmFtZTsKICAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOwogICAgIFdLUGFnZVJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOwotICAgIFdLUGFnZURpZERyYXdDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsK
LSAgICBXS1BhZ2VEaWRTY3JvbGxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAgV0tQYWdlQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREcmF3Owor
ICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKICAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNl
UXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0
YWJhc2VRdW90YTsKICAgICBXS1BhZ2VSdW5PcGVuUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5QYW5lbDsKICAgICBXS1BhZ2VEZWNp
ZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAg
IGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CkBAIC0yMTUsNiAr
MjAwLDcgQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VGb290ZXJIZWlnaHQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3Rlckhl
aWdodDsKICAgICBXS1BhZ2VEcmF3SGVhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CiAgICAgV0tQYWdlRHJhd0Zvb3RlciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9v
dGVyOworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdl
VUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlLmNwcAkocmV2aXNpb24gNzYyNjgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTcsNyAr
NDU3LDggQEAgUVdLUGFnZTo6UVdLUGFnZShRV0tDb250ZXh0KiBjb250ZXh0KQogICAgICAgICAw
LCAgLyogaGVhZGVySGVpZ2h0ICovCiAgICAgICAgIDAsICAvKiBmb290ZXJIZWlnaHQgKi8KICAg
ICAgICAgMCwgIC8qIGRyYXdIZWFkZXIgKi8KLSAgICAgICAgMCAgIC8qIGRyYXdGb290ZXIgKi8K
KyAgICAgICAgMCwgIC8qIGRyYXdGb290ZXIgKi8KKyAgICAgICAgMCAgIC8qIHJ1bk1vZGFsICov
CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZigpLCAmdWlDbGllbnQp
OwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gNzYyNjgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtMTczLDEzICsxNzMsMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNob3coKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuUnVuTW9kYWwoKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3BhZ2UtPmNh
blJ1bk1vZGFsKCk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5Nb2RhbCgpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX3BhZ2UtPnJ1bk1vZGFsKCk7CiB9CiAKIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRUb29sYmFyc1Zpc2libGUoYm9vbCB0b29sYmFyc0FyZVZpc2li
bGUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCShyZXZpc2lvbiA3NjI2OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IlBsdWdpblByb3h5LmgiCiAjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlByaW50
SW5mby5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIK
ICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExp
c3QuaCIKQEAgLTE0OSw2ICsxNTAsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgCiAgICAgLCBtX2ZpbmRDb250cm9sbGVyKHRoaXMpCiAgICAgLCBtX2dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQp
CisgICAgLCBtX2NhblJ1bk1vZGFsKHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwpCisgICAgLCBtX2lz
UnVubmluZ01vZGFsKGZhbHNlKQogewogICAgIEFTU0VSVChtX3BhZ2VJRCk7CiAKQEAgLTM3Nyw2
ICszODAsMTEgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgbV9kcmF3aW5nQXJlYS5jbGVh
cigpOwogCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucmVtb3ZlV2ViUGFnZShtX3BhZ2VJRCk7
CisKKyAgICBpZiAobV9pc1J1bm5pbmdNb2RhbCkgeworICAgICAgICBtX2lzUnVubmluZ01vZGFs
ID0gZmFsc2U7CisgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJ1bkxvb3AoKS0+c3RvcCgp
OworICAgIH0KIH0KIAogdm9pZCBXZWJQYWdlOjp0cnlDbG9zZSgpCkBAIC0xNzkzLDQgKzE4MDEs
MTcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvUERGKHVpbnQ2NF90IGZyYQogfQogI2VuZGlm
CiAKK3ZvaWQgV2ViUGFnZTo6cnVuTW9kYWwoKQoreworICAgIGlmIChtX2lzQ2xvc2VkKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKG1faXNSdW5uaW5nTW9kYWwpCisgICAgICAgIHJldHVybjsK
KworICAgIG1faXNSdW5uaW5nTW9kYWwgPSB0cnVlOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuTW9kYWwoKSk7CisgICAgUnVuTG9vcDo6cnVuKCk7CisgICAgQVNTRVJUKCFt
X2lzUnVubmluZ01vZGFsKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDc2MjY4
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzExLDYgKzMxMSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbWFpbkZyYW1l
SGFzQ3VzdG9tUmVwcmVzZW50YXRpb24oKSBjb25zdDsKIAorICAgIGJvb2wgY2FuUnVuTW9kYWwo
KSBjb25zdCB7IHJldHVybiBtX2NhblJ1bk1vZGFsOyB9CisgICAgdm9pZCBydW5Nb2RhbCgpOwor
CiBwcml2YXRlOgogICAgIFdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTQ5NCw2ICs0OTcsOSBAQCBwcml2YXRlOgogCiAgICAg
U2FuZGJveEV4dGVuc2lvblRyYWNrZXIgbV9zYW5kYm94RXh0ZW5zaW9uVHJhY2tlcjsKICAgICB1
aW50NjRfdCBtX3BhZ2VJRDsKKworICAgIGJvb2wgbV9jYW5SdW5Nb2RhbDsKKyAgICBib29sIG1f
aXNSdW5uaW5nTW9kYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79680</attachid>
            <date>2011-01-20 19:06:03 -0800</date>
            <delta_ts>2011-01-20 19:26:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52855-20110120190601.patch</filename>
            <type>text/plain</type>
            <size>31629</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2MzI1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDEtMjAgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYktpdDI6IEltcGxlbWVudCBzaG93TW9kYWxEaWFsb2cKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODU1CisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOiBBZGRlZCBjYW5SdW5Nb2Rh
bC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgYSBydW5Nb2Rh
bCBmdW5jdGlvbiBwb2ludGVyIHRvCisgICAgICAgIFdLUGFnZVVJQ2xpZW50LiBBbHNvIHJlbW92
ZWQgYSBsb3Qgb2YgcmVkdW5kYW50IHR5cGVkZWZzIGFuZCBhZGRlZAorICAgICAgICBhIG5ldyBv
bmUsIFdLUGFnZUNhbGxiYWNrLCBmb3IgY2FsbGJhY2tzIHdpdGhvdXQgYXJndW1lbnRzIG9yIHJl
dHVybgorICAgICAgICB2YWx1ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwOgorICAgICAgICAoUVdLUGFnZTo6UVdLUGFnZSk6IEFkZGVkIGEgcnVuTW9kYWwgZnVu
Y3Rpb24gcG9pbnRlciBvZiAwLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKTog
U2V0IGNhblJ1bk1vZGFsCisgICAgICAgIGJhc2VkIG9uIHJldHVybiB2YWx1ZSBvZiBXZWJVSUNs
aWVudDo6Y2FuUnVuTW9kYWwuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
IEFkZGVkIHJ1bk1vZGFsLgorICAgICAgICBDYWxscyBXZWJVSUNsaWVudDo6cnVuTW9kYWwuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZCBSdW5N
b2RhbCBtZXNzYWdlLgorICAgICAgICBBbHNvIHJlbW92ZWQgdGhlIHBlcmlvZHMgZnJvbSB0aGUg
cGhyYXNlcyBpbiB0aGUgY29tbWVudHMKKyAgICAgICAgYXMgTWFjaWVqIHJlcXVlc3RlZCBhIHdo
aWxlIGJhY2suCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6Y2FuUnVuTW9kYWwpOiBBZGRlZC4gUmV0dXJucyB0cnVl
IG9yIGZhbHNlCisgICAgICAgIGJhc2VkIG9uIHdoZXRoZXIgYSBydW5Nb2RhbCBmdW5jdGlvbiB3
YXMgc3VwcGxpZWQgaW4gdGhlCisgICAgICAgIFdLUGFnZVVJQ2xpZW50IHN0cnVjdHVyZS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OnJ1bk1vZGFsKTogQWRkZWQuIENhbGxzIHRoZSBy
dW5Nb2RhbAorICAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBXS1BhZ2VVSUNsaWVudCBzdHJ1Y3R1
cmUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6IERlY2xhcmVkIHRoZSBhYm92
ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y2FuUnVu
TW9kYWwpOiBDYWxsIHRocm91Z2ggdG8gV2ViUGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpydW5Nb2RhbCk6IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogSW5p
dGlhbGl6ZSBtX2NhblJ1bk1vZGFsIGJhc2VkIG9uIHRoZQorICAgICAgICBjcmVhdGlvbiBwYXJh
bWV0ZXJzLiBJbml0aWFsaXplIG1faXNSdW5uaW5nTW9kYWwgdG8gZmFsc2UuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKTogU3RvcCB0aGUgbmVzdGVkIHJ1biBsb29wIGlmIHdlIGFy
ZSBydW5uaW5nIG1vZGFsLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5Nb2RhbCk6IFNl
bmQgYSBtZXNzYWdlIHRvIGFzayB0aGUgVUkgcHJvY2VzcyB0byBydW4KKyAgICAgICAgbW9kYWwg
YW5kIHRoZW4gc3RhcnQgYSBuZXN0ZWQgcnVuIGxvb3AuIEl0IGdldHMgc3RvcHBlZCB3aGVuIHRo
ZSBwYWdlIGlzIGNsb3NlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OiBEZWZpbmVkIHRoZW0gY2FuUnVuTW9kYWwgZnVuY3Rpb24KKyAgICAgICAgYW5kIGRlY2xhcmVk
IHRoZXNlIHJ1bk1vZGFsIGZ1bmN0aW9uLgorCiAyMDExLTAxLTIwICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oCShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Niw5ICs2NiwxMiBAQCBzdHJ1
Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU2Vzc2lvblN0YXRlIHNlc3Npb25T
dGF0ZTsKICAgICB1aW50NjRfdCBoaWdoZXN0VXNlZEJhY2tGb3J3YXJkSXRlbUlEOwogCisgICAg
Ym9vbCBjYW5SdW5Nb2RhbDsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIGlzU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOwogI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAgSFdO
RCBuYXRpdmVXaW5kb3c7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMjc4LDcgKzIyNzgsNiBAQCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiAgICAgcGFyYW1ldGVycy5p
c0ZvY3VzZWQgPSBtX3BhZ2VDbGllbnQtPmlzVmlld0ZvY3VzZWQoKTsKICAgICBwYXJhbWV0ZXJz
LmlzVmlzaWJsZSA9IG1fcGFnZUNsaWVudC0+aXNWaWV3VmlzaWJsZSgpOwogICAgIHBhcmFtZXRl
cnMuaXNJbldpbmRvdyA9IG1fcGFnZUNsaWVudC0+aXNWaWV3SW5XaW5kb3coKTsKLQogICAgIHBh
cmFtZXRlcnMuZHJhd2luZ0FyZWFJbmZvID0gbV9kcmF3aW5nQXJlYS0+aW5mbygpOwogICAgIHBh
cmFtZXRlcnMuc3RvcmUgPSBtX3BhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS0+c3RvcmUoKTsKICAg
ICBwYXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEgPSBtX3BhZ2VHcm91cC0+ZGF0YSgpOwpAQCAtMjI4
OSw2ICsyMjg4LDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6Ogog
ICAgIHBhcmFtZXRlcnMudXNlckFnZW50ID0gdXNlckFnZW50KCk7CiAgICAgcGFyYW1ldGVycy5z
ZXNzaW9uU3RhdGUgPSBTZXNzaW9uU3RhdGUobV9iYWNrRm9yd2FyZExpc3QtPmVudHJpZXMoKSwg
bV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJbmRleCgpKTsKICAgICBwYXJhbWV0ZXJzLmhpZ2hl
c3RVc2VkQmFja0ZvcndhcmRJdGVtSUQgPSBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpoaWdoZWRV
c2VkSXRlbUlEKCk7CisgICAgcGFyYW1ldGVycy5jYW5SdW5Nb2RhbCA9IG1fdWlDbGllbnQuY2Fu
UnVuTW9kYWwoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBwYXJhbWV0ZXJzLmlzU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkID0gbV9pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDc2MzI1KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC00NDEsNiArNDQxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByaW50RnJhbWUodWludDY0X3Qg
ZnJhbWVJRCk7CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNl
TmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1
aW50NjRfdCBjdXJyZW50VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIHVpbnQ2NF90JiBu
ZXdRdW90YSk7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklk
ZW50aWZpZXIpOworICAgIHZvaWQgcnVuTW9kYWwoKSB7IG1fdWlDbGllbnQucnVuTW9kYWwodGhp
cyk7IH0KIAogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0
YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKLSAgICAjIFVJIG1lc3NhZ2VzLgorICAgICMgVUkgbWVz
c2FnZXMKICAgICBDcmVhdGVOZXdQYWdlKFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0Zl
YXR1cmVzLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24pIC0+ICh1aW50
NjRfdCBuZXdQYWdlSUQsIFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBuZXdQYWdl
UGFyYW1ldGVycykKICAgICBTaG93UGFnZSgpCiAgICAgQ2xvc2VQYWdlKCkKQEAgLTU0LDYgKzU0
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBQYWdlRGlkU2Nyb2xsKCkKICAg
ICBSdW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJh
bWV0ZXJzOjpEYXRhIHBhcmFtZXRlcnMpCiAgICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlE
KSAtPiAoKQorICAgIFJ1bk1vZGFsKCkKIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFNpemUgZGVsdGEpCkBAIC02
MywyMyArNjQsMjMgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRGaW5kWm9v
bWFibGVBcmVhKFdlYkNvcmU6OkludFJlY3QgYXJlYSkKICNlbmRpZgogCi0gICAgIyBQb2xpY3kg
bWVzc2FnZXMuCisgICAgIyBQb2xpY3kgbWVzc2FnZXMKICAgICBEZWNpZGVQb2xpY3lGb3JNSU1F
VHlwZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBNSU1FVHlwZSwgV1RGOjpTdHJpbmcg
dXJsLCB1aW50NjRfdCBsaXN0ZW5lcklEKSAtPiAoYm9vbCByZWNlaXZlZFBvbGljeUFjdGlvbiwg
dWludDY0X3QgcG9saWN5QWN0aW9uLCB1aW50NjRfdCBkb3dubG9hZElEKQogICAgIERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3QgbmF2aWdh
dGlvblR5cGUsIHVpbnQzMl90IG1vZGlmaWVycywgaW50MzJfdCBtb3VzZUJ1dHRvbiwgV1RGOjpT
dHJpbmcgdXJsLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWlu
dDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBXVEY6OlN0cmluZyB1cmwsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCiAKLSAgICAjIFByb2dyZXNzIG1lc3NhZ2VzLgorICAgICMgUHJv
Z3Jlc3MgbWVzc2FnZXMKICAgICBEaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUgdmFsdWUpCiAgICAg
RGlkRmluaXNoUHJvZ3Jlc3MoKQogICAgIERpZFN0YXJ0UHJvZ3Jlc3MoKQogCi0gICAgIyBGcmFt
ZSBsaWZldGltZSBtZXNzYWdlcy4KKyAgICAjIEZyYW1lIGxpZmV0aW1lIG1lc3NhZ2VzCiAgICAg
RGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgRGlkQ3JlYXRlU3ViZnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFyZW50RnJhbWVJRCkKICAgICBEaWRTYXZl
RnJhbWVUb1BhZ2VDYWNoZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICBEaWRSZXN0b3JlRnJhbWVG
cm9tUGFnZUNhY2hlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwog
Ci0gICAgIyBGcmFtZSBsb2FkIG1lc3NhZ2VzLgorICAgICMgRnJhbWUgbG9hZCBtZXNzYWdlcwog
ICAgIERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBt
aW1lVHlwZSwgYm9vbCBoYXNDdXN0b21SZXByZXNlbnRhdGlvbiwgV2ViS2l0OjpQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2Vy
TWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OkluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZEZhaWxQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVy
cm9yLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQpA
QCAtOTcsNyArOTgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgRnJhbWVE
aWRCZWNvbWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQogCi0gICAgIyBS
ZXNvdXJjZSBsb2FkIG1lc3NhZ2VzLgorICAgICMgUmVzb3VyY2UgbG9hZCBtZXNzYWdlcwogICAg
IERpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHJl
c291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCiAgICAg
RGlkU2VuZFJlcXVlc3RGb3JSZXNvdXJjZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCByZXNv
dXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UpCiAgICAgRGlkUmVjZWl2ZVJlc3Bv
bnNlRm9yUmVzb3VyY2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQpAQCAtMTA4LDIxICsxMDks
MjEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEN1c3RvbSByZXByZXNlbnRh
dGlvbnMKICAgICBEaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKENv
cmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAotICAgICMgRm9ybXMgbWVzc2FnZXMuCisgICAg
IyBGb3JtcyBtZXNzYWdlcwogICAgIFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IHNvdXJjZUZyYW1lSUQsIFdlYktpdDo6U3RyaW5nUGFpclZlY3RvciB0ZXh0RmllbGRW
YWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUVuY29kZXIgdXNlckRhdGEpCiAKLSAgICAjIENhbGxiYWNrIG1lc3NhZ2VzLgorICAgICMg
Q2FsbGJhY2sgbWVzc2FnZXMKICAgICBEYXRhQ2FsbGJhY2soQ29yZUlQQzo6RGF0YVJlZmVyZW5j
ZSByZXN1bHREYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIFN0cmluZ0NhbGxiYWNrKFdU
Rjo6U3RyaW5nIHJlc3VsdFN0cmluZywgdWludDY0X3QgY2FsbGJhY2tJRCkKIAogICAgIERpZFJl
Y2VpdmVBY2Nlc3NpYmlsaXR5UGFnZVRva2VuKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkK
IAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAjIEtleWJvYXJkIHN1cHBvcnQgbWVzc2FnZXMuCisg
ICAgIyBLZXlib2FyZCBzdXBwb3J0IG1lc3NhZ2VzCiAgICAgSW50ZXJwcmV0S2V5RXZlbnQodWlu
dDMyX3QgdHlwZSkgLT4gKFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmRO
YW1lLCB1aW50MzJfdCBzZWxlY3Rpb25TdGFydCwgdWludDMyX3Qgc2VsZWN0aW9uRW5kLCBWZWN0
b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXMpCiAjZW5kaWYKICAg
ICAKLSAgICAjIEJhY2tGb3J3YXJkIG1lc3NhZ2VzLgorICAgICMgQmFja0ZvcndhcmQgbWVzc2Fn
ZXMKICAgICBCYWNrRm9yd2FyZEFkZEl0ZW0odWludDY0X3QgaXRlbUlEKQogICAgIEJhY2tGb3J3
YXJkR29Ub0l0ZW0odWludDY0X3QgaXRlbUlEKQogICAgIEJhY2tGb3J3YXJkSXRlbUF0SW5kZXgo
aW50MzJfdCBpdGVtSW5kZXgpIC0+ICh1aW50NjRfdCBpdGVtSUQpCkBAIC0xMzAsNjcgKzEzMSw2
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJhY2tGb3J3YXJkRm9yd2FyZExp
c3RDb3VudCgpIC0+IChpbnQzMl90IGNvdW50KQogICAgIEJhY2tGb3J3YXJkQ2xlYXIoKQogCi0g
ICAgIyBVbmRvL1JlZG8gbWVzc2FnZXMuCisgICAgIyBVbmRvL1JlZG8gbWVzc2FnZXMKICAgICBS
ZWdpc3RlckVkaXRDb21tYW5kRm9yVW5kbyh1aW50NjRfdCBjb21tYW5kSUQsIHVpbnQzMl90IGVk
aXRBY3Rpb24pCiAgICAgQ2xlYXJBbGxFZGl0Q29tbWFuZHMoKQogICAgIAotICAgICMgU2VsZWN0
aW9uIG1lc3NhZ2VzLgorICAgICMgU2VsZWN0aW9uIG1lc3NhZ2VzCiAgICAgU2VsZWN0aW9uU3Rh
dGVDaGFuZ2VkKFdlYktpdDo6U2VsZWN0aW9uU3RhdGUgc2VsZWN0aW9uU3RhdGUpCiAKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgRGlkQ2hhbmdlQ29tcG9zaXRpb25TZWxlY3Rpb24oYm9vbCBoYXND
aGFuZ2VkKQogI2VuZGlmCiAKLSAgICAjIEZpbmQgbWVzc2FnZXMuCisgICAgIyBGaW5kIG1lc3Nh
Z2VzCiAgICAgRGlkQ291bnRTdHJpbmdNYXRjaGVzKFdURjo6U3RyaW5nIHN0cmluZywgdWludDMy
X3QgbWF0Y2hDb3VudCkKICAgICBTZXRGaW5kSW5kaWNhdG9yKFdlYkNvcmU6OkZsb2F0UmVjdCBz
ZWxlY3Rpb25SZWN0LCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiB0ZXh0UmVjdHMsIFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgY29udGVudEltYWdlSGFuZGxlLCBib29sIGZhZGVPdXQp
CiAgICAgRGlkRmluZFN0cmluZyhXVEY6OlN0cmluZyBzdHJpbmcsIHVpbnQzMl90IG1hdGNoQ291
bnQpCiAgICAgRGlkRmFpbFRvRmluZFN0cmluZyhXVEY6OlN0cmluZyBzdHJpbmcpCiAKLSAgICAj
IFBvcHVwTWVudSBtZXNzYWdlcy4KKyAgICAjIFBvcHVwTWVudSBtZXNzYWdlcwogICAgIFNob3dQ
b3B1cE1lbnUoV2ViQ29yZTo6SW50UmVjdCByZWN0LCBWZWN0b3I8V2ViS2l0OjpXZWJQb3B1cEl0
ZW0+IGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIFdlYktpdDo6UGxhdGZvcm1Qb3B1cE1l
bnVEYXRhIGRhdGEpCiAgICAgSGlkZVBvcHVwTWVudSgpCiAgICAgCi0gICAgIyBDb250ZXh0TWVu
dSBtZXNzYWdlcy4KKyAgICAjIENvbnRleHRNZW51IG1lc3NhZ2VzCiAgICAgU2hvd0NvbnRleHRN
ZW51KFdlYkNvcmU6OkludFBvaW50IG1lbnVMb2NhdGlvbiwgV2ViS2l0OjpDb250ZXh0TWVudVN0
YXRlIHN0YXRlLCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBpdGVtcywg
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKIAogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAjIEFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nIG1lc3NhZ2VzLgorICAgICMgQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbWVzc2FnZXMKICAg
ICBEaWRDaGFuZ2VBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGJvb2wgY29tcG9zaXRpbmcpIC0+IChX
ZWJLaXQ6OkRyYXdpbmdBcmVhSW5mbyBuZXdEcmF3aW5nQXJlYSkKICNlbmRpZgogCi0gICAgIyBB
dXRoZW50aWNhdGlvbiBtZXNzYWdlcy4KKyAgICAjIEF1dGhlbnRpY2F0aW9uIG1lc3NhZ2VzCiAg
ICAgQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFjZSkgLT4gKGJv
b2wgY2FuQXV0aGVudGljYXRlKQogICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFs
bGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCi0gICAgIyBEYXRhYmFzZSBtZXNzYWdlcy4K
KyAgICAjIERhdGFiYXNlIG1lc3NhZ2VzCiAgICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2
NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFdURjo6U3RyaW5nIGRh
dGFiYXNlTmFtZSwgV1RGOjpTdHJpbmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2Up
IC0+ICh1aW50NjRfdCBuZXdRdW90YSkKIAotICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMuCisg
ICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6
OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogCi0gICAgIyBQbHVnLWluIGNvbXBsZXggdGV4dCBp
bnB1dCBzdXBwb3J0IG1lc3NhZ2VzLgogI2lmIFBMQVRGT1JNKE1BQykKKyAgICAjIFBsdWctaW4g
Y29tcGxleCB0ZXh0IGlucHV0IHN1cHBvcnQgbWVzc2FnZXMKICAgICBTZXRDb21wbGV4VGV4dElu
cHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9v
bCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKICNlbmRpZgogCi0gICAgIyBTcGVlY2ggbWVzc2Fn
ZXMuCiAjaWYgUExBVEZPUk0oTUFDKQorICAgICMgU3BlZWNoIG1lc3NhZ2VzCiAgICAgR2V0SXNT
cGVha2luZygpIC0+IChib29sIGlzU3BlYWtpbmcpCiAgICAgU3BlYWsoV1RGOjpTdHJpbmcgc3Ry
aW5nKQogICAgIFN0b3BTcGVha2luZygpCiAjZW5kaWYKIAotICAgICMgU3BlbGxpbmcgYW5kIGdy
YW1tYXIuCisgICAgIyBTcGVsbGluZyBhbmQgZ3JhbW1hciBtZXNzYWdlcwogICAgIENoZWNrVGV4
dE9mUGFyYWdyYXBoKFdURjo6U3RyaW5nIHRleHQsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMpIC0+
IChWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzKQogICAgIFVwZGF0
ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoV1RGOjpTdHJpbmcgbWlzc3BlbGxlZFdvcmQp
CiAgICAgR2V0R3Vlc3Nlc0ZvcldvcmQoV1RGOjpTdHJpbmcgd29yZCwgV1RGOjpTdHJpbmcgY29u
dGV4dCkgLT4gKFZlY3RvcjxXVEY6OlN0cmluZz4gZ3Vlc3NlcykKICAgICBMZWFybldvcmQoV1RG
OjpTdHJpbmcgd29yZCk7CiAgICAgSWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsKICAgICAK
LSAgICAjIERyYWcgYW5kIGRyb3AuCisgICAgIyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2VzCiAgICAg
RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJhdGlvbikK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgU2V0RHJhZ0ltYWdlKFdlYkNvcmU6OkludFBvaW50IGNs
aWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpTaGFyZWRN
ZW1vcnk6OkhhbmRsZSBkcmFnSW1hZ2VIYW5kbGUsIGJvb2wgbGlua0RyYWcpCisgICAgU2V0RHJh
Z0ltYWdlKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRTaXpl
IGltYWdlU2l6ZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBkcmFnSW1hZ2UsIGJvb2wg
bGlua0RyYWcpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJV
SUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJ
Q2xpZW50LmNwcAkocmV2aXNpb24gNzYzMjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVUlDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMTMsNCArMzEzLDE3IEBAIHZvaWQgV2Vi
VUlDbGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3gKICAgICBtX2NsaWVudC5wcmludEZyYW1l
KHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCiti
b29sIFdlYlVJQ2xpZW50OjpjYW5SdW5Nb2RhbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xp
ZW50LnJ1bk1vZGFsOworfQorCit2b2lkIFdlYlVJQ2xpZW50OjpydW5Nb2RhbChXZWJQYWdlUHJv
eHkqIHBhZ2UpCit7CisgICAgaWYgKCFtX2NsaWVudC5ydW5Nb2RhbCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jbGllbnQucnVuTW9kYWwodG9BUEkocGFnZSksIG1fY2xpZW50LmNsaWVudElu
Zm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oCShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05Myw2ICs5Myw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRyYXdIZWFkZXIoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZvaWQgZHJhd0Zvb3RlcihXZWJQYWdlUHJv
eHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAgdm9p
ZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqKTsKKworICAgIGJvb2wg
Y2FuUnVuTW9kYWwoKSBjb25zdDsKKyAgICB2b2lkIHJ1bk1vZGFsKFdlYlBhZ2VQcm94eSopOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsOCBAQAogZXh0ZXJu
ICJDIiB7CiAjZW5kaWYKIAordHlwZWRlZiB2b2lkICgqV0tQYWdlQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwogLy8gRnJhbWVMb2FkIENsaWVudAog
dHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZUNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRh
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwpAQCAtNTksMTkgKzYxLDYgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdl
RGlkUnVuSW5zZWN1cmVDb250ZQogdHlwZWRlZiBib29sICgqV0tQYWdlQ2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdL
RnJhbWVSZWYgZnJhbWUsIFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0Zy
YW1lUmVmIGZyYW1lLCBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmIGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAotLy8gUHJvZ3Jlc3MgQ2xpZW50
Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRTdGFydFByb2dyZXNzQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZURp
ZENoYW5nZVByb2dyZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZpbmlzaFByb2dyZXNzQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLQotLy8gV2ViUHJvY2Vz
cyBDbGllbnQKLS8vIEZJWE1FOiBUaGVzZSB0aHJlZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBw
YXJ0IG9mIHRoaXMgY2xpZW50LgotdHlwZWRlZiB2b2lkICgqV0tQYWdlUHJvY2Vzc0RpZEJlY29t
ZVVucmVzcG9uc2l2ZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbyk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZUNh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVm
IHZvaWQgKCpXS1BhZ2VQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwotCi10eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDaGFuZ2VC
YWNrRm9yd2FyZExpc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwotCiBzdHJ1Y3QgV0tQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl
cnNpb247CiAgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOwpAQCAtOTMsMTYgKzgyLDE2IEBAIHN0
cnVjdCBXS1BhZ2VMb2FkZXJDbGllbnQgewogICAgIFdLUGFnZURpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUluRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZTsKIAogICAgIC8vIEZJWE1FOiBNb3ZlIHRvIHByb2dy
ZXNzIGNsaWVudC4KLSAgICBXS1BhZ2VEaWRTdGFydFByb2dyZXNzQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFN0YXJ0UHJvZ3Jlc3M7Ci0gICAgV0tQYWdl
RGlkQ2hhbmdlUHJvZ3Jlc3NDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWRDaGFuZ2VQcm9ncmVzczsKLSAgICBXS1BhZ2VEaWRGaW5pc2hQcm9ncmVzc0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZpbmlzaFByb2dyZXNz
OworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkU3RhcnRQcm9ncmVzczsKKyAgICBXS1BhZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENo
YW5nZVByb2dyZXNzOworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmluaXNoUHJvZ3Jlc3M7CiAKICAgICAv
LyBGSVhNRTogVGhlc2UgdGhyZWUgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgcGFydCBvZiB0aGlz
IGNsaWVudC4KLSAgICBXS1BhZ2VQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmU7Ci0g
ICAgV0tQYWdlUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZTsKLSAgICBXS1BhZ2VQcm9j
ZXNzRGlkQ3Jhc2hDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByb2Nlc3NEaWRDcmFzaDsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3Bv
bnNpdmU7CisgICAgV0tQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZTsKKyAgICBX
S1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByb2Nlc3NEaWRDcmFzaDsKIAotICAgIFdLUGFnZURpZENoYW5nZUJhY2tGb3J3
YXJkTGlzdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQmFj
a0ZvcndhcmRMaXN0OworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0Owog
fTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCBXS1BhZ2VMb2FkZXJDbGllbnQ7
CiAKQEAgLTE1Miw4ICsxNDEsNiBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VSZXNvdXJjZUxvYWRD
bGllbnQgCiAKIC8vIFVJIENsaWVudAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVO
ZXdQYWdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMs
IFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0
b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlU2hvd1Bh
Z2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotdHlw
ZWRlZiB2b2lkICgqV0tQYWdlQ2xvc2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQsIFdLRnJhbWVS
ZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiBib29sICgqV0tQYWdl
UnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IG1lc3NhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlw
ZWRlZiBXS1N0cmluZ1JlZiAoKldLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1bHRWYWx1
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0xNzIsOCAr
MTU5LDYgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYgogdHlwZWRl
ZiBXS1JlY3QgKCpXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRXaW5kb3dG
cmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZWN0IGZyYW1lLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsKIHR5cGVkZWYgYm9vbCAoKldLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VEaWREcmF3Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFNjcm9sbENhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyAo
KldLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLU3RyaW5nUmVmIGRh
dGFiYXNlTmFtZSwgV0tTdHJpbmdSZWYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBj
dXJyZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIHVuc2lnbmVkIGxv
bmcgbG9uZyBleHBlY3RlZFVzYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmIHBhcmFtZXRlcnMsIFdLT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1
cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBw
ZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0xODUsMTAgKzE3
MCwxMCBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2spCiAKIHN0cnVj
dCBXS1BhZ2VVSUNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwotICAgIGNvbnN0IHZv
aWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpZW50SW5mbzsKKyAgICBjb25zdCB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CiAgICAgV0tQYWdlQ3Jl
YXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVOZXdQYWdlOwotICAgIFdLUGFnZVNob3dQYWdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7Ci0gICAgV0tQYWdlQ2xv
c2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbG9zZTsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7
CiAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CiAgICAgV0tQYWdlUnVuSmF2YVNj
cmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5K
YXZhU2NyaXB0Q29uZmlybTsKICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CkBA
IC0yMDcsOCArMTkyLDggQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VHZXRX
aW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdldFdpbmRvd0ZyYW1lOwogICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CiAgICAgV0tQ
YWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7Ci0gICAgV0tQYWdlRGlkRHJhd0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRE
cmF3OwotICAgIFdLUGFnZURpZFNjcm9sbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERy
YXc7CisgICAgV0tQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOwogICAgIFdLUGFnZUV4Y2VlZGVkRGF0
YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVk
ZWREYXRhYmFzZVF1b3RhOwogICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOwogICAgIFdLUGFn
ZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKQEAgLTIx
Nyw2ICsyMDIsNyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIFdLUGFnZURyYXdIZWFk
ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJh
d0hlYWRlcjsKICAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7CiAgICAgV0tQYWdlUHJpbnRGcmFt
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dEZyYW1lOworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQ
YWdlVUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAkocmV2aXNpb24gNzYzMjUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTgs
NyArNDU4LDggQEAgUVdLUGFnZTo6UVdLUGFnZShRV0tDb250ZXh0KiBjb250ZXh0KQogICAgICAg
ICAwLCAgLyogZm9vdGVySGVpZ2h0ICovCiAgICAgICAgIDAsICAvKiBkcmF3SGVhZGVyICovCiAg
ICAgICAgIDAsICAvKiBkcmF3Rm9vdGVyICovCi0gICAgICAgIDAgICAvKiBwcmludEZyYW1lICov
CisgICAgICAgIDAsICAvKiBwcmludEZyYW1lICovCisgICAgICAgIDAgICAvKiBydW5Nb2RhbCAq
LwogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYoKSwgJnVpQ2xpZW50
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDc2MzI1KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTE3MywxMyArMTczLDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpzaG93KCkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bk1vZGFsKCkKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wYWdlLT5j
YW5SdW5Nb2RhbCgpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuTW9kYWwoKQogewot
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wYWdlLT5ydW5Nb2RhbCgpOwogfQogCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNp
YmxlKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAkocmV2aXNpb24gNzYzMjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJQbHVnaW5Qcm94eS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQcmlu
dEluZm8uaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgi
CiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRM
aXN0LmgiCkBAIC0xNDksNiArMTUwLDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IAogICAgICwgbV9maW5kQ29udHJvbGxlcih0aGlzKQogICAgICwgbV9nZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogICAgICwgbV9wYWdlSUQocGFnZUlE
KQorICAgICwgbV9jYW5SdW5Nb2RhbChwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKQorICAgICwgbV9p
c1J1bm5pbmdNb2RhbChmYWxzZSkKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwogCkBAIC0zNzcs
NiArMzgwLDExIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgIG1fZHJhd2luZ0FyZWEuY2xl
YXIoKTsKIAogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92ZVdlYlBhZ2UobV9wYWdlSUQp
OworCisgICAgaWYgKG1faXNSdW5uaW5nTW9kYWwpIHsKKyAgICAgICAgbV9pc1J1bm5pbmdNb2Rh
bCA9IGZhbHNlOworICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ydW5Mb29wKCktPnN0b3Ao
KTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViUGFnZTo6dHJ5Q2xvc2UoKQpAQCAtMTc5Myw0ICsxODAx
LDE3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb1BERih1aW50NjRfdCBmcmEKIH0KICNlbmRp
ZgogCit2b2lkIFdlYlBhZ2U6OnJ1bk1vZGFsKCkKK3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAg
ICAgICAgcmV0dXJuOworICAgIGlmIChtX2lzUnVubmluZ01vZGFsKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2lzUnVubmluZ01vZGFsID0gdHJ1ZTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bk1vZGFsKCkpOworICAgIFJ1bkxvb3A6OnJ1bigpOworICAgIEFTU0VSVCgh
bV9pc1J1bm5pbmdNb2RhbCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA3NjMy
NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxMSw2ICszMTEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIG1haW5GcmFt
ZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uKCkgY29uc3Q7CiAKKyAgICBib29sIGNhblJ1bk1vZGFs
KCkgY29uc3QgeyByZXR1cm4gbV9jYW5SdW5Nb2RhbDsgfQorICAgIHZvaWQgcnVuTW9kYWwoKTsK
KwogcHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYpOwogCkBAIC00OTQsNiArNDk3LDkgQEAgcHJpdmF0ZToKIAogICAg
IFNhbmRib3hFeHRlbnNpb25UcmFja2VyIG1fc2FuZGJveEV4dGVuc2lvblRyYWNrZXI7CiAgICAg
dWludDY0X3QgbV9wYWdlSUQ7CisKKyAgICBib29sIG1fY2FuUnVuTW9kYWw7CisgICAgYm9vbCBt
X2lzUnVubmluZ01vZGFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NjMy
NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisy
MDExLTAxLTIwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBJbXBsZW1lbnQgc2hv
d01vZGFsRGlhbG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01Mjg1NQorCisgICAgICAgIFRoaXMgZml4ZXMgV2ViS2l0VGVzdFJ1bm5lciB0byBjb21w
aWxlLCBidXQgbW9yZSB3b3JrIGlzIHByb2JhYmx5CisgICAgICAgIG5lZWRlZCB0byBnZXQgaXQg
dG8gcGFzcyB0aGUgdGVzdHMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKTogQWRk
ZWQuIENhbGxzIHRocm91Z2ggdG8gdGhlCisgICAgICAgIHBsYXRmb3JtLXNwZWNpZmljIHZlcnNp
b24gb2YgcnVuTW9kYWwuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhl
clBhZ2UpOiBDaGFuZ2VkIHRvIGJlIGEgcHJpdmF0ZQorICAgICAgICBzdGF0aWMgbWVtYmVyIGZ1
bmN0aW9uIHNvIGl0IGNhbiByZWZlciB0byBydW5Nb2RhbCwgd2hpY2ggaXMKKyAgICAgICAgYSBw
cml2YXRlIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24uCisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjppbml0aWFsaXplKTogUGFzcyAwIGZvciB0aGUgcnVuTW9kYWwKKyAgICAgICAgZnVuY3Rp
b24gc2luY2Ugd2UgZG9uJ3QgbmVlZCB0byBydW4gdGhlIG1haW4gd2luZG93IG1vZGFsLgorICAg
ICAgICBJIHN1c3BlY3QgdGhpcyBpcyB3cm9uZyBhbmQgd2lsbCBuZWVkIHRvIGNoYW5nZS4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6IEFkZGVkIGRlY2xhcmF0
aW9ucyBmb3IKKyAgICAgICAgdGhlIGZ1bmN0aW9ucyBhZGRlZCBhYm92ZS4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKTogQWRkZWQuIFVudGVzdGVkIGltcGxlbWVudGF0aW9u
LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpydW5Nb2RhbCk6IEFkZGVkLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKTogQWRkZWQuCisKIDIwMTEtMDEtMjAgIERpcmsg
UHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCShy
ZXZpc2lvbiA3NjMyNSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
dm9pZCBwcm9jZXNzRGlkQ3Jhc2goV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
ICAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYpOwogCisgICAgc3RhdGljIFdLUGFn
ZVJlZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLRGljdGlvbmFyeVJlZiwg
V0tFdmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKik7CisKKyAg
ICBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OworICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopOwogCiAgICAgT3du
UHRyPFRlc3RJbnZvY2F0aW9uPiBtX2N1cnJlbnRJbnZvY2F0aW9uOwogCkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQkocmV2aXNpb24g
NzYzMjUpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiVGVzdENvbnRy
b2xsZXIuaCIKIAorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUgPFdlYktp
dDIvV0tTdHJpbmdDRi5oPgogI2luY2x1ZGUgPG1hY2gtby9keWxkLmg+IAogCkBAIC02Miw0ICs2
MywxMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDCiB7CiB9CiAK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyogdmlldykKK3sK
KyAgICBOU1dpbmRvdyAqd2luZG93ID0gW3ZpZXctPnBsYXRmb3JtVmlldygpIHdpbmRvd107Cisg
ICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybjsKKyAgICBbTlNBcHAgcnVuTW9kYWxGb3JX
aW5kb3c6d2luZG93XTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCkluZGV4OiBUb29scy9XZWJL
aXRUZXN0UnVubmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDc2MzI1
KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybUluaXRpYWxpemVDCiB7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBs
YXRmb3JtV2ViVmlldyopCit7CisgICAgLy8gRklYTUU6IE5lZWQgdG8gaW1wbGVtZW50IHRoaXMg
dG8gdGVzdCBzaG93TW9kYWxEaWFsb2cuCit9CisKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlclF0
Lm1vYyIKIAogfSAvLyBuYW1lc3BhY2UgV1RSCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCShyZXZpc2lvbiA3NjMyNSkKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTUyLDQgKzE1Miw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5p
dGlhbGl6ZUMKICAgICBXS0NvbnRleHRTZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKG1fY29u
dGV4dC5nZXQoKSwgZmFsc2UpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpydW5Nb2RhbChQ
bGF0Zm9ybVdlYlZpZXcqKQoreworICAgIC8vIEZJWE1FOiBOZWVkIHRvIGltcGxlbWVudCB0aGlz
IHRvIHRlc3Qgc2hvd01vZGFsRGlhbG9nLgorfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIK
</data>
<flag name="review"
          id="71097"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79683</attachid>
            <date>2011-01-20 19:26:31 -0800</date>
            <delta_ts>2011-01-20 19:29:29 -0800</delta_ts>
            <desc>Patch addressing Mitz’s comments</desc>
            <filename>ShowModalDialogWK2Patch.txt</filename>
            <type>text/plain</type>
            <size>33150</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2MzI1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDEtMjAgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYktpdDI6IEltcGxlbWVudCBzaG93TW9kYWxEaWFsb2cKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODU1CisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOiBBZGRlZCBjYW5SdW5Nb2Rh
bC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDogQWRkZWQgYSBydW5Nb2Rh
bCBmdW5jdGlvbiBwb2ludGVyIHRvCisgICAgICAgIFdLUGFnZVVJQ2xpZW50LiBBbHNvIHJlbW92
ZWQgYSBsb3Qgb2YgcmVkdW5kYW50IHR5cGVkZWZzIGFuZCBhZGRlZAorICAgICAgICBhIG5ldyBv
bmUsIFdLUGFnZUNhbGxiYWNrLCBmb3IgY2FsbGJhY2tzIHdpdGhvdXQgYXJndW1lbnRzIG9yIHJl
dHVybgorICAgICAgICB2YWx1ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3Bh
Z2UuY3BwOgorICAgICAgICAoUVdLUGFnZTo6UVdLUGFnZSk6IEFkZGVkIGEgcnVuTW9kYWwgZnVu
Y3Rpb24gcG9pbnRlciBvZiAwLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKTog
U2V0IGNhblJ1bk1vZGFsCisgICAgICAgIGJhc2VkIG9uIHJldHVybiB2YWx1ZSBvZiBXZWJVSUNs
aWVudDo6Y2FuUnVuTW9kYWwuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
IEFkZGVkIHJ1bk1vZGFsLgorICAgICAgICBDYWxscyBXZWJVSUNsaWVudDo6cnVuTW9kYWwuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZCBSdW5N
b2RhbCBtZXNzYWdlLgorICAgICAgICBBbHNvIHJlbW92ZWQgdGhlIHBlcmlvZHMgZnJvbSB0aGUg
cGhyYXNlcyBpbiB0aGUgY29tbWVudHMKKyAgICAgICAgYXMgTWFjaWVqIHJlcXVlc3RlZCBhIHdo
aWxlIGJhY2suCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6Y2FuUnVuTW9kYWwpOiBBZGRlZC4gUmV0dXJucyB0cnVl
IG9yIGZhbHNlCisgICAgICAgIGJhc2VkIG9uIHdoZXRoZXIgYSBydW5Nb2RhbCBmdW5jdGlvbiB3
YXMgc3VwcGxpZWQgaW4gdGhlCisgICAgICAgIFdLUGFnZVVJQ2xpZW50IHN0cnVjdHVyZS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OnJ1bk1vZGFsKTogQWRkZWQuIENhbGxzIHRoZSBy
dW5Nb2RhbAorICAgICAgICBmdW5jdGlvbiBmcm9tIHRoZSBXS1BhZ2VVSUNsaWVudCBzdHJ1Y3R1
cmUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50Lmg6IERlY2xhcmVkIHRoZSBhYm92
ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y2FuUnVu
TW9kYWwpOiBDYWxsIHRocm91Z2ggdG8gV2ViUGFnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpydW5Nb2RhbCk6IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKTogSW5p
dGlhbGl6ZSBtX2NhblJ1bk1vZGFsIGJhc2VkIG9uIHRoZQorICAgICAgICBjcmVhdGlvbiBwYXJh
bWV0ZXJzLiBJbml0aWFsaXplIG1faXNSdW5uaW5nTW9kYWwgdG8gZmFsc2UuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKTogU3RvcCB0aGUgbmVzdGVkIHJ1biBsb29wIGlmIHdlIGFy
ZSBydW5uaW5nIG1vZGFsLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5Nb2RhbCk6IFNl
bmQgYSBtZXNzYWdlIHRvIGFzayB0aGUgVUkgcHJvY2VzcyB0byBydW4KKyAgICAgICAgbW9kYWwg
YW5kIHRoZW4gc3RhcnQgYSBuZXN0ZWQgcnVuIGxvb3AuIEl0IGdldHMgc3RvcHBlZCB3aGVuIHRo
ZSBwYWdlIGlzIGNsb3NlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OiBEZWZpbmVkIHRoZSBjYW5SdW5Nb2RhbCBmdW5jdGlvbgorICAgICAgICBhbmQgZGVjbGFyZWQg
dGhlIHJ1bk1vZGFsIGZ1bmN0aW9uLgorCiAyMDExLTAxLTIwICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRl
eDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Niw5ICs2NiwxMiBAQCBzdHJ1Y3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU2Vzc2lvblN0YXRlIHNlc3Npb25TdGF0
ZTsKICAgICB1aW50NjRfdCBoaWdoZXN0VXNlZEJhY2tGb3J3YXJkSXRlbUlEOwogCisgICAgYm9v
bCBjYW5SdW5Nb2RhbDsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIGlzU21hcnRJbnNl
cnREZWxldGVFbmFibGVkOwogI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAgSFdORCBu
YXRpdmVXaW5kb3c7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMjc4LDcgKzIyNzgsNiBAQCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiAgICAgcGFyYW1ldGVycy5pc0Zv
Y3VzZWQgPSBtX3BhZ2VDbGllbnQtPmlzVmlld0ZvY3VzZWQoKTsKICAgICBwYXJhbWV0ZXJzLmlz
VmlzaWJsZSA9IG1fcGFnZUNsaWVudC0+aXNWaWV3VmlzaWJsZSgpOwogICAgIHBhcmFtZXRlcnMu
aXNJbldpbmRvdyA9IG1fcGFnZUNsaWVudC0+aXNWaWV3SW5XaW5kb3coKTsKLQogICAgIHBhcmFt
ZXRlcnMuZHJhd2luZ0FyZWFJbmZvID0gbV9kcmF3aW5nQXJlYS0+aW5mbygpOwogICAgIHBhcmFt
ZXRlcnMuc3RvcmUgPSBtX3BhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS0+c3RvcmUoKTsKICAgICBw
YXJhbWV0ZXJzLnBhZ2VHcm91cERhdGEgPSBtX3BhZ2VHcm91cC0+ZGF0YSgpOwpAQCAtMjI4OSw2
ICsyMjg4LDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OgogICAg
IHBhcmFtZXRlcnMudXNlckFnZW50ID0gdXNlckFnZW50KCk7CiAgICAgcGFyYW1ldGVycy5zZXNz
aW9uU3RhdGUgPSBTZXNzaW9uU3RhdGUobV9iYWNrRm9yd2FyZExpc3QtPmVudHJpZXMoKSwgbV9i
YWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJbmRleCgpKTsKICAgICBwYXJhbWV0ZXJzLmhpZ2hlc3RV
c2VkQmFja0ZvcndhcmRJdGVtSUQgPSBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOjpoaWdoZWRVc2Vk
SXRlbUlEKCk7CisgICAgcGFyYW1ldGVycy5jYW5SdW5Nb2RhbCA9IG1fdWlDbGllbnQuY2FuUnVu
TW9kYWwoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBwYXJhbWV0ZXJzLmlzU21hcnRJbnNl
cnREZWxldGVFbmFibGVkID0gbV9pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDc2MzI1KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
NDEsNiArNDQxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByaW50RnJhbWUodWludDY0X3QgZnJh
bWVJRCk7CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFt
ZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50
NjRfdCBjdXJyZW50VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIHVpbnQ2NF90JiBuZXdR
dW90YSk7CiAgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIpOworICAgIHZvaWQgcnVuTW9kYWwoKSB7IG1fdWlDbGllbnQucnVuTW9kYWwodGhpcyk7
IH0KIAogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNo
VG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShy
ZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykg
MjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKLSAgICAjIFVJIG1lc3NhZ2VzLgorICAgICMgVUkgbWVzc2Fn
ZXMKICAgICBDcmVhdGVOZXdQYWdlKFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1
cmVzLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24pIC0+ICh1aW50NjRf
dCBuZXdQYWdlSUQsIFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBuZXdQYWdlUGFy
YW1ldGVycykKICAgICBTaG93UGFnZSgpCiAgICAgQ2xvc2VQYWdlKCkKQEAgLTU0LDYgKzU0LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBQYWdlRGlkU2Nyb2xsKCkKICAgICBS
dW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0
ZXJzOjpEYXRhIHBhcmFtZXRlcnMpCiAgICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAt
PiAoKQorICAgIFJ1bk1vZGFsKCkKIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQog
ICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFNpemUgZGVsdGEpCkBAIC02Mywy
MyArNjQsMjMgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRGaW5kWm9vbWFi
bGVBcmVhKFdlYkNvcmU6OkludFJlY3QgYXJlYSkKICNlbmRpZgogCi0gICAgIyBQb2xpY3kgbWVz
c2FnZXMuCisgICAgIyBQb2xpY3kgbWVzc2FnZXMKICAgICBEZWNpZGVQb2xpY3lGb3JNSU1FVHlw
ZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBNSU1FVHlwZSwgV1RGOjpTdHJpbmcgdXJs
LCB1aW50NjRfdCBsaXN0ZW5lcklEKSAtPiAoYm9vbCByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWlu
dDY0X3QgcG9saWN5QWN0aW9uLCB1aW50NjRfdCBkb3dubG9hZElEKQogICAgIERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDMyX3QgbmF2aWdhdGlv
blR5cGUsIHVpbnQzMl90IG1vZGlmaWVycywgaW50MzJfdCBtb3VzZUJ1dHRvbiwgV1RGOjpTdHJp
bmcgdXJsLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMy
X3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9uLCBXVEY6OlN0cmluZyB1cmwsIHVpbnQ2
NF90IGxpc3RlbmVySUQpCiAKLSAgICAjIFByb2dyZXNzIG1lc3NhZ2VzLgorICAgICMgUHJvZ3Jl
c3MgbWVzc2FnZXMKICAgICBEaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUgdmFsdWUpCiAgICAgRGlk
RmluaXNoUHJvZ3Jlc3MoKQogICAgIERpZFN0YXJ0UHJvZ3Jlc3MoKQogCi0gICAgIyBGcmFtZSBs
aWZldGltZSBtZXNzYWdlcy4KKyAgICAjIEZyYW1lIGxpZmV0aW1lIG1lc3NhZ2VzCiAgICAgRGlk
Q3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgRGlkQ3JlYXRlU3ViZnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFyZW50RnJhbWVJRCkKICAgICBEaWRTYXZlRnJh
bWVUb1BhZ2VDYWNoZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICBEaWRSZXN0b3JlRnJhbWVGcm9t
UGFnZUNhY2hlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhcmVudEZyYW1lSUQpOwogCi0g
ICAgIyBGcmFtZSBsb2FkIG1lc3NhZ2VzLgorICAgICMgRnJhbWUgbG9hZCBtZXNzYWdlcwogICAg
IERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyBtaW1l
VHlwZSwgYm9vbCBoYXNDdXN0b21SZXByZXNlbnRhdGlvbiwgV2ViS2l0OjpQbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVz
c2FnZUVuY29kZXIgdXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAgIERpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
LCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQpAQCAt
OTcsNyArOTgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgRnJhbWVEaWRC
ZWNvbWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQogCi0gICAgIyBSZXNv
dXJjZSBsb2FkIG1lc3NhZ2VzLgorICAgICMgUmVzb3VyY2UgbG9hZCBtZXNzYWdlcwogICAgIERp
ZEluaXRpYXRlTG9hZEZvclJlc291cmNlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHJlc291
cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QpCiAgICAgRGlk
U2VuZFJlcXVlc3RGb3JSZXNvdXJjZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCByZXNvdXJj
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UpCiAgICAgRGlkUmVjZWl2ZVJlc3BvbnNl
Rm9yUmVzb3VyY2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQpAQCAtMTA4LDIxICsxMDksMjEg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIEN1c3RvbSByZXByZXNlbnRhdGlv
bnMKICAgICBEaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKENvcmVJ
UEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAotICAgICMgRm9ybXMgbWVzc2FnZXMuCisgICAgIyBG
b3JtcyBtZXNzYWdlcwogICAgIFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHNvdXJjZUZyYW1lSUQsIFdlYktpdDo6U3RyaW5nUGFpclZlY3RvciB0ZXh0RmllbGRWYWx1
ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZUVuY29kZXIgdXNlckRhdGEpCiAKLSAgICAjIENhbGxiYWNrIG1lc3NhZ2VzLgorICAgICMgQ2Fs
bGJhY2sgbWVzc2FnZXMKICAgICBEYXRhQ2FsbGJhY2soQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBy
ZXN1bHREYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIFN0cmluZ0NhbGxiYWNrKFdURjo6
U3RyaW5nIHJlc3VsdFN0cmluZywgdWludDY0X3QgY2FsbGJhY2tJRCkKIAogICAgIERpZFJlY2Vp
dmVBY2Nlc3NpYmlsaXR5UGFnZVRva2VuKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAog
I2lmIFBMQVRGT1JNKE1BQykKLSAgICAjIEtleWJvYXJkIHN1cHBvcnQgbWVzc2FnZXMuCisgICAg
IyBLZXlib2FyZCBzdXBwb3J0IG1lc3NhZ2VzCiAgICAgSW50ZXJwcmV0S2V5RXZlbnQodWludDMy
X3QgdHlwZSkgLT4gKFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmROYW1l
LCB1aW50MzJfdCBzZWxlY3Rpb25TdGFydCwgdWludDMyX3Qgc2VsZWN0aW9uRW5kLCBWZWN0b3I8
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXMpCiAjZW5kaWYKICAgICAK
LSAgICAjIEJhY2tGb3J3YXJkIG1lc3NhZ2VzLgorICAgICMgQmFja0ZvcndhcmQgbWVzc2FnZXMK
ICAgICBCYWNrRm9yd2FyZEFkZEl0ZW0odWludDY0X3QgaXRlbUlEKQogICAgIEJhY2tGb3J3YXJk
R29Ub0l0ZW0odWludDY0X3QgaXRlbUlEKQogICAgIEJhY2tGb3J3YXJkSXRlbUF0SW5kZXgoaW50
MzJfdCBpdGVtSW5kZXgpIC0+ICh1aW50NjRfdCBpdGVtSUQpCkBAIC0xMzAsNjcgKzEzMSw2NyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJhY2tGb3J3YXJkRm9yd2FyZExpc3RD
b3VudCgpIC0+IChpbnQzMl90IGNvdW50KQogICAgIEJhY2tGb3J3YXJkQ2xlYXIoKQogCi0gICAg
IyBVbmRvL1JlZG8gbWVzc2FnZXMuCisgICAgIyBVbmRvL1JlZG8gbWVzc2FnZXMKICAgICBSZWdp
c3RlckVkaXRDb21tYW5kRm9yVW5kbyh1aW50NjRfdCBjb21tYW5kSUQsIHVpbnQzMl90IGVkaXRB
Y3Rpb24pCiAgICAgQ2xlYXJBbGxFZGl0Q29tbWFuZHMoKQogICAgIAotICAgICMgU2VsZWN0aW9u
IG1lc3NhZ2VzLgorICAgICMgU2VsZWN0aW9uIG1lc3NhZ2VzCiAgICAgU2VsZWN0aW9uU3RhdGVD
aGFuZ2VkKFdlYktpdDo6U2VsZWN0aW9uU3RhdGUgc2VsZWN0aW9uU3RhdGUpCiAKICNpZiBQTEFU
Rk9STShXSU4pCiAgICAgRGlkQ2hhbmdlQ29tcG9zaXRpb25TZWxlY3Rpb24oYm9vbCBoYXNDaGFu
Z2VkKQogI2VuZGlmCiAKLSAgICAjIEZpbmQgbWVzc2FnZXMuCisgICAgIyBGaW5kIG1lc3NhZ2Vz
CiAgICAgRGlkQ291bnRTdHJpbmdNYXRjaGVzKFdURjo6U3RyaW5nIHN0cmluZywgdWludDMyX3Qg
bWF0Y2hDb3VudCkKICAgICBTZXRGaW5kSW5kaWNhdG9yKFdlYkNvcmU6OkZsb2F0UmVjdCBzZWxl
Y3Rpb25SZWN0LCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiB0ZXh0UmVjdHMsIFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpIYW5kbGUgY29udGVudEltYWdlSGFuZGxlLCBib29sIGZhZGVPdXQpCiAg
ICAgRGlkRmluZFN0cmluZyhXVEY6OlN0cmluZyBzdHJpbmcsIHVpbnQzMl90IG1hdGNoQ291bnQp
CiAgICAgRGlkRmFpbFRvRmluZFN0cmluZyhXVEY6OlN0cmluZyBzdHJpbmcpCiAKLSAgICAjIFBv
cHVwTWVudSBtZXNzYWdlcy4KKyAgICAjIFBvcHVwTWVudSBtZXNzYWdlcwogICAgIFNob3dQb3B1
cE1lbnUoV2ViQ29yZTo6SW50UmVjdCByZWN0LCBWZWN0b3I8V2ViS2l0OjpXZWJQb3B1cEl0ZW0+
IGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgsIFdlYktpdDo6UGxhdGZvcm1Qb3B1cE1lbnVE
YXRhIGRhdGEpCiAgICAgSGlkZVBvcHVwTWVudSgpCiAgICAgCi0gICAgIyBDb250ZXh0TWVudSBt
ZXNzYWdlcy4KKyAgICAjIENvbnRleHRNZW51IG1lc3NhZ2VzCiAgICAgU2hvd0NvbnRleHRNZW51
KFdlYkNvcmU6OkludFBvaW50IG1lbnVMb2NhdGlvbiwgV2ViS2l0OjpDb250ZXh0TWVudVN0YXRl
IHN0YXRlLCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhPiBpdGVtcywgV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKIAogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAjIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
IG1lc3NhZ2VzLgorICAgICMgQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbWVzc2FnZXMKICAgICBE
aWRDaGFuZ2VBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGJvb2wgY29tcG9zaXRpbmcpIC0+IChXZWJL
aXQ6OkRyYXdpbmdBcmVhSW5mbyBuZXdEcmF3aW5nQXJlYSkKICNlbmRpZgogCi0gICAgIyBBdXRo
ZW50aWNhdGlvbiBtZXNzYWdlcy4KKyAgICAjIEF1dGhlbnRpY2F0aW9uIG1lc3NhZ2VzCiAgICAg
Q2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFjZSkgLT4gKGJvb2wg
Y2FuQXV0aGVudGljYXRlKQogICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVu
Z2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCi0gICAgIyBEYXRhYmFzZSBtZXNzYWdlcy4KKyAg
ICAjIERhdGFiYXNlIG1lc3NhZ2VzCiAgICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90
IGZyYW1lSUQsIFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFdURjo6U3RyaW5nIGRhdGFi
YXNlTmFtZSwgV1RGOjpTdHJpbmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVu
dFF1b3RhLCB1aW50NjRfdCBjdXJyZW50VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UpIC0+
ICh1aW50NjRfdCBuZXdRdW90YSkKIAotICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMuCisgICAg
IyBHZW9sb2NhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0
cmluZyBvcmlnaW5JZGVudGlmaWVyKQogCi0gICAgIyBQbHVnLWluIGNvbXBsZXggdGV4dCBpbnB1
dCBzdXBwb3J0IG1lc3NhZ2VzLgogI2lmIFBMQVRGT1JNKE1BQykKKyAgICAjIFBsdWctaW4gY29t
cGxleCB0ZXh0IGlucHV0IHN1cHBvcnQgbWVzc2FnZXMKICAgICBTZXRDb21wbGV4VGV4dElucHV0
RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBj
b21wbGV4VGV4dElucHV0RW5hYmxlZCkKICNlbmRpZgogCi0gICAgIyBTcGVlY2ggbWVzc2FnZXMu
CiAjaWYgUExBVEZPUk0oTUFDKQorICAgICMgU3BlZWNoIG1lc3NhZ2VzCiAgICAgR2V0SXNTcGVh
a2luZygpIC0+IChib29sIGlzU3BlYWtpbmcpCiAgICAgU3BlYWsoV1RGOjpTdHJpbmcgc3RyaW5n
KQogICAgIFN0b3BTcGVha2luZygpCiAjZW5kaWYKIAotICAgICMgU3BlbGxpbmcgYW5kIGdyYW1t
YXIuCisgICAgIyBTcGVsbGluZyBhbmQgZ3JhbW1hciBtZXNzYWdlcwogICAgIENoZWNrVGV4dE9m
UGFyYWdyYXBoKFdURjo6U3RyaW5nIHRleHQsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMpIC0+IChW
ZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHRzKQogICAgIFVwZGF0ZVNw
ZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoV1RGOjpTdHJpbmcgbWlzc3BlbGxlZFdvcmQpCiAg
ICAgR2V0R3Vlc3Nlc0ZvcldvcmQoV1RGOjpTdHJpbmcgd29yZCwgV1RGOjpTdHJpbmcgY29udGV4
dCkgLT4gKFZlY3RvcjxXVEY6OlN0cmluZz4gZ3Vlc3NlcykKICAgICBMZWFybldvcmQoV1RGOjpT
dHJpbmcgd29yZCk7CiAgICAgSWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsKICAgICAKLSAg
ICAjIERyYWcgYW5kIGRyb3AuCisgICAgIyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2VzCiAgICAgRGlk
UGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJhdGlvbikKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgU2V0RHJhZ0ltYWdlKFdlYkNvcmU6OkludFBvaW50IGNsaWVu
dFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OkhhbmRsZSBkcmFnSW1hZ2VIYW5kbGUsIGJvb2wgbGlua0RyYWcpCisgICAgU2V0RHJhZ0lt
YWdlKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRTaXplIGlt
YWdlU2l6ZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBkcmFnSW1hZ2UsIGJvb2wgbGlu
a0RyYWcpCiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xp
ZW50LmNwcAkocmV2aXNpb24gNzYzMjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMTMsNCArMzEzLDE3IEBAIHZvaWQgV2ViVUlD
bGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3gKICAgICBtX2NsaWVudC5wcmludEZyYW1lKHRv
QVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCitib29s
IFdlYlVJQ2xpZW50OjpjYW5SdW5Nb2RhbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50
LnJ1bk1vZGFsOworfQorCit2b2lkIFdlYlVJQ2xpZW50OjpydW5Nb2RhbChXZWJQYWdlUHJveHkq
IHBhZ2UpCit7CisgICAgaWYgKCFtX2NsaWVudC5ydW5Nb2RhbCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9jbGllbnQucnVuTW9kYWwodG9BUEkocGFnZSksIG1fY2xpZW50LmNsaWVudEluZm8p
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVSUNsaWVudC5oCShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05Myw2ICs5Myw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRyYXdIZWFkZXIoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZvaWQgZHJhd0Zvb3RlcihXZWJQYWdlUHJveHkq
LCBXZWJGcmFtZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAgdm9pZCBw
cmludEZyYW1lKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqKTsKKworICAgIGJvb2wgY2Fu
UnVuTW9kYWwoKSBjb25zdDsKKyAgICB2b2lkIHJ1bk1vZGFsKFdlYlBhZ2VQcm94eSopOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oCShyZXZpc2lvbiA3NjMyNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsOCBAQAogZXh0ZXJuICJD
IiB7CiAjZW5kaWYKIAordHlwZWRlZiB2b2lkICgqV0tQYWdlQ2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwogLy8gRnJhbWVMb2FkIENsaWVudAogdHlw
ZWRlZiB2b2lkICgqV0tQYWdlRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZUNhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lQ2FsbGJhY2spKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwpAQCAtNTksMTkgKzYxLDYgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlk
UnVuSW5zZWN1cmVDb250ZQogdHlwZWRlZiBib29sICgqV0tQYWdlQ2FuQXV0aGVudGljYXRlQWdh
aW5zdFByb3RlY3Rpb25TcGFjZUluRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VJbkZyYW1lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAotLy8gUHJvZ3Jlc3MgQ2xpZW50Ci10
eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRTdGFydFByb2dyZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZURpZENo
YW5nZVByb2dyZXNzQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZpbmlzaFByb2dyZXNzQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLQotLy8gV2ViUHJvY2VzcyBD
bGllbnQKLS8vIEZJWE1FOiBUaGVzZSB0aHJlZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBwYXJ0
IG9mIHRoaXMgY2xpZW50LgotdHlwZWRlZiB2b2lkICgqV0tQYWdlUHJvY2Vzc0RpZEJlY29tZVVu
cmVzcG9uc2l2ZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZUNhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVmIHZv
aWQgKCpXS1BhZ2VQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwotCi10eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDaGFuZ2VCYWNr
Rm9yd2FyZExpc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwotCiBzdHJ1Y3QgV0tQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNp
b247CiAgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOwpAQCAtOTMsMTYgKzgyLDE2IEBAIHN0cnVj
dCBXS1BhZ2VMb2FkZXJDbGllbnQgewogICAgIFdLUGFnZURpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZUluRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlSW5GcmFtZTsKIAogICAgIC8vIEZJWE1FOiBNb3ZlIHRvIHByb2dyZXNz
IGNsaWVudC4KLSAgICBXS1BhZ2VEaWRTdGFydFByb2dyZXNzQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFN0YXJ0UHJvZ3Jlc3M7Ci0gICAgV0tQYWdlRGlk
Q2hhbmdlUHJvZ3Jlc3NDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaWRDaGFuZ2VQcm9ncmVzczsKLSAgICBXS1BhZ2VEaWRGaW5pc2hQcm9ncmVzc0NhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZpbmlzaFByb2dyZXNzOwor
ICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkU3RhcnRQcm9ncmVzczsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENoYW5n
ZVByb2dyZXNzOworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmluaXNoUHJvZ3Jlc3M7CiAKICAgICAvLyBG
SVhNRTogVGhlc2UgdGhyZWUgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgcGFydCBvZiB0aGlzIGNs
aWVudC4KLSAgICBXS1BhZ2VQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmU7Ci0gICAg
V0tQYWdlUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZTsKLSAgICBXS1BhZ2VQcm9jZXNz
RGlkQ3Jhc2hDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
b2Nlc3NEaWRDcmFzaDsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNp
dmU7CisgICAgV0tQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZTsKKyAgICBXS1Bh
Z2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByb2Nlc3NEaWRDcmFzaDsKIAotICAgIFdLUGFnZURpZENoYW5nZUJhY2tGb3J3YXJk
TGlzdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQmFja0Zv
cndhcmRMaXN0OworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0OwogfTsK
IHR5cGVkZWYgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCBXS1BhZ2VMb2FkZXJDbGllbnQ7CiAK
QEAgLTE1Miw4ICsxNDEsNiBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VSZXNvdXJjZUxvYWRDbGll
bnQgCiAKIC8vIFVJIENsaWVudAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQ
YWdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdL
RXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24s
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlU2hvd1BhZ2VD
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotdHlwZWRl
ZiB2b2lkICgqV0tQYWdlQ2xvc2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQsIFdLRnJhbWVSZWYg
ZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiBib29sICgqV0tQYWdlUnVu
SmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1l
c3NhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRl
ZiBXS1N0cmluZ1JlZiAoKldLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLU3RyaW5nUmVmIGRlZmF1bHRWYWx1ZSwg
V0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0xNzIsOCArMTU5
LDYgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYgogdHlwZWRlZiBX
S1JlY3QgKCpXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTZXRXaW5kb3dGcmFt
ZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tSZWN0IGZyYW1lLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKIHR5cGVkZWYgYm9vbCAoKldLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VE
aWREcmF3Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
LXR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFNjcm9sbENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyAoKldL
UGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFt
ZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLU3RyaW5nUmVmIGRhdGFi
YXNlTmFtZSwgV0tTdHJpbmdSZWYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJy
ZW50UXVvdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50VXNhZ2UsIHVuc2lnbmVkIGxvbmcg
bG9uZyBleHBlY3RlZFVzYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzUmVmIHBhcmFtZXRlcnMsIFdLT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0
eU9yaWdpblJlZiBvcmlnaW4sIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJt
aXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0xODUsMTAgKzE3MCwx
MCBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2spCiAKIHN0cnVjdCBX
S1BhZ2VVSUNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwotICAgIGNvbnN0IHZvaWQg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50SW5mbzsKKyAgICBjb25zdCB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CiAgICAgV0tQYWdlQ3JlYXRl
TmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
cmVhdGVOZXdQYWdlOwotICAgIFdLUGFnZVNob3dQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7Ci0gICAgV0tQYWdlQ2xvc2VD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
bG9zZTsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7CiAg
ICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CiAgICAgV0tQYWdlUnVuSmF2YVNjcmlw
dENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZh
U2NyaXB0Q29uZmlybTsKICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CkBAIC0y
MDcsOCArMTkyLDggQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VHZXRXaW5k
b3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdl
dFdpbmRvd0ZyYW1lOwogICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CiAgICAgV0tQYWdl
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7Ci0gICAgV0tQYWdlRGlkRHJhd0NhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREcmF3
OwotICAgIFdLUGFnZURpZFNjcm9sbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBXS1BhZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7
CisgICAgV0tQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOwogICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJh
c2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhOwogICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOwogICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKQEAgLTIxNyw2
ICsyMDIsNyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIFdLUGFnZURyYXdIZWFkZXJD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hl
YWRlcjsKICAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7CiAgICAgV0tQYWdlUHJpbnRGcmFtZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZy
YW1lOworICAgIFdLUGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdl
VUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlLmNwcAkocmV2aXNpb24gNzYzMjUpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTgsNyAr
NDU4LDggQEAgUVdLUGFnZTo6UVdLUGFnZShRV0tDb250ZXh0KiBjb250ZXh0KQogICAgICAgICAw
LCAgLyogZm9vdGVySGVpZ2h0ICovCiAgICAgICAgIDAsICAvKiBkcmF3SGVhZGVyICovCiAgICAg
ICAgIDAsICAvKiBkcmF3Rm9vdGVyICovCi0gICAgICAgIDAgICAvKiBwcmludEZyYW1lICovCisg
ICAgICAgIDAsICAvKiBwcmludEZyYW1lICovCisgICAgICAgIDAgICAvKiBydW5Nb2RhbCAqLwog
ICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2VSZWYoKSwgJnVpQ2xpZW50KTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDc2MzI1KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAs
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTE3MywxMyArMTczLDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpz
aG93KCkKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bk1vZGFsKCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wYWdlLT5jYW5S
dW5Nb2RhbCgpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuTW9kYWwoKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wYWdlLT5ydW5Nb2RhbCgpOwogfQogCiB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxl
KQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAkocmV2aXNpb24gNzYzMjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQ
bHVnaW5Qcm94eS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQcmludElu
Zm8uaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCiAj
aW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0
LmgiCkBAIC0xNDksNiArMTUwLDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IAogICAgICwgbV9maW5kQ29udHJvbGxlcih0aGlzKQogICAgICwgbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcih0aGlzKQogICAgICwgbV9wYWdlSUQocGFnZUlEKQor
ICAgICwgbV9jYW5SdW5Nb2RhbChwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKQorICAgICwgbV9pc1J1
bm5pbmdNb2RhbChmYWxzZSkKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwogCkBAIC0zNzcsNiAr
MzgwLDExIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgIG1fZHJhd2luZ0FyZWEuY2xlYXIo
KTsKIAogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92ZVdlYlBhZ2UobV9wYWdlSUQpOwor
CisgICAgaWYgKG1faXNSdW5uaW5nTW9kYWwpIHsKKyAgICAgICAgbV9pc1J1bm5pbmdNb2RhbCA9
IGZhbHNlOworICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ydW5Mb29wKCktPnN0b3AoKTsK
KyAgICB9CiB9CiAKIHZvaWQgV2ViUGFnZTo6dHJ5Q2xvc2UoKQpAQCAtMTc5Myw0ICsxODAxLDE3
IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb1BERih1aW50NjRfdCBmcmEKIH0KICNlbmRpZgog
Cit2b2lkIFdlYlBhZ2U6OnJ1bk1vZGFsKCkKK3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmIChtX2lzUnVubmluZ01vZGFsKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2lzUnVubmluZ01vZGFsID0gdHJ1ZTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bk1vZGFsKCkpOworICAgIFJ1bkxvb3A6OnJ1bigpOworICAgIEFTU0VSVCghbV9p
c1J1bm5pbmdNb2RhbCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA3NjMyNSkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxMSw2ICszMTEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIG1haW5GcmFtZUhh
c0N1c3RvbVJlcHJlc2VudGF0aW9uKCkgY29uc3Q7CiAKKyAgICBib29sIGNhblJ1bk1vZGFsKCkg
Y29uc3QgeyByZXR1cm4gbV9jYW5SdW5Nb2RhbDsgfQorICAgIHZvaWQgcnVuTW9kYWwoKTsKKwog
cHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYpOwogCkBAIC00OTQsNiArNDk3LDkgQEAgcHJpdmF0ZToKIAogICAgIFNh
bmRib3hFeHRlbnNpb25UcmFja2VyIG1fc2FuZGJveEV4dGVuc2lvblRyYWNrZXI7CiAgICAgdWlu
dDY0X3QgbV9wYWdlSUQ7CisKKyAgICBib29sIG1fY2FuUnVuTW9kYWw7CisgICAgYm9vbCBtX2lz
UnVubmluZ01vZGFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NjMyNSkK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEx
LTAxLTIwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBJbXBsZW1lbnQgc2hvd01v
ZGFsRGlhbG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01Mjg1NQorCisgICAgICAgIFRoaXMgZml4ZXMgV2ViS2l0VGVzdFJ1bm5lciB0byBjb21waWxl
LCBidXQgbW9yZSB3b3JrIGlzIHByb2JhYmx5CisgICAgICAgIG5lZWRlZCB0byBnZXQgaXQgdG8g
cGFzcyB0aGUgdGVzdHMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKTogQWRkZWQu
IENhbGxzIHRocm91Z2ggdG8gdGhlCisgICAgICAgIHBsYXRmb3JtLXNwZWNpZmljIHZlcnNpb24g
b2YgcnVuTW9kYWwuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBh
Z2UpOiBDaGFuZ2VkIHRvIGJlIGEgcHJpdmF0ZQorICAgICAgICBzdGF0aWMgbWVtYmVyIGZ1bmN0
aW9uIHNvIGl0IGNhbiByZWZlciB0byBydW5Nb2RhbCwgd2hpY2ggaXMKKyAgICAgICAgYSBwcml2
YXRlIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24uCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
Ojppbml0aWFsaXplKTogUGFzcyAwIGZvciB0aGUgcnVuTW9kYWwKKyAgICAgICAgZnVuY3Rpb24g
c2luY2Ugd2UgZG9uJ3QgbmVlZCB0byBydW4gdGhlIG1haW4gd2luZG93IG1vZGFsLgorICAgICAg
ICBJIHN1c3BlY3QgdGhpcyBpcyB3cm9uZyBhbmQgd2lsbCBuZWVkIHRvIGNoYW5nZS4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6IEFkZGVkIGRlY2xhcmF0aW9u
cyBmb3IKKyAgICAgICAgdGhlIGZ1bmN0aW9ucyBhZGRlZCBhYm92ZS4KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnJ1bk1vZGFsKTogQWRkZWQuIFVudGVzdGVkIGltcGxlbWVudGF0aW9uLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpydW5Nb2RhbCk6IEFkZGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKTogQWRkZWQuCisKIDIwMTEtMDEtMjAgIERpcmsgUHJh
bmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gNzYzMjUpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMywxMSBAQCBzdGF0aWMgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnJ1bk1vZGFsKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQoreworICAgIHJ1bk1vZGFsKHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKSk7Cit9CisKIHN0YXRpYyB2b2lkIGNsb3NlT3RoZXJQ
YWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdLUGFn
ZUNsb3NlKHBhZ2UpOwpAQCAtMTEwLDcgKzExNSw3IEBAIHN0YXRpYyB2b2lkIGNsb3NlT3RoZXJQ
YWdlKFdLUGFnZVJlZiBwYWcKICAgICBkZWxldGUgdmlldzsKIH0KIAotc3RhdGljIFdLUGFnZVJl
ZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLRGljdGlvbmFyeVJlZiwgV0tF
dmVudE1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKikKK1dLUGFnZVJl
ZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS0Rp
Y3Rpb25hcnlSZWYsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgY29uc3Qg
dm9pZCopCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmll
dyhXS1BhZ2VHZXRDb250ZXh0KG9sZFBhZ2UpLCBXS1BhZ2VHZXRQYWdlR3JvdXAob2xkUGFnZSkp
OwogICAgIFdLUGFnZVJlZiBuZXdQYWdlID0gdmlldy0+cGFnZSgpOwpAQCAtMTUxLDYgKzE1Niw3
IEBAIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFdLUGFnZVIKICAgICAgICAgMCwg
Ly8gZHJhd0hlYWRlcgogICAgICAgICAwLCAvLyBkcmF3Rm9vdGVyCiAgICAgICAgIDAsIC8vIHBy
aW50RnJhbWUKKyAgICAgICAgcnVuTW9kYWwsCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtMjYxLDYgKzI2Nyw3IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICAgICAgMCwgLy8g
ZHJhd0hlYWRlcgogICAgICAgICAwLCAvLyBkcmF3Rm9vdGVyCiAgICAgICAgIDAsIC8vIHByaW50
RnJhbWUKKyAgICAgICAgMCwgLy8gcnVuTW9kYWwKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VV
SUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQpOwogCkluZGV4OiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA3NjMyNSkKKysr
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtODUsNiArODUsMTAgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBwcm9jZXNzRGlkQ3Jh
c2goV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICB2b2lkIHByb2Nlc3NE
aWRDcmFzaChXS1BhZ2VSZWYpOwogCisgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhlclBh
Z2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLRGljdGlvbmFyeVJlZiwgV0tFdmVudE1vZGlmaWVycywg
V0tFdmVudE1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBydW5N
b2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lk
IHJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopOwogCiAgICAgT3duUHRyPFRlc3RJbnZvY2F0aW9u
PiBtX2N1cnJlbnRJbnZvY2F0aW9uOwogCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9UZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQkocmV2aXNpb24gNzYzMjUpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKIAorI2luY2x1
ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmdDRi5oPgog
I2luY2x1ZGUgPG1hY2gtby9keWxkLmg+IAogCkBAIC02Miw0ICs2MywxMiBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDCiB7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyogdmlldykKK3sKKyAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gW3ZpZXctPnBsYXRmb3JtVmlldygpIHdpbmRvd107CisgICAgaWYgKCF3aW5kb3cpCisg
ICAgICAgIHJldHVybjsKKyAgICBbTlNBcHAgcnVuTW9kYWxGb3JXaW5kb3c6d2luZG93XTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV1RSCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rl
c3RDb250cm9sbGVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
cXQvVGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDc2MzI1KQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4
LDYgKzEyOCwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDCiB7
CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopCit7
CisgICAgLy8gRklYTUU6IE5lZWQgdG8gaW1wbGVtZW50IHRoaXMgdG8gdGVzdCBzaG93TW9kYWxE
aWFsb2cuCit9CisKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlclF0Lm1vYyIKIAogfSAvLyBuYW1l
c3BhY2UgV1RSCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxl
cldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENv
bnRyb2xsZXJXaW4uY3BwCShyZXZpc2lvbiA3NjMyNSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd2luL1Rlc3RDb250cm9sbGVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUyLDQgKzE1
Miw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUMKICAgICBXS0Nv
bnRleHRTZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKG1fY29udGV4dC5nZXQoKSwgZmFsc2Up
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKQor
eworICAgIC8vIEZJWE1FOiBOZWVkIHRvIGltcGxlbWVudCB0aGlzIHRvIHRlc3Qgc2hvd01vZGFs
RGlhbG9nLgorfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIK
</data>
<flag name="review"
          id="71101"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>