<?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>196740</bug_id>
          
          <creation_ts>2019-04-09 12:08:33 -0700</creation_ts>
          <short_desc>[iOS] Input field on ddg.gg is auto focused when url is entered with the software keyboard</short_desc>
          <delta_ts>2019-04-23 13:27:30 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>jonlee</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1525706</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-04-09 12:08:33 -0700</bug_when>
    <thetext>When the url &apos;ddg.gg&apos; is entered with the software keyboard, the input field is auto selected, and the software keyboard reappears. This does not happen when picking the url from favorites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525708</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-09 12:11:51 -0700</bug_when>
    <thetext>I&apos;ve seen this now and again as well. Just a wild stab...

• Safari preemptively begins loading URL while it is being typed.
• Script on the page focuses the field.
• User hits enter, and Safari makes the web view first responder.

The keyboard then appears, since we&apos;re becoming FR with a focused element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525716</commentid>
    <comment_count>2</comment_count>
      <attachid>367062</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-04-09 12:32:28 -0700</bug_when>
    <thetext>Created attachment 367062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525723</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-09 12:52:50 -0700</bug_when>
    <thetext>IIRC, this activity state change logic was added in &lt;https://trac.webkit.org/changeset/226480/webkit&gt; to (IIRC) support password AutoFill for apps on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525736</commentid>
    <comment_count>4</comment_count>
      <attachid>367062</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-04-09 13:09:01 -0700</bug_when>
    <thetext>Comment on attachment 367062
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4965
&gt; +                if (changingActivityState &amp;&amp; [UIKeyboard isInHardwareKeyboardMode])
&gt; +                    return YES;
&gt; +                

It seems this is equivalent to just moving the `changingActivityState` check above to the #if PLATFORM(WATCHOS) section (since we return YES anyways if [UIKeyboard isInHardwareKeyboardMode] is YES)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525740</commentid>
    <comment_count>5</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-04-09 13:16:49 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #3)
&gt; IIRC, this activity state change logic was added in
&gt; &lt;https://trac.webkit.org/changeset/226480/webkit&gt; to (IIRC) support password
&gt; AutoFill for apps on iOS.

Ah, I see. This patch will possibly break having focused restored when re-launching WKWebView. What activity state changes are relevant in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526022</commentid>
    <comment_count>6</comment_count>
      <attachid>367142</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-04-10 11:10:51 -0700</bug_when>
    <thetext>Created attachment 367142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526023</commentid>
    <comment_count>7</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-04-10 11:15:23 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #4)
&gt; Comment on attachment 367062 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=367062&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4965
&gt; &gt; +                if (changingActivityState &amp;&amp; [UIKeyboard isInHardwareKeyboardMode])
&gt; &gt; +                    return YES;
&gt; &gt; +                
&gt; 
&gt; It seems this is equivalent to just moving the `changingActivityState` check
&gt; above to the #if PLATFORM(WATCHOS) section (since we return YES anyways if
&gt; [UIKeyboard isInHardwareKeyboardMode] is YES)

I updated the patch to send the changing activity flag bitfield to the UI process, and then use the bitfield to determine if the software keyboard should be shown. I believe this will avoid breaking the fix in https://trac.webkit.org/changeset/226480/webkit.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529450</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2019-04-22 16:23:31 -0700</bug_when>
    <thetext>rdar://problem/48970509</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529462</commentid>
    <comment_count>9</comment_count>
      <attachid>367142</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-04-22 16:43:33 -0700</bug_when>
    <thetext>Comment on attachment 367142
Patch

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

So, I added chagingActivityState originally to make it so that the software keyboard would not be dismissed if you backgrounded Safari, and then brought it forward again. That is the activityState that was changing. I have noted that this has problems when you background a page that has an auto-focused element that has not brought up the keyboard because there has been no user interaction. If you background that page, and bring it forward, the keyboard shows up. Sending the whole bitfield across seems like a good way to make sure that we&apos;re only showing the keyboard in the right cases, but at the risk of bikesheding, if you&apos;re going to change the type of this flag, please make the name more appropriate as well, Just &apos;activityState&apos; should be good.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:348
&gt;      RefPtr&lt;API::Object&gt; userData;

Please change to activityState, since this is no longer a bool.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4968
&gt; +                if (changingActivityState != WebCore::ActivityState::IsFocused &amp;&amp; changingActivityState)

I think this would read better if the order was switched.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1760
&gt;  

Init this with something appropriate if possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529467</commentid>
    <comment_count>10</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-04-22 16:50:52 -0700</bug_when>
    <thetext>(In reply to Megan Gardner from comment #9)
&gt; Comment on attachment 367142 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=367142&amp;action=review
&gt; 
&gt; So, I added chagingActivityState originally to make it so that the software
&gt; keyboard would not be dismissed if you backgrounded Safari, and then brought
&gt; it forward again. That is the activityState that was changing. I have noted
&gt; that this has problems when you background a page that has an auto-focused
&gt; element that has not brought up the keyboard because there has been no user
&gt; interaction. If you background that page, and bring it forward, the keyboard
&gt; shows up. Sending the whole bitfield across seems like a good way to make
&gt; sure that we&apos;re only showing the keyboard in the right cases, but at the
&gt; risk of bikesheding, if you&apos;re going to change the type of this flag, please
&gt; make the name more appropriate as well, Just &apos;activityState&apos; should be good.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:348
&gt; &gt;      RefPtr&lt;API::Object&gt; userData;
&gt; 
&gt; Please change to activityState, since this is no longer a bool.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4968
&gt; &gt; +                if (changingActivityState != WebCore::ActivityState::IsFocused &amp;&amp; changingActivityState)
&gt; 
&gt; I think this would read better if the order was switched.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1760
&gt; &gt;  
&gt; 
&gt; Init this with something appropriate if possible.

Thanks for reviewing! I will update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529668</commentid>
    <comment_count>11</comment_count>
      <attachid>368046</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-04-23 11:29:44 -0700</bug_when>
    <thetext>Created attachment 368046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529717</commentid>
    <comment_count>12</comment_count>
      <attachid>368046</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-23 13:27:30 -0700</bug_when>
    <thetext>Comment on attachment 368046
Patch

Clearing flags on attachment: 368046

Committed r244559: &lt;https://trac.webkit.org/changeset/244559&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367062</attachid>
            <date>2019-04-09 12:32:28 -0700</date>
            <delta_ts>2019-04-10 11:10:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196740-20190409123227.patch</filename>
            <type>text/plain</type>
            <size>2297</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQwODkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA0LTA5ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBJbnB1dCBmaWVsZCBv
biBkZGcuZ2cgaXMgYXV0byBmb2N1c2VkIHdoZW4gdXJsIGlzIGVudGVyZWQgd2l0aCB0aGUgc29m
dHdhcmUga2V5Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5Njc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdoZW4gdGhlIHVybCAnZGRnLmdnJyBpcyBlbnRlcmVkIHdpdGggdGhlIHNvZnR3YXJl
IGtleWJvYXJkLCB0aGUgaW5wdXQgZmllbGQgaXMgYXV0byBzZWxlY3RlZCwKKyAgICAgICAgYW5k
IHRoZSBzb2Z0d2FyZSBrZXlib2FyZCByZWFwcGVhcnMuIFRoaXMgZG9lcyBub3QgaGFwcGVuIHdo
ZW4gcGlja2luZyB0aGUgdXJsIGZyb20gZmF2b3JpdGVzLgorICAgICAgICBBZnRlciB1c2luZyB0
aGUgc29mdHdhcmUga2V5Ym9hcmQgdG8gZW50ZXIgdGhlIHVybCwgdGhlIGFjdGl2aXR5IHN0YXRl
IGlzIGJlaW5nIGNoYW5nZWQgdG8KKyAgICAgICAgZm9jdXNlZC4gVGhlIG1ldGhvZCAnX2VsZW1l
bnREaWRGb2N1cycgY2hlY2tzIHdoZXRoZXIgdGhlIGFjdGl2aXR5IHN0YXRlIGNoYW5nZWQsIGFu
ZCBhbGxvd3MKKyAgICAgICAgdGhlIHNvZnR3YXJlIGtleWJvYXJkIHRvIGJlIHNob3duIGluIHRo
aXMgY2FzZS4gVG8gYXZvaWQgc2hvd2luZyB0aGUgc29mdHdhcmUga2V5Ym9hcmQsIHdlIGNhbgor
ICAgICAgICBhZGRpdGlvbmFsbHkgcmVxdWlyZSB0aGF0IGEgaGFyZHdhcmUga2V5Ym9hcmQgaXMg
YXR0YWNoZWQuCisgIAorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbGVtZW50RGlkRm9jdXM6dXNl
cklzSW50ZXJhY3Rpbmc6Ymx1clByZXZpb3VzTm9kZTpjaGFuZ2luZ0FjdGl2aXR5U3RhdGU6dXNl
ck9iamVjdDpdKToKKwogMjAxOS0wNC0wOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIENsaWNraW5nICJHbyBCYWNrIiBmcm9tIGEgc2FmZSBi
cm93c2luZyB3YXJuaW5nIGZyb20gYW4gaWZyYW1lIHNob3VsZCBuYXZpZ2F0ZSB0aGUgV0tXZWJW
aWV3IGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhZ2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNp
b24gMjQzOTYzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNDk1MywxMyArNDk1MywxNiBAQCAtICh2
b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6CiAjZW5kaWYKIAogICAgICAgICAg
ICAgaWYgKHNlbGYuaXNGaXJzdFJlc3BvbmRlciB8fCBfYmVjb21pbmdGaXJzdFJlc3BvbmRlcikg
eworI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAgICAgICAgICAgICAgaWYgKGNoYW5naW5nQWN0
aXZpdHlTdGF0ZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFlFUzsKLQotI2lmIFBMQVRG
T1JNKFdBVENIT1MpCisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKF9pc0No
YW5naW5nRm9jdXMgJiYgIVtfZm9jdXNlZEZvcm1Db250cm9sVmlldyBpc0hpZGRlbl0pCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBZRVM7CiAjZWxzZQorICAgICAgICAgICAgICAgIGlmIChj
aGFuZ2luZ0FjdGl2aXR5U3RhdGUgJiYgW1VJS2V5Ym9hcmQgaXNJbkhhcmR3YXJlS2V5Ym9hcmRN
b2RlXSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFlFUzsKKyAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICBpZiAoX2lzQ2hhbmdpbmdGb2N1cykKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFlFUzsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367142</attachid>
            <date>2019-04-10 11:10:51 -0700</date>
            <delta_ts>2019-04-22 16:43:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196740-20190410111051.patch</filename>
            <type>text/plain</type>
            <size>13086</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQxMzUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE5LTA0LTA5ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBJbnB1dCBmaWVsZCBv
biBkZGcuZ2cgaXMgYXV0byBmb2N1c2VkIHdoZW4gdXJsIGlzIGVudGVyZWQgd2l0aCB0aGUgc29m
dHdhcmUga2V5Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5Njc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdoZW4gYW4gdXJsIGZvciBhIHBhZ2Ugd2l0aCBhbiBhdXRvZm9jdXNlZCBpbnB1dCBm
aWVsZCAgaXMgZW50ZXJlZCB3aXRoIHRoZSBzb2Z0d2FyZSBrZXlib2FyZCwKKyAgICAgICAgdGhl
IGlucHV0IGZpZWxkIGlzIGF1dG8gc2VsZWN0ZWQsIGFuZCB0aGUgc29mdHdhcmUga2V5Ym9hcmQg
cmVhcHBlYXJzLiBUaGlzIGRvZXMgbm90IGhhcHBlbgorICAgICAgICB3aGVuIHBpY2tpbmcgdGhl
IHVybCBmcm9tIGZhdm9yaXRlcy4gQWZ0ZXIgdXNpbmcgdGhlIHNvZnR3YXJlIGtleWJvYXJkIHRv
IGVudGVyIHRoZSB1cmwsIHRoZQorICAgICAgICBhY3Rpdml0eSBzdGF0ZSBpcyBiZWluZyBjaGFu
Z2VkIHRvIGZvY3VzZWQuIFRoZSBtZXRob2QgJ19lbGVtZW50RGlkRm9jdXMnIGNoZWNrcyB3aGV0
aGVyIHRoZQorICAgICAgICBhY3Rpdml0eSBzdGF0ZSBjaGFuZ2VkLCBhbmQgYWxsb3dzIHRoZSBz
b2Z0d2FyZSBrZXlib2FyZCB0byBiZSBzaG93biBpbiB0aGlzIGNhc2UuIFRvIGF2b2lkCisgICAg
ICAgIHNob3dpbmcgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGluIHRoaXMgY2FzZSwgc2VuZCB0aGUg
Y2hhbmdpbmcgYWN0aXZpdHkgc3RhdGUgYml0ZmllbGQgdG8gdGhlCisgICAgICAgIFVJIHByb2Nl
c3MsIGFuZCBjaGVjayBpZiB0aGUgZm9jdXMgZmxhZyBpcyB0aGUgb25seSBmbGFnIHNldC4KKyAg
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1lbnREaWRGb2N1czp1c2VySXNJbnRlcmFjdGlu
ZzpibHVyUHJldmlvdXNOb2RlOmNoYW5naW5nQWN0aXZpdHlTdGF0ZTp1c2VyT2JqZWN0Ol0pOgor
CiAyMDE5LTA0LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgZHJvcCBTdXNwZW5kZWRQYWdlUHJveHkgZGF0YSBtZW1iZXIgdGhhdCBpcyB1
bnVzZWQgYWZ0ZXIgcjI0NDA3NS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgJKHJldmlzaW9uIDI0NDEzNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIldlYkNvbG9y
UGlja2VyLmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmgiCiAj
aW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5
U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0Rp
cmVjdGlvbi5oPgpAQCAtMzc3LDcgKzM3OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVzdG9yZVBhZ2VTdGF0ZShPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHNPblNhdmUsIGRvdWJsZSBzY2FsZSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UG9pbnQ+IGNlbnRlciwgZG91YmxlIHNjYWxlKSA9IDA7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b24mLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIGJvb2wg
Y2hhbmdpbmdBY3Rpdml0eVN0YXRlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b24mLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIE9wdGlv
blNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUs
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlk
Qmx1cigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1
dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXMoKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjQ0MTM1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0NCw3ICszNDQs
NyBAQCBwdWJsaWM6CiAgICAgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiBpbmZvcm1hdGlvbjsK
ICAgICBib29sIHVzZXJJc0ludGVyYWN0aW5nOwogICAgIGJvb2wgYmx1clByZXZpb3VzTm9kZTsK
LSAgICBib29sIGNoYW5naW5nQWN0aXZpdHlTdGF0ZTsKKyAgICBPcHRpb25TZXQ8V2ViQ29yZTo6
QWN0aXZpdHlTdGF0ZTo6RmxhZz4gY2hhbmdpbmdBY3Rpdml0eVN0YXRlOwogICAgIFJlZlB0cjxB
UEk6Ok9iamVjdD4gdXNlckRhdGE7CiB9OwogCkBAIC0xODk2LDcgKzE4OTYsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
RmxvYXRRdWFkPiYgZ2VvbWV0cmllcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJh
ZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJv
dHRvbVJpZ2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZyk7CiAKLSAg
ICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiwg
Ym9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBib29sIGNoYW5n
aW5nQWN0aXZpdHlTdGF0ZSwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGVsZW1lbnREaWRG
b2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFj
dGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlT
dGF0ZTo6RmxhZz4gY2hhbmdpbmdBY3Rpdml0eVN0YXRlLCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgZWxlbWVudERpZEJsdXIoKTsKICAgICB2b2lkIGZvY3VzZWRFbGVtZW50RGlkQ2hhbmdl
SW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRWRpdG9y
U3RhdGVVcGRhdGVBZnRlckZvY3VzKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNDQxMzUpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTQwMiw3ICs0MDIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJl
c3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gdW5v
YnNjdXJlZENlbnRlciwgZG91YmxlIHNjYWxlKQogICAgIERpZEdldFRhcEhpZ2hsaWdodEdlb21l
dHJpZXModWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpDb2xvciBjb2xvciwgVmVjdG9yPFdl
YkNvcmU6OkZsb2F0UXVhZD4gZ2VvbWV0cmllcywgV2ViQ29yZTo6SW50U2l6ZSB0b3BMZWZ0UmFk
aXVzLCBXZWJDb3JlOjpJbnRTaXplIHRvcFJpZ2h0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIGJv
dHRvbUxlZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgYm90dG9tUmlnaHRSYWRpdXMsIGJvb2wg
bm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nKQogCi0gICAgRWxlbWVudERpZEZvY3VzKHN0cnVj
dCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gaW5mb3JtYXRpb24sIGJvb2wgdXNl
cklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgYm9vbCBjaGFuZ2luZ0FjdGl2
aXR5U3RhdGUsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRWxlbWVudERpZEZvY3Vz
KHN0cnVjdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gaW5mb3JtYXRpb24sIGJv
b2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgT3B0aW9uU2V0PFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGNoYW5naW5nQWN0aXZpdHlTdGF0ZSwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBFbGVtZW50RGlkQmx1cigpCiAgICAgRm9jdXNlZEVs
ZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoZW51bTp1aW50OF90IFdlYkNvcmU6OklucHV0TW9kZSBt
b2RlKQogICAgIFNjcm9sbGluZ05vZGVTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKQpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgJKHJldmlz
aW9uIDI0NDEzNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDksNyArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlc3RvcmVQYWdlU3RhdGUoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYsIGRv
dWJsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKE9wdGlv
bmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+LCBkb3VibGUpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBl
bGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYsIGJvb2wgdXNl
cklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgYm9vbCBjaGFuZ2luZ0FjdGl2
aXR5U3RhdGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbGVt
ZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklz
SW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWc+IGNoYW5naW5nQWN0aXZpdHlTdGF0ZSwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhKSBvdmVycmlkZTsKICAgICB2b2lkIGVsZW1lbnREaWRCbHVyKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1v
ZGUpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJG
b2N1cygpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQkocmV2aXNpb24gMjQ0MTM1KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
MzUsNyArNTM1LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVzdG9yZVBhZ2VDZW50ZXJBbgog
ICAgIFttX3dlYlZpZXcgX3Jlc3RvcmVQYWdlU3RhdGVUb1Vub2JzY3VyZWRDZW50ZXI6Y2VudGVy
IHNjYWxlOnNjYWxlXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEZvY3Vz
KGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIG5vZGVJbmZvcm1hdGlvbiwgYm9vbCB1
c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBib29sIGNoYW5naW5nQWN0
aXZpdHlTdGF0ZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6
ZWxlbWVudERpZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIG5vZGVJbmZv
cm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBP
cHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gY2hhbmdpbmdBY3Rpdml0eVN0
YXRlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyghdXNlckRh
dGEgfHwgdXNlckRhdGEtPnR5cGUoKSA9PSBBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YSk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgJKHJldmlzaW9uIDI0NDEzNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDcs
NiArNDcsNyBAQAogI2ltcG9ydCAiV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oIgog
I2ltcG9ydCAiX1dLRm9ybUlucHV0U2Vzc2lvbi5oIgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Lmg+
CisjaW1wb3J0IDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29s
b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQ
dHIuaD4KQEAgLTQxMSw3ICs0MTIsNyBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OKERFCiAtIChCT09MKV9tYXlEaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdTaW5n
bGVUYXA7CiAtICh2b2lkKV9kaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vz
c2FyeToodWludDY0X3QpcmVxdWVzdElEOwogLSAodm9pZClfaGFuZGxlU21hcnRNYWduaWZpY2F0
aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxUYXA6KHVpbnQ2NF90KXJlcXVlc3RJRCByZW5kZXJS
ZWN0Oihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKXJlbmRlclJlY3QgZml0RW50aXJlUmVjdDoo
Qk9PTClmaXRFbnRpcmVSZWN0IHZpZXdwb3J0TWluaW11bVNjYWxlOihkb3VibGUpdmlld3BvcnRN
aW5pbXVtU2NhbGUgdmlld3BvcnRNYXhpbXVtU2NhbGU6KGRvdWJsZSl2aWV3cG9ydE1heGltdW1T
Y2FsZTsKLS0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2Vy
SXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOihCT09MKWJsdXJQcmV2aW91c05vZGUgY2hh
bmdpbmdBY3Rpdml0eVN0YXRlOihCT09MKWNoYW5naW5nQWN0aXZpdHlTdGF0ZSB1c2VyT2JqZWN0
OihOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNlck9iamVjdDsKKy0gKHZvaWQpX2VsZW1l
bnREaWRGb2N1czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJilpbmZv
cm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBibHVyUHJl
dmlvdXNOb2RlOihCT09MKWJsdXJQcmV2aW91c05vZGUgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOihP
cHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4pY2hhbmdpbmdBY3Rpdml0eVN0
YXRlIHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0Owog
LSAodm9pZClfZWxlbWVudERpZEJsdXI7CiAtICh2b2lkKV9kaWRVcGRhdGVJbnB1dE1vZGU6KFdl
YkNvcmU6OklucHV0TW9kZSltb2RlOwogLSAodm9pZClfZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBk
YXRlQWZ0ZXJGb2N1czsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMjQ0MTM1KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQko
d29ya2luZyBjb3B5KQpAQCAtNDkyNiw3ICs0OTI2LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU09i
amVjdCA8V0tGb3JtUGVyaXBoZQogICAgIH0KIH0KIAotLSAodm9pZClfZWxlbWVudERpZEZvY3Vz
Oihjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHVz
ZXJJc0ludGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05vZGU6
KEJPT0wpYmx1clByZXZpb3VzTm9kZSBjaGFuZ2luZ0FjdGl2aXR5U3RhdGU6KEJPT0wpY2hhbmdp
bmdBY3Rpdml0eVN0YXRlIHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1
c2VyT2JqZWN0CistICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wp
dXNlcklzSW50ZXJhY3RpbmcgYmx1clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2Rl
IGNoYW5naW5nQWN0aXZpdHlTdGF0ZTooT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6
OkZsYWc+KWNoYW5naW5nQWN0aXZpdHlTdGF0ZSB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1
cmVDb2Rpbmc+ICopdXNlck9iamVjdAogewogICAgIFNldEZvclNjb3BlPEJPT0w+IGlzQ2hhbmdp
bmdGb2N1c0ZvclNjb3BlIHsgX2lzQ2hhbmdpbmdGb2N1cywgaGFzRm9jdXNlZEVsZW1lbnQoX2Zv
Y3VzZWRFbGVtZW50SW5mb3JtYXRpb24pIH07CiAgICAgYXV0byBpbnB1dFZpZXdVcGRhdGVEZWZl
cnJlciA9IHN0ZDo6ZXhjaGFuZ2UoX2lucHV0Vmlld1VwZGF0ZURlZmVycmVyLCBudWxscHRyKTsK
QEAgLTQ5NjIsNyArNDk2MiwxMCBAQCAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdl
YktpdDo6CiAjZW5kaWYKIAogICAgICAgICAgICAgaWYgKHNlbGYuaXNGaXJzdFJlc3BvbmRlciB8
fCBfYmVjb21pbmdGaXJzdFJlc3BvbmRlcikgewotICAgICAgICAgICAgICAgIGlmIChjaGFuZ2lu
Z0FjdGl2aXR5U3RhdGUpCisgICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgc29mdHdhcmUga2V5
Ym9hcmQgaXMgYmVpbmcgdXNlZCB0byBlbnRlciBhbiB1cmwsIG9ubHkgdGhlIGZvY3VzIGFjdGl2
aXR5IHN0YXRlIGlzIGNoYW5naW5nLgorICAgICAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSwg
YXV0byBmb2N1cyBvbiB0aGUgcGFnZSBiZWluZyBuYXZpZ2F0ZWQgdG8gc2hvdWxkIGJlIGRpc2Fi
bGVkLCB1bmxlc3MgYSBoYXJkd2FyZQorICAgICAgICAgICAgICAgIC8vIGtleWJvYXJkIGlzIGF0
dGFjaGVkLgorICAgICAgICAgICAgICAgIGlmIChjaGFuZ2luZ0FjdGl2aXR5U3RhdGUgIT0gV2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkICYmIGNoYW5naW5nQWN0aXZpdHlTdGF0ZSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFlFUzsKIAogI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0JKHJldmlzaW9uIDI0NDEzNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTkyMSw3ICs5MjEsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0SXNTaG93aW5nSW5wdXRWaWV3CiAgICAgcHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldElzU2hvd2luZ0lucHV0Vmlld0ZvckZvY3VzZWRFbGVtZW50KHNo
b3dpbmdJbnB1dFZpZXcpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjplbGVt
ZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgaW5mb3JtYXRpb24s
IGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgYm9vbCBjaGFu
Z2luZ0FjdGl2aXR5U3RhdGUsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjplbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYg
aW5mb3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9k
ZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGNoYW5naW5nQWN0aXZp
dHlTdGF0ZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIG1fd2FpdGluZ0ZvclBv
c3RMYXlvdXRFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50ID0gdHJ1ZTsKIApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJl
dmlzaW9uIDI0NDEzNSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTI3LDcgKzMxMjcsNyBAQCB2b2lkIFdlYlBhZ2U6
OnNldEFjdGl2aXR5U3RhdGUoT3B0aW9uU2V0CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKG1f
cGFnZSwgInNldEFjdGl2aXR5U3RhdGUgY2FsbGVkIG9uICUiIFBSSXU2NCAiIGJ1dCBXZWJDb3Jl
IHBhZ2Ugd2FzIG51bGwiLCBwYWdlSUQoKSk7CiAgICAgaWYgKG1fcGFnZSkgewotICAgICAgICBT
ZXRGb3JTY29wZTxib29sPiBjdXJyZW50bHlDaGFuZ2luZ0FjdGl2aXR5U3RhdGUgeyBtX2NoYW5n
aW5nQWN0aXZpdHlTdGF0ZSwgdHJ1ZSB9OworICAgICAgICBTZXRGb3JTY29wZTxPcHRpb25TZXQ8
QWN0aXZpdHlTdGF0ZTo6RmxhZz4+IGN1cnJlbnRseUNoYW5naW5nQWN0aXZpdHlTdGF0ZSB7IG1f
Y2hhbmdpbmdBY3Rpdml0eVN0YXRlLCBjaGFuZ2VkIH07CiAgICAgICAgIG1fcGFnZS0+c2V0QWN0
aXZpdHlTdGF0ZShhY3Rpdml0eVN0YXRlKTsKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAyNDQxMzUpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3NTYsNyArMTc1Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0V2ZXJGb2N1c2Vk
RWxlbWVudER1ZVRvVXNlckludGVyYWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbiB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lzVG91Y2hCYXJVcGRhdGVTdXByZXNzZWRGb3JIaWRkZW5Db250ZW50RWRp
dGFibGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc05ldmVyUmljaGx5RWRpdGFibGVGb3JUb3Vj
aEJhciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2NoYW5naW5nQWN0aXZpdHlTdGF0ZSB7IGZhbHNl
IH07CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IG1fY2hhbmdp
bmdBY3Rpdml0eVN0YXRlOwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgYm9vbCBt
X2lzU2hvd2luZ0NvbnRleHRNZW51IHsgZmFsc2UgfTsK
</data>
<flag name="review"
          id="383483"
          type_id="1"
          status="+"
          setter="megan_gardner"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368046</attachid>
            <date>2019-04-23 11:29:44 -0700</date>
            <delta_ts>2019-04-23 13:27:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196740-20190423112943.patch</filename>
            <type>text/plain</type>
            <size>16208</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQ1NDYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE5LTA0LTIzICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBJbnB1dCBmaWVsZCBv
biBkZGcuZ2cgaXMgYXV0byBmb2N1c2VkIHdoZW4gdXJsIGlzIGVudGVyZWQgd2l0aCB0aGUgc29m
dHdhcmUga2V5Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5Njc0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE1lZ2FuIEdhcmRuZXIuCisKKyAg
ICAgICAgV2hlbiBhbiB1cmwgZm9yIGEgcGFnZSB3aXRoIGFuIGF1dG9mb2N1c2VkIGlucHV0IGZp
ZWxkICBpcyBlbnRlcmVkIHdpdGggdGhlIHNvZnR3YXJlIGtleWJvYXJkLAorICAgICAgICB0aGUg
aW5wdXQgZmllbGQgaXMgYXV0byBzZWxlY3RlZCwgYW5kIHRoZSBzb2Z0d2FyZSBrZXlib2FyZCBy
ZWFwcGVhcnMuIFRoaXMgZG9lcyBub3QgaGFwcGVuCisgICAgICAgIHdoZW4gcGlja2luZyB0aGUg
dXJsIGZyb20gZmF2b3JpdGVzLiBBZnRlciB1c2luZyB0aGUgc29mdHdhcmUga2V5Ym9hcmQgdG8g
ZW50ZXIgdGhlIHVybCwgdGhlCisgICAgICAgIGFjdGl2aXR5IHN0YXRlIGlzIGJlaW5nIGNoYW5n
ZWQgdG8gZm9jdXNlZC4gVGhlIG1ldGhvZCAnX2VsZW1lbnREaWRGb2N1cycgY2hlY2tzIHdoZXRo
ZXIgdGhlCisgICAgICAgIGFjdGl2aXR5IHN0YXRlIGNoYW5nZWQsIGFuZCBhbGxvd3MgdGhlIHNv
ZnR3YXJlIGtleWJvYXJkIHRvIGJlIHNob3duIGluIHRoaXMgY2FzZS4gVG8gYXZvaWQKKyAgICAg
ICAgc2hvd2luZyB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaW4gdGhpcyBjYXNlLCBzZW5kIHRoZSBj
aGFuZ2luZyBhY3Rpdml0eSBzdGF0ZSBiaXRmaWVsZCB0byB0aGUKKyAgICAgICAgVUkgcHJvY2Vz
cywgYW5kIGNoZWNrIGlmIHRoZSBmb2N1cyBmbGFnIGlzIHRoZSBvbmx5IGZsYWcgc2V0LgorICAK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfZWxlbWVudERpZEZvY3VzOnVzZXJJc0ludGVyYWN0aW5n
OmJsdXJQcmV2aW91c05vZGU6Y2hhbmdpbmdBY3Rpdml0eVN0YXRlOnVzZXJPYmplY3Q6XSk6CisK
IDIwMTktMDQtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W2lPU10gZWxlbWVudC5mb2N1cygpIHNvbWV0aW1lcyBmYWlscyB0byByZXZlYWwgdGhlIGZvY3Vz
ZWQgZWxlbWVudCB3aGVuIGl0IGJlY29tZXMgZWRpdGFibGUgZHluYW1pY2FsbHkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlzaW9uIDI0NDU0NikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIldlYkNvbG9yUGlja2VyLmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Fs
dGVybmF0aXZlVGV4dENsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgpAQCAtMzgyLDcgKzM4Myw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShPcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
c2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNl
dHNPblNhdmUsIGRvdWJsZSBzY2FsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlUGFn
ZUNlbnRlckFuZFNjYWxlKE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IGNlbnRlciwgZG91
YmxlIHNjYWxlKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0
IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29s
IGJsdXJQcmV2aW91c05vZGUsIGJvb2wgY2hhbmdpbmdBY3Rpdml0eVN0YXRlLCBBUEk6Ok9iamVj
dCogdXNlckRhdGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0
IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29s
IGJsdXJQcmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFn
PiBhY3Rpdml0eVN0YXRlQ2hhbmdlcywgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmb2N1
c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1cygpID0g
MDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAy
NDQ1NDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHB1YmxpYzoKICAgICBGb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uIGluZm9ybWF0aW9uOwogICAgIGJvb2wgdXNlcklzSW50ZXJhY3Rpbmc7CiAgICAg
Ym9vbCBibHVyUHJldmlvdXNOb2RlOwotICAgIGJvb2wgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOwor
ICAgIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRl
Q2hhbmdlczsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogfTsKIApAQCAtMTkw
Nyw3ICsxOTA3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkR2V0VGFwSGlnaGxpZ2h0R2Vv
bWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mIGdlb21ldHJpZXMsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHRvcExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJp
Z2h0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21SaWdodFJhZGl1cywgYm9vbCBub2RlSGFzQnVpbHRJ
bkNsaWNrSGFuZGxpbmcpOwogCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clBy
ZXZpb3VzTm9kZSwgYm9vbCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIGNvbnN0IFVzZXJEYXRhJik7
CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
biYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgT3B0aW9u
U2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBj
b25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZWxlbWVudERpZEJsdXIoKTsKICAgICB2b2lkIGZv
Y3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSk7CiAgICAg
dm9pZCBkaWRSZWNlaXZlRWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAyNDQ1NDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTQwNCw3ICs0MDQsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlUHJveHkgewogICAgIFJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoT3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRQb2ludD4gdW5vYnNjdXJlZENlbnRlciwgZG91YmxlIHNjYWxlKQogICAgIERp
ZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpD
b2xvciBjb2xvciwgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4gZ2VvbWV0cmllcywgV2ViQ29y
ZTo6SW50U2l6ZSB0b3BMZWZ0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIHRvcFJpZ2h0UmFkaXVz
LCBXZWJDb3JlOjpJbnRTaXplIGJvdHRvbUxlZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgYm90
dG9tUmlnaHRSYWRpdXMsIGJvb2wgbm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nKQogCi0gICAg
RWxlbWVudERpZEZvY3VzKHN0cnVjdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24g
aW5mb3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9k
ZSwgYm9vbCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRWxlbWVudERpZEZvY3VzKHN0cnVjdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb24gaW5mb3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZp
b3VzTm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5
U3RhdGVDaGFuZ2VzLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIEVsZW1lbnREaWRC
bHVyKCkKICAgICBGb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUpCiAgICAgU2Nyb2xsaW5nTm9kZVNjcm9sbFdpbGxTdGFy
dFNjcm9sbCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAkocmV2aXNpb24gMjQ0NTQ2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw3ICsxNDks
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShPcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFBvaW50PiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50JiwgZG91YmxlKSBvdmVycmlkZTsKICAgICB2b2lkIHJlc3RvcmVQYWdl
Q2VudGVyQW5kU2NhbGUoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGRvdWJsZSkgb3Zl
cnJpZGU7CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2Rl
LCBib29sIGNoYW5naW5nQWN0aXZpdHlTdGF0ZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBP
cHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZUNoYW5n
ZXMsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbGVtZW50RGlk
Qmx1cigpIG92ZXJyaWRlOwogICAgIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1v
ZGUoV2ViQ29yZTo6SW5wdXRNb2RlKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVFZGl0
b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXMoKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0JKHJldmlzaW9uIDI0NDU0
NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQko
d29ya2luZyBjb3B5KQpAQCAtNTM1LDcgKzUzNSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnJl
c3RvcmVQYWdlQ2VudGVyQW4KICAgICBbbV93ZWJWaWV3IF9yZXN0b3JlUGFnZVN0YXRlVG9Vbm9i
c2N1cmVkQ2VudGVyOmNlbnRlciBzY2FsZTpzY2FsZV07CiB9CiAKLXZvaWQgUGFnZUNsaWVudElt
cGw6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBub2Rl
SW5mb3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9k
ZSwgYm9vbCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uJiBub2RlSW5mb3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wg
Ymx1clByZXZpb3VzTm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+
IGFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCiB7CiAgICAgTUVT
U0FHRV9DSEVDSyghdXNlckRhdGEgfHwgdXNlckRhdGEtPnR5cGUoKSA9PSBBUEk6Ok9iamVjdDo6
VHlwZTo6RGF0YSk7CiAKQEAgLTU1MCw3ICs1NTAsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpl
bGVtZW50RGlkRm9jdXMoY29uCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBbbV9jb250ZW50Vmll
dyBfZWxlbWVudERpZEZvY3VzOm5vZGVJbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzp1c2Vy
SXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOmJsdXJQcmV2aW91c05vZGUgY2hhbmdpbmdB
Y3Rpdml0eVN0YXRlOmNoYW5naW5nQWN0aXZpdHlTdGF0ZSB1c2VyT2JqZWN0OnVzZXJPYmplY3Rd
OworICAgIFttX2NvbnRlbnRWaWV3IF9lbGVtZW50RGlkRm9jdXM6bm9kZUluZm9ybWF0aW9uIHVz
ZXJJc0ludGVyYWN0aW5nOnVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05vZGU6Ymx1clBy
ZXZpb3VzTm9kZSBhY3Rpdml0eVN0YXRlQ2hhbmdlczphY3Rpdml0eVN0YXRlQ2hhbmdlcyB1c2Vy
T2JqZWN0OnVzZXJPYmplY3RdOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc0ZvY3VzaW5n
RWxlbWVudCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCShyZXZpc2lvbiAyNDQ1NDYpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgIldLU3ludGhldGljVGFwR2VzdHVyZVJl
Y29nbml6ZXIuaCIKICNpbXBvcnQgIl9XS0Zvcm1JbnB1dFNlc3Npb24uaCIKICNpbXBvcnQgPFVJ
S2l0L1VJVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2ltcG9y
dCA8d3RmL0Jsb2NrUHRyLmg+CkBAIC00MTIsNyArNDEzLDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9X
S0NPTlRFTlRWSUVXX0FDVElPTihERQogLSAoQk9PTClfbWF5RGlzYWJsZURvdWJsZVRhcEdlc3R1
cmVzRHVyaW5nU2luZ2xlVGFwOwogLSAodm9pZClfZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVy
aW5nVGFwSWZOZWNlc3Nhcnk6KHVpbnQ2NF90KXJlcXVlc3RJRDsKIC0gKHZvaWQpX2hhbmRsZVNt
YXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwOih1aW50NjRfdClyZXF1
ZXN0SUQgcmVuZGVyUmVjdDooY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JilyZW5kZXJSZWN0IGZp
dEVudGlyZVJlY3Q6KEJPT0wpZml0RW50aXJlUmVjdCB2aWV3cG9ydE1pbmltdW1TY2FsZTooZG91
YmxlKXZpZXdwb3J0TWluaW11bVNjYWxlIHZpZXdwb3J0TWF4aW11bVNjYWxlOihkb3VibGUpdmll
d3BvcnRNYXhpbXVtU2NhbGU7Ci0tICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktp
dDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rp
bmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgYmx1clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJl
dmlvdXNOb2RlIGNoYW5naW5nQWN0aXZpdHlTdGF0ZTooQk9PTCljaGFuZ2luZ0FjdGl2aXR5U3Rh
dGUgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmplY3Q7Cist
ICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZv
cm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJh
Y3RpbmcgYmx1clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2RlIGFjdGl2aXR5U3Rh
dGVDaGFuZ2VzOihPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4pYWN0aXZp
dHlTdGF0ZUNoYW5nZXMgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKXVz
ZXJPYmplY3Q7CiAtICh2b2lkKV9lbGVtZW50RGlkQmx1cjsKIC0gKHZvaWQpX2RpZFVwZGF0ZUlu
cHV0TW9kZTooV2ViQ29yZTo6SW5wdXRNb2RlKW1vZGU7CiAtICh2b2lkKV9kaWRSZWNlaXZlRWRp
dG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAy
NDQ1NDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OTQyLDcgKzQ5NDIsNyBAQCBzdGF0aWMgUmV0
YWluUHRyPE5TT2JqZWN0IDxXS0Zvcm1QZXJpcGhlCiAgICAgfQogfQogCi0tICh2b2lkKV9lbGVt
ZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5m
b3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgYmx1clBy
ZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2RlIGNoYW5naW5nQWN0aXZpdHlTdGF0ZToo
Qk9PTCljaGFuZ2luZ0FjdGl2aXR5U3RhdGUgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJl
Q29kaW5nPiAqKXVzZXJPYmplY3QKKy0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2Vi
S2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFj
dGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOihCT09MKWJsdXJQ
cmV2aW91c05vZGUgYWN0aXZpdHlTdGF0ZUNoYW5nZXM6KE9wdGlvblNldDxXZWJDb3JlOjpBY3Rp
dml0eVN0YXRlOjpGbGFnPilhY3Rpdml0eVN0YXRlQ2hhbmdlcyB1c2VyT2JqZWN0OihOU09iamVj
dCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNlck9iamVjdAogewogICAgIFNldEZvclNjb3BlPEJPT0w+
IGlzQ2hhbmdpbmdGb2N1c0ZvclNjb3BlIHsgX2lzQ2hhbmdpbmdGb2N1cywgaGFzRm9jdXNlZEVs
ZW1lbnQoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pIH07CiAgICAgYXV0byBpbnB1dFZpZXdV
cGRhdGVEZWZlcnJlciA9IHN0ZDo6ZXhjaGFuZ2UoX2lucHV0Vmlld1VwZGF0ZURlZmVycmVyLCBu
dWxscHRyKTsKQEAgLTQ5NzgsNyArNDk3OCwxMCBAQCAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6
KGNvbnN0IFdlYktpdDo6CiAjZW5kaWYKIAogICAgICAgICAgICAgaWYgKHNlbGYuaXNGaXJzdFJl
c3BvbmRlciB8fCBfYmVjb21pbmdGaXJzdFJlc3BvbmRlcikgewotICAgICAgICAgICAgICAgIGlm
IChjaGFuZ2luZ0FjdGl2aXR5U3RhdGUpCisgICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgc29m
dHdhcmUga2V5Ym9hcmQgaXMgYmVpbmcgdXNlZCB0byBlbnRlciBhbiB1cmwsIG9ubHkgdGhlIGZv
Y3VzIGFjdGl2aXR5IHN0YXRlIGlzIGNoYW5naW5nLgorICAgICAgICAgICAgICAgIC8vIEluIHRo
aXMgY2FzZSwgYXV0byBmb2N1cyBvbiB0aGUgcGFnZSBiZWluZyBuYXZpZ2F0ZWQgdG8gc2hvdWxk
IGJlIGRpc2FibGVkLCB1bmxlc3MgYSBoYXJkd2FyZQorICAgICAgICAgICAgICAgIC8vIGtleWJv
YXJkIGlzIGF0dGFjaGVkLgorICAgICAgICAgICAgICAgIGlmIChhY3Rpdml0eVN0YXRlQ2hhbmdl
cyAmJiBhY3Rpdml0eVN0YXRlQ2hhbmdlcyAhPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0Zv
Y3VzZWQpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBZRVM7CiAKICNpZiBQTEFURk9STShX
QVRDSE9TKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCShyZXZpc2lvbiAyNDQ1NDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDgsNyArNDA4LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExheWVyVHJlZShjbwogICAgIH0KIAogICAgIGlm
IChhdXRvIGFyZ3VtZW50cyA9IHN0ZDo6ZXhjaGFuZ2UobV9kZWZlcnJlZEVsZW1lbnREaWRGb2N1
c0FyZ3VtZW50cywgbnVsbHB0cikpCi0gICAgICAgIHBhZ2VDbGllbnQoKS5lbGVtZW50RGlkRm9j
dXMoYXJndW1lbnRzLT5pbmZvcm1hdGlvbiwgYXJndW1lbnRzLT51c2VySXNJbnRlcmFjdGluZywg
YXJndW1lbnRzLT5ibHVyUHJldmlvdXNOb2RlLCBhcmd1bWVudHMtPmNoYW5naW5nQWN0aXZpdHlT
dGF0ZSwgYXJndW1lbnRzLT51c2VyRGF0YS5nZXQoKSk7CisgICAgICAgIHBhZ2VDbGllbnQoKS5l
bGVtZW50RGlkRm9jdXMoYXJndW1lbnRzLT5pbmZvcm1hdGlvbiwgYXJndW1lbnRzLT51c2VySXNJ
bnRlcmFjdGluZywgYXJndW1lbnRzLT5ibHVyUHJldmlvdXNOb2RlLCBhcmd1bWVudHMtPmFjdGl2
aXR5U3RhdGVDaGFuZ2VzLCBhcmd1bWVudHMtPnVzZXJEYXRhLmdldCgpKTsKIH0KIAogYm9vbCBX
ZWJQYWdlUHJveHk6OnVwZGF0ZUxheW91dFZpZXdwb3J0UGFyYW1ldGVycyhjb25zdCBXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBsYXllclRyZWVUcmFuc2FjdGlvbikKQEAgLTky
NywxOCArOTI3LDE4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRJc1Nob3dpbmdJbnB1dFZpZXcK
ICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0SXNTaG93aW5nSW5wdXRW
aWV3Rm9yRm9jdXNlZEVsZW1lbnQoc2hvd2luZ0lucHV0VmlldyksIG1fcGFnZUlEKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uJiBpbmZvcm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVy
UHJldmlvdXNOb2RlLCBib29sIGNoYW5naW5nQWN0aXZpdHlTdGF0ZSwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uJiBpbmZvcm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFjdGlu
ZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZUNoYW5nZXMsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBtX3dhaXRpbmdGb3JQb3N0TGF5b3V0RWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3Vz
aW5nRWxlbWVudCA9IHRydWU7CiAKICAgICBBUEk6Ok9iamVjdCogdXNlckRhdGFPYmplY3QgPSBw
cm9jZXNzKCkudHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0
KCk7CiAgICAgaWYgKG1fZWRpdG9yU3RhdGUuaXNNaXNzaW5nUG9zdExheW91dERhdGEpIHsKICAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cnkgdG8gZWxpbWluYXRlIG1fZGVmZXJyZWRFbGVt
ZW50RGlkRm9jdXNBcmd1bWVudHMgYWx0b2dldGhlciwgaW4gZmF2b3Igb2Ygb25seSBkZWZlcnJp
bmcgYWN0aW9ucyB0aGF0IGFyZSBkZXBlbmRlbnQgb24gcG9zdC1sYXlvdXQgZWRpdG9yIHN0YXRl
IGluZm9ybWF0aW9uLgotICAgICAgICBtX2RlZmVycmVkRWxlbWVudERpZEZvY3VzQXJndW1lbnRz
ID0gc3RkOjptYWtlX3VuaXF1ZTxFbGVtZW50RGlkRm9jdXNBcmd1bWVudHM+KEVsZW1lbnREaWRG
b2N1c0FyZ3VtZW50cyB7IGluZm9ybWF0aW9uLCB1c2VySXNJbnRlcmFjdGluZywgYmx1clByZXZp
b3VzTm9kZSwgY2hhbmdpbmdBY3Rpdml0eVN0YXRlLCB1c2VyRGF0YU9iamVjdCB9KTsKKyAgICAg
ICAgbV9kZWZlcnJlZEVsZW1lbnREaWRGb2N1c0FyZ3VtZW50cyA9IHN0ZDo6bWFrZV91bmlxdWU8
RWxlbWVudERpZEZvY3VzQXJndW1lbnRzPihFbGVtZW50RGlkRm9jdXNBcmd1bWVudHMgeyBpbmZv
cm1hdGlvbiwgdXNlcklzSW50ZXJhY3RpbmcsIGJsdXJQcmV2aW91c05vZGUsIGFjdGl2aXR5U3Rh
dGVDaGFuZ2VzLCB1c2VyRGF0YU9iamVjdCB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIHBhZ2VDbGllbnQoKS5lbGVtZW50RGlkRm9jdXMoaW5mb3JtYXRpb24sIHVzZXJJc0ludGVy
YWN0aW5nLCBibHVyUHJldmlvdXNOb2RlLCBjaGFuZ2luZ0FjdGl2aXR5U3RhdGUsIHVzZXJEYXRh
T2JqZWN0KTsKKyAgICBwYWdlQ2xpZW50KCkuZWxlbWVudERpZEZvY3VzKGluZm9ybWF0aW9uLCB1
c2VySXNJbnRlcmFjdGluZywgYmx1clByZXZpb3VzTm9kZSwgYWN0aXZpdHlTdGF0ZUNoYW5nZXMs
IHVzZXJEYXRhT2JqZWN0KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmVsZW1lbnREaWRCbHVy
KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CShyZXZpc2lvbiAyNDQ1NDYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEzMCw3ICszMTMwLDcgQEAgdm9pZCBXZWJQ
YWdlOjpzZXRBY3Rpdml0eVN0YXRlKE9wdGlvblNldAogCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RShtX3BhZ2UsICJzZXRBY3Rpdml0eVN0YXRlIGNhbGxlZCBvbiAlIiBQUkl1NjQgIiBidXQgV2Vi
Q29yZSBwYWdlIHdhcyBudWxsIiwgcGFnZUlEKCkpOwogICAgIGlmIChtX3BhZ2UpIHsKLSAgICAg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3VycmVudGx5Q2hhbmdpbmdBY3Rpdml0eVN0YXRlIHsgbV9j
aGFuZ2luZ0FjdGl2aXR5U3RhdGUsIHRydWUgfTsKKyAgICAgICAgU2V0Rm9yU2NvcGU8T3B0aW9u
U2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+PiBjdXJyZW50bHlDaGFuZ2luZ0FjdGl2aXR5U3RhdGUg
eyBtX2xhc3RBY3Rpdml0eVN0YXRlQ2hhbmdlcywgY2hhbmdlZCB9OwogICAgICAgICBtX3BhZ2Ut
PnNldEFjdGl2aXR5U3RhdGUoYWN0aXZpdHlTdGF0ZSk7CiAgICAgfQogICAgIApAQCAtNTQwNiw3
ICs1NDA2LDcgQEAgdm9pZCBXZWJQYWdlOjplbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RQogCiAg
ICAgICAgIG1fZm9ybUNsaWVudC0+d2lsbEJlZ2luSW5wdXRTZXNzaW9uKHRoaXMsICZlbGVtZW50
LCBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpLCBt
X3VzZXJJc0ludGVyYWN0aW5nLCB1c2VyRGF0YSk7CiAKLSAgICAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpFbGVtZW50RGlkRm9jdXMoaW5mb3JtYXRpb24sIG1fdXNlcklzSW50ZXJh
Y3RpbmcsIG1fcmVjZW50bHlCbHVycmVkRWxlbWVudCwgbV9jaGFuZ2luZ0FjdGl2aXR5U3RhdGUs
IFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRs
ZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkVsZW1lbnREaWRGb2N1cyhpbmZvcm1hdGlvbiwgbV91c2VySXNJbnRlcmFjdGlu
ZywgbV9yZWNlbnRseUJsdXJyZWRFbGVtZW50LCBtX2xhc3RBY3Rpdml0eVN0YXRlQ2hhbmdlcywg
VXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxl
cyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CiAjZWxpZiBQTEFURk9STShNQUMpCiAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGNhbiBiZSB1bmlmaWVkIHdpdGggdGhlIGlPUyBjb2RlIGFib3ZlIGJ5
IGJyaW5naW5nIEVsZW1lbnREaWRGb2N1cyB0byBtYWNPUy4KICAgICAgICAgLy8gVGhpcyBhbHNv
IGRvZXNuJ3QgdGFrZSBvdGhlciBub25lZGl0YWJsZSBjb250cm9scyBpbnRvIGFjY291bnQsIHN1
Y2ggYXMgaW5wdXQgdHlwZSBjb2xvci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDI0NDU0NikKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTc1Nyw3ICsxNzU3
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVlVG9Vc2Vy
SW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNU
b3VjaEJhclVwZGF0ZVN1cHJlc3NlZEZvckhpZGRlbkNvbnRlbnRFZGl0YWJsZSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lzTmV2ZXJSaWNobHlFZGl0YWJsZUZvclRvdWNoQmFyIHsgZmFsc2UgfTsK
LSAgICBib29sIG1fY2hhbmdpbmdBY3Rpdml0eVN0YXRlIHsgZmFsc2UgfTsKKyAgICBPcHRpb25T
ZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gbV9sYXN0QWN0aXZpdHlTdGF0ZUNoYW5n
ZXM7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBib29sIG1faXNTaG93aW5nQ29u
dGV4dE1lbnUgeyBmYWxzZSB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>