<?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>87601</bug_id>
          
          <creation_ts>2012-05-27 15:03:33 -0700</creation_ts>
          <short_desc>[BlackBerry] Add support for layers with scale invariant size</short_desc>
          <delta_ts>2012-05-28 15:49:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87600</dependson>
          <blocked>87602</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Arvid Nilsson">anilsson</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>kpiascik</cc>
    
    <cc>manyoso</cc>
    
    <cc>mifenton</cc>
    
    <cc>mlattanzio</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>634790</commentid>
    <comment_count>0</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 15:03:33 -0700</bug_when>
    <thetext>To support layers that have a &quot;floating&quot; appearance, i.e. don&apos;t change size
    when the web page is drawn at a different scale, we add a new layer property
    named &quot;sizeIsScaleInvariant&quot;.
    
    The anchor position will still be given in document coordinates for these
    &quot;floating&quot; layers, so this is well suited for interface elements like selection
    handles whose size is always the same but move with the web page contents.
    
    PR #156812


Please note that this has not been internally reviewed yet, so it needs actual review. And also, it has a dependency that needs to be landed first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634802</commentid>
    <comment_count>1</comment_count>
      <attachid>144243</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 15:38:57 -0700</bug_when>
    <thetext>Created attachment 144243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634807</commentid>
    <comment_count>2</comment_count>
      <attachid>144243</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 15:50:22 -0700</bug_when>
    <thetext>Comment on attachment 144243
Patch

Hang on, something&apos;s not quite right here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634810</commentid>
    <comment_count>3</comment_count>
      <attachid>144248</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-27 16:09:50 -0700</bug_when>
    <thetext>Created attachment 144248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635274</commentid>
    <comment_count>4</comment_count>
      <attachid>144248</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-28 09:08:24 -0700</bug_when>
    <thetext>Comment on attachment 144248
Patch

Minor: It is a little bit weird to me &quot;scale&quot; is the first argument even it can be ignored. Does it make sense to store 1/scale if it is used very often?

internally LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635290</commentid>
    <comment_count>5</comment_count>
      <attachid>144248</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-28 09:36:59 -0700</bug_when>
    <thetext>Comment on attachment 144248
Patch

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635292</commentid>
    <comment_count>6</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-28 09:39:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 144248 [details])
&gt; Minor: It is a little bit weird to me &quot;scale&quot; is the first argument even it can be ignored. Does it make sense to store 1/scale if it is used very often?
&gt; 
&gt; internally LGTM

Layers which use 1/scale are very uncommon, it&apos;s only the selection handles andd fcc.

I initially had it last, then moved it first on a whim... It doesn&apos;t matter all that much does it? I was thinking about the order you&apos;d use the params (if you used them all)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635397</commentid>
    <comment_count>7</comment_count>
      <attachid>144395</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-28 13:48:25 -0700</bug_when>
    <thetext>Created attachment 144395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635398</commentid>
    <comment_count>8</comment_count>
      <attachid>144395</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-05-28 13:49:27 -0700</bug_when>
    <thetext>Comment on attachment 144395
Patch

The dependency, #87600 changed after review comments, so this one needed to be updated to apply cleanly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635405</commentid>
    <comment_count>9</comment_count>
      <attachid>144395</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-28 14:18:38 -0700</bug_when>
    <thetext>Comment on attachment 144395
Patch

Looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635443</commentid>
    <comment_count>10</comment_count>
      <attachid>144395</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 15:49:34 -0700</bug_when>
    <thetext>Comment on attachment 144395
Patch

Clearing flags on attachment: 144395

Committed r118710: &lt;http://trac.webkit.org/changeset/118710&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635444</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-28 15:49:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144243</attachid>
            <date>2012-05-27 15:38:57 -0700</date>
            <delta_ts>2012-05-27 16:09:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87601-20120528003855.patch</filename>
            <type>text/plain</type>
            <size>18842</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNlNzM5ZGQ2NWEzNGI0
NWQ0YTJjNGZlMzcxYzZkNmNjNTY0YjI0MS4uZTZmNTdhNzUxNDUxMmYzNjEyNTE2ZTdiODU0ZWU3
NTMzOTcwYjI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEyLTA1LTI3ICBBcnZp
ZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAorICAgICAgICBbQmxhY2tCZXJyeV0gQWRk
IHN1cHBvcnQgZm9yIGxheWVycyB3aXRoIHNjYWxlIGludmFyaWFudCBzaXplCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzYwMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHN1cHBvcnQgbGF5ZXJzIHRo
YXQgaGF2ZSBhICJmbG9hdGluZyIgYXBwZWFyYW5jZSwgaS5lLiBkb24ndCBjaGFuZ2Ugc2l6ZQor
ICAgICAgICB3aGVuIHRoZSB3ZWIgcGFnZSBpcyBkcmF3biBhdCBhIGRpZmZlcmVudCBzY2FsZSwg
d2UgYWRkIGEgbmV3IGxheWVyIHByb3BlcnR5CisgICAgICAgIG5hbWVkICJzaXplSXNTY2FsZUlu
dmFyaWFudCIuCisKKyAgICAgICAgVGhlIGFuY2hvciBwb3NpdGlvbiB3aWxsIHN0aWxsIGJlIGdp
dmVuIGluIGRvY3VtZW50IGNvb3JkaW5hdGVzIGZvciB0aGVzZQorICAgICAgICAiZmxvYXRpbmci
IGxheWVycywgc28gdGhpcyBpcyB3ZWxsIHN1aXRlZCBmb3IgaW50ZXJmYWNlIGVsZW1lbnRzIGxp
a2Ugc2VsZWN0aW9uCisgICAgICAgIGhhbmRsZXMgd2hvc2Ugc2l6ZSBpcyBhbHdheXMgdGhlIHNh
bWUgYnV0IG1vdmUgd2l0aCB0aGUgd2ViIHBhZ2UgY29udGVudHMuCisKKyAgICAgICAgUFIgIzE1
NjgxMgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBv
c2l0aW5nVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJl
YWQ6OnNldERyYXdUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGlu
Z1RocmVhZDo6ZHJhd1RleHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRp
bmdUaHJlYWQ6OmRyYXdNaXNzaW5nVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5oOgorICAgICAgICAoTGF5ZXJD
b21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9MYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50Lmg6CisgICAgICAgIChMYXllckNvbXBvc2l0
aW5nVGhyZWFkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJl
YWRDbGllbnQ6OmRyYXdNaXNzaW5nVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTGF5ZXJEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckRhdGE6
OkxheWVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckRhdGE6OnNpemVJc1NjYWxlSW52
YXJpYW50KToKKyAgICAgICAgKExheWVyRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
UmVuZGVyZXI6OkxheWVyUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJl
cjo6Y29tcG9zaXRlTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXI6OnVw
ZGF0ZUxheWVyc1JlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyOjpj
b21wb3NpdGVMYXllcnNSZWN1cnNpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvTGF5ZXJSZW5kZXJlci5oOgorICAgICAgICAoTGF5ZXJSZW5kZXJlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyVGlsZXI6OnVwZGF0ZVRleHR1cmVDb250ZW50c0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXI6OmRyYXdUZXh0dXJlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllclRpbGVyOjpkcmF3TWlzc2luZ1RleHR1cmVzKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyVGlsZXI6OmRyYXdUZXh0dXJlc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIuaDoKKyAgICAgICAgKExheWVyVGlsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJl
YWQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFkOjpzZXRTaXplSXNTY2Fs
ZUludmFyaWFudCk6CisgICAgICAgIChMYXllcldlYktpdFRocmVhZCk6CisKKzIwMTItMDUtMjcg
IEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgorCiAgICAgICAgIFtCbGFja0JlcnJ5
XSBNYWtlIGN1c3RvbSBjb21wb3NpdGluZyB0aHJlYWQgbGF5ZXJzIG1vcmUgZmxleGlibGUKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NjAwCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5
ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWQuY3BwCmluZGV4IGI1NDRhOTI3OWU1
OGRkZDFmOTIyNmEzZTFjMTU5MTY2YTRiZjA1NjUuLmU4YmY2NzFjODNlMWI4MzQ5NmYzMzg2MTMw
NmMxMjUxYjA1N2MzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFk
LmNwcApAQCAtMTEyLDEyICsxMTIsMTggQEAgdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpk
ZWxldGVUZXh0dXJlcygpCiAgICAgICAgIG1fY2xpZW50LT5kZWxldGVUZXh0dXJlcyh0aGlzKTsK
IH0KIAotdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpzZXREcmF3VHJhbnNmb3JtKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpCit2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJl
YWQ6OnNldERyYXdUcmFuc2Zvcm0oZG91YmxlIHNjYWxlLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgbWF0cml4KQogewogICAgIG1fZHJhd1RyYW5zZm9ybSA9IG1hdHJpeDsKIAogICAgIGZs
b2F0IGJ4ID0gbV9ib3VuZHMud2lkdGgoKSAvIDIuMDsKICAgICBmbG9hdCBieSA9IG1fYm91bmRz
LmhlaWdodCgpIC8gMi4wOworCisgICAgaWYgKHNpemVJc1NjYWxlSW52YXJpYW50KCkpIHsKKyAg
ICAgICAgYnggLz0gc2NhbGU7CisgICAgICAgIGJ5IC89IHNjYWxlOworICAgIH0KKwogICAgIG1f
dHJhbnNmb3JtZWRCb3VuZHMuc2V0UDEobWF0cml4Lm1hcFBvaW50KEZsb2F0UG9pbnQoLWJ4LCAt
YnkpKSk7CiAgICAgbV90cmFuc2Zvcm1lZEJvdW5kcy5zZXRQMihtYXRyaXgubWFwUG9pbnQoRmxv
YXRQb2ludCgtYngsIGJ5KSkpOwogICAgIG1fdHJhbnNmb3JtZWRCb3VuZHMuc2V0UDMobWF0cml4
Lm1hcFBvaW50KEZsb2F0UG9pbnQoYngsIGJ5KSkpOwpAQCAtMTg4LDcgKzE5NCw3IEBAIEZsb2F0
UXVhZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpnZXRUcmFuc2Zvcm1lZEhvbGVQdW5jaFJlY3Qo
KSBjb25zdAogICAgIHJldHVybiBnZXRUcmFuc2Zvcm1lZFJlY3QobV9ib3VuZHMsIGRyYXdSZWN0
LCBtX2RyYXdUcmFuc2Zvcm0pOwogfQogCi12b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OmRy
YXdUZXh0dXJlcyhpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgdmlzaWJsZVJlY3QpCit2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6
OmRyYXdUZXh0dXJlcyhkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4
Q29vcmRMb2NhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiB2aXNpYmxlUmVjdCkKIHsKICAgICBzdGF0
aWMgZmxvYXQgdGV4Y29vcmRzWzQgKiAyXSA9IHsgMCwgMCwgIDAsIDEsICAxLCAxLCAgMSwgMCB9
OwogCkBAIC0yNjAsNyArMjY2LDcgQEAgdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpkcmF3
VGV4dHVyZXMoaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2EKICAgICB9CiAK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kcmF3VGV4dHVyZXModGhpcywg
cG9zaXRpb25Mb2NhdGlvbiwgdGV4Q29vcmRMb2NhdGlvbik7CisgICAgICAgIG1fY2xpZW50LT5k
cmF3VGV4dHVyZXModGhpcywgc2NhbGUsIHBvc2l0aW9uTG9jYXRpb24sIHRleENvb3JkTG9jYXRp
b24pOwogfQogCiB2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OmRyYXdTdXJmYWNlKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3VHJhbnNmb3JtLCBMYXllckNvbXBvc2l0aW5nVGhy
ZWFkKiBtYXNrLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24pCkBA
IC0yOTQsMTAgKzMwMCwxMCBAQCBib29sIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6Omhhc01pc3Np
bmdUZXh0dXJlcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPmhhc01p
c3NpbmdUZXh0dXJlcyh0aGlzKSA6IGZhbHNlOwogfQogCi12b2lkIExheWVyQ29tcG9zaXRpbmdU
aHJlYWQ6OmRyYXdNaXNzaW5nVGV4dHVyZXMoaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhD
b29yZExvY2F0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHZpc2libGVSZWN0KQordm9pZCBMYXllckNv
bXBvc2l0aW5nVGhyZWFkOjpkcmF3TWlzc2luZ1RleHR1cmVzKGRvdWJsZSBzY2FsZSwgaW50IHBv
c2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHZp
c2libGVSZWN0KQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRyYXdN
aXNzaW5nVGV4dHVyZXModGhpcywgcG9zaXRpb25Mb2NhdGlvbiwgdGV4Q29vcmRMb2NhdGlvbik7
CisgICAgICAgIG1fY2xpZW50LT5kcmF3TWlzc2luZ1RleHR1cmVzKHRoaXMsIHNjYWxlLCBwb3Np
dGlvbkxvY2F0aW9uLCB0ZXhDb29yZExvY2F0aW9uKTsKIH0KIAogdm9pZCBMYXllckNvbXBvc2l0
aW5nVGhyZWFkOjpyZWxlYXNlVGV4dHVyZVJlc291cmNlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJD
b21wb3NpdGluZ1RocmVhZC5oCmluZGV4IDA4ODliZTJjZWExNjY1MjU4MTAyZGMxMTRiODc3YmI3
Njk4MzM3MDEuLjllNzcwNDA4MjRmOWI5YmEyZjE1ZGQ4MDI2NDRiZjYwZjlmOGI3MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJD
b21wb3NpdGluZ1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5oCkBAIC04NCw3ICs4NCw3IEBAIHB1
YmxpYzoKICAgICAvLyBUaGUgbGF5ZXIgcmVuZGVyZXIgbXVzdCBiZSBzZXQgaWYgdGhlIGxheWVy
IGhhcyBiZWVuIHJlbmRlcmVkCiAgICAgdm9pZCBzZXRMYXllclJlbmRlcmVyKExheWVyUmVuZGVy
ZXIqKTsKIAotICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYpOworICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9ybShkb3VibGUgc2NhbGUsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGRy
YXdUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2RyYXdUcmFuc2Zvcm07IH0KIAogICAgIHZv
aWQgc2V0RHJhd09wYWNpdHkoZmxvYXQgb3BhY2l0eSkgeyBtX2RyYXdPcGFjaXR5ID0gb3BhY2l0
eTsgfQpAQCAtMTA2LDkgKzEwNiw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGVsZXRlVGV4dHVy
ZXMoKTsKIAotICAgIHZvaWQgZHJhd1RleHR1cmVzKGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQg
dGV4Q29vcmRMb2NhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiB2aXNpYmxlUmVjdCk7CisgICAgdm9p
ZCBkcmF3VGV4dHVyZXMoZG91YmxlIHNjYWxlLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRl
eENvb3JkTG9jYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgdmlzaWJsZVJlY3QpOwogICAgIGJvb2wg
aGFzTWlzc2luZ1RleHR1cmVzKCkgY29uc3Q7Ci0gICAgdm9pZCBkcmF3TWlzc2luZ1RleHR1cmVz
KGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiB2aXNpYmxlUmVjdCk7CisgICAgdm9pZCBkcmF3TWlzc2luZ1RleHR1cmVzKGRvdWJsZSBz
Y2FsZSwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHZpc2libGVSZWN0KTsKICAgICB2b2lkIGRyYXdTdXJmYWNlKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiwgTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbWFzaywgaW50IHBvc2l0
aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uKTsKIAogICAgIHZvaWQgcmVsZWFzZVRl
eHR1cmVSZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhy
ZWFkQ2xpZW50LmgKaW5kZXggNTRlYmY5ZWMxOTgzNzZiYWM4NzQyNGVkZjg1NmJlOWMxODlkMDgw
MC4uNzQ2YWRlYTQ5N2EwNWIzODIxNjJjZWY1MTk3ZDk1YTc5ZGJlZTBlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0
aW5nVGhyZWFkQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50LmgKQEAgLTM0LDcgKzM0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsYXllclZpc2liaWxpdHlDaGFuZ2VkKExheWVy
Q29tcG9zaXRpbmdUaHJlYWQqLCBib29sIHZpc2libGUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCB1cGxvYWRUZXh0dXJlc0lmTmVlZGVkKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKiwgaW50
IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBkb3VibGUgc2NhbGUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQq
LCBkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlv
bikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5n
VGhyZWFkKikgPSAwOwogCiAgICAgLy8gT3B0aW9uYWwuIEFsbG93cyBsYXllcnMgdG8gc2VydmUg
YXMgYSBtYXNrIGZvciBvdGhlciBsYXllcnMKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiAg
ICAgLy8gT3B0aW9uYWwuIEFsbG93cyBsYXllcnMgdG8gaGF2ZSB1bmNhY2hlZCByZWdpb25zLCB0
eXBpY2FsbHkgZHJhd24gYXMgY2hlY2tlcmJvYXJkCiAgICAgdmlydHVhbCBib29sIGhhc01pc3Np
bmdUZXh0dXJlcyhjb25zdCBMYXllckNvbXBvc2l0aW5nVGhyZWFkKikgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZHJhd01pc3NpbmdUZXh0dXJlcyhMYXllckNvbXBv
c2l0aW5nVGhyZWFkKiwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9u
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZHJhd01pc3NpbmdUZXh0dXJlcyhMYXllckNvbXBvc2l0
aW5nVGhyZWFkKiwgZG91YmxlIHNjYWxlLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENv
b3JkTG9jYXRpb24pIHsgfQogCiAgICAgLy8gVW5saWtlIHRoZSBvdGhlciBtZXRob2RzIGhlcmUs
IHRoaXMgb25lIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBXZWJLaXQgdGhyZWFkCiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlQ29tbWl0KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckRhdGEuaAppbmRleCA4ZWI0YzVmYjI2
NDZkNTEzYzcxZDM3NmM4MWQ2YWJhMDdiMjRhN2MzLi5kOTkxMjE1NTExMTE5MGM1ZjRjNmJjMTIx
MjE1NzQxMWExMTFlODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJEYXRhLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHVibGlj
OgogICAgICAgICAsIG1faGFzRml4ZWRDb250YWluZXIoZmFsc2UpCiAgICAgICAgICwgbV9oYXNG
aXhlZEFuY2VzdG9ySW5ET01UcmVlKGZhbHNlKQogICAgICAgICAsIG1faXNWaXNpYmxlKHRydWUp
CisgICAgICAgICwgbV9zaXplSXNTY2FsZUludmFyaWFudChmYWxzZSkKICAgICB7CiAgICAgfQog
CkBAIC0xMDQsNiArMTA1LDggQEAgcHVibGljOgogCiAgICAgSW50U2l6ZSBib3VuZHMoKSBjb25z
dCB7IHJldHVybiBtX2JvdW5kczsgfQogCisgICAgYm9vbCBzaXplSXNTY2FsZUludmFyaWFudCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2l6ZUlzU2NhbGVJbnZhcmlhbnQ7IH0KKwogICAgIGJvb2wgZG91
YmxlU2lkZWQoKSBjb25zdCB7IHJldHVybiBtX2RvdWJsZVNpZGVkOyB9CiAKICAgICBGbG9hdFJl
Y3QgZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CkBAIC0yMDUsNiArMjA4LDcgQEAg
cHJvdGVjdGVkOgogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBpcyBvbmx5IGF2YWlsYWJsZSBmb3Ig
bWVkaWEgKHZpZGVvKSBhbmQgcGx1Z2luIGxheWVycy4KICAgICB1bnNpZ25lZCBtX2lzVmlzaWJs
ZSA6IDE7CisgICAgdW5zaWduZWQgbV9zaXplSXNTY2FsZUludmFyaWFudCA6IDE7CiAKICAgICAv
LyBDQVVUSU9OOiBhbGwgdGhlIGRhdGEgbWVtYmVycyBhcmUgY29waWVkIGZyb20gb25lIGluc3Rh
bmNlIHRvIGFub3RoZXIKICAgICAvLyBpLmUuIGZyb20gb25lIHRocmVhZCB0byBhbm90aGVyIGlu
IHRoZSByZXBsaWNhdGUgbWV0aG9kLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJSZW5kZXJlci5jcHAKaW5kZXggM2Nl
M2Q4MDIwNDUwODVlNDExYTc2NWM1ODkyMmVlOWZjNDRjYTljNy4uZjQyMTQ0ZWMwZDljY2JiOTU1
MDNiNGQwYWIzODMwNTE2M2VkMDMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyUmVuZGVyZXIuY3BwCkBAIC0x
NTIsNiArMTUyLDcgQEAgTGF5ZXJSZW5kZXJlcjo6TGF5ZXJSZW5kZXJlcihHTEVTMkNvbnRleHQq
IGNvbnRleHQpCiAgICAgLCBtX2NoZWNrZXJQcm9ncmFtT2JqZWN0KDApCiAgICAgLCBtX3Bvc2l0
aW9uTG9jYXRpb24oMCkKICAgICAsIG1fdGV4Q29vcmRMb2NhdGlvbigxKQorICAgICwgbV9zY2Fs
ZSgxLjApCiAgICAgLCBtX2FuaW1hdGlvblRpbWUoLW51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCkpCiAgICAgLCBtX2ZibygwKQogICAgICwgbV9jdXJyZW50TGF5ZXJSZW5kZXJlclN1
cmZhY2UoMCkKQEAgLTMxOSw2ICszMjAsMTIgQEAgdm9pZCBMYXllclJlbmRlcmVyOjpjb21wb3Np
dGVMYXllcnMoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgTGF5ZXJDb20KICAg
ICBpZiAoIXJvb3RMYXllcikKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gVXNlZCB0byBkcmF3
IHNjYWxlIGludmFyaWFudCBsYXllcnMuIFdlIGFzc3VtZSB1bmlmb3JtIHNjYWxlLgorICAgIC8v
IFRoZSBtYXRyaXggbWFwcyB0byBub3JtYWxpemVkIGRldmljZSBjb29yZGluYXRlcywgYSBzeXN0
ZW0gdGhhdCBtYXBzIHRoZQorICAgIC8vIHZpZXdwb3J0IHRvIHRoZSBpbnRlcnZhbCAtMSB0byAx
LgorICAgIC8vIFNvIGl0IGhhcyB0byBzY2FsZSBkb3duIGJ5IGEgZmFjdG9yIGVxdWFsIHRvIG9u
ZSBoYWxmIHRoZSB2aWV3cG9ydC4KKyAgICBtX3NjYWxlID0gbWF0cml4Lm0xMSgpICogbV92aWV3
cG9ydC53aWR0aCgpIC8gMjsKKwogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZD4gPiBzdXJmYWNlTGF5ZXJzOwogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8TGF5ZXJDb21w
b3NpdGluZ1RocmVhZD4gPiYgc3VibGF5ZXJzID0gcm9vdExheWVyLT5nZXRTdWJsYXllcnMoKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YmxheWVycy5zaXplKCk7IGkrKykgewpAQCAt
NjU4LDcgKzY2NSw5IEBAIHZvaWQgTGF5ZXJSZW5kZXJlcjo6dXBkYXRlTGF5ZXJzUmVjdXJzaXZl
KExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBjb25zdCBUCiAgICAgLy8gV2hlcmU6IFAg
aXMgdGhlIHByb2plY3Rpb24gbWF0cml4CiAgICAgLy8gICAgICAgIE0gaXMgdGhlIGxheWVyJ3Mg
bWF0cml4IGNvbXB1dGVkIGFib3ZlCiAgICAgLy8gICAgICAgIFMgaXMgdGhlIHNjYWxlIGFkanVz
dG1lbnQgKHRvIHNjYWxlIHVwIHRvIHRoZSBsYXllciBzaXplKQotICAgIEludFNpemUgYm91bmRz
ID0gbGF5ZXItPmJvdW5kcygpOworICAgIEZsb2F0U2l6ZSBib3VuZHMgPSBsYXllci0+Ym91bmRz
KCk7CisgICAgaWYgKGxheWVyLT5zaXplSXNTY2FsZUludmFyaWFudCgpKQorICAgICAgICBib3Vu
ZHMuc2NhbGUoMS4wIC8gbV9zY2FsZSk7CiAgICAgRmxvYXRQb2ludCBhbmNob3JQb2ludCA9IGxh
eWVyLT5hbmNob3JQb2ludCgpOwogICAgIEZsb2F0UG9pbnQgcG9zaXRpb24gPSBsYXllci0+cG9z
aXRpb24oKTsKIApAQCAtNzI1LDcgKzczNCw3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlcjo6dXBkYXRl
TGF5ZXJzUmVjdXJzaXZlKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBjb25zdCBUCiAg
ICAgICAgICAgICBzdXJmYWNlLT5zZXRSZXBsaWNhRHJhd1RyYW5zZm9ybShyZXBsaWNhTWF0cml4
KTsKICAgICAgICAgfQogCi0gICAgICAgIEludFJlY3QgZHJhd1JlY3QgPSBJbnRSZWN0KEludFBv
aW50KCksIGJvdW5kcyk7CisgICAgICAgIEludFJlY3QgZHJhd1JlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGJvdW5kcykpOwogICAgICAgICBzdXJmYWNlLT5z
ZXRDb250ZW50UmVjdChkcmF3UmVjdCk7CiAKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
cHJvamVjdGlvbk1hdHJpeCA9IG9ydGhvTWF0cml4KGRyYXdSZWN0LngoKSwgZHJhd1JlY3QubWF4
WCgpLCBkcmF3UmVjdC55KCksIGRyYXdSZWN0Lm1heFkoKSwgLTEwMDAsIDEwMDApOwpAQCAtNzM4
LDcgKzc0Nyw3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlcjo6dXBkYXRlTGF5ZXJzUmVjdXJzaXZlKExh
eWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBjb25zdCBUCiAgICAgICAgIHN1cmZhY2VMYXll
cnMuYXBwZW5kKGxheWVyKTsKICAgICB9CiAKLSAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShs
b2NhbE1hdHJpeCk7CisgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm0obV9zY2FsZSwgbG9jYWxN
YXRyaXgpOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGJvb2wgbGF5ZXJWaXNpYmxlID0gY2xp
cFJlY3QuaW50ZXJzZWN0cyhsYXllci0+Z2V0RHJhd1JlY3QoKSkgfHwgbGF5ZXItPm1lZGlhUGxh
eWVyKCk7CkBAIC04NDYsNyArODU1LDcgQEAgdm9pZCBMYXllclJlbmRlcmVyOjpjb21wb3NpdGVM
YXllcnNSZWN1cnNpdmUoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGludAogICAgICAg
ICBpZiAoIWRyYXdTdXJmYWNlKSB7CiAgICAgICAgICAgICBnbFVzZVByb2dyYW0obV9sYXllclBy
b2dyYW1PYmplY3Rbc2hhZGVyXSk7CiAgICAgICAgICAgICBnbFVuaWZvcm0xZihtX2FscGhhTG9j
YXRpb25bc2hhZGVyXSwgbGF5ZXItPmRyYXdPcGFjaXR5KCkpOwotICAgICAgICAgICAgbGF5ZXIt
PmRyYXdUZXh0dXJlcyhtX3Bvc2l0aW9uTG9jYXRpb24sIG1fdGV4Q29vcmRMb2NhdGlvbiwgbV92
aXNpYmxlUmVjdCk7CisgICAgICAgICAgICBsYXllci0+ZHJhd1RleHR1cmVzKG1fc2NhbGUsIG1f
cG9zaXRpb25Mb2NhdGlvbiwgbV90ZXhDb29yZExvY2F0aW9uLCBtX3Zpc2libGVSZWN0KTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIERyYXcgdGhlIHJlZmxlY3Rpb24gaWYgaXQg
ZXhpc3RzLgogICAgICAgICAgICAgaWYgKGxheWVyLT5yZXBsaWNhTGF5ZXIoKSkgewpAQCAtODcw
LDcgKzg3OSw3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlcjo6Y29tcG9zaXRlTGF5ZXJzUmVjdXJzaXZl
KExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBpbnQKICAgICAgICAgaWYgKGxheWVyLT5o
YXNNaXNzaW5nVGV4dHVyZXMoKSkgewogICAgICAgICAgICAgZ2xEaXNhYmxlKEdMX0JMRU5EKTsK
ICAgICAgICAgICAgIGdsVXNlUHJvZ3JhbShtX2NoZWNrZXJQcm9ncmFtT2JqZWN0KTsKLSAgICAg
ICAgICAgIGxheWVyLT5kcmF3TWlzc2luZ1RleHR1cmVzKG1fcG9zaXRpb25Mb2NhdGlvbiwgbV90
ZXhDb29yZExvY2F0aW9uLCBtX3Zpc2libGVSZWN0KTsKKyAgICAgICAgICAgIGxheWVyLT5kcmF3
TWlzc2luZ1RleHR1cmVzKG1fc2NhbGUsIG1fcG9zaXRpb25Mb2NhdGlvbiwgbV90ZXhDb29yZExv
Y2F0aW9uLCBtX3Zpc2libGVSZWN0KTsKICAgICAgICAgICAgIGdsRW5hYmxlKEdMX0JMRU5EKTsK
ICAgICAgICAgICAgIGdsQmxlbmRGdW5jKEdMX09ORSwgR0xfT05FX01JTlVTX1NSQ19BTFBIQSk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTGF5ZXJSZW5kZXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmgKaW5kZXggYTAzYTc5OTYxODQzMzllMTQw
NjBlNGVhYWViNDNjYWY5MDgyYzc4MS4uNWQyMWVjYmJjYzQwNThkMTllODQxYjAyOWJkMWJiZmMw
ZTc5OTUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9MYXllclJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmgKQEAgLTE3Niw2ICsxNzYsNyBAQCBwcml2
YXRlOgogICAgIGludCBtX2NoZWNrZXJTdXJmYWNlSGVpZ2h0TG9jYXRpb247CiAKICAgICAvLyBD
dXJyZW50IGRyYXcgY29uZmlndXJhdGlvbi4KKyAgICBkb3VibGUgbV9zY2FsZTsKICAgICBkb3Vi
bGUgbV9hbmltYXRpb25UaW1lOwogICAgIEZsb2F0UmVjdCBtX3Zpc2libGVSZWN0OwogICAgIElu
dFJlY3QgbV9sYXlvdXRSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJUaWxlci5jcHAKaW5kZXggMDQxMjdlZTQ1NTVj
OTcyYjViNTJiZjNjOTI1ZDEwN2E2NjUzOWZjOS4uMWMyM2RiYzYzMjljMGNmNzdiMGRmYTRkMDFm
MTJkNTRhNDUxZTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIuY3BwCkBAIC0xMjIsNiArMTIyLDExIEBA
IHZvaWQgTGF5ZXJUaWxlcjo6dXBkYXRlVGV4dHVyZUNvbnRlbnRzSWZOZWVkZWQoZG91YmxlIHNj
YWxlKQogICAgICAgICByZW5kZXJKb2JzID0gbV9yZW5kZXJKb2JzOwogICAgIH0KIAorICAgIC8v
IFRoZXJlJ3Mgbm8gcG9pbnQgaW4gZHJhd2luZyBjb250ZW50cyBhdCBhIGhpZ2hlciByZXNvbHV0
aW9uIGZvciBzY2FsZQorICAgIC8vIGludmFyaWFudCBsYXllcnMuCisgICAgaWYgKG1fbGF5ZXIt
PnNpemVJc1NjYWxlSW52YXJpYW50KCkpCisgICAgICAgIHNjYWxlID0gMS4wOworCiAgICAgYm9v
bCBpc1pvb21Kb2IgPSBmYWxzZTsKICAgICBpZiAoc2NhbGUgIT0gbV9jb250ZW50c1NjYWxlKSB7
CiAgICAgICAgIC8vIFRoZSBmaXJzdCB0aW1lIGFyb3VuZCwgaXQgZG9lcyBub3QgY291bnQgYXMg
YSB6b29tIGpvYi4KQEAgLTQ3MCwyMCArNDc1LDI1IEBAIHZvaWQgTGF5ZXJUaWxlcjo6cGVyZm9y
bVRpbGVKb2IoTGF5ZXJUaWxlKiB0aWxlLCBjb25zdCBUZXh0dXJlSm9iJiBqb2IsIGNvbnN0IElu
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTGF5ZXJUaWxlcjo6ZHJhd1Rl
eHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBpbnQgcG9zLCBpbnQgdGV4Q29v
cmQpCit2b2lkIExheWVyVGlsZXI6OmRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFk
KiBsYXllciwgZG91YmxlIHNjYWxlLCBpbnQgcG9zLCBpbnQgdGV4Q29vcmQpCiB7Ci0gICAgZHJh
d1RleHR1cmVzSW50ZXJuYWwobGF5ZXIsIHBvcywgdGV4Q29vcmQsIGZhbHNlIC8qIGRyYXdNaXNz
aW5nICovKTsKKyAgICBkcmF3VGV4dHVyZXNJbnRlcm5hbChsYXllciwgcG9zLCB0ZXhDb29yZCwg
c2NhbGUsIGZhbHNlIC8qIGRyYXdNaXNzaW5nICovKTsKIH0KIAotdm9pZCBMYXllclRpbGVyOjpk
cmF3TWlzc2luZ1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBpbnQgcG9z
LCBpbnQgdGV4Q29vcmQpCit2b2lkIExheWVyVGlsZXI6OmRyYXdNaXNzaW5nVGV4dHVyZXMoTGF5
ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGRvdWJsZSBzY2FsZSwgaW50IHBvcywgaW50IHRl
eENvb3JkKQogewotICAgIGRyYXdUZXh0dXJlc0ludGVybmFsKGxheWVyLCBwb3MsIHRleENvb3Jk
LCB0cnVlIC8qIGRyYXdNaXNzaW5nICovKTsKKyAgICBkcmF3VGV4dHVyZXNJbnRlcm5hbChsYXll
ciwgcG9zLCB0ZXhDb29yZCwgc2NhbGUsIHRydWUgLyogZHJhd01pc3NpbmcgKi8pOwogfQogCi12
b2lkIExheWVyVGlsZXI6OmRyYXdUZXh0dXJlc0ludGVybmFsKExheWVyQ29tcG9zaXRpbmdUaHJl
YWQqIGxheWVyLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24sIGJv
b2wgZHJhd01pc3NpbmcpCit2b2lkIExheWVyVGlsZXI6OmRyYXdUZXh0dXJlc0ludGVybmFsKExh
eWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxv
Y2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgYm9vbCBkcmF3TWlzc2luZykKIHsKICAgICBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZHJhd1RyYW5zZm9ybSA9IGxheWVyLT5kcmF3VHJh
bnNmb3JtKCk7Ci0gICAgSW50U2l6ZSBib3VuZHMgPSBsYXllci0+Ym91bmRzKCk7CisgICAgRmxv
YXRTaXplIGJvdW5kcyA9IGxheWVyLT5ib3VuZHMoKTsKKworICAgIGlmIChsYXllci0+c2l6ZUlz
U2NhbGVJbnZhcmlhbnQoKSkgeworICAgICAgICBib3VuZHMuc2V0V2lkdGgoYm91bmRzLndpZHRo
KCkgLyBzY2FsZSk7CisgICAgICAgIGJvdW5kcy5zZXRIZWlnaHQoYm91bmRzLndpZHRoKCkgLyBz
Y2FsZSk7CisgICAgfQogCiAgICAgZmxvYXQgdGV4Y29vcmRzWzQgKiAyXSA9IHsgMCwgMCwgIDAs
IDEsICAxLCAxLCAgMSwgMCB9OwogICAgIGZsb2F0IHZlcnRpY2VzWzQgKiA0XTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJUaWxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRp
bGVyLmgKaW5kZXggYWM4NjA5ODNhOGVjZjAxMzgxZTk3YjM2NzhmNWNhMDFkMmU1MzA2YS4uNzY5
NGRlYzcwYTUyNDNjZGU2ZWQ1MmQ5NGI5MmUwOTdjY2Y2YjNmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmgK
QEAgLTY2LDkgKzY2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsYXllclZpc2liaWxp
dHlDaGFuZ2VkKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBib29sIHZpc2libGUpOwogICAgIHZp
cnR1YWwgdm9pZCB1cGxvYWRUZXh0dXJlc0lmTmVlZGVkKExheWVyQ29tcG9zaXRpbmdUaHJlYWQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZShMYXllckNvbXBvc2l0aW5n
VGhyZWFkKik7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5n
VGhyZWFkKiwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBkb3Vi
bGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbik7CiAg
ICAgdmlydHVhbCBib29sIGhhc01pc3NpbmdUZXh0dXJlcyhjb25zdCBMYXllckNvbXBvc2l0aW5n
VGhyZWFkKikgY29uc3QgeyByZXR1cm4gbV9oYXNNaXNzaW5nVGV4dHVyZXM7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZHJhd01pc3NpbmdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKiwgaW50
IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZHJhd01pc3NpbmdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKiwgZG91YmxlIHNj
YWxlLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24pOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKik7CiAgICAg
dm9pZCBjb21taXRQZW5kaW5nVGV4dHVyZVVwbG9hZHMoKTsKIApAQCAtMTU3LDcgKzE1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBhZGRUaWxlSm9iKGNvbnN0IFRpbGVJbmRleCYsIGNvbnN0IFRl
eHR1cmVKb2ImLCBUaWxlSm9ic01hcCYpOwogICAgIHZvaWQgcGVyZm9ybVRpbGVKb2IoTGF5ZXJU
aWxlKiwgY29uc3QgVGV4dHVyZUpvYiYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIHByb2Nl
c3NUZXh0dXJlSm9iKGNvbnN0IFRleHR1cmVKb2ImLCBUaWxlSm9ic01hcCYpOwotICAgIHZvaWQg
ZHJhd1RleHR1cmVzSW50ZXJuYWwoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCosIGludCBwb3NpdGlv
bkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgYm9vbCBtaXNzaW5nKTsKKyAgICB2b2lk
IGRyYXdUZXh0dXJlc0ludGVybmFsKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBkb3VibGUgc2Nh
bGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgYm9vbCBtaXNz
aW5nKTsKICAgICB2b2lkIHBydW5lVGV4dHVyZXMoKTsKICAgICB2b2lkIHZpc2liaWxpdHlDaGFu
Z2VkKGJvb2wgbmVlZHNEaXNwbGF5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5oCmlu
ZGV4IDY4ODliYmZhMzk5MTAxM2U3NmU3NGQ0ZTI4MGM1NDFjZmM2YTcwN2MuLmIxY2QzYTgxNGI1
Y2Q1M2VmODZhZmMyMTgzYzQ5YjBlZDJiYjFkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhy
ZWFkLmgKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRCb3VuZHMoY29u
c3QgSW50U2l6ZSYpOwogCisgICAgdm9pZCBzZXRTaXplSXNTY2FsZUludmFyaWFudChib29sIGlu
dmFyaWFudCkgeyBtX3NpemVJc1NjYWxlSW52YXJpYW50ID0gaW52YXJpYW50OyBzZXROZWVkc0Nv
bW1pdCgpOyB9CisKICAgICB2b2lkIHNldERvdWJsZVNpZGVkKGJvb2wgZG91YmxlU2lkZWQpIHsg
bV9kb3VibGVTaWRlZCA9IGRvdWJsZVNpZGVkOyBzZXROZWVkc0NvbW1pdCgpOyB9CiAKICAgICB2
b2lkIHNldEZyYW1lKGNvbnN0IEZsb2F0UmVjdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144248</attachid>
            <date>2012-05-27 16:09:50 -0700</date>
            <delta_ts>2012-05-28 13:48:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87601-20120528010948.patch</filename>
            <type>text/plain</type>
            <size>18842</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNlNzM5ZGQ2NWEzNGI0
NWQ0YTJjNGZlMzcxYzZkNmNjNTY0YjI0MS4uZTZmNTdhNzUxNDUxMmYzNjEyNTE2ZTdiODU0ZWU3
NTMzOTcwYjI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEyLTA1LTI3ICBBcnZp
ZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAorICAgICAgICBbQmxhY2tCZXJyeV0gQWRk
IHN1cHBvcnQgZm9yIGxheWVycyB3aXRoIHNjYWxlIGludmFyaWFudCBzaXplCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzYwMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHN1cHBvcnQgbGF5ZXJzIHRo
YXQgaGF2ZSBhICJmbG9hdGluZyIgYXBwZWFyYW5jZSwgaS5lLiBkb24ndCBjaGFuZ2Ugc2l6ZQor
ICAgICAgICB3aGVuIHRoZSB3ZWIgcGFnZSBpcyBkcmF3biBhdCBhIGRpZmZlcmVudCBzY2FsZSwg
d2UgYWRkIGEgbmV3IGxheWVyIHByb3BlcnR5CisgICAgICAgIG5hbWVkICJzaXplSXNTY2FsZUlu
dmFyaWFudCIuCisKKyAgICAgICAgVGhlIGFuY2hvciBwb3NpdGlvbiB3aWxsIHN0aWxsIGJlIGdp
dmVuIGluIGRvY3VtZW50IGNvb3JkaW5hdGVzIGZvciB0aGVzZQorICAgICAgICAiZmxvYXRpbmci
IGxheWVycywgc28gdGhpcyBpcyB3ZWxsIHN1aXRlZCBmb3IgaW50ZXJmYWNlIGVsZW1lbnRzIGxp
a2Ugc2VsZWN0aW9uCisgICAgICAgIGhhbmRsZXMgd2hvc2Ugc2l6ZSBpcyBhbHdheXMgdGhlIHNh
bWUgYnV0IG1vdmUgd2l0aCB0aGUgd2ViIHBhZ2UgY29udGVudHMuCisKKyAgICAgICAgUFIgIzE1
NjgxMgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBv
c2l0aW5nVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJl
YWQ6OnNldERyYXdUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGlu
Z1RocmVhZDo6ZHJhd1RleHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRp
bmdUaHJlYWQ6OmRyYXdNaXNzaW5nVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5oOgorICAgICAgICAoTGF5ZXJD
b21wb3NpdGluZ1RocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJy
eS9MYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50Lmg6CisgICAgICAgIChMYXllckNvbXBvc2l0
aW5nVGhyZWFkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJl
YWRDbGllbnQ6OmRyYXdNaXNzaW5nVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTGF5ZXJEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckRhdGE6
OkxheWVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckRhdGE6OnNpemVJc1NjYWxlSW52
YXJpYW50KToKKyAgICAgICAgKExheWVyRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
UmVuZGVyZXI6OkxheWVyUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJl
cjo6Y29tcG9zaXRlTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXI6OnVw
ZGF0ZUxheWVyc1JlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyOjpj
b21wb3NpdGVMYXllcnNSZWN1cnNpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvTGF5ZXJSZW5kZXJlci5oOgorICAgICAgICAoTGF5ZXJSZW5kZXJlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyVGlsZXI6OnVwZGF0ZVRleHR1cmVDb250ZW50c0lmTmVlZGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXI6OmRyYXdUZXh0dXJlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllclRpbGVyOjpkcmF3TWlzc2luZ1RleHR1cmVzKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyVGlsZXI6OmRyYXdUZXh0dXJlc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIuaDoKKyAgICAgICAgKExheWVyVGlsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJl
YWQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFkOjpzZXRTaXplSXNTY2Fs
ZUludmFyaWFudCk6CisgICAgICAgIChMYXllcldlYktpdFRocmVhZCk6CisKKzIwMTItMDUtMjcg
IEFydmlkIE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgorCiAgICAgICAgIFtCbGFja0JlcnJ5
XSBNYWtlIGN1c3RvbSBjb21wb3NpdGluZyB0aHJlYWQgbGF5ZXJzIG1vcmUgZmxleGlibGUKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NjAwCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5
ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWQuY3BwCmluZGV4IGI1NDRhOTI3OWU1
OGRkZDFmOTIyNmEzZTFjMTU5MTY2YTRiZjA1NjUuLmU4YmY2NzFjODNlMWI4MzQ5NmYzMzg2MTMw
NmMxMjUxYjA1N2MzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFk
LmNwcApAQCAtMTEyLDEyICsxMTIsMTggQEAgdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpk
ZWxldGVUZXh0dXJlcygpCiAgICAgICAgIG1fY2xpZW50LT5kZWxldGVUZXh0dXJlcyh0aGlzKTsK
IH0KIAotdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpzZXREcmF3VHJhbnNmb3JtKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpCit2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJl
YWQ6OnNldERyYXdUcmFuc2Zvcm0oZG91YmxlIHNjYWxlLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgbWF0cml4KQogewogICAgIG1fZHJhd1RyYW5zZm9ybSA9IG1hdHJpeDsKIAogICAgIGZs
b2F0IGJ4ID0gbV9ib3VuZHMud2lkdGgoKSAvIDIuMDsKICAgICBmbG9hdCBieSA9IG1fYm91bmRz
LmhlaWdodCgpIC8gMi4wOworCisgICAgaWYgKHNpemVJc1NjYWxlSW52YXJpYW50KCkpIHsKKyAg
ICAgICAgYnggLz0gc2NhbGU7CisgICAgICAgIGJ5IC89IHNjYWxlOworICAgIH0KKwogICAgIG1f
dHJhbnNmb3JtZWRCb3VuZHMuc2V0UDEobWF0cml4Lm1hcFBvaW50KEZsb2F0UG9pbnQoLWJ4LCAt
YnkpKSk7CiAgICAgbV90cmFuc2Zvcm1lZEJvdW5kcy5zZXRQMihtYXRyaXgubWFwUG9pbnQoRmxv
YXRQb2ludCgtYngsIGJ5KSkpOwogICAgIG1fdHJhbnNmb3JtZWRCb3VuZHMuc2V0UDMobWF0cml4
Lm1hcFBvaW50KEZsb2F0UG9pbnQoYngsIGJ5KSkpOwpAQCAtMTg4LDcgKzE5NCw3IEBAIEZsb2F0
UXVhZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpnZXRUcmFuc2Zvcm1lZEhvbGVQdW5jaFJlY3Qo
KSBjb25zdAogICAgIHJldHVybiBnZXRUcmFuc2Zvcm1lZFJlY3QobV9ib3VuZHMsIGRyYXdSZWN0
LCBtX2RyYXdUcmFuc2Zvcm0pOwogfQogCi12b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OmRy
YXdUZXh0dXJlcyhpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24sIGNv
bnN0IEZsb2F0UmVjdCYgdmlzaWJsZVJlY3QpCit2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6
OmRyYXdUZXh0dXJlcyhkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4
Q29vcmRMb2NhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiB2aXNpYmxlUmVjdCkKIHsKICAgICBzdGF0
aWMgZmxvYXQgdGV4Y29vcmRzWzQgKiAyXSA9IHsgMCwgMCwgIDAsIDEsICAxLCAxLCAgMSwgMCB9
OwogCkBAIC0yNjAsNyArMjY2LDcgQEAgdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpkcmF3
VGV4dHVyZXMoaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2EKICAgICB9CiAK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kcmF3VGV4dHVyZXModGhpcywg
cG9zaXRpb25Mb2NhdGlvbiwgdGV4Q29vcmRMb2NhdGlvbik7CisgICAgICAgIG1fY2xpZW50LT5k
cmF3VGV4dHVyZXModGhpcywgc2NhbGUsIHBvc2l0aW9uTG9jYXRpb24sIHRleENvb3JkTG9jYXRp
b24pOwogfQogCiB2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OmRyYXdTdXJmYWNlKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3VHJhbnNmb3JtLCBMYXllckNvbXBvc2l0aW5nVGhy
ZWFkKiBtYXNrLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24pCkBA
IC0yOTQsMTAgKzMwMCwxMCBAQCBib29sIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6Omhhc01pc3Np
bmdUZXh0dXJlcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPmhhc01p
c3NpbmdUZXh0dXJlcyh0aGlzKSA6IGZhbHNlOwogfQogCi12b2lkIExheWVyQ29tcG9zaXRpbmdU
aHJlYWQ6OmRyYXdNaXNzaW5nVGV4dHVyZXMoaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhD
b29yZExvY2F0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHZpc2libGVSZWN0KQordm9pZCBMYXllckNv
bXBvc2l0aW5nVGhyZWFkOjpkcmF3TWlzc2luZ1RleHR1cmVzKGRvdWJsZSBzY2FsZSwgaW50IHBv
c2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHZp
c2libGVSZWN0KQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRyYXdN
aXNzaW5nVGV4dHVyZXModGhpcywgcG9zaXRpb25Mb2NhdGlvbiwgdGV4Q29vcmRMb2NhdGlvbik7
CisgICAgICAgIG1fY2xpZW50LT5kcmF3TWlzc2luZ1RleHR1cmVzKHRoaXMsIHNjYWxlLCBwb3Np
dGlvbkxvY2F0aW9uLCB0ZXhDb29yZExvY2F0aW9uKTsKIH0KIAogdm9pZCBMYXllckNvbXBvc2l0
aW5nVGhyZWFkOjpyZWxlYXNlVGV4dHVyZVJlc291cmNlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJD
b21wb3NpdGluZ1RocmVhZC5oCmluZGV4IDA4ODliZTJjZWExNjY1MjU4MTAyZGMxMTRiODc3YmI3
Njk4MzM3MDEuLjllNzcwNDA4MjRmOWI5YmEyZjE1ZGQ4MDI2NDRiZjYwZjlmOGI3MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJD
b21wb3NpdGluZ1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5oCkBAIC04NCw3ICs4NCw3IEBAIHB1
YmxpYzoKICAgICAvLyBUaGUgbGF5ZXIgcmVuZGVyZXIgbXVzdCBiZSBzZXQgaWYgdGhlIGxheWVy
IGhhcyBiZWVuIHJlbmRlcmVkCiAgICAgdm9pZCBzZXRMYXllclJlbmRlcmVyKExheWVyUmVuZGVy
ZXIqKTsKIAotICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYpOworICAgIHZvaWQgc2V0RHJhd1RyYW5zZm9ybShkb3VibGUgc2NhbGUsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIGRy
YXdUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2RyYXdUcmFuc2Zvcm07IH0KIAogICAgIHZv
aWQgc2V0RHJhd09wYWNpdHkoZmxvYXQgb3BhY2l0eSkgeyBtX2RyYXdPcGFjaXR5ID0gb3BhY2l0
eTsgfQpAQCAtMTA2LDkgKzEwNiw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGVsZXRlVGV4dHVy
ZXMoKTsKIAotICAgIHZvaWQgZHJhd1RleHR1cmVzKGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQg
dGV4Q29vcmRMb2NhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiB2aXNpYmxlUmVjdCk7CisgICAgdm9p
ZCBkcmF3VGV4dHVyZXMoZG91YmxlIHNjYWxlLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRl
eENvb3JkTG9jYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgdmlzaWJsZVJlY3QpOwogICAgIGJvb2wg
aGFzTWlzc2luZ1RleHR1cmVzKCkgY29uc3Q7Ci0gICAgdm9pZCBkcmF3TWlzc2luZ1RleHR1cmVz
KGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgY29uc3QgRmxvYXRS
ZWN0JiB2aXNpYmxlUmVjdCk7CisgICAgdm9pZCBkcmF3TWlzc2luZ1RleHR1cmVzKGRvdWJsZSBz
Y2FsZSwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIHZpc2libGVSZWN0KTsKICAgICB2b2lkIGRyYXdTdXJmYWNlKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiwgTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbWFzaywgaW50IHBvc2l0
aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uKTsKIAogICAgIHZvaWQgcmVsZWFzZVRl
eHR1cmVSZXNvdXJjZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZENsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhy
ZWFkQ2xpZW50LmgKaW5kZXggNTRlYmY5ZWMxOTgzNzZiYWM4NzQyNGVkZjg1NmJlOWMxODlkMDgw
MC4uNzQ2YWRlYTQ5N2EwNWIzODIxNjJjZWY1MTk3ZDk1YTc5ZGJlZTBlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0
aW5nVGhyZWFkQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50LmgKQEAgLTM0LDcgKzM0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsYXllclZpc2liaWxpdHlDaGFuZ2VkKExheWVy
Q29tcG9zaXRpbmdUaHJlYWQqLCBib29sIHZpc2libGUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCB1cGxvYWRUZXh0dXJlc0lmTmVlZGVkKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKiwgaW50
IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBkb3VibGUgc2NhbGUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQq
LCBkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlv
bikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5n
VGhyZWFkKikgPSAwOwogCiAgICAgLy8gT3B0aW9uYWwuIEFsbG93cyBsYXllcnMgdG8gc2VydmUg
YXMgYSBtYXNrIGZvciBvdGhlciBsYXllcnMKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogCiAg
ICAgLy8gT3B0aW9uYWwuIEFsbG93cyBsYXllcnMgdG8gaGF2ZSB1bmNhY2hlZCByZWdpb25zLCB0
eXBpY2FsbHkgZHJhd24gYXMgY2hlY2tlcmJvYXJkCiAgICAgdmlydHVhbCBib29sIGhhc01pc3Np
bmdUZXh0dXJlcyhjb25zdCBMYXllckNvbXBvc2l0aW5nVGhyZWFkKikgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZHJhd01pc3NpbmdUZXh0dXJlcyhMYXllckNvbXBv
c2l0aW5nVGhyZWFkKiwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9u
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZHJhd01pc3NpbmdUZXh0dXJlcyhMYXllckNvbXBvc2l0
aW5nVGhyZWFkKiwgZG91YmxlIHNjYWxlLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENv
b3JkTG9jYXRpb24pIHsgfQogCiAgICAgLy8gVW5saWtlIHRoZSBvdGhlciBtZXRob2RzIGhlcmUs
IHRoaXMgb25lIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBXZWJLaXQgdGhyZWFkCiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlQ29tbWl0KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckRhdGEuaAppbmRleCA4ZWI0YzVmYjI2
NDZkNTEzYzcxZDM3NmM4MWQ2YWJhMDdiMjRhN2MzLi5kOTkxMjE1NTExMTE5MGM1ZjRjNmJjMTIx
MjE1NzQxMWExMTFlODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJEYXRhLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHVibGlj
OgogICAgICAgICAsIG1faGFzRml4ZWRDb250YWluZXIoZmFsc2UpCiAgICAgICAgICwgbV9oYXNG
aXhlZEFuY2VzdG9ySW5ET01UcmVlKGZhbHNlKQogICAgICAgICAsIG1faXNWaXNpYmxlKHRydWUp
CisgICAgICAgICwgbV9zaXplSXNTY2FsZUludmFyaWFudChmYWxzZSkKICAgICB7CiAgICAgfQog
CkBAIC0xMDQsNiArMTA1LDggQEAgcHVibGljOgogCiAgICAgSW50U2l6ZSBib3VuZHMoKSBjb25z
dCB7IHJldHVybiBtX2JvdW5kczsgfQogCisgICAgYm9vbCBzaXplSXNTY2FsZUludmFyaWFudCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2l6ZUlzU2NhbGVJbnZhcmlhbnQ7IH0KKwogICAgIGJvb2wgZG91
YmxlU2lkZWQoKSBjb25zdCB7IHJldHVybiBtX2RvdWJsZVNpZGVkOyB9CiAKICAgICBGbG9hdFJl
Y3QgZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9CkBAIC0yMDUsNiArMjA4LDcgQEAg
cHJvdGVjdGVkOgogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBpcyBvbmx5IGF2YWlsYWJsZSBmb3Ig
bWVkaWEgKHZpZGVvKSBhbmQgcGx1Z2luIGxheWVycy4KICAgICB1bnNpZ25lZCBtX2lzVmlzaWJs
ZSA6IDE7CisgICAgdW5zaWduZWQgbV9zaXplSXNTY2FsZUludmFyaWFudCA6IDE7CiAKICAgICAv
LyBDQVVUSU9OOiBhbGwgdGhlIGRhdGEgbWVtYmVycyBhcmUgY29waWVkIGZyb20gb25lIGluc3Rh
bmNlIHRvIGFub3RoZXIKICAgICAvLyBpLmUuIGZyb20gb25lIHRocmVhZCB0byBhbm90aGVyIGlu
IHRoZSByZXBsaWNhdGUgbWV0aG9kLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJSZW5kZXJlci5jcHAKaW5kZXggM2Nl
M2Q4MDIwNDUwODVlNDExYTc2NWM1ODkyMmVlOWZjNDRjYTljNy4uZjQyMTQ0ZWMwZDljY2JiOTU1
MDNiNGQwYWIzODMwNTE2M2VkMDMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyUmVuZGVyZXIuY3BwCkBAIC0x
NTIsNiArMTUyLDcgQEAgTGF5ZXJSZW5kZXJlcjo6TGF5ZXJSZW5kZXJlcihHTEVTMkNvbnRleHQq
IGNvbnRleHQpCiAgICAgLCBtX2NoZWNrZXJQcm9ncmFtT2JqZWN0KDApCiAgICAgLCBtX3Bvc2l0
aW9uTG9jYXRpb24oMCkKICAgICAsIG1fdGV4Q29vcmRMb2NhdGlvbigxKQorICAgICwgbV9zY2Fs
ZSgxLjApCiAgICAgLCBtX2FuaW1hdGlvblRpbWUoLW51bWVyaWNfbGltaXRzPGRvdWJsZT46Omlu
ZmluaXR5KCkpCiAgICAgLCBtX2ZibygwKQogICAgICwgbV9jdXJyZW50TGF5ZXJSZW5kZXJlclN1
cmZhY2UoMCkKQEAgLTMxOSw2ICszMjAsMTIgQEAgdm9pZCBMYXllclJlbmRlcmVyOjpjb21wb3Np
dGVMYXllcnMoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgTGF5ZXJDb20KICAg
ICBpZiAoIXJvb3RMYXllcikKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gVXNlZCB0byBkcmF3
IHNjYWxlIGludmFyaWFudCBsYXllcnMuIFdlIGFzc3VtZSB1bmlmb3JtIHNjYWxlLgorICAgIC8v
IFRoZSBtYXRyaXggbWFwcyB0byBub3JtYWxpemVkIGRldmljZSBjb29yZGluYXRlcywgYSBzeXN0
ZW0gdGhhdCBtYXBzIHRoZQorICAgIC8vIHZpZXdwb3J0IHRvIHRoZSBpbnRlcnZhbCAtMSB0byAx
LgorICAgIC8vIFNvIGl0IGhhcyB0byBzY2FsZSBkb3duIGJ5IGEgZmFjdG9yIGVxdWFsIHRvIG9u
ZSBoYWxmIHRoZSB2aWV3cG9ydC4KKyAgICBtX3NjYWxlID0gbWF0cml4Lm0xMSgpICogbV92aWV3
cG9ydC53aWR0aCgpIC8gMjsKKwogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZD4gPiBzdXJmYWNlTGF5ZXJzOwogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8TGF5ZXJDb21w
b3NpdGluZ1RocmVhZD4gPiYgc3VibGF5ZXJzID0gcm9vdExheWVyLT5nZXRTdWJsYXllcnMoKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YmxheWVycy5zaXplKCk7IGkrKykgewpAQCAt
NjU4LDcgKzY2NSw5IEBAIHZvaWQgTGF5ZXJSZW5kZXJlcjo6dXBkYXRlTGF5ZXJzUmVjdXJzaXZl
KExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBjb25zdCBUCiAgICAgLy8gV2hlcmU6IFAg
aXMgdGhlIHByb2plY3Rpb24gbWF0cml4CiAgICAgLy8gICAgICAgIE0gaXMgdGhlIGxheWVyJ3Mg
bWF0cml4IGNvbXB1dGVkIGFib3ZlCiAgICAgLy8gICAgICAgIFMgaXMgdGhlIHNjYWxlIGFkanVz
dG1lbnQgKHRvIHNjYWxlIHVwIHRvIHRoZSBsYXllciBzaXplKQotICAgIEludFNpemUgYm91bmRz
ID0gbGF5ZXItPmJvdW5kcygpOworICAgIEZsb2F0U2l6ZSBib3VuZHMgPSBsYXllci0+Ym91bmRz
KCk7CisgICAgaWYgKGxheWVyLT5zaXplSXNTY2FsZUludmFyaWFudCgpKQorICAgICAgICBib3Vu
ZHMuc2NhbGUoMS4wIC8gbV9zY2FsZSk7CiAgICAgRmxvYXRQb2ludCBhbmNob3JQb2ludCA9IGxh
eWVyLT5hbmNob3JQb2ludCgpOwogICAgIEZsb2F0UG9pbnQgcG9zaXRpb24gPSBsYXllci0+cG9z
aXRpb24oKTsKIApAQCAtNzI1LDcgKzczNCw3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlcjo6dXBkYXRl
TGF5ZXJzUmVjdXJzaXZlKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBjb25zdCBUCiAg
ICAgICAgICAgICBzdXJmYWNlLT5zZXRSZXBsaWNhRHJhd1RyYW5zZm9ybShyZXBsaWNhTWF0cml4
KTsKICAgICAgICAgfQogCi0gICAgICAgIEludFJlY3QgZHJhd1JlY3QgPSBJbnRSZWN0KEludFBv
aW50KCksIGJvdW5kcyk7CisgICAgICAgIEludFJlY3QgZHJhd1JlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGJvdW5kcykpOwogICAgICAgICBzdXJmYWNlLT5z
ZXRDb250ZW50UmVjdChkcmF3UmVjdCk7CiAKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
cHJvamVjdGlvbk1hdHJpeCA9IG9ydGhvTWF0cml4KGRyYXdSZWN0LngoKSwgZHJhd1JlY3QubWF4
WCgpLCBkcmF3UmVjdC55KCksIGRyYXdSZWN0Lm1heFkoKSwgLTEwMDAsIDEwMDApOwpAQCAtNzM4
LDcgKzc0Nyw3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlcjo6dXBkYXRlTGF5ZXJzUmVjdXJzaXZlKExh
eWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBjb25zdCBUCiAgICAgICAgIHN1cmZhY2VMYXll
cnMuYXBwZW5kKGxheWVyKTsKICAgICB9CiAKLSAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShs
b2NhbE1hdHJpeCk7CisgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm0obV9zY2FsZSwgbG9jYWxN
YXRyaXgpOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGJvb2wgbGF5ZXJWaXNpYmxlID0gY2xp
cFJlY3QuaW50ZXJzZWN0cyhsYXllci0+Z2V0RHJhd1JlY3QoKSkgfHwgbGF5ZXItPm1lZGlhUGxh
eWVyKCk7CkBAIC04NDYsNyArODU1LDcgQEAgdm9pZCBMYXllclJlbmRlcmVyOjpjb21wb3NpdGVM
YXllcnNSZWN1cnNpdmUoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGludAogICAgICAg
ICBpZiAoIWRyYXdTdXJmYWNlKSB7CiAgICAgICAgICAgICBnbFVzZVByb2dyYW0obV9sYXllclBy
b2dyYW1PYmplY3Rbc2hhZGVyXSk7CiAgICAgICAgICAgICBnbFVuaWZvcm0xZihtX2FscGhhTG9j
YXRpb25bc2hhZGVyXSwgbGF5ZXItPmRyYXdPcGFjaXR5KCkpOwotICAgICAgICAgICAgbGF5ZXIt
PmRyYXdUZXh0dXJlcyhtX3Bvc2l0aW9uTG9jYXRpb24sIG1fdGV4Q29vcmRMb2NhdGlvbiwgbV92
aXNpYmxlUmVjdCk7CisgICAgICAgICAgICBsYXllci0+ZHJhd1RleHR1cmVzKG1fc2NhbGUsIG1f
cG9zaXRpb25Mb2NhdGlvbiwgbV90ZXhDb29yZExvY2F0aW9uLCBtX3Zpc2libGVSZWN0KTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIERyYXcgdGhlIHJlZmxlY3Rpb24gaWYgaXQg
ZXhpc3RzLgogICAgICAgICAgICAgaWYgKGxheWVyLT5yZXBsaWNhTGF5ZXIoKSkgewpAQCAtODcw
LDcgKzg3OSw3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlcjo6Y29tcG9zaXRlTGF5ZXJzUmVjdXJzaXZl
KExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBpbnQKICAgICAgICAgaWYgKGxheWVyLT5o
YXNNaXNzaW5nVGV4dHVyZXMoKSkgewogICAgICAgICAgICAgZ2xEaXNhYmxlKEdMX0JMRU5EKTsK
ICAgICAgICAgICAgIGdsVXNlUHJvZ3JhbShtX2NoZWNrZXJQcm9ncmFtT2JqZWN0KTsKLSAgICAg
ICAgICAgIGxheWVyLT5kcmF3TWlzc2luZ1RleHR1cmVzKG1fcG9zaXRpb25Mb2NhdGlvbiwgbV90
ZXhDb29yZExvY2F0aW9uLCBtX3Zpc2libGVSZWN0KTsKKyAgICAgICAgICAgIGxheWVyLT5kcmF3
TWlzc2luZ1RleHR1cmVzKG1fc2NhbGUsIG1fcG9zaXRpb25Mb2NhdGlvbiwgbV90ZXhDb29yZExv
Y2F0aW9uLCBtX3Zpc2libGVSZWN0KTsKICAgICAgICAgICAgIGdsRW5hYmxlKEdMX0JMRU5EKTsK
ICAgICAgICAgICAgIGdsQmxlbmRGdW5jKEdMX09ORSwgR0xfT05FX01JTlVTX1NSQ19BTFBIQSk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvTGF5ZXJSZW5kZXJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmgKaW5kZXggYTAzYTc5OTYxODQzMzllMTQw
NjBlNGVhYWViNDNjYWY5MDgyYzc4MS4uNWQyMWVjYmJjYzQwNThkMTllODQxYjAyOWJkMWJiZmMw
ZTc5OTUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9MYXllclJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmgKQEAgLTE3Niw2ICsxNzYsNyBAQCBwcml2
YXRlOgogICAgIGludCBtX2NoZWNrZXJTdXJmYWNlSGVpZ2h0TG9jYXRpb247CiAKICAgICAvLyBD
dXJyZW50IGRyYXcgY29uZmlndXJhdGlvbi4KKyAgICBkb3VibGUgbV9zY2FsZTsKICAgICBkb3Vi
bGUgbV9hbmltYXRpb25UaW1lOwogICAgIEZsb2F0UmVjdCBtX3Zpc2libGVSZWN0OwogICAgIElu
dFJlY3QgbV9sYXlvdXRSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJUaWxlci5jcHAKaW5kZXggMDQxMjdlZTQ1NTVj
OTcyYjViNTJiZjNjOTI1ZDEwN2E2NjUzOWZjOS4uZGI2ZTc1YzJmZmEzMjM0NTk1ZDFiNGYzNWQ3
ZWUzOTIwYzkyMzRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIuY3BwCkBAIC0xMjIsNiArMTIyLDExIEBA
IHZvaWQgTGF5ZXJUaWxlcjo6dXBkYXRlVGV4dHVyZUNvbnRlbnRzSWZOZWVkZWQoZG91YmxlIHNj
YWxlKQogICAgICAgICByZW5kZXJKb2JzID0gbV9yZW5kZXJKb2JzOwogICAgIH0KIAorICAgIC8v
IFRoZXJlJ3Mgbm8gcG9pbnQgaW4gZHJhd2luZyBjb250ZW50cyBhdCBhIGhpZ2hlciByZXNvbHV0
aW9uIGZvciBzY2FsZQorICAgIC8vIGludmFyaWFudCBsYXllcnMuCisgICAgaWYgKG1fbGF5ZXIt
PnNpemVJc1NjYWxlSW52YXJpYW50KCkpCisgICAgICAgIHNjYWxlID0gMS4wOworCiAgICAgYm9v
bCBpc1pvb21Kb2IgPSBmYWxzZTsKICAgICBpZiAoc2NhbGUgIT0gbV9jb250ZW50c1NjYWxlKSB7
CiAgICAgICAgIC8vIFRoZSBmaXJzdCB0aW1lIGFyb3VuZCwgaXQgZG9lcyBub3QgY291bnQgYXMg
YSB6b29tIGpvYi4KQEAgLTQ3MCwyMCArNDc1LDI1IEBAIHZvaWQgTGF5ZXJUaWxlcjo6cGVyZm9y
bVRpbGVKb2IoTGF5ZXJUaWxlKiB0aWxlLCBjb25zdCBUZXh0dXJlSm9iJiBqb2IsIGNvbnN0IElu
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgTGF5ZXJUaWxlcjo6ZHJhd1Rl
eHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBpbnQgcG9zLCBpbnQgdGV4Q29v
cmQpCit2b2lkIExheWVyVGlsZXI6OmRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFk
KiBsYXllciwgZG91YmxlIHNjYWxlLCBpbnQgcG9zLCBpbnQgdGV4Q29vcmQpCiB7Ci0gICAgZHJh
d1RleHR1cmVzSW50ZXJuYWwobGF5ZXIsIHBvcywgdGV4Q29vcmQsIGZhbHNlIC8qIGRyYXdNaXNz
aW5nICovKTsKKyAgICBkcmF3VGV4dHVyZXNJbnRlcm5hbChsYXllciwgc2NhbGUsIHBvcywgdGV4
Q29vcmQsIGZhbHNlIC8qIGRyYXdNaXNzaW5nICovKTsKIH0KIAotdm9pZCBMYXllclRpbGVyOjpk
cmF3TWlzc2luZ1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBpbnQgcG9z
LCBpbnQgdGV4Q29vcmQpCit2b2lkIExheWVyVGlsZXI6OmRyYXdNaXNzaW5nVGV4dHVyZXMoTGF5
ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGRvdWJsZSBzY2FsZSwgaW50IHBvcywgaW50IHRl
eENvb3JkKQogewotICAgIGRyYXdUZXh0dXJlc0ludGVybmFsKGxheWVyLCBwb3MsIHRleENvb3Jk
LCB0cnVlIC8qIGRyYXdNaXNzaW5nICovKTsKKyAgICBkcmF3VGV4dHVyZXNJbnRlcm5hbChsYXll
ciwgc2NhbGUsIHBvcywgdGV4Q29vcmQsIHRydWUgLyogZHJhd01pc3NpbmcgKi8pOwogfQogCi12
b2lkIExheWVyVGlsZXI6OmRyYXdUZXh0dXJlc0ludGVybmFsKExheWVyQ29tcG9zaXRpbmdUaHJl
YWQqIGxheWVyLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24sIGJv
b2wgZHJhd01pc3NpbmcpCit2b2lkIExheWVyVGlsZXI6OmRyYXdUZXh0dXJlc0ludGVybmFsKExh
eWVyQ29tcG9zaXRpbmdUaHJlYWQqIGxheWVyLCBkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxv
Y2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgYm9vbCBkcmF3TWlzc2luZykKIHsKICAgICBj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZHJhd1RyYW5zZm9ybSA9IGxheWVyLT5kcmF3VHJh
bnNmb3JtKCk7Ci0gICAgSW50U2l6ZSBib3VuZHMgPSBsYXllci0+Ym91bmRzKCk7CisgICAgRmxv
YXRTaXplIGJvdW5kcyA9IGxheWVyLT5ib3VuZHMoKTsKKworICAgIGlmIChsYXllci0+c2l6ZUlz
U2NhbGVJbnZhcmlhbnQoKSkgeworICAgICAgICBib3VuZHMuc2V0V2lkdGgoYm91bmRzLndpZHRo
KCkgLyBzY2FsZSk7CisgICAgICAgIGJvdW5kcy5zZXRIZWlnaHQoYm91bmRzLndpZHRoKCkgLyBz
Y2FsZSk7CisgICAgfQogCiAgICAgZmxvYXQgdGV4Y29vcmRzWzQgKiAyXSA9IHsgMCwgMCwgIDAs
IDEsICAxLCAxLCAgMSwgMCB9OwogICAgIGZsb2F0IHZlcnRpY2VzWzQgKiA0XTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJUaWxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRp
bGVyLmgKaW5kZXggYWM4NjA5ODNhOGVjZjAxMzgxZTk3YjM2NzhmNWNhMDFkMmU1MzA2YS4uNzY5
NGRlYzcwYTUyNDNjZGU2ZWQ1MmQ5NGI5MmUwOTdjY2Y2YjNmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmgK
QEAgLTY2LDkgKzY2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsYXllclZpc2liaWxp
dHlDaGFuZ2VkKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBib29sIHZpc2libGUpOwogICAgIHZp
cnR1YWwgdm9pZCB1cGxvYWRUZXh0dXJlc0lmTmVlZGVkKExheWVyQ29tcG9zaXRpbmdUaHJlYWQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZShMYXllckNvbXBvc2l0aW5n
VGhyZWFkKik7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5n
VGhyZWFkKiwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBkb3Vi
bGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbik7CiAg
ICAgdmlydHVhbCBib29sIGhhc01pc3NpbmdUZXh0dXJlcyhjb25zdCBMYXllckNvbXBvc2l0aW5n
VGhyZWFkKikgY29uc3QgeyByZXR1cm4gbV9oYXNNaXNzaW5nVGV4dHVyZXM7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZHJhd01pc3NpbmdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKiwgaW50
IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZHJhd01pc3NpbmdUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKiwgZG91YmxlIHNj
YWxlLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24pOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVUZXh0dXJlcyhMYXllckNvbXBvc2l0aW5nVGhyZWFkKik7CiAgICAg
dm9pZCBjb21taXRQZW5kaW5nVGV4dHVyZVVwbG9hZHMoKTsKIApAQCAtMTU3LDcgKzE1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBhZGRUaWxlSm9iKGNvbnN0IFRpbGVJbmRleCYsIGNvbnN0IFRl
eHR1cmVKb2ImLCBUaWxlSm9ic01hcCYpOwogICAgIHZvaWQgcGVyZm9ybVRpbGVKb2IoTGF5ZXJU
aWxlKiwgY29uc3QgVGV4dHVyZUpvYiYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIHByb2Nl
c3NUZXh0dXJlSm9iKGNvbnN0IFRleHR1cmVKb2ImLCBUaWxlSm9ic01hcCYpOwotICAgIHZvaWQg
ZHJhd1RleHR1cmVzSW50ZXJuYWwoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCosIGludCBwb3NpdGlv
bkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgYm9vbCBtaXNzaW5nKTsKKyAgICB2b2lk
IGRyYXdUZXh0dXJlc0ludGVybmFsKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBkb3VibGUgc2Nh
bGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgYm9vbCBtaXNz
aW5nKTsKICAgICB2b2lkIHBydW5lVGV4dHVyZXMoKTsKICAgICB2b2lkIHZpc2liaWxpdHlDaGFu
Z2VkKGJvb2wgbmVlZHNEaXNwbGF5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5oCmlu
ZGV4IDY4ODliYmZhMzk5MTAxM2U3NmU3NGQ0ZTI4MGM1NDFjZmM2YTcwN2MuLmIxY2QzYTgxNGI1
Y2Q1M2VmODZhZmMyMTgzYzQ5YjBlZDJiYjFkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhy
ZWFkLmgKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRCb3VuZHMoY29u
c3QgSW50U2l6ZSYpOwogCisgICAgdm9pZCBzZXRTaXplSXNTY2FsZUludmFyaWFudChib29sIGlu
dmFyaWFudCkgeyBtX3NpemVJc1NjYWxlSW52YXJpYW50ID0gaW52YXJpYW50OyBzZXROZWVkc0Nv
bW1pdCgpOyB9CisKICAgICB2b2lkIHNldERvdWJsZVNpZGVkKGJvb2wgZG91YmxlU2lkZWQpIHsg
bV9kb3VibGVTaWRlZCA9IGRvdWJsZVNpZGVkOyBzZXROZWVkc0NvbW1pdCgpOyB9CiAKICAgICB2
b2lkIHNldEZyYW1lKGNvbnN0IEZsb2F0UmVjdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144395</attachid>
            <date>2012-05-28 13:48:25 -0700</date>
            <delta_ts>2012-05-28 15:49:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87601-20120528224824.patch</filename>
            <type>text/plain</type>
            <size>18844</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVhMTcxODFkODcyMDdk
OGNhNDg0OGI0NzMyMGUwYzRjNDExNGUzZi4uOTZlOWVjZTg0NTMzYWJiMDUxZjFiYjQxZDE2YzA4
ODk3NTE5MWY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEyLTA1LTI3ICBBcnZp
ZCBOaWxzc29uICA8YW5pbHNzb25AcmltLmNvbT4KIAorICAgICAgICBbQmxhY2tCZXJyeV0gQWRk
IHN1cHBvcnQgZm9yIGxheWVycyB3aXRoIHNjYWxlIGludmFyaWFudCBzaXplCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzYwMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IFJvYiBCdWlzLgorCisgICAgICAgIFRvIHN1cHBvcnQgbGF5ZXJzIHRoYXQgaGF2
ZSBhICJmbG9hdGluZyIgYXBwZWFyYW5jZSwgaS5lLiBkb24ndCBjaGFuZ2Ugc2l6ZQorICAgICAg
ICB3aGVuIHRoZSB3ZWIgcGFnZSBpcyBkcmF3biBhdCBhIGRpZmZlcmVudCBzY2FsZSwgd2UgYWRk
IGEgbmV3IGxheWVyIHByb3BlcnR5CisgICAgICAgIG5hbWVkICJzaXplSXNTY2FsZUludmFyaWFu
dCIuCisKKyAgICAgICAgVGhlIGFuY2hvciBwb3NpdGlvbiB3aWxsIHN0aWxsIGJlIGdpdmVuIGlu
IGRvY3VtZW50IGNvb3JkaW5hdGVzIGZvciB0aGVzZQorICAgICAgICAiZmxvYXRpbmciIGxheWVy
cywgc28gdGhpcyBpcyB3ZWxsIHN1aXRlZCBmb3IgaW50ZXJmYWNlIGVsZW1lbnRzIGxpa2Ugc2Vs
ZWN0aW9uCisgICAgICAgIGhhbmRsZXMgd2hvc2Ugc2l6ZSBpcyBhbHdheXMgdGhlIHNhbWUgYnV0
IG1vdmUgd2l0aCB0aGUgd2ViIHBhZ2UgY29udGVudHMuCisKKyAgICAgICAgUFIgIzE1NjgxMgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5n
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OnNl
dERyYXdUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDb21wb3NpdGluZ1RocmVh
ZDo6ZHJhd1RleHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJl
YWQ6OmRyYXdNaXNzaW5nVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5oOgorICAgICAgICAoTGF5ZXJDb21wb3Np
dGluZ1RocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXll
ckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50Lmg6CisgICAgICAgIChMYXllckNvbXBvc2l0aW5nVGhy
ZWFkQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGll
bnQ6OmRyYXdNaXNzaW5nVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvTGF5ZXJEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckRhdGE6OkxheWVy
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckRhdGE6OnNpemVJc1NjYWxlSW52YXJpYW50
KToKKyAgICAgICAgKExheWVyRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVy
ZXI6OkxheWVyUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlcjo6Y29t
cG9zaXRlTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXI6OnVwZGF0ZUxh
eWVyc1JlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyOjpjb21wb3Np
dGVMYXllcnNSZWN1cnNpdmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvTGF5ZXJSZW5kZXJlci5oOgorICAgICAgICAoTGF5ZXJSZW5kZXJlcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyVGlsZXI6OnVwZGF0ZVRleHR1cmVDb250ZW50c0lmTmVlZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyVGlsZXI6OmRyYXdUZXh0dXJlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXllclRpbGVyOjpkcmF3TWlzc2luZ1RleHR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyVGlsZXI6OmRyYXdUZXh0dXJlc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIuaDoKKyAgICAgICAgKExheWVyVGlsZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyV2ViS2l0VGhyZWFkOjpzZXRTaXplSXNTY2FsZUludmFy
aWFudCk6CisgICAgICAgIChMYXllcldlYktpdFRocmVhZCk6CisKKzIwMTItMDUtMjcgIEFydmlk
IE5pbHNzb24gIDxhbmlsc3NvbkByaW0uY29tPgorCiAgICAgICAgIFtCbGFja0JlcnJ5XSBNYWtl
IGN1c3RvbSBjb21wb3NpdGluZyB0aHJlYWQgbGF5ZXJzIG1vcmUgZmxleGlibGUKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NjAwCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21w
b3NpdGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWQuY3BwCmluZGV4IGJiNTI5MGE1MTVmZWQ1MmE1
ZDZjNjM2ZTk4OWQ3Yzk4YzBkMzc5NTguLmIzN2I2MzA1ZmZhZWJiYjAxMTExOTBhYjU3ZmJiYjUw
NmMxNDI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkLmNwcApA
QCAtMTEyLDEyICsxMTIsMTggQEAgdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpkZWxldGVU
ZXh0dXJlcygpCiAgICAgICAgIG1fY2xpZW50LT5kZWxldGVUZXh0dXJlcyh0aGlzKTsKIH0KIAot
dm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpzZXREcmF3VHJhbnNmb3JtKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBtYXRyaXgpCit2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OnNl
dERyYXdUcmFuc2Zvcm0oZG91YmxlIHNjYWxlLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bWF0cml4KQogewogICAgIG1fZHJhd1RyYW5zZm9ybSA9IG1hdHJpeDsKIAogICAgIGZsb2F0IGJ4
ID0gbV9ib3VuZHMud2lkdGgoKSAvIDIuMDsKICAgICBmbG9hdCBieSA9IG1fYm91bmRzLmhlaWdo
dCgpIC8gMi4wOworCisgICAgaWYgKHNpemVJc1NjYWxlSW52YXJpYW50KCkpIHsKKyAgICAgICAg
YnggLz0gc2NhbGU7CisgICAgICAgIGJ5IC89IHNjYWxlOworICAgIH0KKwogICAgIG1fdHJhbnNm
b3JtZWRCb3VuZHMuc2V0UDEobWF0cml4Lm1hcFBvaW50KEZsb2F0UG9pbnQoLWJ4LCAtYnkpKSk7
CiAgICAgbV90cmFuc2Zvcm1lZEJvdW5kcy5zZXRQMihtYXRyaXgubWFwUG9pbnQoRmxvYXRQb2lu
dCgtYngsIGJ5KSkpOwogICAgIG1fdHJhbnNmb3JtZWRCb3VuZHMuc2V0UDMobWF0cml4Lm1hcFBv
aW50KEZsb2F0UG9pbnQoYngsIGJ5KSkpOwpAQCAtMTg4LDcgKzE5NCw3IEBAIEZsb2F0UXVhZCBM
YXllckNvbXBvc2l0aW5nVGhyZWFkOjpnZXRUcmFuc2Zvcm1lZEhvbGVQdW5jaFJlY3QoKSBjb25z
dAogICAgIHJldHVybiBnZXRUcmFuc2Zvcm1lZFJlY3QobV9ib3VuZHMsIGRyYXdSZWN0LCBtX2Ry
YXdUcmFuc2Zvcm0pOwogfQogCi12b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OmRyYXdUZXh0
dXJlcyhpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24sIGNvbnN0IEZs
b2F0UmVjdCYgdmlzaWJsZVJlY3QpCit2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OmRyYXdU
ZXh0dXJlcyhkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRM
b2NhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiB2aXNpYmxlUmVjdCkKIHsKICAgICBzdGF0aWMgZmxv
YXQgdGV4Y29vcmRzWzQgKiAyXSA9IHsgMCwgMCwgIDAsIDEsICAxLCAxLCAgMSwgMCB9OwogCkBA
IC0yNjAsNyArMjY2LDcgQEAgdm9pZCBMYXllckNvbXBvc2l0aW5nVGhyZWFkOjpkcmF3VGV4dHVy
ZXMoaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2EKICAgICB9CiAKICAgICBp
ZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kcmF3VGV4dHVyZXModGhpcywgcG9zaXRp
b25Mb2NhdGlvbiwgdGV4Q29vcmRMb2NhdGlvbik7CisgICAgICAgIG1fY2xpZW50LT5kcmF3VGV4
dHVyZXModGhpcywgc2NhbGUsIHBvc2l0aW9uTG9jYXRpb24sIHRleENvb3JkTG9jYXRpb24pOwog
fQogCiB2b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6OmRyYXdTdXJmYWNlKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBkcmF3VHJhbnNmb3JtLCBMYXllckNvbXBvc2l0aW5nVGhyZWFkKiBt
YXNrLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24pCkBAIC0yOTQs
MTAgKzMwMCwxMCBAQCBib29sIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6Omhhc01pc3NpbmdUZXh0
dXJlcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPmhhc01pc3NpbmdU
ZXh0dXJlcyh0aGlzKSA6IGZhbHNlOwogfQogCi12b2lkIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ6
OmRyYXdNaXNzaW5nVGV4dHVyZXMoaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExv
Y2F0aW9uLCBjb25zdCBGbG9hdFJlY3QmIC8qdmlzaWJsZVJlY3QqLykKK3ZvaWQgTGF5ZXJDb21w
b3NpdGluZ1RocmVhZDo6ZHJhd01pc3NpbmdUZXh0dXJlcyhkb3VibGUgc2NhbGUsIGludCBwb3Np
dGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiAvKnZp
c2libGVSZWN0Ki8pCiB7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZHJh
d01pc3NpbmdUZXh0dXJlcyh0aGlzLCBwb3NpdGlvbkxvY2F0aW9uLCB0ZXhDb29yZExvY2F0aW9u
KTsKKyAgICAgICAgbV9jbGllbnQtPmRyYXdNaXNzaW5nVGV4dHVyZXModGhpcywgc2NhbGUsIHBv
c2l0aW9uTG9jYXRpb24sIHRleENvb3JkTG9jYXRpb24pOwogfQogCiB2b2lkIExheWVyQ29tcG9z
aXRpbmdUaHJlYWQ6OnJlbGVhc2VUZXh0dXJlUmVzb3VyY2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXll
ckNvbXBvc2l0aW5nVGhyZWFkLmgKaW5kZXggMDg4OWJlMmNlYTE2NjUyNTgxMDJkYzExNGI4Nzdi
Yjc2OTgzMzcwMS4uOWU3NzA0MDgyNGY5YjliYTJmMTVkZDgwMjY0NGJmNjBmOWY4YjcwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXll
ckNvbXBvc2l0aW5nVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkLmgKQEAgLTg0LDcgKzg0LDcgQEAg
cHVibGljOgogICAgIC8vIFRoZSBsYXllciByZW5kZXJlciBtdXN0IGJlIHNldCBpZiB0aGUgbGF5
ZXIgaGFzIGJlZW4gcmVuZGVyZWQKICAgICB2b2lkIHNldExheWVyUmVuZGVyZXIoTGF5ZXJSZW5k
ZXJlciopOwogCi0gICAgdm9pZCBzZXREcmF3VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4Jik7CisgICAgdm9pZCBzZXREcmF3VHJhbnNmb3JtKGRvdWJsZSBzY2FsZSwgY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
ZHJhd1RyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd1RyYW5zZm9ybTsgfQogCiAgICAg
dm9pZCBzZXREcmF3T3BhY2l0eShmbG9hdCBvcGFjaXR5KSB7IG1fZHJhd09wYWNpdHkgPSBvcGFj
aXR5OyB9CkBAIC0xMDYsOSArMTA2LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWxldGVUZXh0
dXJlcygpOwogCi0gICAgdm9pZCBkcmF3VGV4dHVyZXMoaW50IHBvc2l0aW9uTG9jYXRpb24sIGlu
dCB0ZXhDb29yZExvY2F0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHZpc2libGVSZWN0KTsKKyAgICB2
b2lkIGRyYXdUZXh0dXJlcyhkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQg
dGV4Q29vcmRMb2NhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiB2aXNpYmxlUmVjdCk7CiAgICAgYm9v
bCBoYXNNaXNzaW5nVGV4dHVyZXMoKSBjb25zdDsKLSAgICB2b2lkIGRyYXdNaXNzaW5nVGV4dHVy
ZXMoaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBjb25zdCBGbG9h
dFJlY3QmIHZpc2libGVSZWN0KTsKKyAgICB2b2lkIGRyYXdNaXNzaW5nVGV4dHVyZXMoZG91Ymxl
IHNjYWxlLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24sIGNvbnN0
IEZsb2F0UmVjdCYgdmlzaWJsZVJlY3QpOwogICAgIHZvaWQgZHJhd1N1cmZhY2UoY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBMYXllckNvbXBvc2l0aW5nVGhyZWFkKiBtYXNrLCBpbnQgcG9z
aXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24pOwogCiAgICAgdm9pZCByZWxlYXNl
VGV4dHVyZVJlc291cmNlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBvc2l0aW5nVGhyZWFkQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdU
aHJlYWRDbGllbnQuaAppbmRleCA1NGViZjllYzE5ODM3NmJhYzg3NDI0ZWRmODU2YmU5YzE4OWQw
ODAwLi43NDZhZGVhNDk3YTA1YjM4MjE2MmNlZjUxOTdkOTVhNzlkYmVlMGVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcG9z
aXRpbmdUaHJlYWRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0xheWVyQ29tcG9zaXRpbmdUaHJlYWRDbGllbnQuaApAQCAtMzQsNyArMzQs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxheWVyVmlzaWJpbGl0eUNoYW5nZWQoTGF5
ZXJDb21wb3NpdGluZ1RocmVhZCosIGJvb2wgdmlzaWJsZSkgPSAwOwogCiAgICAgdmlydHVhbCB2
b2lkIHVwbG9hZFRleHR1cmVzSWZOZWVkZWQoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCopID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBp
bnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24sIGRvdWJsZSBzY2FsZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVyZXMoTGF5ZXJDb21wb3NpdGluZ1RocmVh
ZCosIGRvdWJsZSBzY2FsZSwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0
aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHR1cmVzKExheWVyQ29tcG9zaXRp
bmdUaHJlYWQqKSA9IDA7CiAKICAgICAvLyBPcHRpb25hbC4gQWxsb3dzIGxheWVycyB0byBzZXJ2
ZSBhcyBhIG1hc2sgZm9yIG90aGVyIGxheWVycwpAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBPcHRpb25hbC4gQWxsb3dzIGxheWVycyB0byBoYXZlIHVuY2FjaGVkIHJlZ2lvbnMs
IHR5cGljYWxseSBkcmF3biBhcyBjaGVja2VyYm9hcmQKICAgICB2aXJ0dWFsIGJvb2wgaGFzTWlz
c2luZ1RleHR1cmVzKGNvbnN0IExheWVyQ29tcG9zaXRpbmdUaHJlYWQqKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBkcmF3TWlzc2luZ1RleHR1cmVzKExheWVyQ29t
cG9zaXRpbmdUaHJlYWQqLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRp
b24pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkcmF3TWlzc2luZ1RleHR1cmVzKExheWVyQ29tcG9z
aXRpbmdUaHJlYWQqLCBkb3VibGUgc2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4
Q29vcmRMb2NhdGlvbikgeyB9CiAKICAgICAvLyBVbmxpa2UgdGhlIG90aGVyIG1ldGhvZHMgaGVy
ZSwgdGhpcyBvbmUgd2lsbCBiZSBjYWxsZWQgb24gdGhlIFdlYktpdCB0aHJlYWQKICAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVDb21taXQoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJEYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRGF0YS5oCmluZGV4IDhlYjRjNWZi
MjY0NmQ1MTNjNzFkMzc2YzgxZDZhYmEwN2IyNGE3YzMuLmQ5OTEyMTU1MTExMTkwYzVmNGM2YmMx
MjEyMTU3NDExYTExMWU4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckRhdGEuaApAQCAtODUsNiArODUsNyBAQCBwdWJs
aWM6CiAgICAgICAgICwgbV9oYXNGaXhlZENvbnRhaW5lcihmYWxzZSkKICAgICAgICAgLCBtX2hh
c0ZpeGVkQW5jZXN0b3JJbkRPTVRyZWUoZmFsc2UpCiAgICAgICAgICwgbV9pc1Zpc2libGUodHJ1
ZSkKKyAgICAgICAgLCBtX3NpemVJc1NjYWxlSW52YXJpYW50KGZhbHNlKQogICAgIHsKICAgICB9
CiAKQEAgLTEwNCw2ICsxMDUsOCBAQCBwdWJsaWM6CiAKICAgICBJbnRTaXplIGJvdW5kcygpIGNv
bnN0IHsgcmV0dXJuIG1fYm91bmRzOyB9CiAKKyAgICBib29sIHNpemVJc1NjYWxlSW52YXJpYW50
KCkgY29uc3QgeyByZXR1cm4gbV9zaXplSXNTY2FsZUludmFyaWFudDsgfQorCiAgICAgYm9vbCBk
b3VibGVTaWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZG91YmxlU2lkZWQ7IH0KIAogICAgIEZsb2F0
UmVjdCBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KQEAgLTIwNSw2ICsyMDgsNyBA
QCBwcm90ZWN0ZWQ6CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIG9ubHkgYXZhaWxhYmxlIGZv
ciBtZWRpYSAodmlkZW8pIGFuZCBwbHVnaW4gbGF5ZXJzLgogICAgIHVuc2lnbmVkIG1faXNWaXNp
YmxlIDogMTsKKyAgICB1bnNpZ25lZCBtX3NpemVJc1NjYWxlSW52YXJpYW50IDogMTsKIAogICAg
IC8vIENBVVRJT046IGFsbCB0aGUgZGF0YSBtZW1iZXJzIGFyZSBjb3BpZWQgZnJvbSBvbmUgaW5z
dGFuY2UgdG8gYW5vdGhlcgogICAgIC8vIGkuZS4gZnJvbSBvbmUgdGhyZWFkIHRvIGFub3RoZXIg
aW4gdGhlIHJlcGxpY2F0ZSBtZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcAppbmRleCAz
Y2UzZDgwMjA0NTA4NWU0MTFhNzY1YzU4OTIyZWU5ZmM0NGNhOWM3Li5mNDIxNDRlYzBkOWNjYmI5
NTUwM2I0ZDBhYjM4MzA1MTYzZWQwMzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJSZW5kZXJlci5jcHAKQEAg
LTE1Miw2ICsxNTIsNyBAQCBMYXllclJlbmRlcmVyOjpMYXllclJlbmRlcmVyKEdMRVMyQ29udGV4
dCogY29udGV4dCkKICAgICAsIG1fY2hlY2tlclByb2dyYW1PYmplY3QoMCkKICAgICAsIG1fcG9z
aXRpb25Mb2NhdGlvbigwKQogICAgICwgbV90ZXhDb29yZExvY2F0aW9uKDEpCisgICAgLCBtX3Nj
YWxlKDEuMCkKICAgICAsIG1fYW5pbWF0aW9uVGltZSgtbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
aW5maW5pdHkoKSkKICAgICAsIG1fZmJvKDApCiAgICAgLCBtX2N1cnJlbnRMYXllclJlbmRlcmVy
U3VyZmFjZSgwKQpAQCAtMzE5LDYgKzMyMCwxMiBAQCB2b2lkIExheWVyUmVuZGVyZXI6OmNvbXBv
c2l0ZUxheWVycyhjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBMYXllckNvbQog
ICAgIGlmICghcm9vdExheWVyKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBVc2VkIHRvIGRy
YXcgc2NhbGUgaW52YXJpYW50IGxheWVycy4gV2UgYXNzdW1lIHVuaWZvcm0gc2NhbGUuCisgICAg
Ly8gVGhlIG1hdHJpeCBtYXBzIHRvIG5vcm1hbGl6ZWQgZGV2aWNlIGNvb3JkaW5hdGVzLCBhIHN5
c3RlbSB0aGF0IG1hcHMgdGhlCisgICAgLy8gdmlld3BvcnQgdG8gdGhlIGludGVydmFsIC0xIHRv
IDEuCisgICAgLy8gU28gaXQgaGFzIHRvIHNjYWxlIGRvd24gYnkgYSBmYWN0b3IgZXF1YWwgdG8g
b25lIGhhbGYgdGhlIHZpZXdwb3J0LgorICAgIG1fc2NhbGUgPSBtYXRyaXgubTExKCkgKiBtX3Zp
ZXdwb3J0LndpZHRoKCkgLyAyOworCiAgICAgVmVjdG9yPFJlZlB0cjxMYXllckNvbXBvc2l0aW5n
VGhyZWFkPiA+IHN1cmZhY2VMYXllcnM7CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxMYXllckNv
bXBvc2l0aW5nVGhyZWFkPiA+JiBzdWJsYXllcnMgPSByb290TGF5ZXItPmdldFN1YmxheWVycygp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3VibGF5ZXJzLnNpemUoKTsgaSsrKSB7CkBA
IC02NTgsNyArNjY1LDkgQEAgdm9pZCBMYXllclJlbmRlcmVyOjp1cGRhdGVMYXllcnNSZWN1cnNp
dmUoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGNvbnN0IFQKICAgICAvLyBXaGVyZTog
UCBpcyB0aGUgcHJvamVjdGlvbiBtYXRyaXgKICAgICAvLyAgICAgICAgTSBpcyB0aGUgbGF5ZXIn
cyBtYXRyaXggY29tcHV0ZWQgYWJvdmUKICAgICAvLyAgICAgICAgUyBpcyB0aGUgc2NhbGUgYWRq
dXN0bWVudCAodG8gc2NhbGUgdXAgdG8gdGhlIGxheWVyIHNpemUpCi0gICAgSW50U2l6ZSBib3Vu
ZHMgPSBsYXllci0+Ym91bmRzKCk7CisgICAgRmxvYXRTaXplIGJvdW5kcyA9IGxheWVyLT5ib3Vu
ZHMoKTsKKyAgICBpZiAobGF5ZXItPnNpemVJc1NjYWxlSW52YXJpYW50KCkpCisgICAgICAgIGJv
dW5kcy5zY2FsZSgxLjAgLyBtX3NjYWxlKTsKICAgICBGbG9hdFBvaW50IGFuY2hvclBvaW50ID0g
bGF5ZXItPmFuY2hvclBvaW50KCk7CiAgICAgRmxvYXRQb2ludCBwb3NpdGlvbiA9IGxheWVyLT5w
b3NpdGlvbigpOwogCkBAIC03MjUsNyArNzM0LDcgQEAgdm9pZCBMYXllclJlbmRlcmVyOjp1cGRh
dGVMYXllcnNSZWN1cnNpdmUoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGNvbnN0IFQK
ICAgICAgICAgICAgIHN1cmZhY2UtPnNldFJlcGxpY2FEcmF3VHJhbnNmb3JtKHJlcGxpY2FNYXRy
aXgpOwogICAgICAgICB9CiAKLSAgICAgICAgSW50UmVjdCBkcmF3UmVjdCA9IEludFJlY3QoSW50
UG9pbnQoKSwgYm91bmRzKTsKKyAgICAgICAgSW50UmVjdCBkcmF3UmVjdCA9IGVuY2xvc2luZ0lu
dFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgYm91bmRzKSk7CiAgICAgICAgIHN1cmZhY2Ut
PnNldENvbnRlbnRSZWN0KGRyYXdSZWN0KTsKIAogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBwcm9qZWN0aW9uTWF0cml4ID0gb3J0aG9NYXRyaXgoZHJhd1JlY3QueCgpLCBkcmF3UmVjdC5t
YXhYKCksIGRyYXdSZWN0LnkoKSwgZHJhd1JlY3QubWF4WSgpLCAtMTAwMCwgMTAwMCk7CkBAIC03
MzgsNyArNzQ3LDcgQEAgdm9pZCBMYXllclJlbmRlcmVyOjp1cGRhdGVMYXllcnNSZWN1cnNpdmUo
TGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGNvbnN0IFQKICAgICAgICAgc3VyZmFjZUxh
eWVycy5hcHBlbmQobGF5ZXIpOwogICAgIH0KIAotICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3Jt
KGxvY2FsTWF0cml4KTsKKyAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShtX3NjYWxlLCBsb2Nh
bE1hdHJpeCk7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgYm9vbCBsYXllclZpc2libGUgPSBj
bGlwUmVjdC5pbnRlcnNlY3RzKGxheWVyLT5nZXREcmF3UmVjdCgpKSB8fCBsYXllci0+bWVkaWFQ
bGF5ZXIoKTsKQEAgLTg0Niw3ICs4NTUsNyBAQCB2b2lkIExheWVyUmVuZGVyZXI6OmNvbXBvc2l0
ZUxheWVyc1JlY3Vyc2l2ZShMYXllckNvbXBvc2l0aW5nVGhyZWFkKiBsYXllciwgaW50CiAgICAg
ICAgIGlmICghZHJhd1N1cmZhY2UpIHsKICAgICAgICAgICAgIGdsVXNlUHJvZ3JhbShtX2xheWVy
UHJvZ3JhbU9iamVjdFtzaGFkZXJdKTsKICAgICAgICAgICAgIGdsVW5pZm9ybTFmKG1fYWxwaGFM
b2NhdGlvbltzaGFkZXJdLCBsYXllci0+ZHJhd09wYWNpdHkoKSk7Ci0gICAgICAgICAgICBsYXll
ci0+ZHJhd1RleHR1cmVzKG1fcG9zaXRpb25Mb2NhdGlvbiwgbV90ZXhDb29yZExvY2F0aW9uLCBt
X3Zpc2libGVSZWN0KTsKKyAgICAgICAgICAgIGxheWVyLT5kcmF3VGV4dHVyZXMobV9zY2FsZSwg
bV9wb3NpdGlvbkxvY2F0aW9uLCBtX3RleENvb3JkTG9jYXRpb24sIG1fdmlzaWJsZVJlY3QpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gRHJhdyB0aGUgcmVmbGVjdGlvbiBpZiBp
dCBleGlzdHMuCiAgICAgICAgICAgICBpZiAobGF5ZXItPnJlcGxpY2FMYXllcigpKSB7CkBAIC04
NzAsNyArODc5LDcgQEAgdm9pZCBMYXllclJlbmRlcmVyOjpjb21wb3NpdGVMYXllcnNSZWN1cnNp
dmUoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGludAogICAgICAgICBpZiAobGF5ZXIt
Pmhhc01pc3NpbmdUZXh0dXJlcygpKSB7CiAgICAgICAgICAgICBnbERpc2FibGUoR0xfQkxFTkQp
OwogICAgICAgICAgICAgZ2xVc2VQcm9ncmFtKG1fY2hlY2tlclByb2dyYW1PYmplY3QpOwotICAg
ICAgICAgICAgbGF5ZXItPmRyYXdNaXNzaW5nVGV4dHVyZXMobV9wb3NpdGlvbkxvY2F0aW9uLCBt
X3RleENvb3JkTG9jYXRpb24sIG1fdmlzaWJsZVJlY3QpOworICAgICAgICAgICAgbGF5ZXItPmRy
YXdNaXNzaW5nVGV4dHVyZXMobV9zY2FsZSwgbV9wb3NpdGlvbkxvY2F0aW9uLCBtX3RleENvb3Jk
TG9jYXRpb24sIG1fdmlzaWJsZVJlY3QpOwogICAgICAgICAgICAgZ2xFbmFibGUoR0xfQkxFTkQp
OwogICAgICAgICAgICAgZ2xCbGVuZEZ1bmMoR0xfT05FLCBHTF9PTkVfTUlOVVNfU1JDX0FMUEhB
KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L0xheWVyUmVuZGVyZXIuaAppbmRleCBhMDNhNzk5NjE4NDMzOWUx
NDA2MGU0ZWFhZWI0M2NhZjkwODJjNzgxLi41ZDIxZWNiYmNjNDA1OGQxOWU4NDFiMDI5YmQxYmJm
YzBlNzk5NTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9i
bGFja2JlcnJ5L0xheWVyUmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ibGFja2JlcnJ5L0xheWVyUmVuZGVyZXIuaApAQCAtMTc2LDYgKzE3Niw3IEBAIHBy
aXZhdGU6CiAgICAgaW50IG1fY2hlY2tlclN1cmZhY2VIZWlnaHRMb2NhdGlvbjsKIAogICAgIC8v
IEN1cnJlbnQgZHJhdyBjb25maWd1cmF0aW9uLgorICAgIGRvdWJsZSBtX3NjYWxlOwogICAgIGRv
dWJsZSBtX2FuaW1hdGlvblRpbWU7CiAgICAgRmxvYXRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAg
SW50UmVjdCBtX2xheW91dFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRpbGVyLmNwcAppbmRleCAwNDEyN2VlNDU1
NWM5NzJiNWI1MmJmM2M5MjVkMTA3YTY2NTM5ZmM5Li5kYjZlNzVjMmZmYTMyMzQ1OTVkMWI0ZjM1
ZDdlZTM5MjBjOTIzNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJUaWxlci5jcHAKQEAgLTEyMiw2ICsxMjIsMTEg
QEAgdm9pZCBMYXllclRpbGVyOjp1cGRhdGVUZXh0dXJlQ29udGVudHNJZk5lZWRlZChkb3VibGUg
c2NhbGUpCiAgICAgICAgIHJlbmRlckpvYnMgPSBtX3JlbmRlckpvYnM7CiAgICAgfQogCisgICAg
Ly8gVGhlcmUncyBubyBwb2ludCBpbiBkcmF3aW5nIGNvbnRlbnRzIGF0IGEgaGlnaGVyIHJlc29s
dXRpb24gZm9yIHNjYWxlCisgICAgLy8gaW52YXJpYW50IGxheWVycy4KKyAgICBpZiAobV9sYXll
ci0+c2l6ZUlzU2NhbGVJbnZhcmlhbnQoKSkKKyAgICAgICAgc2NhbGUgPSAxLjA7CisKICAgICBi
b29sIGlzWm9vbUpvYiA9IGZhbHNlOwogICAgIGlmIChzY2FsZSAhPSBtX2NvbnRlbnRzU2NhbGUp
IHsKICAgICAgICAgLy8gVGhlIGZpcnN0IHRpbWUgYXJvdW5kLCBpdCBkb2VzIG5vdCBjb3VudCBh
cyBhIHpvb20gam9iLgpAQCAtNDcwLDIwICs0NzUsMjUgQEAgdm9pZCBMYXllclRpbGVyOjpwZXJm
b3JtVGlsZUpvYihMYXllclRpbGUqIHRpbGUsIGNvbnN0IFRleHR1cmVKb2ImIGpvYiwgY29uc3Qg
SW4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBMYXllclRpbGVyOjpkcmF3
VGV4dHVyZXMoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGludCBwb3MsIGludCB0ZXhD
b29yZCkKK3ZvaWQgTGF5ZXJUaWxlcjo6ZHJhd1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJl
YWQqIGxheWVyLCBkb3VibGUgc2NhbGUsIGludCBwb3MsIGludCB0ZXhDb29yZCkKIHsKLSAgICBk
cmF3VGV4dHVyZXNJbnRlcm5hbChsYXllciwgcG9zLCB0ZXhDb29yZCwgZmFsc2UgLyogZHJhd01p
c3NpbmcgKi8pOworICAgIGRyYXdUZXh0dXJlc0ludGVybmFsKGxheWVyLCBzY2FsZSwgcG9zLCB0
ZXhDb29yZCwgZmFsc2UgLyogZHJhd01pc3NpbmcgKi8pOwogfQogCi12b2lkIExheWVyVGlsZXI6
OmRyYXdNaXNzaW5nVGV4dHVyZXMoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGludCBw
b3MsIGludCB0ZXhDb29yZCkKK3ZvaWQgTGF5ZXJUaWxlcjo6ZHJhd01pc3NpbmdUZXh0dXJlcyhM
YXllckNvbXBvc2l0aW5nVGhyZWFkKiBsYXllciwgZG91YmxlIHNjYWxlLCBpbnQgcG9zLCBpbnQg
dGV4Q29vcmQpCiB7Ci0gICAgZHJhd1RleHR1cmVzSW50ZXJuYWwobGF5ZXIsIHBvcywgdGV4Q29v
cmQsIHRydWUgLyogZHJhd01pc3NpbmcgKi8pOworICAgIGRyYXdUZXh0dXJlc0ludGVybmFsKGxh
eWVyLCBzY2FsZSwgcG9zLCB0ZXhDb29yZCwgdHJ1ZSAvKiBkcmF3TWlzc2luZyAqLyk7CiB9CiAK
LXZvaWQgTGF5ZXJUaWxlcjo6ZHJhd1RleHR1cmVzSW50ZXJuYWwoTGF5ZXJDb21wb3NpdGluZ1Ro
cmVhZCogbGF5ZXIsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbiwg
Ym9vbCBkcmF3TWlzc2luZykKK3ZvaWQgTGF5ZXJUaWxlcjo6ZHJhd1RleHR1cmVzSW50ZXJuYWwo
TGF5ZXJDb21wb3NpdGluZ1RocmVhZCogbGF5ZXIsIGRvdWJsZSBzY2FsZSwgaW50IHBvc2l0aW9u
TG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBib29sIGRyYXdNaXNzaW5nKQogewogICAg
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBkcmF3VHJhbnNmb3JtID0gbGF5ZXItPmRyYXdU
cmFuc2Zvcm0oKTsKLSAgICBJbnRTaXplIGJvdW5kcyA9IGxheWVyLT5ib3VuZHMoKTsKKyAgICBG
bG9hdFNpemUgYm91bmRzID0gbGF5ZXItPmJvdW5kcygpOworCisgICAgaWYgKGxheWVyLT5zaXpl
SXNTY2FsZUludmFyaWFudCgpKSB7CisgICAgICAgIGJvdW5kcy5zZXRXaWR0aChib3VuZHMud2lk
dGgoKSAvIHNjYWxlKTsKKyAgICAgICAgYm91bmRzLnNldEhlaWdodChib3VuZHMud2lkdGgoKSAv
IHNjYWxlKTsKKyAgICB9CiAKICAgICBmbG9hdCB0ZXhjb29yZHNbNCAqIDJdID0geyAwLCAwLCAg
MCwgMSwgIDEsIDEsICAxLCAwIH07CiAgICAgZmxvYXQgdmVydGljZXNbNCAqIDRdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclRp
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVy
VGlsZXIuaAppbmRleCBhYzg2MDk4M2E4ZWNmMDEzODFlOTdiMzY3OGY1Y2EwMWQyZTUzMDZhLi43
Njk0ZGVjNzBhNTI0M2NkZTZlZDUyZDk0YjkyZTA5N2NjZjZiM2YxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyVGlsZXIu
aApAQCAtNjYsOSArNjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxheWVyVmlzaWJp
bGl0eUNoYW5nZWQoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCosIGJvb2wgdmlzaWJsZSk7CiAgICAg
dmlydHVhbCB2b2lkIHVwbG9hZFRleHR1cmVzSWZOZWVkZWQoTGF5ZXJDb21wb3NpdGluZ1RocmVh
ZCopOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kQ29udGVudHNUZXh0dXJlKExheWVyQ29tcG9zaXRp
bmdUaHJlYWQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmVzKExheWVyQ29tcG9zaXRp
bmdUaHJlYWQqLCBpbnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24pOwor
ICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVyZXMoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCosIGRv
dWJsZSBzY2FsZSwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uKTsK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzTWlzc2luZ1RleHR1cmVzKGNvbnN0IExheWVyQ29tcG9zaXRp
bmdUaHJlYWQqKSBjb25zdCB7IHJldHVybiBtX2hhc01pc3NpbmdUZXh0dXJlczsgfQotICAgIHZp
cnR1YWwgdm9pZCBkcmF3TWlzc2luZ1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBp
bnQgcG9zaXRpb25Mb2NhdGlvbiwgaW50IHRleENvb3JkTG9jYXRpb24pOworICAgIHZpcnR1YWwg
dm9pZCBkcmF3TWlzc2luZ1RleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqLCBkb3VibGUg
c2NhbGUsIGludCBwb3NpdGlvbkxvY2F0aW9uLCBpbnQgdGV4Q29vcmRMb2NhdGlvbik7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZVRleHR1cmVzKExheWVyQ29tcG9zaXRpbmdUaHJlYWQqKTsKICAg
ICB2b2lkIGNvbW1pdFBlbmRpbmdUZXh0dXJlVXBsb2FkcygpOwogCkBAIC0xNTcsNyArMTU3LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFRpbGVKb2IoY29uc3QgVGlsZUluZGV4JiwgY29uc3Qg
VGV4dHVyZUpvYiYsIFRpbGVKb2JzTWFwJik7CiAgICAgdm9pZCBwZXJmb3JtVGlsZUpvYihMYXll
clRpbGUqLCBjb25zdCBUZXh0dXJlSm9iJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgcHJv
Y2Vzc1RleHR1cmVKb2IoY29uc3QgVGV4dHVyZUpvYiYsIFRpbGVKb2JzTWFwJik7Ci0gICAgdm9p
ZCBkcmF3VGV4dHVyZXNJbnRlcm5hbChMYXllckNvbXBvc2l0aW5nVGhyZWFkKiwgaW50IHBvc2l0
aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBib29sIG1pc3NpbmcpOworICAgIHZv
aWQgZHJhd1RleHR1cmVzSW50ZXJuYWwoTGF5ZXJDb21wb3NpdGluZ1RocmVhZCosIGRvdWJsZSBz
Y2FsZSwgaW50IHBvc2l0aW9uTG9jYXRpb24sIGludCB0ZXhDb29yZExvY2F0aW9uLCBib29sIG1p
c3NpbmcpOwogICAgIHZvaWQgcHJ1bmVUZXh0dXJlcygpOwogICAgIHZvaWQgdmlzaWJpbGl0eUNo
YW5nZWQoYm9vbCBuZWVkc0Rpc3BsYXkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyV2ViS2l0VGhyZWFkLmgK
aW5kZXggNjg4OWJiZmEzOTkxMDEzZTc2ZTc0ZDRlMjgwYzU0MWNmYzZhNzA3Yy4uYjFjZDNhODE0
YjVjZDUzZWY4NmFmYzIxODNjNDliMGVkMmJiMWRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRU
aHJlYWQuaApAQCAtNzQsNiArNzQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEJvdW5kcyhj
b25zdCBJbnRTaXplJik7CiAKKyAgICB2b2lkIHNldFNpemVJc1NjYWxlSW52YXJpYW50KGJvb2wg
aW52YXJpYW50KSB7IG1fc2l6ZUlzU2NhbGVJbnZhcmlhbnQgPSBpbnZhcmlhbnQ7IHNldE5lZWRz
Q29tbWl0KCk7IH0KKwogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9vbCBkb3VibGVTaWRlZCkg
eyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRzQ29tbWl0KCk7IH0KIAogICAg
IHZvaWQgc2V0RnJhbWUoY29uc3QgRmxvYXRSZWN0Jik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>