<?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>147337</bug_id>
          
          <creation_ts>2015-07-27 16:23:15 -0700</creation_ts>
          <short_desc>PathApplierFunction should take a reference to a PathElement</short_desc>
          <delta_ts>2015-07-28 22:07:36 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dbates</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112570</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-27 16:23:15 -0700</bug_when>
    <thetext>PathApplierFunction should take a reference to a PathElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112571</commentid>
    <comment_count>1</comment_count>
      <attachid>257610</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-27 16:24:07 -0700</bug_when>
    <thetext>Created attachment 257610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112642</commentid>
    <comment_count>2</comment_count>
      <attachid>257624</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-27 18:27:34 -0700</bug_when>
    <thetext>Created attachment 257624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112644</commentid>
    <comment_count>3</comment_count>
      <attachid>257624</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-07-27 18:55:11 -0700</bug_when>
    <thetext>Comment on attachment 257624
Patch

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

Obviously, we need to rebase this patch before landing.

&gt; Source/WebCore/platform/graphics/cg/PathCG.cpp:383
&gt; +static void CGPathApplierToPathApplier(void *info, const CGPathElement* element)

We should also fix up the position of the &apos;*&apos; in the first argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112774</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-28 11:23:54 -0700</bug_when>
    <thetext>https://trac.webkit.org/r187492</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112777</commentid>
    <comment_count>5</comment_count>
      <attachid>257624</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-07-28 11:26:51 -0700</bug_when>
    <thetext>Comment on attachment 257624
Patch

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

&gt; Source/WebCore/platform/graphics/Path.h:83
&gt; +    typedef void (*PathApplierFunction)(void* info, const PathElement&amp;);

We should come back here and change this to be:

    typedef std::function&lt;void (const PathElement&amp;)&gt; PathApplierFunction;

Cleaner to use std::function instead of void*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1113035</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-07-28 22:07:36 -0700</bug_when>
    <thetext>&gt; We should come back here and change this to be:
&gt; 
&gt;     typedef std::function&lt;void (const PathElement&amp;)&gt; PathApplierFunction;
&gt; 
&gt; Cleaner to use std::function instead of void*.

Doing so via bug 147368</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257610</attachid>
            <date>2015-07-27 16:24:07 -0700</date>
            <delta_ts>2015-07-27 18:27:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147337-20150727162246.patch</filename>
            <type>text/plain</type>
            <size>18388</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc3MGVkOWE4MjA2YTJj
NjkwNjk2NzFjYTQ3YzJmZTcxMGFmMGVlYy4uOTY1NzcyYjFlY2VjZGQwYmE1MjI3MmNkZGRhNWVi
NjExZjBmOWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE1LTA3LTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBhdGhBcHBsaWVy
RnVuY3Rpb24gc2hvdWxkIHRha2UgYSByZWZlcmVuY2UgdG8gYSBQYXRoRWxlbWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MzM3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udmVydCBQYXRoQXBw
bGllckZ1bmN0aW9uIHRvIHRha2UgYSBjb25zdCBQYXRoRWxlbWVudCYsIHNpbmNlIGl0IGNhbiBu
ZXZlciBiZSBudWxsLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoQ29udmVydFBhdGhUb1NjcmVlblNw
YWNlRnVuY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZFBhdGhTZWdtZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhMZW5ndGhBcHBsaWVy
RnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGguaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhdGhUcmF2ZXJzYWxTdGF0ZTo6cHJvY2Vzc1BhdGhFbGVtZW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0dQYXRo
QXBwbGllclRvUGF0aEFwcGxpZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHTWFya2Vy
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRGF0YTo6dXBkYXRlRnJvbVBhdGhF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckRhdGE6OnVwZGF0ZU1hcmtlckRh
dGFGb3JQYXRoRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdTdWJwYXRoRGF0
YS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3VicGF0aERhdGE6OnVwZGF0ZUZyb21QYXRoRWxl
bWVudCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cGF0aEl0ZXJhdG9yRm9yQnVpbGRpbmdTdHJpbmcpOgorCiAyMDE1LTA3LTI3ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBQ
YXNzIGEgR3N0SW5zdGFsbFBsdWdpbnNDb250ZXh0IHRvIGdzdF9pbnN0YWxsX3BsdWdpbnNfYXN5
bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA5OTcyNGVhOGIyOWNlNzU3NDA2ODFmMDlmY2UzMDZiZTFjMWU5ZjQ1
Li5hZmM3ZDExMTFiZDJjNDdmODdjYWIyNjdjYzFjYTQ2NzcyM2ZkODExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUGF0aEFwcGxpZXJGdW5jdGlvbiBzaG91bGQgdGFrZSBhIHJl
ZmVyZW5jZSB0byBhIFBhdGhFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDczMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDb252ZXJ0IFBhdGhBcHBsaWVyRnVuY3Rpb24gdG8gdGFrZSBhIGNv
bnN0IFBhdGhFbGVtZW50Jiwgc2luY2UgaXQgY2FuIG5ldmVyIGJlIG51bGwuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6cGF0aFBv
aW50Q291bnRBcHBsaWVyRnVuY3Rpb24pOgorICAgICAgICAoSVBDOjpwYXRoRW5jb2RlQXBwbGll
ckZ1bmN0aW9uKToKKwogMjAxNS0wNy0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUGFzcyBhIEdzdEluc3RhbGxQbHVnaW5zQ29u
dGV4dCB0byBnc3RfaW5zdGFsbF9wbHVnaW5zX2FzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckJhc2UubW0KaW5kZXggOTM1MzRjMjZmNTUzMTg0MDkxMDM3N2U4Y2YzZmEwMTVh
MDE1OTY0OC4uODMwODMzYzJjZTAwZWNhMTQ1Y2IzMmI1ZDMzZjM0YWMzNTkzM2JmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQpAQCAtMjQ3LDM2ICsyNDcsMzYg
QEAgc3RydWN0IFBhdGhDb252ZXJzaW9uSW5mbyB7CiAgICAgQ0dNdXRhYmxlUGF0aFJlZiBwYXRo
OwogfTsKIAotc3RhdGljIHZvaWQgQ29udmVydFBhdGhUb1NjcmVlblNwYWNlRnVuY3Rpb24odm9p
ZCogaW5mbywgY29uc3QgUGF0aEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0aWMgdm9pZCBDb252ZXJ0
UGF0aFRvU2NyZWVuU3BhY2VGdW5jdGlvbih2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCYg
ZWxlbWVudCkKIHsKICAgICBQYXRoQ29udmVyc2lvbkluZm8qIGNvbnZlcnNpb24gPSAoUGF0aENv
bnZlcnNpb25JbmZvKilpbmZvOwogICAgIFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFz
ZSAqd3JhcHBlciA9IGNvbnZlcnNpb24tPndyYXBwZXI7CiAgICAgQ0dNdXRhYmxlUGF0aFJlZiBu
ZXdQYXRoID0gY29udmVyc2lvbi0+cGF0aDsKLSAgICBzd2l0Y2ggKGVsZW1lbnQtPnR5cGUpIHsK
KyAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkgewogICAgIGNhc2UgUGF0aEVsZW1lbnRNb3ZlVG9Q
b2ludDoKICAgICB7Ci0gICAgICAgIENHUG9pbnQgbmV3UG9pbnQgPSBbd3JhcHBlciBjb252ZXJ0
UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1lbnQtPnBvaW50c1swXV07CisgICAgICAgIENHUG9pbnQg
bmV3UG9pbnQgPSBbd3JhcHBlciBjb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1lbnQucG9p
bnRzWzBdXTsKICAgICAgICAgQ0dQYXRoTW92ZVRvUG9pbnQobmV3UGF0aCwgbmlsLCBuZXdQb2lu
dC54LCBuZXdQb2ludC55KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUGF0aEVs
ZW1lbnRBZGRMaW5lVG9Qb2ludDoKICAgICB7Ci0gICAgICAgIENHUG9pbnQgbmV3UG9pbnQgPSBb
d3JhcHBlciBjb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1lbnQtPnBvaW50c1swXV07Cisg
ICAgICAgIENHUG9pbnQgbmV3UG9pbnQgPSBbd3JhcHBlciBjb252ZXJ0UG9pbnRUb1NjcmVlblNw
YWNlOmVsZW1lbnQucG9pbnRzWzBdXTsKICAgICAgICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQobmV3
UGF0aCwgbmlsLCBuZXdQb2ludC54LCBuZXdQb2ludC55KTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRRdWFkQ3VydmVUb1BvaW50OgogICAgIHsKLSAgICAg
ICAgQ0dQb2ludCBuZXdQb2ludDEgPSBbd3JhcHBlciBjb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNl
OmVsZW1lbnQtPnBvaW50c1swXV07Ci0gICAgICAgIENHUG9pbnQgbmV3UG9pbnQyID0gW3dyYXBw
ZXIgY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTplbGVtZW50LT5wb2ludHNbMV1dOworICAgICAg
ICBDR1BvaW50IG5ld1BvaW50MSA9IFt3cmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6
ZWxlbWVudC5wb2ludHNbMF1dOworICAgICAgICBDR1BvaW50IG5ld1BvaW50MiA9IFt3cmFwcGVy
IGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6ZWxlbWVudC5wb2ludHNbMV1dOwogICAgICAgICBD
R1BhdGhBZGRRdWFkQ3VydmVUb1BvaW50KG5ld1BhdGgsIG5pbCwgbmV3UG9pbnQxLngsIG5ld1Bv
aW50MS55LCBuZXdQb2ludDIueCwgbmV3UG9pbnQyLnkpOwogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgY2FzZSBQYXRoRWxlbWVudEFkZEN1cnZlVG9Qb2ludDoKICAgICB7Ci0gICAgICAgIENH
UG9pbnQgbmV3UG9pbnQxID0gW3dyYXBwZXIgY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTplbGVt
ZW50LT5wb2ludHNbMF1dOwotICAgICAgICBDR1BvaW50IG5ld1BvaW50MiA9IFt3cmFwcGVyIGNv
bnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6ZWxlbWVudC0+cG9pbnRzWzFdXTsKLSAgICAgICAgQ0dQ
b2ludCBuZXdQb2ludDMgPSBbd3JhcHBlciBjb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1l
bnQtPnBvaW50c1syXV07CisgICAgICAgIENHUG9pbnQgbmV3UG9pbnQxID0gW3dyYXBwZXIgY29u
dmVydFBvaW50VG9TY3JlZW5TcGFjZTplbGVtZW50LnBvaW50c1swXV07CisgICAgICAgIENHUG9p
bnQgbmV3UG9pbnQyID0gW3dyYXBwZXIgY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTplbGVtZW50
LnBvaW50c1sxXV07CisgICAgICAgIENHUG9pbnQgbmV3UG9pbnQzID0gW3dyYXBwZXIgY29udmVy
dFBvaW50VG9TY3JlZW5TcGFjZTplbGVtZW50LnBvaW50c1syXV07CiAgICAgICAgIENHUGF0aEFk
ZEN1cnZlVG9Qb2ludChuZXdQYXRoLCBuaWwsIG5ld1BvaW50MS54LCBuZXdQb2ludDEueSwgbmV3
UG9pbnQyLngsIG5ld1BvaW50Mi55LCBuZXdQb2ludDMueCwgbmV3UG9pbnQzLnkpOwogICAgICAg
ICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5jcHAKaW5kZXggNzY3ZjM0M2EwNzM2YTllNTVkOThjNWEyNWM0MDEzNTgzNDRlMTQ2Ny4u
ZTgyOGI4ZDYxNTVhZGMyYTE1NWFlYmMyZGEzNGJlZGZiYTA2ZGMwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtNjA5LDI2ICs2MDksMjYg
QEAgc3RhdGljIHZvaWQgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMoUGF0aEFwcGx5SW5mbyYg
aW5mbywgY29uc3QgU3RyaW5nJiBjb21tYW4KIH0KIAogLy8gVXNlZCBhcyBhIGZ1bmN0b3IgZm9y
IFNoYXBlOjphcHBseSwgd2hpY2ggaGFzIG5vdCBiZWVuIGNsZWFuZWQgdXAgdG8gdXNlIG1vZGVy
biBDKysuCi1zdGF0aWMgdm9pZCBhcHBlbmRQYXRoU2VnbWVudCh2b2lkKiBpbmZvLCBjb25zdCBQ
YXRoRWxlbWVudCogcGF0aEVsZW1lbnQpCitzdGF0aWMgdm9pZCBhcHBlbmRQYXRoU2VnbWVudCh2
b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCYgcGF0aEVsZW1lbnQpCiB7CiAgICAgUGF0aEFw
cGx5SW5mbyYgcGF0aEFwcGx5SW5mbyA9ICpzdGF0aWNfY2FzdDxQYXRoQXBwbHlJbmZvKj4oaW5m
byk7CiAgICAgRmxvYXRQb2ludCBwb2ludDsKLSAgICBzd2l0Y2ggKHBhdGhFbGVtZW50LT50eXBl
KSB7CisgICAgc3dpdGNoIChwYXRoRWxlbWVudC50eXBlKSB7CiAgICAgLy8gVGhlIHBvaW50cyBt
ZW1iZXIgd2lsbCBjb250YWluIDEgdmFsdWUuCiAgICAgY2FzZSBQYXRoRWxlbWVudE1vdmVUb1Bv
aW50OgotICAgICAgICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCBB
U0NJSUxpdGVyYWwoIk0iKSwgcGF0aEVsZW1lbnQtPnBvaW50cywgMSk7CisgICAgICAgIGFwcGVu
ZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUluZm8sIEFTQ0lJTGl0ZXJhbCgiTSIpLCBw
YXRoRWxlbWVudC5wb2ludHMsIDEpOwogICAgICAgICBicmVhazsKICAgICAvLyBUaGUgcG9pbnRz
IG1lbWJlciB3aWxsIGNvbnRhaW4gMSB2YWx1ZS4KICAgICBjYXNlIFBhdGhFbGVtZW50QWRkTGlu
ZVRvUG9pbnQ6Ci0gICAgICAgIGFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUlu
Zm8sIEFTQ0lJTGl0ZXJhbCgiTCIpLCBwYXRoRWxlbWVudC0+cG9pbnRzLCAxKTsKKyAgICAgICAg
YXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5mbywgQVNDSUlMaXRlcmFsKCJM
IiksIHBhdGhFbGVtZW50LnBvaW50cywgMSk7CiAgICAgICAgIGJyZWFrOwogICAgIC8vIFRoZSBw
b2ludHMgbWVtYmVyIHdpbGwgY29udGFpbiAzIHZhbHVlcy4KICAgICBjYXNlIFBhdGhFbGVtZW50
QWRkQ3VydmVUb1BvaW50OgotICAgICAgICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRo
QXBwbHlJbmZvLCBBU0NJSUxpdGVyYWwoIkMiKSwgcGF0aEVsZW1lbnQtPnBvaW50cywgMyk7Cisg
ICAgICAgIGFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUluZm8sIEFTQ0lJTGl0
ZXJhbCgiQyIpLCBwYXRoRWxlbWVudC5wb2ludHMsIDMpOwogICAgICAgICBicmVhazsKICAgICAv
LyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gMiB2YWx1ZXMuCiAgICAgY2FzZSBQYXRo
RWxlbWVudEFkZFF1YWRDdXJ2ZVRvUG9pbnQ6Ci0gICAgICAgIGFwcGVuZFBhdGhDb21tYW5kQW5k
UG9pbnRzKHBhdGhBcHBseUluZm8sIEFTQ0lJTGl0ZXJhbCgiUSIpLCBwYXRoRWxlbWVudC0+cG9p
bnRzLCAyKTsKKyAgICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5m
bywgQVNDSUlMaXRlcmFsKCJRIiksIHBhdGhFbGVtZW50LnBvaW50cywgMik7CiAgICAgICAgIGJy
ZWFrOwogICAgIC8vIFRoZSBwb2ludHMgbWVtYmVyIHdpbGwgY29udGFpbiBubyB2YWx1ZXMuCiAg
ICAgY2FzZSBQYXRoRWxlbWVudENsb3NlU3VicGF0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0aC5jcHAKaW5kZXggMWFjZjcyOWFkMzliZGU0YTExMTgxOTExMDIzNWI1ZWYy
ZWUxNjFkMy4uNTAyMmI1MjZhZWJiYjYwZTg1NTZlMTViMTM5Njg3Yzk4NTQwNzFiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgdm9pZCBwYXRoTGVuZ3RoQXBwbGllckZ1
bmN0aW9uKHZvaWQqIGluZm8sIGNvbnN0IFBhdGhFbGVtZW50KiBlbGVtZW50KQorc3RhdGljIHZv
aWQgcGF0aExlbmd0aEFwcGxpZXJGdW5jdGlvbih2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVu
dCYgZWxlbWVudCkKIHsKICAgICBQYXRoVHJhdmVyc2FsU3RhdGUmIHRyYXZlcnNhbFN0YXRlID0g
KnN0YXRpY19jYXN0PFBhdGhUcmF2ZXJzYWxTdGF0ZSo+KGluZm8pOwogICAgIHRyYXZlcnNhbFN0
YXRlLnByb2Nlc3NQYXRoRWxlbWVudChlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BhdGguaAppbmRleCAwOGI2ZjUwZmE3MjI5MzQxNTlhNTEyMTZlNDMyMzZjZTVhMjI1
NmYxLi4xN2ViYTQ4MWEyMzkwMDRlYmRhZTM5ZTAyZTgwNTM0MjU4ZDI5NGVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCkBAIC04MCw3ICs4MCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgRmxvYXRQb2ludCogcG9pbnRzOwogICAgIH07CiAKLSAgICB0
eXBlZGVmIHZvaWQgKCpQYXRoQXBwbGllckZ1bmN0aW9uKSh2b2lkKiBpbmZvLCBjb25zdCBQYXRo
RWxlbWVudCopOworICAgIHR5cGVkZWYgdm9pZCAoKlBhdGhBcHBsaWVyRnVuY3Rpb24pKHZvaWQq
IGluZm8sIGNvbnN0IFBhdGhFbGVtZW50Jik7CiAKICAgICBjbGFzcyBQYXRoIHsKICAgICAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5oCmluZGV4IGE0YzM1MzhmMTQ5MzQwMjhh
ZjBlNjc1MThkYWJmMTBhZGU4NWQ1MDMuLmJkM2MwZjFkMmIwY2E1NzgyZmQyZGQyMzRlZTg3YzQ5
Y2YwY2MwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bh
dGhUcmF2ZXJzYWxTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BhdGhUcmF2ZXJzYWxTdGF0ZS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogcHVibGlj
OgogICAgIGJvb2wgcHJvY2Vzc1BhdGhFbGVtZW50KFBhdGhFbGVtZW50VHlwZSwgY29uc3QgRmxv
YXRQb2ludCopOwotICAgIGJvb2wgcHJvY2Vzc1BhdGhFbGVtZW50KGNvbnN0IFBhdGhFbGVtZW50
KiBlbGVtZW50KSB7IHJldHVybiBwcm9jZXNzUGF0aEVsZW1lbnQoZWxlbWVudC0+dHlwZSwgZWxl
bWVudC0+cG9pbnRzKTsgfQorICAgIGJvb2wgcHJvY2Vzc1BhdGhFbGVtZW50KGNvbnN0IFBhdGhF
bGVtZW50JiBlbGVtZW50KSB7IHJldHVybiBwcm9jZXNzUGF0aEVsZW1lbnQoZWxlbWVudC50eXBl
LCBlbGVtZW50LnBvaW50cyk7IH0KIAogICAgIEFjdGlvbiBhY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX2FjdGlvbjsgfQogICAgIHZvaWQgc2V0QWN0aW9uKEFjdGlvbiBhY3Rpb24pIHsgbV9hY3Rp
b24gPSBhY3Rpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL1BhdGhDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Q
YXRoQ0cuY3BwCmluZGV4IDYzZmEwNzYwNDAyZTMwNzBkZGNkZDAwZDk4MjM0MjBhZTk4OTUyOWEu
LjNkOWMzMWJjNmMwMTQ3YjQwOTc1YjM4MjhiYWI1Y2FiNjU0MDFjMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUGF0aENHLmNwcApAQCAtMzgwLDcgKzM4MCw3
IEBAIHN0cnVjdCBQYXRoQXBwbGllckluZm8gewogICAgIFBhdGhBcHBsaWVyRnVuY3Rpb24gZnVu
Y3Rpb247CiB9OwogCi1zdGF0aWMgdm9pZCBDR1BhdGhBcHBsaWVyVG9QYXRoQXBwbGllcih2b2lk
ICppbmZvLCBjb25zdCBDR1BhdGhFbGVtZW50ICplbGVtZW50KQorc3RhdGljIHZvaWQgQ0dQYXRo
QXBwbGllclRvUGF0aEFwcGxpZXIodm9pZCAqaW5mbywgY29uc3QgQ0dQYXRoRWxlbWVudCogZWxl
bWVudCkKIHsKICAgICBQYXRoQXBwbGllckluZm8qIHBpbmZvID0gKFBhdGhBcHBsaWVySW5mbyop
aW5mbzsKICAgICBGbG9hdFBvaW50IHBvaW50c1szXTsKQEAgLTQwNSw3ICs0MDUsNyBAQCBzdGF0
aWMgdm9pZCBDR1BhdGhBcHBsaWVyVG9QYXRoQXBwbGllcih2b2lkICppbmZvLCBjb25zdCBDR1Bh
dGhFbGVtZW50ICplbGVtZW50KQogICAgIGNhc2Uga0NHUGF0aEVsZW1lbnRDbG9zZVN1YnBhdGg6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBwaW5mby0+ZnVuY3Rpb24ocGluZm8tPmluZm8s
ICZwZWxlbWVudCk7CisgICAgcGluZm8tPmZ1bmN0aW9uKHBpbmZvLT5pbmZvLCBwZWxlbWVudCk7
CiB9CiAKIHZvaWQgUGF0aDo6YXBwbHkodm9pZCogaW5mbywgUGF0aEFwcGxpZXJGdW5jdGlvbiBm
dW5jdGlvbikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHTWFya2VyRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdNYXJrZXJE
YXRhLmgKaW5kZXggZDk1M2VmM2IxYTgwMGZhYmE3YWJkMTY1MDU5ZGU4ZTdlYTVmMjViNS4uMWYx
YmI1NDg0NjlkNDRlNjVhN2VmYWFlMjU3ZTNiMDU2NWUzNTZlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdNYXJrZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdNYXJrZXJEYXRhLmgKQEAgLTU0LDEyICs1NCwxMiBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIHVwZGF0ZUZyb21QYXRoRWxlbWVu
dCh2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCogZWxlbWVudCkKKyAgICBzdGF0aWMgdm9p
ZCB1cGRhdGVGcm9tUGF0aEVsZW1lbnQodm9pZCogaW5mbywgY29uc3QgUGF0aEVsZW1lbnQmIGVs
ZW1lbnQpCiAgICAgewogICAgICAgICBTVkdNYXJrZXJEYXRhKiBtYXJrZXJEYXRhID0gc3RhdGlj
X2Nhc3Q8U1ZHTWFya2VyRGF0YSo+KGluZm8pOwogCiAgICAgICAgIC8vIEZpcnN0IHVwZGF0ZSB0
aGUgb3V0c2xvcGUgZm9yIHRoZSBwcmV2aW91cyBlbGVtZW50LgotICAgICAgICBtYXJrZXJEYXRh
LT51cGRhdGVPdXRzbG9wZShlbGVtZW50LT5wb2ludHNbMF0pOworICAgICAgICBtYXJrZXJEYXRh
LT51cGRhdGVPdXRzbG9wZShlbGVtZW50LnBvaW50c1swXSk7CiAKICAgICAgICAgLy8gUmVjb3Jk
IHRoZSBtYXJrZXIgZm9yIHRoZSBwcmV2aW91cyBlbGVtZW50LgogICAgICAgICBpZiAobWFya2Vy
RGF0YS0+bV9lbGVtZW50SW5kZXggPiAwKSB7CkBAIC0xMDksMTEgKzEwOSwxMSBAQCBwcml2YXRl
OgogICAgICAgICBtX291dHNsb3BlUG9pbnRzWzFdID0gcG9pbnQ7CiAgICAgfQogCi0gICAgdm9p
ZCB1cGRhdGVNYXJrZXJEYXRhRm9yUGF0aEVsZW1lbnQoY29uc3QgUGF0aEVsZW1lbnQqIGVsZW1l
bnQpCisgICAgdm9pZCB1cGRhdGVNYXJrZXJEYXRhRm9yUGF0aEVsZW1lbnQoY29uc3QgUGF0aEVs
ZW1lbnQmIGVsZW1lbnQpCiAgICAgewotICAgICAgICBGbG9hdFBvaW50KiBwb2ludHMgPSBlbGVt
ZW50LT5wb2ludHM7CisgICAgICAgIEZsb2F0UG9pbnQqIHBvaW50cyA9IGVsZW1lbnQucG9pbnRz
OwogCi0gICAgICAgIHN3aXRjaCAoZWxlbWVudC0+dHlwZSkgeworICAgICAgICBzd2l0Y2ggKGVs
ZW1lbnQudHlwZSkgewogICAgICAgICBjYXNlIFBhdGhFbGVtZW50QWRkUXVhZEN1cnZlVG9Qb2lu
dDoKICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzMxMTUgKFBhdGhFbGVtZW50QWRkUXVhZEN1cnZlVG9Qb2ludCBub3QgaGFuZGxl
ZCBmb3IgPG1hcmtlcj4pCiAgICAgICAgICAgICBtX29yaWdpbiA9IHBvaW50c1sxXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHU3VicGF0aERhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHU3VicGF0aERhdGEuaAppbmRleCA5Y2VhNzQw
MTFmMWI3Mzc5YTYwM2VhNmUzZDU1N2NjMmI3MzNlZGMzLi5kN2JjMTEzOTY2YWU0M2RlNTZkZjYx
MmE3ZjRlOWJhMzFkNmU4OTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1N1YnBhdGhEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdTdWJwYXRoRGF0YS5oCkBAIC0zNiwzNSArMzYsMzUgQEAgcHVibGljOgogICAgICAgICBtX21v
dmVQb2ludC5zZXQoMCwgMCk7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgdXBkYXRlRnJvbVBh
dGhFbGVtZW50KHZvaWQqIGluZm8sIGNvbnN0IFBhdGhFbGVtZW50KiBlbGVtZW50KQorICAgIHN0
YXRpYyB2b2lkIHVwZGF0ZUZyb21QYXRoRWxlbWVudCh2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxl
bWVudCYgZWxlbWVudCkKICAgICB7CiAgICAgICAgIFNWR1N1YnBhdGhEYXRhKiBzdWJwYXRoRmlu
ZGVyID0gc3RhdGljX2Nhc3Q8U1ZHU3VicGF0aERhdGEqPihpbmZvKTsKLSAgICAgICAgc3dpdGNo
IChlbGVtZW50LT50eXBlKSB7CisgICAgICAgIHN3aXRjaCAoZWxlbWVudC50eXBlKSB7CiAgICAg
ICAgIGNhc2UgUGF0aEVsZW1lbnRNb3ZlVG9Qb2ludDoKICAgICAgICAgICAgIGlmIChzdWJwYXRo
RmluZGVyLT5tX3BhdGhJc1plcm9MZW5ndGggJiYgIXN1YnBhdGhGaW5kZXItPm1faGF2ZVNlZW5N
b3ZlT25seSkKICAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX3plcm9MZW5ndGhTdWJw
YXRoTG9jYXRpb25zLmFwcGVuZChzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCk7Ci0gICAgICAg
ICAgICBzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCA9IHN1YnBhdGhGaW5kZXItPm1fbW92ZVBv
aW50ID0gZWxlbWVudC0+cG9pbnRzWzBdOworICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+bV9s
YXN0UG9pbnQgPSBzdWJwYXRoRmluZGVyLT5tX21vdmVQb2ludCA9IGVsZW1lbnQucG9pbnRzWzBd
OwogICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+bV9oYXZlU2Vlbk1vdmVPbmx5ID0gdHJ1ZTsK
ICAgICAgICAgICAgIHN1YnBhdGhGaW5kZXItPm1fcGF0aElzWmVyb0xlbmd0aCA9IHRydWU7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQYXRoRWxlbWVudEFkZExpbmVUb1BvaW50
OgotICAgICAgICAgICAgaWYgKHN1YnBhdGhGaW5kZXItPm1fbGFzdFBvaW50ICE9IGVsZW1lbnQt
PnBvaW50c1swXSkgeworICAgICAgICAgICAgaWYgKHN1YnBhdGhGaW5kZXItPm1fbGFzdFBvaW50
ICE9IGVsZW1lbnQucG9pbnRzWzBdKSB7CiAgICAgICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+
bV9wYXRoSXNaZXJvTGVuZ3RoID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc3VicGF0aEZpbmRl
ci0+bV9sYXN0UG9pbnQgPSBlbGVtZW50LT5wb2ludHNbMF07CisgICAgICAgICAgICAgICAgc3Vi
cGF0aEZpbmRlci0+bV9sYXN0UG9pbnQgPSBlbGVtZW50LnBvaW50c1swXTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHN1YnBhdGhGaW5kZXItPm1faGF2ZVNlZW5Nb3ZlT25seSA9IGZhbHNl
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRRdWFkQ3Vy
dmVUb1BvaW50OgotICAgICAgICAgICAgaWYgKHN1YnBhdGhGaW5kZXItPm1fbGFzdFBvaW50ICE9
IGVsZW1lbnQtPnBvaW50c1swXSB8fCBlbGVtZW50LT5wb2ludHNbMF0gIT0gZWxlbWVudC0+cG9p
bnRzWzFdKSB7CisgICAgICAgICAgICBpZiAoc3VicGF0aEZpbmRlci0+bV9sYXN0UG9pbnQgIT0g
ZWxlbWVudC5wb2ludHNbMF0gfHwgZWxlbWVudC5wb2ludHNbMF0gIT0gZWxlbWVudC5wb2ludHNb
MV0pIHsKICAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX3BhdGhJc1plcm9MZW5ndGgg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCA9IGVs
ZW1lbnQtPnBvaW50c1sxXTsKKyAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX2xhc3RQ
b2ludCA9IGVsZW1lbnQucG9pbnRzWzFdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc3Vi
cGF0aEZpbmRlci0+bV9oYXZlU2Vlbk1vdmVPbmx5ID0gZmFsc2U7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBQYXRoRWxlbWVudEFkZEN1cnZlVG9Qb2ludDoKLSAgICAgICAgICAg
IGlmIChzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCAhPSBlbGVtZW50LT5wb2ludHNbMF0gfHwg
ZWxlbWVudC0+cG9pbnRzWzBdICE9IGVsZW1lbnQtPnBvaW50c1sxXSB8fCBlbGVtZW50LT5wb2lu
dHNbMV0gIT0gZWxlbWVudC0+cG9pbnRzWzJdKSB7CisgICAgICAgICAgICBpZiAoc3VicGF0aEZp
bmRlci0+bV9sYXN0UG9pbnQgIT0gZWxlbWVudC5wb2ludHNbMF0gfHwgZWxlbWVudC5wb2ludHNb
MF0gIT0gZWxlbWVudC5wb2ludHNbMV0gfHwgZWxlbWVudC5wb2ludHNbMV0gIT0gZWxlbWVudC5w
b2ludHNbMl0pIHsKICAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX3BhdGhJc1plcm9M
ZW5ndGggPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2lu
dCA9IGVsZW1lbnQtPnBvaW50c1syXTsKKyAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5t
X2xhc3RQb2ludCA9IGVsZW1lbnQucG9pbnRzWzJdOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgc3VicGF0aEZpbmRlci0+bV9oYXZlU2Vlbk1vdmVPbmx5ID0gZmFsc2U7CiAgICAgICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAppbmRleCBjNDFm
YTEzNTNjYzczODY1ZGI0ODUwNDE2YWZhNjYyN2EwOWExNDg2Li44YmE4YjQ1MTc3ZDYwMGNiMmE0
MmU2NjE1NDcyZmIwMzcyODE0ZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRp
ZXMuY3BwCkBAIC0zMzEsMjIgKzMzMSwyMiBAQCBib29sIGdldFBvaW50QXRMZW5ndGhPZlNWR1Bh
dGhCeXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtKiBzdHJlYW0sIGZsb2F0IGxlbmd0aAogICAg
IHJldHVybiBvazsKIH0KIAotc3RhdGljIHZvaWQgcGF0aEl0ZXJhdG9yRm9yQnVpbGRpbmdTdHJp
bmcodm9pZCogaW5mbywgY29uc3QgUGF0aEVsZW1lbnQqIHBhdGhFbGVtZW50KQorc3RhdGljIHZv
aWQgcGF0aEl0ZXJhdG9yRm9yQnVpbGRpbmdTdHJpbmcodm9pZCogaW5mbywgY29uc3QgUGF0aEVs
ZW1lbnQmIHBhdGhFbGVtZW50KQogewogICAgIFNWR1BhdGhDb25zdW1lciogY29uc3VtZXIgPSBz
dGF0aWNfY2FzdDxTVkdQYXRoQ29uc3VtZXIqPihpbmZvKTsKIAotICAgIHN3aXRjaCAocGF0aEVs
ZW1lbnQtPnR5cGUpIHsKKyAgICBzd2l0Y2ggKHBhdGhFbGVtZW50LnR5cGUpIHsKICAgICBjYXNl
IFBhdGhFbGVtZW50TW92ZVRvUG9pbnQ6Ci0gICAgICAgIGNvbnN1bWVyLT5tb3ZlVG8ocGF0aEVs
ZW1lbnQtPnBvaW50c1swXSwgZmFsc2UsIEFic29sdXRlQ29vcmRpbmF0ZXMpOworICAgICAgICBj
b25zdW1lci0+bW92ZVRvKHBhdGhFbGVtZW50LnBvaW50c1swXSwgZmFsc2UsIEFic29sdXRlQ29v
cmRpbmF0ZXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhdGhFbGVtZW50QWRkTGluZVRv
UG9pbnQ6Ci0gICAgICAgIGNvbnN1bWVyLT5saW5lVG8ocGF0aEVsZW1lbnQtPnBvaW50c1swXSwg
QWJzb2x1dGVDb29yZGluYXRlcyk7CisgICAgICAgIGNvbnN1bWVyLT5saW5lVG8ocGF0aEVsZW1l
bnQucG9pbnRzWzBdLCBBYnNvbHV0ZUNvb3JkaW5hdGVzKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBQYXRoRWxlbWVudEFkZFF1YWRDdXJ2ZVRvUG9pbnQ6Ci0gICAgICAgIGNvbnN1bWVyLT5j
dXJ2ZVRvUXVhZHJhdGljKHBhdGhFbGVtZW50LT5wb2ludHNbMF0sIHBhdGhFbGVtZW50LT5wb2lu
dHNbMV0sIEFic29sdXRlQ29vcmRpbmF0ZXMpOworICAgICAgICBjb25zdW1lci0+Y3VydmVUb1F1
YWRyYXRpYyhwYXRoRWxlbWVudC5wb2ludHNbMF0sIHBhdGhFbGVtZW50LnBvaW50c1sxXSwgQWJz
b2x1dGVDb29yZGluYXRlcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aEVsZW1lbnRB
ZGRDdXJ2ZVRvUG9pbnQ6Ci0gICAgICAgIGNvbnN1bWVyLT5jdXJ2ZVRvQ3ViaWMocGF0aEVsZW1l
bnQtPnBvaW50c1swXSwgcGF0aEVsZW1lbnQtPnBvaW50c1sxXSwgcGF0aEVsZW1lbnQtPnBvaW50
c1syXSwgQWJzb2x1dGVDb29yZGluYXRlcyk7CisgICAgICAgIGNvbnN1bWVyLT5jdXJ2ZVRvQ3Vi
aWMocGF0aEVsZW1lbnQucG9pbnRzWzBdLCBwYXRoRWxlbWVudC5wb2ludHNbMV0sIHBhdGhFbGVt
ZW50LnBvaW50c1syXSwgQWJzb2x1dGVDb29yZGluYXRlcyk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgUGF0aEVsZW1lbnRDbG9zZVN1YnBhdGg6CiAgICAgICAgIGNvbnN1bWVyLT5jbG9zZVBh
dGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKaW5kZXggMjZhY2Y0YWUxM2JjODBlZmM5YmM0ZDA3MTcxNWRkMTQ0ZTMwYTFjYy4uODYxNDFl
NTMzMGY5ZmFkM2ZjZDJkZTE4OGYxNzBiOTc4YmY2YTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTM3MywzMyArMzczLDMzIEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVj
b2RlciwgSW50U2l6ZSYgaW50U2l6ZSkKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJ
bnRTaXplPjo6ZGVjb2RlKGRlY29kZXIsIGludFNpemUpOwogfQogCi1zdGF0aWMgdm9pZCBwYXRo
UG9pbnRDb3VudEFwcGxpZXJGdW5jdGlvbih2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCop
CitzdGF0aWMgdm9pZCBwYXRoUG9pbnRDb3VudEFwcGxpZXJGdW5jdGlvbih2b2lkKiBpbmZvLCBj
b25zdCBQYXRoRWxlbWVudCYpCiB7CiAgICAgdWludDY0X3QqIHBvaW50Q291bnQgPSBzdGF0aWNf
Y2FzdDx1aW50NjRfdCo+KGluZm8pOwogICAgICsrKnBvaW50Q291bnQ7CiB9CiAKLXN0YXRpYyB2
b2lkIHBhdGhFbmNvZGVBcHBsaWVyRnVuY3Rpb24odm9pZCogaW5mbywgY29uc3QgUGF0aEVsZW1l
bnQqIGVsZW1lbnQpCitzdGF0aWMgdm9pZCBwYXRoRW5jb2RlQXBwbGllckZ1bmN0aW9uKHZvaWQq
IGluZm8sIGNvbnN0IFBhdGhFbGVtZW50JiBlbGVtZW50KQogewogICAgIEFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlciA9ICpzdGF0aWNfY2FzdDxBcmd1bWVudEVuY29kZXIqPihpbmZvKTsKIAotICAg
IGVuY29kZXIuZW5jb2RlRW51bShlbGVtZW50LT50eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVu
dW0oZWxlbWVudC50eXBlKTsKIAotICAgIHN3aXRjaCAoZWxlbWVudC0+dHlwZSkgeworICAgIHN3
aXRjaCAoZWxlbWVudC50eXBlKSB7CiAgICAgY2FzZSBQYXRoRWxlbWVudE1vdmVUb1BvaW50OiAv
LyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gMSB2YWx1ZS4KLSAgICAgICAgZW5jb2Rl
ciA8PCBlbGVtZW50LT5wb2ludHNbMF07CisgICAgICAgIGVuY29kZXIgPDwgZWxlbWVudC5wb2lu
dHNbMF07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRMaW5lVG9Qb2lu
dDogLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIDEgdmFsdWUuCi0gICAgICAgIGVu
Y29kZXIgPDwgZWxlbWVudC0+cG9pbnRzWzBdOworICAgICAgICBlbmNvZGVyIDw8IGVsZW1lbnQu
cG9pbnRzWzBdOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhdGhFbGVtZW50QWRkUXVhZEN1
cnZlVG9Qb2ludDogLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIDIgdmFsdWVzLgot
ICAgICAgICBlbmNvZGVyIDw8IGVsZW1lbnQtPnBvaW50c1swXTsKLSAgICAgICAgZW5jb2RlciA8
PCBlbGVtZW50LT5wb2ludHNbMV07CisgICAgICAgIGVuY29kZXIgPDwgZWxlbWVudC5wb2ludHNb
MF07CisgICAgICAgIGVuY29kZXIgPDwgZWxlbWVudC5wb2ludHNbMV07CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRDdXJ2ZVRvUG9pbnQ6IC8vIFRoZSBwb2ludHMgbWVt
YmVyIHdpbGwgY29udGFpbiAzIHZhbHVlcy4KLSAgICAgICAgZW5jb2RlciA8PCBlbGVtZW50LT5w
b2ludHNbMF07Ci0gICAgICAgIGVuY29kZXIgPDwgZWxlbWVudC0+cG9pbnRzWzFdOwotICAgICAg
ICBlbmNvZGVyIDw8IGVsZW1lbnQtPnBvaW50c1syXTsKKyAgICAgICAgZW5jb2RlciA8PCBlbGVt
ZW50LnBvaW50c1swXTsKKyAgICAgICAgZW5jb2RlciA8PCBlbGVtZW50LnBvaW50c1sxXTsKKyAg
ICAgICAgZW5jb2RlciA8PCBlbGVtZW50LnBvaW50c1syXTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBQYXRoRWxlbWVudENsb3NlU3VicGF0aDogLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBj
b250YWluIG5vIHZhbHVlcy4KICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257624</attachid>
            <date>2015-07-27 18:27:34 -0700</date>
            <delta_ts>2015-07-27 18:55:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147337-20150727182614.patch</filename>
            <type>text/plain</type>
            <size>20251</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxM2NiOGFjMTJhNWMx
NTQ2N2FlOGNjYTY2MzU5ZDM4NjgyNTE3My4uZDNlOWM4M2VmYzdiYWM1ZjNmYTA4YjhiMmI0MGUz
NDk4OWZhYjU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACisyMDE1LTA3LTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBhdGhBcHBsaWVy
RnVuY3Rpb24gc2hvdWxkIHRha2UgYSByZWZlcmVuY2UgdG8gYSBQYXRoRWxlbWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MzM3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udmVydCBQYXRoQXBw
bGllckZ1bmN0aW9uIHRvIHRha2UgYSBjb25zdCBQYXRoRWxlbWVudCYsIHNpbmNlIGl0IGNhbiBu
ZXZlciBiZSBudWxsLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tOgorICAgICAgICAoQ29udmVydFBhdGhUb1NjcmVlblNw
YWNlRnVuY3Rpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZFBhdGhTZWdtZW50KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhMZW5ndGhBcHBsaWVy
RnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGguaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVyc2FsU3RhdGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhdGhUcmF2ZXJzYWxTdGF0ZTo6cHJvY2Vzc1BhdGhFbGVtZW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0dQYXRo
QXBwbGllclRvUGF0aEFwcGxpZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHTWFya2Vy
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRGF0YTo6dXBkYXRlRnJvbVBhdGhF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckRhdGE6OnVwZGF0ZU1hcmtlckRh
dGFGb3JQYXRoRWxlbWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdTdWJwYXRoRGF0
YS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3VicGF0aERhdGE6OnVwZGF0ZUZyb21QYXRoRWxl
bWVudCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cGF0aEl0ZXJhdG9yRm9yQnVpbGRpbmdTdHJpbmcpOgorCiAyMDE1LTA3LTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBBbmlt
YXRpb25CYXNlOjppc1RyYW5zZm9ybUZ1bmN0aW9uTGlzdFZhbGlkKCkKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzMzNAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MjI0OWZlODIyOTBhNDcyN2VmM2VkN2IyNTU5ZmI5NWQ4NGFiNzc0NS4uMjcwNWUyOGFjOGVkYzA4
ZTRiZjQ2ODVlYTAzNDY3YTBhMzZlOWExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE1LTA3LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFBhdGhBcHBsaWVyRnVuY3Rpb24gc2hvdWxkIHRha2UgYSByZWZlcmVuY2UgdG8gYSBQYXRo
RWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ3MzM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q29udmVydCBQYXRoQXBwbGllckZ1bmN0aW9uIHRvIHRha2UgYSBjb25zdCBQYXRoRWxlbWVudCYs
IHNpbmNlIGl0IGNhbiBuZXZlciBiZSBudWxsLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OnBhdGhQb2ludENvdW50QXBwbGllckZ1
bmN0aW9uKToKKyAgICAgICAgKElQQzo6cGF0aEVuY29kZUFwcGxpZXJGdW5jdGlvbik6CisKIDIw
MTUtMDctMjcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtp
T1NdIE9jY2FzaW9uYWwgY3Jhc2hlcyBpbiBXZWJQYWdlOjplbGVtZW50RGlkQmx1cigpJ3MgYXN5
bmMgYmxvY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KaW5kZXgg
OTM1MzRjMjZmNTUzMTg0MDkxMDM3N2U4Y2YzZmEwMTVhMDE1OTY0OC4uODMwODMzYzJjZTAwZWNh
MTQ1Y2IzMmI1ZDMzZjM0YWMzNTkzM2JmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyQmFzZS5tbQpAQCAtMjQ3LDM2ICsyNDcsMzYgQEAgc3RydWN0IFBhdGhDb252ZXJzaW9u
SW5mbyB7CiAgICAgQ0dNdXRhYmxlUGF0aFJlZiBwYXRoOwogfTsKIAotc3RhdGljIHZvaWQgQ29u
dmVydFBhdGhUb1NjcmVlblNwYWNlRnVuY3Rpb24odm9pZCogaW5mbywgY29uc3QgUGF0aEVsZW1l
bnQqIGVsZW1lbnQpCitzdGF0aWMgdm9pZCBDb252ZXJ0UGF0aFRvU2NyZWVuU3BhY2VGdW5jdGlv
bih2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBQYXRoQ29u
dmVyc2lvbkluZm8qIGNvbnZlcnNpb24gPSAoUGF0aENvbnZlcnNpb25JbmZvKilpbmZvOwogICAg
IFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZSAqd3JhcHBlciA9IGNvbnZlcnNpb24t
PndyYXBwZXI7CiAgICAgQ0dNdXRhYmxlUGF0aFJlZiBuZXdQYXRoID0gY29udmVyc2lvbi0+cGF0
aDsKLSAgICBzd2l0Y2ggKGVsZW1lbnQtPnR5cGUpIHsKKyAgICBzd2l0Y2ggKGVsZW1lbnQudHlw
ZSkgewogICAgIGNhc2UgUGF0aEVsZW1lbnRNb3ZlVG9Qb2ludDoKICAgICB7Ci0gICAgICAgIENH
UG9pbnQgbmV3UG9pbnQgPSBbd3JhcHBlciBjb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1l
bnQtPnBvaW50c1swXV07CisgICAgICAgIENHUG9pbnQgbmV3UG9pbnQgPSBbd3JhcHBlciBjb252
ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1lbnQucG9pbnRzWzBdXTsKICAgICAgICAgQ0dQYXRo
TW92ZVRvUG9pbnQobmV3UGF0aCwgbmlsLCBuZXdQb2ludC54LCBuZXdQb2ludC55KTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRMaW5lVG9Qb2ludDoKICAg
ICB7Ci0gICAgICAgIENHUG9pbnQgbmV3UG9pbnQgPSBbd3JhcHBlciBjb252ZXJ0UG9pbnRUb1Nj
cmVlblNwYWNlOmVsZW1lbnQtPnBvaW50c1swXV07CisgICAgICAgIENHUG9pbnQgbmV3UG9pbnQg
PSBbd3JhcHBlciBjb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1lbnQucG9pbnRzWzBdXTsK
ICAgICAgICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQobmV3UGF0aCwgbmlsLCBuZXdQb2ludC54LCBu
ZXdQb2ludC55KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUGF0aEVsZW1lbnRB
ZGRRdWFkQ3VydmVUb1BvaW50OgogICAgIHsKLSAgICAgICAgQ0dQb2ludCBuZXdQb2ludDEgPSBb
d3JhcHBlciBjb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1lbnQtPnBvaW50c1swXV07Ci0g
ICAgICAgIENHUG9pbnQgbmV3UG9pbnQyID0gW3dyYXBwZXIgY29udmVydFBvaW50VG9TY3JlZW5T
cGFjZTplbGVtZW50LT5wb2ludHNbMV1dOworICAgICAgICBDR1BvaW50IG5ld1BvaW50MSA9IFt3
cmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6ZWxlbWVudC5wb2ludHNbMF1dOworICAg
ICAgICBDR1BvaW50IG5ld1BvaW50MiA9IFt3cmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3Bh
Y2U6ZWxlbWVudC5wb2ludHNbMV1dOwogICAgICAgICBDR1BhdGhBZGRRdWFkQ3VydmVUb1BvaW50
KG5ld1BhdGgsIG5pbCwgbmV3UG9pbnQxLngsIG5ld1BvaW50MS55LCBuZXdQb2ludDIueCwgbmV3
UG9pbnQyLnkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQYXRoRWxlbWVudEFk
ZEN1cnZlVG9Qb2ludDoKICAgICB7Ci0gICAgICAgIENHUG9pbnQgbmV3UG9pbnQxID0gW3dyYXBw
ZXIgY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTplbGVtZW50LT5wb2ludHNbMF1dOwotICAgICAg
ICBDR1BvaW50IG5ld1BvaW50MiA9IFt3cmFwcGVyIGNvbnZlcnRQb2ludFRvU2NyZWVuU3BhY2U6
ZWxlbWVudC0+cG9pbnRzWzFdXTsKLSAgICAgICAgQ0dQb2ludCBuZXdQb2ludDMgPSBbd3JhcHBl
ciBjb252ZXJ0UG9pbnRUb1NjcmVlblNwYWNlOmVsZW1lbnQtPnBvaW50c1syXV07CisgICAgICAg
IENHUG9pbnQgbmV3UG9pbnQxID0gW3dyYXBwZXIgY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTpl
bGVtZW50LnBvaW50c1swXV07CisgICAgICAgIENHUG9pbnQgbmV3UG9pbnQyID0gW3dyYXBwZXIg
Y29udmVydFBvaW50VG9TY3JlZW5TcGFjZTplbGVtZW50LnBvaW50c1sxXV07CisgICAgICAgIENH
UG9pbnQgbmV3UG9pbnQzID0gW3dyYXBwZXIgY29udmVydFBvaW50VG9TY3JlZW5TcGFjZTplbGVt
ZW50LnBvaW50c1syXV07CiAgICAgICAgIENHUGF0aEFkZEN1cnZlVG9Qb2ludChuZXdQYXRoLCBu
aWwsIG5ld1BvaW50MS54LCBuZXdQb2ludDEueSwgbmV3UG9pbnQyLngsIG5ld1BvaW50Mi55LCBu
ZXdQb2ludDMueCwgbmV3UG9pbnQzLnkpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggNzY3ZjM0M2Ew
NzM2YTllNTVkOThjNWEyNWM0MDEzNTgzNDRlMTQ2Ny4uZTgyOGI4ZDYxNTVhZGMyYTE1NWFlYmMy
ZGEzNGJlZGZiYTA2ZGMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5LmNwcApAQCAtNjA5LDI2ICs2MDksMjYgQEAgc3RhdGljIHZvaWQgYXBwZW5kUGF0
aENvbW1hbmRBbmRQb2ludHMoUGF0aEFwcGx5SW5mbyYgaW5mbywgY29uc3QgU3RyaW5nJiBjb21t
YW4KIH0KIAogLy8gVXNlZCBhcyBhIGZ1bmN0b3IgZm9yIFNoYXBlOjphcHBseSwgd2hpY2ggaGFz
IG5vdCBiZWVuIGNsZWFuZWQgdXAgdG8gdXNlIG1vZGVybiBDKysuCi1zdGF0aWMgdm9pZCBhcHBl
bmRQYXRoU2VnbWVudCh2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCogcGF0aEVsZW1lbnQp
CitzdGF0aWMgdm9pZCBhcHBlbmRQYXRoU2VnbWVudCh2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxl
bWVudCYgcGF0aEVsZW1lbnQpCiB7CiAgICAgUGF0aEFwcGx5SW5mbyYgcGF0aEFwcGx5SW5mbyA9
ICpzdGF0aWNfY2FzdDxQYXRoQXBwbHlJbmZvKj4oaW5mbyk7CiAgICAgRmxvYXRQb2ludCBwb2lu
dDsKLSAgICBzd2l0Y2ggKHBhdGhFbGVtZW50LT50eXBlKSB7CisgICAgc3dpdGNoIChwYXRoRWxl
bWVudC50eXBlKSB7CiAgICAgLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIDEgdmFs
dWUuCiAgICAgY2FzZSBQYXRoRWxlbWVudE1vdmVUb1BvaW50OgotICAgICAgICBhcHBlbmRQYXRo
Q29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCBBU0NJSUxpdGVyYWwoIk0iKSwgcGF0aEVs
ZW1lbnQtPnBvaW50cywgMSk7CisgICAgICAgIGFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBh
dGhBcHBseUluZm8sIEFTQ0lJTGl0ZXJhbCgiTSIpLCBwYXRoRWxlbWVudC5wb2ludHMsIDEpOwog
ICAgICAgICBicmVhazsKICAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxsIGNvbnRhaW4gMSB2
YWx1ZS4KICAgICBjYXNlIFBhdGhFbGVtZW50QWRkTGluZVRvUG9pbnQ6Ci0gICAgICAgIGFwcGVu
ZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUluZm8sIEFTQ0lJTGl0ZXJhbCgiTCIpLCBw
YXRoRWxlbWVudC0+cG9pbnRzLCAxKTsKKyAgICAgICAgYXBwZW5kUGF0aENvbW1hbmRBbmRQb2lu
dHMocGF0aEFwcGx5SW5mbywgQVNDSUlMaXRlcmFsKCJMIiksIHBhdGhFbGVtZW50LnBvaW50cywg
MSk7CiAgICAgICAgIGJyZWFrOwogICAgIC8vIFRoZSBwb2ludHMgbWVtYmVyIHdpbGwgY29udGFp
biAzIHZhbHVlcy4KICAgICBjYXNlIFBhdGhFbGVtZW50QWRkQ3VydmVUb1BvaW50OgotICAgICAg
ICBhcHBlbmRQYXRoQ29tbWFuZEFuZFBvaW50cyhwYXRoQXBwbHlJbmZvLCBBU0NJSUxpdGVyYWwo
IkMiKSwgcGF0aEVsZW1lbnQtPnBvaW50cywgMyk7CisgICAgICAgIGFwcGVuZFBhdGhDb21tYW5k
QW5kUG9pbnRzKHBhdGhBcHBseUluZm8sIEFTQ0lJTGl0ZXJhbCgiQyIpLCBwYXRoRWxlbWVudC5w
b2ludHMsIDMpOwogICAgICAgICBicmVhazsKICAgICAvLyBUaGUgcG9pbnRzIG1lbWJlciB3aWxs
IGNvbnRhaW4gMiB2YWx1ZXMuCiAgICAgY2FzZSBQYXRoRWxlbWVudEFkZFF1YWRDdXJ2ZVRvUG9p
bnQ6Ci0gICAgICAgIGFwcGVuZFBhdGhDb21tYW5kQW5kUG9pbnRzKHBhdGhBcHBseUluZm8sIEFT
Q0lJTGl0ZXJhbCgiUSIpLCBwYXRoRWxlbWVudC0+cG9pbnRzLCAyKTsKKyAgICAgICAgYXBwZW5k
UGF0aENvbW1hbmRBbmRQb2ludHMocGF0aEFwcGx5SW5mbywgQVNDSUlMaXRlcmFsKCJRIiksIHBh
dGhFbGVtZW50LnBvaW50cywgMik7CiAgICAgICAgIGJyZWFrOwogICAgIC8vIFRoZSBwb2ludHMg
bWVtYmVyIHdpbGwgY29udGFpbiBubyB2YWx1ZXMuCiAgICAgY2FzZSBQYXRoRWxlbWVudENsb3Nl
U3VicGF0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bh
dGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHAKaW5kZXgg
MWFjZjcyOWFkMzliZGU0YTExMTgxOTExMDIzNWI1ZWYyZWUxNjFkMy4uNTAyMmI1MjZhZWJiYjYw
ZTg1NTZlMTViMTM5Njg3Yzk4NTQwNzFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGF0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGF0aC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgdm9pZCBwYXRoTGVuZ3RoQXBwbGllckZ1bmN0aW9uKHZvaWQqIGluZm8sIGNvbnN0
IFBhdGhFbGVtZW50KiBlbGVtZW50KQorc3RhdGljIHZvaWQgcGF0aExlbmd0aEFwcGxpZXJGdW5j
dGlvbih2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBQYXRo
VHJhdmVyc2FsU3RhdGUmIHRyYXZlcnNhbFN0YXRlID0gKnN0YXRpY19jYXN0PFBhdGhUcmF2ZXJz
YWxTdGF0ZSo+KGluZm8pOwogICAgIHRyYXZlcnNhbFN0YXRlLnByb2Nlc3NQYXRoRWxlbWVudChl
bGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bh
dGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAppbmRleCAwOGI2
ZjUwZmE3MjI5MzQxNTlhNTEyMTZlNDMyMzZjZTVhMjI1NmYxLi4xN2ViYTQ4MWEyMzkwMDRlYmRh
ZTM5ZTAyZTgwNTM0MjU4ZDI5NGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGF0aC5oCkBAIC04MCw3ICs4MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRmxv
YXRQb2ludCogcG9pbnRzOwogICAgIH07CiAKLSAgICB0eXBlZGVmIHZvaWQgKCpQYXRoQXBwbGll
ckZ1bmN0aW9uKSh2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCopOworICAgIHR5cGVkZWYg
dm9pZCAoKlBhdGhBcHBsaWVyRnVuY3Rpb24pKHZvaWQqIGluZm8sIGNvbnN0IFBhdGhFbGVtZW50
Jik7CiAKICAgICBjbGFzcyBQYXRoIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoVHJhdmVy
c2FsU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJz
YWxTdGF0ZS5oCmluZGV4IGE0YzM1MzhmMTQ5MzQwMjhhZjBlNjc1MThkYWJmMTBhZGU4NWQ1MDMu
LmJkM2MwZjFkMmIwY2E1NzgyZmQyZGQyMzRlZTg3YzQ5Y2YwY2MwNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGhUcmF2ZXJzYWxTdGF0ZS5oCkBA
IC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogcHVibGljOgogICAgIGJvb2wgcHJvY2Vzc1BhdGhF
bGVtZW50KFBhdGhFbGVtZW50VHlwZSwgY29uc3QgRmxvYXRQb2ludCopOwotICAgIGJvb2wgcHJv
Y2Vzc1BhdGhFbGVtZW50KGNvbnN0IFBhdGhFbGVtZW50KiBlbGVtZW50KSB7IHJldHVybiBwcm9j
ZXNzUGF0aEVsZW1lbnQoZWxlbWVudC0+dHlwZSwgZWxlbWVudC0+cG9pbnRzKTsgfQorICAgIGJv
b2wgcHJvY2Vzc1BhdGhFbGVtZW50KGNvbnN0IFBhdGhFbGVtZW50JiBlbGVtZW50KSB7IHJldHVy
biBwcm9jZXNzUGF0aEVsZW1lbnQoZWxlbWVudC50eXBlLCBlbGVtZW50LnBvaW50cyk7IH0KIAog
ICAgIEFjdGlvbiBhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2FjdGlvbjsgfQogICAgIHZvaWQg
c2V0QWN0aW9uKEFjdGlvbiBhY3Rpb24pIHsgbV9hY3Rpb24gPSBhY3Rpb247IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCmlu
ZGV4IDQyNjNjYjg2MDMyY2U5ZjczZTg5OGYzZDk5ZjFkZjBjN2M5NmE4ZDEuLjY0NTM3YzcxOGFj
NDY0OTBhNjk1ZDQ4ZGM4OWVlZDc2ZGYwMmU4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcApAQCAtMTc0LDI3ICsxNzQs
MjcgQEAgc3RhdGljIHZvaWQgdXBkYXRlWChHbHlwaEl0ZXJhdGlvblN0YXRlJiBzdGF0ZSwgZmxv
YXQgeCkKIC8vIHBzZXVkby1jb250b3VyIGFuZCB0aGUgdmVydGljYWwgY2VudGVyIG9mIHRoZSB1
bmRlcmxpbmUgZm91bmQgaW4gR2x5cGhJdGVyYXRpb25TdGF0ZTo6Y2VudGVyT2ZMaW5lLgogLy8g
SXQga2VlcHMgdHJhY2sgb2YgdGhlIGxlZnRtb3N0IGFuZCByaWdodG1vc3QgaW50ZXJzZWN0aW9u
IGluICBHbHlwaEl0ZXJhdGlvblN0YXRlOjptaW5YIGFuZCAKIC8vIEdseXBoSXRlcmF0aW9uU3Rh
dGU6Om1heFguCi1zdGF0aWMgdm9pZCBmaW5kUGF0aEludGVyc2VjdGlvbnModm9pZCogc3RhdGVB
c1ZvaWRQb2ludGVyLCBjb25zdCBQYXRoRWxlbWVudCogZWxlbWVudCkKK3N0YXRpYyB2b2lkIGZp
bmRQYXRoSW50ZXJzZWN0aW9ucyh2b2lkKiBzdGF0ZUFzVm9pZFBvaW50ZXIsIGNvbnN0IFBhdGhF
bGVtZW50JiBlbGVtZW50KQogewogICAgIGF1dG8mIHN0YXRlID0gKnN0YXRpY19jYXN0PEdseXBo
SXRlcmF0aW9uU3RhdGUqPihzdGF0ZUFzVm9pZFBvaW50ZXIpOwogICAgIGJvb2wgZG9JbnRlcnNl
Y3Rpb24gPSBmYWxzZTsKICAgICBGbG9hdFBvaW50IHBvaW50ID0gRmxvYXRQb2ludCgpOwotICAg
IHN3aXRjaCAoZWxlbWVudC0+dHlwZSkgeworICAgIHN3aXRjaCAoZWxlbWVudC50eXBlKSB7CiAg
ICAgY2FzZSBQYXRoRWxlbWVudE1vdmVUb1BvaW50OgotICAgICAgICBzdGF0ZS5zdGFydGluZ1Bv
aW50ID0gZWxlbWVudC0+cG9pbnRzWzBdOwotICAgICAgICBzdGF0ZS5jdXJyZW50UG9pbnQgPSBl
bGVtZW50LT5wb2ludHNbMF07CisgICAgICAgIHN0YXRlLnN0YXJ0aW5nUG9pbnQgPSBlbGVtZW50
LnBvaW50c1swXTsKKyAgICAgICAgc3RhdGUuY3VycmVudFBvaW50ID0gZWxlbWVudC5wb2ludHNb
MF07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRMaW5lVG9Qb2ludDoK
ICAgICAgICAgZG9JbnRlcnNlY3Rpb24gPSB0cnVlOwotICAgICAgICBwb2ludCA9IGVsZW1lbnQt
PnBvaW50c1swXTsKKyAgICAgICAgcG9pbnQgPSBlbGVtZW50LnBvaW50c1swXTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBQYXRoRWxlbWVudEFkZFF1YWRDdXJ2ZVRvUG9pbnQ6CiAgICAgICAg
IGRvSW50ZXJzZWN0aW9uID0gdHJ1ZTsKLSAgICAgICAgcG9pbnQgPSBlbGVtZW50LT5wb2ludHNb
MV07CisgICAgICAgIHBvaW50ID0gZWxlbWVudC5wb2ludHNbMV07CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRDdXJ2ZVRvUG9pbnQ6CiAgICAgICAgIGRvSW50ZXJzZWN0
aW9uID0gdHJ1ZTsKLSAgICAgICAgcG9pbnQgPSBlbGVtZW50LT5wb2ludHNbMl07CisgICAgICAg
IHBvaW50ID0gZWxlbWVudC5wb2ludHNbMl07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0
aEVsZW1lbnRDbG9zZVN1YnBhdGg6CiAgICAgICAgIGRvSW50ZXJzZWN0aW9uID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9QYXRoQ0cuY3BwCmluZGV4IDYz
ZmEwNzYwNDAyZTMwNzBkZGNkZDAwZDk4MjM0MjBhZTk4OTUyOWEuLjNkOWMzMWJjNmMwMTQ3YjQw
OTc1YjM4MjhiYWI1Y2FiNjU0MDFjMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvUGF0aENHLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIHN0cnVjdCBQYXRoQXBw
bGllckluZm8gewogICAgIFBhdGhBcHBsaWVyRnVuY3Rpb24gZnVuY3Rpb247CiB9OwogCi1zdGF0
aWMgdm9pZCBDR1BhdGhBcHBsaWVyVG9QYXRoQXBwbGllcih2b2lkICppbmZvLCBjb25zdCBDR1Bh
dGhFbGVtZW50ICplbGVtZW50KQorc3RhdGljIHZvaWQgQ0dQYXRoQXBwbGllclRvUGF0aEFwcGxp
ZXIodm9pZCAqaW5mbywgY29uc3QgQ0dQYXRoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBQYXRo
QXBwbGllckluZm8qIHBpbmZvID0gKFBhdGhBcHBsaWVySW5mbyopaW5mbzsKICAgICBGbG9hdFBv
aW50IHBvaW50c1szXTsKQEAgLTQwNSw3ICs0MDUsNyBAQCBzdGF0aWMgdm9pZCBDR1BhdGhBcHBs
aWVyVG9QYXRoQXBwbGllcih2b2lkICppbmZvLCBjb25zdCBDR1BhdGhFbGVtZW50ICplbGVtZW50
KQogICAgIGNhc2Uga0NHUGF0aEVsZW1lbnRDbG9zZVN1YnBhdGg6CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KLSAgICBwaW5mby0+ZnVuY3Rpb24ocGluZm8tPmluZm8sICZwZWxlbWVudCk7CisgICAg
cGluZm8tPmZ1bmN0aW9uKHBpbmZvLT5pbmZvLCBwZWxlbWVudCk7CiB9CiAKIHZvaWQgUGF0aDo6
YXBwbHkodm9pZCogaW5mbywgUGF0aEFwcGxpZXJGdW5jdGlvbiBmdW5jdGlvbikgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHTWFya2VyRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdNYXJrZXJEYXRhLmgKaW5kZXggZDk1M2Vm
M2IxYTgwMGZhYmE3YWJkMTY1MDU5ZGU4ZTdlYTVmMjViNS4uMWYxYmI1NDg0NjlkNDRlNjVhN2Vm
YWFlMjU3ZTNiMDU2NWUzNTZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdNYXJrZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdNYXJrZXJEYXRhLmgKQEAgLTU0LDEyICs1NCwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0K
IAotICAgIHN0YXRpYyB2b2lkIHVwZGF0ZUZyb21QYXRoRWxlbWVudCh2b2lkKiBpbmZvLCBjb25z
dCBQYXRoRWxlbWVudCogZWxlbWVudCkKKyAgICBzdGF0aWMgdm9pZCB1cGRhdGVGcm9tUGF0aEVs
ZW1lbnQodm9pZCogaW5mbywgY29uc3QgUGF0aEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgewogICAg
ICAgICBTVkdNYXJrZXJEYXRhKiBtYXJrZXJEYXRhID0gc3RhdGljX2Nhc3Q8U1ZHTWFya2VyRGF0
YSo+KGluZm8pOwogCiAgICAgICAgIC8vIEZpcnN0IHVwZGF0ZSB0aGUgb3V0c2xvcGUgZm9yIHRo
ZSBwcmV2aW91cyBlbGVtZW50LgotICAgICAgICBtYXJrZXJEYXRhLT51cGRhdGVPdXRzbG9wZShl
bGVtZW50LT5wb2ludHNbMF0pOworICAgICAgICBtYXJrZXJEYXRhLT51cGRhdGVPdXRzbG9wZShl
bGVtZW50LnBvaW50c1swXSk7CiAKICAgICAgICAgLy8gUmVjb3JkIHRoZSBtYXJrZXIgZm9yIHRo
ZSBwcmV2aW91cyBlbGVtZW50LgogICAgICAgICBpZiAobWFya2VyRGF0YS0+bV9lbGVtZW50SW5k
ZXggPiAwKSB7CkBAIC0xMDksMTEgKzEwOSwxMSBAQCBwcml2YXRlOgogICAgICAgICBtX291dHNs
b3BlUG9pbnRzWzFdID0gcG9pbnQ7CiAgICAgfQogCi0gICAgdm9pZCB1cGRhdGVNYXJrZXJEYXRh
Rm9yUGF0aEVsZW1lbnQoY29uc3QgUGF0aEVsZW1lbnQqIGVsZW1lbnQpCisgICAgdm9pZCB1cGRh
dGVNYXJrZXJEYXRhRm9yUGF0aEVsZW1lbnQoY29uc3QgUGF0aEVsZW1lbnQmIGVsZW1lbnQpCiAg
ICAgewotICAgICAgICBGbG9hdFBvaW50KiBwb2ludHMgPSBlbGVtZW50LT5wb2ludHM7CisgICAg
ICAgIEZsb2F0UG9pbnQqIHBvaW50cyA9IGVsZW1lbnQucG9pbnRzOwogCi0gICAgICAgIHN3aXRj
aCAoZWxlbWVudC0+dHlwZSkgeworICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudHlwZSkgewogICAg
ICAgICBjYXNlIFBhdGhFbGVtZW50QWRkUXVhZEN1cnZlVG9Qb2ludDoKICAgICAgICAgICAgIC8v
IEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMxMTUgKFBh
dGhFbGVtZW50QWRkUXVhZEN1cnZlVG9Qb2ludCBub3QgaGFuZGxlZCBmb3IgPG1hcmtlcj4pCiAg
ICAgICAgICAgICBtX29yaWdpbiA9IHBvaW50c1sxXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHU3VicGF0aERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHU3VicGF0aERhdGEuaAppbmRleCA5Y2VhNzQwMTFmMWI3Mzc5YTYwM2VhNmUz
ZDU1N2NjMmI3MzNlZGMzLi5kN2JjMTEzOTY2YWU0M2RlNTZkZjYxMmE3ZjRlOWJhMzFkNmU4OTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1N1YnBhdGhEYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdTdWJwYXRoRGF0YS5oCkBA
IC0zNiwzNSArMzYsMzUgQEAgcHVibGljOgogICAgICAgICBtX21vdmVQb2ludC5zZXQoMCwgMCk7
CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgdXBkYXRlRnJvbVBhdGhFbGVtZW50KHZvaWQqIGlu
Zm8sIGNvbnN0IFBhdGhFbGVtZW50KiBlbGVtZW50KQorICAgIHN0YXRpYyB2b2lkIHVwZGF0ZUZy
b21QYXRoRWxlbWVudCh2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCYgZWxlbWVudCkKICAg
ICB7CiAgICAgICAgIFNWR1N1YnBhdGhEYXRhKiBzdWJwYXRoRmluZGVyID0gc3RhdGljX2Nhc3Q8
U1ZHU3VicGF0aERhdGEqPihpbmZvKTsKLSAgICAgICAgc3dpdGNoIChlbGVtZW50LT50eXBlKSB7
CisgICAgICAgIHN3aXRjaCAoZWxlbWVudC50eXBlKSB7CiAgICAgICAgIGNhc2UgUGF0aEVsZW1l
bnRNb3ZlVG9Qb2ludDoKICAgICAgICAgICAgIGlmIChzdWJwYXRoRmluZGVyLT5tX3BhdGhJc1pl
cm9MZW5ndGggJiYgIXN1YnBhdGhGaW5kZXItPm1faGF2ZVNlZW5Nb3ZlT25seSkKICAgICAgICAg
ICAgICAgICBzdWJwYXRoRmluZGVyLT5tX3plcm9MZW5ndGhTdWJwYXRoTG9jYXRpb25zLmFwcGVu
ZChzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCk7Ci0gICAgICAgICAgICBzdWJwYXRoRmluZGVy
LT5tX2xhc3RQb2ludCA9IHN1YnBhdGhGaW5kZXItPm1fbW92ZVBvaW50ID0gZWxlbWVudC0+cG9p
bnRzWzBdOworICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+bV9sYXN0UG9pbnQgPSBzdWJwYXRo
RmluZGVyLT5tX21vdmVQb2ludCA9IGVsZW1lbnQucG9pbnRzWzBdOwogICAgICAgICAgICAgc3Vi
cGF0aEZpbmRlci0+bV9oYXZlU2Vlbk1vdmVPbmx5ID0gdHJ1ZTsKICAgICAgICAgICAgIHN1YnBh
dGhGaW5kZXItPm1fcGF0aElzWmVyb0xlbmd0aCA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBQYXRoRWxlbWVudEFkZExpbmVUb1BvaW50OgotICAgICAgICAgICAgaWYg
KHN1YnBhdGhGaW5kZXItPm1fbGFzdFBvaW50ICE9IGVsZW1lbnQtPnBvaW50c1swXSkgeworICAg
ICAgICAgICAgaWYgKHN1YnBhdGhGaW5kZXItPm1fbGFzdFBvaW50ICE9IGVsZW1lbnQucG9pbnRz
WzBdKSB7CiAgICAgICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+bV9wYXRoSXNaZXJvTGVuZ3Ro
ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+bV9sYXN0UG9pbnQgPSBl
bGVtZW50LT5wb2ludHNbMF07CisgICAgICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+bV9sYXN0
UG9pbnQgPSBlbGVtZW50LnBvaW50c1swXTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHN1
YnBhdGhGaW5kZXItPm1faGF2ZVNlZW5Nb3ZlT25seSA9IGZhbHNlOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRRdWFkQ3VydmVUb1BvaW50OgotICAgICAg
ICAgICAgaWYgKHN1YnBhdGhGaW5kZXItPm1fbGFzdFBvaW50ICE9IGVsZW1lbnQtPnBvaW50c1sw
XSB8fCBlbGVtZW50LT5wb2ludHNbMF0gIT0gZWxlbWVudC0+cG9pbnRzWzFdKSB7CisgICAgICAg
ICAgICBpZiAoc3VicGF0aEZpbmRlci0+bV9sYXN0UG9pbnQgIT0gZWxlbWVudC5wb2ludHNbMF0g
fHwgZWxlbWVudC5wb2ludHNbMF0gIT0gZWxlbWVudC5wb2ludHNbMV0pIHsKICAgICAgICAgICAg
ICAgICBzdWJwYXRoRmluZGVyLT5tX3BhdGhJc1plcm9MZW5ndGggPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICBzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCA9IGVsZW1lbnQtPnBvaW50c1sxXTsK
KyAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCA9IGVsZW1lbnQucG9p
bnRzWzFdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+bV9oYXZl
U2Vlbk1vdmVPbmx5ID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQ
YXRoRWxlbWVudEFkZEN1cnZlVG9Qb2ludDoKLSAgICAgICAgICAgIGlmIChzdWJwYXRoRmluZGVy
LT5tX2xhc3RQb2ludCAhPSBlbGVtZW50LT5wb2ludHNbMF0gfHwgZWxlbWVudC0+cG9pbnRzWzBd
ICE9IGVsZW1lbnQtPnBvaW50c1sxXSB8fCBlbGVtZW50LT5wb2ludHNbMV0gIT0gZWxlbWVudC0+
cG9pbnRzWzJdKSB7CisgICAgICAgICAgICBpZiAoc3VicGF0aEZpbmRlci0+bV9sYXN0UG9pbnQg
IT0gZWxlbWVudC5wb2ludHNbMF0gfHwgZWxlbWVudC5wb2ludHNbMF0gIT0gZWxlbWVudC5wb2lu
dHNbMV0gfHwgZWxlbWVudC5wb2ludHNbMV0gIT0gZWxlbWVudC5wb2ludHNbMl0pIHsKICAgICAg
ICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX3BhdGhJc1plcm9MZW5ndGggPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCA9IGVsZW1lbnQtPnBvaW50
c1syXTsKKyAgICAgICAgICAgICAgICBzdWJwYXRoRmluZGVyLT5tX2xhc3RQb2ludCA9IGVsZW1l
bnQucG9pbnRzWzJdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc3VicGF0aEZpbmRlci0+
bV9oYXZlU2Vlbk1vdmVPbmx5ID0gZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAppbmRleCBjNDFmYTEzNTNjYzczODY1ZGI0ODUw
NDE2YWZhNjYyN2EwOWExNDg2Li44YmE4YjQ1MTc3ZDYwMGNiMmE0MmU2NjE1NDcyZmIwMzcyODE0
ZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCkBAIC0zMzEsMjIg
KzMzMSwyMiBAQCBib29sIGdldFBvaW50QXRMZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKFNWR1Bh
dGhCeXRlU3RyZWFtKiBzdHJlYW0sIGZsb2F0IGxlbmd0aAogICAgIHJldHVybiBvazsKIH0KIAot
c3RhdGljIHZvaWQgcGF0aEl0ZXJhdG9yRm9yQnVpbGRpbmdTdHJpbmcodm9pZCogaW5mbywgY29u
c3QgUGF0aEVsZW1lbnQqIHBhdGhFbGVtZW50KQorc3RhdGljIHZvaWQgcGF0aEl0ZXJhdG9yRm9y
QnVpbGRpbmdTdHJpbmcodm9pZCogaW5mbywgY29uc3QgUGF0aEVsZW1lbnQmIHBhdGhFbGVtZW50
KQogewogICAgIFNWR1BhdGhDb25zdW1lciogY29uc3VtZXIgPSBzdGF0aWNfY2FzdDxTVkdQYXRo
Q29uc3VtZXIqPihpbmZvKTsKIAotICAgIHN3aXRjaCAocGF0aEVsZW1lbnQtPnR5cGUpIHsKKyAg
ICBzd2l0Y2ggKHBhdGhFbGVtZW50LnR5cGUpIHsKICAgICBjYXNlIFBhdGhFbGVtZW50TW92ZVRv
UG9pbnQ6Ci0gICAgICAgIGNvbnN1bWVyLT5tb3ZlVG8ocGF0aEVsZW1lbnQtPnBvaW50c1swXSwg
ZmFsc2UsIEFic29sdXRlQ29vcmRpbmF0ZXMpOworICAgICAgICBjb25zdW1lci0+bW92ZVRvKHBh
dGhFbGVtZW50LnBvaW50c1swXSwgZmFsc2UsIEFic29sdXRlQ29vcmRpbmF0ZXMpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBhdGhFbGVtZW50QWRkTGluZVRvUG9pbnQ6Ci0gICAgICAgIGNv
bnN1bWVyLT5saW5lVG8ocGF0aEVsZW1lbnQtPnBvaW50c1swXSwgQWJzb2x1dGVDb29yZGluYXRl
cyk7CisgICAgICAgIGNvbnN1bWVyLT5saW5lVG8ocGF0aEVsZW1lbnQucG9pbnRzWzBdLCBBYnNv
bHV0ZUNvb3JkaW5hdGVzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoRWxlbWVudEFk
ZFF1YWRDdXJ2ZVRvUG9pbnQ6Ci0gICAgICAgIGNvbnN1bWVyLT5jdXJ2ZVRvUXVhZHJhdGljKHBh
dGhFbGVtZW50LT5wb2ludHNbMF0sIHBhdGhFbGVtZW50LT5wb2ludHNbMV0sIEFic29sdXRlQ29v
cmRpbmF0ZXMpOworICAgICAgICBjb25zdW1lci0+Y3VydmVUb1F1YWRyYXRpYyhwYXRoRWxlbWVu
dC5wb2ludHNbMF0sIHBhdGhFbGVtZW50LnBvaW50c1sxXSwgQWJzb2x1dGVDb29yZGluYXRlcyk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRDdXJ2ZVRvUG9pbnQ6Ci0g
ICAgICAgIGNvbnN1bWVyLT5jdXJ2ZVRvQ3ViaWMocGF0aEVsZW1lbnQtPnBvaW50c1swXSwgcGF0
aEVsZW1lbnQtPnBvaW50c1sxXSwgcGF0aEVsZW1lbnQtPnBvaW50c1syXSwgQWJzb2x1dGVDb29y
ZGluYXRlcyk7CisgICAgICAgIGNvbnN1bWVyLT5jdXJ2ZVRvQ3ViaWMocGF0aEVsZW1lbnQucG9p
bnRzWzBdLCBwYXRoRWxlbWVudC5wb2ludHNbMV0sIHBhdGhFbGVtZW50LnBvaW50c1syXSwgQWJz
b2x1dGVDb29yZGluYXRlcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aEVsZW1lbnRD
bG9zZVN1YnBhdGg6CiAgICAgICAgIGNvbnN1bWVyLT5jbG9zZVBhdGgoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMjZhY2Y0YWUx
M2JjODBlZmM5YmM0ZDA3MTcxNWRkMTQ0ZTMwYTFjYy4uODYxNDFlNTMzMGY5ZmFkM2ZjZDJkZTE4
OGYxNzBiOTc4YmY2YTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTM3MywzMyArMzczLDMzIEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxJbnRTaXplPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSW50U2l6ZSYgaW50
U2l6ZSkKICAgICByZXR1cm4gU2ltcGxlQXJndW1lbnRDb2RlcjxJbnRTaXplPjo6ZGVjb2RlKGRl
Y29kZXIsIGludFNpemUpOwogfQogCi1zdGF0aWMgdm9pZCBwYXRoUG9pbnRDb3VudEFwcGxpZXJG
dW5jdGlvbih2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCopCitzdGF0aWMgdm9pZCBwYXRo
UG9pbnRDb3VudEFwcGxpZXJGdW5jdGlvbih2b2lkKiBpbmZvLCBjb25zdCBQYXRoRWxlbWVudCYp
CiB7CiAgICAgdWludDY0X3QqIHBvaW50Q291bnQgPSBzdGF0aWNfY2FzdDx1aW50NjRfdCo+KGlu
Zm8pOwogICAgICsrKnBvaW50Q291bnQ7CiB9CiAKLXN0YXRpYyB2b2lkIHBhdGhFbmNvZGVBcHBs
aWVyRnVuY3Rpb24odm9pZCogaW5mbywgY29uc3QgUGF0aEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0
aWMgdm9pZCBwYXRoRW5jb2RlQXBwbGllckZ1bmN0aW9uKHZvaWQqIGluZm8sIGNvbnN0IFBhdGhF
bGVtZW50JiBlbGVtZW50KQogewogICAgIEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciA9ICpzdGF0
aWNfY2FzdDxBcmd1bWVudEVuY29kZXIqPihpbmZvKTsKIAotICAgIGVuY29kZXIuZW5jb2RlRW51
bShlbGVtZW50LT50eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oZWxlbWVudC50eXBlKTsK
IAotICAgIHN3aXRjaCAoZWxlbWVudC0+dHlwZSkgeworICAgIHN3aXRjaCAoZWxlbWVudC50eXBl
KSB7CiAgICAgY2FzZSBQYXRoRWxlbWVudE1vdmVUb1BvaW50OiAvLyBUaGUgcG9pbnRzIG1lbWJl
ciB3aWxsIGNvbnRhaW4gMSB2YWx1ZS4KLSAgICAgICAgZW5jb2RlciA8PCBlbGVtZW50LT5wb2lu
dHNbMF07CisgICAgICAgIGVuY29kZXIgPDwgZWxlbWVudC5wb2ludHNbMF07CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUGF0aEVsZW1lbnRBZGRMaW5lVG9Qb2ludDogLy8gVGhlIHBvaW50cyBt
ZW1iZXIgd2lsbCBjb250YWluIDEgdmFsdWUuCi0gICAgICAgIGVuY29kZXIgPDwgZWxlbWVudC0+
cG9pbnRzWzBdOworICAgICAgICBlbmNvZGVyIDw8IGVsZW1lbnQucG9pbnRzWzBdOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIFBhdGhFbGVtZW50QWRkUXVhZEN1cnZlVG9Qb2ludDogLy8gVGhl
IHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIDIgdmFsdWVzLgotICAgICAgICBlbmNvZGVyIDw8
IGVsZW1lbnQtPnBvaW50c1swXTsKLSAgICAgICAgZW5jb2RlciA8PCBlbGVtZW50LT5wb2ludHNb
MV07CisgICAgICAgIGVuY29kZXIgPDwgZWxlbWVudC5wb2ludHNbMF07CisgICAgICAgIGVuY29k
ZXIgPDwgZWxlbWVudC5wb2ludHNbMV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0aEVs
ZW1lbnRBZGRDdXJ2ZVRvUG9pbnQ6IC8vIFRoZSBwb2ludHMgbWVtYmVyIHdpbGwgY29udGFpbiAz
IHZhbHVlcy4KLSAgICAgICAgZW5jb2RlciA8PCBlbGVtZW50LT5wb2ludHNbMF07Ci0gICAgICAg
IGVuY29kZXIgPDwgZWxlbWVudC0+cG9pbnRzWzFdOwotICAgICAgICBlbmNvZGVyIDw8IGVsZW1l
bnQtPnBvaW50c1syXTsKKyAgICAgICAgZW5jb2RlciA8PCBlbGVtZW50LnBvaW50c1swXTsKKyAg
ICAgICAgZW5jb2RlciA8PCBlbGVtZW50LnBvaW50c1sxXTsKKyAgICAgICAgZW5jb2RlciA8PCBl
bGVtZW50LnBvaW50c1syXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXRoRWxlbWVudENs
b3NlU3VicGF0aDogLy8gVGhlIHBvaW50cyBtZW1iZXIgd2lsbCBjb250YWluIG5vIHZhbHVlcy4K
ICAgICAgICAgYnJlYWs7Cg==
</data>
<flag name="review"
          id="282793"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>