<?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>179924</bug_id>
          
          <creation_ts>2017-11-21 09:47:42 -0800</creation_ts>
          <short_desc>Some FELighting cleanup</short_desc>
          <delta_ts>2017-11-22 10:09:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1374056</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-21 09:47:42 -0800</bug_when>
    <thetext>Some FELighting cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374057</commentid>
    <comment_count>1</comment_count>
      <attachid>327418</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-21 09:49:44 -0800</bug_when>
    <thetext>Created attachment 327418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374102</commentid>
    <comment_count>2</comment_count>
      <attachid>327418</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-11-21 15:22:22 -0800</bug_when>
    <thetext>Comment on attachment 327418
Patch

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

I continue to wish we had a vector type as IntSize is weird.  I can&apos;t remember why we don&apos;t have one.  Is it because we don&apos;t want another type representing a pair of ints?  Or is it naming? Or something else.

&gt; Source/WebCore/platform/graphics/filters/FELighting.cpp:95
&gt; +inline IntSize FELighting::LightingData::topLeftNormal(int offset) const

I wish we had a better type for this type of vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374117</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-21 17:03:02 -0800</bug_when>
    <thetext>https://trac.webkit.org/r225088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374121</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-21 17:10:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/35661516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374223</commentid>
    <comment_count>5</comment_count>
      <attachid>327418</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-11-22 10:09:41 -0800</bug_when>
    <thetext>Comment on attachment 327418
Patch

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

&gt; Source/WebCore/platform/graphics/filters/FELighting.cpp:248
&gt; +        normalVector.setX(factorX * static_cast&lt;float&gt;(normal2DVector.width()) * data.surfaceScale);
&gt; +        normalVector.setY(factorY * static_cast&lt;float&gt;(normal2DVector.height()) * data.surfaceScale);

The typecast to float here seems unnecessary. I expect the compiler can handle float * int * float -&gt; float without a typecast.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327418</attachid>
            <date>2017-11-21 09:49:44 -0800</date>
            <delta_ts>2017-11-21 15:22:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179924-20171121094943.patch</filename>
            <type>text/plain</type>
            <size>22733</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMxY2VkNDNmMjU4ZThh
M2JhMGIyZDVhMTJlNTQzNDdmY2ExNTU0YS4uYmU3Y2QzMTRmMWQxNzc4MGRmOTJkYjg2OGY4ODVj
MDk5ZmJmMzBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTExLTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNvbWUgRkVMaWdo
dGluZyBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzk5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWtlIHRoZSBub3JtYWwtY29tcHV0YXRpb24gZnVuY3Rpb25zIGNvbnN0IGFuZCBoYXZl
IHRoZW0gcmV0dXJuIGFuIEludFNpemUuCisgICAgICAgIFJlcGxhY2UgYml0IHNoaWZ0aW5nIHdp
dGggbXVsdGlwbHkgYnkgdHdvIChjb21waWxlcnMga25vdyBob3cgdG8gZG8gdGhpcywgZm9sa3Mp
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OkxpZ2h0aW5nRGF0YTo6dG9wTGVmdE5vcm1h
bCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpMaWdodGluZ0RhdGE6OnRv
cFJvd05vcm1hbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpMaWdodGlu
Z0RhdGE6OnRvcFJpZ2h0Tm9ybWFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRp
bmc6OkxpZ2h0aW5nRGF0YTo6bGVmdENvbHVtbk5vcm1hbCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGRUxpZ2h0aW5nOjpMaWdodGluZ0RhdGE6OmludGVyaW9yTm9ybWFsIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6OkxpZ2h0aW5nRGF0YTo6cmlnaHRDb2x1bW5Ob3Jt
YWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjpi
b3R0b21MZWZ0Tm9ybWFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6Okxp
Z2h0aW5nRGF0YTo6Ym90dG9tUm93Tm9ybWFsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZF
TGlnaHRpbmc6OkxpZ2h0aW5nRGF0YTo6Ym90dG9tUmlnaHROb3JtYWwgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RkVMaWdodGluZzo6aW5saW5lU2V0UGl4ZWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RkVMaWdodGluZzo6c2V0UGl4ZWwpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6
cGxhdGZvcm1BcHBseUdlbmVyaWNQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5n
OjpkcmF3TGlnaHRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6TGlnaHRpbmdE
YXRhOjp0b3BMZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmc6Okxp
Z2h0aW5nRGF0YTo6dG9wUm93KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRp
bmc6OkxpZ2h0aW5nRGF0YTo6dG9wUmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
RkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjpsZWZ0Q29sdW1uKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkZFTGlnaHRpbmc6OkxpZ2h0aW5nRGF0YTo6aW50ZXJpb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjpyaWdodENvbHVtbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nOjpMaWdodGluZ0RhdGE6OmJv
dHRvbUxlZnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZzo6TGlnaHRp
bmdEYXRhOjpib3R0b21Sb3cpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGlu
Zzo6TGlnaHRpbmdEYXRhOjpib3R0b21SaWdodCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmg6CisKIDIwMTctMTEtMjEgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDYWlyb10gZHJhd05hdGl2
ZUltYWdlKCksIGRyYXdQYXR0ZXJuKCkgaW4gQ2Fpcm9PcGVyYXRpb25zIHNob3VsZCBvcGVyYXRl
IGRpcmVjdGx5IHdpdGggY2Fpcm9fc3VyZmFjZV90IG9iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCmluZGV4
IGUwYzE2MDRkYTk4YzQ5M2ZlNTA2OWYwZWFmYmY1NmI4ZjgwOGQ4ODcuLjBlMTUwOTBjNTQ5Nzc2
NDc4YjJmZWRhMWYzNDI0MWRmODY5MmQ0YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcApAQCAtODUsMjQgKzg1
LDI3IEBAIGJvb2wgRkVMaWdodGluZzo6c2V0S2VybmVsVW5pdExlbmd0aFkoZmxvYXQga2VybmVs
VW5pdExlbmd0aFkpCiBjb25zdCBzdGF0aWMgaW50IGNQaXhlbFNpemUgPSA0OwogY29uc3Qgc3Rh
dGljIGludCBjQWxwaGFDaGFubmVsT2Zmc2V0ID0gMzsKIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBj
aGFyIGNPcGFxdWVBbHBoYSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KDB4ZmYpOworCisv
LyBUaGVzZSBmYWN0b3JzIGFuZCB0aGUgbm9ybWFsIGNvZWZmaWNpZW50cyBjb21lIGZyb20gdGhl
IHRhYmxlIHVuZGVyIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcvZmlsdGVycy5odG1sI2ZlRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC4KIGNvbnN0IHN0YXRpYyBmbG9hdCBjRmFjdG9yMWRpdjIgPSAt
MSAvIDIuZjsKIGNvbnN0IHN0YXRpYyBmbG9hdCBjRmFjdG9yMWRpdjMgPSAtMSAvIDMuZjsKIGNv
bnN0IHN0YXRpYyBmbG9hdCBjRmFjdG9yMWRpdjQgPSAtMSAvIDQuZjsKIGNvbnN0IHN0YXRpYyBm
bG9hdCBjRmFjdG9yMmRpdjMgPSAtMiAvIDMuZjsKIAotLy8gPDwgMSBpcyBzaWduZWQgbXVsdGlw
bHkgYnkgMgotaW5saW5lIHZvaWQgRkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjp0b3BMZWZ0KGlu
dCBvZmZzZXQsIEludFBvaW50JiBub3JtYWxWZWN0b3IpCitpbmxpbmUgSW50U2l6ZSBGRUxpZ2h0
aW5nOjpMaWdodGluZ0RhdGE6OnRvcExlZnROb3JtYWwoaW50IG9mZnNldCkgY29uc3QKIHsKICAg
ICBpbnQgY2VudGVyID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zmc2V0ICsgY0Fs
cGhhQ2hhbm5lbE9mZnNldCkpOwogICAgIGludCByaWdodCA9IHN0YXRpY19jYXN0PGludD4ocGl4
ZWxzLT5pdGVtKG9mZnNldCArIGNQaXhlbFNpemUgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7CiAg
ICAgb2Zmc2V0ICs9IHdpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplOwogICAgIGludCBib3R0b20g
PSBzdGF0aWNfY2FzdDxpbnQ+KHBpeGVscy0+aXRlbShvZmZzZXQgKyBjQWxwaGFDaGFubmVsT2Zm
c2V0KSk7CiAgICAgaW50IGJvdHRvbVJpZ2h0ID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0
ZW0ob2Zmc2V0ICsgY1BpeGVsU2l6ZSArIGNBbHBoYUNoYW5uZWxPZmZzZXQpKTsKLSAgICBub3Jt
YWxWZWN0b3Iuc2V0WCgtKGNlbnRlciA8PCAxKSArIChyaWdodCA8PCAxKSAtIGJvdHRvbSArIGJv
dHRvbVJpZ2h0KTsKLSAgICBub3JtYWxWZWN0b3Iuc2V0WSgtKGNlbnRlciA8PCAxKSAtIHJpZ2h0
ICsgKGJvdHRvbSA8PCAxKSArIGJvdHRvbVJpZ2h0KTsKKyAgICByZXR1cm4geworICAgICAgICAt
MiAqIGNlbnRlciArIDIgKiByaWdodCAtIGJvdHRvbSArIGJvdHRvbVJpZ2h0LAorICAgICAgICAt
MiAqIGNlbnRlciAtIHJpZ2h0ICsgMiAqIGJvdHRvbSArIGJvdHRvbVJpZ2h0CisgICAgfTsKIH0K
IAotaW5saW5lIHZvaWQgRkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjp0b3BSb3coaW50IG9mZnNl
dCwgSW50UG9pbnQmIG5vcm1hbFZlY3RvcikKK2lubGluZSBJbnRTaXplIEZFTGlnaHRpbmc6Okxp
Z2h0aW5nRGF0YTo6dG9wUm93Tm9ybWFsKGludCBvZmZzZXQpIGNvbnN0CiB7CiAgICAgaW50IGxl
ZnQgPSBzdGF0aWNfY2FzdDxpbnQ+KHBpeGVscy0+aXRlbShvZmZzZXQgLSBjUGl4ZWxTaXplICsg
Y0FscGhhQ2hhbm5lbE9mZnNldCkpOwogICAgIGludCBjZW50ZXIgPSBzdGF0aWNfY2FzdDxpbnQ+
KHBpeGVscy0+aXRlbShvZmZzZXQgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7CkBAIC0xMTEsMzYg
KzExNCw0MiBAQCBpbmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjpMaWdodGluZ0RhdGE6OnRvcFJvdyhp
bnQgb2Zmc2V0LCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKQogICAgIGludCBib3R0b21MZWZ0ID0g
c3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zmc2V0IC0gY1BpeGVsU2l6ZSArIGNBbHBo
YUNoYW5uZWxPZmZzZXQpKTsKICAgICBpbnQgYm90dG9tID0gc3RhdGljX2Nhc3Q8aW50PihwaXhl
bHMtPml0ZW0ob2Zmc2V0ICsgY0FscGhhQ2hhbm5lbE9mZnNldCkpOwogICAgIGludCBib3R0b21S
aWdodCA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCArIGNQaXhlbFNpemUg
KyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7Ci0gICAgbm9ybWFsVmVjdG9yLnNldFgoLShsZWZ0IDw8
IDEpICsgKHJpZ2h0IDw8IDEpIC0gYm90dG9tTGVmdCArIGJvdHRvbVJpZ2h0KTsKLSAgICBub3Jt
YWxWZWN0b3Iuc2V0WSgtbGVmdCAtIChjZW50ZXIgPDwgMSkgLSByaWdodCArIGJvdHRvbUxlZnQg
KyAoYm90dG9tIDw8IDEpICsgYm90dG9tUmlnaHQpOworICAgIHJldHVybiB7CisgICAgICAgIC0y
ICogbGVmdCArIDIgKiByaWdodCAtIGJvdHRvbUxlZnQgKyBib3R0b21SaWdodCwKKyAgICAgICAg
LWxlZnQgLSAyICogY2VudGVyIC0gcmlnaHQgKyBib3R0b21MZWZ0ICsgMiAqIGJvdHRvbSArIGJv
dHRvbVJpZ2h0CisgICAgfTsKIH0KIAotaW5saW5lIHZvaWQgRkVMaWdodGluZzo6TGlnaHRpbmdE
YXRhOjp0b3BSaWdodChpbnQgb2Zmc2V0LCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKQoraW5saW5l
IEludFNpemUgRkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjp0b3BSaWdodE5vcm1hbChpbnQgb2Zm
c2V0KSBjb25zdAogewogICAgIGludCBsZWZ0ID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0
ZW0ob2Zmc2V0IC0gY1BpeGVsU2l6ZSArIGNBbHBoYUNoYW5uZWxPZmZzZXQpKTsKICAgICBpbnQg
Y2VudGVyID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zmc2V0ICsgY0FscGhhQ2hh
bm5lbE9mZnNldCkpOwogICAgIG9mZnNldCArPSB3aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZTsK
ICAgICBpbnQgYm90dG9tTGVmdCA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNl
dCAtIGNQaXhlbFNpemUgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7CiAgICAgaW50IGJvdHRvbSA9
IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCArIGNBbHBoYUNoYW5uZWxPZmZz
ZXQpKTsKLSAgICBub3JtYWxWZWN0b3Iuc2V0WCgtKGxlZnQgPDwgMSkgKyAoY2VudGVyIDw8IDEp
IC0gYm90dG9tTGVmdCArIGJvdHRvbSk7Ci0gICAgbm9ybWFsVmVjdG9yLnNldFkoLWxlZnQgLSAo
Y2VudGVyIDw8IDEpICsgYm90dG9tTGVmdCArIChib3R0b20gPDwgMSkpOworICAgIHJldHVybiB7
CisgICAgICAgIC0yICogbGVmdCArIDIgKiBjZW50ZXIgLSBib3R0b21MZWZ0ICsgYm90dG9tLAor
ICAgICAgICAtbGVmdCAtIDIgKiBjZW50ZXIgKyBib3R0b21MZWZ0ICsgMiAqIGJvdHRvbQorICAg
IH07CiB9CiAKLWlubGluZSB2b2lkIEZFTGlnaHRpbmc6OkxpZ2h0aW5nRGF0YTo6bGVmdENvbHVt
bihpbnQgb2Zmc2V0LCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKQoraW5saW5lIEludFNpemUgRkVM
aWdodGluZzo6TGlnaHRpbmdEYXRhOjpsZWZ0Q29sdW1uTm9ybWFsKGludCBvZmZzZXQpIGNvbnN0
CiB7CiAgICAgaW50IGNlbnRlciA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNl
dCArIGNBbHBoYUNoYW5uZWxPZmZzZXQpKTsKICAgICBpbnQgcmlnaHQgPSBzdGF0aWNfY2FzdDxp
bnQ+KHBpeGVscy0+aXRlbShvZmZzZXQgKyBjUGl4ZWxTaXplICsgY0FscGhhQ2hhbm5lbE9mZnNl
dCkpOwogICAgIG9mZnNldCAtPSB3aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZTsKICAgICBpbnQg
dG9wID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zmc2V0ICsgY0FscGhhQ2hhbm5l
bE9mZnNldCkpOwogICAgIGludCB0b3BSaWdodCA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5p
dGVtKG9mZnNldCArIGNQaXhlbFNpemUgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7Ci0gICAgb2Zm
c2V0ICs9IHdpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplIDw8IDE7CisgICAgb2Zmc2V0ICs9IDIg
KiB3aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZTsKICAgICBpbnQgYm90dG9tID0gc3RhdGljX2Nh
c3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zmc2V0ICsgY0FscGhhQ2hhbm5lbE9mZnNldCkpOwogICAg
IGludCBib3R0b21SaWdodCA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCAr
IGNQaXhlbFNpemUgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7Ci0gICAgbm9ybWFsVmVjdG9yLnNl
dFgoLXRvcCArIHRvcFJpZ2h0IC0gKGNlbnRlciA8PCAxKSArIChyaWdodCA8PCAxKSAtIGJvdHRv
bSArIGJvdHRvbVJpZ2h0KTsKLSAgICBub3JtYWxWZWN0b3Iuc2V0WSgtKHRvcCA8PCAxKSAtIHRv
cFJpZ2h0ICsgKGJvdHRvbSA8PCAxKSArIGJvdHRvbVJpZ2h0KTsKKyAgICByZXR1cm4geworICAg
ICAgICAtdG9wICsgdG9wUmlnaHQgLSAyICogY2VudGVyICsgMiAqIHJpZ2h0IC0gYm90dG9tICsg
Ym90dG9tUmlnaHQsCisgICAgICAgIC0yICogdG9wIC0gdG9wUmlnaHQgKyAyICogYm90dG9tICsg
Ym90dG9tUmlnaHQKKyAgICB9OwogfQogCi1pbmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjpMaWdodGlu
Z0RhdGE6OmludGVyaW9yKGludCBvZmZzZXQsIEludFBvaW50JiBub3JtYWxWZWN0b3IpCitpbmxp
bmUgSW50U2l6ZSBGRUxpZ2h0aW5nOjpMaWdodGluZ0RhdGE6OmludGVyaW9yTm9ybWFsKGludCBv
ZmZzZXQpIGNvbnN0CiB7CiAgICAgaW50IGxlZnQgPSBzdGF0aWNfY2FzdDxpbnQ+KHBpeGVscy0+
aXRlbShvZmZzZXQgLSBjUGl4ZWxTaXplICsgY0FscGhhQ2hhbm5lbE9mZnNldCkpOwogICAgIGlu
dCByaWdodCA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCArIGNQaXhlbFNp
emUgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7CkBAIC0xNDgsNDAgKzE1Nyw0NiBAQCBpbmxpbmUg
dm9pZCBGRUxpZ2h0aW5nOjpMaWdodGluZ0RhdGE6OmludGVyaW9yKGludCBvZmZzZXQsIEludFBv
aW50JiBub3JtYWxWZWN0bwogICAgIGludCB0b3BMZWZ0ID0gc3RhdGljX2Nhc3Q8aW50PihwaXhl
bHMtPml0ZW0ob2Zmc2V0IC0gY1BpeGVsU2l6ZSArIGNBbHBoYUNoYW5uZWxPZmZzZXQpKTsKICAg
ICBpbnQgdG9wID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zmc2V0ICsgY0FscGhh
Q2hhbm5lbE9mZnNldCkpOwogICAgIGludCB0b3BSaWdodCA9IHN0YXRpY19jYXN0PGludD4ocGl4
ZWxzLT5pdGVtKG9mZnNldCArIGNQaXhlbFNpemUgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7Ci0g
ICAgb2Zmc2V0ICs9IHdpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplIDw8IDE7CisgICAgb2Zmc2V0
ICs9IDIgKiB3aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZTsKICAgICBpbnQgYm90dG9tTGVmdCA9
IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCAtIGNQaXhlbFNpemUgKyBjQWxw
aGFDaGFubmVsT2Zmc2V0KSk7CiAgICAgaW50IGJvdHRvbSA9IHN0YXRpY19jYXN0PGludD4ocGl4
ZWxzLT5pdGVtKG9mZnNldCArIGNBbHBoYUNoYW5uZWxPZmZzZXQpKTsKICAgICBpbnQgYm90dG9t
UmlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+KHBpeGVscy0+aXRlbShvZmZzZXQgKyBjUGl4ZWxTaXpl
ICsgY0FscGhhQ2hhbm5lbE9mZnNldCkpOwotICAgIG5vcm1hbFZlY3Rvci5zZXRYKC10b3BMZWZ0
ICsgdG9wUmlnaHQgLSAobGVmdCA8PCAxKSArIChyaWdodCA8PCAxKSAtIGJvdHRvbUxlZnQgKyBi
b3R0b21SaWdodCk7Ci0gICAgbm9ybWFsVmVjdG9yLnNldFkoLXRvcExlZnQgLSAodG9wIDw8IDEp
IC0gdG9wUmlnaHQgKyBib3R0b21MZWZ0ICsgKGJvdHRvbSA8PCAxKSArIGJvdHRvbVJpZ2h0KTsK
KyAgICByZXR1cm4geworICAgICAgICAtdG9wTGVmdCArIHRvcFJpZ2h0IC0gMiAqIGxlZnQgKyAy
ICogcmlnaHQgLSBib3R0b21MZWZ0ICsgYm90dG9tUmlnaHQsCisgICAgICAgIC10b3BMZWZ0IC0g
MiAqIHRvcCAtIHRvcFJpZ2h0ICsgYm90dG9tTGVmdCArIDIgKiBib3R0b20gKyBib3R0b21SaWdo
dAorICAgIH07CiB9CiAKLWlubGluZSB2b2lkIEZFTGlnaHRpbmc6OkxpZ2h0aW5nRGF0YTo6cmln
aHRDb2x1bW4oaW50IG9mZnNldCwgSW50UG9pbnQmIG5vcm1hbFZlY3RvcikKK2lubGluZSBJbnRT
aXplIEZFTGlnaHRpbmc6OkxpZ2h0aW5nRGF0YTo6cmlnaHRDb2x1bW5Ob3JtYWwoaW50IG9mZnNl
dCkgY29uc3QKIHsKICAgICBpbnQgbGVmdCA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVt
KG9mZnNldCAtIGNQaXhlbFNpemUgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7CiAgICAgaW50IGNl
bnRlciA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCArIGNBbHBoYUNoYW5u
ZWxPZmZzZXQpKTsKICAgICBvZmZzZXQgLT0gd2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemU7CiAg
ICAgaW50IHRvcExlZnQgPSBzdGF0aWNfY2FzdDxpbnQ+KHBpeGVscy0+aXRlbShvZmZzZXQgLSBj
UGl4ZWxTaXplICsgY0FscGhhQ2hhbm5lbE9mZnNldCkpOwogICAgIGludCB0b3AgPSBzdGF0aWNf
Y2FzdDxpbnQ+KHBpeGVscy0+aXRlbShvZmZzZXQgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7Ci0g
ICAgb2Zmc2V0ICs9IHdpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplIDw8IDE7CisgICAgb2Zmc2V0
ICs9IDIgKiB3aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZTsKICAgICBpbnQgYm90dG9tTGVmdCA9
IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCAtIGNQaXhlbFNpemUgKyBjQWxw
aGFDaGFubmVsT2Zmc2V0KSk7CiAgICAgaW50IGJvdHRvbSA9IHN0YXRpY19jYXN0PGludD4ocGl4
ZWxzLT5pdGVtKG9mZnNldCArIGNBbHBoYUNoYW5uZWxPZmZzZXQpKTsKLSAgICBub3JtYWxWZWN0
b3Iuc2V0WCgtdG9wTGVmdCArIHRvcCAtIChsZWZ0IDw8IDEpICsgKGNlbnRlciA8PCAxKSAtIGJv
dHRvbUxlZnQgKyBib3R0b20pOwotICAgIG5vcm1hbFZlY3Rvci5zZXRZKC10b3BMZWZ0IC0gKHRv
cCA8PCAxKSArIGJvdHRvbUxlZnQgKyAoYm90dG9tIDw8IDEpKTsKKyAgICByZXR1cm4geworICAg
ICAgICAtdG9wTGVmdCArIHRvcCAtIDIgKiBsZWZ0ICsgMiAqIGNlbnRlciAtIGJvdHRvbUxlZnQg
KyBib3R0b20sCisgICAgICAgIC10b3BMZWZ0IC0gMiAqIHRvcCArIGJvdHRvbUxlZnQgKyAyICog
Ym90dG9tCisgICAgfTsKIH0KIAotaW5saW5lIHZvaWQgRkVMaWdodGluZzo6TGlnaHRpbmdEYXRh
Ojpib3R0b21MZWZ0KGludCBvZmZzZXQsIEludFBvaW50JiBub3JtYWxWZWN0b3IpCitpbmxpbmUg
SW50U2l6ZSBGRUxpZ2h0aW5nOjpMaWdodGluZ0RhdGE6OmJvdHRvbUxlZnROb3JtYWwoaW50IG9m
ZnNldCkgY29uc3QKIHsKICAgICBpbnQgY2VudGVyID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMt
Pml0ZW0ob2Zmc2V0ICsgY0FscGhhQ2hhbm5lbE9mZnNldCkpOwogICAgIGludCByaWdodCA9IHN0
YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCArIGNQaXhlbFNpemUgKyBjQWxwaGFD
aGFubmVsT2Zmc2V0KSk7CiAgICAgb2Zmc2V0IC09IHdpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXpl
OwogICAgIGludCB0b3AgPSBzdGF0aWNfY2FzdDxpbnQ+KHBpeGVscy0+aXRlbShvZmZzZXQgKyBj
QWxwaGFDaGFubmVsT2Zmc2V0KSk7CiAgICAgaW50IHRvcFJpZ2h0ID0gc3RhdGljX2Nhc3Q8aW50
PihwaXhlbHMtPml0ZW0ob2Zmc2V0ICsgY1BpeGVsU2l6ZSArIGNBbHBoYUNoYW5uZWxPZmZzZXQp
KTsKLSAgICBub3JtYWxWZWN0b3Iuc2V0WCgtdG9wICsgdG9wUmlnaHQgLSAoY2VudGVyIDw8IDEp
ICsgKHJpZ2h0IDw8IDEpKTsKLSAgICBub3JtYWxWZWN0b3Iuc2V0WSgtKHRvcCA8PCAxKSAtIHRv
cFJpZ2h0ICsgKGNlbnRlciA8PCAxKSArIHJpZ2h0KTsKKyAgICByZXR1cm4geworICAgICAgICAt
dG9wICsgdG9wUmlnaHQgLSAyICogY2VudGVyICsgMiAqIHJpZ2h0LAorICAgICAgICAtMiAqIHRv
cCAtIHRvcFJpZ2h0ICsgMiAqIGNlbnRlciArIHJpZ2h0CisgICAgfTsKIH0KIAotaW5saW5lIHZv
aWQgRkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjpib3R0b21Sb3coaW50IG9mZnNldCwgSW50UG9p
bnQmIG5vcm1hbFZlY3RvcikKK2lubGluZSBJbnRTaXplIEZFTGlnaHRpbmc6OkxpZ2h0aW5nRGF0
YTo6Ym90dG9tUm93Tm9ybWFsKGludCBvZmZzZXQpIGNvbnN0CiB7CiAgICAgaW50IGxlZnQgPSBz
dGF0aWNfY2FzdDxpbnQ+KHBpeGVscy0+aXRlbShvZmZzZXQgLSBjUGl4ZWxTaXplICsgY0FscGhh
Q2hhbm5lbE9mZnNldCkpOwogICAgIGludCBjZW50ZXIgPSBzdGF0aWNfY2FzdDxpbnQ+KHBpeGVs
cy0+aXRlbShvZmZzZXQgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7CkBAIC0xOTAsMjggKzIwNSwz
MSBAQCBpbmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjpMaWdodGluZ0RhdGE6OmJvdHRvbVJvdyhpbnQg
b2Zmc2V0LCBJbnRQb2ludCYgbm9ybWFsVmVjdAogICAgIGludCB0b3BMZWZ0ID0gc3RhdGljX2Nh
c3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zmc2V0IC0gY1BpeGVsU2l6ZSArIGNBbHBoYUNoYW5uZWxP
ZmZzZXQpKTsKICAgICBpbnQgdG9wID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zm
c2V0ICsgY0FscGhhQ2hhbm5lbE9mZnNldCkpOwogICAgIGludCB0b3BSaWdodCA9IHN0YXRpY19j
YXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCArIGNQaXhlbFNpemUgKyBjQWxwaGFDaGFubmVs
T2Zmc2V0KSk7Ci0gICAgbm9ybWFsVmVjdG9yLnNldFgoLXRvcExlZnQgKyB0b3BSaWdodCAtIChs
ZWZ0IDw8IDEpICsgKHJpZ2h0IDw8IDEpKTsKLSAgICBub3JtYWxWZWN0b3Iuc2V0WSgtdG9wTGVm
dCAtICh0b3AgPDwgMSkgLSB0b3BSaWdodCArIGxlZnQgKyAoY2VudGVyIDw8IDEpICsgcmlnaHQp
OworICAgIHJldHVybiB7CisgICAgICAgIC10b3BMZWZ0ICsgdG9wUmlnaHQgLSAyICogbGVmdCAr
IDIgKiByaWdodCwKKyAgICAgICAgLXRvcExlZnQgLSAyICogdG9wIC0gdG9wUmlnaHQgKyBsZWZ0
ICsgMiAqIGNlbnRlciArIHJpZ2h0CisgICAgfTsKIH0KIAotaW5saW5lIHZvaWQgRkVMaWdodGlu
Zzo6TGlnaHRpbmdEYXRhOjpib3R0b21SaWdodChpbnQgb2Zmc2V0LCBJbnRQb2ludCYgbm9ybWFs
VmVjdG9yKQoraW5saW5lIEludFNpemUgRkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjpib3R0b21S
aWdodE5vcm1hbChpbnQgb2Zmc2V0KSBjb25zdAogewogICAgIGludCBsZWZ0ID0gc3RhdGljX2Nh
c3Q8aW50PihwaXhlbHMtPml0ZW0ob2Zmc2V0IC0gY1BpeGVsU2l6ZSArIGNBbHBoYUNoYW5uZWxP
ZmZzZXQpKTsKICAgICBpbnQgY2VudGVyID0gc3RhdGljX2Nhc3Q8aW50PihwaXhlbHMtPml0ZW0o
b2Zmc2V0ICsgY0FscGhhQ2hhbm5lbE9mZnNldCkpOwogICAgIG9mZnNldCAtPSB3aWR0aE11bHRp
cGxpZWRCeVBpeGVsU2l6ZTsKICAgICBpbnQgdG9wTGVmdCA9IHN0YXRpY19jYXN0PGludD4ocGl4
ZWxzLT5pdGVtKG9mZnNldCAtIGNQaXhlbFNpemUgKyBjQWxwaGFDaGFubmVsT2Zmc2V0KSk7CiAg
ICAgaW50IHRvcCA9IHN0YXRpY19jYXN0PGludD4ocGl4ZWxzLT5pdGVtKG9mZnNldCArIGNBbHBo
YUNoYW5uZWxPZmZzZXQpKTsKLSAgICBub3JtYWxWZWN0b3Iuc2V0WCgtdG9wTGVmdCArIHRvcCAt
IChsZWZ0IDw8IDEpICsgKGNlbnRlciA8PCAxKSk7Ci0gICAgbm9ybWFsVmVjdG9yLnNldFkoLXRv
cExlZnQgLSAodG9wIDw8IDEpICsgbGVmdCArIChjZW50ZXIgPDwgMSkpOworICAgIHJldHVybiB7
CisgICAgICAgIC10b3BMZWZ0ICsgdG9wIC0gMiAqIGxlZnQgKyAyICogY2VudGVyLAorICAgICAg
ICB0b3BMZWZ0IC0gMiAqIHRvcCArIGxlZnQgKyAyICogY2VudGVyCisgICAgfTsKIH0KIAotaW5s
aW5lIHZvaWQgRkVMaWdodGluZzo6aW5saW5lU2V0UGl4ZWwoaW50IG9mZnNldCwgTGlnaHRpbmdE
YXRhJiBkYXRhLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiBwYWludGluZ0RhdGEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGlnaHRYLCBpbnQgbGlnaHRZ
LCBmbG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZLCBJbnRQb2ludCYgbm9ybWFsMkRWZWN0b3Ip
CitpbmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjppbmxpbmVTZXRQaXhlbChpbnQgb2Zmc2V0LCBMaWdo
dGluZ0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmIHBhaW50aW5nRGF0YSwg
aW50IGxpZ2h0WCwgaW50IGxpZ2h0WSwgZmxvYXQgZmFjdG9yWCwgZmxvYXQgZmFjdG9yWSwgSW50
U2l6ZSBub3JtYWwyRFZlY3RvcikKIHsKICAgICBtX2xpZ2h0U291cmNlLT51cGRhdGVQYWludGlu
Z0RhdGEocGFpbnRpbmdEYXRhLCBsaWdodFgsIGxpZ2h0WSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGRh
dGEucGl4ZWxzLT5pdGVtKG9mZnNldCArIGNBbHBoYUNoYW5uZWxPZmZzZXQpKSAqIGRhdGEuc3Vy
ZmFjZVNjYWxlKTsKIAogICAgIGZsb2F0IGxpZ2h0U3RyZW5ndGg7Ci0gICAgaWYgKCFub3JtYWwy
RFZlY3Rvci54KCkgJiYgIW5vcm1hbDJEVmVjdG9yLnkoKSkgeworICAgIGlmIChub3JtYWwyRFZl
Y3Rvci5pc1plcm8oKSkgewogICAgICAgICAvLyBOb3JtYWwgdmVjdG9yIGlzICgwLCAwLCAxKS4g
VGhpcyBpcyBhIHF1aXRlIGZyZXF1ZW50IGNhc2UuCiAgICAgICAgIGlmIChtX2xpZ2h0aW5nVHlw
ZSA9PSBGRUxpZ2h0aW5nOjpEaWZmdXNlTGlnaHRpbmcpCiAgICAgICAgICAgICBsaWdodFN0cmVu
Z3RoID0gbV9kaWZmdXNlQ29uc3RhbnQgKiBwYWludGluZ0RhdGEubGlnaHRWZWN0b3IueigpIC8g
cGFpbnRpbmdEYXRhLmxpZ2h0VmVjdG9yTGVuZ3RoOwpAQCAtMjI2LDggKzI0NCw4IEBAIGlubGlu
ZSB2b2lkIEZFTGlnaHRpbmc6OmlubGluZVNldFBpeGVsKGludCBvZmZzZXQsIExpZ2h0aW5nRGF0
YSYgZGF0YSwgTGlnaHRTb3VyCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBGbG9h
dFBvaW50M0Qgbm9ybWFsVmVjdG9yOwotICAgICAgICBub3JtYWxWZWN0b3Iuc2V0WChmYWN0b3JY
ICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5vcm1hbDJEVmVjdG9yLngoKSkgKiBkYXRhLnN1cmZhY2VT
Y2FsZSk7Ci0gICAgICAgIG5vcm1hbFZlY3Rvci5zZXRZKGZhY3RvclkgKiBzdGF0aWNfY2FzdDxm
bG9hdD4obm9ybWFsMkRWZWN0b3IueSgpKSAqIGRhdGEuc3VyZmFjZVNjYWxlKTsKKyAgICAgICAg
bm9ybWFsVmVjdG9yLnNldFgoZmFjdG9yWCAqIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWwyRFZl
Y3Rvci53aWR0aCgpKSAqIGRhdGEuc3VyZmFjZVNjYWxlKTsKKyAgICAgICAgbm9ybWFsVmVjdG9y
LnNldFkoZmFjdG9yWSAqIHN0YXRpY19jYXN0PGZsb2F0Pihub3JtYWwyRFZlY3Rvci5oZWlnaHQo
KSkgKiBkYXRhLnN1cmZhY2VTY2FsZSk7CiAgICAgICAgIG5vcm1hbFZlY3Rvci5zZXRaKDEpOwog
ICAgICAgICBmbG9hdCBub3JtYWxWZWN0b3JMZW5ndGggPSBub3JtYWxWZWN0b3IubGVuZ3RoKCk7
CiAKQEAgLTI1NCwyMiArMjcyLDE3IEBAIGlubGluZSB2b2lkIEZFTGlnaHRpbmc6OmlubGluZVNl
dFBpeGVsKGludCBvZmZzZXQsIExpZ2h0aW5nRGF0YSYgZGF0YSwgTGlnaHRTb3VyCiAgICAgZGF0
YS5waXhlbHMtPnNldChvZmZzZXQgKyAyLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihsaWdo
dFN0cmVuZ3RoICogcGFpbnRpbmdEYXRhLmNvbG9yVmVjdG9yLnooKSkpOwogfQogCi12b2lkIEZF
TGlnaHRpbmc6OnNldFBpeGVsKGludCBvZmZzZXQsIExpZ2h0aW5nRGF0YSYgZGF0YSwgTGlnaHRT
b3VyY2U6OlBhaW50aW5nRGF0YSYgcGFpbnRpbmdEYXRhLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgbGlnaHRYLCBpbnQgbGlnaHRZLCBmbG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0b3JZ
LCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKQordm9pZCBGRUxpZ2h0aW5nOjpzZXRQaXhlbChpbnQg
b2Zmc2V0LCBMaWdodGluZ0RhdGEmIGRhdGEsIExpZ2h0U291cmNlOjpQYWludGluZ0RhdGEmIHBh
aW50aW5nRGF0YSwgaW50IGxpZ2h0WCwgaW50IGxpZ2h0WSwgZmxvYXQgZmFjdG9yWCwgZmxvYXQg
ZmFjdG9yWSwgSW50U2l6ZSBub3JtYWxWZWN0b3IpCiB7CiAgICAgaW5saW5lU2V0UGl4ZWwob2Zm
c2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIGxpZ2h0WCwgbGlnaHRZLCBmYWN0b3JYLCBmYWN0b3JZ
LCBub3JtYWxWZWN0b3IpOwogfQogCiBpbmxpbmUgdm9pZCBGRUxpZ2h0aW5nOjpwbGF0Zm9ybUFw
cGx5R2VuZXJpY1BhaW50KExpZ2h0aW5nRGF0YSYgZGF0YSwgTGlnaHRTb3VyY2U6OlBhaW50aW5n
RGF0YSYgcGFpbnRpbmdEYXRhLCBpbnQgc3RhcnRZLCBpbnQgZW5kWSkKIHsKLSAgICBJbnRQb2lu
dCBub3JtYWxWZWN0b3I7Ci0gICAgaW50IG9mZnNldCA9IDA7Ci0KICAgICBmb3IgKGludCB5ID0g
c3RhcnRZOyB5IDwgZW5kWTsgKyt5KSB7Ci0gICAgICAgIG9mZnNldCA9IHkgKiBkYXRhLndpZHRo
TXVsdGlwbGllZEJ5UGl4ZWxTaXplICsgY1BpeGVsU2l6ZTsKKyAgICAgICAgaW50IG9mZnNldCA9
IHkgKiBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplICsgY1BpeGVsU2l6ZTsKICAgICAg
ICAgZm9yIChpbnQgeCA9IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmU7ICsreCwgb2Zm
c2V0ICs9IGNQaXhlbFNpemUpIHsKLSAgICAgICAgICAgIGRhdGEuaW50ZXJpb3Iob2Zmc2V0LCBu
b3JtYWxWZWN0b3IpOwotICAgICAgICAgICAgaW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBw
YWludGluZ0RhdGEsIHgsIHksIGNGYWN0b3IxZGl2NCwgY0ZhY3RvcjFkaXY0LCBub3JtYWxWZWN0
b3IpOworICAgICAgICAgICAgaW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0Rh
dGEsIHgsIHksIGNGYWN0b3IxZGl2NCwgY0ZhY3RvcjFkaXY0LCBkYXRhLmludGVyaW9yTm9ybWFs
KG9mZnNldCkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzQxLDU1ICszNTQsNDQgQEAgYm9v
bCBGRUxpZ2h0aW5nOjpkcmF3TGlnaHRpbmcoVWludDhDbGFtcGVkQXJyYXkqIHBpeGVscywgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIHBhaW50aW5nRGF0YS5jb2xvclZlY3RvciA9IEZsb2F0
UG9pbnQzRChtX2xpZ2h0aW5nQ29sb3IucmVkKCksIG1fbGlnaHRpbmdDb2xvci5ncmVlbigpLCBt
X2xpZ2h0aW5nQ29sb3IuYmx1ZSgpKTsKICAgICBtX2xpZ2h0U291cmNlLT5pbml0UGFpbnRpbmdE
YXRhKHBhaW50aW5nRGF0YSk7CiAKLSAgICAvLyBUb3AvTGVmdCBjb3JuZXIuCi0gICAgSW50UG9p
bnQgbm9ybWFsVmVjdG9yOworICAgIC8vIFRvcCBsZWZ0LgogICAgIGludCBvZmZzZXQgPSAwOwot
ICAgIGRhdGEudG9wTGVmdChvZmZzZXQsIG5vcm1hbFZlY3Rvcik7Ci0gICAgc2V0UGl4ZWwob2Zm
c2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIDAsIDAsIGNGYWN0b3IyZGl2MywgY0ZhY3RvcjJkaXYz
LCBub3JtYWxWZWN0b3IpOworICAgIHNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRh
LCAwLCAwLCBjRmFjdG9yMmRpdjMsIGNGYWN0b3IyZGl2MywgZGF0YS50b3BMZWZ0Tm9ybWFsKG9m
ZnNldCkpOwogCi0gICAgLy8gVG9wL1JpZ2h0IHBpeGVsLgorICAgIC8vIFRvcCByaWdodC4KICAg
ICBvZmZzZXQgPSBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplIC0gY1BpeGVsU2l6ZTsK
LSAgICBkYXRhLnRvcFJpZ2h0KG9mZnNldCwgbm9ybWFsVmVjdG9yKTsKLSAgICBzZXRQaXhlbChv
ZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lLCAwLCBj
RmFjdG9yMmRpdjMsIGNGYWN0b3IyZGl2Mywgbm9ybWFsVmVjdG9yKTsKKyAgICBzZXRQaXhlbChv
ZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lLCAwLCBj
RmFjdG9yMmRpdjMsIGNGYWN0b3IyZGl2MywgZGF0YS50b3BSaWdodE5vcm1hbChvZmZzZXQpKTsK
IAotICAgIC8vIEJvdHRvbS9MZWZ0IHBpeGVsLgorICAgIC8vIEJvdHRvbSBsZWZ0LgogICAgIG9m
ZnNldCA9IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgKiBkYXRhLndpZHRoTXVsdGlwbGllZEJ5
UGl4ZWxTaXplOwotICAgIGRhdGEuYm90dG9tTGVmdChvZmZzZXQsIG5vcm1hbFZlY3Rvcik7Ci0g
ICAgc2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIDAsIGRhdGEuaGVpZ2h0RGVj
cmVhc2VkQnlPbmUsIGNGYWN0b3IyZGl2MywgY0ZhY3RvcjJkaXYzLCBub3JtYWxWZWN0b3IpOwor
ICAgIHNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCAwLCBkYXRhLmhlaWdodERl
Y3JlYXNlZEJ5T25lLCBjRmFjdG9yMmRpdjMsIGNGYWN0b3IyZGl2MywgZGF0YS5ib3R0b21MZWZ0
Tm9ybWFsKG9mZnNldCkpOwogCi0gICAgLy8gQm90dG9tL1JpZ2h0IHBpeGVsLgorICAgIC8vIEJv
dHRvbSByaWdodC4KICAgICBvZmZzZXQgPSBoZWlnaHQgKiBkYXRhLndpZHRoTXVsdGlwbGllZEJ5
UGl4ZWxTaXplIC0gY1BpeGVsU2l6ZTsKLSAgICBkYXRhLmJvdHRvbVJpZ2h0KG9mZnNldCwgbm9y
bWFsVmVjdG9yKTsKLSAgICBzZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgZGF0
YS53aWR0aERlY3JlYXNlZEJ5T25lLCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lLCBjRmFjdG9y
MmRpdjMsIGNGYWN0b3IyZGl2Mywgbm9ybWFsVmVjdG9yKTsKKyAgICBzZXRQaXhlbChvZmZzZXQs
IGRhdGEsIHBhaW50aW5nRGF0YSwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lLCBkYXRhLmhlaWdo
dERlY3JlYXNlZEJ5T25lLCBjRmFjdG9yMmRpdjMsIGNGYWN0b3IyZGl2MywgZGF0YS5ib3R0b21S
aWdodE5vcm1hbChvZmZzZXQpKTsKIAogICAgIGlmICh3aWR0aCA+PSAzKSB7CiAgICAgICAgIC8v
IFRvcCByb3cuCiAgICAgICAgIG9mZnNldCA9IGNQaXhlbFNpemU7Ci0gICAgICAgIGZvciAoaW50
IHggPSAxOyB4IDwgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lOyArK3gsIG9mZnNldCArPSBjUGl4
ZWxTaXplKSB7Ci0gICAgICAgICAgICBkYXRhLnRvcFJvdyhvZmZzZXQsIG5vcm1hbFZlY3Rvcik7
Ci0gICAgICAgICAgICBpbmxpbmVTZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwg
eCwgMCwgY0ZhY3RvcjFkaXYzLCBjRmFjdG9yMWRpdjIsIG5vcm1hbFZlY3Rvcik7Ci0gICAgICAg
IH0KKyAgICAgICAgZm9yIChpbnQgeCA9IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmU7
ICsreCwgb2Zmc2V0ICs9IGNQaXhlbFNpemUpCisgICAgICAgICAgICBpbmxpbmVTZXRQaXhlbChv
ZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgeCwgMCwgY0ZhY3RvcjFkaXYzLCBjRmFjdG9yMWRp
djIsIGRhdGEudG9wUm93Tm9ybWFsKG9mZnNldCkpOworCiAgICAgICAgIC8vIEJvdHRvbSByb3cu
CiAgICAgICAgIG9mZnNldCA9IGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgKiBkYXRhLndpZHRo
TXVsdGlwbGllZEJ5UGl4ZWxTaXplICsgY1BpeGVsU2l6ZTsKLSAgICAgICAgZm9yIChpbnQgeCA9
IDE7IHggPCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmU7ICsreCwgb2Zmc2V0ICs9IGNQaXhlbFNp
emUpIHsKLSAgICAgICAgICAgIGRhdGEuYm90dG9tUm93KG9mZnNldCwgbm9ybWFsVmVjdG9yKTsK
LSAgICAgICAgICAgIGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCB4
LCBkYXRhLmhlaWdodERlY3JlYXNlZEJ5T25lLCBjRmFjdG9yMWRpdjMsIGNGYWN0b3IxZGl2Miwg
bm9ybWFsVmVjdG9yKTsKLSAgICAgICAgfQorICAgICAgICBmb3IgKGludCB4ID0gMTsgeCA8IGRh
dGEud2lkdGhEZWNyZWFzZWRCeU9uZTsgKyt4LCBvZmZzZXQgKz0gY1BpeGVsU2l6ZSkKKyAgICAg
ICAgICAgIGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdEYXRhLCB4LCBkYXRh
LmhlaWdodERlY3JlYXNlZEJ5T25lLCBjRmFjdG9yMWRpdjMsIGNGYWN0b3IxZGl2MiwgZGF0YS5i
b3R0b21Sb3dOb3JtYWwob2Zmc2V0KSk7CiAgICAgfQogCiAgICAgaWYgKGhlaWdodCA+PSAzKSB7
CiAgICAgICAgIC8vIExlZnQgY29sdW1uLgogICAgICAgICBvZmZzZXQgPSBkYXRhLndpZHRoTXVs
dGlwbGllZEJ5UGl4ZWxTaXplOwotICAgICAgICBmb3IgKGludCB5ID0gMTsgeSA8IGRhdGEuaGVp
Z2h0RGVjcmVhc2VkQnlPbmU7ICsreSwgb2Zmc2V0ICs9IGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQ
aXhlbFNpemUpIHsKLSAgICAgICAgICAgIGRhdGEubGVmdENvbHVtbihvZmZzZXQsIG5vcm1hbFZl
Y3Rvcik7Ci0gICAgICAgICAgICBpbmxpbmVTZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5n
RGF0YSwgMCwgeSwgY0ZhY3RvcjFkaXYyLCBjRmFjdG9yMWRpdjMsIG5vcm1hbFZlY3Rvcik7Ci0g
ICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgeSA9IDE7IHkgPCBkYXRhLmhlaWdodERlY3JlYXNl
ZEJ5T25lOyArK3ksIG9mZnNldCArPSBkYXRhLndpZHRoTXVsdGlwbGllZEJ5UGl4ZWxTaXplKQor
ICAgICAgICAgICAgaW5saW5lU2V0UGl4ZWwob2Zmc2V0LCBkYXRhLCBwYWludGluZ0RhdGEsIDAs
IHksIGNGYWN0b3IxZGl2MiwgY0ZhY3RvcjFkaXYzLCBkYXRhLmxlZnRDb2x1bW5Ob3JtYWwob2Zm
c2V0KSk7CisKICAgICAgICAgLy8gUmlnaHQgY29sdW1uLgotICAgICAgICBvZmZzZXQgPSAoZGF0
YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSA8PCAxKSAtIGNQaXhlbFNpemU7Ci0gICAgICAg
IGZvciAoaW50IHkgPSAxOyB5IDwgZGF0YS5oZWlnaHREZWNyZWFzZWRCeU9uZTsgKyt5LCBvZmZz
ZXQgKz0gZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6ZSkgewotICAgICAgICAgICAgZGF0
YS5yaWdodENvbHVtbihvZmZzZXQsIG5vcm1hbFZlY3Rvcik7Ci0gICAgICAgICAgICBpbmxpbmVT
ZXRQaXhlbChvZmZzZXQsIGRhdGEsIHBhaW50aW5nRGF0YSwgZGF0YS53aWR0aERlY3JlYXNlZEJ5
T25lLCB5LCBjRmFjdG9yMWRpdjIsIGNGYWN0b3IxZGl2Mywgbm9ybWFsVmVjdG9yKTsKLSAgICAg
ICAgfQorICAgICAgICBvZmZzZXQgPSAyICogZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVsU2l6
ZSAtIGNQaXhlbFNpemU7CisgICAgICAgIGZvciAoaW50IHkgPSAxOyB5IDwgZGF0YS5oZWlnaHRE
ZWNyZWFzZWRCeU9uZTsgKyt5LCBvZmZzZXQgKz0gZGF0YS53aWR0aE11bHRpcGxpZWRCeVBpeGVs
U2l6ZSkKKyAgICAgICAgICAgIGlubGluZVNldFBpeGVsKG9mZnNldCwgZGF0YSwgcGFpbnRpbmdE
YXRhLCBkYXRhLndpZHRoRGVjcmVhc2VkQnlPbmUsIHksIGNGYWN0b3IxZGl2MiwgY0ZhY3RvcjFk
aXYzLCBkYXRhLnJpZ2h0Q29sdW1uTm9ybWFsKG9mZnNldCkpOwogICAgIH0KIAogICAgIGlmICh3
aWR0aCA+PSAzICYmIGhlaWdodCA+PSAzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCmluZGV4IGJkZmY5NzhhNThmYWNj
MzcxZWIxZTU0NjhmZjY3ZWFlYzIyNDI0MjcuLmI0MWEyZTEyMjcwNjdhNTRkY2Q2NjI5OWFmZDgz
NTZiYWY2YmU0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVMaWdodGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVMaWdodGluZy5oCkBAIC03MiwxNSArNzIsMTUgQEAgcHJvdGVjdGVkOgog
ICAgICAgICBpbnQgd2lkdGhEZWNyZWFzZWRCeU9uZTsKICAgICAgICAgaW50IGhlaWdodERlY3Jl
YXNlZEJ5T25lOwogCi0gICAgICAgIGlubGluZSB2b2lkIHRvcExlZnQoaW50IG9mZnNldCwgSW50
UG9pbnQmIG5vcm1hbFZlY3Rvcik7Ci0gICAgICAgIGlubGluZSB2b2lkIHRvcFJvdyhpbnQgb2Zm
c2V0LCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKTsKLSAgICAgICAgaW5saW5lIHZvaWQgdG9wUmln
aHQoaW50IG9mZnNldCwgSW50UG9pbnQmIG5vcm1hbFZlY3Rvcik7Ci0gICAgICAgIGlubGluZSB2
b2lkIGxlZnRDb2x1bW4oaW50IG9mZnNldCwgSW50UG9pbnQmIG5vcm1hbFZlY3Rvcik7Ci0gICAg
ICAgIGlubGluZSB2b2lkIGludGVyaW9yKGludCBvZmZzZXQsIEludFBvaW50JiBub3JtYWxWZWN0
b3IpOwotICAgICAgICBpbmxpbmUgdm9pZCByaWdodENvbHVtbihpbnQgb2Zmc2V0LCBJbnRQb2lu
dCYgbm9ybWFsVmVjdG9yKTsKLSAgICAgICAgaW5saW5lIHZvaWQgYm90dG9tTGVmdChpbnQgb2Zm
c2V0LCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKTsKLSAgICAgICAgaW5saW5lIHZvaWQgYm90dG9t
Um93KGludCBvZmZzZXQsIEludFBvaW50JiBub3JtYWxWZWN0b3IpOwotICAgICAgICBpbmxpbmUg
dm9pZCBib3R0b21SaWdodChpbnQgb2Zmc2V0LCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKTsKKyAg
ICAgICAgaW5saW5lIEludFNpemUgdG9wTGVmdE5vcm1hbChpbnQgb2Zmc2V0KSBjb25zdDsKKyAg
ICAgICAgaW5saW5lIEludFNpemUgdG9wUm93Tm9ybWFsKGludCBvZmZzZXQpIGNvbnN0OworICAg
ICAgICBpbmxpbmUgSW50U2l6ZSB0b3BSaWdodE5vcm1hbChpbnQgb2Zmc2V0KSBjb25zdDsKKyAg
ICAgICAgaW5saW5lIEludFNpemUgbGVmdENvbHVtbk5vcm1hbChpbnQgb2Zmc2V0KSBjb25zdDsK
KyAgICAgICAgaW5saW5lIEludFNpemUgaW50ZXJpb3JOb3JtYWwoaW50IG9mZnNldCkgY29uc3Q7
CisgICAgICAgIGlubGluZSBJbnRTaXplIHJpZ2h0Q29sdW1uTm9ybWFsKGludCBvZmZzZXQpIGNv
bnN0OworICAgICAgICBpbmxpbmUgSW50U2l6ZSBib3R0b21MZWZ0Tm9ybWFsKGludCBvZmZzZXQp
IGNvbnN0OworICAgICAgICBpbmxpbmUgSW50U2l6ZSBib3R0b21Sb3dOb3JtYWwoaW50IG9mZnNl
dCkgY29uc3Q7CisgICAgICAgIGlubGluZSBJbnRTaXplIGJvdHRvbVJpZ2h0Tm9ybWFsKGludCBv
ZmZzZXQpIGNvbnN0OwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgpAQCAt
MTAxLDExICsxMDEsMTEgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBkcmF3TGlnaHRpbmcoVWlu
dDhDbGFtcGVkQXJyYXkqLCBpbnQsIGludCk7CiAgICAgaW5saW5lIHZvaWQgaW5saW5lU2V0UGl4
ZWwoaW50IG9mZnNldCwgTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpZ2h0WCwgaW50IGxpZ2h0WSwg
ZmxvYXQgZmFjdG9yWCwgZmxvYXQgZmFjdG9yWSwgSW50UG9pbnQmIG5vcm1hbFZlY3Rvcik7Cisg
ICAgICAgIGludCBsaWdodFgsIGludCBsaWdodFksIGZsb2F0IGZhY3RvclgsIGZsb2F0IGZhY3Rv
clksIEludFNpemUgbm9ybWFsVmVjdG9yKTsKIAogICAgIC8vIE5vdCB3b3J0aCB0byBpbmxpbmUg
ZXZlcnkgb2NjdXJlbmNlIG9mIHNldFBpeGVsLgogICAgIHZvaWQgc2V0UGl4ZWwoaW50IG9mZnNl
dCwgTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYsCi0gICAgICAgICAg
ICAgICAgICBpbnQgbGlnaHRYLCBpbnQgbGlnaHRZLCBmbG9hdCBmYWN0b3JYLCBmbG9hdCBmYWN0
b3JZLCBJbnRQb2ludCYgbm9ybWFsVmVjdG9yKTsKKyAgICAgICAgaW50IGxpZ2h0WCwgaW50IGxp
Z2h0WSwgZmxvYXQgZmFjdG9yWCwgZmxvYXQgZmFjdG9yWSwgSW50U2l6ZSBub3JtYWxWZWN0b3Ip
OwogCiAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKSBvdmVycmlkZTsKIApAQCAtMTE0
LDggKzExNCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseUdl
bmVyaWNQYWludChMaWdodGluZ0RhdGEmLCBMaWdodFNvdXJjZTo6UGFpbnRpbmdEYXRhJiwgaW50
IHN0YXJ0WCwgaW50IHN0YXJ0WSk7CiAgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseUdlbmVy
aWMoTGlnaHRpbmdEYXRhJiwgTGlnaHRTb3VyY2U6OlBhaW50aW5nRGF0YSYpOwogCisjaWYgQ1BV
KEFSTV9ORU9OKSAmJiBDUFUoQVJNX1RSQURJVElPTkFMKSAmJiBDT01QSUxFUihHQ0NfT1JfQ0xB
TkcpCiAgICAgc3RhdGljIGludCBnZXRQb3dlckNvZWZmaWNpZW50cyhmbG9hdCBleHBvbmVudCk7
CiAgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseU5lb24oTGlnaHRpbmdEYXRhJiwgTGlnaHRT
b3VyY2U6OlBhaW50aW5nRGF0YSYpOworI2VuZGlmCiAKICAgICBMaWdodGluZ1R5cGUgbV9saWdo
dGluZ1R5cGU7CiAgICAgUmVmPExpZ2h0U291cmNlPiBtX2xpZ2h0U291cmNlOwo=
</data>
<flag name="review"
          id="346643"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>