XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition (794 page)

BOOK: XSLT 2.0 and XPath 2.0 Programmer's Reference, 4th Edition
6.64Mb size Format: txt, pdf, ePub

Technically, this interface is rather poorly named. The Internet RFCs distinguish the process of
resolving
a relative URI against a base URI, which is essentially a syntactic operation on two character strings, from the process of
dereferencing
the resulting absolute URI, which typically sends a request over the wires to retrieve some resource. Although the
URIResolver
is passed the relative URI and base URI as separate arguments, it would be bad practice to resolve the relative URI in a nonstandard way. The real power of the
URIResolver
is its ability to control how the absolute URI is dereferenced.

The interface defines only one method:

Method
Description
Source resolve(String, String)
The first argument is a relative URI, the second is the base URI against which it is resolved. The method returns a
Source
containing the requested document, or throws a
TransformerException
if it cannot retrieve it. It may also return null, indicating that the default
URIResolver
should be used.

There is a practical problem that the JAXP interface does not address, namely the XSLT rule that if you call the
document()
function twice to fetch the same absolute URI, the same document should be returned each time. Since the
URIResolver
accepts the relative URI and base URI as separate arguments, but does not actually return an absolute URI, it's not entirely clear whether it is the responsibility of the processor or the
URIResolver
to enforce this rule, especially when the URI is in a format that the XSLT processor itself does not recognize, as in the example above.

Note also that the arguments are supplied in the opposite order to those of the Java
java.net.URI
class.

Examples of JAXP Transformations

This section provides some simple examples of applications that use the JAXP API in different ways to control a transformation.

Example 1: Transformation Using Files

This example (
FileTransform.java
) performs a single transformation, reading the source document and stylesheet from files, and sending the XML output to another file.

import javax.xml.transform.*;

import javax.xml.transform.stream.*;

import java.io.File;

public class FileTransform {

    public static void main(String[] args) throws Exception {

        StreamSource source = new StreamSource(new File(args[0]));

        StreamSource style = new StreamSource(new File(args[1]));

        StreamResult out = new StreamResult(new File(args[2]));

        TransformerFactory factory = TransformerFactory.newInstance();

        Transformer t = factory.newTransformer(style);

        t.transform(source, out);

    }   

}

This is a minimal JAXP application.

At one time I was reluctant to supply
File
objects to the JAXP
StreamSource
and
StreamResult
constructors, because the filename-to-URI conversion was buggy. In recent releases the problems seem to have been fixed.

Assuming you have installed the Sun Java JDK, you can compile this application by the command:

javac FileTransform.java

This assumes that the directory containing the Java source file is the current directory. Once you have compiled the code, you can run it from the command line, for example:

java FileTransform source.xml style.xsl out.html

Of course, this is not a very professionally written application. It will fall over with a stack trace if incorrect arguments are supplied, if either of the input files doesn't exist, or if errors occur during the transformation; but it's a start. My aim in these examples is to show how the main JAXP classes work, not to teach you professional Java programming.

Because some people like to type examples exactly as they are written in the book, the folder containing the Java applications also contains specimen XML and XSL files called
source.xml
and
style.xsl
. So if you make this folder your current directory, you should be able to type the command line above exactly as shown. But, of course, the Java application will handle any source file and any stylesheet. The stylesheet
style.xsl
uses the construct shown at the start of this chapter to place in the output file a comment identifying which XSLT processor was used. So by experimenting with different classpath settings you should be able to satisfy yourself that this code works with multiple XSLT processors.

Example 2: Supplying Parameters and Output Properties

This example,
Parameters.java
, enhances the previous example:

  • It allows a stylesheet parameter to be supplied from the command line.
  • It modifies the output properties defined in the stylesheet.
  • It directs the output to
    System.out
    instead of a file.

The
main()
method of the enhanced application looks like this:

public static void main(String[] args) throws Exception {

    StreamSource source = new StreamSource(new File(args[0]));

    StreamSource style = new StreamSource(new File(args[1]));

    String title = args[2];

    TransformerFactory factory = TransformerFactory.newInstance();

    Transformer t = factory.newTransformer(style);

    t.setParameter(“title”, title);

    t.setOutputProperty(OutputKeys.INDENT, “no”);

    t.transform(source, new StreamResult(System.out));

}

This version of the program can be run using a command such as the following. The third argument on the command line (written in quotes because it contains spaces) is now a parameter value for the stylesheet, instead of the output filename.

java Parameters source.xml style.xsl “New organization structure”

Comparing the output with that of the previous example, note that the HTML is no longer indented, and that the contents of the
<br/></span>and<br/><span><h1><br/></span>elements have changed. And, of course, the output is written to the console this time.<br/></p><p>Example 3: Holding Documents in Memory<br/></p><p>In this example we will hold both the stylesheet and the source document in memory so that they can be used repeatedly. In principle, this would allow us to run different source documents past the same stylesheet, or to use different stylesheets to transform the same source document, but in practice, to keep the example simple, we'll use the same source document and stylesheet repeatedly, changing only the parameters to the transformation. We'll do one transformation using each of the parameters supplied on the command line.<br/></p><p>To keep the source document in memory, create a DOM. One way of doing this would be to use the<br/><span>DocumentBuilder<br/></span>class defined in the first section of this appendix. But I'd prefer to stick to using the<br/><span>javax.xml.transform<br/></span>interfaces in these examples, so I'll do it in a different way. JAXP makes it very easy to do an identity transform, and to build the DOM—all you need is an identity transform that takes the serial file as input and produces the DOM as output.<br/></p><p>You could also keep the stylesheet in memory as a DOM, but this would mean validating and compiling it each time it is used. It's better to keep the compiled stylesheet, that is, the<br/><span>Templates<br/></span>object.<br/></p><p>The main program of this example (<br/><span>Repeat.java<br/></span>) looks like this:<br/></p><div><p><span>public static void main(String[] args) throws Exception {<br/></span></p><p><span>    StreamSource source = new StreamSource(new File(args[0]));<br/></span></p><p><span>    StreamSource style = new StreamSource(new File(args[1]));<br/></span></p><p><span>    TransformerFactory factory = TransformerFactory.newInstance();<br/></span></p><p><span>    // Build a DOM using an identity transform<br/></span></p><p><span>    Transformer builder = factory.newTransformer();<br/></span></p><p><span>    DOMResult result = new DOMResult();<br/></span></p><p><span>    builder.transform(source, result);<br/></span></p><p><span>    Document doc = (Document)result.getNode();<br/></span></p><p><span>    // Compile the stylesheet<br/></span></p><p><span>    Templates templates = factory.newTemplates(style);<br/></span></p><p><span>    // do one transformation for each parameter supplied<br/></span></p><p><span>    for (int i=2; i<args.length; i++) {<br/></span></p><p><span>        Transformer t = templates.newTransformer();<br/></span></p><p><span>        System.out.println(“======= TITLE = ” + args[i] + “=======“);<br/></span></p><p><span>        t.setParameter(“title”, args[i]);<br/></span></p><p><span>        t.transform(new StreamSource(source), new StreamResult(System.out));<br/></span></p><p><span>    }<br/></span></p><p><span>}<br/></span></p></div><p>You can run this application from the command line with a command such as:<br/></p><div><p><span>java Repeat source.xml style.xsl one two three four<br/></span></p></div><p>This will run the transformation four times, producing output HTML with the title set to<br/><span><img src="/files/04/27/65/f042765/public/ll.gif" />one<br/><img src="/files/04/27/65/f042765/public/gg.gif" /></span>,<br/><span><img src="/files/04/27/65/f042765/public/ll.gif" />two<br/><img src="/files/04/27/65/f042765/public/gg.gif" /></span>,<br/><span><img src="/files/04/27/65/f042765/public/ll.gif" />three<br/><img src="/files/04/27/65/f042765/public/gg.gif" /></span>, and<br/><span><img src="/files/04/27/65/f042765/public/ll.gif" />four<br/><img src="/files/04/27/65/f042765/public/gg.gif" /></span>in turn.<br/></p></div> </div> <div class="col-xs-12 text-left pagination-container"> <ul class="pagination"><li class="prev"><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/793-page" data-page="792">«</a></li> <li class="first"><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free" data-page="0">1</a></li> <li class="disabled"><span>...</span></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/395-page" data-page="394">395</a></li> <li class="disabled"><span>...</span></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/789-page" data-page="788">789</a></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/790-page" data-page="789">790</a></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/791-page" data-page="790">791</a></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/792-page" data-page="791">792</a></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/793-page" data-page="792">793</a></li> <li class="active"><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/794-page" data-page="793">794</a></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/795-page" data-page="794">795</a></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/796-page" data-page="795">796</a></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/797-page" data-page="796">797</a></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/798-page" data-page="797">798</a></li> <li class="disabled"><span>...</span></li> <li><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/850-page" data-page="849">850</a></li> <li class="disabled"><span>...</span></li> <li class="last"><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/901-page" data-page="900">901</a></li> <li class="next"><a href="/pdf-novels/xslt-20-and-xpath-20-programmers-reference-4th-edition-by-michael-kay-free/795-page" data-page="794">»</a></li></ul> </div> <div class=""><div class="col-xs-12"><h2>Other books</h2></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/the-torso-in-the-canal-by-john-mooney-free">The Torso in the Canal</a> by <span>John Mooney</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/el-consejo-de-egipto-by-leonardo-sciascia-free">El Consejo De Egipto</a> by <span>Leonardo Sciascia</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/mommy-by-mistake-by-rowan-coleman-free">Mommy by Mistake</a> by <span>Rowan Coleman</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/courting-lord-dorney-by-sally-james-free">Courting Lord Dorney</a> by <span>Sally James</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/randoms-by-david-liss-free">Randoms</a> by <span>David Liss</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/the-mystery-of-silas-finklebean-by-rudy-baldacci-free">The Mystery of Silas Finklebean</a> by <span>David Baldacci, Rudy Baldacci</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/fallen-too-far-117053-by-mia-moore-free">Fallen Too Far</a> by <span>Mia Moore</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/from-winters-ashes-girl-next-door-crime-romance-series-book-two-by-amy-leigh-simpson-free">From Winter's Ashes: Girl Next Door Crime Romance Series - Book Two</a> by <span>Amy Leigh Simpson</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/b00724aicc-ebok-by-gallant-a-j-free">B00724AICC EBOK</a> by <span>Gallant, A. J.</span></div></div><div class="list-b-item col-xs-12 col-md-6"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <path style="fill:#97D4AC;" d="M87.385,472.249V39.751l0,0c0-17.696,14.478-32.174,32.174-32.174h301.293 c0.684,0,1.238,0.554,1.238,1.238v127.488v64.355v239.418h-38.792L87.385,472.249z"/> <path style="fill:#E3E3E3;" d="M404.64,440.075H119.559c-17.696,0-32.174,14.478-32.174,32.174l0,0 c0,17.696,14.478,32.174,32.174,32.174H404.64L404.64,440.075L404.64,440.075z"/> <path style="fill:#FFF3DC;" d="M336.079,214.141H194.741c-3.348,0-6.062-2.714-6.062-6.062v-65.845c0-3.348,2.714-6.062,6.062-6.062 H336.08c3.348,0,6.062,2.714,6.062,6.062v65.845C342.141,211.428,339.427,214.141,336.079,214.141z"/> <polygon style="fill:#FFC433;" points="354.769,91.023 327.354,87.676 299.937,91.023 299.937,7.577 354.769,7.577 "/> <path style="opacity:0.1;enable-background:new ;" d="M420.852,7.577h-42.431c0.684,0,1.238,0.555,1.238,1.238v127.488v64.355 v239.417h-17.449v24.598v15.154v24.597h42.431v-24.597v-15.154v-24.598h17.449V200.657v-64.355V8.815 C422.089,8.131,421.536,7.577,420.852,7.577z"/> <path d="M424.615,147.89c4.185,0,7.577-3.391,7.577-7.577V8.815c0-4.86-3.954-8.815-8.815-8.815h-68.609h-54.83H119.559 C97.64,0,79.808,17.831,79.808,39.751v432.498C79.808,494.168,97.64,512,119.56,512h305.055c4.185,0,7.577-3.391,7.577-7.577 c0-4.186-3.392-7.577-7.577-7.577h-12.398v-49.194h12.398c4.185,0,7.577-3.391,7.577-7.577V182.203c0-4.186-3.392-7.577-7.577-7.577 c-4.185,0-7.577,3.391-7.577,7.577v250.296H119.559c-9.282,0-17.825,3.207-24.598,8.559V39.751 c0.001-13.563,11.035-24.597,24.598-24.597h172.802v75.87c0,4.186,3.392,7.577,7.577,7.577h54.831c4.185,0,7.577-3.391,7.577-7.577 v-75.87h54.692v125.159C417.038,144.497,420.43,147.89,424.615,147.89z M119.559,447.652h277.504v17.021h-60.491 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h60.491v17.02H119.559c-13.563,0-24.598-11.034-24.598-24.597 C94.962,458.685,105.996,447.652,119.559,447.652z M347.192,83.447h-39.677V15.154h39.677V83.447z"/> <path d="M128.504,247.686v160.888c0,4.186,3.392,7.577,7.577,7.577s7.577-3.391,7.577-7.577V247.686 c0-4.186-3.392-7.577-7.577-7.577S128.504,243.5,128.504,247.686z"/> <path d="M204.982,145.117c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-10.86 c-7.52,0-13.639,6.118-13.639,13.639v65.846c0,7.52,6.118,13.639,13.639,13.639H335.46c7.52,0,13.639-6.118,13.639-13.639v-65.846 c0-7.52-6.118-13.639-13.639-13.639H230.394c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577h103.551v62.815 H195.637v-62.815H204.982z"/> <path d="M305.632,184.101c4.185,0,7.577-3.391,7.577-7.577c0-4.186-3.392-7.577-7.577-7.577h-80.443 c-4.185,0-7.577,3.391-7.577,7.577c0,4.186,3.392,7.577,7.577,7.577H305.632z"/> </svg><div><a href="/pdf-novels/velva-jean-learns-to-fly-by-jennifer-niven-free">Velva Jean Learns to Fly</a> by <span>Jennifer Niven</span></div></div></div> <!--er--> </div> </div> <div class="row" style="margin-top: 15px;"> </div> </div> </div> <footer class="footer"> <div class="container"> <p class="pull-left"> © 100 Vampire Novels 2015 - 2024    Contact for me vampirenovels@hotmail.com </p> <p class="pull-right"> <!--LiveInternet counter--> <script type="text/javascript"> document.write("<a href='//www.liveinternet.ru/click' "+ "target=_blank><img src='//counter.yadro.ru/hit?t50.6;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";h"+escape(document.title.substring(0,150))+";"+Math.random()+ "' alt='' title='LiveInternet' "+ "border='0' width='31' height='31'><\/a>") </script> <!--/LiveInternet--> </p> </div> </footer> <script src="/assets/ba91f165/jquery.js?v=1529425591"></script> <script src="/assets/618ab67e/yii.js?v=1529414259"></script> <script src="/js/site.js?v=1722099411"></script> <script src="/assets/5e1636ad/js/bootstrap.js?v=1529424553"></script> <div class="p3bnr" style="display: none;"> <div class="p3bnr-inner"> <div></div> <div> <div> <div>XSLT 2.0 And XPath 2.0 Programmer's Reference, 4th Edition</div> <div>You must be logged in to Read or Download</div> <a href="https://file.100-vampirenovels.net/TDS/?q=XSLT+2.0+And+XPath+2.0+Programmer%27s+Reference%2C+4th+Edition&sub=542&place=bb3" target="_blank" rel="nofollow"> CONTINUE <img src="/i/arrow.png" /> </a> <div><span class="glyphicon glyphicon-lock"></span> SECURE VERIFIED</div> </div> </div> <div> <a class="p3bnr-closer" href="javascript:;">Close X</a> </div> </div> </div> </body> </html>