<?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>134807</bug_id>
          
          <creation_ts>2014-07-10 11:40:06 -0700</creation_ts>
          <short_desc>Add a mechanism to notify the UIProcess when an editing command is done executing</short_desc>
          <delta_ts>2014-07-10 16:26:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1021669</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-10 11:40:06 -0700</bug_when>
    <thetext>Some editing commands have an effect on some parts of the system that run inside the UIProcess. A good example are the cursor movement commands that require an update of the autocorrection/autosuggestion machinery.
We need a way to reliably know when the command has been executed in the WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021671</commentid>
    <comment_count>1</comment_count>
      <attachid>234714</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-10 11:50:24 -0700</bug_when>
    <thetext>Created attachment 234714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021673</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-10 11:59:48 -0700</bug_when>
    <thetext>mitz makes a good point! WebKit2 IPC has a nice callback mechanism you can use, and it makes sure that callbacks get invalidated e.g. when the process dies, stuff like that! You should probably be using it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021706</commentid>
    <comment_count>3</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-10 14:24:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; mitz makes a good point! WebKit2 IPC has a nice callback mechanism you can use, and it makes sure that callbacks get invalidated e.g. when the process dies, stuff like that! You should probably be using it.

I though about it and it seems heavier than just passing a parameter, but I agree it has the advantage of having the cleanup ready.
Thanks for the feedback, I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021716</commentid>
    <comment_count>4</comment_count>
      <attachid>234727</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-10 15:38:52 -0700</bug_when>
    <thetext>Created attachment 234727
Patch2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021717</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-10 15:41:28 -0700</bug_when>
    <thetext>Attachment 234727 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebPageProxy.h:380:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm:362:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021718</commentid>
    <comment_count>6</comment_count>
      <attachid>234727</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-10 15:46:06 -0700</bug_when>
    <thetext>Comment on attachment 234727
Patch2

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

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:2231
&gt; +    _page-&gt;executeEditCommand(commandName, [self](const String&amp; string, CallbackBase::Error error) {

I think VoidCallback is sufficient, isn&apos;t it? You don&apos;t need StringCallback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021719</commentid>
    <comment_count>7</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-10 15:50:39 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 234727 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234727&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:2231
&gt; &gt; +    _page-&gt;executeEditCommand(commandName, [self](const String&amp; string, CallbackBase::Error error) {
&gt; 
&gt; I think VoidCallback is sufficient, isn&apos;t it? You don&apos;t need StringCallback.

Probably yes. I don&apos;t need to check the command name. It ok with you with that change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021721</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-10 15:56:07 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 234727 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234727&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:2231
&gt; &gt; &gt; +    _page-&gt;executeEditCommand(commandName, [self](const String&amp; string, CallbackBase::Error error) {
&gt; &gt; 
&gt; &gt; I think VoidCallback is sufficient, isn&apos;t it? You don&apos;t need StringCallback.
&gt; 
&gt; Probably yes. I don&apos;t need to check the command name. It ok with you with that change?

You ought never need to, because you already know which command it was by the state around the callback.

r=me with that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021728</commentid>
    <comment_count>9</comment_count>
      <attachid>234730</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-10 16:20:55 -0700</bug_when>
    <thetext>Created attachment 234730
Patch3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021731</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-10 16:22:37 -0700</bug_when>
    <thetext>Attachment 234730 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/WebPageProxy.h:380:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm:362:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021733</commentid>
    <comment_count>11</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2014-07-10 16:26:48 -0700</bug_when>
    <thetext>Committed revision 170981.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234714</attachid>
            <date>2014-07-10 11:50:24 -0700</date>
            <delta_ts>2014-07-10 15:38:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>noselectionWillChange.txt</filename>
            <type>text/plain</type>
            <size>18254</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDk3MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE0LTA3LTEwICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbWVjaGFuaXNtIHRv
IG5vdGlmeSB0aGUgVUlQcm9jZXNzIHdoZW4gYW4gZWRpdGluZyBjb21tYW5kIGlzIGRvbmUgZXhl
Y3V0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM0ODA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U29tZSBlZGl0aW5nIGNvbW1hbmRzIGhhdmUgYW4gZWZmZWN0IG9uIHNvbWUgcGFydHMgb2YgdGhl
IHN5c3RlbSB0aGF0CisgICAgICAgIHJ1biBpbnNpZGUgdGhlIFVJUHJvY2Vzcy4gQSBnb29kIGV4
YW1wbGUgYXJlIHRoZSBjdXJzb3IgbW92ZW1lbnQgY29tbWFuZHMKKyAgICAgICAgdGhhdCByZXF1
aXJlIGFuIHVwZGF0ZSBvZiB0aGUgYXV0b2NvcnJlY3Rpb24vYXV0b3N1Z2dlc3Rpb24gbWFjaGlu
ZXJ5LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB3YXkgdG8gcmVsaWFibHkga25vdyB3aGVu
IHRoZSBjb21tYW5kIGhhcyBiZWVuIGV4ZWN1dGVkCisgICAgICAgIGluIHRoZSBXZWJQcm9jZXNz
LiBBIHByZXZpb3VzIGF0dGVtcHQgYXQgc29sdmluZyB0aGlzIHByb2JsZW0gd2FzIGFkZGVkIGlu
CisgICAgICAgIHIxNzA4NTggYW5kIHdhcyBwYXJ0aWFsbHkgcmV2ZXJ0ZWQgaW4gcjE3MDk0OC4K
KyAgICAgICAgV2ViUGFnZVByb3h5OjpleGVjdXRlRWRpdENvbW1hbmQgbm93IHRha2VzIGFuIGV4
dHJhIHBhcmFtZXRlciB0byBpbmRpY2F0ZQorICAgICAgICB3aGV0aGVyIHdlIGFyZSBpbnRlcmVz
dGVkIGluIGJlaW5nIG5vdGlmaWVkIHdoZW4gdGhlIGNvbW1hbmQgaGFzIGJlZW4KKyAgICAgICAg
ZXhlY3V0ZWQgaW4gdGhlIFdlYlByb2Nlc3MuIElmIHRoZSBwYXJhbWV0ZXIgaXMgdHJ1ZSwgdGhl
IFdlYlByb2Nlc3Mgc2VuZHMKKyAgICAgICAgRGlkRXhlY3V0ZUVkaXRDb21tYW5kIGJhY2sgdG8g
dGhlIFVJUHJvY2Vzcy4KKyAgICAgICAgVGhlIGNoYW5nZSBhbHNvIHJlbW92ZXMgdGhlIHNlbGVj
dGlvbldpbGxDaGFuZ2Ugbm90aWZpY2F0aW9uIGFkZGVkIGluIHIxNzA4NTguCisgICAgICAgIAor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVk
aXRDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRFeGVjdXRlRWRp
dENvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVkaXRvclN0YXRlQ2hh
bmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZWxlY3Rpb25E
aWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRXhlY3V0ZUVk
aXRDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNlbGVjdGlvbldp
bGxDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVVcDp3aXRoSGlzdG9y
eTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfbW92ZURvd246d2l0aEhpc3Rvcnk6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVMZWZ0OndpdGhIaXN0b3J5Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlUmlnaHQ6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX21vdmVUb1N0YXJ0T2ZXb3JkOndpdGhIaXN0b3J5Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9TdGFydE9mUGFyYWdyYXBoOndpdGhIaXN0b3J5
Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9TdGFydE9mTGluZTp3aXRoSGlz
dG9yeTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfbW92ZVRvU3RhcnRPZkRvY3VtZW50
OndpdGhIaXN0b3J5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9FbmRPZldv
cmQ6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVUb0VuZE9m
UGFyYWdyYXBoOndpdGhIaXN0b3J5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3Zl
VG9FbmRPZkxpbmU6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21v
dmVUb0VuZE9mRG9jdW1lbnQ6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2RpZEV4ZWN1dGVFZGl0Q29tbWFuZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2VsZWN0aW9uV2lsbENoYW5nZV0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om5vdGlm
eVNlbGVjdGlvbldpbGxDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZXhlY3V0ZUVkaXRD
b21tYW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE0LTA3LTEw
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUGFzcyBzYW5kYm94
IGV4dGVuc2lvbiBmb3IgR0wgY2FjaGUgb3ZlciB0byB3ZWJwcm9jZXNzCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDE3MDk2NykKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw3ICsy
NTksNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNv
bnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9v
bCBibHVyUHJldmlvdXNOb2RlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc3RvcEFzc2lzdGluZ05vZGUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVj
dGlvbldpbGxDaGFuZ2UoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGlvbkRpZENoYW5n
ZSgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgaXNDaGFyRXZlbnQpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcG9zaXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZShjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiYpID0gMDsKQEAgLTI3NSw2ICsyNzQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZFNjcm9sbCgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JikgPSAwOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gbWltZVR5cGVzV2l0aEN1c3RvbUNv
bnRlbnRQcm92aWRlcnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEV4ZWN1dGVFZGl0Q29t
bWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKSA9IDA7CiAKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIHZpcnR1YWwgdm9pZCBzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNv
cmU6OkhpZ2hsaWdodCYpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCShyZXZpc2lvbiAxNzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwMiw3ICsxMzAyLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldE1haW50YWluc0luYWN0aXZlUwogICAgIG1fbWFpbnRhaW5z
SW5hY3RpdmVTZWxlY3Rpb24gPSBuZXdWYWx1ZTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5
OjpleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwg
Ym9vbCBzZW5kRXhlY3V0aW9uTm90aWZpY2F0aW9uKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IGlnbm9yZVNwZWxsaW5nQ29tbWFuZE5hbWUoQVNDSUlMaXRlcmFsKCJpZ25v
cmVTcGVsbGluZyIpKTsKIApAQCAtMTMxMiw5ICsxMzEyLDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpleGVjdXRlRWRpdENvbW1hbmQoY28KICAgICBpZiAoY29tbWFuZE5hbWUgPT0gaWdub3JlU3Bl
bGxpbmdDb21tYW5kTmFtZSkKICAgICAgICAgKyttX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1l
c3NhZ2VDb3VudDsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXhl
Y3V0ZUVkaXRDb21tYW5kKGNvbW1hbmROYW1lKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1hbmROYW1lLCBz
ZW5kRXhlY3V0aW9uTm90aWZpY2F0aW9uKSwgbV9wYWdlSUQpOwogfQotICAgIAorCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5h
bWUpCit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIG1fcGFnZUNsaWVudC5kaWRFeGVjdXRlRWRp
dENvbW1hbmQoY29tbWFuZE5hbWUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29tbWFuZE5h
bWUpOworI2VuZGlmCit9CisKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHZvaWQgV2Vi
UGFnZVByb3h5Ojpjb21taXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0KCkKIHsKQEAgLTM0MzYsOSAr
MzQ0NSw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjplZGl0b3JTdGF0ZUNoYW5nZWQoY28KICAgICBt
X3RlbXBvcmFyaWx5Q2xvc2VkQ29tcG9zaXRpb24gPSBlZGl0b3JTdGF0ZS5zaG91bGRJZ25vcmVD
b21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSAmJiAobV90ZW1wb3JhcmlseUNsb3NlZENvbXBvc2l0
aW9uIHx8IG1fZWRpdG9yU3RhdGUuaGFzQ29tcG9zaXRpb24pICYmICFlZGl0b3JTdGF0ZS5oYXND
b21wb3NpdGlvbjsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIG5vdGlmeVNlbGVj
dGlvbldpbGxDaGFuZ2UoKTsKLSNlbmRpZgogICAgIG1fZWRpdG9yU3RhdGUgPSBlZGl0b3JTdGF0
ZTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMTcwOTY3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNzQsNyArMzc0LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBhZGRNSU1FVHlwZVdpdGhDdXN0b21Db250ZW50UHJvdmlkZXIoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKLSAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmROYW1lKTsKKyAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25z
dCBTdHJpbmcmIGNvbW1hbmROYW1lLCBib29sIHNlbmRFeGVjdXRpb25Ob3RpZmljYXRpb24gPSBm
YWxzZSk7CiAgICAgdm9pZCB2YWxpZGF0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChjb25zdCBTdHJpbmcmLCBib29sLCBpbnQzMl90LCBDYWxs
YmFja0Jhc2U6OkVycm9yKT4pOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBkb3VibGUgZGlzcGxh
eWVkQ29udGVudFNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlLnNjYWxlKCk7IH0KQEAgLTEwNDksNiArMTA0OSw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGVkaXRvclN0YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYpOwogICAgIHZvaWQgY29t
cG9zaXRpb25XYXNDYW5jZWxlZChjb25zdCBFZGl0b3JTdGF0ZSYpOworICAgIHZvaWQgZGlkRXhl
Y3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpOwogCiAgICAgLy8gQmFj
ay9Gb3J3YXJkIGxpc3QgbWFuYWdlbWVudAogICAgIHZvaWQgYmFja0ZvcndhcmRBZGRJdGVtKHVp
bnQ2NF90IGl0ZW1JRCk7CkBAIC0xMjIyLDcgKzEyMjMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZW5hYmxlSW5zcGVjdG9yTm9kZVNlYXJjaCgpOwogICAgIHZvaWQgZGlzYWJsZUluc3BlY3Rvck5v
ZGVTZWFyY2goKTsKICNlbmRpZgotICAgIHZvaWQgbm90aWZ5U2VsZWN0aW9uV2lsbENoYW5nZSgp
OwogICAgIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb24oKTsKICNlbmRpZiAvLyBQTEFURk9S
TShJT1MpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTcwOTY3KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjIxLDYg
KzIyMSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRWRpdG9yU3RhdGVDaGFu
Z2VkKFdlYktpdDo6RWRpdG9yU3RhdGUgZWRpdG9yU3RhdGUpCiAgICAgQ29tcG9zaXRpb25XYXND
YW5jZWxlZChXZWJLaXQ6OkVkaXRvclN0YXRlIGVkaXRvclN0YXRlKQogCisgICAgIyBFZGl0aW5n
IGNvbW1hbmQgZXhlY3V0aW9uIG5vdGlmaWNhdGlvbgorICAgIERpZEV4ZWN1dGVFZGl0Q29tbWFu
ZChTdHJpbmcgY29tbWFuZE5hbWUpCisKICAgICAjIEZpbmQgbWVzc2FnZXMKICAgICBEaWRDb3Vu
dFN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgdWludDMyX3QgbWF0Y2hDb3VudCkKICAgICBT
ZXRGaW5kSW5kaWNhdG9yKFdlYkNvcmU6OkZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0LCBWZWN0b3I8
V2ViQ29yZTo6RmxvYXRSZWN0PiB0ZXh0UmVjdHMsIGZsb2F0IGNvbnRlbnRJbWFnZVNjYWxlRmFj
dG9yLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGNvbnRlbnRJbWFnZUhhbmRsZSwg
Ym9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCShyZXZpc2lvbiAxNzA5NjcpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExOSw3ICsxMTksNiBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHN0
YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNl
cklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcEFzc2lzdGluZ05vZGUoKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9uV2lsbENoYW5nZSgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIGJvb2wgaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYs
IGJvb2wgaXNDaGFyRXZlbnQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvbklu
Zm9ybWF0aW9uRGlkQ2hhbmdlKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
Jikgb3ZlcnJpZGU7CkBAIC0xMzMsNiArMTMyLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRv
dWJsZSBtaW5pbXVtWm9vbVNjYWxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJD
b3JlOjpGbG9hdFNpemUgY29udGVudHNTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUp
IG92ZXJyaWRlOworCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICB2aXJ0dWFsIHZvaWQgc2hv
d0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpIG92ZXJyaWRlOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCShyZXZpc2lvbiAxNzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNTAsMTQgKzM1MCwxNCBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UoY29uc3QgCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2VsZWN0aW9uV2lsbENoYW5nZSgpCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQogewotICAgIFttX2NvbnRl
bnRWaWV3IF9zZWxlY3Rpb25XaWxsQ2hhbmdlXTsKKyAgICBbbV9jb250ZW50VmlldyBfc2VsZWN0
aW9uQ2hhbmdlZF07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNlbGVjdGlvbkRpZENoYW5n
ZSgpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRFeGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3Ry
aW5nJiBjb21tYW5kTmFtZSkKIHsKLSAgICBbbV9jb250ZW50VmlldyBfc2VsZWN0aW9uQ2hhbmdl
ZF07CisgICAgW21fY29udGVudFZpZXcgX2RpZEV4ZWN1dGVFZGl0Q29tbWFuZDpjb21tYW5kTmFt
ZV07CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKQpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCShyZXZpc2lvbiAxNzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjQsOCArMTY0LDggQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIAogLSAodm9p
ZClfc3RhcnRBc3Npc3RpbmdOb2RlOihjb25zdCBXZWJLaXQ6OkFzc2lzdGVkTm9kZUluZm9ybWF0
aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGlu
ZyBibHVyUHJldmlvdXNOb2RlOihCT09MKWJsdXJQcmV2aW91c05vZGUgdXNlck9iamVjdDooTlNP
YmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmplY3Q7CiAtICh2b2lkKV9zdG9wQXNzaXN0
aW5nTm9kZTsKLS0gKHZvaWQpX3NlbGVjdGlvbldpbGxDaGFuZ2U7CiAtICh2b2lkKV9zZWxlY3Rp
b25DaGFuZ2VkOworLSAodm9pZClfZGlkRXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0cmluZyAqKWNv
bW1hbmROYW1lOwogLSAodm9pZClfdXBkYXRlQ2hhbmdlZFNlbGVjdGlvbjsKIC0gKEJPT0wpX2lu
dGVycHJldEtleUV2ZW50OihXZWJJT1NFdmVudCAqKXRoZUV2ZW50IGlzQ2hhckV2ZW50OihCT09M
KWlzQ2hhckV2ZW50OwogLSAodm9pZClfcG9zaXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZTooY29u
c3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mbzsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAxNzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjIyNyw3MyArMjIyNyw4NSBAQCAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooV2ViSU9TRXZl
bnQgCiAKIC0gKFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopX21vdmVVcDooQk9PTClleHRl
bmRpbmcgd2l0aEhpc3Rvcnk6KFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopaGlzdG9yeQog
ewotICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlVXAiKSk7
CisgICAgW3NlbGYgYmVnaW5TZWxlY3Rpb25DaGFuZ2VdOworICAgIF9wYWdlLT5leGVjdXRlRWRp
dENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlVXAiKSwgdHJ1ZSk7CiAgICAgcmV0dXJuIG5pbDsK
IH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKilfbW92ZURvd246KEJPT0wpZXh0
ZW5kaW5nIHdpdGhIaXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkK
IHsKLSAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZURvd24i
KSk7CisgICAgW3NlbGYgYmVnaW5TZWxlY3Rpb25DaGFuZ2VdOworICAgIF9wYWdlLT5leGVjdXRl
RWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlRG93biIpLCB0cnVlKTsKICAgICByZXR1cm4g
bmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKV9tb3ZlTGVmdDooQk9P
TCkgZXh0ZW5kaW5nIHdpdGhIaXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhp
c3RvcnkKIHsKLSAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92
ZUxlZnQiKSk7CisgICAgW3NlbGYgYmVnaW5TZWxlY3Rpb25DaGFuZ2VdOworICAgIF9wYWdlLT5l
eGVjdXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlTGVmdCIpLCB0cnVlKTsKICAgICBy
ZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKV9tb3ZlUmln
aHQ6KEJPT0wpIGV4dGVuZGluZyB3aXRoSGlzdG9yeTooVUlUZXh0SW5wdXRBcnJvd0tleUhpc3Rv
cnkgKiloaXN0b3J5CiB7Ci0gICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVy
YWwoIm1vdmVSaWdodCIpKTsKKyAgICBbc2VsZiBiZWdpblNlbGVjdGlvbkNoYW5nZV07CisgICAg
X3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoIm1vdmVSaWdodCIpLCB0cnVl
KTsKICAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAq
KV9tb3ZlVG9TdGFydE9mV29yZDooQk9PTClleHRlbmRpbmcgd2l0aEhpc3Rvcnk6KFVJVGV4dElu
cHV0QXJyb3dLZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVjdXRlRWRpdENv
bW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlV29yZEJhY2t3YXJkIikpOworICAgIFtzZWxmIGJlZ2lu
U2VsZWN0aW9uQ2hhbmdlXTsKKyAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0
ZXJhbCgibW92ZVdvcmRCYWNrd2FyZCIpLCB0cnVlKTsKICAgICByZXR1cm4gbmlsOwogfQogCiAt
IChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKV9tb3ZlVG9TdGFydE9mUGFyYWdyYXBoOihC
T09MKSBleHRlbmRpbmcgd2l0aEhpc3Rvcnk6KFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICop
aGlzdG9yeQogewotICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJt
b3ZlVG9TdGFydE9mUGFyYWdyYXBoIikpOworICAgIFtzZWxmIGJlZ2luU2VsZWN0aW9uQ2hhbmdl
XTsKKyAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVRvU3Rh
cnRPZlBhcmFncmFwaCIpLCB0cnVlKTsKICAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJ
bnB1dEFycm93S2V5SGlzdG9yeSAqKV9tb3ZlVG9TdGFydE9mTGluZTooQk9PTCkgZXh0ZW5kaW5n
IHdpdGhIaXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAg
ICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVRvU3RhcnRPZkxp
bmUiKSk7CisgICAgW3NlbGYgYmVnaW5TZWxlY3Rpb25DaGFuZ2VdOworICAgIF9wYWdlLT5leGVj
dXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlVG9TdGFydE9mTGluZSIpLCB0cnVlKTsK
ICAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKV9t
b3ZlVG9TdGFydE9mRG9jdW1lbnQ6KEJPT0wpIGV4dGVuZGluZyB3aXRoSGlzdG9yeTooVUlUZXh0
SW5wdXRBcnJvd0tleUhpc3RvcnkgKiloaXN0b3J5CiB7Ci0gICAgX3BhZ2UtPmV4ZWN1dGVFZGl0
Q29tbWFuZChBU0NJSUxpdGVyYWwoIm1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiKSk7CisgICAg
W3NlbGYgYmVnaW5TZWxlY3Rpb25DaGFuZ2VdOworICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1h
bmQoQVNDSUlMaXRlcmFsKCJtb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiksIHRydWUpOwogICAg
IHJldHVybiBuaWw7CiB9CiAKIC0gKFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopX21vdmVU
b0VuZE9mV29yZDooQk9PTClleHRlbmRpbmcgd2l0aEhpc3Rvcnk6KFVJVGV4dElucHV0QXJyb3dL
ZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoQVND
SUlMaXRlcmFsKCJtb3ZlV29yZEZvcndhcmQiKSk7CisgICAgW3NlbGYgYmVnaW5TZWxlY3Rpb25D
aGFuZ2VdOworICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3Zl
V29yZEZvcndhcmQiKSwgdHJ1ZSk7CiAgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5w
dXRBcnJvd0tleUhpc3RvcnkgKilfbW92ZVRvRW5kT2ZQYXJhZ3JhcGg6KEJPT0wpIGV4dGVuZGlu
ZyB3aXRoSGlzdG9yeTooVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKiloaXN0b3J5CiB7Ci0g
ICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoIm1vdmVUb0VuZE9mUGFy
YWdyYXBoIikpOworICAgIFtzZWxmIGJlZ2luU2VsZWN0aW9uQ2hhbmdlXTsKKyAgICBfcGFnZS0+
ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVRvRW5kT2ZQYXJhZ3JhcGgiKSwg
dHJ1ZSk7CiAgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhpc3Rv
cnkgKilfbW92ZVRvRW5kT2ZMaW5lOihCT09MKSBleHRlbmRpbmcgd2l0aEhpc3Rvcnk6KFVJVGV4
dElucHV0QXJyb3dLZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVjdXRlRWRp
dENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlVG9FbmRPZkxpbmUiKSk7CisgICAgW3NlbGYgYmVn
aW5TZWxlY3Rpb25DaGFuZ2VdOworICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoQVNDSUlM
aXRlcmFsKCJtb3ZlVG9FbmRPZkxpbmUiKSwgdHJ1ZSk7CiAgICAgcmV0dXJuIG5pbDsKIH0KIAog
LSAoVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKilfbW92ZVRvRW5kT2ZEb2N1bWVudDooQk9P
TCkgZXh0ZW5kaW5nIHdpdGhIaXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhp
c3RvcnkKIHsKLSAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92
ZVRvRW5kT2ZEb2N1bWVudCIpKTsKKyAgICBbc2VsZiBiZWdpblNlbGVjdGlvbkNoYW5nZV07Cisg
ICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoIm1vdmVUb0VuZE9mRG9j
dW1lbnQiKSwgdHJ1ZSk7CiAgICAgcmV0dXJuIG5pbDsKIH0KIApAQCAtMjUwNCwxMCArMjUxNiw2
IEBAIC0gKHZvaWQpX3N0b3BBc3Npc3RpbmdOb2RlCiAgICAgW193ZWJTZWxlY3Rpb25Bc3Npc3Rh
bnQgcmVzaWduZWRGaXJzdFJlc3BvbmRlcl07CiB9CiAKLS0gKHZvaWQpX3NlbGVjdGlvbldpbGxD
aGFuZ2UKLXsKLX0KLQogLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZAogewogICAgIF9zZWxlY3Rp
b25OZWVkc1VwZGF0ZSA9IFlFUzsKQEAgLTI1MTcsNiArMjUyNSwxMSBAQCAtICh2b2lkKV9zZWxl
Y3Rpb25DaGFuZ2VkCiAgICAgICAgIFtzZWxmIF91cGRhdGVDaGFuZ2VkU2VsZWN0aW9uXTsKIH0K
IAorLSAodm9pZClfZGlkRXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0cmluZyAqKWNvbW1hbmROYW1l
Cit7CisgICAgW3NlbGYgZW5kU2VsZWN0aW9uQ2hhbmdlXTsKK30KKwogLSAodm9pZClzZWxlY3RX
b3JkRm9yUmVwbGFjZW1lbnQKIHsKICAgICBfcGFnZS0+ZXh0ZW5kU2VsZWN0aW9uKFdvcmRHcmFu
dWxhcml0eSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQkocmV2aXNpb24gMTcwOTY3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ2NiwxMSArNDY2
LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFwcGxpY2F0aW9uRGlkQmVjb21lQQogICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6QXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUo
KSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bm90aWZ5U2VsZWN0aW9uV2ls
bENoYW5nZSgpCi17Ci0gICAgbV9wYWdlQ2xpZW50LnNlbGVjdGlvbldpbGxDaGFuZ2UoKTsKLX0K
LQogdm9pZCBXZWJQYWdlUHJveHk6Om5vdGlmeVJldmVhbGVkU2VsZWN0aW9uKCkKIHsKICAgICBt
X3BhZ2VDbGllbnQuc2VsZWN0aW9uRGlkQ2hhbmdlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxNzA5NjcpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE5NTcsOSArMTk1NywxMSBAQCB2b2lkIFdlYlBhZ2U6OnZhbGlkYXRlQ29tbWFuZChj
b25zdCBTdHJpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpWYWxpZGF0ZUNvbW1h
bmRDYWxsYmFjayhjb21tYW5kTmFtZSwgaXNFbmFibGVkLCBzdGF0ZSwgY2FsbGJhY2tJRCkpOwog
fQogCi12b2lkIFdlYlBhZ2U6OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1h
bmROYW1lKQordm9pZCBXZWJQYWdlOjpleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBj
b21tYW5kTmFtZSwgYm9vbCBzZW5kRXhlY3V0aW9uTm90aWZpY2F0aW9uKQogewogICAgIGV4ZWN1
dGVFZGl0aW5nQ29tbWFuZChjb21tYW5kTmFtZSwgU3RyaW5nKCkpOworICAgIGlmIChzZW5kRXhl
Y3V0aW9uTm90aWZpY2F0aW9uKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZEV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZSkpOwogfQogCiB2b2lkIFdlYlBhZ2U6
OnJlc3RvcmVTZXNzaW9uKGNvbnN0IFZlY3RvcjxCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+JiBp
dGVtU3RhdGVzKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCShyZXZpc2lvbiAxNzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MDUsNyArOTA1LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHVwZGF0ZUlzSW5XaW5kb3coYm9vbCBpc0luaXRpYWxTdGF0ZSA9IGZhbHNl
KTsKICAgICB2b2lkIHNldFZpZXdTdGF0ZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzLCBib29s
IHdhbnRzRGlkVXBkYXRlVmlld1N0YXRlID0gZmFsc2UpOwogICAgIHZvaWQgdmFsaWRhdGVDb21t
YW5kKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90KTsKLSAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFu
ZChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJp
bmcmLCBib29sIHNlbmRFeGVjdXRpb25Ob3RpZmljYXRpb24pOwogCiAgICAgdm9pZCBtb3VzZUV2
ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmKTsKICAgICB2b2lkIG1vdXNlRXZlbnRTeW5jRm9yVGVz
dGluZyhjb25zdCBXZWJNb3VzZUV2ZW50JiwgYm9vbCYpOwpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDE3MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNyArMTY5LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVHJ5Q2xvc2UoKQogCiAgICAgVmFsaWRh
dGVDb21tYW5kKFN0cmluZyBuYW1lLCB1aW50NjRfdCBjYWxsYmFja0lEKQotICAgIEV4ZWN1dGVF
ZGl0Q29tbWFuZChTdHJpbmcgbmFtZSkKKyAgICBFeGVjdXRlRWRpdENvbW1hbmQoU3RyaW5nIG5h
bWUsIGJvb2wgc2VuZEV4ZWN1dGlvbk5vdGlmaWNhdGlvbikKIAogICAgIERpZFJlbW92ZUVkaXRD
b21tYW5kKHVpbnQ2NF90IGNvbW1hbmRJRCkKICAgICBSZWFwcGx5RWRpdENvbW1hbmQodWludDY0
X3QgY29tbWFuZElEKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234727</attachid>
            <date>2014-07-10 15:38:52 -0700</date>
            <delta_ts>2014-07-10 16:20:55 -0700</delta_ts>
            <desc>Patch2</desc>
            <filename>noselectionWillChange.txt</filename>
            <type>text/plain</type>
            <size>14829</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDk3OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTA3LTEwICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbWVjaGFuaXNtIHRv
IG5vdGlmeSB0aGUgVUlQcm9jZXNzIHdoZW4gYW4gZWRpdGluZyBjb21tYW5kIGlzIGRvbmUgZXhl
Y3V0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM0ODA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U29tZSBlZGl0aW5nIGNvbW1hbmRzIGhhdmUgYW4gZWZmZWN0IG9uIHNvbWUgcGFydHMgb2YgdGhl
IHN5c3RlbSB0aGF0CisgICAgICAgIHJ1biBpbnNpZGUgdGhlIFVJUHJvY2Vzcy4gQSBnb29kIGV4
YW1wbGUgYXJlIHRoZSBjdXJzb3IgbW92ZW1lbnQgY29tbWFuZHMKKyAgICAgICAgdGhhdCByZXF1
aXJlIGFuIHVwZGF0ZSBvZiB0aGUgYXV0b2NvcnJlY3Rpb24vYXV0b3N1Z2dlc3Rpb24gbWFjaGlu
ZXJ5LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB3YXkgdG8gcmVsaWFibHkga25vdyB3aGVu
IHRoZSBjb21tYW5kIGhhcyBiZWVuIGV4ZWN1dGVkCisgICAgICAgIGluIHRoZSBXZWJQcm9jZXNz
LiBBIHByZXZpb3VzIGF0dGVtcHQgYXQgc29sdmluZyB0aGlzIHByb2JsZW0gd2FzIGFkZGVkIGlu
CisgICAgICAgIHIxNzA4NTggYW5kIHdhcyBwYXJ0aWFsbHkgcmV2ZXJ0ZWQgaW4gcjE3MDk0OC4K
KyAgICAgICAgVGhlIGNoYW5nZSBhbHNvIHJlbW92ZXMgdGhlIHNlbGVjdGlvbldpbGxDaGFuZ2Ug
bm90aWZpY2F0aW9uIGFkZGVkIGluIHIxNzA4NTguCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFn
ZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVkaXRvclN0YXRlQ2hhbmdlZCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2VsZWN0aW9uV2lsbENoYW5n
ZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2Fs
bGJhY2s6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVVcDp3aXRoSGlzdG9yeTpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfbW92ZURvd246d2l0aEhpc3Rvcnk6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVMZWZ0OndpdGhIaXN0b3J5Ol0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlUmlnaHQ6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX21vdmVUb1N0YXJ0T2ZXb3JkOndpdGhIaXN0b3J5Ol0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9TdGFydE9mUGFyYWdyYXBoOndpdGhIaXN0b3J5Ol0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9TdGFydE9mTGluZTp3aXRoSGlzdG9y
eTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfbW92ZVRvU3RhcnRPZkRvY3VtZW50Ondp
dGhIaXN0b3J5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9FbmRPZldvcmQ6
d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVUb0VuZE9mUGFy
YWdyYXBoOndpdGhIaXN0b3J5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9F
bmRPZkxpbmU6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVU
b0VuZE9mRG9jdW1lbnQ6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X3NlbGVjdGlvbldpbGxDaGFuZ2VdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpleGVj
dXRlRWRpdENvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om5vdGlmeVNl
bGVjdGlvbldpbGxDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2sp
OgorCiAyMDE0LTA3LTEwICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIGlPUyBidWlsZCBmaXggYWZ0ZXIgcjE3MDk3NC4gRGVmaW5lIGlk
IGlmIGJ1aWxkaW5nIGEgbm9uIE9iakMgZmlsZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAkocmV2aXNpb24gMTcwOTY3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjU5LDcgKzI1OSw2IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWRO
b2RlSW5mb3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91
c05vZGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdG9w
QXNzaXN0aW5nTm9kZSgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9uV2lsbENoYW5n
ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9uRGlkQ2hhbmdlKCkgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpbnRlcnByZXRLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50JiwgYm9vbCBpc0NoYXJFdmVudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvbklu
Zm9ybWF0aW9uRGlkQ2hhbmdlKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
JikgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJ
KHJldmlzaW9uIDE3MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDM2LDkgKzM0MzYsNiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZWRpdG9yU3RhdGVDaGFuZ2VkKGNvCiAgICAgbV90ZW1wb3JhcmlseUNsb3NlZENvbXBv
c2l0aW9uID0gZWRpdG9yU3RhdGUuc2hvdWxkSWdub3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFu
Z2UgJiYgKG1fdGVtcG9yYXJpbHlDbG9zZWRDb21wb3NpdGlvbiB8fCBtX2VkaXRvclN0YXRlLmhh
c0NvbXBvc2l0aW9uKSAmJiAhZWRpdG9yU3RhdGUuaGFzQ29tcG9zaXRpb247CiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKElPUykKLSAgICBub3RpZnlTZWxlY3Rpb25XaWxsQ2hhbmdlKCk7Ci0jZW5k
aWYKICAgICBtX2VkaXRvclN0YXRlID0gZWRpdG9yU3RhdGU7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9u
IDE3MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29y
a2luZyBjb3B5KQpAQCAtMzc3LDYgKzM3Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4ZWN1dGVF
ZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKTsKICAgICB2b2lkIHZhbGlkYXRl
Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFN0cmluZyYsIGJvb2wsIGludDMyX3QsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAjaWYg
UExBVEZPUk0oSU9TKQorICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYg
Y29tbWFuZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tC
YXNlOjpFcnJvcik+KTsKICAgICBkb3VibGUgZGlzcGxheWVkQ29udGVudFNjYWxlKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLnNjYWxlKCk7IH0KICAgICBj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS5leHBvc2VkUmVjdCgpOyB9CiAgICAg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QoKSBjb25zdCB7
IHJldHVybiBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUudW5vYnNjdXJlZFJlY3QoKTsg
fQpAQCAtMTIyMiw3ICsxMjIzLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuYWJsZUluc3BlY3Rv
ck5vZGVTZWFyY2goKTsKICAgICB2b2lkIGRpc2FibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCk7CiAj
ZW5kaWYKLSAgICB2b2lkIG5vdGlmeVNlbGVjdGlvbldpbGxDaGFuZ2UoKTsKICAgICB2b2lkIG5v
dGlmeVJldmVhbGVkU2VsZWN0aW9uKCk7CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CShyZXZpc2lvbiAxNzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksNiBAQCBwcml2YXRl
OgogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5v
ZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3Vz
Tm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c3RvcEFzc2lzdGluZ05vZGUoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9u
V2lsbENoYW5nZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25EaWRDaGFu
Z2UoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJwcmV0S2V5RXZlbnQoY29uc3Qg
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgaXNDaGFyRXZlbnQpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBwb3NpdGlvbkluZm9ybWF0aW9uRGlkQ2hhbmdlKGNvbnN0IEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJikgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0JKHJldmlzaW9uIDE3
MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM1MCwxMSArMzUwLDYgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6c2V0RHJhZ0ltYWdlKGNvbnN0IAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
UGFnZUNsaWVudEltcGw6OnNlbGVjdGlvbldpbGxDaGFuZ2UoKQotewotICAgIFttX2NvbnRlbnRW
aWV3IF9zZWxlY3Rpb25XaWxsQ2hhbmdlXTsKLX0KLQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2Vs
ZWN0aW9uRGlkQ2hhbmdlKCkKIHsKICAgICBbbV9jb250ZW50VmlldyBfc2VsZWN0aW9uQ2hhbmdl
ZF07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmgJKHJldmlzaW9uIDE3MDk2NykKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NCw3ICsxNjQsNiBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogCiAt
ICh2b2lkKV9zdGFydEFzc2lzdGluZ05vZGU6KGNvbnN0IFdlYktpdDo6QXNzaXN0ZWROb2RlSW5m
b3JtYXRpb24mKWluZm9ybWF0aW9uIHVzZXJJc0ludGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVy
YWN0aW5nIGJsdXJQcmV2aW91c05vZGU6KEJPT0wpYmx1clByZXZpb3VzTm9kZSB1c2VyT2JqZWN0
OihOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNlck9iamVjdDsKIC0gKHZvaWQpX3N0b3BB
c3Npc3RpbmdOb2RlOwotLSAodm9pZClfc2VsZWN0aW9uV2lsbENoYW5nZTsKIC0gKHZvaWQpX3Nl
bGVjdGlvbkNoYW5nZWQ7CiAtICh2b2lkKV91cGRhdGVDaGFuZ2VkU2VsZWN0aW9uOwogLSAoQk9P
TClfaW50ZXJwcmV0S2V5RXZlbnQ6KFdlYklPU0V2ZW50ICopdGhlRXZlbnQgaXNDaGFyRXZlbnQ6
KEJPT0wpaXNDaGFyRXZlbnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMTcwOTY3
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTIyMjUsNzUgKzIyMjUsODMgQEAgLSAoQk9PTClfaW50
ZXJwcmV0S2V5RXZlbnQ6KFdlYklPU0V2ZW50IAogICAgIHJldHVybiBOTzsKIH0KIAorLSAodm9p
ZClleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2s6KE5TU3RyaW5nICopY29tbWFuZE5hbWUK
K3sKKyAgICBbc2VsZiBiZWdpblNlbGVjdGlvbkNoYW5nZV07CisgICAgX3BhZ2UtPmV4ZWN1dGVF
ZGl0Q29tbWFuZChjb21tYW5kTmFtZSwgW3NlbGZdKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDYWxs
YmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgICAgIFtzZWxmIGVuZFNlbGVjdGlvbkNoYW5n
ZV07CisgICAgfSk7Cit9CisKIC0gKFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopX21vdmVV
cDooQk9PTClleHRlbmRpbmcgd2l0aEhpc3Rvcnk6KFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5
ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFs
KCJtb3ZlVXAiKSk7CisgICAgW3NlbGYgZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrOkAi
bW92ZVVwIl07CiAgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhp
c3RvcnkgKilfbW92ZURvd246KEJPT0wpZXh0ZW5kaW5nIHdpdGhIaXN0b3J5OihVSVRleHRJbnB1
dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21t
YW5kKEFTQ0lJTGl0ZXJhbCgibW92ZURvd24iKSk7CisgICAgW3NlbGYgZXhlY3V0ZUVkaXRDb21t
YW5kV2l0aENhbGxiYWNrOkAibW92ZURvd24iXTsKICAgICByZXR1cm4gbmlsOwogfQogCiAtIChV
SVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKV9tb3ZlTGVmdDooQk9PTCkgZXh0ZW5kaW5nIHdp
dGhIaXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAgICBf
cGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZUxlZnQiKSk7CisgICAg
W3NlbGYgZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrOkAibW92ZUxlZnQiXTsKICAgICBy
ZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKV9tb3ZlUmln
aHQ6KEJPT0wpIGV4dGVuZGluZyB3aXRoSGlzdG9yeTooVUlUZXh0SW5wdXRBcnJvd0tleUhpc3Rv
cnkgKiloaXN0b3J5CiB7Ci0gICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVy
YWwoIm1vdmVSaWdodCIpKTsKKyAgICBbc2VsZiBleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJh
Y2s6QCJtb3ZlUmlnaHQiXTsKICAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFy
cm93S2V5SGlzdG9yeSAqKV9tb3ZlVG9TdGFydE9mV29yZDooQk9PTClleHRlbmRpbmcgd2l0aEhp
c3Rvcnk6KFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdl
LT5leGVjdXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlV29yZEJhY2t3YXJkIikpOwor
ICAgIFtzZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVXb3JkQmFja3dh
cmQiXTsKICAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9y
eSAqKV9tb3ZlVG9TdGFydE9mUGFyYWdyYXBoOihCT09MKSBleHRlbmRpbmcgd2l0aEhpc3Rvcnk6
KFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVj
dXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlVG9TdGFydE9mUGFyYWdyYXBoIikpOwor
ICAgIFtzZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVUb1N0YXJ0T2ZQ
YXJhZ3JhcGgiXTsKICAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFycm93S2V5
SGlzdG9yeSAqKV9tb3ZlVG9TdGFydE9mTGluZTooQk9PTCkgZXh0ZW5kaW5nIHdpdGhIaXN0b3J5
OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAgICBfcGFnZS0+ZXhl
Y3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVRvU3RhcnRPZkxpbmUiKSk7CisgICAg
W3NlbGYgZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrOkAibW92ZVRvU3RhcnRPZkxpbmUi
XTsKICAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAq
KV9tb3ZlVG9TdGFydE9mRG9jdW1lbnQ6KEJPT0wpIGV4dGVuZGluZyB3aXRoSGlzdG9yeTooVUlU
ZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKiloaXN0b3J5CiB7Ci0gICAgX3BhZ2UtPmV4ZWN1dGVF
ZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoIm1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiKSk7Cisg
ICAgW3NlbGYgZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrOkAibW92ZVRvQmVnaW5uaW5n
T2ZEb2N1bWVudCJdOwogICAgIHJldHVybiBuaWw7CiB9CiAKIC0gKFVJVGV4dElucHV0QXJyb3dL
ZXlIaXN0b3J5ICopX21vdmVUb0VuZE9mV29yZDooQk9PTClleHRlbmRpbmcgd2l0aEhpc3Rvcnk6
KFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVj
dXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlV29yZEZvcndhcmQiKSk7CisgICAgW3Nl
bGYgZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrOkAibW92ZVdvcmRGb3J3YXJkIl07CiAg
ICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKilfbW92
ZVRvRW5kT2ZQYXJhZ3JhcGg6KEJPT0wpIGV4dGVuZGluZyB3aXRoSGlzdG9yeTooVUlUZXh0SW5w
dXRBcnJvd0tleUhpc3RvcnkgKiloaXN0b3J5CiB7Ci0gICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29t
bWFuZChBU0NJSUxpdGVyYWwoIm1vdmVUb0VuZE9mUGFyYWdyYXBoIikpOworICAgIFtzZWxmIGV4
ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVUb0VuZE9mUGFyYWdyYXBoIl07CiAg
ICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKilfbW92
ZVRvRW5kT2ZMaW5lOihCT09MKSBleHRlbmRpbmcgd2l0aEhpc3Rvcnk6KFVJVGV4dElucHV0QXJy
b3dLZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQo
QVNDSUlMaXRlcmFsKCJtb3ZlVG9FbmRPZkxpbmUiKSk7CisgICAgW3NlbGYgZXhlY3V0ZUVkaXRD
b21tYW5kV2l0aENhbGxiYWNrOkAibW92ZVRvRW5kT2ZMaW5lIl07CiAgICAgcmV0dXJuIG5pbDsK
IH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKilfbW92ZVRvRW5kT2ZEb2N1bWVu
dDooQk9PTCkgZXh0ZW5kaW5nIHdpdGhIaXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9y
eSAqKWhpc3RvcnkKIHsKLSAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJh
bCgibW92ZVRvRW5kT2ZEb2N1bWVudCIpKTsKKyAgICBbc2VsZiBleGVjdXRlRWRpdENvbW1hbmRX
aXRoQ2FsbGJhY2s6QCJtb3ZlVG9FbmRPZkRvY3VtZW50Il07CiAgICAgcmV0dXJuIG5pbDsKIH0K
IApAQCAtMjUwNCwxMCArMjUxMiw2IEBAIC0gKHZvaWQpX3N0b3BBc3Npc3RpbmdOb2RlCiAgICAg
W193ZWJTZWxlY3Rpb25Bc3Npc3RhbnQgcmVzaWduZWRGaXJzdFJlc3BvbmRlcl07CiB9CiAKLS0g
KHZvaWQpX3NlbGVjdGlvbldpbGxDaGFuZ2UKLXsKLX0KLQogLSAodm9pZClfc2VsZWN0aW9uQ2hh
bmdlZAogewogICAgIF9zZWxlY3Rpb25OZWVkc1VwZGF0ZSA9IFlFUzsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCShyZXZpc2lvbiAx
NzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMzU5LDYgKzM1OSwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
YXBwbHlBdXRvY29ycmVjdGlvbihjCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpBcHBseUF1dG9jb3JyZWN0aW9uKGNvcnJlY3Rpb24sIG9yaWdpbmFsVGV4dCwgY2FsbGJh
Y2tJRCksIG1fcGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmV4ZWN1dGVFZGl0Q29t
bWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKGNvbnN0
IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQoreworICAg
IGlmICghaXNWYWxpZCgpKSB7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oU3RyaW5nKCksIENh
bGxiYWNrQmFzZTo6RXJyb3I6OlVua25vd24pOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IAorICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNh
bGxiYWNrRnVuY3Rpb24pLCBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tn
cm91bmRBY3Rpdml0eVRva2VuPihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgbV9wcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFeGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJh
Y2soY29tbWFuZE5hbWUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7Cit9CisKIGJvb2wgV2ViUGFn
ZVByb3h5OjphcHBseUF1dG9jb3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29u
c3QgU3RyaW5nJiBvcmlnaW5hbFRleHQpCiB7CiAgICAgYm9vbCBhdXRvY29ycmVjdGlvbkFwcGxp
ZWQgPSBmYWxzZTsKQEAgLTQ2NiwxMSArNDc3LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFwcGxp
Y2F0aW9uRGlkQmVjb21lQQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
QXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6bm90aWZ5U2VsZWN0aW9uV2lsbENoYW5nZSgpCi17Ci0gICAgbV9wYWdlQ2xpZW50
LnNlbGVjdGlvbldpbGxDaGFuZ2UoKTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6Om5vdGlmeVJl
dmVhbGVkU2VsZWN0aW9uKCkKIHsKICAgICBtX3BhZ2VDbGllbnQuc2VsZWN0aW9uRGlkQ2hhbmdl
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJ
KHJldmlzaW9uIDE3MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwNyw2ICs1MDcsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGRpc3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPFdlYlRv
dWNoRXZlbnQsIDE+JiBxdWV1ZSk7CiAgICAgdm9pZCBjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hh
bmdlKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxi
YWNrKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCiAgICAgdm9pZCBzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6Okhp
Z2hsaWdodCYpOwogICAgIHZvaWQgaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4JKHJldmlzaW9uIDE3MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIEFwcGxpY2F0aW9uV2ls
bEVudGVyRm9yZWdyb3VuZCgpCiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQogICAg
IENvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoU3RyaW5nIGNvbnRlbnRTaXplQ2F0ZWdvcnkp
CisgICAgRXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrKFN0cmluZyBuYW1lLCB1aW50NjRf
dCBjYWxsYmFja0lEKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0JKHJldmlzaW9uIDE3MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY2Niw2ICsxNjY2
LDEyIEBAIHZvaWQgV2ViUGFnZTo6YXBwbHlBdXRvY29ycmVjdGlvbihjb25zdCAKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxiYWNrKGNvcnJlY3Rpb25BcHBsaWVk
ID8gY29ycmVjdGlvbiA6IFN0cmluZygpLCBjYWxsYmFja0lEKSk7CiB9CiAKK3ZvaWQgV2ViUGFn
ZTo6ZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrKGNvbnN0IFN0cmluZyYgY29tbWFuZE5h
bWUsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1h
bmROYW1lKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxiYWNr
KGNvbW1hbmROYW1lLCBjYWxsYmFja0lEKSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6c3luY0FwcGx5
QXV0b2NvcnJlY3Rpb24oY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9y
aWdpbmFsVGV4dCwgYm9vbCYgY29ycmVjdGlvbkFwcGxpZWQpCiB7CiAgICAgUmVmUHRyPFJhbmdl
PiByYW5nZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234730</attachid>
            <date>2014-07-10 16:20:55 -0700</date>
            <delta_ts>2014-07-10 16:24:48 -0700</delta_ts>
            <desc>Patch3</desc>
            <filename>noselectionWillChange.txt</filename>
            <type>text/plain</type>
            <size>14739</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDk3OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTA3LTEwICBFbnJpY2Eg
Q2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbWVjaGFuaXNtIHRv
IG5vdGlmeSB0aGUgVUlQcm9jZXNzIHdoZW4gYW4gZWRpdGluZyBjb21tYW5kIGlzIGRvbmUgZXhl
Y3V0aW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM0ODA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U29tZSBlZGl0aW5nIGNvbW1hbmRzIGhhdmUgYW4gZWZmZWN0IG9uIHNvbWUgcGFydHMgb2YgdGhl
IHN5c3RlbSB0aGF0CisgICAgICAgIHJ1biBpbnNpZGUgdGhlIFVJUHJvY2Vzcy4gQSBnb29kIGV4
YW1wbGUgYXJlIHRoZSBjdXJzb3IgbW92ZW1lbnQgY29tbWFuZHMKKyAgICAgICAgdGhhdCByZXF1
aXJlIGFuIHVwZGF0ZSBvZiB0aGUgYXV0b2NvcnJlY3Rpb24vYXV0b3N1Z2dlc3Rpb24gbWFjaGlu
ZXJ5LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB3YXkgdG8gcmVsaWFibHkga25vdyB3aGVu
IHRoZSBjb21tYW5kIGhhcyBiZWVuIGV4ZWN1dGVkCisgICAgICAgIGluIHRoZSBXZWJQcm9jZXNz
LiBBIHByZXZpb3VzIGF0dGVtcHQgYXQgc29sdmluZyB0aGlzIHByb2JsZW0gd2FzIGFkZGVkIGlu
CisgICAgICAgIHIxNzA4NTggYW5kIHdhcyBwYXJ0aWFsbHkgcmV2ZXJ0ZWQgaW4gcjE3MDk0OC4K
KyAgICAgICAgVGhlIGNoYW5nZSBhbHNvIHJlbW92ZXMgdGhlIHNlbGVjdGlvbldpbGxDaGFuZ2Ug
bm90aWZpY2F0aW9uIGFkZGVkIGluIHIxNzA4NTguCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFn
ZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVkaXRvclN0YXRlQ2hhbmdlZCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2VsZWN0aW9uV2lsbENoYW5n
ZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2Fs
bGJhY2s6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVVcDp3aXRoSGlzdG9yeTpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfbW92ZURvd246d2l0aEhpc3Rvcnk6XSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVMZWZ0OndpdGhIaXN0b3J5Ol0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlUmlnaHQ6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX21vdmVUb1N0YXJ0T2ZXb3JkOndpdGhIaXN0b3J5Ol0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9TdGFydE9mUGFyYWdyYXBoOndpdGhIaXN0b3J5Ol0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9TdGFydE9mTGluZTp3aXRoSGlzdG9y
eTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfbW92ZVRvU3RhcnRPZkRvY3VtZW50Ondp
dGhIaXN0b3J5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9FbmRPZldvcmQ6
d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVUb0VuZE9mUGFy
YWdyYXBoOndpdGhIaXN0b3J5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9tb3ZlVG9F
bmRPZkxpbmU6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX21vdmVU
b0VuZE9mRG9jdW1lbnQ6d2l0aEhpc3Rvcnk6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X3NlbGVjdGlvbldpbGxDaGFuZ2VdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpleGVj
dXRlRWRpdENvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om5vdGlmeVNl
bGVjdGlvbldpbGxDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2sp
OgorCiAyMDE0LTA3LTEwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIHVzZSBvZiBjb250YWluZXIgcmVsYXRpdmUgcmVzdHJpY3Rpb25zIGluIHRoZSBu
ZXR3b3JrIHByb2Nlc3Mgc2FuZGJveApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCShyZXZpc2lvbiAxNzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksNyArMjU5LDYgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZv
cm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BBc3Npc3Rp
bmdOb2RlKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25XaWxsQ2hhbmdlKCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2UoKSA9IDA7CiAgICAgdmlydHVh
bCBib29sIGludGVycHJldEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBi
b29sIGlzQ2hhckV2ZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uSW5mb3JtYXRp
b25EaWRDaGFuZ2UoY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKSA9IDA7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNp
b24gMTcwOTY3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0MzYsOSArMzQzNiw2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpl
ZGl0b3JTdGF0ZUNoYW5nZWQoY28KICAgICBtX3RlbXBvcmFyaWx5Q2xvc2VkQ29tcG9zaXRpb24g
PSBlZGl0b3JTdGF0ZS5zaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSAmJiAo
bV90ZW1wb3JhcmlseUNsb3NlZENvbXBvc2l0aW9uIHx8IG1fZWRpdG9yU3RhdGUuaGFzQ29tcG9z
aXRpb24pICYmICFlZGl0b3JTdGF0ZS5oYXNDb21wb3NpdGlvbjsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oSU9TKQotICAgIG5vdGlmeVNlbGVjdGlvbldpbGxDaGFuZ2UoKTsKLSNlbmRpZgogICAg
IG1fZWRpdG9yU3RhdGUgPSBlZGl0b3JTdGF0ZTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMTcwOTY3
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNzcsNiArMzc3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21t
YW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpOwogICAgIHZvaWQgdmFsaWRhdGVDb21tYW5k
KGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoY29uc3QgU3Ry
aW5nJiwgYm9vbCwgaW50MzJfdCwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKICNpZiBQTEFURk9S
TShJT1MpCisgICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5k
TmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4pOwogICAgIGRv
dWJsZSBkaXNwbGF5ZWRDb250ZW50U2NhbGUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RWaXNpYmxl
Q29udGVudFJlY3RVcGRhdGUuc2NhbGUoKTsgfQogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgZXhwb3NlZENvbnRlbnRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlLmV4cG9zZWRSZWN0KCk7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZS51bm9ic2N1cmVkUmVjdCgpOyB9CkBAIC0xMjIyLDcgKzEyMjMsNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgZW5hYmxlSW5zcGVjdG9yTm9kZVNlYXJjaCgpOwogICAgIHZv
aWQgZGlzYWJsZUluc3BlY3Rvck5vZGVTZWFyY2goKTsKICNlbmRpZgotICAgIHZvaWQgbm90aWZ5
U2VsZWN0aW9uV2lsbENoYW5nZSgpOwogICAgIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb24o
KTsKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgJKHJldmlzaW9uIDE3MDk2NykKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiwgYm9vbCB1
c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wQXNzaXN0aW5nTm9kZSgpIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25XaWxsQ2hhbmdlKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGlvbkRpZENoYW5nZSgpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgYm9vbCBpbnRlcnByZXRLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
JiwgYm9vbCBpc0NoYXJFdmVudCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBvc2l0aW9u
SW5mb3JtYXRpb25EaWRDaGFuZ2UoY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24mKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQkocmV2aXNpb24gMTcwOTY3KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzUwLDExICszNTAsNiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UoY29uc3Qg
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2VsZWN0
aW9uV2lsbENoYW5nZSgpCi17Ci0gICAgW21fY29udGVudFZpZXcgX3NlbGVjdGlvbldpbGxDaGFu
Z2VdOwotfQotCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQogewog
ICAgIFttX2NvbnRlbnRWaWV3IF9zZWxlY3Rpb25DaGFuZ2VkXTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAkocmV2aXNpb24gMTcwOTY3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDcgKzE2NCw2IEBA
IHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAKIC0gKHZvaWQpX3N0YXJ0QXNzaXN0aW5n
Tm9kZTooY29uc3QgV2ViS2l0OjpBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24g
dXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgYmx1clByZXZpb3VzTm9k
ZTooQk9PTClibHVyUHJldmlvdXNOb2RlIHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNv
ZGluZz4gKil1c2VyT2JqZWN0OwogLSAodm9pZClfc3RvcEFzc2lzdGluZ05vZGU7Ci0tICh2b2lk
KV9zZWxlY3Rpb25XaWxsQ2hhbmdlOwogLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZDsKIC0gKHZv
aWQpX3VwZGF0ZUNoYW5nZWRTZWxlY3Rpb247CiAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDoo
V2ViSU9TRXZlbnQgKil0aGVFdmVudCBpc0NoYXJFdmVudDooQk9PTClpc0NoYXJFdmVudDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAxNzA5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjIyNSw3NSArMjIyNSw4MyBAQCAtIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooV2ViSU9T
RXZlbnQgCiAgICAgcmV0dXJuIE5POwogfQogCistICh2b2lkKWV4ZWN1dGVFZGl0Q29tbWFuZFdp
dGhDYWxsYmFjazooTlNTdHJpbmcgKiljb21tYW5kTmFtZQoreworICAgIFtzZWxmIGJlZ2luU2Vs
ZWN0aW9uQ2hhbmdlXTsKKyAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1hbmROYW1l
LCBbc2VsZl0oQ2FsbGJhY2tCYXNlOjpFcnJvcikgeworICAgICAgICBbc2VsZiBlbmRTZWxlY3Rp
b25DaGFuZ2VdOworICAgIH0pOworfQorCiAtIChVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAq
KV9tb3ZlVXA6KEJPT0wpZXh0ZW5kaW5nIHdpdGhIaXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5
SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJ
TGl0ZXJhbCgibW92ZVVwIikpOworICAgIFtzZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxs
YmFjazpAIm1vdmVVcCJdOwogICAgIHJldHVybiBuaWw7CiB9CiAKIC0gKFVJVGV4dElucHV0QXJy
b3dLZXlIaXN0b3J5ICopX21vdmVEb3duOihCT09MKWV4dGVuZGluZyB3aXRoSGlzdG9yeTooVUlU
ZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKiloaXN0b3J5CiB7Ci0gICAgX3BhZ2UtPmV4ZWN1dGVF
ZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoIm1vdmVEb3duIikpOworICAgIFtzZWxmIGV4ZWN1dGVF
ZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVEb3duIl07CiAgICAgcmV0dXJuIG5pbDsKIH0K
IAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKilfbW92ZUxlZnQ6KEJPT0wpIGV4dGVu
ZGluZyB3aXRoSGlzdG9yeTooVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKiloaXN0b3J5CiB7
Ci0gICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoIm1vdmVMZWZ0Iikp
OworICAgIFtzZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVMZWZ0Il07
CiAgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKilf
bW92ZVJpZ2h0OihCT09MKSBleHRlbmRpbmcgd2l0aEhpc3Rvcnk6KFVJVGV4dElucHV0QXJyb3dL
ZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoQVND
SUlMaXRlcmFsKCJtb3ZlUmlnaHQiKSk7CisgICAgW3NlbGYgZXhlY3V0ZUVkaXRDb21tYW5kV2l0
aENhbGxiYWNrOkAibW92ZVJpZ2h0Il07CiAgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0
SW5wdXRBcnJvd0tleUhpc3RvcnkgKilfbW92ZVRvU3RhcnRPZldvcmQ6KEJPT0wpZXh0ZW5kaW5n
IHdpdGhIaXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAg
ICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVdvcmRCYWNrd2Fy
ZCIpKTsKKyAgICBbc2VsZiBleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2s6QCJtb3ZlV29y
ZEJhY2t3YXJkIl07CiAgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tl
eUhpc3RvcnkgKilfbW92ZVRvU3RhcnRPZlBhcmFncmFwaDooQk9PTCkgZXh0ZW5kaW5nIHdpdGhI
aXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAgICBfcGFn
ZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVRvU3RhcnRPZlBhcmFncmFw
aCIpKTsKKyAgICBbc2VsZiBleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2s6QCJtb3ZlVG9T
dGFydE9mUGFyYWdyYXBoIl07CiAgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5wdXRB
cnJvd0tleUhpc3RvcnkgKilfbW92ZVRvU3RhcnRPZkxpbmU6KEJPT0wpIGV4dGVuZGluZyB3aXRo
SGlzdG9yeTooVUlUZXh0SW5wdXRBcnJvd0tleUhpc3RvcnkgKiloaXN0b3J5CiB7Ci0gICAgX3Bh
Z2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoIm1vdmVUb1N0YXJ0T2ZMaW5lIikp
OworICAgIFtzZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVUb1N0YXJ0
T2ZMaW5lIl07CiAgICAgcmV0dXJuIG5pbDsKIH0KIAogLSAoVUlUZXh0SW5wdXRBcnJvd0tleUhp
c3RvcnkgKilfbW92ZVRvU3RhcnRPZkRvY3VtZW50OihCT09MKSBleHRlbmRpbmcgd2l0aEhpc3Rv
cnk6KFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5l
eGVjdXRlRWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50
IikpOworICAgIFtzZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVUb0Jl
Z2lubmluZ09mRG9jdW1lbnQiXTsKICAgICByZXR1cm4gbmlsOwogfQogCiAtIChVSVRleHRJbnB1
dEFycm93S2V5SGlzdG9yeSAqKV9tb3ZlVG9FbmRPZldvcmQ6KEJPT0wpZXh0ZW5kaW5nIHdpdGhI
aXN0b3J5OihVSVRleHRJbnB1dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAgICBfcGFn
ZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVdvcmRGb3J3YXJkIikpOwor
ICAgIFtzZWxmIGV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVXb3JkRm9yd2Fy
ZCJdOwogICAgIHJldHVybiBuaWw7CiB9CiAKIC0gKFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5
ICopX21vdmVUb0VuZE9mUGFyYWdyYXBoOihCT09MKSBleHRlbmRpbmcgd2l0aEhpc3Rvcnk6KFVJ
VGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopaGlzdG9yeQogewotICAgIF9wYWdlLT5leGVjdXRl
RWRpdENvbW1hbmQoQVNDSUlMaXRlcmFsKCJtb3ZlVG9FbmRPZlBhcmFncmFwaCIpKTsKKyAgICBb
c2VsZiBleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2s6QCJtb3ZlVG9FbmRPZlBhcmFncmFw
aCJdOwogICAgIHJldHVybiBuaWw7CiB9CiAKIC0gKFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5
ICopX21vdmVUb0VuZE9mTGluZTooQk9PTCkgZXh0ZW5kaW5nIHdpdGhIaXN0b3J5OihVSVRleHRJ
bnB1dEFycm93S2V5SGlzdG9yeSAqKWhpc3RvcnkKIHsKLSAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRD
b21tYW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVRvRW5kT2ZMaW5lIikpOworICAgIFtzZWxmIGV4ZWN1
dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjazpAIm1vdmVUb0VuZE9mTGluZSJdOwogICAgIHJldHVy
biBuaWw7CiB9CiAKIC0gKFVJVGV4dElucHV0QXJyb3dLZXlIaXN0b3J5ICopX21vdmVUb0VuZE9m
RG9jdW1lbnQ6KEJPT0wpIGV4dGVuZGluZyB3aXRoSGlzdG9yeTooVUlUZXh0SW5wdXRBcnJvd0tl
eUhpc3RvcnkgKiloaXN0b3J5CiB7Ci0gICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChBU0NJ
SUxpdGVyYWwoIm1vdmVUb0VuZE9mRG9jdW1lbnQiKSk7CisgICAgW3NlbGYgZXhlY3V0ZUVkaXRD
b21tYW5kV2l0aENhbGxiYWNrOkAibW92ZVRvRW5kT2ZEb2N1bWVudCJdOwogICAgIHJldHVybiBu
aWw7CiB9CiAKQEAgLTI1MDQsMTAgKzI1MTIsNiBAQCAtICh2b2lkKV9zdG9wQXNzaXN0aW5nTm9k
ZQogICAgIFtfd2ViU2VsZWN0aW9uQXNzaXN0YW50IHJlc2lnbmVkRmlyc3RSZXNwb25kZXJdOwog
fQogCi0tICh2b2lkKV9zZWxlY3Rpb25XaWxsQ2hhbmdlCi17Ci19Ci0KIC0gKHZvaWQpX3NlbGVj
dGlvbkNoYW5nZWQKIHsKICAgICBfc2VsZWN0aW9uTmVlZHNVcGRhdGUgPSBZRVM7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQkocmV2
aXNpb24gMTcwOTY3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1OSw2ICszNTksMTcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmFwcGx5QXV0b2NvcnJlY3Rpb24oYwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6QXBwbHlBdXRvY29ycmVjdGlvbihjb3JyZWN0aW9uLCBvcmlnaW5hbFRleHQs
IGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRl
RWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lk
IChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBpZiAoIWlz
VmFsaWQoKSkgeworICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6
OlVua25vd24pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGOjptb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBz
dGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2Vu
PihtX3Byb2Nlc3MtPnRocm90dGxlcigpKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpFeGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2soY29tbWFuZE5hbWUsIGNh
bGxiYWNrSUQpLCBtX3BhZ2VJRCk7Cit9CisKIGJvb2wgV2ViUGFnZVByb3h5OjphcHBseUF1dG9j
b3JyZWN0aW9uKGNvbnN0IFN0cmluZyYgY29ycmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5h
bFRleHQpCiB7CiAgICAgYm9vbCBhdXRvY29ycmVjdGlvbkFwcGxpZWQgPSBmYWxzZTsKQEAgLTQ2
NiwxMSArNDc3LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFwcGxpY2F0aW9uRGlkQmVjb21lQQog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6QXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmUoKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bm90aWZ5U2Vs
ZWN0aW9uV2lsbENoYW5nZSgpCi17Ci0gICAgbV9wYWdlQ2xpZW50LnNlbGVjdGlvbldpbGxDaGFu
Z2UoKTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6Om5vdGlmeVJldmVhbGVkU2VsZWN0aW9uKCkK
IHsKICAgICBtX3BhZ2VDbGllbnQuc2VsZWN0aW9uRGlkQ2hhbmdlKCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDE3MDk2NykK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUwNyw2ICs1MDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc3BhdGNoQXN5
bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPFdlYlRvdWNoRXZlbnQsIDE+JiBxdWV1
ZSk7CiAgICAgdm9pZCBjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKGNvbnN0IFN0cmluZyYp
OworICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxiYWNrKGNvbnN0IFN0cmluZyYs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgdm9pZCBz
aG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpOwogICAgIHZv
aWQgaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE3
MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIEFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgp
CiAgICAgQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQogICAgIENvbnRlbnRTaXplQ2F0ZWdv
cnlEaWRDaGFuZ2UoU3RyaW5nIGNvbnRlbnRTaXplQ2F0ZWdvcnkpCisgICAgRXhlY3V0ZUVkaXRD
b21tYW5kV2l0aENhbGxiYWNrKFN0cmluZyBuYW1lLCB1aW50NjRfdCBjYWxsYmFja0lEKQogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0JKHJldmlzaW9u
IDE3MDk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY2Niw2ICsxNjY2LDEyIEBAIHZvaWQgV2ViUGFn
ZTo6YXBwbHlBdXRvY29ycmVjdGlvbihjb25zdCAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlN0cmluZ0NhbGxiYWNrKGNvcnJlY3Rpb25BcHBsaWVkID8gY29ycmVjdGlvbiA6IFN0
cmluZygpLCBjYWxsYmFja0lEKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6ZXhlY3V0ZUVkaXRDb21t
YW5kV2l0aENhbGxiYWNrKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCit7CisgICAgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1hbmROYW1lKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZvaWRDYWxsYmFjayhjYWxsYmFja0lEKSk7Cit9CisK
IHZvaWQgV2ViUGFnZTo6c3luY0FwcGx5QXV0b2NvcnJlY3Rpb24oY29uc3QgU3RyaW5nJiBjb3Jy
ZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVGV4dCwgYm9vbCYgY29ycmVjdGlvbkFwcGxp
ZWQpCiB7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZTsK
</data>
<flag name="review"
          id="259272"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>