Permalink
Browse files

Update for FPDF (1.81) and FPDI (1.6.1)

  • Loading branch information...
Jan T. Bein
Jan T. Bein committed Jan 16, 2017
1 parent a2a82ae commit 18f119db55b5fc82c6213e67ef57e238a5f29b76
Showing with 13,080 additions and 2,714 deletions.
  1. +21 −0 share/pnp/application/vendor/fpdf/LICENSE
  2. +30 −0 share/pnp/application/vendor/fpdf/composer.json
  3. +63 −0 share/pnp/application/vendor/fpdf/doc/__construct.htm
  4. +63 −0 share/pnp/application/vendor/fpdf/doc/acceptpagebreak.htm
  5. +55 −0 share/pnp/application/vendor/fpdf/doc/addfont.htm
  6. +26 −0 share/pnp/application/vendor/fpdf/doc/addlink.htm
  7. +61 −0 share/pnp/application/vendor/fpdf/doc/addpage.htm
  8. +45 −0 share/pnp/application/vendor/fpdf/doc/aliasnbpages.htm
  9. +104 −0 share/pnp/application/vendor/fpdf/doc/cell.htm
  10. +21 −0 share/pnp/application/vendor/fpdf/doc/close.htm
  11. +26 −0 share/pnp/application/vendor/fpdf/doc/error.htm
  12. +35 −0 share/pnp/application/vendor/fpdf/doc/footer.htm
  13. +18 −0 share/pnp/application/vendor/fpdf/doc/getpageheight.htm
  14. +18 −0 share/pnp/application/vendor/fpdf/doc/getpagewidth.htm
  15. +23 −0 share/pnp/application/vendor/fpdf/doc/getstringwidth.htm
  16. +20 −0 share/pnp/application/vendor/fpdf/doc/getx.htm
  17. +20 −0 share/pnp/application/vendor/fpdf/doc/gety.htm
  18. +37 −0 share/pnp/application/vendor/fpdf/doc/header.htm
  19. +99 −0 share/pnp/application/vendor/fpdf/doc/image.htm
  20. +59 −0 share/pnp/application/vendor/fpdf/doc/index.htm
  21. +38 −0 share/pnp/application/vendor/fpdf/doc/line.htm
  22. +46 −0 share/pnp/application/vendor/fpdf/doc/link.htm
  23. +28 −0 share/pnp/application/vendor/fpdf/doc/ln.htm
  24. +76 −0 share/pnp/application/vendor/fpdf/doc/multicell.htm
  25. +46 −0 share/pnp/application/vendor/fpdf/doc/output.htm
  26. +18 −0 share/pnp/application/vendor/fpdf/doc/pageno.htm
  27. +48 −0 share/pnp/application/vendor/fpdf/doc/rect.htm
  28. +33 −0 share/pnp/application/vendor/fpdf/doc/setauthor.htm
  29. +33 −0 share/pnp/application/vendor/fpdf/doc/setautopagebreak.htm
  30. +31 −0 share/pnp/application/vendor/fpdf/doc/setcompression.htm
  31. +34 −0 share/pnp/application/vendor/fpdf/doc/setcreator.htm
  32. +45 −0 share/pnp/application/vendor/fpdf/doc/setdisplaymode.htm
  33. +41 −0 share/pnp/application/vendor/fpdf/doc/setdrawcolor.htm
  34. +40 −0 share/pnp/application/vendor/fpdf/doc/setfillcolor.htm
  35. +92 −0 share/pnp/application/vendor/fpdf/doc/setfont.htm
  36. +25 −0 share/pnp/application/vendor/fpdf/doc/setfontsize.htm
  37. +33 −0 share/pnp/application/vendor/fpdf/doc/setkeywords.htm
  38. +30 −0 share/pnp/application/vendor/fpdf/doc/setleftmargin.htm
  39. +29 −0 share/pnp/application/vendor/fpdf/doc/setlinewidth.htm
  40. +34 −0 share/pnp/application/vendor/fpdf/doc/setlink.htm
  41. +37 −0 share/pnp/application/vendor/fpdf/doc/setmargins.htm
  42. +28 −0 share/pnp/application/vendor/fpdf/doc/setrightmargin.htm
  43. +33 −0 share/pnp/application/vendor/fpdf/doc/setsubject.htm
  44. +40 −0 share/pnp/application/vendor/fpdf/doc/settextcolor.htm
  45. +33 −0 share/pnp/application/vendor/fpdf/doc/settitle.htm
  46. +28 −0 share/pnp/application/vendor/fpdf/doc/settopmargin.htm
  47. +29 −0 share/pnp/application/vendor/fpdf/doc/setx.htm
  48. +31 −0 share/pnp/application/vendor/fpdf/doc/setxy.htm
  49. +33 −0 share/pnp/application/vendor/fpdf/doc/sety.htm
  50. +39 −0 share/pnp/application/vendor/fpdf/doc/text.htm
  51. +51 −0 share/pnp/application/vendor/fpdf/doc/write.htm
  52. +63 −55 share/pnp/application/vendor/fpdf/filters/FilterASCII85.php
  53. +0 −33 share/pnp/application/vendor/fpdf/filters/FilterASCII85_FPDI.php
  54. +43 −0 share/pnp/application/vendor/fpdf/filters/FilterASCIIHexDecode.php
  55. +102 −92 share/pnp/application/vendor/fpdf/filters/FilterLZW.php
  56. +0 −33 share/pnp/application/vendor/fpdf/filters/FilterLZW_FPDI.php
  57. +2 −0 share/pnp/application/vendor/fpdf/font/courier.php
  58. +2 −0 share/pnp/application/vendor/fpdf/font/courierb.php
  59. +2 −0 share/pnp/application/vendor/fpdf/font/courierbi.php
  60. +2 −0 share/pnp/application/vendor/fpdf/font/courieri.php
  61. +2 −0 share/pnp/application/vendor/fpdf/font/helvetica.php
  62. +2 −0 share/pnp/application/vendor/fpdf/font/helveticab.php
  63. +2 −0 share/pnp/application/vendor/fpdf/font/helveticabi.php
  64. +2 −0 share/pnp/application/vendor/fpdf/font/helveticai.php
  65. +1 −0 share/pnp/application/vendor/fpdf/font/symbol.php
  66. +2 −0 share/pnp/application/vendor/fpdf/font/times.php
  67. +2 −0 share/pnp/application/vendor/fpdf/font/timesb.php
  68. +2 −0 share/pnp/application/vendor/fpdf/font/timesbi.php
  69. +2 −0 share/pnp/application/vendor/fpdf/font/timesi.php
  70. +1 −0 share/pnp/application/vendor/fpdf/font/zapfdingbats.php
  71. +21 −0 share/pnp/application/vendor/fpdf/fpdf.css
  72. +495 −401 share/pnp/application/vendor/fpdf/fpdf.php
  73. +372 −233 share/pnp/application/vendor/fpdf/fpdf_tpl.php
  74. +693 −505 share/pnp/application/vendor/fpdf/fpdi.php
  75. +0 −171 share/pnp/application/vendor/fpdf/fpdi2tcpdf_bridge.php
  76. +206 −0 share/pnp/application/vendor/fpdf/fpdi_bridge.php
  77. +347 −384 share/pnp/application/vendor/fpdf/fpdi_pdf_parser.php
  78. +5 −5 share/pnp/application/vendor/fpdf/license.txt
  79. +251 −0 share/pnp/application/vendor/fpdf/makefont/cp1250.map
  80. +255 −0 share/pnp/application/vendor/fpdf/makefont/cp1251.map
  81. +251 −0 share/pnp/application/vendor/fpdf/makefont/cp1252.map
  82. +239 −0 share/pnp/application/vendor/fpdf/makefont/cp1253.map
  83. +249 −0 share/pnp/application/vendor/fpdf/makefont/cp1254.map
  84. +233 −0 share/pnp/application/vendor/fpdf/makefont/cp1255.map
  85. +244 −0 share/pnp/application/vendor/fpdf/makefont/cp1257.map
  86. +247 −0 share/pnp/application/vendor/fpdf/makefont/cp1258.map
  87. +225 −0 share/pnp/application/vendor/fpdf/makefont/cp874.map
  88. +256 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-1.map
  89. +248 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-11.map
  90. +256 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-15.map
  91. +256 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-16.map
  92. +256 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-2.map
  93. +256 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-4.map
  94. +256 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-5.map
  95. +250 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-7.map
  96. +256 −0 share/pnp/application/vendor/fpdf/makefont/iso-8859-9.map
  97. +256 −0 share/pnp/application/vendor/fpdf/makefont/koi8-r.map
  98. +256 −0 share/pnp/application/vendor/fpdf/makefont/koi8-u.map
  99. +451 −0 share/pnp/application/vendor/fpdf/makefont/makefont.php
  100. +723 −0 share/pnp/application/vendor/fpdf/makefont/ttfparser.php
  101. +143 −96 share/pnp/application/vendor/fpdf/pdf_context.php
  102. +925 −706 share/pnp/application/vendor/fpdf/pdf_parser.php
  103. +10 −0 share/pnp/application/vendor/fpdf/tutorial/20k_c1.txt
  104. +23 −0 share/pnp/application/vendor/fpdf/tutorial/20k_c2.txt
  105. +25 −0 share/pnp/application/vendor/fpdf/tutorial/calligra.php
  106. BIN share/pnp/application/vendor/fpdf/tutorial/calligra.ttf
  107. BIN share/pnp/application/vendor/fpdf/tutorial/calligra.z
  108. +15 −0 share/pnp/application/vendor/fpdf/tutorial/countries.txt
  109. +20 −0 share/pnp/application/vendor/fpdf/tutorial/index.htm
  110. BIN share/pnp/application/vendor/fpdf/tutorial/logo.png
  111. +6 −0 share/pnp/application/vendor/fpdf/tutorial/makefont.php
  112. +76 −0 share/pnp/application/vendor/fpdf/tutorial/tuto1.htm
  113. +9 −0 share/pnp/application/vendor/fpdf/tutorial/tuto1.php
  114. +80 −0 share/pnp/application/vendor/fpdf/tutorial/tuto2.htm
  115. +41 −0 share/pnp/application/vendor/fpdf/tutorial/tuto2.php
  116. +115 −0 share/pnp/application/vendor/fpdf/tutorial/tuto3.htm
  117. +81 −0 share/pnp/application/vendor/fpdf/tutorial/tuto3.php
  118. +132 −0 share/pnp/application/vendor/fpdf/tutorial/tuto4.htm
  119. +109 −0 share/pnp/application/vendor/fpdf/tutorial/tuto4.php
  120. +134 −0 share/pnp/application/vendor/fpdf/tutorial/tuto5.htm
  121. +102 −0 share/pnp/application/vendor/fpdf/tutorial/tuto5.php
  122. +154 −0 share/pnp/application/vendor/fpdf/tutorial/tuto6.htm
  123. +113 −0 share/pnp/application/vendor/fpdf/tutorial/tuto6.php
  124. +187 −0 share/pnp/application/vendor/fpdf/tutorial/tuto7.htm
  125. +11 −0 share/pnp/application/vendor/fpdf/tutorial/tuto7.php
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2015 Setasign - Jan Slabon, https://www.setasign.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
@@ -0,0 +1,30 @@
{
"name": "setasign/fpdi",
"version": "1.6.1",
"homepage": "https://www.setasign.com/fpdi",
"description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
"type": "library",
"keywords": ["pdf", "fpdi", "fpdf"],
"license": "MIT",
"authors": [
{
"name": "Jan Slabon",
"email": "jan.slabon@setasign.com",
"homepage": "https://www.setasign.com"
}
],
"autoload": {
"classmap": [
"filters/",
"fpdi.php",
"fpdf_tpl.php",
"fpdi_pdf_parser.php",
"pdf_context.php"
]
},
"suggest": {
"setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
"setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
"setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
}
}
@@ -0,0 +1,63 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>__construct</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
</head>
<body>
<h1>__construct</h1>
<code>__construct([<b>string</b> orientation [, <b>string</b> unit [, <b>mixed</b> size]]])</code>
<h2>Description</h2>
This is the class constructor. It allows to set up the page size, the orientation and the
unit of measure used in all methods (except for font sizes).
<h2>Parameters</h2>
<dl class="param">
<dt><code>orientation</code></dt>
<dd>
Default page orientation. Possible values are (case insensitive):
<ul>
<li><code>P</code> or <code>Portrait</code></li>
<li><code>L</code> or <code>Landscape</code></li>
</ul>
Default value is <code>P</code>.
</dd>
<dt><code>unit</code></dt>
<dd>
User unit. Possible values are:
<ul>
<li><code>pt</code>: point</li>
<li><code>mm</code>: millimeter</li>
<li><code>cm</code>: centimeter</li>
<li><code>in</code>: inch</li>
</ul>
A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This
is a very common unit in typography; font sizes are expressed in that unit.
<br>
<br>
Default value is <code>mm</code>.
</dd>
<dt><code>size</code></dt>
<dd>
The size used for pages. It can be either one of the following values (case insensitive):
<ul>
<li><code>A3</code></li>
<li><code>A4</code></li>
<li><code>A5</code></li>
<li><code>Letter</code></li>
<li><code>Legal</code></li>
</ul>
or an array containing the width and the height (expressed in the unit given by <code>unit</code>).<br>
<br>
Default value is <code>A4</code>.
</dd>
</dl>
<h2>Example</h2>
Example with a custom 100x150 mm page size:
<div class="doc-source">
<pre><code>$pdf = new FPDF('P','mm',array(100,150));</code></pre>
</div>
<hr style="margin-top:1.5em">
<div style="text-align:center"><a href="index.htm">Index</a></div>
</body>
</html>
@@ -0,0 +1,63 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>AcceptPageBreak</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
</head>
<body>
<h1>AcceptPageBreak</h1>
<code><b>boolean</b> AcceptPageBreak()</code>
<h2>Description</h2>
Whenever a page break condition is met, the method is called, and the break is issued or not
depending on the returned value. The default implementation returns a value according to the
mode selected by SetAutoPageBreak().
<br>
This method is called automatically and should not be called directly by the application.
<h2>Example</h2>
The method is overriden in an inherited class in order to obtain a 3 column layout:
<div class="doc-source">
<pre><code>class PDF extends FPDF
{
var $col = 0;
function SetCol($col)
{
// Move position to a column
$this-&gt;col = $col;
$x = 10+$col*65;
$this-&gt;SetLeftMargin($x);
$this-&gt;SetX($x);
}
function AcceptPageBreak()
{
if($this-&gt;col&lt;2)
{
// Go to next column
$this-&gt;SetCol($this-&gt;col+1);
$this-&gt;SetY(10);
return false;
}
else
{
// Go back to first column and issue page break
$this-&gt;SetCol(0);
return true;
}
}
}
$pdf = new PDF();
$pdf-&gt;AddPage();
$pdf-&gt;SetFont('Arial','',12);
for($i=1;$i&lt;=300;$i++)
$pdf-&gt;Cell(0,5,"Line $i",0,1);
$pdf-&gt;Output();</code></pre>
</div>
<h2>See also</h2>
<a href="setautopagebreak.htm">SetAutoPageBreak</a>
<hr style="margin-top:1.5em">
<div style="text-align:center"><a href="index.htm">Index</a></div>
</body>
</html>
@@ -0,0 +1,55 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>AddFont</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
</head>
<body>
<h1>AddFont</h1>
<code>AddFont(<b>string</b> family [, <b>string</b> style [, <b>string</b> file]])</code>
<h2>Description</h2>
Imports a TrueType, OpenType or Type1 font and makes it available. It is necessary to generate a font
definition file first with the MakeFont utility.
<br>
The definition file (and the font file itself when embedding) must be present in the font directory.
If it is not found, the error "Could not include font definition file" is raised.
<h2>Parameters</h2>
<dl class="param">
<dt><code>family</code></dt>
<dd>
Font family. The name can be chosen arbitrarily. If it is a standard family name, it will
override the corresponding font.
</dd>
<dt><code>style</code></dt>
<dd>
Font style. Possible values are (case insensitive):
<ul>
<li>empty string: regular</li>
<li><code>B</code>: bold</li>
<li><code>I</code>: italic</li>
<li><code>BI</code> or <code>IB</code>: bold italic</li>
</ul>
The default value is regular.
</dd>
<dt><code>file</code></dt>
<dd>
The font definition file.
<br>
By default, the name is built from the family and style, in lower case with no space.
</dd>
</dl>
<h2>Example</h2>
<div class="doc-source">
<pre><code>$pdf-&gt;AddFont('Comic','I');</code></pre>
</div>
is equivalent to:
<div class="doc-source">
<pre><code>$pdf-&gt;AddFont('Comic','I','comici.php');</code></pre>
</div>
<h2>See also</h2>
<a href="setfont.htm">SetFont</a>
<hr style="margin-top:1.5em">
<div style="text-align:center"><a href="index.htm">Index</a></div>
</body>
</html>
@@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>AddLink</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
</head>
<body>
<h1>AddLink</h1>
<code><b>int</b> AddLink()</code>
<h2>Description</h2>
Creates a new internal link and returns its identifier. An internal link is a clickable area
which directs to another place within the document.
<br>
The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is
defined with SetLink().
<h2>See also</h2>
<a href="cell.htm">Cell</a>,
<a href="write.htm">Write</a>,
<a href="image.htm">Image</a>,
<a href="link.htm">Link</a>,
<a href="setlink.htm">SetLink</a>
<hr style="margin-top:1.5em">
<div style="text-align:center"><a href="index.htm">Index</a></div>
</body>
</html>
@@ -0,0 +1,61 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>AddPage</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
</head>
<body>
<h1>AddPage</h1>
<code>AddPage([<b>string</b> orientation [, <b>mixed</b> size [, <b>int</b> rotation]]])</code>
<h2>Description</h2>
Adds a new page to the document. If a page is already present, the Footer() method is called
first to output the footer. Then the page is added, the current position set to the top-left
corner according to the left and top margins, and Header() is called to display the header.
<br>
The font which was set before calling is automatically restored. There is no need to call
SetFont() again if you want to continue with the same font. The same is true for colors and
line width.
<br>
The origin of the coordinate system is at the top-left corner and increasing ordinates go
downwards.
<h2>Parameters</h2>
<dl class="param">
<dt><code>orientation</code></dt>
<dd>
Page orientation. Possible values are (case insensitive):
<ul>
<li><code>P</code> or <code>Portrait</code></li>
<li><code>L</code> or <code>Landscape</code></li>
</ul>
The default value is the one passed to the constructor.
</dd>
<dt><code>size</code></dt>
<dd>
Page size. It can be either one of the following values (case insensitive):
<ul>
<li><code>A3</code></li>
<li><code>A4</code></li>
<li><code>A5</code></li>
<li><code>Letter</code></li>
<li><code>Legal</code></li>
</ul>
or an array containing the width and the height (expressed in user unit).<br>
<br>
The default value is the one passed to the constructor.
</dd>
<dt><code>rotation</code></dt>
<dd>
Angle by which to rotate the page. It must be a multiple of 90; positive values
mean clockwise rotation. The default value is <code>0</code>.
</dd>
</dl>
<h2>See also</h2>
<a href="__construct.htm">__construct</a>,
<a href="header.htm">Header</a>,
<a href="footer.htm">Footer</a>,
<a href="setmargins.htm">SetMargins</a>
<hr style="margin-top:1.5em">
<div style="text-align:center"><a href="index.htm">Index</a></div>
</body>
</html>
@@ -0,0 +1,45 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>AliasNbPages</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
</head>
<body>
<h1>AliasNbPages</h1>
<code>AliasNbPages([<b>string</b> alias])</code>
<h2>Description</h2>
Defines an alias for the total number of pages. It will be substituted as the document is
closed.
<h2>Parameters</h2>
<dl class="param">
<dt><code>alias</code></dt>
<dd>
The alias. Default value: <code>{nb}</code>.
</dd>
</dl>
<h2>Example</h2>
<div class="doc-source">
<pre><code>class PDF extends FPDF
{
function Footer()
{
// Go to 1.5 cm from bottom
$this-&gt;SetY(-15);
// Select Arial italic 8
$this-&gt;SetFont('Arial','I',8);
// Print current and total page numbers
$this-&gt;Cell(0,10,'Page '.$this-&gt;PageNo().'/{nb}',0,0,'C');
}
}
$pdf = new PDF();
$pdf-&gt;AliasNbPages();</code></pre>
</div>
<h2>See also</h2>
<a href="pageno.htm">PageNo</a>,
<a href="footer.htm">Footer</a>
<hr style="margin-top:1.5em">
<div style="text-align:center"><a href="index.htm">Index</a></div>
</body>
</html>
Oops, something went wrong.

0 comments on commit 18f119d

Please sign in to comment.