<?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>211993</bug_id>
          
          <creation_ts>2020-05-16 22:23:01 -0700</creation_ts>
          <short_desc>Fix operator== and hash() for ExtendedColor</short_desc>
          <delta_ts>2020-05-18 15:32:43 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1653392</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-16 22:23:01 -0700</bug_when>
    <thetext>Fix operator== and hash() for ExtendedColor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653393</commentid>
    <comment_count>1</comment_count>
      <attachid>399584</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-16 22:25:46 -0700</bug_when>
    <thetext>Created attachment 399584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653414</commentid>
    <comment_count>2</comment_count>
      <attachid>399593</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-17 09:32:39 -0700</bug_when>
    <thetext>Created attachment 399593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653417</commentid>
    <comment_count>3</comment_count>
      <attachid>399595</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-17 10:14:49 -0700</bug_when>
    <thetext>Created attachment 399595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653420</commentid>
    <comment_count>4</comment_count>
      <attachid>399595</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-05-17 10:40:50 -0700</bug_when>
    <thetext>Comment on attachment 399595
Patch

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

&gt; Source/WebCore/platform/graphics/Color.h:320
&gt; +// One or both may be extended.

s/may/must/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653429</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-17 12:28:37 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/261794/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653431</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-17 12:29:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/63319983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653720</commentid>
    <comment_count>7</comment_count>
      <attachid>399595</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-18 13:02:28 -0700</bug_when>
    <thetext>Comment on attachment 399595
Patch

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

&gt; Source/WebCore/platform/graphics/ExtendedColor.h:78
&gt; +    return a.colorSpace() == b.colorSpace() &amp;&amp; areEssentiallyEqual(a.channels(), b.channels());

How did you settle on &quot;essentially equal&quot; as the definition of ==, rather than something closer to floating point &quot;==&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653732</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-18 13:20:13 -0700</bug_when>
    <thetext>It seemed like the right thing to do? I didn&apos;t have any strong evidence to support either choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653745</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-18 13:33:43 -0700</bug_when>
    <thetext>I would suggest that &quot;==&quot; should be built on top of &quot;==&quot;, with no shift to &quot;essentially&quot; done beneath the covers.

In fact, reflecting on this I know it’s a problem for hashing! It‘s critical for hash functions that if two values compute as &quot;==&quot;, then they have the same hash. That seems to not be true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653780</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-18 15:32:43 -0700</bug_when>
    <thetext>Done in https://trac.webkit.org/changeset/261835/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399584</attachid>
            <date>2020-05-16 22:25:46 -0700</date>
            <delta_ts>2020-05-17 09:32:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211993-20200516222546.patch</filename>
            <type>text/plain</type>
            <size>11751</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM4NDFlYWUzZWRlYzAx
OTBkZGJkY2FkNGNjZmExNmM4N2Q3NmY2ZS4uNjU0M2M4YTUzNjk2ZWU0NGE3NmU2ODQ4NjJjOWI1
Y2I1YzhiZGUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA1LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBvcGVyYXRv
cj09IGFuZCBoYXNoKCkgZm9yIEV4dGVuZGVkQ29sb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbG9yOjpvcGVyYXRvcj09IGFuZCBoYXNoKCkgd2Vy
ZSB3cm9uZyBmb3IgZXh0ZW5kZWQgY29sb3IuIEZpeCBvcGVyYXRvcj09CisgICAgICAgIHRvIGNv
bXBhcmUgY29sb3IgY29tcG9uZW50cyBpZiBlaXRoZXIgb3IgYm90aCBjb2xvcnMgYXJlIGV4dGVu
ZGVkLCB0cmVhdGluZworICAgICAgICBhbiBzUkdCIEV4dGVuZGVkQ29sb3IgYXMgZXF1YWwgdG8g
YSBub3JtYWwgQ29sb3IgaWYgdGhlIHNSR0IgdmFsdWVzIG1hdGNoLgorCisgICAgICAgIEZpeCBo
YXNoKCkgdG8gaGFzaCB0aGUgY29sb3IgY29tcG9uZW50cyBhbmQgY29sb3JzcGFjZSBmb3IgRXh0
ZW5kZWRDb2xvci4KKworICAgICAgICBBZGQgc29tZSBBUEkgdGVzdHMgZm9yIHRoZXNlIGNvZGUg
cGF0aHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpleHRlbmRlZENvbG9yc0VxdWFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcjo6aGFzaCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXJlRXNzZW50aWFsbHlFcXVh
bCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09
KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorCiAyMDIwLTA1LTE2ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNvbWUgY29sb3ItcmVs
YXRlZCBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAK
aW5kZXggNmUzNTE5NWJkNTdhNzg1MjYzM2FjNDM1M2U4OTg3MTYxZmU2OTE1NS4uY2Y0ZjYzMGY3
ODZhNWRlMDZkZjRiMTlkMTdhODdlYzFiOTFkNDBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yLmNwcApAQCAtNTkzLDYgKzU5MywzNCBAQCBSR0JBMzIgcHJlbXVs
dGlwbGllZEFSR0JGcm9tQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIHJldHVybiBtYWtl
UHJlbXVsdGlwbGllZFJHQkEoY29sb3IucmVkKCksIGNvbG9yLmdyZWVuKCksIGNvbG9yLmJsdWUo
KSwgY29sb3IuYWxwaGEoKSk7CiB9CiAKK2Jvb2wgZXh0ZW5kZWRDb2xvcnNFcXVhbChjb25zdCBD
b2xvciYgYSwgY29uc3QgQ29sb3ImIGIpCit7CisgICAgaWYgKGEuaXNFeHRlbmRlZCgpICYmIGIu
aXNFeHRlbmRlZCgpKQorICAgICAgICByZXR1cm4gYS5hc0V4dGVuZGVkKCkgPT0gYi5hc0V4dGVu
ZGVkKCk7CisgICAgCisgICAgQVNTRVJUKGEuaXNFeHRlbmRlZCgpIHx8IGIuaXNFeHRlbmRlZCgp
KTsKKworICAgIEZsb2F0Q29tcG9uZW50cyBhU1JHQkNvbXBvbmVudHM7CisgICAgRmxvYXRDb21w
b25lbnRzIGJTUkdCQ29tcG9uZW50czsKKyAgICBpZiAoYS5pc0V4dGVuZGVkKCkpIHsKKyAgICAg
ICAgYXV0byYgZXh0ZW5kZWRDb2xvciA9IGEuYXNFeHRlbmRlZCgpOworICAgICAgICBpZiAoZXh0
ZW5kZWRDb2xvci5jb2xvclNwYWNlKCkgIT0gQ29sb3JTcGFjZTo6U1JHQikKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgYVNSR0JDb21wb25lbnRzID0gZXh0ZW5kZWRDb2xvci5j
aGFubmVscygpOworICAgIH0gZWxzZQorICAgICAgICBhU1JHQkNvbXBvbmVudHMgPSBhLnRvU1JH
QkFDb21wb25lbnRzTG9zc3koKTsKKworICAgIGlmIChiLmlzRXh0ZW5kZWQoKSkgeworICAgICAg
ICBhdXRvJiBleHRlbmRlZENvbG9yID0gYi5hc0V4dGVuZGVkKCk7CisgICAgICAgIGlmIChleHRl
bmRlZENvbG9yLmNvbG9yU3BhY2UoKSAhPSBDb2xvclNwYWNlOjpTUkdCKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBiU1JHQkNvbXBvbmVudHMgPSBleHRlbmRlZENvbG9yLmNo
YW5uZWxzKCk7CisgICAgfSBlbHNlCisgICAgICAgIGJTUkdCQ29tcG9uZW50cyA9IGIudG9TUkdC
QUNvbXBvbmVudHNMb3NzeSgpOworCisgICAgcmV0dXJuIGFTUkdCQ29tcG9uZW50cyA9PSBiU1JH
QkNvbXBvbmVudHM7Cit9CisKIENvbG9yIGJsZW5kKGNvbnN0IENvbG9yJiBmcm9tLCBjb25zdCBD
b2xvciYgdG8sIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFByZW11bHRpcGxpZWQpCiB7CiAg
ICAgLy8gRklYTUU6IEV4dGVuZGVkQ29sb3IgLSBuZWVkcyB0byBoYW5kbGUgY29sb3Igc3BhY2Vz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmgKaW5kZXggYWYxYWM2ZGQ5
MzFhZWU5YjRlZWI2ZWMxZTA0OTdjMTAzM2UxNjU2Mi4uYzhlYzg0Y2RjZDVjMGFkNTU3YTA4NDNh
ZDI3M2UyMDRkOTE5N2ZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xv
ci5oCkBAIC0yMDUsOSArMjA1LDcgQEAgcHVibGljOgogCiAgICAgUkdCQTMyIHJnYigpIGNvbnN0
OwogCi0gICAgLy8gRklYTUU6IExpa2Ugb3BlcmF0b3I9PSwgdGhpcyB3aWxsIGdpdmUgZGlmZmVy
ZW50IHZhbHVlcyBmb3IgRXh0ZW5kZWRDb2xvcnMgdGhhdAotICAgIC8vIHNob3VsZCBiZSBpZGVu
dGljYWwsIHNpbmNlIHRoZSByZXNwZWN0aXZlIHBvaW50ZXIgd2lsbCBiZSBkaWZmZXJlbnQuCi0g
ICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IHsgcmV0dXJuIFdURjo6aW50SGFzaChtX2NvbG9yRGF0
YS5yZ2JhQW5kRmxhZ3MpOyB9CisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0OwogCiAgICAgLy8g
RklYTUU6IEV4dGVuZGVkQ29sb3IgLSB0aGVzZSBzaG91bGQgYmUgcmVuYW1lZCAodG8gYmUgY2xl
YXIgYWJvdXQgdGhlaXIgcGFyYW1ldGVyIHR5cGVzLCBvcgogICAgIC8vIHJlcGxhY2VkIHdpdGgg
YWx0ZXJuYXRpdmUgYWNjZXNzb3JzLgpAQCAtMzEzLDEzICszMTEsMTMgQEAgcHJpdmF0ZToKICAg
ICB9IG1fY29sb3JEYXRhOwogfTsKIAotLy8gRklYTUU6IFRoZXNlIGRvIG5vdCB3b3JrIGZvciBF
eHRlbmRlZENvbG9yIGJlY2F1c2UKLS8vIHRoZXkgYmVjb21lIGp1c3QgcG9pbnRlciBjb21wYXJp
c29uLgogYm9vbCBvcGVyYXRvcj09KGNvbnN0IENvbG9yJiwgY29uc3QgQ29sb3ImKTsKIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBDb2xvciYsIGNvbnN0IENvbG9yJik7CiAKIENvbG9yIGNvbG9yRnJv
bVByZW11bHRpcGxpZWRBUkdCKFJHQkEzMik7CiBSR0JBMzIgcHJlbXVsdGlwbGllZEFSR0JGcm9t
Q29sb3IoY29uc3QgQ29sb3ImKTsKKy8vIE9uZSBvciBib3RoIG1heSBiZSBleHRlbmRlZC4KK1dF
QkNPUkVfRVhQT1JUIGJvb2wgZXh0ZW5kZWRDb2xvcnNFcXVhbChjb25zdCBDb2xvciYsIGNvbnN0
IENvbG9yJik7CiAKIENvbG9yIGJsZW5kKGNvbnN0IENvbG9yJiBmcm9tLCBjb25zdCBDb2xvciYg
dG8sIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFByZW11bHRpcGxpZWQgPSB0cnVlKTsKIApA
QCAtMzQ3LDYgKzM0NSw5IEBAIGlubGluZSBib29sIG9wZXJhdG9yIT0oU2ltcGxlQ29sb3IgYSwg
U2ltcGxlQ29sb3IgYikKIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb2xvciYgYSwg
Y29uc3QgQ29sb3ImIGIpCiB7CisgICAgaWYgKGEuaXNFeHRlbmRlZCgpIHx8IGIuaXNFeHRlbmRl
ZCgpKQorICAgICAgICByZXR1cm4gZXh0ZW5kZWRDb2xvcnNFcXVhbChhLCBiKTsKKwogICAgIHJl
dHVybiBhLm1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyA9PSBiLm1fY29sb3JEYXRhLnJnYmFBbmRG
bGFnczsKIH0KIApAQCAtMzYwLDYgKzM2MSwxNCBAQCBpbmxpbmUgYm9vbCBlcXVhbElnbm9yaW5n
U2VtYW50aWNDb2xvcihjb25zdCBDb2xvciYgYSwgY29uc3QgQ29sb3ImIGIpCiAgICAgcmV0dXJu
IChhLm1fY29sb3JEYXRhLnJnYmFBbmRGbGFncyAmIH5Db2xvcjo6aXNTZW1hbnRpY1JCR0FDb2xv
ckJpdCkgPT0gKGIubV9jb2xvckRhdGEucmdiYUFuZEZsYWdzICYgfkNvbG9yOjppc1NlbWFudGlj
UkJHQUNvbG9yQml0KTsKIH0KIAoraW5saW5lIHVuc2lnbmVkIENvbG9yOjpoYXNoKCkgY29uc3QK
K3sKKyAgICBpZiAoaXNFeHRlbmRlZCgpKQorICAgICAgICByZXR1cm4gYXNFeHRlbmRlZCgpLmhh
c2goKTsKKworICAgIHJldHVybiBXVEY6OmludEhhc2gobV9jb2xvckRhdGEucmdiYUFuZEZsYWdz
KTsKK30KKwogaW5saW5lIHVpbnQ4X3Qgcm91bmRBbmRDbGFtcENvbG9yQ2hhbm5lbChpbnQgdmFs
dWUpCiB7CiAgICAgcmV0dXJuIHN0ZDo6bWF4KDAsIHN0ZDo6bWluKDI1NSwgdmFsdWUpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNw
cAppbmRleCBjMmI4NjQ0OGNlOTBkNWRhZDdmYjEyMzJjNTU2ZmY2OTNhNjFlMDJhLi5iNWMxNTli
OTVjYTc2YmNhZjBlNTU3ZWM3ZDZmODJmYjYwMTVjNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCkBAIC00NCw2ICs0NCwx
NCBAQCBDb2xvckNvbXBvbmVudHM6OkNvbG9yQ29tcG9uZW50cyhjb25zdCBGbG9hdENvbXBvbmVu
dHMmIGZsb2F0Q29tcG9uZW50cykKICAgICBjb21wb25lbnRzWzNdID0gY2xhbXBlZENvbG9yQ29t
cG9uZW50KGZsb2F0Q29tcG9uZW50cy5jb21wb25lbnRzWzNdKTsKIH0KIAorYm9vbCBhcmVFc3Nl
bnRpYWxseUVxdWFsKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgYSwgY29uc3QgRmxvYXRDb21wb25l
bnRzJiBiKQoreworICAgIHJldHVybiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoYS5jb21wb25l
bnRzWzBdLCBiLmNvbXBvbmVudHNbMF0pCisgICAgICAgICYmIFdURjo6YXJlRXNzZW50aWFsbHlF
cXVhbChhLmNvbXBvbmVudHNbMV0sIGIuY29tcG9uZW50c1sxXSkKKyAgICAgICAgJiYgV1RGOjph
cmVFc3NlbnRpYWxseUVxdWFsKGEuY29tcG9uZW50c1syXSwgYi5jb21wb25lbnRzWzJdKQorICAg
ICAgICAmJiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoYS5jb21wb25lbnRzWzNdLCBiLmNvbXBv
bmVudHNbM10pOworfQorCiAvLyBUaGVzZSBhcmUgdGhlIHN0YW5kYXJkIHNSR0IgPC0+IGxpbmVh
clJHQiBjb252ZXJzaW9uIGZ1bmN0aW9ucyAoaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv
U1JHQikuCiBmbG9hdCBsaW5lYXJUb1NSR0JDb2xvckNvbXBvbmVudChmbG9hdCBjKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgKaW5k
ZXggMjM0NGMyYjllZDUzYWRlODU5NWYxYmI1MTdkNTBkYzQ0MWUwODA4Yy4uYjIxY2EyODVhYTJl
MjU3YTZiMGI5NTFhMGNhOGMzYjQxOTE0OWFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oCkBAIC0xMDQsNiArMTA0LDggQEAgc3Ry
dWN0IEZsb2F0Q29tcG9uZW50cyB7CiAgICAgc3RkOjphcnJheTxmbG9hdCwgND4gY29tcG9uZW50
czsKIH07CiAKK2Jvb2wgYXJlRXNzZW50aWFsbHlFcXVhbChjb25zdCBGbG9hdENvbXBvbmVudHMm
LCBjb25zdCBGbG9hdENvbXBvbmVudHMmKTsKKwogc3RydWN0IENvbG9yQ29tcG9uZW50cyB7CiAg
ICAgQ29sb3JDb21wb25lbnRzKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOwogICAgIApAQCAtMTQ4
LDYgKzE1MCwxNiBAQCBpbmxpbmUgQ29sb3JDb21wb25lbnRzIHBlckNvbXBvbmVudE1pbihjb25z
dCBDb2xvckNvbXBvbmVudHMmIGEsIGNvbnN0IENvbG9yQ29tcAogICAgIH07CiB9CiAKK2lubGlu
ZSBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29sb3JDb21wb25lbnRzJiBhLCBjb25zdCBDb2xvckNv
bXBvbmVudHMmIGIpCit7CisgICAgcmV0dXJuIGEuY29tcG9uZW50cyA9PSBiLmNvbXBvbmVudHM7
Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQ29sb3JDb21wb25lbnRzJiBhLCBj
b25zdCBDb2xvckNvbXBvbmVudHMmIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KKwog
aW5saW5lIHVpbnQ4X3QgY2xhbXBlZENvbG9yQ29tcG9uZW50KGZsb2F0IGYpCiB7CiAgICAgLy8g
U2VlIGFsc28gY29sb3JGbG9hdFRvUkdCQUJ5dGUoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKaW5kZXggYWU5MWIwMDFlOTIxN2Yx
ODI1ZTk1ZWZiNWM0YzQ3MDM4OTMzMmIwZC4uM2YzYWZlNjI1OTJmNTExNjc2OTAwZWZmZDEyZWQy
N2E4NmI2M2NhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RXh0ZW5kZWRDb2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RXh0ZW5kZWRDb2xvci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJFeHRlbmRlZENvbG9yLmgiCiAKKyNpbmNsdWRlIDx3dGYvSGFzaGVyLmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZU51bWJlcnMuaD4KIApAQCAtMzYsNiArMzcsMTEgQEAgUmVmPEV4dGVuZGVkQ29sb3I+
IEV4dGVuZGVkQ29sb3I6OmNyZWF0ZShmbG9hdCBjMSwgZmxvYXQgYzIsIGZsb2F0IGMzLCBmbG9h
dCBhbHAKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeHRlbmRlZENvbG9yKGMxLCBjMiwgYzMs
IGFscGhhLCBjb2xvclNwYWNlKSk7CiB9CiAKK3Vuc2lnbmVkIEV4dGVuZGVkQ29sb3I6Omhhc2go
KSBjb25zdAoreworICAgIHJldHVybiBjb21wdXRlSGFzaChtX2NoYW5uZWxzLmNvbXBvbmVudHNb
MF0sIG1fY2hhbm5lbHMuY29tcG9uZW50c1sxXSwgbV9jaGFubmVscy5jb21wb25lbnRzWzJdLCBt
X2NoYW5uZWxzLmNvbXBvbmVudHNbM10sIG1fY29sb3JTcGFjZSk7Cit9CisKIFN0cmluZyBFeHRl
bmRlZENvbG9yOjpjc3NUZXh0KCkgY29uc3QKIHsKICAgICBjb25zdCBjaGFyKiBjb2xvclNwYWNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRD
b2xvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5o
CmluZGV4IGNhODJiODdlYmViZTA2ZjlkYzA3YTQ2MzBjODgxOGVjYzFhODU5NDQuLmQyMTAwZTQ3
NWY2YmRjNDE2NmU1NzZjZGUwYjIyMDYwMWI0MDdkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmgKQEAgLTU5LDYgKzU5LDggQEAgcHVi
bGljOgogCiAgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9jb2xv
clNwYWNlOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7CisK
ICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwogCiBwcml2YXRlOgpA
QCAtNzEsNCArNzMsMTQgQEAgcHJpdmF0ZToKICAgICBDb2xvclNwYWNlIG1fY29sb3JTcGFjZSB7
IENvbG9yU3BhY2U6OlNSR0IgfTsKIH07CiAKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3Qg
RXh0ZW5kZWRDb2xvciYgYSwgY29uc3QgRXh0ZW5kZWRDb2xvciYgYikKK3sKKyAgICByZXR1cm4g
YS5jb2xvclNwYWNlKCkgPT0gYi5jb2xvclNwYWNlKCkgJiYgYXJlRXNzZW50aWFsbHlFcXVhbChh
LmNoYW5uZWxzKCksIGIuY2hhbm5lbHMoKSk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yIT0o
Y29uc3QgRXh0ZW5kZWRDb2xvciYgYSwgY29uc3QgRXh0ZW5kZWRDb2xvciYgYikKK3sKKyAgICBy
ZXR1cm4gIShhID09IGIpOworfQorCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZjZkY2UxZDY2Yjk3MTFkYjVmYWU2NzdiNjYyZmI3MmFhNzZm
OGJjOS4uY2Y5OWQ1ZjA3NjRmYjQ1NTAzNWNhN2IxMGU1NDIyNTIwYTQ3MmM3OCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIwLTA1LTE2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIEZpeCBvcGVyYXRvcj09IGFuZCBoYXNoKCkgZm9yIEV4dGVuZGVkQ29sb3IKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk5MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0V4dGVuZGVkQ29sb3JUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAyMC0wNS0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgc29tZSBBUEkgdGVzdCBmaWxlcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0V4dGVuZGVkQ29sb3JUZXN0
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRXh0ZW5kZWRDb2xvclRl
c3RzLmNwcAppbmRleCA3NTEyYWQ3ODgyNjExYjZjODA2ZWEwNjgyM2NkMGJhOWQ1NjlmZjhmLi5j
NmI5YzRhZTYzODIzN2MzMWJkODRmNDY3ZjI5NTdhNWExZmQ5NjhiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRXh0ZW5kZWRDb2xvclRlc3RzLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRXh0ZW5kZWRDb2xvclRlc3RzLmNw
cApAQCAtNzcsNiArNzcsNjkgQEAgVEVTVChFeHRlbmRlZENvbG9yLCBBc3NpZ25tZW50KQogICAg
IEVYUEVDVF9FUShjMi5jc3NUZXh0KCksICJjb2xvcihkaXNwbGF5LXAzIDEgMC41IDAuMjUpIik7
CiB9CiAKK1RFU1QoRXh0ZW5kZWRDb2xvciwgRXF1YWxpdHkpCit7CisgICAgeworICAgICAgICBD
b2xvciBjMSgxLjAsIDAuNSwgMC4yNSwgMS4wLCBDb2xvclNwYWNlOjpEaXNwbGF5UDMpOworICAg
ICAgICBFWFBFQ1RfVFJVRShjMS5pc0V4dGVuZGVkKCkpOworCisgICAgICAgIENvbG9yIGMyKDEu
MCwgMC41LCAwLjI1LCAxLjAsIENvbG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVYUEVD
VF9UUlVFKGMxLmlzRXh0ZW5kZWQoKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKGMxLCBjMik7Cisg
ICAgfQorCisgICAgeworICAgICAgICBDb2xvciBjMSgxLjAsIDAuNSwgMC4yNSwgMS4wLCBDb2xv
clNwYWNlOjpEaXNwbGF5UDMpOworICAgICAgICBFWFBFQ1RfVFJVRShjMS5pc0V4dGVuZGVkKCkp
OworCisgICAgICAgIENvbG9yIGMyKDEuMCwgMC41LCAwLjI1LCAxLjAsIENvbG9yU3BhY2U6OlNS
R0IpOworICAgICAgICBFWFBFQ1RfVFJVRShjMS5pc0V4dGVuZGVkKCkpOworCisgICAgICAgIEVY
UEVDVF9ORShjMSwgYzIpOworICAgIH0KKworICAgIGludCByID0gMjU1OworICAgIGludCBnID0g
MTI4OworICAgIGludCBiID0gNjM7CisgICAgaW50IGEgPSAxMjc7CisgICAgQ29sb3IgcmdiMShy
IC8gMjU1LjAsIGcgLyAyNTUuMCwgYiAvIDI1NS4wLCBhIC8gMjU1LjAsIENvbG9yU3BhY2U6OlNS
R0IpOworICAgIENvbG9yIHJnYjIociwgZywgYiwgYSk7CisgICAgRVhQRUNUX0VRKHJnYjEsIHJn
YjIpOworICAgIEVYUEVDVF9FUShyZ2IyLCByZ2IxKTsKK30KKworVEVTVChFeHRlbmRlZENvbG9y
LCBIYXNoKQoreworICAgIHsKKyAgICAgICAgQ29sb3IgYzEoMS4wLCAwLjUsIDAuMjUsIDEuMCwg
Q29sb3JTcGFjZTo6RGlzcGxheVAzKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoYzEuaXNFeHRlbmRl
ZCgpKTsKKworICAgICAgICBDb2xvciBjMigxLjAsIDAuNSwgMC4yNSwgMS4wLCBDb2xvclNwYWNl
OjpEaXNwbGF5UDMpOworICAgICAgICBFWFBFQ1RfVFJVRShjMS5pc0V4dGVuZGVkKCkpOworCisg
ICAgICAgIEVYUEVDVF9FUShjMS5oYXNoKCksIGMyLmhhc2goKSk7CisgICAgfQorCisgICAgewor
ICAgICAgICBDb2xvciBjMSgxLjAsIDAuNSwgMC4yNSwgMS4wLCBDb2xvclNwYWNlOjpEaXNwbGF5
UDMpOworICAgICAgICBFWFBFQ1RfVFJVRShjMS5pc0V4dGVuZGVkKCkpOworCisgICAgICAgIENv
bG9yIGMyKDEuMCwgMC41LCAwLjI1LCAxLjAsIENvbG9yU3BhY2U6OlNSR0IpOworICAgICAgICBF
WFBFQ1RfVFJVRShjMS5pc0V4dGVuZGVkKCkpOworCisgICAgICAgIEVYUEVDVF9ORShjMS5oYXNo
KCksIGMyLmhhc2goKSk7CisgICAgfQorCisgICAgaW50IHIgPSAyNTU7CisgICAgaW50IGcgPSAx
Mjg7CisgICAgaW50IGIgPSA2MzsKKyAgICBpbnQgYSA9IDEyNzsKKyAgICBDb2xvciByZ2IxKHIg
LyAyNTUuMCwgZyAvIDI1NS4wLCBiIC8gMjU1LjAsIGEgLyAyNTUuMCwgQ29sb3JTcGFjZTo6U1JH
Qik7CisgICAgQ29sb3IgcmdiMihyLCBnLCBiLCBhKTsKKyAgICBFWFBFQ1RfTkUocmdiMS5oYXNo
KCksIHJnYjIuaGFzaCgpKTsKK30KKwogVEVTVChFeHRlbmRlZENvbG9yLCBNb3ZlQ29uc3RydWN0
b3IpCiB7CiAgICAgQ29sb3IgYzEoMS4wLCAwLjUsIDAuMjUsIDEuMCwgQ29sb3JTcGFjZTo6RGlz
cGxheVAzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399593</attachid>
            <date>2020-05-17 09:32:39 -0700</date>
            <delta_ts>2020-05-17 10:14:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211993-20200517093239.patch</filename>
            <type>text/plain</type>
            <size>11549</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM4NDFlYWUzZWRlYzAx
OTBkZGJkY2FkNGNjZmExNmM4N2Q3NmY2ZS4uZDFkNzMyZTlhOGU3NDkwYmE3M2JjZmMyYTJlODdj
MzcxMWIzN2M2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA1LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBvcGVyYXRv
cj09IGFuZCBoYXNoKCkgZm9yIEV4dGVuZGVkQ29sb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbG9yOjpvcGVyYXRvcj09IGFuZCBoYXNoKCkgd2Vy
ZSB3cm9uZyBmb3IgZXh0ZW5kZWQgY29sb3IuIEZpeCBvcGVyYXRvcj09CisgICAgICAgIHRvIGNv
bXBhcmUgZXh0ZW5kZWQgY29sb3JzLiBFeHRlbmRlZCBhbmQgbm9uLWV4dGVuZGVkIGNvbG9ycyBo
YXZlIHRvIGFsd2F5cworICAgICAgICBjb25wYXJlIGFzIG5vbi1lcXVhbCB0byBwcmVzZXJ2ZSBj
b21wdXRlZCBzdHlsZSBiZWhhdmlvciwgY3VycmVudGx5LgorCisgICAgICAgIEZpeCBoYXNoKCkg
dG8gaGFzaCB0aGUgY29sb3IgY29tcG9uZW50cyBhbmQgY29sb3JzcGFjZSBmb3IgRXh0ZW5kZWRD
b2xvci4KKworICAgICAgICBBZGQgc29tZSBBUEkgdGVzdHMgZm9yIHRoZXNlIGNvZGUgcGF0aHMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpleHRlbmRlZENvbG9yc0VxdWFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvcjo6aGFzaCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JV
dGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXJlRXNzZW50aWFsbHlFcXVhbCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9FeHRlbmRlZENvbG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorCiAyMDIwLTA1LTE2ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNvbWUgY29sb3ItcmVsYXRlZCBj
bGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXgg
NmUzNTE5NWJkNTdhNzg1MjYzM2FjNDM1M2U4OTg3MTYxZmU2OTE1NS4uOTJiM2I1YmMwOTFhY2Rh
NmM0MzkzYWNhMDQ4NTgzZmY0NzBkYzk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcApAQCAtNTkzLDYgKzU5MywxNSBAQCBSR0JBMzIgcHJlbXVsdGlwbGll
ZEFSR0JGcm9tQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIHJldHVybiBtYWtlUHJlbXVs
dGlwbGllZFJHQkEoY29sb3IucmVkKCksIGNvbG9yLmdyZWVuKCksIGNvbG9yLmJsdWUoKSwgY29s
b3IuYWxwaGEoKSk7CiB9CiAKK2Jvb2wgZXh0ZW5kZWRDb2xvcnNFcXVhbChjb25zdCBDb2xvciYg
YSwgY29uc3QgQ29sb3ImIGIpCit7CisgICAgaWYgKGEuaXNFeHRlbmRlZCgpICYmIGIuaXNFeHRl
bmRlZCgpKQorICAgICAgICByZXR1cm4gYS5hc0V4dGVuZGVkKCkgPT0gYi5hc0V4dGVuZGVkKCk7
CisKKyAgICBBU1NFUlQoYS5pc0V4dGVuZGVkKCkgfHwgYi5pc0V4dGVuZGVkKCkpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogQ29sb3IgYmxlbmQoY29uc3QgQ29sb3ImIGZyb20sIGNvbnN0IENv
bG9yJiB0bywgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kUHJlbXVsdGlwbGllZCkKIHsKICAg
ICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xvciAtIG5lZWRzIHRvIGhhbmRsZSBjb2xvciBzcGFjZXMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAppbmRleCBhZjFhYzZkZDkz
MWFlZTliNGVlYjZlYzFlMDQ5N2MxMDMzZTE2NTYyLi5iNDA5N2Y0YTAxNTFiODAzZjJhOGE2MTdi
ODEwMTEyYmVkNDRhN2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmgKQEAgLTIwNSw5ICsyMDUsNyBAQCBwdWJsaWM6CiAKICAgICBSR0JBMzIgcmdiKCkgY29uc3Q7
CiAKLSAgICAvLyBGSVhNRTogTGlrZSBvcGVyYXRvcj09LCB0aGlzIHdpbGwgZ2l2ZSBkaWZmZXJl
bnQgdmFsdWVzIGZvciBFeHRlbmRlZENvbG9ycyB0aGF0Ci0gICAgLy8gc2hvdWxkIGJlIGlkZW50
aWNhbCwgc2luY2UgdGhlIHJlc3BlY3RpdmUgcG9pbnRlciB3aWxsIGJlIGRpZmZlcmVudC4KLSAg
ICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyByZXR1cm4gV1RGOjppbnRIYXNoKG1fY29sb3JEYXRh
LnJnYmFBbmRGbGFncyk7IH0KKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7CiAKICAgICAvLyBG
SVhNRTogRXh0ZW5kZWRDb2xvciAtIHRoZXNlIHNob3VsZCBiZSByZW5hbWVkICh0byBiZSBjbGVh
ciBhYm91dCB0aGVpciBwYXJhbWV0ZXIgdHlwZXMsIG9yCiAgICAgLy8gcmVwbGFjZWQgd2l0aCBh
bHRlcm5hdGl2ZSBhY2Nlc3NvcnMuCkBAIC0yODIsNiArMjgwLDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIENvbG9yJiBvcGVyYXRvcj0oY29uc3QgQ29sb3ImKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBDb2xvciYgb3BlcmF0b3I9KENvbG9yJiYpOwogCisgICAgLy8gRXh0ZW5kZWQgYW5k
IG5vbi1leHRlbmRlZCBjb2xvcnMgd2lsbCBhbHdheXMgYmUgbm9uLWVxdWFsLgogICAgIGZyaWVu
ZCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29sb3ImIGEsIGNvbnN0IENvbG9yJiBiKTsKICAgICBm
cmllbmQgYm9vbCBlcXVhbElnbm9yaW5nU2VtYW50aWNDb2xvcihjb25zdCBDb2xvciYgYSwgY29u
c3QgQ29sb3ImIGIpOwogCkBAIC0zMTMsMTMgKzMxMiwxMyBAQCBwcml2YXRlOgogICAgIH0gbV9j
b2xvckRhdGE7CiB9OwogCi0vLyBGSVhNRTogVGhlc2UgZG8gbm90IHdvcmsgZm9yIEV4dGVuZGVk
Q29sb3IgYmVjYXVzZQotLy8gdGhleSBiZWNvbWUganVzdCBwb2ludGVyIGNvbXBhcmlzb24uCiBi
b29sIG9wZXJhdG9yPT0oY29uc3QgQ29sb3ImLCBjb25zdCBDb2xvciYpOwogYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IENvbG9yJiwgY29uc3QgQ29sb3ImKTsKIAogQ29sb3IgY29sb3JGcm9tUHJlbXVs
dGlwbGllZEFSR0IoUkdCQTMyKTsKIFJHQkEzMiBwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xvcihj
b25zdCBDb2xvciYpOworLy8gT25lIG9yIGJvdGggbWF5IGJlIGV4dGVuZGVkLgorV0VCQ09SRV9F
WFBPUlQgYm9vbCBleHRlbmRlZENvbG9yc0VxdWFsKGNvbnN0IENvbG9yJiwgY29uc3QgQ29sb3Im
KTsKIAogQ29sb3IgYmxlbmQoY29uc3QgQ29sb3ImIGZyb20sIGNvbnN0IENvbG9yJiB0bywgZG91
YmxlIHByb2dyZXNzLCBib29sIGJsZW5kUHJlbXVsdGlwbGllZCA9IHRydWUpOwogCkBAIC0zNDcs
NiArMzQ2LDkgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShTaW1wbGVDb2xvciBhLCBTaW1wbGVD
b2xvciBiKQogCiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENvbG9yJiBhLCBjb25zdCBD
b2xvciYgYikKIHsKKyAgICBpZiAoYS5pc0V4dGVuZGVkKCkgfHwgYi5pc0V4dGVuZGVkKCkpCisg
ICAgICAgIHJldHVybiBleHRlbmRlZENvbG9yc0VxdWFsKGEsIGIpOworCiAgICAgcmV0dXJuIGEu
bV9jb2xvckRhdGEucmdiYUFuZEZsYWdzID09IGIubV9jb2xvckRhdGEucmdiYUFuZEZsYWdzOwog
fQogCkBAIC0zNTcsOSArMzU5LDE5IEBAIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQ29s
b3ImIGEsIGNvbnN0IENvbG9yJiBiKQogCiBpbmxpbmUgYm9vbCBlcXVhbElnbm9yaW5nU2VtYW50
aWNDb2xvcihjb25zdCBDb2xvciYgYSwgY29uc3QgQ29sb3ImIGIpCiB7CisgICAgaWYgKGEuaXNF
eHRlbmRlZCgpIHx8IGIuaXNFeHRlbmRlZCgpKQorICAgICAgICByZXR1cm4gZXh0ZW5kZWRDb2xv
cnNFcXVhbChhLCBiKTsKICAgICByZXR1cm4gKGEubV9jb2xvckRhdGEucmdiYUFuZEZsYWdzICYg
fkNvbG9yOjppc1NlbWFudGljUkJHQUNvbG9yQml0KSA9PSAoYi5tX2NvbG9yRGF0YS5yZ2JhQW5k
RmxhZ3MgJiB+Q29sb3I6OmlzU2VtYW50aWNSQkdBQ29sb3JCaXQpOwogfQogCitpbmxpbmUgdW5z
aWduZWQgQ29sb3I6Omhhc2goKSBjb25zdAoreworICAgIGlmIChpc0V4dGVuZGVkKCkpCisgICAg
ICAgIHJldHVybiBhc0V4dGVuZGVkKCkuaGFzaCgpOworCisgICAgcmV0dXJuIFdURjo6aW50SGFz
aChtX2NvbG9yRGF0YS5yZ2JhQW5kRmxhZ3MpOworfQorCiBpbmxpbmUgdWludDhfdCByb3VuZEFu
ZENsYW1wQ29sb3JDaGFubmVsKGludCB2YWx1ZSkKIHsKICAgICByZXR1cm4gc3RkOjptYXgoMCwg
c3RkOjptaW4oMjU1LCB2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCmluZGV4IGMyYjg2NDQ4Y2U5MGQ1ZGFkN2ZiMTIz
MmM1NTZmZjY5M2E2MWUwMmEuLmI1YzE1OWI5NWNhNzZiY2FmMGU1NTdlYzdkNmY4MmZiNjAxNWM0
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0
aWxpdGllcy5jcHAKQEAgLTQ0LDYgKzQ0LDE0IEBAIENvbG9yQ29tcG9uZW50czo6Q29sb3JDb21w
b25lbnRzKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgZmxvYXRDb21wb25lbnRzKQogICAgIGNvbXBv
bmVudHNbM10gPSBjbGFtcGVkQ29sb3JDb21wb25lbnQoZmxvYXRDb21wb25lbnRzLmNvbXBvbmVu
dHNbM10pOwogfQogCitib29sIGFyZUVzc2VudGlhbGx5RXF1YWwoY29uc3QgRmxvYXRDb21wb25l
bnRzJiBhLCBjb25zdCBGbG9hdENvbXBvbmVudHMmIGIpCit7CisgICAgcmV0dXJuIFdURjo6YXJl
RXNzZW50aWFsbHlFcXVhbChhLmNvbXBvbmVudHNbMF0sIGIuY29tcG9uZW50c1swXSkKKyAgICAg
ICAgJiYgV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKGEuY29tcG9uZW50c1sxXSwgYi5jb21wb25l
bnRzWzFdKQorICAgICAgICAmJiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoYS5jb21wb25lbnRz
WzJdLCBiLmNvbXBvbmVudHNbMl0pCisgICAgICAgICYmIFdURjo6YXJlRXNzZW50aWFsbHlFcXVh
bChhLmNvbXBvbmVudHNbM10sIGIuY29tcG9uZW50c1szXSk7Cit9CisKIC8vIFRoZXNlIGFyZSB0
aGUgc3RhbmRhcmQgc1JHQiA8LT4gbGluZWFyUkdCIGNvbnZlcnNpb24gZnVuY3Rpb25zIChodHRw
czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TUkdCKS4KIGZsb2F0IGxpbmVhclRvU1JHQkNvbG9y
Q29tcG9uZW50KGZsb2F0IGMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JVdGlsaXRpZXMuaAppbmRleCAyMzQ0YzJiOWVkNTNhZGU4NTk1ZjFiYjUxN2Q1
MGRjNDQxZTA4MDhjLi5iMjFjYTI4NWFhMmUyNTdhNmIwYjk1MWEwY2E4YzNiNDE5MTQ5YWI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGll
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVz
LmgKQEAgLTEwNCw2ICsxMDQsOCBAQCBzdHJ1Y3QgRmxvYXRDb21wb25lbnRzIHsKICAgICBzdGQ6
OmFycmF5PGZsb2F0LCA0PiBjb21wb25lbnRzOwogfTsKIAorYm9vbCBhcmVFc3NlbnRpYWxseUVx
dWFsKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYsIGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOworCiBz
dHJ1Y3QgQ29sb3JDb21wb25lbnRzIHsKICAgICBDb2xvckNvbXBvbmVudHMoY29uc3QgRmxvYXRD
b21wb25lbnRzJik7CiAgICAgCkBAIC0xNDgsNiArMTUwLDE2IEBAIGlubGluZSBDb2xvckNvbXBv
bmVudHMgcGVyQ29tcG9uZW50TWluKGNvbnN0IENvbG9yQ29tcG9uZW50cyYgYSwgY29uc3QgQ29s
b3JDb21wCiAgICAgfTsKIH0KIAoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb2xvckNv
bXBvbmVudHMmIGEsIGNvbnN0IENvbG9yQ29tcG9uZW50cyYgYikKK3sKKyAgICByZXR1cm4gYS5j
b21wb25lbnRzID09IGIuY29tcG9uZW50czsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBDb2xvckNvbXBvbmVudHMmIGEsIGNvbnN0IENvbG9yQ29tcG9uZW50cyYgYikKK3sKKyAg
ICByZXR1cm4gIShhID09IGIpOworfQorCiBpbmxpbmUgdWludDhfdCBjbGFtcGVkQ29sb3JDb21w
b25lbnQoZmxvYXQgZikKIHsKICAgICAvLyBTZWUgYWxzbyBjb2xvckZsb2F0VG9SR0JBQnl0ZSgp
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRD
b2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmNwcAppbmRleCBhZTkxYjAwMWU5MjE3ZjE4MjVlOTVlZmI1YzRjNDcwMzg5MzMyYjBkLi4zZjNh
ZmU2MjU5MmY1MTE2NzY5MDBlZmZkMTJlZDI3YTg2YjYzY2FmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV4dGVuZGVkQ29sb3IuaCIKIAor
I2luY2x1ZGUgPHd0Zi9IYXNoZXIuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCkBAIC0zNiw2ICsz
NywxMSBAQCBSZWY8RXh0ZW5kZWRDb2xvcj4gRXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKGZsb2F0IGMx
LCBmbG9hdCBjMiwgZmxvYXQgYzMsIGZsb2F0IGFscAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEV4dGVuZGVkQ29sb3IoYzEsIGMyLCBjMywgYWxwaGEsIGNvbG9yU3BhY2UpKTsKIH0KIAordW5z
aWduZWQgRXh0ZW5kZWRDb2xvcjo6aGFzaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbXB1dGVI
YXNoKG1fY2hhbm5lbHMuY29tcG9uZW50c1swXSwgbV9jaGFubmVscy5jb21wb25lbnRzWzFdLCBt
X2NoYW5uZWxzLmNvbXBvbmVudHNbMl0sIG1fY2hhbm5lbHMuY29tcG9uZW50c1szXSwgbV9jb2xv
clNwYWNlKTsKK30KKwogU3RyaW5nIEV4dGVuZGVkQ29sb3I6OmNzc1RleHQoKSBjb25zdAogewog
ICAgIGNvbnN0IGNoYXIqIGNvbG9yU3BhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmgKaW5kZXggY2E4MmI4N2ViZWJlMDZmOWRjMDdhNDYz
MGM4ODE4ZWNjMWE4NTk0NC4uZDIxMDBlNDc1ZjZiZGM0MTY2ZTU3NmNkZTBiMjIwNjAxYjQwN2Rm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRD
b2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaApAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAKICAgICBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JU
IHVuc2lnbmVkIGhhc2goKSBjb25zdDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjc3NU
ZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC03MSw0ICs3MywxNCBAQCBwcml2YXRlOgogICAg
IENvbG9yU3BhY2UgbV9jb2xvclNwYWNlIHsgQ29sb3JTcGFjZTo6U1JHQiB9OwogfTsKIAoraW5s
aW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFeHRlbmRlZENvbG9yJiBhLCBjb25zdCBFeHRlbmRl
ZENvbG9yJiBiKQoreworICAgIHJldHVybiBhLmNvbG9yU3BhY2UoKSA9PSBiLmNvbG9yU3BhY2Uo
KSAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGEuY2hhbm5lbHMoKSwgYi5jaGFubmVscygpKTsKK30K
KworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBFeHRlbmRlZENvbG9yJiBhLCBjb25zdCBF
eHRlbmRlZENvbG9yJiBiKQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmNmRjZTFkNjZi
OTcxMWRiNWZhZTY3N2I2NjJmYjcyYWE3NmY4YmM5Li5jZjk5ZDVmMDc2NGZiNDU1MDM1Y2E3YjEw
ZTU0MjI1MjBhNDcyYzc4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDUtMTYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IG9wZXJhdG9yPT0gYW5kIGhhc2go
KSBmb3IgRXh0ZW5kZWRDb2xvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExOTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRXh0ZW5kZWRDb2xvclRl
c3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA1LTE2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBz
b21lIEFQSSB0ZXN0IGZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRXh0ZW5kZWRDb2xvclRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9FeHRlbmRlZENvbG9yVGVzdHMuY3BwCmluZGV4IDc1MTJhZDc4ODI2MTFiNmM4
MDZlYTA2ODIzY2QwYmE5ZDU2OWZmOGYuLmM2YjljNGFlNjM4MjM3YzMxYmQ4NGY0NjdmMjk1N2E1
YTFmZDk2OGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9F
eHRlbmRlZENvbG9yVGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9FeHRlbmRlZENvbG9yVGVzdHMuY3BwCkBAIC03Nyw2ICs3Nyw2OSBAQCBURVNUKEV4dGVu
ZGVkQ29sb3IsIEFzc2lnbm1lbnQpCiAgICAgRVhQRUNUX0VRKGMyLmNzc1RleHQoKSwgImNvbG9y
KGRpc3BsYXktcDMgMSAwLjUgMC4yNSkiKTsKIH0KIAorVEVTVChFeHRlbmRlZENvbG9yLCBFcXVh
bGl0eSkKK3sKKyAgICB7CisgICAgICAgIENvbG9yIGMxKDEuMCwgMC41LCAwLjI1LCAxLjAsIENv
bG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVYUEVDVF9UUlVFKGMxLmlzRXh0ZW5kZWQo
KSk7CisKKyAgICAgICAgQ29sb3IgYzIoMS4wLCAwLjUsIDAuMjUsIDEuMCwgQ29sb3JTcGFjZTo6
RGlzcGxheVAzKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoYzEuaXNFeHRlbmRlZCgpKTsKKworICAg
ICAgICBFWFBFQ1RfRVEoYzEsIGMyKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIENvbG9yIGMx
KDEuMCwgMC41LCAwLjI1LCAxLjAsIENvbG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVY
UEVDVF9UUlVFKGMxLmlzRXh0ZW5kZWQoKSk7CisKKyAgICAgICAgQ29sb3IgYzIoMS4wLCAwLjUs
IDAuMjUsIDEuMCwgQ29sb3JTcGFjZTo6U1JHQik7CisgICAgICAgIEVYUEVDVF9UUlVFKGMxLmlz
RXh0ZW5kZWQoKSk7CisKKyAgICAgICAgRVhQRUNUX05FKGMxLCBjMik7CisgICAgfQorCisgICAg
aW50IHIgPSAyNTU7CisgICAgaW50IGcgPSAxMjg7CisgICAgaW50IGIgPSA2MzsKKyAgICBpbnQg
YSA9IDEyNzsKKyAgICBDb2xvciByZ2IxKHIgLyAyNTUuMCwgZyAvIDI1NS4wLCBiIC8gMjU1LjAs
IGEgLyAyNTUuMCwgQ29sb3JTcGFjZTo6U1JHQik7CisgICAgQ29sb3IgcmdiMihyLCBnLCBiLCBh
KTsKKyAgICBFWFBFQ1RfRVEocmdiMSwgcmdiMik7CisgICAgRVhQRUNUX0VRKHJnYjIsIHJnYjEp
OworfQorCitURVNUKEV4dGVuZGVkQ29sb3IsIEhhc2gpCit7CisgICAgeworICAgICAgICBDb2xv
ciBjMSgxLjAsIDAuNSwgMC4yNSwgMS4wLCBDb2xvclNwYWNlOjpEaXNwbGF5UDMpOworICAgICAg
ICBFWFBFQ1RfVFJVRShjMS5pc0V4dGVuZGVkKCkpOworCisgICAgICAgIENvbG9yIGMyKDEuMCwg
MC41LCAwLjI1LCAxLjAsIENvbG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVYUEVDVF9U
UlVFKGMxLmlzRXh0ZW5kZWQoKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKGMxLmhhc2goKSwgYzIu
aGFzaCgpKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIENvbG9yIGMxKDEuMCwgMC41LCAwLjI1
LCAxLjAsIENvbG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVYUEVDVF9UUlVFKGMxLmlz
RXh0ZW5kZWQoKSk7CisKKyAgICAgICAgQ29sb3IgYzIoMS4wLCAwLjUsIDAuMjUsIDEuMCwgQ29s
b3JTcGFjZTo6U1JHQik7CisgICAgICAgIEVYUEVDVF9UUlVFKGMxLmlzRXh0ZW5kZWQoKSk7CisK
KyAgICAgICAgRVhQRUNUX05FKGMxLmhhc2goKSwgYzIuaGFzaCgpKTsKKyAgICB9CisKKyAgICBp
bnQgciA9IDI1NTsKKyAgICBpbnQgZyA9IDEyODsKKyAgICBpbnQgYiA9IDYzOworICAgIGludCBh
ID0gMTI3OworICAgIENvbG9yIHJnYjEociAvIDI1NS4wLCBnIC8gMjU1LjAsIGIgLyAyNTUuMCwg
YSAvIDI1NS4wLCBDb2xvclNwYWNlOjpTUkdCKTsKKyAgICBDb2xvciByZ2IyKHIsIGcsIGIsIGEp
OworICAgIEVYUEVDVF9ORShyZ2IxLmhhc2goKSwgcmdiMi5oYXNoKCkpOworfQorCiBURVNUKEV4
dGVuZGVkQ29sb3IsIE1vdmVDb25zdHJ1Y3RvcikKIHsKICAgICBDb2xvciBjMSgxLjAsIDAuNSwg
MC4yNSwgMS4wLCBDb2xvclNwYWNlOjpEaXNwbGF5UDMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399595</attachid>
            <date>2020-05-17 10:14:49 -0700</date>
            <delta_ts>2020-05-17 10:40:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211993-20200517101449.patch</filename>
            <type>text/plain</type>
            <size>11549</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM4NDFlYWUzZWRlYzAx
OTBkZGJkY2FkNGNjZmExNmM4N2Q3NmY2ZS4uZDFkNzMyZTlhOGU3NDkwYmE3M2JjZmMyYTJlODdj
MzcxMWIzN2M2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA1LTE2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBvcGVyYXRv
cj09IGFuZCBoYXNoKCkgZm9yIEV4dGVuZGVkQ29sb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbG9yOjpvcGVyYXRvcj09IGFuZCBoYXNoKCkgd2Vy
ZSB3cm9uZyBmb3IgZXh0ZW5kZWQgY29sb3IuIEZpeCBvcGVyYXRvcj09CisgICAgICAgIHRvIGNv
bXBhcmUgZXh0ZW5kZWQgY29sb3JzLiBFeHRlbmRlZCBhbmQgbm9uLWV4dGVuZGVkIGNvbG9ycyBo
YXZlIHRvIGFsd2F5cworICAgICAgICBjb25wYXJlIGFzIG5vbi1lcXVhbCB0byBwcmVzZXJ2ZSBj
b21wdXRlZCBzdHlsZSBiZWhhdmlvciwgY3VycmVudGx5LgorCisgICAgICAgIEZpeCBoYXNoKCkg
dG8gaGFzaCB0aGUgY29sb3IgY29tcG9uZW50cyBhbmQgY29sb3JzcGFjZSBmb3IgRXh0ZW5kZWRD
b2xvci4KKworICAgICAgICBBZGQgc29tZSBBUEkgdGVzdHMgZm9yIHRoZXNlIGNvZGUgcGF0aHMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpleHRlbmRlZENvbG9yc0VxdWFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvcjo6aGFzaCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JV
dGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXJlRXNzZW50aWFsbHlFcXVhbCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpoYXNoIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9FeHRlbmRlZENvbG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorCiAyMDIwLTA1LTE2ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNvbWUgY29sb3ItcmVsYXRlZCBj
bGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXgg
NmUzNTE5NWJkNTdhNzg1MjYzM2FjNDM1M2U4OTg3MTYxZmU2OTE1NS4uOTJiM2I1YmMwOTFhY2Rh
NmM0MzkzYWNhMDQ4NTgzZmY0NzBkYzk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmNwcApAQCAtNTkzLDYgKzU5MywxNSBAQCBSR0JBMzIgcHJlbXVsdGlwbGll
ZEFSR0JGcm9tQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIHJldHVybiBtYWtlUHJlbXVs
dGlwbGllZFJHQkEoY29sb3IucmVkKCksIGNvbG9yLmdyZWVuKCksIGNvbG9yLmJsdWUoKSwgY29s
b3IuYWxwaGEoKSk7CiB9CiAKK2Jvb2wgZXh0ZW5kZWRDb2xvcnNFcXVhbChjb25zdCBDb2xvciYg
YSwgY29uc3QgQ29sb3ImIGIpCit7CisgICAgaWYgKGEuaXNFeHRlbmRlZCgpICYmIGIuaXNFeHRl
bmRlZCgpKQorICAgICAgICByZXR1cm4gYS5hc0V4dGVuZGVkKCkgPT0gYi5hc0V4dGVuZGVkKCk7
CisKKyAgICBBU1NFUlQoYS5pc0V4dGVuZGVkKCkgfHwgYi5pc0V4dGVuZGVkKCkpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogQ29sb3IgYmxlbmQoY29uc3QgQ29sb3ImIGZyb20sIGNvbnN0IENv
bG9yJiB0bywgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kUHJlbXVsdGlwbGllZCkKIHsKICAg
ICAvLyBGSVhNRTogRXh0ZW5kZWRDb2xvciAtIG5lZWRzIHRvIGhhbmRsZSBjb2xvciBzcGFjZXMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAppbmRleCBhZjFhYzZkZDkz
MWFlZTliNGVlYjZlYzFlMDQ5N2MxMDMzZTE2NTYyLi5iNDA5N2Y0YTAxNTFiODAzZjJhOGE2MTdi
ODEwMTEyYmVkNDRhN2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmgKQEAgLTIwNSw5ICsyMDUsNyBAQCBwdWJsaWM6CiAKICAgICBSR0JBMzIgcmdiKCkgY29uc3Q7
CiAKLSAgICAvLyBGSVhNRTogTGlrZSBvcGVyYXRvcj09LCB0aGlzIHdpbGwgZ2l2ZSBkaWZmZXJl
bnQgdmFsdWVzIGZvciBFeHRlbmRlZENvbG9ycyB0aGF0Ci0gICAgLy8gc2hvdWxkIGJlIGlkZW50
aWNhbCwgc2luY2UgdGhlIHJlc3BlY3RpdmUgcG9pbnRlciB3aWxsIGJlIGRpZmZlcmVudC4KLSAg
ICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyByZXR1cm4gV1RGOjppbnRIYXNoKG1fY29sb3JEYXRh
LnJnYmFBbmRGbGFncyk7IH0KKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7CiAKICAgICAvLyBG
SVhNRTogRXh0ZW5kZWRDb2xvciAtIHRoZXNlIHNob3VsZCBiZSByZW5hbWVkICh0byBiZSBjbGVh
ciBhYm91dCB0aGVpciBwYXJhbWV0ZXIgdHlwZXMsIG9yCiAgICAgLy8gcmVwbGFjZWQgd2l0aCBh
bHRlcm5hdGl2ZSBhY2Nlc3NvcnMuCkBAIC0yODIsNiArMjgwLDcgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIENvbG9yJiBvcGVyYXRvcj0oY29uc3QgQ29sb3ImKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBDb2xvciYgb3BlcmF0b3I9KENvbG9yJiYpOwogCisgICAgLy8gRXh0ZW5kZWQgYW5k
IG5vbi1leHRlbmRlZCBjb2xvcnMgd2lsbCBhbHdheXMgYmUgbm9uLWVxdWFsLgogICAgIGZyaWVu
ZCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29sb3ImIGEsIGNvbnN0IENvbG9yJiBiKTsKICAgICBm
cmllbmQgYm9vbCBlcXVhbElnbm9yaW5nU2VtYW50aWNDb2xvcihjb25zdCBDb2xvciYgYSwgY29u
c3QgQ29sb3ImIGIpOwogCkBAIC0zMTMsMTMgKzMxMiwxMyBAQCBwcml2YXRlOgogICAgIH0gbV9j
b2xvckRhdGE7CiB9OwogCi0vLyBGSVhNRTogVGhlc2UgZG8gbm90IHdvcmsgZm9yIEV4dGVuZGVk
Q29sb3IgYmVjYXVzZQotLy8gdGhleSBiZWNvbWUganVzdCBwb2ludGVyIGNvbXBhcmlzb24uCiBi
b29sIG9wZXJhdG9yPT0oY29uc3QgQ29sb3ImLCBjb25zdCBDb2xvciYpOwogYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IENvbG9yJiwgY29uc3QgQ29sb3ImKTsKIAogQ29sb3IgY29sb3JGcm9tUHJlbXVs
dGlwbGllZEFSR0IoUkdCQTMyKTsKIFJHQkEzMiBwcmVtdWx0aXBsaWVkQVJHQkZyb21Db2xvcihj
b25zdCBDb2xvciYpOworLy8gT25lIG9yIGJvdGggbWF5IGJlIGV4dGVuZGVkLgorV0VCQ09SRV9F
WFBPUlQgYm9vbCBleHRlbmRlZENvbG9yc0VxdWFsKGNvbnN0IENvbG9yJiwgY29uc3QgQ29sb3Im
KTsKIAogQ29sb3IgYmxlbmQoY29uc3QgQ29sb3ImIGZyb20sIGNvbnN0IENvbG9yJiB0bywgZG91
YmxlIHByb2dyZXNzLCBib29sIGJsZW5kUHJlbXVsdGlwbGllZCA9IHRydWUpOwogCkBAIC0zNDcs
NiArMzQ2LDkgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShTaW1wbGVDb2xvciBhLCBTaW1wbGVD
b2xvciBiKQogCiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENvbG9yJiBhLCBjb25zdCBD
b2xvciYgYikKIHsKKyAgICBpZiAoYS5pc0V4dGVuZGVkKCkgfHwgYi5pc0V4dGVuZGVkKCkpCisg
ICAgICAgIHJldHVybiBleHRlbmRlZENvbG9yc0VxdWFsKGEsIGIpOworCiAgICAgcmV0dXJuIGEu
bV9jb2xvckRhdGEucmdiYUFuZEZsYWdzID09IGIubV9jb2xvckRhdGEucmdiYUFuZEZsYWdzOwog
fQogCkBAIC0zNTcsOSArMzU5LDE5IEBAIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQ29s
b3ImIGEsIGNvbnN0IENvbG9yJiBiKQogCiBpbmxpbmUgYm9vbCBlcXVhbElnbm9yaW5nU2VtYW50
aWNDb2xvcihjb25zdCBDb2xvciYgYSwgY29uc3QgQ29sb3ImIGIpCiB7CisgICAgaWYgKGEuaXNF
eHRlbmRlZCgpIHx8IGIuaXNFeHRlbmRlZCgpKQorICAgICAgICByZXR1cm4gZXh0ZW5kZWRDb2xv
cnNFcXVhbChhLCBiKTsKICAgICByZXR1cm4gKGEubV9jb2xvckRhdGEucmdiYUFuZEZsYWdzICYg
fkNvbG9yOjppc1NlbWFudGljUkJHQUNvbG9yQml0KSA9PSAoYi5tX2NvbG9yRGF0YS5yZ2JhQW5k
RmxhZ3MgJiB+Q29sb3I6OmlzU2VtYW50aWNSQkdBQ29sb3JCaXQpOwogfQogCitpbmxpbmUgdW5z
aWduZWQgQ29sb3I6Omhhc2goKSBjb25zdAoreworICAgIGlmIChpc0V4dGVuZGVkKCkpCisgICAg
ICAgIHJldHVybiBhc0V4dGVuZGVkKCkuaGFzaCgpOworCisgICAgcmV0dXJuIFdURjo6aW50SGFz
aChtX2NvbG9yRGF0YS5yZ2JhQW5kRmxhZ3MpOworfQorCiBpbmxpbmUgdWludDhfdCByb3VuZEFu
ZENsYW1wQ29sb3JDaGFubmVsKGludCB2YWx1ZSkKIHsKICAgICByZXR1cm4gc3RkOjptYXgoMCwg
c3RkOjptaW4oMjU1LCB2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCmluZGV4IGMyYjg2NDQ4Y2U5MGQ1ZGFkN2ZiMTIz
MmM1NTZmZjY5M2E2MWUwMmEuLmI1YzE1OWI5NWNhNzZiY2FmMGU1NTdlYzdkNmY4MmZiNjAxNWM0
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0
aWxpdGllcy5jcHAKQEAgLTQ0LDYgKzQ0LDE0IEBAIENvbG9yQ29tcG9uZW50czo6Q29sb3JDb21w
b25lbnRzKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYgZmxvYXRDb21wb25lbnRzKQogICAgIGNvbXBv
bmVudHNbM10gPSBjbGFtcGVkQ29sb3JDb21wb25lbnQoZmxvYXRDb21wb25lbnRzLmNvbXBvbmVu
dHNbM10pOwogfQogCitib29sIGFyZUVzc2VudGlhbGx5RXF1YWwoY29uc3QgRmxvYXRDb21wb25l
bnRzJiBhLCBjb25zdCBGbG9hdENvbXBvbmVudHMmIGIpCit7CisgICAgcmV0dXJuIFdURjo6YXJl
RXNzZW50aWFsbHlFcXVhbChhLmNvbXBvbmVudHNbMF0sIGIuY29tcG9uZW50c1swXSkKKyAgICAg
ICAgJiYgV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKGEuY29tcG9uZW50c1sxXSwgYi5jb21wb25l
bnRzWzFdKQorICAgICAgICAmJiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoYS5jb21wb25lbnRz
WzJdLCBiLmNvbXBvbmVudHNbMl0pCisgICAgICAgICYmIFdURjo6YXJlRXNzZW50aWFsbHlFcXVh
bChhLmNvbXBvbmVudHNbM10sIGIuY29tcG9uZW50c1szXSk7Cit9CisKIC8vIFRoZXNlIGFyZSB0
aGUgc3RhbmRhcmQgc1JHQiA8LT4gbGluZWFyUkdCIGNvbnZlcnNpb24gZnVuY3Rpb25zIChodHRw
czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TUkdCKS4KIGZsb2F0IGxpbmVhclRvU1JHQkNvbG9y
Q29tcG9uZW50KGZsb2F0IGMpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JVdGlsaXRpZXMuaAppbmRleCAyMzQ0YzJiOWVkNTNhZGU4NTk1ZjFiYjUxN2Q1
MGRjNDQxZTA4MDhjLi5iMjFjYTI4NWFhMmUyNTdhNmIwYjk1MWEwY2E4YzNiNDE5MTQ5YWI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGll
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVz
LmgKQEAgLTEwNCw2ICsxMDQsOCBAQCBzdHJ1Y3QgRmxvYXRDb21wb25lbnRzIHsKICAgICBzdGQ6
OmFycmF5PGZsb2F0LCA0PiBjb21wb25lbnRzOwogfTsKIAorYm9vbCBhcmVFc3NlbnRpYWxseUVx
dWFsKGNvbnN0IEZsb2F0Q29tcG9uZW50cyYsIGNvbnN0IEZsb2F0Q29tcG9uZW50cyYpOworCiBz
dHJ1Y3QgQ29sb3JDb21wb25lbnRzIHsKICAgICBDb2xvckNvbXBvbmVudHMoY29uc3QgRmxvYXRD
b21wb25lbnRzJik7CiAgICAgCkBAIC0xNDgsNiArMTUwLDE2IEBAIGlubGluZSBDb2xvckNvbXBv
bmVudHMgcGVyQ29tcG9uZW50TWluKGNvbnN0IENvbG9yQ29tcG9uZW50cyYgYSwgY29uc3QgQ29s
b3JDb21wCiAgICAgfTsKIH0KIAoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb2xvckNv
bXBvbmVudHMmIGEsIGNvbnN0IENvbG9yQ29tcG9uZW50cyYgYikKK3sKKyAgICByZXR1cm4gYS5j
b21wb25lbnRzID09IGIuY29tcG9uZW50czsKK30KKworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBDb2xvckNvbXBvbmVudHMmIGEsIGNvbnN0IENvbG9yQ29tcG9uZW50cyYgYikKK3sKKyAg
ICByZXR1cm4gIShhID09IGIpOworfQorCiBpbmxpbmUgdWludDhfdCBjbGFtcGVkQ29sb3JDb21w
b25lbnQoZmxvYXQgZikKIHsKICAgICAvLyBTZWUgYWxzbyBjb2xvckZsb2F0VG9SR0JBQnl0ZSgp
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRD
b2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmNwcAppbmRleCBhZTkxYjAwMWU5MjE3ZjE4MjVlOTVlZmI1YzRjNDcwMzg5MzMyYjBkLi4zZjNh
ZmU2MjU5MmY1MTE2NzY5MDBlZmZkMTJlZDI3YTg2YjYzY2FmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV4dGVuZGVkQ29sb3IuaCIKIAor
I2luY2x1ZGUgPHd0Zi9IYXNoZXIuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCkBAIC0zNiw2ICsz
NywxMSBAQCBSZWY8RXh0ZW5kZWRDb2xvcj4gRXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKGZsb2F0IGMx
LCBmbG9hdCBjMiwgZmxvYXQgYzMsIGZsb2F0IGFscAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEV4dGVuZGVkQ29sb3IoYzEsIGMyLCBjMywgYWxwaGEsIGNvbG9yU3BhY2UpKTsKIH0KIAordW5z
aWduZWQgRXh0ZW5kZWRDb2xvcjo6aGFzaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbXB1dGVI
YXNoKG1fY2hhbm5lbHMuY29tcG9uZW50c1swXSwgbV9jaGFubmVscy5jb21wb25lbnRzWzFdLCBt
X2NoYW5uZWxzLmNvbXBvbmVudHNbMl0sIG1fY2hhbm5lbHMuY29tcG9uZW50c1szXSwgbV9jb2xv
clNwYWNlKTsKK30KKwogU3RyaW5nIEV4dGVuZGVkQ29sb3I6OmNzc1RleHQoKSBjb25zdAogewog
ICAgIGNvbnN0IGNoYXIqIGNvbG9yU3BhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbmRlZENvbG9yLmgKaW5kZXggY2E4MmI4N2ViZWJlMDZmOWRjMDdhNDYz
MGM4ODE4ZWNjMWE4NTk0NC4uZDIxMDBlNDc1ZjZiZGM0MTY2ZTU3NmNkZTBiMjIwNjAxYjQwN2Rm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRD
b2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29s
b3IuaApAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAKICAgICBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yU3BhY2U7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JU
IHVuc2lnbmVkIGhhc2goKSBjb25zdDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjc3NU
ZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC03MSw0ICs3MywxNCBAQCBwcml2YXRlOgogICAg
IENvbG9yU3BhY2UgbV9jb2xvclNwYWNlIHsgQ29sb3JTcGFjZTo6U1JHQiB9OwogfTsKIAoraW5s
aW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFeHRlbmRlZENvbG9yJiBhLCBjb25zdCBFeHRlbmRl
ZENvbG9yJiBiKQoreworICAgIHJldHVybiBhLmNvbG9yU3BhY2UoKSA9PSBiLmNvbG9yU3BhY2Uo
KSAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGEuY2hhbm5lbHMoKSwgYi5jaGFubmVscygpKTsKK30K
KworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBFeHRlbmRlZENvbG9yJiBhLCBjb25zdCBF
eHRlbmRlZENvbG9yJiBiKQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmNmRjZTFkNjZi
OTcxMWRiNWZhZTY3N2I2NjJmYjcyYWE3NmY4YmM5Li5jZjk5ZDVmMDc2NGZiNDU1MDM1Y2E3YjEw
ZTU0MjI1MjBhNDcyYzc4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDUtMTYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IG9wZXJhdG9yPT0gYW5kIGhhc2go
KSBmb3IgRXh0ZW5kZWRDb2xvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExOTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRXh0ZW5kZWRDb2xvclRl
c3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA1LTE2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBz
b21lIEFQSSB0ZXN0IGZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRXh0ZW5kZWRDb2xvclRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9FeHRlbmRlZENvbG9yVGVzdHMuY3BwCmluZGV4IDc1MTJhZDc4ODI2MTFiNmM4
MDZlYTA2ODIzY2QwYmE5ZDU2OWZmOGYuLmZlMWY0MTEzZTU1ZjgyY2I2YmFkZTdkNTg3NDUzZWI2
ODU1ODhmOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9F
eHRlbmRlZENvbG9yVGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9FeHRlbmRlZENvbG9yVGVzdHMuY3BwCkBAIC03Nyw2ICs3Nyw2OSBAQCBURVNUKEV4dGVu
ZGVkQ29sb3IsIEFzc2lnbm1lbnQpCiAgICAgRVhQRUNUX0VRKGMyLmNzc1RleHQoKSwgImNvbG9y
KGRpc3BsYXktcDMgMSAwLjUgMC4yNSkiKTsKIH0KIAorVEVTVChFeHRlbmRlZENvbG9yLCBFcXVh
bGl0eSkKK3sKKyAgICB7CisgICAgICAgIENvbG9yIGMxKDEuMCwgMC41LCAwLjI1LCAxLjAsIENv
bG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVYUEVDVF9UUlVFKGMxLmlzRXh0ZW5kZWQo
KSk7CisKKyAgICAgICAgQ29sb3IgYzIoMS4wLCAwLjUsIDAuMjUsIDEuMCwgQ29sb3JTcGFjZTo6
RGlzcGxheVAzKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoYzEuaXNFeHRlbmRlZCgpKTsKKworICAg
ICAgICBFWFBFQ1RfRVEoYzEsIGMyKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIENvbG9yIGMx
KDEuMCwgMC41LCAwLjI1LCAxLjAsIENvbG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVY
UEVDVF9UUlVFKGMxLmlzRXh0ZW5kZWQoKSk7CisKKyAgICAgICAgQ29sb3IgYzIoMS4wLCAwLjUs
IDAuMjUsIDEuMCwgQ29sb3JTcGFjZTo6U1JHQik7CisgICAgICAgIEVYUEVDVF9UUlVFKGMxLmlz
RXh0ZW5kZWQoKSk7CisKKyAgICAgICAgRVhQRUNUX05FKGMxLCBjMik7CisgICAgfQorCisgICAg
aW50IHIgPSAyNTU7CisgICAgaW50IGcgPSAxMjg7CisgICAgaW50IGIgPSA2MzsKKyAgICBpbnQg
YSA9IDEyNzsKKyAgICBDb2xvciByZ2IxKHIgLyAyNTUuMCwgZyAvIDI1NS4wLCBiIC8gMjU1LjAs
IGEgLyAyNTUuMCwgQ29sb3JTcGFjZTo6U1JHQik7CisgICAgQ29sb3IgcmdiMihyLCBnLCBiLCBh
KTsKKyAgICBFWFBFQ1RfTkUocmdiMSwgcmdiMik7CisgICAgRVhQRUNUX05FKHJnYjIsIHJnYjEp
OworfQorCitURVNUKEV4dGVuZGVkQ29sb3IsIEhhc2gpCit7CisgICAgeworICAgICAgICBDb2xv
ciBjMSgxLjAsIDAuNSwgMC4yNSwgMS4wLCBDb2xvclNwYWNlOjpEaXNwbGF5UDMpOworICAgICAg
ICBFWFBFQ1RfVFJVRShjMS5pc0V4dGVuZGVkKCkpOworCisgICAgICAgIENvbG9yIGMyKDEuMCwg
MC41LCAwLjI1LCAxLjAsIENvbG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVYUEVDVF9U
UlVFKGMxLmlzRXh0ZW5kZWQoKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKGMxLmhhc2goKSwgYzIu
aGFzaCgpKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIENvbG9yIGMxKDEuMCwgMC41LCAwLjI1
LCAxLjAsIENvbG9yU3BhY2U6OkRpc3BsYXlQMyk7CisgICAgICAgIEVYUEVDVF9UUlVFKGMxLmlz
RXh0ZW5kZWQoKSk7CisKKyAgICAgICAgQ29sb3IgYzIoMS4wLCAwLjUsIDAuMjUsIDEuMCwgQ29s
b3JTcGFjZTo6U1JHQik7CisgICAgICAgIEVYUEVDVF9UUlVFKGMxLmlzRXh0ZW5kZWQoKSk7CisK
KyAgICAgICAgRVhQRUNUX05FKGMxLmhhc2goKSwgYzIuaGFzaCgpKTsKKyAgICB9CisKKyAgICBp
bnQgciA9IDI1NTsKKyAgICBpbnQgZyA9IDEyODsKKyAgICBpbnQgYiA9IDYzOworICAgIGludCBh
ID0gMTI3OworICAgIENvbG9yIHJnYjEociAvIDI1NS4wLCBnIC8gMjU1LjAsIGIgLyAyNTUuMCwg
YSAvIDI1NS4wLCBDb2xvclNwYWNlOjpTUkdCKTsKKyAgICBDb2xvciByZ2IyKHIsIGcsIGIsIGEp
OworICAgIEVYUEVDVF9ORShyZ2IxLmhhc2goKSwgcmdiMi5oYXNoKCkpOworfQorCiBURVNUKEV4
dGVuZGVkQ29sb3IsIE1vdmVDb25zdHJ1Y3RvcikKIHsKICAgICBDb2xvciBjMSgxLjAsIDAuNSwg
MC4yNSwgMS4wLCBDb2xvclNwYWNlOjpEaXNwbGF5UDMpOwo=
</data>
<flag name="review"
          id="415013"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>