nokogiri 1.4.4.2-java → 1.4.5-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (54) hide show
  1. data/.gemtest +0 -0
  2. data/CHANGELOG.ja.rdoc +16 -0
  3. data/CHANGELOG.rdoc +22 -0
  4. data/Manifest.txt +4 -3
  5. data/Rakefile +11 -36
  6. data/ext/nokogiri/xml_document.c +9 -0
  7. data/ext/nokogiri/xml_io.c +32 -7
  8. data/ext/nokogiri/xml_node.c +14 -13
  9. data/ext/nokogiri/xml_sax_parser.c +4 -2
  10. data/ext/nokogiri/xslt_stylesheet.c +9 -3
  11. data/lib/nokogiri/css.rb +6 -3
  12. data/lib/nokogiri/css/parser.rb +665 -70
  13. data/lib/nokogiri/css/parser.y +3 -1
  14. data/lib/nokogiri/css/parser_extras.rb +91 -0
  15. data/lib/nokogiri/css/tokenizer.rb +148 -3
  16. data/lib/nokogiri/css/tokenizer.rex +1 -1
  17. data/lib/nokogiri/ffi/structs/xml_attr.rb +2 -1
  18. data/lib/nokogiri/ffi/structs/xml_node_set.rb +1 -1
  19. data/lib/nokogiri/ffi/weak_bucket.rb +10 -10
  20. data/lib/nokogiri/ffi/xml/document.rb +8 -0
  21. data/lib/nokogiri/ffi/xml/node_set.rb +1 -0
  22. data/lib/nokogiri/ffi/xml/sax/parser.rb +9 -1
  23. data/lib/nokogiri/ffi/xslt/stylesheet.rb +4 -0
  24. data/lib/nokogiri/html/document.rb +134 -15
  25. data/lib/nokogiri/html/sax/parser.rb +6 -2
  26. data/lib/nokogiri/version.rb +6 -1
  27. data/lib/nokogiri/xml/node.rb +8 -23
  28. data/lib/nokogiri/xml/node/save_options.rb +10 -0
  29. data/lib/nokogiri/xml/node_set.rb +1 -1
  30. data/lib/nokogiri/xml/parse_options.rb +8 -0
  31. data/lib/nokogiri/xml/reader.rb +6 -6
  32. data/lib/nokogiri/xml/sax/document.rb +2 -2
  33. data/lib/nokogiri/xml/schema.rb +7 -1
  34. data/tasks/cross_compile.rb +1 -5
  35. data/test/css/test_tokenizer.rb +8 -0
  36. data/test/files/encoding.html +82 -0
  37. data/test/files/encoding.xhtml +84 -0
  38. data/test/helper.rb +2 -0
  39. data/test/html/sax/test_parser.rb +45 -0
  40. data/test/html/test_document.rb +55 -0
  41. data/test/html/test_document_encoding.rb +46 -0
  42. data/test/html/test_element_description.rb +1 -1
  43. data/test/test_memory_leak.rb +20 -0
  44. data/test/test_reader.rb +13 -0
  45. data/test/test_xslt_transforms.rb +6 -2
  46. data/test/xml/sax/test_parser.rb +16 -0
  47. data/test/xml/test_document.rb +3 -1
  48. data/test/xml/test_node.rb +13 -1
  49. data/test/xml/test_node_set.rb +10 -0
  50. data/test/xml/test_schema.rb +5 -0
  51. metadata +89 -130
  52. data/deps.rip +0 -5
  53. data/lib/nokogiri/css/generated_parser.rb +0 -676
  54. data/lib/nokogiri/css/generated_tokenizer.rb +0 -145
@@ -31,7 +31,9 @@ module Nokogiri
31
31
  def parse_memory data, encoding = 'UTF-8'
32
32
  raise ArgumentError unless data
33
33
  return unless data.length > 0
34
- ParserContext.memory(data, encoding).parse_with self
34
+ ctx = ParserContext.memory(data, encoding)
35
+ yield ctx if block_given?
36
+ ctx.parse_with self
35
37
  end
36
38
 
37
39
  ###
@@ -40,7 +42,9 @@ module Nokogiri
40
42
  raise ArgumentError unless filename
41
43
  raise Errno::ENOENT unless File.exists?(filename)
42
44
  raise Errno::EISDIR if File.directory?(filename)
43
- ParserContext.file(filename, encoding).parse_with self
45
+ ctx = ParserContext.file(filename, encoding)
46
+ yield ctx if block_given?
47
+ ctx.parse_with self
44
48
  end
45
49
  end
46
50
  end
@@ -1,6 +1,6 @@
1
1
  module Nokogiri
2
2
  # The version of Nokogiri you are using
3
- VERSION = '1.4.4.2'
3
+ VERSION = '1.4.5'
4
4
 
5
5
  # More complete version information about libxml
6
6
  VERSION_INFO = {}
@@ -9,6 +9,7 @@ module Nokogiri
9
9
  VERSION_INFO['ruby'] = {}
10
10
  VERSION_INFO['ruby']['version'] = ::RUBY_VERSION
11
11
  VERSION_INFO['ruby']['platform'] = ::RUBY_PLATFORM
12
+ VERSION_INFO['ruby']['description'] = ::RUBY_DESCRIPTION
12
13
  VERSION_INFO['ruby']['engine'] = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'mri'
13
14
  VERSION_INFO['ruby']['jruby'] = ::JRUBY_VERSION if RUBY_PLATFORM == "java"
14
15
  if defined?(LIBXML_VERSION)
@@ -32,6 +33,10 @@ module Nokogiri
32
33
  uses_libxml? && Nokogiri::VERSION_INFO['libxml']['binding'] == 'ffi'
33
34
  end
34
35
 
36
+ def self.jruby?
37
+ false # for 1.5 compatibility
38
+ end
39
+
35
40
  def self.is_2_6_16? # :nodoc:
36
41
  Nokogiri::VERSION_INFO['libxml']['loaded'] <= '2.6.16'
37
42
  end
@@ -103,7 +103,7 @@ module Nokogiri
103
103
 
104
104
  xpath(*(paths.map { |path|
105
105
  path = path.to_s
106
- path =~ /^(\.\/|\/)/ ? path : CSS.xpath_for(
106
+ path =~ /^(\.\/|\/|\.\.)/ ? path : CSS.xpath_for(
107
107
  path,
108
108
  :prefix => prefix,
109
109
  :ns => ns
@@ -740,11 +740,7 @@ module Nokogiri
740
740
  # FIXME: this is a hack around broken libxml versions
741
741
  return dump_html if %w[2 6] === LIBXML_VERSION.split('.')[0..1]
742
742
 
743
- options[:save_with] ||= SaveOptions::FORMAT |
744
- SaveOptions::NO_DECLARATION |
745
- SaveOptions::NO_EMPTY_TAGS |
746
- SaveOptions::AS_HTML
747
-
743
+ options[:save_with] ||= SaveOptions::DEFAULT_HTML
748
744
  serialize(options)
749
745
  end
750
746
 
@@ -755,8 +751,7 @@ module Nokogiri
755
751
  #
756
752
  # See Node#write_to for a list of +options+
757
753
  def to_xml options = {}
758
- options[:save_with] ||= SaveOptions::FORMAT | SaveOptions::AS_XML
759
-
754
+ options[:save_with] ||= SaveOptions::DEFAULT_XML
760
755
  serialize(options)
761
756
  end
762
757
 
@@ -770,11 +765,7 @@ module Nokogiri
770
765
  # FIXME: this is a hack around broken libxml versions
771
766
  return dump_html if %w[2 6] === LIBXML_VERSION.split('.')[0..1]
772
767
 
773
- options[:save_with] ||= SaveOptions::FORMAT |
774
- SaveOptions::NO_DECLARATION |
775
- SaveOptions::NO_EMPTY_TAGS |
776
- SaveOptions::AS_XHTML
777
-
768
+ options[:save_with] ||= SaveOptions::DEFAULT_XHTML
778
769
  serialize(options)
779
770
  end
780
771
 
@@ -803,7 +794,7 @@ module Nokogiri
803
794
  indent_times = options[:indent] || 2
804
795
 
805
796
 
806
- config = SaveOptions.new(save_options)
797
+ config = SaveOptions.new(save_options.to_i)
807
798
  yield config if block_given?
808
799
 
809
800
  native_write_to(io, encoding, indent_text * indent_times, config.options)
@@ -817,10 +808,7 @@ module Nokogiri
817
808
  # FIXME: this is a hack around broken libxml versions
818
809
  return (io << dump_html) if %w[2 6] === LIBXML_VERSION.split('.')[0..1]
819
810
 
820
- options[:save_with] ||= SaveOptions::FORMAT |
821
- SaveOptions::NO_DECLARATION |
822
- SaveOptions::NO_EMPTY_TAGS |
823
- SaveOptions::AS_HTML
811
+ options[:save_with] ||= SaveOptions::DEFAULT_HTML
824
812
  write_to io, options
825
813
  end
826
814
 
@@ -832,10 +820,7 @@ module Nokogiri
832
820
  # FIXME: this is a hack around broken libxml versions
833
821
  return (io << dump_html) if %w[2 6] === LIBXML_VERSION.split('.')[0..1]
834
822
 
835
- options[:save_with] ||= SaveOptions::FORMAT |
836
- SaveOptions::NO_DECLARATION |
837
- SaveOptions::NO_EMPTY_TAGS |
838
- SaveOptions::AS_XHTML
823
+ options[:save_with] ||= SaveOptions::DEFAULT_XHTML
839
824
  write_to io, options
840
825
  end
841
826
 
@@ -846,7 +831,7 @@ module Nokogiri
846
831
  #
847
832
  # See Node#write_to for a list of options
848
833
  def write_xml_to io, options = {}
849
- options[:save_with] ||= SaveOptions::FORMAT | SaveOptions::AS_XML
834
+ options[:save_with] ||= SaveOptions::DEFAULT_XML
850
835
  write_to io, options
851
836
  end
852
837
 
@@ -19,11 +19,19 @@ module Nokogiri
19
19
  # Save as HTML
20
20
  AS_HTML = 64
21
21
 
22
+ # the default for XML documents
23
+ DEFAULT_XML = FORMAT | AS_XML
24
+ # the default for HTML document
25
+ DEFAULT_HTML = FORMAT | NO_DECLARATION | NO_EMPTY_TAGS | AS_HTML
26
+ # the default for XHTML document
27
+ DEFAULT_XHTML = FORMAT | NO_DECLARATION | NO_EMPTY_TAGS | AS_XHTML
28
+
22
29
  # Integer representation of the SaveOptions
23
30
  attr_reader :options
24
31
 
25
32
  # Create a new SaveOptions object with +options+
26
33
  def initialize options = 0; @options = options; end
34
+
27
35
  constants.each do |constant|
28
36
  class_eval %{
29
37
  def #{constant.downcase}
@@ -36,6 +44,8 @@ module Nokogiri
36
44
  end
37
45
  }
38
46
  end
47
+
48
+ alias :to_i :options
39
49
  end
40
50
  end
41
51
  end
@@ -104,7 +104,7 @@ module Nokogiri
104
104
 
105
105
  each do |node|
106
106
  doc = node.document
107
- search_ns = ns || doc.root ? doc.root.namespaces : {}
107
+ search_ns = ns || (doc.root ? doc.root.namespaces : {})
108
108
 
109
109
  xpaths = paths.map { |rule|
110
110
  [
@@ -37,6 +37,14 @@ module Nokogiri
37
37
  NOCDATA = 1 << 14
38
38
  # do not generate XINCLUDE START/END nodes
39
39
  NOXINCNODE = 1 << 15
40
+ # compact small text nodes; no modification of the tree allowed afterwards (will possibly crash if you try to modify the tree)
41
+ COMPACT = 1 << 16
42
+ # parse using XML-1.0 before update 5
43
+ OLD10 = 1 << 17
44
+ # do not fixup XINCLUDE xml:base uris
45
+ NOBASEFIX = 1 << 18
46
+ # relax any hardcoded limit from the parser
47
+ HUGE = 1 << 19
40
48
 
41
49
  # the default options used for parsing XML documents
42
50
  DEFAULT_XML = RECOVER
@@ -87,9 +87,9 @@ module Nokogiri
87
87
  ###
88
88
  # Get a list of attributes for the current node.
89
89
  def attributes
90
- Hash[*(attribute_nodes.map { |node|
90
+ Hash[attribute_nodes.map { |node|
91
91
  [node.name, node.to_s]
92
- }.flatten)].merge(namespaces || {})
92
+ }].merge(namespaces || {})
93
93
  end
94
94
 
95
95
  ###
@@ -101,10 +101,10 @@ module Nokogiri
101
101
  end
102
102
 
103
103
  ###
104
- # Move the cursor through the document yielding each node to the block
105
- def each(&block)
106
- while node = self.read
107
- block.call(node)
104
+ # Move the cursor through the document yielding the cursor to the block
105
+ def each
106
+ while cursor = self.read
107
+ yield cursor
108
108
  end
109
109
  end
110
110
  end
@@ -8,7 +8,7 @@ module Nokogiri
8
8
  # The basic way a SAX style parser works is by creating a parser,
9
9
  # telling the parser about the events we're interested in, then giving
10
10
  # the parser some XML to process. The parser will notify you when
11
- # it encounters events your said you would like to know about.
11
+ # it encounters events you said you would like to know about.
12
12
  #
13
13
  # To register for events, you simply subclass Nokogiri::XML::SAX::Document,
14
14
  # and implement the methods for which you would like notification.
@@ -36,7 +36,7 @@ module Nokogiri
36
36
  # parser.parse(File.read(ARGV[0], 'rb'))
37
37
  #
38
38
  # Now my document handler will be called when each node starts, and when
39
- # then document ends. To see what kinds of events are available, take
39
+ # the document ends. To see what kinds of events are available, take
40
40
  # a look at Nokogiri::XML::SAX::Document.
41
41
  #
42
42
  # Two SAX parsers for XML are available, a parser that reads from a string
@@ -43,7 +43,13 @@ module Nokogiri
43
43
  # Nokogiri::XML::SyntaxError objects found while validating the
44
44
  # +thing+ is returned.
45
45
  def validate thing
46
- thing.is_a?(Nokogiri::XML::Document) ? validate_document(thing) : validate_file(thing)
46
+ if thing.is_a?(Nokogiri::XML::Document)
47
+ validate_document(thing)
48
+ elsif File.file?(thing)
49
+ validate_file(thing)
50
+ else
51
+ raise ArgumentError, "Must provide Nokogiri::Xml::Document or the name of an existing file"
52
+ end
47
53
  end
48
54
 
49
55
  ###
@@ -27,7 +27,6 @@ file "tmp/cross/download/#{ZLIB}" do |t|
27
27
  f.puts "LIBRARY_PATH = #{CROSS_DIR}/lib"
28
28
  f.puts "INCLUDE_PATH = #{CROSS_DIR}/include"
29
29
 
30
- # FIXME: need to make the cross compiler dynamic
31
30
  f.puts mk.sub(/^PREFIX\s*=\s*$/, "PREFIX = #{HOST}-") #.
32
31
  #sub(/^SHARED_MODE=0$/, 'SHARED_MODE=1').
33
32
  #sub(/^IMPLIB\s*=.*$/, 'IMPLIB=libz.dll.a')
@@ -56,7 +55,6 @@ file "tmp/cross/download/#{ICONV}" do |t|
56
55
  end
57
56
 
58
57
  Dir.chdir t.name do
59
- # FIXME: need to make the host dynamic
60
58
  sh "./configure --disable-shared --enable-static --host=#{HOST} --target=#{TARGET} --prefix=#{CROSS_DIR} CPPFLAGS='-mno-cygwin -Wall' CFLAGS='-mno-cygwin -O2 -g' CXXFLAGS='-mno-cygwin -O2 -g' LDFLAGS=-mno-cygwin"
61
59
  end
62
60
  end
@@ -82,7 +80,6 @@ file "tmp/cross/download/#{LIBXML}" do |t|
82
80
  end
83
81
 
84
82
  Dir.chdir t.name do
85
- # FIXME: need to make the host dynamic
86
83
  sh "CFLAGS='-DIN_LIBXML' ./configure --host=#{HOST} --target=#{TARGET} --enable-static --disable-shared --prefix=#{CROSS_DIR} --with-zlib=#{CROSS_DIR} --with-iconv=#{CROSS_DIR} --without-python --without-readline"
87
84
  end
88
85
  end
@@ -108,7 +105,6 @@ file "tmp/cross/download/#{LIBXSLT}" do |t|
108
105
  end
109
106
 
110
107
  Dir.chdir t.name do
111
- # FIXME: need to make the host dynamic
112
108
  sh "CFLAGS='-DIN_LIBXML' ./configure --host=#{HOST} --target=#{TARGET} --enable-static --disable-shared --prefix=#{CROSS_DIR} --with-libxml-prefix=#{CROSS_DIR} --without-python --without-crypto"
113
109
  end
114
110
  end
@@ -165,7 +161,7 @@ task "gem:windows" do
165
161
  majmin, patchlevel = version.split("-")
166
162
  rbconfig = "rbconfig-#{majmin}"
167
163
  unless rake_compiler_config.key?(rbconfig) && rake_compiler_config[rbconfig] =~ /-#{patchlevel}/
168
- raise "rake-compiler '#{rbconfig}' not #{patchlevel}. try running 'rake-compiler cross-ruby VERSION=#{version}'"
164
+ raise "rake-compiler '#{rbconfig}' not #{patchlevel}. try running 'env --unset=HOST rake-compiler cross-ruby VERSION=#{version}'"
169
165
  end
170
166
  end
171
167
 
@@ -2,6 +2,14 @@
2
2
 
3
3
  require "helper"
4
4
 
5
+ module Nokogiri
6
+ module CSS
7
+ class Tokenizer
8
+ alias :scan :scan_setup
9
+ end
10
+ end
11
+ end
12
+
5
13
  module Nokogiri
6
14
  module CSS
7
15
  class TestTokenizer < Nokogiri::TestCase
@@ -0,0 +1,82 @@
1
+ <!DOCTYPE HTML>
2
+ <html>
3
+ <head>
4
+ <title>����������</title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
6
+ </head>
7
+ <body>
8
+ <p>���������\�z���B</p>
9
+ <p>�����������\�z���B</p>
10
+ <p>�������������\�z���B</p>
11
+ <p>���������������\�z���B</p>
12
+ <p>�����������������\�z���B</p>
13
+ <p>�������������������\�z���B</p>
14
+ <p>���������������������\�z���B</p>
15
+ <p>�����������������������\�z���B</p>
16
+ <p>�������������������������\�z���B</p>
17
+ <p>���������������������������\�z���B</p>
18
+ <p>�����������������������������\�z���B</p>
19
+ <p>�������������������������������\�z���B</p>
20
+ <p>���������������������������������\�z���B</p>
21
+ <p>�����������������������������������\�z���B</p>
22
+ <p>�������������������������������������\�z���B</p>
23
+ <p>���������������������������������������\�z���B</p>
24
+ <p>�����������������������������������������\�z���B</p>
25
+ <p>�������������������������������������������\�z���B</p>
26
+ <p>���������������������������������������������\�z���B</p>
27
+ <p>�����������������������������������������������\�z���B</p>
28
+ <p>�������������������������������������������������\�z���B</p>
29
+ <p>���������������������������������������������������\�z���B</p>
30
+ <p>�����������������������������������������������������\�z���B</p>
31
+ <p>�������������������������������������������������������\�z���B</p>
32
+ <p>���������������������������������������������������������\�z���B</p>
33
+ <p>�����������������������������������������������������������\�z���B</p>
34
+ <p>�������������������������������������������������������������\�z���B</p>
35
+ <p>���������������������������������������������������������������\�z���B</p>
36
+ <p>�����������������������������������������������������������������\�z���B</p>
37
+ <p>�������������������������������������������������������������������\�z���B</p>
38
+ <p>���������������������������������������������������������������������\�z���B</p>
39
+ <p>�����������������������������������������������������������������������\�z���B</p>
40
+ <p>�������������������������������������������������������������������������\�z���B</p>
41
+ <p>���������������������������������������������������������������������������\�z���B</p>
42
+ <p>�����������������������������������������������������������������������������\�z���B</p>
43
+ <p>�������������������������������������������������������������������������������\�z���B</p>
44
+ <p>���������������������������������������������������������������������������������\�z���B</p>
45
+ <p>�����������������������������������������������������������������������������������\�z���B</p>
46
+ <p>�������������������������������������������������������������������������������������\�z���B</p>
47
+ <p>���������������������������������������������������������������������������������������\�z���B</p>
48
+ <p>�����������������������������������������������������������������������������������������\�z���B</p>
49
+ <p>�������������������������������������������������������������������������������������������\�z���B</p>
50
+ <p>���������������������������������������������������������������������������������������������\�z���B</p>
51
+ <p>�����������������������������������������������������������������������������������������������\�z���B</p>
52
+ <p>�������������������������������������������������������������������������������������������������\�z���B</p>
53
+ <p>���������������������������������������������������������������������������������������������������\�z���B</p>
54
+ <p>�����������������������������������������������������������������������������������������������������\�z���B</p>
55
+ <p>�������������������������������������������������������������������������������������������������������\�z���B</p>
56
+ <p>���������������������������������������������������������������������������������������������������������\�z���B</p>
57
+ <p>�����������������������������������������������������������������������������������������������������������\�z���B</p>
58
+ <p>�������������������������������������������������������������������������������������������������������������\�z���B</p>
59
+ <p>���������������������������������������������������������������������������������������������������������������\�z���B</p>
60
+ <p>�����������������������������������������������������������������������������������������������������������������\�z���B</p>
61
+ <p>�������������������������������������������������������������������������������������������������������������������\�z���B</p>
62
+ <p>���������������������������������������������������������������������������������������������������������������������\�z���B</p>
63
+ <p>�����������������������������������������������������������������������������������������������������������������������\�z���B</p>
64
+ <p>�������������������������������������������������������������������������������������������������������������������������\�z���B</p>
65
+ <p>���������������������������������������������������������������������������������������������������������������������������\�z���B</p>
66
+ <p>�����������������������������������������������������������������������������������������������������������������������������\�z���B</p>
67
+ <p>�������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
68
+ <p>���������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
69
+ <p>�����������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
70
+ <p>�������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
71
+ <p>���������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
72
+ <p>�����������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
73
+ <p>�������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
74
+ <p>���������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
75
+ <p>�����������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
76
+ <p>�������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
77
+ <p>���������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
78
+ <p>�����������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
79
+ <p>�������������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
80
+ <p>���������������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
81
+ </body>
82
+ </html>
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="Shift_JIS"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
5
+ <head>
6
+ <title>����������</title>
7
+ <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
8
+ </head>
9
+ <body>
10
+ <p>���������\�z���B</p>
11
+ <p>�����������\�z���B</p>
12
+ <p>�������������\�z���B</p>
13
+ <p>���������������\�z���B</p>
14
+ <p>�����������������\�z���B</p>
15
+ <p>�������������������\�z���B</p>
16
+ <p>���������������������\�z���B</p>
17
+ <p>�����������������������\�z���B</p>
18
+ <p>�������������������������\�z���B</p>
19
+ <p>���������������������������\�z���B</p>
20
+ <p>�����������������������������\�z���B</p>
21
+ <p>�������������������������������\�z���B</p>
22
+ <p>���������������������������������\�z���B</p>
23
+ <p>�����������������������������������\�z���B</p>
24
+ <p>�������������������������������������\�z���B</p>
25
+ <p>���������������������������������������\�z���B</p>
26
+ <p>�����������������������������������������\�z���B</p>
27
+ <p>�������������������������������������������\�z���B</p>
28
+ <p>���������������������������������������������\�z���B</p>
29
+ <p>�����������������������������������������������\�z���B</p>
30
+ <p>�������������������������������������������������\�z���B</p>
31
+ <p>���������������������������������������������������\�z���B</p>
32
+ <p>�����������������������������������������������������\�z���B</p>
33
+ <p>�������������������������������������������������������\�z���B</p>
34
+ <p>���������������������������������������������������������\�z���B</p>
35
+ <p>�����������������������������������������������������������\�z���B</p>
36
+ <p>�������������������������������������������������������������\�z���B</p>
37
+ <p>���������������������������������������������������������������\�z���B</p>
38
+ <p>�����������������������������������������������������������������\�z���B</p>
39
+ <p>�������������������������������������������������������������������\�z���B</p>
40
+ <p>���������������������������������������������������������������������\�z���B</p>
41
+ <p>�����������������������������������������������������������������������\�z���B</p>
42
+ <p>�������������������������������������������������������������������������\�z���B</p>
43
+ <p>���������������������������������������������������������������������������\�z���B</p>
44
+ <p>�����������������������������������������������������������������������������\�z���B</p>
45
+ <p>�������������������������������������������������������������������������������\�z���B</p>
46
+ <p>���������������������������������������������������������������������������������\�z���B</p>
47
+ <p>�����������������������������������������������������������������������������������\�z���B</p>
48
+ <p>�������������������������������������������������������������������������������������\�z���B</p>
49
+ <p>���������������������������������������������������������������������������������������\�z���B</p>
50
+ <p>�����������������������������������������������������������������������������������������\�z���B</p>
51
+ <p>�������������������������������������������������������������������������������������������\�z���B</p>
52
+ <p>���������������������������������������������������������������������������������������������\�z���B</p>
53
+ <p>�����������������������������������������������������������������������������������������������\�z���B</p>
54
+ <p>�������������������������������������������������������������������������������������������������\�z���B</p>
55
+ <p>���������������������������������������������������������������������������������������������������\�z���B</p>
56
+ <p>�����������������������������������������������������������������������������������������������������\�z���B</p>
57
+ <p>�������������������������������������������������������������������������������������������������������\�z���B</p>
58
+ <p>���������������������������������������������������������������������������������������������������������\�z���B</p>
59
+ <p>�����������������������������������������������������������������������������������������������������������\�z���B</p>
60
+ <p>�������������������������������������������������������������������������������������������������������������\�z���B</p>
61
+ <p>���������������������������������������������������������������������������������������������������������������\�z���B</p>
62
+ <p>�����������������������������������������������������������������������������������������������������������������\�z���B</p>
63
+ <p>�������������������������������������������������������������������������������������������������������������������\�z���B</p>
64
+ <p>���������������������������������������������������������������������������������������������������������������������\�z���B</p>
65
+ <p>�����������������������������������������������������������������������������������������������������������������������\�z���B</p>
66
+ <p>�������������������������������������������������������������������������������������������������������������������������\�z���B</p>
67
+ <p>���������������������������������������������������������������������������������������������������������������������������\�z���B</p>
68
+ <p>�����������������������������������������������������������������������������������������������������������������������������\�z���B</p>
69
+ <p>�������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
70
+ <p>���������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
71
+ <p>�����������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
72
+ <p>�������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
73
+ <p>���������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
74
+ <p>�����������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
75
+ <p>�������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
76
+ <p>���������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
77
+ <p>�����������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
78
+ <p>�������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
79
+ <p>���������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
80
+ <p>�����������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
81
+ <p>�������������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
82
+ <p>���������������������������������������������������������������������������������������������������������������������������������������������������������\�z���B</p>
83
+ </body>
84
+ </html>