<?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>223208</bug_id>
          
          <creation_ts>2021-03-15 12:27:49 -0700</creation_ts>
          <short_desc>[iOS][FCR] Add pressed state for button-like controls</short_desc>
          <delta_ts>2021-03-23 11:32:06 -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>Forms</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223285</see_also>
          <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>
          <dependson>223287</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1739586</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-15 12:27:49 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739587</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-15 12:28:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/72399087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739592</commentid>
    <comment_count>2</comment_count>
      <attachid>423220</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-15 12:33:51 -0700</bug_when>
    <thetext>Created attachment 423220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739914</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-16 06:43:00 -0700</bug_when>
    <thetext>Committed r274473: &lt;https://commits.webkit.org/r274473&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423220.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740265</commentid>
    <comment_count>4</comment_count>
      <attachid>423220</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-16 15:37:47 -0700</bug_when>
    <thetext>Comment on attachment 423220
Patch

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

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:350
&gt; +        style.setOpacity(0.75f);

You can&apos;t just set opacity in the style without calling Adjuster::adjust() - opacity has side effects, like creating CSS stacking context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740273</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-03-16 15:50:05 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 223287</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741792</commentid>
    <comment_count>6</comment_count>
      <attachid>423746</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-19 11:03:19 -0700</bug_when>
    <thetext>Created attachment 423746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741801</commentid>
    <comment_count>7</comment_count>
      <attachid>423746</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-19 11:23:23 -0700</bug_when>
    <thetext>Comment on attachment 423746
Patch

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

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:2124
&gt; +        if (pressed)
&gt; +            context.fillRoundedRect(checkboxRect, systemColor(CSSValueAppleSystemBlue, styleColorOptions).colorWithAlphaMultipliedBy(pressedStateOpacity));
&gt; +        else if (enabled)
&gt;              context.fillRoundedRect(checkboxRect, systemColor(CSSValueAppleSystemBlue, styleColorOptions));
&gt;          else
&gt;              context.fillRoundedRect(checkboxRect, systemColor(CSSValueAppleSystemSecondaryFillDisabled, styleColorOptions));

With code like this, it&apos;s much better to factor it so that you only call the actual function once. Prepare the inputs based on state, but just have one call to context.fillRoundedRect()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741835</commentid>
    <comment_count>8</comment_count>
      <attachid>423759</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-19 12:26:59 -0700</bug_when>
    <thetext>Created attachment 423759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741836</commentid>
    <comment_count>9</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-19 12:28:03 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 423746 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423746&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:2124
&gt; &gt; +        if (pressed)
&gt; &gt; +            context.fillRoundedRect(checkboxRect, systemColor(CSSValueAppleSystemBlue, styleColorOptions).colorWithAlphaMultipliedBy(pressedStateOpacity));
&gt; &gt; +        else if (enabled)
&gt; &gt;              context.fillRoundedRect(checkboxRect, systemColor(CSSValueAppleSystemBlue, styleColorOptions));
&gt; &gt;          else
&gt; &gt;              context.fillRoundedRect(checkboxRect, systemColor(CSSValueAppleSystemSecondaryFillDisabled, styleColorOptions));
&gt; 
&gt; With code like this, it&apos;s much better to factor it so that you only call the
&gt; actual function once. Prepare the inputs based on state, but just have one
&gt; call to context.fillRoundedRect()

Done. I moved the color determination into separate methods, so that they can be used for both checkboxes and radio buttons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742908</commentid>
    <comment_count>10</comment_count>
      <attachid>423759</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-23 10:57:43 -0700</bug_when>
    <thetext>Comment on attachment 423759
Patch

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

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:2100
&gt; +    if (!(states &amp; ControlStates::EnabledState))

ControlStates::States should be an enum class, and be used OptionSet&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742911</commentid>
    <comment_count>11</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-23 11:04:10 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #10)
&gt; Comment on attachment 423759 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423759&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:2100
&gt; &gt; +    if (!(states &amp; ControlStates::EnabledState))
&gt; 
&gt; ControlStates::States should be an enum class, and be used OptionSet&lt;&gt;

Tracking this refactoring in https://bugs.webkit.org/show_bug.cgi?id=223647.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742919</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-23 11:32:03 -0700</bug_when>
    <thetext>Committed r274886: &lt;https://commits.webkit.org/r274886&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423759.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423220</attachid>
            <date>2021-03-15 12:33:51 -0700</date>
            <delta_ts>2021-03-19 11:03:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223208-20210315153350.patch</filename>
            <type>text/plain</type>
            <size>5993</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBkM2JlMmY4NTJmOTdk
NDlmZmFkN2QxZTkwYTk5ZmU5MDMyMDcwNy4uNDllYWM5NWIwNjQ0MjE3MjY0MTAyMWZiN2I0MTlk
Mzc5ODlkM2RiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTAzLTE1ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBwcmVzc2VkIHN0YXRlIGZvciBidXR0b24tbGlrZSBjb250cm9scworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjA4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MjM5OTA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBwcmVzc2VkIHN0YXRlIGZvciBidXR0b25zLCBjaGVja2JveGVzLCBy
YWRpbyBidXR0b25zLCBzZWxlY3QKKyAgICAgICAgZWxlbWVudHMgYW5kIGRhdGUgaW5wdXRzLiBU
aGUgcHJlc3NlZCBzdGF0ZSBoYXMgYSA3NSUgb3BhY2l0eSBsZXZlbAorICAgICAgICByZWxhdGl2
ZSB0byB0aGUgZGVmYXVsdCBzdGF0ZS4KKworICAgICAgICAqIGNzcy9odG1sLmNzczoKKworICAg
ICAgICBFeHBsaWNpdGx5IHNldCB0aGUgZGVmYXVsdCBhY3RpdmUgc3R5bGUgdG8gb3BhY2l0eTog
aW5pdGlhbCB0byBlbnN1cmUKKyAgICAgICAgc3R5bGVzIGFyZSBhZGp1c3RlZCB3aGVuIHRoZSBl
bGVtZW50IGlzIHByZXNzZWQuIE5vdGUgdGhhdCB3ZSBkbyBub3QKKyAgICAgICAgc2V0IHRoZSBk
ZWZhdWx0IHRvIDc1JSB0byBhdm9pZCB1bmV4cGVjdGVkIGFwcGxpY2F0aW9uIG9mIHRoZSBuZXcK
KyAgICAgICAgc3R5bGUuCisKKyAgICAgICAgKGlucHV0Om1hdGNoZXMoW3R5cGU9ImJ1dHRvbiJd
LCBbdHlwZT0ic3VibWl0Il0sIFt0eXBlPSJyZXNldCJdKTphY3RpdmUsIGlucHV0W3R5cGU9ImZp
bGUiXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246YWN0aXZlLCBidXR0b246YWN0aXZlKToKKyAgICAg
ICAgKGlucHV0Om1hdGNoZXMoW3R5cGU9ImNoZWNrYm94Il0sIFt0eXBlPSJyYWRpbyJdKTphY3Rp
dmUpOgorICAgICAgICAoc2VsZWN0OmFjdGl2ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorCisg
ICAgICAgIFRoZSBzdHlsZSBhZGp1c3RtZW50IGlzIG9ubHkgcGVyZm9ybWVkIGlmIHRoZSAtd2Vi
a2l0LWFwcGVhcmFuY2UgcHJvcGVydHkKKyAgICAgICAgaXMgbm90IHNldCB0byBub25lLiBUaGlz
IGVuc3VyZXMgd2UgZG8gbm90IG92ZXJyaWRlIHRoZSBvcGFjaXR5IGZvcgorICAgICAgICBjdXN0
b20gc3R5bGVkIGZvcm0gY29udHJvbHMuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
SU9TOjphZGp1c3RQcmVzc2VkU3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVJT1M6OmFkanVzdENoZWNrYm94U3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVJT1M6OmFkanVzdFJhZGlvU3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlIGNvbnN0KToK
KwogMjAyMS0wMy0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0JpZ1N1ciB3azEgYXJtNjRdIHBsYXRmb3JtL21hYy9mYXN0L29iamMvbG9uZ2xvbmdUZXN0Lmh0
bWwgaXMgYSBjb25zaXN0ZW50IGZhaWx1cmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKaW5kZXggMDAwYTc1MDRl
ODk0OGZiMmFjY2ZmYTVlOTE2YThkOWU3ZDBiMTAxMy4uYjVlNmYxNGFhMzNmZjZkYTUxNGE5MjA4
ZWU3ZDJjYjhlMDc1YWM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3Nz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpAQCAtODY3LDcgKzg2NywxMSBAQCBp
bnB1dFt0eXBlPSJzdWJtaXQiXSB7CiAjZW5kaWYKIAogaW5wdXQ6bWF0Y2hlcyhbdHlwZT0iYnV0
dG9uIl0sIFt0eXBlPSJzdWJtaXQiXSwgW3R5cGU9InJlc2V0Il0pOmFjdGl2ZSwgaW5wdXRbdHlw
ZT0iZmlsZSJdOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbjphY3RpdmUsIGJ1dHRvbjphY3RpdmUgewor
I2lmIGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkpICYmIFdURl9QTEFURk9STV9JT1Nf
RkFNSUxZCisgICAgb3BhY2l0eTogaW5pdGlhbDsKKyNlbHNlCiAgICAgY29sb3I6IEFjdGl2ZUJ1
dHRvblRleHQ7CisjZW5kaWYKIH0KIAogaW5wdXRbdHlwZT0icmFuZ2UiXSB7CkBAIC0xMDA4LDYg
KzEwMTIsMTAgQEAgaW5wdXQ6bWF0Y2hlcyhbdHlwZT0iY2hlY2tib3giXSwgW3R5cGU9InJhZGlv
Il0pOmNoZWNrZWQ6ZGlzYWJsZWQgewogICAgIG9wYWNpdHk6IGluaXRpYWw7CiAgICAgYmFja2dy
b3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOwogfQorCitpbnB1dDptYXRjaGVzKFt0eXBlPSJjaGVj
a2JveCJdLCBbdHlwZT0icmFkaW8iXSk6YWN0aXZlIHsKKyAgICBvcGFjaXR5OiBpbml0aWFsOwor
fQogI2VuZGlmCiAKICNpZiAhKGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkpICYmIFdU
Rl9QTEFURk9STV9JT1NfRkFNSUxZKQpAQCAtMTAyMSw2ICsxMDI5LDEwIEBAIGlucHV0W3R5cGU9
InJhZGlvIl0gewogc2VsZWN0OmZvY3VzIHsKICAgICBib3JkZXItY29sb3I6IHJnYigxNywgNDYs
IDEzNSk7CiB9CisKK3NlbGVjdDphY3RpdmUgeworICAgIG9wYWNpdHk6IGluaXRpYWw7Cit9CiAj
ZW5kaWYKIAogI2lmIGRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICYmIEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5o
CmluZGV4IGQ4NGI1ZGE0YTBiM2VmN2RjZjEyMTQyOTU3YjdkMTQ0YjE5OGZhYTIuLmZkZWEwNTJj
ODdjN2MyZjEyYjYyMmVmYmEwMDcxMDZmYmU5NGZjMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xODYsNiArMTg2LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBhaW50TWVudUxpc3RCdXR0b25EZWNvcmF0aW9uc1dpdGhGb3JtQ29udHJvbFJlZnJlc2go
Y29uc3QgUmVuZGVyQm94JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jik7CiAj
ZW5kaWYKIAorICAgIHZvaWQgYWRqdXN0UHJlc3NlZFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3Qg
RWxlbWVudCYpIGNvbnN0OworCiAgICAgRmxvYXRSZWN0IGFkZFJvdW5kZWRCb3JkZXJDbGlwKGNv
bnN0IFJlbmRlck9iamVjdCYgYm94LCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0Jik7
CiAKICAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tCmluZGV4IGU0ODUwMzBlZGI3NmNkZDFlNjU3YTMwN2ZmMzhlYjMyYTVh
Mzc0ZWMuLjA3NzJiOGFmMTA0MzcwNGYxMzAxMjNmODZhMzIwNWNiODUxNDg3MzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTM0Myw4ICszNDMsMTkg
QEAgRmxvYXRSZWN0IFJlbmRlclRoZW1lSU9TOjphZGRSb3VuZGVkQm9yZGVyQ2xpcChjb25zdCBS
ZW5kZXJPYmplY3QmIGJveCwgR3JhcGhpY3MKICAgICByZXR1cm4gYm9yZGVyLnJlY3QoKTsKIH0K
IAotdm9pZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0Q2hlY2tib3hTdHlsZShSZW5kZXJTdHlsZSYg
c3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0
UHJlc3NlZFN0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkg
Y29uc3QKIHsKKyNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQorICAgIGlmIChl
bGVtZW50LmRvY3VtZW50KCkuc2V0dGluZ3MoKS5pT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVk
KCkgJiYgZWxlbWVudC5hY3RpdmUoKSkKKyAgICAgICAgc3R5bGUuc2V0T3BhY2l0eSgwLjc1Zik7
CisjZW5kaWYKK30KKwordm9pZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0Q2hlY2tib3hTdHlsZShS
ZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0Cit7CisgICAg
aWYgKGVsZW1lbnQpCisgICAgICAgIGFkanVzdFByZXNzZWRTdHlsZShzdHlsZSwgKmVsZW1lbnQp
OworCiAgICAgaWYgKCFzdHlsZS53aWR0aCgpLmlzSW50cmluc2ljT3JBdXRvKCkgJiYgIXN0eWxl
LmhlaWdodCgpLmlzQXV0bygpKQogICAgICAgICByZXR1cm47CiAKQEAgLTQ4NSw4ICs0OTYsMTEg
QEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6aXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OmlzQ29u
dHJvbFN0eWxlZChzdHlsZSwgdXNlckFnZW50U3R5bGUpOwogfQogCi12b2lkIFJlbmRlclRoZW1l
SU9TOjphZGp1c3RSYWRpb1N0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCop
IGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RSYWRpb1N0eWxlKFJlbmRlclN0eWxl
JiBzdHlsZSwgY29uc3QgRWxlbWVudCogZWxlbWVudCkgY29uc3QKIHsKKyAgICBpZiAoZWxlbWVu
dCkKKyAgICAgICAgYWRqdXN0UHJlc3NlZFN0eWxlKHN0eWxlLCAqZWxlbWVudCk7CisKICAgICBp
ZiAoIXN0eWxlLndpZHRoKCkuaXNJbnRyaW5zaWNPckF1dG8oKSAmJiAhc3R5bGUuaGVpZ2h0KCku
aXNBdXRvKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjk2LDYgKzcxMCw4IEBAIHZvaWQgUmVu
ZGVyVGhlbWVJT1M6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxl
LCBjb25zdCBFbGVtZW50CiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm47CiAKKyAg
ICBhZGp1c3RQcmVzc2VkU3R5bGUoc3R5bGUsICplbGVtZW50KTsKKwogICAgIC8vIEVuZm9yY2Ug
c29tZSBkZWZhdWx0IHN0eWxlcyBpbiB0aGUgY2FzZSB0aGF0IHRoaXMgaXMgYSBub24tbXVsdGlw
bGUgPHNlbGVjdD4gZWxlbWVudCwKICAgICAvLyBvciBhIGRhdGUgaW5wdXQuIFdlIGRvbid0IGZv
cmNlIHRoZXNlIGlmIHRoaXMgaXMganVzdCBhbiBlbGVtZW50IHdpdGgKICAgICAvLyAiLXdlYmtp
dC1hcHBlYXJhbmNlOiBtZW51bGlzdC1idXR0b24iLgpAQCAtMTEwOCw2ICsxMTI0LDggQEAgdm9p
ZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBj
b25zdCBFbGVtZW50KiBlbGVtZW4KICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGFkanVzdFByZXNzZWRTdHlsZShzdHlsZSwgKmVsZW1lbnQpOworCiAgICAgUmVuZGVy
Qm94KiBib3ggPSBlbGVtZW50LT5yZW5kZXJCb3goKTsKICAgICBpZiAoIWJveCkKICAgICAgICAg
cmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423746</attachid>
            <date>2021-03-19 11:03:19 -0700</date>
            <delta_ts>2021-03-19 12:26:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223208-20210319140318.patch</filename>
            <type>text/plain</type>
            <size>9522</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzM2YTBiNDlhYzBlY2Mz
YTgzMWQ4ZWNmMTkwMjNjMmQyODI3MTkzZC4uNzdlMTM2ZjU1MjVkM2RkZTc4ZGViNTVlZTJlMmU4
YzU5YWE1MTcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAzLTE5ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBwcmVzc2VkIHN0YXRlIGZvciBidXR0b24tbGlrZSBjb250cm9scworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjA4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MjM5OTA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBwcmVzc2VkIHN0YXRlIGZvciBidXR0b25zLCBjaGVja2JveGVzLCBy
YWRpbyBidXR0b25zLCBzZWxlY3QKKyAgICAgICAgZWxlbWVudHMgYW5kIGRhdGUgaW5wdXRzLiBU
aGUgcHJlc3NlZCBzdGF0ZSBoYXMgYSA3NSUgb3BhY2l0eSBhcHBsaWVkCisgICAgICAgIHRvIHRo
ZSB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGNvbG9ycy4KKworICAgICAgICAqIGNzcy9odG1sLmNzczoK
KworICAgICAgICBFeHBsaWNpdGx5IHNldCB0aGUgZGVmYXVsdCBhY3RpdmUgc3R5bGUgb24gYnV0
dG9ucyB0byBlbnN1cmUgc3R5bGVzIGFyZQorICAgICAgICBhcmUgYWRqdXN0ZWQgd2hlbiB0aGUg
ZWxlbWVudCBpcyBwcmVzc2VkLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorCisgICAgICAgIFRo
ZSBzdHlsZSBhZGp1c3RtZW50IGlzIG9ubHkgcGVyZm9ybWVkIGlmIHRoZSAtd2Via2l0LWFwcGVh
cmFuY2UgcHJvcGVydHkKKyAgICAgICAgaXMgbm90IHNldCB0byBub25lLiBUaGlzIGVuc3VyZXMg
d2UgZG8gbm90IG92ZXJyaWRlIHRoZSBjb2xvcnMgZm9yCisgICAgICAgIGN1c3RvbSBzdHlsZWQg
Zm9ybSBjb250cm9scy4KKworICAgICAgICAoV2ViQ29yZTo6YWRqdXN0SW5wdXRFbGVtZW50QnV0
dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdE1lbnVM
aXN0QnV0dG9uU3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmFkanVzdEJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
SU9TOjpwYWludENoZWNrYm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpw
YWludFJhZGlvKToKKwogMjAyMS0wMy0xOCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gVXBkYXRlIHN0cmluZ3MgYW5kIGljb25zIGluIHRoZSBm
aWxlIHVwbG9hZCBwYW5lbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3Nz
IGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmluZGV4IDc5YmFjOTlhMDRhOTZkNjhlNzE0
MGNjNDg5Y2Q5N2EwMjNjNWI0NjUuLjk2ZjczNjZkNzlmZTE2OGI2NzE2ZDk2OTZmODYwMjdlNmE0
Zjc2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTg1Niw5ICs4NTYsMTcgQEAgaW5wdXQ6bWF0Y2hl
cyhbdHlwZT0iYnV0dG9uIl0sIFt0eXBlPSJzdWJtaXQiXSwgW3R5cGU9InJlc2V0Il0pLCBpbnB1
dFt0eXBlPSJmaWwKICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogfQogCitpbnB1dDptYXRj
aGVzKFt0eXBlPSJidXR0b24iXSwgW3R5cGU9InN1Ym1pdCJdLCBbdHlwZT0icmVzZXQiXSk6YWN0
aXZlLCBpbnB1dFt0eXBlPSJmaWxlIl06OmZpbGUtc2VsZWN0b3ItYnV0dG9uOmFjdGl2ZSwgYnV0
dG9uOmFjdGl2ZSB7CisjaWYgIShkZWZpbmVkKFdURl9QTEFURk9STV9JT1NfRkFNSUxZKSAmJiBX
VEZfUExBVEZPUk1fSU9TX0ZBTUlMWSkKKyAgICBjb2xvcjogQWN0aXZlQnV0dG9uVGV4dDsKKyNl
bHNlCisgICAgY29sb3I6IC1hcHBsZS1zeXN0ZW0tYmx1ZTsKKyNlbmRpZgorfQorCiAjaWYgZGVm
aW5lZChXVEZfUExBVEZPUk1fSU9TX0ZBTUlMWSkgJiYgV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkK
IAotaW5wdXRbdHlwZT0ic3VibWl0Il0geworaW5wdXRbdHlwZT0ic3VibWl0Il0sIGlucHV0W3R5
cGU9InN1Ym1pdCJdOmFjdGl2ZSB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogLWFwcGxlLXN5c3Rl
bS1ibHVlOwogICAgIGNvbG9yOiB3aGl0ZTsKICAgICBmb250LXdlaWdodDogYm9sZDsKQEAgLTg2
NiwxMCArODc0LDYgQEAgaW5wdXRbdHlwZT0ic3VibWl0Il0gewogCiAjZW5kaWYKIAotaW5wdXQ6
bWF0Y2hlcyhbdHlwZT0iYnV0dG9uIl0sIFt0eXBlPSJzdWJtaXQiXSwgW3R5cGU9InJlc2V0Il0p
OmFjdGl2ZSwgaW5wdXRbdHlwZT0iZmlsZSJdOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbjphY3RpdmUs
IGJ1dHRvbjphY3RpdmUgewotICAgIGNvbG9yOiBBY3RpdmVCdXR0b25UZXh0OwotfQotCiBpbnB1
dFt0eXBlPSJyYW5nZSJdIHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHNsaWRlci1ob3Jpem9u
dGFsOwogICAgIHBhZGRpbmc6IGluaXRpYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5oCmluZGV4IDg5MmVkM2Q3ZTE3MDhmYzE5OWRjMTc1OGE1MjU5ODNmZDE4OGJk
ZTAuLjY4Y2FmYWU2N2I4OTI1ZjY2MDAwZjQ5M2NjYzYzNGNmMWU5ZjQ1YWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xODYsNiArMTg2LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIHBhaW50TWVudUxpc3RCdXR0b25EZWNvcmF0aW9uc1dpdGhGb3JtQ29u
dHJvbFJlZnJlc2goY29uc3QgUmVuZGVyQm94JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxv
YXRSZWN0Jik7CiAjZW5kaWYKIAorICAgIHZvaWQgYWRqdXN0UHJlc3NlZFN0eWxlKFJlbmRlclN0
eWxlJiwgY29uc3QgRWxlbWVudCYpIGNvbnN0OworCiAgICAgRmxvYXRSZWN0IGFkZFJvdW5kZWRC
b3JkZXJDbGlwKGNvbnN0IFJlbmRlck9iamVjdCYgYm94LCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBJbnRSZWN0Jik7CiAKICAgICBDb2xvciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlELCBPcHRpb25T
ZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4pIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDkzOTk4NzQ1OGI0MThjMjA0ZmE5NDZh
OTQwZGEyODc2MzlkMGNlMmUuLmE1MTUxYzI0MTA4ZmM4MDVjYzgzZDYwZDk5MWM2N2Q5MjA0MTcw
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTY5
Niw2ICs2OTYsOCBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RNZW51TGlzdEJ1dHRvblN0
eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudAogICAgIGlmICghZWxlbWVudCkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgYWRqdXN0UHJlc3NlZFN0eWxlKHN0eWxlLCAqZWxlbWVu
dCk7CisKICAgICAvLyBFbmZvcmNlIHNvbWUgZGVmYXVsdCBzdHlsZXMgaW4gdGhlIGNhc2UgdGhh
dCB0aGlzIGlzIGEgbm9uLW11bHRpcGxlIDxzZWxlY3Q+IGVsZW1lbnQsCiAgICAgLy8gb3IgYSBk
YXRlIGlucHV0LiBXZSBkb24ndCBmb3JjZSB0aGVzZSBpZiB0aGlzIGlzIGp1c3QgYW4gZWxlbWVu
dCB3aXRoCiAgICAgLy8gIi13ZWJraXQtYXBwZWFyYW5jZTogbWVudWxpc3QtYnV0dG9uIi4KQEAg
LTEwODQsNiArMTA4NiwyNCBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjpwYWludFNlYXJjaEZpZWxk
RGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIGNvbnN0CiAgICAgcGFpbnRUZXh0
RmllbGREZWNvcmF0aW9ucyhib3gsIHBhaW50SW5mbywgcmVjdCk7CiB9CiAKKy8vIFRoaXMgdmFs
dWUgbWF0Y2hlcyB0aGUgb3BhY2l0eSBhcHBsaWVkIHRvIFVJS2l0IGNvbnRyb2xzLgorY29uc3Rl
eHByIGF1dG8gcHJlc3NlZFN0YXRlT3BhY2l0eSA9IDAuNzVmOworCit2b2lkIFJlbmRlclRoZW1l
SU9TOjphZGp1c3RQcmVzc2VkU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50
JiBlbGVtZW50KSBjb25zdAoreworI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gp
CisgICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5zZXR0aW5ncygpLmlPU0Zvcm1Db250cm9sUmVm
cmVzaEVuYWJsZWQoKSAmJiBlbGVtZW50LmFjdGl2ZSgpICYmICFlbGVtZW50LmlzRGlzYWJsZWRG
b3JtQ29udHJvbCgpKSB7CisgICAgICAgIGF1dG8gdGV4dENvbG9yID0gc3R5bGUuY29sb3IoKTsK
KyAgICAgICAgaWYgKHRleHRDb2xvci5pc1ZhbGlkKCkpCisgICAgICAgICAgICBzdHlsZS5zZXRD
b2xvcih0ZXh0Q29sb3IuY29sb3JXaXRoQWxwaGFNdWx0aXBsaWVkQnkocHJlc3NlZFN0YXRlT3Bh
Y2l0eSkpOworCisgICAgICAgIGF1dG8gYmFja2dyb3VuZENvbG9yID0gc3R5bGUuYmFja2dyb3Vu
ZENvbG9yKCk7CisgICAgICAgIGlmIChiYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQorICAgICAg
ICAgICAgc3R5bGUuc2V0QmFja2dyb3VuZENvbG9yKGJhY2tncm91bmRDb2xvci5jb2xvcldpdGhB
bHBoYU11bHRpcGxpZWRCeShwcmVzc2VkU3RhdGVPcGFjaXR5KSk7CisgICAgfQorI2VuZGlmCit9
CisKIHZvaWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdEJ1dHRvblN0eWxlKFJlbmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgRWxlbWVudCogZWxlbWVudCkgY29uc3QKIHsKICAgICAvLyBJZiBubyBzaXpl
IGlzIHNwZWNpZmllZCwgZW5zdXJlIHRoZSBoZWlnaHQgb2YgdGhlIGJ1dHRvbiBtYXRjaGVzIENv
bnRyb2xCYXNlSGVpZ2h0IHNjYWxlZApAQCAtMTEwOCw2ICsxMTI4LDggQEAgdm9pZCBSZW5kZXJU
aGVtZUlPUzo6YWRqdXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVt
ZW50KiBlbGVtZW4KICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIGFk
anVzdFByZXNzZWRTdHlsZShzdHlsZSwgKmVsZW1lbnQpOworCiAgICAgUmVuZGVyQm94KiBib3gg
PSBlbGVtZW50LT5yZW5kZXJCb3goKTsKICAgICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuOwpA
QCAtMjA5MSw5ICsyMTEzLDEyIEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50Q2hlY2tib3go
Y29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIGNvbnN0IFBhaW50SW5mbyYgcGFpCiAgICAgYXV0byBj
aGVja2VkID0gaXNDaGVja2VkKGJveCk7CiAgICAgYXV0byBpbmRldGVybWluYXRlID0gaXNJbmRl
dGVybWluYXRlKGJveCk7CiAgICAgYXV0byBlbmFibGVkID0gaXNFbmFibGVkKGJveCk7CisgICAg
YXV0byBwcmVzc2VkID0gaXNQcmVzc2VkKGJveCk7CiAKICAgICBpZiAoY2hlY2tlZCB8fCBpbmRl
dGVybWluYXRlKSB7Ci0gICAgICAgIGlmIChlbmFibGVkKQorICAgICAgICBpZiAocHJlc3NlZCkK
KyAgICAgICAgICAgIGNvbnRleHQuZmlsbFJvdW5kZWRSZWN0KGNoZWNrYm94UmVjdCwgc3lzdGVt
Q29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUJsdWUsIHN0eWxlQ29sb3JPcHRpb25zKS5jb2xvcldp
dGhBbHBoYU11bHRpcGxpZWRCeShwcmVzc2VkU3RhdGVPcGFjaXR5KSk7CisgICAgICAgIGVsc2Ug
aWYgKGVuYWJsZWQpCiAgICAgICAgICAgICBjb250ZXh0LmZpbGxSb3VuZGVkUmVjdChjaGVja2Jv
eFJlY3QsIHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1CbHVlLCBzdHlsZUNvbG9yT3B0
aW9ucykpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb250ZXh0LmZpbGxSb3VuZGVkUmVj
dChjaGVja2JveFJlY3QsIHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlG
aWxsRGlzYWJsZWQsIHN0eWxlQ29sb3JPcHRpb25zKSk7CkBAIC0yMTMwLDE0ICsyMTU1LDE4IEBA
IGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50Q2hlY2tib3goY29uc3QgUmVuZGVyT2JqZWN0JiBi
b3gsIGNvbnN0IFBhaW50SW5mbyYgcGFpCiAgICAgICAgICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0
KGluZGV0ZXJtaW5hdGVCYXJSZWN0LCBpbmRldGVybWluYXRlQmFyUm91bmRpbmdSYWRpaSk7CiAg
ICAgICAgIH0KIAotICAgICAgICBpZiAoZW5hYmxlZCkKKyAgICAgICAgaWYgKHByZXNzZWQpCisg
ICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxl
U3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zIHwgU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNl
RGFya0FwcGVhcmFuY2UpLmNvbG9yV2l0aEFscGhhTXVsdGlwbGllZEJ5KHByZXNzZWRTdGF0ZU9w
YWNpdHkpKTsKKyAgICAgICAgZWxzZSBpZiAoZW5hYmxlZCkKICAgICAgICAgICAgIGNvbnRleHQu
c2V0RmlsbENvbG9yKHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgc3R5bGVD
b2xvck9wdGlvbnMgfCBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSkpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihzeXN0ZW1Db2xv
cihDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgc3R5bGVDb2xvck9wdGlvbnMpKTsK
IAogICAgICAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IGlmIChlbmFibGVkKQorICAgICAgICBpZiAocHJlc3NlZCkKKyAgICAgICAgICAgIGNvbnRleHQu
ZmlsbFJvdW5kZWRSZWN0KGNoZWNrYm94UmVjdCwgc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5
c3RlbVNlY29uZGFyeUZpbGwsIHN0eWxlQ29sb3JPcHRpb25zKS5jb2xvcldpdGhBbHBoYU11bHRp
cGxpZWRCeShwcmVzc2VkU3RhdGVPcGFjaXR5KSk7CisgICAgICAgIGVsc2UgaWYgKGVuYWJsZWQp
CiAgICAgICAgICAgICBjb250ZXh0LmZpbGxSb3VuZGVkUmVjdChjaGVja2JveFJlY3QsIHN5c3Rl
bUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlGaWxsLCBzdHlsZUNvbG9yT3B0aW9u
cykpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb250ZXh0LmZpbGxSb3VuZGVkUmVjdChj
aGVja2JveFJlY3QsIHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlGaWxs
RGlzYWJsZWQsIHN0eWxlQ29sb3JPcHRpb25zKSk7CkBAIC0yMTU2LDkgKzIxODUsMTIgQEAgYm9v
bCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRSYWRpbyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29u
c3QgUGFpbnRJbmZvJiBwYWludEkKIAogICAgIGF1dG8gc3R5bGVDb2xvck9wdGlvbnMgPSBib3gu
c3R5bGVDb2xvck9wdGlvbnMoKTsKICAgICBhdXRvIGVuYWJsZWQgPSBpc0VuYWJsZWQoYm94KTsK
KyAgICBhdXRvIHByZXNzZWQgPSBpc1ByZXNzZWQoYm94KTsKIAogICAgIGlmIChpc0NoZWNrZWQo
Ym94KSkgewotICAgICAgICBpZiAoZW5hYmxlZCkKKyAgICAgICAgaWYgKHByZXNzZWQpCisgICAg
ICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lz
dGVtQmx1ZSwgc3R5bGVDb2xvck9wdGlvbnMpLmNvbG9yV2l0aEFscGhhTXVsdGlwbGllZEJ5KHBy
ZXNzZWRTdGF0ZU9wYWNpdHkpKTsKKyAgICAgICAgZWxzZSBpZiAoZW5hYmxlZCkKICAgICAgICAg
ICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1C
bHVlLCBzdHlsZUNvbG9yT3B0aW9ucykpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb250
ZXh0LnNldEZpbGxDb2xvcihzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5
RmlsbERpc2FibGVkLCBzdHlsZUNvbG9yT3B0aW9ucykpOwpAQCAtMjE3MywxNCArMjIwNSwxOCBA
QCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFJhZGlvKGNvbnN0IFJlbmRlck9iamVjdCYgYm94
LCBjb25zdCBQYWludEluZm8mIHBhaW50SQogICAgICAgICBpbm5lckNpcmNsZVJlY3QuaW5mbGF0
ZVgoLWlubmVyQ2lyY2xlUmVjdC53aWR0aCgpICogaW5uZXJJbnZlcnNlUmF0aW8pOwogICAgICAg
ICBpbm5lckNpcmNsZVJlY3QuaW5mbGF0ZVkoLWlubmVyQ2lyY2xlUmVjdC5oZWlnaHQoKSAqIGlu
bmVySW52ZXJzZVJhdGlvKTsKIAotICAgICAgICBpZiAoZW5hYmxlZCkKKyAgICAgICAgaWYgKHBy
ZXNzZWQpCisgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihzeXN0ZW1Db2xvcihDU1NW
YWx1ZUFwcGxlU3lzdGVtTGFiZWwsIHN0eWxlQ29sb3JPcHRpb25zIHwgU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpLmNvbG9yV2l0aEFscGhhTXVsdGlwbGllZEJ5KHByZXNz
ZWRTdGF0ZU9wYWNpdHkpKTsKKyAgICAgICAgZWxzZSBpZiAoZW5hYmxlZCkKICAgICAgICAgICAg
IGNvbnRleHQuc2V0RmlsbENvbG9yKHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJl
bCwgc3R5bGVDb2xvck9wdGlvbnMgfCBTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihz
eXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgc3R5bGVDb2xvck9w
dGlvbnMpKTsKIAogICAgICAgICBjb250ZXh0LmZpbGxFbGxpcHNlKGlubmVyQ2lyY2xlUmVjdCk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGVuYWJsZWQpCisgICAgICAgIGlmIChwcmVzc2Vk
KQorICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3Ioc3lzdGVtQ29sb3IoQ1NTVmFsdWVB
cHBsZVN5c3RlbVNlY29uZGFyeUZpbGwsIHN0eWxlQ29sb3JPcHRpb25zKS5jb2xvcldpdGhBbHBo
YU11bHRpcGxpZWRCeShwcmVzc2VkU3RhdGVPcGFjaXR5KSk7CisgICAgICAgIGVsc2UgaWYgKGVu
YWJsZWQpCiAgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihzeXN0ZW1Db2xvcihDU1NW
YWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5RmlsbCwgc3R5bGVDb2xvck9wdGlvbnMpKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3Ioc3lzdGVtQ29sb3IoQ1NT
VmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUZpbGxEaXNhYmxlZCwgc3R5bGVDb2xvck9wdGlvbnMp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423759</attachid>
            <date>2021-03-19 12:26:59 -0700</date>
            <delta_ts>2021-03-23 11:32:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223208-20210319152658.patch</filename>
            <type>text/plain</type>
            <size>15918</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzM2YTBiNDlhYzBlY2Mz
YTgzMWQ4ZWNmMTkwMjNjMmQyODI3MTkzZC4uNjg2NWYwNWQ1MTgxZGE2NzY3ODVjODBhMTE0MGYx
NzAyMWVlNTA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTAzLTE5ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBwcmVzc2VkIHN0YXRlIGZvciBidXR0b24tbGlrZSBjb250cm9scworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMjA4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MjM5OTA4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBwcmVzc2VkIHN0YXRlIGZvciBidXR0b25zLCBjaGVja2JveGVzLCBy
YWRpbyBidXR0b25zLCBzZWxlY3QKKyAgICAgICAgZWxlbWVudHMgYW5kIGRhdGUgaW5wdXRzLiBU
aGUgcHJlc3NlZCBzdGF0ZSBoYXMgYSA3NSUgb3BhY2l0eSBhcHBsaWVkCisgICAgICAgIHRvIHRo
ZSB0ZXh0IGFuZCBiYWNrZ3JvdW5kIGNvbG9ycy4KKworICAgICAgICAqIGNzcy9odG1sLmNzczoK
KworICAgICAgICBFeHBsaWNpdGx5IHNldCB0aGUgZGVmYXVsdCBhY3RpdmUgc3R5bGUgb24gYnV0
dG9ucyB0byBlbnN1cmUgc3R5bGVzIGFyZQorICAgICAgICBhcmUgYWRqdXN0ZWQgd2hlbiB0aGUg
ZWxlbWVudCBpcyBwcmVzc2VkLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorCisgICAgICAgIFRo
ZSBzdHlsZSBhZGp1c3RtZW50IGlzIG9ubHkgcGVyZm9ybWVkIGlmIHRoZSAtd2Via2l0LWFwcGVh
cmFuY2UgcHJvcGVydHkKKyAgICAgICAgaXMgbm90IHNldCB0byBub25lLiBUaGlzIGVuc3VyZXMg
d2UgZG8gbm90IG92ZXJyaWRlIHRoZSBjb2xvcnMgZm9yCisgICAgICAgIGN1c3RvbSBzdHlsZWQg
Zm9ybSBjb250cm9scy4KKworICAgICAgICAoV2ViQ29yZTo6YWRqdXN0SW5wdXRFbGVtZW50QnV0
dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmFkanVzdE1lbnVM
aXN0QnV0dG9uU3R5bGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6
OmFkanVzdEJ1dHRvblN0eWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
SU9TOjpjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKToKKworICAgICAgICBGYWN0b3JlZCBv
dXQgdGhlIGJhY2tncm91bmQgY29sb3IgZGV0ZXJtaW5hdGlvbiBmb3IgY2hlY2tib3hlcyBhbmQK
KyAgICAgICAgcmFkaW8gYnV0dG9ucyBpbnRvIGEgY29tbW9uIG1ldGhvZC4KKworICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmNoZWNrYm94UmFkaW9JbmRpY2F0b3JDb2xvcik6CisK
KyAgICAgICAgRmFjdG9yZWQgb3V0IHRoZSBpbmRpY2F0b3IgY29sb3IgZGV0ZXJtaW5hdGlvbiBm
b3IgY2hlY2tib3hlcyBhbmQKKyAgICAgICAgcmFkaW8gYnV0dG9ucyBpbnRvIGEgY29tbW9uIG1l
dGhvZC4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OnBhaW50Q2hlY2tib3gp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OnBhaW50UmFkaW8pOgorCiAyMDIx
LTAzLTE4ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
aU9TXSBVcGRhdGUgc3RyaW5ncyBhbmQgaWNvbnMgaW4gdGhlIGZpbGUgdXBsb2FkIHBhbmVsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvaHRtbC5jc3MKaW5kZXggNzliYWM5OWEwNGE5NmQ2OGU3MTQwY2M0ODljZDk3YTAyM2M1YjQ2
NS4uOTZmNzM2NmQ3OWZlMTY4YjY3MTZkOTY5NmY4NjAyN2U2YTRmNzY3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1s
LmNzcwpAQCAtODU2LDkgKzg1NiwxNyBAQCBpbnB1dDptYXRjaGVzKFt0eXBlPSJidXR0b24iXSwg
W3R5cGU9InN1Ym1pdCJdLCBbdHlwZT0icmVzZXQiXSksIGlucHV0W3R5cGU9ImZpbAogICAgIGJv
eC1zaXppbmc6IGJvcmRlci1ib3g7CiB9CiAKK2lucHV0Om1hdGNoZXMoW3R5cGU9ImJ1dHRvbiJd
LCBbdHlwZT0ic3VibWl0Il0sIFt0eXBlPSJyZXNldCJdKTphY3RpdmUsIGlucHV0W3R5cGU9ImZp
bGUiXTo6ZmlsZS1zZWxlY3Rvci1idXR0b246YWN0aXZlLCBidXR0b246YWN0aXZlIHsKKyNpZiAh
KGRlZmluZWQoV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkpICYmIFdURl9QTEFURk9STV9JT1NfRkFN
SUxZKQorICAgIGNvbG9yOiBBY3RpdmVCdXR0b25UZXh0OworI2Vsc2UKKyAgICBjb2xvcjogLWFw
cGxlLXN5c3RlbS1ibHVlOworI2VuZGlmCit9CisKICNpZiBkZWZpbmVkKFdURl9QTEFURk9STV9J
T1NfRkFNSUxZKSAmJiBXVEZfUExBVEZPUk1fSU9TX0ZBTUlMWQogCi1pbnB1dFt0eXBlPSJzdWJt
aXQiXSB7CitpbnB1dFt0eXBlPSJzdWJtaXQiXSwgaW5wdXRbdHlwZT0ic3VibWl0Il06YWN0aXZl
IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAtYXBwbGUtc3lzdGVtLWJsdWU7CiAgICAgY29sb3I6
IHdoaXRlOwogICAgIGZvbnQtd2VpZ2h0OiBib2xkOwpAQCAtODY2LDEwICs4NzQsNiBAQCBpbnB1
dFt0eXBlPSJzdWJtaXQiXSB7CiAKICNlbmRpZgogCi1pbnB1dDptYXRjaGVzKFt0eXBlPSJidXR0
b24iXSwgW3R5cGU9InN1Ym1pdCJdLCBbdHlwZT0icmVzZXQiXSk6YWN0aXZlLCBpbnB1dFt0eXBl
PSJmaWxlIl06OmZpbGUtc2VsZWN0b3ItYnV0dG9uOmFjdGl2ZSwgYnV0dG9uOmFjdGl2ZSB7Ci0g
ICAgY29sb3I6IEFjdGl2ZUJ1dHRvblRleHQ7Ci19Ci0KIGlucHV0W3R5cGU9InJhbmdlIl0gewog
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogc2xpZGVyLWhvcml6b250YWw7CiAgICAgcGFkZGluZzog
aW5pdGlhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKaW5kZXgg
ODkyZWQzZDdlMTcwOGZjMTk5ZGMxNzU4YTUyNTk4M2ZkMTg4YmRlMC4uMzA0MDg3YWFhZTAzOTUz
MTk2NjZhMzUyOWY4NmY1NWQwOWI4OWYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmgKQEAgLTExNCw2ICsxMTQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFp
bnRTZWFyY2hGaWVsZERlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShJT1NfRk9STV9D
T05UUk9MX1JFRlJFU0gpCisgICAgQ29sb3IgY2hlY2tib3hSYWRpb0JhY2tncm91bmRDb2xvcihD
b250cm9sU3RhdGVzOjpTdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPik7Cisg
ICAgQ29sb3IgY2hlY2tib3hSYWRpb0luZGljYXRvckNvbG9yKENvbnRyb2xTdGF0ZXM6OlN0YXRl
cywgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+KTsKKwogICAgIGJvb2wgcGFpbnRDaGVj
a2JveChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKICAgICBib29sIHBhaW50UmFkaW8oY29uc3QgUmVuZGVyT2JqZWN0Jiwg
Y29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAKQEAgLTE4Niw2
ICsxODksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRNZW51TGlzdEJ1dHRvbkRlY29yYXRp
b25zV2l0aEZvcm1Db250cm9sUmVmcmVzaChjb25zdCBSZW5kZXJCb3gmLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBGbG9hdFJlY3QmKTsKICNlbmRpZgogCisgICAgdm9pZCBhZGp1c3RQcmVzc2Vk
U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50JikgY29uc3Q7CisKICAgICBGbG9hdFJl
Y3QgYWRkUm91bmRlZEJvcmRlckNsaXAoY29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEludFJlY3QmKTsKIAogICAgIENvbG9yIHN5c3RlbUNvbG9yKENTU1Zh
bHVlSUQsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPikgY29uc3Qgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggOTM5OTg3NDU4
YjQxOGMyMDRmYTk0NmE5NDBkYTI4NzYzOWQwY2UyZS4uNTc4NDJmNzVmN2YzMGVhZTYyNWVjMjkz
OTNmOGI4MzUzMmU4ZTVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbQpAQCAtNjk2LDYgKzY5Niw4IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdE1l
bnVMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50CiAgICAg
aWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm47CiAKKyAgICBhZGp1c3RQcmVzc2VkU3R5bGUo
c3R5bGUsICplbGVtZW50KTsKKwogICAgIC8vIEVuZm9yY2Ugc29tZSBkZWZhdWx0IHN0eWxlcyBp
biB0aGUgY2FzZSB0aGF0IHRoaXMgaXMgYSBub24tbXVsdGlwbGUgPHNlbGVjdD4gZWxlbWVudCwK
ICAgICAvLyBvciBhIGRhdGUgaW5wdXQuIFdlIGRvbid0IGZvcmNlIHRoZXNlIGlmIHRoaXMgaXMg
anVzdCBhbiBlbGVtZW50IHdpdGgKICAgICAvLyAiLXdlYmtpdC1hcHBlYXJhbmNlOiBtZW51bGlz
dC1idXR0b24iLgpAQCAtMTA4NCw2ICsxMDg2LDI0IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnBh
aW50U2VhcmNoRmllbGREZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QK
ICAgICBwYWludFRleHRGaWVsZERlY29yYXRpb25zKGJveCwgcGFpbnRJbmZvLCByZWN0KTsKIH0K
IAorLy8gVGhpcyB2YWx1ZSBtYXRjaGVzIHRoZSBvcGFjaXR5IGFwcGxpZWQgdG8gVUlLaXQgY29u
dHJvbHMuCitjb25zdGV4cHIgYXV0byBwcmVzc2VkU3RhdGVPcGFjaXR5ID0gMC43NWY7CisKK3Zv
aWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdFByZXNzZWRTdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUs
IGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7CisjaWYgRU5BQkxFKElPU19GT1JNX0NP
TlRST0xfUkVGUkVTSCkKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLnNldHRpbmdzKCkuaU9T
Rm9ybUNvbnRyb2xSZWZyZXNoRW5hYmxlZCgpICYmIGVsZW1lbnQuYWN0aXZlKCkgJiYgIWVsZW1l
bnQuaXNEaXNhYmxlZEZvcm1Db250cm9sKCkpIHsKKyAgICAgICAgYXV0byB0ZXh0Q29sb3IgPSBz
dHlsZS5jb2xvcigpOworICAgICAgICBpZiAodGV4dENvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAg
ICAgIHN0eWxlLnNldENvbG9yKHRleHRDb2xvci5jb2xvcldpdGhBbHBoYU11bHRpcGxpZWRCeShw
cmVzc2VkU3RhdGVPcGFjaXR5KSk7CisKKyAgICAgICAgYXV0byBiYWNrZ3JvdW5kQ29sb3IgPSBz
dHlsZS5iYWNrZ3JvdW5kQ29sb3IoKTsKKyAgICAgICAgaWYgKGJhY2tncm91bmRDb2xvci5pc1Zh
bGlkKCkpCisgICAgICAgICAgICBzdHlsZS5zZXRCYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3VuZENv
bG9yLmNvbG9yV2l0aEFscGhhTXVsdGlwbGllZEJ5KHByZXNzZWRTdGF0ZU9wYWNpdHkpKTsKKyAg
ICB9CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJUaGVtZUlPUzo6YWRqdXN0QnV0dG9uU3R5bGUo
UmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAogewogICAg
IC8vIElmIG5vIHNpemUgaXMgc3BlY2lmaWVkLCBlbnN1cmUgdGhlIGhlaWdodCBvZiB0aGUgYnV0
dG9uIG1hdGNoZXMgQ29udHJvbEJhc2VIZWlnaHQgc2NhbGVkCkBAIC0xMTA4LDYgKzExMjgsOCBA
QCB2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RCdXR0b25TdHlsZShSZW5kZXJTdHlsZSYgc3R5
bGUsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbgogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0
dXJuOwogCisgICAgYWRqdXN0UHJlc3NlZFN0eWxlKHN0eWxlLCAqZWxlbWVudCk7CisKICAgICBS
ZW5kZXJCb3gqIGJveCA9IGVsZW1lbnQtPnJlbmRlckJveCgpOwogICAgIGlmICghYm94KQogICAg
ICAgICByZXR1cm47CkBAIC0yMDczLDYgKzIwOTUsMzUgQEAgdm9pZCBSZW5kZXJUaGVtZUlPUzo6
cGFpbnRTeXN0ZW1QcmV2aWV3QmFkZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBQYWludEluZm8mIHBh
aW4KIAogI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCiAKK0NvbG9yIFJlbmRl
clRoZW1lSU9TOjpjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9yKENvbnRyb2xTdGF0ZXM6OlN0
YXRlcyBzdGF0ZXMsIE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBzdHlsZUNvbG9yT3B0
aW9ucykKK3sKKyAgICBpZiAoIShzdGF0ZXMgJiBDb250cm9sU3RhdGVzOjpFbmFibGVkU3RhdGUp
KQorICAgICAgICByZXR1cm4gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFy
eUZpbGxEaXNhYmxlZCwgc3R5bGVDb2xvck9wdGlvbnMpOworCisgICAgQ29sb3IgZW5hYmxlZEJh
Y2tncm91bmRDb2xvcjsKKyAgICBpZiAoc3RhdGVzICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0
YXRlIHx8IHN0YXRlcyAmIENvbnRyb2xTdGF0ZXM6OkluZGV0ZXJtaW5hdGVTdGF0ZSkKKyAgICAg
ICAgZW5hYmxlZEJhY2tncm91bmRDb2xvciA9IHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0
ZW1CbHVlLCBzdHlsZUNvbG9yT3B0aW9ucyk7CisgICAgZWxzZQorICAgICAgICBlbmFibGVkQmFj
a2dyb3VuZENvbG9yID0gc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUZp
bGwsIHN0eWxlQ29sb3JPcHRpb25zKTsKKworICAgIGlmIChzdGF0ZXMgJiBDb250cm9sU3RhdGVz
OjpQcmVzc2VkU3RhdGUpCisgICAgICAgIHJldHVybiBlbmFibGVkQmFja2dyb3VuZENvbG9yLmNv
bG9yV2l0aEFscGhhTXVsdGlwbGllZEJ5KHByZXNzZWRTdGF0ZU9wYWNpdHkpOworCisgICAgcmV0
dXJuIGVuYWJsZWRCYWNrZ3JvdW5kQ29sb3I7Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lSU9TOjpj
aGVja2JveFJhZGlvSW5kaWNhdG9yQ29sb3IoQ29udHJvbFN0YXRlczo6U3RhdGVzIHN0YXRlcywg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IHN0eWxlQ29sb3JPcHRpb25zKQoreworICAg
IGlmICghKHN0YXRlcyAmIENvbnRyb2xTdGF0ZXM6OkVuYWJsZWRTdGF0ZSkpCisgICAgICAgIHJl
dHVybiBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgc3R5bGVD
b2xvck9wdGlvbnMpOworCisgICAgQ29sb3IgZW5hYmxlZEluZGljYXRvckNvbG9yID0gc3lzdGVt
Q29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucyB8IFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKKyAgICBpZiAoc3RhdGVzICYgQ29u
dHJvbFN0YXRlczo6UHJlc3NlZFN0YXRlKQorICAgICAgICByZXR1cm4gZW5hYmxlZEluZGljYXRv
ckNvbG9yLmNvbG9yV2l0aEFscGhhTXVsdGlwbGllZEJ5KHByZXNzZWRTdGF0ZU9wYWNpdHkpOwor
CisgICAgcmV0dXJuIGVuYWJsZWRJbmRpY2F0b3JDb2xvcjsKK30KKwogYm9vbCBSZW5kZXJUaGVt
ZUlPUzo6cGFpbnRDaGVja2JveChjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIWJveC5z
ZXR0aW5ncygpLmlPU0Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQoKSkKQEAgLTIwODEsNjggKzIx
MzIsNTcgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFpbnRDaGVja2JveChjb25zdCBSZW5kZXJP
YmplY3QmIGJveCwgY29uc3QgUGFpbnRJbmZvJiBwYWkKICAgICBhdXRvJiBjb250ZXh0ID0gcGFp
bnRJbmZvLmNvbnRleHQoKTsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2
ZXIgeyBjb250ZXh0IH07CiAKLSAgICBhdXRvIHN0eWxlQ29sb3JPcHRpb25zID0gYm94LnN0eWxl
Q29sb3JPcHRpb25zKCk7Ci0KICAgICBjb25zdGV4cHIgYXV0byBjaGVja2JveEhlaWdodCA9IDE2
LjBmOwogICAgIGNvbnN0ZXhwciBhdXRvIGNoZWNrYm94Q29ybmVyUmFkaXVzID0gNS4wZjsKIAog
ICAgIEZsb2F0Um91bmRlZFJlY3QgY2hlY2tib3hSZWN0KHJlY3QsIEZsb2F0Um91bmRlZFJlY3Q6
OlJhZGlpKGNoZWNrYm94Q29ybmVyUmFkaXVzICogcmVjdC5oZWlnaHQoKSAvIGNoZWNrYm94SGVp
Z2h0KSk7CiAKLSAgICBhdXRvIGNoZWNrZWQgPSBpc0NoZWNrZWQoYm94KTsKLSAgICBhdXRvIGlu
ZGV0ZXJtaW5hdGUgPSBpc0luZGV0ZXJtaW5hdGUoYm94KTsKLSAgICBhdXRvIGVuYWJsZWQgPSBp
c0VuYWJsZWQoYm94KTsKKyAgICBhdXRvIGNvbnRyb2xTdGF0ZXMgPSBleHRyYWN0Q29udHJvbFN0
YXRlc0ZvclJlbmRlcmVyKGJveCk7CisgICAgYXV0byBzdHlsZUNvbG9yT3B0aW9ucyA9IGJveC5z
dHlsZUNvbG9yT3B0aW9ucygpOwogCi0gICAgaWYgKGNoZWNrZWQgfHwgaW5kZXRlcm1pbmF0ZSkg
ewotICAgICAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgICAgIGNvbnRleHQuZmlsbFJvdW5kZWRS
ZWN0KGNoZWNrYm94UmVjdCwgc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUJsdWUsIHN0
eWxlQ29sb3JPcHRpb25zKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnRleHQuZmls
bFJvdW5kZWRSZWN0KGNoZWNrYm94UmVjdCwgc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3Rl
bVNlY29uZGFyeUZpbGxEaXNhYmxlZCwgc3R5bGVDb2xvck9wdGlvbnMpKTsKKyAgICBjb250ZXh0
LmZpbGxSb3VuZGVkUmVjdChjaGVja2JveFJlY3QsIGNoZWNrYm94UmFkaW9CYWNrZ3JvdW5kQ29s
b3IoY29udHJvbFN0YXRlcywgc3R5bGVDb2xvck9wdGlvbnMpKTsKIAotICAgICAgICBQYXRoIHBh
dGg7Ci0gICAgICAgIGlmIChjaGVja2VkKSB7Ci0gICAgICAgICAgICBwYXRoLm1vdmVUbyh7IDI4
LjE3NGYsIDY4LjY1MmYgfSk7Ci0gICAgICAgICAgICBwYXRoLmFkZEJlemllckN1cnZlVG8oeyAz
MS4wMDZmLCA2OC42NTJmIH0sIHsgMzMuMTU0ZiwgNjcuNTc4ZiB9LCB7IDM0LjY2OGYsIDY1LjMz
MmYgfSk7Ci0gICAgICAgICAgICBwYXRoLmFkZExpbmVUbyh7IDcwLjAyZiwgMTEuMjhmIH0pOwot
ICAgICAgICAgICAgcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKHsgNzEuMDk0ZiwgOS42MmYgfSwgeyA3
MS41ODJmLCA4LjEwN2YgfSwgeyA3MS41ODJmLCA2LjY0MmYgfSk7Ci0gICAgICAgICAgICBwYXRo
LmFkZEJlemllckN1cnZlVG8oeyA3MS41ODJmLCAyLjc4NGYgfSwgeyA2OC42NTJmLCAwLjAwMWYg
fSwgeyA2NC42OTdmLCAwLjAwMWYgfSk7Ci0gICAgICAgICAgICBwYXRoLmFkZEJlemllckN1cnZl
VG8oeyA2Mi4wMTJmLCAwLjAwMWYgfSwgeyA2MC4zNTJmLCAwLjk3OGYgfSwgeyA1OC42OTFmLCAz
LjU2NWYgfSk7Ci0gICAgICAgICAgICBwYXRoLmFkZExpbmVUbyh7IDI4LjAyN2YsIDUyLjFmIH0p
OwotICAgICAgICAgICAgcGF0aC5hZGRMaW5lVG8oeyAxMi4zNTRmLCAzMi41MmYgfSk7Ci0gICAg
ICAgICAgICBwYXRoLmFkZEJlemllckN1cnZlVG8oeyAxMC44NGYsIDMwLjY2NGYgfSwgeyA5LjE4
ZiwgMjkuODM0ZiB9LCB7IDYuODg0ZiwgMjkuODM0ZiB9KTsKLSAgICAgICAgICAgIHBhdGguYWRk
QmV6aWVyQ3VydmVUbyh7IDIuODgyZiwgMjkuODM0ZiB9LCB7IDAuMGYsIDMyLjY2NmYgfSwgeyAw
LjBmLCAzNi41NzJmIH0pOwotICAgICAgICAgICAgcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKHsgMC4w
ZiwgMzguMjgyZiB9LCB7IDAuNTM3ZiwgMzkuNzk1ZiB9LCB7IDIuMDAyZiwgNDEuNTA0ZiB9KTsK
LSAgICAgICAgICAgIHBhdGguYWRkTGluZVRvKHsgMjEuODI2ZiwgNjUuNjI1ZiB9KTsKLSAgICAg
ICAgICAgIHBhdGguYWRkQmV6aWVyQ3VydmVUbyh7IDIzLjUzNmYsIDY3LjY3NWYgfSwgeyAyNS41
MzZmLCA2OC42NTJmIH0sIHsgMjguMTc0ZiwgNjguNjUyZiB9KTsKLQotICAgICAgICAgICAgY29u
c3QgRmxvYXRTaXplIGNoZWNrbWFya1NpemUoNzIuMGYsIDY5LjBmKTsKLSAgICAgICAgICAgIGZs
b2F0IHNjYWxlID0gKDAuNjVmICogcmVjdC53aWR0aCgpKSAvIGNoZWNrbWFya1NpemUud2lkdGgo
KTsKLQotICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybTsKLSAgICAgICAgICAg
IHRyYW5zZm9ybS50cmFuc2xhdGUocmVjdC5jZW50ZXIoKSAtIChjaGVja21hcmtTaXplICogc2Nh
bGUgKiAwLjVmKSk7Ci0gICAgICAgICAgICB0cmFuc2Zvcm0uc2NhbGUoc2NhbGUpOwotICAgICAg
ICAgICAgcGF0aC50cmFuc2Zvcm0odHJhbnNmb3JtKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIGNvbnN0IEZsb2F0U2l6ZSBpbmRldGVybWluYXRlQmFyUm91bmRpbmdSYWRpaSgxLjI1
ZiwgMS4yNWYpOwotICAgICAgICAgICAgY29uc3RleHByIGZsb2F0IGluZGV0ZXJtaW5hdGVCYXJQ
YWRkaW5nID0gMi41ZjsKLSAgICAgICAgICAgIGZsb2F0IGhlaWdodCA9IDAuMTJmICogcmVjdC5o
ZWlnaHQoKTsKKyAgICBib29sIGNoZWNrZWQgPSBjb250cm9sU3RhdGVzICYgQ29udHJvbFN0YXRl
czo6Q2hlY2tlZFN0YXRlOworICAgIGJvb2wgaW5kZXRlcm1pbmF0ZSA9IGNvbnRyb2xTdGF0ZXMg
JiBDb250cm9sU3RhdGVzOjpJbmRldGVybWluYXRlU3RhdGU7CiAKLSAgICAgICAgICAgIEZsb2F0
UmVjdCBpbmRldGVybWluYXRlQmFyUmVjdChyZWN0LngoKSArIGluZGV0ZXJtaW5hdGVCYXJQYWRk
aW5nLCByZWN0LmNlbnRlcigpLnkoKSAtIGhlaWdodCAvIDIuMGYsIHJlY3Qud2lkdGgoKSAtIGlu
ZGV0ZXJtaW5hdGVCYXJQYWRkaW5nICogMiwgaGVpZ2h0KTsKLSAgICAgICAgICAgIHBhdGguYWRk
Um91bmRlZFJlY3QoaW5kZXRlcm1pbmF0ZUJhclJlY3QsIGluZGV0ZXJtaW5hdGVCYXJSb3VuZGlu
Z1JhZGlpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAg
Y29udGV4dC5zZXRGaWxsQ29sb3Ioc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVs
LCBzdHlsZUNvbG9yT3B0aW9ucyB8IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJh
bmNlKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHN5
c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUxhYmVsLCBzdHlsZUNvbG9yT3B0
aW9ucykpOworICAgIGlmICghY2hlY2tlZCAmJiAhaW5kZXRlcm1pbmF0ZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisgICAgUGF0aCBw
YXRoOworICAgIGlmIChjaGVja2VkKSB7CisgICAgICAgIHBhdGgubW92ZVRvKHsgMjguMTc0Ziwg
NjguNjUyZiB9KTsKKyAgICAgICAgcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKHsgMzEuMDA2ZiwgNjgu
NjUyZiB9LCB7IDMzLjE1NGYsIDY3LjU3OGYgfSwgeyAzNC42NjhmLCA2NS4zMzJmIH0pOworICAg
ICAgICBwYXRoLmFkZExpbmVUbyh7IDcwLjAyZiwgMTEuMjhmIH0pOworICAgICAgICBwYXRoLmFk
ZEJlemllckN1cnZlVG8oeyA3MS4wOTRmLCA5LjYyZiB9LCB7IDcxLjU4MmYsIDguMTA3ZiB9LCB7
IDcxLjU4MmYsIDYuNjQyZiB9KTsKKyAgICAgICAgcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKHsgNzEu
NTgyZiwgMi43ODRmIH0sIHsgNjguNjUyZiwgMC4wMDFmIH0sIHsgNjQuNjk3ZiwgMC4wMDFmIH0p
OworICAgICAgICBwYXRoLmFkZEJlemllckN1cnZlVG8oeyA2Mi4wMTJmLCAwLjAwMWYgfSwgeyA2
MC4zNTJmLCAwLjk3OGYgfSwgeyA1OC42OTFmLCAzLjU2NWYgfSk7CisgICAgICAgIHBhdGguYWRk
TGluZVRvKHsgMjguMDI3ZiwgNTIuMWYgfSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHsgMTIu
MzU0ZiwgMzIuNTJmIH0pOworICAgICAgICBwYXRoLmFkZEJlemllckN1cnZlVG8oeyAxMC44NGYs
IDMwLjY2NGYgfSwgeyA5LjE4ZiwgMjkuODM0ZiB9LCB7IDYuODg0ZiwgMjkuODM0ZiB9KTsKKyAg
ICAgICAgcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKHsgMi44ODJmLCAyOS44MzRmIH0sIHsgMC4wZiwg
MzIuNjY2ZiB9LCB7IDAuMGYsIDM2LjU3MmYgfSk7CisgICAgICAgIHBhdGguYWRkQmV6aWVyQ3Vy
dmVUbyh7IDAuMGYsIDM4LjI4MmYgfSwgeyAwLjUzN2YsIDM5Ljc5NWYgfSwgeyAyLjAwMmYsIDQx
LjUwNGYgfSk7CisgICAgICAgIHBhdGguYWRkTGluZVRvKHsgMjEuODI2ZiwgNjUuNjI1ZiB9KTsK
KyAgICAgICAgcGF0aC5hZGRCZXppZXJDdXJ2ZVRvKHsgMjMuNTM2ZiwgNjcuNjc1ZiB9LCB7IDI1
LjUzNmYsIDY4LjY1MmYgfSwgeyAyOC4xNzRmLCA2OC42NTJmIH0pOworCisgICAgICAgIGNvbnN0
IEZsb2F0U2l6ZSBjaGVja21hcmtTaXplKDcyLjBmLCA2OS4wZik7CisgICAgICAgIGZsb2F0IHNj
YWxlID0gKDAuNjVmICogcmVjdC53aWR0aCgpKSAvIGNoZWNrbWFya1NpemUud2lkdGgoKTsKKwor
ICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtOworICAgICAgICB0cmFuc2Zvcm0udHJh
bnNsYXRlKHJlY3QuY2VudGVyKCkgLSAoY2hlY2ttYXJrU2l6ZSAqIHNjYWxlICogMC41ZikpOwor
ICAgICAgICB0cmFuc2Zvcm0uc2NhbGUoc2NhbGUpOworICAgICAgICBwYXRoLnRyYW5zZm9ybSh0
cmFuc2Zvcm0pOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAg
ICAgY29udGV4dC5maWxsUm91bmRlZFJlY3QoY2hlY2tib3hSZWN0LCBzeXN0ZW1Db2xvcihDU1NW
YWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5RmlsbCwgc3R5bGVDb2xvck9wdGlvbnMpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgY29udGV4dC5maWxsUm91bmRlZFJlY3QoY2hlY2tib3hSZWN0
LCBzeXN0ZW1Db2xvcihDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5RmlsbERpc2FibGVkLCBz
dHlsZUNvbG9yT3B0aW9ucykpOworICAgICAgICBjb25zdCBGbG9hdFNpemUgaW5kZXRlcm1pbmF0
ZUJhclJvdW5kaW5nUmFkaWkoMS4yNWYsIDEuMjVmKTsKKyAgICAgICAgY29uc3RleHByIGZsb2F0
IGluZGV0ZXJtaW5hdGVCYXJQYWRkaW5nID0gMi41ZjsKKyAgICAgICAgZmxvYXQgaGVpZ2h0ID0g
MC4xMmYgKiByZWN0LmhlaWdodCgpOworCisgICAgICAgIEZsb2F0UmVjdCBpbmRldGVybWluYXRl
QmFyUmVjdChyZWN0LngoKSArIGluZGV0ZXJtaW5hdGVCYXJQYWRkaW5nLCByZWN0LmNlbnRlcigp
LnkoKSAtIGhlaWdodCAvIDIuMGYsIHJlY3Qud2lkdGgoKSAtIGluZGV0ZXJtaW5hdGVCYXJQYWRk
aW5nICogMiwgaGVpZ2h0KTsKKyAgICAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChpbmRldGVybWlu
YXRlQmFyUmVjdCwgaW5kZXRlcm1pbmF0ZUJhclJvdW5kaW5nUmFkaWkpOwogICAgIH0KIAorICAg
IGNvbnRleHQuc2V0RmlsbENvbG9yKGNoZWNrYm94UmFkaW9JbmRpY2F0b3JDb2xvcihjb250cm9s
U3RhdGVzLCBzdHlsZUNvbG9yT3B0aW9ucykpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7
CisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTIxNTQsMTcgKzIxOTQsMTMgQEAgYm9vbCBS
ZW5kZXJUaGVtZUlPUzo6cGFpbnRSYWRpbyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3Qg
UGFpbnRJbmZvJiBwYWludEkKICAgICBhdXRvJiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQo
KTsKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CiAK
KyAgICBhdXRvIGNvbnRyb2xTdGF0ZXMgPSBleHRyYWN0Q29udHJvbFN0YXRlc0ZvclJlbmRlcmVy
KGJveCk7CiAgICAgYXV0byBzdHlsZUNvbG9yT3B0aW9ucyA9IGJveC5zdHlsZUNvbG9yT3B0aW9u
cygpOwotICAgIGF1dG8gZW5hYmxlZCA9IGlzRW5hYmxlZChib3gpOwotCi0gICAgaWYgKGlzQ2hl
Y2tlZChib3gpKSB7Ci0gICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgY29udGV4dC5z
ZXRGaWxsQ29sb3Ioc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUJsdWUsIHN0eWxlQ29s
b3JPcHRpb25zKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENv
bG9yKHN5c3RlbUNvbG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlGaWxsRGlzYWJsZWQs
IHN0eWxlQ29sb3JPcHRpb25zKSk7CiAKLSAgICAgICAgY29udGV4dC5maWxsRWxsaXBzZShyZWN0
KTsKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihjaGVja2JveFJhZGlvQmFja2dyb3VuZENvbG9y
KGNvbnRyb2xTdGF0ZXMsIHN0eWxlQ29sb3JPcHRpb25zKSk7CisgICAgY29udGV4dC5maWxsRWxs
aXBzZShyZWN0KTsKIAorICAgIGlmIChjb250cm9sU3RhdGVzICYgQ29udHJvbFN0YXRlczo6Q2hl
Y2tlZFN0YXRlKSB7CiAgICAgICAgIC8vIFRoZSBpbm5lciBjaXJjbGUgaXMgNiAvIDE0IHRoZSBz
aXplIG9mIHRoZSBzdXJyb3VuZGluZyBjaXJjbGUsCiAgICAgICAgIC8vIGxlYXZpbmcgOCAvIDE0
IGFyb3VuZCBpdC4gKDggLyAxNCkgLyAyID0gMiAvIDcuCiAgICAgICAgIGNvbnN0ZXhwciBmbG9h
dCBpbm5lckludmVyc2VSYXRpbyA9IDIgLyA3LjBmOwpAQCAtMjE3MywxOSArMjIwOSw4IEBAIGJv
b2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50UmFkaW8oY29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJCiAgICAgICAgIGlubmVyQ2lyY2xlUmVjdC5pbmZsYXRlWCgt
aW5uZXJDaXJjbGVSZWN0LndpZHRoKCkgKiBpbm5lckludmVyc2VSYXRpbyk7CiAgICAgICAgIGlu
bmVyQ2lyY2xlUmVjdC5pbmZsYXRlWSgtaW5uZXJDaXJjbGVSZWN0LmhlaWdodCgpICogaW5uZXJJ
bnZlcnNlUmF0aW8pOwogCi0gICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgY29udGV4
dC5zZXRGaWxsQ29sb3Ioc3lzdGVtQ29sb3IoQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBzdHls
ZUNvbG9yT3B0aW9ucyB8IFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHN5c3RlbUNv
bG9yKENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUxhYmVsLCBzdHlsZUNvbG9yT3B0aW9ucykp
OwotCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNoZWNrYm94UmFkaW9JbmRpY2F0b3JD
b2xvcihjb250cm9sU3RhdGVzLCBzdHlsZUNvbG9yT3B0aW9ucykpOwogICAgICAgICBjb250ZXh0
LmZpbGxFbGxpcHNlKGlubmVyQ2lyY2xlUmVjdCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYg
KGVuYWJsZWQpCi0gICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihzeXN0ZW1Db2xvcihD
U1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5RmlsbCwgc3R5bGVDb2xvck9wdGlvbnMpKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3Ioc3lzdGVtQ29sb3Io
Q1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUZpbGxEaXNhYmxlZCwgc3R5bGVDb2xvck9wdGlv
bnMpKTsKLQotICAgICAgICBjb250ZXh0LmZpbGxFbGxpcHNlKHJlY3QpOwogICAgIH0KIAogICAg
IHJldHVybiBmYWxzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>